#数值计算 #数值

mpmfnum

Rust的数字库

2个不稳定版本

0.2.0 2024年3月8日
0.1.0 2023年10月9日

#479 in 数学

MITLGPL-3.0+

150KB
3K SLoC

mpmfnum

Rust库,用于模拟数字系统。

支持IEEE-754浮点数、定点数等。受FPCoreTitanic库的启发。

该库作为crate托管在此处。文档可以在此处找到。

使用mpmfnum

在项目目录中运行以下Cargo命令

cargo add mpmfnum

或将 mpmfnum 添加到您的 Cargo.toml 中,如下所示

[dependencies]
mpmfnum = "0.2.0"

lib.rs:

数字格式、精度和舍入模式。

mpmfnum 是一个数字库,用于模拟各种数字格式,在多个精度和多种舍入模式下。因此,其名称为“多精度、多格式”(MPMF)。与其他数字库(如BigIntRug (MPFR))不同,此库强调对各种计算机数字系统的清晰抽象,而不是高性能计算。

此库采用了FPCore标准中找到的设计原则。最重要的是,数值程序只需通过(i)实数数学运算和(ii)舍入来指定。例如,doublefloat 这样的数字格式不是一等公民,就像大多数编程语言中那样。相反,格式是舍入的副作用,应该被淡化或完全消除。此外,数值程序中的所有值都应被视为(扩展的)实数。

这些设计原则体现在此库的两个主要特性中

为了实现目的,我们将任何 Real 值限制为以下形式:(-1)^s * c * 2^exp,其中 s 为 0 或 1,c 为非负整数,exp 为整数。实现 RoundingContext 可能支持在 crate::ops 下找到的众多操作(作为特性)。该库提供的操作都是正确舍入的。

mpmfnum 通过实现 RoundingContext 支持各种数字系统。

依赖项

~21MB
~486K SLoC