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

📄 standard.c

📁 ecos为实时嵌入式操作系统
💻 C
📖 第 1 页 / 共 3 页
字号:
                /* y0(x<0) = NaN */                exc.type = DOMAIN;                exc.name = "y0";                if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)                  exc.retval = -HUGE;                else                  exc.retval = -HUGE_VAL;                if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)                  errno = EDOM;                else if (!matherr(&exc)) {                  if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {                        (void) WRITE2("y0: DOMAIN error\n", 17);                      }                  errno = EDOM;                }                break;            case 10:                /* y1(0) = -inf */                exc.type = DOMAIN;      /* should be SING for IEEE */                exc.name = "y1";                if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)                  exc.retval = -HUGE;                else                  exc.retval = -HUGE_VAL;                if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)                  errno = EDOM;                else if (!matherr(&exc)) {                  if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {                        (void) WRITE2("y1: DOMAIN error\n", 17);                      }                  errno = EDOM;                }                break;            case 11:                /* y1(x<0) = NaN */                exc.type = DOMAIN;                exc.name = "y1";                if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)                  exc.retval = -HUGE;                else                  exc.retval = -HUGE_VAL;                if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)                  errno = EDOM;                else if (!matherr(&exc)) {                  if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {                        (void) WRITE2("y1: DOMAIN error\n", 17);                      }                  errno = EDOM;                }                break;            case 12:                /* yn(n,0) = -inf */                exc.type = DOMAIN;      /* should be SING for IEEE */                exc.name = "yn";                if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)                  exc.retval = -HUGE;                else                  exc.retval = -HUGE_VAL;                if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)                  errno = EDOM;                else if (!matherr(&exc)) {                  if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {                        (void) WRITE2("yn: DOMAIN error\n", 17);                      }                  errno = EDOM;                }                break;            case 13:                /* yn(x<0) = NaN */                exc.type = DOMAIN;                exc.name = "yn";                if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)                  exc.retval = -HUGE;                else                  exc.retval = -HUGE_VAL;                if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)                  errno = EDOM;                else if (!matherr(&exc)) {                  if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {                        (void) WRITE2("yn: DOMAIN error\n", 17);                      }                  errno = EDOM;                }                break;            case 14:                /* lgamma(finite) overflow */                exc.type = OVERFLOW;                exc.name = "lgamma";                if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)                  exc.retval = HUGE;                else                  exc.retval = HUGE_VAL;                if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)                        errno = ERANGE;                else if (!matherr(&exc)) {                        errno = ERANGE;                }                break;            case 15:                /* lgamma(-integer) or lgamma(0) */                exc.type = SING;                exc.name = "lgamma";                if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)                  exc.retval = HUGE;                else                  exc.retval = HUGE_VAL;                if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)                  errno = EDOM;                else if (!matherr(&exc)) {                  if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {                        (void) WRITE2("lgamma: SING error\n", 19);                      }                  errno = EDOM;                }                break;            case 16:                /* log(0) */                exc.type = SING;                exc.name = "log";                if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)                  exc.retval = -HUGE;                else                  exc.retval = -HUGE_VAL;                if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)                  errno = ERANGE;                else if (!matherr(&exc)) {                  if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {                        (void) WRITE2("log: SING error\n", 16);                      }                  errno = EDOM;                }                break;            case 17:                /* log(x<0) */                exc.type = DOMAIN;                exc.name = "log";                if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)                  exc.retval = -HUGE;                else                  exc.retval = -HUGE_VAL;                if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)                  errno = EDOM;                else if (!matherr(&exc)) {                  if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {                        (void) WRITE2("log: DOMAIN error\n", 18);                      }                  errno = EDOM;                }                break;            case 18:                /* log10(0) */                exc.type = SING;                exc.name = "log10";                if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)                  exc.retval = -HUGE;                else                  exc.retval = -HUGE_VAL;                if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)                  errno = ERANGE;                else if (!matherr(&exc)) {                  if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {                        (void) WRITE2("log10: SING error\n", 18);                      }                  errno = EDOM;                }                break;            case 19:                /* log10(x<0) */                exc.type = DOMAIN;                exc.name = "log10";                if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)                  exc.retval = -HUGE;                else                  exc.retval = -HUGE_VAL;                if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)                  errno = EDOM;                else if (!matherr(&exc)) {                  if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {                        (void) WRITE2("log10: DOMAIN error\n", 20);                      }                  errno = EDOM;                }                break;            case 20:                /* pow(0.0,0.0) */                /* error only if cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID */                exc.type = DOMAIN;                exc.name = "pow";                exc.retval = zero;                if (cyg_libm_get_compat_mode() != CYGNUM_LIBM_COMPAT_SVID) exc.retval = 1.0;                else if (!matherr(&exc)) {                        (void) WRITE2("pow(0,0): DOMAIN error\n", 23);                        errno = EDOM;                }                break;            case 21:                /* pow(x,y) overflow */                exc.type = OVERFLOW;                exc.name = "pow";                if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_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 (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)                  errno = ERANGE;                else if (!matherr(&exc)) {                        errno = ERANGE;                }                break;            case 22:                /* pow(x,y) underflow */                exc.type = UNDERFLOW;                exc.name = "pow";                exc.retval =  zero;                if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)                  errno = ERANGE;                else if (!matherr(&exc)) {                        errno = ERANGE;                }                break;            case 23:                /* 0**neg */                exc.type = DOMAIN;                exc.name = "pow";                if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)                   exc.retval = zero;                else                  exc.retval = -HUGE_VAL;                if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)                  errno = EDOM;                else if (!matherr(&exc)) {                  if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {                        (void) WRITE2("pow(0,neg): DOMAIN error\n", 25);                      }                  errno = EDOM;                }                break;            case 24:                /* neg**non-integral */                exc.type = DOMAIN;                exc.name = "pow";                if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)                     exc.retval = zero;                else                     exc.retval = zero/zero;     /* X/Open allow NaN */                if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)                    errno = EDOM;                else if (!matherr(&exc)) {                  if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID) {                        (void) WRITE2("neg**non-integral: DOMAIN error\n", 32);                      }                  errno = EDOM;                }                break;            case 25:                /* sinh(finite) overflow */                exc.type = OVERFLOW;                exc.name = "sinh";                if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_SVID)                  exc.retval = ( (x>zero) ? HUGE : -HUGE);                else                  exc.retval = ( (x>zero) ? HUGE_VAL : -HUGE_VAL);                if (cyg_libm_get_compat_mode() == CYGNUM_LIBM_COMPAT_POSIX)                  errno = ERANGE;                else if (!matherr(&exc)) {                        errno = ERANGE;                }                break;            case 26:

⌨️ 快捷键说明

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