20 return (DoubleParamToArgAdaptor<F> *) _clone();
24AbsFunction *DoubleParamToArgAdaptor<F>::_clone ()
const {
25 return new DoubleParamToArgAdaptor<F>(*
this);
34 _scaleFactor0(
"Scale 0", 1.0, 0, 10),
35 _scaleFactor1(
"Scale 1", 1.0, 0, 10),
36 _function(function.clone()),
37 _parameterFetchMethod0(parameterFetchMethod0),
38 _parameterFetchMethod1(parameterFetchMethod1)
40 _parameterFetchMethod0(*_function).setLowerLimit(-std::numeric_limits<double>::max());
41 _parameterFetchMethod0(*_function).setUpperLimit(+std::numeric_limits<double>::max());
42 _parameterFetchMethod1(*_function).setLowerLimit(-std::numeric_limits<double>::max());
43 _parameterFetchMethod1(*_function).setUpperLimit(+std::numeric_limits<double>::max());
53 _scaleFactor0(right._scaleFactor0),
54 _scaleFactor1(right._scaleFactor1),
55 _parameterFetchMethod0(right._parameterFetchMethod0),
56 _parameterFetchMethod1(right._parameterFetchMethod1),
57 _function(right._function->clone())
59 _parameterFetchMethod0(*_function).setLowerLimit(-std::numeric_limits<double>::max());
60 _parameterFetchMethod0(*_function).setUpperLimit(+std::numeric_limits<double>::max());
61 _parameterFetchMethod1(*_function).setLowerLimit(-std::numeric_limits<double>::max());
62 _parameterFetchMethod1(*_function).setUpperLimit(+std::numeric_limits<double>::max());
70 <<
"Warning. DoubleParamToArgAdaptor called with scalar argument"
98 return _function->dimensionality()+1;
105 <<
"Warning: DoubleParamToArgAdaptor function/argument dimension mismatch"
112 for (
int i=0;i<dMinus;i++) aPrime[i]=a[i];
113 (_parameterFetchMethod0(*_function)).setValue(_scaleFactor0.getValue()*a[dMinus]);
114 (_parameterFetchMethod1(*_function)).setValue(_scaleFactor1.getValue()*a[dMinus]);
115 return (*_function)(a);
virtual AbsFunction * clone() const =0
virtual double operator()(double argument) const =0
unsigned int dimension() const
Parameter & scaleFactor0()
DoubleParamToArgAdaptor(const F &function, ScopedMethodPtr parameterFetchMethod0, ScopedMethodPtr paraemterFetchMethod1)
Parameter & scaleFactor1()
virtual double operator()(double argument) const override
virtual unsigned int dimensionality() const override
Parameter &(F::*) ScopedMethodPtr()