Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Implift/generic_position.adb, Revision 1.1.1.1
1.1 maekawa 1: with Lists_of_Integer_Vectors; use Lists_of_Integer_Vectors;
2: with Integer_Support_Functions; use Integer_Support_Functions;
3: with Power_Lists; use Power_Lists;
4:
5: function Generic_Position ( p : Poly_Sys; tv : Tree_of_Vectors )
6: return boolean is
7:
8: -- ALGORITHM :
9: -- Because tv contains the useful directions for the mixed volume,
10: -- only the cardinality of the faces of the first support list will be
11: -- checked, for all top directions in tv.
12:
13: res : boolean := true;
14: tmp : Tree_of_Vectors := tv;
15: l : List := Create(p(p'first));
16:
17: begin
18: while not Is_Null(tmp) loop
19: declare
20: nd : Node := Head_Of(tmp);
21: fc : List;
22: begin
23: exit when nd.d'length < Head_Of(l)'length;
24: fc := Outer_Face(l,nd.d.all);
25: res := (Length_Of(fc) <= 1);
26: Deep_Clear(fc);
27: end;
28: exit when not res;
29: tmp := Tail_Of(tmp);
30: end loop;
31: return res;
32: end Generic_Position;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>