Back to index

plt-scheme  4.2.1
Defines | Variables
gmplonglong.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define __BITS4   (W_TYPE_SIZE / 4)
#define __ll_B   ((UWtype) 1 << (W_TYPE_SIZE / 2))
#define __ll_lowpart(t)   ((UWtype) (t) & (__ll_B - 1))
#define __ll_highpart(t)   ((UWtype) (t) >> (W_TYPE_SIZE / 2))
#define __MPN(x)   __##x
#define _PROTO(x)   ()
#define __umulsidi3(u, v)
#define add_ssaaaa(sh, sl, ah, al, bh, bl)
#define sub_ddmmss(sh, sl, ah, al, bh, bl)
#define umul_ppmm(w1, w0, u, v)
#define smul_ppmm(w1, w0, u, v)
#define __udiv_qrnnd_c(q, r, n1, n0, d)
#define UDIV_NEEDS_NORMALIZATION   1
#define udiv_qrnnd   __udiv_qrnnd_c
#define count_leading_zeros(count, x)
#define COUNT_LEADING_ZEROS_0   W_TYPE_SIZE
#define COUNT_LEADING_ZEROS_NEED_CLZ_TAB
#define count_trailing_zeros(count, x)
#define UMUL_TIME   1
#define UDIV_TIME   UMUL_TIME
#define COUNT_TRAILING_ZEROS_TIME   15 /* cycles */

Variables

unsigned char __clz_tab []

Define Documentation

#define __BITS4   (W_TYPE_SIZE / 4)

Definition at line 35 of file gmplonglong.h.

#define __ll_B   ((UWtype) 1 << (W_TYPE_SIZE / 2))

Definition at line 36 of file gmplonglong.h.

#define __ll_highpart (   t)    ((UWtype) (t) >> (W_TYPE_SIZE / 2))

Definition at line 38 of file gmplonglong.h.

#define __ll_lowpart (   t)    ((UWtype) (t) & (__ll_B - 1))

Definition at line 37 of file gmplonglong.h.

#define __MPN (   x)    __##x

Definition at line 43 of file gmplonglong.h.

#define __udiv_qrnnd_c (   q,
  r,
  n1,
  n0,
 
)

Definition at line 1240 of file gmplonglong.h.

#define __umulsidi3 (   u,
 
)
Value:
({UWtype __hi, __lo;                                           \
    umul_ppmm (__hi, __lo, u, v);                              \
    ((UDWtype) __hi << W_TYPE_SIZE) | __lo; })

Definition at line 1125 of file gmplonglong.h.

#define _PROTO (   x)    ()

Definition at line 50 of file gmplonglong.h.

#define add_ssaaaa (   sh,
  sl,
  ah,
  al,
  bh,
  bl 
)
Value:
do {                                                           \
    UWtype __x;                                                       \
    __x = (al) + (bl);                                                \
    (sh) = (ah) + (bh) + (__x < (al));                                \
    (sl) = __x;                                                       \
  } while (0)

Definition at line 1166 of file gmplonglong.h.

#define count_leading_zeros (   count,
  x 
)
Value:
do {                                                           \
    UWtype __xr = (x);                                                \
    UWtype __a;                                                       \
									\
    if (W_TYPE_SIZE <= 32)                                     \
      {                                                               \
       __a = __xr < ((UWtype) 1 << 2*__BITS4)                         \
         ? (__xr < ((UWtype) 1 << __BITS4) ? 0 : __BITS4)             \
         : (__xr < ((UWtype) 1 << 3*__BITS4) ?  2*__BITS4 : 3*__BITS4);\
      }                                                               \
    else                                                       \
      {                                                               \
       for (__a = W_TYPE_SIZE - 8; __a > 0; __a -= 8)                 \
         if (((__xr >> __a) & 0xff) != 0)                      \
           break;                                              \
      }                                                               \
                                                               \
    (count) = W_TYPE_SIZE - (__clz_tab[__xr >> __a] + __a);           \
  } while (0)

Definition at line 1299 of file gmplonglong.h.

Definition at line 1320 of file gmplonglong.h.

Definition at line 1321 of file gmplonglong.h.

#define count_trailing_zeros (   count,
  x 
)
Value:
do {                                                           \
    UWtype __ctz_x = (x);                                      \
    UWtype __ctz_c;                                            \
    count_leading_zeros (__ctz_c, __ctz_x & -__ctz_x);                \
    (count) = W_TYPE_SIZE - 1 - __ctz_c;                       \
  } while (0)

Definition at line 1327 of file gmplonglong.h.

#define COUNT_TRAILING_ZEROS_TIME   15 /* cycles */

Definition at line 1351 of file gmplonglong.h.

#define smul_ppmm (   w1,
  w0,
  u,
 
)
Value:
do {                                                           \
    UWtype __w1;                                               \
    UWtype __xm0 = (u), __xm1 = (v);                                  \
    umul_ppmm (__w1, w0, __xm0, __xm1);                               \
    (w1) = __w1 - (-(__xm0 >> (W_TYPE_SIZE - 1)) & __xm1)             \
              - (-(__xm1 >> (W_TYPE_SIZE - 1)) & __xm0);              \
  } while (0)

Definition at line 1229 of file gmplonglong.h.

#define sub_ddmmss (   sh,
  sl,
  ah,
  al,
  bh,
  bl 
)
Value:
do {                                                           \
    UWtype __x;                                                       \
    __x = (al) - (bl);                                                \
    (sh) = (ah) - (bh) - (__x > (al));                                \
    (sl) = __x;                                                       \
  } while (0)

Definition at line 1176 of file gmplonglong.h.

#define UDIV_NEEDS_NORMALIZATION   1

Definition at line 1289 of file gmplonglong.h.

#define udiv_qrnnd   __udiv_qrnnd_c

Definition at line 1290 of file gmplonglong.h.

#define UDIV_TIME   UMUL_TIME

Definition at line 1346 of file gmplonglong.h.

#define umul_ppmm (   w1,
  w0,
  u,
 
)
Value:
do {                                                           \
    UWtype __x0, __x1, __x2, __x3;                             \
    UHWtype __ul, __vl, __uh, __vh;                                   \
    UWtype __u = (u), __v = (v);                               \
                                                               \
    __ul = __ll_lowpart (__u);                                        \
    __uh = __ll_highpart (__u);                                       \
    __vl = __ll_lowpart (__v);                                        \
    __vh = __ll_highpart (__v);                                       \
                                                               \
    __x0 = (UWtype) __ul * __vl;                               \
    __x1 = (UWtype) __ul * __vh;                               \
    __x2 = (UWtype) __uh * __vl;                               \
    __x3 = (UWtype) __uh * __vh;                               \
                                                               \
    __x1 += __ll_highpart (__x0);/* this can't give carry */          \
    __x1 += __x2;           /* but this indeed can */          \
    if (__x1 < __x2)        /* did we get it? */               \
      __x3 += __ll_B;              /* yes, add it in the proper pos. */      \
                                                               \
    (w1) = __x3 + __ll_highpart (__x1);                               \
    (w0) = (__x1 << W_TYPE_SIZE/2) + __ll_lowpart (__x0);             \
  } while (0)

Definition at line 1200 of file gmplonglong.h.

#define UMUL_TIME   1

Definition at line 1342 of file gmplonglong.h.


Variable Documentation

unsigned char __clz_tab[]

Definition at line 5672 of file gmp.c.