Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Product/random_product_system.ads, Revision 1.1.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>