#大浮点 #大数 #数值

无std astro-float-num

纯Rust实现的多种精度浮点数

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数学

Download history 296/week @ 2024-03-13 323/week @ 2024-03-20 201/week @ 2024-03-27 174/week @ 2024-04-03 210/week @ 2024-04-10 105/week @ 2024-04-17 82/week @ 2024-04-24 73/week @ 2024-05-01 39/week @ 2024-05-08 26/week @ 2024-05-15 31/week @ 2024-05-22 46/week @ 2024-05-29 37/week @ 2024-06-05 16/week @ 2024-06-12 20/week @ 2024-06-19 35/week @ 2024-06-26

每月 112 次下载
用于 5 Crates(2 个直接使用)

MIT 协议

800KB
18K SLoC

Rust Minimum rustc version Test coverage

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