New header file <ieeefp.h>, which provides a API for getting and setting
IEEE rounding mode, exception enable flags, and exception sticky flags.
This commit is contained in:
parent
7a5da7fda2
commit
a9ae458fc3
@ -1,4 +1,4 @@
|
||||
# $NetBSD: Makefile,v 1.52 1995/02/17 09:08:08 jtc Exp $
|
||||
# $NetBSD: Makefile,v 1.53 1995/04/07 00:59:09 jtc Exp $
|
||||
|
||||
# @(#)Makefile 5.45.1.1 (Berkeley) 5/6/91
|
||||
|
||||
@ -10,10 +10,10 @@
|
||||
# Missing: mp.h
|
||||
|
||||
FILES= a.out.h ar.h assert.h bitstring.h bm.h ctype.h db.h dirent.h disktab.h \
|
||||
err.h fnmatch.h fstab.h fts.h glob.h grp.h iso646.h kvm.h langinfo.h \
|
||||
limits.h locale.h math.h memory.h mpool.h ndbm.h netdb.h netgroup.h \
|
||||
nlist.h nl_types.h paths.h pwd.h ranlib.h regex.h regexp.h resolv.h \
|
||||
search.h setjmp.h sgtty.h signal.h stab.h stddef.h \
|
||||
err.h fnmatch.h fstab.h fts.h glob.h grp.h ieeefp.h iso646.h kvm.h \
|
||||
langinfo.h limits.h locale.h math.h memory.h mpool.h ndbm.h netdb.h \
|
||||
netgroup.h nlist.h nl_types.h paths.h pwd.h ranlib.h regex.h regexp.h \
|
||||
resolv.h search.h setjmp.h sgtty.h signal.h stab.h stddef.h \
|
||||
stdio.h stdlib.h string.h strings.h struct.h sysexits.h time.h \
|
||||
ttyent.h tzfile.h unistd.h utime.h utmp.h vis.h malloc.h \
|
||||
link.h
|
||||
|
46
include/ieeefp.h
Normal file
46
include/ieeefp.h
Normal file
@ -0,0 +1,46 @@
|
||||
/*
|
||||
* Written by J.T. Conklin, Apr 6, 1995
|
||||
* Public domain.
|
||||
*/
|
||||
|
||||
#ifndef _IEEEFP_H_
|
||||
#define _IEEEFP_H_
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
typedef int fp_except;
|
||||
#ifdef __i386__
|
||||
#define FP_X_INV 0x01 /* invalid operation exception */
|
||||
#define FP_X_DNML 0x02 /* denormalization exception */
|
||||
#define FP_X_DZ 0x04 /* divide-by-zero exception */
|
||||
#define FP_X_OFL 0x08 /* overflow exception */
|
||||
#define FP_X_UFL 0x10 /* underflow exception */
|
||||
#define FP_X_IMP 0x20 /* imprecise (loss of precision) */
|
||||
#endif
|
||||
|
||||
#if defined(__i386__)
|
||||
typedef enum {
|
||||
FP_RN=0, /* round to nearest representable number */
|
||||
FP_RP=1, /* round to positive infinity */
|
||||
FP_RM=2, /* round to negative infinity */
|
||||
FP_RZ=3 /* round to zero (truncate) */
|
||||
} fp_rnd ;
|
||||
|
||||
#elif defined(__m68k__)
|
||||
typedef enum {
|
||||
FP_RN=0, /* round to nearest representable number */
|
||||
FP_RZ=1, /* round to zero (truncate) */
|
||||
FP_RM=2, /* round to negative infinity */
|
||||
FP_RP=3 /* round to positive infinity */
|
||||
} fp_rnd ;
|
||||
|
||||
#endif
|
||||
|
||||
extern fp_rnd fpgetround __P((void));
|
||||
extern fp_rnd fpsetround __P((fp_rnd));
|
||||
extern fp_except fpgetmask __P((void));
|
||||
extern fp_except fpsetmask __P((fp_except));
|
||||
extern fp_except fpgetsticky __P((void));
|
||||
extern fp_except fpsetsticky __P((fp_except));
|
||||
|
||||
#endif /* _IEEEFP_H_ */
|
Loading…
Reference in New Issue
Block a user