In type A, Semisimple.jl has two algorithms for computing tensor products: Brauer–Klimyk and one based on Littlewood–Richardson coefficients. The LR-based approach is the default because it is vastly faster in small cases.
In type $\mathrm{A}_7$, however, computing $\mathrm{V}(\rho)\otimes\mathrm{V}(\rho)$ shows the default is already much slower than Brauer–Klimyk:
using Semisimple
ρ = weyl_vector(TypeA{7})
@time tensor_product(ρ, ρ) # 35.18 s
@time Semisimple._brauer_klimyk_dominant(dominant_character(ρ), ρ) # 0.07 s
Both return the same character. This came up while verifying Kostant's conjecture.
Two things to look into:
- Is there an improvement to be made in the LR implementation, so it remains competitive at higher rank?
- If not, expose an option to choose the algorithm in type A (or switch the default above some threshold).
In type A, Semisimple.jl has two algorithms for computing tensor products: Brauer–Klimyk and one based on Littlewood–Richardson coefficients. The LR-based approach is the default because it is vastly faster in small cases.
In type$\mathrm{A}_7$ , however, computing $\mathrm{V}(\rho)\otimes\mathrm{V}(\rho)$ shows the default is already much slower than Brauer–Klimyk:
Both return the same character. This came up while verifying Kostant's conjecture.
Two things to look into: