home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / gnat-2.06-src.tgz / tar.out / fsf / gnat / ada / eval_fat.ads < prev    next >
Text File  |  1996-09-28  |  4KB  |  80 lines

  1. ------------------------------------------------------------------------------
  2. --                                                                          --
  3. --                         GNAT COMPILER COMPONENTS                         --
  4. --                                                                          --
  5. --                             E V A L _ F A T                              --
  6. --                                                                          --
  7. --                                 S p e c                                  --
  8. --                                                                          --
  9. --                            $Revision: 1.1 $                              --
  10. --                                                                          --
  11. -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  12. -- terms of the  GNU General Public License as published  by the Free Soft- --
  13. -- ware  Foundation;  either version 2,  or (at your option) any later ver- --
  14. -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
  15. -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
  16. -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
  17. -- for  more details.  You should have  received  a copy of the GNU General --
  18. -- Public License  distributed with GNAT;  see file COPYING.  If not, write --
  19. -- to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. --
  20. --                                                                          --
  21. ------------------------------------------------------------------------------
  22.  
  23. --  This package provides for compile-time evaluation of static calls to the
  24. --  floating-point attribute functions. It is the compile-time equivalent of
  25. --  the System.Exp_Gen runtime package. The coding is quite similar, as are
  26. --  the subprogram specs, except that the type is passed as an explicit
  27. --  first parameter (and used via ttypes, to obtain the necessary information
  28. --  about the characteristics of the type for computing the results.
  29.  
  30. with Types;  use Types;
  31. with Uintp;  use Uintp;
  32. with Urealp; use Urealp;
  33.  
  34. package Eval_Fat is
  35.  
  36.    subtype UI is Uint;
  37.    --  The compile time representation of universal integer
  38.  
  39.    subtype T is Ureal;
  40.    --  The compile time representation of floating-point values
  41.  
  42.    subtype R is Entity_Id;
  43.    --  The compile time representation of the floating-point root type
  44.  
  45.    function Adjacent          (RT : R; X, Towards : T)              return T;
  46.                               
  47.    function Ceiling           (RT : R; X : T)                       return T;
  48.                               
  49.    function Compose           (RT : R; Fraction : T; Exponent : UI) return T;
  50.                               
  51.    function Copy_Sign         (RT : R; Value, Sign : T)             return T;
  52.                               
  53.    function Exponent          (RT : R; X : T)                       return UI;
  54.                                                             
  55.    function Floor             (RT : R; X : T)                       return T;
  56.                                                             
  57.    function Fraction          (RT : R; X : T)                       return T;
  58.                               
  59.    function Leading_Part      (RT : R; X : T; Radix_Digits : UI)    return T;
  60.                               
  61.    function Machine           (RT : R; X : T)                       return T;
  62.                                                             
  63.    function Model             (RT : R; X : T)                       return T;
  64.                                                             
  65.    function Pred              (RT : R; X : T)                       return T;
  66.                               
  67.    function Remainder         (RT : R; X, Y : T)                    return T;
  68.                               
  69.    function Rounding          (RT : R; X : T)                       return T;
  70.                               
  71.    function Scaling           (RT : R; X : T; Adjustment : UI)      return T;
  72.                               
  73.    function Succ              (RT : R; X : T)                       return T;
  74.                                                             
  75.    function Truncation        (RT : R; X : T)                       return T;
  76.                                                             
  77.    function Unbiased_Rounding (RT : R; X : T)                       return T;
  78.  
  79. end Eval_Fat;
  80.