[BACK]Return to bablvali.adb CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / PHC / Ada / Main

Annotation of OpenXM_contrib/PHC/Ada/Main/bablvali.adb, Revision 1.1

1.1     ! maekawa     1: with text_io,integer_io;                 use text_io,integer_io;
        !             2: with Timing_Package;                     use Timing_Package;
        !             3: with Communications_with_User;           use Communications_with_User;
        !             4: with File_Scanning;                      use File_Scanning;
        !             5: with Standard_Floating_Numbers;          use Standard_Floating_Numbers;
        !             6: with Standard_Floating_Numbers_io;       use Standard_Floating_Numbers_io;
        !             7: with Numbers_io;                         use Numbers_io;
        !             8: with Standard_Complex_Poly_Systems;      use Standard_Complex_Poly_Systems;
        !             9: with Standard_Complex_Poly_Systems_io;   use Standard_Complex_Poly_Systems_io;
        !            10: with Standard_Complex_Solutions;         use Standard_Complex_Solutions;
        !            11: with Standard_Complex_Solutions_io;      use Standard_Complex_Solutions_io;
        !            12: with Standard_Root_Refiners;             use Standard_Root_Refiners;
        !            13:
        !            14: procedure bablvali ( infilename,outfilename : in string ) is
        !            15:
        !            16:   timer : timing_widget;
        !            17:   lp : Link_to_Poly_Sys;
        !            18:   infile,outfile : file_type;
        !            19:   ans : character;
        !            20:   n : natural;
        !            21:   sysonfile,found : boolean;
        !            22:   sols : Solution_List;
        !            23:
        !            24:   procedure Read_System ( file : in out file_type; filename : in string ) is
        !            25:   begin
        !            26:     if filename /= ""
        !            27:      then Open(file,in_file,filename);
        !            28:           get(file,lp);
        !            29:           sysonfile := true;
        !            30:      else sysonfile := false;
        !            31:     end if;
        !            32:   exception
        !            33:     when others => put_line("Something is wrong with argument file...");
        !            34:                    sysonfile := false;
        !            35:                    lp := null; return;
        !            36:   end Read_System;
        !            37:
        !            38:   procedure Refine_Roots is
        !            39:
        !            40:     epsxa,epsfa : constant double_float := 10.0**(-8);
        !            41:     tolsing : constant double_float := 10.0**(-8);
        !            42:     maxit : constant natural := 3;
        !            43:     numb : natural := 0;
        !            44:     refsols : Solution_List;
        !            45:
        !            46:   begin
        !            47:     new_line(outfile);
        !            48:     put_line(outfile,"ROOT REFINING PARAMETERS");
        !            49:     put(outfile,"  tolerance for error on the root : ");
        !            50:     put(outfile,epsxa,2,3,3); new_line(outfile);
        !            51:     put(outfile,"  tolerance for residual          : ");
        !            52:     put(outfile,epsfa,2,3,3); new_line(outfile);
        !            53:     put(outfile,"  tolerance for singular roots    : ");
        !            54:     put(outfile,tolsing,2,3,3); new_line(outfile);
        !            55:     put(outfile,"  maximum number of iterations    : ");
        !            56:     put(outfile,maxit,2); new_line(outfile);
        !            57:     tstart(timer);
        !            58:     Reporting_Root_Refiner
        !            59:       (outfile,lp.all,sols,refsols,epsxa,epsfa,tolsing,numb,maxit,false);
        !            60:     tstop(timer);
        !            61:     new_line(outfile);
        !            62:     put_line(outfile,"THE SOLUTIONS :");
        !            63:     put(outfile,Length_Of(refsols),Head_Of(refsols).n,refsols);
        !            64:     new_line(outfile);
        !            65:     print_times(outfile,timer,"Root refining");
        !            66:   end Refine_Roots;
        !            67:
        !            68: begin
        !            69:   Read_System(infile,infilename);
        !            70:   if lp = null
        !            71:    then
        !            72:      new_line;
        !            73:      put("Is the system on file ? (y/n) ");
        !            74:      Ask_Yes_or_No(ans);
        !            75:      if ans = 'y'
        !            76:       then put_line("Reading the name of the input file.");
        !            77:            Read_Name_and_Open_File(infile);
        !            78:            get(infile,lp);
        !            79:            sysonfile := true;
        !            80:       else put("Give the dimension : "); get(n);
        !            81:            lp := new Poly_Sys(1..n);
        !            82:            put("Give "); put(n,1); put(" "); put(n,1);
        !            83:            put_line("-variate polynomials :");
        !            84:            get(n,lp.all);
        !            85:            skip_line;
        !            86:            sysonfile := false;
        !            87:      end if;
        !            88:   end if;
        !            89:
        !            90:   Create_Output_File(outfile,outfilename);
        !            91:   put(outfile,lp.all);
        !            92:
        !            93:   if sysonfile
        !            94:    then Scan_and_Skip(infile,"SOLUTIONS",found);
        !            95:         if found
        !            96:          then get(infile,sols);
        !            97:         end if;
        !            98:         Close(infile);
        !            99:    else found := false;
        !           100:   end if;
        !           101:   if not found
        !           102:    then new_line; Read(sols);
        !           103:   end if;
        !           104:
        !           105:   Refine_Roots;
        !           106: end bablvali;

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>