Raw File
OxModel.hxx
/*!
 * \file OxModel.h
 * \author Konrad Werys
 * \date 2018/07/29
 */

#ifndef Tomato_OxModel_HXX
#define Tomato_OxModel_HXX

#include "KWUtil.h"
#include <iostream>

namespace Ox {

    template< typename MeasureType >
    void
    Model<MeasureType>
    ::setNSamples(int _nSamples) {
        Model::_nSamples = _nSamples;
        _Residuals = new MeasureType[_nSamples];
    }

    template< typename MeasureType >
    void
    Model<MeasureType>
    ::disp(){
        int nSamples = this->getNSamples();
        std::cout << "\nYou called disp() on a Model object " << this << " with nSamples: " << getNSamples();
        KWUtil::printArray(_InvTimes   != 0, nSamples, _InvTimes,    (char*)"\nInvTimes:    ");
        KWUtil::printArray(_EchoTimes  != 0, nSamples, _EchoTimes,   (char*)"\nEchoTimes:   ");
        KWUtil::printArray(_RepTimes   != 0, nSamples, _RepTimes,    (char*)"\nRepTimes:    ");
        KWUtil::printArray(_RelAcqTimes!= 0, nSamples, _RelAcqTimes, (char*)"\nRelAcqTimes: ");
        KWUtil::printArray(_Signal     != 0, nSamples, _Signal,      (char*)"\nSignal:      ");
        std::cout << std::endl;
    }

    template< typename MeasureType >
    void
    Model<MeasureType>
    ::setAllPointersToNull(){
        _InvTimes = 0;
        _EchoTimes = 0;
        _RepTimes = 0;
        _RelAcqTimes = 0;
        _Signal = 0;
    }

    template< typename MeasureType >
    Model<MeasureType>
    ::Model(){

        _nSamples = 0;
        _nDims = 0;

        _Residuals = 0; // pointer
        setAllPointersToNull();

    };

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

        _nSamples = old._nSamples;
        _nDims = old._nDims;

        _Residuals = new MeasureType[_nSamples];
        setAllPointersToNull();

    }

    template< typename MeasureType >
    Model<MeasureType>
    ::~Model(){
        delete [] _Residuals;
    };

} //namespace Ox

#endif //Tomato_OxModel_HXX
back to top