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

📄 libm_error.c

📁 Glibc 2.3.2源代码(解压后有100多M)
💻 C
📖 第 1 页 / 共 5 页
字号:
  case y1l_zero:  case ynl_zero:    /* y0l(0) */    /* y1l(0) */    /* ynl(0) */    {       RETVAL_NEG_HUGE_VALL; ERRNO_DOMAIN; break;    }  case y0_zero:  case y1_zero:  case yn_zero:    /* y0(0) */    /* y1(0) */    /* yn(0) */    {       RETVAL_NEG_HUGE_VALD; ERRNO_DOMAIN; break;    }  case y0f_zero:  case y1f_zero:  case ynf_zero:    /* y0f(0) */    /* y1f(0) */    /* ynf(0) */    {       RETVAL_NEG_HUGE_VALF; ERRNO_DOMAIN; break;    }  case y0l_negative:  case y1l_negative:  case ynl_negative:    /* y0l(x < 0) */    /* y1l(x < 0) */    /* ynl(x < 0) */    {       RETVAL_NEG_HUGE_VALL; ERRNO_DOMAIN; break;    }  case y0_negative:  case y1_negative:  case yn_negative:    /* y0(x < 0) */    /* y1(x < 0) */    /* yn(x < 0) */    {       RETVAL_NEG_HUGE_VALD; ERRNO_DOMAIN; break;    }  case y0f_negative:  case y1f_negative:  case ynf_negative:    /* y0f(x < 0) */    /* y1f(x < 0) */    /* ynf(x < 0) */    {       RETVAL_NEG_HUGE_VALF; ERRNO_DOMAIN; break;    }  case logl_zero:  case log1pl_zero:  case log10l_zero:    /* logl(0) */    /* log1pl(0) */    /* log10l(0) */    {       RETVAL_NEG_HUGE_VALL; ERRNO_RANGE; break;    }  case log_zero:  case log1p_zero:  case log10_zero:  case log2l_zero:   /* log(0) */   /* log1p(0) */   /* log10(0) */    {       RETVAL_NEG_HUGE_VALD; ERRNO_RANGE; break;    }  case logf_zero:  case log1pf_zero:  case log10f_zero:    /* logf(0) */    /* log1pf(0) */    /* log10f(0) */    {       RETVAL_NEG_HUGE_VALF; ERRNO_RANGE; break;    }  case logl_negative:  case log1pl_negative:  case log10l_negative:  case log2l_negative:    /* logl(x < 0) */    /* log1pl(x < 0) */    /* log10l(x < 0) */    {       ERRNO_DOMAIN; break;    }  case log_negative:  case log1p_negative:  case log10_negative:  case log2_negative:    /* log(x < 0) */    /* log1p(x < 0) */    /* log10(x < 0) */    {       ERRNO_DOMAIN; break;    }  case logf_negative:  case log1pf_negative:  case log10f_negative:  case log2f_negative:    /* logf(x < 0) */    /* log1pf(x < 0) */    /* log10f(x < 0) */    {       ERRNO_DOMAIN; break;    }  case expl_overflow:    /* expl overflow */    {       RETVAL_HUGE_VALL; ERRNO_RANGE; break;    }  case exp_overflow:    /* exp overflow */    {       RETVAL_HUGE_VALD; ERRNO_RANGE; break;    }  case expf_overflow:    /* expf overflow */    {       RETVAL_HUGE_VALF; ERRNO_RANGE; break;    }  case expl_underflow:    /* expl underflow */    {       RETVAL_ZEROL; ERRNO_RANGE; break;    }  case exp_underflow:    /* exp underflow */    {       RETVAL_ZEROD; ERRNO_RANGE; break;    }  case expf_underflow:    /* expf underflow */    {       RETVAL_ZEROF; ERRNO_RANGE; break;    }  case j0l_gt_loss:  case y0l_gt_loss:  case j1l_gt_loss:  case y1l_gt_loss:  case jnl_gt_loss:  case ynl_gt_loss:    /* jn and yn  doubl-extended> XLOSS */    {       RETVAL_ZEROL; ERRNO_RANGE; break;    }  case j0_gt_loss:  case y0_gt_loss:  case j1_gt_loss:  case y1_gt_loss:  case jn_gt_loss:  case yn_gt_loss:    /* jn and yn double > XLOSS */    {       RETVAL_ZEROD; ERRNO_RANGE; break;    }  case j0f_gt_loss:  case y0f_gt_loss:  case j1f_gt_loss:  case y1f_gt_loss:  case jnf_gt_loss:  case ynf_gt_loss:    /* j0n and y0n > XLOSS */    {       RETVAL_ZEROF; ERRNO_RANGE; break;    }  case powl_zero_to_zero:    /* powl 0**0 */    {       break;    }  case pow_zero_to_zero:    /* pow 0**0 */    {       break;    }  case powf_zero_to_zero:    /* powf 0**0 */    {       break;    }  case powl_overflow:    /* powl(x,y) overflow */    {       if (INPUT_RESL < 0) RETVAL_NEG_HUGE_VALL;       else RETVAL_HUGE_VALL;       ERRNO_RANGE; break;    }  case pow_overflow:    /* pow(x,y) overflow */    {       if (INPUT_RESD < 0) RETVAL_NEG_HUGE_VALD;       else RETVAL_HUGE_VALD;       ERRNO_RANGE; break;    }  case powf_overflow:    /* powf(x,y) overflow */    {       if (INPUT_RESF < 0) RETVAL_NEG_HUGE_VALF;       else RETVAL_HUGE_VALF;       ERRNO_RANGE; break;    }  case powl_underflow:    /* powl(x,y) underflow */    {       RETVAL_ZEROL; ERRNO_RANGE; break;    }  case pow_underflow:    /* pow(x,y) underflow */    {       RETVAL_ZEROD; ERRNO_RANGE; break;    }  case  powf_underflow:    /* powf(x,y) underflow */    {       RETVAL_ZEROF; ERRNO_RANGE; break;    }  case powl_zero_to_negative:    /* 0**neg */    {       ERRNO_DOMAIN; break;    }  case pow_zero_to_negative:    /* 0**neg */    {       ERRNO_DOMAIN; break;    }  case  powf_zero_to_negative:    /* 0**neg */    {       ERRNO_DOMAIN; break;    }  case powl_neg_to_non_integer:    /* neg**non_integral */    {       ERRNO_DOMAIN; break;    }  case pow_neg_to_non_integer:    /* neg**non_integral */    {       ERRNO_DOMAIN; break;    }  case  powf_neg_to_non_integer:    /* neg**non-integral */    {       ERRNO_DOMAIN; break;    }  case  powl_nan_to_zero:    /* powl(NaN,0.0) */    /* Special Error */    {       break;    }  case  pow_nan_to_zero:    /* pow(NaN,0.0) */    {       break;    }  case  powf_nan_to_zero:    /* powf(NaN,0.0) */    {       break;    }  case atan2l_zero:    /* atan2l(0,0) */    {      /* XXX  arg1 and arg2 are switched!!!!  */       if (signbit (*(long double *) arg1))	 /* y == -0 */	 *(long double *) retval = copysignl (M_PIl, *(long double *) arg2);       else	 *(long double *) retval = *(long double *) arg2;       ERRNO_DOMAIN; break;    }  case atan2_zero:    /* atan2(0,0) */    {      /* XXX  arg1 and arg2 are switched!!!!  */       if (signbit (*(double *) arg1))	 /* y == -0 */	 *(double *) retval = copysign (M_PI, *(double *) arg2);       else	 *(double *) retval = *(double *) arg2;       ERRNO_DOMAIN; break;    }  case    atan2f_zero:    /* atan2f(0,0) */    {       if (signbit (*(float *) arg2))	 /* y == -0 */	 *(float *) retval = copysignf (M_PI, *(float *) arg1);       else	 *(float *) retval = *(float *) arg1;       ERRNO_DOMAIN; break;    }  case expm1l_overflow:    /* expm1 overflow */    {       ERRNO_RANGE; break;    }  case expm1_overflow:    /* expm1 overflow */    {       ERRNO_RANGE; break;    }  case expm1f_overflow:    /* expm1f overflow */    {       ERRNO_RANGE; break;    }  case expm1l_underflow:    /* expm1 underflow */    {       ERRNO_RANGE; break;    }  case expm1_underflow:    /* expm1 underflow */    {       ERRNO_RANGE; break;    }  case expm1f_underflow:    /* expm1f underflow */    {       ERRNO_RANGE; break;    }  case hypotl_overflow:    /* hypotl overflow */    {       RETVAL_HUGE_VALL; ERRNO_RANGE; break;    }  case hypot_overflow:    /* hypot overflow */    {       RETVAL_HUGE_VALD; ERRNO_RANGE; break;    }  case hypotf_overflow:    /* hypotf overflow */    {       RETVAL_HUGE_VALF; ERRNO_RANGE; break;    }  case scalbl_underflow:    /* scalbl underflow */    {       if (INPUT_XL < 0) RETVAL_NEG_ZEROL;       else RETVAL_ZEROL;       ERRNO_RANGE; break;    }  case scalb_underflow:    /* scalb underflow */    {       if (INPUT_XD < 0) RETVAL_NEG_ZEROD;       else RETVAL_ZEROD;       ERRNO_RANGE; break;    }  case scalbf_underflow:    /* scalbf underflow */    {       if (INPUT_XF < 0) RETVAL_NEG_ZEROF;       else RETVAL_ZEROF;       ERRNO_RANGE; break;    }  case scalbl_overflow:    /* scalbl overflow */    {       if (INPUT_XL < 0) RETVAL_NEG_HUGE_VALL;       else RETVAL_HUGE_VALL;       ERRNO_RANGE; break;    }  case scalb_overflow:    /* scalb overflow */    {       if (INPUT_XD < 0) RETVAL_NEG_HUGE_VALD;       else RETVAL_HUGE_VALD;       ERRNO_RANGE; break;    }  case scalbf_overflow:    /* scalbf overflow */    {       if (INPUT_XF < 0) RETVAL_NEG_HUGE_VALF;       else RETVAL_HUGE_VALF;       ERRNO_RANGE; break;    }  case acoshl_lt_one:    /* acoshl(x < 1) */    {       ERRNO_DOMAIN; break;    }  case acosh_lt_one:    /* acosh(x < 1) */    {       ERRNO_DOMAIN; break;    }  case acoshf_lt_one:    /* acoshf(x < 1) */    {        ERRNO_DOMAIN; break;    }  case acosl_gt_one:    /* acosl(x > 1) */    {       ERRNO_DOMAIN; break;    }  case acos_gt_one:    /* acos(x > 1) */    {      ERRNO_DOMAIN; break;    }  case acosf_gt_one:    /* acosf(x > 1) */    {      ERRNO_DOMAIN; break;    }  case asinl_gt_one:    /* asinl(x > 1) */    {       ERRNO_DOMAIN; break;    }  case asin_gt_one:    /* asin(x > 1) */    {       ERRNO_DOMAIN; break;    }  case asinf_gt_one:    /* asinf(x > 1) */    {       ERRNO_DOMAIN; break;    }  case remainderl_by_zero:  case fmodl_by_zero:    /* fmodl(x,0) */    {       ERRNO_DOMAIN; break;    }  case remainder_by_zero:  case fmod_by_zero:    /* fmod(x,0) */    {       ERRNO_DOMAIN; break;    }  case remainderf_by_zero:  case fmodf_by_zero:    /* fmodf(x,0) */    {       ERRNO_DOMAIN; break;    }  case coshl_overflow:    /* coshl overflows */    {       RETVAL_HUGE_VALL; ERRNO_RANGE; break;    }  case cosh_overflow:    /* cosh overflows */    {       RETVAL_HUGE_VALD; ERRNO_RANGE; break;    }  case coshf_overflow:    /* coshf overflows */    {       RETVAL_HUGE_VALF; ERRNO_RANGE; break;    }  case sinhl_overflow:    /* sinhl overflows */    {       if (INPUT_XL > 0) RETVAL_HUGE_VALL;       else RETVAL_NEG_HUGE_VALL;       ERRNO_RANGE; break;    }  case sinh_overflow:    /* sinh overflows */    {       if (INPUT_XD > 0) RETVAL_HUGE_VALD;       else RETVAL_NEG_HUGE_VALD;       ERRNO_RANGE; break;    }  case sinhf_overflow:    /* sinhf overflows */    {       if (INPUT_XF > 0) RETVAL_HUGE_VALF;       else RETVAL_NEG_HUGE_VALF;       ERRNO_RANGE; break;    }  case logbl_zero:   /* logbl(0) */   {      ERRNO_DOMAIN; break;   }  case logb_zero:   /* logb(0) */   {      ERRNO_DOMAIN; break;   }  case logbf_zero:   /* logbf(0) */   {      ERRNO_DOMAIN; break;   }  case ilogbl_zero:   /* ilogbl(0) */   {      ERRNO_RANGE; break;   }  case ilogb_zero:   /* ilogb(0) */   {      ERRNO_RANGE; break;   }  case ilogbf_zero:   /* ilogbf(0) */   {      ERRNO_RANGE; break;   }  default:    abort();}return;/* _POSIX_ */}/*******************************//* __SVID__ and __XOPEN__ Path *//*******************************/else{  switch(input_tag)  {  case ldexpl_overflow:  case ldexpl_underflow:  case ldexp_overflow:  case ldexp_underflow:  case ldexpf_overflow:  case ldexpf_underflow:  case scalbnl_overflow:  case scalbnl_underflow:  case scalbn_overflow:  case scalbn_underflow:  case scalbnf_overflow:  case scalbnf_underflow:  {       ERRNO_RANGE; break;  }  case sqrtl_negative:    /* sqrtl(x < 0) */    {       DOMAINL; NAMEL = (char *) "sqrtl";       ifSVID       {          RETVAL_ZEROL;          NOT_MATHERRL          {            WRITEL_SQRT;            ERRNO_DOMAIN;          }       }       else       { /* NaN already computed */          NOT_MATHERRL {ERRNO_DOMAIN;}       }       *(long double *)retval = excl.retval;       break;

⌨️ 快捷键说明

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