with Brackets; use Brackets; with Bracket_Monomials; use Bracket_Monomials; with Standard_Natural_Matrices; use Standard_Natural_Matrices; with Standard_Complex_Polynomials; use Standard_Complex_Polynomials; with Bracket_Polynomials; use Bracket_Polynomials; package Bracket_Expansions is -- DESCRIPTION : -- This package provides operations to expand bracket polynomials as -- complex multivariate polynomials in the matrix indeterminates xij. function Expand ( n,d : natural; b : Bracket ) return Poly; function Expand ( n,d : natural; b : Bracket_Monomial ) return Poly; function Expand ( n,d : natural; b : Bracket_Term ) return Poly; function Expand ( n,d : natural; b : Bracket_Polynomial ) return Poly; -- DESCRIPTION : -- On return is the expanded bracket polynomial in the xij's, -- where i runs over 1..n and j over 1..d. function Localized_Expand ( n,d : natural; b : Bracket ) return Poly; -- DESCRIPTION : -- For i >= n-d+1, the variable xij is either 1 or 0, depending on -- whether i=j+n-d or not, for i in 1..n and j in 1..d. -- This is the standard map to localize a d-plane, a better one -- is generated below. function Localization_Map ( n,d : natural ) return Matrix; -- DESCRIPTION : -- Returns a localization map for a matrix representing a d-plane -- in affine n-space. The elements of the identity matrix are as -- usual represented by zeros and ones. Every row will have at least -- one free element whose entry is marked by two. -- REQUIRED : n > d+1. function Expand ( locmap : Matrix; b : Bracket ) return Poly; -- DESCRIPTION : -- Expands a d-by-d minor of the matrix, selecting the rows with -- entries in b, respecting the localization map in locmap. -- The format of locmap must be as the output of Localization_Map. -- The polynomial on return has as many variables as the number of -- entries in the matrix locmap. -- The number of variables can be reduced by the procedure below. procedure Reduce_Variables ( locmap : in Matrix; p : in out Poly ); -- DESCRIPTION : -- Reduces the #variables in the polynomial, removing all variables that -- correspond to zeros in the localization map. end Bracket_Expansions;