From 53b7209c33eeeb46330c8f98035bbac196dff875 Mon Sep 17 00:00:00 2001 From: Anthony Lee Date: Mon, 23 Jul 2018 22:37:31 +0100 Subject: [PATCH] fix 0.7 deprecations --- src/MonteCarloMarkovKernels.jl | 11 ++++++++++- src/adaptiveMetropolis.jl | 12 +++--------- src/randomWalkMetropolis.jl | 8 ++------ src/simulateChain.jl | 1 - test/visualize_test.jl | 4 ++-- 5 files changed, 17 insertions(+), 19 deletions(-) diff --git a/src/MonteCarloMarkovKernels.jl b/src/MonteCarloMarkovKernels.jl index dbeddcc..cd7948f 100644 --- a/src/MonteCarloMarkovKernels.jl +++ b/src/MonteCarloMarkovKernels.jl @@ -1,9 +1,18 @@ __precompile__() module MonteCarloMarkovKernels +using StaticArrays + +using Compat.LinearAlgebra +using Compat.Random import Compat.Statistics.mean -import Compat.undef +import Compat: undef, UndefInitializer +if VERSION.minor < 7 + MVector{d, Float64}(::UndefInitializer) where d = MVector{d, Float64}() + mul! = A_mul_B! +end + if VERSION.minor == 7 function mychol(A) return cholesky(A).L diff --git a/src/adaptiveMetropolis.jl b/src/adaptiveMetropolis.jl index e727e75..add5d14 100644 --- a/src/adaptiveMetropolis.jl +++ b/src/adaptiveMetropolis.jl @@ -1,9 +1,3 @@ -using StaticArrays -using Compat.LinearAlgebra -using Compat.Random - -if VERSION.minor == 6 mul! = A_mul_B! end - ## Makes an adaptive Metropolis kernel proposed by: ## Haario, H., Saksman, E. and Tamminen, J., 2001. An adaptive Metropolis ## algorithm. Bernoulli, 7(2), pp.223-242. @@ -18,9 +12,9 @@ function makeAMKernel(logTargetDensity::F, Σ::SMatrix{d, d, Float64}, # A::MMatrix{d, d, Float64} = chol(Symmetric(S))' A::MMatrix{d, d, Float64} = mychol(S) - scratchv::MVector{d, Float64} = MVector{d, Float64}() - scratchz::MVector{d, Float64} = MVector{d, Float64}() - prevx::MVector{d, Float64} = MVector{d, Float64}() + scratchv::MVector{d, Float64} = MVector{d, Float64}(undef) + scratchz::MVector{d, Float64} = MVector{d, Float64}(undef) + prevx::MVector{d, Float64} = MVector{d, Float64}(undef) ldprevx = Ref(-Inf) accepts = Ref(0) diff --git a/src/randomWalkMetropolis.jl b/src/randomWalkMetropolis.jl index bab6e95..66adb1f 100644 --- a/src/randomWalkMetropolis.jl +++ b/src/randomWalkMetropolis.jl @@ -1,15 +1,11 @@ -using StaticArrays -using Compat.LinearAlgebra -using Compat.Random - ## Makes a random walk Metropolis kernel function makeRWMKernel(logTargetDensity::F, Σ::SMatrix{d, d, Float64}) where {F<:Function, d} # A::SMatrix{d, d, Float64} = chol(Symmetric(Σ))' A::SMatrix{d, d, Float64} = mychol(Σ) - scratchv::MVector{d, Float64} = MVector{d, Float64}() - prevx::MVector{d, Float64} = MVector{d, Float64}() + scratchv::MVector{d, Float64} = MVector{d, Float64}(undef) + prevx::MVector{d, Float64} = MVector{d, Float64}(undef) ldprevx = Ref(-Inf) accepts = Ref(0) diff --git a/src/simulateChain.jl b/src/simulateChain.jl index 76121c8..345a82c 100644 --- a/src/simulateChain.jl +++ b/src/simulateChain.jl @@ -1,4 +1,3 @@ -using StaticArrays using ProgressMeter function simulateChain!(chain::Vector{T}, P::F, x0::T) where {F<:Function, T} diff --git a/test/visualize_test.jl b/test/visualize_test.jl index 337cac9..2ce9117 100644 --- a/test/visualize_test.jl +++ b/test/visualize_test.jl @@ -23,7 +23,7 @@ end logtarget = makelogMVN(SVector{2, Float64}(μ1), SMatrix{2, 2, Float64}(Σ1)) niterations = 2^20 -chain = Vector{SVector{2, Float64}}(niterations) +chain = Vector{SVector{2, Float64}}(undef, niterations) srand(12345) @@ -33,7 +33,7 @@ simulateChain!(chain, P_AM, Szero2) @test mean(chain) ≈ μ1 atol = 0.01 @test MonteCarloMarkovKernels.cov(chain) ≈ Σ1 atol = 0.05 -vs = Vector{Vector{Float64}}(2) +vs = Vector{Vector{Float64}}(undef, 2) for i = 1:2 vs[i] = (x->x[i]).(chain) end