22 SignalType signal = m_Model->GetSignal(parameter);
24 if(signal.GetSize() !=
m_Sample.GetSize()) itkExceptionMacro(
"Signal size does not matche sample size!");
25 if(signal.GetSize() == 0) itkExceptionMacro(
"Signal is empty!");
34 ParametersType::SizeValueType paramCount = parameters.Size();
37 derivative.SetSize(paramCount,
m_Sample.Size());
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 for(MeasureType::SizeValueType j = 0; j<measureCount; ++j)
53 derivative[i][j] = (e1[j] - e0[j]) / ( 2 * m_DerivativeStepLength );
62 return m_Model->GetNumberOfParameters();
71 itkDebugMacro(
"setting Sample to " << sampleSet);
void GetDerivative(const ParametersType ¶meters, DerivativeType &derivative) const override
Superclass::DerivativeType DerivativeType
unsigned int GetNumberOfParameters(void) const override
itk::Array< double > SignalType
Superclass::MeasureType MeasureType
unsigned int GetNumberOfValues(void) const override
virtual MeasureType CalcMeasure(const ParametersType ¶meters, const SignalType &signal) const =0
MeasureType GetValue(const ParametersType ¶meter) const override
void SetSample(const SignalType &sampleSet) override