with Symbol_Table; use Symbol_Table; with Standard_Natural_Matrices; use Standard_Natural_Matrices; with Standard_Complex_Polynomials; use Standard_Complex_Polynomials; package Matrix_Indeterminates is -- DESCRIPTION : -- This package provides a facility to manipulate symbols for the -- indeterminates xij of a matrix, where i and j are allowed to run -- in the range 1..F, along the usual hexadecimal coding. procedure Initialize_Symbols ( n,d : in natural ); -- DESCRIPTION : -- Initializes the symbol table with the variable order -- x11 > x12 > .. > x1d > x21 > x22 > .. > x2d > .. > xn1 > .. > xnd. function X_ij ( i,j : natural ) return Symbol; -- DESCRIPTION : -- Returns the symbol that represents the variable xij. function Monomial ( n,d,i,j : natural ) return Poly; -- DESCRIPTION : -- Returns the representation of X_ij as a polynomial. procedure Reduce_Symbols ( locmap : in Matrix ); -- DESCRIPTION : -- Reduces the number of symbols in the symbol table, removing all -- symbols that correspond to zeros and ones in the localization map. procedure Clear_Symbols; -- DESCRIPTION : -- Destruction of the symbol table. end Matrix_Indeterminates;