Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Product/degrees_in_sets_of_unknowns.adb, Revision 1.1.1.1
1.1 maekawa 1: package body Degrees_in_Sets_of_Unknowns is
2:
3: function Degree ( t : Term; s : Set ) return integer is
4:
5: sum : integer := 0;
6:
7: begin
8: if Extent_Of(s) > 0
9: then for i in t.dg'range loop
10: if Is_In(s,i)
11: then sum := sum + t.dg(i);
12: end if;
13: end loop;
14: end if;
15: return sum;
16: end Degree;
17:
18: function Degree ( p : Poly; s : Set ) return integer is
19:
20: res : integer := -1;
21:
22: procedure Degree_Term ( t : in Term; continue : out boolean ) is
23: sum : integer := Degree(t,s);
24: begin
25: if sum > res
26: then res := sum;
27: end if;
28: continue := true;
29: end Degree_Term;
30: procedure Degree_Terms is new Visiting_Iterator(Degree_Term);
31:
32: begin
33: Degree_Terms(p);
34: return res;
35: end Degree;
36:
37: function Degree_Table ( p : Poly_Sys; z : Partition ) return matrix is
38:
39: res : matrix(p'range,z'range);
40:
41: begin
42: for i in p'range loop
43: for j in z'range loop
44: res(i,j) := Degree(p(i),z(j));
45: end loop;
46: end loop;
47: return res;
48: end Degree_Table;
49:
50: end Degrees_in_Sets_of_Unknowns;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>