Skip to content

refactor: improve string representations#45

Open
cvigilv wants to merge 5 commits intoKermit-UGent:mainfrom
cvigilv:refactor-improve-representations
Open

refactor: improve string representations#45
cvigilv wants to merge 5 commits intoKermit-UGent:mainfrom
cvigilv:refactor-improve-representations

Conversation

@cvigilv
Copy link
Collaborator

@cvigilv cvigilv commented Dec 14, 2025

I was playing around with doing some changes to the string representations as during my time using this I found them difficult to parse for some problems. For example, the old version was:

julia> TernaryHV()
10000-element TernaryHV
mean ± std : 0.002 ± 1.0

julia> [TernaryHV() for _ in 1:100]
100-element Vector{TernaryHV}:
 10000-element TernaryHV - m ± sd: 0.0 ± 1.0
 10000-element TernaryHV - m ± sd: -0.0 ± 1.0
 10000-element TernaryHV - m ± sd: -0.0 ± 1.0
 10000-element TernaryHV - m ± sd: 0.0 ± 1.0
 10000-element TernaryHV - m ± sd: 0.0 ± 1.0
 
 10000-element TernaryHV - m ± sd: -0.0 ± 1.0
 10000-element TernaryHV - m ± sd: 0.0 ± 1.0
 10000-element TernaryHV - m ± sd: 0.0 ± 1.0
 10000-element TernaryHV - m ± sd: 0.0 ± 1.0
 10000-element TernaryHV - m ± sd: 0.0 ± 1.0

and the new is:

julia> TernaryHV()
10000-element TernaryHV with μ ± σ = -0.004 ± 1.0:
 -1
  1
 -1
 -1
 -1
  
  1
 -1
  1
 -1
  1

julia> [TernaryHV() for _ in 1:100]
100-element Vector{TernaryHV}:
 [-1, -1, 1, 1, 1, 1, -1, -1, 1, 1    1, 1, -1, -1, 1, 1, -1, 1, -1, 1]
 [-1, 1, -1, -1, 1, 1, 1, 1, -1, 1    1, 1, 1, -1, 1, 1, -1, -1, -1, 1]
 [-1, -1, -1, -1, -1, -1, 1, -1, 1, -1    -1, -1, -1, -1, 1, 1, 1, -1, -1, 1]
 [-1, -1, -1, 1, -1, -1, 1, -1, 1, -1    1, 1, -1, 1, -1, -1, 1, 1, -1, 1]
 [-1, 1, -1, 1, -1, 1, 1, -1, 1, 1    -1, 1, 1, 1, 1, 1, 1, -1, 1, 1]
 
 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1    1, -1, -1, 1, 1, -1, -1, -1, -1, -1]
 [-1, -1, -1, -1, 1, -1, 1, 1, 1, -1    1, -1, -1, -1, -1, -1, -1, -1, -1, 1]
 [-1, -1, 1, 1, 1, 1, -1, 1, 1, 1    -1, -1, -1, 1, -1, -1, -1, 1, -1, 1]
 [-1, 1, 1, 1, -1, 1, -1, 1, 1, -1    1, -1, 1, 1, 1, -1, -1, 1, 1, -1]
 [-1, -1, -1, 1, -1, -1, -1, -1, -1, 1    1, -1, 1, 1, -1, -1, -1, 1, 1, 1]

This version is closer to how vectors are represented in Julia. I think something in between would be better, but I would like to know your opinion before investing more time into this as this takes some tinkering since it's more about UX than anything.

I would combine the built-in vector print for long-style and the type one-liner for the short form:

10000-element TernaryHV with μ ± σ = -0.004 ± 1.0:
-1
1
...
1
1



10000-element TernaryHV (μ ± σ = -0.004 ± 1.0)

@cvigilv
Copy link
Collaborator Author

cvigilv commented Dec 14, 2025

Other types:

julia> BipolarHV()
10000-element BipolarHV with 5056 positives and 4944 negatives:
 -1
  1
  1
  1
  1
  
 -1
 -1
 -1
 -1
 -1

julia> BinaryHV()
10000-element BinaryHV with 5036 true and 4964 false:
 0
 1
 0
 0
 0
 
 1
 0
 1
 0
 1

julia> RealHV()
10000-element RealHV{Float64} with μ ± σ = -0.006 ± 1.006:
  2.6116202595969775
 -1.892508377213708
  0.9741403645815744
  0.1405009525163469
  0.07264655332880232
  
 -1.4794770328987807
  1.034756806145206
  1.0380093547827494
 -0.45964829544811403
 -0.09244997040145336

julia> GradedBipolarHV()
10000-element GradedBipolarHV{Float64} with μ ± σ = 0.005 ± 0.582:
  0.6717833224869785
  0.5510791674269708
  0.49664159888119963
 -0.9390257335078157
  0.49205261393994837
  
 -0.7215113112299928
 -0.4892236308339185
  0.7215516291881439
 -0.2712029753388182
 -0.6529738849222699

julia> GradedHV()
10000-element GradedHV{Float64} with μ ± σ = 0.501 ± 0.288:
 0.7441905938351135
 0.10305724672731151
 0.7835908217384924
 0.08008971804310389
 0.9566298321570428
 
 0.2922459670460071
 0.032410308351557705
 0.5892633828477645
 0.04585572654633515
 0.5148917368076651

Thinking on adding the distribution function for the relevant hypervectors, LMKWYT

@cvigilv
Copy link
Collaborator Author

cvigilv commented Dec 14, 2025

I was thinking on this styles:

D-element BinaryHV with X trues & Y falses
D-element BipolarHV with X positives & Y negatives
D-element TernaryHV with X positives, Y zeros & Z negatives
D-element RealHV{T} with μ ± σ = X ± Y (distr = Distributions.Normal{Float64}=0.0, σ=1.0) )
D-element GradedHV{T} with μ ± σ = X ± Y (distr = Distributions.Beta{Float64}=1.0, β=1.0) )
D-element GradedBipolarHV{T} with μ ± σ = X ± Y (distr = ...)

Alternatively, I was thinking on something along the line of:

BinaryHV(D=D, true=X, false=Y)
BipolarHV(D=D, positive=X, negative=Y)
TernaryHV(D=D, positives=X, zero=Y, negative=Z)
RealHV{T}(D=D, μ = X, σ = Y, distr=Distributions.Normal{Float64}=0.0, σ=1.0))
...

@MichielStock
Copy link
Collaborator

Good for me. The representations can still be improved.

@cvigilv
Copy link
Collaborator Author

cvigilv commented Mar 18, 2026

Ok, so got it down to:

julia> hvtypes = [BinaryHV, BipolarHV, TernaryHV, RealHV, GradedHV, GradedBipolarHV, FHRR]
7-element Vector{Type}:
 BinaryHV
 BipolarHV
 TernaryHV
 RealHV
 GradedHV
 GradedBipolarHV
 FHRR

julia> map(x -> x(), hvtypes)
7-element Vector{AbstractHV}:
 10000-element BinaryHV with 4994 true and 5006 false
 10000-element BipolarHV with 4979 positives and 5021 negatives
 10000-element TernaryHV with 4997 positives, 0 zeros, and 5003 negatives
 10000-element RealHV{Float64} with μ ± σ = 0.01 ± 0.997
 10000-element GradedHV{Float64} with μ ± σ = 0.5 ± 0.287
 10000-element GradedBipolarHV{Float64} with μ ± σ = 0.014 ± 0.577
 10000-element FHRR{ComplexF64} with μ ± σ = 0.011 - 0.006im ± 1.0

In vectors:

julia> for hv in hvtypes
           display([hv(;D=8) for _ in 1:10])
           println()
       end
10-element Vector{BinaryHV}:
 8-element BinaryHV with 3 true and 5 false
 8-element BinaryHV with 5 true and 3 false
 8-element BinaryHV with 3 true and 5 false
 8-element BinaryHV with 3 true and 5 false
 8-element BinaryHV with 2 true and 6 false
 8-element BinaryHV with 4 true and 4 false
 8-element BinaryHV with 6 true and 2 false
 8-element BinaryHV with 3 true and 5 false
 8-element BinaryHV with 6 true and 2 false
 8-element BinaryHV with 2 true and 6 false

10-element Vector{BipolarHV}:
 8-element BipolarHV with 3 positives and 5 negatives
 8-element BipolarHV with 4 positives and 4 negatives
 8-element BipolarHV with 4 positives and 4 negatives
 8-element BipolarHV with 4 positives and 4 negatives
 8-element BipolarHV with 2 positives and 6 negatives
 8-element BipolarHV with 5 positives and 3 negatives
 8-element BipolarHV with 2 positives and 6 negatives
 8-element BipolarHV with 5 positives and 3 negatives
 8-element BipolarHV with 6 positives and 2 negatives
 8-element BipolarHV with 3 positives and 5 negatives

10-element Vector{TernaryHV}:
 8-element TernaryHV with 4 positives, 0 zeros, and 4 negatives
 8-element TernaryHV with 6 positives, 0 zeros, and 2 negatives
 8-element TernaryHV with 4 positives, 0 zeros, and 4 negatives
 8-element TernaryHV with 3 positives, 0 zeros, and 5 negatives
 8-element TernaryHV with 2 positives, 0 zeros, and 6 negatives
 8-element TernaryHV with 2 positives, 0 zeros, and 6 negatives
 8-element TernaryHV with 3 positives, 0 zeros, and 5 negatives
 8-element TernaryHV with 3 positives, 0 zeros, and 5 negatives
 8-element TernaryHV with 3 positives, 0 zeros, and 5 negatives
 8-element TernaryHV with 4 positives, 0 zeros, and 4 negatives

10-element Vector{RealHV{Float64}}:
 8-element RealHV{Float64} with μ ± σ = -0.495 ± 0.735
 8-element RealHV{Float64} with μ ± σ = 0.125 ± 1.467
 8-element RealHV{Float64} with μ ± σ = 0.109 ± 1.06
 8-element RealHV{Float64} with μ ± σ = 0.283 ± 1.208
 8-element RealHV{Float64} with μ ± σ = -0.802 ± 0.842
 8-element RealHV{Float64} with μ ± σ = -0.153 ± 0.864
 8-element RealHV{Float64} with μ ± σ = -0.088 ± 0.869
 8-element RealHV{Float64} with μ ± σ = -0.289 ± 1.311
 8-element RealHV{Float64} with μ ± σ = -0.507 ± 0.722
 8-element RealHV{Float64} with μ ± σ = -0.227 ± 1.571

10-element Vector{GradedHV{Float64}}:
 8-element GradedHV{Float64} with μ ± σ = 0.46 ± 0.341
 8-element GradedHV{Float64} with μ ± σ = 0.489 ± 0.276
 8-element GradedHV{Float64} with μ ± σ = 0.421 ± 0.325
 8-element GradedHV{Float64} with μ ± σ = 0.516 ± 0.299
 8-element GradedHV{Float64} with μ ± σ = 0.383 ± 0.319
 8-element GradedHV{Float64} with μ ± σ = 0.662 ± 0.256
 8-element GradedHV{Float64} with μ ± σ = 0.504 ± 0.301
 8-element GradedHV{Float64} with μ ± σ = 0.409 ± 0.284
 8-element GradedHV{Float64} with μ ± σ = 0.306 ± 0.295
 8-element GradedHV{Float64} with μ ± σ = 0.525 ± 0.3

10-element Vector{GradedBipolarHV{Float64}}:
 8-element GradedBipolarHV{Float64} with μ ± σ = -0.155 ± 0.674
 8-element GradedBipolarHV{Float64} with μ ± σ = -0.182 ± 0.419
 8-element GradedBipolarHV{Float64} with μ ± σ = 0.188 ± 0.648
 8-element GradedBipolarHV{Float64} with μ ± σ = -0.019 ± 0.535
 8-element GradedBipolarHV{Float64} with μ ± σ = 0.269 ± 0.615
 8-element GradedBipolarHV{Float64} with μ ± σ = 0.322 ± 0.573
 8-element GradedBipolarHV{Float64} with μ ± σ = -0.253 ± 0.439
 8-element GradedBipolarHV{Float64} with μ ± σ = 0.093 ± 0.489
 8-element GradedBipolarHV{Float64} with μ ± σ = 0.137 ± 0.568
 8-element GradedBipolarHV{Float64} with μ ± σ = 0.118 ± 0.633

10-element Vector{FHRR{ComplexF64}}:
 8-element FHRR{ComplexF64} with μ ± σ = 0.081 - 0.195im ± 1.045
 8-element FHRR{ComplexF64} with μ ± σ = -0.106 + 0.097im ± 1.058
 8-element FHRR{ComplexF64} with μ ± σ = 0.103 + 0.067im ± 1.061
 8-element FHRR{ComplexF64} with μ ± σ = 0.063 + 0.177im ± 1.05
 8-element FHRR{ComplexF64} with μ ± σ = 0.065 - 0.477im ± 0.937
 8-element FHRR{ComplexF64} with μ ± σ = -0.058 + 0.124im ± 1.059
 8-element FHRR{ComplexF64} with μ ± σ = -0.243 + 0.507im ± 0.884
 8-element FHRR{ComplexF64} with μ ± σ = -0.199 - 0.001im ± 1.048
 8-element FHRR{ComplexF64} with μ ± σ = 0.081 + 0.105im ± 1.06
 8-element FHRR{ComplexF64} with μ ± σ = -0.044 + 0.022im ± 1.068

In matrices:

julia> for hv in hvtypes
           display(fill(hv(;D=8), 3, 4))
           println()
       end
3×4 Matrix{BinaryHV}:
 [0, 1, 0, 1, 0, 1, 1, 0]  [0, 1, 0, 1, 0, 1, 1, 0]  [0, 1, 0, 1, 0, 1, 1, 0]  [0, 1, 0, 1, 0, 1, 1, 0]
 [0, 1, 0, 1, 0, 1, 1, 0]  [0, 1, 0, 1, 0, 1, 1, 0]  [0, 1, 0, 1, 0, 1, 1, 0]  [0, 1, 0, 1, 0, 1, 1, 0]
 [0, 1, 0, 1, 0, 1, 1, 0]  [0, 1, 0, 1, 0, 1, 1, 0]  [0, 1, 0, 1, 0, 1, 1, 0]  [0, 1, 0, 1, 0, 1, 1, 0]

3×4 Matrix{BipolarHV}:
 [-1, 1, -1, 1, -1, -1, 1, 1]  [-1, 1, -1, 1, -1, -1, 1, 1]  [-1, 1, -1, 1, -1, -1, 1, 1]  [-1, 1, -1, 1, -1, -1, 1, 1]
 [-1, 1, -1, 1, -1, -1, 1, 1]  [-1, 1, -1, 1, -1, -1, 1, 1]  [-1, 1, -1, 1, -1, -1, 1, 1]  [-1, 1, -1, 1, -1, -1, 1, 1]
 [-1, 1, -1, 1, -1, -1, 1, 1]  [-1, 1, -1, 1, -1, -1, 1, 1]  [-1, 1, -1, 1, -1, -1, 1, 1]  [-1, 1, -1, 1, -1, -1, 1, 1]

3×4 Matrix{TernaryHV}:
 [-1, 1, -1, 1, 1, -1, 1, -1]  [-1, 1, -1, 1, 1, -1, 1, -1]  [-1, 1, -1, 1, 1, -1, 1, -1]  [-1, 1, -1, 1, 1, -1, 1, -1]
 [-1, 1, -1, 1, 1, -1, 1, -1]  [-1, 1, -1, 1, 1, -1, 1, -1]  [-1, 1, -1, 1, 1, -1, 1, -1]  [-1, 1, -1, 1, 1, -1, 1, -1]
 [-1, 1, -1, 1, 1, -1, 1, -1]  [-1, 1, -1, 1, 1, -1, 1, -1]  [-1, 1, -1, 1, 1, -1, 1, -1]  [-1, 1, -1, 1, 1, -1, 1, -1]

3×4 Matrix{RealHV{Float64}}:
 [-0.171687, -0.315077, 0.471016, 0.343194, 0.232568, 0.148388, 1.54682, -0.202623]    [-0.171687, -0.315077, 0.471016, 0.343194, 0.232568, 0.148388, 1.54682, -0.202623]
 [-0.171687, -0.315077, 0.471016, 0.343194, 0.232568, 0.148388, 1.54682, -0.202623]     [-0.171687, -0.315077, 0.471016, 0.343194, 0.232568, 0.148388, 1.54682, -0.202623]
 [-0.171687, -0.315077, 0.471016, 0.343194, 0.232568, 0.148388, 1.54682, -0.202623]     [-0.171687, -0.315077, 0.471016, 0.343194, 0.232568, 0.148388, 1.54682, -0.202623]

3×4 Matrix{GradedHV{Float64}}:
 [0.467411, 0.454642, 0.680632, 0.88582, 0.316106, 0.242007, 0.34407, 0.169342]    [0.467411, 0.454642, 0.680632, 0.88582, 0.316106, 0.242007, 0.34407, 0.169342]
 [0.467411, 0.454642, 0.680632, 0.88582, 0.316106, 0.242007, 0.34407, 0.169342]     [0.467411, 0.454642, 0.680632, 0.88582, 0.316106, 0.242007, 0.34407, 0.169342]
 [0.467411, 0.454642, 0.680632, 0.88582, 0.316106, 0.242007, 0.34407, 0.169342]     [0.467411, 0.454642, 0.680632, 0.88582, 0.316106, 0.242007, 0.34407, 0.169342]

3×4 Matrix{GradedBipolarHV{Float64}}:
 [-0.970066, -0.0228868, 0.174237, -0.923973, -0.287612, -0.587565, -0.958541, 0.453084]    [-0.970066, -0.0228868, 0.174237, -0.923973, -0.287612, -0.587565, -0.958541, 0.453084]
 [-0.970066, -0.0228868, 0.174237, -0.923973, -0.287612, -0.587565, -0.958541, 0.453084]     [-0.970066, -0.0228868, 0.174237, -0.923973, -0.287612, -0.587565, -0.958541, 0.453084]
 [-0.970066, -0.0228868, 0.174237, -0.923973, -0.287612, -0.587565, -0.958541, 0.453084]     [-0.970066, -0.0228868, 0.174237, -0.923973, -0.287612, -0.587565, -0.958541, 0.453084]

3×4 Matrix{FHRR{ComplexF64}}:
 [-0.997321+0.0731546im, -0.801405+0.598122im, 0.987216+0.159389im, -0.964539+0.263942im, -0.536059+0.84418im, -0.881941+0.47136im, -0.414072+0.910244im, 0.879813-0.47532im]    [-0.997321+0.0731546im, -0.801405+0.598122im, 0.987216+0.159389im, -0.964539+0.263942im, -0.536059+0.84418im, -0.881941+0.47136im, -0.414072+0.910244im, 0.879813-0.47532im]
 [-0.997321+0.0731546im, -0.801405+0.598122im, 0.987216+0.159389im, -0.964539+0.263942im, -0.536059+0.84418im, -0.881941+0.47136im, -0.414072+0.910244im, 0.879813-0.47532im]     [-0.997321+0.0731546im, -0.801405+0.598122im, 0.987216+0.159389im, -0.964539+0.263942im, -0.536059+0.84418im, -0.881941+0.47136im, -0.414072+0.910244im, 0.879813-0.47532im]
 [-0.997321+0.0731546im, -0.801405+0.598122im, 0.987216+0.159389im, -0.964539+0.263942im, -0.536059+0.84418im, -0.881941+0.47136im, -0.414072+0.910244im, 0.879813-0.47532im]     [-0.997321+0.0731546im, -0.801405+0.598122im, 0.987216+0.159389im, -0.964539+0.263942im, -0.536059+0.84418im, -0.881941+0.47136im, -0.414072+0.910244im, 0.879813-0.47532im]

And multidimensional arrays (dims > 2):

julia> for hv in hvtypes
           display(fill(hv(;D=8), 3, 4, 2))
           println()
       end
3×4×2 Array{BinaryHV, 3}:
[:, :, 1] =
 [0, 1, 0, 1, 0, 0, 0, 0]  [0, 1, 0, 1, 0, 0, 0, 0]  [0, 1, 0, 1, 0, 0, 0, 0]  [0, 1, 0, 1, 0, 0, 0, 0]
 [0, 1, 0, 1, 0, 0, 0, 0]  [0, 1, 0, 1, 0, 0, 0, 0]  [0, 1, 0, 1, 0, 0, 0, 0]  [0, 1, 0, 1, 0, 0, 0, 0]
 [0, 1, 0, 1, 0, 0, 0, 0]  [0, 1, 0, 1, 0, 0, 0, 0]  [0, 1, 0, 1, 0, 0, 0, 0]  [0, 1, 0, 1, 0, 0, 0, 0]

[:, :, 2] =
 [0, 1, 0, 1, 0, 0, 0, 0]  [0, 1, 0, 1, 0, 0, 0, 0]  [0, 1, 0, 1, 0, 0, 0, 0]  [0, 1, 0, 1, 0, 0, 0, 0]
 [0, 1, 0, 1, 0, 0, 0, 0]  [0, 1, 0, 1, 0, 0, 0, 0]  [0, 1, 0, 1, 0, 0, 0, 0]  [0, 1, 0, 1, 0, 0, 0, 0]
 [0, 1, 0, 1, 0, 0, 0, 0]  [0, 1, 0, 1, 0, 0, 0, 0]  [0, 1, 0, 1, 0, 0, 0, 0]  [0, 1, 0, 1, 0, 0, 0, 0]

3×4×2 Array{BipolarHV, 3}:
[:, :, 1] =
 [-1, 1, 1, 1, -1, 1, -1, 1]  [-1, 1, 1, 1, -1, 1, -1, 1]  [-1, 1, 1, 1, -1, 1, -1, 1]  [-1, 1, 1, 1, -1, 1, -1, 1]
 [-1, 1, 1, 1, -1, 1, -1, 1]  [-1, 1, 1, 1, -1, 1, -1, 1]  [-1, 1, 1, 1, -1, 1, -1, 1]  [-1, 1, 1, 1, -1, 1, -1, 1]
 [-1, 1, 1, 1, -1, 1, -1, 1]  [-1, 1, 1, 1, -1, 1, -1, 1]  [-1, 1, 1, 1, -1, 1, -1, 1]  [-1, 1, 1, 1, -1, 1, -1, 1]

[:, :, 2] =
 [-1, 1, 1, 1, -1, 1, -1, 1]  [-1, 1, 1, 1, -1, 1, -1, 1]  [-1, 1, 1, 1, -1, 1, -1, 1]  [-1, 1, 1, 1, -1, 1, -1, 1]
 [-1, 1, 1, 1, -1, 1, -1, 1]  [-1, 1, 1, 1, -1, 1, -1, 1]  [-1, 1, 1, 1, -1, 1, -1, 1]  [-1, 1, 1, 1, -1, 1, -1, 1]
 [-1, 1, 1, 1, -1, 1, -1, 1]  [-1, 1, 1, 1, -1, 1, -1, 1]  [-1, 1, 1, 1, -1, 1, -1, 1]  [-1, 1, 1, 1, -1, 1, -1, 1]

3×4×2 Array{TernaryHV, 3}:
[:, :, 1] =
 [1, -1, 1, -1, -1, -1, -1, 1]  [1, -1, 1, -1, -1, -1, -1, 1]  [1, -1, 1, -1, -1, -1, -1, 1]  [1, -1, 1, -1, -1, -1, -1, 1]
 [1, -1, 1, -1, -1, -1, -1, 1]  [1, -1, 1, -1, -1, -1, -1, 1]  [1, -1, 1, -1, -1, -1, -1, 1]  [1, -1, 1, -1, -1, -1, -1, 1]
 [1, -1, 1, -1, -1, -1, -1, 1]  [1, -1, 1, -1, -1, -1, -1, 1]  [1, -1, 1, -1, -1, -1, -1, 1]  [1, -1, 1, -1, -1, -1, -1, 1]

[:, :, 2] =
 [1, -1, 1, -1, -1, -1, -1, 1]  [1, -1, 1, -1, -1, -1, -1, 1]  [1, -1, 1, -1, -1, -1, -1, 1]  [1, -1, 1, -1, -1, -1, -1, 1]
 [1, -1, 1, -1, -1, -1, -1, 1]  [1, -1, 1, -1, -1, -1, -1, 1]  [1, -1, 1, -1, -1, -1, -1, 1]  [1, -1, 1, -1, -1, -1, -1, 1]
 [1, -1, 1, -1, -1, -1, -1, 1]  [1, -1, 1, -1, -1, -1, -1, 1]  [1, -1, 1, -1, -1, -1, -1, 1]  [1, -1, 1, -1, -1, -1, -1, 1]

3×4×2 Array{RealHV{Float64}, 3}:
[:, :, 1] =
 [1.04051, 0.461499, -0.263889, -0.517142, 0.738812, -0.0204501, -0.966136, -0.381489]    [1.04051, 0.461499, -0.263889, -0.517142, 0.738812, -0.0204501, -0.966136, -0.381489]
 [1.04051, 0.461499, -0.263889, -0.517142, 0.738812, -0.0204501, -0.966136, -0.381489]     [1.04051, 0.461499, -0.263889, -0.517142, 0.738812, -0.0204501, -0.966136, -0.381489]
 [1.04051, 0.461499, -0.263889, -0.517142, 0.738812, -0.0204501, -0.966136, -0.381489]     [1.04051, 0.461499, -0.263889, -0.517142, 0.738812, -0.0204501, -0.966136, -0.381489]

[:, :, 2] =
 [1.04051, 0.461499, -0.263889, -0.517142, 0.738812, -0.0204501, -0.966136, -0.381489]    [1.04051, 0.461499, -0.263889, -0.517142, 0.738812, -0.0204501, -0.966136, -0.381489]
 [1.04051, 0.461499, -0.263889, -0.517142, 0.738812, -0.0204501, -0.966136, -0.381489]     [1.04051, 0.461499, -0.263889, -0.517142, 0.738812, -0.0204501, -0.966136, -0.381489]
 [1.04051, 0.461499, -0.263889, -0.517142, 0.738812, -0.0204501, -0.966136, -0.381489]     [1.04051, 0.461499, -0.263889, -0.517142, 0.738812, -0.0204501, -0.966136, -0.381489]

3×4×2 Array{GradedHV{Float64}, 3}:
[:, :, 1] =
 [0.666839, 0.733592, 0.284642, 0.254711, 0.777862, 0.657296, 0.403583, 0.317517]    [0.666839, 0.733592, 0.284642, 0.254711, 0.777862, 0.657296, 0.403583, 0.317517]
 [0.666839, 0.733592, 0.284642, 0.254711, 0.777862, 0.657296, 0.403583, 0.317517]     [0.666839, 0.733592, 0.284642, 0.254711, 0.777862, 0.657296, 0.403583, 0.317517]
 [0.666839, 0.733592, 0.284642, 0.254711, 0.777862, 0.657296, 0.403583, 0.317517]     [0.666839, 0.733592, 0.284642, 0.254711, 0.777862, 0.657296, 0.403583, 0.317517]

[:, :, 2] =
 [0.666839, 0.733592, 0.284642, 0.254711, 0.777862, 0.657296, 0.403583, 0.317517]    [0.666839, 0.733592, 0.284642, 0.254711, 0.777862, 0.657296, 0.403583, 0.317517]
 [0.666839, 0.733592, 0.284642, 0.254711, 0.777862, 0.657296, 0.403583, 0.317517]     [0.666839, 0.733592, 0.284642, 0.254711, 0.777862, 0.657296, 0.403583, 0.317517]
 [0.666839, 0.733592, 0.284642, 0.254711, 0.777862, 0.657296, 0.403583, 0.317517]     [0.666839, 0.733592, 0.284642, 0.254711, 0.777862, 0.657296, 0.403583, 0.317517]

3×4×2 Array{GradedBipolarHV{Float64}, 3}:
[:, :, 1] =
 [0.205278, 0.97772, 0.220871, 0.754317, -0.495529, 0.673231, -0.634751, -0.615472]    [0.205278, 0.97772, 0.220871, 0.754317, -0.495529, 0.673231, -0.634751, -0.615472]
 [0.205278, 0.97772, 0.220871, 0.754317, -0.495529, 0.673231, -0.634751, -0.615472]     [0.205278, 0.97772, 0.220871, 0.754317, -0.495529, 0.673231, -0.634751, -0.615472]
 [0.205278, 0.97772, 0.220871, 0.754317, -0.495529, 0.673231, -0.634751, -0.615472]     [0.205278, 0.97772, 0.220871, 0.754317, -0.495529, 0.673231, -0.634751, -0.615472]

[:, :, 2] =
 [0.205278, 0.97772, 0.220871, 0.754317, -0.495529, 0.673231, -0.634751, -0.615472]    [0.205278, 0.97772, 0.220871, 0.754317, -0.495529, 0.673231, -0.634751, -0.615472]
 [0.205278, 0.97772, 0.220871, 0.754317, -0.495529, 0.673231, -0.634751, -0.615472]     [0.205278, 0.97772, 0.220871, 0.754317, -0.495529, 0.673231, -0.634751, -0.615472]
 [0.205278, 0.97772, 0.220871, 0.754317, -0.495529, 0.673231, -0.634751, -0.615472]     [0.205278, 0.97772, 0.220871, 0.754317, -0.495529, 0.673231, -0.634751, -0.615472]

3×4×2 Array{FHRR{ComplexF64}, 3}:
[:, :, 1] =
 [0.934752-0.3553im, -0.529971-0.848016im, 0.258655+0.96597im, 0.283604-0.958942im, 0.824143-0.566381im, 0.831777+0.55511im, 0.826788-0.562514im, -0.230161-0.973153im]    [0.934752-0.3553im, -0.529971-0.848016im, 0.258655+0.96597im, 0.283604-0.958942im, 0.824143-0.566381im, 0.831777+0.55511im, 0.826788-0.562514im, -0.230161-0.973153im]
 [0.934752-0.3553im, -0.529971-0.848016im, 0.258655+0.96597im, 0.283604-0.958942im, 0.824143-0.566381im, 0.831777+0.55511im, 0.826788-0.562514im, -0.230161-0.973153im]     [0.934752-0.3553im, -0.529971-0.848016im, 0.258655+0.96597im, 0.283604-0.958942im, 0.824143-0.566381im, 0.831777+0.55511im, 0.826788-0.562514im, -0.230161-0.973153im]
 [0.934752-0.3553im, -0.529971-0.848016im, 0.258655+0.96597im, 0.283604-0.958942im, 0.824143-0.566381im, 0.831777+0.55511im, 0.826788-0.562514im, -0.230161-0.973153im]     [0.934752-0.3553im, -0.529971-0.848016im, 0.258655+0.96597im, 0.283604-0.958942im, 0.824143-0.566381im, 0.831777+0.55511im, 0.826788-0.562514im, -0.230161-0.973153im]

[:, :, 2] =
 [0.934752-0.3553im, -0.529971-0.848016im, 0.258655+0.96597im, 0.283604-0.958942im, 0.824143-0.566381im, 0.831777+0.55511im, 0.826788-0.562514im, -0.230161-0.973153im]    [0.934752-0.3553im, -0.529971-0.848016im, 0.258655+0.96597im, 0.283604-0.958942im, 0.824143-0.566381im, 0.831777+0.55511im, 0.826788-0.562514im, -0.230161-0.973153im]
 [0.934752-0.3553im, -0.529971-0.848016im, 0.258655+0.96597im, 0.283604-0.958942im, 0.824143-0.566381im, 0.831777+0.55511im, 0.826788-0.562514im, -0.230161-0.973153im]     [0.934752-0.3553im, -0.529971-0.848016im, 0.258655+0.96597im, 0.283604-0.958942im, 0.824143-0.566381im, 0.831777+0.55511im, 0.826788-0.562514im, -0.230161-0.973153im]
 [0.934752-0.3553im, -0.529971-0.848016im, 0.258655+0.96597im, 0.283604-0.958942im, 0.824143-0.566381im, 0.831777+0.55511im, 0.826788-0.562514im, -0.230161-0.973153im]     [0.934752-0.3553im, -0.529971-0.848016im, 0.258655+0.96597im, 0.283604-0.958942im, 0.824143-0.566381im, 0.831777+0.55511im, 0.826788-0.562514im, -0.230161-0.973153im]

@cvigilv
Copy link
Collaborator Author

cvigilv commented Mar 18, 2026

Adding the distribution function was too much information, making it difficult to follow. I think that argument is unlikely to be changed by the users; therefore, I left it out for now.

LMKWYT to merge.

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

Successfully merging this pull request may close these issues.

2 participants