LIBINT 2.7.2
Public Types | Public Member Functions | List of all members
libint2::Uncontract_Integral< I > Class Template Reference

Uncontract_Integral converts (a set of) contracted integral(s) to its uncontracted counterpart. More...

#include <uncontract.h>

Inheritance diagram for libint2::Uncontract_Integral< I >:
Inheritance graph
[legend]
Collaboration diagram for libint2::Uncontract_Integral< I >:
Collaboration graph
[legend]

Public Types

typedef I TargetType
 
typedef TargetType ChildType
 
typedef I::BasisFunctionType BFSet
 
typedef RecurrenceRelation::ExprType ExprType
 The type of expressions in which RecurrenceRelations result.
 
- Public Types inherited from libint2::RecurrenceRelation
typedef RecurrenceRelation this_type
 
typedef AlgebraicOperator< DGVertexExprType
 Numerical expression of a recurrence relation is always expressed as an AlgebraicOperator<DGVertex>
 

Public Member Functions

 Uncontract_Integral (const SafePtr< I > &)
 
unsigned int num_children () const override
 Implementation of RecurrenceRelation::num_children() More...
 
SafePtr< TargetType > target () const
 target() returns pointer to target
 
SafePtr< ChildType > child (unsigned int i) const
 child(i) returns pointer i-th child
 
SafePtr< DGVertexrr_target () const override
 Implementation of RecurrenceRelation's target() More...
 
SafePtr< DGVertexrr_child (unsigned int i) const override
 Implementation of RecurrenceRelation's child() More...
 
bool is_simple () const override
 to inline this would require a unary operator (+=). 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< DGVertexrr_child (unsigned int i) const =0
 Returns i-th child. More...
 
virtual SafePtr< DGVertexrr_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.
 

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< ExprTypeexpr_
 

Detailed Description

template<class I>
class libint2::Uncontract_Integral< I >

Uncontract_Integral converts (a set of) contracted integral(s) to its uncontracted counterpart.

Although this is technically not a recurrence relation, it can be treated as one.

Member Function Documentation

◆ is_simple()

template<class I >
bool libint2::Uncontract_Integral< I >::is_simple ( ) const
inlineoverridevirtual

to inline this would require a unary operator (+=).

instead will always implement as a function call.

Implements libint2::RecurrenceRelation.

◆ num_children()

template<class I >
unsigned int libint2::Uncontract_Integral< I >::num_children ( ) const
inlineoverridevirtual

◆ rr_child()

template<class I >
SafePtr< DGVertex > libint2::Uncontract_Integral< I >::rr_child ( unsigned int  i) const
inlineoverridevirtual

◆ rr_target()

template<class I >
SafePtr< DGVertex > libint2::Uncontract_Integral< I >::rr_target ( ) const
inlineoverridevirtual

The documentation for this class was generated from the following file: