7 #ifndef Tomato_OxModel_H 8 #define Tomato_OxModel_H 10 #include "tomatolib_export.h" 25 template<
typename MeasureType >
35 virtual MeasureType
calcModelValue(
const MeasureType* parameters, MeasureType time) = 0;
41 virtual void calcLSResiduals(
const MeasureType* parameters, MeasureType* residuals) = 0;
47 virtual MeasureType
calcCostValue(
const MeasureType* parameters) = 0;
53 virtual void calcCostDerivative(
const MeasureType* parameters, MeasureType* derivative) = 0;
59 virtual void calcLSJacobian(
const MeasureType* parameters, MeasureType* jacobian) = 0;
62 virtual int getNSamples() {
return _nSamples; }
63 virtual const MeasureType *getInvTimes()
const {
return _InvTimes; }
64 virtual const MeasureType *getEchoTimes()
const {
return _EchoTimes; }
65 virtual const MeasureType *getRepTimes()
const {
return _RepTimes; }
66 virtual const MeasureType *getRelAcqTimes()
const {
return _RelAcqTimes; }
67 virtual const MeasureType *getSignal()
const {
return _Signal; }
68 virtual int getNDims() {
return _nDims; }
71 void setNSamples(
int _nSamples);
72 virtual void setInvTimes(
const MeasureType *_InvTimes) { Model::_InvTimes = _InvTimes; }
73 virtual void setEchoTimes(
const MeasureType *_EchoTimes) { Model::_EchoTimes = _EchoTimes; }
74 virtual void setRepTimes(
const MeasureType *_RepTimes) { Model::_RepTimes = _RepTimes; }
75 virtual void setRelAcqTimes(
const MeasureType *_RelAcqTimes) { Model::_RelAcqTimes = _RelAcqTimes; }
76 virtual void setSignal(
const MeasureType *_Signal) { Model::_Signal = _Signal; }
79 virtual std::string getNthParamName(
int nthParam){
return "";};
116 const MeasureType* _InvTimes;
117 const MeasureType* _EchoTimes;
118 const MeasureType* _RepTimes;
119 const MeasureType* _RelAcqTimes;
120 const MeasureType* _Signal;
125 MeasureType* _Residuals;
129 #ifndef TOMATOLIB_COMPILED 130 #include "OxModel.hxx" 131 #endif //TOMATOLIB_COMPILED 133 #endif //Tomato_OxModel_H virtual void disp()
show me your ModelT1
Definition: OxModel.hxx:26
Container for a model function, cost function and Least-Squares function. And derivatives.
Definition: OxModel.h:26
virtual void calcLSJacobian(const MeasureType *parameters, MeasureType *jacobian)=0
virtual MeasureType calcModelValue(const MeasureType *parameters, MeasureType time)=0
virtual void calcCostDerivative(const MeasureType *parameters, MeasureType *derivative)=0
Model()
constructor
Definition: OxModel.hxx:50
virtual Model< MeasureType > * newByCloning()=0
virtual void calcLSResiduals(const MeasureType *parameters, MeasureType *residuals)=0
virtual MeasureType calcCostValue(const MeasureType *parameters)=0
virtual ~Model()
do not forget about the virtual destructor, see https://stackoverflow.com/questions/461203/when-to-us...
Definition: OxModel.hxx:74
void setAllPointersToNull()
set all the pointers to zero
Definition: OxModel.hxx:40
Definition: OxCalculator.h:19