ABCMB: A Python+JAX Package for the Cosmic Microwave Background Power Spectrum
ABCMB is a differentiable Einstein-Boltzmann solver for the cosmic microwave background (CMB), presented as an analysis-ready Python+JAX code package. It captures important effects to linear order in ΛCDM cosmology and computes the CMB power spectrum.
The package includes lensing, polarization, massive neutrinos, and a state-of-the-art treatment of Big Bang Nucleosynthesis and recombination. It achieves sub-percent-level agreement with CLASS and can run on a GPU with competitive, and sometimes faster, run times, owing to favorable run-time scaling with the maximum multipole moment.
Compared with previous codes, ABCMB is refactored and uses object-oriented programming to improve extensibility, so new physics can be added without modifying source files. It also provides accurate and stable gradients to the user, making Fisher analyses straightforward and enabling efficient gradient-based sampling methods.