6 #include "GeoGenericFunctions/Sigma.h" 10 FUNCTION_OBJECT_IMP(Sigma)
12 void Sigma::accumulate( const AbsFunction & fcn) {
13 _fcn.push_back(fcn.clone());
20 Sigma::Sigma(
const Sigma & right) : AbsFunction(right)
22 for (
size_t i=0; i<right._fcn.size();i++) {
23 _fcn.push_back(right._fcn[i]->clone());
27 unsigned int Sigma::dimensionality()
const {
28 if (_fcn.size()==0)
throw std::runtime_error(
"Cannot determine dimensionality from empty sum");
29 return _fcn[0]->dimensionality();
34 for (
size_t i=0; i<_fcn.size();i++) {
39 double Sigma::operator ()(
double x)
const 42 for (
size_t i=0;i<_fcn.size();i++) retVal += (*_fcn[i])(x);
47 double Sigma::operator ()(
const Argument & x)
const 50 for (
size_t i=0;i<_fcn.size();i++) retVal += (*_fcn[i])(x);
56 Derivative Sigma::partial(
unsigned int index)
const {
58 for (
size_t i=0;i<_fcn.size();i++) {
59 fPrime.accumulate(_fcn[i]->partial(index));
61 return Derivative(&fPrime);