19 #ifndef rtkDualEnergyNegativeLogLikelihood_h 20 #define rtkDualEnergyNegativeLogLikelihood_h 84 for (
unsigned int i = 0; i < 2; i++)
95 itkExceptionMacro(<<
"Not implemented");
104 vnl_vector<double> variances =
GetVariances(parameters);
106 long double measure = 0;
112 measure += std::log((
long double)variances[i]) +
122 vnl_vector<double> attenuationFactors;
127 vnl_vector<double> intermediate;
130 intermediate[i] = i + 1;
131 intermediate = element_product(attenuationFactors, intermediate);
virtual vnl_vector< double > ForwardModel(const ParametersType &lineIntegrals) const
MeasureType GetValue(const ParametersType ¶meters) const override
unsigned int m_NumberOfEnergies
Superclass::ParametersType ParametersType
Superclass::MaterialAttenuationsType MaterialAttenuationsType
Superclass::MeasureType MeasureType
unsigned int m_NumberOfSpectralBins
DualEnergyNegativeLogLikelihood()
void GetAttenuationFactors(const ParametersType &lineIntegrals, vnl_vector< double > &attenuationFactors) const
Superclass::DetectorResponseType DetectorResponseType
Superclass::IncidentSpectrumType IncidentSpectrumType
MeasuredDataType m_MeasuredData
Superclass::DerivativeType DerivativeType
ThresholdsType m_Thresholds
void GetDerivative(const ParametersType &, DerivativeType &) const override
IncidentSpectrumType m_IncidentSpectrum
vnl_matrix< float > IncidentSpectrumType
vnl_vector< double > GetVariances(const ParametersType &lineIntegrals) const override
Superclass::MeasuredDataType MeasuredDataType
~DualEnergyNegativeLogLikelihood() override=default
itk::VariableSizeMatrix< float > m_Fischer
vnl_matrix< double > MaterialAttenuationsType
DetectorResponseType m_DetectorResponse
Superclass::MeasureType MeasureType
unsigned int m_NumberOfMaterials
void Initialize() override
vnl_matrix< double > m_IncidentSpectrumAndDetectorResponseProduct
itk::VariableLengthVector< double > MeasuredDataType
vnl_matrix< double > DetectorResponseType