aureooms-js-integer
Version:
integer code bricks for JavaScript
33 lines (26 loc) • 2.62 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.wrapbin = wrapbin;
/**
* Wrapper for binary operator.
* Ensures
*
* i >= j
* i0, j0, k0 >= 0
*
*/
function wrapbin(fn) {
return function (a, i0, i1, b, j0, j1, c, k0, k1) {
var i, j, k;
k0 = Math.max(0, k0);
k = k1 - k0;
i0 = Math.max(0, i0, i1 - k);
j0 = Math.max(0, j0, j1 - k);
i = i1 - i0;
j = j1 - j0;
if (i < j) return fn(b, j0, j1, a, i0, i1, c, k0, k1);else return fn(a, i0, i1, b, j0, j1, c, k0, k1);
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy8wLWxlZ2FjeS9vdGhlcnMvd3JhcC93cmFwYmluLmpzIl0sIm5hbWVzIjpbIndyYXBiaW4iLCJmbiIsImEiLCJpMCIsImkxIiwiYiIsImowIiwiajEiLCJjIiwiazAiLCJrMSIsImkiLCJqIiwiayIsIk1hdGgiLCJtYXgiXSwibWFwcGluZ3MiOiI7Ozs7O1FBU2dCQSxPLEdBQUFBLE87QUFUaEI7Ozs7Ozs7OztBQVNPLFNBQVNBLE9BQVQsQ0FBa0JDLEVBQWxCLEVBQXFCOztBQUUzQixRQUFPLFVBQVNDLENBQVQsRUFBWUMsRUFBWixFQUFnQkMsRUFBaEIsRUFBb0JDLENBQXBCLEVBQXVCQyxFQUF2QixFQUEyQkMsRUFBM0IsRUFBK0JDLENBQS9CLEVBQWtDQyxFQUFsQyxFQUFzQ0MsRUFBdEMsRUFBeUM7O0FBRS9DLE1BQUlDLENBQUosRUFBT0MsQ0FBUCxFQUFVQyxDQUFWOztBQUVBSixPQUFLSyxLQUFLQyxHQUFMLENBQVMsQ0FBVCxFQUFZTixFQUFaLENBQUw7QUFDQUksTUFBSUgsS0FBS0QsRUFBVDs7QUFFQU4sT0FBS1csS0FBS0MsR0FBTCxDQUFTLENBQVQsRUFBWVosRUFBWixFQUFnQkMsS0FBS1MsQ0FBckIsQ0FBTDtBQUNBUCxPQUFLUSxLQUFLQyxHQUFMLENBQVMsQ0FBVCxFQUFZVCxFQUFaLEVBQWdCQyxLQUFLTSxDQUFyQixDQUFMO0FBQ0FGLE1BQUlQLEtBQUtELEVBQVQ7QUFDQVMsTUFBSUwsS0FBS0QsRUFBVDs7QUFFQSxNQUFHSyxJQUFJQyxDQUFQLEVBQ0EsT0FBT1gsR0FBR0ksQ0FBSCxFQUFNQyxFQUFOLEVBQVVDLEVBQVYsRUFBY0wsQ0FBZCxFQUFpQkMsRUFBakIsRUFBcUJDLEVBQXJCLEVBQXlCSSxDQUF6QixFQUE0QkMsRUFBNUIsRUFBZ0NDLEVBQWhDLENBQVAsQ0FEQSxLQUlBLE9BQU9ULEdBQUdDLENBQUgsRUFBTUMsRUFBTixFQUFVQyxFQUFWLEVBQWNDLENBQWQsRUFBaUJDLEVBQWpCLEVBQXFCQyxFQUFyQixFQUF5QkMsQ0FBekIsRUFBNEJDLEVBQTVCLEVBQWdDQyxFQUFoQyxDQUFQO0FBQ0EsRUFqQkQ7QUFrQkEiLCJmaWxlIjoid3JhcGJpbi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogV3JhcHBlciBmb3IgYmluYXJ5IG9wZXJhdG9yLlxuICogRW5zdXJlc1xuICpcbiAqICAgICBpID49IGpcbiAqICAgICBpMCwgajAsIGswID49IDBcbiAqXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIHdyYXBiaW4gKGZuKXtcblxuXHRyZXR1cm4gZnVuY3Rpb24oYSwgaTAsIGkxLCBiLCBqMCwgajEsIGMsIGswLCBrMSl7XG5cblx0XHR2YXIgaSwgaiwgaztcblxuXHRcdGswID0gTWF0aC5tYXgoMCwgazApO1xuXHRcdGsgPSBrMSAtIGswO1xuXG5cdFx0aTAgPSBNYXRoLm1heCgwLCBpMCwgaTEgLSBrKTtcblx0XHRqMCA9IE1hdGgubWF4KDAsIGowLCBqMSAtIGspO1xuXHRcdGkgPSBpMSAtIGkwO1xuXHRcdGogPSBqMSAtIGowO1xuXG5cdFx0aWYoaSA8IGopXG5cdFx0cmV0dXJuIGZuKGIsIGowLCBqMSwgYSwgaTAsIGkxLCBjLCBrMCwgazEpO1xuXG5cdFx0ZWxzZVxuXHRcdHJldHVybiBmbihhLCBpMCwgaTEsIGIsIGowLCBqMSwgYywgazAsIGsxKTtcblx0fTtcbn1cbiJdfQ==
;