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

Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Implift/drivers_for_vertex_points.adb, Revision 1.1.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>