GCPに環境を作っていて気づいたのだが、Distibution.jlのv0.17.0と関数が干渉していて using Mamba
すると下のようなワーニングが出て、
WARNING: Method definition (::Type{Distributions.DiscreteNonParametric{Int64, P, Base.OneTo{Int64}, Ps} where Ps where P})(AbstractArray{T<:Real, 1}) where {T<:Real} in module Distributions at /Users/apple/.julia/packages/Distributions/fMt8c/src/univariate/discrete/categorical.jl:40 overwritten in module Mamba at /Users/apple/.julia/packages/Mamba/qNBKz/src/distributions/constructors.jl:7.
WARNING: Method definition (::Type{Distributions.MvNormal{T, Cov, Mean} where Mean<:(AbstractArray{T, 1} where T) where Cov<:(PDMats.AbstractPDMat{T} where T<:Real) where T<:Real})(AbstractArray{T<:Real, 1}, Real) where {T<:Real} in module Distributions at /Users/apple/.julia/packages/Distributions/fMt8c/src/multivariate/mvnormal.jl:200 overwritten in module Mamba at /Users/apple/.julia/packages/Mamba/qNBKz/src/distributions/constructors.jl:35.
WARNING: Method definition (::Type{Distributions.MvNormalCanon{T, P, V} where V<:(AbstractArray{T, 1} where T) where P<:(PDMats.AbstractPDMat{T} where T<:Real) where T<:Real})(AbstractArray{T<:Real, 1}, U<:Real) where {T<:Real, U<:Real} in module Distributions at /Users/apple/.julia/packages/Distributions/fMt8c/src/multivariate/mvnormalcanon.jl:116 overwritten in module Mamba at /Users/apple/.julia/packages/Mamba/qNBKz/src/distributions/constructors.jl:53.
以前動いていた次のようなコードが動かない。
MvNormal(zeros(3), 4)
StackOverflowError:
Stacktrace:
[1] MvNormal(::Array{Float64,1}, ::Float64) at /Users/apple/.julia/packages/Mamba/qNBKz/src/distributions/constructors.jl:35 (repeats 80000 times)
masterブランチでは修正されているみたいなので、次のリリースでは治るはず…。
Remove unneeded MvNormal constructor · brian-j-smith/Mamba.jl@dcaf1cc
https://github.com/brian-j-smith/Mamba.jl/commit/dcaf1ccac1c468d20d49a21acbaeb0cb6adcb4cf
応急処置として代わりに
MvNormal(zeros(3), fill(4.0, 3))
にしておけば動くのでこっちを使っておくか。
追記:
平均が0だったら
MvNormal(3, 4.0)
これで良さそう。
追記:
Mamba 0.12.1で直っていた!