-
Notifications
You must be signed in to change notification settings - Fork 40
Description
The type definitions for Ginibre
, GaussianHermite
, GaussianJacobi
, Ginibre
, and Haar
are wonky, and they could all become parametric immutable types instead. Below, I list their definitions and suggest improvements, some of which are breaking:
RandomMatrices.jl/src/GaussianEnsembles.jl
Lines 43 to 44 in fc98f3b
struct GaussianHermite{β} <: ContinuousMatrixDistribution end | |
GaussianHermite(β) = GaussianHermite{β}() |
struct GaussianHermite{B} <: ContinuousMatrixDistribution
beta::B
end
RandomMatrices.jl/src/GaussianEnsembles.jl
Lines 175 to 179 in fc98f3b
mutable struct GaussianLaguerre <: ContinuousMatrixDistribution | |
beta::Real | |
a::Real | |
end | |
const Wishart = GaussianLaguerre |
struct GaussianLaguerre{B,A} <: ContinuousMatrixDistribution
beta::B
a::A
end
RandomMatrices.jl/src/GaussianEnsembles.jl
Lines 277 to 282 in fc98f3b
mutable struct GaussianJacobi <: ContinuousMatrixDistribution | |
beta::Real | |
a::Real | |
b::Real | |
end | |
const MANOVA = GaussianJacobi |
struct GaussianJacobi{B,A} <: ContinuousMatrixDistribution
beta::B
a::A
b::A
end
RandomMatrices.jl/src/Ginibre.jl
Lines 27 to 30 in fc98f3b
struct Ginibre <: ContinuousMatrixDistribution | |
beta::Float64 | |
N::Integer | |
end |
struct Ginibre{B} <: ContinuousMatrixDistribution
beta::B
end
Lines 91 to 93 in fc98f3b
mutable struct Haar <: ContinuousMatrixDistribution | |
beta::Real | |
end |
struct Haar{B} <: ContinuousMatrixDistribution
beta::B
end
@dlfivefifty please let me know your thoughts, I'm happy to implement these changes. I'm also aware that I'm new to this old package, so I won't be upset if you turn down this proposal 😄