/***************************************
*                                      *
*   Copyright (c) 1998 Jean-Eric Pin   *
*   All rights reserved.               *
*                                      *
*   TAB = 2 spaces                     *
*                                      *
***************************************/

/*-------------------------------------------------------------------
 * Globales.c    Jean-Eric Pin 07/12/96
 * Merci a Alair Pereira Lago et a Mario Branco pour la version portugaise
 * Merci a Anca Muscholl pour la version allemande
 * Merci a Roberto Mantaci pour la version italienne
 * Merci a Antonio Cano Gomez pour la version espagnole
 *-------------------------------------------------------------------
 */     

/*************************************************
*  
*  Variables globales du programme  semigroupe
*  
*************************************************/

#include <stdio.h>
#include "Main.h"
#include "Globales.h"
#include "Initialisation.h"

#ifdef DEBUG
  long ElementsAlloues = 0;
#endif   /* DEBUG */

float Version = 1.00;  /* Version de Semigroupe */
unsigned short NbEtats, NbLettres, NbChiffresNbElements, Longueur, LongueurMax,
    TypeSemigroupe, TypeCalcul, PartiePointee, PossedeUnZero, PossedeUnNeutre,
    OptionAction, EstRegulier, SemigroupeRenverse, SauvegardeSouhaitee, 
    InitiauxASpecifer, FinauxASpecifer, CalculsEffectues, MemoireAllouee;
unsigned long Periode, Seuil, TestsEffectues, Varietes;
short TailleElement;
unsigned long NbRelations, TailleTableDeHachage, TailleTableDeHachageMoinsUn;
numero DernierMot, nZero, NbElements, NbReelElements, NbIdempotents, NbRclasses, NbLclasses, NbDclasses,
       NbLclassesMinimales, TailleRIdealMinimal, TailleMaxi;
element Identite;    /* L'identite du monoide ou du semigroupe */
element *Generateurs;  /* Les generateurs du semigroupe */
element *TableDesValeurs;  /* Les valeurs des elements du semigroupe dans l'univers. */
numero *TableDeHachage;  /* La table de l'adresse des elements. On y accede par hachage et adressage ouvert. */
numero *TableIdempotents;  /* La table des idempotents */
info *Table;     /* La table contenant les informations sur les elements */
info2 *Table2;  /* La table contenant les autres informations sur les elements (R-classe, L-classe, D-classe, xOmega, etc.) */
numero **TableDeS;  /* La table de multiplication du semigroupe */
ProduitsDG *TableInfo;
Copie_ Copie;
Hachage_ Hachage;
Hachage_ HachageSecondaire;
Produit_ Produit;
ProduitRapide_ ProduitRapide;
EstEgal_ EstEgal;
FaireIdentite_ FaireIdentite;
Produit_ ProduitNormal;
Entree_ Entree;
Sortie_ SortieElement;
Sauvegarde_ Sauvegarde;
Lecture_ LectureFichier;
Alloue_ AlloueMemoireElement;
Libere_ LibereMemoireElement;
EntreePartie_ EntreePartie;
char **Messages; 
short *EtatsInitiaux, *EtatsFinaux;