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

📄 x-cvsweb-markup(48)

📁 软件浮点数计算功能
💻
📖 第 1 页 / 共 5 页
字号:
 * were one then we always set the LSbit. */#define _FP_FRAC_SRS_4(X,N,size)                                        \  do {                                                                  \    _FP_I_TYPE _up, _down, _skip, _i;                                   \    _FP_W_TYPE _s;                                                      \    _skip = (N) / _FP_W_TYPE_SIZE;                                      \    _down = (N) % _FP_W_TYPE_SIZE;                                      \    _up = _FP_W_TYPE_SIZE - _down;                                      \    for (_s = _i = 0; _i < _skip; ++_i)                                 \      _s |= X##_f[_i];                                                  \    _s |= X##_f[_i] << _up;                                             \/* s is now != 0 if we want to set the LSbit */                         \    if (!_down)                                                         \      for (_i = 0; _i <= 3-_skip; ++_i)                                 \        X##_f[_i] = X##_f[_i+_skip];                                        \    else                                                                \      {                                                                 \        for (_i = 0; _i < 3-_skip; ++_i)                                \          X##_f[_i] = X##_f[_i+_skip] >> _down                                \                      | X##_f[_i+_skip+1] << _up;                        \        X##_f[_i++] = X##_f[3] >> _down;                                \      }                                                                 \    for (; _i < 4; ++_i)                                                \      X##_f[_i] = 0;                                                    \    /* don't fix the LSB until the very end when we're sure f[0] is stable */   \    X##_f[0] |= (_s != 0);                                              \  } while (0)#define _FP_FRAC_ADD_4(R,X,Y)                                           \  __FP_FRAC_ADD_4(R##_f[3], R##_f[2], R##_f[1], R##_f[0],               \                  X##_f[3], X##_f[2], X##_f[1], X##_f[0],                \                  Y##_f[3], Y##_f[2], Y##_f[1], Y##_f[0])#define _FP_FRAC_SUB_4(R,X,Y)                                           \  __FP_FRAC_SUB_4(R##_f[3], R##_f[2], R##_f[1], R##_f[0],               \                  X##_f[3], X##_f[2], X##_f[1], X##_f[0],                \                  Y##_f[3], Y##_f[2], Y##_f[1], Y##_f[0])#define _FP_FRAC_DEC_4(X,Y)                                             \  __FP_FRAC_DEC_4(X##_f[3], X##_f[2], X##_f[1], X##_f[0],               \                  Y##_f[3], Y##_f[2], Y##_f[1], Y##_f[0])#define _FP_FRAC_ADDI_4(X,I)                                            \  __FP_FRAC_ADDI_4(X##_f[3], X##_f[2], X##_f[1], X##_f[0], I)#define _FP_ZEROFRAC_4  0,0,0,0#define _FP_MINFRAC_4   0,0,0,1#define _FP_MAXFRAC_4   (~(_FP_WS_TYPE)0), (~(_FP_WS_TYPE)0), (~(_FP_WS_TYPE)0), (~(_FP_WS_TYPE)0)#define _FP_FRAC_ZEROP_4(X)     ((X##_f[0] | X##_f[1] | X##_f[2] | X##_f[3]) == 0)#define _FP_FRAC_NEGP_4(X)      ((_FP_WS_TYPE)X##_f[3] < 0)#define _FP_FRAC_OVERP_4(fs,X)  (_FP_FRAC_HIGH_##fs(X) & _FP_OVERFLOW_##fs)#define _FP_FRAC_EQ_4(X,Y)                              \ (X##_f[0] == Y##_f[0] && X##_f[1] == Y##_f[1]          \  && X##_f[2] == Y##_f[2] && X##_f[3] == Y##_f[3])#define _FP_FRAC_GT_4(X,Y)                              \ (X##_f[3] > Y##_f[3] ||                                \  (X##_f[3] == Y##_f[3] && (X##_f[2] > Y##_f[2] ||      \   (X##_f[2] == Y##_f[2] && (X##_f[1] > Y##_f[1] ||     \    (X##_f[1] == Y##_f[1] && X##_f[0] > Y##_f[0])       \   ))                                                   \  ))                                                    \ )#define _FP_FRAC_GE_4(X,Y)                              \ (X##_f[3] > Y##_f[3] ||                                \  (X##_f[3] == Y##_f[3] && (X##_f[2] > Y##_f[2] ||      \   (X##_f[2] == Y##_f[2] && (X##_f[1] > Y##_f[1] ||     \    (X##_f[1] == Y##_f[1] && X##_f[0] >= Y##_f[0])      \   ))                                                   \  ))                                                    \ )#define _FP_FRAC_CLZ_4(R,X)             \  do {                                  \    if (X##_f[3])                       \    {                                   \        __FP_CLZ(R,X##_f[3]);                \    }                                   \    else if (X##_f[2])                  \    {                                   \        __FP_CLZ(R,X##_f[2]);                \        R += _FP_W_TYPE_SIZE;                \    }                                   \    else if (X##_f[1])                  \    {                                   \        __FP_CLZ(R,X##_f[2]);                \

⌨️ 快捷键说明

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