xref: /plan9/power/include/ape/float.h (revision 59cc4ca53493a3c6d2349fe2b7f7c40f7dce7294)
17dd7cddfSDavid du Colombier #ifndef __FLOAT
27dd7cddfSDavid du Colombier #define __FLOAT
37dd7cddfSDavid du Colombier /* IEEE, default rounding */
47dd7cddfSDavid du Colombier 
57dd7cddfSDavid du Colombier #define FLT_ROUNDS	1
67dd7cddfSDavid du Colombier #define FLT_RADIX	2
77dd7cddfSDavid du Colombier 
87dd7cddfSDavid du Colombier #define FLT_DIG		6
97dd7cddfSDavid du Colombier #define FLT_EPSILON	1.19209290e-07
107dd7cddfSDavid du Colombier #define FLT_MANT_DIG	24
117dd7cddfSDavid du Colombier #define FLT_MAX		3.40282347e+38
127dd7cddfSDavid du Colombier #define FLT_MAX_10_EXP	38
137dd7cddfSDavid du Colombier #define FLT_MAX_EXP	128
147dd7cddfSDavid du Colombier #define FLT_MIN		1.17549435e-38
157dd7cddfSDavid du Colombier #define FLT_MIN_10_EXP	-37
167dd7cddfSDavid du Colombier #define FLT_MIN_EXP	-125
177dd7cddfSDavid du Colombier 
187dd7cddfSDavid du Colombier #define DBL_DIG		15
197dd7cddfSDavid du Colombier #define DBL_EPSILON	2.2204460492503131e-16
207dd7cddfSDavid du Colombier #define DBL_MANT_DIG	53
217dd7cddfSDavid du Colombier #define DBL_MAX		1.797693134862315708145e+308
227dd7cddfSDavid du Colombier #define DBL_MAX_10_EXP	308
237dd7cddfSDavid du Colombier #define DBL_MAX_EXP	1024
247dd7cddfSDavid du Colombier #define DBL_MIN		2.225073858507201383090233e-308
257dd7cddfSDavid du Colombier #define DBL_MIN_10_EXP	-307
267dd7cddfSDavid du Colombier #define DBL_MIN_EXP	-1021
277dd7cddfSDavid du Colombier #define LDBL_MANT_DIG	DBL_MANT_DIG
287dd7cddfSDavid du Colombier #define LDBL_EPSILON	DBL_EPSILON
297dd7cddfSDavid du Colombier #define LDBL_DIG	DBL_DIG
307dd7cddfSDavid du Colombier #define LDBL_MIN_EXP	DBL_MIN_EXP
317dd7cddfSDavid du Colombier #define LDBL_MIN	DBL_MIN
327dd7cddfSDavid du Colombier #define LDBL_MIN_10_EXP	DBL_MIN_10_EXP
337dd7cddfSDavid du Colombier #define LDBL_MAX_EXP	DBL_MAX_EXP
347dd7cddfSDavid du Colombier #define LDBL_MAX	DBL_MAX
357dd7cddfSDavid du Colombier #define LDBL_MAX_10_EXP	DBL_MAX_10_EXP
367dd7cddfSDavid du Colombier 
37*59cc4ca5SDavid du Colombier typedef 	union FPdbleword FPdbleword;
38*59cc4ca5SDavid du Colombier union FPdbleword
39*59cc4ca5SDavid du Colombier {
40*59cc4ca5SDavid du Colombier 	double	x;
41*59cc4ca5SDavid du Colombier 	struct {	/* big endian */
42*59cc4ca5SDavid du Colombier 		long hi;
43*59cc4ca5SDavid du Colombier 		long lo;
44*59cc4ca5SDavid du Colombier 	};
45*59cc4ca5SDavid du Colombier };
46*59cc4ca5SDavid du Colombier 
477dd7cddfSDavid du Colombier #ifdef _RESEARCH_SOURCE
487dd7cddfSDavid du Colombier /* define stuff needed for floating conversion */
497dd7cddfSDavid du Colombier #define IEEE_MC68k	1
507dd7cddfSDavid du Colombier #define Sudden_Underflow 1
517dd7cddfSDavid du Colombier #endif
527dd7cddfSDavid du Colombier #ifdef _PLAN9_SOURCE
537dd7cddfSDavid du Colombier /* FCR */
547dd7cddfSDavid du Colombier #define	FPINEX	(1<<7)
557dd7cddfSDavid du Colombier #define	FPOVFL	(1<<9)
567dd7cddfSDavid du Colombier #define	FPUNFL	(1<<8)
577dd7cddfSDavid du Colombier #define	FPZDIV	(1<<10)
587dd7cddfSDavid du Colombier #define	FPRNR	(0<<0)
597dd7cddfSDavid du Colombier #define	FPRZ	(1<<0)
607dd7cddfSDavid du Colombier #define	FPRPINF	(2<<0)
617dd7cddfSDavid du Colombier #define	FPRNINF	(3<<0)
627dd7cddfSDavid du Colombier #define	FPRMASK	(3<<0)
637dd7cddfSDavid du Colombier #define	FPPEXT	0
647dd7cddfSDavid du Colombier #define	FPPSGL	0
657dd7cddfSDavid du Colombier #define	FPPDBL	0
667dd7cddfSDavid du Colombier #define	FPPMASK	0
677dd7cddfSDavid du Colombier /* FSR */
687dd7cddfSDavid du Colombier #define	FPAINEX	(1<<2)
697dd7cddfSDavid du Colombier #define	FPAOVFL	(1<<4)
707dd7cddfSDavid du Colombier #define	FPAUNFL	(1<<3)
717dd7cddfSDavid du Colombier #define	FPAZDIV	(1<<5)
727dd7cddfSDavid du Colombier #endif
737dd7cddfSDavid du Colombier #endif /* __FLOAT */
74