22 #include <smart_ptr.h> 24 #ifndef _libint2_src_bin_libint_dgarc_h_ 25 #define _libint2_src_bin_libint_dgarc_h_ 29 class RecurrenceRelation;
35 SafePtr<DGVertex> orig_;
36 SafePtr<DGVertex> dest_;
39 DGArc(
const SafePtr<DGVertex>& orig,
const SafePtr<DGVertex>& dest);
42 SafePtr<DGVertex> orig()
const {
return orig_; }
43 SafePtr<DGVertex> dest()
const {
return dest_; }
46 virtual void print(std::ostream& os)
const =0;
55 DGArcDirect(
const SafePtr<DGVertex>& orig,
const SafePtr<DGVertex>& dest) :
DGArc(orig,dest) {}
59 void print(std::ostream& os)
const 61 os <<
"DGArcDirect: connects " << orig().get() <<
" to " << dest().get();
73 virtual SafePtr<RecurrenceRelation> rr()
const =0;
76 DGArcRR(
const SafePtr<DGVertex>& orig,
const SafePtr<DGVertex>& dest);
89 DGArcRel(
const SafePtr<DGVertex>& orig,
const SafePtr<DGVertex>& dest,
90 const SafePtr<ArcRel>& rel);
96 void print(std::ostream& os)
const 98 os <<
"DGArcRel<T>: connects " << orig().get() <<
" to " << dest().get() << std::endl;
103 template <
class ArcRel>
105 const SafePtr<ArcRel>& rel) :
110 template <
class ArcRel>
virtual void print(std::ostream &os) const =0
Print out the arc.
Defaults definitions for various parameters assumed by Libint.
Definition: algebra.cc:23
Class DGArcRR describes arcs correspond to recurrence relations.
Definition: dgarc.h:67
Class DGArc describes arcs in a directed graph.
Definition: dgarc.h:33
RecurrenceRelation describes all recurrence relations.
Definition: rr.h:100
SafePtr< RecurrenceRelation > rr() const
Implementation of DGArcRR::rr()
Definition: dgarc.h:94
Class DGArcRel describes arcs in a directed graph which is represented by a relationship ArcRel...
Definition: dg.h:43
Class DGArcDirect describes arcs that does not correspond to any relationship.
Definition: dgarc.h:52
void print(std::ostream &os) const
Overload of DGArc::print()
Definition: dgarc.h:59
void print(std::ostream &os) const
Overload of DGArc::print()
Definition: dgarc.h:96