Metadata-Version: 2.1
Name: gauss-jacobi-quad
Version: 0.2.2
Summary: CPython extension for GaussJacobiQuad (ISO_C_BINDING C ABI, Stable ABI / abi3)
Keywords: quadrature,gauss-jacobi,numerical,fortran,abi3,stable-abi
Author-Email: Rohit Goswami <rgoswami@ieee.org>
License: MIT
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: C
Classifier: Programming Language :: Fortran
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Scientific/Engineering :: Mathematics
Project-URL: Homepage, https://github.com/HaoZeke/GaussJacobiQuad
Project-URL: Repository, https://github.com/HaoZeke/GaussJacobiQuad
Project-URL: Documentation, https://github.com/HaoZeke/GaussJacobiQuad/tree/main/docs/orgmode
Project-URL: Bug Tracker, https://github.com/HaoZeke/GaussJacobiQuad/issues
Requires-Python: >=3.9
Requires-Dist: numpy>=1.20
Provides-Extra: test
Requires-Dist: pytest>=7; extra == "test"
Description-Content-Type: text/markdown

# gauss-jacobi-quad

CPython **extension** for [GaussJacobiQuad](https://github.com/HaoZeke/GaussJacobiQuad).

- Calls **ISO_C_BINDING** entry `gauss_jacobi_rule_c` (same ABI as the C library)
- **Stable ABI** (`Py_LIMITED_API` 3.9 → one `cp39-abi3` manylinux wheel for 3.9+)
- **Multi-phase** module init (PEP 489)
- Heap exception type via `PyErr_NewException` (dynamic type)
- Wheel embeds the Fortran/C kernels (meson-python + gfortran)

Free-threaded CPython (`3.13t`) is a **different** ABI and does not load `abi3` wheels;
use a from-source build there if needed.

## Install

```bash
pip install gauss-jacobi-quad
```

Building from source requires `gfortran`, `openblas`/`lapack`, `meson`, `ninja`.

## Usage

```python
from gauss_jacobi_quad import gauss_jacobi, GaussJacobiError

x, w = gauss_jacobi(32, 0.0, 0.0)                 # auto
x, w = gauss_jacobi(40, 0.5, 0.5, method="glr")
```

No `GJP_CINTERP` needed for the extension wheel.

## License

MIT
