brian-j-smith / Mamba.jl

Markov chain Monte Carlo (MCMC) for Bayesian analysis in julia
Other
253 stars 52 forks source link

MvNormal method redefinition causing compilation error #164

Closed odell closed 4 years ago

odell commented 4 years ago

After a fresh installation of Julia 1.3.1, precompiling fails, returning 2 method redefinition errors. The methods are:

  1. 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}, AbstractArray{U<:Real, 2}) where {T<:Real, U<:Real}
  2. 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}, AbstractArray{U<:Real, 1}) where {T<:Real, U<:Real}

When I try to construct a MvNormal distribution by passing 2 arrays of the same length (mu and sig), I get:

Stacktrace: [1] MvNormal(::Array{Float64,1}, ::Array{Float64,1}) at /home/odell/.julia/packages/Mamba/Jotzr/src/distributions/constructors.jl:22 (repeats 80000 times)

The error message points to Mamba/Jotzr/src/distributions/constructors.jl:19 and Mamba/Jotzr/src/distributions/constructors.jl:22 where the constructors are defined. I removed Mamba, added the Distributions package manually, and commented out lines 19-23 of constructors.jl and tried again. The MvNormal constructor now works. Of course, this isn't much of a solution.

The failure was reproduced on 2 Linux machines. My Mac doesn't seem to have any problems though.

brian-j-smith commented 4 years ago

You might try checking out the current master branch of the package. There is a recent commit for these two MvNormal issues. If that solves the issue for you, I'll plan on releasing an updated version of the package with the fixes.

odell commented 4 years ago

Thanks!