| 3731 | function _LisNeg(a) { return a.h < 0; } |
| 3732 | function _Leq(a, b) { return a.h === b.h && a.l === b.l; } |
| 3733 | function _Ladd(a, b) { |
| 3734 | a = _Lc(a); b = _Lc(b); |
| 3735 | const a48 = a.h >>> 16, a32 = a.h & 0xFFFF, a16 = a.l >>> 16, a00 = a.l & 0xFFFF; |
| 3736 | const b48 = b.h >>> 16, b32 = b.h & 0xFFFF, b16 = b.l >>> 16, b00 = b.l & 0xFFFF; |
| 3737 | let c00 = a00 + b00, c16 = 0, c32 = 0, c48 = 0; |
| 3738 | c16 += c00 >>> 16; c00 &= 0xFFFF; |
| 3739 | c16 += a16 + b16; c32 += c16 >>> 16; c16 &= 0xFFFF; |
| 3740 | c32 += a32 + b32; c48 += c32 >>> 16; c32 &= 0xFFFF; |
| 3741 | c48 += a48 + b48; c48 &= 0xFFFF; |
| 3742 | return _LL((c16 << 16) | c00, (c48 << 16) | c32); |
| 3743 | } |
| 3744 | function _Lneg(a) { a = _Lc(a); return _Leq(a, _LMIN) ? _LMIN : _Ladd(_LL(~a.l, ~a.h), _L1); } |
| 3745 | function _Lsub(a, b) { |
| 3746 | // a - b = a + ~b + 1, inlined as a single 16-bit add chain (one allocation |