Skip to content

Update type definitions of random matrix ensembles #91

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
apkille opened this issue May 22, 2025 · 0 comments
Open

Update type definitions of random matrix ensembles #91

apkille opened this issue May 22, 2025 · 0 comments

Comments

@apkille
Copy link
Contributor

apkille commented May 22, 2025

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:

struct GaussianHermite{β} <: ContinuousMatrixDistribution end
GaussianHermite(β) = GaussianHermite{β}()

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

mutable struct GaussianLaguerre <: ContinuousMatrixDistribution
beta::Real
a::Real
end
const Wishart = GaussianLaguerre

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

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 

struct Ginibre <: ContinuousMatrixDistribution
beta::Float64
N::Integer
end

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

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 😄

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant