⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ieeefp.h

📁 标准c库代码,可以应用于各个系统提供了大量的基本函数
💻 H
字号:
#ifndef _IEEE_FP_H_#define _IEEE_FP_H_#include "_ansi.h"#include <machine/ieeefp.h>/* FIXME FIXME FIXME:   Neither of __ieee_{float,double}_shape_tape seem to be used anywhere   except in libm/test.  If that is the case, please delete these from here.   If that is not the case, please insert documentation here describing why   they're needed.  */#ifdef __IEEE_BIG_ENDIANtypedef union {  double value;  struct   {    unsigned int sign : 1;    unsigned int exponent: 11;    unsigned int fraction0:4;    unsigned int fraction1:16;    unsigned int fraction2:16;    unsigned int fraction3:16;      } number;  struct   {    unsigned int sign : 1;    unsigned int exponent: 11;    unsigned int quiet:1;    unsigned int function0:3;    unsigned int function1:16;    unsigned int function2:16;    unsigned int function3:16;  } nan;  struct   {    unsigned long msw;    unsigned long lsw;  } parts;    long aslong[2];} __ieee_double_shape_type;#endif#ifdef __IEEE_LITTLE_ENDIANtypedef union {  double value;  struct   {#ifdef __SMALL_BITFIELDS    unsigned int fraction3:16;    unsigned int fraction2:16;    unsigned int fraction1:16;    unsigned int fraction0: 4;#else    unsigned int fraction1:32;    unsigned int fraction0:20;#endif    unsigned int exponent :11;    unsigned int sign     : 1;  } number;  struct   {#ifdef __SMALL_BITFIELDS    unsigned int function3:16;    unsigned int function2:16;    unsigned int function1:16;    unsigned int function0:3;#else    unsigned int function1:32;    unsigned int function0:19;#endif    unsigned int quiet:1;    unsigned int exponent: 11;    unsigned int sign : 1;  } nan;  struct   {    unsigned long lsw;    unsigned long msw;  } parts;  long aslong[2];} __ieee_double_shape_type;#endif#ifdef __IEEE_BIG_ENDIANtypedef union{  float value;  struct   {    unsigned int sign : 1;    unsigned int exponent: 8;    unsigned int fraction0: 7;    unsigned int fraction1: 16;  } number;  struct   {    unsigned int sign:1;    unsigned int exponent:8;    unsigned int quiet:1;    unsigned int function0:6;    unsigned int function1:16;  } nan;  long p1;  } __ieee_float_shape_type;#endif#ifdef __IEEE_LITTLE_ENDIANtypedef union{  float value;  struct   {    unsigned int fraction0: 7;    unsigned int fraction1: 16;    unsigned int exponent: 8;    unsigned int sign : 1;  } number;  struct   {    unsigned int function1:16;    unsigned int function0:6;    unsigned int quiet:1;    unsigned int exponent:8;    unsigned int sign:1;  } nan;  long p1;  } __ieee_float_shape_type;#endif/* FLOATING ROUNDING */typedef int fp_rnd;#define FP_RN 0 	/* Round to nearest 		*/#define FP_RM 1		/* Round down 			*/#define FP_RP 2		/* Round up 			*/#define FP_RZ 3		/* Round to zero (trunate) 	*/fp_rnd _EXFUN(fpgetround,(void));fp_rnd _EXFUN(fpsetround, (fp_rnd));/* EXCEPTIONS */typedef int fp_except;#define FP_X_INV 0x10	/* Invalid operation 		*/#define FP_X_DX  0x80	/* Divide by zero		*/#define FP_X_OFL 0x04	/* Overflow exception		*/#define FP_X_UFL 0x02	/* Underflow exception		*/#define FP_X_IMP 0x01	/* imprecise exception		*/fp_except _EXFUN(fpgetmask,(void));fp_except _EXFUN(fpsetmask,(fp_except));fp_except _EXFUN(fpgetsticky,(void));fp_except _EXFUN(fpsetsticky, (fp_except));/* INTEGER ROUNDING */typedef int fp_rdi;#define FP_RDI_TOZ 0	/* Round to Zero 		*/#define FP_RDI_RD  1	/* Follow float mode		*/fp_rdi _EXFUN(fpgetroundtoi,(void));fp_rdi _EXFUN(fpsetroundtoi,(fp_rdi));int _EXFUN(isnan, (double));int _EXFUN(isinf, (double));int _EXFUN(finite, (double));int _EXFUN(isnanf, (float));int _EXFUN(isinff, (float));int _EXFUN(finitef, (float));#define __IEEE_DBL_EXPBIAS 1023#define __IEEE_FLT_EXPBIAS 127#define __IEEE_DBL_EXPLEN 11#define __IEEE_FLT_EXPLEN 8#define __IEEE_DBL_FRACLEN (64 - (__IEEE_DBL_EXPLEN + 1))#define __IEEE_FLT_FRACLEN (32 - (__IEEE_FLT_EXPLEN + 1))#define __IEEE_DBL_MAXPOWTWO	((double)(1L << 32 - 2) * (1L << (32-11) - 32 + 1))#define __IEEE_FLT_MAXPOWTWO	((float)(1L << (32-8) - 1))#define __IEEE_DBL_NAN_EXP 0x7ff#define __IEEE_FLT_NAN_EXP 0xff#define isnanf(x) (((*(long *)&(x) & 0x7f800000L)==0x7f800000L) && \		   ((*(long *)&(x) & 0x007fffffL)!=0000000000L))#define isinff(x) (((*(long *)&(x) & 0x7f800000L)==0x7f800000L) && \		   ((*(long *)&(x) & 0x007fffffL)==0000000000L))#define finitef(x) (((*(long *)&(x) & 0x7f800000L)!=0x7f800000L))#ifdef _DOUBLE_IS_32BITS#undef __IEEE_DBL_EXPBIAS#define __IEEE_DBL_EXPBIAS __IEEE_FLT_EXPBIAS#undef __IEEE_DBL_EXPLEN#define __IEEE_DBL_EXPLEN __IEEE_FLT_EXPLEN#undef __IEEE_DBL_FRACLEN#define __IEEE_DBL_FRACLEN __IEEE_FLT_FRACLEN#undef __IEEE_DBL_MAXPOWTWO#define __IEEE_DBL_MAXPOWTWO __IEEE_FLT_MAXPOWTWO#undef __IEEE_DBL_NAN_EXP#define __IEEE_DBL_NAN_EXP __IEEE_FLT_NAN_EXP#undef __ieee_double_shape_type#define __ieee_double_shape_type __ieee_float_shape_type#endif /* _DOUBLE_IS_32BITS */#endif /* _IEEE_FP_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -