大数扩展函数易语言源码ln(自然对数)/ lg(以10位底的对数函数)
exp(以自然对数为底的指数函数)
pow(求次方)

以上这几个数学基本函数,可能由于精度和运算速度的问题,我猜测作者没有开发。

所以,在缩小精度,速度不保证的情况下,提出上述三个函数。采用的是泰勒级数展开法,可能收敛比较慢,取得是小数部分的或参数优化,所以精度稍微有保障(统一了次数)

*意思是存在一定的误差,工程上允许的误差!

在关于lnx的函数原理中,我构造了两种函数,Remez函数是借鉴了C语言的核心,反反复复折腾了好久,有能力的可以参考原作品,或者参考Windows计算器的开源版,在GitHub上有发布。

标准方案,这套方案是 1993 年由 Sun Microsystems 正式写入 C 标准库的方案,函数为 double ieee754log(double x)(ieee754: IEEE二进制浮点数算术标准)。但这套方法为了性能的苛刻而写得过于复杂.

所有的对数函数计算核心都是利用(泰勒级数)然后多项式求和计算结果。为了性能或者精度的要求可能会对展开后的求和式子做进一步优化,最终会封装一个 ln 函数出来。其余的对数函数都是使用换底公式来套 ln 函数做的最底层实现,随着大量图形运算的需求提升,ln函数实现得好不好直接决定你电脑快不快。

发表回复

后才能评论