numpy-ts 0.9.0 → 0.11.0

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.
@@ -1,4 +1,4 @@
1
- "use strict";var dt=Object.defineProperty;var wc=Object.getOwnPropertyDescriptor;var zc=Object.getOwnPropertyNames;var Ic=Object.prototype.hasOwnProperty;var k=(r,t)=>()=>(r&&(t=r(r=0)),t);var gt=(r,t)=>{for(var e in t)dt(r,e,{get:t[e],enumerable:!0})},_c=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of zc(t))!Ic.call(r,o)&&o!==e&&dt(r,o,{get:()=>t[o],enumerable:!(n=wc(t,o))||n.enumerable});return r};var At=r=>_c(dt({},"__esModule",{value:!0}),r);function _e(r){if(!r.includes(":")){if(r.includes("."))throw new Error(`Invalid slice index: "${r}" (must be integer)`);let a=parseInt(r,10);if(isNaN(a))throw new Error(`Invalid slice index: "${r}"`);return{start:a,stop:null,step:1,isIndex:!0}}let t=r.split(":");if(t.length>3)throw new Error(`Invalid slice notation: "${r}" (too many colons)`);let e=t[0]===""?null:parseInt(t[0],10),n=t[1]===""||t[1]===void 0?null:parseInt(t[1],10),o=t[2]===""||t[2]===void 0?1:parseInt(t[2],10);if(e!==null&&isNaN(e))throw new Error(`Invalid start index in slice: "${r}"`);if(n!==null&&isNaN(n))throw new Error(`Invalid stop index in slice: "${r}"`);if(isNaN(o))throw new Error(`Invalid step in slice: "${r}"`);if(o===0)throw new Error("Slice step cannot be zero");return{start:e,stop:n,step:o,isIndex:!1}}function Be(r,t){let{start:e,stop:n}=r,{step:o,isIndex:a}=r;if(a){if(e===null)throw new Error("Index cannot be null");let i=e<0?t+e:e;if(i<0||i>=t)throw new Error(`Index ${e} is out of bounds for size ${t}`);return{start:i,stop:i+1,step:1,isIndex:!0}}return o>0?(e===null&&(e=0),n===null&&(n=t)):(e===null&&(e=t-1),n===null&&(n=-t-1)),e<0&&(e=t+e),n<0&&(n=t+n),e=Math.max(0,Math.min(e,t)),n=Math.max(-1,Math.min(n,t)),{start:e,stop:n,step:o,isIndex:!1}}var ve=k(()=>{"use strict"});function U(r){switch(r){case"float64":return Float64Array;case"float32":return Float32Array;case"int64":return BigInt64Array;case"int32":return Int32Array;case"int16":return Int16Array;case"int8":return Int8Array;case"uint64":return BigUint64Array;case"uint32":return Uint32Array;case"uint16":return Uint16Array;case"uint8":return Uint8Array;case"bool":return Uint8Array;default:throw new Error(`Unknown dtype: ${r}`)}}function Oe(r){switch(r){case"float64":case"int64":case"uint64":return 8;case"float32":case"int32":case"uint32":return 4;case"int16":case"uint16":return 2;case"int8":case"uint8":case"bool":return 1;default:throw new Error(`Unknown dtype: ${r}`)}}function Te(r){return r==="int64"||r==="int32"||r==="int16"||r==="int8"||r==="uint64"||r==="uint32"||r==="uint16"||r==="uint8"}function Ee(r){return r==="float64"||r==="float32"}function z(r){return r==="int64"||r==="uint64"}function C(r,t){if(r===t)return r;if(r==="bool")return t;if(t==="bool")return r;if(Ee(r)||Ee(t)){if(r==="float64"||t==="float64")return"float64";if(r==="float32"){let c=t;return c==="int32"||c==="int64"||c==="uint32"||c==="uint64"?"float64":"float32"}if(t==="float32"){let c=r;return c==="int32"||c==="int64"||c==="uint32"||c==="uint64"?"float64":"float32"}return"float32"}let e=r.startsWith("int"),n=t.startsWith("int"),o=r.startsWith("uint"),a=t.startsWith("uint"),i=c=>c.includes("64")?64:c.includes("32")?32:c.includes("16")?16:c.includes("8")?8:0,u=i(r),s=i(t);if(r==="int64"&&t==="uint64"||r==="uint64"&&t==="int64")return"float64";if(e&&a&&u===s){if(u===8)return"int16";if(u===16)return"int32";if(u===32)return"int64"}if(o&&n&&u===s){if(s===8)return"int16";if(s===16)return"int32";if(s===32)return"int64"}if(e&&n||o&&a){let c=Math.max(u,s);return e?c===64?"int64":c===32?"int32":c===16?"int16":"int8":c===64?"uint64":c===32?"uint32":c===16?"uint16":"uint8"}return e&&a?u>s?r:s===8?"int16":s===16?"int32":s===32?"int64":"float64":o&&n?s>u?t:u===8?"int16":u===16?"int32":u===32?"int64":"float64":"float64"}var F,j=k(()=>{"use strict";F="float64"});function G(r){let t=new Array(r.length),e=1;for(let n=r.length-1;n>=0;n--)t[n]=e,e*=r[n];return t}var N,R=k(()=>{"use strict";j();N=class r{constructor(t,e,n,o,a){this._data=t,this._shape=e,this._strides=n,this._offset=o,this._dtype=a}get shape(){return this._shape}get ndim(){return this._shape.length}get size(){return this._shape.reduce((t,e)=>t*e,1)}get dtype(){return this._dtype}get data(){return this._data}get strides(){return this._strides}get offset(){return this._offset}get isCContiguous(){let t=this._shape,e=this._strides,n=t.length;if(n===0)return!0;if(n===1)return e[0]===1;let o=1;for(let a=n-1;a>=0;a--){if(e[a]!==o)return!1;o*=t[a]}return!0}get isFContiguous(){let t=this._shape,e=this._strides,n=t.length;if(n===0)return!0;if(n===1)return e[0]===1;let o=1;for(let a=0;a<n;a++){if(e[a]!==o)return!1;o*=t[a]}return!0}iget(t){let e=this._shape,n=this._strides,o=e.length;if(o===0)return this._data[this._offset];let a=t,i=this._offset;for(let u=0;u<o;u++){let s=1;for(let l=u+1;l<o;l++)s*=e[l];let c=Math.floor(a/s);a=a%s,i+=c*n[u]}return this._data[i]}iset(t,e){let n=this._shape,o=this._strides,a=n.length;if(a===0){this._data[this._offset]=e;return}let i=t,u=this._offset;for(let s=0;s<a;s++){let c=1;for(let m=s+1;m<a;m++)c*=n[m];let l=Math.floor(i/c);i=i%c,u+=l*o[s]}this._data[u]=e}get(...t){let e=this._strides,n=this._offset;for(let o=0;o<t.length;o++)n+=t[o]*e[o];return this._data[n]}set(t,e){let n=this._strides,o=this._offset;for(let a=0;a<t.length;a++)o+=t[a]*n[a];this._data[o]=e}copy(){let t=Array.from(this._shape),e=this._dtype,n=this.size,o=U(e);if(!o)throw new Error(`Cannot copy array with dtype ${e}`);let a=new o(n);if(this.isCContiguous&&this._offset===0)if(z(e)){let i=this._data,u=a;for(let s=0;s<n;s++)u[s]=i[s]}else a.set(this._data);else if(z(e)){let i=a;for(let u=0;u<n;u++)i[u]=this.iget(u)}else for(let i=0;i<n;i++)a[i]=this.iget(i);return new r(a,t,r._computeStrides(t),0,e)}static fromData(t,e,n,o,a){let i=o??r._computeStrides(e),u=a??0;return new r(t,e,i,u,n)}static zeros(t,e=F){let n=t.reduce((i,u)=>i*u,1),o=U(e);if(!o)throw new Error(`Cannot create array with dtype ${e}`);let a=new o(n);return new r(a,t,r._computeStrides(t),0,e)}static ones(t,e=F){let n=t.reduce((i,u)=>i*u,1),o=U(e);if(!o)throw new Error(`Cannot create array with dtype ${e}`);let a=new o(n);return z(e)?a.fill(BigInt(1)):a.fill(1),new r(a,t,r._computeStrides(t),0,e)}static _computeStrides(t){let e=new Array(t.length),n=1;for(let o=t.length-1;o>=0;o--)e[o]=n,n*=t[o];return e}}});function xr(r,t){let e=r.length,n=t.length,o=Math.max(e,n),a=new Array(o);for(let i=0;i<o;i++){let u=i<o-e?1:r[i-(o-e)],s=i<o-n?1:t[i-(o-n)];if(u===s)a[i]=u;else if(u===1)a[i]=s;else if(s===1)a[i]=u;else throw new Error(`operands could not be broadcast together with shapes ${JSON.stringify(Array.from(r))} ${JSON.stringify(Array.from(t))}`)}return a}function Bc(r,t,e){let n=r.length,o=e.length,a=new Array(o).fill(0);for(let i=0;i<n;i++){let u=o-n+i,s=r[i],c=e[u];if(s===c)a[u]=t[i];else if(s===1)a[u]=0;else throw new Error("Invalid broadcast")}return a}function Vr(r,t){let e=Bc(r.shape,r.strides,t);return N.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function L(r,t,e,n){let o=xr(r.shape,t.shape),a=Vr(r,o),i=Vr(t,o),u=C(r.dtype,t.dtype),s=N.zeros(o,u),c=s.data,l=s.size;if(z(u)){let m=c;for(let f=0;f<l;f++){let p=a.iget(f),y=i.iget(f),d=typeof p=="bigint"?p:BigInt(Math.round(p)),g=typeof y=="bigint"?y:BigInt(Math.round(y));n==="add"?m[f]=d+g:n==="subtract"?m[f]=d-g:n==="multiply"?m[f]=d*g:n==="divide"?m[f]=d/g:m[f]=BigInt(Math.round(e(Number(d),Number(g))))}}else{let m=z(r.dtype)||z(t.dtype);for(let f=0;f<l;f++){let p=a.iget(f),y=i.iget(f),d=Number(p),g=Number(y);c[f]=e(d,g)}}return s}function ar(r,t,e){let n=xr(r.shape,t.shape),o=Vr(r,n),a=Vr(t,n),i=n.reduce((c,l)=>c*l,1),u=new Uint8Array(i),s=z(r.dtype)||z(t.dtype);for(let c=0;c<i;c++){let l=o.iget(c),m=a.iget(c),f=Number(l),p=Number(m);u[c]=e(f,p)?1:0}return N.fromData(u,n,"bool")}function V(r,t,e=!0){let n=r.dtype,o=Array.from(r.shape),a=r.size,u=e?n:n!=="float32"&&n!=="float64"?"float64":n,s=N.zeros(o,u),c=s.data,l=r.data;if(z(n))if(z(u)){let m=c;for(let f=0;f<a;f++){let p=Number(l[f]);m[f]=BigInt(Math.round(t(p)))}}else for(let m=0;m<a;m++)c[m]=t(Number(l[m]));else for(let m=0;m<a;m++)c[m]=t(Number(l[m]));return s}var cr=k(()=>{"use strict";R();j()});function ht(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function Ue(r,t){return typeof t=="number"?Tc(r,t):ht(r,t)?vc(r,t):L(r,t,(e,n)=>e+n,"add")}function vc(r,t){let e=C(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,u=n.data;if(z(e)){let s=u;if(!z(r.dtype)||!z(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),f=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));s[l]=m+f}else{let l=a,m=i;for(let f=0;f<o;f++)s[f]=l[f]+m[f]}}else if(z(r.dtype)||z(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof i[c]=="bigint"?Number(i[c]):i[c];u[c]=l+m}else for(let c=0;c<o;c++)u[c]=a[c]+i[c];return n}function $e(r,t){return typeof t=="number"?Uc(r,t):ht(r,t)?Ec(r,t):L(r,t,(e,n)=>e-n,"subtract")}function Ec(r,t){let e=C(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,u=n.data;if(z(e)){let s=u;if(!z(r.dtype)||!z(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),f=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));s[l]=m-f}else{let l=a,m=i;for(let f=0;f<o;f++)s[f]=l[f]-m[f]}}else if(z(r.dtype)||z(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof i[c]=="bigint"?Number(i[c]):i[c];u[c]=l-m}else for(let c=0;c<o;c++)u[c]=a[c]-i[c];return n}function Me(r,t){return typeof t=="number"?$c(r,t):ht(r,t)?Oc(r,t):L(r,t,(e,n)=>e*n,"multiply")}function Oc(r,t){let e=C(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,u=n.data;if(z(e)){let s=u;if(!z(r.dtype)||!z(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),f=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));s[l]=m*f}else{let l=a,m=i;for(let f=0;f<o;f++)s[f]=l[f]*m[f]}}else if(z(r.dtype)||z(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof i[c]=="bigint"?Number(i[c]):i[c];u[c]=l*m}else for(let c=0;c<o;c++)u[c]=a[c]*i[c];return n}function ke(r,t){if(typeof t=="number")return Mc(r,t);let e=r.dtype==="float64",n=t.dtype==="float64",o=r.dtype==="float32",a=t.dtype==="float32";if(e||n){let s=e?r:dr(r,"float64"),c=n?t:dr(t,"float64");return L(s,c,(l,m)=>l/m,"divide")}if(o||a){let s=o?r:dr(r,"float32"),c=a?t:dr(t,"float32");return L(s,c,(l,m)=>l/m,"divide")}let i=dr(r,"float64"),u=dr(t,"float64");return L(i,u,(s,c)=>s/c,"divide")}function dr(r,t){let e=N.zeros(Array.from(r.shape),t),n=r.size,o=r.data,a=e.data;for(let i=0;i<n;i++)a[i]=Number(o[i]);return e}function Tc(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),u=i.data;if(z(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]+l}else for(let s=0;s<a;s++)u[s]=Number(o[s])+t;return i}function Uc(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),u=i.data;if(z(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]-l}else for(let s=0;s<a;s++)u[s]=Number(o[s])-t;return i}function $c(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),u=i.data;if(z(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]*l}else for(let s=0;s<a;s++)u[s]=Number(o[s])*t;return i}function Mc(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=e!=="float32"&&e!=="float64"?"float64":e,s=N.zeros(n,u),c=s.data;if(z(e))for(let l=0;l<a;l++)c[l]=Number(o[l])/t;else for(let l=0;l<a;l++)c[l]=Number(o[l])/t;return s}function Ce(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=N.zeros(e,t),i=a.data;if(z(t)){let u=n,s=i;for(let c=0;c<o;c++){let l=u[c];s[c]=l<0n?-l:l}}else for(let u=0;u<o;u++)i[u]=Math.abs(Number(n[u]));return a}function Ve(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=N.zeros(e,t),i=a.data;if(z(t)){let u=n,s=i;for(let c=0;c<o;c++)s[c]=-u[c]}else for(let u=0;u<o;u++)i[u]=-Number(n[u]);return a}function Pe(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=N.zeros(e,t),i=a.data;if(z(t)){let u=n,s=i;for(let c=0;c<o;c++){let l=u[c];s[c]=l>0n?1n:l<0n?-1n:0n}}else for(let u=0;u<o;u++){let s=Number(n[u]);i[u]=s>0?1:s<0?-1:0}return a}function Pr(r,t){return typeof t=="number"?kc(r,t):L(r,t,(e,n)=>(e%n+n)%n,"mod")}function kc(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),u=i.data;if(z(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++){let f=s[m];c[m]=(f%l+l)%l}}else for(let s=0;s<a;s++){let c=Number(o[s]);u[s]=(c%t+t)%t}return i}function bt(r,t){return typeof t=="number"?Cc(r,t):L(r,t,(e,n)=>Math.floor(e/n),"floor_divide")}function Cc(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),u=i.data;if(z(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]/l}else for(let s=0;s<a;s++)u[s]=Math.floor(Number(o[s])/t);return i}function qe(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=N.zeros(e,t),i=a.data;for(let u=0;u<o;u++)i[u]=n[u];return a}function Fe(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,i=t!=="float32"&&t!=="float64"?"float64":t,u=N.zeros(e,i),s=u.data;if(z(t))for(let c=0;c<o;c++)s[c]=1/Number(n[c]);else for(let c=0;c<o;c++)s[c]=1/Number(n[c]);return u}function Re(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,i=t!=="float32"&&t!=="float64"?"float64":t,u=N.zeros(e,i),s=u.data;for(let c=0;c<o;c++)s[c]=Math.cbrt(Number(n[c]));return u}function je(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",i=N.zeros(e,a),u=i.data;for(let s=0;s<o;s++)u[s]=Math.abs(Number(n[s]));return i}function Le(r,t){let e=bt(r,t),n=Pr(r,t);return[e,n]}function We(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=N.zeros(e,t),i=a.data;if(z(t)){let u=n,s=i;for(let c=0;c<o;c++)s[c]=u[c]*u[c]}else for(let u=0;u<o;u++){let s=Number(n[u]);i[u]=s*s}return a}function Ze(r,t){return Pr(r,t)}function Ge(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",i=N.zeros(n,a),u=i.data;if(typeof t=="number")for(let s=0;s<o;s++){let c=Number(r.data[s]);c<0?u[s]=0:c===0?u[s]=t:u[s]=1}else{let s=t.data,c=t.shape;if(n.every((l,m)=>l===c[m]))for(let l=0;l<o;l++){let m=Number(r.data[l]);m<0?u[l]=0:m===0?u[l]=Number(s[l]):u[l]=1}else for(let l=0;l<o;l++){let m=Number(r.data[l]),f=l%t.size;m<0?u[l]=0:m===0?u[l]=Number(s[f]):u[l]=1}}return i}var He=k(()=>{"use strict";R();j();cr()});function sr(r){if(r.length===0)return[];if(r.length===1)return Array.from(r[0]);let t=Math.max(...r.map(n=>n.length)),e=new Array(t);for(let n=0;n<t;n++){let o=1;for(let a of r){let i=a.length-t+n,u=i<0?1:a[i];if(u!==1){if(o===1)o=u;else if(o!==u)return null}}e[n]=o}return e}function Pc(r,t,e){let n=r.length,o=e.length,a=new Array(o).fill(0);for(let i=0;i<n;i++){let u=o-n+i,s=r[i],c=e[u];if(s===c)a[u]=t[i];else if(s===1)a[u]=0;else throw new Error("Invalid broadcast")}return a}function X(r,t){let e=Pc(r.shape,r.strides,t);return N.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function St(...r){let t=sr(r);if(t===null){let e=r.map(n=>`(${n.join(",")})`).join(" ");throw new Error(`shape mismatch: objects cannot be broadcast to a single shape. Mismatch is between ${e}`)}return t}var Nt=k(()=>{"use strict";R()});function Ye(r,t){return typeof t=="number"?qc(r,t):ar(r,t,(e,n)=>e>n)}function Je(r,t){return typeof t=="number"?Fc(r,t):ar(r,t,(e,n)=>e>=n)}function Qe(r,t){return typeof t=="number"?Rc(r,t):ar(r,t,(e,n)=>e<n)}function Xe(r,t){return typeof t=="number"?jc(r,t):ar(r,t,(e,n)=>e<=n)}function Ke(r,t){return typeof t=="number"?Lc(r,t):ar(r,t,(e,n)=>e===n)}function rn(r,t){return typeof t=="number"?Wc(r,t):ar(r,t,(e,n)=>e!==n)}function Dt(r,t,e=1e-5,n=1e-8){return typeof t=="number"?Zc(r,t,e,n):ar(r,t,(o,a)=>{let i=Math.abs(o-a),u=n+e*Math.abs(a);return i<=u})}function tn(r,t,e=1e-5,n=1e-8){let o=Dt(r,t,e,n),a=o.data;for(let i=0;i<o.size;i++)if(a[i]===0)return!1;return!0}function en(r,t){let e=[Array.from(r.shape),Array.from(t.shape)],n=sr(e);if(n===null)return!1;let o=X(r,n),a=X(t,n),i=n.length,u=n.reduce((l,m)=>l*m,1),s=z(o.dtype),c=z(a.dtype);for(let l=0;l<u;l++){let m=l,f=new Array(i);for(let d=i-1;d>=0;d--)f[d]=m%n[d],m=Math.floor(m/n[d]);let p=o.get(...f),y=a.get(...f);if(s||c){let d=typeof p=="bigint"?p:BigInt(Number(p)),g=typeof y=="bigint"?y:BigInt(Number(y));if(d!==g)return!1}else if(p!==y)return!1}return!0}function qc(r,t){let e=new Uint8Array(r.size),n=r.data;for(let o=0;o<r.size;o++)e[o]=n[o]>t?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function Fc(r,t){let e=new Uint8Array(r.size),n=r.data;for(let o=0;o<r.size;o++)e[o]=n[o]>=t?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function Rc(r,t){let e=new Uint8Array(r.size),n=r.data;for(let o=0;o<r.size;o++)e[o]=n[o]<t?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function jc(r,t){let e=new Uint8Array(r.size),n=r.data;for(let o=0;o<r.size;o++)e[o]=n[o]<=t?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function Lc(r,t){let e=new Uint8Array(r.size),n=r.data,o=r.dtype;if(z(o)){let a=BigInt(Math.round(t)),i=n;for(let u=0;u<r.size;u++)e[u]=i[u]===a?1:0}else for(let a=0;a<r.size;a++)e[a]=n[a]===t?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function Wc(r,t){let e=new Uint8Array(r.size),n=r.data;for(let o=0;o<r.size;o++)e[o]=n[o]!==t?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function Zc(r,t,e,n){let o=new Uint8Array(r.size),a=r.data,i=r.dtype;if(z(i)){let u=a;for(let s=0;s<r.size;s++){let c=Number(u[s]),l=Math.abs(c-t),m=n+e*Math.abs(t);o[s]=l<=m?1:0}}else for(let u=0;u<r.size;u++){let s=Number(a[u]),c=Math.abs(s-t),l=n+e*Math.abs(t);o[u]=c<=l?1:0}return N.fromData(o,Array.from(r.shape),"bool")}var nn=k(()=>{"use strict";R();j();cr();Nt()});function O(r,t){let e=0,n=1;for(let o=r.length-1;o>=0;o--)e+=r[o]*n,n*=t[o];return e}function T(r,t,e,n){let o=n.length,a=new Array(o),i=Array.from(n).filter((s,c)=>c!==t),u=r;for(let s=i.length-1;s>=0;s--)a[s>=t?s+1:s]=u%i[s],u=Math.floor(u/i[s]);return a[t]=e,a}var xt=k(()=>{"use strict"});function wr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,i=r.size,u=r.data;if(t===void 0)if(z(n)){let y=u,d=BigInt(0);for(let g=0;g<i;g++)d+=y[g];return Number(d)}else{let y=0;for(let d=0;d<i;d++)y+=Number(u[d]);return y}let s=t;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((y,d)=>d!==s);if(c.length===0)return wr(r);let l=N.zeros(c,n),m=l.data,f=o[s],p=c.reduce((y,d)=>y*d,1);if(z(n)){let y=u,d=m;for(let g=0;g<p;g++){let b=BigInt(0);for(let h=0;h<f;h++){let A=T(g,s,h,o),S=O(A,o);b+=y[S]}d[g]=b}}else for(let y=0;y<p;y++){let d=0;for(let g=0;g<f;g++){let b=T(y,s,g,o),h=O(b,o);d+=Number(u[h])}m[y]=d}if(e){let y=[...o];return y[s]=1,N.fromData(m,y,n)}return l}function qr(r,t,e=!1){let n=r.dtype,o=r.shape;if(t===void 0)return wr(r)/r.size;let a=t;if(a<0&&(a=o.length+a),a<0||a>=o.length)throw new Error(`axis ${t} is out of bounds for array of dimension ${o.length}`);let i=wr(r,t,e);if(typeof i=="number")return i/o[a];let u=o[a],s=n;(z(n)||n.startsWith("int")||n.startsWith("uint"))&&(s="float64");let c=N.zeros(Array.from(i.shape),s),l=c.data,m=i.data;if(z(n)){let f=m;for(let p=0;p<l.length;p++)l[p]=Number(f[p])/u}else for(let f=0;f<l.length;f++)l[f]=Number(m[f])/u;return c}function Fr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,i=r.size,u=r.data;if(t===void 0){if(i===0)throw new Error("max of empty array");let y=u[0];for(let d=1;d<i;d++)u[d]>y&&(y=u[d]);return Number(y)}let s=t;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((y,d)=>d!==s);if(c.length===0)return Fr(r);let l=N.zeros(c,n),m=l.data,f=o[s],p=c.reduce((y,d)=>y*d,1);if(z(n)){let y=u,d=m;for(let g=0;g<p;g++){let b=T(g,s,0,o),h=O(b,o),A=y[h];for(let S=1;S<f;S++){let D=T(g,s,S,o),x=O(D,o),w=y[x];w>A&&(A=w)}d[g]=A}}else for(let y=0;y<p;y++){let d=-1/0;for(let g=0;g<f;g++){let b=T(y,s,g,o),h=O(b,o),A=Number(u[h]);A>d&&(d=A)}m[y]=d}if(e){let y=[...o];return y[s]=1,N.fromData(m,y,n)}return l}function wt(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,i=r.size,u=r.data;if(t===void 0)if(z(n)){let y=u,d=BigInt(1);for(let g=0;g<i;g++)d*=y[g];return Number(d)}else{let y=1;for(let d=0;d<i;d++)y*=Number(u[d]);return y}let s=t;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((y,d)=>d!==s);if(c.length===0)return wt(r);let l=N.zeros(c,n),m=l.data,f=o[s],p=c.reduce((y,d)=>y*d,1);if(z(n)){let y=u,d=m;for(let g=0;g<p;g++){let b=BigInt(1);for(let h=0;h<f;h++){let A=T(g,s,h,o),S=O(A,o);b*=y[S]}d[g]=b}}else for(let y=0;y<p;y++){let d=1;for(let g=0;g<f;g++){let b=T(y,s,g,o),h=O(b,o);d*=Number(u[h])}m[y]=d}if(e){let y=[...o];return y[s]=1,N.fromData(m,y,n)}return l}function Rr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,i=r.size,u=r.data;if(t===void 0){if(i===0)throw new Error("min of empty array");let y=u[0];for(let d=1;d<i;d++)u[d]<y&&(y=u[d]);return Number(y)}let s=t;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((y,d)=>d!==s);if(c.length===0)return Rr(r);let l=N.zeros(c,n),m=l.data,f=o[s],p=c.reduce((y,d)=>y*d,1);if(z(n)){let y=u,d=m;for(let g=0;g<p;g++){let b=T(g,s,0,o),h=O(b,o),A=y[h];for(let S=1;S<f;S++){let D=T(g,s,S,o),x=O(D,o),w=y[x];w<A&&(A=w)}d[g]=A}}else for(let y=0;y<p;y++){let d=1/0;for(let g=0;g<f;g++){let b=T(y,s,g,o),h=O(b,o),A=Number(u[h]);A<d&&(d=A)}m[y]=d}if(e){let y=[...o];return y[s]=1,N.fromData(m,y,n)}return l}function zt(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.size,i=r.data;if(t===void 0){if(a===0)throw new Error("argmin of empty array");let p=i[0],y=0;for(let d=1;d<a;d++)i[d]<p&&(p=i[d],y=d);return y}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((p,y)=>y!==u);if(s.length===0)return zt(r);let c=N.zeros(s,"int32"),l=c.data,m=n[u],f=s.reduce((p,y)=>p*y,1);if(z(e)){let p=i;for(let y=0;y<f;y++){let d=T(y,u,0,n),g=O(d,n),b=p[g],h=0;for(let A=1;A<m;A++){let S=T(y,u,A,n),D=O(S,n),x=p[D];x<b&&(b=x,h=A)}l[y]=h}}else for(let p=0;p<f;p++){let y=1/0,d=0;for(let g=0;g<m;g++){let b=T(p,u,g,n),h=O(b,n),A=Number(i[h]);A<y&&(y=A,d=g)}l[p]=d}return c}function It(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.size,i=r.data;if(t===void 0){if(a===0)throw new Error("argmax of empty array");let p=i[0],y=0;for(let d=1;d<a;d++)i[d]>p&&(p=i[d],y=d);return y}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((p,y)=>y!==u);if(s.length===0)return It(r);let c=N.zeros(s,"int32"),l=c.data,m=n[u],f=s.reduce((p,y)=>p*y,1);if(z(e)){let p=i;for(let y=0;y<f;y++){let d=T(y,u,0,n),g=O(d,n),b=p[g],h=0;for(let A=1;A<m;A++){let S=T(y,u,A,n),D=O(S,n),x=p[D];x>b&&(b=x,h=A)}l[y]=h}}else for(let p=0;p<f;p++){let y=-1/0,d=0;for(let g=0;g<m;g++){let b=T(p,u,g,n),h=O(b,n),A=Number(i[h]);A>y&&(y=A,d=g)}l[p]=d}return c}function _t(r,t,e=0,n=!1){let o=r.shape,a=o.length,i=r.size,u=r.data,s=qr(r,t,n);if(t===void 0){let b=s,h=0;for(let A=0;A<i;A++){let S=Number(u[A])-b;h+=S*S}return h/(i-e)}let c=t;if(c<0&&(c=a+c),c<0||c>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let l=o[c],m=s,f=m.data,p=n?m.shape:Array.from(o).filter((b,h)=>h!==c),y=N.zeros(Array.from(p),"float64"),d=y.data,g=p.reduce((b,h)=>b*h,1);for(let b=0;b<g;b++){let h=0,A=Number(f[b]);for(let S=0;S<l;S++){let D=T(b,c,S,o),x=O(D,o),w=Number(u[x])-A;h+=w*w}d[b]=h/(l-e)}return y}function on(r,t,e=0,n=!1){let o=_t(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=N.zeros(Array.from(o.shape),"float64"),i=o.data,u=a.data;for(let s=0;s<i.length;s++)u[s]=Math.sqrt(Number(i[s]));return a}function Bt(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,i=r.data;if(t===void 0){for(let p=0;p<a;p++)if(!i[p])return!1;return!0}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((p,y)=>y!==u);if(s.length===0)return Bt(r);let c=N.zeros(s,"bool"),l=c.data,m=n[u],f=s.reduce((p,y)=>p*y,1);for(let p=0;p<f;p++){let y=!0;for(let d=0;d<m;d++){let g=T(p,u,d,n),b=O(g,n);if(!i[b]){y=!1;break}}l[p]=y?1:0}if(e){let p=[...n];return p[u]=1,N.fromData(l,p,"bool")}return c}function vt(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,i=r.data;if(t===void 0){for(let p=0;p<a;p++)if(i[p])return!0;return!1}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((p,y)=>y!==u);if(s.length===0)return vt(r);let c=N.zeros(s,"bool"),l=c.data,m=n[u],f=s.reduce((p,y)=>p*y,1);for(let p=0;p<f;p++){let y=!1;for(let d=0;d<m;d++){let g=T(p,u,d,n),b=O(g,n);if(i[b]){y=!0;break}}l[p]=y?1:0}if(e){let p=[...n];return p[u]=1,N.fromData(l,p,"bool")}return c}function Et(r,t){let e=r.shape,n=e.length,o=r.data;if(t===void 0){let f=r.size,p=new Float64Array(f),y=0;for(let d=0;d<f;d++)y+=Number(o[d]),p[d]=y;return N.fromData(p,[f],"float64")}let a=t;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=new Float64Array(r.size),u=e[a],s=[],c=1;for(let f=n-1;f>=0;f--)s.unshift(c),c*=e[f];let l=r.size,m=s[a];for(let f=0;f<l;f++)Math.floor(f/m)%u===0?i[f]=Number(o[f]):i[f]=i[f-m]+Number(o[f]);return N.fromData(i,[...e],"float64")}function Ot(r,t){let e=r.shape,n=e.length,o=r.data;if(t===void 0){let f=r.size,p=new Float64Array(f),y=1;for(let d=0;d<f;d++)y*=Number(o[d]),p[d]=y;return N.fromData(p,[f],"float64")}let a=t;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=new Float64Array(r.size),u=e[a],s=[],c=1;for(let f=n-1;f>=0;f--)s.unshift(c),c*=e[f];let l=r.size,m=s[a];for(let f=0;f<l;f++)Math.floor(f/m)%u===0?i[f]=Number(o[f]):i[f]=i[f-m]*Number(o[f]);return N.fromData(i,[...e],"float64")}function Tt(r,t,e=!1){let n=Fr(r,t,e),o=Rr(r,t,e);if(typeof n=="number"&&typeof o=="number")return n-o;let a=n,i=o,u=a.data,s=i.data,c=new Float64Array(a.size);for(let l=0;l<a.size;l++)c[l]=Number(u[l])-Number(s[l]);return N.fromData(c,[...a.shape],"float64")}function Ut(r,t,e=!1){return gr(r,.5,t,e)}function $t(r,t,e,n=!1){return gr(r,t/100,e,n)}function gr(r,t,e,n=!1){if(t<0||t>1)throw new Error("Quantile must be between 0 and 1");let o=r.shape,a=o.length,i=r.data;if(e===void 0){let p=[];for(let A=0;A<r.size;A++)p.push(Number(i[A]));p.sort((A,S)=>A-S);let y=p.length,d=t*(y-1),g=Math.floor(d),b=Math.ceil(d);if(g===b)return p[g];let h=d-g;return p[g]*(1-h)+p[b]*h}let u=e;if(u<0&&(u=a+u),u<0||u>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);let s=Array.from(o).filter((p,y)=>y!==u);if(s.length===0)return gr(r,t);let c=s.reduce((p,y)=>p*y,1),l=o[u],m=new Float64Array(c);for(let p=0;p<c;p++){let y=[];for(let A=0;A<l;A++){let S=T(p,u,A,o),D=O(S,o);y.push(Number(i[D]))}y.sort((A,S)=>A-S);let d=y.length,g=t*(d-1),b=Math.floor(g),h=Math.ceil(g);if(b===h)m[p]=y[b];else{let A=g-b;m[p]=y[b]*(1-A)+y[h]*A}}let f=N.fromData(m,s,"float64");if(n){let p=[...o];return p[u]=1,N.fromData(m,p,"float64")}return f}function jr(r,t,e,n=!1){let o=r.shape,a=o.length,i=r.data;if(e===void 0)return qr(r,t,n);if(t===void 0){let y=0,d=0,g=e.data;for(let b=0;b<r.size;b++){let h=Number(g[b%e.size]);y+=Number(i[b])*h,d+=h}return d===0?NaN:y/d}let u=t;if(u<0&&(u=a+u),u<0||u>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let s=Array.from(o).filter((y,d)=>d!==u);if(s.length===0)return jr(r,void 0,e);let c=s.reduce((y,d)=>y*d,1),l=o[u],m=e.data,f=new Float64Array(c);for(let y=0;y<c;y++){let d=0,g=0;for(let b=0;b<l;b++){let h=T(y,u,b,o),A=O(h,o),S=Number(m[b%e.size]);d+=Number(i[A])*S,g+=S}f[y]=g===0?NaN:d/g}let p=N.fromData(f,s,"float64");if(n){let y=[...o];return y[u]=1,N.fromData(f,y,"float64")}return p}function Lr(r,t,e=!1){let n=r.shape,o=n.length,a=r.data;if(t===void 0){let f=0;for(let p=0;p<r.size;p++){let y=Number(a[p]);isNaN(y)||(f+=y)}return f}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let u=Array.from(n).filter((f,p)=>p!==i);if(u.length===0)return Lr(r);let s=u.reduce((f,p)=>f*p,1),c=n[i],l=new Float64Array(s);for(let f=0;f<s;f++){let p=0;for(let y=0;y<c;y++){let d=T(f,i,y,n),g=O(d,n),b=Number(a[g]);isNaN(b)||(p+=b)}l[f]=p}let m=N.fromData(l,u,"float64");if(e){let f=[...n];return f[i]=1,N.fromData(l,f,"float64")}return m}function Wr(r,t,e=!1){let n=r.shape,o=n.length,a=r.data;if(t===void 0){let f=1;for(let p=0;p<r.size;p++){let y=Number(a[p]);isNaN(y)||(f*=y)}return f}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let u=Array.from(n).filter((f,p)=>p!==i);if(u.length===0)return Wr(r);let s=u.reduce((f,p)=>f*p,1),c=n[i],l=new Float64Array(s);for(let f=0;f<s;f++){let p=1;for(let y=0;y<c;y++){let d=T(f,i,y,n),g=O(d,n),b=Number(a[g]);isNaN(b)||(p*=b)}l[f]=p}let m=N.fromData(l,u,"float64");if(e){let f=[...n];return f[i]=1,N.fromData(l,f,"float64")}return m}function Zr(r,t,e=!1){let n=r.shape,o=n.length,a=r.data;if(t===void 0){let f=0,p=0;for(let y=0;y<r.size;y++){let d=Number(a[y]);isNaN(d)||(f+=d,p++)}return p===0?NaN:f/p}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let u=Array.from(n).filter((f,p)=>p!==i);if(u.length===0)return Zr(r);let s=u.reduce((f,p)=>f*p,1),c=n[i],l=new Float64Array(s);for(let f=0;f<s;f++){let p=0,y=0;for(let d=0;d<c;d++){let g=T(f,i,d,n),b=O(g,n),h=Number(a[b]);isNaN(h)||(p+=h,y++)}l[f]=y===0?NaN:p/y}let m=N.fromData(l,u,"float64");if(e){let f=[...n];return f[i]=1,N.fromData(l,f,"float64")}return m}function zr(r,t,e=0,n=!1){let o=r.shape,a=o.length,i=r.data;if(t===void 0){let p=0,y=0;for(let b=0;b<r.size;b++){let h=Number(i[b]);isNaN(h)||(p+=h,y++)}if(y-e<=0)return NaN;let d=p/y,g=0;for(let b=0;b<r.size;b++){let h=Number(i[b]);isNaN(h)||(g+=(h-d)**2)}return g/(y-e)}let u=t;if(u<0&&(u=a+u),u<0||u>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let s=Array.from(o).filter((p,y)=>y!==u);if(s.length===0)return zr(r,void 0,e);let c=s.reduce((p,y)=>p*y,1),l=o[u],m=new Float64Array(c);for(let p=0;p<c;p++){let y=0,d=0;for(let h=0;h<l;h++){let A=T(p,u,h,o),S=O(A,o),D=Number(i[S]);isNaN(D)||(y+=D,d++)}if(d-e<=0){m[p]=NaN;continue}let g=y/d,b=0;for(let h=0;h<l;h++){let A=T(p,u,h,o),S=O(A,o),D=Number(i[S]);isNaN(D)||(b+=(D-g)**2)}m[p]=b/(d-e)}let f=N.fromData(m,s,"float64");if(n){let p=[...o];return p[u]=1,N.fromData(m,p,"float64")}return f}function Mt(r,t,e=0,n=!1){let o=zr(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=o,i=new Float64Array(a.size);for(let u=0;u<a.size;u++)i[u]=Math.sqrt(Number(a.data[u]));return N.fromData(i,[...a.shape],"float64")}function Gr(r,t,e=!1){let n=r.shape,o=n.length,a=r.data;if(t===void 0){let f=1/0;for(let p=0;p<r.size;p++){let y=Number(a[p]);!isNaN(y)&&y<f&&(f=y)}return f===1/0?NaN:f}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let u=Array.from(n).filter((f,p)=>p!==i);if(u.length===0)return Gr(r);let s=u.reduce((f,p)=>f*p,1),c=n[i],l=new Float64Array(s);for(let f=0;f<s;f++){let p=1/0;for(let y=0;y<c;y++){let d=T(f,i,y,n),g=O(d,n),b=Number(a[g]);!isNaN(b)&&b<p&&(p=b)}l[f]=p===1/0?NaN:p}let m=N.fromData(l,u,"float64");if(e){let f=[...n];return f[i]=1,N.fromData(l,f,"float64")}return m}function Hr(r,t,e=!1){let n=r.shape,o=n.length,a=r.data;if(t===void 0){let f=-1/0;for(let p=0;p<r.size;p++){let y=Number(a[p]);!isNaN(y)&&y>f&&(f=y)}return f===-1/0?NaN:f}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let u=Array.from(n).filter((f,p)=>p!==i);if(u.length===0)return Hr(r);let s=u.reduce((f,p)=>f*p,1),c=n[i],l=new Float64Array(s);for(let f=0;f<s;f++){let p=-1/0;for(let y=0;y<c;y++){let d=T(f,i,y,n),g=O(d,n),b=Number(a[g]);!isNaN(b)&&b>p&&(p=b)}l[f]=p===-1/0?NaN:p}let m=N.fromData(l,u,"float64");if(e){let f=[...n];return f[i]=1,N.fromData(l,f,"float64")}return m}function Yr(r,t){let e=r.shape,n=e.length,o=r.data;if(t===void 0){let l=1/0,m=-1;for(let f=0;f<r.size;f++){let p=Number(o[f]);!isNaN(p)&&p<l&&(l=p,m=f)}return m}let a=t;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=Array.from(e).filter((l,m)=>m!==a);if(i.length===0)return Yr(r);let u=i.reduce((l,m)=>l*m,1),s=e[a],c=new Int32Array(u);for(let l=0;l<u;l++){let m=1/0,f=0;for(let p=0;p<s;p++){let y=T(l,a,p,e),d=O(y,e),g=Number(o[d]);!isNaN(g)&&g<m&&(m=g,f=p)}c[l]=f}return N.fromData(c,i,"int32")}function Jr(r,t){let e=r.shape,n=e.length,o=r.data;if(t===void 0){let l=-1/0,m=-1;for(let f=0;f<r.size;f++){let p=Number(o[f]);!isNaN(p)&&p>l&&(l=p,m=f)}return m}let a=t;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=Array.from(e).filter((l,m)=>m!==a);if(i.length===0)return Jr(r);let u=i.reduce((l,m)=>l*m,1),s=e[a],c=new Int32Array(u);for(let l=0;l<u;l++){let m=-1/0,f=0;for(let p=0;p<s;p++){let y=T(l,a,p,e),d=O(y,e),g=Number(o[d]);!isNaN(g)&&g>m&&(m=g,f=p)}c[l]=f}return N.fromData(c,i,"int32")}function kt(r,t){let e=r.shape,n=e.length,o=r.data;if(t===void 0){let f=r.size,p=new Float64Array(f),y=0;for(let d=0;d<f;d++){let g=Number(o[d]);isNaN(g)||(y+=g),p[d]=y}return N.fromData(p,[f],"float64")}let a=t;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=new Float64Array(r.size),u=e[a],s=[],c=1;for(let f=n-1;f>=0;f--)s.unshift(c),c*=e[f];let l=r.size,m=s[a];for(let f=0;f<l;f++){let p=Number(o[f]);Math.floor(f/m)%u===0?i[f]=isNaN(p)?0:p:i[f]=i[f-m]+(isNaN(p)?0:p)}return N.fromData(i,[...e],"float64")}function Ct(r,t){let e=r.shape,n=e.length,o=r.data;if(t===void 0){let f=r.size,p=new Float64Array(f),y=1;for(let d=0;d<f;d++){let g=Number(o[d]);isNaN(g)||(y*=g),p[d]=y}return N.fromData(p,[f],"float64")}let a=t;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=new Float64Array(r.size),u=e[a],s=[],c=1;for(let f=n-1;f>=0;f--)s.unshift(c),c*=e[f];let l=r.size,m=s[a];for(let f=0;f<l;f++){let p=Number(o[f]);Math.floor(f/m)%u===0?i[f]=isNaN(p)?1:p:i[f]=i[f-m]*(isNaN(p)?1:p)}return N.fromData(i,[...e],"float64")}function Qr(r,t,e=!1){let n=r.shape,o=n.length,a=r.data;if(t===void 0){let f=[];for(let d=0;d<r.size;d++){let g=Number(a[d]);isNaN(g)||f.push(g)}if(f.length===0)return NaN;f.sort((d,g)=>d-g);let p=f.length,y=Math.floor(p/2);return p%2===0?(f[y-1]+f[y])/2:f[y]}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let u=Array.from(n).filter((f,p)=>p!==i);if(u.length===0)return Qr(r);let s=u.reduce((f,p)=>f*p,1),c=n[i],l=new Float64Array(s);for(let f=0;f<s;f++){let p=[];for(let g=0;g<c;g++){let b=T(f,i,g,n),h=O(b,n),A=Number(a[h]);isNaN(A)||p.push(A)}if(p.length===0){l[f]=NaN;continue}p.sort((g,b)=>g-b);let y=p.length,d=Math.floor(y/2);y%2===0?l[f]=(p[d-1]+p[d])/2:l[f]=p[d]}let m=N.fromData(l,u,"float64");if(e){let f=[...n];return f[i]=1,N.fromData(l,f,"float64")}return m}var an=k(()=>{"use strict";R();j();xt()});function W(r,t){let e=r.size,n=r.dtype,o=t.indexOf(-1),a;if(o!==-1){let c=t.reduce((m,f,p)=>p===o?m:m*f,1),l=e/c;if(!Number.isInteger(l))throw new Error(`cannot reshape array of size ${e} into shape ${JSON.stringify(t)}`);a=t.map((m,f)=>f===o?l:m)}else a=t;if(a.reduce((c,l)=>c*l,1)!==e)throw new Error(`cannot reshape array of size ${e} into shape ${JSON.stringify(a)}`);if(r.isCContiguous){let c=r.data;return N.fromData(c,a,n,G(a),0)}let s=r.copy().data;return N.fromData(s,a,n,G(a),0)}function Xr(r){let t=r.size,e=r.dtype,n=U(e);if(!n)throw new Error(`Cannot flatten array with dtype ${e}`);if(r.isCContiguous){let u=r.data.slice(r.offset,r.offset+t);return N.fromData(u,[t],e,[1],0)}let o=new n(t),a=z(e);for(let i=0;i<t;i++){let u=r.iget(i);o[i]=u}return N.fromData(o,[t],e,[1],0)}function Ar(r){let t=r.size,e=r.dtype;if(r.isCContiguous){let n=r.data;return N.fromData(n,[t],e,[1],0)}return Xr(r)}function _r(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,i=r.dtype,u;if(t===void 0)u=Array.from({length:n},(m,f)=>n-1-f);else{if(t.length!==n)throw new Error(`axes must have length ${n}, got ${t.length}`);let m=new Set;for(let f of t){let p=f<0?n+f:f;if(p<0||p>=n)throw new Error(`axis ${f} is out of bounds for array of dimension ${n}`);if(m.has(p))throw new Error("repeated axis in transpose");m.add(p)}u=t.map(f=>f<0?n+f:f)}let s=u.map(m=>e[m]),c=Array.from(o),l=u.map(m=>c[m]);return N.fromData(a,s,i,l,r.offset)}function sn(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,i=r.dtype;if(t===void 0){let u=[],s=[];for(let c=0;c<n;c++)e[c]!==1&&(u.push(e[c]),s.push(o[c]));return u.length===0&&(u.push(1),s.push(1)),N.fromData(a,u,i,s,r.offset)}else{let u=t<0?n+t:t;if(u<0||u>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);if(e[u]!==1)throw new Error(`cannot select an axis which has size not equal to one (axis ${t} has size ${e[u]})`);let s=[],c=[];for(let l=0;l<n;l++)l!==u&&(s.push(e[l]),c.push(o[l]));return N.fromData(a,s,i,c,r.offset)}}function Ir(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,i=r.dtype,u=t;if(u<0&&(u=n+t+1),u<0||u>n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n+1}`);let s=[...Array.from(e)];s.splice(u,0,1);let c=[...Array.from(o)],l=u<n?o[u]*(e[u]||1):1;return c.splice(u,0,l),N.fromData(a,s,i,c,r.offset)}function un(r,t,e){let n=r.shape,o=n.length,a=r.strides,i=r.data,u=r.dtype,s=t<0?o+t:t,c=e<0?o+e:e;if(s<0||s>=o)throw new Error(`axis1 ${t} is out of bounds for array of dimension ${o}`);if(c<0||c>=o)throw new Error(`axis2 ${e} is out of bounds for array of dimension ${o}`);if(s===c)return N.fromData(i,Array.from(n),u,Array.from(a),r.offset);let l=Array.from(n),m=Array.from(a);return[l[s],l[c]]=[l[c],l[s]],[m[s],m[c]]=[m[c],m[s]],N.fromData(i,l,u,m,r.offset)}function Vt(r,t,e){let n=r.ndim,o=Array.isArray(t)?t:[t],a=Array.isArray(e)?e:[e];if(o.length!==a.length)throw new Error("source and destination must have the same number of elements");let i=o.map(c=>{let l=c<0?n+c:c;if(l<0||l>=n)throw new Error(`source axis ${c} is out of bounds for array of dimension ${n}`);return l}),u=a.map(c=>{let l=c<0?n+c:c;if(l<0||l>=n)throw new Error(`destination axis ${c} is out of bounds for array of dimension ${n}`);return l});if(new Set(i).size!==i.length)throw new Error("repeated axis in source");if(new Set(u).size!==u.length)throw new Error("repeated axis in destination");let s=[];for(let c=0;c<n;c++)i.includes(c)||s.push(c);for(let c=0;c<i.length;c++){let l=u[c];s.splice(l,0,i[c])}return _r(r,s)}function lr(r,t=0){if(r.length===0)throw new Error("need at least one array to concatenate");if(r.length===1)return r[0].copy();let e=r[0],n=e.ndim,o=e.dtype,a=t<0?n+t:t;if(a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);for(let p=1;p<r.length;p++){let y=r[p];if(y.ndim!==n)throw new Error("all the input arrays must have same number of dimensions");for(let d=0;d<n;d++)if(d!==a&&y.shape[d]!==e.shape[d])throw new Error("all the input array dimensions except for the concatenation axis must match exactly")}let i=Array.from(e.shape),u=e.shape[a];for(let p=1;p<r.length;p++)u+=r[p].shape[a];i[a]=u;let s=i.reduce((p,y)=>p*y,1),c=U(o);if(!c)throw new Error(`Cannot concatenate arrays with dtype ${o}`);let l=new c(s),m=G(i),f=0;for(let p of r){let y=p.shape[a];Yc(p,l,i,m,a,f,o),f+=y}return N.fromData(l,i,o)}function Yc(r,t,e,n,o,a,i){let u=r.shape,s=u.length,c=r.size,l=i==="int64"||i==="uint64";if(o===0&&r.isCContiguous&&s>0){let p=a*n[0],y=r.data,d=r.offset,g=d+c;t.set(y.subarray(d,g),p);return}if(o===1&&s===2&&r.isCContiguous){let p=u[0],y=u[1],d=e[1],g=r.data,b=r.offset;for(let h=0;h<p;h++){let A=b+h*y,S=h*d+a;t.set(g.subarray(A,A+y),S)}return}let m=new Array(s).fill(0),f=a*n[o];for(let p=0;p<c;p++){let y=r.iget(p),d=f;for(let g=0;g<s;g++)d+=m[g]*n[g];t[d]=y;for(let g=s-1;g>=0&&(m[g]++,!(m[g]<u[g]));g--)m[g]=0}}function cn(r,t=0){if(r.length===0)throw new Error("need at least one array to stack");let e=r[0],n=e.shape,o=e.ndim,a=t<0?o+1+t:t;if(a<0||a>o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o+1}`);for(let u=1;u<r.length;u++){let s=r[u];if(s.ndim!==o)throw new Error("all input arrays must have the same shape");for(let c=0;c<o;c++)if(s.shape[c]!==n[c])throw new Error("all input arrays must have the same shape")}let i=r.map(u=>Ir(u,a));return lr(i,a)}function ln(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?W(e,[1,e.shape[0]]):e);return lr(t,0)}function Pt(r){if(r.length===0)throw new Error("need at least one array to stack");return r.every(e=>e.ndim===1)?lr(r,0):lr(r,1)}function fn(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?W(Ir(W(e,[1,e.shape[0]]),2),[1,e.shape[0],1]):e.ndim===2?Ir(e,2):e);return lr(t,2)}function mn(r,t,e=0){let n=r.shape,o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=n[a],u;if(typeof t=="number"){if(i%t!==0)throw new Error("array split does not result in an equal division");let s=i/t;u=[];for(let c=1;c<t;c++)u.push(c*s)}else u=t;return pn(r,u,a)}function Br(r,t,e=0){let n=r.shape,o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=n[a],u;if(typeof t=="number"){let s=t,c=Math.floor(i/s),l=i%s;u=[];let m=0;for(let f=0;f<s-1;f++)m+=c+(f<l?1:0),u.push(m)}else u=t;return pn(r,u,a)}function pn(r,t,e){let n=r.shape,o=n[e],a=[0,...t,o],i=[];for(let u=0;u<a.length-1;u++){let s=a[u],c=a[u+1];if(s>c)throw new Error("split indices must be in ascending order");let l=Array.from(n);l[e]=c-s;let m=r.offset+s*r.strides[e];i.push(N.fromData(r.data,l,r.dtype,Array.from(r.strides),m))}return i}function yn(r,t){if(r.ndim<2)throw new Error("vsplit only works on arrays of 2 or more dimensions");return Br(r,t,0)}function dn(r,t){if(r.ndim<1)throw new Error("hsplit only works on arrays of 1 or more dimensions");let e=r.ndim===1?0:1;return Br(r,t,e)}function gn(r,t){let e=r.shape,n=e.length,o=r.dtype,a=Array.isArray(t)?t:[t],i=Math.max(n,a.length),u=new Array(i).fill(1),s=new Array(i).fill(1);for(let h=0;h<n;h++)u[i-n+h]=e[h];for(let h=0;h<a.length;h++)s[i-a.length+h]=a[h];let c=u.map((h,A)=>h*s[A]),l=c.reduce((h,A)=>h*A,1),m=U(o);if(!m)throw new Error(`Cannot tile array with dtype ${o}`);let f=new m(l),p=G(c),y=r;n<i&&(y=W(r,u));let d=o==="int64"||o==="uint64",g=y.strides,b=new Array(i).fill(0);for(let h=0;h<l;h++){let A=y.offset;for(let x=0;x<i;x++){let w=b[x]%u[x];A+=w*g[x]}let S=y.data[A],D=0;for(let x=0;x<i;x++)D+=b[x]*p[x];f[D]=S;for(let x=i-1;x>=0&&(b[x]++,!(b[x]<c[x]));x--)b[x]=0}return N.fromData(f,c,o)}function An(r,t,e){let n=r.shape,o=n.length,a=r.dtype,i=r.size;if(e===void 0){let h=i,A=Array.isArray(t)?t:new Array(h).fill(t);if(A.length!==h)throw new Error(`operands could not be broadcast together with shape (${h},) (${A.length},)`);let S=A.reduce((_,B)=>_+B,0),D=U(a);if(!D)throw new Error(`Cannot repeat array with dtype ${a}`);let x=new D(S),w=0;for(let _=0;_<h;_++){let B=r.iget(_),v=A[_];for(let E=0;E<v;E++)x[w++]=B}return N.fromData(x,[S],a)}let u=e<0?o+e:e;if(u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=n[u],c=Array.isArray(t)?t:new Array(s).fill(t);if(c.length!==s)throw new Error(`operands could not be broadcast together with shape (${s},) (${c.length},)`);let l=Array.from(n);l[u]=c.reduce((h,A)=>h+A,0);let m=l.reduce((h,A)=>h*A,1),f=U(a);if(!f)throw new Error(`Cannot repeat array with dtype ${a}`);let p=new f(m),y=G(l),d=new Array(o).fill(0),g=a==="int64"||a==="uint64",b=[0];for(let h=0;h<s;h++)b.push(b[h]+c[h]);for(let h=0;h<i;h++){let A=r.iget(h),S=d[u],D=c[S],x=0;for(let B=0;B<o;B++)B!==u&&(x+=d[B]*y[B]);let w=y[u],_=b[S];for(let B=0;B<D;B++){let v=x+(_+B)*w;p[v]=A}for(let B=o-1;B>=0&&(d[B]++,!(d[B]<n[B]));B--)d[B]=0}return N.fromData(p,l,a)}function hn(r,t){let e=r.shape,n=e.length,o=r.dtype,a=r.size,i;if(t===void 0)i=new Set(Array.from({length:n},(f,p)=>p));else if(typeof t=="number"){let f=t<0?n+t:t;if(f<0||f>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);i=new Set([f])}else i=new Set(t.map(f=>{let p=f<0?n+f:f;if(p<0||p>=n)throw new Error(`axis ${f} is out of bounds for array of dimension ${n}`);return p}));let u=U(o);if(!u)throw new Error(`Cannot flip array with dtype ${o}`);let s=new u(a),c=z(o);if(n===1&&r.isCContiguous){let f=r.data,p=r.offset;for(let y=0;y<a;y++)s[y]=f[p+a-1-y];return N.fromData(s,[...e],o)}if(n===2&&r.isCContiguous){let f=e[0],p=e[1],y=r.data,d=r.offset;if(i.size===2){for(let g=0;g<a;g++)s[g]=y[d+a-1-g];return N.fromData(s,[...e],o)}if(i.size===1){if(i.has(0)){for(let g=0;g<f;g++){let b=d+(f-1-g)*p,h=g*p;for(let A=0;A<p;A++)s[h+A]=y[b+A]}return N.fromData(s,[...e],o)}else if(i.has(1)){for(let g=0;g<f;g++){let b=d+g*p,h=g*p;for(let A=0;A<p;A++)s[h+A]=y[b+p-1-A]}return N.fromData(s,[...e],o)}}}let l=new Array(n),m=new Array(n).fill(0);for(let f=0;f<a;f++){for(let d=0;d<n;d++)l[d]=i.has(d)?e[d]-1-m[d]:m[d];let p=r.offset;for(let d=0;d<n;d++)p+=l[d]*r.strides[d];let y=r.data[p];s[f]=y;for(let d=n-1;d>=0&&(m[d]++,!(m[d]<e[d]));d--)m[d]=0}return N.fromData(s,[...e],o)}function bn(r,t=1,e=[0,1]){let n=r.shape,o=n.length,a=r.dtype;if(o<2)throw new Error("Input must be at least 2-D");let i=e[0]<0?o+e[0]:e[0],u=e[1]<0?o+e[1]:e[1];if(i<0||i>=o||u<0||u>=o)throw new Error(`Axes are out of bounds for array of dimension ${o}`);if(i===u)throw new Error("Axes must be different");if(t=(t%4+4)%4,t===0)return r.copy();let s=U(a);if(!s)throw new Error(`Cannot rotate array with dtype ${a}`);let c=[...n];(t===1||t===3)&&([c[i],c[u]]=[c[u],c[i]]);let l=c.reduce((g,b)=>g*b,1),m=new s(l),f=G(c),p=z(a),y=new Array(o).fill(0),d=new Array(o);for(let g=0;g<r.size;g++){for(let D=0;D<o;D++)d[D]=y[D];let b,h;t===1?(b=n[u]-1-y[u],h=y[i]):t===2?(b=n[i]-1-y[i],h=n[u]-1-y[u],d[i]=b,d[u]=h):(b=y[u],h=n[i]-1-y[i]),t!==2&&(d[i]=b,d[u]=h);let A=0;for(let D=0;D<o;D++)A+=d[D]*f[D];let S=r.iget(g);m[A]=S;for(let D=o-1;D>=0&&(y[D]++,!(y[D]<n[D]));D--)y[D]=0}return N.fromData(m,c,a)}function Sn(r,t,e){let n=r.shape,o=n.length,a=r.dtype,i=r.size;if(e===void 0){let y=Array.isArray(t)?t.reduce((A,S)=>A+S,0):t,d=Xr(r),g=U(a);if(!g)throw new Error(`Cannot roll array with dtype ${a}`);let b=new g(i),h=z(a);for(let A=0;A<i;A++){let S=((A-y)%i+i)%i,D=d.iget(S);b[A]=D}return N.fromData(b,[...n],a)}let u=Array.isArray(t)?t:[t],s=Array.isArray(e)?e:[e];if(u.length!==s.length)throw new Error("shift and axis must have the same length");let c=s.map(y=>{let d=y<0?o+y:y;if(d<0||d>=o)throw new Error(`axis ${y} is out of bounds for array of dimension ${o}`);return d}),l=U(a);if(!l)throw new Error(`Cannot roll array with dtype ${a}`);let m=new l(i),f=z(a),p=new Array(o).fill(0);for(let y=0;y<i;y++){let d=[...p];for(let h=0;h<c.length;h++){let A=c[h],S=n[A],D=u[h];d[A]=((d[A]-D)%S+S)%S}let g=r.offset;for(let h=0;h<o;h++)g+=d[h]*r.strides[h];let b=r.data[g];m[y]=b;for(let h=o-1;h>=0&&(p[h]++,!(p[h]<n[h]));h--)p[h]=0}return N.fromData(m,[...n],a)}function Nn(r,t,e=0){let n=r.ndim,o=t<0?n+t:t;if(o<0||o>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let a=e<0?n+e:e;if(a<0||a>n)throw new Error(`start ${e} is out of bounds`);return o<a&&a--,o===a?N.fromData(r.data,Array.from(r.shape),r.dtype,Array.from(r.strides),r.offset):Vt(r,o,a)}function Dn(r,t){if(r.ndim<3)throw new Error("dsplit only works on arrays of 3 or more dimensions");return Br(r,t,2)}function xn(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?W(e,[e.shape[0],1]):e);return Pt(t)}function wn(r,t){let e=r.dtype,n=t.reduce((s,c)=>s*c,1),o=r.size,a=U(e);if(!a)throw new Error(`Cannot resize array with dtype ${e}`);let i=new a(n),u=z(e);for(let s=0;s<n;s++){let c=s%o,l=r.iget(c);i[s]=l}return N.fromData(i,t,e)}function zn(r){return r.map(t=>t.ndim===0?W(t,[1]):t)}function In(r){return r.map(t=>t.ndim===0?W(t,[1,1]):t.ndim===1?W(t,[1,t.shape[0]]):t)}function _n(r){return r.map(t=>t.ndim===0?W(t,[1,1,1]):t.ndim===1?W(t,[1,t.shape[0],1]):t.ndim===2?W(t,[t.shape[0],t.shape[1],1]):t)}var qt=k(()=>{"use strict";R();j()});function Jc(r,t,e,n,o,a,i,u,s,c,l,m,f,p){if(m===0)for(let b=0;b<n*o;b++)f[b]=0;else if(m!==1)for(let b=0;b<n*o;b++)f[b]=(f[b]??0)*m;let y=r==="row-major",d=t==="transpose",g=e==="transpose";if(y&&!d&&!g)for(let b=0;b<n;b++)for(let h=0;h<o;h++){let A=0;for(let S=0;S<a;S++)A+=(u[b*s+S]??0)*(c[S*l+h]??0);f[b*p+h]=(f[b*p+h]??0)+i*A}else if(y&&d&&!g)for(let b=0;b<n;b++)for(let h=0;h<o;h++){let A=0;for(let S=0;S<a;S++)A+=(u[S*s+b]??0)*(c[S*l+h]??0);f[b*p+h]=(f[b*p+h]??0)+i*A}else if(y&&!d&&g)for(let b=0;b<n;b++)for(let h=0;h<o;h++){let A=0;for(let S=0;S<a;S++)A+=(u[b*s+S]??0)*(c[h*l+S]??0);f[b*p+h]=(f[b*p+h]??0)+i*A}else if(y&&d&&g)for(let b=0;b<n;b++)for(let h=0;h<o;h++){let A=0;for(let S=0;S<a;S++)A+=(u[S*s+b]??0)*(c[h*l+S]??0);f[b*p+h]=(f[b*p+h]??0)+i*A}else if(!y&&!d&&!g)for(let b=0;b<n;b++)for(let h=0;h<o;h++){let A=0;for(let S=0;S<a;S++)A+=(u[S*s+b]??0)*(c[h*l+S]??0);f[h*p+b]=(f[h*p+b]??0)+i*A}else if(!y&&d&&!g)for(let b=0;b<n;b++)for(let h=0;h<o;h++){let A=0;for(let S=0;S<a;S++)A+=(u[b*s+S]??0)*(c[h*l+S]??0);f[h*p+b]=(f[h*p+b]??0)+i*A}else if(!y&&!d&&g)for(let b=0;b<n;b++)for(let h=0;h<o;h++){let A=0;for(let S=0;S<a;S++)A+=(u[S*s+b]??0)*(c[S*l+h]??0);f[h*p+b]=(f[h*p+b]??0)+i*A}else for(let b=0;b<n;b++)for(let h=0;h<o;h++){let A=0;for(let S=0;S<a;S++)A+=(u[b*s+S]??0)*(c[S*l+h]??0);f[h*p+b]=(f[h*p+b]??0)+i*A}}function Rt(r,t){let e=r.ndim,n=t.ndim;if(e===0||n===0){let o=e===0?r.get():null,a=n===0?t.get():null;if(e===0&&n===0)return typeof o=="bigint"&&typeof a=="bigint"?o*a:Number(o)*Number(a);if(e===0){let i=C(r.dtype,t.dtype),u=N.zeros([...t.shape],i);for(let s=0;s<t.size;s++){let c=t.data[s+t.offset];typeof o=="bigint"&&typeof c=="bigint"?u.data[s]=o*c:u.data[s]=Number(o)*Number(c)}return u}else{let i=C(r.dtype,t.dtype),u=N.zeros([...r.shape],i);for(let s=0;s<r.size;s++){let c=r.data[s+r.offset];typeof c=="bigint"&&typeof a=="bigint"?u.data[s]=c*a:u.data[s]=Number(c)*Number(a)}return u}}if(e===1&&n===1){if(r.shape[0]!==t.shape[0])throw new Error(`dot: incompatible shapes (${r.shape[0]},) and (${t.shape[0]},)`);let o=r.shape[0],a=0;for(let i=0;i<o;i++){let u=r.get(i),s=t.get(i);typeof u=="bigint"&&typeof s=="bigint"?a=Number(a)+Number(u*s):a+=Number(u)*Number(s)}return a}if(e===2&&n===2)return J(r,t);if(e===2&&n===1){let[o,a]=r.shape,i=t.shape[0];if(a!==i)throw new Error(`dot: incompatible shapes (${o},${a}) and (${i},)`);let u=C(r.dtype,t.dtype),s=N.zeros([o],u);for(let c=0;c<o;c++){let l=0;for(let m=0;m<a;m++){let f=r.get(c,m),p=t.get(m);typeof f=="bigint"&&typeof p=="bigint"?l=Number(l)+Number(f*p):l+=Number(f)*Number(p)}s.set([c],l)}return s}if(e===1&&n===2){let o=r.shape[0],[a,i]=t.shape;if(o!==a)throw new Error(`dot: incompatible shapes (${o},) and (${a},${i})`);let u=C(r.dtype,t.dtype),s=N.zeros([i],u);for(let c=0;c<i;c++){let l=0;for(let m=0;m<o;m++){let f=r.get(m),p=t.get(m,c);typeof f=="bigint"&&typeof p=="bigint"?l=Number(l)+Number(f*p):l+=Number(f)*Number(p)}s.set([c],l)}return s}if(e>2&&n===1){let o=r.shape[e-1],a=t.shape[0];if(o!==a)throw new Error(`dot: incompatible shapes ${JSON.stringify(r.shape)} and (${a},)`);let i=[...r.shape.slice(0,-1)],u=C(r.dtype,t.dtype),s=N.zeros(i,u),c=i.reduce((l,m)=>l*m,1);for(let l=0;l<c;l++){let m=0,f=l,p=[];for(let y=i.length-1;y>=0;y--)p[y]=f%i[y],f=Math.floor(f/i[y]);for(let y=0;y<o;y++){let d=[...p,y],g=r.get(...d),b=t.get(y);typeof g=="bigint"&&typeof b=="bigint"?m=Number(m)+Number(g*b):m+=Number(g)*Number(b)}s.set(p,m)}return s}if(e===1&&n>2){let o=r.shape[0],a=1,i=t.shape[a];if(o!==i)throw new Error(`dot: incompatible shapes (${o},) and ${JSON.stringify(t.shape)}`);let u=[...t.shape.slice(0,a),...t.shape.slice(a+1)],s=C(r.dtype,t.dtype),c=N.zeros(u,s),l=u.reduce((m,f)=>m*f,1);for(let m=0;m<l;m++){let f=m,p=[];for(let b=u.length-1;b>=0;b--)p[b]=f%u[b],f=Math.floor(f/u[b]);let y=p.slice(0,a),d=p.slice(a),g=0;for(let b=0;b<o;b++){let h=r.get(b),A=[...y,b,...d],S=t.get(...A);typeof h=="bigint"&&typeof S=="bigint"?g=Number(g)+Number(h*S):g+=Number(h)*Number(S)}c.set(p,g)}return c}if(e>=2&&n>=2&&!(e===2&&n===2)){let o=r.shape[e-1],a=t.shape[n-2];if(o!==a)throw new Error(`dot: incompatible shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(t.shape)}`);let i=[...r.shape.slice(0,-1),...t.shape.slice(0,-2),t.shape[n-1]],u=C(r.dtype,t.dtype),s=N.zeros(i,u),c=r.shape.slice(0,-1).reduce((p,y)=>p*y,1),l=t.shape.slice(0,-2).reduce((p,y)=>p*y,1),m=t.shape[n-1],f=o;for(let p=0;p<c;p++)for(let y=0;y<l;y++)for(let d=0;d<m;d++){let g=0;for(let h=0;h<f;h++){let A=p*f+h,S=r.data[A+r.offset],D=y*f*m+h*m+d,x=t.data[D+t.offset];typeof S=="bigint"&&typeof x=="bigint"?g=Number(g)+Number(S*x):g+=Number(S)*Number(x)}let b=p*l*m+y*m+d;s.data[b]=g}return s}throw new Error(`dot: unexpected combination of dimensions ${e}D \xB7 ${n}D`)}function J(r,t){if(r.ndim!==2||t.ndim!==2)throw new Error("matmul requires 2D arrays");let[e=0,n=0]=r.shape,[o=0,a=0]=t.shape;if(n!==o)throw new Error(`matmul shape mismatch: (${e},${n}) @ (${o},${a})`);let i=C(r.dtype,t.dtype),u=i.startsWith("int")||i.startsWith("uint")||i==="bool"?"float64":i;if(u!=="float64")throw new Error(`matmul currently only supports float64, got ${u}`);let s=r.dtype==="float64"?r.data:Float64Array.from(Array.from(r.data).map(Number)),c=t.dtype==="float64"?t.data:Float64Array.from(Array.from(t.data).map(Number));r.offset>0&&(s=s.subarray(r.offset)),t.offset>0&&(c=c.subarray(t.offset));let[l=0,m=0]=r.strides,[f=0,p=0]=t.strides,y=m>l,d=p>f,g=y?"transpose":"no-transpose",b=d?"transpose":"no-transpose",h,A;y?h=m:h=l,d?A=p:A=f;let S=N.zeros([e,a],"float64");return Jc("row-major",g,b,e,a,n,1,s,h,c,A,0,S.data,a),S}function On(r){if(r.ndim!==2)throw new Error(`trace requires 2D array, got ${r.ndim}D`);let[t=0,e=0]=r.shape,n=Math.min(t,e),o=0;for(let a=0;a<n;a++){let i=r.get(a,a);typeof i=="bigint"?o=(typeof o=="bigint"?o:BigInt(o))+i:o=(typeof o=="bigint"?Number(o):o)+i}return o}function vn(r,t){return _r(r,t)}function Tn(r,t){let e=r.ndim,n=t.ndim,o=r.shape[e-1],a=t.shape[n-1];if(o!==a)throw new Error(`inner: incompatible shapes - last dimensions ${o} and ${a} don't match`);if(e===1&&n===1)return Rt(r,t);let i=[...r.shape.slice(0,-1),...t.shape.slice(0,-1)],u=C(r.dtype,t.dtype),s=N.zeros(i,u),c=e===1?1:r.shape.slice(0,-1).reduce((f,p)=>f*p,1),l=n===1?1:t.shape.slice(0,-1).reduce((f,p)=>f*p,1),m=o;for(let f=0;f<c;f++)for(let p=0;p<l;p++){let y=0;for(let g=0;g<m;g++){let b=e===1?g:f*m+g,h=n===1?g:p*m+g,A=r.data[b+r.offset],S=t.data[h+t.offset];typeof A=="bigint"&&typeof S=="bigint"?y=Number(y)+Number(A*S):y+=Number(A)*Number(S)}if(i.length===0)return y;let d=c===1?p:f*l+p;s.data[d]=y}return s}function jt(r,t){let e=r.ndim===1?r:Ar(r),n=t.ndim===1?t:Ar(t),o=e.size,a=n.size,i=C(r.dtype,t.dtype),u=N.zeros([o,a],i);for(let s=0;s<o;s++)for(let c=0;c<a;c++){let l=e.get(s),m=n.get(c),f;typeof l=="bigint"&&typeof m=="bigint"?f=l*m:f=Number(l)*Number(m),u.set([s,c],f)}return u}function Un(r,t,e){let n,o;if(typeof e=="number"){let f=e;if(f<0)throw new Error("tensordot: axes must be non-negative");if(f>r.ndim||f>t.ndim)throw new Error("tensordot: axes exceeds array dimensions");n=Array.from({length:f},(p,y)=>r.ndim-f+y),o=Array.from({length:f},(p,y)=>y)}else if([n,o]=e,n.length!==o.length)throw new Error("tensordot: axes lists must have same length");for(let f=0;f<n.length;f++){let p=n[f],y=o[f];if(p<0||p>=r.ndim||y<0||y>=t.ndim)throw new Error("tensordot: axis out of bounds");if(r.shape[p]!==t.shape[y])throw new Error(`tensordot: shape mismatch on axes ${p} and ${y}: ${r.shape[p]} != ${t.shape[y]}`)}let a=[],i=[];for(let f=0;f<r.ndim;f++)n.includes(f)||a.push(f);for(let f=0;f<t.ndim;f++)o.includes(f)||i.push(f);let u=[...a.map(f=>r.shape[f]),...i.map(f=>t.shape[f])];if(u.length===0){let f=0,p=n.map(y=>r.shape[y]).reduce((y,d)=>y*d,1);for(let y=0;y<p;y++){let d=y,g=new Array(n.length);for(let D=n.length-1;D>=0;D--){let x=n[D];g[D]=d%r.shape[x],d=Math.floor(d/r.shape[x])}let b=new Array(r.ndim),h=new Array(t.ndim);for(let D=0;D<n.length;D++)b[n[D]]=g[D];for(let D=0;D<o.length;D++)h[o[D]]=g[D];let A=r.get(...b),S=t.get(...h);typeof A=="bigint"&&typeof S=="bigint"?f=Number(f)+Number(A*S):f+=Number(A)*Number(S)}return f}let s=C(r.dtype,t.dtype),c=N.zeros(u,s),l=u.reduce((f,p)=>f*p,1),m=n.map(f=>r.shape[f]).reduce((f,p)=>f*p,1);for(let f=0;f<l;f++){let p=f,y=[];for(let h=u.length-1;h>=0;h--)y[h]=p%u[h],p=Math.floor(p/u[h]);let d=y.slice(0,a.length),g=y.slice(a.length),b=0;for(let h=0;h<m;h++){p=h;let A=[];for(let _=n.length-1;_>=0;_--){let B=n[_];A[_]=p%r.shape[B],p=Math.floor(p/r.shape[B])}let S=new Array(r.ndim),D=new Array(t.ndim);for(let _=0;_<a.length;_++)S[a[_]]=d[_];for(let _=0;_<i.length;_++)D[i[_]]=g[_];for(let _=0;_<n.length;_++)S[n[_]]=A[_],D[o[_]]=A[_];let x=r.get(...S),w=t.get(...D);typeof x=="bigint"&&typeof w=="bigint"?b=Number(b)+Number(x*w):b+=Number(x)*Number(w)}c.set(y,b)}return c}function $n(r,t=0,e=0,n=1){let o=r.shape,a=o.length;if(a<2)throw new Error("diagonal requires an array of at least two dimensions");let i=e<0?a+e:e,u=n<0?a+n:n;if(i<0||i>=a||u<0||u>=a)throw new Error("axis out of bounds");if(i===u)throw new Error("axis1 and axis2 cannot be the same");let s=o[i],c=o[u],l;t>=0?l=Math.max(0,Math.min(s,c-t)):l=Math.max(0,Math.min(s+t,c));let m=[];for(let d=0;d<a;d++)d!==i&&d!==u&&m.push(o[d]);m.push(l);let f=N.zeros(m,r.dtype),p=o.filter((d,g)=>g!==i&&g!==u),y=p.reduce((d,g)=>d*g,1);for(let d=0;d<y;d++){let g=d,b=[];for(let h=p.length-1;h>=0;h--)b.unshift(g%p[h]),g=Math.floor(g/p[h]);for(let h=0;h<l;h++){let A=new Array(a),S=0;for(let w=0;w<a;w++)w===i?A[w]=t>=0?h:h-t:w===u?A[w]=t>=0?h+t:h:A[w]=b[S++];let D=[...b,h],x=r.get(...A);f.set(D,x)}}return f}function Mn(r,...t){let e=r.indexOf("->"),n,o;e===-1?(n=r,o=Qc(n)):(n=r.slice(0,e),o=r.slice(e+2));let a=n.split(",").map(d=>d.trim());if(a.length!==t.length)throw new Error(`einsum: expected ${a.length} operands, got ${t.length}`);let i=new Map;for(let d=0;d<t.length;d++){let g=a[d],b=t[d];if(g.length!==b.ndim)throw new Error(`einsum: operand ${d} has ${b.ndim} dimensions but subscript '${g}' has ${g.length} indices`);for(let h=0;h<g.length;h++){let A=g[h],S=b.shape[h];if(i.has(A)){if(i.get(A)!==S)throw new Error(`einsum: size mismatch for index '${A}': ${i.get(A)} vs ${S}`)}else i.set(A,S)}}for(let d of o)if(!i.has(d))throw new Error(`einsum: output subscript contains unknown index '${d}'`);let u=new Set(o),s=new Set;for(let d of a)for(let g of d)s.add(g);let c=[];for(let d of s)u.has(d)||c.push(d);if(t.length===2&&a.length===2){let[d,g]=a,[b,h]=t;if(d.length===2&&g.length===2&&o.length===2&&b.ndim===2&&h.ndim===2){let[A,S]=[d[0],d[1]],[D,x]=[g[0],g[1]],[w,_]=[o[0],o[1]];if(A===w&&x===_&&S===D&&c.length===1&&c[0]===S||A===w&&x===_&&S===D&&c.length===1&&c[0]===S)return J(b,h);if(S===w&&x===_&&A===D&&c.length===1&&c[0]===A){let B=vn(b);return J(B,h)}if(A===w&&D===_&&S===x&&c.length===1&&c[0]===S){let B=vn(h);return J(b,B)}}if(d.length===1&&g.length===1&&d===g&&o.length===0&&b.ndim===1&&h.ndim===1)return Ft(t,a,c,i);if(d&&g&&d.length===1&&g.length===1&&o.length===2&&o===d+g&&c.length===0&&b.ndim===1&&h.ndim===1)return jt(b,h)}if(t.length===1&&a[0].length===2&&o.length===0){let d=a[0];if(d[0]===d[1]&&t[0].ndim===2)return Ft(t,a,c,i)}let l=Array.from(o).map(d=>i.get(d));if(l.length===0)return Ft(t,a,c,i);let m=t[0].dtype;for(let d=1;d<t.length;d++)m=C(m,t[d].dtype);let f=N.zeros(l,m),p=l.reduce((d,g)=>d*g,1),y=1;for(let d of c)y*=i.get(d);for(let d=0;d<p;d++){let g=Xc(d,l),b=new Map;for(let A=0;A<o.length;A++)b.set(o[A],g[A]);let h=0;for(let A=0;A<y;A++){let S=A;for(let x=c.length-1;x>=0;x--){let w=c[x],_=i.get(w);b.set(w,S%_),S=Math.floor(S/_)}let D=1;for(let x=0;x<t.length;x++){let w=t[x],_=a[x],B=[];for(let E of _)B.push(b.get(E));let v=w.get(...B);D*=Number(v)}h+=D}f.set(g,h)}return f}function Qc(r){let t=new Map,e=r.split(",");for(let o of e)for(let a of o.trim())t.set(a,(t.get(a)||0)+1);let n=[];for(let[o,a]of t)a===1&&n.push(o);return n.sort().join("")}function Ft(r,t,e,n){let o=1;for(let i of e)o*=n.get(i);let a=0;for(let i=0;i<o;i++){let u=new Map,s=i;for(let l=e.length-1;l>=0;l--){let m=e[l],f=n.get(m);u.set(m,s%f),s=Math.floor(s/f)}let c=1;for(let l=0;l<r.length;l++){let m=r[l],f=t[l],p=[];for(let d of f)p.push(u.get(d));let y=m.get(...p);c*=Number(y)}a+=c}return a}function Xc(r,t){let e=new Array(t.length),n=r;for(let o=t.length-1;o>=0;o--)e[o]=n%t[o],n=Math.floor(n/t[o]);return e}function kn(r,t){let e=r.shape,n=t.shape,o=e.length,a=n.length,i=C(r.dtype,t.dtype),u=Math.max(o,a),s=new Array(u),c=new Array(u).fill(1),l=new Array(u).fill(1);for(let y=0;y<o;y++)c[u-o+y]=e[y];for(let y=0;y<a;y++)l[u-a+y]=n[y];for(let y=0;y<u;y++)s[y]=c[y]*l[y];let m=N.zeros(s,i),f=e.reduce((y,d)=>y*d,1),p=n.reduce((y,d)=>y*d,1);for(let y=0;y<f;y++){let d=y,g=new Array(o);for(let A=o-1;A>=0;A--)g[A]=d%e[A],d=Math.floor(d/e[A]);let b=new Array(u).fill(0);for(let A=0;A<o;A++)b[u-o+A]=g[A];let h=r.get(...g);for(let A=0;A<p;A++){let S=A,D=new Array(a);for(let v=a-1;v>=0;v--)D[v]=S%n[v],S=Math.floor(S/n[v]);let x=new Array(u).fill(0);for(let v=0;v<a;v++)x[u-a+v]=D[v];let w=t.get(...D),_=new Array(u);for(let v=0;v<u;v++)_[v]=b[v]*l[v]+x[v];let B=typeof h=="bigint"||typeof w=="bigint"?BigInt(Number(h))*BigInt(Number(w)):Number(h)*Number(w);m.set(_,B)}}return m}function Cn(r,t,e=-1,n=-1,o=-1,a){a!==void 0&&(e=a,n=a,o=a);let i=(A,S)=>A<0?S+A:A,u=i(e,r.ndim),s=i(n,t.ndim);if(r.ndim===1&&t.ndim===1){let A=r.shape[0],S=t.shape[0];if(A===3&&S===3){let D=Number(r.get(0)),x=Number(r.get(1)),w=Number(r.get(2)),_=Number(t.get(0)),B=Number(t.get(1)),v=Number(t.get(2)),E=N.zeros([3],"float64");return E.set([0],x*v-w*B),E.set([1],w*_-D*v),E.set([2],D*B-x*_),E}else if(A===2&&S===2){let D=Number(r.get(0)),x=Number(r.get(1)),w=Number(t.get(0)),_=Number(t.get(1));return D*_-x*w}else if(A===2&&S===3||A===3&&S===2){let D=Number(r.get(0)),x=Number(r.get(1)),w=A===3?Number(r.get(2)):0,_=Number(t.get(0)),B=Number(t.get(1)),v=S===3?Number(t.get(2)):0,E=N.zeros([3],"float64");return E.set([0],x*v-w*B),E.set([1],w*_-D*v),E.set([2],D*B-x*_),E}else throw new Error(`cross: incompatible dimensions for cross product: ${A} and ${S}`)}let c=r.shape[u],l=t.shape[s];if(c!==2&&c!==3||l!==2&&l!==3)throw new Error(`cross: incompatible dimensions for cross product: ${c} and ${l}`);let m=c===2&&l===2?0:3,f=[...r.shape.slice(0,u),...r.shape.slice(u+1)],p=[...t.shape.slice(0,s),...t.shape.slice(s+1)];if(f.length!==p.length)throw new Error("cross: incompatible shapes for cross product");for(let A=0;A<f.length;A++)if(f[A]!==p[A])throw new Error("cross: incompatible shapes for cross product");let y=f,d=o<0?y.length+1+o:o,g;if(m===0?g=y:g=[...y.slice(0,d),m,...y.slice(d)],g.length===0)throw new Error("cross: unexpected scalar result from higher-dimensional input");let b=N.zeros(g,"float64"),h=y.reduce((A,S)=>A*S,1);for(let A=0;A<h;A++){let S=A,D=[];for(let Z=y.length-1;Z>=0;Z--)D[Z]=S%y[Z],S=Math.floor(S/y[Z]);let x=[...D.slice(0,u),0,...D.slice(u)],w=[...D.slice(0,s),0,...D.slice(s)],_=Z=>(x[u]=Z,Number(r.get(...x))),B=Z=>(w[s]=Z,Number(t.get(...w))),v=_(0),E=_(1),$=c===3?_(2):0,M=B(0),q=B(1),Y=l===3?B(2):0;if(m===0)b.set(D,v*q-E*M);else{let Z=E*Y-$*q,Dr=$*M-v*Y,Sc=v*q-E*M,yt=(Nc,Dc)=>{let xc=[...D.slice(0,d),Nc,...D.slice(d)];b.set(xc,Dc)};yt(0,Z),yt(1,Dr),yt(2,Sc)}}return b}function hr(r,t=2,e,n=!1){if(typeof t!="number")throw new Error("vector_norm: ord must be a number");if(e==null){let c=r.ndim===1?r:Ar(r),l=c.size,m;if(t===1/0){m=0;for(let f=0;f<l;f++)m=Math.max(m,Math.abs(Number(c.get(f))))}else if(t===-1/0){m=1/0;for(let f=0;f<l;f++)m=Math.min(m,Math.abs(Number(c.get(f))))}else if(t===0){m=0;for(let f=0;f<l;f++)Number(c.get(f))!==0&&m++}else if(t===1){m=0;for(let f=0;f<l;f++)m+=Math.abs(Number(c.get(f)))}else if(t===2){m=0;for(let f=0;f<l;f++){let p=Number(c.get(f));m+=p*p}m=Math.sqrt(m)}else{m=0;for(let f=0;f<l;f++)m+=Math.pow(Math.abs(Number(c.get(f))),t);m=Math.pow(m,1/t)}if(n){let f=new Array(r.ndim).fill(1),p=N.zeros(f,"float64");return p.set(new Array(r.ndim).fill(0),m),p}return m}let o=e<0?r.ndim+e:e;if(o<0||o>=r.ndim)throw new Error(`vector_norm: axis ${e} out of bounds for array with ${r.ndim} dimensions`);let a=n?[...r.shape.slice(0,o),1,...r.shape.slice(o+1)]:[...r.shape.slice(0,o),...r.shape.slice(o+1)];if(a.length===0)return hr(r,t,null,!1);let i=N.zeros(a,"float64"),u=r.shape[o],s=a.reduce((c,l)=>c*l,1);for(let c=0;c<s;c++){let l=c,m=[];for(let y=a.length-1;y>=0;y--)m[y]=l%a[y],l=Math.floor(l/a[y]);let f=n?[...m.slice(0,o),0,...m.slice(o+1)]:[...m.slice(0,o),0,...m.slice(o)],p;if(t===1/0){p=0;for(let y=0;y<u;y++)f[o]=y,p=Math.max(p,Math.abs(Number(r.get(...f))))}else if(t===-1/0){p=1/0;for(let y=0;y<u;y++)f[o]=y,p=Math.min(p,Math.abs(Number(r.get(...f))))}else if(t===0){p=0;for(let y=0;y<u;y++)f[o]=y,Number(r.get(...f))!==0&&p++}else if(t===1){p=0;for(let y=0;y<u;y++)f[o]=y,p+=Math.abs(Number(r.get(...f)))}else if(t===2){p=0;for(let y=0;y<u;y++){f[o]=y;let d=Number(r.get(...f));p+=d*d}p=Math.sqrt(p)}else{p=0;for(let y=0;y<u;y++)f[o]=y,p+=Math.pow(Math.abs(Number(r.get(...f))),t);p=Math.pow(p,1/t)}i.set(m,p)}return i}function fr(r,t="fro",e=!1){if(r.ndim!==2)throw new Error(`matrix_norm: input must be 2D, got ${r.ndim}D`);let[n,o]=r.shape,a;if(t==="fro"){a=0;for(let i=0;i<n;i++)for(let u=0;u<o;u++){let s=Number(r.get(i,u));a+=s*s}a=Math.sqrt(a)}else if(t==="nuc"){let{s:i}=ir(r);a=0;for(let u=0;u<i.size;u++)a+=Number(i.get(u))}else if(t===1){a=0;for(let i=0;i<o;i++){let u=0;for(let s=0;s<n;s++)u+=Math.abs(Number(r.get(s,i)));a=Math.max(a,u)}}else if(t===-1){a=1/0;for(let i=0;i<o;i++){let u=0;for(let s=0;s<n;s++)u+=Math.abs(Number(r.get(s,i)));a=Math.min(a,u)}}else if(t===1/0){a=0;for(let i=0;i<n;i++){let u=0;for(let s=0;s<o;s++)u+=Math.abs(Number(r.get(i,s)));a=Math.max(a,u)}}else if(t===-1/0){a=1/0;for(let i=0;i<n;i++){let u=0;for(let s=0;s<o;s++)u+=Math.abs(Number(r.get(i,s)));a=Math.min(a,u)}}else if(t===2){let{s:i}=ir(r);a=Number(i.get(0))}else if(t===-2){let{s:i}=ir(r);a=Number(i.get(i.size-1))}else throw new Error(`matrix_norm: invalid ord value: ${t}`);if(e){let i=N.zeros([1,1],"float64");return i.set([0,0],a),i}return a}function Vn(r,t=null,e=null,n=!1){if(t===null)return e===null?hr(r,2,null,n):typeof e=="number"?hr(r,2,e,n):fr(r,"fro",n);if(Array.isArray(e)){if(e.length!==2)throw new Error("norm: axis must be a 2-tuple for matrix norms");let o=e[0]<0?r.ndim+e[0]:e[0],a=e[1]<0?r.ndim+e[1]:e[1];if(r.ndim!==2||o!==0&&o!==1||a!==0&&a!==1||o===a)throw new Error("norm: complex axis specification not yet supported");return fr(r,t,n)}if(r.ndim===2&&e===null&&(t==="fro"||t==="nuc"))return fr(r,t,n);if(typeof t!="number"&&t!==null)throw new Error(`norm: ord '${t}' not valid for vector norm`);return hr(r,t??2,e,n)}function Lt(r,t="reduced"){if(r.ndim!==2)throw new Error(`qr: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape,o=Math.min(e,n),a=N.zeros([e,n],"float64");for(let p=0;p<e;p++)for(let y=0;y<n;y++)a.set([p,y],Number(r.get(p,y)));let i=[],u=[];for(let p=0;p<o;p++){let y=e-p,d=[];for(let D=p;D<e;D++)d.push(Number(a.get(D,p)));let g=0;for(let D=0;D<y;D++)g+=d[D]*d[D];if(g=Math.sqrt(g),g<1e-15){i.push(d),u.push(0);continue}let b=d[0]>=0?1:-1,h=d[0]+b*g,A=[1];for(let D=1;D<y;D++)A.push(d[D]/h);let S=b*h/g;u.push(S),i.push(A);for(let D=p;D<n;D++){let x=0;for(let w=0;w<y;w++)x+=A[w]*Number(a.get(p+w,D));for(let w=0;w<y;w++)a.set([p+w,D],Number(a.get(p+w,D))-S*A[w]*x)}}if(t==="raw"){let p=N.zeros([e,n],"float64");for(let d=0;d<e;d++)for(let g=0;g<n;g++)p.set([d,g],Number(a.get(d,g)));let y=N.zeros([o],"float64");for(let d=0;d<o;d++)y.set([d],u[d]);return{h:p,tau:y}}if(t==="r"){let p=N.zeros([o,n],"float64");for(let y=0;y<o;y++)for(let d=y;d<n;d++)p.set([y,d],Number(a.get(y,d)));return p}let s=t==="complete"?e:o,c=N.zeros([e,s],"float64");for(let p=0;p<Math.min(e,s);p++)c.set([p,p],1);for(let p=o-1;p>=0;p--){let y=i[p],d=u[p],g=e-p;for(let b=p;b<s;b++){let h=0;for(let A=0;A<g;A++)h+=y[A]*Number(c.get(p+A,b));for(let A=0;A<g;A++)c.set([p+A,b],Number(c.get(p+A,b))-d*y[A]*h)}}let l=N.zeros([e,s],"float64");for(let p=0;p<e;p++)for(let y=0;y<s;y++)l.set([p,y],Number(c.get(p,y)));let m=t==="complete"?e:o,f=N.zeros([m,n],"float64");for(let p=0;p<m;p++)for(let y=0;y<n;y++)y>=p&&f.set([p,y],Number(a.get(p,y)));return{q:l,r:f}}function Pn(r,t=!1){if(r.ndim!==2)throw new Error(`cholesky: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`cholesky: matrix must be square, got ${e}x${n}`);let o=e,a=N.zeros([o,o],"float64");for(let i=0;i<o;i++)for(let u=0;u<=i;u++){let s=0;if(i===u){for(let l=0;l<u;l++)s+=Number(a.get(u,l))**2;let c=Number(r.get(u,u))-s;if(c<0)throw new Error("cholesky: matrix is not positive definite");a.set([u,u],Math.sqrt(c))}else{for(let l=0;l<u;l++)s+=Number(a.get(i,l))*Number(a.get(u,l));let c=Number(a.get(u,u));if(Math.abs(c)<1e-15)throw new Error("cholesky: matrix is not positive definite");a.set([i,u],(Number(r.get(i,u))-s)/c)}}if(t){let i=N.zeros([o,o],"float64");for(let u=0;u<o;u++)for(let s=u;s<o;s++)i.set([u,s],Number(a.get(s,u)));return i}return a}function ir(r){if(r.ndim!==2)throw new Error(`svd: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape,n=Math.min(t,e),o=N.zeros([e,e],"float64");for(let m=0;m<e;m++)for(let f=0;f<e;f++){let p=0;for(let y=0;y<t;y++)p+=Number(r.get(y,m))*Number(r.get(y,f));o.set([m,f],p)}let{values:a,vectors:i}=Wt(o),u=Array.from({length:e},(m,f)=>f);u.sort((m,f)=>a[f]-a[m]);let s=N.zeros([n],"float64");for(let m=0;m<n;m++){let f=a[u[m]];s.set([m],Math.sqrt(Math.max(0,f)))}let c=N.zeros([e,e],"float64");for(let m=0;m<e;m++)for(let f=0;f<e;f++)c.set([m,f],i[f][u[m]]);let l=N.zeros([t,t],"float64");for(let m=0;m<t;m++)for(let f=0;f<n;f++){let p=Number(s.get(f));if(p>1e-10){let y=0;for(let d=0;d<e;d++)y+=Number(r.get(m,d))*Number(c.get(f,d));l.set([m,f],y/p)}}if(t>n)for(let m=n;m<t;m++){let f=new Array(t).fill(0);f[m]=1;for(let y=0;y<m;y++){let d=0;for(let g=0;g<t;g++)d+=f[g]*Number(l.get(g,y));for(let g=0;g<t;g++)f[g]=f[g]-d*Number(l.get(g,y))}let p=0;for(let y=0;y<t;y++)p+=f[y]*f[y];if(p=Math.sqrt(p),p>1e-10)for(let y=0;y<t;y++)l.set([y,m],f[y]/p)}return{u:l,s,vt:c}}function Wt(r){let t=r.shape[0],e=100*t*t,n=1e-10,o=[];for(let u=0;u<t;u++){o.push([]);for(let s=0;s<t;s++)o[u].push(Number(r.get(u,s)))}let a=[];for(let u=0;u<t;u++){a.push([]);for(let s=0;s<t;s++)a[u].push(u===s?1:0)}for(let u=0;u<e;u++){let s=0,c=0,l=1;for(let A=0;A<t;A++)for(let S=A+1;S<t;S++)Math.abs(o[A][S])>s&&(s=Math.abs(o[A][S]),c=A,l=S);if(s<n)break;let m=o[c][c],f=o[l][l],p=o[c][l],y;Math.abs(m-f)<1e-15?y=Math.PI/4:y=.5*Math.atan2(2*p,f-m);let d=Math.cos(y),g=Math.sin(y),b=d*d*m+g*g*f-2*g*d*p,h=g*g*m+d*d*f+2*g*d*p;o[c][c]=b,o[l][l]=h,o[c][l]=0,o[l][c]=0;for(let A=0;A<t;A++)if(A!==c&&A!==l){let S=o[A][c],D=o[A][l];o[A][c]=d*S-g*D,o[c][A]=o[A][c],o[A][l]=g*S+d*D,o[l][A]=o[A][l]}for(let A=0;A<t;A++){let S=a[A][c],D=a[A][l];a[A][c]=d*S-g*D,a[A][l]=g*S+d*D}}let i=[];for(let u=0;u<t;u++)i.push(o[u][u]);return{values:i,vectors:a}}function qn(r,t=!0,e=!0){let n=ir(r);if(!e)return n.s;if(!t){let[o,a]=r.shape,i=Math.min(o,a),u=N.zeros([o,i],"float64");for(let c=0;c<o;c++)for(let l=0;l<i;l++)u.set([c,l],Number(n.u.get(c,l)));let s=N.zeros([i,a],"float64");for(let c=0;c<i;c++)for(let l=0;l<a;l++)s.set([c,l],Number(n.vt.get(c,l)));return{u,s:n.s,vt:s}}return n}function Fn(r){if(r.ndim!==2)throw new Error(`det: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape;if(t!==e)throw new Error(`det: matrix must be square, got ${t}x${e}`);let n=t;if(n===0)return 1;let o=r.data;if(n===1)return Number(o[0]);if(n===2)return Number(o[0])*Number(o[3])-Number(o[1])*Number(o[2]);let{lu:a,sign:i}=Zt(r),u=a.data,s=i;for(let c=0;c<n;c++)s*=u[c*n+c];return s}function Zt(r){let[t,e]=r.shape,n=t,o=e,a=N.zeros([n,o],"float64"),i=a.data,u=r.data;for(let l=0;l<n*o;l++)i[l]=Number(u[l]);let s=Array.from({length:n},(l,m)=>m),c=1;for(let l=0;l<Math.min(n,o);l++){let m=Math.abs(i[l*o+l]),f=l;for(let y=l+1;y<n;y++){let d=Math.abs(i[y*o+l]);d>m&&(m=d,f=y)}if(f!==l){for(let d=0;d<o;d++){let g=i[l*o+d];i[l*o+d]=i[f*o+d],i[f*o+d]=g}let y=s[l];s[l]=s[f],s[f]=y,c=-c}let p=i[l*o+l];if(Math.abs(p)>1e-15)for(let y=l+1;y<n;y++){let d=i[y*o+l]/p;i[y*o+l]=d;for(let g=l+1;g<o;g++)i[y*o+g]=i[y*o+g]-d*i[l*o+g]}}return{lu:a,piv:s,sign:c}}function Kr(r){if(r.ndim!==2)throw new Error(`inv: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape;if(t!==e)throw new Error(`inv: matrix must be square, got ${t}x${e}`);let n=t,{lu:o,piv:a}=Zt(r),i=o.data,u=N.zeros([n,n],"float64"),s=u.data;for(let c=0;c<n;c++){let l=new Float64Array(n);for(let m=0;m<n;m++){let f=a[m]===c?1:0;for(let p=0;p<m;p++)f-=i[m*n+p]*l[p];l[m]=f}for(let m=n-1;m>=0;m--){let f=l[m];for(let y=m+1;y<n;y++)f-=i[m*n+y]*s[y*n+c];let p=i[m*n+m];if(Math.abs(p)<1e-15)throw new Error("inv: singular matrix");s[m*n+c]=f/p}}return u}function En(r,t){let[e]=r.shape,n=e,{lu:o,piv:a}=Zt(r),i=o.data,u=t.data,s=new Float64Array(n);for(let f=0;f<n;f++)s[f]=Number(u[a[f]]);let c=new Float64Array(n);for(let f=0;f<n;f++){let p=s[f];for(let y=0;y<f;y++)p-=i[f*n+y]*c[y];c[f]=p}let l=N.zeros([n],"float64"),m=l.data;for(let f=n-1;f>=0;f--){let p=c[f];for(let d=f+1;d<n;d++)p-=i[f*n+d]*m[d];let y=i[f*n+f];if(Math.abs(y)<1e-15)throw new Error("solve: singular matrix");m[f]=p/y}return l}function Rn(r,t){if(r.ndim!==2)throw new Error(`solve: coefficient matrix must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`solve: coefficient matrix must be square, got ${e}x${n}`);let o=e;if(t.ndim===1){if(t.shape[0]!==o)throw new Error(`solve: incompatible shapes (${e},${n}) and (${t.shape[0]},)`);return En(r,t)}if(t.ndim===2){if(t.shape[0]!==o)throw new Error(`solve: incompatible shapes (${e},${n}) and (${t.shape[0]},${t.shape[1]})`);let a=t.shape[1],i=N.zeros([o,a],"float64");for(let u=0;u<a;u++){let s=N.zeros([o],"float64");for(let l=0;l<o;l++)s.set([l],Number(t.get(l,u)));let c=En(r,s);for(let l=0;l<o;l++)i.set([l,u],Number(c.get(l)))}return i}throw new Error(`solve: b must be 1D or 2D, got ${t.ndim}D`)}function jn(r,t,e=null){if(r.ndim!==2)throw new Error(`lstsq: coefficient matrix must be 2D, got ${r.ndim}D`);let[n,o]=r.shape,{u:a,s:i,vt:u}=ir(r),s=Math.min(n,o),c=e??Math.max(n,o)*Number.EPSILON,m=Number(i.get(0))*c,f=0;for(let h=0;h<s;h++)Number(i.get(h))>m&&f++;let p=t.ndim===1?W(t,[t.size,1]):t,y=p.shape[1];if(p.shape[0]!==n)throw new Error(`lstsq: incompatible shapes (${n},${o}) and (${t.shape.join(",")})`);let d=N.zeros([o,y],"float64");for(let h=0;h<y;h++){let A=new Array(n).fill(0);for(let S=0;S<n;S++)for(let D=0;D<n;D++)A[S]+=Number(a.get(D,S))*Number(p.get(D,h));for(let S=0;S<o;S++){let D=0;for(let x=0;x<s;x++){let w=Number(i.get(x));w>m&&(D+=Number(u.get(x,S))*A[x]/w)}d.set([S,h],D)}}let g;if(n>o){g=N.zeros([y],"float64");for(let h=0;h<y;h++){let A=0;for(let S=0;S<n;S++){let D=0;for(let w=0;w<o;w++)D+=Number(r.get(S,w))*Number(d.get(w,h));let x=D-Number(p.get(S,h));A+=x*x}g.set([h],A)}}else g=N.zeros([0],"float64");return{x:t.ndim===1?W(d,[o]):d,residuals:g,rank:f,s:i}}function Ln(r,t=2){if(r.ndim!==2)throw new Error(`cond: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(t===2||t===-2){let{s:u}=ir(r),s=Math.min(e,n),c=Number(u.get(0)),l=Number(u.get(s-1));return t===2?l>0?c/l:1/0:c>0?l/c:0}if(e!==n)throw new Error(`cond: matrix must be square for p=${t}`);let o=fr(r,t),a=Kr(r),i=fr(a,t);return o*i}function Wn(r,t){if(r.ndim===0)return Number(r.get())!==0?1:0;if(r.ndim===1){for(let i=0;i<r.size;i++)if(Number(r.get(i))!==0)return 1;return 0}if(r.ndim!==2)throw new Error(`matrix_rank: input must be at most 2D, got ${r.ndim}D`);let{s:e}=ir(r),n=Number(e.get(0)),o=t??n*Math.max(r.shape[0],r.shape[1])*Number.EPSILON,a=0;for(let i=0;i<e.size;i++)Number(e.get(i))>o&&a++;return a}function Zn(r,t){if(r.ndim!==2)throw new Error(`matrix_power: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`matrix_power: matrix must be square, got ${e}x${n}`);let o=e;if(!Number.isInteger(t))throw new Error("matrix_power: exponent must be an integer");if(t===0){let c=N.zeros([o,o],"float64");for(let l=0;l<o;l++)c.set([l,l],1);return c}let a=r,i=t;t<0&&(a=Kr(r),i=-t);let u=N.zeros([o,o],"float64");for(let c=0;c<o;c++)u.set([c,c],1);let s=N.zeros([o,o],"float64");for(let c=0;c<o;c++)for(let l=0;l<o;l++)s.set([c,l],Number(a.get(c,l)));for(;i>0;)i&1&&(u=J(u,s)),s=J(s,s),i>>=1;return u}function Gn(r,t=1e-15){if(r.ndim!==2)throw new Error(`pinv: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape,{u:o,s:a,vt:i}=ir(r),u=Math.min(e,n),c=Number(a.get(0))*t,l=N.zeros([n,e],"float64");for(let m=0;m<n;m++)for(let f=0;f<e;f++){let p=0;for(let y=0;y<u;y++){let d=Number(a.get(y));d>c&&(p+=Number(i.get(y,m))*Number(o.get(f,y))/d)}l.set([m,f],p)}return l}function Gt(r){if(r.ndim!==2)throw new Error(`eig: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape;if(t!==e)throw new Error(`eig: matrix must be square, got ${t}x${e}`);let n=t,o=!0;r:for(let c=0;c<n;c++)for(let l=c+1;l<n;l++)if(Math.abs(Number(r.get(c,l))-Number(r.get(l,c)))>1e-10){o=!1;break r}if(o){let{values:c,vectors:l}=Wt(r),m=N.zeros([n],"float64"),f=N.zeros([n,n],"float64");for(let p=0;p<n;p++){m.set([p],c[p]);for(let y=0;y<n;y++)f.set([y,p],l[y][p])}return{w:m,v:f}}console.warn("numpy-ts: eig() called on non-symmetric matrix. Complex eigenvalues are not supported; results may be inaccurate. For symmetric matrices, use eigh() instead.");let{values:a,vectors:i}=Kc(r),u=N.zeros([n],"float64"),s=N.zeros([n,n],"float64");for(let c=0;c<n;c++){u.set([c],a[c]);for(let l=0;l<n;l++)s.set([l,c],i[l][c])}return{w:u,v:s}}function Kc(r){let t=r.shape[0],e=1e3,n=1e-10,o=N.zeros([t,t],"float64");for(let s=0;s<t;s++)for(let c=0;c<t;c++)o.set([s,c],Number(r.get(s,c)));let a=N.zeros([t,t],"float64");for(let s=0;s<t;s++)a.set([s,s],1);for(let s=0;s<e;s++){let c=0;for(let p=0;p<t;p++)for(let y=0;y<t;y++)p!==y&&(c+=Number(o.get(p,y))**2);if(Math.sqrt(c)<n*t)break;let l=Lt(o,"reduced"),m=l.q,f=l.r;o=J(f,m),a=J(a,m)}let i=[];for(let s=0;s<t;s++)i.push(Number(o.get(s,s)));let u=[];for(let s=0;s<t;s++){u.push([]);for(let c=0;c<t;c++)u[s].push(Number(a.get(s,c)))}return{values:i,vectors:u}}function Ht(r,t="L"){if(r.ndim!==2)throw new Error(`eigh: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`eigh: matrix must be square, got ${e}x${n}`);let o=e,a=N.zeros([o,o],"float64");for(let m=0;m<o;m++)for(let f=0;f<o;f++)t==="L"?m>=f&&(a.set([m,f],Number(r.get(m,f))),a.set([f,m],Number(r.get(m,f)))):f>=m&&(a.set([m,f],Number(r.get(m,f))),a.set([f,m],Number(r.get(m,f))));let{values:i,vectors:u}=Wt(a),s=Array.from({length:o},(m,f)=>f);s.sort((m,f)=>i[m]-i[f]);let c=N.zeros([o],"float64"),l=N.zeros([o,o],"float64");for(let m=0;m<o;m++){c.set([m],i[s[m]]);for(let f=0;f<o;f++)l.set([f,m],u[f][s[m]])}return{w:c,v:l}}function Hn(r){let{w:t}=Gt(r);return t}function Yn(r,t="L"){let{w:e}=Ht(r,t);return e}var Jn=k(()=>{"use strict";R();j();qt()});function Qn(r){return V(r,Math.sqrt,!1)}function Xn(r,t){return typeof t=="number"?tl(r,t):L(r,t,Math.pow,"power")}function tl(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,s=e!=="float32"&&e!=="float64"&&(t<0||!Number.isInteger(t))?"float64":e,c=N.zeros(n,s),l=c.data;if(z(e))if(z(s)&&Number.isInteger(t)&&t>=0){let m=o,f=l;for(let p=0;p<a;p++)f[p]=m[p]**BigInt(t)}else for(let m=0;m<a;m++)l[m]=Math.pow(Number(o[m]),t);else for(let m=0;m<a;m++)l[m]=Math.pow(Number(o[m]),t);return c}function Kn(r){return V(r,Math.exp,!1)}function ro(r){return V(r,t=>Math.pow(2,t),!1)}function to(r){return V(r,Math.expm1,!1)}function eo(r){return V(r,Math.log,!1)}function no(r){return V(r,Math.log2,!1)}function oo(r){return V(r,Math.log10,!1)}function ao(r){return V(r,Math.log1p,!1)}function so(r,t){return typeof t=="number"?nl(r,t):el(r,t)}function el(r,t){let e=xr(r.shape,t.shape),n=e.reduce((c,l)=>c*l,1),o=r.dtype,a=t.dtype,i=o==="float32"&&a==="float32"?"float32":"float64",u=N.zeros(e,i),s=u.data;for(let c=0;c<n;c++){let l=(z(o),Number(r.iget(c))),m=(z(a),Number(t.iget(c))),f=Math.max(l,m),p=Math.min(l,m);s[c]=f+Math.log1p(Math.exp(p-f))}return u}function nl(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",i=N.zeros(n,a),u=i.data;for(let s=0;s<o;s++){let c=(z(e),Number(r.data[s])),l=Math.max(c,t),m=Math.min(c,t);u[s]=l+Math.log1p(Math.exp(m-l))}return i}function io(r,t){return typeof t=="number"?al(r,t):ol(r,t)}function ol(r,t){let e=xr(r.shape,t.shape),n=e.reduce((l,m)=>l*m,1),o=r.dtype,a=t.dtype,i=o==="float32"&&a==="float32"?"float32":"float64",u=N.zeros(e,i),s=u.data,c=Math.LOG2E;for(let l=0;l<n;l++){let m=(z(o),Number(r.iget(l))),f=(z(a),Number(t.iget(l))),p=Math.max(m,f),y=Math.min(m,f);s[l]=p+Math.log1p(Math.pow(2,y-p))*c}return u}function al(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",i=N.zeros(n,a),u=i.data,s=Math.LOG2E;for(let c=0;c<o;c++){let l=(z(e),Number(r.data[c])),m=Math.max(l,t),f=Math.min(l,t);u[c]=m+Math.log1p(Math.pow(2,f-m))*s}return i}var uo=k(()=>{"use strict";R();cr();j()});function co(r){return V(r,Math.sin,!1)}function lo(r){return V(r,Math.cos,!1)}function fo(r){return V(r,Math.tan,!1)}function mo(r){return V(r,Math.asin,!1)}function po(r){return V(r,Math.acos,!1)}function yo(r){return V(r,Math.atan,!1)}function go(r,t){return typeof t=="number"?ul(r,t):il(r,t)}function il(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,i=o==="float32"&&a==="float32"?"float32":"float64",u=N.zeros(e,i),s=u.data;for(let c=0;c<n;c++){let l=(z(o),Number(r.data[c])),m=(z(a),Number(t.data[c]));s[c]=Math.atan2(l,m)}return u}function ul(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=e==="float32"?"float32":"float64",u=N.zeros(n,i),s=u.data;if(z(e))for(let c=0;c<a;c++)s[c]=Math.atan2(Number(o[c]),t);else for(let c=0;c<a;c++)s[c]=Math.atan2(Number(o[c]),t);return u}function Ao(r,t){return typeof t=="number"?ll(r,t):cl(r,t)}function cl(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,i=o==="float32"&&a==="float32"?"float32":"float64",u=N.zeros(e,i),s=u.data;for(let c=0;c<n;c++){let l=(z(o),Number(r.data[c])),m=(z(a),Number(t.data[c]));s[c]=Math.hypot(l,m)}return u}function ll(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=e==="float32"?"float32":"float64",u=N.zeros(n,i),s=u.data;if(z(e))for(let c=0;c<a;c++)s[c]=Math.hypot(Number(o[c]),t);else for(let c=0;c<a;c++)s[c]=Math.hypot(Number(o[c]),t);return u}function ho(r){let t=180/Math.PI;return V(r,e=>e*t,!1)}function bo(r){let t=Math.PI/180;return V(r,e=>e*t,!1)}var So=k(()=>{"use strict";R();cr();j()});function No(r){return V(r,Math.sinh,!1)}function Do(r){return V(r,Math.cosh,!1)}function xo(r){return V(r,Math.tanh,!1)}function wo(r){return V(r,Math.asinh,!1)}function zo(r){return V(r,Math.acosh,!1)}function Io(r){return V(r,Math.atanh,!1)}var _o=k(()=>{"use strict";cr()});function Yt(r,t){let e=r.shape,n=e.length,o=t.length;if(o<n)throw new Error("input operand has more dimensions than allowed by the axis remapping");let a=sr([Array.from(e),t]);if(a===null)throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${t.join(",")})`);for(let i=0;i<o;i++)if(a[i]!==t[i])throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${t.join(",")})`);return X(r,t)}function Bo(r){if(r.length===0)return[];if(r.length===1)return[r[0]];let t=r.map(n=>Array.from(n.shape)),e=sr(t);if(e===null)throw new Error(`operands could not be broadcast together with shapes ${t.map(n=>`(${n.join(",")})`).join(" ")}`);return r.map(n=>X(n,e))}function vo(r,t,e){let n=r.shape,o=n.length,a=r.dtype;if(e===void 0){let y=r.size;for(let h of t){let A=h<0?y+h:h;if(A<0||A>=y)throw new Error(`index ${h} is out of bounds for axis 0 with size ${y}`)}let d=t.length,g=U(a);if(!g)throw new Error(`Cannot take from array with dtype ${a}`);let b=new g(d);for(let h=0;h<d;h++){let A=t[h];A<0&&(A=y+A);let S=r.iget(A);z(a),b[h]=S}return N.fromData(b,[d],a)}let i=e<0?o+e:e;if(i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=n[i];for(let y of t){let d=y<0?u+y:y;if(d<0||d>=u)throw new Error(`index ${y} is out of bounds for axis ${i} with size ${u}`)}let s=Array.from(n);s[i]=t.length;let c=s.reduce((y,d)=>y*d,1),l=U(a);if(!l)throw new Error(`Cannot take from array with dtype ${a}`);let m=new l(c),f=G(s),p=new Array(o).fill(0);for(let y=0;y<c;y++){let d=[...p],g=p[i],b=t[g];b<0&&(b=u+b),d[i]=b;let h=r.get(...d),A=0;for(let S=0;S<o;S++)A+=p[S]*f[S];z(a),m[A]=h;for(let S=o-1;S>=0&&(p[S]++,!(p[S]<s[S]));S--)p[S]=0}return N.fromData(m,s,a)}function Eo(r,t,e){let n=r.size,o=r.dtype,a;if(typeof e=="number"||typeof e=="bigint")a=new Array(t.length).fill(e);else{a=[];for(let i=0;i<e.size;i++)a.push(e.iget(i));if(a.length===1)a=new Array(t.length).fill(a[0]);else if(a.length!==t.length){let i=[...a];a=[];for(let u=0;u<t.length;u++)a.push(i[u%i.length])}}for(let i=0;i<t.length;i++){let u=t[i];if(u<0&&(u=n+u),u<0||u>=n)throw new Error(`index ${t[i]} is out of bounds for axis 0 with size ${n}`);let s=a[i];z(o)?typeof s!="bigint"&&(s=BigInt(Math.round(Number(s)))):typeof s=="bigint"&&(s=Number(s)),r.iset(u,s)}}function Oo(r,t){if(t.length===0)throw new Error("choices cannot be empty");let e=r.shape,n=t.length,o=t[0].dtype,a=t.map(f=>Array.from(f.shape));a.unshift(Array.from(e));let i=sr(a);if(i===null)throw new Error("operands could not be broadcast together");let u=X(r,i),s=t.map(f=>X(f,i)),c=i.reduce((f,p)=>f*p,1),l=U(o);if(!l)throw new Error(`Cannot choose with dtype ${o}`);let m=new l(c);for(let f=0;f<c;f++){let p=Number(u.iget(f));if(p<0||p>=n)throw new Error(`index ${p} is out of bounds for axis 0 with size ${n}`);let y=s[p].iget(f);z(o),m[f]=y}return N.fromData(m,i,o)}function To(r,t,e=!1){if(r.ndim!==t.ndim)return!1;for(let o=0;o<r.ndim;o++)if(r.shape[o]!==t.shape[o])return!1;let n=r.size;for(let o=0;o<n;o++){let a=r.iget(o),i=t.iget(o);if(e){let u=typeof a=="number"&&Number.isNaN(a),s=typeof i=="number"&&Number.isNaN(i);if(u&&s)continue}if(a!==i)return!1}return!0}function Uo(r,t,e){let n=r.shape,o=n.length,a=r.dtype,i=e<0?o+e:e;if(i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=t.shape;if(u.length!==o)throw new Error(`indices and arr must have the same number of dimensions, got ${u.length} vs ${o}`);for(let d=0;d<o;d++)if(d!==i&&u[d]!==n[d]&&u[d]!==1&&n[d]!==1)throw new Error(`index ${u[d]} is out of bounds for size ${n[d]} in dimension ${d}`);let s=Array.from(u),c=s.reduce((d,g)=>d*g,1),l=U(a);if(!l)throw new Error(`Cannot take_along_axis with dtype ${a}`);let m=new l(c),f=G(n),p=G(u),y=n[i];for(let d=0;d<c;d++){let g=new Array(o),b=d;for(let w=o-1;w>=0;w--)g[w]=b%s[w],b=Math.floor(b/s[w]);let h=0;for(let w=0;w<o;w++){let _=u[w]===1?0:g[w];h+=_*p[w]}let A=Number(t.iget(h));if(A<0&&(A=y+A),A<0||A>=y)throw new Error(`index ${A} is out of bounds for axis ${i} with size ${y}`);let S=[...g];S[i]=A;let D=0;for(let w=0;w<o;w++){let _=n[w]===1?0:S[w];D+=_*f[w]}let x=r.iget(D);z(a),m[d]=x}return N.fromData(m,s,a)}function $o(r,t,e,n){let o=r.shape,a=o.length,i=r.dtype,u=n<0?a+n:n;if(u<0||u>=a)throw new Error(`axis ${n} is out of bounds for array of dimension ${a}`);let s=t.shape,c=e.shape;if(s.length!==a||c.length!==a)throw new Error("indices, arr, and values must have same ndim");let l=o[u],m=G(o),f=G(s),p=G(c),y=s.reduce((d,g)=>d*g,1);for(let d=0;d<y;d++){let g=new Array(a),b=d;for(let _=a-1;_>=0;_--)g[_]=b%s[_],b=Math.floor(b/s[_]);let h=0;for(let _=0;_<a;_++)h+=g[_]*f[_];let A=Number(t.iget(h));if(A<0&&(A=l+A),A<0||A>=l)throw new Error(`index ${A} is out of bounds for axis ${u} with size ${l}`);let S=0;for(let _=0;_<a;_++){let B=c[_]===1?0:g[_];S+=B*p[_]}let D=e.iget(S),x=[...g];x[u]=A;let w=0;for(let _=0;_<a;_++)w+=x[_]*m[_];z(i)?typeof D!="bigint"&&(D=BigInt(Math.round(Number(D)))):typeof D=="bigint"&&(D=Number(D)),r.iset(w,D)}}function Mo(r,t,e){let n=r.size,o=r.dtype,a;if(typeof e=="number"||typeof e=="bigint")a=[e];else{a=[];for(let u=0;u<e.size;u++)a.push(e.iget(u))}let i=0;for(let u=0;u<n;u++)if(t.iget(u)){let c=a[i%a.length];z(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),r.iset(u,c),i++}}function ko(r,t,e){let n=t.shape,o=n.length,a=t.dtype,i=t.data,u=z(a);if(e===void 0){let h=0,A=Math.min(r.size,t.size);for(let w=0;w<A;w++)r.iget(w)&&h++;let S=U(a);if(!S)throw new Error(`Cannot compress with dtype ${a}`);let D=new S(h),x=0;for(let w=0;w<A;w++)r.iget(w)&&(D[x]=i[w],x++);return N.fromData(D,[h],a)}let s=e<0?o+e:e;if(s<0||s>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let c=n[s],l=Math.min(r.size,c),m=[];for(let h=0;h<l;h++)r.iget(h)&&m.push(h);let f=m.length,p=[...n];p[s]=f;let y=p.reduce((h,A)=>h*A,1),d=U(a);if(!d)throw new Error(`Cannot compress with dtype ${a}`);let g=new d(y),b=G(n);if(s===0){let h=b[0],A=n.slice(1).reduce((D,x)=>D*x,1),S=0;for(let D=0;D<f;D++){let w=m[D]*h;if(u){let _=i,B=g;for(let v=0;v<A;v++)B[S++]=_[w+v]}else{let _=i,B=g;for(let v=0;v<A;v++)B[S++]=_[w+v]}}}else{let h=n.slice(0,s).reduce((D,x)=>D*x,1),A=n.slice(s+1).reduce((D,x)=>D*x,1),S=0;for(let D=0;D<h;D++)for(let x=0;x<f;x++){let w=m[x],_=0,B=D;for(let v=s-1;v>=0;v--){let E=B%n[v];B=Math.floor(B/n[v]),_+=E*b[v]}if(_+=w*b[s],u){let v=i,E=g;for(let $=0;$<A;$++)E[S++]=v[_+$]}else{let v=i,E=g;for(let $=0;$<A;$++)E[S++]=v[_+$]}}}return N.fromData(g,p,a)}function Co(r,t,e=0){if(r.length!==t.length)throw new Error("condlist and choicelist must have same length");if(r.length===0)throw new Error("condlist and choicelist cannot be empty");let n=[...r.map(f=>Array.from(f.shape)),...t.map(f=>Array.from(f.shape))],o=sr(n);if(o===null)throw new Error("condlist and choicelist arrays could not be broadcast together");let a=t[0].dtype,i=o.reduce((f,p)=>f*p,1),u=U(a);if(!u)throw new Error(`Cannot select with dtype ${a}`);let s=e;z(a)?s=typeof e=="bigint"?e:BigInt(e):s=typeof e=="bigint"?Number(e):e;let c=new u(i);for(let f=0;f<i;f++)z(a),c[f]=s;let l=r.map(f=>X(f,o)),m=t.map(f=>X(f,o));for(let f=0;f<i;f++)for(let p=0;p<r.length;p++)if(l[p].iget(f)){let y=m[p].iget(f);z(a),c[f]=y;break}return N.fromData(c,o,a)}function Vo(r,t,e){let n=r.size,o=r.dtype,a=[];for(let u=0;u<e.size;u++)a.push(e.iget(u));if(a.length===0)return;let i=0;for(let u=0;u<n;u++)if(t.iget(u)){let c=a[i%a.length];z(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),r.iset(u,c),i++}}function Jt(r,t=2){if(t<1)throw new Error("ndim must be at least 1");let e=new Int32Array(r);for(let o=0;o<r;o++)e[o]=o;let n=[];for(let o=0;o<t;o++)n.push(N.fromData(new Int32Array(e),[r],"int32"));return n}function Po(r){let t=r.shape,e=t.length;if(e<2)throw new Error("array must be at least 2-D");let n=t[0];for(let o=1;o<e;o++)if(t[o]!==n)throw new Error("All dimensions of input must be equal");return Jt(n,e)}function Qt(r,t=0,e){let n=e??r,o=[],a=[];for(let i=0;i<r;i++)for(let u=0;u<=Math.min(i+t,n-1);u++)u>=0&&(o.push(i),a.push(u));return[N.fromData(new Int32Array(o),[o.length],"int32"),N.fromData(new Int32Array(a),[a.length],"int32")]}function qo(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return Qt(e[0],t,e[1])}function Xt(r,t=0,e){let n=e??r,o=[],a=[];for(let i=0;i<r;i++)for(let u=Math.max(i+t,0);u<n;u++)o.push(i),a.push(u);return[N.fromData(new Int32Array(o),[o.length],"int32"),N.fromData(new Int32Array(a),[a.length],"int32")]}function Fo(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return Xt(e[0],t,e[1])}function Ro(r,t,e=0){let n=t(r,e),o=n.shape;if(o.length!==2||o[0]!==r||o[1]!==r)throw new Error("mask_func must return n x n array");let a=[],i=[];for(let u=0;u<r;u++)for(let s=0;s<r;s++)n.get(u,s)&&(a.push(u),i.push(s));return[N.fromData(new Int32Array(a),[a.length],"int32"),N.fromData(new Int32Array(i),[i.length],"int32")]}function jo(r,t="int32"){let e=r.length,n=[e,...r],o=n.reduce((s,c)=>s*c,1),a=U(t);if(!a)throw new Error(`Cannot create indices with dtype ${t}`);let i=new a(o),u=r.reduce((s,c)=>s*c,1);for(let s=0;s<e;s++){let c=s*u;for(let l=0;l<u;l++){let m=new Array(e),f=l;for(let y=e-1;y>=0;y--)m[y]=f%r[y],f=Math.floor(f/r[y]);let p=m[s];t==="int64"?i[c+l]=BigInt(p):i[c+l]=p}}return N.fromData(i,n,t)}function Lo(...r){let t=r.length,e=[];for(let n=0;n<t;n++){let o=r[n],a=o.size,i=o.dtype,u=new Array(t).fill(1);u[n]=a;let s=U(i);if(!s)throw new Error(`Cannot create ix_ with dtype ${i}`);let c=new s(a);for(let l=0;l<a;l++){let m=o.iget(l);z(i),c[l]=m}e.push(N.fromData(c,u,i))}return e}function Wo(r,t,e="raise"){if(r.length!==t.length)throw new Error("multi_index length must equal dims length");if(r.length===0)throw new Error("multi_index cannot be empty");let n=r[0].size,o=t.length,a=new Int32Array(n),i=new Array(o),u=1;for(let s=o-1;s>=0;s--)i[s]=u,u*=t[s];for(let s=0;s<n;s++){let c=0;for(let l=0;l<o;l++){let m=Number(r[l].iget(s)),f=t[l];if(e==="wrap")m=(m%f+f)%f;else if(e==="clip")m=Math.max(0,Math.min(m,f-1));else if(m<0||m>=f)throw new Error(`index ${m} is out of bounds for axis ${l} with size ${f}`);c+=m*i[l]}a[s]=c}return N.fromData(a,[n],"int32")}function Zo(r,t,e="C"){let n=t.length,o,a;if(typeof r=="number")o=[r],a=[];else{o=[];for(let l=0;l<r.size;l++)o.push(Number(r.iget(l)));a=Array.from(r.shape)}let i=o.length,u=t.reduce((l,m)=>l*m,1),s=new Array(n);if(e==="C"){let l=1;for(let m=n-1;m>=0;m--)s[m]=l,l*=t[m]}else{let l=1;for(let m=0;m<n;m++)s[m]=l,l*=t[m]}let c=[];for(let l=0;l<n;l++){let m=new Int32Array(i);c.push(N.fromData(m,a.length?a:[1],"int32"))}for(let l=0;l<i;l++){let m=o[l];if(m<0||m>=u)throw new Error(`index ${m} is out of bounds for array with size ${u}`);if(e==="C")for(let f=0;f<n;f++){let p=Math.floor(m/s[f]);m=m%s[f],c[f].data[l]=p%t[f]}else for(let f=n-1;f>=0;f--){let p=Math.floor(m/s[f]);m=m%s[f],c[f].data[l]=p%t[f]}}return typeof r=="number"?c.map(l=>{let m=l.iget(0);return N.fromData(new Int32Array([Number(m)]),[],"int32")}):c}var Go=k(()=>{"use strict";R();j();Nt()});function Q(r,t){if(!Te(r)&&r!=="bool")throw new TypeError(`ufunc '${t}' not supported for the input types, and the inputs could not be safely coerced to any supported types`)}function vr(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function Jo(r,t){return Q(r.dtype,"bitwise_and"),typeof t=="number"?dl(r,t):(Q(t.dtype,"bitwise_and"),vr(r,t)?yl(r,t):L(r,t,(e,n)=>e&n,"bitwise_and"))}function yl(r,t){let e=C(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,u=n.data;if(z(e)){let s=u;if(!z(r.dtype)||!z(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),f=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));s[l]=m&f}else{let l=a,m=i;for(let f=0;f<o;f++)s[f]=l[f]&m[f]}}else for(let s=0;s<o;s++)u[s]=a[s]&i[s];return n}function dl(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),u=i.data;if(z(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]&l}else for(let s=0;s<a;s++)u[s]=o[s]&t;return i}function Qo(r,t){return Q(r.dtype,"bitwise_or"),typeof t=="number"?Al(r,t):(Q(t.dtype,"bitwise_or"),vr(r,t)?gl(r,t):L(r,t,(e,n)=>e|n,"bitwise_or"))}function gl(r,t){let e=C(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,u=n.data;if(z(e)){let s=u;if(!z(r.dtype)||!z(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),f=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));s[l]=m|f}else{let l=a,m=i;for(let f=0;f<o;f++)s[f]=l[f]|m[f]}}else for(let s=0;s<o;s++)u[s]=a[s]|i[s];return n}function Al(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),u=i.data;if(z(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]|l}else for(let s=0;s<a;s++)u[s]=o[s]|t;return i}function Xo(r,t){return Q(r.dtype,"bitwise_xor"),typeof t=="number"?bl(r,t):(Q(t.dtype,"bitwise_xor"),vr(r,t)?hl(r,t):L(r,t,(e,n)=>e^n,"bitwise_xor"))}function hl(r,t){let e=C(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,u=n.data;if(z(e)){let s=u;if(!z(r.dtype)||!z(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),f=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));s[l]=m^f}else{let l=a,m=i;for(let f=0;f<o;f++)s[f]=l[f]^m[f]}}else for(let s=0;s<o;s++)u[s]=a[s]^i[s];return n}function bl(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),u=i.data;if(z(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]^l}else for(let s=0;s<a;s++)u[s]=o[s]^t;return i}function Kt(r){Q(r.dtype,"bitwise_not");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=N.zeros(e,t),i=a.data;if(z(t)){let u=n,s=i;for(let c=0;c<o;c++)s[c]=~u[c]}else for(let u=0;u<o;u++)i[u]=~n[u];return a}function Ko(r){return Kt(r)}function ra(r,t){if(Q(r.dtype,"left_shift"),typeof t=="number")return Ho(r,t);if(Q(t.dtype,"left_shift"),t.size===1||t.ndim===1&&t.shape[0]===1){let e=z(t.dtype)?Number(t.data[0]):t.data[0];return Ho(r,e)}return vr(r,t)?Sl(r,t):L(r,t,(e,n)=>e<<n,"left_shift")}function Sl(r,t){let e=C(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,u=n.data;if(z(e)){let s=u;for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?a[c]:BigInt(Math.round(Number(a[c]))),m=typeof i[c]=="bigint"?i[c]:BigInt(Math.round(Number(i[c])));s[c]=l<<m}}else for(let s=0;s<o;s++)u[s]=a[s]<<i[s];return n}function Ho(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),u=i.data;if(z(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]<<l}else for(let s=0;s<a;s++)u[s]=o[s]<<t;return i}function ta(r,t){if(Q(r.dtype,"right_shift"),typeof t=="number")return Yo(r,t);if(Q(t.dtype,"right_shift"),t.size===1||t.ndim===1&&t.shape[0]===1){let e=z(t.dtype)?Number(t.data[0]):t.data[0];return Yo(r,e)}return vr(r,t)?Nl(r,t):L(r,t,(e,n)=>e>>n,"right_shift")}function Nl(r,t){let e=C(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,u=n.data;if(z(e)){let s=u;for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?a[c]:BigInt(Math.round(Number(a[c]))),m=typeof i[c]=="bigint"?i[c]:BigInt(Math.round(Number(i[c])));s[c]=l>>m}}else for(let s=0;s<o;s++)u[s]=a[s]>>i[s];return n}function Yo(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),u=i.data;if(z(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]>>l}else for(let s=0;s<a;s++)u[s]=o[s]>>t;return i}function ea(r,t=-1,e="big"){let n=Array.from(r.shape),o=n.length;if(t<0&&(t=o+t),t<0||t>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let a=n[t],i=Math.ceil(a/8),u=[...n];u[t]=i;let s=N.zeros(u,"uint8"),c=s.data;if(o===1){for(let g=0;g<i;g++){let b=0;for(let h=0;h<8;h++){let A=g*8+h;if(A<a){let S=Number(r.data[A])!==0?1:0;e==="big"?b|=S<<7-h:b|=S<<h}}c[g]=b}return s}let l=n.slice(0,t),m=n.slice(t+1),f=l.reduce((g,b)=>g*b,1),p=m.reduce((g,b)=>g*b,1),y=rt(n),d=rt(u);for(let g=0;g<f;g++)for(let b=0;b<p;b++)for(let h=0;h<i;h++){let A=0;for(let w=0;w<8;w++){let _=h*8+w;if(_<a){let B=0,v=g;for(let M=0;M<t;M++){let q=M<t-1?l.slice(M+1).reduce((Z,Dr)=>Z*Dr,1):1,Y=Math.floor(v/q);v%=q,B+=Y*y[M]}B+=_*y[t];let E=b;for(let M=t+1;M<o;M++){let q=M<o-1?m.slice(M-t).reduce((Z,Dr)=>Z*Dr,1):1,Y=Math.floor(E/q);E%=q,B+=Y*y[M]}let $=Number(r.data[B])!==0?1:0;e==="big"?A|=$<<7-w:A|=$<<w}}let S=0,D=g;for(let w=0;w<t;w++){let _=w<t-1?l.slice(w+1).reduce((v,E)=>v*E,1):1,B=Math.floor(D/_);D%=_,S+=B*d[w]}S+=h*d[t];let x=b;for(let w=t+1;w<o;w++){let _=w<o-1?m.slice(w-t).reduce((v,E)=>v*E,1):1,B=Math.floor(x/_);x%=_,S+=B*d[w]}c[S]=A}return s}function na(r,t=-1,e=-1,n="big"){if(r.dtype!=="uint8")throw new TypeError("Expected an input array of unsigned byte data type");let o=Array.from(r.shape),a=o.length;if(t<0&&(t=a+t),t<0||t>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let i=o[t],u=i*8;e>=0&&(u=e);let s=[...o];s[t]=u;let c=N.zeros(s,"uint8"),l=c.data;if(a===1){for(let b=0;b<i;b++){let h=Number(r.data[b]);for(let A=0;A<8;A++){let S=b*8+A;if(S>=u)break;n==="big"?l[S]=h>>7-A&1:l[S]=h>>A&1}}return c}let m=o.slice(0,t),f=o.slice(t+1),p=m.reduce((b,h)=>b*h,1),y=f.reduce((b,h)=>b*h,1),d=rt(o),g=rt(s);for(let b=0;b<p;b++)for(let h=0;h<y;h++)for(let A=0;A<i;A++){let S=0,D=b;for(let _=0;_<t;_++){let B=_<t-1?m.slice(_+1).reduce((E,$)=>E*$,1):1,v=Math.floor(D/B);D%=B,S+=v*d[_]}S+=A*d[t];let x=h;for(let _=t+1;_<a;_++){let B=_<a-1?f.slice(_-t).reduce((E,$)=>E*$,1):1,v=Math.floor(x/B);x%=B,S+=v*d[_]}let w=Number(r.data[S]);for(let _=0;_<8;_++){let B=A*8+_;if(B>=u)break;let v=0;D=b;for(let E=0;E<t;E++){let $=E<t-1?m.slice(E+1).reduce((q,Y)=>q*Y,1):1,M=Math.floor(D/$);D%=$,v+=M*g[E]}v+=B*g[t],x=h;for(let E=t+1;E<a;E++){let $=E<a-1?f.slice(E-t).reduce((q,Y)=>q*Y,1):1,M=Math.floor(x/$);x%=$,v+=M*g[E]}n==="big"?l[v]=w>>7-_&1:l[v]=w>>_&1}}return c}function rt(r){let t=r.length,e=new Array(t),n=1;for(let o=t-1;o>=0;o--)e[o]=n,n*=r[o];return e}var oa=k(()=>{"use strict";R();j();cr()});function re(r,t=-1){let e=r.shape,n=e.length,o=r.dtype,a=r.data;if(n===0)return r.copy();let i=t;if(i<0&&(i=n+i),i<0||i>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let u=r.copy(),s=u.data,c=e[i],l=Array.from(e).filter((f,p)=>p!==i),m=l.length===0?1:l.reduce((f,p)=>f*p,1);if(z(o)){let f=a,p=s;for(let y=0;y<m;y++){let d=[];for(let g=0;g<c;g++){let b=T(y,i,g,e),h=O(b,e);d.push({value:f[h],idx:g})}d.sort((g,b)=>g.value<b.value?-1:g.value>b.value?1:0);for(let g=0;g<c;g++){let b=T(y,i,g,e),h=O(b,e);p[h]=d[g].value}}}else for(let f=0;f<m;f++){let p=[];for(let y=0;y<c;y++){let d=T(f,i,y,e),g=O(d,e);p.push(Number(a[g]))}p.sort((y,d)=>isNaN(y)&&isNaN(d)?0:isNaN(y)?1:isNaN(d)?-1:y-d);for(let y=0;y<c;y++){let d=T(f,i,y,e),g=O(d,e);s[g]=p[y]}}return u}function te(r,t=-1){let e=r.shape,n=e.length,o=r.dtype,a=r.data;if(n===0)return N.zeros([0],"int32");let i=t;if(i<0&&(i=n+i),i<0||i>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let u=N.zeros(Array.from(e),"int32"),s=u.data,c=e[i],l=Array.from(e).filter((f,p)=>p!==i),m=l.length===0?1:l.reduce((f,p)=>f*p,1);if(z(o)){let f=a;for(let p=0;p<m;p++){let y=[];for(let d=0;d<c;d++){let g=T(p,i,d,e),b=O(g,e);y.push({value:f[b],idx:d})}y.sort((d,g)=>d.value<g.value?-1:d.value>g.value?1:0);for(let d=0;d<c;d++){let g=T(p,i,d,e),b=O(g,e);s[b]=y[d].idx}}}else for(let f=0;f<m;f++){let p=[];for(let y=0;y<c;y++){let d=T(f,i,y,e),g=O(d,e);p.push({value:Number(a[g]),idx:y})}p.sort((y,d)=>isNaN(y.value)&&isNaN(d.value)?0:isNaN(y.value)?1:isNaN(d.value)?-1:y.value-d.value);for(let y=0;y<c;y++){let d=T(f,i,y,e),g=O(d,e);s[g]=p[y].idx}}return u}function aa(r){if(r.length===0)return N.zeros([0],"int32");let e=r[0].size;for(let i of r){if(i.ndim!==1)throw new Error("keys must be 1D arrays");if(i.size!==e)throw new Error("all keys must have the same length")}let n=[];for(let i=0;i<e;i++)n.push(i);n.sort((i,u)=>{for(let s=r.length-1;s>=0;s--){let l=r[s].data,m=Number(l[i]),f=Number(l[u]);if(!(isNaN(m)&&isNaN(f))){if(isNaN(m))return 1;if(isNaN(f)||m<f)return-1;if(m>f)return 1}}return 0});let o=N.zeros([e],"int32"),a=o.data;for(let i=0;i<e;i++)a[i]=n[i];return o}function xl(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e],i=r[o],u=r[n],s;a<=i&&i<=u||u<=i&&i<=a?s=o:i<=a&&a<=u||u<=a&&a<=i?s=e:s=n;let c=r[s];[r[s],r[n]]=[r[n],r[s]];let l=e;for(let m=e;m<n;m++){let f=r[m],p=isNaN(f),y=isNaN(c);!p&&(y||f<=c)&&([r[l],r[m]]=[r[m],r[l]],l++)}if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function wl(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e],i=r[o],u=r[n],s;a<=i&&i<=u||u<=i&&i<=a?s=o:i<=a&&a<=u||u<=a&&a<=i?s=e:s=n;let c=r[s];[r[s],r[n]]=[r[n],r[s]];let l=e;for(let m=e;m<n;m++)r[m]<=c&&([r[l],r[m]]=[r[m],r[l]],l++);if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function zl(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e].value,i=r[o].value,u=r[n].value,s;a<=i&&i<=u||u<=i&&i<=a?s=o:i<=a&&a<=u||u<=a&&a<=i?s=e:s=n;let c=r[s].value;[r[s],r[n]]=[r[n],r[s]];let l=e;for(let m=e;m<n;m++){let f=r[m].value,p=isNaN(f),y=isNaN(c);!p&&(y||f<=c)&&([r[l],r[m]]=[r[m],r[l]],l++)}if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function Il(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e].value,i=r[o].value,u=r[n].value,s;a<=i&&i<=u||u<=i&&i<=a?s=o:i<=a&&a<=u||u<=a&&a<=i?s=e:s=n;let c=r[s].value;[r[s],r[n]]=[r[n],r[s]];let l=e;for(let m=e;m<n;m++)r[m].value<=c&&([r[l],r[m]]=[r[m],r[l]],l++);if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function ee(r,t,e=-1){let n=r.shape,o=n.length,a=r.dtype;if(o===0)return r.copy();let i=e;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=n[i],s=t;if(s<0&&(s=u+s),s<0||s>=u)throw new Error(`kth(=${t}) out of bounds (${u})`);let c=r.copy(),l=c.data,m=Array.from(n).filter((p,y)=>y!==i),f=m.length===0?1:m.reduce((p,y)=>p*y,1);if(z(a)){let p=l;for(let y=0;y<f;y++){let d=[];for(let g=0;g<u;g++){let b=T(y,i,g,n),h=O(b,n);d.push(p[h])}wl(d,s);for(let g=0;g<u;g++){let b=T(y,i,g,n),h=O(b,n);p[h]=d[g]}}}else for(let p=0;p<f;p++){let y=[];for(let d=0;d<u;d++){let g=T(p,i,d,n),b=O(g,n);y.push(Number(l[b]))}xl(y,s);for(let d=0;d<u;d++){let g=T(p,i,d,n),b=O(g,n);l[b]=y[d]}}return c}function ne(r,t,e=-1){let n=r.shape,o=n.length,a=r.dtype,i=r.data;if(o===0)return N.zeros([0],"int32");let u=e;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=n[u],c=t;if(c<0&&(c=s+c),c<0||c>=s)throw new Error(`kth(=${t}) out of bounds (${s})`);let l=N.zeros(Array.from(n),"int32"),m=l.data,f=Array.from(n).filter((y,d)=>d!==u),p=f.length===0?1:f.reduce((y,d)=>y*d,1);if(z(a)){let y=i;for(let d=0;d<p;d++){let g=[];for(let b=0;b<s;b++){let h=T(d,u,b,n),A=O(h,n);g.push({value:y[A],idx:b})}Il(g,c);for(let b=0;b<s;b++){let h=T(d,u,b,n),A=O(h,n);m[A]=g[b].idx}}}else for(let y=0;y<p;y++){let d=[];for(let g=0;g<s;g++){let b=T(y,u,g,n),h=O(b,n);d.push({value:Number(i[h]),idx:g})}zl(d,c);for(let g=0;g<s;g++){let b=T(y,u,g,n),h=O(b,n);m[h]=d[g].idx}}return l}function sa(r){let t=r.dtype,e=r.size,n=r.data,o=[];for(let u=0;u<e;u++)o.push(Number(n[u]));o.sort((u,s)=>isNaN(u)&&isNaN(s)?0:isNaN(u)?1:isNaN(s)?-1:u-s);let a=N.zeros([e],t),i=a.data;for(let u=0;u<e;u++)i[u]=o[u];return a}function tt(r){let t=r.shape,e=t.length,n=r.data,o=r.size,a=[];for(let l=0;l<e;l++)a.push([]);let i=[],u=1;for(let l=e-1;l>=0;l--)i.unshift(u),u*=t[l];for(let l=0;l<o;l++)if(n[l]){let m=l;for(let f=0;f<e;f++){let p=Math.floor(m/i[f]);m=m%i[f],a[f].push(p)}}let s=a[0]?.length??0,c=[];for(let l=0;l<e;l++){let m=N.zeros([s],"int32"),f=m.data;for(let p=0;p<s;p++)f[p]=a[l][p];c.push(m)}return c}function ia(r){let t=r.data,e=r.size,n=[];for(let i=0;i<e;i++)t[i]&&n.push(i);let o=N.zeros([n.length],"int32"),a=o.data;for(let i=0;i<n.length;i++)a[i]=n[i];return o}function ua(r,t,e){if(t===void 0&&e===void 0)return tt(r);if(t===void 0||e===void 0)throw new Error("either both or neither of x and y should be given");let n=r.shape,o=t.shape,a=e.shape,i=Math.max(n.length,o.length,a.length),u=B=>{let v=Array(i).fill(1);for(let E=0;E<B.length;E++)v[i-B.length+E]=B[E];return v},s=u(n),c=u(o),l=u(a),m=[];for(let B=0;B<i;B++){let v=[s[B],c[B],l[B]],E=Math.max(...v);for(let $ of v)if($!==1&&$!==E)throw new Error("operands could not be broadcast together");m.push(E)}let f=t.dtype,p=N.zeros(m,f),y=p.data,d=r.data,g=t.data,b=e.data,h=(B,v)=>{let E=[],$=1;for(let M=B.length-1;M>=0;M--)E.unshift($),$*=B[M];for(;E.length<v.length;)E.unshift(0);for(let M=0;M<v.length;M++)v[M]===1&&m[M]!==1&&(E[M]=0);return E},A=h(n,s),S=h(o,c),D=h(a,l),x=[],w=1;for(let B=m.length-1;B>=0;B--)x.unshift(w),w*=m[B];let _=m.reduce((B,v)=>B*v,1);for(let B=0;B<_;B++){let v=B,E=0,$=0,M=0;for(let q=0;q<i;q++){let Y=Math.floor(v/x[q]);v=v%x[q],E+=Y*A[q],$+=Y*S[q],M+=Y*D[q]}d[E]?y[B]=g[$]:y[B]=b[M]}return p}function oe(r,t,e="left"){if(r.ndim!==1)throw new Error("storage must be 1D");let n=r.data,o=r.size,a=t.data,i=t.size,u=N.zeros([i],"int32"),s=u.data;for(let c=0;c<i;c++){let l=Number(a[c]),m=0,f=o;if(e==="left")for(;m<f;){let p=Math.floor((m+f)/2);Number(n[p])<l?m=p+1:f=p}else for(;m<f;){let p=Math.floor((m+f)/2);Number(n[p])<=l?m=p+1:f=p}s[c]=m}return u}function ca(r,t){let e=r.data,n=t.data,o=t.dtype,a=Math.min(r.size,t.size),i=0;for(let l=0;l<a;l++)e[l]&&i++;let u=N.zeros([i],o),s=u.data,c=0;if(z(o)){let l=n,m=s;for(let f=0;f<a;f++)e[f]&&(m[c++]=l[f])}else for(let l=0;l<a;l++)e[l]&&(s[c++]=n[l]);return u}function ae(r,t){let e=r.shape,n=e.length,o=r.data,a=r.size;if(t===void 0){let f=0;for(let p=0;p<a;p++)o[p]&&f++;return f}let i=t;if(i<0&&(i=n+i),i<0||i>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let u=Array.from(e).filter((f,p)=>p!==i);if(u.length===0)return ae(r);let s=N.zeros(u,"int32"),c=s.data,l=e[i],m=u.reduce((f,p)=>f*p,1);for(let f=0;f<m;f++){let p=0;for(let y=0;y<l;y++){let d=T(f,i,y,e),g=O(d,e);o[g]&&p++}c[f]=p}return s}var la=k(()=>{"use strict";R();j();xt()});function fa(r){if(!isFinite(r))return r;let t=Math.floor(r),e=r-t;return Math.abs(e-.5)<1e-10?t%2===0?t:t+1:Math.round(r)}function se(r,t=0){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=e==="float32"?"float32":"float64",u=N.zeros(n,i),s=u.data,c=Math.pow(10,t);for(let l=0;l<a;l++){let m=Number(o[l]);s[l]=fa(m*c)/c}return u}function ie(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",i=N.zeros(e,a),u=i.data;for(let s=0;s<o;s++)u[s]=Math.ceil(Number(n[s]));return i}function ue(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",i=N.zeros(e,a),u=i.data;for(let s=0;s<o;s++)u[s]=Math.trunc(Number(n[s]));return i}function ce(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",i=N.zeros(e,a),u=i.data;for(let s=0;s<o;s++)u[s]=Math.floor(Number(n[s]));return i}function le(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",i=N.zeros(e,a),u=i.data;for(let s=0;s<o;s++)u[s]=fa(Number(n[s]));return i}function fe(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",i=N.zeros(e,a),u=i.data;for(let s=0;s<o;s++)u[s]=Math.trunc(Number(n[s]));return i}var ma=k(()=>{"use strict";R()});function nr(r,t=!1,e=!1,n=!1){let o=r.dtype,a=r.size,i=r.data,u=[];for(let A=0;A<a;A++)u.push({value:Number(i[A]),index:A});u.sort((A,S)=>isNaN(A.value)&&isNaN(S.value)?0:isNaN(A.value)?1:isNaN(S.value)?-1:A.value-S.value);let s=[],c=[],l=new Array(a),m=[],f,p=0;for(let A=0;A<u.length;A++){let{value:S,index:D}=u[A];f===void 0||isNaN(S)&&!isNaN(f)||!isNaN(S)&&isNaN(f)||!isNaN(S)&&!isNaN(f)&&S!==f?(f!==void 0&&m.push(p),s.push(S),c.push(D),p=1,f=S):p++}p>0&&m.push(p);let y=new Map,d=-1;for(let A=0;A<s.length;A++){let S=s[A];isNaN(S)?d=A:y.set(S,A)}for(let A=0;A<a;A++){let S=Number(i[A]);isNaN(S)?l[A]=d:l[A]=y.get(S)}let g=N.zeros([s.length],o),b=g.data;for(let A=0;A<s.length;A++)b[A]=s[A];if(!t&&!e&&!n)return g;let h={values:g};if(t){let A=N.zeros([c.length],"int32"),S=A.data;for(let D=0;D<c.length;D++)S[D]=c[D];h.indices=A}if(e){let A=N.zeros([l.length],"int32"),S=A.data;for(let D=0;D<l.length;D++)S[D]=l[D];h.inverse=A}if(n){let A=N.zeros([m.length],"int32"),S=A.data;for(let D=0;D<m.length;D++)S[D]=m[D];h.counts=A}return h}function pa(r,t){return me(r,t)}function ya(r,t){let e=r.dtype,n=nr(r),o=nr(t),a=new Set;for(let c=0;c<o.size;c++)a.add(Number(o.data[c]));let i=[];for(let c=0;c<n.size;c++){let l=Number(n.data[c]);a.has(l)&&i.push(l)}i.sort((c,l)=>c-l);let u=N.zeros([i.length],e),s=u.data;for(let c=0;c<i.length;c++)s[c]=i[c];return u}function me(r,t){let e=Array.from(r.shape),n=r.size,o=new Set;for(let s=0;s<t.size;s++)o.add(Number(t.data[s]));let a=N.zeros(e,"bool"),i=a.data,u=r.data;for(let s=0;s<n;s++){let c=Number(u[s]);i[s]=o.has(c)?1:0}return a}function da(r,t){let e=r.dtype,n=nr(r),o=new Set;for(let s=0;s<t.size;s++)o.add(Number(t.data[s]));let a=[];for(let s=0;s<n.size;s++){let c=Number(n.data[s]);o.has(c)||a.push(c)}let i=N.zeros([a.length],e),u=i.data;for(let s=0;s<a.length;s++)u[s]=a[s];return i}function ga(r,t){let e=r.dtype,n=nr(r),o=nr(t),a=new Set,i=new Set;for(let l=0;l<n.size;l++)a.add(Number(n.data[l]));for(let l=0;l<o.size;l++)i.add(Number(o.data[l]));let u=[];for(let l of a)i.has(l)||u.push(l);for(let l of i)a.has(l)||u.push(l);u.sort((l,m)=>l-m);let s=N.zeros([u.length],e),c=s.data;for(let l=0;l<u.length;l++)c[l]=u[l];return s}function Aa(r,t){let e=r.dtype,n=nr(r),o=nr(t),a=new Set;for(let c=0;c<n.size;c++)a.add(Number(n.data[c]));for(let c=0;c<o.size;c++)a.add(Number(o.data[c]));let i=Array.from(a);i.sort((c,l)=>c-l);let u=N.zeros([i.length],e),s=u.data;for(let c=0;c<i.length;c++)s[c]=i[c];return u}var ha=k(()=>{"use strict";R()});function pe(r,t=1,e=-1){if(t<0)throw new Error(`order must be non-negative but got ${t}`);if(t===0)return r.copy();let n=Array.from(r.shape),o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);if(n[a]<t+1)throw new Error(`diff requires at least ${t+1} elements along axis ${e}, but got ${n[a]}`);let i=r;for(let u=0;u<t;u++)i=El(i,a);return i}function El(r,t){let e=Array.from(r.shape),n=e.length,o=e[t],a=[...e];a[t]=o-1;let i=r.dtype,u=z(i)?"float64":i,s=N.zeros(a,u),c=s.data,l=r.strides,m=s.size;for(let f=0;f<m;f++){let p=f,y=new Array(n);for(let D=n-1;D>=0;D--)y[D]=p%a[D],p=Math.floor(p/a[D]);let d=[...y],g=[...y];g[t]=d[t]+1;let b=0,h=0;for(let D=0;D<n;D++)b+=d[D]*l[D],h+=g[D]*l[D];let A=(z(i),Number(r.data[b])),S=(z(i),Number(r.data[h]));c[f]=S-A}return s}function ba(r,t=null,e=null){let n=r.size,o=r.dtype,a=z(o)?"float64":o,i=Math.max(0,n-1),u=e?e.length:0,s=t?t.length:0,c=u+i+s,l=N.zeros([c],a),m=l.data,f=0;if(e)for(let p of e)m[f++]=p;for(let p=0;p<i;p++){let y=(z(o),Number(r.iget(p))),d=(z(o),Number(r.iget(p+1)));m[f++]=d-y}if(t)for(let p of t)m[f++]=p;return l}function Sa(r,t=1,e=null){let o=Array.from(r.shape).length,a;if(e===null)a=Array.from({length:o},(s,c)=>c);else if(typeof e=="number"){let s=e<0?o+e:e;if(s<0||s>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);a=[s]}else a=e.map(s=>{let c=s<0?o+s:s;if(c<0||c>=o)throw new Error(`axis ${s} is out of bounds for array of dimension ${o}`);return c});let i;if(typeof t=="number")i=a.map(()=>t);else{if(t.length!==a.length)throw new Error("Number of spacings must match number of axes");i=t}let u=[];for(let s=0;s<a.length;s++)u.push(Ol(r,a[s],i[s]));return u.length===1?u[0]:u}function Ol(r,t,e){let n=Array.from(r.shape),o=n.length,a=n[t];if(a<2)throw new Error(`Shape of array along axis ${t} must be at least 2, but got ${a}`);let i=r.dtype,u=z(i)?"float64":i==="float32"?"float32":"float64",s=N.zeros(n,u),c=s.data,l=r.strides,m=e,f=2*m,p=r.size;for(let y=0;y<p;y++){let d=y,g=new Array(o);for(let A=o-1;A>=0;A--)g[A]=d%n[A],d=Math.floor(d/n[A]);let b=g[t],h;if(b===0){let A=[...g];A[t]=1;let S=0;for(let w=0;w<o;w++)S+=A[w]*l[w];let D=(z(i),Number(r.data[y]));h=((z(i),Number(r.data[S]))-D)/m}else if(b===a-1){let A=[...g];A[t]=a-2;let S=0;for(let w=0;w<o;w++)S+=A[w]*l[w];let D=(z(i),Number(r.data[y])),x=(z(i),Number(r.data[S]));h=(D-x)/m}else{let A=[...g],S=[...g];A[t]=b+1,S[t]=b-1;let D=0,x=0;for(let B=0;B<o;B++)D+=A[B]*l[B],x+=S[B]*l[B];let w=(z(i),Number(r.data[D])),_=(z(i),Number(r.data[x]));h=(w-_)/f}c[y]=h}return s}function Na(r,t,e=-1,n=-1,o=-1){let a=Array.from(r.shape),i=Array.from(t.shape),u=a.length,s=i.length,c=e<0?u+e:e,l=n<0?s+n:n;if(c<0||c>=u)throw new Error(`axisa ${e} is out of bounds for array of dimension ${u}`);if(l<0||l>=s)throw new Error(`axisb ${n} is out of bounds for array of dimension ${s}`);let m=a[c],f=i[l];if(m!==2&&m!==3)throw new Error(`incompatible dimensions for cross product (dimension must be 2 or 3, got ${m})`);if(f!==2&&f!==3)throw new Error(`incompatible dimensions for cross product (dimension must be 2 or 3, got ${f})`);let p=C(r.dtype,t.dtype);if(u===1&&s===1&&m===3&&f===3){let y=N.zeros([3],p),d=y.data,g=Number(r.iget(0)),b=Number(r.iget(1)),h=Number(r.iget(2)),A=Number(t.iget(0)),S=Number(t.iget(1)),D=Number(t.iget(2));return d[0]=b*D-h*S,d[1]=h*A-g*D,d[2]=g*S-b*A,y}if(u===1&&s===1&&m===2&&f===2){let y=N.zeros([],p),d=Number(r.iget(0)),g=Number(r.iget(1)),b=Number(t.iget(0)),h=Number(t.iget(1));return y.data[0]=d*h-g*b,y}if(u===1&&s===1){if(m===2&&f===3){let y=N.zeros([3],p),d=y.data,g=Number(r.iget(0)),b=Number(r.iget(1)),h=Number(t.iget(0)),A=Number(t.iget(1)),S=Number(t.iget(2));return d[0]=b*S,d[1]=-g*S,d[2]=g*A-b*h,y}else if(m===3&&f===2){let y=N.zeros([3],p),d=y.data,g=Number(r.iget(0)),b=Number(r.iget(1)),h=Number(r.iget(2)),A=Number(t.iget(0)),S=Number(t.iget(1));return d[0]=-h*S,d[1]=h*A,d[2]=g*S-b*A,y}}if(u===2&&s===2&&c===1&&l===1){let y=a[0];if(i[0]!==y)throw new Error(`Shape mismatch: a has ${y} vectors, b has ${i[0]} vectors`);if(m===3&&f===3){let d=N.zeros([y,3],p),g=d.data;for(let b=0;b<y;b++){let h=Number(r.iget(b*3)),A=Number(r.iget(b*3+1)),S=Number(r.iget(b*3+2)),D=Number(t.iget(b*3)),x=Number(t.iget(b*3+1)),w=Number(t.iget(b*3+2));g[b*3]=A*w-S*x,g[b*3+1]=S*D-h*w,g[b*3+2]=h*x-A*D}return d}if(m===2&&f===2){let d=N.zeros([y],p),g=d.data;for(let b=0;b<y;b++){let h=Number(r.iget(b*2)),A=Number(r.iget(b*2+1)),S=Number(t.iget(b*2)),D=Number(t.iget(b*2+1));g[b]=h*D-A*S}return d}}throw new Error(`cross product not implemented for arrays with shapes ${JSON.stringify(a)} and ${JSON.stringify(i)}`)}var Da=k(()=>{"use strict";R();j()});function K(r,t=F){let e=N.zeros(r,t);return new I(e)}function ye(r,t=F){let e=N.ones(r,t);return new I(e)}function Ul(r){let t=[],e=r;for(;Array.isArray(e);)t.push(e.length),e=e[0];return t}function xa(r){return typeof r=="bigint"?!0:Array.isArray(r)?r.some(t=>xa(t)):!1}function $l(r){let t=[];function e(n){Array.isArray(n)?n.forEach(o=>e(o)):t.push(n)}return e(r),t}function P(r,t){if(r instanceof I)return!t||r.dtype===t?r.copy():r.astype(t);let e=xa(r),n=Ul(r),o=n.reduce((l,m)=>l*m,1),a=t;a||(e?a="int64":a=F);let i=U(a);if(!i)throw new Error(`Cannot create array with dtype ${a}`);let u=new i(o),s=$l(r);if(z(a)){let l=u;for(let m=0;m<o;m++){let f=s[m];l[m]=typeof f=="bigint"?f:BigInt(Math.round(Number(f)))}}else if(a==="bool"){let l=u;for(let m=0;m<o;m++)l[m]=s[m]?1:0}else{let l=u;for(let m=0;m<o;m++){let f=s[m];l[m]=Number(f)}}let c=N.fromData(u,n,a);return new I(c)}function wa(r,t,e=1,n=F){let o=r,a=t;if(t===void 0&&(o=0,a=r),a===void 0)throw new Error("stop is required");let i=Math.max(0,Math.ceil((a-o)/e)),u=U(n);if(!u)throw new Error(`Cannot create arange array with dtype ${n}`);let s=new u(i);if(z(n))for(let l=0;l<i;l++)s[l]=BigInt(Math.round(o+l*e));else if(n==="bool")for(let l=0;l<i;l++)s[l]=o+l*e!==0?1:0;else for(let l=0;l<i;l++)s[l]=o+l*e;let c=N.fromData(s,[i],n);return new I(c)}function za(r,t,e=50,n=F){if(e<0)throw new Error("num must be non-negative");if(e===0)return P([],n);if(e===1)return P([r],n);let o=U(n);if(!o)throw new Error(`Cannot create linspace array with dtype ${n}`);let a=new o(e),i=(t-r)/(e-1);if(z(n))for(let s=0;s<e;s++)a[s]=BigInt(Math.round(r+s*i));else if(n==="bool")for(let s=0;s<e;s++)a[s]=r+s*i!==0?1:0;else for(let s=0;s<e;s++)a[s]=r+s*i;let u=N.fromData(a,[e],n);return new I(u)}function Ia(r,t,e=50,n=10,o=F){if(e<0)throw new Error("num must be non-negative");if(e===0)return P([],o);if(e===1)return P([Math.pow(n,r)],o);let a=U(o);if(!a)throw new Error(`Cannot create logspace array with dtype ${o}`);let i=new a(e),u=(t-r)/(e-1);if(z(o))for(let c=0;c<e;c++){let l=r+c*u;i[c]=BigInt(Math.round(Math.pow(n,l)))}else if(o==="bool")for(let c=0;c<e;c++){let l=r+c*u;i[c]=Math.pow(n,l)!==0?1:0}else for(let c=0;c<e;c++){let l=r+c*u;i[c]=Math.pow(n,l)}let s=N.fromData(i,[e],o);return new I(s)}function _a(r,t,e=50,n=F){if(e<0)throw new Error("num must be non-negative");if(r===0||t===0)throw new Error("Geometric sequence cannot include zero");if(e===0)return P([],n);if(e===1)return P([r],n);let o=Math.sign(r),a=Math.sign(t);if(o!==a)throw new Error("Geometric sequence cannot contain both positive and negative values");let i=U(n);if(!i)throw new Error(`Cannot create geomspace array with dtype ${n}`);let u=new i(e),s=Math.log(Math.abs(r)),l=(Math.log(Math.abs(t))-s)/(e-1);if(z(n))for(let f=0;f<e;f++){let p=o*Math.exp(s+f*l);u[f]=BigInt(Math.round(p))}else if(n==="bool")for(let f=0;f<e;f++){let p=o*Math.exp(s+f*l);u[f]=p!==0?1:0}else for(let f=0;f<e;f++){let p=o*Math.exp(s+f*l);u[f]=p}let m=N.fromData(u,[e],n);return new I(m)}function de(r,t,e=0,n=F){let o=t??r,a=K([r,o],n),i=a.data;if(z(n)){let u=i;for(let s=0;s<r;s++){let c=s+e;c>=0&&c<o&&(u[s*o+c]=BigInt(1))}}else{let u=i;for(let s=0;s<r;s++){let c=s+e;c>=0&&c<o&&(u[s*o+c]=1)}}return a}function ge(r,t=F){return K(r,t)}function Ae(r,t,e){let n=e;n||(typeof t=="bigint"?n="int64":typeof t=="boolean"?n="bool":Number.isInteger(t)?n="int32":n=F);let o=U(n);if(!o)throw new Error(`Cannot create full array with dtype ${n}`);let a=r.reduce((s,c)=>s*c,1),i=new o(a);if(z(n)){let s=typeof t=="bigint"?t:BigInt(Math.round(Number(t)));i.fill(s)}else n==="bool"?i.fill(t?1:0):i.fill(Number(t));let u=N.fromData(i,r,n);return new I(u)}function Ba(r,t=F){return de(r,r,0,t)}function Er(r,t){return r instanceof I?!t||r.dtype===t?r:r.astype(t):P(r,t)}function va(r){return r.copy()}function Ea(r,t){return K(Array.from(r.shape),t??r.dtype)}function Oa(r,t){return ye(Array.from(r.shape),t??r.dtype)}function Ta(r,t){return ge(Array.from(r.shape),t??r.dtype)}function Ua(r,t,e){return Ae(Array.from(r.shape),t,e??r.dtype)}function $a(r,t){return Er(r,t)}function Ma(r,t){let e=Er(r,t);return e.flags.C_CONTIGUOUS?e:e.copy()}function ka(r,t){return Er(r,t).copy()}function he(r,t=0){if(r.ndim===1){let e=r.size,n=e+Math.abs(t),o=K([n,n],r.dtype);for(let a=0;a<e;a++){let i=t>=0?a:a-t,u=t>=0?a+t:a;o.set([i,u],r.get([a]))}return o}else if(r.ndim===2){let[e,n]=r.shape,o,a,i;if(t>=0?(o=0,a=t,i=Math.min(e,n-t)):(o=-t,a=0,i=Math.min(e+t,n)),i<=0)return K([0],r.dtype);let u=U(r.dtype),s=new u(i);for(let l=0;l<i;l++){let m=r.get([o+l,a+l]);z(r.dtype)?s[l]=typeof m=="bigint"?m:BigInt(m):s[l]=m}let c=N.fromData(s,[i],r.dtype);return new I(c)}else throw new Error("Input must be 1-D or 2-D")}function Ca(r,t=0){let e=r.flatten();return he(e,t)}function Va(r,t,e=F){let n=t.reduce((c,l)=>c*l,1),o=U(e);if(!o)throw new Error(`Cannot create array with dtype ${e}`);let a=new o(n),i=t.length,u=new Array(i).fill(0);for(let c=0;c<n;c++){let l=r(...u);z(e)?a[c]=typeof l=="bigint"?l:BigInt(Number(l)):e==="bool"?a[c]=l?1:0:a[c]=Number(l);for(let m=i-1;m>=0&&(u[m]++,!(u[m]<t[m]));m--)u[m]=0}let s=N.fromData(a,t,e);return new I(s)}function Pa(...r){let t=[],e="xy";for(let u of r)u instanceof I?t.push(u):typeof u=="object"&&"indexing"in u&&(e=u.indexing||"xy");if(t.length===0)return[];if(t.length===1)return[t[0].copy()];let n=t.map(u=>u.size);e==="xy"&&t.length>=2&&(t=[t[1],t[0],...t.slice(2)],[n[0],n[1]]=[n[1],n[0]]);let o=n,a=o.length,i=[];for(let u=0;u<t.length;u++){let s=t[u],c=s.size,l=new Array(a).fill(1);l[u]=c;let m=s.reshape(...l),f=Yt(m.storage,o),p=I._fromStorage(f.copy());i.push(p)}return e==="xy"&&i.length>=2&&([i[0],i[1]]=[i[1],i[0]]),i}function qa(r,t,e=0,n=F){let o=t??r,a=K([r,o],n);for(let i=0;i<r;i++)for(let u=0;u<=i+e&&u<o;u++)u>=0&&a.set([i,u],1);return a}function Fa(r,t=0){if(r.ndim<2)throw new Error("Input must have at least 2 dimensions");let e=r.copy(),n=e.shape,o=n[n.length-2],a=n[n.length-1],i=n.slice(0,-2).reduce((u,s)=>u*s,1);for(let u=0;u<i;u++)for(let s=0;s<o;s++)for(let c=0;c<a;c++)if(c>s+t){let l=[],m=u;for(let f=n.length-3;f>=0;f--)l.unshift(m%n[f]),m=Math.floor(m/n[f]);l.push(s,c),e.set(l,0)}return e}function Ra(r,t=0){if(r.ndim<2)throw new Error("Input must have at least 2 dimensions");let e=r.copy(),n=e.shape,o=n[n.length-2],a=n[n.length-1],i=n.slice(0,-2).reduce((u,s)=>u*s,1);for(let u=0;u<i;u++)for(let s=0;s<o;s++)for(let c=0;c<a;c++)if(c<s+t){let l=[],m=u;for(let f=n.length-3;f>=0;f--)l.unshift(m%n[f]),m=Math.floor(m/n[f]);l.push(s,c),e.set(l,0)}return e}function ja(r,t,e=!1){if(r.ndim!==1)throw new Error("Input must be 1-D");let n=r.size,o=t??n;if(o<0)throw new Error("N must be non-negative");let a=K([n,o],r.dtype);for(let i=0;i<n;i++){let u=r.get([i]);for(let s=0;s<o;s++){let c=e?s:o-1-s;a.set([i,s],Math.pow(u,c))}}return a}function La(r,t=F,e=-1,n=0){let o,a=n;r instanceof ArrayBuffer?o=r:(o=r.buffer,a+=r.byteOffset);let i=Ml(t),u=o.byteLength-a,s=Math.floor(u/i),c=e<0?s:Math.min(e,s);if(c<=0)return P([],t);let l=U(t);if(!l)throw new Error(`Unsupported dtype: ${t}`);let m=new l(o,a,c),f=N.fromData(m,[c],t);return new I(f)}function Wa(r,t=F,e=-1){let n=[],o=0;for(let a of r){if(e>=0&&o>=e)break;n.push(a),o++}return P(n,t)}function Za(r,t=F,e=-1){let n=[],o=0;for(let a of r){if(e>=0&&o>=e)break;n.push(a),o++}return P(n,t)}function Ga(r,t=F,e=-1,n=""){let o;n===""?o=r.trim().split(/\s+/):o=r.split(n);let a=[],i=0;for(let u of o){if(e>=0&&i>=e)break;let s=u.trim();s!==""&&(z(t)?a.push(BigInt(s)):a.push(parseFloat(s)),i++)}return P(a,t)}function Ml(r){switch(r){case"int8":case"uint8":case"bool":return 1;case"int16":case"uint16":return 2;case"int32":case"uint32":case"float32":return 4;case"int64":case"uint64":case"float64":return 8;default:return 8}}function Ha(r){return r.sqrt()}function Ya(r,t){return r.power(t)}function Ja(r){return r.exp()}function Qa(r){return r.exp2()}function Xa(r){return r.expm1()}function Ka(r){return r.log()}function rs(r){return r.log2()}function ts(r){return r.log10()}function es(r){return r.log1p()}function ns(r,t){return r.logaddexp(t)}function os(r,t){return r.logaddexp2(t)}function as(r){return r.absolute()}function ss(r){return r.negative()}function is(r){return r.sign()}function us(r,t){return r.mod(t)}function cs(r,t){return r.floor_divide(t)}function ls(r){return r.positive()}function fs(r){return r.reciprocal()}function ms(r,t){return r.dot(t)}function ps(r){return r.trace()}function ys(r,t=0,e=0,n=1){let o=$n(r.storage,t,e,n);return I._fromStorage(o)}function ds(r,t){let e=kn(r.storage,t.storage);return I._fromStorage(e)}function gs(r,t){return r.transpose(t)}function As(r,t){return r.inner(t)}function hs(r,t){return r.outer(t)}function bs(r,t,e=2){return r.tensordot(t,e)}function Ss(r){return r.sin()}function Ns(r){return r.cos()}function Ds(r){return r.tan()}function xs(r){return r.arcsin()}function ws(r){return r.arccos()}function zs(r){return r.arctan()}function Is(r,t){return r.arctan2(t)}function _s(r,t){return r.hypot(t)}function Bs(r){return r.degrees()}function vs(r){return r.radians()}function Es(r){return r.radians()}function Os(r){return r.degrees()}function Ts(r){return r.sinh()}function Us(r){return r.cosh()}function $s(r){return r.tanh()}function Ms(r){return r.arcsinh()}function ks(r){return r.arccosh()}function Cs(r){return r.arctanh()}function Vs(r,t,e){return r.swapaxes(t,e)}function Ps(r,t,e){return r.moveaxis(t,e)}function mr(r,t=0){if(r.length===0)throw new Error("need at least one array to concatenate");let e=r.map(o=>o.storage),n=lr(e,t);return I._fromStorage(n)}function qs(r,t=0){if(r.length===0)throw new Error("need at least one array to stack");let e=r.map(o=>o.storage),n=cn(e,t);return I._fromStorage(n)}function be(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=ln(t);return I._fromStorage(e)}function Fs(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=Pt(t);return I._fromStorage(e)}function Rs(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=fn(t);return I._fromStorage(e)}function js(r,t,e=0){return mn(r.storage,t,e).map(o=>I._fromStorage(o,r.base??r))}function Ls(r,t,e=0){return Br(r.storage,t,e).map(o=>I._fromStorage(o,r.base??r))}function Ws(r,t){return yn(r.storage,t).map(n=>I._fromStorage(n,r.base??r))}function Zs(r,t){return dn(r.storage,t).map(n=>I._fromStorage(n,r.base??r))}function Gs(r,t){let e=gn(r.storage,t);return I._fromStorage(e)}function Hs(r,t,e){return r.repeat(t,e)}function Ys(r){return r.ravel()}function Js(r,t){return r.reshape(...t)}function Qs(r,t){return r.squeeze(t)}function Xs(r,t){return r.expand_dims(t)}function et(r,t){let e=hn(r.storage,t);return I._fromStorage(e)}function Ks(r){if(r.ndim<2)throw new Error("Input must be at least 2-D");return et(r,1)}function ri(r){if(r.ndim<2)throw new Error("Input must be at least 2-D");return et(r,0)}function ti(r,t=1,e=[0,1]){let n=bn(r.storage,t,e);return I._fromStorage(n)}function ei(r,t,e){let n=Sn(r.storage,t,e);return I._fromStorage(n)}function ni(r,t,e=0){let n=Nn(r.storage,t,e);return I._fromStorage(n,r.base??r)}function oi(...r){let t=r.map(o=>o.storage),n=zn(t).map((o,a)=>o===t[a]?r[a]:I._fromStorage(o));return n.length===1?n[0]:n}function ai(...r){let t=r.map(o=>o.storage),n=In(t).map((o,a)=>o===t[a]?r[a]:I._fromStorage(o));return n.length===1?n[0]:n}function si(...r){let t=r.map(o=>o.storage),n=_n(t).map((o,a)=>o===t[a]?r[a]:I._fromStorage(o));return n.length===1?n[0]:n}function ii(r,t){return Dn(r.storage,t).map(n=>I._fromStorage(n,r.base??r))}function ui(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=xn(t);return I._fromStorage(e)}function ci(r){return be(r)}function li(r,t){let e=wn(r.storage,t);return I._fromStorage(e)}function fi(r,t,e){let n=t instanceof I?t:P(t,r.dtype);if(e===void 0){let o=r.flatten(),a=n.flatten();return mr([o,a])}return mr([r,n],e)}function mi(r,t,e){let n=r.dtype;if(e===void 0){let p=r.flatten(),d=(Array.isArray(t)?t:[t]).map(S=>S<0?p.size+S:S),g=[];for(let S=0;S<p.size;S++)d.includes(S)||g.push(S);let b=U(n),h=new b(g.length);for(let S=0;S<g.length;S++){let D=p.get([g[S]]);z(n)?h[S]=typeof D=="bigint"?D:BigInt(D):h[S]=D}let A=N.fromData(h,[g.length],n);return new I(A)}let o=r.shape,a=o.length,i=e<0?a+e:e;if(i<0||i>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);let u=o[i],s=Array.isArray(t)?t:[t],c=new Set(s.map(p=>p<0?u+p:p)),l=[],m=0;for(let p=0;p<=u;p++)(c.has(p)||p===u)&&(p>m&&l.push([m,p]),m=p+1);if(l.length===0){let p=[...o];return p[i]=0,K(p,n)}let f=[];for(let[p,y]of l){let d=o.map(()=>":");d[i]=`${p}:${y}`,f.push(r.slice(...d))}return mr(f,i)}function pi(r,t,e,n){let o=e instanceof I?e:P(e,r.dtype);if(n===void 0){let m=r.flatten(),f=o.flatten(),p=t<0?m.size+t:t;if(p<0||p>m.size)throw new Error(`index ${t} is out of bounds for array of size ${m.size}`);let y=p>0?m.slice(`0:${p}`):null,d=p<m.size?m.slice(`${p}:`):null,g=[];return y&&g.push(y),g.push(f),d&&g.push(d),mr(g)}let a=r.shape,i=a.length,u=n<0?i+n:n;if(u<0||u>=i)throw new Error(`axis ${n} is out of bounds for array of dimension ${i}`);let s=a[u],c=t<0?s+t:t;if(c<0||c>s)throw new Error(`index ${t} is out of bounds for axis ${n} with size ${s}`);let l=[];if(c>0){let m=a.map(()=>":");m[u]=`0:${c}`,l.push(r.slice(...m))}if(l.push(o),c<s){let m=a.map(()=>":");m[u]=`${c}:`,l.push(r.slice(...m))}return mr(l,u)}function yi(r,t,e="constant",n=0){let o=r.shape,a=o.length,i=r.dtype,u;if(typeof t=="number"?u=o.map(()=>[t,t]):Array.isArray(t)&&typeof t[0]=="number"?u=o.map(()=>t):u=t,u.length!==a)throw new Error(`pad_width must have ${a} elements`);let s=o.map((d,g)=>d+u[g][0]+u[g][1]),c=s.reduce((d,g)=>d*g,1),l=U(i),m=new l(c),f=z(i);e==="constant"&&(f?m.fill(BigInt(n)):m.fill(n));let p=new Array(a).fill(0);for(let d=0;d<c;d++){let g=!0,b=[];for(let A=0;A<a;A++){let[S]=u[A],D=p[A]-S;if(D<0||D>=o[A]){g=!1;break}b.push(D)}let h;if(g)h=r.get(b);else if(e==="constant"){for(let A=a-1;A>=0&&(p[A]++,!(p[A]<s[A]));A--)p[A]=0;continue}else{let A=[];for(let S=0;S<a;S++){let[D]=u[S],x=p[S]-D,w=o[S];x<0?e==="edge"?x=0:e==="reflect"?(x=-x,x>=w&&(x=w-1)):e==="symmetric"?(x=-x-1,x>=w&&(x=w-1),x<0&&(x=0)):e==="wrap"&&(x=(x%w+w)%w):x>=w&&(e==="edge"?x=w-1:e==="reflect"?(x=2*w-x-2,x<0&&(x=0)):e==="symmetric"?(x=2*w-x-1,x<0&&(x=0)):e==="wrap"&&(x=x%w)),A.push(Math.max(0,Math.min(w-1,x)))}h=r.get(A)}f?m[d]=typeof h=="bigint"?h:BigInt(Number(h)):m[d]=Number(h);for(let A=a-1;A>=0&&(p[A]++,!(p[A]<s[A]));A--)p[A]=0}let y=N.fromData(m,s,i);return new I(y)}function di(r,t){let e=Yt(r.storage,t);return I._fromStorage(e,r.base??r)}function gi(...r){let t=r.map(n=>n.storage);return Bo(t).map((n,o)=>I._fromStorage(n,r[o].base??r[o]))}function Ai(...r){return St(...r)}function hi(r,t,e){return r.take(t,e)}function bi(r,t,e){r.put(t,e)}function Si(r,t){let e=t.map(o=>o.storage),n=Oo(r.storage,e);return I._fromStorage(n)}function Ni(r,t,e=!1){return To(r.storage,t.storage,e)}function Di(r,t){return en(r.storage,t.storage)}function xi(r,t){return I._fromStorage(Et(r.storage,t))}function wi(r,t){return I._fromStorage(Ot(r.storage,t))}function zi(r,t,e=!1){let n=Tt(r.storage,t,e);return typeof n=="number"?n:I._fromStorage(n)}function Ii(r,t,e=!1){let n=Ut(r.storage,t,e);return typeof n=="number"?n:I._fromStorage(n)}function _i(r,t,e,n=!1){let o=$t(r.storage,t,e,n);return typeof o=="number"?o:I._fromStorage(o)}function Bi(r,t,e,n=!1){let o=gr(r.storage,t,e,n);return typeof o=="number"?o:I._fromStorage(o)}function vi(r,t,e,n=!1){let o=e?e.storage:void 0,a=jr(r.storage,t,o,n);return typeof a=="number"?a:I._fromStorage(a)}function Ei(r,t,e=!1){let n=Lr(r.storage,t,e);return typeof n=="number"?n:I._fromStorage(n)}function Oi(r,t,e=!1){let n=Wr(r.storage,t,e);return typeof n=="number"?n:I._fromStorage(n)}function Ti(r,t,e=!1){let n=Zr(r.storage,t,e);return typeof n=="number"?n:I._fromStorage(n)}function Ui(r,t,e=0,n=!1){let o=zr(r.storage,t,e,n);return typeof o=="number"?o:I._fromStorage(o)}function $i(r,t,e=0,n=!1){let o=Mt(r.storage,t,e,n);return typeof o=="number"?o:I._fromStorage(o)}function Mi(r,t,e=!1){let n=Gr(r.storage,t,e);return typeof n=="number"?n:I._fromStorage(n)}function ki(r,t,e=!1){let n=Hr(r.storage,t,e);return typeof n=="number"?n:I._fromStorage(n)}function Ci(r,t){let e=Yr(r.storage,t);return typeof e=="number"?e:I._fromStorage(e)}function Vi(r,t){let e=Jr(r.storage,t);return typeof e=="number"?e:I._fromStorage(e)}function Pi(r,t){return I._fromStorage(kt(r.storage,t))}function qi(r,t){return I._fromStorage(Ct(r.storage,t))}function Fi(r,t,e=!1){let n=Qr(r.storage,t,e);return typeof n=="number"?n:I._fromStorage(n)}function Ri(r){return r.cbrt()}function ji(r){return r.fabs()}function Li(r,t){return r.divmod(t)}function Wi(r){return r.square()}function Zi(r,t){return r.remainder(t)}function Gi(r,t){return r.heaviside(t)}function Hi(r,t){return r.bitwise_and(t)}function Yi(r,t){return r.bitwise_or(t)}function Ji(r,t){return r.bitwise_xor(t)}function Qi(r){return r.bitwise_not()}function Xi(r){return r.invert()}function Ki(r,t){return r.left_shift(t)}function ru(r,t){return r.right_shift(t)}function tu(r,t=-1,e="big"){let n=ea(r.storage,t,e);return I._fromStorage(n)}function eu(r,t=-1,e=-1,n="big"){let o=na(r.storage,t,e,n);return I._fromStorage(o)}function nu(r,...t){let e=t.map(o=>o.storage),n=Mn(r,...e);return typeof n=="number"||typeof n=="bigint"?n:I._fromStorage(n)}function au(r,t,e){return I._fromStorage(Uo(r.storage,t.storage,e))}function su(r,t,e,n){$o(r.storage,t.storage,e.storage,n)}function iu(r,t,e){let n=e instanceof I?e.storage:e;Mo(r.storage,t.storage,n)}function uu(r,t,e){return I._fromStorage(ko(r.storage,t.storage,e))}function cu(r,t,e=0){let n=r.map(a=>a.storage),o=t.map(a=>a.storage);return I._fromStorage(Co(n,o,e))}function lu(r,t,e){Vo(r.storage,t.storage,e.storage)}function fu(r,t=2){return Jt(r,t).map(n=>I._fromStorage(n))}function mu(r){return Po(r.storage).map(e=>I._fromStorage(e))}function pu(r,t=0,e){return Qt(r,t,e).map(o=>I._fromStorage(o))}function yu(r,t=0){return qo(r.storage,t).map(n=>I._fromStorage(n))}function du(r,t=0,e){return Xt(r,t,e).map(o=>I._fromStorage(o))}function gu(r,t=0){return Fo(r.storage,t).map(n=>I._fromStorage(n))}function Au(r,t,e=0){return Ro(r,(a,i)=>t(a,i).storage,e).map(a=>I._fromStorage(a))}function hu(r,t="int32"){return I._fromStorage(jo(r,t))}function bu(...r){return Lo(...r.map(e=>e.storage)).map(e=>I._fromStorage(e))}function Su(r,t,e="raise"){let n=r.map(o=>o.storage);return I._fromStorage(Wo(n,t,e))}function Nu(r,t,e="C"){let n=r instanceof I?r.storage:r;return Zo(n,t,e).map(a=>I._fromStorage(a))}function Du(r,t=-1){return I._fromStorage(re(r.storage,t))}function xu(r,t=-1){return I._fromStorage(te(r.storage,t))}function wu(r){let t=r.map(e=>e.storage);return I._fromStorage(aa(t))}function zu(r,t,e=-1){return I._fromStorage(ee(r.storage,t,e))}function Iu(r,t,e=-1){return I._fromStorage(ne(r.storage,t,e))}function _u(r){return I._fromStorage(sa(r.storage))}function Bu(r){return tt(r.storage).map(e=>I._fromStorage(e))}function vu(r){return I._fromStorage(ia(r.storage))}function Eu(r,t,e){let n=ua(r.storage,t?.storage,e?.storage);return Array.isArray(n)?n.map(o=>I._fromStorage(o)):I._fromStorage(n)}function Ou(r,t,e="left"){return I._fromStorage(oe(r.storage,t.storage,e))}function Tu(r,t){return I._fromStorage(ca(r.storage,t.storage))}function Uu(r,t){let e=ae(r.storage,t);return typeof e=="number"?e:I._fromStorage(e)}function Se(r,t=0){return I._fromStorage(se(r.storage,t))}function $u(r){return I._fromStorage(ie(r.storage))}function Mu(r){return I._fromStorage(ue(r.storage))}function ku(r){return I._fromStorage(ce(r.storage))}function Cu(r){return I._fromStorage(le(r.storage))}function Vu(r){return I._fromStorage(fe(r.storage))}function Pu(r,t=!1,e=!1,n=!1){let o=nr(r.storage,t,e,n);if(o instanceof N)return I._fromStorage(o);let a={values:I._fromStorage(o.values)};return o.indices&&(a.indices=I._fromStorage(o.indices)),o.inverse&&(a.inverse=I._fromStorage(o.inverse)),o.counts&&(a.counts=I._fromStorage(o.counts)),a}function qu(r,t){return I._fromStorage(pa(r.storage,t.storage))}function Fu(r,t){return I._fromStorage(ya(r.storage,t.storage))}function Ru(r,t){return I._fromStorage(me(r.storage,t.storage))}function ju(r,t){return I._fromStorage(da(r.storage,t.storage))}function Lu(r,t){return I._fromStorage(ga(r.storage,t.storage))}function Wu(r,t){return I._fromStorage(Aa(r.storage,t.storage))}function Zu(r,t=1,e=-1){return I._fromStorage(pe(r.storage,t,e))}function Gu(r,t=null,e=null){return I._fromStorage(ba(r.storage,t,e))}function Hu(r,t=1,e=null){let n=Sa(r.storage,t,e);return Array.isArray(n)?n.map(o=>I._fromStorage(o)):I._fromStorage(n)}function Yu(r,t,e=-1,n=-1,o=-1){return I._fromStorage(Na(r.storage,t.storage,e,n,o))}var I,ou,nt=k(()=>{"use strict";ve();j();R();He();nn();an();qt();Jn();uo();So();_o();Go();oa();la();ma();ha();Da();I=class r{constructor(t,e){this._storage=t,this._base=e}get storage(){return this._storage}static _fromStorage(t,e){return new r(t,e)}get shape(){return this._storage.shape}get ndim(){return this._storage.ndim}get size(){return this._storage.size}get dtype(){return this._storage.dtype}get data(){return this._storage.data}get strides(){return this._storage.strides}get flags(){return{C_CONTIGUOUS:this._storage.isCContiguous,F_CONTIGUOUS:this._storage.isFContiguous,OWNDATA:this._base===void 0}}get base(){return this._base??null}get(t){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let e=t.map((n,o)=>{let a=n;if(a<0&&(a=this.shape[o]+a),a<0||a>=this.shape[o])throw new Error(`Index ${n} is out of bounds for axis ${o} with size ${this.shape[o]}`);return a});return this._storage.get(...e)}set(t,e){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let n=t.map((i,u)=>{let s=i;if(s<0&&(s=this.shape[u]+s),s<0||s>=this.shape[u])throw new Error(`Index ${i} is out of bounds for axis ${u} with size ${this.shape[u]}`);return s}),o=this.dtype,a;z(o)?a=typeof e=="bigint"?e:BigInt(Math.round(e)):o==="bool"?a=e?1:0:a=Number(e),this._storage.set(n,a)}copy(){return new r(this._storage.copy())}astype(t,e=!0){let n=this.dtype;if(n===t&&!e)return this;if(n===t&&e)return this.copy();let o=Array.from(this.shape),a=this.size,i=U(t);if(!i)throw new Error(`Cannot convert to dtype ${t}`);let u=new i(a),s=this.data;if(z(n)&&!z(t)){let l=s;if(t==="bool")for(let m=0;m<a;m++)u[m]=l[m]!==BigInt(0)?1:0;else for(let m=0;m<a;m++)u[m]=Number(l[m])}else if(!z(n)&&z(t)){let l=s;for(let m=0;m<a;m++)u[m]=BigInt(Math.round(Number(l[m])))}else if(t==="bool"){let l=s;for(let m=0;m<a;m++)u[m]=l[m]!==0?1:0}else if(n==="bool"&&!z(t)){let l=s;for(let m=0;m<a;m++)u[m]=l[m]}else if(!z(n)&&!z(t)){let l=s;for(let m=0;m<a;m++)u[m]=l[m]}else{let l=s;for(let m=0;m<a;m++)u[m]=l[m]}let c=N.fromData(u,o,t);return new r(c)}add(t){let e=typeof t=="number"?t:t._storage,n=Ue(this._storage,e);return r._fromStorage(n)}subtract(t){let e=typeof t=="number"?t:t._storage,n=$e(this._storage,e);return r._fromStorage(n)}multiply(t){let e=typeof t=="number"?t:t._storage,n=Me(this._storage,e);return r._fromStorage(n)}divide(t){let e=typeof t=="number"?t:t._storage,n=ke(this._storage,e);return r._fromStorage(n)}mod(t){let e=typeof t=="number"?t:t._storage,n=Pr(this._storage,e);return r._fromStorage(n)}floor_divide(t){let e=typeof t=="number"?t:t._storage,n=bt(this._storage,e);return r._fromStorage(n)}positive(){let t=qe(this._storage);return r._fromStorage(t)}reciprocal(){let t=Fe(this._storage);return r._fromStorage(t)}sqrt(){let t=Qn(this._storage);return r._fromStorage(t)}power(t){let e=typeof t=="number"?t:t._storage,n=Xn(this._storage,e);return r._fromStorage(n)}exp(){let t=Kn(this._storage);return r._fromStorage(t)}exp2(){let t=ro(this._storage);return r._fromStorage(t)}expm1(){let t=to(this._storage);return r._fromStorage(t)}log(){let t=eo(this._storage);return r._fromStorage(t)}log2(){let t=no(this._storage);return r._fromStorage(t)}log10(){let t=oo(this._storage);return r._fromStorage(t)}log1p(){let t=ao(this._storage);return r._fromStorage(t)}logaddexp(t){let e=typeof t=="number"?t:t._storage,n=so(this._storage,e);return r._fromStorage(n)}logaddexp2(t){let e=typeof t=="number"?t:t._storage,n=io(this._storage,e);return r._fromStorage(n)}absolute(){let t=Ce(this._storage);return r._fromStorage(t)}negative(){let t=Ve(this._storage);return r._fromStorage(t)}sign(){let t=Pe(this._storage);return r._fromStorage(t)}around(t=0){let e=se(this._storage,t);return r._fromStorage(e)}round(t=0){return this.around(t)}ceil(){let t=ie(this._storage);return r._fromStorage(t)}fix(){let t=ue(this._storage);return r._fromStorage(t)}floor(){let t=ce(this._storage);return r._fromStorage(t)}rint(){let t=le(this._storage);return r._fromStorage(t)}trunc(){let t=fe(this._storage);return r._fromStorage(t)}sin(){let t=co(this._storage);return r._fromStorage(t)}cos(){let t=lo(this._storage);return r._fromStorage(t)}tan(){let t=fo(this._storage);return r._fromStorage(t)}arcsin(){let t=mo(this._storage);return r._fromStorage(t)}arccos(){let t=po(this._storage);return r._fromStorage(t)}arctan(){let t=yo(this._storage);return r._fromStorage(t)}arctan2(t){let e=typeof t=="number"?t:t._storage,n=go(this._storage,e);return r._fromStorage(n)}hypot(t){let e=typeof t=="number"?t:t._storage,n=Ao(this._storage,e);return r._fromStorage(n)}degrees(){let t=ho(this._storage);return r._fromStorage(t)}radians(){let t=bo(this._storage);return r._fromStorage(t)}sinh(){let t=No(this._storage);return r._fromStorage(t)}cosh(){let t=Do(this._storage);return r._fromStorage(t)}tanh(){let t=xo(this._storage);return r._fromStorage(t)}arcsinh(){let t=wo(this._storage);return r._fromStorage(t)}arccosh(){let t=zo(this._storage);return r._fromStorage(t)}arctanh(){let t=Io(this._storage);return r._fromStorage(t)}greater(t){let e=typeof t=="number"?t:t._storage,n=Ye(this._storage,e);return r._fromStorage(n)}greater_equal(t){let e=typeof t=="number"?t:t._storage,n=Je(this._storage,e);return r._fromStorage(n)}less(t){let e=typeof t=="number"?t:t._storage,n=Qe(this._storage,e);return r._fromStorage(n)}less_equal(t){let e=typeof t=="number"?t:t._storage,n=Xe(this._storage,e);return r._fromStorage(n)}equal(t){let e=typeof t=="number"?t:t._storage,n=Ke(this._storage,e);return r._fromStorage(n)}not_equal(t){let e=typeof t=="number"?t:t._storage,n=rn(this._storage,e);return r._fromStorage(n)}isclose(t,e=1e-5,n=1e-8){let o=typeof t=="number"?t:t._storage,a=Dt(this._storage,o,e,n);return r._fromStorage(a)}allclose(t,e=1e-5,n=1e-8){let o=typeof t=="number"?t:t._storage;return tn(this._storage,o,e,n)}bitwise_and(t){let e=typeof t=="number"?t:t._storage,n=Jo(this._storage,e);return r._fromStorage(n)}bitwise_or(t){let e=typeof t=="number"?t:t._storage,n=Qo(this._storage,e);return r._fromStorage(n)}bitwise_xor(t){let e=typeof t=="number"?t:t._storage,n=Xo(this._storage,e);return r._fromStorage(n)}bitwise_not(){let t=Kt(this._storage);return r._fromStorage(t)}invert(){let t=Ko(this._storage);return r._fromStorage(t)}left_shift(t){let e=typeof t=="number"?t:t._storage,n=ra(this._storage,e);return r._fromStorage(n)}right_shift(t){let e=typeof t=="number"?t:t._storage,n=ta(this._storage,e);return r._fromStorage(n)}sum(t,e=!1){let n=wr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}mean(t,e=!1){let n=qr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}max(t,e=!1){let n=Fr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}min(t,e=!1){let n=Rr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}prod(t,e=!1){let n=wt(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}argmin(t){let e=zt(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}argmax(t){let e=It(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}var(t,e=0,n=!1){let o=_t(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}std(t,e=0,n=!1){let o=on(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}all(t,e=!1){let n=Bt(this._storage,t,e);return typeof n=="boolean"?n:r._fromStorage(n)}any(t,e=!1){let n=vt(this._storage,t,e);return typeof n=="boolean"?n:r._fromStorage(n)}cumsum(t){return r._fromStorage(Et(this._storage,t))}cumprod(t){return r._fromStorage(Ot(this._storage,t))}ptp(t,e=!1){let n=Tt(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}median(t,e=!1){let n=Ut(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}percentile(t,e,n=!1){let o=$t(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}quantile(t,e,n=!1){let o=gr(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}average(t,e){let n=jr(this._storage,e,t?.storage);return typeof n=="number"?n:r._fromStorage(n)}nansum(t,e=!1){let n=Lr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}nanprod(t,e=!1){let n=Wr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}nanmean(t,e=!1){let n=Zr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}nanvar(t,e=0,n=!1){let o=zr(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}nanstd(t,e=0,n=!1){let o=Mt(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}nanmin(t,e=!1){let n=Gr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}nanmax(t,e=!1){let n=Hr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}nanargmin(t){let e=Yr(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}nanargmax(t){let e=Jr(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}nancumsum(t){return r._fromStorage(kt(this._storage,t))}nancumprod(t){return r._fromStorage(Ct(this._storage,t))}nanmedian(t,e=!1){let n=Qr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}sort(t=-1){return r._fromStorage(re(this._storage,t))}argsort(t=-1){return r._fromStorage(te(this._storage,t))}partition(t,e=-1){return r._fromStorage(ee(this._storage,t,e))}argpartition(t,e=-1){return r._fromStorage(ne(this._storage,t,e))}nonzero(){return tt(this._storage).map(e=>r._fromStorage(e))}searchsorted(t,e="left"){return r._fromStorage(oe(this._storage,t._storage,e))}diff(t=1,e=-1){return r._fromStorage(pe(this._storage,t,e))}reshape(...t){let e=t.length===1&&Array.isArray(t[0])?t[0]:t,n=W(this._storage,e),a=n.data===this.data?this._base??this:void 0;return r._fromStorage(n,a)}flatten(){let t=Xr(this._storage);return r._fromStorage(t)}ravel(){let t=Ar(this._storage),n=t.data===this.data?this._base??this:void 0;return r._fromStorage(t,n)}transpose(t){let e=_r(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}squeeze(t){let e=sn(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}expand_dims(t){let e=Ir(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}swapaxes(t,e){let n=un(this._storage,t,e),o=this._base??this;return r._fromStorage(n,o)}moveaxis(t,e){let n=Vt(this._storage,t,e),o=this._base??this;return r._fromStorage(n,o)}repeat(t,e){let n=An(this._storage,t,e);return r._fromStorage(n)}take(t,e){let n=vo(this._storage,t,e);return r._fromStorage(n)}put(t,e){let n=e instanceof r?e._storage:e;Eo(this._storage,t,n)}matmul(t){let e=J(this._storage,t._storage);return r._fromStorage(e)}dot(t){let e=Rt(this._storage,t._storage);return typeof e=="number"||typeof e=="bigint"?e:r._fromStorage(e)}trace(){return On(this._storage)}inner(t){let e=Tn(this._storage,t._storage);return typeof e=="number"||typeof e=="bigint"?e:r._fromStorage(e)}outer(t){let e=jt(this._storage,t._storage);return r._fromStorage(e)}tensordot(t,e=2){let n=Un(this._storage,t._storage,e);return typeof n=="number"||typeof n=="bigint"?n:r._fromStorage(n)}cbrt(){let t=Re(this._storage);return r._fromStorage(t)}fabs(){let t=je(this._storage);return r._fromStorage(t)}divmod(t){let e=typeof t=="number"?t:t._storage,[n,o]=Le(this._storage,e);return[r._fromStorage(n),r._fromStorage(o)]}square(){let t=We(this._storage);return r._fromStorage(t)}remainder(t){let e=typeof t=="number"?t:t._storage,n=Ze(this._storage,e);return r._fromStorage(n)}heaviside(t){let e=typeof t=="number"?t:t._storage,n=Ge(this._storage,e);return r._fromStorage(n)}slice(...t){if(t.length===0)return this;if(t.length>this.ndim)throw new Error(`Too many indices for array: array is ${this.ndim}-dimensional, but ${t.length} were indexed`);let e=t.map((s,c)=>{let l=_e(s);return Be(l,this.shape[c])});for(;e.length<this.ndim;)e.push({start:0,stop:this.shape[e.length],step:1,isIndex:!1});let n=[],o=[],a=this._storage.offset;for(let s=0;s<e.length;s++){let c=e[s],l=this._storage.strides[s];if(a+=c.start*l,!c.isIndex){let m;c.step>0?m=Math.max(0,Math.ceil((c.stop-c.start)/c.step)):m=Math.max(0,Math.ceil((c.start-c.stop)/Math.abs(c.step))),n.push(m),o.push(l*c.step)}}let i=N.fromData(this._storage.data,n,this._storage.dtype,o,a),u=this._base??this;return new r(i,u)}row(t){if(this.ndim<2)throw new Error("row() requires at least 2 dimensions");return this.slice(String(t),":")}col(t){if(this.ndim<2)throw new Error("col() requires at least 2 dimensions");return this.slice(":",String(t))}rows(t,e){if(this.ndim<2)throw new Error("rows() requires at least 2 dimensions");return this.slice(`${t}:${e}`,":")}cols(t,e){if(this.ndim<2)throw new Error("cols() requires at least 2 dimensions");return this.slice(":",`${t}:${e}`)}toString(){return`NDArray(shape=${JSON.stringify(this.shape)}, dtype=${this.dtype})`}toArray(){if(this.ndim===0)return this._storage.iget(0);let t=this.shape,e=t.length,n=(o,a)=>{if(a===e)return this._storage.get(...o);let i=[];for(let u=0;u<t[a];u++)o[a]=u,i.push(n(o,a+1));return i};return n(new Array(e),0)}};ou={cross:(r,t,e=-1,n=-1,o=-1,a)=>{let i=Cn(r.storage,t.storage,e,n,o,a);return typeof i=="number"?i:I._fromStorage(i)},norm:(r,t=null,e=null,n=!1)=>{let o=Vn(r.storage,t,e,n);return typeof o=="number"?o:I._fromStorage(o)},vector_norm:(r,t=2,e,n=!1)=>{let o=hr(r.storage,t,e,n);return typeof o=="number"?o:I._fromStorage(o)},matrix_norm:(r,t="fro",e=!1)=>{let n=fr(r.storage,t,e);return typeof n=="number"?n:I._fromStorage(n)},qr:(r,t="reduced")=>{let e=Lt(r.storage,t);return e instanceof N?I._fromStorage(e):"q"in e&&"r"in e?{q:I._fromStorage(e.q),r:I._fromStorage(e.r)}:{h:I._fromStorage(e.h),tau:I._fromStorage(e.tau)}},cholesky:(r,t=!1)=>I._fromStorage(Pn(r.storage,t)),svd:(r,t=!0,e=!0)=>{let n=qn(r.storage,t,e);return"u"in n?{u:I._fromStorage(n.u),s:I._fromStorage(n.s),vt:I._fromStorage(n.vt)}:I._fromStorage(n)},det:r=>Fn(r.storage),inv:r=>I._fromStorage(Kr(r.storage)),solve:(r,t)=>I._fromStorage(Rn(r.storage,t.storage)),lstsq:(r,t,e=null)=>{let n=jn(r.storage,t.storage,e);return{x:I._fromStorage(n.x),residuals:I._fromStorage(n.residuals),rank:n.rank,s:I._fromStorage(n.s)}},cond:(r,t=2)=>Ln(r.storage,t),matrix_rank:(r,t)=>Wn(r.storage,t),matrix_power:(r,t)=>I._fromStorage(Zn(r.storage,t)),pinv:(r,t=1e-15)=>I._fromStorage(Gn(r.storage,t)),eig:r=>{let t=Gt(r.storage);return{w:I._fromStorage(t.w),v:I._fromStorage(t.v)}},eigh:(r,t="L")=>{let e=Ht(r.storage,t);return{w:I._fromStorage(e.w),v:I._fromStorage(e.v)}},eigvals:r=>I._fromStorage(Hn(r.storage)),eigvalsh:(r,t="L")=>I._fromStorage(Yn(r.storage,t))}});function Ne(){let r=new ArrayBuffer(2);return new DataView(r).setInt16(0,256,!0),new Int16Array(r)[0]===256}function Qu(r){if(r.startsWith("[")||r.startsWith("("))throw new rr(`Structured/compound dtypes are not supported: ${r}`);let t="",e=r;(r[0]==="<"||r[0]===">"||r[0]==="="||r[0]==="|")&&(t=r[0],e=r.slice(1));let n=e[0];if(n&&n in Ju)throw new rr(`Unsupported dtype: ${Ju[n]} (${r}). Use the 'force' parameter to skip arrays with unsupported dtypes.`);let o=kl[e];if(!o)throw new rr(`Unknown or unsupported dtype descriptor: ${r}. Supported types: ${ot.join(", ")}. Use the 'force' parameter to skip arrays with unsupported dtypes.`);let a=Ne(),i=t==="<"||t==="|"||t==="="&&a,u=t===">"||t==="="&&!a,s=parseInt(e.slice(1),10),c=s>1&&(u&&a||i&&!a);return{dtype:o,needsByteSwap:c,itemsize:s}}var Or,ot,kl,Tr,Ju,rr,H,Ur=k(()=>{"use strict";Or=new Uint8Array([147,78,85,77,80,89]),ot=["float64","float32","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"];kl={f8:"float64",f4:"float32",i8:"int64",i4:"int32",i2:"int16",i1:"int8",u8:"uint64",u4:"uint32",u2:"uint16",u1:"uint8",b1:"bool"},Tr={float64:"<f8",float32:"<f4",int64:"<i8",int32:"<i4",int16:"<i2",int8:"|i1",uint64:"<u8",uint32:"<u4",uint16:"<u2",uint8:"|u1",bool:"|b1"},Ju={c:"complex numbers",S:"byte strings",U:"Unicode strings",O:"Python objects",V:"structured arrays (void)",M:"datetime64",m:"timedelta64"};rr=class extends Error{constructor(t){super(t),this.name="UnsupportedDTypeError"}},H=class extends Error{constructor(t){super(t),this.name="InvalidNpyError"}}});function ur(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=at(t);return st(t,e)}function at(r){if(r.length<10)throw new H("File too small to be a valid NPY file");for(let c=0;c<Or.length;c++)if(r[c]!==Or[c])throw new H("Invalid NPY magic number");let t=r[6],e=r[7];if(t!==1&&t!==2&&t!==3)throw new H(`Unsupported NPY version: ${t}.${e}`);let n,o;t===1?(n=r[8]|r[9]<<8,o=10):(n=r[8]|r[9]<<8|r[10]<<16|r[11]<<24,o=12);let a=o+n;if(r.length<a)throw new H("File truncated: header extends beyond file");let i=r.slice(o,a),u=new TextDecoder("utf-8").decode(i).trim(),s=Cl(u);return{version:{major:t,minor:e},header:s,dataOffset:a}}function st(r,t){let{header:e,dataOffset:n}=t,{dtype:o,needsByteSwap:a,itemsize:i}=Qu(e.descr),u=e.shape.reduce((d,g)=>d*g,1),s=u*i,c=r.length-n;if(c<s)throw new H(`File truncated: expected ${s} bytes of data, got ${c}`);let l=new ArrayBuffer(s);new Uint8Array(l).set(r.subarray(n,n+s));let f=Vl(l,o,u,a,i),p=e.shape,y;if(e.fortran_order&&p.length>1){let d=[...p].reverse(),g=N.fromData(f,d,o);y=Pl(g,d),p=e.shape}else y=N.fromData(f,[...p],o);return new I(y)}function Cl(r){let t=r.match(/'descr'\s*:\s*'([^']+)'/),e=r.match(/'fortran_order'\s*:\s*(True|False)/),n=r.match(/'shape'\s*:\s*\(([^)]*)\)/);if(!t||!e||!n)throw new H(`Failed to parse NPY header: ${r}`);let o=t[1],a=e[1]==="True",i=n[1].trim(),u;return i===""?u=[]:u=i.split(",").map(s=>s.trim()).filter(s=>s!=="").map(s=>{let c=parseInt(s,10);if(isNaN(c))throw new H(`Invalid shape value: ${s}`);return c}),{descr:o,fortran_order:a,shape:u}}function Vl(r,t,e,n,o){let a=U(t);if(!a)throw new H(`Cannot create array for dtype: ${t}`);if(!n)return new a(r,0,e);let i=new Uint8Array(r),u=new Uint8Array(r.byteLength);for(let s=0;s<e;s++){let c=s*o;for(let l=0;l<o;l++)u[c+l]=i[c+o-1-l]}return new a(u.buffer,0,e)}function Pl(r,t){let e=t.length,n=r.size,o=r.dtype,a=U(o);if(!a)throw new H(`Cannot create array for dtype: ${o}`);let i=new a(n),u=[...t].reverse(),s=Xu(t),c=Xu(u),l=new Array(e).fill(0);for(let m=0;m<n;m++){let f=m;for(let y=0;y<e;y++){let d=s[y];l[y]=Math.floor(f/d),f=f%d}let p=0;for(let y=0;y<e;y++)p+=l[e-1-y]*c[y];z(o),i[p]=r.iget(m)}return N.fromData(i,u,o)}function Xu(r){let t=new Array(r.length),e=1;for(let n=r.length-1;n>=0;n--)t[n]=e,e*=r[n];return t}var it=k(()=>{"use strict";nt();R();j();Ur()});function or(r){let t=r.shape,e=r.dtype,n=Tr[e],o=t.length===0?"()":t.length===1?`(${t[0]},)`:`(${t.join(", ")})`,a=`{'descr': '${n}', 'fortran_order': False, 'shape': ${o}, }`,i=12,s=(64-(i+a.length+1)%64)%64;a=a+" ".repeat(s)+`
2
- `;let c=new TextEncoder().encode(a),l=c.length,m=r.size,f=Oe(e),p=m*f,y=i+l+p,d=new Uint8Array(y);d.set(Or,0),d[6]=3,d[7]=0,d[8]=l&255,d[9]=l>>8&255,d[10]=l>>16&255,d[11]=l>>24&255,d.set(c,i);let g=i+l;return ql(r,d.subarray(g),f),d}function ql(r,t,e){let n=r.dtype,o=r.size,a=Ne(),i=z(n),u=r._storage;if(u.isCContiguous&&u.offset===0&&a){let c=u.data,l=new Uint8Array(c.buffer,c.byteOffset,o*e);t.set(l)}else{let c=new DataView(t.buffer,t.byteOffset,t.byteLength);for(let l=0;l<o;l++){let m=u.iget(l),f=l*e;i?Fl(c,f,m,n==="uint64"):Rl(c,f,m,n)}}}function Fl(r,t,e,n){n?r.setBigUint64(t,e,!0):r.setBigInt64(t,e,!0)}function Rl(r,t,e,n){switch(n){case"float64":r.setFloat64(t,e,!0);break;case"float32":r.setFloat32(t,e,!0);break;case"int32":r.setInt32(t,e,!0);break;case"int16":r.setInt16(t,e,!0);break;case"int8":r.setInt8(t,e);break;case"uint32":r.setUint32(t,e,!0);break;case"uint16":r.setUint16(t,e,!0);break;case"uint8":case"bool":r.setUint8(t,e);break;default:throw new Error(`Unsupported dtype for serialization: ${n}`)}}var ut=k(()=>{"use strict";j();Ur()});function De(r){let t=4294967295;for(let e=0;e<r.length;e++)t=jl[(t^r[e])&255]^t>>>8;return(t^4294967295)>>>0}var jl,xe=k(()=>{"use strict";jl=(()=>{let r=new Uint32Array(256);for(let t=0;t<256;t++){let e=t;for(let n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;r[t]=e}return r})()});async function Ku(r){let t=tc(r),e=new Map;for(let n of t){let o=await Ll(n);e.set(n.name,o)}return e}function rc(r){let t=tc(r),e=new Map;for(let n of t){if(n.compressionMethod!==0)throw new Error(`Cannot read compressed entry synchronously: ${n.name}. Use readZip() (async) for DEFLATE-compressed files.`);e.set(n.name,n.compressedData)}return e}function tc(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=new DataView(t.buffer,t.byteOffset,t.byteLength),n=[],o=-1;for(let c=t.length-22;c>=0;c--)if(e.getUint32(c,!0)===101010256){o=c;break}if(o===-1)throw new Error("Invalid ZIP file: end of central directory not found");let a=e.getUint32(o+16,!0),i=e.getUint16(o+10,!0),u=[],s=a;for(let c=0;c<i&&e.getUint32(s,!0)===33639248;c++){let m=e.getUint16(s+10,!0),f=e.getUint32(s+16,!0),p=e.getUint32(s+20,!0),y=e.getUint32(s+24,!0),d=e.getUint16(s+28,!0),g=e.getUint16(s+30,!0),b=e.getUint16(s+32,!0),h=e.getUint32(s+42,!0),A=t.slice(s+46,s+46+d),S=new TextDecoder("utf-8").decode(A);u.push({name:S,compressionMethod:m,crc32:f,compressedSize:p,uncompressedSize:y,localHeaderOffset:h}),s=s+46+d+g+b}for(let c of u){let l=c.localHeaderOffset;if(e.getUint32(l,!0)!==67324752)throw new Error(`Invalid local file header at offset ${l}`);let f=e.getUint16(l+26,!0),p=e.getUint16(l+28,!0),y=l+30+f+p,d=t.slice(y,y+c.compressedSize);n.push({name:c.name,compressedData:d,compressionMethod:c.compressionMethod,crc32:c.crc32,compressedSize:c.compressedSize,uncompressedSize:c.uncompressedSize})}return n}async function Ll(r){if(r.compressionMethod===0)return r.compressedData;if(r.compressionMethod===8)return await Wl(r.compressedData);throw new Error(`Unsupported compression method: ${r.compressionMethod}`)}async function Wl(r){if(typeof DecompressionStream>"u")throw new Error("DecompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let t=new DecompressionStream("deflate-raw"),e=new Uint8Array(r.length);e.set(r);let n=t.writable.getWriter();n.write(e),n.close();let o=t.readable.getReader(),a=[];for(;;){let{done:c,value:l}=await o.read();if(c)break;a.push(l)}let i=a.reduce((c,l)=>c+l.length,0),u=new Uint8Array(i),s=0;for(let c of a)u.set(c,s),s+=c.length;return u}var ec=k(()=>{"use strict";xe()});var oc={};gt(oc,{loadNpz:()=>ct,loadNpzSync:()=>lt,parseNpz:()=>pr,parseNpzSync:()=>Mr});async function pr(r,t={}){let e=t.force??!1,n=await Ku(r);return nc(n,e)}function Mr(r,t={}){let e=t.force??!1,n=rc(r);return nc(n,e)}function nc(r,t){let e=new Map,n=[],o=new Map;for(let[a,i]of r){if(!a.endsWith(".npy"))continue;let u=a.slice(0,-4);try{let s=ur(i);e.set(u,s)}catch(s){if(s instanceof rr&&t)n.push(u),o.set(u,s.message);else throw s}}return{arrays:e,skipped:n,errors:o}}async function ct(r,t={}){let e=await pr(r,t);return Object.fromEntries(e.arrays)}function lt(r,t={}){let e=Mr(r,t);return Object.fromEntries(e.arrays)}var ft=k(()=>{"use strict";it();Ur();ec()});async function ac(r,t={}){let e=t.compress??!1,n=[];for(let[f,p]of r){let y=De(p),d,g;e?(d=await Gl(p),d.length<p.length?g=8:(d=p,g=0)):(d=p,g=0),n.push({name:f,data:p,compressedData:d,crc:y,compressionMethod:g,offset:0})}let o=0;for(let f of n){let p=new TextEncoder().encode(f.name);o+=30+p.length+f.compressedData.length}let a=0;for(let f of n){let p=new TextEncoder().encode(f.name);a+=46+p.length}let u=o+a+22,s=new Uint8Array(u),c=new DataView(s.buffer),l=0;for(let f of n)f.offset=l,l=ic(s,c,l,f);let m=l;for(let f of n)l=uc(s,c,l,f);return cc(c,l,n.length,a,m),s}function sc(r){let t=[];for(let[l,m]of r){let f=De(m);t.push({name:l,data:m,compressedData:m,crc:f,compressionMethod:0,offset:0})}let e=0;for(let l of t){let m=new TextEncoder().encode(l.name);e+=30+m.length+l.compressedData.length}let n=0;for(let l of t){let m=new TextEncoder().encode(l.name);n+=46+m.length}let a=e+n+22,i=new Uint8Array(a),u=new DataView(i.buffer),s=0;for(let l of t)l.offset=s,s=ic(i,u,s,l);let c=s;for(let l of t)s=uc(i,u,s,l);return cc(u,s,t.length,n,c),i}function ic(r,t,e,n){let o=new TextEncoder().encode(n.name);return t.setUint32(e,67324752,!0),e+=4,t.setUint16(e,n.compressionMethod===8?20:10,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,n.compressionMethod,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,33,!0),e+=2,t.setUint32(e,n.crc,!0),e+=4,t.setUint32(e,n.compressedData.length,!0),e+=4,t.setUint32(e,n.data.length,!0),e+=4,t.setUint16(e,o.length,!0),e+=2,t.setUint16(e,0,!0),e+=2,r.set(o,e),e+=o.length,r.set(n.compressedData,e),e+=n.compressedData.length,e}function uc(r,t,e,n){let o=new TextEncoder().encode(n.name);return t.setUint32(e,33639248,!0),e+=4,t.setUint16(e,20,!0),e+=2,t.setUint16(e,n.compressionMethod===8?20:10,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,n.compressionMethod,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,33,!0),e+=2,t.setUint32(e,n.crc,!0),e+=4,t.setUint32(e,n.compressedData.length,!0),e+=4,t.setUint32(e,n.data.length,!0),e+=4,t.setUint16(e,o.length,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint32(e,0,!0),e+=4,t.setUint32(e,n.offset,!0),e+=4,r.set(o,e),e+=o.length,e}function cc(r,t,e,n,o){r.setUint32(t,101010256,!0),t+=4,r.setUint16(t,0,!0),t+=2,r.setUint16(t,0,!0),t+=2,r.setUint16(t,e,!0),t+=2,r.setUint16(t,e,!0),t+=2,r.setUint32(t,n,!0),t+=4,r.setUint32(t,o,!0),t+=4,r.setUint16(t,0,!0)}async function Gl(r){if(typeof CompressionStream>"u")throw new Error("CompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let t=new CompressionStream("deflate-raw"),e=new Uint8Array(r.length);e.set(r);let n=t.writable.getWriter();n.write(e),n.close();let o=t.readable.getReader(),a=[];for(;;){let{done:c,value:l}=await o.read();if(c)break;a.push(l)}let i=a.reduce((c,l)=>c+l.length,0),u=new Uint8Array(i),s=0;for(let c of a)u.set(c,s),s+=c.length;return u}var lc=k(()=>{"use strict";xe()});var mc={};gt(mc,{serializeNpz:()=>Sr,serializeNpzSync:()=>mt});async function Sr(r,t={}){let e=fc(r);return ac(e,{compress:t.compress??!1})}function mt(r){let t=fc(r);return sc(t)}function fc(r){let t=new Map;if(Array.isArray(r)){for(let n=0;n<r.length;n++){let o=r[n],a=or(o);t.set(`arr_${n}.npy`,a)}return t}let e=r instanceof Map?r.entries():Object.entries(r);for(let[n,o]of e){if(typeof n!="string"||n.length===0)throw new Error("Array names must be non-empty strings");let a=or(o),i=n.endsWith(".npy")?n:`${n}.npy`;t.set(i,a)}return t}var pt=k(()=>{"use strict";ut();lc()});var ff={};gt(ff,{DTYPE_TO_DESCR:()=>Tr,InvalidNpyError:()=>H,NDArray:()=>I,SUPPORTED_DTYPES:()=>ot,UnsupportedDTypeError:()=>rr,__version__:()=>Hl,absolute:()=>as,append:()=>fi,arange:()=>wa,arccos:()=>ws,arccosh:()=>ks,arcsin:()=>xs,arcsinh:()=>Ms,arctan:()=>zs,arctan2:()=>Is,arctanh:()=>Cs,argpartition:()=>Iu,argsort:()=>xu,around:()=>Se,array:()=>P,array_equal:()=>Ni,array_equiv:()=>Di,array_split:()=>Ls,asanyarray:()=>$a,asarray:()=>Er,ascontiguousarray:()=>Ma,asfortranarray:()=>ka,atleast_1d:()=>oi,atleast_2d:()=>ai,atleast_3d:()=>si,average:()=>vi,bitwise_and:()=>Hi,bitwise_not:()=>Qi,bitwise_or:()=>Yi,bitwise_xor:()=>Ji,broadcast_arrays:()=>gi,broadcast_shapes:()=>Ai,broadcast_to:()=>di,cbrt:()=>Ri,ceil:()=>$u,choose:()=>Si,column_stack:()=>ui,compress:()=>uu,concatenate:()=>mr,copy:()=>va,cos:()=>Ns,cosh:()=>Us,count_nonzero:()=>Uu,cross:()=>Yu,cumprod:()=>wi,cumsum:()=>xi,deg2rad:()=>Es,degrees:()=>Bs,delete:()=>mi,diag:()=>he,diag_indices:()=>fu,diag_indices_from:()=>mu,diagflat:()=>Ca,diagonal:()=>ys,diff:()=>Zu,divmod:()=>Li,dot:()=>ms,dsplit:()=>ii,dstack:()=>Rs,ediff1d:()=>Gu,einsum:()=>nu,empty:()=>ge,empty_like:()=>Ta,exp:()=>Ja,exp2:()=>Qa,expand_dims:()=>Xs,expm1:()=>Xa,extract:()=>Tu,eye:()=>de,fabs:()=>ji,fix:()=>Mu,flatnonzero:()=>vu,flip:()=>et,fliplr:()=>Ks,flipud:()=>ri,floor:()=>ku,floor_divide:()=>cs,frombuffer:()=>La,fromfile:()=>Wa,fromfunction:()=>Va,fromiter:()=>Za,fromregex:()=>cf,fromregexSync:()=>lf,fromstring:()=>Ga,full:()=>Ae,full_like:()=>Ua,genfromtxt:()=>sf,genfromtxtSync:()=>uf,geomspace:()=>_a,gradient:()=>Hu,heaviside:()=>Gi,hsplit:()=>Zs,hstack:()=>Fs,hypot:()=>_s,identity:()=>Ba,in1d:()=>qu,indices:()=>hu,inner:()=>As,insert:()=>pi,intersect1d:()=>Fu,invert:()=>Xi,isin:()=>Ru,ix_:()=>bu,kron:()=>ds,left_shift:()=>Ki,lexsort:()=>wu,linalg:()=>ou,linspace:()=>za,load:()=>Jl,loadNpy:()=>yc,loadNpySync:()=>dc,loadNpz:()=>ct,loadNpzFile:()=>hc,loadNpzFileSync:()=>bc,loadNpzSync:()=>lt,loadSync:()=>Ql,loadtxt:()=>ef,loadtxtSync:()=>nf,log:()=>Ka,log10:()=>ts,log1p:()=>es,log2:()=>rs,logaddexp:()=>ns,logaddexp2:()=>os,logspace:()=>Ia,mask_indices:()=>Au,median:()=>Ii,meshgrid:()=>Pa,mod:()=>us,moveaxis:()=>Ps,nanargmax:()=>Vi,nanargmin:()=>Ci,nancumprod:()=>qi,nancumsum:()=>Pi,nanmax:()=>ki,nanmean:()=>Ti,nanmedian:()=>Fi,nanmin:()=>Mi,nanprod:()=>Oi,nanstd:()=>$i,nansum:()=>Ei,nanvar:()=>Ui,negative:()=>ss,nonzero:()=>Bu,ones:()=>ye,ones_like:()=>Oa,outer:()=>hs,packbits:()=>tu,pad:()=>yi,parseNpy:()=>ur,parseNpyData:()=>st,parseNpyHeader:()=>at,parseNpz:()=>pr,parseNpzSync:()=>Mr,parseTxt:()=>yr,partition:()=>zu,percentile:()=>_i,place:()=>lu,positive:()=>ls,power:()=>Ya,ptp:()=>zi,put:()=>bi,put_along_axis:()=>su,putmask:()=>iu,quantile:()=>Bi,rad2deg:()=>Os,radians:()=>vs,ravel:()=>Ys,ravel_multi_index:()=>Su,reciprocal:()=>fs,remainder:()=>Zi,repeat:()=>Hs,reshape:()=>Js,resize:()=>li,right_shift:()=>ru,rint:()=>Cu,roll:()=>ei,rollaxis:()=>ni,rot90:()=>ti,round:()=>Se,row_stack:()=>ci,save:()=>Xl,saveNpy:()=>gc,saveNpySync:()=>Ac,saveNpz:()=>Ie,saveNpzSync:()=>Yl,saveSync:()=>Kl,savetxt:()=>of,savetxtSync:()=>af,savez:()=>rf,savez_compressed:()=>tf,searchsorted:()=>Ou,select:()=>cu,serializeNpy:()=>or,serializeNpz:()=>Sr,serializeNpzSync:()=>mt,serializeTxt:()=>Nr,setdiff1d:()=>ju,setxor1d:()=>Lu,sign:()=>is,sin:()=>Ss,sinh:()=>Ts,sort:()=>Du,sort_complex:()=>_u,split:()=>js,sqrt:()=>Ha,square:()=>Wi,squeeze:()=>Qs,stack:()=>qs,swapaxes:()=>Vs,take:()=>hi,take_along_axis:()=>au,tan:()=>Ds,tanh:()=>$s,tensordot:()=>bs,tile:()=>Gs,trace:()=>ps,transpose:()=>gs,tri:()=>qa,tril:()=>Fa,tril_indices:()=>pu,tril_indices_from:()=>yu,triu:()=>Ra,triu_indices:()=>du,triu_indices_from:()=>gu,trunc:()=>Vu,union1d:()=>Wu,unique:()=>Pu,unpackbits:()=>eu,unravel_index:()=>Nu,vander:()=>ja,vsplit:()=>Ws,vstack:()=>be,where:()=>Eu,zeros:()=>K,zeros_like:()=>Ea});module.exports=At(ff);var tr=require("node:fs"),er=require("node:fs/promises");it();ut();ft();pt();nt();function yr(r,t={}){let{delimiter:e,comments:n="#",skiprows:o=0,usecols:a,max_rows:i,dtype:u="float64",missing_values:s,filling_values:c}=t,l=r.split(/\r?\n/);if(o>0&&(l=l.slice(o)),l=l.filter(d=>{let g=d.trim();return!(g===""||n&&g.startsWith(n))}),i!==void 0&&i>0&&(l=l.slice(0,i)),l.length===0)return P([],u);let m=[],f=new Set(s?Array.isArray(s)?s:[s]:[]),p=c!==void 0?c:u.includes("int")||u==="bool"?0:NaN;for(let d of l){let g;e===void 0?g=d.trim().split(/\s+/):g=d.split(e),a!==void 0&&(g=(Array.isArray(a)?a:[a]).map(A=>(A<0&&(A=g.length+A),g[A]??"")));let b=g.map(h=>{let A=h.trim();if(f.has(A)||A==="")return p;let S=parseFloat(A);return isNaN(S)?p:S});m.push(b)}let y=m[0]?.length??0;for(let d=1;d<m.length;d++)if(m[d].length!==y)throw new Error(`Inconsistent number of columns: row 0 has ${y} columns, row ${d} has ${m[d].length} columns`);return y===1?P(m.map(d=>d[0]),u):P(m,u)}function kr(r,t={}){let e={...t,missing_values:t.missing_values??["","nan","NaN","NA","N/A","-"],filling_values:t.filling_values??NaN};return yr(r,e)}function Cr(r,t,e="float64"){let n=typeof t=="string"?new RegExp(t,"gm"):new RegExp(t.source,"gm"),o=[],a;for(;(a=n.exec(r))!==null;)if(a.length>1){let i=a.slice(1).map(u=>{let s=parseFloat(u);return isNaN(s)?0:s});o.push(i)}return o.length===0?P([],e):o[0].length===1?P(o.map(i=>i[0]),e):P(o,e)}function pc(r,t){let e=typeof r=="bigint"?Number(r):r,n=t.match(/^%([+-]?)(\d*)(?:\.(\d+))?([dfeEgGs])$/);if(!n)return String(e);let[,o,a,i,u]=n,s=i!==void 0?parseInt(i,10):void 0,c;switch(u){case"d":c=Math.round(e).toString();break;case"f":c=e.toFixed(s??6);break;case"e":c=e.toExponential(s??6).replace(/e([+-])(\d)$/,"e$10$2");break;case"E":c=e.toExponential(s??6).toUpperCase().replace(/E([+-])(\d)$/,"E$10$2");break;case"g":case"G":{let l=s??6,m=Math.floor(Math.log10(Math.abs(e)));m>=-4&&m<l?(c=e.toPrecision(l),c.includes(".")&&(c=c.replace(/\.?0+$/,""))):c=e.toExponential(l-1),u==="G"&&(c=c.toUpperCase());break}case"s":c=String(e);break;default:c=String(e)}if(a){let l=parseInt(a,10);if(c.length<l){let m=" ".repeat(l-c.length);o==="-"?c=c+m:c=m+c}}return o==="+"&&e>=0&&!c.startsWith("-")&&(c="+"+c),c}function Nr(r,t={}){let{fmt:e="%.18e",delimiter:n=" ",newline:o=`
3
- `,header:a,footer:i,comments:u="# "}=t;if(r.ndim>2)throw new Error("savetxt: array must be 1D or 2D");let s=[];if(a!==void 0){let l=a.split(/\r?\n/);for(let m of l)m.startsWith(u.trimEnd())?s.push(m):s.push(u+m)}let c=r.toArray();if(r.ndim===1)for(let l of c)s.push(pc(l,e));else for(let l of c){let m=l.map(f=>pc(f,e));s.push(m.join(n))}if(i!==void 0){let l=i.split(/\r?\n/);for(let m of l)m.startsWith(u.trimEnd())?s.push(m):s.push(u+m)}return s.join(o)+o}nt();it();ut();Ur();ft();pt();var Hl="0.9.0";async function yc(r){let t=await(0,er.readFile)(r);return ur(t)}function dc(r){let t=(0,tr.readFileSync)(r);return ur(t)}async function gc(r,t){let e=or(t);await(0,er.writeFile)(r,e)}function Ac(r,t){let e=or(t);(0,tr.writeFileSync)(r,e)}async function hc(r,t={}){let e=await(0,er.readFile)(r);return pr(e,t)}function bc(r,t={}){let e=(0,tr.readFileSync)(r),{parseNpzSync:n}=(ft(),At(oc));return n(e,t)}async function Ie(r,t,e={}){let n=await Sr(t,e);await(0,er.writeFile)(r,n)}function Yl(r,t){let{serializeNpzSync:e}=(pt(),At(mc)),n=e(t);(0,tr.writeFileSync)(r,n)}async function Jl(r,t={}){if(r.endsWith(".npy")){if(t.allowNpy===!1)throw new Error("Loading .npy files is disabled (allowNpy: false)");return yc(r)}else{if(r.endsWith(".npz"))return hc(r,t);throw new Error(`Unknown file extension. Expected .npy or .npz, got: ${r}`)}}function Ql(r,t={}){if(r.endsWith(".npy")){if(t.allowNpy===!1)throw new Error("Loading .npy files is disabled (allowNpy: false)");return dc(r)}else{if(r.endsWith(".npz"))return bc(r,t);throw new Error(`Unknown file extension. Expected .npy or .npz, got: ${r}`)}}async function Xl(r,t){if(!r.endsWith(".npy"))throw new Error(`save() is for .npy files. Use saveNpz() for .npz files. Got: ${r}`);return gc(r,t)}function Kl(r,t){if(!r.endsWith(".npy"))throw new Error(`saveSync() is for .npy files. Use saveNpzSync() for .npz files. Got: ${r}`);return Ac(r,t)}async function rf(r,t){return r.endsWith(".npz")||(r=r+".npz"),Ie(r,t,{compress:!1})}async function tf(r,t){return r.endsWith(".npz")||(r=r+".npz"),Ie(r,t,{compress:!0})}async function ef(r,t={}){let e=await(0,er.readFile)(r,{encoding:t.encoding??"utf-8"});return yr(e,t)}function nf(r,t={}){let e=(0,tr.readFileSync)(r,{encoding:t.encoding??"utf-8"});return yr(e,t)}async function of(r,t,e={}){let n=Nr(t,e);await(0,er.writeFile)(r,n,"utf-8")}function af(r,t,e={}){let n=Nr(t,e);(0,tr.writeFileSync)(r,n,"utf-8")}async function sf(r,t={}){let e=await(0,er.readFile)(r,{encoding:t.encoding??"utf-8"});return kr(e,t)}function uf(r,t={}){let e=(0,tr.readFileSync)(r,{encoding:t.encoding??"utf-8"});return kr(e,t)}async function cf(r,t,e="float64"){let n=await(0,er.readFile)(r,{encoding:"utf-8"});return Cr(n,t,e)}function lf(r,t,e="float64"){let n=(0,tr.readFileSync)(r,{encoding:"utf-8"});return Cr(n,t,e)}0&&(module.exports={DTYPE_TO_DESCR,InvalidNpyError,NDArray,SUPPORTED_DTYPES,UnsupportedDTypeError,__version__,absolute,append,arange,arccos,arccosh,arcsin,arcsinh,arctan,arctan2,arctanh,argpartition,argsort,around,array,array_equal,array_equiv,array_split,asanyarray,asarray,ascontiguousarray,asfortranarray,atleast_1d,atleast_2d,atleast_3d,average,bitwise_and,bitwise_not,bitwise_or,bitwise_xor,broadcast_arrays,broadcast_shapes,broadcast_to,cbrt,ceil,choose,column_stack,compress,concatenate,copy,cos,cosh,count_nonzero,cross,cumprod,cumsum,deg2rad,degrees,delete:null,diag,diag_indices,diag_indices_from,diagflat,diagonal,diff,divmod,dot,dsplit,dstack,ediff1d,einsum,empty,empty_like,exp,exp2,expand_dims,expm1,extract,eye,fabs,fix,flatnonzero,flip,fliplr,flipud,floor,floor_divide,frombuffer,fromfile,fromfunction,fromiter,fromregex,fromregexSync,fromstring,full,full_like,genfromtxt,genfromtxtSync,geomspace,gradient,heaviside,hsplit,hstack,hypot,identity,in1d,indices,inner,insert,intersect1d,invert,isin,ix_,kron,left_shift,lexsort,linalg,linspace,load,loadNpy,loadNpySync,loadNpz,loadNpzFile,loadNpzFileSync,loadNpzSync,loadSync,loadtxt,loadtxtSync,log,log10,log1p,log2,logaddexp,logaddexp2,logspace,mask_indices,median,meshgrid,mod,moveaxis,nanargmax,nanargmin,nancumprod,nancumsum,nanmax,nanmean,nanmedian,nanmin,nanprod,nanstd,nansum,nanvar,negative,nonzero,ones,ones_like,outer,packbits,pad,parseNpy,parseNpyData,parseNpyHeader,parseNpz,parseNpzSync,parseTxt,partition,percentile,place,positive,power,ptp,put,put_along_axis,putmask,quantile,rad2deg,radians,ravel,ravel_multi_index,reciprocal,remainder,repeat,reshape,resize,right_shift,rint,roll,rollaxis,rot90,round,row_stack,save,saveNpy,saveNpySync,saveNpz,saveNpzSync,saveSync,savetxt,savetxtSync,savez,savez_compressed,searchsorted,select,serializeNpy,serializeNpz,serializeNpzSync,serializeTxt,setdiff1d,setxor1d,sign,sin,sinh,sort,sort_complex,split,sqrt,square,squeeze,stack,swapaxes,take,take_along_axis,tan,tanh,tensordot,tile,trace,transpose,tri,tril,tril_indices,tril_indices_from,triu,triu_indices,triu_indices_from,trunc,union1d,unique,unpackbits,unravel_index,vander,vsplit,vstack,where,zeros,zeros_like});
1
+ "use strict";var pe=Object.defineProperty;var Gm=Object.getOwnPropertyDescriptor;var Zm=Object.getOwnPropertyNames;var Ym=Object.prototype.hasOwnProperty;var W=(r,t)=>()=>(r&&(t=r(r=0)),t);var ye=(r,t)=>{for(var e in t)pe(r,e,{get:t[e],enumerable:!0})},Hm=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Zm(t))!Ym.call(r,o)&&o!==e&&pe(r,o,{get:()=>t[o],enumerable:!(n=Gm(t,o))||n.enumerable});return r};var de=r=>Hm(pe({},"__esModule",{value:!0}),r);function Jn(r){if(!r.includes(":")){if(r.includes("."))throw new Error(`Invalid slice index: "${r}" (must be integer)`);let a=parseInt(r,10);if(isNaN(a))throw new Error(`Invalid slice index: "${r}"`);return{start:a,stop:null,step:1,isIndex:!0}}let t=r.split(":");if(t.length>3)throw new Error(`Invalid slice notation: "${r}" (too many colons)`);let e=t[0]===""?null:parseInt(t[0],10),n=t[1]===""||t[1]===void 0?null:parseInt(t[1],10),o=t[2]===""||t[2]===void 0?1:parseInt(t[2],10);if(e!==null&&isNaN(e))throw new Error(`Invalid start index in slice: "${r}"`);if(n!==null&&isNaN(n))throw new Error(`Invalid stop index in slice: "${r}"`);if(isNaN(o))throw new Error(`Invalid step in slice: "${r}"`);if(o===0)throw new Error("Slice step cannot be zero");return{start:e,stop:n,step:o,isIndex:!1}}function Xn(r,t){let{start:e,stop:n}=r,{step:o,isIndex:a}=r;if(a){if(e===null)throw new Error("Index cannot be null");let u=e<0?t+e:e;if(u<0||u>=t)throw new Error(`Index ${e} is out of bounds for size ${t}`);return{start:u,stop:u+1,step:1,isIndex:!0}}return o>0?(e===null&&(e=0),n===null&&(n=t)):(e===null&&(e=t-1),n===null&&(n=-t-1)),e<0&&(e=t+e),n<0&&(n=t+n),e=Math.max(0,Math.min(e,t)),n=Math.max(-1,Math.min(n,t)),{start:e,stop:n,step:o,isIndex:!1}}var Qn=W(()=>{"use strict"});function j(r){switch(r){case"float64":return Float64Array;case"float32":return Float32Array;case"complex128":return Float64Array;case"complex64":return Float32Array;case"int64":return BigInt64Array;case"int32":return Int32Array;case"int16":return Int16Array;case"int8":return Int8Array;case"uint64":return BigUint64Array;case"uint32":return Uint32Array;case"uint16":return Uint16Array;case"uint8":return Uint8Array;case"bool":return Uint8Array;default:throw new Error(`Unknown dtype: ${r}`)}}function Mt(r){switch(r){case"complex128":return 16;case"float64":case"int64":case"uint64":case"complex64":return 8;case"float32":case"int32":case"uint32":return 4;case"int16":case"uint16":return 2;case"int8":case"uint8":case"bool":return 1;default:throw new Error(`Unknown dtype: ${r}`)}}function ro(r){return r==="int64"||r==="int32"||r==="int16"||r==="int8"||r==="uint64"||r==="uint32"||r==="uint16"||r==="uint8"}function Kn(r){return r==="float64"||r==="float32"}function B(r){return r==="int64"||r==="uint64"}function M(r){return r==="complex64"||r==="complex128"}function q(r,t,e){if(M(r)){let n=e?` ${e}`:"";throw new TypeError(`ufunc '${t}' not supported for complex dtype '${r}'.${n}`)}}function nt(r){if(r==="complex128")return"float64";if(r==="complex64")return"float32";throw new Error(`${r} is not a complex dtype`)}function to(r){return typeof r=="object"&&r!==null&&"re"in r&&"im"in r}function Z(r,t){if(r===t)return r;if(r==="bool")return t;if(t==="bool")return r;if(M(r)||M(t)){if(M(r)&&M(t))return r==="complex128"||t==="complex128"?"complex128":"complex64";let c=M(r)?r:t,l=M(r)?t:r;return c==="complex128"||l==="float64"||l==="int64"||l==="uint64"||l==="int32"||l==="uint32"?"complex128":"complex64"}if(Kn(r)||Kn(t)){if(r==="float64"||t==="float64")return"float64";if(r==="float32"){let c=t;return c==="int32"||c==="int64"||c==="uint32"||c==="uint64"?"float64":"float32"}if(t==="float32"){let c=r;return c==="int32"||c==="int64"||c==="uint32"||c==="uint64"?"float64":"float32"}return"float32"}let e=r.startsWith("int"),n=t.startsWith("int"),o=r.startsWith("uint"),a=t.startsWith("uint"),u=c=>c.includes("64")?64:c.includes("32")?32:c.includes("16")?16:c.includes("8")?8:0,s=u(r),i=u(t);if(r==="int64"&&t==="uint64"||r==="uint64"&&t==="int64")return"float64";if(e&&a&&s===i){if(s===8)return"int16";if(s===16)return"int32";if(s===32)return"int64"}if(o&&n&&s===i){if(i===8)return"int16";if(i===16)return"int32";if(i===32)return"int64"}if(e&&n||o&&a){let c=Math.max(s,i);return e?c===64?"int64":c===32?"int32":c===16?"int16":"int8":c===64?"uint64":c===32?"uint32":c===16?"uint16":"uint8"}return e&&a?s>i?r:i===8?"int16":i===16?"int32":i===32?"int64":"float64":o&&n?i>s?t:s===8?"int16":s===16?"int32":s===32?"int64":"float64":"float64"}var tr,J=W(()=>{"use strict";tr="float64"});var O,xr=W(()=>{"use strict";O=class r{constructor(t,e=0){this.re=t,this.im=e}abs(){return Math.sqrt(this.re*this.re+this.im*this.im)}angle(){return Math.atan2(this.im,this.re)}conj(){return new r(this.re,-this.im)}add(t){return typeof t=="number"?new r(this.re+t,this.im):new r(this.re+t.re,this.im+t.im)}sub(t){return typeof t=="number"?new r(this.re-t,this.im):new r(this.re-t.re,this.im-t.im)}mul(t){return typeof t=="number"?new r(this.re*t,this.im*t):new r(this.re*t.re-this.im*t.im,this.re*t.im+this.im*t.re)}div(t){if(typeof t=="number")return new r(this.re/t,this.im/t);let e=t.re*t.re+t.im*t.im;return new r((this.re*t.re+this.im*t.im)/e,(this.im*t.re-this.re*t.im)/e)}neg(){return new r(-this.re,-this.im)}equals(t){return this.re===t.re&&this.im===t.im}toString(){return this.im===0?`(${this.re}+0j)`:this.im<0?`(${this.re}${this.im}j)`:`(${this.re}+${this.im}j)`}static from(t){if(t instanceof r)return t;if(typeof t=="number")return new r(t,0);if(Array.isArray(t))return new r(t[0]??0,t[1]??0);if(typeof t=="object"&&t!==null&&"re"in t)return new r(t.re??0,t.im??0);throw new Error(`Cannot convert ${t} to Complex`)}static isComplex(t){return t instanceof r||typeof t=="object"&&t!==null&&"re"in t&&"im"in t}}});function ur(r){let t=new Array(r.length),e=1;for(let n=r.length-1;n>=0;n--)t[n]=e,e*=r[n];return t}var D,X=W(()=>{"use strict";J();xr();D=class r{constructor(t,e,n,o,a){this._data=t,this._shape=e,this._strides=n,this._offset=o,this._dtype=a}get shape(){return this._shape}get ndim(){return this._shape.length}get size(){return this._shape.reduce((t,e)=>t*e,1)}get dtype(){return this._dtype}get data(){return this._data}get strides(){return this._strides}get offset(){return this._offset}get isCContiguous(){let t=this._shape,e=this._strides,n=t.length;if(n===0)return!0;if(n===1)return e[0]===1;let o=1;for(let a=n-1;a>=0;a--){if(e[a]!==o)return!1;o*=t[a]}return!0}get isFContiguous(){let t=this._shape,e=this._strides,n=t.length;if(n===0)return!0;if(n===1)return e[0]===1;let o=1;for(let a=0;a<n;a++){if(e[a]!==o)return!1;o*=t[a]}return!0}iget(t){let e=this._shape,n=this._strides,o=e.length,a=M(this._dtype),u;if(o===0)u=this._offset;else{let s=t;u=this._offset;for(let i=0;i<o;i++){let c=1;for(let m=i+1;m<o;m++)c*=e[m];let l=Math.floor(s/c);s=s%c,u+=l*n[i]}}if(a){let s=u*2,i=this._data[s],c=this._data[s+1];return new O(i,c)}return this._data[u]}iset(t,e){let n=this._shape,o=this._strides,a=n.length,u=M(this._dtype),s;if(a===0)s=this._offset;else{let i=t;s=this._offset;for(let c=0;c<a;c++){let l=1;for(let y=c+1;y<a;y++)l*=n[y];let m=Math.floor(i/l);i=i%l,s+=m*o[c]}}if(u){let i=s*2,c,l;e instanceof O?(c=e.re,l=e.im):typeof e=="object"&&e!==null&&"re"in e?(c=e.re,l=e.im??0):(c=Number(e),l=0),this._data[i]=c,this._data[i+1]=l}else this._data[s]=e}get(...t){let e=this._strides,n=this._offset;for(let o=0;o<t.length;o++)n+=t[o]*e[o];if(M(this._dtype)){let o=n*2,a=this._data[o],u=this._data[o+1];return new O(a,u)}return this._data[n]}set(t,e){let n=this._strides,o=this._offset;for(let a=0;a<t.length;a++)o+=t[a]*n[a];if(M(this._dtype)){let a=o*2,u,s;e instanceof O?(u=e.re,s=e.im):typeof e=="object"&&e!==null&&"re"in e?(u=e.re,s=e.im??0):(u=Number(e),s=0),this._data[a]=u,this._data[a+1]=s}else this._data[o]=e}copy(){let t=Array.from(this._shape),e=this._dtype,n=this.size,o=M(e),a=j(e);if(!a)throw new Error(`Cannot copy array with dtype ${e}`);let u=o?n*2:n,s=new a(u);if(this.isCContiguous&&this._offset===0)if(B(e)){let i=this._data,c=s;for(let l=0;l<u;l++)c[l]=i[l]}else s.set(this._data.subarray(0,u));else if(B(e)){let i=s;for(let c=0;c<n;c++)i[c]=this.iget(c)}else if(o){let i=s;for(let c=0;c<n;c++){let l=this.iget(c);i[c*2]=l.re,i[c*2+1]=l.im}}else for(let i=0;i<n;i++)s[i]=this.iget(i);return new r(s,t,r._computeStrides(t),0,e)}static fromData(t,e,n,o,a){let u=o??r._computeStrides(e),s=a??0;return new r(t,e,u,s,n)}static zeros(t,e=tr){let n=t.reduce((i,c)=>i*c,1),o=M(e),a=j(e);if(!a)throw new Error(`Cannot create array with dtype ${e}`);let u=o?n*2:n,s=new a(u);return new r(s,t,r._computeStrides(t),0,e)}static ones(t,e=tr){let n=t.reduce((i,c)=>i*c,1),o=M(e),a=j(e);if(!a)throw new Error(`Cannot create array with dtype ${e}`);let u=o?n*2:n,s=new a(u);if(B(e))s.fill(BigInt(1));else if(o){let i=s;for(let c=0;c<n;c++)i[c*2]=1,i[c*2+1]=0}else s.fill(1);return new r(s,t,r._computeStrides(t),0,e)}static _computeStrides(t){let e=new Array(t.length),n=1;for(let o=t.length-1;o>=0;o--)e[o]=n,n*=t[o];return e}}});function gr(r){if(r.length===0)return[];if(r.length===1)return Array.from(r[0]);let t=Math.max(...r.map(n=>n.length)),e=new Array(t);for(let n=0;n<t;n++){let o=1;for(let a of r){let u=a.length-t+n,s=u<0?1:a[u];if(s!==1){if(o===1)o=s;else if(o!==s)return null}}e[n]=o}return e}function Jm(r,t,e){let n=r.length,o=e.length,a=new Array(o).fill(0);for(let u=0;u<n;u++){let s=o-n+u,i=r[u],c=e[s];if(i===c)a[s]=t[u];else if(i===1)a[s]=0;else throw new Error("Invalid broadcast")}return a}function pr(r,t){let e=Jm(r.shape,r.strides,t);return D.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function ge(...r){let t=gr(r);if(t===null){let e=r.map(n=>`(${n.join(",")})`).join(" ");throw new Error(`shape mismatch: objects cannot be broadcast to a single shape. Mismatch is between ${e}`)}return t}var Bt=W(()=>{"use strict";X()});function Er(r,t){let e=r.length,n=t.length,o=Math.max(e,n),a=new Array(o);for(let u=0;u<o;u++){let s=u<o-e?1:r[u-(o-e)],i=u<o-n?1:t[u-(o-n)];if(s===i)a[u]=s;else if(s===1)a[u]=i;else if(i===1)a[u]=s;else throw new Error(`operands could not be broadcast together with shapes ${JSON.stringify(Array.from(r))} ${JSON.stringify(Array.from(t))}`)}return a}function Xm(r,t,e){let n=r.length,o=e.length,a=new Array(o).fill(0);for(let u=0;u<n;u++){let s=o-n+u,i=r[u],c=e[s];if(i===c)a[s]=t[u];else if(i===1)a[s]=0;else throw new Error("Invalid broadcast")}return a}function vt(r,t){let e=Xm(r.shape,r.strides,t);return D.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function K(r,t,e,n){let o=Er(r.shape,t.shape),a=vt(r,o),u=vt(t,o),s=Z(r.dtype,t.dtype),i=D.zeros(o,s),c=i.data,l=i.size;if(B(s)){let m=c;for(let y=0;y<l;y++){let d=a.iget(y),f=u.iget(y),p=d instanceof O?d.re:d,g=f instanceof O?f.re:f,h=typeof p=="bigint"?p:BigInt(Math.round(p)),b=typeof g=="bigint"?g:BigInt(Math.round(g));n==="add"?m[y]=h+b:n==="subtract"?m[y]=h-b:n==="multiply"?m[y]=h*b:n==="divide"?m[y]=h/b:m[y]=BigInt(Math.round(e(Number(h),Number(b))))}}else{let m=B(r.dtype)||B(t.dtype);for(let y=0;y<l;y++){let d=a.iget(y),f=u.iget(y),p=Number(d),g=Number(f);c[y]=e(p,g)}}return i}function yr(r,t,e){let n=Er(r.shape,t.shape),o=vt(r,n),a=vt(t,n),u=n.reduce((c,l)=>c*l,1),s=new Uint8Array(u),i=B(r.dtype)||B(t.dtype);for(let c=0;c<u;c++){let l=o.iget(c),m=a.iget(c),y=Number(l),d=Number(m);s[c]=e(y,d)?1:0}return D.fromData(s,n,"bool")}function H(r,t,e=!0){let n=r.dtype,o=Array.from(r.shape),a=r.size,s=e?n:n!=="float32"&&n!=="float64"?"float64":n,i=D.zeros(o,s),c=i.data,l=r.data;if(B(n))if(B(s)){let m=c;for(let y=0;y<a;y++){let d=Number(l[y]);m[y]=BigInt(Math.round(t(d)))}}else for(let m=0;m<a;m++)c[m]=t(Number(l[m]));else for(let m=0;m<a;m++)c[m]=t(Number(l[m]));return i}var Mr=W(()=>{"use strict";X();J();xr()});function Ae(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function fr(r,t){return[r[t*2],r[t*2+1]]}function Br(r,t,e,n){r[t*2]=e,r[t*2+1]=n}function eo(r,t){return typeof t=="number"?tp(r,t):Ae(r,t)?Qm(r,t):K(r,t,(e,n)=>e+n,"add")}function Qm(r,t){let e=Z(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(M(e)){let i=s,c=M(r.dtype),l=M(t.dtype);for(let m=0;m<o;m++){let[y,d]=c?fr(a,m):[Number(a[m]),0],[f,p]=l?fr(u,m):[Number(u[m]),0];Br(i,m,y+f,d+p)}return n}if(B(e)){let i=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),y=typeof u[l]=="bigint"?u[l]:BigInt(Math.round(Number(u[l])));i[l]=m+y}else{let l=a,m=u;for(let y=0;y<o;y++)i[y]=l[y]+m[y]}}else if(B(r.dtype)||B(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof u[c]=="bigint"?Number(u[c]):u[c];s[c]=l+m}else for(let c=0;c<o;c++)s[c]=a[c]+u[c];return n}function no(r,t){return typeof t=="number"?ep(r,t):Ae(r,t)?Km(r,t):K(r,t,(e,n)=>e-n,"subtract")}function Km(r,t){let e=Z(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(M(e)){let i=s,c=M(r.dtype),l=M(t.dtype);for(let m=0;m<o;m++){let[y,d]=c?fr(a,m):[Number(a[m]),0],[f,p]=l?fr(u,m):[Number(u[m]),0];Br(i,m,y-f,d-p)}return n}if(B(e)){let i=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),y=typeof u[l]=="bigint"?u[l]:BigInt(Math.round(Number(u[l])));i[l]=m-y}else{let l=a,m=u;for(let y=0;y<o;y++)i[y]=l[y]-m[y]}}else if(B(r.dtype)||B(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof u[c]=="bigint"?Number(u[c]):u[c];s[c]=l-m}else for(let c=0;c<o;c++)s[c]=a[c]-u[c];return n}function oo(r,t){return typeof t=="number"?np(r,t):Ae(r,t)?rp(r,t):K(r,t,(e,n)=>e*n,"multiply")}function rp(r,t){let e=Z(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(M(e)){let i=s,c=M(r.dtype),l=M(t.dtype);for(let m=0;m<o;m++){let[y,d]=c?fr(a,m):[Number(a[m]),0],[f,p]=l?fr(u,m):[Number(u[m]),0],g=y*f-d*p,h=y*p+d*f;Br(i,m,g,h)}return n}if(B(e)){let i=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),y=typeof u[l]=="bigint"?u[l]:BigInt(Math.round(Number(u[l])));i[l]=m*y}else{let l=a,m=u;for(let y=0;y<o;y++)i[y]=l[y]*m[y]}}else if(B(r.dtype)||B(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof u[c]=="bigint"?Number(u[c]):u[c];s[c]=l*m}else for(let c=0;c<o;c++)s[c]=a[c]*u[c];return n}function ao(r,t){if(typeof t=="number")return op(r,t);let e=M(r.dtype),n=M(t.dtype);if(e||n){let l=Z(r.dtype,t.dtype),m=D.zeros(Array.from(r.shape),l),y=m.data,d=r.size,f=r.data,p=t.data;for(let g=0;g<d;g++){let[h,b]=e?fr(f,g):[Number(f[g]),0],[A,S]=n?fr(p,g):[Number(p[g]),0],x=A*A+S*S,w=(h*A+b*S)/x,N=(b*A-h*S)/x;Br(y,g,w,N)}return m}let o=r.dtype==="float64",a=t.dtype==="float64",u=r.dtype==="float32",s=t.dtype==="float32";if(o||a){let l=o?r:Lr(r,"float64"),m=a?t:Lr(t,"float64");return K(l,m,(y,d)=>y/d,"divide")}if(u||s){let l=u?r:Lr(r,"float32"),m=s?t:Lr(t,"float32");return K(l,m,(y,d)=>y/d,"divide")}let i=Lr(r,"float64"),c=Lr(t,"float64");return K(i,c,(l,m)=>l/m,"divide")}function Lr(r,t){let e=D.zeros(Array.from(r.shape),t),n=r.size,o=r.data,a=e.data;for(let u=0;u<n;u++)a[u]=Number(o[u]);return e}function tp(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=D.zeros(n,e),s=u.data;if(M(e)){let i=o,c=s;for(let l=0;l<a;l++){let[m,y]=fr(i,l);Br(c,l,m+t,y)}}else if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]+l}else for(let i=0;i<a;i++)s[i]=Number(o[i])+t;return u}function ep(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=D.zeros(n,e),s=u.data;if(M(e)){let i=o,c=s;for(let l=0;l<a;l++){let[m,y]=fr(i,l);Br(c,l,m-t,y)}}else if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]-l}else for(let i=0;i<a;i++)s[i]=Number(o[i])-t;return u}function np(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=D.zeros(n,e),s=u.data;if(M(e)){let i=o,c=s;for(let l=0;l<a;l++){let[m,y]=fr(i,l);Br(c,l,m*t,y*t)}}else if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]*l}else for(let i=0;i<a;i++)s[i]=Number(o[i])*t;return u}function op(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size;if(M(e)){let l=D.zeros(n,e),m=o,y=l.data;for(let d=0;d<a;d++){let[f,p]=fr(m,d);Br(y,d,f/t,p/t)}return l}let s=e!=="float32"&&e!=="float64"?"float64":e,i=D.zeros(n,s),c=i.data;if(B(e))for(let l=0;l<a;l++)c[l]=Number(o[l])/t;else for(let l=0;l<a;l++)c[l]=Number(o[l])/t;return i}function so(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size;if(M(t)){let s=nt(t),i=D.zeros(e,s),c=i.data,l=n;for(let m=0;m<o;m++){let y=l[m*2],d=l[m*2+1];c[m]=Math.sqrt(y*y+d*d)}return i}let a=D.zeros(e,t),u=a.data;if(B(t)){let s=n,i=u;for(let c=0;c<o;c++){let l=s[c];i[c]=l<0n?-l:l}}else for(let s=0;s<o;s++)u[s]=Math.abs(Number(n[s]));return a}function io(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=D.zeros(e,t),u=a.data;if(M(t)){let s=n,i=u;for(let c=0;c<o;c++){let[l,m]=fr(s,c);Br(i,c,-l,-m)}}else if(B(t)){let s=n,i=u;for(let c=0;c<o;c++)i[c]=-s[c]}else for(let s=0;s<o;s++)u[s]=-Number(n[s]);return a}function uo(r){q(r.dtype,"sign","Sign is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=D.zeros(e,t),u=a.data;if(B(t)){let s=n,i=u;for(let c=0;c<o;c++){let l=s[c];i[c]=l>0n?1n:l<0n?-1n:0n}}else for(let s=0;s<o;s++){let i=Number(n[s]);u[s]=i>0?1:i<0?-1:0}return a}function Tt(r,t){return q(r.dtype,"mod","Modulo is not defined for complex numbers."),typeof t!="number"&&q(t.dtype,"mod","Modulo is not defined for complex numbers."),typeof t=="number"?ap(r,t):K(r,t,(e,n)=>(e%n+n)%n,"mod")}function ap(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=D.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++){let y=i[m];c[m]=(y%l+l)%l}}else for(let i=0;i<a;i++){let c=Number(o[i]);s[i]=(c%t+t)%t}return u}function be(r,t){return q(r.dtype,"floor_divide","Floor division is not defined for complex numbers."),typeof t!="number"&&q(t.dtype,"floor_divide","Floor division is not defined for complex numbers."),typeof t=="number"?sp(r,t):K(r,t,(e,n)=>Math.floor(e/n),"floor_divide")}function sp(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=D.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]/l}else for(let i=0;i<a;i++)s[i]=Math.floor(Number(o[i])/t);return u}function co(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=D.zeros(e,t),u=a.data;if(M(t)){let s=n,i=u;for(let c=0;c<o;c++)i[c*2]=s[c*2],i[c*2+1]=s[c*2+1]}else for(let s=0;s<o;s++)u[s]=n[s];return a}function lo(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size;if(M(t)){let c=D.zeros(e,t),l=n,m=c.data;for(let y=0;y<o;y++){let d=l[y*2],f=l[y*2+1],p=d*d+f*f;m[y*2]=d/p,m[y*2+1]=-f/p}return c}let u=t!=="float32"&&t!=="float64"?"float64":t,s=D.zeros(e,u),i=s.data;if(B(t))for(let c=0;c<o;c++)i[c]=1/Number(n[c]);else for(let c=0;c<o;c++)i[c]=1/Number(n[c]);return s}function fo(r){let t=r.dtype;q(t,"cbrt","cbrt is not supported for complex numbers.");let e=Array.from(r.shape),n=r.data,o=r.size,u=t!=="float32"&&t!=="float64"?"float64":t,s=D.zeros(e,u),i=s.data;for(let c=0;c<o;c++)i[c]=Math.cbrt(Number(n[c]));return s}function mo(r){let t=r.dtype;q(t,"fabs","fabs is only for real numbers. Use absolute() for complex.");let e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",u=D.zeros(e,a),s=u.data;for(let i=0;i<o;i++)s[i]=Math.abs(Number(n[i]));return u}function po(r,t){let e=be(r,t),n=Tt(r,t);return[e,n]}function yo(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=D.zeros(e,t),u=a.data;if(M(t)){let s=n,i=u;for(let c=0;c<o;c++){let l=s[c*2],m=s[c*2+1];i[c*2]=l*l-m*m,i[c*2+1]=2*l*m}}else if(B(t)){let s=n,i=u;for(let c=0;c<o;c++)i[c]=s[c]*s[c]}else for(let s=0;s<o;s++){let i=Number(n[s]);u[s]=i*i}return a}function go(r,t){return Tt(r,t)}function Ao(r,t){q(r.dtype,"heaviside","Heaviside step function is not defined for complex numbers."),typeof t!="number"&&q(t.dtype,"heaviside","Heaviside step function is not defined for complex numbers.");let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",u=D.zeros(n,a),s=u.data;if(typeof t=="number")for(let i=0;i<o;i++){let c=Number(r.data[i]);c<0?s[i]=0:c===0?s[i]=t:s[i]=1}else{let i=t.data,c=t.shape;if(n.every((l,m)=>l===c[m]))for(let l=0;l<o;l++){let m=Number(r.data[l]);m<0?s[l]=0:m===0?s[l]=Number(i[l]):s[l]=1}else for(let l=0;l<o;l++){let m=Number(r.data[l]),y=l%t.size;m<0?s[l]=0:m===0?s[l]=Number(i[y]):s[l]=1}}return u}function bo(r,t){let e=r.dtype;if(M(e)){let n=r.data,o=r.size,a=D.zeros(Array.from(r.shape),e),u=a.data;if(typeof t=="number")for(let s=0;s<o;s++){let i=n[s*2],c=n[s*2+1],l=Math.hypot(i,c),m=Math.atan2(c,i),y=Math.pow(l,t),d=m*t;u[s*2]=y*Math.cos(d),u[s*2+1]=y*Math.sin(d)}else{let s=t.data,i=M(t.dtype);for(let c=0;c<o;c++){let l=n[c*2],m=n[c*2+1],y,d;i?(y=s[c*2],d=s[c*2+1]):(y=Number(s[c]),d=0);let f=Math.hypot(l,m),p=Math.atan2(m,l),g=Math.log(f),h=p,b=y*g-d*h,A=y*h+d*g,S=Math.exp(b);u[c*2]=S*Math.cos(A),u[c*2+1]=S*Math.sin(A)}}return a}if(typeof t=="number"){let n=D.zeros(Array.from(r.shape),"float64"),o=n.data,a=r.data,u=r.size;for(let s=0;s<u;s++)o[s]=Math.pow(Number(a[s]),t);return n}return K(r,t,(n,o)=>Math.pow(n,o),"float_power")}function ho(r,t){if(q(r.dtype,"fmod","fmod is not defined for complex numbers."),typeof t!="number"&&q(t.dtype,"fmod","fmod is not defined for complex numbers."),typeof t=="number"){let e=r.copy(),n=e.data,o=r.size;for(let a=0;a<o;a++){let u=Number(n[a]);n[a]=u-Math.trunc(u/t)*t}return e}return K(r,t,(e,n)=>e-Math.trunc(e/n)*n,"fmod")}function So(r){q(r.dtype,"frexp","frexp is not defined for complex numbers.");let t=D.zeros(Array.from(r.shape),"float64"),e=D.zeros(Array.from(r.shape),"int32"),n=t.data,o=e.data,a=r.data,u=r.size;for(let s=0;s<u;s++){let i=Number(a[s]);if(i===0||!isFinite(i))n[s]=i,o[s]=0;else{let c=Math.floor(Math.log2(Math.abs(i)))+1,l=i/Math.pow(2,c);n[s]=l,o[s]=c}}return[t,e]}function xo(r,t){q(r.dtype,"gcd","GCD is only defined for integers."),typeof t!="number"&&q(t.dtype,"gcd","GCD is only defined for integers.");let e=(i,c)=>{for(i=Math.abs(Math.trunc(i)),c=Math.abs(Math.trunc(c));c!==0;){let l=c;c=i%c,i=l}return i};if(typeof t=="number"){let i=D.zeros(Array.from(r.shape),"int32"),c=i.data,l=r.data,m=r.size,y=Math.abs(Math.trunc(t));for(let d=0;d<m;d++)c[d]=e(Number(l[d]),y);return i}let n=K(r,t,e,"gcd"),o=D.zeros(Array.from(n.shape),"int32"),a=o.data,u=n.data,s=n.size;for(let i=0;i<s;i++)a[i]=Math.round(Number(u[i]));return o}function Do(r,t){q(r.dtype,"lcm","LCM is only defined for integers."),typeof t!="number"&&q(t.dtype,"lcm","LCM is only defined for integers.");let e=(c,l)=>{for(c=Math.abs(Math.trunc(c)),l=Math.abs(Math.trunc(l));l!==0;){let m=l;l=c%l,c=m}return c},n=(c,l)=>(c=Math.abs(Math.trunc(c)),l=Math.abs(Math.trunc(l)),c===0||l===0?0:c*l/e(c,l));if(typeof t=="number"){let c=D.zeros(Array.from(r.shape),"int32"),l=c.data,m=r.data,y=r.size,d=Math.abs(Math.trunc(t));for(let f=0;f<y;f++)l[f]=n(Number(m[f]),d);return c}let o=K(r,t,n,"lcm"),a=D.zeros(Array.from(o.shape),"int32"),u=a.data,s=o.data,i=o.size;for(let c=0;c<i;c++)u[c]=Math.round(Number(s[c]));return a}function No(r,t){if(q(r.dtype,"ldexp","ldexp is not defined for complex numbers."),typeof t!="number"&&q(t.dtype,"ldexp","ldexp is not defined for complex numbers."),typeof t=="number"){let e=D.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.data,a=r.size,u=Math.pow(2,t);for(let s=0;s<a;s++)n[s]=Number(o[s])*u;return e}return K(r,t,(e,n)=>e*Math.pow(2,n),"ldexp")}function wo(r){q(r.dtype,"modf","modf is not defined for complex numbers.");let t=D.zeros(Array.from(r.shape),"float64"),e=D.zeros(Array.from(r.shape),"float64"),n=t.data,o=e.data,a=r.data,u=r.size;for(let s=0;s<u;s++){let i=Number(a[s]),c=Math.trunc(i);o[s]=c,n[s]=i-c}return[t,e]}var Io=W(()=>{"use strict";X();J();Mr()});function $r(r,t){return[r[t*2],r[t*2+1]]}function zo(r,t){if(M(r.dtype))return $r(r.data,t);let e=r.iget(t);return e instanceof O?[e.re,e.im]:[Number(e),0]}function Wr(r,t,e){let n=gr([Array.from(r.shape),Array.from(t.shape)]);if(!n)throw new Error("Cannot broadcast arrays together");let o=pr(r,n),a=pr(t,n),u=n.reduce((i,c)=>i*c,1),s=new Uint8Array(u);for(let i=0;i<u;i++){let[c,l]=zo(o,i),[m,y]=zo(a,i);s[i]=e(c,l,m,y)?1:0}return D.fromData(s,n,"bool")}function _o(r,t){return typeof t=="number"?up(r,t):M(r.dtype)||M(t.dtype)?Wr(r,t,(e,n,o,a)=>e!==o?e>o:n>a):yr(r,t,(e,n)=>e>n)}function Fo(r,t){return typeof t=="number"?cp(r,t):M(r.dtype)||M(t.dtype)?Wr(r,t,(e,n,o,a)=>e!==o?e>=o:n>=a):yr(r,t,(e,n)=>e>=n)}function Mo(r,t){return typeof t=="number"?lp(r,t):M(r.dtype)||M(t.dtype)?Wr(r,t,(e,n,o,a)=>e!==o?e<o:n<a):yr(r,t,(e,n)=>e<n)}function Bo(r,t){return typeof t=="number"?fp(r,t):M(r.dtype)||M(t.dtype)?Wr(r,t,(e,n,o,a)=>e!==o?e<=o:n<=a):yr(r,t,(e,n)=>e<=n)}function vo(r,t){return typeof t=="number"?mp(r,t):M(r.dtype)||M(t.dtype)?Wr(r,t,(e,n,o,a)=>e===o&&n===a):yr(r,t,(e,n)=>e===n)}function To(r,t){return typeof t=="number"?pp(r,t):M(r.dtype)||M(t.dtype)?Wr(r,t,(e,n,o,a)=>e!==o||n!==a):yr(r,t,(e,n)=>e!==n)}function he(r,t,e=1e-5,n=1e-8){return typeof t=="number"?yp(r,t,e,n):yr(r,t,(o,a)=>{let u=Math.abs(o-a),s=n+e*Math.abs(a);return u<=s})}function Eo(r,t,e=1e-5,n=1e-8){let o=he(r,t,e,n),a=o.data;for(let u=0;u<o.size;u++)if(a[u]===0)return!1;return!0}function Oo(r,t){let e=[Array.from(r.shape),Array.from(t.shape)],n=gr(e);if(n===null)return!1;let o=pr(r,n),a=pr(t,n),u=n.length,s=n.reduce((l,m)=>l*m,1),i=B(o.dtype),c=B(a.dtype);for(let l=0;l<s;l++){let m=l,y=new Array(u);for(let p=u-1;p>=0;p--)y[p]=m%n[p],m=Math.floor(m/n[p]);let d=o.get(...y),f=a.get(...y);if(i||c){let p=typeof d=="bigint"?d:BigInt(Number(d)),g=typeof f=="bigint"?f:BigInt(Number(f));if(p!==g)return!1}else if(d!==f)return!1}return!0}function up(r,t){let e=new Uint8Array(r.size),n=r.data;if(M(r.dtype)){let o=n;for(let a=0;a<r.size;a++){let[u,s]=$r(o,a);e[a]=(u!==t?u>t:s>0)?1:0}}else for(let o=0;o<r.size;o++)e[o]=n[o]>t?1:0;return D.fromData(e,Array.from(r.shape),"bool")}function cp(r,t){let e=new Uint8Array(r.size),n=r.data;if(M(r.dtype)){let o=n;for(let a=0;a<r.size;a++){let[u,s]=$r(o,a);e[a]=(u!==t?u>=t:s>=0)?1:0}}else for(let o=0;o<r.size;o++)e[o]=n[o]>=t?1:0;return D.fromData(e,Array.from(r.shape),"bool")}function lp(r,t){let e=new Uint8Array(r.size),n=r.data;if(M(r.dtype)){let o=n;for(let a=0;a<r.size;a++){let[u,s]=$r(o,a);e[a]=(u!==t?u<t:s<0)?1:0}}else for(let o=0;o<r.size;o++)e[o]=n[o]<t?1:0;return D.fromData(e,Array.from(r.shape),"bool")}function fp(r,t){let e=new Uint8Array(r.size),n=r.data;if(M(r.dtype)){let o=n;for(let a=0;a<r.size;a++){let[u,s]=$r(o,a);e[a]=(u!==t?u<=t:s<=0)?1:0}}else for(let o=0;o<r.size;o++)e[o]=n[o]<=t?1:0;return D.fromData(e,Array.from(r.shape),"bool")}function mp(r,t){let e=new Uint8Array(r.size),n=r.data,o=r.dtype;if(M(o)){let a=n;for(let u=0;u<r.size;u++){let[s,i]=$r(a,u);e[u]=s===t&&i===0?1:0}}else if(B(o)){let a=BigInt(Math.round(t)),u=n;for(let s=0;s<r.size;s++)e[s]=u[s]===a?1:0}else for(let a=0;a<r.size;a++)e[a]=n[a]===t?1:0;return D.fromData(e,Array.from(r.shape),"bool")}function pp(r,t){let e=new Uint8Array(r.size),n=r.data,o=r.dtype;if(M(o)){let a=n;for(let u=0;u<r.size;u++){let[s,i]=$r(a,u);e[u]=s!==t||i!==0?1:0}}else for(let a=0;a<r.size;a++)e[a]=n[a]!==t?1:0;return D.fromData(e,Array.from(r.shape),"bool")}function yp(r,t,e,n){let o=new Uint8Array(r.size),a=r.data,u=r.dtype;if(B(u)){let s=a;for(let i=0;i<r.size;i++){let c=Number(s[i]),l=Math.abs(c-t),m=n+e*Math.abs(t);o[i]=l<=m?1:0}}else for(let s=0;s<r.size;s++){let i=Number(a[s]),c=Math.abs(i-t),l=n+e*Math.abs(t);o[s]=c<=l?1:0}return D.fromData(o,Array.from(r.shape),"bool")}var Co=W(()=>{"use strict";X();J();Mr();Bt();xr()});function U(r,t){let e=0,n=1;for(let o=r.length-1;o>=0;o--)e+=r[o]*n,n*=t[o];return e}function $(r,t,e,n){let o=n.length,a=new Array(o),u=Array.from(n).filter((i,c)=>c!==t),s=r;for(let i=u.length-1;i>=0;i--)a[i>=t?i+1:i]=s%u[i],s=Math.floor(s/u[i]);return a[t]=e,a}var Se=W(()=>{"use strict"});function ot(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,s=r.data;if(t===void 0)if(M(n)){let f=s,p=0,g=0;for(let h=0;h<u;h++)p+=f[h*2],g+=f[h*2+1];return new O(p,g)}else if(B(n)){let f=s,p=BigInt(0);for(let g=0;g<u;g++)p+=f[g];return Number(p)}else{let f=0;for(let p=0;p<u;p++)f+=Number(s[p]);return f}let i=t;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,p)=>p!==i);if(c.length===0)return ot(r);let l=D.zeros(c,n),m=l.data,y=o[i],d=c.reduce((f,p)=>f*p,1);if(M(n)){let f=s,p=m;for(let g=0;g<d;g++){let h=0,b=0;for(let A=0;A<y;A++){let S=$(g,i,A,o),x=U(S,o);h+=f[x*2],b+=f[x*2+1]}p[g*2]=h,p[g*2+1]=b}}else if(B(n)){let f=s,p=m;for(let g=0;g<d;g++){let h=BigInt(0);for(let b=0;b<y;b++){let A=$(g,i,b,o),S=U(A,o);h+=f[S]}p[g]=h}}else for(let f=0;f<d;f++){let p=0;for(let g=0;g<y;g++){let h=$(f,i,g,o),b=U(h,o);p+=Number(s[b])}m[f]=p}if(e){let f=[...o];return f[i]=1,D.fromData(m,f,n)}return l}function Et(r,t,e=!1){let n=r.dtype,o=r.shape;if(t===void 0){let y=ot(r);return y instanceof O?new O(y.re/r.size,y.im/r.size):y/r.size}let a=t;if(a<0&&(a=o.length+a),a<0||a>=o.length)throw new Error(`axis ${t} is out of bounds for array of dimension ${o.length}`);let u=ot(r,t,e);if(typeof u=="number")return u/o[a];if(u instanceof O)return new O(u.re/o[a],u.im/o[a]);let s=o[a],i=n;M(n)?i=n:(B(n)||n.startsWith("int")||n.startsWith("uint"))&&(i="float64");let c=D.zeros(Array.from(u.shape),i),l=c.data,m=u.data;if(M(n)){let y=m,d=l,f=u.size;for(let p=0;p<f;p++)d[p*2]=y[p*2]/s,d[p*2+1]=y[p*2+1]/s}else if(B(n)){let y=m;for(let d=0;d<l.length;d++)l[d]=Number(y[d])/s}else for(let y=0;y<l.length;y++)l[y]=Number(m[y])/s;return c}function Gr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,s=r.data;if(M(n)){let f=s;if(t===void 0){if(u===0)throw new Error("max of empty array");let x=f[0],w=f[1];for(let N=1;N<u;N++){let I=f[N*2],z=f[N*2+1];if(isNaN(I)||isNaN(z))return new O(NaN,NaN);(I>x||I===x&&z>w)&&(x=I,w=z)}return isNaN(x)||isNaN(w)?new O(NaN,NaN):new O(x,w)}let p=t;if(p<0&&(p=a+p),p<0||p>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let g=Array.from(o).filter((x,w)=>w!==p);if(g.length===0)return Gr(r);let h=D.zeros(g,n),b=h.data,A=o[p],S=g.reduce((x,w)=>x*w,1);for(let x=0;x<S;x++){let w=$(x,p,0,o),N=U(w,o),I=f[N*2],z=f[N*2+1];for(let F=1;F<A;F++){let _=$(x,p,F,o),T=U(_,o),E=f[T*2],C=f[T*2+1];if(isNaN(E)||isNaN(C)){I=NaN,z=NaN;break}(E>I||E===I&&C>z)&&(I=E,z=C)}b[x*2]=I,b[x*2+1]=z}if(e){let x=[...o];return x[p]=1,D.fromData(b,x,n)}return h}if(t===void 0){if(u===0)throw new Error("max of empty array");let f=s[0];for(let p=1;p<u;p++)s[p]>f&&(f=s[p]);return Number(f)}let i=t;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,p)=>p!==i);if(c.length===0)return Gr(r);let l=D.zeros(c,n),m=l.data,y=o[i],d=c.reduce((f,p)=>f*p,1);if(B(n)){let f=s,p=m;for(let g=0;g<d;g++){let h=$(g,i,0,o),b=U(h,o),A=f[b];for(let S=1;S<y;S++){let x=$(g,i,S,o),w=U(x,o),N=f[w];N>A&&(A=N)}p[g]=A}}else for(let f=0;f<d;f++){let p=-1/0;for(let g=0;g<y;g++){let h=$(f,i,g,o),b=U(h,o),A=Number(s[b]);A>p&&(p=A)}m[f]=p}if(e){let f=[...o];return f[i]=1,D.fromData(m,f,n)}return l}function xe(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,s=r.data;if(t===void 0)if(M(n)){let f=s,p=1,g=0;for(let h=0;h<u;h++){let b=f[h*2],A=f[h*2+1],S=p*b-g*A,x=p*A+g*b;p=S,g=x}return new O(p,g)}else if(B(n)){let f=s,p=BigInt(1);for(let g=0;g<u;g++)p*=f[g];return Number(p)}else{let f=1;for(let p=0;p<u;p++)f*=Number(s[p]);return f}let i=t;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,p)=>p!==i);if(c.length===0)return xe(r);let l=D.zeros(c,n),m=l.data,y=o[i],d=c.reduce((f,p)=>f*p,1);if(M(n)){let f=s,p=m;for(let g=0;g<d;g++){let h=1,b=0;for(let A=0;A<y;A++){let S=$(g,i,A,o),x=U(S,o),w=f[x*2],N=f[x*2+1],I=h*w-b*N,z=h*N+b*w;h=I,b=z}p[g*2]=h,p[g*2+1]=b}}else if(B(n)){let f=s,p=m;for(let g=0;g<d;g++){let h=BigInt(1);for(let b=0;b<y;b++){let A=$(g,i,b,o),S=U(A,o);h*=f[S]}p[g]=h}}else for(let f=0;f<d;f++){let p=1;for(let g=0;g<y;g++){let h=$(f,i,g,o),b=U(h,o);p*=Number(s[b])}m[f]=p}if(e){let f=[...o];return f[i]=1,D.fromData(m,f,n)}return l}function Zr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,s=r.data;if(M(n)){let f=s;if(t===void 0){if(u===0)throw new Error("min of empty array");let x=f[0],w=f[1];for(let N=1;N<u;N++){let I=f[N*2],z=f[N*2+1];if(isNaN(I)||isNaN(z))return new O(NaN,NaN);(I<x||I===x&&z<w)&&(x=I,w=z)}return isNaN(x)||isNaN(w)?new O(NaN,NaN):new O(x,w)}let p=t;if(p<0&&(p=a+p),p<0||p>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let g=Array.from(o).filter((x,w)=>w!==p);if(g.length===0)return Zr(r);let h=D.zeros(g,n),b=h.data,A=o[p],S=g.reduce((x,w)=>x*w,1);for(let x=0;x<S;x++){let w=$(x,p,0,o),N=U(w,o),I=f[N*2],z=f[N*2+1];for(let F=1;F<A;F++){let _=$(x,p,F,o),T=U(_,o),E=f[T*2],C=f[T*2+1];if(isNaN(E)||isNaN(C)){I=NaN,z=NaN;break}(E<I||E===I&&C<z)&&(I=E,z=C)}b[x*2]=I,b[x*2+1]=z}if(e){let x=[...o];return x[p]=1,D.fromData(b,x,n)}return h}if(t===void 0){if(u===0)throw new Error("min of empty array");let f=s[0];for(let p=1;p<u;p++)s[p]<f&&(f=s[p]);return Number(f)}let i=t;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,p)=>p!==i);if(c.length===0)return Zr(r);let l=D.zeros(c,n),m=l.data,y=o[i],d=c.reduce((f,p)=>f*p,1);if(B(n)){let f=s,p=m;for(let g=0;g<d;g++){let h=$(g,i,0,o),b=U(h,o),A=f[b];for(let S=1;S<y;S++){let x=$(g,i,S,o),w=U(x,o),N=f[w];N<A&&(A=N)}p[g]=A}}else for(let f=0;f<d;f++){let p=1/0;for(let g=0;g<y;g++){let h=$(f,i,g,o),b=U(h,o),A=Number(s[b]);A<p&&(p=A)}m[f]=p}if(e){let f=[...o];return f[i]=1,D.fromData(m,f,n)}return l}function Or(r,t,e,n){return r<e?-1:r>e?1:t<n?-1:t>n?1:0}function De(r,t){let e=r.dtype,n=M(e),o=r.shape,a=o.length,u=r.size,s=r.data;if(t===void 0){if(u===0)throw new Error("argmin of empty array");if(n){let g=s,h=g[0],b=g[1],A=0;for(let S=1;S<u;S++){let x=g[S*2],w=g[S*2+1];Or(x,w,h,b)<0&&(h=x,b=w,A=S)}return A}let f=s[0],p=0;for(let g=1;g<u;g++)s[g]<f&&(f=s[g],p=g);return p}let i=t;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,p)=>p!==i);if(c.length===0)return De(r);let l=D.zeros(c,"int32"),m=l.data,y=o[i],d=c.reduce((f,p)=>f*p,1);if(n){let f=s;for(let p=0;p<d;p++){let g=$(p,i,0,o),h=U(g,o),b=f[h*2],A=f[h*2+1],S=0;for(let x=1;x<y;x++){let w=$(p,i,x,o),N=U(w,o),I=f[N*2],z=f[N*2+1];Or(I,z,b,A)<0&&(b=I,A=z,S=x)}m[p]=S}}else if(B(e)){let f=s;for(let p=0;p<d;p++){let g=$(p,i,0,o),h=U(g,o),b=f[h],A=0;for(let S=1;S<y;S++){let x=$(p,i,S,o),w=U(x,o),N=f[w];N<b&&(b=N,A=S)}m[p]=A}}else for(let f=0;f<d;f++){let p=1/0,g=0;for(let h=0;h<y;h++){let b=$(f,i,h,o),A=U(b,o),S=Number(s[A]);S<p&&(p=S,g=h)}m[f]=g}return l}function Ne(r,t){let e=r.dtype,n=M(e),o=r.shape,a=o.length,u=r.size,s=r.data;if(t===void 0){if(u===0)throw new Error("argmax of empty array");if(n){let g=s,h=g[0],b=g[1],A=0;for(let S=1;S<u;S++){let x=g[S*2],w=g[S*2+1];Or(x,w,h,b)>0&&(h=x,b=w,A=S)}return A}let f=s[0],p=0;for(let g=1;g<u;g++)s[g]>f&&(f=s[g],p=g);return p}let i=t;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,p)=>p!==i);if(c.length===0)return Ne(r);let l=D.zeros(c,"int32"),m=l.data,y=o[i],d=c.reduce((f,p)=>f*p,1);if(n){let f=s;for(let p=0;p<d;p++){let g=$(p,i,0,o),h=U(g,o),b=f[h*2],A=f[h*2+1],S=0;for(let x=1;x<y;x++){let w=$(p,i,x,o),N=U(w,o),I=f[N*2],z=f[N*2+1];Or(I,z,b,A)>0&&(b=I,A=z,S=x)}m[p]=S}}else if(B(e)){let f=s;for(let p=0;p<d;p++){let g=$(p,i,0,o),h=U(g,o),b=f[h],A=0;for(let S=1;S<y;S++){let x=$(p,i,S,o),w=U(x,o),N=f[w];N>b&&(b=N,A=S)}m[p]=A}}else for(let f=0;f<d;f++){let p=-1/0,g=0;for(let h=0;h<y;h++){let b=$(f,i,h,o),A=U(b,o),S=Number(s[A]);S>p&&(p=S,g=h)}m[f]=g}return l}function we(r,t,e=0,n=!1){let o=r.dtype,a=r.shape,u=a.length,s=r.size,i=r.data,c=Et(r,t,n);if(t===void 0){if(M(o)){let S=i,x=c,w=0;for(let N=0;N<s;N++){let I=S[N*2],z=S[N*2+1],F=I-x.re,_=z-x.im;w+=F*F+_*_}return w/(s-e)}let b=c,A=0;for(let S=0;S<s;S++){let x=Number(i[S])-b;A+=x*x}return A/(s-e)}let l=t;if(l<0&&(l=u+l),l<0||l>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let m=a[l],y=c,d=y.data,f=n?y.shape:Array.from(a).filter((b,A)=>A!==l),p=D.zeros(Array.from(f),"float64"),g=p.data,h=f.reduce((b,A)=>b*A,1);if(M(o)){let b=i,A=d;for(let S=0;S<h;S++){let x=0,w=A[S*2],N=A[S*2+1];for(let I=0;I<m;I++){let z=$(S,l,I,a),F=U(z,a),_=b[F*2],T=b[F*2+1],E=_-w,C=T-N;x+=E*E+C*C}g[S]=x/(m-e)}}else for(let b=0;b<h;b++){let A=0,S=Number(d[b]);for(let x=0;x<m;x++){let w=$(b,l,x,a),N=U(w,a),I=Number(i[N])-S;A+=I*I}g[b]=A/(m-e)}return p}function Uo(r,t,e=0,n=!1){let o=we(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=D.zeros(Array.from(o.shape),"float64"),u=o.data,s=a.data;for(let i=0;i<u.length;i++)s[i]=Math.sqrt(Number(u[i]));return a}function Ie(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,u=r.data;if(t===void 0){for(let d=0;d<a;d++)if(!u[d])return!1;return!0}let s=t;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let i=Array.from(n).filter((d,f)=>f!==s);if(i.length===0)return Ie(r);let c=D.zeros(i,"bool"),l=c.data,m=n[s],y=i.reduce((d,f)=>d*f,1);for(let d=0;d<y;d++){let f=!0;for(let p=0;p<m;p++){let g=$(d,s,p,n),h=U(g,n);if(!u[h]){f=!1;break}}l[d]=f?1:0}if(e){let d=[...n];return d[s]=1,D.fromData(l,d,"bool")}return c}function ze(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,u=r.data;if(t===void 0){for(let d=0;d<a;d++)if(u[d])return!0;return!1}let s=t;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let i=Array.from(n).filter((d,f)=>f!==s);if(i.length===0)return ze(r);let c=D.zeros(i,"bool"),l=c.data,m=n[s],y=i.reduce((d,f)=>d*f,1);for(let d=0;d<y;d++){let f=!1;for(let p=0;p<m;p++){let g=$(d,s,p,n),h=U(g,n);if(u[h]){f=!0;break}}l[d]=f?1:0}if(e){let d=[...n];return d[s]=1,D.fromData(l,d,"bool")}return c}function _e(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let d=a,f=r.size;if(t===void 0){let N=D.zeros([f],e),I=N.data,z=0,F=0;for(let _=0;_<f;_++)z+=d[_*2],F+=d[_*2+1],I[_*2]=z,I[_*2+1]=F;return N}let p=t;if(p<0&&(p=o+p),p<0||p>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let g=D.zeros([...n],e),h=g.data,b=n[p],A=[],S=1;for(let N=o-1;N>=0;N--)A.unshift(S),S*=n[N];let x=r.size,w=A[p];for(let N=0;N<x;N++)Math.floor(N/w)%b===0?(h[N*2]=d[N*2],h[N*2+1]=d[N*2+1]):(h[N*2]=h[(N-w)*2]+d[N*2],h[N*2+1]=h[(N-w)*2+1]+d[N*2+1]);return g}if(t===void 0){let d=r.size,f=new Float64Array(d),p=0;for(let g=0;g<d;g++)p+=Number(a[g]),f[g]=p;return D.fromData(f,[d],"float64")}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=new Float64Array(r.size),i=n[u],c=[],l=1;for(let d=o-1;d>=0;d--)c.unshift(l),l*=n[d];let m=r.size,y=c[u];for(let d=0;d<m;d++)Math.floor(d/y)%i===0?s[d]=Number(a[d]):s[d]=s[d-y]+Number(a[d]);return D.fromData(s,[...n],"float64")}function Fe(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let d=a,f=r.size;if(t===void 0){let N=D.zeros([f],e),I=N.data,z=1,F=0;for(let _=0;_<f;_++){let T=d[_*2],E=d[_*2+1],C=z*T-F*E,k=z*E+F*T;z=C,F=k,I[_*2]=z,I[_*2+1]=F}return N}let p=t;if(p<0&&(p=o+p),p<0||p>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let g=D.zeros([...n],e),h=g.data,b=n[p],A=[],S=1;for(let N=o-1;N>=0;N--)A.unshift(S),S*=n[N];let x=r.size,w=A[p];for(let N=0;N<x;N++)if(Math.floor(N/w)%b===0)h[N*2]=d[N*2],h[N*2+1]=d[N*2+1];else{let z=h[(N-w)*2],F=h[(N-w)*2+1],_=d[N*2],T=d[N*2+1];h[N*2]=z*_-F*T,h[N*2+1]=z*T+F*_}return g}if(t===void 0){let d=r.size,f=new Float64Array(d),p=1;for(let g=0;g<d;g++)p*=Number(a[g]),f[g]=p;return D.fromData(f,[d],"float64")}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=new Float64Array(r.size),i=n[u],c=[],l=1;for(let d=o-1;d>=0;d--)c.unshift(l),l*=n[d];let m=r.size,y=c[u];for(let d=0;d<m;d++)Math.floor(d/y)%i===0?s[d]=Number(a[d]):s[d]=s[d-y]*Number(a[d]);return D.fromData(s,[...n],"float64")}function Me(r,t,e=!1){let n=r.dtype;if(M(n)){let m=Gr(r,t,e),y=Zr(r,t,e);if(m instanceof O&&y instanceof O)return new O(m.re-y.re,m.im-y.im);let d=m,f=y,p=d.data,g=f.data,h=new Float64Array(d.size*2);for(let b=0;b<d.size;b++)h[b*2]=p[b*2]-g[b*2],h[b*2+1]=p[b*2+1]-g[b*2+1];return D.fromData(h,[...d.shape],n)}let o=Gr(r,t,e),a=Zr(r,t,e);if(typeof o=="number"&&typeof a=="number")return o-a;let u=o,s=a,i=u.data,c=s.data,l=new Float64Array(u.size);for(let m=0;m<u.size;m++)l[m]=Number(i[m])-Number(c[m]);return D.fromData(l,[...u.shape],"float64")}function Be(r,t,e=!1){return Hr(r,.5,t,e)}function ve(r,t,e,n=!1){return Hr(r,t/100,e,n)}function Hr(r,t,e,n=!1){if(q(r.dtype,"quantile","Complex numbers are not orderable."),t<0||t>1)throw new Error("Quantile must be between 0 and 1");let o=r.shape,a=o.length,u=r.data;if(e===void 0){let d=[];for(let A=0;A<r.size;A++)d.push(Number(u[A]));d.sort((A,S)=>A-S);let f=d.length,p=t*(f-1),g=Math.floor(p),h=Math.ceil(p);if(g===h)return d[g];let b=p-g;return d[g]*(1-b)+d[h]*b}let s=e;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);let i=Array.from(o).filter((d,f)=>f!==s);if(i.length===0)return Hr(r,t);let c=i.reduce((d,f)=>d*f,1),l=o[s],m=new Float64Array(c);for(let d=0;d<c;d++){let f=[];for(let A=0;A<l;A++){let S=$(d,s,A,o),x=U(S,o);f.push(Number(u[x]))}f.sort((A,S)=>A-S);let p=f.length,g=t*(p-1),h=Math.floor(g),b=Math.ceil(g);if(h===b)m[d]=f[h];else{let A=g-h;m[d]=f[h]*(1-A)+f[b]*A}}let y=D.fromData(m,i,"float64");if(n){let d=[...o];return d[s]=1,D.fromData(m,d,"float64")}return y}function at(r,t,e,n=!1){let o=r.dtype,a=r.shape,u=a.length,s=r.data;if(e===void 0)return Et(r,t,n);if(M(o)){let p=s,g=e.data;if(t===void 0){let N=0,I=0,z=0;for(let F=0;F<r.size;F++){let _=Number(g[F%e.size]),T=p[F*2],E=p[F*2+1];N+=T*_,I+=E*_,z+=_}return z===0?new O(NaN,NaN):new O(N/z,I/z)}let h=t;if(h<0&&(h=u+h),h<0||h>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let b=Array.from(a).filter((N,I)=>I!==h);if(b.length===0)return at(r,void 0,e);let A=b.reduce((N,I)=>N*I,1),S=a[h],x=D.zeros(b,o),w=x.data;for(let N=0;N<A;N++){let I=0,z=0,F=0;for(let _=0;_<S;_++){let T=$(N,h,_,a),E=U(T,a),C=Number(g[_%e.size]),k=p[E*2],V=p[E*2+1];I+=k*C,z+=V*C,F+=C}F===0?(w[N*2]=NaN,w[N*2+1]=NaN):(w[N*2]=I/F,w[N*2+1]=z/F)}if(n){let N=[...a];return N[h]=1,D.fromData(w,N,o)}return x}if(t===void 0){let p=0,g=0,h=e.data;for(let b=0;b<r.size;b++){let A=Number(h[b%e.size]);p+=Number(s[b])*A,g+=A}return g===0?NaN:p/g}let i=t;if(i<0&&(i=u+i),i<0||i>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let c=Array.from(a).filter((p,g)=>g!==i);if(c.length===0)return at(r,void 0,e);let l=c.reduce((p,g)=>p*g,1),m=a[i],y=e.data,d=new Float64Array(l);for(let p=0;p<l;p++){let g=0,h=0;for(let b=0;b<m;b++){let A=$(p,i,b,a),S=U(A,a),x=Number(y[b%e.size]);g+=Number(s[S])*x,h+=x}d[p]=h===0?NaN:g/h}let f=D.fromData(d,c,"float64");if(n){let p=[...a];return p[i]=1,D.fromData(d,p,"float64")}return f}function nr(r,t){return isNaN(r)||isNaN(t)}function Ot(r,t,e=!1){let n=r.dtype,o=M(n),a=r.shape,u=a.length,s=r.data;if(t===void 0){if(o){let p=s,g=0,h=0;for(let b=0;b<r.size;b++){let A=p[b*2],S=p[b*2+1];nr(A,S)||(g+=A,h+=S)}return new O(g,h)}let f=0;for(let p=0;p<r.size;p++){let g=Number(s[p]);isNaN(g)||(f+=g)}return f}let i=t;if(i<0&&(i=u+i),i<0||i>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let c=Array.from(a).filter((f,p)=>p!==i);if(c.length===0)return Ot(r);let l=c.reduce((f,p)=>f*p,1),m=a[i];if(o){let f=s,p=new Float64Array(l*2);for(let g=0;g<l;g++){let h=0,b=0;for(let A=0;A<m;A++){let S=$(g,i,A,a),x=U(S,a),w=f[x*2],N=f[x*2+1];nr(w,N)||(h+=w,b+=N)}p[g*2]=h,p[g*2+1]=b}if(e){let g=[...a];return g[i]=1,D.fromData(p,g,n)}return D.fromData(p,c,n)}let y=new Float64Array(l);for(let f=0;f<l;f++){let p=0;for(let g=0;g<m;g++){let h=$(f,i,g,a),b=U(h,a),A=Number(s[b]);isNaN(A)||(p+=A)}y[f]=p}let d=D.fromData(y,c,"float64");if(e){let f=[...a];return f[i]=1,D.fromData(y,f,"float64")}return d}function Ct(r,t,e=!1){let n=r.dtype,o=M(n),a=r.shape,u=a.length,s=r.data;if(t===void 0){if(o){let p=s,g=1,h=0;for(let b=0;b<r.size;b++){let A=p[b*2],S=p[b*2+1];if(!nr(A,S)){let x=g*A-h*S,w=g*S+h*A;g=x,h=w}}return new O(g,h)}let f=1;for(let p=0;p<r.size;p++){let g=Number(s[p]);isNaN(g)||(f*=g)}return f}let i=t;if(i<0&&(i=u+i),i<0||i>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let c=Array.from(a).filter((f,p)=>p!==i);if(c.length===0)return Ct(r);let l=c.reduce((f,p)=>f*p,1),m=a[i];if(o){let f=s,p=new Float64Array(l*2);for(let g=0;g<l;g++){let h=1,b=0;for(let A=0;A<m;A++){let S=$(g,i,A,a),x=U(S,a),w=f[x*2],N=f[x*2+1];if(!nr(w,N)){let I=h*w-b*N,z=h*N+b*w;h=I,b=z}}p[g*2]=h,p[g*2+1]=b}if(e){let g=[...a];return g[i]=1,D.fromData(p,g,n)}return D.fromData(p,c,n)}let y=new Float64Array(l);for(let f=0;f<l;f++){let p=1;for(let g=0;g<m;g++){let h=$(f,i,g,a),b=U(h,a),A=Number(s[b]);isNaN(A)||(p*=A)}y[f]=p}let d=D.fromData(y,c,"float64");if(e){let f=[...a];return f[i]=1,D.fromData(y,f,"float64")}return d}function Ut(r,t,e=!1){let n=r.dtype,o=M(n),a=r.shape,u=a.length,s=r.data;if(t===void 0){if(o){let g=s,h=0,b=0,A=0;for(let S=0;S<r.size;S++){let x=g[S*2],w=g[S*2+1];nr(x,w)||(h+=x,b+=w,A++)}return A===0?new O(NaN,NaN):new O(h/A,b/A)}let f=0,p=0;for(let g=0;g<r.size;g++){let h=Number(s[g]);isNaN(h)||(f+=h,p++)}return p===0?NaN:f/p}let i=t;if(i<0&&(i=u+i),i<0||i>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let c=Array.from(a).filter((f,p)=>p!==i);if(c.length===0)return Ut(r);let l=c.reduce((f,p)=>f*p,1),m=a[i];if(o){let f=s,p=new Float64Array(l*2);for(let g=0;g<l;g++){let h=0,b=0,A=0;for(let S=0;S<m;S++){let x=$(g,i,S,a),w=U(x,a),N=f[w*2],I=f[w*2+1];nr(N,I)||(h+=N,b+=I,A++)}A===0?(p[g*2]=NaN,p[g*2+1]=NaN):(p[g*2]=h/A,p[g*2+1]=b/A)}if(e){let g=[...a];return g[i]=1,D.fromData(p,g,n)}return D.fromData(p,c,n)}let y=new Float64Array(l);for(let f=0;f<l;f++){let p=0,g=0;for(let h=0;h<m;h++){let b=$(f,i,h,a),A=U(b,a),S=Number(s[A]);isNaN(S)||(p+=S,g++)}y[f]=g===0?NaN:p/g}let d=D.fromData(y,c,"float64");if(e){let f=[...a];return f[i]=1,D.fromData(y,f,"float64")}return d}function Yr(r,t,e=0,n=!1){let o=r.dtype,a=r.shape,u=a.length,s=r.data;if(M(o)){let f=s;if(t===void 0){let x=0,w=0,N=0;for(let _=0;_<r.size;_++){let T=f[_*2],E=f[_*2+1];nr(T,E)||(x+=T,w+=E,N++)}if(N-e<=0)return NaN;let I=x/N,z=w/N,F=0;for(let _=0;_<r.size;_++){let T=f[_*2],E=f[_*2+1];if(!nr(T,E)){let C=T-I,k=E-z;F+=C*C+k*k}}return F/(N-e)}let p=t;if(p<0&&(p=u+p),p<0||p>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let g=Array.from(a).filter((x,w)=>w!==p);if(g.length===0)return Yr(r,void 0,e);let h=g.reduce((x,w)=>x*w,1),b=a[p],A=new Float64Array(h);for(let x=0;x<h;x++){let w=0,N=0,I=0;for(let T=0;T<b;T++){let E=$(x,p,T,a),C=U(E,a),k=f[C*2],V=f[C*2+1];nr(k,V)||(w+=k,N+=V,I++)}if(I-e<=0){A[x]=NaN;continue}let z=w/I,F=N/I,_=0;for(let T=0;T<b;T++){let E=$(x,p,T,a),C=U(E,a),k=f[C*2],V=f[C*2+1];if(!nr(k,V)){let R=k-z,L=V-F;_+=R*R+L*L}}A[x]=_/(I-e)}let S=D.fromData(A,g,"float64");if(n){let x=[...a];return x[p]=1,D.fromData(A,x,"float64")}return S}if(t===void 0){let f=0,p=0;for(let b=0;b<r.size;b++){let A=Number(s[b]);isNaN(A)||(f+=A,p++)}if(p-e<=0)return NaN;let g=f/p,h=0;for(let b=0;b<r.size;b++){let A=Number(s[b]);isNaN(A)||(h+=(A-g)**2)}return h/(p-e)}let i=t;if(i<0&&(i=u+i),i<0||i>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let c=Array.from(a).filter((f,p)=>p!==i);if(c.length===0)return Yr(r,void 0,e);let l=c.reduce((f,p)=>f*p,1),m=a[i],y=new Float64Array(l);for(let f=0;f<l;f++){let p=0,g=0;for(let A=0;A<m;A++){let S=$(f,i,A,a),x=U(S,a),w=Number(s[x]);isNaN(w)||(p+=w,g++)}if(g-e<=0){y[f]=NaN;continue}let h=p/g,b=0;for(let A=0;A<m;A++){let S=$(f,i,A,a),x=U(S,a),w=Number(s[x]);isNaN(w)||(b+=(w-h)**2)}y[f]=b/(g-e)}let d=D.fromData(y,c,"float64");if(n){let f=[...a];return f[i]=1,D.fromData(y,f,"float64")}return d}function Te(r,t,e=0,n=!1){let o=Yr(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=o,u=new Float64Array(a.size);for(let s=0;s<a.size;s++)u[s]=Math.sqrt(Number(a.data[s]));return D.fromData(u,[...a.shape],"float64")}function st(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.data;if(M(n)){let d=u;if(t===void 0){let S=1/0,x=1/0,w=!1;for(let N=0;N<r.size;N++){let I=d[N*2],z=d[N*2+1];isNaN(I)||isNaN(z)||(w?(I<S||I===S&&z<x)&&(S=I,x=z):(S=I,x=z,w=!0))}return w?new O(S,x):new O(NaN,NaN)}let f=t;if(f<0&&(f=a+f),f<0||f>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let p=Array.from(o).filter((S,x)=>x!==f);if(p.length===0)return st(r);let g=p.reduce((S,x)=>S*x,1),h=o[f],b=new Float64Array(g*2);for(let S=0;S<g;S++){let x=1/0,w=1/0,N=!1;for(let I=0;I<h;I++){let z=$(S,f,I,o),F=U(z,o),_=d[F*2],T=d[F*2+1];isNaN(_)||isNaN(T)||(N?(_<x||_===x&&T<w)&&(x=_,w=T):(x=_,w=T,N=!0))}b[S*2]=N?x:NaN,b[S*2+1]=N?w:NaN}let A=D.fromData(b,p,n);if(e){let S=[...o];return S[f]=1,D.fromData(b,S,n)}return A}if(t===void 0){let d=1/0;for(let f=0;f<r.size;f++){let p=Number(u[f]);!isNaN(p)&&p<d&&(d=p)}return d===1/0?NaN:d}let s=t;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let i=Array.from(o).filter((d,f)=>f!==s);if(i.length===0)return st(r);let c=i.reduce((d,f)=>d*f,1),l=o[s],m=new Float64Array(c);for(let d=0;d<c;d++){let f=1/0;for(let p=0;p<l;p++){let g=$(d,s,p,o),h=U(g,o),b=Number(u[h]);!isNaN(b)&&b<f&&(f=b)}m[d]=f===1/0?NaN:f}let y=D.fromData(m,i,"float64");if(e){let d=[...o];return d[s]=1,D.fromData(m,d,"float64")}return y}function it(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.data;if(M(n)){let d=u;if(t===void 0){let S=-1/0,x=-1/0,w=!1;for(let N=0;N<r.size;N++){let I=d[N*2],z=d[N*2+1];isNaN(I)||isNaN(z)||(w?(I>S||I===S&&z>x)&&(S=I,x=z):(S=I,x=z,w=!0))}return w?new O(S,x):new O(NaN,NaN)}let f=t;if(f<0&&(f=a+f),f<0||f>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let p=Array.from(o).filter((S,x)=>x!==f);if(p.length===0)return it(r);let g=p.reduce((S,x)=>S*x,1),h=o[f],b=new Float64Array(g*2);for(let S=0;S<g;S++){let x=-1/0,w=-1/0,N=!1;for(let I=0;I<h;I++){let z=$(S,f,I,o),F=U(z,o),_=d[F*2],T=d[F*2+1];isNaN(_)||isNaN(T)||(N?(_>x||_===x&&T>w)&&(x=_,w=T):(x=_,w=T,N=!0))}b[S*2]=N?x:NaN,b[S*2+1]=N?w:NaN}let A=D.fromData(b,p,n);if(e){let S=[...o];return S[f]=1,D.fromData(b,S,n)}return A}if(t===void 0){let d=-1/0;for(let f=0;f<r.size;f++){let p=Number(u[f]);!isNaN(p)&&p>d&&(d=p)}return d===-1/0?NaN:d}let s=t;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let i=Array.from(o).filter((d,f)=>f!==s);if(i.length===0)return it(r);let c=i.reduce((d,f)=>d*f,1),l=o[s],m=new Float64Array(c);for(let d=0;d<c;d++){let f=-1/0;for(let p=0;p<l;p++){let g=$(d,s,p,o),h=U(g,o),b=Number(u[h]);!isNaN(b)&&b>f&&(f=b)}m[d]=f===-1/0?NaN:f}let y=D.fromData(m,i,"float64");if(e){let d=[...o];return d[s]=1,D.fromData(m,d,"float64")}return y}function ut(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let m=a;if(t===void 0){let h=1/0,b=1/0,A=-1;for(let S=0;S<r.size;S++){let x=m[S*2],w=m[S*2+1];!nr(x,w)&&Or(x,w,h,b)<0&&(h=x,b=w,A=S)}return A}let y=t;if(y<0&&(y=o+y),y<0||y>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let d=Array.from(n).filter((h,b)=>b!==y);if(d.length===0)return ut(r);let f=d.reduce((h,b)=>h*b,1),p=n[y],g=new Int32Array(f);for(let h=0;h<f;h++){let b=1/0,A=1/0,S=0;for(let x=0;x<p;x++){let w=$(h,y,x,n),N=U(w,n),I=m[N*2],z=m[N*2+1];!nr(I,z)&&Or(I,z,b,A)<0&&(b=I,A=z,S=x)}g[h]=S}return D.fromData(g,d,"int32")}if(t===void 0){let m=1/0,y=-1;for(let d=0;d<r.size;d++){let f=Number(a[d]);!isNaN(f)&&f<m&&(m=f,y=d)}return y}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((m,y)=>y!==u);if(s.length===0)return ut(r);let i=s.reduce((m,y)=>m*y,1),c=n[u],l=new Int32Array(i);for(let m=0;m<i;m++){let y=1/0,d=0;for(let f=0;f<c;f++){let p=$(m,u,f,n),g=U(p,n),h=Number(a[g]);!isNaN(h)&&h<y&&(y=h,d=f)}l[m]=d}return D.fromData(l,s,"int32")}function ct(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let m=a;if(t===void 0){let h=-1/0,b=-1/0,A=-1;for(let S=0;S<r.size;S++){let x=m[S*2],w=m[S*2+1];!nr(x,w)&&Or(x,w,h,b)>0&&(h=x,b=w,A=S)}return A}let y=t;if(y<0&&(y=o+y),y<0||y>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let d=Array.from(n).filter((h,b)=>b!==y);if(d.length===0)return ct(r);let f=d.reduce((h,b)=>h*b,1),p=n[y],g=new Int32Array(f);for(let h=0;h<f;h++){let b=-1/0,A=-1/0,S=0;for(let x=0;x<p;x++){let w=$(h,y,x,n),N=U(w,n),I=m[N*2],z=m[N*2+1];!nr(I,z)&&Or(I,z,b,A)>0&&(b=I,A=z,S=x)}g[h]=S}return D.fromData(g,d,"int32")}if(t===void 0){let m=-1/0,y=-1;for(let d=0;d<r.size;d++){let f=Number(a[d]);!isNaN(f)&&f>m&&(m=f,y=d)}return y}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((m,y)=>y!==u);if(s.length===0)return ct(r);let i=s.reduce((m,y)=>m*y,1),c=n[u],l=new Int32Array(i);for(let m=0;m<i;m++){let y=-1/0,d=0;for(let f=0;f<c;f++){let p=$(m,u,f,n),g=U(p,n),h=Number(a[g]);!isNaN(h)&&h>y&&(y=h,d=f)}l[m]=d}return D.fromData(l,s,"int32")}function Ee(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let d=a,f=r.size;if(t===void 0){let N=D.zeros([f],e),I=N.data,z=0,F=0;for(let _=0;_<f;_++){let T=d[_*2],E=d[_*2+1];nr(T,E)||(z+=T,F+=E),I[_*2]=z,I[_*2+1]=F}return N}let p=t;if(p<0&&(p=o+p),p<0||p>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let g=D.zeros([...n],e),h=g.data,b=n[p],A=[],S=1;for(let N=o-1;N>=0;N--)A.unshift(S),S*=n[N];let x=r.size,w=A[p];for(let N=0;N<x;N++){let I=d[N*2],z=d[N*2+1],F=Math.floor(N/w)%b,_=nr(I,z);F===0?(h[N*2]=_?0:I,h[N*2+1]=_?0:z):(h[N*2]=h[(N-w)*2]+(_?0:I),h[N*2+1]=h[(N-w)*2+1]+(_?0:z))}return g}if(t===void 0){let d=r.size,f=new Float64Array(d),p=0;for(let g=0;g<d;g++){let h=Number(a[g]);isNaN(h)||(p+=h),f[g]=p}return D.fromData(f,[d],"float64")}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=new Float64Array(r.size),i=n[u],c=[],l=1;for(let d=o-1;d>=0;d--)c.unshift(l),l*=n[d];let m=r.size,y=c[u];for(let d=0;d<m;d++){let f=Number(a[d]);Math.floor(d/y)%i===0?s[d]=isNaN(f)?0:f:s[d]=s[d-y]+(isNaN(f)?0:f)}return D.fromData(s,[...n],"float64")}function Oe(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let d=a,f=r.size;if(t===void 0){let N=D.zeros([f],e),I=N.data,z=1,F=0;for(let _=0;_<f;_++){let T=d[_*2],E=d[_*2+1];if(!nr(T,E)){let C=z*T-F*E,k=z*E+F*T;z=C,F=k}I[_*2]=z,I[_*2+1]=F}return N}let p=t;if(p<0&&(p=o+p),p<0||p>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let g=D.zeros([...n],e),h=g.data,b=n[p],A=[],S=1;for(let N=o-1;N>=0;N--)A.unshift(S),S*=n[N];let x=r.size,w=A[p];for(let N=0;N<x;N++){let I=d[N*2],z=d[N*2+1],F=Math.floor(N/w)%b,_=nr(I,z);if(F===0)h[N*2]=_?1:I,h[N*2+1]=_?0:z;else{let T=h[(N-w)*2],E=h[(N-w)*2+1];_?(h[N*2]=T,h[N*2+1]=E):(h[N*2]=T*I-E*z,h[N*2+1]=T*z+E*I)}}return g}if(t===void 0){let d=r.size,f=new Float64Array(d),p=1;for(let g=0;g<d;g++){let h=Number(a[g]);isNaN(h)||(p*=h),f[g]=p}return D.fromData(f,[d],"float64")}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=new Float64Array(r.size),i=n[u],c=[],l=1;for(let d=o-1;d>=0;d--)c.unshift(l),l*=n[d];let m=r.size,y=c[u];for(let d=0;d<m;d++){let f=Number(a[d]);Math.floor(d/y)%i===0?s[d]=isNaN(f)?1:f:s[d]=s[d-y]*(isNaN(f)?1:f)}return D.fromData(s,[...n],"float64")}function $t(r,t,e=!1){q(r.dtype,"nanmedian","Complex numbers are not orderable.");let n=r.shape,o=n.length,a=r.data;if(t===void 0){let y=[];for(let p=0;p<r.size;p++){let g=Number(a[p]);isNaN(g)||y.push(g)}if(y.length===0)return NaN;y.sort((p,g)=>p-g);let d=y.length,f=Math.floor(d/2);return d%2===0?(y[f-1]+y[f])/2:y[f]}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((y,d)=>d!==u);if(s.length===0)return $t(r);let i=s.reduce((y,d)=>y*d,1),c=n[u],l=new Float64Array(i);for(let y=0;y<i;y++){let d=[];for(let g=0;g<c;g++){let h=$(y,u,g,n),b=U(h,n),A=Number(a[b]);isNaN(A)||d.push(A)}if(d.length===0){l[y]=NaN;continue}d.sort((g,h)=>g-h);let f=d.length,p=Math.floor(f/2);f%2===0?l[y]=(d[p-1]+d[p])/2:l[y]=d[p]}let m=D.fromData(l,s,"float64");if(e){let y=[...n];return y[u]=1,D.fromData(l,y,"float64")}return m}var $o=W(()=>{"use strict";X();J();Se();xr()});function ir(r,t){let e=r.size,n=r.dtype,o=t.indexOf(-1),a;if(o!==-1){let c=t.reduce((m,y,d)=>d===o?m:m*y,1),l=e/c;if(!Number.isInteger(l))throw new Error(`cannot reshape array of size ${e} into shape ${JSON.stringify(t)}`);a=t.map((m,y)=>y===o?l:m)}else a=t;if(a.reduce((c,l)=>c*l,1)!==e)throw new Error(`cannot reshape array of size ${e} into shape ${JSON.stringify(a)}`);if(r.isCContiguous){let c=r.data;return D.fromData(c,a,n,ur(a),0)}let i=r.copy().data;return D.fromData(i,a,n,ur(a),0)}function Rt(r){let t=r.size,e=r.dtype,n=j(e);if(!n)throw new Error(`Cannot flatten array with dtype ${e}`);if(r.isCContiguous){let s=r.data.slice(r.offset,r.offset+t);return D.fromData(s,[t],e,[1],0)}let o=new n(t),a=B(e);for(let u=0;u<t;u++){let s=r.iget(u);o[u]=s}return D.fromData(o,[t],e,[1],0)}function Jr(r){let t=r.size,e=r.dtype;if(r.isCContiguous){let n=r.data;return D.fromData(n,[t],e,[1],0)}return Rt(r)}function ft(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,u=r.dtype,s;if(t===void 0)s=Array.from({length:n},(m,y)=>n-1-y);else{if(t.length!==n)throw new Error(`axes must have length ${n}, got ${t.length}`);let m=new Set;for(let y of t){let d=y<0?n+y:y;if(d<0||d>=n)throw new Error(`axis ${y} is out of bounds for array of dimension ${n}`);if(m.has(d))throw new Error("repeated axis in transpose");m.add(d)}s=t.map(y=>y<0?n+y:y)}let i=s.map(m=>e[m]),c=Array.from(o),l=s.map(m=>c[m]);return D.fromData(a,i,u,l,r.offset)}function Ro(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,u=r.dtype;if(t===void 0){let s=[],i=[];for(let c=0;c<n;c++)e[c]!==1&&(s.push(e[c]),i.push(o[c]));return s.length===0&&(s.push(1),i.push(1)),D.fromData(a,s,u,i,r.offset)}else{let s=t<0?n+t:t;if(s<0||s>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);if(e[s]!==1)throw new Error(`cannot select an axis which has size not equal to one (axis ${t} has size ${e[s]})`);let i=[],c=[];for(let l=0;l<n;l++)l!==s&&(i.push(e[l]),c.push(o[l]));return D.fromData(a,i,u,c,r.offset)}}function lt(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,u=r.dtype,s=t;if(s<0&&(s=n+t+1),s<0||s>n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n+1}`);let i=[...Array.from(e)];i.splice(s,0,1);let c=[...Array.from(o)],l=s<n?o[s]*(e[s]||1):1;return c.splice(s,0,l),D.fromData(a,i,u,c,r.offset)}function ko(r,t,e){let n=r.shape,o=n.length,a=r.strides,u=r.data,s=r.dtype,i=t<0?o+t:t,c=e<0?o+e:e;if(i<0||i>=o)throw new Error(`axis1 ${t} is out of bounds for array of dimension ${o}`);if(c<0||c>=o)throw new Error(`axis2 ${e} is out of bounds for array of dimension ${o}`);if(i===c)return D.fromData(u,Array.from(n),s,Array.from(a),r.offset);let l=Array.from(n),m=Array.from(a);return[l[i],l[c]]=[l[c],l[i]],[m[i],m[c]]=[m[c],m[i]],D.fromData(u,l,s,m,r.offset)}function Ce(r,t,e){let n=r.ndim,o=Array.isArray(t)?t:[t],a=Array.isArray(e)?e:[e];if(o.length!==a.length)throw new Error("source and destination must have the same number of elements");let u=o.map(c=>{let l=c<0?n+c:c;if(l<0||l>=n)throw new Error(`source axis ${c} is out of bounds for array of dimension ${n}`);return l}),s=a.map(c=>{let l=c<0?n+c:c;if(l<0||l>=n)throw new Error(`destination axis ${c} is out of bounds for array of dimension ${n}`);return l});if(new Set(u).size!==u.length)throw new Error("repeated axis in source");if(new Set(s).size!==s.length)throw new Error("repeated axis in destination");let i=[];for(let c=0;c<n;c++)u.includes(c)||i.push(c);for(let c=0;c<u.length;c++){let l=s[c];i.splice(l,0,u[c])}return ft(r,i)}function Rr(r,t=0){if(r.length===0)throw new Error("need at least one array to concatenate");if(r.length===1)return r[0].copy();let e=r[0],n=e.ndim,o=e.dtype,a=t<0?n+t:t;if(a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);for(let d=1;d<r.length;d++){let f=r[d];if(f.ndim!==n)throw new Error("all the input arrays must have same number of dimensions");for(let p=0;p<n;p++)if(p!==a&&f.shape[p]!==e.shape[p])throw new Error("all the input array dimensions except for the concatenation axis must match exactly")}let u=Array.from(e.shape),s=e.shape[a];for(let d=1;d<r.length;d++)s+=r[d].shape[a];u[a]=s;let i=u.reduce((d,f)=>d*f,1),c=j(o);if(!c)throw new Error(`Cannot concatenate arrays with dtype ${o}`);let l=new c(i),m=ur(u),y=0;for(let d of r){let f=d.shape[a];Ap(d,l,u,m,a,y,o),y+=f}return D.fromData(l,u,o)}function Ap(r,t,e,n,o,a,u){let s=r.shape,i=s.length,c=r.size,l=u==="int64"||u==="uint64";if(o===0&&r.isCContiguous&&i>0){let d=a*n[0],f=r.data,p=r.offset,g=p+c;t.set(f.subarray(p,g),d);return}if(o===1&&i===2&&r.isCContiguous){let d=s[0],f=s[1],p=e[1],g=r.data,h=r.offset;for(let b=0;b<d;b++){let A=h+b*f,S=b*p+a;t.set(g.subarray(A,A+f),S)}return}let m=new Array(i).fill(0),y=a*n[o];for(let d=0;d<c;d++){let f=r.iget(d),p=y;for(let g=0;g<i;g++)p+=m[g]*n[g];t[p]=f;for(let g=i-1;g>=0&&(m[g]++,!(m[g]<s[g]));g--)m[g]=0}}function qo(r,t=0){if(r.length===0)throw new Error("need at least one array to stack");let e=r[0],n=e.shape,o=e.ndim,a=t<0?o+1+t:t;if(a<0||a>o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o+1}`);for(let s=1;s<r.length;s++){let i=r[s];if(i.ndim!==o)throw new Error("all input arrays must have the same shape");for(let c=0;c<o;c++)if(i.shape[c]!==n[c])throw new Error("all input arrays must have the same shape")}let u=r.map(s=>lt(s,a));return Rr(u,a)}function Vo(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?ir(e,[1,e.shape[0]]):e);return Rr(t,0)}function Ue(r){if(r.length===0)throw new Error("need at least one array to stack");return r.every(e=>e.ndim===1)?Rr(r,0):Rr(r,1)}function Po(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?ir(lt(ir(e,[1,e.shape[0]]),2),[1,e.shape[0],1]):e.ndim===2?lt(e,2):e);return Rr(t,2)}function jo(r,t,e=0){let n=r.shape,o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=n[a],s;if(typeof t=="number"){if(u%t!==0)throw new Error("array split does not result in an equal division");let i=u/t;s=[];for(let c=1;c<t;c++)s.push(c*i)}else s=t;return Lo(r,s,a)}function mt(r,t,e=0){let n=r.shape,o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=n[a],s;if(typeof t=="number"){let i=t,c=Math.floor(u/i),l=u%i;s=[];let m=0;for(let y=0;y<i-1;y++)m+=c+(y<l?1:0),s.push(m)}else s=t;return Lo(r,s,a)}function Lo(r,t,e){let n=r.shape,o=n[e],a=[0,...t,o],u=[];for(let s=0;s<a.length-1;s++){let i=a[s],c=a[s+1];if(i>c)throw new Error("split indices must be in ascending order");let l=Array.from(n);l[e]=c-i;let m=r.offset+i*r.strides[e];u.push(D.fromData(r.data,l,r.dtype,Array.from(r.strides),m))}return u}function Wo(r,t){if(r.ndim<2)throw new Error("vsplit only works on arrays of 2 or more dimensions");return mt(r,t,0)}function Go(r,t){if(r.ndim<1)throw new Error("hsplit only works on arrays of 1 or more dimensions");let e=r.ndim===1?0:1;return mt(r,t,e)}function Zo(r,t){let e=r.shape,n=e.length,o=r.dtype,a=Array.isArray(t)?t:[t],u=Math.max(n,a.length),s=new Array(u).fill(1),i=new Array(u).fill(1);for(let b=0;b<n;b++)s[u-n+b]=e[b];for(let b=0;b<a.length;b++)i[u-a.length+b]=a[b];let c=s.map((b,A)=>b*i[A]),l=c.reduce((b,A)=>b*A,1),m=j(o);if(!m)throw new Error(`Cannot tile array with dtype ${o}`);let y=new m(l),d=ur(c),f=r;n<u&&(f=ir(r,s));let p=o==="int64"||o==="uint64",g=f.strides,h=new Array(u).fill(0);for(let b=0;b<l;b++){let A=f.offset;for(let w=0;w<u;w++){let N=h[w]%s[w];A+=N*g[w]}let S=f.data[A],x=0;for(let w=0;w<u;w++)x+=h[w]*d[w];y[x]=S;for(let w=u-1;w>=0&&(h[w]++,!(h[w]<c[w]));w--)h[w]=0}return D.fromData(y,c,o)}function Yo(r,t,e){let n=r.shape,o=n.length,a=r.dtype,u=r.size;if(e===void 0){let b=u,A=Array.isArray(t)?t:new Array(b).fill(t);if(A.length!==b)throw new Error(`operands could not be broadcast together with shape (${b},) (${A.length},)`);let S=A.reduce((I,z)=>I+z,0),x=j(a);if(!x)throw new Error(`Cannot repeat array with dtype ${a}`);let w=new x(S),N=0;for(let I=0;I<b;I++){let z=r.iget(I),F=A[I];for(let _=0;_<F;_++)w[N++]=z}return D.fromData(w,[S],a)}let s=e<0?o+e:e;if(s<0||s>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=n[s],c=Array.isArray(t)?t:new Array(i).fill(t);if(c.length!==i)throw new Error(`operands could not be broadcast together with shape (${i},) (${c.length},)`);let l=Array.from(n);l[s]=c.reduce((b,A)=>b+A,0);let m=l.reduce((b,A)=>b*A,1),y=j(a);if(!y)throw new Error(`Cannot repeat array with dtype ${a}`);let d=new y(m),f=ur(l),p=new Array(o).fill(0),g=a==="int64"||a==="uint64",h=[0];for(let b=0;b<i;b++)h.push(h[b]+c[b]);for(let b=0;b<u;b++){let A=r.iget(b),S=p[s],x=c[S],w=0;for(let z=0;z<o;z++)z!==s&&(w+=p[z]*f[z]);let N=f[s],I=h[S];for(let z=0;z<x;z++){let F=w+(I+z)*N;d[F]=A}for(let z=o-1;z>=0&&(p[z]++,!(p[z]<n[z]));z--)p[z]=0}return D.fromData(d,l,a)}function Ho(r,t){let e=r.shape,n=e.length,o=r.dtype,a=r.size,u;if(t===void 0)u=new Set(Array.from({length:n},(y,d)=>d));else if(typeof t=="number"){let y=t<0?n+t:t;if(y<0||y>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);u=new Set([y])}else u=new Set(t.map(y=>{let d=y<0?n+y:y;if(d<0||d>=n)throw new Error(`axis ${y} is out of bounds for array of dimension ${n}`);return d}));let s=j(o);if(!s)throw new Error(`Cannot flip array with dtype ${o}`);let i=new s(a),c=B(o);if(n===1&&r.isCContiguous){let y=r.data,d=r.offset;for(let f=0;f<a;f++)i[f]=y[d+a-1-f];return D.fromData(i,[...e],o)}if(n===2&&r.isCContiguous){let y=e[0],d=e[1],f=r.data,p=r.offset;if(u.size===2){for(let g=0;g<a;g++)i[g]=f[p+a-1-g];return D.fromData(i,[...e],o)}if(u.size===1){if(u.has(0)){for(let g=0;g<y;g++){let h=p+(y-1-g)*d,b=g*d;for(let A=0;A<d;A++)i[b+A]=f[h+A]}return D.fromData(i,[...e],o)}else if(u.has(1)){for(let g=0;g<y;g++){let h=p+g*d,b=g*d;for(let A=0;A<d;A++)i[b+A]=f[h+d-1-A]}return D.fromData(i,[...e],o)}}}let l=new Array(n),m=new Array(n).fill(0);for(let y=0;y<a;y++){for(let p=0;p<n;p++)l[p]=u.has(p)?e[p]-1-m[p]:m[p];let d=r.offset;for(let p=0;p<n;p++)d+=l[p]*r.strides[p];let f=r.data[d];i[y]=f;for(let p=n-1;p>=0&&(m[p]++,!(m[p]<e[p]));p--)m[p]=0}return D.fromData(i,[...e],o)}function Jo(r,t=1,e=[0,1]){let n=r.shape,o=n.length,a=r.dtype;if(o<2)throw new Error("Input must be at least 2-D");let u=e[0]<0?o+e[0]:e[0],s=e[1]<0?o+e[1]:e[1];if(u<0||u>=o||s<0||s>=o)throw new Error(`Axes are out of bounds for array of dimension ${o}`);if(u===s)throw new Error("Axes must be different");if(t=(t%4+4)%4,t===0)return r.copy();let i=j(a);if(!i)throw new Error(`Cannot rotate array with dtype ${a}`);let c=[...n];(t===1||t===3)&&([c[u],c[s]]=[c[s],c[u]]);let l=c.reduce((g,h)=>g*h,1),m=new i(l),y=ur(c),d=B(a),f=new Array(o).fill(0),p=new Array(o);for(let g=0;g<r.size;g++){for(let x=0;x<o;x++)p[x]=f[x];let h,b;t===1?(h=n[s]-1-f[s],b=f[u]):t===2?(h=n[u]-1-f[u],b=n[s]-1-f[s],p[u]=h,p[s]=b):(h=f[s],b=n[u]-1-f[u]),t!==2&&(p[u]=h,p[s]=b);let A=0;for(let x=0;x<o;x++)A+=p[x]*y[x];let S=r.iget(g);m[A]=S;for(let x=o-1;x>=0&&(f[x]++,!(f[x]<n[x]));x--)f[x]=0}return D.fromData(m,c,a)}function Xo(r,t,e){let n=r.shape,o=n.length,a=r.dtype,u=r.size;if(e===void 0){let f=Array.isArray(t)?t.reduce((A,S)=>A+S,0):t,p=Rt(r),g=j(a);if(!g)throw new Error(`Cannot roll array with dtype ${a}`);let h=new g(u),b=B(a);for(let A=0;A<u;A++){let S=((A-f)%u+u)%u,x=p.iget(S);h[A]=x}return D.fromData(h,[...n],a)}let s=Array.isArray(t)?t:[t],i=Array.isArray(e)?e:[e];if(s.length!==i.length)throw new Error("shift and axis must have the same length");let c=i.map(f=>{let p=f<0?o+f:f;if(p<0||p>=o)throw new Error(`axis ${f} is out of bounds for array of dimension ${o}`);return p}),l=j(a);if(!l)throw new Error(`Cannot roll array with dtype ${a}`);let m=new l(u),y=B(a),d=new Array(o).fill(0);for(let f=0;f<u;f++){let p=[...d];for(let b=0;b<c.length;b++){let A=c[b],S=n[A],x=s[b];p[A]=((p[A]-x)%S+S)%S}let g=r.offset;for(let b=0;b<o;b++)g+=p[b]*r.strides[b];let h=r.data[g];m[f]=h;for(let b=o-1;b>=0&&(d[b]++,!(d[b]<n[b]));b--)d[b]=0}return D.fromData(m,[...n],a)}function Qo(r,t,e=0){let n=r.ndim,o=t<0?n+t:t;if(o<0||o>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let a=e<0?n+e:e;if(a<0||a>n)throw new Error(`start ${e} is out of bounds`);return o<a&&a--,o===a?D.fromData(r.data,Array.from(r.shape),r.dtype,Array.from(r.strides),r.offset):Ce(r,o,a)}function Ko(r,t){if(r.ndim<3)throw new Error("dsplit only works on arrays of 3 or more dimensions");return mt(r,t,2)}function ra(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?ir(e,[e.shape[0],1]):e);return Ue(t)}function ta(r,t){let e=r.dtype,n=t.reduce((i,c)=>i*c,1),o=r.size,a=j(e);if(!a)throw new Error(`Cannot resize array with dtype ${e}`);let u=new a(n),s=B(e);for(let i=0;i<n;i++){let c=i%o,l=r.iget(c);u[i]=l}return D.fromData(u,t,e)}function ea(r){return r.map(t=>t.ndim===0?ir(t,[1]):t)}function na(r){return r.map(t=>t.ndim===0?ir(t,[1,1]):t.ndim===1?ir(t,[1,t.shape[0]]):t)}function oa(r){return r.map(t=>t.ndim===0?ir(t,[1,1,1]):t.ndim===1?ir(t,[1,t.shape[0],1]):t.ndim===2?ir(t,[t.shape[0],t.shape[1],1]):t)}var $e=W(()=>{"use strict";X();J()});function Xr(r,t){if(r instanceof O||t instanceof O){let e=r instanceof O?r:new O(Number(r),0),n=t instanceof O?t:new O(Number(t),0);return e.mul(n)}return typeof r=="bigint"&&typeof t=="bigint"?Number(r*t):Number(r)*Number(t)}function bp(r,t,e,n,o,a,u,s,i,c,l,m,y,d){if(m===0)for(let h=0;h<n*o;h++)y[h]=0;else if(m!==1)for(let h=0;h<n*o;h++)y[h]=(y[h]??0)*m;let f=r==="row-major",p=t==="transpose",g=e==="transpose";if(f&&!p&&!g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[h*i+S]??0)*(c[S*l+b]??0);y[h*d+b]=(y[h*d+b]??0)+u*A}else if(f&&p&&!g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[S*i+h]??0)*(c[S*l+b]??0);y[h*d+b]=(y[h*d+b]??0)+u*A}else if(f&&!p&&g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[h*i+S]??0)*(c[b*l+S]??0);y[h*d+b]=(y[h*d+b]??0)+u*A}else if(f&&p&&g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[S*i+h]??0)*(c[b*l+S]??0);y[h*d+b]=(y[h*d+b]??0)+u*A}else if(!f&&!p&&!g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[S*i+h]??0)*(c[b*l+S]??0);y[b*d+h]=(y[b*d+h]??0)+u*A}else if(!f&&p&&!g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[h*i+S]??0)*(c[b*l+S]??0);y[b*d+h]=(y[b*d+h]??0)+u*A}else if(!f&&!p&&g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[S*i+h]??0)*(c[S*l+b]??0);y[b*d+h]=(y[b*d+h]??0)+u*A}else for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[h*i+S]??0)*(c[S*l+b]??0);y[b*d+h]=(y[b*d+h]??0)+u*A}}function ke(r,t){let e=r.ndim,n=t.ndim,o=M(r.dtype)||M(t.dtype);if(e===0||n===0){let a=e===0?r.get():null,u=n===0?t.get():null;if(e===0&&n===0)return Xr(a,u);if(e===0){let s=Z(r.dtype,t.dtype),i=D.zeros([...t.shape],s),c=(l,m)=>{let y=new Array(m.length),d=l;for(let f=m.length-1;f>=0;f--)y[f]=d%m[f],d=Math.floor(d/m[f]);return y};for(let l=0;l<t.size;l++){let m=c(l,t.shape),y=t.get(...m);i.set(m,Xr(a,y))}return i}else{let s=Z(r.dtype,t.dtype),i=D.zeros([...r.shape],s),c=(l,m)=>{let y=new Array(m.length),d=l;for(let f=m.length-1;f>=0;f--)y[f]=d%m[f],d=Math.floor(d/m[f]);return y};for(let l=0;l<r.size;l++){let m=c(l,r.shape),y=r.get(...m);i.set(m,Xr(y,u))}return i}}if(e===1&&n===1){if(r.shape[0]!==t.shape[0])throw new Error(`dot: incompatible shapes (${r.shape[0]},) and (${t.shape[0]},)`);let a=r.shape[0];if(o){let s=0,i=0;for(let c=0;c<a;c++){let l=r.get(c),m=t.get(c),y=Xr(l,m);y instanceof O?(s+=y.re,i+=y.im):s+=y}return new O(s,i)}let u=0;for(let s=0;s<a;s++){let i=r.get(s),c=t.get(s);typeof i=="bigint"&&typeof c=="bigint"?u=Number(u)+Number(i*c):u+=Number(i)*Number(c)}return u}if(e===2&&n===2)return Ar(r,t);if(e===2&&n===1){let[a,u]=r.shape,s=t.shape[0];if(u!==s)throw new Error(`dot: incompatible shapes (${a},${u}) and (${s},)`);let i=Z(r.dtype,t.dtype),c=D.zeros([a],i);if(o)for(let l=0;l<a;l++){let m=0,y=0;for(let d=0;d<u;d++){let f=r.get(l,d),p=t.get(d),g=f instanceof O?f:new O(Number(f),0),h=p instanceof O?p:new O(Number(p),0);m+=g.re*h.re-g.im*h.im,y+=g.re*h.im+g.im*h.re}c.set([l],new O(m,y))}else for(let l=0;l<a;l++){let m=0;for(let y=0;y<u;y++){let d=r.get(l,y),f=t.get(y);typeof d=="bigint"&&typeof f=="bigint"?m=Number(m)+Number(d*f):m+=Number(d)*Number(f)}c.set([l],m)}return c}if(e===1&&n===2){let a=r.shape[0],[u,s]=t.shape;if(a!==u)throw new Error(`dot: incompatible shapes (${a},) and (${u},${s})`);let i=Z(r.dtype,t.dtype),c=D.zeros([s],i);if(o)for(let l=0;l<s;l++){let m=0,y=0;for(let d=0;d<a;d++){let f=r.get(d),p=t.get(d,l),g=f instanceof O?f:new O(Number(f),0),h=p instanceof O?p:new O(Number(p),0);m+=g.re*h.re-g.im*h.im,y+=g.re*h.im+g.im*h.re}c.set([l],new O(m,y))}else for(let l=0;l<s;l++){let m=0;for(let y=0;y<a;y++){let d=r.get(y),f=t.get(y,l);typeof d=="bigint"&&typeof f=="bigint"?m=Number(m)+Number(d*f):m+=Number(d)*Number(f)}c.set([l],m)}return c}if(e>2&&n===1){let a=r.shape[e-1],u=t.shape[0];if(a!==u)throw new Error(`dot: incompatible shapes ${JSON.stringify(r.shape)} and (${u},)`);let s=[...r.shape.slice(0,-1)],i=Z(r.dtype,t.dtype),c=D.zeros(s,i),l=s.reduce((m,y)=>m*y,1);if(o)for(let m=0;m<l;m++){let y=0,d=0,f=m,p=[];for(let g=s.length-1;g>=0;g--)p[g]=f%s[g],f=Math.floor(f/s[g]);for(let g=0;g<a;g++){let h=[...p,g],b=r.get(...h),A=t.get(g),S=b instanceof O?b:new O(Number(b),0),x=A instanceof O?A:new O(Number(A),0);y+=S.re*x.re-S.im*x.im,d+=S.re*x.im+S.im*x.re}c.set(p,new O(y,d))}else for(let m=0;m<l;m++){let y=0,d=m,f=[];for(let p=s.length-1;p>=0;p--)f[p]=d%s[p],d=Math.floor(d/s[p]);for(let p=0;p<a;p++){let g=[...f,p],h=r.get(...g),b=t.get(p);typeof h=="bigint"&&typeof b=="bigint"?y=Number(y)+Number(h*b):y+=Number(h)*Number(b)}c.set(f,y)}return c}if(e===1&&n>2){let a=r.shape[0],u=1,s=t.shape[u];if(a!==s)throw new Error(`dot: incompatible shapes (${a},) and ${JSON.stringify(t.shape)}`);let i=[...t.shape.slice(0,u),...t.shape.slice(u+1)],c=Z(r.dtype,t.dtype),l=D.zeros(i,c),m=i.reduce((y,d)=>y*d,1);if(o)for(let y=0;y<m;y++){let d=y,f=[];for(let A=i.length-1;A>=0;A--)f[A]=d%i[A],d=Math.floor(d/i[A]);let p=f.slice(0,u),g=f.slice(u),h=0,b=0;for(let A=0;A<a;A++){let S=r.get(A),x=[...p,A,...g],w=t.get(...x),N=S instanceof O?S:new O(Number(S),0),I=w instanceof O?w:new O(Number(w),0);h+=N.re*I.re-N.im*I.im,b+=N.re*I.im+N.im*I.re}l.set(f,new O(h,b))}else for(let y=0;y<m;y++){let d=y,f=[];for(let b=i.length-1;b>=0;b--)f[b]=d%i[b],d=Math.floor(d/i[b]);let p=f.slice(0,u),g=f.slice(u),h=0;for(let b=0;b<a;b++){let A=r.get(b),S=[...p,b,...g],x=t.get(...S);typeof A=="bigint"&&typeof x=="bigint"?h=Number(h)+Number(A*x):h+=Number(A)*Number(x)}l.set(f,h)}return l}if(e>=2&&n>=2&&!(e===2&&n===2)){let a=r.shape[e-1],u=t.shape[n-2];if(a!==u)throw new Error(`dot: incompatible shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(t.shape)}`);let s=[...r.shape.slice(0,-1),...t.shape.slice(0,-2),t.shape[n-1]],i=Z(r.dtype,t.dtype),c=D.zeros(s,i),l=r.shape.slice(0,-1).reduce((f,p)=>f*p,1),m=t.shape.slice(0,-2).reduce((f,p)=>f*p,1),y=t.shape[n-1],d=a;if(o)for(let f=0;f<l;f++)for(let p=0;p<m;p++)for(let g=0;g<y;g++){let h=0,b=0;for(let x=0;x<d;x++){let w=[],N=f;for(let C=r.shape.length-2;C>=0;C--)w.unshift(N%r.shape[C]),N=Math.floor(N/r.shape[C]);w.push(x);let I=r.get(...w),z=[],F=p;for(let C=t.shape.length-3;C>=0;C--)z.unshift(F%t.shape[C]),F=Math.floor(F/t.shape[C]);z.push(x,g);let _=t.get(...z),T=I instanceof O?I:new O(Number(I),0),E=_ instanceof O?_:new O(Number(_),0);h+=T.re*E.re-T.im*E.im,b+=T.re*E.im+T.im*E.re}let A=f*m*y+p*y+g,S=c.data;S[A*2]=h,S[A*2+1]=b}else for(let f=0;f<l;f++)for(let p=0;p<m;p++)for(let g=0;g<y;g++){let h=0;for(let A=0;A<d;A++){let S=f*d+A,x=p*d*y+A*y+g,w=r.data[S+r.offset],N=t.data[x+t.offset];typeof w=="bigint"&&typeof N=="bigint"?h=Number(h)+Number(w*N):h+=Number(w)*Number(N)}let b=f*m*y+p*y+g;c.data[b]=h}return c}throw new Error(`dot: unexpected combination of dimensions ${e}D \xB7 ${n}D`)}function Ar(r,t){if(r.ndim!==2||t.ndim!==2)throw new Error("matmul requires 2D arrays");let[e=0,n=0]=r.shape,[o=0,a=0]=t.shape;if(n!==o)throw new Error(`matmul shape mismatch: (${e},${n}) @ (${o},${a})`);let u=Z(r.dtype,t.dtype);if(M(u)){let x=D.zeros([e,a],u),w=x.data,N=r.data,I=t.data;for(let z=0;z<e;z++)for(let F=0;F<a;F++){let _=0,T=0;for(let C=0;C<n;C++){let k=(z*n+C)*2,V=(C*a+F)*2,R=N[k],L=N[k+1],P=I[V],Q=I[V+1];_+=R*P-L*Q,T+=R*Q+L*P}let E=z*a+F;w[E*2]=_,w[E*2+1]=T}return x}let s=u.startsWith("int")||u.startsWith("uint")||u==="bool"?"float64":u;if(s!=="float64")throw new Error(`matmul currently only supports float64, got ${s}`);let i=r.dtype==="float64"?r.data:Float64Array.from(Array.from(r.data).map(Number)),c=t.dtype==="float64"?t.data:Float64Array.from(Array.from(t.data).map(Number));r.offset>0&&(i=i.subarray(r.offset)),t.offset>0&&(c=c.subarray(t.offset));let[l=0,m=0]=r.strides,[y=0,d=0]=t.strides,f=m>l,p=d>y,g=f?"transpose":"no-transpose",h=p?"transpose":"no-transpose",b,A;f?b=m:b=l,p?A=d:A=y;let S=D.zeros([e,a],"float64");return bp("row-major",g,h,e,a,n,1,i,b,c,A,0,S.data,a),S}function ua(r){if(r.ndim!==2)throw new Error(`trace requires 2D array, got ${r.ndim}D`);let[t=0,e=0]=r.shape,n=Math.min(t,e);if(M(r.dtype)){let a=0,u=0;for(let s=0;s<n;s++){let i=r.get(s,s);a+=i.re,u+=i.im}return new O(a,u)}let o=0;for(let a=0;a<n;a++){let u=r.get(a,a);typeof u=="bigint"?o=(typeof o=="bigint"?o:BigInt(o))+u:o=(typeof o=="bigint"?Number(o):o)+u}return o}function sa(r,t){return ft(r,t)}function ca(r,t){let e=r.ndim,n=t.ndim,o=M(r.dtype)||M(t.dtype),a=r.shape[e-1],u=t.shape[n-1];if(a!==u)throw new Error(`inner: incompatible shapes - last dimensions ${a} and ${u} don't match`);if(e===1&&n===1)return ke(r,t);let s=[...r.shape.slice(0,-1),...t.shape.slice(0,-1)],i=Z(r.dtype,t.dtype),c=D.zeros(s,i),l=e===1?1:r.shape.slice(0,-1).reduce((d,f)=>d*f,1),m=n===1?1:t.shape.slice(0,-1).reduce((d,f)=>d*f,1),y=a;if(o)for(let d=0;d<l;d++)for(let f=0;f<m;f++){let p=0,g=0;for(let A=0;A<y;A++){let S,x;if(e===1)S=r.get(A);else{let I=[],z=d,F=r.shape.slice(0,-1);for(let _=F.length-1;_>=0;_--)I.unshift(z%F[_]),z=Math.floor(z/F[_]);I.push(A),S=r.get(...I)}if(n===1)x=t.get(A);else{let I=[],z=f,F=t.shape.slice(0,-1);for(let _=F.length-1;_>=0;_--)I.unshift(z%F[_]),z=Math.floor(z/F[_]);I.push(A),x=t.get(...I)}let w=S instanceof O?S:new O(Number(S),0),N=x instanceof O?x:new O(Number(x),0);p+=w.re*N.re-w.im*N.im,g+=w.re*N.im+w.im*N.re}if(s.length===0)return new O(p,g);let h=l===1?f:d*m+f,b=c.data;b[h*2]=p,b[h*2+1]=g}else for(let d=0;d<l;d++)for(let f=0;f<m;f++){let p=0;for(let h=0;h<y;h++){let b=e===1?h:d*y+h,A=n===1?h:f*y+h,S=r.data[b+r.offset],x=t.data[A+t.offset];typeof S=="bigint"&&typeof x=="bigint"?p=Number(p)+Number(S*x):p+=Number(S)*Number(x)}if(s.length===0)return p;let g=l===1?f:d*m+f;c.data[g]=p}return c}function qe(r,t){let e=r.ndim===1?r:Jr(r),n=t.ndim===1?t:Jr(t),o=e.size,a=n.size,u=Z(r.dtype,t.dtype),s=D.zeros([o,a],u);for(let i=0;i<o;i++)for(let c=0;c<a;c++){let l=e.get(i),m=n.get(c),y=Xr(l,m);s.set([i,c],y)}return s}function la(r,t,e){let n,o;if(typeof e=="number"){let f=e;if(f<0)throw new Error("tensordot: axes must be non-negative");if(f>r.ndim||f>t.ndim)throw new Error("tensordot: axes exceeds array dimensions");n=Array.from({length:f},(p,g)=>r.ndim-f+g),o=Array.from({length:f},(p,g)=>g)}else if([n,o]=e,n.length!==o.length)throw new Error("tensordot: axes lists must have same length");for(let f=0;f<n.length;f++){let p=n[f],g=o[f];if(p<0||p>=r.ndim||g<0||g>=t.ndim)throw new Error("tensordot: axis out of bounds");if(r.shape[p]!==t.shape[g])throw new Error(`tensordot: shape mismatch on axes ${p} and ${g}: ${r.shape[p]} != ${t.shape[g]}`)}let a=[],u=[];for(let f=0;f<r.ndim;f++)n.includes(f)||a.push(f);for(let f=0;f<t.ndim;f++)o.includes(f)||u.push(f);let s=[...a.map(f=>r.shape[f]),...u.map(f=>t.shape[f])],i=Z(r.dtype,t.dtype),c=M(i),l=f=>f instanceof O?{re:f.re,im:f.im}:{re:Number(f),im:0};if(s.length===0){let f=0,p=0,g=n.map(h=>r.shape[h]).reduce((h,b)=>h*b,1);for(let h=0;h<g;h++){let b=h,A=new Array(n.length);for(let I=n.length-1;I>=0;I--){let z=n[I];A[I]=b%r.shape[z],b=Math.floor(b/r.shape[z])}let S=new Array(r.ndim),x=new Array(t.ndim);for(let I=0;I<n.length;I++)S[n[I]]=A[I];for(let I=0;I<o.length;I++)x[o[I]]=A[I];let w=r.get(...S),N=t.get(...x);if(c){let I=l(w),z=l(N);f+=I.re*z.re-I.im*z.im,p+=I.re*z.im+I.im*z.re}else typeof w=="bigint"&&typeof N=="bigint"?f+=Number(w*N):f+=Number(w)*Number(N)}return c?new O(f,p):f}let m=D.zeros(s,i),y=s.reduce((f,p)=>f*p,1),d=n.map(f=>r.shape[f]).reduce((f,p)=>f*p,1);for(let f=0;f<y;f++){let p=f,g=[];for(let x=s.length-1;x>=0;x--)g[x]=p%s[x],p=Math.floor(p/s[x]);let h=g.slice(0,a.length),b=g.slice(a.length),A=0,S=0;for(let x=0;x<d;x++){p=x;let w=[];for(let _=n.length-1;_>=0;_--){let T=n[_];w[_]=p%r.shape[T],p=Math.floor(p/r.shape[T])}let N=new Array(r.ndim),I=new Array(t.ndim);for(let _=0;_<a.length;_++)N[a[_]]=h[_];for(let _=0;_<u.length;_++)I[u[_]]=b[_];for(let _=0;_<n.length;_++)N[n[_]]=w[_],I[o[_]]=w[_];let z=r.get(...N),F=t.get(...I);if(c){let _=l(z),T=l(F);A+=_.re*T.re-_.im*T.im,S+=_.re*T.im+_.im*T.re}else typeof z=="bigint"&&typeof F=="bigint"?A+=Number(z*F):A+=Number(z)*Number(F)}c?m.set(g,new O(A,S)):m.set(g,A)}return m}function fa(r,t=0,e=0,n=1){let o=r.shape,a=o.length;if(a<2)throw new Error("diagonal requires an array of at least two dimensions");let u=e<0?a+e:e,s=n<0?a+n:n;if(u<0||u>=a||s<0||s>=a)throw new Error("axis out of bounds");if(u===s)throw new Error("axis1 and axis2 cannot be the same");let i=o[u],c=o[s],l;t>=0?l=Math.max(0,Math.min(i,c-t)):l=Math.max(0,Math.min(i+t,c));let m=[];for(let p=0;p<a;p++)p!==u&&p!==s&&m.push(o[p]);m.push(l);let y=D.zeros(m,r.dtype),d=o.filter((p,g)=>g!==u&&g!==s),f=d.reduce((p,g)=>p*g,1);for(let p=0;p<f;p++){let g=p,h=[];for(let b=d.length-1;b>=0;b--)h.unshift(g%d[b]),g=Math.floor(g/d[b]);for(let b=0;b<l;b++){let A=new Array(a),S=0;for(let N=0;N<a;N++)N===u?A[N]=t>=0?b:b-t:N===s?A[N]=t>=0?b+t:b:A[N]=h[S++];let x=[...h,b],w=r.get(...A);y.set(x,w)}}return y}function ma(r,...t){let e=r.indexOf("->"),n,o;e===-1?(n=r,o=hp(n)):(n=r.slice(0,e),o=r.slice(e+2));let a=n.split(",").map(p=>p.trim());if(a.length!==t.length)throw new Error(`einsum: expected ${a.length} operands, got ${t.length}`);let u=new Map;for(let p=0;p<t.length;p++){let g=a[p],h=t[p];if(g.length!==h.ndim)throw new Error(`einsum: operand ${p} has ${h.ndim} dimensions but subscript '${g}' has ${g.length} indices`);for(let b=0;b<g.length;b++){let A=g[b],S=h.shape[b];if(u.has(A)){if(u.get(A)!==S)throw new Error(`einsum: size mismatch for index '${A}': ${u.get(A)} vs ${S}`)}else u.set(A,S)}}for(let p of o)if(!u.has(p))throw new Error(`einsum: output subscript contains unknown index '${p}'`);let s=new Set(o),i=new Set;for(let p of a)for(let g of p)i.add(g);let c=[];for(let p of i)s.has(p)||c.push(p);if(t.length===2&&a.length===2){let[p,g]=a,[h,b]=t;if(p.length===2&&g.length===2&&o.length===2&&h.ndim===2&&b.ndim===2){let[A,S]=[p[0],p[1]],[x,w]=[g[0],g[1]],[N,I]=[o[0],o[1]];if(A===N&&w===I&&S===x&&c.length===1&&c[0]===S||A===N&&w===I&&S===x&&c.length===1&&c[0]===S)return Ar(h,b);if(S===N&&w===I&&A===x&&c.length===1&&c[0]===A){let z=sa(h);return Ar(z,b)}if(A===N&&x===I&&S===w&&c.length===1&&c[0]===S){let z=sa(b);return Ar(h,z)}}if(p.length===1&&g.length===1&&p===g&&o.length===0&&h.ndim===1&&b.ndim===1)return Re(t,a,c,u);if(p&&g&&p.length===1&&g.length===1&&o.length===2&&o===p+g&&c.length===0&&h.ndim===1&&b.ndim===1)return qe(h,b)}if(t.length===1&&a[0].length===2&&o.length===0){let p=a[0];if(p[0]===p[1]&&t[0].ndim===2)return Re(t,a,c,u)}let l=Array.from(o).map(p=>u.get(p));if(l.length===0)return Re(t,a,c,u);let m=t[0].dtype;for(let p=1;p<t.length;p++)m=Z(m,t[p].dtype);let y=D.zeros(l,m),d=l.reduce((p,g)=>p*g,1),f=1;for(let p of c)f*=u.get(p);for(let p=0;p<d;p++){let g=Sp(p,l),h=new Map;for(let A=0;A<o.length;A++)h.set(o[A],g[A]);let b=0;for(let A=0;A<f;A++){let S=A;for(let w=c.length-1;w>=0;w--){let N=c[w],I=u.get(N);h.set(N,S%I),S=Math.floor(S/I)}let x=1;for(let w=0;w<t.length;w++){let N=t[w],I=a[w],z=[];for(let _ of I)z.push(h.get(_));let F=N.get(...z);x*=Number(F)}b+=x}y.set(g,b)}return y}function hp(r){let t=new Map,e=r.split(",");for(let o of e)for(let a of o.trim())t.set(a,(t.get(a)||0)+1);let n=[];for(let[o,a]of t)a===1&&n.push(o);return n.sort().join("")}function Re(r,t,e,n){let o=!1;for(let c of r)if(M(c.dtype)){o=!0;break}let a=c=>c instanceof O?{re:c.re,im:c.im}:{re:Number(c),im:0},u=1;for(let c of e)u*=n.get(c);let s=0,i=0;for(let c=0;c<u;c++){let l=new Map,m=c;for(let f=e.length-1;f>=0;f--){let p=e[f],g=n.get(p);l.set(p,m%g),m=Math.floor(m/g)}let y=1,d=0;for(let f=0;f<r.length;f++){let p=r[f],g=t[f],h=[];for(let A of g)h.push(l.get(A));let b=p.get(...h);if(o){let A=a(b),S=y*A.re-d*A.im,x=y*A.im+d*A.re;y=S,d=x}else y*=Number(b)}s+=y,i+=d}return o?new O(s,i):s}function Sp(r,t){let e=new Array(t.length),n=r;for(let o=t.length-1;o>=0;o--)e[o]=n%t[o],n=Math.floor(n/t[o]);return e}function pa(r,t){let e=r.shape,n=t.shape,o=e.length,a=n.length,u=Z(r.dtype,t.dtype),s=Math.max(o,a),i=new Array(s),c=new Array(s).fill(1),l=new Array(s).fill(1);for(let f=0;f<o;f++)c[s-o+f]=e[f];for(let f=0;f<a;f++)l[s-a+f]=n[f];for(let f=0;f<s;f++)i[f]=c[f]*l[f];let m=D.zeros(i,u),y=e.reduce((f,p)=>f*p,1),d=n.reduce((f,p)=>f*p,1);for(let f=0;f<y;f++){let p=f,g=new Array(o);for(let A=o-1;A>=0;A--)g[A]=p%e[A],p=Math.floor(p/e[A]);let h=new Array(s).fill(0);for(let A=0;A<o;A++)h[s-o+A]=g[A];let b=r.get(...g);for(let A=0;A<d;A++){let S=A,x=new Array(a);for(let F=a-1;F>=0;F--)x[F]=S%n[F],S=Math.floor(S/n[F]);let w=new Array(s).fill(0);for(let F=0;F<a;F++)w[s-a+F]=x[F];let N=t.get(...x),I=new Array(s);for(let F=0;F<s;F++)I[F]=h[F]*l[F]+w[F];let z=Xr(b,N);m.set(I,z)}}return m}function ya(r,t,e=-1,n=-1,o=-1,a){a!==void 0&&(e=a,n=a,o=a);let u=(A,S)=>A<0?S+A:A,s=u(e,r.ndim),i=u(n,t.ndim);if(r.ndim===1&&t.ndim===1){let A=r.shape[0],S=t.shape[0];if(A===3&&S===3){let x=Number(r.get(0)),w=Number(r.get(1)),N=Number(r.get(2)),I=Number(t.get(0)),z=Number(t.get(1)),F=Number(t.get(2)),_=D.zeros([3],"float64");return _.set([0],w*F-N*z),_.set([1],N*I-x*F),_.set([2],x*z-w*I),_}else if(A===2&&S===2){let x=Number(r.get(0)),w=Number(r.get(1)),N=Number(t.get(0)),I=Number(t.get(1));return x*I-w*N}else if(A===2&&S===3||A===3&&S===2){let x=Number(r.get(0)),w=Number(r.get(1)),N=A===3?Number(r.get(2)):0,I=Number(t.get(0)),z=Number(t.get(1)),F=S===3?Number(t.get(2)):0,_=D.zeros([3],"float64");return _.set([0],w*F-N*z),_.set([1],N*I-x*F),_.set([2],x*z-w*I),_}else throw new Error(`cross: incompatible dimensions for cross product: ${A} and ${S}`)}let c=r.shape[s],l=t.shape[i];if(c!==2&&c!==3||l!==2&&l!==3)throw new Error(`cross: incompatible dimensions for cross product: ${c} and ${l}`);let m=c===2&&l===2?0:3,y=[...r.shape.slice(0,s),...r.shape.slice(s+1)],d=[...t.shape.slice(0,i),...t.shape.slice(i+1)];if(y.length!==d.length)throw new Error("cross: incompatible shapes for cross product");for(let A=0;A<y.length;A++)if(y[A]!==d[A])throw new Error("cross: incompatible shapes for cross product");let f=y,p=o<0?f.length+1+o:o,g;if(m===0?g=f:g=[...f.slice(0,p),m,...f.slice(p)],g.length===0)throw new Error("cross: unexpected scalar result from higher-dimensional input");let h=D.zeros(g,"float64"),b=f.reduce((A,S)=>A*S,1);for(let A=0;A<b;A++){let S=A,x=[];for(let V=f.length-1;V>=0;V--)x[V]=S%f[V],S=Math.floor(S/f[V]);let w=[...x.slice(0,s),0,...x.slice(s)],N=[...x.slice(0,i),0,...x.slice(i)],I=V=>(w[s]=V,Number(r.get(...w))),z=V=>(N[i]=V,Number(t.get(...N))),F=I(0),_=I(1),T=c===3?I(2):0,E=z(0),C=z(1),k=l===3?z(2):0;if(m===0)h.set(x,F*C-_*E);else{let V=_*k-T*C,R=T*E-F*k,L=F*C-_*E,P=(Q,er)=>{let G=[...x.slice(0,p),Q,...x.slice(p)];h.set(G,er)};P(0,V),P(1,R),P(2,L)}}return h}function Qr(r,t=2,e,n=!1){if(typeof t!="number")throw new Error("vector_norm: ord must be a number");if(e==null){let c=r.ndim===1?r:Jr(r),l=c.size,m;if(t===1/0){m=0;for(let y=0;y<l;y++)m=Math.max(m,Math.abs(Number(c.get(y))))}else if(t===-1/0){m=1/0;for(let y=0;y<l;y++)m=Math.min(m,Math.abs(Number(c.get(y))))}else if(t===0){m=0;for(let y=0;y<l;y++)Number(c.get(y))!==0&&m++}else if(t===1){m=0;for(let y=0;y<l;y++)m+=Math.abs(Number(c.get(y)))}else if(t===2){m=0;for(let y=0;y<l;y++){let d=Number(c.get(y));m+=d*d}m=Math.sqrt(m)}else{m=0;for(let y=0;y<l;y++)m+=Math.pow(Math.abs(Number(c.get(y))),t);m=Math.pow(m,1/t)}if(n){let y=new Array(r.ndim).fill(1),d=D.zeros(y,"float64");return d.set(new Array(r.ndim).fill(0),m),d}return m}let o=e<0?r.ndim+e:e;if(o<0||o>=r.ndim)throw new Error(`vector_norm: axis ${e} out of bounds for array with ${r.ndim} dimensions`);let a=n?[...r.shape.slice(0,o),1,...r.shape.slice(o+1)]:[...r.shape.slice(0,o),...r.shape.slice(o+1)];if(a.length===0)return Qr(r,t,null,!1);let u=D.zeros(a,"float64"),s=r.shape[o],i=a.reduce((c,l)=>c*l,1);for(let c=0;c<i;c++){let l=c,m=[];for(let f=a.length-1;f>=0;f--)m[f]=l%a[f],l=Math.floor(l/a[f]);let y=n?[...m.slice(0,o),0,...m.slice(o+1)]:[...m.slice(0,o),0,...m.slice(o)],d;if(t===1/0){d=0;for(let f=0;f<s;f++)y[o]=f,d=Math.max(d,Math.abs(Number(r.get(...y))))}else if(t===-1/0){d=1/0;for(let f=0;f<s;f++)y[o]=f,d=Math.min(d,Math.abs(Number(r.get(...y))))}else if(t===0){d=0;for(let f=0;f<s;f++)y[o]=f,Number(r.get(...y))!==0&&d++}else if(t===1){d=0;for(let f=0;f<s;f++)y[o]=f,d+=Math.abs(Number(r.get(...y)))}else if(t===2){d=0;for(let f=0;f<s;f++){y[o]=f;let p=Number(r.get(...y));d+=p*p}d=Math.sqrt(d)}else{d=0;for(let f=0;f<s;f++)y[o]=f,d+=Math.pow(Math.abs(Number(r.get(...y))),t);d=Math.pow(d,1/t)}u.set(m,d)}return u}function kr(r,t="fro",e=!1){if(r.ndim!==2)throw new Error(`matrix_norm: input must be 2D, got ${r.ndim}D`);let[n,o]=r.shape,a;if(t==="fro"){a=0;for(let u=0;u<n;u++)for(let s=0;s<o;s++){let i=Number(r.get(u,s));a+=i*i}a=Math.sqrt(a)}else if(t==="nuc"){let{s:u}=Cr(r);a=0;for(let s=0;s<u.size;s++)a+=Number(u.get(s))}else if(t===1){a=0;for(let u=0;u<o;u++){let s=0;for(let i=0;i<n;i++)s+=Math.abs(Number(r.get(i,u)));a=Math.max(a,s)}}else if(t===-1){a=1/0;for(let u=0;u<o;u++){let s=0;for(let i=0;i<n;i++)s+=Math.abs(Number(r.get(i,u)));a=Math.min(a,s)}}else if(t===1/0){a=0;for(let u=0;u<n;u++){let s=0;for(let i=0;i<o;i++)s+=Math.abs(Number(r.get(u,i)));a=Math.max(a,s)}}else if(t===-1/0){a=1/0;for(let u=0;u<n;u++){let s=0;for(let i=0;i<o;i++)s+=Math.abs(Number(r.get(u,i)));a=Math.min(a,s)}}else if(t===2){let{s:u}=Cr(r);a=Number(u.get(0))}else if(t===-2){let{s:u}=Cr(r);a=Number(u.get(u.size-1))}else throw new Error(`matrix_norm: invalid ord value: ${t}`);if(e){let u=D.zeros([1,1],"float64");return u.set([0,0],a),u}return a}function da(r,t=null,e=null,n=!1){if(t===null)return e===null?Qr(r,2,null,n):typeof e=="number"?Qr(r,2,e,n):kr(r,"fro",n);if(Array.isArray(e)){if(e.length!==2)throw new Error("norm: axis must be a 2-tuple for matrix norms");let o=e[0]<0?r.ndim+e[0]:e[0],a=e[1]<0?r.ndim+e[1]:e[1];if(r.ndim!==2||o!==0&&o!==1||a!==0&&a!==1||o===a)throw new Error("norm: complex axis specification not yet supported");return kr(r,t,n)}if(r.ndim===2&&e===null&&(t==="fro"||t==="nuc"))return kr(r,t,n);if(typeof t!="number"&&t!==null)throw new Error(`norm: ord '${t}' not valid for vector norm`);return Qr(r,t??2,e,n)}function Ve(r,t="reduced"){if(r.ndim!==2)throw new Error(`qr: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape,o=Math.min(e,n),a=D.zeros([e,n],"float64");for(let d=0;d<e;d++)for(let f=0;f<n;f++)a.set([d,f],Number(r.get(d,f)));let u=[],s=[];for(let d=0;d<o;d++){let f=e-d,p=[];for(let x=d;x<e;x++)p.push(Number(a.get(x,d)));let g=0;for(let x=0;x<f;x++)g+=p[x]*p[x];if(g=Math.sqrt(g),g<1e-15){u.push(p),s.push(0);continue}let h=p[0]>=0?1:-1,b=p[0]+h*g,A=[1];for(let x=1;x<f;x++)A.push(p[x]/b);let S=h*b/g;s.push(S),u.push(A);for(let x=d;x<n;x++){let w=0;for(let N=0;N<f;N++)w+=A[N]*Number(a.get(d+N,x));for(let N=0;N<f;N++)a.set([d+N,x],Number(a.get(d+N,x))-S*A[N]*w)}}if(t==="raw"){let d=D.zeros([e,n],"float64");for(let p=0;p<e;p++)for(let g=0;g<n;g++)d.set([p,g],Number(a.get(p,g)));let f=D.zeros([o],"float64");for(let p=0;p<o;p++)f.set([p],s[p]);return{h:d,tau:f}}if(t==="r"){let d=D.zeros([o,n],"float64");for(let f=0;f<o;f++)for(let p=f;p<n;p++)d.set([f,p],Number(a.get(f,p)));return d}let i=t==="complete"?e:o,c=D.zeros([e,i],"float64");for(let d=0;d<Math.min(e,i);d++)c.set([d,d],1);for(let d=o-1;d>=0;d--){let f=u[d],p=s[d],g=e-d;for(let h=d;h<i;h++){let b=0;for(let A=0;A<g;A++)b+=f[A]*Number(c.get(d+A,h));for(let A=0;A<g;A++)c.set([d+A,h],Number(c.get(d+A,h))-p*f[A]*b)}}let l=D.zeros([e,i],"float64");for(let d=0;d<e;d++)for(let f=0;f<i;f++)l.set([d,f],Number(c.get(d,f)));let m=t==="complete"?e:o,y=D.zeros([m,n],"float64");for(let d=0;d<m;d++)for(let f=0;f<n;f++)f>=d&&y.set([d,f],Number(a.get(d,f)));return{q:l,r:y}}function ga(r,t=!1){if(r.ndim!==2)throw new Error(`cholesky: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`cholesky: matrix must be square, got ${e}x${n}`);let o=e,a=D.zeros([o,o],"float64");for(let u=0;u<o;u++)for(let s=0;s<=u;s++){let i=0;if(u===s){for(let l=0;l<s;l++)i+=Number(a.get(s,l))**2;let c=Number(r.get(s,s))-i;if(c<0)throw new Error("cholesky: matrix is not positive definite");a.set([s,s],Math.sqrt(c))}else{for(let l=0;l<s;l++)i+=Number(a.get(u,l))*Number(a.get(s,l));let c=Number(a.get(s,s));if(Math.abs(c)<1e-15)throw new Error("cholesky: matrix is not positive definite");a.set([u,s],(Number(r.get(u,s))-i)/c)}}if(t){let u=D.zeros([o,o],"float64");for(let s=0;s<o;s++)for(let i=s;i<o;i++)u.set([s,i],Number(a.get(i,s)));return u}return a}function Cr(r){if(r.ndim!==2)throw new Error(`svd: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape,n=Math.min(t,e),o=D.zeros([e,e],"float64");for(let m=0;m<e;m++)for(let y=0;y<e;y++){let d=0;for(let f=0;f<t;f++)d+=Number(r.get(f,m))*Number(r.get(f,y));o.set([m,y],d)}let{values:a,vectors:u}=Pe(o),s=Array.from({length:e},(m,y)=>y);s.sort((m,y)=>a[y]-a[m]);let i=D.zeros([n],"float64");for(let m=0;m<n;m++){let y=a[s[m]];i.set([m],Math.sqrt(Math.max(0,y)))}let c=D.zeros([e,e],"float64");for(let m=0;m<e;m++)for(let y=0;y<e;y++)c.set([m,y],u[y][s[m]]);let l=D.zeros([t,t],"float64");for(let m=0;m<t;m++)for(let y=0;y<n;y++){let d=Number(i.get(y));if(d>1e-10){let f=0;for(let p=0;p<e;p++)f+=Number(r.get(m,p))*Number(c.get(y,p));l.set([m,y],f/d)}}if(t>n)for(let m=n;m<t;m++){let y=new Array(t).fill(0);y[m]=1;for(let f=0;f<m;f++){let p=0;for(let g=0;g<t;g++)p+=y[g]*Number(l.get(g,f));for(let g=0;g<t;g++)y[g]=y[g]-p*Number(l.get(g,f))}let d=0;for(let f=0;f<t;f++)d+=y[f]*y[f];if(d=Math.sqrt(d),d>1e-10)for(let f=0;f<t;f++)l.set([f,m],y[f]/d)}return{u:l,s:i,vt:c}}function Pe(r){let t=r.shape[0],e=100*t*t,n=1e-10,o=[];for(let s=0;s<t;s++){o.push([]);for(let i=0;i<t;i++)o[s].push(Number(r.get(s,i)))}let a=[];for(let s=0;s<t;s++){a.push([]);for(let i=0;i<t;i++)a[s].push(s===i?1:0)}for(let s=0;s<e;s++){let i=0,c=0,l=1;for(let A=0;A<t;A++)for(let S=A+1;S<t;S++)Math.abs(o[A][S])>i&&(i=Math.abs(o[A][S]),c=A,l=S);if(i<n)break;let m=o[c][c],y=o[l][l],d=o[c][l],f;Math.abs(m-y)<1e-15?f=Math.PI/4:f=.5*Math.atan2(2*d,y-m);let p=Math.cos(f),g=Math.sin(f),h=p*p*m+g*g*y-2*g*p*d,b=g*g*m+p*p*y+2*g*p*d;o[c][c]=h,o[l][l]=b,o[c][l]=0,o[l][c]=0;for(let A=0;A<t;A++)if(A!==c&&A!==l){let S=o[A][c],x=o[A][l];o[A][c]=p*S-g*x,o[c][A]=o[A][c],o[A][l]=g*S+p*x,o[l][A]=o[A][l]}for(let A=0;A<t;A++){let S=a[A][c],x=a[A][l];a[A][c]=p*S-g*x,a[A][l]=g*S+p*x}}let u=[];for(let s=0;s<t;s++)u.push(o[s][s]);return{values:u,vectors:a}}function Aa(r,t=!0,e=!0){let n=Cr(r);if(!e)return n.s;if(!t){let[o,a]=r.shape,u=Math.min(o,a),s=D.zeros([o,u],"float64");for(let c=0;c<o;c++)for(let l=0;l<u;l++)s.set([c,l],Number(n.u.get(c,l)));let i=D.zeros([u,a],"float64");for(let c=0;c<u;c++)for(let l=0;l<a;l++)i.set([c,l],Number(n.vt.get(c,l)));return{u:s,s:n.s,vt:i}}return n}function ba(r){if(r.ndim!==2)throw new Error(`det: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape;if(t!==e)throw new Error(`det: matrix must be square, got ${t}x${e}`);let n=t;if(n===0)return 1;let o=r.data;if(n===1)return Number(o[0]);if(n===2)return Number(o[0])*Number(o[3])-Number(o[1])*Number(o[2]);let{lu:a,sign:u}=je(r),s=a.data,i=u;for(let c=0;c<n;c++)i*=s[c*n+c];return i}function je(r){let[t,e]=r.shape,n=t,o=e,a=D.zeros([n,o],"float64"),u=a.data,s=r.data;for(let l=0;l<n*o;l++)u[l]=Number(s[l]);let i=Array.from({length:n},(l,m)=>m),c=1;for(let l=0;l<Math.min(n,o);l++){let m=Math.abs(u[l*o+l]),y=l;for(let f=l+1;f<n;f++){let p=Math.abs(u[f*o+l]);p>m&&(m=p,y=f)}if(y!==l){for(let p=0;p<o;p++){let g=u[l*o+p];u[l*o+p]=u[y*o+p],u[y*o+p]=g}let f=i[l];i[l]=i[y],i[y]=f,c=-c}let d=u[l*o+l];if(Math.abs(d)>1e-15)for(let f=l+1;f<n;f++){let p=u[f*o+l]/d;u[f*o+l]=p;for(let g=l+1;g<o;g++)u[f*o+g]=u[f*o+g]-p*u[l*o+g]}}return{lu:a,piv:i,sign:c}}function kt(r){if(r.ndim!==2)throw new Error(`inv: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape;if(t!==e)throw new Error(`inv: matrix must be square, got ${t}x${e}`);let n=t,{lu:o,piv:a}=je(r),u=o.data,s=D.zeros([n,n],"float64"),i=s.data;for(let c=0;c<n;c++){let l=new Float64Array(n);for(let m=0;m<n;m++){let y=a[m]===c?1:0;for(let d=0;d<m;d++)y-=u[m*n+d]*l[d];l[m]=y}for(let m=n-1;m>=0;m--){let y=l[m];for(let f=m+1;f<n;f++)y-=u[m*n+f]*i[f*n+c];let d=u[m*n+m];if(Math.abs(d)<1e-15)throw new Error("inv: singular matrix");i[m*n+c]=y/d}}return s}function ia(r,t){let[e]=r.shape,n=e,{lu:o,piv:a}=je(r),u=o.data,s=t.data,i=new Float64Array(n);for(let y=0;y<n;y++)i[y]=Number(s[a[y]]);let c=new Float64Array(n);for(let y=0;y<n;y++){let d=i[y];for(let f=0;f<y;f++)d-=u[y*n+f]*c[f];c[y]=d}let l=D.zeros([n],"float64"),m=l.data;for(let y=n-1;y>=0;y--){let d=c[y];for(let p=y+1;p<n;p++)d-=u[y*n+p]*m[p];let f=u[y*n+y];if(Math.abs(f)<1e-15)throw new Error("solve: singular matrix");m[y]=d/f}return l}function ha(r,t){if(r.ndim!==2)throw new Error(`solve: coefficient matrix must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`solve: coefficient matrix must be square, got ${e}x${n}`);let o=e;if(t.ndim===1){if(t.shape[0]!==o)throw new Error(`solve: incompatible shapes (${e},${n}) and (${t.shape[0]},)`);return ia(r,t)}if(t.ndim===2){if(t.shape[0]!==o)throw new Error(`solve: incompatible shapes (${e},${n}) and (${t.shape[0]},${t.shape[1]})`);let a=t.shape[1],u=D.zeros([o,a],"float64");for(let s=0;s<a;s++){let i=D.zeros([o],"float64");for(let l=0;l<o;l++)i.set([l],Number(t.get(l,s)));let c=ia(r,i);for(let l=0;l<o;l++)u.set([l,s],Number(c.get(l)))}return u}throw new Error(`solve: b must be 1D or 2D, got ${t.ndim}D`)}function Sa(r,t,e=null){if(r.ndim!==2)throw new Error(`lstsq: coefficient matrix must be 2D, got ${r.ndim}D`);let[n,o]=r.shape,{u:a,s:u,vt:s}=Cr(r),i=Math.min(n,o),c=e??Math.max(n,o)*Number.EPSILON,m=Number(u.get(0))*c,y=0;for(let b=0;b<i;b++)Number(u.get(b))>m&&y++;let d=t.ndim===1?ir(t,[t.size,1]):t,f=d.shape[1];if(d.shape[0]!==n)throw new Error(`lstsq: incompatible shapes (${n},${o}) and (${t.shape.join(",")})`);let p=D.zeros([o,f],"float64");for(let b=0;b<f;b++){let A=new Array(n).fill(0);for(let S=0;S<n;S++)for(let x=0;x<n;x++)A[S]+=Number(a.get(x,S))*Number(d.get(x,b));for(let S=0;S<o;S++){let x=0;for(let w=0;w<i;w++){let N=Number(u.get(w));N>m&&(x+=Number(s.get(w,S))*A[w]/N)}p.set([S,b],x)}}let g;if(n>o){g=D.zeros([f],"float64");for(let b=0;b<f;b++){let A=0;for(let S=0;S<n;S++){let x=0;for(let N=0;N<o;N++)x+=Number(r.get(S,N))*Number(p.get(N,b));let w=x-Number(d.get(S,b));A+=w*w}g.set([b],A)}}else g=D.zeros([0],"float64");return{x:t.ndim===1?ir(p,[o]):p,residuals:g,rank:y,s:u}}function xa(r,t=2){if(r.ndim!==2)throw new Error(`cond: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(t===2||t===-2){let{s}=Cr(r),i=Math.min(e,n),c=Number(s.get(0)),l=Number(s.get(i-1));return t===2?l>0?c/l:1/0:c>0?l/c:0}if(e!==n)throw new Error(`cond: matrix must be square for p=${t}`);let o=kr(r,t),a=kt(r),u=kr(a,t);return o*u}function Da(r,t){if(r.ndim===0)return Number(r.get())!==0?1:0;if(r.ndim===1){for(let u=0;u<r.size;u++)if(Number(r.get(u))!==0)return 1;return 0}if(r.ndim!==2)throw new Error(`matrix_rank: input must be at most 2D, got ${r.ndim}D`);let{s:e}=Cr(r),n=Number(e.get(0)),o=t??n*Math.max(r.shape[0],r.shape[1])*Number.EPSILON,a=0;for(let u=0;u<e.size;u++)Number(e.get(u))>o&&a++;return a}function Na(r,t){if(r.ndim!==2)throw new Error(`matrix_power: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`matrix_power: matrix must be square, got ${e}x${n}`);let o=e;if(!Number.isInteger(t))throw new Error("matrix_power: exponent must be an integer");if(t===0){let c=D.zeros([o,o],"float64");for(let l=0;l<o;l++)c.set([l,l],1);return c}let a=r,u=t;t<0&&(a=kt(r),u=-t);let s=D.zeros([o,o],"float64");for(let c=0;c<o;c++)s.set([c,c],1);let i=D.zeros([o,o],"float64");for(let c=0;c<o;c++)for(let l=0;l<o;l++)i.set([c,l],Number(a.get(c,l)));for(;u>0;)u&1&&(s=Ar(s,i)),i=Ar(i,i),u>>=1;return s}function wa(r,t=1e-15){if(r.ndim!==2)throw new Error(`pinv: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape,{u:o,s:a,vt:u}=Cr(r),s=Math.min(e,n),c=Number(a.get(0))*t,l=D.zeros([n,e],"float64");for(let m=0;m<n;m++)for(let y=0;y<e;y++){let d=0;for(let f=0;f<s;f++){let p=Number(a.get(f));p>c&&(d+=Number(u.get(f,m))*Number(o.get(y,f))/p)}l.set([m,y],d)}return l}function Le(r){if(r.ndim!==2)throw new Error(`eig: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape;if(t!==e)throw new Error(`eig: matrix must be square, got ${t}x${e}`);let n=t,o=!0;r:for(let c=0;c<n;c++)for(let l=c+1;l<n;l++)if(Math.abs(Number(r.get(c,l))-Number(r.get(l,c)))>1e-10){o=!1;break r}if(o){let{values:c,vectors:l}=Pe(r),m=D.zeros([n],"float64"),y=D.zeros([n,n],"float64");for(let d=0;d<n;d++){m.set([d],c[d]);for(let f=0;f<n;f++)y.set([f,d],l[f][d])}return{w:m,v:y}}console.warn("numpy-ts: eig() called on non-symmetric matrix. Complex eigenvalues are not supported; results may be inaccurate. For symmetric matrices, use eigh() instead.");let{values:a,vectors:u}=xp(r),s=D.zeros([n],"float64"),i=D.zeros([n,n],"float64");for(let c=0;c<n;c++){s.set([c],a[c]);for(let l=0;l<n;l++)i.set([l,c],u[l][c])}return{w:s,v:i}}function xp(r){let t=r.shape[0],e=1e3,n=1e-10,o=D.zeros([t,t],"float64");for(let i=0;i<t;i++)for(let c=0;c<t;c++)o.set([i,c],Number(r.get(i,c)));let a=D.zeros([t,t],"float64");for(let i=0;i<t;i++)a.set([i,i],1);for(let i=0;i<e;i++){let c=0;for(let d=0;d<t;d++)for(let f=0;f<t;f++)d!==f&&(c+=Number(o.get(d,f))**2);if(Math.sqrt(c)<n*t)break;let l=Ve(o,"reduced"),m=l.q,y=l.r;o=Ar(y,m),a=Ar(a,m)}let u=[];for(let i=0;i<t;i++)u.push(Number(o.get(i,i)));let s=[];for(let i=0;i<t;i++){s.push([]);for(let c=0;c<t;c++)s[i].push(Number(a.get(i,c)))}return{values:u,vectors:s}}function We(r,t="L"){if(r.ndim!==2)throw new Error(`eigh: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`eigh: matrix must be square, got ${e}x${n}`);let o=e,a=D.zeros([o,o],"float64");for(let m=0;m<o;m++)for(let y=0;y<o;y++)t==="L"?m>=y&&(a.set([m,y],Number(r.get(m,y))),a.set([y,m],Number(r.get(m,y)))):y>=m&&(a.set([m,y],Number(r.get(m,y))),a.set([y,m],Number(r.get(m,y))));let{values:u,vectors:s}=Pe(a),i=Array.from({length:o},(m,y)=>y);i.sort((m,y)=>u[m]-u[y]);let c=D.zeros([o],"float64"),l=D.zeros([o,o],"float64");for(let m=0;m<o;m++){c.set([m],u[i[m]]);for(let y=0;y<o;y++)l.set([y,m],s[y][i[m]])}return{w:c,v:l}}function Ia(r){let{w:t}=Le(r);return t}function za(r,t="L"){let{w:e}=We(r,t);return e}var _a=W(()=>{"use strict";X();J();xr();$e()});function Fa(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=Math.sqrt(i*i+c*c),m=Math.sqrt((l+i)/2),y=(c>=0?1:-1)*Math.sqrt((l-i)/2);u[s*2]=m,u[s*2+1]=y}return a}return H(r,Math.sqrt,!1)}function Ma(r,t){if(typeof t=="number")return wp(r,t);let e=M(r.dtype),n=M(t.dtype);return e||n?Np(r,t):K(r,t,Math.pow,"power")}function Np(r,t){let e=M(r.dtype),n=M(t.dtype),o=r.dtype==="complex128"||t.dtype==="complex128"||t.dtype==="float64"?"complex128":"complex64",a=Array.from(r.shape),u=r.size,s=D.zeros(a,o),i=s.data;for(let c=0;c<u;c++){let l,m;if(e){let S=r.data;l=S[c*2],m=S[c*2+1]}else l=Number(r.iget(c)),m=0;let y,d;if(n){let S=t.data;y=S[c*2],d=S[c*2+1]}else y=Number(t.iget(c)),d=0;let f=Math.sqrt(l*l+m*m),p=Math.atan2(m,l),g=Math.log(f),h=y*g-d*p,b=y*p+d*g,A=Math.exp(h);i[c*2]=A*Math.cos(b),i[c*2+1]=A*Math.sin(b)}return s}function wp(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size;if(M(e)){let m=D.zeros(n,e),y=o,d=m.data;for(let f=0;f<a;f++){let p=y[f*2],g=y[f*2+1],h=Math.sqrt(p*p+g*g),b=Math.atan2(g,p),A=Math.pow(h,t),S=b*t;d[f*2]=A*Math.cos(S),d[f*2+1]=A*Math.sin(S)}return m}let i=e!=="float32"&&e!=="float64"&&(t<0||!Number.isInteger(t))?"float64":e,c=D.zeros(n,i),l=c.data;if(B(e))if(B(i)&&Number.isInteger(t)&&t>=0){let m=o,y=l;for(let d=0;d<a;d++)y[d]=m[d]**BigInt(t)}else for(let m=0;m<a;m++)l[m]=Math.pow(Number(o[m]),t);else for(let m=0;m<a;m++)l[m]=Math.pow(Number(o[m]),t);return c}function Ba(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=Math.exp(i);u[s*2]=l*Math.cos(c),u[s*2+1]=l*Math.sin(c)}return a}return H(r,Math.exp,!1)}function va(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=Math.LN2,u=D.zeros(e,t),s=u.data;for(let i=0;i<n;i++){let c=o[i*2],l=o[i*2+1],m=Math.exp(c*a),y=l*a;s[i*2]=m*Math.cos(y),s[i*2+1]=m*Math.sin(y)}return u}return H(r,e=>Math.pow(2,e),!1)}function Ta(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=Math.exp(i);u[s*2]=l*Math.cos(c)-1,u[s*2+1]=l*Math.sin(c)}return a}return H(r,Math.expm1,!1)}function Ea(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=Math.sqrt(i*i+c*c),m=Math.atan2(c,i);u[s*2]=Math.log(l),u[s*2+1]=m}return a}return H(r,Math.log,!1)}function Oa(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=1/Math.LN2,u=D.zeros(e,t),s=u.data;for(let i=0;i<n;i++){let c=o[i*2],l=o[i*2+1],m=Math.sqrt(c*c+l*l),y=Math.atan2(l,c);s[i*2]=Math.log(m)*a,s[i*2+1]=y*a}return u}return H(r,Math.log2,!1)}function Ca(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=1/Math.LN10,u=D.zeros(e,t),s=u.data;for(let i=0;i<n;i++){let c=o[i*2],l=o[i*2+1],m=Math.sqrt(c*c+l*l),y=Math.atan2(l,c);s[i*2]=Math.log(m)*a,s[i*2+1]=y*a}return u}return H(r,Math.log10,!1)}function Ua(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=1+i,m=Math.sqrt(l*l+c*c),y=Math.atan2(c,l);u[s*2]=Math.log(m),u[s*2+1]=y}return a}return H(r,Math.log1p,!1)}function $a(r,t){return q(r.dtype,"logaddexp","logaddexp is not supported for complex numbers."),typeof t!="number"&&q(t.dtype,"logaddexp","logaddexp is not supported for complex numbers."),typeof t=="number"?zp(r,t):Ip(r,t)}function Ip(r,t){let e=Er(r.shape,t.shape),n=e.reduce((c,l)=>c*l,1),o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",s=D.zeros(e,u),i=s.data;for(let c=0;c<n;c++){let l=(B(o),Number(r.iget(c))),m=(B(a),Number(t.iget(c))),y=Math.max(l,m),d=Math.min(l,m);i[c]=y+Math.log1p(Math.exp(d-y))}return s}function zp(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",u=D.zeros(n,a),s=u.data;for(let i=0;i<o;i++){let c=(B(e),Number(r.data[i])),l=Math.max(c,t),m=Math.min(c,t);s[i]=l+Math.log1p(Math.exp(m-l))}return u}function Ra(r,t){return q(r.dtype,"logaddexp2","logaddexp2 is not supported for complex numbers."),typeof t!="number"&&q(t.dtype,"logaddexp2","logaddexp2 is not supported for complex numbers."),typeof t=="number"?Fp(r,t):_p(r,t)}function _p(r,t){let e=Er(r.shape,t.shape),n=e.reduce((l,m)=>l*m,1),o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",s=D.zeros(e,u),i=s.data,c=Math.LOG2E;for(let l=0;l<n;l++){let m=(B(o),Number(r.iget(l))),y=(B(a),Number(t.iget(l))),d=Math.max(m,y),f=Math.min(m,y);i[l]=d+Math.log1p(Math.pow(2,f-d))*c}return s}function Fp(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",u=D.zeros(n,a),s=u.data,i=Math.LOG2E;for(let c=0;c<o;c++){let l=(B(e),Number(r.data[c])),m=Math.max(l,t),y=Math.min(l,t);s[c]=m+Math.log1p(Math.pow(2,y-m))*i}return u}var ka=W(()=>{"use strict";X();Mr();J()});function qa(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1];u[s*2]=Math.sin(i)*Math.cosh(c),u[s*2+1]=Math.cos(i)*Math.sinh(c)}return a}return H(r,Math.sin,!1)}function Va(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1];u[s*2]=Math.cos(i)*Math.cosh(c),u[s*2+1]=-Math.sin(i)*Math.sinh(c)}return a}return H(r,Math.cos,!1)}function Pa(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=Math.cos(2*i)+Math.cosh(2*c);u[s*2]=Math.sin(2*i)/l,u[s*2+1]=Math.sinh(2*c)/l}return a}return H(r,Math.tan,!1)}function ja(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=-c,m=i,y=i*i-c*c,d=2*i*c,f=1-y,p=-d,g=Math.sqrt(f*f+p*p),h=Math.sqrt((g+f)/2),b=(p>=0?1:-1)*Math.sqrt((g-f)/2),A=l+h,S=m+b,x=Math.sqrt(A*A+S*S),w=Math.log(x),I=Math.atan2(S,A),z=-w;Math.abs(c)<1e-15&&i>1&&(z=-z),u[s*2]=I,u[s*2+1]=z}return a}return H(r,Math.asin,!1)}function La(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=i*i-c*c,m=2*i*c,y=1-l,d=-m,f=Math.sqrt(y*y+d*d),p=Math.sqrt((f+y)/2),h=-((d>=0?1:-1)*Math.sqrt((f-y)/2)),b=p,A=i+h,S=c+b,x=Math.sqrt(A*A+S*S),w=Math.log(x),I=Math.atan2(S,A),z=-w;Math.abs(c)<1e-15&&i>1&&(z=-z),u[s*2]=I,u[s*2+1]=z}return a}return H(r,Math.acos,!1)}function Wa(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],l=-o[s*2+1],m=i,y=1-l,d=-m,f=1+l,p=m,g=f*f+p*p,h=(y*f+d*p)/g,b=(d*f-y*p)/g,A=Math.sqrt(h*h+b*b),S=Math.log(A),x=Math.atan2(b,h);u[s*2]=-x/2,u[s*2+1]=S/2}return a}return H(r,Math.atan,!1)}function Ga(r,t){return q(r.dtype,"arctan2","arctan2 is only defined for real numbers."),typeof t!="number"&&q(t.dtype,"arctan2","arctan2 is only defined for real numbers."),typeof t=="number"?vp(r,t):Bp(r,t)}function Bp(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",s=D.zeros(e,u),i=s.data;for(let c=0;c<n;c++){let l=(B(o),Number(r.data[c])),m=(B(a),Number(t.data[c]));i[c]=Math.atan2(l,m)}return s}function vp(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=e==="float32"?"float32":"float64",s=D.zeros(n,u),i=s.data;if(B(e))for(let c=0;c<a;c++)i[c]=Math.atan2(Number(o[c]),t);else for(let c=0;c<a;c++)i[c]=Math.atan2(Number(o[c]),t);return s}function Za(r,t){return q(r.dtype,"hypot","hypot is only defined for real numbers."),typeof t!="number"&&q(t.dtype,"hypot","hypot is only defined for real numbers."),typeof t=="number"?Ep(r,t):Tp(r,t)}function Tp(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",s=D.zeros(e,u),i=s.data;for(let c=0;c<n;c++){let l=(B(o),Number(r.data[c])),m=(B(a),Number(t.data[c]));i[c]=Math.hypot(l,m)}return s}function Ep(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=e==="float32"?"float32":"float64",s=D.zeros(n,u),i=s.data;if(B(e))for(let c=0;c<a;c++)i[c]=Math.hypot(Number(o[c]),t);else for(let c=0;c<a;c++)i[c]=Math.hypot(Number(o[c]),t);return s}function Ya(r){q(r.dtype,"degrees","degrees is only defined for real numbers.");let t=180/Math.PI;return H(r,e=>e*t,!1)}function Ha(r){q(r.dtype,"radians","radians is only defined for real numbers.");let t=Math.PI/180;return H(r,e=>e*t,!1)}var Ja=W(()=>{"use strict";X();Mr();J()});function Xa(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1];u[s*2]=Math.sinh(i)*Math.cos(c),u[s*2+1]=Math.cosh(i)*Math.sin(c)}return a}return H(r,Math.sinh,!1)}function Qa(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1];u[s*2]=Math.cosh(i)*Math.cos(c),u[s*2+1]=Math.sinh(i)*Math.sin(c)}return a}return H(r,Math.cosh,!1)}function Ka(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=Math.cosh(2*i)+Math.cos(2*c);u[s*2]=Math.sinh(2*i)/l,u[s*2+1]=Math.sin(2*c)/l}return a}return H(r,Math.tanh,!1)}function rs(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=i*i-c*c,m=2*i*c,y=l+1,d=m,f=Math.sqrt(y*y+d*d),p=Math.sqrt((f+y)/2),g=(d>=0?1:-1)*Math.sqrt((f-y)/2),h=i+p,b=c+g,A=Math.sqrt(h*h+b*b);u[s*2]=Math.log(A),u[s*2+1]=Math.atan2(b,h)}return a}return H(r,Math.asinh,!1)}function ts(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=i*i-c*c,m=2*i*c,y=l-1,d=m,f=Math.sqrt(y*y+d*d),p=Math.sqrt((f+y)/2),g=(d>=0?1:-1)*Math.sqrt((f-y)/2),h=i+p,b=c+g,A=Math.sqrt(h*h+b*b),S=Math.log(A),x=Math.atan2(b,h);Math.abs(c)<1e-15&&i<1&&(x=-x),u[s*2]=S,u[s*2+1]=x}return a}return H(r,Math.acosh,!1)}function es(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=1+i,m=c,y=1-i,d=-c,f=y*y+d*d,p=(l*y+m*d)/f,g=(m*y-l*d)/f,h=Math.sqrt(p*p+g*g),b=Math.log(h),A=Math.atan2(g,p);u[s*2]=b/2,u[s*2+1]=A/2}return a}return H(r,Math.atanh,!1)}var ns=W(()=>{"use strict";X();Mr();J()});function qt(r,t){let e=r.shape,n=e.length,o=t.length;if(o<n)throw new Error("input operand has more dimensions than allowed by the axis remapping");let a=gr([Array.from(e),t]);if(a===null)throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${t.join(",")})`);for(let u=0;u<o;u++)if(a[u]!==t[u])throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${t.join(",")})`);return pr(r,t)}function os(r){if(r.length===0)return[];if(r.length===1)return[r[0]];let t=r.map(n=>Array.from(n.shape)),e=gr(t);if(e===null)throw new Error(`operands could not be broadcast together with shapes ${t.map(n=>`(${n.join(",")})`).join(" ")}`);return r.map(n=>pr(n,e))}function as(r,t,e){let n=r.shape,o=n.length,a=r.dtype;if(e===void 0){let f=r.size;for(let b of t){let A=b<0?f+b:b;if(A<0||A>=f)throw new Error(`index ${b} is out of bounds for axis 0 with size ${f}`)}let p=t.length,g=j(a);if(!g)throw new Error(`Cannot take from array with dtype ${a}`);let h=new g(p);for(let b=0;b<p;b++){let A=t[b];A<0&&(A=f+A);let S=r.iget(A);B(a),h[b]=S}return D.fromData(h,[p],a)}let u=e<0?o+e:e;if(u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=n[u];for(let f of t){let p=f<0?s+f:f;if(p<0||p>=s)throw new Error(`index ${f} is out of bounds for axis ${u} with size ${s}`)}let i=Array.from(n);i[u]=t.length;let c=i.reduce((f,p)=>f*p,1),l=j(a);if(!l)throw new Error(`Cannot take from array with dtype ${a}`);let m=new l(c),y=ur(i),d=new Array(o).fill(0);for(let f=0;f<c;f++){let p=[...d],g=d[u],h=t[g];h<0&&(h=s+h),p[u]=h;let b=r.get(...p),A=0;for(let S=0;S<o;S++)A+=d[S]*y[S];B(a),m[A]=b;for(let S=o-1;S>=0&&(d[S]++,!(d[S]<i[S]));S--)d[S]=0}return D.fromData(m,i,a)}function ss(r,t,e){let n=r.size,o=r.dtype,a;if(typeof e=="number"||typeof e=="bigint")a=new Array(t.length).fill(e);else{a=[];for(let u=0;u<e.size;u++){let s=e.iget(u);a.push(s instanceof O?s.re:s)}if(a.length===1)a=new Array(t.length).fill(a[0]);else if(a.length!==t.length){let u=[...a];a=[];for(let s=0;s<t.length;s++)a.push(u[s%u.length])}}for(let u=0;u<t.length;u++){let s=t[u];if(s<0&&(s=n+s),s<0||s>=n)throw new Error(`index ${t[u]} is out of bounds for axis 0 with size ${n}`);let i=a[u];B(o)?typeof i!="bigint"&&(i=BigInt(Math.round(Number(i)))):typeof i=="bigint"&&(i=Number(i)),r.iset(s,i)}}function is(r,t){if(t.length===0)throw new Error("choices cannot be empty");let e=r.shape,n=t.length,o=t[0].dtype,a=t.map(y=>Array.from(y.shape));a.unshift(Array.from(e));let u=gr(a);if(u===null)throw new Error("operands could not be broadcast together");let s=pr(r,u),i=t.map(y=>pr(y,u)),c=u.reduce((y,d)=>y*d,1),l=j(o);if(!l)throw new Error(`Cannot choose with dtype ${o}`);let m=new l(c);for(let y=0;y<c;y++){let d=Number(s.iget(y));if(d<0||d>=n)throw new Error(`index ${d} is out of bounds for axis 0 with size ${n}`);let f=i[d].iget(y);B(o),m[y]=f}return D.fromData(m,u,o)}function us(r,t,e=!1){if(r.ndim!==t.ndim)return!1;for(let o=0;o<r.ndim;o++)if(r.shape[o]!==t.shape[o])return!1;let n=r.size;for(let o=0;o<n;o++){let a=r.iget(o),u=t.iget(o);if(e){let s=typeof a=="number"&&Number.isNaN(a),i=typeof u=="number"&&Number.isNaN(u);if(s&&i)continue}if(a!==u)return!1}return!0}function cs(r,t,e){let n=r.shape,o=n.length,a=r.dtype,u=e<0?o+e:e;if(u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=t.shape;if(s.length!==o)throw new Error(`indices and arr must have the same number of dimensions, got ${s.length} vs ${o}`);for(let p=0;p<o;p++)if(p!==u&&s[p]!==n[p]&&s[p]!==1&&n[p]!==1)throw new Error(`index ${s[p]} is out of bounds for size ${n[p]} in dimension ${p}`);let i=Array.from(s),c=i.reduce((p,g)=>p*g,1),l=j(a);if(!l)throw new Error(`Cannot take_along_axis with dtype ${a}`);let m=new l(c),y=ur(n),d=ur(s),f=n[u];for(let p=0;p<c;p++){let g=new Array(o),h=p;for(let N=o-1;N>=0;N--)g[N]=h%i[N],h=Math.floor(h/i[N]);let b=0;for(let N=0;N<o;N++){let I=s[N]===1?0:g[N];b+=I*d[N]}let A=Number(t.iget(b));if(A<0&&(A=f+A),A<0||A>=f)throw new Error(`index ${A} is out of bounds for axis ${u} with size ${f}`);let S=[...g];S[u]=A;let x=0;for(let N=0;N<o;N++){let I=n[N]===1?0:S[N];x+=I*y[N]}let w=r.iget(x);B(a),m[p]=w}return D.fromData(m,i,a)}function ls(r,t,e,n){let o=r.shape,a=o.length,u=r.dtype,s=n<0?a+n:n;if(s<0||s>=a)throw new Error(`axis ${n} is out of bounds for array of dimension ${a}`);let i=t.shape,c=e.shape;if(i.length!==a||c.length!==a)throw new Error("indices, arr, and values must have same ndim");let l=o[s],m=ur(o),y=ur(i),d=ur(c),f=i.reduce((p,g)=>p*g,1);for(let p=0;p<f;p++){let g=new Array(a),h=p;for(let I=a-1;I>=0;I--)g[I]=h%i[I],h=Math.floor(h/i[I]);let b=0;for(let I=0;I<a;I++)b+=g[I]*y[I];let A=Number(t.iget(b));if(A<0&&(A=l+A),A<0||A>=l)throw new Error(`index ${A} is out of bounds for axis ${s} with size ${l}`);let S=0;for(let I=0;I<a;I++){let z=c[I]===1?0:g[I];S+=z*d[I]}let x=e.iget(S),w=[...g];w[s]=A;let N=0;for(let I=0;I<a;I++)N+=w[I]*m[I];B(u)?typeof x!="bigint"&&(x=BigInt(Math.round(Number(x)))):typeof x=="bigint"&&(x=Number(x)),r.iset(N,x)}}function fs(r,t,e){let n=r.size,o=r.dtype,a;if(typeof e=="number"||typeof e=="bigint")a=[e];else{a=[];for(let s=0;s<e.size;s++){let i=e.iget(s);a.push(i instanceof O?i.re:i)}}let u=0;for(let s=0;s<n;s++)if(t.iget(s)){let c=a[u%a.length];B(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),r.iset(s,c),u++}}function Ge(r,t,e){let n=t.shape,o=n.length,a=t.dtype,u=t.data,s=B(a);if(e===void 0){let b=0,A=Math.min(r.size,t.size);for(let N=0;N<A;N++)r.iget(N)&&b++;let S=j(a);if(!S)throw new Error(`Cannot compress with dtype ${a}`);let x=new S(b),w=0;for(let N=0;N<A;N++)r.iget(N)&&(x[w]=u[N],w++);return D.fromData(x,[b],a)}let i=e<0?o+e:e;if(i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let c=n[i],l=Math.min(r.size,c),m=[];for(let b=0;b<l;b++)r.iget(b)&&m.push(b);let y=m.length,d=[...n];d[i]=y;let f=d.reduce((b,A)=>b*A,1),p=j(a);if(!p)throw new Error(`Cannot compress with dtype ${a}`);let g=new p(f),h=ur(n);if(i===0){let b=h[0],A=n.slice(1).reduce((x,w)=>x*w,1),S=0;for(let x=0;x<y;x++){let N=m[x]*b;if(s){let I=u,z=g;for(let F=0;F<A;F++)z[S++]=I[N+F]}else{let I=u,z=g;for(let F=0;F<A;F++)z[S++]=I[N+F]}}}else{let b=n.slice(0,i).reduce((x,w)=>x*w,1),A=n.slice(i+1).reduce((x,w)=>x*w,1),S=0;for(let x=0;x<b;x++)for(let w=0;w<y;w++){let N=m[w],I=0,z=x;for(let F=i-1;F>=0;F--){let _=z%n[F];z=Math.floor(z/n[F]),I+=_*h[F]}if(I+=N*h[i],s){let F=u,_=g;for(let T=0;T<A;T++)_[S++]=F[I+T]}else{let F=u,_=g;for(let T=0;T<A;T++)_[S++]=F[I+T]}}}return D.fromData(g,d,a)}function ms(r,t,e=0){if(r.length!==t.length)throw new Error("condlist and choicelist must have same length");if(r.length===0)throw new Error("condlist and choicelist cannot be empty");let n=[...r.map(y=>Array.from(y.shape)),...t.map(y=>Array.from(y.shape))],o=gr(n);if(o===null)throw new Error("condlist and choicelist arrays could not be broadcast together");let a=t[0].dtype,u=o.reduce((y,d)=>y*d,1),s=j(a);if(!s)throw new Error(`Cannot select with dtype ${a}`);let i=e;B(a)?i=typeof e=="bigint"?e:BigInt(e):i=typeof e=="bigint"?Number(e):e;let c=new s(u);for(let y=0;y<u;y++)B(a),c[y]=i;let l=r.map(y=>pr(y,o)),m=t.map(y=>pr(y,o));for(let y=0;y<u;y++)for(let d=0;d<r.length;d++)if(l[d].iget(y)){let f=m[d].iget(y);B(a),c[y]=f;break}return D.fromData(c,o,a)}function ps(r,t,e){let n=r.size,o=r.dtype,a=[];for(let s=0;s<e.size;s++){let i=e.iget(s);a.push(i instanceof O?i.re:i)}if(a.length===0)return;let u=0;for(let s=0;s<n;s++)if(t.iget(s)){let c=a[u%a.length];B(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),r.iset(s,c),u++}}function Ze(r,t=2){if(t<1)throw new Error("ndim must be at least 1");let e=new Int32Array(r);for(let o=0;o<r;o++)e[o]=o;let n=[];for(let o=0;o<t;o++)n.push(D.fromData(new Int32Array(e),[r],"int32"));return n}function ys(r){let t=r.shape,e=t.length;if(e<2)throw new Error("array must be at least 2-D");let n=t[0];for(let o=1;o<e;o++)if(t[o]!==n)throw new Error("All dimensions of input must be equal");return Ze(n,e)}function Ye(r,t=0,e){let n=e??r,o=[],a=[];for(let u=0;u<r;u++)for(let s=0;s<=Math.min(u+t,n-1);s++)s>=0&&(o.push(u),a.push(s));return[D.fromData(new Int32Array(o),[o.length],"int32"),D.fromData(new Int32Array(a),[a.length],"int32")]}function ds(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return Ye(e[0],t,e[1])}function He(r,t=0,e){let n=e??r,o=[],a=[];for(let u=0;u<r;u++)for(let s=Math.max(u+t,0);s<n;s++)o.push(u),a.push(s);return[D.fromData(new Int32Array(o),[o.length],"int32"),D.fromData(new Int32Array(a),[a.length],"int32")]}function gs(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return He(e[0],t,e[1])}function As(r,t,e=0){let n=t(r,e),o=n.shape;if(o.length!==2||o[0]!==r||o[1]!==r)throw new Error("mask_func must return n x n array");let a=[],u=[];for(let s=0;s<r;s++)for(let i=0;i<r;i++)n.get(s,i)&&(a.push(s),u.push(i));return[D.fromData(new Int32Array(a),[a.length],"int32"),D.fromData(new Int32Array(u),[u.length],"int32")]}function bs(r,t="int32"){let e=r.length,n=[e,...r],o=n.reduce((i,c)=>i*c,1),a=j(t);if(!a)throw new Error(`Cannot create indices with dtype ${t}`);let u=new a(o),s=r.reduce((i,c)=>i*c,1);for(let i=0;i<e;i++){let c=i*s;for(let l=0;l<s;l++){let m=new Array(e),y=l;for(let f=e-1;f>=0;f--)m[f]=y%r[f],y=Math.floor(y/r[f]);let d=m[i];t==="int64"?u[c+l]=BigInt(d):u[c+l]=d}}return D.fromData(u,n,t)}function hs(...r){let t=r.length,e=[];for(let n=0;n<t;n++){let o=r[n],a=o.size,u=o.dtype,s=new Array(t).fill(1);s[n]=a;let i=j(u);if(!i)throw new Error(`Cannot create ix_ with dtype ${u}`);let c=new i(a);for(let l=0;l<a;l++){let m=o.iget(l);B(u),c[l]=m}e.push(D.fromData(c,s,u))}return e}function Ss(r,t,e="raise"){if(r.length!==t.length)throw new Error("multi_index length must equal dims length");if(r.length===0)throw new Error("multi_index cannot be empty");let n=r[0].size,o=t.length,a=new Int32Array(n),u=new Array(o),s=1;for(let i=o-1;i>=0;i--)u[i]=s,s*=t[i];for(let i=0;i<n;i++){let c=0;for(let l=0;l<o;l++){let m=Number(r[l].iget(i)),y=t[l];if(e==="wrap")m=(m%y+y)%y;else if(e==="clip")m=Math.max(0,Math.min(m,y-1));else if(m<0||m>=y)throw new Error(`index ${m} is out of bounds for axis ${l} with size ${y}`);c+=m*u[l]}a[i]=c}return D.fromData(a,[n],"int32")}function xs(r,t,e="C"){let n=t.length,o,a;if(typeof r=="number")o=[r],a=[];else{o=[];for(let l=0;l<r.size;l++)o.push(Number(r.iget(l)));a=Array.from(r.shape)}let u=o.length,s=t.reduce((l,m)=>l*m,1),i=new Array(n);if(e==="C"){let l=1;for(let m=n-1;m>=0;m--)i[m]=l,l*=t[m]}else{let l=1;for(let m=0;m<n;m++)i[m]=l,l*=t[m]}let c=[];for(let l=0;l<n;l++){let m=new Int32Array(u);c.push(D.fromData(m,a.length?a:[1],"int32"))}for(let l=0;l<u;l++){let m=o[l];if(m<0||m>=s)throw new Error(`index ${m} is out of bounds for array with size ${s}`);if(e==="C")for(let y=0;y<n;y++){let d=Math.floor(m/i[y]);m=m%i[y],c[y].data[l]=d%t[y]}else for(let y=n-1;y>=0;y--){let d=Math.floor(m/i[y]);m=m%i[y],c[y].data[l]=d%t[y]}}return typeof r=="number"?c.map(l=>{let m=l.iget(0);return D.fromData(new Int32Array([Number(m)]),[],"int32")}):c}function Ds(r,t,e=!1){let n=r.shape,o=n.length;if(o<2)throw new Error("array must be at least 2-d");let a;if(o===2)a=n[1]+1;else{a=1;for(let c=1;c<o;c++){let l=1;for(let m=c;m<o;m++)l*=n[m];a+=l}}let u=r.data,s=r.size,i=Math.min(...n);if(e&&o===2&&(i=Math.max(n[0],n[1])),typeof t=="number")for(let c=0;c<i&&c*a<s;c++){let l=c*a;if(l<s)u[l]=t;else break}else{let c=t.data,l=t.size;for(let m=0;m<i&&m*a<s;m++){let y=m*a;if(y<s)u[y]=c[m%l];else break}}}var Ns=W(()=>{"use strict";X();J();Bt();xr()});function br(r,t){if(!ro(r)&&r!=="bool")throw new TypeError(`ufunc '${t}' not supported for the input types, and the inputs could not be safely coerced to any supported types`)}function pt(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function zs(r,t){return br(r.dtype,"bitwise_and"),typeof t=="number"?Rp(r,t):(br(t.dtype,"bitwise_and"),pt(r,t)?$p(r,t):K(r,t,(e,n)=>e&n,"bitwise_and"))}function $p(r,t){let e=Z(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(B(e)){let i=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),y=typeof u[l]=="bigint"?u[l]:BigInt(Math.round(Number(u[l])));i[l]=m&y}else{let l=a,m=u;for(let y=0;y<o;y++)i[y]=l[y]&m[y]}}else for(let i=0;i<o;i++)s[i]=a[i]&u[i];return n}function Rp(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=D.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]&l}else for(let i=0;i<a;i++)s[i]=o[i]&t;return u}function _s(r,t){return br(r.dtype,"bitwise_or"),typeof t=="number"?qp(r,t):(br(t.dtype,"bitwise_or"),pt(r,t)?kp(r,t):K(r,t,(e,n)=>e|n,"bitwise_or"))}function kp(r,t){let e=Z(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(B(e)){let i=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),y=typeof u[l]=="bigint"?u[l]:BigInt(Math.round(Number(u[l])));i[l]=m|y}else{let l=a,m=u;for(let y=0;y<o;y++)i[y]=l[y]|m[y]}}else for(let i=0;i<o;i++)s[i]=a[i]|u[i];return n}function qp(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=D.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]|l}else for(let i=0;i<a;i++)s[i]=o[i]|t;return u}function Fs(r,t){return br(r.dtype,"bitwise_xor"),typeof t=="number"?Pp(r,t):(br(t.dtype,"bitwise_xor"),pt(r,t)?Vp(r,t):K(r,t,(e,n)=>e^n,"bitwise_xor"))}function Vp(r,t){let e=Z(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(B(e)){let i=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),y=typeof u[l]=="bigint"?u[l]:BigInt(Math.round(Number(u[l])));i[l]=m^y}else{let l=a,m=u;for(let y=0;y<o;y++)i[y]=l[y]^m[y]}}else for(let i=0;i<o;i++)s[i]=a[i]^u[i];return n}function Pp(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=D.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]^l}else for(let i=0;i<a;i++)s[i]=o[i]^t;return u}function Je(r){br(r.dtype,"bitwise_not");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=D.zeros(e,t),u=a.data;if(B(t)){let s=n,i=u;for(let c=0;c<o;c++)i[c]=~s[c]}else for(let s=0;s<o;s++)u[s]=~n[s];return a}function Ms(r){return Je(r)}function Bs(r,t){if(br(r.dtype,"left_shift"),typeof t=="number")return ws(r,t);if(br(t.dtype,"left_shift"),t.size===1||t.ndim===1&&t.shape[0]===1){let e=B(t.dtype)?Number(t.data[0]):t.data[0];return ws(r,e)}return pt(r,t)?jp(r,t):K(r,t,(e,n)=>e<<n,"left_shift")}function jp(r,t){let e=Z(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(B(e)){let i=s;for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?a[c]:BigInt(Math.round(Number(a[c]))),m=typeof u[c]=="bigint"?u[c]:BigInt(Math.round(Number(u[c])));i[c]=l<<m}}else for(let i=0;i<o;i++)s[i]=a[i]<<u[i];return n}function ws(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=D.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]<<l}else for(let i=0;i<a;i++)s[i]=o[i]<<t;return u}function vs(r,t){if(br(r.dtype,"right_shift"),typeof t=="number")return Is(r,t);if(br(t.dtype,"right_shift"),t.size===1||t.ndim===1&&t.shape[0]===1){let e=B(t.dtype)?Number(t.data[0]):t.data[0];return Is(r,e)}return pt(r,t)?Lp(r,t):K(r,t,(e,n)=>e>>n,"right_shift")}function Lp(r,t){let e=Z(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(B(e)){let i=s;for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?a[c]:BigInt(Math.round(Number(a[c]))),m=typeof u[c]=="bigint"?u[c]:BigInt(Math.round(Number(u[c])));i[c]=l>>m}}else for(let i=0;i<o;i++)s[i]=a[i]>>u[i];return n}function Is(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=D.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]>>l}else for(let i=0;i<a;i++)s[i]=o[i]>>t;return u}function Ts(r,t=-1,e="big"){let n=Array.from(r.shape),o=n.length;if(t<0&&(t=o+t),t<0||t>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let a=n[t],u=Math.ceil(a/8),s=[...n];s[t]=u;let i=D.zeros(s,"uint8"),c=i.data;if(o===1){for(let g=0;g<u;g++){let h=0;for(let b=0;b<8;b++){let A=g*8+b;if(A<a){let S=Number(r.data[A])!==0?1:0;e==="big"?h|=S<<7-b:h|=S<<b}}c[g]=h}return i}let l=n.slice(0,t),m=n.slice(t+1),y=l.reduce((g,h)=>g*h,1),d=m.reduce((g,h)=>g*h,1),f=Vt(n),p=Vt(s);for(let g=0;g<y;g++)for(let h=0;h<d;h++)for(let b=0;b<u;b++){let A=0;for(let N=0;N<8;N++){let I=b*8+N;if(I<a){let z=0,F=g;for(let E=0;E<t;E++){let C=E<t-1?l.slice(E+1).reduce((V,R)=>V*R,1):1,k=Math.floor(F/C);F%=C,z+=k*f[E]}z+=I*f[t];let _=h;for(let E=t+1;E<o;E++){let C=E<o-1?m.slice(E-t).reduce((V,R)=>V*R,1):1,k=Math.floor(_/C);_%=C,z+=k*f[E]}let T=Number(r.data[z])!==0?1:0;e==="big"?A|=T<<7-N:A|=T<<N}}let S=0,x=g;for(let N=0;N<t;N++){let I=N<t-1?l.slice(N+1).reduce((F,_)=>F*_,1):1,z=Math.floor(x/I);x%=I,S+=z*p[N]}S+=b*p[t];let w=h;for(let N=t+1;N<o;N++){let I=N<o-1?m.slice(N-t).reduce((F,_)=>F*_,1):1,z=Math.floor(w/I);w%=I,S+=z*p[N]}c[S]=A}return i}function Es(r,t=-1,e=-1,n="big"){if(r.dtype!=="uint8")throw new TypeError("Expected an input array of unsigned byte data type");let o=Array.from(r.shape),a=o.length;if(t<0&&(t=a+t),t<0||t>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let u=o[t],s=u*8;e>=0&&(s=e);let i=[...o];i[t]=s;let c=D.zeros(i,"uint8"),l=c.data;if(a===1){for(let h=0;h<u;h++){let b=Number(r.data[h]);for(let A=0;A<8;A++){let S=h*8+A;if(S>=s)break;n==="big"?l[S]=b>>7-A&1:l[S]=b>>A&1}}return c}let m=o.slice(0,t),y=o.slice(t+1),d=m.reduce((h,b)=>h*b,1),f=y.reduce((h,b)=>h*b,1),p=Vt(o),g=Vt(i);for(let h=0;h<d;h++)for(let b=0;b<f;b++)for(let A=0;A<u;A++){let S=0,x=h;for(let I=0;I<t;I++){let z=I<t-1?m.slice(I+1).reduce((_,T)=>_*T,1):1,F=Math.floor(x/z);x%=z,S+=F*p[I]}S+=A*p[t];let w=b;for(let I=t+1;I<a;I++){let z=I<a-1?y.slice(I-t).reduce((_,T)=>_*T,1):1,F=Math.floor(w/z);w%=z,S+=F*p[I]}let N=Number(r.data[S]);for(let I=0;I<8;I++){let z=A*8+I;if(z>=s)break;let F=0;x=h;for(let _=0;_<t;_++){let T=_<t-1?m.slice(_+1).reduce((C,k)=>C*k,1):1,E=Math.floor(x/T);x%=T,F+=E*g[_]}F+=z*g[t],w=b;for(let _=t+1;_<a;_++){let T=_<a-1?y.slice(_-t).reduce((C,k)=>C*k,1):1,E=Math.floor(w/T);w%=T,F+=E*g[_]}n==="big"?l[F]=N>>7-I&1:l[F]=N>>I&1}}return c}function Vt(r){let t=r.length,e=new Array(t),n=1;for(let o=t-1;o>=0;o--)e[o]=n,n*=r[o];return e}var Os=W(()=>{"use strict";X();J();Mr()});function Kr(r){return r!==0&&r!==0n}function Dr(r,t){let e=r[t*2],n=r[t*2+1];return e!==0||n!==0}function dt(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function Us(r,t){return typeof t=="number"?Zp(r,t):dt(r,t)?Gp(r,t):yr(r,t,(e,n)=>Kr(e)&&Kr(n))}function Gp(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.size,u=B(r.dtype),s=B(t.dtype),i=M(r.dtype),c=M(t.dtype);if(i||c)for(let l=0;l<a;l++){let m=i?Dr(n,l):n[l]!==0,y=c?Dr(o,l):o[l]!==0;e[l]=m&&y?1:0}else if(u||s)for(let l=0;l<a;l++){let m=u?n[l]!==0n:n[l]!==0,y=s?o[l]!==0n:o[l]!==0;e[l]=m&&y?1:0}else for(let l=0;l<a;l++)e[l]=n[l]!==0&&o[l]!==0?1:0;return D.fromData(e,Array.from(r.shape),"bool")}function Zp(r,t){let e=new Uint8Array(r.size),n=r.data,o=t!==0,a=r.size;if(M(r.dtype)){let u=n;for(let s=0;s<a;s++)e[s]=Dr(u,s)&&o?1:0}else if(B(r.dtype)){let u=n;for(let s=0;s<a;s++)e[s]=u[s]!==0n&&o?1:0}else for(let u=0;u<a;u++)e[u]=n[u]!==0&&o?1:0;return D.fromData(e,Array.from(r.shape),"bool")}function $s(r,t){return typeof t=="number"?Hp(r,t):dt(r,t)?Yp(r,t):yr(r,t,(e,n)=>Kr(e)||Kr(n))}function Yp(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.size,u=B(r.dtype),s=B(t.dtype),i=M(r.dtype),c=M(t.dtype);if(i||c)for(let l=0;l<a;l++){let m=i?Dr(n,l):n[l]!==0,y=c?Dr(o,l):o[l]!==0;e[l]=m||y?1:0}else if(u||s)for(let l=0;l<a;l++){let m=u?n[l]!==0n:n[l]!==0,y=s?o[l]!==0n:o[l]!==0;e[l]=m||y?1:0}else for(let l=0;l<a;l++)e[l]=n[l]!==0||o[l]!==0?1:0;return D.fromData(e,Array.from(r.shape),"bool")}function Hp(r,t){let e=new Uint8Array(r.size),n=r.data,o=t!==0,a=r.size;if(M(r.dtype)){let u=n;for(let s=0;s<a;s++)e[s]=Dr(u,s)||o?1:0}else if(B(r.dtype)){let u=n;for(let s=0;s<a;s++)e[s]=u[s]!==0n||o?1:0}else for(let u=0;u<a;u++)e[u]=n[u]!==0||o?1:0;return D.fromData(e,Array.from(r.shape),"bool")}function Rs(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(M(r.dtype)){let o=e;for(let a=0;a<n;a++)t[a]=Dr(o,a)?0:1}else if(B(r.dtype)){let o=e;for(let a=0;a<n;a++)t[a]=o[a]===0n?1:0}else for(let o=0;o<n;o++)t[o]=e[o]===0?1:0;return D.fromData(t,Array.from(r.shape),"bool")}function ks(r,t){return typeof t=="number"?Xp(r,t):dt(r,t)?Jp(r,t):yr(r,t,(e,n)=>Kr(e)!==Kr(n))}function Jp(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.size,u=B(r.dtype),s=B(t.dtype),i=M(r.dtype),c=M(t.dtype);if(i||c)for(let l=0;l<a;l++){let m=i?Dr(n,l):n[l]!==0,y=c?Dr(o,l):o[l]!==0;e[l]=m!==y?1:0}else if(u||s)for(let l=0;l<a;l++){let m=u?n[l]!==0n:n[l]!==0,y=s?o[l]!==0n:o[l]!==0;e[l]=m!==y?1:0}else for(let l=0;l<a;l++){let m=n[l]!==0,y=o[l]!==0;e[l]=m!==y?1:0}return D.fromData(e,Array.from(r.shape),"bool")}function Xp(r,t){let e=new Uint8Array(r.size),n=r.data,o=t!==0,a=r.size;if(M(r.dtype)){let u=n;for(let s=0;s<a;s++){let i=Dr(u,s);e[s]=i!==o?1:0}}else if(B(r.dtype)){let u=n;for(let s=0;s<a;s++){let i=u[s]!==0n;e[s]=i!==o?1:0}}else for(let u=0;u<a;u++){let s=n[u]!==0;e[u]=s!==o?1:0}return D.fromData(e,Array.from(r.shape),"bool")}function qs(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(M(r.dtype)){let o=e;for(let a=0;a<n;a++){let u=o[a*2],s=o[a*2+1];t[a]=Number.isFinite(u)&&Number.isFinite(s)?1:0}}else if(B(r.dtype))for(let o=0;o<n;o++)t[o]=1;else for(let o=0;o<n;o++){let a=e[o];t[o]=Number.isFinite(a)?1:0}return D.fromData(t,Array.from(r.shape),"bool")}function Vs(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(M(r.dtype)){let o=e;for(let a=0;a<n;a++){let u=o[a*2],s=o[a*2+1],i=!Number.isFinite(u)&&!Number.isNaN(u),c=!Number.isFinite(s)&&!Number.isNaN(s);t[a]=i||c?1:0}}else if(B(r.dtype))for(let o=0;o<n;o++)t[o]=0;else for(let o=0;o<n;o++){let a=e[o];t[o]=!Number.isFinite(a)&&!Number.isNaN(a)?1:0}return D.fromData(t,Array.from(r.shape),"bool")}function Ps(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(M(r.dtype)){let o=e;for(let a=0;a<n;a++){let u=o[a*2],s=o[a*2+1];t[a]=Number.isNaN(u)||Number.isNaN(s)?1:0}}else if(B(r.dtype))for(let o=0;o<n;o++)t[o]=0;else for(let o=0;o<n;o++)t[o]=Number.isNaN(e[o])?1:0;return D.fromData(t,Array.from(r.shape),"bool")}function js(r){let t=new Uint8Array(r.size);return D.fromData(t,Array.from(r.shape),"bool")}function Ls(r,t){if(q(r.dtype,"copysign","copysign is only defined for real numbers."),typeof t!="number"&&q(t.dtype,"copysign","copysign is only defined for real numbers."),typeof t=="number")return Kp(r,t);if(dt(r,t))return Qp(r,t);let e=Er(r.shape,t.shape),n=e.reduce((i,c)=>i*c,1),o=D.zeros(e,"float64"),a=o.data,u=Pt(r,e),s=Pt(t,e);for(let i=0;i<n;i++){let c=Number(u.iget(i)),l=Number(s.iget(i));a[i]=Math.sign(l)*Math.abs(c)}return o}function Qp(r,t){let e=D.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size,a=r.data,u=t.data,s=B(r.dtype),i=B(t.dtype);for(let c=0;c<o;c++){let l=s?Number(a[c]):a[c],m=i?Number(u[c]):u[c];n[c]=Math.sign(m)*Math.abs(l)}return e}function Kp(r,t){let e=D.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.data,a=r.size,u=Math.sign(t);if(B(r.dtype)){let s=o;for(let i=0;i<a;i++)n[i]=u*Math.abs(Number(s[i]))}else for(let s=0;s<a;s++)n[s]=u*Math.abs(o[s]);return e}function Ws(r){q(r.dtype,"signbit","signbit is only defined for real numbers.");let t=new Uint8Array(r.size),e=r.data,n=r.size;if(B(r.dtype)){let o=e;for(let a=0;a<n;a++)t[a]=o[a]<0n?1:0}else for(let o=0;o<n;o++){let a=e[o];t[o]=a<0||Object.is(a,-0)?1:0}return D.fromData(t,Array.from(r.shape),"bool")}function Gs(r,t){if(q(r.dtype,"nextafter","nextafter is only defined for real numbers."),typeof t!="number"&&q(t.dtype,"nextafter","nextafter is only defined for real numbers."),typeof t=="number")return ty(r,t);if(dt(r,t))return ry(r,t);let e=Er(r.shape,t.shape),n=e.reduce((i,c)=>i*c,1),o=D.zeros(e,"float64"),a=o.data,u=Pt(r,e),s=Pt(t,e);for(let i=0;i<n;i++){let c=Number(u.iget(i)),l=Number(s.iget(i));a[i]=yt(c,l)}return o}function ry(r,t){let e=D.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size,a=r.data,u=t.data,s=B(r.dtype),i=B(t.dtype);for(let c=0;c<o;c++){let l=s?Number(a[c]):a[c],m=i?Number(u[c]):u[c];n[c]=yt(l,m)}return e}function ty(r,t){let e=D.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.data,a=r.size;if(B(r.dtype)){let u=o;for(let s=0;s<a;s++)n[s]=yt(Number(u[s]),t)}else for(let u=0;u<a;u++)n[u]=yt(o[u],t);return e}function yt(r,t){if(Number.isNaN(r)||Number.isNaN(t))return NaN;if(r===t)return t;if(r===0)return t>0?Number.MIN_VALUE:-Number.MIN_VALUE;let e=new ArrayBuffer(8),n=new Float64Array(e),o=new BigInt64Array(e);n[0]=r;let a=o[0];return r>0&&t>r||r<0&&t>r?a=a+1n:a=a-1n,o[0]=a,n[0]}function Zs(r){q(r.dtype,"spacing","spacing is only defined for real numbers.");let t=D.zeros(Array.from(r.shape),"float64"),e=t.data,n=r.data,o=r.size;if(B(r.dtype)){let a=n;for(let u=0;u<o;u++)e[u]=Cs(Number(a[u]))}else for(let a=0;a<o;a++)e[a]=Cs(n[a]);return t}function Cs(r){if(Number.isNaN(r))return NaN;if(!Number.isFinite(r))return NaN;if(Math.abs(r)===0)return Number.MIN_VALUE;let e=yt(r,1/0);return Math.abs(e-r)}function Pt(r,t){let e=r.shape.length,n=t.length,o=new Array(n).fill(0);for(let a=0;a<e;a++){let u=n-e+a,s=r.shape[a],i=t[u];if(s===i)o[u]=r.strides[a];else if(s===1)o[u]=0;else throw new Error("Invalid broadcast")}return D.fromData(r.data,Array.from(t),r.dtype,o,r.offset)}function Ys(r){let t=r.dtype,e=r.size,n=new Uint8Array(e);if(M(t)){let o=r.data;for(let a=0;a<e;a++)n[a]=o[a*2+1]!==0?1:0}return D.fromData(n,Array.from(r.shape),"bool")}function Hs(r){return M(r.dtype)}function Js(r){let t=r.dtype,e=r.size,n=new Uint8Array(e);if(M(t)){let o=r.data;for(let a=0;a<e;a++)n[a]=o[a*2+1]===0?1:0}else n.fill(1);return D.fromData(n,Array.from(r.shape),"bool")}function Xs(r){return!M(r.dtype)}function Qs(r){q(r.dtype,"isneginf","This operation is not supported for complex values because it would be ambiguous.");let t=new Uint8Array(r.size),e=r.data,n=r.size;if(!B(r.dtype))for(let o=0;o<n;o++){let a=e[o];t[o]=a===-1/0?1:0}return D.fromData(t,Array.from(r.shape),"bool")}function Ks(r){q(r.dtype,"isposinf","This operation is not supported for complex values because it would be ambiguous.");let t=new Uint8Array(r.size),e=r.data,n=r.size;if(!B(r.dtype))for(let o=0;o<n;o++){let a=e[o];t[o]=a===1/0?1:0}return D.fromData(t,Array.from(r.shape),"bool")}function ri(r){return r.isFContiguous}function ti(r,t=100){let e=r.dtype;if(M(e)){let n=r.data,o=r.size,u=t*(e==="complex64"?11920929e-14:2220446049250313e-31),s=!0;for(let i=0;i<o;i++){let c=n[i*2+1];if(Math.abs(c)>u){s=!1;break}}if(s){let i=e==="complex64"?"float32":"float64",c=D.zeros(Array.from(r.shape),i),l=c.data;for(let m=0;m<o;m++)l[m]=n[m*2];return c}return r.copy()}return r.copy()}function ei(r){return typeof r=="number"||typeof r=="bigint"||typeof r=="boolean"||typeof r=="string"}function ni(r){return r==null?!1:typeof r[Symbol.iterator]=="function"}function oi(r,t){let n={b:["bool"],i:["int8","int16","int32","int64"],u:["uint8","uint16","uint32","uint64"],f:["float32","float64"]}[t];return n?n.includes(r):!1}function ai(r,t){let e=["float64","float32","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"],n=e.indexOf(r),o=e.indexOf(t);return n<=o?r:t}var si=W(()=>{"use strict";X();J();Mr();Mr()});function ii(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(M(t)){let o=nt(t),a=D.zeros(e,o),u=a.data,s=r.data;for(let i=0;i<n;i++)u[i]=s[i*2];return a}return r.copy()}function ui(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(M(t)){let a=nt(t),u=D.zeros(e,a),s=u.data,i=r.data;for(let c=0;c<n;c++)s[c]=i[c*2+1];return u}let o=t==="float32"?"float32":"float64";return D.zeros(e,o)}function ci(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(M(t)){let o=j(t),a=n*2,u=new o(a),s=r.data;for(let i=0;i<n;i++)u[i*2]=s[i*2],u[i*2+1]=-s[i*2+1];return D.fromData(u,e,t)}return r.copy()}function li(r,t=!1){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=D.zeros(n,"float64"),u=a.data;if(M(e)){let s=r.data;for(let i=0;i<o;i++){let c=s[i*2],l=s[i*2+1],m=Math.atan2(l,c);t&&(m=m*180/Math.PI),u[i]=m}}else for(let s=0;s<o;s++){let i=r.iget(s),l=(i instanceof O?i.re:Number(i))>=0?0:Math.PI;t&&(l=l*180/Math.PI),u[s]=l}return a}var fi=W(()=>{"use strict";X();J();xr()});function Nr(r,t,e){if(e){let n=r[t*2],o=r[t*2+1];return n!==0||o!==0}return!!r[t]}function gt(r,t,e,n){let o=isNaN(r)||isNaN(t),a=isNaN(e)||isNaN(n);return o&&a?0:o?1:a||r<e?-1:r>e?1:t<n?-1:t>n?1:0}function Xe(r,t=-1){let e=r.shape,n=e.length,o=r.dtype,a=r.data;if(n===0)return r.copy();let u=t;if(u<0&&(u=n+u),u<0||u>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let s=r.copy(),i=s.data,c=e[u],l=Array.from(e).filter((y,d)=>d!==u),m=l.length===0?1:l.reduce((y,d)=>y*d,1);if(M(o)){let y=a,d=i;for(let f=0;f<m;f++){let p=[];for(let g=0;g<c;g++){let h=$(f,u,g,e),b=U(h,e);p.push({re:y[b*2],im:y[b*2+1],idx:g})}p.sort((g,h)=>gt(g.re,g.im,h.re,h.im));for(let g=0;g<c;g++){let h=$(f,u,g,e),b=U(h,e);d[b*2]=p[g].re,d[b*2+1]=p[g].im}}}else if(B(o)){let y=a,d=i;for(let f=0;f<m;f++){let p=[];for(let g=0;g<c;g++){let h=$(f,u,g,e),b=U(h,e);p.push({value:y[b],idx:g})}p.sort((g,h)=>g.value<h.value?-1:g.value>h.value?1:0);for(let g=0;g<c;g++){let h=$(f,u,g,e),b=U(h,e);d[b]=p[g].value}}}else for(let y=0;y<m;y++){let d=[];for(let f=0;f<c;f++){let p=$(y,u,f,e),g=U(p,e);d.push(Number(a[g]))}d.sort((f,p)=>isNaN(f)&&isNaN(p)?0:isNaN(f)?1:isNaN(p)?-1:f-p);for(let f=0;f<c;f++){let p=$(y,u,f,e),g=U(p,e);i[g]=d[f]}}return s}function Qe(r,t=-1){let e=r.shape,n=e.length,o=r.dtype,a=r.data;if(n===0)return D.zeros([0],"int32");let u=t;if(u<0&&(u=n+u),u<0||u>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let s=D.zeros(Array.from(e),"int32"),i=s.data,c=e[u],l=Array.from(e).filter((y,d)=>d!==u),m=l.length===0?1:l.reduce((y,d)=>y*d,1);if(M(o)){let y=a;for(let d=0;d<m;d++){let f=[];for(let p=0;p<c;p++){let g=$(d,u,p,e),h=U(g,e);f.push({re:y[h*2],im:y[h*2+1],idx:p})}f.sort((p,g)=>gt(p.re,p.im,g.re,g.im));for(let p=0;p<c;p++){let g=$(d,u,p,e),h=U(g,e);i[h]=f[p].idx}}}else if(B(o)){let y=a;for(let d=0;d<m;d++){let f=[];for(let p=0;p<c;p++){let g=$(d,u,p,e),h=U(g,e);f.push({value:y[h],idx:p})}f.sort((p,g)=>p.value<g.value?-1:p.value>g.value?1:0);for(let p=0;p<c;p++){let g=$(d,u,p,e),h=U(g,e);i[h]=f[p].idx}}}else for(let y=0;y<m;y++){let d=[];for(let f=0;f<c;f++){let p=$(y,u,f,e),g=U(p,e);d.push({value:Number(a[g]),idx:f})}d.sort((f,p)=>isNaN(f.value)&&isNaN(p.value)?0:isNaN(f.value)?1:isNaN(p.value)?-1:f.value-p.value);for(let f=0;f<c;f++){let p=$(y,u,f,e),g=U(p,e);i[g]=d[f].idx}}return s}function mi(r){if(r.length===0)return D.zeros([0],"int32");let e=r[0].size;for(let u of r){if(u.ndim!==1)throw new Error("keys must be 1D arrays");if(u.size!==e)throw new Error("all keys must have the same length")}let n=[];for(let u=0;u<e;u++)n.push(u);n.sort((u,s)=>{for(let i=r.length-1;i>=0;i--){let l=r[i].data,m=Number(l[u]),y=Number(l[s]);if(!(isNaN(m)&&isNaN(y))){if(isNaN(m))return 1;if(isNaN(y)||m<y)return-1;if(m>y)return 1}}return 0});let o=D.zeros([e],"int32"),a=o.data;for(let u=0;u<e;u++)a[u]=n[u];return o}function oy(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e],u=r[o],s=r[n],i;a<=u&&u<=s||s<=u&&u<=a?i=o:u<=a&&a<=s||s<=a&&a<=u?i=e:i=n;let c=r[i];[r[i],r[n]]=[r[n],r[i]];let l=e;for(let m=e;m<n;m++){let y=r[m],d=isNaN(y),f=isNaN(c);!d&&(f||y<=c)&&([r[l],r[m]]=[r[m],r[l]],l++)}if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function ay(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e],u=r[o],s=r[n],i;a<=u&&u<=s||s<=u&&u<=a?i=o:u<=a&&a<=s||s<=a&&a<=u?i=e:i=n;let c=r[i];[r[i],r[n]]=[r[n],r[i]];let l=e;for(let m=e;m<n;m++)r[m]<=c&&([r[l],r[m]]=[r[m],r[l]],l++);if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function sy(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e].value,u=r[o].value,s=r[n].value,i;a<=u&&u<=s||s<=u&&u<=a?i=o:u<=a&&a<=s||s<=a&&a<=u?i=e:i=n;let c=r[i].value;[r[i],r[n]]=[r[n],r[i]];let l=e;for(let m=e;m<n;m++){let y=r[m].value,d=isNaN(y),f=isNaN(c);!d&&(f||y<=c)&&([r[l],r[m]]=[r[m],r[l]],l++)}if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function iy(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e].value,u=r[o].value,s=r[n].value,i;a<=u&&u<=s||s<=u&&u<=a?i=o:u<=a&&a<=s||s<=a&&a<=u?i=e:i=n;let c=r[i].value;[r[i],r[n]]=[r[n],r[i]];let l=e;for(let m=e;m<n;m++)r[m].value<=c&&([r[l],r[m]]=[r[m],r[l]],l++);if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function Ke(r,t,e=-1){let n=r.shape,o=n.length,a=r.dtype;if(o===0)return r.copy();let u=e;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=n[u],i=t;if(i<0&&(i=s+i),i<0||i>=s)throw new Error(`kth(=${t}) out of bounds (${s})`);let c=r.copy(),l=c.data,m=Array.from(n).filter((d,f)=>f!==u),y=m.length===0?1:m.reduce((d,f)=>d*f,1);if(B(a)){let d=l;for(let f=0;f<y;f++){let p=[];for(let g=0;g<s;g++){let h=$(f,u,g,n),b=U(h,n);p.push(d[b])}ay(p,i);for(let g=0;g<s;g++){let h=$(f,u,g,n),b=U(h,n);d[b]=p[g]}}}else for(let d=0;d<y;d++){let f=[];for(let p=0;p<s;p++){let g=$(d,u,p,n),h=U(g,n);f.push(Number(l[h]))}oy(f,i);for(let p=0;p<s;p++){let g=$(d,u,p,n),h=U(g,n);l[h]=f[p]}}return c}function rn(r,t,e=-1){let n=r.shape,o=n.length,a=r.dtype,u=r.data;if(o===0)return D.zeros([0],"int32");let s=e;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=n[s],c=t;if(c<0&&(c=i+c),c<0||c>=i)throw new Error(`kth(=${t}) out of bounds (${i})`);let l=D.zeros(Array.from(n),"int32"),m=l.data,y=Array.from(n).filter((f,p)=>p!==s),d=y.length===0?1:y.reduce((f,p)=>f*p,1);if(B(a)){let f=u;for(let p=0;p<d;p++){let g=[];for(let h=0;h<i;h++){let b=$(p,s,h,n),A=U(b,n);g.push({value:f[A],idx:h})}iy(g,c);for(let h=0;h<i;h++){let b=$(p,s,h,n),A=U(b,n);m[A]=g[h].idx}}}else for(let f=0;f<d;f++){let p=[];for(let g=0;g<i;g++){let h=$(f,s,g,n),b=U(h,n);p.push({value:Number(u[b]),idx:g})}sy(p,c);for(let g=0;g<i;g++){let h=$(f,s,g,n),b=U(h,n);m[b]=p[g].idx}}return l}function pi(r){let t=r.dtype,e=r.size,n=r.data;if(M(t)){let o=n,a=[];for(let i=0;i<e;i++)a.push({re:o[i*2],im:o[i*2+1]});a.sort((i,c)=>gt(i.re,i.im,c.re,c.im));let u=D.zeros([e],"complex128"),s=u.data;for(let i=0;i<e;i++)s[i*2]=a[i].re,s[i*2+1]=a[i].im;return u}else{let o=[];for(let s=0;s<e;s++)o.push(Number(n[s]));o.sort((s,i)=>isNaN(s)&&isNaN(i)?0:isNaN(s)?1:isNaN(i)?-1:s-i);let a=D.zeros([e],"complex128"),u=a.data;for(let s=0;s<e;s++)u[s*2]=o[s],u[s*2+1]=0;return a}}function jt(r){let t=r.shape,e=t.length,n=r.data,o=r.size,a=M(r.dtype),u=[];for(let m=0;m<e;m++)u.push([]);let s=[],i=1;for(let m=e-1;m>=0;m--)s.unshift(i),i*=t[m];for(let m=0;m<o;m++)if(Nr(n,m,a)){let y=m;for(let d=0;d<e;d++){let f=Math.floor(y/s[d]);y=y%s[d],u[d].push(f)}}let c=u[0]?.length??0,l=[];for(let m=0;m<e;m++){let y=D.zeros([c],"int32"),d=y.data;for(let f=0;f<c;f++)d[f]=u[m][f];l.push(y)}return l}function tn(r){let t=r.shape,e=t.length,n=r.data,o=r.size,a=M(r.dtype),u=[],s=[],i=1;for(let d=e-1;d>=0;d--)s.unshift(i),i*=t[d];for(let d=0;d<o;d++)if(Nr(n,d,a)){let f=[],p=d;for(let g=0;g<e;g++){let h=Math.floor(p/s[g]);p=p%s[g],f.push(h)}u.push(f)}let c=u.length,l=e===0?[c,1]:[c,e],m=D.zeros(l,"int32"),y=m.data;for(let d=0;d<c;d++){let f=u[d];for(let p=0;p<(e===0?1:e);p++)y[d*(e===0?1:e)+p]=f[p]??0}return m}function yi(r){let t=r.data,e=r.size,n=M(r.dtype),o=[];for(let s=0;s<e;s++)Nr(t,s,n)&&o.push(s);let a=D.zeros([o.length],"int32"),u=a.data;for(let s=0;s<o.length;s++)u[s]=o[s];return a}function di(r,t,e){if(t===void 0&&e===void 0)return jt(r);if(t===void 0||e===void 0)throw new Error("either both or neither of x and y should be given");let n=r.shape,o=t.shape,a=e.shape,u=Math.max(n.length,o.length,a.length),s=_=>{let T=Array(u).fill(1);for(let E=0;E<_.length;E++)T[u-_.length+E]=_[E];return T},i=s(n),c=s(o),l=s(a),m=[];for(let _=0;_<u;_++){let T=[i[_],c[_],l[_]],E=Math.max(...T);for(let C of T)if(C!==1&&C!==E)throw new Error("operands could not be broadcast together");m.push(E)}let y=t.dtype,d=D.zeros(m,y),f=d.data,p=r.data,g=t.data,h=e.data,b=(_,T)=>{let E=[],C=1;for(let k=_.length-1;k>=0;k--)E.unshift(C),C*=_[k];for(;E.length<T.length;)E.unshift(0);for(let k=0;k<T.length;k++)T[k]===1&&m[k]!==1&&(E[k]=0);return E},A=b(n,i),S=b(o,c),x=b(a,l),w=[],N=1;for(let _=m.length-1;_>=0;_--)w.unshift(N),N*=m[_];let I=m.reduce((_,T)=>_*T,1),z=M(r.dtype),F=M(y);for(let _=0;_<I;_++){let T=_,E=0,C=0,k=0;for(let V=0;V<u;V++){let R=Math.floor(T/w[V]);T=T%w[V],E+=R*A[V],C+=R*S[V],k+=R*x[V]}Nr(p,E,z)?F?(f[_*2]=g[C*2],f[_*2+1]=g[C*2+1]):f[_]=g[C]:F?(f[_*2]=h[k*2],f[_*2+1]=h[k*2+1]):f[_]=h[k]}return d}function en(r,t,e="left"){if(r.ndim!==1)throw new Error("storage must be 1D");let n=r.data,o=r.size,a=t.data,u=t.size,s=M(r.dtype),i=D.zeros([u],"int32"),c=i.data;if(s){let l=n,m=a;for(let y=0;y<u;y++){let d=m[y*2],f=m[y*2+1],p=0,g=o;if(e==="left")for(;p<g;){let h=Math.floor((p+g)/2),b=l[h*2],A=l[h*2+1];gt(b,A,d,f)<0?p=h+1:g=h}else for(;p<g;){let h=Math.floor((p+g)/2),b=l[h*2],A=l[h*2+1];gt(b,A,d,f)<=0?p=h+1:g=h}c[y]=p}}else for(let l=0;l<u;l++){let m=Number(a[l]),y=0,d=o;if(e==="left")for(;y<d;){let f=Math.floor((y+d)/2);Number(n[f])<m?y=f+1:d=f}else for(;y<d;){let f=Math.floor((y+d)/2);Number(n[f])<=m?y=f+1:d=f}c[l]=y}return i}function gi(r,t){let e=r.data,n=t.data,o=t.dtype,a=M(r.dtype),u=M(o),s=Math.min(r.size,t.size),i=0;for(let y=0;y<s;y++)Nr(e,y,a)&&i++;let c=D.zeros([i],o),l=c.data,m=0;if(B(o)){let y=n,d=l;for(let f=0;f<s;f++)Nr(e,f,a)&&(d[m++]=y[f])}else if(u){let y=n,d=l;for(let f=0;f<s;f++)Nr(e,f,a)&&(d[m*2]=y[f*2],d[m*2+1]=y[f*2+1],m++)}else for(let y=0;y<s;y++)Nr(e,y,a)&&(l[m++]=n[y]);return c}function nn(r,t){let e=r.shape,n=e.length,o=r.data,a=r.size,u=M(r.dtype);if(t===void 0){let d=0;for(let f=0;f<a;f++)Nr(o,f,u)&&d++;return d}let s=t;if(s<0&&(s=n+s),s<0||s>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=Array.from(e).filter((d,f)=>f!==s);if(i.length===0)return nn(r);let c=D.zeros(i,"int32"),l=c.data,m=e[s],y=i.reduce((d,f)=>d*f,1);for(let d=0;d<y;d++){let f=0;for(let p=0;p<m;p++){let g=$(d,s,p,e),h=U(g,e);Nr(o,h,u)&&f++}l[d]=f}return c}var Ai=W(()=>{"use strict";X();J();Se()});function bi(r){if(!isFinite(r))return r;let t=Math.floor(r),e=r-t;return Math.abs(e-.5)<1e-10?t%2===0?t:t+1:Math.round(r)}function on(r,t=0){q(r.dtype,"around","Rounding is not defined for complex numbers.");let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=e==="float32"?"float32":"float64",s=D.zeros(n,u),i=s.data,c=Math.pow(10,t);for(let l=0;l<a;l++){let m=Number(o[l]);i[l]=bi(m*c)/c}return s}function an(r){q(r.dtype,"ceil","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",u=D.zeros(e,a),s=u.data;for(let i=0;i<o;i++)s[i]=Math.ceil(Number(n[i]));return u}function sn(r){q(r.dtype,"fix","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",u=D.zeros(e,a),s=u.data;for(let i=0;i<o;i++)s[i]=Math.trunc(Number(n[i]));return u}function un(r){q(r.dtype,"floor","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",u=D.zeros(e,a),s=u.data;for(let i=0;i<o;i++)s[i]=Math.floor(Number(n[i]));return u}function cn(r){q(r.dtype,"rint","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",u=D.zeros(e,a),s=u.data;for(let i=0;i<o;i++)s[i]=bi(Number(n[i]));return u}function ln(r){q(r.dtype,"trunc","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",u=D.zeros(e,a),s=u.data;for(let i=0;i<o;i++)s[i]=Math.trunc(Number(n[i]));return u}var hi=W(()=>{"use strict";X();J()});function fn(r,t,e,n){let o=isNaN(r)||isNaN(t),a=isNaN(e)||isNaN(n);return o&&a?0:o?1:a||r<e?-1:r>e?1:t<n?-1:t>n?1:0}function ly(r,t,e,n){let o=isNaN(r)||isNaN(t),a=isNaN(e)||isNaN(n);return o&&a?!0:o||a?!1:r===e&&t===n}function vr(r,t=!1,e=!1,n=!1){let o=r.dtype,a=r.size,u=r.data;if(M(o)){let A=u,S=[];for(let R=0;R<a;R++)S.push({re:A[R*2],im:A[R*2+1],index:R});S.sort((R,L)=>fn(R.re,R.im,L.re,L.im));let x=[],w=[],N=new Array(a),I=[],z,F,_=0;for(let R=0;R<S.length;R++){let{re:L,im:P,index:Q}=S[R];z===void 0||!ly(L,P,z,F)?(z!==void 0&&I.push(_),x.push({re:L,im:P}),w.push(Q),_=1,z=L,F=P):_++}_>0&&I.push(_);let T=new Map,E=-1;for(let R=0;R<x.length;R++){let{re:L,im:P}=x[R];isNaN(L)||isNaN(P)?E=R:T.set(`${L},${P}`,R)}for(let R=0;R<a;R++){let L=A[R*2],P=A[R*2+1];isNaN(L)||isNaN(P)?N[R]=E:N[R]=T.get(`${L},${P}`)}let C=D.zeros([x.length],o),k=C.data;for(let R=0;R<x.length;R++)k[R*2]=x[R].re,k[R*2+1]=x[R].im;if(!t&&!e&&!n)return C;let V={values:C};if(t){let R=D.zeros([w.length],"int32"),L=R.data;for(let P=0;P<w.length;P++)L[P]=w[P];V.indices=R}if(e){let R=D.zeros([N.length],"int32"),L=R.data;for(let P=0;P<N.length;P++)L[P]=N[P];V.inverse=R}if(n){let R=D.zeros([I.length],"int32"),L=R.data;for(let P=0;P<I.length;P++)L[P]=I[P];V.counts=R}return V}let s=[];for(let A=0;A<a;A++)s.push({value:Number(u[A]),index:A});s.sort((A,S)=>isNaN(A.value)&&isNaN(S.value)?0:isNaN(A.value)?1:isNaN(S.value)?-1:A.value-S.value);let i=[],c=[],l=new Array(a),m=[],y,d=0;for(let A=0;A<s.length;A++){let{value:S,index:x}=s[A];y===void 0||isNaN(S)&&!isNaN(y)||!isNaN(S)&&isNaN(y)||!isNaN(S)&&!isNaN(y)&&S!==y?(y!==void 0&&m.push(d),i.push(S),c.push(x),d=1,y=S):d++}d>0&&m.push(d);let f=new Map,p=-1;for(let A=0;A<i.length;A++){let S=i[A];isNaN(S)?p=A:f.set(S,A)}for(let A=0;A<a;A++){let S=Number(u[A]);isNaN(S)?l[A]=p:l[A]=f.get(S)}let g=D.zeros([i.length],o),h=g.data;for(let A=0;A<i.length;A++)h[A]=i[A];if(!t&&!e&&!n)return g;let b={values:g};if(t){let A=D.zeros([c.length],"int32"),S=A.data;for(let x=0;x<c.length;x++)S[x]=c[x];b.indices=A}if(e){let A=D.zeros([l.length],"int32"),S=A.data;for(let x=0;x<l.length;x++)S[x]=l[x];b.inverse=A}if(n){let A=D.zeros([m.length],"int32"),S=A.data;for(let x=0;x<m.length;x++)S[x]=m[x];b.counts=A}return b}function wr(r,t,e){if(e){let n=Number(r[t*2]),o=Number(r[t*2+1]);return`${n},${o}`}return String(Number(r[t]))}function Si(r,t){return mn(r,t)}function xi(r,t){let e=r.dtype,n=M(e),o=vr(r),a=vr(t),u=new Set;for(let l=0;l<a.size;l++)u.add(wr(a.data,l,n));let s=[];for(let l=0;l<o.size;l++){let m=wr(o.data,l,n);u.has(m)&&s.push(l)}if(n){let l=D.zeros([s.length],e),m=l.data,y=o.data;for(let d=0;d<s.length;d++){let f=s[d];m[d*2]=y[f*2],m[d*2+1]=y[f*2+1]}return l}let i=D.zeros([s.length],e),c=i.data;for(let l=0;l<s.length;l++)c[l]=o.data[s[l]];return i}function mn(r,t){let e=Array.from(r.shape),n=r.size,o=M(r.dtype),a=new Set;for(let i=0;i<t.size;i++)a.add(wr(t.data,i,o));let u=D.zeros(e,"bool"),s=u.data;for(let i=0;i<n;i++){let c=wr(r.data,i,o);s[i]=a.has(c)?1:0}return u}function Di(r,t){let e=r.dtype,n=M(e),o=vr(r),a=new Set;for(let c=0;c<t.size;c++)a.add(wr(t.data,c,n));let u=[];for(let c=0;c<o.size;c++){let l=wr(o.data,c,n);a.has(l)||u.push(c)}if(n){let c=D.zeros([u.length],e),l=c.data,m=o.data;for(let y=0;y<u.length;y++){let d=u[y];l[y*2]=m[d*2],l[y*2+1]=m[d*2+1]}return c}let s=D.zeros([u.length],e),i=s.data;for(let c=0;c<u.length;c++)i[c]=o.data[u[c]];return s}function Ni(r,t){let e=r.dtype,n=M(e),o=vr(r),a=vr(t),u=new Set,s=new Set;for(let d=0;d<o.size;d++)u.add(wr(o.data,d,n));for(let d=0;d<a.size;d++)s.add(wr(a.data,d,n));let i=[],c=[];for(let d=0;d<o.size;d++){let f=wr(o.data,d,n);s.has(f)||i.push(d)}for(let d=0;d<a.size;d++){let f=wr(a.data,d,n);u.has(f)||c.push(d)}if(n){let d=[],f=o.data,p=a.data;for(let b of i)d.push({re:f[b*2],im:f[b*2+1]});for(let b of c)d.push({re:p[b*2],im:p[b*2+1]});d.sort((b,A)=>fn(b.re,b.im,A.re,A.im));let g=D.zeros([d.length],e),h=g.data;for(let b=0;b<d.length;b++)h[b*2]=d[b].re,h[b*2+1]=d[b].im;return g}let l=[];for(let d of i)l.push(Number(o.data[d]));for(let d of c)l.push(Number(a.data[d]));l.sort((d,f)=>isNaN(d)&&isNaN(f)?0:isNaN(d)?1:isNaN(f)?-1:d-f);let m=D.zeros([l.length],e),y=m.data;for(let d=0;d<l.length;d++)y[d]=l[d];return m}function wi(r,t){let e=r.dtype,n=M(e),o=vr(r),a=vr(t),u=new Set,s=[];if(n){let m=o.data,y=a.data;for(let p=0;p<o.size;p++){let g=m[p*2],h=m[p*2+1],b=`${g},${h}`;u.has(b)||(u.add(b),s.push({re:g,im:h}))}for(let p=0;p<a.size;p++){let g=y[p*2],h=y[p*2+1],b=`${g},${h}`;u.has(b)||(u.add(b),s.push({re:g,im:h}))}s.sort((p,g)=>fn(p.re,p.im,g.re,g.im));let d=D.zeros([s.length],e),f=d.data;for(let p=0;p<s.length;p++)f[p*2]=s[p].re,f[p*2+1]=s[p].im;return d}let i=[];for(let m=0;m<o.size;m++){let y=Number(o.data[m]),d=String(y);u.has(d)||(u.add(d),i.push(y))}for(let m=0;m<a.size;m++){let y=Number(a.data[m]),d=String(y);u.has(d)||(u.add(d),i.push(y))}i.sort((m,y)=>isNaN(m)&&isNaN(y)?0:isNaN(m)?1:isNaN(y)?-1:m-y);let c=D.zeros([i.length],e),l=c.data;for(let m=0;m<i.length;m++)l[m]=i[m];return c}var Ii=W(()=>{"use strict";X();J()});function pn(r,t=1,e=-1){if(t<0)throw new Error(`order must be non-negative but got ${t}`);if(t===0)return r.copy();let n=Array.from(r.shape),o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);if(n[a]<t+1)throw new Error(`diff requires at least ${t+1} elements along axis ${e}, but got ${n[a]}`);let u=r;for(let s=0;s<t;s++)u=my(u,a);return u}function my(r,t){let e=Array.from(r.shape),n=e.length,o=e[t],a=[...e];a[t]=o-1;let u=r.dtype,s=M(u),i=B(u)?"float64":u,c=D.zeros(a,i),l=c.data,m=r.strides,y=c.size;for(let d=0;d<y;d++){let f=d,p=new Array(n);for(let S=n-1;S>=0;S--)p[S]=f%a[S],f=Math.floor(f/a[S]);let g=[...p],h=[...p];h[t]=g[t]+1;let b=0,A=0;for(let S=0;S<n;S++)b+=g[S]*m[S],A+=h[S]*m[S];if(s){let S=r.data,x=S[b*2],w=S[b*2+1],N=S[A*2],I=S[A*2+1];l[d*2]=N-x,l[d*2+1]=I-w}else{let S=(B(u),Number(r.data[b])),x=(B(u),Number(r.data[A]));l[d]=x-S}}return c}function zi(r,t=null,e=null){let n=r.size,o=r.dtype,a=M(o),u=B(o)?"float64":o,s=Math.max(0,n-1),i=e?e.length:0,c=t?t.length:0,l=i+s+c,m=D.zeros([l],u),y=m.data,d=0;if(e)if(a)for(let f of e)y[d*2]=f,y[d*2+1]=0,d++;else for(let f of e)y[d++]=f;if(a){let f=r.data;for(let p=0;p<s;p++){let g=f[p*2],h=f[p*2+1],b=f[(p+1)*2],A=f[(p+1)*2+1];y[d*2]=b-g,y[d*2+1]=A-h,d++}}else for(let f=0;f<s;f++){let p=(B(o),Number(r.iget(f))),g=(B(o),Number(r.iget(f+1)));y[d++]=g-p}if(t)if(a)for(let f of t)y[d*2]=f,y[d*2+1]=0,d++;else for(let f of t)y[d++]=f;return m}function _i(r,t=1,e=null){let o=Array.from(r.shape).length,a;if(e===null)a=Array.from({length:o},(i,c)=>c);else if(typeof e=="number"){let i=e<0?o+e:e;if(i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);a=[i]}else a=e.map(i=>{let c=i<0?o+i:i;if(c<0||c>=o)throw new Error(`axis ${i} is out of bounds for array of dimension ${o}`);return c});let u;if(typeof t=="number")u=a.map(()=>t);else{if(t.length!==a.length)throw new Error("Number of spacings must match number of axes");u=t}let s=[];for(let i=0;i<a.length;i++)s.push(py(r,a[i],u[i]));return s.length===1?s[0]:s}function py(r,t,e){let n=Array.from(r.shape),o=n.length,a=n[t];if(a<2)throw new Error(`Shape of array along axis ${t} must be at least 2, but got ${a}`);let u=r.dtype,s=M(u),i=B(u)?"float64":u==="float32"?"float32":s?u:"float64",c=D.zeros(n,i),l=c.data,m=r.strides,y=e,d=2*y,f=r.size;for(let p=0;p<f;p++){let g=p,h=new Array(o);for(let A=o-1;A>=0;A--)h[A]=g%n[A],g=Math.floor(g/n[A]);let b=h[t];if(s){let A=r.data,S=l,x,w;if(b===0){let N=[...h];N[t]=1;let I=0;for(let E=0;E<o;E++)I+=N[E]*m[E];let z=A[p*2],F=A[p*2+1],_=A[I*2],T=A[I*2+1];x=(_-z)/y,w=(T-F)/y}else if(b===a-1){let N=[...h];N[t]=a-2;let I=0;for(let E=0;E<o;E++)I+=N[E]*m[E];let z=A[p*2],F=A[p*2+1],_=A[I*2],T=A[I*2+1];x=(z-_)/y,w=(F-T)/y}else{let N=[...h],I=[...h];N[t]=b+1,I[t]=b-1;let z=0,F=0;for(let k=0;k<o;k++)z+=N[k]*m[k],F+=I[k]*m[k];let _=A[z*2],T=A[z*2+1],E=A[F*2],C=A[F*2+1];x=(_-E)/d,w=(T-C)/d}S[p*2]=x,S[p*2+1]=w}else{let A;if(b===0){let S=[...h];S[t]=1;let x=0;for(let I=0;I<o;I++)x+=S[I]*m[I];let w=(B(u),Number(r.data[p]));A=((B(u),Number(r.data[x]))-w)/y}else if(b===a-1){let S=[...h];S[t]=a-2;let x=0;for(let I=0;I<o;I++)x+=S[I]*m[I];let w=(B(u),Number(r.data[p])),N=(B(u),Number(r.data[x]));A=(w-N)/y}else{let S=[...h],x=[...h];S[t]=b+1,x[t]=b-1;let w=0,N=0;for(let F=0;F<o;F++)w+=S[F]*m[F],N+=x[F]*m[F];let I=(B(u),Number(r.data[w])),z=(B(u),Number(r.data[N]));A=(I-z)/d}l[p]=A}}return c}function Fi(r,t,e=-1,n=-1,o=-1){let a=Array.from(r.shape),u=Array.from(t.shape),s=a.length,i=u.length,c=e<0?s+e:e,l=n<0?i+n:n;if(c<0||c>=s)throw new Error(`axisa ${e} is out of bounds for array of dimension ${s}`);if(l<0||l>=i)throw new Error(`axisb ${n} is out of bounds for array of dimension ${i}`);let m=a[c],y=u[l];if(m!==2&&m!==3)throw new Error(`incompatible dimensions for cross product (dimension must be 2 or 3, got ${m})`);if(y!==2&&y!==3)throw new Error(`incompatible dimensions for cross product (dimension must be 2 or 3, got ${y})`);let d=Z(r.dtype,t.dtype),f=M(d),p=(b,A)=>{if(M(b.dtype)){let S=b.data;return[S[A*2],S[A*2+1]]}return[Number(b.iget(A)),0]},g=(b,A,S,x)=>[b*S-A*x,b*x+A*S],h=(b,A,S,x)=>[b-S,A-x];if(s===1&&i===1&&m===3&&y===3){let b=D.zeros([3],d);if(f){let A=b.data,[S,x]=p(r,0),[w,N]=p(r,1),[I,z]=p(r,2),[F,_]=p(t,0),[T,E]=p(t,1),[C,k]=p(t,2),[V,R]=g(w,N,C,k),[L,P]=g(I,z,T,E),[Q,er]=h(V,R,L,P),[G,or]=g(I,z,F,_),[ar,sr]=g(S,x,C,k),[mr,se]=h(G,or,ar,sr),[ie,ue]=g(S,x,T,E),[ce,le]=g(w,N,F,_),[fe,me]=h(ie,ue,ce,le);A[0]=Q,A[1]=er,A[2]=mr,A[3]=se,A[4]=fe,A[5]=me}else{let A=b.data,S=Number(r.iget(0)),x=Number(r.iget(1)),w=Number(r.iget(2)),N=Number(t.iget(0)),I=Number(t.iget(1)),z=Number(t.iget(2));A[0]=x*z-w*I,A[1]=w*N-S*z,A[2]=S*I-x*N}return b}if(s===1&&i===1&&m===2&&y===2){let b=D.zeros([],d);if(f){let A=b.data,[S,x]=p(r,0),[w,N]=p(r,1),[I,z]=p(t,0),[F,_]=p(t,1),[T,E]=g(S,x,F,_),[C,k]=g(w,N,I,z),[V,R]=h(T,E,C,k);A[0]=V,A[1]=R}else{let A=Number(r.iget(0)),S=Number(r.iget(1)),x=Number(t.iget(0)),w=Number(t.iget(1));b.data[0]=A*w-S*x}return b}if(s===1&&i===1){if(m===2&&y===3){let b=D.zeros([3],d);if(f){let A=b.data,[S,x]=p(r,0),[w,N]=p(r,1),[I,z]=p(t,0),[F,_]=p(t,1),[T,E]=p(t,2),[C,k]=g(w,N,T,E),[V,R]=g(S,x,T,E),L=-V,P=-R,[Q,er]=g(S,x,F,_),[G,or]=g(w,N,I,z),[ar,sr]=h(Q,er,G,or);A[0]=C,A[1]=k,A[2]=L,A[3]=P,A[4]=ar,A[5]=sr}else{let A=b.data,S=Number(r.iget(0)),x=Number(r.iget(1)),w=Number(t.iget(0)),N=Number(t.iget(1)),I=Number(t.iget(2));A[0]=x*I,A[1]=-S*I,A[2]=S*N-x*w}return b}else if(m===3&&y===2){let b=D.zeros([3],d);if(f){let A=b.data,[S,x]=p(r,0),[w,N]=p(r,1),[I,z]=p(r,2),[F,_]=p(t,0),[T,E]=p(t,1),[C,k]=g(I,z,T,E),V=-C,R=-k,[L,P]=g(I,z,F,_),[Q,er]=g(S,x,T,E),[G,or]=g(w,N,F,_),[ar,sr]=h(Q,er,G,or);A[0]=V,A[1]=R,A[2]=L,A[3]=P,A[4]=ar,A[5]=sr}else{let A=b.data,S=Number(r.iget(0)),x=Number(r.iget(1)),w=Number(r.iget(2)),N=Number(t.iget(0)),I=Number(t.iget(1));A[0]=-w*I,A[1]=w*N,A[2]=S*I-x*N}return b}}if(s===2&&i===2&&c===1&&l===1){let b=a[0];if(u[0]!==b)throw new Error(`Shape mismatch: a has ${b} vectors, b has ${u[0]} vectors`);if(m===3&&y===3){let A=D.zeros([b,3],d);if(f){let S=A.data;for(let x=0;x<b;x++){let[w,N]=p(r,x*3),[I,z]=p(r,x*3+1),[F,_]=p(r,x*3+2),[T,E]=p(t,x*3),[C,k]=p(t,x*3+1),[V,R]=p(t,x*3+2),[L,P]=g(I,z,V,R),[Q,er]=g(F,_,C,k),[G,or]=h(L,P,Q,er),[ar,sr]=g(F,_,T,E),[mr,se]=g(w,N,V,R),[ie,ue]=h(ar,sr,mr,se),[ce,le]=g(w,N,C,k),[fe,me]=g(I,z,T,E),[Lm,Wm]=h(ce,le,fe,me);S[x*3*2]=G,S[x*3*2+1]=or,S[(x*3+1)*2]=ie,S[(x*3+1)*2+1]=ue,S[(x*3+2)*2]=Lm,S[(x*3+2)*2+1]=Wm}}else{let S=A.data;for(let x=0;x<b;x++){let w=Number(r.iget(x*3)),N=Number(r.iget(x*3+1)),I=Number(r.iget(x*3+2)),z=Number(t.iget(x*3)),F=Number(t.iget(x*3+1)),_=Number(t.iget(x*3+2));S[x*3]=N*_-I*F,S[x*3+1]=I*z-w*_,S[x*3+2]=w*F-N*z}}return A}if(m===2&&y===2){let A=D.zeros([b],d);if(f){let S=A.data;for(let x=0;x<b;x++){let[w,N]=p(r,x*2),[I,z]=p(r,x*2+1),[F,_]=p(t,x*2),[T,E]=p(t,x*2+1),[C,k]=g(w,N,T,E),[V,R]=g(I,z,F,_),[L,P]=h(C,k,V,R);S[x*2]=L,S[x*2+1]=P}}else{let S=A.data;for(let x=0;x<b;x++){let w=Number(r.iget(x*2)),N=Number(r.iget(x*2+1)),I=Number(t.iget(x*2)),z=Number(t.iget(x*2+1));S[x]=w*z-N*I}}return A}}throw new Error(`cross product not implemented for arrays with shapes ${JSON.stringify(a)} and ${JSON.stringify(u)}`)}var Mi=W(()=>{"use strict";X();J()});function Bi(r,t,e=0){q(r.dtype,"bincount","bincount requires integer input.");let n=r.data,o=r.size,a=0;for(let s=0;s<o;s++){let i=Number(n[s]);if(i<0||!Number.isInteger(i))throw new Error("'x' argument must contain non-negative integers");i>a&&(a=i)}let u=Math.max(a+1,e);if(t!==void 0){if(t.size!==o)throw new Error("weights array must have same length as x");let s=t.data,i=new Float64Array(u);for(let c=0;c<o;c++){let l=Number(n[c]);i[l]+=Number(s[c])}return D.fromData(i,[u],"float64")}else{let s=new Float64Array(u);for(let i=0;i<o;i++){let c=Number(n[i]);s[c]++}return D.fromData(s,[u],"float64")}}function vi(r,t,e=!1){q(r.dtype,"digitize","digitize requires real numbers."),q(t.dtype,"digitize","digitize requires real numbers.");let n=r.data,o=t.data,a=r.size,u=t.size,s=new Float64Array(a),i=!0;u>1&&(i=Number(o[1])>=Number(o[0]));for(let c=0;c<a;c++){let l=Number(n[c]),m;if(i)e?m=dy(o,u,l):m=At(o,u,l);else if(e)for(m=0;m<u&&Number(o[m])>=l;)m++;else for(m=0;m<u&&Number(o[m])>l;)m++;s[c]=m}return D.fromData(s,[...r.shape],"float64")}function dy(r,t,e){let n=0,o=t;for(;n<o;){let a=n+o>>>1;Number(r[a])<e?n=a+1:o=a}return n}function At(r,t,e){let n=0,o=t;for(;n<o;){let a=n+o>>>1;Number(r[a])<=e?n=a+1:o=a}return n}function Ti(r,t=10,e,n=!1,o){q(r.dtype,"histogram","histogram requires real numbers."),typeof t!="number"&&q(t.dtype,"histogram","histogram requires real numbers.");let a=r.data,u=r.size,s;if(typeof t=="number"){let m,y;if(e)[m,y]=e;else{m=1/0,y=-1/0;for(let f=0;f<u;f++){let p=Number(a[f]);p<m&&(m=p),p>y&&(y=p)}m===y&&(m=m-.5,y=y+.5)}s=[];let d=(y-m)/t;for(let f=0;f<=t;f++)s.push(m+f*d)}else{let m=t.data;s=[];for(let y=0;y<t.size;y++)s.push(Number(m[y]))}let i=s.length-1,c=new Float64Array(i),l=o?.data;for(let m=0;m<u;m++){let y=Number(a[m]),d=l?Number(l[m]):1,f=At(s,s.length,y)-1;if(!(f<0)){if(f>=i)if(y===s[i])f=i-1;else continue;c[f]+=d}}if(n){let m=0;for(let y=0;y<i;y++)m+=c[y];for(let y=0;y<i;y++){let d=s[y+1]-s[y];c[y]=c[y]/(m*d)}}return{hist:D.fromData(c,[i],"float64"),bin_edges:D.fromData(new Float64Array(s),[s.length],"float64")}}function Ei(r,t,e=10,n,o=!1,a){q(r.dtype,"histogram2d","histogram2d requires real numbers."),q(t.dtype,"histogram2d","histogram2d requires real numbers.");let u=r.data,s=t.data,i=r.size;if(t.size!==i)throw new Error("x and y must have the same length");let c,l,m,y;if(typeof e=="number"?(m=e,y=e):Array.isArray(e)&&e.length===2?(e[0],m=e[0],y=e[1]):(m=10,y=10),typeof m=="number"){let h,b;if(n)[h,b]=n[0];else{h=1/0,b=-1/0;for(let S=0;S<i;S++){let x=Number(u[S]);x<h&&(h=x),x>b&&(b=x)}h===b&&(h-=.5,b+=.5)}c=[];let A=(b-h)/m;for(let S=0;S<=m;S++)c.push(h+S*A)}else{let h=m.data;c=[];for(let b=0;b<m.size;b++)c.push(Number(h[b]))}if(typeof y=="number"){let h,b;if(n)[h,b]=n[1];else{h=1/0,b=-1/0;for(let S=0;S<i;S++){let x=Number(s[S]);x<h&&(h=x),x>b&&(b=x)}h===b&&(h-=.5,b+=.5)}l=[];let A=(b-h)/y;for(let S=0;S<=y;S++)l.push(h+S*A)}else{let h=y.data;l=[];for(let b=0;b<y.size;b++)l.push(Number(h[b]))}let d=c.length-1,f=l.length-1,p=new Float64Array(d*f),g=a?.data;for(let h=0;h<i;h++){let b=Number(u[h]),A=Number(s[h]),S=g?Number(g[h]):1,x=At(c,c.length,b)-1,w=At(l,l.length,A)-1;if(x<0||x>=d)if(b===c[d]&&x===d)x=d-1;else continue;if(w<0||w>=f)if(A===l[f]&&w===f)w=f-1;else continue;p[x*f+w]+=S}if(o){let h=0;for(let b=0;b<p.length;b++)h+=p[b];for(let b=0;b<d;b++)for(let A=0;A<f;A++){let S=c[b+1]-c[b],x=l[A+1]-l[A],w=S*x;p[b*f+A]=p[b*f+A]/(h*w)}}return{hist:D.fromData(p,[d,f],"float64"),x_edges:D.fromData(new Float64Array(c),[c.length],"float64"),y_edges:D.fromData(new Float64Array(l),[l.length],"float64")}}function Oi(r,t=10,e,n=!1,o){q(r.dtype,"histogramdd","histogramdd requires real numbers.");let a=r.shape,u=r.data,s,i;if(a.length===1)s=a[0],i=1;else if(a.length===2)s=a[0],i=a[1];else throw new Error("sample must be 1D or 2D array");let c;if(typeof t=="number")c=new Array(i).fill(t);else if(c=t,c.length!==i)throw new Error("bins array length must match number of dimensions");let l=[];for(let h=0;h<i;h++){let b,A;if(e&&e[h])[b,A]=e[h];else{b=1/0,A=-1/0;for(let N=0;N<s;N++){let I=Number(i===1?u[N]:u[N*i+h]);I<b&&(b=I),I>A&&(A=I)}b===A&&(b-=.5,A+=.5)}let S=c[h],x=[],w=(A-b)/S;for(let N=0;N<=S;N++)x.push(b+N*w);l.push(x)}let m=c.slice(),y=m.reduce((h,b)=>h*b,1),d=new Float64Array(y),f=new Array(i);f[i-1]=1;for(let h=i-2;h>=0;h--)f[h]=f[h+1]*c[h+1];let p=o?.data;for(let h=0;h<s;h++){let b=p?Number(p[h]):1,A=0,S=!1;for(let x=0;x<i;x++){let w=Number(i===1?u[h]:u[h*i+x]),N=l[x],I=c[x],z=At(N,N.length,w)-1;if(z<0||z>=I)if(w===N[I]&&z===I)z=I-1;else{S=!0;break}A+=z*f[x]}S||(d[A]+=b)}if(n){let h=0;for(let A=0;A<y;A++)h+=d[A];let b=new Float64Array(y);for(let A=0;A<y;A++){let S=1,x=A;for(let w=0;w<i;w++){let N=Math.floor(x/f[w])%c[w],I=l[w];S*=I[N+1]-I[N]}b[A]=S}for(let A=0;A<y;A++)d[A]=d[A]/(h*b[A])}let g=l.map(h=>D.fromData(new Float64Array(h),[h.length],"float64"));return{hist:D.fromData(d,m,"float64"),edges:g}}function yn(r,t,e="full"){let n=r.data,o=t.data,a=r.size,u=t.size,s=M(r.dtype)||M(t.dtype),i=a+u-1;if(s){let l=new Float64Array(i),m=new Float64Array(i),y=M(r.dtype),d=M(t.dtype);for(let p=0;p<i;p++){let g=0,h=0,b=p-u+1;for(let A=0;A<a;A++){let S=A-b;if(S>=0&&S<u){let x,w,N,I;y?(x=n[A*2],w=n[A*2+1]):(x=Number(n[A]),w=0),d?(N=o[S*2],I=o[S*2+1]):(N=Number(o[S]),I=0),g+=x*N+w*I,h+=w*N-x*I}}l[p]=g,m[p]=h}let f=(p,g,h,b=0)=>{let A=new Float64Array(h*2);for(let S=0;S<h;S++)A[S*2]=p[b+S],A[S*2+1]=g[b+S];return D.fromData(A,[h],"complex128")};if(e==="full")return f(l,m,i);if(e==="same"){let p=Math.floor((i-a)/2);return f(l,m,a,p)}else{let p=Math.max(a,u)-Math.min(a,u)+1,g=Math.min(a,u)-1;return f(l,m,p,g)}}let c=new Float64Array(i);for(let l=0;l<i;l++){let m=0,y=l-u+1;for(let d=0;d<a;d++){let f=d-y;f>=0&&f<u&&(m+=Number(n[d])*Number(o[f]))}c[l]=m}if(e==="full")return D.fromData(c,[i],"float64");if(e==="same"){let l=Math.floor((i-a)/2),m=new Float64Array(a);for(let y=0;y<a;y++)m[y]=c[l+y];return D.fromData(m,[a],"float64")}else{let l=Math.max(a,u)-Math.min(a,u)+1,m=Math.min(a,u)-1,y=new Float64Array(l);for(let d=0;d<l;d++)y[d]=c[m+d];return D.fromData(y,[l],"float64")}}function Ci(r,t,e="full"){let n=t.data,o=t.size,a=M(t.dtype),u;if(a){let s=new Float64Array(o*2);for(let i=0;i<o;i++){let c=o-1-i;s[i*2]=n[c*2],s[i*2+1]=n[c*2+1]}u=D.fromData(s,[o],t.dtype)}else{let s=new Float64Array(o);for(let i=0;i<o;i++)s[i]=Number(n[o-1-i]);u=D.fromData(s,[o],"float64")}if(a){let s=u.data;for(let i=0;i<o;i++)s[i*2+1]=-s[i*2+1]}return yn(r,u,e)}function dn(r,t,e=!0,n=!1,o){let a=r.shape,u=r.data,s=M(r.dtype)||t!==void 0&&M(t.dtype),i;if(o!==void 0?i=o:i=n?0:1,a.length===1)if(t!==void 0){let f=t.data,p=r.size,g=M(r.dtype),h=M(t.dtype);if(t.size!==p)throw new Error("m and y must have same length");if(s){let I=0,z=0,F=0,_=0;for(let G=0;G<p;G++)g?(I+=u[G*2],z+=u[G*2+1]):I+=Number(u[G]),h?(F+=f[G*2],_+=f[G*2+1]):F+=Number(f[G]);I/=p,z/=p,F/=p,_/=p;let T=0,E=0,C=0,k=0,V=0,R=0,L=0,P=0;for(let G=0;G<p;G++){let or,ar,sr,mr;g?(or=u[G*2]-I,ar=u[G*2+1]-z):(or=Number(u[G])-I,ar=0),h?(sr=f[G*2]-F,mr=f[G*2+1]-_):(sr=Number(f[G])-F,mr=0),T+=or*or+ar*ar,C+=sr*sr+mr*mr,V+=or*sr+ar*mr,R+=ar*sr-or*mr,L+=sr*or+mr*ar,P+=mr*or-sr*ar}let Q=p-i;if(Q<=0){let G=new Float64Array(8);return G.fill(NaN),D.fromData(G,[2,2],"complex128")}T/=Q,C/=Q,V/=Q,R/=Q,L/=Q,P/=Q;let er=new Float64Array(8);return er[0]=T,er[1]=E,er[2]=V,er[3]=R,er[4]=L,er[5]=P,er[6]=C,er[7]=k,D.fromData(er,[2,2],"complex128")}let b=0,A=0;for(let I=0;I<p;I++)b+=Number(u[I]),A+=Number(f[I]);b/=p,A/=p;let S=0,x=0,w=0;for(let I=0;I<p;I++){let z=Number(u[I])-b,F=Number(f[I])-A;S+=z*z,x+=F*F,w+=z*F}let N=p-i;return N<=0?D.fromData(new Float64Array([NaN,NaN,NaN,NaN]),[2,2],"float64"):(S/=N,x/=N,w/=N,D.fromData(new Float64Array([S,w,w,x]),[2,2],"float64"))}else{let f=r.size;if(s){let b=0,A=0;for(let w=0;w<f;w++)b+=u[w*2],A+=u[w*2+1];b/=f,A/=f;let S=0;for(let w=0;w<f;w++){let N=u[w*2]-b,I=u[w*2+1]-A;S+=N*N+I*I}let x=f-i;return x<=0?D.fromData(new Float64Array([NaN,0]),[],"complex128"):(S/=x,D.fromData(new Float64Array([S,0]),[],"complex128"))}let p=0;for(let b=0;b<f;b++)p+=Number(u[b]);p/=f;let g=0;for(let b=0;b<f;b++){let A=Number(u[b])-p;g+=A*A}let h=f-i;return h<=0?D.fromData(new Float64Array([NaN]),[],"float64"):(g/=h,D.fromData(new Float64Array([g]),[],"float64"))}let c,l;e?(c=a[0],l=a[1]):(c=a[1],l=a[0]);let m=l-i;if(s){let f=new Float64Array(c),p=new Float64Array(c);for(let h=0;h<c;h++){let b=0,A=0;for(let S=0;S<l;S++){let x=e?h*l+S:S*c+h;b+=u[x*2],A+=u[x*2+1]}f[h]=b/l,p[h]=A/l}let g=new Float64Array(c*c*2);if(m<=0)return g.fill(NaN),D.fromData(g,[c,c],"complex128");for(let h=0;h<c;h++)for(let b=0;b<c;b++){let A=0,S=0;for(let w=0;w<l;w++){let N=e?h*l+w:w*c+h,I=e?b*l+w:w*c+b,z=u[N*2]-f[h],F=u[N*2+1]-p[h],_=u[I*2]-f[b],T=u[I*2+1]-p[b];A+=z*_+F*T,S+=F*_-z*T}let x=(h*c+b)*2;g[x]=A/m,g[x+1]=S/m}return D.fromData(g,[c,c],"complex128")}let y=new Float64Array(c);for(let f=0;f<c;f++){let p=0;for(let g=0;g<l;g++){let h=e?f*l+g:g*c+f;p+=Number(u[h])}y[f]=p/l}let d=new Float64Array(c*c);if(m<=0)return d.fill(NaN),D.fromData(d,[c,c],"float64");for(let f=0;f<c;f++)for(let p=f;p<c;p++){let g=0;for(let b=0;b<l;b++){let A=e?f*l+b:b*c+f,S=e?p*l+b:b*c+p,x=Number(u[A])-y[f],w=Number(u[S])-y[p];g+=x*w}let h=g/m;d[f*c+p]=h,d[p*c+f]=h}return D.fromData(d,[c,c],"float64")}function Ui(r,t,e=!0){let n=M(r.dtype)||t!==void 0&&M(t.dtype);if(r.shape.length===1&&t===void 0)return n?D.fromData(new Float64Array([1,0]),[],"complex128"):D.fromData(new Float64Array([1]),[],"float64");let o=dn(r,t,e,!1),a=o.data,s=o.shape[0];if(n){let c=new Float64Array(s*s*2);for(let l=0;l<s;l++)for(let m=0;m<s;m++){let y=a[(l*s+m)*2],d=a[(l*s+m)*2+1],f=a[(l*s+l)*2],p=a[(m*s+m)*2],g=(l*s+m)*2;if(f<=0||p<=0)c[g]=NaN,c[g+1]=NaN;else{let h=Math.sqrt(f*p);c[g]=y/h,c[g+1]=d/h}}return D.fromData(c,[s,s],"complex128")}let i=new Float64Array(s*s);for(let c=0;c<s;c++)for(let l=0;l<s;l++){let m=Number(a[c*s+l]),y=Number(a[c*s+c]),d=Number(a[l*s+l]);y<=0||d<=0?i[c*s+l]=NaN:i[c*s+l]=m/Math.sqrt(y*d)}return D.fromData(i,[s,s],"float64")}var $i=W(()=>{"use strict";X();J()});function Ir(r,t=tr){let e=D.zeros(r,t);return new v(e)}function gn(r,t=tr){let e=D.ones(r,t);return new v(e)}function Ay(r){let t=[],e=r;for(;Array.isArray(e);)t.push(e.length),e=e[0];return t}function Ri(r){return typeof r=="bigint"?!0:Array.isArray(r)?r.some(t=>Ri(t)):!1}function ki(r){return to(r)?!0:Array.isArray(r)?r.some(t=>ki(t)):!1}function by(r){let t=[];function e(n){Array.isArray(n)?n.forEach(o=>e(o)):t.push(n)}return e(r),t}function rr(r,t){if(r instanceof v)return!t||r.dtype===t?r.copy():r.astype(t);let e=Ri(r),n=ki(r),o=Ay(r),a=o.reduce((d,f)=>d*f,1),u=t;u||(n?u="complex128":e?u="int64":u=tr);let s=M(u),i=j(u);if(!i)throw new Error(`Cannot create array with dtype ${u}`);let c=s?a*2:a,l=new i(c),m=by(r);if(B(u)){let d=l;for(let f=0;f<a;f++){let p=m[f];d[f]=typeof p=="bigint"?p:BigInt(Math.round(Number(p)))}}else if(u==="bool"){let d=l;for(let f=0;f<a;f++)d[f]=m[f]?1:0}else if(s){let d=l;for(let f=0;f<a;f++){let p=m[f],g,h;p instanceof O?(g=p.re,h=p.im):typeof p=="object"&&p!==null&&"re"in p?(g=p.re,h=p.im??0):(g=Number(p),h=0),d[f*2]=g,d[f*2+1]=h}}else{let d=l;for(let f=0;f<a;f++){let p=m[f];d[f]=Number(p)}}let y=D.fromData(l,o,u);return new v(y)}function qi(r,t,e=1,n=tr){let o=r,a=t;if(t===void 0&&(o=0,a=r),a===void 0)throw new Error("stop is required");let u=Math.max(0,Math.ceil((a-o)/e)),s=j(n);if(!s)throw new Error(`Cannot create arange array with dtype ${n}`);let i=new s(u);if(B(n))for(let l=0;l<u;l++)i[l]=BigInt(Math.round(o+l*e));else if(n==="bool")for(let l=0;l<u;l++)i[l]=o+l*e!==0?1:0;else for(let l=0;l<u;l++)i[l]=o+l*e;let c=D.fromData(i,[u],n);return new v(c)}function Vi(r,t,e=50,n=tr){if(e<0)throw new Error("num must be non-negative");if(e===0)return rr([],n);if(e===1)return rr([r],n);let o=j(n);if(!o)throw new Error(`Cannot create linspace array with dtype ${n}`);let a=new o(e),u=(t-r)/(e-1);if(B(n))for(let i=0;i<e;i++)a[i]=BigInt(Math.round(r+i*u));else if(n==="bool")for(let i=0;i<e;i++)a[i]=r+i*u!==0?1:0;else for(let i=0;i<e;i++)a[i]=r+i*u;let s=D.fromData(a,[e],n);return new v(s)}function Pi(r,t,e=50,n=10,o=tr){if(e<0)throw new Error("num must be non-negative");if(e===0)return rr([],o);if(e===1)return rr([Math.pow(n,r)],o);let a=j(o);if(!a)throw new Error(`Cannot create logspace array with dtype ${o}`);let u=new a(e),s=(t-r)/(e-1);if(B(o))for(let c=0;c<e;c++){let l=r+c*s;u[c]=BigInt(Math.round(Math.pow(n,l)))}else if(o==="bool")for(let c=0;c<e;c++){let l=r+c*s;u[c]=Math.pow(n,l)!==0?1:0}else for(let c=0;c<e;c++){let l=r+c*s;u[c]=Math.pow(n,l)}let i=D.fromData(u,[e],o);return new v(i)}function ji(r,t,e=50,n=tr){if(e<0)throw new Error("num must be non-negative");if(r===0||t===0)throw new Error("Geometric sequence cannot include zero");if(e===0)return rr([],n);if(e===1)return rr([r],n);let o=Math.sign(r),a=Math.sign(t);if(o!==a)throw new Error("Geometric sequence cannot contain both positive and negative values");let u=j(n);if(!u)throw new Error(`Cannot create geomspace array with dtype ${n}`);let s=new u(e),i=Math.log(Math.abs(r)),l=(Math.log(Math.abs(t))-i)/(e-1);if(B(n))for(let y=0;y<e;y++){let d=o*Math.exp(i+y*l);s[y]=BigInt(Math.round(d))}else if(n==="bool")for(let y=0;y<e;y++){let d=o*Math.exp(i+y*l);s[y]=d!==0?1:0}else for(let y=0;y<e;y++){let d=o*Math.exp(i+y*l);s[y]=d}let m=D.fromData(s,[e],n);return new v(m)}function An(r,t,e=0,n=tr){let o=t??r,a=Ir([r,o],n),u=a.data;if(B(n)){let s=u;for(let i=0;i<r;i++){let c=i+e;c>=0&&c<o&&(s[i*o+c]=BigInt(1))}}else{let s=u;for(let i=0;i<r;i++){let c=i+e;c>=0&&c<o&&(s[i*o+c]=1)}}return a}function bn(r,t=tr){return Ir(r,t)}function hn(r,t,e){let n=e;n||(typeof t=="bigint"?n="int64":typeof t=="boolean"?n="bool":Number.isInteger(t)?n="int32":n=tr);let o=j(n);if(!o)throw new Error(`Cannot create full array with dtype ${n}`);let a=r.reduce((i,c)=>i*c,1),u=new o(a);if(B(n)){let i=typeof t=="bigint"?t:BigInt(Math.round(Number(t)));u.fill(i)}else n==="bool"?u.fill(t?1:0):u.fill(Number(t));let s=D.fromData(u,r,n);return new v(s)}function Li(r,t=tr){return An(r,r,0,t)}function bt(r,t){return r instanceof v?!t||r.dtype===t?r:r.astype(t):rr(r,t)}function Wi(r){return r.copy()}function Gi(r,t){return Ir(Array.from(r.shape),t??r.dtype)}function Zi(r,t){return gn(Array.from(r.shape),t??r.dtype)}function Yi(r,t){return bn(Array.from(r.shape),t??r.dtype)}function Hi(r,t,e){return hn(Array.from(r.shape),t,e??r.dtype)}function Ji(r,t){return bt(r,t)}function Xi(r,t){let e=bt(r,t);return e.flags.C_CONTIGUOUS?e:e.copy()}function Qi(r,t){return bt(r,t).copy()}function Sn(r,t=0){if(r.ndim===1){let e=r.size,n=e+Math.abs(t),o=Ir([n,n],r.dtype);for(let a=0;a<e;a++){let u=t>=0?a:a-t,s=t>=0?a+t:a;o.set([u,s],r.get([a]))}return o}else if(r.ndim===2){let[e,n]=r.shape,o,a,u;if(t>=0?(o=0,a=t,u=Math.min(e,n-t)):(o=-t,a=0,u=Math.min(e+t,n)),u<=0)return Ir([0],r.dtype);let s=j(r.dtype),i=new s(u);for(let l=0;l<u;l++){let m=r.get([o+l,a+l]);B(r.dtype)?i[l]=typeof m=="bigint"?m:BigInt(m):i[l]=m}let c=D.fromData(i,[u],r.dtype);return new v(c)}else throw new Error("Input must be 1-D or 2-D")}function Ki(r,t=0){let e=r.flatten();return Sn(e,t)}function ru(r,t,e=tr){let n=t.reduce((c,l)=>c*l,1),o=j(e);if(!o)throw new Error(`Cannot create array with dtype ${e}`);let a=new o(n),u=t.length,s=new Array(u).fill(0);for(let c=0;c<n;c++){let l=r(...s);B(e)?a[c]=typeof l=="bigint"?l:BigInt(Number(l)):e==="bool"?a[c]=l?1:0:a[c]=Number(l);for(let m=u-1;m>=0&&(s[m]++,!(s[m]<t[m]));m--)s[m]=0}let i=D.fromData(a,t,e);return new v(i)}function tu(...r){let t=[],e="xy";for(let s of r)s instanceof v?t.push(s):typeof s=="object"&&"indexing"in s&&(e=s.indexing||"xy");if(t.length===0)return[];if(t.length===1)return[t[0].copy()];let n=t.map(s=>s.size);e==="xy"&&t.length>=2&&(t=[t[1],t[0],...t.slice(2)],[n[0],n[1]]=[n[1],n[0]]);let o=n,a=o.length,u=[];for(let s=0;s<t.length;s++){let i=t[s],c=i.size,l=new Array(a).fill(1);l[s]=c;let m=i.reshape(...l),y=qt(m.storage,o),d=v._fromStorage(y.copy());u.push(d)}return e==="xy"&&u.length>=2&&([u[0],u[1]]=[u[1],u[0]]),u}function eu(r,t,e=0,n=tr){let o=t??r,a=Ir([r,o],n);for(let u=0;u<r;u++)for(let s=0;s<=u+e&&s<o;s++)s>=0&&a.set([u,s],1);return a}function nu(r,t=0){if(r.ndim<2)throw new Error("Input must have at least 2 dimensions");let e=r.copy(),n=e.shape,o=n[n.length-2],a=n[n.length-1],u=n.slice(0,-2).reduce((s,i)=>s*i,1);for(let s=0;s<u;s++)for(let i=0;i<o;i++)for(let c=0;c<a;c++)if(c>i+t){let l=[],m=s;for(let y=n.length-3;y>=0;y--)l.unshift(m%n[y]),m=Math.floor(m/n[y]);l.push(i,c),e.set(l,0)}return e}function ou(r,t=0){if(r.ndim<2)throw new Error("Input must have at least 2 dimensions");let e=r.copy(),n=e.shape,o=n[n.length-2],a=n[n.length-1],u=n.slice(0,-2).reduce((s,i)=>s*i,1);for(let s=0;s<u;s++)for(let i=0;i<o;i++)for(let c=0;c<a;c++)if(c<i+t){let l=[],m=s;for(let y=n.length-3;y>=0;y--)l.unshift(m%n[y]),m=Math.floor(m/n[y]);l.push(i,c),e.set(l,0)}return e}function au(r,t,e=!1){if(r.ndim!==1)throw new Error("Input must be 1-D");let n=r.size,o=t??n;if(o<0)throw new Error("N must be non-negative");let a=Ir([n,o],r.dtype);for(let u=0;u<n;u++){let s=r.get([u]);for(let i=0;i<o;i++){let c=e?i:o-1-i;a.set([u,i],Math.pow(s,c))}}return a}function su(r,t=tr,e=-1,n=0){let o,a=n;r instanceof ArrayBuffer?o=r:(o=r.buffer,a+=r.byteOffset);let u=hy(t),s=o.byteLength-a,i=Math.floor(s/u),c=e<0?i:Math.min(e,i);if(c<=0)return rr([],t);let l=j(t);if(!l)throw new Error(`Unsupported dtype: ${t}`);let m=new l(o,a,c),y=D.fromData(m,[c],t);return new v(y)}function iu(r,t=tr,e=-1){let n=[],o=0;for(let a of r){if(e>=0&&o>=e)break;n.push(a),o++}return rr(n,t)}function uu(r,t=tr,e=-1){let n=[],o=0;for(let a of r){if(e>=0&&o>=e)break;n.push(a),o++}return rr(n,t)}function cu(r,t=tr,e=-1,n=""){let o;n===""?o=r.trim().split(/\s+/):o=r.split(n);let a=[],u=0;for(let s of o){if(e>=0&&u>=e)break;let i=s.trim();i!==""&&(B(t)?a.push(BigInt(i)):a.push(parseFloat(i)),u++)}return rr(a,t)}function hy(r){switch(r){case"int8":case"uint8":case"bool":return 1;case"int16":case"uint16":return 2;case"int32":case"uint32":case"float32":return 4;case"int64":case"uint64":case"float64":return 8;default:return 8}}function lu(r){return r.sqrt()}function xn(r,t){return r.power(t)}function fu(r){return r.exp()}function mu(r){return r.exp2()}function pu(r){return r.expm1()}function yu(r){return r.log()}function du(r){return r.log2()}function gu(r){return r.log10()}function Au(r){return r.log1p()}function bu(r,t){return r.logaddexp(t)}function hu(r,t){return r.logaddexp2(t)}function Dn(r){return r.absolute()}function Su(r){return r.negative()}function xu(r){return r.sign()}function Du(r,t){return r.mod(t)}function Nn(r,t){return r.divide(t)}function Nu(r,t){return r.floor_divide(t)}function wu(r){return r.positive()}function Iu(r){return r.reciprocal()}function zu(r,t){return r.dot(t)}function _u(r){return r.trace()}function Fu(r,t=0,e=0,n=1){let o=fa(r.storage,t,e,n);return v._fromStorage(o)}function Mu(r,t){let e=pa(r.storage,t.storage);return v._fromStorage(e)}function Bu(r,t){return r.transpose(t)}function vu(r,t){return r.inner(t)}function Tu(r,t){return r.outer(t)}function Eu(r,t,e=2){return r.tensordot(t,e)}function Ou(r){return r.sin()}function Cu(r){return r.cos()}function Uu(r){return r.tan()}function wn(r){return r.arcsin()}function In(r){return r.arccos()}function zn(r){return r.arctan()}function _n(r,t){return r.arctan2(t)}function $u(r,t){return r.hypot(t)}function Ru(r){return r.degrees()}function ku(r){return r.radians()}function qu(r){return r.radians()}function Vu(r){return r.degrees()}function Pu(r){return r.sinh()}function ju(r){return r.cosh()}function Lu(r){return r.tanh()}function Fn(r){return r.arcsinh()}function Mn(r){return r.arccosh()}function Bn(r){return r.arctanh()}function Wu(r,t,e){return r.swapaxes(t,e)}function Gu(r,t,e){return r.moveaxis(t,e)}function qr(r,t=0){if(r.length===0)throw new Error("need at least one array to concatenate");let e=r.map(o=>o.storage),n=Rr(e,t);return v._fromStorage(n)}function Zu(r,t=0){if(r.length===0)throw new Error("need at least one array to stack");let e=r.map(o=>o.storage),n=qo(e,t);return v._fromStorage(n)}function vn(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=Vo(t);return v._fromStorage(e)}function Yu(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=Ue(t);return v._fromStorage(e)}function Hu(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=Po(t);return v._fromStorage(e)}function Ju(r,t,e=0){return jo(r.storage,t,e).map(o=>v._fromStorage(o,r.base??r))}function Xu(r,t,e=0){return mt(r.storage,t,e).map(o=>v._fromStorage(o,r.base??r))}function Qu(r,t){return Wo(r.storage,t).map(n=>v._fromStorage(n,r.base??r))}function Ku(r,t){return Go(r.storage,t).map(n=>v._fromStorage(n,r.base??r))}function rc(r,t){let e=Zo(r.storage,t);return v._fromStorage(e)}function tc(r,t,e){return r.repeat(t,e)}function ec(r){return r.ravel()}function nc(r,t){return r.reshape(...t)}function oc(r,t){return r.squeeze(t)}function ac(r,t){return r.expand_dims(t)}function Lt(r,t){let e=Ho(r.storage,t);return v._fromStorage(e)}function sc(r){if(r.ndim<2)throw new Error("Input must be at least 2-D");return Lt(r,1)}function ic(r){if(r.ndim<2)throw new Error("Input must be at least 2-D");return Lt(r,0)}function uc(r,t=1,e=[0,1]){let n=Jo(r.storage,t,e);return v._fromStorage(n)}function cc(r,t,e){let n=Xo(r.storage,t,e);return v._fromStorage(n)}function lc(r,t,e=0){let n=Qo(r.storage,t,e);return v._fromStorage(n,r.base??r)}function fc(...r){let t=r.map(o=>o.storage),n=ea(t).map((o,a)=>o===t[a]?r[a]:v._fromStorage(o));return n.length===1?n[0]:n}function mc(...r){let t=r.map(o=>o.storage),n=na(t).map((o,a)=>o===t[a]?r[a]:v._fromStorage(o));return n.length===1?n[0]:n}function pc(...r){let t=r.map(o=>o.storage),n=oa(t).map((o,a)=>o===t[a]?r[a]:v._fromStorage(o));return n.length===1?n[0]:n}function yc(r,t){return Ko(r.storage,t).map(n=>v._fromStorage(n,r.base??r))}function dc(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=ra(t);return v._fromStorage(e)}function gc(r){return vn(r)}function Ac(r,t){let e=ta(r.storage,t);return v._fromStorage(e)}function bc(r,t,e){let n=t instanceof v?t:rr(t,r.dtype);if(e===void 0){let o=r.flatten(),a=n.flatten();return qr([o,a])}return qr([r,n],e)}function hc(r,t,e){let n=r.dtype;if(e===void 0){let d=r.flatten(),p=(Array.isArray(t)?t:[t]).map(S=>S<0?d.size+S:S),g=[];for(let S=0;S<d.size;S++)p.includes(S)||g.push(S);let h=j(n),b=new h(g.length);for(let S=0;S<g.length;S++){let x=d.get([g[S]]);B(n)?b[S]=typeof x=="bigint"?x:BigInt(x):b[S]=x}let A=D.fromData(b,[g.length],n);return new v(A)}let o=r.shape,a=o.length,u=e<0?a+e:e;if(u<0||u>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);let s=o[u],i=Array.isArray(t)?t:[t],c=new Set(i.map(d=>d<0?s+d:d)),l=[],m=0;for(let d=0;d<=s;d++)(c.has(d)||d===s)&&(d>m&&l.push([m,d]),m=d+1);if(l.length===0){let d=[...o];return d[u]=0,Ir(d,n)}let y=[];for(let[d,f]of l){let p=o.map(()=>":");p[u]=`${d}:${f}`,y.push(r.slice(...p))}return qr(y,u)}function Sc(r,t,e,n){let o=e instanceof v?e:rr(e,r.dtype);if(n===void 0){let m=r.flatten(),y=o.flatten(),d=t<0?m.size+t:t;if(d<0||d>m.size)throw new Error(`index ${t} is out of bounds for array of size ${m.size}`);let f=d>0?m.slice(`0:${d}`):null,p=d<m.size?m.slice(`${d}:`):null,g=[];return f&&g.push(f),g.push(y),p&&g.push(p),qr(g)}let a=r.shape,u=a.length,s=n<0?u+n:n;if(s<0||s>=u)throw new Error(`axis ${n} is out of bounds for array of dimension ${u}`);let i=a[s],c=t<0?i+t:t;if(c<0||c>i)throw new Error(`index ${t} is out of bounds for axis ${n} with size ${i}`);let l=[];if(c>0){let m=a.map(()=>":");m[s]=`0:${c}`,l.push(r.slice(...m))}if(l.push(o),c<i){let m=a.map(()=>":");m[s]=`${c}:`,l.push(r.slice(...m))}return qr(l,s)}function xc(r,t,e="constant",n=0){let o=r.shape,a=o.length,u=r.dtype,s;if(typeof t=="number"?s=o.map(()=>[t,t]):Array.isArray(t)&&typeof t[0]=="number"?s=o.map(()=>t):s=t,s.length!==a)throw new Error(`pad_width must have ${a} elements`);let i=o.map((p,g)=>p+s[g][0]+s[g][1]),c=i.reduce((p,g)=>p*g,1),l=j(u),m=new l(c),y=B(u);e==="constant"&&(y?m.fill(BigInt(n)):m.fill(n));let d=new Array(a).fill(0);for(let p=0;p<c;p++){let g=!0,h=[];for(let A=0;A<a;A++){let[S]=s[A],x=d[A]-S;if(x<0||x>=o[A]){g=!1;break}h.push(x)}let b;if(g)b=r.get(h);else if(e==="constant"){for(let A=a-1;A>=0&&(d[A]++,!(d[A]<i[A]));A--)d[A]=0;continue}else{let A=[];for(let S=0;S<a;S++){let[x]=s[S],w=d[S]-x,N=o[S];w<0?e==="edge"?w=0:e==="reflect"?(w=-w,w>=N&&(w=N-1)):e==="symmetric"?(w=-w-1,w>=N&&(w=N-1),w<0&&(w=0)):e==="wrap"&&(w=(w%N+N)%N):w>=N&&(e==="edge"?w=N-1:e==="reflect"?(w=2*N-w-2,w<0&&(w=0)):e==="symmetric"?(w=2*N-w-1,w<0&&(w=0)):e==="wrap"&&(w=w%N)),A.push(Math.max(0,Math.min(N-1,w)))}b=r.get(A)}y?m[p]=typeof b=="bigint"?b:BigInt(Number(b)):m[p]=Number(b);for(let A=a-1;A>=0&&(d[A]++,!(d[A]<i[A]));A--)d[A]=0}let f=D.fromData(m,i,u);return new v(f)}function Dc(r,t){let e=qt(r.storage,t);return v._fromStorage(e,r.base??r)}function Nc(...r){let t=r.map(n=>n.storage);return os(t).map((n,o)=>v._fromStorage(n,r[o].base??r[o]))}function wc(...r){return ge(...r)}function Ic(r,t,e){return r.take(t,e)}function zc(r,t,e){r.put(t,e)}function _c(r,t,e=0){return r.iindex(t,e)}function Fc(r,t,e){return r.bindex(t,e)}function Mc(r,t,e){if(e!==void 0)throw new Error("copyto with where parameter is not yet implemented");let n=r.storage,o=r.shape,a=r.size,u=r.dtype;if(typeof t=="number"||typeof t=="bigint"){r.fill(t);return}let s=t.storage,i=t.shape,c=gr([i,o]);if(!c)throw new Error(`could not broadcast input array from shape (${i.join(",")}) into shape (${o.join(",")})`);if(c.length!==o.length||!c.every((m,y)=>m===o[y]))throw new Error(`could not broadcast input array from shape (${i.join(",")}) into shape (${o.join(",")})`);let l=qt(s,o);if(B(u))for(let m=0;m<a;m++){let y=l.iget(m),d=typeof y=="bigint"?y:BigInt(Math.round(Number(y)));n.iset(m,d)}else if(u==="bool")for(let m=0;m<a;m++){let y=l.iget(m);n.iset(m,y?1:0)}else for(let m=0;m<a;m++){let y=l.iget(m);n.iset(m,Number(y))}}function Bc(r,t){let e=t.map(o=>o.storage),n=is(r.storage,e);return v._fromStorage(n)}function vc(r,t,e=!1){return us(r.storage,t.storage,e)}function Tc(r,t){return Oo(r.storage,t.storage)}function Tn(r,t){return v._fromStorage(_e(r.storage,t))}function En(r,t){return v._fromStorage(Fe(r.storage,t))}function On(r,t,e=!1){return r.max(t,e)}function Cn(r,t,e=!1){return r.min(t,e)}function Ec(r,t,e=!1){let n=Me(r.storage,t,e);return typeof n=="number"||n instanceof O?n:v._fromStorage(n)}function Oc(r,t,e=!1){let n=Be(r.storage,t,e);return typeof n=="number"?n:v._fromStorage(n)}function Cc(r,t,e,n=!1){let o=ve(r.storage,t,e,n);return typeof o=="number"?o:v._fromStorage(o)}function Uc(r,t,e,n=!1){let o=Hr(r.storage,t,e,n);return typeof o=="number"?o:v._fromStorage(o)}function $c(r,t,e,n=!1){let o=e?e.storage:void 0,a=at(r.storage,t,o,n);return typeof a=="number"||a instanceof O?a:v._fromStorage(a)}function Rc(r,t,e=!1){let n=Ot(r.storage,t,e);return typeof n=="number"||n instanceof O?n:v._fromStorage(n)}function kc(r,t,e=!1){let n=Ct(r.storage,t,e);return typeof n=="number"||n instanceof O?n:v._fromStorage(n)}function qc(r,t,e=!1){let n=Ut(r.storage,t,e);return typeof n=="number"||n instanceof O?n:v._fromStorage(n)}function Vc(r,t,e=0,n=!1){let o=Yr(r.storage,t,e,n);return typeof o=="number"?o:v._fromStorage(o)}function Pc(r,t,e=0,n=!1){let o=Te(r.storage,t,e,n);return typeof o=="number"?o:v._fromStorage(o)}function jc(r,t,e=!1){let n=st(r.storage,t,e);return typeof n=="number"||n instanceof O?n:v._fromStorage(n)}function Lc(r,t,e=!1){let n=it(r.storage,t,e);return typeof n=="number"||n instanceof O?n:v._fromStorage(n)}function Wc(r,t){let e=ut(r.storage,t);return typeof e=="number"?e:v._fromStorage(e)}function Gc(r,t){let e=ct(r.storage,t);return typeof e=="number"?e:v._fromStorage(e)}function Zc(r,t){return v._fromStorage(Ee(r.storage,t))}function Yc(r,t){return v._fromStorage(Oe(r.storage,t))}function Hc(r,t,e=!1){let n=$t(r.storage,t,e);return typeof n=="number"?n:v._fromStorage(n)}function Jc(r){return r.cbrt()}function Xc(r){return r.fabs()}function Qc(r,t){return r.divmod(t)}function Kc(r){return r.square()}function rl(r,t){return r.remainder(t)}function tl(r,t){return r.heaviside(t)}function el(r,t){let e=typeof t=="number"?t:t.storage;return v._fromStorage(bo(r.storage,e))}function nl(r,t){let e=typeof t=="number"?t:t.storage;return v._fromStorage(ho(r.storage,e))}function ol(r){let[t,e]=So(r.storage);return[v._fromStorage(t),v._fromStorage(e)]}function al(r,t){let e=typeof t=="number"?t:t.storage;return v._fromStorage(xo(r.storage,e))}function sl(r,t){let e=typeof t=="number"?t:t.storage;return v._fromStorage(Do(r.storage,e))}function il(r,t){let e=typeof t=="number"?t:t.storage;return v._fromStorage(No(r.storage,e))}function ul(r){let[t,e]=wo(r.storage);return[v._fromStorage(t),v._fromStorage(e)]}function cl(r,t){return r.bitwise_and(t)}function ll(r,t){return r.bitwise_or(t)}function fl(r,t){return r.bitwise_xor(t)}function ml(r){return r.bitwise_not()}function pl(r){return r.invert()}function yl(r,t){return r.left_shift(t)}function dl(r,t){return r.right_shift(t)}function gl(r,t=-1,e="big"){let n=Ts(r.storage,t,e);return v._fromStorage(n)}function Al(r,t=-1,e=-1,n="big"){let o=Es(r.storage,t,e,n);return v._fromStorage(o)}function bl(r,t){return r.logical_and(t)}function hl(r,t){return r.logical_or(t)}function Sl(r){return r.logical_not()}function xl(r,t){return r.logical_xor(t)}function Dl(r){return r.isfinite()}function Nl(r){return r.isinf()}function wl(r){return r.isnan()}function Il(r){return r.isnat()}function zl(r,t){return r.copysign(t)}function _l(r){return r.signbit()}function Fl(r,t){return r.nextafter(t)}function Ml(r){return r.spacing()}function Bl(r){return v._fromStorage(Ys(r.storage))}function vl(r){return Hs(r.storage)}function Tl(r){return v._fromStorage(Js(r.storage))}function El(r){return Xs(r.storage)}function Ol(r){return v._fromStorage(ii(r.storage))}function Cl(r){return v._fromStorage(ui(r.storage))}function Un(r){return v._fromStorage(ci(r.storage))}function $l(r,t=!1){return v._fromStorage(li(r.storage,t))}function Rl(r){return v._fromStorage(Qs(r.storage))}function kl(r){return v._fromStorage(Ks(r.storage))}function ql(r){return ri(r.storage)}function Vl(r,t=100){return v._fromStorage(ti(r.storage,t))}function Pl(r){return ei(r)}function jl(r){return ni(r)}function Ll(r,t){return oi(r,t)}function Wl(r,t){return ai(r,t)}function Gl(r,...t){let e=t.map(o=>o.storage),n=ma(r,...e);return typeof n=="number"||typeof n=="bigint"||n instanceof O?n:v._fromStorage(n)}function Yl(r,t,e){return v._fromStorage(cs(r.storage,t.storage,e))}function Hl(r,t,e,n){ls(r.storage,t.storage,e.storage,n)}function Jl(r,t,e){let n=e instanceof v?e.storage:e;fs(r.storage,t.storage,n)}function Xl(r,t,e){return v._fromStorage(Ge(r.storage,t.storage,e))}function Ql(r,t,e=0){let n=r.map(a=>a.storage),o=t.map(a=>a.storage);return v._fromStorage(ms(n,o,e))}function Kl(r,t,e){ps(r.storage,t.storage,e.storage)}function rf(r,t,e=!1){let n=typeof t=="number"?t:t.storage;Ds(r.storage,n,e)}function tf(r,t=2){return Ze(r,t).map(n=>v._fromStorage(n))}function ef(r){return ys(r.storage).map(e=>v._fromStorage(e))}function nf(r,t=0,e){return Ye(r,t,e).map(o=>v._fromStorage(o))}function of(r,t=0){return ds(r.storage,t).map(n=>v._fromStorage(n))}function af(r,t=0,e){return He(r,t,e).map(o=>v._fromStorage(o))}function sf(r,t=0){return gs(r.storage,t).map(n=>v._fromStorage(n))}function uf(r,t,e=0){return As(r,(a,u)=>t(a,u).storage,e).map(a=>v._fromStorage(a))}function cf(r,t="int32"){return v._fromStorage(bs(r,t))}function lf(...r){return hs(...r.map(e=>e.storage)).map(e=>v._fromStorage(e))}function ff(r,t,e="raise"){let n=r.map(o=>o.storage);return v._fromStorage(Ss(n,t,e))}function mf(r,t,e="C"){let n=r instanceof v?r.storage:r;return xs(n,t,e).map(a=>v._fromStorage(a))}function pf(r,t=-1){return v._fromStorage(Xe(r.storage,t))}function yf(r,t=-1){return v._fromStorage(Qe(r.storage,t))}function df(r){let t=r.map(e=>e.storage);return v._fromStorage(mi(t))}function gf(r,t,e=-1){return v._fromStorage(Ke(r.storage,t,e))}function Af(r,t,e=-1){return v._fromStorage(rn(r.storage,t,e))}function bf(r){return v._fromStorage(pi(r.storage))}function hf(r){return jt(r.storage).map(e=>v._fromStorage(e))}function Sf(r){return v._fromStorage(tn(r.storage))}function xf(r){return v._fromStorage(yi(r.storage))}function Df(r,t,e){let n=di(r.storage,t?.storage,e?.storage);return Array.isArray(n)?n.map(o=>v._fromStorage(o)):v._fromStorage(n)}function Nf(r,t,e="left"){return v._fromStorage(en(r.storage,t.storage,e))}function wf(r,t){return v._fromStorage(gi(r.storage,t.storage))}function If(r,t){let e=nn(r.storage,t);return typeof e=="number"?e:v._fromStorage(e)}function Wt(r,t=0){return v._fromStorage(on(r.storage,t))}function zf(r){return v._fromStorage(an(r.storage))}function _f(r){return v._fromStorage(sn(r.storage))}function Ff(r){return v._fromStorage(un(r.storage))}function Mf(r){return v._fromStorage(cn(r.storage))}function Bf(r){return v._fromStorage(ln(r.storage))}function vf(r,t=!1,e=!1,n=!1){let o=vr(r.storage,t,e,n);if(o instanceof D)return v._fromStorage(o);let a={values:v._fromStorage(o.values)};return o.indices&&(a.indices=v._fromStorage(o.indices)),o.inverse&&(a.inverse=v._fromStorage(o.inverse)),o.counts&&(a.counts=v._fromStorage(o.counts)),a}function Tf(r,t){return v._fromStorage(Si(r.storage,t.storage))}function Ef(r,t){return v._fromStorage(xi(r.storage,t.storage))}function Of(r,t){return v._fromStorage(mn(r.storage,t.storage))}function Cf(r,t){return v._fromStorage(Di(r.storage,t.storage))}function Uf(r,t){return v._fromStorage(Ni(r.storage,t.storage))}function $f(r,t){return v._fromStorage(wi(r.storage,t.storage))}function Rf(r,t=1,e=-1){return v._fromStorage(pn(r.storage,t,e))}function kf(r,t=null,e=null){return v._fromStorage(zi(r.storage,t,e))}function qf(r,t=1,e=null){let n=_i(r.storage,t,e);return Array.isArray(n)?n.map(o=>v._fromStorage(o)):v._fromStorage(n)}function Vf(r,t,e=-1,n=-1,o=-1){return v._fromStorage(Fi(r.storage,t.storage,e,n,o))}function Pf(r,t,e=0){return v._fromStorage(Bi(r.storage,t?.storage,e))}function jf(r,t,e=!1){return v._fromStorage(vi(r.storage,t.storage,e))}function Lf(r,t=10,e,n=!1,o){let a=Ti(r.storage,typeof t=="number"?t:t.storage,e,n,o?.storage);return[v._fromStorage(a.hist),v._fromStorage(a.bin_edges)]}function Wf(r,t,e=10,n,o=!1,a){let u;typeof e=="number"?u=e:Array.isArray(e)&&e.length===2?typeof e[0]=="number"?u=e:u=[e[0].storage,e[1].storage]:u=10;let s=Ei(r.storage,t.storage,u,n,o,a?.storage);return[v._fromStorage(s.hist),v._fromStorage(s.x_edges),v._fromStorage(s.y_edges)]}function Gf(r,t=10,e,n=!1,o){let a=Oi(r.storage,t,e,n,o?.storage);return[v._fromStorage(a.hist),a.edges.map(u=>v._fromStorage(u))]}function Zf(r,t,e="full"){return v._fromStorage(yn(r.storage,t.storage,e))}function Yf(r,t,e="full"){return v._fromStorage(Ci(r.storage,t.storage,e))}function Hf(r,t,e=!0,n=!1,o){return v._fromStorage(dn(r.storage,t?.storage,e,n,o))}function Jf(r,t,e=!0){return v._fromStorage(Ui(r.storage,t?.storage,e))}var v,Ul,Zl,ht=W(()=>{"use strict";Qn();J();xr();X();Bt();Io();Co();$o();$e();_a();ka();Ja();ns();Ns();Os();si();fi();Ai();hi();Ii();Mi();$i();v=class r{constructor(t,e){this._storage=t,this._base=e}get storage(){return this._storage}static _fromStorage(t,e){return new r(t,e)}get shape(){return this._storage.shape}get ndim(){return this._storage.ndim}get size(){return this._storage.size}get dtype(){return this._storage.dtype}get data(){return this._storage.data}get strides(){return this._storage.strides}get flags(){return{C_CONTIGUOUS:this._storage.isCContiguous,F_CONTIGUOUS:this._storage.isFContiguous,OWNDATA:this._base===void 0}}get base(){return this._base??null}get T(){return this.transpose()}get itemsize(){return Mt(this._storage.dtype)}get nbytes(){return this.size*this.itemsize}fill(t){let e=this._storage.dtype,n=this.size;if(B(e)){let o=typeof t=="bigint"?t:BigInt(Math.round(Number(t)));for(let a=0;a<n;a++)this._storage.iset(a,o)}else if(e==="bool"){let o=t?1:0;for(let a=0;a<n;a++)this._storage.iset(a,o)}else{let o=Number(t);for(let a=0;a<n;a++)this._storage.iset(a,o)}}*[Symbol.iterator](){if(this.ndim===0)yield this._storage.iget(0);else if(this.ndim===1)for(let t=0;t<this.shape[0];t++)yield this._storage.iget(t);else for(let t=0;t<this.shape[0];t++)yield this.slice(String(t))}get(t){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let e=t.map((n,o)=>{let a=n;if(a<0&&(a=this.shape[o]+a),a<0||a>=this.shape[o])throw new Error(`Index ${n} is out of bounds for axis ${o} with size ${this.shape[o]}`);return a});return this._storage.get(...e)}set(t,e){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let n=t.map((a,u)=>{let s=a;if(s<0&&(s=this.shape[u]+s),s<0||s>=this.shape[u])throw new Error(`Index ${a} is out of bounds for axis ${u} with size ${this.shape[u]}`);return s}),o=this.dtype;if(M(o))this._storage.set(n,e);else if(B(o)){let a=e instanceof O?e.re:Number(e),u=typeof e=="bigint"?e:BigInt(Math.round(a));this._storage.set(n,u)}else if(o==="bool"){let u=(e instanceof O?e.re:Number(e))?1:0;this._storage.set(n,u)}else{let a=e instanceof O?e.re:Number(e);this._storage.set(n,a)}}copy(){return new r(this._storage.copy())}astype(t,e=!0){let n=this.dtype;if(n===t&&!e)return this;if(n===t&&e)return this.copy();let o=Array.from(this.shape),a=this.size,u=j(t);if(!u)throw new Error(`Cannot convert to dtype ${t}`);let s=new u(a),i=this.data;if(B(n)&&!B(t)){let l=i;if(t==="bool")for(let m=0;m<a;m++)s[m]=l[m]!==BigInt(0)?1:0;else for(let m=0;m<a;m++)s[m]=Number(l[m])}else if(!B(n)&&B(t)){let l=i;for(let m=0;m<a;m++)s[m]=BigInt(Math.round(Number(l[m])))}else if(t==="bool"){let l=i;for(let m=0;m<a;m++)s[m]=l[m]!==0?1:0}else if(n==="bool"&&!B(t)){let l=i;for(let m=0;m<a;m++)s[m]=l[m]}else if(!B(n)&&!B(t)){let l=i;for(let m=0;m<a;m++)s[m]=l[m]}else{let l=i;for(let m=0;m<a;m++)s[m]=l[m]}let c=D.fromData(s,o,t);return new r(c)}add(t){let e=typeof t=="number"?t:t._storage,n=eo(this._storage,e);return r._fromStorage(n)}subtract(t){let e=typeof t=="number"?t:t._storage,n=no(this._storage,e);return r._fromStorage(n)}multiply(t){let e=typeof t=="number"?t:t._storage,n=oo(this._storage,e);return r._fromStorage(n)}divide(t){let e=typeof t=="number"?t:t._storage,n=ao(this._storage,e);return r._fromStorage(n)}mod(t){let e=typeof t=="number"?t:t._storage,n=Tt(this._storage,e);return r._fromStorage(n)}floor_divide(t){let e=typeof t=="number"?t:t._storage,n=be(this._storage,e);return r._fromStorage(n)}positive(){let t=co(this._storage);return r._fromStorage(t)}reciprocal(){let t=lo(this._storage);return r._fromStorage(t)}sqrt(){let t=Fa(this._storage);return r._fromStorage(t)}power(t){let e=typeof t=="number"?t:t._storage,n=Ma(this._storage,e);return r._fromStorage(n)}exp(){let t=Ba(this._storage);return r._fromStorage(t)}exp2(){let t=va(this._storage);return r._fromStorage(t)}expm1(){let t=Ta(this._storage);return r._fromStorage(t)}log(){let t=Ea(this._storage);return r._fromStorage(t)}log2(){let t=Oa(this._storage);return r._fromStorage(t)}log10(){let t=Ca(this._storage);return r._fromStorage(t)}log1p(){let t=Ua(this._storage);return r._fromStorage(t)}logaddexp(t){let e=typeof t=="number"?t:t._storage,n=$a(this._storage,e);return r._fromStorage(n)}logaddexp2(t){let e=typeof t=="number"?t:t._storage,n=Ra(this._storage,e);return r._fromStorage(n)}absolute(){let t=so(this._storage);return r._fromStorage(t)}negative(){let t=io(this._storage);return r._fromStorage(t)}sign(){let t=uo(this._storage);return r._fromStorage(t)}around(t=0){let e=on(this._storage,t);return r._fromStorage(e)}round(t=0){return this.around(t)}ceil(){let t=an(this._storage);return r._fromStorage(t)}fix(){let t=sn(this._storage);return r._fromStorage(t)}floor(){let t=un(this._storage);return r._fromStorage(t)}rint(){let t=cn(this._storage);return r._fromStorage(t)}trunc(){let t=ln(this._storage);return r._fromStorage(t)}sin(){let t=qa(this._storage);return r._fromStorage(t)}cos(){let t=Va(this._storage);return r._fromStorage(t)}tan(){let t=Pa(this._storage);return r._fromStorage(t)}arcsin(){let t=ja(this._storage);return r._fromStorage(t)}arccos(){let t=La(this._storage);return r._fromStorage(t)}arctan(){let t=Wa(this._storage);return r._fromStorage(t)}arctan2(t){let e=typeof t=="number"?t:t._storage,n=Ga(this._storage,e);return r._fromStorage(n)}hypot(t){let e=typeof t=="number"?t:t._storage,n=Za(this._storage,e);return r._fromStorage(n)}degrees(){let t=Ya(this._storage);return r._fromStorage(t)}radians(){let t=Ha(this._storage);return r._fromStorage(t)}sinh(){let t=Xa(this._storage);return r._fromStorage(t)}cosh(){let t=Qa(this._storage);return r._fromStorage(t)}tanh(){let t=Ka(this._storage);return r._fromStorage(t)}arcsinh(){let t=rs(this._storage);return r._fromStorage(t)}arccosh(){let t=ts(this._storage);return r._fromStorage(t)}arctanh(){let t=es(this._storage);return r._fromStorage(t)}greater(t){let e=typeof t=="number"?t:t._storage,n=_o(this._storage,e);return r._fromStorage(n)}greater_equal(t){let e=typeof t=="number"?t:t._storage,n=Fo(this._storage,e);return r._fromStorage(n)}less(t){let e=typeof t=="number"?t:t._storage,n=Mo(this._storage,e);return r._fromStorage(n)}less_equal(t){let e=typeof t=="number"?t:t._storage,n=Bo(this._storage,e);return r._fromStorage(n)}equal(t){let e=typeof t=="number"?t:t._storage,n=vo(this._storage,e);return r._fromStorage(n)}not_equal(t){let e=typeof t=="number"?t:t._storage,n=To(this._storage,e);return r._fromStorage(n)}isclose(t,e=1e-5,n=1e-8){let o=typeof t=="number"?t:t._storage,a=he(this._storage,o,e,n);return r._fromStorage(a)}allclose(t,e=1e-5,n=1e-8){let o=typeof t=="number"?t:t._storage;return Eo(this._storage,o,e,n)}bitwise_and(t){let e=typeof t=="number"?t:t._storage,n=zs(this._storage,e);return r._fromStorage(n)}bitwise_or(t){let e=typeof t=="number"?t:t._storage,n=_s(this._storage,e);return r._fromStorage(n)}bitwise_xor(t){let e=typeof t=="number"?t:t._storage,n=Fs(this._storage,e);return r._fromStorage(n)}bitwise_not(){let t=Je(this._storage);return r._fromStorage(t)}invert(){let t=Ms(this._storage);return r._fromStorage(t)}left_shift(t){let e=typeof t=="number"?t:t._storage,n=Bs(this._storage,e);return r._fromStorage(n)}right_shift(t){let e=typeof t=="number"?t:t._storage,n=vs(this._storage,e);return r._fromStorage(n)}logical_and(t){let e=typeof t=="number"?t:t._storage,n=Us(this._storage,e);return r._fromStorage(n)}logical_or(t){let e=typeof t=="number"?t:t._storage,n=$s(this._storage,e);return r._fromStorage(n)}logical_not(){let t=Rs(this._storage);return r._fromStorage(t)}logical_xor(t){let e=typeof t=="number"?t:t._storage,n=ks(this._storage,e);return r._fromStorage(n)}isfinite(){let t=qs(this._storage);return r._fromStorage(t)}isinf(){let t=Vs(this._storage);return r._fromStorage(t)}isnan(){let t=Ps(this._storage);return r._fromStorage(t)}isnat(){let t=js(this._storage);return r._fromStorage(t)}copysign(t){let e=typeof t=="number"?t:t._storage,n=Ls(this._storage,e);return r._fromStorage(n)}signbit(){let t=Ws(this._storage);return r._fromStorage(t)}nextafter(t){let e=typeof t=="number"?t:t._storage,n=Gs(this._storage,e);return r._fromStorage(n)}spacing(){let t=Zs(this._storage);return r._fromStorage(t)}sum(t,e=!1){let n=ot(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}mean(t,e=!1){let n=Et(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}max(t,e=!1){let n=Gr(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}min(t,e=!1){let n=Zr(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}prod(t,e=!1){let n=xe(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}argmin(t){let e=De(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}argmax(t){let e=Ne(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}var(t,e=0,n=!1){let o=we(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}std(t,e=0,n=!1){let o=Uo(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}all(t,e=!1){let n=Ie(this._storage,t,e);return typeof n=="boolean"?n:r._fromStorage(n)}any(t,e=!1){let n=ze(this._storage,t,e);return typeof n=="boolean"?n:r._fromStorage(n)}cumsum(t){return r._fromStorage(_e(this._storage,t))}cumprod(t){return r._fromStorage(Fe(this._storage,t))}ptp(t,e=!1){let n=Me(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}median(t,e=!1){let n=Be(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}percentile(t,e,n=!1){let o=ve(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}quantile(t,e,n=!1){let o=Hr(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}average(t,e){let n=at(this._storage,e,t?.storage);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}nansum(t,e=!1){let n=Ot(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}nanprod(t,e=!1){let n=Ct(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}nanmean(t,e=!1){let n=Ut(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}nanvar(t,e=0,n=!1){let o=Yr(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}nanstd(t,e=0,n=!1){let o=Te(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}nanmin(t,e=!1){let n=st(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}nanmax(t,e=!1){let n=it(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}nanargmin(t){let e=ut(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}nanargmax(t){let e=ct(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}nancumsum(t){return r._fromStorage(Ee(this._storage,t))}nancumprod(t){return r._fromStorage(Oe(this._storage,t))}nanmedian(t,e=!1){let n=$t(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}sort(t=-1){return r._fromStorage(Xe(this._storage,t))}argsort(t=-1){return r._fromStorage(Qe(this._storage,t))}partition(t,e=-1){return r._fromStorage(Ke(this._storage,t,e))}argpartition(t,e=-1){return r._fromStorage(rn(this._storage,t,e))}nonzero(){return jt(this._storage).map(e=>r._fromStorage(e))}argwhere(){return r._fromStorage(tn(this._storage))}searchsorted(t,e="left"){return r._fromStorage(en(this._storage,t._storage,e))}diff(t=1,e=-1){return r._fromStorage(pn(this._storage,t,e))}reshape(...t){let e=t.length===1&&Array.isArray(t[0])?t[0]:t,n=ir(this._storage,e),a=n.data===this.data?this._base??this:void 0;return r._fromStorage(n,a)}flatten(){let t=Rt(this._storage);return r._fromStorage(t)}ravel(){let t=Jr(this._storage),n=t.data===this.data?this._base??this:void 0;return r._fromStorage(t,n)}transpose(t){let e=ft(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}squeeze(t){let e=Ro(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}expand_dims(t){let e=lt(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}swapaxes(t,e){let n=ko(this._storage,t,e),o=this._base??this;return r._fromStorage(n,o)}moveaxis(t,e){let n=Ce(this._storage,t,e),o=this._base??this;return r._fromStorage(n,o)}repeat(t,e){let n=Yo(this._storage,t,e);return r._fromStorage(n)}take(t,e){let n=as(this._storage,t,e);return r._fromStorage(n)}put(t,e){let n=e instanceof r?e._storage:e;ss(this._storage,t,n)}iindex(t,e=0){let n;if(t instanceof r){n=[];for(let o=0;o<t.size;o++){let a=t.storage.iget(o),u=typeof a=="bigint"?Number(a):a instanceof O?a.re:a;n.push(u)}}else Array.isArray(t)&&t.length>0&&Array.isArray(t[0])?n=t.flat():n=t;return this.take(n,e)}bindex(t,e){return r._fromStorage(Ge(t._storage,this._storage,e))}matmul(t){let e=Ar(this._storage,t._storage);return r._fromStorage(e)}dot(t){let e=ke(this._storage,t._storage);return typeof e=="number"||typeof e=="bigint"||e instanceof O?e:r._fromStorage(e)}trace(){return ua(this._storage)}inner(t){let e=ca(this._storage,t._storage);return typeof e=="number"||typeof e=="bigint"||e instanceof O?e:r._fromStorage(e)}outer(t){let e=qe(this._storage,t._storage);return r._fromStorage(e)}tensordot(t,e=2){let n=la(this._storage,t._storage,e);return typeof n=="number"||typeof n=="bigint"||n instanceof O?n:r._fromStorage(n)}cbrt(){let t=fo(this._storage);return r._fromStorage(t)}fabs(){let t=mo(this._storage);return r._fromStorage(t)}divmod(t){let e=typeof t=="number"?t:t._storage,[n,o]=po(this._storage,e);return[r._fromStorage(n),r._fromStorage(o)]}square(){let t=yo(this._storage);return r._fromStorage(t)}remainder(t){let e=typeof t=="number"?t:t._storage,n=go(this._storage,e);return r._fromStorage(n)}heaviside(t){let e=typeof t=="number"?t:t._storage,n=Ao(this._storage,e);return r._fromStorage(n)}slice(...t){if(t.length===0)return this;if(t.length>this.ndim)throw new Error(`Too many indices for array: array is ${this.ndim}-dimensional, but ${t.length} were indexed`);let e=t.map((i,c)=>{let l=Jn(i);return Xn(l,this.shape[c])});for(;e.length<this.ndim;)e.push({start:0,stop:this.shape[e.length],step:1,isIndex:!1});let n=[],o=[],a=this._storage.offset;for(let i=0;i<e.length;i++){let c=e[i],l=this._storage.strides[i];if(a+=c.start*l,!c.isIndex){let m;c.step>0?m=Math.max(0,Math.ceil((c.stop-c.start)/c.step)):m=Math.max(0,Math.ceil((c.start-c.stop)/Math.abs(c.step))),n.push(m),o.push(l*c.step)}}let u=D.fromData(this._storage.data,n,this._storage.dtype,o,a),s=this._base??this;return new r(u,s)}row(t){if(this.ndim<2)throw new Error("row() requires at least 2 dimensions");return this.slice(String(t),":")}col(t){if(this.ndim<2)throw new Error("col() requires at least 2 dimensions");return this.slice(":",String(t))}rows(t,e){if(this.ndim<2)throw new Error("rows() requires at least 2 dimensions");return this.slice(`${t}:${e}`,":")}cols(t,e){if(this.ndim<2)throw new Error("cols() requires at least 2 dimensions");return this.slice(":",`${t}:${e}`)}toString(){return`NDArray(shape=${JSON.stringify(this.shape)}, dtype=${this.dtype})`}toArray(){if(this.ndim===0)return this._storage.iget(0);let t=this.shape,e=t.length,n=(o,a)=>{if(a===e)return this._storage.get(...o);let u=[];for(let s=0;s<t[a];s++)o[a]=s,u.push(n(o,a+1));return u};return n(new Array(e),0)}};Ul=Un;Zl={cross:(r,t,e=-1,n=-1,o=-1,a)=>{let u=ya(r.storage,t.storage,e,n,o,a);return typeof u=="number"?u:v._fromStorage(u)},norm:(r,t=null,e=null,n=!1)=>{let o=da(r.storage,t,e,n);return typeof o=="number"?o:v._fromStorage(o)},vector_norm:(r,t=2,e,n=!1)=>{let o=Qr(r.storage,t,e,n);return typeof o=="number"?o:v._fromStorage(o)},matrix_norm:(r,t="fro",e=!1)=>{let n=kr(r.storage,t,e);return typeof n=="number"?n:v._fromStorage(n)},qr:(r,t="reduced")=>{let e=Ve(r.storage,t);return e instanceof D?v._fromStorage(e):"q"in e&&"r"in e?{q:v._fromStorage(e.q),r:v._fromStorage(e.r)}:{h:v._fromStorage(e.h),tau:v._fromStorage(e.tau)}},cholesky:(r,t=!1)=>v._fromStorage(ga(r.storage,t)),svd:(r,t=!0,e=!0)=>{let n=Aa(r.storage,t,e);return"u"in n?{u:v._fromStorage(n.u),s:v._fromStorage(n.s),vt:v._fromStorage(n.vt)}:v._fromStorage(n)},det:r=>ba(r.storage),inv:r=>v._fromStorage(kt(r.storage)),solve:(r,t)=>v._fromStorage(ha(r.storage,t.storage)),lstsq:(r,t,e=null)=>{let n=Sa(r.storage,t.storage,e);return{x:v._fromStorage(n.x),residuals:v._fromStorage(n.residuals),rank:n.rank,s:v._fromStorage(n.s)}},cond:(r,t=2)=>xa(r.storage,t),matrix_rank:(r,t)=>Da(r.storage,t),matrix_power:(r,t)=>v._fromStorage(Na(r.storage,t)),pinv:(r,t=1e-15)=>v._fromStorage(wa(r.storage,t)),eig:r=>{let t=Le(r.storage);return{w:v._fromStorage(t.w),v:v._fromStorage(t.v)}},eigh:(r,t="L")=>{let e=We(r.storage,t);return{w:v._fromStorage(e.w),v:v._fromStorage(e.v)}},eigvals:r=>v._fromStorage(Ia(r.storage)),eigvalsh:(r,t="L")=>v._fromStorage(za(r.storage,t))}});function $n(){let r=new ArrayBuffer(2);return new DataView(r).setInt16(0,256,!0),new Int16Array(r)[0]===256}function Qf(r){if(r.startsWith("[")||r.startsWith("("))throw new zr(`Structured/compound dtypes are not supported: ${r}`);let t="",e=r;(r[0]==="<"||r[0]===">"||r[0]==="="||r[0]==="|")&&(t=r[0],e=r.slice(1));let n=e[0];if(n&&n in Xf)throw new zr(`Unsupported dtype: ${Xf[n]} (${r}). Use the 'force' parameter to skip arrays with unsupported dtypes.`);let o=Sy[e];if(!o)throw new zr(`Unknown or unsupported dtype descriptor: ${r}. Supported types: ${Gt.join(", ")}. Use the 'force' parameter to skip arrays with unsupported dtypes.`);let a=$n(),u=t==="<"||t==="|"||t==="="&&a,s=t===">"||t==="="&&!a,i=parseInt(e.slice(1),10),c=i>1&&(s&&a||u&&!a);return{dtype:o,needsByteSwap:c,itemsize:i}}var St,Gt,Sy,xt,Xf,zr,cr,Dt=W(()=>{"use strict";St=new Uint8Array([147,78,85,77,80,89]),Gt=["float64","float32","complex128","complex64","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"];Sy={f8:"float64",f4:"float32",c16:"complex128",c8:"complex64",i8:"int64",i4:"int32",i2:"int16",i1:"int8",u8:"uint64",u4:"uint32",u2:"uint16",u1:"uint8",b1:"bool"},xt={float64:"<f8",float32:"<f4",complex128:"<c16",complex64:"<c8",int64:"<i8",int32:"<i4",int16:"<i2",int8:"|i1",uint64:"<u8",uint32:"<u4",uint16:"<u2",uint8:"|u1",bool:"|b1"},Xf={S:"byte strings",U:"Unicode strings",O:"Python objects",V:"structured arrays (void)",M:"datetime64",m:"timedelta64"};zr=class extends Error{constructor(t){super(t),this.name="UnsupportedDTypeError"}},cr=class extends Error{constructor(t){super(t),this.name="InvalidNpyError"}}});function Ur(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=Zt(t);return Yt(t,e)}function Zt(r){if(r.length<10)throw new cr("File too small to be a valid NPY file");for(let c=0;c<St.length;c++)if(r[c]!==St[c])throw new cr("Invalid NPY magic number");let t=r[6],e=r[7];if(t!==1&&t!==2&&t!==3)throw new cr(`Unsupported NPY version: ${t}.${e}`);let n,o;t===1?(n=r[8]|r[9]<<8,o=10):(n=r[8]|r[9]<<8|r[10]<<16|r[11]<<24,o=12);let a=o+n;if(r.length<a)throw new cr("File truncated: header extends beyond file");let u=r.slice(o,a),s=new TextDecoder("utf-8").decode(u).trim(),i=xy(s);return{version:{major:t,minor:e},header:i,dataOffset:a}}function Yt(r,t){let{header:e,dataOffset:n}=t,{dtype:o,needsByteSwap:a,itemsize:u}=Qf(e.descr),s=e.shape.reduce((p,g)=>p*g,1),i=s*u,c=r.length-n;if(c<i)throw new cr(`File truncated: expected ${i} bytes of data, got ${c}`);let l=new ArrayBuffer(i);new Uint8Array(l).set(r.subarray(n,n+i));let y=Dy(l,o,s,a,u),d=e.shape,f;if(e.fortran_order&&d.length>1){let p=[...d].reverse(),g=D.fromData(y,p,o);f=Ny(g,p),d=e.shape}else f=D.fromData(y,[...d],o);return new v(f)}function xy(r){let t=r.match(/'descr'\s*:\s*'([^']+)'/),e=r.match(/'fortran_order'\s*:\s*(True|False)/),n=r.match(/'shape'\s*:\s*\(([^)]*)\)/);if(!t||!e||!n)throw new cr(`Failed to parse NPY header: ${r}`);let o=t[1],a=e[1]==="True",u=n[1].trim(),s;return u===""?s=[]:s=u.split(",").map(i=>i.trim()).filter(i=>i!=="").map(i=>{let c=parseInt(i,10);if(isNaN(c))throw new cr(`Invalid shape value: ${i}`);return c}),{descr:o,fortran_order:a,shape:s}}function Dy(r,t,e,n,o){let a=j(t);if(!a)throw new cr(`Cannot create array for dtype: ${t}`);let u=M(t),s=u?e*2:e;if(!n)return new a(r,0,s);let i=new Uint8Array(r),c=new Uint8Array(r.byteLength);if(u){let l=o/2;for(let m=0;m<e*2;m++){let y=m*l;for(let d=0;d<l;d++)c[y+d]=i[y+l-1-d]}}else for(let l=0;l<e;l++){let m=l*o;for(let y=0;y<o;y++)c[m+y]=i[m+o-1-y]}return new a(c.buffer,0,s)}function Ny(r,t){let e=t.length,n=r.size,o=r.dtype,a=j(o);if(!a)throw new cr(`Cannot create array for dtype: ${o}`);let u=new a(n),s=[...t].reverse(),i=Kf(t),c=Kf(s),l=new Array(e).fill(0);for(let m=0;m<n;m++){let y=m;for(let f=0;f<e;f++){let p=i[f];l[f]=Math.floor(y/p),y=y%p}let d=0;for(let f=0;f<e;f++)d+=l[e-1-f]*c[f];B(o),u[d]=r.iget(m)}return D.fromData(u,s,o)}function Kf(r){let t=new Array(r.length),e=1;for(let n=r.length-1;n>=0;n--)t[n]=e,e*=r[n];return t}var Ht=W(()=>{"use strict";ht();X();J();Dt()});function Tr(r){let t=r.shape,e=r.dtype,n=xt[e],o=t.length===0?"()":t.length===1?`(${t[0]},)`:`(${t.join(", ")})`,a=`{'descr': '${n}', 'fortran_order': False, 'shape': ${o}, }`,u=12,i=(64-(u+a.length+1)%64)%64;a=a+" ".repeat(i)+`
2
+ `;let c=new TextEncoder().encode(a),l=c.length,m=r.size,y=Mt(e),d=m*y,f=u+l+d,p=new Uint8Array(f);p.set(St,0),p[6]=3,p[7]=0,p[8]=l&255,p[9]=l>>8&255,p[10]=l>>16&255,p[11]=l>>24&255,p.set(c,u);let g=u+l;return wy(r,p.subarray(g),y),p}function wy(r,t,e){let n=r.dtype,o=r.size,a=$n(),u=B(n),s=M(n),i=r._storage;if(i.isCContiguous&&i.offset===0&&a){let l=i.data,m=new Uint8Array(l.buffer,l.byteOffset,o*e);t.set(m)}else{let l=new DataView(t.buffer,t.byteOffset,t.byteLength);for(let m=0;m<o;m++){let y=i.iget(m),d=m*e;u?Iy(l,d,y,n==="uint64"):s?zy(l,d,y,n):_y(l,d,y,n)}}}function Iy(r,t,e,n){n?r.setBigUint64(t,e,!0):r.setBigInt64(t,e,!0)}function zy(r,t,e,n){n==="complex128"?(r.setFloat64(t,e.re,!0),r.setFloat64(t+8,e.im,!0)):(r.setFloat32(t,e.re,!0),r.setFloat32(t+4,e.im,!0))}function _y(r,t,e,n){switch(n){case"float64":r.setFloat64(t,e,!0);break;case"float32":r.setFloat32(t,e,!0);break;case"int32":r.setInt32(t,e,!0);break;case"int16":r.setInt16(t,e,!0);break;case"int8":r.setInt8(t,e);break;case"uint32":r.setUint32(t,e,!0);break;case"uint16":r.setUint16(t,e,!0);break;case"uint8":case"bool":r.setUint8(t,e);break;default:throw new Error(`Unsupported dtype for serialization: ${n}`)}}var Jt=W(()=>{"use strict";J();Dt()});function Rn(r){let t=4294967295;for(let e=0;e<r.length;e++)t=Fy[(t^r[e])&255]^t>>>8;return(t^4294967295)>>>0}var Fy,kn=W(()=>{"use strict";Fy=(()=>{let r=new Uint32Array(256);for(let t=0;t<256;t++){let e=t;for(let n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;r[t]=e}return r})()});async function rm(r){let t=em(r),e=new Map;for(let n of t){let o=await My(n);e.set(n.name,o)}return e}function tm(r){let t=em(r),e=new Map;for(let n of t){if(n.compressionMethod!==0)throw new Error(`Cannot read compressed entry synchronously: ${n.name}. Use readZip() (async) for DEFLATE-compressed files.`);e.set(n.name,n.compressedData)}return e}function em(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=new DataView(t.buffer,t.byteOffset,t.byteLength),n=[],o=-1;for(let c=t.length-22;c>=0;c--)if(e.getUint32(c,!0)===101010256){o=c;break}if(o===-1)throw new Error("Invalid ZIP file: end of central directory not found");let a=e.getUint32(o+16,!0),u=e.getUint16(o+10,!0),s=[],i=a;for(let c=0;c<u&&e.getUint32(i,!0)===33639248;c++){let m=e.getUint16(i+10,!0),y=e.getUint32(i+16,!0),d=e.getUint32(i+20,!0),f=e.getUint32(i+24,!0),p=e.getUint16(i+28,!0),g=e.getUint16(i+30,!0),h=e.getUint16(i+32,!0),b=e.getUint32(i+42,!0),A=t.slice(i+46,i+46+p),S=new TextDecoder("utf-8").decode(A);s.push({name:S,compressionMethod:m,crc32:y,compressedSize:d,uncompressedSize:f,localHeaderOffset:b}),i=i+46+p+g+h}for(let c of s){let l=c.localHeaderOffset;if(e.getUint32(l,!0)!==67324752)throw new Error(`Invalid local file header at offset ${l}`);let y=e.getUint16(l+26,!0),d=e.getUint16(l+28,!0),f=l+30+y+d,p=t.slice(f,f+c.compressedSize);n.push({name:c.name,compressedData:p,compressionMethod:c.compressionMethod,crc32:c.crc32,compressedSize:c.compressedSize,uncompressedSize:c.uncompressedSize})}return n}async function My(r){if(r.compressionMethod===0)return r.compressedData;if(r.compressionMethod===8)return await By(r.compressedData);throw new Error(`Unsupported compression method: ${r.compressionMethod}`)}async function By(r){if(typeof DecompressionStream>"u")throw new Error("DecompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let t=new DecompressionStream("deflate-raw"),e=new Uint8Array(r.length);e.set(r);let n=t.writable.getWriter();n.write(e),n.close();let o=t.readable.getReader(),a=[];for(;;){let{done:c,value:l}=await o.read();if(c)break;a.push(l)}let u=a.reduce((c,l)=>c+l.length,0),s=new Uint8Array(u),i=0;for(let c of a)s.set(c,i),i+=c.length;return s}var nm=W(()=>{"use strict";kn()});var am={};ye(am,{loadNpz:()=>Xt,loadNpzSync:()=>Qt,parseNpz:()=>Vr,parseNpzSync:()=>wt});async function Vr(r,t={}){let e=t.force??!1,n=await rm(r);return om(n,e)}function wt(r,t={}){let e=t.force??!1,n=tm(r);return om(n,e)}function om(r,t){let e=new Map,n=[],o=new Map;for(let[a,u]of r){if(!a.endsWith(".npy"))continue;let s=a.slice(0,-4);try{let i=Ur(u);e.set(s,i)}catch(i){if(i instanceof zr&&t)n.push(s),o.set(s,i.message);else throw i}}return{arrays:e,skipped:n,errors:o}}async function Xt(r,t={}){let e=await Vr(r,t);return Object.fromEntries(e.arrays)}function Qt(r,t={}){let e=wt(r,t);return Object.fromEntries(e.arrays)}var Kt=W(()=>{"use strict";Ht();Dt();nm()});async function sm(r,t={}){let e=t.compress??!1,n=[];for(let[y,d]of r){let f=Rn(d),p,g;e?(p=await Ty(d),p.length<d.length?g=8:(p=d,g=0)):(p=d,g=0),n.push({name:y,data:d,compressedData:p,crc:f,compressionMethod:g,offset:0})}let o=0;for(let y of n){let d=new TextEncoder().encode(y.name);o+=30+d.length+y.compressedData.length}let a=0;for(let y of n){let d=new TextEncoder().encode(y.name);a+=46+d.length}let s=o+a+22,i=new Uint8Array(s),c=new DataView(i.buffer),l=0;for(let y of n)y.offset=l,l=um(i,c,l,y);let m=l;for(let y of n)l=cm(i,c,l,y);return lm(c,l,n.length,a,m),i}function im(r){let t=[];for(let[l,m]of r){let y=Rn(m);t.push({name:l,data:m,compressedData:m,crc:y,compressionMethod:0,offset:0})}let e=0;for(let l of t){let m=new TextEncoder().encode(l.name);e+=30+m.length+l.compressedData.length}let n=0;for(let l of t){let m=new TextEncoder().encode(l.name);n+=46+m.length}let a=e+n+22,u=new Uint8Array(a),s=new DataView(u.buffer),i=0;for(let l of t)l.offset=i,i=um(u,s,i,l);let c=i;for(let l of t)i=cm(u,s,i,l);return lm(s,i,t.length,n,c),u}function um(r,t,e,n){let o=new TextEncoder().encode(n.name);return t.setUint32(e,67324752,!0),e+=4,t.setUint16(e,n.compressionMethod===8?20:10,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,n.compressionMethod,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,33,!0),e+=2,t.setUint32(e,n.crc,!0),e+=4,t.setUint32(e,n.compressedData.length,!0),e+=4,t.setUint32(e,n.data.length,!0),e+=4,t.setUint16(e,o.length,!0),e+=2,t.setUint16(e,0,!0),e+=2,r.set(o,e),e+=o.length,r.set(n.compressedData,e),e+=n.compressedData.length,e}function cm(r,t,e,n){let o=new TextEncoder().encode(n.name);return t.setUint32(e,33639248,!0),e+=4,t.setUint16(e,20,!0),e+=2,t.setUint16(e,n.compressionMethod===8?20:10,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,n.compressionMethod,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,33,!0),e+=2,t.setUint32(e,n.crc,!0),e+=4,t.setUint32(e,n.compressedData.length,!0),e+=4,t.setUint32(e,n.data.length,!0),e+=4,t.setUint16(e,o.length,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint32(e,0,!0),e+=4,t.setUint32(e,n.offset,!0),e+=4,r.set(o,e),e+=o.length,e}function lm(r,t,e,n,o){r.setUint32(t,101010256,!0),t+=4,r.setUint16(t,0,!0),t+=2,r.setUint16(t,0,!0),t+=2,r.setUint16(t,e,!0),t+=2,r.setUint16(t,e,!0),t+=2,r.setUint32(t,n,!0),t+=4,r.setUint32(t,o,!0),t+=4,r.setUint16(t,0,!0)}async function Ty(r){if(typeof CompressionStream>"u")throw new Error("CompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let t=new CompressionStream("deflate-raw"),e=new Uint8Array(r.length);e.set(r);let n=t.writable.getWriter();n.write(e),n.close();let o=t.readable.getReader(),a=[];for(;;){let{done:c,value:l}=await o.read();if(c)break;a.push(l)}let u=a.reduce((c,l)=>c+l.length,0),s=new Uint8Array(u),i=0;for(let c of a)s.set(c,i),i+=c.length;return s}var fm=W(()=>{"use strict";kn()});var pm={};ye(pm,{serializeNpz:()=>tt,serializeNpzSync:()=>re});async function tt(r,t={}){let e=mm(r);return sm(e,{compress:t.compress??!1})}function re(r){let t=mm(r);return im(t)}function mm(r){let t=new Map;if(Array.isArray(r)){for(let n=0;n<r.length;n++){let o=r[n],a=Tr(o);t.set(`arr_${n}.npy`,a)}return t}let e=r instanceof Map?r.entries():Object.entries(r);for(let[n,o]of e){if(typeof n!="string"||n.length===0)throw new Error("Array names must be non-empty strings");let a=Tr(o),u=n.endsWith(".npy")?n:`${n}.npy`;t.set(u,a)}return t}var te=W(()=>{"use strict";Jt();fm()});var pd={};ye(pd,{Complex:()=>O,DTYPE_TO_DESCR:()=>xt,InvalidNpyError:()=>cr,NDArray:()=>v,SUPPORTED_DTYPES:()=>Gt,UnsupportedDTypeError:()=>zr,__version__:()=>Xy,abs:()=>Dn,absolute:()=>Dn,acos:()=>In,acosh:()=>Mn,amax:()=>On,amin:()=>Cn,angle:()=>$l,append:()=>bc,arange:()=>qi,arccos:()=>In,arccosh:()=>Mn,arcsin:()=>wn,arcsinh:()=>Fn,arctan:()=>zn,arctan2:()=>_n,arctanh:()=>Bn,argpartition:()=>Af,argsort:()=>yf,argwhere:()=>Sf,around:()=>Wt,array:()=>rr,array_equal:()=>vc,array_equiv:()=>Tc,array_split:()=>Xu,asanyarray:()=>Ji,asarray:()=>bt,ascontiguousarray:()=>Xi,asfortranarray:()=>Qi,asin:()=>wn,asinh:()=>Fn,atan:()=>zn,atan2:()=>_n,atanh:()=>Bn,atleast_1d:()=>fc,atleast_2d:()=>mc,atleast_3d:()=>pc,average:()=>$c,bincount:()=>Pf,bindex:()=>Fc,bitwise_and:()=>cl,bitwise_not:()=>ml,bitwise_or:()=>ll,bitwise_xor:()=>fl,broadcast_arrays:()=>Nc,broadcast_shapes:()=>wc,broadcast_to:()=>Dc,cbrt:()=>Jc,ceil:()=>zf,choose:()=>Bc,column_stack:()=>dc,compress:()=>Xl,concatenate:()=>qr,conj:()=>Un,conjugate:()=>Ul,convolve:()=>Yf,copy:()=>Wi,copysign:()=>zl,copyto:()=>Mc,corrcoef:()=>Jf,correlate:()=>Zf,cos:()=>Cu,cosh:()=>ju,count_nonzero:()=>If,cov:()=>Hf,cross:()=>Vf,cumprod:()=>En,cumsum:()=>Tn,cumulative_prod:()=>En,cumulative_sum:()=>Tn,deg2rad:()=>qu,degrees:()=>Ru,delete:()=>hc,diag:()=>Sn,diag_indices:()=>tf,diag_indices_from:()=>ef,diagflat:()=>Ki,diagonal:()=>Fu,diff:()=>Rf,digitize:()=>jf,divide:()=>Nn,divmod:()=>Qc,dot:()=>zu,dsplit:()=>yc,dstack:()=>Hu,ediff1d:()=>kf,einsum:()=>Gl,empty:()=>bn,empty_like:()=>Yi,exp:()=>fu,exp2:()=>mu,expand_dims:()=>ac,expm1:()=>pu,extract:()=>wf,eye:()=>An,fabs:()=>Xc,fill_diagonal:()=>rf,fix:()=>_f,flatnonzero:()=>xf,flip:()=>Lt,fliplr:()=>sc,flipud:()=>ic,float_power:()=>el,floor:()=>Ff,floor_divide:()=>Nu,fmod:()=>nl,frexp:()=>ol,frombuffer:()=>su,fromfile:()=>iu,fromfunction:()=>ru,fromiter:()=>uu,fromregex:()=>fd,fromregexSync:()=>md,fromstring:()=>cu,full:()=>hn,full_like:()=>Hi,gcd:()=>al,genfromtxt:()=>cd,genfromtxtSync:()=>ld,geomspace:()=>ji,gradient:()=>qf,heaviside:()=>tl,histogram:()=>Lf,histogram2d:()=>Wf,histogramdd:()=>Gf,hsplit:()=>Ku,hstack:()=>Yu,hypot:()=>$u,identity:()=>Li,iindex:()=>_c,imag:()=>Cl,in1d:()=>Tf,indices:()=>cf,inner:()=>vu,insert:()=>Sc,intersect1d:()=>Ef,invert:()=>pl,iscomplex:()=>Bl,iscomplexobj:()=>vl,isdtype:()=>Ll,isfinite:()=>Dl,isfortran:()=>ql,isin:()=>Of,isinf:()=>Nl,isnan:()=>wl,isnat:()=>Il,isneginf:()=>Rl,isposinf:()=>kl,isreal:()=>Tl,isrealobj:()=>El,isscalar:()=>Pl,iterable:()=>jl,ix_:()=>lf,kron:()=>Mu,lcm:()=>sl,ldexp:()=>il,left_shift:()=>yl,lexsort:()=>df,linalg:()=>Zl,linspace:()=>Vi,load:()=>Ky,loadNpy:()=>Rm,loadNpySync:()=>km,loadNpz:()=>Xt,loadNpzFile:()=>Pm,loadNpzFileSync:()=>jm,loadNpzSync:()=>Qt,loadSync:()=>rd,loadtxt:()=>ad,loadtxtSync:()=>sd,log:()=>yu,log10:()=>gu,log1p:()=>Au,log2:()=>du,logaddexp:()=>bu,logaddexp2:()=>hu,logical_and:()=>bl,logical_not:()=>Sl,logical_or:()=>hl,logical_xor:()=>xl,logspace:()=>Pi,mask_indices:()=>uf,max:()=>On,median:()=>Oc,meshgrid:()=>tu,min:()=>Cn,mod:()=>Du,modf:()=>ul,moveaxis:()=>Gu,nanargmax:()=>Gc,nanargmin:()=>Wc,nancumprod:()=>Yc,nancumsum:()=>Zc,nanmax:()=>Lc,nanmean:()=>qc,nanmedian:()=>Hc,nanmin:()=>jc,nanprod:()=>kc,nanstd:()=>Pc,nansum:()=>Rc,nanvar:()=>Vc,negative:()=>Su,nextafter:()=>Fl,nonzero:()=>hf,ones:()=>gn,ones_like:()=>Zi,outer:()=>Tu,packbits:()=>gl,pad:()=>xc,parseNpy:()=>Ur,parseNpyData:()=>Yt,parseNpyHeader:()=>Zt,parseNpz:()=>Vr,parseNpzSync:()=>wt,parseTxt:()=>Pr,partition:()=>gf,percentile:()=>Cc,place:()=>Kl,positive:()=>wu,pow:()=>xn,power:()=>xn,promote_types:()=>Wl,ptp:()=>Ec,put:()=>zc,put_along_axis:()=>Hl,putmask:()=>Jl,quantile:()=>Uc,rad2deg:()=>Vu,radians:()=>ku,random:()=>Jy,ravel:()=>ec,ravel_multi_index:()=>ff,real:()=>Ol,real_if_close:()=>Vl,reciprocal:()=>Iu,remainder:()=>rl,repeat:()=>tc,reshape:()=>nc,resize:()=>Ac,right_shift:()=>dl,rint:()=>Mf,roll:()=>cc,rollaxis:()=>lc,rot90:()=>uc,round:()=>Wt,round_:()=>Wt,row_stack:()=>gc,save:()=>td,saveNpy:()=>qm,saveNpySync:()=>Vm,saveNpz:()=>Hn,saveNpzSync:()=>Qy,saveSync:()=>ed,savetxt:()=>id,savetxtSync:()=>ud,savez:()=>nd,savez_compressed:()=>od,searchsorted:()=>Nf,select:()=>Ql,serializeNpy:()=>Tr,serializeNpz:()=>tt,serializeNpzSync:()=>re,serializeTxt:()=>et,setdiff1d:()=>Cf,setxor1d:()=>Uf,sign:()=>xu,signbit:()=>_l,sin:()=>Ou,sinh:()=>Pu,sort:()=>pf,sort_complex:()=>bf,spacing:()=>Ml,split:()=>Ju,sqrt:()=>lu,square:()=>Kc,squeeze:()=>oc,stack:()=>Zu,swapaxes:()=>Wu,take:()=>Ic,take_along_axis:()=>Yl,tan:()=>Uu,tanh:()=>Lu,tensordot:()=>Eu,tile:()=>rc,trace:()=>_u,transpose:()=>Bu,tri:()=>eu,tril:()=>nu,tril_indices:()=>nf,tril_indices_from:()=>of,triu:()=>ou,triu_indices:()=>af,triu_indices_from:()=>sf,true_divide:()=>Nn,trunc:()=>Bf,union1d:()=>$f,unique:()=>vf,unpackbits:()=>Al,unravel_index:()=>mf,vander:()=>au,vsplit:()=>Qu,vstack:()=>vn,where:()=>Df,zeros:()=>Ir,zeros_like:()=>Gi});module.exports=de(pd);var _r=require("node:fs"),Fr=require("node:fs/promises");Ht();Jt();Kt();te();ht();function Pr(r,t={}){let{delimiter:e,comments:n="#",skiprows:o=0,usecols:a,max_rows:u,dtype:s="float64",missing_values:i,filling_values:c}=t,l=r.split(/\r?\n/);if(o>0&&(l=l.slice(o)),l=l.filter(p=>{let g=p.trim();return!(g===""||n&&g.startsWith(n))}),u!==void 0&&u>0&&(l=l.slice(0,u)),l.length===0)return rr([],s);let m=[],y=new Set(i?Array.isArray(i)?i:[i]:[]),d=c!==void 0?c:s.includes("int")||s==="bool"?0:NaN;for(let p of l){let g;e===void 0?g=p.trim().split(/\s+/):g=p.split(e),a!==void 0&&(g=(Array.isArray(a)?a:[a]).map(A=>(A<0&&(A=g.length+A),g[A]??"")));let h=g.map(b=>{let A=b.trim();if(y.has(A)||A==="")return d;let S=parseFloat(A);return isNaN(S)?d:S});m.push(h)}let f=m[0]?.length??0;for(let p=1;p<m.length;p++)if(m[p].length!==f)throw new Error(`Inconsistent number of columns: row 0 has ${f} columns, row ${p} has ${m[p].length} columns`);return f===1?rr(m.map(p=>p[0]),s):rr(m,s)}function It(r,t={}){let e={...t,missing_values:t.missing_values??["","nan","NaN","NA","N/A","-"],filling_values:t.filling_values??NaN};return Pr(r,e)}function zt(r,t,e="float64"){let n=typeof t=="string"?new RegExp(t,"gm"):new RegExp(t.source,"gm"),o=[],a;for(;(a=n.exec(r))!==null;)if(a.length>1){let u=a.slice(1).map(s=>{let i=parseFloat(s);return isNaN(i)?0:i});o.push(u)}return o.length===0?rr([],e):o[0].length===1?rr(o.map(u=>u[0]),e):rr(o,e)}function ym(r,t){let e=typeof r=="bigint"?Number(r):r,n=t.match(/^%([+-]?)(\d*)(?:\.(\d+))?([dfeEgGs])$/);if(!n)return String(e);let[,o,a,u,s]=n,i=u!==void 0?parseInt(u,10):void 0,c;switch(s){case"d":c=Math.round(e).toString();break;case"f":c=e.toFixed(i??6);break;case"e":c=e.toExponential(i??6).replace(/e([+-])(\d)$/,"e$10$2");break;case"E":c=e.toExponential(i??6).toUpperCase().replace(/E([+-])(\d)$/,"E$10$2");break;case"g":case"G":{let l=i??6,m=Math.floor(Math.log10(Math.abs(e)));m>=-4&&m<l?(c=e.toPrecision(l),c.includes(".")&&(c=c.replace(/\.?0+$/,""))):c=e.toExponential(l-1),s==="G"&&(c=c.toUpperCase());break}case"s":c=String(e);break;default:c=String(e)}if(a){let l=parseInt(a,10);if(c.length<l){let m=" ".repeat(l-c.length);o==="-"?c=c+m:c=m+c}}return o==="+"&&e>=0&&!c.startsWith("-")&&(c="+"+c),c}function et(r,t={}){let{fmt:e="%.18e",delimiter:n=" ",newline:o=`
3
+ `,header:a,footer:u,comments:s="# "}=t;if(r.ndim>2)throw new Error("savetxt: array must be 1D or 2D");let i=[];if(a!==void 0){let l=a.split(/\r?\n/);for(let m of l)m.startsWith(s.trimEnd())?i.push(m):i.push(s+m)}let c=r.toArray();if(r.ndim===1)for(let l of c)i.push(ym(l,e));else for(let l of c){let m=l.map(y=>ym(y,e));i.push(m.join(n))}if(u!==void 0){let l=u.split(/\r?\n/);for(let m of l)m.startsWith(s.trimEnd())?i.push(m):i.push(s+m)}return i.join(o)+o}xr();ht();Ht();Jt();Dt();Kt();te();X();J();var hr=624,ee=397,Ey=2567483615,Pn=2147483648,jn=2147483647,Sr={mt:new Uint32Array(hr),mti:hr+1};function Am(r){let t=Sr.mt;t[0]=r>>>0;for(let e=1;e<hr;e++){let n=t[e-1]^t[e-1]>>>30;t[e]=Math.imul(1812433253,n)+e>>>0}Sr.mti=hr}function dm(){let r=Sr.mt,t,e=[0,Ey];if(Sr.mti>=hr){let n;for(Sr.mti===hr+1&&Am(5489),n=0;n<hr-ee;n++)t=r[n]&Pn|r[n+1]&jn,r[n]=r[n+ee]^t>>>1^e[t&1];for(;n<hr-1;n++)t=r[n]&Pn|r[n+1]&jn,r[n]=r[n+(ee-hr)]^t>>>1^e[t&1];t=r[hr-1]&Pn|r[0]&jn,r[hr-1]=r[ee-1]^t>>>1^e[t&1],Sr.mti=0}return t=r[Sr.mti++],t^=t>>>11,t^=t<<7&2636928640,t^=t<<15&4022730752,t^=t>>>18,t>>>0}function Y(){let r=dm()>>>5,t=dm()>>>6;return(r*67108864+t)/9007199254740992}var Oy=2468251765,Cy=1492356589,Uy=1135663077,$y=2337405405,Ry=3389127133,ky=1232336661,Yn=16,ne=4;function lr(r){return r>>>0}function Ln(r,t){return r=lr(lr(r)^t.val),t.val=lr(Math.imul(t.val,Oy)),r=lr(Math.imul(r,t.val)),r=lr(r^r>>>Yn),r}function qy(r,t){let e=lr(lr(Math.imul(Ry,lr(r)))-lr(Math.imul(ky,lr(t))));return e=lr(e^e>>>Yn),e}function Vy(r){let t=[0,0,0,0],e=[r>>>0],n={val:Uy};for(let o=0;o<ne;o++)o<e.length?t[o]=Ln(e[o],n):t[o]=Ln(0,n);for(let o=0;o<ne;o++)for(let a=0;a<ne;a++)if(o!==a){let u=Ln(t[o],n);t[a]=qy(t[a],u)}return t}function Py(r,t){let e=[],n=$y;for(let o=0;o<t;o++){let a=r[o%ne],u=lr(a^n);n=lr(Math.imul(n,Cy)),u=lr(Math.imul(u,n)),u=lr(u^u>>>Yn),e.push(u)}return e}var jy=BigInt("4865540595714422341"),Ly=BigInt("2549297995355413924"),Wy=Ly<<BigInt(64)|jy,Wn=BigInt("0xffffffffffffffff"),Gn=(BigInt(1)<<BigInt(128))-BigInt(1);function Gy(r){let t=r>>BigInt(64),e=r&Wn,n=(t^e)&Wn,o=Number(r>>BigInt(122));return(n>>BigInt(o)|n<<BigInt(64-o))&Wn}function Zn(r,t){return r*Wy+t&Gn}function gm(r){let t=Vy(r),e=Py(t,8),n=BigInt(e[0])|BigInt(e[1])<<BigInt(32),o=BigInt(e[2])|BigInt(e[3])<<BigInt(32),a=BigInt(e[4])|BigInt(e[5])<<BigInt(32),u=BigInt(e[6])|BigInt(e[7])<<BigInt(32),s=n<<BigInt(64)|o,i=(a<<BigInt(64)|u)<<BigInt(1);i=(i|BigInt(1))&Gn;let c=BigInt(0);return c=Zn(c,i),c=c+s&Gn,c=Zn(c,i),{state:c,inc:i}}function Zy(r){return r.state=Zn(r.state,r.inc),Gy(r.state)}function Yy(r){let e=Zy(r)>>BigInt(11);return Number(e)/9007199254740992}var _t=class{constructor(t){if(t!==void 0)this._pcgState=gm(t);else{let e=Math.floor(Math.random()*4294967296);this._pcgState=gm(e)}}_randomFloat(){return Yy(this._pcgState)}random(t){if(t===void 0)return this._randomFloat();let e=Array.isArray(t)?t:[t],n=e.reduce((u,s)=>u*s,1),o=D.zeros(e,"float64"),a=o.data;for(let u=0;u<n;u++)a[u]=this._randomFloat();return o}integers(t,e,n){if(e===void 0&&(e=t,t=0),n===void 0)return Math.floor(this._randomFloat()*(e-t))+t;let o=Array.isArray(n)?n:[n],a=o.reduce((c,l)=>c*l,1),u=D.zeros(o,"int64"),s=u.data,i=e-t;for(let c=0;c<a;c++)s[c]=BigInt(Math.floor(this._randomFloat()*i)+t);return u}standard_normal(t){if(t===void 0)return jr(this._randomFloat.bind(this));let e=Array.isArray(t)?t:[t],n=e.reduce((u,s)=>u*s,1),o=D.zeros(e,"float64"),a=o.data;for(let u=0;u<n;u+=2){let[s,i]=Ft(this._randomFloat.bind(this));a[u]=s,u+1<n&&(a[u+1]=i)}return o}normal(t=0,e=1,n){if(n===void 0)return jr(this._randomFloat.bind(this))*e+t;let o=Array.isArray(n)?n:[n],a=o.reduce((i,c)=>i*c,1),u=D.zeros(o,"float64"),s=u.data;for(let i=0;i<a;i+=2){let[c,l]=Ft(this._randomFloat.bind(this));s[i]=c*e+t,i+1<a&&(s[i+1]=l*e+t)}return u}uniform(t=0,e=1,n){if(n===void 0)return this._randomFloat()*(e-t)+t;let o=Array.isArray(n)?n:[n],a=o.reduce((c,l)=>c*l,1),u=D.zeros(o,"float64"),s=u.data,i=e-t;for(let c=0;c<a;c++)s[c]=this._randomFloat()*i+t;return u}choice(t,e,n=!0,o){return Tm(t,e,n,o,this._randomFloat.bind(this))}permutation(t){return Om(t,this._randomFloat.bind(this))}shuffle(t){Um(t,this._randomFloat.bind(this))}exponential(t=1,e){if(e===void 0)return-Math.log(1-this._randomFloat())*t;let n=Array.isArray(e)?e:[e],o=n.reduce((s,i)=>s*i,1),a=D.zeros(n,"float64"),u=a.data;for(let s=0;s<o;s++)u[s]=-Math.log(1-this._randomFloat())*t;return a}poisson(t=1,e){if(e===void 0)return oe(t,this._randomFloat.bind(this));let n=Array.isArray(e)?e:[e],o=n.reduce((s,i)=>s*i,1),a=D.zeros(n,"int64"),u=a.data;for(let s=0;s<o;s++)u[s]=BigInt(oe(t,this._randomFloat.bind(this)));return a}binomial(t,e,n){if(n===void 0)return ae(t,e,this._randomFloat.bind(this));let o=Array.isArray(n)?n:[n],a=o.reduce((i,c)=>i*c,1),u=D.zeros(o,"int64"),s=u.data;for(let i=0;i<a;i++)s[i]=BigInt(ae(t,e,this._randomFloat.bind(this)));return u}};function bm(r){return new _t(r)}function hm(r){r==null&&(r=Math.floor(Date.now()^Math.random()*4294967296)),Am(r>>>0)}function Sm(){return{mt:Array.from(Sr.mt),mti:Sr.mti}}function xm(r){Sr.mt=new Uint32Array(r.mt),Sr.mti=r.mti}function jr(r){let t,e;do t=r(),e=r();while(t===0);return Math.sqrt(-2*Math.log(t))*Math.cos(2*Math.PI*e)}function Ft(r){let t,e;do t=r(),e=r();while(t===0);let n=Math.sqrt(-2*Math.log(t)),o=2*Math.PI*e;return[n*Math.cos(o),n*Math.sin(o)]}function oe(r,t){if(r<30){let e=Math.exp(-r),n=0,o=1;do n++,o*=t();while(o>e);return n-1}else{let e=jr(t);return Math.max(0,Math.round(r+Math.sqrt(r)*e))}}function ae(r,t,e){if(r*t<10&&r*(1-t)<10){let n=0;for(let o=0;o<r;o++)e()<t&&n++;return n}else{let n=r*t,o=Math.sqrt(r*t*(1-t)),a=jr(e);return Math.max(0,Math.min(r,Math.round(n+o*a)))}}function Dm(r){if(r===void 0)return Y();let t=Array.isArray(r)?r:[r],e=t.reduce((a,u)=>a*u,1),n=D.zeros(t,"float64"),o=n.data;for(let a=0;a<e;a++)o[a]=Y();return n}function Nm(...r){if(r.length===0)return Y();let t=r.reduce((o,a)=>o*a,1),e=D.zeros(r,"float64"),n=e.data;for(let o=0;o<t;o++)n[o]=Y();return e}function wm(...r){if(r.length===0)return jr(Y);let t=r.reduce((o,a)=>o*a,1),e=D.zeros(r,"float64"),n=e.data;for(let o=0;o<t;o+=2){let[a,u]=Ft(Y);n[o]=a,o+1<t&&(n[o+1]=u)}return e}function Im(r,t,e,n="int64"){t==null&&(t=r,r=0);let o=t-r;if(e===void 0)return Math.floor(Y()*o)+r;let a=Array.isArray(e)?e:[e],u=a.reduce((c,l)=>c*l,1),s=D.zeros(a,n),i=s.data;if(B(n)){let c=i;for(let l=0;l<u;l++)c[l]=BigInt(Math.floor(Y()*o)+r)}else{let c=i;for(let l=0;l<u;l++)c[l]=Math.floor(Y()*o)+r}return s}function zm(r=0,t=1,e){if(e===void 0)return Y()*(t-r)+r;let n=Array.isArray(e)?e:[e],o=n.reduce((i,c)=>i*c,1),a=D.zeros(n,"float64"),u=a.data,s=t-r;for(let i=0;i<o;i++)u[i]=Y()*s+r;return a}function _m(r=0,t=1,e){if(e===void 0)return jr(Y)*t+r;let n=Array.isArray(e)?e:[e],o=n.reduce((s,i)=>s*i,1),a=D.zeros(n,"float64"),u=a.data;for(let s=0;s<o;s+=2){let[i,c]=Ft(Y);u[s]=i*t+r,s+1<o&&(u[s+1]=c*t+r)}return a}function Fm(r){if(r===void 0)return jr(Y);let t=Array.isArray(r)?r:[r],e=t.reduce((a,u)=>a*u,1),n=D.zeros(t,"float64"),o=n.data;for(let a=0;a<e;a+=2){let[u,s]=Ft(Y);o[a]=u,a+1<e&&(o[a+1]=s)}return n}function Mm(r=1,t){if(t===void 0)return-Math.log(1-Y())*r;let e=Array.isArray(t)?t:[t],n=e.reduce((u,s)=>u*s,1),o=D.zeros(e,"float64"),a=o.data;for(let u=0;u<n;u++)a[u]=-Math.log(1-Y())*r;return o}function Bm(r=1,t){if(t===void 0)return oe(r,Y);let e=Array.isArray(t)?t:[t],n=e.reduce((u,s)=>u*s,1),o=D.zeros(e,"int64"),a=o.data;for(let u=0;u<n;u++)a[u]=BigInt(oe(r,Y));return o}function vm(r,t,e){if(e===void 0)return ae(r,t,Y);let n=Array.isArray(e)?e:[e],o=n.reduce((s,i)=>s*i,1),a=D.zeros(n,"int64"),u=a.data;for(let s=0;s<o;s++)u[s]=BigInt(ae(r,t,Y));return a}function Tm(r,t,e=!0,n,o=Y){let a;if(typeof r=="number")a=Array.from({length:r},(y,d)=>d);else{let y=r.size;a=[];for(let d=0;d<y;d++)a.push(Number(r.iget(d)))}let u=a.length;if(u===0)throw new Error("cannot take a sample from an empty sequence");let s;if(n!==void 0){if(Array.isArray(n))s=n;else{let d=n.size;s=[];for(let f=0;f<d;f++)s.push(Number(n.iget(f)))}if(s.length!==u)throw new Error("p and a must have the same size");let y=s.reduce((d,f)=>d+f,0);Math.abs(y-1)>1e-10&&(s=s.map(d=>d/y))}if(t===void 0){if(s){let y=o(),d=0;for(let f=0;f<u;f++)if(d+=s[f],y<d)return a[f];return a[u-1]}return a[Math.floor(o()*u)]}let i=Array.isArray(t)?t:[t],c=i.reduce((y,d)=>y*d,1);if(!e&&c>u)throw new Error("cannot take a larger sample than population when replace=false");let l=D.zeros(i,"float64"),m=l.data;if(e)if(s){let y=new Array(u);y[0]=s[0];for(let d=1;d<u;d++)y[d]=y[d-1]+s[d];for(let d=0;d<c;d++){let f=o(),p=0;for(;p<u-1&&f>=y[p];)p++;m[d]=a[p]}}else for(let y=0;y<c;y++)m[y]=a[Math.floor(o()*u)];else{let y=[...a],d=s?[...s]:void 0;for(let f=0;f<c;f++){let p;if(d){let g=d.reduce((A,S)=>A+S,0),h=o()*g,b=0;p=0;for(let A=0;A<y.length;A++)if(b+=d[A],h<b){p=A;break}p===0&&h>=b&&(p=y.length-1)}else p=Math.floor(o()*y.length);m[f]=y[p],y.splice(p,1),d&&d.splice(p,1)}}return l}function Em(r,t,e=!0,n){return Tm(r,t,e,n,Y)}function Om(r,t=Y){let e;if(typeof r=="number"){let o=new Float64Array(r);for(let a=0;a<r;a++)o[a]=a;e=D.fromData(o,[r],"float64")}else e=r.copy();let n=e.size;for(let o=n-1;o>0;o--){let a=Math.floor(t()*(o+1)),u=e.iget(o);e.iset(o,e.iget(a)),e.iset(a,u)}return e}function Cm(r){return Om(r,Y)}function Um(r,t=Y){let e=r.size;for(let n=e-1;n>0;n--){let o=Math.floor(t()*(n+1)),a=r.iget(n);r.iset(n,r.iget(o)),r.iset(o,a)}}function $m(r){Um(r,Y)}ht();function dr(r){return r&&typeof r=="object"&&"_data"in r&&"_shape"in r?v._fromStorage(r):r}var Jy={seed:hm,random:r=>dr(Dm(r)),rand:(...r)=>dr(Nm(...r)),randn:(...r)=>dr(wm(...r)),randint:(r,t,e,n)=>dr(Im(r,t,e,n)),uniform:(r,t,e)=>dr(zm(r,t,e)),normal:(r,t,e)=>dr(_m(r,t,e)),standard_normal:r=>dr(Fm(r)),exponential:(r,t)=>dr(Mm(r,t)),poisson:(r,t)=>dr(Bm(r,t)),binomial:(r,t,e)=>dr(vm(r,t,e)),choice:(r,t,e,n)=>dr(Em(r,t,e,n)),permutation:r=>dr(Cm(r)),shuffle:$m,get_state:Sm,set_state:xm,default_rng:bm,Generator:_t},Xy="0.11.0";async function Rm(r){let t=await(0,Fr.readFile)(r);return Ur(t)}function km(r){let t=(0,_r.readFileSync)(r);return Ur(t)}async function qm(r,t){let e=Tr(t);await(0,Fr.writeFile)(r,e)}function Vm(r,t){let e=Tr(t);(0,_r.writeFileSync)(r,e)}async function Pm(r,t={}){let e=await(0,Fr.readFile)(r);return Vr(e,t)}function jm(r,t={}){let e=(0,_r.readFileSync)(r),{parseNpzSync:n}=(Kt(),de(am));return n(e,t)}async function Hn(r,t,e={}){let n=await tt(t,e);await(0,Fr.writeFile)(r,n)}function Qy(r,t){let{serializeNpzSync:e}=(te(),de(pm)),n=e(t);(0,_r.writeFileSync)(r,n)}async function Ky(r,t={}){if(r.endsWith(".npy")){if(t.allowNpy===!1)throw new Error("Loading .npy files is disabled (allowNpy: false)");return Rm(r)}else{if(r.endsWith(".npz"))return Pm(r,t);throw new Error(`Unknown file extension. Expected .npy or .npz, got: ${r}`)}}function rd(r,t={}){if(r.endsWith(".npy")){if(t.allowNpy===!1)throw new Error("Loading .npy files is disabled (allowNpy: false)");return km(r)}else{if(r.endsWith(".npz"))return jm(r,t);throw new Error(`Unknown file extension. Expected .npy or .npz, got: ${r}`)}}async function td(r,t){if(!r.endsWith(".npy"))throw new Error(`save() is for .npy files. Use saveNpz() for .npz files. Got: ${r}`);return qm(r,t)}function ed(r,t){if(!r.endsWith(".npy"))throw new Error(`saveSync() is for .npy files. Use saveNpzSync() for .npz files. Got: ${r}`);return Vm(r,t)}async function nd(r,t){return r.endsWith(".npz")||(r=r+".npz"),Hn(r,t,{compress:!1})}async function od(r,t){return r.endsWith(".npz")||(r=r+".npz"),Hn(r,t,{compress:!0})}async function ad(r,t={}){let e=await(0,Fr.readFile)(r,{encoding:t.encoding??"utf-8"});return Pr(e,t)}function sd(r,t={}){let e=(0,_r.readFileSync)(r,{encoding:t.encoding??"utf-8"});return Pr(e,t)}async function id(r,t,e={}){let n=et(t,e);await(0,Fr.writeFile)(r,n,"utf-8")}function ud(r,t,e={}){let n=et(t,e);(0,_r.writeFileSync)(r,n,"utf-8")}async function cd(r,t={}){let e=await(0,Fr.readFile)(r,{encoding:t.encoding??"utf-8"});return It(e,t)}function ld(r,t={}){let e=(0,_r.readFileSync)(r,{encoding:t.encoding??"utf-8"});return It(e,t)}async function fd(r,t,e="float64"){let n=await(0,Fr.readFile)(r,{encoding:"utf-8"});return zt(n,t,e)}function md(r,t,e="float64"){let n=(0,_r.readFileSync)(r,{encoding:"utf-8"});return zt(n,t,e)}0&&(module.exports={Complex,DTYPE_TO_DESCR,InvalidNpyError,NDArray,SUPPORTED_DTYPES,UnsupportedDTypeError,__version__,abs,absolute,acos,acosh,amax,amin,angle,append,arange,arccos,arccosh,arcsin,arcsinh,arctan,arctan2,arctanh,argpartition,argsort,argwhere,around,array,array_equal,array_equiv,array_split,asanyarray,asarray,ascontiguousarray,asfortranarray,asin,asinh,atan,atan2,atanh,atleast_1d,atleast_2d,atleast_3d,average,bincount,bindex,bitwise_and,bitwise_not,bitwise_or,bitwise_xor,broadcast_arrays,broadcast_shapes,broadcast_to,cbrt,ceil,choose,column_stack,compress,concatenate,conj,conjugate,convolve,copy,copysign,copyto,corrcoef,correlate,cos,cosh,count_nonzero,cov,cross,cumprod,cumsum,cumulative_prod,cumulative_sum,deg2rad,degrees,delete:null,diag,diag_indices,diag_indices_from,diagflat,diagonal,diff,digitize,divide,divmod,dot,dsplit,dstack,ediff1d,einsum,empty,empty_like,exp,exp2,expand_dims,expm1,extract,eye,fabs,fill_diagonal,fix,flatnonzero,flip,fliplr,flipud,float_power,floor,floor_divide,fmod,frexp,frombuffer,fromfile,fromfunction,fromiter,fromregex,fromregexSync,fromstring,full,full_like,gcd,genfromtxt,genfromtxtSync,geomspace,gradient,heaviside,histogram,histogram2d,histogramdd,hsplit,hstack,hypot,identity,iindex,imag,in1d,indices,inner,insert,intersect1d,invert,iscomplex,iscomplexobj,isdtype,isfinite,isfortran,isin,isinf,isnan,isnat,isneginf,isposinf,isreal,isrealobj,isscalar,iterable,ix_,kron,lcm,ldexp,left_shift,lexsort,linalg,linspace,load,loadNpy,loadNpySync,loadNpz,loadNpzFile,loadNpzFileSync,loadNpzSync,loadSync,loadtxt,loadtxtSync,log,log10,log1p,log2,logaddexp,logaddexp2,logical_and,logical_not,logical_or,logical_xor,logspace,mask_indices,max,median,meshgrid,min,mod,modf,moveaxis,nanargmax,nanargmin,nancumprod,nancumsum,nanmax,nanmean,nanmedian,nanmin,nanprod,nanstd,nansum,nanvar,negative,nextafter,nonzero,ones,ones_like,outer,packbits,pad,parseNpy,parseNpyData,parseNpyHeader,parseNpz,parseNpzSync,parseTxt,partition,percentile,place,positive,pow,power,promote_types,ptp,put,put_along_axis,putmask,quantile,rad2deg,radians,random,ravel,ravel_multi_index,real,real_if_close,reciprocal,remainder,repeat,reshape,resize,right_shift,rint,roll,rollaxis,rot90,round,round_,row_stack,save,saveNpy,saveNpySync,saveNpz,saveNpzSync,saveSync,savetxt,savetxtSync,savez,savez_compressed,searchsorted,select,serializeNpy,serializeNpz,serializeNpzSync,serializeTxt,setdiff1d,setxor1d,sign,signbit,sin,sinh,sort,sort_complex,spacing,split,sqrt,square,squeeze,stack,swapaxes,take,take_along_axis,tan,tanh,tensordot,tile,trace,transpose,tri,tril,tril_indices,tril_indices_from,triu,triu_indices,triu_indices_from,true_divide,trunc,union1d,unique,unpackbits,unravel_index,vander,vsplit,vstack,where,zeros,zeros_like});
4
4
  //# sourceMappingURL=numpy-ts.node-io.cjs.map