xref: /onnv-gate/usr/src/lib/libast/amd64/include/ast/ast_float.h (revision 12068:08a39a083754)
14887Schin /***********************************************************************
24887Schin *                                                                      *
34887Schin *               This software is part of the ast package               *
4*12068SRoger.Faulkner@Oracle.COM *          Copyright (c) 1985-2010 AT&T Intellectual Property          *
54887Schin *                      and is licensed under the                       *
64887Schin *                  Common Public License, Version 1.0                  *
78462SApril.Chin@Sun.COM *                    by AT&T Intellectual Property                     *
84887Schin *                                                                      *
94887Schin *                A copy of the License is available at                 *
104887Schin *            http://www.opensource.org/licenses/cpl1.0.txt             *
114887Schin *         (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9)         *
124887Schin *                                                                      *
134887Schin *              Information and Software Systems Research               *
144887Schin *                            AT&T Research                             *
154887Schin *                           Florham Park NJ                            *
164887Schin *                                                                      *
174887Schin *                 Glenn Fowler <gsf@research.att.com>                  *
184887Schin *                  David Korn <dgk@research.att.com>                   *
194887Schin *                   Phong Vo <kpv@research.att.com>                    *
204887Schin *                                                                      *
214887Schin ***********************************************************************/
224887Schin 
234887Schin /* : : generated by proto : : */
24*12068SRoger.Faulkner@Oracle.COM /* : : generated from /home/gisburn/ksh93/ast_ksh_20100309/build_i386_64bit/src/lib/libast/features/float by iffe version 2009-12-04 : : */
254887Schin 
264887Schin #ifndef _def_float_ast
274887Schin #if !defined(__PROTO__)
284887Schin #  if defined(__STDC__) || defined(__cplusplus) || defined(_proto) || defined(c_plusplus)
294887Schin #    if defined(__cplusplus)
304887Schin #      define __LINKAGE__	"C"
314887Schin #    else
324887Schin #      define __LINKAGE__
334887Schin #    endif
344887Schin #    define __STDARG__
354887Schin #    define __PROTO__(x)	x
364887Schin #    define __OTORP__(x)
374887Schin #    define __PARAM__(n,o)	n
384887Schin #    if !defined(__STDC__) && !defined(__cplusplus)
394887Schin #      if !defined(c_plusplus)
404887Schin #      	define const
414887Schin #      endif
424887Schin #      define signed
434887Schin #      define void		int
444887Schin #      define volatile
454887Schin #      define __V_		char
464887Schin #    else
474887Schin #      define __V_		void
484887Schin #    endif
494887Schin #  else
504887Schin #    define __PROTO__(x)	()
514887Schin #    define __OTORP__(x)	x
524887Schin #    define __PARAM__(n,o)	o
534887Schin #    define __LINKAGE__
544887Schin #    define __V_		char
554887Schin #    define const
564887Schin #    define signed
574887Schin #    define void		int
584887Schin #    define volatile
594887Schin #  endif
604887Schin #  define __MANGLE__	__LINKAGE__
614887Schin #  if defined(__cplusplus) || defined(c_plusplus)
624887Schin #    define __VARARG__	...
634887Schin #  else
644887Schin #    define __VARARG__
654887Schin #  endif
664887Schin #  if defined(__STDARG__)
674887Schin #    define __VA_START__(p,a)	va_start(p,a)
684887Schin #  else
694887Schin #    define __VA_START__(p,a)	va_start(p)
704887Schin #  endif
714887Schin #  if !defined(__INLINE__)
724887Schin #    if defined(__cplusplus)
734887Schin #      define __INLINE__	extern __MANGLE__ inline
744887Schin #    else
754887Schin #      if defined(_WIN32) && !defined(__GNUC__)
764887Schin #      	define __INLINE__	__inline
774887Schin #      endif
784887Schin #    endif
794887Schin #  endif
804887Schin #endif
814887Schin #if !defined(__LINKAGE__)
824887Schin #define __LINKAGE__		/* 2004-08-11 transition */
834887Schin #endif
844887Schin 
854887Schin #define _def_float_ast	1
864887Schin #define _sys_types	1	/* #include <sys/types.h> ok */
874887Schin #define _hdr_float	1	/* #include <float.h> ok */
884887Schin #define _hdr_limits	1	/* #include <limits.h> ok */
894887Schin #define _hdr_math	1	/* #include <math.h> ok */
904887Schin #define _hdr_values	1	/* #include <values.h> ok */
914887Schin #define _LIB_m	1	/* -lm is a library */
928462SApril.Chin@Sun.COM #define _lib_fpclassify	1	/* fpclassify() in default lib(s) */
934887Schin #define _lib_frexp	1	/* frexp() in default lib(s) */
944887Schin #define _lib_frexpl	1	/* frexpl() in default lib(s) */
954887Schin #define _lib_ldexp	1	/* ldexp() in default lib(s) */
964887Schin #define _lib_ldexpl	1	/* ldexpl() in default lib(s) */
974887Schin #define _lib_finite	1	/* finite() in default lib(s) */
988462SApril.Chin@Sun.COM #define _lib_isinf	1	/* isinf() in default lib(s) */
994887Schin #define _lib_isnan	1	/* isnan() in default lib(s) */
1004887Schin #define _lib_isnanl	1	/* isnanl() in default lib(s) */
1018462SApril.Chin@Sun.COM #define _lib_signbit	1	/* signbit() in default lib(s) */
1024887Schin #define _lib_copysign	1	/* copysign() in default lib(s) */
1034887Schin #define _lib_copysignl	1	/* copysignl() in default lib(s) */
1044887Schin #include <ast_common.h>
1054887Schin #include <float.h>
1064887Schin #include <math.h>
1074887Schin #ifndef FLT_DIG
1084887Schin #define FLT_DIG		 6
1094887Schin #endif
1104887Schin #ifndef FLT_MAX
1114887Schin #define FLT_MAX		 3.4028234663852885981170E+38F
1124887Schin #endif
1134887Schin #ifndef FLT_MAX_10_EXP
1144887Schin #define FLT_MAX_10_EXP	 ( + 38 )
1154887Schin #endif
1164887Schin #ifndef FLT_MAX_EXP
1174887Schin #define FLT_MAX_EXP	 ( + 128 )
1184887Schin #endif
1194887Schin #ifndef FLT_MIN
1204887Schin #define FLT_MIN		 1.1754943508222875079688E-38F
1214887Schin #endif
1224887Schin #ifndef FLT_MIN_10_EXP
1234887Schin #define FLT_MIN_10_EXP	 ( - 37 )
1244887Schin #endif
1254887Schin #ifndef FLT_MIN_EXP
1264887Schin #define FLT_MIN_EXP	 ( - 125 )
1274887Schin #endif
1284887Schin #ifndef DBL_DIG
1294887Schin #define DBL_DIG		 15
1304887Schin #endif
1314887Schin #ifndef DBL_MAX
1324887Schin #define DBL_MAX		 1.7976931348623157081452E+308
1334887Schin #endif
1344887Schin #ifndef DBL_MAX_10_EXP
1354887Schin #define DBL_MAX_10_EXP	 ( + 308 )
1364887Schin #endif
1374887Schin #ifndef DBL_MAX_EXP
1384887Schin #define DBL_MAX_EXP	 ( + 1024 )
1394887Schin #endif
1404887Schin #ifndef DBL_MIN
1414887Schin #define DBL_MIN		 2.2250738585072013830903E-308
1424887Schin #endif
1434887Schin #ifndef DBL_MIN_10_EXP
1444887Schin #define DBL_MIN_10_EXP	 ( - 307 )
1454887Schin #endif
1464887Schin #ifndef DBL_MIN_EXP
1474887Schin #define DBL_MIN_EXP	 ( - 1021 )
1484887Schin #endif
1494887Schin #ifndef LDBL_DIG
1504887Schin #define LDBL_DIG		 18
1514887Schin #endif
1524887Schin #ifndef LDBL_MAX
1534887Schin #define LDBL_MAX		 1.1897314953572317650213E+4932L
1544887Schin #endif
1554887Schin #ifndef LDBL_MAX_10_EXP
1564887Schin #define LDBL_MAX_10_EXP	 ( + 4932 )
1574887Schin #endif
1584887Schin #ifndef LDBL_MAX_EXP
1594887Schin #define LDBL_MAX_EXP	 ( + 16384 )
1604887Schin #endif
1614887Schin #ifndef LDBL_MIN
1624887Schin #define LDBL_MIN		 3.3621031431120935062627E-4932L
1634887Schin #endif
1644887Schin #ifndef LDBL_MIN_10_EXP
1654887Schin #define LDBL_MIN_10_EXP	 ( - 4931 )
1664887Schin #endif
1674887Schin #ifndef LDBL_MIN_EXP
1684887Schin #define LDBL_MIN_EXP	 ( - 16381 )
1694887Schin #endif
1704887Schin 
1714887Schin 
1724887Schin #define USHRT_DIG		4
1734887Schin #define UINT_DIG		9
1744887Schin #define ULONG_DIG		19
1754887Schin #define UINTMAX_DIG		ULONG_DIG
1764887Schin 
1774887Schin #define FLT_ULONG_MAX		18446744073709551615.0F
1784887Schin #define FLT_ULLONG_MAX		FLT_ULONG_MAX
1794887Schin #define FLT_UINTMAX_MAX		FLT_ULONG_MAX
1804887Schin #define FLT_LONG_MAX		9223372036854775807.0F
1814887Schin #define FLT_LLONG_MAX		FLT_LONG_MAX
1824887Schin #define FLT_INTMAX_MAX		FLT_LONG_MAX
1834887Schin #define FLT_LONG_MIN		(-9223372036854775808.0F)
1844887Schin #define FLT_LLONG_MIN		FLT_LONG_MIN
1854887Schin #define FLT_INTMAX_MIN		FLT_LONG_MIN
1864887Schin 
1874887Schin #define DBL_ULONG_MAX		18446744073709551615.0
1884887Schin #define DBL_ULLONG_MAX		DBL_ULONG_MAX
1894887Schin #define DBL_UINTMAX_MAX		DBL_ULONG_MAX
1904887Schin #define DBL_LONG_MAX		9223372036854775807.0
1914887Schin #define DBL_LLONG_MAX		DBL_LONG_MAX
1924887Schin #define DBL_INTMAX_MAX		DBL_LONG_MAX
1934887Schin #define DBL_LONG_MIN		(-9223372036854775808.0)
1944887Schin #define DBL_LLONG_MIN		DBL_LONG_MIN
1954887Schin #define DBL_INTMAX_MIN		DBL_LONG_MIN
1964887Schin 
1974887Schin #define LDBL_ULONG_MAX		18446744073709551615.0L
1984887Schin #define LDBL_ULLONG_MAX		LDBL_ULONG_MAX
1994887Schin #define LDBL_UINTMAX_MAX	LDBL_ULONG_MAX
2004887Schin #define LDBL_LONG_MAX		9223372036854775807.0L
2014887Schin #define LDBL_LLONG_MAX		LDBL_LONG_MAX
2024887Schin #define LDBL_INTMAX_MAX		LDBL_LONG_MAX
2034887Schin #define LDBL_LONG_MIN		(-9223372036854775808.0L)
2044887Schin #define LDBL_LLONG_MIN		LDBL_LONG_MIN
2054887Schin #define LDBL_INTMAX_MIN		LDBL_LONG_MIN
2064887Schin 
2074887Schin #define FLTMAX_UINTMAX_MAX	LDBL_UINTMAX_MAX
2084887Schin #define FLTMAX_INTMAX_MAX	LDBL_INTMAX_MAX
2094887Schin #define FLTMAX_INTMAX_MIN	LDBL_INTMAX_MIN
2104887Schin 
2114887Schin typedef union _ast_dbl_exp_u
2124887Schin {
2134887Schin 	uint32_t		e[sizeof(double)/4];
2144887Schin 	double			f;
2154887Schin } _ast_dbl_exp_t;
2164887Schin 
2174887Schin #define _ast_dbl_exp_index	1
2184887Schin #define _ast_dbl_exp_shift	20
2194887Schin 
2204887Schin typedef union _fltmax_exp_u
2214887Schin {
2224887Schin 	uint32_t		e[sizeof(_ast_fltmax_t)/4];
2234887Schin 	_ast_fltmax_t		f;
2244887Schin } _ast_fltmax_exp_t;
2254887Schin 
2264887Schin #define _ast_fltmax_exp_index	2
2274887Schin #define _ast_fltmax_exp_shift	0
2284887Schin 
2294887Schin #define _ast_flt_unsigned_max_t	unsigned long long
2304887Schin #define _ast_flt_nan_init	0xff,0xff,0xff,0x7f
2314887Schin #define _ast_flt_inf_init	0x00,0x00,0x80,0x7f
2324887Schin #define _ast_dbl_nan_init	0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f
2334887Schin #define _ast_dbl_inf_init	0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x7f
2344887Schin #define _ast_ldbl_nan_init	0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x40,0x00,0x00,0x00,0x00,0x00
2354887Schin #define _ast_ldbl_inf_init	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0x7f,0x40,0x00,0x00,0x00,0x00,0x00
2364887Schin #endif
237