/* MELODIC - Multivariate exploratory linear optimized decomposition into independent components melpca.h - PCA and whitening Christian F. Beckmann, FMRIB Image Analysis Group Copyright (C) 1999-2004 University of Oxford */ /* CCOPYRIGHT */ #ifndef __MELODICPCA_h #define __MELODICPCA_h #include "newimage/newimageall.h" #include "utils/log.h" #include "meloptions.h" #include "meldata.h" #include "melodic.h" //#include "melreport.h" #include "newmatap.h" #include "newmatio.h" using namespace Utilities; using namespace NEWIMAGE; namespace Melodic{ class MelodicReport; class MelodicPCA { public: MelodicPCA(MelodicData &pmelodat, MelodicOptions &popts, Log &plogger, MelodicReport &preport): melodat(pmelodat), opts(popts), logger(plogger), report(preport) { } void perf_pca(const Matrix &Data); void perf_white(const Matrix &Data); private: MelodicData &melodat; MelodicOptions &opts; Log &logger; MelodicReport &report; int pcadim(); RowVector cumsum(const RowVector& Inp); Matrix ppca_est(const RowVector& eigenvalues, const int N); RowVector Feta(int n1,int n2); }; } #endif