Skip to content
Snippets Groups Projects
melpca.h 1.16 KiB
Newer Older
Mark Jenkinson's avatar
Mark Jenkinson committed
 /*  MELODIC - Multivariate exploratory linear optimized decomposition into 
              independent components
    
    melpca.h - PCA and whitening 

    Christian F. Beckmann, FMRIB Image Analysis Group
    
Christian Beckmann's avatar
Christian Beckmann committed
    Copyright (C) 1999-2007 University of Oxford */
Mark Jenkinson's avatar
Mark Jenkinson committed

/*  CCOPYRIGHT */

#ifndef __MELODICPCA_h
#define __MELODICPCA_h
#include "newimage/newimageall.h"
#include "utils/log.h"
Mark Jenkinson's avatar
Mark Jenkinson committed
#include "meloptions.h"
#include "meldata.h"
#include "melodic.h"
//#include "melreport.h"
#include "newmatap.h"
#include "newmatio.h"
Mark Jenkinson's avatar
Mark Jenkinson committed

using namespace Utilities;
using namespace NEWIMAGE;

namespace Melodic{
  
  class MelodicReport;

Christian Beckmann's avatar
Christian Beckmann committed
  class MelodicPCA{
Mark Jenkinson's avatar
Mark Jenkinson committed
    public:
Christian Beckmann's avatar
Christian Beckmann committed
      MelodicPCA(MelodicData &pmelodat, MelodicOptions &popts, Log &plogger, 
				MelodicReport &preport):  
					melodat(pmelodat),
					opts(popts),
					logger(plogger),
					report(preport){} 
Mark Jenkinson's avatar
Mark Jenkinson committed
      
Christian Beckmann's avatar
Christian Beckmann committed
    	void perf_pca(Matrix& in, Matrix& weights);
      inline void perf_pca(){
				perf_pca(melodat.get_Data(),melodat.get_RXweight());
			}
      void perf_white();
Mark Jenkinson's avatar
Mark Jenkinson committed

    private:
      MelodicData &melodat;
      MelodicOptions &opts;
      Log &logger;
      MelodicReport &report;

      int pcadim();
Christian Beckmann's avatar
Christian Beckmann committed
  };   
Mark Jenkinson's avatar
Mark Jenkinson committed
}

#endif