code

DarkMappy: Mapping the dark universe

DarkMappy is a lightweight python package which implements hybrid Bayesian dark-matter reconstruction techniques on the plane and on the celestial sphere. For comparison (and as initialisation for our iterations) the spherical Kaiser-Squires estimator is also implemented. These techniques are based on maximum a posteriori estimation which, by construction, support principled uncertainty quantification.

harmonic: Learnt harmonic mean estimator for Bayesian model selection

We resurrect the infamous harmonic mean estimator for computing the marginal likelihood (Bayesian evidence) and solve its problematic large variance. The marginal likelihood is a key component of Bayesian model selection since it is required to evaluate model posterior probabilities; however, its computation is challenging. The original harmonic mean estimator, first proposed in 1994 by Newton and Raftery, involves computing the harmonic mean of the likelihood given samples from the posterior.

OptimusPrimal: A lightweight primal-dual solver

OptimusPrimal is a light weight proximal splitting Forward Backward Primal Dual based solver for convex optimization problems. The current version supports finding the minimum of f(x) + h(A x) + p(B x) + g(x), where f, h, and p are lower semi continuous and have proximal operators, and g is differentiable. A and B are linear operators.

ProxNest: Proximal nested sampling for high-dimensional Bayesian model selection

ProxNest is an open source, well tested and documented Python implementation of the proximal nested sampling algorithm, which is uniquely suited for sampling from very high-dimensional posteriors that are log-concave and potentially not smooth (e.g. Laplace priors). This is achieved by exploiting tools from proximal calculus and Moreau-Yosida regularisation to efficiently sample from the prior subject to the hard likelihood constraint.

PURIFY: Next generation radio interferometric imaging

PURIFY provides functionality to perform radio interferometric imaging, i.e. to recover images from the Fourier measurements taken by radio interferometric telescopes. PURIFY leverages recent developments in the field of compressive sensing and convex optimisation, adapted, in some cases extended, and applied to radio interferometric imaging. PURIFY itself contains functionality specific to radio interferometry, whereas all sparse optimisation functionality is implemented in the companion code SOPT. SOPT provides very general algorithms for solving sparse regularisation problems and is being applied in many areas become radio interferometry.

QuantifAI: Scalable Bayesian uncertainty quantification with data-driven (learned) priors

QuantifAI is a PyTorch-based open-source radio interferometric imaging reconstruction package with scalable Bayesian uncertainty quantification relying on data-driven (learned) priors. The methods developed and implemented in QuantifAI are also being ported to the C++ PURIFY and SOPT codes for exascale computing.

S2BALL: Differentiable and accelerated wavelets on the ball

S2BALL is a JAX package for computing the scale-discretised wavelet transform on the ball and rotational ball. It leverages autodiff to provide differentiable transforms, which are also deployable on modern hardware accelerators (e.g. GPUs and TPUs). The transforms S2BALL provides are optimally fast but come with a substantial memory overhead and cannot be used above a harmonic bandlimit of L ~ 256, at least with current GPU memory limitations. That being said, many applications are more than comfortable at these resolutions, for which these JAX transforms are ideally suited, e.

S2FFT: Differentiable and accelerated spherical transforms with JAX

S2FFT is a JAX package for computing Fourier transforms on the sphere and rotation group. It leverages autodiff to provide differentiable transforms, which are also deployable on modern hardware accelerators (e.g. GPUs and TPUs). More specifically, S2FFT provides support for spin spherical harmonic and Wigner transforms (for both real and complex signals), with support for adjoint transformations where needed, and comes with different optimisations (precompute or not) that one may select depending on available resources and desired angular resolution.

S2WAV: Differentiable and accelerated spherical wavelets with JAX

S2WAV is a JAX package for computing wavelet transforms on the sphere and rotation group. It leverages autodiff to provide differentiable transforms, which are also deployable on modern hardware accelerators (e.g. GPUs and TPUs), and can be mapped across multiple accelerators. More specifically, S2WAV provides support for scale-discretised wavelet transforms on the sphere and rotation group (for both real and complex signals), with support for adjoints where needed, and comes with a variety of different optimisations (e.

snmachine: Classifying supernovae light curves

snmachine is a flexible python library for reading in photometric supernova light curves, extracting useful features from them and subsequently performing supervised machine learning to classify supernovae based on their light curves. The library is also flexible enough to easily extend to general transient classification.