Skip to content

Commit baff900

Browse files
committed
Merge pull request #5 from dlfivefifty/master
Fixed bugs in sampling for GaussianEnsembles
2 parents 581ce29 + d90b371 commit baff900

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

src/GaussianEnsembles.jl

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ end
6262
tridrand(d::GaussianHermite, dims::Dim2) = dims[1]==dims[2] ? tridrand(d, dims[1]) : error("Can only generate square matrices")
6363

6464
#Return n eigenvalues distributed according to the Hermite ensemble
65-
eigvalrand(d::GaussianHermite, n::Integer) = eigvals(tridrand(d, b))
65+
eigvalrand(d::GaussianHermite, n::Integer) = eigvals(tridrand(d, n))
6666

6767
#Calculate Vandermonde determinant term
6868
function VandermondeDeterminant{Eigenvalue<:Number}(lambda::Vector{Eigenvalue}, beta::Real)
@@ -124,7 +124,7 @@ function bidrand(d::GaussianLaguerre, m::Integer)
124124
if d.a <= d.beta*(m-1)/2.0
125125
error(@sprintf("Given your choice of m and beta, a must be at least %f (You said a = %f)", d.beta*(m-1)/2.0, d.a))
126126
end
127-
Bidiagonal([chi(2*a-i*d.beta) for i=0:m-1], [chi(d.beta*i) for i=m-1:-1:1], true)
127+
Bidiagonal([chi(2*d.a-i*d.beta) for i=0:m-1], [chi(d.beta*i) for i=m-1:-1:1], true)
128128
end
129129

130130
#Generates a NxN tridiagonal Wishart matrix
@@ -257,7 +257,9 @@ function eigvalrand(d::GaussianJacobi, n::Integer)
257257
c, s, cp, sp = SampleCSValues(n, d.a, d.b, d.beta)
258258
dv = [i==1 ? c[n] : c[n+1-i] * sp[n+1-i] for i=1:n]
259259
ev = [-s[n+1-i]*cp[n-i] for i=1:n-1]
260-
M = Bidiagonal(dv, ev, false)
260+
261+
##TODO: understand why dv and ev are returned as Array{Any,1}
262+
M = Bidiagonal(convert(Array{Float64,1},dv), convert(Array{Float64,1},ev), false)
261263
return svdvals(M)
262264
end
263265

0 commit comments

Comments
 (0)