zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

ieeefp.h (1299B) - Raw


      1 /* -
      2  * Written by J.T. Conklin, Apr 6, 1995
      3  * Public domain.
      4  * $NetBSD: ieeefp.h,v 1.2 1999/07/07 01:52:26 danw Exp $
      5  */
      6 
      7 #ifndef _MACHINE_IEEEFP_H_
      8 #define _MACHINE_IEEEFP_H_
      9 
     10 /* Deprecated historical FPU control interface */
     11 
     12 typedef int fp_except_t;
     13 #ifdef __SPE__
     14 #define FP_X_OFL	0x01	/* overflow exception */
     15 #define FP_X_UFL	0x02	/* underflow exception */
     16 #define FP_X_DZ		0x04	/* divide-by-zero exception */
     17 #define FP_X_INV	0x08	/* invalid operation exception */
     18 #define FP_X_IMP	0x10	/* imprecise (loss of precision) */
     19 #else
     20 #define FP_X_IMP	0x01	/* imprecise (loss of precision) */
     21 #define FP_X_DZ		0x02	/* divide-by-zero exception */
     22 #define FP_X_UFL	0x04	/* underflow exception */
     23 #define FP_X_OFL	0x08	/* overflow exception */
     24 #define FP_X_INV	0x10	/* invalid operation exception */
     25 #endif
     26 
     27 typedef enum {
     28     FP_RN=0,			/* round to nearest representable number */
     29     FP_RZ=1,			/* round to zero (truncate) */
     30     FP_RP=2,			/* round toward positive infinity */
     31     FP_RM=3			/* round toward negative infinity */
     32 } fp_rnd_t;
     33 
     34 __BEGIN_DECLS
     35 extern fp_rnd_t    fpgetround(void);
     36 extern fp_rnd_t    fpsetround(fp_rnd_t);
     37 extern fp_except_t fpgetmask(void);
     38 extern fp_except_t fpsetmask(fp_except_t);
     39 extern fp_except_t fpgetsticky(void);
     40 __END_DECLS
     41 
     42 #endif /* _MACHINE_IEEEFP_H_ */