1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- var BufferUtil = require('../utils/buffer')
- var EXP_TABLE = BufferUtil.alloc(512)
- var LOG_TABLE = BufferUtil.alloc(256)
- ;(function initTables () {
- var x = 1
- for (var i = 0; i < 255; i++) {
- EXP_TABLE[i] = x
- LOG_TABLE[x] = i
- x <<= 1
-
-
- if (x & 0x100) {
- x ^= 0x11D
- }
- }
-
-
-
-
- for (i = 255; i < 512; i++) {
- EXP_TABLE[i] = EXP_TABLE[i - 255]
- }
- }())
- exports.log = function log (n) {
- if (n < 1) throw new Error('log(' + n + ')')
- return LOG_TABLE[n]
- }
- exports.exp = function exp (n) {
- return EXP_TABLE[n]
- }
- exports.mul = function mul (x, y) {
- if (x === 0 || y === 0) return 0
-
-
- return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]]
- }
|