Repository navigation
Sdcb.Arithmetic 1.1.0
dotnet add package Sdcb.Arithmetic --version 1.1.0
性能改进:Real.Pi 提速约 3–5 倍
高精度(≥ 2000 位)下的 Real.Pi 由 Brent–Salamin AGM 改为 Chudnovsky 级数 + 二分拆分(binary splitting)。AGM 每一轮都要做一次全精度开方与乘法,约需 log₂(n) 轮;Chudnovsky 每一项贡献约 14 位十进制数字,整体只需一次除法和一次开方。
| π 精度 | 1.0.0(AGM) | 1.1.0(Chudnovsky) |
|---|---|---|
| 262,144 bit(≈ 78,913 位十进制) | ~0.4 s | ~0.1 s |
| 100 万位十进制(≈ 3.32M bit),冷启动含 JIT | 2.72 s | 0.83 s |
| 100 万位十进制,预热后 | — | 0.51 s |
(x64 原生 .NET 10 测得;浏览器 WebAssembly 下同样受益。)
正确性
- 结果依旧是正确舍入(Ziv 策略不变),五种舍入模式全部适用。
- 全部 204 个单元测试通过;与 MPFR
mpfr_const_pi的逐位比对(含 4097 / 9000 bit)全部一致。 - 另在 2001 – 3,400,000 bit 的 13 个精度上,以 TowardZero / TowardPositive / NearestEven 与独立的高精度参考值比对,全部正确舍入。
其他
- API 无任何变化,可直接升级。
- 文档(
docs/real.md、docs/performance.md、docs/references.md)与pi.linq示例已同步更新。
完整变更:v1.0.0...v1.1.0