UNPKG

@stdlib/esm

Version:

ES module distribution for Stdlib, a standard library for JavaScript and Node.js.

3 lines 1.25 kB
// This file is a part of stdlib. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 import r from"./../../assert/is-positive-integer.js";import e from"./../../assert/is-array-like-object.js";import i from"./../../math/base/assert/is-nan.js";import t from"./../../math/base/special/sqrt.js";var a=r.isPrimitive,n=e,s=i,o=t;function f(r,e){var i,t,f,u,m,l,p,N,v,b;if(1===arguments.length)i=[0,0],p=r;else{if(!n(r))throw new TypeError("invalid argument. Output argument must be an array-like object. Value: `"+r+"`.");i=r,p=e}if(!a(p))throw new TypeError("invalid argument. Window size must be a positive integer. Value: `"+p+"`.");return f=new Array(p),v=p-1,m=0,l=0,b=-1,N=0,g;function g(r){var e,a;if(0===arguments.length)return 0===N?null:(i[0]=l,1===N?s(m)?i[1]=NaN:i[1]=0:i[1]=o(N<p?m/(N-1):m/v),i);if(b=(b+1)%p,s(r))N=p,l=NaN,m=NaN;else{if(N<p)return f[b]=r,m+=(t=r-l)*(r-(l+=t/(N+=1))),i[0]=l,i[1]=1===N?0:o(m/(N-1)),i;if(1===N)return l=r,m=0,i[0]=r,i[1]=0,i;if(s(f[b])){for(N=1,l=r,m=0,e=0;e<p;e++)if(e!==b){if(a=f[e],s(a)){N=p,l=NaN,m=NaN;break}m+=(t=a-l)*(a-(l+=t/(N+=1)))}}else!1===s(m)&&(u=f[b],m+=(t=r-u)*(u-l+(r-(l+=t/p))))}return f[b]=r,i[0]=l,i[1]=o(m/v),i}}var u=f;export default u; //# sourceMappingURL=mmeanstdev.js.map