LIBINT
2.6.0
|
A key idea introduced here is that of "task". More...
#include <task.h>
Public Member Functions | |
LibraryTask (const std::string &l, const SafePtr< TaskParameters > &p, const SafePtr< TaskExternSymbols > &s) | |
const std::string & | label () const |
const SafePtr< TaskParameters > & | params () const |
const SafePtr< TaskExternSymbols > & | symbols () const |
A key idea introduced here is that of "task".
By task I mean a type of a computation that Libint performs. For example, computing ERIs is one task, computing sets of integrals needed for the R12 theory is another task. The reason for speaking of separate tasks is that the evaluator type must be specific to the task or tasks for which it was generated. For example, all the intermediates needed in R12 computation are not necessary when computing ERIs. If one evaluator type were to cover all tasks, it would be huge and performance would be likely hurt. Thus we need to produce task-specific evaluator and associated functions (constructor, destructor, memory query).