[论文解读] Optimizing polynomials for floating-point implementation
本文提出了一种改进的 Remez 算法,通过强制将小系数设为零,优化了浮点数实现中的多项式逼近,从而降低了计算成本和数值抵消。该方法采用黑箱函数接口,针对不完整的单项式基底,生成比标准极小化最大误差逼近更高效且数值更稳定的多项式。
The floating-point implementation of a function on an interval often reduces to polynomial approximation, the polynomial being typically provided by Remez algorithm. However, the floating-point evaluation of a Remez polynomial sometimes leads to catastrophic cancellations. This happens when some of the polynomial coefficients are very small in magnitude with respects to others. In this case, it is better to force these coefficients to zero, which also reduces the operation count. This technique, classically used for odd or even functions, may be generalized to a much larger class of functions. An algorithm is presented that forces to zero the smaller coefficients of the initial polynomial thanks to a modified Remez algorithm targeting an incomplete monomial basis. One advantage of this technique is that it is purely numerical, the function being used as a numerical black box. This algorithm is implemented within a larger polynomial implementation tool that is demonstrated on a range of examples, resulting in polynomials with less coefficients than those obtained the usual way.
研究动机与目标
- 解决由于系数幅度差异过大导致的浮点数多项式求值中的数值不稳定性问题。
- 通过消除小或可忽略的系数,减少多项式求值中的运算次数。
- 将基于对称性的系数剪枝方法(例如奇/偶函数)推广到更广泛的函数类别,而无需对对称性有解析知识。
- 开发一种纯数值方法,适用于以黑箱形式提供的函数,无需符号运算。
- 提高浮点数运算中基于多项式的初等函数实现的实用性和准确性。
提出的方法
- 将 Remez 算法适配于在不完整的单项式基底上最小化误差,其中某些单项式被排除(即其系数被强制设为零)。
- 采用一种数值方法,将目标函数视为黑箱,仅需函数求值和导数访问。
- 应用一种改进的误差最小化准则,以考虑基底中缺少选定单项式的情况,确保在约束条件下实现最优逼近。
- 使用 Horner 法进行求值,并分析求值过程中的潜在抵消现象,以指导系数剪枝。
- 与双精度双精度和三重精度算术集成,以限制求值误差并确保正确性。
- 通过误差界分析和对反误差函数及初等函数等函数的实证测试验证结果。
实验结果
研究问题
- RQ1在多项式逼近中,系数剪枝是否能同时降低计算成本和浮点数求值中的数值抵消?
- RQ2当某些系数在数值上不显著时,如何优化极小化最大误差多项式以适用于浮点数实现?
- RQ3基于对称性的系数消除方法在奇/偶函数之外的推广程度如何?
- RQ4是否可以仅通过纯数值算法(无需符号分析)有效识别并消除多项式逼近中的小系数?
- RQ5与标准极小化最大误差或泰勒级数逼近相比,所提出的方法在准确性和效率方面表现如何?
主要发现
- 该算法成功识别并消除了多项式逼近中的小系数,减少了项数并提高了数值稳定性。
- 对于在 [-1/4, 1/4] 区间上、相对误差界为 2^-60 的反误差函数,该方法生成了一个仅含奇次项的 19 次奇多项式,逼近误差达到 2^-62.9。
- 使用双精度双精度算术计算时,所得多项式的求值误差被限制在 2^-62.4 以内,表现出极高的精度。
- 即使在函数作为黑箱处理、事先不知晓对称性的情况下,该方法也能自动选择合适的单项式基底(例如奇函数对应奇次幂),无需先验知识。
- 该方法通过确保系数幅度不会显著差异过大,降低了运算次数并避免了抵消,从而在浮点数运算中提升了性能和可靠性。
- 该算法已成功集成到 Sollya 等工具中,并用于 CRLibm 库中实现函数,展示了其实际应用价值。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。