Lua 5.3中的双曲函数被弃用,那么我应该直接使用它们还是重写它们?

我编写了一个命令行的科学计算器,我想添加双曲函数(math.tanh、math.cosh、math.sinh),但是这些函数已经被弃用,但是通过默认激活的兼容选项仍然可用。我应该重新实现这些函数,还是直接使用它们?

点赞
用户7396148
用户7396148

你可以重新实现这些函数。以下是一个重新实现的示例:

http://lua-users.org/wiki/HyperbolicFunctions

function M.sinh (x)
  if x == 0 then return 0.0 end
  local neg = false
  if x < 0 then x = -x; neg = true end
  if x < 1.0 then
    local y = x * x
    x = x + x * y *
        (((-0.78966127417357099479e0  * y +
           -0.16375798202630751372e3) * y +
           -0.11563521196851768270e5) * y +
           -0.35181283430177117881e6) /
        ((( 0.10000000000000000000e1  * y +
           -0.27773523119650701667e3) * y +
            0.36162723109421836460e5) * y +
           -0.21108770058106271242e7)
  else
    x =  exp(x)
    x = x / 2.0 - 0.5 / x
  end
  if neg then x = -x end
  return x
end

请注意,该网页中说明了以下内容:

初步测试表明,它们(函数)与 libC 实现相比,产生的结果最多相差一位。

2019-04-13 13:33:47