UNPKG

big-numbers

Version:

JavaScript BugNumbers arithmetic library

1 lines 22 kB
(function e(r,t){if(typeof exports==="object"&&typeof module==="object")module.exports=t();else if(typeof define==="function"&&define.amd)define([],t);else if(typeof exports==="object")exports["BigNumbers"]=t();else r["BigNumbers"]=t()})(global,function(){return function(e){var r={};function t(i){if(r[i]){return r[i].exports}var n=r[i]={i:i,l:false,exports:{}};e[i].call(n.exports,n,n.exports,t);n.l=true;return n.exports}t.m=e;t.c=r;t.d=function(e,r,i){if(!t.o(e,r)){Object.defineProperty(e,r,{enumerable:true,get:i})}};t.r=function(e){if(typeof Symbol!=="undefined"&&Symbol.toStringTag){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}Object.defineProperty(e,"__esModule",{value:true})};t.t=function(e,r){if(r&1)e=t(e);if(r&8)return e;if(r&4&&typeof e==="object"&&e&&e.__esModule)return e;var i=Object.create(null);t.r(i);Object.defineProperty(i,"default",{enumerable:true,value:e});if(r&2&&typeof e!="string")for(var n in e)t.d(i,n,function(r){return e[r]}.bind(null,n));return i};t.n=function(e){var r=e&&e.__esModule?function r(){return e["default"]}:function r(){return e};t.d(r,"a",r);return r};t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)};t.p="";return t(t.s=12)}([function(e,r,t){"use strict";e.exports={POSITIVE:1,NEGATIVE:-1,PLUS:"+",MINUS:"-",ROUNDING_MODE_UP:1,ROUNDING_MODE_DOWN:2,ROUNDING_MODE_CEIL:3,ROUNDING_MODE_FLOOR:4,ROUNDING_MODE_HALF_UP:5,ROUNDING_MODE_HALF_DOWN:6,ROUNDING_MODE_HALF_EVEN:7,DEFAULT_ROUNDING_MODE:5,DEFAULT_PRECISION:20}},function(e,r,t){"use strict";var i=t(0);var n=t(3);var a=t(2);var o=t(9);e.exports=function(e,r,s,f,l){o.validateSign(e);o.validateValue(r);o.validateScale(s);o.validatePrecision(f);o.validateRoundingMode(l);r=r.slice();var v=t(11);var g=t(7);var c=t(6);var d=s;while(d<0){r.unshift(0);d++}var h=0;for(var O=r.length-1;O>0;O--){if(r[O]!==0){break}h++}if(h>0){r=r.slice(0,r.length-h)}if(d>f){var I=a.getRoundingLeftOver(e,r,d,f,l);r=r.slice(d-f);d=f;if(I>0){var p=I;for(var O=0;O<r.length&&p>0;O++){var D=r[O];var m=D+p;if(m>=10){p=1;m=m-10}else{p=0}r[O]=m}if(p>0){r.push(p)}}}var N=0;for(var O=0;O<r.length-1&&O<d;O++){if(r[O]!==0){break}N++}if(N>0){r=r.slice(N);d=d-N}var S=e;var E=r;var P=d;var _=f;var w=l;this.getSign=function(){return S};this.getValue=function(){return E};this.getScale=function(){return P};this.getPrecision=function(){return _};this.getRoundingMode=function(){return w};this.add=function(e,r,t){u(r,t);var i=r?r:_;var n=t?t:w;return v.add(this,e,i,n)};this.subtract=function(e,r,t){u(r,t);var i=r?r:_;var n=t?t:w;return v.subtract(this,e,i,n)};this.multiply=function(e,r,t){u(r,t);var i=r?r:_;var n=t?t:w;return v.multiply(this,e,i,n)};this.divide=function(e,r,t){u(r,t);var i=r?r:_;var n=t?t:w;return v.divide(this,e,i,n)};this.mod=function(e){};this.abs=function(){return v.abs(this)};this.invert=function(){return v.invert(this)};this.shift=function(e,r,t){u(r,t);var i=r?r:_;var n=t?t:w;return v.shift(this,e,i,n)};this.compareTo=function(e){return n.compare(this,e)};this.equals=function(e){return n.compare(this,e)==0};this.greaterThan=function(e){return n.compare(this,e)>0};this.lessThan=function(e){return n.compare(this,e)<0};this.greaterOrEquals=function(e){return n.compare(this,e)>=0};this.lessOrEquals=function(e){return n.compare(this,e)<=0};this.isZero=function(){return n.isZero(this)};this.isPositive=function(){return S===i.POSITIVE};this.isNegative=function(){return S===i.NEGATIVE};this.isInteger=function(){return s<=0};this.toInteger=function(){return v.integerValue(this)};this.toPrecision=function(e,r){o.validatePrecision(e);if(r){o.validateRoundingMode(r)}var t=r?r:this.getRoundingMode();return v.toPrecision(this,e,t)};this.withRoundingMode=function(e){o.validateRoundingMode(e);return v.withRoundingMode(this,e)};this.exp=function(e,r){u(e,r);var t=e?e:_;var i=r?r:w;return g.exp(this,t,i)};this.log=function(e,r){u(e,r);var t=e?e:_;var i=r?r:w;return g.log(this,t,i)};this.lg=function(e,r){u(e,r);var t=e?e:_;var i=r?r:w;return g.lg(this,t,i)};this.pow=function(e,r,t){u(r,t);var i=r?r:_;var n=t?t:w;return g.pow(this,e,i,n)};this.sqrt=function(e,r){u(e,r);var t=e?e:_;var i=r?r:w;return g.sqrt(power,t,i)};this.cos=function(e,r){u(e,r);var t=e?e:_;var i=r?r:w;return c.cos(this,t,i)};this.sin=function(e,r){u(e,r);var t=e?e:_;var i=r?r:w;return c.sin(this,t,i)};this.tan=function(e,r){u(e,r);var t=e?e:_;var i=r?r:w;return c.tan(this,t,i)};this.ctan=function(e,r){u(e,r);var t=e?e:_;var i=r?r:w;return c.ctan(this,t,i)};this.clone=function(){return arithmetic.clone(this)};this.toNumber=function(){var e=0;for(var t=E.length-1;t>=0;t--){e+=r[t]*Math.pow(10,t-P)}return e*S};this.toJSON=function(){return"{"+"sign: "+S+", "+"value: ["+E+"], "+"scale: "+P+", "+"precision: "+_+", "+"roundingMode: "+l+"}"}};function u(e,r){if(e){o.validatePrecision(e)}if(r){o.validateRoundingMode(r)}}},function(e,r,t){"use strict";var i=t(0);e.exports={getDigit:function(e,r){return this.safeGetDigit(e.getValue(),r)},safeGetDigit:function(e,r){return r<0||r>=e.length?0:e[r]},maxScale:function(e,r){return e.getScale()>r.getScale()?e.getScale():r.getScale()},maxPrecision:function(e,r){return e.getPrecision()>r.getPrecision()?e.getPrecision():r.getPrecision()},commonLength:function(e,r){var t=this.maxScale(e,r);var i=e.getValue().length-e.getScale()>r.getValue().length-r.getScale()?e.getValue().length-e.getScale():r.getValue().length-r.getScale();i+=t;return i},invertSign:function(e){return e===i.POSITIVE?i.NEGATIVE:i.POSITIVE},getRoundingLeftOver:function(e,r,t,u,s){if(s===i.ROUNDING_MODE_DOWN){return 0}if(s===i.ROUNDING_MODE_CEIL&&e===i.NEGATIVE){return 0}if(s===i.ROUNDING_MODE_FLOOR&&e===i.POSITIVE){return 0}if(t<=u){return r}var f=0;var l=[];for(var v=t-u-1;v>=0;v--){l.push(this.safeGetDigit(r,v))}if(l.length<=0){return 0}if(s===i.ROUNDING_MODE_UP){return n(l)}else if(s===i.ROUNDING_MODE_HALF_UP){return a(l)}else if(s===i.ROUNDING_MODE_HALF_DOWN){return o(l)}else if(s===i.ROUNDING_MODE_CEIL){return n(l)}else if(s===i.ROUNDING_MODE_FLOOR){return n(l)}else if(s===i.ROUNDING_MODE_HALF_EVEN){var g=this.safeGetDigit(r,t-u);if(nextDigit%2===0){return a(l)}else{return o(l)}}return f}};function n(e){if(u(e,0)){return 0}else{return 1}}function a(e){if(e[0]>=5){return 1}else{return 0}}function o(e){if(e[0]>5){return 1}else if(e[0]<=4){return 0}else{if(u(e,1)){return 0}else{return 1}}}function u(e,r){for(var t=r;t<e.length;t++){if(e[t]!==0){return false}}return true}},function(e,r,t){"use strict";var i=t(0);var n=t(2);e.exports={compare:function(e,r){if(e.getSign()!==r.getSign()){return e.getSign()}var t=this.compareAbsoluteValues(e,r);return e.getSign()===i.POSITIVE?t:-t},compareAbsoluteValues:function(e,r){var t=n.maxScale(e,r);var a=n.commonLength(e,r);for(var o=a-1;o>=0;o--){var u=n.getDigit(e,o+e.getScale()-t);var s=n.getDigit(r,o+r.getScale()-t);if(u>s){return i.POSITIVE}else if(u<s){return i.NEGATIVE}}return 0},isZero(e){var r=e.getValue();for(var t=0;t<r.length;t++){if(r[t]!==0){return false}}return true}}},function(e,r,t){"use strict";var i=t(0);var n=t(9);var a=1234.5;e.exports={getSystem:function(){return u(a.toString())},resolve:function(e,r){if(!r){return e}var t={};if(e.formatting&&r.formatting){t.minAfterDot=o(e.formatting,r.formatting,"minAfterDot"),t.maxAfterDot=o(e.formatting,r.formatting,"maxAfterDot")}else if(e.formatting){t=e.formatting}else if(r.formatting){t=r.formatting}var i={decimalSeparator:o(e,r,"decimalSeparator"),thousandsSeparator:o(e,r,"thousandsSeparator"),precision:o(e,r,"precision"),roundingMode:o(e,r,"roundingMode"),formatting:t};n.validatePrecision(i.precision);n.validateRoundingMode(i.roundingMode);n.validateDecimalSeparator(i.decimalSeparator);n.validateThousandsSeparator(i.decimalSeparator);if(i.decimalSeparator==i.thousandsSeparator){throw"Decimal and thousands separators should have different values"}n.validateConfigurationFormatting(t);return i}};function o(e,r,t){return r.hasOwnProperty(t)?r[t]:e[t]}function u(e){return{decimalSeparator:e.length==7?e.charAt(5):e.charAt(4),thousandsSeparator:e.length==7?e.charAt(1):undefined,precision:i.DEFAULT_PRECISION,roundingMode:i.DEFAULT_ROUNDING_MODE,formatting:{minAfterDot:undefined,maxAfterDot:undefined}}}},function(e,r,t){"use strict";var i=t(0);var n=t(3);var a=t(1);var o=t(4);var u=t(8);var s=new u(o.getSystem());e.exports={isRequiredPrecision:function(e,r){var t=new a(i.POSITIVE,[1],r,r+1,i.ROUNDING_MODE_DOWN);return n.compareAbsoluteValues(e,t)<=0},toBigNumber:function(e){if(typeof e==="number"){var r=s.parse(e);return r}else if(e instanceof a){return e}else{throw"Illegal argument of type ["+typeof e+"]. Only BigNumber or number types are supported"}}}},function(e,r,t){"use strict";var i=t(0);var n=t(1);var a=t(5);var o=new n(i.POSITIVE,[5,9,7,2,3,8,3,3,4,6,2,6,4,8,3,2,3,9,7,9,8,5,3,5,6,2,9,5,1,4,1,3],31,31,i.ROUNDING_MODE_HALF_UP);var u=new n(i.POSITIVE,[8,9,3,6,1,9,6,1,2,3,1,3,2,9,1,6,6,9,8,4,9,7,6,2,3,6,9,7,0,7,5,1],31,31,i.ROUNDING_MODE_HALF_UP);var s=new n(i.POSITIVE,[9,5,5,6,6,7,6,8,2,5,2,9,6,7,4,6,8,5,9,7,1,7,0,3,5,8,1,3,8,2,6],30,30,i.ROUNDING_MODE_HALF_UP);var f=500;e.exports={PI:o,HALF_PI:u,TWO_PI:s,sin:function(e,r,t){e=e.subtract(u);return this.cos(e,r,t)},cos:function(e,r,t){var u=false;if(e.isNegative()){e=e.abs()}if(e.greaterThan(s)){var l=e.divide(s,r,i.ROUNDING_MODE_DOWN).toInteger();e=e.subtract(l.multiply(s))}if(e.greaterThan(o)){u=!u;e=e.subtract(o)}var v=r+2;e=e.toPrecision(v,t);var g=new n(i.POSITIVE,[1],0,v,t);var c=new n(i.POSITIVE,[1],0,v,t);var d=e.multiply(e);var h=-1;for(var O=1;O<=f;O++){g=g.multiply(d).divide((2*O-1)*2*O);if(h==i.NEGATIVE){c=c.subtract(g)}else{c=c.add(g)}if(a.isRequiredPrecision(g,r+1)){return u?c.toPrecision(r).invert():c.toPrecision(r)}h=h*-1}return u?c.toPrecision(r).invert():c.toPrecision(r)},tan:function(e,r,t){var i=r+2;var n=this.sin(e,i,t).divide(this.cos(e,i,t));return n.toPrecision(r)},ctan:function(e,r,t){var i=r+2;var n=this.cos(e,i,t).divide(this.sin(e,i,t));return n.toPrecision(r)}}},function(e,r,t){"use strict";var i=t(0);var n=t(3);var a=t(1);var o=t(5);var u=500;var s=new a(i.POSITIVE,[2,8,5,4,1,2,1,2,3,2,7,1,4,9,0,3,5,4,9,9,5,5,0,8,1,7,4,1,3,9,6],31,31,i.ROUNDING_MODE_HALF_UP);var f=new a(i.POSITIVE,[5,2,2,9,6,3,2,5,4,2,5,9,3,1,9,6,9,0,1,8,6,6,8,8,2,2,1,6,8,9,0,1],31,31,i.ROUNDING_MODE_HALF_UP);var l=new a(i.POSITIVE,[4,6,1,9,2,4,2,4,6,4,4,3,8,8,1,6,0,9,8,9,1,1,1,6,3,4,9,2,6,8,3,1],31,31,i.ROUNDING_MODE_HALF_UP);var v=new a(i.POSITIVE,[2,6,2,2,3,3,3,9,5,7,0,0,6,4,7,3,0,0,1,4,3,4,2,1,9,7,3,4,9,0,6,1],31,31,i.ROUNDING_MODE_HALF_UP);var g=new a(i.POSITIVE,[7,0,8,3,8,5,3,7,7,4,2,1,8,0,0,0,5,5,0,8,2,2,9,6,4,9,5,7,1,9,7,1],31,31,i.ROUNDING_MODE_HALF_UP);var c=new a(i.POSITIVE,[2,3,4,4,3,4,7,2,5,3,5,0,1,5,0,3,3,1,3,5,5,0,9,4,1,0,1,9,5,4,9,1],31,31,i.ROUNDING_MODE_HALF_UP);var d=new a(i.POSITIVE,[5,4,7,3,4,6,3,6,9,6,1,5,2,8,2,9,5,3,8,9,7,6,1,4,5,1,4,4,9,7,0,2],31,31,i.ROUNDING_MODE_HALF_UP);var h=new a(i.POSITIVE,[1,5,4,8,3,7,4,0,9,4,0,9,7,2,8,3,9,1,2,6,3,3,7,7,5,4,2,2,7,9,1,2],31,31,i.ROUNDING_MODE_HALF_UP);var O=new a(i.POSITIVE,[4,4,8,6,4,5,4,1,9,9,7,1,0,4,8,6,5,4,0,4,9,9,2,9,0,5,8,5,2,0,3,2],31,31,i.ROUNDING_MODE_HALF_UP);var I=[s,f,l,v,g,c,d,h,O];var p=new a(i.POSITIVE,[4,8,2,5,4,6,0,0,9,7,5,9,6,1,5,6,1,7,6,0,8,4,9,7,5,6,4,6,2,0,2,2],27,31,i.ROUNDING_MODE_HALF_UP);var D=new a(i.POSITIVE,[7,2,5,3,1,7,4,7,8,2,0,6,3,5,3,2,5,4,0,9,5,4,8,2,8,1,8,2,8,1,7,2],31,31,i.ROUNDING_MODE_HALF_UP);e.exports={E:D,exp:function(e,r,t){var s=false;if(e.isZero()){return new a(i.POSITIVE,[1],0,r,t)}if(e.isNegative()){s=true;e=e.abs()}var f=r+3;var l=0;var v=e;if(n.compareAbsoluteValues(e,new a(i.POSITIVE,[0,1],0,r,t))>=0){var g=e.shift(-1,0,i.ROUNDING_MODE_DOWN).toInteger();v=e.subtract(g.shift(1));l=g.toNumber()}var c=new a(i.POSITIVE,[1],0,f,t);var d=new a(i.POSITIVE,[1],0,f,t);if(!v.isZero()){var h=c;for(var O=1;O<=u;O++){h=h.multiply(v).divide(O);d=d.add(h);if(o.isRequiredPrecision(h,r+1)){break}}}if(l>0){for(var O=0;O<l;O++){d=d.multiply(p)}}if(s){return c.divide(d).toPrecision(r,t)}else{return d.toPrecision(r,t)}},log:function(e,r,t){var n=r+1;if(e.isNegative()||e.isZero()){throw"Cannot calculate logarithm from negative or zero value"}var o=new a(i.POSITIVE,[1],0,n,t);if(e.equals(o)){return new a(i.POSITIVE,[0],0,r,t)}var u=e.getValue().length;var s=e.getScale();var f=s-u+1;var l=f!=0?e.shift(f,n,t):e;var v=e.getValue()[u-1];if(v>=2){l=l.divide(v,n,t)}var g=m(l,n,t);if(v>=2){g=g.add(I[v-2].toPrecision(n,t))}var c=O.toPrecision(n,t).multiply(-f);g=g.add(c);return g.toPrecision(r,t)},pow:function(e,r,t,n){r=o.toBigNumber(r,t,n);if(r.isZero()){return new a(i.POSITIVE,[1],0,t,n)}if(e.isZero()){return new a(i.POSITIVE,[0],0,t,n)}if(e.isNegative()){throw"Cannot calculate power of negative value"}var u=false;if(r.isNegative()){u=true;r=r.abs()}var s=t+3;var f=r.multiply(e.log(s,n),s,n).exp(s,n);if(u){return new a(i.POSITIVE,[1],0,s,n).divide(f).toPrecision(t,n)}else{return f.toPrecision(t,n)}},lg:function(e,r,t){var i=r+1;var n=e.log(i,t);return n.divide(O,i,t).toPrecision(r,t)},sqrt:function(e,r,t){return e.pow(new a(i.POSITIVE,[5],1,r,t))}};function m(e,r,t){var n=new a(i.POSITIVE,[1],0,r,t);if(e.equals(n)){return new a(i.POSITIVE,[0],0,r,t)}var s=1;var f=r+3;var l=new a(i.POSITIVE,[0],0,f,t);var v=new a(i.POSITIVE,[1],0,f,t);var g=e.subtract(n,f,t);for(var c=1;c<=u;c++){v=v.multiply(g);if(s>0){l=l.add(v.divide(c))}else{l=l.subtract(v.divide(c))}if(o.isRequiredPrecision(v,r+1)){return l.toPrecision(r)}s=s*-1}return l.toPrecision(r)}},function(e,r,t){"use strict";var i=t(0);var n=t(4);var a=t(1);e.exports=function(e){var r=this;var t=e;this.parse=function(e,r){var i=n.resolve(t,r);if(typeof e==="string"){return o(e,i)}else if(typeof e==="number"){return o(e.toString(),i)}else{throw"Illegal input ["+input+"] of type ["+typeof e+"]. Only string or number types can be parsed"}}};function o(e,r){if(!e||e.length<=0){throw"Cannot parse empty input"}var t=e.toLowerCase().split("e");if(!t||t.length<1||t.length>2){throw"1 Non parsable input ["+e+"]"}if(!t[0]||t[0].length<=0){throw"2 Non parsable input ["+e+"]"}if(t.length===1){return u(t[0],r)}else{var i=new RegExp("^[+,-]?[0-9]+$");if(!t[1]||t[1].length<=0||!i.test(t[1])){throw"3 Non parsable input ["+e+"]"}var n=u(t[0],r);var a=parseInt(t[1],10);var o=n.getScale()-a;var s=o>r.precision?o:r.precision;return n.shift(a,r.precision,r.roundingMode)}}function u(e,r){var t=i.POSITIVE;var n=[];var o=0;var u=e.charAt(0);var l=0;if(u===i.PLUS){l=1;t=i.POSITIVE}else if(u===i.MINUS){l=1;t=i.NEGATIVE}if(e.length-l<=0){throw"Non parsable input ["+e+"]"}for(var v=e.length-1;v>=l;v--){var g=e.charAt(v);if(s(g,r)){if(o>0){throw"Unexpected decimal separator at position ["+(e.length-v-1)+"]"}o=e.length-v-1}else if(!f(g,r)){var c=parseInt(g,10);if(isNaN(c)){throw"Non parsable symbol ["+g+"] at position ["+(e.length-v-1)+"] of input string ["+e+"]"}n.push(c)}}var d=o>r.precision?o:r.precision;var h=new a(t,n,o,d,r.roundingMode);return h}function s(e,r){return r.decimalSeparator===e}function f(e,r){return r.thousandsSeparator===e}},function(e,r,t){"use strict";var i=t(0);e.exports={validateSign:function(e){if(e!==i.POSITIVE&&e!==i.NEGATIVE){throw"Illegal sign value ["+e+"]. Please provide valid sign: "+i.POSITIVE+" for positive or "+i.NEGATIVE+" for negative"}},validateValue:function(e){if(!Array.isArray(e)){throw"Illegal value type. Only array type is supported"}if(!e||e.length<=0){throw"Illegal empty array value"}for(var r=0;r<e.length;r++){var t=e[r];if(typeof t!="number"){throw"Only numbers are allowed"}if(!Number.isInteger(t)){throw"Only integer values are allowed"}if(t<0||t>=10){throw"Numbers should be in range from 0 to 9"}}},validateScale:function(e){if(typeof e!="number"){throw"Scale should be number type"}if(!Number.isInteger(e)){throw"Only integer scale value is supported"}},validatePrecision:function(e){if(typeof e!="number"){throw"Precision should be number type"}if(!Number.isInteger(e)){throw"Only integer precision value is supported"}},validateRoundingMode:function(e){if(e!==i.ROUNDING_MODE_UP&&e!==i.ROUNDING_MODE_DOWN&&e!==i.ROUNDING_MODE_CEIL&&e!==i.ROUNDING_MODE_FLOOR&&e!==i.ROUNDING_MODE_HALF_UP&&e!==i.ROUNDING_MODE_HALF_DOWN&&e!==i.ROUNDING_MODE_HALF_EVEN){throw"Illegal rounding mode"}},validateDecimalSeparator:function(e){if(!e){throw"Decimal separator should be defined"}if(typeof e!=="string"){throw"Decimal separator should be string type"}if(e.length<=0){throw"Decimal separator should nit be blank"}},validateThousandsSeparator:function(e){if(e===undefined||e===null){return}if(typeof e!=="string"){throw"Decimal separator should be string type"}},validateConfigurationFormatting:function(e){if(e.minAfterDot!==undefined&&e.minAfterDot!==null&&typeof e.minAfterDot!=="number"||e.minAfterDot<0){throw"Minimal number of digits after decimal separator should be positive number"}if(e.maxAfterDot!==undefined&&e.maxAfterDot!==null&&typeof e.maxAfterDot!=="number"||e.maxAfterDot<0){throw"Maximal number of digits after decimal separator should be positive number"}if(e.minAfterDot&&e.maxAfterDot){if(e.minAfterDot>e.maxAfterDot){throw"Minimal number of digits after decimal separator should be greater or equals to maximal"}}}}},function(e,r,t){"use strict";var i=t(0);var n=t(4);var a=t(2);e.exports=function(e){var r=e;this.format=function(e,t){var o=n.resolve(r,t);var u=e.getValue().length;var s=e.getScale();var f=undefined;if(o.formatting&&o.formatting.minAfterDot){f=t.formatting.minAfterDot}var l=undefined;if(o.formatting&&o.formatting.maxAfterDot){l=t.formatting.maxAfterDot}var v=u>s?u:s+1;var g=0;if(f&&s<f){g=g+(s-f)}if(l&&s>l){g=g+(s-l)}var c=e.getSign()===i.POSITIVE?"":i.MINUS;var d=0;var h=0;for(var O=v-1;O>=g;O--){var I=a.getDigit(e,O);c=c+I;if(O<s){h++;if(I===0){d++}else{d=0}}if(O>g&&O===s){c=c+o.decimalSeparator}if(o.thousandsSeparator&&O>g&&O>s&&(O-s)%3===0){c=c+o.thousandsSeparator}}var p=f?0:d;if(f&&d>0&&h-d<f){p=h-f}if(p>0){if(c.charAt(c.length-p-1)===o.decimalSeparator){p++}c=c.substring(0,c.length-p)}return c}}},function(e,r,t){"use strict";var i=t(0);var n=t(2);var a=t(3);var o=t(1);var u=t(5);e.exports={add:function(e,r,t,i){r=u.toBigNumber(r);if(e.getSign()===r.getSign()){return s(e.getSign(),e,r,t,i)}var n=a.compareAbsoluteValues(e,r);if(n>=0){return f(e.getSign(),e,r,t,i)}else{return f(r.getSign(),r,e,t,i)}},subtract:function(e,r,t,i){r=u.toBigNumber(r);if(e.getSign()!==r.getSign()){return s(e.getSign(),e,r,t,i)}var o=a.compareAbsoluteValues(e,r);if(o>=0){return f(e.getSign(),e,r,t,i)}else{return f(n.invertSign(r.getSign()),r,e,t,i)}},multiply:function(e,r,t,n){r=u.toBigNumber(r);var a=e.getSign()===r.getSign()?i.POSITIVE:i.NEGATIVE;return l(a,e,r,t,n)},divide:function(e,r,t,n){r=u.toBigNumber(r);if(r.isZero()){throw"Divide by zero"}var a=e.getSign()===r.getSign()?i.POSITIVE:i.NEGATIVE;return v(a,e,r,t,n)},abs:function(e){return new o(i.POSITIVE,e.getValue(),e.getScale(),e.getPrecision(),e.getRoundingMode())},invert:function(e){if(e.isZero()){return e}return new o(n.invertSign(e.getSign()),e.getValue(),e.getScale(),e.getPrecision(),e.getRoundingMode())},toPrecision:function(e,r,t){return new o(e.getSign(),e.getValue(),e.getScale(),r,t)},withRoundingMode:function(e,r){return new o(e.getSign(),e.getValue(),e.getScale(),e.getPrecision(),r)},shift:function(e,r,t,i){var n=e.getScale()-r;return new o(e.getSign(),e.getValue(),n,t,i)},integerValue:function(e){var r=e.getScale();if(r===0){return e}var t=e.getValue();var i=t.length;if(i<=r){return new o(e.getSign(),[0],0,e.getPrecision(),e.getRoundingMode())}var n=[];for(var a=r;a<i;a++){n.push(t[a])}return new o(e.getSign(),n,0,e.getPrecision(),e.getRoundingMode())},clone:function(e){return new o(e.getSign(),e.getValue(),e.getScale(),e.getPrecision(),e.getRoundingMode())}};function s(e,r,t,i,a){var u=n.maxScale(r,t);var s=n.commonLength(r,t);var f=n.maxPrecision(r,t);var l=[];var v=0;var g=0;for(var c=0;c<s;c++){var d=n.getDigit(r,c+r.getScale()-u);var h=n.getDigit(t,c+t.getScale()-u);g=d+h+v;if(g>=10){v=1;g=g-10}else{v=0}l.push(g)}if(v>0){l.push(v)}return new o(e,l,u,i,a)}function f(e,r,t,i,a){var u=n.maxScale(r,t);var s=n.commonLength(r,t);var f=n.maxPrecision(r,t);var l=[];var v=0;for(var g=0;g<s;g++){var c=n.getDigit(r,g+r.getScale()-u);var d=n.getDigit(t,g+t.getScale()-u);var h=c-d-v;if(h<0){v=1;h=h+10}else{v=0}l.push(h)}return new o(e,l,u,i,a)}function l(e,r,t,i,a){var u=r.getScale()+t.getScale();if(u<i){u=i}var s=new o(e,[0],0,u,a);var f=r.getScale()+t.getScale();for(var l=0;l<t.getValue().length;l++){var v=n.getDigit(t,l);var g=0;var c=[];for(var d=0;d<r.getValue().length;d++){var h=n.getDigit(r,d);var O=h*v+g;if(O>=10){var I=O%10;g=Math.floor((O-I)/10);O=I}else{g=0}c.push(O)}if(g>0){c.push(g)}var p=new o(e,c,f-l,u,a);s=s.add(p)}return s.toPrecision(i,a)}function v(e,r,t,n,a){var v=r;var c=n+3;var d=new o(i.POSITIVE,[0],0,c,a);for(var h=0;h<n;h++){var O=g(v,t,c,a);var I=l(i.POSITIVE,t,O,c,i.ROUNDING_MODE_DOWN);v=f(i.POSITIVE,v,I,c,a);d=s(e,d,O,c,a);if(v.isZero()||u.isRequiredPrecision(O,n+1)){return d.toPrecision(n)}}return d.toPrecision(n)}function g(e,r,t,a){if(e.isZero()){return new o(i.POSITIVE,[0],0,t,a)}var s=e.getValue().length;var f=n.getDigit(e,s-1)*100+n.getDigit(e,s-2)*10+n.getDigit(e,s-3);var l=r.getValue().length;var v=n.getDigit(r,l-1)*10+n.getDigit(r,l-2);if(l>2){v=v+1}var g=Math.floor(100*f/v);var c=s-e.getScale()-3-(l-r.getScale()-2)-2;var d=u.toBigNumber(g,t,a);var h=d.shift(c,t,a);return h}},function(e,r,t){"use strict";var i=t(0);var n=t(4);var a=t(1);var o=t(8);var u=t(10);var s=t(7);var f=t(6);e.exports=function(e){var r=n.resolve(n.getSystem(),e);var t=new o(r);var i=new u(r);this.getConfiguration=function(){return r};this.of=function(e,i){return t.parse(e,n.resolve(r,i))};this.format=function(e,t){return i.format(e,n.resolve(r,t))}};e.exports.E=s.E;e.exports.PI=f.PI;e.exports.RoundingMode={UP:i.ROUNDING_MODE_UP,DOWN:i.ROUNDING_MODE_DOWN,CEIL:i.ROUNDING_MODE_CEIL,FLOOR:i.ROUNDING_MODE_FLOOR,HALF_UP:i.ROUNDING_MODE_HALF_UP,HALF_DOWN:i.ROUNDING_MODE_HALF_DOWN,HALF_EVEN:i.ROUNDING_MODE_HALF_EVEN}}])});