|
|
static bool | directional () |
| | always directional! Cartesian derivatives are applied in a particular direction
|
| |
|
static std::shared_ptr< RRImpl > | Instance (const std::shared_ptr< TargetType > &Tint, unsigned int dir) |
| | Return an instance if applicable, or a null pointer otherwise.
|
| |
|
static std::shared_ptr< RRImpl > | Instance (const std::shared_ptr< TargetType > &Tint, unsigned int dir) |
| | Return an instance if applicable, or a null pointer otherwise.
|
| |
|
| unsigned int | num_children () const override |
| | Implementation of RecurrenceRelation::num_children()
|
| |
| std::shared_ptr< DGVertex > | rr_target () const override |
| | Implementation of RecurrenceRelation::rr_target()
|
| |
| std::shared_ptr< DGVertex > | rr_child (unsigned int i) const override |
| | Implementation of RecurrenceRelation::rr_child()
|
| |
| bool | is_simple () const override |
| | Implementation of RecurrenceRelation::is_simple()
|
| |
| std::string | generate_label () const override |
| | Implementation of RecurrenceRelation::generate_label()
|
| |
|
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 |
| |
| 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.
|
| |
|
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)
|
| |
| virtual std::string | spfunction_call (const std::shared_ptr< CodeContext > &context, const std::shared_ptr< ImplicitDimensions > &dims) const |
| | Generate a callback for this recurrence relation.
|
| |
|
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.
|
| |
|
| GenericRecurrenceRelation (const std::shared_ptr< TargetType > &Tint, unsigned int dir) |
| |
|
unsigned int | dir () const |
| |
|
const std::shared_ptr< DGVertex > & | add_child (const std::shared_ptr< DGVertex > &child) |
| | add child
|
| |
|
template<class RealChildType > |
| const std::shared_ptr< DGVertex > & | make_child (const typename RealChildType::BasisFunctionType &A, const typename RealChildType::BasisFunctionType &B, const typename RealChildType::BasisFunctionType &C, const typename RealChildType::BasisFunctionType &D, const typename RealChildType::AuxIndexType &aux=typename RealChildType::AuxIndexType(), const typename RealChildType::OperType &oper=typename RealChildType::OperType()) |
| | make_child should really looks something like this, but gcc 4.3.0 craps out TODO test is this works
|
| |
|
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.
|
| |
| static bool | default_directional () |
| | is this recurrence relation parameterized by a direction (x, y, or z).
|
| |
|
std::shared_ptr< TargetType > | target_ |
| |
|
unsigned int | nflops_ |
| |
|
std::string | label_ |
| |
|
std::shared_ptr< ExprType > | expr_ |
| |
template<class IntType, int part, FunctionPosition where, int trans_inv_part = -1, FunctionPosition trans_inv_where = InBra>
class libint2::CR_DerivGauss< IntType, part, where, trans_inv_part, trans_inv_where >
Compute relation for (geometric) derivative Gaussian ints of generic type IntType .
It either reduces derivative Gaussian to other Gaussians, or optionally relates derivative integral to other integrals using translational invariance relation. The advantage of the latter is that it can be applied to contracted and solid harmonics integrals, and reduces the total number of derivatives to be computed.
- Template Parameters
-
| IntType | integral type |
| part | particle index of the function to be differentiated |
| where | position of the function to be differentiated |
| trans_inv_part | if non-negative, specifies the particle index of the function whose derivatives will be computed using translational invariance |
| trans_inv_where | the position of the function whose derivatives will be computed using translational invariance |
- Note
- Translational will be used iff
part == trans_inv_part && where == trans_inv_where