Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bump version number, in order to allow for GAP.jl 0.12 #1628

Merged
merged 2 commits into from
Sep 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name = "Hecke"
uuid = "3e1990a7-5d81-5526-99ce-9ba3ff248f21"
version = "0.34.3"
version = "0.34.4"

[deps]
AbstractAlgebra = "c3fe647b-3220-5bb0-a1ea-a7954cac585d"
Expand Down Expand Up @@ -31,7 +31,7 @@ PolymakeExt = "Polymake"
AbstractAlgebra = "^0.43.1"
Dates = "1.6"
Distributed = "1.6"
GAP = "0.9.6, 0.10, 0.11"
GAP = "0.9.6, 0.10, 0.11, 0.12"
InteractiveUtils = "1.6"
LazyArtifacts = "1.6"
Libdl = "1.6"
Expand Down
4 changes: 2 additions & 2 deletions ext/GAPExt/abelian_layer.jl
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ function _real_level(L::GAP.GapObj)
push!(lElem, g)
end
end
S = GAP.Globals.Subgroup(G, GAP.julia_to_gap(lElem))
S = GAP.Globals.Subgroup(G, GAP.GapObj(lElem))
#Now, I check containment.
k = 0
for i = 2:length(L)
Expand Down Expand Up @@ -175,7 +175,7 @@ function _construct_grp(IdH::GAP.GapObj, uncom::Int)
ex = ppio(o, uncom)[1]
push!(new_gens, gens[i]^ex)
end
S = GAP.Globals.Subgroup(G, GAP.julia_to_gap(new_gens))
S = GAP.Globals.Subgroup(G, GAP.GapObj(new_gens))
Q = GAP.Globals.FactorGroup(G, S)
IdCheck = GAP.Globals.IdGroup(Q)
return IdCheck
Expand Down
24 changes: 12 additions & 12 deletions ext/GAPExt/brauer.jl
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ function find_subgroup(L::GAP.GapObj, level::Int)
end
end
if !found
return found, GAP.julia_to_gap([candidate])
return found, GAP.GapObj([candidate])
end
#I need to change the series...
L1 = GAP.GapObj[]
Expand All @@ -168,7 +168,7 @@ function find_subgroup(L::GAP.GapObj, level::Int)
for i = level:length(L)
push!(L1, GAP.Globals.Image(proj_comp, L[i]))
end
return found, GAP.julia_to_gap(L1)
return found, GAP.GapObj(L1)
end

################################################################################
Expand Down Expand Up @@ -227,7 +227,7 @@ function _to_prime_power_groups(cocycle::cocycle_ctx, p::Int)
for i = 1:length(gensEp)
push!(imgs_new_proj, GAP.Globals.Image(proj, gensEp[i]))
end
imgs_proj = GAP.julia_to_gap(imgs_new_proj)
imgs_proj = GAP.GapObj(imgs_new_proj)
Gp = GAP.Globals.Subgroup(G, imgs_proj)
#I need the inclusion of Gp into G for strange (GAP) reasons.
gensGp = GAP.Globals.GeneratorsOfGroup(Gp)
Expand All @@ -241,7 +241,7 @@ function _to_prime_power_groups(cocycle::cocycle_ctx, p::Int)
prel = GAP.Globals.PreImagesRepresentative(inj_Ep, el)
push!(images_inclusion, prel)
end
imgs_inclusion = GAP.julia_to_gap(images_inclusion)
imgs_inclusion = GAP.GapObj(images_inclusion)
new_incl = GAP.Globals.GroupHomomorphismByImages(A, Ep, gensA, imgs_inclusion)
res = cocycle_ctx(new_proj, new_incl, cocycle.cocycle)
res.inclusion_of_pSylow = inclusion_Gp
Expand Down Expand Up @@ -318,14 +318,14 @@ function _to_subgroup_of_kernel(cocycle::cocycle_ctx, S)
el_E = GAP.Globals.Image(cocycle.inclusion, el_A)
push!(images_inclusion, GAP.Globals.Image(pr1, el_E))
end
inclusion = GAP.Globals.GroupHomomorphismByImages(A_new, E_new, gensA_new, GAP.julia_to_gap(images_inclusion))
inclusion = GAP.Globals.GroupHomomorphismByImages(A_new, E_new, gensA_new, GAP.GapObj(images_inclusion))
gensE_new = GAP.Globals.GeneratorsOfGroup(E_new)
images_proj = []
for i = 1:length(gensE_new)
el = GAP.Globals.PreImagesRepresentative(pr1, gensE_new[i])
push!(images_proj, GAP.Globals.Image(cocycle.projection, el))
end
projection = GAP.Globals.GroupHomomorphismByImages(E_new, G, gensE_new, GAP.julia_to_gap(images_proj))
projection = GAP.Globals.GroupHomomorphismByImages(E_new, G, gensE_new, GAP.GapObj(images_proj))
local new_coc
let cocycle = cocycle, pr = pr
function new_coc(x::GAP.GapObj, y::GAP.GapObj)
Expand Down Expand Up @@ -355,7 +355,7 @@ function _to_prime_power_kernel(cocycle::cocycle_ctx, p::Int)
E = GAP.Globals.Source(cocycle.projection)
G = GAP.Globals.ImagesSource(cocycle.projection)
sizeG = GAP.Globals.Size(G)
S = GAP.Globals.Subgroup(A, GAP.julia_to_gap(gens_sub))
S = GAP.Globals.Subgroup(A, GAP.GapObj(gens_sub))
pr = GAP.Globals.NaturalHomomorphismByNormalSubgroup(A, S)
#I still need to create the maps.
S1 = GAP.Globals.Image(cocycle.inclusion, S)
Expand All @@ -369,14 +369,14 @@ function _to_prime_power_kernel(cocycle::cocycle_ctx, p::Int)
el_E = GAP.Globals.Image(cocycle.inclusion, el_A)
push!(images_inclusion, GAP.Globals.Image(pr1, el_E))
end
inclusion = GAP.Globals.GroupHomomorphismByImages(A_new, E_new, gensA_new, GAP.julia_to_gap(images_inclusion))
inclusion = GAP.Globals.GroupHomomorphismByImages(A_new, E_new, gensA_new, GAP.GapObj(images_inclusion))
gensE_new = GAP.Globals.GeneratorsOfGroup(E_new)
images_proj = []
for i = 1:length(gensE_new)
el = GAP.Globals.PreImagesRepresentative(pr1, gensE_new[i])
push!(images_proj, GAP.Globals.Image(cocycle.projection, el))
end
projection = GAP.Globals.GroupHomomorphismByImages(E_new, G, gensE_new, GAP.julia_to_gap(images_proj))
projection = GAP.Globals.GroupHomomorphismByImages(E_new, G, gensE_new, GAP.GapObj(images_proj))
local new_coc
let cocycle = cocycle, pr = pr
function new_coc(x::GAP.GapObj, y::GAP.GapObj)
Expand Down Expand Up @@ -432,7 +432,7 @@ function _autos_to_check(G::GAP.GapObj, K::GAP.GapObj, E::GAP.GapObj, mG::GAP.Ga
gK = GAP.Globals.GeneratorsOfGroup(K)
for s = 1:length(gens)
ind_auts_quo[s] = GAP.Globals.Image(isoAutG, GAP.Globals.InducedAutomorphism(mG, gens[s]))
igK = GAP.julia_to_gap([GAP.Globals.Image(gens[s], gK[i]) for i = 1:length(gK)])
igK = GAP.GapObj([GAP.Globals.Image(gens[s], gK[i]) for i = 1:length(gK)])
h = GAP.Globals.GroupHomomorphismByImages(K, K, gK, igK)
ind_auts_sub[s] = GAP.Globals.Image(isoAutK, h)
end
Expand All @@ -443,7 +443,7 @@ function _autos_to_check(G::GAP.GapObj, K::GAP.GapObj, E::GAP.GapObj, mG::GAP.Ga
for s = 1:length(gens)
gensubs[s] = GAP.Globals.Image(EmbAutG, ind_auts_quo[s]) * GAP.Globals.Image(EmbAutK, ind_auts_sub[s])
end
S = GAP.Globals.Subgroup(GProd, GAP.julia_to_gap(gensubs))
S = GAP.Globals.Subgroup(GProd, GAP.GapObj(gensubs))
@vprintln :BrauerObst 1 "Map constructed. Enumerating cosets..."
Transv = GAP.Globals.RightTransversal(GProd, S)
Tperm = GAP.Globals.List(Transv)
Expand Down Expand Up @@ -472,7 +472,7 @@ function projections(mG::GAP.GapObj)
for s = 1:length(gens)
gens_img[s] = GAP.Globals.Image(isoAutG, GAP.Globals.InducedAutomorphism(mG, gens[s]))
end
S = GAP.Globals.Subgroup(permAutG, GAP.julia_to_gap(gens_img))
S = GAP.Globals.Subgroup(permAutG, GAP.GapObj(gens_img))
@vprintln :BrauerObst 1 "Map constructed. Enumerating cosets..."
Transv = GAP.Globals.RightTransversal(permAutG, S)
Tperm = GAP.Globals.List(Transv)
Expand Down
4 changes: 2 additions & 2 deletions ext/GAPExt/conductors.jl
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ function _conductors_using_cocycles(F::FieldsTower, st::Vector{Int}, l_cond::Vec
for p in lp
gHp = inertia_subgroups[p]
els = [D[g] for g in gHp]
sub = GAP.Globals.Subgroup(G, GAP.julia_to_gap(els))
sub = GAP.Globals.Subgroup(G, GAP.GapObj(els))
ord = GAP.Globals.Size(sub)
subgs = Vector{GAP.GapObj}()
preimages = Vector{Vector{GAP.GapObj}}(undef, length(els))
Expand All @@ -106,7 +106,7 @@ function _conductors_using_cocycles(F::FieldsTower, st::Vector{Int}, l_cond::Vec
it = cartesian_product_iterator(UnitRange{Int}[1:n for i = 1:length(els)], inplace = true)
sizes_preimages = Int[]
for I in it
sub = GAP.Globals.Subgroup(E, GAP.julia_to_gap([preimages[i][I[i]] for i = 1:length(els)]))
sub = GAP.Globals.Subgroup(E, GAP.GapObj([preimages[i][I[i]] for i = 1:length(els)]))
push!(sizes_preimages, GAP.Globals.Size(sub))
if maximum(sizes_preimages) != ord && minimum(sizes_preimages) == ord
break
Expand Down
12 changes: 6 additions & 6 deletions ext/GAPExt/fields.jl
Original file line number Diff line number Diff line change
Expand Up @@ -296,12 +296,12 @@ function _perm_to_gap_grp(perm::Vector{Vector{Int}})
z = _perm_to_gap_perm(x)
push!(g, z)
end
g1 = GAP.julia_to_gap(g)
g1 = GAP.GapObj(g)
return GAP.Globals.Group(g1)
end

function _perm_to_gap_perm(x::Vector{Int})
x1 = GAP.julia_to_gap(x)
x1 = GAP.GapObj(x)
z = GAP.Globals.PermList(x1)
return z
end
Expand All @@ -322,7 +322,7 @@ function _split_extension(G::Vector{<: NumFieldHom{AbsSimpleNumField, AbsSimpleN
gtype = map(Int, domain(mats[1]).snf)
G1 = permutation_group(G)
gensG1 = GAP.Globals.GeneratorsOfGroup(G1)
A = GAP.Globals.AbelianGroup(GAP.julia_to_gap(gtype))
A = GAP.Globals.AbelianGroup(GAP.GapObj(gtype))
gens = GAP.Globals.GeneratorsOfGroup(A)
auts = Vector{GAP.GapObj}(undef, length(mats))
for i = 1:length(mats)
Expand All @@ -336,10 +336,10 @@ function _split_extension(G::Vector{<: NumFieldHom{AbsSimpleNumField, AbsSimpleN
end
images[j] = g
end
auts[i] = GAP.Globals.GroupHomomorphismByImages(A, A, gens, GAP.julia_to_gap(images))
auts[i] = GAP.Globals.GroupHomomorphismByImages(A, A, gens, GAP.GapObj(images))
end
AutGrp = GAP.Globals.Group(GAP.julia_to_gap(auts))
mp = GAP.Globals.GroupHomomorphismByImages(G1, AutGrp, gensG1, GAP.julia_to_gap(auts))
AutGrp = GAP.Globals.Group(GAP.GapObj(auts))
mp = GAP.Globals.GroupHomomorphismByImages(G1, AutGrp, gensG1, GAP.GapObj(auts))
return GAP.Globals.SplitExtension(G1, mp, A)

end
Expand Down
2 changes: 1 addition & 1 deletion ext/GAPExt/maximal_abelian_subextension.jl
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ function check_abelian_extensions(class_fields::Vector{Tuple{ClassField{MapRayCl
#I need to compute the degree of the maximal abelian subextension over this subfield.
deg_mas = Set{Int}()
if degree(domain(F.subfields[i])) == 1
idH = GAP.julia_to_gap([1, 1])
idH = GAP.GapObj([1, 1])
else
idH = IdGroup(automorphism_list(domain(F.subfields[i])))
end
Expand Down
10 changes: 5 additions & 5 deletions ext/GAPExt/meataxe.jl
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
## `ZZRingElem` to GAP integer
function _julia_to_gap(obj::ZZRingElem)
Nemo._fmpz_is_small(obj) && return GAP.julia_to_gap(Int(obj))
function _GapObj(obj::ZZRingElem)
Nemo._fmpz_is_small(obj) && return GAP.GapObj(Int(obj))
GC.@preserve obj begin
x = Nemo._as_bigint(obj)
return ccall((:MakeObjInt, GAP.libgap), GAP.GapObj, (Ptr{UInt64}, Cint), x.d, x.size)
Expand Down Expand Up @@ -42,10 +42,10 @@ end
# computes the isomorphism between the Oscar field F and the corresponding GAP field
function _ring_iso_oscar_gap(F::T) where T <: Union{Nemo.fpField, Nemo.FpField}
p = characteristic(F)
G = GAP.Globals.GF(_julia_to_gap(p))
G = GAP.Globals.GF(_GapObj(p))
e = GAP.Globals.One(G)

f(x::Union{Nemo.fpFieldElem, Nemo.FpFieldElem}) = _julia_to_gap(lift(x))*e
f(x::Union{Nemo.fpFieldElem, Nemo.FpFieldElem}) = _GapObj(lift(x))*e
finv(x) = F(ZZRingElem(GAP.Globals.IntFFE(x)))

return MapFromFunc(F, G, f, finv)
Expand Down Expand Up @@ -118,7 +118,7 @@ function _ring_iso_oscar_gap(F::T) where T <: Union{Nemo.fqPolyRepField, Nemo.Fq
end

function __to_gap(h, x::Vector)
return GAP.Globals.GModuleByMats(GAP.julia_to_gap([GAP.julia_to_gap(map(x -> _image(h, x), Matrix(y))) for y in x]), codomain(h))
return GAP.Globals.GModuleByMats(GAP.GapObj([GAP.GapObj(map(x -> _image(h, x), Matrix(y))) for y in x]), codomain(h))
end

function __gap_matrix_to_julia(h, g)
Expand Down
2 changes: 1 addition & 1 deletion src/FieldFactory/CM_recognition.jl
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ function defines_CM_field(F::FieldsTower)
return false, id_hom(K)
end
autsK = F.generators_of_automorphisms
permGC = GAP.julia_to_gap([_perm_to_gap_perm(x) for x in permutations(autsK)])
permGC = GAP.GapObj([_perm_to_gap_perm(x) for x in permutations(autsK)])
perm_group = GAP.Globals.GroupByGenerators(permGC)
Z = GAP.Globals.Center(perm_group)
if isodd(GAP.Globals.Size(Z))
Expand Down
Loading