Skip to content

Sdcb.Arithmetic 1.1.0

Latest

Choose a tag to compare

@sdcb sdcb released this 26 Oct 10:34
· 1 commit to main since this release

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