26constexpr int FAIL = -1;
68 qWarning(
"Field computation function is missing in fwd_comp_field");
84 if (comp->
work.size() == 0)
103 QList<FiffChInfo> chs;
104 QList<FiffChInfo> compchs;
111 if (!coils || coils->
ncoil() <= 0) {
112 qWarning(
"Coil data missing in fwd_make_ctf_comp_coils");
116 for (k = 0; k < coils->
ncoil(); k++) {
119 chs[k].ch_name = coil->
chname;
120 chs[k].chpos.coil_type = coil->
type;
123 nchan = coils->
ncoil();
128 compchs[k].ch_name = coil->
chname;
129 compchs[k].chpos.coil_type = coil->
type;
134 res =
set->make_comp(chs,nchan,compchs,ncomp);
160 qWarning(
"No coils to duplicate");
186 qWarning(
"Field computation function is missing in fwd_comp_field_vec");
212 for (
int k = 0; k < 3; k++) {
213 Eigen::VectorXf resRow = res.row(k).transpose();
214 Eigen::VectorXf workRow = comp->
vec_work.row(k).transpose();
217 res.row(k) = resRow.transpose();
224int FwdCompData::fwd_comp_field_grad(
const Eigen::Vector3f& rd,
const Eigen::Vector3f& Q,
FwdCoilSet& coils, Eigen::Ref<Eigen::VectorXf> res, Eigen::Ref<Eigen::VectorXf> xgrad, Eigen::Ref<Eigen::VectorXf> ygrad, Eigen::Ref<Eigen::VectorXf> zgrad,
void *
client)
229 qCritical(
"Field and gradient computation function is missing in fwd_comp_field_grad");
245 if (comp->
work.size() == 0)
252 Eigen::VectorXf vw0 = comp->
vec_work.row(0).transpose();
253 Eigen::VectorXf vw1 = comp->
vec_work.row(1).transpose();
254 Eigen::VectorXf vw2 = comp->
vec_work.row(2).transpose();
257 comp->
vec_work.row(0) = vw0.transpose();
258 comp->
vec_work.row(1) = vw1.transpose();
259 comp->
vec_work.row(2) = vw2.transpose();
266 vw0 = comp->
vec_work.row(0).transpose();
270 vw1 = comp->
vec_work.row(1).transpose();
274 vw2 = comp->
vec_work.row(2).transpose();
Software-gradiometer compensation wrapper that subtracts the reference-channel contribution from the ...
std::function< int(const Eigen::Vector3f &rd, FWDLIB::FwdCoilSet &coils, Eigen::Ref< Eigen::MatrixXf > res, void *client)> fwdVecFieldFunc
std::function< int(const Eigen::Vector3f &rd, const Eigen::Vector3f &Q, FWDLIB::FwdCoilSet &coils, Eigen::Ref< Eigen::VectorXf > res, Eigen::Ref< Eigen::VectorXf > xgrad, Eigen::Ref< Eigen::VectorXf > ygrad, Eigen::Ref< Eigen::VectorXf > zgrad, void *client)> fwdFieldGradFunc
std::function< int(const Eigen::Vector3f &rd, const Eigen::Vector3f &Q, FWDLIB::FwdCoilSet &coils, Eigen::Ref< Eigen::VectorXf > res, void *client)> fwdFieldFunc
Set of CTF compensation matrices plus the currently active grade.
Primitive scalar typedefs and forward-compatible aliases backing the FIFF type system.
Core MNE data structures (source spaces, source estimates, hemispheres).
FIFF file I/O, in-memory data structures and high-level readers/writers.
Forward modelling — BEM solver, spherical models, sensor/coil definitions and the lead-field assembly...
constexpr int FWD_COILC_EEG
Per-channel FIFF descriptor: identifiers, kind, calibration, coil type, channel-frame coil position a...
Single MEG sensor coil or EEG electrode — stores the coil-local frame and the (r_mag,...
Container of FwdCoil instances acting both as the in-memory image of the coil_def....
std::vector< FwdCoil::UPtr > coils
static int fwd_comp_field_grad(const Eigen::Vector3f &rd, const Eigen::Vector3f &Q, FwdCoilSet &coils, Eigen::Ref< Eigen::VectorXf > res, Eigen::Ref< Eigen::VectorXf > xgrad, Eigen::Ref< Eigen::VectorXf > ygrad, Eigen::Ref< Eigen::VectorXf > zgrad, void *client)
MNELIB::MNECTFCompDataSet * set
static int fwd_comp_field_vec(const Eigen::Vector3f &rd, FwdCoilSet &coils, Eigen::Ref< Eigen::MatrixXf > res, void *client)
fwdVecFieldFunc vec_field
static int fwd_comp_field(const Eigen::Vector3f &rd, const Eigen::Vector3f &Q, FwdCoilSet &coils, Eigen::Ref< Eigen::VectorXf > res, void *client)
fwdFieldGradFunc field_grad
static int fwd_make_ctf_comp_coils(MNELIB::MNECTFCompDataSet *set, FwdCoilSet *coils, FwdCoilSet *comp_coils)
static FwdCompData * fwd_make_comp_data(MNELIB::MNECTFCompDataSet *set, FwdCoilSet *coils, FwdCoilSet *comp_coils, fwdFieldFunc field, fwdVecFieldFunc vec_field, fwdFieldGradFunc field_grad, void *client)
Collection of CTF third-order gradient compensation operators.
std::unique_ptr< MNECTFCompData > current
int apply(bool do_it, Eigen::Ref< Eigen::VectorXf > data, Eigen::Ref< const Eigen::VectorXf > compdata)