48#include <QtConcurrent>
80 qWarning() <<
"[RtCov::estimateCovariance] FiffInfo was not set. Returning empty covariance estimation.";
91 QFuture<RtCovComputeResult> result = QtConcurrent::mappedReduced(
m_lData,
95 result.waitForFinished();
104 for(
int i = 0; i<
m_fiffInfo.chs.size(); i++) {
114 computedCov.
data.array() -=
m_iSamples * (finalResult.
mu * finalResult.
mu.transpose()).array();
118 computedCov.
diag =
false;
119 computedCov.
dim = computedCov.
data.rows();
146 qWarning() <<
"[RtCov::estimateCovariance] Number of samples equals zero. Regularization not possible. Returning empty covariance estimation.";
157 result.
mu = matData.rowwise().sum();
158 result.
matData = matData * matData.transpose();
166 if(finalResult.
matData.size() == 0 || finalResult.
mu.size() == 0) {
167 finalResult.
mu = tempResult.
mu;
170 finalResult.
mu += tempResult.
mu;
#define FIFFV_MNE_NOISE_COV
FIFF file I/O and data structures (raw, epochs, evoked, covariance, forward).
Real-time signal processing (filtering, averaging, HPI fitting, noise reduction).
FiffCov regularize(const FiffInfo &p_info, double p_fMag=0.1, double p_fGrad=0.1, double p_fEeg=0.1, bool p_bProj=true, QStringList p_exclude=defaultQStringList) const
Bundled output of a real-time covariance computation step containing the covariance matrix and sample...
QList< Eigen::MatrixXd > m_lData
RtCov(QSharedPointer< FIFFLIB::FiffInfo > pFiffInfo)
FIFFLIB::FiffCov estimateCovariance(const Eigen::MatrixXd &matData, int iNewMaxSamples)
FIFFLIB::FiffInfo m_fiffInfo
static void reduce(RtCovComputeResult &finalResult, const RtCovComputeResult &tempResult)
static RtCovComputeResult compute(const Eigen::MatrixXd &matData)