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>