Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/GAP/pkg/modisom/gap/grpalg/   (Algebra von RWTH Aachen Version 4.15.1©)  Datei vom 23.8.2024 mit Größe 1 kB image not shown  

Quelle  basis.gi   Sprache: unbekannt

 

BindGlobal( "CoeffsNatBasisOfAug", function(A)
    local d, F, I, i;
    d := Dimension(A);
    F := LeftActingDomain(A);
    I := IdentityMat(d, F){[2..d]};
    for i in [1..d-1] do I[i][1] := -One(F); od;
    return I;
end );

####################################################################################################################
# The pcgs of the return can be used as a pcgs of G. Weights are in the sense of Jennings basis, 
# i.e. in which maximal power of the augmentation ideal they still appear.
# Input: finite p-group
# Output: The pcgs of subsequent quotients of a Jennings series and their weights
BindGlobal("PcgsJenningsSeries", function( G )
local s, b, w, i, g;

     s := JenningsSeries(G);
     b := [];
     w := [];
     for i in [ 1 .. Length(s)-1 ] do
         g := ModuloPcgs(s[i],s[i+1]);
         Append(b,g);
         Append(w, List(g, x -> i));
     od;

     return rec( pcgs := PcgsByPcSequence(FamilyObj(One(G)), b), weights := w );
end);


BindGlobal( "WeightedBasisOfRad", function(A)
    local G, p, n, js, jb, jw, ww, wb, wc, df, i, h;

    # set up
    G := UnderlyingMagma(A);
    p := PrimePGroup(G);
    n := Length(Pcgs(G));

    # get a special basis of G
    js := PcgsJenningsSeries(G);
    jb := js.pcgs;
    jw := js.weights;
    df := List( jb, x -> (x-One(A)) );

    # set up for basis with weights
    wc := Tuples( [ 0 .. p-1 ], n ); RemoveSet( wc, 0*[1 .. n] );
    wc := List(wc, Reversed);
    ww := [];
    wb := [];

    # determine a basis with weights for A
    for i in [1..Length(wc)] do
        ww[i] := Sum( [1..n], x -> wc[i][x]*jw[x] );
        wb[i] := Product( [1..n], x -> df[x]^wc[i][x] );
    od;

    # sort and return
    h := Sortex(ww);
    return rec( basis := Permuted(wb, h),
                weights := ww,
                exps := Permuted(wc, h) );
end );

BindGlobal( "CoeffsWeightedBasisOfRad", function(A)
    local B;
    B := WeightedBasisOfRad(A);
    B.basis := List(B.basis, x -> Coefficients(Basis(A),x));
    return B;
end );



[ Dauer der Verarbeitung: 0.26 Sekunden  (vorverarbeitet)  ]