問題タブ [int128]
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.
c++ - C++ で基本的な 128 ビット整数計算を行う効率的な方法は?
数年前、Cuda で基本的な 128 ビット整数演算を行う方法が必要でした: cuda で 128 ビット整数? . 今、私は同じ問題を抱えていますが、今回は、128 ビットをサポートしていない 32 ビット組み込みシステム (Intel Edison) で基本的な 128 ビット演算 (合計、ビットシフト、および乗算) を実行する必要があります。ただし、直接サポートされている 64 ビット整数 (unsigned long long int) があります。
前回回答いただいたasmコードをCPUで素朴に使ってみたのですが、エラーが多発してしまいました。私は本当にasmの経験がないので、64ビット整数を使用して、128ビットで加算、乗算、ビットシフトを実装する最も効率的な方法は何ですか?
c - Cython で 128 ビット整数を使用する方法
私の 64 ビット コンピュータでは、long long
タイプは 64 ビットです。
128 ビット整数を使用する必要があり、幸運にもGCC はこれらをサポートしています。Cython 内でこれらを使用するにはどうすればよいですか?
以下は動作しません。foo.pyx
だけを含むコンパイル
収量
c - 2 つの 64 ビット int を 128 ビットに乗算してから >> 64 ビットに乗算する最速の方法は?
2 つの符号付き 64 ビット整数を乗算し、(128 ビット) 結果を符号付き 64 ビット整数にシフトする必要がありa
ますb
。それを行う最も速い方法は何ですか?
私の 64 ビット整数は、実際には固定小数点数をfmt
小数ビットで表しています。fmt
オーバーフローしないように が選択さa * b >> fmt
れます。たとえばabs(a) < 64<<fmt
、abs(b) < 2<<fmt
withfmt==56
は最終結果が 64 ビットでオーバーフローしない< 128<<fmt
ため、int64 に収まります。
私がそれをしたい理由は、固定小数点形式の形式の 5 次多項式を迅速かつ正確に評価するためです。すべての数値は、小数ビット((((c5*x + c4)*x + c3)*x + c2)*x + c1)*x + c0
を持つ符号付き 64 ビット固定小数点数です。fmt
それを達成するための最も効率的な方法を探しています。
c - 負の数を返す C モジュラス
私はデータ型を持っているunsigned __int128 data;
ので、これは型の問題ではないと思いますが、なぜそれが発生しているのかわかりません
戻り値:
leading-zero - __int128_t の先行ゼロ数のエラー
出力: 63 64
gcc バージョン 5.3.0 20151204
なぜ結果が間違っているのですか?int128_t の先行ゼロをカウントする他の方法はありますか。
python - Numpy 8 倍精度浮動小数点数と 128 ビット整数。なぜ、どのように?
これは主に好奇心からの質問です。numpy テスト スイートには 128 ビット整数のテストが含まれていることに気付きました。numerictypes
モジュールはint128
、float256
( 8 倍精度?)、および私のマシンの numpy dtypes にマップされていないように見えるその他の型を参照しています。
私のマシンは 64 ビットですが、4 つの 128 ビット浮動小数点数を使用できます (実際にはそうではありません)。ソフトウェアで 4 倍浮動小数点数をエミュレートできる場合、理論的には 8 倍浮動小数点数と 128 ビット整数もエミュレートできると思います。一方、128 ビットの整数や 8 倍精度の浮動小数点については、今まで聞いたことがありませんでした。numerictypes
対応する s がない場合、numpy のモジュールに 128 ビットの int と 256 ビットの float への参照があるのはなぜdtype
ですか? また、それらをどのように使用できますか?
c - __int128 は emscripten でサポートされていますか? そうでない場合、128 ビットの int 乗算を実装する方法は?
Emscripten を使用して C プロジェクトを Javascript にコンパイルしようとしています。以下に示すように、GCC 拡張機能をサポートする非常に基本的なコードがあり__int128
ます。
現在、これらの変数はuint64_t
、Emscripten でサポートされていることがわかっているポインターからキャストされていますが、コンパイル時にエラーが発生します。
したがって、サポートを有効にする方法がわからないか、このタイプのサポートがありません。後者の場合、型をサポートせずに 128 ビットの符号なし整数の乗算を模倣する方法についてのヒントはありますか? 乗算の直後の行で数値が 64 ビットの符号なし int にシフトされるため、コードは実際には結果を完全な符号なし 128 ビット形式で保持する必要はないようです。