#模运算 # #模运算 #裸金属 #无std #模运算

无std bare_metal_modulo

ModNum是一个专为no_std使用而设计的极为人性化的模运算结构体

25个版本 (9个稳定版)

1.2.4 2023年2月14日
1.2.2 2022年12月27日
1.1.2 2022年10月29日
0.11.3 2022年9月9日
0.7.0 2021年2月5日

#196 in 数学

Download history 27/week @ 2024-04-04 44/week @ 2024-04-11 104/week @ 2024-04-18 129/week @ 2024-04-25 46/week @ 2024-05-02 53/week @ 2024-05-09 20/week @ 2024-05-16 12/week @ 2024-05-23 42/week @ 2024-05-30 43/week @ 2024-06-06 72/week @ 2024-06-13 45/week @ 2024-06-20 56/week @ 2024-06-27 136/week @ 2024-07-04 45/week @ 2024-07-11 68/week @ 2024-07-18

每月309次下载
midi_fundsp 中使用

MIT/Apache

58KB
961 行代码

裸金属模运算

ModNumModNumC 是专为 no_std 使用而设计的极为人性化的模运算结构体。

ModNum 对象表示一个模m的值。值和模可以是任何原始整数类型。算术运算符包括 +-(一元和二元)、*/pow()==。还包括计算乘法逆元和解决模方程的能力。

ModNumC 对象同样表示一个模 M 的值,其中 Musize 类型的泛型常量。算术运算符包括 +-(一元和二元)、*==

该库最初开发是为了方便在任意起始点通过固定大小数组进行双向导航。这是通过一个双向迭代器实现的,该迭代器从任何所需的值开始遍历整个环。迭代器支持 ModNumModNumC

模数表示一个整数除以模的余数。如果我们还存储余数以外的商,我们就有了在计算过程中值“环绕”次数的计数。

例如,如果我们从 8 (mod 17) 开始并加上 42,结果是 16 (mod 17),环绕了 2 次。 WrapCountNumWrapCountNumC 对象存储这个环绕值并提供它。

此外,有时能够在从零偏移的范围中来回移动是有用的。为此,提供了 OffsetNumOffsetNumC

请注意,ModNumModNumCWrapCountNumWrapCountNumCOffsetNumOffsetNumC 并非设计用于与任意长度的整数一起工作,因为它们需要它们的整数类型实现 Copy 特性。

注释

依赖关系

~465KB