MNE-CPP  0.1.9
A Framework for Electrophysiology
signalmodel.h
Go to the documentation of this file.
1 //=============================================================================================================
35 #ifndef SIGNALMODEL_H
36 #define SIGNALMODEL_H
37 
38 //=============================================================================================================
39 // INCLUDES
40 //=============================================================================================================
41 
42 #include "../inverse_global.h"
43 #include "hpimodelparameters.h"
44 
45 //=============================================================================================================
46 // QT INCLUDES
47 //=============================================================================================================
48 
49 #include <QSharedPointer>
50 
51 //=============================================================================================================
52 // EIGEN INCLUDES
53 //=============================================================================================================
54 
55 #include <Eigen/Core>
56 
57 //=============================================================================================================
58 // FORWARD DECLARATIONS
59 //=============================================================================================================
60 
61 namespace INVERSELIB
62 {
63 //=============================================================================================================
64 // Declare all structures to be used
65 //=============================================================================================================
66 
67 
68 //=============================================================================================================
75 {
76 
77 public:
78  typedef QSharedPointer<SignalModel> SPtr;
79  typedef QSharedPointer<const SignalModel> ConstSPtr;
81  //=========================================================================================================
85  explicit SignalModel() = default;
86 
87  //=========================================================================================================
97  Eigen::MatrixXd fitData(const HpiModelParameters& hpiModelParameters,
98  const Eigen::MatrixXd& matData);
99 
100 private:
101  //=========================================================================================================
106  void selectModelAndCompute();
107 
108  //=========================================================================================================
113  void computeInverseBasicModel();
114  void computeInverseAdvancedModel();
115 
116  //=========================================================================================================
124  bool checkDataDimensions(const int iCols);
125 
126  //=========================================================================================================
133  bool checkModelParameters(const HpiModelParameters& hpiModelParameters);
134 
135  //=========================================================================================================
142  bool checkEmpty(const HpiModelParameters& hpiModelParameters);
143 
144  Eigen::MatrixXd m_matInverseSignalModel{Eigen::MatrixXd(0,0)};
145  int m_iCurrentModelCols{0};
146  HpiModelParameters m_modelParameters{HpiModelParameters()};
147 };
148 
149 //=============================================================================================================
150 // INLINE DEFINITIONS
151 //=============================================================================================================
152 
153 } // namespace INVERSELIB
154 
155 #endif // SignalModel_H
156 
QSharedPointer< SignalModel > SPtr
Definition: signalmodel.h:78
QSharedPointer< const SignalModel > ConstSPtr
Definition: signalmodel.h:79
#define INVERSESHARED_EXPORT
HpiModelParameters class declaration.
Brief description of this class.
Definition: signalmodel.h:74
Brief description of this class.