29 #ifndef __CLASSPATH_MPREC_H__ 30 #define __CLASSPATH_MPREC_H__ 41 typedef __int32 int32_t;
42 typedef unsigned __int32 uint32_t;
57 #if defined HAVE_SYS_TYPES_H 58 #include <sys/types.h> 61 #if defined HAVE_SYS_CONFIG_H 62 #include <sys/config.h> 72 #ifdef __IEEE_LITTLE_ENDIAN 76 #ifdef __IEEE_BIG_ENDIAN 87 #define Bug(x) {fprintf(stderr, "%s\n", x); exit(1);} 91 #ifdef Unsigned_Shifts 92 #define Sign_Extend(a,b) if (b < 0) a |= (uint32_t)0xffff0000; 94 #define Sign_Extend(a,b) 97 #if defined(IEEE_8087) + defined(IEEE_MC68k) + defined(VAX) + defined(IBM) != 1 111 #define word0(x) (x.i[1]) 112 #define word1(x) (x.i[0]) 114 #define word0(x) (x.i[0]) 115 #define word1(x) (x.i[1]) 122 #if defined(__IEEE_BYTES_LITTLE_ENDIAN) + defined(IEEE_8087) + defined(VAX) 123 #define Storeinc(a,b,c) (((unsigned short *)a)[1] = (unsigned short)b, \ 124 ((unsigned short *)a)[0] = (unsigned short)c, a++) 126 #define Storeinc(a,b,c) (((unsigned short *)a)[0] = (unsigned short)b, \ 127 ((unsigned short *)a)[1] = (unsigned short)c, a++) 136 #if defined(IEEE_8087) + defined(IEEE_MC68k) 137 #if defined (_DOUBLE_IS_32BITS) 139 #define Exp_shift1 23 140 #define Exp_msk1 ((uint32_t)0x00800000L) 141 #define Exp_msk11 ((uint32_t)0x00800000L) 142 #define Exp_mask ((uint32_t)0x7f800000L) 149 #define Exp_1 ((uint32_t)0x3f800000L) 150 #define Exp_11 ((uint32_t)0x3f800000L) 152 #define Frac_mask ((uint32_t)0x007fffffL) 153 #define Frac_mask1 ((uint32_t)0x007fffffL) 155 #define Sign_bit ((uint32_t)0x80000000L) 158 #define Bndry_mask ((uint32_t)0x007fffffL) 159 #define Bndry_mask1 ((uint32_t)0x007fffffL) 161 #define Sign_bit ((uint32_t)0x80000000L) 167 #define Infinite(x) (word0(x) == ((uint32_t)0x7f800000L)) 171 #define word0(x) (x.i[0]) 176 #define Exp_shift1 20 177 #define Exp_msk1 ((uint32_t)0x100000L) 178 #define Exp_msk11 ((uint32_t)0x100000L) 179 #define Exp_mask ((uint32_t)0x7ff00000L) 184 #define Exp_1 ((uint32_t)0x3ff00000L) 185 #define Exp_11 ((uint32_t)0x3ff00000L) 187 #define Frac_mask ((uint32_t)0xfffffL) 188 #define Frac_mask1 ((uint32_t)0xfffffL) 191 #define Bndry_mask ((uint32_t)0xfffffL) 192 #define Bndry_mask1 ((uint32_t)0xfffffL) 194 #define Sign_bit ((uint32_t)0x80000000L) 200 #define Infinite(x) (word0(x) == ((uint32_t)0x7ff00000L)) 204 #undef Sudden_Underflow 205 #define Sudden_Underflow 208 #define Exp_shift1 24 209 #define Exp_msk1 ((uint32_t)0x1000000L) 210 #define Exp_msk11 ((uint32_t)0x1000000L) 211 #define Exp_mask ((uint32_t)0x7f000000L) 214 #define Exp_1 ((uint32_t)0x41000000L) 215 #define Exp_11 ((uint32_t)0x41000000L) 217 #define Frac_mask ((uint32_t)0xffffffL) 218 #define Frac_mask1 ((uint32_t)0xffffffL) 221 #define Bndry_mask ((uint32_t)0xefffffL) 222 #define Bndry_mask1 ((uint32_t)0xffffffL) 224 #define Sign_bit ((uint32_t)0x80000000L) 226 #define Tiny0 ((uint32_t)0x100000L) 233 #define Exp_msk1 0x80 234 #define Exp_msk11 ((uint32_t)0x800000L) 235 #define Exp_mask ((uint32_t)0x7f80L) 238 #define Exp_1 ((uint32_t)0x40800000L) 239 #define Exp_11 ((uint32_t)0x4080L) 241 #define Frac_mask ((uint32_t)0x7fffffL) 242 #define Frac_mask1 ((uint32_t)0xffff007fL) 245 #define Bndry_mask ((uint32_t)0xffff007fL) 246 #define Bndry_mask1 ((uint32_t)0xffff007fL) 247 #define LSB ((uint32_t)0x10000L) 248 #define Sign_bit ((uint32_t)0x8000L) 262 #define rounded_product(a,b) a = rnd_prod(a, b) 263 #define rounded_quotient(a,b) a = rnd_quot(a, b) 265 extern double rnd_prod (), rnd_quot ();
267 extern double rnd_prod (
double,
double), rnd_quot (
double,
double);
270 #define rounded_product(a,b) a *= b 271 #define rounded_quotient(a,b) a /= b 274 #define Big0 (Frac_mask1 | Exp_msk1*(DBL_MAX_EXP+Bias-1)) 275 #define Big1 ((uint32_t)0xffffffffL) 285 #if SIZEOF_VOID_P != 8 292 #define MAX_BIGNUMS 16 294 #define MAX_BIGNUM_WDS 32 297 #define MAX_BIGNUM_WDS 128 312 #define _VOLATILE volatile 313 #define _SIGNED signed 317 #define _EXFUN(name, proto) name proto 319 #define _DEFUN(name, arglist, args) name(args) 320 #define _DEFUN_VOID(name) name(_NOARGS) 321 #define _CAST_VOID (void) 341 #define Balloc _Jv_Balloc 342 #define Bfree _Jv_Bfree 343 #define multadd _Jv_multadd 345 #define lo0bits _Jv_lo0bits 346 #define hi0bits _Jv_hi0bits 348 #define mult _Jv_mult 349 #define pow5mult _Jv_pow5mult 350 #define lshift _Jv_lshift 351 #define cmp _Jv__mcmp 352 #define diff _Jv__mdiff 356 #define ratio _Jv_ratio 358 #define tens _Jv__mprec_tens 359 #define bigtens _Jv__mprec_bigtens 360 #define tinytens _Jv__mprec_tinytens 362 #define _dtoa _Jv_dtoa 363 #define _dtoa_r _Jv_dtoa_r 364 #define _strtod_r _Jv_strtod_r 368 (
struct _Jv_reent * ptr,
double d,
int mode,
int ndigits,
int *decpt,
int *sign,
char **rve,
371 (
double d,
int mode,
int ndigits,
int *decpt,
int *sign,
char **rve,
char *buf,
int float_type));
390 #define Bcopy(x,y) memcpy((char *)&x->_sign, (char *)&y->_sign, y->_wds*sizeof(long) + 2*sizeof(int)) 392 #if defined(_DOUBLE_IS_32BITS) && defined(__v800)
#define _EXFUN(name, proto)
struct _Jv_Bigint ** _freelist
static enum scanner_mode mode
struct _Jv_Bigint * _next
Exactly one of IEEE_MC68k
struct _Jv_Bigint * _result