Changes http://wiki.axiom-developer.org/FiniteField/diff
--
Finite Field Demonstrations
prime field
\begin{axiom}
-- get a prime
p:=4817
-- construct field
F:=PrimeField p
\end{axiom}
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
\end{axiom}
simple arithmetic
\begin{axiom}
a+b
a-b
a*b
a/b
a**1234
a**(-1)
g := generator()$F
(definingPolynomial()$F::SUP(F)).g
\end{axiom}
functions concerning the multiplicative cyclic group
\begin{axiom}
order(a)
g:=primitiveElement()$F
discreteLog(a)
-- the next one should equal 0
g**% - a
-- the next may fail
discreteLog(b,a)
\end{axiom}
special finite field functions
\begin{axiom}
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}
finite field with polynomial basis
get a small prime
\begin{axiom}
p:=7
P:=PrimeField p
-- get a small extension degree
d:=6
-- get a irreducible polynomial
f:=createIrreduciblePoly(d)$FFPOLY(P)
-- construct field
F:=FFP(P,f)
\end{axiom}
This field is the same as constructed by 'F:=FFX(P,d)' or 'F:=FF(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
\end{axiom}
simple arithmetic
\begin{axiom}
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)
\end{axiom}
special finite field functions
\begin{axiom}
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}
finite field with normal basis
get a normal Polynomial
\begin{axiom}
f:=createNormalPoly(d)$FFPOLY(P)
-- build field
F:=FFNBP(P,f)
\end{axiom}
this field is the same as constructed by 'F:=FFNBX(P,d)' or 'F:=FFNB(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
\end{axiom}
simple arithmetic
\begin{axiom}
a+b
a-b
a*b
a/b
a**1234
a**(-1)
g := generator()$F
(definingPolynomial()$F::SUP(F)).g
\end{axiom}
functions concerning the multiplicative cyclic group
\begin{axiom}
order(a)
g:=primitiveElement()$F
discreteLog(a)
-- the next one should equal 0
g**% - a
-- the next may fail
discreteLog(b,a)
\end{axiom}
special finite field functions
\begin{axiom}
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 Cyclic Group]
--
forwarded from http://wiki.axiom-developer.org/[EMAIL PROTECTED]