00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef FunctionDifference_h
00011 #define FunctionDifference_h 1
00012 #include "CLHEP/GenericFunctions/AbsFunction.hh"
00013
00014 namespace Genfun {
00015
00020 class FunctionDifference : public AbsFunction {
00021
00022 FUNCTION_OBJECT_DEF(FunctionDifference)
00023
00024 public:
00025
00026
00027 FunctionDifference(const AbsFunction* arg1, const AbsFunction *arg2);
00028
00029
00030 FunctionDifference(const FunctionDifference &right);
00031
00032
00033 virtual ~FunctionDifference();
00034
00035
00036 virtual double operator ()(double argument) const;
00037 virtual double operator ()(const Argument & a) const;
00038
00039
00040 virtual unsigned int dimensionality() const;
00041
00042
00043 Derivative partial (unsigned int) const;
00044
00045
00046 virtual bool hasAnalyticDerivative() const {return true;}
00047
00048 private:
00049
00050
00051 const FunctionDifference & operator=(const FunctionDifference &right);
00052
00053 const AbsFunction *_arg1;
00054 const AbsFunction *_arg2;
00055
00056 };
00057 }
00058 #endif