36#ifndef INV_RAP_MUSIC_H
37#define INV_RAP_MUSIC_H
72#define NOT_TRANSPOSED 0
73#define IS_TRANSPOSED 1
102 typedef QSharedPointer<InvRapMusic>
SPtr;
110 typedef Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>
MatrixXT;
112 typedef Eigen::Matrix<double, Eigen::Dynamic, 6>
MatrixX6T;
114 typedef Eigen::Matrix<double, 6, Eigen::Dynamic>
Matrix6XT;
118 typedef Eigen::Matrix<double, Eigen::Dynamic, 1>
VectorXT;
162 virtual const char*
getName()
const;
173 void setStcAttr(
int p_iSampStcWin,
float p_fStcOverlap);
256 const int p_iNumCombinations,
257 Pair** p_ppPairIdxCombinations)
const;
275 static void getPointPair(
const int p_iPoints,
const int p_iCurIdx,
int &p_iIdx1,
int &p_iIdx2);
288 int p_iIdx1,
int p_iIdx2);
300 static void insertSource(
int p_iDipoleIdx1,
int p_iDipoleIdx2,
370 for(t_iRank = p_matSigma.rows()-1; t_iRank > 0; t_iRank--)
371 if (p_matSigma(t_iRank, t_iRank) > 0.00001)
386 int rank =
getRank(p_matSigma_src);
389 p_matFull_Rank = p_Mat.block(0,0,p_Mat.rows(),rank);
391 p_matFull_Rank = p_Mat.block(0,0,rank,p_Mat.cols());
InvDipole class declaration for RAP MUSIC dipole results.
InvSourceEstimate class declaration.
inverse library export/import macros.
MNEForwardSolution class declaration.
Inverse source estimation (MNE, dSPM, sLORETA, dipole fitting).
struct INVLIB::Pair Pair
Index pair representing two grid points evaluated together in the RAP MUSIC subspace scan.
Pair of correlated dipole indices and orientations found by the RAP MUSIC scanning step.
Index pair representing two grid points evaluated together in the RAP MUSIC subspace scan.
Eigen::Matrix< double, 6, 1 > Vector6T
static void calcA_k_1(const MatrixX6T &p_matG_k_1, const Vector6T &p_matPhi_k_1, const int p_iIdxk_1, MatrixXT &p_matA_k_1)
static void getPointPair(const int p_iPoints, const int p_iCurIdx, int &p_iIdx1, int &p_iIdx2)
virtual InvSourceEstimate calculateInverse(const FIFFLIB::FiffEvoked &p_fiffEvoked, bool pick_normal=false)
static int getRank(const MatrixXT &p_matSigma)
virtual const char * getName() const
static MatrixXT makeSquareMat(const MatrixXT &p_matF)
static void insertSource(int p_iDipoleIdx1, int p_iDipoleIdx2, const Vector6T &p_vec_phi_k_1, double p_valCor, QList< InvDipolePair< double > > &p_RapDipoles)
void setStcAttr(int p_iSampStcWin, float p_fStcOverlap)
bool init(MNELIB::MNEForwardSolution &p_pFwd, bool p_bSparsed=false, int p_iN=2, double p_dThr=0.5)
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixXT
Eigen::Matrix< double, 6, 6 > Matrix6T
Eigen::Matrix< double, Eigen::Dynamic, 1 > VectorXT
QSharedPointer< InvRapMusic > SPtr
virtual InvSourceEstimate calculateInverse(const Eigen::MatrixXd &p_matMeasurement, QList< InvDipolePair< double > > &p_RapDipoles) const
void calcOrthProj(const MatrixXT &p_matA_k_1, MatrixXT &p_matOrthProj) const
int calcPhi_s(const MatrixXT &p_matMeasurement, MatrixXT *&p_pMatPhi_s) const
static int useFullRank(const MatrixXT &p_Mat, const MatrixXT &p_matSigma_src, MatrixXT &p_matFull_Rank, int type=NOT_TRANSPOSED)
Eigen::Matrix< double, Eigen::Dynamic, 6 > MatrixX6T
MNELIB::MNEForwardSolution m_ForwardSolution
Pair ** m_ppPairIdxCombinations
void calcPairCombinations(const int p_iNumPoints, const int p_iNumCombinations, Pair **p_ppPairIdxCombinations) const
virtual const MNELIB::MNESourceSpaces & getSourceSpace() const
Eigen::Matrix< double, 6, Eigen::Dynamic > Matrix6XT
virtual InvSourceEstimate calculateInverse(const Eigen::MatrixXd &data, float tmin, float tstep, bool pick_normal=false) const
static void getGainMatrixPair(const MatrixXT &p_matGainMarix, MatrixX6T &p_matGainMarix_Pair, int p_iIdx1, int p_iIdx2)
int m_iNumLeadFieldCombinations
static double subcorr(MatrixX6T &p_matProj_G, const MatrixXT &p_pMatU_B)
QSharedPointer< const InvRapMusic > ConstSPtr
Source Space descritpion.