8#ifndef sumelementformula_hh
9#define sumelementformula_hh
17#define SumElemFormConstr_D 0
18#define SumElemFormDestr_D 0
19#define SumElemFormClone_D 0
34 template<
class F,
class H = F,
class J = F,
35 class G =
typename Realtype<F>::type>
47 : frm1_(
frm1), frm2_(), a_(a)
49 DEBUGL(SumElemFormConstr_D,
"frm1 = " <<
frm1);
53 DEBUGL(SumElemFormDestr_D,
"Delete " << *
this)
58 const Real t = 0.0)
const
60 F v = frm1_(elm, p,t);
67 const Real t = 0.0)
const
69 F v = frm1_(elm, p,t);
76 const Real t = 0.0)
const
78 F v = frm1_(elm, p,t);
86 DEBUGL(SumElemFormClone_D, *
this <<
" = *" <<
this);
90 virtual std::ostream&
info(std::ostream&
os)
const {
112 DEBUGL(SumElemFormConstr_D,
113 "frm1 = " <<
frm1 <<
", frm2 = " <<
frm2 <<
", a = " << a);
123 ElementFormulaContainer<Real>
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual F operator()(const ElementWithCell< G > &elm, const Real p, const Real t=0.0) const
virtual FrmE_Sum< F, H, J, G > * clone() const
Virtual copy constructor.
#define DEBUGL(doit, msg)
ElementFormulaContainer< Real > operator-(const ElementFormulaContainer< Real > frm, const Real a)
Simple subtracting of a element formulas and a constant via –operator.
std::string typeOf(const T &t)
Frm_Sum< Real > operator+(const Formula< Real > &frm, const Real a)
Set< F > makeSet(uint n, const F &first,...)
std::complex< Real > Cmplx
Type for a complex number. It also depends on the setting of Real.