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

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>