JuliaMath / JuliaMath/RandomMatrices.jl
Update type definitions of random matrix ensembles
- 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