use much faster __builtin_clz

This commit is contained in:
Ahmet Inan 2023-04-21 12:00:40 +02:00
commit 41fa2c7f40

View file

@ -398,10 +398,14 @@ GaloisFieldReference<M, POLY, TYPE> rcp(GaloisFieldReference<M, POLY, TYPE> a)
TYPE newr = a.P, r = a.v; TYPE newr = a.P, r = a.v;
TYPE newt = 0, t = 1; TYPE newt = 0, t = 1;
auto degree = [](TYPE a) { auto degree = [](TYPE a) {
#if 1
return 31 - __builtin_clz(a);
#else
int d = 0; int d = 0;
while (a >>= 1) while (a >>= 1)
++d; ++d;
return d; return d;
#endif
}; };
int k = degree(r); int k = degree(r);
int j = M - k; int j = M - k;