11 #define AbsFunction_h 1 23 class FunctionProduct;
25 class FunctionDifference;
26 class FunctionQuotient;
27 class FunctionNegation;
28 class FunctionConvolution;
29 class FunctionDirectProduct;
30 class FunctionComposition;
31 class ConstPlusFunction;
32 class ConstTimesFunction;
33 class ConstMinusFunction;
34 class ConstOverFunction;
35 class FunctionPlusParameter;
36 class FunctionTimesParameter;
37 class FunctionNumDeriv;
65 virtual double operator() (
double argument)
const=0;
81 Derivative
prime()
const;
87 virtual Derivative
partial(
unsigned int)
const;
144 #define FUNCTION_OBJECT_DEF(classname) \ 146 virtual FunctionComposition operator()(const AbsFunction &function) const; \ 147 virtual ParameterComposition operator()(const AbsParameter &p) const; \ 148 virtual classname *clone() const; \ 156 #define FUNCTION_OBJECT_IMP(classname) \ 157 inline FunctionComposition classname::operator()(const AbsFunction & function) const\ 159 return AbsFunction::operator() (function); \ 161 inline ParameterComposition classname::operator()(const AbsParameter & p) const\ 163 return AbsFunction::operator() (p); \ 165 inline classname *classname::clone() const \ 167 return new classname(*this); \ FunctionSum operator+(const AbsFunction &op1, const AbsFunction &op2)
virtual double operator()(double argument) const =0
FunctionDifference operator-(const AbsFunction &op1, const AbsFunction &op2)
const AbsFunction & GENFUNCTION
FunctionDirectProduct operator%(const AbsFunction &op1, const AbsFunction &op2)
FunctionQuotient operator/(const AbsFunction &op1, const AbsFunction &op2)
Derivative derivative(const Variable &v) const
virtual Derivative partial(unsigned int) const
virtual unsigned int dimensionality() const
virtual bool hasAnalyticDerivative() const
FunctionConvolution convolve(const AbsFunction &op1, const AbsFunction &op2, double x0, double x1)
FunctionProduct operator*(const AbsFunction &op1, const AbsFunction &op2)
virtual AbsFunction * clone() const =0