|
62 | 62 | tridrand(d::GaussianHermite, dims::Dim2) = dims[1]==dims[2] ? tridrand(d, dims[1]) : error("Can only generate square matrices")
|
63 | 63 |
|
64 | 64 | #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)) |
66 | 66 |
|
67 | 67 | #Calculate Vandermonde determinant term
|
68 | 68 | function VandermondeDeterminant{Eigenvalue<:Number}(lambda::Vector{Eigenvalue}, beta::Real)
|
@@ -124,7 +124,7 @@ function bidrand(d::GaussianLaguerre, m::Integer)
|
124 | 124 | if d.a <= d.beta*(m-1)/2.0
|
125 | 125 | 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))
|
126 | 126 | 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) |
128 | 128 | end
|
129 | 129 |
|
130 | 130 | #Generates a NxN tridiagonal Wishart matrix
|
@@ -257,7 +257,9 @@ function eigvalrand(d::GaussianJacobi, n::Integer)
|
257 | 257 | c, s, cp, sp = SampleCSValues(n, d.a, d.b, d.beta)
|
258 | 258 | dv = [i==1 ? c[n] : c[n+1-i] * sp[n+1-i] for i=1:n]
|
259 | 259 | 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) |
261 | 263 | return svdvals(M)
|
262 | 264 | end
|
263 | 265 |
|
|
0 commit comments