久しぶりに開発環境に戻ってきた.「円周率πの近似値計算」をやるつもりなのだが,どうもさっぱり勝手が見えなくなってしまった.まず,言語の選定から始めなくてはならない.条件は複素関数とBigFloatが使えることだ.C++, Julia, Python はいすれもこれらの機能を持っている.これは最終的にはツールとして使えるようにしたいので,その意味ではC++しか選択肢はないのだが,C++の複素数は64ビットまでしか使えない.他の2つは任意長DOUBLEが使えるので,とりあえず,Juliaを使うことにした.Juliaはこれまでにもかなり使い込んでいる.
バックアップにはフォルダが10個残っている.しかし,有り物を動かそうとしてもうまく動かない.Eドライブ(開発支援)には5個フォルダがあり,その中の「蜜蜂天国」から入ったのだが,ソースファイルが見当たらない.⇒フォルダを開いたら見えるようになった.ワークスペースを指定したのだが...別途フォルダを選択する必要があるようだ.
実行したら,Revise というモジュールをインストールするように促されたので実行したら,次のようなワーニングが出た.
julia> using Revise
[ Info: Precompiling Revise [295af30f-e4ad-537b-8983-00126c2a3abe]
WARNING: using IR.SSAValue in module LoweredCodeUtils conflicts with an existing identifier.
WARNING: using IR.SlotNumber in module LoweredCodeUtils conflicts with an existing identifier.
どうも余分なことをしてしまったようだ.確かJuliaはソースを修正しても直ちに反映しないような動作になっていたような気がするが,それを改善してすぐ動くようにするパッケージと思われる.⇒再起動して動くようになった...少し感覚が戻ってきた.見覚えのあるこんな画面が出てきた.いや,すごいな.こんなことまでやってる.
このGIFアニメはいつまでも終わらない...121KBというそれほど大きなファイルではないのだが...再帰関数というフォルダには何本か数値計算的なものが入っているので,ここから開始することにしよう.何をやろうとしているのかはよく分からないが,BigFloatが使われているので,目的に近いような気がする.
F = 6.0 / (2.0 + F) という再帰関数を実行し,A=1.64575131106459059から,(A+1)^2=6.9999999999999999 という値が出力されている.pre::Int = 256 となっているので,256ビット整数演算をやっているようだ.「階乗の末尾連続ゼロ.jl は動かなかった.「y=x^2-3/2」でもエラーが起きている.まぁ,とりあえず動いているので,なんとかなるだろう.
