[BACK]Return to templates.ads CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / PHC / Ada / Root_Counts / Symmetry

Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Symmetry/templates.ads, Revision 1.1.1.1

1.1       maekawa     1: with Standard_Natural_Vectors;           use Standard_Natural_Vectors;
                      2: with Lists_of_Integer_Vectors;           use Lists_of_Integer_Vectors;
                      3:
                      4: package Templates is
                      5:
                      6: -- DESCRIPTION :
                      7: --   This package provides the basic data abstraction to be used for the
                      8: --   construction of a symmetric linear-product start system.
                      9:
                     10: -- DATA STRUCTURES :
                     11:
                     12:   -- A template for an n-dimensional system is made of a table
                     13:   -- of natural vectors h(*).
                     14:   -- If h(i) = 0, then this coefficient h(i) will be zero,
                     15:   -- elsif h(i) = j /= 0,
                     16:   --     then this coefficient h(i) will be the j-th random number.
                     17:
                     18: -- CONSTRUCTORS :
                     19:
                     20:   procedure Create ( n : in natural );
                     21:
                     22:   -- DESCRIPTION :
                     23:   --   Allocates memory space to contain a template for
                     24:   --   an n-dimensional polynomial system.
                     25:
                     26:   procedure Add_Hyperplane ( i : in natural; h : in Vector );
                     27:
                     28:   -- DESCRIPTION :
                     29:   --   The hyperplane h is added to the i-the equation of the
                     30:   --   random product system.
                     31:
                     32:   -- REQUIRED :                               __n_
                     33:   --   i <= n                                 \
                     34:   --   h : Vector(0..n) representing  h(0) +   >    h(j) x
                     35:   --                                          /___        j
                     36:   --                                           j=1
                     37:
                     38:   procedure Change_Hyperplane ( i,j : in natural; h : in Vector );
                     39:
                     40:   -- DESCRIPTION :
                     41:   --   The (i,j)-th hyperplane will be changed into h.
                     42:
                     43: -- SELECTORS :
                     44:
                     45:   function Number_of_Hyperplanes ( i : natural ) return natural;
                     46:
                     47:   -- DESCRIPTION :
                     48:   --   returns the number of added hyperplanes for the i-th equation
                     49:
                     50:   procedure Get_Hyperplane ( i,j : in natural; h : out Vector );
                     51:
                     52:   -- DESCRIPTION :
                     53:   --   returns the j-th hyperplane h for the i-th equation
                     54:
                     55:   procedure Polynomial_System ( n,nbfree : in natural );
                     56:
                     57:   -- DESCRIPTION :
                     58:   --   Based on the template, an n-dimensional random product
                     59:   --   polynomial system will be generated.
                     60:   --   The parameter nbfree indicates the number of free coefficients.
                     61:   --   After calling this routine, the package Random_Product_System
                     62:   --   will contain the data for a polynomial system.
                     63:
                     64:   function Verify ( n : natural; lp : List ) return natural;
                     65:
                     66:   -- DESCRIPTION :
                     67:   --   Computes the number of finite nonsingular solutions
                     68:   --   of the final symmetric polynomial system.
                     69:   --   The list of positions lp indicates where the acceptable
                     70:   --   classes in the structure can be found.
                     71:   --   The structure is degenerate if this number does not
                     72:   --   correspond with the generalized Bezout number.
                     73:
                     74: -- DESTRUCTOR :
                     75:
                     76:   procedure Clear;
                     77:
                     78:   -- DESCRIPTION :
                     79:   --   This procedure frees all memory space used by the template.
                     80:
                     81: end Templates;

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>