📄 x-cvsweb-markup(50)
字号:
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 + -