0

「m」ビットの仮数部と「e」ビットの指数部を持つ浮動小数点数のセットがあるとします。さらに、関数 "f" を近似したいとします。

理論から、通常は「範囲縮小関数」が使用され、そのような関数からグローバル関数値が導出されることがわかっています。

たとえば let x = (sx,ex,mx) (sign exp and mantissa) then... log2(x) = ex + log2(1.mx) したがって、基本的に範囲縮小関数は「log2(1.mx)」です。 .

現在、逆数、平方根、log2、exp2 を実装していますが、最近、三角関数を使い始めました。しかし、グローバルエラーバウンド(特にulpエラー)が与えられた場合、範囲縮小関数のエラーバウンドを導出することが可能である場合、私はさまよっていました。この種の問題に関する研究はありますか?log2(x) といえば (例として) 私は言うことができるようになる.

「k ulp エラーを含む log2(x) が必要です。これを実現するには、浮動小数点システムを考えると、log2(1.mx) を p ulp エラーで概算する必要があります」

私が言ったように、私たちは浮動小数点数を扱っていることを知っていますが、フォーマットは一般的であるため、古典的な F32 である可能性がありますが、たとえば e=10、m = 8 などです。

私は実際にそのような種類の研究を示す参考文献を見つけることができません. 私が持っている参考文献 (つまりミュラーの本) はこのトピックをこのように扱っていないので、ある種の紙などを探していました。リファレンスを知っていますか?

私もそのような束縛を自分で導出しようとしていますが、簡単ではありません...

4

1 に答える 1

0

https://hal.inria.fr/ensl-00086904/documentには、提案された改善とエラー分析とともに、現在の慣行の説明があります。現在の実践の説明は、https://docs.oracle.com/cd/E37069_01/html/E39019/z4000ac119729.htmlの概要と一致しているように見えます。これは、最も話題になっている問題が mod pi 範囲であるという私の記憶と一致しています。三角関数の削減。

IEEE 浮動小数点は、さまざまなコンピューター アーキテクチャが存在していた時代に標準化され、それらの間でコードを移植するリスクが軽減されたという理由だけで、大きな前進だったと思いますが、これによって暗示される精度要件はやり過ぎだった可能性があります。多くの問題では、出力の精度に対する制約は入力データの精度であり、中間値の計算の精度ではありません。

于 2015-06-14T05:03:04.377 に答える