5个不稳定版本

0.3.1 2024年8月8日
0.3.0 2024年8月8日
0.2.0 2023年6月15日
0.1.2 2023年3月2日
0.1.1 2023年3月1日

#148 in 数学

Download history 66/week @ 2024-04-28 13/week @ 2024-05-19 18/week @ 2024-05-26 18/week @ 2024-06-02 10/week @ 2024-06-09 13/week @ 2024-06-16 9/week @ 2024-06-23 4/week @ 2024-06-30 35/week @ 2024-07-07 14/week @ 2024-07-14 23/week @ 2024-07-21 34/week @ 2024-07-28 196/week @ 2024-08-04

268 每月下载量
用于 arrs

自定义许可证

40MB
291K SLoC

此Crate提供了一个八倍精度二进制浮点数算术的实现。

来自维基百科

“在2008年的修订版中,IEEE 754标准将binary256格式指定为交换格式之一(它不是一个基本格式),具有以下特性”

    Sign bit: 1 bit
    Exponent width: 19 bits
    Significand precision: 237 bits (236 explicitly stored)

该格式使用一个隐含的首位值为1的隐式首位位,除非指数全为零。因此,只有236位的有效数字出现在内存格式中,但总精度为237位(约71位十进制数字:log₁₀(2²³⁷) ≈ 71.344)。位按以下方式排列

Layout of octuple-precision floating-point format

指数编码

八倍精度二进制浮点数指数使用偏移二进制表示法进行编码,零偏移量为262143;也称为IEEE 754标准中的指数偏移。

    Eₘᵢₙ = −262142
    Eₘₐₓ = 262143
    Exponent bias = 3FFFF₁₆ = 262143

因此,根据偏移二进制表示法,为了获得真实指数,必须从存储的指数中减去262143的偏移量。

存储的指数00000₁₆和7FFFF₁₆被特别解释。

指数 有效数字为零 有效数字非零 方程
00000₁₆ 0, −0 下溢数值 (-1)signbit × 2⁻²⁶²¹⁴² × 0.significandbits₂
00001₁₆ … 7FFFE₁₆ 标准化值 标准化值 (-1)signbit × 2exponent bits₂ × 1.significandbits₂
7FFFF₁₆ ±∞ NaN(静默,指示)

最小严格正(下溢)值是2⁻²⁶²³⁷⁸ ≈ 10⁻⁷⁸⁹⁸⁴,精度只有一位。最小正正常值是2⁻²⁶²¹⁴² ≈ 2.4824 × 10⁻⁷⁸⁹¹³。可表示的最大值是2²⁶²¹⁴⁴ − 2²⁶¹⁹⁰⁷ ≈ 1.6113 × 10⁷⁸⁹¹³。

类型 f256 将提供与内置 f64 相同的稳定API(除了由增加的精度引起的差异)。

入门

f256 添加到您的 Cargo.toml

[dependencies]
f256 = "0.3"

Crate功能

默认情况下,仅启用功能 std

生态系统

  • std - 打印和一些测试依赖于此功能。除此之外,通过使用 alloc crate 提供了转换为字符串和格式化的支持,因此此功能也适用于非标准环境。

可选依赖项

  • num-traits - 当启用时,为 f256 实现了 num-traits::Num trait。

依赖项