home *** CD-ROM | disk | FTP | other *** search
/ The Unsorted BBS Collection / thegreatunsorted.tar / thegreatunsorted / programming / misc_programming / MATH / TGEF.A < prev   
Text File  |  1990-11-01  |  8KB  |  383 lines

  1. with generic_elementary_functions;
  2. with text_io;  use text_io;
  3. with fio;
  4.  
  5. procedure testelem is
  6.  
  7.    overflow_error: exception renames numeric_error;
  8.  
  9.    type real is digits 6;
  10.    subtype long_real is float;
  11.    package ele is new generic_elementary_functions( real);  use ele;
  12.  
  13.    x       : real;
  14.    defy    : real :=  5.0;
  15.    defx    : real :=  7.0;
  16.    defbase : real := 10.0;
  17.  
  18.    procedure fput (r: in real) is
  19.    begin
  20.       fio.put(long_real(r), 2, 14, 3);
  21.    end fput;
  22.  
  23.    procedure fget (r: out real) is
  24.       lr: long_real;
  25.    begin
  26.       fio.get(lr);
  27.       r := real(lr);
  28.    end fget;
  29.  
  30. begin
  31.    put_line("Interactive test of elementary_functions.");
  32.    put("  defx is ");  fput(defx);     new_line;
  33.    put("  defy is ");  fput(defy);     new_line;
  34.    put("  base is ");  fput(defbase);  new_line;
  35.    new_line;
  36.  
  37.    loop
  38.       loop
  39.      begin
  40.         put("Enter x? ");
  41.         fget(x);
  42.         put("                    x = ");  fput(x);  new_line;
  43.         exit;
  44.      exception
  45.         when data_error =>
  46.           skip_line;
  47.           put_line("data_error");
  48.      end;
  49.       end loop;
  50.  
  51.       begin
  52.      put("              sqrt(x) = ");
  53.      fput(sqrt(x));
  54.       exception
  55.      when overflow_error =>
  56.         put("overflow");
  57.      when argument_error =>
  58.         put("argument_error");
  59.       end;
  60.       new_line;
  61.  
  62.       begin
  63.      put("               log(x) = ");
  64.      fput(log(x));
  65.       exception
  66.      when overflow_error =>
  67.         put("overflow");
  68.      when argument_error =>
  69.         put("argument_error");
  70.       end;
  71.       new_line;
  72.  
  73.       begin
  74.      put("         log(x, base) = ");
  75.      fput(log(x, defbase));
  76.       exception
  77.      when overflow_error =>
  78.         put("overflow");
  79.      when argument_error =>
  80.         put("argument_error");
  81.       end;
  82.       new_line;
  83.  
  84.       begin
  85.      put("               exp(x) = ");
  86.      fput(exp(x));
  87.       exception
  88.      when overflow_error =>
  89.         put("overflow");
  90.      when argument_error =>
  91.         put("argument_error");
  92.       end;
  93.       new_line;
  94.  
  95.       begin
  96.      put("            base ** x = ");
  97.      fput(defbase ** x);
  98.       exception
  99.      when overflow_error =>
  100.         put("overflow");
  101.      when argument_error =>
  102.         put("argument_error");
  103.       end;
  104.       new_line;
  105.  
  106.       begin
  107.      put("    (1.0 / base) ** x = ");
  108.      fput((1.0 / defbase) ** x);
  109.       exception
  110.      when overflow_error =>
  111.         put("overflow");
  112.      when argument_error =>
  113.         put("argument_error");
  114.       end;
  115.       new_line;
  116.  
  117.       begin
  118.      put("               sin(x) = ");
  119.      fput(sin(x));
  120.       exception
  121.      when overflow_error =>
  122.         put("overflow");
  123.      when argument_error =>
  124.         put("argument_error");
  125.       end;
  126.       new_line;
  127.  
  128.       begin
  129.      put("         sin(x, base) = ");
  130.      fput(sin(x, defbase));
  131.       exception
  132.      when overflow_error =>
  133.         put("overflow");
  134.      when argument_error =>
  135.         put("argument_error");
  136.       end;
  137.       new_line;
  138.  
  139.       begin
  140.      put("               cos(x) = ");
  141.      fput(cos(x));
  142.       exception
  143.      when overflow_error =>
  144.         put("overflow");
  145.      when argument_error =>
  146.         put("argument_error");
  147.       end;
  148.       new_line;
  149.  
  150.       begin
  151.      put("         cos(x, base) = ");
  152.      fput(cos(x, defbase));
  153.       exception
  154.      when overflow_error =>
  155.         put("overflow");
  156.      when argument_error =>
  157.         put("argument_error");
  158.       end;
  159.       new_line;
  160.  
  161.       begin
  162.      put("               tan(x) = ");
  163.      fput(tan(x));
  164.       exception
  165.      when overflow_error =>
  166.         put("overflow");
  167.      when argument_error =>
  168.         put("argument_error");
  169.       end;
  170.       new_line;
  171.  
  172.       begin
  173.      put("         tan(x, base) = ");
  174.      fput(tan(x, defbase));
  175.       exception
  176.      when overflow_error =>
  177.         put("overflow");
  178.      when argument_error =>
  179.         put("argument_error");
  180.       end;
  181.       new_line;
  182.  
  183.       begin
  184.      put("               cot(x) = ");
  185.      fput(cot(x));
  186.       exception
  187.      when overflow_error =>
  188.         put("overflow");
  189.      when argument_error =>
  190.         put("argument_error");
  191.       end;
  192.       new_line;
  193.  
  194.       begin
  195.      put("         cot(x, base) = ");
  196.      fput(cot(x, defbase));
  197.       exception
  198.      when overflow_error =>
  199.         put("overflow");
  200.      when argument_error =>
  201.         put("argument_error");
  202.       end;
  203.       new_line;
  204.  
  205.       begin
  206.      put("            arcsin(x) = ");
  207.      fput(arcsin(x));
  208.       exception
  209.      when overflow_error =>
  210.         put("overflow");
  211.      when argument_error =>
  212.         put("argument_error");
  213.       end;
  214.       new_line;
  215.  
  216.       begin
  217.      put("      arcsin(x, base) = ");
  218.      fput(arcsin(x, defbase));
  219.       exception
  220.      when overflow_error =>
  221.         put("overflow");
  222.      when argument_error =>
  223.         put("argument_error");
  224.       end;
  225.       new_line;
  226.  
  227.       begin
  228.      put("            arccos(x) = ");
  229.      fput(arccos(x));
  230.       exception
  231.      when overflow_error =>
  232.         put("overflow");
  233.      when argument_error =>
  234.         put("argument_error");
  235.       end;
  236.       new_line;
  237.  
  238.       begin
  239.      put("      arccos(x, base) = ");
  240.      fput(arccos(x, defbase));
  241.       exception
  242.      when overflow_error =>
  243.         put("overflow");
  244.      when argument_error =>
  245.         put("argument_error");
  246.       end;
  247.       new_line;
  248.  
  249.       begin
  250.      put("            arctan(x) = ");
  251.      fput(arctan(x));
  252.       exception
  253.      when overflow_error =>
  254.         put("overflow");
  255.      when argument_error =>
  256.         put("argument_error");
  257.       end;
  258.       new_line;
  259.  
  260.       begin
  261.      put("arctan(x, defx, base) = ");
  262.      fput(arctan(x, defx, defbase));
  263.       exception
  264.      when overflow_error =>
  265.         put("overflow");
  266.      when argument_error =>
  267.         put("argument_error");
  268.       end;
  269.       new_line;
  270.  
  271.       begin
  272.      put("            arccot(x) = ");
  273.      fput(arccot(x));
  274.       exception
  275.      when overflow_error =>
  276.         put("overflow");
  277.      when argument_error =>
  278.         put("argument_error");
  279.       end;
  280.       new_line;
  281.  
  282.       begin
  283.      put("arccot(x, defy, base) = ");
  284.      fput(arccot(x, defy, defbase));
  285.       exception
  286.      when overflow_error =>
  287.         put("overflow");
  288.      when argument_error =>
  289.         put("argument_error");
  290.       end;
  291.       new_line;
  292.  
  293.       begin
  294.      put("              sinh(x) = ");
  295.      fput(sinh(x));
  296.       exception
  297.      when overflow_error =>
  298.         put("overflow");
  299.      when argument_error =>
  300.         put("argument_error");
  301.       end;
  302.       new_line;
  303.  
  304.       begin
  305.      put("              cosh(x) = ");
  306.      fput(cosh(x));
  307.       exception
  308.      when overflow_error =>
  309.         put("overflow");
  310.      when argument_error =>
  311.         put("argument_error");
  312.       end;
  313.       new_line;
  314.  
  315.       begin
  316.      put("              tanh(x) = ");
  317.      fput(tanh(x));
  318.       exception
  319.      when overflow_error =>
  320.         put("overflow");
  321.      when argument_error =>
  322.         put("argument_error");
  323.       end;
  324.       new_line;
  325.  
  326.       begin
  327.      put("              coth(x) = ");
  328.      fput(coth(x));
  329.       exception
  330.      when overflow_error =>
  331.         put("overflow");
  332.      when argument_error =>
  333.         put("argument_error");
  334.       end;
  335.       new_line;
  336.  
  337.       begin
  338.      put("           arcsinh(x) = ");
  339.      fput(arcsinh(x));
  340.       exception
  341.      when overflow_error =>
  342.         put("overflow");
  343.      when argument_error =>
  344.         put("argument_error");
  345.       end;
  346.       new_line;
  347.  
  348.       begin
  349.      put("           arccosh(x) = ");
  350.      fput(arccosh(x));
  351.       exception
  352.      when overflow_error =>
  353.         put("overflow");
  354.      when argument_error =>
  355.         put("argument_error");
  356.       end;
  357.       new_line;
  358.  
  359.       begin
  360.      put("           arctanh(x) = ");
  361.      fput(arctanh(x));
  362.       exception
  363.      when overflow_error =>
  364.         put("overflow");
  365.      when argument_error =>
  366.         put("argument_error");
  367.       end;
  368.       new_line;
  369.  
  370.       begin
  371.      put("           arccoth(x) = ");
  372.      fput(arccoth(x));
  373.       exception
  374.      when overflow_error =>
  375.         put("overflow");
  376.      when argument_error =>
  377.         put("argument_error");
  378.       end;
  379.       new_line;
  380.  
  381.    end loop;
  382. end testelem;
  383.