Fast Polynomial Evaluation: 多项式计算速度翻倍工具

Show HN: Compute polynomials twice as fast

Fast Polynomial Evaluation 是一款突破性的链式编译器,它利用有理数预处理技术,将任意首一多项式的求值乘法次数从传统的 n 次降低至 ⌊n/2⌋+1 次。无论是用于 exp、sin、cos 等函数的近似计算,还是在密码学、哈希及编码理论中的多项式求值,它都能提供极致性能。用户只需输入多项式并选择数域,系统即可自动生成优化的计算链。相比 Horner 法、Estrin 法及 Rabin–Winograd 等经典算法,该工具在保持精确有理数预处理的同時,显著减少了乘法深度和总运算量,为高性能计算场景带来了革命性的效率提升。

通过巧妙的系数预处理,任何首一多项式的求值仅需 ⌊n/2⌋+1 次乘法,让计算速度直接翻倍。
  1. pvillano

    太酷了。玩了一下演示,学到了很多。我之前只知道 Horner 和 Estrin 算法,但现在我觉得大部分都掌握了。

    有个小建议:在图形可视化中,为每个用到的 x、x^2、x^4 设置独立的源节点。单个 x 源会让图形显得杂乱,掩盖了结构。

  2. throwaway81523

    如果你打算对多项式进行预处理,那可能是想在多个不同的点上求值。但既然如此,为什么不直接用 FFT 呢?

  3. voxelghost

    在切换算法时,它总是从例如 'ln(1+x)' 跳回 'monic',然后似乎就锁死在 'monic' 上了?(我是不是漏掉了什么?)

    另外我很好奇,在你的版本和 Horner 算法中,这两种算法分别对应多少条 fmadd 指令?

同日更多故事

2026-09-10