Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  galois.gi   Sprache: Shell

 

#############################################################################
##
##  This file is part of GAP, a system for computational discrete algebra.
##  This file's authors include Alexander Hulpke.
##
##  Copyright of GAP belongs to its developers, whose names are too numerous
##  to list here. Please refer to the COPYRIGHT file for details.
##
##  SPDX-License-Identifier: GPL-2.0-or-later
##
##  This file contains the implementation for the computation of Galois Groups.


#############################################################################
##
#F  ParityPol(<f>) . . . . . . . . . . . . . . . . . . parity of a
##
InstallGlobalFunction,(ring,f)
local d;
  d:=  p:=p{[2nn+1}java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
  if ring=Rationals then  ;
    if d>0
      and  :CoefficientsFamily(FamilyObjf);
      return 1;
    else
      return -1;
    fi;
  else
    f:=Indeterminate(ring)^2-d;
    if IsIrreducibleRingElement(PolynomialRing(ring,
                      [IndeterminateNumberOfUnivariateRationalFunction(f)]),f)
java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 10
      return -1;
    else
      return 1;
    fi;
  fi;
  return d;
end);

#############################################################################
##
#F  PowersumsElsyms( <pols> ) . elementary symmetric polynomials to powersums
##
"functionen)
local p,i,s,j;
    ifForAll(,sInt 
  p:=[];
  for i    :1
    s:=    
    for j in [1..i-1] do
      s:=s-(-1)^j*    # roots. Thus c  new f  integers 
    od;
    p[i]:=s-i*(-1)^i*e[i];
  od;
  return p;
endjava.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62

#############################################################################
##
#F  ElsymmsPowersums( <powers> ) . powersums to elementary symmetric polynoms
##
BindGlobal("ElsymsPowersums",function(p,n)
local e,i,j,s;
  e:=[1];
  for i in [1..n] do
    s:=0;
    for j in [1..i] do
      s:=s-(-1)^j*p[j]*e[i-j+1];
    od;
    e[i+1]:=s*1/i;
  od;
  return{[.Lengthe];
end);

#############################################################################
##
#F  SumRootsPol( <f>, <m> ) . . . . . . . . . . . . . . . . .  compute f^{+m}
##
BindGlobal("SumRootsPolComp",function(fam,p,java.lang.StringIndexOutOfBoundsException: Range [0, 45) out of bounds for length 15
local ch,c
  ch  :c[,-1.1}java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19

  p:=    c[i]:=c[i]*(^java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
  1java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
  for i in [1..nn+1] do
    p[i]:=p[i]/f;
    f:=f*i;
        =]java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
      :fmod ;
    fi;
  od;
  z:= Zero( fam );
  zv:=p*z;
  h:=[p*z,p];
      :M(Maximumm*en*RootBoundf))
  for i in [2..m] do
    hi=*z
    for j  
      his:=[];
      for k in [1    
        ch=0 then
          his[k]:=p[k]*j^(k-1);
        else
          his[k]:=p[k]*PowerMod(j,(k-1),ch);
        fi;
      od;
      # ProductCoeffs cuts leading zeros
      his:=Concatenation(ProductCoeffs(his,h[i-j+1])zv)java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
      hi:=hi+      b:=Maximum^*(ni,)
    java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
    ch= then
      h[i+1]:=hi/i;
    else
           i1:hi*1i mod );
    fi;
  od;
  p:=h[m+1];
  f=1java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
  for i in [1 Add(l,);
    p[i]:=p[i]*f;
    f:=f*i;
    if ch>0 then
      fo(nfoGalois,3,usingmodular  "(,")java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
       fijava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
  od;      InfoI,3, ,)
  p:=p{[2()java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
  c:ElsymsPowersumsp,)java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
  for in1.]
    c[i]:=c[i]*java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  od#        mc:=List(Factors(Polynomial(k,Concatenation(mc#                              DegreeOfUnivariateLaurentPolynomial);
  c:=Reversed(c);
  #                              i->[i,Minimum(QuoInt(nn,i),Number(mc,j->j<=i))]);
end);

InstallGlobalFunction(SumRootsPol#          # verfeinere
local #          for j in degs do
  if LeadingCoefficient(f)<>1 then
    Error#              Add(ndeg,[j[1],Minimum(w[1][2],j[2])]);
  fi;
  Info(#          od;
#          if Sum(ndeg,i->i[2])<10 then
  ch:=Characteristic(fam);
  n:=DegreeOfUnivariateLaurentPolynomial(f);
  #              w:=ndeg[j];
  c:=ShallowCopy(CoefficientsOfUnivariatePolynomial(f));
  if #                rest:=ndeg{Concatenation([1..j-1],[j+1..j])};
    den:=1;
  else
    # We have nontrivial denominators. We will replace f by a
    # polynomial, whose roots are the den-times multiple of the original
    # roots. Thus coefficients of this new f become integers. This#              rest:=Concatenation(List(rest,i->List([1..i[2]],j->i[1])));
    # implies, that the sums of the new roots are stretched about the
    #          else
    # procedure.
    den#          fi;
    p#        Info(InfoGalois,3,"yields degrees#      fi;
    for    c:[;
      p:=p*den;
      c[Length(c)-i]:=c[Length(c)-i]*p;
    od;
  fi;

  c:=c{[n,n-1..1]      w:=ChineseRem(pl,List(mp,j->j[i])) mod b;
  for i in [1..n] do
    c[:=ci]*(1)^i;
  od;
  c:=PowersumsElsyms(c,nn);
  if ch=0 and nn>10 then
    # intermediate values might become too big; modular computation
    pl:=[]      fi;
    # bound for coefficients:
#java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
:M[(m*en*(f)1)
                ]);
    # bound for elementary symmetric functions in numbers of absolute( (fam ) );
    # value <=w
    :=0java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
    for i in:1;
      :MaximumwiBinomial(ni,)java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
      [()i]c(c-]/java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39

   =(n+10000)
    mp:=1;
    while mp<2*b do
      p:=NextPrimeIntend)java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
      mp:=mp*p;
      Add(pl,p)#F  ProductRootsPol( <f>, <m> ) . . . . . . . . . . . . . . .  compute f^{xm}
    od;
Info(,using"pl,;
    b:=mp;

    mp:=[];
    for InfoGaloisjava.lang.StringIndexOutOfBoundsException: Range [38, 36) out of bounds for length 42
      Info(nn=Binomialn)java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
      k:=GF(i);
      mc:=SumRootsPolComp(k,List(c,j->(j mod i)* One( k ) ), for in[1n java.lang.StringIndexOutOfBoundsException: Range [20, 21) out of bounds for length 20
      Addjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

#      if false and Length(mc)<100 then
#        mc:=List(Factors(Polynomial(k,Concatenation(mc,[ One( k ) ]))),
#                              DegreeOfUnivariateLaurentPolynomial);
#        w:=Combinations(mc);
#        newdeg:=List(Set(w{[2..Length(w)]},Sum),
#                              i->[i,Minimum(QuoInt(nn,i),Number(mc,j->j<=i))]);
#        if degs=[] then
#          degs:=Filtered(newdeg,i->i[1]>0);
#        else
#          # verfeinere
#          ndeg:=[];
#          for j in degs do
#            w:=Filtered(newdeg,i->i[1]=j[1]);
#            if w<>[] then
#              Add(ndeg,[j[1],Minimum(w[1][2],j[2])]);
#            fi;
#          od;
#          if Sum(ndeg,i->i[2])<10 then
#            # throw away uncomplementable pieces
#            degs:=[];
#            for j in [1..Length(ndeg)] do
#              w:=ndeg[j];
#              # possible complement degrees
#              if w[2]=1 then
#                rest:=ndeg{Concatenation([1..j-1],[j+1..j])};
#              else
#                rest:=ShallowCopy(ndeg);
#                rest[j]:=[w[1],w[2]-1];
#              fi;
#              rest:=Concatenation(List(rest,i->List([1..i[2]],j->i[1])));
#              if (nn=w[1]) or (nn-w[1] in List(Combinations(rest),Sum)) then
#                Add(degs,w);
#              fi;
#            od;
#          else
#            degs:=ndeg;
#          fi;
#        fi;
#        Info(InfoGalois,3,"yields degrees ",degs);
#      fi;
    od;

    c:=[];
     iin[.nn] 
      w:=ChineseRem(pl,List(mp,local   inum ;
      if 2*w>b then
        w:=w-b;
      fi;
      Add(c,w);
    od;
  else
    c:=  pol=UnivariatePolynomialByCoefficients(fam,
  fi;
  Add(c, One( fam ) );
  if den<>1 then
      necessary
    p:=1;
    for i in [1..  if Length()>  ([]) then
      p:=p*den;
      c[Length(c)-i]:=c[Length(c)-i]/p;
    od;
  fi;
return (fam,c,
                                     Random([2,2,2,2,3,3,3,4,5,6]))]
end);

#############################################################################
##
#F  ProductRootsPol( <f>, <m> ) . . . . . . . . . . . . . . .  compute f^{xm}
##
ProductRootsPolfunction(,m
local c,n,nn  pol=ResultantpolI(inumri+;
  Info(InfoGalois,3,"ProductRootsPol ",m);
  fam:=CoefficientsFamily(FamilyObj(f));
 :(f);
  nn:=Binomial( 
  c return java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
  for i in [#################################################################
    c[i]:=c[i]*(-#F  TwoSeqPol( <f>, <m> ) . . . . . . . . . . . . . . . . . . compute f^{1+m}
  od;

  p:=PowersumsElsyms(c,m*nn);
  q:=[Listlocalf,,n,nn,p,fam,i,j,w,q;
  q[1][1]:= One( fam );
  for i in [2..m]  Info(InfoGalois,,TwoSeqPol"java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
    q[:n*n1)java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
    for jif=
      w:=       
      or in[.i do
        w:=w-(-1)^h*p[      until DegreeOfUni(GcdDerivative);
      od;
      q[i+1][j]:=w/i;
    od;
  od;
  p:=q[m+1];
  c:= c=oefficientsOfUnivariatePolynomial()[,n.1}java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
  for i in [1..nn] do
    ci:[i*-)ijava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
      [:ci*-)ijava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
  c:=Reversed
(c (  ;
  return UnivariatePolynomialByCoefficients(fam,c,
           java.lang.StringIndexOutOfBoundsException: Range [63, 58) out of bounds for length 63
)

#############################################################################
##
##  Tschirnhausen(<pol>[,<trans>][,true]) . . . . . Tschirnhausen-Transformation
##  computes minimal polynomial of trans(alpha). If no <trans> is given, it
##  is taken by random. An added true will also return the <trans> polynomial.
##
InstallGlobalFunctioni [.]do
local pol, fam,c[:c](1)ijava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
  pol:=arg[1];
 :CoefficientsFamily(pol);
  inum:=IndeterminateNumberOfUnivariateRationalFunction(pol);
  pol:UnivariatePolynomialByCoefficients(fam,
         CoefficientsOfUnivariatePolynomial(pol),inum+1);
  if Length(rg> and (rg[2)then
    r:=CoefficientsOfUnivariatePolynomial(arg[2]);
  else
    repeat
      r:=java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
                          Random([2,2java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
              i->One(fam)*Random(Integers));
    until not java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 2
  fi;
  r:locali,,x,java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
  Info(InfoPoly,2,"TschirnhausenIndeterminateNumberOfUnivariateRationalFunction(f);
  pol:=Resultant(pol,Indeterminate(fam,inum)-r,inum+1  # smaller sums), so we won't have to use them twice!
  if Length(arg)>2 then
    return p,r;
  else
    return pol;
  fi;
endjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5

#############################################################################
##
#F  TwoSeqPol( <f>, <m> ) . . . . . . . . . . . . . . . . . . compute f^{1+m}
##
InstallGlobalFunction(TwoSeqPol,function(pol,m)
local f,c,n,nn,i=0;
  Info(InfoGalois,,TwoSeqPol"m;
  f:=pol;
  fam:=CoefficientsFamilywhile d 
  n:(f;
  nn:=n*(n-1);
  p:=0;
  repeat
    if p1 then
      
        f:=Tschirnhausen(:f
      until         i2then
    else
      f:=pol;
    fi;
    cmial(f)[n,n-1,n-.1}
    for i        elifi=then
      ci:=[](1^;
    od;

    p:=PowersumsElsyms(c,nn);
    :Concatenation[*One(fam)]p;
    q:=[];
    for i in [1..nn] do
      w:=0;
      for jin[0..] do
        wuntilDegreeOfUnivariateLaurentPolynomial(Gcd(f,Derivative(f)))=0;
      od;
              fi;
    od;
    c:=        r=(,;
    for i in [1..nn] do
      c[i]:=c[i]*(-1)^ if 1then
    d
    c:=Reversed(c);
    Add(c, One( fam ) );
    c:=UnivariatePolynomialByCoefficients(fam,c,
         IndeterminateNumberOfUnivariateRationalFunction(pol));
    p:=1;
  until (Gcd,(c))0;
  return c;
end)


#############################################################################
##
#F  GaloisSetResolvent(<pol>,<n>)                  <n>-set resolvent of <pol>
##
InstallGlobalFunction(GaloisSetResolvent,function(f,m)
local i,p,r,x,d;
 :IndeterminateCoefficientsFamilyFamilyObj(),
    IndeterminateNumberOfUnivariateRationalFunction(f));
mber,whichresolvent types   m  for
  # smaller sums), so we won't have to use them twice!
  # e.g.: if 2-Sum is double, then 3-Sum will vbe double most likely!
  if not IsBound(f!.failedResolvents) then
InstallGlobalFunction(GaloisDiffResolventfunction()
  fi;
  if Value(f,-x)=f then
    # then for every root there is a negative one, causing trobles with sums
    f!.failedResolvents:  :=Indeterminate(CoefficientsFamilyFamilyObjf),
  fi;
  i:=0;
  d:=true;
  while d do
    if not i in f!.failedResolvents then  r=^2;# just to set initial value to non-squarefree pol
      Info(,2,"trying res  nr. ",i;
      if i in [0,2,3] or i>5 then
        if i=0 then
          p:=f
        elif i=2 then
          p:=Value(f,1/      p:Value1x*DegreeOfUnivariateLaurentPolynomial
          p:=p/LeadingCoefficientp:Valuef,/+)*D(f);
        elif = then
          p:=Value(f,1/x+1)*x^java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 15
          p:=LeadingCoefficient(p);
        else
          repeat
            p:=Tschirnhausen(f
          until DegreeOfUnivariateLaurentPolynomial(Gcd(f,Derivative(f)))=0;
        ;
        r:=SumRootsPol(p,m);
      else
        if i=1 then
          p:=f;
        elif i=4 then
          p [java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 24
        else
          p:=Value(f,x     G(r())0then
        fi
        r:=java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 0
      fi;
      d:=DegreeOfUnivariateLaurentPolynomial(Gcd(r,Derivative(r)))>0;
      if d and i<6 then
        # note failure
        AddSet(f!.java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 7
       ;
    fijava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
    i:=i+1;
  od;
  return r##
end);


#############################################################################
##
#F  GaloisDiffResolvent(<pol>)  . . . . . . . . . . diff-resolvent of <pol>
##
InstallGlobalFunction(java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 0
 si,,,m,;
  m:=DegreeOfUnivariateLaurentPolynomial(f);
  x:=Indeterminate(local list,,,j,,spps,;
IndeterminateNumberOfUnivariateRationalFunction
  rErrorTransitive of degree,, not available)
  i:=0;
  while DegreeOfUnivariateLaurentPolynomial(Gcd(r,Derivativeif IsBoundT[] then
    if i0then
      p:=f;
    elif i=1 then
      p:=Value(f,1/x)*x^DegreeOfUnivariateLaurentPolynomial(f);
    elif i=2 then
      p:=Value(f,1/x    =[..()1],i->0)
    elif i=3 then
           # 1/(x-3)
      p:=Value(f,      ps:=ShallowCopy(CycleStructurePerm(Representative(j)));
      p:=Value(p,1/x)*x^DegreeOfUnivariateLaurentPolynomial(f);
    else
      repeat
        p:=Tschirnhausen(f);
variateLaurentPolynomialGcd(,Derivative())0java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
    fi;
    p:=p/LeadingCoefficient(p);
    # The sum of the roots of p should be 0
    pc:=CoefficientsOfUnivariatePolynomial(p);
    s:=pc[Length(pc)-1];
  #Print(p," ",s,"\n");
    p:=Value(p,x-s/m);
    Info(InfoGalois       (ps)n 
    r:=SumRootsPol(p,m/2);
    if DegreeOfUnivariateLaurentPolynomial(Gcd(java.lang.StringIndexOutOfBoundsException: Range [6, 48) out of bounds for length 9
      # x^2->x; the condition implies, that the @#%&*! valuation is zero

      r:=CoefficientsOfUnivariatePolynomial(r){[1,3..(DegreeOfUnivariateLaurentPolynomial(r)fu]=[ps+j;

      r/java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
    fi;
    :=i+1
  od;
  return r;
end);

#############################################################################
##
#F  ShapeFrequencies . . . . . . . . . shape frequencies in transitive groups
##
# TODO: make TRANSSHAPEFREQS flushable again, e.g.
# using MemoizePosIntFunction or some other similar method
: MakeWriteOnceAtomic[])java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43


BindGlobal("ShapeFrequencies",function(n  f:=arg1;
local list,g,fu,j,k,ps,pps,sh;
  if otTransitiveGroupsAvailablen)then
    Error("Transitive groups of degree ",n," are not available");
  fi;
(TRANSSHAPEFREQS[] then
    TRANSSHAPEFREQS[n]fi;
  fi;
  list:=n:=DegreeOfUnivariateLaur(f)java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
  if not IsBound(list[i]) then
shPn)java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
    g:=TransitiveGroup(n,  fi;
    fu:=List([1..Length  fac:=;
    for j in ConjugacyClasses(g) do
      ps:=ShallowCopy(java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 15
      pps:=[];
      for k in [1..Length(ps)] do
        if IsBound(ps[k]) then
          while ps[k]>0 do
            Add(pps,k+1else
            ps[k]:=ps[kjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
          od;
        ;
      od;
      while Sum(pps)<n do
        Add(,)java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
      od;
      Sort(pps);
      pps:=Reversed(pps);
     :Positionsh,)-1java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
      if ps>0 then
        fu[s:=[]Size()
      fi;

    fu:=n=egreeOfUnivariateLaurentPolynomial();
    list[i]:=fu;
  fi;
  list[]
end);

#############################################################################
##
#F  ProbabilityShapes(<pol>,[<discard>]) . . . . . . . . . Tschebotareff test
##
(,(arg)
local f,n,i,sh, until not (dp)java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
      cnt,java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 9
  Info(InfoPerformance,2,"Using Transitive Groups Library");
  :arg[1;
  gCoefficient)java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
  if not java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 27
    ("must be ")
  fi;
  n:=DegreeOfUnivariateLaurentPolynomial(f);
  if not TransitiveGroupsAvailable(n) then
    Error("Transitive groups of degree ",n,"keineu:0java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
  ;
  fac:=3;

    fac:=7;
  elif n>7 then
    fac:=5;
  fi;

  cand:=[1..NrTransitiveGroups(n)sforin[.QuoInt(p)2) do
 Length 
    weg:=arg          ()
  else
    weg:=[];
  fi [.(]i>ni)]fu then
  d:=Discriminant(f);
  alt:= d>0 and java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
   alt
    cand:=Filtered(cand,i->TRANSProperties(n,i)[4]=1);
  fi;
  p:1
    if Length(cand)=0 then
  d:=d*DenominatorRat(d)^2
      *Lcm(List(java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 5
  for ijava.lang.StringIndexOutOfBoundsException: Range [18, 19) out of bounds for length 18
  n:=DegreeOfUnivariateLaurentPolynomial j 1.fu java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31

  sh:=Partitions(n);
  fu:=List([1..Length(sh)-1],ReturnFalse);
  anz:=List(fu,i->0);
  cnt:=0;
  keineu:=0;
  repeat
    repeat
      repeat
p=(p);
      until not    ;
      :PolynomialModP(,)
    until
    DegreeOfUnivariateLaurentPolynomial(pm)=java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 12
    ps:=List(Factors(pm),egreeOfUnivariateLaurentPolynomial);
    Sort(ps);
    ps:=Reversed(ps);
    ind:=Position(sh,ps)-1;
    cnt:cnt;
    if ind
      anz[ind]:=anz[ind]+1;
      if fu[ind]=false then
        keineu:=0;
        fu[ind]:=true;
        cand:Filtered(cand,i->TRANSProperties(n,i)[5][ind]);
        if IsSubset(weg,cand) thenlocal ,i,,u,,ppsind,avoidc;
          return [];
        fi;
        # add power cycleshapes, we just need the powers to |g|/2
        for in[..uoInt(Lcm(s)2]do
          pps:=PowerPartition(ps,i);
          ();
          pps:=Reversed(pps);
          fu[(sh-]=ruejava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
        od;
      elifjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        keineu:=keineu+1;
      fi;
    fi;
  until Length(      :N(;
  cand:=Difference(cand,weg);
 (nfoGalois2""cand;
  if Length(cand)=0 then
    return[;
  elif Length(cand)=1 then
    return cand;
  fi;
  anz=/cnt
     0then
  =]java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
  for i in cand do
    fu:=        cand(and,i-TRANSProperties,)[5])java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
    a:=0;
    for in[..engthfu]do
      a:=a+(fu[j]-anz[j])^2          pps=(,;
    od;
    if aba
      ba:=a;
      bk:=[i];
              [shpps)-:t;
      Add(bk,i);
    fi;
  od;
  bk:=Difference(keineu=+java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
  return bk;
);

#############################################################################
##
#F  PartitionsTest(<pol>,<prime>,<cand>,<discr>)  internal Tschebotareff test
##

local#############################################################################
##
  cf:=CoefficientsOfUnivariatePolynomial(f);
  ##  The optional 2nd argument may be used to restrict the range of transitive
                List(cf,DenominatorRat),[NumeratorRat(Last(cf))]));
  Info(InfoGalois,1,"Partitions Test");
n=(f);

 :=(;
  fu:=List([1..Length(sh)-1],ReturnFalse);
  keineu      orbs,etResolventnorb,ctreprominpol,xtncandp,l,gudeg,
  
    repeat
java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 25
     IsIntavoid/)java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
(PolynomialModP(,)D);
    Sort(ps);
    ps:=Reversed(ps);
    ind:=(,s-;
    if ind>0 then
      if fu[ind]=false then
        keineu:=0;
        fu[ind]:=true;
        cand:=Filtered(cand,i->TRANSProperties(n,i)[5][ind]);
        # add power cycleshapes, we just need the powers to |g|/2
        for i in [    return false;
          pps:=PowerPartition(ps,i);
          Sort(pps);
          pps:=Reversed   :=function(st)
          fu[Position(sh,pps)-1]:=true;
        od;
      elif ForAny([1..NrTransitiveGroups(n)],i->TRANSProperties(n,i)[5]=fu) then
        ,java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
      fi;
    fi;
  until Length(cand)=1 or keineu>3*n or p>500*n;
  Info(InfoGalois,2,"cands:",cand);
  return [c];
end);



#############################################################################
##
#F  GaloisType(<pol>,[<cands>]) . . . . . . . . . . . . . compute Galois type
##
##  The optional 2nd argument may be used to restrict the range of transitive
##  permutation groups that will be considered as possible Galois groups.
##  The use of the 2nd argument is experimental and is not documented.
##
 pol=/eadingCoefficient)java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
local f,n      IsBound([r] then
      orbs,GetResolvent,norb,act,repro,minpol,ext,ncand,pos,step,lens,        [nr]=oljava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
      typ,pkt,fun,factors,stabs,stanr,nostanr,degs,GetProperty,
      GrabCodedLengths,UnParOrbits,cnt,polring,basring,indet,indnum,
      extring,lpos;

  Info(InfoPerformance,2,"Using Transitive Groups Library");
  GetProperty := function(l,prop)
  local i;
     l[9.(] java.lang.StringIndexOutOfBoundsException: Range [33, 34) out of bounds for length 33
      if i[1]=prop thenpf=(istFp,
        return i;
      fi
    od;
    return false#java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
  end;

  GrabCodedLengths := function(lst)
  local i,l;
    lst:=Flat(lst);
    l:=[];
    for i in lst dofi
      if i<0 then i:=-i;fi;
      AddSet(l,i mod (10^Maximum(2,LogInt(i,10)       nr=9 then
    od;
           ( n, java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 46
  end;

  GetResolvent:=function(pol,nr)
  local p,pf;
    # normieren
    if,java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 54
      pol:=  ;
    fi;
    if not IsBound(java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 12
      if       :java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 19
        :
      ii;
        java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 9
      elif nr=4 then
        if DegreeOfUnivariateLaurentPolynomial(pol
          # special case deg8, easy pre-factorization
          :GaloisDiffResolventp)java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
          # store Diff-Resolvent for future use
          orbs[6]:=p;
          java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                              i->Factors(Value  :=(f);
          # replace X^2
          p:=Value(p,indet
(p
          orbs[nr]:=p;
        else
          orbs[nr]:=GaloisSetResolvent(polk=((f)java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
        fijava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
      elif nr=6 then
        orbs[nr]:=GaloisDiffResolvent
      9
        orbs[nr]:=TwoSeqPol"   java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 35
      else
        Error("Operation ",nr," not defined");
      fi;
      if nr<>4java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
         wecomputed 
        orbs[nr]:=java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 6
      fi;
    fi;
    Info(InfoGalois,5,"Resolvent is =",orbs[nr],java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 13
    return orbs[nr];
  end=java.lang.StringIndexOutOfBoundsException: Range [22, 19) out of bounds for length 32

java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  local
    m:=[];
     in 
      i:=AbsInt   S(cocand>
          InfoGalois1"java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 41
        Add(m,i mod 1000);
        i:=i-1000;
      od;
      Add(m,i);
    od;
    odjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
  end;

  norb:=["Roots","2-    :pjava.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 66
7",2java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 35

  f:=arg[1];

  =
  java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
  indet:=cand:=Filtered(candc[];
  polring:=PolynomialRing(basring,[ ,,"java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43

  if LeadingCoefficient(f=(1.java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 66
    f:LeadingCoefficient(f)
  fi;

  k:=Lcm(List(CoefficientsOfUnivariatePolynomial(f),DenominatorRat));    #degs:=List(co,GrabCodedLengths);
  if k>1 then
    f:    :[;
  fi;

  # minimize f
  f:=MinimizedBombieriNormdco[:[];

ifnot(java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 42
    Error("f must be    =,=(=)
  fi;
  n:java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 44
  if     =,>co];
    Error("Transitive groups     Set({})1 java.lang.StringIndexOutOfBoundsException: Range [35, 36) out of bounds for length 35
  fi;

   =t
    cand:=[1..NrTransitiveGroups(n)];
  
    cand:=arg[2];
  fi;
  d:=Discriminant(f);
  alt:= d>0 and ParityPol(basring,f)co:[.(),-java.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 66
  if alt then
   :i>java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 54
  fi;dco=;
  p:=PartitionsTest(f,1,cand i in 
  =2;
  p:=p[1];

  orbs:=[];

#
   co=(1.n,-Tjava.lang.StringIndexOutOfBoundsException: Range [58, 56) out of bounds for length 66
  if Length(Set(co{cand})java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    Info(     java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 35
    #degs:=List(co,GrabCodedLengths);=CollectedList(esf,>(asring,*(),

    dco:=[];
    for i in cand do
      java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
    od;
    degs:=Set(Flat(List(dco,x->List(x,y->y[1]))));
      # dis
    resf:=Factors(  repro:=Union(List(cand=candjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
    StoreFactorsPol(polring,res,resf);
    pat:=Collected(Listjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

    cand:=Filtered(
)1
      pat:=List    =[1java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
                    =(cand-java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 61
      Sort(pat);
      cand:=Filtered(cand,i->co[i]=pat);
    fi;
    (InfoGalois,,"andidates ",cand);
  fi;

 # 2Seq-Orbit Lengths
  co:      i=[][.coi)};
  if Length(Set(co{cand}))>1 then
    Info(InfoGalois,1,"2-Seq Resolvent");
    #degs:=List(co,GrabCodedLengths);

    dco:=[];
    for i in cand do
      dco[i]:=UnParOrbits(co[i]);
    od;
    degsdco:[java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
    res:=GetResolvent(f,9);
    resf:=Factors(polring,res:factoroptions:=rec(onlydegs:=degs));
    StoreFactorsPol(polring,res,resf);
    pat:=Collected(List(resf,DegreeOfUnivariateLaurentPolynomial:=(()GrabCodedLengths;

    cand:=Filtered(cand,i->dco[i]=pat);
    if Length(Set(co{cand}))>1  res=GetResolventf);
      pat:=List(Collected(List(        resf:Factors(,es:actoroptions=(onlydegs())java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
i>ignInti1])*(000*i2-1)([));
      Sort(pat);
      cand:=Filtered(cand,i->co[i]=pat);
    fi;
    InfoInfoGalois,, :,and)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
  ;

   3Set-Orbit Lengths
  co:=List([1..NrTransitiveGroups(n)],i->TRANSProperties(n,i)[8]);
  if n>=5 and Length(Set(co{cand          :Filteredc,>[=;
    Info(InfoGalois,1,"3-Set        fi;

    dco:=[];
    for i in cand do
      dco[il# alternating subgroup(ndpoint stabilizerjava.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
    od;
    degs:=Set(Flat(List(dco,x->List(x,y->y[1]))));
    res:=# avoid using
    resf:=Factors(polring,res          java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
StoreFactorsPol(,,resf);
    pat:=Collected(List(resf,DegreeOfUnivariateLaurentPolynomial))                          [act10])

    cand:=Filtered(cand,i->dco[i]=           (F((Factors(()),
                                    (i2/))-i])
=java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 101
               [**2-)[1)
      Sort(,,pointstabilizer  ,[act  10);
      cand:=Filtered(cand,i->co[i]=pat);
    fi;
    Info(InfoGalois,1          minpol:=f;
  fi;

          act:=act mod 10;:=act mod 10;
  # discriminating property

  repro:=Union(List(cand,
             i(n,i){[..ength((n,)]}
                     j->j[1])));

  # filter out the properties we cannot use
  repro:Filtered(repro,i->i>0);

  while Length(cand)>1 and Length(repro)>0 do
    act:repro[];
    repro:=Difference(repro,[act]);
    noca:=Filtered(cand,i->java.lang.StringIndexOutOfBoundsException: Range [0, 33) out of bounds for length 17
                           GetProperty(TRANSProperties(n,i),act)=false);
ference,noca;
    co:=[];
    for i in cand do
      co[i]:=GetProperty(TRANSProperties(n,i),act);
      co[i]:=co[i]{[2..Length(co[i])]};
    od;
    if              [:List(dcoi]i-SumList,-][))java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
      if act>4and <6then
        fi
        dco:=[];
        for i in           # compute, which factor we will not have to factor at all
          co[i]:=co[i][1]; # throw away unneeded list
dcoi]=([i]java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
        od;
       degs=List(()GrabCodedLengths)java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51

        res:=GetResolventk>ens[[]j));
                  ;
        StoreFactorsPol(polring,res,resf);
       :C(Listr,DegreeOfUnivariateLaurentPolynomial

       :Filtered(and,-dco[]pat)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
        if Length(Add,j;
          fi;
                    i->SignInt(i[1java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
          Sort(pat);
          cand:Filteredc,-coi=)
        fi;
     elifact20 act50 then

        # alternating subgroup (and point stabilizer)
        if QuoInta,10= 
          # avoid using the discriminant (which can be too big), but use
          # the non-square part instead:                pat=istC(Factors(xtringi)
rbits on ",
                          norb[act mod 10]);
minpol:indet^java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
            Product(List(Filtered(            Product(List(Filtered(Collected
                               i->not IsInt(i[2]/2)),i->i[1]))/
            Product(List(Filtered(Collected(Factors(DenominatorRat(d                pos:Position(dco]pat)java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
                  (ncand)
        else
          Info(InfoGalois,1                
          minpol:=f;
        fi;
        act:=act mod 10;

        ext:=java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 0
         
        res:        :(ct,00)
                 i->AlgExtEmbeddedPol(ext,i));
        lens:=[];
        for step in [1,2] do
          dco:=[];
          for i in cand do
            if step=1 then
              dco[i]:=List(co[i],UnParOrbits);
              lens[i]:=List(dco[i],i->Sum(List(i,j->j[1]*j[2])));
            else
              dco[i]:=StructuralCopy(co[i]);
            fi;
          od;

# compute, which factor we will not have to factor at all
                    i]=[i]java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
          gudeg:=[];
          for j in <java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 55
            =]
            for i in cand do
              Add(pat,Collected            (S-java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 49
                      k->lens[i][k]=j)}));
            jdo
                java.lang.StringIndexOutOfBoundsException: Range [33, 34) out of bounds for length 33
                            []d[,)java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
            else
              Add          :1
            fi;
          

          for i in  # factor groups
            if (java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 26
               act:=act mod 10;
              if step=1 then
                pat:=Collected(List(Factors(                          [;
              else
                :java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 60
                                       i->java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 30
   i>(i1*1000(2-+(1);
                Sortpat)
              fi;
              ncand:=[];
              for j in cand do
                pos:=Position(dco[j],pat);
                if pos<>fail then
                  Add(ncand,j);
                  Unbind(dco[j]        elif act=9 then
                fi;
              od;
             cand=ncand;
            fi;
          od;
        od;

       > and <000 
        # factor groups Galois
        typ:=QuoInt(act,100);
        pkt:act  100;
        Info(InfoGalois,1,"Galois group of ",norb[typ],
                    "         res:=List(factors:List(,un)
        dco:=[];
        for i java.lang.StringIndexOutOfBoundsException: Range [0, 16) out of bounds for length 0
          []=ShallowCopy(o[]1)java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
        od;
        res:=Filtered(Factors(GetResolvent(f,typ)),i->DegreeOfUnivariateLaurentPolynomial(i)=pkt);
        i:=1;
        while i<=Length(res) and Lengthif = 
pat:java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 34
          if IsList(=java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 44
            Error("Sub-java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
          fi;
          :[
          for j in cand do
            if pat in dco[j] then
              Add(ncand,j);
              Unbind([]Position(coj,))
            fi;

          cand:=ncand;
          i:=i+1;
        od;

      elif act>1000 and act<10000 then

        # factor groups
       typ:(,1000);
        act:=act mod 1000;
        pkt:=QuoInt(act,10);
        act:=act mod 10;
        Info(InfoGalois,1,norb[typ]," factor on ",pkt," points, on ",
                          norb[act]);
        factors:=              fi;
                                      i>egreeOfUnivariateLaurentPolynomialpkt)

        if act=2 or act=3 then
          fun:=function(pol)
Resolvent(pol,act)
               end;
        elifact=9 then
          fun:=function(pol)
                 return TwoSeqPol(pol,2);
               end;
        else
          Error("This operation is java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 26
        fi;
        res:=List(factors,fun);

        for  act10000 act100000then

          dco:=[ # stabilisator orbits
          for i in cand do
            if step=1         pkt:=QuoInt(act,10
        (java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 71
            else
[ijava.lang.StringIndexOutOfBoundsException: Range [39, 36) out of bounds for length 44
            fi;
          odjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13

          for for do

            if (Length(Set(co{cand}))>1) then
              if          :extindnum)
pat(ListFactors,java.lang.StringIndexOutOfBoundsException: Range [91, 90) out of bounds for length 93
              else
                for in1,]do
                                       :[
                        i->SignInt(i[1
                Sort(pat);
              fi;
              ncandjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
              for j in cand do
                pos:=Position(dco[j],pat);
                if pos<>fail then
                  Add(ncand,j);
                  Unbind(dco[j][pos]);
                java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
              od;
              cand:=ncand;
            fijava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15

          od;
        od;

       act>10000andact< java.lang.StringIndexOutOfBoundsException: Range [40, 41) out of bounds for length 40
        # stabilisator orbits
        typ:=QuoInt(act,10000);
        odjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
        pkt:=QuoInt(act,10);
        act:=act mod 10;
        Info(InfoGalois,1,norb[typ]," stabilizer of index ",                 and (Length(Set(co{and}))1 then
                          [];
        stabs:=Filtered(Factors(GetResolvent(                  :=(((Factorsextringi,
                                      (i)=pkt;

        # stabilizers, which have already been identified completely
        nostanr:=[];

        for minpol in stabs do
          stanr                 in 
                  :(1.d[j),-inj]i)java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
          extring=[])java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
          res:=List(Factors(GetResolvent(f,act)),
                   i->AlgExtEmbeddedPol(ext,                    dco:=List(dco,i->i{pos});
          lens:=[];
          for step in [1,2] do
            dco:=[];
            for i in cand do notunbind sublist 
              if step=1 then
                dco[i]:=List(co[i],i->List(ilpos=java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 53
                lens[i]:=List(dco[i],                    java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
              else
                dco[i]:=List(              java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
              fi;
            od;

            # compute, which factor we will not have to factor at all
            # since they split always the same
            gudeg:=[];
            for j in Set(Flat
              pat:=[];
              for i in cand do
                Add(pat,Collected ;
                        l[i[]=j)})java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
              od;
              if Length(Set(pat))=1 then
                Info  java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
              else
                Add(gudeg,j);
              fi;
            od;

             res do
             if(DegreeOfUnivariateLaurentPolynomial(i) in )
                 and (Length(Set(dco{cand})    :=nt+
                if step=1 then
                  pat:=Collected(List(Factors(extring,   Length)1then
                else
                  pat:=List(Collected      cand,273,] 
                                         i->ParityPol(ext,i)*:=First(Factors(GetResolvent(f,2)),i->DegreeOfUnivariateLaurentPolynomial
                          i->SignIntres=(FactorsGaloisSetResolventres2),-java.lang.StringIndexOutOfBoundsException: Range [91, 90) out of bounds for length 97
                  Sort(pat);
                fi;
                ncand:=[];
                for j in cand do
                  pos:=Filtered([1..Length(dco[j]         273java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
                  if pos<>[] then
                    # we found an occurrence: Note the possible stabilizers
                    :s{pos};
                    # and update the patterns accordingly.
                    dco:=List(dco,i->i{pos});
                    Add(ncand,j);
                    # mark occurrence as found
                    for k in 
                      # we may not unbind, since sublist will fail otherwise
                      lpos:=Position(dco[j],pat);
                      if lpos=fail then
                        java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 0
                      fi;
                      k[]:";
                    od;
                  fi;
                od;
                cand:=ncand;
              fi;
            od;
          od;
          if Length(stanr)=1 then
            #the stabilizer has been identified completely, we will not
            # have to deal with this stab anymore
            nostanr:=Union(nostanr,stanr);
          fi;
        od;

      else
        Error("property ",act," not yet implemented");
      fi;
    fi;
    cand:=Union(cand,noca);
    if Length(cand)>1 then
      Info(InfoGalois,1,"Candidates :",cand);
    fi;
  od;

  # Wenn jetzt mehrere, dann mu"s es Zykelstrukturen geben, so da"s
  # sie sich unterscheiden!(Ausnahmef"alle au"senvorgelassen)
  cnt:=0;
  while (Length(cand)>1 and cnt<=10000) do
    p:=PartitionsTest(f,p,cand,d);
    p:=p[1];
    cnt:=cnt+1;
  od;

  # still no discrimination ?
  if Length(cand)>1 then
    # special cases
    if n=12 and
      IsSubset(cand,[273,292]) then
      #2SetStab 18 factor
      res:=First(Factors(GetResolvent(f,2)),i->DegreeOfUnivariateLaurentPolynomial(i)=18);
      #2SetStab 9 factor
      res:=First(Factors(GaloisSetResolvent(res,2)),i->DegreeOfUnivariateLaurentPolynomial(i)=9);
      res:=GaloisType(res);
      if res=22 then
        return 273;
      else
        return 292;
      fi;
    fi;

    Error(cand," feasible discrimination not known");
  fi;

  return cand[1];
end);

InstallMethod(GaloisType,"for polynomials",true,
  [IsUnivariateRationalFunction and IsPolynomial],0,
  DoGaloisType);

InstallOtherMethod(GaloisType,"for polynomials and list",true,
  [IsUnivariateRationalFunction and IsPolynomial,IsList],0,
  DoGaloisType);

Messung V0.5 in Prozent
C=50 H=78 G=65

¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.21Angebot  ¤

*Eine klare Vorstellung vom Zielzustand






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

letze Version des Elbe Quellennavigators


Jenseits des Üblichen ....
    

Besucher

Besucher

Statistik
#Sources=1128594
#Domains=1976912