6

C99仕様では、remquoについて次のように述べています。

remquo 関数は、商のいくつかの下位ビットを利用できる引数削減を実装することを目的としています。x の大きさが y に対して非常に大きい場合があるため、商の正確な表現は実用的ではないことに注意してください。

このコンテキストでの「引数の削減」とは何ですか?商の下位ビットを利用できる例は何ですか?

4

1 に答える 1

7

引数の削減とは、周期関数の引数を正準周期 (たとえば、(-π,π] など) にマッピングすることを意味します。除数として π/2 を使用した場合、商の下位ビットは、三角関数の右記号など。

残念ながら、は無理数remquoであるため、標準の三角関数の引数削減を実装するには役に立ちません。πの近似π法で大きな引数を減らすと、有意なビットがない、つまりすべてのエラーの結果が得られます。

f(x)ただし、sin(πx) などとして定義された関数を作成している場合、ピリオドは浮動小数点で正確に表現可能になりremquo、必要なことを正確に行うことができますが、直接呼び出すsin(2*M_PI*x)と、有意なビットのない結果が得られます (つまり、すべてのエラー)。xが大きいとき。

于 2012-06-18T00:46:49.577 に答える