11#define AbsFunction_h 1
12#include "CLHEP/GenericFunctions/Argument.hh"
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;
96FunctionProduct
operator * (
const AbsFunction &op1,
const AbsFunction &op2);
97FunctionSum
operator + (
const AbsFunction &op1,
const AbsFunction &op2);
98FunctionDifference
operator - (
const AbsFunction &op1,
const AbsFunction &op2);
99FunctionQuotient
operator / (
const AbsFunction &op1,
const AbsFunction &op2);
100FunctionNegation
operator - (
const AbsFunction &op1);
102ConstTimesFunction
operator * (
double c,
const AbsFunction &op2);
103ConstPlusFunction
operator + (
double c,
const AbsFunction &op2);
104ConstMinusFunction
operator - (
double c,
const AbsFunction &op2);
105ConstOverFunction
operator / (
double c,
const AbsFunction &op2);
107ConstTimesFunction
operator * (
const AbsFunction &op2,
double c);
108ConstPlusFunction
operator + (
const AbsFunction &op2,
double c);
109ConstPlusFunction
operator - (
const AbsFunction &op2,
double c);
110ConstTimesFunction
operator / (
const AbsFunction &op2,
double c);
112FunctionTimesParameter
operator * (
const AbsFunction &op1,
const AbsParameter &op2);
113FunctionPlusParameter
operator + (
const AbsFunction &op1,
const AbsParameter &op2);
114FunctionPlusParameter
operator - (
const AbsFunction &op1,
const AbsParameter &op2);
115FunctionTimesParameter
operator / (
const AbsFunction &op1,
const AbsParameter &op2);
117FunctionTimesParameter
operator * (
const AbsParameter &op1,
const AbsFunction &op2);
118FunctionPlusParameter
operator + (
const AbsParameter &op1,
const AbsFunction &op2);
119FunctionPlusParameter
operator - (
const AbsParameter &op1,
const AbsFunction &op2);
120FunctionTimesParameter
operator / (
const AbsParameter &op1,
const AbsFunction &op2);
122FunctionConvolution
convolve (
const AbsFunction &op1,
const AbsFunction &op2,
double x0,
double x1);
123FunctionDirectProduct
operator % (
const AbsFunction &op1,
const AbsFunction &op2);
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); \
159#include "CLHEP/GenericFunctions/FunctionProduct.hh"
160#include "CLHEP/GenericFunctions/FunctionSum.hh"
161#include "CLHEP/GenericFunctions/FunctionDifference.hh"
162#include "CLHEP/GenericFunctions/FunctionQuotient.hh"
163#include "CLHEP/GenericFunctions/FunctionConvolution.hh"
164#include "CLHEP/GenericFunctions/FunctionNegation.hh"
165#include "CLHEP/GenericFunctions/FunctionDirectProduct.hh"
166#include "CLHEP/GenericFunctions/FunctionComposition.hh"
167#include "CLHEP/GenericFunctions/ConstPlusFunction.hh"
168#include "CLHEP/GenericFunctions/ConstTimesFunction.hh"
169#include "CLHEP/GenericFunctions/ConstMinusFunction.hh"
170#include "CLHEP/GenericFunctions/ConstOverFunction.hh"
171#include "CLHEP/GenericFunctions/FunctionPlusParameter.hh"
172#include "CLHEP/GenericFunctions/FunctionTimesParameter.hh"
173#include "CLHEP/GenericFunctions/FunctionNoop.hh"
174#include "CLHEP/GenericFunctions/ParameterComposition.hh"
virtual Derivative partial(unsigned int) const
virtual unsigned int dimensionality() const
virtual bool hasAnalyticDerivative() const
virtual AbsFunction * clone() const =0
Derivative derivative(const Variable &v) 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