ホームページ >バックエンド開発 >C++ >単精度浮動小数点数を使用して倍精度演算をエミュレートするにはどうすればよいですか?

単精度浮動小数点数を使用して倍精度演算をエミュレートするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-02 12:24:30703ブラウズ

 How to Emulate Double-Precision Arithmetic Using Single-Precision Floats?

浮動小数点を使用した倍精度演算のエミュレーション

特定のシナリオでは、浮動小数点サポートが制限されている組み込みハードウェア システムでは、倍精度演算の必要性が発生する可能性があります。 -精密な機能。このため、単精度浮動小数点演算のみを使用してこれをどのように実現するかという問題が生じます。

倍精度値をエミュレートするには、2 つの単精度浮動小数点のタプルを含む構造体を利用する方法です。ダブルの高い部分と低い部分を表します。比較は辞書編集的な順序を使用して実行できます。

ただし、加算演算には課題があります。精度を確保するには、加算の基数を慎重に検討する必要があります。中間のアンダーフローまたはオーバーフローを避けるために、FLT_MAX (単精度浮動小数点で表現できる最大値) の倍数を使用することをお勧めします。

キャリーを検出するには、2 つの浮動小数点数の合計を、期待値。結果がゼロ以下の場合、桁上げが発生しています。

以下の参考文献は、GPU で単精度浮動小数点を使用した倍精度エミュレーションの技術に関する貴重な洞察を提供します。アーキテクチャ:

  • https://hal.archives-ouvertes.fr/hal-00021443
  • http://andrewthall.org/papers/df64_qf128.pdf

以上が単精度浮動小数点数を使用して倍精度演算をエミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。