32#ifndef _libint2_src_bin_libint_intsettoints_h_
33#define _libint2_src_bin_libint_intsettoints_h_
53 typedef typename I::iter_type ChildType;
61 static std::shared_ptr<IntegralSet_to_Integrals<I>>
Instance(
62 const std::shared_ptr<TargetType>& Tint,
unsigned int dir) {
65 std::shared_ptr<IntegralSet_to_Integrals<I>> this_ptr(
68 assert(this_ptr->num_children() != 0);
71 static bool directional() {
return false; }
74 unsigned int num_children()
const override {
return children_.size(); }
76 std::shared_ptr<TargetType>
target()
const {
return target_; };
78 std::shared_ptr<ChildType>
child(
unsigned int i)
const;
80 std::shared_ptr<DGVertex>
rr_target()
const override {
81 return std::static_pointer_cast<DGVertex, TargetType>(
target());
84 std::shared_ptr<DGVertex>
rr_child(
unsigned int i)
const override {
85 return std::static_pointer_cast<DGVertex, ChildType>(
child(i));
96 std::shared_ptr<TargetType> target_;
97 std::vector<std::shared_ptr<ChildType>> children_;
100 std::string generate_label()
const override {
101 return "IntegralSet_to_Integrals";
106 std::string spfunction_call(
107 const std::shared_ptr<CodeContext>& context,
108 const std::shared_ptr<ImplicitDimensions>& dims)
const override {
109 throw std::logic_error(
110 "IntegralSet_to_Integrals::spfunction_call -- should not call this "
116IntegralSet_to_Integrals<I>::IntegralSet_to_Integrals(
117 const std::shared_ptr<I>& Tint)
122 SubIteratorBase<I> siter(Tint);
125 for (siter.init(); siter; ++siter) children_.push_back(siter.elem());
130 unsigned int i)
const {
131 return children_.at(i);
AlgebraicOperator is an algebraic operator that acts on objects of type T.
Definition algebra.h:47
IntegralSet_to_Integrals_base is dummy class used for dynamic casts only.
Definition intset_to_ints.h:39
IntegralSet_to_Integrals converts I, a set of integrals, to individual integrals.
Definition intset_to_ints.h:50
std::shared_ptr< DGVertex > rr_target() const override
Implementation of RecurrenceRelation's target()
Definition intset_to_ints.h:80
bool is_simple() const override
Implementation of RecurrenceRelation::is_simple()
Definition intset_to_ints.h:88
static std::shared_ptr< IntegralSet_to_Integrals< I > > Instance(const std::shared_ptr< TargetType > &Tint, unsigned int dir)
Return an instance if applicable, or a null pointer otherwise.
Definition intset_to_ints.h:61
std::shared_ptr< TargetType > target() const
target() returns pointer to target
Definition intset_to_ints.h:76
std::shared_ptr< ChildType > child(unsigned int i) const
child(i) returns pointer i-th child
Definition intset_to_ints.h:129
RecurrenceRelation::ExprType ExprType
The type of expressions in which RecurrenceRelations result.
Definition intset_to_ints.h:55
std::shared_ptr< DGVertex > rr_child(unsigned int i) const override
Implementation of RecurrenceRelation's child()
Definition intset_to_ints.h:84
bool invariant_type() const override
Reimplementation of RecurrenceRelation::invariant_type()
Definition intset_to_ints.h:90
unsigned int num_children() const override
Implementation of RecurrenceRelation::num_children()
Definition intset_to_ints.h:74
RecurrenceRelation describes all recurrence relations.
Definition rr.h:97
Defaults definitions for various parameters assumed by Libint.
Definition algebra.cc:24