numbl 0.4.11 → 0.4.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -24,7 +24,7 @@ ${r}`};function Rl(e,t){return t===0?bs(e):e===0?`${bs(t)}i`:t<0?`${bs(e)} - ${b
24
24
  `)}const Lv=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Jo(e,t){const n=e.fields.get(t);return n===void 0?null:typeof n=="number"?n:typeof n=="boolean"?n?1:0:null}function Dv(e){return e.className==="datetime"?Tv(e):e.className==="duration"?Pv(e):null}function Tv(e){const t=Jo(e,"Year"),n=Jo(e,"Month"),r=Jo(e,"Day"),s=Jo(e,"Hour"),o=Jo(e,"Minute"),i=Jo(e,"Second");if(t===null||n===null||r===null||s===null||o===null||i===null)return null;const a=Math.max(0,Math.min(11,Math.floor(n)-1)),c=Lv[a],l=String(Math.floor(r)).padStart(2,"0"),u=String(Math.floor(t));if(!(s!==0||o!==0||i!==0))return`${l}-${c}-${u}`;const h=String(Math.floor(s)).padStart(2,"0"),m=String(Math.floor(o)).padStart(2,"0"),p=String(Math.floor(i)).padStart(2,"0");return`${l}-${c}-${u} ${h}:${m}:${p}`}function Pv(e){const t=Jo(e,"Seconds");if(t===null)return null;const n=t<0,r=Math.abs(t),s=Math.floor(r/3600),o=Math.floor(r%3600/60),i=r-s*3600-o*60,a=Math.floor(i),c=i===a?String(a).padStart(2,"0"):i.toFixed(6).replace(/0+$/,"").replace(/\.$/,"");return`${n?"-":""}${String(s).padStart(2,"0")}:${String(o).padStart(2,"0")}:${c}`}function Bv(e){if(!e.keyType&&!e.valueType&&e.entries.size===0)return" dictionary with unset key and value types.";const t=e.keyType??"unset",n=e.valueType??"unset",r=e.entries.size;if(r===0)return` dictionary (${t} ⟼ ${n}) with no entries.`;const o=[` dictionary (${t} ⟼ ${n}) with ${r} ${r===1?"entry":"entries"}:
25
25
  `],i=[];let a=0;for(const{key:c,value:l}of e.entries.values()){const u=qv(c),f=xs(l);i.push({keyStr:u,valStr:f}),a=Math.max(a,u.length)}for(const{keyStr:c,valStr:l}of i)o.push(` ${c.padEnd(a)} ⟼ ${l}`);return o.join(`
26
26
  `)}function qv(e){return ve(e)?`"${e}"`:be(e)?`'${e.value}'`:xs(e)}function v(e){return typeof e=="number"?new Float64Array(e):new Float64Array(e)}function Hr(e){return e()}const x={num(e){return e},tensor(e,t,n){const r=e instanceof Float64Array?e:v(e),s=n?n instanceof Float64Array?n:v(n):void 0,o=[...t];for(;o.length>2&&o[o.length-1]===1;)o.pop();return new On(r,o,s)},tensorRaw(e,t){return new On(e,t)},scalar(e){return e},row(e,t){const n=t?v(t):void 0;return new On(v(e),[1,e.length],n)},col(e,t){const n=t?v(t):void 0;return new On(v(e),[e.length,1],n)},matrix(e,t,n,r){const s=n instanceof Float64Array?n:v(n),o=r?r instanceof Float64Array?r:v(r):void 0;return new On(s,[e,t],o)},string(e){return e},stringArray(e,t){return new c1(e,t)},char(e){return new ys(e)},logical(e){return e},cell(e,t){return new l1(e,[...t])},struct(e){const t=e instanceof Map?e:new Map(Object.entries(e));return new u1(t)},func(e,t,n=[]){return new f1(e,t,n)},classInstance(e,t,n=!1,r){const s=new Map;for(const o of t)s.set(o,r?.get(o)??x.tensor(v(0),[0,0]));return new Us(e,s,n)},classInstanceArray(e,t,n){return new Fl(e,t,n)},complex(e,t){return new Pm(e,t)},dummyHandle(){return new bv},graphicsHandle(e,t){return new kv(e,t)},structArray(e,t){return new m1(e,t)},sparseMatrix(e,t,n,r,s,o){return new vv(e,t,n,r,s,o)},dictionary(e,t,n){return new Mv(e,t,n)}},Ws=e=>{if(O(e))return{kind:"Number"};if(Ce(e))return{kind:"Boolean"};if(ve(e))return{kind:"String"};switch(e.kind){case"complex_number":return{kind:"ComplexNumber"};case"char":return{kind:"Char"};case"tensor":return{kind:"Tensor",isComplex:e.imag!==void 0,isLogical:e._isLogical||void 0};case"cell":return{kind:"Cell",elementType:e.data.length>0?Ws(e.data[0]):{kind:"Unknown"},length:"unknown"};case"struct":{const t={};for(const[n,r]of e.fields)t[n]=Ws(r);return{kind:"Struct",knownFields:t}}case"function":return{kind:"Function",params:[],returns:{kind:"Unknown"}};case"class_instance":return{kind:"ClassInstance",className:e.className};case"class_instance_array":return{kind:"ClassInstance",className:e.className};case"dummy_handle":return{kind:"DummyHandle"};case"graphics_handle":return{kind:"DummyHandle"};case"struct_array":return{kind:"Unknown"};case"sparse_matrix":return{kind:"SparseMatrix",isComplex:e.pi!==void 0};case"dictionary":return{kind:"Dictionary"};default:return{kind:"Unknown"}}};let Vv=null;function zv(){return Vv}function an(e,t){throw new Error(`** On entry to '${e}' parameter number ${t} had an illegal value`)}const Ee=0,mt=1,rc=2,He=0,ot=1,Fn=0,jn=1,$t=0,nt=1,Wi=0,er=1,w1=2,ks=3,Uv=4,Wv=5,Xv=6,Hv=7,Yv=8,Bm=9,Xs=0,Mo=0,Ko=1,qn=0,Vn=1;function bt(e,t,n,r,s,o,i,a,c,l,u,f,h,m,p,d){const g=e===Ee,w=t===Ee,_=g?n:s,y=w?s:r;let b=0;if(!g&&e!==rc&&e!==mt?b=1:!w&&t!==rc&&t!==mt?b=2:n<0?b=3:r<0?b=4:s<0?b=5:c<Math.max(1,_)?b=8:f<Math.max(1,y)?b=10:d<Math.max(1,n)&&(b=13),b!==0){an("DGEMM ",b);return}if(!(n===0||r===0||(o===0||s===0)&&h===1)){if(o===0){if(h===0)for(let k=1;k<=r;k++)for(let M=1;M<=n;M++)m[p+(M-1)+(k-1)*d]=0;else for(let k=1;k<=r;k++)for(let M=1;M<=n;M++)m[p+(M-1)+(k-1)*d]=h*m[p+(M-1)+(k-1)*d];return}if(w)if(g)for(let k=1;k<=r;k++){if(h===0)for(let M=1;M<=n;M++)m[p+(M-1)+(k-1)*d]=0;else if(h!==1)for(let M=1;M<=n;M++)m[p+(M-1)+(k-1)*d]=h*m[p+(M-1)+(k-1)*d];for(let M=1;M<=s;M++){const $=o*l[u+(M-1)+(k-1)*f];for(let S=1;S<=n;S++)m[p+(S-1)+(k-1)*d]+=$*i[a+(S-1)+(M-1)*c]}}else for(let k=1;k<=r;k++)for(let M=1;M<=n;M++){let $=0;for(let S=1;S<=s;S++)$+=i[a+(S-1)+(M-1)*c]*l[u+(S-1)+(k-1)*f];h===0?m[p+(M-1)+(k-1)*d]=o*$:m[p+(M-1)+(k-1)*d]=o*$+h*m[p+(M-1)+(k-1)*d]}else if(g)for(let k=1;k<=r;k++){if(h===0)for(let M=1;M<=n;M++)m[p+(M-1)+(k-1)*d]=0;else if(h!==1)for(let M=1;M<=n;M++)m[p+(M-1)+(k-1)*d]=h*m[p+(M-1)+(k-1)*d];for(let M=1;M<=s;M++){const $=o*l[u+(k-1)+(M-1)*f];for(let S=1;S<=n;S++)m[p+(S-1)+(k-1)*d]+=$*i[a+(S-1)+(M-1)*c]}}else for(let k=1;k<=r;k++)for(let M=1;M<=n;M++){let $=0;for(let S=1;S<=s;S++)$+=i[a+(S-1)+(M-1)*c]*l[u+(k-1)+(S-1)*f];h===0?m[p+(M-1)+(k-1)*d]=o*$:m[p+(M-1)+(k-1)*d]=o*$+h*m[p+(M-1)+(k-1)*d]}}}function Ll(e,t,n,r,s,o,i,a,c,l,u,f,h){const m=e===$t,p=m?s:o,d=r===Fn,g=t===He;let w=0;if(e!==$t&&e!==nt?w=1:t!==He&&t!==ot?w=2:r!==jn&&r!==Fn?w=4:s<0?w=5:o<0?w=6:l<Math.max(1,p)?w=9:h<Math.max(1,s)&&(w=11),w!==0){an("DTRSM ",w);return}if(!(s===0||o===0)){if(i===0){for(let _=1;_<=o;_++)for(let y=1;y<=s;y++)u[f+(y-1)+(_-1)*h]=0;return}if(m)if(g)for(let _=1;_<=o;_++){if(i!==1)for(let y=1;y<=s;y++)u[f+(y-1)+(_-1)*h]=i*u[f+(y-1)+(_-1)*h];for(let y=s;y>=1;y--)if(u[f+(y-1)+(_-1)*h]!==0){d&&(u[f+(y-1)+(_-1)*h]/=a[c+(y-1)+(y-1)*l]);for(let b=1;b<=y-1;b++)u[f+(b-1)+(_-1)*h]-=u[f+(y-1)+(_-1)*h]*a[c+(b-1)+(y-1)*l]}}else for(let _=1;_<=o;_++){if(i!==1)for(let y=1;y<=s;y++)u[f+(y-1)+(_-1)*h]=i*u[f+(y-1)+(_-1)*h];for(let y=1;y<=s;y++)if(u[f+(y-1)+(_-1)*h]!==0){d&&(u[f+(y-1)+(_-1)*h]/=a[c+(y-1)+(y-1)*l]);for(let b=y+1;b<=s;b++)u[f+(b-1)+(_-1)*h]-=u[f+(y-1)+(_-1)*h]*a[c+(b-1)+(y-1)*l]}}else if(g)for(let _=1;_<=o;_++){if(i!==1)for(let y=1;y<=s;y++)u[f+(y-1)+(_-1)*h]=i*u[f+(y-1)+(_-1)*h];for(let y=1;y<=_-1;y++)if(a[c+(y-1)+(_-1)*l]!==0)for(let b=1;b<=s;b++)u[f+(b-1)+(_-1)*h]-=a[c+(y-1)+(_-1)*l]*u[f+(b-1)+(y-1)*h];if(d){const y=1/a[c+(_-1)+(_-1)*l];for(let b=1;b<=s;b++)u[f+(b-1)+(_-1)*h]=y*u[f+(b-1)+(_-1)*h]}}else for(let _=o;_>=1;_--){if(i!==1)for(let y=1;y<=s;y++)u[f+(y-1)+(_-1)*h]=i*u[f+(y-1)+(_-1)*h];for(let y=_+1;y<=o;y++)if(a[c+(y-1)+(_-1)*l]!==0)for(let b=1;b<=s;b++)u[f+(b-1)+(_-1)*h]-=a[c+(y-1)+(_-1)*l]*u[f+(b-1)+(y-1)*h];if(d){const y=1/a[c+(_-1)+(_-1)*l];for(let b=1;b<=s;b++)u[f+(b-1)+(_-1)*h]=y*u[f+(b-1)+(_-1)*h]}}}}function Dl(e,t,n,r,s,o,i,a,c){let l,u,f,h;l=s,u=s,f=o,h=1;const m=Math.floor(e/32)*32;if(m!==0)for(let p=1;p<=m;p+=32){let d=l;for(let g=u;h>0?g<=f:g>=f;g+=h){const w=i[a+(d-1)];if(w!==g)for(let _=p;_<=p+31;_++){const y=t[n+(g-1)+(_-1)*r];t[n+(g-1)+(_-1)*r]=t[n+(w-1)+(_-1)*r],t[n+(w-1)+(_-1)*r]=y}d+=c}}if(m!==e){const p=m+1;let d=l;for(let g=u;h>0?g<=f:g>=f;g+=h){const w=i[a+(d-1)];if(w!==g)for(let _=p;_<=e;_++){const y=t[n+(g-1)+(_-1)*r];t[n+(g-1)+(_-1)*r]=t[n+(w-1)+(_-1)*r],t[n+(w-1)+(_-1)*r]=y}d+=c}}}function st(e,t,n,r,s){if(!(e<=0||s<=0||t===1))if(s===1){const o=e%5;if(o!==0){for(let a=1;a<=o;a++)n[r+(a-1)]=t*n[r+(a-1)];if(e<5)return}const i=o+1;for(let a=i;a<=e;a+=5)n[r+(a-1)]=t*n[r+(a-1)],n[r+a]=t*n[r+a],n[r+(a+1)]=t*n[r+(a+1)],n[r+(a+2)]=t*n[r+(a+2)],n[r+(a+3)]=t*n[r+(a+3)]}else{const o=e*s;for(let i=1;i<=o;i+=s)n[r+(i-1)]=t*n[r+(i-1)]}}function Hs(e,t,n,r){if(e<1||r<=0)return 0;if(e===1)return 1;let s=1;if(r===1){let o=Math.abs(t[n]);for(let i=2;i<=e;i++)Math.abs(t[n+(i-1)])>o&&(s=i,o=Math.abs(t[n+(i-1)]))}else{let o=0,i=Math.abs(t[n]);o+=r;for(let a=2;a<=e;a++)Math.abs(t[n+o])>i&&(s=a,i=Math.abs(t[n+o])),o+=r}return s}const qm=22250738585072014e-324;function Bt(e){const t=Number.EPSILON*.5;if(e===Wi)return t;if(e===er){const n=1/Number.MAX_VALUE;return n>=qm?n*(1+t):qm}else{if(e===w1)return 2;if(e===ks)return t*2;if(e===Uv)return 53;if(e===Wv)return 1;if(e===Xv)return-1021;if(e===Hv)return qm;if(e===Yv)return 1024;if(e===Bm)return Number.MAX_VALUE}return 0}function Tl(e,t,n,r,s,o,i){let a=0;if(e<0?a=-1:t<0?a=-2:s<Math.max(1,e)&&(a=-4),a!==0)return an("DGETRF2",-a),a;if(e===0||t===0)return 0;if(e===1)o[i]=1,n[r]===0&&(a=1);else if(t===1){const c=Bt(er),l=Hs(e,n,r,1);if(o[i]=l,n[r+(l-1)]!==0){if(l!==1){const u=n[r];n[r]=n[r+(l-1)],n[r+(l-1)]=u}if(Math.abs(n[r])>=c)st(e-1,1/n[r],n,r+1,1);else for(let u=1;u<=e-1;u++)n[r+u]=n[r+u]/n[r]}else a=1}else{const c=Math.floor(Math.min(e,t)/2),l=t-c;let u=Tl(e,c,n,r,s,o,i);a===0&&u>0&&(a=u),Dl(l,n,r+c*s,s,1,c,o,i,1),Ll($t,ot,Ee,jn,c,l,1,n,r,s,n,r+c*s,s),bt(Ee,Ee,e-c,l,c,-1,n,r+c,s,n,r+c*s,s,1,n,r+c+c*s,s),u=Tl(e-c,l,n,r+c+c*s,s,o,i+c),a===0&&u>0&&(a=u+c);for(let f=c+1;f<=Math.min(e,t);f++)o[i+(f-1)]+=c;Dl(c,n,r,s,c+1,Math.min(e,t),o,i,1)}return a}function It(e,t,n,r,s,o,i){if(e===1)switch(t.toUpperCase().trim()){case"DGETRF":return 64;case"DGETRI":return 64;case"DTRTRI":return 64;case"DGEHRD":return 64;case"DORGHR":return 64;case"DGEBRD":return 64;case"DGESVD":return 64;case"DORGLQ":return 64;case"DORMLQ":return 64;case"DORGBR":return 64;case"DORMBR":return 64;case"DGELQF":return 64;default:return 1}return e===12?75:e===13?13:e===14||e===15?14:e===16?0:e===6?Math.max(Math.floor(5/3*Math.min(r,s)),1):1}function $o(e,t,n,r,s){let a=0;if(e<0?a=-1:t<0?a=-2:r<Math.max(1,e)&&(a=-4),a!==0)return an("DGETRF",-a),a;if(e===0||t===0)return 0;const c=It(1,"DGETRF"," ",e,t);if(c<=1||c>=Math.min(e,t))return Tl(e,t,n,0,r,s,0);const l=Math.min(e,t);for(let u=1;u<=l;u+=c){const f=Math.min(l-u+1,c),h=Tl(e-u+1,f,n,0+(u-1)+(u-1)*r,r,s,0+(u-1));a===0&&h>0&&(a=h+u-1);for(let m=u;m<=Math.min(e,u+f-1);m++)s[0+(m-1)]=u-1+s[0+(m-1)];Dl(u-1,n,0,r,u,u+f-1,s,0,1),u+f<=t&&(Dl(t-u-f+1,n,0+(u+f-1)*r,r,u,u+f-1,s,0,1),Ll($t,ot,Ee,jn,f,t-u-f+1,1,n,0+(u-1)+(u-1)*r,r,n,0+(u-1)+(u+f-1)*r,r),u+f<=e&&bt(Ee,Ee,e-u-f+1,t-u-f+1,f,-1,n,0+(u+f-1)+(u-1)*r,r,n,0+(u-1)+(u+f-1)*r,r,1,n,0+(u+f-1)+(u+f-1)*r,r))}return a}function Vm(e,t,n,r,s,o,i,a){const c=v(a||r);(s<=0||s>r)&&(s=r);let l=zm(n,e(c),r);t&&(l=t(l));let u=Xi(l,r),f;t?f=Xi(t(v(n)),r):f=Xi(n,r),f===0&&(f=1);const h=[u];if(u/f<=o)return{x:c,flag:0,relres:u/f,iter:[0,0],resvec:v(h)};let m=1,p=0,d=0;for(let w=1;w<=i;w++){p=w;const _=v(r*(s+1));for(let E=0;E<r;E++)_[E]=l[E]/u;const y=v((s+1)*s),b=v(s),k=v(s),M=v(s+1);M[0]=u;let $=!1;for(let E=0;E<s;E++){d=E+1;let D=e(_.subarray(E*r,(E+1)*r));t&&(D=t(D));const F=s+1;for(let L=0;L<=E;L++){const B=L*r;let A=0;for(let G=0;G<r;G++)A+=D[G]*_[B+G];y[L+E*F]=A;for(let G=0;G<r;G++)D[G]-=A*_[B+G]}const R=Xi(D,r);if(y[E+1+E*F]=R,R>1e-300){const L=(E+1)*r;for(let B=0;B<r;B++)_[L+B]=D[B]/R}for(let L=0;L<E;L++){const B=y[L+E*F],A=y[L+1+E*F];y[L+E*F]=b[L]*B+k[L]*A,y[L+1+E*F]=-k[L]*B+b[L]*A}const[q,J]=Jv(y[E+E*F],y[E+1+E*F]);b[E]=q,k[E]=J,y[E+E*F]=q*y[E+E*F]+J*y[E+1+E*F],y[E+1+E*F]=0;const X=M[E];M[E]=q*X,M[E+1]=-J*X;const z=Math.abs(M[E+1]);if(h.push(z),z/f<=o){const L=_1(y,M,E+1,F);for(let B=0;B<r;B++)for(let A=0;A<=E;A++)c[B]+=_[B+A*r]*L[A];m=0,$=!0;break}}if($)break;const S=_1(y,M,s,s+1);for(let E=0;E<r;E++)for(let D=0;D<s;D++)c[E]+=_[E+D*r]*S[D];if(l=zm(n,e(c),r),t&&(l=t(l)),u=Xi(l,r),u/f<=o){m=0,d=0;break}}let g;if(m===0){let w=zm(n,e(c),r);t&&(w=t(w)),g=Xi(w,r)/f}else g=u/f;return{x:c,flag:m,relres:g,iter:[p,d],resvec:v(h)}}function Xi(e,t){let n=0;for(let r=0;r<t;r++)n+=e[r]*e[r];return Math.sqrt(n)}function zm(e,t,n){const r=v(n);for(let s=0;s<n;s++)r[s]=e[s]-t[s];return r}function Jv(e,t){if(t===0)return[1,0];if(Math.abs(t)>Math.abs(e)){const s=e/t,o=1/Math.sqrt(1+s*s);return[o*s,o]}const n=t/e,r=1/Math.sqrt(1+n*n);return[r,r*n]}function _1(e,t,n,r){const s=v(n);for(let o=0;o<n;o++)s[o]=t[o];for(let o=n-1;o>=0;o--){for(let i=o+1;i<n;i++)s[o]-=e[o+i*r]*s[i];s[o]/=e[o+o*r]}return s}function Um(e,t,n,r,s,o,i,a){const c=v(a?a.re:r),l=v(a?a.im:r);(s<=0||s>r)&&(s=r);const u=e({re:c,im:l});let f=v(r),h=v(r);for(let b=0;b<r;b++)f[b]=n.re[b]-u.re[b],h[b]=n.im[b]-u.im[b];if(t){const b=t({re:f,im:h});f=v(b.re),h=v(b.im)}let m=Hi(f,h,r),p;if(t){const b=t({re:v(n.re),im:v(n.im)});p=Hi(b.re,b.im,r)}else p=Hi(n.re,n.im,r);p===0&&(p=1);const d=[m];if(m/p<=o)return{x:{re:c,im:l},flag:0,relres:m/p,iter:[0,0],resvec:v(d)};let g=1,w=0,_=0;for(let b=1;b<=i;b++){w=b;const k=v(r*(s+1)),M=v(r*(s+1));for(let A=0;A<r;A++)k[A]=f[A]/m,M[A]=h[A]/m;const $=s+1,S=v($*s),E=v($*s),D=v(s),F=v(s),R=v(s),q=v(s+1),J=v(s+1);q[0]=m;let X=!1;for(let A=0;A<s;A++){_=A+1;const G=A*r;let ie,ge;const ne=e({re:k.subarray(G,G+r),im:M.subarray(G,G+r)});if(ie=ne.re,ge=ne.im,t){const he=t({re:ie,im:ge});ie=he.re,ge=he.im}ie.length!==r&&(ie=v(ie)),ge.length!==r&&(ge=v(ge));for(let he=0;he<=A;he++){const te=he*r;let oe=0,Re=0;for(let _e=0;_e<r;_e++)oe+=k[te+_e]*ie[_e]+M[te+_e]*ge[_e],Re+=k[te+_e]*ge[_e]-M[te+_e]*ie[_e];S[he+A*$]=oe,E[he+A*$]=Re;for(let _e=0;_e<r;_e++)ie[_e]-=oe*k[te+_e]-Re*M[te+_e],ge[_e]-=oe*M[te+_e]+Re*k[te+_e]}const re=Hi(ie,ge,r);if(S[A+1+A*$]=re,re>1e-300){const he=(A+1)*r;for(let te=0;te<r;te++)k[he+te]=ie[te]/re,M[he+te]=ge[te]/re}for(let he=0;he<A;he++){const te=D[he],oe=F[he],Re=R[he],_e=S[he+A*$],Se=E[he+A*$],Ie=S[he+1+A*$],Xe=E[he+1+A*$];S[he+A*$]=te*_e+(oe*Ie-Re*Xe),E[he+A*$]=te*Se+(oe*Xe+Re*Ie),S[he+1+A*$]=-(oe*_e+Re*Se)+te*Ie,E[he+1+A*$]=-(-Re*_e+oe*Se)+te*Xe}const le=S[A+A*$],K=E[A+A*$],P=S[A+1+A*$],ce=E[A+1+A*$],{c:me,sRe:fe,sIm:Z,rRe:V,rIm:we}=Kv(le,K,P,ce);D[A]=me,F[A]=fe,R[A]=Z,S[A+A*$]=V,E[A+A*$]=we,S[A+1+A*$]=0,E[A+1+A*$]=0;const se=q[A],Te=J[A],ke=q[A+1],xe=J[A+1];q[A]=me*se+(fe*ke-Z*xe),J[A]=me*Te+(fe*xe+Z*ke),q[A+1]=-(fe*se+Z*Te)+me*ke,J[A+1]=-(-Z*se+fe*Te)+me*xe;const Ue=Math.sqrt(q[A+1]*q[A+1]+J[A+1]*J[A+1]);if(d.push(Ue),Ue/p<=o){const{yRe:he,yIm:te}=y1(S,E,q,J,A+1,$);for(let oe=0;oe<r;oe++)for(let Re=0;Re<=A;Re++)c[oe]+=k[oe+Re*r]*he[Re]-M[oe+Re*r]*te[Re],l[oe]+=k[oe+Re*r]*te[Re]+M[oe+Re*r]*he[Re];g=0,X=!0;break}}if(X)break;const{yRe:z,yIm:L}=y1(S,E,q,J,s,$);for(let A=0;A<r;A++)for(let G=0;G<s;G++)c[A]+=k[A+G*r]*z[G]-M[A+G*r]*L[G],l[A]+=k[A+G*r]*L[G]+M[A+G*r]*z[G];const B=e({re:c,im:l});f=v(r),h=v(r);for(let A=0;A<r;A++)f[A]=n.re[A]-B.re[A],h[A]=n.im[A]-B.im[A];if(t){const A=t({re:f,im:h});f=v(A.re),h=v(A.im)}if(m=Hi(f,h,r),m/p<=o){g=0,_=0;break}}let y;if(g===0){const b=e({re:c,im:l});let k=v(r),M=v(r);for(let $=0;$<r;$++)k[$]=n.re[$]-b.re[$],M[$]=n.im[$]-b.im[$];if(t){const $=t({re:k,im:M});k=v($.re),M=v($.im)}y=Hi(k,M,r)/p}else y=m/p;return{x:{re:c,im:l},flag:g,relres:y,iter:[w,_],resvec:v(d)}}function Hi(e,t,n){let r=0;for(let s=0;s<n;s++)r+=e[s]*e[s]+t[s]*t[s];return Math.sqrt(r)}function Kv(e,t,n,r){const s=Math.sqrt(n*n+r*r);if(s===0)return{c:1,sRe:0,sIm:0,rRe:e,rIm:t};const o=Math.sqrt(e*e+t*t);if(o===0)return{c:0,sRe:n/s,sIm:-r/s,rRe:s,rIm:0};const i=Math.sqrt(o*o+s*s),a=o/i,c=e/o,l=t/o,u=(c*n+l*r)/i,f=(l*n-c*r)/i;return{c:a,sRe:u,sIm:f,rRe:c*i,rIm:l*i}}function y1(e,t,n,r,s,o){const i=v(s),a=v(s);for(let c=0;c<s;c++)i[c]=n[c],a[c]=r[c];for(let c=s-1;c>=0;c--){for(let p=c+1;p<s;p++){const d=e[c+p*o],g=t[c+p*o];i[c]-=d*i[p]-g*a[p],a[c]-=d*a[p]+g*i[p]}const l=e[c+c*o],u=t[c+c*o],f=l*l+u*u,h=i[c],m=a[c];i[c]=(h*l+m*u)/f,a[c]=(m*l-h*u)/f}return{yRe:i,yIm:a}}function Wm(e,t,n,r,s,o){for(let i=0;i<e;i++){const a=r[i]-1;if(a!==i){let c=s[i];s[i]=s[a],s[a]=c,c=o[i],o[i]=o[a],o[a]=c}}for(let i=1;i<e;i++)for(let a=0;a<i;a++){const c=t[i+a*e],l=n[i+a*e];s[i]-=c*s[a]-l*o[a],o[i]-=c*o[a]+l*s[a]}for(let i=e-1;i>=0;i--){for(let h=i+1;h<e;h++){const m=t[i+h*e],p=n[i+h*e];s[i]-=m*s[h]-p*o[h],o[i]-=m*o[h]+p*s[h]}const a=t[i+i*e],c=n[i+i*e],l=a*a+c*c,u=s[i],f=o[i];s[i]=(u*a+f*c)/l,o[i]=(f*a-u*c)/l}}function sc(e,t,n,r){for(let s=0;s<e;s++){const o=n[s]-1;if(o!==s){const i=r[s];r[s]=r[o],r[o]=i}}for(let s=1;s<e;s++)for(let o=0;o<s;o++)r[s]-=t[s+o*e]*r[o];for(let s=e-1;s>=0;s--){for(let o=s+1;o<e;o++)r[s]-=t[s+o*e]*r[o];r[s]/=t[s+s*e]}}function ht(e,t,n,r,s,o,i,a,c,l,u,f,h,m){const p=e===Ee;let d=0;if(!p&&e!==mt&&e!==rc?d=1:t<0?d=2:n<0?d=3:i<Math.max(1,t)?d=6:l===0?d=8:m===0&&(d=11),d!==0){an("DGEMV ",d);return}if(t===0||n===0||r===0&&u===1)return;const g=p?n:t,w=p?t:n,_=l>0?0:(g-1)*-l,y=m>0?0:(w-1)*-m;if(u!==1)if(u===0)if(m===1)f.fill(0,h,h+w);else{let b=y;for(let k=0;k<w;k++)f[h+b]=0,b+=m}else if(m===1){const b=h+w;for(let k=h;k<b;k++)f[k]*=u}else{let b=y;for(let k=0;k<w;k++)f[h+b]*=u,b+=m}if(r!==0)if(p)if(l===1&&m===1)for(let b=0;b<n;b++){const k=r*a[c+b],M=o+b*i;for(let $=0;$<t;$++)f[h+$]+=k*s[M+$]}else if(m===1){let b=_;for(let k=0;k<n;k++){const M=r*a[c+b],$=o+k*i;for(let S=0;S<t;S++)f[h+S]+=M*s[$+S];b+=l}}else{let b=_;for(let k=0;k<n;k++){const M=r*a[c+b],$=o+k*i;let S=y;for(let E=0;E<t;E++)f[h+S]+=M*s[$+E],S+=m;b+=l}}else if(l===1&&m===1)for(let b=0;b<n;b++){let k=0;const M=o+b*i;for(let $=0;$<t;$++)k+=s[M+$]*a[c+$];f[h+b]+=r*k}else if(l===1){let b=y;for(let k=0;k<n;k++){let M=0;const $=o+k*i;for(let S=0;S<t;S++)M+=s[$+S]*a[c+S];f[h+b]+=r*M,b+=m}}else{let b=y;for(let k=0;k<n;k++){let M=0;const $=o+k*i;let S=_;for(let E=0;E<t;E++)M+=s[$+E]*a[c+S],S+=l;f[h+b]+=r*M,b+=m}}}function Ys(e,t,n,r,s,o,i){if(!(e<=0))if(r===1&&i===1){const a=e%3;if(a!==0){for(let l=1;l<=a;l++){const u=t[n+(l-1)];t[n+(l-1)]=s[o+(l-1)],s[o+(l-1)]=u}if(e<3)return}const c=a+1;for(let l=c;l<=e;l+=3){let u=t[n+(l-1)];t[n+(l-1)]=s[o+(l-1)],s[o+(l-1)]=u,u=t[n+l],t[n+l]=s[o+l],s[o+l]=u,u=t[n+(l+1)],t[n+(l+1)]=s[o+(l+1)],s[o+(l+1)]=u}}else{let a=r>=0?1:(-e+1)*r+1,c=i>=0?1:(-e+1)*i+1;for(let l=1;l<=e;l++){const u=t[n+(a-1)];t[n+(a-1)]=s[o+(c-1)],s[o+(c-1)]=u,a+=r,c+=i}}}function pn(e,t,n,r,s,o,i,a,c,l,u,f,h){const m=e===$t,p=m?s:o,d=r===Fn,g=t===He;let w=0;if(e!==$t&&e!==nt?w=1:t!==He&&t!==ot?w=2:n!==Ee&&n!==mt&&n!==rc?w=3:r!==jn&&r!==Fn?w=4:s<0?w=5:o<0?w=6:l<Math.max(1,p)?w=9:h<Math.max(1,s)&&(w=11),w!==0){an("DTRMM ",w);return}if(!(s===0||o===0)){if(i===0){for(let _=1;_<=o;_++)for(let y=1;y<=s;y++)u[f+(y-1)+(_-1)*h]=0;return}if(m)if(n===Ee){if(g){for(let _=1;_<=o;_++)for(let y=1;y<=s;y++)if(u[f+(y-1)+(_-1)*h]!==0){const b=i*u[f+(y-1)+(_-1)*h];for(let k=1;k<=y-1;k++)u[f+(k-1)+(_-1)*h]+=b*a[c+(k-1)+(y-1)*l];u[f+(y-1)+(_-1)*h]=d?b*a[c+(y-1)+(y-1)*l]:b}}else for(let _=1;_<=o;_++)for(let y=s;y>=1;y--)if(u[f+(y-1)+(_-1)*h]!==0){const b=i*u[f+(y-1)+(_-1)*h];u[f+(y-1)+(_-1)*h]=b,d&&(u[f+(y-1)+(_-1)*h]*=a[c+(y-1)+(y-1)*l]);for(let k=y+1;k<=s;k++)u[f+(k-1)+(_-1)*h]+=b*a[c+(k-1)+(y-1)*l]}}else if(g)for(let _=1;_<=o;_++)for(let y=s;y>=1;y--){let b=u[f+(y-1)+(_-1)*h];d&&(b*=a[c+(y-1)+(y-1)*l]);for(let k=1;k<=y-1;k++)b+=a[c+(k-1)+(y-1)*l]*u[f+(k-1)+(_-1)*h];u[f+(y-1)+(_-1)*h]=i*b}else for(let _=1;_<=o;_++)for(let y=1;y<=s;y++){let b=u[f+(y-1)+(_-1)*h];d&&(b*=a[c+(y-1)+(y-1)*l]);for(let k=y+1;k<=s;k++)b+=a[c+(k-1)+(y-1)*l]*u[f+(k-1)+(_-1)*h];u[f+(y-1)+(_-1)*h]=i*b}else if(n===Ee)if(g)for(let _=o;_>=1;_--){let y=i;d&&(y*=a[c+(_-1)+(_-1)*l]);for(let b=1;b<=s;b++)u[f+(b-1)+(_-1)*h]=y*u[f+(b-1)+(_-1)*h];for(let b=1;b<=_-1;b++)if(a[c+(b-1)+(_-1)*l]!==0){y=i*a[c+(b-1)+(_-1)*l];for(let k=1;k<=s;k++)u[f+(k-1)+(_-1)*h]+=y*u[f+(k-1)+(b-1)*h]}}else for(let _=1;_<=o;_++){let y=i;d&&(y*=a[c+(_-1)+(_-1)*l]);for(let b=1;b<=s;b++)u[f+(b-1)+(_-1)*h]=y*u[f+(b-1)+(_-1)*h];for(let b=_+1;b<=o;b++)if(a[c+(b-1)+(_-1)*l]!==0){y=i*a[c+(b-1)+(_-1)*l];for(let k=1;k<=s;k++)u[f+(k-1)+(_-1)*h]+=y*u[f+(k-1)+(b-1)*h]}}else if(g)for(let _=1;_<=o;_++){for(let b=1;b<=_-1;b++)if(a[c+(b-1)+(_-1)*l]!==0){const k=i*a[c+(b-1)+(_-1)*l];for(let M=1;M<=s;M++)u[f+(M-1)+(b-1)*h]+=k*u[f+(M-1)+(_-1)*h]}let y=i;if(d&&(y*=a[c+(_-1)+(_-1)*l]),y!==1)for(let b=1;b<=s;b++)u[f+(b-1)+(_-1)*h]=y*u[f+(b-1)+(_-1)*h]}else for(let _=o;_>=1;_--){for(let b=_+1;b<=o;b++)if(a[c+(b-1)+(_-1)*l]!==0){const k=i*a[c+(b-1)+(_-1)*l];for(let M=1;M<=s;M++)u[f+(M-1)+(b-1)*h]+=k*u[f+(M-1)+(_-1)*h]}let y=i;if(d&&(y*=a[c+(_-1)+(_-1)*l]),y!==1)for(let b=1;b<=s;b++)u[f+(b-1)+(_-1)*h]=y*u[f+(b-1)+(_-1)*h]}}}function Yi(e,t,n,r,s,o,i,a,c,l){let u=0;if(e!==He&&e!==ot?u=1:t!==Ee&&t!==mt&&t!==rc?u=2:n!==jn&&n!==Fn?u=3:r<0?u=4:i<Math.max(1,r)&&(u=6),u!==0){an("DTRMV ",u);return}if(r===0)return;const f=n===Fn;if(t===Ee){if(e===He){for(let h=1;h<=r;h++)if(a[c+(h-1)]!==0){const m=a[c+(h-1)];for(let p=1;p<=h-1;p++)a[c+(p-1)]+=m*s[o+(p-1)+(h-1)*i];f&&(a[c+(h-1)]*=s[o+(h-1)+(h-1)*i])}}else for(let h=r;h>=1;h--)if(a[c+(h-1)]!==0){const m=a[c+(h-1)];for(let p=r;p>=h+1;p--)a[c+(p-1)]+=m*s[o+(p-1)+(h-1)*i];f&&(a[c+(h-1)]*=s[o+(h-1)+(h-1)*i])}}else if(e===He)for(let h=r;h>=1;h--){let m=a[c+(h-1)];f&&(m*=s[o+(h-1)+(h-1)*i]);for(let p=h-1;p>=1;p--)m+=s[o+(p-1)+(h-1)*i]*a[c+(p-1)];a[c+(h-1)]=m}else for(let h=1;h<=r;h++){let m=a[c+(h-1)];f&&(m*=s[o+(h-1)+(h-1)*i]);for(let p=h+1;p<=r;p++)m+=s[o+(p-1)+(h-1)*i]*a[c+(p-1)];a[c+(h-1)]=m}}function x1(e,t,n,r,s,o){let i=0;if(n<0?i=-3:o<Math.max(1,n)&&(i=-5),i!==0)return an("DTRTI2",-i),i;for(let a=1;a<=n;a++){let c;r[s+(a-1)+(a-1)*o]=1/r[s+(a-1)+(a-1)*o],c=-r[s+(a-1)+(a-1)*o],a-1>=1&&(Yi(He,Ee,t,a-1,r,s,o,r,s+(a-1)*o),st(a-1,c,r,s+(a-1)*o,1))}return 0}function Zv(e,t,n,r,s,o){let i=0;if(n<0?i=-3:o<Math.max(1,n)&&(i=-5),i!==0)return an("DTRTRI",-i),i;if(n===0)return 0;for(let c=1;c<=n;c++)if(r[s+(c-1)+(c-1)*o]===0)return c;const a=It(1,"DTRTRI"," ",n,-1);if(a<=1||a>=n)return x1(e,t,n,r,s,o);for(let c=1;c<=n;c+=a){const l=Math.min(a,n-c+1);c-1>=1&&(pn($t,He,Ee,t,c-1,l,1,r,s,o,r,s+(c-1)*o,o),Ll(nt,He,Ee,t,c-1,l,-1,r,s+(c-1)+(c-1)*o,o,r,s+(c-1)*o,o));const u=x1(He,t,l,r,s+(c-1)+(c-1)*o,o);i===0&&u!==0&&(i=u)}return i}function Gv(e,t,n,r){const i=It(1,"DGETRI"," ",e,-1),a=Math.max(1,e*i);let c=0;if(e<0?c=-1:n<Math.max(1,e)&&(c=-3),c!==0)return an("DGETRI",-c),c;if(e===0)return 0;if(c=Zv(He,Fn,e,t,0,n),c>0)return c;const l=a,u=v(l),f=e;let h=i,m=2,p;if(h>1&&h<e?(p=Math.max(f*h,1),l<p&&(h=Math.floor(l/f),m=Math.max(2,It(2,"DGETRI"," ",e,-1)))):p=e,h<m||h>=e)for(let d=e;d>=1;d--){for(let g=d+1;g<=e;g++)u[g-1]=t[0+(g-1)+(d-1)*n],t[0+(g-1)+(d-1)*n]=0;d<e&&ht(Ee,e,e-d,-1,t,0+d*n,n,u,d,1,1,t,0+(d-1)*n,1)}else{const d=Math.floor((e-1)/h)*h+1;for(let g=d;g>=1;g-=h){const w=Math.min(h,e-g+1);for(let _=g;_<=g+w-1;_++)for(let y=_+1;y<=e;y++)u[y-1+(_-g)*f]=t[0+(y-1)+(_-1)*n],t[0+(y-1)+(_-1)*n]=0;g+w<=e&&bt(Ee,Ee,e,w,e-g-w+1,-1,t,0+(g+w-1)*n,n,u,g+w-1,f,1,t,0+(g-1)*n,n),Ll(nt,ot,Ee,jn,e,w,1,u,g-1,f,t,0+(g-1)*n,n)}}for(let d=e-1;d>=1;d--){const g=r[0+(d-1)];g!==d&&Ys(e,t,0+(d-1)*n,1,t,0+(g-1)*n,1)}return 0}function vs(e,t,n,r){if(e<=0||r<=0)return 0;if(e===1)return Math.abs(t[n]);let s=0,o=1;for(let i=0;i<e;i++){const a=Math.abs(t[n+i*r]);a>0&&(s<a?(o=1+o*(s/a)*(s/a),s=a):o+=a/s*(a/s))}return s*Math.sqrt(o)}const Qv=0,Ov=1,eM=2,Ar=2,tM=.95;function nM(e,t,n,r,s,o,i){let a=0,c=1,l=t;if(e<0||e>3)return a=-1,{ilo:c,ihi:l,info:a};if(t<0)return a=-2,{ilo:c,ihi:l,info:a};if(s<Math.max(1,t))return a=-4,{ilo:c,ihi:l,info:a};if(t===0)return c=1,l=0,{ilo:c,ihi:l,info:a};if(e===Qv){for(let w=1;w<=t;w++)o[i+(w-1)]=1;return c=1,l=t,{ilo:c,ihi:l,info:a}}let u=1,f=t;if(e!==eM){let w=!0;for(;w;){w=!1;for(let _=f;_>=1;_--){let y=!0;for(let b=1;b<=f;b++)if(_!==b&&n[r+(_-1)+(b-1)*s]!==0){y=!1;break}if(y){if(o[i+(f-1)]=_,_!==f&&(Ys(f,n,r+(_-1)*s,1,n,r+(f-1)*s,1),Ys(t-u+1,n,r+(_-1)+(u-1)*s,s,n,r+(f-1)+(u-1)*s,s)),w=!0,f===1)return c=1,l=1,{ilo:c,ihi:l,info:a};f=f-1}}}for(w=!0;w;){w=!1;for(let _=u;_<=f;_++){let y=!0;for(let b=u;b<=f;b++)if(b!==_&&n[r+(b-1)+(_-1)*s]!==0){y=!1;break}y&&(o[i+(u-1)]=_,_!==u&&(Ys(f,n,r+(_-1)*s,1,n,r+(u-1)*s,1),Ys(t-u+1,n,r+(_-1)+(u-1)*s,s,n,r+(u-1)+(u-1)*s,s)),w=!0,u=u+1)}}}for(let w=u;w<=f;w++)o[i+(w-1)]=1;if(e===Ov)return c=u,l=f,{ilo:c,ihi:l,info:a};const h=Bt(er)/Bt(ks),m=1/h,p=h*Ar,d=1/p;let g=!0;for(;g;){g=!1;for(let w=u;w<=f;w++){let _=vs(f-u+1,n,r+(u-1)+(w-1)*s,1),y=vs(f-u+1,n,r+(w-1)+(u-1)*s,s);const b=Hs(f,n,r+(w-1)*s,1);let k=Math.abs(n[r+(b-1)+(w-1)*s]);const M=Hs(t-u+1,n,r+(w-1)+(u-1)*s,s);let $=Math.abs(n[r+(w-1)+(M+u-2)*s]);if(_===0||y===0)continue;if(isNaN(_+k+y+$))return a=-3,{ilo:c,ihi:l,info:a};let S=y/Ar,E=1;const D=_+y;for(;_<S&&Math.max(E,_,k)<d&&Math.min(y,S,$)>p;)E=E*Ar,_=_*Ar,k=k*Ar,y=y/Ar,S=S/Ar,$=$/Ar;for(S=_/Ar;S>=y&&Math.max(y,$)<d&&Math.min(E,_,S,k)>p;)E=E/Ar,_=_/Ar,S=S/Ar,k=k/Ar,y=y*Ar,$=$*Ar;_+y>=tM*D||E<1&&o[i+(w-1)]<1&&E*o[i+(w-1)]<=h||E>1&&o[i+(w-1)]>1&&o[i+(w-1)]>=m/E||(S=1/E,o[i+(w-1)]=o[i+(w-1)]*E,g=!0,st(t-u+1,S,n,r+(w-1)+(u-1)*s,s),st(f,E,n,r+(w-1)*s,1))}}return c=u,l=f,{ilo:c,ihi:l,info:a}}function Ji(e,t){const n=Number.isNaN(e),r=Number.isNaN(t);if(n)return e;if(r)return t;const s=Bt(Bm),o=Math.abs(e),i=Math.abs(t),a=Math.max(o,i),c=Math.min(o,i);return c===0||a>s?a:a*Math.sqrt(1+c/a*(c/a))}function vn(e,t,n,r,s){if(e<=1)return{alpha:t,tau:0};let o=vs(e-1,n,r,s);if(o===0)return{alpha:t,tau:0};let i=-(Math.sign(t)||1)*Ji(t,o);const a=Bt(er)/Bt(Wi);let c=0;if(Math.abs(i)<a){const u=1/a;do c++,st(e-1,u,n,r,s),i*=u,t*=u;while(Math.abs(i)<a&&c<20);o=vs(e-1,n,r,s),i=-(Math.sign(t)||1)*Ji(t,o)}const l=(i-t)/i;st(e-1,1/(t-i),n,r,s);for(let u=1;u<=c;u++)i*=a;return t=i,{alpha:t,tau:l}}function rM(e,t,n,r,s){if(e===0)return e;if(n[r+(e-1)]!==0||n[r+(e-1)+(t-1)*s]!==0)return e;let o=0;for(let i=1;i<=t;i++){let a=e;for(;a>=1&&n[r+(Math.max(a,1)-1)+(i-1)*s]===0;)a--;o=Math.max(o,a)}return o}function sM(e,t,n,r,s){if(t===0)return t;if(n[r+(t-1)*s]!==0||n[r+(e-1)+(t-1)*s]!==0)return t;for(let o=t;o>=1;o--)for(let i=1;i<=e;i++)if(n[r+(i-1)+(o-1)*s]!==0)return o;return 0}function Pl(e,t,n,r,s,o,i,a,c,l,u,f){let h=0;if(e<0?h=1:t<0?h=2:o===0?h=5:c===0?h=7:f<Math.max(1,e)&&(h=9),h!==0){an("DGER ",h);return}if(e===0||t===0||n===0)return;const m=o>0?0:(e-1)*-o,p=c>0?0:(t-1)*-c;if(o===1&&c===1)for(let d=0;d<t;d++){const g=i[a+d];if(g!==0){const w=n*g,_=u+d*f;for(let y=0;y<e;y++)l[_+y]+=r[s+y]*w}}else if(o===1){let d=p;for(let g=0;g<t;g++){const w=i[a+d];if(w!==0){const _=n*w,y=u+g*f;for(let b=0;b<e;b++)l[y+b]+=r[s+b]*_}d+=c}}else{let d=p;for(let g=0;g<t;g++){const w=i[a+d];if(w!==0){const _=n*w,y=u+g*f;let b=m;for(let k=0;k<e;k++)l[y+k]+=r[s+b]*_,b+=o}d+=c}}}function Er(e,t,n,r,s,o,i,a){if(!(e<=0)&&t!==0)if(s===1&&a===1){const c=e%4;if(c!==0)for(let u=1;u<=c;u++)o[i+(u-1)]+=t*n[r+(u-1)];if(e<4)return;const l=c+1;for(let u=l;u<=e;u+=4)o[i+(u-1)]+=t*n[r+(u-1)],o[i+u]+=t*n[r+u],o[i+(u+1)]+=t*n[r+(u+1)],o[i+(u+2)]+=t*n[r+(u+2)]}else{let c=1,l=1;s<0&&(c=(-e+1)*s+1),a<0&&(l=(-e+1)*a+1);for(let u=1;u<=e;u++)o[i+(l-1)]+=t*n[r+(c-1)],c+=s,l+=a}}function Tr(e,t,n,r,s,o,i,a,c,l,u,f){const h=e===$t;let m=1,p=0;if(i!==0){h?m=t:m=n;let d;for(o>0?d=1+(m-1)*o:d=1;m>1&&r[s+(d-1)]===0;)m--,d-=o;h?p=sM(m,n,a,c,l):p=rM(t,m,a,c,l)}p!==0&&(h?m===1?st(p,1-i,a,c,l):(ht(mt,m-1,p,1,a,c+1,l,r,s+o,o,0,u,f,1),Er(p,1,a,c,l,u,f,1),Er(p,-i,u,f,1,a,c,l),Pl(m-1,p,-i,r,s+o,o,u,f,1,a,c+1,l)):m===1?st(p,1-i,a,c,1):(ht(Ee,p,m-1,1,a,c+l,l,r,s+o,o,0,u,f,1),Er(p,1,a,c,1,u,f,1),Er(p,-i,u,f,1,a,c,1),Pl(p,m-1,-i,u,f,1,r,s+o,o,a,c+l,l)))}function oM(e,t,n,r,s,o,i,a,c,l){let u=0;if(e<0?u=-1:t<1||t>Math.max(1,e)?u=-2:n<Math.min(t,e)||n>e?u=-3:o<Math.max(1,e)&&(u=-5),u!==0)return u;for(let f=t;f<=n-1;f++){const h=s+f+(f-1)*o,m=s+(Math.min(f+2,e)-1)+(f-1)*o,p=vn(n-f,r[h],r,m,1);r[h]=p.alpha,i[a+(f-1)]=p.tau,Tr(nt,n,n-f,r,s+f+(f-1)*o,1,i[a+(f-1)],r,s+f*o,o,c,l),Tr($t,n-f,e-f,r,s+f+(f-1)*o,1,i[a+(f-1)],r,s+f+f*o,o,c,l)}return 0}function Js(e,t,n,r,s,o,i){if(!(e<=0))if(r===1&&i===1){const a=e%7;if(a!==0){for(let l=1;l<=a;l++)s[o+(l-1)]=t[n+(l-1)];if(e<7)return}const c=a+1;for(let l=c;l<=e;l+=7)s[o+(l-1)]=t[n+(l-1)],s[o+l]=t[n+l],s[o+(l+1)]=t[n+(l+1)],s[o+(l+2)]=t[n+(l+2)],s[o+(l+3)]=t[n+(l+3)],s[o+(l+4)]=t[n+(l+4)],s[o+(l+5)]=t[n+(l+5)]}else{let a=1,c=1;r<0&&(a=(-e+1)*r+1),i<0&&(c=(-e+1)*i+1);for(let l=1;l<=e;l++)s[o+(c-1)]=t[n+(a-1)],a+=r,c+=i}}function Qe(e,t,n,r,s,o,i,a,c){if(e===He)for(let l=1;l<=n;l++)for(let u=1;u<=Math.min(l,t);u++)i[a+(u-1)+(l-1)*c]=r[s+(u-1)+(l-1)*o];else if(e===ot)for(let l=1;l<=n;l++)for(let u=l;u<=t;u++)i[a+(u-1)+(l-1)*c]=r[s+(u-1)+(l-1)*o];else for(let l=1;l<=n;l++)for(let u=1;u<=t;u++)i[a+(u-1)+(l-1)*c]=r[s+(u-1)+(l-1)*o]}const b1=0,dr=1;function iM(e,t,n,r,s,o,i,a,c,l,u,f,h,m){if(e<=1)return;let p=0;for(let d=1;d<=n;d++){d>1&&(ht(Ee,e-t,d-1,-dr,f,h+t+0*m,m,r,s+(t+d-2)+0*o,o,dr,r,s+t+(d-1)*o,1),Js(d-1,r,s+t+(d-1)*o,1,c,l+(n-1)*u,1),Yi(ot,mt,jn,d-1,r,s+t+0*o,o,c,l+(n-1)*u),ht(mt,e-t-d+1,d-1,dr,r,s+(t+d-1)+0*o,o,r,s+(t+d-1)+(d-1)*o,1,dr,c,l+(n-1)*u,1),Yi(He,mt,Fn,d-1,c,l,u,c,l+(n-1)*u),ht(Ee,e-t-d+1,d-1,-dr,r,s+(t+d-1)+0*o,o,c,l+(n-1)*u,1,dr,r,s+(t+d-1)+(d-1)*o,1),Yi(ot,Ee,jn,d-1,r,s+t+0*o,o,c,l+(n-1)*u),Er(d-1,-dr,c,l+(n-1)*u,1,r,s+t+(d-1)*o,1),r[s+(t+d-2)+(d-2)*o]=p);const g=s+(t+d-1)+(d-1)*o,w=s+(Math.min(t+d+1,e)-1)+(d-1)*o,_=vn(e-t-d+1,r[g],r,w,1);r[g]=_.alpha,i[a+(d-1)]=_.tau,p=r[g],r[g]=dr,ht(Ee,e-t,e-t-d+1,dr,r,s+t+d*o,o,r,s+(t+d-1)+(d-1)*o,1,b1,f,h+t+(d-1)*m,1),ht(mt,e-t-d+1,d-1,dr,r,s+(t+d-1)+0*o,o,r,s+(t+d-1)+(d-1)*o,1,b1,c,l+(d-1)*u,1),ht(Ee,e-t,d-1,-dr,f,h+t+0*m,m,c,l+(d-1)*u,1,dr,f,h+t+(d-1)*m,1),st(e-t,i[a+(d-1)],f,h+t+(d-1)*m,1),st(d-1,-i[a+(d-1)],c,l+(d-1)*u,1),Yi(He,Ee,Fn,d-1,c,l,u,c,l+(d-1)*u),c[l+(d-1)+(d-1)*u]=i[a+(d-1)]}r[s+(t+n-1)+(n-1)*o]=p,Qe(-1,t,n,r,s+1*o,o,f,h,m),pn(nt,ot,Ee,jn,t,n,dr,r,s+t+0*o,o,f,h,m),e>t+n&&bt(Ee,Ee,t,n,e-t-n,dr,r,s+(1+n)*o,o,r,s+(t+n)+0*o,o,dr,f,h,m),pn(nt,He,Ee,Fn,t,n,dr,c,l,u,f,h,m)}const aM=0;function Bl(e,t,n,r,s,o,i,a,c,l,u,f,h,m,p,d,g,w,_){if(s<=0||o<=0)return;const y=t===Ee?mt:Ee;if(r===aM)if(e===$t){for(let b=1;b<=i;b++)Js(o,m,p+(b-1),d,g,w+(b-1)*_,1);pn(nt,ot,Ee,jn,o,i,1,a,c,l,g,w,_),s>i&&bt(mt,Ee,o,i,s-i,1,m,p+i,d,a,c+i,l,1,g,w,_),pn(nt,He,y,Fn,o,i,1,u,f,h,g,w,_),s>i&&bt(Ee,mt,s-i,o,i,-1,a,c+i,l,g,w,_,1,m,p+i,d),pn(nt,ot,mt,jn,o,i,1,a,c,l,g,w,_);for(let b=1;b<=i;b++)for(let k=1;k<=o;k++)m[p+(b-1)+(k-1)*d]-=g[w+(k-1)+(b-1)*_]}else{for(let b=1;b<=i;b++)Js(s,m,p+(b-1)*d,1,g,w+(b-1)*_,1);pn(nt,ot,Ee,jn,s,i,1,a,c,l,g,w,_),o>i&&bt(Ee,Ee,s,i,o-i,1,m,p+i*d,d,a,c+i,l,1,g,w,_),pn(nt,He,t,Fn,s,i,1,u,f,h,g,w,_),o>i&&bt(Ee,mt,s,o-i,i,-1,g,w,_,a,c+i,l,1,m,p+i*d,d),pn(nt,ot,mt,jn,s,i,1,a,c,l,g,w,_);for(let b=1;b<=i;b++)for(let k=1;k<=s;k++)m[p+(k-1)+(b-1)*d]-=g[w+(k-1)+(b-1)*_]}else if(e===$t){for(let b=1;b<=i;b++)Js(o,m,p+(b-1),d,g,w+(b-1)*_,1);pn(nt,He,mt,jn,o,i,1,a,c,l,g,w,_),s>i&&bt(mt,mt,o,i,s-i,1,m,p+i,d,a,c+i*l,l,1,g,w,_),pn(nt,He,y,Fn,o,i,1,u,f,h,g,w,_),s>i&&bt(mt,mt,s-i,o,i,-1,a,c+i*l,l,g,w,_,1,m,p+i,d),pn(nt,He,Ee,jn,o,i,1,a,c,l,g,w,_);for(let b=1;b<=i;b++)for(let k=1;k<=o;k++)m[p+(b-1)+(k-1)*d]-=g[w+(k-1)+(b-1)*_]}else{for(let b=1;b<=i;b++)Js(s,m,p+(b-1)*d,1,g,w+(b-1)*_,1);pn(nt,He,mt,jn,s,i,1,a,c,l,g,w,_),o>i&&bt(Ee,mt,s,i,o-i,1,m,p+i*d,d,a,c+i*l,l,1,g,w,_),pn(nt,He,t,Fn,s,i,1,u,f,h,g,w,_),o>i&&bt(Ee,Ee,s,o-i,i,-1,g,w,_,a,c+i*l,l,1,m,p+i*d,d),pn(nt,He,Ee,jn,s,i,1,a,c,l,g,w,_);for(let b=1;b<=i;b++)for(let k=1;k<=s;k++)m[p+(k-1)+(b-1)*d]-=g[w+(k-1)+(b-1)*_]}}const k1=0,oc=1,ql=64,Xm=ql+1,Hm=Xm*ql,cM=0,lM=0;function Ym(e,t,n,r,s,o,i,a,c,l,u){let f=0;const h=u===-1;e<0?f=-1:t<1||t>Math.max(1,e)?f=-2:n<Math.min(t,e)||n>e?f=-3:o<Math.max(1,e)?f=-5:u<Math.max(1,e)&&!h&&(f=-8);const m=n-t+1;let p;if(f===0){if(m<=1)p=1;else{const b=Math.min(ql,It(1,"DGEHRD"," ",e,t));p=e*b+Hm}c[l]=p}else p=1;if(f!==0)return f;if(h)return 0;for(let b=1;b<=t-1;b++)i[a+(b-1)]=k1;for(let b=Math.max(1,n);b<=e-1;b++)i[a+(b-1)]=k1;if(m<=1)return c[l]=1,0;let d=Math.min(ql,It(1,"DGEHRD"," ",e,t)),g=2,w=0,_=t;d>1&&d<m&&(w=Math.max(d,It(3,"DGEHRD"," ",e,t)),w<m&&u<p&&(g=Math.max(2,It(2,"DGEHRD"," ",e,t)),u>=e*g+Hm?d=Math.floor((u-Hm)/e):d=1));const y=e;if(d<g||d>=m)_=t;else{const b=1+e*d;for(_=t;_<=n-1-w;_+=d){const k=Math.min(d,n-_);iM(n,_,k,r,s+(_-1)*o,o,i,a+(_-1),c,l+(b-1),Xm,c,l,y);const M=s+(_+k-1)+(_+k-2)*o,$=r[M];r[M]=oc,bt(Ee,mt,n,n-_-k+1,k,-oc,c,l,y,r,s+(_+k-1)+(_-1)*o,o,oc,r,s+(_+k-1)*o,o),r[M]=$,pn(nt,ot,mt,jn,_,k-1,oc,r,s+_+(_-1)*o,o,c,l,y);for(let S=0;S<=k-2;S++)Er(_,-oc,c,l+y*S,1,r,s+(_+S)*o,1);Bl($t,mt,cM,lM,n-_,e-_-k+1,k,r,s+_+(_-1)*o,o,c,l+(b-1),Xm,r,s+_+(_+k-1)*o,o,c,l,y)}}return oM(e,_,n,r,s,o,i,a,c,l),c[l]=p,0}function v1(e,t,n,r,s,o,i,a,c,l){let u=0;if(e<0?u=-1:t<0||t>e?u=-2:n<0||n>t?u=-3:o<Math.max(1,e)&&(u=-5),u!==0)return an("DORG2R",-u),u;if(t<=0)return 0;for(let f=n+1;f<=t;f++){for(let h=1;h<=e;h++)r[s+(h-1)+(f-1)*o]=0;r[s+(f-1)+(f-1)*o]=1}for(let f=n;f>=1;f--){const h=s+(f-1)+(f-1)*o,m=i[a+(f-1)];f<t&&Tr($t,e-f+1,t-f,r,h,1,m,r,s+(f-1)+f*o,o,c,l),f<e&&st(e-f,-m,r,s+f+(f-1)*o,1),r[h]=1-m;for(let p=1;p<=f-1;p++)r[s+(p-1)+(f-1)*o]=0}return 0}function ss(e,t,n,r,s,o,i,a){let c=0;const l=It(1,"DORGQR"," ",e,t);if(e<0?c=-1:t<0||t>e?c=-2:n<0||n>t?c=-3:o<Math.max(1,e)&&(c=-5),c!==0)return an("DORGQR",-c),c;if(t<=0)return 0;const u=2;let f=0,h=t,m=0;if(l>1&&l<n&&(f=Math.max(0,It(3,"DORGQR"," ",e,t)),f<n&&(h=t*l)),l>=u&&l<n&&f<n){const p=Math.floor((n-f-1)/l)*l;m=Math.min(n,p+l);for(let d=m+1;d<=t;d++)for(let g=1;g<=m;g++)r[s+(g-1)+(d-1)*o]=0}else m=0;if(m<t){const p=v(Math.max(1,t));v1(e-m,t-m,n-m,r,s+m+m*o,o,i,a+m,p,0)}if(m>0){const p=v(h),d=Math.floor((n-f-1)/l)*l;for(let g=d+1;g>=1;g-=l){const w=Math.min(l,n-g+1);v1(e-g+1,w,w,r,s+(g-1)+(g-1)*o,o,i,a+(g-1),p,0);for(let _=g;_<=g+w-1;_++)for(let y=1;y<=g-1;y++)r[s+(y-1)+(_-1)*o]=0}}return 0}const Vl=0,M1=1;function $1(e,t,n,r,s,o,i,a,c,l,u){let f=0;const h=n-t,m=u===-1;e<0?f=-1:t<1||t>Math.max(1,e)?f=-2:n<Math.min(t,e)||n>e?f=-3:o<Math.max(1,e)?f=-5:u<Math.max(1,h)&&!m&&(f=-8);let p;if(f===0){const d=It(1,"DORGQR"," ",h,h);p=Math.max(1,h)*d,c[l]=p}else p=1;if(f!==0)return f;if(m)return 0;if(e===0)return c[l]=1,0;for(let d=n;d>=t+1;d--){for(let g=1;g<=d-1;g++)r[s+(g-1)+(d-1)*o]=Vl;for(let g=d+1;g<=n;g++)r[s+(g-1)+(d-1)*o]=r[s+(g-1)+(d-2)*o];for(let g=n+1;g<=e;g++)r[s+(g-1)+(d-1)*o]=Vl}for(let d=1;d<=t;d++){for(let g=1;g<=e;g++)r[s+(g-1)+(d-1)*o]=Vl;r[s+(d-1)+(d-1)*o]=M1}for(let d=n+1;d<=e;d++){for(let g=1;g<=e;g++)r[s+(g-1)+(d-1)*o]=Vl;r[s+(d-1)+(d-1)*o]=M1}return h>0&&ss(h,h,h,r,s+t+t*o,o,i,a+(t-1)),c[l]=p,0}function Jm(e,t){return t>=0?Math.abs(e):-Math.abs(e)}function Ki(e,t,n,r){const l=Bt(er),u=Bt(ks),f=Bt(w1),h=Math.pow(f,Math.trunc(Math.log(l/u)/Math.log(f)/2)),m=1/h;let p,d,g,w,_,y,b;if(n===0)p=1,d=0;else if(t===0)p=0,d=1,_=r,r=e,e=_,t=-n,n=0;else if(e-r===0&&Math.sign(t)!==Math.sign(n))p=1,d=0;else{_=e-r,y=.5*_;const $=Math.max(Math.abs(t),Math.abs(n)),S=Math.min(Math.abs(t),Math.abs(n))*Math.sign(t)*Math.sign(n),E=Math.max(Math.abs(y),$);let D=y/E*y+$/E*S;if(D>=4*u)D=y+Jm(Math.sqrt(E)*Math.sqrt(D),y),e=r+D,r=r-$/D*S,b=Ji(n,D),p=D/b,d=n/b,t=t-n,n=0;else{let F=0,R=t+n,q=!0;for(;q;){q=!1,F=F+1;const B=Math.max(Math.abs(_),Math.abs(R));if(B>=m&&(R=R*h,_=_*h,F<=20)){q=!0;continue}if(B<=h&&(R=R*m,_=_*m,F<=20)){q=!0;continue}}y=.5*_,b=Ji(R,_),p=Math.sqrt(.5*(1+Math.abs(R)/b)),d=-(y/(b*p))*Jm(1,R);const J=e*p+t*d,X=-e*d+t*p,z=n*p+r*d,L=-n*d+r*p;if(e=J*p+z*d,t=X*p+L*d,n=-(J*d)+z*p,r=-X*d+L*p,_=.5*(e+r),e=_,r=_,n!==0)if(t!==0){if(Math.sign(t)===Math.sign(n)){const B=Math.sqrt(Math.abs(t)),A=Math.sqrt(Math.abs(n));y=Jm(B*A,n),b=1/Math.sqrt(Math.abs(t+n)),e=_+y,r=_-y,t=t-n,n=0;const G=B*b,ie=A*b;_=p*G-d*ie,d=p*ie+d*G,p=_}}else t=-n,n=0,_=p,p=-d,d=_}}const k=e,M=r;return n===0?(g=0,w=0):(g=Math.sqrt(Math.abs(t))*Math.sqrt(Math.abs(n)),w=-g),{a:e,b:t,c:n,d:r,rt1r:k,rt1i:g,rt2r:M,rt2i:w,cs:p,sn:d}}function gr(e,t,n,r,s,o,i,a,c){if(!(e<=0))if(r===1&&i===1)for(let l=1;l<=e;l++){const u=a*t[n+(l-1)]+c*s[o+(l-1)];s[o+(l-1)]=a*s[o+(l-1)]-c*t[n+(l-1)],t[n+(l-1)]=u}else{let l=1,u=1;r<0&&(l=(-e+1)*r+1),i<0&&(u=(-e+1)*i+1);for(let f=1;f<=e;f++){const h=a*t[n+(l-1)]+c*s[o+(u-1)];s[o+(u-1)]=a*s[o+(u-1)]-c*t[n+(l-1)],t[n+(l-1)]=h,l+=r,u+=i}}}function zl(e,t,n,r,s,o,i,a,c,l,u,f,h,m,p,d,g){const $=(ie,ge)=>i+(ie-1)+(ge-1)*a,S=(ie,ge)=>d+(ie-1)+(ge-1)*g;let E=0;if(n===0)return 0;if(r===s)return c[l+(r-1)]=o[$(r,r)],u[f+(r-1)]=0,0;for(let ie=r;ie<=s-3;ie++)o[$(ie+2,ie)]=0,o[$(ie+3,ie)]=0;r<=s-2&&(o[$(s,s-2)]=0);const D=s-r+1,F=m-h+1,R=Bt(er),q=Bt(ks),J=R*(D/q);let X,z;e?(X=1,z=n):(X=0,z=0);const L=30*Math.max(10,D);let B=0,A=s;const G=v(3);e:for(;;){let ie=r;if(A<r)break;for(let ge=0;ge<=L;ge++){let ne;for(ne=A;ne>=ie+1&&!(Math.abs(o[$(ne,ne-1)])<=J);ne--){let se=Math.abs(o[$(ne-1,ne-1)])+Math.abs(o[$(ne,ne)]);if(se===0&&(ne-2>=r&&(se=se+Math.abs(o[$(ne-1,ne-2)])),ne+1<=s&&(se=se+Math.abs(o[$(ne+1,ne)]))),Math.abs(o[$(ne,ne-1)])<=q*se){const Te=Math.max(Math.abs(o[$(ne,ne-1)]),Math.abs(o[$(ne-1,ne)])),ke=Math.min(Math.abs(o[$(ne,ne-1)]),Math.abs(o[$(ne-1,ne)])),xe=Math.max(Math.abs(o[$(ne,ne)]),Math.abs(o[$(ne-1,ne-1)]-o[$(ne,ne)])),Ue=Math.min(Math.abs(o[$(ne,ne)]),Math.abs(o[$(ne-1,ne-1)]-o[$(ne,ne)])),he=xe+Te;if(ke*(Te/he)<=Math.max(J,q*(Ue*(xe/he))))break}}if(ie=ne,ie>r&&(o[$(ie,ie-1)]=0),ie>=A-1){if(ie===A)c[l+(A-1)]=o[$(A,A)],u[f+(A-1)]=0;else if(ie===A-1){const se=Ki(o[$(A-1,A-1)],o[$(A-1,A)],o[$(A,A-1)],o[$(A,A)]);o[$(A-1,A-1)]=se.a,o[$(A-1,A)]=se.b,o[$(A,A-1)]=se.c,o[$(A,A)]=se.d,c[l+(A-2)]=se.rt1r,u[f+(A-2)]=se.rt1i,c[l+(A-1)]=se.rt2r,u[f+(A-1)]=se.rt2i;const Te=se.cs,ke=se.sn;e&&(z>A&&gr(z-A,o,$(A-1,A+1),a,o,$(A,A+1),a,Te,ke),gr(A-X-1,o,$(X,A-1),1,o,$(X,A),1,Te,ke)),t&&gr(F,p,S(h,A-1),1,p,S(h,A),1,Te,ke)}B=0,A=ie-1;continue e}B=B+1,e||(X=ie,z=A);let re,le,K,P;if(B%20===0){const se=Math.abs(o[$(A,A-1)])+Math.abs(o[$(A-1,A-2)]);re=.75*se+o[$(A,A)],le=-.4375*se,K=se,P=re}else if(B%10===0){const se=Math.abs(o[$(ie+1,ie)])+Math.abs(o[$(ie+2,ie+1)]);re=.75*se+o[$(ie,ie)],le=-.4375*se,K=se,P=re}else re=o[$(A-1,A-1)],K=o[$(A,A-1)],le=o[$(A-1,A)],P=o[$(A,A)];let ce=Math.abs(re)+Math.abs(le)+Math.abs(K)+Math.abs(P),me,fe,Z,V;if(ce===0)me=0,fe=0,Z=0,V=0;else{re=re/ce,K=K/ce,le=le/ce,P=P/ce;const se=(re+P)/2,Te=(re-se)*(P-se)-le*K,ke=Math.sqrt(Math.abs(Te));Te>=0?(me=se*ce,Z=me,fe=ke*ce,V=-fe):(me=se+ke,Z=se-ke,Math.abs(me-P)<=Math.abs(Z-P)?(me=me*ce,Z=me):(Z=Z*ce,me=Z),fe=0,V=0)}let we;for(we=A-2;we>=ie;we--){const se=o[$(we+1,we)];ce=Math.abs(o[$(we,we)]-Z)+Math.abs(V)+Math.abs(se);const Te=o[$(we+1,we)]/ce;if(G[0]=Te*o[$(we,we+1)]+(o[$(we,we)]-me)*((o[$(we,we)]-Z)/ce)-fe*(V/ce),G[1]=Te*(o[$(we,we)]+o[$(we+1,we+1)]-me-Z),G[2]=Te*o[$(we+2,we+1)],ce=Math.abs(G[0])+Math.abs(G[1])+Math.abs(G[2]),G[0]=G[0]/ce,G[1]=G[1]/ce,G[2]=G[2]/ce,we===ie||Math.abs(o[$(we,we-1)])*(Math.abs(G[1])+Math.abs(G[2]))<=q*Math.abs(G[0])*(Math.abs(o[$(we-1,we-1)])+Math.abs(o[$(we,we)])+Math.abs(o[$(we+1,we+1)])))break}for(ne=we;ne<=A-1;ne++){const se=Math.min(3,A-ne+1);ne>we&&Js(se,o,$(ne,ne-1),1,G,0,1);const Te=vn(se,G[0],G,1,1);G[0]=Te.alpha;const ke=Te.tau;ne>we?(o[$(ne,ne-1)]=G[0],o[$(ne+1,ne-1)]=0,ne<A-1&&(o[$(ne+2,ne-1)]=0)):we>ie&&(o[$(ne,ne-1)]=o[$(ne,ne-1)]*(1-ke));const xe=G[1],Ue=ke*xe;if(se===3){const he=G[2],te=ke*he;for(let oe=ne;oe<=z;oe++){const Re=o[$(ne,oe)]+xe*o[$(ne+1,oe)]+he*o[$(ne+2,oe)];o[$(ne,oe)]=o[$(ne,oe)]-Re*ke,o[$(ne+1,oe)]=o[$(ne+1,oe)]-Re*Ue,o[$(ne+2,oe)]=o[$(ne+2,oe)]-Re*te}for(let oe=X;oe<=Math.min(ne+3,A);oe++){const Re=o[$(oe,ne)]+xe*o[$(oe,ne+1)]+he*o[$(oe,ne+2)];o[$(oe,ne)]=o[$(oe,ne)]-Re*ke,o[$(oe,ne+1)]=o[$(oe,ne+1)]-Re*Ue,o[$(oe,ne+2)]=o[$(oe,ne+2)]-Re*te}if(t)for(let oe=h;oe<=m;oe++){const Re=p[S(oe,ne)]+xe*p[S(oe,ne+1)]+he*p[S(oe,ne+2)];p[S(oe,ne)]=p[S(oe,ne)]-Re*ke,p[S(oe,ne+1)]=p[S(oe,ne+1)]-Re*Ue,p[S(oe,ne+2)]=p[S(oe,ne+2)]-Re*te}}else if(se===2){for(let he=ne;he<=z;he++){const te=o[$(ne,he)]+xe*o[$(ne+1,he)];o[$(ne,he)]=o[$(ne,he)]-te*ke,o[$(ne+1,he)]=o[$(ne+1,he)]-te*Ue}for(let he=X;he<=A;he++){const te=o[$(he,ne)]+xe*o[$(he,ne+1)];o[$(he,ne)]=o[$(he,ne)]-te*ke,o[$(he,ne+1)]=o[$(he,ne+1)]-te*Ue}if(t)for(let he=h;he<=m;he++){const te=p[S(he,ne)]+xe*p[S(he,ne+1)];p[S(he,ne)]=p[S(he,ne)]-te*ke,p[S(he,ne+1)]=p[S(he,ne+1)]-te*Ue}}}}return E=A,E}return 0}function dn(e,t,n,r,s,o,i,a){if(e===He)for(let c=2;c<=n;c++)for(let l=1;l<=Math.min(c-1,t);l++)o[i+(l-1)+(c-1)*a]=r;else if(e===ot)for(let c=1;c<=Math.min(t,n);c++)for(let l=c+1;l<=t;l++)o[i+(l-1)+(c-1)*a]=r;else for(let c=1;c<=n;c++)for(let l=1;l<=t;l++)o[i+(l-1)+(c-1)*a]=r;for(let c=1;c<=Math.min(t,n);c++)o[i+(c-1)+(c-1)*a]=s}const uM=[2,3,0,1],fM=[1,0,3,2],mM=[3,2,1,0],hM=[!1,!1,!0,!0],pM=[!1,!0,!1,!0];function dM(e,t,n,r,s,o,i,a,c,l,u,f,h,m,p,d,g){let w=0,_=1,y=0;if(r===0||s===0)return{scale:_,xnorm:y,info:w};const b=Bt(ks),k=Bt(er)/b,M=n,$=r+r+s-2;if($===1){let q=o[i]+M*c[l],J=Math.abs(q);J<=k&&(q=k,J=k,w=1),_=1;const X=Math.abs(f[h]);return k*X>J&&(_=1/X),p[d]=f[h]*_/q,y=Math.abs(p[d]),{scale:_,xnorm:y,info:w}}if($===2){const q=Math.max(b*Math.max(Math.abs(o[i]),Math.abs(c[l]),Math.abs(c[l+u]),Math.abs(c[l+1]),Math.abs(c[l+1+u])),k),J=v(4);J[0]=o[i]+M*c[l],J[3]=o[i]+M*c[l+1+u],J[1]=M*c[l+u],J[2]=M*c[l+1];const X=v(4);return X[0]=f[h],X[1]=f[h+m],C1(J,X,q,k,r,p,d,g)}if($===3){const q=Math.max(b*Math.max(Math.abs(c[l]),Math.abs(o[i]),Math.abs(o[i+a]),Math.abs(o[i+1]),Math.abs(o[i+1+a])),k),J=v(4);J[0]=o[i]+M*c[l],J[3]=o[i+1+a]+M*c[l],J[1]=o[i+1],J[2]=o[i+a];const X=v(4);return X[0]=f[h],X[1]=f[h+1],C1(J,X,q,k,r,p,d,g)}let S=Math.max(Math.abs(c[l]),Math.abs(c[l+u]),Math.abs(c[l+1]),Math.abs(c[l+1+u]));S=Math.max(S,Math.abs(o[i]),Math.abs(o[i+a]),Math.abs(o[i+1]),Math.abs(o[i+1+a])),S=Math.max(b*S,k);const E=v(16);E[0]=o[i]+M*c[l],E[5]=o[i+1+a]+M*c[l],E[10]=o[i]+M*c[l+1+u],E[15]=o[i+1+a]+M*c[l+1+u],E[4]=o[i+a],E[1]=o[i+1],E[14]=o[i+a],E[11]=o[i+1],E[8]=M*c[l+1],E[13]=M*c[l+1],E[2]=M*c[l+u],E[7]=M*c[l+u];const D=v(4);D[0]=f[h],D[1]=f[h+1],D[2]=f[h+m],D[3]=f[h+1+m];const F=new Int32Array(4);for(let q=0;q<3;q++){let J=0,X=q,z=q;for(let L=q;L<4;L++)for(let B=q;B<4;B++)Math.abs(E[L+B*4])>=J&&(J=Math.abs(E[L+B*4]),X=L,z=B);if(X!==q){for(let B=0;B<4;B++){const A=E[X+B*4];E[X+B*4]=E[q+B*4],E[q+B*4]=A}const L=D[q];D[q]=D[X],D[X]=L}if(z!==q)for(let L=0;L<4;L++){const B=E[L+z*4];E[L+z*4]=E[L+q*4],E[L+q*4]=B}F[q]=z,Math.abs(E[q+q*4])<S&&(w=1,E[q+q*4]=S);for(let L=q+1;L<4;L++){E[L+q*4]=E[L+q*4]/E[q+q*4],D[L]=D[L]-E[L+q*4]*D[q];for(let B=q+1;B<4;B++)E[L+B*4]=E[L+B*4]-E[L+q*4]*E[q+B*4]}}Math.abs(E[15])<S&&(w=1,E[15]=S),_=1,(8*k*Math.abs(D[0])>Math.abs(E[0])||8*k*Math.abs(D[1])>Math.abs(E[5])||8*k*Math.abs(D[2])>Math.abs(E[10])||8*k*Math.abs(D[3])>Math.abs(E[15]))&&(_=.125/Math.max(Math.abs(D[0]),Math.abs(D[1]),Math.abs(D[2]),Math.abs(D[3])),D[0]*=_,D[1]*=_,D[2]*=_,D[3]*=_);const R=v(4);for(let q=0;q<4;q++){const J=3-q,X=1/E[J+J*4];R[J]=D[J]*X;for(let z=J+1;z<4;z++)R[J]=R[J]-X*E[J+z*4]*R[z]}for(let q=0;q<3;q++){const J=2-q;if(F[J]!==J){const X=R[J];R[J]=R[F[J]],R[F[J]]=X}}return p[d]=R[0],p[d+1]=R[1],p[d+g]=R[2],p[d+1+g]=R[3],y=Math.max(Math.abs(R[0])+Math.abs(R[2]),Math.abs(R[1])+Math.abs(R[3])),{scale:_,xnorm:y,info:w}}function C1(e,t,n,r,s,o,i,a){let c=0,l,u,f=0,h=Math.abs(e[0]);for(let k=1;k<4;k++)Math.abs(e[k])>h&&(h=Math.abs(e[k]),f=k);let m=e[f];Math.abs(m)<=n&&(c=1,m=n);const p=e[uM[f]],d=e[fM[f]]/m;let g=e[mM[f]]-p*d;const w=hM[f],_=pM[f];if(Math.abs(g)<=n&&(c=1,g=n),_){const k=t[1];t[1]=t[0]-d*k,t[0]=k}else t[1]=t[1]-d*t[0];l=1,(2*r*Math.abs(t[1])>Math.abs(g)||2*r*Math.abs(t[0])>Math.abs(m))&&(l=.5/Math.max(Math.abs(t[0]),Math.abs(t[1])),t[0]*=l,t[1]*=l);let y=t[1]/g,b=t[0]/m-p/m*y;if(w){const k=y;y=b,b=k}return o[i]=b,s===1?(o[i+a]=y,u=Math.abs(o[i])+Math.abs(o[i+a])):(o[i+1]=y,u=Math.max(Math.abs(o[i]),Math.abs(o[i+1]))),{scale:l,xnorm:u,info:c}}function N1(e,t,n,r,s,o,i,a,c,l,u,f){const h=e===$t;let m=0,p=0;if(i!==0){h?m=t:m=n;let d;for(d=s+(m-1)*o;m>0&&r[d]===0;)m--,d-=o;h?p=gM(m,n,a,c,l):p=wM(t,m,a,c,l)}h?m>0&&(ht(mt,m,p,1,a,c,l,r,s,o,0,u,f,1),Pl(m,p,-i,r,s,o,u,f,1,a,c,l)):m>0&&(ht(Ee,p,m,1,a,c,l,r,s,o,0,u,f,1),Pl(p,m,-i,u,f,1,r,s,o,a,c,l))}function gM(e,t,n,r,s){if(t===0)return 0;if(n[r+(t-1)*s]!==0||n[r+(e-1)+(t-1)*s]!==0)return t;for(let o=t;o>=1;o--)for(let i=1;i<=e;i++)if(n[r+(i-1)+(o-1)*s]!==0)return o;return 0}function wM(e,t,n,r,s){if(e===0)return 0;if(n[r+(e-1)]!==0||n[r+(e-1)+(t-1)*s]!==0)return e;for(let o=e;o>=1;o--)for(let i=1;i<=t;i++)if(n[r+(o-1)+(i-1)*s]!==0)return o;return 0}function Tn(e,t,n,r,s,o,i,a,c,l,u){if(o!==0)if(e===$t)switch(t){case 1:_M(n,r,s,o,i,a,c);return;case 2:yM(n,r,s,o,i,a,c);return;case 3:xM(n,r,s,o,i,a,c);return;case 4:bM(n,r,s,o,i,a,c);return;case 5:kM(n,r,s,o,i,a,c);return;case 6:vM(n,r,s,o,i,a,c);return;case 7:MM(n,r,s,o,i,a,c);return;case 8:$M(n,r,s,o,i,a,c);return;case 9:CM(n,r,s,o,i,a,c);return;case 10:NM(n,r,s,o,i,a,c);return;default:N1(e,t,n,r,s,1,o,i,a,c,l,u);return}else switch(n){case 1:SM(t,r,s,o,i,a);return;case 2:AM(t,r,s,o,i,a,c);return;case 3:EM(t,r,s,o,i,a,c);return;case 4:IM(t,r,s,o,i,a,c);return;case 5:FM(t,r,s,o,i,a,c);return;case 6:jM(t,r,s,o,i,a,c);return;case 7:RM(t,r,s,o,i,a,c);return;case 8:LM(t,r,s,o,i,a,c);return;case 9:DM(t,r,s,o,i,a,c);return;case 10:TM(t,r,s,o,i,a,c);return;default:N1(e,t,n,r,s,1,o,i,a,c,l,u);return}}function _M(e,t,n,r,s,o,i){const a=1-r*t[n]*t[n];for(let c=0;c<e;c++)s[o+c*i]=a*s[o+c*i]}function yM(e,t,n,r,s,o,i){const a=t[n],c=r*a,l=t[n+1],u=r*l;for(let f=0;f<e;f++){const h=o+f*i,m=a*s[h]+l*s[h+1];s[h]-=m*c,s[h+1]-=m*u}}function xM(e,t,n,r,s,o,i){const a=t[n],c=r*a,l=t[n+1],u=r*l,f=t[n+2],h=r*f;for(let m=0;m<e;m++){const p=o+m*i,d=a*s[p]+l*s[p+1]+f*s[p+2];s[p]-=d*c,s[p+1]-=d*u,s[p+2]-=d*h}}function bM(e,t,n,r,s,o,i){const a=t[n],c=r*a,l=t[n+1],u=r*l,f=t[n+2],h=r*f,m=t[n+3],p=r*m;for(let d=0;d<e;d++){const g=o+d*i,w=a*s[g]+l*s[g+1]+f*s[g+2]+m*s[g+3];s[g]-=w*c,s[g+1]-=w*u,s[g+2]-=w*h,s[g+3]-=w*p}}function kM(e,t,n,r,s,o,i){const a=t[n],c=r*a,l=t[n+1],u=r*l,f=t[n+2],h=r*f,m=t[n+3],p=r*m,d=t[n+4],g=r*d;for(let w=0;w<e;w++){const _=o+w*i,y=a*s[_]+l*s[_+1]+f*s[_+2]+m*s[_+3]+d*s[_+4];s[_]-=y*c,s[_+1]-=y*u,s[_+2]-=y*h,s[_+3]-=y*p,s[_+4]-=y*g}}function vM(e,t,n,r,s,o,i){const a=t[n],c=r*a,l=t[n+1],u=r*l,f=t[n+2],h=r*f,m=t[n+3],p=r*m,d=t[n+4],g=r*d,w=t[n+5],_=r*w;for(let y=0;y<e;y++){const b=o+y*i,k=a*s[b]+l*s[b+1]+f*s[b+2]+m*s[b+3]+d*s[b+4]+w*s[b+5];s[b]-=k*c,s[b+1]-=k*u,s[b+2]-=k*h,s[b+3]-=k*p,s[b+4]-=k*g,s[b+5]-=k*_}}function MM(e,t,n,r,s,o,i){const a=t[n],c=r*a,l=t[n+1],u=r*l,f=t[n+2],h=r*f,m=t[n+3],p=r*m,d=t[n+4],g=r*d,w=t[n+5],_=r*w,y=t[n+6],b=r*y;for(let k=0;k<e;k++){const M=o+k*i,$=a*s[M]+l*s[M+1]+f*s[M+2]+m*s[M+3]+d*s[M+4]+w*s[M+5]+y*s[M+6];s[M]-=$*c,s[M+1]-=$*u,s[M+2]-=$*h,s[M+3]-=$*p,s[M+4]-=$*g,s[M+5]-=$*_,s[M+6]-=$*b}}function $M(e,t,n,r,s,o,i){const a=t[n],c=r*a,l=t[n+1],u=r*l,f=t[n+2],h=r*f,m=t[n+3],p=r*m,d=t[n+4],g=r*d,w=t[n+5],_=r*w,y=t[n+6],b=r*y,k=t[n+7],M=r*k;for(let $=0;$<e;$++){const S=o+$*i,E=a*s[S]+l*s[S+1]+f*s[S+2]+m*s[S+3]+d*s[S+4]+w*s[S+5]+y*s[S+6]+k*s[S+7];s[S]-=E*c,s[S+1]-=E*u,s[S+2]-=E*h,s[S+3]-=E*p,s[S+4]-=E*g,s[S+5]-=E*_,s[S+6]-=E*b,s[S+7]-=E*M}}function CM(e,t,n,r,s,o,i){const a=t[n],c=r*a,l=t[n+1],u=r*l,f=t[n+2],h=r*f,m=t[n+3],p=r*m,d=t[n+4],g=r*d,w=t[n+5],_=r*w,y=t[n+6],b=r*y,k=t[n+7],M=r*k,$=t[n+8],S=r*$;for(let E=0;E<e;E++){const D=o+E*i,F=a*s[D]+l*s[D+1]+f*s[D+2]+m*s[D+3]+d*s[D+4]+w*s[D+5]+y*s[D+6]+k*s[D+7]+$*s[D+8];s[D]-=F*c,s[D+1]-=F*u,s[D+2]-=F*h,s[D+3]-=F*p,s[D+4]-=F*g,s[D+5]-=F*_,s[D+6]-=F*b,s[D+7]-=F*M,s[D+8]-=F*S}}function NM(e,t,n,r,s,o,i){const a=t[n],c=r*a,l=t[n+1],u=r*l,f=t[n+2],h=r*f,m=t[n+3],p=r*m,d=t[n+4],g=r*d,w=t[n+5],_=r*w,y=t[n+6],b=r*y,k=t[n+7],M=r*k,$=t[n+8],S=r*$,E=t[n+9],D=r*E;for(let F=0;F<e;F++){const R=o+F*i,q=a*s[R]+l*s[R+1]+f*s[R+2]+m*s[R+3]+d*s[R+4]+w*s[R+5]+y*s[R+6]+k*s[R+7]+$*s[R+8]+E*s[R+9];s[R]-=q*c,s[R+1]-=q*u,s[R+2]-=q*h,s[R+3]-=q*p,s[R+4]-=q*g,s[R+5]-=q*_,s[R+6]-=q*b,s[R+7]-=q*M,s[R+8]-=q*S,s[R+9]-=q*D}}function SM(e,t,n,r,s,o,i){const a=1-r*t[n]*t[n];for(let c=0;c<e;c++)s[o+c]=a*s[o+c]}function AM(e,t,n,r,s,o,i){const a=t[n],c=r*a,l=t[n+1],u=r*l;for(let f=0;f<e;f++){const h=a*s[o+f]+l*s[o+f+i];s[o+f]-=h*c,s[o+f+i]-=h*u}}function EM(e,t,n,r,s,o,i){const a=t[n],c=r*a,l=t[n+1],u=r*l,f=t[n+2],h=r*f;for(let m=0;m<e;m++){const p=a*s[o+m]+l*s[o+m+i]+f*s[o+m+2*i];s[o+m]-=p*c,s[o+m+i]-=p*u,s[o+m+2*i]-=p*h}}function IM(e,t,n,r,s,o,i){const a=t[n],c=r*a,l=t[n+1],u=r*l,f=t[n+2],h=r*f,m=t[n+3],p=r*m;for(let d=0;d<e;d++){const g=a*s[o+d]+l*s[o+d+i]+f*s[o+d+2*i]+m*s[o+d+3*i];s[o+d]-=g*c,s[o+d+i]-=g*u,s[o+d+2*i]-=g*h,s[o+d+3*i]-=g*p}}function FM(e,t,n,r,s,o,i){const a=t[n],c=r*a,l=t[n+1],u=r*l,f=t[n+2],h=r*f,m=t[n+3],p=r*m,d=t[n+4],g=r*d;for(let w=0;w<e;w++){const _=a*s[o+w]+l*s[o+w+i]+f*s[o+w+2*i]+m*s[o+w+3*i]+d*s[o+w+4*i];s[o+w]-=_*c,s[o+w+i]-=_*u,s[o+w+2*i]-=_*h,s[o+w+3*i]-=_*p,s[o+w+4*i]-=_*g}}function jM(e,t,n,r,s,o,i){const a=t[n],c=r*a,l=t[n+1],u=r*l,f=t[n+2],h=r*f,m=t[n+3],p=r*m,d=t[n+4],g=r*d,w=t[n+5],_=r*w;for(let y=0;y<e;y++){const b=a*s[o+y]+l*s[o+y+i]+f*s[o+y+2*i]+m*s[o+y+3*i]+d*s[o+y+4*i]+w*s[o+y+5*i];s[o+y]-=b*c,s[o+y+i]-=b*u,s[o+y+2*i]-=b*h,s[o+y+3*i]-=b*p,s[o+y+4*i]-=b*g,s[o+y+5*i]-=b*_}}function RM(e,t,n,r,s,o,i){const a=t[n],c=r*a,l=t[n+1],u=r*l,f=t[n+2],h=r*f,m=t[n+3],p=r*m,d=t[n+4],g=r*d,w=t[n+5],_=r*w,y=t[n+6],b=r*y;for(let k=0;k<e;k++){const M=a*s[o+k]+l*s[o+k+i]+f*s[o+k+2*i]+m*s[o+k+3*i]+d*s[o+k+4*i]+w*s[o+k+5*i]+y*s[o+k+6*i];s[o+k]-=M*c,s[o+k+i]-=M*u,s[o+k+2*i]-=M*h,s[o+k+3*i]-=M*p,s[o+k+4*i]-=M*g,s[o+k+5*i]-=M*_,s[o+k+6*i]-=M*b}}function LM(e,t,n,r,s,o,i){const a=t[n],c=r*a,l=t[n+1],u=r*l,f=t[n+2],h=r*f,m=t[n+3],p=r*m,d=t[n+4],g=r*d,w=t[n+5],_=r*w,y=t[n+6],b=r*y,k=t[n+7],M=r*k;for(let $=0;$<e;$++){const S=a*s[o+$]+l*s[o+$+i]+f*s[o+$+2*i]+m*s[o+$+3*i]+d*s[o+$+4*i]+w*s[o+$+5*i]+y*s[o+$+6*i]+k*s[o+$+7*i];s[o+$]-=S*c,s[o+$+i]-=S*u,s[o+$+2*i]-=S*h,s[o+$+3*i]-=S*p,s[o+$+4*i]-=S*g,s[o+$+5*i]-=S*_,s[o+$+6*i]-=S*b,s[o+$+7*i]-=S*M}}function DM(e,t,n,r,s,o,i){const a=t[n],c=r*a,l=t[n+1],u=r*l,f=t[n+2],h=r*f,m=t[n+3],p=r*m,d=t[n+4],g=r*d,w=t[n+5],_=r*w,y=t[n+6],b=r*y,k=t[n+7],M=r*k,$=t[n+8],S=r*$;for(let E=0;E<e;E++){const D=a*s[o+E]+l*s[o+E+i]+f*s[o+E+2*i]+m*s[o+E+3*i]+d*s[o+E+4*i]+w*s[o+E+5*i]+y*s[o+E+6*i]+k*s[o+E+7*i]+$*s[o+E+8*i];s[o+E]-=D*c,s[o+E+i]-=D*u,s[o+E+2*i]-=D*h,s[o+E+3*i]-=D*p,s[o+E+4*i]-=D*g,s[o+E+5*i]-=D*_,s[o+E+6*i]-=D*b,s[o+E+7*i]-=D*M,s[o+E+8*i]-=D*S}}function TM(e,t,n,r,s,o,i){const a=t[n],c=r*a,l=t[n+1],u=r*l,f=t[n+2],h=r*f,m=t[n+3],p=r*m,d=t[n+4],g=r*d,w=t[n+5],_=r*w,y=t[n+6],b=r*y,k=t[n+7],M=r*k,$=t[n+8],S=r*$,E=t[n+9],D=r*E;for(let F=0;F<e;F++){const R=a*s[o+F]+l*s[o+F+i]+f*s[o+F+2*i]+m*s[o+F+3*i]+d*s[o+F+4*i]+w*s[o+F+5*i]+y*s[o+F+6*i]+k*s[o+F+7*i]+$*s[o+F+8*i]+E*s[o+F+9*i];s[o+F]-=R*c,s[o+F+i]-=R*u,s[o+F+2*i]-=R*h,s[o+F+3*i]-=R*p,s[o+F+4*i]-=R*g,s[o+F+5*i]-=R*_,s[o+F+6*i]-=R*b,s[o+F+7*i]-=R*M,s[o+F+8*i]-=R*S,s[o+F+9*i]-=R*D}}function Km(e,t,n,r,s,o,i,a){let c;if(Math.min(t,n)===0)c=0;else{c=0;for(let l=1;l<=n;l++)for(let u=1;u<=t;u++){const f=Math.abs(r[s+(u-1)+(l-1)*o]);(c<f||isNaN(f))&&(c=f)}}return c}function Zm(e,t){return t>=0&&!Object.is(t,-0)?Math.abs(e):-Math.abs(e)}function Yr(e,t){const n=Bt(er),r=1/n,s=Math.sqrt(n),o=Math.sqrt(r/2),i=Math.abs(e),a=Math.abs(t);let c,l,u;if(t===0)c=1,l=0,u=e;else if(e===0)c=0,l=Zm(1,t),u=a;else if(i>s&&i<o&&a>s&&a<o){const f=Math.sqrt(e*e+t*t);c=i/f,u=Zm(f,e),l=t/u}else{const f=Math.min(r,Math.max(n,i,a)),h=e/f,m=t/f,p=Math.sqrt(h*h+m*m);c=Math.abs(h)/p,u=Zm(p,e),l=m/u,u=u*f}return{cs:c,sn:l,r:u}}const PM=-1,BM=0;function Jr(e,t,n,r,s,o,i,a,c,l,u,f,h){const _=(D,F)=>r+(D-1)+(F-1)*s,y=(D,F)=>i+(D-1)+(F-1)*a,b=(D,F)=>D-1+(F-1)*4,k=(D,F)=>D-1+(F-1)*2;if(t===0||l===0||u===0||c+l>t)return 0;const $=c+1,S=c+2,E=c+3;if(l===1&&u===1){const D=n[_(c,c)],F=n[_($,$)],R=Yr(n[_(c,$)],F-D),q=R.cs,J=R.sn;S<=t&&gr(t-c-1,n,_(c,S),s,n,_($,S),s,q,J),gr(c-1,n,_(1,c),1,n,_(1,$),1,q,J),n[_(c,c)]=F,n[_($,$)]=D,gr(t,o,y(1,c),1,o,y(1,$),1,q,J)}else{const D=l+u,F=v(16);Qe(PM,D,D,n,_(c,c),s,F,0,4);const R=Km(BM,D,D,F,0,4),q=Bt(ks),J=Bt(er)/q,X=Math.max(10*q*R,J),z=v(4),B=dM(!1,!1,-1,l,u,F,0,4,F,l+l*4,4,F,l*4,4,z,0,2).scale,A=l+l+u-3;if(A===1){const G=v(3);G[0]=B,G[1]=z[k(1,1)],G[2]=z[k(1,2)];const ie=vn(3,G[2],G,0,1);G[2]=1;const ge=ie.tau,ne=n[_(c,c)];if(Tn($t,3,3,G,0,ge,F,0,4,f,h),Tn(nt,3,3,G,0,ge,F,0,4,f,h),Math.max(Math.abs(F[b(3,1)]),Math.abs(F[b(3,2)]),Math.abs(F[b(3,3)]-ne))>X)return 1;Tn($t,3,t-c+1,G,0,ge,n,_(c,c),s,f,h),Tn(nt,$,3,G,0,ge,n,_(1,c),s,f,h),n[_(S,c)]=0,n[_(S,$)]=0,n[_(S,S)]=ne,Tn(nt,t,3,G,0,ge,o,y(1,c),a,f,h)}else if(A===2){const G=v(3);G[0]=-z[k(1,1)],G[1]=-z[k(2,1)],G[2]=B;const ie=vn(3,G[0],G,1,1);G[0]=1;const ge=ie.tau,ne=n[_(S,S)];if(Tn($t,3,3,G,0,ge,F,0,4,f,h),Tn(nt,3,3,G,0,ge,F,0,4,f,h),Math.max(Math.abs(F[b(2,1)]),Math.abs(F[b(3,1)]),Math.abs(F[b(1,1)]-ne))>X)return 1;Tn(nt,S,3,G,0,ge,n,_(1,c),s,f,h),Tn($t,3,t-c,G,0,ge,n,_(c,$),s,f,h),n[_(c,c)]=ne,n[_($,c)]=0,n[_(S,c)]=0,Tn(nt,t,3,G,0,ge,o,y(1,c),a,f,h)}else if(A===3){const G=v(3);G[0]=-z[k(1,1)],G[1]=-z[k(2,1)],G[2]=B;const ie=vn(3,G[0],G,1,1);G[0]=1;const ge=ie.tau,ne=-ge*(z[k(1,2)]+G[1]*z[k(2,2)]),re=v(3);re[0]=-ne*G[1]-z[k(2,2)],re[1]=-ne*G[2],re[2]=B;const le=vn(3,re[0],re,1,1);re[0]=1;const K=le.tau;if(Tn($t,3,4,G,0,ge,F,0,4,f,h),Tn(nt,4,3,G,0,ge,F,0,4,f,h),Tn($t,3,4,re,0,K,F,b(2,1),4,f,h),Tn(nt,4,3,re,0,K,F,b(1,2),4,f,h),Math.max(Math.abs(F[b(3,1)]),Math.abs(F[b(3,2)]),Math.abs(F[b(4,1)]),Math.abs(F[b(4,2)]))>X)return 1;Tn($t,3,t-c+1,G,0,ge,n,_(c,c),s,f,h),Tn(nt,E,3,G,0,ge,n,_(1,c),s,f,h),Tn($t,3,t-c+1,re,0,K,n,_($,c),s,f,h),Tn(nt,E,3,re,0,K,n,_(1,$),s,f,h),n[_(S,c)]=0,n[_(S,$)]=0,n[_(E,c)]=0,n[_(E,$)]=0,Tn(nt,t,3,G,0,ge,o,y(1,c),a,f,h),Tn(nt,t,3,re,0,K,o,y(1,$),a,f,h)}if(u===2){const G=Ki(n[_(c,c)],n[_(c,$)],n[_($,c)],n[_($,$)]);n[_(c,c)]=G.a,n[_(c,$)]=G.b,n[_($,c)]=G.c,n[_($,$)]=G.d;const ie=G.cs,ge=G.sn;gr(t-c-1,n,_(c,c+2),s,n,_($,c+2),s,ie,ge),gr(c-1,n,_(1,c),1,n,_(1,$),1,ie,ge),gr(t,o,y(1,c),1,o,y(1,$),1,ie,ge)}if(l===2){const G=c+u,ie=G+1,ge=Ki(n[_(G,G)],n[_(G,ie)],n[_(ie,G)],n[_(ie,ie)]);n[_(G,G)]=ge.a,n[_(G,ie)]=ge.b,n[_(ie,G)]=ge.c,n[_(ie,ie)]=ge.d;const ne=ge.cs,re=ge.sn;G+2<=t&&gr(t-G-1,n,_(G,G+2),s,n,_(ie,G+2),s,ne,re),gr(G-1,n,_(1,G),1,n,_(1,ie),1,ne,re),gr(t,o,y(1,G),1,o,y(1,ie),1,ne,re)}}return 0}function Gm(e,t,n,r,s,o,i,a,c,l,u,f){const m=(y,b)=>r+(y-1)+(b-1)*s;let p=0;const d=e===1;if(t<0?p=-2:s<Math.max(1,t)?p=-4:a<1||a<Math.max(1,t)?p=-6:t>0&&(c.val<1||c.val>t)?p=-7:t>0&&(l.val<1||l.val>t)&&(p=-8),p!==0)return p;if(t<=1)return 0;c.val>1&&n[m(c.val,c.val-1)]!==0&&(c.val=c.val-1);let g=1;c.val<t&&n[m(c.val+1,c.val)]!==0&&(g=2),l.val>1&&n[m(l.val,l.val-1)]!==0&&(l.val=l.val-1);let w=1;if(l.val<t&&n[m(l.val+1,l.val)]!==0&&(w=2),c.val===l.val)return 0;let _;if(c.val<l.val)for(g===2&&w===1&&(l.val=l.val-1),g===1&&w===2&&(l.val=l.val+1),_=c.val;;){if(g===1||g===2){let y=1;if(_+g+1<=t&&n[m(_+g+1,_+g)]!==0&&(y=2),p=Jr(d,t,n,r,s,o,i,a,_,g,y,u,f),p!==0)return l.val=_,p;_=_+y,g===2&&n[m(_+1,_)]===0&&(g=3)}else{let y=1;if(_+3<=t&&n[m(_+3,_+2)]!==0&&(y=2),p=Jr(d,t,n,r,s,o,i,a,_+1,1,y,u,f),p!==0)return l.val=_,p;if(y===1)p=Jr(d,t,n,r,s,o,i,a,_,1,y,u,f),_=_+1;else if(n[m(_+2,_+1)]===0&&(y=1),y===2){if(p=Jr(d,t,n,r,s,o,i,a,_,1,y,u,f),p!==0)return l.val=_,p;_=_+2}else Jr(d,t,n,r,s,o,i,a,_,1,1,u,f),Jr(d,t,n,r,s,o,i,a,_+1,1,1,u,f),_=_+2}if(!(_<l.val))break}else for(_=c.val;;){if(g===1||g===2){let y=1;if(_>=3&&n[m(_-1,_-2)]!==0&&(y=2),p=Jr(d,t,n,r,s,o,i,a,_-y,y,g,u,f),p!==0)return l.val=_,p;_=_-y,g===2&&n[m(_+1,_)]===0&&(g=3)}else{let y=1;if(_>=3&&n[m(_-1,_-2)]!==0&&(y=2),p=Jr(d,t,n,r,s,o,i,a,_-y,y,1,u,f),p!==0)return l.val=_,p;if(y===1)p=Jr(d,t,n,r,s,o,i,a,_,y,1,u,f),_=_-1;else if(n[m(_,_-1)]===0&&(y=1),y===2){if(p=Jr(d,t,n,r,s,o,i,a,_-1,2,1,u,f),p!==0)return l.val=_,p;_=_-2}else Jr(d,t,n,r,s,o,i,a,_,1,1,u,f),Jr(d,t,n,r,s,o,i,a,_-1,1,1,u,f),_=_-2}if(!(_>l.val))break}return l.val=_,0}function qM(e,t,n,r,s,o,i,a,c,l,u,f,h,m,p){let d=0;const g=r;if(n<0?d=-3:r<0?d=-4:s<0||s>g?d=-5:a<Math.max(1,g)?d=-7:h<Math.max(1,n)&&(d=-10),d!==0)return d;if(n===0||r===0||s===0)return 0;let w,_,y;w=1,_=s,y=1;let b,k,M,$;k=n,M=1,b=0,$=0;for(let S=w;y>0?S<=_:S>=_;S+=y)b=r-S+1,$=S,Tr(e,k,b,o,i+(S-1)+(S-1)*a,1,c[l+(S-1)],u,f+(M-1)+($-1)*h,h,m,p);return 0}const S1=0,VM=64;function Ks(e,t,n,r,s,o,i,a,c,l,u,f){if(n===0||r===0)return;if(n===1||r===1){l[u]=a[c];return}if(r<VM){zM(e,t,n,r,s,o,i,a,c,l,u,f);return}const h=t===S1,m=h,p=!h,d=Math.floor(r/2);if(m){Ks(e,t,n,d,s,o,i,a,c,l,u,f),Ks(e,t,n-d,r-d,s,o+d+d*i,i,a,c+d,l,u+d+d*f,f);for(let g=1;g<=d;g++)for(let w=1;w<=r-d;w++)l[u+(g-1)+(d+w-1)*f]=s[o+(d+w-1)+(g-1)*i];pn(nt,ot,Ee,jn,d,r-d,1,s,o+d+d*i,i,l,u+d*f,f),n>r&&bt(mt,Ee,d,r-d,n-r,1,s,o+r+0*i,i,s,o+r+d*i,i,1,l,u+d*f,f),pn($t,He,Ee,Fn,d,r-d,-1,l,u,f,l,u+d*f,f),pn(nt,He,Ee,Fn,d,r-d,1,l,u+d+d*f,f,l,u+d*f,f)}else p?(Ks(e,t,n,d,s,o,i,a,c,l,u,f),Ks(e,t,n-d,r-d,s,o+d+d*i,i,a,c+d,l,u+d+d*f,f),Qe(-1,d,r-d,s,o+d*i,i,l,u+d*f,f),pn(nt,He,mt,jn,d,r-d,1,s,o+d+d*i,i,l,u+d*f,f),n>r&&bt(Ee,mt,d,r-d,n-r,1,s,o+r*i,i,s,o+d+r*i,i,1,l,u+d*f,f),pn($t,He,Ee,Fn,d,r-d,-1,l,u,f,l,u+d*f,f),pn(nt,He,Ee,Fn,d,r-d,1,l,u+d+d*f,f,l,u+d*f,f)):(Ks(e,t,n-d,r-d,s,o,i,a,c,l,u,f),Ks(e,t,n,d,s,o+(r-d),i,a,c+(r-d),l,u+(r-d)+(r-d)*f,f),Qe(-1,d,r-d,s,o+(r-d)+(n-r)*i,i,l,u+(r-d),f),pn(nt,ot,mt,jn,d,r-d,1,s,o+(n-r)*i,i,l,u+(r-d),f),n>r&&bt(Ee,mt,d,r-d,n-r,1,s,o+(r-d),i,s,o,i,1,l,u+(r-d),f),pn($t,ot,Ee,Fn,d,r-d,-1,l,u+(r-d)+(r-d)*f,f,l,u+(r-d),f),pn(nt,ot,Ee,Fn,d,r-d,1,l,u,f,l,u+(r-d),f))}function zM(e,t,n,r,s,o,i,a,c,l,u,f){if(n===0)return;const h=t===S1;{let m=n;for(let p=1;p<=r;p++)if(m=Math.max(p,m),a[c+(p-1)]===0)for(let d=1;d<=p;d++)l[u+(d-1)+(p-1)*f]=0;else{let d;if(h){d=p;for(let w=n;w>=p+1;w--)if(s[o+(w-1)+(p-1)*i]!==0){d=w;break}for(let w=1;w<=p-1;w++)l[u+(w-1)+(p-1)*f]=-a[c+(p-1)]*s[o+(p-1)+(w-1)*i];const g=Math.min(d,m);g>p&&ht(mt,g-p,p-1,-a[c+(p-1)],s,o+p+0*i,i,s,o+p+(p-1)*i,1,1,l,u+(p-1)*f,1)}else{d=p;for(let w=n;w>=p+1;w--)if(s[o+(p-1)+(w-1)*i]!==0){d=w;break}for(let w=1;w<=p-1;w++)l[u+(w-1)+(p-1)*f]=-a[c+(p-1)]*s[o+(w-1)+(p-1)*i];const g=Math.min(d,m);g>p&&ht(Ee,p-1,g-p,-a[c+(p-1)],s,o+p*i,i,s,o+(p-1)+p*i,i,1,l,u+(p-1)*f,1)}p>1&&Yi(He,Ee,Fn,p-1,l,u,f,l,u+(p-1)*f),l[u+(p-1)+(p-1)*f]=a[c+(p-1)],p>1?m=Math.max(m,d):m=d}}}const Qm=64,Om=Qm+1,A1=Om*Qm,E1=0,I1=0;function UM(e,t,n,r,s,o,i,a,c,l,u,f,h,m,p,d){let g=0;const w=d===-1;let _,y;_=r,y=Math.max(1,n),n<0?g=-3:r<0?g=-4:s<0||s>_?g=-5:a<Math.max(1,_)?g=-7:h<Math.max(1,n)?g=-10:d<y&&!w&&(g=-12);let b,k;if(g===0?(b=Math.min(Qm,64),k=y*b+A1,m[p]=k):(b=0,k=0),g!==0)return g;if(w)return 0;if(n===0||r===0||s===0)return m[p]=1,0;let M=2;const $=y;if(b>1&&b<s&&d<k&&(b=Math.floor((d-A1)/$),M=Math.max(2,2)),b<M||b>=s)qM(e,t,n,r,s,o,i,a,c,l,u,f,h,m,p);else{const S=1+y*b;let E,D,F;E=1,D=s,F=b;let R,q,J,X;q=n,J=1,R=0,X=0;for(let z=E;F>0?z<=D:z>=D;z+=F){const L=Math.min(b,s-z+1);Ks(E1,I1,_-z+1,L,o,i+(z-1)+(z-1)*a,a,c,l+(z-1),m,p+(S-1),Om),R=r-z+1,X=z,Bl(e,t,E1,I1,q,R,L,o,i+(z-1)+(z-1)*a,a,m,p+(S-1),Om,u,f+(J-1)+(X-1)*h,h,m,p,$)}}return m[p]=k,0}function F1(e,t,n,r,s,o,i,a,c,l,u,f,h,m,p,d,g){let w=0;const _=o-s,y=g===-1;let b,k;b=r,k=Math.max(1,n),n<0?w=-3:r<0?w=-4:s>Math.max(1,b)?w=-5:o<Math.min(s,b)||o>b?w=-6:c<Math.max(1,b)?w=-8:m<Math.max(1,n)?w=-11:g<k&&!y&&(w=-13);let M;if(w===0?(M=k*64,p[d]=M):M=0,w!==0)return w;if(y)return 0;if(n===0||r===0||_===0)return p[d]=1,0;let $,S,E,D;return $=n,S=_,E=1,D=s+1,UM(e,t,$,S,_,i,a+s+(s-1)*c,c,l,u+(s-1),f,h+(E-1)+(D-1)*m,m,p,d,g),p[d]=M,0}function eh(e,t,n,r,s,o,i,a,c,l){if(!(e!==2&&e!==3))if(e===2){const u=Math.abs(t[n]-i)+Math.abs(a)+Math.abs(t[n+1]);if(u===0)c[l]=0,c[l+1]=0;else{const f=t[n+1]/u;c[l]=f*t[n+r]+(t[n]-s)*((t[n]-i)/u)-o*(a/u),c[l+1]=f*(t[n]+t[n+1+r]-s-i)}}else{const u=Math.abs(t[n]-i)+Math.abs(a)+Math.abs(t[n+1])+Math.abs(t[n+2]);if(u===0)c[l]=0,c[l+1]=0,c[l+2]=0;else{const f=t[n+1]/u,h=t[n+2]/u;c[l]=(t[n]-s)*((t[n]-i)/u)-o*(a/u)+t[n+r]*f+t[n+2*r]*h,c[l+1]=f*(t[n]+t[n+1+r]-s-i)+t[n+1+2*r]*h,c[l+2]=h*(t[n]+t[n+2+2*r]-s-i)+f*t[n+2+r]}}}const Ul=-1;function WM(e,t,n,r,s,o,i,a,c,l,u,f,h,m,p,d,g,w,_,y,b,k,M,$,S,E,D,F,R,q,J,X,z){const A=(Z,V)=>h+(Z-1)+(V-1)*m,G=(Z,V)=>w+(Z-1)+(V-1)*_,ie=(Z,V)=>b+(Z-1)+(V-1)*k,ge=(Z,V)=>$+(Z-1)+(V-1)*S;if(i<2||s>=o)return;for(let Z=1;Z<=i-2;Z+=2)if(l[u+(Z-1)]!==-l[u+Z]){let V=a[c+(Z-1)];a[c+(Z-1)]=a[c+Z],a[c+Z]=a[c+(Z+1)],a[c+(Z+1)]=V,V=l[u+(Z-1)],l[u+(Z-1)]=l[u+Z],l[u+Z]=l[u+(Z+1)],l[u+(Z+1)]=V}const ne=i-i%2,re=Bt(er),le=Bt(ks),K=re*(r/le),P=n===1||n===2;s+2<=o&&(f[A(s+2,s)]=0);const ce=Math.trunc(ne/2),me=4*ce,fe=v(3);for(let Z=s-2*ce+1;Z<=o-2;Z+=2*ce){let V;P?V=Math.max(s,Z):e?V=1:V=s;const we=Z+me;P&&dn(Ul,me,me,0,1,M,$,S);for(let se=Z;se<=Math.min(Z+2*ce-1,o-2);se++){const Te=Math.max(1,Math.trunc((s-se)/2)+1),ke=Math.min(ce,Math.trunc((o-se-1)/2)),xe=ke+1;if(ke<ce&&se+2*(xe-1)===o-2){const te=se+2*(xe-1);if(te===s-1){eh(2,f,A(te+1,te+1),m,a[c+(2*xe-2)],l[u+(2*xe-2)],a[c+(2*xe-1)],l[u+(2*xe-1)],y,ie(1,xe));let Se=y[ie(1,xe)];const Ie=vn(2,Se,y,ie(2,xe),1);Se=Ie.alpha,y[ie(1,xe)]=Ie.tau}else{let Se=f[A(te+1,te)];y[ie(2,xe)]=f[A(te+2,te)];const Ie=vn(2,Se,y,ie(2,xe),1);Se=Ie.alpha,y[ie(1,xe)]=Ie.tau,f[A(te+1,te)]=Se,f[A(te+2,te)]=0}let oe=y[ie(1,xe)],Re=oe*y[ie(2,xe)];for(let Se=V;Se<=Math.min(o,te+3);Se++){const Ie=f[A(Se,te+1)]+y[ie(2,xe)]*f[A(Se,te+2)];f[A(Se,te+1)]=f[A(Se,te+1)]-Ie*oe,f[A(Se,te+2)]=f[A(Se,te+2)]-Ie*Re}let _e;P?_e=Math.min(we,o):e?_e=r:_e=o,oe=y[ie(1,xe)],Re=oe*y[ie(2,xe)];for(let Se=te+1;Se<=_e;Se++){const Ie=f[A(te+1,Se)]+y[ie(2,xe)]*f[A(te+2,Se)];f[A(te+1,Se)]=f[A(te+1,Se)]-Ie*oe,f[A(te+2,Se)]=f[A(te+2,Se)]-Ie*Re}if(te>=s&&f[A(te+1,te)]!==0){let Se=Math.abs(f[A(te,te)])+Math.abs(f[A(te+1,te+1)]);if(Se===0&&(te>=s+1&&(Se=Se+Math.abs(f[A(te,te-1)])),te>=s+2&&(Se=Se+Math.abs(f[A(te,te-2)])),te>=s+3&&(Se=Se+Math.abs(f[A(te,te-3)])),te<=o-2&&(Se=Se+Math.abs(f[A(te+2,te+1)])),te<=o-3&&(Se=Se+Math.abs(f[A(te+3,te+1)])),te<=o-4&&(Se=Se+Math.abs(f[A(te+4,te+1)]))),Math.abs(f[A(te+1,te)])<=Math.max(K,le*Se)){const Ie=Math.max(Math.abs(f[A(te+1,te)]),Math.abs(f[A(te,te+1)])),Xe=Math.min(Math.abs(f[A(te+1,te)]),Math.abs(f[A(te,te+1)])),Nt=Math.max(Math.abs(f[A(te+1,te+1)]),Math.abs(f[A(te,te)]-f[A(te+1,te+1)])),yt=Math.min(Math.abs(f[A(te+1,te+1)]),Math.abs(f[A(te,te)]-f[A(te+1,te+1)])),fn=Nt+Ie,Ur=yt*(Nt/fn);(Ur===0||Xe*(Ie/fn)<=Math.max(K,le*Ur))&&(f[A(te+1,te)]=0)}}if(P){const Se=te-Z;oe=y[ie(1,xe)],Re=oe*y[ie(2,xe)];for(let Ie=Math.max(1,s-Z);Ie<=me;Ie++){const Xe=M[ge(Ie,Se+1)]+y[ie(2,xe)]*M[ge(Ie,Se+2)];M[ge(Ie,Se+1)]=M[ge(Ie,Se+1)]-Xe*oe,M[ge(Ie,Se+2)]=M[ge(Ie,Se+2)]-Xe*Re}}else if(t){oe=y[ie(1,xe)],Re=oe*y[ie(2,xe)];for(let Se=p;Se<=d;Se++){const Ie=g[G(Se,te+1)]+y[ie(2,xe)]*g[G(Se,te+2)];g[G(Se,te+1)]=g[G(Se,te+1)]-Ie*oe,g[G(Se,te+2)]=g[G(Se,te+2)]-Ie*Re}}}for(let te=ke;te>=Te;te--){const oe=se+2*(te-1);if(oe===s-1){eh(3,f,A(s,s),m,a[c+(2*te-2)],l[u+(2*te-2)],a[c+(2*te-1)],l[u+(2*te-1)],y,ie(1,te));let Ie=y[ie(1,te)];const Xe=vn(3,Ie,y,ie(2,te),1);Ie=Xe.alpha,y[ie(1,te)]=Xe.tau}else{let Ie=y[ie(1,te)],Xe=Ie*y[ie(2,te)],Nt=Ie*y[ie(3,te)],yt=y[ie(3,te)]*f[A(oe+3,oe+2)];f[A(oe+3,oe)]=-yt*Ie,f[A(oe+3,oe+1)]=-yt*Xe,f[A(oe+3,oe+2)]=f[A(oe+3,oe+2)]-yt*Nt;let fn=f[A(oe+1,oe)];y[ie(2,te)]=f[A(oe+2,oe)],y[ie(3,te)]=f[A(oe+3,oe)];const Ur=vn(3,fn,y,ie(2,te),1);if(fn=Ur.alpha,y[ie(1,te)]=Ur.tau,f[A(oe+3,oe)]!==0||f[A(oe+3,oe+1)]!==0||f[A(oe+3,oe+2)]===0)f[A(oe+1,oe)]=fn,f[A(oe+2,oe)]=0,f[A(oe+3,oe)]=0;else{eh(3,f,A(oe+1,oe+1),m,a[c+(2*te-2)],l[u+(2*te-2)],a[c+(2*te-1)],l[u+(2*te-1)],fe,0);let We=fe[0];const Ln=vn(3,We,fe,1,1);We=Ln.alpha,fe[0]=Ln.tau,Ie=fe[0],Xe=Ie*fe[1],Nt=Ie*fe[2],yt=f[A(oe+1,oe)]+fe[1]*f[A(oe+2,oe)],Math.abs(f[A(oe+2,oe)]-yt*Xe)+Math.abs(yt*Nt)>le*(Math.abs(f[A(oe,oe)])+Math.abs(f[A(oe+1,oe+1)])+Math.abs(f[A(oe+2,oe+2)]))?(f[A(oe+1,oe)]=fn,f[A(oe+2,oe)]=0,f[A(oe+3,oe)]=0):(f[A(oe+1,oe)]=f[A(oe+1,oe)]-yt*Ie,f[A(oe+2,oe)]=0,f[A(oe+3,oe)]=0,y[ie(1,te)]=fe[0],y[ie(2,te)]=fe[1],y[ie(3,te)]=fe[2])}}const Re=y[ie(1,te)],_e=Re*y[ie(2,te)],Se=Re*y[ie(3,te)];for(let Ie=V;Ie<=Math.min(o,oe+3);Ie++){const Xe=f[A(Ie,oe+1)]+y[ie(2,te)]*f[A(Ie,oe+2)]+y[ie(3,te)]*f[A(Ie,oe+3)];f[A(Ie,oe+1)]=f[A(Ie,oe+1)]-Xe*Re,f[A(Ie,oe+2)]=f[A(Ie,oe+2)]-Xe*_e,f[A(Ie,oe+3)]=f[A(Ie,oe+3)]-Xe*Se}{const Ie=f[A(oe+1,oe+1)]+y[ie(2,te)]*f[A(oe+2,oe+1)]+y[ie(3,te)]*f[A(oe+3,oe+1)];f[A(oe+1,oe+1)]=f[A(oe+1,oe+1)]-Ie*Re,f[A(oe+2,oe+1)]=f[A(oe+2,oe+1)]-Ie*_e,f[A(oe+3,oe+1)]=f[A(oe+3,oe+1)]-Ie*Se}if(!(oe<s)&&f[A(oe+1,oe)]!==0){let Ie=Math.abs(f[A(oe,oe)])+Math.abs(f[A(oe+1,oe+1)]);if(Ie===0&&(oe>=s+1&&(Ie=Ie+Math.abs(f[A(oe,oe-1)])),oe>=s+2&&(Ie=Ie+Math.abs(f[A(oe,oe-2)])),oe>=s+3&&(Ie=Ie+Math.abs(f[A(oe,oe-3)])),oe<=o-2&&(Ie=Ie+Math.abs(f[A(oe+2,oe+1)])),oe<=o-3&&(Ie=Ie+Math.abs(f[A(oe+3,oe+1)])),oe<=o-4&&(Ie=Ie+Math.abs(f[A(oe+4,oe+1)]))),Math.abs(f[A(oe+1,oe)])<=Math.max(K,le*Ie)){const Xe=Math.max(Math.abs(f[A(oe+1,oe)]),Math.abs(f[A(oe,oe+1)])),Nt=Math.min(Math.abs(f[A(oe+1,oe)]),Math.abs(f[A(oe,oe+1)])),yt=Math.max(Math.abs(f[A(oe+1,oe+1)]),Math.abs(f[A(oe,oe)]-f[A(oe+1,oe+1)])),fn=Math.min(Math.abs(f[A(oe+1,oe+1)]),Math.abs(f[A(oe,oe)]-f[A(oe+1,oe+1)])),Ur=yt+Xe,We=fn*(yt/Ur);(We===0||Nt*(Xe/Ur)<=Math.max(K,le*We))&&(f[A(oe+1,oe)]=0)}}}let he;P?he=Math.min(we,o):e?he=r:he=o;for(let te=ke;te>=Te;te--){const oe=se+2*(te-1),Re=y[ie(1,te)],_e=Re*y[ie(2,te)],Se=Re*y[ie(3,te)];for(let Ie=Math.max(s,se+2*te);Ie<=he;Ie++){const Xe=f[A(oe+1,Ie)]+y[ie(2,te)]*f[A(oe+2,Ie)]+y[ie(3,te)]*f[A(oe+3,Ie)];f[A(oe+1,Ie)]=f[A(oe+1,Ie)]-Xe*Re,f[A(oe+2,Ie)]=f[A(oe+2,Ie)]-Xe*_e,f[A(oe+3,Ie)]=f[A(oe+3,Ie)]-Xe*Se}}if(P)for(let te=ke;te>=Te;te--){const Re=se+2*(te-1)-Z;let _e=Math.max(1,s-Z);_e=Math.max(_e,Re-(se-Z)+1);const Se=Math.min(me,se+2*(ke-1)-Z+5),Ie=y[ie(1,te)],Xe=Ie*y[ie(2,te)],Nt=Ie*y[ie(3,te)];for(let yt=_e;yt<=Se;yt++){const fn=M[ge(yt,Re+1)]+y[ie(2,te)]*M[ge(yt,Re+2)]+y[ie(3,te)]*M[ge(yt,Re+3)];M[ge(yt,Re+1)]=M[ge(yt,Re+1)]-fn*Ie,M[ge(yt,Re+2)]=M[ge(yt,Re+2)]-fn*Xe,M[ge(yt,Re+3)]=M[ge(yt,Re+3)]-fn*Nt}}else if(t)for(let te=ke;te>=Te;te--){const oe=se+2*(te-1),Re=y[ie(1,te)],_e=Re*y[ie(2,te)],Se=Re*y[ie(3,te)];for(let Ie=p;Ie<=d;Ie++){const Xe=g[G(Ie,oe+1)]+y[ie(2,te)]*g[G(Ie,oe+2)]+y[ie(3,te)]*g[G(Ie,oe+3)];g[G(Ie,oe+1)]=g[G(Ie,oe+1)]-Xe*Re,g[G(Ie,oe+2)]=g[G(Ie,oe+2)]-Xe*_e,g[G(Ie,oe+3)]=g[G(Ie,oe+3)]-Xe*Se}}}if(P){let se,Te;e?(se=1,Te=r):(se=s,Te=o);const ke=Math.max(1,s-Z),xe=me-Math.max(0,we-o)-ke+1;for(let Ue=Math.min(we,o)+1;Ue<=Te;Ue+=q){const he=Math.min(q,Te-Ue+1);bt(mt,Ee,xe,he,xe,1,M,ge(ke,ke),S,f,A(Z+ke,Ue),m,0,J,X,z),Qe(Ul,xe,he,J,X,z,f,A(Z+ke,Ue),m)}for(let Ue=se;Ue<=Math.max(s,Z)-1;Ue+=E){const he=Math.min(E,Math.max(s,Z)-Ue);bt(Ee,Ee,he,xe,xe,1,f,A(Ue,Z+ke),m,M,ge(ke,ke),S,0,D,F,R),Qe(Ul,he,xe,D,F,R,f,A(Ue,Z+ke),m)}if(t)for(let Ue=p;Ue<=d;Ue+=E){const he=Math.min(E,d-Ue+1);bt(Ee,Ee,he,xe,xe,1,g,G(Ue,Z+ke),_,M,ge(ke,ke),S,0,D,F,R),Qe(Ul,he,xe,D,F,R,g,G(Ue,Z+ke),_)}}}}const ic=-1;function j1(e,t,n,r,s,o,i,a,c,l,u,f,h,m,p,d,g,w,_,y,b,k,M,$,S,E,D,F,R,q,J,X,z,L){const G=(se,Te)=>a+(se-1)+(Te-1)*c,ie=(se,Te)=>h+(se-1)+(Te-1)*m,ge=(se,Te)=>E+(se-1)+(Te-1)*D,ne=(se,Te)=>k+(se-1)+(Te-1)*M,re=se=>z+(se-1);let le=Math.min(o,s-r+1),K;if(le<=2)K=1;else{Ym(le,1,le-1,S,E,D,X,z,X,z,-1);const se=Math.trunc(X[z]);F1(nt,Ee,le,le,1,le-1,S,E,D,X,z,b,k,M,X,z,-1);const Te=Math.trunc(X[z]);Zo(!0,!0,le,1,le,S,E,D,g,w,_,y,1,le,b,k,M,X,z,-1);const ke=Math.trunc(X[z]);K=Math.max(le+Math.max(se,Te),ke)}if(L===-1){X[z]=K;return}if(p.val=0,d.val=0,X[z]=1,r>s||o<1)return;const P=Bt(er),ce=Bt(ks),me=P*(n/ce);le=Math.min(o,s-r+1);const fe=s-le+1;let Z;if(fe===r?Z=0:Z=i[G(fe,fe-1)],s===fe){g[w+(fe-1)]=i[G(fe,fe)],_[y+(fe-1)]=0,p.val=1,d.val=0,Math.abs(Z)<=Math.max(me,ce*Math.abs(i[G(fe,fe)]))&&(p.val=0,d.val=1,fe>r&&(i[G(fe,fe-1)]=0)),X[z]=1;return}Qe(He,le,le,i,G(fe,fe),c,S,E,D),Js(le-1,i,G(fe+1,fe),c+1,S,ge(2,1),D+1),dn(ic,le,le,0,1,b,k,M);const V=It(12,"DLAQR3","SV",le,1);let we;le>V?we=Zo(!0,!0,le,1,le,S,E,D,g,w+(fe-1),_,y+(fe-1),1,le,b,k,M,X,z,L):we=zl(!0,!0,le,1,le,S,E,D,g,w+(fe-1),_,y+(fe-1),1,le,b,k,M);for(let se=1;se<=le-3;se++)S[ge(se+2,se)]=0,S[ge(se+3,se)]=0;le>2&&(S[ge(le,le-2)]=0);{let se=le,Te=we+1;for(;Te<=se;){let ke;if(se===1?ke=!1:ke=S[ge(se,se-1)]!==0,ke){let xe=Math.abs(S[ge(se,se)])+Math.sqrt(Math.abs(S[ge(se,se-1)]))*Math.sqrt(Math.abs(S[ge(se-1,se)]));if(xe===0&&(xe=Math.abs(Z)),Math.max(Math.abs(Z*b[ne(1,se)]),Math.abs(Z*b[ne(1,se-1)]))<=Math.max(me,ce*xe))se=se-2;else{const Ue={val:se},he={val:Te};Gm(1,le,S,E,D,b,k,M,Ue,he,X,z),Te=he.val+2}}else{let xe=Math.abs(S[ge(se,se)]);if(xe===0&&(xe=Math.abs(Z)),Math.abs(Z*b[ne(1,se)])<=Math.max(me,ce*xe))se=se-1;else{const Ue={val:se},he={val:Te};Gm(1,le,S,E,D,b,k,M,Ue,he,X,z),Te=he.val+1}}}if(se===0&&(Z=0),se<le){let ke=!1,xe=se+1;for(;!ke;){ke=!0;const Ue=xe-1;xe=we+1;let he;for(xe===se||S[ge(xe+1,xe)]===0?he=xe+1:he=xe+2;he<=Ue;){let te;he===xe+1?te=Math.abs(S[ge(xe,xe)]):te=Math.abs(S[ge(xe,xe)])+Math.sqrt(Math.abs(S[ge(xe+1,xe)]))*Math.sqrt(Math.abs(S[ge(xe,xe+1)]));let oe;if(he===Ue||S[ge(he+1,he)]===0?oe=Math.abs(S[ge(he,he)]):oe=Math.abs(S[ge(he,he)])+Math.sqrt(Math.abs(S[ge(he+1,he)]))*Math.sqrt(Math.abs(S[ge(he,he+1)])),te>=oe)xe=he;else{ke=!1;const Re={val:xe},_e={val:he};Gm(1,le,S,E,D,b,k,M,Re,_e,X,z)===0?xe=_e.val:xe=he}xe===Ue||S[ge(xe+1,xe)]===0?he=xe+1:he=xe+2}}}{let ke=le;for(;ke>=we+1;)if(ke===we+1)g[w+(fe+ke-2)]=S[ge(ke,ke)],_[y+(fe+ke-2)]=0,ke=ke-1;else if(S[ge(ke,ke-1)]===0)g[w+(fe+ke-2)]=S[ge(ke,ke)],_[y+(fe+ke-2)]=0,ke=ke-1;else{const xe=S[ge(ke-1,ke-1)],Ue=S[ge(ke,ke-1)],he=S[ge(ke-1,ke)],te=S[ge(ke,ke)],oe=Ki(xe,he,Ue,te);g[w+(fe+ke-3)]=oe.rt1r,_[y+(fe+ke-3)]=oe.rt1i,g[w+(fe+ke-2)]=oe.rt2r,_[y+(fe+ke-2)]=oe.rt2i,ke=ke-2}}if(se<le||Z===0){if(se>1&&Z!==0){Js(se,b,k,M,X,z,1);let xe=X[z];const Ue=vn(se,xe,X,z+1,1);xe=Ue.alpha;const he=Ue.tau;dn(ot,le-2,le-2,0,0,S,ge(3,1),D),Tr($t,se,le,X,z,1,he,S,E,D,X,re(le+1)),Tr(nt,se,se,X,z,1,he,S,E,D,X,re(le+1)),Tr(nt,le,se,X,z,1,he,b,k,M,X,re(le+1)),Ym(le,1,se,S,E,D,X,z,X,re(le+1),L-le)}fe>1&&(i[G(fe,fe-1)]=Z*b[ne(1,1)]),Qe(He,le,le,S,E,D,i,G(fe,fe),c),Js(le-1,S,ge(2,1),D+1,i,G(fe+1,fe),c+1),se>1&&Z!==0&&F1(nt,Ee,le,se,1,se,S,E,D,X,z,b,k,M,X,re(le+1),L-le);let ke;e?ke=1:ke=r;for(let xe=ke;xe<=fe-1;xe+=F){const Ue=Math.min(F,fe-xe);bt(Ee,Ee,Ue,le,le,1,i,G(xe,fe),c,b,k,M,0,R,q,J),Qe(ic,Ue,le,R,q,J,i,G(xe,fe),c)}if(e)for(let xe=s+1;xe<=n;xe+=$){const Ue=Math.min($,n-xe+1);bt(mt,Ee,le,Ue,le,1,b,k,M,i,G(fe,xe),c,0,S,E,D),Qe(ic,le,Ue,S,E,D,i,G(fe,xe),c)}if(t)for(let xe=l;xe<=u;xe+=F){const Ue=Math.min(F,u-xe+1);bt(Ee,Ee,Ue,le,le,1,f,ie(xe,fe),m,b,k,M,0,R,q,J),Qe(ic,Ue,le,R,q,J,f,ie(xe,fe),m)}}d.val=le-se,p.val=se-we}X[z]=K}function Zo(e,t,n,r,s,o,i,a,c,l,u,f,h,m,p,d,g,w,_,y){const F=(z,L)=>i+(z-1)+(L-1)*a,R=z=>l+(z-1),q=z=>f+(z-1);let J=0,X=1;if(n===0)return w[_]=1,0;if(n<=15)X=1,y!==-1&&(J=zl(e,t,n,r,s,o,i,a,c,l,u,f,h,m,p,d,g));else{J=0;let z;e?z="S":z="E",t?z+="V":z+="N";let L=It(13,"DLAQR0",z,n,r);L=Math.max(2,L),L=Math.min(s-r+1,Math.trunc((n-1)/3),L);let B=It(15,"DLAQR0",z,n,r);B=Math.min(B,Math.trunc((n-3)/6),s-r),B=Math.max(2,B-B%2);const A={val:0},G={val:0};if(j1(e,t,n,r,s,L+1,o,i,a,h,m,p,d,g,A,G,c,l,u,f,o,i,a,n,o,i,a,n,o,i,a,w,_,-1),X=Math.max(Math.trunc(3*B/2),Math.trunc(w[_])),y===-1)return w[_]=X,0;let ie=It(12,"DLAQR0",z,n,r);ie=Math.max(15,ie);let ge=It(14,"DLAQR0",z,n,r);ge=Math.max(0,ge);let ne=It(16,"DLAQR0",z,n,r);ne=Math.max(0,ne),ne=Math.min(2,ne);const re=Math.min(Math.trunc((n-1)/3),Math.trunc(y/2));let le=re,K=Math.min(Math.trunc((n-3)/6),Math.trunc(2*y/3));K=K-K%2;let P=1;const ce=Math.max(30,12)*Math.max(10,s-r+1);let me=s,fe=-1;const Z=v(1);for(let V=1;V<=ce;V++){if(me<r)return w[_]=X,J;let we;{let Se;for(Se=me;Se>=r+1&&o[F(Se,Se-1)]!==0;Se--);Se<r+1&&(Se=r),we=Se}const se=me-we+1,Te=Math.min(se,re);if(P<5?le=Math.min(Te,L):le=Math.min(Te,2*le),le<re)if(le>=se-1)le=se;else{const Se=me-le+1;Math.abs(o[F(Se,Se-1)])>Math.abs(o[F(Se-1,Se-2)])&&(le=le+1)}P<5?fe=-1:(fe>=0||le>=Te)&&(fe=fe+1,le-fe<2&&(fe=0),le=le-fe);const ke=n-le+1,xe=le+1,Ue=n-le-1-xe+1,he=le+2,te=n-le-he+1,oe={val:0},Re={val:0};j1(e,t,n,we,me,le,o,i,a,h,m,p,d,g,oe,Re,c,l,u,f,o,F(ke,1),a,Ue,o,F(ke,xe),a,te,o,F(he,1),a,w,_,y),me=me-Re.val;let _e=me-oe.val+1;if(Re.val===0||100*Re.val<=le*ge&&me-we+1>Math.min(ie,re)){let Se=Math.min(K,B,Math.max(2,me-we));if(Se=Se-Se%2,P%6===0){_e=me-Se+1;for(let We=me;We>=Math.max(_e+1,we+2);We-=2){const Ln=Math.abs(o[F(We,We-1)])+Math.abs(o[F(We-1,We-2)]),En=.75*Ln+o[F(We,We)],rs=Ln,Cl=-.4375*Ln,hr=Ki(En,rs,Cl,En);c[R(We-1)]=hr.rt1r,u[q(We-1)]=hr.rt1i,c[R(We)]=hr.rt2r,u[q(We)]=hr.rt2i}_e===we&&(c[R(_e+1)]=o[F(_e+1,_e+1)],u[q(_e+1)]=0,c[R(_e)]=c[R(_e+1)],u[q(_e)]=u[q(_e+1)])}else{if(me-_e+1<=Math.trunc(Se/2)){_e=me-Se+1;const We=n-Se+1;Qe(ic,Se,Se,o,F(_e,_e),a,o,F(We,1),a);let Ln;if(Se>ie?Ln=Zo(!1,!1,Se,1,Se,o,F(We,1),a,c,R(_e),u,q(_e),1,1,Z,0,1,w,_,y):Ln=zl(!1,!1,Se,1,Se,o,F(We,1),a,c,R(_e),u,q(_e),1,1,Z,0,1),_e=_e+Ln,_e>=me){const En=o[F(me-1,me-1)],rs=o[F(me,me-1)],Cl=o[F(me-1,me)],Lm=o[F(me,me)],hr=Ki(En,Cl,rs,Lm);c[R(me-1)]=hr.rt1r,u[q(me-1)]=hr.rt1i,c[R(me)]=hr.rt2r,u[q(me)]=hr.rt2i,_e=me-1}}if(me-_e+1>Se){let We=!1;for(let Ln=me;Ln>=_e+1&&!We;Ln--){We=!0;for(let En=_e;En<=Ln-1;En++)if(Math.abs(c[R(En)])+Math.abs(u[q(En)])<Math.abs(c[R(En+1)])+Math.abs(u[q(En+1)])){We=!1;let rs;rs=c[R(En)],c[R(En)]=c[R(En+1)],c[R(En+1)]=rs,rs=u[q(En)],u[q(En)]=u[q(En+1)],u[q(En+1)]=rs}}}for(let We=me;We>=_e+2;We-=2)if(u[q(We)]!==-u[q(We-1)]){let Ln;Ln=c[R(We)],c[R(We)]=c[R(We-1)],c[R(We-1)]=c[R(We-2)],c[R(We-2)]=Ln,Ln=u[q(We)],u[q(We)]=u[q(We-1)],u[q(We-1)]=u[q(We-2)],u[q(We-2)]=Ln}}me-_e+1===2&&u[q(me)]===0&&(Math.abs(c[R(me)]-o[F(me,me)])<Math.abs(c[R(me-1)]-o[F(me,me)])?c[R(me-1)]=c[R(me)]:c[R(me)]=c[R(me-1)]),Se=Math.min(Se,me-_e+1),Se=Se-Se%2,_e=me-Se+1;const Ie=2*Se,Xe=n-Ie+1,Nt=Ie+1,yt=n-Ie+1-4-(Ie+1)+1,fn=Ie+4,Ur=n-Ie-fn+1;WM(e,t,ne,n,we,me,Se,c,R(_e),u,q(_e),o,i,a,h,m,p,d,g,w,_,3,o,F(Xe,1),a,Ur,o,F(fn,1),a,yt,o,F(Xe,Nt),a)}Re.val>0?P=1:P=P+1}J=me}return w[_]=X,J}const Wl=-1;function Zi(e,t,n,r,s,o,i,a,c,l,u,f,h,m,p,d,g,w){const M=(R,q)=>i+(R-1)+(q-1)*a,$=e===1,S=t===1,E=S||t===2,D=w===-1;d[g]=Math.max(1,n);let F=0;if(e!==0&&e!==1?F=-1:t!==0&&t!==1&&t!==2?F=-2:n<0?F=-3:r<1||r>Math.max(1,n)?F=-4:s<Math.min(r,n)||s>n?F=-5:a<Math.max(1,n)?F=-7:p<1||E&&p<Math.max(1,n)?F=-11:w<Math.max(1,n)&&!D&&(F=-13),F!==0)return F;if(n===0)return 0;if(D)return Zo($,E,n,r,s,o,i,a,c,l,u,f,r,s,h,m,p,d,g,w),d[g]=Math.max(Math.max(1,n),d[g]),0;{for(let q=1;q<=r-1;q++)c[l+(q-1)]=o[M(q,q)],u[f+(q-1)]=0;for(let q=s+1;q<=n;q++)c[l+(q-1)]=o[M(q,q)],u[f+(q-1)]=0;if(S&&dn(Wl,n,n,0,1,h,m,p),r===s)return c[l+(r-1)]=o[M(r,r)],u[f+(r-1)]=0,0;let R=It(12,"DHSEQR","EN",n,r);if(R=Math.max(15,R),n>R)F=Zo($,E,n,r,s,o,i,a,c,l,u,f,r,s,h,m,p,d,g,w);else if(F=zl($,E,n,r,s,o,i,a,c,l,u,f,r,s,h,m,p),F>0){const q=F;if(n>=49)F=Zo($,E,n,r,q,o,i,a,c,l,u,f,r,s,h,m,p,d,g,w);else{const J=v(2401),X=v(49);Qe(Wl,n,n,o,i,a,J,0,49),J[n+(n-1)*49]=0,dn(Wl,49,49-n,0,0,J,n*49,49),F=Zo($,E,49,r,q,J,0,49,c,l,u,f,r,s,h,m,p,X,0,49),($||F!==0)&&Qe(Wl,n,n,J,0,49,o,i,a)}}($||F!==0)&&n>2&&dn(ot,n-2,n-2,0,0,o,M(3,1),a),d[g]=Math.max(Math.max(1,n),d[g])}return F}function R1(e,t,n,r){let a=e,c=t,l=n,u=r;const f=Math.max(Math.abs(e),Math.abs(t)),h=Math.max(Math.abs(n),Math.abs(r));let m=1;const p=Bt(Bm),d=Bt(er),g=Bt(Wi),w=2/(g*g);f>=.5*p&&(a=.5*a,c=.5*c,m=2*m),h>=.5*p&&(l=.5*l,u=.5*u,m=.5*m),f<=d*2/g&&(a=a*w,c=c*w,m=m/w),h<=d*2/g&&(l=l*w,u=u*w,m=m*w);let _,y;return Math.abs(u)<=Math.abs(l)?{p:_,q:y}=L1(a,c,l,u):({p:_,q:y}=L1(c,a,u,l),y=-y),_=_*m,y=y*m,{p:_,q:y}}function L1(e,t,n,r){const o=r/n,i=1/(n+r*o),a=D1(e,t,n,r,o,i),c=D1(t,-e,n,r,o,i);return{p:a,q:c}}function D1(e,t,n,r,s,o){if(s!==0){const a=t*s;return a!==0?(e+a)*o:e*o+t*o*s}else return(e+r*(t/n))*o}const T1=[!1,!1,!0,!0],P1=[!1,!0,!1,!0],Zs=[[1,2,3,4],[2,1,4,3],[3,4,1,2],[4,3,2,1]];function Co(e,t,n,r,s,o,i,a,c,l,u,f,h,m,p,d,g,w){const k=(X,z)=>o[i+(X-1)+(z-1)*a],M=(X,z)=>u[f+(X-1)+(z-1)*h],$=(X,z,L)=>{d[g+(X-1)+(z-1)*w]=L},S=(X,z)=>d[g+(X-1)+(z-1)*w],E=2*Bt(er),D=1/E,F=Math.max(r,E);let R=0,q=1,J;if(t===1)if(n===1){let X=s*k(1,1)-m*c,z=Math.abs(X);z<F&&(X=F,z=F,R=1);const L=Math.abs(M(1,1));z<1&&L>1&&L>D*z&&(q=1/L),$(1,1,M(1,1)*q/X),J=Math.abs(S(1,1))}else{let X=s*k(1,1)-m*c,z=-p*c,L=Math.abs(X)+Math.abs(z);L<F&&(X=F,z=0,L=F,R=1);const B=Math.abs(M(1,1))+Math.abs(M(1,2));L<1&&B>1&&B>D*L&&(q=1/B);const A=R1(q*M(1,1),q*M(1,2),X,z);$(1,1,A.p),$(1,2,A.q),J=Math.abs(S(1,1))+Math.abs(S(1,2))}else{const X=v(4),z=v(4);if(X[0]=s*k(1,1)-m*c,X[3]=s*k(2,2)-m*l,e?(X[2]=s*k(2,1),X[1]=s*k(1,2)):(X[1]=s*k(2,1),X[2]=s*k(1,2)),n===1){let L=0,B=0;for(let Z=0;Z<4;Z++)Math.abs(X[Z])>L&&(L=Math.abs(X[Z]),B=Z+1);if(L<F){const Z=Math.max(Math.abs(M(1,1)),Math.abs(M(2,1)));F<1&&Z>1&&Z>D*F&&(q=1/Z);const V=q/F;return $(1,1,V*M(1,1)),$(2,1,V*M(2,1)),J=V*Z,R=1,{scale:q,xnorm:J,info:R}}const A=X[B-1],G=X[Zs[B-1][1]-1],ie=X[Zs[B-1][2]-1],ge=X[Zs[B-1][3]-1],ne=1/A,re=ne*G;let le=ge-ie*re;Math.abs(le)<F&&(le=F,R=1);let K,P;P1[B-1]?(K=M(2,1),P=M(1,1)):(K=M(1,1),P=M(2,1)),P=P-re*K;const ce=Math.max(Math.abs(K*(le*ne)),Math.abs(P));ce>1&&Math.abs(le)<1&&ce>=D*Math.abs(le)&&(q=1/ce);const me=P*q/le,fe=q*K*ne-me*(ne*ie);if(T1[B-1]?($(1,1,me),$(2,1,fe)):($(1,1,fe),$(2,1,me)),J=Math.max(Math.abs(fe),Math.abs(me)),J>1&&L>1&&J>D/L){const Z=L/D;$(1,1,Z*S(1,1)),$(2,1,Z*S(2,1)),J=Z*J,q=Z*q}}else{z[0]=-p*c,z[1]=0,z[2]=0,z[3]=-p*l;let L=0,B=0;for(let Xe=0;Xe<4;Xe++)Math.abs(X[Xe])+Math.abs(z[Xe])>L&&(L=Math.abs(X[Xe])+Math.abs(z[Xe]),B=Xe+1);if(L<F){const Xe=Math.max(Math.abs(M(1,1))+Math.abs(M(1,2)),Math.abs(M(2,1))+Math.abs(M(2,2)));F<1&&Xe>1&&Xe>D*F&&(q=1/Xe);const Nt=q/F;return $(1,1,Nt*M(1,1)),$(2,1,Nt*M(2,1)),$(1,2,Nt*M(1,2)),$(2,2,Nt*M(2,2)),J=Nt*Xe,R=1,{scale:q,xnorm:J,info:R}}const A=X[B-1],G=z[B-1],ie=X[Zs[B-1][1]-1],ge=z[Zs[B-1][1]-1],ne=X[Zs[B-1][2]-1],re=z[Zs[B-1][2]-1],le=X[Zs[B-1][3]-1],K=z[Zs[B-1][3]-1];let P,ce,me,fe,Z,V,we,se;if(B===1||B===4){if(Math.abs(A)>Math.abs(G)){const Xe=G/A;P=1/(A*(1+Xe*Xe)),ce=-Xe*P}else{const Xe=A/G;ce=-1/(G*(1+Xe*Xe)),P=-Xe*ce}me=ie*P,fe=ie*ce,Z=ne*P,V=ne*ce,we=le-ne*me,se=K-ne*fe}else P=1/A,ce=0,me=ie*P,fe=ge*P,Z=ne*P,V=re*P,we=le-ne*me+re*fe,se=-ne*fe-re*me;let Te=Math.abs(we)+Math.abs(se);Te<F&&(we=F,se=0,R=1);let ke,xe,Ue,he;P1[B-1]?(xe=M(1,1),ke=M(2,1),he=M(1,2),Ue=M(2,2)):(ke=M(1,1),xe=M(2,1),Ue=M(1,2),he=M(2,2)),xe=xe-me*ke+fe*Ue,he=he-fe*ke-me*Ue,Te=Math.abs(we)+Math.abs(se);const te=Math.max((Math.abs(ke)+Math.abs(Ue))*(Te*(Math.abs(P)+Math.abs(ce))),Math.abs(xe)+Math.abs(he));te>1&&Te<1&&te>=D*Te&&(q=1/te,ke=q*ke,Ue=q*Ue,xe=q*xe,he=q*he);const oe=R1(xe,he,we,se),Re=oe.p,_e=oe.q,Se=P*ke-ce*Ue-Z*Re+V*_e,Ie=ce*ke+P*Ue-V*Re-Z*_e;if(T1[B-1]?($(1,1,Re),$(2,1,Se),$(1,2,_e),$(2,2,Ie)):($(1,1,Se),$(2,1,Re),$(1,2,Ie),$(2,2,_e)),J=Math.max(Math.abs(Se)+Math.abs(Ie),Math.abs(Re)+Math.abs(_e)),J>1&&L>1&&J>D/L){const Xe=L/D;$(1,1,Xe*S(1,1)),$(2,1,Xe*S(2,1)),$(1,2,Xe*S(1,2)),$(2,2,Xe*S(2,2)),J=Xe*J,q=Xe*q}}}return{scale:q,xnorm:J,info:R}}function os(e,t,n,r,s,o,i){let a=0;if(e<=0)return 0;if(r===1&&i===1){const c=e%5;if(c!==0){for(let u=1;u<=c;u++)a+=t[n+(u-1)]*s[o+(u-1)];if(e<5)return a}const l=c+1;for(let u=l;u<=e;u+=5)a+=t[n+(u-1)]*s[o+(u-1)]+t[n+u]*s[o+u]+t[n+(u+1)]*s[o+(u+1)]+t[n+(u+2)]*s[o+(u+2)]+t[n+(u+3)]*s[o+(u+3)]}else{let c=1,l=1;r<0&&(c=(-e+1)*r+1),i<0&&(l=(-e+1)*i+1);for(let u=1;u<=e;u++)a+=t[n+(c-1)]*s[o+(l-1)],c+=r,l+=i}return a}const XM=2,HM=8,th=128;function nh(e,t,n,r,s,o,i,a,c,l,u,f,h,m,p,d,g){const y=e===XM,b=e===nt||y,k=e===$t||y;let M=0,$=th;const S=Math.max(1,r+2*r*$);p[d]=S;const E=g===-1;!b&&!k?M=-1:r<0?M=-4:i<Math.max(1,r)?M=-6:l<1||k&&l<r?M=-8:h<1||b&&h<r?M=-10:g<Math.max(1,3*r)&&!E&&(M=-14);let D=0;if(M===0&&(D=r,m<D&&(M=-11)),M!==0)return{m:0,info:M};if(E)return{m:D,info:0};if(r===0)return{m:D,info:0};g>=r+2*r*HM?($=Math.floor((g-r)/(2*r)),$=Math.min($,th),dn(-1,r,1+2*$,0,0,p,d,r)):$=1;const F=Bt(er),R=Bt(ks),q=F*(r/R),J=(1-R)/q;p[d]=0;for(let L=2;L<=r;L++){p[d+(L-1)]=0;for(let B=1;B<=L-1;B++)p[d+(L-1)]+=Math.abs(s[o+(B-1)+(L-1)*i])}const X=v(4),z=new Int32Array(th);if(b){let L=2;$>2&&(L=$);let B=0;for(let A=r;A>=1;A--){if(B===-1){B=1;continue}else A===1||s[o+(A-1)+(A-2)*i]===0?B=0:B=-1;const G=s[o+(A-1)+(A-1)*i];let ie=0;B!==0&&(ie=Math.sqrt(Math.abs(s[o+(A-1)+(A-2)*i]))*Math.sqrt(Math.abs(s[o+(A-2)+(A-1)*i])));const ge=Math.max(R*(Math.abs(G)+Math.abs(ie)),q);if(B===0){p[d+(A-1)+L*r]=1;for(let re=1;re<=A-1;re++)p[d+(re-1)+L*r]=-s[o+(re-1)+(A-1)*i];let ne=A-1;for(let re=A-1;re>=1;re--){if(re>ne)continue;let le=re;const K=re;if(ne=re-1,re>1&&s[o+(re-1)+(re-2)*i]!==0&&(le=re-1,ne=re-2),le===K){const P=Co(!1,1,1,ge,1,s,o+(re-1)+(re-1)*i,i,1,1,p,d+(re-1)+L*r,r,G,0,X,0,2);let ce=P.scale;const me=P.xnorm;me>1&&p[d+(re-1)]>J/me&&(X[0]=X[0]/me,ce=ce/me),ce!==1&&st(A,ce,p,d+L*r,1),p[d+(re-1)+L*r]=X[0],Er(re-1,-X[0],s,o+(re-1)*i,1,p,d+L*r,1)}else{const P=Co(!1,2,1,ge,1,s,o+(re-2)+(re-2)*i,i,1,1,p,d+(re-2)+L*r,r,G,0,X,0,2);let ce=P.scale;const me=P.xnorm;me>1&&Math.max(p[d+(re-2)],p[d+(re-1)])>J/me&&(X[0]=X[0]/me,X[1]=X[1]/me,ce=ce/me),ce!==1&&st(A,ce,p,d+L*r,1),p[d+(re-2)+L*r]=X[0],p[d+(re-1)+L*r]=X[1],Er(re-2,-X[0],s,o+(re-2)*i,1,p,d+L*r,1),Er(re-2,-X[1],s,o+(re-1)*i,1,p,d+L*r,1)}}if($===1){A>1&&ht(Ee,r,A-1,1,u,f,h,p,d+L*r,1,p[d+(A-1)+L*r],u,f+(A-1)*h,1);const re=Hs(r,u,f+(A-1)*h,1),le=1/Math.abs(u[f+(re-1)+(A-1)*h]);st(r,le,u,f+(A-1)*h,1)}else{for(let re=A+1;re<=r;re++)p[d+(re-1)+L*r]=0;z[L-1]=B}}else{Math.abs(s[o+(A-2)+(A-1)*i])>=Math.abs(s[o+(A-1)+(A-2)*i])?(p[d+(A-2)+(L-1)*r]=1,p[d+(A-1)+L*r]=ie/s[o+(A-2)+(A-1)*i]):(p[d+(A-2)+(L-1)*r]=-ie/s[o+(A-1)+(A-2)*i],p[d+(A-1)+L*r]=1),p[d+(A-1)+(L-1)*r]=0,p[d+(A-2)+L*r]=0;for(let re=1;re<=A-2;re++)p[d+(re-1)+(L-1)*r]=-p[d+(A-2)+(L-1)*r]*s[o+(re-1)+(A-2)*i],p[d+(re-1)+L*r]=-p[d+(A-1)+L*r]*s[o+(re-1)+(A-1)*i];let ne=A-2;for(let re=A-2;re>=1;re--){if(re>ne)continue;let le=re;const K=re;if(ne=re-1,re>1&&s[o+(re-1)+(re-2)*i]!==0&&(le=re-1,ne=re-2),le===K){const P=Co(!1,1,2,ge,1,s,o+(re-1)+(re-1)*i,i,1,1,p,d+(re-1)+(L-1)*r,r,G,ie,X,0,2);let ce=P.scale;const me=P.xnorm;me>1&&p[d+(re-1)]>J/me&&(X[0]=X[0]/me,X[2]=X[2]/me,ce=ce/me),ce!==1&&(st(A,ce,p,d+(L-1)*r,1),st(A,ce,p,d+L*r,1)),p[d+(re-1)+(L-1)*r]=X[0],p[d+(re-1)+L*r]=X[2],Er(re-1,-X[0],s,o+(re-1)*i,1,p,d+(L-1)*r,1),Er(re-1,-X[2],s,o+(re-1)*i,1,p,d+L*r,1)}else{const P=Co(!1,2,2,ge,1,s,o+(re-2)+(re-2)*i,i,1,1,p,d+(re-2)+(L-1)*r,r,G,ie,X,0,2);let ce=P.scale;const me=P.xnorm;if(me>1&&Math.max(p[d+(re-2)],p[d+(re-1)])>J/me){const Z=1/me;X[0]=X[0]*Z,X[2]=X[2]*Z,X[1]=X[1]*Z,X[3]=X[3]*Z,ce=ce*Z}ce!==1&&(st(A,ce,p,d+(L-1)*r,1),st(A,ce,p,d+L*r,1)),p[d+(re-2)+(L-1)*r]=X[0],p[d+(re-1)+(L-1)*r]=X[1],p[d+(re-2)+L*r]=X[2],p[d+(re-1)+L*r]=X[3],Er(re-2,-X[0],s,o+(re-2)*i,1,p,d+(L-1)*r,1),Er(re-2,-X[1],s,o+(re-1)*i,1,p,d+(L-1)*r,1),Er(re-2,-X[2],s,o+(re-2)*i,1,p,d+L*r,1),Er(re-2,-X[3],s,o+(re-1)*i,1,p,d+L*r,1)}}if($===1){A>2?(ht(Ee,r,A-2,1,u,f,h,p,d+(L-1)*r,1,p[d+(A-2)+(L-1)*r],u,f+(A-2)*h,1),ht(Ee,r,A-2,1,u,f,h,p,d+L*r,1,p[d+(A-1)+L*r],u,f+(A-1)*h,1)):(st(r,p[d+(A-2)+(L-1)*r],u,f+(A-2)*h,1),st(r,p[d+(A-1)+L*r],u,f+(A-1)*h,1));let re=0;for(let K=1;K<=r;K++)re=Math.max(re,Math.abs(u[f+(K-1)+(A-2)*h])+Math.abs(u[f+(K-1)+(A-1)*h]));const le=1/re;st(r,le,u,f+(A-2)*h,1),st(r,le,u,f+(A-1)*h,1)}else{for(let re=A+1;re<=r;re++)p[d+(re-1)+(L-1)*r]=0,p[d+(re-1)+L*r]=0;z[L-2]=-B,z[L-1]=B,L=L-1}}if($>1){let ne;if(B===0?ne=A:ne=A-1,L<=2||ne===1){bt(Ee,Ee,r,$-L+1,ne+$-L,1,u,f,h,p,d+L*r,r,0,p,d+($+L)*r,r);let re=1;for(let le=L;le<=$;le++){if(z[le-1]===0){const K=Hs(r,p,d+($+le)*r,1);re=1/Math.abs(p[d+(K-1)+($+le)*r])}else if(z[le-1]===1){let K=0;for(let P=1;P<=r;P++)K=Math.max(K,Math.abs(p[d+(P-1)+($+le)*r])+Math.abs(p[d+(P-1)+($+le+1)*r]));re=1/K}st(r,re,p,d+($+le)*r,1)}Qe(-1,r,$-L+1,p,d+($+L)*r,r,u,f+(ne-1)*h,h),L=$}else L=L-1}}}if(k){let L=1,B=0;for(let A=1;A<=r;A++){if(B===1){B=-1;continue}else A===r||s[o+A+(A-1)*i]===0?B=0:B=1;const G=s[o+(A-1)+(A-1)*i];let ie=0;B!==0&&(ie=Math.sqrt(Math.abs(s[o+(A-1)+A*i]))*Math.sqrt(Math.abs(s[o+A+(A-1)*i])));const ge=Math.max(R*(Math.abs(G)+Math.abs(ie)),q);if(B===0){p[d+(A-1)+L*r]=1;for(let K=A+1;K<=r;K++)p[d+(K-1)+L*r]=-s[o+(A-1)+(K-1)*i];let ne=1,re=J,le=A+1;for(let K=A+1;K<=r;K++){if(K<le)continue;const P=K;let ce=K;if(le=K+1,K<r&&s[o+K+(K-1)*i]!==0&&(ce=K+1,le=K+2),P===ce){if(p[d+(K-1)]>re){const Z=1/ne;st(r-A+1,Z,p,d+(A-1)+L*r,1),ne=1,re=J}p[d+(K-1)+L*r]-=os(K-A-1,s,o+A+(K-1)*i,1,p,d+A+L*r,1);const fe=Co(!1,1,1,ge,1,s,o+(K-1)+(K-1)*i,i,1,1,p,d+(K-1)+L*r,r,G,0,X,0,2).scale;fe!==1&&st(r-A+1,fe,p,d+(A-1)+L*r,1),p[d+(K-1)+L*r]=X[0],ne=Math.max(Math.abs(p[d+(K-1)+L*r]),ne),re=J/ne}else{if(Math.max(p[d+(K-1)],p[d+K])>re){const V=1/ne;st(r-A+1,V,p,d+(A-1)+L*r,1),ne=1,re=J}p[d+(K-1)+L*r]-=os(K-A-1,s,o+A+(K-1)*i,1,p,d+A+L*r,1),p[d+K+L*r]-=os(K-A-1,s,o+A+K*i,1,p,d+A+L*r,1);const Z=Co(!0,2,1,ge,1,s,o+(K-1)+(K-1)*i,i,1,1,p,d+(K-1)+L*r,r,G,0,X,0,2).scale;Z!==1&&st(r-A+1,Z,p,d+(A-1)+L*r,1),p[d+(K-1)+L*r]=X[0],p[d+K+L*r]=X[1],ne=Math.max(Math.abs(p[d+(K-1)+L*r]),Math.abs(p[d+K+L*r]),ne),re=J/ne}}if($===1){A<r&&ht(Ee,r,r-A,1,a,c+A*l,l,p,d+A+L*r,1,p[d+(A-1)+L*r],a,c+(A-1)*l,1);const K=Hs(r,a,c+(A-1)*l,1),P=1/Math.abs(a[c+(K-1)+(A-1)*l]);st(r,P,a,c+(A-1)*l,1)}else{for(let K=1;K<=A-1;K++)p[d+(K-1)+L*r]=0;z[L-1]=B}}else{Math.abs(s[o+(A-1)+A*i])>=Math.abs(s[o+A+(A-1)*i])?(p[d+(A-1)+L*r]=ie/s[o+(A-1)+A*i],p[d+A+(L+1)*r]=1):(p[d+(A-1)+L*r]=1,p[d+A+(L+1)*r]=-ie/s[o+A+(A-1)*i]),p[d+A+L*r]=0,p[d+(A-1)+(L+1)*r]=0;for(let K=A+2;K<=r;K++)p[d+(K-1)+L*r]=-p[d+(A-1)+L*r]*s[o+(A-1)+(K-1)*i],p[d+(K-1)+(L+1)*r]=-p[d+A+(L+1)*r]*s[o+A+(K-1)*i];let ne=1,re=J,le=A+2;for(let K=A+2;K<=r;K++){if(K<le)continue;const P=K;let ce=K;if(le=K+1,K<r&&s[o+K+(K-1)*i]!==0&&(ce=K+1,le=K+2),P===ce){if(p[d+(K-1)]>re){const Z=1/ne;st(r-A+1,Z,p,d+(A-1)+L*r,1),st(r-A+1,Z,p,d+(A-1)+(L+1)*r,1),ne=1,re=J}p[d+(K-1)+L*r]-=os(K-A-2,s,o+(A+1)+(K-1)*i,1,p,d+(A+1)+L*r,1),p[d+(K-1)+(L+1)*r]-=os(K-A-2,s,o+(A+1)+(K-1)*i,1,p,d+(A+1)+(L+1)*r,1);const fe=Co(!1,1,2,ge,1,s,o+(K-1)+(K-1)*i,i,1,1,p,d+(K-1)+L*r,r,G,-ie,X,0,2).scale;fe!==1&&(st(r-A+1,fe,p,d+(A-1)+L*r,1),st(r-A+1,fe,p,d+(A-1)+(L+1)*r,1)),p[d+(K-1)+L*r]=X[0],p[d+(K-1)+(L+1)*r]=X[2],ne=Math.max(Math.abs(p[d+(K-1)+L*r]),Math.abs(p[d+(K-1)+(L+1)*r]),ne),re=J/ne}else{if(Math.max(p[d+(K-1)],p[d+K])>re){const V=1/ne;st(r-A+1,V,p,d+(A-1)+L*r,1),st(r-A+1,V,p,d+(A-1)+(L+1)*r,1),ne=1,re=J}p[d+(K-1)+L*r]-=os(K-A-2,s,o+(A+1)+(K-1)*i,1,p,d+(A+1)+L*r,1),p[d+(K-1)+(L+1)*r]-=os(K-A-2,s,o+(A+1)+(K-1)*i,1,p,d+(A+1)+(L+1)*r,1),p[d+K+L*r]-=os(K-A-2,s,o+(A+1)+K*i,1,p,d+(A+1)+L*r,1),p[d+K+(L+1)*r]-=os(K-A-2,s,o+(A+1)+K*i,1,p,d+(A+1)+(L+1)*r,1);const Z=Co(!0,2,2,ge,1,s,o+(K-1)+(K-1)*i,i,1,1,p,d+(K-1)+L*r,r,G,-ie,X,0,2).scale;Z!==1&&(st(r-A+1,Z,p,d+(A-1)+L*r,1),st(r-A+1,Z,p,d+(A-1)+(L+1)*r,1)),p[d+(K-1)+L*r]=X[0],p[d+(K-1)+(L+1)*r]=X[2],p[d+K+L*r]=X[1],p[d+K+(L+1)*r]=X[3],ne=Math.max(Math.abs(X[0]),Math.abs(X[2]),Math.abs(X[1]),Math.abs(X[3]),ne),re=J/ne}}if($===1){A<r-1?(ht(Ee,r,r-A-1,1,a,c+(A+1)*l,l,p,d+(A+1)+L*r,1,p[d+(A-1)+L*r],a,c+(A-1)*l,1),ht(Ee,r,r-A-1,1,a,c+(A+1)*l,l,p,d+(A+1)+(L+1)*r,1,p[d+A+(L+1)*r],a,c+A*l,1)):(st(r,p[d+(A-1)+L*r],a,c+(A-1)*l,1),st(r,p[d+A+(L+1)*r],a,c+A*l,1));let K=0;for(let ce=1;ce<=r;ce++)K=Math.max(K,Math.abs(a[c+(ce-1)+(A-1)*l])+Math.abs(a[c+(ce-1)+A*l]));const P=1/K;st(r,P,a,c+(A-1)*l,1),st(r,P,a,c+A*l,1)}else{for(let K=1;K<=A-1;K++)p[d+(K-1)+L*r]=0,p[d+(K-1)+(L+1)*r]=0;z[L-1]=B,z[L]=-B,L=L+1}}if($>1){let ne;if(B===0?ne=A:ne=A+1,L>=$-1||ne===r){bt(Ee,Ee,r,L,r-ne+L,1,a,c+(ne-L)*l,l,p,d+(ne-L)+1*r,r,0,p,d+($+1)*r,r);let re=1;for(let le=1;le<=L;le++){if(z[le-1]===0){const K=Hs(r,p,d+($+le)*r,1);re=1/Math.abs(p[d+(K-1)+($+le)*r])}else if(z[le-1]===1){let K=0;for(let P=1;P<=r;P++)K=Math.max(K,Math.abs(p[d+(P-1)+($+le)*r])+Math.abs(p[d+(P-1)+($+le+1)*r]));re=1/K}st(r,re,p,d+($+le)*r,1)}Qe(-1,r,L,p,d+($+1)*r,r,a,c+(ne-L)*l,l),L=1}else L=L+1}}}return{m:D,info:0}}const YM=0,JM=1,KM=2,B1=3;function q1(e,t,n,r,s,o,i,a,c,l,u){const f=t===nt,h=t===$t;let m=0;if(e<0||e>3?m=-1:!f&&!h?m=-2:n<0?m=-3:r<1||r>Math.max(1,n)?m=-4:s<Math.min(r,n)||s>n?m=-5:a<0?m=-7:u<Math.max(1,n)&&(m=-9),m!==0)return m;if(n===0||a===0||e===YM)return 0;if(r!==s&&(e===KM||e===B1)){if(f)for(let p=r;p<=s;p++){const d=o[i+(p-1)];st(a,d,c,l+(p-1),u)}if(h)for(let p=r;p<=s;p++){const d=1/o[i+(p-1)];st(a,d,c,l+(p-1),u)}}if(e===JM||e===B1){if(f)for(let p=1;p<=n;p++){let d=p;if(d>=r&&d<=s)continue;d<r&&(d=r-p);const g=Math.trunc(o[i+(d-1)]);g!==d&&Ys(a,c,l+(d-1),u,c,l+(g-1),u)}if(h)for(let p=1;p<=n;p++){let d=p;if(d>=r&&d<=s)continue;d<r&&(d=r-p);const g=Math.trunc(o[i+(d-1)]);g!==d&&Ys(a,c,l+(d-1),u,c,l+(g-1),u)}}return 0}const ZM=4,GM=5;function is(e,t,n,r,s,o,i,a,c,l){let u=0;const f=e;if(r===0||isNaN(r)?u=-4:isNaN(s)?u=-5:o<0?u=-6:i<0||f===ZM||f===GM?u=-7:l<Math.max(1,o)&&(u=-9),u!==0)return u;if(i===0||o===0)return 0;const h=Bt(er),m=1/h;let p=r,d=s,g=!1;for(;!g;){const w=p*h;let _,y;if(w===p)_=d/p,g=!0,y=d;else if(y=d/m,y===d)_=d,g=!0,p=1;else if(Math.abs(w)>Math.abs(d)&&d!==0)_=h,g=!1,p=w;else if(Math.abs(y)>Math.abs(p))_=m,g=!1,d=y;else if(_=d/p,g=!0,_===1)return 0;for(let b=1;b<=i;b++)for(let k=1;k<=o;k++)a[c+(k-1)+(b-1)*l]*=_}return 0}const Go=0,Gi=1,V1=$t,rh=nt,QM=2,sh=1,ac=0,OM=0,e$=-1,z1=0,Xl=1,U1=0,Hl=2,oh=0,ih=3;function W1(e,t,n,r,s,o,i,a,c,l,u,f,h,m,p,d,g,w,_,y){const b=y!==!1;let k=0;const M=_===-1,$=e===1,S=t===1;e!==0&&e!==1?k=-1:t!==0&&t!==1?k=-2:n<0?k=-3:o<Math.max(1,n)?k=-5:h<1||$&&h<n?k=-9:(d<1||S&&d<n)&&(k=-11);let E=0,D=0;if(k===0){if(n===0)D=1,E=1;else{if(E=2*n+n*It(1,"DGEHRD"," ",n,1),$){D=4*n,E=Math.max(E,2*n+(n-1)*It(1,"DORGHR"," ",n,1)),Zi(Xl,Hl,n,1,n,r,s,o,i,a,c,l,u,f,h,g,w,-1);const le=Math.trunc(g[w]);E=Math.max(E,n+1,n+le),nh(V1,sh,[!1],n,r,s,o,u,f,h,m,p,d,n,g,w,-1);const K=Math.trunc(g[w]);E=Math.max(E,n+K),E=Math.max(E,4*n)}else if(S){D=4*n,E=Math.max(E,2*n+(n-1)*It(1,"DORGHR"," ",n,1)),Zi(Xl,Hl,n,1,n,r,s,o,i,a,c,l,m,p,d,g,w,-1);const le=Math.trunc(g[w]);E=Math.max(E,n+1,n+le),nh(rh,sh,[!1],n,r,s,o,u,f,h,m,p,d,n,g,w,-1);const K=Math.trunc(g[w]);E=Math.max(E,n+K),E=Math.max(E,4*n)}else{D=3*n,Zi(z1,U1,n,1,n,r,s,o,i,a,c,l,m,p,d,g,w,-1);const le=Math.trunc(g[w]);E=Math.max(E,n+1,n+le)}E=Math.max(E,D)}g[w]=E,_<D&&!M&&(k=-13)}if(k!==0)return k;if(M||n===0)return 0;const F=Bt(ks);let R=Bt(er),q=Gi/R;R=Math.sqrt(R)/F,q=Gi/R;const J=Km(OM,n,n,r,s,o);let X=!1,z=0;J>Go&&J<R?(X=!0,z=R):J>q&&(X=!0,z=q),X&&is(ac,0,0,J,z,n,n,r,s,o);const L=0,A=nM(b?ih:oh,n,r,s,o,g,w+L),G=A.ilo,ie=A.ihi,ge=L+n,ne=ge+n;Ym(n,G,ie,r,s,o,g,w+ge,g,w+ne,_-ne);let re;if($){re=V1,Qe(ot,n,n,r,s,o,u,f,h),$1(n,G,ie,u,f,h,g,w+ge,g,w+ne,_-ne);const le=ge;k=Zi(Xl,Hl,n,G,ie,r,s,o,i,a,c,l,u,f,h,g,w+le,_-le),S&&(re=QM,Qe(e$,n,n,u,f,h,m,p,d))}else if(S){re=rh,Qe(ot,n,n,r,s,o,m,p,d),$1(n,G,ie,m,p,d,g,w+ge,g,w+ne,_-ne);const le=ge;k=Zi(Xl,Hl,n,G,ie,r,s,o,i,a,c,l,m,p,d,g,w+le,_-le)}else{re=rh;const le=ge;k=Zi(z1,U1,n,G,ie,r,s,o,i,a,c,l,m,p,d,g,w+le,_-le)}if(k!==0)return X1(k,X,z,J,n,G,i,a,c,l,g,w,E);if($||S){const le=ge;nh(re,sh,[!1],n,r,s,o,u,f,h,m,p,d,n,g,w+le,_-le)}if($){q1(b?ih:oh,$t,n,G,ie,g,w+L,n,u,f,h);for(let K=1;K<=n;K++)if(c[l+(K-1)]===Go){const P=Gi/vs(n,u,f+(K-1)*h,1);st(n,P,u,f+(K-1)*h,1)}else if(c[l+(K-1)]>Go){const P=Gi/Ji(vs(n,u,f+(K-1)*h,1),vs(n,u,f+K*h,1));st(n,P,u,f+(K-1)*h,1),st(n,P,u,f+K*h,1);const ce=ge;for(let Z=1;Z<=n;Z++){const V=u[f+(Z-1)+(K-1)*h],we=u[f+(Z-1)+K*h];g[w+ce+(Z-1)]=V*V+we*we}const me=Hs(n,g,w+ce,1),fe=Yr(u[f+(me-1)+(K-1)*h],u[f+(me-1)+K*h]);gr(n,u,f+(K-1)*h,1,u,f+K*h,1,fe.cs,fe.sn),u[f+(me-1)+K*h]=Go}}if(S){q1(b?ih:oh,nt,n,G,ie,g,w+L,n,m,p,d);for(let K=1;K<=n;K++)if(c[l+(K-1)]===Go){const P=Gi/vs(n,m,p+(K-1)*d,1);st(n,P,m,p+(K-1)*d,1)}else if(c[l+(K-1)]>Go){const P=Gi/Ji(vs(n,m,p+(K-1)*d,1),vs(n,m,p+K*d,1));st(n,P,m,p+(K-1)*d,1),st(n,P,m,p+K*d,1);const ce=ge;for(let Z=1;Z<=n;Z++){const V=m[p+(Z-1)+(K-1)*d],we=m[p+(Z-1)+K*d];g[w+ce+(Z-1)]=V*V+we*we}const me=Hs(n,g,w+ce,1),fe=Yr(m[p+(me-1)+(K-1)*d],m[p+(me-1)+K*d]);gr(n,m,p+(K-1)*d,1,m,p+K*d,1,fe.cs,fe.sn),m[p+(me-1)+K*d]=Go}}return X1(k,X,z,J,n,G,i,a,c,l,g,w,E)}function X1(e,t,n,r,s,o,i,a,c,l,u,f,h){return t&&(is(ac,0,0,n,r,s-e,1,i,a+e,Math.max(s-e,1)),is(ac,0,0,n,r,s-e,1,c,l+e,Math.max(s-e,1)),e>0&&(is(ac,0,0,n,r,o-1,1,i,a,s),is(ac,0,0,n,r,o-1,1,c,l,s))),u[f]=h,e}const Kr=0,dt=1;function t$(e,t,n,r,s,o,i,a,c,l,u,f,h,m,p,d,g,w,_,y){if(e<=0||t<=0)return;let b;if(e>=t)for(let k=1;k<=n;k++)ht(Ee,e-k+1,k-1,-dt,r,s+(k-1)+0*o,o,w,_+(k-1)+0*y,y,dt,r,s+(k-1)+(k-1)*o,1),ht(Ee,e-k+1,k-1,-dt,p,d+(k-1)+0*g,g,r,s+0+(k-1)*o,1,dt,r,s+(k-1)+(k-1)*o,1),b=vn(e-k+1,r[s+(k-1)+(k-1)*o],r,s+(Math.min(k+1,e)-1)+(k-1)*o,1),i[a+(k-1)]=b.alpha,u[f+(k-1)]=b.tau,k<t?(r[s+(k-1)+(k-1)*o]=dt,ht(mt,e-k+1,t-k,dt,r,s+(k-1)+k*o,o,r,s+(k-1)+(k-1)*o,1,Kr,w,_+k+(k-1)*y,1),ht(mt,e-k+1,k-1,dt,r,s+(k-1)+0*o,o,r,s+(k-1)+(k-1)*o,1,Kr,w,_+0+(k-1)*y,1),ht(Ee,t-k,k-1,-dt,w,_+k+0*y,y,w,_+0+(k-1)*y,1,dt,w,_+k+(k-1)*y,1),ht(mt,e-k+1,k-1,dt,p,d+(k-1)+0*g,g,r,s+(k-1)+(k-1)*o,1,Kr,w,_+0+(k-1)*y,1),ht(mt,k-1,t-k,-dt,r,s+0+k*o,o,w,_+0+(k-1)*y,1,dt,w,_+k+(k-1)*y,1),st(t-k,u[f+(k-1)],w,_+k+(k-1)*y,1),ht(Ee,t-k,k,-dt,w,_+k+0*y,y,r,s+(k-1)+0*o,o,dt,r,s+(k-1)+k*o,o),ht(mt,k-1,t-k,-dt,r,s+0+k*o,o,p,d+(k-1)+0*g,g,dt,r,s+(k-1)+k*o,o),b=vn(t-k,r[s+(k-1)+k*o],r,s+(k-1)+(Math.min(k+2,t)-1)*o,o),c[l+(k-1)]=b.alpha,h[m+(k-1)]=b.tau,r[s+(k-1)+k*o]=dt,ht(Ee,e-k,t-k,dt,r,s+k+k*o,o,r,s+(k-1)+k*o,o,Kr,p,d+k+(k-1)*g,1),ht(mt,t-k,k,dt,w,_+k+0*y,y,r,s+(k-1)+k*o,o,Kr,p,d+0+(k-1)*g,1),ht(Ee,e-k,k,-dt,r,s+k+0*o,o,p,d+0+(k-1)*g,1,dt,p,d+k+(k-1)*g,1),ht(Ee,k-1,t-k,dt,r,s+0+k*o,o,r,s+(k-1)+k*o,o,Kr,p,d+0+(k-1)*g,1),ht(Ee,e-k,k-1,-dt,p,d+k+0*g,g,p,d+0+(k-1)*g,1,dt,p,d+k+(k-1)*g,1),st(e-k,h[m+(k-1)],p,d+k+(k-1)*g,1)):r[s+(k-1)+(k-1)*o]=b.alpha;else for(let k=1;k<=n;k++)ht(Ee,t-k+1,k-1,-dt,w,_+(k-1)+0*y,y,r,s+(k-1)+0*o,o,dt,r,s+(k-1)+(k-1)*o,o),ht(mt,k-1,t-k+1,-dt,r,s+0+(k-1)*o,o,p,d+(k-1)+0*g,g,dt,r,s+(k-1)+(k-1)*o,o),b=vn(t-k+1,r[s+(k-1)+(k-1)*o],r,s+(k-1)+(Math.min(k+1,t)-1)*o,o),i[a+(k-1)]=b.alpha,h[m+(k-1)]=b.tau,k<e?(r[s+(k-1)+(k-1)*o]=dt,ht(Ee,e-k,t-k+1,dt,r,s+k+(k-1)*o,o,r,s+(k-1)+(k-1)*o,o,Kr,p,d+k+(k-1)*g,1),ht(mt,t-k+1,k-1,dt,w,_+(k-1)+0*y,y,r,s+(k-1)+(k-1)*o,o,Kr,p,d+0+(k-1)*g,1),ht(Ee,e-k,k-1,-dt,r,s+k+0*o,o,p,d+0+(k-1)*g,1,dt,p,d+k+(k-1)*g,1),ht(Ee,k-1,t-k+1,dt,r,s+0+(k-1)*o,o,r,s+(k-1)+(k-1)*o,o,Kr,p,d+0+(k-1)*g,1),ht(Ee,e-k,k-1,-dt,p,d+k+0*g,g,p,d+0+(k-1)*g,1,dt,p,d+k+(k-1)*g,1),st(e-k,h[m+(k-1)],p,d+k+(k-1)*g,1),ht(Ee,e-k,k-1,-dt,r,s+k+0*o,o,w,_+(k-1)+0*y,y,dt,r,s+k+(k-1)*o,1),ht(Ee,e-k,k,-dt,p,d+k+0*g,g,r,s+0+(k-1)*o,1,dt,r,s+k+(k-1)*o,1),b=vn(e-k,r[s+k+(k-1)*o],r,s+(Math.min(k+2,e)-1)+(k-1)*o,1),c[l+(k-1)]=b.alpha,u[f+(k-1)]=b.tau,r[s+k+(k-1)*o]=dt,ht(mt,e-k,t-k,dt,r,s+k+k*o,o,r,s+k+(k-1)*o,1,Kr,w,_+k+(k-1)*y,1),ht(mt,e-k,k-1,dt,r,s+k+0*o,o,r,s+k+(k-1)*o,1,Kr,w,_+0+(k-1)*y,1),ht(Ee,t-k,k-1,-dt,w,_+k+0*y,y,w,_+0+(k-1)*y,1,dt,w,_+k+(k-1)*y,1),ht(mt,e-k,k,dt,p,d+k+0*g,g,r,s+k+(k-1)*o,1,Kr,w,_+0+(k-1)*y,1),ht(mt,k,t-k,-dt,r,s+0+k*o,o,w,_+0+(k-1)*y,1,dt,w,_+k+(k-1)*y,1),st(t-k,u[f+(k-1)],w,_+k+(k-1)*y,1)):r[s+(k-1)+(k-1)*o]=b.alpha}function n$(e,t,n,r,s,o,i,a,c,l,u,f,h,m,p){let d=0;if(e<0?d=-1:t<0?d=-2:s<Math.max(1,e)&&(d=-4),d!==0)return an("DGEBD2",-d),d;if(e>=t)for(let g=1;g<=t;g++){const w=r+(g-1)+(g-1)*s,_=r+Math.min(g,e-1)+(g-1)*s,{alpha:y,tau:b}=vn(e-g+1,n[w],n,_,1);if(n[w]=y,l[u+(g-1)]=b,o[i+(g-1)]=n[w],g<t&&Tr($t,e-g+1,t-g,n,w,1,b,n,r+(g-1)+g*s,s,m,p),g<t){const k=r+(g-1)+g*s,M=r+(g-1)+Math.min(g+1,t-1)*s,{alpha:$,tau:S}=vn(t-g,n[k],n,M,s);n[k]=$,f[h+(g-1)]=S,a[c+(g-1)]=n[k],Tr(nt,e-g,t-g,n,k,s,S,n,r+g+g*s,s,m,p)}else f[h+(g-1)]=0}else for(let g=1;g<=e;g++){const w=r+(g-1)+(g-1)*s,_=r+(g-1)+Math.min(g,t-1)*s,{alpha:y,tau:b}=vn(t-g+1,n[w],n,_,s);if(n[w]=y,f[h+(g-1)]=b,o[i+(g-1)]=n[w],g<e&&Tr(nt,e-g,t-g+1,n,w,s,b,n,r+g+(g-1)*s,s,m,p),g<e){const k=r+g+(g-1)*s,M=r+Math.min(g+1,e-1)+(g-1)*s,{alpha:$,tau:S}=vn(e-g,n[k],n,M,1);n[k]=$,l[u+(g-1)]=S,a[c+(g-1)]=n[k],Tr($t,e-g,t-g,n,k,1,S,n,r+g+g*s,s,m,p)}else l[u+(g-1)]=0}return 0}const Yl=1;function Pn(e,t,n,r,s,o,i,a,c,l,u,f,h,m,p,d){let g=0;const w=Math.min(e,t);let _,y,b;w===0?(_=1,y=1,b=1):(_=Math.max(e,t),b=Math.max(1,It(1,"DGEBRD"," ",e,t)),y=(e+t)*b),m[p]=y;const k=d===-1;if(e<0?g=-1:t<0?g=-2:s<Math.max(1,e)?g=-4:d<_&&!k&&(g=-10),g<0)return an("DGEBRD",-g),g;if(k)return 0;if(w===0)return m[p]=1,0;let M=Math.max(e,t);const $=e,S=t;let E;if(b>1&&b<w){if(E=Math.max(b,It(3,"DGEBRD"," ",e,t)),E<w&&(M=y,d<M)){const F=It(2,"DGEBRD"," ",e,t);d>=(e+t)*F?b=Math.floor(d/(e+t)):(b=1,E=w)}}else E=w;let D=1;for(;D<=w-E;D+=b)if(t$(e-D+1,t-D+1,b,n,r+(D-1)+(D-1)*s,s,o,i+(D-1),a,c+(D-1),l,u+(D-1),f,h+(D-1),m,p,$,m,p+$*b,S),bt(Ee,mt,e-D-b+1,t-D-b+1,b,-Yl,n,r+(D+b-1)+(D-1)*s,s,m,p+$*b+b,S,Yl,n,r+(D+b-1)+(D+b-1)*s,s),bt(Ee,Ee,e-D-b+1,t-D-b+1,b,-Yl,m,p+b,$,n,r+(D-1)+(D+b-1)*s,s,Yl,n,r+(D+b-1)+(D+b-1)*s,s),e>=t)for(let F=D;F<=D+b-1;F++)n[r+(F-1)+(F-1)*s]=o[i+(F-1)],n[r+(F-1)+F*s]=a[c+(F-1)];else for(let F=D;F<=D+b-1;F++)n[r+(F-1)+(F-1)*s]=o[i+(F-1)],n[r+F+(F-1)*s]=a[c+(F-1)];return n$(e-D+1,t-D+1,n,r+(D-1)+(D-1)*s,s,o,i+(D-1),a,c+(D-1),l,u+(D-1),f,h+(D-1),m,p),m[p]=M,0}function H1(e,t,n,r,s,o,i,a,c){let l=0;if(e<0?l=-1:t<0?l=-2:s<Math.max(1,e)&&(l=-4),l!==0)return an("DGELQ2",-l),l;const u=Math.min(e,t);for(let f=1;f<=u;f++){const h=r+(f-1)+(f-1)*s,m=r+(f-1)+Math.min(f,t-1)*s,{alpha:p,tau:d}=vn(t-f+1,n[h],n,m,s);n[h]=p,o[i+(f-1)]=d,f<e&&Tr(nt,e-f,t-f+1,n,h,s,d,n,r+f+(f-1)*s,s,a,c)}return 0}const Y1=0,J1=1;function Gs(e,t,n,r,s,o,i,a,c,l){let u=0;const f=Math.min(e,t);let h=It(1,"DGELQF"," ",e,t);const m=l===-1;if(e<0?u=-1:t<0?u=-2:s<Math.max(1,e)?u=-4:m||(l<=0||t>0&&l<Math.max(1,e))&&(u=-7),u!==0)return an("DGELQF",-u),u;if(m){let y;return f===0?y=1:y=e*h,a[c]=y,0}if(f===0)return a[c]=1,0;let p=2,d=0,g=e,w=e;h>1&&h<f&&(d=Math.max(0,It(3,"DGELQF"," ",e,t)),d<f&&(w=e,g=w*h,l<g&&(h=Math.floor(l/w),p=Math.max(2,It(2,"DGELQF"," ",e,t)))));let _=1;if(h>=p&&h<f&&d<f)for(_=1;_<=f-d;_+=h){const y=Math.min(f-_+1,h);H1(y,t-_+1,n,r+(_-1)+(_-1)*s,s,o,i+(_-1),a,c),_+y<=e&&(Ks(Y1,J1,t-_+1,y,n,r+(_-1)+(_-1)*s,s,o,i+(_-1),a,c,w),Bl(nt,Ee,Y1,J1,e-_-y+1,t-_+1,y,n,r+(_-1)+(_-1)*s,s,a,c,w,n,r+(_+y-1)+(_-1)*s,s,a,c+y,w))}else _=1;return _<=f&&H1(e-_+1,t-_+1,n,r+(_-1)+(_-1)*s,s,o,i+(_-1),a,c),a[c]=g,0}function K1(e,t,n,r,s,o,i,a,c){let l=0;if(e<0?l=-1:t<0?l=-2:s<Math.max(1,e)&&(l=-4),l!==0)return an("DGEQR2",-l),l;const u=Math.min(e,t);for(let f=1;f<=u;f++){const h=r+(f-1)+(f-1)*s,m=r+Math.min(f,e-1)+(f-1)*s,{alpha:p,tau:d}=vn(e-f+1,n[h],n,m,1);n[h]=p,o[i+(f-1)]=d,f<t&&Tr($t,e-f+1,t-f,n,h,1,d,n,r+(f-1)+f*s,s,a,c)}return 0}function Qs(e,t,n,r,s,o,i){const a=Math.min(e,t);let c=0;const l=It(1,"DGEQRF"," ",e,t);if(e<0?c=-1:t<0?c=-2:s<Math.max(1,e)&&(c=-4),c!==0)return an("DGEQRF",-c),c;if(a===0)return 0;const u=2;let f=0,h=t;l>1&&l<a&&(f=Math.max(0,It(3,"DGEQRF"," ",e,t)),f<a&&(h=t*l));let m=1;if(l>=u&&l<a&&f<a){const p=v(h);for(m=1;m<=a-f;m+=l){const d=Math.min(a-m+1,l);K1(e-m+1,d,n,r+(m-1)+(m-1)*s,s,o,i+(m-1),p,0)}}if(m<=a){const p=v(t);K1(e-m+1,t-m+1,n,r+(m-1)+(m-1)*s,s,o,i+(m-1),p,0)}return 0}function Z1(e,t,n,r,s,o,i,a,c,l){let u=0;if(e<0?u=-1:t<e?u=-2:n<0||n>e?u=-3:o<Math.max(1,e)&&(u=-5),u!==0)return an("DORGL2",-u),u;if(e<=0)return 0;if(n<e)for(let f=1;f<=t;f++){for(let h=n+1;h<=e;h++)r[s+(h-1)+(f-1)*o]=0;f>n&&f<=e&&(r[s+(f-1)+(f-1)*o]=1)}for(let f=n;f>=1;f--){const h=s+(f-1)+(f-1)*o,m=i[a+(f-1)];f<t&&(f<e&&Tr(nt,e-f,t-f+1,r,h,o,m,r,s+f+(f-1)*o,o,c,l),st(t-f,-m,r,s+(f-1)+f*o,o)),r[h]=1-m;for(let p=1;p<=f-1;p++)r[s+(f-1)+(p-1)*o]=0}return 0}const G1=0,Q1=1,r$=1;function Ms(e,t,n,r,s,o,i,a,c,l,u){let f=0;const h=It(1,"DORGLQ"," ",e,t),m=Math.max(1,e)*h;c[l]=m;const p=u===-1;if(e<0?f=-1:t<e?f=-2:n<0||n>e?f=-3:o<Math.max(1,e)?f=-5:u<Math.max(1,e)&&!p&&(f=-8),f!==0)return an("DORGLQ",-f),f;if(p)return 0;if(e<=0)return c[l]=1,0;let d=2,g=0,w=e,_=e,y=h;y>1&&y<n&&(g=Math.max(0,It(3,"DORGLQ"," ",e,t)),g<n&&(_=e,w=_*y,u<w&&(y=Math.floor(u/_),d=Math.max(2,It(2,"DORGLQ"," ",e,t)))));let b=0,k=0;if(y>=d&&y<n&&g<n){k=Math.floor((n-g-1)/y)*y,b=Math.min(n,k+y);for(let M=1;M<=b;M++)for(let $=b+1;$<=e;$++)r[s+($-1)+(M-1)*o]=0}else b=0;if(b<e&&Z1(e-b,t-b,n-b,r,s+b+b*o,o,i,a+b,c,l),b>0)for(let M=k+1;M>=1;M-=y){const $=Math.min(y,n-M+1);M+$<=e&&(Ks(G1,Q1,t-M+1,$,r,s+(M-1)+(M-1)*o,o,i,a+(M-1),c,l,_),Bl(nt,r$,G1,Q1,e-M-$+1,t-M+1,$,r,s+(M-1)+(M-1)*o,o,c,l,_,r,s+(M+$-1)+(M-1)*o,o,c,l+$,_)),Z1($,t-M+1,$,r,s+(M-1)+(M-1)*o,o,i,a+(M-1),c,l);for(let S=1;S<=M-1;S++)for(let E=M;E<=M+$-1;E++)r[s+(E-1)+(S-1)*o]=0}return c[l]=w,0}const Jl=0,O1=1;function Lt(e,t,n,r,s,o,i,a,c,l,u,f){let h=0;const m=e===qn,p=Math.min(t,n),d=f===-1;!m&&e!==Vn?h=-1:t<0?h=-2:n<0||m&&(n>t||n<Math.min(t,r))||!m&&(t>n||t<Math.min(n,r))?h=-3:r<0?h=-4:i<Math.max(1,t)?h=-6:f<Math.max(1,p)&&!d&&(h=-9);let g=1;if(h===0){if(l[u]=1,m){if(t>=r){const w=It(1,"DORGQR"," ",t,n);g=Math.max(1,n)*w}else if(t>1){const w=It(1,"DORGQR"," ",t-1,t-1);g=Math.max(1,t-1)*w}}else if(r<n){const w=It(1,"DORGLQ"," ",t,n);g=Math.max(1,t)*w}else if(n>1){const w=It(1,"DORGLQ"," ",n-1,n-1);g=Math.max(1,n-1)*w}g=Math.max(g,p)}if(h!==0)return an("DORGBR",-h),h;if(d)return l[u]=g,0;if(t===0||n===0)return l[u]=1,0;if(m)if(t>=r)ss(t,n,r,s,o,i,a,c);else{for(let w=t;w>=2;w--){s[o+0+(w-1)*i]=Jl;for(let _=w+1;_<=t;_++)s[o+(_-1)+(w-1)*i]=s[o+(_-1)+(w-2)*i]}s[o]=O1;for(let w=2;w<=t;w++)s[o+(w-1)]=Jl;t>1&&ss(t-1,t-1,t-1,s,o+1+1*i,i,a,c)}else if(r<n)Ms(t,n,r,s,o,i,a,c,l,u,f);else{s[o]=O1;for(let w=2;w<=n;w++)s[o+(w-1)]=Jl;for(let w=2;w<=n;w++){for(let _=w-1;_>=2;_--)s[o+(_-1)+(w-1)*i]=s[o+(_-2)+(w-1)*i];s[o+(w-1)*i]=Jl}n>1&&Ms(n-1,n-1,n-1,s,o+1+1*i,i,a,c,l,u,f)}return l[u]=g,0}function eg(e,t,n){let r,s;const o=Math.abs(e),i=Math.abs(t),a=Math.abs(n),c=Math.min(o,a),l=Math.max(o,a);if(c===0)r=0,l===0?s=i:s=Math.max(l,i)*Math.sqrt(1+(Math.min(l,i)/Math.max(l,i))**2);else if(i<l){const u=1+c/l,f=(l-c)/l,h=(i/l)**2,m=2/(Math.sqrt(u*u+h)+Math.sqrt(f*f+h));r=c*m,s=l/m}else{const u=l/i;if(u===0)r=c*l/i,s=i;else{const f=1+c/l,h=(l-c)/l,m=1/(Math.sqrt(1+(f*u)**2)+Math.sqrt(1+(h*u)**2));r=c*m*u,r=r+r,s=i/(m+m)}}return{ssmin:r,ssmax:s}}function wr(e,t){return t>=0?Math.abs(e):-Math.abs(e)}function s$(e,t,n){let c=e,l=Math.abs(c),u=n,f=Math.abs(n),h=1;const m=f>l;if(m){h=3;let F=c;c=u,u=F,F=l,l=f,f=F}const p=t,d=Math.abs(p);let g,w,_,y,b,k;if(d===0)b=f,k=l,g=1,_=1,w=0,y=0;else{let F=!0;if(d>l&&(h=2,l/d<Bt(Wi)&&(F=!1,k=d,f>1?b=l/(d/f):b=l/d*f,g=1,w=u/p,y=1,_=c/p)),F){const R=l-f;let q;R===l?q=1:q=R/l;const J=p/c;let X=2-q;const z=J*J,L=X*X,B=Math.sqrt(L+z);let A;q===0?A=Math.abs(J):A=Math.sqrt(q*q+z);const G=.5*(B+A);b=f/G,k=l*G,z===0?q===0?X=wr(2,c)*wr(1,p):X=p/wr(R,c)+J/X:X=(J/(B+X)+J/(A+q))*(1+G),q=Math.sqrt(X*X+4),_=2/q,y=X/q,g=(_+y*J)/G,w=u/c*y/G}}let M,$,S,E;m?(M=y,$=_,S=w,E=g):(M=g,$=w,S=_,E=y);let D=0;return h===1&&(D=wr(1,S)*wr(1,M)*wr(1,e)),h===2&&(D=wr(1,E)*wr(1,M)*wr(1,t)),h===3&&(D=wr(1,E)*wr(1,$)*wr(1,n)),k=wr(k,D),b=wr(b,D*wr(1,e)*wr(1,n)),{ssmin:b,ssmax:k,snr:E,csr:S,snl:$,csl:M}}function Os(e,t,n,r,s,o,i,a,c,l,u,f){let p=0;if(e!==$t&&e!==nt?p=1:n!==Mo&&n!==Ko?p=3:r<0?p=4:s<0?p=5:f<Math.max(1,r)&&(p=9),p!==0)throw new Error(`DLASR: illegal argument ${p}`);if(r===0||s===0)return;let d,g,w,_,y;if(e===$t){if(n===Mo){for(y=1;y<=r-1;y++)if(d=o[i+(y-1)],g=a[c+(y-1)],d!==1||g!==0)for(_=1;_<=s;_++)w=l[u+y+(_-1)*f],l[u+y+(_-1)*f]=d*w-g*l[u+(y-1)+(_-1)*f],l[u+(y-1)+(_-1)*f]=g*w+d*l[u+(y-1)+(_-1)*f]}else if(n===Ko){for(y=r-1;y>=1;y--)if(d=o[i+(y-1)],g=a[c+(y-1)],d!==1||g!==0)for(_=1;_<=s;_++)w=l[u+y+(_-1)*f],l[u+y+(_-1)*f]=d*w-g*l[u+(y-1)+(_-1)*f],l[u+(y-1)+(_-1)*f]=g*w+d*l[u+(y-1)+(_-1)*f]}}else if(e===nt){if(n===Mo){for(y=1;y<=s-1;y++)if(d=o[i+(y-1)],g=a[c+(y-1)],d!==1||g!==0)for(_=1;_<=r;_++)w=l[u+(_-1)+y*f],l[u+(_-1)+y*f]=d*w-g*l[u+(_-1)+(y-1)*f],l[u+(_-1)+(y-1)*f]=g*w+d*l[u+(_-1)+(y-1)*f]}else if(n===Ko){for(y=s-1;y>=1;y--)if(d=o[i+(y-1)],g=a[c+(y-1)],d!==1||g!==0)for(_=1;_<=r;_++)w=l[u+(_-1)+y*f],l[u+(_-1)+y*f]=d*w-g*l[u+(_-1)+(y-1)*f],l[u+(_-1)+(y-1)*f]=g*w+d*l[u+(_-1)+(y-1)*f]}}}const Rt=0,Qi=1,tg=-1,o$=.01,i$=10,a$=100,c$=-.125,ah=6;function ng(e,t){return t>=0?Math.abs(e):-Math.abs(e)}function xn(e,t,n,r,s,o,i,a,c,l,u,f,h,m,p,d,g,w,_,y){let b=0;const k=e===ot;if(e!==He&&!k?b=-1:t<0?b=-2:n<0?b=-3:r<0?b=-4:n===0&&f<1||n>0&&f<Math.max(1,t)?b=-9:p<Math.max(1,r)&&(b=-11),b!==0)return an("DBDSQR",-b),b;if(t===0)return 0;const M=V=>o[i+V-1],$=(V,we)=>{o[i+V-1]=we},S=V=>a[c+V-1],E=(V,we)=>{a[c+V-1]=we},D=(V,we)=>{_[y+V-1]=we},F=V=>u+(V-1),R=V=>m+(V-1)*p;if(t===1)return M(1)===Rt&&$(1,Rt),M(1)<Rt&&($(1,-M(1)),n>0&&st(n,tg,l,F(1),f)),0;const q=t-1,J=q+q,X=J+q;let z=0;const L=Bt(Wi),B=Bt(er);if(k){for(let V=1;V<=t-1;V++){const we=Yr(M(V),S(V));$(V,we.r),E(V,we.sn*M(V+1)),$(V+1,we.cs*M(V+1)),D(V,we.cs),D(q+V,we.sn)}r>0&&Os(nt,Xs,Mo,r,t,_,y,_,y+q,h,m,p)}const G=Math.max(i$,Math.min(a$,Math.pow(L,c$)))*L;let ie=Rt;for(let V=1;V<=t;V++)ie=Math.max(ie,Math.abs(M(V)));for(let V=1;V<=t-1;V++)ie=Math.max(ie,Math.abs(S(V)));let ge=Rt,ne,re,le;if(G>=Rt){if(ne=Math.abs(M(1)),ne!==Rt){le=ne;for(let V=2;V<=t&&(le=Math.abs(M(V))*(le/(le+Math.abs(S(V-1)))),ne=Math.min(ne,le),ne!==Rt);V++);}ne=ne/Math.sqrt(t),re=Math.max(G*ne,ah*(t*(t*B)))}else re=Math.max(Math.abs(G)*ie,ah*(t*(t*B)));const K=ah*t;let P=0,ce=-1,me=-1,fe=-1,Z=t;e:for(;;){if(Z<=1)break e;if(ce>=t&&(ce=ce-t,P=P+1,P>=K)){b=0;for(let ke=1;ke<=t-1;ke++)S(ke)!==Rt&&b++;return b}G<Rt&&Math.abs(M(Z))<=re&&$(Z,Rt),ie=Math.abs(M(Z));let V=0,we=!1;for(let ke=1;ke<=Z-1;ke++){V=Z-ke;const xe=Math.abs(M(V)),Ue=Math.abs(S(V));if(G<Rt&&xe<=re&&$(V,Rt),Ue<=re){we=!0;break}ie=Math.max(ie,xe,Ue)}if(!we)V=0;else if(E(V,Rt),V===Z-1){Z=Z-1;continue e}if(V=V+1,V===Z-1){const ke=s$(M(Z-1),S(Z-1),M(Z));$(Z-1,ke.ssmax),E(Z-1,Rt),$(Z,ke.ssmin),n>0&&gr(n,l,F(Z-1),f,l,F(Z),f,ke.csr,ke.snr),r>0&&gr(r,h,R(Z-1),1,h,R(Z),1,ke.csl,ke.snl),Z=Z-2;continue e}if((V>fe||Z<me)&&(Math.abs(M(V))>=Math.abs(M(Z))?z=1:z=2),z===1){if(Math.abs(S(Z-1))<=Math.abs(G)*Math.abs(M(Z))||G<Rt&&Math.abs(S(Z-1))<=re){E(Z-1,Rt);continue e}if(G>=Rt){le=Math.abs(M(V)),ge=le;let ke=!1;for(let xe=V;xe<=Z-1;xe++){if(Math.abs(S(xe))<=G*le){E(xe,Rt),ke=!0;break}le=Math.abs(M(xe+1))*(le/(le+Math.abs(S(xe)))),ge=Math.min(ge,le)}if(ke)continue e}}else{if(Math.abs(S(V))<=Math.abs(G)*Math.abs(M(V))||G<Rt&&Math.abs(S(V))<=re){E(V,Rt);continue e}if(G>=Rt){le=Math.abs(M(Z)),ge=le;let ke=!1;for(let xe=Z-1;xe>=V;xe--){if(Math.abs(S(xe))<=G*le){E(xe,Rt),ke=!0;break}le=Math.abs(M(xe))*(le/(le+Math.abs(S(xe)))),ge=Math.min(ge,le)}if(ke)continue e}}me=V,fe=Z;let se,Te;if(G>=Rt&&t*G*(ge/ie)<=Math.max(L,o$*G)?se=Rt:(z===1?(Te=Math.abs(M(V)),se=eg(M(Z-1),S(Z-1),M(Z)).ssmin):(Te=Math.abs(M(Z)),se=eg(M(V),S(V),M(V+1)).ssmin),Te>Rt&&se/Te*(se/Te)<L&&(se=Rt)),ce=ce+Z-V,se===Rt)if(z===1){let ke=Qi,xe=Qi,Ue=Rt,he,te;for(let Re=V;Re<=Z-1;Re++){const _e=Yr(M(Re)*ke,S(Re));ke=_e.cs,he=_e.sn,te=_e.r,Re>V&&E(Re-1,Ue*te);const Se=Yr(xe*te,M(Re+1)*he);xe=Se.cs,Ue=Se.sn,$(Re,Se.r),D(Re-V+1,ke),D(Re-V+1+q,he),D(Re-V+1+J,xe),D(Re-V+1+X,Ue)}const oe=M(Z)*ke;$(Z,oe*xe),E(Z-1,oe*Ue),n>0&&Os($t,Xs,Mo,Z-V+1,n,_,y,_,y+q,l,F(V),f),r>0&&Os(nt,Xs,Mo,r,Z-V+1,_,y+J,_,y+X,h,R(V),p),Math.abs(S(Z-1))<=re&&E(Z-1,Rt)}else{let ke=Qi,xe=Qi,Ue=Rt,he,te;for(let Re=Z;Re>=V+1;Re--){const _e=Yr(M(Re)*ke,S(Re-1));ke=_e.cs,he=_e.sn,te=_e.r,Re<Z&&E(Re,Ue*te);const Se=Yr(xe*te,M(Re-1)*he);xe=Se.cs,Ue=Se.sn,$(Re,Se.r),D(Re-V,ke),D(Re-V+q,-he),D(Re-V+J,xe),D(Re-V+X,-Ue)}const oe=M(V)*ke;$(V,oe*xe),E(V,oe*Ue),n>0&&Os($t,Xs,Ko,Z-V+1,n,_,y+J,_,y+X,l,F(V),f),r>0&&Os(nt,Xs,Ko,r,Z-V+1,_,y,_,y+q,h,R(V),p),Math.abs(S(V))<=re&&E(V,Rt)}else if(z===1){let ke=(Math.abs(M(V))-se)*(ng(Qi,M(V))+se/M(V)),xe=S(V),Ue,he,te,oe,Re;for(let _e=V;_e<=Z-1;_e++){const Se=Yr(ke,xe);Ue=Se.cs,he=Se.sn,Re=Se.r,_e>V&&E(_e-1,Re),ke=Ue*M(_e)+he*S(_e),E(_e,Ue*S(_e)-he*M(_e)),xe=he*M(_e+1),$(_e+1,Ue*M(_e+1));const Ie=Yr(ke,xe);te=Ie.cs,oe=Ie.sn,Re=Ie.r,$(_e,Re),ke=te*S(_e)+oe*M(_e+1),$(_e+1,te*M(_e+1)-oe*S(_e)),_e<Z-1&&(xe=oe*S(_e+1),E(_e+1,te*S(_e+1))),D(_e-V+1,Ue),D(_e-V+1+q,he),D(_e-V+1+J,te),D(_e-V+1+X,oe)}E(Z-1,ke),n>0&&Os($t,Xs,Mo,Z-V+1,n,_,y,_,y+q,l,F(V),f),r>0&&Os(nt,Xs,Mo,r,Z-V+1,_,y+J,_,y+X,h,R(V),p),Math.abs(S(Z-1))<=re&&E(Z-1,Rt)}else{let ke=(Math.abs(M(Z))-se)*(ng(Qi,M(Z))+se/M(Z)),xe=S(Z-1),Ue,he,te,oe,Re;for(let _e=Z;_e>=V+1;_e--){const Se=Yr(ke,xe);Ue=Se.cs,he=Se.sn,Re=Se.r,_e<Z&&E(_e,Re),ke=Ue*M(_e)+he*S(_e-1),E(_e-1,Ue*S(_e-1)-he*M(_e)),xe=he*M(_e-1),$(_e-1,Ue*M(_e-1));const Ie=Yr(ke,xe);te=Ie.cs,oe=Ie.sn,Re=Ie.r,$(_e,Re),ke=te*S(_e-1)+oe*M(_e-1),$(_e-1,te*M(_e-1)-oe*S(_e-1)),_e>V+1&&(xe=oe*S(_e-2),E(_e-2,te*S(_e-2))),D(_e-V,Ue),D(_e-V+q,-he),D(_e-V+J,te),D(_e-V+X,-oe)}E(V,ke),Math.abs(S(V))<=re&&E(V,Rt),n>0&&Os($t,Xs,Ko,Z-V+1,n,_,y+J,_,y+X,l,F(V),f),r>0&&Os(nt,Xs,Ko,r,Z-V+1,_,y,_,y+q,h,R(V),p)}continue e}for(let V=1;V<=t;V++)M(V)===Rt&&$(V,Rt),M(V)<Rt&&($(V,-M(V)),n>0&&st(n,tg,l,F(V),f));for(let V=1;V<=t-1;V++){let we=1;ge=M(1);for(let se=2;se<=t+1-V;se++)M(se)<=ge&&(we=se,ge=M(se));we!==t+1-V&&($(we,M(t+1-V)),$(t+1-V,ge),n>0&&Ys(n,l,F(we),f,l,F(t+1-V),f),r>0&&Ys(r,h,R(we),1,h,R(t+1-V),1))}return 0}const l$=0,u$=1,f$=2,m$=3,h$=0,p$=1,d$=2,g$=3,Oi=0,_r=-1,w$=0,lt=0,ir=1;function rg(e,t,n,r,s,o,i,a,c,l,u,f,h,m,p,d,g,w){let _=0;const y=Math.min(n,r),b=e===l$,k=e===u$,M=b||k,$=e===f$,S=e===m$,E=t===h$,D=t===p$,F=E||D,R=t===d$,q=t===g$,J=w===-1;b||k||$||S?!(E||D||R||q)||R&&$?_=-2:n<0?_=-3:r<0?_=-4:i<Math.max(1,n)?_=-6:f<1||M&&f<n?_=-9:(p<1||E&&p<r||D&&p<y)&&(_=-11):_=-1;let X=1,z=1,L=0,B=0,A=0;if(_===0){if(n>=r&&y>0){L=It(6,"DGESVD"," ",n,r),A=5*r;const _e=r+r*32,Se=r+r*32,Ie=n+n*32,Xe=3*r+2*r*32,Nt=r+r*32,yt=r+r*32;n>=L?S?(z=r+_e,z=Math.max(z,3*r+Xe),(R||F)&&(z=Math.max(z,3*r+Nt)),z=Math.max(z,A),X=Math.max(4*r,A)):$&&q?(B=r+_e,B=Math.max(B,r+Se),B=Math.max(B,3*r+Xe),B=Math.max(B,3*r+yt),B=Math.max(B,A),z=Math.max(r*r+B,r*r+n*r+r),X=Math.max(3*r+n,A)):$&&F?(B=r+_e,B=Math.max(B,r+Se),B=Math.max(B,3*r+Xe),B=Math.max(B,3*r+yt),B=Math.max(B,3*r+Nt),B=Math.max(B,A),z=Math.max(r*r+B,r*r+n*r+r),X=Math.max(3*r+n,A)):k&&q?(B=r+_e,B=Math.max(B,r+Se),B=Math.max(B,3*r+Xe),B=Math.max(B,3*r+yt),B=Math.max(B,A),z=r*r+B,X=Math.max(3*r+n,A)):k&&R?(B=r+_e,B=Math.max(B,r+Se),B=Math.max(B,3*r+Xe),B=Math.max(B,3*r+yt),B=Math.max(B,3*r+Nt),B=Math.max(B,A),z=2*r*r+B,X=Math.max(3*r+n,A)):k&&F?(B=r+_e,B=Math.max(B,r+Se),B=Math.max(B,3*r+Xe),B=Math.max(B,3*r+yt),B=Math.max(B,3*r+Nt),B=Math.max(B,A),z=r*r+B,X=Math.max(3*r+n,A)):b&&q?(B=r+_e,B=Math.max(B,r+Ie),B=Math.max(B,3*r+Xe),B=Math.max(B,3*r+yt),B=Math.max(B,A),z=r*r+B,X=Math.max(3*r+n,A)):b&&R?(B=r+_e,B=Math.max(B,r+Ie),B=Math.max(B,3*r+Xe),B=Math.max(B,3*r+yt),B=Math.max(B,3*r+Nt),B=Math.max(B,A),z=2*r*r+B,X=Math.max(3*r+n,A)):b&&F&&(B=r+_e,B=Math.max(B,r+Ie),B=Math.max(B,3*r+Xe),B=Math.max(B,3*r+yt),B=Math.max(B,3*r+Nt),B=Math.max(B,A),z=r*r+B,X=Math.max(3*r+n,A)):(z=3*r+(n+r)*32,(k||$)&&(z=Math.max(z,3*r+r*32)),b&&(z=Math.max(z,3*r+n*32)),q||(z=Math.max(z,3*r+r*32)),z=Math.max(z,A),X=Math.max(3*r+n,A))}else if(y>0){L=It(6,"DGESVD"," ",n,r),A=5*n;const _e=n+n*32,Se=r+r*32,Ie=n+n*32,Xe=3*n+2*n*32,Nt=n+n*32,yt=n+n*32;r>=L?q?(z=n+_e,z=Math.max(z,3*n+Xe),($||M)&&(z=Math.max(z,3*n+yt)),z=Math.max(z,A),X=Math.max(4*n,A)):R&&S?(B=n+_e,B=Math.max(B,n+Ie),B=Math.max(B,3*n+Xe),B=Math.max(B,3*n+Nt),B=Math.max(B,A),z=Math.max(n*n+B,n*n+n*r+n),X=Math.max(3*n+r,A)):R&&M?(B=n+_e,B=Math.max(B,n+Ie),B=Math.max(B,3*n+Xe),B=Math.max(B,3*n+Nt),B=Math.max(B,3*n+yt),B=Math.max(B,A),z=Math.max(n*n+B,n*n+n*r+n),X=Math.max(3*n+r,A)):D&&S?(B=n+_e,B=Math.max(B,n+Ie),B=Math.max(B,3*n+Xe),B=Math.max(B,3*n+Nt),B=Math.max(B,A),z=n*n+B,X=Math.max(3*n+r,A)):D&&$?(B=n+_e,B=Math.max(B,n+Ie),B=Math.max(B,3*n+Xe),B=Math.max(B,3*n+Nt),B=Math.max(B,3*n+yt),B=Math.max(B,A),z=2*n*n+B,X=Math.max(3*n+r,A)):D&&M?(B=n+_e,B=Math.max(B,n+Ie),B=Math.max(B,3*n+Xe),B=Math.max(B,3*n+Nt),B=Math.max(B,3*n+yt),B=Math.max(B,A),z=n*n+B,X=Math.max(3*n+r,A)):E&&S?(B=n+_e,B=Math.max(B,n+Se),B=Math.max(B,3*n+Xe),B=Math.max(B,3*n+Nt),B=Math.max(B,A),z=n*n+B,X=Math.max(3*n+r,A)):E&&$?(B=n+_e,B=Math.max(B,n+Se),B=Math.max(B,3*n+Xe),B=Math.max(B,3*n+Nt),B=Math.max(B,3*n+yt),B=Math.max(B,A),z=2*n*n+B,X=Math.max(3*n+r,A)):E&&M&&(B=n+_e,B=Math.max(B,n+Se),B=Math.max(B,3*n+Xe),B=Math.max(B,3*n+Nt),B=Math.max(B,3*n+yt),B=Math.max(B,A),z=n*n+B,X=Math.max(3*n+r,A)):(z=3*n+(n+r)*32,(D||R)&&(z=Math.max(z,3*n+r*32)),E&&(z=Math.max(z,3*n+r*32)),S||(z=Math.max(z,3*n+n*32)),z=Math.max(z,A),X=Math.max(3*n+r,A))}z=Math.max(z,X),d[g]=z,w<X&&!J&&(_=-13)}if(_!==0)return an("DGESVD",-_),_;if(J||n===0||r===0)return 0;const G=Bt(Wi),ie=Math.sqrt(Bt(er))/G,ge=ir/ie,ne=v(1),re=Km(w$,n,r,s,o,i);let le=0;re>lt&&re<ie?(le=1,is(Oi,0,0,re,ie,n,r,s,o,i)):re>ge&&(le=1,is(Oi,0,0,re,ge,n,r,s,o,i));const K=Math.max(z,1),P=v(K+1);let ce=0,me,fe,Z,V,we,se,Te,ke,xe,Ue,he,te,oe,Re;if(n>=r)if(n>=L)if(S)Z=0,V=Z+r,Qs(n,r,s,o,i,P,Z),r>1&&dn(ot,r-1,r-1,lt,lt,s,o+1,i),ce=0,me=ce+r,fe=me+r,V=fe+r,Pn(r,r,s,o,i,a,c,P,ce,P,me,P,fe,P,V,K-V),Te=0,(R||F)&&(Lt(Vn,r,r,r,s,o,i,P,fe,P,V,K-V),Te=r),V=ce+r,_=xn(He,r,Te,0,0,a,c,P,ce,s,o,i,ne,0,1,ne,0,1,P,V),F&&Qe(_r,r,r,s,o,i,h,m,p);else if($&&q){we=0,he=r,te=Math.max(r,Math.min(n,Math.floor(K/r))),Z=we+he*r,V=Z+r,Qs(n,r,s,o,i,P,Z),Qe(He,r,r,s,o,i,P,we,he),dn(ot,r-1,r-1,lt,lt,P,we+1,he),ss(n,r,r,s,o,i,P,Z),ce=Z,me=ce+r,fe=me+r,V=fe+r,Pn(r,r,P,we,he,a,c,P,ce,P,me,P,fe,P,V,K-V),Lt(qn,r,r,r,P,we,he,P,me,P,V,K-V),V=ce+r,_=xn(He,r,0,r,0,a,c,P,ce,ne,0,1,P,we,he,ne,0,1,P,V),se=ce+r;for(let _e=0;_e<n;_e+=te)oe=Math.min(n-_e,te),bt(Ee,Ee,oe,r,r,ir,s,o+_e,i,P,we,he,lt,P,se,te),Qe(_r,oe,r,P,se,te,s,o+_e,i)}else if($&&F){we=0,he=r,te=Math.max(r,Math.min(n,Math.floor(K/r))),Z=we+he*r,V=Z+r,Qs(n,r,s,o,i,P,Z),Qe(He,r,r,s,o,i,h,m,p),r>1&&dn(ot,r-1,r-1,lt,lt,h,m+1,p),ss(n,r,r,s,o,i,P,Z),ce=Z,me=ce+r,fe=me+r,V=fe+r,Pn(r,r,h,m,p,a,c,P,ce,P,me,P,fe,P,V,K-V),Qe(ot,r,r,h,m,p,P,we,he),Lt(qn,r,r,r,P,we,he,P,me,P,V,K-V),Lt(Vn,r,r,r,h,m,p,P,fe,P,V,K-V),V=ce+r,_=xn(He,r,r,r,0,a,c,P,ce,h,m,p,P,we,he,ne,0,1,P,V),se=ce+r;for(let _e=0;_e<n;_e+=te)oe=Math.min(n-_e,te),bt(Ee,Ee,oe,r,r,ir,s,o+_e,i,P,we,he,lt,P,se,te),Qe(_r,oe,r,P,se,te,s,o+_e,i)}else k?q?(we=0,he=r,Z=we+he*r,V=Z+r,Qs(n,r,s,o,i,P,Z),Qe(He,r,r,s,o,i,P,we,he),dn(ot,r-1,r-1,lt,lt,P,we+1,he),ss(n,r,r,s,o,i,P,Z),ce=Z,me=ce+r,fe=me+r,V=fe+r,Pn(r,r,P,we,he,a,c,P,ce,P,me,P,fe,P,V,K-V),Lt(qn,r,r,r,P,we,he,P,me,P,V,K-V),V=ce+r,_=xn(He,r,0,r,0,a,c,P,ce,ne,0,1,P,we,he,ne,0,1,P,V),bt(Ee,Ee,n,r,r,ir,s,o,i,P,we,he,lt,l,u,f)):R?(se=0,te=r,we=se+te*r,he=r,Z=we+he*r,V=Z+r,Qs(n,r,s,o,i,P,Z),Qe(He,r,r,s,o,i,P,se,te),dn(ot,r-1,r-1,lt,lt,P,se+1,te),ss(n,r,r,s,o,i,P,Z),ce=Z,me=ce+r,fe=me+r,V=fe+r,Pn(r,r,P,se,te,a,c,P,ce,P,me,P,fe,P,V,K-V),Qe(He,r,r,P,se,te,P,we,he),Lt(qn,r,r,r,P,se,te,P,me,P,V,K-V),Lt(Vn,r,r,r,P,we,he,P,fe,P,V,K-V),V=ce+r,_=xn(He,r,r,r,0,a,c,P,ce,P,we,he,P,se,te,ne,0,1,P,V),bt(Ee,Ee,n,r,r,ir,s,o,i,P,se,te,lt,l,u,f),Qe(_r,r,r,P,we,he,s,o,i)):F&&(se=0,te=r,Z=se+te*r,V=Z+r,Qs(n,r,s,o,i,P,Z),Qe(He,r,r,s,o,i,P,se,te),dn(ot,r-1,r-1,lt,lt,P,se+1,te),ss(n,r,r,s,o,i,P,Z),ce=Z,me=ce+r,fe=me+r,V=fe+r,Pn(r,r,P,se,te,a,c,P,ce,P,me,P,fe,P,V,K-V),Qe(He,r,r,P,se,te,h,m,p),Lt(qn,r,r,r,P,se,te,P,me,P,V,K-V),Lt(Vn,r,r,r,h,m,p,P,fe,P,V,K-V),V=ce+r,_=xn(He,r,r,r,0,a,c,P,ce,h,m,p,P,se,te,ne,0,1,P,V),bt(Ee,Ee,n,r,r,ir,s,o,i,P,se,te,lt,l,u,f)):b&&(q?(we=0,he=r,Z=we+he*r,V=Z+r,Qs(n,r,s,o,i,P,Z),Qe(ot,n,r,s,o,i,l,u,f),Qe(He,r,r,s,o,i,P,we,he),dn(ot,r-1,r-1,lt,lt,P,we+1,he),ss(n,n,r,l,u,f,P,Z),ce=Z,me=ce+r,fe=me+r,V=fe+r,Pn(r,r,P,we,he,a,c,P,ce,P,me,P,fe,P,V,K-V),Lt(qn,r,r,r,P,we,he,P,me,P,V,K-V),V=ce+r,_=xn(He,r,0,r,0,a,c,P,ce,ne,0,1,P,we,he,ne,0,1,P,V),bt(Ee,Ee,n,r,r,ir,l,u,f,P,we,he,lt,s,o,i),Qe(_r,n,r,s,o,i,l,u,f)):R?(se=0,te=r,we=se+te*r,he=r,Z=we+he*r,V=Z+r,Qs(n,r,s,o,i,P,Z),Qe(ot,n,r,s,o,i,l,u,f),ss(n,n,r,l,u,f,P,Z),Qe(He,r,r,s,o,i,P,se,te),dn(ot,r-1,r-1,lt,lt,P,se+1,te),ce=Z,me=ce+r,fe=me+r,V=fe+r,Pn(r,r,P,se,te,a,c,P,ce,P,me,P,fe,P,V,K-V),Qe(He,r,r,P,se,te,P,we,he),Lt(qn,r,r,r,P,se,te,P,me,P,V,K-V),Lt(Vn,r,r,r,P,we,he,P,fe,P,V,K-V),V=ce+r,_=xn(He,r,r,r,0,a,c,P,ce,P,we,he,P,se,te,ne,0,1,P,V),bt(Ee,Ee,n,r,r,ir,l,u,f,P,se,te,lt,s,o,i),Qe(_r,n,r,s,o,i,l,u,f),Qe(_r,r,r,P,we,he,s,o,i)):F&&(se=0,te=r,Z=se+te*r,V=Z+r,Qs(n,r,s,o,i,P,Z),Qe(ot,n,r,s,o,i,l,u,f),ss(n,n,r,l,u,f,P,Z),Qe(He,r,r,s,o,i,P,se,te),dn(ot,r-1,r-1,lt,lt,P,se+1,te),ce=Z,me=ce+r,fe=me+r,V=fe+r,Pn(r,r,P,se,te,a,c,P,ce,P,me,P,fe,P,V,K-V),Qe(He,r,r,P,se,te,h,m,p),Lt(qn,r,r,r,P,se,te,P,me,P,V,K-V),Lt(Vn,r,r,r,h,m,p,P,fe,P,V,K-V),V=ce+r,_=xn(He,r,r,r,0,a,c,P,ce,h,m,p,P,se,te,ne,0,1,P,V),bt(Ee,Ee,n,r,r,ir,l,u,f,P,se,te,lt,s,o,i),Qe(_r,n,r,s,o,i,l,u,f)));else ce=0,me=ce+r,fe=me+r,V=fe+r,Pn(n,r,s,o,i,a,c,P,ce,P,me,P,fe,P,V,K-V),M&&(Qe(ot,n,r,s,o,i,l,u,f),xe=k?r:n,Lt(qn,n,xe,r,l,u,f,P,me,P,V,K-V)),F&&(Qe(He,r,r,s,o,i,h,m,p),Lt(Vn,r,r,r,h,m,p,P,fe,P,V,K-V)),$&&Lt(qn,n,r,r,s,o,i,P,me,P,V,K-V),R&&Lt(Vn,r,r,r,s,o,i,P,fe,P,V,K-V),V=ce+r,ke=0,(M||$)&&(ke=n),S&&(ke=0),Te=0,(F||R)&&(Te=r),q&&(Te=0),!$&&!R?_=xn(He,r,Te,ke,0,a,c,P,ce,h,m,p,l,u,f,ne,0,1,P,V):!$&&R?_=xn(He,r,Te,ke,0,a,c,P,ce,s,o,i,l,u,f,ne,0,1,P,V):_=xn(He,r,Te,ke,0,a,c,P,ce,h,m,p,s,o,i,ne,0,1,P,V);else if(r>=L)if(q)Z=0,V=Z+n,Gs(n,r,s,o,i,P,Z,P,V,K-V),n>1&&dn(He,n-1,n-1,lt,lt,s,o+i,i),ce=0,me=ce+n,fe=me+n,V=fe+n,Pn(n,n,s,o,i,a,c,P,ce,P,me,P,fe,P,V,K-V),($||M)&&Lt(qn,n,n,n,s,o,i,P,me,P,V,K-V),V=ce+n,ke=0,($||M)&&(ke=n),_=xn(He,n,0,ke,0,a,c,P,ce,ne,0,1,s,o,i,ne,0,1,P,V),M&&Qe(_r,n,n,s,o,i,l,u,f);else if(R&&S){we=0,he=n,te=n,oe=Math.max(n,Math.min(r,Math.floor(K/n))),Z=we+he*n,V=Z+n,Gs(n,r,s,o,i,P,Z,P,V,K-V),Qe(ot,n,n,s,o,i,P,we,he),dn(He,n-1,n-1,lt,lt,P,we+he,he),Ms(n,r,n,s,o,i,P,Z,P,V,K-V),ce=Z,me=ce+n,fe=me+n,V=fe+n,Pn(n,n,P,we,he,a,c,P,ce,P,me,P,fe,P,V,K-V),Lt(Vn,n,n,n,P,we,he,P,fe,P,V,K-V),V=ce+n,_=xn(He,n,n,0,0,a,c,P,ce,P,we,he,ne,0,1,ne,0,1,P,V),se=ce+n;for(let _e=0;_e<r;_e+=oe)Re=Math.min(r-_e,oe),bt(Ee,Ee,n,Re,n,ir,P,we,he,s,o+_e*i,i,lt,P,se,te),Qe(_r,n,Re,P,se,te,s,o+_e*i,i)}else if(R&&M){we=0,he=n,te=n,oe=Math.max(n,Math.min(r,Math.floor(K/n))),Z=we+he*n,V=Z+n,Gs(n,r,s,o,i,P,Z,P,V,K-V),Qe(ot,n,n,s,o,i,l,u,f),n>1&&dn(He,n-1,n-1,lt,lt,l,u+f,f),Ms(n,r,n,s,o,i,P,Z,P,V,K-V),ce=Z,me=ce+n,fe=me+n,V=fe+n,Pn(n,n,l,u,f,a,c,P,ce,P,me,P,fe,P,V,K-V),Qe(He,n,n,l,u,f,P,we,he),Lt(Vn,n,n,n,P,we,he,P,fe,P,V,K-V),Lt(qn,n,n,n,l,u,f,P,me,P,V,K-V),V=ce+n,_=xn(He,n,n,n,0,a,c,P,ce,P,we,he,l,u,f,ne,0,1,P,V),se=ce+n;for(let _e=0;_e<r;_e+=oe)Re=Math.min(r-_e,oe),bt(Ee,Ee,n,Re,n,ir,P,we,he,s,o+_e*i,i,lt,P,se,te),Qe(_r,n,Re,P,se,te,s,o+_e*i,i)}else D?S?(we=0,he=n,Z=we+he*n,V=Z+n,Gs(n,r,s,o,i,P,Z,P,V,K-V),Qe(ot,n,n,s,o,i,P,we,he),dn(He,n-1,n-1,lt,lt,P,we+he,he),Ms(n,r,n,s,o,i,P,Z,P,V,K-V),ce=Z,me=ce+n,fe=me+n,V=fe+n,Pn(n,n,P,we,he,a,c,P,ce,P,me,P,fe,P,V,K-V),Lt(Vn,n,n,n,P,we,he,P,fe,P,V,K-V),V=ce+n,_=xn(He,n,n,0,0,a,c,P,ce,P,we,he,ne,0,1,ne,0,1,P,V),bt(Ee,Ee,n,r,n,ir,P,we,he,s,o,i,lt,h,m,p)):$?(se=0,te=n,we=se+te*n,he=n,Z=we+he*n,V=Z+n,Gs(n,r,s,o,i,P,Z,P,V,K-V),Qe(ot,n,n,s,o,i,P,se,te),dn(He,n-1,n-1,lt,lt,P,se+te,te),Ms(n,r,n,s,o,i,P,Z,P,V,K-V),ce=Z,me=ce+n,fe=me+n,V=fe+n,Pn(n,n,P,se,te,a,c,P,ce,P,me,P,fe,P,V,K-V),Qe(ot,n,n,P,se,te,P,we,he),Lt(Vn,n,n,n,P,se,te,P,fe,P,V,K-V),Lt(qn,n,n,n,P,we,he,P,me,P,V,K-V),V=ce+n,_=xn(He,n,n,n,0,a,c,P,ce,P,se,te,P,we,he,ne,0,1,P,V),bt(Ee,Ee,n,r,n,ir,P,se,te,s,o,i,lt,h,m,p),Qe(_r,n,n,P,we,he,s,o,i)):M&&(se=0,te=n,Z=se+te*n,V=Z+n,Gs(n,r,s,o,i,P,Z,P,V,K-V),Qe(ot,n,n,s,o,i,P,se,te),dn(He,n-1,n-1,lt,lt,P,se+te,te),Ms(n,r,n,s,o,i,P,Z,P,V,K-V),ce=Z,me=ce+n,fe=me+n,V=fe+n,Pn(n,n,P,se,te,a,c,P,ce,P,me,P,fe,P,V,K-V),Qe(ot,n,n,P,se,te,l,u,f),Lt(Vn,n,n,n,P,se,te,P,fe,P,V,K-V),Lt(qn,n,n,n,l,u,f,P,me,P,V,K-V),V=ce+n,_=xn(He,n,n,n,0,a,c,P,ce,P,se,te,l,u,f,ne,0,1,P,V),bt(Ee,Ee,n,r,n,ir,P,se,te,s,o,i,lt,h,m,p)):E&&(S?(we=0,he=n,Z=we+he*n,V=Z+n,Gs(n,r,s,o,i,P,Z,P,V,K-V),Qe(He,n,r,s,o,i,h,m,p),Qe(ot,n,n,s,o,i,P,we,he),dn(He,n-1,n-1,lt,lt,P,we+he,he),Ms(r,r,n,h,m,p,P,Z,P,V,K-V),ce=Z,me=ce+n,fe=me+n,V=fe+n,Pn(n,n,P,we,he,a,c,P,ce,P,me,P,fe,P,V,K-V),Lt(Vn,n,n,n,P,we,he,P,fe,P,V,K-V),V=ce+n,_=xn(He,n,n,0,0,a,c,P,ce,P,we,he,ne,0,1,ne,0,1,P,V),bt(Ee,Ee,n,r,n,ir,P,we,he,h,m,p,lt,s,o,i),Qe(_r,n,r,s,o,i,h,m,p)):$?(se=0,te=n,we=se+te*n,he=n,Z=we+he*n,V=Z+n,Gs(n,r,s,o,i,P,Z,P,V,K-V),Qe(He,n,r,s,o,i,h,m,p),Ms(r,r,n,h,m,p,P,Z,P,V,K-V),Qe(ot,n,n,s,o,i,P,se,te),dn(He,n-1,n-1,lt,lt,P,se+te,te),ce=Z,me=ce+n,fe=me+n,V=fe+n,Pn(n,n,P,se,te,a,c,P,ce,P,me,P,fe,P,V,K-V),Qe(ot,n,n,P,se,te,P,we,he),Lt(Vn,n,n,n,P,se,te,P,fe,P,V,K-V),Lt(qn,n,n,n,P,we,he,P,me,P,V,K-V),V=ce+n,_=xn(He,n,n,n,0,a,c,P,ce,P,se,te,P,we,he,ne,0,1,P,V),bt(Ee,Ee,n,r,n,ir,P,se,te,h,m,p,lt,s,o,i),Qe(_r,n,r,s,o,i,h,m,p),Qe(_r,n,n,P,we,he,s,o,i)):M&&(se=0,te=n,Z=se+te*n,V=Z+n,Gs(n,r,s,o,i,P,Z,P,V,K-V),Qe(He,n,r,s,o,i,h,m,p),Ms(r,r,n,h,m,p,P,Z,P,V,K-V),Qe(ot,n,n,s,o,i,P,se,te),dn(He,n-1,n-1,lt,lt,P,se+te,te),ce=Z,me=ce+n,fe=me+n,V=fe+n,Pn(n,n,P,se,te,a,c,P,ce,P,me,P,fe,P,V,K-V),Qe(ot,n,n,P,se,te,l,u,f),Lt(Vn,n,n,n,P,se,te,P,fe,P,V,K-V),Lt(qn,n,n,n,l,u,f,P,me,P,V,K-V),V=ce+n,_=xn(He,n,n,n,0,a,c,P,ce,P,se,te,l,u,f,ne,0,1,P,V),bt(Ee,Ee,n,r,n,ir,P,se,te,h,m,p,lt,s,o,i),Qe(_r,n,r,s,o,i,h,m,p)));else ce=0,me=ce+n,fe=me+n,V=fe+n,Pn(n,r,s,o,i,a,c,P,ce,P,me,P,fe,P,V,K-V),M&&(Qe(ot,n,n,s,o,i,l,u,f),Lt(qn,n,n,r,l,u,f,P,me,P,V,K-V)),F&&(Qe(He,n,r,s,o,i,h,m,p),Ue=E?r:n,Lt(Vn,Ue,r,n,h,m,p,P,fe,P,V,K-V)),$&&Lt(qn,n,n,r,s,o,i,P,me,P,V,K-V),R&&Lt(Vn,n,r,n,s,o,i,P,fe,P,V,K-V),V=ce+n,ke=0,(M||$)&&(ke=n),S&&(ke=0),Te=0,(F||R)&&(Te=r),q&&(Te=0),!$&&!R?_=xn(ot,n,Te,ke,0,a,c,P,ce,h,m,p,l,u,f,ne,0,1,P,V):!$&&R?_=xn(ot,n,Te,ke,0,a,c,P,ce,s,o,i,l,u,f,ne,0,1,P,V):_=xn(ot,n,Te,ke,0,a,c,P,ce,h,m,p,s,o,i,ne,0,1,P,V);if(_!==0){if(ce>1)for(let _e=0;_e<y-1;_e++)d[g+_e+1]=P[_e+ce];if(ce<1)for(let _e=y-2;_e>=0;_e--)d[g+_e+1]=P[_e+ce]}return le===1&&(re>ge&&is(Oi,0,0,ge,re,y,1,a,c,y),_!==0&&re>ge&&is(Oi,0,0,ge,re,y-1,1,d,g+1,y),re<ie&&is(Oi,0,0,ie,re,y,1,a,c,y),_!==0&&re<ie&&is(Oi,0,0,ie,re,y-1,1,d,g+1,y)),d[g]=z,_}function _$(e,t,n,r,s){const o=e===He;let i=0;if(!o&&e!==ot?i=-1:t<0?i=-2:s<Math.max(1,t)&&(i=-5),i!==0)return an("DPOTF2",-i),i;if(t===0)return 0;if(o)for(let a=1;a<=t;a++){let c=n[r+(a-1)+(a-1)*s]-os(a-1,n,r+(a-1)*s,1,n,r+(a-1)*s,1);if(c<=0||Number.isNaN(c))return n[r+(a-1)+(a-1)*s]=c,a;c=Math.sqrt(c),n[r+(a-1)+(a-1)*s]=c,a<t&&(ht(mt,a-1,t-a,-1,n,r+a*s,s,n,r+(a-1)*s,1,1,n,r+(a-1)+a*s,s),st(t-a,1/c,n,r+(a-1)+a*s,s))}else for(let a=1;a<=t;a++){let c=n[r+(a-1)+(a-1)*s]-os(a-1,n,r+(a-1),s,n,r+(a-1),s);if(c<=0||Number.isNaN(c))return n[r+(a-1)+(a-1)*s]=c,a;c=Math.sqrt(c),n[r+(a-1)+(a-1)*s]=c,a<t&&(ht(Ee,t-a,a-1,-1,n,r+a,s,n,r+(a-1),s,1,n,r+a+(a-1)*s,1),st(t-a,1/c,n,r+a+(a-1)*s,1))}return 0}function y$(e,t,n,r,s,o,i,a){if(e<0)throw new Error("** On entry to 'DORGQR' parameter number 1 had an illegal value");if(t<0||t>e)throw new Error("** On entry to 'DORGQR' parameter number 2 had an illegal value");if(n<0||n>t)throw new Error("** On entry to 'DORGQR' parameter number 3 had an illegal value");if(o<Math.max(1,e))throw new Error("** On entry to 'DORGQR' parameter number 5 had an illegal value");if(t<=0)return 0;const c=v(e);for(let l=n;l<t;l++){const u=s+l*o;r.fill(0,u,u+e),r[u+l]=1}for(let l=n;l>=1;l--){const u=l-1,f=s+u*o,h=f+u,m=i[a+u];if(l<t&&m!==0){const p=e-u,d=t-l,g=h+o;c[0]=1;for(let w=1;w<p;w++)c[w]=r[h+w];for(let w=0;w<d;w++){const _=g+w*o;let y=0;for(let k=0;k<p;k++)y+=c[k]*r[_+k];const b=m*y;for(let k=0;k<p;k++)r[_+k]-=b*c[k]}}if(l<e){const p=-m;if(p!==1){const d=f+e;for(let g=h+1;g<d;g++)r[g]*=p}}r[h]=1-m,r.fill(0,f,h)}return 0}const sg=Number.EPSILON*.5,og=22250738585072014e-324,ig=1/Number.MAX_VALUE,Kl=(ig>=og?ig*(1+sg):og)/sg,ch=1/Kl,ag=Number.MAX_VALUE;function lh(e,t,n,r,s,o,i){if(e<0)throw new Error("** On entry to 'DGEQRF' parameter number 1 had an illegal value");if(t<0)throw new Error("** On entry to 'DGEQRF' parameter number 2 had an illegal value");if(s<Math.max(1,e))throw new Error("** On entry to 'DGEQRF' parameter number 4 had an illegal value");const a=Math.min(e,t);if(a===0)return 0;const c=v(e);for(let l=1;l<=a;l++){const u=r+(l-1)+(l-1)*s,f=e-l+1;let h;if(f<=1)h=0;else{const m=u+1,p=f-1,d=m+p;let g=n[u],w;if(p===1)w=Math.abs(n[m]);else{let _=0,y=1;for(let b=m;b<d;b++){const k=Math.abs(n[b]);k>0&&(_<k?(y=1+y*(_/k)*(_/k),_=k):y+=k/_*(k/_))}w=_*Math.sqrt(y)}if(w===0)h=0;else{let _;{const b=Math.abs(g),k=b>w?b:w,M=b<w?b:w;_=M===0||k>ag?k:k*Math.sqrt(1+M/k*(M/k)),_=g>=0?-_:_}let y=0;if(Math.abs(_)<Kl){do{y++;for(let b=m;b<d;b++)n[b]*=ch;_*=ch,g*=ch}while(Math.abs(_)<Kl&&y<20);if(p===1)w=Math.abs(n[m]);else{let b=0,k=1;for(let M=m;M<d;M++){const $=Math.abs(n[M]);$>0&&(b<$?(k=1+k*(b/$)*(b/$),b=$):k+=$/b*($/b))}w=b*Math.sqrt(k)}{const b=Math.abs(g),k=b>w?b:w,M=b<w?b:w;_=M===0||k>ag?k:k*Math.sqrt(1+M/k*(M/k)),_=g>=0?-_:_}}h=(_-g)/_;{const b=1/(g-_);for(let k=m;k<d;k++)n[k]*=b}for(let b=1;b<=y;b++)_*=Kl;n[u]=_}}if(o[i+(l-1)]=h,l<t&&h!==0){const m=e-l+1,p=t-l,d=r+(l-1)+l*s;c[0]=1;for(let _=1;_<m;_++)c[_]=n[u+_];let g=m;for(;g>1&&c[g-1]===0;)g--;let w;if(p===0)w=0;else if(n[d+(p-1)*s]!==0||n[d+(g-1)+(p-1)*s]!==0)w=p;else{w=0;e:for(let _=p;_>=1;_--){const y=d+(_-1)*s;for(let b=0;b<g;b++)if(n[y+b]!==0){w=_;break e}}}if(w===0)continue;if(g===1){const _=1-h;for(let y=0;y<w;y++)n[d+y*s]*=_}else for(let _=0;_<w;_++){const y=d+_*s;let b=0;for(let M=0;M<g;M++)b+=c[M]*n[y+M];const k=h*b;for(let M=0;M<g;M++)n[y+M]-=k*c[M]}}}return 0}function x$(e,t,n,r,s,o,i,a,c,l,u,f,h,m,p,d){const g=n,w=s;let _=0;if(n<0?_=3:r<0?_=4:s<0?_=5:c<Math.max(1,g)?_=8:f<Math.max(1,w)?_=10:d<Math.max(1,n)&&(_=13),_!==0){an("DGEMM ",_);return}if(!(n===0||r===0||s===0&&h===1))for(let y=0;y<r;y++){const b=u+y*f,k=p+y*d;m.fill(0,k,k+n);for(let M=0;M<s;M++){const $=o*l[b+M],S=a+M*c;for(let E=0;E<n;E++)m[k+E]+=$*i[S+E]}}}const uh=2220446049250313e-31,fh=22250738585072014e-324;function Mn(e,t){return Math.abs(e)+Math.abs(t)}function Zl(e,t,n,r){if(Math.abs(n)>=Math.abs(r)){const s=r/n,o=n+r*s;return[(e+t*s)/o,(t-e*s)/o]}else{const s=n/r,o=n*s+r;return[(e*s+t)/o,(t*s-e)/o]}}function b$(e,t){return t>=0?Math.abs(e):-Math.abs(e)}function cg(e,t,n,r,s){if(e<=0)return[0,0];let o=0;for(let p=1;p<e;p++){const d=r+p*s;o+=t[d]*t[d]+n[d]*n[d]}const i=Math.sqrt(o),a=t[r],c=n[r];if(i===0&&c===0)return[0,0];const l=-b$(Math.hypot(a,c,i),a),u=(l-a)/l,f=-c/l,[h,m]=Zl(1,0,a-l,c);for(let p=1;p<e;p++){const d=r+p*s,g=t[d],w=n[d];t[d]=g*h-w*m,n[d]=g*m+w*h}return t[r]=l,n[r]=0,[u,f]}function k$(e,t,n,r,s,o){const i=v(e),a=v(e);for(let c=1;c<=e-2;c++){const l=(c-1)*e,[u,f]=cg(e-c,t,n,l+c,1);i[0]=1,a[0]=0;for(let h=c+2;h<=e;h++)i[h-c-1]=t[l+(h-1)],a[h-c-1]=n[l+(h-1)];(u!==0||f!==0)&&(lg(t,n,e,1,e,c+1,e,i,a,u,f),v$(t,n,e,c+1,e,c+1,e,i,a,u,-f),o&&lg(r,s,e,1,e,c+1,e,i,a,u,f));for(let h=c+2;h<=e;h++)t[l+(h-1)]=0,n[l+(h-1)]=0}}function v$(e,t,n,r,s,o,i,a,c,l,u){for(let f=o;f<=i;f++){const h=(f-1)*n;let m=0,p=0;for(let w=0;w<=s-r;w++){const _=h+(r-1+w),y=a[w],b=c[w];m+=y*e[_]+b*t[_],p+=y*t[_]-b*e[_]}const d=l*m-u*p,g=l*p+u*m;for(let w=0;w<=s-r;w++){const _=h+(r-1+w),y=a[w],b=c[w];e[_]-=y*d-b*g,t[_]-=y*g+b*d}}}function lg(e,t,n,r,s,o,i,a,c,l,u){for(let f=r;f<=s;f++){let h=0,m=0;for(let g=0;g<=i-o;g++){const w=(o-1+g)*n+(f-1),_=a[g],y=c[g];h+=e[w]*_-t[w]*y,m+=e[w]*y+t[w]*_}const p=l*h-u*m,d=l*m+u*h;for(let g=0;g<=i-o;g++){const w=(o-1+g)*n+(f-1),_=a[g],y=c[g];e[w]-=p*_+d*y,t[w]-=d*_-p*y}}}function M$(e,t,n,r,s,o,i,a,c,l,u,f,h){const m=(J,X)=>(X-1)*n+(J-1),p=(J,X)=>(X-1)*n+(J-1);if(n===0)return 0;if(r===s)return a[r-1]=o[m(r,r)],c[r-1]=i[m(r,r)],0;for(let J=r;J<=s-3;J++)o[m(J+2,J)]=0,i[m(J+2,J)]=0,o[m(J+3,J)]=0,i[m(J+3,J)]=0;r<=s-2&&(o[m(s,s-2)]=0,i[m(s,s-2)]=0);const w=e?1:r,_=e?n:s;for(let J=r+1;J<=s;J++)if(i[m(J,J-1)]!==0){const X=o[m(J,J-1)],z=i[m(J,J-1)],L=Mn(X,z);let B=X/L,A=z/L;const G=Math.hypot(B,A);B=B/G,A=-A/G;const ie=Math.hypot(X,z);o[m(J,J-1)]=ie,i[m(J,J-1)]=0,eo(o,i,B,A,m(J,J),n,_-J+1),eo(o,i,B,-A,m(w,J),1,Math.min(_,J+1)-w+1),t&&eo(f,h,B,-A,p(l,J),1,u-l+1)}const y=s-r+1,b=u-l+1,k=uh,M=fh*(y/k);let $=1,S=n;const E=30*Math.max(10,y);let D=0;const F=new Float64Array(2),R=new Float64Array(2);let q=s;for(;q>=r;){let J=r,X=!1;for(let z=0;z<=E;z++){let L;for(L=q;L>=J+1&&!(Mn(o[m(L,L-1)],i[m(L,L-1)])<=M);L--){let re=Mn(o[m(L-1,L-1)],i[m(L-1,L-1)])+Mn(o[m(L,L)],i[m(L,L)]);if(re===0&&(L-2>=r&&(re+=Math.abs(o[m(L-1,L-2)])),L+1<=s&&(re+=Math.abs(o[m(L+1,L)]))),Math.abs(o[m(L,L-1)])<=k*re){const le=Math.max(Mn(o[m(L,L-1)],i[m(L,L-1)]),Mn(o[m(L-1,L)],i[m(L-1,L)])),K=Math.min(Mn(o[m(L,L-1)],i[m(L,L-1)]),Mn(o[m(L-1,L)],i[m(L-1,L)])),P=o[m(L-1,L-1)]-o[m(L,L)],ce=i[m(L-1,L-1)]-i[m(L,L)],me=Math.max(Mn(o[m(L,L)],i[m(L,L)]),Mn(P,ce)),fe=Math.min(Mn(o[m(L,L)],i[m(L,L)]),Mn(P,ce)),Z=me+le;if(K*(le/Z)<=Math.max(M,k*(fe*(me/Z))))break}}if(J=L,J>r&&(o[m(J,J-1)]=0,i[m(J,J-1)]=0),J>=q){X=!0;break}D++,e||($=J,S=q);let B,A;if(D%20===0)B=.75*Math.abs(o[m(q,q-1)])+o[m(q,q)],A=i[m(q,q)];else if(D%10===0)B=.75*Math.abs(o[m(J+1,J)])+o[m(J,J)],A=i[m(J,J)];else{B=o[m(q,q)],A=i[m(q,q)];const[re,le]=mh(o[m(q-1,q)],i[m(q-1,q)]),[K,P]=mh(o[m(q,q-1)],i[m(q,q-1)]),ce=re*K-le*P,me=re*P+le*K;let fe=Mn(ce,me);if(fe!==0){const Z=.5*(o[m(q-1,q-1)]-B),V=.5*(i[m(q-1,q-1)]-A),we=Mn(Z,V);fe=Math.max(fe,we);const se=Z/fe,Te=V/fe,ke=ce/fe,xe=me/fe,Ue=se*se-Te*Te+(ke*ke-xe*xe),he=2*se*Te+2*ke*xe,[te,oe]=mh(Ue,he);let Re=fe*te,_e=fe*oe;if(we>0){const yt=Z/we,fn=V/we;yt*Re+fn*_e<0&&(Re=-Re,_e=-_e)}const[Se,Ie]=Zl(ce,me,Z+Re,V+_e),Xe=ce*Se-me*Ie,Nt=ce*Ie+me*Se;B-=Xe,A-=Nt}}let G,ie=0,ge=0,ne=0;for(G=q-1;G>=J+1;G--){const re=o[m(G,G)],le=i[m(G,G)],K=o[m(G+1,G+1)],P=i[m(G+1,G+1)];let ce=re-B,me=le-A,fe=o[m(G+1,G)];const Z=Mn(ce,me)+Math.abs(fe);ce/=Z,me/=Z,fe/=Z,ie=ce,ge=me,ne=fe;const V=o[m(G,G-1)];if(Math.abs(V)*Math.abs(fe)<=k*(Mn(ce,me)*(Mn(re,le)+Mn(K,P))))break}if(G<J+1){G=J;const re=o[m(J,J)],le=i[m(J,J)];let K=re-B,P=le-A,ce=o[m(J+1,J)];const me=Mn(K,P)+Math.abs(ce);K/=me,P/=me,ce/=me,ie=K,ge=P,ne=ce}for(let re=G;re<=q-1;re++){re>G?(F[0]=o[m(re,re-1)],R[0]=i[m(re,re-1)],F[1]=o[m(re+1,re-1)],R[1]=i[m(re+1,re-1)]):(F[0]=ie,R[0]=ge,F[1]=ne,R[1]=0);const[le,K]=cg(2,F,R,0,1);re>G&&(o[m(re,re-1)]=F[0],i[m(re,re-1)]=R[0],o[m(re+1,re-1)]=0,i[m(re+1,re-1)]=0);const P=F[1],ce=R[1],me=le*P-K*ce;for(let Z=re;Z<=S;Z++){const V=m(re,Z),we=m(re+1,Z),se=le*o[V]+K*i[V]+me*o[we],Te=le*i[V]-K*o[V]+me*i[we];o[V]-=se,i[V]-=Te,o[we]-=se*P-Te*ce,i[we]-=se*ce+Te*P}const fe=Math.min(re+2,q);for(let Z=$;Z<=fe;Z++){const V=m(Z,re),we=m(Z,re+1),se=le*o[V]-K*i[V]+me*o[we],Te=le*i[V]+K*o[V]+me*i[we];o[V]-=se,i[V]-=Te,o[we]-=se*P+Te*ce,i[we]-=Te*P-se*ce}if(t)for(let Z=l;Z<=u;Z++){const V=p(Z,re),we=p(Z,re+1),se=le*f[V]-K*h[V]+me*f[we],Te=le*h[V]+K*f[V]+me*h[we];f[V]-=se,h[V]-=Te,f[we]-=se*P+Te*ce,h[we]-=Te*P-se*ce}if(re===G&&G>J){let Z=1-le,V=-K;const we=Math.hypot(Z,V);Z/=we,V/=we;{const se=m(G+1,G),Te=o[se],ke=i[se];o[se]=Te*Z+ke*V,i[se]=ke*Z-Te*V}if(G+2<=q){const se=m(G+2,G+1),Te=o[se],ke=i[se];o[se]=Te*Z-ke*V,i[se]=Te*V+ke*Z}for(let se=G;se<=q;se++)se!==G+1&&(S>se&&eo(o,i,Z,V,m(se,se+1),n,S-se),eo(o,i,Z,-V,m($,se),1,se-$),t&&eo(f,h,Z,-V,p(l,se),1,b))}}{const re=m(q,q-1);if(i[re]!==0){const le=Math.hypot(o[re],i[re]),K=o[re]/le,P=i[re]/le;o[re]=le,i[re]=0,S>q&&eo(o,i,K,-P,m(q,q+1),n,S-q),eo(o,i,K,P,m($,q),1,q-$),t&&eo(f,h,K,P,p(l,q),1,b)}}}if(!X)return q;a[q-1]=o[m(q,q)],c[q-1]=i[m(q,q)],D=0,q=J-1}return 0}function mh(e,t){if(e===0&&t===0)return[0,0];const n=Math.hypot(e,t),r=Math.sqrt((n+Math.abs(e))/2);if(e>=0)return[r,t/(2*r)];{const s=t>=0?r:-r;return[t/(2*s),s]}}function eo(e,t,n,r,s,o,i){for(let a=0;a<i;a++){const c=s+a*o,l=e[c],u=t[c];e[c]=l*n-u*r,t[c]=l*r+u*n}}function $$(e,t,n,r,s){const o=(u,f)=>(f-1)*e+(u-1),i=uh,a=fh*(e/i),c=new Float64Array(e),l=new Float64Array(e);for(let u=e;u>=1;u--){const f=Math.max(i*Mn(t[o(u,u)],n[o(u,u)]),a);c[u-1]=1,l[u-1]=0;for(let p=1;p<=u-1;p++)c[p-1]=-t[o(p,u)],l[p-1]=-n[o(p,u)];const h=t[o(u,u)],m=n[o(u,u)];for(let p=u-1;p>=1;p--){let d=t[o(p,p)]-h,g=n[o(p,p)]-m;Mn(d,g)<f&&(d=f,g=0);const[w,_]=Zl(c[p-1],l[p-1],d,g);c[p-1]=w,l[p-1]=_;for(let y=1;y<=p-1;y++){const b=o(y,p);c[y-1]-=w*t[b]-_*n[b],l[y-1]-=w*n[b]+_*t[b]}}N$(e,r,s,c,l,u)}}function C$(e,t,n,r,s){const o=(u,f)=>(f-1)*e+(u-1),i=uh,a=fh*(e/i),c=new Float64Array(e),l=new Float64Array(e);for(let u=1;u<=e;u++){const f=Math.max(i*Mn(t[o(u,u)],n[o(u,u)]),a);c[u-1]=1,l[u-1]=0;for(let p=u+1;p<=e;p++)c[p-1]=-t[o(u,p)],l[p-1]=n[o(u,p)];const h=t[o(u,u)],m=n[o(u,u)];for(let p=u+1;p<=e;p++){let d=t[o(p,p)]-h,g=n[o(p,p)]-m;Mn(d,g)<f&&(d=f,g=0);let w=c[p-1],_=l[p-1];for(let k=u+1;k<=p-1;k++){const M=o(k,p),$=t[M],S=-n[M];w-=$*c[k-1]-S*l[k-1],_-=$*l[k-1]+S*c[k-1]}const[y,b]=Zl(w,_,d,-g);c[p-1]=y,l[p-1]=b}S$(e,r,s,c,l,u)}}function N$(e,t,n,r,s,o){const i=new Float64Array(e),a=new Float64Array(e);for(let c=0;c<e;c++){let l=0,u=0;for(let f=1;f<=o;f++){const h=(f-1)*e+c,m=r[f-1],p=s[f-1];l+=t[h]*m-n[h]*p,u+=t[h]*p+n[h]*m}i[c]=l,a[c]=u}ug(e,t,n,i,a,o)}function S$(e,t,n,r,s,o){const i=new Float64Array(e),a=new Float64Array(e);for(let c=0;c<e;c++){let l=t[(o-1)*e+c],u=n[(o-1)*e+c];for(let f=o+1;f<=e;f++){const h=(f-1)*e+c,m=r[f-1],p=s[f-1];l+=t[h]*m-n[h]*p,u+=t[h]*p+n[h]*m}i[c]=l,a[c]=u}ug(e,t,n,i,a,o)}function ug(e,t,n,r,s,o){let i=0;for(let l=0;l<e;l++)i+=r[l]*r[l]+s[l]*s[l];if(i=Math.sqrt(i),i>0){const l=1/i;for(let u=0;u<e;u++)r[u]*=l,s[u]*=l}let a=0,c=-1;for(let l=0;l<e;l++){const u=r[l]*r[l]+s[l]*s[l];u>c&&(c=u,a=l)}if(c>0){const l=Math.sqrt(c),u=r[a]/l,f=-s[a]/l;for(let h=0;h<e;h++){const m=r[h],p=s[h];r[h]=m*u-p*f,s[h]=m*f+p*u}r[a]=l,s[a]=0}for(let l=0;l<e;l++)t[(o-1)*e+l]=r[l],n[(o-1)*e+l]=s[l]}function A$(e,t,n,r,s){const o=v(n),i=v(n);if(n===0)return{wRe:o,wIm:i};const a=v(e),c=v(t),l=r||s,u=v(n*n),f=v(n*n);if(l)for(let p=0;p<n;p++)u[p+p*n]=1;k$(n,a,c,u,f,l);const h=M$(l,l,n,1,n,a,c,o,i,1,n,u,f);if(h!==0)throw new Error(`eigComplex: QR iteration failed to converge (info=${h})`);const m={wRe:o,wIm:i};if(s){const p=v(u),d=v(f);$$(n,a,c,p,d),m.VRRe=p,m.VRIm=d}if(r){const p=v(u),d=v(f);C$(n,a,c,p,d),m.VLRe=p,m.VLIm=d}return m}function E$(e,t){const n=v(e),r=new Int32Array(t);if($o(t,t,n,t,r)>0)throw new Error("inv: matrix is singular (dgetrf)");if(Gv(t,n,t,r)>0)throw new Error("inv: matrix is singular (dgetri)");return n}function I$(e,t,n,r,s){const o=v(t*s);return x$(Ee,Ee,t,s,n,1,e,0,t,r,0,n,0,o,0,t),o}function F$(e,t,n,r,s){const o=Math.min(t,n),i=v(e),a=v(o),c=lh(t,n,i,0,t,a,0);if(c<0)throw new Error(`qr: dgeqrf argument error (info=${c})`);const l=r?o:t,u=v(l*n);for(let m=0;m<n;m++){const p=Math.min(m,o-1);for(let d=0;d<=p;d++)u[d+m*l]=i[d+m*t]}const f=r?o:t;let h;if(s){const m=v(t*f),p=Math.min(n,f);for(let g=0;g<p;g++)for(let w=0;w<t;w++)m[w+g*t]=i[w+g*t];const d=y$(t,f,o,m,0,t,a,0);if(d<0)throw new Error(`qr: dorgqr argument error (info=${d})`);h=m}else h=v(0);return{Q:h,R:u}}function j$(e,t,n,r,s){if(t===n){const o=v(e),i=v(r),a=new Int32Array(n);if($o(n,n,o,n,a)>0)throw new Error("linsolve: matrix is singular (dgetrf)");for(let l=0;l<n;l++){const u=a[l]-1;if(u!==l)for(let f=0;f<s;f++){const h=i[l+f*n];i[l+f*n]=i[u+f*n],i[u+f*n]=h}}for(let l=0;l<s;l++)for(let u=1;u<n;u++)for(let f=0;f<u;f++)i[u+l*n]-=o[u+f*n]*i[f+l*n];for(let l=0;l<s;l++)for(let u=n-1;u>=0;u--){for(let f=u+1;f<n;f++)i[u+l*n]-=o[u+f*n]*i[f+l*n];i[u+l*n]/=o[u+u*n]}return i}else if(t>n){const o=n,i=v(e),a=v(o);lh(t,n,i,0,t,a,0);const c=v(r);for(let u=0;u<o;u++){const f=a[u];if(f!==0)for(let h=0;h<s;h++){let m=c[u+h*t];for(let d=1;d<t-u;d++)m+=i[u+d+u*t]*c[u+d+h*t];const p=f*m;c[u+h*t]-=p;for(let d=1;d<t-u;d++)c[u+d+h*t]-=p*i[u+d+u*t]}}const l=v(n*s);for(let u=0;u<s;u++)for(let f=n-1;f>=0;f--){let h=c[f+u*t];for(let m=f+1;m<n;m++)h-=i[f+m*t]*l[m+u*n];l[f+u*n]=h/i[f+f*t]}return l}else{const o=v(n*t);for(let u=0;u<t;u++)for(let f=0;f<n;f++)o[f+u*n]=e[u+f*t];const i=t,a=v(i);lh(n,t,o,0,n,a,0);const c=v(t*s);for(let u=0;u<s;u++)for(let f=0;f<t;f++){let h=r[f+u*t];for(let m=0;m<f;m++)h-=o[m+f*n]*c[m+u*t];c[f+u*t]=h/o[f+f*n]}const l=v(n*s);for(let u=0;u<t;u++)for(let f=0;f<s;f++)l[u+f*n]=c[u+f*t];for(let u=i-1;u>=0;u--){const f=a[u];if(f!==0)for(let h=0;h<s;h++){let m=l[u+h*n];for(let d=1;d<n-u;d++)m+=o[u+d+u*n]*l[u+d+h*n];const p=f*m;l[u+h*n]-=p;for(let d=1;d<n-u;d++)l[u+d+h*n]-=p*o[u+d+u*n]}}return l}}function R$(e,t,n,r,s){const o=v(e),i=v(t),a=v(t),c=n?t:1,l=r?t:1,u=v(c*(n?t:0)),f=v(l*(r?t:0)),h=n?1:0,m=r?1:0,p=v(1);W1(h,m,t,o,0,t,i,0,a,0,u,0,c,f,0,l,p,0,-1,s);const d=Math.max(1,Math.floor(p[0])),g=v(d);o.set(e);const w=W1(h,m,t,o,0,t,i,0,a,0,u,0,c,f,0,l,g,0,d,s);if(w>0)throw new Error(`eig: QR algorithm failed to converge (info=${w})`);if(w<0)throw new Error(`eig: illegal argument (info=${w})`);return{wr:i,wi:a,VL:n?u:void 0,VR:r?f:void 0}}function L$(e,t,n,r,s,o,i){if(n===r){const a=v(e),c=v(t),l=v(s),u=v(o),f=new Int32Array(r);for(let h=0;h<r;h++){let m=a[h+h*r]*a[h+h*r]+c[h+h*r]*c[h+h*r],p=h;for(let _=h+1;_<r;_++){const y=a[_+h*r]*a[_+h*r]+c[_+h*r]*c[_+h*r];y>m&&(m=y,p=_)}if(f[h]=p,p!==h)for(let _=0;_<r;_++){let y=a[h+_*r];a[h+_*r]=a[p+_*r],a[p+_*r]=y,y=c[h+_*r],c[h+_*r]=c[p+_*r],c[p+_*r]=y}if(m===0)throw new Error("linsolveComplex: matrix is singular");const d=a[h+h*r],g=c[h+h*r],w=d*d+g*g;for(let _=h+1;_<r;_++){const y=a[_+h*r],b=c[_+h*r],k=(y*d+b*g)/w,M=(b*d-y*g)/w;a[_+h*r]=k,c[_+h*r]=M;for(let $=h+1;$<r;$++)a[_+$*r]-=k*a[h+$*r]-M*c[h+$*r],c[_+$*r]-=k*c[h+$*r]+M*a[h+$*r]}}for(let h=0;h<r;h++){const m=f[h];if(m!==h)for(let p=0;p<i;p++){let d=l[h+p*r];l[h+p*r]=l[m+p*r],l[m+p*r]=d,d=u[h+p*r],u[h+p*r]=u[m+p*r],u[m+p*r]=d}}for(let h=0;h<i;h++)for(let m=1;m<r;m++)for(let p=0;p<m;p++){const d=a[m+p*r],g=c[m+p*r];l[m+h*r]-=d*l[p+h*r]-g*u[p+h*r],u[m+h*r]-=d*u[p+h*r]+g*l[p+h*r]}for(let h=0;h<i;h++)for(let m=r-1;m>=0;m--){for(let y=m+1;y<r;y++){const b=a[m+y*r],k=c[m+y*r];l[m+h*r]-=b*l[y+h*r]-k*u[y+h*r],u[m+h*r]-=b*u[y+h*r]+k*l[y+h*r]}const p=a[m+m*r],d=c[m+m*r],g=p*p+d*d,w=(l[m+h*r]*p+u[m+h*r]*d)/g,_=(u[m+h*r]*p-l[m+h*r]*d)/g;l[m+h*r]=w,u[m+h*r]=_}return{re:l,im:u}}else if(n>r){const a=r,c=v(e),l=v(t),u=v(a),f=v(a);for(let g=0;g<a;g++){let w=0;for(let R=g+1;R<n;R++)w+=c[R+g*n]*c[R+g*n]+l[R+g*n]*l[R+g*n];const _=c[g+g*n],y=l[g+g*n],b=_*_+y*y;if(w===0&&y===0){u[g]=0,f[g]=0;continue}const k=Math.sqrt(b+w),M=_>=0?-k:k,$=M-_,S=-y;u[g]=$/M,f[g]=S/M;const E=_-M,D=y,F=E*E+D*D;for(let R=g+1;R<n;R++){const q=c[R+g*n],J=l[R+g*n];c[R+g*n]=(q*E+J*D)/F,l[R+g*n]=(J*E-q*D)/F}c[g+g*n]=M,l[g+g*n]=0;for(let R=g+1;R<r;R++){let q=c[g+R*n],J=l[g+R*n];for(let L=1;L<n-g;L++){const B=c[g+L+g*n],A=-l[g+L+g*n];q+=B*c[g+L+R*n]-A*l[g+L+R*n],J+=B*l[g+L+R*n]+A*c[g+L+R*n]}const X=u[g]*q+f[g]*J,z=u[g]*J-f[g]*q;c[g+R*n]-=X,l[g+R*n]-=z;for(let L=1;L<n-g;L++){const B=c[g+L+g*n],A=l[g+L+g*n];c[g+L+R*n]-=B*X-A*z,l[g+L+R*n]-=B*z+A*X}}}const h=v(s),m=v(o);for(let g=0;g<a;g++)if(!(u[g]===0&&f[g]===0))for(let w=0;w<i;w++){let _=h[g+w*n],y=m[g+w*n];for(let M=1;M<n-g;M++){const $=c[g+M+g*n],S=-l[g+M+g*n];_+=$*h[g+M+w*n]-S*m[g+M+w*n],y+=$*m[g+M+w*n]+S*h[g+M+w*n]}const b=u[g]*_+f[g]*y,k=u[g]*y-f[g]*_;h[g+w*n]-=b,m[g+w*n]-=k;for(let M=1;M<n-g;M++){const $=c[g+M+g*n],S=l[g+M+g*n];h[g+M+w*n]-=$*b-S*k,m[g+M+w*n]-=$*k+S*b}}const p=v(r*i),d=v(r*i);for(let g=0;g<i;g++)for(let w=r-1;w>=0;w--){let _=h[w+g*n],y=m[w+g*n];for(let $=w+1;$<r;$++){const S=c[w+$*n],E=l[w+$*n];_-=S*p[$+g*r]-E*d[$+g*r],y-=S*d[$+g*r]+E*p[$+g*r]}const b=c[w+w*n],k=l[w+w*n],M=b*b+k*k;p[w+g*r]=(_*b+y*k)/M,d[w+g*r]=(y*b-_*k)/M}return{re:p,im:d}}else{const a=v(r*n),c=v(r*n);for(let g=0;g<n;g++)for(let w=0;w<r;w++)a[w+g*r]=e[g+w*n],c[w+g*r]=-t[g+w*n];const l=n,u=v(l),f=v(l);for(let g=0;g<l;g++){let w=0;for(let R=g+1;R<r;R++)w+=a[R+g*r]*a[R+g*r]+c[R+g*r]*c[R+g*r];const _=a[g+g*r],y=c[g+g*r],b=_*_+y*y;if(w===0&&y===0){u[g]=0,f[g]=0;continue}const k=Math.sqrt(b+w),M=_>=0?-k:k,$=M-_,S=-y;u[g]=$/M,f[g]=S/M;const E=_-M,D=y,F=E*E+D*D;for(let R=g+1;R<r;R++){const q=a[R+g*r],J=c[R+g*r];a[R+g*r]=(q*E+J*D)/F,c[R+g*r]=(J*E-q*D)/F}a[g+g*r]=M,c[g+g*r]=0;for(let R=g+1;R<n;R++){let q=a[g+R*r],J=c[g+R*r];for(let L=1;L<r-g;L++){const B=a[g+L+g*r],A=-c[g+L+g*r];q+=B*a[g+L+R*r]-A*c[g+L+R*r],J+=B*c[g+L+R*r]+A*a[g+L+R*r]}const X=u[g]*q+f[g]*J,z=u[g]*J-f[g]*q;a[g+R*r]-=X,c[g+R*r]-=z;for(let L=1;L<r-g;L++){const B=a[g+L+g*r],A=c[g+L+g*r];a[g+L+R*r]-=B*X-A*z,c[g+L+R*r]-=B*z+A*X}}}const h=v(n*i),m=v(n*i);for(let g=0;g<i;g++)for(let w=0;w<n;w++){let _=s[w+g*n],y=o[w+g*n];for(let $=0;$<w;$++){const S=a[$+w*r],E=-c[$+w*r];_-=S*h[$+g*n]-E*m[$+g*n],y-=S*m[$+g*n]+E*h[$+g*n]}const b=a[w+w*r],k=-c[w+w*r],M=b*b+k*k;h[w+g*n]=(_*b+y*k)/M,m[w+g*n]=(y*b-_*k)/M}const p=v(r*i),d=v(r*i);for(let g=0;g<n;g++)for(let w=0;w<i;w++)p[g+w*r]=h[g+w*n],d[g+w*r]=m[g+w*n];for(let g=l-1;g>=0;g--)if(!(u[g]===0&&f[g]===0))for(let w=0;w<i;w++){let _=p[g+w*r],y=d[g+w*r];for(let M=1;M<r-g;M++){const $=a[g+M+g*r],S=-c[g+M+g*r];_+=$*p[g+M+w*r]-S*d[g+M+w*r],y+=$*d[g+M+w*r]+S*p[g+M+w*r]}const b=u[g]*_-f[g]*y,k=u[g]*y+f[g]*_;p[g+w*r]-=b,d[g+w*r]-=k;for(let M=1;M<r-g;M++){const $=a[g+M+g*r],S=c[g+M+g*r];p[g+M+w*r]-=$*b-S*k,d[g+M+w*r]-=$*k+S*b}}return{re:p,im:d}}}function D$(e,t,n){const r=v(e),s=Math.min(t,n),o=new Int32Array(s),i=$o(t,n,r,t,o);if(i<0)throw new Error(`lu: illegal argument (info=${i})`);return{LU:r,ipiv:o}}function T$(e,t,n,r,s){const o=Math.min(t,n);let i=!0;for(let q=0;q<e.length;q++)if(!Number.isFinite(e[q])){i=!1;break}if(!i){const q=v(o).fill(NaN);if(!s)return{S:q};const J=r?o:t,X=r?o:n;return{U:v(t*J).fill(NaN),S:q,V:v(n*X).fill(NaN)}}const a=v(e),c=v(o),l=0,u=1,f=3,h=0,m=1,p=3;let d,g,w,_;s?r?(d=u,g=m,w=o,_=o):(d=l,g=h,w=t,_=n):(d=f,g=p,w=0,_=0);const y=s?Math.max(1,t):1,b=s?Math.max(1,_):1,k=v(y*w),M=v(b*n),$=v(1);rg(d,g,t,n,a,0,t,c,0,k,0,y,M,0,b,$,0,-1);const S=Math.max(1,Math.floor($[0])),E=v(S);a.set(e);const D=rg(d,g,t,n,a,0,t,c,0,k,0,y,M,0,b,E,0,S);if(D>0)throw new Error(`svd: DBDSQR did not converge (info=${D})`);if(D<0)throw new Error(`svd: illegal argument (info=${D})`);if(!s)return{S:c};const F=r?o:n,R=v(n*F);for(let q=0;q<F;q++)for(let J=0;J<n;J++)R[J+q*n]=M[q+J*b];return{U:k,S:c,V:R}}function P$(e,t,n){const r=v(e),s=_$(n?He:ot,t,r,0,t);if(n)for(let o=0;o<t;o++)for(let i=o+1;i<t;i++)r[i+o*t]=0;else for(let o=0;o<t;o++)for(let i=0;i<o;i++)r[i+o*t]=0;return{R:r,info:s}}function B$(e,t,n,r){const s=v(e),o=v(t);let i=0;if(r)for(let a=0;a<n;a++){let c=s[a+a*n];for(let u=0;u<a;u++)c-=s[u+a*n]*s[u+a*n]+o[u+a*n]*o[u+a*n];if(c<=0||Number.isNaN(c)){i=a+1;break}const l=Math.sqrt(c);s[a+a*n]=l,o[a+a*n]=0;for(let u=a+1;u<n;u++){let f=s[a+u*n],h=o[a+u*n];for(let m=0;m<a;m++){const p=s[m+a*n],d=o[m+a*n],g=s[m+u*n],w=o[m+u*n];f-=p*g+d*w,h-=p*w-d*g}s[a+u*n]=f/l,o[a+u*n]=h/l}}else for(let a=0;a<n;a++){let c=s[a+a*n];for(let u=0;u<a;u++)c-=s[a+u*n]*s[a+u*n]+o[a+u*n]*o[a+u*n];if(c<=0||Number.isNaN(c)){i=a+1;break}const l=Math.sqrt(c);s[a+a*n]=l,o[a+a*n]=0;for(let u=a+1;u<n;u++){let f=s[u+a*n],h=o[u+a*n];for(let m=0;m<a;m++){const p=s[u+m*n],d=o[u+m*n],g=s[a+m*n],w=o[a+m*n];f-=p*g+d*w,h-=d*g-p*w}s[u+a*n]=f/l,o[u+a*n]=h/l}}if(r)for(let a=0;a<n;a++)for(let c=a+1;c<n;c++)s[c+a*n]=0,o[c+a*n]=0;else for(let a=0;a<n;a++)for(let c=0;c<a;c++)s[c+a*n]=0,o[c+a*n]=0;return{RRe:s,RIm:o,info:i}}function q$(e,t,n,r,s,o,i,a,c){const l=m=>{const p=v(t);for(let d=0;d<t;d++){let g=0;for(let w=0;w<t;w++)g+=e[d+w*t]*m[w];p[d]=g}return p};let u=null;if(i||a){const m=i?v(i):null,p=i?new Int32Array(t):null;if(m&&p&&$o(t,t,m,t,p)>0)throw new Error("gmres: preconditioner M1 is singular");const d=a?v(a):null,g=a?new Int32Array(t):null;if(d&&g&&$o(t,t,d,t,g)>0)throw new Error("gmres: preconditioner M2 is singular");u=w=>{const _=v(w);return m&&p&&sc(t,m,p,_),d&&g&&sc(t,d,g,_),_}}const f=Vm(l,u,n,t,r,s,o,c),h=new Int32Array(2);return h[0]=f.iter[0],h[1]=f.iter[1],{x:f.x,flag:f.flag,relres:f.relres,iter:h,resvec:f.resvec}}function V$(e,t,n,r,s,o,i,a,c,l,u,f,h,m){const p=_=>{const y=v(n),b=v(n);for(let k=0;k<n;k++){let M=0,$=0;for(let S=0;S<n;S++){const E=e[k+S*n],D=t[k+S*n];M+=E*_.re[S]-D*_.im[S],$+=E*_.im[S]+D*_.re[S]}y[k]=M,b[k]=$}return{re:y,im:b}};let d=null;if(c||u){const _=c?v(c):null,y=l?v(l):null,b=c?new Int32Array(n):null;_&&y&&b&&fg(n,_,y,b);const k=u?v(u):null,M=f?v(f):null,$=u?new Int32Array(n):null;k&&M&&$&&fg(n,k,M,$),d=S=>{const E=v(S.re),D=v(S.im);return _&&y&&b&&Wm(n,_,y,b,E,D),k&&M&&$&&Wm(n,k,M,$,E,D),{re:E,im:D}}}const g=Um(p,d,{re:r,im:s},n,o,i,a,h&&m?{re:h,im:m}:null),w=new Int32Array(2);return w[0]=g.iter[0],w[1]=g.iter[1],{xRe:g.x.re,xIm:g.x.im,flag:g.flag,relres:g.relres,iter:w,resvec:g.resvec}}function fg(e,t,n,r){for(let s=0;s<e;s++){let o=-1,i=s;for(let u=s;u<e;u++){const f=Math.sqrt(t[u+s*e]*t[u+s*e]+n[u+s*e]*n[u+s*e]);f>o&&(o=f,i=u)}if(r[s]=i+1,i!==s)for(let u=0;u<e;u++){let f=t[s+u*e];t[s+u*e]=t[i+u*e],t[i+u*e]=f,f=n[s+u*e],n[s+u*e]=n[i+u*e],n[i+u*e]=f}const a=t[s+s*e],c=n[s+s*e],l=a*a+c*c;if(l!==0)for(let u=s+1;u<e;u++){const f=t[u+s*e],h=n[u+s*e],m=(f*a+h*c)/l,p=(h*a-f*c)/l;t[u+s*e]=m,n[u+s*e]=p;for(let d=s+1;d<e;d++)t[u+d*e]-=m*t[s+d*e]-p*n[s+d*e],n[u+d*e]-=m*n[s+d*e]+p*t[s+d*e]}}}const z$={inv:E$,matmul:I$,qr:F$,linsolve:j$,linsolveComplex:L$,eig:R$,eigComplex:A$,lu:D$,svd:T$,chol:P$,cholComplex:B$,gmres:q$,gmresComplex:V$};function mg(){return z$}const hg=new Set;function $n(e,t){const n=zv(),r=t&&n&&n[t]?n:mg();return hg.has(e)||(hg.add(e),console.error(`[${e}] using bridge: ts-lapack (TypeScript)`)),r}const Zr={ADD:0,SUB:1,MUL:2,DIV:3},No={ADD:0,SUB:1,MUL:2,DIV:3},cn={SUM:0,PROD:1,MAX:2,MIN:3,ANY:4,ALL:5,MEAN:6},Xt={EQ:0,NE:1,LT:2,LE:3,GT:4,GE:5},So={J:0,Y:1,I:2,K:3},Ct={EXP:0,LOG:1,LOG2:2,LOG10:3,SQRT:4,ABS:5,FLOOR:6,CEIL:7,ROUND:8,TRUNC:9,SIN:10,COS:11,TAN:12,ASIN:13,ACOS:14,ATAN:15,SINH:16,COSH:17,TANH:18,SIGN:19};function U$(e,t,n,r,s){switch(e){case Zr.ADD:for(let o=0;o<t;o++)s[o]=n[o]+r[o];return;case Zr.SUB:for(let o=0;o<t;o++)s[o]=n[o]-r[o];return;case Zr.MUL:for(let o=0;o<t;o++)s[o]=n[o]*r[o];return;case Zr.DIV:for(let o=0;o<t;o++)s[o]=n[o]/r[o];return;default:throw new Error(`tsRealBinaryElemwise: unknown op ${e}`)}}function W$(e,t,n,r,s,o){if(s)switch(e){case Zr.ADD:for(let i=0;i<t;i++)o[i]=n+r[i];return;case Zr.SUB:for(let i=0;i<t;i++)o[i]=n-r[i];return;case Zr.MUL:for(let i=0;i<t;i++)o[i]=n*r[i];return;case Zr.DIV:for(let i=0;i<t;i++)o[i]=n/r[i];return;default:throw new Error(`tsRealScalarBinaryElemwise: unknown op ${e}`)}else switch(e){case Zr.ADD:for(let i=0;i<t;i++)o[i]=r[i]+n;return;case Zr.SUB:for(let i=0;i<t;i++)o[i]=r[i]-n;return;case Zr.MUL:for(let i=0;i<t;i++)o[i]=r[i]*n;return;case Zr.DIV:for(let i=0;i<t;i++)o[i]=r[i]/n;return;default:throw new Error(`tsRealScalarBinaryElemwise: unknown op ${e}`)}}function hh(e,t){return e===0&&t===0?NaN:(e>0?1:e<0?-1:0)/0}function ph(e,t){return e===0&&t===0?0:(t>0?1:t<0?-1:0)/0}function X$(e,t,n,r,s,o,i,a){switch(e){case No.ADD:for(let c=0;c<t;c++)i[c]=n[c]+s[c],a[c]=(r?r[c]:0)+(o?o[c]:0);return;case No.SUB:for(let c=0;c<t;c++)i[c]=n[c]-s[c],a[c]=(r?r[c]:0)-(o?o[c]:0);return;case No.MUL:for(let c=0;c<t;c++){const l=n[c],u=r?r[c]:0,f=s[c],h=o?o[c]:0;i[c]=l*f-u*h,a[c]=l*h+u*f}return;case No.DIV:for(let c=0;c<t;c++){const l=n[c],u=r?r[c]:0,f=s[c],h=o?o[c]:0,m=f*f+h*h;m===0?(i[c]=hh(l,u),a[c]=ph(l,u)):(i[c]=(l*f+u*h)/m,a[c]=(u*f-l*h)/m)}return;default:throw new Error(`tsComplexBinaryElemwise: unknown op ${e}`)}}function H$(e,t,n,r,s,o,i,a,c){switch(e){case No.ADD:for(let l=0;l<t;l++)a[l]=n+s[l],c[l]=r+(o?o[l]:0);return;case No.SUB:if(i)for(let l=0;l<t;l++)a[l]=n-s[l],c[l]=r-(o?o[l]:0);else for(let l=0;l<t;l++)a[l]=s[l]-n,c[l]=(o?o[l]:0)-r;return;case No.MUL:for(let l=0;l<t;l++){const u=s[l],f=o?o[l]:0;a[l]=n*u-r*f,c[l]=n*f+r*u}return;case No.DIV:if(i)for(let l=0;l<t;l++){const u=s[l],f=o?o[l]:0,h=u*u+f*f;h===0?(a[l]=hh(n,r),c[l]=ph(n,r)):(a[l]=(n*u+r*f)/h,c[l]=(r*u-n*f)/h)}else{const l=n*n+r*r;if(l===0)for(let u=0;u<t;u++){const f=s[u],h=o?o[u]:0;a[u]=hh(f,h),c[u]=ph(f,h)}else{const u=1/l;for(let f=0;f<t;f++){const h=s[f],m=o?o[f]:0;a[f]=(h*n+m*r)*u,c[f]=(m*n-h*r)*u}}}return;default:throw new Error(`tsComplexScalarBinaryElemwise: unknown op ${e}`)}}function Y$(e){return e>0?1:e<0?-1:e===0?0:NaN}function J$(e,t,n,r){switch(e){case Ct.EXP:for(let s=0;s<t;s++)r[s]=Math.exp(n[s]);return;case Ct.LOG:for(let s=0;s<t;s++)r[s]=Math.log(n[s]);return;case Ct.LOG2:for(let s=0;s<t;s++)r[s]=Math.log2(n[s]);return;case Ct.LOG10:for(let s=0;s<t;s++)r[s]=Math.log10(n[s]);return;case Ct.SQRT:for(let s=0;s<t;s++)r[s]=Math.sqrt(n[s]);return;case Ct.ABS:for(let s=0;s<t;s++)r[s]=Math.abs(n[s]);return;case Ct.FLOOR:for(let s=0;s<t;s++)r[s]=Math.floor(n[s]);return;case Ct.CEIL:for(let s=0;s<t;s++)r[s]=Math.ceil(n[s]);return;case Ct.ROUND:for(let s=0;s<t;s++){const o=n[s];r[s]=o>=0?Math.round(o):-Math.round(-o)}return;case Ct.TRUNC:for(let s=0;s<t;s++)r[s]=Math.trunc(n[s]);return;case Ct.SIN:for(let s=0;s<t;s++)r[s]=Math.sin(n[s]);return;case Ct.COS:for(let s=0;s<t;s++)r[s]=Math.cos(n[s]);return;case Ct.TAN:for(let s=0;s<t;s++)r[s]=Math.tan(n[s]);return;case Ct.ASIN:for(let s=0;s<t;s++)r[s]=Math.asin(n[s]);return;case Ct.ACOS:for(let s=0;s<t;s++)r[s]=Math.acos(n[s]);return;case Ct.ATAN:for(let s=0;s<t;s++)r[s]=Math.atan(n[s]);return;case Ct.SINH:for(let s=0;s<t;s++)r[s]=Math.sinh(n[s]);return;case Ct.COSH:for(let s=0;s<t;s++)r[s]=Math.cosh(n[s]);return;case Ct.TANH:for(let s=0;s<t;s++)r[s]=Math.tanh(n[s]);return;case Ct.SIGN:for(let s=0;s<t;s++)r[s]=Y$(n[s]);return;default:throw new Error(`tsRealUnaryElemwise: unknown op ${e}`)}}const pg=1/Math.log(2),dg=1/Math.log(10);function K$(e,t){const n=Math.exp(e);return[n*Math.cos(t),n*Math.sin(t)]}function Qo(e,t){return[Math.log(Math.hypot(e,t)),Math.atan2(t,e)]}function dh(e,t){if(e===0&&t===0)return[0,0];const n=Math.hypot(e,t),r=Math.sqrt((n+e)/2),s=Math.sign(t)*Math.sqrt((n-e)/2);return t===0&&e<0?[0,Math.sqrt(-e)]:[r,s]}function gg(e,t){return[Math.sin(e)*Math.cosh(t),Math.cos(e)*Math.sinh(t)]}function wg(e,t){return[Math.cos(e)*Math.cosh(t),-Math.sin(e)*Math.sinh(t)]}function Z$(e,t){const[n,r]=gg(e,t),[s,o]=wg(e,t),i=s*s+o*o;return[(n*s+r*o)/i,(r*s-n*o)/i]}function _g(e,t){return[Math.sinh(e)*Math.cos(t),Math.cosh(e)*Math.sin(t)]}function yg(e,t){return[Math.cosh(e)*Math.cos(t),Math.sinh(e)*Math.sin(t)]}function G$(e,t){const[n,r]=_g(e,t),[s,o]=yg(e,t),i=s*s+o*o;return[(n*s+r*o)/i,(r*s-n*o)/i]}function Q$(e,t){const n=e*e-t*t,r=2*e*t,s=1-n,o=-r,[i,a]=dh(s,o),[c,l]=Qo(i-t,a+e);return[l,-c]}function O$(e,t){const n=e*e-t*t,r=2*e*t,s=1-n,o=-r,[i,a]=dh(s,o),[c,l]=Qo(e-a,t+i);return[l,-c]}function eC(e,t){const[n,r]=Qo(1+t,-e),[s,o]=Qo(1-t,e),i=n-s;return[-(r-o)/2,i/2]}function tC(e,t){const n=Math.hypot(e,t);return n===0?[0,0]:[e/n,t/n]}function xg(e){return e>=0?Math.round(e):-Math.round(-e)}function nC(e,t,n,r,s,o){let i=null;switch(e){case Ct.EXP:i=K$;break;case Ct.LOG:i=Qo;break;case Ct.LOG2:i=(c,l)=>{const[u,f]=Qo(c,l);return[u*pg,f*pg]};break;case Ct.LOG10:i=(c,l)=>{const[u,f]=Qo(c,l);return[u*dg,f*dg]};break;case Ct.SQRT:i=dh;break;case Ct.ABS:throw new Error("tsComplexUnaryElemwise: ABS is not supported (use tsComplexAbs)");case Ct.FLOOR:for(let c=0;c<t;c++)s[c]=Math.floor(n[c]),o[c]=r?Math.floor(r[c]):0;return;case Ct.CEIL:for(let c=0;c<t;c++)s[c]=Math.ceil(n[c]),o[c]=r?Math.ceil(r[c]):0;return;case Ct.ROUND:for(let c=0;c<t;c++)s[c]=xg(n[c]),o[c]=r?xg(r[c]):0;return;case Ct.TRUNC:for(let c=0;c<t;c++)s[c]=Math.trunc(n[c]),o[c]=r?Math.trunc(r[c]):0;return;case Ct.SIN:i=gg;break;case Ct.COS:i=wg;break;case Ct.TAN:i=Z$;break;case Ct.ASIN:i=Q$;break;case Ct.ACOS:i=O$;break;case Ct.ATAN:i=eC;break;case Ct.SINH:i=_g;break;case Ct.COSH:i=yg;break;case Ct.TANH:i=G$;break;case Ct.SIGN:i=tC;break;default:throw new Error(`tsComplexUnaryElemwise: unknown op ${e}`)}const a=i;for(let c=0;c<t;c++){const[l,u]=a(n[c],r?r[c]:0);s[c]=l,o[c]=u}}function rC(e,t,n,r){if(n)for(let s=0;s<e;s++)r[s]=Math.hypot(t[s],n[s]);else for(let s=0;s<e;s++)r[s]=Math.abs(t[s])}function Gl(e,t,n){switch(e){case Xt.EQ:return t===n?1:0;case Xt.NE:return t!==n?1:0;case Xt.LT:return t<n?1:0;case Xt.LE:return t<=n?1:0;case Xt.GT:return t>n?1:0;case Xt.GE:return t>=n?1:0;default:throw new Error(`tsRealComparison: unknown op ${e}`)}}function sC(e,t,n,r,s){switch(e){case Xt.EQ:for(let o=0;o<t;o++)s[o]=n[o]===r[o]?1:0;return;case Xt.NE:for(let o=0;o<t;o++)s[o]=n[o]!==r[o]?1:0;return;case Xt.LT:for(let o=0;o<t;o++)s[o]=n[o]<r[o]?1:0;return;case Xt.LE:for(let o=0;o<t;o++)s[o]=n[o]<=r[o]?1:0;return;case Xt.GT:for(let o=0;o<t;o++)s[o]=n[o]>r[o]?1:0;return;case Xt.GE:for(let o=0;o<t;o++)s[o]=n[o]>=r[o]?1:0;return;default:throw new Error(`tsRealComparison: unknown op ${e}`)}}function oC(e,t,n,r,s,o){if(s)for(let i=0;i<t;i++)o[i]=Gl(e,n,r[i]);else for(let i=0;i<t;i++)o[i]=Gl(e,r[i],n)}function iC(e,t,n,r,s,o,i){switch(e){case Xt.EQ:for(let a=0;a<t;a++){const c=n[a],l=r?r[a]:0,u=s[a],f=o?o[a]:0;i[a]=c===u&&l===f?1:0}return;case Xt.NE:for(let a=0;a<t;a++){const c=n[a],l=r?r[a]:0,u=s[a],f=o?o[a]:0;i[a]=c!==u||l!==f?1:0}return;case Xt.LT:for(let a=0;a<t;a++)i[a]=n[a]<s[a]?1:0;return;case Xt.LE:for(let a=0;a<t;a++)i[a]=n[a]<=s[a]?1:0;return;case Xt.GT:for(let a=0;a<t;a++)i[a]=n[a]>s[a]?1:0;return;case Xt.GE:for(let a=0;a<t;a++)i[a]=n[a]>=s[a]?1:0;return;default:throw new Error(`tsComplexComparison: unknown op ${e}`)}}function aC(e,t,n,r,s,o,i,a){switch(e){case Xt.EQ:if(i)for(let c=0;c<t;c++){const l=s[c],u=o?o[c]:0;a[c]=n===l&&r===u?1:0}else for(let c=0;c<t;c++){const l=s[c],u=o?o[c]:0;a[c]=l===n&&u===r?1:0}return;case Xt.NE:if(i)for(let c=0;c<t;c++){const l=s[c],u=o?o[c]:0;a[c]=n!==l||r!==u?1:0}else for(let c=0;c<t;c++){const l=s[c],u=o?o[c]:0;a[c]=l!==n||u!==r?1:0}return;case Xt.LT:case Xt.LE:case Xt.GT:case Xt.GE:if(i)for(let c=0;c<t;c++)a[c]=Gl(e,n,s[c]);else for(let c=0;c<t;c++)a[c]=Gl(e,s[c],n);return;default:throw new Error(`tsComplexScalarComparison: unknown op ${e}`)}}function cC(e,t,n,r){switch(e){case cn.SUM:{let s=0;for(let o=0;o<t;o++)s+=n[o];r[0]=s;return}case cn.PROD:{let s=1;for(let o=0;o<t;o++)s*=n[o];r[0]=s;return}case cn.MAX:{let s=-1/0,o=!1;for(let i=0;i<t;i++){const a=n[i];Number.isNaN(a)||(a>s&&(s=a),o=!0)}r[0]=o?s:NaN;return}case cn.MIN:{let s=1/0,o=!1;for(let i=0;i<t;i++){const a=n[i];Number.isNaN(a)||(a<s&&(s=a),o=!0)}r[0]=o?s:NaN;return}case cn.ANY:{let s=0;for(let o=0;o<t;o++)if(n[o]!==0||Number.isNaN(n[o])){s=1;break}r[0]=s;return}case cn.ALL:{let s=1;for(let o=0;o<t;o++)if(n[o]===0){s=0;break}r[0]=s;return}case cn.MEAN:{if(t===0){r[0]=NaN;return}let s=0;for(let o=0;o<t;o++)s+=n[o];r[0]=s/t;return}default:throw new Error(`tsRealFlatReduce: unknown op ${e}`)}}function lC(e,t,n,r,s,o){switch(e){case cn.SUM:{if(!o)throw new Error("tsComplexFlatReduce(SUM): outIm is required");let i=0,a=0;for(let c=0;c<t;c++)i+=n[c],r&&(a+=r[c]);s[0]=i,o[0]=a;return}case cn.PROD:{if(!o)throw new Error("tsComplexFlatReduce(PROD): outIm is required");let i=1,a=0;for(let c=0;c<t;c++){const l=n[c],u=r?r[c]:0,f=i*l-a*u,h=i*u+a*l;i=f,a=h}s[0]=i,o[0]=a;return}case cn.ANY:{let i=0;for(let a=0;a<t;a++){const c=n[a],l=r?r[a]:0;if(c!==0||l!==0||Number.isNaN(c)||Number.isNaN(l)){i=1;break}}s[0]=i;return}case cn.ALL:{let i=1;for(let a=0;a<t;a++){const c=n[a],l=r?r[a]:0;if(c===0&&l===0){i=0;break}}s[0]=i;return}default:throw new Error(`tsComplexFlatReduce: unsupported op ${e}`)}}function Gr(e){const n=[.9999999999998099,676.5203681218851,-1259.1392167224028,771.3234287776531,-176.6150291621406,12.507343278686905,-.13857109526572012,9984369578019572e-21,15056327351493116e-23];if(e<.5)return Math.PI/(Math.sin(Math.PI*e)*Gr(1-e));e-=1;let r=n[0];for(let o=1;o<n.length;o++)r+=n[o]/(e+o);const s=e+7+.5;return Math.sqrt(2*Math.PI)*Math.pow(s,e+.5)*Math.exp(-s)*r}function tr(e,t){if(t===0)return e===0?1:0;if(t<0&&e!==Math.floor(e))return NaN;if(t<0)return(Math.round(e)%2===0?1:-1)*tr(e,-t);if(e<0&&e===Math.floor(e))return(Math.round(-e)%2===0?1:-1)*tr(-e,t);if(e===Math.floor(e)&&e>=0){const n=Math.round(e);if(n===0)return gh(t);if(n===1)return wh(t);if(t<n)return bg(n,t);let r=gh(t),s=wh(t);for(let o=1;o<n;o++){const i=2*o/t*s-r;r=s,s=i}return s}return t<=25+Math.abs(e)/2?bg(e,t):mC(e,t)}function gh(e){if(e<0&&(e=-e),e<=5){const t=e*e,n=5.783185962946784,r=30.471262343662087,s=[-4794432209782018e-6,19561749194655657e-4,-24924834436096772e-2,9708622510473064],o=[1,499.563147152651,173785.4016763747,4844096583399621e-8,11185553704535683e-6,2112775201154892e-3,31051822985742256e-2,0x710505f9ecba70,0x17be34c7b662cc00],i=bn(s,t),a=bn(o,t);return(t-n)*(t-r)*(i/a)}return uC(e)}function uC(e){const t=[.0007969367292973471,.08283523921074408,1.239533716464143,5.447250030587687,8.74716500199817,5.303240382353949,1],n=[.0009244088105588637,.08562884743544745,1.2535274390105895,5.470977403304171,8.761908832370695,5.306052882353947,1],r=[-.011366383889846916,-1.2825271867050931,-19.553954425773597,-93.20601521237683,-177.68116798048806,-147.07750515495118,-51.41053267665993,-6.050143506007285],s=[1,64.3178256118178,856.4300259769806,3882.4018360540163,7240.467741956525,5930.727011873169,2062.0933166032783,242.0057402402914],o=5/e,i=o*o,a=bn(t,i)/bn(n,i),c=bn(r,i)/bn(s,i),l=e-Math.PI/4;return Math.sqrt(2/(Math.PI*e))*(a*Math.cos(l)-o*c*Math.sin(l))}function wh(e){const t=e<0?-1:1;if(e<0&&(e=-e),e<=5){const n=e*e,r=14.681970642123893,s=49.2184563216946,o=[-8999712257055594e-7,45222829799819403e-5,-7274942452218183e-2,0xd15a1534be241],i=[1,620.8364781180543,256987.25675774884,8351467914319493e-8,2215115954797925e-5,4749141220799914e-3,7843696078762359e-1,89522233618462740,5322786203326801e3],a=bn(o,n),c=bn(i,n);return t*e*(n-r)*(n-s)*(a/c)}return t*fC(e)}function fC(e){const t=[.0007621256162081731,.07313970569409176,1.1271960812968493,5.112079511468076,8.424045901417724,5.214515986823618,1],n=[.0005713231280725487,.06884559087544954,1.105142326340617,5.073863861286015,8.399855543276042,5.209828486823619,1],r=[.05108625947501766,4.982138729512334,75.82382841325453,366.7796093601508,710.8563049989261,597.4896124006136,211.68875710057213,25.207020585802372],s=[1,74.23732770356752,1056.4488603826283,4986.410583376536,9562.318924047562,7997.041604473507,2826.1927851763908,336.0936078106983],o=5/e,i=o*o,a=bn(t,i)/bn(n,i),c=bn(r,i)/bn(s,i),l=e-3*Math.PI/4;return Math.sqrt(2/(Math.PI*e))*(a*Math.cos(l)-o*c*Math.sin(l))}function bn(e,t){let n=e[0];for(let r=1;r<e.length;r++)n=n*t+e[r];return n}function bg(e,t){const n=t/2;let r=Math.pow(n,e)/Gr(e+1),s=r;const o=-(n*n);for(let i=1;i<=300&&(r*=o/(i*(i+e)),s+=r,!(Math.abs(r)<Math.abs(s)*1e-16));i++);return s}function mC(e,t){const n=4*e*e,r=t-(e/2+.25)*Math.PI;let s=1,o=0,i=1,a=1;for(let c=0;c<30&&(c>0&&(i*=-(n-(4*c-3)*(4*c-3))*(n-(4*c-1)*(4*c-1))/((2*c-1)*(2*c)*64*t*t),s+=i),a=(c===0?1:a)*(c===0?(n-1)/(8*t):-(n-(4*c-1)*(4*c-1))*(n-(4*c+1)*(4*c+1))/(2*c*(2*c+1)*64*t*t)),c===0?o=(n-1)/(8*t):o+=a,!(Math.abs(i)+Math.abs(a)<1e-16));c++);return Math.sqrt(2/(Math.PI*t))*(s*Math.cos(r)-o*Math.sin(r))}function ea(e,t){if(t<=0)return NaN;if(e===Math.floor(e))return kg(Math.round(e),t);const n=Math.sin(e*Math.PI);return(tr(e,t)*Math.cos(e*Math.PI)-tr(-e,t))/n}function kg(e,t){if(e<0)return(e%2===0?1:-1)*kg(-e,t);if(e===0)return vg(t);if(e===1)return Mg(t);let n=vg(t),r=Mg(t);for(let s=1;s<e;s++){const o=2*s/t*r-n;n=r,r=o}return r}function vg(e){if(e<=5){const t=[15592.436785523574,-1466392959039716e-8,5435264770518765e-6,-9821360657179115e-4,875906394395367e-1,-0xc5090e8ec6601,0x9d4a5b305a0018,-0x41b52d6418d9ec],n=[1,1041.2835366425984,626107.330137135,26891963339381415e-8,864002487103935e-4,20297961275010555e-3,31715775284297505e-1,0x37a4bf79f36ba00],r=e*e,s=bn(t,r),o=bn(n,r);return s/o+2/Math.PI*Math.log(e)*gh(e)}return hC(e)}function hC(e){const t=[.0007969367292973471,.08283523921074408,1.239533716464143,5.447250030587687,8.74716500199817,5.303240382353949,1],n=[.0009244088105588637,.08562884743544745,1.2535274390105895,5.470977403304171,8.761908832370695,5.306052882353947,1],r=[-.011366383889846916,-1.2825271867050931,-19.553954425773597,-93.20601521237683,-177.68116798048806,-147.07750515495118,-51.41053267665993,-6.050143506007285],s=[1,64.3178256118178,856.4300259769806,3882.4018360540163,7240.467741956525,5930.727011873169,2062.0933166032783,242.0057402402914],o=5/e,i=o*o,a=bn(t,i)/bn(n,i),c=bn(r,i)/bn(s,i),l=e-Math.PI/4;return Math.sqrt(2/(Math.PI*e))*(a*Math.sin(l)+o*c*Math.cos(l))}function Mg(e){if(e<=5){const t=[12632047479017804e-7,-6473558763791603e-4,11450951154182373e-2,-8127702555013251,0x2cf35a16e6cd620,-0xacf20aeef158b80],n=[1,594.3015923461282,235564.09294306856,7348119444597217e-8,18760131610870617e-6,38823127749623857e-4,6205577271469538e-1,0xf41f1e2a3d2440,0x3721e321ece8fe00],r=e*e,s=bn(t,r),o=bn(n,r);return e*(s/o)+2/Math.PI*(wh(e)*Math.log(e)-1/e)}return pC(e)}function pC(e){const t=[.0007621256162081731,.07313970569409176,1.1271960812968493,5.112079511468076,8.424045901417724,5.214515986823618,1],n=[.0005713231280725487,.06884559087544954,1.105142326340617,5.073863861286015,8.399855543276042,5.209828486823619,1],r=[.05108625947501766,4.982138729512334,75.82382841325453,366.7796093601508,710.8563049989261,597.4896124006136,211.68875710057213,25.207020585802372],s=[1,74.23732770356752,1056.4488603826283,4986.410583376536,9562.318924047562,7997.041604473507,2826.1927851763908,336.0936078106983],o=5/e,i=o*o,a=bn(t,i)/bn(n,i),c=bn(r,i)/bn(s,i),l=e-3*Math.PI/4;return Math.sqrt(2/(Math.PI*e))*(a*Math.sin(l)+o*c*Math.cos(l))}function Qr(e,t){if(t===0)return e===0?1:0;if(t<0&&e!==Math.floor(e))return NaN;if(t<0)return(Math.round(e)%2===0?1:-1)*Qr(e,-t);if(e<0&&e===Math.floor(e))return Qr(-e,t);const n=t/2;let r=Math.pow(n,e)/Gr(e+1),s=r;const o=n*n;for(let i=1;i<=300&&(r*=o/(i*(i+e)),s+=r,!(Math.abs(r)<Math.abs(s)*1e-16));i++);return s}function cc(e,t){if(t<=0)return NaN;if(e<0&&(e=-e),e===Math.floor(e))return dC(Math.round(e),t);const n=Math.sin(e*Math.PI);return Math.PI/2*(Qr(-e,t)-Qr(e,t))/n}function dC(e,t){if(e===0)return $g(t);if(e===1)return Cg(t);let n=$g(t),r=Cg(t);for(let s=1;s<e;s++){const o=2*s/t*r+n;n=r,r=o}return r}function $g(e){const t=.5772156649015329,n=Qr(0,e),r=-(Math.log(e/2)+t)*n,s=e/2,o=s*s;let i=1,a=0,c=0;for(let l=1;l<=300&&(a+=1/l,i*=o/(l*l),c+=a*i,!(Math.abs(i*a)<Math.abs(c)*1e-16));l++);return r+c}function Cg(e){const t=e/2,n=t*t;let r=1,s=-.5772156649015329,o=-.5772156649015329+1,i=r,a=(s+o)*r;for(let c=1;c<=300&&(r*=n/(c*(c+1)),s+=1/c,o+=1/(c+1),i+=r,a+=(s+o)*r,!(Math.abs(r)<Math.abs(i)*1e-16));c++);return 1/e+t*Math.log(t)*i-t/2*a}function Ng(e){if(e===0)return 1/(Math.pow(3,2/3)*Gr(2/3));if(e>0){const r=.6666666666666666*Math.pow(e,1.5);return 1/Math.PI*Math.sqrt(e/3)*cc(1/3,r)}const t=-e,n=2/3*Math.pow(t,1.5);return Math.sqrt(t)/3*(tr(1/3,n)+tr(-1/3,n))}function Sg(e){if(e===0)return-1/(Math.pow(3,1/3)*Gr(1/3));if(e>0){const r=.6666666666666666*Math.pow(e,1.5);return-(e/(Math.PI*Math.sqrt(3)))*cc(2/3,r)}const t=-e,n=2/3*Math.pow(t,1.5);return t/3*(tr(2/3,n)-tr(-2/3,n))}function Ag(e){if(e===0)return 1/(Math.pow(3,1/6)*Gr(2/3));if(e>0){const r=.6666666666666666*Math.pow(e,1.5);return Math.sqrt(e/3)*(Qr(1/3,r)+Qr(-1/3,r))}const t=-e,n=2/3*Math.pow(t,1.5);return Math.sqrt(t/3)*(tr(-1/3,n)-tr(1/3,n))}function Eg(e){if(e===0)return Math.pow(3,1/6)/Gr(1/3);if(e>0){const r=.6666666666666666*Math.pow(e,1.5);return e/Math.sqrt(3)*(Qr(2/3,r)+Qr(-2/3,r))}const t=-e,n=2/3*Math.pow(t,1.5);return t/Math.sqrt(3)*(tr(2/3,n)+tr(-2/3,n))}function Ig(e,t){const n=e*e*e-3*e*t*t,r=3*e*e*t-t*t*t;let s=1,o=0,i=1,a=0,c=1,l=0,u=1,f=0,h=0,m=0,p=1,d=0;for(let D=1;D<=100;D++){const F=3*D*(3*D-1),R=(3*D+1)*(3*D),q=(s*n-o*r)/F,J=(s*r+o*n)/F;s=q,o=J;const X=(i*n-a*r)/R,z=(i*r+a*n)/R;i=X,a=z,c+=s,l+=o,u+=i,f+=a;const L=3*D;h+=L*s,m+=L*o,p+=(L+1)*i,d+=(L+1)*a;const B=Math.abs(s)+Math.abs(o)+Math.abs(i)+Math.abs(a),A=Math.abs(c)+Math.abs(l)+Math.abs(u)+Math.abs(f)+1e-300;if(B<1e-16*A)break}const g=e*u-t*f,w=e*f+t*u;let _,y;if(e===0&&t===0)_=0,y=0;else{const D=e*e+t*t;_=(h*e+m*t)/D,y=(m*e-h*t)/D}const b=p,k=d,M=Ng(0),$=Sg(0),S=Ag(0),E=Eg(0);return{ai:{re:M*c+$*g,im:M*l+$*w},aip:{re:M*_+$*b,im:M*y+$*k},bi:{re:S*c+E*g,im:S*l+E*w},bip:{re:S*_+E*b,im:S*y+E*k}}}function gC(e,t,n,r,s,o){const i=s!==0;switch(e){case So.J:if(i)for(let a=0;a<n;a++)o[a]=tr(t,r[a])*Math.exp(-Math.abs(r[a]));else for(let a=0;a<n;a++)o[a]=tr(t,r[a]);return;case So.Y:if(i)for(let a=0;a<n;a++)o[a]=ea(t,r[a])*Math.exp(-Math.abs(r[a]));else for(let a=0;a<n;a++)o[a]=ea(t,r[a]);return;case So.I:if(i)for(let a=0;a<n;a++)o[a]=Qr(t,r[a])*Math.exp(-Math.abs(r[a]));else for(let a=0;a<n;a++)o[a]=Qr(t,r[a]);return;case So.K:if(i)for(let a=0;a<n;a++)o[a]=cc(t,r[a])*Math.exp(r[a]);else for(let a=0;a<n;a++)o[a]=cc(t,r[a]);return;default:throw new Error(`tsBesselReal: unknown op ${e}`)}}function wC(e,t,n,r,s,o,i){const a=e===1?1:-1;if(s===0){for(let l=0;l<n;l++)o[l]=tr(t,r[l]),i[l]=a*ea(t,r[l]);return}const c=e===1?-1:1;for(let l=0;l<n;l++){const u=r[l],f=tr(t,u),h=a*ea(t,u),m=Math.cos(u),p=c*Math.sin(u);o[l]=f*m-h*p,i[l]=f*p+h*m}}const Bn={realBinaryElemwise(e,t,n,r,s){t!==0&&U$(e,t,n,r,s)},realScalarBinaryElemwise(e,t,n,r,s,o){t!==0&&W$(e,t,n,r,s,o)},complexBinaryElemwise(e,t,n,r,s,o,i,a){t!==0&&X$(e,t,n,r,s,o,i,a)},complexScalarBinaryElemwise(e,t,n,r,s,o,i,a,c){t!==0&&H$(e,t,n,r,s,o,i,a,c)},realUnaryElemwise(e,t,n,r){t!==0&&J$(e,t,n,r)},complexUnaryElemwise(e,t,n,r,s,o){t!==0&&nC(e,t,n,r,s,o)},complexAbs(e,t,n,r){e!==0&&rC(e,t,n,r)},realComparison(e,t,n,r,s){t!==0&&sC(e,t,n,r,s)},realScalarComparison(e,t,n,r,s,o){t!==0&&oC(e,t,n,r,s,o)},complexComparison(e,t,n,r,s,o,i){t!==0&&iC(e,t,n,r,s,o,i)},complexScalarComparison(e,t,n,r,s,o,i,a){t!==0&&aC(e,t,n,r,s,o,i,a)},realFlatReduce(e,t,n,r){cC(e,t,n,r)},complexFlatReduce(e,t,n,r,s,o){lC(e,t,n,r,s,o)},besselReal(e,t,n,r,s,o){n!==0&&gC(e,t,n,r,s,o)},besselH(e,t,n,r,s,o,i){n!==0&&wC(e,t,n,r,s,o,i)}};function Fg(e){if(e>0)return"positive";if(e===0)return"nonneg";if(e<0)return"negative"}function jg(e){return e.kind==="number"?e.sign==="nonneg"||e.sign==="positive":e.kind==="boolean"?!0:e.kind==="tensor"?!!e.nonneg:!1}function Rg(e,t){if(e===t)return e;if(!e||!t)return;const n=new Set([e,t]);if(n.has("positive")&&n.has("nonneg"))return"nonneg";if(n.has("negative")&&n.has("nonpositive"))return"nonpositive"}function to(e){switch(e.kind){case"number":{let t="number";return e.exact!==void 0&&(t+=`=${e.exact}`),e.sign&&(t+=`:${e.sign}`),e.isInteger&&(t+=":int"),t}case"boolean":{let t="boolean";return e.value!==void 0&&(t+=`=${e.value}`),t}case"complex_or_number":return e.pureImaginary?"complex:imag":"complex_or_number";case"tensor":{let n=`tensor[${e.shape?e.shape.map(r=>r===-1?"?":r).join("x"):e.ndim!==void 0?Array(e.ndim).fill("?").join("x"):"?"}]`;return e.isComplex===!0?n+="C":e.isComplex===!1&&(n+="R"),e.nonneg&&(n+="+"),e.isLogical&&(n+="L"),n}case"string":return e.value!=null?`string:${e.value}`:"string";case"char":return e.value!=null?`char:${e.value}`:"char";case"struct":return e.fields?`struct{${Object.keys(e.fields).sort().map(r=>`${r}:${to(e.fields[r])}`).join(",")}}`:"struct";case"struct_array":return e.elemFields?`struct_array{${Object.keys(e.elemFields).sort().map(r=>`${r}:${to(e.elemFields[r])}`).join(",")}}`:"struct_array";case"class_instance":{let t=`class:${e.className}`;if(e.isHandleClass&&(t+=":handle"),e.fields){const r=Object.keys(e.fields).sort().map(s=>`${s}:${to(e.fields[s])}`);t+=`{${r.join(",")}}`}return t}case"function_handle":return"function_handle";case"sparse_matrix":{let t="sparse";return e.m!==void 0&&e.n!==void 0&&(t+=`[${e.m}x${e.n}]`),e.isComplex&&(t+="C"),t}case"cell":return`cell[${e.shape?e.shape.join("x"):"?"}]`;case"dictionary":return"dictionary";case"unknown":return"unknown"}}function ta(e,t){if(e.kind===t.kind){if(e.kind==="number"&&t.kind==="number"){const n=e.exact!==void 0&&e.exact===t.exact?e.exact:void 0,r=n!==void 0?Fg(n):Rg(e.sign,t.sign),s=e.isInteger&&t.isInteger;return{kind:"number",...n!==void 0?{exact:n}:{},...r?{sign:r}:{},...s?{isInteger:!0}:{}}}if(e.kind==="complex_or_number"&&t.kind==="complex_or_number")return{kind:"complex_or_number",...e.pureImaginary&&t.pureImaginary?{pureImaginary:!0}:{}};if(e.kind==="tensor"&&t.kind==="tensor"){const n=e.isComplex||t.isComplex;let r,s;if(e.shape&&t.shape)e.shape.length!==t.shape.length?(r=void 0,s=void 0):(r=e.shape.map((a,c)=>a===t.shape[c]?a:-1),s=r.length);else{r=void 0;const a=e.shape?e.shape.length:e.ndim,c=t.shape?t.shape.length:t.ndim;s=a!==void 0&&a===c?a:void 0}const o=!n&&e.nonneg&&t.nonneg,i=e.isLogical&&t.isLogical;return{kind:"tensor",isComplex:n,...r?{shape:r}:{},...s!==void 0&&!r?{ndim:s}:{},...o?{nonneg:!0}:{},...i?{isLogical:!0}:{}}}if(e.kind==="string"&&t.kind==="string")return{kind:"string",value:e.value!=null&&e.value===t.value?e.value:void 0};if(e.kind==="char"&&t.kind==="char")return{kind:"char",value:e.value!=null&&e.value===t.value?e.value:void 0};if(e.kind==="boolean"&&t.kind==="boolean")return{kind:"boolean",...e.value!==void 0&&e.value===t.value?{value:e.value}:{}};if(e.kind==="struct"&&t.kind==="struct"){if(!e.fields||!t.fields)return{kind:"struct"};const n={};let r=!1;for(const s of Object.keys(e.fields))s in t.fields&&(n[s]=ta(e.fields[s],t.fields[s]),r=!0);return{kind:"struct",...r?{fields:n}:{}}}if(e.kind==="struct_array"&&t.kind==="struct_array"){if(!e.elemFields||!t.elemFields)return{kind:"struct_array"};const n={};let r=!1;for(const o of Object.keys(e.elemFields))o in t.elemFields&&(n[o]=ta(e.elemFields[o],t.elemFields[o]),r=!0);const s=e.length!==void 0&&e.length===t.length?e.length:void 0;return{kind:"struct_array",...r?{elemFields:n}:{},...s!==void 0?{length:s}:{}}}if(e.kind==="class_instance"&&t.kind==="class_instance"){if(e.className!==t.className)return{kind:"unknown"};const n=e.isHandleClass===t.isHandleClass?e.isHandleClass:void 0;if(!e.fields||!t.fields)return{kind:"class_instance",className:e.className,...n!==void 0?{isHandleClass:n}:{}};const r={};let s=!1;for(const o of Object.keys(e.fields))o in t.fields&&(r[o]=ta(e.fields[o],t.fields[o]),s=!0);return{kind:"class_instance",className:e.className,...n!==void 0?{isHandleClass:n}:{},...s?{fields:r}:{}}}if(e.kind==="dictionary"&&t.kind==="dictionary")return{kind:"dictionary"};if(e.kind==="function_handle"&&t.kind==="function_handle")return{kind:"function_handle"};if(e.kind==="cell"&&t.kind==="cell"){let n;e.shape&&t.shape&&e.shape.length===t.shape.length&&(n=e.shape.map((s,o)=>s===t.shape[o]?s:-1));let r;if(e.elements&&t.elements)for(const s of Object.keys(e.elements)){const o=Number(s),i=t.elements[o];if(!i)continue;const a=ta(e.elements[o],i);a.kind!=="unknown"&&((r??={})[o]=a)}return{kind:"cell",...n?{shape:n}:{},...r?{elements:r}:{}}}return e.kind==="sparse_matrix"&&t.kind==="sparse_matrix"?{kind:"sparse_matrix",isComplex:e.isComplex||t.isComplex,...e.m!==void 0&&e.m===t.m?{m:e.m}:{},...e.n!==void 0&&e.n===t.n?{n:e.n}:{}}:{kind:"unknown"}}return e.kind==="number"&&t.kind==="boolean"?{kind:"number",...e.isInteger?{isInteger:!0}:{}}:e.kind==="boolean"&&t.kind==="number"?{kind:"number",...t.isInteger?{isInteger:!0}:{}}:e.kind==="complex_or_number"&&(t.kind==="number"||t.kind==="boolean")||(e.kind==="number"||e.kind==="boolean")&&t.kind==="complex_or_number"?{kind:"complex_or_number"}:{kind:"unknown"}}function _C(e){return e.length===1?e[0]!==-1:e.length===2?e[0]===1&&e[1]!==-1||e[1]===1&&e[0]!==-1:!1}function Ql(e,t){if(t!==void 0){if(t>e.length)return e.every(o=>o===1)?{scalar:!0}:{scalar:!1,shape:[...e]};const s=[...e];for(s[t-1]=1;s.length>2&&s[s.length-1]===1;)s.pop();return s.every(o=>o===1)?{scalar:!0}:{scalar:!1,shape:s}}if(_C(e))return{scalar:!0};const n=e.findIndex(s=>s!==1);if(n===-1)return{scalar:!0};const r=[...e];for(r[n]=1;r.length>2&&r[r.length-1]===1;)r.pop();return{scalar:!1,shape:r}}function as(e){return e.pi!==void 0}function yr(e,t){return e.pr[t]}function xr(e,t){return e.pi?e.pi[t]:0}function lc(e,t){return e===0&&t===0}function Oo(e){for(let t=0;t<e.length;t++)if(e[t]!==0)return v(e)}function vt(e){const t=v(e.m*e.n),n=e.pi?v(e.m*e.n):void 0;for(let r=0;r<e.n;r++)for(let s=e.jc[r];s<e.jc[r+1];s++){const o=r*e.m+e.ir[s];t[o]=e.pr[s],n&&e.pi&&(n[o]=e.pi[s])}return x.tensor(t,[e.m,e.n],n)}function yC(e){return O(e)?e:Ce(e)?e?1:0:T(e)&&e.data.length===1&&!e.imag?e.data[0]:NaN}function $s(e){return O(e)?{re:e,im:0}:Ce(e)?{re:e?1:0,im:0}:Le(e)?{re:e.re,im:e.im}:T(e)&&e.data.length===1?{re:e.data[0],im:e.imag?e.imag[0]:0}:null}function xC(e,t){if(e.m!==t.m||e.n!==t.n)throw new C(`Matrix dimensions must agree: [${e.m},${e.n}] vs [${t.m},${t.n}]`);const n=as(e)||as(t),r=[],s=[],o=[],i=new Int32Array(e.n+1);for(let a=0;a<e.n;a++){i[a]=r.length;let c=e.jc[a],l=t.jc[a];const u=e.jc[a+1],f=t.jc[a+1];for(;c<u&&l<f;)if(e.ir[c]<t.ir[l])r.push(e.ir[c]),s.push(yr(e,c)),o.push(xr(e,c)),c++;else if(e.ir[c]>t.ir[l])r.push(t.ir[l]),s.push(yr(t,l)),o.push(xr(t,l)),l++;else{const h=yr(e,c)+yr(t,l),m=xr(e,c)+xr(t,l);lc(h,m)||(r.push(e.ir[c]),s.push(h),o.push(m)),c++,l++}for(;c<u;)r.push(e.ir[c]),s.push(yr(e,c)),o.push(xr(e,c)),c++;for(;l<f;)r.push(t.ir[l]),s.push(yr(t,l)),o.push(xr(t,l)),l++}return i[e.n]=r.length,x.sparseMatrix(e.m,e.n,new Int32Array(r),i,v(s),n?Oo(o):void 0)}function bC(e,t){if(e.m!==t.m||e.n!==t.n)throw new C(`Matrix dimensions must agree: [${e.m},${e.n}] vs [${t.m},${t.n}]`);const n=as(e)||as(t),r=[],s=[],o=[],i=new Int32Array(e.n+1);for(let a=0;a<e.n;a++){i[a]=r.length;let c=e.jc[a],l=t.jc[a];const u=e.jc[a+1],f=t.jc[a+1];for(;c<u&&l<f;)if(e.ir[c]<t.ir[l])r.push(e.ir[c]),s.push(yr(e,c)),o.push(xr(e,c)),c++;else if(e.ir[c]>t.ir[l])r.push(t.ir[l]),s.push(-yr(t,l)),o.push(-xr(t,l)),l++;else{const h=yr(e,c)-yr(t,l),m=xr(e,c)-xr(t,l);lc(h,m)||(r.push(e.ir[c]),s.push(h),o.push(m)),c++,l++}for(;c<u;)r.push(e.ir[c]),s.push(yr(e,c)),o.push(xr(e,c)),c++;for(;l<f;)r.push(t.ir[l]),s.push(-yr(t,l)),o.push(-xr(t,l)),l++}return i[e.n]=r.length,x.sparseMatrix(e.m,e.n,new Int32Array(r),i,v(s),n?Oo(o):void 0)}function uc(e,t,n){if(t===0&&n===0)return x.sparseMatrix(e.m,e.n,new Int32Array(0),new Int32Array(e.n+1),v(0));const r=e.pr.length,s=v(r),o=v(r);for(let i=0;i<r;i++){const a=e.pr[i],c=e.pi?e.pi[i]:0;s[i]=a*t-c*n,o[i]=a*n+c*t}return x.sparseMatrix(e.m,e.n,new Int32Array(e.ir),new Int32Array(e.jc),s,Oo(Array.from(o)))}function fc(e,t){if(t===0)return x.sparseMatrix(e.m,e.n,new Int32Array(0),new Int32Array(e.n+1),v(0));const n=v(e.pr.length);for(let s=0;s<n.length;s++)n[s]=e.pr[s]*t;const r=e.pi?v(e.pi.length):void 0;if(r&&e.pi)for(let s=0;s<r.length;s++)r[s]=e.pi[s]*t;return x.sparseMatrix(e.m,e.n,new Int32Array(e.ir),new Int32Array(e.jc),n,r)}function kC(e){const t=v(e.pr.length);for(let r=0;r<t.length;r++)t[r]=-e.pr[r];const n=e.pi?v(e.pi.length):void 0;if(n&&e.pi)for(let r=0;r<n.length;r++)n[r]=-e.pi[r];return x.sparseMatrix(e.m,e.n,new Int32Array(e.ir),new Int32Array(e.jc),t,n)}function Lg(e){const t=e.jc[e.n],n=new Int32Array(t),r=new Int32Array(e.m+1),s=v(t),o=e.pi?v(t):void 0;for(let a=0;a<t;a++)r[e.ir[a]+1]++;for(let a=0;a<e.m;a++)r[a+1]+=r[a];const i=new Int32Array(e.m);for(let a=0;a<e.m;a++)i[a]=r[a];for(let a=0;a<e.n;a++)for(let c=e.jc[a];c<e.jc[a+1];c++){const l=e.ir[c],u=i[l]++;n[u]=a,s[u]=e.pr[c],o&&e.pi&&(o[u]=e.pi[c])}return x.sparseMatrix(e.n,e.m,n,r,s,o)}function vC(e){if(!e.pi)return Lg(e);const t=e.jc[e.n],n=new Int32Array(t),r=new Int32Array(e.m+1),s=v(t),o=v(t);for(let a=0;a<t;a++)r[e.ir[a]+1]++;for(let a=0;a<e.m;a++)r[a+1]+=r[a];const i=new Int32Array(e.m);for(let a=0;a<e.m;a++)i[a]=r[a];for(let a=0;a<e.n;a++)for(let c=e.jc[a];c<e.jc[a+1];c++){const l=e.ir[c],u=i[l]++;n[u]=a,s[u]=e.pr[c],o[u]=-e.pi[c]}return x.sparseMatrix(e.n,e.m,n,r,s,Oo(Array.from(o)))}function MC(e,t){if(e.n!==t.m)throw new C(`Inner matrix dimensions must agree: ${e.n} vs ${t.m}`);const n=e.m,r=t.n,s=as(e)||as(t),o=[],i=[],a=[],c=new Int32Array(r+1),l=v(n),u=s?v(n):null,f=new Int32Array(n).fill(-1);for(let h=0;h<r;h++){c[h]=o.length;const m=[];for(let p=t.jc[h];p<t.jc[h+1];p++){const d=t.ir[p],g=yr(t,p),w=s?xr(t,p):0;for(let _=e.jc[d];_<e.jc[d+1];_++){const y=e.ir[_],b=yr(e,_),k=s?xr(e,_):0,M=b*g-k*w,$=b*w+k*g;f[y]!==h?(f[y]=h,l[y]=M,u&&(u[y]=$),m.push(y)):(l[y]+=M,u&&(u[y]+=$))}}m.sort((p,d)=>p-d);for(const p of m){const d=l[p],g=u?u[p]:0;lc(d,g)||(o.push(p),i.push(d),a.push(g))}}return c[r]=o.length,x.sparseMatrix(n,r,new Int32Array(o),c,v(i),s?Oo(a):void 0)}function $C(e,t){if(e.m!==t.m||e.n!==t.n)throw new C(`Matrix dimensions must agree: [${e.m},${e.n}] vs [${t.m},${t.n}]`);const n=as(e)||as(t),r=[],s=[],o=[],i=new Int32Array(e.n+1);for(let a=0;a<e.n;a++){i[a]=r.length;let c=e.jc[a],l=t.jc[a];const u=e.jc[a+1],f=t.jc[a+1];for(;c<u&&l<f;)if(e.ir[c]<t.ir[l])c++;else if(e.ir[c]>t.ir[l])l++;else{const h=yr(e,c),m=xr(e,c),p=yr(t,l),d=xr(t,l),g=h*p-m*d,w=h*d+m*p;lc(g,w)||(r.push(e.ir[c]),s.push(g),o.push(w)),c++,l++}}return i[e.n]=r.length,x.sparseMatrix(e.m,e.n,new Int32Array(r),i,v(s),n?Oo(o):void 0)}function Dg(e,t){const[n,r]=tt(t);if(!(n===e.m||n===1)||!(r===e.n||r===1))throw new C(`Matrix dimensions must agree: [${e.m},${e.n}] vs [${n},${r}]`);const s=(u,f)=>(r===1?0:f)*n+(n===1?0:u),o=as(e)||t.imag!==void 0,i=[],a=[],c=[],l=new Int32Array(e.n+1);for(let u=0;u<e.n;u++){l[u]=i.length;for(let f=e.jc[u];f<e.jc[u+1];f++){const h=e.ir[f],m=s(h,u),p=e.pr[f],d=e.pi?e.pi[f]:0,g=t.data[m],w=t.imag?t.imag[m]:0,_=p*g-d*w,y=p*w+d*g;lc(_,y)||(i.push(h),a.push(_),c.push(y))}}return l[e.n]=i.length,x.sparseMatrix(e.m,e.n,new Int32Array(i),l,v(a),o?Oo(c):void 0)}function CC(e,t){if(Ae(e)&&Ae(t))return xC(e,t);if(Ae(e)){const n=$s(t);if(n){const r=vt(e),s=v(r.data.length);for(let i=0;i<s.length;i++)s[i]=r.data[i]+n.re;const o=n.im!==0||r.imag?(()=>{const i=v(s.length);for(let a=0;a<i.length;a++)i[a]=(r.imag?r.imag[a]:0)+n.im;return i})():void 0;return x.tensor(s,r.shape,o)}}if(Ae(t)){const n=$s(e);if(n){const r=vt(t),s=v(r.data.length);for(let i=0;i<s.length;i++)s[i]=n.re+r.data[i];const o=n.im!==0||r.imag?(()=>{const i=v(s.length);for(let a=0;a<i.length;a++)i[a]=n.im+(r.imag?r.imag[a]:0);return i})():void 0;return x.tensor(s,r.shape,o)}}if(Ae(e)&&T(t)){const n=vt(e),r=v(n.data.length);for(let o=0;o<r.length;o++)r[o]=n.data[o]+t.data[o];const s=Ol(n.imag,t.imag,r.length,(o,i)=>o+i);return x.tensor(r,n.shape,s)}if(T(e)&&Ae(t)){const n=vt(t),r=v(n.data.length);for(let o=0;o<r.length;o++)r[o]=e.data[o]+n.data[o];const s=Ol(e.imag,n.imag,r.length,(o,i)=>o+i);return x.tensor(r,e.shape,s)}throw new C("mAddSparse: unexpected operand types")}function NC(e,t){if(Ae(e)&&Ae(t))return bC(e,t);if(Ae(e)){const n=$s(t);if(n){const r=vt(e),s=v(r.data.length);for(let i=0;i<s.length;i++)s[i]=r.data[i]-n.re;const o=n.im!==0||r.imag?(()=>{const i=v(s.length);for(let a=0;a<i.length;a++)i[a]=(r.imag?r.imag[a]:0)-n.im;return i})():void 0;return x.tensor(s,r.shape,o)}}if(Ae(t)){const n=$s(e);if(n){const r=vt(t),s=v(r.data.length);for(let i=0;i<s.length;i++)s[i]=n.re-r.data[i];const o=n.im!==0||r.imag?(()=>{const i=v(s.length);for(let a=0;a<i.length;a++)i[a]=n.im-(r.imag?r.imag[a]:0);return i})():void 0;return x.tensor(s,r.shape,o)}}if(Ae(e)&&T(t)){const n=vt(e),r=v(n.data.length);for(let o=0;o<r.length;o++)r[o]=n.data[o]-t.data[o];const s=Ol(n.imag,t.imag,r.length,(o,i)=>o-i);return x.tensor(r,n.shape,s)}if(T(e)&&Ae(t)){const n=vt(t),r=v(n.data.length);for(let o=0;o<r.length;o++)r[o]=e.data[o]-n.data[o];const s=Ol(e.imag,n.imag,r.length,(o,i)=>o-i);return x.tensor(r,e.shape,s)}throw new C("mSubSparse: unexpected operand types")}function Ol(e,t,n,r){if(!e&&!t)return;const s=v(n);for(let o=0;o<n;o++)s[o]=r(e?e[o]:0,t?t[o]:0);return s}function SC(e,t){if(Ae(e)&&Ae(t))return MC(e,t);if(Ae(e)){const n=$s(t);if(n)return n.im===0?fc(e,n.re):uc(e,n.re,n.im)}if(Ae(t)){const n=$s(e);if(n)return n.im===0?fc(t,n.re):uc(t,n.re,n.im)}if(Ae(e)&&T(t)){const[n,r]=tt(t);if(e.n!==n)throw new C(`Inner matrix dimensions must agree: ${e.n} vs ${n}`);const s=e.m,o=as(e)||t.imag!==void 0,i=v(s*r),a=o?v(s*r):void 0;for(let c=0;c<r;c++)for(let l=0;l<e.n;l++){const u=t.data[c*n+l],f=t.imag?t.imag[c*n+l]:0;if(!(u===0&&f===0))for(let h=e.jc[l];h<e.jc[l+1];h++){const m=c*s+e.ir[h],p=e.pr[h],d=e.pi?e.pi[h]:0;i[m]+=p*u-d*f,a&&(a[m]+=p*f+d*u)}}return x.tensor(i,[s,r],a)}if(T(e)&&Ae(t)){const[n,r]=tt(e);if(r!==t.m)throw new C(`Inner matrix dimensions must agree: ${r} vs ${t.m}`);const s=e.imag!==void 0||as(t),o=v(n*t.n),i=s?v(n*t.n):void 0;for(let a=0;a<t.n;a++)for(let c=t.jc[a];c<t.jc[a+1];c++){const l=t.ir[c],u=t.pr[c],f=t.pi?t.pi[c]:0;for(let h=0;h<n;h++){const m=l*n+h,p=e.data[m],d=e.imag?e.imag[m]:0,g=a*n+h;o[g]+=p*u-d*f,i&&(i[g]+=p*f+d*u)}}return x.tensor(o,[n,t.n],i)}throw new C("mMulSparse: unexpected operand types")}function AC(e,t){if(Ae(e)&&Ae(t))return $C(e,t);if(Ae(e)){const n=$s(t);if(n)return n.im===0?fc(e,n.re):uc(e,n.re,n.im)}if(Ae(t)){const n=$s(e);if(n)return n.im===0?fc(t,n.re):uc(t,n.re,n.im)}if(Ae(e)&&T(t))return Dg(e,t);if(T(e)&&Ae(t))return Dg(t,e);throw new C("mElemMulSparse: unexpected operand types")}function EC(e,t){if(Ae(e)){const a=yC(t);if(!isNaN(a))return fc(e,1/a);const c=$s(t);if(c){const l=c.re*c.re+c.im*c.im;return uc(e,c.re/l,-c.im/l)}}if(Ae(t)){const a=$s(e);if(a){const c=vt(t),l=c.data.length,u=a.im!==0||c.imag!==void 0,f=v(l),h=u?v(l):void 0;for(let m=0;m<l;m++){const p=c.data[m],d=c.imag?c.imag[m]:0;if(!u)f[m]=a.re/p;else{const g=p*p+d*d;f[m]=(a.re*p+a.im*d)/g,h&&(h[m]=(a.im*p-a.re*d)/g)}}return x.tensor(f,c.shape,h)}}const n=Ae(e)?vt(e):e,r=Ae(t)?vt(t):t;if(!T(n)||!T(r))throw new C("mElemDivSparse: unexpected operand types");const s=n.imag!==void 0||r.imag!==void 0,o=v(n.data.length),i=s?v(n.data.length):void 0;for(let a=0;a<o.length;a++){const c=r.data[a],l=r.imag?r.imag[a]:0;if(!s)o[a]=n.data[a]/c;else{const u=n.data[a],f=n.imag?n.imag[a]:0,h=c*c+l*l;o[a]=(u*c+f*l)/h,i&&(i[a]=(f*c-u*l)/h)}}return x.tensor(o,n.shape,i)}const ei=new Map;function br(e){return ei.get(e)}function Ne(e){if(ei.has(e.name))throw new Error(`registerIBuiltin: duplicate registration for '${e.name}'`);ei.set(e.name,e)}function na(e){ei.set(e.name,e)}function Tg(){return Array.from(ei.keys())}const Pg=new Map;function Bg(e){return ei.get(e)?.help??Pg.get(e)}function IC(e,t){Pg.set(e,t)}function qg(e){const t=ei.get(e);if(!t)return;const n={kind:"number"};for(let r=1;r<=10;r++)if(t.resolve(Array(r).fill(n),1))return r}function nr(e){if(typeof e=="boolean")return{kind:"boolean",value:e};if(typeof e=="number"){const t=Fg(e);return{kind:"number",exact:e,...t?{sign:t}:{}}}if(typeof e=="string")return{kind:"string",value:e};if(be(e))return{kind:"char",value:e.value};if(typeof e=="object"&&e!==null&&e.kind==="complex_number")return{kind:"complex_or_number"};if(typeof e=="object"&&e!==null&&e.kind==="tensor"){const t=e,n=t.shape.length>=2?t.shape.slice():[1,...t.shape];return t.imag?{kind:"tensor",isComplex:!0,shape:n}:{kind:"tensor",isComplex:!1,shape:n,...t._isLogical?{isLogical:!0}:{}}}if(ut(e)){const t=e,n={};for(const[r,s]of t.fields)Vt(s)?n[r]=FC(s):n[r]=nr(s);return{kind:"struct",fields:n}}if(Ae(e)){const t=e;return{kind:"sparse_matrix",isComplex:!!t.pi,m:t.m,n:t.n}}if(typeof e=="object"&&e!==null&&e.kind==="cell")return{kind:"cell",shape:e.shape.slice()};if(typeof e=="object"&&e!==null&&e.kind==="dictionary")return{kind:"dictionary"};if(Ze(e)){const t=e,n={};for(const[r,s]of t.fields)n[r]=nr(s);return{kind:"class_instance",className:t.className,isHandleClass:t.isHandleClass,fields:n}}return St(e)?{kind:"class_instance",className:e.className,isHandleClass:!1,fields:{}}:typeof e=="object"&&e!==null&&e.kind==="function"?{kind:"function_handle"}:{kind:"unknown"}}function FC(e){if(e.elements.length===0)return{kind:"struct_array",length:0};const t={},n=e.elements[0];for(const[r,s]of n.fields)t[r]=nr(s);for(let r=1;r<e.elements.length;r++){const s=e.elements[r];for(const o of Object.keys(t)){const i=s.fields.get(o);if(i===void 0){delete t[o];continue}const a=t[o],c=nr(i);t[o]=jC(a,c)}}return{kind:"struct_array",elemFields:t,length:e.elements.length}}function jC(e,t){const n=ta(e,t);if(n.kind!=="unknown")return n;const r=o=>o.kind==="tensor"&&o.isComplex!==!0,s=o=>o.kind==="number"||o.kind==="boolean";return r(e)&&s(t)||s(e)&&r(t)?{kind:"tensor",isComplex:!1}:n}function eu(e,t){return t===0?e:new Pm(e,t)}function Ht(e,t,n){const r=[...n];for(;r.length>2&&r[r.length-1]===1;)r.pop();return new On(e,r,t)}function RC(e){if(e.length!==2)return null;const t=e[0].kind,n=e[1].kind;return t!=="number"&&t!=="boolean"||n!=="number"&&n!=="boolean"?null:[{kind:"number"}]}const Vg=new Map([[Math.exp,0],[Math.log,1],[Math.log2,2],[Math.log10,3],[Math.sqrt,4],[Math.abs,5],[Math.floor,6],[Math.ceil,7],[Math.round,8],[Math.trunc,9],[Math.sin,10],[Math.cos,11],[Math.tan,12],[Math.asin,13],[Math.acos,14],[Math.atan,15],[Math.sinh,16],[Math.cosh,17],[Math.tanh,18],[Math.sign,19]]);function _h(e,t,n,r){if(Ae(e))return _h(vt(e),t,n,r);if(typeof e=="boolean")return t(e?1:0);if(typeof e=="number")return t(e);if(Le(e)){const s=n(e.re,e.im);return eu(s.re,s.im)}if(T(e)){const s=e.data.length;if(!e.imag){const c=Vg.get(t);if(c!==void 0&&e.data instanceof Float64Array){const u=v(s);return Bn.realUnaryElemwise(c,s,e.data,u),x.tensorRaw(u,e.shape.slice())}const l=v(s);for(let u=0;u<s;u++)l[u]=t(e.data[u]);return Ht(l,void 0,e.shape.slice())}const o=Vg.get(t);if(o!==void 0&&o!==5&&e.data instanceof Float64Array&&e.imag instanceof Float64Array){const c=v(s),l=v(s);return Bn.complexUnaryElemwise(o,s,e.data,e.imag,c,l),Ht(c,l,e.shape.slice())}const i=v(s),a=v(s);for(let c=0;c<s;c++){const l=n(e.data[c],e.imag[c]);i[c]=l.re,a[c]=l.im}return Ht(i,a,e.shape.slice())}throw new Error(`${r}: unsupported argument type`)}function zg(e,t,n,r,s){if(Ae(e))return zg(vt(e),t,n,r,s);if(typeof e=="boolean"&&(e=e?1:0),typeof e=="number"){const o=t(e);if(!Number.isNaN(o))return o;const i=n(e,0);return eu(i.re,i.im)}if(Le(e)){const o=n(e.re,e.im);return eu(o.re,o.im)}if(T(e)){const o=e.data.length;if(!e.imag){if(s!==void 0&&e.data instanceof Float64Array){const f=v(o);Bn.realUnaryElemwise(s,o,e.data,f);let h=-1;for(let g=0;g<o;g++)if(Number.isNaN(f[g])){h=g;break}if(h===-1)return x.tensorRaw(f,e.shape.slice());const m=v(o),p=v(o);let d=!1;for(let g=0;g<o;g++)if(!Number.isNaN(f[g]))m[g]=f[g];else{const w=n(e.data[g],0);m[g]=w.re,p[g]=w.im,w.im!==0&&(d=!0)}return Ht(m,d?p:void 0,e.shape.slice())}const c=v(o),l=v(o);let u=!1;for(let f=0;f<o;f++){const h=t(e.data[f]);if(!Number.isNaN(h))c[f]=h,l[f]=0;else{const m=n(e.data[f],0);c[f]=m.re,l[f]=m.im,m.im!==0&&(u=!0)}}return Ht(c,u?l:void 0,e.shape.slice())}const i=v(o),a=v(o);for(let c=0;c<o;c++){const l=n(e.data[c],e.imag[c]);i[c]=l.re,a[c]=l.im}return Ht(i,a,e.shape.slice())}throw new Error(`${r}: unsupported argument type`)}function Ug(e,t,n,r){if(Ae(e))return Ug(vt(e),t,n,r);if(typeof e=="boolean")return t(e?1:0);if(typeof e=="number")return t(e);if(Le(e))return n(e.re,e.im);if(T(e)){const s=e.data.length;if(t===Math.abs&&e.data instanceof Float64Array){if(!e.imag){const i=v(s);return Bn.realUnaryElemwise(5,s,e.data,i),x.tensorRaw(i,e.shape.slice())}if(e.imag instanceof Float64Array){const i=v(s);return Bn.complexAbs(s,e.data,e.imag,i),x.tensorRaw(i,e.shape.slice())}}const o=v(s);if(e.imag)for(let i=0;i<s;i++)o[i]=n(e.data[i],e.imag[i]);else for(let i=0;i<s;i++)o[i]=t(e.data[i]);return Ht(o,void 0,e.shape.slice())}throw new Error(`${r}: unsupported argument type`)}function LC(e,t,n){const r=typeof e[0]=="boolean"?e[0]?1:0:e[0],s=typeof e[1]=="boolean"?e[1]?1:0:e[1];if(typeof r=="number"&&typeof s=="number")return t(r,s);throw new Error(`${n}: expected two scalar numbers`)}function yh(e,t,n){const r=typeof e[0]=="boolean"?e[0]?1:0:e[0],s=typeof e[1]=="boolean"?e[1]?1:0:e[1],o=typeof r=="number",i=typeof s=="number",a=T(r),c=T(s);if(o&&i)return t(r,s);if(a&&i){const l=r,u=s,f=v(l.data.length);for(let h=0;h<l.data.length;h++)f[h]=t(l.data[h],u);return Ht(f,void 0,l.shape)}if(o&&c){const l=r,u=s,f=v(u.data.length);for(let h=0;h<u.data.length;h++)f[h]=t(l,u.data[h]);return Ht(f,void 0,u.shape)}if(a&&c){const l=r,u=s,f=As(l.shape,u.shape);if(f===null)throw new Error(`${n}: Matrix dimensions must agree`);const h=f.reduce((p,d)=>p*d,1),m=v(h);return ro(l.shape,u.shape,f,(p,d,g)=>{m[g]=t(l.data[p],u.data[d])}),Ht(m,void 0,f)}throw new Error(`${n}: unsupported argument types`)}function xh(e){if(e.length!==2)return null;const t=e[0].kind,n=e[1].kind,r=["number","boolean","tensor"];return!r.includes(t)||!r.includes(n)?null:t==="tensor"||n==="tensor"?[{kind:"tensor",isComplex:!1}]:[{kind:"number"}]}function pe(e){Ne({name:e.name,help:e.help,resolve:(t,n)=>{for(const r of e.cases){const s=r.match(t,n);if(s)return{outputTypes:s,apply:r.apply}}return null}})}function Cn(e,t){const n=e.maybeComplex?c=>zg(c[0],e.realFn,e.complexFn,t,e.nativeOpCode):c=>_h(c[0],e.realFn,e.complexFn,t),r=[],s=e.numberType??(()=>({kind:"number"})),o=e.booleanType??(()=>({kind:"number"}));r.push({match:c=>{if(c.length!==1)return null;const l=c[0];if(l.kind==="number"){const u=s(l);return u?[u]:null}if(l.kind==="boolean"){const u=o(l);return u?[u]:null}return null},apply:n});const i=e.complexType??(()=>({kind:"complex_or_number"}));r.push({match:c=>{if(c.length!==1||c[0].kind!=="complex_or_number")return null;const l=i(c[0]);return l?[l]:null},apply:n});const a=e.tensorType??(c=>({kind:"tensor",isComplex:c.isComplex,shape:c.shape,ndim:c.ndim}));return r.push({match:c=>{if(c.length!==1||c[0].kind!=="tensor")return null;const l=a(c[0]);return l?[l]:null},apply:n}),r.push({match:c=>{if(c.length!==1||c[0].kind!=="sparse_matrix")return null;const l=c[0],u=l.m!==void 0&&l.n!==void 0?[l.m,l.n]:void 0,f=a({kind:"tensor",isComplex:l.isComplex,shape:u});return f?[f]:null},apply:n}),r}function tu(e,t,n){const r=s=>Ug(s[0],e,t,n);return[{match:s=>{if(s.length!==1)return null;const o=s[0].kind;return o==="number"||o==="boolean"||o==="complex_or_number"?[{kind:"number",sign:"nonneg"}]:null},apply:r},{match:s=>{if(s.length!==1)return null;const o=s[0];return o.kind!=="tensor"?null:[{kind:"tensor",isComplex:!1,shape:o.shape,ndim:o.ndim,nonneg:!0}]},apply:r},{match:s=>{if(s.length!==1||s[0].kind!=="sparse_matrix")return null;const o=s[0];return[{kind:"tensor",isComplex:!1,shape:o.m!==void 0&&o.n!==void 0?[o.m,o.n]:void 0,nonneg:!0}]},apply:r}]}function bh(e,t,n,r,s){return[{match:o=>{if(o.length!==1)return null;const i=o[0].kind;return i==="number"||i==="boolean"||i==="complex_or_number"?[{kind:"boolean"}]:null},apply:o=>{const i=o[0];if(typeof i=="boolean")return e(i?1:0);if(typeof i=="number")return e(i);if(Le(i))return t(i.re,i.im);throw new Error(`${s}: unsupported argument type`)}},{match:o=>{if(o.length!==1)return null;const i=o[0];return i.kind!=="tensor"?null:[{kind:"tensor",isComplex:!1,shape:i.shape,ndim:i.ndim,nonneg:!0,isLogical:!0}]},apply:o=>{const i=o[0];if(!T(i))throw new Error(`${s}: unsupported argument type`);const a=i.data.length,c=v(a);if(i.imag)for(let u=0;u<a;u++)c[u]=r(i.data[u],i.imag[u])?1:0;else for(let u=0;u<a;u++)c[u]=n(i.data[u])?1:0;const l=Ht(c,void 0,i.shape.slice());return l._isLogical=!0,l}}]}function ct(e){return e instanceof Float64Array?e:v(e)}function cs(e){return typeof e=="string"?e.replace(/^['"]|['"]$/g,"").toLowerCase():e&&typeof e=="object"&&"value"in e?String(e.value).replace(/^['"]|['"]$/g,"").toLowerCase():String(e).toLowerCase()}function Wg(e){return e===void 0?!1:!!(O(e)&&e===0||ve(e)&&e.toLowerCase()==="econ"||be(e)&&e.value.toLowerCase()==="econ")}function nu(e,t,n,r){if(!r)return x.tensor(e,[n,n]);const s=v(n*n),o=v(n*n);let i=0;for(;i<n;)if(Math.abs(t[i])===0){for(let a=0;a<n;a++)s[Ke(a,i,n)]=e[Ke(a,i,n)];i++}else{for(let a=0;a<n;a++){const c=e[Ke(a,i,n)],l=e[Ke(a,i+1,n)];s[Ke(a,i,n)]=c,o[Ke(a,i,n)]=l,s[Ke(a,i+1,n)]=c,o[Ke(a,i+1,n)]=-l}i+=2}return x.tensor(s,[n,n],o)}function Cs(e,t,n){return n&&n.some(r=>r!==0)?x.tensor(e,t,n):x.tensor(e,t)}function kh(e,t,n){const[r,s]=typeof n=="number"?[n,n]:n,o=Math.min(r,s,e.length),i=v(r*s);for(let a=0;a<o;a++)i[Ke(a,a,r)]=e[a];if(t&&t.some(a=>a!==0)){const a=v(r*s);for(let c=0;c<o;c++)a[Ke(c,c,r)]=t[c];return x.tensor(i,[r,s],a)}return x.tensor(i,[r,s])}function Xg(e,t,n){for(let r=0;r<t;r++){let s=Math.abs(e[r*t+r]),o=r;for(let a=r+1;a<t;a++){const c=Math.abs(e[r*t+a]);c>s&&(s=c,o=a)}if(o!==r)for(let a=0;a<n;a++){const c=e[a*t+r];e[a*t+r]=e[a*t+o],e[a*t+o]=c}const i=e[r*t+r];if(!(Math.abs(i)<1e-14)){for(let a=0;a<n;a++)e[a*t+r]/=i;for(let a=0;a<t;a++){if(a===r)continue;const c=e[r*t+a];for(let l=0;l<n;l++)e[l*t+a]-=c*e[l*t+r]}}}}function DC(e,t,n,r){const s=br(t);if(!s)throw new C(`${e}: builtin '${t}' not found`);const o=n.map(nr),i=s.resolve(o,r);if(!i)throw new C(`${e}: builtin '${t}' returned no result`);const a=i.apply(n,r);return Array.isArray(a)?a[0]:a}function ru(e,t,n,r,s){const o=$n("linsolve","linsolve");return o?.linsolve?o.linsolve(ct(e),t,n,ct(r),s):null}function vh(e,t,n,r,s,o,i){const a=$n("linsolveComplex","linsolveComplex");if(!a?.linsolveComplex)throw new C("linsolveComplex: no bridge available (should not happen)");return a.linsolveComplex(ct(e),ct(t),n,r,ct(s),ct(o),i)}function Mh(e,t){if(T(e))return e;if(O(e))return x.tensor(v([e]),[1,1]);if(Ce(e))return x.tensor(v([e?1:0]),[1,1]);if(Le(e))return x.tensor(v([e.re]),[1,1],v([e.im]));throw new C(`${t}: argument must be numeric`)}function $h(e){if(e===1/0)return"Inf";if(e===-1/0)return"-Inf";if(isNaN(e))return"NaN";if(e===0)return"0";const t=5,n=Math.floor(Math.log10(Math.abs(e)));let r;if(n<-4||n>=t){r=e.toExponential(t-1);const s=r.indexOf("e");let o=r.slice(0,s);const i=r.slice(s);o.includes(".")&&(o=o.replace(/\.?0+$/,""));const a=i.replace(/([eE][+-])(\d)$/,"$10$2");r=o+a}else{if(Number.isInteger(e))return String(e);r=e.toPrecision(t),r.includes(".")&&(r=r.replace(/\.?0+$/,""))}return r}function Hg(e){if(e===1/0)return"Inf";if(e===-1/0)return"-Inf";if(isNaN(e))return"NaN";if(e===0)return"0";if(Number.isInteger(e))return String(e);const t=5,n=Math.floor(Math.log10(Math.abs(e)));let r;if(n<-4||n>=t){r=e.toExponential(t-1);const s=r.indexOf("e");let o=r.slice(0,s);const i=r.slice(s);o.includes(".")&&(o=o.replace(/\.?0+$/,""));const a=i.replace(/([eE][+-])(\d)$/,"$10$2");r=o+a}else r=e.toPrecision(t),r.includes(".")&&(r=r.replace(/\.?0+$/,""));return r}function no(e,t){const n=e.match(/^%([-+ #]*)0?(\d+)?/);if(!n)return t;const s=(n[1]||"").includes("-"),i=e.slice(1).match(/^([-+ #]*)(0?)(\d+)?/),a=i?i[2]==="0":!1,c=i&&i[3]?parseInt(i[3]):0;if(c<=t.length)return t;const l=!s&&a,u=c-t.length;return s?t+" ".repeat(u):l?t[0]==="-"||t[0]==="+"?t[0]+"0".repeat(u)+t.slice(1):"0".repeat(u)+t:" ".repeat(u)+t}function ti(e,t){const n=[];for(const o of t)if(T(o))for(let i=0;i<o.data.length;i++)n.push(o.data[i]);else n.push(o);let r="",s=0;do{const o=s;let i=!1,a=0;for(;a<e.length&&!i;)if(e[a]==="%"&&a+1<e.length){a++;let c="%";for(;a<e.length&&!"dfigeEsoxXuc%".includes(e[a]);)if(e[a]==="*"){if(s>=n.length){i=!0;break}c+=String(Math.round(ee(n[s++]))),a++}else c+=e[a],a++;if(i)break;if(a<e.length){const l=e[a];if(a++,l==="%")r+="%";else if(s>=n.length)i=!0;else if(l==="d"||l==="i"||l==="u"){const u=ee(n[s++]),f=Number.isInteger(u);if(l==="u"?f&&u>=0:f){const m=u,p=c.slice(1),d=p.includes("+"),g=p.includes("-"),w=c.match(/^%[^0-9]*(\d+)/),_=w?parseInt(w[1]):0,y=!g&&/^[-+ ]*0/.test(c.slice(1)),b=String(Math.abs(m)),k=m<0?"-":d?"+":"";if(_>0){const M=y?"0":" ",$=Math.max(0,_-k.length-b.length),S=M.repeat($);r+=g?k+b+" ".repeat($):y?k+S+b:S+k+b}else r+=k+b}else{let m=u.toExponential(6);m=m.replace(/e([+-])(\d)$/,"e$10$2"),r+=no(c,m)}}else if(l==="f"){const u=ee(n[s++]);if(!isFinite(u)||isNaN(u))r+=no(c,$h(u));else{const h=c.slice(1).includes("+"),m=c.match(/\.(\d+)/),p=m?parseInt(m[1]):6,d=u.toFixed(p),g=u<0?"":h?"+":"";r+=no(c,g+d)}}else if(l==="e"||l==="E"){const u=ee(n[s++]);if(!isFinite(u)||isNaN(u))r+=no(c,$h(u));else{const f=c.match(/\.(\d+)/),h=f?parseInt(f[1]):6;let m=u.toExponential(h);m=m.replace(/e([+-])(\d)$/,"e$10$2"),l==="E"&&(m=m.toUpperCase()),r+=no(c,m)}}else if(l==="x"||l==="X"){const u=Math.round(ee(n[s++]));let f=Math.abs(u).toString(16);l==="X"&&(f=f.toUpperCase()),r+=no(c,f)}else if(l==="o"){const u=Math.round(ee(n[s++]));r+=no(c,Math.abs(u).toString(8))}else if(l==="g"||l==="G"){const u=ee(n[s++]);if(!isFinite(u)||isNaN(u))r+=no(c,$h(u));else{const f=c.match(/\.(\d+)/),h=f?parseInt(f[1]):6;let m;if(u===0)m="0";else{const p=Math.floor(Math.log10(Math.abs(u)));if(p<-4||p>=h){m=u.toExponential(h-1);const d=m.indexOf("e");let g=m.slice(0,d),w=m.slice(d);g.includes(".")&&(g=g.replace(/\.?0+$/,"")),w=w.replace(/e([+-])(\d)$/,"e$10$2"),m=g+w}else m=u.toPrecision(h),m.includes(".")&&(m=m.replace(/\.?0+$/,"")),m.includes("e")&&(m=String(parseFloat(m)))}l==="G"&&(m=m.toUpperCase()),r+=no(c,m)}}else if(l==="s"){const u=n[s++],f=O(u)||Ce(u)?String.fromCharCode(Math.round(ee(u))):de(u),m=c.slice(1).includes("-"),p=c.match(/^%[^0-9]*(\d+)/),d=p?parseInt(p[1]):0;if(d>f.length){const g=" ".repeat(d-f.length);r+=m?f+g:g+f}else r+=f}else l==="c"?r+=String.fromCharCode(Math.round(ee(n[s++]))):(r+=c+l,s++)}}else if(e[a]==="\\"&&a+1<e.length){switch(a++,e[a]){case"n":r+=`
27
- `;break;case"t":r+=" ";break;case"r":r+="\r";break;case"a":r+="\x07";break;case"b":r+="\b";break;case"f":r+="\f";break;case"v":r+="\v";break;case"0":r+="\0";break;case"\\":r+="\\";break;default:r+="\\"+e[a]}a++}else r+=e[a],a++;if(s===o)break}while(s<n.length);return r}function Ch(e){if(Le(e))return{re:e.re,im:e.im};if(O(e))return{re:e,im:0};if(Ce(e))return{re:e?1:0,im:0};if(T(e)&&e.data.length===1)return{re:e.data[0],im:e.imag?e.imag[0]:0};if(Ae(e))return Ch(zn(e));throw new C(`Cannot use ${Dn(e)} in complex arithmetic`)}function Ns(e,t){return Le(e)||Le(t)||T(e)&&e.imag!==void 0||T(t)&&t.imag!==void 0||Ae(e)&&e.pi!==void 0||Ae(t)&&t.pi!==void 0}function ni(e,t){return t===0?x.num(e):x.complex(e,t)}function mc(e){if(Le(e))return{scalar:!0,re:e.re,im:e.im};if(O(e))return{scalar:!0,re:e,im:0};if(Ce(e))return{scalar:!0,re:e?1:0,im:0};if(T(e)){if(e.data.length===1)return{scalar:!0,re:e.data[0],im:e.imag?e.imag[0]:0};const t=e.imag||v(e.data.length);return{scalar:!1,re:e.data,im:t,shape:e.shape}}if(Ae(e))return mc(zn(e));throw new C(`Cannot use ${Dn(e)} in complex arithmetic`)}function Yg(e,t,n,r){const s=mc(e),o=mc(t);if(s.scalar&&o.scalar)return x.logical(n(s.re,s.im,o.re,o.im));if(s.scalar&&!o.scalar){const l=o.re.length;if(o.re instanceof Float64Array&&(!o.im||o.im instanceof Float64Array)){const h=v(l);Bn.complexScalarComparison(r,l,s.re,s.im,o.re,o.im,!0,h);const m=x.tensor(h,o.shape);return m._isLogical=!0,m}const u=v(l);for(let h=0;h<l;h++)u[h]=n(s.re,s.im,o.re[h],o.im[h])?1:0;const f=x.tensor(u,o.shape);return f._isLogical=!0,f}if(!s.scalar&&o.scalar){const l=s.re.length;if(s.re instanceof Float64Array&&(!s.im||s.im instanceof Float64Array)){const h=v(l);Bn.complexScalarComparison(r,l,o.re,o.im,s.re,s.im,!1,h);const m=x.tensor(h,s.shape);return m._isLogical=!0,m}const u=v(l);for(let h=0;h<l;h++)u[h]=n(s.re[h],s.im[h],o.re,o.im)?1:0;const f=x.tensor(u,s.shape);return f._isLogical=!0,f}const i=s,a=o;if(i.re.length===a.re.length&&i.shape.length===a.shape.length&&i.shape.every((l,u)=>l===a.shape[u])){const l=i.re.length;if(i.re instanceof Float64Array&&a.re instanceof Float64Array&&(!i.im||i.im instanceof Float64Array)&&(!a.im||a.im instanceof Float64Array)){const h=v(l);Bn.complexComparison(r,l,i.re,i.im,a.re,a.im,h);const m=x.tensor(h,i.shape);return m._isLogical=!0,m}const u=v(l);for(let h=0;h<l;h++)u[h]=n(i.re[h],i.im[h],a.re[h],a.im[h])?1:0;const f=x.tensor(u,i.shape);return f._isLogical=!0,f}const c=As(i.shape,a.shape);if(c!==null)return zC(i,a,c,n);throw new C(`Matrix dimensions must agree for comparison: [${i.shape.join(",")}] vs [${a.shape.join(",")}]`)}function Jg(e){return e>0?1/0:e<0?-1/0:0}function Nh(e,t,n,r){if(n===0&&r===0)return e===0&&t===0?{re:NaN,im:0}:{re:Jg(e),im:Jg(t)};if(Math.abs(n)>=Math.abs(r)){const i=r/n,a=n+r*i;return{re:(e+t*i)/a,im:(t-e*i)/a}}const s=n/r,o=r+n*s;return{re:(e*s+t)/o,im:(t*s-e)/o}}function Ao(e,t,n,r){if(r!==void 0){const l=Kg(e),u=Kg(t);if(l&&T(t)&&t.data.length>1){const f=Zg(l.re,l.im,t.data,t.imag,t.shape,r,!0);if(f)return f}else if(u&&T(e)&&e.data.length>1){const f=Zg(u.re,u.im,e.data,e.imag,e.shape,r,!1);if(f)return f}}const s=mc(e),o=mc(t);if(s.scalar&&o.scalar){const l=n(s.re,s.im,o.re,o.im);return ni(l.re,l.im)}if(s.scalar&&!o.scalar){const l=o.re.length,u=v(l),f=v(l);for(let m=0;m<l;m++){const p=n(s.re,s.im,o.re[m],o.im[m]);u[m]=p.re,f[m]=p.im}const h=f.every(m=>m===0);return x.tensor(u,o.shape,h?void 0:f)}if(!s.scalar&&o.scalar){const l=s.re.length,u=v(l),f=v(l);for(let m=0;m<l;m++){const p=n(s.re[m],s.im[m],o.re,o.im);u[m]=p.re,f[m]=p.im}const h=f.every(m=>m===0);return x.tensor(u,s.shape,h?void 0:f)}const i=s,a=o;if(i.re.length===a.re.length&&i.shape.length===a.shape.length&&i.shape.every((l,u)=>l===a.shape[u])){const l=i.re.length,u=v(l),f=v(l);for(let m=0;m<l;m++){const p=n(i.re[m],i.im[m],a.re[m],a.im[m]);u[m]=p.re,f[m]=p.im}const h=f.every(m=>m===0);return x.tensor(u,i.shape,h?void 0:f)}const c=As(i.shape,a.shape);if(c!==null)return VC(i,a,c,n);throw new C(`Matrix dimensions must agree: [${i.shape.join(",")}] vs [${a.shape.join(",")}]`)}const hc=0,pc=1,Eo=2,ra=3;function su(e,t){if(typeof e!="object"||e===null||e.kind!=="tensor"||typeof t!="object"||t===null||t.kind!=="tensor")return null;const n=e,r=t;return n.data.length!==r.data.length||n.shape.length!==r.shape.length||n.shape.some((s,o)=>s!==r.shape[o])?null:[n,r]}function ou(e,t,n){if(!(e.data instanceof Float64Array)||!(t.data instanceof Float64Array))return null;const r=e.data.length,s=v(r);return Bn.realBinaryElemwise(n,r,e.data,t.data,s),x.tensorRaw(s,e.shape)}function Ss(e,t,n,r){if(t.imag||!(t.data instanceof Float64Array))return null;const s=t.data.length,o=v(s);return Bn.realScalarBinaryElemwise(n,s,e,t.data,r,o),x.tensorRaw(o,t.shape)}function Kg(e){return O(e)?{re:e,im:0}:Le(e)?{re:e.re,im:e.im}:Ce(e)?{re:e?1:0,im:0}:T(e)&&e.data.length===1?{re:e.data[0],im:e.imag?e.imag[0]:0}:null}function Zg(e,t,n,r,s,o,i){if(!(n instanceof Float64Array)||r&&!(r instanceof Float64Array))return null;const a=n.length,c=v(a),l=v(a);Bn.complexScalarBinaryElemwise(o,a,e,t,n,r??null,i,c,l);let u=!0;for(let f=0;f<a;f++)if(l[f]!==0){u=!1;break}return u?x.tensorRaw(c,s):x.tensor(c,s,l)}function iu(e,t,n,r){if(e.data instanceof Float64Array&&t.data instanceof Float64Array){const u=e.data.length,f=v(u),h=v(u);Bn.complexBinaryElemwise(n,u,e.data,e.imag??null,t.data,t.imag??null,f,h);let m=!0;for(let p=0;p<u;p++)if(h[p]!==0){m=!1;break}return m?x.tensorRaw(f,e.shape):x.tensor(f,e.shape,h)}const s=e.data.length,o=e.imag,i=t.imag,a=v(s),c=v(s);if(o&&i)for(let u=0;u<s;u++){const f=r(e.data[u],o[u],t.data[u],i[u]);a[u]=f.re,c[u]=f.im}else if(o)for(let u=0;u<s;u++){const f=r(e.data[u],o[u],t.data[u],0);a[u]=f.re,c[u]=f.im}else for(let u=0;u<s;u++){const f=r(e.data[u],0,t.data[u],i[u]);a[u]=f.re,c[u]=f.im}const l=c.every(u=>u===0);return x.tensor(a,e.shape,l?void 0:c)}function Sh(e){if(ve(e))return e;if(be(e))return e.value;if(Ce(e))return e?"true":"false";if(O(e))return Hg(e);if(T(e)&&e.data.length===1&&!e.imag){const t=e.data[0];return e._isLogical===!0?t?"true":"false":Hg(t)}return null}function sa(e,t){if(at(e)||at(t)){const r=at(e)?e:null,s=at(t)?t:null;if(r&&s){if(r.shape[0]!==s.shape[0]||r.shape[1]!==s.shape[1])throw new C("Array dimensions must match for string plus");return hn(r.data.map((a,c)=>a+s.data[c]),r.shape)}const o=r??s,i=Sh(r?t:e);if(i===null)throw new C("Cannot concatenate this value with a string");return hn(o.data.map(a=>r?a+i:i+a),o.shape)}if(ve(e)||ve(t)){const r=Sh(e),s=Sh(t);if(r!==null&&s!==null)return x.string(r+s)}if(T(e)&&!e.imag&&O(t)){const r=e.data,s=t,o=r.length,i=v(o);for(let a=0;a<o;a++)i[a]=r[a]+s;return x.tensorRaw(i,e.shape)}if(O(e)&&T(t)&&!t.imag){const r=t.data,s=e,o=r.length,i=v(o);for(let a=0;a<o;a++)i[a]=s+r[a];return x.tensorRaw(i,t.shape)}const n=su(e,t);if(n){const[r,s]=n;if(!r.imag&&!s.imag){const o=ou(r,s,hc);if(o)return o;const i=r.data.length,a=v(i);for(let c=0;c<i;c++)a[c]=r.data[c]+s.data[c];return x.tensorRaw(a,r.shape)}return iu(r,s,hc,(o,i,a,c)=>({re:o+a,im:i+c}))}if(Ae(e)||Ae(t))return CC(e,t);if(Ns(e,t))return Ao(e,t,(r,s,o,i)=>({re:r+o,im:s+i}),hc);if(O(e)&&T(t)){const r=Ss(e,t,hc,!0);if(r)return r}else if(T(e)&&O(t)){const r=Ss(t,e,hc,!1);if(r)return r}return so(e,t,(r,s)=>r+s,ow)}function dc(e,t){if(T(e)&&!e.imag&&O(t)){const r=e.data,s=t,o=r.length,i=v(o);for(let a=0;a<o;a++)i[a]=r[a]-s;return x.tensorRaw(i,e.shape)}if(O(e)&&T(t)&&!t.imag){const r=t.data,s=e,o=r.length,i=v(o);for(let a=0;a<o;a++)i[a]=s-r[a];return x.tensorRaw(i,t.shape)}const n=su(e,t);if(n){const[r,s]=n;if(!r.imag&&!s.imag){const o=ou(r,s,pc);if(o)return o;const i=r.data.length,a=v(i);for(let c=0;c<i;c++)a[c]=r.data[c]-s.data[c];return x.tensorRaw(a,r.shape)}return iu(r,s,pc,(o,i,a,c)=>({re:o-a,im:i-c}))}if(Ae(e)||Ae(t))return NC(e,t);if(Ns(e,t))return Ao(e,t,(r,s,o,i)=>({re:r-o,im:s-i}),pc);if(O(e)&&T(t)){const r=Ss(e,t,pc,!0);if(r)return r}else if(T(e)&&O(t)){const r=Ss(t,e,pc,!1);if(r)return r}return so(e,t,(r,s)=>r-s,iw)}function Io(e,t){if(Ae(e)||Ae(t))return SC(e,t);if(T(e)&&e.data.length===1&&(e=ls(e)),T(t)&&t.data.length===1&&(t=ls(t)),T(e)&&T(t))return cw(e,t);if(Ns(e,t))return Ao(e,t,(n,r,s,o)=>({re:n*s-r*o,im:n*o+r*s}),Eo);if(O(e)&&T(t)){const n=Ss(e,t,Eo,!0);if(n)return n}else if(T(e)&&O(t)){const n=Ss(t,e,Eo,!1);if(n)return n}return so(e,t,(n,r)=>n*r,Bh)}function Ah(e,t){if(T(e)&&!e.imag&&O(t)){const r=e.data,s=t,o=r.length,i=v(o);for(let a=0;a<o;a++)i[a]=r[a]*s;return x.tensorRaw(i,e.shape)}if(O(e)&&T(t)&&!t.imag){const r=t.data,s=e,o=r.length,i=v(o);for(let a=0;a<o;a++)i[a]=s*r[a];return x.tensorRaw(i,t.shape)}const n=su(e,t);if(n){const[r,s]=n;if(!r.imag&&!s.imag){const o=ou(r,s,Eo);if(o)return o;const i=r.data.length,a=v(i);for(let c=0;c<i;c++)a[c]=r.data[c]*s.data[c];return x.tensorRaw(a,r.shape)}return iu(r,s,Eo,(o,i,a,c)=>({re:o*a-i*c,im:o*c+i*a}))}if(Ae(e)||Ae(t))return AC(e,t);if(Ns(e,t))return Ao(e,t,(r,s,o,i)=>({re:r*o-s*i,im:r*i+s*o}),Eo);if(O(e)&&T(t)){const r=Ss(e,t,Eo,!0);if(r)return r}else if(T(e)&&O(t)){const r=Ss(t,e,Eo,!1);if(r)return r}return so(e,t,(r,s)=>r*s,Bh)}function Eh(e,t){if(Ae(e)||Ae(t))return Eh(zn(e),zn(t));if(T(e)&&e.data.length===1&&(e=ls(e)),T(t)&&t.data.length===1&&(t=ls(t)),T(t)){const n=wc(Mh(e,"mrdivide")),r=wc(t),s=gc(r,n);return wc(s)}return Ns(e,t)?Ao(e,t,Nh,ra):so(e,t,(n,r)=>n/r,qh)}function ri(e,t){if(T(e)&&!e.imag&&O(t)){const r=e.data,s=t,o=r.length,i=v(o);for(let a=0;a<o;a++)i[a]=r[a]/s;return x.tensorRaw(i,e.shape)}if(O(e)&&T(t)&&!t.imag){const r=t.data,s=e,o=r.length,i=v(o);for(let a=0;a<o;a++)i[a]=s/r[a];return x.tensorRaw(i,t.shape)}const n=su(e,t);if(n){const[r,s]=n;if(!r.imag&&!s.imag){const o=ou(r,s,ra);if(o)return o;const i=r.data.length,a=v(i);for(let c=0;c<i;c++)a[c]=r.data[c]/s.data[c];return x.tensorRaw(a,r.shape)}return iu(r,s,ra,Nh)}if(Ae(e)||Ae(t))return EC(e,t);if(Ns(e,t))return Ao(e,t,Nh,ra);if(O(e)&&T(t)){const r=Ss(e,t,ra,!0);if(r)return r}else if(T(e)&&O(t)){const r=Ss(t,e,ra,!1);if(r)return r}return so(e,t,(r,s)=>r/s,qh)}function gc(e,t){if(Ae(e))return gc(zn(e),t);if(Ae(t))return gc(e,zn(t));if(T(e)&&e.data.length===1&&(e=ls(e)),T(t)&&t.data.length===1&&(t=ls(t)),O(e)||Ce(e))return ri(t,e);const n=e,r=O(t)||Ce(t)?x.tensor(v([ee(t)]),[1,1]):t;if(!T(n)||!T(r))throw new C("mldivide (\\): operands must be numeric matrices");const[s,o]=tt(n),[i,a]=tt(r);if(i!==s)throw new C(`mldivide (\\): A is ${s}×${o} but B has ${i} rows`);if(s===0||o===0||a===0)return x.tensor(v(o*a),[o,a]);if(n.imag||r.imag){const l=n.data,u=n.imag??v(n.data.length),f=r.data,h=r.imag??v(r.data.length),m=vh(l,u,s,o,f,h,a);return ls(x.tensor(m.re,[o,a],m.im))}const c=ru(n.data,s,o,r.data,a);if(!c)throw new C("mldivide (\\): LAPACK bridge unavailable");return ls(x.tensor(c,[o,a]))}function TC(e,t){return ri(t,e)}function PC(e){return Number.isInteger(e)?(e&1)===0?1:-1:Number.isInteger(e*2)?0:Math.cos(Math.PI*e)}function BC(e){if(Number.isInteger(e))return 0;const t=e*2;return Number.isInteger(t)?((t-1)/2&1)===0?1:-1:Math.sin(Math.PI*e)}function Ih(e,t){const n=Math.pow(-e,t);return{re:n*PC(t),im:n*BC(t)}}function Fh(e,t){if(Ns(e,t)){const n=Ch(e),r=Ch(t);if(n.im===0&&r.im===0&&n.re<0){const u=Ih(n.re,r.re);return ni(u.re,u.im)}const s=Math.hypot(n.re,n.im);if(s===0)return r.re===0&&r.im===0?ni(1,0):r.re>0?ni(0,0):ni(1/0,0);const o=Math.atan2(n.im,n.re),i=Math.log(s),a=r.re*i-r.im*o,c=r.re*o+r.im*i,l=Math.exp(a);return ni(l*Math.cos(c),l*Math.sin(c))}if(T(e)&&(O(t)||Ce(t))){const n=ee(t),[r,s]=tt(e);if(r===s&&Number.isInteger(n)){if(n===0){const c=v(r*s);for(let l=0;l<r;l++)c[Ke(l,l,r)]=1;return x.tensor(c,[r,s])}let o=e,i=n;if(i<0){const c=DC("mpower","inv",[e],1);if(!T(c))throw new C("mpower: inv returned non-tensor");o=c,i=-i}let a=o;for(let c=1;c<i;c++)a=cw(a,o);return a}}if(O(e)&&e<0&&O(t)&&!Number.isInteger(t)){const n=Ih(e,t);return ni(n.re,n.im)}return so(e,t,(n,r)=>Math.pow(n,r))}function Gg(e,t){if(T(e)&&!e.imag&&O(t)){const s=t;if(s===2){const o=v(e.data.length);for(let i=0;i<o.length;i++)o[i]=e.data[i]*e.data[i];return x.tensor(o,e.shape)}if(Number.isInteger(s)||s>=0){let o=!1;if(!Number.isInteger(s)){for(let i=0;i<e.data.length;i++)if(e.data[i]<0){o=!0;break}}if(!o){const i=v(e.data.length);for(let a=0;a<i.length;a++)i[a]=Math.pow(e.data[a],s);return x.tensor(i,e.shape)}}}const n=(s,o,i,a)=>{if(o===0&&a===0&&s<0)return Ih(s,i);const c=Math.hypot(s,o);if(c===0)return i===0&&a===0?{re:1,im:0}:i>0?{re:0,im:0}:{re:1/0,im:0};const l=Math.atan2(o,s),u=Math.log(c),f=i*u-a*l,h=i*l+a*u,m=Math.exp(f);return{re:m*Math.cos(h),im:m*Math.sin(h)}};if(Ns(e,t))return Ao(e,t,n);let r=!1;if(O(e)&&e<0)r=!0;else if(T(e)){for(let s=0;s<e.data.length;s++)if(e.data[s]<0){r=!0;break}}if(r){let s=!1;if(O(t))s=Number.isInteger(t);else if(Ce(t))s=!0;else if(T(t)){s=!0;for(let o=0;o<t.data.length;o++)if(!Number.isInteger(t.data[o])){s=!1;break}}return s?so(e,t,(o,i)=>Math.pow(o,i)):Ao(e,t,n)}return so(e,t,(s,o)=>Math.pow(s,o))}function Qg(e){if(T(e)){if(e.imag!==void 0){const n=v(e.data.length),r=v(e.imag.length);for(let s=0;s<e.data.length;s++)n[s]=-e.data[s],r[s]=-e.imag[s];return x.tensor(n,e.shape,r)}const t=v(e.data.length);for(let n=0;n<e.data.length;n++)t[n]=-e.data[n];return x.tensor(t,e.shape)}return Ae(e)?kC(e):Le(e)?x.complex(-e.re,-e.im):WC(e,t=>-t)}function Og(e){const t=e.shape,n=t.length===0||t.length===1?1:t[0],r=t.length===0?1:t.length===1?t[0]:t[1],s=new Array(e.data.length);for(let o=0;o<n;o++)for(let i=0;i<r;i++)s[o*r+i]=e.data[Ke(o,i,n)];return x.cell(s,[r,n])}function ew(e,t){const[n,r]=tt(e),s=v(e.data.length);for(let i=0;i<n;i++)for(let a=0;a<r;a++)s[i*r+a]=e.data[Ke(i,a,n)];if(e.imag!==void 0){const i=v(e.imag.length),a=t?-1:1;for(let c=0;c<n;c++)for(let l=0;l<r;l++)i[c*r+l]=a*e.imag[Ke(c,l,n)];return x.tensor(s,[r,n],i)}const o=x.tensor(s,[r,n]);return e._isLogical&&(o._isLogical=!0),o}function tw(e){const[t,n]=e.shape,r=new Array(e.elements.length);for(let s=0;s<t;s++)for(let o=0;o<n;o++)r[s*n+o]=e.elements[o*t+s];return new Fl(e.className,r,[n,t])}function nw(e){const[t,n]=e.shape,r=new Array(t*n);for(let s=0;s<t;s++)for(let o=0;o<n;o++)r[s*n+o]=e.data[o*t+s];return hn(r,[n,t])}function rw(e){if(Ae(e))return Lg(e);if(Le(e)||O(e)||Ce(e))return e;if(ze(e))return Og(e);if(be(e)||ve(e))return e;if(at(e))return nw(e);if(Ze(e))return e;if(St(e))return tw(e);if(!T(e))throw new C("Cannot transpose non-numeric value");return ew(e,!1)}function wc(e){if(Ae(e))return vC(e);if(Le(e))return x.complex(e.re,-e.im);if(O(e)||Ce(e))return e;if(ze(e))return Og(e);if(be(e)||ve(e))return e;if(at(e))return nw(e);if(Ze(e))return e;if(St(e))return tw(e);if(!T(e))throw new C("Cannot transpose non-numeric value");return ew(e,!0)}function qC(e,t){return ve(e)&&ve(t)?[e,t]:ve(e)&&be(t)?[e,t.value]:be(e)&&ve(t)?[e.value,t]:null}function sw(e){return ve(e)?{data:[e],shape:[1,1]}:be(e)?(e.shape?e.shape[0]:1)>1?null:{data:[e.value],shape:[1,1]}:at(e)?{data:e.data,shape:e.shape}:null}function oa(e,t,n){if(at(e)||at(t)){const s=sw(e),o=sw(t);if(s===null||o===null)return null;const i=s.data.length===1&&s.shape[0]*s.shape[1]===1,a=o.data.length===1&&o.shape[0]*o.shape[1]===1;if(!i&&!a&&(s.shape[0]!==o.shape[0]||s.shape[1]!==o.shape[1]))throw new C("Array dimensions must match for comparison");const c=i?o.shape:s.shape,l=i?o.data.length:s.data.length,u=v(l);for(let h=0;h<l;h++){const m=i?s.data[0]:s.data[h],p=a?o.data[0]:o.data[h];u[h]=n(m,p)?1:0}const f=x.tensor(u,[c[0],c[1]]);return f._isLogical=!0,f}const r=qC(e,t);return r===null?null:x.logical(n(r[0],r[1]))}function zn(e){return Ae(e)?vt(e):e}function jh(e,t){if(Ae(e)||Ae(t))return jh(zn(e),zn(t));const n=oa(e,t,(r,s)=>r===s);return n!==null?n:Ns(e,t)?Yg(e,t,(r,s,o,i)=>r===o&&s===i,Xt.EQ):aa(e,t,(r,s)=>r===s,Xt.EQ)}function Rh(e,t){if(Ae(e)||Ae(t))return Rh(zn(e),zn(t));const n=oa(e,t,(r,s)=>r!==s);return n!==null?n:Ns(e,t)?Yg(e,t,(r,s,o,i)=>r!==o||s!==i,Xt.NE):aa(e,t,(r,s)=>r!==s,Xt.NE)}function Lh(e,t){if(Ae(e)||Ae(t))return Lh(zn(e),zn(t));const n=oa(e,t,(r,s)=>r<s);return n!==null?n:aa(e,t,(r,s)=>r<s,Xt.LT)}function Dh(e,t){if(Ae(e)||Ae(t))return Dh(zn(e),zn(t));const n=oa(e,t,(r,s)=>r<=s);return n!==null?n:aa(e,t,(r,s)=>r<=s,Xt.LE)}function Th(e,t){if(Ae(e)||Ae(t))return Th(zn(e),zn(t));const n=oa(e,t,(r,s)=>r>s);return n!==null?n:aa(e,t,(r,s)=>r>s,Xt.GT)}function Ph(e,t){if(Ae(e)||Ae(t))return Ph(zn(e),zn(t));const n=oa(e,t,(r,s)=>r>=s);return n!==null?n:aa(e,t,(r,s)=>r>=s,Xt.GE)}function ia(e){if(O(e))return{scalar:!0,value:e,isComplex:!1};if(Ce(e))return{scalar:!0,value:e?1:0,isComplex:!1};if(Le(e))return{scalar:!0,re:e.re,im:e.im,isComplex:!0};if(T(e))return e.data.length===1?e.imag!==void 0?{scalar:!0,re:e.data[0],im:e.imag[0],isComplex:!0}:{scalar:!0,value:e.data[0],isComplex:!1}:{scalar:!1,tensor:e};if(Ae(e))return ia(zn(e));if(be(e)){if(e.value.length===1)return{scalar:!0,value:e.value.charCodeAt(0),isComplex:!1};const t=v(Array.from(e.value).map(n=>n.charCodeAt(0)));return{scalar:!1,tensor:x.tensorRaw(t,[1,e.value.length])}}throw new C(`Cannot use ${Dn(e)} in numeric operation`)}function As(e,t){const n=Math.max(e.length,t.length,2),r=au(e.length===0?[1,1]:e.length===1?[1,e[0]]:e,n),s=au(t.length===0?[1,1]:t.length===1?[1,t[0]]:t,n),o=[];for(let i=0;i<n;i++){const a=r[i],c=s[i];if(a===c)o.push(a);else if(a===1)o.push(c);else if(c===1)o.push(a);else return null}return o}function au(e,t){if(e.length>=t)return e;const n=[...e];for(;n.length<t;)n.push(1);return n}function ro(e,t,n,r){const s=n.length,o=n.reduce((d,g)=>d*g,1),i=au(e,s),a=au(t,s),c=new Array(s),l=new Array(s);let u=1,f=1;for(let d=0;d<s;d++)c[d]=i[d]===1?0:u,l[d]=a[d]===1?0:f,u*=i[d],f*=a[d];const h=new Array(s).fill(0);let m=0,p=0;for(let d=0;d<o;d++){r(m,p,d);for(let g=0;g<s&&(h[g]++,m+=c[g],p+=l[g],!(h[g]<n[g]));g++)m-=h[g]*c[g],p-=h[g]*l[g],h[g]=0}}const ow=0,iw=1,Bh=2,qh=3;function aw(e,t,n,r,s){if(n.length===2){const i=n[0],a=n[1],c=v(i*a),l=e.shape,u=t.shape,f=l.length>=1?l[0]:1,h=l.length>=2?l[1]:1,m=u.length>=1?u[0]:1,p=u.length>=2?u[1]:1,d=f===1?0:1,g=h===1?0:f,w=m===1?0:1,_=p===1?0:m,y=e.data,b=t.data;let k=0;if(s===ow)for(let M=0;M<a;M++){const $=M*g,S=M*_;for(let E=0;E<i;E++)c[k++]=y[$+E*d]+b[S+E*w]}else if(s===iw)for(let M=0;M<a;M++){const $=M*g,S=M*_;for(let E=0;E<i;E++)c[k++]=y[$+E*d]-b[S+E*w]}else if(s===Bh)for(let M=0;M<a;M++){const $=M*g,S=M*_;for(let E=0;E<i;E++)c[k++]=y[$+E*d]*b[S+E*w]}else if(s===qh)for(let M=0;M<a;M++){const $=M*g,S=M*_;for(let E=0;E<i;E++)c[k++]=y[$+E*d]/b[S+E*w]}else for(let M=0;M<a;M++){const $=M*g,S=M*_;for(let E=0;E<i;E++)c[k++]=r(y[$+E*d],b[S+E*w])}return x.tensor(c,n)}const o=v(n.reduce((i,a)=>i*a,1));return ro(e.shape,t.shape,n,(i,a,c)=>{o[c]=r(e.data[i],t.data[a])}),x.tensor(o,n)}function VC(e,t,n,r){const s=n.reduce((c,l)=>c*l,1),o=v(s),i=v(s);ro(e.shape,t.shape,n,(c,l,u)=>{const f=r(e.re[c],e.im[c],t.re[l],t.im[l]);o[u]=f.re,i[u]=f.im});const a=i.every(c=>c===0);return x.tensor(o,n,a?void 0:i)}function zC(e,t,n,r){const s=v(n.reduce((i,a)=>i*a,1));ro(e.shape,t.shape,n,(i,a,c)=>{s[c]=r(e.re[i],e.im[i],t.re[a],t.im[a])?1:0});const o=x.tensor(s,n);return o._isLogical=!0,o}function UC(e,t,n,r){const s=v(n.reduce((i,a)=>i*a,1));ro(e.shape,t.shape,n,(i,a,c)=>{s[c]=r(e.data[i],t.data[a])?1:0});const o=x.tensor(s,n);return o._isLogical=!0,o}function so(e,t,n,r){if(T(e)&&e.data.length>1){if(T(t)&&t.data.length>1){if(e.data.length===t.data.length&&e.shape.length===t.shape.length&&e.shape.every((u,f)=>u===t.shape[f])){const u=v(e.data.length);for(let f=0;f<u.length;f++)u[f]=n(e.data[f],t.data[f]);return x.tensor(u,e.shape)}const l=As(e.shape,t.shape);if(l!==null)return aw(e,t,l,n,r);throw new C(`Matrix dimensions must agree: [${e.shape.join(",")}] vs [${t.shape.join(",")}]`)}if(O(t)){const l=v(e.data.length),u=t;for(let f=0;f<l.length;f++)l[f]=n(e.data[f],u);return x.tensor(l,e.shape)}}if(T(t)&&t.data.length>1&&O(e)){const l=v(t.data.length),u=e;for(let f=0;f<l.length;f++)l[f]=n(u,t.data[f]);return x.tensor(l,t.shape)}const s=ia(e),o=ia(t);if(s.scalar&&o.scalar){const l=s.isComplex?s.re:s.value,u=o.isComplex?o.re:o.value;return x.num(n(l,u))}if(s.scalar&&!o.scalar){const l=o.tensor,u=v(l.data.length),f=s.isComplex?s.re:s.value;for(let h=0;h<u.length;h++)u[h]=n(f,l.data[h]);return x.tensor(u,l.shape)}if(!s.scalar&&o.scalar){const l=s.tensor,u=v(l.data.length),f=o.isComplex?o.re:o.value;for(let h=0;h<u.length;h++)u[h]=n(l.data[h],f);return x.tensor(u,l.shape)}const i=s.tensor,a=o.tensor;if(i.data.length===a.data.length&&i.shape.length===a.shape.length&&i.shape.every((l,u)=>l===a.shape[u])){const l=v(i.data.length);for(let u=0;u<l.length;u++)l[u]=n(i.data[u],a.data[u]);return x.tensor(l,i.shape)}const c=As(i.shape,a.shape);if(c!==null)return aw(i,a,c,n,r);throw new C(`Matrix dimensions must agree: [${i.shape.join(",")}] vs [${a.shape.join(",")}]`)}function WC(e,t){if(T(e)&&e.data.length>1){const s=v(e.data.length);for(let o=0;o<s.length;o++)s[o]=t(e.data[o]);return x.tensor(s,e.shape)}const n=ia(e);if(n.scalar){const s=n.isComplex?n.re:n.value;return x.num(t(s))}const r=v(n.tensor.data.length);for(let s=0;s<r.length;s++)r[s]=t(n.tensor.data[s]);return x.tensor(r,n.tensor.shape)}function aa(e,t,n,r){const s=ia(e),o=ia(t);if(s.scalar&&o.scalar){const l=s.isComplex?s.re:s.value,u=o.isComplex?o.re:o.value;return x.logical(n(l,u))}if(s.scalar&&!o.scalar){const l=s.isComplex?s.re:s.value,u=o.tensor.data.length;if(o.tensor.data instanceof Float64Array){const m=v(u);Bn.realScalarComparison(r,u,l,o.tensor.data,!0,m);const p=x.tensor(m,o.tensor.shape);return p._isLogical=!0,p}const f=v(u);for(let m=0;m<u;m++)f[m]=n(l,o.tensor.data[m])?1:0;const h=x.tensor(f,o.tensor.shape);return h._isLogical=!0,h}if(!s.scalar&&o.scalar){const l=o.isComplex?o.re:o.value,u=s.tensor.data.length;if(s.tensor.data instanceof Float64Array){const m=v(u);Bn.realScalarComparison(r,u,l,s.tensor.data,!1,m);const p=x.tensor(m,s.tensor.shape);return p._isLogical=!0,p}const f=v(u);for(let m=0;m<u;m++)f[m]=n(s.tensor.data[m],l)?1:0;const h=x.tensor(f,s.tensor.shape);return h._isLogical=!0,h}const i=s.tensor,a=o.tensor;if(i.data.length===a.data.length&&i.shape.length===a.shape.length&&i.shape.every((l,u)=>l===a.shape[u])){const l=i.data.length;if(i.data instanceof Float64Array&&a.data instanceof Float64Array){const h=v(l);Bn.realComparison(r,l,i.data,a.data,h);const m=x.tensor(h,i.shape);return m._isLogical=!0,m}const u=v(l);for(let h=0;h<l;h++)u[h]=n(i.data[h],a.data[h])?1:0;const f=x.tensor(u,i.shape);return f._isLogical=!0,f}const c=As(i.shape,a.shape);if(c!==null)return UC(i,a,c,n);throw new C(`Matrix dimensions must agree for comparison: [${i.shape.join(",")}] vs [${a.shape.join(",")}]`)}function ls(e){return T(e)&&e.data.length===1?e.imag&&e.imag[0]!==0?x.complex(e.data[0],e.imag[0]):x.num(e.data[0]):e}function cw(e,t){const[n,r]=tt(e),[s,o]=tt(t);if(r!==s)throw new C(`Inner matrix dimensions must agree: ${r} vs ${s}`);if(n===0||r===0||o===0)return x.tensor(v(n*o),[n,o]);if(!(e.imag!==void 0||t.imag!==void 0)){const m=$n("matmul","matmul"),p=e.data instanceof Float64Array?e.data:v(e.data),d=t.data instanceof Float64Array?t.data:v(t.data),g=m.matmul(p,n,r,d,o);return ls(x.tensor(g,[n,o]))}const a=e.imag||v(e.data.length),c=t.imag||v(t.data.length),l=$n("matmul","matmulComplex");if(l.matmulComplex){const m=e.data instanceof Float64Array?e.data:v(e.data),p=a instanceof Float64Array?a:v(a),d=t.data instanceof Float64Array?t.data:v(t.data),g=c instanceof Float64Array?c:v(c),w=l.matmulComplex(m,p,n,r,d,g,o);return ls(x.tensor(w.re,[n,o],w.im))}const u=v(n*o),f=v(n*o);for(let m=0;m<n;m++)for(let p=0;p<o;p++){let d=0,g=0;for(let _=0;_<r;_++){const y=Ke(m,_,n),b=Ke(_,p,s),k=e.data[y],M=a[y],$=t.data[b],S=c[b];d+=k*$-M*S,g+=k*S+M*$}const w=Ke(m,p,n);u[w]=d,f[w]=g}const h=f.every(m=>m===0);return ls(x.tensor(u,[n,o],h?void 0:f))}const XC="__COLON__";function en(e){return ve(e)&&e==="__COLON__"}function Es(e){if(O(e))return{re:e,im:0};if(Ce(e))return{re:e?1:0,im:0};if(Le(e))return{re:e.re,im:e.im};if(T(e)&&e.data.length===1)return{re:e.data[0],im:e.imag?e.imag[0]:0};if(Ae(e)&&e.m===1&&e.n===1){const t=e.pr.length>0?e.pr[0]:0,n=e.pi&&e.pi.length>0?e.pi[0]:0;return{re:t,im:n}}throw new C(`Cannot convert ${Dn(e)} to number for assignment`)}function lw(e){const t=e.shape?e.shape[0]:1,n=e.shape?e.shape[1]:e.value.length,r=v(t*n);for(let s=0;s<t;s++)for(let o=0;o<n;o++)r[o*t+s]=e.value.charCodeAt(s*n+o);return x.tensor(r,[t,n])}function HC(e){const t=e.shape.length>=2?e.shape[0]??0:1,n=e.shape.length>=2?e.shape[1]??0:e.data.length;let r="";for(let s=0;s<t;s++)for(let o=0;o<n;o++)r+=String.fromCharCode(Math.round(e.data[o*t+s]));return t>1?new ys(r,[t,n]):x.char(r)}function rr(e){e.imag||(e.imag=v(e.data.length))}function cu(e,t){if(e.imag!==void 0){const n=e.imag[t];return n===0?x.num(e.data[t]):x.complex(e.data[t],n)}return e._isLogical===!0?e.data[t]!==0:x.num(e.data[t])}function Un(e,t,n=t){if(en(e))return Array.from({length:t},(s,o)=>o);if(Ce(e))return e?[0]:[];if(T(e)){if(e._isLogical){const s=[];for(let o=0;o<e.data.length;o++)e.data[o]!==0&&s.push(o);return s}return Array.from(e.data).map(s=>{const o=Math.round(s)-1;if(o<0||n>0&&o>=n)throw new C("Index exceeds array bounds");return o})}const r=Math.round(ee(e))-1;if(r<0||n>0&&r>=n)throw new C("Index exceeds array bounds");return[r]}function YC(e,t,n,r){return{rowIndices:Un(e,n),colIndices:Un(t,r)}}function lu(e,t,n){const[r,s]=tt(e);if(t<=r&&n<=s)return e;const o=Math.max(r,t),i=Math.max(s,n),a=v(o*i),l=e.imag!==void 0?v(o*i):void 0;for(let u=0;u<s;u++)for(let f=0;f<r;f++)a[f+u*o]=e.data[f+u*r],l&&e.imag&&(l[f+u*o]=e.imag[f+u*r]);return x.tensor(a,[o,i],l)}function JC(e,t,n,r,s){if(T(r)){const o=t.length,i=n.length;if(r.data.length===1){const m=r.data[0],p=r.imag?r.imag[0]:0;(p!==0||e.imag)&&rr(e);for(const d of t)for(const g of n){const w=Ke(d,g,s);e.data[w]=m,e.imag&&(e.imag[w]=p)}return}const[a,c]=tt(r),l=a===o&&c===i,u=o===1||i===1,f=a===1||c===1,h=r.data.length===o*i;if(!l&&!(u&&f&&h))throw new C("Subscripted assignment dimension mismatch");if((r.imag||e.imag)&&rr(e),l)for(let m=0;m<o;m++)for(let p=0;p<i;p++){const d=Ke(t[m],n[p],s),g=Ke(m,p,a);e.data[d]=r.data[g],e.imag&&(e.imag[d]=r.imag?r.imag[g]:0)}else{let m=0;for(let p=0;p<i;p++)for(let d=0;d<o;d++){const g=Ke(t[d],n[p],s);e.data[g]=r.data[m],e.imag&&(e.imag[g]=r.imag?r.imag[m]:0),m++}}}else{const{re:o,im:i}=Es(r);(i!==0||e.imag)&&rr(e);for(const a of t)for(const c of n){const l=Ke(a,c,s);e.data[l]=o,e.imag&&(e.imag[l]=i)}}}function KC(e,t){if(O(e)||Ce(e)||Le(e))return new Array(t).fill(e);if(T(e)){const n=[];for(let r=0;r<t;r++)e.imag?n.push(x.complex(e.data[r],e.imag[r])):n.push(x.num(e.data[r]));return n}return new Array(t).fill(e)}function Vh(e,t,n){for(let r=e.jc[n];r<e.jc[n+1];r++)if(e.ir[r]===t)return{re:e.pr[r],im:e.pi?e.pi[r]:0};return{re:0,im:0}}function ZC(e,t,n){const r=t.length,s=n.length,o=new Map;for(let f=0;f<r;f++){const h=t[f],m=o.get(h);m?m.push(f):o.set(h,[f])}const i=e.pi!==void 0,a=[],c=[],l=[],u=new Int32Array(s+1);for(let f=0;f<s;f++){const h=n[f];u[f]=a.length;const m=[];for(let p=e.jc[h];p<e.jc[h+1];p++){const d=o.get(e.ir[p]);if(d!==void 0){const g=e.pr[p],w=i?e.pi[p]:0;for(const _ of d)m.push({newRow:_,re:g,im:w})}}m.sort((p,d)=>p.newRow-d.newRow);for(const p of m)a.push(p.newRow),c.push(p.re),i&&l.push(p.im)}return u[s]=a.length,x.sparseMatrix(r,s,new Int32Array(a),u,v(c),i?v(l):void 0)}function uw(e,t,n){if(t.length===1){const g=e.m*e.n,w=Un(t[0],g),_=w.map(M=>M%e.m),y=w.map(M=>Math.floor(M/e.m));let b=e;const k=KC(n,w.length);for(let M=0;M<w.length;M++)b=uw(b,[x.num(_[M]+1),x.num(y[M]+1)],k[M]);return b}if(t.length!==2)throw new C("Sparse matrix assignment requires 1 or 2 indices");const r=Un(t[0],e.m),s=Un(t[1],e.n),o=r.length,i=s.length,a=v(o*i),c=v(o*i);let l=!1;if(O(n))a.fill(n);else if(Ce(n))a.fill(n?1:0);else if(Le(n))a.fill(n.re),c.fill(n.im),l=n.im!==0;else if(T(n)){for(let g=0;g<n.data.length;g++)a[g]=n.data[g];if(n.imag){for(let g=0;g<n.imag.length;g++)c[g]=n.imag[g];l=!0}}else if(Ae(n))for(let g=0;g<n.n;g++)for(let w=n.jc[g];w<n.jc[g+1];w++){const _=g*o+n.ir[w];a[_]=n.pr[w],n.pi&&(c[_]=n.pi[w],l=!0)}else throw new C("Cannot assign non-numeric value into sparse matrix");const u=e.pi!==void 0||l,f=new Map;for(let g=0;g<e.n;g++){const w=[];for(let _=e.jc[g];_<e.jc[g+1];_++)w.push({row:e.ir[_],re:e.pr[_],im:e.pi?e.pi[_]:0});w.length>0&&f.set(g,w)}for(let g=0;g<i;g++){const w=s[g];let _=f.get(w);_||(_=[],f.set(w,_));for(let y=0;y<o;y++){const b=r[y],k=a[g*o+y],M=c[g*o+y];let $=!1;for(let S=0;S<_.length;S++)if(_[S].row===b){k===0&&M===0?_.splice(S,1):(_[S].re=k,_[S].im=M),$=!0;break}!$&&(k!==0||M!==0)&&_.push({row:b,re:k,im:M})}_.sort((y,b)=>y.row-b.row),_.length===0&&f.delete(w)}const h=[],m=[],p=[],d=new Int32Array(e.n+1);for(let g=0;g<e.n;g++){d[g]=h.length;const w=f.get(g);if(w)for(const _ of w)h.push(_.row),m.push(_.re),u&&p.push(_.im)}return d[e.n]=h.length,x.sparseMatrix(e.m,e.n,new Int32Array(h),d,v(m),u?v(p):void 0)}function GC(e,t){if(t.length===1){const n=t[0];if(en(n)){const r=e.m*e.n,s=[],o=[],i=[],a=e.pi!==void 0;for(let l=0;l<e.n;l++)for(let u=e.jc[l];u<e.jc[l+1];u++){const f=l*e.m+e.ir[u];s.push(f),o.push(e.pr[u]),a&&i.push(e.pi[u])}const c=new Int32Array([0,s.length]);return x.sparseMatrix(r,1,new Int32Array(s),c,v(o),a?v(i):void 0)}if(O(n)){const r=Math.round(n)-1;if(r<0||r>=e.m*e.n)throw new C("Index exceeds array bounds");const s=Math.floor(r/e.m),o=r%e.m,i=Vh(e,o,s);return e.pi!==void 0&&i.im!==0?x.complex(i.re,i.im):i.re}if(T(n)||Ce(n)){const r=e.m*e.n,s=Un(n,r),o=s.length,i=e.pi!==void 0,a=[],c=[],l=[],u=new Int32Array(o+1);for(let f=0;f<o;f++){u[f]=a.length;const h=s[f],m=Math.floor(h/e.m),p=h%e.m,d=Vh(e,p,m);(d.re!==0||d.im!==0)&&(a.push(0),c.push(d.re),i&&l.push(d.im))}return u[o]=a.length,x.sparseMatrix(1,o,new Int32Array(a),u,v(c),i?v(l):void 0)}}if(t.length===2){if(en(t[0])){const s=Un(t[1],e.n);if(s.length===1){const f=s[0],h=e.jc[f],p=e.jc[f+1]-h,d=new Int32Array(p),g=v(p);let w;for(let y=0;y<p;y++)d[y]=e.ir[h+y],g[y]=e.pr[h+y];if(e.pi!==void 0){w=v(p);for(let y=0;y<p;y++)w[y]=e.pi[h+y]}const _=new Int32Array([0,p]);return x.sparseMatrix(e.m,1,d,_,g,w)}const o=s.length,i=e.pi!==void 0,a=[],c=[],l=[],u=new Int32Array(o+1);for(let f=0;f<o;f++){u[f]=a.length;const h=s[f];for(let m=e.jc[h];m<e.jc[h+1];m++)a.push(e.ir[m]),c.push(e.pr[m]),i&&l.push(e.pi[m])}return u[o]=a.length,x.sparseMatrix(e.m,o,new Int32Array(a),u,v(c),i?v(l):void 0)}const n=Un(t[0],e.m),r=Un(t[1],e.n);if(n.length===1&&r.length===1){const s=Vh(e,n[0],r[0]);return e.pi!==void 0&&s.im!==0?x.complex(s.re,s.im):s.re}return ZC(e,n,r)}throw new C("Sparse matrix supports 1 or 2 index dimensions")}function QC(e,t){if(t.some(c=>T(c)&&c.data.length===0)){if(t.length===2){const l=u=>en(u)?1:T(u)?u.data.length:1;return x.tensor(v(0),[l(t[0]),l(t[1])])}const c=t[0];if(T(c)){const u=c.shape.length===2&&c.shape[0]===0&&c.shape[1]===0?[0,0]:[...c.shape];return x.tensor(v(0),u)}}if(t.length===1){const c=t[0];if(Ce(c))return c?e:x.tensor(v(0),[0,0]);if(T(c)&&c._isLogical){let l=0;for(let f=0;f<c.data.length;f++)c.data[f]&&l++;if(l===0)return x.tensor(v(0),[0,0]);const u=v(l);if(u.fill(O(e)?e:e.re),Le(e)&&e.im!==0){const f=v(l);return f.fill(e.im),x.tensor(u,[1,l],f)}return x.tensor(u,[1,l])}}if(t.length===1&&T(t[0])){const c=t[0];for(let h=0;h<c.data.length;h++)if(Math.round(c.data[h])!==1)throw new C("Index exceeds array bounds");const l=c.data.length,u=O(e)?e:e.re,f=v(l);if(f.fill(u),Le(e)&&e.im!==0){const h=v(l);return h.fill(e.im),x.tensor(f,[...c.shape],h)}return x.tensor(f,[...c.shape])}const n=[];let r=!1;for(const c of t)if(en(c))n.push(1);else if(T(c)){r=!0;for(let l=0;l<c.data.length;l++)if(Math.round(c.data[l])!==1)throw new C("Index exceeds array bounds");n.push(c.data.length)}else{if(Math.round(ee(c))!==1)throw new C("Index exceeds array bounds");n.push(1)}if(!r)return e;const s=n.reduce((c,l)=>c*l,1),o=O(e)?e:e.re,i=v(s);i.fill(o);const a=n.length>=2?n:[n[0],1];if(Le(e)&&e.im!==0){const c=v(s);return c.fill(e.im),x.tensor(i,a,c)}return x.tensor(i,a)}function OC(e,t){if(t.length===1)return eN(e,t[0]);if(e.shape.length>t.length){const n=[];for(let o=0;o<t.length-1;o++)n.push(e.shape[o]);let r=1;for(let o=t.length-1;o<e.shape.length;o++)r*=e.shape[o];n.push(r);const s=e.shape;e.shape=n;try{return t.length===2?fw(e,t[0],t[1]):mw(e,t)}finally{e.shape=s}}return t.length===2?fw(e,t[0],t[1]):mw(e,t)}function eN(e,t){if(en(t)){const n=e.imag?v(e.imag):void 0,r=x.tensor(v(e.data),[e.data.length,1],n);return e._isLogical===!0&&(r._isLogical=!0),r}if(Ce(t))return t?cu(e,0):x.tensor(v(0),[0,0]);if(O(t)){const n=Math.round(ee(t))-1;if(n<0||n>=e.data.length)throw new C("Index exceeds array bounds");return cu(e,n)}if(T(t))return aN(e,t);throw new C("Invalid index type for tensor")}function fw(e,t,n){const[r,s]=tt(e),o=e._isLogical===!0,i=m=>(o&&T(m)&&(m._isLogical=!0),m);if(O(t)&&en(n)){const m=Math.round(t)-1;if(m<0||m>=r)throw new C("Index exceeds array bounds");const p=v(s),d=e.imag?v(s):void 0;for(let g=0;g<s;g++)p[g]=e.data[m+g*r],d&&e.imag&&(d[g]=e.imag[m+g*r]);return i(x.tensor(p,[1,s],d))}if(en(t)&&O(n)){const m=Math.round(n)-1;if(m<0||m>=s)throw new C("Index exceeds array bounds");const p=m*r,d=v(r);for(let w=0;w<r;w++)d[w]=e.data[p+w];const g=e.imag?v(r):void 0;if(g&&e.imag)for(let w=0;w<r;w++)g[w]=e.imag[p+w];return i(x.tensor(d,[r,1],g))}const a=Un(t,r),c=Un(n,s),l=a.length,u=c.length;if(l===1&&u===1){const m=Ke(a[0],c[0],r);return cu(e,m)}const f=v(l*u),h=e.imag?v(l*u):void 0;for(let m=0;m<u;m++)for(let p=0;p<l;p++){const d=Ke(a[p],c[m],r),g=Ke(p,m,l);f[g]=e.data[d],h&&e.imag&&(h[g]=e.imag[d])}return i(x.tensor(f,[l,u],h))}function mw(e,t){const n=e.shape,r=t.map((d,g)=>{const w=g<n.length?n[g]:1;return Un(d,w)});if(r.every(d=>d.length===1)){const d=r.map(w=>w[0]),g=Nv(n,d);return cu(e,g)}const o=r.map(d=>d.length);for(;o.length>2&&o[o.length-1]===1;)o.pop();const i=o.reduce((d,g)=>d*g,1),a=v(i),c=e.imag?v(i):void 0,l=r.length,u=new Array(l);u[0]=1;for(let d=1;d<l;d++)u[d]=u[d-1]*(d-1<n.length?n[d-1]:1);const f=r.map((d,g)=>d.map(w=>w*u[g])),h=new Array(l).fill(0);let m=0;for(let d=0;d<l;d++)m+=f[d][0];for(let d=0;d<i;d++){a[d]=e.data[m],c&&e.imag&&(c[d]=e.imag[m]);for(let g=0;g<l;g++){const w=h[g];if(h[g]++,h[g]<r[g].length){m+=f[g][h[g]]-f[g][w];break}m-=f[g][w]-f[g][0],h[g]=0}}const p=x.tensor(a,o,c);return e._isLogical===!0&&(p._isLogical=!0),p}function tN(e,t){if(t.length===1)return nN(e,t[0]);if(t.length===2)return rN(e,t[0],t[1]);throw new C("Cell indexing supports 1 or 2 dimensions")}function nN(e,t){if(en(t))return x.cell([...e.data],[...e.shape]);if(T(t)){const r=[];if(t._isLogical){for(let o=0;o<t.data.length;o++)if(t.data[o]!==0){if(o>=e.data.length)throw new C("Cell index exceeds bounds");r.push(e.data[o])}}else for(let o=0;o<t.data.length;o++){const i=Math.round(t.data[o])-1;if(i<0||i>=e.data.length)throw new C("Cell index exceeds bounds");r.push(e.data[i])}const s=t.shape.length<=2&&(t.shape[0]===1||t.shape.length===2&&t.shape[1]===1);return t._isLogical||s?e.shape[1]===1&&e.shape[0]>1?x.cell(r,[r.length,1]):x.cell(r,[1,r.length]):x.cell(r,[...t.shape])}const n=Math.round(ee(t))-1;if(n<0||n>=e.data.length)throw new C("Cell index exceeds bounds");return x.cell([e.data[n]],[1,1])}function rN(e,t,n){const r=e.shape[0],s=e.shape.length>=2?e.shape[1]:1,{rowIndices:o,colIndices:i}=YC(t,n,r,s);if(!en(t)&&!en(n)&&!T(t)&&!T(n)){const c=i[0]*r+o[0];if(c<0||c>=e.data.length)throw new C("Cell index exceeds bounds");return x.cell([e.data[c]],[1,1])}const a=[];for(let c=0;c<i.length;c++)for(let l=0;l<o.length;l++){const u=i[c]*r+o[l];if(u<0||u>=e.data.length)throw new C("Cell index exceeds bounds");a.push(e.data[u])}return x.cell(a,[o.length,i.length])}function sN(e,t){const n=e.shape??(e.value.length===0?[0,0]:[1,e.value.length]),r=n[0],s=n[1]||0;if(t.length===1){const o=t[0];if(en(o))return e;if(T(o)&&o._isLogical){let a="";for(let c=0;c<o.data.length;c++)if(o.data[c]!==0){if(c>=e.value.length)throw new C("Index exceeds char array length");a+=e.value[c]}return x.char(a)}if(T(o)){let a="";for(let c=0;c<o.data.length;c++){const l=Math.round(o.data[c])-1;if(l<0||l>=e.value.length)throw new C("Index exceeds char array length");a+=e.value[l]}return x.char(a)}const i=Math.round(ee(o))-1;if(i<0||i>=e.value.length)throw new C("Index exceeds char array length");return x.char(e.value[i])}if(t.length===2){const o=t[0],i=t[1],a=f=>{if(T(f)&&f._isLogical){const h=[];for(let m=0;m<f.data.length;m++)f.data[m]!==0&&h.push(m);return h}return T(f)?Array.from(f.data,h=>Math.round(h)-1):[Math.round(ee(f))-1]},c=en(o)?Array.from({length:r},(f,h)=>h):a(o),l=en(i)?Array.from({length:s},(f,h)=>h):a(i);let u="";for(const f of c)for(const h of l){if(f<0||f>=r||h<0||h>=s)throw new C("Index exceeds char array dimensions");u+=e.value[f*s+h]}return c.length<=1?x.char(u):new ys(u,[c.length,l.length])}throw new C("Char indexing supports 1 or 2 dimensions")}function si(e,t){if(en(e))return Array.from({length:t},(n,r)=>r);if(T(e)){if(e._isLogical){const n=[];for(let r=0;r<e.data.length;r++)e.data[r]!==0&&n.push(r);return n}return Array.from(e.data,n=>Math.round(n)-1)}return Ce(e)?e?[0]:[]:[Math.round(ee(e))-1]}function oN(e,t){const[n,r]=e.shape,s=e.data.length;if(t.length===2){const l=si(t[0],n),u=si(t[1],r),f=[];for(const h of u){if(h<0||h>=r)throw new C("Index exceeds array bounds");for(const m of l){if(m<0||m>=n)throw new C("Index exceeds array bounds");f.push(e.data[h*n+m])}}return hn(f,[l.length,u.length])}if(t.length!==1)throw new C("String array indexing supports 1 or 2 subscripts");const o=t[0];if(en(o))return hn(e.data.slice(),[s,1]);const i=si(o,s),a=[];for(const l of i){if(l<0||l>=s)throw new C("Index exceeds array bounds");a.push(e.data[l])}let c;if(n===1||r===1)c=n===1?[1,a.length]:[a.length,1];else if(T(o)&&!o._isLogical){const l=o.shape,u=l.length>=2?l[0]:1;c=[u,a.length/(u||1)]}else T(o)&&o._isLogical?c=[a.length,1]:c=[1,a.length];return hn(a,c)}function iN(e,t){if(t.length===1){const c=t[0];if(en(c))return e;if(T(c)&&c.data.length===0)return x.tensor(v(0),[0,0]);if(T(c)){for(let h=0;h<c.data.length;h++)if(Math.round(c.data[h])!==1)throw new C("Index exceeds array bounds");const u=v(c.data.length);u.fill(e?1:0);const f=x.tensor(u,[...c.shape]);return f._isLogical=!0,f}if(Ce(c))return c?e:x.tensor(v(0),[0,0]);if(Math.round(ee(c))!==1)throw new C("Index exceeds array bounds");return e}const n=[];let r=!1;for(const c of t)if(en(c))n.push(1);else if(Ce(c)){if(!c)return x.tensor(v(0),[0,0]);n.push(1)}else if(T(c)){r=!0;for(let l=0;l<c.data.length;l++)if(Math.round(c.data[l])!==1)throw new C("Index exceeds array bounds");n.push(c.data.length)}else{if(Math.round(ee(c))!==1)throw new C("Index exceeds array bounds");n.push(1)}if(!r)return e;const s=n.reduce((c,l)=>c*l,1),o=v(s);o.fill(e?1:0);const i=n.length>=2?n:[n[0],1],a=x.tensor(o,i);return a._isLogical=!0,a}function aN(e,t){const n=e._isLogical===!0;if(t._isLogical){const h=[],m=[],p=e.imag!==void 0;for(let y=0;y<t.data.length;y++)if(t.data[y]!==0){if(y>=e.data.length)throw new C("Index exceeds array bounds");h.push(e.data[y]),p&&m.push(e.imag[y])}if(h.length===1)return p&&m[0]!==0?x.complex(h[0],m[0]):n?h[0]!==0:x.num(h[0]);const d=p&&m.some(y=>y!==0)?v(m):void 0,w=e.shape.length===2&&e.shape[0]===1?[1,h.length]:[h.length,1],_=x.tensor(v(h),w,d);return n&&(_._isLogical=!0),_}const r=[],s=e.imag!==void 0,o=[];for(let h=0;h<t.data.length;h++){const m=Math.round(t.data[h])-1;if(m<0||m>=e.data.length)throw new C("Index exceeds array bounds");r.push(e.data[m]),s&&o.push(e.imag[m])}const i=t.data.length===0&&t.shape.length===2&&t.shape[0]===0&&t.shape[1]===0,a=e.shape.length<=2&&(e.shape[0]===1||e.shape[1]===1||e.shape.length===1),c=t.shape.length<=2&&(t.shape[0]===1||t.shape[1]===1||t.shape.length===1),l=i?[0,0]:a&&c?e.shape[0]===1?[1,r.length]:[r.length,1]:t.shape,u=s&&o.some(h=>h!==0)?v(o):void 0,f=x.tensor(v(r),l,u);return n&&(f._isLogical=!0),f}function hw(e,t){if(O(e)||Le(e))return QC(e,t);if(T(e))return OC(e,t);if(ze(e))return tN(e,t);if(be(e))return sN(e,t);if(ve(e)&&t.length===1){if(Math.round(ee(t[0]))!==1)throw new C("Index exceeds string dimensions");return e}if(at(e))return oN(e,t);if(Ce(e))return iN(e,t);if(ut(e)||Ze(e)){if(t.length>=1&&t.every(r=>O(r)?Math.round(r)===1:Ce(r)?r===!0:T(r)?r.data.length===1&&Math.round(r.data[0])===1:!1))return e;throw new C("Index exceeds struct dimensions")}if(Ae(e))return GC(e,t);if(Vt(e)){if(t.length===1){const n=t[0];if(O(n)){const r=Math.round(n)-1;if(r<0||r>=e.elements.length)throw new C("Index exceeds struct array bounds");return e.elements[r]}if(T(n)){const r=[];for(let s=0;s<n.data.length;s++){const o=Math.round(n.data[s])-1;if(o<0||o>=e.elements.length)throw new C("Index exceeds struct array bounds");r.push(e.elements[o])}return x.structArray(e.fieldNames,r)}if(Ce(n)){const r=n?0:-1;if(r<0||r>=e.elements.length)throw new C("Index exceeds struct array bounds");return e.elements[r]}throw new C("Invalid index type for struct array")}throw new C("Struct array only supports single-index access")}throw new C(`Cannot index into ${Dn(e)}`)}function cN(e,t,n,r){if(T(n)&&n.data.length===0&&t.length===1)return lN(e,t[0]);if(T(n)&&n.data.length===0&&t.length===2){const s=e.shape[0]??1,o=e.shape.length>=2?e.shape[1]:1,i=en(t[0])?s:Un(t[0],s).length,a=en(t[1])?o:Un(t[1],o).length;return i===0||a===0?e:uN(e,t)}if(Yo(e)){const s=e.imag?v(e.imag):void 0,o=x.tensor(v(e.data),[...e.shape],s);o._isLogical=e._isLogical,e=o}if(t.length===1)return fN(e,t[0],n);if(t.length===2)return hN(e,t,n);if(t.length>=3)return gN(e,t,n);throw new C("Invalid number of indices for tensor assignment")}function lN(e,t){const n=new Set;if(O(t))n.add(Math.round(t)-1);else if(Ce(t))t&&n.add(0);else if(T(t)&&t._isLogical)for(let u=0;u<t.data.length;u++)t.data[u]!==0&&n.add(u);else if(T(t))for(let u=0;u<t.data.length;u++)n.add(Math.round(t.data[u])-1);else if(en(t)){const u=x.tensor(v(0),[0,0]);return u._isLogical=e._isLogical,u}if(n.size===0)return e;const r=[],s=[],o=e.imag!==void 0;for(let u=0;u<e.data.length;u++)n.has(u)||(r.push(e.data[u]),o&&s.push(e.imag[u]));const a=e.shape.length>=2&&e.shape[1]===1&&e.shape[0]!==1?[r.length,1]:[1,r.length],c=o&&s.some(u=>u!==0)?v(s):void 0,l=x.tensor(v(r),a,c);return l._isLogical=e._isLogical,l}function pw(e,t){const n=new Set;if(O(e))n.add(Math.round(e)-1);else if(Ce(e))e&&n.add(0);else if(T(e)&&e._isLogical)for(let r=0;r<e.data.length;r++)e.data[r]!==0&&n.add(r);else if(T(e))for(let r=0;r<e.data.length;r++)n.add(Math.round(e.data[r])-1);else if(en(e))for(let r=0;r<t;r++)n.add(r);return n}function uN(e,t){const n=e.shape[0]??1,r=e.shape.length>=2?e.shape[1]:1,s=e.imag!==void 0;if(en(t[1])){const o=pw(t[0],n),i=Array.from({length:n},(f,h)=>h).filter(f=>!o.has(f)),a=i.length,c=v(a*r),l=s?v(a*r):void 0;for(let f=0;f<r;f++)for(let h=0;h<i.length;h++){const m=i[h]+f*n,p=h+f*a;c[p]=e.data[m],l&&e.imag&&(l[p]=e.imag[m])}const u=x.tensor(c,[a,r],l);return u._isLogical=e._isLogical,u}if(en(t[0])){const o=pw(t[1],r),i=Array.from({length:r},(f,h)=>h).filter(f=>!o.has(f)),a=i.length,c=v(n*a),l=s?v(n*a):void 0;for(let f=0;f<i.length;f++){const h=i[f];for(let m=0;m<n;m++){const p=m+h*n,d=m+f*n;c[d]=e.data[p],l&&e.imag&&(l[d]=e.imag[p])}}const u=x.tensor(c,[n,a],l);return u._isLogical=e._isLogical,u}throw new C("Cannot delete from both row and column dimensions")}function fN(e,t,n){if(en(t)){if(T(n))if(n.data.length===1)n=n.imag&&n.imag[0]!==0?x.complex(n.data[0],n.imag[0]):x.num(n.data[0]);else{if(n.data.length!==e.data.length)throw new C("Subscripted assignment dimension mismatch");return e.data.set(n.data),(n.imag||e.imag)&&(rr(e),n.imag?e.imag.set(n.imag):e.imag.fill(0)),e}const{re:i,im:a}=Es(n);return e.data.fill(i),(a!==0||e.imag)&&(rr(e),e.imag.fill(a)),e}if(T(t))return mN(e,t,n);if(Ce(t)){if(!t)return e;const{re:i,im:a}=Es(n);if(e.data.length<1)throw new C("Index exceeds array bounds");return e.data[0]=i,(a!==0||e.imag)&&(rr(e),e.imag[0]=a),e}const{re:r,im:s}=Es(n),o=Math.round(ee(t))-1;if(o<0)throw new C("Index exceeds array bounds");if(o>=e.data.length){const i=v(o+1);i.set(e.data),i[o]=r;let a;(s!==0||e.imag)&&(a=v(o+1),e.imag&&a.set(e.imag),a[o]=s);const c=e.shape.length>=2&&e.shape[1]===1&&e.shape[0]>1;return x.tensor(i,c?[o+1,1]:[1,o+1],a)}return e.data[o]=r,(s!==0||e.imag)&&(rr(e),e.imag[o]=s),e}function mN(e,t,n){if(t._isLogical){T(n)&&n.data.length===1&&(n=n.imag&&n.imag[0]!==0?x.complex(n.data[0],n.imag[0]):x.num(n.data[0]));const{re:i,im:a}=T(n)?{re:null,im:null}:Es(n);let c=-1;for(let u=0;u<t.data.length;u++)t.data[u]!==0&&(c=u);if(c>=e.data.length){const u=c+1,f=v(u);f.set(e.data);let h;e.imag&&(h=v(u),h.set(e.imag));const p=e.shape.length>=2&&e.shape[1]===1&&e.shape[0]>1?[u,1]:[1,u];e=x.tensor(f,p,h)}let l=0;for(let u=0;u<t.data.length;u++)t.data[u]!==0&&(T(n)?(e.data[u]=n.data[l],(n.imag||e.imag)&&(rr(e),e.imag[u]=n.imag?n.imag[l]:0)):(e.data[u]=i,(a!==0||e.imag)&&(rr(e),e.imag[u]=a)),l++);if(T(n)&&l!==n.data.length)throw new C("Subscripted assignment dimension mismatch");return e}let r=-1;for(let i=0;i<t.data.length;i++){const a=Math.round(t.data[i])-1;if(a<0)throw new C("Index exceeds array bounds");a>r&&(r=a)}if(r>=e.data.length){const i=r+1,a=v(i);a.set(e.data);let c;e.imag&&(c=v(i),c.set(e.imag));const u=e.shape.length>=2&&e.shape[1]===1&&e.shape[0]>1?[i,1]:[1,i];e=x.tensor(a,u,c)}if(T(n)){if(t.data.length!==n.data.length)throw new C("Subscripted assignment dimension mismatch");(n.imag||e.imag)&&rr(e);for(let i=0;i<t.data.length;i++){const a=Math.round(t.data[i])-1;e.data[a]=n.data[i],e.imag&&(e.imag[a]=n.imag?n.imag[i]:0)}return e}const{re:s,im:o}=Es(n);(o!==0||e.imag)&&rr(e);for(let i=0;i<t.data.length;i++){const a=Math.round(t.data[i])-1;e.data[a]=s,e.imag&&(e.imag[a]=o)}return e}function hN(e,t,n){const[r,s]=tt(e),o=en(t[0]),i=en(t[1]),a=T(t[0]),c=T(t[1]);if(o&&i){if(T(n)){if(n.data.length!==e.data.length)throw new C("Subscripted assignment dimension mismatch");return e.data.set(n.data),(n.imag||e.imag)&&(rr(e),n.imag?e.imag.set(n.imag):e.imag.fill(0)),e}const{re:d,im:g}=Es(n);return e.data.fill(d),(g!==0||e.imag)&&(rr(e),e.imag.fill(g)),e}if(o&&!i&&!c)return pN(e,t[1],n,r,s);if(!o&&!a&&i)return dN(e,t[0],n,r,s);if(a||c){const d=e.data.length===0;let g=s,w=r;if(d&&T(n)){const[$,S]=tt(n);o&&!i&&(w=$),i&&!o&&(g=S)}const _=o?Array.from({length:w},($,S)=>S):Un(t[0],r,0),y=i?Array.from({length:g},($,S)=>S):Un(t[1],s,0),b=_.length>0?Math.max(..._)+1:w,k=y.length>0?Math.max(...y)+1:g;e=lu(e,b,k);const[M]=tt(e);return JC(e,_,y,n,M),e}if(Ce(t[0])&&!t[0]||Ce(t[1])&&!t[1])return e;const{re:l,im:u}=Es(n),f=Ce(t[0])?0:Math.round(ee(t[0]))-1,h=Ce(t[1])?0:Math.round(ee(t[1]))-1;if(f<0||h<0)throw new C("Index exceeds array bounds");e=lu(e,f+1,h+1);const[m]=tt(e),p=Ke(f,h,m);return e.data[p]=l,(u!==0||e.imag)&&(rr(e),e.imag[p]=u),e}function uu(e,t,n){if(T(n)){if(n.data.length!==t.length)throw new C("Subscripted assignment dimension mismatch");(n.imag||e.imag)&&rr(e);for(let r=0;r<t.length;r++)e.data[t[r]]=n.data[r],e.imag&&(e.imag[t[r]]=n.imag?n.imag[r]:0)}else{const{re:r,im:s}=Es(n);(s!==0||e.imag)&&rr(e);for(const o of t)e.data[o]=r,e.imag&&(e.imag[o]=s)}}function pN(e,t,n,r,s){if(Ce(t)){if(!t)return e;const u=Array.from({length:r},(f,h)=>Ke(h,0,r));return uu(e,u,n),e}const o=Math.round(ee(t))-1;if(o<0)throw new C("Index exceeds array bounds");let i=r,a=s;if(i===0&&T(n)&&n.data.length>0){i=n.data.length;const u=o+1;e=x.tensor(v(i*u),[i,u]),a=u}else if(i===0&&(O(n)||Ce(n))){i=1;const u=o+1;e=x.tensor(v(i*u),[i,u]),a=u}o>=a&&(e=lu(e,i,o+1));const[c]=tt(e),l=Array.from({length:c},(u,f)=>Ke(f,o,c));return uu(e,l,n),e}function dN(e,t,n,r,s){if(Ce(t)){if(!t)return e;const f=Array.from({length:s},(h,m)=>Ke(0,m,r));return uu(e,f,n),e}const o=Math.round(ee(t))-1;if(o<0)throw new C("Index exceeds array bounds");let i=r,a=s;if(a===0&&T(n)&&n.data.length>0){a=n.data.length;const f=o+1;e=x.tensor(v(f*a),[f,a]),i=f}else if(a===0&&(O(n)||Ce(n))){a=1;const f=o+1;e=x.tensor(v(f*a),[f,a]),i=f}o>=i&&(e=lu(e,o+1,a));const[c,l]=tt(e),u=Array.from({length:l},(f,h)=>Ke(o,h,c));return uu(e,u,n),e}function gN(e,t,n){let r=[...e.shape];const s=T(n)?n:null,o=s?s.shape:null;let i=0;const a=t.map((g,w)=>{const _=w<r.length?r[w]:1;if(en(g)){if((_===0||w>=r.length)&&o){const b=i<o.length?o[i]:1;return i++,Array.from({length:b},(k,M)=>M)}return i++,Array.from({length:_},(b,k)=>k)}return Un(g,_,0)}),c=[...r];for(;c.length<t.length;)c.push(1);let l=!1;for(let g=0;g<a.length;g++)for(const w of a[g])w>=c[g]&&(c[g]=w+1,l=!0);if(l||e.data.length===0){const g=c.reduce((y,b)=>y*b,1),w=v(g),_=e.imag?v(g):void 0;if(e.data.length>0){const y=[...r];for(;y.length<c.length;)y.push(1);const b=e.data.length,k=y.length,M=new Array(k);M[0]=1;for(let E=1;E<k;E++)M[E]=M[E-1]*c[E-1];const $=new Array(k).fill(0);let S=0;for(let E=0;E<b;E++){w[S]=e.data[E],_&&e.imag&&(_[S]=e.imag[E]);for(let D=0;D<k&&($[D]++,S+=M[D],!($[D]<y[D]));D++)S-=$[D]*M[D],$[D]=0}}for(;c.length>2&&c[c.length-1]===1;)c.pop();e=x.tensor(w,c,_),r=c}const f=a.map(g=>g.length).reduce((g,w)=>g*w,1),h=a.length,m=new Array(h);m[0]=1;for(let g=1;g<h;g++)m[g]=m[g-1]*(g-1<r.length?r[g-1]:1);const p=a.map((g,w)=>g.map(_=>_*m[w])),d=g=>{const w=new Array(h).fill(0);let _=0;for(let y=0;y<h;y++)_+=p[y][0];for(let y=0;y<f;y++){g(_,y);for(let b=0;b<h;b++){const k=w[b];if(w[b]++,w[b]<a[b].length){_+=p[b][w[b]]-p[b][k];break}_-=p[b][k]-p[b][0],w[b]=0}}};if(T(n)){if(n.data.length!==f)throw new C("Subscripted assignment dimension mismatch");const g=n.imag!==void 0;(g||e.imag)&&rr(e),d((w,_)=>{e.data[w]=n.data[_],e.imag&&(e.imag[w]=g?n.imag[_]:0)})}else{const{re:g,im:w}=Es(n);(w!==0||e.imag)&&rr(e),d(_=>{e.data[_]=g,e.imag&&(e.imag[_]=w)})}return e}function wN(e,t,n,r=!1,s){Yo(e)&&(e=x.cell(e.data.slice(),[...e.shape]));const o=i=>{const a=e,c=a.data.length;if(c===i)return;const l=a.shape[0]>1&&a.shape[1]===1;a.shape=l?[c,1]:[1,c]};if(t.length===1)return _N(e,t[0],n,o,r,s);if(t.length===2)return yN(e,t,n,r,s);throw new C("Cannot index-assign into cell")}function zh(e,t){const n=x.tensor(v(0),[0,0]);t&&n.incref(),e.data.push(n)}function oi(e,t,n,r){r?e.bindElement(r,t,n):e.data[t]=n}function _N(e,t,n,r,s=!1,o){if(en(t)){const l=e.data.length;if(l===1&&!ze(n))return oi(e,0,n,o),e;if(!ze(n)||n.data.length!==l&&n.data.length!==1)throw new C("Subscripted assignment dimension mismatch");const u=n.data.length===1;for(let f=0;f<l;f++)oi(e,f,u?n.data[0]:n.data[f],o);return e}if(T(t)){let l;if(t._isLogical){l=[];for(let m=0;m<t.data.length;m++)t.data[m]!==0&&l.push(m)}else l=Array.from(t.data).map(m=>Math.round(m)-1);if(l.length===1&&!ze(n)){const m=l[0];if(m<0)throw new C("Cell index exceeds bounds");const p=e.data.length;for(;e.data.length<=m;)zh(e,o);return oi(e,m,n,o),r(p),e}if(!ze(n)||n.data.length!==l.length&&n.data.length!==1)throw new C("Subscripted assignment dimension mismatch");const u=n.data.length===1,f=e.data.length;let h=-1;for(let m=0;m<l.length;m++){const p=l[m];if(p<0)throw new C("Cell index exceeds bounds");p>h&&(h=p)}for(;e.data.length<=h;)zh(e,o);for(let m=0;m<l.length;m++){const p=l[m];oi(e,p,u?n.data[0]:n.data[m],o)}return r(f),e}const i=Math.round(ee(t))-1;if(i<0)throw new C("Cell index exceeds bounds");const a=e.data.length;if(i>=e.data.length)for(;e.data.length<=i;)zh(e,o);const c=s&&ze(n)&&n.data.length===1?n.data[0]:n;return oi(e,i,c,o),r(a),e}function yN(e,t,n,r=!1,s){let o=e.shape[0],i=e.shape.length>=2?e.shape[1]:1;const a=Un(t[0],o,0),c=Un(t[1],i,0),l=Math.max(...a)+1,u=Math.max(...c)+1,f=Math.max(o,l),h=Math.max(i,u);if(f>o||h>i){const g=new Array(f*h);for(let w=0;w<g.length;w++){const _=x.tensor(v(0),[0,0]);s&&_.incref(),g[w]=_}for(let w=0;w<i;w++)for(let _=0;_<o;_++){const y=g[w*f+_];g[w*f+_]=e.data[w*o+_],s&&mn(s,y)}e.data=g,e.shape=[f,h],o=f,i=h}const m=a.length,p=c.length,d=m*p;if(r&&ze(n)){if(n.data.length!==d&&n.data.length!==1)throw new C("Subscripted assignment dimension mismatch");const g=n.data.length===1;let w=0;for(let _=0;_<p;_++)for(let y=0;y<m;y++){const b=c[_]*o+a[y];oi(e,b,g?n.data[0]:n.data[w++],s)}}else{const g=c[0]*o+a[0];oi(e,g,n,s)}return e}function _c(e,t,n,r=!1,s){if(Ae(e))return uw(e,t,n);if(Ae(n)&&T(e)){const o=n,i=v(o.m*o.n),a=o.pi?v(o.m*o.n):void 0;for(let c=0;c<o.n;c++)for(let l=o.jc[c];l<o.jc[c+1];l++){const u=c*o.m+o.ir[l];i[u]=o.pr[l],a&&o.pi&&(a[u]=o.pi[l])}n=x.tensor(i,[o.m,o.n],a)}if(T(e))return cN(e,t,n);if(ze(e))return wN(e,t,n,r,s);throw new C(`Cannot index-assign into ${Dn(e)}`)}function ca(e,t,n){let r;if(t>0||t<0?r=Math.max(0,Math.floor((n-e)/t+1+1e-10)):r=0,r===0)return x.tensor(v(0),[1,0]);const s=v(r);for(let o=0;o<r;o++)s[o]=e+o*t;if(r>1){const o=e+(r-1)*t,i=Math.abs(t);Math.abs(o-n)<i*1e-10&&(s[r-1]=n)}return x.tensor(s,[1,r])}function yc(...e){if(e.length===0)return x.tensor(v(0),[0,0]);if(e.length===1)return e[0];if(e.some(t=>Ae(t)))return _w(e,1);if(e.some(t=>ze(t)))return xw(e,1);if(e.some(t=>ve(t)||at(t)))return dw(e,1);if(e.some(t=>be(t))){let t="";for(const n of e)if(be(n))t+=n.value;else if(O(n))t+=String.fromCharCode(Math.round(n));else throw new C(`Cannot concatenate ${Dn(n)} into char`);return x.char(t)}return e.some(t=>ut(t)||Vt(t))?gw(e):yw(e,1)}function Uh(...e){return e.length===0?x.tensor(v(0),[0,0]):e.length===1?e[0]:e.some(t=>Ae(t))?_w(e,0):e.some(t=>ze(t))?xw(e,0):e.some(t=>ve(t)||at(t))?dw(e,0):e.some(t=>be(t))?bN(e):e.some(t=>ut(t)||Vt(t))?gw(e):yw(e,0)}function xN(e){if(ve(e))return{data:[e],rows:1,cols:1};if(at(e))return e.data.length===0?null:{data:e.data.slice(),rows:e.shape[0],cols:e.shape[1]};if(be(e)){const t=e.shape?e.shape[0]:1,n=e.shape?e.shape[1]:e.value.length;if(t<=1)return{data:[e.value],rows:1,cols:1};const r=[];for(let s=0;s<t;s++)r.push(e.value.slice(s*n,(s+1)*n));return{data:r,rows:t,cols:1}}if(O(e))return{data:[ec(e)],rows:1,cols:1};if(Ce(e))return{data:[e?"true":"false"],rows:1,cols:1};if(T(e)){if(e.data.length===0)return null;const t=e.shape.length>=2?e.shape[0]:1,n=e.data.length/(t||1),r=[];for(let s=0;s<e.data.length;s++)r.push(e._isLogical?e.data[s]?"true":"false":ec(e.data[s]));return{data:r,rows:t,cols:n}}throw new C(`Cannot concatenate ${Dn(e)} into string array`)}function dw(e,t){const n=[];for(const a of e){const c=xN(a);c&&n.push(c)}if(n.length===0)return x.stringArray([],[0,0]);if(t===1){const a=n[0].rows;let c=0;for(const u of n){if(u.rows!==a)throw new C("Dimensions of arrays being concatenated are not consistent");c+=u.cols}const l=[];for(const u of n)l.push(...u.data);return hn(l,[a,c])}const r=n[0].cols;let s=0;for(const a of n){if(a.cols!==r)throw new C("Dimensions of arrays being concatenated are not consistent");s+=a.rows}const o=new Array(s*r);let i=0;for(const a of n){for(let c=0;c<r;c++)for(let l=0;l<a.rows;l++)o[c*s+i+l]=a.data[c*a.rows+l];i+=a.rows}return hn(o,[s,r])}function bN(e){let t=null,n=0,r="";for(const s of e){let o,i,a;if(be(s))o=s.shape?s.shape[0]:1,i=s.shape?s.shape[1]:s.value.length,a=s.value;else if(ve(s))o=1,i=s.length,a=s;else if(O(s))o=1,i=1,a=String.fromCharCode(Math.round(s));else if(T(s)){const c=s,l=c.shape[0]??0,u=c.shape[1]??0;o=l,i=u;let f="";for(let h=0;h<l;h++)for(let m=0;m<u;m++)f+=String.fromCharCode(Math.round(c.data[m*l+h]));a=f}else throw new C(`Cannot concatenate ${Dn(s)} into char`);if(t===null)t=i;else if(i!==t)throw new C("Dimensions of arrays being concatenated are not consistent");n+=o,r+=a}return n<=1?x.char(r):new ys(r,[n,t??0])}function gw(e){const t=[];let n=null;for(const r of e)if(ut(r)){const s=Array.from(r.fields.keys());if(n===null)n=s;else if(!ww(n,s))throw new C("Cannot concatenate structs with different field names");t.push(r)}else if(Vt(r)){if(n===null)n=[...r.fieldNames];else if(!ww(n,r.fieldNames))throw new C("Cannot concatenate struct arrays with different field names");for(const s of r.elements)t.push(s)}else{if(T(r)&&r.data.length===0&&r.shape.every(s=>s===0))continue;throw new C(`Cannot concatenate ${Dn(r)} into struct`)}return n===null&&(n=[]),x.structArray(n,t)}function ww(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function kN(e){if(Ae(e))return e;if(O(e))return e===0?x.sparseMatrix(1,1,new Int32Array(0),new Int32Array([0,0]),v(0)):x.sparseMatrix(1,1,new Int32Array([0]),new Int32Array([0,1]),v([e]));if(Ce(e)){const t=e?1:0;return t===0?x.sparseMatrix(1,1,new Int32Array(0),new Int32Array([0,0]),v(0)):x.sparseMatrix(1,1,new Int32Array([0]),new Int32Array([0,1]),v([t]))}if(Le(e))return e.re===0&&e.im===0?x.sparseMatrix(1,1,new Int32Array(0),new Int32Array([0,0]),v(0)):x.sparseMatrix(1,1,new Int32Array([0]),new Int32Array([0,1]),v([e.re]),e.im!==0?v([e.im]):void 0);if(T(e)){const t=e.shape[0]??1,n=e.shape.length>=2?e.shape[1]:1,r=e.imag!==void 0,s=[],o=[],i=[],a=new Int32Array(n+1);for(let c=0;c<n;c++){a[c]=s.length;for(let l=0;l<t;l++){const u=c*t+l,f=e.data[u],h=r?e.imag[u]:0;(f!==0||h!==0)&&(s.push(l),o.push(f),r&&i.push(h))}}return a[n]=s.length,x.sparseMatrix(t,n,new Int32Array(s),a,v(o),r?v(i):void 0)}throw new C(`Cannot concatenate ${Dn(e)} into sparse matrix`)}function _w(e,t){const n=e.map(kN).filter(r=>r.m>0||r.n>0);if(n.length===0)return x.sparseMatrix(0,0,new Int32Array(0),new Int32Array([0]),v(0));if(n.length===1)return n[0];if(t===1){const r=n[0].m;for(let m=1;m<n.length;m++)if(n[m].m!==r&&n[m].m>0)throw new C("Dimensions of arrays being concatenated are not consistent");const s=n.reduce((m,p)=>m+p.n,0),o=n.some(m=>m.pi!==void 0),i=n.reduce((m,p)=>m+p.jc[p.n],0),a=new Int32Array(i),c=v(i),l=o?v(i):void 0,u=new Int32Array(s+1);let f=0,h=0;for(const m of n){const p=m.jc[m.n];for(let d=0;d<p;d++)a[f+d]=m.ir[d],c[f+d]=m.pr[d],l&&(l[f+d]=m.pi?m.pi[d]:0);for(let d=0;d<m.n;d++)u[h+d]=m.jc[d]+f;f+=p,h+=m.n}return u[s]=f,x.sparseMatrix(r,s,a,u,c,l)}else{const r=n[0].n;for(let h=1;h<n.length;h++)if(n[h].n!==r&&n[h].n>0)throw new C("Dimensions of arrays being concatenated are not consistent");const s=n.reduce((h,m)=>h+m.m,0),o=n.some(h=>h.pi!==void 0),i=n.reduce((h,m)=>h+m.jc[m.n],0),a=new Int32Array(i),c=v(i),l=o?v(i):void 0,u=new Int32Array(r+1);let f=0;for(let h=0;h<r;h++){u[h]=f;let m=0;for(const p of n){for(let d=p.jc[h];d<p.jc[h+1];d++)a[f]=p.ir[d]+m,c[f]=p.pr[d],l&&(l[f]=p.pi?p.pi[d]:0),f++;m+=p.m}}return u[r]=f,x.sparseMatrix(s,r,a,u,c,l)}}function yw(e,t){const n=e.every(g=>Ce(g)||T(g)&&g._isLogical===!0);let r=e.map(g=>{if(O(g))return x.tensor(v([g]),[1,1]);if(Ce(g)){const w=x.tensor(v([g?1:0]),[1,1]);return w._isLogical=!0,w}if(Le(g))return x.tensor(v([g.re]),[1,1],v([g.im]));if(T(g))return g;throw new C(`Cannot concatenate ${Dn(g)} into matrix`)});if(r=r.filter(g=>g.shape.some(w=>w>0)),r.length===0)return x.tensor(v(0),[0,0]);if(r.length===1)return r[0];const s=Math.max(2,...r.map(g=>g.shape.length));let o=r.map(g=>{const w=[...g.shape];for(;w.length<s;)w.push(1);return w});const i=r.findIndex(g=>g.data.length>0);if(i>=0){const g=o[i],w=r.map((_,y)=>{if(_.data.length>0)return!0;for(let b=0;b<s;b++)if(b!==t&&o[y][b]!==g[b])return!1;return!0});if(r=r.filter((_,y)=>w[y]),o=o.filter((_,y)=>w[y]),r.length===0)return x.tensor(v(0),[0,0]);if(r.length===1)return r[0]}const a=o[0];for(let g=1;g<o.length;g++)for(let w=0;w<s;w++)if(w!==t&&o[g][w]!==a[w])throw new C("Dimensions of arrays being concatenated are not consistent");const c=[...a];c[t]=o.reduce((g,w)=>g+w[t],0);const l=Dr(c),u=r.some(g=>g.imag!==void 0),f=v(l),h=u?v(l):void 0;let m=1;for(let g=0;g<t;g++)m*=c[g];let p=1;for(let g=t+1;g<s;g++)p*=c[g];for(let g=0;g<p;g++){let w=g*m*c[t];for(let _=0;_<r.length;_++){const y=o[_][t],b=m*y,k=g*b;if(f.set(r[_].data.subarray(k,k+b),w),h){const M=r[_].imag;M&&h.set(M.subarray(k,k+b),w)}w+=b}}const d=x.tensor(f,c,h);return n&&(d._isLogical=!0),d}function vN(e){return be(e)?e.value.length===0:T(e)?e.data.length===0:!1}function xw(e,t){let n=[];for(const f of e)if(ze(f))n.push(f);else{if(vN(f))continue;n.push(x.cell([f],[1,1]))}if(n=n.filter(f=>f.data.length>0),n.length===0)return x.cell([],[0,0]);if(n.length===1)return n[0];const r=Math.max(2,...n.map(f=>f.shape.length)),s=n.map(f=>{const h=[...f.shape];for(;h.length<r;)h.push(1);return h}),o=s[0];for(let f=1;f<s.length;f++)for(let h=0;h<r;h++)if(h!==t&&s[f][h]!==o[h])throw new C("Dimensions of arrays being concatenated are not consistent");const i=[...o];i[t]=s.reduce((f,h)=>f+h[t],0);const a=Dr(i),c=new Array(a);let l=1;for(let f=0;f<t;f++)l*=i[f];let u=1;for(let f=t+1;f<r;f++)u*=i[f];for(let f=0;f<u;f++){let h=f*l*i[t];for(let m=0;m<n.length;m++){const p=s[m][t],d=l*p,g=f*d;for(let w=0;w<d;w++)c[h+w]=n[m].data[g+w];h+=d}}return x.cell(c,i)}const Is={r:[1,0,0],g:[0,1,0],b:[0,0,1],c:[0,1,1],m:[1,0,1],y:[1,1,0],k:[0,0,0],w:[1,1,1]},bw={red:[1,0,0],green:[0,1,0],blue:[0,0,1],cyan:[0,1,1],magenta:[1,0,1],yellow:[1,1,0],black:[0,0,0],white:[1,1,1]};function ln(e){if(typeof e=="string"){const t=e.toLowerCase();return Is[t]?Is[t]:bw[t]?bw[t]:void 0}if(ve(e)||be(e))return ln(ve(e)?e:e.value);if(T(e)&&e.data.length===3)return[e.data[0],e.data[1],e.data[2]]}const MN=new Set(["r","g","b","c","m","y","k","w"]),$N=new Set(["o","+","*",".","x","_","|","s","d","^","v","<",">","p","h"]);function Fs(e){const t={};let n=0;for(;n<e.length;){if(n+1<e.length){const s=e.slice(n,n+2);if(s==="--"||s==="-."){if(t.lineStyle!==void 0)return null;t.lineStyle=s,n+=2;continue}}const r=e[n];if(r==="-"||r===":"){if(t.lineStyle!==void 0)return null;t.lineStyle=r,n++;continue}if(MN.has(r)){if(t.color!==void 0)return null;t.color=r,n++;continue}if($N.has(r)){if(t.marker!==void 0)return null;t.marker=r,n++;continue}return null}return t.color===void 0&&t.lineStyle===void 0&&t.marker===void 0?null:t}const CN=new Set(["color","linestyle","linewidth","marker","markersize","markeredgecolor","markerfacecolor","markerindices"]);function Pr(e){if(!ve(e)&&!be(e))return null;const t=ve(e)?e.toLocaleLowerCase():e.value.toLowerCase();return CN.has(t)?t:null}function Ft(e){if(typeof e=="number"||typeof e=="boolean")return!0;if(e&&typeof e=="object"&&"kind"in e){const t=e;return O(t)||T(t)||Ce(t)}return!1}function Yt(e){if(typeof e=="string")return!0;if(e&&typeof e=="object"&&"kind"in e){const t=e;return ve(t)||be(t)}return!1}function jt(e){return ve(e)?e:be(e)?e.value:de(e)}function Ge(e){return O(e)?[e]:T(e)?Array.from(e.data):Ce(e)?[e?1:0]:[0]}function kw(e,t){const n=e.shape[0],r=t*n,s=new Array(n);for(let o=0;o<n;o++)s[o]=e.data[r+o];return s}function xc(e){return T(e)&&e.shape.length>=2&&e.shape[0]>1&&e.shape[1]>1?e.shape[1]:1}function fu(e){const t=new Array(e);for(let n=0;n<e;n++)t[n]=n+1;return t}function ii(e){if(T(e)&&e.shape.length>=2&&e.shape[0]>1&&e.shape[1]>1){const t=[];for(let n=0;n<e.shape[1];n++)t.push(kw(e,n));return t}return[Ge(e)]}function Fo(e){const t=[];let n=0;for(;n<e.length&&!(Yt(e[n])&&Pr(e[n]));){if(!Ft(e[n])){if(Yt(e[n])&&t.length>0&&Fs(jt(e[n]))){n++;continue}break}const r=e[n];n++;let s;n<e.length&&Ft(e[n])&&(s=e[n],n++);let o;if(n<e.length&&Yt(e[n])&&!Pr(e[n])){const i=Fs(jt(e[n]));i&&(o=i,n++)}s!==void 0?SN(r,s,o,t):NN(r,o,t)}for(;n<e.length;){const r=Pr(e[n]);if(!r||(n++,n>=e.length))break;const s=e[n];n++,Kh(t,r,s)}return t}function NN(e,t,n){const r=ii(e);for(const s of r){const o=fu(s.length);n.push(bc(o,s,t))}}function SN(e,t,n,r){const s=xc(e),o=xc(t);if(s===1&&o===1)r.push(bc(Ge(e),Ge(t),n));else if(s===1&&o>1){const i=Ge(e),a=ii(t);for(const c of a)r.push(bc(i,c,n))}else if(s>1&&o>1&&s===o){const i=ii(e),a=ii(t);for(let c=0;c<s;c++)r.push(bc(i[c],a[c],n))}else r.push(bc(Ge(e),Ge(t),n))}function bc(e,t,n){const r={x:e,y:t};return n&&(n.color&&(r.color=Is[n.color]),n.lineStyle&&(r.lineStyle=n.lineStyle),n.marker&&(r.marker=n.marker,n.lineStyle||(r.lineStyle="none"))),r}function Wh(e){const t=[];let n=0;for(;n<e.length&&!(Yt(e[n])&&Pr(e[n])||!Ft(e[n])||n+1>=e.length||!Ft(e[n+1])||n+2>=e.length||!Ft(e[n+2]));){const r=e[n],s=e[n+1],o=e[n+2];n+=3;let i;if(n<e.length&&Yt(e[n])&&!Pr(e[n])){const a=Fs(jt(e[n]));a&&(i=a,n++)}AN(r,s,o,i,t)}for(;n<e.length;){const r=Pr(e[n]);if(!r||(n++,n>=e.length))break;const s=e[n];n++,Xh(t,r,s)}return t}function AN(e,t,n,r,s){const o=xc(e),i=xc(t),a=xc(n),c=Math.max(o,i,a);if(c===1)s.push(vw(Ge(e),Ge(t),Ge(n),r));else{const l=ii(e),u=ii(t),f=ii(n);for(let h=0;h<c;h++)s.push(vw(l[Math.min(h,l.length-1)],u[Math.min(h,u.length-1)],f[Math.min(h,f.length-1)],r))}}function vw(e,t,n,r){const s={x:e,y:t,z:n};return r&&(r.color&&(s.color=Is[r.color]),r.lineStyle&&(s.lineStyle=r.lineStyle),r.marker&&(s.marker=r.marker,r.lineStyle||(s.lineStyle="none"))),s}function Xh(e,t,n){switch(t){case"color":{const r=ln(n);if(r)for(const s of e)s.color=r;break}case"linestyle":{const r=jt(n);for(const s of e)s.lineStyle=r;break}case"linewidth":{const r=typeof n=="number"?n:ee(n);for(const s of e)s.lineWidth=r;break}case"marker":{const r=jt(n);for(const s of e)s.marker=r==="none"?void 0:r;break}case"markersize":{const r=typeof n=="number"?n:ee(n);for(const s of e)s.markerSize=r;break}case"markeredgecolor":{const r=ln(n);if(r)for(const s of e)s.markerEdgeColor=r;break}case"markerfacecolor":{const r=ln(n);if(r)for(const s of e)s.markerFaceColor=r;break}case"markerindices":{const r=Ge(n);for(const s of e)s.markerIndices=r;break}}}function mu(e){return!!e&&typeof e=="object"&&"kind"in e&&(e.kind==="graphics_handle"||e.kind==="dummy_handle")}function EN(e){let t=e;if(t.length>0&&mu(t[0])&&(t=t.slice(1)),t.length===0)return{kind:"2d",traces:[{x:[0,1],y:[0,1]}]};if(Yt(t[0]))return IN(t);let n=0;for(let r=0;r<t.length&&Ft(t[r]);r++)n++;return n>=3?{kind:"3d",traces:Wh(t)}:{kind:"2d",traces:Fo(t)}}function IN(e){let t,n,r;const s=[];let o=0;for(;o+1<e.length&&Yt(e[o]);){const a=jt(e[o]).toLowerCase(),c=e[o+1];a==="xdata"?t=Ge(c):a==="ydata"?n=Ge(c):a==="zdata"?r=Ge(c):s.push(e[o],c),o+=2}if(t||(t=[0,1]),n||(n=[0,1]),r){const a={x:t,y:n,z:r,color:[0,0,0]};for(let c=0;c+1<s.length;c+=2){const l=Pr(s[c]);l&&Xh([a],l,s[c+1])}return{kind:"3d",traces:[a]}}const i={x:t,y:n,color:[0,0,0]};for(let a=0;a+1<s.length;a+=2){const c=Pr(s[a]);c&&Kh([i],c,s[a+1])}return{kind:"2d",traces:[i]}}function hu(e){if(Yt(e)){const t=jt(e).toLowerCase().replace(/^["']|["']$/g,"");return t==="flat"||t==="interp"||t==="none"?t:t==="auto"?void 0:ln(t)}return ln(e)}function pu(e){if(T(e)&&e.shape.length>=2&&e.shape[1]===3){const t=e.shape[0],n=[];for(let r=0;r<t;r++)n.push([e.data[r],e.data[t+r],e.data[2*t+r]]);return n}return Ge(e)}const Hh=new Set(["facecolor","edgecolor","facealpha","linewidth","linestyle","marker","markerfacecolor","facevertexcdata","cdata","xdata","ydata","zdata","faces","vertices"]);function kc(e,t,n){const r=At(e),s=At(t),o=n?At(n):void 0;let i=r.rows,a=r.cols;(i===1||a===1)&&(i=r.data.length,a=1);const c=[],l=[];for(let u=0;u<a;u++){const f=[];for(let h=0;h<i;h++){const m=u*i+h,p=r.data[m],d=s.data[Math.min(m,s.data.length-1)],g=o?[p,d,o.data[Math.min(m,o.data.length-1)]]:[p,d];f.push(c.length),c.push(g)}l.push(f)}return{vertices:c,faces:l,rows:i,cols:a}}function Mw(e,t,n,r){if(Yt(t)){const i=hu(t);i&&(e.faceColor=i);return}const s=At(t),o=s.data.length;o===1?(e.faceColor="flat",e.faceVertexCData=new Array(n).fill(s.data[0])):s.rows===1&&s.cols===3?e.faceColor=[s.data[0],s.data[1],s.data[2]]:o===r&&r!==n?(e.faceColor="interp",e.faceVertexCData=pu(t)):(e.faceColor="flat",e.faceVertexCData=pu(t))}function du(e,t,n){for(let r=n;r+1<t.length&&Yt(t[r]);r+=2){const s=jt(t[r]).toLowerCase(),o=t[r+1];gu(e,s,o)}}function gu(e,t,n){switch(t){case"facecolor":{const r=hu(n);r&&(e.faceColor=r);break}case"edgecolor":{const r=hu(n);r&&(e.edgeColor=r);break}case"facealpha":e.faceAlpha=ee(n);break;case"linewidth":e.lineWidth=ee(n);break;case"linestyle":e.lineStyle=jt(n);break;case"marker":e.marker=jt(n);break;case"markerfacecolor":{const r=Yt(n)?jt(n).toLowerCase():"";if(r==="flat"||r==="none")e.markerFaceColor=r;else{const s=ln(n);s&&(e.markerFaceColor=s)}break}case"facevertexcdata":case"cdata":e.faceVertexCData=pu(n);break}}function $w(e,t){const n=At(t),r=n.rows,o=n.cols>=3,i=[];for(let l=0;l<r;l++){const u=n.data[l],f=n.data[r+l];i.push(o?[u,f,n.data[2*r+l]]:[u,f])}const a=At(e),c=[];for(let l=0;l<a.rows;l++){const u=[];for(let f=0;f<a.cols;f++){const h=a.data[f*a.rows+l];Number.isFinite(h)&&u.push(h-1)}u.length>0&&c.push(u)}return{vertices:i,faces:c,is3D:o}}function FN(e){const t=a=>{for(const[c,l]of e.fields)if(c.toLowerCase()===a)return l},n={vertices:[],faces:[]},r=t("faces"),s=t("vertices"),o=t("xdata"),i=t("ydata");if(r&&s){const a=$w(r,s);n.vertices=a.vertices,n.faces=a.faces,n.is3D=a.is3D}else if(o&&i){const a=t("zdata"),c=kc(o,i,a);n.vertices=c.vertices,n.faces=c.faces,n.is3D=!!a}for(const[a,c]of e.fields){const l=a.toLowerCase();l==="faces"||l==="vertices"||l==="xdata"||l==="ydata"||l==="zdata"||gu(n,l,c)}return n}function jN(e){let t=e;if(t.length>0&&mu(t[0])&&(t=t.slice(1)),t.length===0)throw new Error("patch requires input arguments");if(t.length===1&&ut(t[0]))return wu(FN(t[0]));const n={vertices:[],faces:[]};if(Yt(t[0])){const c={};for(let l=0;l+1<t.length&&Yt(t[l]);l+=2)c[jt(t[l]).toLowerCase()]=t[l+1];if(c.faces&&c.vertices){const l=$w(c.faces,c.vertices);n.vertices=l.vertices,n.faces=l.faces,n.is3D=l.is3D}else if(c.xdata&&c.ydata){const l=kc(c.xdata,c.ydata,c.zdata);n.vertices=l.vertices,n.faces=l.faces,n.is3D=!!c.zdata}for(const[l,u]of Object.entries(c))l==="faces"||l==="vertices"||l==="xdata"||l==="ydata"||l==="zdata"||gu(n,l,u);return wu(n)}let r=0;for(let c=0;c<t.length&&Ft(t[c]);c++)r++;if(r<2)throw new Error("patch: expected X and Y coordinates");let s=!1;if(r>=4)s=!0;else if(r===3&&t[3]!==void 0&&Yt(t[3])){const c=jt(t[3]).toLowerCase();!Hh.has(c)&&hu(t[3])&&(s=!0)}let o,i;const a=s?kc(t[0],t[1],t[2]):kc(t[0],t[1],void 0);return n.vertices=a.vertices,n.faces=a.faces,n.is3D=s,s?(i=t[3],o=4):t.length>2&&!(Yt(t[2])&&Hh.has(jt(t[2]).toLowerCase()))?(i=t[2],o=3):o=2,i!==void 0&&Mw(n,i,a.faces.length,a.vertices.length),du(n,t,o),wu(n)}function wu(e){return e.faceColor===void 0&&(e.faceColor=e.faceVertexCData?"flat":[0,.447,.741]),e.edgeColor===void 0&&(e.edgeColor=[0,0,0]),e}function RN(e){let t=e;t.length>0&&mu(t[0])&&(t=t.slice(1));const n=[];let r=0;for(;r+1<t.length&&Ft(t[r])&&Ft(t[r+1]);){const s=kc(t[r],t[r+1],void 0),o={vertices:s.vertices,faces:s.faces,is3D:!1},i=t[r+2],a=i!==void 0&&Yt(i)&&Hh.has(jt(i).toLowerCase());i!==void 0&&!a?(Mw(o,i,s.faces.length,s.vertices.length),r+=3):r+=2,n.push(o)}for(const s of n)du(s,t,r);return n.map(wu)}function Cw(e){const t=At(e),n=[];for(let r=0;r<t.rows;r++){const s=[];for(let o=0;o<t.cols;o++){const i=t.data[o*t.rows+r];Number.isFinite(i)&&s.push(i-1)}s.length>0&&n.push(s)}return n}function Nw(e){return e.faceColor===void 0&&(e.faceColor=[.85,.85,.85]),e.edgeColor===void 0&&(e.edgeColor=[0,0,0]),e}function LN(e){let t=e;if(t.length>0&&mu(t[0])&&(t=t.slice(1)),t.length===0)throw new Error("trimesh requires input arguments");if(ut(t[0])){const f=t[0],h=b=>{for(const[k,M]of f.fields)if(k.toLowerCase()===b)return M},m=h("connectivitylist"),p=h("points");if(!m||!p)throw new Error("trimesh: triangulation object must have ConnectivityList and Points fields");const d=At(p),g=d.rows,w=d.cols>=3,_=[];for(let b=0;b<g;b++){const k=d.data[b],M=d.data[g+b];_.push(w?[k,M,d.data[2*g+b]]:[k,M])}const y={vertices:_,faces:Cw(m),is3D:w};return du(y,t,1),Nw(y)}if(t.length<3)throw new Error("trimesh: expected T, x and y");let n=3,r,s;t.length>3&&Ft(t[3])&&(r=t[3],n=4,t.length>4&&Ft(t[4])&&(s=t[4],n=5));const o=At(t[1]),i=At(t[2]),a=r?At(r):void 0,c=o.data.length,l=[];for(let f=0;f<c;f++){const h=o.data[f],m=i.data[Math.min(f,i.data.length-1)];a?l.push([h,m,a.data[Math.min(f,a.data.length-1)]]):l.push([h,m])}const u={vertices:l,faces:Cw(t[0]),is3D:!!a};return s&&(u.faceVertexCData=pu(s)),du(u,t,n),Nw(u)}const DN=new Set(["edgecolor","facecolor","facealpha"]);function TN(e){if(!ve(e)&&!be(e))return null;const t=ve(e)?e.toLocaleLowerCase():e.value.toLowerCase();return DN.has(t)?t:null}function Yh(e){let t=0,n,r,s,o,i,a,c=0;for(let u=t;u<e.length&&Ft(e[u]);u++)c++;if(c===1){const u=e[t++],f=At(u);o=f.rows,i=f.cols,s=f.data;const h=ai(o,i);n=h.x,r=h.y}else if(c===2){const u=e[t++],f=e[t++],h=At(u);o=h.rows,i=h.cols,s=h.data,a=Ge(f);const m=ai(o,i);n=m.x,r=m.y}else if(c===3){const u=e[t++],f=e[t++],h=e[t++],m=At(h);o=m.rows,i=m.cols,s=m.data;const p=ci(u,f,o,i);n=p.x,r=p.y}else if(c>=4){const u=e[t++],f=e[t++],h=e[t++],m=e[t++],p=At(h);o=p.rows,i=p.cols,s=p.data,a=Ge(m);const d=ci(u,f,o,i);n=d.x,r=d.y}else throw new Error("surf requires at least one input argument");const l={x:n,y:r,z:s,rows:o,cols:i};for(a&&(l.c=a);t<e.length;){const u=TN(e[t]);if(!u||(t++,t>=e.length))break;const f=e[t++];zN(l,u,f)}return l}function At(e){if(T(e)&&e.shape.length>=2)return{data:Array.from(e.data),rows:e.shape[0],cols:e.shape[1]};if(O(e))return{data:[e],rows:1,cols:1};const t=Ge(e);return{data:t,rows:t.length,cols:1}}function ai(e,t){const n=e*t,r=new Array(n),s=new Array(n);for(let o=0;o<t;o++)for(let i=0;i<e;i++){const a=o*e+i;r[a]=o+1,s[a]=i+1}return{x:r,y:s}}function ci(e,t,n,r){const s=Ge(e),o=Ge(t),i=n*r;if(s.length===i&&o.length===i)return{x:s,y:o};const a=s.length===r?s:s.slice(0,r),c=o.length===n?o:o.slice(0,n),l=new Array(i),u=new Array(i);for(let f=0;f<r;f++)for(let h=0;h<n;h++){const m=f*n+h;l[m]=a[f],u[m]=c[h]}return{x:l,y:u}}const PN=new Set(["edgecolor","facealpha"]);function BN(e){if(!ve(e)&&!be(e))return null;const t=ve(e)?e.toLocaleLowerCase():e.value.toLowerCase();return PN.has(t)?t:null}function qN(e,t,n){switch(t){case"edgecolor":{const r=Jh(n);if(r!==void 0&&r.toLowerCase()==="none"){e.edgeColor="none";break}const s=ln(n);s&&(e.edgeColor=s);break}case"facealpha":{const r=typeof n=="number"?n:ee(n);e.faceAlpha=r;break}}}function VN(e){let t=0,n,r,s,o,i,a=0;for(let l=t;l<e.length&&Ft(e[l]);l++)a++;if(a===1){const l=e[t++],u=At(l);o=u.rows,i=u.cols,s=u.data;const f=ai(o,i);n=f.x,r=f.y}else if(a>=3){const l=e[t++],u=e[t++],f=e[t++],h=At(f);o=h.rows,i=h.cols,s=h.data;const m=ci(l,u,o,i);n=m.x,r=m.y}else throw new Error("pcolor requires 1 or 3 numeric input arguments");const c={x:n,y:r,c:s,rows:o,cols:i};for(;t<e.length;){const l=BN(e[t]);if(!l||(t++,t>=e.length))break;const u=e[t++];qN(c,l,u)}return c}function zN(e,t,n){switch(t){case"edgecolor":{const r=Jh(n);if(r!==void 0){const o=r.toLowerCase();if(o==="none"||o==="flat"||o==="interp"){e.edgeColor=o;break}}const s=ln(n);s&&(e.edgeColor=s);break}case"facecolor":{const r=Jh(n);if(r!==void 0){const o=r.toLowerCase();if(o==="flat"||o==="interp"||o==="none"||o==="texturemap"){e.faceColor=o;break}}const s=ln(n);s&&(e.faceColor=s);break}case"facealpha":{const r=typeof n=="number"?n:ee(n);e.faceAlpha=r;break}}}function Jh(e){if(ve(e))return e;if(be(e))return e.value}function Sw(e){if(e.length<2)throw new Error("scatter requires at least 2 arguments");const t=Ge(e[0]),n=Ge(e[1]),r={x:t,y:n,marker:"o",lineStyle:"none"};let s=2,o=!1;if(s<e.length&&Ft(e[s])){const i=e[s];if(O(i))r.markerSize=Math.sqrt(i)*.5;else if(T(i)){const a=Ge(i);(a.length===1||new Set(a).size===1)&&(r.markerSize=Math.sqrt(a[0])*.5)}s++}if(s<e.length&&!Pr(e[s])){if(Yt(e[s])){const i=jt(e[s]);if(i==="filled")o=!0,s++;else{const a=ln(i);if(a)r.color=a,s++;else{const c=Fs(i);c?.marker&&(r.marker=c.marker,c.color&&(r.color=Is[c.color]),s++)}}}else if(Ft(e[s])){const i=ln(e[s]);i&&(r.color=i,s++)}}for(;s<e.length&&Yt(e[s])&&!Pr(e[s]);){const i=jt(e[s]);if(i==="filled")o=!0,s++;else{const a=Fs(i);if(a?.marker)r.marker=a.marker,a.color&&(r.color=Is[a.color]),s++;else break}}for(o&&(r.markerFaceColor=r.color||[0,0,1]);s<e.length;){const i=Pr(e[s]);if(!i||(s++,s>=e.length))break;const a=e[s];s++,Kh([r],i,a)}return[r]}function Kh(e,t,n){switch(t){case"color":{const r=ln(n);if(r)for(const s of e)s.color=r;break}case"linestyle":{const r=jt(n);for(const s of e)s.lineStyle=r;break}case"linewidth":{const r=typeof n=="number"?n:ee(n);for(const s of e)s.lineWidth=r;break}case"marker":{const r=jt(n);for(const s of e)s.marker=r==="none"?void 0:r;break}case"markersize":{const r=typeof n=="number"?n:ee(n);for(const s of e)s.markerSize=r;break}case"markeredgecolor":{const r=ln(n);if(r)for(const s of e)s.markerEdgeColor=r;break}case"markerfacecolor":{const r=ln(n);if(r)for(const s of e)s.markerFaceColor=r;break}case"markerindices":{const r=Ge(n);for(const s of e)s.markerIndices=r;break}}}function UN(e){if(e.length===1){const t=At(e[0]);return{x:[1,t.cols],y:[1,t.rows],z:t.data,rows:t.rows,cols:t.cols}}if(e.length>=3){const t=Ge(e[0]),n=Ge(e[1]),r=At(e[2]);return{x:[t[0],t[t.length-1]],y:[n[0],n[n.length-1]],z:r.data,rows:r.rows,cols:r.cols}}throw new Error("imagesc requires 1 or 3+ arguments")}function WN(e,t){let n=0,r=0;for(let d=n;d<e.length&&Ft(e[d]);d++)r++;let s,o,i,a,c,l=10,u;const f=d=>{const g=Ge(d);g.length<=1?l=g.length===1?g[0]:l:u=g};if(r===1){const d=At(e[n++]);a=d.rows,c=d.cols,i=d.data;const g=ai(a,c);s=g.x,o=g.y}else if(r===2){const d=At(e[n++]);a=d.rows,c=d.cols,i=d.data,f(e[n++]);const g=ai(a,c);s=g.x,o=g.y}else if(r===3){const d=e[n++],g=e[n++],w=At(e[n++]);a=w.rows,c=w.cols,i=w.data;const _=ci(d,g,a,c);s=_.x,o=_.y}else if(r>=4){const d=e[n++],g=e[n++],w=At(e[n++]);a=w.rows,c=w.cols,i=w.data,f(e[n++]);const _=ci(d,g,a,c);s=_.x,o=_.y}else throw new Error("contour requires at least 1 argument");let h,m,p;for(;n+1<e.length&&Yt(e[n]);n+=2){const d=jt(e[n]).toLowerCase(),g=e[n+1];switch(d){case"linewidth":h=ee(g);break;case"linestyle":m=jt(g);break;case"linecolor":case"color":p=Yt(g)?jt(g):Ge(g);break;case"levellist":case"levels":{const w=Ge(g);w.length>=1&&(u=w);break}}}return u&&(l=u.length),{x:s,y:o,z:i,rows:a,cols:c,nLevels:l,...u?{levels:u}:{},...h!==void 0?{lineWidth:h}:{},...m!==void 0?{lineStyle:m}:{},...p!==void 0?{lineColor:p}:{},filled:t}}function XN(e,t,n,r,s,o,i,a,c,l,u,f,h){const m=(e>=h?1:0)|(t>=h?2:0)|(n>=h?4:0)|(r>=h?8:0);if(m===0||m===15)return[];const p=(S,E,D,F)=>S+(h-D)/(F-D||1)*(E-S),d=p(s,i,e,t),g=p(o,a,e,t),w=p(i,u,t,r),_=p(a,f,t,r),y=p(c,u,n,r),b=p(l,f,n,r),k=p(s,c,e,n),M=p(o,l,e,n),$=[];switch(m){case 1:case 14:$.push([d,g,k,M]);break;case 2:case 13:$.push([d,g,w,_]);break;case 3:case 12:$.push([k,M,w,_]);break;case 4:case 11:$.push([k,M,y,b]);break;case 5:case 10:$.push([d,g,y,b]);break;case 6:case 9:$.push([d,g,k,M]),$.push([y,b,w,_]);break;case 7:case 8:$.push([y,b,w,_]);break}return $}function HN(e){const{x:t,y:n,z:r,rows:s,cols:o}=e,i=(f,h,m)=>f[m*s+h];let a=1/0,c=-1/0;for(const f of r)Number.isFinite(f)&&(f<a&&(a=f),f>c&&(c=f));let l;if(e.levels&&e.levels.length>0)l=e.levels.filter(f=>Number.isFinite(f));else{const f=Math.max(1,Math.round(e.nLevels));if(l=[],Number.isFinite(a)&&Number.isFinite(c)&&c>a){const h=(c-a)/(f+1);for(let m=1;m<=f;m++)l.push(a+m*h)}}const u=[];for(const f of l)for(let h=0;h<o-1;h++)for(let m=0;m<s-1;m++){const p=XN(i(r,m,h),i(r,m+1,h),i(r,m,h+1),i(r,m+1,h+1),i(t,m,h),i(n,m,h),i(t,m+1,h),i(n,m+1,h),i(t,m,h+1),i(n,m,h+1),i(t,m+1,h+1),i(n,m+1,h+1),f);for(const[d,g,w,_]of p)u.push(f,2,d,g,w,_)}return{data:u,n:u.length/2,levelList:l}}function YN(e){const t=Yh(e);return t.edgeColor||(t.edgeColor="flat"),t.faceColor||(t.faceColor="none"),t}function Aw(e){let t=0,n,r,s=.8,o;if(e.length===0)throw new Error("bar requires at least 1 argument");const i=e[t++];for(t<e.length&&Ft(e[t])?(n=Ge(i),r=Ge(e[t++])):r=Ge(i);t<e.length;)if(Ft(e[t])){const c=e[t];if(O(c))s=c,t++;else break}else if(Yt(e[t])){const c=jt(e[t]),l=ln(c);if(l)o=l,t++;else break}else break;n||(n=fu(r.length));const a={x:n,y:r,width:s};return o&&(a.color=o),[a]}function JN(e){return Aw(e)}function Ew(e){let t=0,n,r=.8,s;if(e.length===0)throw new Error("bar3 requires at least 1 argument");const o=e[t++];let i,a,c;if(t<e.length&&Ft(e[t])){n=Ge(o);const m=e[t++];if(T(m)){const p=At(m);i=Array.from(p.data),a=p.rows,c=p.cols}else i=Ge(m),a=i.length,c=1}else if(T(o)){const m=At(o);i=Array.from(m.data),a=m.rows,c=m.cols}else i=Ge(o),a=i.length,c=1;for(;t<e.length;)if(Ft(e[t])){const m=e[t];if(O(m))r=m,t++;else break}else if(Yt(e[t])){const m=jt(e[t]),p=ln(m);if(p)s=p,t++;else break}else break;n||(n=fu(a));const l=[],u=[],f=[];for(let m=0;m<c;m++)for(let p=0;p<a;p++)l.push(m+1),u.push(n[p]),f.push(i[m*a+p]);const h={x:l,y:u,z:f,rows:a,cols:c,width:r};return s&&(h.color=s),h}function KN(e){const t=Fo(e);for(const n of t){const r=n.x.length;if(r<2)continue;const s=[],o=[];for(let i=0;i<r-1;i++)s.push(n.x[i]),o.push(n.y[i]),s.push(n.x[i+1]),o.push(n.y[i]);s.push(n.x[r-1]),o.push(n.y[r-1]),n.x=s,n.y=o}return t}function ZN(e){if(e.length<2)throw new Error("errorbar requires at least 2 arguments");let t=0,n,r,s,o,i,a,c,l,u,f=0;for(let m=0;m<e.length&&Ft(e[m]);m++)f++;if(f===2){r=Ge(e[t++]);const m=Ge(e[t++]);s=m,o=m}else if(f===3){n=Ge(e[t++]),r=Ge(e[t++]);const m=Ge(e[t++]);s=m,o=m}else if(f===4)n=Ge(e[t++]),r=Ge(e[t++]),s=Ge(e[t++]),o=Ge(e[t++]);else if(f>=6)n=Ge(e[t++]),r=Ge(e[t++]),s=Ge(e[t++]),o=Ge(e[t++]),i=Ge(e[t++]),a=Ge(e[t++]);else throw new Error("errorbar: invalid number of numeric arguments");for(n||(n=fu(r.length));t<e.length&&Yt(e[t]);){const m=jt(e[t]),p=Fs(m);if(p){if(p.color){const d=ln(p.color);d&&(c=d)}p.lineStyle&&(l=p.lineStyle),p.marker&&(u=p.marker),t++}else{const d=ln(m);if(d)c=d,t++;else break}}const h={x:n,y:r,yNeg:s,yPos:o};return i&&(h.xNeg=i),a&&(h.xPos=a),c&&(h.color=c),l&&(h.lineStyle=l),u&&(h.marker=u),[h]}function GN(e){let t=0;const n=[...e],r=n.length-1;return r>=1&&Ft(n[r])&&O(n[r])&&r>=1&&Ft(n[r-1])&&(t=ee(n[r]),n.pop()),{traces:Fo(n),baseValue:t}}function Iw(e){if(e.length<3)throw new Error("scatter3 requires at least 3 arguments");const t=Ge(e[0]),n=Ge(e[1]),r=Ge(e[2]),s={x:t,y:n,z:r,marker:"o",lineStyle:"none"};let o=3,i=!1;if(o<e.length&&Ft(e[o])){const a=e[o];if(O(a))s.markerSize=Math.sqrt(a)*.5;else if(T(a)){const c=Ge(a);(c.length===1||new Set(c).size===1)&&(s.markerSize=Math.sqrt(c[0])*.5)}o++}if(o<e.length&&!Pr(e[o])){if(Yt(e[o])){const a=jt(e[o]);if(a==="filled")i=!0,o++;else{const c=ln(a);if(c)s.color=c,o++;else{const l=Fs(a);l?.marker&&(s.marker=l.marker,l.color&&(s.color=Is[l.color]),o++)}}}else if(Ft(e[o])){const a=ln(e[o]);a&&(s.color=a,o++)}}for(;o<e.length&&Yt(e[o])&&!Pr(e[o]);){const a=jt(e[o]);if(a==="filled")i=!0,o++;else{const c=Fs(a);if(c?.marker)s.marker=c.marker,c.color&&(s.color=Is[c.color]),o++;else break}}for(i&&(s.markerFaceColor=s.color||[0,0,1]);o<e.length;){const a=Pr(e[o]);if(!a||(o++,o>=e.length))break;const c=e[o];o++,Xh([s],a,c)}return[s]}function QN(e){if(e.length===0)throw new Error("histogram requires at least 1 argument");let t=0;const r=Ge(e[t++]).filter(u=>isFinite(u));if(r.length===0)return[];let s;if(t<e.length&&Ft(e[t])){const u=e[t++];O(u)?s=jo(r,Math.max(1,Math.round(u))):s=Ge(u)}else{const u=Math.max(1,Math.ceil(Math.log2(r.length)+1));s=jo(r,u)}const o=s.length-1;if(o<=0)return[];const i=new Array(o).fill(0);for(const u of r){let f=-1;for(let h=0;h<o;h++)if(h<o-1){if(u>=s[h]&&u<s[h+1]){f=h;break}}else if(u>=s[h]&&u<=s[h+1]){f=h;break}f>=0&&i[f]++}const a=[],c=[],l=s[1]-s[0];for(let u=0;u<o;u++)a.push((s[u]+s[u+1])/2),c.push(i[u]);return[{x:a,y:c,width:l}]}function jo(e,t){const n=Math.min(...e),o=(Math.max(...e)-n||1)/t,i=[];for(let a=0;a<=t;a++)i.push(n+a*o);return i}function ON(e){if(e.length<2)throw new Error("histogram2 requires at least 2 arguments");let t=0;const n=Ge(e[t++]).filter(g=>isFinite(g)),r=Ge(e[t++]).filter(g=>isFinite(g)),s=Math.min(n.length,r.length);if(s===0)return{x:[],y:[],z:[],rows:0,cols:0,width:.8};let o,i;if(t<e.length&&Ft(e[t])){const g=e[t++];if(t<e.length&&Ft(e[t]))o=Ge(g),i=Ge(e[t++]);else if(O(g)){const w=Math.max(1,Math.round(g));o=jo(n.slice(0,s),w),i=jo(r.slice(0,s),w)}else{const w=Ge(g),_=Math.max(1,Math.round(w[0])),y=w.length>1?Math.max(1,Math.round(w[1])):_;o=jo(n.slice(0,s),_),i=jo(r.slice(0,s),y)}}else{const g=Math.max(1,Math.ceil(Math.sqrt(s)));o=jo(n.slice(0,s),g),i=jo(r.slice(0,s),g)}const a=o.length-1,c=i.length-1;if(a<=0||c<=0)return{x:[],y:[],z:[],rows:0,cols:0,width:.8};const l=new Array(a*c).fill(0);for(let g=0;g<s;g++){const w=Fw(n[g],o),_=Fw(r[g],i);w>=0&&_>=0&&l[w*c+_]++}const u=[],f=[],h=[];for(let g=0;g<a;g++)for(let w=0;w<c;w++)u.push((o[g]+o[g+1])/2),f.push((i[w]+i[w+1])/2),h.push(l[g*c+w]);const m=o[1]-o[0],p=i[1]-i[0],d=Math.min(m,p);return{x:u,y:f,z:h,rows:c,cols:a,width:d}}function Fw(e,t){const n=t.length-1;for(let r=0;r<n;r++)if(r<n-1){if(e>=t[r]&&e<t[r+1])return r}else if(e>=t[r]&&e<=t[r+1])return r;return-1}function Zh(e,t){if(e.length===0)return NaN;if(e.length===1)return e[0];const n=t/100*(e.length-1),r=Math.floor(n),s=Math.ceil(n);return r===s?e[r]:e[r]+(e[s]-e[r])*(n-r)}function Gh(e,t,n,r){const s=e.filter(d=>isFinite(d));if(s.length===0)return null;s.sort((d,g)=>d-g);const o=Zh(s,50),i=Zh(s,25),a=Zh(s,75),c=a-i,l=i-1.5*c,u=a+1.5*c;let f=i,h=a;const m=[];for(const d of s)d<l||d>u?m.push(d):(d<f&&(f=d),d>h&&(h=d));return{x:t,median:o,q1:i,q3:a,whiskerLow:f,whiskerHigh:h,outliers:m,width:n}}function eS(e){if(e.length===0)throw new Error("boxchart requires at least 1 argument");let t=0;const n=e[t++];if(t<e.length&&Ft(e[t])){const o=Ge(n),i=Ge(e[t++]),a=Math.min(o.length,i.length),c=new Map;for(let f=0;f<a;f++){const h=o[f];if(!isFinite(h))continue;let m=c.get(h);m||(m=[],c.set(h,m)),m.push(i[f])}const l=[],u=[...c.keys()].sort((f,h)=>f-h);for(const f of u){const h=Gh(c.get(f),f,.5);h&&l.push(h)}return l}if(T(n)&&n.shape.length>=2&&n.shape[0]>1&&n.shape[1]>1){const o=[];for(let i=0;i<n.shape[1];i++){const a=kw(n,i),c=Gh(a,i+1,.5);c&&o.push(c)}return o}const r=Ge(n),s=Gh(r,1,.5);return s?[s]:[]}function Qh(e,t,n){const r=new Array(e.length),s=new Map;for(let o=0;o<e.length;o++){let i=s.get(e[o]);i||(i=[],s.set(e[o],i)),i.push(o)}for(const[,o]of s){if(o.length<=1){for(const p of o)r[p]=e[p];continue}const i=o.slice().sort((p,d)=>t[p]-t[d]),a=i.map(p=>t[p]),c=a[0],f=(a[a.length-1]-c||1)/Math.max(3,Math.sqrt(i.length)),h=new Array(i.length);for(let p=0;p<i.length;p++){let d=0;for(let g=0;g<i.length;g++){const w=(a[p]-a[g])/f;d+=Math.exp(-.5*w*w)}h[p]=d}const m=Math.max(...h);for(let p=0;p<i.length;p++){const d=m>0?h[p]/m:0,g=n*d,w=p,_=w%2===0?1:-1,y=Math.ceil(w/2)/Math.max(1,i.length/2)*g;r[i[p]]=e[i[p]]+_*y}}return r}function tS(e){if(e.length<2)throw new Error("swarmchart requires at least 2 arguments");const t=Ge(e[0]),n=Ge(e[1]),r=Qh(t,n,.3),s=[Oh(r),e[1],...e.slice(2)];return Sw(s)}function nS(e){if(e.length<3)throw new Error("swarmchart3 requires at least 3 arguments");const t=Ge(e[0]),n=Ge(e[1]),r=Ge(e[2]),s=Qh(t,r,.3),o=Qh(n,r,.3),i=[Oh(s),Oh(o),e[2],...e.slice(3)];return Iw(i)}function Oh(e){return{kind:"tensor",data:v(e),shape:[1,e.length]}}function jw(e,t){if(e.length===0)throw new Error("piechart requires at least 1 argument");let n=0;const r=Ge(e[n++]).filter(o=>isFinite(o)&&o>0);let s;if(n<e.length&&!Ft(e[n])&&!(T(e[n])||O(e[n]))){s=[];const o=e[n];if(o&&typeof o=="object"&&"kind"in o&&o.kind==="cell"){const i=o;for(const a of i.data)s.push(jt(a))}else if(Yt(o)){for(s.push(jt(o)),n++;n<e.length&&Yt(e[n]);)s.push(jt(e[n])),n++;return{values:r,names:s,innerRadius:t}}n++}return{values:r,names:s,innerRadius:t}}function rS(e){if(e.length===0)throw new Error("heatmap requires at least 1 argument");let t=0;if(e.length>=3&&Ft(e[0]),e.length>=3&&Ft(e[0])&&Ft(e[1])&&Ft(e[2])){const r=Ge(e[t++]),s=Ge(e[t++]),o=At(e[t++]);return{data:o.data,rows:o.rows,cols:o.cols,xLabels:r.map(i=>String(i)),yLabels:s.map(i=>String(i))}}const n=At(e[t++]);return{data:n.data,rows:n.rows,cols:n.cols}}const sS=new Set(["color","linestyle","linewidth","showarrowhead","autoscale","autoscalefactor","marker"]);function _u(e){if(!ve(e)&&!be(e))return null;const t=ve(e)?e.toLocaleLowerCase():e.value.toLowerCase();return sS.has(t)?t:null}function Rw(e){if(typeof e=="string")return e;if(e&&typeof e=="object"&&"kind"in e){const t=e;if(ve(t))return t;if(be(t))return t.value}}function oS(e){if(e.length<2)throw new Error("quiver requires at least 2 arguments");let t=0;for(let m=0;m<e.length&&Ft(e[m]);m++)t++;let n=0,r,s,o,i,a,c,l;if(t===2)l=2;else if(t===3)l=2;else if(t>=4)l=4;else throw new Error("quiver requires at least 2 numeric arguments");if(l===2){const m=e[n++],p=e[n++],d=At(m),g=At(p);if(a=d.rows,c=d.cols,o=d.data,i=g.data,a===1||c===1){const w=o.length;r=new Array(w),s=new Array(w);for(let _=0;_<w;_++)r[_]=_+1,s[_]=1}else{const w=ai(a,c);r=w.x,s=w.y}}else{const m=e[n++],p=e[n++],d=e[n++],g=e[n++],w=At(d),_=At(g);a=w.rows,c=w.cols,o=w.data,i=_.data;const y=ci(m,p,a,c);r=y.x,s=y.y}let u=!0,f=.9;if(n<e.length&&Ft(e[n])&&!Yt(e[n])){const m=ee(e[n]);m===0?u=!1:f=m*.9,n++}const h={x:r,y:s,u:o,v:i,showArrowHead:!0};for(;n<e.length&&Yt(e[n])&&!_u(e[n]);){const m=Rw(e[n]);if(m===void 0)break;if(m==="off"){u=!1,n++;continue}if(m==="filled"){h.markerFilled=!0,n++;continue}const p=Fs(m);if(p){p.color&&(h.color=Is[p.color]),p.lineStyle&&(h.lineStyle=p.lineStyle),p.marker&&(h.marker=p.marker,h.showArrowHead=!1),n++;continue}const d=ln(m);if(d){h.color=d,n++;continue}break}for(;n<e.length;){const m=_u(e[n]);if(!m||(n++,n>=e.length))break;const p=e[n++];switch(m){case"color":{const d=ln(p);d&&(h.color=d);break}case"linestyle":h.lineStyle=jt(p);break;case"linewidth":h.lineWidth=typeof p=="number"?p:ee(p);break;case"marker":{const d=jt(p);h.marker=d==="none"?void 0:d;break}case"showarrowhead":{const d=jt(p).toLowerCase();h.showArrowHead=!(d==="off"||d==="false"||d==="0");break}case"autoscale":{const d=jt(p).toLowerCase();u=!(d==="off"||d==="false"||d==="0");break}case"autoscalefactor":{f=(typeof p=="number"?p:ee(p))*.9;break}}}if(u){const m=iS(r,s,o,i,a,c,f);if(m!==1){const p=new Array(o.length),d=new Array(i.length);for(let g=0;g<o.length;g++)p[g]=o[g]*m;for(let g=0;g<i.length;g++)d[g]=i[g]*m;h.u=p,h.v=d}}return[h]}function iS(e,t,n,r,s,o,i){const a=n.length;if(a===0)return 1;let c=0,l=0;for(let b=0;b<s;b++)for(let k=0;k<o-1;k++){const M=k*s+b,$=(k+1)*s+b,S=e[$]-e[M],E=t[$]-t[M],D=Math.sqrt(S*S+E*E);isFinite(D)&&D>0&&(c+=D,l++)}for(let b=0;b<s-1;b++)for(let k=0;k<o;k++){const M=k*s+b,$=k*s+b+1,S=e[$]-e[M],E=t[$]-t[M],D=Math.sqrt(S*S+E*E);isFinite(D)&&D>0&&(c+=D,l++)}const u=l>0?c/l:0;let f=1/0,h=-1/0,m=1/0,p=-1/0;for(let b=0;b<e.length;b++)isFinite(e[b])&&(e[b]<f&&(f=e[b]),e[b]>h&&(h=e[b]));for(let b=0;b<t.length;b++)isFinite(t[b])&&(t[b]<m&&(m=t[b]),t[b]>p&&(p=t[b]));const d=h-f,g=p-m;let w;d>0&&g>0?w=Math.sqrt(d*g/a):d>0?w=d/Math.max(1,a-1):g>0?w=g/Math.max(1,a-1):w=0;const _=Math.max(u,w)||1;let y=0;for(let b=0;b<a;b++){const k=n[b],M=r[b];if(!isFinite(k)||!isFinite(M))continue;const $=Math.sqrt(k*k+M*M);$>y&&(y=$)}return y===0?1:i*_/y}function aS(e){if(e.length<4)throw new Error("quiver3 requires at least 4 arguments");let t=0;for(let g=0;g<e.length&&Ft(e[g]);g++)t++;let n=0,r,s,o,i,a,c,l,u;if((t>=6?6:4)===4){const g=At(e[n++]);l=g.rows,u=g.cols,o=g.data,i=At(e[n++]).data,a=At(e[n++]).data,c=At(e[n++]).data;const w=o.length;if(l===1||u===1){r=new Array(w),s=new Array(w);for(let _=0;_<w;_++)r[_]=_+1,s[_]=1}else{const _=ai(l,w/l);r=_.x,s=_.y}}else{const g=e[n++],w=e[n++],_=At(e[n++]);l=_.rows,u=_.cols,o=_.data,i=At(e[n++]).data,a=At(e[n++]).data,c=At(e[n++]).data;const y=i.length,b=Ge(g),k=Ge(w);if(b.length===y&&k.length===y)r=b,s=k;else{const M=ci(g,w,l,u);r=M.x,s=M.y}}let h=!0,m=.9,p=.9;if(n<e.length&&Ft(e[n])&&!Yt(e[n])){const g=ee(e[n]);g===0?h=!1:(m=g*.9,p=g),n++}const d={x:r,y:s,z:o,u:i,v:a,w:c,showArrowHead:!0};for(;n<e.length&&Yt(e[n])&&!_u(e[n]);){const g=Rw(e[n]);if(g===void 0)break;if(g==="off"){h=!1,n++;continue}if(g==="filled"){d.markerFilled=!0,n++;continue}const w=Fs(g);if(w){w.color&&(d.color=Is[w.color]),w.lineStyle&&(d.lineStyle=w.lineStyle),w.marker&&(d.marker=w.marker,d.showArrowHead=!1),n++;continue}const _=ln(g);if(_){d.color=_,n++;continue}break}for(;n<e.length;){const g=_u(e[n]);if(!g||(n++,n>=e.length))break;const w=e[n++];switch(g){case"color":{const _=ln(w);_&&(d.color=_);break}case"linestyle":d.lineStyle=jt(w);break;case"linewidth":d.lineWidth=typeof w=="number"?w:ee(w);break;case"marker":{const _=jt(w);d.marker=_==="none"?void 0:_;break}case"showarrowhead":{const _=jt(w).toLowerCase();d.showArrowHead=!(_==="off"||_==="false"||_==="0");break}case"autoscale":{const _=jt(w).toLowerCase();h=!(_==="off"||_==="false"||_==="0");break}case"autoscalefactor":{const _=typeof w=="number"?w:ee(w);m=_*.9,p=_;break}}}if(d.autoScale=h,d.autoScaleFactor=p,h){const g=cS(r,s,o,i,a,c,m);g!==1&&(d.u=i.map(w=>w*g),d.v=a.map(w=>w*g),d.w=c.map(w=>w*g))}return d}function cS(e,t,n,r,s,o,i){const a=r.length;if(a===0)return 1;const c=d=>{let g=1/0,w=-1/0;for(const _ of d)isFinite(_)&&(_<g&&(g=_),_>w&&(w=_));return w>g?w-g:0},l=c(e),u=c(t),f=c(n),h=[l,u,f].filter(d=>d>0);let m;h.length===3?m=Math.cbrt(l*u*f/a):h.length===2?m=Math.sqrt(h[0]*h[1]/a):h.length===1?m=h[0]/Math.max(1,a-1):m=1,m=m||1;let p=0;for(let d=0;d<a;d++){const g=Math.sqrt(r[d]*r[d]+s[d]*s[d]+o[d]*o[d]);isFinite(g)&&g>p&&(p=g)}return p===0?1:i*m/p}function Lw(e){if(typeof e=="number")return x.num(e);if(typeof e=="boolean")return x.logical(e);if(typeof e=="string")return x.char(e);if(Array.isArray(e)){const t=v(e);return x.tensor(t,[1,e.length])}return e}const Dw={line:{Color:[0,.447,.741],LineStyle:"-",LineWidth:.5,Marker:"none",MarkerSize:6},patch:{FaceColor:[0,.447,.741],EdgeColor:[0,0,0],FaceAlpha:1,LineStyle:"-",LineWidth:.5,Marker:"none"},quiver3:{LineWidth:.5,LineStyle:"-",ShowArrowHead:!0,AutoScale:!0,AutoScaleFactor:.9,Marker:"none",Color:[0,.447,.741]}};function Tw(e,t){if(t in e)return t;const n=t.charAt(0).toLowerCase()+t.slice(1);if(n in e)return n;const r=t.toLowerCase();for(const s of Object.keys(e))if(s.toLowerCase()===r)return s;if(r.endsWith("data")){const s=r.slice(0,-4);for(const o of Object.keys(e))if(o.toLowerCase()===s)return o}return null}function lS(e,t){if(Array.isArray(t)&&t.length===3&&(ve(e)||be(e))){const n=ln(e);if(n)return n}if(typeof t=="boolean"){if(typeof e=="boolean")return e;if(typeof e=="number")return e!==0;if(ve(e)||be(e)){const n=(be(e)?e.value:e).toLowerCase();return!(n==="off"||n==="false"||n==="0")}return!0}if(typeof t=="string")return be(e)?e.value:ve(e)?e:String(e);if((typeof t=="number"||t===void 0)&&(typeof e=="number"||O(e)))return e;if(Array.isArray(t)){if(T(e))return Array.from(e.data);if(typeof e=="number")return[e]}return e}const uS={facecolor:"faceColor",edgecolor:"edgeColor",facealpha:"faceAlpha",linewidth:"lineWidth",linestyle:"lineStyle",marker:"marker",markerfacecolor:"markerFaceColor",facevertexcdata:"faceVertexCData",cdata:"faceVertexCData"};function Pw(e,t,n,r){if(t==="patch"){const a=n.toLowerCase(),c=uS[a];if(c)return gu(e,a,r),{key:c,value:e[c]}}const s=Tw(e,n)??n.charAt(0).toLowerCase()+n.slice(1),o=e[s]??Dw[t]?.[n],i=lS(r,o);return e[s]=i,{key:s,value:i}}function ep(e,t){if(ut(e)||Ze(e)){const n=e.fields.get(t);if(n===void 0)throw new C(`No field '${t}' on ${Ze(e)?e.className:"struct"}`);return n}if(Vt(e)){if(!e.fieldNames.includes(t))throw new C(`No field '${t}' on struct array`);const n=e.elements.map(r=>{const s=r.fields.get(t);if(s===void 0)throw new C(`No field '${t}' on struct element`);return s});return yc(...n)}if(ko(e)){const n=Tw(e._trace,t);if(n!==null)return Lw(e._trace[n]);const r=Dw[e._traceType]?.[t];if(r!==void 0)return Lw(r);throw new C(`No property '${t}' on ${e._traceType} handle`)}throw new C(`Cannot access field ${t} on ${Dn(e)}`)}function fS(e,t,n,r){if(Ze(e)){if(e.isHandleClass)return r?e.bindField(r,t,n):e.fields.set(t,n),e;if(r&&!Yo(e))return e.bindField(r,t,n),e;const s=new Map(e.fields);return s.set(t,n),new Us(e.className,s,!1,e._builtinData)}if(ut(e)){if(r&&!Yo(e))return e.bindField(r,t,n),e;const s=new Map(e.fields);return s.set(t,n),x.struct(s)}if(Vt(e)){if(e.elements.length===1){const s=new Map(e.elements[0].fields);return s.set(t,n),x.struct(s)}throw new C(`Cannot assign field '${t}' on a non-scalar struct array without indexing`)}return ko(e)?(Pw(e._trace,e._traceType,t,n),e):O(e)&&e===0?x.struct(new Map([[t,n]])):x.struct(new Map([[t,n]]))}class yu extends Error{span;identifier;file;line;column;constructor(t,n=null,r=null){super(t),this.name="SemanticError",this.span=n,this.identifier=r,this.file=null,this.line=null,this.column=void 0}withSpan(t){return this.span=t,this}withIdentifier(t){return this.identifier=t,this}}const Bw=new Set(["pi","inf","Inf","nan","NaN","realmax","realmin","intmax","intmin","i","j","true","false"]);var j=(e=>(e[e.Integer=0]="Integer",e[e.Float=1]="Float",e[e.Str=2]="Str",e[e.Char=3]="Char",e[e.Ident=4]="Ident",e[e.Function=5]="Function",e[e.If=6]="If",e[e.Else=7]="Else",e[e.ElseIf=8]="ElseIf",e[e.For=9]="For",e[e.ParFor=10]="ParFor",e[e.While=11]="While",e[e.Break=12]="Break",e[e.Continue=13]="Continue",e[e.Return=14]="Return",e[e.End=15]="End",e[e.ClassDef=16]="ClassDef",e[e.Properties=17]="Properties",e[e.Methods=18]="Methods",e[e.Events=19]="Events",e[e.Enumeration=20]="Enumeration",e[e.Arguments=21]="Arguments",e[e.Import=22]="Import",e[e.Switch=23]="Switch",e[e.Case=24]="Case",e[e.Otherwise=25]="Otherwise",e[e.Try=26]="Try",e[e.Catch=27]="Catch",e[e.Global=28]="Global",e[e.Persistent=29]="Persistent",e[e.True=30]="True",e[e.False=31]="False",e[e.Plus=32]="Plus",e[e.Minus=33]="Minus",e[e.Star=34]="Star",e[e.Slash=35]="Slash",e[e.Backslash=36]="Backslash",e[e.Caret=37]="Caret",e[e.And=38]="And",e[e.Or=39]="Or",e[e.Tilde=40]="Tilde",e[e.At=41]="At",e[e.Question=42]="Question",e[e.Less=43]="Less",e[e.Greater=44]="Greater",e[e.Dot=45]="Dot",e[e.Colon=46]="Colon",e[e.Comma=47]="Comma",e[e.Assign=48]="Assign",e[e.Semicolon=49]="Semicolon",e[e.LParen=50]="LParen",e[e.RParen=51]="RParen",e[e.LBracket=52]="LBracket",e[e.RBracket=53]="RBracket",e[e.LBrace=54]="LBrace",e[e.RBrace=55]="RBrace",e[e.DotStar=56]="DotStar",e[e.DotSlash=57]="DotSlash",e[e.DotBackslash=58]="DotBackslash",e[e.DotCaret=59]="DotCaret",e[e.AndAnd=60]="AndAnd",e[e.OrOr=61]="OrOr",e[e.Equal=62]="Equal",e[e.NotEqual=63]="NotEqual",e[e.LessEqual=64]="LessEqual",e[e.GreaterEqual=65]="GreaterEqual",e[e.Transpose=66]="Transpose",e[e.Ellipsis=67]="Ellipsis",e[e.Newline=68]="Newline",e[e.Section=69]="Section",e[e.Error=70]="Error",e[e.Directive=71]="Directive",e))(j||{});const qw=new Map([["function",j.Function],["if",j.If],["else",j.Else],["elseif",j.ElseIf],["for",j.For],["parfor",j.ParFor],["while",j.While],["break",j.Break],["continue",j.Continue],["return",j.Return],["end",j.End],["classdef",j.ClassDef],["properties",j.Properties],["methods",j.Methods],["events",j.Events],["enumeration",j.Enumeration],["arguments",j.Arguments],["import",j.Import],["switch",j.Switch],["case",j.Case],["otherwise",j.Otherwise],["try",j.Try],["catch",j.Catch],["global",j.Global],["persistent",j.Persistent],["true",j.True],["false",j.False]]);j.True,j.False;function Vw(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e==="_"}function mS(e){return Vw(e)||e>="0"&&e<="9"}function li(e){return e>="0"&&e<="9"}function zw(e){return e===" "||e===" "||e==="\r"}function tp(e){return e===j.Ident||e===j.Integer||e===j.Float||e===j.True||e===j.False||e===j.End||e===j.RParen||e===j.RBracket||e===j.RBrace||e===j.Str||e===j.Char||e===j.Transpose}function np(e,t=0){for(let n=t;n<e.length;n++){if(e[n]===`
27
+ `;break;case"t":r+=" ";break;case"r":r+="\r";break;case"a":r+="\x07";break;case"b":r+="\b";break;case"f":r+="\f";break;case"v":r+="\v";break;case"0":r+="\0";break;case"\\":r+="\\";break;default:r+="\\"+e[a]}a++}else r+=e[a],a++;if(s===o)break}while(s<n.length);return r}function Ch(e){if(Le(e))return{re:e.re,im:e.im};if(O(e))return{re:e,im:0};if(Ce(e))return{re:e?1:0,im:0};if(T(e)&&e.data.length===1)return{re:e.data[0],im:e.imag?e.imag[0]:0};if(Ae(e))return Ch(zn(e));throw new C(`Cannot use ${Dn(e)} in complex arithmetic`)}function Ns(e,t){return Le(e)||Le(t)||T(e)&&e.imag!==void 0||T(t)&&t.imag!==void 0||Ae(e)&&e.pi!==void 0||Ae(t)&&t.pi!==void 0}function ni(e,t){return t===0?x.num(e):x.complex(e,t)}function mc(e){if(Le(e))return{scalar:!0,re:e.re,im:e.im};if(O(e))return{scalar:!0,re:e,im:0};if(Ce(e))return{scalar:!0,re:e?1:0,im:0};if(T(e)){if(e.data.length===1)return{scalar:!0,re:e.data[0],im:e.imag?e.imag[0]:0};const t=e.imag||v(e.data.length);return{scalar:!1,re:e.data,im:t,shape:e.shape}}if(Ae(e))return mc(zn(e));throw new C(`Cannot use ${Dn(e)} in complex arithmetic`)}function Yg(e,t,n,r){const s=mc(e),o=mc(t);if(s.scalar&&o.scalar)return x.logical(n(s.re,s.im,o.re,o.im));if(s.scalar&&!o.scalar){const l=o.re.length;if(o.re instanceof Float64Array&&(!o.im||o.im instanceof Float64Array)){const h=v(l);Bn.complexScalarComparison(r,l,s.re,s.im,o.re,o.im,!0,h);const m=x.tensor(h,o.shape);return m._isLogical=!0,m}const u=v(l);for(let h=0;h<l;h++)u[h]=n(s.re,s.im,o.re[h],o.im[h])?1:0;const f=x.tensor(u,o.shape);return f._isLogical=!0,f}if(!s.scalar&&o.scalar){const l=s.re.length;if(s.re instanceof Float64Array&&(!s.im||s.im instanceof Float64Array)){const h=v(l);Bn.complexScalarComparison(r,l,o.re,o.im,s.re,s.im,!1,h);const m=x.tensor(h,s.shape);return m._isLogical=!0,m}const u=v(l);for(let h=0;h<l;h++)u[h]=n(s.re[h],s.im[h],o.re,o.im)?1:0;const f=x.tensor(u,s.shape);return f._isLogical=!0,f}const i=s,a=o;if(i.re.length===a.re.length&&i.shape.length===a.shape.length&&i.shape.every((l,u)=>l===a.shape[u])){const l=i.re.length;if(i.re instanceof Float64Array&&a.re instanceof Float64Array&&(!i.im||i.im instanceof Float64Array)&&(!a.im||a.im instanceof Float64Array)){const h=v(l);Bn.complexComparison(r,l,i.re,i.im,a.re,a.im,h);const m=x.tensor(h,i.shape);return m._isLogical=!0,m}const u=v(l);for(let h=0;h<l;h++)u[h]=n(i.re[h],i.im[h],a.re[h],a.im[h])?1:0;const f=x.tensor(u,i.shape);return f._isLogical=!0,f}const c=As(i.shape,a.shape);if(c!==null)return zC(i,a,c,n);throw new C(`Matrix dimensions must agree for comparison: [${i.shape.join(",")}] vs [${a.shape.join(",")}]`)}function Jg(e){return e>0?1/0:e<0?-1/0:0}function Nh(e,t,n,r){if(n===0&&r===0)return e===0&&t===0?{re:NaN,im:0}:{re:Jg(e),im:Jg(t)};if(Math.abs(n)>=Math.abs(r)){const i=r/n,a=n+r*i;return{re:(e+t*i)/a,im:(t-e*i)/a}}const s=n/r,o=r+n*s;return{re:(e*s+t)/o,im:(t*s-e)/o}}function Ao(e,t,n,r){if(r!==void 0){const l=Kg(e),u=Kg(t);if(l&&T(t)&&t.data.length>1){const f=Zg(l.re,l.im,t.data,t.imag,t.shape,r,!0);if(f)return f}else if(u&&T(e)&&e.data.length>1){const f=Zg(u.re,u.im,e.data,e.imag,e.shape,r,!1);if(f)return f}}const s=mc(e),o=mc(t);if(s.scalar&&o.scalar){const l=n(s.re,s.im,o.re,o.im);return ni(l.re,l.im)}if(s.scalar&&!o.scalar){const l=o.re.length,u=v(l),f=v(l);for(let m=0;m<l;m++){const p=n(s.re,s.im,o.re[m],o.im[m]);u[m]=p.re,f[m]=p.im}const h=f.every(m=>m===0);return x.tensor(u,o.shape,h?void 0:f)}if(!s.scalar&&o.scalar){const l=s.re.length,u=v(l),f=v(l);for(let m=0;m<l;m++){const p=n(s.re[m],s.im[m],o.re,o.im);u[m]=p.re,f[m]=p.im}const h=f.every(m=>m===0);return x.tensor(u,s.shape,h?void 0:f)}const i=s,a=o;if(i.re.length===a.re.length&&i.shape.length===a.shape.length&&i.shape.every((l,u)=>l===a.shape[u])){const l=i.re.length,u=v(l),f=v(l);for(let m=0;m<l;m++){const p=n(i.re[m],i.im[m],a.re[m],a.im[m]);u[m]=p.re,f[m]=p.im}const h=f.every(m=>m===0);return x.tensor(u,i.shape,h?void 0:f)}const c=As(i.shape,a.shape);if(c!==null)return VC(i,a,c,n);throw new C(`Matrix dimensions must agree: [${i.shape.join(",")}] vs [${a.shape.join(",")}]`)}const hc=0,pc=1,Eo=2,ra=3;function su(e,t){if(typeof e!="object"||e===null||e.kind!=="tensor"||typeof t!="object"||t===null||t.kind!=="tensor")return null;const n=e,r=t;return n.data.length!==r.data.length||n.shape.length!==r.shape.length||n.shape.some((s,o)=>s!==r.shape[o])?null:[n,r]}function ou(e,t,n){if(!(e.data instanceof Float64Array)||!(t.data instanceof Float64Array))return null;const r=e.data.length,s=v(r);return Bn.realBinaryElemwise(n,r,e.data,t.data,s),x.tensorRaw(s,e.shape)}function Ss(e,t,n,r){if(t.imag||!(t.data instanceof Float64Array))return null;const s=t.data.length,o=v(s);return Bn.realScalarBinaryElemwise(n,s,e,t.data,r,o),x.tensorRaw(o,t.shape)}function Kg(e){return O(e)?{re:e,im:0}:Le(e)?{re:e.re,im:e.im}:Ce(e)?{re:e?1:0,im:0}:T(e)&&e.data.length===1?{re:e.data[0],im:e.imag?e.imag[0]:0}:null}function Zg(e,t,n,r,s,o,i){if(!(n instanceof Float64Array)||r&&!(r instanceof Float64Array))return null;const a=n.length,c=v(a),l=v(a);Bn.complexScalarBinaryElemwise(o,a,e,t,n,r??null,i,c,l);let u=!0;for(let f=0;f<a;f++)if(l[f]!==0){u=!1;break}return u?x.tensorRaw(c,s):x.tensor(c,s,l)}function iu(e,t,n,r){if(e.data instanceof Float64Array&&t.data instanceof Float64Array){const u=e.data.length,f=v(u),h=v(u);Bn.complexBinaryElemwise(n,u,e.data,e.imag??null,t.data,t.imag??null,f,h);let m=!0;for(let p=0;p<u;p++)if(h[p]!==0){m=!1;break}return m?x.tensorRaw(f,e.shape):x.tensor(f,e.shape,h)}const s=e.data.length,o=e.imag,i=t.imag,a=v(s),c=v(s);if(o&&i)for(let u=0;u<s;u++){const f=r(e.data[u],o[u],t.data[u],i[u]);a[u]=f.re,c[u]=f.im}else if(o)for(let u=0;u<s;u++){const f=r(e.data[u],o[u],t.data[u],0);a[u]=f.re,c[u]=f.im}else for(let u=0;u<s;u++){const f=r(e.data[u],0,t.data[u],i[u]);a[u]=f.re,c[u]=f.im}const l=c.every(u=>u===0);return x.tensor(a,e.shape,l?void 0:c)}function Sh(e){if(ve(e))return e;if(be(e))return e.value;if(Ce(e))return e?"true":"false";if(O(e))return Hg(e);if(T(e)&&e.data.length===1&&!e.imag){const t=e.data[0];return e._isLogical===!0?t?"true":"false":Hg(t)}return null}function sa(e,t){if(at(e)||at(t)){const r=at(e)?e:null,s=at(t)?t:null;if(r&&s){if(r.shape[0]!==s.shape[0]||r.shape[1]!==s.shape[1])throw new C("Array dimensions must match for string plus");return hn(r.data.map((a,c)=>a+s.data[c]),r.shape)}const o=r??s,i=Sh(r?t:e);if(i===null)throw new C("Cannot concatenate this value with a string");return hn(o.data.map(a=>r?a+i:i+a),o.shape)}if(ve(e)||ve(t)){const r=Sh(e),s=Sh(t);if(r!==null&&s!==null)return x.string(r+s)}if(T(e)&&!e.imag&&O(t)){const r=e.data,s=t,o=r.length,i=v(o);for(let a=0;a<o;a++)i[a]=r[a]+s;return x.tensorRaw(i,e.shape)}if(O(e)&&T(t)&&!t.imag){const r=t.data,s=e,o=r.length,i=v(o);for(let a=0;a<o;a++)i[a]=s+r[a];return x.tensorRaw(i,t.shape)}const n=su(e,t);if(n){const[r,s]=n;if(!r.imag&&!s.imag){const o=ou(r,s,hc);if(o)return o;const i=r.data.length,a=v(i);for(let c=0;c<i;c++)a[c]=r.data[c]+s.data[c];return x.tensorRaw(a,r.shape)}return iu(r,s,hc,(o,i,a,c)=>({re:o+a,im:i+c}))}if(Ae(e)||Ae(t))return CC(e,t);if(Ns(e,t))return Ao(e,t,(r,s,o,i)=>({re:r+o,im:s+i}),hc);if(O(e)&&T(t)){const r=Ss(e,t,hc,!0);if(r)return r}else if(T(e)&&O(t)){const r=Ss(t,e,hc,!1);if(r)return r}return so(e,t,(r,s)=>r+s,ow)}function dc(e,t){if(T(e)&&!e.imag&&O(t)){const r=e.data,s=t,o=r.length,i=v(o);for(let a=0;a<o;a++)i[a]=r[a]-s;return x.tensorRaw(i,e.shape)}if(O(e)&&T(t)&&!t.imag){const r=t.data,s=e,o=r.length,i=v(o);for(let a=0;a<o;a++)i[a]=s-r[a];return x.tensorRaw(i,t.shape)}const n=su(e,t);if(n){const[r,s]=n;if(!r.imag&&!s.imag){const o=ou(r,s,pc);if(o)return o;const i=r.data.length,a=v(i);for(let c=0;c<i;c++)a[c]=r.data[c]-s.data[c];return x.tensorRaw(a,r.shape)}return iu(r,s,pc,(o,i,a,c)=>({re:o-a,im:i-c}))}if(Ae(e)||Ae(t))return NC(e,t);if(Ns(e,t))return Ao(e,t,(r,s,o,i)=>({re:r-o,im:s-i}),pc);if(O(e)&&T(t)){const r=Ss(e,t,pc,!0);if(r)return r}else if(T(e)&&O(t)){const r=Ss(t,e,pc,!1);if(r)return r}return so(e,t,(r,s)=>r-s,iw)}function Io(e,t){if(Ae(e)||Ae(t))return SC(e,t);if(T(e)&&e.data.length===1&&(e=ls(e)),T(t)&&t.data.length===1&&(t=ls(t)),T(e)&&T(t))return cw(e,t);if(Ns(e,t))return Ao(e,t,(n,r,s,o)=>({re:n*s-r*o,im:n*o+r*s}),Eo);if(O(e)&&T(t)){const n=Ss(e,t,Eo,!0);if(n)return n}else if(T(e)&&O(t)){const n=Ss(t,e,Eo,!1);if(n)return n}return so(e,t,(n,r)=>n*r,Bh)}function Ah(e,t){if(T(e)&&!e.imag&&O(t)){const r=e.data,s=t,o=r.length,i=v(o);for(let a=0;a<o;a++)i[a]=r[a]*s;return x.tensorRaw(i,e.shape)}if(O(e)&&T(t)&&!t.imag){const r=t.data,s=e,o=r.length,i=v(o);for(let a=0;a<o;a++)i[a]=s*r[a];return x.tensorRaw(i,t.shape)}const n=su(e,t);if(n){const[r,s]=n;if(!r.imag&&!s.imag){const o=ou(r,s,Eo);if(o)return o;const i=r.data.length,a=v(i);for(let c=0;c<i;c++)a[c]=r.data[c]*s.data[c];return x.tensorRaw(a,r.shape)}return iu(r,s,Eo,(o,i,a,c)=>({re:o*a-i*c,im:o*c+i*a}))}if(Ae(e)||Ae(t))return AC(e,t);if(Ns(e,t))return Ao(e,t,(r,s,o,i)=>({re:r*o-s*i,im:r*i+s*o}),Eo);if(O(e)&&T(t)){const r=Ss(e,t,Eo,!0);if(r)return r}else if(T(e)&&O(t)){const r=Ss(t,e,Eo,!1);if(r)return r}return so(e,t,(r,s)=>r*s,Bh)}function Eh(e,t){if(Ae(e)||Ae(t))return Eh(zn(e),zn(t));if(T(e)&&e.data.length===1&&(e=ls(e)),T(t)&&t.data.length===1&&(t=ls(t)),T(t)){const n=wc(Mh(e,"mrdivide")),r=wc(t),s=gc(r,n);return wc(s)}return Ns(e,t)?Ao(e,t,Nh,ra):so(e,t,(n,r)=>n/r,qh)}function ri(e,t){if(T(e)&&!e.imag&&O(t)){const r=e.data,s=t,o=r.length,i=v(o);for(let a=0;a<o;a++)i[a]=r[a]/s;return x.tensorRaw(i,e.shape)}if(O(e)&&T(t)&&!t.imag){const r=t.data,s=e,o=r.length,i=v(o);for(let a=0;a<o;a++)i[a]=s/r[a];return x.tensorRaw(i,t.shape)}const n=su(e,t);if(n){const[r,s]=n;if(!r.imag&&!s.imag){const o=ou(r,s,ra);if(o)return o;const i=r.data.length,a=v(i);for(let c=0;c<i;c++)a[c]=r.data[c]/s.data[c];return x.tensorRaw(a,r.shape)}return iu(r,s,ra,Nh)}if(Ae(e)||Ae(t))return EC(e,t);if(Ns(e,t))return Ao(e,t,Nh,ra);if(O(e)&&T(t)){const r=Ss(e,t,ra,!0);if(r)return r}else if(T(e)&&O(t)){const r=Ss(t,e,ra,!1);if(r)return r}return so(e,t,(r,s)=>r/s,qh)}function gc(e,t){if(Ae(e))return gc(zn(e),t);if(Ae(t))return gc(e,zn(t));if(T(e)&&e.data.length===1&&(e=ls(e)),T(t)&&t.data.length===1&&(t=ls(t)),O(e)||Ce(e))return ri(t,e);const n=e,r=O(t)||Ce(t)?x.tensor(v([ee(t)]),[1,1]):t;if(!T(n)||!T(r))throw new C("mldivide (\\): operands must be numeric matrices");const[s,o]=tt(n),[i,a]=tt(r);if(i!==s)throw new C(`mldivide (\\): A is ${s}×${o} but B has ${i} rows`);if(s===0||o===0||a===0)return x.tensor(v(o*a),[o,a]);if(n.imag||r.imag){const l=n.data,u=n.imag??v(n.data.length),f=r.data,h=r.imag??v(r.data.length),m=vh(l,u,s,o,f,h,a);return ls(x.tensor(m.re,[o,a],m.im))}const c=ru(n.data,s,o,r.data,a);if(!c)throw new C("mldivide (\\): LAPACK bridge unavailable");return ls(x.tensor(c,[o,a]))}function TC(e,t){return ri(t,e)}function PC(e){return Number.isInteger(e)?(e&1)===0?1:-1:Number.isInteger(e*2)?0:Math.cos(Math.PI*e)}function BC(e){if(Number.isInteger(e))return 0;const t=e*2;return Number.isInteger(t)?((t-1)/2&1)===0?1:-1:Math.sin(Math.PI*e)}function Ih(e,t){const n=Math.pow(-e,t);return{re:n*PC(t),im:n*BC(t)}}function Fh(e,t){if(Ns(e,t)){const n=Ch(e),r=Ch(t);if(n.im===0&&r.im===0&&n.re<0){const u=Ih(n.re,r.re);return ni(u.re,u.im)}const s=Math.hypot(n.re,n.im);if(s===0)return r.re===0&&r.im===0?ni(1,0):r.re>0?ni(0,0):ni(1/0,0);const o=Math.atan2(n.im,n.re),i=Math.log(s),a=r.re*i-r.im*o,c=r.re*o+r.im*i,l=Math.exp(a);return ni(l*Math.cos(c),l*Math.sin(c))}if(T(e)&&(O(t)||Ce(t))){const n=ee(t),[r,s]=tt(e);if(r===s&&Number.isInteger(n)){if(n===0){const c=v(r*s);for(let l=0;l<r;l++)c[Ke(l,l,r)]=1;return x.tensor(c,[r,s])}let o=e,i=n;if(i<0){const c=DC("mpower","inv",[e],1);if(!T(c))throw new C("mpower: inv returned non-tensor");o=c,i=-i}let a=o;for(let c=1;c<i;c++)a=cw(a,o);return a}}if(O(e)&&e<0&&O(t)&&!Number.isInteger(t)){const n=Ih(e,t);return ni(n.re,n.im)}return so(e,t,(n,r)=>Math.pow(n,r))}function Gg(e,t){if(T(e)&&!e.imag&&O(t)){const s=t;if(s===2){const o=v(e.data.length);for(let i=0;i<o.length;i++)o[i]=e.data[i]*e.data[i];return x.tensor(o,e.shape)}if(Number.isInteger(s)||s>=0){let o=!1;if(!Number.isInteger(s)){for(let i=0;i<e.data.length;i++)if(e.data[i]<0){o=!0;break}}if(!o){const i=v(e.data.length);for(let a=0;a<i.length;a++)i[a]=Math.pow(e.data[a],s);return x.tensor(i,e.shape)}}}const n=(s,o,i,a)=>{if(o===0&&a===0&&s<0)return Ih(s,i);const c=Math.hypot(s,o);if(c===0)return i===0&&a===0?{re:1,im:0}:i>0?{re:0,im:0}:{re:1/0,im:0};const l=Math.atan2(o,s),u=Math.log(c),f=i*u-a*l,h=i*l+a*u,m=Math.exp(f);return{re:m*Math.cos(h),im:m*Math.sin(h)}};if(Ns(e,t))return Ao(e,t,n);let r=!1;if(O(e)&&e<0)r=!0;else if(T(e)){for(let s=0;s<e.data.length;s++)if(e.data[s]<0){r=!0;break}}if(r){let s=!1;if(O(t))s=Number.isInteger(t);else if(Ce(t))s=!0;else if(T(t)){s=!0;for(let o=0;o<t.data.length;o++)if(!Number.isInteger(t.data[o])){s=!1;break}}return s?so(e,t,(o,i)=>Math.pow(o,i)):Ao(e,t,n)}return so(e,t,(s,o)=>Math.pow(s,o))}function Qg(e){if(T(e)){if(e.imag!==void 0){const n=v(e.data.length),r=v(e.imag.length);for(let s=0;s<e.data.length;s++)n[s]=-e.data[s],r[s]=-e.imag[s];return x.tensor(n,e.shape,r)}const t=v(e.data.length);for(let n=0;n<e.data.length;n++)t[n]=-e.data[n];return x.tensor(t,e.shape)}return Ae(e)?kC(e):Le(e)?x.complex(-e.re,-e.im):WC(e,t=>-t)}function Og(e){const t=e.shape,n=t.length===0||t.length===1?1:t[0],r=t.length===0?1:t.length===1?t[0]:t[1],s=new Array(e.data.length);for(let o=0;o<n;o++)for(let i=0;i<r;i++)s[o*r+i]=e.data[Ke(o,i,n)];return x.cell(s,[r,n])}function ew(e,t){const[n,r]=tt(e),s=v(e.data.length);for(let i=0;i<n;i++)for(let a=0;a<r;a++)s[i*r+a]=e.data[Ke(i,a,n)];if(e.imag!==void 0){const i=v(e.imag.length),a=t?-1:1;for(let c=0;c<n;c++)for(let l=0;l<r;l++)i[c*r+l]=a*e.imag[Ke(c,l,n)];return x.tensor(s,[r,n],i)}const o=x.tensor(s,[r,n]);return e._isLogical&&(o._isLogical=!0),o}function tw(e){const[t,n]=e.shape,r=new Array(e.elements.length);for(let s=0;s<t;s++)for(let o=0;o<n;o++)r[s*n+o]=e.elements[o*t+s];return new Fl(e.className,r,[n,t])}function nw(e){const[t,n]=e.shape,r=new Array(t*n);for(let s=0;s<t;s++)for(let o=0;o<n;o++)r[s*n+o]=e.data[o*t+s];return hn(r,[n,t])}function rw(e){if(Ae(e))return Lg(e);if(Le(e)||O(e)||Ce(e))return e;if(ze(e))return Og(e);if(be(e)||ve(e))return e;if(at(e))return nw(e);if(Ze(e))return e;if(St(e))return tw(e);if(!T(e))throw new C("Cannot transpose non-numeric value");return ew(e,!1)}function wc(e){if(Ae(e))return vC(e);if(Le(e))return x.complex(e.re,-e.im);if(O(e)||Ce(e))return e;if(ze(e))return Og(e);if(be(e)||ve(e))return e;if(at(e))return nw(e);if(Ze(e))return e;if(St(e))return tw(e);if(!T(e))throw new C("Cannot transpose non-numeric value");return ew(e,!0)}function qC(e,t){return ve(e)&&ve(t)?[e,t]:ve(e)&&be(t)?[e,t.value]:be(e)&&ve(t)?[e.value,t]:null}function sw(e){return ve(e)?{data:[e],shape:[1,1]}:be(e)?(e.shape?e.shape[0]:1)>1?null:{data:[e.value],shape:[1,1]}:at(e)?{data:e.data,shape:e.shape}:null}function oa(e,t,n){if(at(e)||at(t)){const s=sw(e),o=sw(t);if(s===null||o===null)return null;const i=s.data.length===1&&s.shape[0]*s.shape[1]===1,a=o.data.length===1&&o.shape[0]*o.shape[1]===1;if(!i&&!a&&(s.shape[0]!==o.shape[0]||s.shape[1]!==o.shape[1]))throw new C("Array dimensions must match for comparison");const c=i?o.shape:s.shape,l=i?o.data.length:s.data.length,u=v(l);for(let h=0;h<l;h++){const m=i?s.data[0]:s.data[h],p=a?o.data[0]:o.data[h];u[h]=n(m,p)?1:0}const f=x.tensor(u,[c[0],c[1]]);return f._isLogical=!0,f}const r=qC(e,t);return r===null?null:x.logical(n(r[0],r[1]))}function zn(e){return Ae(e)?vt(e):e}function jh(e,t){if(Ae(e)||Ae(t))return jh(zn(e),zn(t));const n=oa(e,t,(r,s)=>r===s);return n!==null?n:Ns(e,t)?Yg(e,t,(r,s,o,i)=>r===o&&s===i,Xt.EQ):aa(e,t,(r,s)=>r===s,Xt.EQ)}function Rh(e,t){if(Ae(e)||Ae(t))return Rh(zn(e),zn(t));const n=oa(e,t,(r,s)=>r!==s);return n!==null?n:Ns(e,t)?Yg(e,t,(r,s,o,i)=>r!==o||s!==i,Xt.NE):aa(e,t,(r,s)=>r!==s,Xt.NE)}function Lh(e,t){if(Ae(e)||Ae(t))return Lh(zn(e),zn(t));const n=oa(e,t,(r,s)=>r<s);return n!==null?n:aa(e,t,(r,s)=>r<s,Xt.LT)}function Dh(e,t){if(Ae(e)||Ae(t))return Dh(zn(e),zn(t));const n=oa(e,t,(r,s)=>r<=s);return n!==null?n:aa(e,t,(r,s)=>r<=s,Xt.LE)}function Th(e,t){if(Ae(e)||Ae(t))return Th(zn(e),zn(t));const n=oa(e,t,(r,s)=>r>s);return n!==null?n:aa(e,t,(r,s)=>r>s,Xt.GT)}function Ph(e,t){if(Ae(e)||Ae(t))return Ph(zn(e),zn(t));const n=oa(e,t,(r,s)=>r>=s);return n!==null?n:aa(e,t,(r,s)=>r>=s,Xt.GE)}function ia(e){if(O(e))return{scalar:!0,value:e,isComplex:!1};if(Ce(e))return{scalar:!0,value:e?1:0,isComplex:!1};if(Le(e))return{scalar:!0,re:e.re,im:e.im,isComplex:!0};if(T(e))return e.data.length===1?e.imag!==void 0?{scalar:!0,re:e.data[0],im:e.imag[0],isComplex:!0}:{scalar:!0,value:e.data[0],isComplex:!1}:{scalar:!1,tensor:e};if(Ae(e))return ia(zn(e));if(be(e)){if(e.value.length===1)return{scalar:!0,value:e.value.charCodeAt(0),isComplex:!1};const t=v(Array.from(e.value).map(n=>n.charCodeAt(0)));return{scalar:!1,tensor:x.tensorRaw(t,[1,e.value.length])}}throw new C(`Cannot use ${Dn(e)} in numeric operation`)}function As(e,t){const n=Math.max(e.length,t.length,2),r=au(e.length===0?[1,1]:e.length===1?[1,e[0]]:e,n),s=au(t.length===0?[1,1]:t.length===1?[1,t[0]]:t,n),o=[];for(let i=0;i<n;i++){const a=r[i],c=s[i];if(a===c)o.push(a);else if(a===1)o.push(c);else if(c===1)o.push(a);else return null}return o}function au(e,t){if(e.length>=t)return e;const n=[...e];for(;n.length<t;)n.push(1);return n}function ro(e,t,n,r){const s=n.length,o=n.reduce((d,g)=>d*g,1),i=au(e,s),a=au(t,s),c=new Array(s),l=new Array(s);let u=1,f=1;for(let d=0;d<s;d++)c[d]=i[d]===1?0:u,l[d]=a[d]===1?0:f,u*=i[d],f*=a[d];const h=new Array(s).fill(0);let m=0,p=0;for(let d=0;d<o;d++){r(m,p,d);for(let g=0;g<s&&(h[g]++,m+=c[g],p+=l[g],!(h[g]<n[g]));g++)m-=h[g]*c[g],p-=h[g]*l[g],h[g]=0}}const ow=0,iw=1,Bh=2,qh=3;function aw(e,t,n,r,s){if(n.length===2){const i=n[0],a=n[1],c=v(i*a),l=e.shape,u=t.shape,f=l.length>=1?l[0]:1,h=l.length>=2?l[1]:1,m=u.length>=1?u[0]:1,p=u.length>=2?u[1]:1,d=f===1?0:1,g=h===1?0:f,w=m===1?0:1,_=p===1?0:m,y=e.data,b=t.data;let k=0;if(s===ow)for(let M=0;M<a;M++){const $=M*g,S=M*_;for(let E=0;E<i;E++)c[k++]=y[$+E*d]+b[S+E*w]}else if(s===iw)for(let M=0;M<a;M++){const $=M*g,S=M*_;for(let E=0;E<i;E++)c[k++]=y[$+E*d]-b[S+E*w]}else if(s===Bh)for(let M=0;M<a;M++){const $=M*g,S=M*_;for(let E=0;E<i;E++)c[k++]=y[$+E*d]*b[S+E*w]}else if(s===qh)for(let M=0;M<a;M++){const $=M*g,S=M*_;for(let E=0;E<i;E++)c[k++]=y[$+E*d]/b[S+E*w]}else for(let M=0;M<a;M++){const $=M*g,S=M*_;for(let E=0;E<i;E++)c[k++]=r(y[$+E*d],b[S+E*w])}return x.tensor(c,n)}const o=v(n.reduce((i,a)=>i*a,1));return ro(e.shape,t.shape,n,(i,a,c)=>{o[c]=r(e.data[i],t.data[a])}),x.tensor(o,n)}function VC(e,t,n,r){const s=n.reduce((c,l)=>c*l,1),o=v(s),i=v(s);ro(e.shape,t.shape,n,(c,l,u)=>{const f=r(e.re[c],e.im[c],t.re[l],t.im[l]);o[u]=f.re,i[u]=f.im});const a=i.every(c=>c===0);return x.tensor(o,n,a?void 0:i)}function zC(e,t,n,r){const s=v(n.reduce((i,a)=>i*a,1));ro(e.shape,t.shape,n,(i,a,c)=>{s[c]=r(e.re[i],e.im[i],t.re[a],t.im[a])?1:0});const o=x.tensor(s,n);return o._isLogical=!0,o}function UC(e,t,n,r){const s=v(n.reduce((i,a)=>i*a,1));ro(e.shape,t.shape,n,(i,a,c)=>{s[c]=r(e.data[i],t.data[a])?1:0});const o=x.tensor(s,n);return o._isLogical=!0,o}function so(e,t,n,r){if(T(e)&&e.data.length>1){if(T(t)&&t.data.length>1){if(e.data.length===t.data.length&&e.shape.length===t.shape.length&&e.shape.every((u,f)=>u===t.shape[f])){const u=v(e.data.length);for(let f=0;f<u.length;f++)u[f]=n(e.data[f],t.data[f]);return x.tensor(u,e.shape)}const l=As(e.shape,t.shape);if(l!==null)return aw(e,t,l,n,r);throw new C(`Matrix dimensions must agree: [${e.shape.join(",")}] vs [${t.shape.join(",")}]`)}if(O(t)){const l=v(e.data.length),u=t;for(let f=0;f<l.length;f++)l[f]=n(e.data[f],u);return x.tensor(l,e.shape)}}if(T(t)&&t.data.length>1&&O(e)){const l=v(t.data.length),u=e;for(let f=0;f<l.length;f++)l[f]=n(u,t.data[f]);return x.tensor(l,t.shape)}const s=ia(e),o=ia(t);if(s.scalar&&o.scalar){const l=s.isComplex?s.re:s.value,u=o.isComplex?o.re:o.value;return x.num(n(l,u))}if(s.scalar&&!o.scalar){const l=o.tensor,u=v(l.data.length),f=s.isComplex?s.re:s.value;for(let h=0;h<u.length;h++)u[h]=n(f,l.data[h]);return x.tensor(u,l.shape)}if(!s.scalar&&o.scalar){const l=s.tensor,u=v(l.data.length),f=o.isComplex?o.re:o.value;for(let h=0;h<u.length;h++)u[h]=n(l.data[h],f);return x.tensor(u,l.shape)}const i=s.tensor,a=o.tensor;if(i.data.length===a.data.length&&i.shape.length===a.shape.length&&i.shape.every((l,u)=>l===a.shape[u])){const l=v(i.data.length);for(let u=0;u<l.length;u++)l[u]=n(i.data[u],a.data[u]);return x.tensor(l,i.shape)}const c=As(i.shape,a.shape);if(c!==null)return aw(i,a,c,n,r);throw new C(`Matrix dimensions must agree: [${i.shape.join(",")}] vs [${a.shape.join(",")}]`)}function WC(e,t){if(T(e)&&e.data.length>1){const s=v(e.data.length);for(let o=0;o<s.length;o++)s[o]=t(e.data[o]);return x.tensor(s,e.shape)}const n=ia(e);if(n.scalar){const s=n.isComplex?n.re:n.value;return x.num(t(s))}const r=v(n.tensor.data.length);for(let s=0;s<r.length;s++)r[s]=t(n.tensor.data[s]);return x.tensor(r,n.tensor.shape)}function aa(e,t,n,r){const s=ia(e),o=ia(t);if(s.scalar&&o.scalar){const l=s.isComplex?s.re:s.value,u=o.isComplex?o.re:o.value;return x.logical(n(l,u))}if(s.scalar&&!o.scalar){const l=s.isComplex?s.re:s.value,u=o.tensor.data.length;if(o.tensor.data instanceof Float64Array){const m=v(u);Bn.realScalarComparison(r,u,l,o.tensor.data,!0,m);const p=x.tensor(m,o.tensor.shape);return p._isLogical=!0,p}const f=v(u);for(let m=0;m<u;m++)f[m]=n(l,o.tensor.data[m])?1:0;const h=x.tensor(f,o.tensor.shape);return h._isLogical=!0,h}if(!s.scalar&&o.scalar){const l=o.isComplex?o.re:o.value,u=s.tensor.data.length;if(s.tensor.data instanceof Float64Array){const m=v(u);Bn.realScalarComparison(r,u,l,s.tensor.data,!1,m);const p=x.tensor(m,s.tensor.shape);return p._isLogical=!0,p}const f=v(u);for(let m=0;m<u;m++)f[m]=n(s.tensor.data[m],l)?1:0;const h=x.tensor(f,s.tensor.shape);return h._isLogical=!0,h}const i=s.tensor,a=o.tensor;if(i.data.length===a.data.length&&i.shape.length===a.shape.length&&i.shape.every((l,u)=>l===a.shape[u])){const l=i.data.length;if(i.data instanceof Float64Array&&a.data instanceof Float64Array){const h=v(l);Bn.realComparison(r,l,i.data,a.data,h);const m=x.tensor(h,i.shape);return m._isLogical=!0,m}const u=v(l);for(let h=0;h<l;h++)u[h]=n(i.data[h],a.data[h])?1:0;const f=x.tensor(u,i.shape);return f._isLogical=!0,f}const c=As(i.shape,a.shape);if(c!==null)return UC(i,a,c,n);throw new C(`Matrix dimensions must agree for comparison: [${i.shape.join(",")}] vs [${a.shape.join(",")}]`)}function ls(e){return T(e)&&e.data.length===1?e.imag&&e.imag[0]!==0?x.complex(e.data[0],e.imag[0]):x.num(e.data[0]):e}function cw(e,t){const[n,r]=tt(e),[s,o]=tt(t);if(r!==s)throw new C(`Inner matrix dimensions must agree: ${r} vs ${s}`);if(n===0||r===0||o===0)return x.tensor(v(n*o),[n,o]);if(!(e.imag!==void 0||t.imag!==void 0)){const m=$n("matmul","matmul"),p=e.data instanceof Float64Array?e.data:v(e.data),d=t.data instanceof Float64Array?t.data:v(t.data),g=m.matmul(p,n,r,d,o);return ls(x.tensor(g,[n,o]))}const a=e.imag||v(e.data.length),c=t.imag||v(t.data.length),l=$n("matmul","matmulComplex");if(l.matmulComplex){const m=e.data instanceof Float64Array?e.data:v(e.data),p=a instanceof Float64Array?a:v(a),d=t.data instanceof Float64Array?t.data:v(t.data),g=c instanceof Float64Array?c:v(c),w=l.matmulComplex(m,p,n,r,d,g,o);return ls(x.tensor(w.re,[n,o],w.im))}const u=v(n*o),f=v(n*o);for(let m=0;m<n;m++)for(let p=0;p<o;p++){let d=0,g=0;for(let _=0;_<r;_++){const y=Ke(m,_,n),b=Ke(_,p,s),k=e.data[y],M=a[y],$=t.data[b],S=c[b];d+=k*$-M*S,g+=k*S+M*$}const w=Ke(m,p,n);u[w]=d,f[w]=g}const h=f.every(m=>m===0);return ls(x.tensor(u,[n,o],h?void 0:f))}const XC="__COLON__";function en(e){return ve(e)&&e==="__COLON__"}function Es(e){if(O(e))return{re:e,im:0};if(Ce(e))return{re:e?1:0,im:0};if(Le(e))return{re:e.re,im:e.im};if(T(e)&&e.data.length===1)return{re:e.data[0],im:e.imag?e.imag[0]:0};if(Ae(e)&&e.m===1&&e.n===1){const t=e.pr.length>0?e.pr[0]:0,n=e.pi&&e.pi.length>0?e.pi[0]:0;return{re:t,im:n}}throw new C(`Cannot convert ${Dn(e)} to number for assignment`)}function lw(e){const t=e.shape?e.shape[0]:1,n=e.shape?e.shape[1]:e.value.length,r=v(t*n);for(let s=0;s<t;s++)for(let o=0;o<n;o++)r[o*t+s]=e.value.charCodeAt(s*n+o);return x.tensor(r,[t,n])}function HC(e){const t=e.shape.length>=2?e.shape[0]??0:1,n=e.shape.length>=2?e.shape[1]??0:e.data.length;let r="";for(let s=0;s<t;s++)for(let o=0;o<n;o++)r+=String.fromCharCode(Math.round(e.data[o*t+s]));return t>1?new ys(r,[t,n]):x.char(r)}function rr(e){e.imag||(e.imag=v(e.data.length))}function cu(e,t){if(e.imag!==void 0){const n=e.imag[t];return n===0?x.num(e.data[t]):x.complex(e.data[t],n)}return e._isLogical===!0?e.data[t]!==0:x.num(e.data[t])}function Un(e,t,n=t){if(en(e))return Array.from({length:t},(s,o)=>o);if(Ce(e))return e?[0]:[];if(T(e)){if(e._isLogical){const s=[];for(let o=0;o<e.data.length;o++)e.data[o]!==0&&s.push(o);return s}return Array.from(e.data).map(s=>{const o=Math.round(s)-1;if(o<0||n>0&&o>=n)throw new C("Index exceeds array bounds");return o})}const r=Math.round(ee(e))-1;if(r<0||n>0&&r>=n)throw new C("Index exceeds array bounds");return[r]}function YC(e,t,n,r){return{rowIndices:Un(e,n),colIndices:Un(t,r)}}function lu(e,t,n){const[r,s]=tt(e);if(t<=r&&n<=s)return e;const o=Math.max(r,t),i=Math.max(s,n),a=v(o*i),l=e.imag!==void 0?v(o*i):void 0;for(let u=0;u<s;u++)for(let f=0;f<r;f++)a[f+u*o]=e.data[f+u*r],l&&e.imag&&(l[f+u*o]=e.imag[f+u*r]);return x.tensor(a,[o,i],l)}function JC(e,t,n,r,s){if(T(r)){const o=t.length,i=n.length;if(r.data.length===1){const m=r.data[0],p=r.imag?r.imag[0]:0;(p!==0||e.imag)&&rr(e);for(const d of t)for(const g of n){const w=Ke(d,g,s);e.data[w]=m,e.imag&&(e.imag[w]=p)}return}const[a,c]=tt(r),l=a===o&&c===i,u=o===1||i===1,f=a===1||c===1,h=r.data.length===o*i;if(!l&&!(u&&f&&h))throw new C("Subscripted assignment dimension mismatch");if((r.imag||e.imag)&&rr(e),l)for(let m=0;m<o;m++)for(let p=0;p<i;p++){const d=Ke(t[m],n[p],s),g=Ke(m,p,a);e.data[d]=r.data[g],e.imag&&(e.imag[d]=r.imag?r.imag[g]:0)}else{let m=0;for(let p=0;p<i;p++)for(let d=0;d<o;d++){const g=Ke(t[d],n[p],s);e.data[g]=r.data[m],e.imag&&(e.imag[g]=r.imag?r.imag[m]:0),m++}}}else{const{re:o,im:i}=Es(r);(i!==0||e.imag)&&rr(e);for(const a of t)for(const c of n){const l=Ke(a,c,s);e.data[l]=o,e.imag&&(e.imag[l]=i)}}}function KC(e,t){if(O(e)||Ce(e)||Le(e))return new Array(t).fill(e);if(T(e)){const n=[];for(let r=0;r<t;r++)e.imag?n.push(x.complex(e.data[r],e.imag[r])):n.push(x.num(e.data[r]));return n}return new Array(t).fill(e)}function Vh(e,t,n){for(let r=e.jc[n];r<e.jc[n+1];r++)if(e.ir[r]===t)return{re:e.pr[r],im:e.pi?e.pi[r]:0};return{re:0,im:0}}function ZC(e,t,n){const r=t.length,s=n.length,o=new Map;for(let f=0;f<r;f++){const h=t[f],m=o.get(h);m?m.push(f):o.set(h,[f])}const i=e.pi!==void 0,a=[],c=[],l=[],u=new Int32Array(s+1);for(let f=0;f<s;f++){const h=n[f];u[f]=a.length;const m=[];for(let p=e.jc[h];p<e.jc[h+1];p++){const d=o.get(e.ir[p]);if(d!==void 0){const g=e.pr[p],w=i?e.pi[p]:0;for(const _ of d)m.push({newRow:_,re:g,im:w})}}m.sort((p,d)=>p.newRow-d.newRow);for(const p of m)a.push(p.newRow),c.push(p.re),i&&l.push(p.im)}return u[s]=a.length,x.sparseMatrix(r,s,new Int32Array(a),u,v(c),i?v(l):void 0)}function uw(e,t,n){if(t.length===1){const g=e.m*e.n,w=Un(t[0],g),_=w.map(M=>M%e.m),y=w.map(M=>Math.floor(M/e.m));let b=e;const k=KC(n,w.length);for(let M=0;M<w.length;M++)b=uw(b,[x.num(_[M]+1),x.num(y[M]+1)],k[M]);return b}if(t.length!==2)throw new C("Sparse matrix assignment requires 1 or 2 indices");const r=Un(t[0],e.m),s=Un(t[1],e.n),o=r.length,i=s.length,a=v(o*i),c=v(o*i);let l=!1;if(O(n))a.fill(n);else if(Ce(n))a.fill(n?1:0);else if(Le(n))a.fill(n.re),c.fill(n.im),l=n.im!==0;else if(T(n)){for(let g=0;g<n.data.length;g++)a[g]=n.data[g];if(n.imag){for(let g=0;g<n.imag.length;g++)c[g]=n.imag[g];l=!0}}else if(Ae(n))for(let g=0;g<n.n;g++)for(let w=n.jc[g];w<n.jc[g+1];w++){const _=g*o+n.ir[w];a[_]=n.pr[w],n.pi&&(c[_]=n.pi[w],l=!0)}else throw new C("Cannot assign non-numeric value into sparse matrix");const u=e.pi!==void 0||l,f=new Map;for(let g=0;g<e.n;g++){const w=[];for(let _=e.jc[g];_<e.jc[g+1];_++)w.push({row:e.ir[_],re:e.pr[_],im:e.pi?e.pi[_]:0});w.length>0&&f.set(g,w)}for(let g=0;g<i;g++){const w=s[g];let _=f.get(w);_||(_=[],f.set(w,_));for(let y=0;y<o;y++){const b=r[y],k=a[g*o+y],M=c[g*o+y];let $=!1;for(let S=0;S<_.length;S++)if(_[S].row===b){k===0&&M===0?_.splice(S,1):(_[S].re=k,_[S].im=M),$=!0;break}!$&&(k!==0||M!==0)&&_.push({row:b,re:k,im:M})}_.sort((y,b)=>y.row-b.row),_.length===0&&f.delete(w)}const h=[],m=[],p=[],d=new Int32Array(e.n+1);for(let g=0;g<e.n;g++){d[g]=h.length;const w=f.get(g);if(w)for(const _ of w)h.push(_.row),m.push(_.re),u&&p.push(_.im)}return d[e.n]=h.length,x.sparseMatrix(e.m,e.n,new Int32Array(h),d,v(m),u?v(p):void 0)}function GC(e,t){if(t.length===1){const n=t[0];if(en(n)){const r=e.m*e.n,s=[],o=[],i=[],a=e.pi!==void 0;for(let l=0;l<e.n;l++)for(let u=e.jc[l];u<e.jc[l+1];u++){const f=l*e.m+e.ir[u];s.push(f),o.push(e.pr[u]),a&&i.push(e.pi[u])}const c=new Int32Array([0,s.length]);return x.sparseMatrix(r,1,new Int32Array(s),c,v(o),a?v(i):void 0)}if(O(n)){const r=Math.round(n)-1;if(r<0||r>=e.m*e.n)throw new C("Index exceeds array bounds");const s=Math.floor(r/e.m),o=r%e.m,i=Vh(e,o,s);return e.pi!==void 0&&i.im!==0?x.complex(i.re,i.im):i.re}if(T(n)||Ce(n)){const r=e.m*e.n,s=Un(n,r),o=s.length,i=e.pi!==void 0,a=[],c=[],l=[],u=new Int32Array(o+1);for(let f=0;f<o;f++){u[f]=a.length;const h=s[f],m=Math.floor(h/e.m),p=h%e.m,d=Vh(e,p,m);(d.re!==0||d.im!==0)&&(a.push(0),c.push(d.re),i&&l.push(d.im))}return u[o]=a.length,x.sparseMatrix(1,o,new Int32Array(a),u,v(c),i?v(l):void 0)}}if(t.length===2){if(en(t[0])){const s=Un(t[1],e.n);if(s.length===1){const f=s[0],h=e.jc[f],p=e.jc[f+1]-h,d=new Int32Array(p),g=v(p);let w;for(let y=0;y<p;y++)d[y]=e.ir[h+y],g[y]=e.pr[h+y];if(e.pi!==void 0){w=v(p);for(let y=0;y<p;y++)w[y]=e.pi[h+y]}const _=new Int32Array([0,p]);return x.sparseMatrix(e.m,1,d,_,g,w)}const o=s.length,i=e.pi!==void 0,a=[],c=[],l=[],u=new Int32Array(o+1);for(let f=0;f<o;f++){u[f]=a.length;const h=s[f];for(let m=e.jc[h];m<e.jc[h+1];m++)a.push(e.ir[m]),c.push(e.pr[m]),i&&l.push(e.pi[m])}return u[o]=a.length,x.sparseMatrix(e.m,o,new Int32Array(a),u,v(c),i?v(l):void 0)}const n=Un(t[0],e.m),r=Un(t[1],e.n);if(n.length===1&&r.length===1){const s=Vh(e,n[0],r[0]);return e.pi!==void 0&&s.im!==0?x.complex(s.re,s.im):s.re}return ZC(e,n,r)}throw new C("Sparse matrix supports 1 or 2 index dimensions")}function QC(e,t){if(t.some(c=>T(c)&&c.data.length===0)){if(t.length===2){const l=u=>en(u)?1:T(u)?u.data.length:1;return x.tensor(v(0),[l(t[0]),l(t[1])])}const c=t[0];if(T(c)){const u=c.shape.length===2&&c.shape[0]===0&&c.shape[1]===0?[0,0]:[...c.shape];return x.tensor(v(0),u)}}if(t.length===1){const c=t[0];if(Ce(c))return c?e:x.tensor(v(0),[0,0]);if(T(c)&&c._isLogical){let l=0;for(let f=0;f<c.data.length;f++)c.data[f]&&l++;if(l===0)return x.tensor(v(0),[0,0]);const u=v(l);if(u.fill(O(e)?e:e.re),Le(e)&&e.im!==0){const f=v(l);return f.fill(e.im),x.tensor(u,[1,l],f)}return x.tensor(u,[1,l])}}if(t.length===1&&T(t[0])){const c=t[0];for(let h=0;h<c.data.length;h++)if(Math.round(c.data[h])!==1)throw new C("Index exceeds array bounds");const l=c.data.length,u=O(e)?e:e.re,f=v(l);if(f.fill(u),Le(e)&&e.im!==0){const h=v(l);return h.fill(e.im),x.tensor(f,[...c.shape],h)}return x.tensor(f,[...c.shape])}const n=[];let r=!1;for(const c of t)if(en(c))n.push(1);else if(T(c)){r=!0;for(let l=0;l<c.data.length;l++)if(Math.round(c.data[l])!==1)throw new C("Index exceeds array bounds");n.push(c.data.length)}else{if(Math.round(ee(c))!==1)throw new C("Index exceeds array bounds");n.push(1)}if(!r)return e;const s=n.reduce((c,l)=>c*l,1),o=O(e)?e:e.re,i=v(s);i.fill(o);const a=n.length>=2?n:[n[0],1];if(Le(e)&&e.im!==0){const c=v(s);return c.fill(e.im),x.tensor(i,a,c)}return x.tensor(i,a)}function OC(e,t){if(t.length===1)return eN(e,t[0]);if(e.shape.length>t.length){const n=[];for(let o=0;o<t.length-1;o++)n.push(e.shape[o]);let r=1;for(let o=t.length-1;o<e.shape.length;o++)r*=e.shape[o];n.push(r);const s=e.shape;e.shape=n;try{return t.length===2?fw(e,t[0],t[1]):mw(e,t)}finally{e.shape=s}}return t.length===2?fw(e,t[0],t[1]):mw(e,t)}function eN(e,t){if(en(t)){const n=e.imag?v(e.imag):void 0,r=x.tensor(v(e.data),[e.data.length,1],n);return e._isLogical===!0&&(r._isLogical=!0),r}if(Ce(t))return t?cu(e,0):x.tensor(v(0),[0,0]);if(O(t)){const n=Math.round(ee(t))-1;if(n<0||n>=e.data.length)throw new C("Index exceeds array bounds");return cu(e,n)}if(T(t))return aN(e,t);throw new C("Invalid index type for tensor")}function fw(e,t,n){const[r,s]=tt(e),o=e._isLogical===!0,i=m=>(o&&T(m)&&(m._isLogical=!0),m);if(O(t)&&en(n)){const m=Math.round(t)-1;if(m<0||m>=r)throw new C("Index exceeds array bounds");const p=v(s),d=e.imag?v(s):void 0;for(let g=0;g<s;g++)p[g]=e.data[m+g*r],d&&e.imag&&(d[g]=e.imag[m+g*r]);return i(x.tensor(p,[1,s],d))}if(en(t)&&O(n)){const m=Math.round(n)-1;if(m<0||m>=s)throw new C("Index exceeds array bounds");const p=m*r,d=v(r);for(let w=0;w<r;w++)d[w]=e.data[p+w];const g=e.imag?v(r):void 0;if(g&&e.imag)for(let w=0;w<r;w++)g[w]=e.imag[p+w];return i(x.tensor(d,[r,1],g))}const a=Un(t,r),c=Un(n,s),l=a.length,u=c.length;if(l===1&&u===1){const m=Ke(a[0],c[0],r);return cu(e,m)}const f=v(l*u),h=e.imag?v(l*u):void 0;for(let m=0;m<u;m++)for(let p=0;p<l;p++){const d=Ke(a[p],c[m],r),g=Ke(p,m,l);f[g]=e.data[d],h&&e.imag&&(h[g]=e.imag[d])}return i(x.tensor(f,[l,u],h))}function mw(e,t){const n=e.shape,r=t.map((d,g)=>{const w=g<n.length?n[g]:1;return Un(d,w)});if(r.every(d=>d.length===1)){const d=r.map(w=>w[0]),g=Nv(n,d);return cu(e,g)}const o=r.map(d=>d.length);for(;o.length>2&&o[o.length-1]===1;)o.pop();const i=o.reduce((d,g)=>d*g,1),a=v(i),c=e.imag?v(i):void 0,l=r.length,u=new Array(l);u[0]=1;for(let d=1;d<l;d++)u[d]=u[d-1]*(d-1<n.length?n[d-1]:1);const f=r.map((d,g)=>d.map(w=>w*u[g])),h=new Array(l).fill(0);let m=0;for(let d=0;d<l;d++)m+=f[d][0];for(let d=0;d<i;d++){a[d]=e.data[m],c&&e.imag&&(c[d]=e.imag[m]);for(let g=0;g<l;g++){const w=h[g];if(h[g]++,h[g]<r[g].length){m+=f[g][h[g]]-f[g][w];break}m-=f[g][w]-f[g][0],h[g]=0}}const p=x.tensor(a,o,c);return e._isLogical===!0&&(p._isLogical=!0),p}function tN(e,t){if(t.length===1)return nN(e,t[0]);if(t.length===2)return rN(e,t[0],t[1]);throw new C("Cell indexing supports 1 or 2 dimensions")}function nN(e,t){if(en(t))return x.cell([...e.data],[...e.shape]);if(T(t)){const r=[];if(t._isLogical){for(let o=0;o<t.data.length;o++)if(t.data[o]!==0){if(o>=e.data.length)throw new C("Cell index exceeds bounds");r.push(e.data[o])}}else for(let o=0;o<t.data.length;o++){const i=Math.round(t.data[o])-1;if(i<0||i>=e.data.length)throw new C("Cell index exceeds bounds");r.push(e.data[i])}const s=t.shape.length<=2&&(t.shape[0]===1||t.shape.length===2&&t.shape[1]===1);return t._isLogical||s?e.shape[1]===1&&e.shape[0]>1?x.cell(r,[r.length,1]):x.cell(r,[1,r.length]):x.cell(r,[...t.shape])}const n=Math.round(ee(t))-1;if(n<0||n>=e.data.length)throw new C("Cell index exceeds bounds");return x.cell([e.data[n]],[1,1])}function rN(e,t,n){const r=e.shape[0],s=e.shape.length>=2?e.shape[1]:1,{rowIndices:o,colIndices:i}=YC(t,n,r,s);if(!en(t)&&!en(n)&&!T(t)&&!T(n)){const c=i[0]*r+o[0];if(c<0||c>=e.data.length)throw new C("Cell index exceeds bounds");return x.cell([e.data[c]],[1,1])}const a=[];for(let c=0;c<i.length;c++)for(let l=0;l<o.length;l++){const u=i[c]*r+o[l];if(u<0||u>=e.data.length)throw new C("Cell index exceeds bounds");a.push(e.data[u])}return x.cell(a,[o.length,i.length])}function sN(e,t){const n=e.shape??(e.value.length===0?[0,0]:[1,e.value.length]),r=n[0],s=n[1]||0;if(t.length===1){const o=t[0];if(en(o))return e;if(T(o)&&o._isLogical){let a="";for(let c=0;c<o.data.length;c++)if(o.data[c]!==0){if(c>=e.value.length)throw new C("Index exceeds char array length");a+=e.value[c]}return x.char(a)}if(T(o)){let a="";for(let c=0;c<o.data.length;c++){const l=Math.round(o.data[c])-1;if(l<0||l>=e.value.length)throw new C("Index exceeds char array length");a+=e.value[l]}return x.char(a)}const i=Math.round(ee(o))-1;if(i<0||i>=e.value.length)throw new C("Index exceeds char array length");return x.char(e.value[i])}if(t.length===2){const o=t[0],i=t[1],a=f=>{if(T(f)&&f._isLogical){const h=[];for(let m=0;m<f.data.length;m++)f.data[m]!==0&&h.push(m);return h}return T(f)?Array.from(f.data,h=>Math.round(h)-1):[Math.round(ee(f))-1]},c=en(o)?Array.from({length:r},(f,h)=>h):a(o),l=en(i)?Array.from({length:s},(f,h)=>h):a(i);let u="";for(const f of c)for(const h of l){if(f<0||f>=r||h<0||h>=s)throw new C("Index exceeds char array dimensions");u+=e.value[f*s+h]}return c.length<=1?x.char(u):new ys(u,[c.length,l.length])}throw new C("Char indexing supports 1 or 2 dimensions")}function si(e,t){if(en(e))return Array.from({length:t},(n,r)=>r);if(T(e)){if(e._isLogical){const n=[];for(let r=0;r<e.data.length;r++)e.data[r]!==0&&n.push(r);return n}return Array.from(e.data,n=>Math.round(n)-1)}return Ce(e)?e?[0]:[]:[Math.round(ee(e))-1]}function oN(e,t){const[n,r]=e.shape,s=e.data.length;if(t.length===2){const l=si(t[0],n),u=si(t[1],r),f=[];for(const h of u){if(h<0||h>=r)throw new C("Index exceeds array bounds");for(const m of l){if(m<0||m>=n)throw new C("Index exceeds array bounds");f.push(e.data[h*n+m])}}return hn(f,[l.length,u.length])}if(t.length!==1)throw new C("String array indexing supports 1 or 2 subscripts");const o=t[0];if(en(o))return hn(e.data.slice(),[s,1]);const i=si(o,s),a=[];for(const l of i){if(l<0||l>=s)throw new C("Index exceeds array bounds");a.push(e.data[l])}let c;if(n===1||r===1)c=n===1?[1,a.length]:[a.length,1];else if(T(o)&&!o._isLogical){const l=o.shape,u=l.length>=2?l[0]:1;c=[u,a.length/(u||1)]}else T(o)&&o._isLogical?c=[a.length,1]:c=[1,a.length];return hn(a,c)}function iN(e,t){if(t.length===1){const c=t[0];if(en(c))return e;if(T(c)&&c.data.length===0)return x.tensor(v(0),[0,0]);if(T(c)){for(let h=0;h<c.data.length;h++)if(Math.round(c.data[h])!==1)throw new C("Index exceeds array bounds");const u=v(c.data.length);u.fill(e?1:0);const f=x.tensor(u,[...c.shape]);return f._isLogical=!0,f}if(Ce(c))return c?e:x.tensor(v(0),[0,0]);if(Math.round(ee(c))!==1)throw new C("Index exceeds array bounds");return e}const n=[];let r=!1;for(const c of t)if(en(c))n.push(1);else if(Ce(c)){if(!c)return x.tensor(v(0),[0,0]);n.push(1)}else if(T(c)){r=!0;for(let l=0;l<c.data.length;l++)if(Math.round(c.data[l])!==1)throw new C("Index exceeds array bounds");n.push(c.data.length)}else{if(Math.round(ee(c))!==1)throw new C("Index exceeds array bounds");n.push(1)}if(!r)return e;const s=n.reduce((c,l)=>c*l,1),o=v(s);o.fill(e?1:0);const i=n.length>=2?n:[n[0],1],a=x.tensor(o,i);return a._isLogical=!0,a}function aN(e,t){const n=e._isLogical===!0;if(t._isLogical){const h=[],m=[],p=e.imag!==void 0;for(let y=0;y<t.data.length;y++)if(t.data[y]!==0){if(y>=e.data.length)throw new C("Index exceeds array bounds");h.push(e.data[y]),p&&m.push(e.imag[y])}if(h.length===1)return p&&m[0]!==0?x.complex(h[0],m[0]):n?h[0]!==0:x.num(h[0]);const d=p&&m.some(y=>y!==0)?v(m):void 0,w=e.shape.length===2&&e.shape[0]===1?[1,h.length]:[h.length,1],_=x.tensor(v(h),w,d);return n&&(_._isLogical=!0),_}const r=[],s=e.imag!==void 0,o=[];for(let h=0;h<t.data.length;h++){const m=Math.round(t.data[h])-1;if(m<0||m>=e.data.length)throw new C("Index exceeds array bounds");r.push(e.data[m]),s&&o.push(e.imag[m])}const i=t.data.length===0&&t.shape.length===2&&t.shape[0]===0&&t.shape[1]===0,a=e.data.length!==1&&e.shape.length<=2&&(e.shape[0]===1||e.shape[1]===1||e.shape.length===1),c=t.shape.length<=2&&(t.shape[0]===1||t.shape[1]===1||t.shape.length===1),l=i?[0,0]:a&&c?e.shape[0]===1?[1,r.length]:[r.length,1]:t.shape,u=s&&o.some(h=>h!==0)?v(o):void 0,f=x.tensor(v(r),l,u);return n&&(f._isLogical=!0),f}function hw(e,t){if(O(e)||Le(e))return QC(e,t);if(T(e))return OC(e,t);if(ze(e))return tN(e,t);if(be(e))return sN(e,t);if(ve(e)&&t.length===1){if(Math.round(ee(t[0]))!==1)throw new C("Index exceeds string dimensions");return e}if(at(e))return oN(e,t);if(Ce(e))return iN(e,t);if(ut(e)||Ze(e)){if(t.length>=1&&t.every(r=>O(r)?Math.round(r)===1:Ce(r)?r===!0:T(r)?r.data.length===1&&Math.round(r.data[0])===1:!1))return e;throw new C("Index exceeds struct dimensions")}if(Ae(e))return GC(e,t);if(Vt(e)){if(t.length===1){const n=t[0];if(O(n)){const r=Math.round(n)-1;if(r<0||r>=e.elements.length)throw new C("Index exceeds struct array bounds");return e.elements[r]}if(T(n)){const r=[];for(let s=0;s<n.data.length;s++){const o=Math.round(n.data[s])-1;if(o<0||o>=e.elements.length)throw new C("Index exceeds struct array bounds");r.push(e.elements[o])}return x.structArray(e.fieldNames,r)}if(Ce(n)){const r=n?0:-1;if(r<0||r>=e.elements.length)throw new C("Index exceeds struct array bounds");return e.elements[r]}throw new C("Invalid index type for struct array")}throw new C("Struct array only supports single-index access")}throw new C(`Cannot index into ${Dn(e)}`)}function cN(e,t,n,r){if(T(n)&&n.data.length===0&&t.length===1)return lN(e,t[0]);if(T(n)&&n.data.length===0&&t.length===2){const s=e.shape[0]??1,o=e.shape.length>=2?e.shape[1]:1,i=en(t[0])?s:Un(t[0],s).length,a=en(t[1])?o:Un(t[1],o).length;return i===0||a===0?e:uN(e,t)}if(Yo(e)){const s=e.imag?v(e.imag):void 0,o=x.tensor(v(e.data),[...e.shape],s);o._isLogical=e._isLogical,e=o}if(t.length===1)return fN(e,t[0],n);if(t.length===2)return hN(e,t,n);if(t.length>=3)return gN(e,t,n);throw new C("Invalid number of indices for tensor assignment")}function lN(e,t){const n=new Set;if(O(t))n.add(Math.round(t)-1);else if(Ce(t))t&&n.add(0);else if(T(t)&&t._isLogical)for(let u=0;u<t.data.length;u++)t.data[u]!==0&&n.add(u);else if(T(t))for(let u=0;u<t.data.length;u++)n.add(Math.round(t.data[u])-1);else if(en(t)){const u=x.tensor(v(0),[0,0]);return u._isLogical=e._isLogical,u}if(n.size===0)return e;const r=[],s=[],o=e.imag!==void 0;for(let u=0;u<e.data.length;u++)n.has(u)||(r.push(e.data[u]),o&&s.push(e.imag[u]));const a=e.shape.length>=2&&e.shape[1]===1&&e.shape[0]!==1?[r.length,1]:[1,r.length],c=o&&s.some(u=>u!==0)?v(s):void 0,l=x.tensor(v(r),a,c);return l._isLogical=e._isLogical,l}function pw(e,t){const n=new Set;if(O(e))n.add(Math.round(e)-1);else if(Ce(e))e&&n.add(0);else if(T(e)&&e._isLogical)for(let r=0;r<e.data.length;r++)e.data[r]!==0&&n.add(r);else if(T(e))for(let r=0;r<e.data.length;r++)n.add(Math.round(e.data[r])-1);else if(en(e))for(let r=0;r<t;r++)n.add(r);return n}function uN(e,t){const n=e.shape[0]??1,r=e.shape.length>=2?e.shape[1]:1,s=e.imag!==void 0;if(en(t[1])){const o=pw(t[0],n),i=Array.from({length:n},(f,h)=>h).filter(f=>!o.has(f)),a=i.length,c=v(a*r),l=s?v(a*r):void 0;for(let f=0;f<r;f++)for(let h=0;h<i.length;h++){const m=i[h]+f*n,p=h+f*a;c[p]=e.data[m],l&&e.imag&&(l[p]=e.imag[m])}const u=x.tensor(c,[a,r],l);return u._isLogical=e._isLogical,u}if(en(t[0])){const o=pw(t[1],r),i=Array.from({length:r},(f,h)=>h).filter(f=>!o.has(f)),a=i.length,c=v(n*a),l=s?v(n*a):void 0;for(let f=0;f<i.length;f++){const h=i[f];for(let m=0;m<n;m++){const p=m+h*n,d=m+f*n;c[d]=e.data[p],l&&e.imag&&(l[d]=e.imag[p])}}const u=x.tensor(c,[n,a],l);return u._isLogical=e._isLogical,u}throw new C("Cannot delete from both row and column dimensions")}function fN(e,t,n){if(en(t)){if(T(n))if(n.data.length===1)n=n.imag&&n.imag[0]!==0?x.complex(n.data[0],n.imag[0]):x.num(n.data[0]);else{if(n.data.length!==e.data.length)throw new C("Subscripted assignment dimension mismatch");return e.data.set(n.data),(n.imag||e.imag)&&(rr(e),n.imag?e.imag.set(n.imag):e.imag.fill(0)),e}const{re:i,im:a}=Es(n);return e.data.fill(i),(a!==0||e.imag)&&(rr(e),e.imag.fill(a)),e}if(T(t))return mN(e,t,n);if(Ce(t)){if(!t)return e;const{re:i,im:a}=Es(n);if(e.data.length<1)throw new C("Index exceeds array bounds");return e.data[0]=i,(a!==0||e.imag)&&(rr(e),e.imag[0]=a),e}const{re:r,im:s}=Es(n),o=Math.round(ee(t))-1;if(o<0)throw new C("Index exceeds array bounds");if(o>=e.data.length){const i=v(o+1);i.set(e.data),i[o]=r;let a;(s!==0||e.imag)&&(a=v(o+1),e.imag&&a.set(e.imag),a[o]=s);const c=e.shape.length>=2&&e.shape[1]===1&&e.shape[0]>1;return x.tensor(i,c?[o+1,1]:[1,o+1],a)}return e.data[o]=r,(s!==0||e.imag)&&(rr(e),e.imag[o]=s),e}function mN(e,t,n){if(t._isLogical){T(n)&&n.data.length===1&&(n=n.imag&&n.imag[0]!==0?x.complex(n.data[0],n.imag[0]):x.num(n.data[0]));const{re:i,im:a}=T(n)?{re:null,im:null}:Es(n);let c=-1;for(let u=0;u<t.data.length;u++)t.data[u]!==0&&(c=u);if(c>=e.data.length){const u=c+1,f=v(u);f.set(e.data);let h;e.imag&&(h=v(u),h.set(e.imag));const p=e.shape.length>=2&&e.shape[1]===1&&e.shape[0]>1?[u,1]:[1,u];e=x.tensor(f,p,h)}let l=0;for(let u=0;u<t.data.length;u++)t.data[u]!==0&&(T(n)?(e.data[u]=n.data[l],(n.imag||e.imag)&&(rr(e),e.imag[u]=n.imag?n.imag[l]:0)):(e.data[u]=i,(a!==0||e.imag)&&(rr(e),e.imag[u]=a)),l++);if(T(n)&&l!==n.data.length)throw new C("Subscripted assignment dimension mismatch");return e}let r=-1;for(let i=0;i<t.data.length;i++){const a=Math.round(t.data[i])-1;if(a<0)throw new C("Index exceeds array bounds");a>r&&(r=a)}if(r>=e.data.length){const i=r+1,a=v(i);a.set(e.data);let c;e.imag&&(c=v(i),c.set(e.imag));const u=e.shape.length>=2&&e.shape[1]===1&&e.shape[0]>1?[i,1]:[1,i];e=x.tensor(a,u,c)}if(T(n)){if(t.data.length!==n.data.length)throw new C("Subscripted assignment dimension mismatch");(n.imag||e.imag)&&rr(e);for(let i=0;i<t.data.length;i++){const a=Math.round(t.data[i])-1;e.data[a]=n.data[i],e.imag&&(e.imag[a]=n.imag?n.imag[i]:0)}return e}const{re:s,im:o}=Es(n);(o!==0||e.imag)&&rr(e);for(let i=0;i<t.data.length;i++){const a=Math.round(t.data[i])-1;e.data[a]=s,e.imag&&(e.imag[a]=o)}return e}function hN(e,t,n){const[r,s]=tt(e),o=en(t[0]),i=en(t[1]),a=T(t[0]),c=T(t[1]);if(o&&i){if(T(n)){if(n.data.length!==e.data.length)throw new C("Subscripted assignment dimension mismatch");return e.data.set(n.data),(n.imag||e.imag)&&(rr(e),n.imag?e.imag.set(n.imag):e.imag.fill(0)),e}const{re:d,im:g}=Es(n);return e.data.fill(d),(g!==0||e.imag)&&(rr(e),e.imag.fill(g)),e}if(o&&!i&&!c)return pN(e,t[1],n,r,s);if(!o&&!a&&i)return dN(e,t[0],n,r,s);if(a||c){const d=e.data.length===0;let g=s,w=r;if(d&&T(n)){const[$,S]=tt(n);o&&!i&&(w=$),i&&!o&&(g=S)}const _=o?Array.from({length:w},($,S)=>S):Un(t[0],r,0),y=i?Array.from({length:g},($,S)=>S):Un(t[1],s,0),b=_.length>0?Math.max(..._)+1:w,k=y.length>0?Math.max(...y)+1:g;e=lu(e,b,k);const[M]=tt(e);return JC(e,_,y,n,M),e}if(Ce(t[0])&&!t[0]||Ce(t[1])&&!t[1])return e;const{re:l,im:u}=Es(n),f=Ce(t[0])?0:Math.round(ee(t[0]))-1,h=Ce(t[1])?0:Math.round(ee(t[1]))-1;if(f<0||h<0)throw new C("Index exceeds array bounds");e=lu(e,f+1,h+1);const[m]=tt(e),p=Ke(f,h,m);return e.data[p]=l,(u!==0||e.imag)&&(rr(e),e.imag[p]=u),e}function uu(e,t,n){if(T(n)){if(n.data.length!==t.length)throw new C("Subscripted assignment dimension mismatch");(n.imag||e.imag)&&rr(e);for(let r=0;r<t.length;r++)e.data[t[r]]=n.data[r],e.imag&&(e.imag[t[r]]=n.imag?n.imag[r]:0)}else{const{re:r,im:s}=Es(n);(s!==0||e.imag)&&rr(e);for(const o of t)e.data[o]=r,e.imag&&(e.imag[o]=s)}}function pN(e,t,n,r,s){if(Ce(t)){if(!t)return e;const u=Array.from({length:r},(f,h)=>Ke(h,0,r));return uu(e,u,n),e}const o=Math.round(ee(t))-1;if(o<0)throw new C("Index exceeds array bounds");let i=r,a=s;if(i===0&&T(n)&&n.data.length>0){i=n.data.length;const u=o+1;e=x.tensor(v(i*u),[i,u]),a=u}else if(i===0&&(O(n)||Ce(n))){i=1;const u=o+1;e=x.tensor(v(i*u),[i,u]),a=u}o>=a&&(e=lu(e,i,o+1));const[c]=tt(e),l=Array.from({length:c},(u,f)=>Ke(f,o,c));return uu(e,l,n),e}function dN(e,t,n,r,s){if(Ce(t)){if(!t)return e;const f=Array.from({length:s},(h,m)=>Ke(0,m,r));return uu(e,f,n),e}const o=Math.round(ee(t))-1;if(o<0)throw new C("Index exceeds array bounds");let i=r,a=s;if(a===0&&T(n)&&n.data.length>0){a=n.data.length;const f=o+1;e=x.tensor(v(f*a),[f,a]),i=f}else if(a===0&&(O(n)||Ce(n))){a=1;const f=o+1;e=x.tensor(v(f*a),[f,a]),i=f}o>=i&&(e=lu(e,o+1,a));const[c,l]=tt(e),u=Array.from({length:l},(f,h)=>Ke(o,h,c));return uu(e,u,n),e}function gN(e,t,n){let r=[...e.shape];const s=T(n)?n:null,o=s?s.shape:null;let i=0;const a=t.map((g,w)=>{const _=w<r.length?r[w]:1;if(en(g)){if((_===0||w>=r.length)&&o){const b=i<o.length?o[i]:1;return i++,Array.from({length:b},(k,M)=>M)}return i++,Array.from({length:_},(b,k)=>k)}return Un(g,_,0)}),c=[...r];for(;c.length<t.length;)c.push(1);let l=!1;for(let g=0;g<a.length;g++)for(const w of a[g])w>=c[g]&&(c[g]=w+1,l=!0);if(l||e.data.length===0){const g=c.reduce((y,b)=>y*b,1),w=v(g),_=e.imag?v(g):void 0;if(e.data.length>0){const y=[...r];for(;y.length<c.length;)y.push(1);const b=e.data.length,k=y.length,M=new Array(k);M[0]=1;for(let E=1;E<k;E++)M[E]=M[E-1]*c[E-1];const $=new Array(k).fill(0);let S=0;for(let E=0;E<b;E++){w[S]=e.data[E],_&&e.imag&&(_[S]=e.imag[E]);for(let D=0;D<k&&($[D]++,S+=M[D],!($[D]<y[D]));D++)S-=$[D]*M[D],$[D]=0}}for(;c.length>2&&c[c.length-1]===1;)c.pop();e=x.tensor(w,c,_),r=c}const f=a.map(g=>g.length).reduce((g,w)=>g*w,1),h=a.length,m=new Array(h);m[0]=1;for(let g=1;g<h;g++)m[g]=m[g-1]*(g-1<r.length?r[g-1]:1);const p=a.map((g,w)=>g.map(_=>_*m[w])),d=g=>{const w=new Array(h).fill(0);let _=0;for(let y=0;y<h;y++)_+=p[y][0];for(let y=0;y<f;y++){g(_,y);for(let b=0;b<h;b++){const k=w[b];if(w[b]++,w[b]<a[b].length){_+=p[b][w[b]]-p[b][k];break}_-=p[b][k]-p[b][0],w[b]=0}}};if(T(n)){if(n.data.length!==f)throw new C("Subscripted assignment dimension mismatch");const g=n.imag!==void 0;(g||e.imag)&&rr(e),d((w,_)=>{e.data[w]=n.data[_],e.imag&&(e.imag[w]=g?n.imag[_]:0)})}else{const{re:g,im:w}=Es(n);(w!==0||e.imag)&&rr(e),d(_=>{e.data[_]=g,e.imag&&(e.imag[_]=w)})}return e}function wN(e,t,n,r=!1,s){Yo(e)&&(e=x.cell(e.data.slice(),[...e.shape]));const o=i=>{const a=e,c=a.data.length;if(c===i)return;const l=a.shape[0]>1&&a.shape[1]===1;a.shape=l?[c,1]:[1,c]};if(t.length===1)return _N(e,t[0],n,o,r,s);if(t.length===2)return yN(e,t,n,r,s);throw new C("Cannot index-assign into cell")}function zh(e,t){const n=x.tensor(v(0),[0,0]);t&&n.incref(),e.data.push(n)}function oi(e,t,n,r){r?e.bindElement(r,t,n):e.data[t]=n}function _N(e,t,n,r,s=!1,o){if(en(t)){const l=e.data.length;if(l===1&&!ze(n))return oi(e,0,n,o),e;if(!ze(n)||n.data.length!==l&&n.data.length!==1)throw new C("Subscripted assignment dimension mismatch");const u=n.data.length===1;for(let f=0;f<l;f++)oi(e,f,u?n.data[0]:n.data[f],o);return e}if(T(t)){let l;if(t._isLogical){l=[];for(let m=0;m<t.data.length;m++)t.data[m]!==0&&l.push(m)}else l=Array.from(t.data).map(m=>Math.round(m)-1);if(l.length===1&&!ze(n)){const m=l[0];if(m<0)throw new C("Cell index exceeds bounds");const p=e.data.length;for(;e.data.length<=m;)zh(e,o);return oi(e,m,n,o),r(p),e}if(!ze(n)||n.data.length!==l.length&&n.data.length!==1)throw new C("Subscripted assignment dimension mismatch");const u=n.data.length===1,f=e.data.length;let h=-1;for(let m=0;m<l.length;m++){const p=l[m];if(p<0)throw new C("Cell index exceeds bounds");p>h&&(h=p)}for(;e.data.length<=h;)zh(e,o);for(let m=0;m<l.length;m++){const p=l[m];oi(e,p,u?n.data[0]:n.data[m],o)}return r(f),e}const i=Math.round(ee(t))-1;if(i<0)throw new C("Cell index exceeds bounds");const a=e.data.length;if(i>=e.data.length)for(;e.data.length<=i;)zh(e,o);const c=s&&ze(n)&&n.data.length===1?n.data[0]:n;return oi(e,i,c,o),r(a),e}function yN(e,t,n,r=!1,s){let o=e.shape[0],i=e.shape.length>=2?e.shape[1]:1;const a=Un(t[0],o,0),c=Un(t[1],i,0),l=Math.max(...a)+1,u=Math.max(...c)+1,f=Math.max(o,l),h=Math.max(i,u);if(f>o||h>i){const g=new Array(f*h);for(let w=0;w<g.length;w++){const _=x.tensor(v(0),[0,0]);s&&_.incref(),g[w]=_}for(let w=0;w<i;w++)for(let _=0;_<o;_++){const y=g[w*f+_];g[w*f+_]=e.data[w*o+_],s&&mn(s,y)}e.data=g,e.shape=[f,h],o=f,i=h}const m=a.length,p=c.length,d=m*p;if(r&&ze(n)){if(n.data.length!==d&&n.data.length!==1)throw new C("Subscripted assignment dimension mismatch");const g=n.data.length===1;let w=0;for(let _=0;_<p;_++)for(let y=0;y<m;y++){const b=c[_]*o+a[y];oi(e,b,g?n.data[0]:n.data[w++],s)}}else{const g=c[0]*o+a[0];oi(e,g,n,s)}return e}function _c(e,t,n,r=!1,s){if(Ae(e))return uw(e,t,n);if(Ae(n)&&T(e)){const o=n,i=v(o.m*o.n),a=o.pi?v(o.m*o.n):void 0;for(let c=0;c<o.n;c++)for(let l=o.jc[c];l<o.jc[c+1];l++){const u=c*o.m+o.ir[l];i[u]=o.pr[l],a&&o.pi&&(a[u]=o.pi[l])}n=x.tensor(i,[o.m,o.n],a)}if(T(e))return cN(e,t,n);if(ze(e))return wN(e,t,n,r,s);throw new C(`Cannot index-assign into ${Dn(e)}`)}function ca(e,t,n){let r;if(t>0||t<0?r=Math.max(0,Math.floor((n-e)/t+1+1e-10)):r=0,r===0)return x.tensor(v(0),[1,0]);const s=v(r);for(let o=0;o<r;o++)s[o]=e+o*t;if(r>1){const o=e+(r-1)*t,i=Math.abs(t);Math.abs(o-n)<i*1e-10&&(s[r-1]=n)}return x.tensor(s,[1,r])}function yc(...e){if(e.length===0)return x.tensor(v(0),[0,0]);if(e.length===1)return e[0];if(e.some(t=>Ae(t)))return _w(e,1);if(e.some(t=>ze(t)))return xw(e,1);if(e.some(t=>ve(t)||at(t)))return dw(e,1);if(e.some(t=>be(t))){let t="";for(const n of e)if(be(n))t+=n.value;else if(O(n))t+=String.fromCharCode(Math.round(n));else throw new C(`Cannot concatenate ${Dn(n)} into char`);return x.char(t)}return e.some(t=>ut(t)||Vt(t))?gw(e):yw(e,1)}function Uh(...e){return e.length===0?x.tensor(v(0),[0,0]):e.length===1?e[0]:e.some(t=>Ae(t))?_w(e,0):e.some(t=>ze(t))?xw(e,0):e.some(t=>ve(t)||at(t))?dw(e,0):e.some(t=>be(t))?bN(e):e.some(t=>ut(t)||Vt(t))?gw(e):yw(e,0)}function xN(e){if(ve(e))return{data:[e],rows:1,cols:1};if(at(e))return e.data.length===0?null:{data:e.data.slice(),rows:e.shape[0],cols:e.shape[1]};if(be(e)){const t=e.shape?e.shape[0]:1,n=e.shape?e.shape[1]:e.value.length;if(t<=1)return{data:[e.value],rows:1,cols:1};const r=[];for(let s=0;s<t;s++)r.push(e.value.slice(s*n,(s+1)*n));return{data:r,rows:t,cols:1}}if(O(e))return{data:[ec(e)],rows:1,cols:1};if(Ce(e))return{data:[e?"true":"false"],rows:1,cols:1};if(T(e)){if(e.data.length===0)return null;const t=e.shape.length>=2?e.shape[0]:1,n=e.data.length/(t||1),r=[];for(let s=0;s<e.data.length;s++)r.push(e._isLogical?e.data[s]?"true":"false":ec(e.data[s]));return{data:r,rows:t,cols:n}}throw new C(`Cannot concatenate ${Dn(e)} into string array`)}function dw(e,t){const n=[];for(const a of e){const c=xN(a);c&&n.push(c)}if(n.length===0)return x.stringArray([],[0,0]);if(t===1){const a=n[0].rows;let c=0;for(const u of n){if(u.rows!==a)throw new C("Dimensions of arrays being concatenated are not consistent");c+=u.cols}const l=[];for(const u of n)l.push(...u.data);return hn(l,[a,c])}const r=n[0].cols;let s=0;for(const a of n){if(a.cols!==r)throw new C("Dimensions of arrays being concatenated are not consistent");s+=a.rows}const o=new Array(s*r);let i=0;for(const a of n){for(let c=0;c<r;c++)for(let l=0;l<a.rows;l++)o[c*s+i+l]=a.data[c*a.rows+l];i+=a.rows}return hn(o,[s,r])}function bN(e){let t=null,n=0,r="";for(const s of e){let o,i,a;if(be(s))o=s.shape?s.shape[0]:1,i=s.shape?s.shape[1]:s.value.length,a=s.value;else if(ve(s))o=1,i=s.length,a=s;else if(O(s))o=1,i=1,a=String.fromCharCode(Math.round(s));else if(T(s)){const c=s,l=c.shape[0]??0,u=c.shape[1]??0;o=l,i=u;let f="";for(let h=0;h<l;h++)for(let m=0;m<u;m++)f+=String.fromCharCode(Math.round(c.data[m*l+h]));a=f}else throw new C(`Cannot concatenate ${Dn(s)} into char`);if(t===null)t=i;else if(i!==t)throw new C("Dimensions of arrays being concatenated are not consistent");n+=o,r+=a}return n<=1?x.char(r):new ys(r,[n,t??0])}function gw(e){const t=[];let n=null;for(const r of e)if(ut(r)){const s=Array.from(r.fields.keys());if(n===null)n=s;else if(!ww(n,s))throw new C("Cannot concatenate structs with different field names");t.push(r)}else if(Vt(r)){if(n===null)n=[...r.fieldNames];else if(!ww(n,r.fieldNames))throw new C("Cannot concatenate struct arrays with different field names");for(const s of r.elements)t.push(s)}else{if(T(r)&&r.data.length===0&&r.shape.every(s=>s===0))continue;throw new C(`Cannot concatenate ${Dn(r)} into struct`)}return n===null&&(n=[]),x.structArray(n,t)}function ww(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function kN(e){if(Ae(e))return e;if(O(e))return e===0?x.sparseMatrix(1,1,new Int32Array(0),new Int32Array([0,0]),v(0)):x.sparseMatrix(1,1,new Int32Array([0]),new Int32Array([0,1]),v([e]));if(Ce(e)){const t=e?1:0;return t===0?x.sparseMatrix(1,1,new Int32Array(0),new Int32Array([0,0]),v(0)):x.sparseMatrix(1,1,new Int32Array([0]),new Int32Array([0,1]),v([t]))}if(Le(e))return e.re===0&&e.im===0?x.sparseMatrix(1,1,new Int32Array(0),new Int32Array([0,0]),v(0)):x.sparseMatrix(1,1,new Int32Array([0]),new Int32Array([0,1]),v([e.re]),e.im!==0?v([e.im]):void 0);if(T(e)){const t=e.shape[0]??1,n=e.shape.length>=2?e.shape[1]:1,r=e.imag!==void 0,s=[],o=[],i=[],a=new Int32Array(n+1);for(let c=0;c<n;c++){a[c]=s.length;for(let l=0;l<t;l++){const u=c*t+l,f=e.data[u],h=r?e.imag[u]:0;(f!==0||h!==0)&&(s.push(l),o.push(f),r&&i.push(h))}}return a[n]=s.length,x.sparseMatrix(t,n,new Int32Array(s),a,v(o),r?v(i):void 0)}throw new C(`Cannot concatenate ${Dn(e)} into sparse matrix`)}function _w(e,t){const n=e.map(kN).filter(r=>r.m>0||r.n>0);if(n.length===0)return x.sparseMatrix(0,0,new Int32Array(0),new Int32Array([0]),v(0));if(n.length===1)return n[0];if(t===1){const r=n[0].m;for(let m=1;m<n.length;m++)if(n[m].m!==r&&n[m].m>0)throw new C("Dimensions of arrays being concatenated are not consistent");const s=n.reduce((m,p)=>m+p.n,0),o=n.some(m=>m.pi!==void 0),i=n.reduce((m,p)=>m+p.jc[p.n],0),a=new Int32Array(i),c=v(i),l=o?v(i):void 0,u=new Int32Array(s+1);let f=0,h=0;for(const m of n){const p=m.jc[m.n];for(let d=0;d<p;d++)a[f+d]=m.ir[d],c[f+d]=m.pr[d],l&&(l[f+d]=m.pi?m.pi[d]:0);for(let d=0;d<m.n;d++)u[h+d]=m.jc[d]+f;f+=p,h+=m.n}return u[s]=f,x.sparseMatrix(r,s,a,u,c,l)}else{const r=n[0].n;for(let h=1;h<n.length;h++)if(n[h].n!==r&&n[h].n>0)throw new C("Dimensions of arrays being concatenated are not consistent");const s=n.reduce((h,m)=>h+m.m,0),o=n.some(h=>h.pi!==void 0),i=n.reduce((h,m)=>h+m.jc[m.n],0),a=new Int32Array(i),c=v(i),l=o?v(i):void 0,u=new Int32Array(r+1);let f=0;for(let h=0;h<r;h++){u[h]=f;let m=0;for(const p of n){for(let d=p.jc[h];d<p.jc[h+1];d++)a[f]=p.ir[d]+m,c[f]=p.pr[d],l&&(l[f]=p.pi?p.pi[d]:0),f++;m+=p.m}}return u[r]=f,x.sparseMatrix(s,r,a,u,c,l)}}function yw(e,t){const n=e.every(g=>Ce(g)||T(g)&&g._isLogical===!0);let r=e.map(g=>{if(O(g))return x.tensor(v([g]),[1,1]);if(Ce(g)){const w=x.tensor(v([g?1:0]),[1,1]);return w._isLogical=!0,w}if(Le(g))return x.tensor(v([g.re]),[1,1],v([g.im]));if(T(g))return g;throw new C(`Cannot concatenate ${Dn(g)} into matrix`)});if(r=r.filter(g=>g.shape.some(w=>w>0)),r.length===0)return x.tensor(v(0),[0,0]);if(r.length===1)return r[0];const s=Math.max(2,...r.map(g=>g.shape.length));let o=r.map(g=>{const w=[...g.shape];for(;w.length<s;)w.push(1);return w});const i=r.findIndex(g=>g.data.length>0);if(i>=0){const g=o[i],w=r.map((_,y)=>{if(_.data.length>0)return!0;for(let b=0;b<s;b++)if(b!==t&&o[y][b]!==g[b])return!1;return!0});if(r=r.filter((_,y)=>w[y]),o=o.filter((_,y)=>w[y]),r.length===0)return x.tensor(v(0),[0,0]);if(r.length===1)return r[0]}const a=o[0];for(let g=1;g<o.length;g++)for(let w=0;w<s;w++)if(w!==t&&o[g][w]!==a[w])throw new C("Dimensions of arrays being concatenated are not consistent");const c=[...a];c[t]=o.reduce((g,w)=>g+w[t],0);const l=Dr(c),u=r.some(g=>g.imag!==void 0),f=v(l),h=u?v(l):void 0;let m=1;for(let g=0;g<t;g++)m*=c[g];let p=1;for(let g=t+1;g<s;g++)p*=c[g];for(let g=0;g<p;g++){let w=g*m*c[t];for(let _=0;_<r.length;_++){const y=o[_][t],b=m*y,k=g*b;if(f.set(r[_].data.subarray(k,k+b),w),h){const M=r[_].imag;M&&h.set(M.subarray(k,k+b),w)}w+=b}}const d=x.tensor(f,c,h);return n&&(d._isLogical=!0),d}function vN(e){return be(e)?e.value.length===0:T(e)?e.data.length===0:!1}function xw(e,t){let n=[];for(const f of e)if(ze(f))n.push(f);else{if(vN(f))continue;n.push(x.cell([f],[1,1]))}if(n=n.filter(f=>f.data.length>0),n.length===0)return x.cell([],[0,0]);if(n.length===1)return n[0];const r=Math.max(2,...n.map(f=>f.shape.length)),s=n.map(f=>{const h=[...f.shape];for(;h.length<r;)h.push(1);return h}),o=s[0];for(let f=1;f<s.length;f++)for(let h=0;h<r;h++)if(h!==t&&s[f][h]!==o[h])throw new C("Dimensions of arrays being concatenated are not consistent");const i=[...o];i[t]=s.reduce((f,h)=>f+h[t],0);const a=Dr(i),c=new Array(a);let l=1;for(let f=0;f<t;f++)l*=i[f];let u=1;for(let f=t+1;f<r;f++)u*=i[f];for(let f=0;f<u;f++){let h=f*l*i[t];for(let m=0;m<n.length;m++){const p=s[m][t],d=l*p,g=f*d;for(let w=0;w<d;w++)c[h+w]=n[m].data[g+w];h+=d}}return x.cell(c,i)}const Is={r:[1,0,0],g:[0,1,0],b:[0,0,1],c:[0,1,1],m:[1,0,1],y:[1,1,0],k:[0,0,0],w:[1,1,1]},bw={red:[1,0,0],green:[0,1,0],blue:[0,0,1],cyan:[0,1,1],magenta:[1,0,1],yellow:[1,1,0],black:[0,0,0],white:[1,1,1]};function ln(e){if(typeof e=="string"){const t=e.toLowerCase();return Is[t]?Is[t]:bw[t]?bw[t]:void 0}if(ve(e)||be(e))return ln(ve(e)?e:e.value);if(T(e)&&e.data.length===3)return[e.data[0],e.data[1],e.data[2]]}const MN=new Set(["r","g","b","c","m","y","k","w"]),$N=new Set(["o","+","*",".","x","_","|","s","d","^","v","<",">","p","h"]);function Fs(e){const t={};let n=0;for(;n<e.length;){if(n+1<e.length){const s=e.slice(n,n+2);if(s==="--"||s==="-."){if(t.lineStyle!==void 0)return null;t.lineStyle=s,n+=2;continue}}const r=e[n];if(r==="-"||r===":"){if(t.lineStyle!==void 0)return null;t.lineStyle=r,n++;continue}if(MN.has(r)){if(t.color!==void 0)return null;t.color=r,n++;continue}if($N.has(r)){if(t.marker!==void 0)return null;t.marker=r,n++;continue}return null}return t.color===void 0&&t.lineStyle===void 0&&t.marker===void 0?null:t}const CN=new Set(["color","linestyle","linewidth","marker","markersize","markeredgecolor","markerfacecolor","markerindices"]);function Pr(e){if(!ve(e)&&!be(e))return null;const t=ve(e)?e.toLocaleLowerCase():e.value.toLowerCase();return CN.has(t)?t:null}function Ft(e){if(typeof e=="number"||typeof e=="boolean")return!0;if(e&&typeof e=="object"&&"kind"in e){const t=e;return O(t)||T(t)||Ce(t)}return!1}function Yt(e){if(typeof e=="string")return!0;if(e&&typeof e=="object"&&"kind"in e){const t=e;return ve(t)||be(t)}return!1}function jt(e){return ve(e)?e:be(e)?e.value:de(e)}function Ge(e){return O(e)?[e]:T(e)?Array.from(e.data):Ce(e)?[e?1:0]:[0]}function kw(e,t){const n=e.shape[0],r=t*n,s=new Array(n);for(let o=0;o<n;o++)s[o]=e.data[r+o];return s}function xc(e){return T(e)&&e.shape.length>=2&&e.shape[0]>1&&e.shape[1]>1?e.shape[1]:1}function fu(e){const t=new Array(e);for(let n=0;n<e;n++)t[n]=n+1;return t}function ii(e){if(T(e)&&e.shape.length>=2&&e.shape[0]>1&&e.shape[1]>1){const t=[];for(let n=0;n<e.shape[1];n++)t.push(kw(e,n));return t}return[Ge(e)]}function Fo(e){const t=[];let n=0;for(;n<e.length&&!(Yt(e[n])&&Pr(e[n]));){if(!Ft(e[n])){if(Yt(e[n])&&t.length>0&&Fs(jt(e[n]))){n++;continue}break}const r=e[n];n++;let s;n<e.length&&Ft(e[n])&&(s=e[n],n++);let o;if(n<e.length&&Yt(e[n])&&!Pr(e[n])){const i=Fs(jt(e[n]));i&&(o=i,n++)}s!==void 0?SN(r,s,o,t):NN(r,o,t)}for(;n<e.length;){const r=Pr(e[n]);if(!r||(n++,n>=e.length))break;const s=e[n];n++,Kh(t,r,s)}return t}function NN(e,t,n){const r=ii(e);for(const s of r){const o=fu(s.length);n.push(bc(o,s,t))}}function SN(e,t,n,r){const s=xc(e),o=xc(t);if(s===1&&o===1)r.push(bc(Ge(e),Ge(t),n));else if(s===1&&o>1){const i=Ge(e),a=ii(t);for(const c of a)r.push(bc(i,c,n))}else if(s>1&&o>1&&s===o){const i=ii(e),a=ii(t);for(let c=0;c<s;c++)r.push(bc(i[c],a[c],n))}else r.push(bc(Ge(e),Ge(t),n))}function bc(e,t,n){const r={x:e,y:t};return n&&(n.color&&(r.color=Is[n.color]),n.lineStyle&&(r.lineStyle=n.lineStyle),n.marker&&(r.marker=n.marker,n.lineStyle||(r.lineStyle="none"))),r}function Wh(e){const t=[];let n=0;for(;n<e.length&&!(Yt(e[n])&&Pr(e[n])||!Ft(e[n])||n+1>=e.length||!Ft(e[n+1])||n+2>=e.length||!Ft(e[n+2]));){const r=e[n],s=e[n+1],o=e[n+2];n+=3;let i;if(n<e.length&&Yt(e[n])&&!Pr(e[n])){const a=Fs(jt(e[n]));a&&(i=a,n++)}AN(r,s,o,i,t)}for(;n<e.length;){const r=Pr(e[n]);if(!r||(n++,n>=e.length))break;const s=e[n];n++,Xh(t,r,s)}return t}function AN(e,t,n,r,s){const o=xc(e),i=xc(t),a=xc(n),c=Math.max(o,i,a);if(c===1)s.push(vw(Ge(e),Ge(t),Ge(n),r));else{const l=ii(e),u=ii(t),f=ii(n);for(let h=0;h<c;h++)s.push(vw(l[Math.min(h,l.length-1)],u[Math.min(h,u.length-1)],f[Math.min(h,f.length-1)],r))}}function vw(e,t,n,r){const s={x:e,y:t,z:n};return r&&(r.color&&(s.color=Is[r.color]),r.lineStyle&&(s.lineStyle=r.lineStyle),r.marker&&(s.marker=r.marker,r.lineStyle||(s.lineStyle="none"))),s}function Xh(e,t,n){switch(t){case"color":{const r=ln(n);if(r)for(const s of e)s.color=r;break}case"linestyle":{const r=jt(n);for(const s of e)s.lineStyle=r;break}case"linewidth":{const r=typeof n=="number"?n:ee(n);for(const s of e)s.lineWidth=r;break}case"marker":{const r=jt(n);for(const s of e)s.marker=r==="none"?void 0:r;break}case"markersize":{const r=typeof n=="number"?n:ee(n);for(const s of e)s.markerSize=r;break}case"markeredgecolor":{const r=ln(n);if(r)for(const s of e)s.markerEdgeColor=r;break}case"markerfacecolor":{const r=ln(n);if(r)for(const s of e)s.markerFaceColor=r;break}case"markerindices":{const r=Ge(n);for(const s of e)s.markerIndices=r;break}}}function mu(e){return!!e&&typeof e=="object"&&"kind"in e&&(e.kind==="graphics_handle"||e.kind==="dummy_handle")}function EN(e){let t=e;if(t.length>0&&mu(t[0])&&(t=t.slice(1)),t.length===0)return{kind:"2d",traces:[{x:[0,1],y:[0,1]}]};if(Yt(t[0]))return IN(t);let n=0;for(let r=0;r<t.length&&Ft(t[r]);r++)n++;return n>=3?{kind:"3d",traces:Wh(t)}:{kind:"2d",traces:Fo(t)}}function IN(e){let t,n,r;const s=[];let o=0;for(;o+1<e.length&&Yt(e[o]);){const a=jt(e[o]).toLowerCase(),c=e[o+1];a==="xdata"?t=Ge(c):a==="ydata"?n=Ge(c):a==="zdata"?r=Ge(c):s.push(e[o],c),o+=2}if(t||(t=[0,1]),n||(n=[0,1]),r){const a={x:t,y:n,z:r,color:[0,0,0]};for(let c=0;c+1<s.length;c+=2){const l=Pr(s[c]);l&&Xh([a],l,s[c+1])}return{kind:"3d",traces:[a]}}const i={x:t,y:n,color:[0,0,0]};for(let a=0;a+1<s.length;a+=2){const c=Pr(s[a]);c&&Kh([i],c,s[a+1])}return{kind:"2d",traces:[i]}}function hu(e){if(Yt(e)){const t=jt(e).toLowerCase().replace(/^["']|["']$/g,"");return t==="flat"||t==="interp"||t==="none"?t:t==="auto"?void 0:ln(t)}return ln(e)}function pu(e){if(T(e)&&e.shape.length>=2&&e.shape[1]===3){const t=e.shape[0],n=[];for(let r=0;r<t;r++)n.push([e.data[r],e.data[t+r],e.data[2*t+r]]);return n}return Ge(e)}const Hh=new Set(["facecolor","edgecolor","facealpha","linewidth","linestyle","marker","markerfacecolor","facevertexcdata","cdata","xdata","ydata","zdata","faces","vertices"]);function kc(e,t,n){const r=At(e),s=At(t),o=n?At(n):void 0;let i=r.rows,a=r.cols;(i===1||a===1)&&(i=r.data.length,a=1);const c=[],l=[];for(let u=0;u<a;u++){const f=[];for(let h=0;h<i;h++){const m=u*i+h,p=r.data[m],d=s.data[Math.min(m,s.data.length-1)],g=o?[p,d,o.data[Math.min(m,o.data.length-1)]]:[p,d];f.push(c.length),c.push(g)}l.push(f)}return{vertices:c,faces:l,rows:i,cols:a}}function Mw(e,t,n,r){if(Yt(t)){const i=hu(t);i&&(e.faceColor=i);return}const s=At(t),o=s.data.length;o===1?(e.faceColor="flat",e.faceVertexCData=new Array(n).fill(s.data[0])):s.rows===1&&s.cols===3?e.faceColor=[s.data[0],s.data[1],s.data[2]]:o===r&&r!==n?(e.faceColor="interp",e.faceVertexCData=pu(t)):(e.faceColor="flat",e.faceVertexCData=pu(t))}function du(e,t,n){for(let r=n;r+1<t.length&&Yt(t[r]);r+=2){const s=jt(t[r]).toLowerCase(),o=t[r+1];gu(e,s,o)}}function gu(e,t,n){switch(t){case"facecolor":{const r=hu(n);r&&(e.faceColor=r);break}case"edgecolor":{const r=hu(n);r&&(e.edgeColor=r);break}case"facealpha":e.faceAlpha=ee(n);break;case"linewidth":e.lineWidth=ee(n);break;case"linestyle":e.lineStyle=jt(n);break;case"marker":e.marker=jt(n);break;case"markerfacecolor":{const r=Yt(n)?jt(n).toLowerCase():"";if(r==="flat"||r==="none")e.markerFaceColor=r;else{const s=ln(n);s&&(e.markerFaceColor=s)}break}case"facevertexcdata":case"cdata":e.faceVertexCData=pu(n);break}}function $w(e,t){const n=At(t),r=n.rows,o=n.cols>=3,i=[];for(let l=0;l<r;l++){const u=n.data[l],f=n.data[r+l];i.push(o?[u,f,n.data[2*r+l]]:[u,f])}const a=At(e),c=[];for(let l=0;l<a.rows;l++){const u=[];for(let f=0;f<a.cols;f++){const h=a.data[f*a.rows+l];Number.isFinite(h)&&u.push(h-1)}u.length>0&&c.push(u)}return{vertices:i,faces:c,is3D:o}}function FN(e){const t=a=>{for(const[c,l]of e.fields)if(c.toLowerCase()===a)return l},n={vertices:[],faces:[]},r=t("faces"),s=t("vertices"),o=t("xdata"),i=t("ydata");if(r&&s){const a=$w(r,s);n.vertices=a.vertices,n.faces=a.faces,n.is3D=a.is3D}else if(o&&i){const a=t("zdata"),c=kc(o,i,a);n.vertices=c.vertices,n.faces=c.faces,n.is3D=!!a}for(const[a,c]of e.fields){const l=a.toLowerCase();l==="faces"||l==="vertices"||l==="xdata"||l==="ydata"||l==="zdata"||gu(n,l,c)}return n}function jN(e){let t=e;if(t.length>0&&mu(t[0])&&(t=t.slice(1)),t.length===0)throw new Error("patch requires input arguments");if(t.length===1&&ut(t[0]))return wu(FN(t[0]));const n={vertices:[],faces:[]};if(Yt(t[0])){const c={};for(let l=0;l+1<t.length&&Yt(t[l]);l+=2)c[jt(t[l]).toLowerCase()]=t[l+1];if(c.faces&&c.vertices){const l=$w(c.faces,c.vertices);n.vertices=l.vertices,n.faces=l.faces,n.is3D=l.is3D}else if(c.xdata&&c.ydata){const l=kc(c.xdata,c.ydata,c.zdata);n.vertices=l.vertices,n.faces=l.faces,n.is3D=!!c.zdata}for(const[l,u]of Object.entries(c))l==="faces"||l==="vertices"||l==="xdata"||l==="ydata"||l==="zdata"||gu(n,l,u);return wu(n)}let r=0;for(let c=0;c<t.length&&Ft(t[c]);c++)r++;if(r<2)throw new Error("patch: expected X and Y coordinates");let s=!1;if(r>=4)s=!0;else if(r===3&&t[3]!==void 0&&Yt(t[3])){const c=jt(t[3]).toLowerCase();!Hh.has(c)&&hu(t[3])&&(s=!0)}let o,i;const a=s?kc(t[0],t[1],t[2]):kc(t[0],t[1],void 0);return n.vertices=a.vertices,n.faces=a.faces,n.is3D=s,s?(i=t[3],o=4):t.length>2&&!(Yt(t[2])&&Hh.has(jt(t[2]).toLowerCase()))?(i=t[2],o=3):o=2,i!==void 0&&Mw(n,i,a.faces.length,a.vertices.length),du(n,t,o),wu(n)}function wu(e){return e.faceColor===void 0&&(e.faceColor=e.faceVertexCData?"flat":[0,.447,.741]),e.edgeColor===void 0&&(e.edgeColor=[0,0,0]),e}function RN(e){let t=e;t.length>0&&mu(t[0])&&(t=t.slice(1));const n=[];let r=0;for(;r+1<t.length&&Ft(t[r])&&Ft(t[r+1]);){const s=kc(t[r],t[r+1],void 0),o={vertices:s.vertices,faces:s.faces,is3D:!1},i=t[r+2],a=i!==void 0&&Yt(i)&&Hh.has(jt(i).toLowerCase());i!==void 0&&!a?(Mw(o,i,s.faces.length,s.vertices.length),r+=3):r+=2,n.push(o)}for(const s of n)du(s,t,r);return n.map(wu)}function Cw(e){const t=At(e),n=[];for(let r=0;r<t.rows;r++){const s=[];for(let o=0;o<t.cols;o++){const i=t.data[o*t.rows+r];Number.isFinite(i)&&s.push(i-1)}s.length>0&&n.push(s)}return n}function Nw(e){return e.faceColor===void 0&&(e.faceColor=[.85,.85,.85]),e.edgeColor===void 0&&(e.edgeColor=[0,0,0]),e}function LN(e){let t=e;if(t.length>0&&mu(t[0])&&(t=t.slice(1)),t.length===0)throw new Error("trimesh requires input arguments");if(ut(t[0])){const f=t[0],h=b=>{for(const[k,M]of f.fields)if(k.toLowerCase()===b)return M},m=h("connectivitylist"),p=h("points");if(!m||!p)throw new Error("trimesh: triangulation object must have ConnectivityList and Points fields");const d=At(p),g=d.rows,w=d.cols>=3,_=[];for(let b=0;b<g;b++){const k=d.data[b],M=d.data[g+b];_.push(w?[k,M,d.data[2*g+b]]:[k,M])}const y={vertices:_,faces:Cw(m),is3D:w};return du(y,t,1),Nw(y)}if(t.length<3)throw new Error("trimesh: expected T, x and y");let n=3,r,s;t.length>3&&Ft(t[3])&&(r=t[3],n=4,t.length>4&&Ft(t[4])&&(s=t[4],n=5));const o=At(t[1]),i=At(t[2]),a=r?At(r):void 0,c=o.data.length,l=[];for(let f=0;f<c;f++){const h=o.data[f],m=i.data[Math.min(f,i.data.length-1)];a?l.push([h,m,a.data[Math.min(f,a.data.length-1)]]):l.push([h,m])}const u={vertices:l,faces:Cw(t[0]),is3D:!!a};return s&&(u.faceVertexCData=pu(s)),du(u,t,n),Nw(u)}const DN=new Set(["edgecolor","facecolor","facealpha"]);function TN(e){if(!ve(e)&&!be(e))return null;const t=ve(e)?e.toLocaleLowerCase():e.value.toLowerCase();return DN.has(t)?t:null}function Yh(e){let t=0,n,r,s,o,i,a,c=0;for(let u=t;u<e.length&&Ft(e[u]);u++)c++;if(c===1){const u=e[t++],f=At(u);o=f.rows,i=f.cols,s=f.data;const h=ai(o,i);n=h.x,r=h.y}else if(c===2){const u=e[t++],f=e[t++],h=At(u);o=h.rows,i=h.cols,s=h.data,a=Ge(f);const m=ai(o,i);n=m.x,r=m.y}else if(c===3){const u=e[t++],f=e[t++],h=e[t++],m=At(h);o=m.rows,i=m.cols,s=m.data;const p=ci(u,f,o,i);n=p.x,r=p.y}else if(c>=4){const u=e[t++],f=e[t++],h=e[t++],m=e[t++],p=At(h);o=p.rows,i=p.cols,s=p.data,a=Ge(m);const d=ci(u,f,o,i);n=d.x,r=d.y}else throw new Error("surf requires at least one input argument");const l={x:n,y:r,z:s,rows:o,cols:i};for(a&&(l.c=a);t<e.length;){const u=TN(e[t]);if(!u||(t++,t>=e.length))break;const f=e[t++];zN(l,u,f)}return l}function At(e){if(T(e)&&e.shape.length>=2)return{data:Array.from(e.data),rows:e.shape[0],cols:e.shape[1]};if(O(e))return{data:[e],rows:1,cols:1};const t=Ge(e);return{data:t,rows:t.length,cols:1}}function ai(e,t){const n=e*t,r=new Array(n),s=new Array(n);for(let o=0;o<t;o++)for(let i=0;i<e;i++){const a=o*e+i;r[a]=o+1,s[a]=i+1}return{x:r,y:s}}function ci(e,t,n,r){const s=Ge(e),o=Ge(t),i=n*r;if(s.length===i&&o.length===i)return{x:s,y:o};const a=s.length===r?s:s.slice(0,r),c=o.length===n?o:o.slice(0,n),l=new Array(i),u=new Array(i);for(let f=0;f<r;f++)for(let h=0;h<n;h++){const m=f*n+h;l[m]=a[f],u[m]=c[h]}return{x:l,y:u}}const PN=new Set(["edgecolor","facealpha"]);function BN(e){if(!ve(e)&&!be(e))return null;const t=ve(e)?e.toLocaleLowerCase():e.value.toLowerCase();return PN.has(t)?t:null}function qN(e,t,n){switch(t){case"edgecolor":{const r=Jh(n);if(r!==void 0&&r.toLowerCase()==="none"){e.edgeColor="none";break}const s=ln(n);s&&(e.edgeColor=s);break}case"facealpha":{const r=typeof n=="number"?n:ee(n);e.faceAlpha=r;break}}}function VN(e){let t=0,n,r,s,o,i,a=0;for(let l=t;l<e.length&&Ft(e[l]);l++)a++;if(a===1){const l=e[t++],u=At(l);o=u.rows,i=u.cols,s=u.data;const f=ai(o,i);n=f.x,r=f.y}else if(a>=3){const l=e[t++],u=e[t++],f=e[t++],h=At(f);o=h.rows,i=h.cols,s=h.data;const m=ci(l,u,o,i);n=m.x,r=m.y}else throw new Error("pcolor requires 1 or 3 numeric input arguments");const c={x:n,y:r,c:s,rows:o,cols:i};for(;t<e.length;){const l=BN(e[t]);if(!l||(t++,t>=e.length))break;const u=e[t++];qN(c,l,u)}return c}function zN(e,t,n){switch(t){case"edgecolor":{const r=Jh(n);if(r!==void 0){const o=r.toLowerCase();if(o==="none"||o==="flat"||o==="interp"){e.edgeColor=o;break}}const s=ln(n);s&&(e.edgeColor=s);break}case"facecolor":{const r=Jh(n);if(r!==void 0){const o=r.toLowerCase();if(o==="flat"||o==="interp"||o==="none"||o==="texturemap"){e.faceColor=o;break}}const s=ln(n);s&&(e.faceColor=s);break}case"facealpha":{const r=typeof n=="number"?n:ee(n);e.faceAlpha=r;break}}}function Jh(e){if(ve(e))return e;if(be(e))return e.value}function Sw(e){if(e.length<2)throw new Error("scatter requires at least 2 arguments");const t=Ge(e[0]),n=Ge(e[1]),r={x:t,y:n,marker:"o",lineStyle:"none"};let s=2,o=!1;if(s<e.length&&Ft(e[s])){const i=e[s];if(O(i))r.markerSize=Math.sqrt(i)*.5;else if(T(i)){const a=Ge(i);(a.length===1||new Set(a).size===1)&&(r.markerSize=Math.sqrt(a[0])*.5)}s++}if(s<e.length&&!Pr(e[s])){if(Yt(e[s])){const i=jt(e[s]);if(i==="filled")o=!0,s++;else{const a=ln(i);if(a)r.color=a,s++;else{const c=Fs(i);c?.marker&&(r.marker=c.marker,c.color&&(r.color=Is[c.color]),s++)}}}else if(Ft(e[s])){const i=ln(e[s]);i&&(r.color=i,s++)}}for(;s<e.length&&Yt(e[s])&&!Pr(e[s]);){const i=jt(e[s]);if(i==="filled")o=!0,s++;else{const a=Fs(i);if(a?.marker)r.marker=a.marker,a.color&&(r.color=Is[a.color]),s++;else break}}for(o&&(r.markerFaceColor=r.color||[0,0,1]);s<e.length;){const i=Pr(e[s]);if(!i||(s++,s>=e.length))break;const a=e[s];s++,Kh([r],i,a)}return[r]}function Kh(e,t,n){switch(t){case"color":{const r=ln(n);if(r)for(const s of e)s.color=r;break}case"linestyle":{const r=jt(n);for(const s of e)s.lineStyle=r;break}case"linewidth":{const r=typeof n=="number"?n:ee(n);for(const s of e)s.lineWidth=r;break}case"marker":{const r=jt(n);for(const s of e)s.marker=r==="none"?void 0:r;break}case"markersize":{const r=typeof n=="number"?n:ee(n);for(const s of e)s.markerSize=r;break}case"markeredgecolor":{const r=ln(n);if(r)for(const s of e)s.markerEdgeColor=r;break}case"markerfacecolor":{const r=ln(n);if(r)for(const s of e)s.markerFaceColor=r;break}case"markerindices":{const r=Ge(n);for(const s of e)s.markerIndices=r;break}}}function UN(e){if(e.length===1){const t=At(e[0]);return{x:[1,t.cols],y:[1,t.rows],z:t.data,rows:t.rows,cols:t.cols}}if(e.length>=3){const t=Ge(e[0]),n=Ge(e[1]),r=At(e[2]);return{x:[t[0],t[t.length-1]],y:[n[0],n[n.length-1]],z:r.data,rows:r.rows,cols:r.cols}}throw new Error("imagesc requires 1 or 3+ arguments")}function WN(e,t){let n=0,r=0;for(let d=n;d<e.length&&Ft(e[d]);d++)r++;let s,o,i,a,c,l=10,u;const f=d=>{const g=Ge(d);g.length<=1?l=g.length===1?g[0]:l:u=g};if(r===1){const d=At(e[n++]);a=d.rows,c=d.cols,i=d.data;const g=ai(a,c);s=g.x,o=g.y}else if(r===2){const d=At(e[n++]);a=d.rows,c=d.cols,i=d.data,f(e[n++]);const g=ai(a,c);s=g.x,o=g.y}else if(r===3){const d=e[n++],g=e[n++],w=At(e[n++]);a=w.rows,c=w.cols,i=w.data;const _=ci(d,g,a,c);s=_.x,o=_.y}else if(r>=4){const d=e[n++],g=e[n++],w=At(e[n++]);a=w.rows,c=w.cols,i=w.data,f(e[n++]);const _=ci(d,g,a,c);s=_.x,o=_.y}else throw new Error("contour requires at least 1 argument");let h,m,p;for(;n+1<e.length&&Yt(e[n]);n+=2){const d=jt(e[n]).toLowerCase(),g=e[n+1];switch(d){case"linewidth":h=ee(g);break;case"linestyle":m=jt(g);break;case"linecolor":case"color":p=Yt(g)?jt(g):Ge(g);break;case"levellist":case"levels":{const w=Ge(g);w.length>=1&&(u=w);break}}}return u&&(l=u.length),{x:s,y:o,z:i,rows:a,cols:c,nLevels:l,...u?{levels:u}:{},...h!==void 0?{lineWidth:h}:{},...m!==void 0?{lineStyle:m}:{},...p!==void 0?{lineColor:p}:{},filled:t}}function XN(e,t,n,r,s,o,i,a,c,l,u,f,h){const m=(e>=h?1:0)|(t>=h?2:0)|(n>=h?4:0)|(r>=h?8:0);if(m===0||m===15)return[];const p=(S,E,D,F)=>S+(h-D)/(F-D||1)*(E-S),d=p(s,i,e,t),g=p(o,a,e,t),w=p(i,u,t,r),_=p(a,f,t,r),y=p(c,u,n,r),b=p(l,f,n,r),k=p(s,c,e,n),M=p(o,l,e,n),$=[];switch(m){case 1:case 14:$.push([d,g,k,M]);break;case 2:case 13:$.push([d,g,w,_]);break;case 3:case 12:$.push([k,M,w,_]);break;case 4:case 11:$.push([k,M,y,b]);break;case 5:case 10:$.push([d,g,y,b]);break;case 6:case 9:$.push([d,g,k,M]),$.push([y,b,w,_]);break;case 7:case 8:$.push([y,b,w,_]);break}return $}function HN(e){const{x:t,y:n,z:r,rows:s,cols:o}=e,i=(f,h,m)=>f[m*s+h];let a=1/0,c=-1/0;for(const f of r)Number.isFinite(f)&&(f<a&&(a=f),f>c&&(c=f));let l;if(e.levels&&e.levels.length>0)l=e.levels.filter(f=>Number.isFinite(f));else{const f=Math.max(1,Math.round(e.nLevels));if(l=[],Number.isFinite(a)&&Number.isFinite(c)&&c>a){const h=(c-a)/(f+1);for(let m=1;m<=f;m++)l.push(a+m*h)}}const u=[];for(const f of l)for(let h=0;h<o-1;h++)for(let m=0;m<s-1;m++){const p=XN(i(r,m,h),i(r,m+1,h),i(r,m,h+1),i(r,m+1,h+1),i(t,m,h),i(n,m,h),i(t,m+1,h),i(n,m+1,h),i(t,m,h+1),i(n,m,h+1),i(t,m+1,h+1),i(n,m+1,h+1),f);for(const[d,g,w,_]of p)u.push(f,2,d,g,w,_)}return{data:u,n:u.length/2,levelList:l}}function YN(e){const t=Yh(e);return t.edgeColor||(t.edgeColor="flat"),t.faceColor||(t.faceColor="none"),t}function Aw(e){let t=0,n,r,s=.8,o;if(e.length===0)throw new Error("bar requires at least 1 argument");const i=e[t++];for(t<e.length&&Ft(e[t])?(n=Ge(i),r=Ge(e[t++])):r=Ge(i);t<e.length;)if(Ft(e[t])){const c=e[t];if(O(c))s=c,t++;else break}else if(Yt(e[t])){const c=jt(e[t]),l=ln(c);if(l)o=l,t++;else break}else break;n||(n=fu(r.length));const a={x:n,y:r,width:s};return o&&(a.color=o),[a]}function JN(e){return Aw(e)}function Ew(e){let t=0,n,r=.8,s;if(e.length===0)throw new Error("bar3 requires at least 1 argument");const o=e[t++];let i,a,c;if(t<e.length&&Ft(e[t])){n=Ge(o);const m=e[t++];if(T(m)){const p=At(m);i=Array.from(p.data),a=p.rows,c=p.cols}else i=Ge(m),a=i.length,c=1}else if(T(o)){const m=At(o);i=Array.from(m.data),a=m.rows,c=m.cols}else i=Ge(o),a=i.length,c=1;for(;t<e.length;)if(Ft(e[t])){const m=e[t];if(O(m))r=m,t++;else break}else if(Yt(e[t])){const m=jt(e[t]),p=ln(m);if(p)s=p,t++;else break}else break;n||(n=fu(a));const l=[],u=[],f=[];for(let m=0;m<c;m++)for(let p=0;p<a;p++)l.push(m+1),u.push(n[p]),f.push(i[m*a+p]);const h={x:l,y:u,z:f,rows:a,cols:c,width:r};return s&&(h.color=s),h}function KN(e){const t=Fo(e);for(const n of t){const r=n.x.length;if(r<2)continue;const s=[],o=[];for(let i=0;i<r-1;i++)s.push(n.x[i]),o.push(n.y[i]),s.push(n.x[i+1]),o.push(n.y[i]);s.push(n.x[r-1]),o.push(n.y[r-1]),n.x=s,n.y=o}return t}function ZN(e){if(e.length<2)throw new Error("errorbar requires at least 2 arguments");let t=0,n,r,s,o,i,a,c,l,u,f=0;for(let m=0;m<e.length&&Ft(e[m]);m++)f++;if(f===2){r=Ge(e[t++]);const m=Ge(e[t++]);s=m,o=m}else if(f===3){n=Ge(e[t++]),r=Ge(e[t++]);const m=Ge(e[t++]);s=m,o=m}else if(f===4)n=Ge(e[t++]),r=Ge(e[t++]),s=Ge(e[t++]),o=Ge(e[t++]);else if(f>=6)n=Ge(e[t++]),r=Ge(e[t++]),s=Ge(e[t++]),o=Ge(e[t++]),i=Ge(e[t++]),a=Ge(e[t++]);else throw new Error("errorbar: invalid number of numeric arguments");for(n||(n=fu(r.length));t<e.length&&Yt(e[t]);){const m=jt(e[t]),p=Fs(m);if(p){if(p.color){const d=ln(p.color);d&&(c=d)}p.lineStyle&&(l=p.lineStyle),p.marker&&(u=p.marker),t++}else{const d=ln(m);if(d)c=d,t++;else break}}const h={x:n,y:r,yNeg:s,yPos:o};return i&&(h.xNeg=i),a&&(h.xPos=a),c&&(h.color=c),l&&(h.lineStyle=l),u&&(h.marker=u),[h]}function GN(e){let t=0;const n=[...e],r=n.length-1;return r>=1&&Ft(n[r])&&O(n[r])&&r>=1&&Ft(n[r-1])&&(t=ee(n[r]),n.pop()),{traces:Fo(n),baseValue:t}}function Iw(e){if(e.length<3)throw new Error("scatter3 requires at least 3 arguments");const t=Ge(e[0]),n=Ge(e[1]),r=Ge(e[2]),s={x:t,y:n,z:r,marker:"o",lineStyle:"none"};let o=3,i=!1;if(o<e.length&&Ft(e[o])){const a=e[o];if(O(a))s.markerSize=Math.sqrt(a)*.5;else if(T(a)){const c=Ge(a);(c.length===1||new Set(c).size===1)&&(s.markerSize=Math.sqrt(c[0])*.5)}o++}if(o<e.length&&!Pr(e[o])){if(Yt(e[o])){const a=jt(e[o]);if(a==="filled")i=!0,o++;else{const c=ln(a);if(c)s.color=c,o++;else{const l=Fs(a);l?.marker&&(s.marker=l.marker,l.color&&(s.color=Is[l.color]),o++)}}}else if(Ft(e[o])){const a=ln(e[o]);a&&(s.color=a,o++)}}for(;o<e.length&&Yt(e[o])&&!Pr(e[o]);){const a=jt(e[o]);if(a==="filled")i=!0,o++;else{const c=Fs(a);if(c?.marker)s.marker=c.marker,c.color&&(s.color=Is[c.color]),o++;else break}}for(i&&(s.markerFaceColor=s.color||[0,0,1]);o<e.length;){const a=Pr(e[o]);if(!a||(o++,o>=e.length))break;const c=e[o];o++,Xh([s],a,c)}return[s]}function QN(e){if(e.length===0)throw new Error("histogram requires at least 1 argument");let t=0;const r=Ge(e[t++]).filter(u=>isFinite(u));if(r.length===0)return[];let s;if(t<e.length&&Ft(e[t])){const u=e[t++];O(u)?s=jo(r,Math.max(1,Math.round(u))):s=Ge(u)}else{const u=Math.max(1,Math.ceil(Math.log2(r.length)+1));s=jo(r,u)}const o=s.length-1;if(o<=0)return[];const i=new Array(o).fill(0);for(const u of r){let f=-1;for(let h=0;h<o;h++)if(h<o-1){if(u>=s[h]&&u<s[h+1]){f=h;break}}else if(u>=s[h]&&u<=s[h+1]){f=h;break}f>=0&&i[f]++}const a=[],c=[],l=s[1]-s[0];for(let u=0;u<o;u++)a.push((s[u]+s[u+1])/2),c.push(i[u]);return[{x:a,y:c,width:l}]}function jo(e,t){const n=Math.min(...e),o=(Math.max(...e)-n||1)/t,i=[];for(let a=0;a<=t;a++)i.push(n+a*o);return i}function ON(e){if(e.length<2)throw new Error("histogram2 requires at least 2 arguments");let t=0;const n=Ge(e[t++]).filter(g=>isFinite(g)),r=Ge(e[t++]).filter(g=>isFinite(g)),s=Math.min(n.length,r.length);if(s===0)return{x:[],y:[],z:[],rows:0,cols:0,width:.8};let o,i;if(t<e.length&&Ft(e[t])){const g=e[t++];if(t<e.length&&Ft(e[t]))o=Ge(g),i=Ge(e[t++]);else if(O(g)){const w=Math.max(1,Math.round(g));o=jo(n.slice(0,s),w),i=jo(r.slice(0,s),w)}else{const w=Ge(g),_=Math.max(1,Math.round(w[0])),y=w.length>1?Math.max(1,Math.round(w[1])):_;o=jo(n.slice(0,s),_),i=jo(r.slice(0,s),y)}}else{const g=Math.max(1,Math.ceil(Math.sqrt(s)));o=jo(n.slice(0,s),g),i=jo(r.slice(0,s),g)}const a=o.length-1,c=i.length-1;if(a<=0||c<=0)return{x:[],y:[],z:[],rows:0,cols:0,width:.8};const l=new Array(a*c).fill(0);for(let g=0;g<s;g++){const w=Fw(n[g],o),_=Fw(r[g],i);w>=0&&_>=0&&l[w*c+_]++}const u=[],f=[],h=[];for(let g=0;g<a;g++)for(let w=0;w<c;w++)u.push((o[g]+o[g+1])/2),f.push((i[w]+i[w+1])/2),h.push(l[g*c+w]);const m=o[1]-o[0],p=i[1]-i[0],d=Math.min(m,p);return{x:u,y:f,z:h,rows:c,cols:a,width:d}}function Fw(e,t){const n=t.length-1;for(let r=0;r<n;r++)if(r<n-1){if(e>=t[r]&&e<t[r+1])return r}else if(e>=t[r]&&e<=t[r+1])return r;return-1}function Zh(e,t){if(e.length===0)return NaN;if(e.length===1)return e[0];const n=t/100*(e.length-1),r=Math.floor(n),s=Math.ceil(n);return r===s?e[r]:e[r]+(e[s]-e[r])*(n-r)}function Gh(e,t,n,r){const s=e.filter(d=>isFinite(d));if(s.length===0)return null;s.sort((d,g)=>d-g);const o=Zh(s,50),i=Zh(s,25),a=Zh(s,75),c=a-i,l=i-1.5*c,u=a+1.5*c;let f=i,h=a;const m=[];for(const d of s)d<l||d>u?m.push(d):(d<f&&(f=d),d>h&&(h=d));return{x:t,median:o,q1:i,q3:a,whiskerLow:f,whiskerHigh:h,outliers:m,width:n}}function eS(e){if(e.length===0)throw new Error("boxchart requires at least 1 argument");let t=0;const n=e[t++];if(t<e.length&&Ft(e[t])){const o=Ge(n),i=Ge(e[t++]),a=Math.min(o.length,i.length),c=new Map;for(let f=0;f<a;f++){const h=o[f];if(!isFinite(h))continue;let m=c.get(h);m||(m=[],c.set(h,m)),m.push(i[f])}const l=[],u=[...c.keys()].sort((f,h)=>f-h);for(const f of u){const h=Gh(c.get(f),f,.5);h&&l.push(h)}return l}if(T(n)&&n.shape.length>=2&&n.shape[0]>1&&n.shape[1]>1){const o=[];for(let i=0;i<n.shape[1];i++){const a=kw(n,i),c=Gh(a,i+1,.5);c&&o.push(c)}return o}const r=Ge(n),s=Gh(r,1,.5);return s?[s]:[]}function Qh(e,t,n){const r=new Array(e.length),s=new Map;for(let o=0;o<e.length;o++){let i=s.get(e[o]);i||(i=[],s.set(e[o],i)),i.push(o)}for(const[,o]of s){if(o.length<=1){for(const p of o)r[p]=e[p];continue}const i=o.slice().sort((p,d)=>t[p]-t[d]),a=i.map(p=>t[p]),c=a[0],f=(a[a.length-1]-c||1)/Math.max(3,Math.sqrt(i.length)),h=new Array(i.length);for(let p=0;p<i.length;p++){let d=0;for(let g=0;g<i.length;g++){const w=(a[p]-a[g])/f;d+=Math.exp(-.5*w*w)}h[p]=d}const m=Math.max(...h);for(let p=0;p<i.length;p++){const d=m>0?h[p]/m:0,g=n*d,w=p,_=w%2===0?1:-1,y=Math.ceil(w/2)/Math.max(1,i.length/2)*g;r[i[p]]=e[i[p]]+_*y}}return r}function tS(e){if(e.length<2)throw new Error("swarmchart requires at least 2 arguments");const t=Ge(e[0]),n=Ge(e[1]),r=Qh(t,n,.3),s=[Oh(r),e[1],...e.slice(2)];return Sw(s)}function nS(e){if(e.length<3)throw new Error("swarmchart3 requires at least 3 arguments");const t=Ge(e[0]),n=Ge(e[1]),r=Ge(e[2]),s=Qh(t,r,.3),o=Qh(n,r,.3),i=[Oh(s),Oh(o),e[2],...e.slice(3)];return Iw(i)}function Oh(e){return{kind:"tensor",data:v(e),shape:[1,e.length]}}function jw(e,t){if(e.length===0)throw new Error("piechart requires at least 1 argument");let n=0;const r=Ge(e[n++]).filter(o=>isFinite(o)&&o>0);let s;if(n<e.length&&!Ft(e[n])&&!(T(e[n])||O(e[n]))){s=[];const o=e[n];if(o&&typeof o=="object"&&"kind"in o&&o.kind==="cell"){const i=o;for(const a of i.data)s.push(jt(a))}else if(Yt(o)){for(s.push(jt(o)),n++;n<e.length&&Yt(e[n]);)s.push(jt(e[n])),n++;return{values:r,names:s,innerRadius:t}}n++}return{values:r,names:s,innerRadius:t}}function rS(e){if(e.length===0)throw new Error("heatmap requires at least 1 argument");let t=0;if(e.length>=3&&Ft(e[0]),e.length>=3&&Ft(e[0])&&Ft(e[1])&&Ft(e[2])){const r=Ge(e[t++]),s=Ge(e[t++]),o=At(e[t++]);return{data:o.data,rows:o.rows,cols:o.cols,xLabels:r.map(i=>String(i)),yLabels:s.map(i=>String(i))}}const n=At(e[t++]);return{data:n.data,rows:n.rows,cols:n.cols}}const sS=new Set(["color","linestyle","linewidth","showarrowhead","autoscale","autoscalefactor","marker"]);function _u(e){if(!ve(e)&&!be(e))return null;const t=ve(e)?e.toLocaleLowerCase():e.value.toLowerCase();return sS.has(t)?t:null}function Rw(e){if(typeof e=="string")return e;if(e&&typeof e=="object"&&"kind"in e){const t=e;if(ve(t))return t;if(be(t))return t.value}}function oS(e){if(e.length<2)throw new Error("quiver requires at least 2 arguments");let t=0;for(let m=0;m<e.length&&Ft(e[m]);m++)t++;let n=0,r,s,o,i,a,c,l;if(t===2)l=2;else if(t===3)l=2;else if(t>=4)l=4;else throw new Error("quiver requires at least 2 numeric arguments");if(l===2){const m=e[n++],p=e[n++],d=At(m),g=At(p);if(a=d.rows,c=d.cols,o=d.data,i=g.data,a===1||c===1){const w=o.length;r=new Array(w),s=new Array(w);for(let _=0;_<w;_++)r[_]=_+1,s[_]=1}else{const w=ai(a,c);r=w.x,s=w.y}}else{const m=e[n++],p=e[n++],d=e[n++],g=e[n++],w=At(d),_=At(g);a=w.rows,c=w.cols,o=w.data,i=_.data;const y=ci(m,p,a,c);r=y.x,s=y.y}let u=!0,f=.9;if(n<e.length&&Ft(e[n])&&!Yt(e[n])){const m=ee(e[n]);m===0?u=!1:f=m*.9,n++}const h={x:r,y:s,u:o,v:i,showArrowHead:!0};for(;n<e.length&&Yt(e[n])&&!_u(e[n]);){const m=Rw(e[n]);if(m===void 0)break;if(m==="off"){u=!1,n++;continue}if(m==="filled"){h.markerFilled=!0,n++;continue}const p=Fs(m);if(p){p.color&&(h.color=Is[p.color]),p.lineStyle&&(h.lineStyle=p.lineStyle),p.marker&&(h.marker=p.marker,h.showArrowHead=!1),n++;continue}const d=ln(m);if(d){h.color=d,n++;continue}break}for(;n<e.length;){const m=_u(e[n]);if(!m||(n++,n>=e.length))break;const p=e[n++];switch(m){case"color":{const d=ln(p);d&&(h.color=d);break}case"linestyle":h.lineStyle=jt(p);break;case"linewidth":h.lineWidth=typeof p=="number"?p:ee(p);break;case"marker":{const d=jt(p);h.marker=d==="none"?void 0:d;break}case"showarrowhead":{const d=jt(p).toLowerCase();h.showArrowHead=!(d==="off"||d==="false"||d==="0");break}case"autoscale":{const d=jt(p).toLowerCase();u=!(d==="off"||d==="false"||d==="0");break}case"autoscalefactor":{f=(typeof p=="number"?p:ee(p))*.9;break}}}if(u){const m=iS(r,s,o,i,a,c,f);if(m!==1){const p=new Array(o.length),d=new Array(i.length);for(let g=0;g<o.length;g++)p[g]=o[g]*m;for(let g=0;g<i.length;g++)d[g]=i[g]*m;h.u=p,h.v=d}}return[h]}function iS(e,t,n,r,s,o,i){const a=n.length;if(a===0)return 1;let c=0,l=0;for(let b=0;b<s;b++)for(let k=0;k<o-1;k++){const M=k*s+b,$=(k+1)*s+b,S=e[$]-e[M],E=t[$]-t[M],D=Math.sqrt(S*S+E*E);isFinite(D)&&D>0&&(c+=D,l++)}for(let b=0;b<s-1;b++)for(let k=0;k<o;k++){const M=k*s+b,$=k*s+b+1,S=e[$]-e[M],E=t[$]-t[M],D=Math.sqrt(S*S+E*E);isFinite(D)&&D>0&&(c+=D,l++)}const u=l>0?c/l:0;let f=1/0,h=-1/0,m=1/0,p=-1/0;for(let b=0;b<e.length;b++)isFinite(e[b])&&(e[b]<f&&(f=e[b]),e[b]>h&&(h=e[b]));for(let b=0;b<t.length;b++)isFinite(t[b])&&(t[b]<m&&(m=t[b]),t[b]>p&&(p=t[b]));const d=h-f,g=p-m;let w;d>0&&g>0?w=Math.sqrt(d*g/a):d>0?w=d/Math.max(1,a-1):g>0?w=g/Math.max(1,a-1):w=0;const _=Math.max(u,w)||1;let y=0;for(let b=0;b<a;b++){const k=n[b],M=r[b];if(!isFinite(k)||!isFinite(M))continue;const $=Math.sqrt(k*k+M*M);$>y&&(y=$)}return y===0?1:i*_/y}function aS(e){if(e.length<4)throw new Error("quiver3 requires at least 4 arguments");let t=0;for(let g=0;g<e.length&&Ft(e[g]);g++)t++;let n=0,r,s,o,i,a,c,l,u;if((t>=6?6:4)===4){const g=At(e[n++]);l=g.rows,u=g.cols,o=g.data,i=At(e[n++]).data,a=At(e[n++]).data,c=At(e[n++]).data;const w=o.length;if(l===1||u===1){r=new Array(w),s=new Array(w);for(let _=0;_<w;_++)r[_]=_+1,s[_]=1}else{const _=ai(l,w/l);r=_.x,s=_.y}}else{const g=e[n++],w=e[n++],_=At(e[n++]);l=_.rows,u=_.cols,o=_.data,i=At(e[n++]).data,a=At(e[n++]).data,c=At(e[n++]).data;const y=i.length,b=Ge(g),k=Ge(w);if(b.length===y&&k.length===y)r=b,s=k;else{const M=ci(g,w,l,u);r=M.x,s=M.y}}let h=!0,m=.9,p=.9;if(n<e.length&&Ft(e[n])&&!Yt(e[n])){const g=ee(e[n]);g===0?h=!1:(m=g*.9,p=g),n++}const d={x:r,y:s,z:o,u:i,v:a,w:c,showArrowHead:!0};for(;n<e.length&&Yt(e[n])&&!_u(e[n]);){const g=Rw(e[n]);if(g===void 0)break;if(g==="off"){h=!1,n++;continue}if(g==="filled"){d.markerFilled=!0,n++;continue}const w=Fs(g);if(w){w.color&&(d.color=Is[w.color]),w.lineStyle&&(d.lineStyle=w.lineStyle),w.marker&&(d.marker=w.marker,d.showArrowHead=!1),n++;continue}const _=ln(g);if(_){d.color=_,n++;continue}break}for(;n<e.length;){const g=_u(e[n]);if(!g||(n++,n>=e.length))break;const w=e[n++];switch(g){case"color":{const _=ln(w);_&&(d.color=_);break}case"linestyle":d.lineStyle=jt(w);break;case"linewidth":d.lineWidth=typeof w=="number"?w:ee(w);break;case"marker":{const _=jt(w);d.marker=_==="none"?void 0:_;break}case"showarrowhead":{const _=jt(w).toLowerCase();d.showArrowHead=!(_==="off"||_==="false"||_==="0");break}case"autoscale":{const _=jt(w).toLowerCase();h=!(_==="off"||_==="false"||_==="0");break}case"autoscalefactor":{const _=typeof w=="number"?w:ee(w);m=_*.9,p=_;break}}}if(d.autoScale=h,d.autoScaleFactor=p,h){const g=cS(r,s,o,i,a,c,m);g!==1&&(d.u=i.map(w=>w*g),d.v=a.map(w=>w*g),d.w=c.map(w=>w*g))}return d}function cS(e,t,n,r,s,o,i){const a=r.length;if(a===0)return 1;const c=d=>{let g=1/0,w=-1/0;for(const _ of d)isFinite(_)&&(_<g&&(g=_),_>w&&(w=_));return w>g?w-g:0},l=c(e),u=c(t),f=c(n),h=[l,u,f].filter(d=>d>0);let m;h.length===3?m=Math.cbrt(l*u*f/a):h.length===2?m=Math.sqrt(h[0]*h[1]/a):h.length===1?m=h[0]/Math.max(1,a-1):m=1,m=m||1;let p=0;for(let d=0;d<a;d++){const g=Math.sqrt(r[d]*r[d]+s[d]*s[d]+o[d]*o[d]);isFinite(g)&&g>p&&(p=g)}return p===0?1:i*m/p}function Lw(e){if(typeof e=="number")return x.num(e);if(typeof e=="boolean")return x.logical(e);if(typeof e=="string")return x.char(e);if(Array.isArray(e)){const t=v(e);return x.tensor(t,[1,e.length])}return e}const Dw={line:{Color:[0,.447,.741],LineStyle:"-",LineWidth:.5,Marker:"none",MarkerSize:6},patch:{FaceColor:[0,.447,.741],EdgeColor:[0,0,0],FaceAlpha:1,LineStyle:"-",LineWidth:.5,Marker:"none"},quiver3:{LineWidth:.5,LineStyle:"-",ShowArrowHead:!0,AutoScale:!0,AutoScaleFactor:.9,Marker:"none",Color:[0,.447,.741]}};function Tw(e,t){if(t in e)return t;const n=t.charAt(0).toLowerCase()+t.slice(1);if(n in e)return n;const r=t.toLowerCase();for(const s of Object.keys(e))if(s.toLowerCase()===r)return s;if(r.endsWith("data")){const s=r.slice(0,-4);for(const o of Object.keys(e))if(o.toLowerCase()===s)return o}return null}function lS(e,t){if(Array.isArray(t)&&t.length===3&&(ve(e)||be(e))){const n=ln(e);if(n)return n}if(typeof t=="boolean"){if(typeof e=="boolean")return e;if(typeof e=="number")return e!==0;if(ve(e)||be(e)){const n=(be(e)?e.value:e).toLowerCase();return!(n==="off"||n==="false"||n==="0")}return!0}if(typeof t=="string")return be(e)?e.value:ve(e)?e:String(e);if((typeof t=="number"||t===void 0)&&(typeof e=="number"||O(e)))return e;if(Array.isArray(t)){if(T(e))return Array.from(e.data);if(typeof e=="number")return[e]}return e}const uS={facecolor:"faceColor",edgecolor:"edgeColor",facealpha:"faceAlpha",linewidth:"lineWidth",linestyle:"lineStyle",marker:"marker",markerfacecolor:"markerFaceColor",facevertexcdata:"faceVertexCData",cdata:"faceVertexCData"};function Pw(e,t,n,r){if(t==="patch"){const a=n.toLowerCase(),c=uS[a];if(c)return gu(e,a,r),{key:c,value:e[c]}}const s=Tw(e,n)??n.charAt(0).toLowerCase()+n.slice(1),o=e[s]??Dw[t]?.[n],i=lS(r,o);return e[s]=i,{key:s,value:i}}function ep(e,t){if(ut(e)||Ze(e)){const n=e.fields.get(t);if(n===void 0)throw new C(`No field '${t}' on ${Ze(e)?e.className:"struct"}`);return n}if(Vt(e)){if(!e.fieldNames.includes(t))throw new C(`No field '${t}' on struct array`);const n=e.elements.map(r=>{const s=r.fields.get(t);if(s===void 0)throw new C(`No field '${t}' on struct element`);return s});return yc(...n)}if(ko(e)){const n=Tw(e._trace,t);if(n!==null)return Lw(e._trace[n]);const r=Dw[e._traceType]?.[t];if(r!==void 0)return Lw(r);throw new C(`No property '${t}' on ${e._traceType} handle`)}throw new C(`Cannot access field ${t} on ${Dn(e)}`)}function fS(e,t,n,r){if(Ze(e)){if(e.isHandleClass)return r?e.bindField(r,t,n):e.fields.set(t,n),e;if(r&&!Yo(e))return e.bindField(r,t,n),e;const s=new Map(e.fields);return s.set(t,n),new Us(e.className,s,!1,e._builtinData)}if(ut(e)){if(r&&!Yo(e))return e.bindField(r,t,n),e;const s=new Map(e.fields);return s.set(t,n),x.struct(s)}if(Vt(e)){if(e.elements.length===1){const s=new Map(e.elements[0].fields);return s.set(t,n),x.struct(s)}throw new C(`Cannot assign field '${t}' on a non-scalar struct array without indexing`)}return ko(e)?(Pw(e._trace,e._traceType,t,n),e):O(e)&&e===0?x.struct(new Map([[t,n]])):x.struct(new Map([[t,n]]))}class yu extends Error{span;identifier;file;line;column;constructor(t,n=null,r=null){super(t),this.name="SemanticError",this.span=n,this.identifier=r,this.file=null,this.line=null,this.column=void 0}withSpan(t){return this.span=t,this}withIdentifier(t){return this.identifier=t,this}}const Bw=new Set(["pi","inf","Inf","nan","NaN","realmax","realmin","intmax","intmin","i","j","true","false"]);var j=(e=>(e[e.Integer=0]="Integer",e[e.Float=1]="Float",e[e.Str=2]="Str",e[e.Char=3]="Char",e[e.Ident=4]="Ident",e[e.Function=5]="Function",e[e.If=6]="If",e[e.Else=7]="Else",e[e.ElseIf=8]="ElseIf",e[e.For=9]="For",e[e.ParFor=10]="ParFor",e[e.While=11]="While",e[e.Break=12]="Break",e[e.Continue=13]="Continue",e[e.Return=14]="Return",e[e.End=15]="End",e[e.ClassDef=16]="ClassDef",e[e.Properties=17]="Properties",e[e.Methods=18]="Methods",e[e.Events=19]="Events",e[e.Enumeration=20]="Enumeration",e[e.Arguments=21]="Arguments",e[e.Import=22]="Import",e[e.Switch=23]="Switch",e[e.Case=24]="Case",e[e.Otherwise=25]="Otherwise",e[e.Try=26]="Try",e[e.Catch=27]="Catch",e[e.Global=28]="Global",e[e.Persistent=29]="Persistent",e[e.True=30]="True",e[e.False=31]="False",e[e.Plus=32]="Plus",e[e.Minus=33]="Minus",e[e.Star=34]="Star",e[e.Slash=35]="Slash",e[e.Backslash=36]="Backslash",e[e.Caret=37]="Caret",e[e.And=38]="And",e[e.Or=39]="Or",e[e.Tilde=40]="Tilde",e[e.At=41]="At",e[e.Question=42]="Question",e[e.Less=43]="Less",e[e.Greater=44]="Greater",e[e.Dot=45]="Dot",e[e.Colon=46]="Colon",e[e.Comma=47]="Comma",e[e.Assign=48]="Assign",e[e.Semicolon=49]="Semicolon",e[e.LParen=50]="LParen",e[e.RParen=51]="RParen",e[e.LBracket=52]="LBracket",e[e.RBracket=53]="RBracket",e[e.LBrace=54]="LBrace",e[e.RBrace=55]="RBrace",e[e.DotStar=56]="DotStar",e[e.DotSlash=57]="DotSlash",e[e.DotBackslash=58]="DotBackslash",e[e.DotCaret=59]="DotCaret",e[e.AndAnd=60]="AndAnd",e[e.OrOr=61]="OrOr",e[e.Equal=62]="Equal",e[e.NotEqual=63]="NotEqual",e[e.LessEqual=64]="LessEqual",e[e.GreaterEqual=65]="GreaterEqual",e[e.Transpose=66]="Transpose",e[e.Ellipsis=67]="Ellipsis",e[e.Newline=68]="Newline",e[e.Section=69]="Section",e[e.Error=70]="Error",e[e.Directive=71]="Directive",e))(j||{});const qw=new Map([["function",j.Function],["if",j.If],["else",j.Else],["elseif",j.ElseIf],["for",j.For],["parfor",j.ParFor],["while",j.While],["break",j.Break],["continue",j.Continue],["return",j.Return],["end",j.End],["classdef",j.ClassDef],["properties",j.Properties],["methods",j.Methods],["events",j.Events],["enumeration",j.Enumeration],["arguments",j.Arguments],["import",j.Import],["switch",j.Switch],["case",j.Case],["otherwise",j.Otherwise],["try",j.Try],["catch",j.Catch],["global",j.Global],["persistent",j.Persistent],["true",j.True],["false",j.False]]);j.True,j.False;function Vw(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e==="_"}function mS(e){return Vw(e)||e>="0"&&e<="9"}function li(e){return e>="0"&&e<="9"}function zw(e){return e===" "||e===" "||e==="\r"}function tp(e){return e===j.Ident||e===j.Integer||e===j.Float||e===j.True||e===j.False||e===j.End||e===j.RParen||e===j.RBracket||e===j.RBrace||e===j.Str||e===j.Char||e===j.Transpose}function np(e,t=0){for(let n=t;n<e.length;n++){if(e[n]===`
28
28
  `)return[n,1];if(e[n]==="\r")return e[n+1]===`
29
29
  `?[n,2]:[n,1]}}var hS={operators:{twoChar:[{pattern:".*",token:"DotStar"},{pattern:"./",token:"DotSlash"},{pattern:".\\",token:"DotBackslash"},{pattern:".^",token:"DotCaret"},{pattern:"&&",token:"AndAnd"},{pattern:"||",token:"OrOr"},{pattern:"==",token:"Equal"},{pattern:"~=",token:"NotEqual"},{pattern:"<=",token:"LessEqual"},{pattern:">=",token:"GreaterEqual"}],singleChar:[{pattern:"+",token:"Plus"},{pattern:"-",token:"Minus"},{pattern:"*",token:"Star"},{pattern:"/",token:"Slash"},{pattern:"\\",token:"Backslash"},{pattern:"^",token:"Caret"},{pattern:"&",token:"And"},{pattern:"|",token:"Or"},{pattern:"~",token:"Tilde"},{pattern:"@",token:"At"},{pattern:"?",token:"Question"},{pattern:"<",token:"Less"},{pattern:">",token:"Greater"},{pattern:".",token:"Dot"},{pattern:":",token:"Colon"},{pattern:",",token:"Comma"},{pattern:"=",token:"Assign"},{pattern:";",token:"Semicolon",special:"semicolonQuoteHeuristic"},{pattern:"(",token:"LParen"},{pattern:")",token:"RParen"},{pattern:"[",token:"LBracket"},{pattern:"]",token:"RBracket"},{pattern:"{",token:"LBrace"},{pattern:"}",token:"RBrace"}]},comments:{blockComment:{start:"%{",end:"%}"},sectionMarker:{pattern:"%%",token:"Section"},lineComment:{start:"%"}},strings:[{delimiter:'"',escape:'""',token:"Str",allowMultiline:!1},{delimiter:"'",escape:"''",token:"Char",allowMultiline:!1,disambiguation:{type:"transpose",transposeToken:"Transpose",conditions:{requireAdjacency:!0,requirePrevValueOrDot:!0}}}],special:{ellipsis:{pattern:"...",token:"Ellipsis"},newline:{pattern:`
30
30
  `}},numbers:{integerToken:"Integer",floatToken:"Float",exponentChars:["e","E","d","D"],decimalPoint:".",dotOperatorPrefixes:["*","/","\\","^"]}};const us=hS;function pS(){const e=new Map;for(const t of us.operators.twoChar)e.set(t.pattern,j[t.token]);return e}function dS(){const e=new Map;for(const t of us.operators.singleChar)e.set(t.pattern,j[t.token]);return e}function gS(e){return us.operators.singleChar.find(n=>n.pattern===e)?.special}const wS=pS(),_S=dS();function yS(e){const t=[];let n=0,r=!0;for(;n<e.length;){if(zw(e[n])){n++;continue}const s=e[n];if(s===us.special.newline.pattern){const u=n;for(t.push({token:j.Newline,lexeme:s,start:u,end:n+1}),n++;n<e.length&&e[n]===`