Precision set to 536870912 bits, which is approximately 161614248 decimal digits.
base=-1.000000000000000000000000e+00 + 0.000000000000000000000000e+00 i
Θ=4.881152430408162405204287101960529897794735314100e-161614249, N = 536870912
z=1.000000000000000000000000e+00 + 1.533459261642224750278083e-161614248 i
sinΘ=1.533459261642224750278082996492416767270795121478e-161614248
pai=3.14159265358979323846264338327950e+00, time = 699 seconds
base=-1.000000000000000000000000e+00 + 0.000000000000000000000000e+00 i
Θ=4.881152430408162405204287101960529897794735314100e-161614249, N = 536870912
z=1.000000000000000000000000e+00 + 1.533459261642224750278083e-161614248 i
sinΘ=1.533459261642224750278082996492416767270795121478e-161614248
pai=3.14159265358979323846264338327950e+00, time = 699 seconds
Θ=4.881152430408162405204287101960529897794735314100e-161614249, N = 536870912
z=1.000000000000000000000000e+00 + 1.533459261642224750278083e-161614248 i
sinΘ=1.533459261642224750278082996492416767270795121478e-161614248
pai=3.14159265358979323846264338327950e+00, time = 699 seconds
z=1.000000000000000000000000e+00 + 1.533459261642224750278083e-161614248 i
sinΘ=1.533459261642224750278082996492416767270795121478e-161614248
pai=3.14159265358979323846264338327950e+00, time = 699 seconds
sinΘ=1.533459261642224750278082996492416767270795121478e-161614248
pai=3.14159265358979323846264338327950e+00, time = 699 seconds
pai=3.14159265358979323846264338327950e+00, time = 699 seconds
n = 1, tanp4=1.000000000000e+00, diff=4.881152430408e-161614249, time = 3427 seconds
Θ=6.986524479602259580995891220200500532802060184779e-80807125, N = 268435456
いや,どうも動作がおかしい.もう一度やり直してみよう.ターミナル出力に前回のログが残っているので,分かりづらくなっている.最後の方を見ると,pai の計算に699秒~12分,tan(π/4)の計算に3427秒~57分掛かっているが,計算は完了しているように見える.diff=4.88e^161614249 に対し,θ=6.99e80807125 だから,diff < θ が成立している.その後のプリント文でメモリ不足が起きている可能性はある.precision(BigFloat)を出力しようとしている.どうもこれがまずかったのではないか?
修正して再実行してみたが,やはりメモリ不足が起きている.最後にN = 268435456までは出力されているので,どうもブレークできていないようだ.ブレークの条件は,diff < θ で,いずれも BigFloat だ.
Activating project at `C:\Users\babalabo\.julia\environments\v1.10`
Precision set to 536870912 bits, which is approximately 161614248 decimal digits.
base=-1.000000000000000000000000e+00 + 0.000000000000000000000000e+00 i
Θ=4.881152430408162405204287101960529897794735314100e-161614249, N = 536870912
z=1.000000000000000000000000e+00 + 1.533459261642224750278083e-161614248 i
sinΘ=1.533459261642224750278082996492416767270795121478e-161614248
pai=3.14159265358979323846264338327950e+00, time = 664 seconds
n = 1, tanp4=1.000000000000e+00, diff=4.881152430408e-161614249, time = 3266 seconds
Θ=6.986524479602259580995891220200500532802060184779e-80807125, N = 268435456
ERROR: LoadError: OutOfMemoryError()
diff = 4.881152430408e-161614249, θ=4.88115243040816240e-161614249でほぼ同じだ.等号が入っていないためだろうか?やり直してみよう.結果が出るまでに一時間は掛かる...
!解けた!3614+677=4291秒=72分.pai を計算するまでなら,11分だ.桁数は161614248桁,1兆6千億桁だ.多分もう一桁上がってもそれほど大きくはならないだろう.
Activating project at `C:\Users\babalabo\.julia\environments\v1.10`
Precision set to 536870912 bits, which is approximately 161614248 decimal digits.
base=-1.000000000000000000000000e+00 + 0.000000000000000000000000e+00 i
Θ=4.881152430408162405204287101960529897794735314100e-161614249, N = 536870912
z=1.000000000000000000000000e+00 + 1.533459261642224750278083e-161614248 i
sinΘ=1.533459261642224750278082996492416767270795121478e-161614248
pai=3.14159265358979323846264338327950e+00, time = 677 seconds
n = 1, tanp4=1.000000000000e+00, diff=4.881152430408e-161614249, time = 3614 seconds
◎ Convergence achieved at n = 1 precis = 536870912 keta = 161614248
* Terminal will be reused by tasks, press any key to close it.
精度 2^30を仕掛けてみたら,エラーになってしまった.
keta::BigInt = BigInt(floor(log10(2)*precis)) でエラーになっている.2^30=1073741824だ.プログラムを整理して,任意精度を1~30まで連続テストするように書き直してテストしたところ,やはり30で落ちている.2^29 までは完了しているのだが,2^30 30冒頭で落ちているようだ.keta::BigInt = BigInt(floor(log10(2)*precis)) が通っていない.assertion failed だが,メモリ不足は起きていないようだ.限界と言ってしまえばそれまでだが...