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

📄 x-cvsweb-markup(50)

📁 软件浮点数计算功能
💻
📖 第 1 页 / 共 5 页
字号:
        if (X##_e <= _FP_WFRACBITS_##fs)                        \          {                                                        \            _FP_FRAC_SRS_##wc(X, X##_e, _FP_WFRACBITS_##fs);        \            _FP_ROUND(wc, X);                                        \            if (_FP_FRAC_HIGH_##fs(X)                                \                & (_FP_OVERFLOW_##fs >> 1))                        \              {                                                        \                X##_e = 1;                                        \                _FP_FRAC_SET_##wc(X, _FP_ZEROFRAC_##wc);        \              }                                                        \            else                                                \              {                                                        \                X##_e = 0;                                        \                _FP_FRAC_SRL_##wc(X, _FP_WORKBITS);                \                FP_SET_EXCEPTION(FP_EX_UNDERFLOW);                \              }                                                        \          }                                                        \        else                                                        \          {                                                        \            /* underflow to zero */                                \            X##_e = 0;                                                \            if (!_FP_FRAC_ZEROP_##wc(X))                        \              {                                                        \                _FP_FRAC_SET_##wc(X, _FP_MINFRAC_##wc);                \                _FP_ROUND(wc, X);                                \                _FP_FRAC_LOW_##wc(X) >>= (_FP_WORKBITS);        \              }                                                        \            FP_SET_EXCEPTION(FP_EX_UNDERFLOW);                        \          }                                                        \      }                                                         \    break;                                                      \                                                                \  case FP_CLS_ZERO:                                             \    X##_e = 0;                                                  \    _FP_FRAC_SET_##wc(X, _FP_ZEROFRAC_##wc);                    \    break;                                                      \                                                                \  case FP_CLS_INF:                                              \    X##_e = _FP_EXPMAX_##fs;                                    \    _FP_FRAC_SET_##wc(X, _FP_ZEROFRAC_##wc);                    \    break;                                                      \                                                                \  case FP_CLS_NAN:                                              \    X##_e = _FP_EXPMAX_##fs;                                    \    if (!_FP_KEEPNANFRACP)                                      \      {                                                         \        _FP_FRAC_SET_##wc(X, _FP_NANFRAC_##fs);                        \        X##_s = _FP_NANSIGN_##fs;                                \      }                                                         \    else                                                        \      _FP_FRAC_HIGH_RAW_##fs(X) |= _FP_QNANBIT_##fs;            \    break;                                                      \  }                                                             \} while (0)/* This one accepts raw argument and not cooked,  returns * 1 if X is a signaling NaN. */#define _FP_ISSIGNAN(fs, wc, X)                                 \({                                                              \  int __ret = 0;                                                \  if (X##_e == _FP_EXPMAX_##fs)                                 \    {                                                           \      if (!_FP_FRAC_ZEROP_##wc(X)                               \          && !(_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs))        \        __ret = 1;                                                \    }                                                           \  __ret;                                                        \})

⌨️ 快捷键说明

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