【发布时间】:2012-06-17 23:05:10
【问题描述】:
在 C99 规范中它提到了 remquo:
remquo 函数旨在实现参数缩减,它可以利用商的一些低位。请注意,x 相对于 y 的大小可能非常大,以至于商的精确表示是不切实际的。
在这种情况下,什么是“参数缩减”,以及可以利用商的几个低位的例子是什么?
【问题讨论】:
标签: c math floating-point numerical
在 C99 规范中它提到了 remquo:
remquo 函数旨在实现参数缩减,它可以利用商的一些低位。请注意,x 相对于 y 的大小可能非常大,以至于商的精确表示是不切实际的。
在这种情况下,什么是“参数缩减”,以及可以利用商的几个低位的例子是什么?
【问题讨论】:
标签: c math floating-point numerical
参数缩减意味着将周期函数的参数映射到规范周期(例如,(-π,π] 或类似)。如果使用 π/2 作为除数,商的低位就足够了用于确定触发函数的正确符号/等。
然而,不幸的是,remquo 对于实现标准的三角参数归约是无用的,因为π 是不合理的;以 π 的 近似值 为模减少大参数会得到没有有效位的结果,即所有错误。
但是,如果您正在编写定义为 sin(πx) 或类似函数的函数 f(x),则句点现在可以用浮点数精确表示,remquo 可以完全满足您的需求,而直接调用 sin(2*M_PI*x)当x 很大时,将给出没有有效位(即所有错误)的结果。
【讨论】: