#rational-numbers #fraction #naive #basic #structure #bens

已删除 bens_fractions

一个有理数的朴素实现

0.1.0 2021年2月3日

#26 in #rational-numbers

MIT 许可证

25KB
543

Ben的朴素有理数库 | 最后更新于2021/2/3

此库作为一个分数的基本实现。它旨在按照您的预期行为,尽可能地将结构决策留给您。

+, +=, -, -=, *, *=, /, /= 都进行了重载,并提供了 .abs() 和 .pow(u32) 方法。此数据结构溢出的可能性与您基于的数据类型相同,所以使用 pow() 时要小心。还有一个 rat![] 宏。

有理数定义为任何可以表示为整数除以另一个(非零)整数的数。此库比这要宽松得多。创建“有理数”(实际上只是一个分数)所需的所有东西是您的类型 T 实现以下特性:Add + Mul + Sub + Rem + Div + PartialEq + PartialOrd + Copy

尽管如此,请不要尝试将有理数从浮点数中创建出来,这会破坏一切,因为涉及分数操作的大多数算法都需要精确值(例如 gcd)。

此库旨在与原始数据类型一起用于精确数学运算。未来我希望使其更加健壮,以便它能支持您的自定义数据类型。

示例

use bens_fractions::{Rational,rat};

assert_eq!(rat![8i64, 32i64], Rational::from(8i64, 32i64).unwrap());

无运行时依赖