|
static bool | directional () |
| always directional! Cartesian derivatives are applied in a particular direction
|
|
static SafePtr< RRImpl > | Instance (const SafePtr< TargetType > &Tint, unsigned int dir) |
| Return an instance if applicable, or a null pointer otherwise.
|
|
static SafePtr< CR_DerivGauss< IntType, part, where, trans_inv_part, trans_inv_where > > | Instance (const SafePtr< TargetType > &Tint, unsigned int dir) |
| Return an instance if applicable, or a null pointer otherwise.
|
|
|
unsigned int | num_children () const |
| Implementation of RecurrenceRelation::num_children()
|
|
SafePtr< DGVertex > | rr_target () const |
| Implementation of RecurrenceRelation::rr_target()
|
|
SafePtr< DGVertex > | rr_child (unsigned int i) const |
| Implementation of RecurrenceRelation::rr_child()
|
|
bool | is_simple () const |
| Implementation of RecurrenceRelation::is_simple()
|
|
std::string | generate_label () const |
| Implementation of RecurrenceRelation::generate_label()
|
|
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 |
|
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.
|
|
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.
|
|
| GenericRecurrenceRelation (const SafePtr< TargetType > &Tint, unsigned int dir) |
|
unsigned int | dir () const |
|
const SafePtr< DGVertex > & | add_child (const SafePtr< DGVertex > &child) |
| add child
|
|
const SafePtr< 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 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.
|
|
static bool | default_directional () |
| is this recurrence relation parameterized by a direction (x, y, or z). More...
|
|
SafePtr< TargetType > | target_ |
|
unsigned int | nflops_ |
|
std::string | label_ |
|
SafePtr< 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