21#ifndef _libint2_src_bin_libint_task_h_
22#define _libint2_src_bin_libint_task_h_
24#include <default_params.h>
34class TaskExternSymbols;
50 LibraryTask(
const std::string& l,
const std::shared_ptr<TaskParameters>& p,
51 const std::shared_ptr<TaskExternSymbols>& s)
52 : label_(l), params_(p), symbols_(s) {}
54 const std::string& label()
const {
return label_; }
55 const std::shared_ptr<TaskParameters>& params()
const {
return params_; }
56 const std::shared_ptr<TaskExternSymbols>& symbols()
const {
return symbols_; }
60 std::shared_ptr<TaskParameters> params_;
61 std::shared_ptr<TaskExternSymbols> symbols_;
66 typedef std::vector<LibraryTask> Tasks;
67 typedef Tasks::const_iterator tasks_citer;
70 typedef Tasks::const_iterator TasksCIter;
71 typedef Tasks::iterator TasksIter;
78 unsigned int ntask()
const {
return tasks_.size(); }
80 TasksCIter
first()
const {
return tasks_.begin(); }
82 TasksCIter
plast()
const {
return tasks_.end(); }
86 void add(
const std::string& task_label);
88 bool exists(
const std::string& task_label)
const;
91 TasksCIter
find(
const std::string& task_label)
const;
93 void current(
const std::string& task_label);
113 typedef std::list<std::string> SymbolList;
116 typedef RRStack::InstanceID
RRid;
117 typedef std::list<RRid> RRList;
126 const SymbolList&
symbols()
const;
136 typedef std::map<std::string, bool> Symbols;
138 mutable SymbolList symbollist_;
142 typedef std::map<RRid, bool> RRmap;
Manages tasks. This is a Singleton.
Definition task.h:65
TasksCIter find(const std::string &task_label) const
Find the task by name and return the iterator pointing to it.
Definition task.cc:54
TasksCIter first() const
returns iterator to the first task
Definition task.h:80
TasksCIter plast() const
returns iterator to past the last task
Definition task.h:82
bool exists(const std::string &task_label) const
Definition task.cc:46
void add(const std::string &task_label)
Adds a new task. Do nothing if the task exists already.
Definition task.cc:34
static LibraryTaskManager & Instance()
LibraryTaskManager is a Singleton.
Definition task.cc:32
LibraryTask & task(unsigned int i)
i-th tasks
Definition task.h:84
unsigned int ntask() const
Number of tasks.
Definition task.h:78
LibraryTask & current()
Returns the current task.
Definition task.cc:74
A key idea introduced here is that of "task".
Definition task.h:48
This class maintains code symbols provided by the user, e.g.
Definition task.h:111
RRStack::InstanceID RRid
Recurrence relations are maintained by RRStack and characterized by their unique numeric ID.
Definition task.h:116
bool find(const RRid &rrid) const
Is this RR found in the list?
Definition task.cc:111
const SymbolList & symbols() const
Return the symbols.
Definition task.cc:100
RRList rrlist() const
Definition task.cc:117
void add(const SymbolList &symbols)
Add the symbols.
Definition task.cc:84
Defaults definitions for various parameters assumed by Libint.
Definition algebra.cc:24