#浮点数 #算术运算 #平方根 #严格舍入 #舍入模式

srmfpa

浮点数的四种算术运算(包括融合乘加)和严格舍入模式的平方根

2个版本

0.1.1 2024年6月30日
0.1.0 2024年6月29日

#501 in 数学

MIT/Apache

510KB
8K SLoC

C 5K SLoC // 0.5% comments Rust 3K SLoC // 0.0% comments

srmfpa

Crates.io Version Crates.io MSRV GitHub Actions Workflow Status docs.rs Crates.io License

浮点数的四种算术运算(包括融合乘加)和严格舍入模式的平方根。

use srmfpa::prelude::*;

// Support add, sub, mul, div, mul_add (fma) and sqrt

assert_eq!(0.1.round_ties_even_add(0.2), 0.30000000000000004);
assert_eq!(0.1.ciel_add(0.2), 0.30000000000000004);
assert_eq!(0.1.floor_add(0.2), 0.3);
assert_eq!(0.1.trunc_add(0.2), 0.3);

assert_eq!((-0.1).round_ties_even_add(-0.2), -0.30000000000000004);
assert_eq!((-0.1).ciel_add(-0.2), -0.3);
assert_eq!((-0.1).floor_add(-0.2), -0.30000000000000004);
assert_eq!((-0.1).trunc_add(-0.2), -0.3);

// Generic ops
assert_eq!(0.1.round_add(0.2, &RoundingMode::NearestTiesEven), 0.30000000000000004);

// Functions are available
use srmfpa::f64::{ciel_add, floor_add};
assert_eq!(ciel_add(0.1, 0.2), 0.30000000000000004);
assert_eq!(floor_add(0.1, 0.2), 0.3);

特性

许可证

MIT 或 Apache-2.0

依赖项

~185KB