Tomato
Ox::Model< MeasureType > Class Template Referenceabstract

Container for a model function, cost function and Least-Squares function. And derivatives. More...

#include <OxModel.h>

Inheritance diagram for Ox::Model< MeasureType >:

Public Member Functions

virtual MeasureType calcModelValue (const MeasureType *parameters, MeasureType time)=0
 
virtual void calcLSResiduals (const MeasureType *parameters, MeasureType *residuals)=0
 
virtual MeasureType calcCostValue (const MeasureType *parameters)=0
 
virtual void calcCostDerivative (const MeasureType *parameters, MeasureType *derivative)=0
 
virtual void calcLSJacobian (const MeasureType *parameters, MeasureType *jacobian)=0
 
virtual int getNSamples ()
 
virtual const MeasureType * getInvTimes () const
 
virtual const MeasureType * getEchoTimes () const
 
virtual const MeasureType * getRepTimes () const
 
virtual const MeasureType * getRelAcqTimes () const
 
virtual const MeasureType * getSignal () const
 
virtual int getNDims ()
 
void setNSamples (int _nSamples)
 
virtual void setInvTimes (const MeasureType *_InvTimes)
 
virtual void setEchoTimes (const MeasureType *_EchoTimes)
 
virtual void setRepTimes (const MeasureType *_RepTimes)
 
virtual void setRelAcqTimes (const MeasureType *_RelAcqTimes)
 
virtual void setSignal (const MeasureType *_Signal)
 
virtual std::string getNthParamName (int nthParam)
 
virtual void disp ()
 show me your ModelT1
 
void setAllPointersToNull ()
 set all the pointers to zero
 
 Model ()
 constructor
 
 Model (const Model &old)
 copy constructor keeps only _nSamples and _nDims More...
 
virtual Model< MeasureType > * newByCloning ()=0
 
virtual ~Model ()
 do not forget about the virtual destructor, see https://stackoverflow.com/questions/461203/when-to-use-virtual-destructors
 

Protected Attributes

const MeasureType * _InvTimes
 
const MeasureType * _EchoTimes
 
const MeasureType * _RepTimes
 
const MeasureType * _RelAcqTimes
 
const MeasureType * _Signal
 
int _nSamples
 
int _nDims
 
MeasureType * _Residuals
 

Detailed Description

template<typename MeasureType>
class Ox::Model< MeasureType >

Container for a model function, cost function and Least-Squares function. And derivatives.

Here model function is defined - calcModelValue(). Fitting algorithms based on optimisation need a cost function - calcCostValue(). Fitting algorithms based on least squares need a residuals calculation - calcLSResiduals(). Some fitting algorithms use derivatives, hence calcLSJacobian() and calcCostDerivative(). The member variables are pointers to c-arrays, we need to know how many samples we want to process. That's the nSamples defined in the constructor.

Template Parameters
MeasureType

Constructor & Destructor Documentation

template<typename MeasureType >
Ox::Model< MeasureType >::Model ( const Model< MeasureType > &  old)

copy constructor keeps only _nSamples and _nDims

Parameters
old

Member Function Documentation

template<typename MeasureType>
virtual void Ox::Model< MeasureType >::calcCostDerivative ( const MeasureType *  parameters,
MeasureType *  derivative 
)
pure virtual

calcCostDerivative the most important function of this class

Parameters
derivative

Implemented in Ox::ModelT1Shmolli< MeasureType >, Ox::ModelT1ThreeParam< MeasureType >, and Ox::ModelT1TwoParam< MeasureType >.

template<typename MeasureType>
virtual MeasureType Ox::Model< MeasureType >::calcCostValue ( const MeasureType *  parameters)
pure virtual

calcCostValue the most important function of this class

Returns

Implemented in Ox::ModelT1Shmolli< MeasureType >, Ox::ModelT1ThreeParam< MeasureType >, and Ox::ModelT1TwoParam< MeasureType >.

template<typename MeasureType>
virtual void Ox::Model< MeasureType >::calcLSJacobian ( const MeasureType *  parameters,
MeasureType *  jacobian 
)
pure virtual

calcLSJacobian the most important function of this class

Parameters
jacobian- 2d matrix stored as 1d array

Implemented in Ox::ModelT1Shmolli< MeasureType >, Ox::ModelT1ThreeParam< MeasureType >, and Ox::ModelT1TwoParam< MeasureType >.

template<typename MeasureType>
virtual void Ox::Model< MeasureType >::calcLSResiduals ( const MeasureType *  parameters,
MeasureType *  residuals 
)
pure virtual

calcLSResiduals the most important function of this class

Parameters
residuals

Implemented in Ox::ModelT1Shmolli< MeasureType >, Ox::ModelT1ThreeParam< MeasureType >, and Ox::ModelT1TwoParam< MeasureType >.

template<typename MeasureType>
virtual MeasureType Ox::Model< MeasureType >::calcModelValue ( const MeasureType *  parameters,
MeasureType  time 
)
pure virtual

calcModelValue the most important function of this class

Parameters
time
Returns
model(time)

Implemented in Ox::ModelT1Shmolli< MeasureType >, Ox::ModelT1ThreeParam< MeasureType >, and Ox::ModelT1TwoParam< MeasureType >.

template<typename MeasureType>
virtual Model<MeasureType>* Ox::Model< MeasureType >::newByCloning ( )
pure virtual

The documentation for this class was generated from the following files: