Open kalmarek opened 2 weeks ago
Here it is:
function affordable_real(
irreducible_characters,
multiplicities = fill(1, length(irreducible_characters)),
)
irr_real = similar(irreducible_characters, 0)
mls_real = similar(multiplicities, 0)
for (i, χ) in pairs(irreducible_characters)
ι = Characters.frobenius_schur(χ)
if ι == 1 # real
@debug "real" χ
push!(irr_real, χ)
push!(mls_real, multiplicities[i])
elseif ι == -1 # quaternion
@debug "real" χ
push!(irr_real, 2*χ)
push!(mls_real, multiplicities[i])
else # complex one...
cχ = conj(χ)
k = findfirst(==(cχ), irreducible_characters)
@assert k !== nothing
@debug "complex" χ conj(χ) = irreducible_characters[k]
if k > i # ... we haven't already observed a conjugate of
@assert multiplicities[i] == multiplicities[k]
push!(irr_real, χ + cχ)
push!(mls_real, multiplicities[i])
end
end
end
return irr_real, mls_real
end
Do you want to distinguish between real $\chi$ of real-type and real $\chi$ of quaternion-type? I also do not understand the concept of multiplicities
. Isn't it always one?
great, can you create a pull request and add a meaningful testcase for this?
I was doing trial and error to realize how I need to proceed in github. I created two pull requests: one for changes in affordable_real
and the other for adding an example. I clicked on "merge pull request" for the second request. Now, I do not know how to delete it. What should I do? I added that example to the example folder. I suspect you prefer to have that example in the test folder.
no need to do anything about it, closing pull requests is just fine ;)
@Khashayar-Neshat
This will require changes to https://github.com/kalmarek/SymbolicWedderburn.jl/blob/d1822f263ac84c402340ec34eeb8f132182dea64/src/sa_basis.jl#L1