[BACK]Return to m_homogeneous_start_systems.adb CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / PHC / Ada / Root_Counts / Product

Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Product/m_homogeneous_start_systems.adb, Revision 1.1.1.1

1.1       maekawa     1: with Standard_Complex_Numbers;           use Standard_Complex_Numbers;
                      2: with Standard_Random_Numbers;            use Standard_Random_Numbers;
                      3: with Standard_Complex_Vectors;           use Standard_Complex_Vectors;
                      4: with Standard_Integer_Matrices;
                      5: with Sets_of_Unknowns;                   use Sets_of_Unknowns;
                      6: with Degrees_in_Sets_of_Unknowns;        use Degrees_in_Sets_of_Unknowns;
                      7: with Random_Product_System;
                      8:
                      9: package body m_Homogeneous_Start_Systems is
                     10:
                     11:   procedure Create_Random_Hyperplanes ( index,n,d : in natural; s : in Set ) is
                     12:   begin
                     13:     for i in 1..d loop
                     14:       declare
                     15:         h : Standard_Complex_Vectors.Vector(0..n);
                     16:       begin
                     17:         h(0) := Random1;
                     18:         for j in 1..Dimension(s) loop
                     19:           if Is_In(s,j)
                     20:            then h(j) := Random1;
                     21:            else h(j) := Create(0.0);
                     22:           end if;
                     23:         end loop;
                     24:         Random_Product_System.Add_Hyperplane(index,h);
                     25:       end;
                     26:     end loop;
                     27:   end Create_Random_Hyperplanes;
                     28:
                     29:   procedure Create_Random_System
                     30:               ( n,m : natural; z : partition;
                     31:                 d : Standard_Integer_Matrices.Matrix ) is
                     32:
                     33:   begin
                     34:     for j in 1..m loop
                     35:       for i in 1..n loop
                     36:         Create_Random_Hyperplanes(i,n,d(i,j),z(j));
                     37:       end loop;
                     38:     end loop;
                     39:   end Create_Random_System;
                     40:
                     41:   procedure m_Homogeneous_Start_System
                     42:                  ( p : in Poly_Sys; z : in partition;
                     43:                    q : out Poly_Sys; qsols : in out Solution_List ) is
                     44:
                     45:     n : constant natural := p'length;
                     46:     m : constant natural := z'last;
                     47:     d : constant Standard_Integer_Matrices.Matrix := Degree_Table(p,z);
                     48:     nl : natural := 0;
                     49:
                     50:   begin
                     51:     Random_Product_System.Init(n);
                     52:     Create_Random_System(n,m,z,d);
                     53:     Random_Product_System.Solve(qsols,nl);
                     54:     q := Random_Product_System.Polynomial_System;
                     55:   end m_Homogeneous_Start_System;
                     56:
                     57: end m_Homogeneous_Start_Systems;

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