LIBINT  2.1.0-stable
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
 Implementation of RecurrenceRelation::num_children()
 
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
 Implementation of RecurrenceRelation's target()
 
SafePtr< DGVertexrr_child (unsigned int i) const
 Implementation of RecurrenceRelation's child()
 
bool is_simple () const
 to inline this would require a unary operator (+=). More...
 
- Public Member Functions inherited from libint2::RecurrenceRelation
const SafePtr< 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. 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)
 
unsigned int nflops () const
 Return the number of FLOPs per this recurrence relation.
 
void inst_id (const SingletonStack< RecurrenceRelation, 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_.
 
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

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

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

instead will always implement as a function call.

Implements libint2::RecurrenceRelation.


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