Skip to main content

fastropop

fastropop logo

fastropop is the package that generates your SMBHB populations at lightning speed. It is designed to be a fast, flexible, and user-friendly tool for simulating the cosmic population of supermassive black hole binaries (SMBHBs) and their gravitational wave signatures in the nanohertz regime.

The package is centered on the semi analytic population from arXiv:0804.4476, which is implemented in the SemiAnalyticPopulation class. It also includes a suite of utilities for computing characteristic-strain quantities, sampling population realizations, binning into PTA-style spectra

Documentation: fastropop.readthedocs.io

This repository is maintained by Jonas El Gammal and reflects scientific work carried out with Chiara Cecchini, Gabriele Franciolini, and Mauro Pieroni. The package was used for the analysis in arXiv:2605.05157, but of course you can use it for whatever you want!

What It Does

  • defines a semi-analytic SMBHB population model
  • computes characteristic-strain quantities and expected binary counts
  • samples population realizations with JAX-backed randomness
  • bins sampled realizations into PTA-style spectra
  • generates HEALPix skymaps with either jax-healpy or healpy

Installation

git clone git@github.com:jonaselgammal/fastropop.git
cd fastropop
pip install -e .

Notes:

  • jax and jaxlib are core dependencies
  • skymap generation requires a HEALPix backend
  • jax-healpy is preferred when installed
  • standard healpy is supported as a fallback backend

Quick Start

import fastropop

pop = fastropop.SemiAnalyticPopulation()

distM, distz, distlog10f = pop.sample_dist(Nbinaries=1000, key=0)
spec = fastropop.binning(distM, distz, distlog10f, do_plot=False)

For reproducible stochastic methods, pass a JAX key or integer seed:

params = fastropop.draw_parameters(key=0)
Nbinaries = pop.generate_poisson_realization(1, key=1)

If key=None, the package creates a fresh nondeterministic JAX key internally.

Notebooks

The main examples currently live in:

  • examples/semi-analytic.ipynb
  • examples/population-spectra.ipynb
  • examples/skymaps.ipynb

Repository Layout

src/fastropop/        Package source
tests/                Unit and regression tests
examples/             Example scripts and notebooks
.github/workflows/    CI and release automation

Metadata

Release files for fastropop 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fastropop 0.1.0
File Size Uploaded
fastropop-0.1.0.tar.gz 1.5 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for fastropop 0.1.0
File Interpreter ABI Platform
fastropop-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.5 MB

Release files / fastropop-0.1.0.tar.gz

Download URL fastropop-0.1.0.tar.gz
Size 1.5 MB
Tags Source
SHA-256 checksum
How to use checksums
ab993b5862e6a615efa10730641ccaac8010579f8c980af69b441da0d1f40bfb
BLAKE2b-256 checksum
How to use checksums
e6488ca870e55162e56750e0ec6b283143e8fd7e27bdd7dfb6ba6bd16c308bd3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 15, 2026.

Transparency log

Release files / fastropop-0.1.0-py3-none-any.whl

Download URL fastropop-0.1.0-py3-none-any.whl
Size 21.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
77f6b257d41cf20d9ac4e1f28b49ff0c5830a2a00d20ca8db586b832cde1171b
BLAKE2b-256 checksum
How to use checksums
878db1ea5850c1062ed60aba1ead8957dd1191acd3fc51212b031cabf634979b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 15, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page