Patch release adding NumPy-backend outlier-rejection parity, repo-wide type-checking enforcement, and the full validation-evidence documentation. Correctness remains defined as parity with the reference Fortran binary, validated only on real sample EEG.
Highlights
- NumPy outlier rejection (
do_reject): the Fortran outlier-rejection path is ported toAMICA_NumPyvia the samegood_idxmechanism as the PyTorch backend, so the NumPy reference now drops per-sample outliers on therejstart/rejint/maxrejschedule (#123). - Rejection robustness: a non-finite log-likelihood is now distinguished from an over-aggressive
rejsig, so an over-tight rejection threshold fails with a clear message instead of a silent non-finite result (#127). - Type checking enforced repo-wide: all
tydiagnostics fixed (496 to 0) andtyadded to CI alongside a pre-commit config (ruff + ty) (#124, #125). - Comprehensive validation docs: the validation guide is now a full evidence page covering source-density bit-exactness, cross-platform device/precision invariance (cross-backend equivalence matrix + IC topomaps), the EEGLAB drop-in round-trip, and the other validated behaviors (#108).
Changelog
The changelog now also backfills the previously missing 0.1.1 entry. See the full changelog.
Install
```bash
git clone https://github.com/sccn/pyAMICA.git
cd pyAMICA
uv sync
```
Full diff: v0.1.1...v0.1.2