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

📄 _qquad.h

📁 操作系统SunOS 4.1.3版本的源码
💻 H
字号:
/* @(#)_Qquad.h 1.1 92/07/30 SMI	 *//* * Copyright (c) 1989 by Sun Microsystems, Inc. *//* * Header file for long double == quadruple-precision run-time support. C * "long double" and Fortran "real*16" are implemented identically on all * architectures. *  * Thus the quad run-time support is intentionally coded as C-callable routines * for portability. *  * Mixed-case identifiers with leading _ are intentionally chosen to minimize * conflicts with user-defined C and Fortran identifiers. */#include <math.h>		/* to get float macros */#ifndef _QUAD_INCLUDED_#define _QUAD_INCLUDED_		/* Render harmless multiple inclusions. */#ifdef __STDC__			/* are we there yet */#define QUAD long double#define SINGLE float#define SINGLERESULT float#define RETURNSINGLE(x) return x#define ASSIGNSINGLERESULT(x,y) x = y#elsestruct quadstruct {	unsigned        parts[4]};#define QUAD struct quadstruct#define SINGLE FLOATPARAMETER#define SINGLERESULT FLOATFUNCTIONTYPE#define RETURNSINGLE(x) RETURNFLOAT(x)#define ASSIGNSINGLERESULT(x,y) {SINGLERESULT _kug = y; *(int *)&x = *(int*)&_kug;}#endif/******		Phase I Quad support: C run-time in libc/crt		*****/extern QUAD _Q_neg( /* QUAD x */ );	/* returns -x */extern QUAD _Q_add( /* QUAD x, y */ );	/* returns x + y */extern QUAD _Q_sub( /* QUAD x, y */ );	/* returns x - y */extern QUAD _Q_mul( /* QUAD x, y */ );	/* returns x * y */extern QUAD _Q_div( /* QUAD x, y */ );	/* returns x / y */extern QUAD _Q_sqrt( /* QUAD x */ );	/* return sqrt(x) */extern enum fcc_type                _Q_cmp( /* QUAD x, y */ );	/* x compare y , exception						 * only on signaling NaN */extern enum fcc_type                _Q_cmpe( /* QUAD x, y */ );	/* x compare y , exception						 * on quiet NaN */extern int   _Q_feq( /* QUAD x, y */ );	/* return TRUE if x == y */extern int   _Q_fne( /* QUAD x, y */ );	/* return TRUE if x != y */extern int   _Q_fgt( /* QUAD x, y */ );	/* return TRUE if x >  y */extern int   _Q_fge( /* QUAD x, y */ );	/* return TRUE if x >= y */extern int   _Q_flt( /* QUAD x, y */ );	/* return TRUE if x <  y */extern int   _Q_fle( /* QUAD x, y */ );	/* return TRUE if x <= y *//* Conversion routines are pretty straightforward. */extern QUAD _Q_stoq( /* SINGLE s */ );extern QUAD _Q_dtoq( /* double d */ );extern QUAD _Q_itoq( /* int i */ );extern QUAD _Q_utoq( /* unsigned u */ );extern SINGLERESULT	_Q_qtos( /* QUAD x */ );extern double		_Q_qtod( /* QUAD x */ );extern int		_Q_qtoi( /* QUAD x */ );extern unsigned		_Q_qtou( /* QUAD x */ );/******	    Phase I Quad support: scanf/printf support in libc/gen/common*****/extern voiddecimal_to_longdouble(		/* QUAD *px ; decimal_mode *pm;				 * decimal_record *pd;		          fp_exception_field_type *ps; */ );extern voidlongdouble_to_decimal(		/* QUAD *px ; decimal_mode *pm;				 * decimal_record *pd;		          fp_exception_field_type *ps; */ );#ifdef sparcenum fcc_type 	 		/* relationships for loading into cc */	{	fcc_equal	= 0,	fcc_less	= 1,	fcc_greater	= 2,	fcc_unordered	= 3	} ;#endif#ifdef i386enum fcc_type 	 		/* relationships for loading into cc */	{	fcc_equal	= 64,	fcc_less	= 1,	fcc_greater	= 0,	fcc_unordered	= 69	} ;#endif#ifdef mc68000enum fcc_type 	 		/* relationships for loading into cc */	{	fcc_equal	= 4,	fcc_less	= 25,	fcc_greater	= 0,	fcc_unordered	= 2	} ;#endif#ifdef i386typedef			/* FPU register viewed as single components. */	struct	{	unsigned significand :	23 ;	unsigned exponent :	 8 ;	unsigned sign :		 1 ;	}	single_type ;typedef			/* FPU register viewed as double components. */	struct	{	unsigned significand :	20 ;	unsigned exponent :	11 ;	unsigned sign :		 1 ;	}	double_type ;typedef			/* FPU register viewed as extended components. */	struct	{	unsigned significand :	16 ;	unsigned exponent :	15 ;	unsigned sign :		 1 ;	}	extended_type ;#elsetypedef			/* FPU register viewed as single components. */	struct	{	unsigned sign :		 1 ;	unsigned exponent :	 8 ;	unsigned significand :	23 ;	}	single_type ;typedef			/* FPU register viewed as double components. */	struct	{	unsigned sign :		 1 ;	unsigned exponent :	11 ;	unsigned significand :	20 ;	}	double_type ;typedef			/* FPU register viewed as extended components. */	struct	{	unsigned sign :		 1 ;	unsigned exponent :	15 ;	unsigned significand :	16 ;	}	extended_type ;#endifenum fp_op_type		/* Type specifiers in FPU instructions. */	{	fp_op_integer	= 0,	/* Not in hardware, but convenient to define. */	fp_op_single	= 1,	fp_op_double	= 2,	fp_op_extended	= 3	} ;#endif				/* QUAD_INCLUDED */

⌨️ 快捷键说明

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