2 #include <itkSingleValuedCostFunction.h> 3 #include "AnimaRelaxometryExport.h" 21 public itk::SingleValuedCostFunction
41 virtual MeasureType GetValue(const ParametersType ¶meters) const ITK_OVERRIDE;
42 virtual
void GetDerivative(const ParametersType ¶meters, DerivativeType &derivative) const ITK_OVERRIDE;
44 itkSetMacro(EchoSpacing,
double)
45 itkSetMacro(ExcitationFlipAngle,
double)
47 void SetT2RelaxometrySignals(ParametersType &relaxoSignals) {m_T2RelaxometrySignals = relaxoSignals;}
49 itkSetMacro(T1Value,
double)
50 void SetGaussianMeans(
std::vector <
double> &val) {m_GaussianMeans = val;}
52 itkSetMacro(GaussianIntegralTolerance,
double)
54 unsigned
int GetNumberOfParameters() const ITK_OVERRIDE
59 itkGetMacro(SigmaSquare,
double)
69 m_GaussianIntegralTolerance = 1.0e-8;
74 void PrepareDataForLLS()
const;
77 void SolveLinearLeastSquares()
const;
81 void operator=(
const Self&);
87 double m_ExcitationFlipAngle;
91 std::vector <double> m_GaussianMeans, m_GaussianVariances;
92 double m_GaussianIntegralTolerance;
99 mutable vnl_matrix <double> m_PredictedSignalAttenuations, m_CholeskyMatrix;
100 mutable double m_SigmaSquare;
itk::SmartPointer< Self > Pointer
itk::SmartPointer< const Self > ConstPointer
Cost function for estimating B1 from T2 relaxometry acquisition, following a multi-T2 EPG decay model...
itk::SingleValuedCostFunction Superclass
B1GMMRelaxometryCostFunction()
itk::SmartPointer< Self > Pointer
void SetGaussianVariances(std::vector< double > &val)
Superclass::ParametersType ParametersType
Superclass::DerivativeType DerivativeType
std::vector< ComplexVectorType > MatrixType
std::vector< std::complex< double > > ComplexVectorType
B1GMMRelaxometryCostFunction Self
Superclass::MeasureType MeasureType
virtual ~B1GMMRelaxometryCostFunction()
Cholesky decomposition: decomposes a symmetric matrix A in the form L D L^T, where L is lower triangu...