Quelle timing_radicals.g
Sprache: unbekannt
|
|
############################################################################
##
## timing_radicals.g CRISP Burkhard Höfling
##
## Copyright © 2000 Burkhard Höfling
##
LoadPackage("crisp", "", false);
CRISP_Read("tst/timing_test.g");
CRISP_Read("tst/timing_samples.g");
IsHypercentral := function(G, H)
local C;
repeat
C := H;
H := CommutatorSubgroup(G, H);
until C = H;
return IsTrivial(H);
end;
O235hypercentralWithoutRad := FittingClass( rec(
\in := G -> IsHypercentral(G, Core(G, HallSubgroup(G,[2,3,5])))
));
O235hypercentralWithRad := FittingClass( rec(
\in := G -> IsHypercentral(G, Core(G, HallSubgroup(G,[2,3,5]))),
rad := function(G)
local C, ser, comp, i, j, M, N, F, nat;
C := G;
M := Core(G, HallSubgroup(G,[2,3,5]));
if IsTrivial(M) then
return C;
fi;
comp := ChiefSeriesUnderAction(G, M);
for j in [2..Length(comp)] do
nat:= NaturalHomomorphismByNormalSubgroup(C, comp[j]);
C := PreImage(nat, Centralizer(Image(nat), Image(nat, comp[j-1])));
od;
return C;
end));
tests :=
[ [tmp -> Radical(tmp, O235hypercentralWithoutRad), Size, "in", []],
[tmp -> Radical(tmp, O235hypercentralWithRad), Size, "rad", []],
];
Print("D_{2,3,5}-radical\n");
DoTests(groups, tests);
nilp := FittingClass(rec(\in := IsNilpotent));
fit := function(G)
local pcgs, p, newpcgs, pcser, depths, x;
pcgs := Pcgs(G);
pcser := [];
depths := [];
for p in PrimeDivisors(Size(G)) do
newpcgs := Pcgs(OneInvariantSubgroupMaxWrtNProperty(G, G,
function(U, V, R, data)
return Index(U, V) mod data = 0;
end,
ReturnFail,
p));
for x in newpcgs do
AddPcElementToPcSequence(pcgs, pcser, depths, x);
od;
od;
return GroupOfPcgs(InducedPcgsByPcSequenceNC(
pcgs, pcser));
end;
tests :=
[ [tmp -> Radical(tmp, nilp), Size, "rad", []],
[tmp -> Radical(tmp, NilpotentGroups), Size, "fit", []],
[fit, Size, "newfit", []],
];
Print("nilpotent radical\n");
DoTests(groups, tests);
metanilp := FittingProduct(nilp, nilp);
MetanilpotentGroups := FittingProduct(NilpotentGroups, NilpotentGroups);
tests :=
[ [tmp -> Radical(tmp, metanilp), Size, "rad", []],
[tmp -> Radical(tmp, MetanilpotentGroups), Size, "fit2", []],
];
Print("metanilpotent radical\n");
DoTests(groups, tests);
23groups := PiGroups([2,3]);
23groups2 := FittingClass(rec(\in := MemberFunction(23groups),
char := [2,3]));
tests :=
[ [tmp -> Radical(tmp, 23groups2), Size, "in", []],
[tmp -> Radical(tmp, 23groups), Size, "core", []],
];
Print("[2,3]-radical\n");
DoTests(groups, tests);
2groups := PGroups(2);
2groups2 := FittingClass(rec(\in := MemberFunction(2groups),
char := [2]));
tests :=
[ [tmp -> Radical(tmp, 2groups2), Size, "in", []],
[tmp -> Radical(tmp, 2groups), Size, "core", []],
[tmp -> OneInvariantSubgroupMaxWrtNProperty(tmp, tmp,
function(U, V, R, data)
return Index(U, V) mod 2 = 0;
end,
ReturnFail,
rec()), Size, "Nprop", []],
];
Print("2-radical\n");
DoTests(groups, tests);
5groups := PGroups(5);
5groups5 := FittingClass(rec(\in := MemberFunction(5groups),
char := [5]));
tests :=
[ [tmp -> Radical(tmp, 5groups5), Size, "in", []],
[tmp -> Radical(tmp, 5groups), Size, "core", []],
[tmp -> OneInvariantSubgroupMaxWrtNProperty(tmp, tmp,
function(U, V, R, data)
return Index(U, V) mod 5 = 0;
end,
ReturnFail,
rec()), Size, "Nprop", []],
];
Print("5-radical\n");
DoTests(groups, tests);
nilp23 := Intersection(NilpotentGroups, PiGroups([2,3]));
nilp23_3 := FittingClass(rec(
\in := G -> IsNilpotent(G) and MemberFunction(23groups)(G),
char := [2,3]));
tests :=
[ [tmp -> Radical(tmp, nilp23_3), Size, "in", []],
[tmp -> Radical(tmp, nilp23), Size, "res", []],
];
Print("nilp.[2,3]-residual\n");
DoTests(groups, tests);
############################################################################
##
#E
##
[ Dauer der Verarbeitung: 0.2 Sekunden
(vorverarbeitet)
]
|
2026-04-02
|