UNPKG

673 BJavaScriptView Raw
1var QRMath = {
2
3 glog : function(n) {
4
5 if (n < 1) {
6 throw new Error("glog(" + n + ")");
7 }
8
9 return QRMath.LOG_TABLE[n];
10 },
11
12 gexp : function(n) {
13
14 while (n < 0) {
15 n += 255;
16 }
17
18 while (n >= 256) {
19 n -= 255;
20 }
21
22 return QRMath.EXP_TABLE[n];
23 },
24
25 EXP_TABLE : new Array(256),
26
27 LOG_TABLE : new Array(256)
28
29};
30
31for (var i = 0; i < 8; i++) {
32 QRMath.EXP_TABLE[i] = 1 << i;
33}
34for (var i = 8; i < 256; i++) {
35 QRMath.EXP_TABLE[i] = QRMath.EXP_TABLE[i - 4]
36 ^ QRMath.EXP_TABLE[i - 5]
37 ^ QRMath.EXP_TABLE[i - 6]
38 ^ QRMath.EXP_TABLE[i - 8];
39}
40for (var i = 0; i < 255; i++) {
41 QRMath.LOG_TABLE[QRMath.EXP_TABLE[i] ] = i;
42}
43
44module.exports = QRMath;