2个版本
0.1.1 | 2024年6月30日 |
---|---|
0.1.0 | 2024年6月29日 |
#501 in 数学
510KB
8K SLoC
srmfpa
浮点数的四种算术运算(包括融合乘加)和严格舍入模式的平方根。
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);
特性
softfloat
:使用软浮点数来支持f32
和f64
(启用f32_softfloat
和f64_softfloat
)。f32_softfloat
:通过 Berkeley SoftFloat 3 支持软浮点数f32
f64_softfloat
:通过 Berkeley SoftFloat 3 支持软浮点数f64
f16_softfloat
:通过 Berkeley SoftFloat 3 支持软浮点数f16
f128_softfloat
:通过 Berkeley SoftFloat 3 支持软浮点数f128
许可证
MIT 或 Apache-2.0
依赖项
~185KB