7 #include "GeoGenericFunctions/FunctionSum.h" 12 FUNCTION_OBJECT_IMP(FunctionSum)
14 FunctionSum::FunctionSum(const AbsFunction *arg1, const AbsFunction *arg2):
18 if (arg1->dimensionality()!=arg2->dimensionality()) {
19 throw std::runtime_error (
"FunctionSum: dimension mismatch");
23 FunctionSum::FunctionSum(
const FunctionSum & right) :
25 _arg1(right._arg1->clone()),
26 _arg2(right._arg2->clone())
29 unsigned int FunctionSum::dimensionality()
const {
30 return _arg1->dimensionality();
33 FunctionSum::~FunctionSum()
41 double FunctionSum::operator ()(
double x)
const 43 return (*_arg1)(x)+(*_arg2)(x);
47 double FunctionSum::operator ()(
const Argument & x)
const 49 return (*_arg1)(x)+(*_arg2)(x);
54 Derivative FunctionSum::partial(
unsigned int index)
const {
55 const Derivative & d1=_arg1->partial(index);
56 const Derivative & d2=_arg2->partial(index);
57 const AbsFunction & fPrime = d1+d2;
58 return Derivative(&fPrime);