43 if (m_EstimateAxialDiffusivity)
51 if (m_EstimateAxialDiffusivity)
59 if (m_EstimateAxialDiffusivity == arg)
62 m_EstimateAxialDiffusivity = arg;
63 m_ChangedConstraints =
true;
69 itkExceptionMacro(
"The input vector size does not match the size of the compartment");
81 if (!m_ChangedConstraints)
82 return m_NumberOfParameters;
86 if (!m_EstimateAxialDiffusivity)
87 --m_NumberOfParameters;
89 m_ChangedConstraints =
false;
90 return m_NumberOfParameters;
105 m_DiffusionTensor.Fill(0);
110 return m_DiffusionTensor;
std::vector< double > ListType
virtual void SetAxialDiffusivity(double num)
unsigned int GetNumberOfParameters() ITK_OVERRIDE
Number of optimized parameters: smaller than total number of parameters.
double GetApparentFractionalAnisotropy() ITK_OVERRIDE
itk::VariableLengthVector< double > ModelOutputVectorType
const Matrix3DType & GetDiffusionTensor() ITK_OVERRIDE
Get compartment as a 3D tensor (default behavior: throw exception if not supported by the compartment...
vnl_vector_fixed< double, 3 > Vector3DType
ModelOutputVectorType & GetCompartmentVector() ITK_OVERRIDE
Get compartment overall description vector, mainly for writing, should be self-contained.
unsigned int GetCompartmentSize() ITK_OVERRIDE
Number of parameters to describe the model, these parameters will be self-contained, i.e. include fixed parameters for example.
virtual double GetAxialDiffusivity()
ListType m_ParametersVector
Vector holding current parameters vector.
virtual ListType & GetParametersAsVector() ITK_OVERRIDE
double GetBValueFromAcquisitionParameters(double smallDelta, double bigDelta, double gradientStrength)
Given gyromagnetic ratio in rad/s/T, gradient strength in T/mm and deltas in s, computes b-value in s...
double GetApparentPerpendicularDiffusivity() ITK_OVERRIDE
Get approximation to perpendicular diffusivity of the compartment (may be different from radial diffu...
virtual void SetParametersFromVector(const ListType ¶ms) ITK_OVERRIDE
Various methods for optimization parameters setting and getting.
virtual double GetFourierTransformedDiffusionProfile(double smallDelta, double bigDelta, double gradientStrength, const Vector3DType &gradient) ITK_OVERRIDE
virtual ListType & GetSignalAttenuationJacobian(double smallDelta, double bigDelta, double gradientStrength, const Vector3DType &gradient) ITK_OVERRIDE
Superclass::ModelOutputVectorType ModelOutputVectorType
ListType m_JacobianVector
Vector holding current jacobian value.
virtual double GetLogDiffusionProfile(const Vector3DType &sample) ITK_OVERRIDE
double GetApparentMeanDiffusivity() ITK_OVERRIDE
ModelOutputVectorType m_CompartmentVector
Vector to hold working value of compartment vector.
void SetCompartmentVector(ModelOutputVectorType &compartmentVector) ITK_OVERRIDE
Set compartment overall description vector, for setting automatically the individual parameters when ...
static const unsigned int m_SpaceDimension
double GetApparentParallelDiffusivity() ITK_OVERRIDE
Get approximation to parallel diffusivity of the compartment (may be different from axial diffusivity...
Superclass::Matrix3DType Matrix3DType
void SetEstimateAxialDiffusivity(bool arg)