問題タブ [gmpy]
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.
python - gmpy2.mpz を numpy ブール配列に効率的に変換する
gmpy2.mpz から numpy ブール配列に変換しようとしましたが、うまくいきません。(gmpy2: https://gmpy2.readthedocs.io )
その他のテスト:
ところで、実際には、gmpy2.mpz のすべてのセット ビットのインデックスのリスト、配列、または numpy 配列をすばやく取得したいと考えています。私がそれぞれ変換しようとしている実際の 4,777,000 gmpy2.mpz は、760,000 ビットで、約 2,000 ビットが 1 です。コンピューター上の gmp ライブラリーは、インテル icc でコンパイルされました。
ありがとう
python - Python - gmpy2 で x のベース y**log ベース y の不一致を回避する方法
次のコード例は、10 乗 10 と 10 乗 11 の間では発生しない問題ですが、コードとその上の例では発生します。
元の値の取得を適切に処理していないコードの場所がわかりません。簡単なことを見逃したのかもしれません。
さまざまな基地x
から回復できることを確認する必要があります。log x
などのライブラリ関数に依存するのではなく、たとえばそれが を与えることを保証するgmpy2
逆アンチログアルゴリズムはありますか?2**log2(x)
x
ログを直接展開する方法はわかりますが、元に戻す方法はわかりません。たとえば、テイラー級数には多くの項が必要です...どうすればべき乗関数を自分で書くことができますか? と @dan04 返信。コードは次のとおりです。
python - Python の多精度有理比較: Fraction、mpq、mpfr
浮動小数点計算はその性質上、正確ではないことを理解しています。多精度配給比較を行うための最良のライブラリ/方法を見つけようとしています。Fraction、mpq、mpfr を比較しています。後の 2 つは gmpy2 ライブラリからのものです。最初のものは分数パッケージからのものです。私はpython3.3を使用しています
これは私が比較に使用したスクリプトです。あまりうまく書かれていませんが、非常に単純なものです。
結果は次のとおりです。
つまり、基本的に Fraction が最も正確であるという結果を得ましたが、非常に遅いです。この質問に対して、私が聞きたかったのは、
- 私も試してみるべきだと思う他のケースはありますか?
- 他のライブラリ?
- 速度が重要な場合、gmpy2 ライブラリを使用して精度を向上させる方法はありますか?
python - gmpy2 はインストールされますが、libmpc.so.3 が見つかりません
Python 2.7 で gmpy2 を使用したいのですが、インポートしようとすると次のようになります。
pip: を使用して gmpy2 をpip install -user gmpy2
インストールしました。
しかし、その後、インストールは成功したと表示されます。
MPC (1.0.3)、GMP (6.1.1)、および MPFR (3.1.4) をインストールしましたが、それらはすべて動作します。つまり、and を呼び出すことができgcc foo.c -lmpc
、gcc bar.c -lmpfr
コードがコンパイルされ、期待どおりに動作します。pip install を使用して gmpy も動作しています。問題は、sudo権限がないため、デフォルトのディレクトリにインストールされていないことに関係していると思います。
が配置されているディレクトリは、libmpc.so.3
pip が吐き出す gcc 呼び出しにCPATH
あります。CPPFLAGS
my_prefix/include
LDFLAGS
my_prefix/lib
私は本当にMPCの機能を使いたくないので、gmpy2のその部分をインストールしないという簡単なオプションがあれば、私はそれに満足します.
私は本当に混乱しています.pipがライブラリの構築に失敗し、離れて依存関係をインストールしましたが、通常、ライブラリがpipに渡されると動作します.
python-3.x - gmpy2 mpz を bigendian バイト配列 (バイト) に変換する最速の方法は?
私はいくつかの異なるアプローチを試しました。
または x を 256 でダイビングbytearray
し、ループ内で新しいものを構築しますが、通常の python int または gmpy2 c++ の変換と比較して遅く感じます。
mpz_export
c++ にan のようなものはありませんか? これを達成するための最速の方法は何ですか?
編集:変換する必要がある理由bytes
は、hashlib
ハッシュできないためmpz
です。mpz
の強力な暗号化 (sha256) ハッシュを最初に変換することなく取得する別の高速な方法があれば、それbytes
も役立つかもしれません!