|
LIBINT 2.9.0
|
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() | |
| unsigned int | num_children () const override |
| Implementation of RecurrenceRelation::num_children() | |
| std::shared_ptr< TargetType > | target () const |
| returns pointer to the target | |
| std::shared_ptr< ChildType > | child (unsigned int i) const |
| child(i) returns pointer to i-th child | |
| std::shared_ptr< DGVertex > | rr_target () const override |
| Implementation of RecurrenceRelation::target() | |
| std::shared_ptr< DGVertex > | rr_child (unsigned int i) const override |
| Implementation of RecurrenceRelation::child() | |
| bool | is_simple () const override |
| Implementation of RecurrenceRelation::is_simple() | |
| std::string | spfunction_call (const std::shared_ptr< CodeContext > &context, const std::shared_ptr< ImplicitDimensions > &dims) const override |
| Implementation of RecurrenceRelation::spfunction_call() | |
Public Member Functions inherited from libint2::RecurrenceRelation | |
| const std::shared_ptr< ExprType > & | rr_expr () const |
| Returns the expression. | |
| virtual bool | invariant_type () const |
| Returns true is the type of target and all children are exactly the same. | |
| virtual int | partindex_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. | |
| virtual std::string | description () const |
| description() returns a verbose description of this RR | |
| virtual void | generate_code (const std::shared_ptr< CodeContext > &context, const std::shared_ptr< 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 std::shared_ptr< CodeContext > &context, const std::shared_ptr< 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) | |
| 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 std::shared_ptr< ThisType > | Instance (const std::shared_ptr< TargetType > &, unsigned int dir=0) |
| Use Instance() to obtain an instance of RR. | |
| static bool | directional () |
| is this recurrence relation parameterized by a direction. | |
Additional Inherited Members | |
Protected Member Functions inherited from libint2::RecurrenceRelation | |
| void | add_expr (const std::shared_ptr< ExprType > &a, int minus=1) |
| Adds a (or -a, if minus = -1) to expr_. | |
| template<class RR > | |
| bool | register_with_rrstack () |
| Registers with the stack. | |
Protected Attributes inherited from libint2::RecurrenceRelation | |
| unsigned int | nflops_ |
| std::string | label_ |
| std::shared_ptr< 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 std::shared_ptr 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().