File: [local] / OpenXM_contrib / PHC / Ada / Schubert / curves_into_grassmannian.ads (download)
Revision 1.1.1.1 (vendor branch), Sun Oct 29 17:45:33 2000 UTC (23 years, 8 months ago) by maekawa
Branch: PHC, MAIN
CVS Tags: v2, maekawa-ipv6, RELEASE_1_2_3, RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX, RELEASE_1_2_2, RELEASE_1_2_1, HEAD Changes since 1.1: +0 -0
lines
Import the second public release of PHCpack.
OKed by Jan Verschelde.
|
with Standard_Complex_Numbers; use Standard_Complex_Numbers;
with Standard_Complex_Vectors;
with Standard_Natural_Matrices;
with Standard_Complex_Matrices;
with Standard_Complex_Poly_Matrices;
with Standard_Complex_Poly_Systems; use Standard_Complex_Poly_Systems;
with Brackets; use Brackets;
package Curves_into_Grassmannian is
-- DESCRIPTION :
-- Provides tools to deal with curves of degree q that produce
-- p-planes in n-dimensional space, where n = m+p.
-- The curves are represented symbolically by n-by-p matrices
-- of homogeneous polynomials in s and t. This symbolic
-- representation corresponds to a localization pattern.
-- The degree q equals the degree of the maximal minors.
-- The numerical coefficients are stored in (m+p)*(q+1)-by-p
-- matrices with top and bottom pivots of the embedding.
-- Localization maps are matrices of the same format that
-- indicate where to put the ones to fix a chart to compute in.
-- CREATOR :
function Symbolic_Create ( m,p,q : natural; top,bottom : Bracket )
return Standard_Complex_Poly_Matrices.Matrix;
-- DESCRIPTION :
-- Creates the symbolic form of a q-curve that produces p-planes
-- into (m+p)-dimensional space, as prescribed by the localization
-- pattern defined by top and bottom pivots.
-- The variable s is the next-to-last and t is the last variable
-- in the polynomials of the matrix on return.
-- SELECTORS :
function Number_of_Variables ( top,bottom : Bracket ) return natural;
-- DESCRIPTION :
-- Returns the number of x_ij-variables needed to represent the matrix
-- of polynomials as prescribed in the localization pattern defined
-- by the top and bottom pivots. The x_ij's are the indeterminate
-- coefficients of the polynomials in the matrix.
-- This function determines the degrees of freedom in the poset.
-- Note that the dimension of the corresponding space is p less because
-- we can scale the columns independently dividing by a nonzero constant.
function Standard_Coordinate_Frame
( m,p,q : natural; top,bottom : Bracket;
coeff : Standard_Complex_Matrices.Matrix )
return Standard_Natural_Matrices.Matrix;
-- DESCRIPTION :
-- Returns the localization map for the curve as (m+p)*(q+1)-by-q matrix,
-- taking the first nonzero occuring coefficients as places for the ones.
function Eval ( c : Standard_Complex_Poly_Matrices.Matrix;
s,t : Complex_Number )
return Standard_Complex_Poly_Matrices.Matrix;
-- DESCRIPTION :
-- Evaluates the curve at the point (s,t), returns a matrix
-- of indeterminate coefficients.
-- The number of variables in the polynomials remains the same.
function Elim ( c : Standard_Complex_Poly_Matrices.Matrix;
s,t : Complex_Number )
return Standard_Complex_Poly_Matrices.Matrix;
-- DESCRIPTION :
-- Evaluates the curve at the point (s,t), returns a matrix
-- of indeterminate coefficients and eliminates s and t.
function Column_Localize ( top,bottom : Bracket;
locmap : Standard_Natural_Matrices.Matrix;
p : Poly_Sys ) return Poly_Sys;
-- DESCRIPTION :
-- Applies the localization map to the polynomial system p,
-- assuming that the variables are ordered columnwise.
function Column_Vector_Rep
( top,bottom : Bracket;
cffmat : Standard_Complex_Matrices.Matrix )
return Standard_Complex_Vectors.Vector;
-- DESCRIPTION :
-- Returns the vector representation of the coefficient matrix,
-- assuming the variables are stored columnwise.
-- This is for nonlocalized coefficient matrices.
function Column_Vector_Rep ( locmap : Standard_Natural_Matrices.Matrix;
cffmat : Standard_Complex_Matrices.Matrix )
return Standard_Complex_Vectors.Vector;
-- DESCRIPTION :
-- Returns the vector representation of a localized coefficient matrix.
function Column_Matrix_Rep
( locmap : Standard_Natural_Matrices.Matrix;
cffvec : Standard_Complex_Vectors.Vector )
return Standard_Complex_Matrices.Matrix;
-- DESCRIPTION :
-- Converts from vector to matrix representation of the coefficients,
-- assuming the variables are stored columnwise in the map.
-- MODIFIER :
procedure Swap ( c : in out Standard_Complex_Poly_Matrices.Matrix;
k,l : in natural );
-- DESCRIPTION :
-- Swaps the variables k and l in the polynomial matrix.
function Insert ( c : Standard_Complex_Poly_Matrices.Matrix; k : natural )
return Standard_Complex_Poly_Matrices.Matrix;
-- DESCRIPTION :
-- The map on return has a k-th variable inserted with zero power.
end Curves_into_Grassmannian;