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

📄 k_standard.c

📁 标准c库代码,可以应用于各个系统提供了大量的基本函数
💻 C
📖 第 1 页 / 共 2 页
字号:
		  exc.retval = -HUGE_VAL;		if (_LIB_VERSION == _POSIX_)		  p->_errno = ERANGE;		else if (!matherr(&exc)) {		  if (_LIB_VERSION == _SVID_) {			(void) WRITE2("log10: SING error\n", 18);		      }		  p->_errno = EDOM;		}		break;	    case 19:	    case 119:		/* log10(x<0) */		exc.type = DOMAIN;		exc.name = type < 100 ? "log10" : "log10f";		if (_LIB_VERSION == _SVID_)		  exc.retval = -HUGE;		else		  exc.retval = -HUGE_VAL;		if (_LIB_VERSION == _POSIX_)		  p->_errno = EDOM;		else if (!matherr(&exc)) {		  if (_LIB_VERSION == _SVID_) {			(void) WRITE2("log10: DOMAIN error\n", 20);		      }		  p->_errno = EDOM;		}		break;	    case 20:	    case 120:		/* pow(0.0,0.0) */		/* error only if _LIB_VERSION == _SVID_ */		exc.type = DOMAIN;		exc.name = type < 100 ? "pow" : "powf";		exc.retval = zero;		if (_LIB_VERSION != _SVID_) exc.retval = 1.0;		else if (!matherr(&exc)) {			(void) WRITE2("pow(0,0): DOMAIN error\n", 23);			p->_errno = EDOM;		}		break;	    case 21:	    case 121:		/* pow(x,y) overflow */		exc.type = OVERFLOW;		exc.name = type < 100 ? "pow" : "powf";		if (_LIB_VERSION == _SVID_) {		  exc.retval = HUGE;		  y *= 0.5;		  if(x<zero&&rint(y)!=y) exc.retval = -HUGE;		} else {		  exc.retval = HUGE_VAL;		  y *= 0.5;		  if(x<zero&&rint(y)!=y) exc.retval = -HUGE_VAL;		}		if (_LIB_VERSION == _POSIX_)		  p->_errno = ERANGE;		else if (!matherr(&exc)) {			p->_errno = ERANGE;		}		break;	    case 22:	    case 122:		/* pow(x,y) underflow */		exc.type = UNDERFLOW;		exc.name = type < 100 ? "pow" : "powf";		exc.retval =  zero;		if (_LIB_VERSION == _POSIX_)		  p->_errno = ERANGE;		else if (!matherr(&exc)) {			p->_errno = ERANGE;		}		break;	    case 23:	    case 123:		/* 0**neg */		exc.type = DOMAIN;		exc.name = type < 100 ? "pow" : "powf";		if (_LIB_VERSION == _SVID_) 		  exc.retval = zero;		else		  exc.retval = -HUGE_VAL;		if (_LIB_VERSION == _POSIX_)		  p->_errno = EDOM;		else if (!matherr(&exc)) {		  if (_LIB_VERSION == _SVID_) {			(void) WRITE2("pow(0,neg): DOMAIN error\n", 25);		      }		  p->_errno = EDOM;		}		break;	    case 24:	    case 124:		/* neg**non-integral */		exc.type = DOMAIN;		exc.name = type < 100 ? "pow" : "powf";		if (_LIB_VERSION == _SVID_) 		    exc.retval = zero;		else 		    exc.retval = zero/zero;	/* X/Open allow NaN */		if (_LIB_VERSION == _POSIX_) 		   p->_errno = EDOM;		else if (!matherr(&exc)) {		  if (_LIB_VERSION == _SVID_) {			(void) WRITE2("neg**non-integral: DOMAIN error\n", 32);		      }		  p->_errno = EDOM;		}		break;	    case 25:	    case 125:		/* sinh(finite) overflow */		exc.type = OVERFLOW;		exc.name = type < 100 ? "sinh" : "sinhf";		if (_LIB_VERSION == _SVID_)		  exc.retval = ( (x>zero) ? HUGE : -HUGE);		else		  exc.retval = ( (x>zero) ? HUGE_VAL : -HUGE_VAL);		if (_LIB_VERSION == _POSIX_)		  p->_errno = ERANGE;		else if (!matherr(&exc)) {			p->_errno = ERANGE;		}		break;	    case 26:	    case 126:		/* sqrt(x<0) */		exc.type = DOMAIN;		exc.name = type < 100 ? "sqrt" : "sqrtf";		if (_LIB_VERSION == _SVID_)		  exc.retval = zero;		else		  exc.retval = zero/zero;		if (_LIB_VERSION == _POSIX_)		  p->_errno = EDOM;		else if (!matherr(&exc)) {		  if (_LIB_VERSION == _SVID_) {			(void) WRITE2("sqrt: DOMAIN error\n", 19);		      }		  p->_errno = EDOM;		}		break;            case 27:	    case 127:                /* fmod(x,0) */                exc.type = DOMAIN;                exc.name = type < 100 ? "fmod" : "fmodf";                if (_LIB_VERSION == _SVID_)                    exc.retval = x;		else		    exc.retval = zero/zero;                if (_LIB_VERSION == _POSIX_)                  p->_errno = EDOM;                else if (!matherr(&exc)) {                  if (_LIB_VERSION == _SVID_) {                    (void) WRITE2("fmod:  DOMAIN error\n", 20);                  }                  p->_errno = EDOM;                }                break;            case 28:	    case 128:                /* remainder(x,0) */                exc.type = DOMAIN;                exc.name = type < 100 ? "remainder" : "remainderf";                exc.retval = zero/zero;                if (_LIB_VERSION == _POSIX_)                  p->_errno = EDOM;                else if (!matherr(&exc)) {                  if (_LIB_VERSION == _SVID_) {                    (void) WRITE2("remainder: DOMAIN error\n", 24);                  }                  p->_errno = EDOM;                }                break;            case 29:	    case 129:                /* acosh(x<1) */                exc.type = DOMAIN;                exc.name = type < 100 ? "acosh" : "acoshf";                exc.retval = zero/zero;                if (_LIB_VERSION == _POSIX_)                  p->_errno = EDOM;                else if (!matherr(&exc)) {                  if (_LIB_VERSION == _SVID_) {                    (void) WRITE2("acosh: DOMAIN error\n", 20);                  }                  p->_errno = EDOM;                }                break;            case 30:	    case 130:                /* atanh(|x|>1) */                exc.type = DOMAIN;                exc.name = type < 100 ? "atanh" : "atanhf";                exc.retval = zero/zero;                if (_LIB_VERSION == _POSIX_)                  p->_errno = EDOM;                else if (!matherr(&exc)) {                  if (_LIB_VERSION == _SVID_) {                    (void) WRITE2("atanh: DOMAIN error\n", 20);                  }                  p->_errno = EDOM;                }                break;            case 31:	    case 131:                /* atanh(|x|=1) */                exc.type = SING;                exc.name = type < 100 ? "atanh" : "atanhf";		exc.retval = x/zero;	/* sign(x)*inf */                if (_LIB_VERSION == _POSIX_)                  p->_errno = EDOM;                else if (!matherr(&exc)) {                  if (_LIB_VERSION == _SVID_) {                    (void) WRITE2("atanh: SING error\n", 18);                  }                  p->_errno = EDOM;                }                break;	    case 32:	    case 132:		/* scalb overflow; SVID also returns +-HUGE_VAL */		exc.type = OVERFLOW;		exc.name = type < 100 ? "scalb" : "scalbf";		exc.retval = x > zero ? HUGE_VAL : -HUGE_VAL;		if (_LIB_VERSION == _POSIX_)		  p->_errno = ERANGE;		else if (!matherr(&exc)) {			p->_errno = ERANGE;		}		break;	    case 33:	    case 133:		/* scalb underflow */		exc.type = UNDERFLOW;		exc.name = type < 100 ? "scalb" : "scalbf";		exc.retval = copysign(zero,x);		if (_LIB_VERSION == _POSIX_)		  p->_errno = ERANGE;		else if (!matherr(&exc)) {			p->_errno = ERANGE;		}		break;	    case 34:	    case 134:		/* j0(|x|>X_TLOSS) */                exc.type = TLOSS;                exc.name = type < 100 ? "j0" : "j0f";                exc.retval = zero;                if (_LIB_VERSION == _POSIX_)                        p->_errno = ERANGE;                else if (!matherr(&exc)) {                        if (_LIB_VERSION == _SVID_) {                                (void) WRITE2(exc.name, 2);                                (void) WRITE2(": TLOSS error\n", 14);                        }                        p->_errno = ERANGE;                }        		break;	    case 35:	    case 135:		/* y0(x>X_TLOSS) */                exc.type = TLOSS;                exc.name = type < 100 ? "y0" : "y0f";                exc.retval = zero;                if (_LIB_VERSION == _POSIX_)                        p->_errno = ERANGE;                else if (!matherr(&exc)) {                        if (_LIB_VERSION == _SVID_) {                                (void) WRITE2(exc.name, 2);                                (void) WRITE2(": TLOSS error\n", 14);                        }                        p->_errno = ERANGE;                }        		break;	    case 36:	    case 136:		/* j1(|x|>X_TLOSS) */                exc.type = TLOSS;                exc.name = type < 100 ? "j1" : "j1f";                exc.retval = zero;                if (_LIB_VERSION == _POSIX_)                        p->_errno = ERANGE;                else if (!matherr(&exc)) {                        if (_LIB_VERSION == _SVID_) {                                (void) WRITE2(exc.name, 2);                                (void) WRITE2(": TLOSS error\n", 14);                        }                        p->_errno = ERANGE;                }        		break;	    case 37:	    case 137:		/* y1(x>X_TLOSS) */                exc.type = TLOSS;                exc.name = type < 100 ? "y1" : "y1f";                exc.retval = zero;                if (_LIB_VERSION == _POSIX_)                        p->_errno = ERANGE;                else if (!matherr(&exc)) {                        if (_LIB_VERSION == _SVID_) {                                (void) WRITE2(exc.name, 2);                                (void) WRITE2(": TLOSS error\n", 14);                        }                        p->_errno = ERANGE;                }        		break;	    case 38:	    case 138:		/* jn(|x|>X_TLOSS) */                exc.type = TLOSS;                exc.name = type < 100 ? "jn" : "jnf";                exc.retval = zero;                if (_LIB_VERSION == _POSIX_)                        p->_errno = ERANGE;                else if (!matherr(&exc)) {                        if (_LIB_VERSION == _SVID_) {                                (void) WRITE2(exc.name, 2);                                (void) WRITE2(": TLOSS error\n", 14);                        }                        p->_errno = ERANGE;                }        		break;	    case 39:	    case 139:		/* yn(x>X_TLOSS) */                exc.type = TLOSS;                exc.name = type < 100 ? "yn" : "ynf";                exc.retval = zero;                if (_LIB_VERSION == _POSIX_)                        p->_errno = ERANGE;                else if (!matherr(&exc)) {                        if (_LIB_VERSION == _SVID_) {                                (void) WRITE2(exc.name, 2);                                (void) WRITE2(": TLOSS error\n", 14);                        }                        p->_errno = ERANGE;                }        		break;	    case 40:	    case 140:		/* gamma(finite) overflow */		exc.type = OVERFLOW;		exc.name = type < 100 ? "gamma" : "gammaf";                if (_LIB_VERSION == _SVID_)                  exc.retval = HUGE;                else                  exc.retval = HUGE_VAL;                if (_LIB_VERSION == _POSIX_)		  p->_errno = ERANGE;                else if (!matherr(&exc)) {                  p->_errno = ERANGE;                }		break;	    case 41:	    case 141:		/* gamma(-integer) or gamma(0) */		exc.type = SING;		exc.name = type < 100 ? "gamma" : "gammaf";                if (_LIB_VERSION == _SVID_)                  exc.retval = HUGE;                else                  exc.retval = HUGE_VAL;		if (_LIB_VERSION == _POSIX_)		  p->_errno = EDOM;		else if (!matherr(&exc)) {		  if (_LIB_VERSION == _SVID_) {			(void) WRITE2("gamma: SING error\n", 18);		      }		  p->_errno = EDOM;		}		break;	    case 42:	    case 142:		/* pow(NaN,0.0) */		/* error only if _LIB_VERSION == _SVID_ & _XOPEN_ */		exc.type = DOMAIN;		exc.name = type < 100 ? "pow" : "powf";		exc.retval = x;		if (_LIB_VERSION == _IEEE_ ||		    _LIB_VERSION == _POSIX_) exc.retval = 1.0;		else if (!matherr(&exc)) {			p->_errno = EDOM;		}		break;	}	if (exc.err != 0)	    p->_errno = exc.err;	return exc.retval; }

⌨️ 快捷键说明

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