Changeset 5eeb4f in git
- Timestamp:
- Apr 18, 2018, 6:42:01 PM (5 years ago)
- Branches:
- (u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
- Children:
- 65c1bd5b526a9447123bf85f32538aff3498501c
- Parents:
- 83789eef751cc6cbd6f5106c113ccb43c6af36b0
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
factory/ffops.h
r83789ee r5eeb4f 53 53 long n = a % ff_prime; 54 54 #if defined(i386) || defined(__x86_64__) || defined(NTL_AVOID_BRANCHING) 55 #if SIZEOF_LONG==8 56 n += (n >> 63) & ff_prime; 57 #else 55 58 n += (n >> 31) & ff_prime; 59 #endif 56 60 return n; 57 61 #else -
libpolys/coeffs/modulop.cc
r83789ee r5eeb4f 170 170 static inline long InvMod(long a, const coeffs R) 171 171 { 172 long d,s, t;172 long s, t; 173 173 174 174 #ifdef USE_NTL_XGCD 175 long d; 175 176 XGCD(d, s, t, a, R->ch); 176 177 assume (d == 1); … … 185 186 { 186 187 q = u / v; 187 r = u % v; 188 //r = u % v; 189 r = u - q*v; 188 190 u = v; 189 191 v = r; … … 196 198 s = u1; 197 199 #endif 200 #ifdef HAVE_GENERIC_ADD 198 201 if (s < 0) 199 202 return s + R->ch; 200 203 else 201 204 return s; 205 #else 206 #if SIZEOF_LONG == 8 207 s += (s >> 63) & R->ch; 208 #else 209 s += (s >> 31) & R->ch; 210 #endif 211 #endif 202 212 } 203 213 #endif … … 206 216 { 207 217 n_Test(c, r); 208 #if ndef HAVE_DIV_MOD218 #if !defined(HAVE_MULT_MOD) && (!defined(HAVE_DIV_MOD)) 209 219 number d = (number)(long)r->npExpTable[r->npPminus1M - r->npLogTable[(long)c]]; 210 220 #else … … 212 222 if (inv==0) 213 223 { 224 #ifndef HAVE_MULT_MOD 225 inv = (long)r->npExpTable[r->npPminus1M - r->npLogTable[(long)c]]; 226 #else 214 227 inv=InvMod((long)c,r); 228 #endif 215 229 r->npInvTable[(long)c]=inv; 216 230 } … … 219 233 n_Test(d, r); 220 234 return d; 221 222 235 } 223 236 … … 227 240 n_Test(b, r); 228 241 229 //#ifdef NV_OPS230 // if (r->ch>NV_MAX_PRIME)231 // return nvDiv(a,b);232 //#endif233 if ((long)a==0L)234 return (number)0L;235 number d;236 237 #ifndef HAVE_DIV_MOD238 242 if ((long)b==0L) 239 243 { … … 241 245 return (number)0L; 242 246 } 243 247 if ((long)a==0) return (number)0L; 248 249 number d; 250 #ifndef HAVE_DIV_MOD 244 251 int s = r->npLogTable[(long)a] - r->npLogTable[(long)b]; 245 252 if (s < 0)
Note: See TracChangeset
for help on using the changeset viewer.