UNPKG

aureooms-js-integer

Version:

integer code bricks for JavaScript

56 lines (41 loc) 4.12 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports._convert_slow = _convert_slow; var _ = require('.'); var _arithmetic = require('../arithmetic'); var _compare = require('../compare'); /** * * @param {Number} f the base to convert from * @param {Number} t the base to convert to * @param {Array} a the origin array * @param {Number} ai start offset in the origin array * @param {Number} aj end offset in the origin array * @param {Array} b the destination array * @param {Number} bi start offset in the destination array * @param {Number} bj end offset in the destination array */ function _convert_slow(f, t, a, ai, aj, b, bi, bj) { var d = (0, _._build)(f, t); var di = 0; var dj = d.length; var qi = 0; var qj = aj - ai; var q = (0, _._alloc)(qj - qi); while (true) { (0, _._reset)(q, qi, qj); (0, _arithmetic._div)(f, a, ai, aj, d, di, dj, q, qi); --bj; var x = 0; for (var k = ai; k < aj; ++k) { x *= f; x += a[k]; } b[bj] = x; if ((0, _compare._jz)(q, qi, qj)) return; (0, _._copy)(q, qi, qj, a, ai); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy8xLW5ldy9jb252ZXJ0L19jb252ZXJ0X3Nsb3cuanMiXSwibmFtZXMiOlsiX2NvbnZlcnRfc2xvdyIsImYiLCJ0IiwiYSIsImFpIiwiYWoiLCJiIiwiYmkiLCJiaiIsImQiLCJkaSIsImRqIiwibGVuZ3RoIiwicWkiLCJxaiIsInEiLCJ4IiwiayJdLCJtYXBwaW5ncyI6Ijs7Ozs7UUFnQmdCQSxhLEdBQUFBLGE7O0FBaEJoQjs7QUFDQTs7QUFDQTs7QUFFQTs7Ozs7Ozs7Ozs7O0FBWU8sU0FBU0EsYUFBVCxDQUF5QkMsQ0FBekIsRUFBNkJDLENBQTdCLEVBQWlDQyxDQUFqQyxFQUFxQ0MsRUFBckMsRUFBMENDLEVBQTFDLEVBQStDQyxDQUEvQyxFQUFtREMsRUFBbkQsRUFBd0RDLEVBQXhELEVBQTZEOztBQUVuRSxLQUFNQyxJQUFJLGNBQVFSLENBQVIsRUFBWUMsQ0FBWixDQUFWO0FBQ0EsS0FBTVEsS0FBSyxDQUFYO0FBQ0EsS0FBTUMsS0FBS0YsRUFBRUcsTUFBYjtBQUNBLEtBQU1DLEtBQUssQ0FBWDtBQUNBLEtBQU1DLEtBQUtULEtBQUtELEVBQWhCO0FBQ0EsS0FBTVcsSUFBSSxjQUFRRCxLQUFLRCxFQUFiLENBQVY7O0FBRUEsUUFBUSxJQUFSLEVBQWU7O0FBRWQsZ0JBQVFFLENBQVIsRUFBWUYsRUFBWixFQUFpQkMsRUFBakI7O0FBRUEsd0JBQU1iLENBQU4sRUFBVUUsQ0FBVixFQUFjQyxFQUFkLEVBQW1CQyxFQUFuQixFQUF3QkksQ0FBeEIsRUFBNEJDLEVBQTVCLEVBQWlDQyxFQUFqQyxFQUFzQ0ksQ0FBdEMsRUFBMENGLEVBQTFDOztBQUVBLElBQUVMLEVBQUY7QUFDQSxNQUFJUSxJQUFJLENBQVI7O0FBRUEsT0FBTSxJQUFJQyxJQUFJYixFQUFkLEVBQW1CYSxJQUFJWixFQUF2QixFQUE0QixFQUFFWSxDQUE5QixFQUFrQztBQUNqQ0QsUUFBS2YsQ0FBTDtBQUNBZSxRQUFLYixFQUFFYyxDQUFGLENBQUw7QUFDQTs7QUFFRFgsSUFBRUUsRUFBRixJQUFRUSxDQUFSOztBQUVBLE1BQUssa0JBQUtELENBQUwsRUFBU0YsRUFBVCxFQUFjQyxFQUFkLENBQUwsRUFBMEI7O0FBRTFCLGVBQU9DLENBQVAsRUFBV0YsRUFBWCxFQUFnQkMsRUFBaEIsRUFBcUJYLENBQXJCLEVBQXlCQyxFQUF6QjtBQUVBO0FBRUQiLCJmaWxlIjoiX2NvbnZlcnRfc2xvdy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF9idWlsZCAsIF9hbGxvYyAsIF9yZXNldCAsIF9jb3B5IH0gZnJvbSAnLicgO1xuaW1wb3J0IHsgX2RpdiB9IGZyb20gJy4uL2FyaXRobWV0aWMnIDtcbmltcG9ydCB7IF9qeiB9IGZyb20gJy4uL2NvbXBhcmUnIDtcblxuLyoqXG4gKlxuICogQHBhcmFtIHtOdW1iZXJ9IGYgdGhlIGJhc2UgdG8gY29udmVydCBmcm9tXG4gKiBAcGFyYW0ge051bWJlcn0gdCB0aGUgYmFzZSB0byBjb252ZXJ0IHRvXG4gKiBAcGFyYW0ge0FycmF5fSBhIHRoZSBvcmlnaW4gYXJyYXlcbiAqIEBwYXJhbSB7TnVtYmVyfSBhaSBzdGFydCBvZmZzZXQgaW4gdGhlIG9yaWdpbiBhcnJheVxuICogQHBhcmFtIHtOdW1iZXJ9IGFqIGVuZCBvZmZzZXQgaW4gdGhlIG9yaWdpbiBhcnJheVxuICogQHBhcmFtIHtBcnJheX0gYiB0aGUgZGVzdGluYXRpb24gYXJyYXlcbiAqIEBwYXJhbSB7TnVtYmVyfSBiaSBzdGFydCBvZmZzZXQgaW4gdGhlIGRlc3RpbmF0aW9uIGFycmF5XG4gKiBAcGFyYW0ge051bWJlcn0gYmogZW5kIG9mZnNldCBpbiB0aGUgZGVzdGluYXRpb24gYXJyYXlcbiAqL1xuXG5leHBvcnQgZnVuY3Rpb24gX2NvbnZlcnRfc2xvdyAoIGYgLCB0ICwgYSAsIGFpICwgYWogLCBiICwgYmkgLCBiaiApIHtcblxuXHRjb25zdCBkID0gX2J1aWxkKCBmICwgdCApIDtcblx0Y29uc3QgZGkgPSAwIDtcblx0Y29uc3QgZGogPSBkLmxlbmd0aCA7XG5cdGNvbnN0IHFpID0gMCA7XG5cdGNvbnN0IHFqID0gYWogLSBhaSA7XG5cdGNvbnN0IHEgPSBfYWxsb2MoIHFqIC0gcWkgKSA7XG5cblx0d2hpbGUgKCB0cnVlICkge1xuXG5cdFx0X3Jlc2V0KCBxICwgcWkgLCBxaiApIDtcblxuXHRcdF9kaXYoIGYgLCBhICwgYWkgLCBhaiAsIGQgLCBkaSAsIGRqICwgcSAsIHFpICkgO1xuXG5cdFx0LS1iaiA7XG5cdFx0bGV0IHggPSAwIDtcblxuXHRcdGZvciAoIGxldCBrID0gYWkgOyBrIDwgYWogOyArK2sgKSB7XG5cdFx0XHR4ICo9IGYgO1xuXHRcdFx0eCArPSBhW2tdIDtcblx0XHR9XG5cblx0XHRiW2JqXSA9IHggO1xuXG5cdFx0aWYgKCBfanooIHEgLCBxaSAsIHFqICkgKSByZXR1cm4gO1xuXG5cdFx0X2NvcHkoIHEgLCBxaSAsIHFqICwgYSAsIGFpICkgO1xuXG5cdH1cblxufVxuIl19