You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For an algebra generated by several 50×50 matrices, say 40, computing the endomorphism_algebra consumes lots of memory and time. Precisely, time and memory goes into vcat and right_kernel (and there into rref) in the code snippet below:
This code builds a 40⋅50²×50² “dense” matrix with only two 50+50 non-zero entries per row. Using sparse matrices instead of dense ones, and adding the rows iteratively to a rref instead of building a giant matrix, should reduce memory and time consumption by a lot, I guess.
Additionally a comment, to explain the code, could help. I guess, the lines
Seems, like I am bad at counting. There are actually n+m (here 100) entries per row. So, even with sparse matrices that can take some time. Anyway, there are more efficient algorithms out there. I will see, how far I come, with the tools Hecke or Oscar already include.
mgkurtz
changed the title
endomorphism_algebra uses extremely sparse “dense“ matrices internally
Naïve endomorphism_algebra implementation gets slow for large dimensions
May 30, 2023
For an algebra generated by several 50×50 matrices, say 40, computing the
endomorphism_algebra
consumes lots of memory and time. Precisely, time and memory goes intovcat
andright_kernel
(and there intorref
) in the code snippet below:Hecke.jl/src/AlgAssAbsOrd/Conjugacy/Conjugacy.jl
Lines 567 to 583 in bc4f3c4
This code builds a 40⋅50²×50² “dense” matrix with
only two50+50 non-zero entries per row. Using sparse matrices instead of dense ones, and adding the rows iteratively to a rref instead of building a giant matrix, should reduce memory and time consumptionby a lot, I guess.Additionally a comment, to explain the code, could help. I guess, the lines
Hecke.jl/src/AlgAssAbsOrd/Conjugacy/Conjugacy.jl
Lines 593 to 595 in bc4f3c4
should be assertions, which (if they were assertions) already helped explaining the code.
The text was updated successfully, but these errors were encountered: