Metadata-Version: 2.4
Name: orpheus-npcf
Version: 0.3.0
Summary: Compute N-point correlation functions of spin-s fields.
Home-page: https://github.com/lporth93/orpheus
Author: Lucas Porth
License: GPL-3.0-or-later
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: astropy>=6
Requires-Dist: healpy>=1.18
Requires-Dist: numba<=0.62.1,>=0.61
Requires-Dist: numpy>=1.24
Requires-Dist: scipy>=1.15
Requires-Dist: scikit-learn
Dynamic: author
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

<p align="center">
  <img src="docs/orpheus_logov1.png" alt="Orpheus logo" width="500"/>
</p>

Orpheus is python package for the calculation of second- third- and fourth-order correlation functions of scalar and polar fields such as weak lensing shear. To efficiently perform the calculations, orpheus makes use of a mulitpole decomposition of the N>2 correlation functions and uses parallelized C code for the heavy lifting.

## Installation, Documentation and Examples
Installation steps, documentation and examples are provided at [orpheus.readthedocs.io](https://orpheus.readthedocs.io/).

### Installation
orpheus is on pypi:
```shell
pip install orpheus-npcf
```

Building from source instead compiles a parallelised C/C++ extension at install
time. Besides the python requirements you therefore need a C compiler with
OpenMP support (GCC, or Clang together with `libomp`). No external C libraries
are needed: the small HEALPix subset used by the curved-sky estimators is
shipped with orpheus, in `orpheus/src/healpix/`.

Then clone the repository via
```shell
git clone git@github.com:lporth93/orpheus.git
```
or
```shell
git clone https://github.com/lporth93/orpheus.git
```
navigate to the cloned directory and install:
```shell
cd orpheus
pip install .
```

### Documentation
In the [documentation](https://orpheus.readthedocs.io/) you find more information about the algorithms and approximation schemes employed in orpheus, as well as a series of jupyter notebooks that give examples of how to use the different estimators implemented in orpheus.

## Using the code
As at this moment there is no dedicated orpheus paper, please cite the paper that introduced the functionality implemented in orpheus:
 * If you use the three-point functionality, please cite [Porth+2024](https://doi.org/10.1051/0004-6361/202347987)
 * If you use the four-point functionality, please cite [Porth+2025](https://arxiv.org/abs/2509.07974) and [Silvestre-Rosello+2025](https://doi.org/10.1051/0004-6361/202557147)
 * If you use the direct estimator functionality, please cite [Porth & Smith 2022](https://doi.org/10.1093/mnras/stab2819)
 * If you use the two-point functionality, please provide a [reference](https://github.com/lporth93/orpheus) to the official GitHub repository in a footnote
 * If you use the fully spherical estimators, please also cite the original  HEALPix paper: [Gorski+2005](https://doi.org/10.1086/427976)


In each of the papers, you can find the main equations implemented in orpheus.
