JuliaMath / JuliaMath/RandomMatrices.jl

Update type definitions of random matrix ensembles

Open
#91 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Julia
Stars
94
Forks
41
PR merge metrics
No merged PRs in 30d

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:

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

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

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

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

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

```Julia
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

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

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

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

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the linked definitions in src/GaussianEnsembles.jl, src/Ginibre.jl, and src/Haar.jl. Review the proposed type changes and their breaking implications across the package. Done means the affected ensemble definitions consistently implement the agreed parametric immutable types.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
backend-api-design
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.