Metadata-Version: 2.4
Name: epgx
Version: 0.1.dev0
Summary: Extended Phase Graph (EPG) simulations in JAX
Author: Pierre-Yves Baudin
License-Expression: BSD-3-Clause
Project-URL: Repository, https://github.com/py-baudin/epgx
Keywords: MRI,extended phase graph,EPG,simulation,JAX,differentiable
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: jax
Requires-Dist: numpy
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Provides-Extra: plot
Requires-Dist: matplotlib; extra == "plot"
Requires-Dist: cmocean; extra == "plot"
Provides-Extra: xarray
Requires-Dist: xarray; extra == "xarray"
Provides-Extra: dev
Requires-Dist: epgx[plot,test,xarray]; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Dynamic: license-file

# epgx

A JAX implementation of the Extended Phase Graph (EPG) formalism, successor of
[epgpy](https://github.com/py-baudin/epgpy).

Work in progress: the API may change between versions.

## Installation

``` shell
pip install epgx            # core (jax, numpy)
pip install epgx[plot]      # with EPG diagrams (matplotlib, cmocean)
```

Development:

``` shell
conda create -n epgx python=3.12
conda activate epgx
pip install -e .[dev]
pip install --group parity  # epgpy, for the parity tests (tests/parity)
pytest
```

## Precision

`epgx` follows JAX's precision setting (float32 by default) and never changes it.
For float64, enable it at the start of your program:

```python
import jax
jax.config.update("jax_enable_x64", True)
```
