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
13namespace 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 FUNCTION_OBJECT_DEF(classname)
#define FUNCTION_OBJECT_IMP(classname)
virtual double operator()(double x) const
F1D(const F1D &right)
#define double(obj)
Definition: excDblThrow.cc:32
@ a