1 | #ifndef NTL_mach_desc__H |
---|
2 | #define NTL_mach_desc__H |
---|
3 | |
---|
4 | |
---|
5 | #define NTL_BITS_PER_LONG (32) |
---|
6 | #define NTL_MAX_LONG (2147483647L) |
---|
7 | #define NTL_MAX_INT (2147483647) |
---|
8 | #define NTL_BITS_PER_INT (32) |
---|
9 | #define NTL_ARITH_RIGHT_SHIFT (1) |
---|
10 | #define NTL_NBITS_MAX (30) |
---|
11 | #define NTL_DOUBLE_PRECISION (53) |
---|
12 | #define NTL_FDOUBLE_PRECISION (((double)(1L<<30))*((double)(1L<<22))) |
---|
13 | #define NTL_QUAD_FLOAT_SPLIT ((((double)(1L<<27)))+1.0) |
---|
14 | #define NTL_EXT_DOUBLE (1) |
---|
15 | #define NTL_SINGLE_MUL_OK (1) |
---|
16 | #define NTL_DOUBLES_LOW_HIGH (1) |
---|
17 | |
---|
18 | |
---|
19 | |
---|
20 | |
---|
21 | #define NTL_BB_MUL_CODE \ |
---|
22 | hi=(hi<<2)|(lo>>30); lo=(lo<<2)^A[(b>>26)&3];\ |
---|
23 | hi=(hi<<2)|(lo>>30); lo=(lo<<2)^A[(b>>24)&3];\ |
---|
24 | hi=(hi<<2)|(lo>>30); lo=(lo<<2)^A[(b>>22)&3];\ |
---|
25 | hi=(hi<<2)|(lo>>30); lo=(lo<<2)^A[(b>>20)&3];\ |
---|
26 | hi=(hi<<2)|(lo>>30); lo=(lo<<2)^A[(b>>18)&3];\ |
---|
27 | hi=(hi<<2)|(lo>>30); lo=(lo<<2)^A[(b>>16)&3];\ |
---|
28 | hi=(hi<<2)|(lo>>30); lo=(lo<<2)^A[(b>>14)&3];\ |
---|
29 | hi=(hi<<2)|(lo>>30); lo=(lo<<2)^A[(b>>12)&3];\ |
---|
30 | hi=(hi<<2)|(lo>>30); lo=(lo<<2)^A[(b>>10)&3];\ |
---|
31 | hi=(hi<<2)|(lo>>30); lo=(lo<<2)^A[(b>>8)&3];\ |
---|
32 | hi=(hi<<2)|(lo>>30); lo=(lo<<2)^A[(b>>6)&3];\ |
---|
33 | hi=(hi<<2)|(lo>>30); lo=(lo<<2)^A[(b>>4)&3];\ |
---|
34 | hi=(hi<<2)|(lo>>30); lo=(lo<<2)^A[(b>>2)&3];\ |
---|
35 | |
---|
36 | |
---|
37 | |
---|
38 | |
---|
39 | #define NTL_BB_HALF_MUL_CODE \ |
---|
40 | hi=(hi<<2)|(lo>>30); lo=(lo<<2)^A[(b>>10)&3];\ |
---|
41 | hi=(hi<<2)|(lo>>30); lo=(lo<<2)^A[(b>>8)&3];\ |
---|
42 | hi=(hi<<2)|(lo>>30); lo=(lo<<2)^A[(b>>6)&3];\ |
---|
43 | hi=(hi<<2)|(lo>>30); lo=(lo<<2)^A[(b>>4)&3];\ |
---|
44 | hi=(hi<<2)|(lo>>30); lo=(lo<<2)^A[(b>>2)&3];\ |
---|
45 | |
---|
46 | |
---|
47 | |
---|
48 | |
---|
49 | #define NTL_BB_SQR_CODE \ |
---|
50 | lo=sqrtab[a&255];\ |
---|
51 | lo=lo|(sqrtab[(a>>8)&255]<<16);\ |
---|
52 | hi=sqrtab[(a>>16)&255];\ |
---|
53 | hi=hi|(sqrtab[(a>>24)&255]<<16);\ |
---|
54 | |
---|
55 | |
---|
56 | |
---|
57 | |
---|
58 | #define NTL_BB_REV_CODE (revtab[(a>>0)&255]<<24)\ |
---|
59 | |(revtab[(a>>8)&255]<<16)\ |
---|
60 | |(revtab[(a>>16)&255]<<8)\ |
---|
61 | |(revtab[(a>>24)&255]<<0) |
---|
62 | |
---|
63 | #define NTL_MIN_LONG (-NTL_MAX_LONG - 1L) |
---|
64 | #define NTL_MIN_INT (-NTL_MAX_INT - 1) |
---|
65 | #endif |
---|
66 | |
---|