[BACK]Return to determinantal_systems.ads CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / PHC / Ada / Schubert

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>