CLHEP 2.4.6.4
C++ Class Library for High Energy Physics
Loading...
Searching...
No Matches
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 $
3#include "CLHEP/GenericFunctions/FunctionSum.hh"
4#include <assert.h>
5#include <iostream>
6
7namespace Genfun {
8FUNCTION_OBJECT_IMP(FunctionSum)
9
11 _arg1(arg1->clone()),
12 _arg2(arg2->clone())
13{
14 if (arg1->dimensionality()!=arg2->dimensionality()) {
15 std::cout
16 << "Warning: dimension mismatch in function sum"
17 << std::endl;
18 assert(0);
19 }
20}
21
23AbsFunction(right),
24_arg1(right._arg1->clone()),
25_arg2(right._arg2->clone())
26{}
27
28unsigned int FunctionSum::dimensionality() const {
29 return _arg1->dimensionality();
30}
31
33{
34 delete _arg1;
35 delete _arg2;
36}
37
38
39
40double FunctionSum::operator ()(double x) const
41{
42 return (*_arg1)(x)+(*_arg2)(x);
43}
44
45
46double FunctionSum::operator ()(const Argument & x) const
47{
48 return (*_arg1)(x)+(*_arg2)(x);
49}
50
51
52
53Derivative FunctionSum::partial(unsigned int index) const {
54 const AbsFunction & fPrime = _arg1->partial(index) + _arg2->partial(index);
55 return Derivative(&fPrime);
56}
57
58
59
60} // namespace Genfun
#define FUNCTION_OBJECT_IMP(classname)
Definition: AbsFunction.hh:149
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:10
virtual ~FunctionSum()
Definition: FunctionSum.cc:32
virtual unsigned int dimensionality() const override
Definition: FunctionSum.cc:28
Derivative partial(unsigned int) const override
Definition: FunctionSum.cc:53
virtual double operator()(double argument) const override
Definition: FunctionSum.cc:40
Definition: Abs.hh:14
FunctionNoop Derivative
Definition: AbsFunction.hh:42