`stabilizer` slower than hoped
bugtopic: groups
**Describe the bug**
Computing the stabilizer of a vector of integers in a symmetric group is surprisingly slow. Converting the vector into a `GapObj` significantly decreases the runtime.
**To Reproduce**
```
julia> v = [ 1, 1, 1, 3, 3, 4, 3, 4, 4, 4, 1, 3 ];
julia> S = symmetric_group(length(v));
julia> using BenchmarkTools
julia> @btime stabilizer(S, v, permuted)
25.723 s (175404 allocations: 10.07 MiB)
(Permutation group of degree 12 and order 13824, Hom: permutation group -> S)
julia> @btime stabilizer(S, Oscar.GapObj(v), permuted)
87.286 ms (430146 allocations: 19.46 MiB)
(Permutation group of degree 12 and order 13824, Hom: permutation group -> S)
```
**System (please complete the following information):**
```
julia> Oscar.versioninfo(full=true)
OSCAR version 1.8.0-DEV - #master, 275fc15d98 -- 2026-04-24 14:34:01 +0000
combining:
AbstractAlgebra.jl v0.48.5
GAP.jl v0.16.5
Hecke.jl v0.39.15
Nemo.jl v0.54.2
Polymake.jl v0.13.10
Singular.jl v0.28.9
building on:
FLINT_jll v301.400.1+0
GAP_jll v400.1500.101+0
GAP_lib_jll v400.1500.100+0
Singular_jll v404.101.505+3
libpolymake_julia_jll v0.14.7+1
libsingular_julia_jll v0.47.12+1
polymake_jll v400.1500.2+0
polymake_oscarnumber_jll v0.3.17+0
See `]st -m` for a full list of dependencies.
Julia Version 1.12.6
Commit 15346901f00 (2026-04-09 19:20 UTC)
Build Info:
Official https://julialang.org release
Platform Info:
OS: Linux (x86_64-linux-gnu)
CPU: 12 × AMD Ryzen 5 3600 6-Core Processor
WORD_SIZE: 64
LLVM: libLLVM-18.1.7 (ORCJIT, znver2)
GC: Built with stock GC
Threads: 1 default, 1 interactive, 1 GC (on 12 virtual cores)
Official https://julialang.org release
```
**Additional context**
Found in discussion with @gert-vercleyen on slack.
0 条评论