Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Dynlift/babldmvc.adb, Revision 1.1.1.1
1.1 maekawa 1: with text_io,integer_io; use text_io,integer_io;
2: with Communications_with_User; use Communications_with_User;
3: with Timing_Package; use Timing_Package;
4: with Standard_Integer_Vectors; use Standard_Integer_Vectors;
5: with Standard_Complex_Poly_Systems; use Standard_Complex_Poly_Systems;
6: with Standard_Complex_Poly_Systems_io; use Standard_Complex_Poly_Systems_io;
7: with Standard_Complex_Solutions; use Standard_Complex_Solutions;
8: with Standard_Complex_Solutions_io; use Standard_Complex_Solutions_io;
9: with Arrays_of_Integer_Vector_Lists; use Arrays_of_Integer_Vector_Lists;
10: with Integer_Mixed_Subdivisions; use Integer_Mixed_Subdivisions;
11: with Black_Mixed_Volume_Computations; use Black_Mixed_Volume_Computations;
12:
13: procedure babldmvc ( infilename,outfilename : in string ) is
14:
15: infile,outfile : file_type;
16: lp : Link_to_Poly_Sys;
17:
18: procedure Read_System ( file : in out file_type; filename : in string ) is
19: begin
20: if filename /= ""
21: then Open_Input_File(file,filename);
22: get(file,lp);
23: end if;
24: exception
25: when others => put_line("Something is wrong with argument file...");
26: lp := null; return;
27: end Read_System;
28:
29: procedure Main ( file : in file_type; p : in out Poly_Sys ) is
30:
31: timer : Timing_Widget;
32: q : Poly_Sys(p'range);
33: qsols : Solution_List;
34: mix : Link_to_Vector;
35: lifsup : Link_to_Array_of_Lists;
36: mixsub : Mixed_Subdivision;
37: mv : natural;
38:
39: begin
40: tstart(timer);
41: Black_Box_Mixed_Volume_Computation(p,mix,lifsup,mixsub,mv);
42: tstop(timer);
43: new_line(outfile);
44: put(outfile,"mixed volume : "); put(outfile,mv,1); new_line(outfile);
45: new_line(outfile);
46: print_times(outfile,timer,"Mixed-Volume Computation");
47: if mv > 0
48: then tstart(timer);
49: Black_Box_Polyhedral_Continuation
50: (p,mix.all,lifsup.all,mixsub,q,qsols);
51: tstop(timer);
52: new_line(outfile);
53: put_line(outfile,"RANDOM COEFFICIENT START SYSTEM :");
54: new_line(outfile);
55: put_line(outfile,q);
56: new_line(outfile);
57: put_line(outfile,"START SOLUTIONS :");
58: new_line(outfile);
59: put(outfile,Length_Of(qsols),Head_Of(qsols).n,qsols);
60: new_line(outfile);
61: print_times(outfile,timer,"Polyhedral Continuation");
62: end if;
63: end Main;
64:
65: begin
66: Read_System(infile,infilename);
67: if lp = null
68: then new_line;
69: get(lp);
70: end if;
71: Close(infile);
72: Create_Output_File(outfile,outfilename);
73: put(outfile,lp.all);
74: Main(outfile,lp.all);
75: Close(outfile);
76: end babldmvc;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>