MNE-CPP  beta 1.0
rtsssalgo_test.h
1 #ifndef RTSSSALGO_TEST_H
2 #define RTSSSALGO_TEST_H
3 
4 //*************************************************************************************************************
5 //=============================================================================================================
6 // INCLUDES
7 //=============================================================================================================
8 
9 #include <QtGlobal>
10 #include <QtCore/qmath.h>
11 #include <QList>
12 #include <Eigen/Dense>
13 #include <iostream>
14 #include <QString>
15 #include <QDebug>
16 #include <iostream>
17 #include <fstream>
18 #include <string>
19 #include <stdio.h>
20 #include <math.h>
21 #include <complex>
22 
23 #include <fiff/fiff_info.h>
24 //#include <xMeas/Measurement/realtimemultisamplearray_new.h>
25 
26 //using namespace MNEX;
27 
28 
29 using namespace Eigen;
30 using namespace std;
31 using namespace FIFFLIB;
32 //using namespace XMEASLIB;
33 
34 typedef std::complex<double> cplxd;
35 
36 MatrixXd legendre(int, VectorXd);
37 float plgndr(int l, int m, float x);
38 double factorial(int);
39 QList<MatrixXd> getSSSRR(MatrixXd, MatrixXd, MatrixXd, MatrixXd, MatrixXd);
40 VectorXd hypot(VectorXd, VectorXd);
41 VectorXd atan2vec(VectorXd, VectorXd);
42 VectorXd find(MatrixXd, int);
43 
44 double stdev(VectorXd);
45 VectorXd eigen_LTE(VectorXd V, double tol);
46 VectorXd eigen_LT_index(VectorXd V, double tol);
47 VectorXd eigen_LT_index_test(VectorXd V, int);
48 VectorXd eigen_GT(VectorXd V, double tol);
49 VectorXd eigen_AND(VectorXd V1, VectorXd V2);
50 
52 {
53 public:
54  RtSssAlgoTest();
55  ~RtSssAlgoTest();
56 
57  QList<MatrixXd> buildLinearEqn();
58 // QList<MatrixXd> getSSSRR();
59 // QList<MatrixXd> getSSSOLS();
60  QList<MatrixXd> getSSSRR(MatrixXd EqnIn, MatrixXd EqnOut, MatrixXd EqnARR, MatrixXd EqnA, MatrixXd EqnB);
61  QList<MatrixXd> getSSSOLS(MatrixXd EqnIn, MatrixXd EqnOut, MatrixXd EqnA, MatrixXd EqnB);
62  QList<MatrixXd> getLinEqn();
63 
64 private:
65  void getCoilInfoVectorView4Sim();
66  void getCoilInfoBabyMEG4Sim();
67  QList<MatrixXd> getSSSEqn(int, int);
68  void getSSSBasis(VectorXd, VectorXd, VectorXd, int, int);
69  void getCartesianToSpherCoordinate(VectorXd, VectorXd, VectorXd);
70  void getSphereToCartesianVector();
71  int strmatch(char, char);
72 
73  int NumCoil;
74  QList<MatrixXd> CoilT;
75  QList<string> CoilName, CoilTk;
76  QList<MatrixXd> CoilRk, CoilWk;
77  VectorXi CoilNk, CoilGrad;
78  VectorXd MEGIn, MEGOut, MEGNoise, MEGData;
79 
80  Vector3d Origin;
81  MatrixXd BInX, BInY, BInZ, BOutX, BOutY, BOutZ;
82  MatrixXd EqnInRR, EqnOutRR, EqnIn, EqnOut, EqnARR, EqnA, EqnB;
83 
84  VectorXd R, PHI, THETA;
85  VectorXd R_X, R_Y, R_Z;
86  VectorXd PHI_X, PHI_Y, PHI_Z;
87  VectorXd THETA_X, THETA_Y, THETA_Z;
88 
89  FiffInfo::SPtr m_pFiffInfo;
90 };
91 
92 #endif // RTSSSALGO_TEST_H
QSharedPointer< FiffInfo > SPtr
Definition: fiff_info.h:99
FiffInfo class declaration.
Definition: fiff.h:98