Annotation of OpenXM_contrib/PHC/Ada/Schubert/curves_into_grassmannian.ads, Revision 1.1.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>