Commit 642fcfb3 authored by Gonzalo Tornaría's avatar Gonzalo Tornaría

add option 'no_order' and 'only_order' to ModPrimes

parent 45b5fadd
......@@ -336,14 +336,21 @@ function show_classes(pi, phi)
end function;
function frobenius_classes(pi)
function frobenius_classes(pi : no_order:=false, only_order:=false)
gal2 := Domain(pi);
ans := AssociativeArray();
for c in ConjugacyClasses(gal2) do
x := < CycleStructure(pi(c[3])) @ untally,
CycleStructure(c[3]) @ untally >;
if no_order then
x := CycleStructure(c[3]) @ untally;
elif only_order then
x := < Order(pi(c[3])),
CycleStructure(c[3]) @ untally >;
else
x := < CycleStructure(pi(c[3])) @ untally,
CycleStructure(c[3]) @ untally >;
end if;
if not IsDefined(ans, x) then
ans[x] := [ c[3] ];
......@@ -370,7 +377,8 @@ end intrinsic;
// phi : Gal(R2) --> VG
intrinsic ModPrimes(m :: Modularity, R2 :: FldNum,
proj :: Map, phi :: Map
: debug := false, keep_going := false, PrimeBound := 500) -> []
: debug := false, keep_going := false, PrimeBound := 500,
no_order := false, only_order := false) -> []
{ .. }
//F := AbsoluteField(R2);
//f2 := DefiningPolynomial(F);
......@@ -378,7 +386,7 @@ intrinsic ModPrimes(m :: Modularity, R2 :: FldNum,
ZR2 := MaximalOrder(R2);
discR1 := Discriminant(m`R1);
//tl := show_classes(proj, phi);
fc := frobenius_classes(proj);
fc := frobenius_classes(proj : no_order:=no_order, only_order:=only_order);
//print [<a,tl[a]> : a in Keys(tl)];
/*
if &and [tl[a,1] ne 0 : a in Keys(tl)] then
......@@ -389,8 +397,15 @@ intrinsic ModPrimes(m :: Modularity, R2 :: FldNum,
if discR1 mod p eq 0 then
continue;
end if;
pat := < degrees(Factorization(p*ZR1)),
degrees(Factorization(p*ZR2)) >;
pat1 := degrees(Factorization(p*ZR1));
pat2 := degrees(Factorization(p*ZR2));
if no_order then
pat := pat2;
elif only_order then
pat := < LCM(pat1), pat2 >;
else
pat := < pat1, pat2 >;
end if;
if debug then printf "%o, %o, ", p, pat; end if;
//if not pat in Keys(tl) then
if not pat in Keys(fc) then
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment