[BACK]Return to reduction_of_nonsquare_systems.adb CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / PHC / Ada / Homotopy

Annotation of OpenXM_contrib/PHC/Ada/Homotopy/reduction_of_nonsquare_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_Polynomials;       use Standard_Complex_Polynomials;
                      4: with Reduction_of_Polynomials;           use Reduction_of_Polynomials;
                      5:
                      6: package body Reduction_of_Nonsquare_Systems is
                      7:
                      8:   function Random_Square ( p : in Poly_Sys ) return Poly_Sys is
                      9:
                     10:     m : constant natural := Number_of_Unknowns(p(p'first));
                     11:     res : Poly_Sys(1..m);
                     12:
                     13:   begin
                     14:     for i in res'range loop
                     15:       Copy(p(i),res(i));
                     16:       for j in m+1..p'last loop
                     17:         declare
                     18:           a : Complex_Number := Random1;
                     19:           tmp : Poly := a*p(j);
                     20:         begin
                     21:           Add(res(i),tmp);
                     22:           Clear(tmp);
                     23:         end;
                     24:       end loop;
                     25:     end loop;
                     26:     return res;
                     27:   end Random_Square;
                     28:
                     29:   function Reduced_Square ( p : in Poly_Sys ) return Poly_Sys is
                     30:
                     31:     m : constant natural := Number_of_Unknowns(p(p'first));
                     32:     res : Poly_Sys(1..m);
                     33:
                     34:   begin
                     35:     for i in res'range loop
                     36:       Copy(p(i),res(i));
                     37:       for j in m+1..p'last loop
                     38:         declare
                     39:           tmp : Poly := Rpoly(res(i),p(j));
                     40:         begin
                     41:           Copy(tmp,res(i)); Clear(tmp);
                     42:         end;
                     43:       end loop;
                     44:     end loop;
                     45:     return res;
                     46:   end Reduced_Square;
                     47:
                     48: end Reduction_of_Nonsquare_Systems;

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