7个版本
0.1.6 | 2022年10月4日 |
---|---|
0.1.5 | 2022年10月4日 |
0.1.3 | 2022年9月28日 |
#718 in 数学
25KB
365 行
P-adic数
Rust中P-adic数的工具集。
包括P-adic类型和有理数类型。
P-adic数的展开符号目前是从左到右。
状态
这个库目前处于开发中,可能是不稳定的。
用法
将此内容添加到您的Cargo.toml
[dependencies]
padic = "0.1.6"
use padic::Ratio;
let ratio = Ratio::new(2, 5);
let padic = r.to_padic(3, 12);
assert_eq!(padic.valuation, 0);
assert_eq!(padic.expansion, vec![1, 1, 2, 1, 0, 1, 2, 1, 0, 1, 2, 1]);
assert_eq!(padic.expansion_cycle(), [1, 2, 1, 0]);
assert_eq!(padic.to_string(), "... 1 2 1 0 1 2 1 0 1 2 1 1");
辅助函数
- 带有重数的素数因子(a: i64 / b: i64) -> Vec<(prime: u64, exp: u64)>
- 扩展欧几里得算法及Bezout系数
- 模逆
- 双光标窗口循环检测用于p-adic展开中的重复数字
资源
待办事项
有理数
- 提取符号信息以将比转换为无符号整数变量的元组
- 使用扩展欧几里得算法将比化简为最简形式
- 有理数的基本算术运算
- 使用EGCD的模逆
- 实现扩展最大公约数以提取Bezout系数
P-adic
- 素数分解,返回(prime, exponent)元组的向量。
- 有理数的P-adic值
- 有理数的P-adic范数
- 有理数的给定精度P-adic展开
- 给定精度和给定位值的P-adic字符串表示
- P-adic展开中的循环检测(滑动窗口算法)
- P-adic算术运算
- 将P-adic展开转换为有理数
错误/特性
- 如果值大于精度,展开将不正确
- 如果精度低于循环长度,则不会检测到循环
许可证
MIT