43 #include "../inverse_global.h"
44 #include "../IInverseAlgorithm.h"
73 #define NOT_TRANSPOSED 0
74 #define IS_TRANSPOSED 1
76 //=============================================================================================================
95 typedef QSharedPointer<RapMusic>
SPtr;
103 typedef Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>
MatrixXT;
105 typedef Eigen::Matrix<double, Eigen::Dynamic, 6>
MatrixX6T;
107 typedef Eigen::Matrix<double, 6, Eigen::Dynamic>
Matrix6XT;
111 typedef Eigen::Matrix<double, Eigen::Dynamic, 1>
VectorXT;
151 virtual MNELIB::MNESourceEstimate calculateInverse(
const Eigen::MatrixXd &data,
float tmin,
float tstep,
bool pick_normal =
false)
const;
155 virtual const char* getName()
const;
166 void setStcAttr(
int p_iSampStcWin,
float p_fStcOverlap);
178 int calcPhi_s(
const MatrixXT& p_matMeasurement,
MatrixXT* &p_pMatPhi_s)
const;
223 static void calcA_k_1(
const MatrixX6T& p_matG_k_1,
235 void calcOrthProj(
const MatrixXT& p_matA_k_1,
MatrixXT& p_matOrthProj)
const;
248 void calcPairCombinations(
const int p_iNumPoints,
249 const int p_iNumCombinations,
250 Pair** p_ppPairIdxCombinations)
const;
268 static void getPointPair(
const int p_iPoints,
const int p_iCurIdx,
int &p_iIdx1,
int &p_iIdx2);
279 static void getGainMatrixPair(
const MatrixXT& p_matGainMarix,
281 int p_iIdx1,
int p_iIdx2);
293 static void insertSource(
int p_iDipoleIdx1,
int p_iDipoleIdx2,
327 static inline int getRank(
const MatrixXT& p_matSigma);
339 static inline int useFullRank(
const MatrixXT& p_Mat,
363 for(t_iRank = p_matSigma.rows()-1; t_iRank > 0; t_iRank--)
364 if (p_matSigma(t_iRank, t_iRank) > 0.00001)
379 int rank =
getRank(p_matSigma_src);
382 p_matFull_Rank = p_Mat.block(0,0,p_Mat.rows(),rank);
384 p_matFull_Rank = p_Mat.block(0,0,rank,p_Mat.cols());