30 个版本

0.9.4 2024 年 3 月 21 日
0.9.2 2024 年 1 月 6 日
0.9.1 2023 年 12 月 10 日
0.8.0 2023 年 11 月 28 日
0.2.0 2022 年 11 月 15 日

#737数学

Download history 198/week @ 2024-04-08 145/week @ 2024-04-15 73/week @ 2024-04-22 87/week @ 2024-04-29 51/week @ 2024-05-06 19/week @ 2024-05-13 9/week @ 2024-05-20 47/week @ 2024-05-27 40/week @ 2024-06-03 7/week @ 2024-06-10 7/week @ 2024-06-17 26/week @ 2024-06-24 75/week @ 2024-07-01 29/week @ 2024-07-08 55/week @ 2024-07-15 371/week @ 2024-07-22

531 每月下载量
用于 3 crates

MIT 许可证

1MB
18K SLoC

Rust Minimum rustc version Test coverage

Astro-float (天文级大浮点数) 是一个专为性能、可移植性设计的任意精度浮点数库,纯 Rust 实现。

库实现了基本操作和函数。它使用卡拉茨uba、Toom-Cook、Schönhage-Strassen 算法等经典算法。

如果提供了内存分配器,则库可以在没有标准库的情况下工作。

新增功能

有关最新更改的信息可在 发布说明 中找到

用法

以下是一个使用库的示例。有关更多信息,请参阅库文档: https://docs.rs/astro-float/latest/astro_float/

使用 1024 位精度计算 Pi 并四舍五入到最近的偶数。

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.

贡献

有关错误或新功能的 issue 可以在此处打开: https://github.com/stencillogic/astro-float/issues

有关更多信息,请参阅 CONTRIBUTING.md

依赖项

~2MB
~48K SLoC