Changeset 198a33 in git
- Timestamp:
- Feb 10, 2009, 6:04:17 PM (14 years ago)
- Branches:
- (u'spielwiese', 'f6c3dc58b0df4bd712574325fe76d0626174ad97')
- Children:
- 79d3879fcd4dcf40029e29ecc50ac26cbbd425ff
- Parents:
- 03de21090abd52e7f4a5dab11e0839b0f062a419
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/gfan.cc
r03de21 r198a33 2 2 Compute the Groebner fan of an ideal 3 3 Author: $Author: monerjan $ 4 Date: $Date: 2009-02-10 1 2:03:50$5 Header: $Header: /exports/cvsroot-2/cvsroot/kernel/gfan.cc,v 1. 8 2009-02-10 12:03:50monerjan Exp $6 Id: $Id: gfan.cc,v 1. 8 2009-02-10 12:03:50monerjan Exp $4 Date: $Date: 2009-02-10 17:04:17 $ 5 Header: $Header: /exports/cvsroot-2/cvsroot/kernel/gfan.cc,v 1.9 2009-02-10 17:04:17 monerjan Exp $ 6 Id: $Id: gfan.cc,v 1.9 2009-02-10 17:04:17 monerjan Exp $ 7 7 */ 8 8 … … 12 12 #include "polys.h" 13 13 #include "ideals.h" 14 #include "kmatrix.h" 14 15 15 16 #ifndef gfan_DEBUG … … 50 51 // End of var declaration 51 52 52 printf("The Gr öbner basis has %i elements\n",lengthGB);53 printf("The Groebner basis has %i elements\n",lengthGB); 53 54 printf("The current ring has %i variables\n",numvar); 54 55 cols = numvar; … … 63 64 printf("rows=%i\n",rows); 64 65 printf("Will create a %i x %i - matrix to store inequalities\n",rows,cols); 65 matrix ineq[rows][cols];66 66 int ineq[rows][cols]; // array of int vs matrix vs KMatrix ??? What's to use? 67 int aktmatrixrow=0; // needed to store the diffs of the expvects in the rows of ineq 67 68 68 69 // We loop through each g\in GB 69 70 for (int i=0; i<IDELEMS(I); i++) 70 71 { 71 aktpoly=(poly)I->m[i]; 72 pCompCount=pLength(aktpoly); 72 aktpoly=(poly)I->m[i]; //get aktpoly as i-th component of I 73 pCompCount=pLength(aktpoly); //How many terms does aktpoly consist of? 73 74 printf("Poly No. %i has %i components\n",i,pCompCount); 74 75 75 76 int *v=(int *)omAlloc((numvar+1)*sizeof(int)); 76 77 pGetExpV(aktpoly,v); //find the exp.vect in v[1],...,v[n], use pNext(p) 77 78 78 79 //Store leadexp for aktpoly 79 80 for (int kk=0;kk<numvar;kk++) … … 81 82 leadexp[kk]=v[kk+1]; 82 83 printf("Leadexpcomp=%i\n",leadexp[kk]); 84 //Since we need to know the difference of leadexp with the other expvects we do nothing here 85 //but compute the diff below 83 86 } 84 87 85 while (pNext(aktpoly)!=NULL) 88 89 while (pNext(aktpoly)!=NULL) //move to next term until NULL 86 90 { 87 91 aktpoly=pNext(aktpoly); 88 pSetm(aktpoly); 92 pSetm(aktpoly); //doesn't seem to help anything 89 93 pGetExpV(aktpoly,v); 90 94 for (int kk=0;kk<numvar;kk++) … … 93 97 aktexp[kk]=v[kk+1]; 94 98 printf("aktexpcomp=%i\n",aktexp[kk]); 99 ineq[aktmatrixrow][kk]=leadexp[kk]-aktexp[kk]; //dito 95 100 } 101 aktmatrixrow=aktmatrixrow+1; 96 102 }//while 97 98 103 } //for 104 #ifdef gfan_DEBUG 105 printf("Inequalitiy matrix\n"); 106 for (int i=0;i<rows;i++) 107 { 108 for (int j=0;j<cols;j++) 109 { 110 printf("%i ",ineq[i][j]); 111 } 112 printf("\n"); 113 } 114 #endif 99 115 //res=(ideal)aktpoly; 100 116 //return res; -
ntl/include/NTL/gmp_aux.h
r03de21 r198a33 1 #define NTL_ZZ_NBITS ( 64)2 #define NTL_ZZ_FRADIX (((double)(1L<< 62))*((double)(1L<<2)))1 #define NTL_ZZ_NBITS (32) 2 #define NTL_ZZ_FRADIX (((double)(1L<<30))*((double)(1L<<2))) -
ntl/include/NTL/mach_desc.h
r03de21 r198a33 3 3 4 4 5 #define NTL_BITS_PER_LONG ( 64)6 #define NTL_MAX_LONG ( 9223372036854775807L)5 #define NTL_BITS_PER_LONG (32) 6 #define NTL_MAX_LONG (2147483647L) 7 7 #define NTL_MAX_INT (2147483647) 8 8 #define NTL_BITS_PER_INT (32) 9 #define NTL_BITS_PER_SIZE_T ( 64)9 #define NTL_BITS_PER_SIZE_T (32) 10 10 #define NTL_ARITH_RIGHT_SHIFT (1) 11 #define NTL_NBITS_MAX ( 50)11 #define NTL_NBITS_MAX (30) 12 12 #define NTL_DOUBLE_PRECISION (53) 13 #define NTL_FDOUBLE_PRECISION (((double)(1L<< 52)))13 #define NTL_FDOUBLE_PRECISION (((double)(1L<<30))*((double)(1L<<22))) 14 14 #define NTL_QUAD_FLOAT_SPLIT ((((double)(1L<<27)))+1.0) 15 #define NTL_EXT_DOUBLE ( 0)16 #define NTL_SINGLE_MUL_OK ( 0)17 #define NTL_DOUBLES_LOW_HIGH ( 0)15 #define NTL_EXT_DOUBLE (1) 16 #define NTL_SINGLE_MUL_OK (1) 17 #define NTL_DOUBLES_LOW_HIGH (1) 18 18 19 19 … … 22 22 #define NTL_BB_MUL_CODE0 \ 23 23 _ntl_ulong hi, lo, t;\ 24 _ntl_ulong A[16];\ 25 A[0] = 0;\ 26 A[1] = a;\ 27 A[2] = A[1] << 1;\ 28 A[3] = A[2] ^ A[1];\ 29 A[4] = A[2] << 1;\ 30 A[5] = A[4] ^ A[1];\ 31 A[6] = A[3] << 1;\ 32 A[7] = A[6] ^ A[1];\ 33 A[8] = A[4] << 1;\ 34 A[9] = A[8] ^ A[1];\ 35 A[10] = A[5] << 1;\ 36 A[11] = A[10] ^ A[1];\ 37 A[12] = A[6] << 1;\ 38 A[13] = A[12] ^ A[1];\ 39 A[14] = A[7] << 1;\ 40 A[15] = A[14] ^ A[1];\ 41 lo = A[b & 15]; t = A[(b >> 4) & 15]; hi = t >> 60; lo ^= t << 4;\ 42 t = A[(b >> 8) & 15]; hi ^= t >> 56; lo ^= t << 8;\ 43 t = A[(b >> 12) & 15]; hi ^= t >> 52; lo ^= t << 12;\ 44 t = A[(b >> 16) & 15]; hi ^= t >> 48; lo ^= t << 16;\ 45 t = A[(b >> 20) & 15]; hi ^= t >> 44; lo ^= t << 20;\ 46 t = A[(b >> 24) & 15]; hi ^= t >> 40; lo ^= t << 24;\ 47 t = A[(b >> 28) & 15]; hi ^= t >> 36; lo ^= t << 28;\ 48 t = A[(b >> 32) & 15]; hi ^= t >> 32; lo ^= t << 32;\ 49 t = A[(b >> 36) & 15]; hi ^= t >> 28; lo ^= t << 36;\ 50 t = A[(b >> 40) & 15]; hi ^= t >> 24; lo ^= t << 40;\ 51 t = A[(b >> 44) & 15]; hi ^= t >> 20; lo ^= t << 44;\ 52 t = A[(b >> 48) & 15]; hi ^= t >> 16; lo ^= t << 48;\ 53 t = A[(b >> 52) & 15]; hi ^= t >> 12; lo ^= t << 52;\ 54 t = A[(b >> 56) & 15]; hi ^= t >> 8; lo ^= t << 56;\ 55 t = A[b >> 60]; hi ^= t >> 4; lo ^= t << 60;\ 56 if (a >> 63) hi ^= ((b & 0xeeeeeeeeeeeeeeeeUL) >> 1);\ 57 if ((a >> 62) & 1) hi ^= ((b & 0xccccccccccccccccUL) >> 2);\ 58 if ((a >> 61) & 1) hi ^= ((b & 0x8888888888888888UL) >> 3);\ 24 _ntl_ulong A[8];\ 25 A[0] = 0;\ 26 A[1] = a;\ 27 A[2] = A[1] << 1;\ 28 A[3] = A[2] ^ A[1];\ 29 A[4] = A[2] << 1;\ 30 A[5] = A[4] ^ A[1];\ 31 A[6] = A[3] << 1;\ 32 A[7] = A[6] ^ A[1];\ 33 lo = A[b & 7]; t = A[(b >> 3) & 7]; hi = t >> 29; lo ^= t << 3;\ 34 t = A[(b >> 6) & 7]; hi ^= t >> 26; lo ^= t << 6;\ 35 t = A[(b >> 9) & 7]; hi ^= t >> 23; lo ^= t << 9;\ 36 t = A[(b >> 12) & 7]; hi ^= t >> 20; lo ^= t << 12;\ 37 t = A[(b >> 15) & 7]; hi ^= t >> 17; lo ^= t << 15;\ 38 t = A[(b >> 18) & 7]; hi ^= t >> 14; lo ^= t << 18;\ 39 t = A[(b >> 21) & 7]; hi ^= t >> 11; lo ^= t << 21;\ 40 t = A[(b >> 24) & 7]; hi ^= t >> 8; lo ^= t << 24;\ 41 t = A[(b >> 27) & 7]; hi ^= t >> 5; lo ^= t << 27;\ 42 t = A[b >> 30]; hi ^= t >> 2; lo ^= t << 30;\ 43 if (a >> 31) hi ^= ((b & 0xb6db6db6UL) >> 1);\ 44 if ((a >> 30) & 1) hi ^= ((b & 0x24924924UL) >> 2);\ 59 45 c[0] = lo; c[1] = hi;\ 60 46 … … 86 72 for (i = 0; i < sb; i++) {\ 87 73 b = bp[i];\ 88 lo = A[b & 15]; t = A[(b >> 4) & 15]; hi = t >> 60; lo ^= t << 4;\ 89 t = A[(b >> 8) & 15]; hi ^= t >> 56; lo ^= t << 8;\ 90 t = A[(b >> 12) & 15]; hi ^= t >> 52; lo ^= t << 12;\ 91 t = A[(b >> 16) & 15]; hi ^= t >> 48; lo ^= t << 16;\ 92 t = A[(b >> 20) & 15]; hi ^= t >> 44; lo ^= t << 20;\ 93 t = A[(b >> 24) & 15]; hi ^= t >> 40; lo ^= t << 24;\ 94 t = A[(b >> 28) & 15]; hi ^= t >> 36; lo ^= t << 28;\ 95 t = A[(b >> 32) & 15]; hi ^= t >> 32; lo ^= t << 32;\ 96 t = A[(b >> 36) & 15]; hi ^= t >> 28; lo ^= t << 36;\ 97 t = A[(b >> 40) & 15]; hi ^= t >> 24; lo ^= t << 40;\ 98 t = A[(b >> 44) & 15]; hi ^= t >> 20; lo ^= t << 44;\ 99 t = A[(b >> 48) & 15]; hi ^= t >> 16; lo ^= t << 48;\ 100 t = A[(b >> 52) & 15]; hi ^= t >> 12; lo ^= t << 52;\ 101 t = A[(b >> 56) & 15]; hi ^= t >> 8; lo ^= t << 56;\ 102 t = A[b >> 60]; hi ^= t >> 4; lo ^= t << 60;\ 103 if (a >> 63) hi ^= ((b & 0xeeeeeeeeeeeeeeeeUL) >> 1);\ 104 if ((a >> 62) & 1) hi ^= ((b & 0xccccccccccccccccUL) >> 2);\ 105 if ((a >> 61) & 1) hi ^= ((b & 0x8888888888888888UL) >> 3);\ 74 lo = A[b & 15]; t = A[(b >> 4) & 15]; hi = t >> 28; lo ^= t << 4;\ 75 t = A[(b >> 8) & 15]; hi ^= t >> 24; lo ^= t << 8;\ 76 t = A[(b >> 12) & 15]; hi ^= t >> 20; lo ^= t << 12;\ 77 t = A[(b >> 16) & 15]; hi ^= t >> 16; lo ^= t << 16;\ 78 t = A[(b >> 20) & 15]; hi ^= t >> 12; lo ^= t << 20;\ 79 t = A[(b >> 24) & 15]; hi ^= t >> 8; lo ^= t << 24;\ 80 t = A[b >> 28]; hi ^= t >> 4; lo ^= t << 28;\ 81 if (a >> 31) hi ^= ((b & 0xeeeeeeeeUL) >> 1);\ 82 if ((a >> 30) & 1) hi ^= ((b & 0xccccccccUL) >> 2);\ 83 if ((a >> 29) & 1) hi ^= ((b & 0x88888888UL) >> 3);\ 106 84 cp[i] = carry ^ lo; carry = hi;\ 107 85 }\ … … 135 113 for (i = 0; i < sb; i++) {\ 136 114 b = bp[i];\ 137 lo = A[b & 15]; t = A[(b >> 4) & 15]; hi = t >> 60; lo ^= t << 4;\ 138 t = A[(b >> 8) & 15]; hi ^= t >> 56; lo ^= t << 8;\ 139 t = A[(b >> 12) & 15]; hi ^= t >> 52; lo ^= t << 12;\ 140 t = A[(b >> 16) & 15]; hi ^= t >> 48; lo ^= t << 16;\ 141 t = A[(b >> 20) & 15]; hi ^= t >> 44; lo ^= t << 20;\ 142 t = A[(b >> 24) & 15]; hi ^= t >> 40; lo ^= t << 24;\ 143 t = A[(b >> 28) & 15]; hi ^= t >> 36; lo ^= t << 28;\ 144 t = A[(b >> 32) & 15]; hi ^= t >> 32; lo ^= t << 32;\ 145 t = A[(b >> 36) & 15]; hi ^= t >> 28; lo ^= t << 36;\ 146 t = A[(b >> 40) & 15]; hi ^= t >> 24; lo ^= t << 40;\ 147 t = A[(b >> 44) & 15]; hi ^= t >> 20; lo ^= t << 44;\ 148 t = A[(b >> 48) & 15]; hi ^= t >> 16; lo ^= t << 48;\ 149 t = A[(b >> 52) & 15]; hi ^= t >> 12; lo ^= t << 52;\ 150 t = A[(b >> 56) & 15]; hi ^= t >> 8; lo ^= t << 56;\ 151 t = A[b >> 60]; hi ^= t >> 4; lo ^= t << 60;\ 152 if (a >> 63) hi ^= ((b & 0xeeeeeeeeeeeeeeeeUL) >> 1);\ 153 if ((a >> 62) & 1) hi ^= ((b & 0xccccccccccccccccUL) >> 2);\ 154 if ((a >> 61) & 1) hi ^= ((b & 0x8888888888888888UL) >> 3);\ 115 lo = A[b & 15]; t = A[(b >> 4) & 15]; hi = t >> 28; lo ^= t << 4;\ 116 t = A[(b >> 8) & 15]; hi ^= t >> 24; lo ^= t << 8;\ 117 t = A[(b >> 12) & 15]; hi ^= t >> 20; lo ^= t << 12;\ 118 t = A[(b >> 16) & 15]; hi ^= t >> 16; lo ^= t << 16;\ 119 t = A[(b >> 20) & 15]; hi ^= t >> 12; lo ^= t << 20;\ 120 t = A[(b >> 24) & 15]; hi ^= t >> 8; lo ^= t << 24;\ 121 t = A[b >> 28]; hi ^= t >> 4; lo ^= t << 28;\ 122 if (a >> 31) hi ^= ((b & 0xeeeeeeeeUL) >> 1);\ 123 if ((a >> 30) & 1) hi ^= ((b & 0xccccccccUL) >> 2);\ 124 if ((a >> 29) & 1) hi ^= ((b & 0x88888888UL) >> 3);\ 155 125 cp[i] ^= (carry ^ lo); carry = hi;\ 156 126 }\ … … 184 154 for (i = 0; i < sb; i++) {\ 185 155 b = bp[i];\ 186 lo = A[b & 15]; t = A[(b >> 4) & 15]; hi = t >> 60; lo ^= t << 4;\ 187 t = A[(b >> 8) & 15]; hi ^= t >> 56; lo ^= t << 8;\ 188 t = A[(b >> 12) & 15]; hi ^= t >> 52; lo ^= t << 12;\ 189 t = A[(b >> 16) & 15]; hi ^= t >> 48; lo ^= t << 16;\ 190 t = A[(b >> 20) & 15]; hi ^= t >> 44; lo ^= t << 20;\ 191 t = A[(b >> 24) & 15]; hi ^= t >> 40; lo ^= t << 24;\ 192 t = A[(b >> 28) & 15]; hi ^= t >> 36; lo ^= t << 28;\ 193 t = A[(b >> 32) & 15]; hi ^= t >> 32; lo ^= t << 32;\ 194 t = A[(b >> 36) & 15]; hi ^= t >> 28; lo ^= t << 36;\ 195 t = A[(b >> 40) & 15]; hi ^= t >> 24; lo ^= t << 40;\ 196 t = A[(b >> 44) & 15]; hi ^= t >> 20; lo ^= t << 44;\ 197 t = A[(b >> 48) & 15]; hi ^= t >> 16; lo ^= t << 48;\ 198 t = A[(b >> 52) & 15]; hi ^= t >> 12; lo ^= t << 52;\ 199 t = A[(b >> 56) & 15]; hi ^= t >> 8; lo ^= t << 56;\ 200 t = A[b >> 60]; hi ^= t >> 4; lo ^= t << 60;\ 156 lo = A[b & 15]; t = A[(b >> 4) & 15]; hi = t >> 28; lo ^= t << 4;\ 157 t = A[(b >> 8) & 15]; hi ^= t >> 24; lo ^= t << 8;\ 158 t = A[(b >> 12) & 15]; hi ^= t >> 20; lo ^= t << 12;\ 159 t = A[(b >> 16) & 15]; hi ^= t >> 16; lo ^= t << 16;\ 160 t = A[(b >> 20) & 15]; hi ^= t >> 12; lo ^= t << 20;\ 161 t = A[(b >> 24) & 15]; hi ^= t >> 8; lo ^= t << 24;\ 162 t = A[b >> 28]; hi ^= t >> 4; lo ^= t << 28;\ 201 163 cp[i] = carry ^ lo; carry = hi;\ 202 164 }\ … … 214 176 A[2] = A[1] << 1;\ 215 177 A[3] = A[2] ^ A[1];\ 216 lo = A[b & 3]; t = A[(b >> 2) & 3]; hi = t >> 62; lo ^= t << 2;\ 217 t = A[(b >> 4) & 3]; hi ^= t >> 60; lo ^= t << 4;\ 218 t = A[(b >> 6) & 3]; hi ^= t >> 58; lo ^= t << 6;\ 219 t = A[(b >> 8) & 3]; hi ^= t >> 56; lo ^= t << 8;\ 220 t = A[(b >> 10) & 3]; hi ^= t >> 54; lo ^= t << 10;\ 221 t = A[(b >> 12) & 3]; hi ^= t >> 52; lo ^= t << 12;\ 222 t = A[(b >> 14) & 3]; hi ^= t >> 50; lo ^= t << 14;\ 223 t = A[(b >> 16) & 3]; hi ^= t >> 48; lo ^= t << 16;\ 224 t = A[(b >> 18) & 3]; hi ^= t >> 46; lo ^= t << 18;\ 225 t = A[(b >> 20) & 3]; hi ^= t >> 44; lo ^= t << 20;\ 226 t = A[(b >> 22) & 3]; hi ^= t >> 42; lo ^= t << 22;\ 227 t = A[(b >> 24) & 3]; hi ^= t >> 40; lo ^= t << 24;\ 228 t = A[(b >> 26) & 3]; hi ^= t >> 38; lo ^= t << 26;\ 229 t = A[(b >> 28) & 3]; hi ^= t >> 36; lo ^= t << 28;\ 230 t = A[b >> 30]; hi ^= t >> 34; lo ^= t << 30;\ 231 if (a >> 63) hi ^= ((b & 0xaaaaaaaaUL) >> 1);\ 178 lo = A[b & 3]; t = A[(b >> 2) & 3]; hi = t >> 30; lo ^= t << 2;\ 179 t = A[(b >> 4) & 3]; hi ^= t >> 28; lo ^= t << 4;\ 180 t = A[(b >> 6) & 3]; hi ^= t >> 26; lo ^= t << 6;\ 181 t = A[(b >> 8) & 3]; hi ^= t >> 24; lo ^= t << 8;\ 182 t = A[(b >> 10) & 3]; hi ^= t >> 22; lo ^= t << 10;\ 183 t = A[(b >> 12) & 3]; hi ^= t >> 20; lo ^= t << 12;\ 184 t = A[b >> 14]; hi ^= t >> 18; lo ^= t << 14;\ 185 if (a >> 31) hi ^= ((b & 0xaaaaUL) >> 1);\ 232 186 c[0] = lo; c[1] = hi;\ 233 187 … … 237 191 238 192 #define NTL_ALT_BB_MUL_CODE0 \ 239 _ntl_ulong A[16];\ 240 A[0] = 0;\ 241 A[1] = a;\ 242 A[2] = A[1] << 1;\ 243 A[3] = A[2] ^ A[1];\ 244 A[4] = A[2] << 1;\ 245 A[5] = A[4] ^ A[1];\ 246 A[6] = A[3] << 1;\ 247 A[7] = A[6] ^ A[1];\ 248 A[8] = A[4] << 1;\ 249 A[9] = A[8] ^ A[1];\ 250 A[10] = A[5] << 1;\ 251 A[11] = A[10] ^ A[1];\ 252 A[12] = A[6] << 1;\ 253 A[13] = A[12] ^ A[1];\ 254 A[14] = A[7] << 1;\ 255 A[15] = A[14] ^ A[1];\ 256 const _ntl_ulong t4 = A[(b >> 4) & 15]; \ 257 const _ntl_ulong t8 = A[(b >> 8) & 15]; \ 258 const _ntl_ulong t12 = A[(b >> 12) & 15]; \ 259 const _ntl_ulong t16 = A[(b >> 16) & 15]; \ 260 const _ntl_ulong t20 = A[(b >> 20) & 15]; \ 261 const _ntl_ulong t24 = A[(b >> 24) & 15]; \ 262 const _ntl_ulong t28 = A[(b >> 28) & 15]; \ 263 const _ntl_ulong t32 = A[(b >> 32) & 15]; \ 264 const _ntl_ulong t36 = A[(b >> 36) & 15]; \ 265 const _ntl_ulong t40 = A[(b >> 40) & 15]; \ 266 const _ntl_ulong t44 = A[(b >> 44) & 15]; \ 267 const _ntl_ulong t48 = A[(b >> 48) & 15]; \ 268 const _ntl_ulong t52 = A[(b >> 52) & 15]; \ 269 const _ntl_ulong t56 = A[(b >> 56) & 15]; \ 270 const _ntl_ulong t60 = A[b >> 60]; \ 271 const _ntl_ulong lo = A[b & 15] \ 272 ^ (t4 << 4)\ 273 ^ (t8 << 8)\ 193 _ntl_ulong A[8];\ 194 A[0] = 0;\ 195 A[1] = a;\ 196 A[2] = A[1] << 1;\ 197 A[3] = A[2] ^ A[1];\ 198 A[4] = A[2] << 1;\ 199 A[5] = A[4] ^ A[1];\ 200 A[6] = A[3] << 1;\ 201 A[7] = A[6] ^ A[1];\ 202 const _ntl_ulong t3 = A[(b >> 3) & 7]; \ 203 const _ntl_ulong t6 = A[(b >> 6) & 7]; \ 204 const _ntl_ulong t9 = A[(b >> 9) & 7]; \ 205 const _ntl_ulong t12 = A[(b >> 12) & 7]; \ 206 const _ntl_ulong t15 = A[(b >> 15) & 7]; \ 207 const _ntl_ulong t18 = A[(b >> 18) & 7]; \ 208 const _ntl_ulong t21 = A[(b >> 21) & 7]; \ 209 const _ntl_ulong t24 = A[(b >> 24) & 7]; \ 210 const _ntl_ulong t27 = A[(b >> 27) & 7]; \ 211 const _ntl_ulong t30 = A[b >> 30]; \ 212 const _ntl_ulong lo = A[b & 7] \ 213 ^ (t3 << 3)\ 214 ^ (t6 << 6)\ 215 ^ (t9 << 9)\ 274 216 ^ (t12 << 12)\ 275 ^ (t16 << 16)\ 276 ^ (t20 << 20)\ 217 ^ (t15 << 15)\ 218 ^ (t18 << 18)\ 219 ^ (t21 << 21)\ 277 220 ^ (t24 << 24)\ 278 ^ (t28 << 28)\ 279 ^ (t32 << 32)\ 280 ^ (t36 << 36)\ 281 ^ (t40 << 40)\ 282 ^ (t44 << 44)\ 283 ^ (t48 << 48)\ 284 ^ (t52 << 52)\ 285 ^ (t56 << 56)\ 286 ^ (t60 << 60);\ 287 const _ntl_ulong hi = (t4 >> 60)\ 288 ^ (t8 >> 56)\ 289 ^ (t12 >> 52)\ 290 ^ (t16 >> 48)\ 291 ^ (t20 >> 44)\ 292 ^ (t24 >> 40)\ 293 ^ (t28 >> 36)\ 294 ^ (t32 >> 32)\ 295 ^ (t36 >> 28)\ 296 ^ (t40 >> 24)\ 297 ^ (t44 >> 20)\ 298 ^ (t48 >> 16)\ 299 ^ (t52 >> 12)\ 300 ^ (t56 >> 8)\ 301 ^ (t60 >> 4)\ 302 ^ (((b & 0xeeeeeeeeeeeeeeeeUL) >> 1) & (-(a >> 63)))\ 303 ^ (((b & 0xccccccccccccccccUL) >> 2) & (-((a >> 62) & 1UL)))\ 304 ^ (((b & 0x8888888888888888UL) >> 3) & (-((a >> 61) & 1UL)));\ 221 ^ (t27 << 27)\ 222 ^ (t30 << 30);\ 223 const _ntl_ulong hi = (t3 >> 29)\ 224 ^ (t6 >> 26)\ 225 ^ (t9 >> 23)\ 226 ^ (t12 >> 20)\ 227 ^ (t15 >> 17)\ 228 ^ (t18 >> 14)\ 229 ^ (t21 >> 11)\ 230 ^ (t24 >> 8)\ 231 ^ (t27 >> 5)\ 232 ^ (t30 >> 2)\ 233 ^ (((b & 0xb6db6db6UL) >> 1) & (-(a >> 31)))\ 234 ^ (((b & 0x24924924UL) >> 2) & (-((a >> 30) & 1UL)));\ 305 235 c[0] = lo; c[1] = hi;\ 306 236 … … 337 267 const _ntl_ulong t20 = A[(b >> 20) & 15]; \ 338 268 const _ntl_ulong t24 = A[(b >> 24) & 15]; \ 339 const _ntl_ulong t28 = A[(b >> 28) & 15]; \ 340 const _ntl_ulong t32 = A[(b >> 32) & 15]; \ 341 const _ntl_ulong t36 = A[(b >> 36) & 15]; \ 342 const _ntl_ulong t40 = A[(b >> 40) & 15]; \ 343 const _ntl_ulong t44 = A[(b >> 44) & 15]; \ 344 const _ntl_ulong t48 = A[(b >> 48) & 15]; \ 345 const _ntl_ulong t52 = A[(b >> 52) & 15]; \ 346 const _ntl_ulong t56 = A[(b >> 56) & 15]; \ 347 const _ntl_ulong t60 = A[b >> 60]; \ 269 const _ntl_ulong t28 = A[b >> 28]; \ 348 270 const _ntl_ulong lo = A[b & 15] \ 349 271 ^ (t4 << 4)\ … … 353 275 ^ (t20 << 20)\ 354 276 ^ (t24 << 24)\ 355 ^ (t28 << 28)\ 356 ^ (t32 << 32)\ 357 ^ (t36 << 36)\ 358 ^ (t40 << 40)\ 359 ^ (t44 << 44)\ 360 ^ (t48 << 48)\ 361 ^ (t52 << 52)\ 362 ^ (t56 << 56)\ 363 ^ (t60 << 60);\ 364 const _ntl_ulong hi = (t4 >> 60)\ 365 ^ (t8 >> 56)\ 366 ^ (t12 >> 52)\ 367 ^ (t16 >> 48)\ 368 ^ (t20 >> 44)\ 369 ^ (t24 >> 40)\ 370 ^ (t28 >> 36)\ 371 ^ (t32 >> 32)\ 372 ^ (t36 >> 28)\ 373 ^ (t40 >> 24)\ 374 ^ (t44 >> 20)\ 375 ^ (t48 >> 16)\ 376 ^ (t52 >> 12)\ 377 ^ (t56 >> 8)\ 378 ^ (t60 >> 4)\ 379 ^ (((b & 0xeeeeeeeeeeeeeeeeUL) >> 1) & (-(a >> 63)))\ 380 ^ (((b & 0xccccccccccccccccUL) >> 2) & (-((a >> 62) & 1UL)))\ 381 ^ (((b & 0x8888888888888888UL) >> 3) & (-((a >> 61) & 1UL)));\ 277 ^ (t28 << 28);\ 278 const _ntl_ulong hi = (t4 >> 28)\ 279 ^ (t8 >> 24)\ 280 ^ (t12 >> 20)\ 281 ^ (t16 >> 16)\ 282 ^ (t20 >> 12)\ 283 ^ (t24 >> 8)\ 284 ^ (t28 >> 4)\ 285 ^ (((b & 0xeeeeeeeeUL) >> 1) & (-(a >> 31)))\ 286 ^ (((b & 0xccccccccUL) >> 2) & (-((a >> 30) & 1UL)))\ 287 ^ (((b & 0x88888888UL) >> 3) & (-((a >> 29) & 1UL)));\ 382 288 cp[i] = carry ^ lo; carry = hi;\ 383 289 }\ … … 416 322 const _ntl_ulong t20 = A[(b >> 20) & 15]; \ 417 323 const _ntl_ulong t24 = A[(b >> 24) & 15]; \ 418 const _ntl_ulong t28 = A[(b >> 28) & 15]; \ 419 const _ntl_ulong t32 = A[(b >> 32) & 15]; \ 420 const _ntl_ulong t36 = A[(b >> 36) & 15]; \ 421 const _ntl_ulong t40 = A[(b >> 40) & 15]; \ 422 const _ntl_ulong t44 = A[(b >> 44) & 15]; \ 423 const _ntl_ulong t48 = A[(b >> 48) & 15]; \ 424 const _ntl_ulong t52 = A[(b >> 52) & 15]; \ 425 const _ntl_ulong t56 = A[(b >> 56) & 15]; \ 426 const _ntl_ulong t60 = A[b >> 60]; \ 324 const _ntl_ulong t28 = A[b >> 28]; \ 427 325 const _ntl_ulong lo = A[b & 15] \ 428 326 ^ (t4 << 4)\ … … 432 330 ^ (t20 << 20)\ 433 331 ^ (t24 << 24)\ 434 ^ (t28 << 28)\ 435 ^ (t32 << 32)\ 436 ^ (t36 << 36)\ 437 ^ (t40 << 40)\ 438 ^ (t44 << 44)\ 439 ^ (t48 << 48)\ 440 ^ (t52 << 52)\ 441 ^ (t56 << 56)\ 442 ^ (t60 << 60);\ 443 const _ntl_ulong hi = (t4 >> 60)\ 444 ^ (t8 >> 56)\ 445 ^ (t12 >> 52)\ 446 ^ (t16 >> 48)\ 447 ^ (t20 >> 44)\ 448 ^ (t24 >> 40)\ 449 ^ (t28 >> 36)\ 450 ^ (t32 >> 32)\ 451 ^ (t36 >> 28)\ 452 ^ (t40 >> 24)\ 453 ^ (t44 >> 20)\ 454 ^ (t48 >> 16)\ 455 ^ (t52 >> 12)\ 456 ^ (t56 >> 8)\ 457 ^ (t60 >> 4)\ 458 ^ (((b & 0xeeeeeeeeeeeeeeeeUL) >> 1) & (-(a >> 63)))\ 459 ^ (((b & 0xccccccccccccccccUL) >> 2) & (-((a >> 62) & 1UL)))\ 460 ^ (((b & 0x8888888888888888UL) >> 3) & (-((a >> 61) & 1UL)));\ 332 ^ (t28 << 28);\ 333 const _ntl_ulong hi = (t4 >> 28)\ 334 ^ (t8 >> 24)\ 335 ^ (t12 >> 20)\ 336 ^ (t16 >> 16)\ 337 ^ (t20 >> 12)\ 338 ^ (t24 >> 8)\ 339 ^ (t28 >> 4)\ 340 ^ (((b & 0xeeeeeeeeUL) >> 1) & (-(a >> 31)))\ 341 ^ (((b & 0xccccccccUL) >> 2) & (-((a >> 30) & 1UL)))\ 342 ^ (((b & 0x88888888UL) >> 3) & (-((a >> 29) & 1UL)));\ 461 343 cp[i] ^= (carry ^ lo); carry = hi;\ 462 344 }\ … … 495 377 const _ntl_ulong t20 = A[(b >> 20) & 15]; \ 496 378 const _ntl_ulong t24 = A[(b >> 24) & 15]; \ 497 const _ntl_ulong t28 = A[(b >> 28) & 15]; \ 498 const _ntl_ulong t32 = A[(b >> 32) & 15]; \ 499 const _ntl_ulong t36 = A[(b >> 36) & 15]; \ 500 const _ntl_ulong t40 = A[(b >> 40) & 15]; \ 501 const _ntl_ulong t44 = A[(b >> 44) & 15]; \ 502 const _ntl_ulong t48 = A[(b >> 48) & 15]; \ 503 const _ntl_ulong t52 = A[(b >> 52) & 15]; \ 504 const _ntl_ulong t56 = A[(b >> 56) & 15]; \ 505 const _ntl_ulong t60 = A[b >> 60]; \ 379 const _ntl_ulong t28 = A[b >> 28]; \ 506 380 const _ntl_ulong lo = A[b & 15] \ 507 381 ^ (t4 << 4)\ … … 511 385 ^ (t20 << 20)\ 512 386 ^ (t24 << 24)\ 513 ^ (t28 << 28)\ 514 ^ (t32 << 32)\ 515 ^ (t36 << 36)\ 516 ^ (t40 << 40)\ 517 ^ (t44 << 44)\ 518 ^ (t48 << 48)\ 519 ^ (t52 << 52)\ 520 ^ (t56 << 56)\ 521 ^ (t60 << 60);\ 522 const _ntl_ulong hi = (t4 >> 60)\ 523 ^ (t8 >> 56)\ 524 ^ (t12 >> 52)\ 525 ^ (t16 >> 48)\ 526 ^ (t20 >> 44)\ 527 ^ (t24 >> 40)\ 528 ^ (t28 >> 36)\ 529 ^ (t32 >> 32)\ 530 ^ (t36 >> 28)\ 531 ^ (t40 >> 24)\ 532 ^ (t44 >> 20)\ 533 ^ (t48 >> 16)\ 534 ^ (t52 >> 12)\ 535 ^ (t56 >> 8)\ 536 ^ (t60 >> 4);\ 387 ^ (t28 << 28);\ 388 const _ntl_ulong hi = (t4 >> 28)\ 389 ^ (t8 >> 24)\ 390 ^ (t12 >> 20)\ 391 ^ (t16 >> 16)\ 392 ^ (t20 >> 12)\ 393 ^ (t24 >> 8)\ 394 ^ (t28 >> 4);\ 537 395 cp[i] = carry ^ lo; carry = hi;\ 538 396 }\ … … 555 413 const _ntl_ulong t10 = A[(b >> 10) & 3]; \ 556 414 const _ntl_ulong t12 = A[(b >> 12) & 3]; \ 557 const _ntl_ulong t14 = A[(b >> 14) & 3]; \ 558 const _ntl_ulong t16 = A[(b >> 16) & 3]; \ 559 const _ntl_ulong t18 = A[(b >> 18) & 3]; \ 560 const _ntl_ulong t20 = A[(b >> 20) & 3]; \ 561 const _ntl_ulong t22 = A[(b >> 22) & 3]; \ 562 const _ntl_ulong t24 = A[(b >> 24) & 3]; \ 563 const _ntl_ulong t26 = A[(b >> 26) & 3]; \ 564 const _ntl_ulong t28 = A[(b >> 28) & 3]; \ 565 const _ntl_ulong t30 = A[b >> 30]; \ 415 const _ntl_ulong t14 = A[b >> 14]; \ 566 416 const _ntl_ulong lo = A[b & 3] \ 567 417 ^ (t2 << 2)\ … … 571 421 ^ (t10 << 10)\ 572 422 ^ (t12 << 12)\ 573 ^ (t14 << 14)\ 574 ^ (t16 << 16)\ 575 ^ (t18 << 18)\ 576 ^ (t20 << 20)\ 577 ^ (t22 << 22)\ 578 ^ (t24 << 24)\ 579 ^ (t26 << 26)\ 580 ^ (t28 << 28)\ 581 ^ (t30 << 30);\ 582 const _ntl_ulong hi = (t2 >> 62)\ 583 ^ (t4 >> 60)\ 584 ^ (t6 >> 58)\ 585 ^ (t8 >> 56)\ 586 ^ (t10 >> 54)\ 587 ^ (t12 >> 52)\ 588 ^ (t14 >> 50)\ 589 ^ (t16 >> 48)\ 590 ^ (t18 >> 46)\ 591 ^ (t20 >> 44)\ 592 ^ (t22 >> 42)\ 593 ^ (t24 >> 40)\ 594 ^ (t26 >> 38)\ 595 ^ (t28 >> 36)\ 596 ^ (t30 >> 34)\ 597 ^ (((b & 0xaaaaaaaaUL) >> 1) & (-(a >> 63)));\ 423 ^ (t14 << 14);\ 424 const _ntl_ulong hi = (t2 >> 30)\ 425 ^ (t4 >> 28)\ 426 ^ (t6 >> 26)\ 427 ^ (t8 >> 24)\ 428 ^ (t10 >> 22)\ 429 ^ (t12 >> 20)\ 430 ^ (t14 >> 18)\ 431 ^ (((b & 0xaaaaUL) >> 1) & (-(a >> 31)));\ 598 432 c[0] = lo; c[1] = hi;\ 599 433 … … 604 438 #define NTL_ALT1_BB_MUL_CODE0 \ 605 439 _ntl_ulong hi, lo, t;\ 606 _ntl_ulong A[16];\ 607 A[0] = 0;\ 608 A[1] = a;\ 609 A[2] = A[1] << 1;\ 610 A[3] = A[2] ^ A[1];\ 611 A[4] = A[2] << 1;\ 612 A[5] = A[4] ^ A[1];\ 613 A[6] = A[3] << 1;\ 614 A[7] = A[6] ^ A[1];\ 615 A[8] = A[4] << 1;\ 616 A[9] = A[8] ^ A[1];\ 617 A[10] = A[5] << 1;\ 618 A[11] = A[10] ^ A[1];\ 619 A[12] = A[6] << 1;\ 620 A[13] = A[12] ^ A[1];\ 621 A[14] = A[7] << 1;\ 622 A[15] = A[14] ^ A[1];\ 623 lo = A[b & 15]; t = A[(b >> 4) & 15]; hi = t >> 60; lo ^= t << 4;\ 624 t = A[(b >> 8) & 15]; hi ^= t >> 56; lo ^= t << 8;\ 625 t = A[(b >> 12) & 15]; hi ^= t >> 52; lo ^= t << 12;\ 626 t = A[(b >> 16) & 15]; hi ^= t >> 48; lo ^= t << 16;\ 627 t = A[(b >> 20) & 15]; hi ^= t >> 44; lo ^= t << 20;\ 628 t = A[(b >> 24) & 15]; hi ^= t >> 40; lo ^= t << 24;\ 629 t = A[(b >> 28) & 15]; hi ^= t >> 36; lo ^= t << 28;\ 630 t = A[(b >> 32) & 15]; hi ^= t >> 32; lo ^= t << 32;\ 631 t = A[(b >> 36) & 15]; hi ^= t >> 28; lo ^= t << 36;\ 632 t = A[(b >> 40) & 15]; hi ^= t >> 24; lo ^= t << 40;\ 633 t = A[(b >> 44) & 15]; hi ^= t >> 20; lo ^= t << 44;\ 634 t = A[(b >> 48) & 15]; hi ^= t >> 16; lo ^= t << 48;\ 635 t = A[(b >> 52) & 15]; hi ^= t >> 12; lo ^= t << 52;\ 636 t = A[(b >> 56) & 15]; hi ^= t >> 8; lo ^= t << 56;\ 637 t = A[b >> 60]; hi ^= t >> 4; lo ^= t << 60;\ 638 hi ^= (((b & 0xeeeeeeeeeeeeeeeeUL) >> 1) & (-(a >> 63)))\ 639 ^ (((b & 0xccccccccccccccccUL) >> 2) & (-((a >> 62) & 1UL)))\ 640 ^ (((b & 0x8888888888888888UL) >> 3) & (-((a >> 61) & 1UL)));\ 440 _ntl_ulong A[8];\ 441 A[0] = 0;\ 442 A[1] = a;\ 443 A[2] = A[1] << 1;\ 444 A[3] = A[2] ^ A[1];\ 445 A[4] = A[2] << 1;\ 446 A[5] = A[4] ^ A[1];\ 447 A[6] = A[3] << 1;\ 448 A[7] = A[6] ^ A[1];\ 449 lo = A[b & 7]; t = A[(b >> 3) & 7]; hi = t >> 29; lo ^= t << 3;\ 450 t = A[(b >> 6) & 7]; hi ^= t >> 26; lo ^= t << 6;\ 451 t = A[(b >> 9) & 7]; hi ^= t >> 23; lo ^= t << 9;\ 452 t = A[(b >> 12) & 7]; hi ^= t >> 20; lo ^= t << 12;\ 453 t = A[(b >> 15) & 7]; hi ^= t >> 17; lo ^= t << 15;\ 454 t = A[(b >> 18) & 7]; hi ^= t >> 14; lo ^= t << 18;\ 455 t = A[(b >> 21) & 7]; hi ^= t >> 11; lo ^= t << 21;\ 456 t = A[(b >> 24) & 7]; hi ^= t >> 8; lo ^= t << 24;\ 457 t = A[(b >> 27) & 7]; hi ^= t >> 5; lo ^= t << 27;\ 458 t = A[b >> 30]; hi ^= t >> 2; lo ^= t << 30;\ 459 hi ^= (((b & 0xb6db6db6UL) >> 1) & (-(a >> 31)))\ 460 ^ (((b & 0x24924924UL) >> 2) & (-((a >> 30) & 1UL)));\ 641 461 c[0] = lo; c[1] = hi;\ 642 462 … … 668 488 for (i = 0; i < sb; i++) {\ 669 489 b = bp[i];\ 670 lo = A[b & 15]; t = A[(b >> 4) & 15]; hi = t >> 60; lo ^= t << 4;\ 671 t = A[(b >> 8) & 15]; hi ^= t >> 56; lo ^= t << 8;\ 672 t = A[(b >> 12) & 15]; hi ^= t >> 52; lo ^= t << 12;\ 673 t = A[(b >> 16) & 15]; hi ^= t >> 48; lo ^= t << 16;\ 674 t = A[(b >> 20) & 15]; hi ^= t >> 44; lo ^= t << 20;\ 675 t = A[(b >> 24) & 15]; hi ^= t >> 40; lo ^= t << 24;\ 676 t = A[(b >> 28) & 15]; hi ^= t >> 36; lo ^= t << 28;\ 677 t = A[(b >> 32) & 15]; hi ^= t >> 32; lo ^= t << 32;\ 678 t = A[(b >> 36) & 15]; hi ^= t >> 28; lo ^= t << 36;\ 679 t = A[(b >> 40) & 15]; hi ^= t >> 24; lo ^= t << 40;\ 680 t = A[(b >> 44) & 15]; hi ^= t >> 20; lo ^= t << 44;\ 681 t = A[(b >> 48) & 15]; hi ^= t >> 16; lo ^= t << 48;\ 682 t = A[(b >> 52) & 15]; hi ^= t >> 12; lo ^= t << 52;\ 683 t = A[(b >> 56) & 15]; hi ^= t >> 8; lo ^= t << 56;\ 684 t = A[b >> 60]; hi ^= t >> 4; lo ^= t << 60;\ 685 hi ^= (((b & 0xeeeeeeeeeeeeeeeeUL) >> 1) & (-(a >> 63)))\ 686 ^ (((b & 0xccccccccccccccccUL) >> 2) & (-((a >> 62) & 1UL)))\ 687 ^ (((b & 0x8888888888888888UL) >> 3) & (-((a >> 61) & 1UL)));\ 490 lo = A[b & 15]; t = A[(b >> 4) & 15]; hi = t >> 28; lo ^= t << 4;\ 491 t = A[(b >> 8) & 15]; hi ^= t >> 24; lo ^= t << 8;\ 492 t = A[(b >> 12) & 15]; hi ^= t >> 20; lo ^= t << 12;\ 493 t = A[(b >> 16) & 15]; hi ^= t >> 16; lo ^= t << 16;\ 494 t = A[(b >> 20) & 15]; hi ^= t >> 12; lo ^= t << 20;\ 495 t = A[(b >> 24) & 15]; hi ^= t >> 8; lo ^= t << 24;\ 496 t = A[b >> 28]; hi ^= t >> 4; lo ^= t << 28;\ 497 hi ^= (((b & 0xeeeeeeeeUL) >> 1) & (-(a >> 31)))\ 498 ^ (((b & 0xccccccccUL) >> 2) & (-((a >> 30) & 1UL)))\ 499 ^ (((b & 0x88888888UL) >> 3) & (-((a >> 29) & 1UL)));\ 688 500 cp[i] = carry ^ lo; carry = hi;\ 689 501 }\ … … 717 529 for (i = 0; i < sb; i++) {\ 718 530 b = bp[i];\ 719 lo = A[b & 15]; t = A[(b >> 4) & 15]; hi = t >> 60; lo ^= t << 4;\ 720 t = A[(b >> 8) & 15]; hi ^= t >> 56; lo ^= t << 8;\ 721 t = A[(b >> 12) & 15]; hi ^= t >> 52; lo ^= t << 12;\ 722 t = A[(b >> 16) & 15]; hi ^= t >> 48; lo ^= t << 16;\ 723 t = A[(b >> 20) & 15]; hi ^= t >> 44; lo ^= t << 20;\ 724 t = A[(b >> 24) & 15]; hi ^= t >> 40; lo ^= t << 24;\ 725 t = A[(b >> 28) & 15]; hi ^= t >> 36; lo ^= t << 28;\ 726 t = A[(b >> 32) & 15]; hi ^= t >> 32; lo ^= t << 32;\ 727 t = A[(b >> 36) & 15]; hi ^= t >> 28; lo ^= t << 36;\ 728 t = A[(b >> 40) & 15]; hi ^= t >> 24; lo ^= t << 40;\ 729 t = A[(b >> 44) & 15]; hi ^= t >> 20; lo ^= t << 44;\ 730 t = A[(b >> 48) & 15]; hi ^= t >> 16; lo ^= t << 48;\ 731 t = A[(b >> 52) & 15]; hi ^= t >> 12; lo ^= t << 52;\ 732 t = A[(b >> 56) & 15]; hi ^= t >> 8; lo ^= t << 56;\ 733 t = A[b >> 60]; hi ^= t >> 4; lo ^= t << 60;\ 734 hi ^= (((b & 0xeeeeeeeeeeeeeeeeUL) >> 1) & (-(a >> 63)))\ 735 ^ (((b & 0xccccccccccccccccUL) >> 2) & (-((a >> 62) & 1UL)))\ 736 ^ (((b & 0x8888888888888888UL) >> 3) & (-((a >> 61) & 1UL)));\ 531 lo = A[b & 15]; t = A[(b >> 4) & 15]; hi = t >> 28; lo ^= t << 4;\ 532 t = A[(b >> 8) & 15]; hi ^= t >> 24; lo ^= t << 8;\ 533 t = A[(b >> 12) & 15]; hi ^= t >> 20; lo ^= t << 12;\ 534 t = A[(b >> 16) & 15]; hi ^= t >> 16; lo ^= t << 16;\ 535 t = A[(b >> 20) & 15]; hi ^= t >> 12; lo ^= t << 20;\ 536 t = A[(b >> 24) & 15]; hi ^= t >> 8; lo ^= t << 24;\ 537 t = A[b >> 28]; hi ^= t >> 4; lo ^= t << 28;\ 538 hi ^= (((b & 0xeeeeeeeeUL) >> 1) & (-(a >> 31)))\ 539 ^ (((b & 0xccccccccUL) >> 2) & (-((a >> 30) & 1UL)))\ 540 ^ (((b & 0x88888888UL) >> 3) & (-((a >> 29) & 1UL)));\ 737 541 cp[i] ^= (carry ^ lo); carry = hi;\ 738 542 }\ … … 766 570 for (i = 0; i < sb; i++) {\ 767 571 b = bp[i];\ 768 lo = A[b & 15]; t = A[(b >> 4) & 15]; hi = t >> 60; lo ^= t << 4;\ 769 t = A[(b >> 8) & 15]; hi ^= t >> 56; lo ^= t << 8;\ 770 t = A[(b >> 12) & 15]; hi ^= t >> 52; lo ^= t << 12;\ 771 t = A[(b >> 16) & 15]; hi ^= t >> 48; lo ^= t << 16;\ 772 t = A[(b >> 20) & 15]; hi ^= t >> 44; lo ^= t << 20;\ 773 t = A[(b >> 24) & 15]; hi ^= t >> 40; lo ^= t << 24;\ 774 t = A[(b >> 28) & 15]; hi ^= t >> 36; lo ^= t << 28;\ 775 t = A[(b >> 32) & 15]; hi ^= t >> 32; lo ^= t << 32;\ 776 t = A[(b >> 36) & 15]; hi ^= t >> 28; lo ^= t << 36;\ 777 t = A[(b >> 40) & 15]; hi ^= t >> 24; lo ^= t << 40;\ 778 t = A[(b >> 44) & 15]; hi ^= t >> 20; lo ^= t << 44;\ 779 t = A[(b >> 48) & 15]; hi ^= t >> 16; lo ^= t << 48;\ 780 t = A[(b >> 52) & 15]; hi ^= t >> 12; lo ^= t << 52;\ 781 t = A[(b >> 56) & 15]; hi ^= t >> 8; lo ^= t << 56;\ 782 t = A[b >> 60]; hi ^= t >> 4; lo ^= t << 60;\ 572 lo = A[b & 15]; t = A[(b >> 4) & 15]; hi = t >> 28; lo ^= t << 4;\ 573 t = A[(b >> 8) & 15]; hi ^= t >> 24; lo ^= t << 8;\ 574 t = A[(b >> 12) & 15]; hi ^= t >> 20; lo ^= t << 12;\ 575 t = A[(b >> 16) & 15]; hi ^= t >> 16; lo ^= t << 16;\ 576 t = A[(b >> 20) & 15]; hi ^= t >> 12; lo ^= t << 20;\ 577 t = A[(b >> 24) & 15]; hi ^= t >> 8; lo ^= t << 24;\ 578 t = A[b >> 28]; hi ^= t >> 4; lo ^= t << 28;\ 783 579 cp[i] = carry ^ lo; carry = hi;\ 784 580 }\ … … 796 592 A[2] = A[1] << 1;\ 797 593 A[3] = A[2] ^ A[1];\ 798 lo = A[b & 3]; t = A[(b >> 2) & 3]; hi = t >> 62; lo ^= t << 2;\ 799 t = A[(b >> 4) & 3]; hi ^= t >> 60; lo ^= t << 4;\ 800 t = A[(b >> 6) & 3]; hi ^= t >> 58; lo ^= t << 6;\ 801 t = A[(b >> 8) & 3]; hi ^= t >> 56; lo ^= t << 8;\ 802 t = A[(b >> 10) & 3]; hi ^= t >> 54; lo ^= t << 10;\ 803 t = A[(b >> 12) & 3]; hi ^= t >> 52; lo ^= t << 12;\ 804 t = A[(b >> 14) & 3]; hi ^= t >> 50; lo ^= t << 14;\ 805 t = A[(b >> 16) & 3]; hi ^= t >> 48; lo ^= t << 16;\ 806 t = A[(b >> 18) & 3]; hi ^= t >> 46; lo ^= t << 18;\ 807 t = A[(b >> 20) & 3]; hi ^= t >> 44; lo ^= t << 20;\ 808 t = A[(b >> 22) & 3]; hi ^= t >> 42; lo ^= t << 22;\ 809 t = A[(b >> 24) & 3]; hi ^= t >> 40; lo ^= t << 24;\ 810 t = A[(b >> 26) & 3]; hi ^= t >> 38; lo ^= t << 26;\ 811 t = A[(b >> 28) & 3]; hi ^= t >> 36; lo ^= t << 28;\ 812 t = A[b >> 30]; hi ^= t >> 34; lo ^= t << 30;\ 813 hi ^= (((b & 0xaaaaaaaaUL) >> 1) & (-(a >> 63)));\ 594 lo = A[b & 3]; t = A[(b >> 2) & 3]; hi = t >> 30; lo ^= t << 2;\ 595 t = A[(b >> 4) & 3]; hi ^= t >> 28; lo ^= t << 4;\ 596 t = A[(b >> 6) & 3]; hi ^= t >> 26; lo ^= t << 6;\ 597 t = A[(b >> 8) & 3]; hi ^= t >> 24; lo ^= t << 8;\ 598 t = A[(b >> 10) & 3]; hi ^= t >> 22; lo ^= t << 10;\ 599 t = A[(b >> 12) & 3]; hi ^= t >> 20; lo ^= t << 12;\ 600 t = A[b >> 14]; hi ^= t >> 18; lo ^= t << 14;\ 601 hi ^= (((b & 0xaaaaUL) >> 1) & (-(a >> 31)));\ 814 602 c[0] = lo; c[1] = hi;\ 815 603 … … 823 611 lo=sqrtab[a&255];\ 824 612 lo=lo|(sqrtab[(a>>8)&255]<<16);\ 825 lo=lo|(sqrtab[(a>>16)&255]<<32);\ 826 lo=lo|(sqrtab[(a>>24)&255]<<48);\ 827 hi=sqrtab[(a>>32)&255];\ 828 hi=hi|(sqrtab[(a>>40)&255]<<16);\ 829 hi=hi|(sqrtab[(a>>48)&255]<<32);\ 830 hi=hi|(sqrtab[(a>>56)&255]<<48);\ 831 832 833 834 835 #define NTL_BB_REV_CODE (revtab[(a>>0)&255]<<56)\ 836 |(revtab[(a>>8)&255]<<48)\ 837 |(revtab[(a>>16)&255]<<40)\ 838 |(revtab[(a>>24)&255]<<32)\ 839 |(revtab[(a>>32)&255]<<24)\ 840 |(revtab[(a>>40)&255]<<16)\ 841 |(revtab[(a>>48)&255]<<8)\ 842 |(revtab[(a>>56)&255]<<0) 613 hi=sqrtab[(a>>16)&255];\ 614 hi=hi|(sqrtab[(a>>24)&255]<<16);\ 615 616 617 618 619 #define NTL_BB_REV_CODE (revtab[(a>>0)&255]<<24)\ 620 |(revtab[(a>>8)&255]<<16)\ 621 |(revtab[(a>>16)&255]<<8)\ 622 |(revtab[(a>>24)&255]<<0) 843 623 844 624 #define NTL_MIN_LONG (-NTL_MAX_LONG - 1L)
Note: See TracChangeset
for help on using the changeset viewer.