23 SignalType signal = m_Model->GetSignal(parameter);
25 if(signal.GetSize() !=
m_Sample.GetSize()) itkExceptionMacro(
"Signal size does not matche sample size!");
26 if(signal.GetSize() == 0) itkExceptionMacro(
"Signal is empty!");
35 ParametersType::SizeValueType paramCount = parameters.Size();
37 derivative.SetSize(paramCount);
39 for ( ParametersType::SizeValueType i = 0; i < paramCount; i++ )
41 ParametersType newParameters = parameters;
42 newParameters[i] -= m_DerivativeStepLength;
46 newParameters = parameters;
47 newParameters[i] += m_DerivativeStepLength;
51 derivative[i] = (e1 - e0) / ( 2 * m_DerivativeStepLength );
57 return m_Model->GetNumberOfParameters();
62 itkDebugMacro(
"setting Sample to " << sampleSet);
unsigned int GetNumberOfParameters(void) const override
void SetSample(const SignalType &sampleSet) override
MeasureType GetValue(const ParametersType ¶meter) const override
void GetDerivative(const ParametersType ¶meters, DerivativeType &derivative) const override
Superclass::DerivativeType DerivativeType
virtual MeasureType CalcMeasure(const ParametersType ¶meters, const SignalType &signal) const =0
itk::Array< double > SignalType
Superclass::MeasureType MeasureType