問題タブ [long-double]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - Objective C:LongDoubleの作成には10進法を使用します
次のメソッドを作成するにはどうすればよいですか?
- modf(n、1)またはmodf(n、2)を使用しようとしましたが、どちらも「modfの引数2を渡すと、キャストなしで整数からポインターが作成されます。
方法は次のとおりです。
ruby - ruby で 128 ビット長の double を使用しますか?
私の Ruby コードでは、バイナリ形式の文字列として128 ビットの長さの double (「128 ビットの長さの double」、「binary128」、または「 4 倍精度の浮動小数点数」) で応答するサーバーと通信しています。
ルビーで使用するためにこれらの文字列を解凍する方法はありますか? String.unpackのドキュメントによると、最大精度は double のようです。これらの 128 ビット浮動小数点をルビーで表現することはまったく可能ですか?
c++ - 組み込みシステムで長い double オーバーフローを検出する
組み込みシステムの C++ コードで大きな数を使用します。幸いなことに、コンパイラは long double を認識します。
標準ライブラリ、boost ライブラリ、gnu 数学ライブラリなどは使用できません。また、システムには float 数学 cpu が組み込まれていません。
長い二重オーバーフローを検出するにはどうすればよいですか?
gdb - 実行中のクレイジーな動作
私はgccでインラインasmを行ってきました。私を困惑させているいくつかの動作まで、すべてがほとんど機能しています。有理多項式を評価していますが、80 ビットの定数を使用する必要があります。生成されたコードは完璧に見えますが、実行時に 80 ビット係数の 1 つが fpu にロードされると、メモリ内のバイト値が 0 でなくても 0 としてロードされます (有効な 80 であると思います)。 -bit real。masm によって生成されたコードで実行すると、まったく同じ定数が正常に読み込まれるためです)。gdb セッションからの出力は次のとおりです。
注: stepi の前に、"fldt 0x4046e6" を実行しようとしています。0x4046e6 でのメモリのダンプは、ゼロではないことを明確に示しています。それでも、「fldt 0x4046e6」はゼロが st0 にロードされます。以前の fldt 命令はすべて正常に機能しました。定数は適切です (masm の同一のコードは、同じ定数を使用して問題なく動作します)。興味のある方のために、定数のソースを次に示します。
poly4 関数のソースは次のとおりです。
これは、無効なロードの直前の FPU の状態です。
上記のステータス ワードの「C1」フラグの意味を知りたいのですが、これに関するドキュメントが見つかりません。これは、fldt が失敗した直後の状態です (stepi によって実行されます)。
OK、0x00402db5 と 0x00402dbf の命令が同じになるようにコードを修正しました。1 つ目は成功し、2 つ目は失敗します。これは、逆アセンブルされたコードを示す gdb セッションと、2 つの同一の命令を実行する直前の fpu の状態です。状態の唯一の重要な違いは、2 番目の fldt 命令の実行前の状態に C1 フラグが存在することです。
c - long double 数学ライブラリの実装?
C99 の long double math ライブラリ関数 ( expl
、cosl
、logl
など) の利用可能な移植可能な実装は何ですか? fdlibm (Sun ベース)、NetBSD (UCB ベース) などのソースを調べましたが、見当たりませんでした。
c++ - Long Doubles をサポートするお気に入り/最高の AX=B ソルバーは?
X=B(A^-1) の問題を繰り返し打ちたいと思っています。つまり、線形システムを解きます。C++ の場合、128 ビット長の double (quad) をサポートする数値ソルバーはどれですか?
すべての 2D データが単一の std::vector として格納されるため、C スタイルの配列を使用することは大きなメリットです。
LinuxでGCCまたはICCのいずれかを使用してコードをコンパイルしたいと考えていました。
c++ - 「ロングダブル」という一言の名前はありますか?
多くの新しいC++データ型名には、次のような1つの単語名があります。
- 署名されたshortintの代わりにint16_t
- 署名されたlonglongintの代わりにint64_t
- ..。
「ロングダブル」という一言の名前はありますか?
.net - .NET で long double を変換する
一部の C コード (Linux マシンで実行されたもの) を .Net に変換する必要があり、long double を使用する操作がいくつか見つかりました。それらは特別な操作ではなく、多くの小数で終わるいくつかの乗算と除算です。そのサイズのためだけに型が使用されたようです。
コードを変換するにはどうしますか? コードはとにかく最後に短い値を返すため、値を乗算して最後に割り戻して、それが役立つかどうかを確認することを考えています。さらに、元のバイナリが実際にすべてのサイズを長いものに使用していたかどうかもわかりません。 double が提供できるか、フードの下で一般的な 64 ビット double を使用していた場合。
これが良い考えだと思わない場合は、long double をラップしてシミュレートするために使用できるクラスまたは構造を知っていますか? C/C++ でラッパーを作成し、.Net から呼び出すことは「不可能」です。
c++ - Microsoft が long double データ型を放棄したのはなぜですか?
少し前に、いくつかの階乗関数を使用するプログラムを書きました。「相対的な」大きな数をサポートするために long double データ型を使用しました。
今、コードブロックから Visualstudio 2010 に変更しました。いくつかの調査の結果、MS が long double データ型を放棄したことに気付くまで、なぜ自分のプログラムが機能しなくなったのか疑問に思っていました。これには特別な理由がありますか?私には、テクノロジーの面で非常に後退しているように見えます。
使用する代替手段はありますか?(boostライブラリからの代替品にも満足しています)。
c++ - 文字列をlongdoubleに変換するには、どの関数を使用する必要がありますか?
double
一般に、とは異なることに注意してくださいlong double
。
strtod
文字列をdouble
に変換しますが、文字列をlong doubleに変換するにはどの関数を使用する必要がありますか?