* Copyright (c) 1992 The Regents of the University of California.
* This software was developed by the Computer Systems Engineering group
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
* contributed to Berkeley.
* All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Lawrence Berkeley Laboratory.
* %sccs.include.redist.c%
* @(#)ieee.h 7.3 (Berkeley) %G%
* from: $Header: ieee.h,v 1.7 92/11/26 02:04:37 torek Exp $
* ieee.h defines the machine-dependent layout of the machine's IEEE
* floating point. It does *not* define (yet?) any of the rounding
* mode bits, exceptions, and so forth.
* Define the number of bits in each fraction and exponent.
* Note that 1.0 x 2 == 0.1 x 2 and that denorms are represented
* as fractions that look like 0.fffff x 2 . This means that
* the number 0.10000 x 2 , for instance, is the same as the normalized
* float 1.0 x 2 . Thus, to represent 2 , we need one leading zero
* in the fraction; to represent 2 , we need two, and so on. This
* implies that the smallest denormalized number is 2
* for whichever format we are talking about: for single precision, for
* instance, we get .00000000000000000000001 x 2 , or 1.0 x 2 , and
* Floats whose exponent is in [1..INFNAN) (of whatever type) are
* `normal'. Floats whose exponent is INFNAN are either Inf or NaN.
* Floats whose exponent is zero are either zero (iff all fraction
* bits are zero) or subnormal values.
* A NaN is a `signalling NaN' if its QUIETNAN bit is clear in its
* high fraction; if the bit is set, it is a `quiet NaN'.
#define SNG_EXP_INFNAN 255
#define DBL_EXP_INFNAN 2047
#define EXT_EXP_INFNAN 32767
#define SNG_QUIETNAN (1 << 22)
#define DBL_QUIETNAN (1 << 19)
#define EXT_QUIETNAN (1 << 15)
#define DBL_EXP_BIAS 1023
#define EXT_EXP_BIAS 16383