Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Product/random_product_system.ads, Revision 1.1
1.1 ! maekawa 1: with Standard_Complex_Vectors; use Standard_Complex_Vectors;
! 2: with Standard_Complex_Polynomials; use Standard_Complex_Polynomials;
! 3: with Standard_Complex_Poly_Systems; use Standard_Complex_Poly_Systems;
! 4: with Standard_Complex_Solutions; use Standard_Complex_Solutions;
! 5: with Lists_of_Integer_Vectors; use Lists_of_Integer_Vectors;
! 6:
! 7: package Random_Product_System is
! 8:
! 9: -- DESCRIPTION :
! 10: -- This package enables the construction and the solution
! 11: -- of a polynomial system of which each polynomial is
! 12: -- represented as a product of hyperplanes.
! 13:
! 14: -- CONSTRUCTORS :
! 15:
! 16: procedure Init ( n : in natural );
! 17:
! 18: -- DESCRIPTION :
! 19: -- The internal data for this package are initialised
! 20: -- with n, this is the number of equations of the system
! 21: -- NOTE :
! 22: -- This operation must be the first one executed when
! 23: -- using this package.
! 24:
! 25: procedure Add_Hyperplane ( i : in natural; h : in Vector );
! 26:
! 27: -- DESCRIPTION :
! 28: -- The hyperplane h is added to the i-the equation of the
! 29: -- random product system
! 30: -- REQUIRED : __n_
! 31: -- i <= n \
! 32: -- h : Vector(0..n) representing h(0) + > h(j) x
! 33: -- /___ j
! 34: -- j=1
! 35:
! 36: function Dimension return natural;
! 37:
! 38: -- DESCRIPTION :
! 39: -- returns the number of equations in the product system.
! 40:
! 41: function Number_of_Hyperplanes (i : natural) return natural;
! 42:
! 43: -- DESCRIPTION :
! 44: -- returns the number of added hyperplanes for the i-th equation
! 45:
! 46: function Get_Hyperplane ( i,j : in natural ) return Vector;
! 47: function Get_Hyperplane ( i,j : in natural ) return Link_to_Vector;
! 48:
! 49: -- DESCRIPTION :
! 50: -- returns the j-th hyperplane for the i-th equation
! 51:
! 52: procedure Change_Hyperplane ( i,j : in natural; h : in Vector );
! 53:
! 54: -- DESCRIPTION :
! 55: -- the (i,j)-th hyperplane will be changed into h
! 56:
! 57: procedure Solve ( sols : in out Solution_List; nl : out natural );
! 58:
! 59: -- DESCRIPTION :
! 60: -- The random product system is solved and the solutions are
! 61: -- put in the list sols.
! 62: -- nl is the number of matrices that are factored.
! 63: -- NOTE :
! 64: -- All possible linear systems are factorized using Gaussian
! 65: -- elimination, together with the estimation of the condition
! 66: -- of the matrices.
! 67: -- Systems with a bad condition are not solved.
! 68:
! 69: procedure Solve ( sols : in out Solution_List;
! 70: nl : out natural; l : in List );
! 71:
! 72: -- DESCRIPTION :
! 73: -- Cf. Solve, but only those linear systems are factorized,
! 74: -- for which the linear equations are as indicated in the list
! 75: -- of positions l.
! 76:
! 77: function Polynomial ( h : Vector ) return Poly;
! 78:
! 79: -- DESCRIPTION :
! 80: -- returns the linear polynomial defined by the coefficients in h.
! 81:
! 82: function Polynomial_System return Poly_Sys;
! 83:
! 84: -- DESCRIPTION :
! 85: -- A polynomial system is constructed by multiplying all
! 86: -- the hyperplanes from the equations of the random product system.
! 87:
! 88: -- DESTRUCTOR :
! 89:
! 90: procedure Clear;
! 91:
! 92: -- DESCRIPTION :
! 93: -- This procedure frees all memory space used by the random
! 94: -- product system.
! 95:
! 96: end Random_Product_System;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>