Back to index

glibc  2.9
Defines
op-2.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define _FP_FRAC_DECL_2(X)   _FP_W_TYPE X##_f0, X##_f1
#define _FP_FRAC_COPY_2(D, S)   (D##_f0 = S##_f0, D##_f1 = S##_f1)
#define _FP_FRAC_SET_2(X, I)   __FP_FRAC_SET_2(X, I)
#define _FP_FRAC_HIGH_2(X)   (X##_f1)
#define _FP_FRAC_LOW_2(X)   (X##_f0)
#define _FP_FRAC_WORD_2(X, w)   (X##_f##w)
#define _FP_FRAC_SLL_2(X, N)
#define _FP_FRAC_SRL_2(X, N)
#define _FP_FRAC_SRST_2(X, S, N, sz)
#define _FP_FRAC_SRS_2(X, N, sz)
#define _FP_FRAC_ADDI_2(X, I)   __FP_FRAC_ADDI_2(X##_f1, X##_f0, I)
#define _FP_FRAC_ADD_2(R, X, Y)   __FP_FRAC_ADD_2(R##_f1, R##_f0, X##_f1, X##_f0, Y##_f1, Y##_f0)
#define _FP_FRAC_SUB_2(R, X, Y)   __FP_FRAC_SUB_2(R##_f1, R##_f0, X##_f1, X##_f0, Y##_f1, Y##_f0)
#define _FP_FRAC_DEC_2(X, Y)   __FP_FRAC_DEC_2(X##_f1, X##_f0, Y##_f1, Y##_f0)
#define _FP_FRAC_CLZ_2(R, X)
#define _FP_FRAC_NEGP_2(X)   ((_FP_WS_TYPE)X##_f1 < 0)
#define _FP_FRAC_ZEROP_2(X)   ((X##_f1 | X##_f0) == 0)
#define _FP_FRAC_OVERP_2(fs, X)   (_FP_FRAC_HIGH_##fs(X) & _FP_OVERFLOW_##fs)
#define _FP_FRAC_CLEAR_OVERP_2(fs, X)   (_FP_FRAC_HIGH_##fs(X) &= ~_FP_OVERFLOW_##fs)
#define _FP_FRAC_EQ_2(X, Y)   (X##_f1 == Y##_f1 && X##_f0 == Y##_f0)
#define _FP_FRAC_GT_2(X, Y)   (X##_f1 > Y##_f1 || (X##_f1 == Y##_f1 && X##_f0 > Y##_f0))
#define _FP_FRAC_GE_2(X, Y)   (X##_f1 > Y##_f1 || (X##_f1 == Y##_f1 && X##_f0 >= Y##_f0))
#define _FP_ZEROFRAC_2   0, 0
#define _FP_MINFRAC_2   0, 1
#define _FP_MAXFRAC_2   (~(_FP_WS_TYPE)0), (~(_FP_WS_TYPE)0)
#define __FP_FRAC_SET_2(X, I1, I0)   (X##_f0 = I0, X##_f1 = I1)
#define __FP_CLZ_2(R, xh, xl)
#define __FP_FRAC_ADDI_2(xh, xl, i)   add_ssaaaa(xh, xl, xh, xl, 0, i)
#define __FP_FRAC_ADD_2   add_ssaaaa
#define __FP_FRAC_SUB_2   sub_ddmmss
#define __FP_FRAC_DEC_2(xh, xl, yh, yl)   sub_ddmmss(xh, xl, xh, xl, yh, yl)
#define _FP_UNPACK_RAW_2(fs, X, val)
#define _FP_UNPACK_RAW_2_P(fs, X, val)
#define _FP_PACK_RAW_2(fs, val, X)
#define _FP_PACK_RAW_2_P(fs, val, X)
#define _FP_MUL_MEAT_2_wide(wfracbits, R, X, Y, doit)
#define _FP_MUL_MEAT_2_wide_3mul(wfracbits, R, X, Y, doit)
#define _FP_MUL_MEAT_2_gmp(wfracbits, R, X, Y)
#define _FP_MUL_MEAT_2_120_240_double(wfracbits, R, X, Y, setfetz, resetfe)
#define _FP_DIV_MEAT_2_udiv(fs, R, X, Y)
#define _FP_DIV_MEAT_2_gmp(fs, R, X, Y)
#define _FP_SQRT_MEAT_2(R, S, T, X, q)
#define _FP_FRAC_ASSEMBLE_2(r, X, rsize)
#define _FP_FRAC_DISASSEMBLE_2(X, r, rsize)
#define _FP_FRAC_COPY_1_2(D, S)   (D##_f = S##_f0)
#define _FP_FRAC_COPY_2_1(D, S)   ((D##_f0 = S##_f), (D##_f1 = 0))
#define _FP_FRAC_COPY_2_2(D, S)   _FP_FRAC_COPY_2(D,S)

Define Documentation

#define __FP_CLZ_2 (   R,
  xh,
  xl 
)
Value:
do {                        \
    if (xh)                 \
      __FP_CLZ(R,xh);              \
    else                    \
    {                       \
      __FP_CLZ(R,xl);              \
      R += _FP_W_TYPE_SIZE; \
    }                       \
  } while(0)

Definition at line 154 of file op-2.h.

Definition at line 192 of file op-2.h.

#define __FP_FRAC_ADDI_2 (   xh,
  xl,
  i 
)    add_ssaaaa(xh, xl, xh, xl, 0, i)

Definition at line 190 of file op-2.h.

#define __FP_FRAC_DEC_2 (   xh,
  xl,
  yh,
  yl 
)    sub_ddmmss(xh, xl, xh, xl, yh, yl)

Definition at line 196 of file op-2.h.

#define __FP_FRAC_SET_2 (   X,
  I1,
  I0 
)    (X##_f0 = I0, X##_f1 = I1)

Definition at line 152 of file op-2.h.

Definition at line 194 of file op-2.h.

#define _FP_DIV_MEAT_2_gmp (   fs,
  R,
  X,
  Y 
)
Value:
do {                                                           \
    _FP_W_TYPE _x[4], _y[2], _z[4];                                   \
    _y[0] = Y##_f0; _y[1] = Y##_f1;                                   \
    _x[0] = _x[3] = 0;                                                \
    if (_FP_FRAC_GT_2(X, Y))                                          \
      {                                                               \
       R##_e++;                                                \
       _x[1] = (X##_f0 << (_FP_WFRACBITS_##fs-1 - _FP_W_TYPE_SIZE) |  \
               X##_f1 >> (_FP_W_TYPE_SIZE -                           \
                         (_FP_WFRACBITS_##fs-1 - _FP_W_TYPE_SIZE)));  \
       _x[2] = X##_f1 << (_FP_WFRACBITS_##fs-1 - _FP_W_TYPE_SIZE);    \
      }                                                               \
    else                                                       \
      {                                                               \
       _x[1] = (X##_f0 << (_FP_WFRACBITS_##fs - _FP_W_TYPE_SIZE) |    \
               X##_f1 >> (_FP_W_TYPE_SIZE -                           \
                         (_FP_WFRACBITS_##fs - _FP_W_TYPE_SIZE)));    \
       _x[2] = X##_f1 << (_FP_WFRACBITS_##fs - _FP_W_TYPE_SIZE);      \
      }                                                               \
                                                               \
    (void) mpn_divrem (_z, 0, _x, 4, _y, 2);                          \
    R##_f1 = _z[1];                                            \
    R##_f0 = _z[0] | ((_x[0] | _x[1]) != 0);                          \
  } while (0)

Definition at line 503 of file op-2.h.

#define _FP_DIV_MEAT_2_udiv (   fs,
  R,
  X,
  Y 
)

Definition at line 442 of file op-2.h.

#define _FP_FRAC_ADD_2 (   R,
  X,
  Y 
)    __FP_FRAC_ADD_2(R##_f1, R##_f0, X##_f1, X##_f0, Y##_f1, Y##_f0)

Definition at line 113 of file op-2.h.

#define _FP_FRAC_ADDI_2 (   X,
  I 
)    __FP_FRAC_ADDI_2(X##_f1, X##_f0, I)

Definition at line 110 of file op-2.h.

#define _FP_FRAC_ASSEMBLE_2 (   r,
  X,
  rsize 
)
Value:
(void)((rsize <= _FP_W_TYPE_SIZE)         \
       ? ({ r = X##_f0; })                \
       : ({                               \
           r = X##_f1;                           \
           r <<= _FP_W_TYPE_SIZE;         \
           r += X##_f0;                   \
         }))

Definition at line 581 of file op-2.h.

#define _FP_FRAC_CLEAR_OVERP_2 (   fs,
  X 
)    (_FP_FRAC_HIGH_##fs(X) &= ~_FP_OVERFLOW_##fs)

Definition at line 137 of file op-2.h.

#define _FP_FRAC_CLZ_2 (   R,
  X 
)
Value:
do {                        \
    if (X##_f1)                    \
      __FP_CLZ(R,X##_f1);   \
    else                    \
    {                       \
      __FP_CLZ(R,X##_f0);   \
      R += _FP_W_TYPE_SIZE; \
    }                       \
  } while(0)

Definition at line 122 of file op-2.h.

#define _FP_FRAC_COPY_1_2 (   D,
  S 
)    (D##_f = S##_f0)

Definition at line 600 of file op-2.h.

#define _FP_FRAC_COPY_2 (   D,
  S 
)    (D##_f0 = S##_f0, D##_f1 = S##_f1)

Definition at line 35 of file op-2.h.

#define _FP_FRAC_COPY_2_1 (   D,
  S 
)    ((D##_f0 = S##_f), (D##_f1 = 0))

Definition at line 602 of file op-2.h.

#define _FP_FRAC_COPY_2_2 (   D,
  S 
)    _FP_FRAC_COPY_2(D,S)

Definition at line 604 of file op-2.h.

#define _FP_FRAC_DEC_2 (   X,
  Y 
)    __FP_FRAC_DEC_2(X##_f1, X##_f0, Y##_f1, Y##_f0)

Definition at line 119 of file op-2.h.

#define _FP_FRAC_DECL_2 (   X)    _FP_W_TYPE X##_f0, X##_f1

Definition at line 34 of file op-2.h.

#define _FP_FRAC_DISASSEMBLE_2 (   X,
  r,
  rsize 
)
Value:
do {                                                           \
    X##_f0 = r;                                                       \
    X##_f1 = (rsize <= _FP_W_TYPE_SIZE ? 0 : r >> _FP_W_TYPE_SIZE);   \
  } while (0)

Definition at line 590 of file op-2.h.

#define _FP_FRAC_EQ_2 (   X,
  Y 
)    (X##_f1 == Y##_f1 && X##_f0 == Y##_f0)

Definition at line 138 of file op-2.h.

#define _FP_FRAC_GE_2 (   X,
  Y 
)    (X##_f1 > Y##_f1 || (X##_f1 == Y##_f1 && X##_f0 >= Y##_f0))

Definition at line 141 of file op-2.h.

#define _FP_FRAC_GT_2 (   X,
  Y 
)    (X##_f1 > Y##_f1 || (X##_f1 == Y##_f1 && X##_f0 > Y##_f0))

Definition at line 139 of file op-2.h.

#define _FP_FRAC_HIGH_2 (   X)    (X##_f1)

Definition at line 37 of file op-2.h.

#define _FP_FRAC_LOW_2 (   X)    (X##_f0)

Definition at line 38 of file op-2.h.

#define _FP_FRAC_NEGP_2 (   X)    ((_FP_WS_TYPE)X##_f1 < 0)

Definition at line 134 of file op-2.h.

#define _FP_FRAC_OVERP_2 (   fs,
  X 
)    (_FP_FRAC_HIGH_##fs(X) & _FP_OVERFLOW_##fs)

Definition at line 136 of file op-2.h.

#define _FP_FRAC_SET_2 (   X,
  I 
)    __FP_FRAC_SET_2(X, I)

Definition at line 36 of file op-2.h.

#define _FP_FRAC_SLL_2 (   X,
  N 
)
Value:
(void)(((N) < _FP_W_TYPE_SIZE)                                            \
       ? ({                                                        \
           if (__builtin_constant_p(N) && (N) == 1)                       \
             {                                                            \
              X##_f1 = X##_f1 + X##_f1 + (((_FP_WS_TYPE)(X##_f0)) < 0);   \
              X##_f0 += X##_f0;                                    \
             }                                                            \
           else                                                    \
             {                                                            \
              X##_f1 = X##_f1 << (N) | X##_f0 >> (_FP_W_TYPE_SIZE - (N)); \
              X##_f0 <<= (N);                                             \
             }                                                            \
           0;                                                      \
         })                                                        \
       : ({                                                        \
           X##_f1 = X##_f0 << ((N) - _FP_W_TYPE_SIZE);                    \
           X##_f0 = 0;                                                    \
         }))

Definition at line 41 of file op-2.h.

#define _FP_FRAC_SRL_2 (   X,
  N 
)
Value:
(void)(((N) < _FP_W_TYPE_SIZE)                                        \
       ? ({                                                    \
           X##_f0 = X##_f0 >> (N) | X##_f1 << (_FP_W_TYPE_SIZE - (N));       \
           X##_f1 >>= (N);                                     \
         })                                                    \
       : ({                                                    \
           X##_f0 = X##_f1 >> ((N) - _FP_W_TYPE_SIZE);                \
           X##_f1 = 0;                                                \
         }))

Definition at line 62 of file op-2.h.

#define _FP_FRAC_SRS_2 (   X,
  N,
  sz 
)
Value:
(void)(((N) < _FP_W_TYPE_SIZE)                                          \
       ? ({                                                      \
           X##_f0 = (X##_f1 << (_FP_W_TYPE_SIZE - (N)) | X##_f0 >> (N) | \
                    (__builtin_constant_p(N) && (N) == 1                \
                     ? X##_f0 & 1                                \
                     : (X##_f0 << (_FP_W_TYPE_SIZE - (N))) != 0));      \
           X##_f1 >>= (N);                                       \
         })                                                      \
       : ({                                                      \
           X##_f0 = (X##_f1 >> ((N) - _FP_W_TYPE_SIZE) |                \
                    ((((N) == _FP_W_TYPE_SIZE                           \
                      ? 0                                        \
                      : (X##_f1 << (2*_FP_W_TYPE_SIZE - (N))))   \
                     | X##_f0) != 0));                           \
           X##_f1 = 0;                                                  \
         }))

Definition at line 92 of file op-2.h.

#define _FP_FRAC_SRST_2 (   X,
  S,
  N,
  sz 
)
Value:
(void)(((N) < _FP_W_TYPE_SIZE)                                          \
       ? ({                                                      \
           S = (__builtin_constant_p(N) && (N) == 1                     \
               ? X##_f0 & 1                                      \
               : (X##_f0 << (_FP_W_TYPE_SIZE - (N))) != 0);             \
           X##_f0 = (X##_f1 << (_FP_W_TYPE_SIZE - (N)) | X##_f0 >> (N)); \
           X##_f1 >>= (N);                                       \
         })                                                      \
       : ({                                                      \
           S = ((((N) == _FP_W_TYPE_SIZE                         \
                 ? 0                                             \
                 : (X##_f1 << (2*_FP_W_TYPE_SIZE - (N))))               \
                | X##_f0) != 0);                                 \
           X##_f0 = (X##_f1 >> ((N) - _FP_W_TYPE_SIZE));                \
           X##_f1 = 0;                                                  \
         }))

Definition at line 74 of file op-2.h.

#define _FP_FRAC_SUB_2 (   R,
  X,
  Y 
)    __FP_FRAC_SUB_2(R##_f1, R##_f0, X##_f1, X##_f0, Y##_f1, Y##_f0)

Definition at line 116 of file op-2.h.

#define _FP_FRAC_WORD_2 (   X,
 
)    (X##_f##w)

Definition at line 39 of file op-2.h.

#define _FP_FRAC_ZEROP_2 (   X)    ((X##_f1 | X##_f0) == 0)

Definition at line 135 of file op-2.h.

#define _FP_MAXFRAC_2   (~(_FP_WS_TYPE)0), (~(_FP_WS_TYPE)0)

Definition at line 146 of file op-2.h.

#define _FP_MINFRAC_2   0, 1

Definition at line 145 of file op-2.h.

#define _FP_MUL_MEAT_2_120_240_double (   wfracbits,
  R,
  X,
  Y,
  setfetz,
  resetfe 
)

Definition at line 351 of file op-2.h.

#define _FP_MUL_MEAT_2_gmp (   wfracbits,
  R,
  X,
  Y 
)
Value:
do {                                                           \
    _FP_FRAC_DECL_4(_z);                                       \
    _FP_W_TYPE _x[2], _y[2];                                          \
    _x[0] = X##_f0; _x[1] = X##_f1;                                   \
    _y[0] = Y##_f0; _y[1] = Y##_f1;                                   \
									\
    mpn_mul_n(_z_f, _x, _y, 2);                                       \
                                                               \
    /* Normalize since we know where the msb of the multiplicands     \
       were (bit B), we know that the msb of the of the product is    \
       at either 2B or 2B-1.  */                               \
    _FP_FRAC_SRS_4(_z, wfracbits-1, 2*wfracbits);                     \
    R##_f0 = _z_f[0];                                                 \
    R##_f1 = _z_f[1];                                                 \
  } while (0)

Definition at line 327 of file op-2.h.

#define _FP_MUL_MEAT_2_wide (   wfracbits,
  R,
  X,
  Y,
  doit 
)
Value:
do {                                                           \
    _FP_FRAC_DECL_4(_z); _FP_FRAC_DECL_2(_b); _FP_FRAC_DECL_2(_c);    \
                                                               \
    doit(_FP_FRAC_WORD_4(_z,1), _FP_FRAC_WORD_4(_z,0), X##_f0, Y##_f0);      \
    doit(_b_f1, _b_f0, X##_f0, Y##_f1);                               \
    doit(_c_f1, _c_f0, X##_f1, Y##_f0);                               \
    doit(_FP_FRAC_WORD_4(_z,3), _FP_FRAC_WORD_4(_z,2), X##_f1, Y##_f1);      \
									\
    __FP_FRAC_ADD_3(_FP_FRAC_WORD_4(_z,3),_FP_FRAC_WORD_4(_z,2),      \
                  _FP_FRAC_WORD_4(_z,1), 0, _b_f1, _b_f0,             \
                  _FP_FRAC_WORD_4(_z,3),_FP_FRAC_WORD_4(_z,2), \
                  _FP_FRAC_WORD_4(_z,1));                      \
    __FP_FRAC_ADD_3(_FP_FRAC_WORD_4(_z,3),_FP_FRAC_WORD_4(_z,2),      \
                  _FP_FRAC_WORD_4(_z,1), 0, _c_f1, _c_f0,             \
                  _FP_FRAC_WORD_4(_z,3),_FP_FRAC_WORD_4(_z,2), \
                  _FP_FRAC_WORD_4(_z,1));                      \
                                                               \
    /* Normalize since we know where the msb of the multiplicands     \
       were (bit B), we know that the msb of the of the product is    \
       at either 2B or 2B-1.  */                               \
    _FP_FRAC_SRS_4(_z, wfracbits-1, 2*wfracbits);                     \
    R##_f0 = _FP_FRAC_WORD_4(_z,0);                                   \
    R##_f1 = _FP_FRAC_WORD_4(_z,1);                                   \
  } while (0)

Definition at line 261 of file op-2.h.

#define _FP_MUL_MEAT_2_wide_3mul (   wfracbits,
  R,
  X,
  Y,
  doit 
)

Definition at line 289 of file op-2.h.

#define _FP_PACK_RAW_2 (   fs,
  val,
  X 
)
Value:
do {                                             \
    union _FP_UNION_##fs _flo;                          \
                                                 \
    _flo.bits.frac0 = X##_f0;                           \
    _flo.bits.frac1 = X##_f1;                           \
    _flo.bits.exp   = X##_e;                            \
    _flo.bits.sign  = X##_s;                            \
                                                 \
    (val) = _flo.flt;                                   \
  } while (0)

Definition at line 231 of file op-2.h.

#define _FP_PACK_RAW_2_P (   fs,
  val,
  X 
)
Value:
do {                                             \
    union _FP_UNION_##fs *_flo =                 \
      (union _FP_UNION_##fs *)(val);                    \
                                                 \
    _flo->bits.frac0 = X##_f0;                          \
    _flo->bits.frac1 = X##_f1;                          \
    _flo->bits.exp   = X##_e;                           \
    _flo->bits.sign  = X##_s;                           \
  } while (0)

Definition at line 243 of file op-2.h.

#define _FP_SQRT_MEAT_2 (   R,
  S,
  T,
  X,
 
)

Definition at line 536 of file op-2.h.

#define _FP_UNPACK_RAW_2 (   fs,
  X,
  val 
)
Value:
do {                                             \
    union _FP_UNION_##fs _flo; _flo.flt = (val); \
                                                 \
    X##_f0 = _flo.bits.frac0;                           \
    X##_f1 = _flo.bits.frac1;                           \
    X##_e  = _flo.bits.exp;                      \
    X##_s  = _flo.bits.sign;                            \
  } while (0)

Definition at line 205 of file op-2.h.

#define _FP_UNPACK_RAW_2_P (   fs,
  X,
  val 
)
Value:
do {                                             \
    union _FP_UNION_##fs *_flo =                 \
      (union _FP_UNION_##fs *)(val);                    \
                                                 \
    X##_f0 = _flo->bits.frac0;                          \
    X##_f1 = _flo->bits.frac1;                          \
    X##_e  = _flo->bits.exp;                            \
    X##_s  = _flo->bits.sign;                           \
  } while (0)

Definition at line 215 of file op-2.h.

#define _FP_ZEROFRAC_2   0, 0

Definition at line 144 of file op-2.h.