/* MELODIC - Multivariate exploratory linear optimized decomposition into independent components melica.h - ICA estimation Christian F. Beckmann, FMRIB Image Analysis Group Copyright (C) 1999-2004 University of Oxford */ /* CCOPYRIGHT */ #ifndef __MELODICICA_h #define __MELODICICA_h #include "newimage/newimageall.h" #include "utils/log.h" #include "melpca.h" #include "meloptions.h" #include "meldata.h" #include "melodic.h" #include "newmatap.h" #include "newmatio.h" #include "melreport.h" using namespace Utilities; using namespace NEWIMAGE; namespace Melodic{ class MelodicICA { public: MelodicICA(MelodicData &pmelodat, MelodicOptions &popts, Log &plogger, MelodicReport &preport): melodat(pmelodat), opts(popts), logger(plogger), report(preport) { } void perf_ica(const Matrix &Data); bool no_convergence; private: MelodicData &melodat; MelodicOptions &opts; Log &logger; MelodicReport &report; int dim; int samples; Matrix redUMM; void ica_fastica_symm(const Matrix &Data); void ica_fastica_defl(const Matrix &Data); void ica_maxent(const Matrix &Data); void ica_jade(const Matrix &Data); Matrix randm(const int dim1, const int dim2); void sort(); Matrix sign(const Matrix &Inp); }; } #endif