UNPKG

aureooms-js-integer

Version:

integer code bricks for JavaScript

33 lines (26 loc) 2.62 kB
"use strict"; 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==