UNPKG

fxparser

Version:

Formula parser designed for Yotta Needs.

1 lines 193 kB
!function(r,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.fxParser=t():r.fxParser=t()}(window,function(){return function(r){var t={};function e(n){if(t[n])return t[n].exports;var a=t[n]={i:n,l:!1,exports:{}};return r[n].call(a.exports,a,a.exports,e),a.l=!0,a.exports}return e.m=r,e.c=t,e.d=function(r,t,n){e.o(r,t)||Object.defineProperty(r,t,{configurable:!1,enumerable:!0,get:n})},e.r=function(r){Object.defineProperty(r,"__esModule",{value:!0})},e.n=function(r){var t=r&&r.__esModule?function(){return r.default}:function(){return r};return e.d(t,"a",t),t},e.o=function(r,t){return Object.prototype.hasOwnProperty.call(r,t)},e.p="",e(e.s=43)}([function(r,t){t.nil=new Error("#NULL!"),t.div0=new Error("#DIV/0!"),t.value=new Error("#VALUE!"),t.ref=new Error("#REF!"),t.name=new Error("#NAME?"),t.num=new Error("#NUM!"),t.na=new Error("#N/A"),t.error=new Error("#ERROR!"),t.data=new Error("#GETTING_DATA")},function(r,t,e){var n=e(0);t.flattenShallow=function(r){return r&&r.reduce?r.reduce(function(r,t){var e=Array.isArray(r),n=Array.isArray(t);return e&&n?r.concat(t):e?(r.push(t),r):n?[r].concat(t):[r,t]}):r},t.isFlat=function(r){if(!r)return!1;for(var t=0;t<r.length;++t)if(Array.isArray(r[t]))return!1;return!0},t.flatten=function(){for(var r=t.argsToArray.apply(null,arguments);!t.isFlat(r);)r=t.flattenShallow(r);return r},t.argsToArray=function(r){var e=[];return t.arrayEach(r,function(r){e.push(r)}),e},t.numbers=function(){return this.flatten.apply(null,arguments).filter(function(r){return"number"==typeof r})},t.cleanFloat=function(r){return Math.round(1e14*r)/1e14},t.parseBool=function(r){if("boolean"==typeof r)return r;if(r instanceof Error)return r;if("number"==typeof r)return 0!==r;if("string"==typeof r){var t=r.toUpperCase();if("TRUE"===t)return!0;if("FALSE"===t)return!1}return r instanceof Date&&!isNaN(r)||n.value},t.parseNumber=function(r){return void 0===r||""===r?n.value:isNaN(r)?n.value:parseFloat(r)},t.parseNumberArray=function(r){var e,a;if(!r||0===(e=r.length))return n.value;for(;e--;){if((a=t.parseNumber(r[e]))===n.value)return a;r[e]=a}return r},t.parseMatrix=function(r){var e;if(!r||0===r.length)return n.value;for(var a=0;a<r.length;a++)if(e=t.parseNumberArray(r[a]),r[a]=e,e instanceof Error)return e;return r};var a=new Date(1900,0,1);t.parseDate=function(r){if(!isNaN(r)){if(r instanceof Date)return new Date(r);var t=parseInt(r,10);return t<0?n.num:t<=60?new Date(a.getTime()+864e5*(t-1)):new Date(a.getTime()+864e5*(t-2))}return"string"!=typeof r||(r=new Date(r),isNaN(r))?n.value:r},t.parseDateArray=function(r){for(var t,e=r.length;e--;){if((t=this.parseDate(r[e]))===n.value)return t;r[e]=t}return r},t.anyIsError=function(){for(var r=arguments.length;r--;)if(arguments[r]instanceof Error)return!0;return!1},t.arrayValuesToNumbers=function(r){for(var t,e=r.length;e--;)if("number"!=typeof(t=r[e]))if(!0!==t)if(!1!==t){if("string"==typeof t){var n=this.parseNumber(t);n instanceof Error?r[e]=0:r[e]=n}}else r[e]=0;else r[e]=1;return r},t.rest=function(r,t){return t=t||1,r&&"function"==typeof r.slice?r.slice(t):r},t.initial=function(r,t){return t=t||1,r&&"function"==typeof r.slice?r.slice(0,r.length-t):r},t.arrayEach=function(r,t){for(var e=-1,n=r.length;++e<n&&!1!==t(r[e],e,r););return r},t.transpose=function(r){return r?r[0].map(function(t,e){return r.map(function(r){return r[e]})}):n.value}},function(r,t,e){"use strict";var n;t.__esModule=!0,t.default=function(r){var t=void 0;return r=(r+"").replace(/#|!|\?/g,""),p[r]&&(t=p[r]),t||null},t.isValidStrict=function(r){var t=!1;for(var e in p)if(Object.prototype.hasOwnProperty.call(p,e)&&p[e]===r){t=!0;break}return t};var a=t.ERROR="ERROR",u=t.ERROR_DIV_ZERO="DIV/0",i=t.ERROR_NAME="NAME",o=t.ERROR_NOT_AVAILABLE="N/A",s=t.ERROR_NULL="NULL",l=t.ERROR_NUM="NUM",f=t.ERROR_REF="REF",c=t.ERROR_VALUE="VALUE",p=((n={})[a]="#ERROR!",n[u]="#DIV/0!",n[i]="#NAME?",n[o]="#N/A",n[s]="#NULL!",n[l]="#NUM!",n[f]="#REF!",n[c]="#VALUE!",n)},function(r,t,e){"use strict";function n(r){var t=void 0;return"number"==typeof r?t=r:"string"==typeof r&&(t=r.indexOf(".")>-1?parseFloat(r):parseInt(r,10)),t}t.__esModule=!0,t.toNumber=n,t.invertNumber=function(r){return 0===n(r)?0:-1*n(r)}},function(module,exports,__webpack_require__){var mathTrig=__webpack_require__(5),text=__webpack_require__(8),jStat=__webpack_require__(13).jStat,utils=__webpack_require__(1),error=__webpack_require__(0),misc=__webpack_require__(12),SQRT2PI=2.5066282746310002;exports.AVEDEV=function(){var r=utils.parseNumberArray(utils.flatten(arguments));return r instanceof Error?r:jStat.sum(jStat(r).subtract(jStat.mean(r)).abs()[0])/r.length},exports.AVERAGE=function(){for(var r,t=utils.numbers(utils.flatten(arguments)),e=t.length,n=0,a=0,u=0;u<e;u++)n+=t[u],a+=1;return r=n/a,isNaN(r)&&(r=error.num),r},exports.AVERAGEA=function(){for(var r,t=utils.flatten(arguments),e=t.length,n=0,a=0,u=0;u<e;u++){var i=t[u];"number"==typeof i&&(n+=i),!0===i&&n++,null!==i&&a++}return r=n/a,isNaN(r)&&(r=error.num),r},exports.AVERAGEIF=function(range,criteria,average_range){if(arguments.length<=1)return error.na;if(average_range=average_range||range,range=utils.flatten(range),average_range=utils.parseNumberArray(utils.flatten(average_range)),average_range instanceof Error)return average_range;for(var average_count=0,result=0,i=0;i<range.length;i++)eval(range[i]+criteria)&&(result+=average_range[i],average_count++);return result/average_count},exports.AVERAGEIFS=function(){for(var args=utils.argsToArray(arguments),criteria=(args.length-1)/2,range=utils.flatten(args[0]),count=0,result=0,i=0;i<range.length;i++){for(var condition="",j=0;j<criteria;j++)condition+=args[2*j+1][i]+args[2*j+2],j!==criteria-1&&(condition+="&&");eval(condition)&&(result+=range[i],count++)}var average=result/count;return isNaN(average)?0:average},exports.BETA={},exports.BETA.DIST=function(r,t,e,n,a,u){return arguments.length<4?error.value:(a=void 0===a?0:a,u=void 0===u?1:u,r=utils.parseNumber(r),t=utils.parseNumber(t),e=utils.parseNumber(e),a=utils.parseNumber(a),u=utils.parseNumber(u),utils.anyIsError(r,t,e,a,u)?error.value:(r=(r-a)/(u-a),n?jStat.beta.cdf(r,t,e):jStat.beta.pdf(r,t,e)))},exports.BETA.INV=function(r,t,e,n,a){return n=void 0===n?0:n,a=void 0===a?1:a,r=utils.parseNumber(r),t=utils.parseNumber(t),e=utils.parseNumber(e),n=utils.parseNumber(n),a=utils.parseNumber(a),utils.anyIsError(r,t,e,n,a)?error.value:jStat.beta.inv(r,t,e)*(a-n)+n},exports.BINOM={},exports.BINOM.DIST=function(r,t,e,n){return r=utils.parseNumber(r),t=utils.parseNumber(t),e=utils.parseNumber(e),n=utils.parseNumber(n),utils.anyIsError(r,t,e,n)?error.value:n?jStat.binomial.cdf(r,t,e):jStat.binomial.pdf(r,t,e)},exports.BINOM.DIST.RANGE=function(r,t,e,n){if(n=void 0===n?e:n,r=utils.parseNumber(r),t=utils.parseNumber(t),e=utils.parseNumber(e),n=utils.parseNumber(n),utils.anyIsError(r,t,e,n))return error.value;for(var a=0,u=e;u<=n;u++)a+=mathTrig.COMBIN(r,u)*Math.pow(t,u)*Math.pow(1-t,r-u);return a},exports.BINOM.INV=function(r,t,e){if(r=utils.parseNumber(r),t=utils.parseNumber(t),e=utils.parseNumber(e),utils.anyIsError(r,t,e))return error.value;for(var n=0;n<=r;){if(jStat.binomial.cdf(n,r,t)>=e)return n;n++}},exports.CHISQ={},exports.CHISQ.DIST=function(r,t,e){return r=utils.parseNumber(r),t=utils.parseNumber(t),utils.anyIsError(r,t)?error.value:e?jStat.chisquare.cdf(r,t):jStat.chisquare.pdf(r,t)},exports.CHISQ.DIST.RT=function(r,t){return!r|!t?error.na:r<1||t>Math.pow(10,10)?error.num:"number"!=typeof r||"number"!=typeof t?error.value:1-jStat.chisquare.cdf(r,t)},exports.CHISQ.INV=function(r,t){return r=utils.parseNumber(r),t=utils.parseNumber(t),utils.anyIsError(r,t)?error.value:jStat.chisquare.inv(r,t)},exports.CHISQ.INV.RT=function(r,t){return!r|!t?error.na:r<0||r>1||t<1||t>Math.pow(10,10)?error.num:"number"!=typeof r||"number"!=typeof t?error.value:jStat.chisquare.inv(1-r,t)},exports.CHISQ.TEST=function(r,t){if(2!==arguments.length)return error.na;if(!(r instanceof Array&&t instanceof Array))return error.value;if(r.length!==t.length)return error.value;if(r[0]&&t[0]&&r[0].length!==t[0].length)return error.value;var e,n,a,u=r.length;for(n=0;n<u;n++)r[n]instanceof Array||(e=r[n],r[n]=[],r[n].push(e)),t[n]instanceof Array||(e=t[n],t[n]=[],t[n].push(e));var i=r[0].length,o=1===i?u-1:(u-1)*(i-1),s=0,l=Math.PI;for(n=0;n<u;n++)for(a=0;a<i;a++)s+=Math.pow(r[n][a]-t[n][a],2)/t[n][a];return Math.round(1e6*function(r,t){var e=Math.exp(-.5*r);t%2==1&&(e*=Math.sqrt(2*r/l));for(var n=t;n>=2;)e=e*r/n,n-=2;for(var a=e,u=t;a>1e-10*e;)e+=a=a*r/(u+=2);return 1-e}(s,o))/1e6},exports.COLUMN=function(r,t){return 2!==arguments.length?error.na:t<0?error.num:r instanceof Array&&"number"==typeof t?0!==r.length?jStat.col(r,t):void 0:error.value},exports.COLUMNS=function(r){return 1!==arguments.length?error.na:r instanceof Array?0===r.length?0:jStat.cols(r):error.value},exports.CONFIDENCE={},exports.CONFIDENCE.NORM=function(r,t,e){return r=utils.parseNumber(r),t=utils.parseNumber(t),e=utils.parseNumber(e),utils.anyIsError(r,t,e)?error.value:jStat.normalci(1,r,t,e)[1]-1},exports.CONFIDENCE.T=function(r,t,e){return r=utils.parseNumber(r),t=utils.parseNumber(t),e=utils.parseNumber(e),utils.anyIsError(r,t,e)?error.value:jStat.tci(1,r,t,e)[1]-1},exports.CORREL=function(r,t){return r=utils.parseNumberArray(utils.flatten(r)),t=utils.parseNumberArray(utils.flatten(t)),utils.anyIsError(r,t)?error.value:jStat.corrcoeff(r,t)},exports.COUNT=function(){return utils.numbers(utils.flatten(arguments)).length},exports.COUNTA=function(){var r=utils.flatten(arguments);return r.length-exports.COUNTBLANK(r)},exports.COUNTIN=function(r,t){var e=0;r=utils.flatten(r);for(var n=0;n<r.length;n++)r[n]===t&&e++;return e},exports.COUNTBLANK=function(){for(var r,t=utils.flatten(arguments),e=0,n=0;n<t.length;n++)null!==(r=t[n])&&""!==r||e++;return e},exports.COUNTIF=function(range,criteria){range=utils.flatten(range),/[<>=!]/.test(criteria)||(criteria='=="'+criteria+'"');for(var matches=0,i=0;i<range.length;i++)"string"!=typeof range[i]?eval(range[i]+criteria)&&matches++:eval('"'+range[i]+'"'+criteria)&&matches++;return matches},exports.COUNTIFS=function(){for(var args=utils.argsToArray(arguments),results=new Array(utils.flatten(args[0]).length),i=0;i<results.length;i++)results[i]=!0;for(i=0;i<args.length;i+=2){var range=utils.flatten(args[i]),criteria=args[i+1];/[<>=!]/.test(criteria)||(criteria='=="'+criteria+'"');for(var j=0;j<range.length;j++)"string"!=typeof range[j]?results[j]=results[j]&&eval(range[j]+criteria):results[j]=results[j]&&eval('"'+range[j]+'"'+criteria)}var result=0;for(i=0;i<results.length;i++)results[i]&&result++;return result},exports.COUNTUNIQUE=function(){return misc.UNIQUE.apply(null,utils.flatten(arguments)).length},exports.COVARIANCE={},exports.COVARIANCE.P=function(r,t){if(r=utils.parseNumberArray(utils.flatten(r)),t=utils.parseNumberArray(utils.flatten(t)),utils.anyIsError(r,t))return error.value;for(var e=jStat.mean(r),n=jStat.mean(t),a=0,u=r.length,i=0;i<u;i++)a+=(r[i]-e)*(t[i]-n);return a/u},exports.COVARIANCE.S=function(r,t){return r=utils.parseNumberArray(utils.flatten(r)),t=utils.parseNumberArray(utils.flatten(t)),utils.anyIsError(r,t)?error.value:jStat.covariance(r,t)},exports.DEVSQ=function(){var r=utils.parseNumberArray(utils.flatten(arguments));if(r instanceof Error)return r;for(var t=jStat.mean(r),e=0,n=0;n<r.length;n++)e+=Math.pow(r[n]-t,2);return e},exports.EXPON={},exports.EXPON.DIST=function(r,t,e){return r=utils.parseNumber(r),t=utils.parseNumber(t),utils.anyIsError(r,t)?error.value:e?jStat.exponential.cdf(r,t):jStat.exponential.pdf(r,t)},exports.F={},exports.F.DIST=function(r,t,e,n){return r=utils.parseNumber(r),t=utils.parseNumber(t),e=utils.parseNumber(e),utils.anyIsError(r,t,e)?error.value:n?jStat.centralF.cdf(r,t,e):jStat.centralF.pdf(r,t,e)},exports.F.DIST.RT=function(r,t,e){return 3!==arguments.length?error.na:r<0||t<1||e<1?error.num:"number"!=typeof r||"number"!=typeof t||"number"!=typeof e?error.value:1-jStat.centralF.cdf(r,t,e)},exports.F.INV=function(r,t,e){return r=utils.parseNumber(r),t=utils.parseNumber(t),e=utils.parseNumber(e),utils.anyIsError(r,t,e)?error.value:r<=0||r>1?error.num:jStat.centralF.inv(r,t,e)},exports.F.INV.RT=function(r,t,e){return 3!==arguments.length?error.na:r<0||r>1||t<1||t>Math.pow(10,10)||e<1||e>Math.pow(10,10)?error.num:"number"!=typeof r||"number"!=typeof t||"number"!=typeof e?error.value:jStat.centralF.inv(1-r,t,e)},exports.F.TEST=function(r,t){if(!r||!t)return error.na;if(!(r instanceof Array&&t instanceof Array))return error.na;if(r.length<2||t.length<2)return error.div0;var e=function(r,t){for(var e=0,n=0;n<r.length;n++)e+=Math.pow(r[n]-t,2);return e},n=mathTrig.SUM(r)/r.length,a=mathTrig.SUM(t)/t.length;return e(r,n)/(r.length-1)/(e(t,a)/(t.length-1))},exports.FISHER=function(r){return(r=utils.parseNumber(r))instanceof Error?r:Math.log((1+r)/(1-r))/2},exports.FISHERINV=function(r){if((r=utils.parseNumber(r))instanceof Error)return r;var t=Math.exp(2*r);return(t-1)/(t+1)},exports.FORECAST=function(r,t,e){if(r=utils.parseNumber(r),t=utils.parseNumberArray(utils.flatten(t)),e=utils.parseNumberArray(utils.flatten(e)),utils.anyIsError(r,t,e))return error.value;for(var n=jStat.mean(e),a=jStat.mean(t),u=e.length,i=0,o=0,s=0;s<u;s++)i+=(e[s]-n)*(t[s]-a),o+=Math.pow(e[s]-n,2);var l=i/o;return a-l*n+l*r},exports.FREQUENCY=function(r,t){if(r=utils.parseNumberArray(utils.flatten(r)),t=utils.parseNumberArray(utils.flatten(t)),utils.anyIsError(r,t))return error.value;for(var e=r.length,n=t.length,a=[],u=0;u<=n;u++){a[u]=0;for(var i=0;i<e;i++)0===u?r[i]<=t[0]&&(a[0]+=1):u<n?r[i]>t[u-1]&&r[i]<=t[u]&&(a[u]+=1):u===n&&r[i]>t[n-1]&&(a[n]+=1)}return a},exports.GAMMA=function(r){return(r=utils.parseNumber(r))instanceof Error?r:0===r?error.num:parseInt(r,10)===r&&r<0?error.num:jStat.gammafn(r)},exports.GAMMA.DIST=function(r,t,e,n){return 4!==arguments.length?error.na:r<0||t<=0||e<=0?error.value:"number"!=typeof r||"number"!=typeof t||"number"!=typeof e?error.value:n?jStat.gamma.cdf(r,t,e,!0):jStat.gamma.pdf(r,t,e,!1)},exports.GAMMA.INV=function(r,t,e){return 3!==arguments.length?error.na:r<0||r>1||t<=0||e<=0?error.num:"number"!=typeof r||"number"!=typeof t||"number"!=typeof e?error.value:jStat.gamma.inv(r,t,e)},exports.GAMMALN=function(r){return(r=utils.parseNumber(r))instanceof Error?r:jStat.gammaln(r)},exports.GAMMALN.PRECISE=function(r){return 1!==arguments.length?error.na:r<=0?error.num:"number"!=typeof r?error.value:jStat.gammaln(r)},exports.GAUSS=function(r){return(r=utils.parseNumber(r))instanceof Error?r:jStat.normal.cdf(r,0,1)-.5},exports.GEOMEAN=function(){var r=utils.parseNumberArray(utils.flatten(arguments));return r instanceof Error?r:jStat.geomean(r)},exports.GROWTH=function(r,t,e,n){if((r=utils.parseNumberArray(r))instanceof Error)return r;var a;if(void 0===t)for(t=[],a=1;a<=r.length;a++)t.push(a);if(void 0===e)for(e=[],a=1;a<=r.length;a++)e.push(a);if(t=utils.parseNumberArray(t),e=utils.parseNumberArray(e),utils.anyIsError(t,e))return error.value;void 0===n&&(n=!0);var u,i,o=r.length,s=0,l=0,f=0,c=0;for(a=0;a<o;a++){var p=t[a],h=Math.log(r[a]);s+=p,l+=h,f+=p*h,c+=p*p}s/=o,l/=o,f/=o,c/=o,n?i=l-(u=(f-s*l)/(c-s*s))*s:(u=f/c,i=0);var m=[];for(a=0;a<e.length;a++)m.push(Math.exp(i+u*e[a]));return m},exports.HARMEAN=function(){var r=utils.parseNumberArray(utils.flatten(arguments));if(r instanceof Error)return r;for(var t=r.length,e=0,n=0;n<t;n++)e+=1/r[n];return t/e},exports.HYPGEOM={},exports.HYPGEOM.DIST=function(r,t,e,n,a){if(r=utils.parseNumber(r),t=utils.parseNumber(t),e=utils.parseNumber(e),n=utils.parseNumber(n),utils.anyIsError(r,t,e,n))return error.value;function u(r,t,e,n){return mathTrig.COMBIN(e,r)*mathTrig.COMBIN(n-e,t-r)/mathTrig.COMBIN(n,t)}return a?function(r,t,e,n){for(var a=0,i=0;i<=r;i++)a+=u(i,t,e,n);return a}(r,t,e,n):u(r,t,e,n)},exports.INTERCEPT=function(r,t){return r=utils.parseNumberArray(r),t=utils.parseNumberArray(t),utils.anyIsError(r,t)?error.value:r.length!==t.length?error.na:exports.FORECAST(0,r,t)},exports.KURT=function(){var r=utils.parseNumberArray(utils.flatten(arguments));if(r instanceof Error)return r;for(var t=jStat.mean(r),e=r.length,n=0,a=0;a<e;a++)n+=Math.pow(r[a]-t,4);return e*(e+1)/((e-1)*(e-2)*(e-3))*(n/=Math.pow(jStat.stdev(r,!0),4))-3*(e-1)*(e-1)/((e-2)*(e-3))},exports.LARGE=function(r,t){return r=utils.parseNumberArray(utils.flatten(r)),t=utils.parseNumber(t),utils.anyIsError(r,t)?r:r.sort(function(r,t){return t-r})[t-1]},exports.LINEST=function(r,t){if(r=utils.parseNumberArray(utils.flatten(r)),t=utils.parseNumberArray(utils.flatten(t)),utils.anyIsError(r,t))return error.value;for(var e=jStat.mean(r),n=jStat.mean(t),a=t.length,u=0,i=0,o=0;o<a;o++)u+=(t[o]-n)*(r[o]-e),i+=Math.pow(t[o]-n,2);var s=u/i;return[s,e-s*n]},exports.LOGEST=function(r,t){if(r=utils.parseNumberArray(utils.flatten(r)),t=utils.parseNumberArray(utils.flatten(t)),utils.anyIsError(r,t))return error.value;for(var e=0;e<r.length;e++)r[e]=Math.log(r[e]);var n=exports.LINEST(r,t);return n[0]=Math.round(1e6*Math.exp(n[0]))/1e6,n[1]=Math.round(1e6*Math.exp(n[1]))/1e6,n},exports.LOGNORM={},exports.LOGNORM.DIST=function(r,t,e,n){return r=utils.parseNumber(r),t=utils.parseNumber(t),e=utils.parseNumber(e),utils.anyIsError(r,t,e)?error.value:n?jStat.lognormal.cdf(r,t,e):jStat.lognormal.pdf(r,t,e)},exports.LOGNORM.INV=function(r,t,e){return r=utils.parseNumber(r),t=utils.parseNumber(t),e=utils.parseNumber(e),utils.anyIsError(r,t,e)?error.value:jStat.lognormal.inv(r,t,e)},exports.MAX=function(){var r=utils.numbers(utils.flatten(arguments));return 0===r.length?0:Math.max.apply(Math,r)},exports.MAXA=function(){var r=utils.arrayValuesToNumbers(utils.flatten(arguments));return 0===r.length?0:Math.max.apply(Math,r)},exports.MEDIAN=function(){var r=utils.arrayValuesToNumbers(utils.flatten(arguments)),t=jStat.median(r);return isNaN(t)&&(t=error.num),t},exports.MIN=function(){var r=utils.numbers(utils.flatten(arguments));return 0===r.length?0:Math.min.apply(Math,r)},exports.MINA=function(){var r=utils.arrayValuesToNumbers(utils.flatten(arguments));return 0===r.length?0:Math.min.apply(Math,r)},exports.MODE={},exports.MODE.MULT=function(){var r=utils.parseNumberArray(utils.flatten(arguments));if(r instanceof Error)return r;for(var t,e=r.length,n={},a=[],u=0,i=0;i<e;i++)n[t=r[i]]=n[t]?n[t]+1:1,n[t]>u&&(u=n[t],a=[]),n[t]===u&&(a[a.length]=t);return a},exports.MODE.SNGL=function(){var r=utils.parseNumberArray(utils.flatten(arguments));return r instanceof Error?r:exports.MODE.MULT(r).sort(function(r,t){return r-t})[0]},exports.NEGBINOM={},exports.NEGBINOM.DIST=function(r,t,e,n){return r=utils.parseNumber(r),t=utils.parseNumber(t),e=utils.parseNumber(e),utils.anyIsError(r,t,e)?error.value:n?jStat.negbin.cdf(r,t,e):jStat.negbin.pdf(r,t,e)},exports.NORM={},exports.NORM.DIST=function(r,t,e,n){return r=utils.parseNumber(r),t=utils.parseNumber(t),e=utils.parseNumber(e),utils.anyIsError(r,t,e)?error.value:e<=0?error.num:n?jStat.normal.cdf(r,t,e):jStat.normal.pdf(r,t,e)},exports.NORM.INV=function(r,t,e){return r=utils.parseNumber(r),t=utils.parseNumber(t),e=utils.parseNumber(e),utils.anyIsError(r,t,e)?error.value:jStat.normal.inv(r,t,e)},exports.NORM.S={},exports.NORM.S.DIST=function(r,t){return(r=utils.parseNumber(r))instanceof Error?error.value:t?jStat.normal.cdf(r,0,1):jStat.normal.pdf(r,0,1)},exports.NORM.S.INV=function(r){return(r=utils.parseNumber(r))instanceof Error?error.value:jStat.normal.inv(r,0,1)},exports.PEARSON=function(r,t){if(t=utils.parseNumberArray(utils.flatten(t)),r=utils.parseNumberArray(utils.flatten(r)),utils.anyIsError(t,r))return error.value;for(var e=jStat.mean(r),n=jStat.mean(t),a=r.length,u=0,i=0,o=0,s=0;s<a;s++)u+=(r[s]-e)*(t[s]-n),i+=Math.pow(r[s]-e,2),o+=Math.pow(t[s]-n,2);return u/Math.sqrt(i*o)},exports.PERCENTILE={},exports.PERCENTILE.EXC=function(r,t){if(r=utils.parseNumberArray(utils.flatten(r)),t=utils.parseNumber(t),utils.anyIsError(r,t))return error.value;var e=(r=r.sort(function(r,t){return r-t})).length;if(t<1/(e+1)||t>1-1/(e+1))return error.num;var n=t*(e+1)-1,a=Math.floor(n);return utils.cleanFloat(n===a?r[n]:r[a]+(n-a)*(r[a+1]-r[a]))},exports.PERCENTILE.INC=function(r,t){if(r=utils.parseNumberArray(utils.flatten(r)),t=utils.parseNumber(t),utils.anyIsError(r,t))return error.value;var e=t*((r=r.sort(function(r,t){return r-t})).length-1),n=Math.floor(e);return utils.cleanFloat(e===n?r[e]:r[n]+(e-n)*(r[n+1]-r[n]))},exports.PERCENTRANK={},exports.PERCENTRANK.EXC=function(r,t,e){if(e=void 0===e?3:e,r=utils.parseNumberArray(utils.flatten(r)),t=utils.parseNumber(t),e=utils.parseNumber(e),utils.anyIsError(r,t,e))return error.value;r=r.sort(function(r,t){return r-t});for(var n=misc.UNIQUE.apply(null,r),a=r.length,u=n.length,i=Math.pow(10,e),o=0,s=!1,l=0;!s&&l<u;)t===n[l]?(o=(r.indexOf(n[l])+1)/(a+1),s=!0):t>=n[l]&&(t<n[l+1]||l===u-1)&&(o=(r.indexOf(n[l])+1+(t-n[l])/(n[l+1]-n[l]))/(a+1),s=!0),l++;return Math.floor(o*i)/i},exports.PERCENTRANK.INC=function(r,t,e){if(e=void 0===e?3:e,r=utils.parseNumberArray(utils.flatten(r)),t=utils.parseNumber(t),e=utils.parseNumber(e),utils.anyIsError(r,t,e))return error.value;r=r.sort(function(r,t){return r-t});for(var n=misc.UNIQUE.apply(null,r),a=r.length,u=n.length,i=Math.pow(10,e),o=0,s=!1,l=0;!s&&l<u;)t===n[l]?(o=r.indexOf(n[l])/(a-1),s=!0):t>=n[l]&&(t<n[l+1]||l===u-1)&&(o=(r.indexOf(n[l])+(t-n[l])/(n[l+1]-n[l]))/(a-1),s=!0),l++;return Math.floor(o*i)/i},exports.PERMUT=function(r,t){return r=utils.parseNumber(r),t=utils.parseNumber(t),utils.anyIsError(r,t)?error.value:mathTrig.FACT(r)/mathTrig.FACT(r-t)},exports.PERMUTATIONA=function(r,t){return r=utils.parseNumber(r),t=utils.parseNumber(t),utils.anyIsError(r,t)?error.value:Math.pow(r,t)},exports.PHI=function(r){return(r=utils.parseNumber(r))instanceof Error?error.value:Math.exp(-.5*r*r)/SQRT2PI},exports.POISSON={},exports.POISSON.DIST=function(r,t,e){return r=utils.parseNumber(r),t=utils.parseNumber(t),utils.anyIsError(r,t)?error.value:e?jStat.poisson.cdf(r,t):jStat.poisson.pdf(r,t)},exports.PROB=function(r,t,e,n){if(void 0===e)return 0;if(n=void 0===n?e:n,r=utils.parseNumberArray(utils.flatten(r)),t=utils.parseNumberArray(utils.flatten(t)),e=utils.parseNumber(e),n=utils.parseNumber(n),utils.anyIsError(r,t,e,n))return error.value;if(e===n)return r.indexOf(e)>=0?t[r.indexOf(e)]:0;for(var a=r.sort(function(r,t){return r-t}),u=a.length,i=0,o=0;o<u;o++)a[o]>=e&&a[o]<=n&&(i+=t[r.indexOf(a[o])]);return i},exports.QUARTILE={},exports.QUARTILE.EXC=function(r,t){if(r=utils.parseNumberArray(utils.flatten(r)),t=utils.parseNumber(t),utils.anyIsError(r,t))return error.value;switch(t){case 1:return exports.PERCENTILE.EXC(r,.25);case 2:return exports.PERCENTILE.EXC(r,.5);case 3:return exports.PERCENTILE.EXC(r,.75);default:return error.num}},exports.QUARTILE.INC=function(r,t){if(r=utils.parseNumberArray(utils.flatten(r)),t=utils.parseNumber(t),utils.anyIsError(r,t))return error.value;switch(t){case 1:return exports.PERCENTILE.INC(r,.25);case 2:return exports.PERCENTILE.INC(r,.5);case 3:return exports.PERCENTILE.INC(r,.75);default:return error.num}},exports.RANK={},exports.RANK.AVG=function(r,t,e){if(r=utils.parseNumber(r),t=utils.parseNumberArray(utils.flatten(t)),utils.anyIsError(r,t))return error.value;t=utils.flatten(t);for(var n=(e=e||!1)?function(r,t){return r-t}:function(r,t){return t-r},a=(t=t.sort(n)).length,u=0,i=0;i<a;i++)t[i]===r&&u++;return u>1?(2*t.indexOf(r)+u+1)/2:t.indexOf(r)+1},exports.RANK.EQ=function(r,t,e){if(r=utils.parseNumber(r),t=utils.parseNumberArray(utils.flatten(t)),utils.anyIsError(r,t))return error.value;var n=(e=e||!1)?function(r,t){return r-t}:function(r,t){return t-r};return(t=t.sort(n)).indexOf(r)+1},exports.ROW=function(r,t){return 2!==arguments.length?error.na:t<0?error.num:r instanceof Array&&"number"==typeof t?0!==r.length?jStat.row(r,t):void 0:error.value},exports.ROWS=function(r){return 1!==arguments.length?error.na:r instanceof Array?0===r.length?0:jStat.rows(r):error.value},exports.RSQ=function(r,t){return r=utils.parseNumberArray(utils.flatten(r)),t=utils.parseNumberArray(utils.flatten(t)),utils.anyIsError(r,t)?error.value:Math.pow(exports.PEARSON(r,t),2)},exports.SKEW=function(){var r=utils.parseNumberArray(utils.flatten(arguments));if(r instanceof Error)return r;for(var t=jStat.mean(r),e=r.length,n=0,a=0;a<e;a++)n+=Math.pow(r[a]-t,3);return e*n/((e-1)*(e-2)*Math.pow(jStat.stdev(r,!0),3))},exports.SKEW.P=function(){var r=utils.parseNumberArray(utils.flatten(arguments));if(r instanceof Error)return r;for(var t=jStat.mean(r),e=r.length,n=0,a=0,u=0;u<e;u++)a+=Math.pow(r[u]-t,3),n+=Math.pow(r[u]-t,2);return n/=e,(a/=e)/Math.pow(n,1.5)},exports.SLOPE=function(r,t){if(r=utils.parseNumberArray(utils.flatten(r)),t=utils.parseNumberArray(utils.flatten(t)),utils.anyIsError(r,t))return error.value;for(var e=jStat.mean(t),n=jStat.mean(r),a=t.length,u=0,i=0,o=0;o<a;o++)u+=(t[o]-e)*(r[o]-n),i+=Math.pow(t[o]-e,2);return u/i},exports.SMALL=function(r,t){return r=utils.parseNumberArray(utils.flatten(r)),t=utils.parseNumber(t),utils.anyIsError(r,t)?r:r.sort(function(r,t){return r-t})[t-1]},exports.STANDARDIZE=function(r,t,e){return r=utils.parseNumber(r),t=utils.parseNumber(t),e=utils.parseNumber(e),utils.anyIsError(r,t,e)?error.value:(r-t)/e},exports.STDEV={},exports.STDEV.P=function(){var r=exports.VAR.P.apply(this,arguments),t=Math.sqrt(r);return isNaN(t)&&(t=error.num),t},exports.STDEV.S=function(){var r=exports.VAR.S.apply(this,arguments);return Math.sqrt(r)},exports.STDEVA=function(){var r=exports.VARA.apply(this,arguments);return Math.sqrt(r)},exports.STDEVPA=function(){var r=exports.VARPA.apply(this,arguments),t=Math.sqrt(r);return isNaN(t)&&(t=error.num),t},exports.STEYX=function(r,t){if(r=utils.parseNumberArray(utils.flatten(r)),t=utils.parseNumberArray(utils.flatten(t)),utils.anyIsError(r,t))return error.value;for(var e=jStat.mean(t),n=jStat.mean(r),a=t.length,u=0,i=0,o=0,s=0;s<a;s++)u+=Math.pow(r[s]-n,2),i+=(t[s]-e)*(r[s]-n),o+=Math.pow(t[s]-e,2);return Math.sqrt((u-i*i/o)/(a-2))},exports.TRANSPOSE=function(r){return r?jStat.transpose(r):error.na},exports.T=text.T,exports.T.DIST=function(r,t,e){return r=utils.parseNumber(r),t=utils.parseNumber(t),utils.anyIsError(r,t)?error.value:e?jStat.studentt.cdf(r,t):jStat.studentt.pdf(r,t)},exports.T.DIST["2T"]=function(r,t){return 2!==arguments.length?error.na:r<0||t<1?error.num:"number"!=typeof r||"number"!=typeof t?error.value:2*(1-jStat.studentt.cdf(r,t))},exports.T.DIST.RT=function(r,t){return 2!==arguments.length?error.na:r<0||t<1?error.num:"number"!=typeof r||"number"!=typeof t?error.value:1-jStat.studentt.cdf(r,t)},exports.T.INV=function(r,t){return r=utils.parseNumber(r),t=utils.parseNumber(t),utils.anyIsError(r,t)?error.value:jStat.studentt.inv(r,t)},exports.T.INV["2T"]=function(r,t){return r=utils.parseNumber(r),t=utils.parseNumber(t),r<=0||r>1||t<1?error.num:utils.anyIsError(r,t)?error.value:Math.abs(jStat.studentt.inv(r/2,t))},exports.T.TEST=function(r,t){if(r=utils.parseNumberArray(utils.flatten(r)),t=utils.parseNumberArray(utils.flatten(t)),utils.anyIsError(r,t))return error.value;var e,n=jStat.mean(r),a=jStat.mean(t),u=0,i=0;for(e=0;e<r.length;e++)u+=Math.pow(r[e]-n,2);for(e=0;e<t.length;e++)i+=Math.pow(t[e]-a,2);u/=r.length-1,i/=t.length-1;var o=Math.abs(n-a)/Math.sqrt(u/r.length+i/t.length);return exports.T.DIST["2T"](o,r.length+t.length-2)},exports.TREND=function(r,t,e){if(r=utils.parseNumberArray(utils.flatten(r)),t=utils.parseNumberArray(utils.flatten(t)),e=utils.parseNumberArray(utils.flatten(e)),utils.anyIsError(r,t,e))return error.value;var n=exports.LINEST(r,t),a=n[0],u=n[1],i=[];return e.forEach(function(r){i.push(a*r+u)}),i},exports.TRIMMEAN=function(r,t){if(r=utils.parseNumberArray(utils.flatten(r)),t=utils.parseNumber(t),utils.anyIsError(r,t))return error.value;var e=mathTrig.FLOOR(r.length*t,2)/2;return jStat.mean(utils.initial(utils.rest(r.sort(function(r,t){return r-t}),e),e))},exports.VAR={},exports.VAR.P=function(){for(var r,t=utils.numbers(utils.flatten(arguments)),e=t.length,n=0,a=exports.AVERAGE(t),u=0;u<e;u++)n+=Math.pow(t[u]-a,2);return r=n/e,isNaN(r)&&(r=error.num),r},exports.VAR.S=function(){for(var r=utils.numbers(utils.flatten(arguments)),t=r.length,e=0,n=exports.AVERAGE(r),a=0;a<t;a++)e+=Math.pow(r[a]-n,2);return e/(t-1)},exports.VARA=function(){for(var r=utils.flatten(arguments),t=r.length,e=0,n=0,a=exports.AVERAGEA(r),u=0;u<t;u++){var i=r[u];e+="number"==typeof i?Math.pow(i-a,2):!0===i?Math.pow(1-a,2):Math.pow(0-a,2),null!==i&&n++}return e/(n-1)},exports.VARPA=function(){for(var r,t=utils.flatten(arguments),e=t.length,n=0,a=0,u=exports.AVERAGEA(t),i=0;i<e;i++){var o=t[i];n+="number"==typeof o?Math.pow(o-u,2):!0===o?Math.pow(1-u,2):Math.pow(0-u,2),null!==o&&a++}return r=n/a,isNaN(r)&&(r=error.num),r},exports.WEIBULL={},exports.WEIBULL.DIST=function(r,t,e,n){return r=utils.parseNumber(r),t=utils.parseNumber(t),e=utils.parseNumber(e),utils.anyIsError(r,t,e)?error.value:n?1-Math.exp(-Math.pow(r/e,t)):Math.pow(r,t-1)*Math.exp(-Math.pow(r/e,t))*t/Math.pow(e,t)},exports.Z={},exports.Z.TEST=function(r,t,e){if(r=utils.parseNumberArray(utils.flatten(r)),t=utils.parseNumber(t),utils.anyIsError(r,t))return error.value;e=e||exports.STDEV.S(r);var n=r.length;return 1-exports.NORM.S.DIST((exports.AVERAGE(r)-t)/(e/Math.sqrt(n)),!0)}},function(module,exports,__webpack_require__){var utils=__webpack_require__(1),error=__webpack_require__(0),statistical=__webpack_require__(4),information=__webpack_require__(7);exports.ABS=function(r){return(r=utils.parseNumber(r))instanceof Error?r:Math.abs(r)},exports.ACOS=function(r){if((r=utils.parseNumber(r))instanceof Error)return r;var t=Math.acos(r);return isNaN(t)&&(t=error.num),t},exports.ACOSH=function(r){if((r=utils.parseNumber(r))instanceof Error)return r;var t=Math.log(r+Math.sqrt(r*r-1));return isNaN(t)&&(t=error.num),t},exports.ACOT=function(r){return(r=utils.parseNumber(r))instanceof Error?r:Math.atan(1/r)},exports.ACOTH=function(r){if((r=utils.parseNumber(r))instanceof Error)return r;var t=.5*Math.log((r+1)/(r-1));return isNaN(t)&&(t=error.num),t},exports.AGGREGATE=function(r,t,e,n){if(r=utils.parseNumber(r),t=utils.parseNumber(r),utils.anyIsError(r,t))return error.value;switch(r){case 1:return statistical.AVERAGE(e);case 2:return statistical.COUNT(e);case 3:return statistical.COUNTA(e);case 4:return statistical.MAX(e);case 5:return statistical.MIN(e);case 6:return exports.PRODUCT(e);case 7:return statistical.STDEV.S(e);case 8:return statistical.STDEV.P(e);case 9:return exports.SUM(e);case 10:return statistical.VAR.S(e);case 11:return statistical.VAR.P(e);case 12:return statistical.MEDIAN(e);case 13:return statistical.MODE.SNGL(e);case 14:return statistical.LARGE(e,n);case 15:return statistical.SMALL(e,n);case 16:return statistical.PERCENTILE.INC(e,n);case 17:return statistical.QUARTILE.INC(e,n);case 18:return statistical.PERCENTILE.EXC(e,n);case 19:return statistical.QUARTILE.EXC(e,n)}},exports.ARABIC=function(r){if(!/^M*(?:D?C{0,3}|C[MD])(?:L?X{0,3}|X[CL])(?:V?I{0,3}|I[XV])$/.test(r))return error.value;var t=0;return r.replace(/[MDLV]|C[MD]?|X[CL]?|I[XV]?/g,function(r){t+={M:1e3,CM:900,D:500,CD:400,C:100,XC:90,L:50,XL:40,X:10,IX:9,V:5,IV:4,I:1}[r]}),t},exports.ASIN=function(r){if((r=utils.parseNumber(r))instanceof Error)return r;var t=Math.asin(r);return isNaN(t)&&(t=error.num),t},exports.ASINH=function(r){return(r=utils.parseNumber(r))instanceof Error?r:Math.log(r+Math.sqrt(r*r+1))},exports.ATAN=function(r){return(r=utils.parseNumber(r))instanceof Error?r:Math.atan(r)},exports.ATAN2=function(r,t){return r=utils.parseNumber(r),t=utils.parseNumber(t),utils.anyIsError(r,t)?error.value:Math.atan2(r,t)},exports.ATANH=function(r){if((r=utils.parseNumber(r))instanceof Error)return r;var t=Math.log((1+r)/(1-r))/2;return isNaN(t)&&(t=error.num),t},exports.BASE=function(r,t,e){if(e=e||0,r=utils.parseNumber(r),t=utils.parseNumber(t),e=utils.parseNumber(e),utils.anyIsError(r,t,e))return error.value;e=void 0===e?0:e;var n=r.toString(t);return new Array(Math.max(e+1-n.length,0)).join("0")+n},exports.CEILING=function(r,t,e){if(t=void 0===t?1:Math.abs(t),e=e||0,r=utils.parseNumber(r),t=utils.parseNumber(t),e=utils.parseNumber(e),utils.anyIsError(r,t,e))return error.value;if(0===t)return 0;var n=-Math.floor(Math.log(t)/Math.log(10));return r>=0?exports.ROUND(Math.ceil(r/t)*t,n):0===e?-exports.ROUND(Math.floor(Math.abs(r)/t)*t,n):-exports.ROUND(Math.ceil(Math.abs(r)/t)*t,n)},exports.CEILING.MATH=exports.CEILING,exports.CEILING.PRECISE=exports.CEILING,exports.COMBIN=function(r,t){return r=utils.parseNumber(r),t=utils.parseNumber(t),utils.anyIsError(r,t)?error.value:exports.FACT(r)/(exports.FACT(t)*exports.FACT(r-t))},exports.COMBINA=function(r,t){return r=utils.parseNumber(r),t=utils.parseNumber(t),utils.anyIsError(r,t)?error.value:0===r&&0===t?1:exports.COMBIN(r+t-1,r-1)},exports.COS=function(r){return(r=utils.parseNumber(r))instanceof Error?r:Math.cos(r)},exports.COSH=function(r){return(r=utils.parseNumber(r))instanceof Error?r:(Math.exp(r)+Math.exp(-r))/2},exports.COT=function(r){return(r=utils.parseNumber(r))instanceof Error?r:1/Math.tan(r)},exports.COTH=function(r){if((r=utils.parseNumber(r))instanceof Error)return r;var t=Math.exp(2*r);return(t+1)/(t-1)},exports.CSC=function(r){return(r=utils.parseNumber(r))instanceof Error?r:1/Math.sin(r)},exports.CSCH=function(r){return(r=utils.parseNumber(r))instanceof Error?r:2/(Math.exp(r)-Math.exp(-r))},exports.DECIMAL=function(r,t){return arguments.length<1?error.value:parseInt(r,t)},exports.DEGREES=function(r){return(r=utils.parseNumber(r))instanceof Error?r:180*r/Math.PI},exports.EVEN=function(r){return(r=utils.parseNumber(r))instanceof Error?r:exports.CEILING(r,-2,-1)},exports.EXP=function(r){return arguments.length<1?error.na:"number"!=typeof r||arguments.length>1?error.error:r=Math.exp(r)};var MEMOIZED_FACT=[];exports.FACT=function(r){if((r=utils.parseNumber(r))instanceof Error)return r;var t=Math.floor(r);return 0===t||1===t?1:MEMOIZED_FACT[t]>0?MEMOIZED_FACT[t]:(MEMOIZED_FACT[t]=exports.FACT(t-1)*t,MEMOIZED_FACT[t])},exports.FACTDOUBLE=function(r){if((r=utils.parseNumber(r))instanceof Error)return r;var t=Math.floor(r);return t<=0?1:t*exports.FACTDOUBLE(t-2)},exports.FLOOR=function(r,t){if(r=utils.parseNumber(r),t=utils.parseNumber(t),utils.anyIsError(r,t))return error.value;if(0===t)return 0;if(!(r>0&&t>0||r<0&&t<0))return error.num;t=Math.abs(t);var e=-Math.floor(Math.log(t)/Math.log(10));return r>=0?exports.ROUND(Math.floor(r/t)*t,e):-exports.ROUND(Math.ceil(Math.abs(r)/t),e)},exports.FLOOR.MATH=function(r,t,e){if(t=void 0===t?1:t,e=void 0===e?0:e,r=utils.parseNumber(r),t=utils.parseNumber(t),e=utils.parseNumber(e),utils.anyIsError(r,t,e))return error.value;if(0===t)return 0;t=t?Math.abs(t):1;var n=-Math.floor(Math.log(t)/Math.log(10));return r>=0?exports.ROUND(Math.floor(r/t)*t,n):0===e||void 0===e?-exports.ROUND(Math.ceil(Math.abs(r)/t)*t,n):-exports.ROUND(Math.floor(Math.abs(r)/t)*t,n)},exports.FLOOR.PRECISE=exports.FLOOR.MATH,exports.GCD=function(){var r=utils.parseNumberArray(utils.flatten(arguments));if(r instanceof Error)return r;for(var t=r.length,e=r[0],n=e<0?-e:e,a=1;a<t;a++){for(var u=r[a],i=u<0?-u:u;n&&i;)n>i?n%=i:i%=n;n+=i}return n},exports.INT=function(r){return(r=utils.parseNumber(r))instanceof Error?r:Math.floor(r)},exports.ISO={CEILING:exports.CEILING},exports.LCM=function(){var r=utils.parseNumberArray(utils.flatten(arguments));if(r instanceof Error)return r;for(var t,e,n,a,u=1;void 0!==(n=r.pop());)for(;n>1;){if(n%2){for(t=3,e=Math.floor(Math.sqrt(n));t<=e&&n%t;t+=2);a=t<=e?t:n}else a=2;for(n/=a,u*=a,t=r.length;t;r[--t]%a==0&&1==(r[t]/=a)&&r.splice(t,1));}return u},exports.LN=function(r){return(r=utils.parseNumber(r))instanceof Error?r:Math.log(r)},exports.LN10=function(){return Math.log(10)},exports.LN2=function(){return Math.log(2)},exports.LOG10E=function(){return Math.LOG10E},exports.LOG2E=function(){return Math.LOG2E},exports.LOG=function(r,t){return r=utils.parseNumber(r),t=utils.parseNumber(t),utils.anyIsError(r,t)?error.value:(t=void 0===t?10:t,Math.log(r)/Math.log(t))},exports.LOG10=function(r){return(r=utils.parseNumber(r))instanceof Error?r:Math.log(r)/Math.log(10)},exports.MOD=function(r,t){if(r=utils.parseNumber(r),t=utils.parseNumber(t),utils.anyIsError(r,t))return error.value;if(0===t)return error.div0;var e=Math.abs(r%t);return t>0?e:-e},exports.MROUND=function(r,t){return r=utils.parseNumber(r),t=utils.parseNumber(t),utils.anyIsError(r,t)?error.value:r*t<0?error.num:Math.round(r/t)*t},exports.MULTINOMIAL=function(){var r=utils.parseNumberArray(utils.flatten(arguments));if(r instanceof Error)return r;for(var t=0,e=1,n=0;n<r.length;n++)t+=r[n],e*=exports.FACT(r[n]);return exports.FACT(t)/e},exports.ODD=function(r){if((r=utils.parseNumber(r))instanceof Error)return r;var t=Math.ceil(Math.abs(r));return t=1&t?t:t+1,r>0?t:-t},exports.PI=function(){return Math.PI},exports.E=function(){return Math.E},exports.POWER=function(r,t){if(r=utils.parseNumber(r),t=utils.parseNumber(t),utils.anyIsError(r,t))return error.value;var e=Math.pow(r,t);return isNaN(e)?error.num:e},exports.PRODUCT=function(){var r=utils.parseNumberArray(utils.flatten(arguments));if(r instanceof Error)return r;for(var t=1,e=0;e<r.length;e++)t*=r[e];return t},exports.QUOTIENT=function(r,t){return r=utils.parseNumber(r),t=utils.parseNumber(t),utils.anyIsError(r,t)?error.value:parseInt(r/t,10)},exports.RADIANS=function(r){return(r=utils.parseNumber(r))instanceof Error?r:r*Math.PI/180},exports.RAND=function(){return Math.random()},exports.RANDBETWEEN=function(r,t){return r=utils.parseNumber(r),t=utils.parseNumber(t),utils.anyIsError(r,t)?error.value:r+Math.ceil((t-r+1)*Math.random())-1},exports.ROMAN=function(r){if((r=utils.parseNumber(r))instanceof Error)return r;for(var t=String(r).split(""),e=["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM","","X","XX","XXX","XL","L","LX","LXX","LXXX","XC","","I","II","III","IV","V","VI","VII","VIII","IX"],n="",a=3;a--;)n=(e[+t.pop()+10*a]||"")+n;return new Array(+t.join("")+1).join("M")+n},exports.ROUND=function(r,t){return r=utils.parseNumber(r),t=utils.parseNumber(t),utils.anyIsError(r,t)?error.value:Math.round(r*Math.pow(10,t))/Math.pow(10,t)},exports.ROUNDDOWN=function(r,t){return r=utils.parseNumber(r),t=utils.parseNumber(t),utils.anyIsError(r,t)?error.value:(r>0?1:-1)*Math.floor(Math.abs(r)*Math.pow(10,t))/Math.pow(10,t)},exports.ROUNDUP=function(r,t){return r=utils.parseNumber(r),t=utils.parseNumber(t),utils.anyIsError(r,t)?error.value:(r>0?1:-1)*Math.ceil(Math.abs(r)*Math.pow(10,t))/Math.pow(10,t)},exports.SEC=function(r){return(r=utils.parseNumber(r))instanceof Error?r:1/Math.cos(r)},exports.SECH=function(r){return(r=utils.parseNumber(r))instanceof Error?r:2/(Math.exp(r)+Math.exp(-r))},exports.SERIESSUM=function(r,t,e,n){if(r=utils.parseNumber(r),t=utils.parseNumber(t),e=utils.parseNumber(e),n=utils.parseNumberArray(n),utils.anyIsError(r,t,e,n))return error.value;for(var a=n[0]*Math.pow(r,t),u=1;u<n.length;u++)a+=n[u]*Math.pow(r,t+u*e);return a},exports.SIGN=function(r){return(r=utils.parseNumber(r))instanceof Error?r:r<0?-1:0===r?0:1},exports.SIN=function(r){return(r=utils.parseNumber(r))instanceof Error?r:Math.sin(r)},exports.SINH=function(r){return(r=utils.parseNumber(r))instanceof Error?r:(Math.exp(r)-Math.exp(-r))/2},exports.SQRT=function(r){return(r=utils.parseNumber(r))instanceof Error?r:r<0?error.num:Math.sqrt(r)},exports.SQRTPI=function(r){return(r=utils.parseNumber(r))instanceof Error?r:Math.sqrt(r*Math.PI)},exports.SQRT1_2=function(){return 1/Math.sqrt(2)},exports.SQRT2=function(){return Math.sqrt(2)},exports.SUBTOTAL=function(r,t){if((r=utils.parseNumber(r))instanceof Error)return r;switch(r){case 1:return statistical.AVERAGE(t);case 2:return statistical.COUNT(t);case 3:return statistical.COUNTA(t);case 4:return statistical.MAX(t);case 5:return statistical.MIN(t);case 6:return exports.PRODUCT(t);case 7:return statistical.STDEV.S(t);case 8:return statistical.STDEV.P(t);case 9:return exports.SUM(t);case 10:return statistical.VAR.S(t);case 11:return statistical.VAR.P(t);case 101:return statistical.AVERAGE(t);case 102:return statistical.COUNT(t);case 103:return statistical.COUNTA(t);case 104:return statistical.MAX(t);case 105:return statistical.MIN(t);case 106:return exports.PRODUCT(t);case 107:return statistical.STDEV.S(t);case 108:return statistical.STDEV.P(t);case 109:return exports.SUM(t);case 110:return statistical.VAR.S(t);case 111:return statistical.VAR.P(t)}},exports.ADD=function(r,t){return 2!==arguments.length?error.na:(r=utils.parseNumber(r),t=utils.parseNumber(t),utils.anyIsError(r,t)?error.value:r+t)},exports.MINUS=function(r,t){return 2!==arguments.length?error.na:(r=utils.parseNumber(r),t=utils.parseNumber(t),utils.anyIsError(r,t)?error.value:r-t)},exports.DIVIDE=function(r,t){return 2!==arguments.length?error.na:(r=utils.parseNumber(r),t=utils.parseNumber(t),utils.anyIsError(r,t)?error.value:0===t?error.div0:r/t)},exports.MULTIPLY=function(r,t){return 2!==arguments.length?error.na:(r=utils.parseNumber(r),t=utils.parseNumber(t),utils.anyIsError(r,t)?error.value:r*t)},exports.GTE=function(r,t){return 2!==arguments.length?error.na:(r=utils.parseNumber(r),t=utils.parseNumber(t),utils.anyIsError(r,t)?error.error:r>=t)},exports.LT=function(r,t){return 2!==arguments.length?error.na:(r=utils.parseNumber(r),t=utils.parseNumber(t),utils.anyIsError(r,t)?error.error:r<t)},exports.LTE=function(r,t){return 2!==arguments.length?error.na:(r=utils.parseNumber(r),t=utils.parseNumber(t),utils.anyIsError(r,t)?error.error:r<=t)},exports.EQ=function(r,t){return 2!==arguments.length?error.na:r===t},exports.NE=function(r,t){return 2!==arguments.length?error.na:r!==t},exports.POW=function(r,t){return 2!==arguments.length?error.na:(r=utils.parseNumber(r),t=utils.parseNumber(t),utils.anyIsError(r,t)?error.error:exports.POWER(r,t))},exports.SUM=function(){var r=0;return utils.arrayEach(utils.argsToArray(arguments),function(t){if("number"==typeof t)r+=t;else if("string"==typeof t){var e=parseFloat(t);isNaN(e)||(r+=e)}else Array.isArray(t)&&(r+=exports.SUM.apply(null,t))}),r},exports.SUMIF=function(range,criteria){if(range=utils.parseNumberArray(utils.flatten(range)),range instanceof Error)return range;for(var result=0,i=0;i<range.length;i++)result+=eval(range[i]+criteria)?range[i]:0;return result},exports.SUMIFS=function(){var args=utils.argsToArray(arguments),range=utils.parseNumberArray(utils.flatten(args.shift()));if(range instanceof Error)return range;for(var criteria=args,n_range_elements=range.length,n_criterias=criteria.length,result=0,i=0;i<n_range_elements;i++){for(var el=range[i],condition="",c=0;c<n_criterias;c++)condition+=el+criteria[c],c!==n_criterias-1&&(condition+="&&");eval(condition)&&(result+=el)}return result},exports.SUMPRODUCT=function(){if(!arguments||0===arguments.length)return error.value;for(var r,t,e,n,a=arguments.length+1,u=0,i=0;i<arguments[0].length;i++)if(arguments[0][i]instanceof Array)for(var o=0;o<arguments[0][i].length;o++){for(r=1,t=1;t<a;t++){if((n=utils.parseNumber(arguments[t-1][i][o]))instanceof Error)return n;r*=n}u+=r}else{for(r=1,t=1;t<a;t++){if((e=utils.parseNumber(arguments[t-1][i]))instanceof Error)return e;r*=e}u+=r}return u},exports.SUMSQ=function(){var r=utils.parseNumberArray(utils.flatten(arguments));if(r instanceof Error)return r;for(var t=0,e=r.length,n=0;n<e;n++)t+=information.ISNUMBER(r[n])?r[n]*r[n]:0;return t},exports.SUMX2MY2=function(r,t){if(r=utils.parseNumberArray(utils.flatten(r)),t=utils.parseNumberArray(utils.flatten(t)),utils.anyIsError(r,t))return error.value;for(var e=0,n=0;n<r.length;n++)e+=r[n]*r[n]-t[n]*t[n];return e},exports.SUMX2PY2=function(r,t){if(r=utils.parseNumberArray(utils.flatten(r)),t=utils.parseNumberArray(utils.flatten(t)),utils.anyIsError(r,t))return error.value;var e=0;r=utils.parseNumberArray(utils.flatten(r)),t=utils.parseNumberArray(utils.flatten(t));for(var n=0;n<r.length;n++)e+=r[n]*r[n]+t[n]*t[n];return e},exports.SUMXMY2=function(r,t){if(r=utils.parseNumberArray(utils.flatten(r)),t=utils.parseNumberArray(utils.flatten(t)),utils.anyIsError(r,t))return error.value;var e=0;r=utils.flatten(r),t=utils.flatten(t);for(var n=0;n<r.length;n++)e+=Math.pow(r[n]-t[n],2);return e},exports.TAN=function(r){return(r=utils.parseNumber(r))instanceof Error?r:Math.tan(r)},exports.TANH=function(r){if((r=utils.parseNumber(r))instanceof Error)return r;var t=Math.exp(2*r);return(t-1)/(t+1)},exports.TRUNC=function(r,t){return t=void 0===t?0:t,r=utils.parseNumber(r),t=utils.parseNumber(t),utils.anyIsError(r,t)?error.value:(r>0?1:-1)*Math.floor(Math.abs(r)*Math.pow(10,t))/Math.pow(10,t)}},function(r,t,e){var n=e(0),a=e(1),u=new Date(1900,0,1),i=[void 0,0,1,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,1,2,3,4,5,6,0],o=[[],[1,2,3,4,5,6,7],[7,1,2,3,4,5,6],[6,0,1,2,3,4,5],[],[],[],[],[],[],[],[7,1,2,3,4,5,6],[6,7,1,2,3,4,5],[5,6,7,1,2,3,4],[4,5,6,7,1,2,3],[3,4,5,6,7,1,2],[2,3,4,5,6,7,1],[1,2,3,4,5,6,7]],s=[[],[6,0],[0,1],[1,2],[2,3],[3,4],[4,5],[5,6],void 0,void 0,void 0,[0,0],[1,1],[2,2],[3,3],[4,4],[5,5],[6,6]];function l(r){return 1===new Date(r,1,29).getMonth()}function f(r,t){return Math.ceil((t-r)/1e3/60/60/24)}function c(r){return(r-u)/864e5+(r>-22038912e5?2:1)}t.DATE=function(r,t,e){return r=a.parseNumber(r),t=a.parseNumber(t),e=a.parseNumber(e),a.anyIsError(r,t,e)?n.value:r<0||t<0||e<0?n.num:new Date(r,t-1,e)},t.DATEVALUE=function(r){if("string"!=typeof r)return n.value;var t=Date.parse(r);return isNaN(t)?n.value:t<=-22038912e5?(t-u)/864e5+1:(t-u)/864e5+2},t.DAY=function(r){var t=a.parseDate(r);return t instanceof Error?t:t.getDate()},t.DAYS=function(r,t){return r=a.parseDate(r),t=a.parseDate(t),r instanceof Error?r:t instanceof Error?t:c(r)-c(t)},t.DAYS360=function(r,t,e){if(e=a.parseBool(e),r=a.parseDate(r),t=a.parseDate(t),r instanceof Error)return r;if(t instanceof Error)return t;if(e instanceof Error)return e;var n,u,i=r.getMonth(),o=t.getMonth();if(e)n=31===r.getDate()?30:r.getDate(),u=31===t.getDate()?30:t.getDate();else{var s=new Date(r.getFullYear(),i+1,0).getDate(),l=new Date(t.getFullYear(),o+1,0).getDate();n=r.getDate()===s?30:r.getDate(),t.getDate()===l?n<30?(o++,u=1):u=30:u=t.getDate()}return 360*(t.getFullYear()-r.getFullYear())+30*(o-i)+(u-n)},t.EDATE=function(r,t){return(r=a.parseDate(r))instanceof Error?r:isNaN(t)?n.value:(t=parseInt(t,10),r.setMonth(r.getMonth()+t),c(r))},t.EOMONTH=function(r,t){return(r=a.parseDate(r))instanceof Error?r:isNaN(t)?n.value:(t=parseInt(t,10),c(new Date(r.getFullYear(),r.getMonth()+t+1,0)))},t.HOUR=function(r){return(r=a.parseDate(r))instanceof Error?r:r.getHours()},t.INTERVAL=function(r){if("number"!=typeof r&&"string"!=typeof r)return n.value;r=parseInt(r,10);var t=Math.floor(r/94608e4);r%=94608e4;var e=Math.floor(r/2592e3);r%=2592e3;var a=Math.floor(r/86400);r%=86400;var u=Math.floor(r/3600);r%=3600;var i=Math.floor(r/60),o=r%=60;return"P"+(t=t>0?t+"Y":"")+(e=e>0?e+"M":"")+(a=a>0?a+"D":"")+"T"+(u=u>0?u+"H":"")+(i=i>0?i+"M":"")+(o>0?o+"S":"")},t.ISOWEEKNUM=function(r){if((r=a.parseDate(r))instanceof Error)return r;r.setHours(0,0,0),r.setDate(r.getDate()+4-(r.getDay()||7));var t=new Date(r.getFullYear(),0,1);return Math.ceil(((r-t)/864e5+1)/7)},t.MINUTE=function(r){return(r=a.parseDate(r))instanceof Error?r:r.getMinutes()},t.MONTH=function(r){return(r=a.parseDate(r))instanceof Error?r:r.getMonth()+1},t.NETWORKDAYS=function(r,t,e){return this.NETWORKDAYS.INTL(r,t,1,e)},t.NETWORKDAYS.INTL=function(r,t,e,u){if((r=a.parseDate(r))instanceof Error)return r;if((t=a.parseDate(t))instanceof Error)return t;if(!((e=void 0===e?s[1]:s[e])instanceof Array))return n.value;void 0===u?u=[]:u instanceof Array||(u=[u]);for(var i=0;i<u.length;i++){var o=a.parseDate(u[i]);if(o instanceof Error)return o;u[i]=o}var l=(t-r)/864e5+1,f=l,c=r;for(i=0;i<l;i++){var p=(new Date).getTimezoneOffset()>0?c.getUTCDay():c.getDay(),h=!1;p!==e[0]&&p!==e[1]||(h=!0);for(var m=0;m<u.length;m++){var E=u[m];if(E.getDate()===c.getDate()&&E.getMonth()===c.getMonth()&&E.getFullYear()===c.getFullYear()){h=!0;break}}h&&f--,c.setDate(c.getDate()+1)}return f},t.NOW=function(){return new Date},t.SECOND=function(r){return(r=a.parseDate(r))instanceof Error?r:r.getSeconds()},t.TIME=function(r,t,e){return r=a.parseNumber(r),t=a.parseNumber(t),e=a.parseNumber(e),a.anyIsError(r,t,e)?n.value:r<0||t<0||e<0?n.num:(3600*r+60*t+e)/86400},t.TIMEVALUE=function(r){return(r=a.parseDate(r))instanceof Error?r:(3600*r.getHours()+60*r.getMinutes()+r.getSeconds())/86400},t.TODAY=function(){return new Date},t.WEEKDAY=function(r,t){if((r=a.parseDate(r))instanceof Error)return r;void 0===t&&(t=1);var e=r.getDay();return o[t][e]},t.WEEKNUM=function(r,t){if((r=a.parseDate(r))instanceof Error)return r;if(void 0===t&&(t=1),21===t)return this.ISOWEEKNUM(r);var e=i[t],n=new Date(r.getFullYear(),0,1),u=n.getDay()<e?1:0;return n-=24*Math.abs(n.getDay()-e)*60*60*1e3,Math.floor((r-n)/864e5/7+1)+u},t.WORKDAY=function(r,t,e){return this.WORKDAY.INTL(r,t,1,e)},t.WORKDAY.INTL=function(r,t,e,u){if((r=a.parseDate(r))instanceof Error)return r;if((t=a.parseNumber(t))instanceof Error)return t;if(t<0)return n.num;if(!((e=void 0===e?s[1]:s[e])instanceof Array))return n.value;void 0===u?u=[]:u instanceof Array||(u=[u]);for(var i=0;i<u.length;i++){var o=a.parseDate(u[i]);if(o instanceof Error)return o;u[i]=o}for(var l=0;l<t;){r.setDate(r.getDate()+1);var f=r.getDay();if(f!==e[0]&&f!==e[1]){for(var c=0;c<u.length;c++){var p=u[c];if(p.getDate()===r.getDate()&&p.getMonth()===r.getMonth()&&p.getFullYear()===r.getFullYear()){l--;break}}l++}}return r},t.YEAR=function(r){return(r=a.parseDate(r))instanceof Error?r:r.getFullYear()},t.YEARFRAC=function(r,t,e){if((r=a.parseDate(r))instanceof Error)return r;if((t=a.parseDate(t))instanceof Error)return t;e=e||0;var n=r.getDate(),u=r.getMonth()+1,i=r.getFullYear(),o=t.getDate(),s=t.getMonth()+1,c=t.getFullYear();switch(e){case 0:return 31===n&&31===o?(n=30,o=30):31===n?n=30:30===n&&31===o&&(o=30),(