11#define AbsFunction_h 1
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