31#ifndef _libint2_src_bin_libint_intsettoints_h_
32#define _libint2_src_bin_libint_intsettoints_h_
51 typedef typename I::iter_type ChildType;
59 static SafePtr<IntegralSet_to_Integrals<I>>
Instance(
const SafePtr<TargetType>& Tint,
unsigned int dir) {
64 assert(this_ptr->num_children() != 0);
67 static bool directional() {
return false; }
71 unsigned int num_children()
const override {
return children_.size(); }
73 SafePtr<TargetType>
target()
const {
return target_; };
75 SafePtr<ChildType>
child(
unsigned int i)
const;
77 SafePtr<DGVertex>
rr_target()
const override {
return static_pointer_cast<DGVertex,TargetType>(
target()); }
79 SafePtr<DGVertex>
rr_child(
unsigned int i)
const override {
return static_pointer_cast<DGVertex,ChildType>(
child(i)); }
91 SafePtr<TargetType> target_;
92 std::vector< SafePtr<ChildType> > children_;
95 std::string generate_label()
const override {
96 return "IntegralSet_to_Integrals";
100 std::string spfunction_call(
const SafePtr<CodeContext>& context,
101 const SafePtr<ImplicitDimensions>& dims)
const override
103 throw std::logic_error(
"IntegralSet_to_Integrals::spfunction_call -- should not call this function");
110 IntegralSet_to_Integrals<I>::IntegralSet_to_Integrals(
const SafePtr<I>& Tint) :
116 SubIteratorBase<I> siter(Tint);
119 for(siter.init(); siter; ++siter)
120 children_.push_back(siter.elem());
124 SafePtr<typename I::iter_type>
127 return children_.at(i);
AlgebraicOperator is an algebraic operator that acts on objects of type T.
Definition: algebra.h:50
IntegralSet_to_Integrals_base is dummy class used for dynamic casts only.
Definition: intset_to_ints.h:38
IntegralSet_to_Integrals converts I, a set of integrals, to individual integrals.
Definition: intset_to_ints.h:48
SafePtr< ChildType > child(unsigned int i) const
child(i) returns pointer i-th child
Definition: intset_to_ints.h:125
SafePtr< DGVertex > rr_target() const override
Implementation of RecurrenceRelation's target()
Definition: intset_to_ints.h:77
SafePtr< DGVertex > rr_child(unsigned int i) const override
Implementation of RecurrenceRelation's child()
Definition: intset_to_ints.h:79
bool is_simple() const override
Implementation of RecurrenceRelation::is_simple()
Definition: intset_to_ints.h:81
RecurrenceRelation::ExprType ExprType
The type of expressions in which RecurrenceRelations result.
Definition: intset_to_ints.h:53
bool invariant_type() const override
Reimplementation of RecurrenceRelation::invariant_type()
Definition: intset_to_ints.h:85
unsigned int num_children() const override
Implementation of RecurrenceRelation::num_children()
Definition: intset_to_ints.h:71
SafePtr< TargetType > target() const
target() returns pointer to target
Definition: intset_to_ints.h:73
static SafePtr< IntegralSet_to_Integrals< I > > Instance(const SafePtr< TargetType > &Tint, unsigned int dir)
Return an instance if applicable, or a null pointer otherwise.
Definition: intset_to_ints.h:59
RecurrenceRelation describes all recurrence relations.
Definition: rr.h:99
Defaults definitions for various parameters assumed by Libint.
Definition: algebra.cc:24