Dav*_*men 16
在任何体面的数学库中实现诸如自然对数的函数将使误差保持在ulp以下(精度最低的单位).数学库函数的实现者的目标是找到一些最佳近似,一个通过尽可能少的计算实现所需精度的近似.泰勒系列通常是一个糟糕的选择,因为需要太多的术语才能达到所需的精度.
典型的选择武器是将所有可表示的实数范围缩小到某个非常小的区域,然后使用一些最佳近似值,在这个窄范围内产生所需函数的精确近似.这种最佳近似的典型选择武器是多项式或有理多项式(两个多项式的比率).该实现仅包含多项式系数.这些系数是通过一些优化技术构建的,例如Remes Exchange算法.
在自然对数的情况下,有一种简单的方法来缩小范围.实数几乎普遍表示在一个尾数和指数方面:X = 米*2 p,其中p是整数,米是1和2之间.因此LOG(X)=日志(米)+ p*日志( 2).后一项p*log(2)只是一个已知常数的乘法.因此,问题减少到找到1到2之间(或1/2和1之间)的数字的对数.通过使用√2在[1,2]的中间对数的事实可以进一步减小范围.因此,所需要的是计算1和√2之间的数的对数的方法.这通常用有理多项式完成.二阶多项式多项式与三阶多项式的比率对此非常有效.