36#ifndef INV_RAP_MUSIC_H
37#define INV_RAP_MUSIC_H
74#define NOT_TRANSPOSED 0
75#define IS_TRANSPOSED 1
104 typedef QSharedPointer<InvRapMusic>
SPtr;
112 typedef Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>
MatrixXT;
114 typedef Eigen::Matrix<double, Eigen::Dynamic, 6>
MatrixX6T;
116 typedef Eigen::Matrix<double, 6, Eigen::Dynamic>
Matrix6XT;
120 typedef Eigen::Matrix<double, Eigen::Dynamic, 1>
VectorXT;
164 virtual const char*
getName()
const;
175 void setStcAttr(
int p_iSampStcWin,
float p_fStcOverlap);
258 const int p_iNumCombinations,
259 std::vector<Pair>& p_pairIdxCombinations)
const;
277 static void getPointPair(
const int p_iPoints,
const int p_iCurIdx,
int &p_iIdx1,
int &p_iIdx2);
290 int p_iIdx1,
int p_iIdx2);
302 static void insertSource(
int p_iDipoleIdx1,
int p_iDipoleIdx2,
372 for(t_iRank = p_matSigma.rows()-1; t_iRank > 0; t_iRank--)
373 if (p_matSigma(t_iRank, t_iRank) > 0.00001)
388 int rank =
getRank(p_matSigma_src);
391 p_matFull_Rank = p_Mat.block(0,0,p_Mat.rows(),rank);
393 p_matFull_Rank = p_Mat.block(0,0,rank,p_Mat.cols());
InvSourceEstimate class declaration.
inverse library export/import macros.
InvDipole class declaration for RAP MUSIC dipole results.
MNEForwardSolution class declaration.
Inverse source estimation (MNE, dSPM, sLORETA, dipole fitting).
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
void calcPairCombinations(const int p_iNumPoints, const int p_iNumCombinations, std::vector< Pair > &p_pairIdxCombinations) const
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
virtual const MNELIB::MNESourceSpaces & getSourceSpace() const
std::vector< Pair > m_ppPairIdxCombinations
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.