Installation ============ From PyPI --------- Core package (no MNE dependency): .. code-block:: bash pip install pyamica With MNE-Python integration: .. code-block:: bash pip install "pyamica[mne]" With `uv `_: .. code-block:: bash uv add pyamica uv add "pyamica[mne]" GPU Support ----------- .. warning:: Only **CPU** and **CUDA** have been tested. Other backends (ROCm, XPU) may work but are untested. **Apple Silicon (MPS):** PyTorch's MPS backend does not support 64-bit floating point. When ``device="mps"`` is used, pyamica automatically falls back to 32-bit floats (``torch.float32``). Results will be less numerically precise than on CPU or CUDA, and large numerical differences relative to the reference Fortran implementation are expected. This was mainly implemented for the sake of completeness and with the hope that furture Apple Silicon chips will have support. If you need a specific CUDA version (e.g. CUDA 11.8 vs 12.x), install the matching PyTorch build **before** installing pyamica. See the `PyTorch installation guide `_ for the correct index URL. Pass ``device="cuda"`` (or ``"mps"`` on Apple Silicon) when constructing :class:`~pyamica.AMICA` or :class:`~pyamica.AmicaICA`. Development Install ------------------- .. code-block:: bash git clone https://github.com/DerAndereJohannes/pyamica cd pyamica pip install -e ".[mne,dev]" With uv: .. code-block:: bash git clone https://github.com/DerAndereJohannes/pyamica cd pyamica uv sync --extra mne --extra dev Running the tests: .. code-block:: bash pytest tests/ -v -m "not slow and not gpu" uv run pytest tests/ -v -m "not slow and not gpu" # uv Building the Documentation -------------------------- .. code-block:: bash pip install -e ".[docs]" sphinx-build docs docs/_build/html With uv: .. code-block:: bash uv sync --extra docs uv run sphinx-build docs docs/_build/html The generated HTML is at ``docs/_build/html/index.html``.