home *** CD-ROM | disk | FTP | other *** search
- ------------------------------------------------------------------------------
- -- --
- -- GNAT COMPILER COMPONENTS --
- -- --
- -- S Y S T E M . F A T _ G E N --
- -- --
- -- S p e c --
- -- --
- -- $Revision: 1.3 $ --
- -- --
- -- This specification comes from the Generic Primitive Functions standard. --
- -- In accordance with the copyright of that document, you can freely copy --
- -- and modify this specification, provided that if you do redistribute it, --
- -- then any changes that you have made must be clearly indicated. --
- -- --
- ------------------------------------------------------------------------------
-
- -- This generic package provides a target independent implementation of the
- -- floating-point attributes that denote functions. The implementations here
- -- are portable, but very slow. The runtime contains a set of instantiations
- -- of this package for all predefined floating-point types, and these should
- -- be replaced by efficient assembly language code where possible.
-
- generic
- type T is digits <>;
-
- package System.Fat_Gen is
-
- subtype UI is Integer;
- -- The runtime representation of universal integer for the purposes of
- -- this package is integer. The expander generates conversions for the
- -- actual type used. For functions returning universal integer, there
- -- is no problem, since the result always is in range of integer. For
- -- input arguments, the expander has to do some special casing to deal
- -- with the (very annoying!) cases of out of range values. If we used
- -- Long_Long_Integer to represent universal, then there would be no
- -- problem, but the resulting inefficiency would be annoying.
-
- function Adjacent (X, Towards : T) return T;
-
- function Ceiling (X : T) return T;
-
- function Compose (Fraction : T; Exponent : UI) return T;
-
- function Copy_Sign (Value, Sign : T) return T;
-
- function Exponent (X : T) return UI;
-
- function Floor (X : T) return T;
-
- function Fraction (X : T) return T;
-
- function Leading_Part (X : T; Radix_Digits : UI) return T;
-
- function Machine (X : T) return T;
-
- function Model (X : T) return T;
-
- function Pred (X : T) return T;
-
- function Remainder (X, Y : T) return T;
-
- function Rounding (X : T) return T;
-
- function Scaling (X : T; Adjustment : UI) return T;
-
- function Succ (X : T) return T;
-
- function Truncation (X : T) return T;
-
- function Unbiased_Rounding (X : T) return T;
-
- private
- pragma Inline (Machine);
- pragma Inline (Model);
-
- end System.Fat_Gen;
-