Class Corps

java.lang.Object
   |
   +----Corps

public class Corps
extends Object
Corps fini Fq (q = p^m).


Variable Index

 o irreductible
Polynome irreductible (de degré m).
 o m
 o p
Dimension de l'espace constructeur Fp.
 o primitifs
Elements primitifs.
 o q
Dimension du corps.
 o tableLogs
Table des logarithmes.

Constructor Index

 o Corps(int, int, Polynome)
Construit un corps fini Fq (q = p^m) avec un polynôme irreductible comme génératéur.

Method Index

 o add(int, int)
Somme deux elements a et b de Fp.
 o adjuste(int)
Adjuste la puissance d'un élément primitif (cyclique par q-1).
 o adjusteCoeffsPolynome(Polynome)
Substitue tous les coefficients d'un polynôme avec leurs homologues en Fp.
 o adjustePuissancesPolynome(Polynome)
Transforme un polynôme de Z vers Fp^m.
 o afficheTableAdd()
Affiche la table de l'addition de Fp.
 o afficheTableAddPolynomes(Polynome[])
Affiches la table d'addition des polynomes en Fq.
 o afficheTableMult()
Affiche la table de la multiplication de Fp.
 o afficheTableMultPolynomes(Polynome[])
Affiches la table de multiplication des polynomes en Fq.
 o divise(Polynome, Polynome)
Divise deux polynomes dans Fp.
 o invers(Polynome)
Retourne l'invers d'un polynome dans Fp.
 o mult(int, int)
Multiplie deux elements a et b dans Fp.
 o polynomeMinimal(Vector)
Crée le polynôme minimal d'un élément primitif alfa, à partir de la classe cyclotomique de alfa.
 o recherchePrimitifs(Polynome[])
Recherche les elements primitifs de ce corps Fp.
 o reverseTableLogs(Polynome)
Cherche dans la table des logarithmes le polynome primitif^ égal au polynome passé en paramétre.
 o tableLogs()
Construit la table des logarithmes de ce corps Fp, generée à partir du prémier élément primitif trouvé.
 o tousLesPolynomes()
Engendre tous les polynomes de Fq (de degre' < m, a' coeffs en Z/pZ).

Variables

 o q
 int q
Dimension du corps.

 o p
 int p
Dimension de l'espace constructeur Fp. Doit être un nombre premier.

 o m
 int m
 o irreductible
 Polynome irreductible
Polynome irreductible (de degré m).

 o primitifs
 Polynome primitifs[]
Elements primitifs.

 o tableLogs
 Polynome tableLogs[]
Table des logarithmes.

Constructors

 o Corps
 public Corps(int p,
              int m,
              Polynome irreductible) throws CorpsException
Construit un corps fini Fq (q = p^m) avec un polynôme irreductible comme génératéur.

Parameters:
p - un entier premier (la base)
m - un entier (le degré du polynôme irreductible)
irreductible - un polynôme irreductible de degré m qui engendrera le corps

Methods

 o add
 int add(int a,
         int b)
Somme deux elements a et b de Fp.

Parameters:
a - un entier de Fp
b - un entier de Fp
Returns:
a + b dans Fp
 o mult
 int mult(int a,
          int b)
Multiplie deux elements a et b dans Fp.

Parameters:
a - un entier
b - un entier
Returns:
a * b dans Fp
 o afficheTableAdd
 void afficheTableAdd()
Affiche la table de l'addition de Fp.

 o afficheTableMult
 void afficheTableMult()
Affiche la table de la multiplication de Fp.

 o adjustePuissancesPolynome
 public Polynome adjustePuissancesPolynome(Polynome polyZ)
Transforme un polynôme de Z vers Fp^m.

Parameters:
polyZ - un polynôme de Z
Returns:
le polynôme polyZ dans Fp^m
 o adjusteCoeffsPolynome
 public Polynome adjusteCoeffsPolynome(Polynome polyZ)
Substitue tous les coefficients d'un polynôme avec leurs homologues en Fp.

Parameters:
polyZ - un polynôme de Z
Returns:
le polynôme polyZ dans Fp^m
 o adjuste
 public int adjuste(int exposant)
Adjuste la puissance d'un élément primitif (cyclique par q-1).

Parameters:
exposant - un entier
Returns:
le modulo q-1 positif de exposant
 o tousLesPolynomes
 Polynome[] tousLesPolynomes()
Engendre tous les polynomes de Fq (de degre' < m, a' coeffs en Z/pZ).

Returns:
un array contenant tous les q polynômes possibles de Fq
 o afficheTableAddPolynomes
 public void afficheTableAddPolynomes(Polynome tousPolys[])
Affiches la table d'addition des polynomes en Fq.

Parameters:
tousPolys - tous les polynômes de Fq
 o afficheTableMultPolynomes
 public void afficheTableMultPolynomes(Polynome tousPolys[])
Affiches la table de multiplication des polynomes en Fq.

Parameters:
tousPolys - tous les polynômes de Fq
 o divise
 public Polynome[] divise(Polynome dividende,
                          Polynome diviseur)
Divise deux polynomes dans Fp.

Parameters:
dividende - le polynôme dividende
diviseur - le polynôme diviseur
Returns:
un array contenant deux polynômes: le premier est le resultat de la division, le deuxième le reste
 o tableLogs
 private Polynome[] tableLogs()
Construit la table des logarithmes de ce corps Fp, generée à partir du prémier élément primitif trouvé.

Returns:
la table des logarithmes sous forme d'un array de polynômes, où l'élément d'indice i contient (primitif^i)
 o reverseTableLogs
 public int reverseTableLogs(Polynome polynome)
Cherche dans la table des logarithmes le polynome primitif^ égal au polynome passé en paramétre.

Parameters:
polynome - un polynome
Returns:
un entier i qui, dans la table des logarithmes, vérifie primitif^i = polynome; -1 si un tel i n'existe pas (c'est le cas si polynome est nul)
 o recherchePrimitifs
 private Polynome[] recherchePrimitifs(Polynome tousPolys[])
Recherche les elements primitifs de ce corps Fp.

Parameters:
tousPolys - tous les polynômes de Fp
Returns:
un array de polynômes contenant tous les elements primitifs de Fp
 o invers
 public Polynome invers(Polynome poly)
Retourne l'invers d'un polynome dans Fp.

Parameters:
poly - un polynôme
Returns:
le polynôme inverse
 o polynomeMinimal
 public Polynome polynomeMinimal(Vector classeCyc)
Crée le polynôme minimal d'un élément primitif alfa, à partir de la classe cyclotomique de alfa.

Parameters:
une - liste d'entiers (p0=1, p1, p2, ...) qui sont les puissances de la classe cyclotomique de alfa
Returns:
le polynôme minimal (X - alfa)*(X - alfa^p1)*(X - alfa^p2)*...