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

FunctionSum.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 // $Id: FunctionSum.cc,v 1.3 2003/09/06 14:04:14 boudreau Exp $
4 #include <assert.h>
5 
6 namespace Genfun {
7 FUNCTION_OBJECT_IMP(FunctionSum)
8 
9 FunctionSum::FunctionSum(const AbsFunction *arg1, const AbsFunction *arg2):
10  _arg1(arg1->clone()),
11  _arg2(arg2->clone())
12 {
13  if (arg1->dimensionality()!=arg2->dimensionality()) {
14  std::cout
15  << "Warning: dimension mismatch in function sum"
16  << std::endl;
17  assert(0);
18  }
19 }
20 
22 _arg1(right._arg1->clone()),
23 _arg2(right._arg2->clone())
24 {}
25 
26 unsigned int FunctionSum::dimensionality() const {
27  return _arg1->dimensionality();
28 }
29 
31 {
32  delete _arg1;
33  delete _arg2;
34 }
35 
36 
37 
38 double FunctionSum::operator ()(double x) const
39 {
40  return (*_arg1)(x)+(*_arg2)(x);
41 }
42 
43 
44 double FunctionSum::operator ()(const Argument & x) const
45 {
46  return (*_arg1)(x)+(*_arg2)(x);
47 }
48 
49 
50 
51 Derivative FunctionSum::partial(unsigned int index) const {
52  const AbsFunction & fPrime = _arg1->partial(index) + _arg2->partial(index);
53  return Derivative(&fPrime);
54 }
55 
56 
57 
58 } // namespace Genfun