Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

sampson

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sampson - npm Package Compare versions

Comparing version 0.2.2 to 0.2.3

lib/distributions/weibull.js

2

dist/lib.min.js

@@ -1,1 +0,1 @@

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(t.sampson=t.sampson||{})}(this,function(t){"use strict";function e(t,e){if(e>t)return NaN;for(var r=1,n=1;e>=n;n++)r*=t--,r/=n;return r}function r(t){var e=1/(1+.5*Math.abs(t)),r=e*Math.exp(-(t*t)-1.26551223+1.00002368*e+.37409196*Math.pow(e,2)+.09678418*Math.pow(e,3)-.18628806*Math.pow(e,4)+.27886807*Math.pow(e,5)-1.13520398*Math.pow(e,6)+1.48851587*Math.pow(e,7)-.82215223*Math.pow(e,8)+.17087277*Math.pow(e,9));return t>=0?1-r:r-1}function n(t){return 0>t?NaN:0==t?1:t*n(t-1)}function a(t){if(0>t)return NaN;for(var e=C[0],r=C.length-1;r>0;--r)e+=C[r]/(t+r);var n=t+N+.5;return.5*Math.log(2*Math.PI)+(t+.5)*Math.log(n)-n+Math.log(e)-Math.log(t)}function o(t){var e=t;if(0>e&&e%1==0)return 1/0;if(.5>e)return Math.PI/(Math.sin(Math.PI*e)*o(1-e));if(e>100)return Math.exp(a(e));e-=1;for(var r=E[0],n=1;O+2>n;n++)r+=E[n]/(e+n);var i=e+O+.5;return Math.sqrt(2*Math.PI)*Math.pow(i,e+.5)*Math.exp(-i)*r}function i(t,e){var r=void 0,n=void 0,o=void 0;for(o=1,r=1,n=1;100>o&&(r+=n*=e/(t+o),!(q>n/r));++o);return Math.exp(t*Math.log(e)-e-a(t+1)+Math.log(r))}function u(t){if(0==t.length)return 0;var e=0;return t.reduce(function(t,r){if(isNaN(r))return t;var n=r-e,a=t+n;return e=a-t-n,a},0)}function s(t){return 0==t.length?NaN:u(t)/t.filter(function(t){return!isNaN(t)}).length}function l(t){if(0==t.length)return NaN;if(1==t.length)return t;var e=function(){var e=t.reduce(function(t,e){return t[e]?t[e]++:t[e]=1,t},{}),r=Object.keys(e),n=r.map(function(t){return e[t]}).reduce(function(t,e){return e>t?e:t});return{v:r.filter(function(t){return e[t]==n}).map(function(t){return Number(t)})}}();return"object"===("undefined"==typeof e?"undefined":g["typeof"](e))?e.v:void 0}function f(t,e,r,n){var a=t.slice(0);if(0==a.length||e>=a.length)return NaN;var o=r||0,i=n||a.length-1;if(o==i)return a[o];for(;i>o;){if(i-o>D){var u=i-o+1,s=e-o+1,l=Math.log(u),h=j*Math.exp(2*l/3),c=j*Math.sqrt(l*h*(u-h)/u),d=Math.max(o,Math.floor(e-s*h/u+c)),m=Math.min(i,Math.floor(e+(u-s)*h/u+c));f(a,e,d,m)}var p=a[e],y=o,b=i;for(v(a,y,e),a[b]>p&&v(a,y,b);b>y;){for(v(a,y,b),y++,b--;a[y]<p;)y++;for(;a[b]>p;)b--}a[o]===p?v(a,o,b):(b++,v(a,b,i)),b>e?i=b-1:(o=b+1,i=b-1)}return a[e]}function v(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function h(t){var e=void 0;if(0==t.length)e=NaN;else{var r=t.length%2==0;r?(e=f(t,t.length/2),e+=f(t,t.length/2-1),e/=2):e=f(t,(t.length-1)/2)}return e}function c(t,e){if(void 0==e||e>1||0>e)throw new Error("p must be between zero and one inclusive.");if(void 0==t)throw new Error("need a list to provide a percentile.");if(0==t.length)return NaN;var r=Math.floor(t.length*e);return r>=t.length&&(r=t.length-1),f(t,r)}function d(t,e){if(!Array.isArray(t)||0==t.length)throw new Error("you must provide an array.");if(!Array.isArray(e)||0==e.length)throw new Error("you must provide some quantiles.");var r=e.reduce(function(t,e){return e>=0&&1>=e&&t},!0);if(!r)throw new Error("quantiles must be between zero and one inclusive.");if(e.length>1)return e.map(function(e){return d(t,[e])});var n=e[0];if(0==n)return t[0];if(1==n)return t[t.length-1];var a=t.length*n;return a%1?f(t,Math.floor(a)):t.length%2?f(t,a):(f(t,a-1)+f(t,a))/2}function m(t){return 0==t.length?NaN:Math.max.apply(Math,g.toConsumableArray(t))-Math.min.apply(Math,g.toConsumableArray(t))}function p(t,e,r){if(0==t.length)return NaN;var n=function(){var n=s(t);return{v:t.reduce(function(t,a){var o=a-n;return r&&(o=Math.abs(o)),t+Math.pow(o,e)},0)}}();return"object"===("undefined"==typeof n?"undefined":g["typeof"](n))?n.v:void 0}function y(t){return 0==t.length?NaN:p(t,2)/t.length}function b(t){var e=y(t);return isNaN(e)?0:Math.sqrt(e)}function k(t){return(t+.5)*Math.log(t)-t+Math.log(2*Math.PI)/2}function M(t,e,r){return(t-e)/r}function w(t,e,r){if(!t)return NaN;if(e){var n=r||0,a=((t.size-1)*t.variance+(e.size-1)*e.variance)/(t.size+e.size-2);return(t.mean-e.mean-n)/Math.sqrt(a*(1/t.size+1/e.size))}return(t.mean-r)/(t.std/Math.sqrt(t.size))}var g={};g["typeof"]="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},g.classCallCheck=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},g.createClass=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),g["extends"]=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},g.get=function Y(t,e,r){null===t&&(t=Function.prototype);var n=Object.getOwnPropertyDescriptor(t,e);if(void 0===n){var a=Object.getPrototypeOf(t);return null===a?void 0:Y(a,e,r)}if("value"in n)return n.value;var o=n.get;if(void 0!==o)return o.call(r)},g.inherits=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)},g.possibleConstructorReturn=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e},g.toConsumableArray=function(t){if(Array.isArray(t)){for(var e=0,r=Array(t.length);e<t.length;e++)r[e]=t[e];return r}return Array.from(t)};var N=607/128,C=[.9999999999999971,57.15623566586292,-59.59796035547549,14.136097974741746,-.4919138160976202,3399464998481189e-20,4652362892704858e-20,-9837447530487956e-20,.0001580887032249125,-.00021026444172410488,.00021743961811521265,-.0001643181065367639,8441822398385275e-20,-26190838401581408e-21,36899182659531625e-22],O=7,E=[.9999999999998099,676.5203681218851,-1259.1392167224028,771.3234287776531,-176.6150291621406,12.507343278686905,-.13857109526572012,9984369578019572e-21,1.5056327351493116e-7],q=1e-14,D=600,j=.5,x=function(){function t(e){g.classCallCheck(this,t);var r=Object.assign({},e);this.params=this.constructor.validate(r),this.mean=this.constructor.mean(r),this.stdDev=this.constructor.stdDev(r),this.relStdDev=this.constructor.relStdDev(r),this.variance=this.constructor.variance(r),this.skewness=this.constructor.skewness(r),this.kurtosis=this.constructor.kurtosis(r)}return g.createClass(t,null,[{key:"validate",value:function(){throw new Error("You must define a validation function for your distribution.")}},{key:"mean",value:function(){}},{key:"variance",value:function(){}},{key:"stdDev",value:function(){}},{key:"relStdDev",value:function(){}},{key:"skewness",value:function(){}},{key:"kurtosis",value:function(){}},{key:"pdf",value:function(){}},{key:"cdf",value:function(){}},{key:"random",value:function(){return Math.random()}},{key:"sample",value:function(t,e){var r=this;return Array.apply(null,Array(t)).map(function(){return r.random(e)})}}]),g.createClass(t,[{key:"pdf",value:function(t){return this.constructor.pdf(t,this.params)}},{key:"cdf",value:function(t){return this.constructor.cdf(t,this.params)}},{key:"random",value:function(){return this.constructor.random(this.params)}},{key:"sample",value:function(t){return this.constructor.sample(t,this.params)}}]),t}();x.covariates=0,x.discrete=!1;var P=function(t){function e(){return g.classCallCheck(this,e),g.possibleConstructorReturn(this,Object.getPrototypeOf(e).apply(this,arguments))}return g.inherits(e,t),g.createClass(e,null,[{key:"validate",value:function(t){if(!t||void 0===t.a||void 0===t.b)throw new Error("need a parameter object of shape { a: number, b: number }.");var e=t.a,r=t.b;if("number"!=typeof e)throw Error("a must be a number.");if("number"!=typeof r||0>=r)throw RangeError("b must be greater than zero.");return t}},{key:"random",value:function(t){for(var r=this.validate(t),n=r.a,a=r.b,o=void 0;!o||.5==o;)o=g.get(Object.getPrototypeOf(e),"random",this).call(this);return n+a*Math.tan(Math.PI*o)}},{key:"pdf",value:function(t,e){if("number"!=typeof t)throw new TypeError("x must be a number");var r=this.validate(e),n=r.a,a=r.b;return a/(Math.pow(t-n,2)+Math.pow(a,2))/Math.PI}},{key:"cdf",value:function(t,e){if("number"!=typeof t)throw new TypeError("x must be a number");var r=this.validate(e),n=r.a,a=r.b;return Math.atan((t-n)/a)/Math.PI+.5}},{key:"mean",value:function(t){return NaN}},{key:"variance",value:function(t){return NaN}},{key:"stdDev",value:function(t){return NaN}},{key:"relStdDev",value:function(t){return NaN}},{key:"skewness",value:function(t){return NaN}},{key:"kurtosis",value:function(t){return NaN}}]),e}(x);P.covariates=1,P.discrete=!1;var S=NaN,z=function(t){function e(){return g.classCallCheck(this,e),g.possibleConstructorReturn(this,Object.getPrototypeOf(e).apply(this,arguments))}return g.inherits(e,t),g.createClass(e,null,[{key:"validate",value:function(t){if(!t||void 0===t.mu||void 0==t.sigma)throw new Error("need a parameter object of shape { mu: number, simga: number }.");var e=t.mu,r=t.sigma;if("number"!=typeof e||"number"!=typeof r)throw new Error("Need mu and sigma for the normal distribution.");return t}},{key:"random",value:function(t){var r=this.validate(t),n=r.mu,a=r.sigma,o=S;if(S=NaN,!o){var i=2*g.get(Object.getPrototypeOf(e),"random",this).call(this)*Math.PI,u=Math.sqrt(-2*Math.log(1-g.get(Object.getPrototypeOf(e),"random",this).call(this)));o=Math.cos(i)*u,S=Math.sin(i)*u}return n+o*a}},{key:"pdf",value:function(t,e){if("number"!=typeof t)throw new Error("x must be a number.");var r=this.validate(e),n=r.mu,a=r.sigma;t/Math.abs(a);return 1/(Math.sqrt(2*Math.PI)*Math.abs(a))*Math.exp(-1*Math.pow(t-n,2)/(2*a*a))}},{key:"cdf",value:function(t,e){if("number"!=typeof t)throw new Error("x must be a number.");var n=this.validate(e),a=n.mu,o=n.sigma;return.5*(1+r((t-a)/(o*Math.sqrt(2))))}},{key:"mean",value:function(t){var e=this.validate(t),r=e.mu;e.sigma;return r}},{key:"variance",value:function(t){var e=this.validate(t),r=(e.mu,e.sigma);return r*r}},{key:"stdDev",value:function(t){var e=this.validate(t),r=(e.mu,e.sigma);return r}},{key:"relStdDev",value:function(t){var e=this.validate(t),r=e.mu,n=e.sigma;return n/r}},{key:"skewness",value:function(t){return 0}},{key:"kurtosis",value:function(t){return 3}}]),e}(x);z.covariates=2,z.discrete=!1;var A=function(t){function e(){return g.classCallCheck(this,e),g.possibleConstructorReturn(this,Object.getPrototypeOf(e).apply(this,arguments))}return g.inherits(e,t),g.createClass(e,null,[{key:"validate",value:function(t){if(!t||void 0===t.mu)throw new Error("need a parameter object of shape { mu: number }.");var e=t.mu;if("number"!=typeof e||0>=e)throw RangeError("mu must be greater than zero.");return t}},{key:"random",value:function(t){var r=this.validate(t),n=r.mu;return-n*Math.log1p(-g.get(Object.getPrototypeOf(e),"random",this).call(this))}},{key:"pdf",value:function(t,e){var r=this.validate(e),n=r.mu;if("number"!=typeof t)throw new Error("x must be a number.");return 0>t?0:Math.exp(-t/n)/n}},{key:"cdf",value:function(t,e){var r=this.validate(e),n=r.mu;if("number"!=typeof t)throw new Error("x must be a number.");return 0>=t?0:1-Math.exp(-t/n)}},{key:"mean",value:function(t){var e=this.validate(t),r=e.mu;return r}},{key:"variance",value:function(t){var e=this.validate(t),r=e.mu;return r*r}},{key:"stdDev",value:function(t){var e=this.validate(t),r=e.mu;return r}},{key:"relStdDev",value:function(t){return 1}},{key:"skewness",value:function(t){return 2}},{key:"kurtosis",value:function(t){return 9}}]),e}(x);A.covariates=1;var R=function(t){function e(){return g.classCallCheck(this,e),g.possibleConstructorReturn(this,Object.getPrototypeOf(e).apply(this,arguments))}return g.inherits(e,t),g.createClass(e,null,[{key:"validate",value:function(t){if(!t||void 0===t.a||void 0===t.b)throw new Error("need a parameter object of shape { a: number, b: number }.");var e=t.a,r=t.b;if("number"!=typeof e||"number"!=typeof r)throw new Error("Need a and b for the gamma distribution.");if(0>=e)throw new Error("a must be greater than zero.");if(0>=r)throw new Error("b must be greater than zero.");return t}},{key:"random",value:function(t){var r=this.validate(t),n=r.a,a=r.b;if(1>n){var o=g.get(Object.getPrototypeOf(e),"random",this).call(this);return this.random({a:1+n,b:a})*Math.pow(o,1/n)}for(var i=void 0,u=void 0,s=void 0,l=n-1/3,f=1/Math.sqrt(9*l);;){do i=z.random({mu:0,sigma:1}),u=1+f*i;while(0>=u);for(u=u*u*u;!s;)s=g.get(Object.getPrototypeOf(e),"random",this).call(this);if(1-.0331*i*i*i*i>s)break;if(Math.log(s)<.5*i*i+l*(1-u+Math.log(u)))break}return l*u/a}},{key:"pdf",value:function(t,e){var r=this.validate(e),n=r.a,o=r.b;if("number"!=typeof t)throw new Error("x must be a number.");return 0>t?0:0==t?1==n?o:0:1==n?Math.exp(-t*o)*o:Math.exp((n-1)*Math.log(t*o)-t*o-a(n))*o}},{key:"cdf",value:function(t,e){var r=this.validate(e),n=r.a,a=r.b;if("number"!=typeof t)throw new Error("x must be a number.");return 0>=t?0:i(n,t*a)}},{key:"mean",value:function(t){var e=this.validate(t),r=e.a,n=e.b;return r/n}},{key:"variance",value:function(t){var e=this.validate(t),r=e.a,n=e.b;return r/(n*n)}},{key:"stdDev",value:function(t){var e=this.validate(t),r=e.a,n=e.b;return Math.sqrt(r/(n*n))}},{key:"relStdDev",value:function(t){var e=this.validate(t),r=e.a;e.b;return 1/Math.sqrt(r)}},{key:"skewness",value:function(t){var e=this.validate(t),r=e.a;e.b;return 2/Math.sqrt(r)}},{key:"kurtosis",value:function(t){var e=this.validate(t),r=e.a;e.b;return 6/r}}]),e}(x);R.covariates=2;var I=14,T=function(t){function r(){return g.classCallCheck(this,r),g.possibleConstructorReturn(this,Object.getPrototypeOf(r).apply(this,arguments))}return g.inherits(r,t),g.createClass(r,null,[{key:"validate",value:function(t){if(!t||void 0===t.n||void 0===t.p)throw new Error("need a parameter object of shape { n: number, p: number }.");var e=t.n,r=t.p;if("number"!=typeof r||r>1||0>r)throw new Error("p must be between zero and one inclusive.");if("number"!=typeof e||0>e)throw new Error("n must be positive or zero.");return t}},{key:"random",value:function(t){var e=this,n=this.validate(t),a=n.n,o=n.p;if(0==a)return 0;var i=!1,u=0,s=void 0;o>.5?(i=!0,s=1-o):s=o;var l=1-s,f=s/l,v=a*s;if(I>v)for(var h=Math.pow(l,a),c=g.get(Object.getPrototypeOf(r),"random",this).call(this);a>=u&&c>=h;)c-=h,h*=f*(a-u)/(u+1),u++;else!function(){var t=v+s,n=Math.floor(t),o=n+.5,i=v*l,f=Math.floor(2.195*Math.sqrt(i)-4.6*l)+.5,h=o-f,c=o+f,d=.134+20.5/(15.3+n),m=f*(1+d+d),p=(t-h)/(t-h*s),y=p*(1+.5*p),b=(c-t)/(c*l),M=b*(1.5+b),w=m+d/y,N=w+d/M,C=void 0,O=void 0,E=void 0,q=void 0,D=function j(){if(E=g.get(Object.getPrototypeOf(r),"random",e).call(e)*N,q=g.get(Object.getPrototypeOf(r),"random",e).call(e),f>=E)u=Math.floor(o-f*q+E);else if(m>=E){var t=h+(E-f)/d;q=q*d+1-Math.abs(t-o)/f,q>1||0>=q?j():u=t}else w>=E?(u=Math.floor(h+Math.log(q)/y),q*=(E-m)*y):(u=Math.floor(c-Math.log(q)/M),q*=(E-w)*M);C=Math.log(q);var i=u+1,v=a-u-1,p=n+1,b=a+1-n;O=o*Math.log(p/i)+(a-n+.5)*Math.log(b/v)+(u-n)*Math.log(v*s/(i*l))+k(p)+k(b)-k(i)-k(v),C>O&&j()};D()}();return Math.floor(i?a-u:u)}},{key:"pdf",value:function(t,r){var n=this.validate(r),a=n.n,o=n.p;if("number"!=typeof t)throw new Error("k must be a number.");if(0>t||t>a)return 0;var i=void 0;if(0==o)i=0==t?1:0;else{if(1!=o){var u=e(a,t),s=Math.pow(o,t)*Math.pow(1-o,a-t);return"Infinity"==u?0==s?0:u:u*s}i=t==a?1:0}return i}},{key:"cdf",value:function(t,r){var n=this.validate(r),a=n.n,o=n.p;if("number"!=typeof t)throw new Error("k must be a number.");return 0>t?0:t>a?1:Array.apply(null,Array(Math.floor(t)+1)).map(function(t,r){return e(a,r)*Math.pow(o,r)*Math.pow(1-o,a-r)}).reduce(function(t,e){return t+e},0)}},{key:"mean",value:function(t){var e=this.validate(t),r=e.n,n=e.p;return r*n}},{key:"variance",value:function(t){var e=this.validate(t),r=e.n,n=e.p;return r*n*(1-n)}},{key:"stdDev",value:function(t){var e=this.validate(t),r=e.n,n=e.p;return Math.sqrt(r*n*(1-n))}},{key:"relStdDev",value:function(t){var e=this.validate(t),r=e.n,n=e.p;return Math.sqrt((1-n)/(r*n))}},{key:"skewness",value:function(t){var e=this.validate(t),r=e.n,n=e.p;return(1-2*n)/Math.sqrt(r*n*(1-n))}},{key:"kurtosis",value:function(t){var e=this.validate(t),r=e.n,n=e.p;return 3-6/r+1/(r*n*(1-n))}}]),r}(x);T.covariates=2,T.discrete=!0;var _=function(t){function e(t){return g.classCallCheck(this,e),g.possibleConstructorReturn(this,Object.getPrototypeOf(e).call(this,g["extends"]({},t,{n:1})))}return g.inherits(e,t),g.createClass(e,null,[{key:"random",value:function(t){var e=this.validate(g["extends"]({},t,{n:1})),r=e.p,n=x.random();return r>n?1:0}},{key:"pdf",value:function(t,e){var r=this.validate(g["extends"]({},e,{n:1})),n=r.p;if("number"!=typeof t)throw new Error("k must be a number.");return 0==t?1-n:1==t?n:0}},{key:"cdf",value:function(t,e){var r=this.validate(g["extends"]({},e,{n:1})),n=r.p;if("number"!=typeof t)throw new Error("k must be a number.");return 1==t?n:0==t?1-n:NaN}}]),e}(T);_.covariates=1;var B=function(t){function e(){return g.classCallCheck(this,e),g.possibleConstructorReturn(this,Object.getPrototypeOf(e).apply(this,arguments))}return g.inherits(e,t),g.createClass(e,null,[{key:"validate",value:function(t){if(!t||void 0===t.df)throw new Error("need a parameter object of shape { df: number }.");var e=t.df;if("number"!=typeof e||0>=e)throw RangeError("df must be greater than zero.");return t}},{key:"random",value:function(t){var e=this.validate(t),r=e.df;return 2*R.random({a:r/2,b:1})}},{key:"pdf",value:function(t,e){var r=this.validate(e),n=r.df;if("number"!=typeof t)throw new TypeError("x must be a number");return 0>t?0:2==n?Math.exp(-t/2)/2:Math.exp((n/2-1)*Math.log(t/2)-t/2-a(n/2))/2}},{key:"cdf",value:function(t,e){var r=this.validate(e),n=r.df;if("number"!=typeof t)throw new TypeError("x must be a number");return 0>t?0:2==n?1-Math.exp(-t/2):i(n/2,t/2)}},{key:"mean",value:function(t){var e=this.validate(t),r=e.df;return r}},{key:"variance",value:function(t){var e=this.validate(t),r=e.df;return 2*r}},{key:"stdDev",value:function(t){var e=this.validate(t),r=e.df;return Math.sqrt(2*r)}},{key:"relStdDev",value:function(t){var e=this.validate(t),r=e.df;return Math.sqrt(2/r)}},{key:"skewness",value:function(t){var e=this.validate(t),r=e.df;return Math.pow(2,1.5)/Math.sqrt(r)}},{key:"kurtosis",value:function(t){var e=this.validate(t),r=e.df;return 3+12/r}}]),e}(x);B.covariates=1;var F=function(t){function e(){return g.classCallCheck(this,e),g.possibleConstructorReturn(this,Object.getPrototypeOf(e).apply(this,arguments))}return g.inherits(e,t),g.createClass(e,null,[{key:"validate",value:function(t){if(!t||void 0===t.df)throw new Error("need a parameter object of shape { df: number }.");var e=t.df;if("number"!=typeof e||0>=e)throw RangeError("df must be greater than zero.");return t}},{key:"random",value:function(t){var e=this.validate(t),r=e.df;if(2>=r){var n=z.random({mu:0,sigma:1}),a=B.random({df:r});return n/Math.sqrt(a/r)}var o=void 0,i=void 0,u=void 0;do o=z.random({mu:0,sigma:1}),i=A.random({mu:1/(r/2-1)}),u=o*i/(r-2);while(0>1-u||Math.exp(-i-u)>1-u);return o/Math.sqrt((1-2/r)*(1-u))}},{key:"pdf",value:function(t,e){if("number"!=typeof t)throw TypeError("t must be a number.");var r=this.validate(e),n=r.df,o=a(n/2),i=a((n+1)/2);return Math.exp(i-o)/Math.sqrt(Math.PI*n)*Math.pow(1+t*t/n,-(n+1)/2)}},{key:"cdf",value:function(t,e){if("number"!=typeof t)throw TypeError("t must be a number.");var r=this.validate(e),n=r.df,a=void 0,o=void 0,i=void 0,u=void 0,s=void 0,l=void 0,f=void 0,v=void 0,h=void 0,c=void 0,d=1/Math.PI;if(i=n,a=t/Math.sqrt(i),o=i/(i+t*t),u=n-2,s=i%2,l=1,f=1,i=1,v=2+s,h=v,u>=2)for(c=v;u>=c;c+=2)f=f*o*(h-1)/h,l+=f,i=l,h+=2;return 1!=s?.5+.5*a*Math.sqrt(o)*l:(1==n&&(l=0),.5+(a*o*l+Math.atan(a))*d)}},{key:"mean",value:function(t){var e=this.validate(t),r=e.df;return 1>=r?NaN:0}},{key:"variance",value:function(t){var e=this.validate(t),r=e.df;return 1>r?NaN:2>=r?1/0:r/(r-2)}},{key:"stdDev",value:function(t){var e=this.validate(t),r=e.df;return 1>r?NaN:2>=r?1/0:Math.sqrt(r/(r-2))}},{key:"relStdDev",value:function(t){var e=this.validate(t);e.df;return NaN}},{key:"skewness",value:function(t){var e=this.validate(t),r=e.df;return r>3?0:NaN}},{key:"kurtosis",value:function(t){var e=this.validate(t),r=e.df;return 4>=r?NaN:3*(r-2)/(r-4)}}]),e}(x);F.covariates=1;var G=function(){function t(e){var r=this;if(g.classCallCheck(this,t),this.covariance=function(t){return r.constructor.covariance(r,t)},this.correlation=function(t){return r.constructor.correlation(r,t)},0==e.length)throw new Error("Sample of size 0 not allowed.");this.data=e,this.size=e.length,this.mean=s(e),this.std=this.constructor.stdDev(e),this.variance=this.constructor.variance(e),this.skewness=this.constructor.skewness(e),this.kurtosis=this.constructor.kurtosis(e),this.sqrdMeanDev=this.constructor.sqrdMeanDev(e),this.meanDev=this.constructor.meanDev(e),this.rootMeanSqrd=this.constructor.rootMeanSqrd(e),this.stdMeanDev=this.constructor.stdMeanDev(e),this.relStdDev=this.constructor.relativeStdDev(e),this.quartiles=this.constructor.quartiles(e)}return g.createClass(t,null,[{key:"variance",value:function(t){return p(t,2)/(t.length-1)}},{key:"sqrdMeanDev",value:function(t){return p(t,2)}},{key:"meanDev",value:function(t){return p(t,1,!0)/t.length}},{key:"stdDev",value:function(t){var e=this.variance(t);return isNaN(e)?0:Math.sqrt(e)}},{key:"rootMeanSqrd",value:function(t){return Math.sqrt(t.map(function(t){return t*t}).reduce(function(t,e){return t+e})/t.length)}},{key:"stdMeanDev",value:function(t){return this.stdDev(t)/Math.sqrt(t.length)}},{key:"relativeStdDev",value:function(t){return this.stdDev(t)/s(t)}},{key:"quartiles",value:function(t){return d(t,[.25,.5,.75])}},{key:"skewness",value:function(t){var e=this.stdDev(t);if(isNaN(e)||t.length<3)return NaN;var r=t.length,n=Math.pow(e,3),a=p(t,3);return r*a/((r-1)*(r-2)*n)}},{key:"kurtosis",value:function(t){var e=this.stdDev(t);if(isNaN(e)||t.length<3)return NaN;var r=(t.length,p(t,2)),n=p(t,4);return n/Math.pow(r,2)}},{key:"covariance",value:function(t,e){if(!t||!e||t.size<=1||t.size!==e.size)return NaN;var r=t.data.map(function(r,n){return(t.data[n]-t.mean)*(e.data[n]-e.mean)}).reduce(function(t,e){return t+e},0);return r/(t.size-1)}},{key:"correlation",value:function(t,e){if(!(t&&t.std&&e&&e.std))return NaN;var r=this.covariance(t,e);return r/t.std/e.std}}]),t}();t.choose=e,t.error=r,t.factorial=n,t.gamma=o,t.gammainc_lower=i,t.lngamma=a,t.median=h,t.mean=s,t.mode=l,t.percentile=c,t.quantile=d,t.range=m,t.select=f,t.std=b,t.stirling=k,t.sum=u,t.sumNthPowerDev=p,t.variance=y,t.zscore=M,t.Normal=z,t.Binomial=T,t.Bernoulli=_,t.StudentsT=F,t.Gamma=R,t.ChiSquared=B,t.Exponential=A,t.Cauchy=P,t.Sample=G,t.ttest=w});
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(t.sampson=t.sampson||{})}(this,function(t){"use strict";function e(t,e){if(e>t)return NaN;for(var r=1,n=1;e>=n;n++)r*=t--,r/=n;return r}function r(t){var e=1/(1+.5*Math.abs(t)),r=e*Math.exp(-(t*t)-1.26551223+1.00002368*e+.37409196*Math.pow(e,2)+.09678418*Math.pow(e,3)-.18628806*Math.pow(e,4)+.27886807*Math.pow(e,5)-1.13520398*Math.pow(e,6)+1.48851587*Math.pow(e,7)-.82215223*Math.pow(e,8)+.17087277*Math.pow(e,9));return t>=0?1-r:r-1}function n(t){return 0>t?NaN:0==t?1:t*n(t-1)}function a(t){if(0>t)return NaN;for(var e=C[0],r=C.length-1;r>0;--r)e+=C[r]/(t+r);var n=t+N+.5;return.5*Math.log(2*Math.PI)+(t+.5)*Math.log(n)-n+Math.log(e)-Math.log(t)}function o(t){var e=t;if(0>e&&e%1==0)return 1/0;if(.5>e)return Math.PI/(Math.sin(Math.PI*e)*o(1-e));if(e>100)return Math.exp(a(e));e-=1;for(var r=E[0],n=1;O+2>n;n++)r+=E[n]/(e+n);var i=e+O+.5;return Math.sqrt(2*Math.PI)*Math.pow(i,e+.5)*Math.exp(-i)*r}function i(t,e){var r=void 0,n=void 0,o=void 0;for(o=1,r=1,n=1;100>o&&(r+=n*=e/(t+o),!(D>n/r));++o);return Math.exp(t*Math.log(e)-e-a(t+1)+Math.log(r))}function u(t){if(0==t.length)return 0;var e=0;return t.reduce(function(t,r){if(isNaN(r))return t;var n=r-e,a=t+n;return e=a-t-n,a},0)}function s(t){return 0==t.length?NaN:u(t)/t.filter(function(t){return!isNaN(t)}).length}function l(t){if(0==t.length)return NaN;if(1==t.length)return t;var e=function(){var e=t.reduce(function(t,e){return t[e]?t[e]++:t[e]=1,t},{}),r=Object.keys(e),n=r.map(function(t){return e[t]}).reduce(function(t,e){return e>t?e:t});return{v:r.filter(function(t){return e[t]==n}).map(function(t){return Number(t)})}}();return"object"===("undefined"==typeof e?"undefined":g["typeof"](e))?e.v:void 0}function f(t,e,r,n){var a=t.slice(0);if(0==a.length||e>=a.length)return NaN;var o=r||0,i=n||a.length-1;if(o==i)return a[o];for(;i>o;){if(i-o>q){var u=i-o+1,s=e-o+1,l=Math.log(u),h=j*Math.exp(2*l/3),c=j*Math.sqrt(l*h*(u-h)/u),d=Math.max(o,Math.floor(e-s*h/u+c)),p=Math.min(i,Math.floor(e+(u-s)*h/u+c));f(a,e,d,p)}var m=a[e],y=o,b=i;for(v(a,y,e),a[b]>m&&v(a,y,b);b>y;){for(v(a,y,b),y++,b--;a[y]<m;)y++;for(;a[b]>m;)b--}a[o]===m?v(a,o,b):(b++,v(a,b,i)),b>e?i=b-1:(o=b+1,i=b-1)}return a[e]}function v(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function h(t){var e=void 0;if(0==t.length)e=NaN;else{var r=t.length%2==0;r?(e=f(t,t.length/2),e+=f(t,t.length/2-1),e/=2):e=f(t,(t.length-1)/2)}return e}function c(t,e){if(void 0==e||e>1||0>e)throw new Error("p must be between zero and one inclusive.");if(void 0==t)throw new Error("need a list to provide a percentile.");if(0==t.length)return NaN;var r=Math.floor(t.length*e);return r>=t.length&&(r=t.length-1),f(t,r)}function d(t,e){if(!Array.isArray(t)||0==t.length)throw new Error("you must provide an array.");if(!Array.isArray(e)||0==e.length)throw new Error("you must provide some quantiles.");var r=e.reduce(function(t,e){return e>=0&&1>=e&&t},!0);if(!r)throw new Error("quantiles must be between zero and one inclusive.");if(e.length>1)return e.map(function(e){return d(t,[e])});var n=e[0];if(0==n)return t[0];if(1==n)return t[t.length-1];var a=t.length*n;return a%1?f(t,Math.floor(a)):t.length%2?f(t,a):(f(t,a-1)+f(t,a))/2}function p(t){return 0==t.length?NaN:Math.max.apply(Math,g.toConsumableArray(t))-Math.min.apply(Math,g.toConsumableArray(t))}function m(t,e,r){if(0==t.length)return NaN;var n=function(){var n=s(t);return{v:t.reduce(function(t,a){var o=a-n;return r&&(o=Math.abs(o)),t+Math.pow(o,e)},0)}}();return"object"===("undefined"==typeof n?"undefined":g["typeof"](n))?n.v:void 0}function y(t){return 0==t.length?NaN:m(t,2)/t.length}function b(t){var e=y(t);return isNaN(e)?0:Math.sqrt(e)}function k(t){return(t+.5)*Math.log(t)-t+Math.log(2*Math.PI)/2}function M(t,e,r){return(t-e)/r}function w(t,e,r){if(!t)return NaN;if(e){var n=r||0,a=((t.size-1)*t.variance+(e.size-1)*e.variance)/(t.size+e.size-2);return(t.mean-e.mean-n)/Math.sqrt(a*(1/t.size+1/e.size))}return(t.mean-r)/(t.std/Math.sqrt(t.size))}var g={};g["typeof"]="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},g.classCallCheck=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},g.createClass=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),g["extends"]=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},g.get=function Y(t,e,r){null===t&&(t=Function.prototype);var n=Object.getOwnPropertyDescriptor(t,e);if(void 0===n){var a=Object.getPrototypeOf(t);return null===a?void 0:Y(a,e,r)}if("value"in n)return n.value;var o=n.get;if(void 0!==o)return o.call(r)},g.inherits=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)},g.possibleConstructorReturn=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e},g.toConsumableArray=function(t){if(Array.isArray(t)){for(var e=0,r=Array(t.length);e<t.length;e++)r[e]=t[e];return r}return Array.from(t)};var N=607/128,C=[.9999999999999971,57.15623566586292,-59.59796035547549,14.136097974741746,-.4919138160976202,3399464998481189e-20,4652362892704858e-20,-9837447530487956e-20,.0001580887032249125,-.00021026444172410488,.00021743961811521265,-.0001643181065367639,8441822398385275e-20,-26190838401581408e-21,36899182659531625e-22],O=7,E=[.9999999999998099,676.5203681218851,-1259.1392167224028,771.3234287776531,-176.6150291621406,12.507343278686905,-.13857109526572012,9984369578019572e-21,1.5056327351493116e-7],D=1e-14,q=600,j=.5,x=function(){function t(e){g.classCallCheck(this,t);var r=Object.assign({},e);this.params=this.constructor.validate(r),this.mean=this.constructor.mean(r),this.stdDev=this.constructor.stdDev(r),this.relStdDev=this.constructor.relStdDev(r),this.variance=this.constructor.variance(r),this.skewness=this.constructor.skewness(r),this.kurtosis=this.constructor.kurtosis(r)}return g.createClass(t,null,[{key:"validate",value:function(){throw new Error("You must define a validation function for your distribution.")}},{key:"mean",value:function(t){return NaN}},{key:"variance",value:function(t){return NaN}},{key:"stdDev",value:function(t){return Math.sqrt(this.variance(t))}},{key:"relStdDev",value:function(t){return this.stdDev(t)/this.mean(t)}},{key:"skewness",value:function(t){return NaN}},{key:"kurtosis",value:function(t){return NaN}},{key:"pdf",value:function(){return NaN}},{key:"cdf",value:function(){return NaN}},{key:"random",value:function(){return Math.random()}},{key:"sample",value:function(t,e){var r=this;return Array.apply(null,Array(t)).map(function(){return r.random(e)})}}]),g.createClass(t,[{key:"pdf",value:function(t){return this.constructor.pdf(t,this.params)}},{key:"cdf",value:function(t){return this.constructor.cdf(t,this.params)}},{key:"random",value:function(){return this.constructor.random(this.params)}},{key:"sample",value:function(t){return this.constructor.sample(t,this.params)}}]),t}();x.covariates=0,x.discrete=!1;var P=function(t){function e(){return g.classCallCheck(this,e),g.possibleConstructorReturn(this,Object.getPrototypeOf(e).apply(this,arguments))}return g.inherits(e,t),g.createClass(e,null,[{key:"validate",value:function(t){if(!t||void 0===t.a||void 0===t.b)throw new Error("need a parameter object of shape { a: number, b: number }.");var e=t.a,r=t.b;if("number"!=typeof e)throw Error("a must be a number.");if("number"!=typeof r||0>=r)throw RangeError("b must be greater than zero.");return t}},{key:"random",value:function(t){for(var r=this.validate(t),n=r.a,a=r.b,o=void 0;!o||.5==o;)o=g.get(Object.getPrototypeOf(e),"random",this).call(this);return n+a*Math.tan(Math.PI*o)}},{key:"pdf",value:function(t,e){if("number"!=typeof t)throw new TypeError("x must be a number");var r=this.validate(e),n=r.a,a=r.b;return a/(Math.pow(t-n,2)+Math.pow(a,2))/Math.PI}},{key:"cdf",value:function(t,e){if("number"!=typeof t)throw new TypeError("x must be a number");var r=this.validate(e),n=r.a,a=r.b;return Math.atan((t-n)/a)/Math.PI+.5}},{key:"mean",value:function(t){return NaN}},{key:"variance",value:function(t){return NaN}},{key:"stdDev",value:function(t){return NaN}},{key:"relStdDev",value:function(t){return NaN}},{key:"skewness",value:function(t){return NaN}},{key:"kurtosis",value:function(t){return NaN}}]),e}(x);P.covariates=1,P.discrete=!1;var z=NaN,S=function(t){function e(){return g.classCallCheck(this,e),g.possibleConstructorReturn(this,Object.getPrototypeOf(e).apply(this,arguments))}return g.inherits(e,t),g.createClass(e,null,[{key:"validate",value:function(t){if(!t||void 0===t.mu||void 0==t.sigma)throw new Error("need a parameter object of shape { mu: number, simga: number }.");var e=t.mu,r=t.sigma;if("number"!=typeof e||"number"!=typeof r)throw new Error("Need mu and sigma for the normal distribution.");return t}},{key:"random",value:function(t){var r=this.validate(t),n=r.mu,a=r.sigma,o=z;if(z=NaN,!o){var i=2*g.get(Object.getPrototypeOf(e),"random",this).call(this)*Math.PI,u=Math.sqrt(-2*Math.log(1-g.get(Object.getPrototypeOf(e),"random",this).call(this)));o=Math.cos(i)*u,z=Math.sin(i)*u}return n+o*a}},{key:"pdf",value:function(t,e){if("number"!=typeof t)throw new Error("x must be a number.");var r=this.validate(e),n=r.mu,a=r.sigma;t/Math.abs(a);return 1/(Math.sqrt(2*Math.PI)*Math.abs(a))*Math.exp(-1*Math.pow(t-n,2)/(2*a*a))}},{key:"cdf",value:function(t,e){if("number"!=typeof t)throw new Error("x must be a number.");var n=this.validate(e),a=n.mu,o=n.sigma;return.5*(1+r((t-a)/(o*Math.sqrt(2))))}},{key:"mean",value:function(t){var e=this.validate(t),r=e.mu;e.sigma;return r}},{key:"variance",value:function(t){var e=this.validate(t),r=(e.mu,e.sigma);return r*r}},{key:"stdDev",value:function(t){var e=this.validate(t),r=(e.mu,e.sigma);return r}},{key:"relStdDev",value:function(t){var e=this.validate(t),r=e.mu,n=e.sigma;return n/r}},{key:"skewness",value:function(t){return 0}},{key:"kurtosis",value:function(t){return 3}}]),e}(x);S.covariates=2,S.discrete=!1;var R=function(t){function e(){return g.classCallCheck(this,e),g.possibleConstructorReturn(this,Object.getPrototypeOf(e).apply(this,arguments))}return g.inherits(e,t),g.createClass(e,null,[{key:"validate",value:function(t){if(!t||void 0===t.mu)throw new Error("need a parameter object of shape { mu: number }.");var e=t.mu;if("number"!=typeof e||0>=e)throw RangeError("mu must be greater than zero.");return t}},{key:"random",value:function(t){var r=this.validate(t),n=r.mu;return-n*Math.log1p(-g.get(Object.getPrototypeOf(e),"random",this).call(this))}},{key:"pdf",value:function(t,e){var r=this.validate(e),n=r.mu;if("number"!=typeof t)throw new Error("x must be a number.");return 0>t?0:Math.exp(-t/n)/n}},{key:"cdf",value:function(t,e){var r=this.validate(e),n=r.mu;if("number"!=typeof t)throw new Error("x must be a number.");return 0>=t?0:1-Math.exp(-t/n)}},{key:"mean",value:function(t){var e=this.validate(t),r=e.mu;return r}},{key:"variance",value:function(t){var e=this.validate(t),r=e.mu;return r*r}},{key:"stdDev",value:function(t){var e=this.validate(t),r=e.mu;return r}},{key:"relStdDev",value:function(t){return 1}},{key:"skewness",value:function(t){return 2}},{key:"kurtosis",value:function(t){return 9}}]),e}(x);R.covariates=1;var A=function(t){function e(){return g.classCallCheck(this,e),g.possibleConstructorReturn(this,Object.getPrototypeOf(e).apply(this,arguments))}return g.inherits(e,t),g.createClass(e,null,[{key:"validate",value:function(t){if(!t||void 0===t.a||void 0===t.b)throw new Error("need a parameter object of shape { a: number, b: number }.");var e=t.a,r=t.b;if("number"!=typeof e||"number"!=typeof r)throw new Error("Need a and b for the gamma distribution.");if(0>=e)throw new Error("a must be greater than zero.");if(0>=r)throw new Error("b must be greater than zero.");return t}},{key:"random",value:function(t){var r=this.validate(t),n=r.a,a=r.b;if(1>n){var o=g.get(Object.getPrototypeOf(e),"random",this).call(this);return this.random({a:1+n,b:a})*Math.pow(o,1/n)}for(var i=void 0,u=void 0,s=void 0,l=n-1/3,f=1/Math.sqrt(9*l);;){do i=S.random({mu:0,sigma:1}),u=1+f*i;while(0>=u);for(u=u*u*u;!s;)s=g.get(Object.getPrototypeOf(e),"random",this).call(this);if(1-.0331*i*i*i*i>s)break;if(Math.log(s)<.5*i*i+l*(1-u+Math.log(u)))break}return l*u/a}},{key:"pdf",value:function(t,e){var r=this.validate(e),n=r.a,o=r.b;if("number"!=typeof t)throw new Error("x must be a number.");return 0>t?0:0==t?1==n?o:0:1==n?Math.exp(-t*o)*o:Math.exp((n-1)*Math.log(t*o)-t*o-a(n))*o}},{key:"cdf",value:function(t,e){var r=this.validate(e),n=r.a,a=r.b;if("number"!=typeof t)throw new Error("x must be a number.");return 0>=t?0:i(n,t*a)}},{key:"mean",value:function(t){var e=this.validate(t),r=e.a,n=e.b;return r/n}},{key:"variance",value:function(t){var e=this.validate(t),r=e.a,n=e.b;return r/(n*n)}},{key:"stdDev",value:function(t){var e=this.validate(t),r=e.a,n=e.b;return Math.sqrt(r/(n*n))}},{key:"relStdDev",value:function(t){var e=this.validate(t),r=e.a;e.b;return 1/Math.sqrt(r)}},{key:"skewness",value:function(t){var e=this.validate(t),r=e.a;e.b;return 2/Math.sqrt(r)}},{key:"kurtosis",value:function(t){var e=this.validate(t),r=e.a;e.b;return 6/r}}]),e}(x);A.covariates=2;var I=14,T=function(t){function r(){return g.classCallCheck(this,r),g.possibleConstructorReturn(this,Object.getPrototypeOf(r).apply(this,arguments))}return g.inherits(r,t),g.createClass(r,null,[{key:"validate",value:function(t){if(!t||void 0===t.n||void 0===t.p)throw new Error("need a parameter object of shape { n: number, p: number }.");var e=t.n,r=t.p;if("number"!=typeof r||r>1||0>r)throw new Error("p must be between zero and one inclusive.");if("number"!=typeof e||0>e)throw new Error("n must be positive or zero.");return t}},{key:"random",value:function(t){var e=this,n=this.validate(t),a=n.n,o=n.p;if(0==a)return 0;var i=!1,u=0,s=void 0;o>.5?(i=!0,s=1-o):s=o;var l=1-s,f=s/l,v=a*s;if(I>v)for(var h=Math.pow(l,a),c=g.get(Object.getPrototypeOf(r),"random",this).call(this);a>=u&&c>=h;)c-=h,h*=f*(a-u)/(u+1),u++;else!function(){var t=v+s,n=Math.floor(t),o=n+.5,i=v*l,f=Math.floor(2.195*Math.sqrt(i)-4.6*l)+.5,h=o-f,c=o+f,d=.134+20.5/(15.3+n),p=f*(1+d+d),m=(t-h)/(t-h*s),y=m*(1+.5*m),b=(c-t)/(c*l),M=b*(1.5+b),w=p+d/y,N=w+d/M,C=void 0,O=void 0,E=void 0,D=void 0,q=function j(){if(E=g.get(Object.getPrototypeOf(r),"random",e).call(e)*N,D=g.get(Object.getPrototypeOf(r),"random",e).call(e),f>=E)u=Math.floor(o-f*D+E);else if(p>=E){var t=h+(E-f)/d;D=D*d+1-Math.abs(t-o)/f,D>1||0>=D?j():u=t}else w>=E?(u=Math.floor(h+Math.log(D)/y),D*=(E-p)*y):(u=Math.floor(c-Math.log(D)/M),D*=(E-w)*M);C=Math.log(D);var i=u+1,v=a-u-1,m=n+1,b=a+1-n;O=o*Math.log(m/i)+(a-n+.5)*Math.log(b/v)+(u-n)*Math.log(v*s/(i*l))+k(m)+k(b)-k(i)-k(v),C>O&&j()};q()}();return Math.floor(i?a-u:u)}},{key:"pdf",value:function(t,r){var n=this.validate(r),a=n.n,o=n.p;if("number"!=typeof t)throw new Error("k must be a number.");if(0>t||t>a)return 0;var i=void 0;if(0==o)i=0==t?1:0;else{if(1!=o){var u=e(a,t),s=Math.pow(o,t)*Math.pow(1-o,a-t);return"Infinity"==u?0==s?0:u:u*s}i=t==a?1:0}return i}},{key:"cdf",value:function(t,r){var n=this.validate(r),a=n.n,o=n.p;if("number"!=typeof t)throw new Error("k must be a number.");return 0>t?0:t>a?1:Array.apply(null,Array(Math.floor(t)+1)).map(function(t,r){return e(a,r)*Math.pow(o,r)*Math.pow(1-o,a-r)}).reduce(function(t,e){return t+e},0)}},{key:"mean",value:function(t){var e=this.validate(t),r=e.n,n=e.p;return r*n}},{key:"variance",value:function(t){var e=this.validate(t),r=e.n,n=e.p;return r*n*(1-n)}},{key:"stdDev",value:function(t){var e=this.validate(t),r=e.n,n=e.p;return Math.sqrt(r*n*(1-n))}},{key:"relStdDev",value:function(t){var e=this.validate(t),r=e.n,n=e.p;return Math.sqrt((1-n)/(r*n))}},{key:"skewness",value:function(t){var e=this.validate(t),r=e.n,n=e.p;return(1-2*n)/Math.sqrt(r*n*(1-n))}},{key:"kurtosis",value:function(t){var e=this.validate(t),r=e.n,n=e.p;return 3-6/r+1/(r*n*(1-n))}}]),r}(x);T.covariates=2,T.discrete=!0;var _=function(t){function e(t){return g.classCallCheck(this,e),g.possibleConstructorReturn(this,Object.getPrototypeOf(e).call(this,g["extends"]({},t,{n:1})))}return g.inherits(e,t),g.createClass(e,null,[{key:"random",value:function(t){var e=this.validate(g["extends"]({},t,{n:1})),r=e.p,n=x.random();return r>n?1:0}},{key:"pdf",value:function(t,e){var r=this.validate(g["extends"]({},e,{n:1})),n=r.p;if("number"!=typeof t)throw new Error("k must be a number.");return 0==t?1-n:1==t?n:0}},{key:"cdf",value:function(t,e){var r=this.validate(g["extends"]({},e,{n:1})),n=r.p;if("number"!=typeof t)throw new Error("k must be a number.");return 1==t?n:0==t?1-n:NaN}}]),e}(T);_.covariates=1;var B=function(t){function e(){return g.classCallCheck(this,e),g.possibleConstructorReturn(this,Object.getPrototypeOf(e).apply(this,arguments))}return g.inherits(e,t),g.createClass(e,null,[{key:"validate",value:function(t){if(!t||void 0===t.df)throw new Error("need a parameter object of shape { df: number }.");var e=t.df;if("number"!=typeof e||0>=e)throw RangeError("df must be greater than zero.");return t}},{key:"random",value:function(t){var e=this.validate(t),r=e.df;return 2*A.random({a:r/2,b:1})}},{key:"pdf",value:function(t,e){var r=this.validate(e),n=r.df;if("number"!=typeof t)throw new TypeError("x must be a number");return 0>t?0:2==n?Math.exp(-t/2)/2:Math.exp((n/2-1)*Math.log(t/2)-t/2-a(n/2))/2}},{key:"cdf",value:function(t,e){var r=this.validate(e),n=r.df;if("number"!=typeof t)throw new TypeError("x must be a number");return 0>t?0:2==n?1-Math.exp(-t/2):i(n/2,t/2)}},{key:"mean",value:function(t){var e=this.validate(t),r=e.df;return r}},{key:"variance",value:function(t){var e=this.validate(t),r=e.df;return 2*r}},{key:"stdDev",value:function(t){var e=this.validate(t),r=e.df;return Math.sqrt(2*r)}},{key:"relStdDev",value:function(t){var e=this.validate(t),r=e.df;return Math.sqrt(2/r)}},{key:"skewness",value:function(t){var e=this.validate(t),r=e.df;return Math.pow(2,1.5)/Math.sqrt(r)}},{key:"kurtosis",value:function(t){var e=this.validate(t),r=e.df;return 3+12/r}}]),e}(x);B.covariates=1;var F=function(t){function e(){return g.classCallCheck(this,e),g.possibleConstructorReturn(this,Object.getPrototypeOf(e).apply(this,arguments))}return g.inherits(e,t),g.createClass(e,null,[{key:"validate",value:function(t){if(!t||void 0===t.df)throw new Error("need a parameter object of shape { df: number }.");var e=t.df;if("number"!=typeof e||0>=e)throw RangeError("df must be greater than zero.");return t}},{key:"random",value:function(t){var e=this.validate(t),r=e.df;if(2>=r){var n=S.random({mu:0,sigma:1}),a=B.random({df:r});return n/Math.sqrt(a/r)}var o=void 0,i=void 0,u=void 0;do o=S.random({mu:0,sigma:1}),i=R.random({mu:1/(r/2-1)}),u=o*i/(r-2);while(0>1-u||Math.exp(-i-u)>1-u);return o/Math.sqrt((1-2/r)*(1-u))}},{key:"pdf",value:function(t,e){if("number"!=typeof t)throw TypeError("t must be a number.");var r=this.validate(e),n=r.df,o=a(n/2),i=a((n+1)/2);return Math.exp(i-o)/Math.sqrt(Math.PI*n)*Math.pow(1+t*t/n,-(n+1)/2)}},{key:"cdf",value:function(t,e){if("number"!=typeof t)throw TypeError("t must be a number.");var r=this.validate(e),n=r.df,a=void 0,o=void 0,i=void 0,u=void 0,s=void 0,l=void 0,f=void 0,v=void 0,h=void 0,c=void 0,d=1/Math.PI;if(i=n,a=t/Math.sqrt(i),o=i/(i+t*t),u=n-2,s=i%2,l=1,f=1,i=1,v=2+s,h=v,u>=2)for(c=v;u>=c;c+=2)f=f*o*(h-1)/h,l+=f,i=l,h+=2;return 1!=s?.5+.5*a*Math.sqrt(o)*l:(1==n&&(l=0),.5+(a*o*l+Math.atan(a))*d)}},{key:"mean",value:function(t){var e=this.validate(t),r=e.df;return 1>=r?NaN:0}},{key:"variance",value:function(t){var e=this.validate(t),r=e.df;return 1>r?NaN:2>=r?1/0:r/(r-2)}},{key:"stdDev",value:function(t){var e=this.validate(t),r=e.df;return 1>r?NaN:2>=r?1/0:Math.sqrt(r/(r-2))}},{key:"relStdDev",value:function(t){var e=this.validate(t);e.df;return NaN}},{key:"skewness",value:function(t){var e=this.validate(t),r=e.df;return r>3?0:NaN}},{key:"kurtosis",value:function(t){var e=this.validate(t),r=e.df;return 4>=r?NaN:3*(r-2)/(r-4)}}]),e}(x);F.covariates=1;var G=function(t){function e(){return g.classCallCheck(this,e),g.possibleConstructorReturn(this,Object.getPrototypeOf(e).apply(this,arguments))}return g.inherits(e,t),g.createClass(e,null,[{key:"validate",value:function(t){if(!t||void 0===t.a||void 0===t.b)throw new Error("need a parameter object of shape { a: number, b: number }.");var e=t.a,r=t.b;if("number"!=typeof e||0>=e)throw Error("a must be greater than zero.");if("number"!=typeof r||0>=r)throw RangeError("b must be greater than zero.");return t}},{key:"random",value:function(t){var r=this.validate(t),n=r.a,a=r.b;return n*Math.pow(-Math.log(g.get(Object.getPrototypeOf(e),"random",this).call(this)),1/a)}},{key:"pdf",value:function(t,e){if("number"!=typeof t)throw new TypeError("x must be a number");var r=this.validate(e),n=r.a,a=r.b;return 0>t?0:a/n*Math.pow(t/n,a-1)*Math.exp(-Math.pow(t/n,a))}},{key:"cdf",value:function(t,e){if("number"!=typeof t)throw new TypeError("x must be a number");var r=this.validate(e),n=r.a,a=r.b;return 0>t?0:1-Math.exp(-Math.pow(t/n,a))}},{key:"mean",value:function(t){var e=this.validate(t),r=e.a,n=e.b;return r*o(1+1/n)}},{key:"variance",value:function(t){var e=this.validate(t),r=e.a,n=e.b;return r*r*(o(1+2/n)-Math.pow(o(1+1/n),2))}},{key:"skewness",value:function(t){var e=t.a,r=t.b,n=this.stdDev(t),a=this.mean(t);return(o(1+3/r)*Math.pow(e,3)-3*a*n*n-Math.pow(a,3))/Math.pow(n,3)}},{key:"kurtosis",value:function(t){var e=t.a,r=t.b,n=this.stdDev(t),a=this.mean(t),i=this.skewness(t);return(o(1+4/r)*Math.pow(e,4)-4*i*Math.pow(n,3)*a-6*Math.pow(a,2)*Math.pow(n,2)-Math.pow(a,4))/Math.pow(n,4)-3}}]),e}(x);G.covariates=1,G.discrete=!1;var W=function(){function t(e){var r=this;if(g.classCallCheck(this,t),this.covariance=function(t){return r.constructor.covariance(r,t)},this.correlation=function(t){return r.constructor.correlation(r,t)},0==e.length)throw new Error("Sample of size 0 not allowed.");this.data=e,this.size=e.length,this.mean=s(e),this.std=this.constructor.stdDev(e),this.variance=this.constructor.variance(e),this.skewness=this.constructor.skewness(e),this.kurtosis=this.constructor.kurtosis(e),this.sqrdMeanDev=this.constructor.sqrdMeanDev(e),this.meanDev=this.constructor.meanDev(e),this.rootMeanSqrd=this.constructor.rootMeanSqrd(e),this.stdMeanDev=this.constructor.stdMeanDev(e),this.relStdDev=this.constructor.relativeStdDev(e),this.quartiles=this.constructor.quartiles(e)}return g.createClass(t,null,[{key:"variance",value:function(t){return m(t,2)/(t.length-1)}},{key:"sqrdMeanDev",value:function(t){return m(t,2)}},{key:"meanDev",value:function(t){return m(t,1,!0)/t.length}},{key:"stdDev",value:function(t){var e=this.variance(t);return isNaN(e)?0:Math.sqrt(e)}},{key:"rootMeanSqrd",value:function(t){return Math.sqrt(t.map(function(t){return t*t}).reduce(function(t,e){return t+e})/t.length)}},{key:"stdMeanDev",value:function(t){return this.stdDev(t)/Math.sqrt(t.length)}},{key:"relativeStdDev",value:function(t){return this.stdDev(t)/s(t)}},{key:"quartiles",value:function(t){return d(t,[.25,.5,.75])}},{key:"skewness",value:function(t){var e=this.stdDev(t);if(isNaN(e)||t.length<3)return NaN;var r=t.length,n=Math.pow(e,3),a=m(t,3);return r*a/((r-1)*(r-2)*n)}},{key:"kurtosis",value:function(t){var e=this.stdDev(t);if(isNaN(e)||t.length<3)return NaN;var r=(t.length,m(t,2)),n=m(t,4);return n/Math.pow(r,2)}},{key:"covariance",value:function(t,e){if(!t||!e||t.size<=1||t.size!==e.size)return NaN;var r=t.data.map(function(r,n){return(t.data[n]-t.mean)*(e.data[n]-e.mean)}).reduce(function(t,e){return t+e},0);return r/(t.size-1)}},{key:"correlation",value:function(t,e){if(!(t&&t.std&&e&&e.std))return NaN;var r=this.covariance(t,e);return r/t.std/e.std}}]),t}();t.choose=e,t.error=r,t.factorial=n,t.gamma=o,t.gammainc_lower=i,t.lngamma=a,t.median=h,t.mean=s,t.mode=l,t.percentile=c,t.quantile=d,t.range=p,t.select=f,t.std=b,t.stirling=k,t.sum=u,t.sumNthPowerDev=m,t.variance=y,t.zscore=M,t.Normal=S,t.Binomial=T,t.Bernoulli=_,t.StudentsT=F,t.Gamma=A,t.ChiSquared=B,t.Exponential=R,t.Cauchy=P,t.Weibull=G,t.Sample=W,t.ttest=w});

@@ -11,4 +11,6 @@ /* @flow */

import ChiSquared from './distributions/chi-square';
import Weibull from './distributions/weibull';
export {

@@ -23,2 +25,3 @@ Normal,

Cauchy,
Weibull,
};

@@ -16,18 +16,18 @@ /* @flow */

/** @private */
static mean(): ?number { return undefined; };
static mean(params: Object): number { return NaN; };
/** @private */npm
static variance(params: Object): number { return NaN; };
/** @private */
static variance(): ?number { return undefined; };
static stdDev(params: Object): number { return Math.sqrt(this.variance(params)); };
/** @private */
static stdDev(): ?number { return undefined; };
static relStdDev(params: Object): number { return this.stdDev(params) / this.mean(params); };
/** @private */
static relStdDev(): ?number { return undefined; };
static skewness(params: Object): number { return NaN; };
/** @private */
static skewness(): ?number { return undefined; };
/** @private */
static kurtosis(): ?number { return undefined; };
static kurtosis(params: Object): number { return NaN; };
/** @private */
static pdf(): number { return undefined; };
static pdf(): number { return NaN; };
/** @private */
static cdf(): number { return undefined; };
static cdf(): number { return NaN; };

@@ -34,0 +34,0 @@ /**

@@ -5,3 +5,3 @@ {

"author": "Jack Shira <jack@atg.io> (http://www.atg.io)",
"version": "0.2.2",
"version": "0.2.3",
"license": "ISC",

@@ -8,0 +8,0 @@ "repository" : {

@@ -19,2 +19,3 @@ # Sampson.js

- Student's T
- Weibull

@@ -21,0 +22,0 @@ #### Statistics

@@ -7,2 +7,3 @@ import test from 'blue-tape';

const DIST_OVERRIDE = 'mean variance skewness kurtosis random pdf cdf validate'.split(' ');
const DIST_PROPS = 'mean variance stdDev relStdDev skewness kurtosis'.split(' ');

@@ -21,3 +22,3 @@ const DIST_METHODS = 'random pdf cdf'.split(' ');

DIST_PROPS.concat(DIST_METHODS).concat(DIST_PRIVATE).forEach( prop => {
DIST_OVERRIDE.forEach( prop => {
t.notEqual( Distribution[prop], distribution[prop], `overrides ${prop}` );

@@ -24,0 +25,0 @@ });

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc