34 _scaleFactor(
"Sigma", 1.0, 0, 10),
35 _function(function.clone()),
36 _parameterFetchMethod(parameterFetchMethod)
38 _parameterFetchMethod(*_function).setLowerLimit(-DBL_MAX);
39 _parameterFetchMethod(*_function).setUpperLimit(+DBL_MAX);
49 _scaleFactor(right._scaleFactor),
50 _parameterFetchMethod(right._parameterFetchMethod),
51 _function(right._function->
clone())
53 _parameterFetchMethod(*_function).setLowerLimit(-DBL_MAX);
54 _parameterFetchMethod(*_function).setUpperLimit(+DBL_MAX);
62 <<
"Warning. ParamToArgAdaptor called with scalar argument"
80 return _function->dimensionality()+1;
87 <<
"Warning: ParamToArgAdaptor function/argument dimension mismatch"
94 for (
int i=0;i<dMinus;i++) aPrime[i]=a[i];
95 (_parameterFetchMethod(*_function)).setValue(_scaleFactor.getValue()*a[dMinus]);
96 return (*_function)(a);
virtual AbsFunction * clone() const =0
virtual double operator()(double argument) const =0
unsigned int dimension() const
virtual double operator()(double argument) const override
virtual unsigned int dimensionality() const override
ParamToArgAdaptor(const F &function, ScopedMethodPtr parameterFetchMethod)
Parameter & scaleFactor()
virtual ~ParamToArgAdaptor()
Parameter &(F::* ScopedMethodPtr)()