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;
40 class ParameterComposition;
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) \
157inline FunctionComposition classname::operator()(const AbsFunction & function) const\
159 return AbsFunction::operator() (function); \
161inline ParameterComposition classname::operator()(const AbsParameter & p) const\
163 return AbsFunction::operator() (p); \
165inline classname *classname::clone() const \
167 return new classname(*this); \
AbsFunction(const AbsFunction &right)
virtual bool hasAnalyticDerivative() const
virtual AbsFunction * clone() const =0
Derivative derivative(const Variable &v) const
virtual Derivative partial(unsigned int) const
virtual unsigned int dimensionality() const
virtual double operator()(double argument) const =0
FunctionQuotient operator/(const AbsFunction &op1, const AbsFunction &op2)
FunctionDirectProduct operator%(const AbsFunction &op1, const AbsFunction &op2)
FunctionSum operator+(const AbsFunction &op1, const AbsFunction &op2)
FunctionProduct operator*(const AbsFunction &op1, const AbsFunction &op2)
const AbsFunction & GENFUNCTION
FunctionConvolution convolve(const AbsFunction &op1, const AbsFunction &op2, double x0, double x1)
FunctionDifference operator-(const AbsFunction &op1, const AbsFunction &op2)