/*************************************** * * * Copyright (c) 1998 Jean-Eric Pin * * All rights reserved. * * * * TAB = 2 spaces * * * ***************************************/ /*------------------------------------------------------------------- * TableDeS.c Jean-Eric Pin 17/04/97 * * Calcul de la table de multiplication du semigroupe. *------------------------------------------------------------------- */ #include <stdlib.h> #include <stdio.h> #include "Globales.h" #include "Main.h" #include "Initialisation.h" #include "Memoire.h" #include "Reduction.h" #include "TableDeS.h" extern unsigned long CalculsEffectues; extern unsigned long NbElements; extern unsigned long **TableDeS; extern ProduitRapide_ ProduitRapide; /**************************************************** * * ProduitTable. OK * ****************************************************/ unsigned long ProduitTable(unsigned long n1, unsigned long n2) { return(TableDeS[n1][n2]); } /**************************************************** * * CalculTableDeS. OK * ****************************************************/ void CalculTableDeS(void) { unsigned long u, v; if (!(CalculsEffectues & CALCUL_TABLE_DE_S)) { TableDeS = AlloueMemoireTableDeS(); for (u = IDENTITE; u <= NbElements; u++) for (v = IDENTITE; v <= NbElements; v++) TableDeS[u][v] = ProduitParReduction(u, v); CalculsEffectues |= CALCUL_TABLE_DE_S; /* On prend note : la table de multiplication a ete calculee. */ ProduitRapide = ProduitTable; } }