Visual Studio 2022 Part3

12
すべて
|
最新の50件
2.
ユーザー
zOEtX
みんな移住してこんの?
3.
ユーザー
5XUw6
boostで1024ビット浮動小数点数の四則演算方法をchatGPTに聞いたら教えてくれた。
ただし掛け算と割り算で誤差が出るので、mpfr_set_default_prec(4096);で
4096ビット浮動小数点数でいったん計算し、
その後1024ビットに格納しなおす方法を取れば誤差が無くなるようだ。
これで少なくとも1024ビット浮動小数点数の高速な四則演算は可能だということが分かった。
ただしchatGPT上で20桁演算までしか確認していないので、21桁以降は要確認。
誤差がまだ出るようなら、precを増やす必要がある。
4.
ユーザー
5XUw6
chatGPTによると、現行では
mpfr_set_default_prec() の理論的最大値は 2^30(1073741824ビット)
らしい。
仮に4倍精度で1倍分の精度を確保できるとすると、この値の1/4までは精度が確保できるということになる。
268435456ビット浮動小数点数四則演算が可能ということになる。
これには100MB以上のメモリを消費すると推定される。
5.
ユーザー
5XUw6
ChatGPTに聞いてみた。

Q:(1.1^20000)*(1.11^20000)をboostを使って精密に演算するプログラムを作って
A:Result: 5.334420673633477765219700119737072220318539457204222509735187541725629474193649394574270828243635499e+18480
Q:2.05721 12832 76572 01841 14499 14129 30907 73466 22319 82251e1734になるはずだが
A:先頭100桁:
1.6853035222230745053920235169818995236329672621343593747745371760506139508365457934807267220661100296
指数:10^9337

boostについて結構詳しかったが、まだ正確には扱えていないようだ。たぶん4o。
6.
ユーザー
5XUw6
VURTUALBOXでUbuntu22.04をVMで入れて、
boost1.87の環境を構築したところ、
円周率表示で100万桁が1秒程度で出力できるようだ。
コンソール出力にしてしまったので全桁表示できなかったが、
10万桁程度ならコンソール出力でも1秒未満で出力できる。
7.
ユーザー
5XUw6
boostで小数を含む数1000桁と1000桁の四則演算は正確に出せることを確認した。
今度電卓アプリ化するかどうか悩みどころ。
8.
ユーザー
5XUw6
boostはインストールにコツがいる。
コンソールからwgetでのダウンロードのパッケージは解凍できないようになっている。
9.
ユーザー
xmoZJ
>>7
VM上で動かしたところ
指定する変数の値が50桁だと四則演算4つで
Processing time: 202 nanoseconds
1000桁だと
Processing time: 414 nanoseconds

そこそこ速い。
10.
ユーザー
bYhra
>>9
4000桁だと
Processing time: 377 nanoseconds

1000桁よりも速い結果となった。
これは誤算の範囲内ということだろう。
11.
ユーザー
bYhra
>>10
コンソール画面出力終了までの処理時間も計測すると、4000桁四則演算で、
Calculation time: 116 nanoseconds
Output time: 2155678 nanoseconds
Total processing time: 2794386 nanoseconds
となった。
これは全部出力すると1秒間に357回程度しか出力できないということで、どう考えたらいいのか?
12.
ユーザー
bYhra
>>11
内部1000桁入力値30桁四則演算だとこんな感じ。
Calculation time: 121 nanoseconds
Output time: 618641 nanoseconds
Total processing time: 760068 nanoseconds

4000桁の場合、4倍以上はかかっていないが3倍以上はかかっている。