Annotation of OpenXM_contrib/PHC/Ada/Schubert/determinantal_systems.ads, Revision 1.1.1.1
1.1 maekawa 1: with Standard_Complex_Numbers; use Standard_Complex_Numbers;
2: with Standard_Complex_Vectors; use Standard_Complex_Vectors;
3: with Standard_Natural_Matrices;
4: with Standard_Complex_Matrices;
5: with Standard_Complex_Poly_Matrices;
6: with Standard_Complex_VecMats;
7: with Standard_Complex_Poly_Systems; use Standard_Complex_Poly_Systems;
8:
9: package Determinantal_Systems is
10:
11: -- DESCRIPTION :
12: -- This package constitutes the bridge between linear subspace intersections
13: -- expressed by determinantal equations and polynomial systems.
14:
15: -- LOCALIZATION MAPS :
16:
17: function Standard_Coordinate_Frame
18: ( x : Standard_Complex_Poly_Matrices.Matrix;
19: plane : Standard_Complex_Matrices.Matrix )
20: return Standard_Natural_Matrices.Matrix;
21:
22: -- DESCRIPTION :
23: -- Returns a coordinate frame that corresponds to the polynomial matrix x.
24: -- To determine the position of the one, the first nonzero element in the
25: -- columns of the plane is taken.
26:
27: function Maximal_Coordinate_Frame
28: ( x : Standard_Complex_Poly_Matrices.Matrix;
29: plane : Standard_Complex_Matrices.Matrix )
30: return Standard_Natural_Matrices.Matrix;
31:
32: -- DESCRIPTION :
33: -- Returns a coordinate frame that corresponds to the polynomial matrix x.
34: -- To determine the position of the one, the maximal element in every
35: -- column is taken.
36:
37: function Localize ( locmap : Standard_Natural_Matrices.Matrix;
38: p : Poly_Sys ) return Poly_Sys;
39:
40: -- DESCRIPTION :
41: -- Applies the localization map to the polynomial system p,
42: -- assuming a rowwise lexicographical order on the variables.
43:
44: -- CONSTRUCT POLYNOMIAL SYSTEMS :
45:
46: procedure Concat ( l : in out Link_to_Poly_Sys; p : Poly_Sys );
47:
48: -- DESCRIPTION :
49: -- Concatenates the nonzero polynomials in p to those in l.
50: -- There is sharing.
51:
52: function Polynomial_Equations
53: ( l : Standard_Complex_Matrices.Matrix;
54: x : Standard_Complex_Poly_Matrices.Matrix ) return Poly_Sys;
55:
56: -- DESCRIPTION :
57: -- Returns the polynomial equations that express the intersection of
58: -- the subspace spanned by the columns of l with the indeterminates
59: -- in the variable matrix x.
60:
61: function Polynomial_Equations
62: ( l : Standard_Complex_VecMats.VecMat;
63: x : Standard_Complex_Poly_Matrices.Matrix ) return Poly_Sys;
64:
65: -- DESCRIPTION :
66: -- Returns the polynomial system generated from expanding the
67: -- determinants that represent the intersections of x with the
68: -- planes in l, with equations of the form det(l|x) = 0.
69:
70: -- EVALUATORS AND DIFFERENTIATORS :
71:
72: function Eval ( l,x : Standard_Complex_Matrices.Matrix )
73: return Complex_Number;
74:
75: -- DESCRIPTION :
76: -- Returns the result of the evaluation of the determinant which
77: -- has in its columns the columns of l and x.
78:
79: -- REQUIRED : x'length(1) = x'length(2) + l'length(2) = l'length(1).
80:
81: function Eval ( l,x : Standard_Complex_Matrices.Matrix ) return Vector;
82:
83: -- DESCRIPTION :
84: -- Returns the vector of all maximal minors of the matrix that has
85: -- in its columns the columns of l and x.
86:
87: -- REQUIRED : x'length(1) = l'length(1) >= x'length(2) + l'length(2).
88:
89: function Diff ( l,x : Standard_Complex_Matrices.Matrix; i : natural )
90: return Complex_Number;
91: function Diff ( l,x : Standard_Complex_Matrices.Matrix;
92: locmap : Standard_Natural_Matrices.Matrix; i : natural )
93: return Complex_Number;
94:
95: -- DESCRIPTION :
96: -- Returns the value of the derivative of the i-th variable in the
97: -- vector representation of the matrix x of unknowns, with coefficients
98: -- obtained from the determinantal equation det(l|x) = 0.
99: -- The same requirements as in Eval on the dimensions hold.
100: -- The i-th variable is w.r.t. the localization map.
101:
102: function Eval ( l : Standard_Complex_VecMats.VecMat;
103: x : Standard_Complex_Matrices.Matrix ) return Vector;
104:
105: -- DESCRIPTION :
106: -- Returns the vector that has in its components the determinant
107: -- of l(i) with x, for i in l'range.
108:
109: function Diff ( l : Standard_Complex_VecMats.VecMat;
110: x : Standard_Complex_Matrices.Matrix )
111: return Standard_Complex_Matrices.Matrix;
112: function Diff ( l : Standard_Complex_VecMats.VecMat;
113: x : Standard_Complex_Matrices.Matrix; nvars : natural;
114: locmap : Standard_Natural_Matrices.Matrix )
115: return Standard_Complex_Matrices.Matrix;
116:
117: -- DESCRIPTION :
118: -- Returns the Jacobian matrix of the system det(l(i)|x) = 0.
119: -- If the localization map is specificied, then nvars equals the
120: -- number of free variables.
121:
122: end Determinantal_Systems;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>