[BACK]Return to ts_matfun.adb CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / PHC / Ada / Math_Lib / Numbers

Annotation of OpenXM_contrib/PHC/Ada/Math_Lib/Numbers/ts_matfun.adb, Revision 1.1

1.1     ! maekawa     1: with text_io,integer_io;                 use text_io,integer_io;
        !             2: with Standard_Floating_Numbers;          use Standard_Floating_Numbers;
        !             3: with Standard_Floating_Numbers_io;       use Standard_Floating_Numbers_io;
        !             4: with Standard_Mathematical_Functions;    use Standard_Mathematical_Functions;
        !             5: with Multprec_Floating_Numbers;          use Multprec_Floating_Numbers;
        !             6: with Multprec_Floating_Numbers_io;       use Multprec_Floating_Numbers_io;
        !             7: with Multprec_Mathematical_Functions;    use Multprec_Mathematical_Functions;
        !             8:
        !             9: procedure ts_matfun is
        !            10:
        !            11:   procedure Read ( f : in out Floating_Number; name : in string ) is
        !            12:
        !            13:     n : natural;
        !            14:
        !            15:   begin
        !            16:     put("Give " & name & " : "); get(f);
        !            17:     put("Current size is "); put(Size_Fraction(f),1);
        !            18:     put(".  Give expansion factor : "); get(n);
        !            19:     if n > 0
        !            20:      then Expand(f,n);
        !            21:     end if;
        !            22:   end Read;
        !            23:
        !            24:   procedure Test_Standard_COS_and_SIN is
        !            25:
        !            26:     x,cx,sx : double_float;
        !            27:     ans : character;
        !            28:
        !            29:   begin
        !            30:     new_line;
        !            31:     put_line("Testing whether cos^2(x) + sin^2(x) = 1 holds.");
        !            32:     loop
        !            33:       new_line;
        !            34:       put("Give x : "); get(x);
        !            35:       cx := COS(x);  cx := cx*cx;
        !            36:       sx := SIN(x);  sx := sx*sx;
        !            37:       put("cos^2(x) + sin^2(x) = "); put(cx+sx); new_line;
        !            38:       put("Do you want more tests ? (y/n) "); get(ans);
        !            39:       exit when (ans /= 'y');
        !            40:     end loop;
        !            41:   end Test_Standard_COS_and_SIN;
        !            42:
        !            43:   procedure Test_Standard_SQRT is
        !            44:
        !            45:     x,y,diff : double_float;
        !            46:
        !            47:   begin
        !            48:     put("Give x : "); get(x);
        !            49:     y := SQRT(x);
        !            50:     put("SQRT(x) : "); put(y); new_line;
        !            51:     y := y*y;
        !            52:     put("(SQRT(x))**2 : "); put(y); new_line;
        !            53:     diff := x - y;
        !            54:     put("x - (SQRT(x))**2 : "); put(diff); new_line;
        !            55:   end Test_Standard_SQRT;
        !            56:
        !            57:   procedure Test_Multprec_SQRT is
        !            58:
        !            59:     x,y,diff : Floating_Number;
        !            60:
        !            61:   begin
        !            62:     Read(x,"x");
        !            63:    -- put("Give x : "); get(x);
        !            64:     y := SQRT(x);
        !            65:     put("SQRT(x) : "); put(y); new_line;
        !            66:     Mul(y,y);
        !            67:     put("SQRT(x))**2 : "); put(y); new_line;
        !            68:     diff := x - y;
        !            69:     put("x - (SQRT(x))**2 : "); put(diff); new_line;
        !            70:   end Test_Multprec_SQRT;
        !            71:
        !            72:   procedure Main is
        !            73:
        !            74:     ans : character;
        !            75:
        !            76:   begin
        !            77:     new_line;
        !            78:     put_line("Testing some mathematical functions.");
        !            79:     loop
        !            80:       new_line;
        !            81:       put_line("Choose one of the following : ");
        !            82:       put_line("  0. Exit this program.");
        !            83:       put_line("  1. COS/SIN for standard floating-point numbers.");
        !            84:       put_line("  2. SQRT for standard floating-point numbers.");
        !            85:       put_line("  3. SQRT for multi-precision floating-point numbers.");
        !            86:       put("Type 0,1,2 or 3 to make your selection : "); get(ans);
        !            87:       exit when (ans = '0');
        !            88:       case ans is
        !            89:         when '1' => Test_Standard_COS_and_SIN;
        !            90:         when '2' => Test_Standard_SQRT;
        !            91:         when '3' => Test_Multprec_SQRT;
        !            92:         when others => null;
        !            93:       end case;
        !            94:     end loop;
        !            95:   end Main;
        !            96:
        !            97: begin
        !            98:   Main;
        !            99: end ts_matfun;

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