v2.0.0
Loading...
Searching...
No Matches
inv_beamformer_compute.h
Go to the documentation of this file.
1//=============================================================================================================
28
29#ifndef INV_BEAMFORMER_COMPUTE_H
30#define INV_BEAMFORMER_COMPUTE_H
31
32//=============================================================================================================
33// INCLUDES
34//=============================================================================================================
35
36#include "../inv_global.h"
38
39//=============================================================================================================
40// EIGEN INCLUDES
41//=============================================================================================================
42
43#include <Eigen/Core>
44
45//=============================================================================================================
46// DEFINE NAMESPACE INVLIB
47//=============================================================================================================
48
49namespace INVLIB
50{
51
52//=============================================================================================================
61{
62public:
63
64 //=========================================================================================================
90 static bool computeBeamformer(const Eigen::MatrixXd &G,
91 const Eigen::MatrixXd &Cm,
92 double reg,
93 int nOrient,
94 BeamformerWeightNorm weightNorm,
95 BeamformerPickOri pickOri,
96 bool reduceRank,
97 BeamformerInversion invMethod,
98 const Eigen::MatrixX3d &nn,
99 Eigen::MatrixXd &W,
100 Eigen::MatrixX3d &maxPowerOri);
101
102 //=========================================================================================================
114 static Eigen::VectorXd computePower(const Eigen::MatrixXd &Cm,
115 const Eigen::MatrixXd &W,
116 int nOrient);
117
118 //=========================================================================================================
128 static Eigen::MatrixXd symMatPow(const Eigen::MatrixXd &X, double p, bool reduceRank = false);
129
130private:
131 //=========================================================================================================
144 static void regPinv(const Eigen::MatrixXd &C,
145 double reg,
146 Eigen::MatrixXd &CInv,
147 double &loadingFactor,
148 int &rankOut);
149
150 //=========================================================================================================
159 static void reduceLeadfieldRank(Eigen::MatrixXd &Gk);
160};
161
162} // NAMESPACE INVLIB
163
164#endif // INV_BEAMFORMER_COMPUTE_H
constexpr int X
Strongly-typed enumerations shared by the LCMV and DICS beamformer pipelines.
INVLIB library export/import macros, build-info accessors, and namespace docstring for the inverse-so...
#define INVSHARED_EXPORT
Definition inv_global.h:38
Inverse source estimation (MNE, dSPM, sLORETA, dipole fitting).
static Eigen::MatrixXd symMatPow(const Eigen::MatrixXd &X, double p, bool reduceRank=false)
static Eigen::VectorXd computePower(const Eigen::MatrixXd &Cm, const Eigen::MatrixXd &W, int nOrient)
static bool computeBeamformer(const Eigen::MatrixXd &G, const Eigen::MatrixXd &Cm, double reg, int nOrient, BeamformerWeightNorm weightNorm, BeamformerPickOri pickOri, bool reduceRank, BeamformerInversion invMethod, const Eigen::MatrixX3d &nn, Eigen::MatrixXd &W, Eigen::MatrixX3d &maxPowerOri)