CLHEP VERSION Reference Documentation
   
CLHEP Home Page     CLHEP Documentation     CLHEP Bug Reports

CLHEP/GenericFunctions/F1D.hh
Go to the documentation of this file.
1 // -*- C++ -*------------------------------------------------------
2 //
3 // This class is an adaptor from any function (double *f)(double x)
4 // of one real variable, to generic functions. This allows one
5 // to plot, differentiate, sum, compose, etc, any standard C or
6 // C++ math function by converting it to a Generic Function.
7 //
8 // Joe Boudreau October 2012
9 //-----------------------------------------------------
10 #ifndef F1D_h
11 #define F1D_h 1
13 namespace Genfun {
14 
19  class F1D : public AbsFunction {
20 
21  typedef double (*FcnPtr)(double);
22 
24 
25  public:
26 
27  // Constructor
28  F1D(FcnPtr fcn):p(fcn){};
29 
30  // Destructor
31  virtual ~F1D(){};
32 
33  // Copy constructor
34  F1D(const F1D &right):AbsFunction(),p(right.p){};
35 
36  // Retreive function value
37  virtual double operator ()(double x) const {
38  return (*p)(x);
39  }
40 
41  virtual double operator ()(const Argument & a) const {return operator() (a[0]);}
42 
43  private:
44 
45  // It is illegal to assign a F1D
46  const F1D & operator=(const F1D &right);
47 
48  // Data:
49  FcnPtr p;
50 
51  };
53 } // namespace Genfun
54 #endif
#define double(obj)
Definition: excDblThrow.cc:32
#define FUNCTION_OBJECT_DEF(classname)
virtual double operator()(double x) const
F1D(const F1D &right)
#define FUNCTION_OBJECT_IMP(classname)