qrcoder
Version:
QRCoder is *a pure browser qrcode generation* which is standalone. It is based on a <a href='http://www.d-project.com/qrcode/index.html'>library</a> which build qrcode in various language.
35 lines (30 loc) • 627 B
JavaScript
const EXP_TABLE = new Array(256)
const LOG_TABLE = new Array(256)
// initialize tables
for (let i = 0; i < 8; i += 1) {
EXP_TABLE[i] = 1 << i
}
for (let i = 8; i < 256; i += 1) {
EXP_TABLE[i] = EXP_TABLE[i - 4] ^ EXP_TABLE[i - 5] ^
EXP_TABLE[i - 6] ^ EXP_TABLE[i - 8]
}
for (let i = 0; i < 255; i += 1) {
LOG_TABLE[EXP_TABLE[i]] = i
}
export const QRMath = {
glog: function (n) {
if (n < 1) {
throw new Error('glog(' + n + ')')
}
return LOG_TABLE[n]
},
gexp: function (n) {
while (n < 0) {
n += 255
}
while (n >= 256) {
n -= 255
}
return EXP_TABLE[n]
}
}