v2.0.0
Loading...
Searching...
No Matches
extended_infomax.h File Reference

Extended Infomax independent component analysis (super- and sub-Gaussian sources). More...

#include "dsp_global.h"
#include <Eigen/Core>
#include <Eigen/Dense>
Include dependency graph for extended_infomax.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  UTILSLIB::InfomaxResult
class  UTILSLIB::ExtendedInfomax

Namespaces

namespace  UTILSLIB
 Shared utilities (I/O helpers, spectral analysis, layout management, warp algorithms).

Detailed Description

Extended Infomax independent component analysis (super- and sub-Gaussian sources).

SPDX-License-Identifier: BSD-3-Clause Copyright (c) 2026 MNE-CPP Authors

Author
Christoph Dinh chris.nosp@m.toph.nosp@m..dinh.nosp@m.@mne.nosp@m.-cpp..nosp@m.org
Since
2.2.0
Date
April 2026

Extended Infomax (Lee, Girolami & Sejnowski, 1999) is a maximum-likelihood ICA algorithm that maximises the joint entropy of a non-linearly transformed mixture and automatically switches the score (non-linearity) between a logistic form, suitable for super-Gaussian (sparse, peaky) sources, and a cubic form, suitable for sub-Gaussian sources such as line noise. The switch is driven by the sign of the per-component stability test k_i = sign(⟨sech²(Wᵢx)⟩ − ⟨(Wᵢx)²⟩), recomputed every iteration, which gives Extended Infomax a substantial robustness advantage over the standard logistic-only Infomax on MEG / EEG data where both source classes coexist.

The implementation here uses the natural-gradient update with adaptive step-size and optional block-wise random shuffling of samples, matching the MNE-Python defaults so artifact decompositions are reproducible across the two toolchains.

Definition in file extended_infomax.h.