remquo:减少参数?

And*_*zos 6 c math floating-point numerical

在C99规范中它说的是remquo:

remquo函数用于实现参数减少,这可以利用商的一些低阶位.注意,x的幅度可能相对于y太大,以至于商的精确表示是不实际的.

在这种情况下什么是"参数减少",什么是可以利用商的一些低阶位的例子?

R..*_*R.. 7

参数减少意味着将周期函数的参数映射到规范周期(例如,( - π,π)或类似).如果使用π/ 2作为除数,则商的低位足以确定对于trig函数的右符号/ etc.

然而,不幸的是,remquo对于实现标准的三角参数减少是没有用的,因为它?是不合理的; 减少大的参数模数π 的近似值将给出没有有效位的结果,即所有误差.

但是,如果您正在编写一个f(x)定义为sin(πx)或类似函数的函数,则该周期现在remquo可以在浮点中完全表示,并且可以完全满足您的需要,而sin(2*M_PI*x)直接调用将给出没有重要位的结果(即所有错误)什么时候x很大

  • 为了清楚起见,给定传递的参数,正确的remquo实现会返回精确的结果(没有错误).它在减少三角函数参数方面的用途有限的原因是它不可能更精确地传递π的值,而不是它可以用双精度表示(或者在remquol的长双精度中).所以问题出在输入上,而不是在函数计算中. (2认同)