Same change as Revision r1395 for C++ port: Small speedup, per issue 422

git-svn-id: https://zxing.googlecode.com/svn/trunk@1404 59b500cc-1b3d-0410-9834-0bbf25fbcc57
This commit is contained in:
luizcroc 2010-05-31 20:58:49 +00:00
parent 492492b591
commit a4e93f905e

View file

@ -109,13 +109,10 @@ int GF256::multiply(int a, int b) {
if (a == 0 || b == 0) {
return 0;
}
if (a == 1) {
return b;
}
if (b == 1) {
return a;
}
return exp_[(log_[a] + log_[b]) % 255];
int logSum = log_[a] + log_[b];
// index is a sped-up alternative to logSum % 255 since sum
// is in [0,510]. Thanks to jmsachs for the idea
return exp_[(logSum & 0xFF) + (logSum >> 8)];
}
GF256 GF256::QR_CODE_FIELD(0x011D); // x^8 + x^4 + x^3 + x^2 + 1