M1 チップ搭載の Mac mini
macOs Monterey version 12.0.1
Julia 1.6.3
で,
using SymPy しようとすると,
/Users/foo/.julia/packages/SymPy/jTadH/src/numbers.jl
の 256 行目からの式でエラーがあるので使えないよということになった。
件の式は,
sympy_core_numbers = ((:Zero, 0),
(:One, 1),
(:NegativeOne, -1),
(:Half, 1//2),
(:NaN, NaN),
(:Exp1, ℯ),
(:ImaginaryUnit, im),
(:Pi, pi),
(:EulerGamma, Base.MathConstants.eulergamma),
(:Catalan, Base.MathConstants.catalan),
(:GoldenRation, Base.MathConstants.golden),
(:TribonacciConstant, big(1)/3 + (-big(3)*sqrt(big(33)) + 19)^(1//3)/3 + (3*sqrt(big(33)) + 19)^(1//3)/3))
一行ずつ潰していくと最後の行
(:TribonacciConstant, big(1)/3 + (-big(3)*sqrt(big(33)) + 19)^(1//3)/3 + (3*sqrt(big(33)) + 19)^(1//3)/3)
が原因ということがわかった。しかも,この1行を実行すると永遠に終わらない。
さらにどこが変なのか,項ごとに見ていくと
big(1) はすぐに解釈されるが,big(1)/3 ですでに無限ループ?に落ちるらしい。
なので,この行をコメントアウトして,再度 using SymPy してみると,無事に通った。
まあ,:TribonacciConstantがどこかで使われていれば問題が出るだろうが,少なくとも私は使いそうにない。
しかし,多倍長演算パッケージがちゃんと使えないとすると,ちょっと困ることもあるだろうな?