-
Notifications
You must be signed in to change notification settings - Fork 1
/
reorder.min.js
1 lines (1 loc) · 47 KB
/
reorder.min.js
1
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).reorder={})}(this,(function(t){"use strict";function e(t,e,n=1){arguments.length<2&&(e=t,t=0);const r=[];let o=t;if(n<0)for(;o>e;o+=n)r.push(o);else for(;o<e;o+=n)r.push(o);return r}const n=e;function r(t,e){const n=e?Array(t.length):{};for(let e=0;e<t.length;e++)n[t[e]]=e;return n}function o(t,e,n,r){const o=t.inEdges(e),l=t.inEdges(n);let i=0;for(let t=0;t<l.length;t++){const e=r[l[t].target.index];for(let t=0;t<o.length;t++)r[o[t].target.index]>e&&i++}return i}function l(t,e,n,r){const o=t.outEdges(e),l=t.outEdges(n);let i=0;for(let t=0;t<l.length;t++){const e=r[l[t].source.index];for(let t=0;t<o.length;t++)r[o[t].source.index]>e&&i++}return i}function i(t,e){return t-e}function f(t){return"function"==typeof t?t:function(){return t}}function s(t,e){var n,r;(t=Math.abs(t))>(e=Math.abs(e))?(n=t,r=e):(n=e,r=t);var o=r/n;return n*Math.sqrt(1+o*o)}function a(t){var e=-1,n=[];if(1===arguments.length)for(;++e<t;)n[e]=0;else for(;++e<t;)n[e]=a.apply(this,Array.prototype.slice.call(arguments,1));return n}function c(t,e,n,r){var o,l;return Math.abs(n)>Math.abs(r)?[(t+(o=r/n)*e)/(l=n+o*r),(e-o*t)/l]:[((o=n/r)*t+e)/(l=r+o*n),(o*e-t)/l]}function u(t,e){for(var n=0,r=-1,o=Math.min(t.length,e.length);++r<o;)n+=t[r]*e[r];return n}function h(t,e){e||(e=1e-10);for(var n,r,o=t.length,l=t[0].length,i=-1;++i<o;){var f=i;for(n=i;++n<o;)Math.abs(t[n][i])>Math.abs(t[f][i])&&(f=n);var s=t[i];if(t[i]=t[f],t[f]=s,Math.abs(t[i][i])<=e)return!1;for(n=i;++n<o;){var a=t[n][i]/t[i][i];for(r=i-1;++r<l;)t[n][r]-=t[i][r]*a}}for(i=o;--i>=0;){a=t[i][i];for(n=-1;++n<i;)for(r=l;--r>=i;)t[n][r]-=t[i][r]*t[n][i]/a;for(t[i][i]/=a,r=o-1;++r<l;)t[i][r]/=a}return!0}function g(t){return Math.sqrt(u(t,t))}var d=Object.freeze({cross:function(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]},decompose:function(){return function(t){for(var e=t.length,n=[],r=[],o=[],l=0;l<e;l++)n[l]=[],r[l]=[],o[l]=[];for(var i=!0,f=0;f<e;f++)for(l=0;l<e;l++)if(t[l][f]!==t[f][l]){i=!1;break}if(i){for(l=0;l<e;l++)n[l]=t[l].slice();!function(t,e,n){for(var r=n.length,o=0;o<r;o++)t[o]=n[r-1][o];for(var l=r-1;l>0;l--){for(var i=0,f=0,s=0;s<l;s++)i+=Math.abs(t[s]);if(0===i){e[l]=t[l-1];for(o=0;o<l;o++)t[o]=n[l-1][o],n[l][o]=0,n[o][l]=0}else{for(s=0;s<l;s++)t[s]/=i,f+=t[s]*t[s];var a=t[l-1],c=Math.sqrt(f);a>0&&(c=-c),e[l]=i*c,f-=a*c,t[l-1]=a-c;for(o=0;o<l;o++)e[o]=0;for(o=0;o<l;o++){a=t[o],n[o][l]=a,c=e[o]+n[o][o]*a;for(s=o+1;s<=l-1;s++)c+=n[s][o]*t[s],e[s]+=n[s][o]*a;e[o]=c}a=0;for(o=0;o<l;o++)e[o]/=f,a+=e[o]*t[o];var u=a/(f+f);for(o=0;o<l;o++)e[o]-=u*t[o];for(o=0;o<l;o++){a=t[o],c=e[o];for(s=o;s<=l-1;s++)n[s][o]-=a*e[s]+c*t[s];t[o]=n[l-1][o],n[l][o]=0}}t[l]=f}for(l=0;l<r-1;l++){if(n[r-1][l]=n[l][l],n[l][l]=1,0!=(f=t[l+1])){for(s=0;s<=l;s++)t[s]=n[s][l+1]/f;for(o=0;o<=l;o++){for(c=0,s=0;s<=l;s++)c+=n[s][l+1]*n[s][o];for(s=0;s<=l;s++)n[s][o]-=c*t[s]}}for(s=0;s<=l;s++)n[s][l+1]=0}for(o=0;o<r;o++)t[o]=n[r-1][o],n[r-1][o]=0;n[r-1][r-1]=1,e[0]=0}(r,o,n),function(t,e,n){for(var r=n.length,o=1;o<r;o++)e[o-1]=e[o];e[r-1]=0;for(var l=0,i=0,f=1e-12,a=0;a<r;a++){i=Math.max(i,Math.abs(t[a])+Math.abs(e[a]));for(var c=a;c<r&&!(Math.abs(e[c])<=f*i);)c++;if(c>a)do{var u=t[a],h=s(_=(t[a+1]-u)/(2*e[a]),1);_<0&&(h=-h),t[a]=e[a]/(_+h),t[a+1]=e[a]*(_+h);var g=t[a+1],d=u-t[a];for(o=a+2;o<r;o++)t[o]-=d;l+=d,_=t[c];var p=1,m=p,v=p,M=e[a+1],b=0,x=0;for(o=c-1;o>=a;o--){v=m,m=p,x=b,u=p*e[o],d=p*_,h=s(_,e[o]),e[o+1]=b*h,b=e[o]/h,_=(p=_/h)*t[o]-b*u,t[o+1]=d+b*(p*u+b*t[o]);for(var y=0;y<r;y++)d=n[y][o+1],n[y][o+1]=b*n[y][o]+p*d,n[y][o]=p*n[y][o]-b*d}_=-b*x*v*M*e[a]/g,e[a]=b*_,t[a]=p*_}while(Math.abs(e[a])>f*i);t[a]=t[a]+l,e[a]=0}for(o=0;o<r-1;o++){y=o;for(var _=t[o],w=o+1;w<r;w++)t[w]<_&&(y=w,_=t[w]);if(y!=o){t[y]=t[o],t[o]=_;for(w=0;w<r;w++)_=n[w][o],n[w][o]=n[w][y],n[w][y]=_}}}(r,o,n)}else{var a=[];for(l=0;l<e;l++)a[l]=t[l].slice();!function(t,e){for(var n=t.length,r=[],o=0,l=n-1,i=o+1;i<l;i++){for(var f=0,s=i;s<=l;s++)f+=Math.abs(t[s][i-1]);if(0!==f){var a=0;for(s=l;s>=i;s--)r[s]=t[s][i-1]/f,a+=r[s]*r[s];var c=Math.sqrt(a);r[i]>0&&(c=-c),a-=r[i]*c,r[i]=r[i]-c;for(var u=i;u<n;u++){var h=0;for(s=l;s>=i;s--)h+=r[s]*t[s][u];h/=a;for(s=i;s<=l;s++)t[s][u]-=h*r[s]}for(s=0;s<=l;s++){for(h=0,u=l;u>=i;u--)h+=r[u]*t[s][u];h/=a;for(u=i;u<=l;u++)t[s][u]-=h*r[u]}r[i]=f*r[i],t[i][i-1]=f*c}}for(s=0;s<n;s++)for(u=0;u<n;u++)e[s][u]=s===u?1:0;for(i=l-1;i>=o+1;i--)if(0!==t[i][i-1]){for(s=i+1;s<=l;s++)r[s]=t[s][i-1];for(u=i;u<=l;u++){for(c=0,s=i;s<=l;s++)c+=r[s]*e[s][u];c=c/r[i]/t[i][i-1];for(s=i;s<=l;s++)e[s][u]+=c*r[s]}}}(a,n),function(t,e,n,r){for(var o,l,i,f,s=n.length,a=s-1,u=0,h=s-1,g=1e-12,d=0,p=0,m=0,v=0,M=0,b=0,x=0,y=0;y<s;y++){(y<u||y>h)&&(t[y]=n[y][y],e[y]=0);for(var _=Math.max(y-1,0);_<s;_++)x+=Math.abs(n[y][_])}var w=0;for(;a>=u;){for(var k=a;k>u&&(0===(M=Math.abs(n[k-1][k-1])+Math.abs(n[k][k]))&&(M=x),!(Math.abs(n[k][k-1])<g*M));)k--;if(k===a)n[a][a]=n[a][a]+d,t[a]=n[a][a],e[a]=0,a--,w=0;else if(k===a-1){if(l=n[a][a-1]*n[a-1][a],m=(p=(n[a-1][a-1]-n[a][a])/2)*p+l,b=Math.sqrt(Math.abs(m)),n[a][a]=n[a][a]+d,n[a-1][a-1]=n[a-1][a-1]+d,i=n[a][a],m>=0){b=p+(p>=0?b:-b),t[a-1]=i+b,t[a]=t[a-1],0!==b&&(t[a]=i-l/b),e[a-1]=0,e[a]=0,p=(i=n[a][a-1])/(M=Math.abs(i)+Math.abs(b)),m=b/M,p/=v=Math.sqrt(p*p+m*m),m/=v;for(_=a-1;_<s;_++)b=n[a-1][_],n[a-1][_]=m*b+p*n[a][_],n[a][_]=m*n[a][_]-p*b;for(y=0;y<=a;y++)b=n[y][a-1],n[y][a-1]=m*b+p*n[y][a],n[y][a]=m*n[y][a]-p*b;for(y=u;y<=h;y++)b=r[y][a-1],r[y][a-1]=m*b+p*r[y][a],r[y][a]=m*r[y][a]-p*b}else t[a-1]=i+p,t[a]=i+p,e[a-1]=b,e[a]=-b;a-=2,w=0}else{if(i=n[a][a],f=0,l=0,k<a&&(f=n[a-1][a-1],l=n[a][a-1]*n[a-1][a]),10==w){d+=i;for(y=u;y<=a;y++)n[y][y]-=i;i=f=.75*(M=Math.abs(n[a][a-1])+Math.abs(n[a-1][a-2])),l=-.4375*M*M}if(30==w&&(M=(M=(f-i)/2)*M+l)>0){M=Math.sqrt(M),f<i&&(M=-M),M=i-l/((f-i)/2+M);for(y=u;y<=a;y++)n[y][y]-=M;d+=M,i=f=l=.964}w++;for(var A=a-2;A>=k&&(p=((v=i-(b=n[A][A]))*(M=f-b)-l)/n[A+1][A]+n[A][A+1],m=n[A+1][A+1]-b-v-M,v=n[A+2][A+1],p/=M=Math.abs(p)+Math.abs(m)+Math.abs(v),m/=M,v/=M,A!=k)&&!(Math.abs(n[A][A-1])*(Math.abs(m)+Math.abs(v))<g*(Math.abs(p)*(Math.abs(n[A-1][A-1])+Math.abs(b)+Math.abs(n[A+1][A+1]))));)A--;for(y=A+2;y<=a;y++)n[y][y-2]=0,y>A+2&&(n[y][y-3]=0);for(var $=A;$<=a-1;$++){var q=$!=a-1;if($!=A&&(p=n[$][$-1],m=n[$+1][$-1],v=q?n[$+2][$-1]:0,0!=(i=Math.abs(p)+Math.abs(m)+Math.abs(v))&&(p/=i,m/=i,v/=i)),0==i)break;if(M=Math.sqrt(p*p+m*m+v*v),p<0&&(M=-M),0!=M){$!=A?n[$][$-1]=-M*i:k!=A&&(n[$][$-1]=-n[$][$-1]),i=(p+=M)/M,f=m/M,b=v/M,m/=p,v/=p;for(_=$;_<s;_++)p=n[$][_]+m*n[$+1][_],q&&(p+=v*n[$+2][_],n[$+2][_]=n[$+2][_]-p*b),n[$][_]=n[$][_]-p*i,n[$+1][_]=n[$+1][_]-p*f;for(y=0;y<=Math.min(a,$+3);y++)p=i*n[y][$]+f*n[y][$+1],q&&(p+=b*n[y][$+2],n[y][$+2]=n[y][$+2]-p*v),n[y][$]=n[y][$]-p,n[y][$+1]=n[y][$+1]-p*m;for(y=u;y<=h;y++)p=i*r[y][$]+f*r[y][$+1],q&&(p+=b*r[y][$+2],r[y][$+2]=r[y][$+2]-p*v),r[y][$]=r[y][$]-p,r[y][$+1]=r[y][$+1]-p*m}}}}if(0==x)return;for(a=s-1;a>=0;a--)if(p=t[a],0==(m=e[a])){k=a;n[a][a]=1;for(y=a-1;y>=0;y--){l=n[y][y]-p,v=0;for(_=k;_<=a;_++)v+=n[y][_]*n[_][a];if(e[y]<0)b=l,M=v;else if(k=y,0===e[y]?n[y][a]=-v/(0!==l?l:g*x):(i=n[y][y+1],f=n[y+1][y],o=(i*M-b*v)/(m=(t[y]-p)*(t[y]-p)+e[y]*e[y]),n[y][a]=o,Math.abs(i)>Math.abs(b)?n[y+1][a]=(-v-l*o)/i:n[y+1][a]=(-M-f*o)/b),g*(o=Math.abs(n[y][a]))*o>1)for(_=y;_<=a;_++)n[_][a]=n[_][a]/o}}else if(m<0){k=a-1;if(Math.abs(n[a][a-1])>Math.abs(n[a-1][a]))n[a-1][a-1]=m/n[a][a-1],n[a-1][a]=-(n[a][a]-p)/n[a][a-1];else{var N=c(0,-n[a-1][a],n[a-1][a-1]-p,m);n[a-1][a-1]=N[0],n[a-1][a]=N[1]}n[a][a-1]=0,n[a][a]=1;for(y=a-2;y>=0;y--){var z,E,I=0,j=0;for(_=k;_<=a;_++)I+=n[y][_]*n[_][a-1],j+=n[y][_]*n[_][a];if(l=n[y][y]-p,e[y]<0)b=l,v=I,M=j;else{if(k=y,0==e[y]){N=c(-I,-j,l,m);n[y][a-1]=N[0],n[y][a]=N[1]}else{i=n[y][y+1],f=n[y+1][y],0==(z=(t[y]-p)*(t[y]-p)+e[y]*e[y]-m*m)&0==(E=2*(t[y]-p)*m)&&(z=g*x*(Math.abs(l)+Math.abs(m)+Math.abs(i)+Math.abs(f)+Math.abs(b)));N=c(i*v-b*I+m*j,i*M-b*j-m*I,z,E);if(n[y][a-1]=N[0],n[y][a]=N[1],Math.abs(i)>Math.abs(b)+Math.abs(m))n[y+1][a-1]=(-I-l*n[y][a-1]+m*n[y][a])/i,n[y+1][a]=(-j-l*n[y][a]-m*n[y][a-1])/i;else{N=c(-v-f*n[y][a-1],-M-f*n[y][a],b,m);n[y+1][a-1]=N[0],n[y+1][a]=N[1]}}if(g*(o=Math.max(Math.abs(n[y][a-1]),Math.abs(n[y][a])))*o>1)for(_=y;_<=a;_++)n[_][a-1]=n[_][a-1]/o,n[_][a]=n[_][a]/o}}}for(y=0;y<s;y++)if(y<u||y>h)for(_=y;_<s;_++)r[y][_]=n[y][_];for(_=s-1;_>=u;_--)for(y=u;y<=h;y++){b=0;for($=u;$<=Math.min(_,h);$++)b+=r[y][$]*n[$][_];r[y][_]=b}}(r,o,a,n)}var u=[];for(l=0;l<e;l++){var h=u[l]=[];for(f=0;f<e;f++)h[f]=l===f?r[l]:0;u[l][o[l]>0?l+1:l-1]=o[l]}return{D:u,V:n}}},determinant:function(t){var e=t[0].concat(t[1]).concat(t[2]).concat(t[3]);return e[12]*e[9]*e[6]*e[3]-e[8]*e[13]*e[6]*e[3]-e[12]*e[5]*e[10]*e[3]+e[4]*e[13]*e[10]*e[3]+e[8]*e[5]*e[14]*e[3]-e[4]*e[9]*e[14]*e[3]-e[12]*e[9]*e[2]*e[7]+e[8]*e[13]*e[2]*e[7]+e[12]*e[1]*e[10]*e[7]-e[0]*e[13]*e[10]*e[7]-e[8]*e[1]*e[14]*e[7]+e[0]*e[9]*e[14]*e[7]+e[12]*e[5]*e[2]*e[11]-e[4]*e[13]*e[2]*e[11]-e[12]*e[1]*e[6]*e[11]+e[0]*e[13]*e[6]*e[11]+e[4]*e[1]*e[14]*e[11]-e[0]*e[5]*e[14]*e[11]-e[8]*e[5]*e[2]*e[15]+e[4]*e[9]*e[2]*e[15]+e[8]*e[1]*e[6]*e[15]-e[0]*e[9]*e[6]*e[15]-e[4]*e[1]*e[10]*e[15]+e[0]*e[5]*e[10]*e[15]},dot:u,gaussjordan:h,inverse:function(t){var e=t.length,n=-1;if(e===t[0].length){for(h(t=t.map((function(t,n){for(var r=new Array(e),o=-1;++o<e;)r[o]=n===o?1:0;return t.concat(r)})));++n<e;)t[n]=t[n].slice(e);return t}},length:g,multiply:function(t,e){var n,r,o=t.length,l=e[0].length,i=e.length,f=-1;if(i!==t[0].length)throw{error:"columns(a) != rows(b); "+t[0].length+" != "+i};for(var s=new Array(o);++f<o;)for(s[f]=new Array(l),n=-1;++n<l;){var a=0;for(r=-1;++r<i;)a+=t[f][r]*e[r][n];s[f][n]=a}return s},normalize:function(t){var e=g(t);return t.map((function(t){return t/e}))},transpose:function(t){for(var e,n=t.length,r=t[0].length,o=-1,l=new Array(r);++o<r;)for(l[o]=new Array(n),e=-1;++e<n;)l[o][e]=t[e][o];return l},tridag:function(t,e,n,r,o,l){var i,f;for(i=1;i<l;i++)f=t[i]/e[i-1],e[i]-=f*n[i-1],r[i]-=f*r[i-1];for(o[l-1]=r[l-1]/e[l-1],i=l-2;i>=0;i--)o[i]=(r[i]-n[i]*o[i+1])/e[i]}});function p(t){var e=t<0?-1:1;t<0&&(e=-1,t=-t);var n=1/(1+.3275911*t);return e*(1-((((1.061405429*n-1.453152027)*n+1.421413741)*n-.284496736)*n+.254829592)*n*Math.exp(-t*t))}var m=1/Math.sqrt(2*Math.PI),v=Object.freeze({gaussian:function(){var t=Math.random,e=0,n=1,r=1;function o(){var r,o,l;do{l=(r=2*t()-1)*r+(o=2*t()-1)*o}while(l>=1||0===l);return e+n*r*Math.sqrt(-2*Math.log(l)/l)}return o.pdf=function(t){return t=(t-e)/n,m*Math.exp(-.5*t*t)/n},o.cdf=function(t){return.5*(1+p((t=(t-e)/n)/Math.SQRT2))},o.mean=function(t){return arguments.length?(e=+t,o):e},o.variance=function(t){return arguments.length?(n=Math.sqrt(r=+t),o):r},o.random=function(e){return arguments.length?(t=e,o):t},o}});function M(t){var e=t.length;if(0===e)return NaN;for(var n=0,r=-1;++r<e;)n+=(t[r]-n)/(r+1);return n}function b(t){var e=t.length;if(e<1)return NaN;if(1===e)return 0;for(var n=M(t),r=-1,o=0;++r<e;){var l=t[r]-n;o+=l*l}return o/(e-1)}function x(t,e){var n=(t=t.slice().sort(i)).length-1;return e.map((function(e){if(0===e)return t[0];if(1===e)return t[n];var r=1+e*n,o=Math.floor(r),l=r-o,i=t[o-1];return 0===l?i:i+l*(t[o]-i)}))}function y(t){var e=x(t,[.25,.75]);return e[1]-e[0]}function _(t){var e=y(t)/1.34;return 1.06*Math.min(Math.sqrt(b(t)),e)*Math.pow(t.length,-.2)}var w=Object.freeze({nrd0:function(t){var e,n=Math.sqrt(b(t));return(e=Math.min(n,y(t)/1.34))||(e=n)||(e=Math.abs(t[1]))||(e=1),.9*e*Math.pow(t.length,-.2)},nrd:_});function k(t,e){for(var n,r=t.length,o=-1,l=0;++o<r;)l+=(n=t[o]-e[o])*n;return Math.sqrt(l)}function A(t,e,n,r){for(var o=[],l=t+n,i=e.length,f=-1;++f<i;)o[f]=(t*e[f]+n*r[f])/l;return o}function $(t){return 1/Math.sqrt(2*Math.PI)*Math.exp(-.5*t*t)}function q(t,e){if(!t||!e||t.length!==e.length)return!1;for(var n=t.length,r=-1;++r<n;)if(t[r]!==e[r])return!1;return!0}function N(t){return x(t,[.5])[0]}function z(t){for(var e=t.length,n=-1;++n<e;)if(!isFinite(t[n]))return!1;return!0}function E(t){for(var e=t.length,n=0;++n<e;)if(t[n-1]>=t[n])return!1;return!0}function I(t){return(t=1-t*t*t)*t*t}function j(t,e,n,r){var o=r[0],l=O(e,r[1]);if(l<t.length&&t[l]-t[n]<t[n]-t[o]){var i=O(e,o);r[0]=i,r[1]=l}}function O(t,e){for(var n=e+1;n<t.length&&0===t[n];)n++;return n}var D=Object.freeze({euclidean:k,manhattan:function(t,e){for(var n=t.length,r=-1,o=0;++r<n;)o+=Math.abs(t[r]-e[r]);return o},minkowski:function(t){return function(e,n){for(var r=e.length,o=-1,l=0;++o<r;)l+=Math.pow(Math.abs(e[o]-n[o]),t);return Math.pow(l,1/t)}},chebyshev:function(t,e){for(var n,r=t.length,o=-1,l=0;++o<r;)(n=Math.abs(t[o]-e[o]))>l&&(l=n);return l},hamming:function(t,e){for(var n=t.length,r=-1,o=0;++r<n;)t[r]!==e[r]&&o++;return o},jaccard:function(t,e){for(var n=t.length,r=-1,o=0;++r<n;)t[r]===e[r]&&o++;return o/n},braycurtis:function(t,e){for(var n,r,o=t.length,l=-1,i=0,f=0;++l<o;)n=t[l],r=e[l],i+=Math.abs(n-r),f+=Math.abs(n+r);return i/f}}),P=Object.freeze({uniform:function(t){return t<=1&&t>=-1?.5:0},triangular:function(t){return t<=1&&t>=-1?1-Math.abs(t):0},epanechnikov:function(t){return t<=1&&t>=-1?.75*(1-t*t):0},quartic:function(t){if(t<=1&&t>=-1){var e=1-t*t;return 15/16*e*e}return 0},triweight:function(t){if(t<=1&&t>=-1){var e=1-t*t;return 35/32*e*e*e}return 0},gaussian:$,cosine:function(t){return t<=1&&t>=-1?Math.PI/4*Math.cos(Math.PI/2*t):0}}),T=v,F=w,R=d,S=Object.freeze({distance:D,kernel:P,distribution:T,bandwidth:F,erf:p,hcluster:function(){var t=k;function e(e){var n,r,o,l,i,f,s,a,c=e.length,u=[],h=[],g=[],d=[];for(s=-1;++s<c;)for(u[s]=0,g[s]=[],a=-1;++a<c;)g[s][a]=s===a?1/0:t(e[s],e[a]),g[s][u[s]]>g[s][a]&&(u[s]=a);for(s=-1;++s<c;)d[s]=[],d[s][0]={left:null,right:null,dist:0,centroid:e[s],size:1,depth:0},h[s]=1;for(i=0;i<c-1;i++){for(n=0,s=0;s<c;s++)g[s][u[s]]<g[n][u[n]]&&(n=s);r=u[n];var p={left:o=d[n][0],right:l=d[r][0],dist:g[n][r],centroid:A(o.size,o.centroid,l.size,l.centroid),size:o.size+l.size,depth:1+Math.max(o.depth,l.depth)};for(d[n].splice(0,0,p),h[n]+=h[r],a=0;a<c;a++)g[n][a]>g[r][a]&&(g[a][n]=g[n][a]=g[r][a]);for(g[n][n]=1/0,s=0;s<c;s++)g[s][r]=g[r][s]=1/0;for(a=0;a<c;a++)u[a]==r&&(u[a]=n),g[n][a]<g[n][u[n]]&&(u[n]=a);f=p}return f}return e.distance=function(n){return arguments.length?(t=n,e):t},e},iqr:y,kde:function(){var t=$,e=[],n=_;function r(r,o){var l=n.call(this,e);return r.map((function(n){for(var r=-1,o=0,i=e.length;++r<i;)o+=t((n-e[r])/l);return[n,o/l/i]}))}return r.kernel=function(e){return arguments.length?(t=e,r):t},r.sample=function(t){return arguments.length?(e=t,r):e},r.bandwidth=function(t){return arguments.length?(n=f(t),r):n},r},kmeans:function(){var t=k,e=1;function n(n){for(var r,o,l,i,f,s,a,c=n.length,u=[],h=[],g=1,d=0,p=function(t,e){var n=e.length;if(t>n)return null;var r,o,l,i=[],f=[],s={},a=0,c=0;for(;c<t;){if(a===n)return null;var u=Math.floor(Math.random()*n);if(!(u in s)){for(s[u]=1,a++,o=e[u],l=!0,r=0;r<c;r++)if(q(o,i[r])){l=!1;break}l&&(i[c]=o,f[c]=u,c++)}}return i}(e,n);g&&d<1e3;){for(l=-1;++l<e;)h[l]=0;for(o=-1;++o<c;){for(i=n[o],s=1/0,l=-1;++l<e;)(f=t.call(this,p[l],i))<s&&(s=f,a=l);h[u[o]=a]++}for(r=[],o=-1;++o<c;)if(null==(f=r[i=u[o]]))r[i]=n[o].slice();else for(l=-1;++l<f.length;)f[l]+=n[o][l];for(l=-1;++l<e;)for(i=r[l],f=1/h[l],o=-1;++o<i.length;)i[o]*=f;for(g=0,l=-1;++l<e;)if(!q(r[l],p[l])){g=1;break}p=r,d++}return{assignments:u,centroids:p}}return n.k=function(t){return arguments.length?(e=t,n):e},n.distance=function(e){return arguments.length?(t=e,n):t},n},loess:function(){var t=.3,e=2,n=1e-12;function r(r,o,l){var i,f=r.length;if(f!==o.length)throw{error:"Mismatched array lengths"};if(0==f)throw{error:"At least one point required."};if(arguments.length<3)for(l=[],i=-1;++i<f;)l[i]=1;if(z(r),z(o),z(l),E(r),1==f)return[o[0]];if(2==f)return[o[0],o[1]];var s=Math.floor(t*f);if(s<2)throw{error:"Bandwidth too small."};var a=[],c=[],u=[];for(i=-1;++i<f;)a[i]=0,c[i]=0,u[i]=1;for(var h=-1;++h<=e;){var g,d=[0,s-1];for(i=-1;++i<f;){g=r[i],i>0&&j(r,l,i,d);for(var p=d[0],m=d[1],v=r[i]-r[p]>r[m]-r[i]?p:m,M=0,b=0,x=0,y=0,_=0,w=Math.abs(1/(r[v]-g)),k=p;k<=m;++k){var A=r[k],$=o[k],q=k<i?g-A:A-g,O=A*(Q=I(q*w)*u[k]*l[k]);M+=Q,b+=O,x+=A*O,y+=$*Q,_+=$*O}var D=b/M,P=y/M,T=_/M,F=x/M,R=Math.sqrt(Math.abs(F-D*D))<n?0:(T-D*P)/(F-D*D),S=P-R*D;a[i]=R*g+S,c[i]=Math.abs(o[i]-a[i])}if(h===e)break;var B,Q,V=N(c);if(Math.abs(V)<n)break;for(i=-1;++i<f;)B=c[i]/(6*V),u[i]=B>=1?0:(Q=1-B*B)*Q}return a}return r.bandwidth=function(e){return arguments.length?(t=e,r):e},r.robustnessIterations=function(t){return arguments.length?(e=t,r):t},r.accuracy=function(t){return arguments.length?(n=t,r):t},r},mean:M,median:N,mode:function(t){for(var e,n,r={},o=[],l=0,i=t.length,f=-1;++f<i;)(n=r.hasOwnProperty(e=t[f])?++r[e]:r[e]=1)===l?o.push(e):n>l&&(l=n,o=[e]);if(1===o.length)return o[0]},phi:function(t){return.5*(1+p(t/Math.SQRT2))},quantiles:x,variance:b});const{dot:B,length:Q,normalize:V,transpose:G}=R,{mean:L}=S;function Y(t,e){return t-e}const C=Y;function H(t,e){return t.concat(e)}function J(t){let e=-1;const n=[];if(1===arguments.length)for(;++e<t;)n[e]=1/0;else for(;++e<t;)n[e]=J.apply(this,Array.prototype.slice.call(arguments,1));return n}function K(t,e){let n=-1;const r=Array(t);for(;++n<t;)r[n]=e;return r}function U(t,e){const n=[];e||(e=t.components());for(let r=0;r<e.length;r++)n.push(W(t,e[r]));return n}function W(t,e){const n=J(e.length,e.length),o=r(e);for(let t=0;t<e.length;t++)n[t][t]=0;const l=e=>{if(e.source==e.target)return;if(!(e.source.index in o)||!(e.target.index in o))return;const r=o[e.source.index],l=o[e.target.index];n[l][r]=n[r][l]=t.distance(e.index)};for(let n=0;n<e.length;n++)t.edges(e[n]).forEach(l);for(let t=0;t<e.length;t++)for(let r=0;r<e.length;r++)if(n[r][t]!=1/0)for(let o=0;o<e.length;o++)n[t][o]!=1/0&&n[r][o]>n[r][t]+n[t][o]&&(n[r][o]=n[r][t]+n[t][o],n[o][r]=n[r][o]);return n}function X(t,e,o){const l=n(t.nodes().length);void 0===e&&(e=l.filter((e=>0!==t.outDegree(e))),o=l.filter((e=>0!==t.inDegree(e))));let i=!1;if(e.length<o.length){const t=e;e=o,o=t,i=!0}const f=r(o);let s=[];for(let n=0;n<e.length;n++){const r=i?t.inEdges(e[n]).map((t=>f[t.target.index])):t.outEdges(e[n]).map((t=>f[t.source.index]));r.sort(C),s=s.concat(r)}let c=1;for(;c<o.length;)c<<=1;const u=2*c-1;c-=1;const h=a(u);let g=0;for(let t=0;t<s.length;t++){let e=s[t]+c;for(h[e]++;e>0;)e%2&&(g+=h[e+1]),e=e-1>>1,h[e]++}return g}function Z(t){if(0===t.length)return-1;if(1===t.length)return t[0];if(2===t.length)return(t[0]+t[1])/2;if(t.sort(C),t.length%2)return t[(t.length-1)/2];const e=t.length/2,n=e-1,r=t[t.length-1]-t[e],o=t[n]-t[0];return o==r?(t[n]+t[e])/2:(t[n]*r+t[e]*o)/(o+r)}function tt(e,n,o){const l=e.nodes();let i,f,s,a,c;const u=n.filter((t=>0!==e.outDegree(t))),h=n.filter((t=>0!==e.inDegree(t)));if(n.length<3)return[u,h,X(e,u,h)];o?o%2==1&&o++:o=24;let g,d=r(h),p=X(e,u,h),m=u.slice(),v=h.slice(),M=0;const b=t=>d[t.source==g?t.target.index:t.source.index],x=(t,n)=>{let r=c[t]-c[n];return 0===r&&(r=e.edges(n).length%2-e.edges(t).length%2),r<0?-1:r>0?1:0};for(s=u,f=0;f<o;f++,s=s==u?h:u){c={};for(let t=0;t<s.length;t++)g=l[s[t]],a=s==u?e.outEdges(g.index):e.inEdges(g.index),a=a.map(b),c[g.index]=+Z(a);s.sort(x);for(let t=0;t<s.length;t++)d=r(s);i=X(e,u,h),i<p&&(p=i,m=u.slice(),v=h.slice(),M=f,o=Math.max(o,f+2))}return t.debug&&console.log(`Best iter: ${M}`),[m,v,p]}t.debug=!1;class et{constructor(){this.length=0}push(t){const e={item:t};this.last?this.last=this.last.next=e:this.last=this.first=e,this.length++}shift(){const t=this.first;if(t)return this.first=t.next,--this.length||(this.last=void 0),t.item}slice(t=0,e=1/0){const n=[];let r=0;for(let o=this.first;o&&!(--e<0);o=o.next)++r>t&&n.push(o.item);return n}}function nt(t,e,n){const r=new et,o={};for(r.push(e),o[e]=!0,n(e,void 0);r.length;){n(e=r.shift(),e);const l=t.edges(e);for(let i=0;i<l.length;i++){const f=l[i],s=t.other(f,e).index;o[s]||(r.push(s),o[s]=!0,n(e,s))}n(e,-1)}}function rt(t,e){const n={};return n[e]=0,nt(t,e,((t,e)=>{e>=0&&t!=e&&(n[e]=n[t]+1)})),n}function ot(t){return n(0,t.length).sort(((e,n)=>t[e]-t[n]))}const lt=ot;function it(e){const n=e.length,r=e[0].length,o=function(t){const e=t.length,n=t[0].length,r=a(n);for(let o=0;o<e;o++){const e=t[o];for(let t=0;t<n;t++)r[t]+=e[t]}return r}(e),l=function(t){const e=t.length,n=t[0].length,r=Array(e);for(let o=0;o<e;o++){const e=t[o];let l=0;for(let t=0;t<n;t++)l+=e[t];r[o]=l}return r}(e),i=function(e,n,r,o,l,i,f){let s,c,u,h,g,d,p,m,v,M,b,x,y,_,w,k,A,$,q,N;const z=a(o),E=a(o),I=a(o),j=a(o);let O=0;for(let t=0;t<o;t++)O+=f[t],n[t]=t+1;n[0]=1.1;let D=5e-6;for(ft(n,n,e,i,r,o,l),s=0;;){c=0;for(let t=0;t<o;t++)c+=n[t]*f[t];c/=O,h=0;for(let t=0;t<o;t++)u=n[t]-c,h+=u*u*f[t],n[t]=u;h=Math.sqrt(h);for(let t=0;t<o;t++)n[t]/=h;ft(n,z,e,i,r,o,l),c=0,g=0,d=0,p=0,m=0,v=0,M=0,b=0;for(let t=0;t<o;t++)u=z[t],z[t]=u/f[t],c+=u,g+=u*n[t];c/=O;for(let t=0;t<o;t++)u=z[t]-(c+g*n[t]),d+=u*u*f[t],z[t]=u;d=Math.sqrt(d);for(let t=0;t<o;t++)z[t]/=d;if(d<D||s>999)break;s++,ft(z,E,e,i,r,o,l),c=0,A=0;for(let t=0;t<o;t++)u=E[t],E[t]=u/f[t],c+=u,p+=u*z[t],A+=u*n[t];c/=O;for(let t=0;t<o;t++)u=E[t]-(c+p*z[t]+A*n[t]),m+=u*u*f[t],E[t]=u;if(m=Math.sqrt(m),m>D){for(let t=0;t<o;t++)E[t]/=m;ft(E,I,e,i,r,o,l),c=0,$=0,q=0;for(let t=0;t<o;t++)u=I[t],I[t]/=f[t],c+=u,v+=u*E[t],$+=u*n[t],q+=u*z[t];c/=O;for(let t=0;t<o;t++)u=I[t]-(c+v*E[t]+$*n[t]+q*z[t]),M+=u*u*f[t],I[t]=u;if(M=Math.sqrt(M),M>D){for(let t=0;t<o;t++)I[t]/=M;ft(I,j,e,i,r,o,l);for(let t=0;t<o;t++)b+=I[t]*j[t]}else M=0}else m=0;if(x=ut(D,g,d,p,m,v,M,b),y=x[0],_=x[1],w=x[2],k=x[3],d<D)break;for(let t=0;t<o;t++)n[t]=y*n[t]+_*z[t]+w*E[t]+k*I[t]}d>D&&t.debug>0&&console.log("residual bigger than tolerance on axis 1");let P=n[0],T=n[0];for(let t=1;t<o;t++)c=n[t],c<T?T=c:c>P&&(P=c);if(-T>P)for(let t=0;t<o;t++)n[t]=-n[t];at(n,e,r,o,l);for(let t=0;t<r;t++)e[t]/=i[t];let F=0;for(let t=0;t<r;t++)F+=i[t]*ct(e[t]);F=Math.sqrt(F);for(let t=0;t<r;t++)e[t]/=F;for(let t=0;t<o;t++)n[t]/=F;let R,S=0;for(let t=0;t<r;t++){R=e[t],N=l[t];for(let t=0;t<o;t++)S+=N[t]*ct(R-n[t])}let B=Math.sqrt(S/O);if(g>=.999){B=P/F;const t=-T/F;t>B&&(B=t)}for(let t=0;t<o;t++)n[t]/=B;return{rows:e,cols:n,eig:g}}(K(n,1),K(r,1),n,r,e,l,o);if(i.eig<1e-7)i.rows=i.cols=[],i.eig=0;else{const t=i.rows;at(i.cols,t,n,r,e);for(let e=0;e<n;e++)t[e]/=l[e]}return i}function ft(t,e,n,r,o,l,i,f){f&&console.log(`TRANS ${f}`),at(t,n,o,l,i,f);for(let t=0;t<o;t++)n[t]=n[t]/r[t];!function(t,e,n,r,o,l){l&&(console.log("xymult"),st(e));for(let t=0;t<r;t++)e[t]=0;for(let l=0;l<n;l++){const n=t[l],i=o[l];for(let t=0;t<r;t++)e[t]+=n*i[t]}l&&st(e)}(n,e,o,l,i,f)}function st(t){console.log("");for(let e=0;e<t.length;e++)console.log(`i:${e+1} v: ${t[e].toFixed(5)}`)}function at(t,e,n,r,o,l){l&&(console.log("yxmult"),st(e));for(let l=0;l<n;l++){let n=0;const i=o[l];for(let e=0;e<r;e++)n+=t[e]*i[e];e[l]=n}l&&st(e)}function ct(t){return t*t}function ut(t,e,n,r,o,l,i,f){let s,a,c,u,h,g,d,p=1,m=.1,v=.01,M=.001;for(let b=0;b<100&&(s=e*p+n*m,a=n*p+r*m+o*v,c=o*m+l*v+i*M,u=i*v+f*M,p=e*s+n*a,m=n*s+r*a+o*c,v=o*a+l*c+i*u,M=i*c+f*u,h=Math.sqrt(ct(p)+ct(m)+ct(v)+ct(M)),p/=h,m/=h,v/=h,M/=h,(b+1)%5==0&&(g=Math.sqrt(h),d=Math.sqrt(ct(p-s/g)+ct(m-a/g)+ct(v-c/g)+ct(M-u/g))),!(d<.05*t));b++);return[p,m,v,M]}const ht=it,gt=it;const dt={pearson(t,e){const n=L(t),r=L(e),o=Math.min(t.length,e.length);if(0===o)return NaN;let l=0,i=0,f=0;for(let s=0;s<o;s++){const o=t[s]-n,a=e[s]-r;l+=o*a,i+=o*o,f+=a*a}return l/Math.sqrt(i*f)},pearsonMatrix(t){const e=dt.pearson,n=t.length;if(0===n)return NaN;const r=a(n,n);for(let o=0;o<n-1;o++)for(let l=o+1;l<n;l++){const n=e(t[o],t[l]);r[o][l]=r[l][o]=n}return r}},pt=B;function mt(t,e,n){const r=t.length;let o=0;for(let l=0;l<r;l++)o+=t[l][e]*t[l][n];return o}function vt(t){const e=t[0].length,n=Array(e);for(let t=0;t<e;t++)n[t]=Array(e);for(let r=0;r<e;r++)for(let o=r;o<e;o++)n[r][o]=n[o][r]=mt(t,r,o);return n}function Mt(t,e){if(e.length<3)return e;const n={},o=new et,l=r(e),i=[];let f=e[0],s=t.degree(f);for(let n=0;n<e.length;n++){const r=e[n];if(t.degree(r)<s&&(s=t.degree(r),f=r,1==s))break}for(o.push(f);0!==o.length;){const e=o.shift();if(n[e])continue;n[e]=!0,i.push(e);t.edges(e).map((n=>t.other(n,e).index)).filter((t=>!n[t]&&t in l)).sort(((e,n)=>t.degree(e)-t.degree(n))).forEach(o.push,o)}return i}function bt(t,e){return Mt(t,e).reverse()}function xt(t,e,n,r){r||(r="");for(let o=0;o<t.length;o++)0!==r.length&&(r+=", "),r+=n?t[n[o]].toFixed(e):t[o].toFixed(e);console.log(r)}function yt(t,e,n,r){e||(e=4);for(let o=0;o<t.length;o++){xt(n?t[n[o]]:t[o],e,r,`${o}: `)}}function _t(t,e){if(!t)throw console.log(e),e||"Assertion failed"}function wt(t,e){return null===t.left?`${Array(e+1).join(" ")}id: ${t.id}`:`${Array(e+1).join(" ")}id: ${t.id}, dist: ${t.dist}\n${wt(t.left,e+1)}\n${wt(t.right,e+1)}`}function kt(t,e){return!(isNaN(t)||isNaN(e)||t==1/0||e==1/0)}const At={euclidean(t,e){let n=0;for(let r=t.length;r>0;r--)if(kt(t[r],e[r])){const o=t[r]-e[r];n+=o*o}return Math.sqrt(n)},manhattan(t,e){let n=0;for(let r=t.length;r>0;r--)kt(t[r],e[r])&&(n+=Math.abs(t[r]-e[r]));return n},minkowski:t=>(e,n)=>{let r=0;for(let o=e.length;o>0;o--)kt(e[o],n[o])&&(r+=Math.pow(Math.abs(e[o]-n[o]),t));return Math.pow(r,1/t)},chebyshev(t,e){let n=0;for(let r=t.length;r>0;r--)if(kt(t[r],e[r])){const o=Math.abs(t[r]-e[r]);o>n&&(n=o)}return n},hamming(t,e){let n=0;for(let r=t.length;r>0;r--)kt(t[r],e[r])&&t[r]!==e[r]&&n++;return n},jaccard(t,e){let n=0,r=0;for(let o=t.length;o>0;o--)kt(t[o],e[o])&&(t[o]===e[o]&&r++,n++);return 0===n?0:r/n},braycurtis(t,e){let n=0,r=0;for(let o=t.length;o>0;o--){const l=t[o],i=e[o];kt(l,i)&&(n+=Math.abs(l-i),r+=Math.abs(l+i))}return 0===r?0:n/r}};function $t(){let t=At.euclidean;function e(e){const n=e.length,r=[];for(let o=0;o<n;o++){const l=[];r[o]=l;for(let i=0;i<n;i++)i<o?l.push(r[i][o]):o===i?l.push(0):l.push(t(e[o],e[i]))}return r}return e.distance=function(n){return arguments.length?(t=n,e):t},e}function qt(t){let e=0;const n=t.length;for(let r=0;r<n;r++){const o=t[r];for(let t=r+1;t<n;t++)o[t]>e&&(e=o[t])}return e}function Nt(t,e,n=e+1){t.splice(e,n-e);for(let r=t.length;r-- >0;)t[r].splice(e,n-e);return t}function zt(t,e=0,n=t.length){let r=n-e;for(;r>0;){const n=e+Math.floor(Math.random()*r--),o=t[e+r];t[e+r]=t[n],t[n]=o}return t}function Et(t,e,n){const r=Array(t);if(1==arguments.length)for(;t;)r[--t]=Math.random();else if(2==arguments.length)for(;t;)r[--t]=Math.random()*e;else for(;t;)r[--t]=e+Math.random()*(n-e);return r}function It(t){const e=Q(t);let n=t.length;if(0===e||Math.abs(e-1)<1e-9)return 1;for(;n-- >0;)t[n]/=e;return e}function jt(t,e,n){e||(e=1e-9);const r=t.length;let o,l=Array(r),i=100;for(_t(r==t[0].length,"poweriteration needs a square matrix"),o=n?n.slice():Et(r),It(o);i-- >0;){for(let e=0;e<r;e++){l[e]=0;for(let n=0;n<r;n++)l[e]+=t[e][n]*o[n]}if(It(l),B(l,o)>1-e)break;const n=l;l=o,o=n}return l}function Ot(e,n,r,o,l){o||(o=1e-9);const i=e.length,f=Array(n);let s=Array(i),a=100;const c=Array(n);if(_t(i==e[0].length,"poweriteration needs a square matrix"),r)for(let t=0;t<n;t++)f[t]=r[t].slice(),c[t]=It(f[t]);else for(let t=0;t<n;t++){const e=f[t]=Et(i);c[t]=It(e)}l||(l=0);for(let r=l;r<n;r++){let n=f[r];for(;a-- >0;){for(let t=0;t<r;t++){const e=f[t],r=B(n,e);for(let t=0;t<i;t++)n[t]-=r*e[t]}for(let t=0;t<i;t++){s[t]=0;for(let r=0;r<i;r++)s[t]+=e[t][r]*n[r]}if(c[r]=It(s),B(s,n)>1-o)break;n=s,s=f[r],f[r]=n}t.debug&&console.log("eig[%d]=%j",r,n)}return[f,c]}function Dt(e,n){const r=function(e){let n=0;const r=e.length;for(let t=0;t<r;t++){const o=e[t];let l=o[t];for(let e=0;e<r;e++)e!=t&&(l+=Math.abs(o[e]));l>n&&(n=l)}return t.debug&&console.log("gershgorin_bound=%d",n),n}(e),o=e.length,l=e.map((t=>t.slice()));for(let t=0;t<o;t++){const e=l[t];for(let n=0;n<o;n++)e[n]=t==n?r-e[n]:-e[n]}return Ot(l,2,[K(o,1),Et(o)],n,1)[0][1]}function Pt(e,n,r){const o={};let l,i,f,s,a=1;return o.nodes=function(t){return arguments.length?(e=t,o):e},o.nodes_indices=()=>e.map((t=>t.index)),o.generate_nodes=t=>{e=[];for(let n=0;n<t;n++)e.push({id:n});return o},o.links=function(t){return arguments.length?(n=t,o):n},o.links_indices=()=>n.map((t=>({source:t.source.index,target:t.target.index}))),o.linkDistance=function(t){return arguments.length?(a="function"==typeof t?t:+t,o):a},o.directed=function(t){return arguments.length?(r=t,o):r},o.init=function(){const t=e.length,c=n.length;s=void 0;for(let n=0;n<t;++n){const t=e[n];t.index=n,t.weight=0}for(let t=0;t<c;++t){const r=n[t];r.index=t,"number"==typeof r.source&&(r.source=e[r.source]),"number"==typeof r.target&&(r.target=e[r.target]),"value"in r||(r.value=1),r.source.weight++,r.target.weight++}if("function"==typeof a)for(let t=0;t<c;++t)n[t].distance=+a.call(this,n[t],t);else for(let t=0;t<c;++t)n[t].distance=a;l=Array(e.length);for(let t=0;t<e.length;++t)l[t]=[];if(r){i=Array(e.length),f=Array(e.length);for(let t=0;t<e.length;++t)i[t]=[],f[t]=[]}else i=f=l;for(let t=0;t<n.length;++t){const e=n[t];l[e.source.index].push(e),e.source.index!=e.target.index&&l[e.target.index].push(e),r&&i[e.source.index].push(e),r&&f[e.target.index].push(e)}return o},o.edges=e=>("number"!=typeof e&&(e=e.index,t.debug&&console.log("received node %d",e)),l[e]),o.degree=t=>("number"!=typeof t&&(t=t.index),l[t].length),o.inEdges=t=>("number"!=typeof t&&(t=t.index),i[t]),o.inDegree=t=>("number"!=typeof t&&(t=t.index),i[t].length),o.outEdges=t=>("number"!=typeof t&&(t=t.index),f[t]),o.outDegree=t=>("number"!=typeof t&&(t=t.index),f[t].length),o.sinks=()=>{const t=[];for(let n=0;n<e.length;n++)0===o.outEdges(n).length&&t.push(n);return t},o.sources=()=>{const t=[];for(let n=0;n<e.length;n++)0===o.inEdges(n).length&&t.push(n);return t},o.distance=function(t){return n[t].distance},o.neighbors=function(t){const e=l[t],n=[];for(const r of e)r.source.index==t?n.push(r.target):n.push(r.source);return n},o.other=(t,e)=>("number"==typeof t&&(t=n[t]),t.source.index===e?t.target:t.source),o.components=()=>(s||(s=function(){const t=[],n=[],r=e.length;for(let t=0;t<r;t++)e[t].comp=0;for(let o=0,i=0;o<r;o++){if(0!==e[o].comp)continue;i+=1,e[o].comp=i,t.push(o);const r=[o];for(;t.length;){const e=t.shift(),n=l[e];for(let o=0;o<n.length;o++){const l=n[o];let f=l.source;f.index==e&&(f=l.target),f.index!=e&&0===f.comp&&(f.comp=i,r.push(f.index),t.push(f.index))}}r.length&&(r.sort(C),n.push(r))}return n.sort(((t,e)=>e.length-t.length)),n}()),s),o}function Tt(t,e){let n=e.length;const r=t.slice();for(;n--;)r[n]=t[e[n]];return r}function Ft(t){const e=t.length,n=a(e,e),r=qt(t);for(let o=0;o<e;o++)for(let l=o;l<e;l++)n[l][o]=n[o][l]=1+r-t[o][l];return n}function Rt(t){const e=Array(t);for(let n=0;n<t;n++)e[n]={id:n};return e}function St(t,e){return Pt(Rt(t),[],e)}function Bt(t,e){const n=Rt(t),r=[];if(e)for(let e=0;e<t;e++)for(let n=0;n<t;n++)e!=n&&r.push({source:e,target:n});else for(let e=0;e<t-1;e++)for(let n=e+1;n<t;n++)r.push({source:e,target:n});return Pt(n,r,e).init()}function Qt(t,e,n){if(e<=0)return St(t,n);if(e>=1)return Bt(t,n);const r=Rt(t),o=[];let l=-1,i=Math.log(1-e);if(n)for(let e=0;e<t;){const n=Math.log(1-Math.random());for(l=l+1+Math.floor(n/i),e==l&&(l+=1);l>=t&&e<t;)l-=t,e+=1,e==l&&(l+=1);e<t&&o.push({source:e,target:l})}else for(let e=1;e<t;){const n=Math.log(1-Math.random());for(l=l+1+Math.floor(n/i);l>=e&&e<t;)l-=e,e+=1;e<t&&o.push({source:e,target:l})}return Pt(r,o,n).init()}const Vt=Qt;function Gt(){let t=At.euclidean,e="single",n=null;function r(r){const o=r.length,l=[],i=[],f=[];let s,a=0;if(null===n){n=[];let e=-1;for(;++e<o;){l[e]=0,n[e]=[];let i=-1;for(;++i<o;)n[e][i]=e===i?1/0:t(r[e],r[i]),n[e][l[e]]>n[e][i]&&(l[e]=i)}}else{if(n.length<o||n[0].length<o)throw{error:`Provided distance matrix length ${n.length} instead of ${o}`};let t=-1;for(;++t<o;){l[t]=0;let e=-1;for(;++e<o;)t===e&&(n[t][e]=1/0),n[t][l[t]]>n[t][e]&&(l[t]=e)}}let c=-1;for(;++c<o;)c!=a&&console.log("i = %d, id = %d",c,a),f[c]=[],f[c][0]={left:null,right:null,dist:0,centroid:r[c],id:a++,size:1,depth:0},i[c]=1;for(let t=0;t<o-1;t++){let t=0;for(c=0;c<o;c++)n[c][l[c]]<n[t][l[t]]&&(t=c);const r=l[t],u=f[t][0],h=f[r][0],g={left:u,right:h,dist:n[t][r],centroid:Lt(u.size,u.centroid,h.size,h.centroid),id:a++,size:u.size+h.size,depth:1+Math.max(u.depth,h.depth)};f[t].splice(0,0,g),i[t]+=i[r];for(let l=0;l<o;l++)switch(e){case"single":n[t][l]>n[r][l]&&(n[l][t]=n[t][l]=n[r][l]);break;case"complete":n[t][l]<n[r][l]&&(n[l][t]=n[t][l]=n[r][l]);break;case"average":n[l][t]=n[t][l]=(i[t]*n[t][l]+i[r]*n[r][l])/(i[t]+i[l])}n[t][t]=1/0;for(let t=0;t<o;t++)n[t][r]=n[r][t]=1/0;for(let e=0;e<o;e++)l[e]==r&&(l[e]=t),n[t][e]<n[t][l[t]]&&(l[t]=e);s=g}return s}return r.linkage=function(t){return arguments.length?(e=t,r):e},r.distance=function(e){return arguments.length?(t=e,r):t},r.distanceMatrix=function(t){return arguments.length?(n=t.map((t=>t.slice(0))),r):n},r}function Lt(t,e,n,r){const o=[],l=t+n,i=e.length;let f=-1;for(;++f<i;)o[f]=(t*e[f]+n*r[f])/l;return o}function Yt(t,e){const n=e.length,o=a(n,n),l=r(e);_t(!t.directed(),"Laplacian only for undirected graphs");for(let r=0;r<n;r++){const n=e[r],i=o[r];let f=0;const s=t.edges(n);for(let e=0;e<s.length;e++){const o=s[e],a=l[t.other(o,n).index];a!=r&&(f+=o.value,i[a]=-o.value)}i[r]=f}return o}function Ct(t){const e=t.length;if(0===e)return NaN;const n=t[0].length,r=t[0].slice(0);let o=0;for(;++o<e;){const e=t[o];for(let t=0;t<n;t++)r[t]+=(e[t]-r[t])/(o+1)}return r}function Ht(){let e=null,n=At.euclidean,r="complete",o={},l={};function i(t){return null===t?[]:t.id in o?o[t.id]:o[t.id]=function(t){if(null===t)return[];if(0===t.depth)return[t.id];return i(t.left).concat(i(t.right))}(t)}function f(t,n,r){const o=`k${t.id}-${n}-${r}`;return o in l?l[o]:l[o]=function(t,n,r){if(0===t.depth)return[0,[t.id]];const o=t.left,l=t.right,s=i(o),a=i(l);let c,u;if(s.includes(n)&&a.includes(r))c=o,u=l;else{if(!a.includes(n)||!s.includes(r))throw{error:`Node is not common ancestor of ${n}, ${r}`};c=l,u=o}const h=i(c.left),g=i(c.right);let d=g.includes(n)?h:g;0===d.length&&(d=[n]);const p=i(u.left),m=i(u.right);let v=m.includes(r)?p:m;0===v.length&&(v=[r]);let M=1/0,b=[];for(let t=0;t<d.length;t++){const o=f(c,n,d[t]);for(let n=0;n<v.length;n++){const l=f(u,v[n],r),i=o[0]+e[d[t]][v[n]]+l[0];i<M&&(M=i,b=o[1].concat(l[1]))}}return[M,b]}(t,n,r)}function s(n){o={},l={};let r=1/0,s=[];const a=i(n.left),c=i(n.right);t.debug&&console.log(wt(n,0));for(let t=0;t<a.length;t++)for(let e=0;e<c.length;e++){const o=f(n,a[t],c[e]);o[0]<r&&(r=o[0],s=o[1])}return e=null,s}function a(t){null===e&&(e=$t().distance(n)(t));return s(Gt().linkage(r).distanceMatrix(e)(t))}return a.order=s,a.reorder=a,a.distance=function(t){return arguments.length?(n=t,e=null,a):n},a.linkage=function(t){return arguments.length?(r=t,a):r},a.distance_matrix=function(t){return arguments.length?(e=t.map((t=>t.slice(0))),a):e},a.distanceMatrix=a.distance_matrix,a}function Jt(t,e){if(0===t.length)return null;return jt(vt(t=function(t){const e=t.length;if(0===e)return null;const n=Ct(t),r=n.length,o=Array(e);for(let l=0;l<e;l++){const e=t[l].slice(0);for(let t=0;t<r;t++)e[t]-=n[t];o[l]=e}return o}(t)),e)}function Kt(n,r){r||(r=e(n.length));const o=dt.pearsonMatrix(n),l=o.map((t=>t.map(Math.abs)));const i=Ht().distanceMatrix(l)(n);return[Tt(r,i),function(e,n){const r=[1];let o=1,l=0;for(let t=1;t<e.length;t++)n[e[t-1]][e[t]]<0&&(o=-o),o<0?(r.push(-1),l++):r.push(1);if(t.debug&&console.log(r),l>e.length/2)for(let t=0;t<e.length;t++)r[t]=-r[t];return r}(i,o),i,o]}t.adjacent_exchange=function(t,e,n){e=e.slice(),n=n.slice();const i=r(e),f=r(n);let s=!0,a=0;for(;s;){s=!1;for(let n=0;n<e.length-1;n++){const r=e[n],o=e[n+1],c=l(t,r,o,f),u=l(t,o,r,f);c>u&&(e[n]=o,e[n+1]=r,i[o]=n,i[r]=n+1,s=!0,a+=c-u)}for(let e=0;e<n.length-1;e++){const r=n[e],l=n[e+1],c=o(t,r,l,i),u=o(t,l,r,i);c>u&&(n[e]=l,n[e+1]=r,f[l]=e,f[r]=e+1,s=!0,a+=c-u)}}return[e,n,a]},t.all_pairs_distance=U,t.all_pairs_distance_bfs=function(t,e){e||(e=[t.nodes_indices()]);const n=e.reduce(H).sort(C),r=Array(n.length);for(let t=0;t<n.length;t++)r[t]=Array(n.length);for(let e=0;e<n.length;e++){const n=rt(t,e);for(let t in n)r[e][t]=n[t],r[t][e]=n[t]}return r},t.all_pairs_distance_floyd_warshall=W,t.array1d=K,t.array_to_dicts=function(t,n=e(t[0].length)){const r=[];for(let e=0;e<t.length;e++){const o=t[e],l={};for(let t=0;t<o.length;t++)l[n[t]]=o[t];r.push(l)}return r},t.assert=_t,t.bandwidth=function(t,n){n||(n=e(t.nodes().length));const o=r(n),l=t.links();let i=0;for(let t=0;t<l.length;t++){const e=l[t],n=Math.abs(o[e.source.index]-o[e.target.index]);i=Math.max(i,n)}return i},t.barycenter=tt,t.barycenter_order=function(t,e,n){let r=[[],[],0];e||(e=t.components());for(let o=0;o<e.length;o++){const l=tt(t,e[o],n);r=[r[0].concat(l[0]),r[1].concat(l[1]),r[2]+l[2]]}return r},t.bfs=nt,t.bfs_distances=rt,t.bfs_order=(t,e)=>{e||(e=t.components());const n=[];for(let r=0;r<e.length;r++){nt(t,e[r][0],((t,e)=>{e>=0&&t!=e&&n.push(t)}))}return n},t.ca=gt,t.ca_decorana=ht,t.ca_order=function(t){const e=gt(t);return{rows:ot(e.rows),cols:ot(e.cols),details:e}},t.check_distance_matrix=function(t,e){const n=t.length;if(e||(e=1e-10),n!=t[0].length)return"Inconsistent dimensions";for(let r=0;r<n-1;r++){const o=t[r];let l=o[r];if(l<0)return`Negative value at diagonal ${r}`;if(l>e)return`Diagonal not zero at ${r}`;for(let i=1;i<n;i++){l=o[i];const n=t[i][r];if(Math.abs(l-n)>e)return`Inconsistency at ${r},${i}`;if(l<0)return`Negative value at ${r},${i}`;if(n<0)return`Negative value at ${i},${r}`}}return!1},t.cmp_number=C,t.cmp_number_asc=Y,t.cmp_number_desc=function(t,e){return e-t},t.complete_graph=Bt,t.condition=function(t){let e,n;const r=[];for(let o=0;0<t.length;o++){const l=t[o].slice();let i;for(l.push(r),i=0;i<r.length;i++){if(null!==l[i]){e=n=l[i];break}}for(;i<r.length;i++){const t=l[i];t<e?e=t:t>n&&(n=t)}const f=n!=e?1/(n-e):0;for(i=1;i<r.length;i++){const t=l[i];null!==t&&t>=t&&(l[i]=l[i]*f-e)}}return r},t.correlation=dt,t.count_crossings=X,t.covariance=pt,t.covariancetranspose=mt,t.cuthill_mckee=Mt,t.cuthill_mckee_order=function(t,e){let n,r=[];e||(e=t.components());for(let o=0;o<e.length;o++)n=e[o],r=r.concat(Mt(t,n));return r},t.dicts_to_array=function(t,e=Object.keys(t[0])){const n=e.length,r=t.length,o=Array(r);for(let l=0;l<r;l++){const r=Array(n);o[l]=r;for(let o=0;o<n;o++)r[o]=t[l][e[o]]}return o},t.displaymat=function(t,e,n){console.log("Matrix:");for(let r=0;r<t.length;r++){const o=e?t[e[r]]:t[r];let l="";for(let t=0;t<o.length;t++){l+=(n?o[n[t]]:o[t])?"*":" "}console.log(l)}},t.dist=$t,t.dist_remove=Nt,t.distance=At,t.distmat2valuemat=Ft,t.distmax=qt,t.distmin=function(t){let e=1/0;const n=t.length;for(let r=0;r<n;r++){const o=t[r];for(let t=r+1;t<n;t++)o[t]<e&&(e=o[t])}return e},t.dot=B,t.edgesum=function(t,n){n||(n=e(t.nodes().length));const o=r(n),l=t.links();let i=0;for(let t=0;t<l.length;t++){const e=l[t];i+=Math.abs(o[e.source.index]-o[e.target.index])}return i},t.fiedler_vector=Dt,t.fix_distance_matrix=function(t,e){const n=t.length;if(e||(e=1e-10),n!=t[0].length)throw`Inconsistent dimensions ${n} != ${t[0].length}`;for(let r=0;r<n-1;r++){const o=t[r];let l=o[r];if(l<0){if(-l>e)throw`Negative value at diagonal${r}`;l=o[r]=0}else if(l>e)throw`Diagonal not zero at ${r}`;for(let i=1;i<n;i++){l=o[i];let n=t[i][r];if(Math.abs(l-n)>e)throw`Inconsistency at ${r},${i}`;l<0&&(l=0),n<0&&(n=0),l!=n&&(l+=n,l/=2),o[i]=l,t[i][r]=l}}return t},t.flatten=H,t.floyd_warshall_path=function(t,e,n){if(void 0===t[e][n])return[];const r=[e];for(;e!=n;)e=t[e][n],r.push(e);return r},t.floyd_warshall_with_path=function(t,e){e||(e=t.components()[0]);const n=J(e.length,e.length),o=Array(e.length),l=t.directed(),i=r(e);for(let t=0;t<e.length;t++)n[t][t]=0,o[t]=Array(e.length);const f=e=>{if(e.source==e.target)return;const r=i[e.source.index],f=i[e.target.index];n[r][f]=t.distance(e),o[r][f]=f,l||(n[f][r]=t.distance(e),o[f][r]=r)};for(let n=0;n<e.length;n++)t.edges(e[n]).forEach(f);for(let t=0;t<e.length;t++)for(let r=0;r<e.length;r++)for(let i=0;i<e.length;i++)n[r][i]>n[r][t]+n[t][i]&&(n[r][i]=n[r][t]+n[t][i],o[r][i]=o[r][t],l||(n[i][r]=n[r][i],o[i][r]=o[t][i]));return[n,o]},t.graph=Pt,t.graph2mat=function(t,e){const n=t.nodes(),r=t.links(),o=n.length;let l;if(e||(e=t.directed()),e){let e=o,n=o;for(let n=o-1;n>=0&&0===t.inEdges(n).length;n--)e--;for(let e=o-1;e>=0&&0===t.outEdges(e).length;e--)n--;l=a(e,n);for(let t=0;t<r.length;t++){const e=r[t];l[e.source.index][e.target.index]=e.value?e.value:1}}else{l=a(o,o);for(let t=0;t<r.length;t++){const e=r[t];l[e.source.index][e.target.index]=e.value?e.value:1,l[e.target.index][e.source.index]=e.value?e.value:1}}return l},t.graph2valuemats=function(t,e){return e||(e=t.components()),U(t,e).map(Ft)},t.graph_connect=function(t,e){const n=t.links();e||(e=t.components());for(let t=0;t<e.length-1;t++)for(let r=t+1;r<e.length;r++)n.push({source:e[t][0],target:e[r][0]});return t.links(n),t.init()},t.graph_empty=St,t.graph_empty_nodes=Rt,t.graph_random=Vt,t.graph_random_erdos_renyi=Qt,t.hcluster=Gt,t.infinities=J,t.intersect_sorted_ints=function(t,e){let n=0,r=0;const o=[];for(;n<t.length&&r<e.length;)t[n]<e[r]?n++:(t[n]>e[r]||(o.push(n),n++),r++);return o},t.inverse_permutation=r,t.laplacian=Yt,t.length=Q,t.mat2graph=function(t,e){const n=t.length,r=[],o=[];let l=Number.NEGATIVE_INFINITY;for(let t=0;t<n;t++)r.push({id:t});for(let i=0;i<n;i++){const n=t[i];for(let t=e?0:i;t<n.length;t++)t==r.length&&r.push({id:t}),0!==n[t]&&(n[t]>l&&(l=n[t]),o.push({source:i,target:t,value:n[t]}))}return Pt(r,o,e).linkDistance((t=>1+l-t.value)).init()},t.mean=L,t.meancolumns=Ct,t.meantranspose=function(t,e){const n=t.length;if(0===n)return NaN;let r=0,o=-1;for(;++o<n;)r+=(t[o][e]-r)/(o+1);return r},t.normalize=V,t.optimal_leaf_order=Ht,t.order=function(){let t,r=At.euclidean,o=Ht,l="complete",i=null,f=[],s=0,a=0,c=1/0;function u(u){t=u,c=Math.min(c,u.length);let g=a>0?a-1:0,d=c<t.length?c+1:c;for(let t=f.length-1;t>0;t-=2){let e=f[t-1],n=f[t];n>=d?d>c?(d=Math.min(d,e+1),f.splice(t-1,2)):n=d:e<=g?g<a?(g=Math.max(g,n-1),f.splice(t-1,2)):e=g:n-e<3&&f.splice(t-1,2)}try{return function(r,o){const l=t;if(t=t.slice(r,o),0===a&&c==t.length)return h();s&&console.log(`i0=${r} j0=${o}`);null!==i?(o!==t.length&&Nt(i,o,t.length),r>0&&Nt(i,0,r)):v();let u=qt(i);if(r<a){const t=i[0];for(let e=t.length;e-- >1;)t[e]+=u;for(let t=i.length;t-- >1;)i[t][0]+=u;if(u+=u,0!==r)for(let t=0;t<f.length;t++)f[t]-=r}if(o>c){const t=i.length-1,e=i[t];for(let n=t;n-- >0;)e[n]+=u,i[n][t]+=u}let g=h();r<a?(0!==g[0]&&g.reverse(),o>c?_t(0===g[0]&&g[g.length-1]==g.length-1,"Invalid constrained permutation endpoints"):_t(0===g[0],"Invalid constrained permutation start")):o>c&&(g[g.length-1]!==g.length-1&&(g=g.reverse()),_t(g[g.length-1]==g.length-1,"Invalid constrained permutation end"));0!==r&&(g=n(r).concat(g.map((t=>t+r))));l.length>o&&(g=g.concat(e(o,l.length)));return g}(g,d)}finally{r=At.euclidean,o=Ht,l="complete",i=null,t=null,f=[],a=0,c=1/0}}function h(){let n,r,o,l,a,c;if(0===f.length)return g();for(v(),r=f.length-1;r>0;r-=2)l=f[r-1],a=f[r],i=Nt(i,l+1,a-1),t.splice(l+1,a-l-2),s&&console.log(`Except[${l}, ${a}]`),0!==i[l][l+1]&&(i[l][l+1]=i[l+1][l]=-1);for(n=g(),r=0;r<f.length;r+=2){for(l=f[r],a=f[r+1],o=0;o<n.length;o++)n[o]>l?n[o]+=a-l-2:n[o]==l&&(c=o);if(c>0&&n[c-1]==a-1)Array.prototype.splice.apply(n,[c,0].concat(e(a-2,l,-1)));else{if(n[c+1]!=a-1)throw"Range not respected";Array.prototype.splice.apply(n,[c+1,0].concat(e(l+1,a-1)))}}return n}function g(){let e,n,r,f,a,c,u,h,g=!1;const p=[],M={};for(v(),a=0;a<i.length-1;a++){for(n=i[a],r=[],f=n.indexOf(-1),-1!==f&&(M[a]=[a,f],g=!0),c=n.length;--c>a;)0===n[c]?(f=i[c].indexOf(-1),-1!==f&&(M[a]=[c,f],i[f][a]=n[f]=-1,g=!0),r.unshift(c),i=Nt(i,c),t.splice(c,1)):n[c]<0&&(g=!0);0!==r.length&&(r.unshift(a),p.push(r))}if(g)for(a=0;a<i.length-1;a++)for(n=i[a],c=a+1;c<n.length-1;c++)-1==i[c][c+1]&&(i[c+1][c]=i[c][c+1]=0);for(e=function(){s>1&&yt(i);s>2&&yt(t);const e=o().linkage(l).distanceMatrix(i)(t);s&&console.log(`Permutation: ${e}`);return e}(),a=p.length;a-- >0;)for(r=p[a],c=e.indexOf(r[0]),u=M[r[0]],u&&u[0]==r[0]&&(c=d(e,c,u[0],u[1],0),u=void 0),h=1;h<r.length;h++)e=m(e,c,r[h]),u&&u[0]==r[h]&&(c=d(e,c,u[0],u[1],h),u=void 0);return e}function d(t,e,n,r,o){if(e>0&&t[e-1]==r)return p(t,e,t.indexOf(n)),e+1;if(t[e+o+1]==r)return p(t,e+o,t.indexOf(n)),e;throw"Index not found"}function p(t,e,n){if(e==n)return;const r=t[e];t[e]=t[n],t[n]=r}function m(t,e,n){return(t=t.map((t=>t<n?t:t+1))).splice(e,0,n),t}function v(){return null===i&&(i=$t().distance(r)(t)),i}return u.debug=function(t){return 0!=arguments.length&&(s=t),s},u.distance=function(t){return arguments.length?(r=t,u):r},u.linkage=function(t){return arguments.length?(l=t,u):l},u.limits=function(t,e){return arguments.length?(a=t,c=e,u):[a,c]},u.except=function(t){let e;if(!arguments.length)return f.slice(0);for(e=1;e<t.length;e++)if(t[e-1]>=t[e])throw"Invalid list, indices not sorted";return f=t.slice(0),u},u.orderrowsexcept=function(t,n,l){const i=$t().distance(r)(t);let f,s,a,c=!1,u=-1;i[n][n+1]=0,i[n+1][n]=0;const h=o().distanceMatrix(i)(t);for(u=h.indexOf(n),f=0;f<h.length;f++)s=h[f],s>n&&(h[f]+=l-n-2);return 0!==u&&h[u-1]===l-1&&(c=!0),c&&(h.reverse(),u=h.length-u-1),a=[u+1,0].concat(e(n+1,l-1)),Array.prototype.splice.apply(h,a),h},u},t.parcoords=function(t){t.detectDimensions().autoscale();const e=t.data(),n=t.types(),r=t.hideAxis(),o=t.yscale,l=[],i=[];let f=t.dimensions();for(let t=0;t<f.length;t++){const s=f[t];if(r.includes(s))f.splice(t,1),l.push(s),t--;else if("number"==n[s]||"date"==n[s]){const t=[],n=o[s];for(let r=0;r<e.length;r++)t.push(n(e[r][s]));i.push(t)}else f.splice(t,1),l.push(s),t--}const[s,a]=Kt(i,f);f=s.concat(l.reverse()),t.dimensions(f),t.hideAxis(r);for(let e=0;e<a.length;e++)a[e]<0&&t.flip(f[e])},t.parcoords_es=function(t){const e=t.dimensions(),n=t.data(),r=[],o=[],l=[];for(const t in e){const i=e[t];if("number"==i.type||"date"==i.type){const e=[],r=i.yscale;for(let o=0;o<n.length;o++)e.push(r(n[o][t]));l.push(e),o.push(t)}else r.push(t)}const[i,f]=Kt(l,o),s=i.concat(r.reverse());t.xscale.domain(s),t.sortDimensions();for(let e=0;e<f.length;e++)f[e]<0&&t.flip(s[e])},t.pca1d=Jt,t.pca_order=function(t,e){return ot(Jt(t,e))},t.pcp=Kt,t.permutation=n,t.permute=Tt,t.permute_inplace=function(t,e){for(let n=0;n<t.length;n++){let r=e[n];if(r<0){e[n]=-1-r;continue}let o=n;for(;r!=n;){let n=t[r];t[r]=t[o],t[o]=n,o=r,n=e[r],e[r]=-1-n,r=n}}return t},t.permutetranspose=function(t,e){let n=t.length;for(;n-- >0;)t[n]=Tt(t[n],e);return t},t.poweriteration=jt,t.poweriteration_n=Ot,t.printhcluster=wt,t.printmat=yt,t.printvec=xt,t.randomPermutation=function(t){return zt(n(t))},t.randomPermute=zt,t.random_array=Et,t.random_matrix=function(t,e,n,r){n||(n=e),e!=n?r=!1:r||(r=!0);const o=a(e,n);if(r)for(let n=0;n<e;n++){let r=0;for(let e=0;e<n+1;e++)Math.random()<t&&(o[n][e]=o[e][n]=1,r++);if(0===r){const t=Math.floor(Math.random()*e/2);o[n][t]=o[t][n]=1}}else for(let r=0;r<e;r++){let e=0;for(let l=0;l<n;l++)Math.random()<t&&(o[r][l]=1,e++);0===e&&(o[r][Math.floor(Math.random()*n)]=1)}return o},t.range=e,t.reverse_cuthill_mckee=bt,t.reverse_cuthill_mckee_order=function(t,e){let n,r=[];e||(e=t.components());for(let o=0;o<e.length;o++)n=e[o],r=r.concat(bt(t,n));return r},t.set_debug=function(e=!0){t.debug=e},t.sort_order=ot,t.sort_order_ascending=lt,t.sort_order_descending=function(t){return n(0,t.length).sort(((e,n)=>t[n]-t[e]))},t.spectral_order=function(t,e){let n=[];e||(e=t.components());for(let r=0;r<e.length;r++){const o=e[r],l=ot(Dt(Yt(t,o)));n=n.concat(Tt(o,l))}return n},t.stablepermute=function(t,e){const n=Tt(t,e);return n[0]>n[n.length-1]&&n.reverse(),n},t.sum=function(t){let e=t.length,n=0;for(;e-- >0;)isNaN(t[e])||(n+=t[e]);return n},t.transpose=G,t.transposeSlice=function(t,e=0,n=t[0].length){const r=t.length,o=n,l=new Array(n-e);let i=e-1;for(;++i<o;){l[i]=new Array(r);let n=-1;for(;++n<r;)l[i-e][n]=t[n][i]}return l},t.valuemats_reorder=function(t,e,n){let r=t.map(e);return n&&(r=r.map(((t,e)=>Tt(n[e],t)))),r.reduce(H)},t.variancecovariance=vt,t.version="2.0.3",t.zeroes=a,Object.defineProperty(t,"__esModule",{value:!0})}));