Ada Programming/Libraries/System.Fat Gen

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.

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.