+45
-18
@@ -72,3 +72,3 @@ /** | ||
| for (var i=0, k=bytes.length; i<k; ++i) | ||
| for (var i=0, k=Math.min(nBytes, bytes.length); i<k; ++i) | ||
| this.bytes[i] = bytes[i] & 0xff; | ||
@@ -420,3 +420,3 @@ for (; i<nBytes; ++i) | ||
| val = retainMsb ? this.not() : this; | ||
| for (var i=0, result=0; i<Math.min(4, val.bytes.length); ++i) | ||
| for (var i=0, k=Math.min(4, val.bytes.length), result=0; i<k; ++i) | ||
| result |= val.bytes[i] << (i*8); | ||
@@ -454,5 +454,5 @@ if (retainMsb) | ||
| IntN.prototype.toInts = function() { | ||
| var numChunks = Math.ceil(nBytes/4), | ||
| arr = new Array(numChunks); | ||
| for (var i=0, offset=0, val; i<numChunks; offset=++i*4) { | ||
| var numInts = Math.ceil(nBytes/4), | ||
| arr = new Array(numInts); | ||
| for (var i=0, offset=0, val; i<numInts; offset=++i*4) { | ||
| val = 0; | ||
@@ -469,6 +469,10 @@ for (var j=0, l=Math.min(4, nBytes-offset); j<l; ++j) | ||
| /** | ||
| * Constructs an IntN from a number (double, 52 bit mantissa) value. | ||
| * Constructs an IntN from a number (double, 52 bit mantissa) value. This differs from {@link IntN.fromInt} in | ||
| * using arithmetic operations on numbers instead of logical operations on 32 bit integers, which works | ||
| * reliably up to a maximum positive or negative value of 2^53-1. | ||
| * @param {number} value Number value | ||
| * @param {boolean=} unsigned Whether unsigned or not, defaults `false` for signed | ||
| * @returns {!IntN} | ||
| * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MIN_SAFE_INTEGER | ||
| * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER | ||
| * @expose | ||
@@ -491,4 +495,8 @@ */ | ||
| /** | ||
| * Converts this IntN to a number (double, 52 bit mantissa) value. | ||
| * Converts this IntN to a number (double, 52 bit mantissa) value. This differs from {@link IntN#toInt} in using | ||
| * arithmetic operations on numbers instead of logical operations on 32 bit integers, which works reliably up | ||
| * to a maximum positive or negative value of 2^53-1. A maximum of 56 bits is evaluated. | ||
| * @returns {number} | ||
| * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MIN_SAFE_INTEGER | ||
| * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER | ||
| * @expose | ||
@@ -746,12 +754,23 @@ */ | ||
| throw Error("division by zero"); | ||
| // See comment in #add above | ||
| if (dividend.unsigned) | ||
| divisor = divisor.toUnsigned(); | ||
| if (dividend.unsigned && dividend.greaterThan(IntN.MAX_VALUE)) { | ||
| // Ensure correct results for large unsigned values. TODO: Is there a better way? | ||
| var IntM = makeIntN(nBits+8), // constructed when requested, then reused | ||
| divmod = IntM.divide(dividend.cast(IntM), divisor.cast(IntM)); | ||
| return { | ||
| "quotient": divmod['quotient'].cast(IntN), | ||
| "remainder": divmod['remainder'].cast(IntN) | ||
| }; | ||
| } | ||
| var isNegative = dividend.isNegative() !== divisor.isNegative(), | ||
| quotient = dividend.unsigned ? IntN.UZERO : IntN.ZERO, | ||
| quotient = IntN.UZERO, | ||
| remainder = dividend.absolute(), | ||
| product = divisor.absolute(), | ||
| term = IntN.UONE, | ||
| maxTerm = IntN.MIN_VALUE.toUnsigned(); | ||
| while (term.lessThan(maxTerm) && product.lessThan(remainder)) | ||
| termMsb = 1; | ||
| while (termMsb < nBits && product.lessThan(remainder)) | ||
| product = product.shiftLeft(1), | ||
| term = term.shiftLeft(1); | ||
| ++termMsb; | ||
| term = term.shiftLeft(termMsb-1); | ||
| while (term.greaterThanEqual(IntN.UONE)) { | ||
@@ -764,4 +783,11 @@ if (product.lessThanEqual(remainder)) | ||
| } | ||
| if (!dividend.unsigned) | ||
| quotient = quotient.toSigned(), | ||
| remainder = remainder.toSigned(); | ||
| if (isNegative) | ||
| quotient = quotient.negate(); | ||
| if (dividend.isNegative() || (quotient.isNegative() !== divisor.isNegative() && !quotient.isZero())) | ||
| remainder = remainder.negate(); // remainder = dividend - quotient*divisor | ||
| return { | ||
| "quotient": isNegative ? quotient.negate() : quotient, | ||
| "quotient": quotient, | ||
| "remainder": remainder | ||
@@ -780,2 +806,3 @@ }; | ||
| other = IntN.valueOf(other); | ||
| return IntN.divide(this, other)['quotient']; | ||
@@ -900,8 +927,8 @@ }; | ||
| digits = [], | ||
| mod; | ||
| do | ||
| mod = IntN.divide(result, radix)['remainder'], | ||
| digits.unshift(chars.charAt(mod.toInt())), | ||
| divmod; | ||
| do { | ||
| divmod = IntN.divide(result, radix); | ||
| digits.unshift(chars.charAt(divmod['remainder'].toInt())); | ||
| result = IntN.divide(result, radix)['quotient']; | ||
| while (!result.equals(zero)); | ||
| } while (!result.equals(zero)); | ||
| return digits.join(''); | ||
@@ -908,0 +935,0 @@ }; |
+45
-18
@@ -90,3 +90,3 @@ /* | ||
| for (var i=0, k=bytes.length; i<k; ++i) | ||
| for (var i=0, k=Math.min(nBytes, bytes.length); i<k; ++i) | ||
| this.bytes[i] = bytes[i] & 0xff; | ||
@@ -438,3 +438,3 @@ for (; i<nBytes; ++i) | ||
| val = retainMsb ? this.not() : this; | ||
| for (var i=0, result=0; i<Math.min(4, val.bytes.length); ++i) | ||
| for (var i=0, k=Math.min(4, val.bytes.length), result=0; i<k; ++i) | ||
| result |= val.bytes[i] << (i*8); | ||
@@ -472,5 +472,5 @@ if (retainMsb) | ||
| IntN.prototype.toInts = function() { | ||
| var numChunks = Math.ceil(nBytes/4), | ||
| arr = new Array(numChunks); | ||
| for (var i=0, offset=0, val; i<numChunks; offset=++i*4) { | ||
| var numInts = Math.ceil(nBytes/4), | ||
| arr = new Array(numInts); | ||
| for (var i=0, offset=0, val; i<numInts; offset=++i*4) { | ||
| val = 0; | ||
@@ -487,6 +487,10 @@ for (var j=0, l=Math.min(4, nBytes-offset); j<l; ++j) | ||
| /** | ||
| * Constructs an IntN from a number (double, 52 bit mantissa) value. | ||
| * Constructs an IntN from a number (double, 52 bit mantissa) value. This differs from {@link IntN.fromInt} in | ||
| * using arithmetic operations on numbers instead of logical operations on 32 bit integers, which works | ||
| * reliably up to a maximum positive or negative value of 2^53-1. | ||
| * @param {number} value Number value | ||
| * @param {boolean=} unsigned Whether unsigned or not, defaults `false` for signed | ||
| * @returns {!IntN} | ||
| * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MIN_SAFE_INTEGER | ||
| * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER | ||
| * @expose | ||
@@ -509,4 +513,8 @@ */ | ||
| /** | ||
| * Converts this IntN to a number (double, 52 bit mantissa) value. | ||
| * Converts this IntN to a number (double, 52 bit mantissa) value. This differs from {@link IntN#toInt} in using | ||
| * arithmetic operations on numbers instead of logical operations on 32 bit integers, which works reliably up | ||
| * to a maximum positive or negative value of 2^53-1. A maximum of 56 bits is evaluated. | ||
| * @returns {number} | ||
| * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MIN_SAFE_INTEGER | ||
| * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER | ||
| * @expose | ||
@@ -764,12 +772,23 @@ */ | ||
| throw Error("division by zero"); | ||
| // See comment in #add above | ||
| if (dividend.unsigned) | ||
| divisor = divisor.toUnsigned(); | ||
| if (dividend.unsigned && dividend.greaterThan(IntN.MAX_VALUE)) { | ||
| // Ensure correct results for large unsigned values. TODO: Is there a better way? | ||
| var IntM = makeIntN(nBits+8), // constructed when requested, then reused | ||
| divmod = IntM.divide(dividend.cast(IntM), divisor.cast(IntM)); | ||
| return { | ||
| "quotient": divmod['quotient'].cast(IntN), | ||
| "remainder": divmod['remainder'].cast(IntN) | ||
| }; | ||
| } | ||
| var isNegative = dividend.isNegative() !== divisor.isNegative(), | ||
| quotient = dividend.unsigned ? IntN.UZERO : IntN.ZERO, | ||
| quotient = IntN.UZERO, | ||
| remainder = dividend.absolute(), | ||
| product = divisor.absolute(), | ||
| term = IntN.UONE, | ||
| maxTerm = IntN.MIN_VALUE.toUnsigned(); | ||
| while (term.lessThan(maxTerm) && product.lessThan(remainder)) | ||
| termMsb = 1; | ||
| while (termMsb < nBits && product.lessThan(remainder)) | ||
| product = product.shiftLeft(1), | ||
| term = term.shiftLeft(1); | ||
| ++termMsb; | ||
| term = term.shiftLeft(termMsb-1); | ||
| while (term.greaterThanEqual(IntN.UONE)) { | ||
@@ -782,4 +801,11 @@ if (product.lessThanEqual(remainder)) | ||
| } | ||
| if (!dividend.unsigned) | ||
| quotient = quotient.toSigned(), | ||
| remainder = remainder.toSigned(); | ||
| if (isNegative) | ||
| quotient = quotient.negate(); | ||
| if (dividend.isNegative() || (quotient.isNegative() !== divisor.isNegative() && !quotient.isZero())) | ||
| remainder = remainder.negate(); // remainder = dividend - quotient*divisor | ||
| return { | ||
| "quotient": isNegative ? quotient.negate() : quotient, | ||
| "quotient": quotient, | ||
| "remainder": remainder | ||
@@ -798,2 +824,3 @@ }; | ||
| other = IntN.valueOf(other); | ||
| return IntN.divide(this, other)['quotient']; | ||
@@ -918,8 +945,8 @@ }; | ||
| digits = [], | ||
| mod; | ||
| do | ||
| mod = IntN.divide(result, radix)['remainder'], | ||
| digits.unshift(chars.charAt(mod.toInt())), | ||
| divmod; | ||
| do { | ||
| divmod = IntN.divide(result, radix); | ||
| digits.unshift(chars.charAt(divmod['remainder'].toInt())); | ||
| result = IntN.divide(result, radix)['quotient']; | ||
| while (!result.equals(zero)); | ||
| } while (!result.equals(zero)); | ||
| return digits.join(''); | ||
@@ -926,0 +953,0 @@ }; |
+18
-18
@@ -6,19 +6,19 @@ /* | ||
| */ | ||
| (function(t){var q=function(){var q={},t=[1,256,65536,16777216,4294967296,1099511627776,281474976710656],r={compare:["comp"],equals:["eq","equal","=="],notEquals:["ne","notEqual","!="],lessThan:["lt","less","lesser","<"],lessThanEqual:["lte","lessThanOrEqual","<="],greaterThan:["gt","greater",">"],greaterThanEqual:["gte","greaterThanOrEqual",">="],not:["~"],and:["&"],or:["|"],xor:["^"],shiftLeft:["lsh","leftShift","<<"],shiftRight:["rsh","rightShift",">>"],shiftRightUnsigned:["rshu","rightShiftUnsigned", | ||
| ">>>"],add:["plus","+"],negate:["neg","!"],subtract:["sub","minus","-"],absolute:["abs","||"],multiply:["mult","*"],divide:["div","/"],modulo:["mod","%"]};return function(l){function b(a,b){this.bytes=Array(g);for(var c=0,e=a.length;c<e;++c)this.bytes[c]=a[c]&255;for(;c<g;++c)this.bytes[c]=0;this.unsigned=!!b}if(0>=l||0!==l%8)throw Error("illegal number of bits: "+l+" (not a positive multiple of 8)");if(q[l])return q[l];for(var g=l/8|0,n=g-1,s=Array(g),h=0;h<g;++h)s[h]=0;for(var u=Array(g),h=0;h< | ||
| g;++h)u[h]=255;b.BITS=l|0;b.BYTES=g;b.isIntN=function(a){return!0===(a&&Array.isArray(a.bytes)&&a.bytes.length===g&&"boolean"===typeof a.unsigned)};b.valueOf=function(a){return"number"===typeof a?b.fromNumber(a):"string"===typeof a?b.fromString(a):a&&a instanceof b&&a.bytes.length===g?a:a&&"number"===typeof a.b&&"number"===typeof a.a&&"boolean"===typeof a.unsigned?b.fromInts([a.b,a.a],a.unsigned):new b(a.bytes,a.unsigned)};b.prototype.cast=function(a,b){b="boolean"===typeof b?b:this.unsigned;var c= | ||
| this.isNegative(),e=c?this.not():this,e=new a(e.bytes,b);return c?e.not():e};b.ZERO=new b([],!1);b.UZERO=new b([],!0);b.ONE=new b([1],!1);b.UONE=new b([1],!0);b.MIN_VALUE=new b(s.slice(0,g));b.MIN_VALUE.bytes[n]|=128;b.MAX_VALUE=new b(u.slice(0,g));b.MAX_VALUE.bytes[n]&=127;b.MAX_UNSIGNED_VALUE=new b(u.slice(0,g),!0);b.prototype.isSigned=function(){return!this.unsigned};b.prototype.isUnsigned=function(){return this.unsigned};b.prototype.toSigned=function(){return this.unsigned?new b(this.bytes,!1): | ||
| this};b.prototype.toUnsigned=function(){return this.unsigned?this:new b(this.bytes,!0)};b.prototype.isNegative=function(){return!this.unsigned&&128===(this.bytes[n]&128)};b.prototype.isPositive=function(){return this.unsigned||0===(this.bytes[n]&128)};b.prototype.isEven=function(){return 0===(this.bytes[0]&1)};b.prototype.isOdd=function(){return 1===(this.bytes[0]&1)};b.prototype.isZero=function(){for(var a=0;a<g;++a)if(0!==this.bytes[a])return!1;return!0};b.prototype.compare=function(a){b.isIntN(a)|| | ||
| (a=b.valueOf(a));var d=this.isNegative();if(d!==a.isNegative())return d?-1:1;for(d=n;0<=d;--d){if(this.bytes[d]<a.bytes[d])return-1;if(this.bytes[d]>a.bytes[d])return 1}return 0};b.prototype.equals=function(a){return 0===this.compare(a)};b.prototype.notEquals=function(a){return 0!==this.compare(a)};b.prototype.lessThan=function(a){return-1===this.compare(a)};b.prototype.lessThanEqual=function(a){return 0>=this.compare(a)};b.prototype.greaterThan=function(a){return 1===this.compare(a)};b.prototype.greaterThanEqual= | ||
| function(a){return 0<=this.compare(a)};b.fromInt=function(a,d){a|=0;var c;if(0>a)return-2147483648===a?b.MIN_VALUE:c=b.fromInt(-a,d).negate();c=s.slice(0,g);for(var e=0;e<g&&0!==a;++e)c[e]=a&255,a>>>=8;return c=new b(c,d)};b.prototype.toInt=function(a){a="boolean"===typeof a?a:this.unsigned;for(var b=this.isNegative(),c=b?this.not():this,e=0,f=0;e<Math.min(4,c.bytes.length);++e)f|=c.bytes[e]<<8*e;b&&(f=~f);return a?f>>>0:f};b.fromInts=function(a,d){for(var c=b.ZERO,e=0,f=Math.min(a.length,Math.ceil(g/ | ||
| 4)),m;e<f;++e)m=a[e],c=c.or((new b([m&255,m>>>8&255,m>>>16&255,m>>>24&255])).shiftLeft(32*e));return d?c.toUnsigned():c};b.prototype.toInts=function(){for(var a=Math.ceil(g/4),b=Array(a),c=0,e=0,f;c<a;e=4*++c){for(var m=f=0,k=Math.min(4,g-e);m<k;++m)f|=this.bytes[e+m]<<8*m;b[c]=f}return b};b.fromNumber=function(a,d){if("number"!==typeof a)throw TypeError("illegal arguments: "+typeof a);if(a!==a||!isFinite(a)||0===a)return d?b.UZERO:b.ZERO;if(0>a)return b.fromNumber(-a,d).negate();for(var c=0,e=Array(g);c< | ||
| g;++c)e[c]=a%256&255,a=Math.floor(a/256);return new b(e,d)};b.prototype.toNumber=function(){if(this.isNegative())return this.equals(b.MIN_VALUE)?-2147483648:-this.negate().toNumber();for(var a=0,d=0,c=Math.min(g,7);a<c;++a)d+=this.bytes[a]*t[a];return d};b.prototype.not=function(){for(var a=0,d=Array(g);a<g;++a)d[a]=~this.bytes[a];return new b(d,this.unsigned)};b.prototype.and=function(a){b.isIntN(a)||(a=b.valueOf(a));for(var d=0,c=Array(g);d<g;++d)c[d]=this.bytes[d]&a.bytes[d];return new b(c,this.unsigned)}; | ||
| b.prototype.or=function(a){b.isIntN(a)||(a=b.valueOf(a));for(var d=0,c=Array(g);d<g;++d)c[d]=this.bytes[d]|a.bytes[d];return new b(c,this.unsigned)};b.prototype.xor=function(a){b.isIntN(a)||(a=b.valueOf(a));for(var d=0,c=Array(g);d<g;++d)c[d]=this.bytes[d]^a.bytes[d];return new b(c,this.unsigned)};b.prototype.shiftLeft=function(a){b.isIntN(a)&&(a=a.toInt());a%=l;if(0===a)return this;0>a&&(a+=l);var d=a/8|0;a%=8;for(var c=0,e=s.slice(0,g),f;c<g&&!((f=c+d)>=g);++c)e[f]|=this.bytes[c]<<a&255,++f<g&& | ||
| (e[f]|=this.bytes[c]<<a>>>8&255);return new b(e,this.unsigned)};b.prototype.shiftRight=function(a,d){b.isIntN(a)&&(a=a.toInt());a%=l;if(0===a)return this;0>a&&(a+=l);var c=a/8|0;a%=8;var e=s.slice(0,g),f;if(!d&&128===(this.bytes[n]&128)){var m;f=g-1;for(m=g-c-1;f>=m;--f)e[f]=255;e[++f]=e[f]<<7-a&255}var k;for(f=0;f<g;++f)0<=(k=f-c)&&(e[k]|=this.bytes[f]>>>a&255),0<=--k&&(e[k]|=this.bytes[f]<<8>>>a&255);return new b(e,this.unsigned)};b.prototype.shiftRightUnsigned=function(a){return this.shiftRight(a, | ||
| !0)};b.add=function(a,b){for(var c=a.and(b),e=a.xor(b),f;!c.isZero();)f=c.shiftLeft(1),c=e.and(f),e=e.xor(f);return e};b.prototype.add=function(a){b.isIntN(a)||(a=b.valueOf(a));return b.add(this,a)};b.prototype.negate=function(){return b.add(this.not(),b.ONE)};b.NEG_ONE=b.ONE.negate();b.prototype.subtract=function(a){b.isIntN(a)||(a=b.valueOf(a));return b.add(this,a.negate())};b.prototype.absolute=function(){return this.unsigned?this:(this.isNegative()?this.negate():this).toUnsigned()};b.multiply= | ||
| function(a,d){var c=a.isNegative()!==d.isNegative(),e=a.unsigned?b.UZERO:b.ZERO;a=a.absolute();for(d=d.absolute();!d.isZero();a=a.shiftLeft(1),d=d.shiftRight(1,!0))1===(d.bytes[0]&1)&&(e=b.add(e,a));return c?e.negate():e};b.prototype.multiply=function(a){b.isIntN(a)||(a=b.valueOf(a));return b.multiply(this,a)};b.divide=function(a,d){if(d.isZero())throw Error("division by zero");for(var c=a.isNegative()!==d.isNegative(),e=a.unsigned?b.UZERO:b.ZERO,f=a.absolute(),g=d.absolute(),k=b.UONE,h=b.MIN_VALUE.toUnsigned();k.lessThan(h)&& | ||
| g.lessThan(f);)g=g.shiftLeft(1),k=k.shiftLeft(1);for(;k.greaterThanEqual(b.UONE);)g.lessThanEqual(f)&&(e=b.add(e,k),f=b.add(f,g.negate())),g=g.shiftRight(1,!0),k=k.shiftRight(1,!0);return{quotient:c?e.negate():e,remainder:f}};b.prototype.divide=function(a){b.isIntN(a)||(a=b.valueOf(a));return b.divide(this,a).quotient};b.prototype.modulo=function(a){b.isIntN(a)||(a=b.valueOf(a));return b.divide(this,a).remainder};b.prototype.toDebug=function(a){for(var b=n,c,e="";0<=b;--b){for(c=this.bytes[b].toString(2);8> | ||
| c.length;)c="0"+c;e+=c;a&&0<b&&(e+=" ")}this.unsigned&&(e+=a?" U":"U");return e};var v=b.fromInt(2),w=b.fromInt(36);b.fromString=function(a,d,c){"number"===typeof d&&(c=d,d=!1);a=(a+"").toLowerCase();c=c||10;if(2>c||36<c)throw RangeError("radix out of range: "+c+" (2-36)");if("-"===a.charAt(0))return b.fromString(a.substring(1),d,c).negate();"+"===a.charAt(0)&&(a=a.substring(1));if("0"===a||"NaN"===a||"Infinity"===a)return d?b.UZERO:b.ZERO;d=d?b.UZERO:b.ZERO;for(var e=2===c?function(a){return 1<< | ||
| a}:Math.pow.bind(Math,c),f=0,g=a.length,k,h;f<g;++f){k=a.charAt(g-f-1);h="0123456789abcdefghijklmnopqrstuvwxyz".indexOf(k);if(0>h||h>c)throw Error("illegal interior character: "+k);d=b.add(d,b.multiply(b.fromInt(h),b.fromInt(e(f))))}return d};b.prototype.toString=function(a){a=a||10;b.isIntN(a)||(a=b.valueOf(a));if(a.lessThan(v)||a.greaterThan(w))throw RangeError("radix out of range: "+a.toInt()+" (2-36)");var d=this.unsigned?b.UZERO:b.ZERO;if(this.isNegative()){if(this.equals(b.MIN_VALUE)){var d= | ||
| b.divide(this,a).quotient,c=b.add(b.multiply(d,a),this.negate());return d.toString(a)+c.toInt().toString(a.toInt())}return"-"+this.negate().toString(a)}var c=this,e=[],f;do f=b.divide(c,a).remainder,e.unshift("0123456789abcdefghijklmnopqrstuvwxyz".charAt(f.toInt())),c=b.divide(c,a).quotient;while(!c.equals(d));return e.join("")};b["isInt"+l]=b.isIntN;for(var p in r)if(r.hasOwnProperty(p)){for(h=0;h<r[p].length;++h)b[p]&&(b[r[p][h]]=b[p]);for(h=0;h<r[p].length;++h)b.prototype[p]&&(b.prototype[r[p][h]]= | ||
| b.prototype[p])}return q[l]=b}}();"undefined"!==typeof module&&module.exports?module.exports=q:"function"===typeof define&&define.amd?define(function(){return q}):(t.dcodeIO=t.dcodeIO||{}).IntN=q})(this); | ||
| (function(t){var r=function(){function r(k){function b(a,b){this.bytes=Array(f);for(var c=0,e=Math.min(f,a.length);c<e;++c)this.bytes[c]=a[c]&255;for(;c<f;++c)this.bytes[c]=0;this.unsigned=!!b}if(0>=k||0!==k%8)throw Error("illegal number of bits: "+k+" (not a positive multiple of 8)");if(u[k])return u[k];for(var f=k/8|0,n=f-1,s=Array(f),h=0;h<f;++h)s[h]=0;for(var v=Array(f),h=0;h<f;++h)v[h]=255;b.BITS=k|0;b.BYTES=f;b.isIntN=function(a){return!0===(a&&Array.isArray(a.bytes)&&a.bytes.length===f&&"boolean"=== | ||
| typeof a.unsigned)};b.valueOf=function(a){return"number"===typeof a?b.fromNumber(a):"string"===typeof a?b.fromString(a):a&&a instanceof b&&a.bytes.length===f?a:a&&"number"===typeof a.b&&"number"===typeof a.a&&"boolean"===typeof a.unsigned?b.fromInts([a.b,a.a],a.unsigned):new b(a.bytes,a.unsigned)};b.prototype.cast=function(a,b){b="boolean"===typeof b?b:this.unsigned;var c=this.isNegative(),e=c?this.not():this,e=new a(e.bytes,b);return c?e.not():e};b.ZERO=new b([],!1);b.UZERO=new b([],!0);b.ONE=new b([1], | ||
| !1);b.UONE=new b([1],!0);b.MIN_VALUE=new b(s.slice(0,f));b.MIN_VALUE.bytes[n]|=128;b.MAX_VALUE=new b(v.slice(0,f));b.MAX_VALUE.bytes[n]&=127;b.MAX_UNSIGNED_VALUE=new b(v.slice(0,f),!0);b.prototype.isSigned=function(){return!this.unsigned};b.prototype.isUnsigned=function(){return this.unsigned};b.prototype.toSigned=function(){return this.unsigned?new b(this.bytes,!1):this};b.prototype.toUnsigned=function(){return this.unsigned?this:new b(this.bytes,!0)};b.prototype.isNegative=function(){return!this.unsigned&& | ||
| 128===(this.bytes[n]&128)};b.prototype.isPositive=function(){return this.unsigned||0===(this.bytes[n]&128)};b.prototype.isEven=function(){return 0===(this.bytes[0]&1)};b.prototype.isOdd=function(){return 1===(this.bytes[0]&1)};b.prototype.isZero=function(){for(var a=0;a<f;++a)if(0!==this.bytes[a])return!1;return!0};b.prototype.compare=function(a){b.isIntN(a)||(a=b.valueOf(a));var d=this.isNegative();if(d!==a.isNegative())return d?-1:1;for(d=n;0<=d;--d){if(this.bytes[d]<a.bytes[d])return-1;if(this.bytes[d]> | ||
| a.bytes[d])return 1}return 0};b.prototype.equals=function(a){return 0===this.compare(a)};b.prototype.notEquals=function(a){return 0!==this.compare(a)};b.prototype.lessThan=function(a){return-1===this.compare(a)};b.prototype.lessThanEqual=function(a){return 0>=this.compare(a)};b.prototype.greaterThan=function(a){return 1===this.compare(a)};b.prototype.greaterThanEqual=function(a){return 0<=this.compare(a)};b.fromInt=function(a,d){a|=0;var c;if(0>a)return-2147483648===a?b.MIN_VALUE:c=b.fromInt(-a,d).negate(); | ||
| c=s.slice(0,f);for(var e=0;e<f&&0!==a;++e)c[e]=a&255,a>>>=8;return c=new b(c,d)};b.prototype.toInt=function(a){a="boolean"===typeof a?a:this.unsigned;for(var b=this.isNegative(),c=b?this.not():this,e=0,g=Math.min(4,c.bytes.length),f=0;e<g;++e)f|=c.bytes[e]<<8*e;b&&(f=~f);return a?f>>>0:f};b.fromInts=function(a,d){for(var c=b.ZERO,e=0,g=Math.min(a.length,Math.ceil(f/4)),m;e<g;++e)m=a[e],c=c.or((new b([m&255,m>>>8&255,m>>>16&255,m>>>24&255])).shiftLeft(32*e));return d?c.toUnsigned():c};b.prototype.toInts= | ||
| function(){for(var a=Math.ceil(f/4),b=Array(a),c=0,e=0,g;c<a;e=4*++c){for(var m=g=0,l=Math.min(4,f-e);m<l;++m)g|=this.bytes[e+m]<<8*m;b[c]=g}return b};b.fromNumber=function(a,d){if("number"!==typeof a)throw TypeError("illegal arguments: "+typeof a);if(a!==a||!isFinite(a)||0===a)return d?b.UZERO:b.ZERO;if(0>a)return b.fromNumber(-a,d).negate();for(var c=0,e=Array(f);c<f;++c)e[c]=a%256&255,a=Math.floor(a/256);return new b(e,d)};b.prototype.toNumber=function(){if(this.isNegative())return this.equals(b.MIN_VALUE)? | ||
| -2147483648:-this.negate().toNumber();for(var a=0,d=0,c=Math.min(f,7);a<c;++a)d+=this.bytes[a]*t[a];return d};b.prototype.not=function(){for(var a=0,d=Array(f);a<f;++a)d[a]=~this.bytes[a];return new b(d,this.unsigned)};b.prototype.and=function(a){b.isIntN(a)||(a=b.valueOf(a));for(var d=0,c=Array(f);d<f;++d)c[d]=this.bytes[d]&a.bytes[d];return new b(c,this.unsigned)};b.prototype.or=function(a){b.isIntN(a)||(a=b.valueOf(a));for(var d=0,c=Array(f);d<f;++d)c[d]=this.bytes[d]|a.bytes[d];return new b(c, | ||
| this.unsigned)};b.prototype.xor=function(a){b.isIntN(a)||(a=b.valueOf(a));for(var d=0,c=Array(f);d<f;++d)c[d]=this.bytes[d]^a.bytes[d];return new b(c,this.unsigned)};b.prototype.shiftLeft=function(a){b.isIntN(a)&&(a=a.toInt());a%=k;if(0===a)return this;0>a&&(a+=k);var d=a/8|0;a%=8;for(var c=0,e=s.slice(0,f),g;c<f&&!((g=c+d)>=f);++c)e[g]|=this.bytes[c]<<a&255,++g<f&&(e[g]|=this.bytes[c]<<a>>>8&255);return new b(e,this.unsigned)};b.prototype.shiftRight=function(a,d){b.isIntN(a)&&(a=a.toInt());a%=k; | ||
| if(0===a)return this;0>a&&(a+=k);var c=a/8|0;a%=8;var e=s.slice(0,f),g;if(!d&&128===(this.bytes[n]&128)){var m;g=f-1;for(m=f-c-1;g>=m;--g)e[g]=255;e[++g]=e[g]<<7-a&255}var l;for(g=0;g<f;++g)0<=(l=g-c)&&(e[l]|=this.bytes[g]>>>a&255),0<=--l&&(e[l]|=this.bytes[g]<<8>>>a&255);return new b(e,this.unsigned)};b.prototype.shiftRightUnsigned=function(a){return this.shiftRight(a,!0)};b.add=function(a,b){for(var c=a.and(b),e=a.xor(b),g;!c.isZero();)g=c.shiftLeft(1),c=e.and(g),e=e.xor(g);return e};b.prototype.add= | ||
| function(a){b.isIntN(a)||(a=b.valueOf(a));return b.add(this,a)};b.prototype.negate=function(){return b.add(this.not(),b.ONE)};b.NEG_ONE=b.ONE.negate();b.prototype.subtract=function(a){b.isIntN(a)||(a=b.valueOf(a));return b.add(this,a.negate())};b.prototype.absolute=function(){return this.unsigned?this:(this.isNegative()?this.negate():this).toUnsigned()};b.multiply=function(a,d){var c=a.isNegative()!==d.isNegative(),e=a.unsigned?b.UZERO:b.ZERO;a=a.absolute();for(d=d.absolute();!d.isZero();a=a.shiftLeft(1), | ||
| d=d.shiftRight(1,!0))1===(d.bytes[0]&1)&&(e=b.add(e,a));return c?e.negate():e};b.prototype.multiply=function(a){b.isIntN(a)||(a=b.valueOf(a));return b.multiply(this,a)};b.divide=function(a,d){if(d.isZero())throw Error("division by zero");a.unsigned&&(d=d.toUnsigned());if(a.unsigned&&a.greaterThan(b.MAX_VALUE)){var c=r(k+8),c=c.divide(a.cast(c),d.cast(c));return{quotient:c.quotient.cast(b),remainder:c.remainder.cast(b)}}for(var c=a.isNegative()!==d.isNegative(),e=b.UZERO,g=a.absolute(),f=d.absolute(), | ||
| l=b.UONE,h=1;h<k&&f.lessThan(g);)f=f.shiftLeft(1),++h;for(l=l.shiftLeft(h-1);l.greaterThanEqual(b.UONE);)f.lessThanEqual(g)&&(e=b.add(e,l),g=b.add(g,f.negate())),f=f.shiftRight(1,!0),l=l.shiftRight(1,!0);a.unsigned||(e=e.toSigned(),g=g.toSigned());c&&(e=e.negate());if(a.isNegative()||e.isNegative()!==d.isNegative()&&!e.isZero())g=g.negate();return{quotient:e,remainder:g}};b.prototype.divide=function(a){b.isIntN(a)||(a=b.valueOf(a));return b.divide(this,a).quotient};b.prototype.modulo=function(a){b.isIntN(a)|| | ||
| (a=b.valueOf(a));return b.divide(this,a).remainder};b.prototype.toDebug=function(a){for(var b=n,c,e="";0<=b;--b){for(c=this.bytes[b].toString(2);8>c.length;)c="0"+c;e+=c;a&&0<b&&(e+=" ")}this.unsigned&&(e+=a?" U":"U");return e};var w=b.fromInt(2),x=b.fromInt(36);b.fromString=function(a,d,c){"number"===typeof d&&(c=d,d=!1);a=(a+"").toLowerCase();c=c||10;if(2>c||36<c)throw RangeError("radix out of range: "+c+" (2-36)");if("-"===a.charAt(0))return b.fromString(a.substring(1),d,c).negate();"+"===a.charAt(0)&& | ||
| (a=a.substring(1));if("0"===a||"NaN"===a||"Infinity"===a)return d?b.UZERO:b.ZERO;d=d?b.UZERO:b.ZERO;for(var e=2===c?function(a){return 1<<a}:Math.pow.bind(Math,c),f=0,h=a.length,l,k;f<h;++f){l=a.charAt(h-f-1);k="0123456789abcdefghijklmnopqrstuvwxyz".indexOf(l);if(0>k||k>c)throw Error("illegal interior character: "+l);d=b.add(d,b.multiply(b.fromInt(k),b.fromInt(e(f))))}return d};b.prototype.toString=function(a){a=a||10;b.isIntN(a)||(a=b.valueOf(a));if(a.lessThan(w)||a.greaterThan(x))throw RangeError("radix out of range: "+ | ||
| a.toInt()+" (2-36)");var d=this.unsigned?b.UZERO:b.ZERO;if(this.isNegative()){if(this.equals(b.MIN_VALUE)){var d=b.divide(this,a).quotient,c=b.add(b.multiply(d,a),this.negate());return d.toString(a)+c.toInt().toString(a.toInt())}return"-"+this.negate().toString(a)}var c=this,e=[],f;do f=b.divide(c,a),e.unshift("0123456789abcdefghijklmnopqrstuvwxyz".charAt(f.remainder.toInt())),c=b.divide(c,a).quotient;while(!c.equals(d));return e.join("")};b["isInt"+k]=b.isIntN;for(var p in q)if(q.hasOwnProperty(p)){for(h= | ||
| 0;h<q[p].length;++h)b[p]&&(b[q[p][h]]=b[p]);for(h=0;h<q[p].length;++h)b.prototype[p]&&(b.prototype[q[p][h]]=b.prototype[p])}return u[k]=b}var u={},t=[1,256,65536,16777216,4294967296,1099511627776,281474976710656],q={compare:["comp"],equals:["eq","equal","=="],notEquals:["ne","notEqual","!="],lessThan:["lt","less","lesser","<"],lessThanEqual:["lte","lessThanOrEqual","<="],greaterThan:["gt","greater",">"],greaterThanEqual:["gte","greaterThanOrEqual",">="],not:["~"],and:["&"],or:["|"],xor:["^"],shiftLeft:["lsh", | ||
| "leftShift","<<"],shiftRight:["rsh","rightShift",">>"],shiftRightUnsigned:["rshu","rightShiftUnsigned",">>>"],add:["plus","+"],negate:["neg","!"],subtract:["sub","minus","-"],absolute:["abs","||"],multiply:["mult","*"],divide:["div","/"],modulo:["mod","%"]};return r}();"undefined"!==typeof module&&module.exports?module.exports=r:"function"===typeof define&&define.amd?define(function(){return r}):(t.dcodeIO=t.dcodeIO||{}).IntN=r})(this); |
@@ -5,5 +5,5 @@ { | ||
| "lineCount":23, | ||
| "mappings":"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", | ||
| "mappings":"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", | ||
| "sources":["dist/IntN.js"], | ||
| "names":["global","IntN","classes","double_256_pwr","aliases","makeIntN","nBits","bytes","unsigned","Array","nBytes","i","k","length","Error","maxIndex","zeroes","ones","BITS","BYTES","isIntN","IntN.isIntN","obj","isArray","valueOf","IntN.valueOf","val","fromNumber","fromString","low","high","fromInts","prototype","cast","IntN.prototype.cast","TargetIntN","retainMsb","isNegative","not","ZERO","UZERO","ONE","UONE","MIN_VALUE","slice","MAX_VALUE","MAX_UNSIGNED_VALUE","isSigned","IntN.prototype.isSigned","isUnsigned","IntN.prototype.isUnsigned","toSigned","IntN.prototype.toSigned","toUnsigned","IntN.prototype.toUnsigned","IntN.prototype.isNegative","isPositive","IntN.prototype.isPositive","isEven","IntN.prototype.isEven","isOdd","IntN.prototype.isOdd","isZero","IntN.prototype.isZero","compare","IntN.prototype.compare","other","equals","IntN.prototype.equals","notEquals","IntN.prototype.notEquals","lessThan","IntN.prototype.lessThan","lessThanEqual","IntN.prototype.lessThanEqual","greaterThan","IntN.prototype.greaterThan","greaterThanEqual","IntN.prototype.greaterThanEqual","fromInt","IntN.fromInt","value","int32_min_value","negate","toInt","IntN.prototype.toInt","result","Math","min","IntN.fromInts","ints","ceil","or","shiftLeft","toInts","IntN.prototype.toInts","numChunks","arr","offset","j","l","IntN.fromNumber","TypeError","isFinite","floor","toNumber","IntN.prototype.toNumber","IntN.prototype.not","and","IntN.prototype.and","IntN.prototype.or","xor","IntN.prototype.xor","IntN.prototype.shiftLeft","numBits","numBytes","idx","shiftRight","IntN.prototype.shiftRight","logical","shiftRightUnsigned","IntN.prototype.shiftRightUnsigned","add","IntN.add","a","b","carry","carryPwr2","IntN.prototype.add","IntN.prototype.negate","NEG_ONE","subtract","IntN.prototype.subtract","absolute","IntN.prototype.absolute","multiply","IntN.multiply","IntN.prototype.multiply","divide","IntN.divide","dividend","divisor","quotient","remainder","product","term","maxTerm","IntN.prototype.divide","modulo","IntN.prototype.modulo","toDebug","IntN.prototype.toDebug","spaces","byt","out","toString","IntN_2","IntN_36","IntN.fromString","radix","toLowerCase","RangeError","charAt","substring","radixToPower","pow","bind","ch","chars","indexOf","IntN.prototype.toString","zero","div","rem","digits","mod","unshift","join","key","hasOwnProperty","module","define"] | ||
| "names":["global","IntN","makeIntN","nBits","bytes","unsigned","Array","nBytes","i","k","Math","min","length","Error","classes","maxIndex","zeroes","ones","BITS","BYTES","isIntN","IntN.isIntN","obj","isArray","valueOf","IntN.valueOf","val","fromNumber","fromString","low","high","fromInts","prototype","cast","IntN.prototype.cast","TargetIntN","retainMsb","isNegative","not","ZERO","UZERO","ONE","UONE","MIN_VALUE","slice","MAX_VALUE","MAX_UNSIGNED_VALUE","isSigned","IntN.prototype.isSigned","isUnsigned","IntN.prototype.isUnsigned","toSigned","IntN.prototype.toSigned","toUnsigned","IntN.prototype.toUnsigned","IntN.prototype.isNegative","isPositive","IntN.prototype.isPositive","isEven","IntN.prototype.isEven","isOdd","IntN.prototype.isOdd","isZero","IntN.prototype.isZero","compare","IntN.prototype.compare","other","equals","IntN.prototype.equals","notEquals","IntN.prototype.notEquals","lessThan","IntN.prototype.lessThan","lessThanEqual","IntN.prototype.lessThanEqual","greaterThan","IntN.prototype.greaterThan","greaterThanEqual","IntN.prototype.greaterThanEqual","fromInt","IntN.fromInt","value","int32_min_value","negate","toInt","IntN.prototype.toInt","result","IntN.fromInts","ints","ceil","or","shiftLeft","toInts","IntN.prototype.toInts","numInts","arr","offset","j","l","IntN.fromNumber","TypeError","isFinite","floor","toNumber","IntN.prototype.toNumber","double_256_pwr","IntN.prototype.not","and","IntN.prototype.and","IntN.prototype.or","xor","IntN.prototype.xor","IntN.prototype.shiftLeft","numBits","numBytes","idx","shiftRight","IntN.prototype.shiftRight","logical","shiftRightUnsigned","IntN.prototype.shiftRightUnsigned","add","IntN.add","a","b","carry","carryPwr2","IntN.prototype.add","IntN.prototype.negate","NEG_ONE","subtract","IntN.prototype.subtract","absolute","IntN.prototype.absolute","multiply","IntN.multiply","IntN.prototype.multiply","divide","IntN.divide","dividend","divisor","IntM","divmod","quotient","remainder","product","term","termMsb","IntN.prototype.divide","modulo","IntN.prototype.modulo","toDebug","IntN.prototype.toDebug","spaces","byt","out","toString","IntN_2","IntN_36","IntN.fromString","radix","toLowerCase","RangeError","charAt","substring","radixToPower","pow","bind","ch","chars","indexOf","IntN.prototype.toString","zero","div","rem","digits","unshift","join","key","aliases","hasOwnProperty","module","define"] | ||
| } |
+1
-1
| { | ||
| "name": "intn", | ||
| "version": "0.10.0", | ||
| "version": "0.11.0", | ||
| "author": "Daniel Wirtz <dcode@dcode.io>", | ||
@@ -5,0 +5,0 @@ "description": "A library for representing and working with arbitrary byte size two's complement integers, signed and unsigned.", |
+44
-18
@@ -67,3 +67,3 @@ var IntN = (function() { | ||
| for (var i=0, k=bytes.length; i<k; ++i) | ||
| for (var i=0, k=Math.min(nBytes, bytes.length); i<k; ++i) | ||
| this.bytes[i] = bytes[i] & 0xff; | ||
@@ -415,3 +415,3 @@ for (; i<nBytes; ++i) | ||
| val = retainMsb ? this.not() : this; | ||
| for (var i=0, result=0; i<Math.min(4, val.bytes.length); ++i) | ||
| for (var i=0, k=Math.min(4, val.bytes.length), result=0; i<k; ++i) | ||
| result |= val.bytes[i] << (i*8); | ||
@@ -449,5 +449,5 @@ if (retainMsb) | ||
| IntN.prototype.toInts = function() { | ||
| var numChunks = Math.ceil(nBytes/4), | ||
| arr = new Array(numChunks); | ||
| for (var i=0, offset=0, val; i<numChunks; offset=++i*4) { | ||
| var numInts = Math.ceil(nBytes/4), | ||
| arr = new Array(numInts); | ||
| for (var i=0, offset=0, val; i<numInts; offset=++i*4) { | ||
| val = 0; | ||
@@ -464,6 +464,10 @@ for (var j=0, l=Math.min(4, nBytes-offset); j<l; ++j) | ||
| /** | ||
| * Constructs an IntN from a number (double, 52 bit mantissa) value. | ||
| * Constructs an IntN from a number (double, 52 bit mantissa) value. This differs from {@link IntN.fromInt} in | ||
| * using arithmetic operations on numbers instead of logical operations on 32 bit integers, which works | ||
| * reliably up to a maximum positive or negative value of 2^53-1. | ||
| * @param {number} value Number value | ||
| * @param {boolean=} unsigned Whether unsigned or not, defaults `false` for signed | ||
| * @returns {!IntN} | ||
| * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MIN_SAFE_INTEGER | ||
| * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER | ||
| * @expose | ||
@@ -486,4 +490,8 @@ */ | ||
| /** | ||
| * Converts this IntN to a number (double, 52 bit mantissa) value. | ||
| * Converts this IntN to a number (double, 52 bit mantissa) value. This differs from {@link IntN#toInt} in using | ||
| * arithmetic operations on numbers instead of logical operations on 32 bit integers, which works reliably up | ||
| * to a maximum positive or negative value of 2^53-1. A maximum of 56 bits is evaluated. | ||
| * @returns {number} | ||
| * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MIN_SAFE_INTEGER | ||
| * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER | ||
| * @expose | ||
@@ -741,12 +749,23 @@ */ | ||
| throw Error("division by zero"); | ||
| // See comment in #add above | ||
| if (dividend.unsigned) | ||
| divisor = divisor.toUnsigned(); | ||
| if (dividend.unsigned && dividend.greaterThan(IntN.MAX_VALUE)) { | ||
| // Ensure correct results for large unsigned values. TODO: Is there a better way? | ||
| var IntM = makeIntN(nBits+8), // constructed when requested, then reused | ||
| divmod = IntM.divide(dividend.cast(IntM), divisor.cast(IntM)); | ||
| return { | ||
| "quotient": divmod['quotient'].cast(IntN), | ||
| "remainder": divmod['remainder'].cast(IntN) | ||
| }; | ||
| } | ||
| var isNegative = dividend.isNegative() !== divisor.isNegative(), | ||
| quotient = dividend.unsigned ? IntN.UZERO : IntN.ZERO, | ||
| quotient = IntN.UZERO, | ||
| remainder = dividend.absolute(), | ||
| product = divisor.absolute(), | ||
| term = IntN.UONE, | ||
| maxTerm = IntN.MIN_VALUE.toUnsigned(); | ||
| while (term.lessThan(maxTerm) && product.lessThan(remainder)) | ||
| termMsb = 1; | ||
| while (termMsb < nBits && product.lessThan(remainder)) | ||
| product = product.shiftLeft(1), | ||
| term = term.shiftLeft(1); | ||
| ++termMsb; | ||
| term = term.shiftLeft(termMsb-1); | ||
| while (term.greaterThanEqual(IntN.UONE)) { | ||
@@ -759,4 +778,11 @@ if (product.lessThanEqual(remainder)) | ||
| } | ||
| if (!dividend.unsigned) | ||
| quotient = quotient.toSigned(), | ||
| remainder = remainder.toSigned(); | ||
| if (isNegative) | ||
| quotient = quotient.negate(); | ||
| if (dividend.isNegative() || (quotient.isNegative() !== divisor.isNegative() && !quotient.isZero())) | ||
| remainder = remainder.negate(); // remainder = dividend - quotient*divisor | ||
| return { | ||
| "quotient": isNegative ? quotient.negate() : quotient, | ||
| "quotient": quotient, | ||
| "remainder": remainder | ||
@@ -894,8 +920,8 @@ }; | ||
| digits = [], | ||
| mod; | ||
| do | ||
| mod = IntN.divide(result, radix)['remainder'], | ||
| digits.unshift(chars.charAt(mod.toInt())), | ||
| divmod; | ||
| do { | ||
| divmod = IntN.divide(result, radix); | ||
| digits.unshift(chars.charAt(divmod['remainder'].toInt())); | ||
| result = IntN.divide(result, radix)['quotient']; | ||
| while (!result.equals(zero)); | ||
| } while (!result.equals(zero)); | ||
| return digits.join(''); | ||
@@ -902,0 +928,0 @@ }; |
+48
-5
@@ -36,3 +36,3 @@ var IntN = require("../dist/IntN.min.js"), | ||
| defaultValues = [0, 1, -1, 10, 100, 255, 256, -255, imin, imax], | ||
| defaultRadix = [2, 8, 10, 16, 36]; | ||
| defaultRadix = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]; | ||
@@ -102,4 +102,4 @@ for (var i=0; i<1000; ++i) | ||
| case 'modulo': | ||
| res = c[0] % c[1]; | ||
| rev = c[1] % c[0]; | ||
| res = c[1] === 0 ? null : (c[0] % c[1])|0; | ||
| rev = c[0] === 0 ? null : (c[1] % c[0])|0; | ||
| break; | ||
@@ -381,2 +381,7 @@ case 'not': | ||
| }); | ||
| // If not handled properly, this would result in an infinite loop: | ||
| test.strictEqual(Int32.UZERO.toString(10), "0"); | ||
| test.strictEqual(Int32.UONE.toString(10), "1"); | ||
| test.strictEqual(Int32.MAX_UNSIGNED_VALUE.toString(10), "4294967295"); | ||
| test.strictEqual(Int32.MAX_UNSIGNED_VALUE.subtract(1).toString(10), "4294967294"); | ||
| test.done(); | ||
@@ -530,2 +535,3 @@ } | ||
| test.strictEqual(Int32.MAX_VALUE.negate().toDebug(true), "10000000 00000000 00000000 00000001"); | ||
| test.strictEqual(Int32.MAX_UNSIGNED_VALUE.negate().toDebug(true), "00000000 00000000 00000000 00000001 U"); | ||
@@ -633,5 +639,10 @@ runCases("negate", test); | ||
| test.strictEqual(Int32.MAX_VALUE.multiply(Int32.MAX_VALUE).toInt(), 1); | ||
| // Unsigned edge cases | ||
| test.strictEqual(Int32.MAX_UNSIGNED_VALUE.multiply(Int32.ZERO).toInt(), 0); | ||
| test.strictEqual(Int32.MAX_UNSIGNED_VALUE.multiply(Int32.ONE).toInt(), 4294967295); | ||
| test.strictEqual(Int32.MAX_UNSIGNED_VALUE.multiply(Int32.MAX_VALUE).toInt(), 2147483649); | ||
| test.strictEqual(Int32.MAX_UNSIGNED_VALUE.multiply(Int32.MIN_VALUE).toInt(), 2147483648); | ||
| test.strictEqual(Int32.MAX_UNSIGNED_VALUE.multiply(Int32.MAX_UNSIGNED_VALUE).toInt(), 1); | ||
| // Multiplicating large 32 bit integers may exceed the integer precision of JS doubles (53 bit), so: | ||
| var cases = defaultCases.filter(function(c) { | ||
| return (c[0] & 0xfffff) === c[0] || (c[1] & 0xfffff) === c[1]; // One value must be max. 20 bit (32+20=52) | ||
| var cases = defaultCases.filter(function(c) { return (c[0] & 0xfffff) === c[0] || (c[1] & 0xfffff) === c[1]; // One value must be max. 20 bit (32+20=52) | ||
| }); | ||
@@ -647,3 +658,35 @@ for (var i=0; i<500; ++i) | ||
| runCases("divide", test); | ||
| // Unsigned | ||
| var val = Int32.fromInt(0xfeffffff, true); | ||
| test.strictEqual(val.divide(Int32.ONE).toInt(), 4278190079); | ||
| test.strictEqual(val.divide(Int32.NEG_ONE).toInt(), 0); | ||
| test.strictEqual(val.divide(Int32.MAX_UNSIGNED_VALUE).toInt(), 0); | ||
| test.strictEqual(val.divide(Int32.MAX_VALUE).toInt(), 1); | ||
| test.strictEqual(val.divide(Int32.MIN_VALUE).toInt(), 1); | ||
| // Unsigned edge cases | ||
| test.strictEqual(Int32.MAX_UNSIGNED_VALUE.divide(Int32.ONE).toInt(), iumax); | ||
| test.strictEqual(Int32.MAX_UNSIGNED_VALUE.divide(Int32.NEG_ONE).toInt(), 1); | ||
| test.strictEqual(Int32.MAX_UNSIGNED_VALUE.divide(Int32.MAX_UNSIGNED_VALUE).toInt(), 1); | ||
| test.strictEqual(Int32.MAX_UNSIGNED_VALUE.divide(Int32.MAX_VALUE).toInt(), 2); | ||
| test.strictEqual(Int32.MAX_UNSIGNED_VALUE.divide(Int32.MIN_VALUE).toInt(), 1); | ||
| test.done(); | ||
| }, | ||
| "modulo": function(test) { | ||
| test.strictEqual(Int32.prototype.mod, Int32.prototype.modulo); | ||
| runCases("modulo", test); | ||
| // Unsigned | ||
| var val = Int32.fromInt(0xfeffffff, true); | ||
| test.strictEqual(val.modulo(Int32.ONE).toInt(), 0); | ||
| test.strictEqual(val.modulo(Int32.NEG_ONE).toInt(), 4278190079); | ||
| test.strictEqual(val.modulo(Int32.MAX_UNSIGNED_VALUE).toInt(), 4278190079); | ||
| test.strictEqual(val.modulo(Int32.MAX_VALUE).toInt(), 2130706432); | ||
| test.strictEqual(val.modulo(Int32.MIN_VALUE).toInt(), 2130706431); | ||
| // Unsigned edge cases | ||
| test.strictEqual(Int32.MAX_UNSIGNED_VALUE.modulo(Int32.ONE).toInt(), 0); | ||
| test.strictEqual(Int32.MAX_UNSIGNED_VALUE.modulo(Int32.NEG_ONE).toInt(), 0); | ||
| test.strictEqual(Int32.MAX_UNSIGNED_VALUE.modulo(Int32.MAX_UNSIGNED_VALUE).toInt(), 0); | ||
| test.strictEqual(Int32.MAX_UNSIGNED_VALUE.modulo(Int32.MAX_VALUE).toInt(), 1); | ||
| test.strictEqual(Int32.MAX_UNSIGNED_VALUE.modulo(Int32.MIN_VALUE).toInt(), 2147483647); | ||
| test.done(); | ||
| } | ||
@@ -650,0 +693,0 @@ } |
Sorry, the diff of this file is not supported yet
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
237538
4.56%3521
3.59%7
16.67%