xref: /netbsd-src/sys/arch/mips/include/float.h (revision ba65fde2d7fefa7d39838fa5fa855e62bd606b5e)
1 /*	$NetBSD: float.h,v 1.16 2011/07/07 22:52:48 matt Exp $ */
2 
3 #ifndef _MIPS_FLOAT_H_
4 #define _MIPS_FLOAT_H_
5 
6 #include <sys/cdefs.h>
7 
8 #if defined(__mips_n32) || defined(__mips_n64)
9 
10 #if __GNUC_PREREQ__(4,1)
11 
12 #define LDBL_MANT_DIG	__LDBL_MANT_DIG__
13 #define	LDBL_DIG	__LDBL_DIG__
14 #define	LDBL_MIN_EXP	__LDBL_MIN_EXP__
15 #define	LDBL_MIN_10_EXP	__LDBL_MIN_10_EXP__
16 #define	LDBL_MAX_EXP	__LDBL_MAX_EXP__
17 #define	LDBL_MAX_10_EXP	__LDBL_MAX_10_EXP__
18 #define	LDBL_EPSILON	__LDBL_EPSILON__
19 #define	LDBL_MIN	__LDBL_MIN__
20 #define	LDBL_MAX	__LDBL_MAX__
21 
22 #else
23 
24 #define LDBL_MANT_DIG	113
25 #define	LDBL_DIG	33
26 #define	LDBL_MIN_EXP	(-16381)
27 #define	LDBL_MIN_10_EXP	(-4931)
28 #define	LDBL_MAX_EXP	16384
29 #define	LDBL_MAX_10_EXP	4932
30 #if __STDC_VERSION__ >= 199901L
31 #define	LDBL_EPSILON	0x1p-112L
32 #define	LDBL_MIN	0x1p-16382L
33 #define	LDBL_MAX	0x1.ffffffffffffffffffffffffffffp+16383L,
34 #else
35 #define	LDBL_EPSILON	1.9259299443872358530559779425849273E-34L
36 #define	LDBL_MIN	3.3621031431120935062626778173217526E-4932L
37 #define	LDBL_MAX	1.1897314953572317650857593266280070E+4932L
38 #endif
39 
40 #endif /* !__GNUC_PREREQ__(4,1) */
41 
42 #endif	/* __mips_n32 || __mips_n64 */
43 
44 #include <sys/float_ieee754.h>
45 
46 #if defined(__mips_n32) || defined(__mips_n64)
47 
48 #if !defined(_ANSI_SOURCE) && !defined(_POSIX_C_SOURCE) && \
49     !defined(_XOPEN_SOURCE) || \
50     ((__STDC_VERSION__ - 0) >= 199901L) || \
51     ((_POSIX_C_SOURCE - 0) >= 200112L) || \
52     ((_XOPEN_SOURCE  - 0) >= 600) || \
53     defined(_ISOC99_SOURCE) || defined(_NETBSD_SOURCE)
54 #if __GNUC_PREREQ__(4,1)
55 #define	DECIMAL_DIG	__DECIMAL_DIG__
56 #else
57 #define	DECIMAL_DIG	36
58 #endif
59 #endif /* !defined(_ANSI_SOURCE) && ... */
60 
61 #endif	/* __mips_n32 || __mips_n64 */
62 
63 #endif	/* _MIPS_FLOAT_H_ */
64