From 9463112e4e6c93bad43b696a33aa7d68cf2ec719 Mon Sep 17 00:00:00 2001 From: srowen Date: Fri, 28 May 2010 15:39:11 +0000 Subject: [PATCH] Small speedup, per issue 422 git-svn-id: http://zxing.googlecode.com/svn/trunk@1395 59b500cc-1b3d-0410-9834-0bbf25fbcc57 --- .../com/google/zxing/common/reedsolomon/GF256.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/core/src/com/google/zxing/common/reedsolomon/GF256.java b/core/src/com/google/zxing/common/reedsolomon/GF256.java index ea1f3ec6..9c582752 100644 --- a/core/src/com/google/zxing/common/reedsolomon/GF256.java +++ b/core/src/com/google/zxing/common/reedsolomon/GF256.java @@ -130,13 +130,10 @@ public final class GF256 { if (a == 0 || b == 0) { return 0; } - if (a == 1) { - return b; - } - if (b == 1) { - return a; - } - return expTable[(logTable[a] + logTable[b]) % 255]; + int logSum = logTable[a] + logTable[b]; + // index is a sped-up alternative to logSum % 255 since sum + // is in [0,510]. Thanks to jmsachs for the idea + return expTable[(logSum & 0xFF) + (logSum >>> 8)]; } } -- 2.20.1