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
6namespace Genfun {
7FUNCTION_OBJECT_IMP(FunctionSum)
8
9FunctionSum::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
22AbsFunction(right),
23_arg1(right._arg1->clone()),
24_arg2(right._arg2->clone())
25{}
26
27unsigned int FunctionSum::dimensionality() const {
28 return _arg1->dimensionality();
29}
30
32{
33 delete _arg1;
34 delete _arg2;
35}
36
37
38
39double FunctionSum::operator ()(double x) const
40{
41 return (*_arg1)(x)+(*_arg2)(x);
42}
43
44
45double FunctionSum::operator ()(const Argument & x) const
46{
47 return (*_arg1)(x)+(*_arg2)(x);
48}
49
50
51
52Derivative FunctionSum::partial(unsigned int index) const {
53 const AbsFunction & fPrime = _arg1->partial(index) + _arg2->partial(index);
54 return Derivative(&fPrime);
55}
56
57
58
59} // namespace Genfun
#define FUNCTION_OBJECT_IMP(classname)
virtual Derivative partial(unsigned int) const
Definition: AbsFunction.cc:40
virtual unsigned int dimensionality() const
Definition: AbsFunction.cc:79
FunctionSum(const AbsFunction *arg1, const AbsFunction *arg2)
Definition: FunctionSum.cc:9
virtual ~FunctionSum()
Definition: FunctionSum.cc:31
virtual unsigned int dimensionality() const
Definition: FunctionSum.cc:27
Derivative partial(unsigned int) const
Definition: FunctionSum.cc:52
virtual double operator()(double argument) const
Definition: FunctionSum.cc:39