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