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]

Reply via email to