UNPKG

@stdlib/esm

Version:

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

3 lines 2.08 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-number.js";import i from"./../../math/base/assert/is-nan.js";import t from"./../../math/base/special/sqrt.js";var n=r.isPrimitive,a=e.isPrimitive,u=i,s=t;function f(r,e,i){var t,f,m,o,l,v,p,g,b,h,N,w,d,c,j,y,T,E;if(!n(r))throw new TypeError("invalid argument. First argument must be a positive integer. Value: `"+r+"`.");if(t=new Array(2*r),T=r-1,v=0,p=0,j=0,c=-1,y=0,arguments.length>1){if(!a(e))throw new TypeError("invalid argument. Second argument must be a number primitive. Value: `"+e+"`.");if(!a(i))throw new TypeError("invalid argument. Third argument must be a number primitive. Value: `"+i+"`.");return g=e,b=i,k}return g=0,b=0,V;function V(e,i){var n,a,V,k,P;if(0===arguments.length)return 0===y?null:1===y?0:y<r?j/(y-1)/(h*N):j/T/(h*N);if(E=2*(c=(c+1)%r),u(e)||u(i))y=r,j=NaN;else{if(y<r)return t[E]=e,t[E+1]=i,v+=(w=e-g)*(e-(g+=w/(y+=1))),p+=(d=i-b)*(l=i-(b+=d/y)),j+=w*l,1===y?0:(h=s(v/(V=y-1)),N=s(p/V),j/V/(h*N));if(1===y)return 0;if(u(t[E])||u(t[E+1])){for(y=1,g=e,b=i,v=0,p=0,j=0,k=0;k<r;k++)if((P=2*k)!==E){if(n=t[P],a=t[P+1],u(n)||u(a)){y=r,j=NaN;break}v+=(w=n-g)*(n-(g+=w/(y+=1))),p+=(d=a-b)*(l=a-(b+=d/y)),j+=w*l}}else!1===u(j)&&(f=t[E]-g,o=t[E+1]-b,v+=(w=(m=e-g)-f)*(f+(e-(g+=w/r))),p+=(d=(l=i-b)-o)*(o+(i-(b+=d/r))),j+=m*l-f*o-w*d/r)}return t[E]=e,t[E+1]=i,h=s(v/T),N=s(p/T),j/T/(h*N)}function k(e,i){var n,a;if(0===arguments.length)return 0===y?null:y<r?j/y/(h*N):j/r/(h*N);if(E=2*(c=(c+1)%r),u(e)||u(i))y=r,j=NaN;else{if(y<r)return t[E]=e,t[E+1]=i,p+=(d=i-b)*d,j+=(w=e-g)*d,h=s((v+=w*w)/(y+=1)),N=s(p/y),j/y/(h*N);if(u(t[E])||u(t[E+1])){for(v=0,p=0,j=0,n=0;n<r;n++)if((a=2*n)!==E){if(u(t[a])||u(t[a+1])){y=r,j=NaN;break}w=t[a]-g,v+=w*w,d=t[a+1]-b,p+=d*d,j+=w*d}}else!1===u(j)&&(f=t[E]-g,m=e-g,o=t[E+1]-b,v+=(m-f)*(m+f),p+=((l=i-b)-o)*(l+o),j+=m*l-f*o)}return t[E]=e,t[E+1]=i,h=s(v/r),N=s(p/r),j/r/(h*N)}}var m=f;export default m; //# sourceMappingURL=mpcorr.js.map