x-cvsweb-markup(50)

来自「软件浮点数计算功能」· 代码 · 共 357 行 · 第 1/5 页

TXT
357
字号
              if (diff)                                                             \                {                                                             \                  R##_e -= diff;                                             \                  _FP_FRAC_SLL_##wc(R, diff);                                     \                }                                                             \            }                                                                     \        }                                                                     \      break;                                                                 \    }                                                                        \                                                                             \  case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_NAN):                               \    _FP_CHOOSENAN(fs, wc, R, X, Y, OP);                                      \    break;                                                                   \                                                                             \  case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_ZERO):                           \    R##_e = X##_e;                                                           \  case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_NORMAL):                            \  case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_INF):                               \  case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_ZERO):                              \    _FP_FRAC_COPY_##wc(R, X);                                                \    R##_s = X##_s;                                                           \    R##_c = X##_c;                                                           \    break;                                                                   \                                                                             \  case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_NORMAL):                           \    R##_e = Y##_e;                                                           \  case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_NAN):                            \  case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_NAN):                               \  case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_NAN):                              \    _FP_FRAC_COPY_##wc(R, Y);                                                \    R##_s = Y##_s;                                                           \    R##_c = Y##_c;                                                           \    break;                                                                   \                                                                             \  case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_INF):                               \    if (X##_s != Y##_s)                                                      \      {                                                                      \        /* +INF + -INF => NAN */                                             \        _FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs);                                     \        R##_s = _FP_NANSIGN_##fs;                                             \        R##_c = FP_CLS_NAN;                                                     \        FP_SET_EXCEPTION(FP_EX_INVALID);                                     \        break;                                                                     \      }                                                                      \    /* FALLTHRU */                                                           \                                                                             \  case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_NORMAL):                            \  case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_ZERO):                              \    R##_s = X##_s;                                                           \    R##_c = FP_CLS_INF;                                                      \    break;                                                                   \                                                                             \  case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_INF):                            \  case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_INF):                              \    R##_s = Y##_s;                                                           \    R##_c = FP_CLS_INF;                                                      \    break;                                                                   \                                                                             \  case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_ZERO):                             \    /* make sure the sign is correct */                                      \    if (FP_ROUNDMODE == FP_RND_MINF)                                         \      R##_s = X##_s | Y##_s;                                                 \    else                                                                     \      R##_s = X##_s & Y##_s;                                                 \    R##_c = FP_CLS_ZERO;                                                     \    break;                                                                   \                                                                             \  default:                                                                   \    abort();                                                             

⌨️ 快捷键说明

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