| 3757 | return _LL((c16 << 16) | c00, (c48 << 16) | c32); |
| 3758 | } |
| 3759 | function _Lmul(a, b) { |
| 3760 | a = _Lc(a); b = _Lc(b); |
| 3761 | const a48 = a.h >>> 16, a32 = a.h & 0xFFFF, a16 = a.l >>> 16, a00 = a.l & 0xFFFF; |
| 3762 | const b48 = b.h >>> 16, b32 = b.h & 0xFFFF, b16 = b.l >>> 16, b00 = b.l & 0xFFFF; |
| 3763 | let c00 = 0, c16 = 0, c32 = 0, c48 = 0; |
| 3764 | c00 += a00 * b00; c16 += c00 >>> 16; c00 &= 0xFFFF; |
| 3765 | c16 += a16 * b00; c32 += c16 >>> 16; c16 &= 0xFFFF; |
| 3766 | c16 += a00 * b16; c32 += c16 >>> 16; c16 &= 0xFFFF; |
| 3767 | c32 += a32 * b00; c48 += c32 >>> 16; c32 &= 0xFFFF; |
| 3768 | c32 += a16 * b16; c48 += c32 >>> 16; c32 &= 0xFFFF; |
| 3769 | c32 += a00 * b32; c48 += c32 >>> 16; c32 &= 0xFFFF; |
| 3770 | c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48; c48 &= 0xFFFF; |
| 3771 | return _LL((c16 << 16) | c00, (c48 << 16) | c32); |
| 3772 | } |
| 3773 | function _Lcmp(a, b) { |
| 3774 | a = _Lc(a); b = _Lc(b); |
| 3775 | // Allocation-free: the high word is signed, so it orders the full value; on a |