-
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 😄