(eb, start)
| 26 | var clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]); |
| 27 | // get base, reverse index map from extra bits |
| 28 | var freb = function (eb, start) { |
| 29 | var b = new u16(31); |
| 30 | for (var i = 0; i < 31; ++i) { |
| 31 | b[i] = start += 1 << eb[i - 1]; |
| 32 | } |
| 33 | // numbers here are at max 18 bits |
| 34 | var r = new i32(b[30]); |
| 35 | for (var i = 1; i < 30; ++i) { |
| 36 | for (var j = b[i]; j < b[i + 1]; ++j) { |
| 37 | r[j] = ((j - b[i]) << 5) | i; |
| 38 | } |
| 39 | } |
| 40 | return { b: b, r: r }; |
| 41 | }; |
| 42 | var _a = freb(fleb, 2), |
| 43 | fl = _a.b, |
| 44 | revfl = _a.r; |