/* Head file for the multi-precision package */ /* ** $Revision: 1.5 $ ** $Source: /home/carrier/rsa/mpp.h,v $ ** $Date: 1999/11/11 19:45:58 $ */ #ifndef _MPP_H #define _MPP_H #define LOG2 .69314718 /* Natural Log of 2.0 */ #define LOG3 1.0986122 /* Natural Log of 3.0 */ #define RADIX 1073741824 #define RADIX_BITS 30 /* Number of bits in RADIX: 2^RADIX_BITS=RADIX */ #define SQRT_RAD 32768 /* [SQRT(RADIX)] =2^15 */ #define MPDIM 50 #define MPCDIM 200 #define MPBITS 30 #define LOGTWO 50 #define EOS '\0' #define BLANK ' ' #define SIGN(x) ((x[0]>0)?1:-1) #define SIZE(x) (SIGN(x)*x[0]) #define SET_SIZE(x) x[0] /* Size of x in base RADIX */ #define LASTDIGIT(x) x[1] #define LAST(x) x[1] #define FIRST(x) x[SIZE(x)-1] #define MINUS(x,y) {mpcopy(x,y); y[0]=0-x[0];} #define SINGLE 2 /* single precision size of MP */ #define DOUBLE 3 /* double precision size of MP */ #define INIT(x) for (ini=0; ini