17

IEEE-754 操作の参照実装を探しています。そのようなことはありますか?

4

4 に答える 4

8

CライブラリのSoftFloatfdlibmは、探しているものに適していると思います。その他には、Linux(GNU libc、glibc)または*BSDlibcの数学関数が含まれます。最後に、CRlibmもあなたの興味を引くはずです。

Ulrich Drepperは、さまざまな数学ライブラリについて興味深い見方をしています。これも一読する価値があるかもしれません。

于 2010-02-02T19:37:55.747 に答える
4

私はあなたを失望させなければなりません:事実上何もありません。

技術的には、IEEE-754準拠のシステムがあります。これは、標準で説明されている不要な機能を実装していないためです。

  • すべての丸めモードへのアクセス
  • NaNのシグナリングをサポート
  • 5つのトラップすべてのトラップをサポート

標準言語には存在しません。これは、標準の背後にある主な力であるWilliam Kahanの繰り返しの問題と、Intelプロセッサへのその適応を引き起こします。

それらをサポートする難解言語があるかどうかはわかりませんが、Java、C#、C ++、Fortranを除外することはできます。

編集:コンパイラのサポートが不足していますが、mctylrによるHausersSoftFloatの実装をお勧めします。ハウザーは自分が何をしているのか知っています。

http://portal.acm.org/citation.cfm?id=227699.227701&coll=portal&dl=ACM&CFID=77938829&CFTOKEN=18578907

于 2010-02-02T19:44:48.613 に答える
1

かなり紛らわしい質問です。C ++では、この種の詳細はハードウェアまたはコンパイラによって処理されると想定されています。したがって、C ++では、浮動小数点の追加は次のようになります。

float a = 1.0;
float b = 2.0;
float c = a + b;

これはあなたが実際に意図したことではないと確信しています。おそらく、JavaScriptでIEEE-754準拠のハードウェアをエミュレートしようとするこのページの恩恵を受けるでしょうか?

于 2010-02-02T19:14:15.960 に答える
-2

あなたのための1つの回避策はPythonである可能性があります。pythonには、IEEE-75432/64ビット精度のHEX浮動小数点を変換できる関数があります

   import struct
   struct.unpack('!f', '41973333'.decode('hex'))[0]

アプリをPythonで作成するか、Python関数を作成してC /C++で呼び出すことができます。

C / C ++からPythonを呼び出す方法がわかりませんが、可能です。 C++からPython関数を呼び出す

于 2011-12-21T10:56:46.723 に答える