25 个版本
新增 0.4.15 | 2024 年 8 月 18 日 |
---|---|
0.4.14 | 2024 年 6 月 22 日 |
0.4.10 | 2024 年 5 月 31 日 |
0.4.5 | 2024 年 2 月 12 日 |
0.2.5 | 2022 年 7 月 18 日 |
#471 在 数学 类别中
32,855 次每月下载
在 17 个 Crates 中使用 (5 个直接使用)
12MB
233K SLoC
而不是直接使用此 crate,请使用 malachite
元 crate。它导出此 crate 的所有公共成员。
在 malachite-q
的 doctests 中,您将经常看到以 malachite_q::
开头的导入路径。当使用 malachite
crate 时,将路径的这一部分替换为 malachite::
。
Rational
类型的导入路径缩短为 malachite::Rational
。
malachite-q
此 crate 定义了 Rational
。此 crate 的名称指的是有理数的数学符号,ℚ。
- 在
Rational
上定义了许多函数。包括 Rational
的分子和分母存储为Natural
,因此具有小分子和小分母的Rational
可以完全存储在堆栈上。- 大多数涉及
Rational
的算术运算都需要(自动)化简分子和分母。这是通过使用Natural
实现的高性能最大公约数和精确除法算法来高效完成的。
演示和基准测试
这个crate附带一个bin
目标,可用于运行演示和基准测试。
- 这个crate中的几乎所有公共函数都有一个关联的演示。运行一个演示可以让你看到函数在大量输入上的行为。例如,要演示
Rational
加法,可以使用以下命令
此命令使用cargo run --features bin_build --release -- -l 10000 -m exhaustive -d demo_rational_add
exhaustive
模式,它生成每个可能的输入,通常从最简单的输入开始,逐步过渡到更复杂的输入。另一种模式是random
。-l
标志指定应生成多少个输入。 - 您可以使用类似的命令运行基准测试。以下命令对各种加法算法
或其他库的GCD实现进行基准测试cargo run --features bin_build --release -- -l 1000000 -m random -b \ benchmark_rational_add_algorithms -o gcd-bench.gp
这将创建一个名为gcd-bench.gp的文件。您可以使用gnuplot创建SVG文件,如下所示cargo run --features bin_build --release -- -l 1000000 -m random -b \ benchmark_rational_add_assign_library_comparison -o gcd-bench.gp
gnuplot -e "set terminal svg; l \"gcd-bench.gp\"" > gcd-bench.svg
可用的演示和基准测试列表没有在文档中记录;您必须通过浏览bin_util/demo_and_bench
来找到它们。
功能
32_bit_limbs
:将Limb
的类型设置为默认值之外的u32
,而不是默认的u64
。random
:此功能提供了一些用于随机生成值的函数。默认情况下关闭,以避免引入一些额外的依赖项。enable_serde
:启用使用serde进行序列化和反序列化。test_build
:这个crate中很大一部分代码仅用于测试。对于典型用户,构建此代码会导致编译时间过长和生成的二进制文件过大。我的解决方案是仅在启用test_build
功能时构建此代码。如果您想运行单元测试,您必须启用test_build
。但是,doctests不需要它,因为它们只测试公共接口。启用此功能还会启用random
。bin_build
:此功能用于构建用于演示和基准测试的代码,这也需要很长时间来构建。启用此功能也会启用test_build
和random
。
Malachite由Mikhail Hogrefe开发。感谢b4D8、florian1345、konstin、Rowan Hart、YunWon Jeong、Park Joon-Kyu、Antonio Mamić、OliverNChalk和shekohex的贡献。
版权所有 © 2024 Mikhail Hogrefe
依赖项
~2–12MB
~145K SLoC