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

Annotation of OpenXM_contrib/PHC/Ada/Schubert/ts_cheby.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_Floating_Vectors;          use Standard_Floating_Vectors;
        !             5: with Standard_Floating_Vectors_io;       use Standard_Floating_Vectors_io;
        !             6: with Chebychev_Polynomials;              use Chebychev_Polynomials;
        !             7:
        !             8: procedure ts_cheby is
        !             9:
        !            10:   procedure Test_Create is
        !            11:
        !            12:     k : natural;
        !            13:
        !            14:   begin
        !            15:     new_line;
        !            16:     put_line("Testing the creation of Chebychev polynomials.");
        !            17:     new_line;
        !            18:     put("Give the degree k : "); get(k);
        !            19:     for i in 0..k loop
        !            20:       declare
        !            21:         pi : constant Vector := Create(i);
        !            22:       begin
        !            23:         put("The coefficients of the "); put(i,1);
        !            24:         put_line("-degree Chebychev polynomial : ");
        !            25:         put_line(pi);
        !            26:       end;
        !            27:     end loop;
        !            28:   end Test_Create;
        !            29:
        !            30:   procedure Test_Diff is
        !            31:
        !            32:     k : natural;
        !            33:     ans : character;
        !            34:
        !            35:   begin
        !            36:     new_line;
        !            37:     put_line("Testing the differentiation of Chebychev polynomials.");
        !            38:     loop
        !            39:       new_line;
        !            40:       put("Give the degree k : "); get(k);
        !            41:       declare
        !            42:         pk : constant Vector := Create(k);
        !            43:         dp : constant Vector := Diff(pk);
        !            44:       begin
        !            45:         put("The coefficients of the "); put(k,1);
        !            46:         put_line("-degree Chebychev polynomial : ");
        !            47:         put_line(pk);
        !            48:         put_line("The coefficients of its derivative : ");
        !            49:         put_line(dp);
        !            50:         for i in 1..k loop
        !            51:           declare
        !            52:             dpi : constant Vector := Diff(pk,i);
        !            53:           begin
        !            54:             put("The coefficients after deriving "); put(i,1);
        !            55:             put_line(" times : "); put_line(dpi);
        !            56:           end;
        !            57:         end loop;
        !            58:       end;
        !            59:       put("Do you want more tests (y/n) "); get(ans);
        !            60:       exit when (ans /= 'y');
        !            61:     end loop;
        !            62:   end Test_Diff;
        !            63:
        !            64:   procedure Test_Int is
        !            65:
        !            66:     k : natural;
        !            67:     ans : character;
        !            68:
        !            69:   begin
        !            70:     new_line;
        !            71:     put_line("Testing the Antidifferentiation of Chebychev polynomials.");
        !            72:     loop
        !            73:       new_line;
        !            74:       put("Give the degree k : "); get(k);
        !            75:       declare
        !            76:         pk : constant Vector := Create(k);
        !            77:         dp : constant Vector := Int(pk);
        !            78:       begin
        !            79:         put("The coefficients of the "); put(k,1);
        !            80:         put_line("-degree Chebychev polynomial : ");
        !            81:         put_line(pk);
        !            82:         put_line("The coefficients of its antiderivative : ");
        !            83:         put_line(dp);
        !            84:         for i in 1..k loop
        !            85:           declare
        !            86:             dpi : constant Vector := Int(pk,i);
        !            87:           begin
        !            88:             put("The coefficients after antideriving "); put(i,1);
        !            89:             put_line(" times : "); put_line(dpi);
        !            90:           end;
        !            91:         end loop;
        !            92:       end;
        !            93:       put("Do you want more tests (y/n) "); get(ans);
        !            94:       exit when (ans /= 'y');
        !            95:     end loop;
        !            96:   end Test_Int;
        !            97:
        !            98:   procedure Test_Eval is
        !            99:
        !           100:     k : natural;
        !           101:     ans : character;
        !           102:
        !           103:   begin
        !           104:     new_line;
        !           105:     put_line("Testing the evaluation of Chebychev polynomials.");
        !           106:     loop
        !           107:       new_line;
        !           108:       put("Give the degree k : "); get(k);
        !           109:       declare
        !           110:         p : constant Vector := Create(k);
        !           111:         x : double_float;
        !           112:       begin
        !           113:         loop
        !           114:           put("Give x : "); get(x);
        !           115:           put("p(x) : "); put(Eval(p,x)); new_line;
        !           116:           put("COS-ARCCOS-eval : "); put(Eval(k,x)); new_line;
        !           117:           put("Do you want more evaluations ? (y/n) "); get(ans);
        !           118:           exit when (ans /= 'y');
        !           119:         end loop;
        !           120:       end;
        !           121:       put("Do you want other polynomials to evaluate ? (y/n) "); get(ans);
        !           122:       exit when (ans /= 'y');
        !           123:     end loop;
        !           124:   end Test_Eval;
        !           125:
        !           126:   procedure Main is
        !           127:
        !           128:     ans : character;
        !           129:
        !           130:   begin
        !           131:     new_line;
        !           132:     put_line("Testing the manipulation of Chebychev polynomials.");
        !           133:     loop
        !           134:       new_line;
        !           135:       put_line("Choose one of the following :");
        !           136:       put_line("  0. Exit this program.");
        !           137:       put_line("  1. Creation of Chebychev polynomials.");
        !           138:       put_line("  2. Differentiation of Chebychev polynomials.");
        !           139:       put_line("  3. Antidifferentiation of Chebychev polynomials.");
        !           140:       put_line("  4. Evaluation of Chebychev polynomials.");
        !           141:       put("Type 0,1,2,3 or 4 to make your choice : "); get(ans);
        !           142:       exit when (ans = '0');
        !           143:       case ans is
        !           144:         when '1' => Test_Create;
        !           145:         when '2' => Test_Diff;
        !           146:         when '3' => Test_Int;
        !           147:         when '4' => Test_Eval;
        !           148:         when others => null;
        !           149:       end case;
        !           150:     end loop;
        !           151:   end Main;
        !           152:
        !           153: begin
        !           154:   Main;
        !           155: end ts_cheby;

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