with Standard_Complex_Numbers; use Standard_Complex_Numbers;
with Standard_Complex_Vectors; use Standard_Complex_Vectors;
with Standard_Natural_Matrices;
with Standard_Complex_Matrices;
with Standard_Complex_Poly_Matrices;
with Standard_Complex_VecMats;
with Standard_Complex_Poly_Systems; use Standard_Complex_Poly_Systems;
package Determinantal_Systems is
-- DESCRIPTION :
-- This package constitutes the bridge between linear subspace intersections
-- expressed by determinantal equations and polynomial systems.
-- LOCALIZATION MAPS :
function Standard_Coordinate_Frame
( x : Standard_Complex_Poly_Matrices.Matrix;
plane : Standard_Complex_Matrices.Matrix )
return Standard_Natural_Matrices.Matrix;
-- DESCRIPTION :
-- Returns a coordinate frame that corresponds to the polynomial matrix x.
-- To determine the position of the one, the first nonzero element in the
-- columns of the plane is taken.
function Maximal_Coordinate_Frame
( x : Standard_Complex_Poly_Matrices.Matrix;
plane : Standard_Complex_Matrices.Matrix )
return Standard_Natural_Matrices.Matrix;
-- DESCRIPTION :
-- Returns a coordinate frame that corresponds to the polynomial matrix x.
-- To determine the position of the one, the maximal element in every
-- column is taken.
function Localize ( locmap : Standard_Natural_Matrices.Matrix;
p : Poly_Sys ) return Poly_Sys;
-- DESCRIPTION :
-- Applies the localization map to the polynomial system p,
-- assuming a rowwise lexicographical order on the variables.
-- CONSTRUCT POLYNOMIAL SYSTEMS :
procedure Concat ( l : in out Link_to_Poly_Sys; p : Poly_Sys );
-- DESCRIPTION :
-- Concatenates the nonzero polynomials in p to those in l.
-- There is sharing.
function Polynomial_Equations
( l : Standard_Complex_Matrices.Matrix;
x : Standard_Complex_Poly_Matrices.Matrix ) return Poly_Sys;
-- DESCRIPTION :
-- Returns the polynomial equations that express the intersection of
-- the subspace spanned by the columns of l with the indeterminates
-- in the variable matrix x.
function Polynomial_Equations
( l : Standard_Complex_VecMats.VecMat;
x : Standard_Complex_Poly_Matrices.Matrix ) return Poly_Sys;
-- DESCRIPTION :
-- Returns the polynomial system generated from expanding the
-- determinants that represent the intersections of x with the
-- planes in l, with equations of the form det(l|x) = 0.
-- EVALUATORS AND DIFFERENTIATORS :
function Eval ( l,x : Standard_Complex_Matrices.Matrix )
return Complex_Number;
-- DESCRIPTION :
-- Returns the result of the evaluation of the determinant which
-- has in its columns the columns of l and x.
-- REQUIRED : x'length(1) = x'length(2) + l'length(2) = l'length(1).
function Eval ( l,x : Standard_Complex_Matrices.Matrix ) return Vector;
-- DESCRIPTION :
-- Returns the vector of all maximal minors of the matrix that has
-- in its columns the columns of l and x.
-- REQUIRED : x'length(1) = l'length(1) >= x'length(2) + l'length(2).
function Diff ( l,x : Standard_Complex_Matrices.Matrix; i : natural )
return Complex_Number;
function Diff ( l,x : Standard_Complex_Matrices.Matrix;
locmap : Standard_Natural_Matrices.Matrix; i : natural )
return Complex_Number;
-- DESCRIPTION :
-- Returns the value of the derivative of the i-th variable in the
-- vector representation of the matrix x of unknowns, with coefficients
-- obtained from the determinantal equation det(l|x) = 0.
-- The same requirements as in Eval on the dimensions hold.
-- The i-th variable is w.r.t. the localization map.
function Eval ( l : Standard_Complex_VecMats.VecMat;
x : Standard_Complex_Matrices.Matrix ) return Vector;
-- DESCRIPTION :
-- Returns the vector that has in its components the determinant
-- of l(i) with x, for i in l'range.
function Diff ( l : Standard_Complex_VecMats.VecMat;
x : Standard_Complex_Matrices.Matrix )
return Standard_Complex_Matrices.Matrix;
function Diff ( l : Standard_Complex_VecMats.VecMat;
x : Standard_Complex_Matrices.Matrix; nvars : natural;
locmap : Standard_Natural_Matrices.Matrix )
return Standard_Complex_Matrices.Matrix;
-- DESCRIPTION :
-- Returns the Jacobian matrix of the system det(l(i)|x) = 0.
-- If the localization map is specificied, then nvars equals the
-- number of free variables.
end Determinantal_Systems;