CMB Analysis With A Differentiable Likelihood

CMB Analysis With A Differentiable Likelihood#

Authors:

L. Balkenhol, C. Trendafilova, K. Benabed, S. Galli

Paper:

arxivshield

Source:

Lbalkenhol/candl

Documentation:

docsshield

candl is a differentiable likelihood framework for analysing CMB power spectrum measurements. Key features are:

  • JAX-compatibility, allowing for fast and easy computation of gradients and Hessians of the likelihoods.

  • The latest public data releases from the South Pole Telescope and Atacama Cosmology Telescope collaborations.

  • Interface tools for work with other popular cosmology software packages (e.g. Cobaya and MontePython).

  • Auxiliary tools for common analysis tasks (e.g. generation of mock data).

candl supports the analysis of primary CMB and lensing power spectrum data (\(TT\), \(TE\), \(EE\), \(BB\), \(\phi\phi\), \(\kappa\kappa\)).

Installation#

candl can be installed with pip:

pip install candl-like

or alternatively you can clone and pip install . this repository.

Data Sets#

candl data sets are kept separately from the code. There currently exist three online libraries with compatible data:

  • spt_candl_data: official data repository of the South Pole Telescope collaboration.

  • spt_candl_forecasts: official repository of forecast likelihoods of the South Pole Telescope collaboration.

  • candl_data: repository of CMB data sets re-implemented in candl.

  • clipy: 2018 Planck likelihoods available through a wrapper with the python, JAX-friendly clipy implementation.

Together these provide access to the following data:

Data set

Library

Papers

SPT-3G D1 T&E

spt_candl_data

Quan et al. 2025 (in prep.)

SPT-3G D1 BB

lite version: candl_data

Zebrowski et al. 2025

SPT-3G 2018 TT/TE/EE

candl_data

Dutcher et al. 2021

SPT-3G 2018 \(\phi\phi\)

candl_data

Pan et al. 2023

SPT-3G Ext-10k forecast

spt_candl_forecasts

Vitrier et al. 2025

SPTpol BB

candl_data

Sayre et al. 2020

Planck 2018 likelihoods

clipy

Planck 2018 V

ACT DR6 TT/TE/EE

candl_data

Calabrese et al. 2025

ACT DR6 \(\phi\phi\)

candl_data

Qu et al. 2023

ACT DR4 TT/TE/EE

candl_data

Choi et al. 2020

Detailed, installation instructions for the data sets can be found on the dedicated repo pages, but in short, for the spt_candl_data and the candl_data libraries you navigate to where you would like to store the data and then run:

git clone https://github.com/SouthPoleTelescope/spt_candl_data.git
cd spt_candl_data
pip install .

or:

git clone https://github.com/Lbalkenhol/candl_data.git
cd candl_data
pip install .

Instructions on how you can add your own data sets can be found in the docs.

JAX#

JAX is a Google-developed python library. In its own words: “JAX is Autograd and XLA, brought together for high-performance numerical computing.”

candl is written in a JAX-friendly way. That means JAX is optional and you can install and run candl without JAX and perform traditional inference tasks such as MCMC sampling with Cobaya. However, if JAX is installed, the likelihood is fully differentiable thanks to automatic differentiation and many functions are jitted for speed.

Packages and Versions#

candl has been built on python 3.10. You may be able to get it running on 3.9, but this is not officially supported - run it at your own risk.

candl has been tested on JAX versions 0.5.1, 0.4.31, and 0.4.24.

Documentation#

You can find the documentation here.

Citing candl#

If you use candl please cite the release paper. Be sure to also cite the relevant papers for any samplers, theory codes, and data sets you use.


CNRS ERC NEUCosmoS IAP Sorbonne