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

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>