1 个不稳定版本
新 0.1.0 | 2024 年 8 月 21 日 |
---|
#882 在 科学
59KB
1K SLoC
bilby-rust
Rust 实现 Bilby 的特定领域几何操作,以镜像 bilby-cython 中的功能,并使用 PyO3。
用法
要编译项目和安装 Python 绑定,可以使用 maturin
$ maturin develop
这将安装一个未优化的版本,如果您想进行基准测试,请确保使用以下命令安装:
$ maturin develop --release
在 MacOS 上,您可能需要安装额外的依赖项
rustup target add x86_64-apple-darwin
mamba install -c conda-forge clang
Python 代码可以直接在 Python 中使用
>>> from bilby_rust.time import greenwich_mean_sidereal_time
>>> greenwich_mean_sidereal_time(1e9)
26930.069103915423
API 与 bilby-cython
不完全匹配
- 由于目前不支持使用
numpy
ufuncs
通过PyO3
编写,因此greenwich_mean_sidereal_time
的向量化版本实现为bilby_rust.time.greenwich_mean_sidereal_time_vectorized
。 - 此外,还实现了处理时间和频率相关的天线响应函数的功能,例如使用
bilby_rust.geometry.{time_dependent_polarization_tensor,time_delay_from_geocenter_vectorized,frequency_dependent_detector_tensor}
。这来自 @jacobgolomb 为bilby-cython
的 实现。 - 从 Roulet+ 包含的基于探测器的参考帧约定为
bilby_rust.geometry.zenith_azimuth_to_theta_phi_optimized
。 - 使用
bilby_rust.geometry.{antenna_response,antenna_response_all_model,antenna_response_tensor_modes}
计算天线响应,将检测器图案投影到极化张量上。
依赖关系
~7–12MB
~146K SLoC