[Next] [Prev] [_____] [Left] [Up] [Index] [Root]
Element Operations

Element Operations

Subsections

Parent and Category

Parent(r) : FldCycElt -> FldCyc
Category(r) : FldCycElt -> Cat

Arithmetic

+ a : FldCycElt -> FldCycElt
- a : FldCycElt -> FldCycElt
a + b : FldCycElt, FldCycElt -> FldCycElt
a - b : FldCycElt, FldCycElt -> FldCycElt
a * b : FldCycElt, FldCycElt -> FldCycElt
a / b : FldCycElt, FldCycElt -> FldCycElt
a ^ k : FldCycElt, RngIntElt -> FldCycElt
a +:= b : FldCycElt, FldCycElt -> FldCycElt
a -:= b : FldCycElt, FldCycElt -> FldCycElt
a *:= b : FldCycElt, FldCycElt -> FldCycElt

Equality and Membership

a eq b : FldCycElt, FldCycElt -> BoolElt
a ne b : FldCycElt, FldCycElt -> BoolElt
a in R : FldCycElt, Rng -> BoolElt
a notin R : FldCycElt, Rng -> BoolElt

Predicates on Ring Elements

IsZero(a) : FldCycElt -> BoolElt
IsOne(a) : FldCycElt -> BoolElt
IsMinusOne(a) : FldCycElt -> BoolElt
IsNilpotent(x) : FldCycElt -> BoolElt
IsIdempotent(x) : FldCycElt -> BoolElt
IsUnit(a) : FldCycElt -> BoolElt
IsZeroDivisor(x) : FldCycElt -> BoolElt
IsRegular(x) : FldCycElt -> BoolElt
IsIrreducible(x) : FldCycElt -> BoolElt
IsPrime(x) : FldCycElt -> BoolElt

Conjugates, Minimal Polynomial

ComplexConjugate(a) : FldCycElt -> FldQuadElt
The complex conjugate of cyclotomic field element a.
Conjugate(a, n) : FldCycElt, RngIntElt -> FldCycElt
The n-th conjugate of the element a in Q(zeta_m) (for m and n coprime), obtained by applying the field automorphism zeta_m |-> zeta_m^n.
MinimalPolynomial(a) : FldCycElt -> AlgPolElt
The minimal polynomial of the cyclotomic field element a. The resulting (monic) polynomial will have coefficients in Q (which may all be integers).
Norm(a) : FldCycElt -> FldRatElt
The absolute norm of a cyclotomic field element a (as an element of the rational field), which is the product of all its conjugates.
Trace(a) : FldCycElt -> FldRatElt
The trace a of a cyclotomic field element a (as an element of the rational field), which is the sum of all its conjugates.

Example FldCyc_GaussianPeriods (H35E1)

The following lines of code generate a set W of minimal polynomials for the so-called Gaussian periods eta_d=sum_(i=0)^((l - 1)/d - 1)zeta_l^(g^((d)i)) where zeta_l is a primitive l-th root of unity (l is prime), and where g is a primitive root modulo l. These have the property that they generate a degree d cyclic subfield of Q(zeta_l). We (arbitrarily) choose l=13 in this example.

> R<x> := PolynomialRing(RationalField());
> W := { R | };
> l := 13;
> L<z> := CyclotomicField(l);
> M := Divisors(l-1);
> g := PrimitiveRoot(l);
> for m in M do
>    d := (l-1) div m;
>    g_d := g^d;
>    w := &+[z^g_d^i : i in [0..m-1] ];
>    Include(~W, MinimalPolynomial(w));
> end for;
Here is the same loop in just one line, using sequence reduction:

> W := { R | MinimalPolynomial(&+[z^(g^((l-1) div m))^i : i in [0..m-1] ]) : >        m in M };
> W;
{ 
      x^12 + x^11 + x^10 + x^9 + x^8 + x^7 + x^6 + x^5 + x^4 + x^3 + x^2 +
       x + 1,
      x^4 + x^3 + 2*x^2 - 4*x + 3,
      x^3 + x^2 - 4*x + 1,
      x + 1
      x^2 + x - 3,
      x^6 + x^5 - 5*x^4 - 4*x^3 + 6*x^2 + 3*x - 1,
 }
[Next] [Prev] [_____] [Left] [Up] [Index] [Root]