diff --git a/Project.toml b/Project.toml index 40feea5..59d2241 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "RandomMatrices" uuid = "2576dda1-a324-5b11-aa66-c48ed7e3c618" -version = "0.5.5" +version = "0.5.6" [deps] Combinatorics = "861a8166-3701-5b0c-9a16-15d98fcdc6aa" diff --git a/src/GaussianEnsembles.jl b/src/GaussianEnsembles.jl index 404f9d1..6ae3041 100644 --- a/src/GaussianEnsembles.jl +++ b/src/GaussianEnsembles.jl @@ -348,8 +348,8 @@ function SampleCSValues(n::Integer, a::Real, b::Real, beta::Real) csq = [rand(Beta(beta*(a+i)/2,beta*(b+i)/2)) for i=1:n] cpsq = [rand(Beta(beta*i/2,beta*(a+b+1+i)/2)) for i=1:n] #Cosine-sine pairs - c , s = sqrt(csq) , sqrt(1-csq) - cp, sp = sqrt(cpsq), sqrt(1-cpsq) + c , s = sqrt.(csq) , sqrt.(1 .- csq) + cp, sp = sqrt.(cpsq), sqrt.(1 .- cpsq) end return c, s, cp, sp end @@ -415,7 +415,7 @@ function eigvalrand(d::GaussianJacobi{β}, n::Integer) where {β} ev = [-s[n+1-i]*cp[n-i] for i=1:n-1] ##TODO: understand why dv and ev are returned as Array{Any,1} - M = Bidiagonal(convert(Array{Float64,1},dv), convert(Array{Float64,1},ev), false) + M = Bidiagonal(convert(Array{Float64,1},dv), convert(Array{Float64,1},ev), :U) return svdvals(M) end diff --git a/test/GaussianEnsembles.jl b/test/GaussianEnsembles.jl index 7d80823..ce92b8e 100644 --- a/test/GaussianEnsembles.jl +++ b/test/GaussianEnsembles.jl @@ -57,6 +57,8 @@ for (β, T, N) in [(1, Real, n), (2, Complex, n), (4, Complex, 2n)] A = rand(d, n) @test eltype(A) <: T @test size(A) == (N, N) + + @test eigvalrand(d, 5) isa Vector{Float64} end end