Installation

The most recent stable version of OneCovariance should be installed directly from GitHub.

git clone git@github.com:rreischke/OneCovariance.git
cd OneCovariance
conda env create -f conda_env.yaml
conda activate cov20_env
pip install .

On some Linux servers you will have to install gxx_linux-64 by hand and the installation will not work. This usually shows the following error message in the terminal:

gcc: fatal error: cannot execute 'cc1plus': execvp: No such file or directory

If this is the case just install it by typing

conda install -c conda-forge gxx_linux-64

and redo pip install . .

If you do not want to use the conda environment, make sure that you have gfortran and gsl installed. Note that there is an issue with pybind11 when using python >= 3.13, so make sure to use a version below that for the moment. You can install both via conda:

conda install -c conda-forge gfortran
conda install -c conda-forge gsl
conda install -c conda-forge gxx_linux-64
git clone git@github.com:rreischke/OneCovariance.git
cd OneCovariance
pip install .

Once you have carried out these steps, you are ready to run the code. Lastly, since the code uses simpson instead of trapezoidal rules for some integrations, scipy should be at least version 1.11.

Known issues

There have been some issues reported when using MacOS Sonoma or higher with openmp resulting into a crash when running healpy or the implemented C++ integrators, causing the code to crash:

OMP: Error #15: Initializing libomp.dylib, but found libomp.dylib already initialized.

The code automatically checks for the OS version now. If you still encounter this problem a quick fix is to remove the if statement in line 11 of the covariance.py and thus use

os.environ['KMP_DUPLICATE_LIB_OK']='True'

by default. I have run many tests and never found incorrect results with this option set to True. For any linux-based system this command is not required and is not set to True by default.