Skip to main content

Python wrapper for the COrrelation Function Full-sky Estimator code

Project description

COFFE v3

This is the public repository for the code COFFE (COrrelation Function Full-sky Estimator), which can be used to compute the following quantities in linear perturbation theory:

  • full-sky and flat-sky 2-point correlation function (2PCF) of galaxy number counts, taking into account all of the effects (density, RSD, lensing, etc.)
  • full-sky and flat-sky multipoles of the 2PCF
  • redshift-averaged multipoles of the 2PCF
  • flat-sky Gaussian covariance matrix of the multipoles of the 2PCF
  • flat-sky Gaussian covariance matrix of the redshift-averaged multipoles of the 2PCF

The relevant theoretical papers are:

Installation

From pip

If you are on Linux, the latest version of COFFE can be installed using:

pip install coffe

If you are on another platform, refer to the section below.

Development version (including non-Linux machines)

NOTE: the use of a virtual environment (such as Python's venv or Conda) is highly recommended.

If you would like to install the development version, you will need to first install the following:

  • a C compiler, compatible with the C99 standard
  • a Python interpreter, version 3.7 or above
  • GSL (GNU Scientific Library) and the corresponding headers, version 2.1 or above (available as libgsl-dev on Debian-based, and as gsl-devel on RHEL/CentOS-based distros)
  • FFTW and the corresponding headers, version 3 or above (available as libfftw3-dev on Debian-based, and as fftw-devel on RHEL/CentOS-based distros)

Then clone this repository:

git clone https://github.com/JCGoran/coffe

then change directory to it:

cd coffe

NOTE: if you are using Conda, you can install the above dependencies easily. First, create a new environment:

conda create --name [NAME]

and activate it:

conda activate [NAME]

Finally, run:

conda install --channel conda-forge --file requirements.txt

Once you have installed the above (either natively or using Conda), you can run:

./install

to install all of the other dependencies which COFFE requires.

Documentation

The documentation for the latest version is available here.

Bug reports and feature requests

Please use the issue tracker to submit any bug reports and feature requests.

License

COFFE is licensed under the GNU GPL 3.0. See the LICENSE file for more information.

Citations

If you use COFFE in a publication, we kindly ask that you cite the original paper describing the code, located at arXiv:1806.11090. A bibTeX entry is provided below for convenience.

@article{coffe:v1,
      author         = "Tansella, Vittorio and Jelic-Cizmek, Goran and Bonvin,
                        Camille and Durrer, Ruth",
      title          = "{COFFE: a code for the full-sky relativistic galaxy
                        correlation function}",
      year           = "2018",
      eprint         = "1806.11090",
      archivePrefix  = "arXiv",
      primaryClass   = "astro-ph.CO",
      SLACcitation   = "%%CITATION = ARXIV:1806.11090;%%"
}

Development

Testing

C tests (legacy)

To run the C test suite, you can use the command make check, which will build the binaries test_[MODULE], where [MODULE] can currently be one of background, integrals, corrfunc, multipoles, covariance, and automatically run them. Alternatively, you can build them one by one using make test_[MODULE], and run them manually via ./test_[MODULE]. This is primarily useful when modifying the code itself, to make sure the old results of the code weren't broken by some new change (feature, bugfix, etc.).

Python tests

To run the Python test suite, first install the development requirements:

pip install -r pip-requirements-dev.txt

Then run:

pytest tests/test_coffe.py

Building Python wheels

The building of wheels is done using the cibuildwheel utility. If building wheels for Linux, you can run:

sh build_wheels_linux.sh

which should build all of the wheels for Python 3.7 and above on Linux. The building of wheels for other platforms is not implemented, however, contributions are certainly welcome.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

coffe-3.0.dev6.tar.gz (375.6 kB view details)

Uploaded Source

Built Distributions

coffe-3.0.dev6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.3 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

coffe-3.0.dev6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.1 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

coffe-3.0.dev6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.2 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

coffe-3.0.dev6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.2 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

coffe-3.0.dev6-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.9 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

File details

Details for the file coffe-3.0.dev6.tar.gz.

File metadata

  • Download URL: coffe-3.0.dev6.tar.gz
  • Upload date:
  • Size: 375.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.2

File hashes

Hashes for coffe-3.0.dev6.tar.gz
Algorithm Hash digest
SHA256 17162ea20970cafd2d0afb8934f7ed31ceedbc67d8058cc0289369987bfe34ac
MD5 26a1da5fb4fa981e6b8aea1d988e9569
BLAKE2b-256 b4adaf45f581e62f104044c13e86459d2e17bb527153fe136dd080f4e2b7e3a7

See more details on using hashes here.

File details

Details for the file coffe-3.0.dev6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for coffe-3.0.dev6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3ef1bfe0d6263567eab322135ba1fe7b1975931fe14960f7df34feabf679a021
MD5 fd7792fa9e2f6b5feb4711487a578089
BLAKE2b-256 d4ba1d25cfbc5c341e0c07008a2f3a23c1ef38d3e634b2f0cfeaa0fb99e1fcf4

See more details on using hashes here.

File details

Details for the file coffe-3.0.dev6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for coffe-3.0.dev6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cdf027958a58698453f4b098aaaeab75b60dba7699c7ddde8014559c1005f733
MD5 60d3e408d69f998b40e3a5089f1cd483
BLAKE2b-256 2e2d6084f4dd2a9046ad806d2ecd5e3ae17c0ae48914a72a6f0c8b06b8bb9cb1

See more details on using hashes here.

File details

Details for the file coffe-3.0.dev6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for coffe-3.0.dev6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 46d74ab4974e929d6871c9427aa2f3cfe7061806ddeeb63a7037ba3355a980b9
MD5 3905cc68f30493c0ed54bdffbd3c38b6
BLAKE2b-256 5c49a4c4b13721157f19a75dcc47d0b78d5ba32b4b9a339fa4a270cb1e097077

See more details on using hashes here.

File details

Details for the file coffe-3.0.dev6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for coffe-3.0.dev6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5c528b7fe3766f4b9037f1e06c42dea9c1e207ffbb4479d0d956c9b37a46777b
MD5 f08a2ec3dae115edbfb35a53b469a2c6
BLAKE2b-256 826d2559b9a09158f42329f628c00a43765abe6951f9315b2d9223d7fc8548eb

See more details on using hashes here.

File details

Details for the file coffe-3.0.dev6-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for coffe-3.0.dev6-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c488c53a871e05cf7656e6a9c7a7d2a0cdc5c6814fd295c342168ebe9cfb6024
MD5 267b5ed989cd2c648addccf4768848e3
BLAKE2b-256 5dd6c4470a6a98f2baba637c37e6548693974b462a0a746e49b55b674c07dd08

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page