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

FunctionComposition.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 // $Id: FunctionComposition.cc,v 1.3 2003/09/06 14:04:14 boudreau Exp $
4 #include <assert.h>
5 
6 namespace Genfun {
7 FUNCTION_OBJECT_IMP(FunctionComposition)
8 
9 FunctionComposition::FunctionComposition(const AbsFunction *arg1, const AbsFunction *arg2):_arg1(arg1->clone()),_arg2(arg2->clone())
10 {
11  if (arg1->dimensionality()!=1) {
12  std::cout
13  << "Warning: dimension mismatch in function convolution"
14  << std::endl;
15  assert(0);
16  }
17 }
18 
20 AbsFunction(right),
21 _arg1(right._arg1->clone()),
22 _arg2(right._arg2->clone())
23 {}
24 
26 {
27  delete _arg1;
28  delete _arg2;
29 }
30 
32  return _arg2->dimensionality();
33 }
34 
35 double FunctionComposition::operator ()(double argument) const {
36  if (dimensionality()!=1) {
37  std::cerr
38  << "Warning: LifetimeResolutionConvolution function/argument "
39  << "dimension mismatch"
40  << std::endl;
41  assert(0);
42  return 0;
43  }
44  else {
45  return (*_arg1)((*_arg2)(argument));
46  }
47 }
48 
50  if (v.dimension()!=_arg2->dimensionality()) {
51  std::cerr
52  << "Warning: FunctionComposition function/argument dimension mismatch"
53  << std::endl;
54  assert(0);
55  return 0;
56  }
57  else {
58  return (*_arg1)((*_arg2)(v));
59  }
60 }
61 
62 
63 Derivative FunctionComposition::partial(unsigned int index) const {
64  const AbsFunction & fPrime = (_arg1->partial(0))(*_arg2)*_arg2->partial(index);
65  return Derivative(&fPrime);
66 }
67 
68 
69 } // namespace Genfun
Genfun::FunctionComposition::FunctionComposition
FunctionComposition(const AbsFunction *arg1, const AbsFunction *arg2)
Definition: FunctionComposition.cc:9
Genfun::Derivative
FunctionNoop Derivative
Definition: CLHEP/GenericFunctions/AbsFunction.hh:40
Genfun::AbsFunction
Definition: CLHEP/GenericFunctions/AbsFunction.hh:48
Genfun::FunctionComposition::~FunctionComposition
virtual ~FunctionComposition()
Definition: FunctionComposition.cc:25
FunctionComposition.hh
Genfun::AbsFunction::dimensionality
virtual unsigned int dimensionality() const
Definition: AbsFunction.cc:79
v
they are gone ZOOM Features Discontinued The following features of the ZOOM package were felt to be extreme overkill These have been after checking that no existing user code was utilizing as in SpaceVector v
Definition: keyMergeIssues.doc:324
Genfun::Argument
Definition: CLHEP/GenericFunctions/Argument.hh:17
Genfun::FunctionComposition::partial
Derivative partial(unsigned int) const
Definition: FunctionComposition.cc:63
Genfun::FunctionComposition::dimensionality
virtual unsigned int dimensionality() const
Definition: FunctionComposition.cc:31
Genfun::FunctionNoop
Definition: CLHEP/GenericFunctions/FunctionNoop.hh:19
Genfun::FunctionComposition
Definition: CLHEP/GenericFunctions/FunctionComposition.hh:20
Genfun::AbsFunction::partial
virtual Derivative partial(unsigned int) const
Definition: AbsFunction.cc:40
Genfun::FunctionComposition::operator()
virtual double operator()(double argument) const
Definition: FunctionComposition.cc:35
FUNCTION_OBJECT_IMP
#define FUNCTION_OBJECT_IMP(classname)
Definition: CLHEP/GenericFunctions/AbsFunction.hh:156
Genfun
Definition: CLHEP/GenericFunctions/Abs.hh:14