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
This will install an unoptimized version, if you want to test benchmarking, be sure to install with
On MacOS, you may need to install additional dependencies:
The python code can then be used directly in python
>>>
>>>
26930.069103915423
The API doesn't completely match bilby-cython:
- there is currently no support for writing
numpyufuncsusingPyO3so the vectorized version ofgreenwich_mean_sidereal_timeis implemented asbilby_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 forbilby-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}.