21 #ifndef _libint2_src_bin_libint_task_h_ 22 #define _libint2_src_bin_libint_task_h_ 29 #include <default_params.h> 33 class TaskExternSymbols;
47 LibraryTask(
const std::string& l,
const SafePtr<TaskParameters>& p,
const SafePtr<TaskExternSymbols>& s) :
48 label_(l), params_(p), symbols_(s) {
52 const std::string& label()
const {
return label_; }
53 const SafePtr<TaskParameters>& params()
const {
return params_; }
54 const SafePtr<TaskExternSymbols>& symbols()
const {
return symbols_; }
58 SafePtr<TaskParameters> params_;
59 SafePtr<TaskExternSymbols> symbols_;
64 typedef std::vector<LibraryTask> Tasks;
65 typedef Tasks::const_iterator tasks_citer;
68 typedef Tasks::const_iterator TasksCIter;
69 typedef Tasks::iterator TasksIter;
76 unsigned int ntask()
const {
return tasks_.size(); }
78 TasksCIter
first()
const {
return tasks_.begin(); }
80 TasksCIter
plast()
const {
return tasks_.end(); }
84 void add(
const std::string& task_label);
86 bool exists(
const std::string& task_label)
const;
88 TasksCIter
find(
const std::string& task_label)
const;
90 void current(
const std::string& task_label);
109 typedef std::list<std::string> SymbolList;
111 typedef RRStack::InstanceID
RRid;
112 typedef std::list<RRid> RRList;
121 const SymbolList&
symbols()
const;
131 typedef std::map<std::string,bool> Symbols;
133 mutable SymbolList symbollist_;
136 typedef std::map<RRid,bool> RRmap;
143 #endif // header guard unsigned int ntask() const
Number of tasks.
Definition: task.h:76
bool find(const RRid &rrid) const
Is this RR found in the list?
Definition: task.cc:133
RRStack::InstanceID RRid
Recurrence relations are maintained by RRStack and characterized by their unique numeric ID.
Definition: task.h:111
LibraryTask & task(unsigned int i)
i-th tasks
Definition: task.h:82
Manages tasks. This is a Singleton.
Definition: task.h:63
LibraryTask & current()
Returns the current task.
Definition: task.cc:89
Defaults definitions for various parameters assumed by Libint.
Definition: algebra.cc:24
A key idea introduced here is that of "task".
Definition: task.h:45
void add(const SymbolList &symbols)
Add the symbols.
Definition: task.cc:100
bool exists(const std::string &task_label) const
Definition: task.cc:54
RRList rrlist() const
Definition: task.cc:141
const SymbolList & symbols() const
Return the symbols.
Definition: task.cc:120
void add(const std::string &task_label)
Adds a new task. Do nothing if the task exists already.
Definition: task.cc:40
TasksCIter first() const
returns iterator to the first task
Definition: task.h:78
TasksCIter plast() const
returns iterator to past the last task
Definition: task.h:80
static LibraryTaskManager & Instance()
LibraryTaskManager is a Singleton.
Definition: task.cc:34
This class maintains code symbols provided by the user, e.g.
Definition: task.h:107
TasksCIter find(const std::string &task_label) const
Find the task by name and return the iterator pointing to it. Throws ProgrammingError,...
Definition: task.cc:65