Gargi Sharmaによる浮動小数点数の印刷
私はTaridesでOCamlオープンソースに貢献するソフトウェアエンジニアです.以前、私はBloomberg、Over、およびeBayで働いていました.私も再発センターに出席しました.
私の話では、印刷フロートの後ろの問題を説明しています.下記の私の話のためのメモを見てください.
第1部
Python RPLで出力は0.32999999999999996です.この問題は浮動小数点演算の場合や浮動小数点数の印刷と共にある. 印刷フェーズは、浮動小数点数の2進数表現を可能な限り数桁の人間に読み取り可能な10進表現に変換し、結果を伝える.
第二節問題は、すべての小数点数がバイナリ形式で正確に表されることができないということです. 浮動小数点数を2進数と逆に変換する例を示します.すべてのバイナリ番号には10進数の等価数がありますが、10進数は10進数ではありません.
“間違った”出力は0.32999999999999996と“正しい”出力0.33の両方が同じ間隔に落ちる. は、バイナリで0.3の正確な表現されていないので、アルゴリズムは、この数を丸める方法を決定し、どのように多くの数字を正確な表現を得るためにオフにスライスする必要があります. どのように、このアドレスを解決する最初のアルゴリズムは、問題を解決しましたか?
1990年から浮動小数点数を印刷するためのDragonOアルゴリズムは視覚的な例でアルゴリズムを説明します.このアルゴリズムは以下のアルゴリズムに基づいています 情報保存-あなたが数を印刷して、もう一度それを解析するとき、あなたは同じ番号 を得ることができなければなりませんは、第1の基準 を維持している間、最短数を印刷する正確に丸め は、一例のアルゴリズムの上記基準を示す. DragonO 4の欠点-任意精度の算術演算は遅い(ハードウェアではなくソフトウェアで実装する必要があるため)
何がドラゴンの土地で新しいですか?
グリース(2010) 印刷フロートスペースの次のジャンプは、2010年(最初の論文が出版された20年後!) Dragon 4の大きな欠点の1つは任意精度の数値を使用していたが、Grisuはマシン整数を使用した.グリスは、正確な時間の99.4 %であり、0.6 %の残りの残りのためのDragono 4に下落する必要があります. は、以前と同じ例でgrisuについて説明します. グリッチはV 8とMozilla JavaScriptエンジンの両方で使用されて、Dragono より5倍速いですグリス対Dragonoのベンチマークは、 を示します
リー・ナンバー(2018年)
Grisuで改善しているは、DragonO 4に対してフォールバックする必要はありません 以前と同様の例で、RYが としているは、Dragon 4対Grisu対リーAlu のベンチマークを示します
スライド:
参考文献
http://kurtstephens.com/files/p372-steele.pdf
https://github.com/dtolnay/ryu
https://www.cs.tufts.edu/~nr/cs257/archive/florian-loitsch/printf.pdf
https://cseweb.ucsd.edu/~lerner/papers/fp-printing-popl16.pdf
Here is a download link to the talk slides (PDF)
この話は、7月23日にCodeLand:Distributedの一部として発表される.話が会議の一部として流れたあと、それは録画されたビデオとしてこのポストに加えられます.
私の話では、印刷フロートの後ろの問題を説明しています.下記の私の話のためのメモを見てください.
第1部
Python RPLで
0.3 + 0.03
を印刷するとどうなりますか?第二節
-----------------------------------------------------
| signed bit | exponent | mantissa |
-----------------------------------------------------
1990年から浮動小数点数を印刷するためのDragonOアルゴリズム
何がドラゴンの土地で新しいですか?
グリース(2010)
リー・ナンバー(2018年)
Grisuで改善している
スライド:
参考文献
http://kurtstephens.com/files/p372-steele.pdf
https://github.com/dtolnay/ryu
https://www.cs.tufts.edu/~nr/cs257/archive/florian-loitsch/printf.pdf
https://cseweb.ucsd.edu/~lerner/papers/fp-printing-popl16.pdf
Here is a download link to the talk slides (PDF)
この話は、7月23日にCodeLand:Distributedの一部として発表される.話が会議の一部として流れたあと、それは録画されたビデオとしてこのポストに加えられます.
Reference
この問題について(Gargi Sharmaによる浮動小数点数の印刷), 我々は、より多くの情報をここで見つけました https://dev.to/gs0510/printing-floating-point-numbers-with-gargi-sharma-24flテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol