19个版本
0.3.5 | 2024年3月21日 |
---|---|
0.3.3 | 2024年1月5日 |
0.3.2 | 2023年12月10日 |
0.2.2 | 2023年11月28日 |
0.1.5 | 2023年3月7日 |
#1270 在 数学
每月 112 次下载
用于 5 个 Crates(2 个直接使用)
800KB
18K SLoC
Astro-float(天文级大浮点数)是一个为性能、可移植性而设计的任意精度浮点数库,完全用Rust实现。
库实现了基本操作和函数。它使用经典算法,如Karatsuba、Toom-Cook、Schönhage-Strassen算法等。
如果提供内存分配器,则库可以在没有标准库的情况下工作。
更新内容
有关最新更改的信息,请参阅发行说明
用法
以下是使用该库的示例。有关更多信息,请参阅库文档:https://docs.rs/astro-float/latest/astro_float/
以1024位精度计算π,四舍五入到最接近的偶数。
use astro_float::Consts;
use astro_float::RoundingMode;
use astro_float::ctx::Context;
use astro_float::expr;
// Create a context with precision 1024, and rounding to even.
let mut ctx = Context::new(1024, RoundingMode::ToEven,
Consts::new().expect("Constants cache initialized"),
-10000, 10000);
// Compute pi: pi = 6*arctan(1/sqrt(3))
let pi = expr!(6 * atan(1 / sqrt(3)), &mut ctx);
// Use library's constant value for verifying the result.
let pi_lib = ctx.const_pi();
// Compare computed constant with library's constant
assert_eq!(pi.cmp(&pi_lib), Some(0));
性能
基准测试可在以下位置找到:https://github.com/stencillogic/bigfloat-bench。
贡献
有关错误或新功能的反馈,请在此处创建问题: https://github.com/stencillogic/astro-float/issues
有关更多信息,请查看CONTRIBUTING.md
依赖项
~0.5–0.9MB
~17K SLoC