# Software

BCCP develops open-source software for use in cosmology. Here are some of our projects:

## SEP

SEP is a Python and C library for source detection and photometry, adapted from the SourceExtractor code base. It makes the SourceExtractor background and detection algorithms available directly from Python and (eventually) Julia. SEP on GitHub.

## SNCosmo

SNCosmo is a Python package for supernova cosmology data analysis and simulation. SNCosmo on GitHub.

## Dierckx.jl

Dierckx.jl is a package for 1-d and 2-d splines in Julia. It's a wrapper of the dierckx Fortran library available from NETLIB, the same library underlying the spline classes in scipy.interpolate.

## cosmoxi2d

cosmoxi2d provides theoretical predictions for the two-dimensional galaxy correlation function. This code was used to analyze DR9, DR10, and DR11 the SDSS-III BOSS CMASS galaxy sample and derive cosmological constraints on the geometry of the universe and the growth rate of cosmic structure.

## legacysurvey

legacysurvey provides a set of repositories which enable generative modeling of astronomical images.

## nbodykit

nbodykit provides a set of tools for analyzing clustering of simulation and observational cosmology data sets. A set of python scripts, built on top of efficient parallel C implementations allow the user to calculate power spectrum, correlation function, clustering and matching halos for large and small data sets at high fidelity. The design allows easy migration of the algorithms implemented in nbodykit to new types of data sources.

## kdcount

kdcount is a simple python extension for brute force pair-counting of point data sets. Pair-counting is the fundamental of estimating correlation functions from imaging and spectroscopy survey catalogues of quasars, galaxies, and Lyman-alpha forest.

## pmesh

pmesh is a set of python modules for particle mesh calculation with MPI parallel python.

## fastpm

fastPM is an approximated solver for N-body gravity problems. fastPM provides the foundation for large computational scale numerical experiements of large cosmic structure formation.

## abopt

abopt is a framework for constructing and optimizing differentiable numerical forward models with Python. The gradients of models described with abopt are computed with the back-propagation automated differentiation scheme. The modelling and optimization is not bound to any particular implementation backend (e.g. we use pmesh backend to construct a fastPM model), and thus abstract.

## cosmo++

Cosmo++ is a C++ library for cosmology and beyond, focusing on statistical sampling tools. It includes many general mathematical and statistical tools, such as an MCMC (Markov Chain Monte Carlo) sampler, conjugate gradient solver, Legendre polynomials and spherical harmonics calculators, curve fitting, interpolation (linear and cubic spline). An interface for the publicly available MultiNest sampler is also included. It also includes a learn-as-you-go emulatoer (see arXiv:1506.01079). The cosmological features include CMB power spectra and transfer function calculation (uses CLASS), sky map simulation, likelihood calculation, an interface for the Planck and WMAP9 likelihood codes, mask apodization.

## extinction

Extinction is a Python module containing optimized implementations of empirical galactic dust extinction laws. These are particularly useful for optimization and sampling of models of observations affected by dust.

## sfdmap

A minimal, fast, MIT-licensed Python module for getting E(B-V) dust values from Schlegel, Finkbeiner & Davis (1998) dust map FITS files.

## hi_class

hi_class is a modified Boltzmann-Einstein solver design to obtain predictions for general Dark Energy models and Modified Gravity theories. Based on CLASS and fully compatible with MCMC.