-
Notifications
You must be signed in to change notification settings - Fork 162
Open
Labels
Description
Can the following stabilizer computation be made more performant, how? @fingolfin
julia> L = integer_lattice(gram=ZZ[2 1 -1 1 -1 -1 0 0 0 0 0 0 0 0 0 1; 1 2 -1 1 -1 0 0 0 0 0 0 0 0 0 0 1; -1 -1 2 0 1 0 0 0 0 0 0 0 0 0 0 -1; 1 1 0 2 -1 0 0 0 0 0 0 0 0 0 0 0; -1 -1 1 -1 2 0 0 0 0 0 0 0 0 0 0 0; -1 0 0 0 0 2 0 0 0 0 0 0 0 0 0 -1; 0 0 0 0 0 0 2 1 -1 1 -1 -1 -2 -1 -2 -1; 0 0 0 0 0 0 1 2 -1 1 -1 -1 -2 -1 -2 -1; 0 0 0 0 0 0 -1 -1 2 0 0 0 2 0 2 1; 0 0 0 0 0 0 1 1 0 2 -1 -1 -1 -1 -1 0; 0 0 0 0 0 0 -1 -1 0 -1 2 1 1 1 2 1; 0 0 0 0 0 0 -1 -1 0 -1 1 2 1 1 1 1; 0 0 0 0 0 0 -2 -2 2 -1 1 1 4 1 3 2; 0 0 0 0 0 0 -1 -1 0 -1 1 1 1 2 0 0; 0 0 0 0 0 0 -2 -2 2 -1 2 1 3 0 6 3; 1 1 -1 0 0 -1 -1 -1 1 0 1 1 2 0 3 4]);
julia> G,_ = Oscar._isometry_group_via_decomposition(L);
julia> S1,S2,_ = Hecke._shortest_vectors_sublattice(L1);
julia> @time Oscar._overlattice_stabilizer(G, S1,S2)
3.958768 seconds (6.28 M allocations: 253.096 MiB, 6.59% gc time)
(Matrix group of degree 16 over ZZ, Hom: matrix group -> G)