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 //=========================================================================================================
89 static bool computeBeamformer(const Eigen::MatrixXd& G,
90 const Eigen::MatrixXd& Cm,
91 double reg,
92 int nOrient,
93 BeamformerWeightNorm weightNorm,
94 BeamformerPickOri pickOri,
95 bool reduceRank,
96 BeamformerInversion invMethod,
97 const Eigen::MatrixX3d& nn,
98 Eigen::MatrixXd& W,
99 Eigen::MatrixX3d& maxPowerOri);
100
101 //=========================================================================================================
113 static Eigen::VectorXd computePower(const Eigen::MatrixXd& Cm,
114 const Eigen::MatrixXd& W,
115 int nOrient);
116
117 //=========================================================================================================
127 static Eigen::MatrixXd symMatPow(const Eigen::MatrixXd& X, double p, bool reduceRank = false);
128
129private:
130 //=========================================================================================================
143 static void regPinv(const Eigen::MatrixXd& C,
144 double reg,
145 Eigen::MatrixXd& CInv,
146 double& loadingFactor,
147 int& rankOut);
148
149 //=========================================================================================================
158 static void reduceLeadfieldRank(Eigen::MatrixXd& Gk);
159};
160
161} // NAMESPACE INVLIB
162
163#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)