@stdlib/esm
Version:
ES module distribution for Stdlib, a standard library for JavaScript and Node.js.
3 lines • 1.19 kB
JavaScript
// 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";var t=r.isPrimitive,a=e,n=i;function s(r,e){var i,s,o,u,f,l,m,N,p,v;if(1===arguments.length)i=[0,0],m=r;else{if(!a(r))throw new TypeError("invalid argument. Output argument must be an array-like object. Value: `"+r+"`.");i=r,m=e}if(!t(m))throw new TypeError("invalid argument. Window size must be a positive integer. Value: `"+m+"`.");return o=new Array(m),p=m-1,f=0,l=0,v=-1,N=0,g;function g(r){var e,t;if(0===arguments.length)return 0===N?null:(i[0]=l,1===N?n(f)?i[1]=NaN:i[1]=0:i[1]=N<m?f/(N-1):f/p,i);if(v=(v+1)%m,n(r))N=m,l=NaN,f=NaN;else{if(N<m)return o[v]=r,f+=(s=r-l)*(r-(l+=s/(N+=1))),i[0]=l,i[1]=1===N?0:f/(N-1),i;if(1===N)return l=r,f=0,i[0]=r,i[1]=0,i;if(n(o[v])){for(N=1,l=r,f=0,e=0;e<m;e++)if(e!==v){if(t=o[e],n(t)){N=m,l=NaN,f=NaN;break}f+=(s=t-l)*(t-(l+=s/(N+=1)))}}else!1===n(f)&&(u=o[v],f+=(s=r-u)*(u-l+(r-(l+=s/m))))}return o[v]=r,i[0]=l,i[1]=f/p,i}}var o=s;export default o;
//# sourceMappingURL=mmeanvar.js.map