Go to the documentation of this file.
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;
96 FunctionProduct
operator * (
const AbsFunction &op1,
const AbsFunction &op2);
97 FunctionSum
operator + (
const AbsFunction &op1,
const AbsFunction &op2);
98 FunctionDifference
operator - (
const AbsFunction &op1,
const AbsFunction &op2);
99 FunctionQuotient
operator / (
const AbsFunction &op1,
const AbsFunction &op2);
100 FunctionNegation
operator - (
const AbsFunction &op1);
102 ConstTimesFunction
operator * (
double c,
const AbsFunction &op2);
103 ConstPlusFunction
operator + (
double c,
const AbsFunction &op2);
104 ConstMinusFunction
operator - (
double c,
const AbsFunction &op2);
105 ConstOverFunction
operator / (
double c,
const AbsFunction &op2);
107 ConstTimesFunction
operator * (
const AbsFunction &op2,
double c);
108 ConstPlusFunction
operator + (
const AbsFunction &op2,
double c);
109 ConstPlusFunction
operator - (
const AbsFunction &op2,
double c);
110 ConstTimesFunction
operator / (
const AbsFunction &op2,
double c);
112 FunctionTimesParameter
operator * (
const AbsFunction &op1,
const AbsParameter &op2);
113 FunctionPlusParameter
operator + (
const AbsFunction &op1,
const AbsParameter &op2);
114 FunctionPlusParameter
operator - (
const AbsFunction &op1,
const AbsParameter &op2);
115 FunctionTimesParameter
operator / (
const AbsFunction &op1,
const AbsParameter &op2);
117 FunctionTimesParameter
operator * (
const AbsParameter &op1,
const AbsFunction &op2);
118 FunctionPlusParameter
operator + (
const AbsParameter &op1,
const AbsFunction &op2);
119 FunctionPlusParameter
operator - (
const AbsParameter &op1,
const AbsFunction &op2);
120 FunctionTimesParameter
operator / (
const AbsParameter &op1,
const AbsFunction &op2);
122 FunctionConvolution
convolve (
const AbsFunction &op1,
const AbsFunction &op2,
double x0,
double x1);
123 FunctionDirectProduct
operator % (
const AbsFunction &op1,
const AbsFunction &op2);
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); \
Derivative derivative(const Variable &v) const
FunctionConvolution convolve(const AbsFunction &op1, const AbsFunction &op2, double x0, double x1)
const typedef AbsFunction & GENFUNCTION
FunctionProduct operator*(const AbsFunction &op1, const AbsFunction &op2)
virtual unsigned int dimensionality() const
virtual AbsFunction * clone() const =0
they are gone ZOOM Features Discontinued The following features of the ZOOM package were felt to be extreme overkill These have been after checking that no existing user code was utilizing as in SpaceVector v
virtual double operator()(double argument) const =0
FunctionSum operator+(const AbsFunction &op1, const AbsFunction &op2)
FunctionDifference operator-(const AbsFunction &op1, const AbsFunction &op2)
FunctionDirectProduct operator%(const AbsFunction &op1, const AbsFunction &op2)
virtual bool hasAnalyticDerivative() const
virtual Derivative partial(unsigned int) const
FunctionQuotient operator/(const AbsFunction &op1, const AbsFunction &op2)