JuliaMath / JuliaMath/RandomMatrices.jl

Update type definitions of random matrix ensembles

未关闭
#91 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Julia
星标
94
派生
41
PR 合并指标
30 天内没有已合并 PR

描述

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 😄

贡献指南

这个仓库没有索引到贡献指南

调研方向

从 src/GaussianEnsembles.jl、src/Ginibre.jl 和 src/Haar.jl 中链接的定义开始。审查提议的类型更改及其在整个包中的破坏性影响。当受影响的系综定义一致地实现约定的参数化不可变类型时,即视为完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
julia
领域
backend-api-design
Issue 类型
重构
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
38/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。