Annotation of OpenXM_contrib/PHC/Ada/Main/bablphc.adb, Revision 1.1
1.1 ! maekawa 1: with text_io; use text_io;
! 2: with Communications_with_User; use Communications_with_User;
! 3: with Timing_Package; use Timing_Package;
! 4: with Standard_Complex_Poly_Systems; use Standard_Complex_Poly_Systems;
! 5: with Standard_Complex_Poly_Systems_io; use Standard_Complex_Poly_Systems_io;
! 6: with Standard_Complex_Solutions; use Standard_Complex_Solutions;
! 7: with Scaling; use Scaling;
! 8: with Black_Box_Root_Counting;
! 9: with Black_Polynomial_Continuations; use Black_Polynomial_Continuations;
! 10:
! 11: procedure bablphc ( infilename,outfilename : in string ) is
! 12:
! 13: procedure Read_System ( file : in out file_type; filename : in string;
! 14: p : in out Link_to_Poly_Sys ) is
! 15: begin
! 16: if filename /= ""
! 17: then Open_Input_File(file,filename);
! 18: get(file,p);
! 19: end if;
! 20: exception
! 21: when others => put_line("Something is wrong with argument file...");
! 22: p := null; return;
! 23: end Read_System;
! 24:
! 25: procedure Timing_Summary ( file : in file_type;
! 26: roco,hoco,poco,total : in duration ) is
! 27:
! 28: b0 : constant string :=
! 29: " ---------------------------------------------------------------------";
! 30: b1 : constant string :=
! 31: " | TIMING INFORMATION SUMMARY |";
! 32: b2 : constant string :=
! 33: " | root counts | start system | continuation | total time |";
! 34:
! 35: begin
! 36: put_line(file,b0);
! 37: put_line(file,b1);
! 38: put_line(file,b0);
! 39: put_line(file,b2);
! 40: put_line(file,b0);
! 41: put(file," | ");
! 42: print_hms(file,roco); put(file," | ");
! 43: print_hms(file,hoco); put(file," | ");
! 44: print_hms(file,poco); put(file," | ");
! 45: print_hms(file,total); put_line(file," |");
! 46: put_line(file,b0);
! 47: end Timing_Summary;
! 48:
! 49: procedure Main is
! 50:
! 51: timer : timing_widget;
! 52: infile,outfile : file_type;
! 53: p,q : Link_to_Poly_Sys;
! 54: rc : natural;
! 55: sols : Solution_List;
! 56: roco,hoco,poco,total : duration;
! 57:
! 58: begin
! 59: Read_System(infile,infilename,p);
! 60: if p = null
! 61: then new_line; get(p);
! 62: end if;
! 63: Create_Output_File(outfile,outfilename);
! 64: put(outfile,p'last,p.all);
! 65: q := new Poly_Sys(p'range);
! 66: tstart(timer);
! 67: declare
! 68: pp : Poly_Sys(p'range) := p.all;
! 69: begin
! 70: Black_Box_Root_Counting(outfile,pp,rc,q.all,sols,roco,hoco);
! 71: if rc /= 0
! 72: then
! 73: Scale(pp);
! 74: Black_Box_Polynomial_Continuation(outfile,pp,q.all,sols,poco);
! 75: end if;
! 76: end;
! 77: tstop(timer);
! 78: total := Elapsed_User_Time(timer);
! 79: Close(infile);
! 80: new_line(outfile);
! 81: print_times(outfile,timer,"Solving the polynomial system");
! 82: new_line(outfile);
! 83: Timing_Summary(outfile,roco,hoco,poco,total);
! 84: Close(outfile);
! 85: end Main;
! 86:
! 87: begin
! 88: Main;
! 89: end bablphc;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>