Changes http://wiki.axiom-developer.org/FiniteFieldCyclicGroup/diff
--
finite field represented as cyclic group
because a Zech logarithm table of half the field size is kept in
memory during the computations, the size of the field should not be
to big.
get a small prime
\begin{axiom}
p:=5
P:=PrimeField p
-- get a small extension degree
d:=4
-- get a primitive polynomial
f:=createPrimitivePoly(d)$FFPOLY(P)
-- construct field
F:=FFCGP(P,f)
this field is the same as constructed by 'F:=FFCGX(P,d)' or 'F:=FFCG(p,d)'
demonstration of common finite field functions
the finite field domain is in variable F
take some random elements
\begin{axiom}
size()$F
a:=index(size()$F quo 3)$F
b:=index(size()$F quo 7)$F
-- simple arithmetic
a+b
a-b
a*b
a/b
a**1234
a**(-1)
g := generator()$F
(definingPolynomial()$F::SUP(F)).g
-- functions concerning the multiplicative cyclic group
order(a)
g:=primitiveElement()$F
discreteLog(a)
-- the next one should equal 0
g**% - a
-- the next may fail
discreteLog(b,a)
-- special finite field functions
extensionDegree()$F
degree(a)
normalElement()$F
definingPolynomial()$F
minimalPolynomial(a)
Frobenius(a)
linearAssociatedOrder(a)
linearAssociatedLog(a)
\end{axiom}
\begin{axiom}
for d in divisors extensionDegree()$F repeat
print(norm(a,d::PI)::OUTFORM)
print(trace(a,d::PI)::OUTFORM)
\end{axiom}
[FiniteField Polynomial Extension]
--
forwarded from http://wiki.axiom-developer.org/[EMAIL PROTECTED]