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

CLHEP/GenericFunctions/FunctionDirectProduct.hh
Go to the documentation of this file.
1 // -*- C++ -*-
2 // $Id: FunctionDirectProduct.hh,v 1.2 2003/09/06 14:04:13 boudreau Exp $
3 //--------------------------FunctionDirectProduct---------------------------//
4 // //
5 // FunctionDirectProduct, result of multiplication of taking the direct //
6 // product of two functions: f(x)*g(y)= h(x,y). The direct product always //
7 // gives a function taking an argument of higher dimensionality than the //
8 // arguments. //
9 // //
10 // Joe Boudreau, Petar Maksimovic, November 1999 //
11 // //
12 //--------------------------------------------------------------------------//
13 #ifndef FunctionDirectProduct_h
14 #define FunctionDirectProduct_h 1
16 
17 namespace Genfun {
18 
24 
26 
27  public:
28 
29  // Constructor
30  FunctionDirectProduct(const AbsFunction *arg1, const AbsFunction *arg2);
31 
32  // Copy constructor
34 
35  // Destructor
36  virtual ~FunctionDirectProduct();
37 
38  // Retreive function value
39  virtual double operator ()(double argument) const; // Gives an error.
40  virtual double operator ()(const Argument & a) const; // Must use this one
41 
42  // Dimensionality
43  virtual unsigned int dimensionality() const;
44 
45  // Derivative.
46  Derivative partial (unsigned int) const;
47 
48  // Does this function have an analytic derivative?
49  virtual bool hasAnalyticDerivative() const {return true;}
50 
51  private:
52 
53  // It is illegal to assign a FunctionDirectProduct
54  const FunctionDirectProduct & operator=(const FunctionDirectProduct &right);
55 
56  AbsFunction *_arg1;
57  AbsFunction *_arg2;
58  unsigned int _m; // dimension of arg1
59  unsigned int _n; // dimension of arg2
60 
61  };
62 } // namespace Genfun
63 #endif
Genfun::FunctionDirectProduct::FunctionDirectProduct
FunctionDirectProduct(const AbsFunction *arg1, const AbsFunction *arg2)
Definition: FunctionDirectProduct.cc:9
Genfun::FunctionDirectProduct::operator()
virtual double operator()(double argument) const
Definition: FunctionDirectProduct.cc:58
a
@ a
Definition: testCategories.cc:125
Genfun::AbsFunction
Definition: CLHEP/GenericFunctions/AbsFunction.hh:48
Genfun::FunctionDirectProduct::~FunctionDirectProduct
virtual ~FunctionDirectProduct()
Definition: FunctionDirectProduct.cc:27
AbsFunction.hh
Genfun::Argument
Definition: CLHEP/GenericFunctions/Argument.hh:17
Genfun::FunctionNoop
Definition: CLHEP/GenericFunctions/FunctionNoop.hh:19
Genfun::FunctionDirectProduct::dimensionality
virtual unsigned int dimensionality() const
Definition: FunctionDirectProduct.cc:54
FUNCTION_OBJECT_DEF
#define FUNCTION_OBJECT_DEF(classname)
Definition: CLHEP/GenericFunctions/AbsFunction.hh:144
Genfun::FunctionDirectProduct::partial
Derivative partial(unsigned int) const
Definition: FunctionDirectProduct.cc:69
Genfun::FunctionDirectProduct::hasAnalyticDerivative
virtual bool hasAnalyticDerivative() const
Definition: CLHEP/GenericFunctions/FunctionDirectProduct.hh:49
Genfun
Definition: CLHEP/GenericFunctions/Abs.hh:14
Genfun::FunctionDirectProduct
Definition: CLHEP/GenericFunctions/FunctionDirectProduct.hh:23