問題タブ [mpfr]

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.

0 投票する
1 に答える
858 参照

c++ - MPIでGMPまたはMPFRタイプを送信する方法

mpfr_tを使用して型の変数を送信しようとしていますMPI_Scatter。例えば:

それは印刷します:

しかし、それはMPI_Bcastの仕事です。私が間違っていること。コードC/C ++、MPIlibはOpenMPI-1.6です。

0 投票する
0 に答える
446 参照

c++ - デストラクタの mpfr_free_cache - いいアイデア?

MPFRC++C++ プログラムで任意の精度が必要なため、多精度浮動小数点 C-libraryではなく、よく知られている軽量の C++ ラッパーを使用していますMPFR

私はメモリの問題を抱えています。つまり、amallocは MPFR 関数内で失敗します。(興味がある場合は、下部にある小さなエラー メッセージ)。

MPFR マニュアルには次のように書かれています (10 ページ)。

MPFR 関数は、ユーザーが直接 mpfr_const_pi のような関数を呼び出したか、他の関数を計算するためにそのような関数が MPFR ライブラリ自体によって内部的に呼び出されたために、たとえば pi などの定数を計算するときにキャッシュを作成することがあります。

ユーザーはいつでも mpfr_free_cache を使用してさまざまなキャッシュを解放できます。スレッドを終了する前にそれを行うことを強くお勧めします...

私のプログラムは非常にマルチスレッド化されているため、これを使い始める必要があると思いますmpfr_free_cache

質問:ラッピング クラスmpfr_free_cache()デストラクタ に単純に配置できますか? これは安全で適切な方法ですか? 問題を解決するのに十分ですか?(メモリリークを正しく特定したと仮定して)

例えば

// mpreal.cpp - ラッパーの実装

私は本業の開発者ではないので、これが本当に問題を解決する最善の方法であるかどうかはわかりません。しかし、すべての OpenMP マルチスレッド領域/for ループに入り込み、mpfr_free_cache()...

注: スレッドセーフ オプションを使用して MPFR をビルドしました。


興味がある場合は、ここにそのエラーメッセージがあります...

エラー メッセージで参照されているコード:

0 投票する
1 に答える
1258 参照

c++ - gcc 4.7.1 ビルドが未定義の参照で終了する

私は

fortran/arith.o: 関数gfc_mpfr_to_mpz(__mpz_struct*, __mpfr_struct*, locus*)': arith.c:(.text+0x1169): undefined reference to内 mpfr_get_z_2exp'

gcc 4.7.1 ビルド プロセスから。私はフォローしています

gcc ウィキ

ただし、少し変更を加えました

download_prequisites

脚本。そして、上記のリンクがgcc 4.6用に提供されているため、元のものが少し古いものをダウンロードしていたgccのすべての前提条件の最新リリースをダウンロードしています。ただし、mpfr ライブラリに関連するいくつかのシンボルが見つかりません。

関連するGoogle検索でこのスレッドが表示されますが、それも役に立ちませんでした。他の誰かが私とは異なる方法で理解できたかもしれません:

似たようなスレッド

この問題を解決する方法に関するヒントはありますか?

0 投票する
1 に答える
2420 参照

c++ - 高速な任意精度の C++ ライブラリ: __float128 は MPFR より高速ですか?

同様のトピックに関するスレッドがいくつかあることを知っています ( C++ に最適な (速度の場合) 任意精度ライブラリは何ですか?および最高のクロスプラットフォーム (ポータブル) 任意精度数学ライブラリ) と私はこれらのスレッドから GMP または何かベースのものよりも取得しますMPFRが利用可能な最速のライブラリのようですが、私は特に疑問に思っています.30 decの場所だけを言いたいのであれば、quadmathライブラリの__float128の方が速いでしょうか?

また、MAPM は MPFR とどのように比較されますか?

このウェブサイトから見えます:

http://pari.math.u-bordeaux.fr/benchs/timings-mpfr.html

そのMPFRはかなりうまくいきますが、CLNとapfloatもありますか?

0 投票する
1 に答える
784 参照

gcc - gmp、mpc + mpfr: シンボリック リンクではありません

gcc 4.6.1 をビルドして実行ldconfigすると、次の結果が返されます。

ライブラリを使用してgccを構築する方法は次のとおりです。

gcc を再構築する必要はないと言ってください。このシンボリック リンクの問題は、本当にプログラムに影響を与える可能性がありますか? または、違いはありませんか、たとえば、私がyum install特定のことをしていたときなど、時々ポップアップします。前もって感謝します。

0 投票する
2 に答える
7678 参照

c++ - 32 ビット Linux と 64 ビット Linux および MPFR の long long int

long long int64 ビット Linux と比較して、32 ビット Linux システムは正確にどのように処理しますか?

私の 32 ビット システムでは、MPFR データ型にC++ ラッパーを使用しています。このラッパーには、 に対して定義されたコンストラクターがありますが、 でlong intはありませんlong long int。それにもかかわらず、32 ビット システムでは、このコードは正常に機能します。

これはどのように可能ですか?32ビットのgccは、データ型にコンストラクターがあるlong long intと言って、どういうわけかキャストしますか? 上記のコードが 64 ビット Linux で実行されると、コンパイラーは構造があいまいであるというエラーを返します。long intmpreal

64ビットではまったく使用しないようにと言う人もいますlong long intが、残念ながら、これがコードに組み込まれている別のライブラリ(odeint)を使用して、指定された多精度データ型をこのように構築しているため、使用しません私は物事を変えることができるとは思わない.

とにかく64ビットlong long intとまったく同じですか?long intにキャストするとデータが失われlong intますか? たとえば、次のような独自のコンストラクターを作成した場合:

0 投票する
1 に答える
335 参照

c - mpirおよびmpfrライブラリを使用するためのmakefileを作成する方法

私は最近、パブリックドメインのmpirおよびmpfrライブラリを使用するCプログラムを作成しました。私は、Microsoft Visual C ++ 10.0コンパイラを使用して、Windowsでコンパイルしています。それを機能させるために、私は次のことをしなければなりませんでした:

  • http://gladman.plushost.co.uk/oldsite/computing/gmp4win.phpからmpirおよびmpfrライブラリをダウンロード/ビルドします。
  • ファイルmpir.hmpfr.hMicrosoftコンパイラのインクルードディレクトリに移動します
  • ファイルmpir.lib、、をMicrosoftコンパイラのlibディレクトリにmpir.pdb移動しますmpfr.libmpfr.pdb
  • #include mpir.hmpfr.hプログラムで
  • を使用してコンパイルcl <..module names..> /link mpir.lib mpfr.lib

私は今、私が書いたソース/ヘッダーファイルを、コードをコンパイルしてそれが機能することを確認するために使用できるmakefileとともに他の誰かに送信したいと思います。その人はmpir/mpfrライブラリをインストールしておらず、同じコンパイラを使用していない可能性があるため、これを行う方法がよくわかりません。

これが私にできることです:

  • それらにバイナリ、、、mpir.libおよびソース/ヘッダーファイルmpir.pdbを送信します。mpfr.libmpfr.pdb

これが私ができないことです:

  • Microsoft Visual C++10.0のセットアップ全体を送信します
  • Includeファイルをディレクトリに貼り付けるように依頼しますlib(他に方法がない場合を除く)

理想的には、ソース/ヘッダーファイルを、関連するmpir / mpfrバイナリ、およびプログラムをビルドするために実行できるmakefileと一緒に送信できる必要があります。

よろしくお願いします!

0 投票する
0 に答える
139 参照

c++ - makefileがc++で動作しないzkcm-library-mpfr-functionsが見つかりません

次のオブジェクト行を含む、zkcm-libraryを使用するいくつかのプログラムで使用するためのmakefileがあります。

コンパイラは、「'_ imp_mpfr__inits2'への未定義の参照」があり、mpfr関数を使用するたびに同じであると文句を言います。奇妙なことに、makefileには、mpfr関数を問題なく使用する他のオブジェクトがあります(メインプログラム(最初の行)など)。

どちらの場合も、私は#include<mpfr.h>ソースにあり、あなたが見るように、を使用してそれにリンクしています-lmpfr。これがSpMC.cppで機能するが、zkcm_c.cppでは機能しない理由はありますか?

0 投票する
1 に答える
772 参照

r - gmpおよびマシン制限での大きな整数の使用

.Machine$double.xmaxRの( )の値より大きい整数を使用できるかどうか疑問に思います~1.79e308。たとえば、Rのライブラリを使用Rmpfrするgmpことで、システムのRAMの制限まで、任意のサイズの値を割り当てることができると思いました。これはもっと大きいと思いましたが.Machine$double.xmax、明らかにそうではありません。

64ビットメモリアドレス指定を使用するコンピュータが1.79e308より大きい値を格納できない理由を誰かが説明することは可能ですか?申し訳ありませんが、私はコンピュータサイエンスのバックグラウンドを持っていませんが、学ぼうとしています。

ありがとう。

0 投票する
1 に答える
463 参照

compilation - MPFR (3.1.0) インストール時のエラー

このリンク(パート 3)の手順に従って MPFR (3.1.0) をインストールしようとすると 、次のエラーが表示されます。

gmp 内部ファイルをチェックしています... configure: エラー: ヘッダー ファイル gmp-impl.h および longlong.h が見つかりません

同じページの手順を使用して既に gmp (5.0.5) をインストールしましたが、gmp のインストールは成功したように見えました。

誰かが問題を理解するのを手伝ってくれますか、または回避策を提案してくれますか?

どんな助けでも大歓迎です!
編集:実行後にエラーが発生します

./configure --with-gmp-build=GMPBUILD # GMPBUILD=/usr/gmp/gmp-5.0.5