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

📄 x-cvsweb-markup(47)

📁 软件浮点数计算功能
💻
📖 第 1 页 / 共 5 页
字号:
    _g240 *= _const[0];                                                         \    _s240.d =                                                         _e240*_j240;\    _r240.d =                                           _d240*_j240 + _e240*_i240;\    _q240.d =                             _c240*_j240 + _d240*_i240 + _e240*_h240;\    _p240.d =               _b240*_j240 + _c240*_i240 + _d240*_h240 + _e240*_g240;\    _o240.d = _a240*_j240 + _b240*_i240 + _c240*_h240 + _d240*_g240 + _e240*_f240;\    _n240.d = _a240*_i240 + _b240*_h240 + _c240*_g240 + _d240*_f240;            \    _m240.d = _a240*_h240 + _b240*_g240 + _c240*_f240;                          \    _l240.d = _a240*_g240 + _b240*_f240;                                        \    _k240 =   _a240*_f240;                                                      \    _r240.d += _s240.d;                                                         \    _q240.d += _r240.d;                                                         \    _p240.d += _q240.d;                                                         \    _o240.d += _p240.d;                                                         \    _n240.d += _o240.d;                                                         \    _m240.d += _n240.d;                                                         \    _l240.d += _m240.d;                                                         \    _k240 += _l240.d;                                                           \    _s240.d -= ((_const[10]+_s240.d)-_const[10]);                               \    _r240.d -= ((_const[9]+_r240.d)-_const[9]);                                 \    _q240.d -= ((_const[8]+_q240.d)-_const[8]);                                 \    _p240.d -= ((_const[7]+_p240.d)-_const[7]);                                 \    _o240.d += _const[7];                                                       \    _n240.d += _const[6];                                                       \    _m240.d += _const[5];                                                       \    _l240.d += _const[4];                                                       \    if (_s240.d != 0.0) _y240 = 1;                                              \    if (_r240.d != 0.0) _y240 = 1;                                              \    if (_q240.d != 0.0) _y240 = 1;                                              \    if (_p240.d != 0.0) _y240 = 1;                                              \    _t240 = (DItype)_k240;                                                      \    _u240 = _l240.i;                                                            \    _v240 = _m240.i;                                                            \    _w240 = _n240.i;                                                            \    _x240 = _o240.i;                                                            \    R##_f1 = (_t240 << (128 - (wfracbits - 1)))                                 \             | ((_u240 & 0xffffff) >> ((wfracbits - 1) - 104));                        \    R##_f0 = ((_u240 & 0xffffff) << (168 - (wfracbits - 1)))                    \             | ((_v240 & 0xffffff) << (144 - (wfracbits - 1)))                        \             | ((_w240 & 0xffffff) << (120 - (wfracbits - 1)))                        \             | ((_x240 & 0xffffff) >> ((wfracbits - 1) - 96))                        \             | _y240;                                                                \    resetfe;                                                                    \  } while (0)/* * Division algorithms: */#define _FP_DIV_MEAT_2_udiv(fs, R, X, Y)                                \  do {                                                                  \    _FP_W_TYPE _n_f2, _n_f1, _n_f0, _r_f1, _r_f0, _m_f1, _m_f0;         \    if (_FP_FRAC_GT_2(X, Y))                                            \      {                                                                 \        _n_f2 = X##_f1 >> 1;                                                \        _n_f1 = X##_f1 << (_FP_W_TYPE_SIZE - 1) | X##_f0 >> 1;                \        _n_f0 = X##_f0 << (_FP_W_TYPE_SIZE - 1);                        \      }                                                                 \    else                                                                \      {                                                                 \        R##_e--;                                                        \        _n_f2 = X##_f1;                                                        \        _n_f1 = X##_f0;                                                        \        _n_f0 = 0;                                                        \      }                                                                 \                                                                        \    /* Normalize, i.e. make the most significant bit of the             \       denominator set. */                                              \    _FP_FRAC_SLL_2(Y, _FP_WFRACXBITS_##fs);                             \                                                                        \    udiv_qrnnd(R##_f1, _r_f1, _n_f2, _n_f1, Y##_f1);                    \    umul_ppmm(_m_f1, _m_f0, R##_f1, Y##_f0);                            \    _r_f0 = _n_f0;                                                      \    if (_FP_FRAC_GT_2(_m, _r))                                          \      {                                                                 \        R##_f1--;                                                        \        _FP_FRAC_ADD_2(_r, Y, _r);                                        \        if (_FP_FRAC_GE_2(_r, Y) && _FP_FRAC_GT_2(_m, _r))                \          {                                                                \            R##_f1--;                                                        \            _FP_FRAC_ADD_2(_r, Y, _r);                                        \          }                                                                \      }                                                                 \    _FP_FRAC_DEC_2(_r, _m);                                             \                                                                        \    if (_r_f1 == Y##_f1)                                                \      {                                                                 \        /* This is a special case, not an optimization                        \           (_r/Y##_f1 would not fit into UWtype).                        \           As _r is guaranteed to be < Y,  R##_f0 can be either                \           (UWtype)-1 or (UWtype)-2.  But as we know what kind                \           of bits it is (sticky, guard, round),  we don't care.        \           We also don't care what the reminder is,  because the        \           guard bit will be set anyway.  -jj */                        \        R##_f0 = -1;                                                        \      }                                                                 \    else                                                             &n

⌨️ 快捷键说明

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