mirror of
https://github.com/Instadapp/Swap-Aggregator-Subgraph.git
synced 2024-07-29 21:57:12 +00:00
573 lines
15 KiB
JavaScript
573 lines
15 KiB
JavaScript
'use strict'
|
|
exports.umulTo10x10 = function (num1, num2, out) {
|
|
var a = num1.words
|
|
var b = num2.words
|
|
var o = out.words
|
|
var c = 0
|
|
var lo
|
|
var mid
|
|
var hi
|
|
var a0 = a[0] | 0
|
|
var al0 = a0 & 0x1fff
|
|
var ah0 = a0 >>> 13
|
|
var a1 = a[1] | 0
|
|
var al1 = a1 & 0x1fff
|
|
var ah1 = a1 >>> 13
|
|
var a2 = a[2] | 0
|
|
var al2 = a2 & 0x1fff
|
|
var ah2 = a2 >>> 13
|
|
var a3 = a[3] | 0
|
|
var al3 = a3 & 0x1fff
|
|
var ah3 = a3 >>> 13
|
|
var a4 = a[4] | 0
|
|
var al4 = a4 & 0x1fff
|
|
var ah4 = a4 >>> 13
|
|
var a5 = a[5] | 0
|
|
var al5 = a5 & 0x1fff
|
|
var ah5 = a5 >>> 13
|
|
var a6 = a[6] | 0
|
|
var al6 = a6 & 0x1fff
|
|
var ah6 = a6 >>> 13
|
|
var a7 = a[7] | 0
|
|
var al7 = a7 & 0x1fff
|
|
var ah7 = a7 >>> 13
|
|
var a8 = a[8] | 0
|
|
var al8 = a8 & 0x1fff
|
|
var ah8 = a8 >>> 13
|
|
var a9 = a[9] | 0
|
|
var al9 = a9 & 0x1fff
|
|
var ah9 = a9 >>> 13
|
|
var b0 = b[0] | 0
|
|
var bl0 = b0 & 0x1fff
|
|
var bh0 = b0 >>> 13
|
|
var b1 = b[1] | 0
|
|
var bl1 = b1 & 0x1fff
|
|
var bh1 = b1 >>> 13
|
|
var b2 = b[2] | 0
|
|
var bl2 = b2 & 0x1fff
|
|
var bh2 = b2 >>> 13
|
|
var b3 = b[3] | 0
|
|
var bl3 = b3 & 0x1fff
|
|
var bh3 = b3 >>> 13
|
|
var b4 = b[4] | 0
|
|
var bl4 = b4 & 0x1fff
|
|
var bh4 = b4 >>> 13
|
|
var b5 = b[5] | 0
|
|
var bl5 = b5 & 0x1fff
|
|
var bh5 = b5 >>> 13
|
|
var b6 = b[6] | 0
|
|
var bl6 = b6 & 0x1fff
|
|
var bh6 = b6 >>> 13
|
|
var b7 = b[7] | 0
|
|
var bl7 = b7 & 0x1fff
|
|
var bh7 = b7 >>> 13
|
|
var b8 = b[8] | 0
|
|
var bl8 = b8 & 0x1fff
|
|
var bh8 = b8 >>> 13
|
|
var b9 = b[9] | 0
|
|
var bl9 = b9 & 0x1fff
|
|
var bh9 = b9 >>> 13
|
|
|
|
out.length = 19
|
|
/* k = 0 */
|
|
lo = Math.imul(al0, bl0)
|
|
mid = Math.imul(al0, bh0)
|
|
mid += Math.imul(ah0, bl0)
|
|
hi = Math.imul(ah0, bh0)
|
|
var w0 = c + lo + ((mid & 0x1fff) << 13)
|
|
c = hi + (mid >>> 13) + (w0 >>> 26)
|
|
w0 &= 0x3ffffff
|
|
/* k = 1 */
|
|
lo = Math.imul(al1, bl0)
|
|
mid = Math.imul(al1, bh0)
|
|
mid += Math.imul(ah1, bl0)
|
|
hi = Math.imul(ah1, bh0)
|
|
lo += Math.imul(al0, bl1)
|
|
mid += Math.imul(al0, bh1)
|
|
mid += Math.imul(ah0, bl1)
|
|
hi += Math.imul(ah0, bh1)
|
|
var w1 = c + lo + ((mid & 0x1fff) << 13)
|
|
c = hi + (mid >>> 13) + (w1 >>> 26)
|
|
w1 &= 0x3ffffff
|
|
/* k = 2 */
|
|
lo = Math.imul(al2, bl0)
|
|
mid = Math.imul(al2, bh0)
|
|
mid += Math.imul(ah2, bl0)
|
|
hi = Math.imul(ah2, bh0)
|
|
lo += Math.imul(al1, bl1)
|
|
mid += Math.imul(al1, bh1)
|
|
mid += Math.imul(ah1, bl1)
|
|
hi += Math.imul(ah1, bh1)
|
|
lo += Math.imul(al0, bl2)
|
|
mid += Math.imul(al0, bh2)
|
|
mid += Math.imul(ah0, bl2)
|
|
hi += Math.imul(ah0, bh2)
|
|
var w2 = c + lo + ((mid & 0x1fff) << 13)
|
|
c = hi + (mid >>> 13) + (w2 >>> 26)
|
|
w2 &= 0x3ffffff
|
|
/* k = 3 */
|
|
lo = Math.imul(al3, bl0)
|
|
mid = Math.imul(al3, bh0)
|
|
mid += Math.imul(ah3, bl0)
|
|
hi = Math.imul(ah3, bh0)
|
|
lo += Math.imul(al2, bl1)
|
|
mid += Math.imul(al2, bh1)
|
|
mid += Math.imul(ah2, bl1)
|
|
hi += Math.imul(ah2, bh1)
|
|
lo += Math.imul(al1, bl2)
|
|
mid += Math.imul(al1, bh2)
|
|
mid += Math.imul(ah1, bl2)
|
|
hi += Math.imul(ah1, bh2)
|
|
lo += Math.imul(al0, bl3)
|
|
mid += Math.imul(al0, bh3)
|
|
mid += Math.imul(ah0, bl3)
|
|
hi += Math.imul(ah0, bh3)
|
|
var w3 = c + lo + ((mid & 0x1fff) << 13)
|
|
c = hi + (mid >>> 13) + (w3 >>> 26)
|
|
w3 &= 0x3ffffff
|
|
/* k = 4 */
|
|
lo = Math.imul(al4, bl0)
|
|
mid = Math.imul(al4, bh0)
|
|
mid += Math.imul(ah4, bl0)
|
|
hi = Math.imul(ah4, bh0)
|
|
lo += Math.imul(al3, bl1)
|
|
mid += Math.imul(al3, bh1)
|
|
mid += Math.imul(ah3, bl1)
|
|
hi += Math.imul(ah3, bh1)
|
|
lo += Math.imul(al2, bl2)
|
|
mid += Math.imul(al2, bh2)
|
|
mid += Math.imul(ah2, bl2)
|
|
hi += Math.imul(ah2, bh2)
|
|
lo += Math.imul(al1, bl3)
|
|
mid += Math.imul(al1, bh3)
|
|
mid += Math.imul(ah1, bl3)
|
|
hi += Math.imul(ah1, bh3)
|
|
lo += Math.imul(al0, bl4)
|
|
mid += Math.imul(al0, bh4)
|
|
mid += Math.imul(ah0, bl4)
|
|
hi += Math.imul(ah0, bh4)
|
|
var w4 = c + lo + ((mid & 0x1fff) << 13)
|
|
c = hi + (mid >>> 13) + (w4 >>> 26)
|
|
w4 &= 0x3ffffff
|
|
/* k = 5 */
|
|
lo = Math.imul(al5, bl0)
|
|
mid = Math.imul(al5, bh0)
|
|
mid += Math.imul(ah5, bl0)
|
|
hi = Math.imul(ah5, bh0)
|
|
lo += Math.imul(al4, bl1)
|
|
mid += Math.imul(al4, bh1)
|
|
mid += Math.imul(ah4, bl1)
|
|
hi += Math.imul(ah4, bh1)
|
|
lo += Math.imul(al3, bl2)
|
|
mid += Math.imul(al3, bh2)
|
|
mid += Math.imul(ah3, bl2)
|
|
hi += Math.imul(ah3, bh2)
|
|
lo += Math.imul(al2, bl3)
|
|
mid += Math.imul(al2, bh3)
|
|
mid += Math.imul(ah2, bl3)
|
|
hi += Math.imul(ah2, bh3)
|
|
lo += Math.imul(al1, bl4)
|
|
mid += Math.imul(al1, bh4)
|
|
mid += Math.imul(ah1, bl4)
|
|
hi += Math.imul(ah1, bh4)
|
|
lo += Math.imul(al0, bl5)
|
|
mid += Math.imul(al0, bh5)
|
|
mid += Math.imul(ah0, bl5)
|
|
hi += Math.imul(ah0, bh5)
|
|
var w5 = c + lo + ((mid & 0x1fff) << 13)
|
|
c = hi + (mid >>> 13) + (w5 >>> 26)
|
|
w5 &= 0x3ffffff
|
|
/* k = 6 */
|
|
lo = Math.imul(al6, bl0)
|
|
mid = Math.imul(al6, bh0)
|
|
mid += Math.imul(ah6, bl0)
|
|
hi = Math.imul(ah6, bh0)
|
|
lo += Math.imul(al5, bl1)
|
|
mid += Math.imul(al5, bh1)
|
|
mid += Math.imul(ah5, bl1)
|
|
hi += Math.imul(ah5, bh1)
|
|
lo += Math.imul(al4, bl2)
|
|
mid += Math.imul(al4, bh2)
|
|
mid += Math.imul(ah4, bl2)
|
|
hi += Math.imul(ah4, bh2)
|
|
lo += Math.imul(al3, bl3)
|
|
mid += Math.imul(al3, bh3)
|
|
mid += Math.imul(ah3, bl3)
|
|
hi += Math.imul(ah3, bh3)
|
|
lo += Math.imul(al2, bl4)
|
|
mid += Math.imul(al2, bh4)
|
|
mid += Math.imul(ah2, bl4)
|
|
hi += Math.imul(ah2, bh4)
|
|
lo += Math.imul(al1, bl5)
|
|
mid += Math.imul(al1, bh5)
|
|
mid += Math.imul(ah1, bl5)
|
|
hi += Math.imul(ah1, bh5)
|
|
lo += Math.imul(al0, bl6)
|
|
mid += Math.imul(al0, bh6)
|
|
mid += Math.imul(ah0, bl6)
|
|
hi += Math.imul(ah0, bh6)
|
|
var w6 = c + lo + ((mid & 0x1fff) << 13)
|
|
c = hi + (mid >>> 13) + (w6 >>> 26)
|
|
w6 &= 0x3ffffff
|
|
/* k = 7 */
|
|
lo = Math.imul(al7, bl0)
|
|
mid = Math.imul(al7, bh0)
|
|
mid += Math.imul(ah7, bl0)
|
|
hi = Math.imul(ah7, bh0)
|
|
lo += Math.imul(al6, bl1)
|
|
mid += Math.imul(al6, bh1)
|
|
mid += Math.imul(ah6, bl1)
|
|
hi += Math.imul(ah6, bh1)
|
|
lo += Math.imul(al5, bl2)
|
|
mid += Math.imul(al5, bh2)
|
|
mid += Math.imul(ah5, bl2)
|
|
hi += Math.imul(ah5, bh2)
|
|
lo += Math.imul(al4, bl3)
|
|
mid += Math.imul(al4, bh3)
|
|
mid += Math.imul(ah4, bl3)
|
|
hi += Math.imul(ah4, bh3)
|
|
lo += Math.imul(al3, bl4)
|
|
mid += Math.imul(al3, bh4)
|
|
mid += Math.imul(ah3, bl4)
|
|
hi += Math.imul(ah3, bh4)
|
|
lo += Math.imul(al2, bl5)
|
|
mid += Math.imul(al2, bh5)
|
|
mid += Math.imul(ah2, bl5)
|
|
hi += Math.imul(ah2, bh5)
|
|
lo += Math.imul(al1, bl6)
|
|
mid += Math.imul(al1, bh6)
|
|
mid += Math.imul(ah1, bl6)
|
|
hi += Math.imul(ah1, bh6)
|
|
lo += Math.imul(al0, bl7)
|
|
mid += Math.imul(al0, bh7)
|
|
mid += Math.imul(ah0, bl7)
|
|
hi += Math.imul(ah0, bh7)
|
|
var w7 = c + lo + ((mid & 0x1fff) << 13)
|
|
c = hi + (mid >>> 13) + (w7 >>> 26)
|
|
w7 &= 0x3ffffff
|
|
/* k = 8 */
|
|
lo = Math.imul(al8, bl0)
|
|
mid = Math.imul(al8, bh0)
|
|
mid += Math.imul(ah8, bl0)
|
|
hi = Math.imul(ah8, bh0)
|
|
lo += Math.imul(al7, bl1)
|
|
mid += Math.imul(al7, bh1)
|
|
mid += Math.imul(ah7, bl1)
|
|
hi += Math.imul(ah7, bh1)
|
|
lo += Math.imul(al6, bl2)
|
|
mid += Math.imul(al6, bh2)
|
|
mid += Math.imul(ah6, bl2)
|
|
hi += Math.imul(ah6, bh2)
|
|
lo += Math.imul(al5, bl3)
|
|
mid += Math.imul(al5, bh3)
|
|
mid += Math.imul(ah5, bl3)
|
|
hi += Math.imul(ah5, bh3)
|
|
lo += Math.imul(al4, bl4)
|
|
mid += Math.imul(al4, bh4)
|
|
mid += Math.imul(ah4, bl4)
|
|
hi += Math.imul(ah4, bh4)
|
|
lo += Math.imul(al3, bl5)
|
|
mid += Math.imul(al3, bh5)
|
|
mid += Math.imul(ah3, bl5)
|
|
hi += Math.imul(ah3, bh5)
|
|
lo += Math.imul(al2, bl6)
|
|
mid += Math.imul(al2, bh6)
|
|
mid += Math.imul(ah2, bl6)
|
|
hi += Math.imul(ah2, bh6)
|
|
lo += Math.imul(al1, bl7)
|
|
mid += Math.imul(al1, bh7)
|
|
mid += Math.imul(ah1, bl7)
|
|
hi += Math.imul(ah1, bh7)
|
|
lo += Math.imul(al0, bl8)
|
|
mid += Math.imul(al0, bh8)
|
|
mid += Math.imul(ah0, bl8)
|
|
hi += Math.imul(ah0, bh8)
|
|
var w8 = c + lo + ((mid & 0x1fff) << 13)
|
|
c = hi + (mid >>> 13) + (w8 >>> 26)
|
|
w8 &= 0x3ffffff
|
|
/* k = 9 */
|
|
lo = Math.imul(al9, bl0)
|
|
mid = Math.imul(al9, bh0)
|
|
mid += Math.imul(ah9, bl0)
|
|
hi = Math.imul(ah9, bh0)
|
|
lo += Math.imul(al8, bl1)
|
|
mid += Math.imul(al8, bh1)
|
|
mid += Math.imul(ah8, bl1)
|
|
hi += Math.imul(ah8, bh1)
|
|
lo += Math.imul(al7, bl2)
|
|
mid += Math.imul(al7, bh2)
|
|
mid += Math.imul(ah7, bl2)
|
|
hi += Math.imul(ah7, bh2)
|
|
lo += Math.imul(al6, bl3)
|
|
mid += Math.imul(al6, bh3)
|
|
mid += Math.imul(ah6, bl3)
|
|
hi += Math.imul(ah6, bh3)
|
|
lo += Math.imul(al5, bl4)
|
|
mid += Math.imul(al5, bh4)
|
|
mid += Math.imul(ah5, bl4)
|
|
hi += Math.imul(ah5, bh4)
|
|
lo += Math.imul(al4, bl5)
|
|
mid += Math.imul(al4, bh5)
|
|
mid += Math.imul(ah4, bl5)
|
|
hi += Math.imul(ah4, bh5)
|
|
lo += Math.imul(al3, bl6)
|
|
mid += Math.imul(al3, bh6)
|
|
mid += Math.imul(ah3, bl6)
|
|
hi += Math.imul(ah3, bh6)
|
|
lo += Math.imul(al2, bl7)
|
|
mid += Math.imul(al2, bh7)
|
|
mid += Math.imul(ah2, bl7)
|
|
hi += Math.imul(ah2, bh7)
|
|
lo += Math.imul(al1, bl8)
|
|
mid += Math.imul(al1, bh8)
|
|
mid += Math.imul(ah1, bl8)
|
|
hi += Math.imul(ah1, bh8)
|
|
lo += Math.imul(al0, bl9)
|
|
mid += Math.imul(al0, bh9)
|
|
mid += Math.imul(ah0, bl9)
|
|
hi += Math.imul(ah0, bh9)
|
|
var w9 = c + lo + ((mid & 0x1fff) << 13)
|
|
c = hi + (mid >>> 13) + (w9 >>> 26)
|
|
w9 &= 0x3ffffff
|
|
/* k = 10 */
|
|
lo = Math.imul(al9, bl1)
|
|
mid = Math.imul(al9, bh1)
|
|
mid += Math.imul(ah9, bl1)
|
|
hi = Math.imul(ah9, bh1)
|
|
lo += Math.imul(al8, bl2)
|
|
mid += Math.imul(al8, bh2)
|
|
mid += Math.imul(ah8, bl2)
|
|
hi += Math.imul(ah8, bh2)
|
|
lo += Math.imul(al7, bl3)
|
|
mid += Math.imul(al7, bh3)
|
|
mid += Math.imul(ah7, bl3)
|
|
hi += Math.imul(ah7, bh3)
|
|
lo += Math.imul(al6, bl4)
|
|
mid += Math.imul(al6, bh4)
|
|
mid += Math.imul(ah6, bl4)
|
|
hi += Math.imul(ah6, bh4)
|
|
lo += Math.imul(al5, bl5)
|
|
mid += Math.imul(al5, bh5)
|
|
mid += Math.imul(ah5, bl5)
|
|
hi += Math.imul(ah5, bh5)
|
|
lo += Math.imul(al4, bl6)
|
|
mid += Math.imul(al4, bh6)
|
|
mid += Math.imul(ah4, bl6)
|
|
hi += Math.imul(ah4, bh6)
|
|
lo += Math.imul(al3, bl7)
|
|
mid += Math.imul(al3, bh7)
|
|
mid += Math.imul(ah3, bl7)
|
|
hi += Math.imul(ah3, bh7)
|
|
lo += Math.imul(al2, bl8)
|
|
mid += Math.imul(al2, bh8)
|
|
mid += Math.imul(ah2, bl8)
|
|
hi += Math.imul(ah2, bh8)
|
|
lo += Math.imul(al1, bl9)
|
|
mid += Math.imul(al1, bh9)
|
|
mid += Math.imul(ah1, bl9)
|
|
hi += Math.imul(ah1, bh9)
|
|
var w10 = c + lo + ((mid & 0x1fff) << 13)
|
|
c = hi + (mid >>> 13) + (w10 >>> 26)
|
|
w10 &= 0x3ffffff
|
|
/* k = 11 */
|
|
lo = Math.imul(al9, bl2)
|
|
mid = Math.imul(al9, bh2)
|
|
mid += Math.imul(ah9, bl2)
|
|
hi = Math.imul(ah9, bh2)
|
|
lo += Math.imul(al8, bl3)
|
|
mid += Math.imul(al8, bh3)
|
|
mid += Math.imul(ah8, bl3)
|
|
hi += Math.imul(ah8, bh3)
|
|
lo += Math.imul(al7, bl4)
|
|
mid += Math.imul(al7, bh4)
|
|
mid += Math.imul(ah7, bl4)
|
|
hi += Math.imul(ah7, bh4)
|
|
lo += Math.imul(al6, bl5)
|
|
mid += Math.imul(al6, bh5)
|
|
mid += Math.imul(ah6, bl5)
|
|
hi += Math.imul(ah6, bh5)
|
|
lo += Math.imul(al5, bl6)
|
|
mid += Math.imul(al5, bh6)
|
|
mid += Math.imul(ah5, bl6)
|
|
hi += Math.imul(ah5, bh6)
|
|
lo += Math.imul(al4, bl7)
|
|
mid += Math.imul(al4, bh7)
|
|
mid += Math.imul(ah4, bl7)
|
|
hi += Math.imul(ah4, bh7)
|
|
lo += Math.imul(al3, bl8)
|
|
mid += Math.imul(al3, bh8)
|
|
mid += Math.imul(ah3, bl8)
|
|
hi += Math.imul(ah3, bh8)
|
|
lo += Math.imul(al2, bl9)
|
|
mid += Math.imul(al2, bh9)
|
|
mid += Math.imul(ah2, bl9)
|
|
hi += Math.imul(ah2, bh9)
|
|
var w11 = c + lo + ((mid & 0x1fff) << 13)
|
|
c = hi + (mid >>> 13) + (w11 >>> 26)
|
|
w11 &= 0x3ffffff
|
|
/* k = 12 */
|
|
lo = Math.imul(al9, bl3)
|
|
mid = Math.imul(al9, bh3)
|
|
mid += Math.imul(ah9, bl3)
|
|
hi = Math.imul(ah9, bh3)
|
|
lo += Math.imul(al8, bl4)
|
|
mid += Math.imul(al8, bh4)
|
|
mid += Math.imul(ah8, bl4)
|
|
hi += Math.imul(ah8, bh4)
|
|
lo += Math.imul(al7, bl5)
|
|
mid += Math.imul(al7, bh5)
|
|
mid += Math.imul(ah7, bl5)
|
|
hi += Math.imul(ah7, bh5)
|
|
lo += Math.imul(al6, bl6)
|
|
mid += Math.imul(al6, bh6)
|
|
mid += Math.imul(ah6, bl6)
|
|
hi += Math.imul(ah6, bh6)
|
|
lo += Math.imul(al5, bl7)
|
|
mid += Math.imul(al5, bh7)
|
|
mid += Math.imul(ah5, bl7)
|
|
hi += Math.imul(ah5, bh7)
|
|
lo += Math.imul(al4, bl8)
|
|
mid += Math.imul(al4, bh8)
|
|
mid += Math.imul(ah4, bl8)
|
|
hi += Math.imul(ah4, bh8)
|
|
lo += Math.imul(al3, bl9)
|
|
mid += Math.imul(al3, bh9)
|
|
mid += Math.imul(ah3, bl9)
|
|
hi += Math.imul(ah3, bh9)
|
|
var w12 = c + lo + ((mid & 0x1fff) << 13)
|
|
c = hi + (mid >>> 13) + (w12 >>> 26)
|
|
w12 &= 0x3ffffff
|
|
/* k = 13 */
|
|
lo = Math.imul(al9, bl4)
|
|
mid = Math.imul(al9, bh4)
|
|
mid += Math.imul(ah9, bl4)
|
|
hi = Math.imul(ah9, bh4)
|
|
lo += Math.imul(al8, bl5)
|
|
mid += Math.imul(al8, bh5)
|
|
mid += Math.imul(ah8, bl5)
|
|
hi += Math.imul(ah8, bh5)
|
|
lo += Math.imul(al7, bl6)
|
|
mid += Math.imul(al7, bh6)
|
|
mid += Math.imul(ah7, bl6)
|
|
hi += Math.imul(ah7, bh6)
|
|
lo += Math.imul(al6, bl7)
|
|
mid += Math.imul(al6, bh7)
|
|
mid += Math.imul(ah6, bl7)
|
|
hi += Math.imul(ah6, bh7)
|
|
lo += Math.imul(al5, bl8)
|
|
mid += Math.imul(al5, bh8)
|
|
mid += Math.imul(ah5, bl8)
|
|
hi += Math.imul(ah5, bh8)
|
|
lo += Math.imul(al4, bl9)
|
|
mid += Math.imul(al4, bh9)
|
|
mid += Math.imul(ah4, bl9)
|
|
hi += Math.imul(ah4, bh9)
|
|
var w13 = c + lo + ((mid & 0x1fff) << 13)
|
|
c = hi + (mid >>> 13) + (w13 >>> 26)
|
|
w13 &= 0x3ffffff
|
|
/* k = 14 */
|
|
lo = Math.imul(al9, bl5)
|
|
mid = Math.imul(al9, bh5)
|
|
mid += Math.imul(ah9, bl5)
|
|
hi = Math.imul(ah9, bh5)
|
|
lo += Math.imul(al8, bl6)
|
|
mid += Math.imul(al8, bh6)
|
|
mid += Math.imul(ah8, bl6)
|
|
hi += Math.imul(ah8, bh6)
|
|
lo += Math.imul(al7, bl7)
|
|
mid += Math.imul(al7, bh7)
|
|
mid += Math.imul(ah7, bl7)
|
|
hi += Math.imul(ah7, bh7)
|
|
lo += Math.imul(al6, bl8)
|
|
mid += Math.imul(al6, bh8)
|
|
mid += Math.imul(ah6, bl8)
|
|
hi += Math.imul(ah6, bh8)
|
|
lo += Math.imul(al5, bl9)
|
|
mid += Math.imul(al5, bh9)
|
|
mid += Math.imul(ah5, bl9)
|
|
hi += Math.imul(ah5, bh9)
|
|
var w14 = c + lo + ((mid & 0x1fff) << 13)
|
|
c = hi + (mid >>> 13) + (w14 >>> 26)
|
|
w14 &= 0x3ffffff
|
|
/* k = 15 */
|
|
lo = Math.imul(al9, bl6)
|
|
mid = Math.imul(al9, bh6)
|
|
mid += Math.imul(ah9, bl6)
|
|
hi = Math.imul(ah9, bh6)
|
|
lo += Math.imul(al8, bl7)
|
|
mid += Math.imul(al8, bh7)
|
|
mid += Math.imul(ah8, bl7)
|
|
hi += Math.imul(ah8, bh7)
|
|
lo += Math.imul(al7, bl8)
|
|
mid += Math.imul(al7, bh8)
|
|
mid += Math.imul(ah7, bl8)
|
|
hi += Math.imul(ah7, bh8)
|
|
lo += Math.imul(al6, bl9)
|
|
mid += Math.imul(al6, bh9)
|
|
mid += Math.imul(ah6, bl9)
|
|
hi += Math.imul(ah6, bh9)
|
|
var w15 = c + lo + ((mid & 0x1fff) << 13)
|
|
c = hi + (mid >>> 13) + (w15 >>> 26)
|
|
w15 &= 0x3ffffff
|
|
/* k = 16 */
|
|
lo = Math.imul(al9, bl7)
|
|
mid = Math.imul(al9, bh7)
|
|
mid += Math.imul(ah9, bl7)
|
|
hi = Math.imul(ah9, bh7)
|
|
lo += Math.imul(al8, bl8)
|
|
mid += Math.imul(al8, bh8)
|
|
mid += Math.imul(ah8, bl8)
|
|
hi += Math.imul(ah8, bh8)
|
|
lo += Math.imul(al7, bl9)
|
|
mid += Math.imul(al7, bh9)
|
|
mid += Math.imul(ah7, bl9)
|
|
hi += Math.imul(ah7, bh9)
|
|
var w16 = c + lo + ((mid & 0x1fff) << 13)
|
|
c = hi + (mid >>> 13) + (w16 >>> 26)
|
|
w16 &= 0x3ffffff
|
|
/* k = 17 */
|
|
lo = Math.imul(al9, bl8)
|
|
mid = Math.imul(al9, bh8)
|
|
mid += Math.imul(ah9, bl8)
|
|
hi = Math.imul(ah9, bh8)
|
|
lo += Math.imul(al8, bl9)
|
|
mid += Math.imul(al8, bh9)
|
|
mid += Math.imul(ah8, bl9)
|
|
hi += Math.imul(ah8, bh9)
|
|
var w17 = c + lo + ((mid & 0x1fff) << 13)
|
|
c = hi + (mid >>> 13) + (w17 >>> 26)
|
|
w17 &= 0x3ffffff
|
|
/* k = 18 */
|
|
lo = Math.imul(al9, bl9)
|
|
mid = Math.imul(al9, bh9)
|
|
mid += Math.imul(ah9, bl9)
|
|
hi = Math.imul(ah9, bh9)
|
|
var w18 = c + lo + ((mid & 0x1fff) << 13)
|
|
c = hi + (mid >>> 13) + (w18 >>> 26)
|
|
w18 &= 0x3ffffff
|
|
o[0] = w0
|
|
o[1] = w1
|
|
o[2] = w2
|
|
o[3] = w3
|
|
o[4] = w4
|
|
o[5] = w5
|
|
o[6] = w6
|
|
o[7] = w7
|
|
o[8] = w8
|
|
o[9] = w9
|
|
o[10] = w10
|
|
o[11] = w11
|
|
o[12] = w12
|
|
o[13] = w13
|
|
o[14] = w14
|
|
o[15] = w15
|
|
o[16] = w16
|
|
o[17] = w17
|
|
o[18] = w18
|
|
if (c !== 0) {
|
|
o[19] = c
|
|
out.length++
|
|
}
|
|
return out
|
|
}
|