問題タブ [arbitrary-precision]

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 投票する
18 に答える
11257 参照

programming-languages - 任意精度演算をサポートするプログラミング言語は?

任意精度の算術演算をサポートするプログラミング言語は何ですか?また、任意の桁数を出力する方法の簡単な例を挙げていただけますか?

0 投票する
8 に答える
964 参照

math - 任意精度演算は数値解析ソフトウェアに影響を与えましたか?

任意精度演算は数値解析ソフトウェアに影響を与えましたか?

ほとんどの数値解析ソフトウェアは、同じフロートとダブルを使い続けていると思います。

私の意見では、特に有理数表現の使用と組み合わせた場合に、任意精度の算術を使用することでメリットが得られる計算がいくつかあるため、私が正しい場合は、その理由を知りたいと思います。GNUMulti-PrecisionLibraryで実行されます。

私が間違っていれば、例がいいでしょう。

0 投票する
3 に答える
1548 参照

c++ - 小整数を効率的に加算するBignumの実装

私はアルゴリズムにPythonのネイティブbignumを使用しており、C++に変換して高速化することにしました。ロングロングを使用した場合、C ++はPythonよりも約100倍高速でしたが、C ++でGMPバインディングを使用した場合、Pythonよりもわずか10倍高速でした(ロングロングに適合する同じケースの場合)。

多数の小さな追加を行うためのより良いbignum実装はありますか?たとえば、大きな数Nがあり、小さな+ 1、+ 21、+ 1などをたくさん追加し、ときどき別の大きな数Mを追加しますか?

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

c - 最速の半任意精度の数学ライブラリは何ですか?

マンデルブロ集合の2D画像を計算するためにCプログラムを使用しlong double inていますが、より深くズームするためにさらに精度を高めたいと考えています。

long double精度から任意の精度に直接跳躍するのではなく、必要に応じて精度の量を制限できる任意の精度の数学ライブラリから得られるパフォーマンスの向上はありますか?

任意精度の数学ライブラリの中で最も速いものはどれですか?

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

python - 小数精度の分数

分子と分母としてsfractions.Fractionをサポートする純粋なPython実装はありますか?long残念ながら、べき乗はfloat(ack !!!)を返すようにコード化されているようです。これは、少なくとも。の使用をサポートする必要がありdecimal.Decimalます。

float()ない場合は、おそらくライブラリのコピーを作成して、発生したものをから適切なものに置き換えようと試みることができると思いますが、Decimal以前に他の人によってテストされたものが望ましいです。

コード例は次のとおりです。

結果として0.0 <type 'float'>、答えは非常に小さい小数になります。

更新:今のところ、次の回避策があります(a ** bの場合、両方が分数であると仮定します。もちろん、exp_がfloatであるか、それ自体がDecimalである場合は、別の関数が必要になります):

これは答え4.08569925773896097019795484811E-516を与えます。

追加の関数なしでこれを行うためのより良い方法があるかどうかはまだ興味があります(Fractionクラスで十分に作業すれば、他のフロートが私の結果に影響を与えることがわかります)。

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

perl - Perlで任意の長さの整数を使用するにはどうすればよいですか?

Perl で任意の長さの整数を使用する標準的な方法はありますか? テスト用に x64 アセンブリを生成するコードに取り組んでいますが、一度に 32 ビットを操作するのにうんざりしています。

私は Perl 5.10.0 を使っています。

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

php - bcmath PHP ライブラリの精度はどれくらいですか?

任意の精度のbcmath拡張機能を使用する Number クラスを持つ PHP ライブラリを作成しています。

2 つの質問があります。

  1. 組み込みの int 型と float 型を使用する場合と比較して、bcmath はどのくらい遅くなりますか?

  2. bcmathオプションのscale 引数があります(デフォルトは 3 桁です)。誰でも使用できる汎用 Number クラスの場合、適切な精度レベルはどれくらいですか? Perl のような (任意の精度の数値を持つ) 言語は、スケールをどのように処理しますか?

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

php - PHP での任意精度ライブラリを使用した丸め

以前、PHP で浮動小数点数の丸めの問題に対処する方法について質問したところ、bcgmpライブラリが指摘されました。

私はこれらのライブラリの関数を見てきましたが、数を四捨五入する関数を探していたときに何も飛び出しませんでした.

これらのライブラリを使用してどのように正確に丸めますか?

0 投票する
5 に答える
2430 参照

ruby - Rubyを使用した任意精度演算

Rubyはこれをどのように行うのですか?イェルクや他の誰かが舞台裏で何が起こっているのか知っていますか?

残念ながら、私はCをよく知らないのでbignum.c、ほとんど役に立ちません。誰かが(平易な英語で)それが使用している奇跡のアルゴリズムの背後にある理論を説明できるのはちょっと興味がありました。

36806348825922326789470084006052186583833823203735320465595962143702560930047223153010387361450517521869134525758989639113039318944796977164583238219236607653663113200177617597793217865870366077846576581183082787698201412402294867197567813172495806442794990281049897327103078771678146741952418004073439899695293083250893411694596612017673512082315195977953685229009037745250223699083945341679064045611647113975154675004860218929102864097057476260018595022613824453018748921161586402113531207791201884463078030746220525280773775767209432069237310103251745951849752401512016516672418981676639724782417539480202822816002710062399887366743579907305461890685546048835142661131063402348904429186051035230191242660848880746231212659020683041378266455426041126637886662665375576362779656908293178564560081623689116814177499326748817170217219107273106921688166829462567949269614897699986871567144087420642721205671737309963971116890119744041659022652419278284289641541461168818739123204832773896582026593409310817205487518824659176087713165789563358657661185727701178249794352294501124843043920129701511946873071236400763937391081195343030947683245323012399675023571078708664107031028872538959513893678471527415042649541619666983267998025343680786418716005458904566402715881795854937449051239905544881914848704936367461166460989003008854959199246636005004256627034833091179548764704594930128661465865007129969565224526608067298992179934250929163533082787426478958730697447232771870430635244592599615561915378391323721271601041029499987756974528735342290344338756274645252286042041668901973291379807377328153357091020520776715712817418487335705083075277790004194325673849906782148842105387086902273869881605981057922100256088299988476325216174756689383517855896114234930446650640237355631870717571086698303531312206832110245782411201496938722547625934287286636355038384072001083290669536055355664754529584996627998083056124296001365452951499511358490905081301519892828320218919461550140343555306014771313976632319574332484804734757547322819849234323149658088505733051094905849052773866269748029358361223313450207818201434719252239144908773857908158579561354719859966127356766244149040186283981782268657311299866303886831497425976603934089402430838345103987467406116053824239280358075823275574931084369419478799155664790709184960070471200337110392696713740812571363139669934373328801425408481937938055517477702084356868992734894948420104259527193263068574761383538543442480702461516184822371598979717815516995112105228514915713769771885044970884333047530144037309461111963136170293634226321938279399689598833170189069368986245902077559943950687000513075042794974707139009525675920342667180337706810974462990976917631952683782436492684473054552464649432182624192510715804056160770636448491097834866938814201683879290292615897935543248361151758860596774539395

0 投票する
3 に答える
6905 参照

c++ - C ++で2つの任意のサイズの整数を追加するにはどうすればよいですか?

C++で任意のサイズの整数を2つ追加したいと思います。どうすればこれを行うことができますか?