Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Implift/drivers_for_vertex_points.adb, Revision 1.1
1.1 ! maekawa 1: with integer_io; use integer_io;
! 2: with Timing_Package; use Timing_Package;
! 3: with Lists_of_Integer_Vectors_io; use Lists_of_Integer_Vectors_io;
! 4: with Power_Lists,Vertices; use Power_Lists,Vertices;
! 5:
! 6: package body Drivers_for_Vertex_Points is
! 7:
! 8: procedure Vertex_Points ( file : in file_type; l : in out List ) is
! 9:
! 10: timer : Timing_Widget;
! 11: res : List;
! 12:
! 13: begin
! 14: put_line(file,"**** THE SUPPORT ****");
! 15: new_line(file); put(file,l); new_line(file);
! 16: tstart(timer);
! 17: res := Vertex_Points(l);
! 18: tstop(timer);
! 19: new_line(file);
! 20: put_line(file,"**** THE VERTEX POINTS ****");
! 21: new_line(file); put(file,res); new_line(file);
! 22: put_line(file,"**** REDUCTION OF POINTS ****");
! 23: new_line(file);
! 24: put(file,"The number of points in the support : ");
! 25: put(file,Length_Of(l),1); new_line(file);
! 26: put(file,"The number of remaining vertex points : ");
! 27: put(file,Length_Of(res),1); new_line(file);
! 28: new_line(file);
! 29: print_times(file,timer,"computing the vertex points");
! 30: new_line(file);
! 31: Clear(l);
! 32: l := res;
! 33: end Vertex_Points;
! 34:
! 35: procedure Vertex_Points
! 36: ( file : in file_type; l : in out Array_of_Lists ) is
! 37:
! 38: timer : Timing_Widget;
! 39: res : Array_of_Lists(l'range);
! 40:
! 41: begin
! 42: tstart(timer);
! 43: for i in res'range loop
! 44: res(i) := Vertex_Points(l(i));
! 45: end loop;
! 46: tstop(timer);
! 47: new_line(file);
! 48: put_line(file,"**** THE VERTEX POINTS ****");
! 49: new_line(file);
! 50: for i in res'range loop
! 51: put(file,res(i)); new_line(file);
! 52: end loop;
! 53: put_line(file,"**** REDUCTION OF POINTS ****");
! 54: new_line(file);
! 55: for i in l'range loop
! 56: put(file,"The #points versus #vertices for support ");
! 57: put(file,i,1); put(file," : ");
! 58: put(file,Length_Of(l(i)),1); put(file," -> ");
! 59: put(file,Length_Of(res(i)),1); new_line(file);
! 60: end loop;
! 61: new_line(file);
! 62: print_times(file,timer,"computing the vertex points");
! 63: new_line(file);
! 64: for i in l'range loop
! 65: Clear(l(i));
! 66: l(i) := res(i);
! 67: end loop;
! 68: end Vertex_Points;
! 69:
! 70: procedure Vertex_Points
! 71: ( file : in file_type; mix : in Link_to_Vector;
! 72: l : in out Array_of_Lists ) is
! 73:
! 74: timer : Timing_Widget;
! 75: res : Array_of_Lists(l'range);
! 76: cnt : natural;
! 77:
! 78: begin
! 79: tstart(timer);
! 80: cnt := 1;
! 81: for i in mix'range loop
! 82: res(cnt) := Vertex_Points(l(cnt));
! 83: cnt := cnt + mix(i);
! 84: end loop;
! 85: tstop(timer);
! 86: new_line(file);
! 87: put_line(file,"**** THE VERTEX POINTS ****");
! 88: new_line(file);
! 89: cnt := 1;
! 90: for i in mix'range loop
! 91: put(file,res(cnt)); new_line(file);
! 92: cnt := cnt + mix(i);
! 93: end loop;
! 94: put_line(file,"**** REDUCTION OF POINTS ****");
! 95: new_line(file);
! 96: cnt := 1;
! 97: for i in mix'range loop
! 98: put(file,"The #points versus #vertices for support ");
! 99: put(file,cnt,1); put(file," : ");
! 100: put(file,Length_Of(l(cnt)),1); put(file," -> ");
! 101: put(file,Length_Of(res(cnt)),1); new_line(file);
! 102: cnt := cnt + mix(i);
! 103: end loop;
! 104: new_line(file);
! 105: print_times(file,timer,"computing the vertex points");
! 106: new_line(file);
! 107: cnt := 1;
! 108: for i in mix'range loop
! 109: for j in 0..(mix(i)-1) loop
! 110: Clear(l(cnt+j));
! 111: l(cnt+j) := res(cnt);
! 112: end loop;
! 113: cnt := cnt + mix(i);
! 114: end loop;
! 115: end Vertex_Points;
! 116:
! 117: procedure Vertex_Points
! 118: ( file : in file_type; p : in out Poly_Sys ) is
! 119:
! 120: l : Array_of_Lists(p'range) := Create(p);
! 121: res : Poly_Sys(p'range);
! 122:
! 123: begin
! 124: Vertex_Points(file,l);
! 125: res := Select_Terms(p,l);
! 126: Deep_Clear(l);
! 127: Clear(p); p := res;
! 128: end Vertex_Points;
! 129:
! 130: procedure Vertex_Points
! 131: ( file : in file_type; mix : in Link_to_Vector;
! 132: p : in out Poly_Sys ) is
! 133:
! 134: l : Array_of_Lists(p'range) := Create(p);
! 135: res : Poly_Sys(p'range);
! 136:
! 137: begin
! 138: Vertex_Points(file,mix,l);
! 139: res := Select_Terms(p,l);
! 140: Deep_Clear(l);
! 141: Clear(p); p := res;
! 142: end Vertex_Points;
! 143:
! 144: end Drivers_for_Vertex_Points;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>