|
LIBINT 2.7.2
|
A generic Horizontal Recurrence Relation: More...
#include <hrr.h>


Public Types | |
| typedef RecurrenceRelation | ParentType |
| typedef BFSet | BasisFunctionType |
| typedef HRR< IntType, BFSet, part, loc_a, pos_a, loc_b, pos_b > | ThisType |
| typedef IntType | TargetType |
| typedef IntType | ChildType |
| typedef RecurrenceRelation::ExprType | ExprType |
| A short alias. | |
Public Types inherited from libint2::RecurrenceRelation | |
| typedef RecurrenceRelation | this_type |
| typedef AlgebraicOperator< DGVertex > | ExprType |
| Numerical expression of a recurrence relation is always expressed as an AlgebraicOperator<DGVertex> | |
Public Member Functions | |
| BraketDirection | braket_direction () const override |
| overrides RecurrenceRelation::braket_direction() More... | |
| unsigned int | num_children () const override |
| Implementation of RecurrenceRelation::num_children() More... | |
| SafePtr< TargetType > | target () const |
| returns pointer to the target | |
| SafePtr< ChildType > | child (unsigned int i) const |
| child(i) returns pointer to i-th child | |
| SafePtr< DGVertex > | rr_target () const override |
| Implementation of RecurrenceRelation::target() More... | |
| SafePtr< DGVertex > | rr_child (unsigned int i) const override |
| Implementation of RecurrenceRelation::child() More... | |
| bool | is_simple () const override |
| Implementation of RecurrenceRelation::is_simple() More... | |
| std::string | spfunction_call (const SafePtr< CodeContext > &context, const SafePtr< ImplicitDimensions > &dims) const override |
| Implementation of RecurrenceRelation::spfunction_call() More... | |
Public Member Functions inherited from libint2::RecurrenceRelation | |
| virtual unsigned int | num_children () const =0 |
| num_children() returns the actual number of children. More... | |
| virtual SafePtr< DGVertex > | rr_child (unsigned int i) const =0 |
| Returns i-th child. More... | |
| virtual SafePtr< DGVertex > | rr_target () const =0 |
| Returns the target. More... | |
| const SafePtr< ExprType > & | rr_expr () const |
| Returns the expression. | |
| virtual bool | is_simple () const =0 |
| Returns true is this recurrence relation is simple enough to optimize away. More... | |
| virtual bool | invariant_type () const |
| Returns true is the type of target and all children are exactly the same. More... | |
| virtual int | partindex_direction () const |
| virtual BraketDirection | braket_direction () const |
| size_t | size_of_children () const |
| const std::string & | label () const |
| label() returns a unique, short, descriptive label of this RR (e.g. More... | |
| virtual std::string | description () const |
| description() returns a verbose description of this RR | |
| virtual void | generate_code (const SafePtr< CodeContext > &context, const SafePtr< ImplicitDimensions > &dims, const std::string &funcname, std::ostream &decl, std::ostream &def) |
| Generate declaration and definition for the recurrence relation. | |
| virtual void | generate_generic_code (const SafePtr< CodeContext > &context, const SafePtr< ImplicitDimensions > &dims, const std::string &funcname, std::ostream &decl, std::ostream &def) |
| Generate declaration and definition for the recurrence relation using generic code (typically, a manually written code) | |
| virtual std::string | spfunction_call (const SafePtr< CodeContext > &context, const SafePtr< ImplicitDimensions > &dims) const |
| Generate a callback for this recurrence relation. More... | |
| unsigned int | nflops () const |
| Return the number of FLOPs per this recurrence relation. | |
| void | inst_id (const SingletonStack< RecurrenceRelation, std::string >::InstanceID &i) |
| RecurrenceRelation is managed by SingletonStack but doesn't need to keep track of instance ID. | |
Static Public Member Functions | |
| static SafePtr< ThisType > | Instance (const SafePtr< TargetType > &, unsigned int dir=0) |
| Use Instance() to obtain an instance of RR. More... | |
| static bool | directional () |
| is this recurrence relation parameterized by a direction. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from libint2::RecurrenceRelation | |
| void | add_expr (const SafePtr< ExprType > &a, int minus=1) |
| Adds a (or -a, if minus = -1) to expr_. | |
| virtual std::string | generate_label () const =0 |
| Generates the label. More... | |
| template<class RR > | |
| bool | register_with_rrstack () |
| Registers with the stack. | |
Protected Attributes inherited from libint2::RecurrenceRelation | |
| unsigned int | nflops_ |
| std::string | label_ |
| SafePtr< ExprType > | expr_ |
A generic Horizontal Recurrence Relation:
|a b) = |a+1_i b-1_i) + AB_i |a b-1_i) + extra terms for derivative Gaussians
Int is the integral class. part specifies for which particle the angular momentum is shifted. Function a is assumed to gain quanta, function b loses quanta. loc_a and loc_b specify where functions a and b are located (bra or ket). pos_a and pos_b specify which function to be used (usually pos_a and pos_b are set to 0 to refer to the first function for this particle in this location).
|
inlineoverridevirtual |
overrides RecurrenceRelation::braket_direction()
Reimplemented from libint2::RecurrenceRelation.
|
inlinestatic |
is this recurrence relation parameterized by a direction.
the default is false if BasisFunctionSet is CGShell, true otherwise.
|
static |
Use Instance() to obtain an instance of RR.
This function is provided to avoid issues with getting a SafePtr from constructor (as needed for registry to work).
dir specifies which quantum number of a and b is shifted. For example, dir can be 0 (x), 1(y), or 2(z) if F is a Cartesian Gaussian.
|
inlineoverridevirtual |
Implementation of RecurrenceRelation::is_simple()
Implements libint2::RecurrenceRelation.
|
inlineoverridevirtual |
Implementation of RecurrenceRelation::num_children()
Implements libint2::RecurrenceRelation.
|
inlineoverridevirtual |
Implementation of RecurrenceRelation::child()
Implements libint2::RecurrenceRelation.
References libint2::HRR< IntType, BFSet, part, loc_a, pos_a, loc_b, pos_b >::child().
|
inlineoverridevirtual |
Implementation of RecurrenceRelation::target()
Implements libint2::RecurrenceRelation.
References libint2::HRR< IntType, BFSet, part, loc_a, pos_a, loc_b, pos_b >::target().
|
overridevirtual |
Implementation of RecurrenceRelation::spfunction_call()
WARNING !!!
Reimplemented from libint2::RecurrenceRelation.
References libint2::LibraryTaskManager::current(), libint2::LibraryTaskManager::Instance(), libint2::label_to_funcname(), and libint2::SubIterator::num_iter().