[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     ! 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>