Main Page | Class List | Directories | File List | Class Members | File Members

bignum.h File Reference

#include "global.h"

Go to the source code of this file.

Defines

#define INT_TYPE_SIGN(x)   ((x) < 0)
#define INT_TYPE_MUL_OVERFLOW(a, b)   ((b) && (INT_TYPE_DIV_OVERFLOW(a, b) || ((a)*(b))/(b) != (a)))
#define INT_TYPE_DIV_OVERFLOW(a, b)   (INT_TYPE_NEG_OVERFLOW(a) && (b) == -1)
#define INT_TYPE_NEG_OVERFLOW(x)   ((x) && (x) == -(x))
#define INT_TYPE_ADD_OVERFLOW(a, b)
#define INT_TYPE_SUB_OVERFLOW(a, b)
#define INT_TYPE_LSH_OVERFLOW(a, b)
#define INT_TYPE_RSH_OVERFLOW(a, b)   (((INT_TYPE)sizeof(INT_TYPE))*CHAR_BIT <= (b) && (a))
#define push_int64(i)   push_int((INT_TYPE)(i))
#define int64_from_bignum(I, BIGNUM)   0


Define Documentation

#define int64_from_bignum I,
BIGNUM   )     0
 

#define INT_TYPE_ADD_OVERFLOW a,
 ) 
 

Value:

(INT_TYPE_SIGN(a) == INT_TYPE_SIGN(b) &&                           \
         INT_TYPE_SIGN(a) != INT_TYPE_SIGN((a)+(b)))

#define INT_TYPE_DIV_OVERFLOW a,
 )     (INT_TYPE_NEG_OVERFLOW(a) && (b) == -1)
 

#define INT_TYPE_LSH_OVERFLOW a,
 ) 
 

Value:

((((INT_TYPE)sizeof(INT_TYPE))*CHAR_BIT <= (b) && (a)) ||          \
         (((a)<<(b))>>(b)) != (a))

#define INT_TYPE_MUL_OVERFLOW a,
 )     ((b) && (INT_TYPE_DIV_OVERFLOW(a, b) || ((a)*(b))/(b) != (a)))
 

#define INT_TYPE_NEG_OVERFLOW  )     ((x) && (x) == -(x))
 

#define INT_TYPE_RSH_OVERFLOW a,
 )     (((INT_TYPE)sizeof(INT_TYPE))*CHAR_BIT <= (b) && (a))
 

#define INT_TYPE_SIGN  )     ((x) < 0)
 

#define INT_TYPE_SUB_OVERFLOW a,
 ) 
 

Value:

(INT_TYPE_SIGN(a) != INT_TYPE_SIGN(b) &&                           \
         INT_TYPE_SIGN(a) != INT_TYPE_SIGN((a)-(b)))

#define push_int64  )     push_int((INT_TYPE)(i))
 


Generated on Fri Jul 22 23:44:28 2005 for Pike by  doxygen 1.3.9.1