bilby_rust

Crates.iobilby_rust
lib.rsbilby_rust
version0.1.0
sourcesrc
created_at2024-08-21 21:43:31.961334
updated_at2024-08-21 21:43:31.961334
descriptionRust implementation of domain-specific geometrical operations for Bilby to mirror the functionality in bilby-cython using PyO3.
homepage
repositoryhttps://github.com/ColmTalbot/bilby_rust
max_upload_size
id1346955
size67,722
Colm Talbot (ColmTalbot)

documentation

README

bilby-rust

Rust implementation of domain-specific geometrical operations for Bilby to mirror the functionality in bilby-cython using PyO3.

Usage

To compile the project and install the python bindings you can use maturin

$ maturin develop

This will install an unoptimized version, if you want to test benchmarking, be sure to install with

$ maturin develop --release

On MacOS, you may need to install additional dependencies:

rustup target add x86_64-apple-darwin
mamba install -c conda-forge clang

The python code can then be used directly in python

>>> from bilby_rust.time import greenwich_mean_sidereal_time
>>> greenwich_mean_sidereal_time(1e9)
26930.069103915423

The API doesn't completely match bilby-cython:

  • there is currently no support for writing numpy ufuncs using PyO3 so the vectorized version of greenwich_mean_sidereal_time is implemented as bilby_rust.time.greenwich_mean_sidereal_time_vectorized.
  • additional functionality for dealing with time- and frequency-dependent antenna response functions is additionally implemented using, e.g., bilby_rust.geometry.{time_dependent_polarization_tensor,time_delay_from_geocenter_vectorized,frequency_dependent_detector_tensor}. This was translated from an implementation by @jacobgolomb for bilby-cython.
  • the convention for the detector-based reference frame from Roulet+ is included as bilby_rust.geometry.zenith_azimuth_to_theta_phi_optimized.
  • calculation of the antenna response that projects the detector pattern against the polarization tensors using bilby_rust.geometry.{antenna_response,antenna_response_all_model,antenna_response_tensor_modes}.
Commit count: 0

cargo fmt