RandomMatrices.jl icon indicating copy to clipboard operation
RandomMatrices.jl copied to clipboard

Update type definitions of random matrix ensembles

Open apkille opened this issue 8 months ago • 0 comments

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:

https://github.com/JuliaMath/RandomMatrices.jl/blob/fc98f3bb6432214614d0a478d4faa6c40d108e7b/src/GaussianEnsembles.jl#L43-L44

struct GaussianHermite{B} <: ContinuousMatrixDistribution 
    beta::B
end 

https://github.com/JuliaMath/RandomMatrices.jl/blob/fc98f3bb6432214614d0a478d4faa6c40d108e7b/src/GaussianEnsembles.jl#L175-L179

struct GaussianLaguerre{B,A} <: ContinuousMatrixDistribution 
    beta::B
    a::A
end 

https://github.com/JuliaMath/RandomMatrices.jl/blob/fc98f3bb6432214614d0a478d4faa6c40d108e7b/src/GaussianEnsembles.jl#L277-L282

struct GaussianJacobi{B,A} <: ContinuousMatrixDistribution 
    beta::B
    a::A
    b::A
end 

https://github.com/JuliaMath/RandomMatrices.jl/blob/fc98f3bb6432214614d0a478d4faa6c40d108e7b/src/Ginibre.jl#L27-L30

struct Ginibre{B} <: ContinuousMatrixDistribution 
    beta::B
end 

https://github.com/JuliaMath/RandomMatrices.jl/blob/fc98f3bb6432214614d0a478d4faa6c40d108e7b/src/Haar.jl#L91-L93

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 😄

apkille avatar May 22 '25 18:05 apkille