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 数学
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)。位按以下方式排列
指数编码
八倍精度二进制浮点数指数使用偏移二进制表示法进行编码,零偏移量为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。