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

Annotation of OpenXM_contrib/PHC/Ada/Continuation/ts_mreseva.adb, Revision 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 Multprec_Floating_Numbers;          use Multprec_Floating_Numbers;
        !             4: with Multprec_Floating_Numbers_io;       use Multprec_Floating_Numbers_io;
        !             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 Standard_to_Multprec_Convertors;    use Standard_to_Multprec_Convertors;
        !            10: with Multprec_Complex_Vectors;           use Multprec_Complex_Vectors;
        !            11: with Multprec_Complex_Vectors_io;        use Multprec_Complex_Vectors_io;
        !            12: with Multprec_Complex_Poly_Systems;      use Multprec_Complex_Poly_Systems;
        !            13: with Multprec_Complex_Poly_SysFun;       use Multprec_Complex_Poly_SysFun;
        !            14: with Multprec_Complex_Solutions;         use Multprec_Complex_Solutions;
        !            15: with Multprec_Complex_Solutions_io;      use Multprec_Complex_Solutions_io;
        !            16: with Multprec_Residual_Evaluations;      use Multprec_Residual_Evaluations;
        !            17:
        !            18: procedure ts_mreseva is
        !            19:
        !            20: -- DESCRIPTION : test on multi-precision residual computation.
        !            21:
        !            22:   procedure Test_Solution_Residuals
        !            23:               ( p : in Multprec_Complex_Poly_Systems.Poly_Sys ) is
        !            24:
        !            25:     outfile,solsfile : file_type;
        !            26:     p_eval : Multprec_Complex_Poly_SysFun.Eval_Poly_Sys(p'range) := Create(p);
        !            27:     stsols : Standard_Complex_Solutions.Solution_List;
        !            28:     mpsols : Multprec_Complex_Solutions.Solution_List;
        !            29:
        !            30:   begin
        !            31:     new_line;
        !            32:     put_line("Reading the name of the output file.");
        !            33:     Read_Name_and_Create_File(outfile);
        !            34:     new_line;
        !            35:     put_line("Reading the name of the file with the solutions.");
        !            36:     Read_Name_and_Open_File(solsfile);
        !            37:     get(solsfile,stsols);
        !            38:     mpsols := Create(stsols);
        !            39:    -- get(solsfile,mpsols);
        !            40:     put_line(outfile,"The list of solutions : ");
        !            41:     put(outfile,mpsols);
        !            42:     Residuals(outfile,p_eval,mpsols);
        !            43:   end Test_Solution_Residuals;
        !            44:
        !            45:   procedure Interactive_Test_Residuals
        !            46:               ( p : in Multprec_Complex_Poly_Systems.Poly_Sys ) is
        !            47:
        !            48:     p_eval : Multprec_Complex_Poly_SysFun.Eval_Poly_Sys(p'range) := Create(p);
        !            49:     root,eva : Vector(p'range);
        !            50:     res : Floating_Number;
        !            51:     ans : character;
        !            52:
        !            53:   begin
        !            54:     loop
        !            55:       new_line;
        !            56:       put("Give "); put(root'last,1);
        !            57:       put_line(" complex numbers for the root : ");
        !            58:       get(root);
        !            59:       eva := Eval(p_eval,root);
        !            60:       put_line("The evaluated root : "); put_line(eva);
        !            61:       res := Residual(p_eval,root);
        !            62:       put("The residual : "); put(res); new_line;
        !            63:       put("Do you want more tests ? (y/n) "); Ask_Yes_or_No(ans);
        !            64:       Clear(root); Clear(eva); Clear(res);
        !            65:       exit when (ans /= 'y');
        !            66:     end loop;
        !            67:   end Interactive_Test_Residuals;
        !            68:
        !            69:   procedure Main is
        !            70:
        !            71:     lp : Standard_Complex_Poly_Systems.Link_to_Poly_Sys;
        !            72:     ans : character;
        !            73:
        !            74:   begin
        !            75:     put_line("Choose one of the following : ");
        !            76:     put_line("  1. Evaluate user-given vectors");
        !            77:     put_line("  2. Residuals for a solution list.");
        !            78:     put("Type 1 or 2 to select : "); Ask_Alternative(ans,"12");
        !            79:     new_line;
        !            80:     get(lp);
        !            81:     declare
        !            82:       mp : Multprec_Complex_Poly_Systems.Poly_Sys(lp'range) := Convert(lp.all);
        !            83:     begin
        !            84:       if ans = '1'
        !            85:        then Interactive_Test_Residuals(mp);
        !            86:        else Test_Solution_Residuals(mp);
        !            87:       end if;
        !            88:     end;
        !            89:   end Main;
        !            90:
        !            91: begin
        !            92:   new_line;
        !            93:   put_line("Test on the multi-precision residual computation.");
        !            94:   new_line;
        !            95:   Main;
        !            96: end ts_mreseva;

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