Annotation of OpenXM_contrib/PHC/Ada/Schubert/curves_into_grassmannian.ads, Revision 1.1
1.1 ! maekawa 1: with Standard_Complex_Numbers; use Standard_Complex_Numbers;
! 2: with Standard_Complex_Vectors;
! 3: with Standard_Natural_Matrices;
! 4: with Standard_Complex_Matrices;
! 5: with Standard_Complex_Poly_Matrices;
! 6: with Standard_Complex_Poly_Systems; use Standard_Complex_Poly_Systems;
! 7: with Brackets; use Brackets;
! 8:
! 9: package Curves_into_Grassmannian is
! 10:
! 11: -- DESCRIPTION :
! 12: -- Provides tools to deal with curves of degree q that produce
! 13: -- p-planes in n-dimensional space, where n = m+p.
! 14: -- The curves are represented symbolically by n-by-p matrices
! 15: -- of homogeneous polynomials in s and t. This symbolic
! 16: -- representation corresponds to a localization pattern.
! 17: -- The degree q equals the degree of the maximal minors.
! 18: -- The numerical coefficients are stored in (m+p)*(q+1)-by-p
! 19: -- matrices with top and bottom pivots of the embedding.
! 20: -- Localization maps are matrices of the same format that
! 21: -- indicate where to put the ones to fix a chart to compute in.
! 22:
! 23: -- CREATOR :
! 24:
! 25: function Symbolic_Create ( m,p,q : natural; top,bottom : Bracket )
! 26: return Standard_Complex_Poly_Matrices.Matrix;
! 27:
! 28: -- DESCRIPTION :
! 29: -- Creates the symbolic form of a q-curve that produces p-planes
! 30: -- into (m+p)-dimensional space, as prescribed by the localization
! 31: -- pattern defined by top and bottom pivots.
! 32: -- The variable s is the next-to-last and t is the last variable
! 33: -- in the polynomials of the matrix on return.
! 34:
! 35: -- SELECTORS :
! 36:
! 37: function Number_of_Variables ( top,bottom : Bracket ) return natural;
! 38:
! 39: -- DESCRIPTION :
! 40: -- Returns the number of x_ij-variables needed to represent the matrix
! 41: -- of polynomials as prescribed in the localization pattern defined
! 42: -- by the top and bottom pivots. The x_ij's are the indeterminate
! 43: -- coefficients of the polynomials in the matrix.
! 44: -- This function determines the degrees of freedom in the poset.
! 45: -- Note that the dimension of the corresponding space is p less because
! 46: -- we can scale the columns independently dividing by a nonzero constant.
! 47:
! 48: function Standard_Coordinate_Frame
! 49: ( m,p,q : natural; top,bottom : Bracket;
! 50: coeff : Standard_Complex_Matrices.Matrix )
! 51: return Standard_Natural_Matrices.Matrix;
! 52:
! 53: -- DESCRIPTION :
! 54: -- Returns the localization map for the curve as (m+p)*(q+1)-by-q matrix,
! 55: -- taking the first nonzero occuring coefficients as places for the ones.
! 56:
! 57: function Eval ( c : Standard_Complex_Poly_Matrices.Matrix;
! 58: s,t : Complex_Number )
! 59: return Standard_Complex_Poly_Matrices.Matrix;
! 60:
! 61: -- DESCRIPTION :
! 62: -- Evaluates the curve at the point (s,t), returns a matrix
! 63: -- of indeterminate coefficients.
! 64: -- The number of variables in the polynomials remains the same.
! 65:
! 66: function Elim ( c : Standard_Complex_Poly_Matrices.Matrix;
! 67: s,t : Complex_Number )
! 68: return Standard_Complex_Poly_Matrices.Matrix;
! 69:
! 70: -- DESCRIPTION :
! 71: -- Evaluates the curve at the point (s,t), returns a matrix
! 72: -- of indeterminate coefficients and eliminates s and t.
! 73:
! 74: function Column_Localize ( top,bottom : Bracket;
! 75: locmap : Standard_Natural_Matrices.Matrix;
! 76: p : Poly_Sys ) return Poly_Sys;
! 77:
! 78: -- DESCRIPTION :
! 79: -- Applies the localization map to the polynomial system p,
! 80: -- assuming that the variables are ordered columnwise.
! 81:
! 82: function Column_Vector_Rep
! 83: ( top,bottom : Bracket;
! 84: cffmat : Standard_Complex_Matrices.Matrix )
! 85: return Standard_Complex_Vectors.Vector;
! 86:
! 87: -- DESCRIPTION :
! 88: -- Returns the vector representation of the coefficient matrix,
! 89: -- assuming the variables are stored columnwise.
! 90: -- This is for nonlocalized coefficient matrices.
! 91:
! 92: function Column_Vector_Rep ( locmap : Standard_Natural_Matrices.Matrix;
! 93: cffmat : Standard_Complex_Matrices.Matrix )
! 94: return Standard_Complex_Vectors.Vector;
! 95:
! 96: -- DESCRIPTION :
! 97: -- Returns the vector representation of a localized coefficient matrix.
! 98:
! 99: function Column_Matrix_Rep
! 100: ( locmap : Standard_Natural_Matrices.Matrix;
! 101: cffvec : Standard_Complex_Vectors.Vector )
! 102: return Standard_Complex_Matrices.Matrix;
! 103:
! 104: -- DESCRIPTION :
! 105: -- Converts from vector to matrix representation of the coefficients,
! 106: -- assuming the variables are stored columnwise in the map.
! 107:
! 108: -- MODIFIER :
! 109:
! 110: procedure Swap ( c : in out Standard_Complex_Poly_Matrices.Matrix;
! 111: k,l : in natural );
! 112:
! 113: -- DESCRIPTION :
! 114: -- Swaps the variables k and l in the polynomial matrix.
! 115:
! 116: function Insert ( c : Standard_Complex_Poly_Matrices.Matrix; k : natural )
! 117: return Standard_Complex_Poly_Matrices.Matrix;
! 118:
! 119: -- DESCRIPTION :
! 120: -- The map on return has a k-th variable inserted with zero power.
! 121:
! 122: end Curves_into_Grassmannian;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>