Added an `eof-object' test, updated `STATUS'.
[guile-r6rs-libs.git] / src / ieee754-double.h
blobd2ddc641d928e484f6ee93da32d9387277942222
1 /* Copyright (C) 1992, 1995, 1996, 1999 Free Software Foundation, Inc.
2 This file is part of the GNU C Library.
4 The GNU C Library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) any later version.
9 The GNU C Library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Lesser General Public License for more details.
14 You should have received a copy of the GNU Lesser General Public
15 License along with the GNU C Library; if not, write to the Free
16 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
17 02111-1307 USA. */
19 #ifndef IEEE754_DOUBLE_H
20 #define IEEE754_DOUBLE_H 1
22 /* Based on glibc's <ieee754.h> and modified by Ludovic Courtès to include
23 all possible IEEE-754 double-precision representations. */
25 /* This is the IEEE 754 double-precision format. */
26 union ieee754_double
28 double d;
30 struct
32 /* Big endian. */
34 unsigned int negative:1;
35 unsigned int exponent:11;
36 /* Together these comprise the mantissa. */
37 unsigned int mantissa0:20;
38 unsigned int mantissa1:32;
39 } big_endian;
41 struct
43 /* Both byte order and word order are little endian. */
45 /* Together these comprise the mantissa. */
46 unsigned int mantissa1:32;
47 unsigned int mantissa0:20;
48 unsigned int exponent:11;
49 unsigned int negative:1;
50 } little_little_endian;
52 struct
54 /* Byte order is little endian but word order is big endian. Not
55 sure this is very wide spread. */
56 unsigned int mantissa0:20;
57 unsigned int exponent:11;
58 unsigned int negative:1;
59 unsigned int mantissa1:32;
60 } little_big_endian;
65 #endif /* ieee754-double.h */