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;
143#define FUNCTION_OBJECT_DEF(classname) \
145 using Genfun::AbsFunction::operator(); \
146 virtual classname *clone() const override; \
149#define FUNCTION_OBJECT_IMP(classname) \
150inline classname *classname::clone() const \
152 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)
FunctionConvolution convolve(const AbsFunction &op1, const AbsFunction &op2, double x0, double x1)
FunctionDifference operator-(const AbsFunction &op1, const AbsFunction &op2)
const AbsFunction & GENFUNCTION