3 个版本
0.1.2 | 2021 年 5 月 28 日 |
---|---|
0.1.1 | 2021 年 5 月 13 日 |
0.1.0 | 2021 年 5 月 12 日 |
在 缓存 类别中排名 390
17KB
218 行(不含注释)
常数整除的基线实现
当整除编译时常量时,编译器(LLVM)可以信赖将其转换为乘法和移位序列。
当常量在运行时才知道时,这就不太好了。
这个crate实现了一种简单的策略,具有可靠的性能。可靠意味着好吗? 对于这个应用来说,是的。
基本的 PartialReciprocal
应该编译为常数时间快速路径,可以处理除 0、1 和 u64::MAX
以外的所有除数。
稍微复杂一些的 Reciprocal
也可以除以 1 和 u64::MAX
,但代价是增加一个 u64
字段,以及一个稍微复杂的(多一次加载,可能多一次整数运算指令)快速路径。