1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
--- status: TODO
--- author(s):
--- notes:
document {
Key => {GF,[GF, Variable],[GF, PrimitiveElement],[GF, SizeLimit],(GF,ZZ,ZZ),(GF,ZZ),(GF,Ring),[GF,Strategy]},
Headline => "make a finite field",
SYNOPSIS (
BaseFunction => GF,
Usage => "GF(p,n)\nGF(q)",
Inputs => {
"p" => "a prime number", "n",
Variable => Symbol => {
"the name to use for the generator of the field. If null, ",
"then ", VAR "a", " is used."},
SizeLimit => ZZ => {
"the limit on the size of a Galois field whose elements will be represented
internally as powers of the primitive element"
}
},
Outputs => {
GaloisField => {"a finite field with ", TT "q = p^n", " elements"},
},
"The generator of this ring is a primitive element: it generates
the multiplicative group of non-zero elements.",
PARA{"If the single argument form GF(q) is given, q should be a prime power q = p^n"},
EXAMPLE lines ///
A = GF(3,2,Variable=>b);
ambient A
b^8
b^4
///,
EXAMPLE lines ///
K = GF 8
a^3+a
///
),
SeeAlso => {toField, "finite fields"},
SYNOPSIS (
BaseFunction => GF,
Usage => "GF R",
Inputs => {
"R" => Ring => {
"A quotient of a polynomial ring over ", TT "ZZ/p", " in one variable, modulo
an irreducible polynomial"
},
PrimitiveElement => {
"either an element of ", TT "R", ", or the symbol ", TO FindOne,
". An element is primitive if it generates the multiplicative group
of non-zero elements of R"
},
SizeLimit => ZZ => {
"the limit on the size of a Galois field whose elements will be represented
internally as powers of the primitive element"
}
},
Outputs => {
GaloisField => {"a finite field isomorphic to ", TT "R"}
},
EXAMPLE lines ///
A = ZZ/5[a]/(a^3-a-2)
B = GF A
C = ZZ/5[b]/(b^3+1+3*b^2+b)
D = GF C
map(B,D,{a^2})
///
)
}
|