numpy-ts 0.5.0 → 0.7.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,2 +1,2 @@
1
- "use strict";var np=(()=>{var fr=Object.defineProperty;var bn=Object.getOwnPropertyDescriptor;var Sn=Object.getOwnPropertyNames;var Dn=Object.prototype.hasOwnProperty;var wn=(r,t)=>{for(var e in t)fr(r,e,{get:t[e],enumerable:!0})},Nn=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Sn(t))!Dn.call(r,o)&&o!==e&&fr(r,o,{get:()=>t[o],enumerable:!(n=bn(t,o))||n.enumerable});return r};var xn=r=>Nn(fr({},"__esModule",{value:!0}),r);var So={};wn(So,{DTYPE_TO_DESCR:()=>Q,InvalidNpyError:()=>C,NDArray:()=>z,SUPPORTED_DTYPES:()=>sr,UnsupportedDTypeError:()=>v,__version__:()=>bo,absolute:()=>fe,arange:()=>Qt,arccos:()=>Ue,arccosh:()=>Ve,arcsin:()=>Be,arcsinh:()=>ve,arctan:()=>_e,arctan2:()=>Ee,arctanh:()=>Pe,array:()=>V,array_equal:()=>on,array_split:()=>We,asarray:()=>ne,broadcast_arrays:()=>rn,broadcast_to:()=>Ke,choose:()=>nn,concatenate:()=>Le,copy:()=>oe,cos:()=>Ie,cosh:()=>Ce,degrees:()=>Oe,dot:()=>Ae,dstack:()=>He,empty:()=>Ur,empty_like:()=>ie,eye:()=>Br,floor_divide:()=>de,full:()=>_r,full_like:()=>ue,geomspace:()=>te,hsplit:()=>Je,hstack:()=>Ze,hypot:()=>Te,identity:()=>ee,inner:()=>De,linspace:()=>Kt,loadNpz:()=>Mr,loadNpzSync:()=>Cr,logspace:()=>re,mod:()=>me,moveaxis:()=>Re,negative:()=>pe,ones:()=>zr,ones_like:()=>se,outer:()=>we,parseNpy:()=>K,parseNpyData:()=>ur,parseNpyHeader:()=>ir,parseNpz:()=>cr,parseNpzSync:()=>lr,positive:()=>ge,power:()=>le,put:()=>en,radians:()=>$e,reciprocal:()=>he,repeat:()=>Qe,serializeNpy:()=>q,serializeNpz:()=>kr,serializeNpzSync:()=>vr,sign:()=>ye,sin:()=>xe,sinh:()=>Me,split:()=>Ye,sqrt:()=>ce,stack:()=>je,swapaxes:()=>Fe,take:()=>tn,tan:()=>ze,tanh:()=>ke,tensordot:()=>Ne,tile:()=>Xe,trace:()=>be,transpose:()=>Se,vsplit:()=>Ge,vstack:()=>qe,zeros:()=>J,zeros_like:()=>ae});function Pr(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 Fr(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 c=e<0?t+e:e;if(c<0||c>=t)throw new Error(`Index ${e} is out of bounds for size ${t}`);return{start:c,stop:c+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 M="float64";function B(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 Lr(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 Rr(r){return r==="float64"||r==="float32"}function w(r){return r==="int64"||r==="uint64"}function O(r,t){if(r===t)return r;if(r==="bool")return t;if(t==="bool")return r;if(Rr(r)||Rr(t)){if(r==="float64"||t==="float64")return"float64";if(r==="float32"){let i=t;return i==="int32"||i==="int64"||i==="uint32"||i==="uint64"?"float64":"float32"}if(t==="float32"){let i=r;return i==="int32"||i==="int64"||i==="uint32"||i==="uint64"?"float64":"float32"}return"float32"}let e=r.startsWith("int"),n=t.startsWith("int"),o=r.startsWith("uint"),a=t.startsWith("uint"),c=i=>i.includes("64")?64:i.includes("32")?32:i.includes("16")?16:i.includes("8")?8:0,u=c(r),s=c(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 i=Math.max(u,s);return e?i===64?"int64":i===32?"int32":i===16?"int16":"int8":i===64?"uint64":i===32?"uint32":i===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 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;if(o===0)return this._data[this._offset];let a=t,c=this._offset;for(let u=0;u<o;u++){let s=1;for(let l=u+1;l<o;l++)s*=e[l];let i=Math.floor(a/s);a=a%s,c+=i*n[u]}return this._data[c]}iset(t,e){let n=this._shape,o=this._strides,a=n.length;if(a===0){this._data[this._offset]=e;return}let c=t,u=this._offset;for(let s=0;s<a;s++){let i=1;for(let f=s+1;f<a;f++)i*=n[f];let l=Math.floor(c/i);c=c%i,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=B(e);if(!o)throw new Error(`Cannot copy array with dtype ${e}`);let a=new o(n);if(this.isCContiguous&&this._offset===0)if(w(e)){let c=this._data,u=a;for(let s=0;s<n;s++)u[s]=c[s]}else a.set(this._data);else if(w(e)){let c=a;for(let u=0;u<n;u++)c[u]=this.iget(u)}else for(let c=0;c<n;c++)a[c]=this.iget(c);return new r(a,t,r._computeStrides(t),0,e)}static fromData(t,e,n,o,a){let c=o??r._computeStrides(e),u=a??0;return new r(t,e,c,u,n)}static zeros(t,e=M){let n=t.reduce((c,u)=>c*u,1),o=B(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=M){let n=t.reduce((c,u)=>c*u,1),o=B(e);if(!o)throw new Error(`Cannot create array with dtype ${e}`);let a=new o(n);return w(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 P(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}function jr(r,t){let e=r.length,n=t.length,o=Math.max(e,n),a=new Array(o);for(let c=0;c<o;c++){let u=c<o-e?1:r[c-(o-e)],s=c<o-n?1:t[c-(o-n)];if(u===s)a[c]=u;else if(u===1)a[c]=s;else if(s===1)a[c]=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 In(r,t,e){let n=r.length,o=e.length,a=new Array(o).fill(0);for(let c=0;c<n;c++){let u=o-n+c,s=r[c],i=e[u];if(s===i)a[u]=t[c];else if(s===1)a[u]=0;else throw new Error("Invalid broadcast")}return a}function er(r,t){let e=In(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=jr(r.shape,t.shape),a=er(r,o),c=er(t,o),u=O(r.dtype,t.dtype),s=D.zeros(o,u),i=s.data,l=s.size;if(w(u)){let f=i;for(let p=0;p<l;p++){let m=a.iget(p),y=c.iget(p),d=typeof m=="bigint"?m:BigInt(Math.round(m)),A=typeof y=="bigint"?y:BigInt(Math.round(y));n==="add"?f[p]=d+A:n==="subtract"?f[p]=d-A:n==="multiply"?f[p]=d*A:n==="divide"?f[p]=d/A:f[p]=BigInt(Math.round(e(Number(d),Number(A))))}}else{let f=w(r.dtype)||w(t.dtype);for(let p=0;p<l;p++){let m=a.iget(p),y=c.iget(p),d=Number(m),A=Number(y);i[p]=e(d,A)}}return s}function F(r,t,e){let n=jr(r.shape,t.shape),o=er(r,n),a=er(t,n),c=n.reduce((i,l)=>i*l,1),u=new Uint8Array(c),s=w(r.dtype)||w(t.dtype);for(let i=0;i<c;i++){let l=o.iget(i),f=a.iget(i),p=Number(l),m=Number(f);u[i]=e(p,m)?1:0}return D.fromData(u,n,"bool")}function $(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=D.zeros(o,u),i=s.data,l=r.data;if(w(n))if(w(u)){let f=i;for(let p=0;p<a;p++){let m=Number(l[p]);f[p]=BigInt(Math.round(t(m)))}}else for(let f=0;f<a;f++)i[f]=t(Number(l[f]));else for(let f=0;f<a;f++)i[f]=t(Number(l[f]));return s}function pr(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function qr(r,t){return typeof t=="number"?_n(r,t):pr(r,t)?zn(r,t):k(r,t,(e,n)=>e+n,"add")}function zn(r,t){let e=O(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,c=t.data,u=n.data;if(w(e)){let s=u;if(!w(r.dtype)||!w(t.dtype))for(let l=0;l<o;l++){let f=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),p=typeof c[l]=="bigint"?c[l]:BigInt(Math.round(Number(c[l])));s[l]=f+p}else{let l=a,f=c;for(let p=0;p<o;p++)s[p]=l[p]+f[p]}}else if(w(r.dtype)||w(t.dtype))for(let i=0;i<o;i++){let l=typeof a[i]=="bigint"?Number(a[i]):a[i],f=typeof c[i]=="bigint"?Number(c[i]):c[i];u[i]=l+f}else for(let i=0;i<o;i++)u[i]=a[i]+c[i];return n}function Zr(r,t){return typeof t=="number"?En(r,t):pr(r,t)?Bn(r,t):k(r,t,(e,n)=>e-n,"subtract")}function Bn(r,t){let e=O(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,c=t.data,u=n.data;if(w(e)){let s=u;if(!w(r.dtype)||!w(t.dtype))for(let l=0;l<o;l++){let f=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),p=typeof c[l]=="bigint"?c[l]:BigInt(Math.round(Number(c[l])));s[l]=f-p}else{let l=a,f=c;for(let p=0;p<o;p++)s[p]=l[p]-f[p]}}else if(w(r.dtype)||w(t.dtype))for(let i=0;i<o;i++){let l=typeof a[i]=="bigint"?Number(a[i]):a[i],f=typeof c[i]=="bigint"?Number(c[i]):c[i];u[i]=l-f}else for(let i=0;i<o;i++)u[i]=a[i]-c[i];return n}function Hr(r,t){return typeof t=="number"?Tn(r,t):pr(r,t)?Un(r,t):k(r,t,(e,n)=>e*n,"multiply")}function Un(r,t){let e=O(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,c=t.data,u=n.data;if(w(e)){let s=u;if(!w(r.dtype)||!w(t.dtype))for(let l=0;l<o;l++){let f=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),p=typeof c[l]=="bigint"?c[l]:BigInt(Math.round(Number(c[l])));s[l]=f*p}else{let l=a,f=c;for(let p=0;p<o;p++)s[p]=l[p]*f[p]}}else if(w(r.dtype)||w(t.dtype))for(let i=0;i<o;i++){let l=typeof a[i]=="bigint"?Number(a[i]):a[i],f=typeof c[i]=="bigint"?Number(c[i]):c[i];u[i]=l*f}else for(let i=0;i<o;i++)u[i]=a[i]*c[i];return n}function Yr(r,t){if(typeof t=="number")return On(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:L(r,"float64"),i=n?t:L(t,"float64");return k(s,i,(l,f)=>l/f,"divide")}if(o||a){let s=o?r:L(r,"float32"),i=a?t:L(t,"float32");return k(s,i,(l,f)=>l/f,"divide")}let c=L(r,"float64"),u=L(t,"float64");return k(c,u,(s,i)=>s/i,"divide")}function L(r,t){let e=D.zeros(Array.from(r.shape),t),n=r.size,o=r.data,a=e.data;for(let c=0;c<n;c++)a[c]=Number(o[c]);return e}function _n(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,c=D.zeros(n,e),u=c.data;if(w(e)){let s=o,i=u,l=BigInt(Math.round(t));for(let f=0;f<a;f++)i[f]=s[f]+l}else for(let s=0;s<a;s++)u[s]=Number(o[s])+t;return c}function En(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,c=D.zeros(n,e),u=c.data;if(w(e)){let s=o,i=u,l=BigInt(Math.round(t));for(let f=0;f<a;f++)i[f]=s[f]-l}else for(let s=0;s<a;s++)u[s]=Number(o[s])-t;return c}function Tn(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,c=D.zeros(n,e),u=c.data;if(w(e)){let s=o,i=u,l=BigInt(Math.round(t));for(let f=0;f<a;f++)i[f]=s[f]*l}else for(let s=0;s<a;s++)u[s]=Number(o[s])*t;return c}function On(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=D.zeros(n,u),i=s.data;if(w(e))for(let l=0;l<a;l++)i[l]=Number(o[l])/t;else for(let l=0;l<a;l++)i[l]=Number(o[l])/t;return s}function Wr(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=D.zeros(e,t),c=a.data;if(w(t)){let u=n,s=c;for(let i=0;i<o;i++){let l=u[i];s[i]=l<0n?-l:l}}else for(let u=0;u<o;u++)c[u]=Math.abs(Number(n[u]));return a}function Gr(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=D.zeros(e,t),c=a.data;if(w(t)){let u=n,s=c;for(let i=0;i<o;i++)s[i]=-u[i]}else for(let u=0;u<o;u++)c[u]=-Number(n[u]);return a}function Jr(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=D.zeros(e,t),c=a.data;if(w(t)){let u=n,s=c;for(let i=0;i<o;i++){let l=u[i];s[i]=l>0n?1n:l<0n?-1n:0n}}else for(let u=0;u<o;u++){let s=Number(n[u]);c[u]=s>0?1:s<0?-1:0}return a}function Xr(r,t){return typeof t=="number"?$n(r,t):k(r,t,(e,n)=>(e%n+n)%n,"mod")}function $n(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,c=D.zeros(n,e),u=c.data;if(w(e)){let s=o,i=u,l=BigInt(Math.round(t));for(let f=0;f<a;f++){let p=s[f];i[f]=(p%l+l)%l}}else for(let s=0;s<a;s++){let i=Number(o[s]);u[s]=(i%t+t)%t}return c}function Qr(r,t){return typeof t=="number"?Mn(r,t):k(r,t,(e,n)=>Math.floor(e/n),"floor_divide")}function Mn(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,c=D.zeros(n,e),u=c.data;if(w(e)){let s=o,i=u,l=BigInt(Math.round(t));for(let f=0;f<a;f++)i[f]=s[f]/l}else for(let s=0;s<a;s++)u[s]=Math.floor(Number(o[s])/t);return c}function Kr(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=D.zeros(e,t),c=a.data;for(let u=0;u<o;u++)c[u]=n[u];return a}function rt(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,c=t!=="float32"&&t!=="float64"?"float64":t,u=D.zeros(e,c),s=u.data;if(w(t))for(let i=0;i<o;i++)s[i]=1/Number(n[i]);else for(let i=0;i<o;i++)s[i]=1/Number(n[i]);return u}function tt(r,t){return typeof t=="number"?kn(r,t):F(r,t,(e,n)=>e>n)}function et(r,t){return typeof t=="number"?vn(r,t):F(r,t,(e,n)=>e>=n)}function nt(r,t){return typeof t=="number"?Vn(r,t):F(r,t,(e,n)=>e<n)}function ot(r,t){return typeof t=="number"?Pn(r,t):F(r,t,(e,n)=>e<=n)}function at(r,t){return typeof t=="number"?Fn(r,t):F(r,t,(e,n)=>e===n)}function st(r,t){return typeof t=="number"?Rn(r,t):F(r,t,(e,n)=>e!==n)}function yr(r,t,e=1e-5,n=1e-8){return typeof t=="number"?Ln(r,t,e,n):F(r,t,(o,a)=>{let c=Math.abs(o-a),u=n+e*Math.abs(a);return c<=u})}function it(r,t,e=1e-5,n=1e-8){let o=yr(r,t,e,n),a=o.data;for(let c=0;c<o.size;c++)if(a[c]===0)return!1;return!0}function kn(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 D.fromData(e,Array.from(r.shape),"bool")}function vn(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 D.fromData(e,Array.from(r.shape),"bool")}function Vn(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 D.fromData(e,Array.from(r.shape),"bool")}function Pn(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 D.fromData(e,Array.from(r.shape),"bool")}function Fn(r,t){let e=new Uint8Array(r.size),n=r.data,o=r.dtype;if(w(o)){let a=BigInt(Math.round(t)),c=n;for(let u=0;u<r.size;u++)e[u]=c[u]===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 Rn(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 D.fromData(e,Array.from(r.shape),"bool")}function Ln(r,t,e,n){let o=new Uint8Array(r.size),a=r.data,c=r.dtype;if(w(c)){let u=a;for(let s=0;s<r.size;s++){let i=Number(u[s]),l=Math.abs(i-t),f=n+e*Math.abs(t);o[s]=l<=f?1:0}}else for(let u=0;u<r.size;u++){let s=Number(a[u]),i=Math.abs(s-t),l=n+e*Math.abs(t);o[u]=i<=l?1:0}return D.fromData(o,Array.from(r.shape),"bool")}function _(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 E(r,t,e,n){let o=n.length,a=new Array(o),c=Array.from(n).filter((s,i)=>i!==t),u=r;for(let s=c.length-1;s>=0;s--)a[s>=t?s+1:s]=u%c[s],u=Math.floor(u/c[s]);return a[t]=e,a}function H(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,c=r.size,u=r.data;if(t===void 0)if(w(n)){let y=u,d=BigInt(0);for(let A=0;A<c;A++)d+=y[A];return Number(d)}else{let y=0;for(let d=0;d<c;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 i=Array.from(o).filter((y,d)=>d!==s);if(i.length===0)return H(r);let l=D.zeros(i,n),f=l.data,p=o[s],m=i.reduce((y,d)=>y*d,1);if(w(n)){let y=u,d=f;for(let A=0;A<m;A++){let h=BigInt(0);for(let g=0;g<p;g++){let b=E(A,s,g,o),S=_(b,o);h+=y[S]}d[A]=h}}else for(let y=0;y<m;y++){let d=0;for(let A=0;A<p;A++){let h=E(y,s,A,o),g=_(h,o);d+=Number(u[g])}f[y]=d}if(e){let y=[...o];return y[s]=1,D.fromData(f,y,n)}return l}function mr(r,t,e=!1){let n=r.dtype,o=r.shape;if(t===void 0)return H(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 c=H(r,t,e);if(typeof c=="number")return c/o[a];let u=o[a],s=n;(w(n)||n.startsWith("int")||n.startsWith("uint"))&&(s="float64");let i=D.zeros(Array.from(c.shape),s),l=i.data,f=c.data;if(w(n)){let p=f;for(let m=0;m<l.length;m++)l[m]=Number(p[m])/u}else for(let p=0;p<l.length;p++)l[p]=Number(f[p])/u;return i}function dr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,c=r.size,u=r.data;if(t===void 0){if(c===0)throw new Error("max of empty array");let y=u[0];for(let d=1;d<c;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 i=Array.from(o).filter((y,d)=>d!==s);if(i.length===0)return dr(r);let l=D.zeros(i,n),f=l.data,p=o[s],m=i.reduce((y,d)=>y*d,1);if(w(n)){let y=u,d=f;for(let A=0;A<m;A++){let h=E(A,s,0,o),g=_(h,o),b=y[g];for(let S=1;S<p;S++){let x=E(A,s,S,o),N=_(x,o),T=y[N];T>b&&(b=T)}d[A]=b}}else for(let y=0;y<m;y++){let d=-1/0;for(let A=0;A<p;A++){let h=E(y,s,A,o),g=_(h,o),b=Number(u[g]);b>d&&(d=b)}f[y]=d}if(e){let y=[...o];return y[s]=1,D.fromData(f,y,n)}return l}function gr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,c=r.size,u=r.data;if(t===void 0)if(w(n)){let y=u,d=BigInt(1);for(let A=0;A<c;A++)d*=y[A];return Number(d)}else{let y=1;for(let d=0;d<c;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 i=Array.from(o).filter((y,d)=>d!==s);if(i.length===0)return gr(r);let l=D.zeros(i,n),f=l.data,p=o[s],m=i.reduce((y,d)=>y*d,1);if(w(n)){let y=u,d=f;for(let A=0;A<m;A++){let h=BigInt(1);for(let g=0;g<p;g++){let b=E(A,s,g,o),S=_(b,o);h*=y[S]}d[A]=h}}else for(let y=0;y<m;y++){let d=1;for(let A=0;A<p;A++){let h=E(y,s,A,o),g=_(h,o);d*=Number(u[g])}f[y]=d}if(e){let y=[...o];return y[s]=1,D.fromData(f,y,n)}return l}function hr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,c=r.size,u=r.data;if(t===void 0){if(c===0)throw new Error("min of empty array");let y=u[0];for(let d=1;d<c;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 i=Array.from(o).filter((y,d)=>d!==s);if(i.length===0)return hr(r);let l=D.zeros(i,n),f=l.data,p=o[s],m=i.reduce((y,d)=>y*d,1);if(w(n)){let y=u,d=f;for(let A=0;A<m;A++){let h=E(A,s,0,o),g=_(h,o),b=y[g];for(let S=1;S<p;S++){let x=E(A,s,S,o),N=_(x,o),T=y[N];T<b&&(b=T)}d[A]=b}}else for(let y=0;y<m;y++){let d=1/0;for(let A=0;A<p;A++){let h=E(y,s,A,o),g=_(h,o),b=Number(u[g]);b<d&&(d=b)}f[y]=d}if(e){let y=[...o];return y[s]=1,D.fromData(f,y,n)}return l}function Ar(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.size,c=r.data;if(t===void 0){if(a===0)throw new Error("argmin of empty array");let m=c[0],y=0;for(let d=1;d<a;d++)c[d]<m&&(m=c[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((m,y)=>y!==u);if(s.length===0)return Ar(r);let i=D.zeros(s,"int32"),l=i.data,f=n[u],p=s.reduce((m,y)=>m*y,1);if(w(e)){let m=c;for(let y=0;y<p;y++){let d=E(y,u,0,n),A=_(d,n),h=m[A],g=0;for(let b=1;b<f;b++){let S=E(y,u,b,n),x=_(S,n),N=m[x];N<h&&(h=N,g=b)}l[y]=g}}else for(let m=0;m<p;m++){let y=1/0,d=0;for(let A=0;A<f;A++){let h=E(m,u,A,n),g=_(h,n),b=Number(c[g]);b<y&&(y=b,d=A)}l[m]=d}return i}function br(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.size,c=r.data;if(t===void 0){if(a===0)throw new Error("argmax of empty array");let m=c[0],y=0;for(let d=1;d<a;d++)c[d]>m&&(m=c[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((m,y)=>y!==u);if(s.length===0)return br(r);let i=D.zeros(s,"int32"),l=i.data,f=n[u],p=s.reduce((m,y)=>m*y,1);if(w(e)){let m=c;for(let y=0;y<p;y++){let d=E(y,u,0,n),A=_(d,n),h=m[A],g=0;for(let b=1;b<f;b++){let S=E(y,u,b,n),x=_(S,n),N=m[x];N>h&&(h=N,g=b)}l[y]=g}}else for(let m=0;m<p;m++){let y=-1/0,d=0;for(let A=0;A<f;A++){let h=E(m,u,A,n),g=_(h,n),b=Number(c[g]);b>y&&(y=b,d=A)}l[m]=d}return i}function Sr(r,t,e=0,n=!1){let o=r.shape,a=o.length,c=r.size,u=r.data,s=mr(r,t,n);if(t===void 0){let h=s,g=0;for(let b=0;b<c;b++){let S=Number(u[b])-h;g+=S*S}return g/(c-e)}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 l=o[i],f=s,p=f.data,m=n?f.shape:Array.from(o).filter((h,g)=>g!==i),y=D.zeros(Array.from(m),"float64"),d=y.data,A=m.reduce((h,g)=>h*g,1);for(let h=0;h<A;h++){let g=0,b=Number(p[h]);for(let S=0;S<l;S++){let x=E(h,i,S,o),N=_(x,o),T=Number(u[N])-b;g+=T*T}d[h]=g/(l-e)}return y}function ut(r,t,e=0,n=!1){let o=Sr(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=D.zeros(Array.from(o.shape),"float64"),c=o.data,u=a.data;for(let s=0;s<c.length;s++)u[s]=Math.sqrt(Number(c[s]));return a}function Dr(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,c=r.data;if(t===void 0){for(let m=0;m<a;m++)if(!c[m])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((m,y)=>y!==u);if(s.length===0)return Dr(r);let i=D.zeros(s,"bool"),l=i.data,f=n[u],p=s.reduce((m,y)=>m*y,1);for(let m=0;m<p;m++){let y=!0;for(let d=0;d<f;d++){let A=E(m,u,d,n),h=_(A,n);if(!c[h]){y=!1;break}}l[m]=y?1:0}if(e){let m=[...n];return m[u]=1,D.fromData(l,m,"bool")}return i}function wr(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,c=r.data;if(t===void 0){for(let m=0;m<a;m++)if(c[m])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((m,y)=>y!==u);if(s.length===0)return wr(r);let i=D.zeros(s,"bool"),l=i.data,f=n[u],p=s.reduce((m,y)=>m*y,1);for(let m=0;m<p;m++){let y=!1;for(let d=0;d<f;d++){let A=E(m,u,d,n),h=_(A,n);if(c[h]){y=!0;break}}l[m]=y?1:0}if(e){let m=[...n];return m[u]=1,D.fromData(l,m,"bool")}return i}function j(r,t){let e=r.size,n=r.dtype,o=t.indexOf(-1),a;if(o!==-1){let i=t.reduce((f,p,m)=>m===o?f:f*p,1),l=e/i;if(!Number.isInteger(l))throw new Error(`cannot reshape array of size ${e} into shape ${JSON.stringify(t)}`);a=t.map((f,p)=>p===o?l:f)}else a=t;if(a.reduce((i,l)=>i*l,1)!==e)throw new Error(`cannot reshape array of size ${e} into shape ${JSON.stringify(a)}`);if(r.isCContiguous){let i=r.data;return D.fromData(i,a,n,P(a),0)}let s=r.copy().data;return D.fromData(s,a,n,P(a),0)}function Nr(r){let t=r.size,e=r.dtype,n=B(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 D.fromData(u,[t],e,[1],0)}let o=new n(t),a=w(e);for(let c=0;c<t;c++){let u=r.iget(c);o[c]=u}return D.fromData(o,[t],e,[1],0)}function W(r){let t=r.size,e=r.dtype;if(r.isCContiguous){let n=r.data;return D.fromData(n,[t],e,[1],0)}return Nr(r)}function nr(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,c=r.dtype,u;if(t===void 0)u=Array.from({length:n},(f,p)=>n-1-p);else{if(t.length!==n)throw new Error(`axes must have length ${n}, got ${t.length}`);let f=new Set;for(let p of t){let m=p<0?n+p:p;if(m<0||m>=n)throw new Error(`axis ${p} is out of bounds for array of dimension ${n}`);if(f.has(m))throw new Error("repeated axis in transpose");f.add(m)}u=t.map(p=>p<0?n+p:p)}let s=u.map(f=>e[f]),i=Array.from(o),l=u.map(f=>i[f]);return D.fromData(a,s,c,l,r.offset)}function ct(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,c=r.dtype;if(t===void 0){let u=[],s=[];for(let i=0;i<n;i++)e[i]!==1&&(u.push(e[i]),s.push(o[i]));return u.length===0&&(u.push(1),s.push(1)),D.fromData(a,u,c,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=[],i=[];for(let l=0;l<n;l++)l!==u&&(s.push(e[l]),i.push(o[l]));return D.fromData(a,s,c,i,r.offset)}}function Y(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,c=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 i=[...Array.from(o)],l=u<n?o[u]*(e[u]||1):1;return i.splice(u,0,l),D.fromData(a,s,c,i,r.offset)}function lt(r,t,e){let n=r.shape,o=n.length,a=r.strides,c=r.data,u=r.dtype,s=t<0?o+t:t,i=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(i<0||i>=o)throw new Error(`axis2 ${e} is out of bounds for array of dimension ${o}`);if(s===i)return D.fromData(c,Array.from(n),u,Array.from(a),r.offset);let l=Array.from(n),f=Array.from(a);return[l[s],l[i]]=[l[i],l[s]],[f[s],f[i]]=[f[i],f[s]],D.fromData(c,l,u,f,r.offset)}function ft(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 c=o.map(i=>{let l=i<0?n+i:i;if(l<0||l>=n)throw new Error(`source axis ${i} is out of bounds for array of dimension ${n}`);return l}),u=a.map(i=>{let l=i<0?n+i:i;if(l<0||l>=n)throw new Error(`destination axis ${i} is out of bounds for array of dimension ${n}`);return l});if(new Set(c).size!==c.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 i=0;i<n;i++)c.includes(i)||s.push(i);for(let i=0;i<c.length;i++){let l=u[i];s.splice(l,0,c[i])}return nr(r,s)}function R(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 m=1;m<r.length;m++){let y=r[m];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 c=Array.from(e.shape),u=e.shape[a];for(let m=1;m<r.length;m++)u+=r[m].shape[a];c[a]=u;let s=c.reduce((m,y)=>m*y,1),i=B(o);if(!i)throw new Error(`Cannot concatenate arrays with dtype ${o}`);let l=new i(s),f=P(c),p=0;for(let m of r){let y=m.shape[a];Zn(m,l,c,f,a,p,o),p+=y}return D.fromData(l,c,o)}function Zn(r,t,e,n,o,a,c){let u=r.shape,s=u.length,i=r.size,l=c==="int64"||c==="uint64";if(o===0&&r.isCContiguous&&s>0){let p=a*n[0],m=r.data,y=r.offset,d=y+i;t.set(m.subarray(y,d),p);return}let f=new Array(s).fill(0);for(let p=0;p<i;p++){let m=r.iget(p),y=[...f];y[o]+=a;let d=0;for(let A=0;A<s;A++)d+=y[A]*n[A];t[d]=m;for(let A=s-1;A>=0&&(f[A]++,!(f[A]<u[A]));A--)f[A]=0}}function pt(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 i=0;i<o;i++)if(s.shape[i]!==n[i])throw new Error("all input arrays must have the same shape")}let c=r.map(u=>Y(u,a));return R(c,a)}function yt(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?j(e,[1,e.shape[0]]):e);return R(t,0)}function mt(r){if(r.length===0)throw new Error("need at least one array to stack");return r.every(e=>e.ndim===1)?R(r,0):R(r,1)}function dt(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?j(Y(j(e,[1,e.shape[0]]),2),[1,e.shape[0],1]):e.ndim===2?Y(e,2):e);return R(t,2)}function gt(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 c=n[a],u;if(typeof t=="number"){if(c%t!==0)throw new Error("array split does not result in an equal division");let s=c/t;u=[];for(let i=1;i<t;i++)u.push(i*s)}else u=t;return ht(r,u,a)}function or(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 c=n[a],u;if(typeof t=="number"){let s=t,i=Math.floor(c/s),l=c%s;u=[];let f=0;for(let p=0;p<s-1;p++)f+=i+(p<l?1:0),u.push(f)}else u=t;return ht(r,u,a)}function ht(r,t,e){let n=r.shape,o=n[e],a=[0,...t,o],c=[];for(let u=0;u<a.length-1;u++){let s=a[u],i=a[u+1];if(s>i)throw new Error("split indices must be in ascending order");let l=Array.from(n);l[e]=i-s;let f=r.offset+s*r.strides[e];c.push(D.fromData(r.data,l,r.dtype,Array.from(r.strides),f))}return c}function At(r,t){if(r.ndim<2)throw new Error("vsplit only works on arrays of 2 or more dimensions");return or(r,t,0)}function bt(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 or(r,t,e)}function St(r,t){let e=r.shape,n=e.length,o=r.dtype,a=Array.isArray(t)?t:[t],c=Math.max(n,a.length),u=new Array(c).fill(1),s=new Array(c).fill(1);for(let g=0;g<n;g++)u[c-n+g]=e[g];for(let g=0;g<a.length;g++)s[c-a.length+g]=a[g];let i=u.map((g,b)=>g*s[b]),l=i.reduce((g,b)=>g*b,1),f=B(o);if(!f)throw new Error(`Cannot tile array with dtype ${o}`);let p=new f(l),m=P(i),y=r;n<c&&(y=j(r,u));let d=o==="int64"||o==="uint64",A=y.strides,h=new Array(c).fill(0);for(let g=0;g<l;g++){let b=y.offset;for(let N=0;N<c;N++){let T=h[N]%u[N];b+=T*A[N]}let S=y.data[b],x=0;for(let N=0;N<c;N++)x+=h[N]*m[N];p[x]=S;for(let N=c-1;N>=0&&(h[N]++,!(h[N]<i[N]));N--)h[N]=0}return D.fromData(p,i,o)}function Dt(r,t,e){let n=r.shape,o=n.length,a=r.dtype,c=r.size;if(e===void 0){let g=c,b=Array.isArray(t)?t:new Array(g).fill(t);if(b.length!==g)throw new Error(`operands could not be broadcast together with shape (${g},) (${b.length},)`);let S=b.reduce((I,U)=>I+U,0),x=B(a);if(!x)throw new Error(`Cannot repeat array with dtype ${a}`);let N=new x(S),T=0;for(let I=0;I<g;I++){let U=r.iget(I),tr=b[I];for(let Vr=0;Vr<tr;Vr++)N[T++]=U}return D.fromData(N,[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],i=Array.isArray(t)?t:new Array(s).fill(t);if(i.length!==s)throw new Error(`operands could not be broadcast together with shape (${s},) (${i.length},)`);let l=Array.from(n);l[u]=i.reduce((g,b)=>g+b,0);let f=l.reduce((g,b)=>g*b,1),p=B(a);if(!p)throw new Error(`Cannot repeat array with dtype ${a}`);let m=new p(f),y=P(l),d=new Array(o).fill(0),A=a==="int64"||a==="uint64",h=[0];for(let g=0;g<s;g++)h.push(h[g]+i[g]);for(let g=0;g<c;g++){let b=r.iget(g),S=d[u],x=i[S],N=0;for(let U=0;U<o;U++)U!==u&&(N+=d[U]*y[U]);let T=y[u],I=h[S];for(let U=0;U<x;U++){let tr=N+(I+U)*T;m[tr]=b}for(let U=o-1;U>=0&&(d[U]++,!(d[U]<n[U]));U--)d[U]=0}return D.fromData(m,l,a)}function Hn(r,t,e,n,o,a,c,u,s,i,l,f,p,m){if(f===0)for(let h=0;h<n*o;h++)p[h]=0;else if(f!==1)for(let h=0;h<n*o;h++)p[h]=(p[h]??0)*f;let y=r==="row-major",d=t==="transpose",A=e==="transpose";if(y&&!d&&!A)for(let h=0;h<n;h++)for(let g=0;g<o;g++){let b=0;for(let S=0;S<a;S++)b+=(u[h*s+S]??0)*(i[S*l+g]??0);p[h*m+g]=(p[h*m+g]??0)+c*b}else if(y&&d&&!A)for(let h=0;h<n;h++)for(let g=0;g<o;g++){let b=0;for(let S=0;S<a;S++)b+=(u[S*s+h]??0)*(i[S*l+g]??0);p[h*m+g]=(p[h*m+g]??0)+c*b}else if(y&&!d&&A)for(let h=0;h<n;h++)for(let g=0;g<o;g++){let b=0;for(let S=0;S<a;S++)b+=(u[h*s+S]??0)*(i[g*l+S]??0);p[h*m+g]=(p[h*m+g]??0)+c*b}else if(y&&d&&A)for(let h=0;h<n;h++)for(let g=0;g<o;g++){let b=0;for(let S=0;S<a;S++)b+=(u[S*s+h]??0)*(i[g*l+S]??0);p[h*m+g]=(p[h*m+g]??0)+c*b}else if(!y&&!d&&!A)for(let h=0;h<n;h++)for(let g=0;g<o;g++){let b=0;for(let S=0;S<a;S++)b+=(u[S*s+h]??0)*(i[g*l+S]??0);p[g*m+h]=(p[g*m+h]??0)+c*b}else if(!y&&d&&!A)for(let h=0;h<n;h++)for(let g=0;g<o;g++){let b=0;for(let S=0;S<a;S++)b+=(u[h*s+S]??0)*(i[g*l+S]??0);p[g*m+h]=(p[g*m+h]??0)+c*b}else if(!y&&!d&&A)for(let h=0;h<n;h++)for(let g=0;g<o;g++){let b=0;for(let S=0;S<a;S++)b+=(u[S*s+h]??0)*(i[S*l+g]??0);p[g*m+h]=(p[g*m+h]??0)+c*b}else for(let h=0;h<n;h++)for(let g=0;g<o;g++){let b=0;for(let S=0;S<a;S++)b+=(u[h*s+S]??0)*(i[S*l+g]??0);p[g*m+h]=(p[g*m+h]??0)+c*b}}function xr(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 c=O(r.dtype,t.dtype),u=D.zeros([...t.shape],c);for(let s=0;s<t.size;s++){let i=t.data[s+t.offset];typeof o=="bigint"&&typeof i=="bigint"?u.data[s]=o*i:u.data[s]=Number(o)*Number(i)}return u}else{let c=O(r.dtype,t.dtype),u=D.zeros([...r.shape],c);for(let s=0;s<r.size;s++){let i=r.data[s+r.offset];typeof i=="bigint"&&typeof a=="bigint"?u.data[s]=i*a:u.data[s]=Number(i)*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 c=0;c<o;c++){let u=r.get(c),s=t.get(c);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 Ir(r,t);if(e===2&&n===1){let[o,a]=r.shape,c=t.shape[0];if(a!==c)throw new Error(`dot: incompatible shapes (${o},${a}) and (${c},)`);let u=O(r.dtype,t.dtype),s=D.zeros([o],u);for(let i=0;i<o;i++){let l=0;for(let f=0;f<a;f++){let p=r.get(i,f),m=t.get(f);typeof p=="bigint"&&typeof m=="bigint"?l=Number(l)+Number(p*m):l+=Number(p)*Number(m)}s.set([i],l)}return s}if(e===1&&n===2){let o=r.shape[0],[a,c]=t.shape;if(o!==a)throw new Error(`dot: incompatible shapes (${o},) and (${a},${c})`);let u=O(r.dtype,t.dtype),s=D.zeros([c],u);for(let i=0;i<c;i++){let l=0;for(let f=0;f<o;f++){let p=r.get(f),m=t.get(f,i);typeof p=="bigint"&&typeof m=="bigint"?l=Number(l)+Number(p*m):l+=Number(p)*Number(m)}s.set([i],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 c=[...r.shape.slice(0,-1)],u=O(r.dtype,t.dtype),s=D.zeros(c,u),i=c.reduce((l,f)=>l*f,1);for(let l=0;l<i;l++){let f=0,p=l,m=[];for(let y=c.length-1;y>=0;y--)m[y]=p%c[y],p=Math.floor(p/c[y]);for(let y=0;y<o;y++){let d=[...m,y],A=r.get(...d),h=t.get(y);typeof A=="bigint"&&typeof h=="bigint"?f=Number(f)+Number(A*h):f+=Number(A)*Number(h)}s.set(m,f)}return s}if(e===1&&n>2){let o=r.shape[0],a=1,c=t.shape[a];if(o!==c)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=O(r.dtype,t.dtype),i=D.zeros(u,s),l=u.reduce((f,p)=>f*p,1);for(let f=0;f<l;f++){let p=f,m=[];for(let h=u.length-1;h>=0;h--)m[h]=p%u[h],p=Math.floor(p/u[h]);let y=m.slice(0,a),d=m.slice(a),A=0;for(let h=0;h<o;h++){let g=r.get(h),b=[...y,h,...d],S=t.get(...b);typeof g=="bigint"&&typeof S=="bigint"?A=Number(A)+Number(g*S):A+=Number(g)*Number(S)}i.set(m,A)}return i}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 c=[...r.shape.slice(0,-1),...t.shape.slice(0,-2),t.shape[n-1]],u=O(r.dtype,t.dtype),s=D.zeros(c,u),i=r.shape.slice(0,-1).reduce((m,y)=>m*y,1),l=t.shape.slice(0,-2).reduce((m,y)=>m*y,1),f=t.shape[n-1],p=o;for(let m=0;m<i;m++)for(let y=0;y<l;y++)for(let d=0;d<f;d++){let A=0;for(let g=0;g<p;g++){let b=m*p+g,S=r.data[b+r.offset],x=y*p*f+g*f+d,N=t.data[x+t.offset];typeof S=="bigint"&&typeof N=="bigint"?A=Number(A)+Number(S*N):A+=Number(S)*Number(N)}let h=m*l*f+y*f+d;s.data[h]=A}return s}throw new Error(`dot: unexpected combination of dimensions ${e}D \xB7 ${n}D`)}function Ir(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 c=O(r.dtype,t.dtype),u=c.startsWith("int")||c.startsWith("uint")||c==="bool"?"float64":c;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)),i=t.dtype==="float64"?t.data:Float64Array.from(Array.from(t.data).map(Number));r.offset>0&&(s=s.subarray(r.offset)),t.offset>0&&(i=i.subarray(t.offset));let[l=0,f=0]=r.strides,[p=0,m=0]=t.strides,y=f>l,d=m>p,A=y?"transpose":"no-transpose",h=d?"transpose":"no-transpose",g,b;y?g=f:g=l,d?b=m:b=p;let S=D.zeros([e,a],"float64");return Hn("row-major",A,h,e,a,n,1,s,g,i,b,0,S.data,a),S}function Nt(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 c=r.get(a,a);typeof c=="bigint"?o=(typeof o=="bigint"?o:BigInt(o))+c:o=(typeof o=="bigint"?Number(o):o)+c}return o}function xt(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 xr(r,t);let c=[...r.shape.slice(0,-1),...t.shape.slice(0,-1)],u=O(r.dtype,t.dtype),s=D.zeros(c,u),i=e===1?1:r.shape.slice(0,-1).reduce((p,m)=>p*m,1),l=n===1?1:t.shape.slice(0,-1).reduce((p,m)=>p*m,1),f=o;for(let p=0;p<i;p++)for(let m=0;m<l;m++){let y=0;for(let A=0;A<f;A++){let h=e===1?A:p*f+A,g=n===1?A:m*f+A,b=r.data[h+r.offset],S=t.data[g+t.offset];typeof b=="bigint"&&typeof S=="bigint"?y=Number(y)+Number(b*S):y+=Number(b)*Number(S)}if(c.length===0)return y;let d=i===1?m:p*l+m;s.data[d]=y}return s}function It(r,t){let e=r.ndim===1?r:W(r),n=t.ndim===1?t:W(t),o=e.size,a=n.size,c=O(r.dtype,t.dtype),u=D.zeros([o,a],c);for(let s=0;s<o;s++)for(let i=0;i<a;i++){let l=e.get(s),f=n.get(i),p;typeof l=="bigint"&&typeof f=="bigint"?p=l*f:p=Number(l)*Number(f),u.set([s,i],p)}return u}function zt(r,t,e){let n,o;if(typeof e=="number"){let p=e;if(p<0)throw new Error("tensordot: axes must be non-negative");if(p>r.ndim||p>t.ndim)throw new Error("tensordot: axes exceeds array dimensions");n=Array.from({length:p},(m,y)=>r.ndim-p+y),o=Array.from({length:p},(m,y)=>y)}else if([n,o]=e,n.length!==o.length)throw new Error("tensordot: axes lists must have same length");for(let p=0;p<n.length;p++){let m=n[p],y=o[p];if(m<0||m>=r.ndim||y<0||y>=t.ndim)throw new Error("tensordot: axis out of bounds");if(r.shape[m]!==t.shape[y])throw new Error(`tensordot: shape mismatch on axes ${m} and ${y}: ${r.shape[m]} != ${t.shape[y]}`)}let a=[],c=[];for(let p=0;p<r.ndim;p++)n.includes(p)||a.push(p);for(let p=0;p<t.ndim;p++)o.includes(p)||c.push(p);let u=[...a.map(p=>r.shape[p]),...c.map(p=>t.shape[p])];if(u.length===0){let p=0,m=n.map(y=>r.shape[y]).reduce((y,d)=>y*d,1);for(let y=0;y<m;y++){let d=y,A=new Array(n.length);for(let x=n.length-1;x>=0;x--){let N=n[x];A[x]=d%r.shape[N],d=Math.floor(d/r.shape[N])}let h=new Array(r.ndim),g=new Array(t.ndim);for(let x=0;x<n.length;x++)h[n[x]]=A[x];for(let x=0;x<o.length;x++)g[o[x]]=A[x];let b=r.get(...h),S=t.get(...g);typeof b=="bigint"&&typeof S=="bigint"?p=Number(p)+Number(b*S):p+=Number(b)*Number(S)}return p}let s=O(r.dtype,t.dtype),i=D.zeros(u,s),l=u.reduce((p,m)=>p*m,1),f=n.map(p=>r.shape[p]).reduce((p,m)=>p*m,1);for(let p=0;p<l;p++){let m=p,y=[];for(let g=u.length-1;g>=0;g--)y[g]=m%u[g],m=Math.floor(m/u[g]);let d=y.slice(0,a.length),A=y.slice(a.length),h=0;for(let g=0;g<f;g++){m=g;let b=[];for(let I=n.length-1;I>=0;I--){let U=n[I];b[I]=m%r.shape[U],m=Math.floor(m/r.shape[U])}let S=new Array(r.ndim),x=new Array(t.ndim);for(let I=0;I<a.length;I++)S[a[I]]=d[I];for(let I=0;I<c.length;I++)x[c[I]]=A[I];for(let I=0;I<n.length;I++)S[n[I]]=b[I],x[o[I]]=b[I];let N=r.get(...S),T=t.get(...x);typeof N=="bigint"&&typeof T=="bigint"?h=Number(h)+Number(N*T):h+=Number(N)*Number(T)}i.set(y,h)}return i}function Bt(r){return $(r,Math.sqrt,!1)}function Ut(r,t){return typeof t=="number"?Wn(r,t):k(r,t,Math.pow,"power")}function Wn(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,i=D.zeros(n,s),l=i.data;if(w(e))if(w(s)&&Number.isInteger(t)&&t>=0){let f=o,p=l;for(let m=0;m<a;m++)p[m]=f[m]**BigInt(t)}else for(let f=0;f<a;f++)l[f]=Math.pow(Number(o[f]),t);else for(let f=0;f<a;f++)l[f]=Math.pow(Number(o[f]),t);return i}function _t(r){return $(r,Math.sin,!1)}function Et(r){return $(r,Math.cos,!1)}function Tt(r){return $(r,Math.tan,!1)}function Ot(r){return $(r,Math.asin,!1)}function $t(r){return $(r,Math.acos,!1)}function Mt(r){return $(r,Math.atan,!1)}function Ct(r,t){return typeof t=="number"?Xn(r,t):Jn(r,t)}function Jn(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,c=o==="float32"&&a==="float32"?"float32":"float64",u=D.zeros(e,c),s=u.data;for(let i=0;i<n;i++){let l=(w(o),Number(r.data[i])),f=(w(a),Number(t.data[i]));s[i]=Math.atan2(l,f)}return u}function Xn(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,c=e==="float32"?"float32":"float64",u=D.zeros(n,c),s=u.data;if(w(e))for(let i=0;i<a;i++)s[i]=Math.atan2(Number(o[i]),t);else for(let i=0;i<a;i++)s[i]=Math.atan2(Number(o[i]),t);return u}function kt(r,t){return typeof t=="number"?Kn(r,t):Qn(r,t)}function Qn(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,c=o==="float32"&&a==="float32"?"float32":"float64",u=D.zeros(e,c),s=u.data;for(let i=0;i<n;i++){let l=(w(o),Number(r.data[i])),f=(w(a),Number(t.data[i]));s[i]=Math.hypot(l,f)}return u}function Kn(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,c=e==="float32"?"float32":"float64",u=D.zeros(n,c),s=u.data;if(w(e))for(let i=0;i<a;i++)s[i]=Math.hypot(Number(o[i]),t);else for(let i=0;i<a;i++)s[i]=Math.hypot(Number(o[i]),t);return u}function vt(r){let t=180/Math.PI;return $(r,e=>e*t,!1)}function Vt(r){let t=Math.PI/180;return $(r,e=>e*t,!1)}function Pt(r){return $(r,Math.sinh,!1)}function Ft(r){return $(r,Math.cosh,!1)}function Rt(r){return $(r,Math.tanh,!1)}function Lt(r){return $(r,Math.asinh,!1)}function jt(r){return $(r,Math.acosh,!1)}function qt(r){return $(r,Math.atanh,!1)}function ar(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 c=a.length-t+n,u=c<0?1:a[c];if(u!==1){if(o===1)o=u;else if(o!==u)return null}}e[n]=o}return e}function eo(r,t,e){let n=r.length,o=e.length,a=new Array(o).fill(0);for(let c=0;c<n;c++){let u=o-n+c,s=r[c],i=e[u];if(s===i)a[u]=t[c];else if(s===1)a[u]=0;else throw new Error("Invalid broadcast")}return a}function G(r,t){let e=eo(r.shape,r.strides,t);return D.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function Zt(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=ar([Array.from(e),t]);if(a===null)throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${t.join(",")})`);for(let c=0;c<o;c++)if(a[c]!==t[c])throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${t.join(",")})`);return G(r,t)}function Ht(r){if(r.length===0)return[];if(r.length===1)return[r[0]];let t=r.map(n=>Array.from(n.shape)),e=ar(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=>G(n,e))}function Yt(r,t,e){let n=r.shape,o=n.length,a=r.dtype;if(e===void 0){let y=r.size;for(let g of t){let b=g<0?y+g:g;if(b<0||b>=y)throw new Error(`index ${g} is out of bounds for axis 0 with size ${y}`)}let d=t.length,A=B(a);if(!A)throw new Error(`Cannot take from array with dtype ${a}`);let h=new A(d);for(let g=0;g<d;g++){let b=t[g];b<0&&(b=y+b);let S=r.iget(b);w(a),h[g]=S}return D.fromData(h,[d],a)}let c=e<0?o+e:e;if(c<0||c>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=n[c];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 ${c} with size ${u}`)}let s=Array.from(n);s[c]=t.length;let i=s.reduce((y,d)=>y*d,1),l=B(a);if(!l)throw new Error(`Cannot take from array with dtype ${a}`);let f=new l(i),p=P(s),m=new Array(o).fill(0);for(let y=0;y<i;y++){let d=[...m],A=m[c],h=t[A];h<0&&(h=u+h),d[c]=h;let g=r.get(...d),b=0;for(let S=0;S<o;S++)b+=m[S]*p[S];w(a),f[b]=g;for(let S=o-1;S>=0&&(m[S]++,!(m[S]<s[S]));S--)m[S]=0}return D.fromData(f,s,a)}function Wt(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 c=0;c<e.size;c++)a.push(e.iget(c));if(a.length===1)a=new Array(t.length).fill(a[0]);else if(a.length!==t.length){let c=[...a];a=[];for(let u=0;u<t.length;u++)a.push(c[u%c.length])}}for(let c=0;c<t.length;c++){let u=t[c];if(u<0&&(u=n+u),u<0||u>=n)throw new Error(`index ${t[c]} is out of bounds for axis 0 with size ${n}`);let s=a[c];w(o)?typeof s!="bigint"&&(s=BigInt(Math.round(Number(s)))):typeof s=="bigint"&&(s=Number(s)),r.iset(u,s)}}function Gt(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(p=>Array.from(p.shape));a.unshift(Array.from(e));let c=ar(a);if(c===null)throw new Error("operands could not be broadcast together");let u=G(r,c),s=t.map(p=>G(p,c)),i=c.reduce((p,m)=>p*m,1),l=B(o);if(!l)throw new Error(`Cannot choose with dtype ${o}`);let f=new l(i);for(let p=0;p<i;p++){let m=Number(u.iget(p));if(m<0||m>=n)throw new Error(`index ${m} is out of bounds for axis 0 with size ${n}`);let y=s[m].iget(p);w(o),f[p]=y}return D.fromData(f,c,o)}function Jt(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),c=t.iget(o);if(e){let u=typeof a=="number"&&Number.isNaN(a),s=typeof c=="number"&&Number.isNaN(c);if(u&&s)continue}if(a!==c)return!1}return!0}var z=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((c,u)=>{let s=c;if(s<0&&(s=this.shape[u]+s),s<0||s>=this.shape[u])throw new Error(`Index ${c} is out of bounds for axis ${u} with size ${this.shape[u]}`);return s}),o=this.dtype,a;w(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,c=B(t);if(!c)throw new Error(`Cannot convert to dtype ${t}`);let u=new c(a),s=this.data;if(w(n)&&!w(t)){let l=s;if(t==="bool")for(let f=0;f<a;f++)u[f]=l[f]!==BigInt(0)?1:0;else for(let f=0;f<a;f++)u[f]=Number(l[f])}else if(!w(n)&&w(t)){let l=s;for(let f=0;f<a;f++)u[f]=BigInt(Math.round(Number(l[f])))}else if(t==="bool"){let l=s;for(let f=0;f<a;f++)u[f]=l[f]!==0?1:0}else if(n==="bool"&&!w(t)){let l=s;for(let f=0;f<a;f++)u[f]=l[f]}else if(!w(n)&&!w(t)){let l=s;for(let f=0;f<a;f++)u[f]=l[f]}else{let l=s;for(let f=0;f<a;f++)u[f]=l[f]}let i=D.fromData(u,o,t);return new r(i)}add(t){let e=typeof t=="number"?t:t._storage,n=qr(this._storage,e);return r._fromStorage(n)}subtract(t){let e=typeof t=="number"?t:t._storage,n=Zr(this._storage,e);return r._fromStorage(n)}multiply(t){let e=typeof t=="number"?t:t._storage,n=Hr(this._storage,e);return r._fromStorage(n)}divide(t){let e=typeof t=="number"?t:t._storage,n=Yr(this._storage,e);return r._fromStorage(n)}mod(t){let e=typeof t=="number"?t:t._storage,n=Xr(this._storage,e);return r._fromStorage(n)}floor_divide(t){let e=typeof t=="number"?t:t._storage,n=Qr(this._storage,e);return r._fromStorage(n)}positive(){let t=Kr(this._storage);return r._fromStorage(t)}reciprocal(){let t=rt(this._storage);return r._fromStorage(t)}sqrt(){let t=Bt(this._storage);return r._fromStorage(t)}power(t){let e=typeof t=="number"?t:t._storage,n=Ut(this._storage,e);return r._fromStorage(n)}absolute(){let t=Wr(this._storage);return r._fromStorage(t)}negative(){let t=Gr(this._storage);return r._fromStorage(t)}sign(){let t=Jr(this._storage);return r._fromStorage(t)}sin(){let t=_t(this._storage);return r._fromStorage(t)}cos(){let t=Et(this._storage);return r._fromStorage(t)}tan(){let t=Tt(this._storage);return r._fromStorage(t)}arcsin(){let t=Ot(this._storage);return r._fromStorage(t)}arccos(){let t=$t(this._storage);return r._fromStorage(t)}arctan(){let t=Mt(this._storage);return r._fromStorage(t)}arctan2(t){let e=typeof t=="number"?t:t._storage,n=Ct(this._storage,e);return r._fromStorage(n)}hypot(t){let e=typeof t=="number"?t:t._storage,n=kt(this._storage,e);return r._fromStorage(n)}degrees(){let t=vt(this._storage);return r._fromStorage(t)}radians(){let t=Vt(this._storage);return r._fromStorage(t)}sinh(){let t=Pt(this._storage);return r._fromStorage(t)}cosh(){let t=Ft(this._storage);return r._fromStorage(t)}tanh(){let t=Rt(this._storage);return r._fromStorage(t)}arcsinh(){let t=Lt(this._storage);return r._fromStorage(t)}arccosh(){let t=jt(this._storage);return r._fromStorage(t)}arctanh(){let t=qt(this._storage);return r._fromStorage(t)}greater(t){let e=typeof t=="number"?t:t._storage,n=tt(this._storage,e);return r._fromStorage(n)}greater_equal(t){let e=typeof t=="number"?t:t._storage,n=et(this._storage,e);return r._fromStorage(n)}less(t){let e=typeof t=="number"?t:t._storage,n=nt(this._storage,e);return r._fromStorage(n)}less_equal(t){let e=typeof t=="number"?t:t._storage,n=ot(this._storage,e);return r._fromStorage(n)}equal(t){let e=typeof t=="number"?t:t._storage,n=at(this._storage,e);return r._fromStorage(n)}not_equal(t){let e=typeof t=="number"?t:t._storage,n=st(this._storage,e);return r._fromStorage(n)}isclose(t,e=1e-5,n=1e-8){let o=typeof t=="number"?t:t._storage,a=yr(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 it(this._storage,o,e,n)}sum(t,e=!1){let n=H(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}mean(t,e=!1){let n=mr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}max(t,e=!1){let n=dr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}min(t,e=!1){let n=hr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}prod(t,e=!1){let n=gr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}argmin(t){let e=Ar(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}argmax(t){let e=br(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}var(t,e=0,n=!1){let o=Sr(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}std(t,e=0,n=!1){let o=ut(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}all(t,e=!1){let n=Dr(this._storage,t,e);return typeof n=="boolean"?n:r._fromStorage(n)}any(t,e=!1){let n=wr(this._storage,t,e);return typeof n=="boolean"?n:r._fromStorage(n)}reshape(...t){let e=t.length===1&&Array.isArray(t[0])?t[0]:t,n=j(this._storage,e),a=n.data===this.data?this._base??this:void 0;return r._fromStorage(n,a)}flatten(){let t=Nr(this._storage);return r._fromStorage(t)}ravel(){let t=W(this._storage),n=t.data===this.data?this._base??this:void 0;return r._fromStorage(t,n)}transpose(t){let e=nr(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}squeeze(t){let e=ct(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}expand_dims(t){let e=Y(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}swapaxes(t,e){let n=lt(this._storage,t,e),o=this._base??this;return r._fromStorage(n,o)}moveaxis(t,e){let n=ft(this._storage,t,e),o=this._base??this;return r._fromStorage(n,o)}repeat(t,e){let n=Dt(this._storage,t,e);return r._fromStorage(n)}take(t,e){let n=Yt(this._storage,t,e);return r._fromStorage(n)}put(t,e){let n=e instanceof r?e._storage:e;Wt(this._storage,t,n)}matmul(t){let e=Ir(this._storage,t._storage);return r._fromStorage(e)}dot(t){let e=xr(this._storage,t._storage);return typeof e=="number"||typeof e=="bigint"?e:r._fromStorage(e)}trace(){return Nt(this._storage)}inner(t){let e=xt(this._storage,t._storage);return typeof e=="number"||typeof e=="bigint"?e:r._fromStorage(e)}outer(t){let e=It(this._storage,t._storage);return r._fromStorage(e)}tensordot(t,e=2){let n=zt(this._storage,t._storage,e);return typeof n=="number"||typeof n=="bigint"?n: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,i)=>{let l=Pr(s);return Fr(l,this.shape[i])});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 i=e[s],l=this._storage.strides[s];if(a+=i.start*l,!i.isIndex){let f;i.step>0?f=Math.max(0,Math.ceil((i.stop-i.start)/i.step)):f=Math.max(0,Math.ceil((i.start-i.stop)/Math.abs(i.step))),n.push(f),o.push(l*i.step)}}let c=D.fromData(this._storage.data,n,this._storage.dtype,o,a),u=this._base??this;return new r(c,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 c=[];for(let u=0;u<t[a];u++)o[a]=u,c.push(n(o,a+1));return c};return n(new Array(e),0)}};function J(r,t=M){let e=D.zeros(r,t);return new z(e)}function zr(r,t=M){let e=D.ones(r,t);return new z(e)}function oo(r){let t=[],e=r;for(;Array.isArray(e);)t.push(e.length),e=e[0];return t}function Xt(r){return typeof r=="bigint"?!0:Array.isArray(r)?r.some(t=>Xt(t)):!1}function ao(r){let t=[];function e(n){Array.isArray(n)?n.forEach(o=>e(o)):t.push(n)}return e(r),t}function V(r,t){if(r instanceof z)return!t||r.dtype===t?r.copy():r.astype(t);let e=Xt(r),n=oo(r),o=n.reduce((l,f)=>l*f,1),a=t;a||(e?a="int64":a=M);let c=B(a);if(!c)throw new Error(`Cannot create array with dtype ${a}`);let u=new c(o),s=ao(r);if(w(a)){let l=u;for(let f=0;f<o;f++){let p=s[f];l[f]=typeof p=="bigint"?p:BigInt(Math.round(Number(p)))}}else if(a==="bool"){let l=u;for(let f=0;f<o;f++)l[f]=s[f]?1:0}else{let l=u;for(let f=0;f<o;f++){let p=s[f];l[f]=Number(p)}}let i=D.fromData(u,n,a);return new z(i)}function Qt(r,t,e=1,n=M){let o=r,a=t;if(t===void 0&&(o=0,a=r),a===void 0)throw new Error("stop is required");let c=Math.max(0,Math.ceil((a-o)/e)),u=B(n);if(!u)throw new Error(`Cannot create arange array with dtype ${n}`);let s=new u(c);if(w(n))for(let l=0;l<c;l++)s[l]=BigInt(Math.round(o+l*e));else if(n==="bool")for(let l=0;l<c;l++)s[l]=o+l*e!==0?1:0;else for(let l=0;l<c;l++)s[l]=o+l*e;let i=D.fromData(s,[c],n);return new z(i)}function Kt(r,t,e=50,n=M){if(e<0)throw new Error("num must be non-negative");if(e===0)return V([],n);if(e===1)return V([r],n);let o=B(n);if(!o)throw new Error(`Cannot create linspace array with dtype ${n}`);let a=new o(e),c=(t-r)/(e-1);if(w(n))for(let s=0;s<e;s++)a[s]=BigInt(Math.round(r+s*c));else if(n==="bool")for(let s=0;s<e;s++)a[s]=r+s*c!==0?1:0;else for(let s=0;s<e;s++)a[s]=r+s*c;let u=D.fromData(a,[e],n);return new z(u)}function re(r,t,e=50,n=10,o=M){if(e<0)throw new Error("num must be non-negative");if(e===0)return V([],o);if(e===1)return V([Math.pow(n,r)],o);let a=B(o);if(!a)throw new Error(`Cannot create logspace array with dtype ${o}`);let c=new a(e),u=(t-r)/(e-1);if(w(o))for(let i=0;i<e;i++){let l=r+i*u;c[i]=BigInt(Math.round(Math.pow(n,l)))}else if(o==="bool")for(let i=0;i<e;i++){let l=r+i*u;c[i]=Math.pow(n,l)!==0?1:0}else for(let i=0;i<e;i++){let l=r+i*u;c[i]=Math.pow(n,l)}let s=D.fromData(c,[e],o);return new z(s)}function te(r,t,e=50,n=M){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 V([],n);if(e===1)return V([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 c=B(n);if(!c)throw new Error(`Cannot create geomspace array with dtype ${n}`);let u=new c(e),s=Math.log(Math.abs(r)),l=(Math.log(Math.abs(t))-s)/(e-1);if(w(n))for(let p=0;p<e;p++){let m=o*Math.exp(s+p*l);u[p]=BigInt(Math.round(m))}else if(n==="bool")for(let p=0;p<e;p++){let m=o*Math.exp(s+p*l);u[p]=m!==0?1:0}else for(let p=0;p<e;p++){let m=o*Math.exp(s+p*l);u[p]=m}let f=D.fromData(u,[e],n);return new z(f)}function Br(r,t,e=0,n=M){let o=t??r,a=J([r,o],n),c=a.data;if(w(n)){let u=c;for(let s=0;s<r;s++){let i=s+e;i>=0&&i<o&&(u[s*o+i]=BigInt(1))}}else{let u=c;for(let s=0;s<r;s++){let i=s+e;i>=0&&i<o&&(u[s*o+i]=1)}}return a}function Ur(r,t=M){return J(r,t)}function _r(r,t,e){let n=e;n||(typeof t=="bigint"?n="int64":typeof t=="boolean"?n="bool":Number.isInteger(t)?n="int32":n=M);let o=B(n);if(!o)throw new Error(`Cannot create full array with dtype ${n}`);let a=r.reduce((s,i)=>s*i,1),c=new o(a);if(w(n)){let s=typeof t=="bigint"?t:BigInt(Math.round(Number(t)));c.fill(s)}else n==="bool"?c.fill(t?1:0):c.fill(Number(t));let u=D.fromData(c,r,n);return new z(u)}function ee(r,t=M){return Br(r,r,0,t)}function ne(r,t){return r instanceof z?!t||r.dtype===t?r:r.astype(t):V(r,t)}function oe(r){return r.copy()}function ae(r,t){return J(Array.from(r.shape),t??r.dtype)}function se(r,t){return zr(Array.from(r.shape),t??r.dtype)}function ie(r,t){return Ur(Array.from(r.shape),t??r.dtype)}function ue(r,t,e){return _r(Array.from(r.shape),t,e??r.dtype)}function ce(r){return r.sqrt()}function le(r,t){return r.power(t)}function fe(r){return r.absolute()}function pe(r){return r.negative()}function ye(r){return r.sign()}function me(r,t){return r.mod(t)}function de(r,t){return r.floor_divide(t)}function ge(r){return r.positive()}function he(r){return r.reciprocal()}function Ae(r,t){return r.dot(t)}function be(r){return r.trace()}function Se(r,t){return r.transpose(t)}function De(r,t){return r.inner(t)}function we(r,t){return r.outer(t)}function Ne(r,t,e=2){return r.tensordot(t,e)}function xe(r){return r.sin()}function Ie(r){return r.cos()}function ze(r){return r.tan()}function Be(r){return r.arcsin()}function Ue(r){return r.arccos()}function _e(r){return r.arctan()}function Ee(r,t){return r.arctan2(t)}function Te(r,t){return r.hypot(t)}function Oe(r){return r.degrees()}function $e(r){return r.radians()}function Me(r){return r.sinh()}function Ce(r){return r.cosh()}function ke(r){return r.tanh()}function ve(r){return r.arcsinh()}function Ve(r){return r.arccosh()}function Pe(r){return r.arctanh()}function Fe(r,t,e){return r.swapaxes(t,e)}function Re(r,t,e){return r.moveaxis(t,e)}function Le(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=R(e,t);return z._fromStorage(n)}function je(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=pt(e,t);return z._fromStorage(n)}function qe(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=yt(t);return z._fromStorage(e)}function Ze(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=mt(t);return z._fromStorage(e)}function He(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=dt(t);return z._fromStorage(e)}function Ye(r,t,e=0){return gt(r.storage,t,e).map(o=>z._fromStorage(o,r.base??r))}function We(r,t,e=0){return or(r.storage,t,e).map(o=>z._fromStorage(o,r.base??r))}function Ge(r,t){return At(r.storage,t).map(n=>z._fromStorage(n,r.base??r))}function Je(r,t){return bt(r.storage,t).map(n=>z._fromStorage(n,r.base??r))}function Xe(r,t){let e=St(r.storage,t);return z._fromStorage(e)}function Qe(r,t,e){return r.repeat(t,e)}function Ke(r,t){let e=Zt(r.storage,t);return z._fromStorage(e,r.base??r)}function rn(...r){let t=r.map(n=>n.storage);return Ht(t).map((n,o)=>z._fromStorage(n,r[o].base??r[o]))}function tn(r,t,e){return r.take(t,e)}function en(r,t,e){r.put(t,e)}function nn(r,t){let e=t.map(o=>o.storage),n=Gt(r.storage,e);return z._fromStorage(n)}function on(r,t,e=!1){return Jt(r.storage,t.storage,e)}var X=new Uint8Array([147,78,85,77,80,89]),sr=["float64","float32","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"];function Er(){let r=new ArrayBuffer(2);return new DataView(r).setInt16(0,256,!0),new Int16Array(r)[0]===256}var so={f8:"float64",f4:"float32",i8:"int64",i4:"int32",i2:"int16",i1:"int8",u8:"uint64",u4:"uint32",u2:"uint16",u1:"uint8",b1:"bool"},Q={float64:"<f8",float32:"<f4",int64:"<i8",int32:"<i4",int16:"<i2",int8:"|i1",uint64:"<u8",uint32:"<u4",uint16:"<u2",uint8:"|u1",bool:"|b1"},an={c:"complex numbers",S:"byte strings",U:"Unicode strings",O:"Python objects",V:"structured arrays (void)",M:"datetime64",m:"timedelta64"};function sn(r){if(r.startsWith("[")||r.startsWith("("))throw new v(`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 an)throw new v(`Unsupported dtype: ${an[n]} (${r}). Use the 'force' parameter to skip arrays with unsupported dtypes.`);let o=so[e];if(!o)throw new v(`Unknown or unsupported dtype descriptor: ${r}. Supported types: ${sr.join(", ")}. Use the 'force' parameter to skip arrays with unsupported dtypes.`);let a=Er(),c=t==="<"||t==="|"||t==="="&&a,u=t===">"||t==="="&&!a,s=parseInt(e.slice(1),10),i=s>1&&(u&&a||c&&!a);return{dtype:o,needsByteSwap:i,itemsize:s}}var v=class extends Error{constructor(t){super(t),this.name="UnsupportedDTypeError"}},C=class extends Error{constructor(t){super(t),this.name="InvalidNpyError"}};function K(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=ir(t);return ur(t,e)}function ir(r){if(r.length<10)throw new C("File too small to be a valid NPY file");for(let i=0;i<X.length;i++)if(r[i]!==X[i])throw new C("Invalid NPY magic number");let t=r[6],e=r[7];if(t!==1&&t!==2&&t!==3)throw new C(`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 C("File truncated: header extends beyond file");let c=r.slice(o,a),u=new TextDecoder("utf-8").decode(c).trim(),s=io(u);return{version:{major:t,minor:e},header:s,dataOffset:a}}function ur(r,t){let{header:e,dataOffset:n}=t,{dtype:o,needsByteSwap:a,itemsize:c}=sn(e.descr),u=e.shape.reduce((d,A)=>d*A,1),s=u*c,i=r.length-n;if(i<s)throw new C(`File truncated: expected ${s} bytes of data, got ${i}`);let l=new ArrayBuffer(s);new Uint8Array(l).set(r.subarray(n,n+s));let p=uo(l,o,u,a,c),m=e.shape,y;if(e.fortran_order&&m.length>1){let d=[...m].reverse(),A=D.fromData(p,d,o);y=co(A,d),m=e.shape}else y=D.fromData(p,[...m],o);return new z(y)}function io(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 C(`Failed to parse NPY header: ${r}`);let o=t[1],a=e[1]==="True",c=n[1].trim(),u;return c===""?u=[]:u=c.split(",").map(s=>s.trim()).filter(s=>s!=="").map(s=>{let i=parseInt(s,10);if(isNaN(i))throw new C(`Invalid shape value: ${s}`);return i}),{descr:o,fortran_order:a,shape:u}}function uo(r,t,e,n,o){let a=B(t);if(!a)throw new C(`Cannot create array for dtype: ${t}`);if(!n)return new a(r,0,e);let c=new Uint8Array(r),u=new Uint8Array(r.byteLength);for(let s=0;s<e;s++){let i=s*o;for(let l=0;l<o;l++)u[i+l]=c[i+o-1-l]}return new a(u.buffer,0,e)}function co(r,t){let e=t.length,n=r.size,o=r.dtype,a=B(o);if(!a)throw new C(`Cannot create array for dtype: ${o}`);let c=new a(n),u=[...t].reverse(),s=un(t),i=un(u),l=new Array(e).fill(0);for(let f=0;f<n;f++){let p=f;for(let y=0;y<e;y++){let d=s[y];l[y]=Math.floor(p/d),p=p%d}let m=0;for(let y=0;y<e;y++)m+=l[e-1-y]*i[y];w(o),c[m]=r.iget(f)}return D.fromData(c,u,o)}function un(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}function q(r){let t=r.shape,e=r.dtype,n=Q[e],o=t.length===0?"()":t.length===1?`(${t[0]},)`:`(${t.join(", ")})`,a=`{'descr': '${n}', 'fortran_order': False, 'shape': ${o}, }`,c=12,s=(64-(c+a.length+1)%64)%64;a=a+" ".repeat(s)+`
2
- `;let i=new TextEncoder().encode(a),l=i.length,f=r.size,p=Lr(e),m=f*p,y=c+l+m,d=new Uint8Array(y);d.set(X,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(i,c);let A=c+l;return lo(r,d.subarray(A),p),d}function lo(r,t,e){let n=r.dtype,o=r.size,a=Er(),c=w(n),u=r._storage;if(u.isCContiguous&&u.offset===0&&a){let i=u.data,l=new Uint8Array(i.buffer,i.byteOffset,o*e);t.set(l)}else{let i=new DataView(t.buffer,t.byteOffset,t.byteLength);for(let l=0;l<o;l++){let f=u.iget(l),p=l*e;c?fo(i,p,f,n==="uint64"):po(i,p,f,n)}}}function fo(r,t,e,n){n?r.setBigUint64(t,e,!0):r.setBigInt64(t,e,!0)}function po(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 yo=(()=>{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})();function Tr(r){let t=4294967295;for(let e=0;e<r.length;e++)t=yo[(t^r[e])&255]^t>>>8;return(t^4294967295)>>>0}async function cn(r){let t=fn(r),e=new Map;for(let n of t){let o=await mo(n);e.set(n.name,o)}return e}function ln(r){let t=fn(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 fn(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=new DataView(t.buffer,t.byteOffset,t.byteLength),n=[],o=-1;for(let i=t.length-22;i>=0;i--)if(e.getUint32(i,!0)===101010256){o=i;break}if(o===-1)throw new Error("Invalid ZIP file: end of central directory not found");let a=e.getUint32(o+16,!0),c=e.getUint16(o+10,!0),u=[],s=a;for(let i=0;i<c&&e.getUint32(s,!0)===33639248;i++){let f=e.getUint16(s+10,!0),p=e.getUint32(s+16,!0),m=e.getUint32(s+20,!0),y=e.getUint32(s+24,!0),d=e.getUint16(s+28,!0),A=e.getUint16(s+30,!0),h=e.getUint16(s+32,!0),g=e.getUint32(s+42,!0),b=t.slice(s+46,s+46+d),S=new TextDecoder("utf-8").decode(b);u.push({name:S,compressionMethod:f,crc32:p,compressedSize:m,uncompressedSize:y,localHeaderOffset:g}),s=s+46+d+A+h}for(let i of u){let l=i.localHeaderOffset;if(e.getUint32(l,!0)!==67324752)throw new Error(`Invalid local file header at offset ${l}`);let p=e.getUint16(l+26,!0),m=e.getUint16(l+28,!0),y=l+30+p+m,d=t.slice(y,y+i.compressedSize);n.push({name:i.name,compressedData:d,compressionMethod:i.compressionMethod,crc32:i.crc32,compressedSize:i.compressedSize,uncompressedSize:i.uncompressedSize})}return n}async function mo(r){if(r.compressionMethod===0)return r.compressedData;if(r.compressionMethod===8)return await go(r.compressedData);throw new Error(`Unsupported compression method: ${r.compressionMethod}`)}async function go(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:i,value:l}=await o.read();if(i)break;a.push(l)}let c=a.reduce((i,l)=>i+l.length,0),u=new Uint8Array(c),s=0;for(let i of a)u.set(i,s),s+=i.length;return u}async function cr(r,t={}){let e=t.force??!1,n=await cn(r);return pn(n,e)}function lr(r,t={}){let e=t.force??!1,n=ln(r);return pn(n,e)}function pn(r,t){let e=new Map,n=[],o=new Map;for(let[a,c]of r){if(!a.endsWith(".npy"))continue;let u=a.slice(0,-4);try{let s=K(c);e.set(u,s)}catch(s){if(s instanceof v&&t)n.push(u),o.set(u,s.message);else throw s}}return{arrays:e,skipped:n,errors:o}}async function Mr(r,t={}){let e=await cr(r,t);return Object.fromEntries(e.arrays)}function Cr(r,t={}){let e=lr(r,t);return Object.fromEntries(e.arrays)}async function yn(r,t={}){let e=t.compress??!1,n=[];for(let[p,m]of r){let y=Tr(m),d,A;e?(d=await Ao(m),d.length<m.length?A=8:(d=m,A=0)):(d=m,A=0),n.push({name:p,data:m,compressedData:d,crc:y,compressionMethod:A,offset:0})}let o=0;for(let p of n){let m=new TextEncoder().encode(p.name);o+=30+m.length+p.compressedData.length}let a=0;for(let p of n){let m=new TextEncoder().encode(p.name);a+=46+m.length}let u=o+a+22,s=new Uint8Array(u),i=new DataView(s.buffer),l=0;for(let p of n)p.offset=l,l=dn(s,i,l,p);let f=l;for(let p of n)l=gn(s,i,l,p);return hn(i,l,n.length,a,f),s}function mn(r){let t=[];for(let[l,f]of r){let p=Tr(f);t.push({name:l,data:f,compressedData:f,crc:p,compressionMethod:0,offset:0})}let e=0;for(let l of t){let f=new TextEncoder().encode(l.name);e+=30+f.length+l.compressedData.length}let n=0;for(let l of t){let f=new TextEncoder().encode(l.name);n+=46+f.length}let a=e+n+22,c=new Uint8Array(a),u=new DataView(c.buffer),s=0;for(let l of t)l.offset=s,s=dn(c,u,s,l);let i=s;for(let l of t)s=gn(c,u,s,l);return hn(u,s,t.length,n,i),c}function dn(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 gn(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 hn(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 Ao(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:i,value:l}=await o.read();if(i)break;a.push(l)}let c=a.reduce((i,l)=>i+l.length,0),u=new Uint8Array(c),s=0;for(let i of a)u.set(i,s),s+=i.length;return u}async function kr(r,t={}){let e=An(r);return yn(e,{compress:t.compress??!1})}function vr(r){let t=An(r);return mn(t)}function An(r){let t=new Map;if(Array.isArray(r)){for(let n=0;n<r.length;n++){let o=r[n],a=q(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=q(o),c=n.endsWith(".npy")?n:`${n}.npy`;t.set(c,a)}return t}var bo="0.5.0";return xn(So);})();
1
+ "use strict";var np=(()=>{var Rr=Object.defineProperty;var Os=Object.getOwnPropertyDescriptor;var $s=Object.getOwnPropertyNames;var vs=Object.prototype.hasOwnProperty;var Ms=(t,r)=>{for(var e in r)Rr(t,e,{get:r[e],enumerable:!0})},Cs=(t,r,e,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of $s(r))!vs.call(t,o)&&o!==e&&Rr(t,o,{get:()=>r[o],enumerable:!(n=Os(r,o))||n.enumerable});return t};var ks=t=>Cs(Rr({},"__esModule",{value:!0}),t);var ji={};Ms(ji,{DTYPE_TO_DESCR:()=>mr,InvalidNpyError:()=>L,NDArray:()=>_,SUPPORTED_DTYPES:()=>vr,UnsupportedDTypeError:()=>H,__version__:()=>qi,absolute:()=>eo,append:()=>ca,arange:()=>Un,arccos:()=>No,arccosh:()=>vo,arcsin:()=>Do,arcsinh:()=>$o,arctan:()=>wo,arctan2:()=>xo,arctanh:()=>Mo,array:()=>R,array_equal:()=>ba,array_equiv:()=>Sa,array_split:()=>Lo,asanyarray:()=>Pn,asarray:()=>yr,ascontiguousarray:()=>Rn,asfortranarray:()=>Ln,atleast_1d:()=>ea,atleast_2d:()=>na,atleast_3d:()=>oa,average:()=>_a,bitwise_and:()=>Wa,bitwise_not:()=>Ga,bitwise_or:()=>Ha,bitwise_xor:()=>Ya,broadcast_arrays:()=>ma,broadcast_shapes:()=>da,broadcast_to:()=>pa,cbrt:()=>Pa,choose:()=>ha,column_stack:()=>sa,compress:()=>as,concatenate:()=>rr,copy:()=>Mn,cos:()=>bo,cosh:()=>To,cumprod:()=>Na,cumsum:()=>Da,deg2rad:()=>Bo,degrees:()=>zo,delete:()=>fa,diag:()=>St,diag_indices:()=>us,diag_indices_from:()=>cs,diagflat:()=>qn,diagonal:()=>lo,divmod:()=>La,dot:()=>co,dsplit:()=>aa,dstack:()=>Po,einsum:()=>ts,empty:()=>ht,empty_like:()=>Vn,expand_dims:()=>Jo,eye:()=>At,fabs:()=>Ra,flip:()=>$r,fliplr:()=>Xo,flipud:()=>Qo,floor_divide:()=>so,frombuffer:()=>Jn,fromfile:()=>Xn,fromfunction:()=>jn,fromiter:()=>Qn,fromstring:()=>Kn,full:()=>bt,full_like:()=>Fn,geomspace:()=>$n,heaviside:()=>Za,hsplit:()=>jo,hstack:()=>Fo,hypot:()=>Io,identity:()=>vn,indices:()=>ds,inner:()=>mo,insert:()=>la,invert:()=>Ja,ix_:()=>gs,kron:()=>yo,left_shift:()=>Xa,linspace:()=>Tn,loadNpz:()=>zt,loadNpzSync:()=>_t,logspace:()=>On,mask_indices:()=>ms,median:()=>xa,meshgrid:()=>Zn,mod:()=>ao,moveaxis:()=>ko,nanargmax:()=>Ca,nanargmin:()=>Ma,nancumprod:()=>Va,nancumsum:()=>ka,nanmax:()=>va,nanmean:()=>Ua,nanmedian:()=>Fa,nanmin:()=>$a,nanprod:()=>Ea,nanstd:()=>Oa,nansum:()=>Ba,nanvar:()=>Ta,negative:()=>no,ones:()=>gt,ones_like:()=>kn,outer:()=>go,packbits:()=>Ka,pad:()=>ya,parseNpy:()=>dr,parseNpyData:()=>Cr,parseNpyHeader:()=>Mr,parseNpz:()=>kr,parseNpzSync:()=>Vr,percentile:()=>Ia,place:()=>is,positive:()=>io,power:()=>to,ptp:()=>wa,put:()=>Aa,put_along_axis:()=>ns,putmask:()=>os,quantile:()=>za,rad2deg:()=>Eo,radians:()=>_o,ravel:()=>Ho,ravel_multi_index:()=>As,reciprocal:()=>uo,remainder:()=>ja,repeat:()=>Wo,reshape:()=>Yo,resize:()=>ua,right_shift:()=>Qa,roll:()=>ra,rollaxis:()=>ta,rot90:()=>Ko,row_stack:()=>ia,select:()=>ss,serializeNpy:()=>nr,serializeNpz:()=>Bt,serializeNpzSync:()=>Et,sign:()=>oo,sin:()=>ho,sinh:()=>Uo,split:()=>Ro,sqrt:()=>ro,square:()=>qa,squeeze:()=>Go,stack:()=>Vo,swapaxes:()=>Co,take:()=>ga,take_along_axis:()=>es,tan:()=>So,tanh:()=>Oo,tensordot:()=>Ao,tile:()=>Zo,trace:()=>fo,transpose:()=>po,tri:()=>Wn,tril:()=>Hn,tril_indices:()=>fs,tril_indices_from:()=>ls,triu:()=>Yn,triu_indices:()=>ys,triu_indices_from:()=>ps,unpackbits:()=>rs,unravel_index:()=>hs,vander:()=>Gn,vsplit:()=>qo,vstack:()=>Dt,zeros:()=>W,zeros_like:()=>Cn});function Ut(t){if(!t.includes(":")){if(t.includes("."))throw new Error(`Invalid slice index: "${t}" (must be integer)`);let a=parseInt(t,10);if(isNaN(a))throw new Error(`Invalid slice index: "${t}"`);return{start:a,stop:null,step:1,isIndex:!0}}let r=t.split(":");if(r.length>3)throw new Error(`Invalid slice notation: "${t}" (too many colons)`);let e=r[0]===""?null:parseInt(r[0],10),n=r[1]===""||r[1]===void 0?null:parseInt(r[1],10),o=r[2]===""||r[2]===void 0?1:parseInt(r[2],10);if(e!==null&&isNaN(e))throw new Error(`Invalid start index in slice: "${t}"`);if(n!==null&&isNaN(n))throw new Error(`Invalid stop index in slice: "${t}"`);if(isNaN(o))throw new Error(`Invalid step in slice: "${t}"`);if(o===0)throw new Error("Slice step cannot be zero");return{start:e,stop:n,step:o,isIndex:!1}}function Tt(t,r){let{start:e,stop:n}=t,{step:o,isIndex:a}=t;if(a){if(e===null)throw new Error("Index cannot be null");let u=e<0?r+e:e;if(u<0||u>=r)throw new Error(`Index ${e} is out of bounds for size ${r}`);return{start:u,stop:u+1,step:1,isIndex:!0}}return o>0?(e===null&&(e=0),n===null&&(n=r)):(e===null&&(e=r-1),n===null&&(n=-r-1)),e<0&&(e=r+e),n<0&&(n=r+n),e=Math.max(0,Math.min(e,r)),n=Math.max(-1,Math.min(n,r)),{start:e,stop:n,step:o,isIndex:!1}}var M="float64";function U(t){switch(t){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: ${t}`)}}function $t(t){switch(t){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: ${t}`)}}function vt(t){return t==="int64"||t==="int32"||t==="int16"||t==="int8"||t==="uint64"||t==="uint32"||t==="uint16"||t==="uint8"}function Ot(t){return t==="float64"||t==="float32"}function w(t){return t==="int64"||t==="uint64"}function v(t,r){if(t===r)return t;if(t==="bool")return r;if(r==="bool")return t;if(Ot(t)||Ot(r)){if(t==="float64"||r==="float64")return"float64";if(t==="float32"){let c=r;return c==="int32"||c==="int64"||c==="uint32"||c==="uint64"?"float64":"float32"}if(r==="float32"){let c=t;return c==="int32"||c==="int64"||c==="uint32"||c==="uint64"?"float64":"float32"}return"float32"}let e=t.startsWith("int"),n=r.startsWith("int"),o=t.startsWith("uint"),a=r.startsWith("uint"),u=c=>c.includes("64")?64:c.includes("32")?32:c.includes("16")?16:c.includes("8")?8:0,s=u(t),i=u(r);if(t==="int64"&&r==="uint64"||t==="uint64"&&r==="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?t:i===8?"int16":i===16?"int32":i===32?"int64":"float64":o&&n?i>s?r:s===8?"int16":s===16?"int32":s===32?"int64":"float64":"float64"}var D=class t{constructor(r,e,n,o,a){this._data=r,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((r,e)=>r*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 r=this._shape,e=this._strides,n=r.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*=r[a]}return!0}get isFContiguous(){let r=this._shape,e=this._strides,n=r.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*=r[a]}return!0}iget(r){let e=this._shape,n=this._strides,o=e.length;if(o===0)return this._data[this._offset];let a=r,u=this._offset;for(let s=0;s<o;s++){let i=1;for(let f=s+1;f<o;f++)i*=e[f];let c=Math.floor(a/i);a=a%i,u+=c*n[s]}return this._data[u]}iset(r,e){let n=this._shape,o=this._strides,a=n.length;if(a===0){this._data[this._offset]=e;return}let u=r,s=this._offset;for(let i=0;i<a;i++){let c=1;for(let y=i+1;y<a;y++)c*=n[y];let f=Math.floor(u/c);u=u%c,s+=f*o[i]}this._data[s]=e}get(...r){let e=this._strides,n=this._offset;for(let o=0;o<r.length;o++)n+=r[o]*e[o];return this._data[n]}set(r,e){let n=this._strides,o=this._offset;for(let a=0;a<r.length;a++)o+=r[a]*n[a];this._data[o]=e}copy(){let r=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(w(e)){let u=this._data,s=a;for(let i=0;i<n;i++)s[i]=u[i]}else a.set(this._data);else if(w(e)){let u=a;for(let s=0;s<n;s++)u[s]=this.iget(s)}else for(let u=0;u<n;u++)a[u]=this.iget(u);return new t(a,r,t._computeStrides(r),0,e)}static fromData(r,e,n,o,a){let u=o??t._computeStrides(e),s=a??0;return new t(r,e,u,s,n)}static zeros(r,e=M){let n=r.reduce((u,s)=>u*s,1),o=U(e);if(!o)throw new Error(`Cannot create array with dtype ${e}`);let a=new o(n);return new t(a,r,t._computeStrides(r),0,e)}static ones(r,e=M){let n=r.reduce((u,s)=>u*s,1),o=U(e);if(!o)throw new Error(`Cannot create array with dtype ${e}`);let a=new o(n);return w(e)?a.fill(BigInt(1)):a.fill(1),new t(a,r,t._computeStrides(r),0,e)}static _computeStrides(r){let e=new Array(r.length),n=1;for(let o=r.length-1;o>=0;o--)e[o]=n,n*=r[o];return e}};function P(t){let r=new Array(t.length),e=1;for(let n=t.length-1;n>=0;n--)r[n]=e,e*=t[n];return r}function Mt(t,r){let e=t.length,n=r.length,o=Math.max(e,n),a=new Array(o);for(let u=0;u<o;u++){let s=u<o-e?1:t[u-(o-e)],i=u<o-n?1:r[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(t))} ${JSON.stringify(Array.from(r))}`)}return a}function Vs(t,r,e){let n=t.length,o=e.length,a=new Array(o).fill(0);for(let u=0;u<n;u++){let s=o-n+u,i=t[u],c=e[s];if(i===c)a[s]=r[u];else if(i===1)a[s]=0;else throw new Error("Invalid broadcast")}return a}function Ar(t,r){let e=Vs(t.shape,t.strides,r);return D.fromData(t.data,Array.from(r),t.dtype,e,t.offset)}function V(t,r,e,n){let o=Mt(t.shape,r.shape),a=Ar(t,o),u=Ar(r,o),s=v(t.dtype,r.dtype),i=D.zeros(o,s),c=i.data,f=i.size;if(w(s)){let y=c;for(let l=0;l<f;l++){let p=a.iget(l),m=u.iget(l),d=typeof p=="bigint"?p:BigInt(Math.round(p)),g=typeof m=="bigint"?m:BigInt(Math.round(m));n==="add"?y[l]=d+g:n==="subtract"?y[l]=d-g:n==="multiply"?y[l]=d*g:n==="divide"?y[l]=d/g:y[l]=BigInt(Math.round(e(Number(d),Number(g))))}}else{let y=w(t.dtype)||w(r.dtype);for(let l=0;l<f;l++){let p=a.iget(l),m=u.iget(l),d=Number(p),g=Number(m);c[l]=e(d,g)}}return i}function G(t,r,e){let n=Mt(t.shape,r.shape),o=Ar(t,n),a=Ar(r,n),u=n.reduce((c,f)=>c*f,1),s=new Uint8Array(u),i=w(t.dtype)||w(r.dtype);for(let c=0;c<u;c++){let f=o.iget(c),y=a.iget(c),l=Number(f),p=Number(y);s[c]=e(l,p)?1:0}return D.fromData(s,n,"bool")}function k(t,r,e=!0){let n=t.dtype,o=Array.from(t.shape),a=t.size,s=e?n:n!=="float32"&&n!=="float64"?"float64":n,i=D.zeros(o,s),c=i.data,f=t.data;if(w(n))if(w(s)){let y=c;for(let l=0;l<a;l++){let p=Number(f[l]);y[l]=BigInt(Math.round(r(p)))}}else for(let y=0;y<a;y++)c[y]=r(Number(f[y]));else for(let y=0;y<a;y++)c[y]=r(Number(f[y]));return i}function Lr(t,r){return t.isCContiguous&&r.isCContiguous&&t.shape.length===r.shape.length&&t.shape.every((e,n)=>e===r.shape[n])}function Ct(t,r){return typeof r=="number"?Ls(t,r):Lr(t,r)?Fs(t,r):V(t,r,(e,n)=>e+n,"add")}function Fs(t,r){let e=v(t.dtype,r.dtype),n=D.zeros(Array.from(t.shape),e),o=t.size,a=t.data,u=r.data,s=n.data;if(w(e)){let i=s;if(!w(t.dtype)||!w(r.dtype))for(let f=0;f<o;f++){let y=typeof a[f]=="bigint"?a[f]:BigInt(Math.round(Number(a[f]))),l=typeof u[f]=="bigint"?u[f]:BigInt(Math.round(Number(u[f])));i[f]=y+l}else{let f=a,y=u;for(let l=0;l<o;l++)i[l]=f[l]+y[l]}}else if(w(t.dtype)||w(r.dtype))for(let c=0;c<o;c++){let f=typeof a[c]=="bigint"?Number(a[c]):a[c],y=typeof u[c]=="bigint"?Number(u[c]):u[c];s[c]=f+y}else for(let c=0;c<o;c++)s[c]=a[c]+u[c];return n}function kt(t,r){return typeof r=="number"?qs(t,r):Lr(t,r)?Ps(t,r):V(t,r,(e,n)=>e-n,"subtract")}function Ps(t,r){let e=v(t.dtype,r.dtype),n=D.zeros(Array.from(t.shape),e),o=t.size,a=t.data,u=r.data,s=n.data;if(w(e)){let i=s;if(!w(t.dtype)||!w(r.dtype))for(let f=0;f<o;f++){let y=typeof a[f]=="bigint"?a[f]:BigInt(Math.round(Number(a[f]))),l=typeof u[f]=="bigint"?u[f]:BigInt(Math.round(Number(u[f])));i[f]=y-l}else{let f=a,y=u;for(let l=0;l<o;l++)i[l]=f[l]-y[l]}}else if(w(t.dtype)||w(r.dtype))for(let c=0;c<o;c++){let f=typeof a[c]=="bigint"?Number(a[c]):a[c],y=typeof u[c]=="bigint"?Number(u[c]):u[c];s[c]=f-y}else for(let c=0;c<o;c++)s[c]=a[c]-u[c];return n}function Vt(t,r){return typeof r=="number"?js(t,r):Lr(t,r)?Rs(t,r):V(t,r,(e,n)=>e*n,"multiply")}function Rs(t,r){let e=v(t.dtype,r.dtype),n=D.zeros(Array.from(t.shape),e),o=t.size,a=t.data,u=r.data,s=n.data;if(w(e)){let i=s;if(!w(t.dtype)||!w(r.dtype))for(let f=0;f<o;f++){let y=typeof a[f]=="bigint"?a[f]:BigInt(Math.round(Number(a[f]))),l=typeof u[f]=="bigint"?u[f]:BigInt(Math.round(Number(u[f])));i[f]=y*l}else{let f=a,y=u;for(let l=0;l<o;l++)i[l]=f[l]*y[l]}}else if(w(t.dtype)||w(r.dtype))for(let c=0;c<o;c++){let f=typeof a[c]=="bigint"?Number(a[c]):a[c],y=typeof u[c]=="bigint"?Number(u[c]):u[c];s[c]=f*y}else for(let c=0;c<o;c++)s[c]=a[c]*u[c];return n}function Ft(t,r){if(typeof r=="number")return Zs(t,r);let e=t.dtype==="float64",n=r.dtype==="float64",o=t.dtype==="float32",a=r.dtype==="float32";if(e||n){let i=e?t:tr(t,"float64"),c=n?r:tr(r,"float64");return V(i,c,(f,y)=>f/y,"divide")}if(o||a){let i=o?t:tr(t,"float32"),c=a?r:tr(r,"float32");return V(i,c,(f,y)=>f/y,"divide")}let u=tr(t,"float64"),s=tr(r,"float64");return V(u,s,(i,c)=>i/c,"divide")}function tr(t,r){let e=D.zeros(Array.from(t.shape),r),n=t.size,o=t.data,a=e.data;for(let u=0;u<n;u++)a[u]=Number(o[u]);return e}function Ls(t,r){let e=t.dtype,n=Array.from(t.shape),o=t.data,a=t.size,u=D.zeros(n,e),s=u.data;if(w(e)){let i=o,c=s,f=BigInt(Math.round(r));for(let y=0;y<a;y++)c[y]=i[y]+f}else for(let i=0;i<a;i++)s[i]=Number(o[i])+r;return u}function qs(t,r){let e=t.dtype,n=Array.from(t.shape),o=t.data,a=t.size,u=D.zeros(n,e),s=u.data;if(w(e)){let i=o,c=s,f=BigInt(Math.round(r));for(let y=0;y<a;y++)c[y]=i[y]-f}else for(let i=0;i<a;i++)s[i]=Number(o[i])-r;return u}function js(t,r){let e=t.dtype,n=Array.from(t.shape),o=t.data,a=t.size,u=D.zeros(n,e),s=u.data;if(w(e)){let i=o,c=s,f=BigInt(Math.round(r));for(let y=0;y<a;y++)c[y]=i[y]*f}else for(let i=0;i<a;i++)s[i]=Number(o[i])*r;return u}function Zs(t,r){let e=t.dtype,n=Array.from(t.shape),o=t.data,a=t.size,s=e!=="float32"&&e!=="float64"?"float64":e,i=D.zeros(n,s),c=i.data;if(w(e))for(let f=0;f<a;f++)c[f]=Number(o[f])/r;else for(let f=0;f<a;f++)c[f]=Number(o[f])/r;return i}function Pt(t){let r=t.dtype,e=Array.from(t.shape),n=t.data,o=t.size,a=D.zeros(e,r),u=a.data;if(w(r)){let s=n,i=u;for(let c=0;c<o;c++){let f=s[c];i[c]=f<0n?-f:f}}else for(let s=0;s<o;s++)u[s]=Math.abs(Number(n[s]));return a}function Rt(t){let r=t.dtype,e=Array.from(t.shape),n=t.data,o=t.size,a=D.zeros(e,r),u=a.data;if(w(r)){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 Lt(t){let r=t.dtype,e=Array.from(t.shape),n=t.data,o=t.size,a=D.zeros(e,r),u=a.data;if(w(r)){let s=n,i=u;for(let c=0;c<o;c++){let f=s[c];i[c]=f>0n?1n:f<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 hr(t,r){return typeof r=="number"?Ws(t,r):V(t,r,(e,n)=>(e%n+n)%n,"mod")}function Ws(t,r){let e=t.dtype,n=Array.from(t.shape),o=t.data,a=t.size,u=D.zeros(n,e),s=u.data;if(w(e)){let i=o,c=s,f=BigInt(Math.round(r));for(let y=0;y<a;y++){let l=i[y];c[y]=(l%f+f)%f}}else for(let i=0;i<a;i++){let c=Number(o[i]);s[i]=(c%r+r)%r}return u}function qr(t,r){return typeof r=="number"?Hs(t,r):V(t,r,(e,n)=>Math.floor(e/n),"floor_divide")}function Hs(t,r){let e=t.dtype,n=Array.from(t.shape),o=t.data,a=t.size,u=D.zeros(n,e),s=u.data;if(w(e)){let i=o,c=s,f=BigInt(Math.round(r));for(let y=0;y<a;y++)c[y]=i[y]/f}else for(let i=0;i<a;i++)s[i]=Math.floor(Number(o[i])/r);return u}function qt(t){let r=t.dtype,e=Array.from(t.shape),n=t.data,o=t.size,a=D.zeros(e,r),u=a.data;for(let s=0;s<o;s++)u[s]=n[s];return a}function jt(t){let r=t.dtype,e=Array.from(t.shape),n=t.data,o=t.size,u=r!=="float32"&&r!=="float64"?"float64":r,s=D.zeros(e,u),i=s.data;if(w(r))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 Zt(t){let r=t.dtype,e=Array.from(t.shape),n=t.data,o=t.size,u=r!=="float32"&&r!=="float64"?"float64":r,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 Wt(t){let r=t.dtype,e=Array.from(t.shape),n=t.data,o=t.size,a=r==="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 Ht(t,r){let e=qr(t,r),n=hr(t,r);return[e,n]}function Yt(t){let r=t.dtype,e=Array.from(t.shape),n=t.data,o=t.size,a=D.zeros(e,r),u=a.data;if(w(r)){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 Gt(t,r){return hr(t,r)}function Jt(t,r){let e=t.dtype,n=Array.from(t.shape),o=t.size,a=e==="float32"?"float32":"float64",u=D.zeros(n,a),s=u.data;if(typeof r=="number")for(let i=0;i<o;i++){let c=Number(t.data[i]);c<0?s[i]=0:c===0?s[i]=r:s[i]=1}else{let i=r.data,c=r.shape;if(n.every((f,y)=>f===c[y]))for(let f=0;f<o;f++){let y=Number(t.data[f]);y<0?s[f]=0:y===0?s[f]=Number(i[f]):s[f]=1}else for(let f=0;f<o;f++){let y=Number(t.data[f]),l=f%r.size;y<0?s[f]=0:y===0?s[f]=Number(i[l]):s[f]=1}}return u}function J(t){if(t.length===0)return[];if(t.length===1)return Array.from(t[0]);let r=Math.max(...t.map(n=>n.length)),e=new Array(r);for(let n=0;n<r;n++){let o=1;for(let a of t){let u=a.length-r+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 Gs(t,r,e){let n=t.length,o=e.length,a=new Array(o).fill(0);for(let u=0;u<n;u++){let s=o-n+u,i=t[u],c=e[s];if(i===c)a[s]=r[u];else if(i===1)a[s]=0;else throw new Error("Invalid broadcast")}return a}function Z(t,r){let e=Gs(t.shape,t.strides,r);return D.fromData(t.data,Array.from(r),t.dtype,e,t.offset)}function jr(...t){let r=J(t);if(r===null){let e=t.map(n=>`(${n.join(",")})`).join(" ");throw new Error(`shape mismatch: objects cannot be broadcast to a single shape. Mismatch is between ${e}`)}return r}function Xt(t,r){return typeof r=="number"?Js(t,r):G(t,r,(e,n)=>e>n)}function Qt(t,r){return typeof r=="number"?Xs(t,r):G(t,r,(e,n)=>e>=n)}function Kt(t,r){return typeof r=="number"?Qs(t,r):G(t,r,(e,n)=>e<n)}function re(t,r){return typeof r=="number"?Ks(t,r):G(t,r,(e,n)=>e<=n)}function te(t,r){return typeof r=="number"?ri(t,r):G(t,r,(e,n)=>e===n)}function ee(t,r){return typeof r=="number"?ti(t,r):G(t,r,(e,n)=>e!==n)}function Zr(t,r,e=1e-5,n=1e-8){return typeof r=="number"?ei(t,r,e,n):G(t,r,(o,a)=>{let u=Math.abs(o-a),s=n+e*Math.abs(a);return u<=s})}function ne(t,r,e=1e-5,n=1e-8){let o=Zr(t,r,e,n),a=o.data;for(let u=0;u<o.size;u++)if(a[u]===0)return!1;return!0}function oe(t,r){let e=[Array.from(t.shape),Array.from(r.shape)],n=J(e);if(n===null)return!1;let o=Z(t,n),a=Z(r,n),u=n.length,s=n.reduce((f,y)=>f*y,1),i=w(o.dtype),c=w(a.dtype);for(let f=0;f<s;f++){let y=f,l=new Array(u);for(let d=u-1;d>=0;d--)l[d]=y%n[d],y=Math.floor(y/n[d]);let p=o.get(...l),m=a.get(...l);if(i||c){let d=typeof p=="bigint"?p:BigInt(Number(p)),g=typeof m=="bigint"?m:BigInt(Number(m));if(d!==g)return!1}else if(p!==m)return!1}return!0}function Js(t,r){let e=new Uint8Array(t.size),n=t.data;for(let o=0;o<t.size;o++)e[o]=n[o]>r?1:0;return D.fromData(e,Array.from(t.shape),"bool")}function Xs(t,r){let e=new Uint8Array(t.size),n=t.data;for(let o=0;o<t.size;o++)e[o]=n[o]>=r?1:0;return D.fromData(e,Array.from(t.shape),"bool")}function Qs(t,r){let e=new Uint8Array(t.size),n=t.data;for(let o=0;o<t.size;o++)e[o]=n[o]<r?1:0;return D.fromData(e,Array.from(t.shape),"bool")}function Ks(t,r){let e=new Uint8Array(t.size),n=t.data;for(let o=0;o<t.size;o++)e[o]=n[o]<=r?1:0;return D.fromData(e,Array.from(t.shape),"bool")}function ri(t,r){let e=new Uint8Array(t.size),n=t.data,o=t.dtype;if(w(o)){let a=BigInt(Math.round(r)),u=n;for(let s=0;s<t.size;s++)e[s]=u[s]===a?1:0}else for(let a=0;a<t.size;a++)e[a]=n[a]===r?1:0;return D.fromData(e,Array.from(t.shape),"bool")}function ti(t,r){let e=new Uint8Array(t.size),n=t.data;for(let o=0;o<t.size;o++)e[o]=n[o]!==r?1:0;return D.fromData(e,Array.from(t.shape),"bool")}function ei(t,r,e,n){let o=new Uint8Array(t.size),a=t.data,u=t.dtype;if(w(u)){let s=a;for(let i=0;i<t.size;i++){let c=Number(s[i]),f=Math.abs(c-r),y=n+e*Math.abs(r);o[i]=f<=y?1:0}}else for(let s=0;s<t.size;s++){let i=Number(a[s]),c=Math.abs(i-r),f=n+e*Math.abs(r);o[s]=c<=f?1:0}return D.fromData(o,Array.from(t.shape),"bool")}function O(t,r){let e=0,n=1;for(let o=t.length-1;o>=0;o--)e+=t[o]*n,n*=r[o];return e}function $(t,r,e,n){let o=n.length,a=new Array(o),u=Array.from(n).filter((i,c)=>c!==r),s=t;for(let i=u.length-1;i>=0;i--)a[i>=r?i+1:i]=s%u[i],s=Math.floor(s/u[i]);return a[r]=e,a}function ar(t,r,e=!1){let n=t.dtype,o=t.shape,a=o.length,u=t.size,s=t.data;if(r===void 0)if(w(n)){let m=s,d=BigInt(0);for(let g=0;g<u;g++)d+=m[g];return Number(d)}else{let m=0;for(let d=0;d<u;d++)m+=Number(s[d]);return m}let i=r;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${r} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((m,d)=>d!==i);if(c.length===0)return ar(t);let f=D.zeros(c,n),y=f.data,l=o[i],p=c.reduce((m,d)=>m*d,1);if(w(n)){let m=s,d=y;for(let g=0;g<p;g++){let h=BigInt(0);for(let A=0;A<l;A++){let b=$(g,i,A,o),S=O(b,o);h+=m[S]}d[g]=h}}else for(let m=0;m<p;m++){let d=0;for(let g=0;g<l;g++){let h=$(m,i,g,o),A=O(h,o);d+=Number(s[A])}y[m]=d}if(e){let m=[...o];return m[i]=1,D.fromData(y,m,n)}return f}function br(t,r,e=!1){let n=t.dtype,o=t.shape;if(r===void 0)return ar(t)/t.size;let a=r;if(a<0&&(a=o.length+a),a<0||a>=o.length)throw new Error(`axis ${r} is out of bounds for array of dimension ${o.length}`);let u=ar(t,r,e);if(typeof u=="number")return u/o[a];let s=o[a],i=n;(w(n)||n.startsWith("int")||n.startsWith("uint"))&&(i="float64");let c=D.zeros(Array.from(u.shape),i),f=c.data,y=u.data;if(w(n)){let l=y;for(let p=0;p<f.length;p++)f[p]=Number(l[p])/s}else for(let l=0;l<f.length;l++)f[l]=Number(y[l])/s;return c}function Sr(t,r,e=!1){let n=t.dtype,o=t.shape,a=o.length,u=t.size,s=t.data;if(r===void 0){if(u===0)throw new Error("max of empty array");let m=s[0];for(let d=1;d<u;d++)s[d]>m&&(m=s[d]);return Number(m)}let i=r;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${r} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((m,d)=>d!==i);if(c.length===0)return Sr(t);let f=D.zeros(c,n),y=f.data,l=o[i],p=c.reduce((m,d)=>m*d,1);if(w(n)){let m=s,d=y;for(let g=0;g<p;g++){let h=$(g,i,0,o),A=O(h,o),b=m[A];for(let S=1;S<l;S++){let N=$(g,i,S,o),x=O(N,o),I=m[x];I>b&&(b=I)}d[g]=b}}else for(let m=0;m<p;m++){let d=-1/0;for(let g=0;g<l;g++){let h=$(m,i,g,o),A=O(h,o),b=Number(s[A]);b>d&&(d=b)}y[m]=d}if(e){let m=[...o];return m[i]=1,D.fromData(y,m,n)}return f}function Wr(t,r,e=!1){let n=t.dtype,o=t.shape,a=o.length,u=t.size,s=t.data;if(r===void 0)if(w(n)){let m=s,d=BigInt(1);for(let g=0;g<u;g++)d*=m[g];return Number(d)}else{let m=1;for(let d=0;d<u;d++)m*=Number(s[d]);return m}let i=r;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${r} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((m,d)=>d!==i);if(c.length===0)return Wr(t);let f=D.zeros(c,n),y=f.data,l=o[i],p=c.reduce((m,d)=>m*d,1);if(w(n)){let m=s,d=y;for(let g=0;g<p;g++){let h=BigInt(1);for(let A=0;A<l;A++){let b=$(g,i,A,o),S=O(b,o);h*=m[S]}d[g]=h}}else for(let m=0;m<p;m++){let d=1;for(let g=0;g<l;g++){let h=$(m,i,g,o),A=O(h,o);d*=Number(s[A])}y[m]=d}if(e){let m=[...o];return m[i]=1,D.fromData(y,m,n)}return f}function Dr(t,r,e=!1){let n=t.dtype,o=t.shape,a=o.length,u=t.size,s=t.data;if(r===void 0){if(u===0)throw new Error("min of empty array");let m=s[0];for(let d=1;d<u;d++)s[d]<m&&(m=s[d]);return Number(m)}let i=r;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${r} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((m,d)=>d!==i);if(c.length===0)return Dr(t);let f=D.zeros(c,n),y=f.data,l=o[i],p=c.reduce((m,d)=>m*d,1);if(w(n)){let m=s,d=y;for(let g=0;g<p;g++){let h=$(g,i,0,o),A=O(h,o),b=m[A];for(let S=1;S<l;S++){let N=$(g,i,S,o),x=O(N,o),I=m[x];I<b&&(b=I)}d[g]=b}}else for(let m=0;m<p;m++){let d=1/0;for(let g=0;g<l;g++){let h=$(m,i,g,o),A=O(h,o),b=Number(s[A]);b<d&&(d=b)}y[m]=d}if(e){let m=[...o];return m[i]=1,D.fromData(y,m,n)}return f}function Hr(t,r){let e=t.dtype,n=t.shape,o=n.length,a=t.size,u=t.data;if(r===void 0){if(a===0)throw new Error("argmin of empty array");let p=u[0],m=0;for(let d=1;d<a;d++)u[d]<p&&(p=u[d],m=d);return m}let s=r;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let i=Array.from(n).filter((p,m)=>m!==s);if(i.length===0)return Hr(t);let c=D.zeros(i,"int32"),f=c.data,y=n[s],l=i.reduce((p,m)=>p*m,1);if(w(e)){let p=u;for(let m=0;m<l;m++){let d=$(m,s,0,n),g=O(d,n),h=p[g],A=0;for(let b=1;b<y;b++){let S=$(m,s,b,n),N=O(S,n),x=p[N];x<h&&(h=x,A=b)}f[m]=A}}else for(let p=0;p<l;p++){let m=1/0,d=0;for(let g=0;g<y;g++){let h=$(p,s,g,n),A=O(h,n),b=Number(u[A]);b<m&&(m=b,d=g)}f[p]=d}return c}function Yr(t,r){let e=t.dtype,n=t.shape,o=n.length,a=t.size,u=t.data;if(r===void 0){if(a===0)throw new Error("argmax of empty array");let p=u[0],m=0;for(let d=1;d<a;d++)u[d]>p&&(p=u[d],m=d);return m}let s=r;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let i=Array.from(n).filter((p,m)=>m!==s);if(i.length===0)return Yr(t);let c=D.zeros(i,"int32"),f=c.data,y=n[s],l=i.reduce((p,m)=>p*m,1);if(w(e)){let p=u;for(let m=0;m<l;m++){let d=$(m,s,0,n),g=O(d,n),h=p[g],A=0;for(let b=1;b<y;b++){let S=$(m,s,b,n),N=O(S,n),x=p[N];x>h&&(h=x,A=b)}f[m]=A}}else for(let p=0;p<l;p++){let m=-1/0,d=0;for(let g=0;g<y;g++){let h=$(p,s,g,n),A=O(h,n),b=Number(u[A]);b>m&&(m=b,d=g)}f[p]=d}return c}function Gr(t,r,e=0,n=!1){let o=t.shape,a=o.length,u=t.size,s=t.data,i=br(t,r,n);if(r===void 0){let h=i,A=0;for(let b=0;b<u;b++){let S=Number(s[b])-h;A+=S*S}return A/(u-e)}let c=r;if(c<0&&(c=a+c),c<0||c>=a)throw new Error(`axis ${r} is out of bounds for array of dimension ${a}`);let f=o[c],y=i,l=y.data,p=n?y.shape:Array.from(o).filter((h,A)=>A!==c),m=D.zeros(Array.from(p),"float64"),d=m.data,g=p.reduce((h,A)=>h*A,1);for(let h=0;h<g;h++){let A=0,b=Number(l[h]);for(let S=0;S<f;S++){let N=$(h,c,S,o),x=O(N,o),I=Number(s[x])-b;A+=I*I}d[h]=A/(f-e)}return m}function ae(t,r,e=0,n=!1){let o=Gr(t,r,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 Jr(t,r,e=!1){let n=t.shape,o=n.length,a=t.size,u=t.data;if(r===void 0){for(let p=0;p<a;p++)if(!u[p])return!1;return!0}let s=r;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let i=Array.from(n).filter((p,m)=>m!==s);if(i.length===0)return Jr(t);let c=D.zeros(i,"bool"),f=c.data,y=n[s],l=i.reduce((p,m)=>p*m,1);for(let p=0;p<l;p++){let m=!0;for(let d=0;d<y;d++){let g=$(p,s,d,n),h=O(g,n);if(!u[h]){m=!1;break}}f[p]=m?1:0}if(e){let p=[...n];return p[s]=1,D.fromData(f,p,"bool")}return c}function Xr(t,r,e=!1){let n=t.shape,o=n.length,a=t.size,u=t.data;if(r===void 0){for(let p=0;p<a;p++)if(u[p])return!0;return!1}let s=r;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let i=Array.from(n).filter((p,m)=>m!==s);if(i.length===0)return Xr(t);let c=D.zeros(i,"bool"),f=c.data,y=n[s],l=i.reduce((p,m)=>p*m,1);for(let p=0;p<l;p++){let m=!1;for(let d=0;d<y;d++){let g=$(p,s,d,n),h=O(g,n);if(u[h]){m=!0;break}}f[p]=m?1:0}if(e){let p=[...n];return p[s]=1,D.fromData(f,p,"bool")}return c}function Qr(t,r){let e=t.shape,n=e.length,o=t.data;if(r===void 0){let l=t.size,p=new Float64Array(l),m=0;for(let d=0;d<l;d++)m+=Number(o[d]),p[d]=m;return D.fromData(p,[l],"float64")}let a=r;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);let u=new Float64Array(t.size),s=e[a],i=[],c=1;for(let l=n-1;l>=0;l--)i.unshift(c),c*=e[l];let f=t.size,y=i[a];for(let l=0;l<f;l++)Math.floor(l/y)%s===0?u[l]=Number(o[l]):u[l]=u[l-y]+Number(o[l]);return D.fromData(u,[...e],"float64")}function Kr(t,r){let e=t.shape,n=e.length,o=t.data;if(r===void 0){let l=t.size,p=new Float64Array(l),m=1;for(let d=0;d<l;d++)m*=Number(o[d]),p[d]=m;return D.fromData(p,[l],"float64")}let a=r;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);let u=new Float64Array(t.size),s=e[a],i=[],c=1;for(let l=n-1;l>=0;l--)i.unshift(c),c*=e[l];let f=t.size,y=i[a];for(let l=0;l<f;l++)Math.floor(l/y)%s===0?u[l]=Number(o[l]):u[l]=u[l-y]*Number(o[l]);return D.fromData(u,[...e],"float64")}function rt(t,r,e=!1){let n=Sr(t,r,e),o=Dr(t,r,e);if(typeof n=="number"&&typeof o=="number")return n-o;let a=n,u=o,s=a.data,i=u.data,c=new Float64Array(a.size);for(let f=0;f<a.size;f++)c[f]=Number(s[f])-Number(i[f]);return D.fromData(c,[...a.shape],"float64")}function tt(t,r,e=!1){return er(t,.5,r,e)}function et(t,r,e,n=!1){return er(t,r/100,e,n)}function er(t,r,e,n=!1){if(r<0||r>1)throw new Error("Quantile must be between 0 and 1");let o=t.shape,a=o.length,u=t.data;if(e===void 0){let p=[];for(let b=0;b<t.size;b++)p.push(Number(u[b]));p.sort((b,S)=>b-S);let m=p.length,d=r*(m-1),g=Math.floor(d),h=Math.ceil(d);if(g===h)return p[g];let A=d-g;return p[g]*(1-A)+p[h]*A}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((p,m)=>m!==s);if(i.length===0)return er(t,r);let c=i.reduce((p,m)=>p*m,1),f=o[s],y=new Float64Array(c);for(let p=0;p<c;p++){let m=[];for(let b=0;b<f;b++){let S=$(p,s,b,o),N=O(S,o);m.push(Number(u[N]))}m.sort((b,S)=>b-S);let d=m.length,g=r*(d-1),h=Math.floor(g),A=Math.ceil(g);if(h===A)y[p]=m[h];else{let b=g-h;y[p]=m[h]*(1-b)+m[A]*b}}let l=D.fromData(y,i,"float64");if(n){let p=[...o];return p[s]=1,D.fromData(y,p,"float64")}return l}function Nr(t,r,e,n=!1){let o=t.shape,a=o.length,u=t.data;if(e===void 0)return br(t,r,n);if(r===void 0){let m=0,d=0,g=e.data;for(let h=0;h<t.size;h++){let A=Number(g[h%e.size]);m+=Number(u[h])*A,d+=A}return d===0?NaN:m/d}let s=r;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${r} is out of bounds for array of dimension ${a}`);let i=Array.from(o).filter((m,d)=>d!==s);if(i.length===0)return Nr(t,void 0,e);let c=i.reduce((m,d)=>m*d,1),f=o[s],y=e.data,l=new Float64Array(c);for(let m=0;m<c;m++){let d=0,g=0;for(let h=0;h<f;h++){let A=$(m,s,h,o),b=O(A,o),S=Number(y[h%e.size]);d+=Number(u[b])*S,g+=S}l[m]=g===0?NaN:d/g}let p=D.fromData(l,i,"float64");if(n){let m=[...o];return m[s]=1,D.fromData(l,m,"float64")}return p}function wr(t,r,e=!1){let n=t.shape,o=n.length,a=t.data;if(r===void 0){let l=0;for(let p=0;p<t.size;p++){let m=Number(a[p]);isNaN(m)||(l+=m)}return l}let u=r;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((l,p)=>p!==u);if(s.length===0)return wr(t);let i=s.reduce((l,p)=>l*p,1),c=n[u],f=new Float64Array(i);for(let l=0;l<i;l++){let p=0;for(let m=0;m<c;m++){let d=$(l,u,m,n),g=O(d,n),h=Number(a[g]);isNaN(h)||(p+=h)}f[l]=p}let y=D.fromData(f,s,"float64");if(e){let l=[...n];return l[u]=1,D.fromData(f,l,"float64")}return y}function xr(t,r,e=!1){let n=t.shape,o=n.length,a=t.data;if(r===void 0){let l=1;for(let p=0;p<t.size;p++){let m=Number(a[p]);isNaN(m)||(l*=m)}return l}let u=r;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((l,p)=>p!==u);if(s.length===0)return xr(t);let i=s.reduce((l,p)=>l*p,1),c=n[u],f=new Float64Array(i);for(let l=0;l<i;l++){let p=1;for(let m=0;m<c;m++){let d=$(l,u,m,n),g=O(d,n),h=Number(a[g]);isNaN(h)||(p*=h)}f[l]=p}let y=D.fromData(f,s,"float64");if(e){let l=[...n];return l[u]=1,D.fromData(f,l,"float64")}return y}function Ir(t,r,e=!1){let n=t.shape,o=n.length,a=t.data;if(r===void 0){let l=0,p=0;for(let m=0;m<t.size;m++){let d=Number(a[m]);isNaN(d)||(l+=d,p++)}return p===0?NaN:l/p}let u=r;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((l,p)=>p!==u);if(s.length===0)return Ir(t);let i=s.reduce((l,p)=>l*p,1),c=n[u],f=new Float64Array(i);for(let l=0;l<i;l++){let p=0,m=0;for(let d=0;d<c;d++){let g=$(l,u,d,n),h=O(g,n),A=Number(a[h]);isNaN(A)||(p+=A,m++)}f[l]=m===0?NaN:p/m}let y=D.fromData(f,s,"float64");if(e){let l=[...n];return l[u]=1,D.fromData(f,l,"float64")}return y}function sr(t,r,e=0,n=!1){let o=t.shape,a=o.length,u=t.data;if(r===void 0){let p=0,m=0;for(let h=0;h<t.size;h++){let A=Number(u[h]);isNaN(A)||(p+=A,m++)}if(m-e<=0)return NaN;let d=p/m,g=0;for(let h=0;h<t.size;h++){let A=Number(u[h]);isNaN(A)||(g+=(A-d)**2)}return g/(m-e)}let s=r;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${r} is out of bounds for array of dimension ${a}`);let i=Array.from(o).filter((p,m)=>m!==s);if(i.length===0)return sr(t,void 0,e);let c=i.reduce((p,m)=>p*m,1),f=o[s],y=new Float64Array(c);for(let p=0;p<c;p++){let m=0,d=0;for(let A=0;A<f;A++){let b=$(p,s,A,o),S=O(b,o),N=Number(u[S]);isNaN(N)||(m+=N,d++)}if(d-e<=0){y[p]=NaN;continue}let g=m/d,h=0;for(let A=0;A<f;A++){let b=$(p,s,A,o),S=O(b,o),N=Number(u[S]);isNaN(N)||(h+=(N-g)**2)}y[p]=h/(d-e)}let l=D.fromData(y,i,"float64");if(n){let p=[...o];return p[s]=1,D.fromData(y,p,"float64")}return l}function nt(t,r,e=0,n=!1){let o=sr(t,r,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 zr(t,r,e=!1){let n=t.shape,o=n.length,a=t.data;if(r===void 0){let l=1/0;for(let p=0;p<t.size;p++){let m=Number(a[p]);!isNaN(m)&&m<l&&(l=m)}return l===1/0?NaN:l}let u=r;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((l,p)=>p!==u);if(s.length===0)return zr(t);let i=s.reduce((l,p)=>l*p,1),c=n[u],f=new Float64Array(i);for(let l=0;l<i;l++){let p=1/0;for(let m=0;m<c;m++){let d=$(l,u,m,n),g=O(d,n),h=Number(a[g]);!isNaN(h)&&h<p&&(p=h)}f[l]=p===1/0?NaN:p}let y=D.fromData(f,s,"float64");if(e){let l=[...n];return l[u]=1,D.fromData(f,l,"float64")}return y}function _r(t,r,e=!1){let n=t.shape,o=n.length,a=t.data;if(r===void 0){let l=-1/0;for(let p=0;p<t.size;p++){let m=Number(a[p]);!isNaN(m)&&m>l&&(l=m)}return l===-1/0?NaN:l}let u=r;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((l,p)=>p!==u);if(s.length===0)return _r(t);let i=s.reduce((l,p)=>l*p,1),c=n[u],f=new Float64Array(i);for(let l=0;l<i;l++){let p=-1/0;for(let m=0;m<c;m++){let d=$(l,u,m,n),g=O(d,n),h=Number(a[g]);!isNaN(h)&&h>p&&(p=h)}f[l]=p===-1/0?NaN:p}let y=D.fromData(f,s,"float64");if(e){let l=[...n];return l[u]=1,D.fromData(f,l,"float64")}return y}function Br(t,r){let e=t.shape,n=e.length,o=t.data;if(r===void 0){let f=1/0,y=-1;for(let l=0;l<t.size;l++){let p=Number(o[l]);!isNaN(p)&&p<f&&(f=p,y=l)}return y}let a=r;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);let u=Array.from(e).filter((f,y)=>y!==a);if(u.length===0)return Br(t);let s=u.reduce((f,y)=>f*y,1),i=e[a],c=new Int32Array(s);for(let f=0;f<s;f++){let y=1/0,l=0;for(let p=0;p<i;p++){let m=$(f,a,p,e),d=O(m,e),g=Number(o[d]);!isNaN(g)&&g<y&&(y=g,l=p)}c[f]=l}return D.fromData(c,u,"int32")}function Er(t,r){let e=t.shape,n=e.length,o=t.data;if(r===void 0){let f=-1/0,y=-1;for(let l=0;l<t.size;l++){let p=Number(o[l]);!isNaN(p)&&p>f&&(f=p,y=l)}return y}let a=r;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);let u=Array.from(e).filter((f,y)=>y!==a);if(u.length===0)return Er(t);let s=u.reduce((f,y)=>f*y,1),i=e[a],c=new Int32Array(s);for(let f=0;f<s;f++){let y=-1/0,l=0;for(let p=0;p<i;p++){let m=$(f,a,p,e),d=O(m,e),g=Number(o[d]);!isNaN(g)&&g>y&&(y=g,l=p)}c[f]=l}return D.fromData(c,u,"int32")}function ot(t,r){let e=t.shape,n=e.length,o=t.data;if(r===void 0){let l=t.size,p=new Float64Array(l),m=0;for(let d=0;d<l;d++){let g=Number(o[d]);isNaN(g)||(m+=g),p[d]=m}return D.fromData(p,[l],"float64")}let a=r;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);let u=new Float64Array(t.size),s=e[a],i=[],c=1;for(let l=n-1;l>=0;l--)i.unshift(c),c*=e[l];let f=t.size,y=i[a];for(let l=0;l<f;l++){let p=Number(o[l]);Math.floor(l/y)%s===0?u[l]=isNaN(p)?0:p:u[l]=u[l-y]+(isNaN(p)?0:p)}return D.fromData(u,[...e],"float64")}function at(t,r){let e=t.shape,n=e.length,o=t.data;if(r===void 0){let l=t.size,p=new Float64Array(l),m=1;for(let d=0;d<l;d++){let g=Number(o[d]);isNaN(g)||(m*=g),p[d]=m}return D.fromData(p,[l],"float64")}let a=r;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);let u=new Float64Array(t.size),s=e[a],i=[],c=1;for(let l=n-1;l>=0;l--)i.unshift(c),c*=e[l];let f=t.size,y=i[a];for(let l=0;l<f;l++){let p=Number(o[l]);Math.floor(l/y)%s===0?u[l]=isNaN(p)?1:p:u[l]=u[l-y]*(isNaN(p)?1:p)}return D.fromData(u,[...e],"float64")}function Ur(t,r,e=!1){let n=t.shape,o=n.length,a=t.data;if(r===void 0){let l=[];for(let d=0;d<t.size;d++){let g=Number(a[d]);isNaN(g)||l.push(g)}if(l.length===0)return NaN;l.sort((d,g)=>d-g);let p=l.length,m=Math.floor(p/2);return p%2===0?(l[m-1]+l[m])/2:l[m]}let u=r;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((l,p)=>p!==u);if(s.length===0)return Ur(t);let i=s.reduce((l,p)=>l*p,1),c=n[u],f=new Float64Array(i);for(let l=0;l<i;l++){let p=[];for(let g=0;g<c;g++){let h=$(l,u,g,n),A=O(h,n),b=Number(a[A]);isNaN(b)||p.push(b)}if(p.length===0){f[l]=NaN;continue}p.sort((g,h)=>g-h);let m=p.length,d=Math.floor(m/2);m%2===0?f[l]=(p[d-1]+p[d])/2:f[l]=p[d]}let y=D.fromData(f,s,"float64");if(e){let l=[...n];return l[u]=1,D.fromData(f,l,"float64")}return y}function q(t,r){let e=t.size,n=t.dtype,o=r.indexOf(-1),a;if(o!==-1){let c=r.reduce((y,l,p)=>p===o?y:y*l,1),f=e/c;if(!Number.isInteger(f))throw new Error(`cannot reshape array of size ${e} into shape ${JSON.stringify(r)}`);a=r.map((y,l)=>l===o?f:y)}else a=r;if(a.reduce((c,f)=>c*f,1)!==e)throw new Error(`cannot reshape array of size ${e} into shape ${JSON.stringify(a)}`);if(t.isCContiguous){let c=t.data;return D.fromData(c,a,n,P(a),0)}let i=t.copy().data;return D.fromData(i,a,n,P(a),0)}function Tr(t){let r=t.size,e=t.dtype,n=U(e);if(!n)throw new Error(`Cannot flatten array with dtype ${e}`);if(t.isCContiguous){let s=t.data.slice(t.offset,t.offset+r);return D.fromData(s,[r],e,[1],0)}let o=new n(r),a=w(e);for(let u=0;u<r;u++){let s=t.iget(u);o[u]=s}return D.fromData(o,[r],e,[1],0)}function ur(t){let r=t.size,e=t.dtype;if(t.isCContiguous){let n=t.data;return D.fromData(n,[r],e,[1],0)}return Tr(t)}function cr(t,r){let e=t.shape,n=e.length,o=t.strides,a=t.data,u=t.dtype,s;if(r===void 0)s=Array.from({length:n},(y,l)=>n-1-l);else{if(r.length!==n)throw new Error(`axes must have length ${n}, got ${r.length}`);let y=new Set;for(let l of r){let p=l<0?n+l:l;if(p<0||p>=n)throw new Error(`axis ${l} is out of bounds for array of dimension ${n}`);if(y.has(p))throw new Error("repeated axis in transpose");y.add(p)}s=r.map(l=>l<0?n+l:l)}let i=s.map(y=>e[y]),c=Array.from(o),f=s.map(y=>c[y]);return D.fromData(a,i,u,f,t.offset)}function se(t,r){let e=t.shape,n=e.length,o=t.strides,a=t.data,u=t.dtype;if(r===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,t.offset)}else{let s=r<0?n+r:r;if(s<0||s>=n)throw new Error(`axis ${r} 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 ${r} has size ${e[s]})`);let i=[],c=[];for(let f=0;f<n;f++)f!==s&&(i.push(e[f]),c.push(o[f]));return D.fromData(a,i,u,c,t.offset)}}function ir(t,r){let e=t.shape,n=e.length,o=t.strides,a=t.data,u=t.dtype,s=r;if(s<0&&(s=n+r+1),s<0||s>n)throw new Error(`axis ${r} 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)],f=s<n?o[s]*(e[s]||1):1;return c.splice(s,0,f),D.fromData(a,i,u,c,t.offset)}function ie(t,r,e){let n=t.shape,o=n.length,a=t.strides,u=t.data,s=t.dtype,i=r<0?o+r:r,c=e<0?o+e:e;if(i<0||i>=o)throw new Error(`axis1 ${r} 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),t.offset);let f=Array.from(n),y=Array.from(a);return[f[i],f[c]]=[f[c],f[i]],[y[i],y[c]]=[y[c],y[i]],D.fromData(u,f,s,y,t.offset)}function st(t,r,e){let n=t.ndim,o=Array.isArray(r)?r:[r],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 f=c<0?n+c:c;if(f<0||f>=n)throw new Error(`source axis ${c} is out of bounds for array of dimension ${n}`);return f}),s=a.map(c=>{let f=c<0?n+c:c;if(f<0||f>=n)throw new Error(`destination axis ${c} is out of bounds for array of dimension ${n}`);return f});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 f=s[c];i.splice(f,0,u[c])}return cr(t,i)}function Q(t,r=0){if(t.length===0)throw new Error("need at least one array to concatenate");if(t.length===1)return t[0].copy();let e=t[0],n=e.ndim,o=e.dtype,a=r<0?n+r:r;if(a<0||a>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);for(let p=1;p<t.length;p++){let m=t[p];if(m.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&&m.shape[d]!==e.shape[d])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 p=1;p<t.length;p++)s+=t[p].shape[a];u[a]=s;let i=u.reduce((p,m)=>p*m,1),c=U(o);if(!c)throw new Error(`Cannot concatenate arrays with dtype ${o}`);let f=new c(i),y=P(u),l=0;for(let p of t){let m=p.shape[a];ai(p,f,u,y,a,l,o),l+=m}return D.fromData(f,u,o)}function ai(t,r,e,n,o,a,u){let s=t.shape,i=s.length,c=t.size,f=u==="int64"||u==="uint64";if(o===0&&t.isCContiguous&&i>0){let p=a*n[0],m=t.data,d=t.offset,g=d+c;r.set(m.subarray(d,g),p);return}if(o===1&&i===2&&t.isCContiguous){let p=s[0],m=s[1],d=e[1],g=t.data,h=t.offset;for(let A=0;A<p;A++){let b=h+A*m,S=A*d+a;r.set(g.subarray(b,b+m),S)}return}let y=new Array(i).fill(0),l=a*n[o];for(let p=0;p<c;p++){let m=t.iget(p),d=l;for(let g=0;g<i;g++)d+=y[g]*n[g];r[d]=m;for(let g=i-1;g>=0&&(y[g]++,!(y[g]<s[g]));g--)y[g]=0}}function ue(t,r=0){if(t.length===0)throw new Error("need at least one array to stack");let e=t[0],n=e.shape,o=e.ndim,a=r<0?o+1+r:r;if(a<0||a>o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o+1}`);for(let s=1;s<t.length;s++){let i=t[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=t.map(s=>ir(s,a));return Q(u,a)}function ce(t){if(t.length===0)throw new Error("need at least one array to stack");let r=t.map(e=>e.ndim===1?q(e,[1,e.shape[0]]):e);return Q(r,0)}function it(t){if(t.length===0)throw new Error("need at least one array to stack");return t.every(e=>e.ndim===1)?Q(t,0):Q(t,1)}function fe(t){if(t.length===0)throw new Error("need at least one array to stack");let r=t.map(e=>e.ndim===1?q(ir(q(e,[1,e.shape[0]]),2),[1,e.shape[0],1]):e.ndim===2?ir(e,2):e);return Q(r,2)}function le(t,r,e=0){let n=t.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 r=="number"){if(u%r!==0)throw new Error("array split does not result in an equal division");let i=u/r;s=[];for(let c=1;c<r;c++)s.push(c*i)}else s=r;return ye(t,s,a)}function fr(t,r,e=0){let n=t.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 r=="number"){let i=r,c=Math.floor(u/i),f=u%i;s=[];let y=0;for(let l=0;l<i-1;l++)y+=c+(l<f?1:0),s.push(y)}else s=r;return ye(t,s,a)}function ye(t,r,e){let n=t.shape,o=n[e],a=[0,...r,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 f=Array.from(n);f[e]=c-i;let y=t.offset+i*t.strides[e];u.push(D.fromData(t.data,f,t.dtype,Array.from(t.strides),y))}return u}function pe(t,r){if(t.ndim<2)throw new Error("vsplit only works on arrays of 2 or more dimensions");return fr(t,r,0)}function me(t,r){if(t.ndim<1)throw new Error("hsplit only works on arrays of 1 or more dimensions");let e=t.ndim===1?0:1;return fr(t,r,e)}function de(t,r){let e=t.shape,n=e.length,o=t.dtype,a=Array.isArray(r)?r:[r],u=Math.max(n,a.length),s=new Array(u).fill(1),i=new Array(u).fill(1);for(let A=0;A<n;A++)s[u-n+A]=e[A];for(let A=0;A<a.length;A++)i[u-a.length+A]=a[A];let c=s.map((A,b)=>A*i[b]),f=c.reduce((A,b)=>A*b,1),y=U(o);if(!y)throw new Error(`Cannot tile array with dtype ${o}`);let l=new y(f),p=P(c),m=t;n<u&&(m=q(t,s));let d=o==="int64"||o==="uint64",g=m.strides,h=new Array(u).fill(0);for(let A=0;A<f;A++){let b=m.offset;for(let x=0;x<u;x++){let I=h[x]%s[x];b+=I*g[x]}let S=m.data[b],N=0;for(let x=0;x<u;x++)N+=h[x]*p[x];l[N]=S;for(let x=u-1;x>=0&&(h[x]++,!(h[x]<c[x]));x--)h[x]=0}return D.fromData(l,c,o)}function ge(t,r,e){let n=t.shape,o=n.length,a=t.dtype,u=t.size;if(e===void 0){let A=u,b=Array.isArray(r)?r:new Array(A).fill(r);if(b.length!==A)throw new Error(`operands could not be broadcast together with shape (${A},) (${b.length},)`);let S=b.reduce((z,B)=>z+B,0),N=U(a);if(!N)throw new Error(`Cannot repeat array with dtype ${a}`);let x=new N(S),I=0;for(let z=0;z<A;z++){let B=t.iget(z),E=b[z];for(let T=0;T<E;T++)x[I++]=B}return D.fromData(x,[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(r)?r:new Array(i).fill(r);if(c.length!==i)throw new Error(`operands could not be broadcast together with shape (${i},) (${c.length},)`);let f=Array.from(n);f[s]=c.reduce((A,b)=>A+b,0);let y=f.reduce((A,b)=>A*b,1),l=U(a);if(!l)throw new Error(`Cannot repeat array with dtype ${a}`);let p=new l(y),m=P(f),d=new Array(o).fill(0),g=a==="int64"||a==="uint64",h=[0];for(let A=0;A<i;A++)h.push(h[A]+c[A]);for(let A=0;A<u;A++){let b=t.iget(A),S=d[s],N=c[S],x=0;for(let B=0;B<o;B++)B!==s&&(x+=d[B]*m[B]);let I=m[s],z=h[S];for(let B=0;B<N;B++){let E=x+(z+B)*I;p[E]=b}for(let B=o-1;B>=0&&(d[B]++,!(d[B]<n[B]));B--)d[B]=0}return D.fromData(p,f,a)}function Ae(t,r){let e=t.shape,n=e.length,o=t.dtype,a=t.size,u;if(r===void 0)u=new Set(Array.from({length:n},(l,p)=>p));else if(typeof r=="number"){let l=r<0?n+r:r;if(l<0||l>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);u=new Set([l])}else u=new Set(r.map(l=>{let p=l<0?n+l:l;if(p<0||p>=n)throw new Error(`axis ${l} is out of bounds for array of dimension ${n}`);return p}));let s=U(o);if(!s)throw new Error(`Cannot flip array with dtype ${o}`);let i=new s(a),c=w(o);if(n===1&&t.isCContiguous){let l=t.data,p=t.offset;for(let m=0;m<a;m++)i[m]=l[p+a-1-m];return D.fromData(i,[...e],o)}if(n===2&&t.isCContiguous){let l=e[0],p=e[1],m=t.data,d=t.offset;if(u.size===2){for(let g=0;g<a;g++)i[g]=m[d+a-1-g];return D.fromData(i,[...e],o)}if(u.size===1){if(u.has(0)){for(let g=0;g<l;g++){let h=d+(l-1-g)*p,A=g*p;for(let b=0;b<p;b++)i[A+b]=m[h+b]}return D.fromData(i,[...e],o)}else if(u.has(1)){for(let g=0;g<l;g++){let h=d+g*p,A=g*p;for(let b=0;b<p;b++)i[A+b]=m[h+p-1-b]}return D.fromData(i,[...e],o)}}}let f=new Array(n),y=new Array(n).fill(0);for(let l=0;l<a;l++){for(let d=0;d<n;d++)f[d]=u.has(d)?e[d]-1-y[d]:y[d];let p=t.offset;for(let d=0;d<n;d++)p+=f[d]*t.strides[d];let m=t.data[p];i[l]=m;for(let d=n-1;d>=0&&(y[d]++,!(y[d]<e[d]));d--)y[d]=0}return D.fromData(i,[...e],o)}function he(t,r=1,e=[0,1]){let n=t.shape,o=n.length,a=t.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(r=(r%4+4)%4,r===0)return t.copy();let i=U(a);if(!i)throw new Error(`Cannot rotate array with dtype ${a}`);let c=[...n];(r===1||r===3)&&([c[u],c[s]]=[c[s],c[u]]);let f=c.reduce((g,h)=>g*h,1),y=new i(f),l=P(c),p=w(a),m=new Array(o).fill(0),d=new Array(o);for(let g=0;g<t.size;g++){for(let N=0;N<o;N++)d[N]=m[N];let h,A;r===1?(h=n[s]-1-m[s],A=m[u]):r===2?(h=n[u]-1-m[u],A=n[s]-1-m[s],d[u]=h,d[s]=A):(h=m[s],A=n[u]-1-m[u]),r!==2&&(d[u]=h,d[s]=A);let b=0;for(let N=0;N<o;N++)b+=d[N]*l[N];let S=t.iget(g);y[b]=S;for(let N=o-1;N>=0&&(m[N]++,!(m[N]<n[N]));N--)m[N]=0}return D.fromData(y,c,a)}function be(t,r,e){let n=t.shape,o=n.length,a=t.dtype,u=t.size;if(e===void 0){let m=Array.isArray(r)?r.reduce((b,S)=>b+S,0):r,d=Tr(t),g=U(a);if(!g)throw new Error(`Cannot roll array with dtype ${a}`);let h=new g(u),A=w(a);for(let b=0;b<u;b++){let S=((b-m)%u+u)%u,N=d.iget(S);h[b]=N}return D.fromData(h,[...n],a)}let s=Array.isArray(r)?r:[r],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(m=>{let d=m<0?o+m:m;if(d<0||d>=o)throw new Error(`axis ${m} is out of bounds for array of dimension ${o}`);return d}),f=U(a);if(!f)throw new Error(`Cannot roll array with dtype ${a}`);let y=new f(u),l=w(a),p=new Array(o).fill(0);for(let m=0;m<u;m++){let d=[...p];for(let A=0;A<c.length;A++){let b=c[A],S=n[b],N=s[A];d[b]=((d[b]-N)%S+S)%S}let g=t.offset;for(let A=0;A<o;A++)g+=d[A]*t.strides[A];let h=t.data[g];y[m]=h;for(let A=o-1;A>=0&&(p[A]++,!(p[A]<n[A]));A--)p[A]=0}return D.fromData(y,[...n],a)}function Se(t,r,e=0){let n=t.ndim,o=r<0?n+r:r;if(o<0||o>=n)throw new Error(`axis ${r} 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(t.data,Array.from(t.shape),t.dtype,Array.from(t.strides),t.offset):st(t,o,a)}function De(t,r){if(t.ndim<3)throw new Error("dsplit only works on arrays of 3 or more dimensions");return fr(t,r,2)}function Ne(t){if(t.length===0)throw new Error("need at least one array to stack");let r=t.map(e=>e.ndim===1?q(e,[e.shape[0],1]):e);return it(r)}function we(t,r){let e=t.dtype,n=r.reduce((i,c)=>i*c,1),o=t.size,a=U(e);if(!a)throw new Error(`Cannot resize array with dtype ${e}`);let u=new a(n),s=w(e);for(let i=0;i<n;i++){let c=i%o,f=t.iget(c);u[i]=f}return D.fromData(u,r,e)}function xe(t){return t.map(r=>r.ndim===0?q(r,[1]):r)}function Ie(t){return t.map(r=>r.ndim===0?q(r,[1,1]):r.ndim===1?q(r,[1,r.shape[0]]):r)}function ze(t){return t.map(r=>r.ndim===0?q(r,[1,1,1]):r.ndim===1?q(r,[1,r.shape[0],1]):r.ndim===2?q(r,[r.shape[0],r.shape[1],1]):r)}function si(t,r,e,n,o,a,u,s,i,c,f,y,l,p){if(y===0)for(let h=0;h<n*o;h++)l[h]=0;else if(y!==1)for(let h=0;h<n*o;h++)l[h]=(l[h]??0)*y;let m=t==="row-major",d=r==="transpose",g=e==="transpose";if(m&&!d&&!g)for(let h=0;h<n;h++)for(let A=0;A<o;A++){let b=0;for(let S=0;S<a;S++)b+=(s[h*i+S]??0)*(c[S*f+A]??0);l[h*p+A]=(l[h*p+A]??0)+u*b}else if(m&&d&&!g)for(let h=0;h<n;h++)for(let A=0;A<o;A++){let b=0;for(let S=0;S<a;S++)b+=(s[S*i+h]??0)*(c[S*f+A]??0);l[h*p+A]=(l[h*p+A]??0)+u*b}else if(m&&!d&&g)for(let h=0;h<n;h++)for(let A=0;A<o;A++){let b=0;for(let S=0;S<a;S++)b+=(s[h*i+S]??0)*(c[A*f+S]??0);l[h*p+A]=(l[h*p+A]??0)+u*b}else if(m&&d&&g)for(let h=0;h<n;h++)for(let A=0;A<o;A++){let b=0;for(let S=0;S<a;S++)b+=(s[S*i+h]??0)*(c[A*f+S]??0);l[h*p+A]=(l[h*p+A]??0)+u*b}else if(!m&&!d&&!g)for(let h=0;h<n;h++)for(let A=0;A<o;A++){let b=0;for(let S=0;S<a;S++)b+=(s[S*i+h]??0)*(c[A*f+S]??0);l[A*p+h]=(l[A*p+h]??0)+u*b}else if(!m&&d&&!g)for(let h=0;h<n;h++)for(let A=0;A<o;A++){let b=0;for(let S=0;S<a;S++)b+=(s[h*i+S]??0)*(c[A*f+S]??0);l[A*p+h]=(l[A*p+h]??0)+u*b}else if(!m&&!d&&g)for(let h=0;h<n;h++)for(let A=0;A<o;A++){let b=0;for(let S=0;S<a;S++)b+=(s[S*i+h]??0)*(c[S*f+A]??0);l[A*p+h]=(l[A*p+h]??0)+u*b}else for(let h=0;h<n;h++)for(let A=0;A<o;A++){let b=0;for(let S=0;S<a;S++)b+=(s[h*i+S]??0)*(c[S*f+A]??0);l[A*p+h]=(l[A*p+h]??0)+u*b}}function ct(t,r){let e=t.ndim,n=r.ndim;if(e===0||n===0){let o=e===0?t.get():null,a=n===0?r.get():null;if(e===0&&n===0)return typeof o=="bigint"&&typeof a=="bigint"?o*a:Number(o)*Number(a);if(e===0){let u=v(t.dtype,r.dtype),s=D.zeros([...r.shape],u);for(let i=0;i<r.size;i++){let c=r.data[i+r.offset];typeof o=="bigint"&&typeof c=="bigint"?s.data[i]=o*c:s.data[i]=Number(o)*Number(c)}return s}else{let u=v(t.dtype,r.dtype),s=D.zeros([...t.shape],u);for(let i=0;i<t.size;i++){let c=t.data[i+t.offset];typeof c=="bigint"&&typeof a=="bigint"?s.data[i]=c*a:s.data[i]=Number(c)*Number(a)}return s}}if(e===1&&n===1){if(t.shape[0]!==r.shape[0])throw new Error(`dot: incompatible shapes (${t.shape[0]},) and (${r.shape[0]},)`);let o=t.shape[0],a=0;for(let u=0;u<o;u++){let s=t.get(u),i=r.get(u);typeof s=="bigint"&&typeof i=="bigint"?a=Number(a)+Number(s*i):a+=Number(s)*Number(i)}return a}if(e===2&&n===2)return K(t,r);if(e===2&&n===1){let[o,a]=t.shape,u=r.shape[0];if(a!==u)throw new Error(`dot: incompatible shapes (${o},${a}) and (${u},)`);let s=v(t.dtype,r.dtype),i=D.zeros([o],s);for(let c=0;c<o;c++){let f=0;for(let y=0;y<a;y++){let l=t.get(c,y),p=r.get(y);typeof l=="bigint"&&typeof p=="bigint"?f=Number(f)+Number(l*p):f+=Number(l)*Number(p)}i.set([c],f)}return i}if(e===1&&n===2){let o=t.shape[0],[a,u]=r.shape;if(o!==a)throw new Error(`dot: incompatible shapes (${o},) and (${a},${u})`);let s=v(t.dtype,r.dtype),i=D.zeros([u],s);for(let c=0;c<u;c++){let f=0;for(let y=0;y<o;y++){let l=t.get(y),p=r.get(y,c);typeof l=="bigint"&&typeof p=="bigint"?f=Number(f)+Number(l*p):f+=Number(l)*Number(p)}i.set([c],f)}return i}if(e>2&&n===1){let o=t.shape[e-1],a=r.shape[0];if(o!==a)throw new Error(`dot: incompatible shapes ${JSON.stringify(t.shape)} and (${a},)`);let u=[...t.shape.slice(0,-1)],s=v(t.dtype,r.dtype),i=D.zeros(u,s),c=u.reduce((f,y)=>f*y,1);for(let f=0;f<c;f++){let y=0,l=f,p=[];for(let m=u.length-1;m>=0;m--)p[m]=l%u[m],l=Math.floor(l/u[m]);for(let m=0;m<o;m++){let d=[...p,m],g=t.get(...d),h=r.get(m);typeof g=="bigint"&&typeof h=="bigint"?y=Number(y)+Number(g*h):y+=Number(g)*Number(h)}i.set(p,y)}return i}if(e===1&&n>2){let o=t.shape[0],a=1,u=r.shape[a];if(o!==u)throw new Error(`dot: incompatible shapes (${o},) and ${JSON.stringify(r.shape)}`);let s=[...r.shape.slice(0,a),...r.shape.slice(a+1)],i=v(t.dtype,r.dtype),c=D.zeros(s,i),f=s.reduce((y,l)=>y*l,1);for(let y=0;y<f;y++){let l=y,p=[];for(let h=s.length-1;h>=0;h--)p[h]=l%s[h],l=Math.floor(l/s[h]);let m=p.slice(0,a),d=p.slice(a),g=0;for(let h=0;h<o;h++){let A=t.get(h),b=[...m,h,...d],S=r.get(...b);typeof A=="bigint"&&typeof S=="bigint"?g=Number(g)+Number(A*S):g+=Number(A)*Number(S)}c.set(p,g)}return c}if(e>=2&&n>=2&&!(e===2&&n===2)){let o=t.shape[e-1],a=r.shape[n-2];if(o!==a)throw new Error(`dot: incompatible shapes ${JSON.stringify(t.shape)} and ${JSON.stringify(r.shape)}`);let u=[...t.shape.slice(0,-1),...r.shape.slice(0,-2),r.shape[n-1]],s=v(t.dtype,r.dtype),i=D.zeros(u,s),c=t.shape.slice(0,-1).reduce((p,m)=>p*m,1),f=r.shape.slice(0,-2).reduce((p,m)=>p*m,1),y=r.shape[n-1],l=o;for(let p=0;p<c;p++)for(let m=0;m<f;m++)for(let d=0;d<y;d++){let g=0;for(let A=0;A<l;A++){let b=p*l+A,S=t.data[b+t.offset],N=m*l*y+A*y+d,x=r.data[N+r.offset];typeof S=="bigint"&&typeof x=="bigint"?g=Number(g)+Number(S*x):g+=Number(S)*Number(x)}let h=p*f*y+m*y+d;i.data[h]=g}return i}throw new Error(`dot: unexpected combination of dimensions ${e}D \xB7 ${n}D`)}function K(t,r){if(t.ndim!==2||r.ndim!==2)throw new Error("matmul requires 2D arrays");let[e=0,n=0]=t.shape,[o=0,a=0]=r.shape;if(n!==o)throw new Error(`matmul shape mismatch: (${e},${n}) @ (${o},${a})`);let u=v(t.dtype,r.dtype),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=t.dtype==="float64"?t.data:Float64Array.from(Array.from(t.data).map(Number)),c=r.dtype==="float64"?r.data:Float64Array.from(Array.from(r.data).map(Number));t.offset>0&&(i=i.subarray(t.offset)),r.offset>0&&(c=c.subarray(r.offset));let[f=0,y=0]=t.strides,[l=0,p=0]=r.strides,m=y>f,d=p>l,g=m?"transpose":"no-transpose",h=d?"transpose":"no-transpose",A,b;m?A=y:A=f,d?b=p:b=l;let S=D.zeros([e,a],"float64");return si("row-major",g,h,e,a,n,1,i,A,c,b,0,S.data,a),S}function Ee(t){if(t.ndim!==2)throw new Error(`trace requires 2D array, got ${t.ndim}D`);let[r=0,e=0]=t.shape,n=Math.min(r,e),o=0;for(let a=0;a<n;a++){let u=t.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 Be(t,r){return cr(t,r)}function Ue(t,r){let e=t.ndim,n=r.ndim,o=t.shape[e-1],a=r.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 ct(t,r);let u=[...t.shape.slice(0,-1),...r.shape.slice(0,-1)],s=v(t.dtype,r.dtype),i=D.zeros(u,s),c=e===1?1:t.shape.slice(0,-1).reduce((l,p)=>l*p,1),f=n===1?1:r.shape.slice(0,-1).reduce((l,p)=>l*p,1),y=o;for(let l=0;l<c;l++)for(let p=0;p<f;p++){let m=0;for(let g=0;g<y;g++){let h=e===1?g:l*y+g,A=n===1?g:p*y+g,b=t.data[h+t.offset],S=r.data[A+r.offset];typeof b=="bigint"&&typeof S=="bigint"?m=Number(m)+Number(b*S):m+=Number(b)*Number(S)}if(u.length===0)return m;let d=c===1?p:l*f+p;i.data[d]=m}return i}function ft(t,r){let e=t.ndim===1?t:ur(t),n=r.ndim===1?r:ur(r),o=e.size,a=n.size,u=v(t.dtype,r.dtype),s=D.zeros([o,a],u);for(let i=0;i<o;i++)for(let c=0;c<a;c++){let f=e.get(i),y=n.get(c),l;typeof f=="bigint"&&typeof y=="bigint"?l=f*y:l=Number(f)*Number(y),s.set([i,c],l)}return s}function Te(t,r,e){let n,o;if(typeof e=="number"){let l=e;if(l<0)throw new Error("tensordot: axes must be non-negative");if(l>t.ndim||l>r.ndim)throw new Error("tensordot: axes exceeds array dimensions");n=Array.from({length:l},(p,m)=>t.ndim-l+m),o=Array.from({length:l},(p,m)=>m)}else if([n,o]=e,n.length!==o.length)throw new Error("tensordot: axes lists must have same length");for(let l=0;l<n.length;l++){let p=n[l],m=o[l];if(p<0||p>=t.ndim||m<0||m>=r.ndim)throw new Error("tensordot: axis out of bounds");if(t.shape[p]!==r.shape[m])throw new Error(`tensordot: shape mismatch on axes ${p} and ${m}: ${t.shape[p]} != ${r.shape[m]}`)}let a=[],u=[];for(let l=0;l<t.ndim;l++)n.includes(l)||a.push(l);for(let l=0;l<r.ndim;l++)o.includes(l)||u.push(l);let s=[...a.map(l=>t.shape[l]),...u.map(l=>r.shape[l])];if(s.length===0){let l=0,p=n.map(m=>t.shape[m]).reduce((m,d)=>m*d,1);for(let m=0;m<p;m++){let d=m,g=new Array(n.length);for(let N=n.length-1;N>=0;N--){let x=n[N];g[N]=d%t.shape[x],d=Math.floor(d/t.shape[x])}let h=new Array(t.ndim),A=new Array(r.ndim);for(let N=0;N<n.length;N++)h[n[N]]=g[N];for(let N=0;N<o.length;N++)A[o[N]]=g[N];let b=t.get(...h),S=r.get(...A);typeof b=="bigint"&&typeof S=="bigint"?l=Number(l)+Number(b*S):l+=Number(b)*Number(S)}return l}let i=v(t.dtype,r.dtype),c=D.zeros(s,i),f=s.reduce((l,p)=>l*p,1),y=n.map(l=>t.shape[l]).reduce((l,p)=>l*p,1);for(let l=0;l<f;l++){let p=l,m=[];for(let A=s.length-1;A>=0;A--)m[A]=p%s[A],p=Math.floor(p/s[A]);let d=m.slice(0,a.length),g=m.slice(a.length),h=0;for(let A=0;A<y;A++){p=A;let b=[];for(let z=n.length-1;z>=0;z--){let B=n[z];b[z]=p%t.shape[B],p=Math.floor(p/t.shape[B])}let S=new Array(t.ndim),N=new Array(r.ndim);for(let z=0;z<a.length;z++)S[a[z]]=d[z];for(let z=0;z<u.length;z++)N[u[z]]=g[z];for(let z=0;z<n.length;z++)S[n[z]]=b[z],N[o[z]]=b[z];let x=t.get(...S),I=r.get(...N);typeof x=="bigint"&&typeof I=="bigint"?h=Number(h)+Number(x*I):h+=Number(x)*Number(I)}c.set(m,h)}return c}function Oe(t,r=0,e=0,n=1){let o=t.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],f;r>=0?f=Math.max(0,Math.min(i,c-r)):f=Math.max(0,Math.min(i+r,c));let y=[];for(let d=0;d<a;d++)d!==u&&d!==s&&y.push(o[d]);y.push(f);let l=D.zeros(y,t.dtype),p=o.filter((d,g)=>g!==u&&g!==s),m=p.reduce((d,g)=>d*g,1);for(let d=0;d<m;d++){let g=d,h=[];for(let A=p.length-1;A>=0;A--)h.unshift(g%p[A]),g=Math.floor(g/p[A]);for(let A=0;A<f;A++){let b=new Array(a),S=0;for(let I=0;I<a;I++)I===u?b[I]=r>=0?A:A-r:I===s?b[I]=r>=0?A+r:A:b[I]=h[S++];let N=[...h,A],x=t.get(...b);l.set(N,x)}}return l}function $e(t,...r){let e=t.indexOf("->"),n,o;e===-1?(n=t,o=ii(n)):(n=t.slice(0,e),o=t.slice(e+2));let a=n.split(",").map(d=>d.trim());if(a.length!==r.length)throw new Error(`einsum: expected ${a.length} operands, got ${r.length}`);let u=new Map;for(let d=0;d<r.length;d++){let g=a[d],h=r[d];if(g.length!==h.ndim)throw new Error(`einsum: operand ${d} has ${h.ndim} dimensions but subscript '${g}' has ${g.length} indices`);for(let A=0;A<g.length;A++){let b=g[A],S=h.shape[A];if(u.has(b)){if(u.get(b)!==S)throw new Error(`einsum: size mismatch for index '${b}': ${u.get(b)} vs ${S}`)}else u.set(b,S)}}for(let d of o)if(!u.has(d))throw new Error(`einsum: output subscript contains unknown index '${d}'`);let s=new Set(o),i=new Set;for(let d of a)for(let g of d)i.add(g);let c=[];for(let d of i)s.has(d)||c.push(d);if(r.length===2&&a.length===2){let[d,g]=a,[h,A]=r;if(d.length===2&&g.length===2&&o.length===2&&h.ndim===2&&A.ndim===2){let[b,S]=[d[0],d[1]],[N,x]=[g[0],g[1]],[I,z]=[o[0],o[1]];if(b===I&&x===z&&S===N&&c.length===1&&c[0]===S||b===I&&x===z&&S===N&&c.length===1&&c[0]===S)return K(h,A);if(S===I&&x===z&&b===N&&c.length===1&&c[0]===b){let B=Be(h);return K(B,A)}if(b===I&&N===z&&S===x&&c.length===1&&c[0]===S){let B=Be(A);return K(h,B)}}if(d.length===1&&g.length===1&&d===g&&o.length===0&&h.ndim===1&&A.ndim===1)return ut(r,a,c,u);if(d&&g&&d.length===1&&g.length===1&&o.length===2&&o===d+g&&c.length===0&&h.ndim===1&&A.ndim===1)return ft(h,A)}if(r.length===1&&a[0].length===2&&o.length===0){let d=a[0];if(d[0]===d[1]&&r[0].ndim===2)return ut(r,a,c,u)}let f=Array.from(o).map(d=>u.get(d));if(f.length===0)return ut(r,a,c,u);let y=r[0].dtype;for(let d=1;d<r.length;d++)y=v(y,r[d].dtype);let l=D.zeros(f,y),p=f.reduce((d,g)=>d*g,1),m=1;for(let d of c)m*=u.get(d);for(let d=0;d<p;d++){let g=ui(d,f),h=new Map;for(let b=0;b<o.length;b++)h.set(o[b],g[b]);let A=0;for(let b=0;b<m;b++){let S=b;for(let x=c.length-1;x>=0;x--){let I=c[x],z=u.get(I);h.set(I,S%z),S=Math.floor(S/z)}let N=1;for(let x=0;x<r.length;x++){let I=r[x],z=a[x],B=[];for(let T of z)B.push(h.get(T));let E=I.get(...B);N*=Number(E)}A+=N}l.set(g,A)}return l}function ii(t){let r=new Map,e=t.split(",");for(let o of e)for(let a of o.trim())r.set(a,(r.get(a)||0)+1);let n=[];for(let[o,a]of r)a===1&&n.push(o);return n.sort().join("")}function ut(t,r,e,n){let o=1;for(let u of e)o*=n.get(u);let a=0;for(let u=0;u<o;u++){let s=new Map,i=u;for(let f=e.length-1;f>=0;f--){let y=e[f],l=n.get(y);s.set(y,i%l),i=Math.floor(i/l)}let c=1;for(let f=0;f<t.length;f++){let y=t[f],l=r[f],p=[];for(let d of l)p.push(s.get(d));let m=y.get(...p);c*=Number(m)}a+=c}return a}function ui(t,r){let e=new Array(r.length),n=t;for(let o=r.length-1;o>=0;o--)e[o]=n%r[o],n=Math.floor(n/r[o]);return e}function ve(t,r){let e=t.shape,n=r.shape,o=e.length,a=n.length,u=v(t.dtype,r.dtype),s=Math.max(o,a),i=new Array(s),c=new Array(s).fill(1),f=new Array(s).fill(1);for(let m=0;m<o;m++)c[s-o+m]=e[m];for(let m=0;m<a;m++)f[s-a+m]=n[m];for(let m=0;m<s;m++)i[m]=c[m]*f[m];let y=D.zeros(i,u),l=e.reduce((m,d)=>m*d,1),p=n.reduce((m,d)=>m*d,1);for(let m=0;m<l;m++){let d=m,g=new Array(o);for(let b=o-1;b>=0;b--)g[b]=d%e[b],d=Math.floor(d/e[b]);let h=new Array(s).fill(0);for(let b=0;b<o;b++)h[s-o+b]=g[b];let A=t.get(...g);for(let b=0;b<p;b++){let S=b,N=new Array(a);for(let E=a-1;E>=0;E--)N[E]=S%n[E],S=Math.floor(S/n[E]);let x=new Array(s).fill(0);for(let E=0;E<a;E++)x[s-a+E]=N[E];let I=r.get(...N),z=new Array(s);for(let E=0;E<s;E++)z[E]=h[E]*f[E]+x[E];let B=typeof A=="bigint"||typeof I=="bigint"?BigInt(Number(A))*BigInt(Number(I)):Number(A)*Number(I);y.set(z,B)}}return y}function Me(t){return k(t,Math.sqrt,!1)}function Ce(t,r){return typeof r=="number"?fi(t,r):V(t,r,Math.pow,"power")}function fi(t,r){let e=t.dtype,n=Array.from(t.shape),o=t.data,a=t.size,i=e!=="float32"&&e!=="float64"&&(r<0||!Number.isInteger(r))?"float64":e,c=D.zeros(n,i),f=c.data;if(w(e))if(w(i)&&Number.isInteger(r)&&r>=0){let y=o,l=f;for(let p=0;p<a;p++)l[p]=y[p]**BigInt(r)}else for(let y=0;y<a;y++)f[y]=Math.pow(Number(o[y]),r);else for(let y=0;y<a;y++)f[y]=Math.pow(Number(o[y]),r);return c}function ke(t){return k(t,Math.sin,!1)}function Ve(t){return k(t,Math.cos,!1)}function Fe(t){return k(t,Math.tan,!1)}function Pe(t){return k(t,Math.asin,!1)}function Re(t){return k(t,Math.acos,!1)}function Le(t){return k(t,Math.atan,!1)}function qe(t,r){return typeof r=="number"?pi(t,r):yi(t,r)}function yi(t,r){let e=Array.from(t.shape),n=t.size,o=t.dtype,a=r.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",s=D.zeros(e,u),i=s.data;for(let c=0;c<n;c++){let f=(w(o),Number(t.data[c])),y=(w(a),Number(r.data[c]));i[c]=Math.atan2(f,y)}return s}function pi(t,r){let e=t.dtype,n=Array.from(t.shape),o=t.data,a=t.size,u=e==="float32"?"float32":"float64",s=D.zeros(n,u),i=s.data;if(w(e))for(let c=0;c<a;c++)i[c]=Math.atan2(Number(o[c]),r);else for(let c=0;c<a;c++)i[c]=Math.atan2(Number(o[c]),r);return s}function je(t,r){return typeof r=="number"?di(t,r):mi(t,r)}function mi(t,r){let e=Array.from(t.shape),n=t.size,o=t.dtype,a=r.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",s=D.zeros(e,u),i=s.data;for(let c=0;c<n;c++){let f=(w(o),Number(t.data[c])),y=(w(a),Number(r.data[c]));i[c]=Math.hypot(f,y)}return s}function di(t,r){let e=t.dtype,n=Array.from(t.shape),o=t.data,a=t.size,u=e==="float32"?"float32":"float64",s=D.zeros(n,u),i=s.data;if(w(e))for(let c=0;c<a;c++)i[c]=Math.hypot(Number(o[c]),r);else for(let c=0;c<a;c++)i[c]=Math.hypot(Number(o[c]),r);return s}function Ze(t){let r=180/Math.PI;return k(t,e=>e*r,!1)}function We(t){let r=Math.PI/180;return k(t,e=>e*r,!1)}function He(t){return k(t,Math.sinh,!1)}function Ye(t){return k(t,Math.cosh,!1)}function Ge(t){return k(t,Math.tanh,!1)}function Je(t){return k(t,Math.asinh,!1)}function Xe(t){return k(t,Math.acosh,!1)}function Qe(t){return k(t,Math.atanh,!1)}function lt(t,r){let e=t.shape,n=e.length,o=r.length;if(o<n)throw new Error("input operand has more dimensions than allowed by the axis remapping");let a=J([Array.from(e),r]);if(a===null)throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${r.join(",")})`);for(let u=0;u<o;u++)if(a[u]!==r[u])throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${r.join(",")})`);return Z(t,r)}function Ke(t){if(t.length===0)return[];if(t.length===1)return[t[0]];let r=t.map(n=>Array.from(n.shape)),e=J(r);if(e===null)throw new Error(`operands could not be broadcast together with shapes ${r.map(n=>`(${n.join(",")})`).join(" ")}`);return t.map(n=>Z(n,e))}function rn(t,r,e){let n=t.shape,o=n.length,a=t.dtype;if(e===void 0){let m=t.size;for(let A of r){let b=A<0?m+A:A;if(b<0||b>=m)throw new Error(`index ${A} is out of bounds for axis 0 with size ${m}`)}let d=r.length,g=U(a);if(!g)throw new Error(`Cannot take from array with dtype ${a}`);let h=new g(d);for(let A=0;A<d;A++){let b=r[A];b<0&&(b=m+b);let S=t.iget(b);w(a),h[A]=S}return D.fromData(h,[d],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 m of r){let d=m<0?s+m:m;if(d<0||d>=s)throw new Error(`index ${m} is out of bounds for axis ${u} with size ${s}`)}let i=Array.from(n);i[u]=r.length;let c=i.reduce((m,d)=>m*d,1),f=U(a);if(!f)throw new Error(`Cannot take from array with dtype ${a}`);let y=new f(c),l=P(i),p=new Array(o).fill(0);for(let m=0;m<c;m++){let d=[...p],g=p[u],h=r[g];h<0&&(h=s+h),d[u]=h;let A=t.get(...d),b=0;for(let S=0;S<o;S++)b+=p[S]*l[S];w(a),y[b]=A;for(let S=o-1;S>=0&&(p[S]++,!(p[S]<i[S]));S--)p[S]=0}return D.fromData(y,i,a)}function tn(t,r,e){let n=t.size,o=t.dtype,a;if(typeof e=="number"||typeof e=="bigint")a=new Array(r.length).fill(e);else{a=[];for(let u=0;u<e.size;u++)a.push(e.iget(u));if(a.length===1)a=new Array(r.length).fill(a[0]);else if(a.length!==r.length){let u=[...a];a=[];for(let s=0;s<r.length;s++)a.push(u[s%u.length])}}for(let u=0;u<r.length;u++){let s=r[u];if(s<0&&(s=n+s),s<0||s>=n)throw new Error(`index ${r[u]} is out of bounds for axis 0 with size ${n}`);let i=a[u];w(o)?typeof i!="bigint"&&(i=BigInt(Math.round(Number(i)))):typeof i=="bigint"&&(i=Number(i)),t.iset(s,i)}}function en(t,r){if(r.length===0)throw new Error("choices cannot be empty");let e=t.shape,n=r.length,o=r[0].dtype,a=r.map(l=>Array.from(l.shape));a.unshift(Array.from(e));let u=J(a);if(u===null)throw new Error("operands could not be broadcast together");let s=Z(t,u),i=r.map(l=>Z(l,u)),c=u.reduce((l,p)=>l*p,1),f=U(o);if(!f)throw new Error(`Cannot choose with dtype ${o}`);let y=new f(c);for(let l=0;l<c;l++){let p=Number(s.iget(l));if(p<0||p>=n)throw new Error(`index ${p} is out of bounds for axis 0 with size ${n}`);let m=i[p].iget(l);w(o),y[l]=m}return D.fromData(y,u,o)}function nn(t,r,e=!1){if(t.ndim!==r.ndim)return!1;for(let o=0;o<t.ndim;o++)if(t.shape[o]!==r.shape[o])return!1;let n=t.size;for(let o=0;o<n;o++){let a=t.iget(o),u=r.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 on(t,r,e){let n=t.shape,o=n.length,a=t.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=r.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 d=0;d<o;d++)if(d!==u&&s[d]!==n[d]&&s[d]!==1&&n[d]!==1)throw new Error(`index ${s[d]} is out of bounds for size ${n[d]} in dimension ${d}`);let i=Array.from(s),c=i.reduce((d,g)=>d*g,1),f=U(a);if(!f)throw new Error(`Cannot take_along_axis with dtype ${a}`);let y=new f(c),l=P(n),p=P(s),m=n[u];for(let d=0;d<c;d++){let g=new Array(o),h=d;for(let I=o-1;I>=0;I--)g[I]=h%i[I],h=Math.floor(h/i[I]);let A=0;for(let I=0;I<o;I++){let z=s[I]===1?0:g[I];A+=z*p[I]}let b=Number(r.iget(A));if(b<0&&(b=m+b),b<0||b>=m)throw new Error(`index ${b} is out of bounds for axis ${u} with size ${m}`);let S=[...g];S[u]=b;let N=0;for(let I=0;I<o;I++){let z=n[I]===1?0:S[I];N+=z*l[I]}let x=t.iget(N);w(a),y[d]=x}return D.fromData(y,i,a)}function an(t,r,e,n){let o=t.shape,a=o.length,u=t.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=r.shape,c=e.shape;if(i.length!==a||c.length!==a)throw new Error("indices, arr, and values must have same ndim");let f=o[s],y=P(o),l=P(i),p=P(c),m=i.reduce((d,g)=>d*g,1);for(let d=0;d<m;d++){let g=new Array(a),h=d;for(let z=a-1;z>=0;z--)g[z]=h%i[z],h=Math.floor(h/i[z]);let A=0;for(let z=0;z<a;z++)A+=g[z]*l[z];let b=Number(r.iget(A));if(b<0&&(b=f+b),b<0||b>=f)throw new Error(`index ${b} is out of bounds for axis ${s} with size ${f}`);let S=0;for(let z=0;z<a;z++){let B=c[z]===1?0:g[z];S+=B*p[z]}let N=e.iget(S),x=[...g];x[s]=b;let I=0;for(let z=0;z<a;z++)I+=x[z]*y[z];w(u)?typeof N!="bigint"&&(N=BigInt(Math.round(Number(N)))):typeof N=="bigint"&&(N=Number(N)),t.iset(I,N)}}function sn(t,r,e){let n=t.size,o=t.dtype,a;if(typeof e=="number"||typeof e=="bigint")a=[e];else{a=[];for(let s=0;s<e.size;s++)a.push(e.iget(s))}let u=0;for(let s=0;s<n;s++)if(r.iget(s)){let c=a[u%a.length];w(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),t.iset(s,c),u++}}function un(t,r,e){let n=r.shape,o=n.length,a=r.dtype,u=r.data,s=w(a);if(e===void 0){let A=0,b=Math.min(t.size,r.size);for(let I=0;I<b;I++)t.iget(I)&&A++;let S=U(a);if(!S)throw new Error(`Cannot compress with dtype ${a}`);let N=new S(A),x=0;for(let I=0;I<b;I++)t.iget(I)&&(N[x]=u[I],x++);return D.fromData(N,[A],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],f=Math.min(t.size,c),y=[];for(let A=0;A<f;A++)t.iget(A)&&y.push(A);let l=y.length,p=[...n];p[i]=l;let m=p.reduce((A,b)=>A*b,1),d=U(a);if(!d)throw new Error(`Cannot compress with dtype ${a}`);let g=new d(m),h=P(n);if(i===0){let A=h[0],b=n.slice(1).reduce((N,x)=>N*x,1),S=0;for(let N=0;N<l;N++){let I=y[N]*A;if(s){let z=u,B=g;for(let E=0;E<b;E++)B[S++]=z[I+E]}else{let z=u,B=g;for(let E=0;E<b;E++)B[S++]=z[I+E]}}}else{let A=n.slice(0,i).reduce((N,x)=>N*x,1),b=n.slice(i+1).reduce((N,x)=>N*x,1),S=0;for(let N=0;N<A;N++)for(let x=0;x<l;x++){let I=y[x],z=0,B=N;for(let E=i-1;E>=0;E--){let T=B%n[E];B=Math.floor(B/n[E]),z+=T*h[E]}if(z+=I*h[i],s){let E=u,T=g;for(let C=0;C<b;C++)T[S++]=E[z+C]}else{let E=u,T=g;for(let C=0;C<b;C++)T[S++]=E[z+C]}}}return D.fromData(g,p,a)}function cn(t,r,e=0){if(t.length!==r.length)throw new Error("condlist and choicelist must have same length");if(t.length===0)throw new Error("condlist and choicelist cannot be empty");let n=[...t.map(l=>Array.from(l.shape)),...r.map(l=>Array.from(l.shape))],o=J(n);if(o===null)throw new Error("condlist and choicelist arrays could not be broadcast together");let a=r[0].dtype,u=o.reduce((l,p)=>l*p,1),s=U(a);if(!s)throw new Error(`Cannot select with dtype ${a}`);let i=e;w(a)?i=typeof e=="bigint"?e:BigInt(e):i=typeof e=="bigint"?Number(e):e;let c=new s(u);for(let l=0;l<u;l++)w(a),c[l]=i;let f=t.map(l=>Z(l,o)),y=r.map(l=>Z(l,o));for(let l=0;l<u;l++)for(let p=0;p<t.length;p++)if(f[p].iget(l)){let m=y[p].iget(l);w(a),c[l]=m;break}return D.fromData(c,o,a)}function fn(t,r,e){let n=t.size,o=t.dtype,a=[];for(let s=0;s<e.size;s++)a.push(e.iget(s));if(a.length===0)return;let u=0;for(let s=0;s<n;s++)if(r.iget(s)){let c=a[u%a.length];w(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),t.iset(s,c),u++}}function yt(t,r=2){if(r<1)throw new Error("ndim must be at least 1");let e=new Int32Array(t);for(let o=0;o<t;o++)e[o]=o;let n=[];for(let o=0;o<r;o++)n.push(D.fromData(new Int32Array(e),[t],"int32"));return n}function ln(t){let r=t.shape,e=r.length;if(e<2)throw new Error("array must be at least 2-D");let n=r[0];for(let o=1;o<e;o++)if(r[o]!==n)throw new Error("All dimensions of input must be equal");return yt(n,e)}function pt(t,r=0,e){let n=e??t,o=[],a=[];for(let u=0;u<t;u++)for(let s=0;s<=Math.min(u+r,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 yn(t,r=0){let e=t.shape;if(e.length!==2)throw new Error("array must be 2-D");return pt(e[0],r,e[1])}function mt(t,r=0,e){let n=e??t,o=[],a=[];for(let u=0;u<t;u++)for(let s=Math.max(u+r,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 pn(t,r=0){let e=t.shape;if(e.length!==2)throw new Error("array must be 2-D");return mt(e[0],r,e[1])}function mn(t,r,e=0){let n=r(t,e),o=n.shape;if(o.length!==2||o[0]!==t||o[1]!==t)throw new Error("mask_func must return n x n array");let a=[],u=[];for(let s=0;s<t;s++)for(let i=0;i<t;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 dn(t,r="int32"){let e=t.length,n=[e,...t],o=n.reduce((i,c)=>i*c,1),a=U(r);if(!a)throw new Error(`Cannot create indices with dtype ${r}`);let u=new a(o),s=t.reduce((i,c)=>i*c,1);for(let i=0;i<e;i++){let c=i*s;for(let f=0;f<s;f++){let y=new Array(e),l=f;for(let m=e-1;m>=0;m--)y[m]=l%t[m],l=Math.floor(l/t[m]);let p=y[i];r==="int64"?u[c+f]=BigInt(p):u[c+f]=p}}return D.fromData(u,n,r)}function gn(...t){let r=t.length,e=[];for(let n=0;n<r;n++){let o=t[n],a=o.size,u=o.dtype,s=new Array(r).fill(1);s[n]=a;let i=U(u);if(!i)throw new Error(`Cannot create ix_ with dtype ${u}`);let c=new i(a);for(let f=0;f<a;f++){let y=o.iget(f);w(u),c[f]=y}e.push(D.fromData(c,s,u))}return e}function An(t,r,e="raise"){if(t.length!==r.length)throw new Error("multi_index length must equal dims length");if(t.length===0)throw new Error("multi_index cannot be empty");let n=t[0].size,o=r.length,a=new Int32Array(n),u=new Array(o),s=1;for(let i=o-1;i>=0;i--)u[i]=s,s*=r[i];for(let i=0;i<n;i++){let c=0;for(let f=0;f<o;f++){let y=Number(t[f].iget(i)),l=r[f];if(e==="wrap")y=(y%l+l)%l;else if(e==="clip")y=Math.max(0,Math.min(y,l-1));else if(y<0||y>=l)throw new Error(`index ${y} is out of bounds for axis ${f} with size ${l}`);c+=y*u[f]}a[i]=c}return D.fromData(a,[n],"int32")}function hn(t,r,e="C"){let n=r.length,o,a;if(typeof t=="number")o=[t],a=[];else{o=[];for(let f=0;f<t.size;f++)o.push(Number(t.iget(f)));a=Array.from(t.shape)}let u=o.length,s=r.reduce((f,y)=>f*y,1),i=new Array(n);if(e==="C"){let f=1;for(let y=n-1;y>=0;y--)i[y]=f,f*=r[y]}else{let f=1;for(let y=0;y<n;y++)i[y]=f,f*=r[y]}let c=[];for(let f=0;f<n;f++){let y=new Int32Array(u);c.push(D.fromData(y,a.length?a:[1],"int32"))}for(let f=0;f<u;f++){let y=o[f];if(y<0||y>=s)throw new Error(`index ${y} is out of bounds for array with size ${s}`);if(e==="C")for(let l=0;l<n;l++){let p=Math.floor(y/i[l]);y=y%i[l],c[l].data[f]=p%r[l]}else for(let l=n-1;l>=0;l--){let p=Math.floor(y/i[l]);y=y%i[l],c[l].data[f]=p%r[l]}}return typeof t=="number"?c.map(f=>{let y=f.iget(0);return D.fromData(new Int32Array([Number(y)]),[],"int32")}):c}function j(t,r){if(!vt(t)&&t!=="bool")throw new TypeError(`ufunc '${r}' not supported for the input types, and the inputs could not be safely coerced to any supported types`)}function lr(t,r){return t.isCContiguous&&r.isCContiguous&&t.shape.length===r.shape.length&&t.shape.every((e,n)=>e===r.shape[n])}function Dn(t,r){return j(t.dtype,"bitwise_and"),typeof r=="number"?Si(t,r):(j(r.dtype,"bitwise_and"),lr(t,r)?bi(t,r):V(t,r,(e,n)=>e&n,"bitwise_and"))}function bi(t,r){let e=v(t.dtype,r.dtype),n=D.zeros(Array.from(t.shape),e),o=t.size,a=t.data,u=r.data,s=n.data;if(w(e)){let i=s;if(!w(t.dtype)||!w(r.dtype))for(let f=0;f<o;f++){let y=typeof a[f]=="bigint"?a[f]:BigInt(Math.round(Number(a[f]))),l=typeof u[f]=="bigint"?u[f]:BigInt(Math.round(Number(u[f])));i[f]=y&l}else{let f=a,y=u;for(let l=0;l<o;l++)i[l]=f[l]&y[l]}}else for(let i=0;i<o;i++)s[i]=a[i]&u[i];return n}function Si(t,r){let e=t.dtype,n=Array.from(t.shape),o=t.data,a=t.size,u=D.zeros(n,e),s=u.data;if(w(e)){let i=o,c=s,f=BigInt(Math.round(r));for(let y=0;y<a;y++)c[y]=i[y]&f}else for(let i=0;i<a;i++)s[i]=o[i]&r;return u}function Nn(t,r){return j(t.dtype,"bitwise_or"),typeof r=="number"?Ni(t,r):(j(r.dtype,"bitwise_or"),lr(t,r)?Di(t,r):V(t,r,(e,n)=>e|n,"bitwise_or"))}function Di(t,r){let e=v(t.dtype,r.dtype),n=D.zeros(Array.from(t.shape),e),o=t.size,a=t.data,u=r.data,s=n.data;if(w(e)){let i=s;if(!w(t.dtype)||!w(r.dtype))for(let f=0;f<o;f++){let y=typeof a[f]=="bigint"?a[f]:BigInt(Math.round(Number(a[f]))),l=typeof u[f]=="bigint"?u[f]:BigInt(Math.round(Number(u[f])));i[f]=y|l}else{let f=a,y=u;for(let l=0;l<o;l++)i[l]=f[l]|y[l]}}else for(let i=0;i<o;i++)s[i]=a[i]|u[i];return n}function Ni(t,r){let e=t.dtype,n=Array.from(t.shape),o=t.data,a=t.size,u=D.zeros(n,e),s=u.data;if(w(e)){let i=o,c=s,f=BigInt(Math.round(r));for(let y=0;y<a;y++)c[y]=i[y]|f}else for(let i=0;i<a;i++)s[i]=o[i]|r;return u}function wn(t,r){return j(t.dtype,"bitwise_xor"),typeof r=="number"?xi(t,r):(j(r.dtype,"bitwise_xor"),lr(t,r)?wi(t,r):V(t,r,(e,n)=>e^n,"bitwise_xor"))}function wi(t,r){let e=v(t.dtype,r.dtype),n=D.zeros(Array.from(t.shape),e),o=t.size,a=t.data,u=r.data,s=n.data;if(w(e)){let i=s;if(!w(t.dtype)||!w(r.dtype))for(let f=0;f<o;f++){let y=typeof a[f]=="bigint"?a[f]:BigInt(Math.round(Number(a[f]))),l=typeof u[f]=="bigint"?u[f]:BigInt(Math.round(Number(u[f])));i[f]=y^l}else{let f=a,y=u;for(let l=0;l<o;l++)i[l]=f[l]^y[l]}}else for(let i=0;i<o;i++)s[i]=a[i]^u[i];return n}function xi(t,r){let e=t.dtype,n=Array.from(t.shape),o=t.data,a=t.size,u=D.zeros(n,e),s=u.data;if(w(e)){let i=o,c=s,f=BigInt(Math.round(r));for(let y=0;y<a;y++)c[y]=i[y]^f}else for(let i=0;i<a;i++)s[i]=o[i]^r;return u}function dt(t){j(t.dtype,"bitwise_not");let r=t.dtype,e=Array.from(t.shape),n=t.data,o=t.size,a=D.zeros(e,r),u=a.data;if(w(r)){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 xn(t){return dt(t)}function In(t,r){if(j(t.dtype,"left_shift"),typeof r=="number")return bn(t,r);if(j(r.dtype,"left_shift"),r.size===1||r.ndim===1&&r.shape[0]===1){let e=w(r.dtype)?Number(r.data[0]):r.data[0];return bn(t,e)}return lr(t,r)?Ii(t,r):V(t,r,(e,n)=>e<<n,"left_shift")}function Ii(t,r){let e=v(t.dtype,r.dtype),n=D.zeros(Array.from(t.shape),e),o=t.size,a=t.data,u=r.data,s=n.data;if(w(e)){let i=s;for(let c=0;c<o;c++){let f=typeof a[c]=="bigint"?a[c]:BigInt(Math.round(Number(a[c]))),y=typeof u[c]=="bigint"?u[c]:BigInt(Math.round(Number(u[c])));i[c]=f<<y}}else for(let i=0;i<o;i++)s[i]=a[i]<<u[i];return n}function bn(t,r){let e=t.dtype,n=Array.from(t.shape),o=t.data,a=t.size,u=D.zeros(n,e),s=u.data;if(w(e)){let i=o,c=s,f=BigInt(Math.round(r));for(let y=0;y<a;y++)c[y]=i[y]<<f}else for(let i=0;i<a;i++)s[i]=o[i]<<r;return u}function zn(t,r){if(j(t.dtype,"right_shift"),typeof r=="number")return Sn(t,r);if(j(r.dtype,"right_shift"),r.size===1||r.ndim===1&&r.shape[0]===1){let e=w(r.dtype)?Number(r.data[0]):r.data[0];return Sn(t,e)}return lr(t,r)?zi(t,r):V(t,r,(e,n)=>e>>n,"right_shift")}function zi(t,r){let e=v(t.dtype,r.dtype),n=D.zeros(Array.from(t.shape),e),o=t.size,a=t.data,u=r.data,s=n.data;if(w(e)){let i=s;for(let c=0;c<o;c++){let f=typeof a[c]=="bigint"?a[c]:BigInt(Math.round(Number(a[c]))),y=typeof u[c]=="bigint"?u[c]:BigInt(Math.round(Number(u[c])));i[c]=f>>y}}else for(let i=0;i<o;i++)s[i]=a[i]>>u[i];return n}function Sn(t,r){let e=t.dtype,n=Array.from(t.shape),o=t.data,a=t.size,u=D.zeros(n,e),s=u.data;if(w(e)){let i=o,c=s,f=BigInt(Math.round(r));for(let y=0;y<a;y++)c[y]=i[y]>>f}else for(let i=0;i<a;i++)s[i]=o[i]>>r;return u}function _n(t,r=-1,e="big"){let n=Array.from(t.shape),o=n.length;if(r<0&&(r=o+r),r<0||r>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let a=n[r],u=Math.ceil(a/8),s=[...n];s[r]=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 A=0;A<8;A++){let b=g*8+A;if(b<a){let S=Number(t.data[b])!==0?1:0;e==="big"?h|=S<<7-A:h|=S<<A}}c[g]=h}return i}let f=n.slice(0,r),y=n.slice(r+1),l=f.reduce((g,h)=>g*h,1),p=y.reduce((g,h)=>g*h,1),m=Or(n),d=Or(s);for(let g=0;g<l;g++)for(let h=0;h<p;h++)for(let A=0;A<u;A++){let b=0;for(let I=0;I<8;I++){let z=A*8+I;if(z<a){let B=0,E=g;for(let F=0;F<r;F++){let Y=F<r-1?f.slice(F+1).reduce((Fr,Pr)=>Fr*Pr,1):1,X=Math.floor(E/Y);E%=Y,B+=X*m[F]}B+=z*m[r];let T=h;for(let F=r+1;F<o;F++){let Y=F<o-1?y.slice(F-r).reduce((Fr,Pr)=>Fr*Pr,1):1,X=Math.floor(T/Y);T%=Y,B+=X*m[F]}let C=Number(t.data[B])!==0?1:0;e==="big"?b|=C<<7-I:b|=C<<I}}let S=0,N=g;for(let I=0;I<r;I++){let z=I<r-1?f.slice(I+1).reduce((E,T)=>E*T,1):1,B=Math.floor(N/z);N%=z,S+=B*d[I]}S+=A*d[r];let x=h;for(let I=r+1;I<o;I++){let z=I<o-1?y.slice(I-r).reduce((E,T)=>E*T,1):1,B=Math.floor(x/z);x%=z,S+=B*d[I]}c[S]=b}return i}function Bn(t,r=-1,e=-1,n="big"){if(t.dtype!=="uint8")throw new TypeError("Expected an input array of unsigned byte data type");let o=Array.from(t.shape),a=o.length;if(r<0&&(r=a+r),r<0||r>=a)throw new Error(`axis ${r} is out of bounds for array of dimension ${a}`);let u=o[r],s=u*8;e>=0&&(s=e);let i=[...o];i[r]=s;let c=D.zeros(i,"uint8"),f=c.data;if(a===1){for(let h=0;h<u;h++){let A=Number(t.data[h]);for(let b=0;b<8;b++){let S=h*8+b;if(S>=s)break;n==="big"?f[S]=A>>7-b&1:f[S]=A>>b&1}}return c}let y=o.slice(0,r),l=o.slice(r+1),p=y.reduce((h,A)=>h*A,1),m=l.reduce((h,A)=>h*A,1),d=Or(o),g=Or(i);for(let h=0;h<p;h++)for(let A=0;A<m;A++)for(let b=0;b<u;b++){let S=0,N=h;for(let z=0;z<r;z++){let B=z<r-1?y.slice(z+1).reduce((T,C)=>T*C,1):1,E=Math.floor(N/B);N%=B,S+=E*d[z]}S+=b*d[r];let x=A;for(let z=r+1;z<a;z++){let B=z<a-1?l.slice(z-r).reduce((T,C)=>T*C,1):1,E=Math.floor(x/B);x%=B,S+=E*d[z]}let I=Number(t.data[S]);for(let z=0;z<8;z++){let B=b*8+z;if(B>=s)break;let E=0;N=h;for(let T=0;T<r;T++){let C=T<r-1?y.slice(T+1).reduce((Y,X)=>Y*X,1):1,F=Math.floor(N/C);N%=C,E+=F*g[T]}E+=B*g[r],x=A;for(let T=r+1;T<a;T++){let C=T<a-1?l.slice(T-r).reduce((Y,X)=>Y*X,1):1,F=Math.floor(x/C);x%=C,E+=F*g[T]}n==="big"?f[E]=I>>7-z&1:f[E]=I>>z&1}}return c}function Or(t){let r=t.length,e=new Array(r),n=1;for(let o=r-1;o>=0;o--)e[o]=n,n*=t[o];return e}var _=class t{constructor(r,e){this._storage=r,this._base=e}get storage(){return this._storage}static _fromStorage(r,e){return new t(r,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(r){if(r.length!==this.ndim)throw new Error(`Index has ${r.length} dimensions, but array has ${this.ndim} dimensions`);let e=r.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(r,e){if(r.length!==this.ndim)throw new Error(`Index has ${r.length} dimensions, but array has ${this.ndim} dimensions`);let n=r.map((u,s)=>{let i=u;if(i<0&&(i=this.shape[s]+i),i<0||i>=this.shape[s])throw new Error(`Index ${u} is out of bounds for axis ${s} with size ${this.shape[s]}`);return i}),o=this.dtype,a;w(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 t(this._storage.copy())}astype(r,e=!0){let n=this.dtype;if(n===r&&!e)return this;if(n===r&&e)return this.copy();let o=Array.from(this.shape),a=this.size,u=U(r);if(!u)throw new Error(`Cannot convert to dtype ${r}`);let s=new u(a),i=this.data;if(w(n)&&!w(r)){let f=i;if(r==="bool")for(let y=0;y<a;y++)s[y]=f[y]!==BigInt(0)?1:0;else for(let y=0;y<a;y++)s[y]=Number(f[y])}else if(!w(n)&&w(r)){let f=i;for(let y=0;y<a;y++)s[y]=BigInt(Math.round(Number(f[y])))}else if(r==="bool"){let f=i;for(let y=0;y<a;y++)s[y]=f[y]!==0?1:0}else if(n==="bool"&&!w(r)){let f=i;for(let y=0;y<a;y++)s[y]=f[y]}else if(!w(n)&&!w(r)){let f=i;for(let y=0;y<a;y++)s[y]=f[y]}else{let f=i;for(let y=0;y<a;y++)s[y]=f[y]}let c=D.fromData(s,o,r);return new t(c)}add(r){let e=typeof r=="number"?r:r._storage,n=Ct(this._storage,e);return t._fromStorage(n)}subtract(r){let e=typeof r=="number"?r:r._storage,n=kt(this._storage,e);return t._fromStorage(n)}multiply(r){let e=typeof r=="number"?r:r._storage,n=Vt(this._storage,e);return t._fromStorage(n)}divide(r){let e=typeof r=="number"?r:r._storage,n=Ft(this._storage,e);return t._fromStorage(n)}mod(r){let e=typeof r=="number"?r:r._storage,n=hr(this._storage,e);return t._fromStorage(n)}floor_divide(r){let e=typeof r=="number"?r:r._storage,n=qr(this._storage,e);return t._fromStorage(n)}positive(){let r=qt(this._storage);return t._fromStorage(r)}reciprocal(){let r=jt(this._storage);return t._fromStorage(r)}sqrt(){let r=Me(this._storage);return t._fromStorage(r)}power(r){let e=typeof r=="number"?r:r._storage,n=Ce(this._storage,e);return t._fromStorage(n)}absolute(){let r=Pt(this._storage);return t._fromStorage(r)}negative(){let r=Rt(this._storage);return t._fromStorage(r)}sign(){let r=Lt(this._storage);return t._fromStorage(r)}sin(){let r=ke(this._storage);return t._fromStorage(r)}cos(){let r=Ve(this._storage);return t._fromStorage(r)}tan(){let r=Fe(this._storage);return t._fromStorage(r)}arcsin(){let r=Pe(this._storage);return t._fromStorage(r)}arccos(){let r=Re(this._storage);return t._fromStorage(r)}arctan(){let r=Le(this._storage);return t._fromStorage(r)}arctan2(r){let e=typeof r=="number"?r:r._storage,n=qe(this._storage,e);return t._fromStorage(n)}hypot(r){let e=typeof r=="number"?r:r._storage,n=je(this._storage,e);return t._fromStorage(n)}degrees(){let r=Ze(this._storage);return t._fromStorage(r)}radians(){let r=We(this._storage);return t._fromStorage(r)}sinh(){let r=He(this._storage);return t._fromStorage(r)}cosh(){let r=Ye(this._storage);return t._fromStorage(r)}tanh(){let r=Ge(this._storage);return t._fromStorage(r)}arcsinh(){let r=Je(this._storage);return t._fromStorage(r)}arccosh(){let r=Xe(this._storage);return t._fromStorage(r)}arctanh(){let r=Qe(this._storage);return t._fromStorage(r)}greater(r){let e=typeof r=="number"?r:r._storage,n=Xt(this._storage,e);return t._fromStorage(n)}greater_equal(r){let e=typeof r=="number"?r:r._storage,n=Qt(this._storage,e);return t._fromStorage(n)}less(r){let e=typeof r=="number"?r:r._storage,n=Kt(this._storage,e);return t._fromStorage(n)}less_equal(r){let e=typeof r=="number"?r:r._storage,n=re(this._storage,e);return t._fromStorage(n)}equal(r){let e=typeof r=="number"?r:r._storage,n=te(this._storage,e);return t._fromStorage(n)}not_equal(r){let e=typeof r=="number"?r:r._storage,n=ee(this._storage,e);return t._fromStorage(n)}isclose(r,e=1e-5,n=1e-8){let o=typeof r=="number"?r:r._storage,a=Zr(this._storage,o,e,n);return t._fromStorage(a)}allclose(r,e=1e-5,n=1e-8){let o=typeof r=="number"?r:r._storage;return ne(this._storage,o,e,n)}bitwise_and(r){let e=typeof r=="number"?r:r._storage,n=Dn(this._storage,e);return t._fromStorage(n)}bitwise_or(r){let e=typeof r=="number"?r:r._storage,n=Nn(this._storage,e);return t._fromStorage(n)}bitwise_xor(r){let e=typeof r=="number"?r:r._storage,n=wn(this._storage,e);return t._fromStorage(n)}bitwise_not(){let r=dt(this._storage);return t._fromStorage(r)}invert(){let r=xn(this._storage);return t._fromStorage(r)}left_shift(r){let e=typeof r=="number"?r:r._storage,n=In(this._storage,e);return t._fromStorage(n)}right_shift(r){let e=typeof r=="number"?r:r._storage,n=zn(this._storage,e);return t._fromStorage(n)}sum(r,e=!1){let n=ar(this._storage,r,e);return typeof n=="number"?n:t._fromStorage(n)}mean(r,e=!1){let n=br(this._storage,r,e);return typeof n=="number"?n:t._fromStorage(n)}max(r,e=!1){let n=Sr(this._storage,r,e);return typeof n=="number"?n:t._fromStorage(n)}min(r,e=!1){let n=Dr(this._storage,r,e);return typeof n=="number"?n:t._fromStorage(n)}prod(r,e=!1){let n=Wr(this._storage,r,e);return typeof n=="number"?n:t._fromStorage(n)}argmin(r){let e=Hr(this._storage,r);return typeof e=="number"?e:t._fromStorage(e)}argmax(r){let e=Yr(this._storage,r);return typeof e=="number"?e:t._fromStorage(e)}var(r,e=0,n=!1){let o=Gr(this._storage,r,e,n);return typeof o=="number"?o:t._fromStorage(o)}std(r,e=0,n=!1){let o=ae(this._storage,r,e,n);return typeof o=="number"?o:t._fromStorage(o)}all(r,e=!1){let n=Jr(this._storage,r,e);return typeof n=="boolean"?n:t._fromStorage(n)}any(r,e=!1){let n=Xr(this._storage,r,e);return typeof n=="boolean"?n:t._fromStorage(n)}cumsum(r){return t._fromStorage(Qr(this._storage,r))}cumprod(r){return t._fromStorage(Kr(this._storage,r))}ptp(r,e=!1){let n=rt(this._storage,r,e);return typeof n=="number"?n:t._fromStorage(n)}median(r,e=!1){let n=tt(this._storage,r,e);return typeof n=="number"?n:t._fromStorage(n)}percentile(r,e,n=!1){let o=et(this._storage,r,e,n);return typeof o=="number"?o:t._fromStorage(o)}quantile(r,e,n=!1){let o=er(this._storage,r,e,n);return typeof o=="number"?o:t._fromStorage(o)}average(r,e){let n=Nr(this._storage,e,r?.storage);return typeof n=="number"?n:t._fromStorage(n)}nansum(r,e=!1){let n=wr(this._storage,r,e);return typeof n=="number"?n:t._fromStorage(n)}nanprod(r,e=!1){let n=xr(this._storage,r,e);return typeof n=="number"?n:t._fromStorage(n)}nanmean(r,e=!1){let n=Ir(this._storage,r,e);return typeof n=="number"?n:t._fromStorage(n)}nanvar(r,e=0,n=!1){let o=sr(this._storage,r,e,n);return typeof o=="number"?o:t._fromStorage(o)}nanstd(r,e=0,n=!1){let o=nt(this._storage,r,e,n);return typeof o=="number"?o:t._fromStorage(o)}nanmin(r,e=!1){let n=zr(this._storage,r,e);return typeof n=="number"?n:t._fromStorage(n)}nanmax(r,e=!1){let n=_r(this._storage,r,e);return typeof n=="number"?n:t._fromStorage(n)}nanargmin(r){let e=Br(this._storage,r);return typeof e=="number"?e:t._fromStorage(e)}nanargmax(r){let e=Er(this._storage,r);return typeof e=="number"?e:t._fromStorage(e)}nancumsum(r){return t._fromStorage(ot(this._storage,r))}nancumprod(r){return t._fromStorage(at(this._storage,r))}nanmedian(r,e=!1){let n=Ur(this._storage,r,e);return typeof n=="number"?n:t._fromStorage(n)}reshape(...r){let e=r.length===1&&Array.isArray(r[0])?r[0]:r,n=q(this._storage,e),a=n.data===this.data?this._base??this:void 0;return t._fromStorage(n,a)}flatten(){let r=Tr(this._storage);return t._fromStorage(r)}ravel(){let r=ur(this._storage),n=r.data===this.data?this._base??this:void 0;return t._fromStorage(r,n)}transpose(r){let e=cr(this._storage,r),n=this._base??this;return t._fromStorage(e,n)}squeeze(r){let e=se(this._storage,r),n=this._base??this;return t._fromStorage(e,n)}expand_dims(r){let e=ir(this._storage,r),n=this._base??this;return t._fromStorage(e,n)}swapaxes(r,e){let n=ie(this._storage,r,e),o=this._base??this;return t._fromStorage(n,o)}moveaxis(r,e){let n=st(this._storage,r,e),o=this._base??this;return t._fromStorage(n,o)}repeat(r,e){let n=ge(this._storage,r,e);return t._fromStorage(n)}take(r,e){let n=rn(this._storage,r,e);return t._fromStorage(n)}put(r,e){let n=e instanceof t?e._storage:e;tn(this._storage,r,n)}matmul(r){let e=K(this._storage,r._storage);return t._fromStorage(e)}dot(r){let e=ct(this._storage,r._storage);return typeof e=="number"||typeof e=="bigint"?e:t._fromStorage(e)}trace(){return Ee(this._storage)}inner(r){let e=Ue(this._storage,r._storage);return typeof e=="number"||typeof e=="bigint"?e:t._fromStorage(e)}outer(r){let e=ft(this._storage,r._storage);return t._fromStorage(e)}tensordot(r,e=2){let n=Te(this._storage,r._storage,e);return typeof n=="number"||typeof n=="bigint"?n:t._fromStorage(n)}cbrt(){let r=Zt(this._storage);return t._fromStorage(r)}fabs(){let r=Wt(this._storage);return t._fromStorage(r)}divmod(r){let e=typeof r=="number"?r:r._storage,[n,o]=Ht(this._storage,e);return[t._fromStorage(n),t._fromStorage(o)]}square(){let r=Yt(this._storage);return t._fromStorage(r)}remainder(r){let e=typeof r=="number"?r:r._storage,n=Gt(this._storage,e);return t._fromStorage(n)}heaviside(r){let e=typeof r=="number"?r:r._storage,n=Jt(this._storage,e);return t._fromStorage(n)}slice(...r){if(r.length===0)return this;if(r.length>this.ndim)throw new Error(`Too many indices for array: array is ${this.ndim}-dimensional, but ${r.length} were indexed`);let e=r.map((i,c)=>{let f=Ut(i);return Tt(f,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],f=this._storage.strides[i];if(a+=c.start*f,!c.isIndex){let y;c.step>0?y=Math.max(0,Math.ceil((c.stop-c.start)/c.step)):y=Math.max(0,Math.ceil((c.start-c.stop)/Math.abs(c.step))),n.push(y),o.push(f*c.step)}}let u=D.fromData(this._storage.data,n,this._storage.dtype,o,a),s=this._base??this;return new t(u,s)}row(r){if(this.ndim<2)throw new Error("row() requires at least 2 dimensions");return this.slice(String(r),":")}col(r){if(this.ndim<2)throw new Error("col() requires at least 2 dimensions");return this.slice(":",String(r))}rows(r,e){if(this.ndim<2)throw new Error("rows() requires at least 2 dimensions");return this.slice(`${r}:${e}`,":")}cols(r,e){if(this.ndim<2)throw new Error("cols() requires at least 2 dimensions");return this.slice(":",`${r}:${e}`)}toString(){return`NDArray(shape=${JSON.stringify(this.shape)}, dtype=${this.dtype})`}toArray(){if(this.ndim===0)return this._storage.iget(0);let r=this.shape,e=r.length,n=(o,a)=>{if(a===e)return this._storage.get(...o);let u=[];for(let s=0;s<r[a];s++)o[a]=s,u.push(n(o,a+1));return u};return n(new Array(e),0)}};function W(t,r=M){let e=D.zeros(t,r);return new _(e)}function gt(t,r=M){let e=D.ones(t,r);return new _(e)}function Bi(t){let r=[],e=t;for(;Array.isArray(e);)r.push(e.length),e=e[0];return r}function En(t){return typeof t=="bigint"?!0:Array.isArray(t)?t.some(r=>En(r)):!1}function Ei(t){let r=[];function e(n){Array.isArray(n)?n.forEach(o=>e(o)):r.push(n)}return e(t),r}function R(t,r){if(t instanceof _)return!r||t.dtype===r?t.copy():t.astype(r);let e=En(t),n=Bi(t),o=n.reduce((f,y)=>f*y,1),a=r;a||(e?a="int64":a=M);let u=U(a);if(!u)throw new Error(`Cannot create array with dtype ${a}`);let s=new u(o),i=Ei(t);if(w(a)){let f=s;for(let y=0;y<o;y++){let l=i[y];f[y]=typeof l=="bigint"?l:BigInt(Math.round(Number(l)))}}else if(a==="bool"){let f=s;for(let y=0;y<o;y++)f[y]=i[y]?1:0}else{let f=s;for(let y=0;y<o;y++){let l=i[y];f[y]=Number(l)}}let c=D.fromData(s,n,a);return new _(c)}function Un(t,r,e=1,n=M){let o=t,a=r;if(r===void 0&&(o=0,a=t),a===void 0)throw new Error("stop is required");let u=Math.max(0,Math.ceil((a-o)/e)),s=U(n);if(!s)throw new Error(`Cannot create arange array with dtype ${n}`);let i=new s(u);if(w(n))for(let f=0;f<u;f++)i[f]=BigInt(Math.round(o+f*e));else if(n==="bool")for(let f=0;f<u;f++)i[f]=o+f*e!==0?1:0;else for(let f=0;f<u;f++)i[f]=o+f*e;let c=D.fromData(i,[u],n);return new _(c)}function Tn(t,r,e=50,n=M){if(e<0)throw new Error("num must be non-negative");if(e===0)return R([],n);if(e===1)return R([t],n);let o=U(n);if(!o)throw new Error(`Cannot create linspace array with dtype ${n}`);let a=new o(e),u=(r-t)/(e-1);if(w(n))for(let i=0;i<e;i++)a[i]=BigInt(Math.round(t+i*u));else if(n==="bool")for(let i=0;i<e;i++)a[i]=t+i*u!==0?1:0;else for(let i=0;i<e;i++)a[i]=t+i*u;let s=D.fromData(a,[e],n);return new _(s)}function On(t,r,e=50,n=10,o=M){if(e<0)throw new Error("num must be non-negative");if(e===0)return R([],o);if(e===1)return R([Math.pow(n,t)],o);let a=U(o);if(!a)throw new Error(`Cannot create logspace array with dtype ${o}`);let u=new a(e),s=(r-t)/(e-1);if(w(o))for(let c=0;c<e;c++){let f=t+c*s;u[c]=BigInt(Math.round(Math.pow(n,f)))}else if(o==="bool")for(let c=0;c<e;c++){let f=t+c*s;u[c]=Math.pow(n,f)!==0?1:0}else for(let c=0;c<e;c++){let f=t+c*s;u[c]=Math.pow(n,f)}let i=D.fromData(u,[e],o);return new _(i)}function $n(t,r,e=50,n=M){if(e<0)throw new Error("num must be non-negative");if(t===0||r===0)throw new Error("Geometric sequence cannot include zero");if(e===0)return R([],n);if(e===1)return R([t],n);let o=Math.sign(t),a=Math.sign(r);if(o!==a)throw new Error("Geometric sequence cannot contain both positive and negative values");let u=U(n);if(!u)throw new Error(`Cannot create geomspace array with dtype ${n}`);let s=new u(e),i=Math.log(Math.abs(t)),f=(Math.log(Math.abs(r))-i)/(e-1);if(w(n))for(let l=0;l<e;l++){let p=o*Math.exp(i+l*f);s[l]=BigInt(Math.round(p))}else if(n==="bool")for(let l=0;l<e;l++){let p=o*Math.exp(i+l*f);s[l]=p!==0?1:0}else for(let l=0;l<e;l++){let p=o*Math.exp(i+l*f);s[l]=p}let y=D.fromData(s,[e],n);return new _(y)}function At(t,r,e=0,n=M){let o=r??t,a=W([t,o],n),u=a.data;if(w(n)){let s=u;for(let i=0;i<t;i++){let c=i+e;c>=0&&c<o&&(s[i*o+c]=BigInt(1))}}else{let s=u;for(let i=0;i<t;i++){let c=i+e;c>=0&&c<o&&(s[i*o+c]=1)}}return a}function ht(t,r=M){return W(t,r)}function bt(t,r,e){let n=e;n||(typeof r=="bigint"?n="int64":typeof r=="boolean"?n="bool":Number.isInteger(r)?n="int32":n=M);let o=U(n);if(!o)throw new Error(`Cannot create full array with dtype ${n}`);let a=t.reduce((i,c)=>i*c,1),u=new o(a);if(w(n)){let i=typeof r=="bigint"?r:BigInt(Math.round(Number(r)));u.fill(i)}else n==="bool"?u.fill(r?1:0):u.fill(Number(r));let s=D.fromData(u,t,n);return new _(s)}function vn(t,r=M){return At(t,t,0,r)}function yr(t,r){return t instanceof _?!r||t.dtype===r?t:t.astype(r):R(t,r)}function Mn(t){return t.copy()}function Cn(t,r){return W(Array.from(t.shape),r??t.dtype)}function kn(t,r){return gt(Array.from(t.shape),r??t.dtype)}function Vn(t,r){return ht(Array.from(t.shape),r??t.dtype)}function Fn(t,r,e){return bt(Array.from(t.shape),r,e??t.dtype)}function Pn(t,r){return yr(t,r)}function Rn(t,r){let e=yr(t,r);return e.flags.C_CONTIGUOUS?e:e.copy()}function Ln(t,r){return yr(t,r).copy()}function St(t,r=0){if(t.ndim===1){let e=t.size,n=e+Math.abs(r),o=W([n,n],t.dtype);for(let a=0;a<e;a++){let u=r>=0?a:a-r,s=r>=0?a+r:a;o.set([u,s],t.get([a]))}return o}else if(t.ndim===2){let[e,n]=t.shape,o,a,u;if(r>=0?(o=0,a=r,u=Math.min(e,n-r)):(o=-r,a=0,u=Math.min(e+r,n)),u<=0)return W([0],t.dtype);let s=U(t.dtype),i=new s(u);for(let f=0;f<u;f++){let y=t.get([o+f,a+f]);w(t.dtype)?i[f]=typeof y=="bigint"?y:BigInt(y):i[f]=y}let c=D.fromData(i,[u],t.dtype);return new _(c)}else throw new Error("Input must be 1-D or 2-D")}function qn(t,r=0){let e=t.flatten();return St(e,r)}function jn(t,r,e=M){let n=r.reduce((c,f)=>c*f,1),o=U(e);if(!o)throw new Error(`Cannot create array with dtype ${e}`);let a=new o(n),u=r.length,s=new Array(u).fill(0);for(let c=0;c<n;c++){let f=t(...s);w(e)?a[c]=typeof f=="bigint"?f:BigInt(Number(f)):e==="bool"?a[c]=f?1:0:a[c]=Number(f);for(let y=u-1;y>=0&&(s[y]++,!(s[y]<r[y]));y--)s[y]=0}let i=D.fromData(a,r,e);return new _(i)}function Zn(...t){let r=[],e="xy";for(let s of t)s instanceof _?r.push(s):typeof s=="object"&&"indexing"in s&&(e=s.indexing||"xy");if(r.length===0)return[];if(r.length===1)return[r[0].copy()];let n=r.map(s=>s.size);e==="xy"&&r.length>=2&&(r=[r[1],r[0],...r.slice(2)],[n[0],n[1]]=[n[1],n[0]]);let o=n,a=o.length,u=[];for(let s=0;s<r.length;s++){let i=r[s],c=i.size,f=new Array(a).fill(1);f[s]=c;let y=i.reshape(...f),l=lt(y.storage,o),p=_._fromStorage(l.copy());u.push(p)}return e==="xy"&&u.length>=2&&([u[0],u[1]]=[u[1],u[0]]),u}function Wn(t,r,e=0,n=M){let o=r??t,a=W([t,o],n);for(let u=0;u<t;u++)for(let s=0;s<=u+e&&s<o;s++)s>=0&&a.set([u,s],1);return a}function Hn(t,r=0){if(t.ndim<2)throw new Error("Input must have at least 2 dimensions");let e=t.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+r){let f=[],y=s;for(let l=n.length-3;l>=0;l--)f.unshift(y%n[l]),y=Math.floor(y/n[l]);f.push(i,c),e.set(f,0)}return e}function Yn(t,r=0){if(t.ndim<2)throw new Error("Input must have at least 2 dimensions");let e=t.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+r){let f=[],y=s;for(let l=n.length-3;l>=0;l--)f.unshift(y%n[l]),y=Math.floor(y/n[l]);f.push(i,c),e.set(f,0)}return e}function Gn(t,r,e=!1){if(t.ndim!==1)throw new Error("Input must be 1-D");let n=t.size,o=r??n;if(o<0)throw new Error("N must be non-negative");let a=W([n,o],t.dtype);for(let u=0;u<n;u++){let s=t.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 Jn(t,r=M,e=-1,n=0){let o,a=n;t instanceof ArrayBuffer?o=t:(o=t.buffer,a+=t.byteOffset);let u=Ui(r),s=o.byteLength-a,i=Math.floor(s/u),c=e<0?i:Math.min(e,i);if(c<=0)return R([],r);let f=U(r);if(!f)throw new Error(`Unsupported dtype: ${r}`);let y=new f(o,a,c),l=D.fromData(y,[c],r);return new _(l)}function Xn(t,r=M,e=-1){let n=[],o=0;for(let a of t){if(e>=0&&o>=e)break;n.push(a),o++}return R(n,r)}function Qn(t,r=M,e=-1){let n=[],o=0;for(let a of t){if(e>=0&&o>=e)break;n.push(a),o++}return R(n,r)}function Kn(t,r=M,e=-1,n=""){let o;n===""?o=t.trim().split(/\s+/):o=t.split(n);let a=[],u=0;for(let s of o){if(e>=0&&u>=e)break;let i=s.trim();i!==""&&(w(r)?a.push(BigInt(i)):a.push(parseFloat(i)),u++)}return R(a,r)}function Ui(t){switch(t){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 ro(t){return t.sqrt()}function to(t,r){return t.power(r)}function eo(t){return t.absolute()}function no(t){return t.negative()}function oo(t){return t.sign()}function ao(t,r){return t.mod(r)}function so(t,r){return t.floor_divide(r)}function io(t){return t.positive()}function uo(t){return t.reciprocal()}function co(t,r){return t.dot(r)}function fo(t){return t.trace()}function lo(t,r=0,e=0,n=1){let o=Oe(t.storage,r,e,n);return _._fromStorage(o)}function yo(t,r){let e=ve(t.storage,r.storage);return _._fromStorage(e)}function po(t,r){return t.transpose(r)}function mo(t,r){return t.inner(r)}function go(t,r){return t.outer(r)}function Ao(t,r,e=2){return t.tensordot(r,e)}function ho(t){return t.sin()}function bo(t){return t.cos()}function So(t){return t.tan()}function Do(t){return t.arcsin()}function No(t){return t.arccos()}function wo(t){return t.arctan()}function xo(t,r){return t.arctan2(r)}function Io(t,r){return t.hypot(r)}function zo(t){return t.degrees()}function _o(t){return t.radians()}function Bo(t){return t.radians()}function Eo(t){return t.degrees()}function Uo(t){return t.sinh()}function To(t){return t.cosh()}function Oo(t){return t.tanh()}function $o(t){return t.arcsinh()}function vo(t){return t.arccosh()}function Mo(t){return t.arctanh()}function Co(t,r,e){return t.swapaxes(r,e)}function ko(t,r,e){return t.moveaxis(r,e)}function rr(t,r=0){if(t.length===0)throw new Error("need at least one array to concatenate");let e=t.map(o=>o.storage),n=Q(e,r);return _._fromStorage(n)}function Vo(t,r=0){if(t.length===0)throw new Error("need at least one array to stack");let e=t.map(o=>o.storage),n=ue(e,r);return _._fromStorage(n)}function Dt(t){if(t.length===0)throw new Error("need at least one array to stack");let r=t.map(n=>n.storage),e=ce(r);return _._fromStorage(e)}function Fo(t){if(t.length===0)throw new Error("need at least one array to stack");let r=t.map(n=>n.storage),e=it(r);return _._fromStorage(e)}function Po(t){if(t.length===0)throw new Error("need at least one array to stack");let r=t.map(n=>n.storage),e=fe(r);return _._fromStorage(e)}function Ro(t,r,e=0){return le(t.storage,r,e).map(o=>_._fromStorage(o,t.base??t))}function Lo(t,r,e=0){return fr(t.storage,r,e).map(o=>_._fromStorage(o,t.base??t))}function qo(t,r){return pe(t.storage,r).map(n=>_._fromStorage(n,t.base??t))}function jo(t,r){return me(t.storage,r).map(n=>_._fromStorage(n,t.base??t))}function Zo(t,r){let e=de(t.storage,r);return _._fromStorage(e)}function Wo(t,r,e){return t.repeat(r,e)}function Ho(t){return t.ravel()}function Yo(t,r){return t.reshape(...r)}function Go(t,r){return t.squeeze(r)}function Jo(t,r){return t.expand_dims(r)}function $r(t,r){let e=Ae(t.storage,r);return _._fromStorage(e)}function Xo(t){if(t.ndim<2)throw new Error("Input must be at least 2-D");return $r(t,1)}function Qo(t){if(t.ndim<2)throw new Error("Input must be at least 2-D");return $r(t,0)}function Ko(t,r=1,e=[0,1]){let n=he(t.storage,r,e);return _._fromStorage(n)}function ra(t,r,e){let n=be(t.storage,r,e);return _._fromStorage(n)}function ta(t,r,e=0){let n=Se(t.storage,r,e);return _._fromStorage(n,t.base??t)}function ea(...t){let r=t.map(o=>o.storage),n=xe(r).map((o,a)=>o===r[a]?t[a]:_._fromStorage(o));return n.length===1?n[0]:n}function na(...t){let r=t.map(o=>o.storage),n=Ie(r).map((o,a)=>o===r[a]?t[a]:_._fromStorage(o));return n.length===1?n[0]:n}function oa(...t){let r=t.map(o=>o.storage),n=ze(r).map((o,a)=>o===r[a]?t[a]:_._fromStorage(o));return n.length===1?n[0]:n}function aa(t,r){return De(t.storage,r).map(n=>_._fromStorage(n,t.base??t))}function sa(t){if(t.length===0)throw new Error("need at least one array to stack");let r=t.map(n=>n.storage),e=Ne(r);return _._fromStorage(e)}function ia(t){return Dt(t)}function ua(t,r){let e=we(t.storage,r);return _._fromStorage(e)}function ca(t,r,e){let n=r instanceof _?r:R(r,t.dtype);if(e===void 0){let o=t.flatten(),a=n.flatten();return rr([o,a])}return rr([t,n],e)}function fa(t,r,e){let n=t.dtype;if(e===void 0){let p=t.flatten(),d=(Array.isArray(r)?r:[r]).map(S=>S<0?p.size+S:S),g=[];for(let S=0;S<p.size;S++)d.includes(S)||g.push(S);let h=U(n),A=new h(g.length);for(let S=0;S<g.length;S++){let N=p.get([g[S]]);w(n)?A[S]=typeof N=="bigint"?N:BigInt(N):A[S]=N}let b=D.fromData(A,[g.length],n);return new _(b)}let o=t.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(r)?r:[r],c=new Set(i.map(p=>p<0?s+p:p)),f=[],y=0;for(let p=0;p<=s;p++)(c.has(p)||p===s)&&(p>y&&f.push([y,p]),y=p+1);if(f.length===0){let p=[...o];return p[u]=0,W(p,n)}let l=[];for(let[p,m]of f){let d=o.map(()=>":");d[u]=`${p}:${m}`,l.push(t.slice(...d))}return rr(l,u)}function la(t,r,e,n){let o=e instanceof _?e:R(e,t.dtype);if(n===void 0){let y=t.flatten(),l=o.flatten(),p=r<0?y.size+r:r;if(p<0||p>y.size)throw new Error(`index ${r} is out of bounds for array of size ${y.size}`);let m=p>0?y.slice(`0:${p}`):null,d=p<y.size?y.slice(`${p}:`):null,g=[];return m&&g.push(m),g.push(l),d&&g.push(d),rr(g)}let a=t.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=r<0?i+r:r;if(c<0||c>i)throw new Error(`index ${r} is out of bounds for axis ${n} with size ${i}`);let f=[];if(c>0){let y=a.map(()=>":");y[s]=`0:${c}`,f.push(t.slice(...y))}if(f.push(o),c<i){let y=a.map(()=>":");y[s]=`${c}:`,f.push(t.slice(...y))}return rr(f,s)}function ya(t,r,e="constant",n=0){let o=t.shape,a=o.length,u=t.dtype,s;if(typeof r=="number"?s=o.map(()=>[r,r]):Array.isArray(r)&&typeof r[0]=="number"?s=o.map(()=>r):s=r,s.length!==a)throw new Error(`pad_width must have ${a} elements`);let i=o.map((d,g)=>d+s[g][0]+s[g][1]),c=i.reduce((d,g)=>d*g,1),f=U(u),y=new f(c),l=w(u);e==="constant"&&(l?y.fill(BigInt(n)):y.fill(n));let p=new Array(a).fill(0);for(let d=0;d<c;d++){let g=!0,h=[];for(let b=0;b<a;b++){let[S]=s[b],N=p[b]-S;if(N<0||N>=o[b]){g=!1;break}h.push(N)}let A;if(g)A=t.get(h);else if(e==="constant"){for(let b=a-1;b>=0&&(p[b]++,!(p[b]<i[b]));b--)p[b]=0;continue}else{let b=[];for(let S=0;S<a;S++){let[N]=s[S],x=p[S]-N,I=o[S];x<0?e==="edge"?x=0:e==="reflect"?(x=-x,x>=I&&(x=I-1)):e==="symmetric"?(x=-x-1,x>=I&&(x=I-1),x<0&&(x=0)):e==="wrap"&&(x=(x%I+I)%I):x>=I&&(e==="edge"?x=I-1:e==="reflect"?(x=2*I-x-2,x<0&&(x=0)):e==="symmetric"?(x=2*I-x-1,x<0&&(x=0)):e==="wrap"&&(x=x%I)),b.push(Math.max(0,Math.min(I-1,x)))}A=t.get(b)}l?y[d]=typeof A=="bigint"?A:BigInt(Number(A)):y[d]=Number(A);for(let b=a-1;b>=0&&(p[b]++,!(p[b]<i[b]));b--)p[b]=0}let m=D.fromData(y,i,u);return new _(m)}function pa(t,r){let e=lt(t.storage,r);return _._fromStorage(e,t.base??t)}function ma(...t){let r=t.map(n=>n.storage);return Ke(r).map((n,o)=>_._fromStorage(n,t[o].base??t[o]))}function da(...t){return jr(...t)}function ga(t,r,e){return t.take(r,e)}function Aa(t,r,e){t.put(r,e)}function ha(t,r){let e=r.map(o=>o.storage),n=en(t.storage,e);return _._fromStorage(n)}function ba(t,r,e=!1){return nn(t.storage,r.storage,e)}function Sa(t,r){return oe(t.storage,r.storage)}function Da(t,r){return _._fromStorage(Qr(t.storage,r))}function Na(t,r){return _._fromStorage(Kr(t.storage,r))}function wa(t,r,e=!1){let n=rt(t.storage,r,e);return typeof n=="number"?n:_._fromStorage(n)}function xa(t,r,e=!1){let n=tt(t.storage,r,e);return typeof n=="number"?n:_._fromStorage(n)}function Ia(t,r,e,n=!1){let o=et(t.storage,r,e,n);return typeof o=="number"?o:_._fromStorage(o)}function za(t,r,e,n=!1){let o=er(t.storage,r,e,n);return typeof o=="number"?o:_._fromStorage(o)}function _a(t,r,e,n=!1){let o=e?e.storage:void 0,a=Nr(t.storage,r,o,n);return typeof a=="number"?a:_._fromStorage(a)}function Ba(t,r,e=!1){let n=wr(t.storage,r,e);return typeof n=="number"?n:_._fromStorage(n)}function Ea(t,r,e=!1){let n=xr(t.storage,r,e);return typeof n=="number"?n:_._fromStorage(n)}function Ua(t,r,e=!1){let n=Ir(t.storage,r,e);return typeof n=="number"?n:_._fromStorage(n)}function Ta(t,r,e=0,n=!1){let o=sr(t.storage,r,e,n);return typeof o=="number"?o:_._fromStorage(o)}function Oa(t,r,e=0,n=!1){let o=nt(t.storage,r,e,n);return typeof o=="number"?o:_._fromStorage(o)}function $a(t,r,e=!1){let n=zr(t.storage,r,e);return typeof n=="number"?n:_._fromStorage(n)}function va(t,r,e=!1){let n=_r(t.storage,r,e);return typeof n=="number"?n:_._fromStorage(n)}function Ma(t,r){let e=Br(t.storage,r);return typeof e=="number"?e:_._fromStorage(e)}function Ca(t,r){let e=Er(t.storage,r);return typeof e=="number"?e:_._fromStorage(e)}function ka(t,r){return _._fromStorage(ot(t.storage,r))}function Va(t,r){return _._fromStorage(at(t.storage,r))}function Fa(t,r,e=!1){let n=Ur(t.storage,r,e);return typeof n=="number"?n:_._fromStorage(n)}function Pa(t){return t.cbrt()}function Ra(t){return t.fabs()}function La(t,r){return t.divmod(r)}function qa(t){return t.square()}function ja(t,r){return t.remainder(r)}function Za(t,r){return t.heaviside(r)}function Wa(t,r){return t.bitwise_and(r)}function Ha(t,r){return t.bitwise_or(r)}function Ya(t,r){return t.bitwise_xor(r)}function Ga(t){return t.bitwise_not()}function Ja(t){return t.invert()}function Xa(t,r){return t.left_shift(r)}function Qa(t,r){return t.right_shift(r)}function Ka(t,r=-1,e="big"){let n=_n(t.storage,r,e);return _._fromStorage(n)}function rs(t,r=-1,e=-1,n="big"){let o=Bn(t.storage,r,e,n);return _._fromStorage(o)}function ts(t,...r){let e=r.map(o=>o.storage),n=$e(t,...e);return typeof n=="number"||typeof n=="bigint"?n:_._fromStorage(n)}function es(t,r,e){return _._fromStorage(on(t.storage,r.storage,e))}function ns(t,r,e,n){an(t.storage,r.storage,e.storage,n)}function os(t,r,e){let n=e instanceof _?e.storage:e;sn(t.storage,r.storage,n)}function as(t,r,e){return _._fromStorage(un(t.storage,r.storage,e))}function ss(t,r,e=0){let n=t.map(a=>a.storage),o=r.map(a=>a.storage);return _._fromStorage(cn(n,o,e))}function is(t,r,e){fn(t.storage,r.storage,e.storage)}function us(t,r=2){return yt(t,r).map(n=>_._fromStorage(n))}function cs(t){return ln(t.storage).map(e=>_._fromStorage(e))}function fs(t,r=0,e){return pt(t,r,e).map(o=>_._fromStorage(o))}function ls(t,r=0){return yn(t.storage,r).map(n=>_._fromStorage(n))}function ys(t,r=0,e){return mt(t,r,e).map(o=>_._fromStorage(o))}function ps(t,r=0){return pn(t.storage,r).map(n=>_._fromStorage(n))}function ms(t,r,e=0){return mn(t,(a,u)=>r(a,u).storage,e).map(a=>_._fromStorage(a))}function ds(t,r="int32"){return _._fromStorage(dn(t,r))}function gs(...t){return gn(...t.map(e=>e.storage)).map(e=>_._fromStorage(e))}function As(t,r,e="raise"){let n=t.map(o=>o.storage);return _._fromStorage(An(n,r,e))}function hs(t,r,e="C"){let n=t instanceof _?t.storage:t;return hn(n,r,e).map(a=>_._fromStorage(a))}var pr=new Uint8Array([147,78,85,77,80,89]),vr=["float64","float32","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"];function Nt(){let t=new ArrayBuffer(2);return new DataView(t).setInt16(0,256,!0),new Int16Array(t)[0]===256}var Ti={f8:"float64",f4:"float32",i8:"int64",i4:"int32",i2:"int16",i1:"int8",u8:"uint64",u4:"uint32",u2:"uint16",u1:"uint8",b1:"bool"},mr={float64:"<f8",float32:"<f4",int64:"<i8",int32:"<i4",int16:"<i2",int8:"|i1",uint64:"<u8",uint32:"<u4",uint16:"<u2",uint8:"|u1",bool:"|b1"},bs={c:"complex numbers",S:"byte strings",U:"Unicode strings",O:"Python objects",V:"structured arrays (void)",M:"datetime64",m:"timedelta64"};function Ss(t){if(t.startsWith("[")||t.startsWith("("))throw new H(`Structured/compound dtypes are not supported: ${t}`);let r="",e=t;(t[0]==="<"||t[0]===">"||t[0]==="="||t[0]==="|")&&(r=t[0],e=t.slice(1));let n=e[0];if(n&&n in bs)throw new H(`Unsupported dtype: ${bs[n]} (${t}). Use the 'force' parameter to skip arrays with unsupported dtypes.`);let o=Ti[e];if(!o)throw new H(`Unknown or unsupported dtype descriptor: ${t}. Supported types: ${vr.join(", ")}. Use the 'force' parameter to skip arrays with unsupported dtypes.`);let a=Nt(),u=r==="<"||r==="|"||r==="="&&a,s=r===">"||r==="="&&!a,i=parseInt(e.slice(1),10),c=i>1&&(s&&a||u&&!a);return{dtype:o,needsByteSwap:c,itemsize:i}}var H=class extends Error{constructor(r){super(r),this.name="UnsupportedDTypeError"}},L=class extends Error{constructor(r){super(r),this.name="InvalidNpyError"}};function dr(t){let r=t instanceof ArrayBuffer?new Uint8Array(t):t,e=Mr(r);return Cr(r,e)}function Mr(t){if(t.length<10)throw new L("File too small to be a valid NPY file");for(let c=0;c<pr.length;c++)if(t[c]!==pr[c])throw new L("Invalid NPY magic number");let r=t[6],e=t[7];if(r!==1&&r!==2&&r!==3)throw new L(`Unsupported NPY version: ${r}.${e}`);let n,o;r===1?(n=t[8]|t[9]<<8,o=10):(n=t[8]|t[9]<<8|t[10]<<16|t[11]<<24,o=12);let a=o+n;if(t.length<a)throw new L("File truncated: header extends beyond file");let u=t.slice(o,a),s=new TextDecoder("utf-8").decode(u).trim(),i=Oi(s);return{version:{major:r,minor:e},header:i,dataOffset:a}}function Cr(t,r){let{header:e,dataOffset:n}=r,{dtype:o,needsByteSwap:a,itemsize:u}=Ss(e.descr),s=e.shape.reduce((d,g)=>d*g,1),i=s*u,c=t.length-n;if(c<i)throw new L(`File truncated: expected ${i} bytes of data, got ${c}`);let f=new ArrayBuffer(i);new Uint8Array(f).set(t.subarray(n,n+i));let l=$i(f,o,s,a,u),p=e.shape,m;if(e.fortran_order&&p.length>1){let d=[...p].reverse(),g=D.fromData(l,d,o);m=vi(g,d),p=e.shape}else m=D.fromData(l,[...p],o);return new _(m)}function Oi(t){let r=t.match(/'descr'\s*:\s*'([^']+)'/),e=t.match(/'fortran_order'\s*:\s*(True|False)/),n=t.match(/'shape'\s*:\s*\(([^)]*)\)/);if(!r||!e||!n)throw new L(`Failed to parse NPY header: ${t}`);let o=r[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 L(`Invalid shape value: ${i}`);return c}),{descr:o,fortran_order:a,shape:s}}function $i(t,r,e,n,o){let a=U(r);if(!a)throw new L(`Cannot create array for dtype: ${r}`);if(!n)return new a(t,0,e);let u=new Uint8Array(t),s=new Uint8Array(t.byteLength);for(let i=0;i<e;i++){let c=i*o;for(let f=0;f<o;f++)s[c+f]=u[c+o-1-f]}return new a(s.buffer,0,e)}function vi(t,r){let e=r.length,n=t.size,o=t.dtype,a=U(o);if(!a)throw new L(`Cannot create array for dtype: ${o}`);let u=new a(n),s=[...r].reverse(),i=Ds(r),c=Ds(s),f=new Array(e).fill(0);for(let y=0;y<n;y++){let l=y;for(let m=0;m<e;m++){let d=i[m];f[m]=Math.floor(l/d),l=l%d}let p=0;for(let m=0;m<e;m++)p+=f[e-1-m]*c[m];w(o),u[p]=t.iget(y)}return D.fromData(u,s,o)}function Ds(t){let r=new Array(t.length),e=1;for(let n=t.length-1;n>=0;n--)r[n]=e,e*=t[n];return r}function nr(t){let r=t.shape,e=t.dtype,n=mr[e],o=r.length===0?"()":r.length===1?`(${r[0]},)`:`(${r.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),f=c.length,y=t.size,l=$t(e),p=y*l,m=u+f+p,d=new Uint8Array(m);d.set(pr,0),d[6]=3,d[7]=0,d[8]=f&255,d[9]=f>>8&255,d[10]=f>>16&255,d[11]=f>>24&255,d.set(c,u);let g=u+f;return Mi(t,d.subarray(g),l),d}function Mi(t,r,e){let n=t.dtype,o=t.size,a=Nt(),u=w(n),s=t._storage;if(s.isCContiguous&&s.offset===0&&a){let c=s.data,f=new Uint8Array(c.buffer,c.byteOffset,o*e);r.set(f)}else{let c=new DataView(r.buffer,r.byteOffset,r.byteLength);for(let f=0;f<o;f++){let y=s.iget(f),l=f*e;u?Ci(c,l,y,n==="uint64"):ki(c,l,y,n)}}}function Ci(t,r,e,n){n?t.setBigUint64(r,e,!0):t.setBigInt64(r,e,!0)}function ki(t,r,e,n){switch(n){case"float64":t.setFloat64(r,e,!0);break;case"float32":t.setFloat32(r,e,!0);break;case"int32":t.setInt32(r,e,!0);break;case"int16":t.setInt16(r,e,!0);break;case"int8":t.setInt8(r,e);break;case"uint32":t.setUint32(r,e,!0);break;case"uint16":t.setUint16(r,e,!0);break;case"uint8":case"bool":t.setUint8(r,e);break;default:throw new Error(`Unsupported dtype for serialization: ${n}`)}}var Vi=(()=>{let t=new Uint32Array(256);for(let r=0;r<256;r++){let e=r;for(let n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;t[r]=e}return t})();function wt(t){let r=4294967295;for(let e=0;e<t.length;e++)r=Vi[(r^t[e])&255]^r>>>8;return(r^4294967295)>>>0}async function Ns(t){let r=xs(t),e=new Map;for(let n of r){let o=await Fi(n);e.set(n.name,o)}return e}function ws(t){let r=xs(t),e=new Map;for(let n of r){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 xs(t){let r=t instanceof ArrayBuffer?new Uint8Array(t):t,e=new DataView(r.buffer,r.byteOffset,r.byteLength),n=[],o=-1;for(let c=r.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 y=e.getUint16(i+10,!0),l=e.getUint32(i+16,!0),p=e.getUint32(i+20,!0),m=e.getUint32(i+24,!0),d=e.getUint16(i+28,!0),g=e.getUint16(i+30,!0),h=e.getUint16(i+32,!0),A=e.getUint32(i+42,!0),b=r.slice(i+46,i+46+d),S=new TextDecoder("utf-8").decode(b);s.push({name:S,compressionMethod:y,crc32:l,compressedSize:p,uncompressedSize:m,localHeaderOffset:A}),i=i+46+d+g+h}for(let c of s){let f=c.localHeaderOffset;if(e.getUint32(f,!0)!==67324752)throw new Error(`Invalid local file header at offset ${f}`);let l=e.getUint16(f+26,!0),p=e.getUint16(f+28,!0),m=f+30+l+p,d=r.slice(m,m+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 Fi(t){if(t.compressionMethod===0)return t.compressedData;if(t.compressionMethod===8)return await Pi(t.compressedData);throw new Error(`Unsupported compression method: ${t.compressionMethod}`)}async function Pi(t){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 r=new DecompressionStream("deflate-raw"),e=new Uint8Array(t.length);e.set(t);let n=r.writable.getWriter();n.write(e),n.close();let o=r.readable.getReader(),a=[];for(;;){let{done:c,value:f}=await o.read();if(c)break;a.push(f)}let u=a.reduce((c,f)=>c+f.length,0),s=new Uint8Array(u),i=0;for(let c of a)s.set(c,i),i+=c.length;return s}async function kr(t,r={}){let e=r.force??!1,n=await Ns(t);return Is(n,e)}function Vr(t,r={}){let e=r.force??!1,n=ws(t);return Is(n,e)}function Is(t,r){let e=new Map,n=[],o=new Map;for(let[a,u]of t){if(!a.endsWith(".npy"))continue;let s=a.slice(0,-4);try{let i=dr(u);e.set(s,i)}catch(i){if(i instanceof H&&r)n.push(s),o.set(s,i.message);else throw i}}return{arrays:e,skipped:n,errors:o}}async function zt(t,r={}){let e=await kr(t,r);return Object.fromEntries(e.arrays)}function _t(t,r={}){let e=Vr(t,r);return Object.fromEntries(e.arrays)}async function zs(t,r={}){let e=r.compress??!1,n=[];for(let[l,p]of t){let m=wt(p),d,g;e?(d=await Li(p),d.length<p.length?g=8:(d=p,g=0)):(d=p,g=0),n.push({name:l,data:p,compressedData:d,crc:m,compressionMethod:g,offset:0})}let o=0;for(let l of n){let p=new TextEncoder().encode(l.name);o+=30+p.length+l.compressedData.length}let a=0;for(let l of n){let p=new TextEncoder().encode(l.name);a+=46+p.length}let s=o+a+22,i=new Uint8Array(s),c=new DataView(i.buffer),f=0;for(let l of n)l.offset=f,f=Bs(i,c,f,l);let y=f;for(let l of n)f=Es(i,c,f,l);return Us(c,f,n.length,a,y),i}function _s(t){let r=[];for(let[f,y]of t){let l=wt(y);r.push({name:f,data:y,compressedData:y,crc:l,compressionMethod:0,offset:0})}let e=0;for(let f of r){let y=new TextEncoder().encode(f.name);e+=30+y.length+f.compressedData.length}let n=0;for(let f of r){let y=new TextEncoder().encode(f.name);n+=46+y.length}let a=e+n+22,u=new Uint8Array(a),s=new DataView(u.buffer),i=0;for(let f of r)f.offset=i,i=Bs(u,s,i,f);let c=i;for(let f of r)i=Es(u,s,i,f);return Us(s,i,r.length,n,c),u}function Bs(t,r,e,n){let o=new TextEncoder().encode(n.name);return r.setUint32(e,67324752,!0),e+=4,r.setUint16(e,n.compressionMethod===8?20:10,!0),e+=2,r.setUint16(e,0,!0),e+=2,r.setUint16(e,n.compressionMethod,!0),e+=2,r.setUint16(e,0,!0),e+=2,r.setUint16(e,33,!0),e+=2,r.setUint32(e,n.crc,!0),e+=4,r.setUint32(e,n.compressedData.length,!0),e+=4,r.setUint32(e,n.data.length,!0),e+=4,r.setUint16(e,o.length,!0),e+=2,r.setUint16(e,0,!0),e+=2,t.set(o,e),e+=o.length,t.set(n.compressedData,e),e+=n.compressedData.length,e}function Es(t,r,e,n){let o=new TextEncoder().encode(n.name);return r.setUint32(e,33639248,!0),e+=4,r.setUint16(e,20,!0),e+=2,r.setUint16(e,n.compressionMethod===8?20:10,!0),e+=2,r.setUint16(e,0,!0),e+=2,r.setUint16(e,n.compressionMethod,!0),e+=2,r.setUint16(e,0,!0),e+=2,r.setUint16(e,33,!0),e+=2,r.setUint32(e,n.crc,!0),e+=4,r.setUint32(e,n.compressedData.length,!0),e+=4,r.setUint32(e,n.data.length,!0),e+=4,r.setUint16(e,o.length,!0),e+=2,r.setUint16(e,0,!0),e+=2,r.setUint16(e,0,!0),e+=2,r.setUint16(e,0,!0),e+=2,r.setUint16(e,0,!0),e+=2,r.setUint32(e,0,!0),e+=4,r.setUint32(e,n.offset,!0),e+=4,t.set(o,e),e+=o.length,e}function Us(t,r,e,n,o){t.setUint32(r,101010256,!0),r+=4,t.setUint16(r,0,!0),r+=2,t.setUint16(r,0,!0),r+=2,t.setUint16(r,e,!0),r+=2,t.setUint16(r,e,!0),r+=2,t.setUint32(r,n,!0),r+=4,t.setUint32(r,o,!0),r+=4,t.setUint16(r,0,!0)}async function Li(t){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 r=new CompressionStream("deflate-raw"),e=new Uint8Array(t.length);e.set(t);let n=r.writable.getWriter();n.write(e),n.close();let o=r.readable.getReader(),a=[];for(;;){let{done:c,value:f}=await o.read();if(c)break;a.push(f)}let u=a.reduce((c,f)=>c+f.length,0),s=new Uint8Array(u),i=0;for(let c of a)s.set(c,i),i+=c.length;return s}async function Bt(t,r={}){let e=Ts(t);return zs(e,{compress:r.compress??!1})}function Et(t){let r=Ts(t);return _s(r)}function Ts(t){let r=new Map;if(Array.isArray(t)){for(let n=0;n<t.length;n++){let o=t[n],a=nr(o);r.set(`arr_${n}.npy`,a)}return r}let e=t instanceof Map?t.entries():Object.entries(t);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=nr(o),u=n.endsWith(".npy")?n:`${n}.npy`;r.set(u,a)}return r}var qi="0.7.0";return ks(ji);})();