numpy-ts 0.8.0 → 0.10.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.
- package/README.md +33 -27
- package/dist/numpy-ts.browser.js +2 -2
- package/dist/numpy-ts.esm.js +2 -2
- package/dist/numpy-ts.node-io.cjs +3 -3
- package/dist/numpy-ts.node-io.cjs.map +4 -4
- package/dist/numpy-ts.node-io.mjs +3 -3
- package/dist/numpy-ts.node-io.mjs.map +4 -4
- package/dist/numpy-ts.node.cjs +2 -2
- package/dist/numpy-ts.node.cjs.map +4 -4
- package/dist/types/core/ndarray.d.ts +887 -0
- package/dist/types/index.d.ts +40 -1
- package/dist/types/ops/advanced.d.ts +7 -0
- package/dist/types/ops/arithmetic.d.ts +49 -0
- package/dist/types/ops/exponential.d.ts +79 -1
- package/dist/types/ops/gradient.d.ts +57 -0
- package/dist/types/ops/linalg.d.ts +220 -0
- package/dist/types/ops/logic.d.ts +201 -0
- package/dist/types/ops/random.d.ts +136 -0
- package/dist/types/ops/rounding.d.ts +36 -0
- package/dist/types/ops/sets.d.ts +38 -0
- package/dist/types/ops/sorting.d.ts +8 -0
- package/dist/types/ops/statistics.d.ts +108 -0
- package/package.json +2 -2
package/dist/numpy-ts.node.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";var Lr=Object.defineProperty;var ei=Object.getOwnPropertyDescriptor;var ni=Object.getOwnPropertyNames;var oi=Object.prototype.hasOwnProperty;var ai=(r,t)=>{for(var e in t)Lr(r,e,{get:t[e],enumerable:!0})},si=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ni(t))!oi.call(r,o)&&o!==e&&Lr(r,o,{get:()=>t[o],enumerable:!(n=ei(t,o))||n.enumerable});return r};var ii=r=>si(Lr({},"__esModule",{value:!0}),r);var Nu={};ai(Nu,{DTYPE_TO_DESCR:()=>mr,InvalidNpyError:()=>q,NDArray:()=>_,SUPPORTED_DTYPES:()=>Mr,UnsupportedDTypeError:()=>Y,__version__:()=>xu,absolute:()=>mo,append:()=>Da,arange:()=>Ln,arccos:()=>$o,arccosh:()=>Wo,arcsin:()=>Oo,arcsinh:()=>Zo,arctan:()=>Mo,arctan2:()=>Co,arctanh:()=>Go,argpartition:()=>Ms,argsort:()=>vs,array:()=>R,array_equal:()=>Ta,array_equiv:()=>va,array_split:()=>ra,asanyarray:()=>Qn,asarray:()=>pr,ascontiguousarray:()=>Kn,asfortranarray:()=>ro,atleast_1d:()=>ma,atleast_2d:()=>da,atleast_3d:()=>ga,average:()=>Fa,bitwise_and:()=>os,bitwise_not:()=>is,bitwise_or:()=>as,bitwise_xor:()=>ss,broadcast_arrays:()=>za,broadcast_shapes:()=>_a,broadcast_to:()=>Ia,cbrt:()=>Qa,choose:()=>Ua,column_stack:()=>Aa,compress:()=>hs,concatenate:()=>rr,copy:()=>Gn,cos:()=>To,cosh:()=>qo,count_nonzero:()=>Ls,cumprod:()=>$a,cumsum:()=>Oa,deg2rad:()=>Po,degrees:()=>Vo,delete:()=>xa,diag:()=>_t,diag_indices:()=>Ss,diag_indices_from:()=>Ds,diagflat:()=>to,diagonal:()=>wo,divmod:()=>rs,dot:()=>xo,dsplit:()=>ha,dstack:()=>Qo,einsum:()=>ys,empty:()=>It,empty_like:()=>Jn,expand_dims:()=>ua,extract:()=>Rs,eye:()=>wt,fabs:()=>Ka,flatnonzero:()=>Vs,flip:()=>$r,fliplr:()=>ca,flipud:()=>la,floor_divide:()=>bo,frombuffer:()=>uo,fromfile:()=>co,fromfunction:()=>eo,fromiter:()=>lo,fromstring:()=>fo,full:()=>zt,full_like:()=>Xn,geomspace:()=>Zn,heaviside:()=>ns,hsplit:()=>ea,hstack:()=>Xo,hypot:()=>ko,identity:()=>Wn,indices:()=>_s,inner:()=>_o,insert:()=>Na,invert:()=>us,ix_:()=>Bs,kron:()=>Io,left_shift:()=>cs,lexsort:()=>Os,linspace:()=>qn,loadNpz:()=>Ot,loadNpzSync:()=>$t,logspace:()=>jn,mask_indices:()=>zs,median:()=>Ca,meshgrid:()=>no,mod:()=>Ao,moveaxis:()=>Yo,nanargmax:()=>Ha,nanargmin:()=>Ga,nancumprod:()=>Ja,nancumsum:()=>Ya,nanmax:()=>Wa,nanmean:()=>La,nanmedian:()=>Xa,nanmin:()=>Za,nanprod:()=>Ra,nanstd:()=>ja,nansum:()=>Pa,nanvar:()=>qa,negative:()=>go,nonzero:()=>ks,ones:()=>Nt,ones_like:()=>Yn,outer:()=>Bo,packbits:()=>fs,pad:()=>wa,parseNpy:()=>dr,parseNpyData:()=>kr,parseNpyHeader:()=>Cr,parseNpz:()=>Vr,parseNpzSync:()=>Fr,partition:()=>$s,percentile:()=>ka,place:()=>bs,positive:()=>So,power:()=>yo,ptp:()=>Ma,put:()=>Ea,put_along_axis:()=>ds,putmask:()=>gs,quantile:()=>Va,rad2deg:()=>Ro,radians:()=>Fo,ravel:()=>aa,ravel_multi_index:()=>Es,reciprocal:()=>Do,remainder:()=>es,repeat:()=>oa,reshape:()=>sa,resize:()=>Sa,right_shift:()=>ls,roll:()=>pa,rollaxis:()=>ya,rot90:()=>fa,row_stack:()=>ba,searchsorted:()=>Ps,select:()=>As,serializeNpy:()=>nr,serializeNpz:()=>Mt,serializeNpzSync:()=>Ct,sign:()=>ho,sin:()=>Uo,sinh:()=>Lo,sort:()=>Ts,sort_complex:()=>Cs,split:()=>Ko,sqrt:()=>po,square:()=>ts,squeeze:()=>ia,stack:()=>Jo,swapaxes:()=>Ho,take:()=>Ba,take_along_axis:()=>ms,tan:()=>vo,tanh:()=>jo,tensordot:()=>Eo,tile:()=>na,trace:()=>No,transpose:()=>zo,tri:()=>oo,tril:()=>ao,tril_indices:()=>xs,tril_indices_from:()=>Ns,triu:()=>so,triu_indices:()=>ws,triu_indices_from:()=>Is,unpackbits:()=>ps,unravel_index:()=>Us,vander:()=>io,vsplit:()=>ta,vstack:()=>Bt,where:()=>Fs,zeros:()=>H,zeros_like:()=>Hn});module.exports=ii(Nu);function kt(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 Vt(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 s=e<0?t+e:e;if(s<0||s>=t)throw new Error(`Index ${e} is out of bounds for size ${t}`);return{start:s,stop:s+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 k="float64";function O(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 Pt(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 Rt(r){return r==="int64"||r==="int32"||r==="int16"||r==="int8"||r==="uint64"||r==="uint32"||r==="uint16"||r==="uint8"}function Ft(r){return r==="float64"||r==="float32"}function x(r){return r==="int64"||r==="uint64"}function C(r,t){if(r===t)return r;if(r==="bool")return t;if(t==="bool")return r;if(Ft(r)||Ft(t)){if(r==="float64"||t==="float64")return"float64";if(r==="float32"){let c=t;return c==="int32"||c==="int64"||c==="uint32"||c==="uint64"?"float64":"float32"}if(t==="float32"){let c=r;return c==="int32"||c==="int64"||c==="uint32"||c==="uint64"?"float64":"float32"}return"float32"}let e=r.startsWith("int"),n=t.startsWith("int"),o=r.startsWith("uint"),a=t.startsWith("uint"),s=c=>c.includes("64")?64:c.includes("32")?32:c.includes("16")?16:c.includes("8")?8:0,i=s(r),u=s(t);if(r==="int64"&&t==="uint64"||r==="uint64"&&t==="int64")return"float64";if(e&&a&&i===u){if(i===8)return"int16";if(i===16)return"int32";if(i===32)return"int64"}if(o&&n&&i===u){if(u===8)return"int16";if(u===16)return"int32";if(u===32)return"int64"}if(e&&n||o&&a){let c=Math.max(i,u);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?i>u?r:u===8?"int16":u===16?"int32":u===32?"int64":"float64":o&&n?u>i?t:i===8?"int16":i===16?"int32":i===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,s=this._offset;for(let i=0;i<o;i++){let u=1;for(let l=i+1;l<o;l++)u*=e[l];let c=Math.floor(a/u);a=a%u,s+=c*n[i]}return this._data[s]}iset(t,e){let n=this._shape,o=this._strides,a=n.length;if(a===0){this._data[this._offset]=e;return}let s=t,i=this._offset;for(let u=0;u<a;u++){let c=1;for(let p=u+1;p<a;p++)c*=n[p];let l=Math.floor(s/c);s=s%c,i+=l*o[u]}this._data[i]=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=O(e);if(!o)throw new Error(`Cannot copy array with dtype ${e}`);let a=new o(n);if(this.isCContiguous&&this._offset===0)if(x(e)){let s=this._data,i=a;for(let u=0;u<n;u++)i[u]=s[u]}else a.set(this._data);else if(x(e)){let s=a;for(let i=0;i<n;i++)s[i]=this.iget(i)}else for(let s=0;s<n;s++)a[s]=this.iget(s);return new r(a,t,r._computeStrides(t),0,e)}static fromData(t,e,n,o,a){let s=o??r._computeStrides(e),i=a??0;return new r(t,e,s,i,n)}static zeros(t,e=k){let n=t.reduce((s,i)=>s*i,1),o=O(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=k){let n=t.reduce((s,i)=>s*i,1),o=O(e);if(!o)throw new Error(`Cannot create array with dtype ${e}`);let a=new o(n);return x(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 L(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 Lt(r,t){let e=r.length,n=t.length,o=Math.max(e,n),a=new Array(o);for(let s=0;s<o;s++){let i=s<o-e?1:r[s-(o-e)],u=s<o-n?1:t[s-(o-n)];if(i===u)a[s]=i;else if(i===1)a[s]=u;else if(u===1)a[s]=i;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 ui(r,t,e){let n=r.length,o=e.length,a=new Array(o).fill(0);for(let s=0;s<n;s++){let i=o-n+s,u=r[s],c=e[i];if(u===c)a[i]=t[s];else if(u===1)a[i]=0;else throw new Error("Invalid broadcast")}return a}function hr(r,t){let e=ui(r.shape,r.strides,t);return D.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function P(r,t,e,n){let o=Lt(r.shape,t.shape),a=hr(r,o),s=hr(t,o),i=C(r.dtype,t.dtype),u=D.zeros(o,i),c=u.data,l=u.size;if(x(i)){let p=c;for(let f=0;f<l;f++){let y=a.iget(f),m=s.iget(f),d=typeof y=="bigint"?y:BigInt(Math.round(y)),g=typeof m=="bigint"?m:BigInt(Math.round(m));n==="add"?p[f]=d+g:n==="subtract"?p[f]=d-g:n==="multiply"?p[f]=d*g:n==="divide"?p[f]=d/g:p[f]=BigInt(Math.round(e(Number(d),Number(g))))}}else{let p=x(r.dtype)||x(t.dtype);for(let f=0;f<l;f++){let y=a.iget(f),m=s.iget(f),d=Number(y),g=Number(m);c[f]=e(d,g)}}return u}function J(r,t,e){let n=Lt(r.shape,t.shape),o=hr(r,n),a=hr(t,n),s=n.reduce((c,l)=>c*l,1),i=new Uint8Array(s),u=x(r.dtype)||x(t.dtype);for(let c=0;c<s;c++){let l=o.iget(c),p=a.iget(c),f=Number(l),y=Number(p);i[c]=e(f,y)?1:0}return D.fromData(i,n,"bool")}function V(r,t,e=!0){let n=r.dtype,o=Array.from(r.shape),a=r.size,i=e?n:n!=="float32"&&n!=="float64"?"float64":n,u=D.zeros(o,i),c=u.data,l=r.data;if(x(n))if(x(i)){let p=c;for(let f=0;f<a;f++){let y=Number(l[f]);p[f]=BigInt(Math.round(t(y)))}}else for(let p=0;p<a;p++)c[p]=t(Number(l[p]));else for(let p=0;p<a;p++)c[p]=t(Number(l[p]));return u}function qr(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function qt(r,t){return typeof t=="number"?pi(r,t):qr(r,t)?ci(r,t):P(r,t,(e,n)=>e+n,"add")}function ci(r,t){let e=C(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,s=t.data,i=n.data;if(x(e)){let u=i;if(!x(r.dtype)||!x(t.dtype))for(let l=0;l<o;l++){let p=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),f=typeof s[l]=="bigint"?s[l]:BigInt(Math.round(Number(s[l])));u[l]=p+f}else{let l=a,p=s;for(let f=0;f<o;f++)u[f]=l[f]+p[f]}}else if(x(r.dtype)||x(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],p=typeof s[c]=="bigint"?Number(s[c]):s[c];i[c]=l+p}else for(let c=0;c<o;c++)i[c]=a[c]+s[c];return n}function jt(r,t){return typeof t=="number"?yi(r,t):qr(r,t)?li(r,t):P(r,t,(e,n)=>e-n,"subtract")}function li(r,t){let e=C(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,s=t.data,i=n.data;if(x(e)){let u=i;if(!x(r.dtype)||!x(t.dtype))for(let l=0;l<o;l++){let p=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),f=typeof s[l]=="bigint"?s[l]:BigInt(Math.round(Number(s[l])));u[l]=p-f}else{let l=a,p=s;for(let f=0;f<o;f++)u[f]=l[f]-p[f]}}else if(x(r.dtype)||x(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],p=typeof s[c]=="bigint"?Number(s[c]):s[c];i[c]=l-p}else for(let c=0;c<o;c++)i[c]=a[c]-s[c];return n}function Zt(r,t){return typeof t=="number"?mi(r,t):qr(r,t)?fi(r,t):P(r,t,(e,n)=>e*n,"multiply")}function fi(r,t){let e=C(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,s=t.data,i=n.data;if(x(e)){let u=i;if(!x(r.dtype)||!x(t.dtype))for(let l=0;l<o;l++){let p=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),f=typeof s[l]=="bigint"?s[l]:BigInt(Math.round(Number(s[l])));u[l]=p*f}else{let l=a,p=s;for(let f=0;f<o;f++)u[f]=l[f]*p[f]}}else if(x(r.dtype)||x(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],p=typeof s[c]=="bigint"?Number(s[c]):s[c];i[c]=l*p}else for(let c=0;c<o;c++)i[c]=a[c]*s[c];return n}function Wt(r,t){if(typeof t=="number")return di(r,t);let e=r.dtype==="float64",n=t.dtype==="float64",o=r.dtype==="float32",a=t.dtype==="float32";if(e||n){let u=e?r:tr(r,"float64"),c=n?t:tr(t,"float64");return P(u,c,(l,p)=>l/p,"divide")}if(o||a){let u=o?r:tr(r,"float32"),c=a?t:tr(t,"float32");return P(u,c,(l,p)=>l/p,"divide")}let s=tr(r,"float64"),i=tr(t,"float64");return P(s,i,(u,c)=>u/c,"divide")}function tr(r,t){let e=D.zeros(Array.from(r.shape),t),n=r.size,o=r.data,a=e.data;for(let s=0;s<n;s++)a[s]=Number(o[s]);return e}function pi(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,s=D.zeros(n,e),i=s.data;if(x(e)){let u=o,c=i,l=BigInt(Math.round(t));for(let p=0;p<a;p++)c[p]=u[p]+l}else for(let u=0;u<a;u++)i[u]=Number(o[u])+t;return s}function yi(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,s=D.zeros(n,e),i=s.data;if(x(e)){let u=o,c=i,l=BigInt(Math.round(t));for(let p=0;p<a;p++)c[p]=u[p]-l}else for(let u=0;u<a;u++)i[u]=Number(o[u])-t;return s}function mi(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,s=D.zeros(n,e),i=s.data;if(x(e)){let u=o,c=i,l=BigInt(Math.round(t));for(let p=0;p<a;p++)c[p]=u[p]*l}else for(let u=0;u<a;u++)i[u]=Number(o[u])*t;return s}function di(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=e!=="float32"&&e!=="float64"?"float64":e,u=D.zeros(n,i),c=u.data;if(x(e))for(let l=0;l<a;l++)c[l]=Number(o[l])/t;else for(let l=0;l<a;l++)c[l]=Number(o[l])/t;return u}function Gt(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=D.zeros(e,t),s=a.data;if(x(t)){let i=n,u=s;for(let c=0;c<o;c++){let l=i[c];u[c]=l<0n?-l:l}}else for(let i=0;i<o;i++)s[i]=Math.abs(Number(n[i]));return a}function Ht(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=D.zeros(e,t),s=a.data;if(x(t)){let i=n,u=s;for(let c=0;c<o;c++)u[c]=-i[c]}else for(let i=0;i<o;i++)s[i]=-Number(n[i]);return a}function Yt(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=D.zeros(e,t),s=a.data;if(x(t)){let i=n,u=s;for(let c=0;c<o;c++){let l=i[c];u[c]=l>0n?1n:l<0n?-1n:0n}}else for(let i=0;i<o;i++){let u=Number(n[i]);s[i]=u>0?1:u<0?-1:0}return a}function Ar(r,t){return typeof t=="number"?gi(r,t):P(r,t,(e,n)=>(e%n+n)%n,"mod")}function gi(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,s=D.zeros(n,e),i=s.data;if(x(e)){let u=o,c=i,l=BigInt(Math.round(t));for(let p=0;p<a;p++){let f=u[p];c[p]=(f%l+l)%l}}else for(let u=0;u<a;u++){let c=Number(o[u]);i[u]=(c%t+t)%t}return s}function jr(r,t){return typeof t=="number"?hi(r,t):P(r,t,(e,n)=>Math.floor(e/n),"floor_divide")}function hi(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,s=D.zeros(n,e),i=s.data;if(x(e)){let u=o,c=i,l=BigInt(Math.round(t));for(let p=0;p<a;p++)c[p]=u[p]/l}else for(let u=0;u<a;u++)i[u]=Math.floor(Number(o[u])/t);return s}function Jt(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=D.zeros(e,t),s=a.data;for(let i=0;i<o;i++)s[i]=n[i];return a}function Xt(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,s=t!=="float32"&&t!=="float64"?"float64":t,i=D.zeros(e,s),u=i.data;if(x(t))for(let c=0;c<o;c++)u[c]=1/Number(n[c]);else for(let c=0;c<o;c++)u[c]=1/Number(n[c]);return i}function Qt(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,s=t!=="float32"&&t!=="float64"?"float64":t,i=D.zeros(e,s),u=i.data;for(let c=0;c<o;c++)u[c]=Math.cbrt(Number(n[c]));return i}function Kt(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",s=D.zeros(e,a),i=s.data;for(let u=0;u<o;u++)i[u]=Math.abs(Number(n[u]));return s}function re(r,t){let e=jr(r,t),n=Ar(r,t);return[e,n]}function te(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=D.zeros(e,t),s=a.data;if(x(t)){let i=n,u=s;for(let c=0;c<o;c++)u[c]=i[c]*i[c]}else for(let i=0;i<o;i++){let u=Number(n[i]);s[i]=u*u}return a}function ee(r,t){return Ar(r,t)}function ne(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",s=D.zeros(n,a),i=s.data;if(typeof t=="number")for(let u=0;u<o;u++){let c=Number(r.data[u]);c<0?i[u]=0:c===0?i[u]=t:i[u]=1}else{let u=t.data,c=t.shape;if(n.every((l,p)=>l===c[p]))for(let l=0;l<o;l++){let p=Number(r.data[l]);p<0?i[l]=0:p===0?i[l]=Number(u[l]):i[l]=1}else for(let l=0;l<o;l++){let p=Number(r.data[l]),f=l%t.size;p<0?i[l]=0:p===0?i[l]=Number(u[f]):i[l]=1}}return s}function X(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 s=a.length-t+n,i=s<0?1:a[s];if(i!==1){if(o===1)o=i;else if(o!==i)return null}}e[n]=o}return e}function bi(r,t,e){let n=r.length,o=e.length,a=new Array(o).fill(0);for(let s=0;s<n;s++){let i=o-n+s,u=r[s],c=e[i];if(u===c)a[i]=t[s];else if(u===1)a[i]=0;else throw new Error("Invalid broadcast")}return a}function G(r,t){let e=bi(r.shape,r.strides,t);return D.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function Zr(...r){let t=X(r);if(t===null){let e=r.map(n=>`(${n.join(",")})`).join(" ");throw new Error(`shape mismatch: objects cannot be broadcast to a single shape. Mismatch is between ${e}`)}return t}function oe(r,t){return typeof t=="number"?Si(r,t):J(r,t,(e,n)=>e>n)}function ae(r,t){return typeof t=="number"?Di(r,t):J(r,t,(e,n)=>e>=n)}function se(r,t){return typeof t=="number"?xi(r,t):J(r,t,(e,n)=>e<n)}function ie(r,t){return typeof t=="number"?Ni(r,t):J(r,t,(e,n)=>e<=n)}function ue(r,t){return typeof t=="number"?wi(r,t):J(r,t,(e,n)=>e===n)}function ce(r,t){return typeof t=="number"?Ii(r,t):J(r,t,(e,n)=>e!==n)}function Wr(r,t,e=1e-5,n=1e-8){return typeof t=="number"?zi(r,t,e,n):J(r,t,(o,a)=>{let s=Math.abs(o-a),i=n+e*Math.abs(a);return s<=i})}function le(r,t,e=1e-5,n=1e-8){let o=Wr(r,t,e,n),a=o.data;for(let s=0;s<o.size;s++)if(a[s]===0)return!1;return!0}function fe(r,t){let e=[Array.from(r.shape),Array.from(t.shape)],n=X(e);if(n===null)return!1;let o=G(r,n),a=G(t,n),s=n.length,i=n.reduce((l,p)=>l*p,1),u=x(o.dtype),c=x(a.dtype);for(let l=0;l<i;l++){let p=l,f=new Array(s);for(let d=s-1;d>=0;d--)f[d]=p%n[d],p=Math.floor(p/n[d]);let y=o.get(...f),m=a.get(...f);if(u||c){let d=typeof y=="bigint"?y:BigInt(Number(y)),g=typeof m=="bigint"?m:BigInt(Number(m));if(d!==g)return!1}else if(y!==m)return!1}return!0}function Si(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 Di(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 xi(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 Ni(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 wi(r,t){let e=new Uint8Array(r.size),n=r.data,o=r.dtype;if(x(o)){let a=BigInt(Math.round(t)),s=n;for(let i=0;i<r.size;i++)e[i]=s[i]===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 Ii(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 zi(r,t,e,n){let o=new Uint8Array(r.size),a=r.data,s=r.dtype;if(x(s)){let i=a;for(let u=0;u<r.size;u++){let c=Number(i[u]),l=Math.abs(c-t),p=n+e*Math.abs(t);o[u]=l<=p?1:0}}else for(let i=0;i<r.size;i++){let u=Number(a[i]),c=Math.abs(u-t),l=n+e*Math.abs(t);o[i]=c<=l?1:0}return D.fromData(o,Array.from(r.shape),"bool")}function T(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 v(r,t,e,n){let o=n.length,a=new Array(o),s=Array.from(n).filter((u,c)=>c!==t),i=r;for(let u=s.length-1;u>=0;u--)a[u>=t?u+1:u]=i%s[u],i=Math.floor(i/s[u]);return a[t]=e,a}function ar(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,s=r.size,i=r.data;if(t===void 0)if(x(n)){let m=i,d=BigInt(0);for(let g=0;g<s;g++)d+=m[g];return Number(d)}else{let m=0;for(let d=0;d<s;d++)m+=Number(i[d]);return m}let u=t;if(u<0&&(u=a+u),u<0||u>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((m,d)=>d!==u);if(c.length===0)return ar(r);let l=D.zeros(c,n),p=l.data,f=o[u],y=c.reduce((m,d)=>m*d,1);if(x(n)){let m=i,d=p;for(let g=0;g<y;g++){let A=BigInt(0);for(let h=0;h<f;h++){let b=v(g,u,h,o),S=T(b,o);A+=m[S]}d[g]=A}}else for(let m=0;m<y;m++){let d=0;for(let g=0;g<f;g++){let A=v(m,u,g,o),h=T(A,o);d+=Number(i[h])}p[m]=d}if(e){let m=[...o];return m[u]=1,D.fromData(p,m,n)}return l}function br(r,t,e=!1){let n=r.dtype,o=r.shape;if(t===void 0)return ar(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 s=ar(r,t,e);if(typeof s=="number")return s/o[a];let i=o[a],u=n;(x(n)||n.startsWith("int")||n.startsWith("uint"))&&(u="float64");let c=D.zeros(Array.from(s.shape),u),l=c.data,p=s.data;if(x(n)){let f=p;for(let y=0;y<l.length;y++)l[y]=Number(f[y])/i}else for(let f=0;f<l.length;f++)l[f]=Number(p[f])/i;return c}function Sr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,s=r.size,i=r.data;if(t===void 0){if(s===0)throw new Error("max of empty array");let m=i[0];for(let d=1;d<s;d++)i[d]>m&&(m=i[d]);return Number(m)}let u=t;if(u<0&&(u=a+u),u<0||u>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((m,d)=>d!==u);if(c.length===0)return Sr(r);let l=D.zeros(c,n),p=l.data,f=o[u],y=c.reduce((m,d)=>m*d,1);if(x(n)){let m=i,d=p;for(let g=0;g<y;g++){let A=v(g,u,0,o),h=T(A,o),b=m[h];for(let S=1;S<f;S++){let N=v(g,u,S,o),w=T(N,o),I=m[w];I>b&&(b=I)}d[g]=b}}else for(let m=0;m<y;m++){let d=-1/0;for(let g=0;g<f;g++){let A=v(m,u,g,o),h=T(A,o),b=Number(i[h]);b>d&&(d=b)}p[m]=d}if(e){let m=[...o];return m[u]=1,D.fromData(p,m,n)}return l}function Gr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,s=r.size,i=r.data;if(t===void 0)if(x(n)){let m=i,d=BigInt(1);for(let g=0;g<s;g++)d*=m[g];return Number(d)}else{let m=1;for(let d=0;d<s;d++)m*=Number(i[d]);return m}let u=t;if(u<0&&(u=a+u),u<0||u>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((m,d)=>d!==u);if(c.length===0)return Gr(r);let l=D.zeros(c,n),p=l.data,f=o[u],y=c.reduce((m,d)=>m*d,1);if(x(n)){let m=i,d=p;for(let g=0;g<y;g++){let A=BigInt(1);for(let h=0;h<f;h++){let b=v(g,u,h,o),S=T(b,o);A*=m[S]}d[g]=A}}else for(let m=0;m<y;m++){let d=1;for(let g=0;g<f;g++){let A=v(m,u,g,o),h=T(A,o);d*=Number(i[h])}p[m]=d}if(e){let m=[...o];return m[u]=1,D.fromData(p,m,n)}return l}function Dr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,s=r.size,i=r.data;if(t===void 0){if(s===0)throw new Error("min of empty array");let m=i[0];for(let d=1;d<s;d++)i[d]<m&&(m=i[d]);return Number(m)}let u=t;if(u<0&&(u=a+u),u<0||u>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((m,d)=>d!==u);if(c.length===0)return Dr(r);let l=D.zeros(c,n),p=l.data,f=o[u],y=c.reduce((m,d)=>m*d,1);if(x(n)){let m=i,d=p;for(let g=0;g<y;g++){let A=v(g,u,0,o),h=T(A,o),b=m[h];for(let S=1;S<f;S++){let N=v(g,u,S,o),w=T(N,o),I=m[w];I<b&&(b=I)}d[g]=b}}else for(let m=0;m<y;m++){let d=1/0;for(let g=0;g<f;g++){let A=v(m,u,g,o),h=T(A,o),b=Number(i[h]);b<d&&(d=b)}p[m]=d}if(e){let m=[...o];return m[u]=1,D.fromData(p,m,n)}return l}function Hr(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.size,s=r.data;if(t===void 0){if(a===0)throw new Error("argmin of empty array");let y=s[0],m=0;for(let d=1;d<a;d++)s[d]<y&&(y=s[d],m=d);return m}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let u=Array.from(n).filter((y,m)=>m!==i);if(u.length===0)return Hr(r);let c=D.zeros(u,"int32"),l=c.data,p=n[i],f=u.reduce((y,m)=>y*m,1);if(x(e)){let y=s;for(let m=0;m<f;m++){let d=v(m,i,0,n),g=T(d,n),A=y[g],h=0;for(let b=1;b<p;b++){let S=v(m,i,b,n),N=T(S,n),w=y[N];w<A&&(A=w,h=b)}l[m]=h}}else for(let y=0;y<f;y++){let m=1/0,d=0;for(let g=0;g<p;g++){let A=v(y,i,g,n),h=T(A,n),b=Number(s[h]);b<m&&(m=b,d=g)}l[y]=d}return c}function Yr(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.size,s=r.data;if(t===void 0){if(a===0)throw new Error("argmax of empty array");let y=s[0],m=0;for(let d=1;d<a;d++)s[d]>y&&(y=s[d],m=d);return m}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let u=Array.from(n).filter((y,m)=>m!==i);if(u.length===0)return Yr(r);let c=D.zeros(u,"int32"),l=c.data,p=n[i],f=u.reduce((y,m)=>y*m,1);if(x(e)){let y=s;for(let m=0;m<f;m++){let d=v(m,i,0,n),g=T(d,n),A=y[g],h=0;for(let b=1;b<p;b++){let S=v(m,i,b,n),N=T(S,n),w=y[N];w>A&&(A=w,h=b)}l[m]=h}}else for(let y=0;y<f;y++){let m=-1/0,d=0;for(let g=0;g<p;g++){let A=v(y,i,g,n),h=T(A,n),b=Number(s[h]);b>m&&(m=b,d=g)}l[y]=d}return c}function Jr(r,t,e=0,n=!1){let o=r.shape,a=o.length,s=r.size,i=r.data,u=br(r,t,n);if(t===void 0){let A=u,h=0;for(let b=0;b<s;b++){let S=Number(i[b])-A;h+=S*S}return h/(s-e)}let c=t;if(c<0&&(c=a+c),c<0||c>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let l=o[c],p=u,f=p.data,y=n?p.shape:Array.from(o).filter((A,h)=>h!==c),m=D.zeros(Array.from(y),"float64"),d=m.data,g=y.reduce((A,h)=>A*h,1);for(let A=0;A<g;A++){let h=0,b=Number(f[A]);for(let S=0;S<l;S++){let N=v(A,c,S,o),w=T(N,o),I=Number(i[w])-b;h+=I*I}d[A]=h/(l-e)}return m}function pe(r,t,e=0,n=!1){let o=Jr(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=D.zeros(Array.from(o.shape),"float64"),s=o.data,i=a.data;for(let u=0;u<s.length;u++)i[u]=Math.sqrt(Number(s[u]));return a}function Xr(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,s=r.data;if(t===void 0){for(let y=0;y<a;y++)if(!s[y])return!1;return!0}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let u=Array.from(n).filter((y,m)=>m!==i);if(u.length===0)return Xr(r);let c=D.zeros(u,"bool"),l=c.data,p=n[i],f=u.reduce((y,m)=>y*m,1);for(let y=0;y<f;y++){let m=!0;for(let d=0;d<p;d++){let g=v(y,i,d,n),A=T(g,n);if(!s[A]){m=!1;break}}l[y]=m?1:0}if(e){let y=[...n];return y[i]=1,D.fromData(l,y,"bool")}return c}function Qr(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,s=r.data;if(t===void 0){for(let y=0;y<a;y++)if(s[y])return!0;return!1}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let u=Array.from(n).filter((y,m)=>m!==i);if(u.length===0)return Qr(r);let c=D.zeros(u,"bool"),l=c.data,p=n[i],f=u.reduce((y,m)=>y*m,1);for(let y=0;y<f;y++){let m=!1;for(let d=0;d<p;d++){let g=v(y,i,d,n),A=T(g,n);if(s[A]){m=!0;break}}l[y]=m?1:0}if(e){let y=[...n];return y[i]=1,D.fromData(l,y,"bool")}return c}function Kr(r,t){let e=r.shape,n=e.length,o=r.data;if(t===void 0){let f=r.size,y=new Float64Array(f),m=0;for(let d=0;d<f;d++)m+=Number(o[d]),y[d]=m;return D.fromData(y,[f],"float64")}let a=t;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let s=new Float64Array(r.size),i=e[a],u=[],c=1;for(let f=n-1;f>=0;f--)u.unshift(c),c*=e[f];let l=r.size,p=u[a];for(let f=0;f<l;f++)Math.floor(f/p)%i===0?s[f]=Number(o[f]):s[f]=s[f-p]+Number(o[f]);return D.fromData(s,[...e],"float64")}function rt(r,t){let e=r.shape,n=e.length,o=r.data;if(t===void 0){let f=r.size,y=new Float64Array(f),m=1;for(let d=0;d<f;d++)m*=Number(o[d]),y[d]=m;return D.fromData(y,[f],"float64")}let a=t;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let s=new Float64Array(r.size),i=e[a],u=[],c=1;for(let f=n-1;f>=0;f--)u.unshift(c),c*=e[f];let l=r.size,p=u[a];for(let f=0;f<l;f++)Math.floor(f/p)%i===0?s[f]=Number(o[f]):s[f]=s[f-p]*Number(o[f]);return D.fromData(s,[...e],"float64")}function tt(r,t,e=!1){let n=Sr(r,t,e),o=Dr(r,t,e);if(typeof n=="number"&&typeof o=="number")return n-o;let a=n,s=o,i=a.data,u=s.data,c=new Float64Array(a.size);for(let l=0;l<a.size;l++)c[l]=Number(i[l])-Number(u[l]);return D.fromData(c,[...a.shape],"float64")}function et(r,t,e=!1){return er(r,.5,t,e)}function nt(r,t,e,n=!1){return er(r,t/100,e,n)}function er(r,t,e,n=!1){if(t<0||t>1)throw new Error("Quantile must be between 0 and 1");let o=r.shape,a=o.length,s=r.data;if(e===void 0){let y=[];for(let b=0;b<r.size;b++)y.push(Number(s[b]));y.sort((b,S)=>b-S);let m=y.length,d=t*(m-1),g=Math.floor(d),A=Math.ceil(d);if(g===A)return y[g];let h=d-g;return y[g]*(1-h)+y[A]*h}let i=e;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);let u=Array.from(o).filter((y,m)=>m!==i);if(u.length===0)return er(r,t);let c=u.reduce((y,m)=>y*m,1),l=o[i],p=new Float64Array(c);for(let y=0;y<c;y++){let m=[];for(let b=0;b<l;b++){let S=v(y,i,b,o),N=T(S,o);m.push(Number(s[N]))}m.sort((b,S)=>b-S);let d=m.length,g=t*(d-1),A=Math.floor(g),h=Math.ceil(g);if(A===h)p[y]=m[A];else{let b=g-A;p[y]=m[A]*(1-b)+m[h]*b}}let f=D.fromData(p,u,"float64");if(n){let y=[...o];return y[i]=1,D.fromData(p,y,"float64")}return f}function xr(r,t,e,n=!1){let o=r.shape,a=o.length,s=r.data;if(e===void 0)return br(r,t,n);if(t===void 0){let m=0,d=0,g=e.data;for(let A=0;A<r.size;A++){let h=Number(g[A%e.size]);m+=Number(s[A])*h,d+=h}return d===0?NaN:m/d}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 u=Array.from(o).filter((m,d)=>d!==i);if(u.length===0)return xr(r,void 0,e);let c=u.reduce((m,d)=>m*d,1),l=o[i],p=e.data,f=new Float64Array(c);for(let m=0;m<c;m++){let d=0,g=0;for(let A=0;A<l;A++){let h=v(m,i,A,o),b=T(h,o),S=Number(p[A%e.size]);d+=Number(s[b])*S,g+=S}f[m]=g===0?NaN:d/g}let y=D.fromData(f,u,"float64");if(n){let m=[...o];return m[i]=1,D.fromData(f,m,"float64")}return y}function Nr(r,t,e=!1){let n=r.shape,o=n.length,a=r.data;if(t===void 0){let f=0;for(let y=0;y<r.size;y++){let m=Number(a[y]);isNaN(m)||(f+=m)}return f}let s=t;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let i=Array.from(n).filter((f,y)=>y!==s);if(i.length===0)return Nr(r);let u=i.reduce((f,y)=>f*y,1),c=n[s],l=new Float64Array(u);for(let f=0;f<u;f++){let y=0;for(let m=0;m<c;m++){let d=v(f,s,m,n),g=T(d,n),A=Number(a[g]);isNaN(A)||(y+=A)}l[f]=y}let p=D.fromData(l,i,"float64");if(e){let f=[...n];return f[s]=1,D.fromData(l,f,"float64")}return p}function wr(r,t,e=!1){let n=r.shape,o=n.length,a=r.data;if(t===void 0){let f=1;for(let y=0;y<r.size;y++){let m=Number(a[y]);isNaN(m)||(f*=m)}return f}let s=t;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let i=Array.from(n).filter((f,y)=>y!==s);if(i.length===0)return wr(r);let u=i.reduce((f,y)=>f*y,1),c=n[s],l=new Float64Array(u);for(let f=0;f<u;f++){let y=1;for(let m=0;m<c;m++){let d=v(f,s,m,n),g=T(d,n),A=Number(a[g]);isNaN(A)||(y*=A)}l[f]=y}let p=D.fromData(l,i,"float64");if(e){let f=[...n];return f[s]=1,D.fromData(l,f,"float64")}return p}function Ir(r,t,e=!1){let n=r.shape,o=n.length,a=r.data;if(t===void 0){let f=0,y=0;for(let m=0;m<r.size;m++){let d=Number(a[m]);isNaN(d)||(f+=d,y++)}return y===0?NaN:f/y}let s=t;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let i=Array.from(n).filter((f,y)=>y!==s);if(i.length===0)return Ir(r);let u=i.reduce((f,y)=>f*y,1),c=n[s],l=new Float64Array(u);for(let f=0;f<u;f++){let y=0,m=0;for(let d=0;d<c;d++){let g=v(f,s,d,n),A=T(g,n),h=Number(a[A]);isNaN(h)||(y+=h,m++)}l[f]=m===0?NaN:y/m}let p=D.fromData(l,i,"float64");if(e){let f=[...n];return f[s]=1,D.fromData(l,f,"float64")}return p}function sr(r,t,e=0,n=!1){let o=r.shape,a=o.length,s=r.data;if(t===void 0){let y=0,m=0;for(let A=0;A<r.size;A++){let h=Number(s[A]);isNaN(h)||(y+=h,m++)}if(m-e<=0)return NaN;let d=y/m,g=0;for(let A=0;A<r.size;A++){let h=Number(s[A]);isNaN(h)||(g+=(h-d)**2)}return g/(m-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 u=Array.from(o).filter((y,m)=>m!==i);if(u.length===0)return sr(r,void 0,e);let c=u.reduce((y,m)=>y*m,1),l=o[i],p=new Float64Array(c);for(let y=0;y<c;y++){let m=0,d=0;for(let h=0;h<l;h++){let b=v(y,i,h,o),S=T(b,o),N=Number(s[S]);isNaN(N)||(m+=N,d++)}if(d-e<=0){p[y]=NaN;continue}let g=m/d,A=0;for(let h=0;h<l;h++){let b=v(y,i,h,o),S=T(b,o),N=Number(s[S]);isNaN(N)||(A+=(N-g)**2)}p[y]=A/(d-e)}let f=D.fromData(p,u,"float64");if(n){let y=[...o];return y[i]=1,D.fromData(p,y,"float64")}return f}function ot(r,t,e=0,n=!1){let o=sr(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=o,s=new Float64Array(a.size);for(let i=0;i<a.size;i++)s[i]=Math.sqrt(Number(a.data[i]));return D.fromData(s,[...a.shape],"float64")}function zr(r,t,e=!1){let n=r.shape,o=n.length,a=r.data;if(t===void 0){let f=1/0;for(let y=0;y<r.size;y++){let m=Number(a[y]);!isNaN(m)&&m<f&&(f=m)}return f===1/0?NaN:f}let s=t;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let i=Array.from(n).filter((f,y)=>y!==s);if(i.length===0)return zr(r);let u=i.reduce((f,y)=>f*y,1),c=n[s],l=new Float64Array(u);for(let f=0;f<u;f++){let y=1/0;for(let m=0;m<c;m++){let d=v(f,s,m,n),g=T(d,n),A=Number(a[g]);!isNaN(A)&&A<y&&(y=A)}l[f]=y===1/0?NaN:y}let p=D.fromData(l,i,"float64");if(e){let f=[...n];return f[s]=1,D.fromData(l,f,"float64")}return p}function _r(r,t,e=!1){let n=r.shape,o=n.length,a=r.data;if(t===void 0){let f=-1/0;for(let y=0;y<r.size;y++){let m=Number(a[y]);!isNaN(m)&&m>f&&(f=m)}return f===-1/0?NaN:f}let s=t;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let i=Array.from(n).filter((f,y)=>y!==s);if(i.length===0)return _r(r);let u=i.reduce((f,y)=>f*y,1),c=n[s],l=new Float64Array(u);for(let f=0;f<u;f++){let y=-1/0;for(let m=0;m<c;m++){let d=v(f,s,m,n),g=T(d,n),A=Number(a[g]);!isNaN(A)&&A>y&&(y=A)}l[f]=y===-1/0?NaN:y}let p=D.fromData(l,i,"float64");if(e){let f=[...n];return f[s]=1,D.fromData(l,f,"float64")}return p}function Br(r,t){let e=r.shape,n=e.length,o=r.data;if(t===void 0){let l=1/0,p=-1;for(let f=0;f<r.size;f++){let y=Number(o[f]);!isNaN(y)&&y<l&&(l=y,p=f)}return p}let a=t;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let s=Array.from(e).filter((l,p)=>p!==a);if(s.length===0)return Br(r);let i=s.reduce((l,p)=>l*p,1),u=e[a],c=new Int32Array(i);for(let l=0;l<i;l++){let p=1/0,f=0;for(let y=0;y<u;y++){let m=v(l,a,y,e),d=T(m,e),g=Number(o[d]);!isNaN(g)&&g<p&&(p=g,f=y)}c[l]=f}return D.fromData(c,s,"int32")}function Er(r,t){let e=r.shape,n=e.length,o=r.data;if(t===void 0){let l=-1/0,p=-1;for(let f=0;f<r.size;f++){let y=Number(o[f]);!isNaN(y)&&y>l&&(l=y,p=f)}return p}let a=t;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let s=Array.from(e).filter((l,p)=>p!==a);if(s.length===0)return Er(r);let i=s.reduce((l,p)=>l*p,1),u=e[a],c=new Int32Array(i);for(let l=0;l<i;l++){let p=-1/0,f=0;for(let y=0;y<u;y++){let m=v(l,a,y,e),d=T(m,e),g=Number(o[d]);!isNaN(g)&&g>p&&(p=g,f=y)}c[l]=f}return D.fromData(c,s,"int32")}function at(r,t){let e=r.shape,n=e.length,o=r.data;if(t===void 0){let f=r.size,y=new Float64Array(f),m=0;for(let d=0;d<f;d++){let g=Number(o[d]);isNaN(g)||(m+=g),y[d]=m}return D.fromData(y,[f],"float64")}let a=t;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let s=new Float64Array(r.size),i=e[a],u=[],c=1;for(let f=n-1;f>=0;f--)u.unshift(c),c*=e[f];let l=r.size,p=u[a];for(let f=0;f<l;f++){let y=Number(o[f]);Math.floor(f/p)%i===0?s[f]=isNaN(y)?0:y:s[f]=s[f-p]+(isNaN(y)?0:y)}return D.fromData(s,[...e],"float64")}function st(r,t){let e=r.shape,n=e.length,o=r.data;if(t===void 0){let f=r.size,y=new Float64Array(f),m=1;for(let d=0;d<f;d++){let g=Number(o[d]);isNaN(g)||(m*=g),y[d]=m}return D.fromData(y,[f],"float64")}let a=t;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let s=new Float64Array(r.size),i=e[a],u=[],c=1;for(let f=n-1;f>=0;f--)u.unshift(c),c*=e[f];let l=r.size,p=u[a];for(let f=0;f<l;f++){let y=Number(o[f]);Math.floor(f/p)%i===0?s[f]=isNaN(y)?1:y:s[f]=s[f-p]*(isNaN(y)?1:y)}return D.fromData(s,[...e],"float64")}function Ur(r,t,e=!1){let n=r.shape,o=n.length,a=r.data;if(t===void 0){let f=[];for(let d=0;d<r.size;d++){let g=Number(a[d]);isNaN(g)||f.push(g)}if(f.length===0)return NaN;f.sort((d,g)=>d-g);let y=f.length,m=Math.floor(y/2);return y%2===0?(f[m-1]+f[m])/2:f[m]}let s=t;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let i=Array.from(n).filter((f,y)=>y!==s);if(i.length===0)return Ur(r);let u=i.reduce((f,y)=>f*y,1),c=n[s],l=new Float64Array(u);for(let f=0;f<u;f++){let y=[];for(let g=0;g<c;g++){let A=v(f,s,g,n),h=T(A,n),b=Number(a[h]);isNaN(b)||y.push(b)}if(y.length===0){l[f]=NaN;continue}y.sort((g,A)=>g-A);let m=y.length,d=Math.floor(m/2);m%2===0?l[f]=(y[d-1]+y[d])/2:l[f]=y[d]}let p=D.fromData(l,i,"float64");if(e){let f=[...n];return f[s]=1,D.fromData(l,f,"float64")}return p}function j(r,t){let e=r.size,n=r.dtype,o=t.indexOf(-1),a;if(o!==-1){let c=t.reduce((p,f,y)=>y===o?p:p*f,1),l=e/c;if(!Number.isInteger(l))throw new Error(`cannot reshape array of size ${e} into shape ${JSON.stringify(t)}`);a=t.map((p,f)=>f===o?l:p)}else a=t;if(a.reduce((c,l)=>c*l,1)!==e)throw new Error(`cannot reshape array of size ${e} into shape ${JSON.stringify(a)}`);if(r.isCContiguous){let c=r.data;return D.fromData(c,a,n,L(a),0)}let u=r.copy().data;return D.fromData(u,a,n,L(a),0)}function Tr(r){let t=r.size,e=r.dtype,n=O(e);if(!n)throw new Error(`Cannot flatten array with dtype ${e}`);if(r.isCContiguous){let i=r.data.slice(r.offset,r.offset+t);return D.fromData(i,[t],e,[1],0)}let o=new n(t),a=x(e);for(let s=0;s<t;s++){let i=r.iget(s);o[s]=i}return D.fromData(o,[t],e,[1],0)}function ur(r){let t=r.size,e=r.dtype;if(r.isCContiguous){let n=r.data;return D.fromData(n,[t],e,[1],0)}return Tr(r)}function cr(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,s=r.dtype,i;if(t===void 0)i=Array.from({length:n},(p,f)=>n-1-f);else{if(t.length!==n)throw new Error(`axes must have length ${n}, got ${t.length}`);let p=new Set;for(let f of t){let y=f<0?n+f:f;if(y<0||y>=n)throw new Error(`axis ${f} is out of bounds for array of dimension ${n}`);if(p.has(y))throw new Error("repeated axis in transpose");p.add(y)}i=t.map(f=>f<0?n+f:f)}let u=i.map(p=>e[p]),c=Array.from(o),l=i.map(p=>c[p]);return D.fromData(a,u,s,l,r.offset)}function ye(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,s=r.dtype;if(t===void 0){let i=[],u=[];for(let c=0;c<n;c++)e[c]!==1&&(i.push(e[c]),u.push(o[c]));return i.length===0&&(i.push(1),u.push(1)),D.fromData(a,i,s,u,r.offset)}else{let i=t<0?n+t:t;if(i<0||i>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);if(e[i]!==1)throw new Error(`cannot select an axis which has size not equal to one (axis ${t} has size ${e[i]})`);let u=[],c=[];for(let l=0;l<n;l++)l!==i&&(u.push(e[l]),c.push(o[l]));return D.fromData(a,u,s,c,r.offset)}}function ir(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,s=r.dtype,i=t;if(i<0&&(i=n+t+1),i<0||i>n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n+1}`);let u=[...Array.from(e)];u.splice(i,0,1);let c=[...Array.from(o)],l=i<n?o[i]*(e[i]||1):1;return c.splice(i,0,l),D.fromData(a,u,s,c,r.offset)}function me(r,t,e){let n=r.shape,o=n.length,a=r.strides,s=r.data,i=r.dtype,u=t<0?o+t:t,c=e<0?o+e:e;if(u<0||u>=o)throw new Error(`axis1 ${t} is out of bounds for array of dimension ${o}`);if(c<0||c>=o)throw new Error(`axis2 ${e} is out of bounds for array of dimension ${o}`);if(u===c)return D.fromData(s,Array.from(n),i,Array.from(a),r.offset);let l=Array.from(n),p=Array.from(a);return[l[u],l[c]]=[l[c],l[u]],[p[u],p[c]]=[p[c],p[u]],D.fromData(s,l,i,p,r.offset)}function it(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 s=o.map(c=>{let l=c<0?n+c:c;if(l<0||l>=n)throw new Error(`source axis ${c} is out of bounds for array of dimension ${n}`);return l}),i=a.map(c=>{let l=c<0?n+c:c;if(l<0||l>=n)throw new Error(`destination axis ${c} is out of bounds for array of dimension ${n}`);return l});if(new Set(s).size!==s.length)throw new Error("repeated axis in source");if(new Set(i).size!==i.length)throw new Error("repeated axis in destination");let u=[];for(let c=0;c<n;c++)s.includes(c)||u.push(c);for(let c=0;c<s.length;c++){let l=i[c];u.splice(l,0,s[c])}return cr(r,u)}function Q(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 y=1;y<r.length;y++){let m=r[y];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 s=Array.from(e.shape),i=e.shape[a];for(let y=1;y<r.length;y++)i+=r[y].shape[a];s[a]=i;let u=s.reduce((y,m)=>y*m,1),c=O(o);if(!c)throw new Error(`Cannot concatenate arrays with dtype ${o}`);let l=new c(u),p=L(s),f=0;for(let y of r){let m=y.shape[a];Ei(y,l,s,p,a,f,o),f+=m}return D.fromData(l,s,o)}function Ei(r,t,e,n,o,a,s){let i=r.shape,u=i.length,c=r.size,l=s==="int64"||s==="uint64";if(o===0&&r.isCContiguous&&u>0){let y=a*n[0],m=r.data,d=r.offset,g=d+c;t.set(m.subarray(d,g),y);return}if(o===1&&u===2&&r.isCContiguous){let y=i[0],m=i[1],d=e[1],g=r.data,A=r.offset;for(let h=0;h<y;h++){let b=A+h*m,S=h*d+a;t.set(g.subarray(b,b+m),S)}return}let p=new Array(u).fill(0),f=a*n[o];for(let y=0;y<c;y++){let m=r.iget(y),d=f;for(let g=0;g<u;g++)d+=p[g]*n[g];t[d]=m;for(let g=u-1;g>=0&&(p[g]++,!(p[g]<i[g]));g--)p[g]=0}}function de(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 i=1;i<r.length;i++){let u=r[i];if(u.ndim!==o)throw new Error("all input arrays must have the same shape");for(let c=0;c<o;c++)if(u.shape[c]!==n[c])throw new Error("all input arrays must have the same shape")}let s=r.map(i=>ir(i,a));return Q(s,a)}function ge(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 Q(t,0)}function ut(r){if(r.length===0)throw new Error("need at least one array to stack");return r.every(e=>e.ndim===1)?Q(r,0):Q(r,1)}function he(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?j(ir(j(e,[1,e.shape[0]]),2),[1,e.shape[0],1]):e.ndim===2?ir(e,2):e);return Q(t,2)}function Ae(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 s=n[a],i;if(typeof t=="number"){if(s%t!==0)throw new Error("array split does not result in an equal division");let u=s/t;i=[];for(let c=1;c<t;c++)i.push(c*u)}else i=t;return be(r,i,a)}function lr(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 s=n[a],i;if(typeof t=="number"){let u=t,c=Math.floor(s/u),l=s%u;i=[];let p=0;for(let f=0;f<u-1;f++)p+=c+(f<l?1:0),i.push(p)}else i=t;return be(r,i,a)}function be(r,t,e){let n=r.shape,o=n[e],a=[0,...t,o],s=[];for(let i=0;i<a.length-1;i++){let u=a[i],c=a[i+1];if(u>c)throw new Error("split indices must be in ascending order");let l=Array.from(n);l[e]=c-u;let p=r.offset+u*r.strides[e];s.push(D.fromData(r.data,l,r.dtype,Array.from(r.strides),p))}return s}function Se(r,t){if(r.ndim<2)throw new Error("vsplit only works on arrays of 2 or more dimensions");return lr(r,t,0)}function De(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 lr(r,t,e)}function xe(r,t){let e=r.shape,n=e.length,o=r.dtype,a=Array.isArray(t)?t:[t],s=Math.max(n,a.length),i=new Array(s).fill(1),u=new Array(s).fill(1);for(let h=0;h<n;h++)i[s-n+h]=e[h];for(let h=0;h<a.length;h++)u[s-a.length+h]=a[h];let c=i.map((h,b)=>h*u[b]),l=c.reduce((h,b)=>h*b,1),p=O(o);if(!p)throw new Error(`Cannot tile array with dtype ${o}`);let f=new p(l),y=L(c),m=r;n<s&&(m=j(r,i));let d=o==="int64"||o==="uint64",g=m.strides,A=new Array(s).fill(0);for(let h=0;h<l;h++){let b=m.offset;for(let w=0;w<s;w++){let I=A[w]%i[w];b+=I*g[w]}let S=m.data[b],N=0;for(let w=0;w<s;w++)N+=A[w]*y[w];f[N]=S;for(let w=s-1;w>=0&&(A[w]++,!(A[w]<c[w]));w--)A[w]=0}return D.fromData(f,c,o)}function Ne(r,t,e){let n=r.shape,o=n.length,a=r.dtype,s=r.size;if(e===void 0){let h=s,b=Array.isArray(t)?t:new Array(h).fill(t);if(b.length!==h)throw new Error(`operands could not be broadcast together with shape (${h},) (${b.length},)`);let S=b.reduce((z,B)=>z+B,0),N=O(a);if(!N)throw new Error(`Cannot repeat array with dtype ${a}`);let w=new N(S),I=0;for(let z=0;z<h;z++){let B=r.iget(z),E=b[z];for(let U=0;U<E;U++)w[I++]=B}return D.fromData(w,[S],a)}let i=e<0?o+e:e;if(i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=n[i],c=Array.isArray(t)?t:new Array(u).fill(t);if(c.length!==u)throw new Error(`operands could not be broadcast together with shape (${u},) (${c.length},)`);let l=Array.from(n);l[i]=c.reduce((h,b)=>h+b,0);let p=l.reduce((h,b)=>h*b,1),f=O(a);if(!f)throw new Error(`Cannot repeat array with dtype ${a}`);let y=new f(p),m=L(l),d=new Array(o).fill(0),g=a==="int64"||a==="uint64",A=[0];for(let h=0;h<u;h++)A.push(A[h]+c[h]);for(let h=0;h<s;h++){let b=r.iget(h),S=d[i],N=c[S],w=0;for(let B=0;B<o;B++)B!==i&&(w+=d[B]*m[B]);let I=m[i],z=A[S];for(let B=0;B<N;B++){let E=w+(z+B)*I;y[E]=b}for(let B=o-1;B>=0&&(d[B]++,!(d[B]<n[B]));B--)d[B]=0}return D.fromData(y,l,a)}function we(r,t){let e=r.shape,n=e.length,o=r.dtype,a=r.size,s;if(t===void 0)s=new Set(Array.from({length:n},(f,y)=>y));else if(typeof t=="number"){let f=t<0?n+t:t;if(f<0||f>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);s=new Set([f])}else s=new Set(t.map(f=>{let y=f<0?n+f:f;if(y<0||y>=n)throw new Error(`axis ${f} is out of bounds for array of dimension ${n}`);return y}));let i=O(o);if(!i)throw new Error(`Cannot flip array with dtype ${o}`);let u=new i(a),c=x(o);if(n===1&&r.isCContiguous){let f=r.data,y=r.offset;for(let m=0;m<a;m++)u[m]=f[y+a-1-m];return D.fromData(u,[...e],o)}if(n===2&&r.isCContiguous){let f=e[0],y=e[1],m=r.data,d=r.offset;if(s.size===2){for(let g=0;g<a;g++)u[g]=m[d+a-1-g];return D.fromData(u,[...e],o)}if(s.size===1){if(s.has(0)){for(let g=0;g<f;g++){let A=d+(f-1-g)*y,h=g*y;for(let b=0;b<y;b++)u[h+b]=m[A+b]}return D.fromData(u,[...e],o)}else if(s.has(1)){for(let g=0;g<f;g++){let A=d+g*y,h=g*y;for(let b=0;b<y;b++)u[h+b]=m[A+y-1-b]}return D.fromData(u,[...e],o)}}}let l=new Array(n),p=new Array(n).fill(0);for(let f=0;f<a;f++){for(let d=0;d<n;d++)l[d]=s.has(d)?e[d]-1-p[d]:p[d];let y=r.offset;for(let d=0;d<n;d++)y+=l[d]*r.strides[d];let m=r.data[y];u[f]=m;for(let d=n-1;d>=0&&(p[d]++,!(p[d]<e[d]));d--)p[d]=0}return D.fromData(u,[...e],o)}function Ie(r,t=1,e=[0,1]){let n=r.shape,o=n.length,a=r.dtype;if(o<2)throw new Error("Input must be at least 2-D");let s=e[0]<0?o+e[0]:e[0],i=e[1]<0?o+e[1]:e[1];if(s<0||s>=o||i<0||i>=o)throw new Error(`Axes are out of bounds for array of dimension ${o}`);if(s===i)throw new Error("Axes must be different");if(t=(t%4+4)%4,t===0)return r.copy();let u=O(a);if(!u)throw new Error(`Cannot rotate array with dtype ${a}`);let c=[...n];(t===1||t===3)&&([c[s],c[i]]=[c[i],c[s]]);let l=c.reduce((g,A)=>g*A,1),p=new u(l),f=L(c),y=x(a),m=new Array(o).fill(0),d=new Array(o);for(let g=0;g<r.size;g++){for(let N=0;N<o;N++)d[N]=m[N];let A,h;t===1?(A=n[i]-1-m[i],h=m[s]):t===2?(A=n[s]-1-m[s],h=n[i]-1-m[i],d[s]=A,d[i]=h):(A=m[i],h=n[s]-1-m[s]),t!==2&&(d[s]=A,d[i]=h);let b=0;for(let N=0;N<o;N++)b+=d[N]*f[N];let S=r.iget(g);p[b]=S;for(let N=o-1;N>=0&&(m[N]++,!(m[N]<n[N]));N--)m[N]=0}return D.fromData(p,c,a)}function ze(r,t,e){let n=r.shape,o=n.length,a=r.dtype,s=r.size;if(e===void 0){let m=Array.isArray(t)?t.reduce((b,S)=>b+S,0):t,d=Tr(r),g=O(a);if(!g)throw new Error(`Cannot roll array with dtype ${a}`);let A=new g(s),h=x(a);for(let b=0;b<s;b++){let S=((b-m)%s+s)%s,N=d.iget(S);A[b]=N}return D.fromData(A,[...n],a)}let i=Array.isArray(t)?t:[t],u=Array.isArray(e)?e:[e];if(i.length!==u.length)throw new Error("shift and axis must have the same length");let c=u.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}),l=O(a);if(!l)throw new Error(`Cannot roll array with dtype ${a}`);let p=new l(s),f=x(a),y=new Array(o).fill(0);for(let m=0;m<s;m++){let d=[...y];for(let h=0;h<c.length;h++){let b=c[h],S=n[b],N=i[h];d[b]=((d[b]-N)%S+S)%S}let g=r.offset;for(let h=0;h<o;h++)g+=d[h]*r.strides[h];let A=r.data[g];p[m]=A;for(let h=o-1;h>=0&&(y[h]++,!(y[h]<n[h]));h--)y[h]=0}return D.fromData(p,[...n],a)}function _e(r,t,e=0){let n=r.ndim,o=t<0?n+t:t;if(o<0||o>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let a=e<0?n+e:e;if(a<0||a>n)throw new Error(`start ${e} is out of bounds`);return o<a&&a--,o===a?D.fromData(r.data,Array.from(r.shape),r.dtype,Array.from(r.strides),r.offset):it(r,o,a)}function Be(r,t){if(r.ndim<3)throw new Error("dsplit only works on arrays of 3 or more dimensions");return lr(r,t,2)}function Ee(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,[e.shape[0],1]):e);return ut(t)}function Ue(r,t){let e=r.dtype,n=t.reduce((u,c)=>u*c,1),o=r.size,a=O(e);if(!a)throw new Error(`Cannot resize array with dtype ${e}`);let s=new a(n),i=x(e);for(let u=0;u<n;u++){let c=u%o,l=r.iget(c);s[u]=l}return D.fromData(s,t,e)}function Te(r){return r.map(t=>t.ndim===0?j(t,[1]):t)}function ve(r){return r.map(t=>t.ndim===0?j(t,[1,1]):t.ndim===1?j(t,[1,t.shape[0]]):t)}function Oe(r){return r.map(t=>t.ndim===0?j(t,[1,1,1]):t.ndim===1?j(t,[1,t.shape[0],1]):t.ndim===2?j(t,[t.shape[0],t.shape[1],1]):t)}function Ui(r,t,e,n,o,a,s,i,u,c,l,p,f,y){if(p===0)for(let A=0;A<n*o;A++)f[A]=0;else if(p!==1)for(let A=0;A<n*o;A++)f[A]=(f[A]??0)*p;let m=r==="row-major",d=t==="transpose",g=e==="transpose";if(m&&!d&&!g)for(let A=0;A<n;A++)for(let h=0;h<o;h++){let b=0;for(let S=0;S<a;S++)b+=(i[A*u+S]??0)*(c[S*l+h]??0);f[A*y+h]=(f[A*y+h]??0)+s*b}else if(m&&d&&!g)for(let A=0;A<n;A++)for(let h=0;h<o;h++){let b=0;for(let S=0;S<a;S++)b+=(i[S*u+A]??0)*(c[S*l+h]??0);f[A*y+h]=(f[A*y+h]??0)+s*b}else if(m&&!d&&g)for(let A=0;A<n;A++)for(let h=0;h<o;h++){let b=0;for(let S=0;S<a;S++)b+=(i[A*u+S]??0)*(c[h*l+S]??0);f[A*y+h]=(f[A*y+h]??0)+s*b}else if(m&&d&&g)for(let A=0;A<n;A++)for(let h=0;h<o;h++){let b=0;for(let S=0;S<a;S++)b+=(i[S*u+A]??0)*(c[h*l+S]??0);f[A*y+h]=(f[A*y+h]??0)+s*b}else if(!m&&!d&&!g)for(let A=0;A<n;A++)for(let h=0;h<o;h++){let b=0;for(let S=0;S<a;S++)b+=(i[S*u+A]??0)*(c[h*l+S]??0);f[h*y+A]=(f[h*y+A]??0)+s*b}else if(!m&&d&&!g)for(let A=0;A<n;A++)for(let h=0;h<o;h++){let b=0;for(let S=0;S<a;S++)b+=(i[A*u+S]??0)*(c[h*l+S]??0);f[h*y+A]=(f[h*y+A]??0)+s*b}else if(!m&&!d&&g)for(let A=0;A<n;A++)for(let h=0;h<o;h++){let b=0;for(let S=0;S<a;S++)b+=(i[S*u+A]??0)*(c[S*l+h]??0);f[h*y+A]=(f[h*y+A]??0)+s*b}else for(let A=0;A<n;A++)for(let h=0;h<o;h++){let b=0;for(let S=0;S<a;S++)b+=(i[A*u+S]??0)*(c[S*l+h]??0);f[h*y+A]=(f[h*y+A]??0)+s*b}}function lt(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 s=C(r.dtype,t.dtype),i=D.zeros([...t.shape],s);for(let u=0;u<t.size;u++){let c=t.data[u+t.offset];typeof o=="bigint"&&typeof c=="bigint"?i.data[u]=o*c:i.data[u]=Number(o)*Number(c)}return i}else{let s=C(r.dtype,t.dtype),i=D.zeros([...r.shape],s);for(let u=0;u<r.size;u++){let c=r.data[u+r.offset];typeof c=="bigint"&&typeof a=="bigint"?i.data[u]=c*a:i.data[u]=Number(c)*Number(a)}return i}}if(e===1&&n===1){if(r.shape[0]!==t.shape[0])throw new Error(`dot: incompatible shapes (${r.shape[0]},) and (${t.shape[0]},)`);let o=r.shape[0],a=0;for(let s=0;s<o;s++){let i=r.get(s),u=t.get(s);typeof i=="bigint"&&typeof u=="bigint"?a=Number(a)+Number(i*u):a+=Number(i)*Number(u)}return a}if(e===2&&n===2)return K(r,t);if(e===2&&n===1){let[o,a]=r.shape,s=t.shape[0];if(a!==s)throw new Error(`dot: incompatible shapes (${o},${a}) and (${s},)`);let i=C(r.dtype,t.dtype),u=D.zeros([o],i);for(let c=0;c<o;c++){let l=0;for(let p=0;p<a;p++){let f=r.get(c,p),y=t.get(p);typeof f=="bigint"&&typeof y=="bigint"?l=Number(l)+Number(f*y):l+=Number(f)*Number(y)}u.set([c],l)}return u}if(e===1&&n===2){let o=r.shape[0],[a,s]=t.shape;if(o!==a)throw new Error(`dot: incompatible shapes (${o},) and (${a},${s})`);let i=C(r.dtype,t.dtype),u=D.zeros([s],i);for(let c=0;c<s;c++){let l=0;for(let p=0;p<o;p++){let f=r.get(p),y=t.get(p,c);typeof f=="bigint"&&typeof y=="bigint"?l=Number(l)+Number(f*y):l+=Number(f)*Number(y)}u.set([c],l)}return u}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 s=[...r.shape.slice(0,-1)],i=C(r.dtype,t.dtype),u=D.zeros(s,i),c=s.reduce((l,p)=>l*p,1);for(let l=0;l<c;l++){let p=0,f=l,y=[];for(let m=s.length-1;m>=0;m--)y[m]=f%s[m],f=Math.floor(f/s[m]);for(let m=0;m<o;m++){let d=[...y,m],g=r.get(...d),A=t.get(m);typeof g=="bigint"&&typeof A=="bigint"?p=Number(p)+Number(g*A):p+=Number(g)*Number(A)}u.set(y,p)}return u}if(e===1&&n>2){let o=r.shape[0],a=1,s=t.shape[a];if(o!==s)throw new Error(`dot: incompatible shapes (${o},) and ${JSON.stringify(t.shape)}`);let i=[...t.shape.slice(0,a),...t.shape.slice(a+1)],u=C(r.dtype,t.dtype),c=D.zeros(i,u),l=i.reduce((p,f)=>p*f,1);for(let p=0;p<l;p++){let f=p,y=[];for(let A=i.length-1;A>=0;A--)y[A]=f%i[A],f=Math.floor(f/i[A]);let m=y.slice(0,a),d=y.slice(a),g=0;for(let A=0;A<o;A++){let h=r.get(A),b=[...m,A,...d],S=t.get(...b);typeof h=="bigint"&&typeof S=="bigint"?g=Number(g)+Number(h*S):g+=Number(h)*Number(S)}c.set(y,g)}return c}if(e>=2&&n>=2&&!(e===2&&n===2)){let o=r.shape[e-1],a=t.shape[n-2];if(o!==a)throw new Error(`dot: incompatible shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(t.shape)}`);let s=[...r.shape.slice(0,-1),...t.shape.slice(0,-2),t.shape[n-1]],i=C(r.dtype,t.dtype),u=D.zeros(s,i),c=r.shape.slice(0,-1).reduce((y,m)=>y*m,1),l=t.shape.slice(0,-2).reduce((y,m)=>y*m,1),p=t.shape[n-1],f=o;for(let y=0;y<c;y++)for(let m=0;m<l;m++)for(let d=0;d<p;d++){let g=0;for(let h=0;h<f;h++){let b=y*f+h,S=r.data[b+r.offset],N=m*f*p+h*p+d,w=t.data[N+t.offset];typeof S=="bigint"&&typeof w=="bigint"?g=Number(g)+Number(S*w):g+=Number(S)*Number(w)}let A=y*l*p+m*p+d;u.data[A]=g}return u}throw new Error(`dot: unexpected combination of dimensions ${e}D \xB7 ${n}D`)}function K(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 s=C(r.dtype,t.dtype),i=s.startsWith("int")||s.startsWith("uint")||s==="bool"?"float64":s;if(i!=="float64")throw new Error(`matmul currently only supports float64, got ${i}`);let u=r.dtype==="float64"?r.data:Float64Array.from(Array.from(r.data).map(Number)),c=t.dtype==="float64"?t.data:Float64Array.from(Array.from(t.data).map(Number));r.offset>0&&(u=u.subarray(r.offset)),t.offset>0&&(c=c.subarray(t.offset));let[l=0,p=0]=r.strides,[f=0,y=0]=t.strides,m=p>l,d=y>f,g=m?"transpose":"no-transpose",A=d?"transpose":"no-transpose",h,b;m?h=p:h=l,d?b=y:b=f;let S=D.zeros([e,a],"float64");return Ui("row-major",g,A,e,a,n,1,u,h,c,b,0,S.data,a),S}function Ce(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 s=r.get(a,a);typeof s=="bigint"?o=(typeof o=="bigint"?o:BigInt(o))+s:o=(typeof o=="bigint"?Number(o):o)+s}return o}function Me(r,t){return cr(r,t)}function ke(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 lt(r,t);let s=[...r.shape.slice(0,-1),...t.shape.slice(0,-1)],i=C(r.dtype,t.dtype),u=D.zeros(s,i),c=e===1?1:r.shape.slice(0,-1).reduce((f,y)=>f*y,1),l=n===1?1:t.shape.slice(0,-1).reduce((f,y)=>f*y,1),p=o;for(let f=0;f<c;f++)for(let y=0;y<l;y++){let m=0;for(let g=0;g<p;g++){let A=e===1?g:f*p+g,h=n===1?g:y*p+g,b=r.data[A+r.offset],S=t.data[h+t.offset];typeof b=="bigint"&&typeof S=="bigint"?m=Number(m)+Number(b*S):m+=Number(b)*Number(S)}if(s.length===0)return m;let d=c===1?y:f*l+y;u.data[d]=m}return u}function ft(r,t){let e=r.ndim===1?r:ur(r),n=t.ndim===1?t:ur(t),o=e.size,a=n.size,s=C(r.dtype,t.dtype),i=D.zeros([o,a],s);for(let u=0;u<o;u++)for(let c=0;c<a;c++){let l=e.get(u),p=n.get(c),f;typeof l=="bigint"&&typeof p=="bigint"?f=l*p:f=Number(l)*Number(p),i.set([u,c],f)}return i}function Ve(r,t,e){let n,o;if(typeof e=="number"){let f=e;if(f<0)throw new Error("tensordot: axes must be non-negative");if(f>r.ndim||f>t.ndim)throw new Error("tensordot: axes exceeds array dimensions");n=Array.from({length:f},(y,m)=>r.ndim-f+m),o=Array.from({length:f},(y,m)=>m)}else if([n,o]=e,n.length!==o.length)throw new Error("tensordot: axes lists must have same length");for(let f=0;f<n.length;f++){let y=n[f],m=o[f];if(y<0||y>=r.ndim||m<0||m>=t.ndim)throw new Error("tensordot: axis out of bounds");if(r.shape[y]!==t.shape[m])throw new Error(`tensordot: shape mismatch on axes ${y} and ${m}: ${r.shape[y]} != ${t.shape[m]}`)}let a=[],s=[];for(let f=0;f<r.ndim;f++)n.includes(f)||a.push(f);for(let f=0;f<t.ndim;f++)o.includes(f)||s.push(f);let i=[...a.map(f=>r.shape[f]),...s.map(f=>t.shape[f])];if(i.length===0){let f=0,y=n.map(m=>r.shape[m]).reduce((m,d)=>m*d,1);for(let m=0;m<y;m++){let d=m,g=new Array(n.length);for(let N=n.length-1;N>=0;N--){let w=n[N];g[N]=d%r.shape[w],d=Math.floor(d/r.shape[w])}let A=new Array(r.ndim),h=new Array(t.ndim);for(let N=0;N<n.length;N++)A[n[N]]=g[N];for(let N=0;N<o.length;N++)h[o[N]]=g[N];let b=r.get(...A),S=t.get(...h);typeof b=="bigint"&&typeof S=="bigint"?f=Number(f)+Number(b*S):f+=Number(b)*Number(S)}return f}let u=C(r.dtype,t.dtype),c=D.zeros(i,u),l=i.reduce((f,y)=>f*y,1),p=n.map(f=>r.shape[f]).reduce((f,y)=>f*y,1);for(let f=0;f<l;f++){let y=f,m=[];for(let h=i.length-1;h>=0;h--)m[h]=y%i[h],y=Math.floor(y/i[h]);let d=m.slice(0,a.length),g=m.slice(a.length),A=0;for(let h=0;h<p;h++){y=h;let b=[];for(let z=n.length-1;z>=0;z--){let B=n[z];b[z]=y%r.shape[B],y=Math.floor(y/r.shape[B])}let S=new Array(r.ndim),N=new Array(t.ndim);for(let z=0;z<a.length;z++)S[a[z]]=d[z];for(let z=0;z<s.length;z++)N[s[z]]=g[z];for(let z=0;z<n.length;z++)S[n[z]]=b[z],N[o[z]]=b[z];let w=r.get(...S),I=t.get(...N);typeof w=="bigint"&&typeof I=="bigint"?A=Number(A)+Number(w*I):A+=Number(w)*Number(I)}c.set(m,A)}return c}function Fe(r,t=0,e=0,n=1){let o=r.shape,a=o.length;if(a<2)throw new Error("diagonal requires an array of at least two dimensions");let s=e<0?a+e:e,i=n<0?a+n:n;if(s<0||s>=a||i<0||i>=a)throw new Error("axis out of bounds");if(s===i)throw new Error("axis1 and axis2 cannot be the same");let u=o[s],c=o[i],l;t>=0?l=Math.max(0,Math.min(u,c-t)):l=Math.max(0,Math.min(u+t,c));let p=[];for(let d=0;d<a;d++)d!==s&&d!==i&&p.push(o[d]);p.push(l);let f=D.zeros(p,r.dtype),y=o.filter((d,g)=>g!==s&&g!==i),m=y.reduce((d,g)=>d*g,1);for(let d=0;d<m;d++){let g=d,A=[];for(let h=y.length-1;h>=0;h--)A.unshift(g%y[h]),g=Math.floor(g/y[h]);for(let h=0;h<l;h++){let b=new Array(a),S=0;for(let I=0;I<a;I++)I===s?b[I]=t>=0?h:h-t:I===i?b[I]=t>=0?h+t:h:b[I]=A[S++];let N=[...A,h],w=r.get(...b);f.set(N,w)}}return f}function Pe(r,...t){let e=r.indexOf("->"),n,o;e===-1?(n=r,o=Ti(n)):(n=r.slice(0,e),o=r.slice(e+2));let a=n.split(",").map(d=>d.trim());if(a.length!==t.length)throw new Error(`einsum: expected ${a.length} operands, got ${t.length}`);let s=new Map;for(let d=0;d<t.length;d++){let g=a[d],A=t[d];if(g.length!==A.ndim)throw new Error(`einsum: operand ${d} has ${A.ndim} dimensions but subscript '${g}' has ${g.length} indices`);for(let h=0;h<g.length;h++){let b=g[h],S=A.shape[h];if(s.has(b)){if(s.get(b)!==S)throw new Error(`einsum: size mismatch for index '${b}': ${s.get(b)} vs ${S}`)}else s.set(b,S)}}for(let d of o)if(!s.has(d))throw new Error(`einsum: output subscript contains unknown index '${d}'`);let i=new Set(o),u=new Set;for(let d of a)for(let g of d)u.add(g);let c=[];for(let d of u)i.has(d)||c.push(d);if(t.length===2&&a.length===2){let[d,g]=a,[A,h]=t;if(d.length===2&&g.length===2&&o.length===2&&A.ndim===2&&h.ndim===2){let[b,S]=[d[0],d[1]],[N,w]=[g[0],g[1]],[I,z]=[o[0],o[1]];if(b===I&&w===z&&S===N&&c.length===1&&c[0]===S||b===I&&w===z&&S===N&&c.length===1&&c[0]===S)return K(A,h);if(S===I&&w===z&&b===N&&c.length===1&&c[0]===b){let B=Me(A);return K(B,h)}if(b===I&&N===z&&S===w&&c.length===1&&c[0]===S){let B=Me(h);return K(A,B)}}if(d.length===1&&g.length===1&&d===g&&o.length===0&&A.ndim===1&&h.ndim===1)return ct(t,a,c,s);if(d&&g&&d.length===1&&g.length===1&&o.length===2&&o===d+g&&c.length===0&&A.ndim===1&&h.ndim===1)return ft(A,h)}if(t.length===1&&a[0].length===2&&o.length===0){let d=a[0];if(d[0]===d[1]&&t[0].ndim===2)return ct(t,a,c,s)}let l=Array.from(o).map(d=>s.get(d));if(l.length===0)return ct(t,a,c,s);let p=t[0].dtype;for(let d=1;d<t.length;d++)p=C(p,t[d].dtype);let f=D.zeros(l,p),y=l.reduce((d,g)=>d*g,1),m=1;for(let d of c)m*=s.get(d);for(let d=0;d<y;d++){let g=vi(d,l),A=new Map;for(let b=0;b<o.length;b++)A.set(o[b],g[b]);let h=0;for(let b=0;b<m;b++){let S=b;for(let w=c.length-1;w>=0;w--){let I=c[w],z=s.get(I);A.set(I,S%z),S=Math.floor(S/z)}let N=1;for(let w=0;w<t.length;w++){let I=t[w],z=a[w],B=[];for(let U of z)B.push(A.get(U));let E=I.get(...B);N*=Number(E)}h+=N}f.set(g,h)}return f}function Ti(r){let t=new Map,e=r.split(",");for(let o of e)for(let a of o.trim())t.set(a,(t.get(a)||0)+1);let n=[];for(let[o,a]of t)a===1&&n.push(o);return n.sort().join("")}function ct(r,t,e,n){let o=1;for(let s of e)o*=n.get(s);let a=0;for(let s=0;s<o;s++){let i=new Map,u=s;for(let l=e.length-1;l>=0;l--){let p=e[l],f=n.get(p);i.set(p,u%f),u=Math.floor(u/f)}let c=1;for(let l=0;l<r.length;l++){let p=r[l],f=t[l],y=[];for(let d of f)y.push(i.get(d));let m=p.get(...y);c*=Number(m)}a+=c}return a}function vi(r,t){let e=new Array(t.length),n=r;for(let o=t.length-1;o>=0;o--)e[o]=n%t[o],n=Math.floor(n/t[o]);return e}function Re(r,t){let e=r.shape,n=t.shape,o=e.length,a=n.length,s=C(r.dtype,t.dtype),i=Math.max(o,a),u=new Array(i),c=new Array(i).fill(1),l=new Array(i).fill(1);for(let m=0;m<o;m++)c[i-o+m]=e[m];for(let m=0;m<a;m++)l[i-a+m]=n[m];for(let m=0;m<i;m++)u[m]=c[m]*l[m];let p=D.zeros(u,s),f=e.reduce((m,d)=>m*d,1),y=n.reduce((m,d)=>m*d,1);for(let m=0;m<f;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 A=new Array(i).fill(0);for(let b=0;b<o;b++)A[i-o+b]=g[b];let h=r.get(...g);for(let b=0;b<y;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 w=new Array(i).fill(0);for(let E=0;E<a;E++)w[i-a+E]=N[E];let I=t.get(...N),z=new Array(i);for(let E=0;E<i;E++)z[E]=A[E]*l[E]+w[E];let B=typeof h=="bigint"||typeof I=="bigint"?BigInt(Number(h))*BigInt(Number(I)):Number(h)*Number(I);p.set(z,B)}}return p}function Le(r){return V(r,Math.sqrt,!1)}function qe(r,t){return typeof t=="number"?$i(r,t):P(r,t,Math.pow,"power")}function $i(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=e!=="float32"&&e!=="float64"&&(t<0||!Number.isInteger(t))?"float64":e,c=D.zeros(n,u),l=c.data;if(x(e))if(x(u)&&Number.isInteger(t)&&t>=0){let p=o,f=l;for(let y=0;y<a;y++)f[y]=p[y]**BigInt(t)}else for(let p=0;p<a;p++)l[p]=Math.pow(Number(o[p]),t);else for(let p=0;p<a;p++)l[p]=Math.pow(Number(o[p]),t);return c}function je(r){return V(r,Math.sin,!1)}function Ze(r){return V(r,Math.cos,!1)}function We(r){return V(r,Math.tan,!1)}function Ge(r){return V(r,Math.asin,!1)}function He(r){return V(r,Math.acos,!1)}function Ye(r){return V(r,Math.atan,!1)}function Je(r,t){return typeof t=="number"?ki(r,t):Ci(r,t)}function Ci(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,s=o==="float32"&&a==="float32"?"float32":"float64",i=D.zeros(e,s),u=i.data;for(let c=0;c<n;c++){let l=(x(o),Number(r.data[c])),p=(x(a),Number(t.data[c]));u[c]=Math.atan2(l,p)}return i}function ki(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,s=e==="float32"?"float32":"float64",i=D.zeros(n,s),u=i.data;if(x(e))for(let c=0;c<a;c++)u[c]=Math.atan2(Number(o[c]),t);else for(let c=0;c<a;c++)u[c]=Math.atan2(Number(o[c]),t);return i}function Xe(r,t){return typeof t=="number"?Fi(r,t):Vi(r,t)}function Vi(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,s=o==="float32"&&a==="float32"?"float32":"float64",i=D.zeros(e,s),u=i.data;for(let c=0;c<n;c++){let l=(x(o),Number(r.data[c])),p=(x(a),Number(t.data[c]));u[c]=Math.hypot(l,p)}return i}function Fi(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,s=e==="float32"?"float32":"float64",i=D.zeros(n,s),u=i.data;if(x(e))for(let c=0;c<a;c++)u[c]=Math.hypot(Number(o[c]),t);else for(let c=0;c<a;c++)u[c]=Math.hypot(Number(o[c]),t);return i}function Qe(r){let t=180/Math.PI;return V(r,e=>e*t,!1)}function Ke(r){let t=Math.PI/180;return V(r,e=>e*t,!1)}function rn(r){return V(r,Math.sinh,!1)}function tn(r){return V(r,Math.cosh,!1)}function en(r){return V(r,Math.tanh,!1)}function nn(r){return V(r,Math.asinh,!1)}function on(r){return V(r,Math.acosh,!1)}function an(r){return V(r,Math.atanh,!1)}function pt(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=X([Array.from(e),t]);if(a===null)throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${t.join(",")})`);for(let s=0;s<o;s++)if(a[s]!==t[s])throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${t.join(",")})`);return G(r,t)}function sn(r){if(r.length===0)return[];if(r.length===1)return[r[0]];let t=r.map(n=>Array.from(n.shape)),e=X(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 un(r,t,e){let n=r.shape,o=n.length,a=r.dtype;if(e===void 0){let m=r.size;for(let h of t){let b=h<0?m+h:h;if(b<0||b>=m)throw new Error(`index ${h} is out of bounds for axis 0 with size ${m}`)}let d=t.length,g=O(a);if(!g)throw new Error(`Cannot take from array with dtype ${a}`);let A=new g(d);for(let h=0;h<d;h++){let b=t[h];b<0&&(b=m+b);let S=r.iget(b);x(a),A[h]=S}return D.fromData(A,[d],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];for(let m of t){let d=m<0?i+m:m;if(d<0||d>=i)throw new Error(`index ${m} is out of bounds for axis ${s} with size ${i}`)}let u=Array.from(n);u[s]=t.length;let c=u.reduce((m,d)=>m*d,1),l=O(a);if(!l)throw new Error(`Cannot take from array with dtype ${a}`);let p=new l(c),f=L(u),y=new Array(o).fill(0);for(let m=0;m<c;m++){let d=[...y],g=y[s],A=t[g];A<0&&(A=i+A),d[s]=A;let h=r.get(...d),b=0;for(let S=0;S<o;S++)b+=y[S]*f[S];x(a),p[b]=h;for(let S=o-1;S>=0&&(y[S]++,!(y[S]<u[S]));S--)y[S]=0}return D.fromData(p,u,a)}function cn(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 s=0;s<e.size;s++)a.push(e.iget(s));if(a.length===1)a=new Array(t.length).fill(a[0]);else if(a.length!==t.length){let s=[...a];a=[];for(let i=0;i<t.length;i++)a.push(s[i%s.length])}}for(let s=0;s<t.length;s++){let i=t[s];if(i<0&&(i=n+i),i<0||i>=n)throw new Error(`index ${t[s]} is out of bounds for axis 0 with size ${n}`);let u=a[s];x(o)?typeof u!="bigint"&&(u=BigInt(Math.round(Number(u)))):typeof u=="bigint"&&(u=Number(u)),r.iset(i,u)}}function ln(r,t){if(t.length===0)throw new Error("choices cannot be empty");let e=r.shape,n=t.length,o=t[0].dtype,a=t.map(f=>Array.from(f.shape));a.unshift(Array.from(e));let s=X(a);if(s===null)throw new Error("operands could not be broadcast together");let i=G(r,s),u=t.map(f=>G(f,s)),c=s.reduce((f,y)=>f*y,1),l=O(o);if(!l)throw new Error(`Cannot choose with dtype ${o}`);let p=new l(c);for(let f=0;f<c;f++){let y=Number(i.iget(f));if(y<0||y>=n)throw new Error(`index ${y} is out of bounds for axis 0 with size ${n}`);let m=u[y].iget(f);x(o),p[f]=m}return D.fromData(p,s,o)}function fn(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),s=t.iget(o);if(e){let i=typeof a=="number"&&Number.isNaN(a),u=typeof s=="number"&&Number.isNaN(s);if(i&&u)continue}if(a!==s)return!1}return!0}function pn(r,t,e){let n=r.shape,o=n.length,a=r.dtype,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=t.shape;if(i.length!==o)throw new Error(`indices and arr must have the same number of dimensions, got ${i.length} vs ${o}`);for(let d=0;d<o;d++)if(d!==s&&i[d]!==n[d]&&i[d]!==1&&n[d]!==1)throw new Error(`index ${i[d]} is out of bounds for size ${n[d]} in dimension ${d}`);let u=Array.from(i),c=u.reduce((d,g)=>d*g,1),l=O(a);if(!l)throw new Error(`Cannot take_along_axis with dtype ${a}`);let p=new l(c),f=L(n),y=L(i),m=n[s];for(let d=0;d<c;d++){let g=new Array(o),A=d;for(let I=o-1;I>=0;I--)g[I]=A%u[I],A=Math.floor(A/u[I]);let h=0;for(let I=0;I<o;I++){let z=i[I]===1?0:g[I];h+=z*y[I]}let b=Number(t.iget(h));if(b<0&&(b=m+b),b<0||b>=m)throw new Error(`index ${b} is out of bounds for axis ${s} with size ${m}`);let S=[...g];S[s]=b;let N=0;for(let I=0;I<o;I++){let z=n[I]===1?0:S[I];N+=z*f[I]}let w=r.iget(N);x(a),p[d]=w}return D.fromData(p,u,a)}function yn(r,t,e,n){let o=r.shape,a=o.length,s=r.dtype,i=n<0?a+n:n;if(i<0||i>=a)throw new Error(`axis ${n} is out of bounds for array of dimension ${a}`);let u=t.shape,c=e.shape;if(u.length!==a||c.length!==a)throw new Error("indices, arr, and values must have same ndim");let l=o[i],p=L(o),f=L(u),y=L(c),m=u.reduce((d,g)=>d*g,1);for(let d=0;d<m;d++){let g=new Array(a),A=d;for(let z=a-1;z>=0;z--)g[z]=A%u[z],A=Math.floor(A/u[z]);let h=0;for(let z=0;z<a;z++)h+=g[z]*f[z];let b=Number(t.iget(h));if(b<0&&(b=l+b),b<0||b>=l)throw new Error(`index ${b} is out of bounds for axis ${i} with size ${l}`);let S=0;for(let z=0;z<a;z++){let B=c[z]===1?0:g[z];S+=B*y[z]}let N=e.iget(S),w=[...g];w[i]=b;let I=0;for(let z=0;z<a;z++)I+=w[z]*p[z];x(s)?typeof N!="bigint"&&(N=BigInt(Math.round(Number(N)))):typeof N=="bigint"&&(N=Number(N)),r.iset(I,N)}}function mn(r,t,e){let n=r.size,o=r.dtype,a;if(typeof e=="number"||typeof e=="bigint")a=[e];else{a=[];for(let i=0;i<e.size;i++)a.push(e.iget(i))}let s=0;for(let i=0;i<n;i++)if(t.iget(i)){let c=a[s%a.length];x(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),r.iset(i,c),s++}}function dn(r,t,e){let n=t.shape,o=n.length,a=t.dtype,s=t.data,i=x(a);if(e===void 0){let h=0,b=Math.min(r.size,t.size);for(let I=0;I<b;I++)r.iget(I)&&h++;let S=O(a);if(!S)throw new Error(`Cannot compress with dtype ${a}`);let N=new S(h),w=0;for(let I=0;I<b;I++)r.iget(I)&&(N[w]=s[I],w++);return D.fromData(N,[h],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 c=n[u],l=Math.min(r.size,c),p=[];for(let h=0;h<l;h++)r.iget(h)&&p.push(h);let f=p.length,y=[...n];y[u]=f;let m=y.reduce((h,b)=>h*b,1),d=O(a);if(!d)throw new Error(`Cannot compress with dtype ${a}`);let g=new d(m),A=L(n);if(u===0){let h=A[0],b=n.slice(1).reduce((N,w)=>N*w,1),S=0;for(let N=0;N<f;N++){let I=p[N]*h;if(i){let z=s,B=g;for(let E=0;E<b;E++)B[S++]=z[I+E]}else{let z=s,B=g;for(let E=0;E<b;E++)B[S++]=z[I+E]}}}else{let h=n.slice(0,u).reduce((N,w)=>N*w,1),b=n.slice(u+1).reduce((N,w)=>N*w,1),S=0;for(let N=0;N<h;N++)for(let w=0;w<f;w++){let I=p[w],z=0,B=N;for(let E=u-1;E>=0;E--){let U=B%n[E];B=Math.floor(B/n[E]),z+=U*A[E]}if(z+=I*A[u],i){let E=s,U=g;for(let $=0;$<b;$++)U[S++]=E[z+$]}else{let E=s,U=g;for(let $=0;$<b;$++)U[S++]=E[z+$]}}}return D.fromData(g,y,a)}function gn(r,t,e=0){if(r.length!==t.length)throw new Error("condlist and choicelist must have same length");if(r.length===0)throw new Error("condlist and choicelist cannot be empty");let n=[...r.map(f=>Array.from(f.shape)),...t.map(f=>Array.from(f.shape))],o=X(n);if(o===null)throw new Error("condlist and choicelist arrays could not be broadcast together");let a=t[0].dtype,s=o.reduce((f,y)=>f*y,1),i=O(a);if(!i)throw new Error(`Cannot select with dtype ${a}`);let u=e;x(a)?u=typeof e=="bigint"?e:BigInt(e):u=typeof e=="bigint"?Number(e):e;let c=new i(s);for(let f=0;f<s;f++)x(a),c[f]=u;let l=r.map(f=>G(f,o)),p=t.map(f=>G(f,o));for(let f=0;f<s;f++)for(let y=0;y<r.length;y++)if(l[y].iget(f)){let m=p[y].iget(f);x(a),c[f]=m;break}return D.fromData(c,o,a)}function hn(r,t,e){let n=r.size,o=r.dtype,a=[];for(let i=0;i<e.size;i++)a.push(e.iget(i));if(a.length===0)return;let s=0;for(let i=0;i<n;i++)if(t.iget(i)){let c=a[s%a.length];x(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),r.iset(i,c),s++}}function yt(r,t=2){if(t<1)throw new Error("ndim must be at least 1");let e=new Int32Array(r);for(let o=0;o<r;o++)e[o]=o;let n=[];for(let o=0;o<t;o++)n.push(D.fromData(new Int32Array(e),[r],"int32"));return n}function An(r){let t=r.shape,e=t.length;if(e<2)throw new Error("array must be at least 2-D");let n=t[0];for(let o=1;o<e;o++)if(t[o]!==n)throw new Error("All dimensions of input must be equal");return yt(n,e)}function mt(r,t=0,e){let n=e??r,o=[],a=[];for(let s=0;s<r;s++)for(let i=0;i<=Math.min(s+t,n-1);i++)i>=0&&(o.push(s),a.push(i));return[D.fromData(new Int32Array(o),[o.length],"int32"),D.fromData(new Int32Array(a),[a.length],"int32")]}function bn(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return mt(e[0],t,e[1])}function dt(r,t=0,e){let n=e??r,o=[],a=[];for(let s=0;s<r;s++)for(let i=Math.max(s+t,0);i<n;i++)o.push(s),a.push(i);return[D.fromData(new Int32Array(o),[o.length],"int32"),D.fromData(new Int32Array(a),[a.length],"int32")]}function Sn(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return dt(e[0],t,e[1])}function Dn(r,t,e=0){let n=t(r,e),o=n.shape;if(o.length!==2||o[0]!==r||o[1]!==r)throw new Error("mask_func must return n x n array");let a=[],s=[];for(let i=0;i<r;i++)for(let u=0;u<r;u++)n.get(i,u)&&(a.push(i),s.push(u));return[D.fromData(new Int32Array(a),[a.length],"int32"),D.fromData(new Int32Array(s),[s.length],"int32")]}function xn(r,t="int32"){let e=r.length,n=[e,...r],o=n.reduce((u,c)=>u*c,1),a=O(t);if(!a)throw new Error(`Cannot create indices with dtype ${t}`);let s=new a(o),i=r.reduce((u,c)=>u*c,1);for(let u=0;u<e;u++){let c=u*i;for(let l=0;l<i;l++){let p=new Array(e),f=l;for(let m=e-1;m>=0;m--)p[m]=f%r[m],f=Math.floor(f/r[m]);let y=p[u];t==="int64"?s[c+l]=BigInt(y):s[c+l]=y}}return D.fromData(s,n,t)}function Nn(...r){let t=r.length,e=[];for(let n=0;n<t;n++){let o=r[n],a=o.size,s=o.dtype,i=new Array(t).fill(1);i[n]=a;let u=O(s);if(!u)throw new Error(`Cannot create ix_ with dtype ${s}`);let c=new u(a);for(let l=0;l<a;l++){let p=o.iget(l);x(s),c[l]=p}e.push(D.fromData(c,i,s))}return e}function wn(r,t,e="raise"){if(r.length!==t.length)throw new Error("multi_index length must equal dims length");if(r.length===0)throw new Error("multi_index cannot be empty");let n=r[0].size,o=t.length,a=new Int32Array(n),s=new Array(o),i=1;for(let u=o-1;u>=0;u--)s[u]=i,i*=t[u];for(let u=0;u<n;u++){let c=0;for(let l=0;l<o;l++){let p=Number(r[l].iget(u)),f=t[l];if(e==="wrap")p=(p%f+f)%f;else if(e==="clip")p=Math.max(0,Math.min(p,f-1));else if(p<0||p>=f)throw new Error(`index ${p} is out of bounds for axis ${l} with size ${f}`);c+=p*s[l]}a[u]=c}return D.fromData(a,[n],"int32")}function In(r,t,e="C"){let n=t.length,o,a;if(typeof r=="number")o=[r],a=[];else{o=[];for(let l=0;l<r.size;l++)o.push(Number(r.iget(l)));a=Array.from(r.shape)}let s=o.length,i=t.reduce((l,p)=>l*p,1),u=new Array(n);if(e==="C"){let l=1;for(let p=n-1;p>=0;p--)u[p]=l,l*=t[p]}else{let l=1;for(let p=0;p<n;p++)u[p]=l,l*=t[p]}let c=[];for(let l=0;l<n;l++){let p=new Int32Array(s);c.push(D.fromData(p,a.length?a:[1],"int32"))}for(let l=0;l<s;l++){let p=o[l];if(p<0||p>=i)throw new Error(`index ${p} is out of bounds for array with size ${i}`);if(e==="C")for(let f=0;f<n;f++){let y=Math.floor(p/u[f]);p=p%u[f],c[f].data[l]=y%t[f]}else for(let f=n-1;f>=0;f--){let y=Math.floor(p/u[f]);p=p%u[f],c[f].data[l]=y%t[f]}}return typeof r=="number"?c.map(l=>{let p=l.iget(0);return D.fromData(new Int32Array([Number(p)]),[],"int32")}):c}function W(r,t){if(!Rt(r)&&r!=="bool")throw new TypeError(`ufunc '${t}' not supported for the input types, and the inputs could not be safely coerced to any supported types`)}function fr(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function Bn(r,t){return W(r.dtype,"bitwise_and"),typeof t=="number"?ji(r,t):(W(t.dtype,"bitwise_and"),fr(r,t)?qi(r,t):P(r,t,(e,n)=>e&n,"bitwise_and"))}function qi(r,t){let e=C(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,s=t.data,i=n.data;if(x(e)){let u=i;if(!x(r.dtype)||!x(t.dtype))for(let l=0;l<o;l++){let p=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),f=typeof s[l]=="bigint"?s[l]:BigInt(Math.round(Number(s[l])));u[l]=p&f}else{let l=a,p=s;for(let f=0;f<o;f++)u[f]=l[f]&p[f]}}else for(let u=0;u<o;u++)i[u]=a[u]&s[u];return n}function ji(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,s=D.zeros(n,e),i=s.data;if(x(e)){let u=o,c=i,l=BigInt(Math.round(t));for(let p=0;p<a;p++)c[p]=u[p]&l}else for(let u=0;u<a;u++)i[u]=o[u]&t;return s}function En(r,t){return W(r.dtype,"bitwise_or"),typeof t=="number"?Wi(r,t):(W(t.dtype,"bitwise_or"),fr(r,t)?Zi(r,t):P(r,t,(e,n)=>e|n,"bitwise_or"))}function Zi(r,t){let e=C(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,s=t.data,i=n.data;if(x(e)){let u=i;if(!x(r.dtype)||!x(t.dtype))for(let l=0;l<o;l++){let p=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),f=typeof s[l]=="bigint"?s[l]:BigInt(Math.round(Number(s[l])));u[l]=p|f}else{let l=a,p=s;for(let f=0;f<o;f++)u[f]=l[f]|p[f]}}else for(let u=0;u<o;u++)i[u]=a[u]|s[u];return n}function Wi(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,s=D.zeros(n,e),i=s.data;if(x(e)){let u=o,c=i,l=BigInt(Math.round(t));for(let p=0;p<a;p++)c[p]=u[p]|l}else for(let u=0;u<a;u++)i[u]=o[u]|t;return s}function Un(r,t){return W(r.dtype,"bitwise_xor"),typeof t=="number"?Hi(r,t):(W(t.dtype,"bitwise_xor"),fr(r,t)?Gi(r,t):P(r,t,(e,n)=>e^n,"bitwise_xor"))}function Gi(r,t){let e=C(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,s=t.data,i=n.data;if(x(e)){let u=i;if(!x(r.dtype)||!x(t.dtype))for(let l=0;l<o;l++){let p=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),f=typeof s[l]=="bigint"?s[l]:BigInt(Math.round(Number(s[l])));u[l]=p^f}else{let l=a,p=s;for(let f=0;f<o;f++)u[f]=l[f]^p[f]}}else for(let u=0;u<o;u++)i[u]=a[u]^s[u];return n}function Hi(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,s=D.zeros(n,e),i=s.data;if(x(e)){let u=o,c=i,l=BigInt(Math.round(t));for(let p=0;p<a;p++)c[p]=u[p]^l}else for(let u=0;u<a;u++)i[u]=o[u]^t;return s}function gt(r){W(r.dtype,"bitwise_not");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=D.zeros(e,t),s=a.data;if(x(t)){let i=n,u=s;for(let c=0;c<o;c++)u[c]=~i[c]}else for(let i=0;i<o;i++)s[i]=~n[i];return a}function Tn(r){return gt(r)}function vn(r,t){if(W(r.dtype,"left_shift"),typeof t=="number")return zn(r,t);if(W(t.dtype,"left_shift"),t.size===1||t.ndim===1&&t.shape[0]===1){let e=x(t.dtype)?Number(t.data[0]):t.data[0];return zn(r,e)}return fr(r,t)?Yi(r,t):P(r,t,(e,n)=>e<<n,"left_shift")}function Yi(r,t){let e=C(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,s=t.data,i=n.data;if(x(e)){let u=i;for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?a[c]:BigInt(Math.round(Number(a[c]))),p=typeof s[c]=="bigint"?s[c]:BigInt(Math.round(Number(s[c])));u[c]=l<<p}}else for(let u=0;u<o;u++)i[u]=a[u]<<s[u];return n}function zn(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,s=D.zeros(n,e),i=s.data;if(x(e)){let u=o,c=i,l=BigInt(Math.round(t));for(let p=0;p<a;p++)c[p]=u[p]<<l}else for(let u=0;u<a;u++)i[u]=o[u]<<t;return s}function On(r,t){if(W(r.dtype,"right_shift"),typeof t=="number")return _n(r,t);if(W(t.dtype,"right_shift"),t.size===1||t.ndim===1&&t.shape[0]===1){let e=x(t.dtype)?Number(t.data[0]):t.data[0];return _n(r,e)}return fr(r,t)?Ji(r,t):P(r,t,(e,n)=>e>>n,"right_shift")}function Ji(r,t){let e=C(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,s=t.data,i=n.data;if(x(e)){let u=i;for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?a[c]:BigInt(Math.round(Number(a[c]))),p=typeof s[c]=="bigint"?s[c]:BigInt(Math.round(Number(s[c])));u[c]=l>>p}}else for(let u=0;u<o;u++)i[u]=a[u]>>s[u];return n}function _n(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,s=D.zeros(n,e),i=s.data;if(x(e)){let u=o,c=i,l=BigInt(Math.round(t));for(let p=0;p<a;p++)c[p]=u[p]>>l}else for(let u=0;u<a;u++)i[u]=o[u]>>t;return s}function $n(r,t=-1,e="big"){let n=Array.from(r.shape),o=n.length;if(t<0&&(t=o+t),t<0||t>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let a=n[t],s=Math.ceil(a/8),i=[...n];i[t]=s;let u=D.zeros(i,"uint8"),c=u.data;if(o===1){for(let g=0;g<s;g++){let A=0;for(let h=0;h<8;h++){let b=g*8+h;if(b<a){let S=Number(r.data[b])!==0?1:0;e==="big"?A|=S<<7-h:A|=S<<h}}c[g]=A}return u}let l=n.slice(0,t),p=n.slice(t+1),f=l.reduce((g,A)=>g*A,1),y=p.reduce((g,A)=>g*A,1),m=vr(n),d=vr(i);for(let g=0;g<f;g++)for(let A=0;A<y;A++)for(let h=0;h<s;h++){let b=0;for(let I=0;I<8;I++){let z=h*8+I;if(z<a){let B=0,E=g;for(let M=0;M<t;M++){let F=M<t-1?l.slice(M+1).reduce((Pr,Rr)=>Pr*Rr,1):1,Z=Math.floor(E/F);E%=F,B+=Z*m[M]}B+=z*m[t];let U=A;for(let M=t+1;M<o;M++){let F=M<o-1?p.slice(M-t).reduce((Pr,Rr)=>Pr*Rr,1):1,Z=Math.floor(U/F);U%=F,B+=Z*m[M]}let $=Number(r.data[B])!==0?1:0;e==="big"?b|=$<<7-I:b|=$<<I}}let S=0,N=g;for(let I=0;I<t;I++){let z=I<t-1?l.slice(I+1).reduce((E,U)=>E*U,1):1,B=Math.floor(N/z);N%=z,S+=B*d[I]}S+=h*d[t];let w=A;for(let I=t+1;I<o;I++){let z=I<o-1?p.slice(I-t).reduce((E,U)=>E*U,1):1,B=Math.floor(w/z);w%=z,S+=B*d[I]}c[S]=b}return u}function Mn(r,t=-1,e=-1,n="big"){if(r.dtype!=="uint8")throw new TypeError("Expected an input array of unsigned byte data type");let o=Array.from(r.shape),a=o.length;if(t<0&&(t=a+t),t<0||t>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let s=o[t],i=s*8;e>=0&&(i=e);let u=[...o];u[t]=i;let c=D.zeros(u,"uint8"),l=c.data;if(a===1){for(let A=0;A<s;A++){let h=Number(r.data[A]);for(let b=0;b<8;b++){let S=A*8+b;if(S>=i)break;n==="big"?l[S]=h>>7-b&1:l[S]=h>>b&1}}return c}let p=o.slice(0,t),f=o.slice(t+1),y=p.reduce((A,h)=>A*h,1),m=f.reduce((A,h)=>A*h,1),d=vr(o),g=vr(u);for(let A=0;A<y;A++)for(let h=0;h<m;h++)for(let b=0;b<s;b++){let S=0,N=A;for(let z=0;z<t;z++){let B=z<t-1?p.slice(z+1).reduce((U,$)=>U*$,1):1,E=Math.floor(N/B);N%=B,S+=E*d[z]}S+=b*d[t];let w=h;for(let z=t+1;z<a;z++){let B=z<a-1?f.slice(z-t).reduce((U,$)=>U*$,1):1,E=Math.floor(w/B);w%=B,S+=E*d[z]}let I=Number(r.data[S]);for(let z=0;z<8;z++){let B=b*8+z;if(B>=i)break;let E=0;N=A;for(let U=0;U<t;U++){let $=U<t-1?p.slice(U+1).reduce((F,Z)=>F*Z,1):1,M=Math.floor(N/$);N%=$,E+=M*g[U]}E+=B*g[t],w=h;for(let U=t+1;U<a;U++){let $=U<a-1?f.slice(U-t).reduce((F,Z)=>F*Z,1):1,M=Math.floor(w/$);w%=$,E+=M*g[U]}n==="big"?l[E]=I>>7-z&1:l[E]=I>>z&1}}return c}function vr(r){let t=r.length,e=new Array(t),n=1;for(let o=t-1;o>=0;o--)e[o]=n,n*=r[o];return e}function ht(r,t=-1){let e=r.shape,n=e.length,o=r.dtype,a=r.data;if(n===0)return r.copy();let s=t;if(s<0&&(s=n+s),s<0||s>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=r.copy(),u=i.data,c=e[s],l=Array.from(e).filter((f,y)=>y!==s),p=l.length===0?1:l.reduce((f,y)=>f*y,1);if(x(o)){let f=a,y=u;for(let m=0;m<p;m++){let d=[];for(let g=0;g<c;g++){let A=v(m,s,g,e),h=T(A,e);d.push({value:f[h],idx:g})}d.sort((g,A)=>g.value<A.value?-1:g.value>A.value?1:0);for(let g=0;g<c;g++){let A=v(m,s,g,e),h=T(A,e);y[h]=d[g].value}}}else for(let f=0;f<p;f++){let y=[];for(let m=0;m<c;m++){let d=v(f,s,m,e),g=T(d,e);y.push(Number(a[g]))}y.sort((m,d)=>isNaN(m)&&isNaN(d)?0:isNaN(m)?1:isNaN(d)?-1:m-d);for(let m=0;m<c;m++){let d=v(f,s,m,e),g=T(d,e);u[g]=y[m]}}return i}function At(r,t=-1){let e=r.shape,n=e.length,o=r.dtype,a=r.data;if(n===0)return D.zeros([0],"int32");let s=t;if(s<0&&(s=n+s),s<0||s>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=D.zeros(Array.from(e),"int32"),u=i.data,c=e[s],l=Array.from(e).filter((f,y)=>y!==s),p=l.length===0?1:l.reduce((f,y)=>f*y,1);if(x(o)){let f=a;for(let y=0;y<p;y++){let m=[];for(let d=0;d<c;d++){let g=v(y,s,d,e),A=T(g,e);m.push({value:f[A],idx:d})}m.sort((d,g)=>d.value<g.value?-1:d.value>g.value?1:0);for(let d=0;d<c;d++){let g=v(y,s,d,e),A=T(g,e);u[A]=m[d].idx}}}else for(let f=0;f<p;f++){let y=[];for(let m=0;m<c;m++){let d=v(f,s,m,e),g=T(d,e);y.push({value:Number(a[g]),idx:m})}y.sort((m,d)=>isNaN(m.value)&&isNaN(d.value)?0:isNaN(m.value)?1:isNaN(d.value)?-1:m.value-d.value);for(let m=0;m<c;m++){let d=v(f,s,m,e),g=T(d,e);u[g]=y[m].idx}}return i}function Cn(r){if(r.length===0)return D.zeros([0],"int32");let e=r[0].size;for(let s of r){if(s.ndim!==1)throw new Error("keys must be 1D arrays");if(s.size!==e)throw new Error("all keys must have the same length")}let n=[];for(let s=0;s<e;s++)n.push(s);n.sort((s,i)=>{for(let u=r.length-1;u>=0;u--){let l=r[u].data,p=Number(l[s]),f=Number(l[i]);if(!(isNaN(p)&&isNaN(f))){if(isNaN(p))return 1;if(isNaN(f)||p<f)return-1;if(p>f)return 1}}return 0});let o=D.zeros([e],"int32"),a=o.data;for(let s=0;s<e;s++)a[s]=n[s];return o}function Qi(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e],s=r[o],i=r[n],u;a<=s&&s<=i||i<=s&&s<=a?u=o:s<=a&&a<=i||i<=a&&a<=s?u=e:u=n;let c=r[u];[r[u],r[n]]=[r[n],r[u]];let l=e;for(let p=e;p<n;p++){let f=r[p],y=isNaN(f),m=isNaN(c);!y&&(m||f<=c)&&([r[l],r[p]]=[r[p],r[l]],l++)}if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function Ki(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e],s=r[o],i=r[n],u;a<=s&&s<=i||i<=s&&s<=a?u=o:s<=a&&a<=i||i<=a&&a<=s?u=e:u=n;let c=r[u];[r[u],r[n]]=[r[n],r[u]];let l=e;for(let p=e;p<n;p++)r[p]<=c&&([r[l],r[p]]=[r[p],r[l]],l++);if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function ru(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e].value,s=r[o].value,i=r[n].value,u;a<=s&&s<=i||i<=s&&s<=a?u=o:s<=a&&a<=i||i<=a&&a<=s?u=e:u=n;let c=r[u].value;[r[u],r[n]]=[r[n],r[u]];let l=e;for(let p=e;p<n;p++){let f=r[p].value,y=isNaN(f),m=isNaN(c);!y&&(m||f<=c)&&([r[l],r[p]]=[r[p],r[l]],l++)}if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function tu(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e].value,s=r[o].value,i=r[n].value,u;a<=s&&s<=i||i<=s&&s<=a?u=o:s<=a&&a<=i||i<=a&&a<=s?u=e:u=n;let c=r[u].value;[r[u],r[n]]=[r[n],r[u]];let l=e;for(let p=e;p<n;p++)r[p].value<=c&&([r[l],r[p]]=[r[p],r[l]],l++);if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function bt(r,t,e=-1){let n=r.shape,o=n.length,a=r.dtype;if(o===0)return r.copy();let s=e;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=n[s],u=t;if(u<0&&(u=i+u),u<0||u>=i)throw new Error(`kth(=${t}) out of bounds (${i})`);let c=r.copy(),l=c.data,p=Array.from(n).filter((y,m)=>m!==s),f=p.length===0?1:p.reduce((y,m)=>y*m,1);if(x(a)){let y=l;for(let m=0;m<f;m++){let d=[];for(let g=0;g<i;g++){let A=v(m,s,g,n),h=T(A,n);d.push(y[h])}Ki(d,u);for(let g=0;g<i;g++){let A=v(m,s,g,n),h=T(A,n);y[h]=d[g]}}}else for(let y=0;y<f;y++){let m=[];for(let d=0;d<i;d++){let g=v(y,s,d,n),A=T(g,n);m.push(Number(l[A]))}Qi(m,u);for(let d=0;d<i;d++){let g=v(y,s,d,n),A=T(g,n);l[A]=m[d]}}return c}function St(r,t,e=-1){let n=r.shape,o=n.length,a=r.dtype,s=r.data;if(o===0)return D.zeros([0],"int32");let i=e;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=n[i],c=t;if(c<0&&(c=u+c),c<0||c>=u)throw new Error(`kth(=${t}) out of bounds (${u})`);let l=D.zeros(Array.from(n),"int32"),p=l.data,f=Array.from(n).filter((m,d)=>d!==i),y=f.length===0?1:f.reduce((m,d)=>m*d,1);if(x(a)){let m=s;for(let d=0;d<y;d++){let g=[];for(let A=0;A<u;A++){let h=v(d,i,A,n),b=T(h,n);g.push({value:m[b],idx:A})}tu(g,c);for(let A=0;A<u;A++){let h=v(d,i,A,n),b=T(h,n);p[b]=g[A].idx}}}else for(let m=0;m<y;m++){let d=[];for(let g=0;g<u;g++){let A=v(m,i,g,n),h=T(A,n);d.push({value:Number(s[h]),idx:g})}ru(d,c);for(let g=0;g<u;g++){let A=v(m,i,g,n),h=T(A,n);p[h]=d[g].idx}}return l}function kn(r){let t=r.dtype,e=r.size,n=r.data,o=[];for(let i=0;i<e;i++)o.push(Number(n[i]));o.sort((i,u)=>isNaN(i)&&isNaN(u)?0:isNaN(i)?1:isNaN(u)?-1:i-u);let a=D.zeros([e],t),s=a.data;for(let i=0;i<e;i++)s[i]=o[i];return a}function Or(r){let t=r.shape,e=t.length,n=r.data,o=r.size,a=[];for(let l=0;l<e;l++)a.push([]);let s=[],i=1;for(let l=e-1;l>=0;l--)s.unshift(i),i*=t[l];for(let l=0;l<o;l++)if(n[l]){let p=l;for(let f=0;f<e;f++){let y=Math.floor(p/s[f]);p=p%s[f],a[f].push(y)}}let u=a[0]?.length??0,c=[];for(let l=0;l<e;l++){let p=D.zeros([u],"int32"),f=p.data;for(let y=0;y<u;y++)f[y]=a[l][y];c.push(p)}return c}function Vn(r){let t=r.data,e=r.size,n=[];for(let s=0;s<e;s++)t[s]&&n.push(s);let o=D.zeros([n.length],"int32"),a=o.data;for(let s=0;s<n.length;s++)a[s]=n[s];return o}function Fn(r,t,e){if(t===void 0&&e===void 0)return Or(r);if(t===void 0||e===void 0)throw new Error("either both or neither of x and y should be given");let n=r.shape,o=t.shape,a=e.shape,s=Math.max(n.length,o.length,a.length),i=B=>{let E=Array(s).fill(1);for(let U=0;U<B.length;U++)E[s-B.length+U]=B[U];return E},u=i(n),c=i(o),l=i(a),p=[];for(let B=0;B<s;B++){let E=[u[B],c[B],l[B]],U=Math.max(...E);for(let $ of E)if($!==1&&$!==U)throw new Error("operands could not be broadcast together");p.push(U)}let f=t.dtype,y=D.zeros(p,f),m=y.data,d=r.data,g=t.data,A=e.data,h=(B,E)=>{let U=[],$=1;for(let M=B.length-1;M>=0;M--)U.unshift($),$*=B[M];for(;U.length<E.length;)U.unshift(0);for(let M=0;M<E.length;M++)E[M]===1&&p[M]!==1&&(U[M]=0);return U},b=h(n,u),S=h(o,c),N=h(a,l),w=[],I=1;for(let B=p.length-1;B>=0;B--)w.unshift(I),I*=p[B];let z=p.reduce((B,E)=>B*E,1);for(let B=0;B<z;B++){let E=B,U=0,$=0,M=0;for(let F=0;F<s;F++){let Z=Math.floor(E/w[F]);E=E%w[F],U+=Z*b[F],$+=Z*S[F],M+=Z*N[F]}d[U]?m[B]=g[$]:m[B]=A[M]}return y}function Dt(r,t,e="left"){if(r.ndim!==1)throw new Error("storage must be 1D");let n=r.data,o=r.size,a=t.data,s=t.size,i=D.zeros([s],"int32"),u=i.data;for(let c=0;c<s;c++){let l=Number(a[c]),p=0,f=o;if(e==="left")for(;p<f;){let y=Math.floor((p+f)/2);Number(n[y])<l?p=y+1:f=y}else for(;p<f;){let y=Math.floor((p+f)/2);Number(n[y])<=l?p=y+1:f=y}u[c]=p}return i}function Pn(r,t){let e=r.data,n=t.data,o=t.dtype,a=Math.min(r.size,t.size),s=0;for(let l=0;l<a;l++)e[l]&&s++;let i=D.zeros([s],o),u=i.data,c=0;if(x(o)){let l=n,p=u;for(let f=0;f<a;f++)e[f]&&(p[c++]=l[f])}else for(let l=0;l<a;l++)e[l]&&(u[c++]=n[l]);return i}function xt(r,t){let e=r.shape,n=e.length,o=r.data,a=r.size;if(t===void 0){let f=0;for(let y=0;y<a;y++)o[y]&&f++;return f}let s=t;if(s<0&&(s=n+s),s<0||s>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=Array.from(e).filter((f,y)=>y!==s);if(i.length===0)return xt(r);let u=D.zeros(i,"int32"),c=u.data,l=e[s],p=i.reduce((f,y)=>f*y,1);for(let f=0;f<p;f++){let y=0;for(let m=0;m<l;m++){let d=v(f,s,m,e),g=T(d,e);o[g]&&y++}c[f]=y}return u}var _=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((s,i)=>{let u=s;if(u<0&&(u=this.shape[i]+u),u<0||u>=this.shape[i])throw new Error(`Index ${s} is out of bounds for axis ${i} with size ${this.shape[i]}`);return u}),o=this.dtype,a;x(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,s=O(t);if(!s)throw new Error(`Cannot convert to dtype ${t}`);let i=new s(a),u=this.data;if(x(n)&&!x(t)){let l=u;if(t==="bool")for(let p=0;p<a;p++)i[p]=l[p]!==BigInt(0)?1:0;else for(let p=0;p<a;p++)i[p]=Number(l[p])}else if(!x(n)&&x(t)){let l=u;for(let p=0;p<a;p++)i[p]=BigInt(Math.round(Number(l[p])))}else if(t==="bool"){let l=u;for(let p=0;p<a;p++)i[p]=l[p]!==0?1:0}else if(n==="bool"&&!x(t)){let l=u;for(let p=0;p<a;p++)i[p]=l[p]}else if(!x(n)&&!x(t)){let l=u;for(let p=0;p<a;p++)i[p]=l[p]}else{let l=u;for(let p=0;p<a;p++)i[p]=l[p]}let c=D.fromData(i,o,t);return new r(c)}add(t){let e=typeof t=="number"?t:t._storage,n=qt(this._storage,e);return r._fromStorage(n)}subtract(t){let e=typeof t=="number"?t:t._storage,n=jt(this._storage,e);return r._fromStorage(n)}multiply(t){let e=typeof t=="number"?t:t._storage,n=Zt(this._storage,e);return r._fromStorage(n)}divide(t){let e=typeof t=="number"?t:t._storage,n=Wt(this._storage,e);return r._fromStorage(n)}mod(t){let e=typeof t=="number"?t:t._storage,n=Ar(this._storage,e);return r._fromStorage(n)}floor_divide(t){let e=typeof t=="number"?t:t._storage,n=jr(this._storage,e);return r._fromStorage(n)}positive(){let t=Jt(this._storage);return r._fromStorage(t)}reciprocal(){let t=Xt(this._storage);return r._fromStorage(t)}sqrt(){let t=Le(this._storage);return r._fromStorage(t)}power(t){let e=typeof t=="number"?t:t._storage,n=qe(this._storage,e);return r._fromStorage(n)}absolute(){let t=Gt(this._storage);return r._fromStorage(t)}negative(){let t=Ht(this._storage);return r._fromStorage(t)}sign(){let t=Yt(this._storage);return r._fromStorage(t)}sin(){let t=je(this._storage);return r._fromStorage(t)}cos(){let t=Ze(this._storage);return r._fromStorage(t)}tan(){let t=We(this._storage);return r._fromStorage(t)}arcsin(){let t=Ge(this._storage);return r._fromStorage(t)}arccos(){let t=He(this._storage);return r._fromStorage(t)}arctan(){let t=Ye(this._storage);return r._fromStorage(t)}arctan2(t){let e=typeof t=="number"?t:t._storage,n=Je(this._storage,e);return r._fromStorage(n)}hypot(t){let e=typeof t=="number"?t:t._storage,n=Xe(this._storage,e);return r._fromStorage(n)}degrees(){let t=Qe(this._storage);return r._fromStorage(t)}radians(){let t=Ke(this._storage);return r._fromStorage(t)}sinh(){let t=rn(this._storage);return r._fromStorage(t)}cosh(){let t=tn(this._storage);return r._fromStorage(t)}tanh(){let t=en(this._storage);return r._fromStorage(t)}arcsinh(){let t=nn(this._storage);return r._fromStorage(t)}arccosh(){let t=on(this._storage);return r._fromStorage(t)}arctanh(){let t=an(this._storage);return r._fromStorage(t)}greater(t){let e=typeof t=="number"?t:t._storage,n=oe(this._storage,e);return r._fromStorage(n)}greater_equal(t){let e=typeof t=="number"?t:t._storage,n=ae(this._storage,e);return r._fromStorage(n)}less(t){let e=typeof t=="number"?t:t._storage,n=se(this._storage,e);return r._fromStorage(n)}less_equal(t){let e=typeof t=="number"?t:t._storage,n=ie(this._storage,e);return r._fromStorage(n)}equal(t){let e=typeof t=="number"?t:t._storage,n=ue(this._storage,e);return r._fromStorage(n)}not_equal(t){let e=typeof t=="number"?t:t._storage,n=ce(this._storage,e);return r._fromStorage(n)}isclose(t,e=1e-5,n=1e-8){let o=typeof t=="number"?t:t._storage,a=Wr(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 le(this._storage,o,e,n)}bitwise_and(t){let e=typeof t=="number"?t:t._storage,n=Bn(this._storage,e);return r._fromStorage(n)}bitwise_or(t){let e=typeof t=="number"?t:t._storage,n=En(this._storage,e);return r._fromStorage(n)}bitwise_xor(t){let e=typeof t=="number"?t:t._storage,n=Un(this._storage,e);return r._fromStorage(n)}bitwise_not(){let t=gt(this._storage);return r._fromStorage(t)}invert(){let t=Tn(this._storage);return r._fromStorage(t)}left_shift(t){let e=typeof t=="number"?t:t._storage,n=vn(this._storage,e);return r._fromStorage(n)}right_shift(t){let e=typeof t=="number"?t:t._storage,n=On(this._storage,e);return r._fromStorage(n)}sum(t,e=!1){let n=ar(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}mean(t,e=!1){let n=br(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}max(t,e=!1){let n=Sr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}min(t,e=!1){let n=Dr(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=Hr(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}argmax(t){let e=Yr(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}var(t,e=0,n=!1){let o=Jr(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}std(t,e=0,n=!1){let o=pe(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}all(t,e=!1){let n=Xr(this._storage,t,e);return typeof n=="boolean"?n:r._fromStorage(n)}any(t,e=!1){let n=Qr(this._storage,t,e);return typeof n=="boolean"?n:r._fromStorage(n)}cumsum(t){return r._fromStorage(Kr(this._storage,t))}cumprod(t){return r._fromStorage(rt(this._storage,t))}ptp(t,e=!1){let n=tt(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}median(t,e=!1){let n=et(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}percentile(t,e,n=!1){let o=nt(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}quantile(t,e,n=!1){let o=er(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}average(t,e){let n=xr(this._storage,e,t?.storage);return typeof n=="number"?n:r._fromStorage(n)}nansum(t,e=!1){let n=Nr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}nanprod(t,e=!1){let n=wr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}nanmean(t,e=!1){let n=Ir(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}nanvar(t,e=0,n=!1){let o=sr(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}nanstd(t,e=0,n=!1){let o=ot(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}nanmin(t,e=!1){let n=zr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}nanmax(t,e=!1){let n=_r(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}nanargmin(t){let e=Br(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}nanargmax(t){let e=Er(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}nancumsum(t){return r._fromStorage(at(this._storage,t))}nancumprod(t){return r._fromStorage(st(this._storage,t))}nanmedian(t,e=!1){let n=Ur(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}sort(t=-1){return r._fromStorage(ht(this._storage,t))}argsort(t=-1){return r._fromStorage(At(this._storage,t))}partition(t,e=-1){return r._fromStorage(bt(this._storage,t,e))}argpartition(t,e=-1){return r._fromStorage(St(this._storage,t,e))}nonzero(){return Or(this._storage).map(e=>r._fromStorage(e))}searchsorted(t,e="left"){return r._fromStorage(Dt(this._storage,t._storage,e))}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=Tr(this._storage);return r._fromStorage(t)}ravel(){let t=ur(this._storage),n=t.data===this.data?this._base??this:void 0;return r._fromStorage(t,n)}transpose(t){let e=cr(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}squeeze(t){let e=ye(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}expand_dims(t){let e=ir(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}swapaxes(t,e){let n=me(this._storage,t,e),o=this._base??this;return r._fromStorage(n,o)}moveaxis(t,e){let n=it(this._storage,t,e),o=this._base??this;return r._fromStorage(n,o)}repeat(t,e){let n=Ne(this._storage,t,e);return r._fromStorage(n)}take(t,e){let n=un(this._storage,t,e);return r._fromStorage(n)}put(t,e){let n=e instanceof r?e._storage:e;cn(this._storage,t,n)}matmul(t){let e=K(this._storage,t._storage);return r._fromStorage(e)}dot(t){let e=lt(this._storage,t._storage);return typeof e=="number"||typeof e=="bigint"?e:r._fromStorage(e)}trace(){return Ce(this._storage)}inner(t){let e=ke(this._storage,t._storage);return typeof e=="number"||typeof e=="bigint"?e:r._fromStorage(e)}outer(t){let e=ft(this._storage,t._storage);return r._fromStorage(e)}tensordot(t,e=2){let n=Ve(this._storage,t._storage,e);return typeof n=="number"||typeof n=="bigint"?n:r._fromStorage(n)}cbrt(){let t=Qt(this._storage);return r._fromStorage(t)}fabs(){let t=Kt(this._storage);return r._fromStorage(t)}divmod(t){let e=typeof t=="number"?t:t._storage,[n,o]=re(this._storage,e);return[r._fromStorage(n),r._fromStorage(o)]}square(){let t=te(this._storage);return r._fromStorage(t)}remainder(t){let e=typeof t=="number"?t:t._storage,n=ee(this._storage,e);return r._fromStorage(n)}heaviside(t){let e=typeof t=="number"?t:t._storage,n=ne(this._storage,e);return r._fromStorage(n)}slice(...t){if(t.length===0)return this;if(t.length>this.ndim)throw new Error(`Too many indices for array: array is ${this.ndim}-dimensional, but ${t.length} were indexed`);let e=t.map((u,c)=>{let l=kt(u);return Vt(l,this.shape[c])});for(;e.length<this.ndim;)e.push({start:0,stop:this.shape[e.length],step:1,isIndex:!1});let n=[],o=[],a=this._storage.offset;for(let u=0;u<e.length;u++){let c=e[u],l=this._storage.strides[u];if(a+=c.start*l,!c.isIndex){let p;c.step>0?p=Math.max(0,Math.ceil((c.stop-c.start)/c.step)):p=Math.max(0,Math.ceil((c.start-c.stop)/Math.abs(c.step))),n.push(p),o.push(l*c.step)}}let s=D.fromData(this._storage.data,n,this._storage.dtype,o,a),i=this._base??this;return new r(s,i)}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 s=[];for(let i=0;i<t[a];i++)o[a]=i,s.push(n(o,a+1));return s};return n(new Array(e),0)}};function H(r,t=k){let e=D.zeros(r,t);return new _(e)}function Nt(r,t=k){let e=D.ones(r,t);return new _(e)}function nu(r){let t=[],e=r;for(;Array.isArray(e);)t.push(e.length),e=e[0];return t}function Rn(r){return typeof r=="bigint"?!0:Array.isArray(r)?r.some(t=>Rn(t)):!1}function ou(r){let t=[];function e(n){Array.isArray(n)?n.forEach(o=>e(o)):t.push(n)}return e(r),t}function R(r,t){if(r instanceof _)return!t||r.dtype===t?r.copy():r.astype(t);let e=Rn(r),n=nu(r),o=n.reduce((l,p)=>l*p,1),a=t;a||(e?a="int64":a=k);let s=O(a);if(!s)throw new Error(`Cannot create array with dtype ${a}`);let i=new s(o),u=ou(r);if(x(a)){let l=i;for(let p=0;p<o;p++){let f=u[p];l[p]=typeof f=="bigint"?f:BigInt(Math.round(Number(f)))}}else if(a==="bool"){let l=i;for(let p=0;p<o;p++)l[p]=u[p]?1:0}else{let l=i;for(let p=0;p<o;p++){let f=u[p];l[p]=Number(f)}}let c=D.fromData(i,n,a);return new _(c)}function Ln(r,t,e=1,n=k){let o=r,a=t;if(t===void 0&&(o=0,a=r),a===void 0)throw new Error("stop is required");let s=Math.max(0,Math.ceil((a-o)/e)),i=O(n);if(!i)throw new Error(`Cannot create arange array with dtype ${n}`);let u=new i(s);if(x(n))for(let l=0;l<s;l++)u[l]=BigInt(Math.round(o+l*e));else if(n==="bool")for(let l=0;l<s;l++)u[l]=o+l*e!==0?1:0;else for(let l=0;l<s;l++)u[l]=o+l*e;let c=D.fromData(u,[s],n);return new _(c)}function qn(r,t,e=50,n=k){if(e<0)throw new Error("num must be non-negative");if(e===0)return R([],n);if(e===1)return R([r],n);let o=O(n);if(!o)throw new Error(`Cannot create linspace array with dtype ${n}`);let a=new o(e),s=(t-r)/(e-1);if(x(n))for(let u=0;u<e;u++)a[u]=BigInt(Math.round(r+u*s));else if(n==="bool")for(let u=0;u<e;u++)a[u]=r+u*s!==0?1:0;else for(let u=0;u<e;u++)a[u]=r+u*s;let i=D.fromData(a,[e],n);return new _(i)}function jn(r,t,e=50,n=10,o=k){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,r)],o);let a=O(o);if(!a)throw new Error(`Cannot create logspace array with dtype ${o}`);let s=new a(e),i=(t-r)/(e-1);if(x(o))for(let c=0;c<e;c++){let l=r+c*i;s[c]=BigInt(Math.round(Math.pow(n,l)))}else if(o==="bool")for(let c=0;c<e;c++){let l=r+c*i;s[c]=Math.pow(n,l)!==0?1:0}else for(let c=0;c<e;c++){let l=r+c*i;s[c]=Math.pow(n,l)}let u=D.fromData(s,[e],o);return new _(u)}function Zn(r,t,e=50,n=k){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 R([],n);if(e===1)return R([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 s=O(n);if(!s)throw new Error(`Cannot create geomspace array with dtype ${n}`);let i=new s(e),u=Math.log(Math.abs(r)),l=(Math.log(Math.abs(t))-u)/(e-1);if(x(n))for(let f=0;f<e;f++){let y=o*Math.exp(u+f*l);i[f]=BigInt(Math.round(y))}else if(n==="bool")for(let f=0;f<e;f++){let y=o*Math.exp(u+f*l);i[f]=y!==0?1:0}else for(let f=0;f<e;f++){let y=o*Math.exp(u+f*l);i[f]=y}let p=D.fromData(i,[e],n);return new _(p)}function wt(r,t,e=0,n=k){let o=t??r,a=H([r,o],n),s=a.data;if(x(n)){let i=s;for(let u=0;u<r;u++){let c=u+e;c>=0&&c<o&&(i[u*o+c]=BigInt(1))}}else{let i=s;for(let u=0;u<r;u++){let c=u+e;c>=0&&c<o&&(i[u*o+c]=1)}}return a}function It(r,t=k){return H(r,t)}function zt(r,t,e){let n=e;n||(typeof t=="bigint"?n="int64":typeof t=="boolean"?n="bool":Number.isInteger(t)?n="int32":n=k);let o=O(n);if(!o)throw new Error(`Cannot create full array with dtype ${n}`);let a=r.reduce((u,c)=>u*c,1),s=new o(a);if(x(n)){let u=typeof t=="bigint"?t:BigInt(Math.round(Number(t)));s.fill(u)}else n==="bool"?s.fill(t?1:0):s.fill(Number(t));let i=D.fromData(s,r,n);return new _(i)}function Wn(r,t=k){return wt(r,r,0,t)}function pr(r,t){return r instanceof _?!t||r.dtype===t?r:r.astype(t):R(r,t)}function Gn(r){return r.copy()}function Hn(r,t){return H(Array.from(r.shape),t??r.dtype)}function Yn(r,t){return Nt(Array.from(r.shape),t??r.dtype)}function Jn(r,t){return It(Array.from(r.shape),t??r.dtype)}function Xn(r,t,e){return zt(Array.from(r.shape),t,e??r.dtype)}function Qn(r,t){return pr(r,t)}function Kn(r,t){let e=pr(r,t);return e.flags.C_CONTIGUOUS?e:e.copy()}function ro(r,t){return pr(r,t).copy()}function _t(r,t=0){if(r.ndim===1){let e=r.size,n=e+Math.abs(t),o=H([n,n],r.dtype);for(let a=0;a<e;a++){let s=t>=0?a:a-t,i=t>=0?a+t:a;o.set([s,i],r.get([a]))}return o}else if(r.ndim===2){let[e,n]=r.shape,o,a,s;if(t>=0?(o=0,a=t,s=Math.min(e,n-t)):(o=-t,a=0,s=Math.min(e+t,n)),s<=0)return H([0],r.dtype);let i=O(r.dtype),u=new i(s);for(let l=0;l<s;l++){let p=r.get([o+l,a+l]);x(r.dtype)?u[l]=typeof p=="bigint"?p:BigInt(p):u[l]=p}let c=D.fromData(u,[s],r.dtype);return new _(c)}else throw new Error("Input must be 1-D or 2-D")}function to(r,t=0){let e=r.flatten();return _t(e,t)}function eo(r,t,e=k){let n=t.reduce((c,l)=>c*l,1),o=O(e);if(!o)throw new Error(`Cannot create array with dtype ${e}`);let a=new o(n),s=t.length,i=new Array(s).fill(0);for(let c=0;c<n;c++){let l=r(...i);x(e)?a[c]=typeof l=="bigint"?l:BigInt(Number(l)):e==="bool"?a[c]=l?1:0:a[c]=Number(l);for(let p=s-1;p>=0&&(i[p]++,!(i[p]<t[p]));p--)i[p]=0}let u=D.fromData(a,t,e);return new _(u)}function no(...r){let t=[],e="xy";for(let i of r)i instanceof _?t.push(i):typeof i=="object"&&"indexing"in i&&(e=i.indexing||"xy");if(t.length===0)return[];if(t.length===1)return[t[0].copy()];let n=t.map(i=>i.size);e==="xy"&&t.length>=2&&(t=[t[1],t[0],...t.slice(2)],[n[0],n[1]]=[n[1],n[0]]);let o=n,a=o.length,s=[];for(let i=0;i<t.length;i++){let u=t[i],c=u.size,l=new Array(a).fill(1);l[i]=c;let p=u.reshape(...l),f=pt(p.storage,o),y=_._fromStorage(f.copy());s.push(y)}return e==="xy"&&s.length>=2&&([s[0],s[1]]=[s[1],s[0]]),s}function oo(r,t,e=0,n=k){let o=t??r,a=H([r,o],n);for(let s=0;s<r;s++)for(let i=0;i<=s+e&&i<o;i++)i>=0&&a.set([s,i],1);return a}function ao(r,t=0){if(r.ndim<2)throw new Error("Input must have at least 2 dimensions");let e=r.copy(),n=e.shape,o=n[n.length-2],a=n[n.length-1],s=n.slice(0,-2).reduce((i,u)=>i*u,1);for(let i=0;i<s;i++)for(let u=0;u<o;u++)for(let c=0;c<a;c++)if(c>u+t){let l=[],p=i;for(let f=n.length-3;f>=0;f--)l.unshift(p%n[f]),p=Math.floor(p/n[f]);l.push(u,c),e.set(l,0)}return e}function so(r,t=0){if(r.ndim<2)throw new Error("Input must have at least 2 dimensions");let e=r.copy(),n=e.shape,o=n[n.length-2],a=n[n.length-1],s=n.slice(0,-2).reduce((i,u)=>i*u,1);for(let i=0;i<s;i++)for(let u=0;u<o;u++)for(let c=0;c<a;c++)if(c<u+t){let l=[],p=i;for(let f=n.length-3;f>=0;f--)l.unshift(p%n[f]),p=Math.floor(p/n[f]);l.push(u,c),e.set(l,0)}return e}function io(r,t,e=!1){if(r.ndim!==1)throw new Error("Input must be 1-D");let n=r.size,o=t??n;if(o<0)throw new Error("N must be non-negative");let a=H([n,o],r.dtype);for(let s=0;s<n;s++){let i=r.get([s]);for(let u=0;u<o;u++){let c=e?u:o-1-u;a.set([s,u],Math.pow(i,c))}}return a}function uo(r,t=k,e=-1,n=0){let o,a=n;r instanceof ArrayBuffer?o=r:(o=r.buffer,a+=r.byteOffset);let s=au(t),i=o.byteLength-a,u=Math.floor(i/s),c=e<0?u:Math.min(e,u);if(c<=0)return R([],t);let l=O(t);if(!l)throw new Error(`Unsupported dtype: ${t}`);let p=new l(o,a,c),f=D.fromData(p,[c],t);return new _(f)}function co(r,t=k,e=-1){let n=[],o=0;for(let a of r){if(e>=0&&o>=e)break;n.push(a),o++}return R(n,t)}function lo(r,t=k,e=-1){let n=[],o=0;for(let a of r){if(e>=0&&o>=e)break;n.push(a),o++}return R(n,t)}function fo(r,t=k,e=-1,n=""){let o;n===""?o=r.trim().split(/\s+/):o=r.split(n);let a=[],s=0;for(let i of o){if(e>=0&&s>=e)break;let u=i.trim();u!==""&&(x(t)?a.push(BigInt(u)):a.push(parseFloat(u)),s++)}return R(a,t)}function au(r){switch(r){case"int8":case"uint8":case"bool":return 1;case"int16":case"uint16":return 2;case"int32":case"uint32":case"float32":return 4;case"int64":case"uint64":case"float64":return 8;default:return 8}}function po(r){return r.sqrt()}function yo(r,t){return r.power(t)}function mo(r){return r.absolute()}function go(r){return r.negative()}function ho(r){return r.sign()}function Ao(r,t){return r.mod(t)}function bo(r,t){return r.floor_divide(t)}function So(r){return r.positive()}function Do(r){return r.reciprocal()}function xo(r,t){return r.dot(t)}function No(r){return r.trace()}function wo(r,t=0,e=0,n=1){let o=Fe(r.storage,t,e,n);return _._fromStorage(o)}function Io(r,t){let e=Re(r.storage,t.storage);return _._fromStorage(e)}function zo(r,t){return r.transpose(t)}function _o(r,t){return r.inner(t)}function Bo(r,t){return r.outer(t)}function Eo(r,t,e=2){return r.tensordot(t,e)}function Uo(r){return r.sin()}function To(r){return r.cos()}function vo(r){return r.tan()}function Oo(r){return r.arcsin()}function $o(r){return r.arccos()}function Mo(r){return r.arctan()}function Co(r,t){return r.arctan2(t)}function ko(r,t){return r.hypot(t)}function Vo(r){return r.degrees()}function Fo(r){return r.radians()}function Po(r){return r.radians()}function Ro(r){return r.degrees()}function Lo(r){return r.sinh()}function qo(r){return r.cosh()}function jo(r){return r.tanh()}function Zo(r){return r.arcsinh()}function Wo(r){return r.arccosh()}function Go(r){return r.arctanh()}function Ho(r,t,e){return r.swapaxes(t,e)}function Yo(r,t,e){return r.moveaxis(t,e)}function rr(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=Q(e,t);return _._fromStorage(n)}function Jo(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=de(e,t);return _._fromStorage(n)}function Bt(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=ge(t);return _._fromStorage(e)}function Xo(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=ut(t);return _._fromStorage(e)}function Qo(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=he(t);return _._fromStorage(e)}function Ko(r,t,e=0){return Ae(r.storage,t,e).map(o=>_._fromStorage(o,r.base??r))}function ra(r,t,e=0){return lr(r.storage,t,e).map(o=>_._fromStorage(o,r.base??r))}function ta(r,t){return Se(r.storage,t).map(n=>_._fromStorage(n,r.base??r))}function ea(r,t){return De(r.storage,t).map(n=>_._fromStorage(n,r.base??r))}function na(r,t){let e=xe(r.storage,t);return _._fromStorage(e)}function oa(r,t,e){return r.repeat(t,e)}function aa(r){return r.ravel()}function sa(r,t){return r.reshape(...t)}function ia(r,t){return r.squeeze(t)}function ua(r,t){return r.expand_dims(t)}function $r(r,t){let e=we(r.storage,t);return _._fromStorage(e)}function ca(r){if(r.ndim<2)throw new Error("Input must be at least 2-D");return $r(r,1)}function la(r){if(r.ndim<2)throw new Error("Input must be at least 2-D");return $r(r,0)}function fa(r,t=1,e=[0,1]){let n=Ie(r.storage,t,e);return _._fromStorage(n)}function pa(r,t,e){let n=ze(r.storage,t,e);return _._fromStorage(n)}function ya(r,t,e=0){let n=_e(r.storage,t,e);return _._fromStorage(n,r.base??r)}function ma(...r){let t=r.map(o=>o.storage),n=Te(t).map((o,a)=>o===t[a]?r[a]:_._fromStorage(o));return n.length===1?n[0]:n}function da(...r){let t=r.map(o=>o.storage),n=ve(t).map((o,a)=>o===t[a]?r[a]:_._fromStorage(o));return n.length===1?n[0]:n}function ga(...r){let t=r.map(o=>o.storage),n=Oe(t).map((o,a)=>o===t[a]?r[a]:_._fromStorage(o));return n.length===1?n[0]:n}function ha(r,t){return Be(r.storage,t).map(n=>_._fromStorage(n,r.base??r))}function Aa(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=Ee(t);return _._fromStorage(e)}function ba(r){return Bt(r)}function Sa(r,t){let e=Ue(r.storage,t);return _._fromStorage(e)}function Da(r,t,e){let n=t instanceof _?t:R(t,r.dtype);if(e===void 0){let o=r.flatten(),a=n.flatten();return rr([o,a])}return rr([r,n],e)}function xa(r,t,e){let n=r.dtype;if(e===void 0){let y=r.flatten(),d=(Array.isArray(t)?t:[t]).map(S=>S<0?y.size+S:S),g=[];for(let S=0;S<y.size;S++)d.includes(S)||g.push(S);let A=O(n),h=new A(g.length);for(let S=0;S<g.length;S++){let N=y.get([g[S]]);x(n)?h[S]=typeof N=="bigint"?N:BigInt(N):h[S]=N}let b=D.fromData(h,[g.length],n);return new _(b)}let o=r.shape,a=o.length,s=e<0?a+e:e;if(s<0||s>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);let i=o[s],u=Array.isArray(t)?t:[t],c=new Set(u.map(y=>y<0?i+y:y)),l=[],p=0;for(let y=0;y<=i;y++)(c.has(y)||y===i)&&(y>p&&l.push([p,y]),p=y+1);if(l.length===0){let y=[...o];return y[s]=0,H(y,n)}let f=[];for(let[y,m]of l){let d=o.map(()=>":");d[s]=`${y}:${m}`,f.push(r.slice(...d))}return rr(f,s)}function Na(r,t,e,n){let o=e instanceof _?e:R(e,r.dtype);if(n===void 0){let p=r.flatten(),f=o.flatten(),y=t<0?p.size+t:t;if(y<0||y>p.size)throw new Error(`index ${t} is out of bounds for array of size ${p.size}`);let m=y>0?p.slice(`0:${y}`):null,d=y<p.size?p.slice(`${y}:`):null,g=[];return m&&g.push(m),g.push(f),d&&g.push(d),rr(g)}let a=r.shape,s=a.length,i=n<0?s+n:n;if(i<0||i>=s)throw new Error(`axis ${n} is out of bounds for array of dimension ${s}`);let u=a[i],c=t<0?u+t:t;if(c<0||c>u)throw new Error(`index ${t} is out of bounds for axis ${n} with size ${u}`);let l=[];if(c>0){let p=a.map(()=>":");p[i]=`0:${c}`,l.push(r.slice(...p))}if(l.push(o),c<u){let p=a.map(()=>":");p[i]=`${c}:`,l.push(r.slice(...p))}return rr(l,i)}function wa(r,t,e="constant",n=0){let o=r.shape,a=o.length,s=r.dtype,i;if(typeof t=="number"?i=o.map(()=>[t,t]):Array.isArray(t)&&typeof t[0]=="number"?i=o.map(()=>t):i=t,i.length!==a)throw new Error(`pad_width must have ${a} elements`);let u=o.map((d,g)=>d+i[g][0]+i[g][1]),c=u.reduce((d,g)=>d*g,1),l=O(s),p=new l(c),f=x(s);e==="constant"&&(f?p.fill(BigInt(n)):p.fill(n));let y=new Array(a).fill(0);for(let d=0;d<c;d++){let g=!0,A=[];for(let b=0;b<a;b++){let[S]=i[b],N=y[b]-S;if(N<0||N>=o[b]){g=!1;break}A.push(N)}let h;if(g)h=r.get(A);else if(e==="constant"){for(let b=a-1;b>=0&&(y[b]++,!(y[b]<u[b]));b--)y[b]=0;continue}else{let b=[];for(let S=0;S<a;S++){let[N]=i[S],w=y[S]-N,I=o[S];w<0?e==="edge"?w=0:e==="reflect"?(w=-w,w>=I&&(w=I-1)):e==="symmetric"?(w=-w-1,w>=I&&(w=I-1),w<0&&(w=0)):e==="wrap"&&(w=(w%I+I)%I):w>=I&&(e==="edge"?w=I-1:e==="reflect"?(w=2*I-w-2,w<0&&(w=0)):e==="symmetric"?(w=2*I-w-1,w<0&&(w=0)):e==="wrap"&&(w=w%I)),b.push(Math.max(0,Math.min(I-1,w)))}h=r.get(b)}f?p[d]=typeof h=="bigint"?h:BigInt(Number(h)):p[d]=Number(h);for(let b=a-1;b>=0&&(y[b]++,!(y[b]<u[b]));b--)y[b]=0}let m=D.fromData(p,u,s);return new _(m)}function Ia(r,t){let e=pt(r.storage,t);return _._fromStorage(e,r.base??r)}function za(...r){let t=r.map(n=>n.storage);return sn(t).map((n,o)=>_._fromStorage(n,r[o].base??r[o]))}function _a(...r){return Zr(...r)}function Ba(r,t,e){return r.take(t,e)}function Ea(r,t,e){r.put(t,e)}function Ua(r,t){let e=t.map(o=>o.storage),n=ln(r.storage,e);return _._fromStorage(n)}function Ta(r,t,e=!1){return fn(r.storage,t.storage,e)}function va(r,t){return fe(r.storage,t.storage)}function Oa(r,t){return _._fromStorage(Kr(r.storage,t))}function $a(r,t){return _._fromStorage(rt(r.storage,t))}function Ma(r,t,e=!1){let n=tt(r.storage,t,e);return typeof n=="number"?n:_._fromStorage(n)}function Ca(r,t,e=!1){let n=et(r.storage,t,e);return typeof n=="number"?n:_._fromStorage(n)}function ka(r,t,e,n=!1){let o=nt(r.storage,t,e,n);return typeof o=="number"?o:_._fromStorage(o)}function Va(r,t,e,n=!1){let o=er(r.storage,t,e,n);return typeof o=="number"?o:_._fromStorage(o)}function Fa(r,t,e,n=!1){let o=e?e.storage:void 0,a=xr(r.storage,t,o,n);return typeof a=="number"?a:_._fromStorage(a)}function Pa(r,t,e=!1){let n=Nr(r.storage,t,e);return typeof n=="number"?n:_._fromStorage(n)}function Ra(r,t,e=!1){let n=wr(r.storage,t,e);return typeof n=="number"?n:_._fromStorage(n)}function La(r,t,e=!1){let n=Ir(r.storage,t,e);return typeof n=="number"?n:_._fromStorage(n)}function qa(r,t,e=0,n=!1){let o=sr(r.storage,t,e,n);return typeof o=="number"?o:_._fromStorage(o)}function ja(r,t,e=0,n=!1){let o=ot(r.storage,t,e,n);return typeof o=="number"?o:_._fromStorage(o)}function Za(r,t,e=!1){let n=zr(r.storage,t,e);return typeof n=="number"?n:_._fromStorage(n)}function Wa(r,t,e=!1){let n=_r(r.storage,t,e);return typeof n=="number"?n:_._fromStorage(n)}function Ga(r,t){let e=Br(r.storage,t);return typeof e=="number"?e:_._fromStorage(e)}function Ha(r,t){let e=Er(r.storage,t);return typeof e=="number"?e:_._fromStorage(e)}function Ya(r,t){return _._fromStorage(at(r.storage,t))}function Ja(r,t){return _._fromStorage(st(r.storage,t))}function Xa(r,t,e=!1){let n=Ur(r.storage,t,e);return typeof n=="number"?n:_._fromStorage(n)}function Qa(r){return r.cbrt()}function Ka(r){return r.fabs()}function rs(r,t){return r.divmod(t)}function ts(r){return r.square()}function es(r,t){return r.remainder(t)}function ns(r,t){return r.heaviside(t)}function os(r,t){return r.bitwise_and(t)}function as(r,t){return r.bitwise_or(t)}function ss(r,t){return r.bitwise_xor(t)}function is(r){return r.bitwise_not()}function us(r){return r.invert()}function cs(r,t){return r.left_shift(t)}function ls(r,t){return r.right_shift(t)}function fs(r,t=-1,e="big"){let n=$n(r.storage,t,e);return _._fromStorage(n)}function ps(r,t=-1,e=-1,n="big"){let o=Mn(r.storage,t,e,n);return _._fromStorage(o)}function ys(r,...t){let e=t.map(o=>o.storage),n=Pe(r,...e);return typeof n=="number"||typeof n=="bigint"?n:_._fromStorage(n)}function ms(r,t,e){return _._fromStorage(pn(r.storage,t.storage,e))}function ds(r,t,e,n){yn(r.storage,t.storage,e.storage,n)}function gs(r,t,e){let n=e instanceof _?e.storage:e;mn(r.storage,t.storage,n)}function hs(r,t,e){return _._fromStorage(dn(r.storage,t.storage,e))}function As(r,t,e=0){let n=r.map(a=>a.storage),o=t.map(a=>a.storage);return _._fromStorage(gn(n,o,e))}function bs(r,t,e){hn(r.storage,t.storage,e.storage)}function Ss(r,t=2){return yt(r,t).map(n=>_._fromStorage(n))}function Ds(r){return An(r.storage).map(e=>_._fromStorage(e))}function xs(r,t=0,e){return mt(r,t,e).map(o=>_._fromStorage(o))}function Ns(r,t=0){return bn(r.storage,t).map(n=>_._fromStorage(n))}function ws(r,t=0,e){return dt(r,t,e).map(o=>_._fromStorage(o))}function Is(r,t=0){return Sn(r.storage,t).map(n=>_._fromStorage(n))}function zs(r,t,e=0){return Dn(r,(a,s)=>t(a,s).storage,e).map(a=>_._fromStorage(a))}function _s(r,t="int32"){return _._fromStorage(xn(r,t))}function Bs(...r){return Nn(...r.map(e=>e.storage)).map(e=>_._fromStorage(e))}function Es(r,t,e="raise"){let n=r.map(o=>o.storage);return _._fromStorage(wn(n,t,e))}function Us(r,t,e="C"){let n=r instanceof _?r.storage:r;return In(n,t,e).map(a=>_._fromStorage(a))}function Ts(r,t=-1){return _._fromStorage(ht(r.storage,t))}function vs(r,t=-1){return _._fromStorage(At(r.storage,t))}function Os(r){let t=r.map(e=>e.storage);return _._fromStorage(Cn(t))}function $s(r,t,e=-1){return _._fromStorage(bt(r.storage,t,e))}function Ms(r,t,e=-1){return _._fromStorage(St(r.storage,t,e))}function Cs(r){return _._fromStorage(kn(r.storage))}function ks(r){return Or(r.storage).map(e=>_._fromStorage(e))}function Vs(r){return _._fromStorage(Vn(r.storage))}function Fs(r,t,e){let n=Fn(r.storage,t?.storage,e?.storage);return Array.isArray(n)?n.map(o=>_._fromStorage(o)):_._fromStorage(n)}function Ps(r,t,e="left"){return _._fromStorage(Dt(r.storage,t.storage,e))}function Rs(r,t){return _._fromStorage(Pn(r.storage,t.storage))}function Ls(r,t){let e=xt(r.storage,t);return typeof e=="number"?e:_._fromStorage(e)}var yr=new Uint8Array([147,78,85,77,80,89]),Mr=["float64","float32","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"];function Et(){let r=new ArrayBuffer(2);return new DataView(r).setInt16(0,256,!0),new Int16Array(r)[0]===256}var su={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"},qs={c:"complex numbers",S:"byte strings",U:"Unicode strings",O:"Python objects",V:"structured arrays (void)",M:"datetime64",m:"timedelta64"};function js(r){if(r.startsWith("[")||r.startsWith("("))throw new Y(`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 qs)throw new Y(`Unsupported dtype: ${qs[n]} (${r}). Use the 'force' parameter to skip arrays with unsupported dtypes.`);let o=su[e];if(!o)throw new Y(`Unknown or unsupported dtype descriptor: ${r}. Supported types: ${Mr.join(", ")}. Use the 'force' parameter to skip arrays with unsupported dtypes.`);let a=Et(),s=t==="<"||t==="|"||t==="="&&a,i=t===">"||t==="="&&!a,u=parseInt(e.slice(1),10),c=u>1&&(i&&a||s&&!a);return{dtype:o,needsByteSwap:c,itemsize:u}}var Y=class extends Error{constructor(t){super(t),this.name="UnsupportedDTypeError"}},q=class extends Error{constructor(t){super(t),this.name="InvalidNpyError"}};function dr(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=Cr(t);return kr(t,e)}function Cr(r){if(r.length<10)throw new q("File too small to be a valid NPY file");for(let c=0;c<yr.length;c++)if(r[c]!==yr[c])throw new q("Invalid NPY magic number");let t=r[6],e=r[7];if(t!==1&&t!==2&&t!==3)throw new q(`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 q("File truncated: header extends beyond file");let s=r.slice(o,a),i=new TextDecoder("utf-8").decode(s).trim(),u=iu(i);return{version:{major:t,minor:e},header:u,dataOffset:a}}function kr(r,t){let{header:e,dataOffset:n}=t,{dtype:o,needsByteSwap:a,itemsize:s}=js(e.descr),i=e.shape.reduce((d,g)=>d*g,1),u=i*s,c=r.length-n;if(c<u)throw new q(`File truncated: expected ${u} bytes of data, got ${c}`);let l=new ArrayBuffer(u);new Uint8Array(l).set(r.subarray(n,n+u));let f=uu(l,o,i,a,s),y=e.shape,m;if(e.fortran_order&&y.length>1){let d=[...y].reverse(),g=D.fromData(f,d,o);m=cu(g,d),y=e.shape}else m=D.fromData(f,[...y],o);return new _(m)}function iu(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 q(`Failed to parse NPY header: ${r}`);let o=t[1],a=e[1]==="True",s=n[1].trim(),i;return s===""?i=[]:i=s.split(",").map(u=>u.trim()).filter(u=>u!=="").map(u=>{let c=parseInt(u,10);if(isNaN(c))throw new q(`Invalid shape value: ${u}`);return c}),{descr:o,fortran_order:a,shape:i}}function uu(r,t,e,n,o){let a=O(t);if(!a)throw new q(`Cannot create array for dtype: ${t}`);if(!n)return new a(r,0,e);let s=new Uint8Array(r),i=new Uint8Array(r.byteLength);for(let u=0;u<e;u++){let c=u*o;for(let l=0;l<o;l++)i[c+l]=s[c+o-1-l]}return new a(i.buffer,0,e)}function cu(r,t){let e=t.length,n=r.size,o=r.dtype,a=O(o);if(!a)throw new q(`Cannot create array for dtype: ${o}`);let s=new a(n),i=[...t].reverse(),u=Zs(t),c=Zs(i),l=new Array(e).fill(0);for(let p=0;p<n;p++){let f=p;for(let m=0;m<e;m++){let d=u[m];l[m]=Math.floor(f/d),f=f%d}let y=0;for(let m=0;m<e;m++)y+=l[e-1-m]*c[m];x(o),s[y]=r.iget(p)}return D.fromData(s,i,o)}function Zs(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 nr(r){let t=r.shape,e=r.dtype,n=mr[e],o=t.length===0?"()":t.length===1?`(${t[0]},)`:`(${t.join(", ")})`,a=`{'descr': '${n}', 'fortran_order': False, 'shape': ${o}, }`,s=12,u=(64-(s+a.length+1)%64)%64;a=a+" ".repeat(u)+`
|
|
2
|
-
`;let c=new TextEncoder().encode(a),l=c.length,p=r.size,f=Pt(e),y=p*f,m=s+l+y,d=new Uint8Array(m);d.set(yr,0),d[6]=3,d[7]=0,d[8]=l&255,d[9]=l>>8&255,d[10]=l>>16&255,d[11]=l>>24&255,d.set(c,s);let g=s+l;return lu(r,d.subarray(g),f),d}function lu(r,t,e){let n=r.dtype,o=r.size,a=Et(),s=x(n),i=r._storage;if(i.isCContiguous&&i.offset===0&&a){let c=i.data,l=new Uint8Array(c.buffer,c.byteOffset,o*e);t.set(l)}else{let c=new DataView(t.buffer,t.byteOffset,t.byteLength);for(let l=0;l<o;l++){let p=i.iget(l),f=l*e;s?fu(c,f,p,n==="uint64"):pu(c,f,p,n)}}}function fu(r,t,e,n){n?r.setBigUint64(t,e,!0):r.setBigInt64(t,e,!0)}function pu(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 yu=(()=>{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 Ut(r){let t=4294967295;for(let e=0;e<r.length;e++)t=yu[(t^r[e])&255]^t>>>8;return(t^4294967295)>>>0}async function Ws(r){let t=Hs(r),e=new Map;for(let n of t){let o=await mu(n);e.set(n.name,o)}return e}function Gs(r){let t=Hs(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 Hs(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=new DataView(t.buffer,t.byteOffset,t.byteLength),n=[],o=-1;for(let c=t.length-22;c>=0;c--)if(e.getUint32(c,!0)===101010256){o=c;break}if(o===-1)throw new Error("Invalid ZIP file: end of central directory not found");let a=e.getUint32(o+16,!0),s=e.getUint16(o+10,!0),i=[],u=a;for(let c=0;c<s&&e.getUint32(u,!0)===33639248;c++){let p=e.getUint16(u+10,!0),f=e.getUint32(u+16,!0),y=e.getUint32(u+20,!0),m=e.getUint32(u+24,!0),d=e.getUint16(u+28,!0),g=e.getUint16(u+30,!0),A=e.getUint16(u+32,!0),h=e.getUint32(u+42,!0),b=t.slice(u+46,u+46+d),S=new TextDecoder("utf-8").decode(b);i.push({name:S,compressionMethod:p,crc32:f,compressedSize:y,uncompressedSize:m,localHeaderOffset:h}),u=u+46+d+g+A}for(let c of i){let l=c.localHeaderOffset;if(e.getUint32(l,!0)!==67324752)throw new Error(`Invalid local file header at offset ${l}`);let f=e.getUint16(l+26,!0),y=e.getUint16(l+28,!0),m=l+30+f+y,d=t.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 mu(r){if(r.compressionMethod===0)return r.compressedData;if(r.compressionMethod===8)return await du(r.compressedData);throw new Error(`Unsupported compression method: ${r.compressionMethod}`)}async function du(r){if(typeof DecompressionStream>"u")throw new Error("DecompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let t=new DecompressionStream("deflate-raw"),e=new Uint8Array(r.length);e.set(r);let n=t.writable.getWriter();n.write(e),n.close();let o=t.readable.getReader(),a=[];for(;;){let{done:c,value:l}=await o.read();if(c)break;a.push(l)}let s=a.reduce((c,l)=>c+l.length,0),i=new Uint8Array(s),u=0;for(let c of a)i.set(c,u),u+=c.length;return i}async function Vr(r,t={}){let e=t.force??!1,n=await Ws(r);return Ys(n,e)}function Fr(r,t={}){let e=t.force??!1,n=Gs(r);return Ys(n,e)}function Ys(r,t){let e=new Map,n=[],o=new Map;for(let[a,s]of r){if(!a.endsWith(".npy"))continue;let i=a.slice(0,-4);try{let u=dr(s);e.set(i,u)}catch(u){if(u instanceof Y&&t)n.push(i),o.set(i,u.message);else throw u}}return{arrays:e,skipped:n,errors:o}}async function Ot(r,t={}){let e=await Vr(r,t);return Object.fromEntries(e.arrays)}function $t(r,t={}){let e=Fr(r,t);return Object.fromEntries(e.arrays)}async function Js(r,t={}){let e=t.compress??!1,n=[];for(let[f,y]of r){let m=Ut(y),d,g;e?(d=await hu(y),d.length<y.length?g=8:(d=y,g=0)):(d=y,g=0),n.push({name:f,data:y,compressedData:d,crc:m,compressionMethod:g,offset:0})}let o=0;for(let f of n){let y=new TextEncoder().encode(f.name);o+=30+y.length+f.compressedData.length}let a=0;for(let f of n){let y=new TextEncoder().encode(f.name);a+=46+y.length}let i=o+a+22,u=new Uint8Array(i),c=new DataView(u.buffer),l=0;for(let f of n)f.offset=l,l=Qs(u,c,l,f);let p=l;for(let f of n)l=Ks(u,c,l,f);return ri(c,l,n.length,a,p),u}function Xs(r){let t=[];for(let[l,p]of r){let f=Ut(p);t.push({name:l,data:p,compressedData:p,crc:f,compressionMethod:0,offset:0})}let e=0;for(let l of t){let p=new TextEncoder().encode(l.name);e+=30+p.length+l.compressedData.length}let n=0;for(let l of t){let p=new TextEncoder().encode(l.name);n+=46+p.length}let a=e+n+22,s=new Uint8Array(a),i=new DataView(s.buffer),u=0;for(let l of t)l.offset=u,u=Qs(s,i,u,l);let c=u;for(let l of t)u=Ks(s,i,u,l);return ri(i,u,t.length,n,c),s}function Qs(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 Ks(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 ri(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 hu(r){if(typeof CompressionStream>"u")throw new Error("CompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let t=new CompressionStream("deflate-raw"),e=new Uint8Array(r.length);e.set(r);let n=t.writable.getWriter();n.write(e),n.close();let o=t.readable.getReader(),a=[];for(;;){let{done:c,value:l}=await o.read();if(c)break;a.push(l)}let s=a.reduce((c,l)=>c+l.length,0),i=new Uint8Array(s),u=0;for(let c of a)i.set(c,u),u+=c.length;return i}async function Mt(r,t={}){let e=ti(r);return Js(e,{compress:t.compress??!1})}function Ct(r){let t=ti(r);return Xs(t)}function ti(r){let t=new Map;if(Array.isArray(r)){for(let n=0;n<r.length;n++){let o=r[n],a=nr(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=nr(o),s=n.endsWith(".npy")?n:`${n}.npy`;t.set(s,a)}return t}var xu="0.8.0";0&&(module.exports={DTYPE_TO_DESCR,InvalidNpyError,NDArray,SUPPORTED_DTYPES,UnsupportedDTypeError,__version__,absolute,append,arange,arccos,arccosh,arcsin,arcsinh,arctan,arctan2,arctanh,argpartition,argsort,array,array_equal,array_equiv,array_split,asanyarray,asarray,ascontiguousarray,asfortranarray,atleast_1d,atleast_2d,atleast_3d,average,bitwise_and,bitwise_not,bitwise_or,bitwise_xor,broadcast_arrays,broadcast_shapes,broadcast_to,cbrt,choose,column_stack,compress,concatenate,copy,cos,cosh,count_nonzero,cumprod,cumsum,deg2rad,degrees,delete:null,diag,diag_indices,diag_indices_from,diagflat,diagonal,divmod,dot,dsplit,dstack,einsum,empty,empty_like,expand_dims,extract,eye,fabs,flatnonzero,flip,fliplr,flipud,floor_divide,frombuffer,fromfile,fromfunction,fromiter,fromstring,full,full_like,geomspace,heaviside,hsplit,hstack,hypot,identity,indices,inner,insert,invert,ix_,kron,left_shift,lexsort,linspace,loadNpz,loadNpzSync,logspace,mask_indices,median,meshgrid,mod,moveaxis,nanargmax,nanargmin,nancumprod,nancumsum,nanmax,nanmean,nanmedian,nanmin,nanprod,nanstd,nansum,nanvar,negative,nonzero,ones,ones_like,outer,packbits,pad,parseNpy,parseNpyData,parseNpyHeader,parseNpz,parseNpzSync,partition,percentile,place,positive,power,ptp,put,put_along_axis,putmask,quantile,rad2deg,radians,ravel,ravel_multi_index,reciprocal,remainder,repeat,reshape,resize,right_shift,roll,rollaxis,rot90,row_stack,searchsorted,select,serializeNpy,serializeNpz,serializeNpzSync,sign,sin,sinh,sort,sort_complex,split,sqrt,square,squeeze,stack,swapaxes,take,take_along_axis,tan,tanh,tensordot,tile,trace,transpose,tri,tril,tril_indices,tril_indices_from,triu,triu_indices,triu_indices_from,unpackbits,unravel_index,vander,vsplit,vstack,where,zeros,zeros_like});
|
|
1
|
+
"use strict";var dt=Object.defineProperty;var of=Object.getOwnPropertyDescriptor;var af=Object.getOwnPropertyNames;var sf=Object.prototype.hasOwnProperty;var uf=(r,t)=>{for(var e in t)dt(r,e,{get:t[e],enumerable:!0})},cf=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of af(t))!sf.call(r,o)&&o!==e&&dt(r,o,{get:()=>t[o],enumerable:!(n=of(t,o))||n.enumerable});return r};var lf=r=>cf(dt({},"__esModule",{value:!0}),r);var yy={};uf(yy,{DTYPE_TO_DESCR:()=>Mr,InvalidNpyError:()=>W,NDArray:()=>z,SUPPORTED_DTYPES:()=>at,UnsupportedDTypeError:()=>or,__version__:()=>my,abs:()=>be,absolute:()=>be,acos:()=>Se,acosh:()=>we,amax:()=>ve,amin:()=>Ee,append:()=>Wi,arange:()=>ps,arccos:()=>Se,arccosh:()=>we,arcsin:()=>he,arcsinh:()=>xe,arctan:()=>Ne,arctan2:()=>De,arctanh:()=>Ie,argpartition:()=>Fc,argsort:()=>$c,argwhere:()=>jc,around:()=>ot,array:()=>R,array_equal:()=>nu,array_equiv:()=>ou,array_split:()=>Ii,asanyarray:()=>ws,asarray:()=>vr,ascontiguousarray:()=>Is,asfortranarray:()=>zs,asin:()=>he,asinh:()=>xe,atan:()=>Ne,atan2:()=>De,atanh:()=>Ie,atleast_1d:()=>Vi,atleast_2d:()=>qi,atleast_3d:()=>ji,average:()=>cu,bincount:()=>cl,bitwise_and:()=>$u,bitwise_not:()=>Fu,bitwise_or:()=>ku,bitwise_xor:()=>Cu,broadcast_arrays:()=>Xi,broadcast_shapes:()=>Qi,broadcast_to:()=>Ji,cbrt:()=>Du,ceil:()=>Zc,choose:()=>eu,column_stack:()=>Ri,compress:()=>hc,concatenate:()=>lr,convolve:()=>dl,copy:()=>hs,copysign:()=>Qu,copyto:()=>tu,corrcoef:()=>bl,correlate:()=>pl,cos:()=>ci,cosh:()=>bi,count_nonzero:()=>Wc,cov:()=>gl,cross:()=>ul,cumprod:()=>Be,cumsum:()=>_e,cumulative_prod:()=>Be,cumulative_sum:()=>_e,deg2rad:()=>pi,degrees:()=>mi,delete:()=>Zi,diag:()=>de,diag_indices:()=>xc,diag_indices_from:()=>wc,diagflat:()=>_s,diagonal:()=>ei,diff:()=>al,digitize:()=>ll,divide:()=>Ae,divmod:()=>wu,dot:()=>ri,dsplit:()=>Pi,dstack:()=>xi,ediff1d:()=>sl,einsum:()=>pc,empty:()=>ye,empty_like:()=>Ds,exp:()=>Vs,exp2:()=>qs,expand_dims:()=>Ti,expm1:()=>js,extract:()=>Gc,eye:()=>me,fabs:()=>xu,fill_diagonal:()=>Dc,fix:()=>Hc,flatnonzero:()=>Pc,flip:()=>nt,fliplr:()=>Ui,flipud:()=>$i,float_power:()=>Bu,floor:()=>Yc,floor_divide:()=>Xs,fmod:()=>vu,frexp:()=>Eu,frombuffer:()=>Us,fromfile:()=>$s,fromfunction:()=>Bs,fromiter:()=>ks,fromstring:()=>Cs,full:()=>pe,full_like:()=>xs,gcd:()=>Mu,geomspace:()=>bs,gradient:()=>il,heaviside:()=>_u,histogram:()=>fl,histogram2d:()=>ml,histogramdd:()=>yl,hsplit:()=>_i,hstack:()=>Di,hypot:()=>fi,identity:()=>As,in1d:()=>Kc,indices:()=>Ec,inner:()=>ai,insert:()=>Hi,intersect1d:()=>rl,invert:()=>Vu,iscomplex:()=>ec,iscomplexobj:()=>nc,isdtype:()=>mc,isfinite:()=>Hu,isfortran:()=>uc,isin:()=>tl,isinf:()=>Yu,isnan:()=>Ju,isnat:()=>Xu,isneginf:()=>sc,isposinf:()=>ic,isreal:()=>oc,isrealobj:()=>ac,isscalar:()=>lc,iterable:()=>fc,ix_:()=>Mc,kron:()=>ni,lcm:()=>Ou,ldexp:()=>Tu,left_shift:()=>qu,lexsort:()=>kc,linalg:()=>dc,linspace:()=>ds,loadNpz:()=>$e,loadNpzSync:()=>ke,log:()=>Ps,log10:()=>Ls,log1p:()=>Gs,log2:()=>Rs,logaddexp:()=>Ws,logaddexp2:()=>Zs,logical_and:()=>Lu,logical_not:()=>Wu,logical_or:()=>Gu,logical_xor:()=>Zu,logspace:()=>gs,mask_indices:()=>vc,max:()=>ve,median:()=>su,meshgrid:()=>vs,min:()=>Ee,mod:()=>Js,modf:()=>Uu,moveaxis:()=>Si,nanargmax:()=>Au,nanargmin:()=>bu,nancumprod:()=>Su,nancumsum:()=>hu,nanmax:()=>gu,nanmean:()=>mu,nanmedian:()=>Nu,nanmin:()=>du,nanprod:()=>fu,nanstd:()=>pu,nansum:()=>lu,nanvar:()=>yu,negative:()=>Hs,nextafter:()=>rc,nonzero:()=>qc,ones:()=>fe,ones_like:()=>Ns,outer:()=>si,packbits:()=>Pu,pad:()=>Yi,parseNpy:()=>Or,parseNpyData:()=>it,parseNpyHeader:()=>st,parseNpz:()=>ut,parseNpzSync:()=>ct,partition:()=>Cc,percentile:()=>iu,place:()=>Nc,positive:()=>Qs,pow:()=>ge,power:()=>ge,promote_types:()=>yc,ptp:()=>au,put:()=>ru,put_along_axis:()=>bc,putmask:()=>Ac,quantile:()=>uu,rad2deg:()=>di,radians:()=>yi,random:()=>fy,ravel:()=>Ei,ravel_multi_index:()=>Oc,real_if_close:()=>cc,reciprocal:()=>Ks,remainder:()=>zu,repeat:()=>vi,reshape:()=>Mi,resize:()=>Gi,right_shift:()=>ju,rint:()=>Jc,roll:()=>Ci,rollaxis:()=>Fi,rot90:()=>ki,round:()=>ot,round_:()=>ot,row_stack:()=>Li,searchsorted:()=>Lc,select:()=>Sc,serializeNpy:()=>br,serializeNpz:()=>Ce,serializeNpzSync:()=>Fe,setdiff1d:()=>el,setxor1d:()=>nl,sign:()=>Ys,signbit:()=>Ku,sin:()=>ui,sinh:()=>gi,sort:()=>Uc,sort_complex:()=>Vc,spacing:()=>tc,split:()=>wi,sqrt:()=>Fs,square:()=>Iu,squeeze:()=>Oi,stack:()=>Ni,swapaxes:()=>hi,take:()=>Ki,take_along_axis:()=>gc,tan:()=>li,tanh:()=>Ai,tensordot:()=>ii,tile:()=>Bi,trace:()=>ti,transpose:()=>oi,tri:()=>Es,tril:()=>Ms,tril_indices:()=>Ic,tril_indices_from:()=>zc,triu:()=>Os,triu_indices:()=>_c,triu_indices_from:()=>Bc,true_divide:()=>Ae,trunc:()=>Xc,union1d:()=>ol,unique:()=>Qc,unpackbits:()=>Ru,unravel_index:()=>Tc,vander:()=>Ts,vsplit:()=>zi,vstack:()=>ze,where:()=>Rc,zeros:()=>nr,zeros_like:()=>Ss});module.exports=lf(yy);function We(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 Ze(r,t){let{start:e,stop:n}=r,{step:o,isIndex:a}=r;if(a){if(e===null)throw new Error("Index cannot be null");let i=e<0?t+e:e;if(i<0||i>=t)throw new Error(`Index ${e} is out of bounds for size ${t}`);return{start:i,stop:i+1,step:1,isIndex:!0}}return o>0?(e===null&&(e=0),n===null&&(n=t)):(e===null&&(e=t-1),n===null&&(n=-t-1)),e<0&&(e=t+e),n<0&&(n=t+n),e=Math.max(0,Math.min(e,t)),n=Math.max(-1,Math.min(n,t)),{start:e,stop:n,step:o,isIndex:!1}}var j="float64";function T(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 kr(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 Ye(r){return r==="int64"||r==="int32"||r==="int16"||r==="int8"||r==="uint64"||r==="uint32"||r==="uint16"||r==="uint8"}function He(r){return r==="float64"||r==="float32"}function w(r){return r==="int64"||r==="uint64"}function k(r,t){if(r===t)return r;if(r==="bool")return t;if(t==="bool")return r;if(He(r)||He(t)){if(r==="float64"||t==="float64")return"float64";if(r==="float32"){let c=t;return c==="int32"||c==="int64"||c==="uint32"||c==="uint64"?"float64":"float32"}if(t==="float32"){let c=r;return c==="int32"||c==="int64"||c==="uint32"||c==="uint64"?"float64":"float32"}return"float32"}let e=r.startsWith("int"),n=t.startsWith("int"),o=r.startsWith("uint"),a=t.startsWith("uint"),i=c=>c.includes("64")?64:c.includes("32")?32:c.includes("16")?16:c.includes("8")?8:0,u=i(r),s=i(t);if(r==="int64"&&t==="uint64"||r==="uint64"&&t==="int64")return"float64";if(e&&a&&u===s){if(u===8)return"int16";if(u===16)return"int32";if(u===32)return"int64"}if(o&&n&&u===s){if(s===8)return"int16";if(s===16)return"int32";if(s===32)return"int64"}if(e&&n||o&&a){let c=Math.max(u,s);return e?c===64?"int64":c===32?"int32":c===16?"int16":"int8":c===64?"uint64":c===32?"uint32":c===16?"uint16":"uint8"}return e&&a?u>s?r:s===8?"int16":s===16?"int32":s===32?"int64":"float64":o&&n?s>u?t:u===8?"int16":u===16?"int32":u===32?"int64":"float64":"float64"}var S=class r{constructor(t,e,n,o,a){this._data=t,this._shape=e,this._strides=n,this._offset=o,this._dtype=a}get shape(){return this._shape}get ndim(){return this._shape.length}get size(){return this._shape.reduce((t,e)=>t*e,1)}get dtype(){return this._dtype}get data(){return this._data}get strides(){return this._strides}get offset(){return this._offset}get isCContiguous(){let t=this._shape,e=this._strides,n=t.length;if(n===0)return!0;if(n===1)return e[0]===1;let o=1;for(let a=n-1;a>=0;a--){if(e[a]!==o)return!1;o*=t[a]}return!0}get isFContiguous(){let t=this._shape,e=this._strides,n=t.length;if(n===0)return!0;if(n===1)return e[0]===1;let o=1;for(let a=0;a<n;a++){if(e[a]!==o)return!1;o*=t[a]}return!0}iget(t){let e=this._shape,n=this._strides,o=e.length;if(o===0)return this._data[this._offset];let a=t,i=this._offset;for(let u=0;u<o;u++){let s=1;for(let l=u+1;l<o;l++)s*=e[l];let c=Math.floor(a/s);a=a%s,i+=c*n[u]}return this._data[i]}iset(t,e){let n=this._shape,o=this._strides,a=n.length;if(a===0){this._data[this._offset]=e;return}let i=t,u=this._offset;for(let s=0;s<a;s++){let c=1;for(let m=s+1;m<a;m++)c*=n[m];let l=Math.floor(i/c);i=i%c,u+=l*o[s]}this._data[u]=e}get(...t){let e=this._strides,n=this._offset;for(let o=0;o<t.length;o++)n+=t[o]*e[o];return this._data[n]}set(t,e){let n=this._strides,o=this._offset;for(let a=0;a<t.length;a++)o+=t[a]*n[a];this._data[o]=e}copy(){let t=Array.from(this._shape),e=this._dtype,n=this.size,o=T(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 i=this._data,u=a;for(let s=0;s<n;s++)u[s]=i[s]}else a.set(this._data);else if(w(e)){let i=a;for(let u=0;u<n;u++)i[u]=this.iget(u)}else for(let i=0;i<n;i++)a[i]=this.iget(i);return new r(a,t,r._computeStrides(t),0,e)}static fromData(t,e,n,o,a){let i=o??r._computeStrides(e),u=a??0;return new r(t,e,i,u,n)}static zeros(t,e=j){let n=t.reduce((i,u)=>i*u,1),o=T(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=j){let n=t.reduce((i,u)=>i*u,1),o=T(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 G(r){let t=new Array(r.length),e=1;for(let n=r.length-1;n>=0;n--)t[n]=e,e*=r[n];return t}function tr(r){if(r.length===0)return[];if(r.length===1)return Array.from(r[0]);let t=Math.max(...r.map(n=>n.length)),e=new Array(t);for(let n=0;n<t;n++){let o=1;for(let a of r){let i=a.length-t+n,u=i<0?1:a[i];if(u!==1){if(o===1)o=u;else if(o!==u)return null}}e[n]=o}return e}function ff(r,t,e){let n=r.length,o=e.length,a=new Array(o).fill(0);for(let i=0;i<n;i++){let u=o-n+i,s=r[i],c=e[u];if(s===c)a[u]=t[i];else if(s===1)a[u]=0;else throw new Error("Invalid broadcast")}return a}function er(r,t){let e=ff(r.shape,r.strides,t);return S.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function gt(...r){let t=tr(r);if(t===null){let e=r.map(n=>`(${n.join(",")})`).join(" ");throw new Error(`shape mismatch: objects cannot be broadcast to a single shape. Mismatch is between ${e}`)}return t}function sr(r,t){let e=r.length,n=t.length,o=Math.max(e,n),a=new Array(o);for(let i=0;i<o;i++){let u=i<o-e?1:r[i-(o-e)],s=i<o-n?1:t[i-(o-n)];if(u===s)a[i]=u;else if(u===1)a[i]=s;else if(s===1)a[i]=u;else throw new Error(`operands could not be broadcast together with shapes ${JSON.stringify(Array.from(r))} ${JSON.stringify(Array.from(t))}`)}return a}function mf(r,t,e){let n=r.length,o=e.length,a=new Array(o).fill(0);for(let i=0;i<n;i++){let u=o-n+i,s=r[i],c=e[u];if(s===c)a[u]=t[i];else if(s===1)a[u]=0;else throw new Error("Invalid broadcast")}return a}function Cr(r,t){let e=mf(r.shape,r.strides,t);return S.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function V(r,t,e,n){let o=sr(r.shape,t.shape),a=Cr(r,o),i=Cr(t,o),u=k(r.dtype,t.dtype),s=S.zeros(o,u),c=s.data,l=s.size;if(w(u)){let m=c;for(let f=0;f<l;f++){let y=a.iget(f),p=i.iget(f),d=typeof y=="bigint"?y:BigInt(Math.round(y)),g=typeof p=="bigint"?p:BigInt(Math.round(p));n==="add"?m[f]=d+g:n==="subtract"?m[f]=d-g:n==="multiply"?m[f]=d*g:n==="divide"?m[f]=d/g:m[f]=BigInt(Math.round(e(Number(d),Number(g))))}}else{let m=w(r.dtype)||w(t.dtype);for(let f=0;f<l;f++){let y=a.iget(f),p=i.iget(f),d=Number(y),g=Number(p);c[f]=e(d,g)}}return s}function Y(r,t,e){let n=sr(r.shape,t.shape),o=Cr(r,n),a=Cr(t,n),i=n.reduce((c,l)=>c*l,1),u=new Uint8Array(i),s=w(r.dtype)||w(t.dtype);for(let c=0;c<i;c++){let l=o.iget(c),m=a.iget(c),f=Number(l),y=Number(m);u[c]=e(f,y)?1:0}return S.fromData(u,n,"bool")}function F(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=S.zeros(o,u),c=s.data,l=r.data;if(w(n))if(w(u)){let m=c;for(let f=0;f<a;f++){let y=Number(l[f]);m[f]=BigInt(Math.round(t(y)))}}else for(let m=0;m<a;m++)c[m]=t(Number(l[m]));else for(let m=0;m<a;m++)c[m]=t(Number(l[m]));return s}function bt(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function Je(r,t){return typeof t=="number"?gf(r,t):bt(r,t)?yf(r,t):V(r,t,(e,n)=>e+n,"add")}function yf(r,t){let e=k(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=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 m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),f=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));s[l]=m+f}else{let l=a,m=i;for(let f=0;f<o;f++)s[f]=l[f]+m[f]}}else if(w(r.dtype)||w(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof i[c]=="bigint"?Number(i[c]):i[c];u[c]=l+m}else for(let c=0;c<o;c++)u[c]=a[c]+i[c];return n}function Xe(r,t){return typeof t=="number"?bf(r,t):bt(r,t)?pf(r,t):V(r,t,(e,n)=>e-n,"subtract")}function pf(r,t){let e=k(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=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 m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),f=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));s[l]=m-f}else{let l=a,m=i;for(let f=0;f<o;f++)s[f]=l[f]-m[f]}}else if(w(r.dtype)||w(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof i[c]=="bigint"?Number(i[c]):i[c];u[c]=l-m}else for(let c=0;c<o;c++)u[c]=a[c]-i[c];return n}function Qe(r,t){return typeof t=="number"?Af(r,t):bt(r,t)?df(r,t):V(r,t,(e,n)=>e*n,"multiply")}function df(r,t){let e=k(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=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 m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),f=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));s[l]=m*f}else{let l=a,m=i;for(let f=0;f<o;f++)s[f]=l[f]*m[f]}}else if(w(r.dtype)||w(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof i[c]=="bigint"?Number(i[c]):i[c];u[c]=l*m}else for(let c=0;c<o;c++)u[c]=a[c]*i[c];return n}function Ke(r,t){if(typeof t=="number")return hf(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:mr(r,"float64"),c=n?t:mr(t,"float64");return V(s,c,(l,m)=>l/m,"divide")}if(o||a){let s=o?r:mr(r,"float32"),c=a?t:mr(t,"float32");return V(s,c,(l,m)=>l/m,"divide")}let i=mr(r,"float64"),u=mr(t,"float64");return V(i,u,(s,c)=>s/c,"divide")}function mr(r,t){let e=S.zeros(Array.from(r.shape),t),n=r.size,o=r.data,a=e.data;for(let i=0;i<n;i++)a[i]=Number(o[i]);return e}function gf(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=S.zeros(n,e),u=i.data;if(w(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]+l}else for(let s=0;s<a;s++)u[s]=Number(o[s])+t;return i}function bf(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=S.zeros(n,e),u=i.data;if(w(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]-l}else for(let s=0;s<a;s++)u[s]=Number(o[s])-t;return i}function Af(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=S.zeros(n,e),u=i.data;if(w(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]*l}else for(let s=0;s<a;s++)u[s]=Number(o[s])*t;return i}function hf(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=S.zeros(n,u),c=s.data;if(w(e))for(let l=0;l<a;l++)c[l]=Number(o[l])/t;else for(let l=0;l<a;l++)c[l]=Number(o[l])/t;return s}function rn(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=S.zeros(e,t),i=a.data;if(w(t)){let u=n,s=i;for(let c=0;c<o;c++){let l=u[c];s[c]=l<0n?-l:l}}else for(let u=0;u<o;u++)i[u]=Math.abs(Number(n[u]));return a}function tn(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=S.zeros(e,t),i=a.data;if(w(t)){let u=n,s=i;for(let c=0;c<o;c++)s[c]=-u[c]}else for(let u=0;u<o;u++)i[u]=-Number(n[u]);return a}function en(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=S.zeros(e,t),i=a.data;if(w(t)){let u=n,s=i;for(let c=0;c<o;c++){let l=u[c];s[c]=l>0n?1n:l<0n?-1n:0n}}else for(let u=0;u<o;u++){let s=Number(n[u]);i[u]=s>0?1:s<0?-1:0}return a}function Fr(r,t){return typeof t=="number"?Sf(r,t):V(r,t,(e,n)=>(e%n+n)%n,"mod")}function Sf(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=S.zeros(n,e),u=i.data;if(w(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++){let f=s[m];c[m]=(f%l+l)%l}}else for(let s=0;s<a;s++){let c=Number(o[s]);u[s]=(c%t+t)%t}return i}function At(r,t){return typeof t=="number"?Nf(r,t):V(r,t,(e,n)=>Math.floor(e/n),"floor_divide")}function Nf(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=S.zeros(n,e),u=i.data;if(w(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]/l}else for(let s=0;s<a;s++)u[s]=Math.floor(Number(o[s])/t);return i}function nn(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=S.zeros(e,t),i=a.data;for(let u=0;u<o;u++)i[u]=n[u];return a}function on(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,i=t!=="float32"&&t!=="float64"?"float64":t,u=S.zeros(e,i),s=u.data;if(w(t))for(let c=0;c<o;c++)s[c]=1/Number(n[c]);else for(let c=0;c<o;c++)s[c]=1/Number(n[c]);return u}function an(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,i=t!=="float32"&&t!=="float64"?"float64":t,u=S.zeros(e,i),s=u.data;for(let c=0;c<o;c++)s[c]=Math.cbrt(Number(n[c]));return u}function sn(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",i=S.zeros(e,a),u=i.data;for(let s=0;s<o;s++)u[s]=Math.abs(Number(n[s]));return i}function un(r,t){let e=At(r,t),n=Fr(r,t);return[e,n]}function cn(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=S.zeros(e,t),i=a.data;if(w(t)){let u=n,s=i;for(let c=0;c<o;c++)s[c]=u[c]*u[c]}else for(let u=0;u<o;u++){let s=Number(n[u]);i[u]=s*s}return a}function ln(r,t){return Fr(r,t)}function fn(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",i=S.zeros(n,a),u=i.data;if(typeof t=="number")for(let s=0;s<o;s++){let c=Number(r.data[s]);c<0?u[s]=0:c===0?u[s]=t:u[s]=1}else{let s=t.data,c=t.shape;if(n.every((l,m)=>l===c[m]))for(let l=0;l<o;l++){let m=Number(r.data[l]);m<0?u[l]=0:m===0?u[l]=Number(s[l]):u[l]=1}else for(let l=0;l<o;l++){let m=Number(r.data[l]),f=l%t.size;m<0?u[l]=0:m===0?u[l]=Number(s[f]):u[l]=1}}return i}function mn(r,t){if(typeof t=="number"){let e=S.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.data,a=r.size;for(let i=0;i<a;i++)n[i]=Math.pow(Number(o[i]),t);return e}return V(r,t,(e,n)=>Math.pow(e,n),"float_power")}function yn(r,t){if(typeof t=="number"){let e=r.copy(),n=e.data,o=r.size;for(let a=0;a<o;a++){let i=Number(n[a]);n[a]=i-Math.trunc(i/t)*t}return e}return V(r,t,(e,n)=>e-Math.trunc(e/n)*n,"fmod")}function pn(r){let t=S.zeros(Array.from(r.shape),"float64"),e=S.zeros(Array.from(r.shape),"int32"),n=t.data,o=e.data,a=r.data,i=r.size;for(let u=0;u<i;u++){let s=Number(a[u]);if(s===0||!isFinite(s))n[u]=s,o[u]=0;else{let c=Math.floor(Math.log2(Math.abs(s)))+1,l=s/Math.pow(2,c);n[u]=l,o[u]=c}}return[t,e]}function dn(r,t){let e=(s,c)=>{for(s=Math.abs(Math.trunc(s)),c=Math.abs(Math.trunc(c));c!==0;){let l=c;c=s%c,s=l}return s};if(typeof t=="number"){let s=S.zeros(Array.from(r.shape),"int32"),c=s.data,l=r.data,m=r.size,f=Math.abs(Math.trunc(t));for(let y=0;y<m;y++)c[y]=e(Number(l[y]),f);return s}let n=V(r,t,e,"gcd"),o=S.zeros(Array.from(n.shape),"int32"),a=o.data,i=n.data,u=n.size;for(let s=0;s<u;s++)a[s]=Math.round(Number(i[s]));return o}function gn(r,t){let e=(c,l)=>{for(c=Math.abs(Math.trunc(c)),l=Math.abs(Math.trunc(l));l!==0;){let m=l;l=c%l,c=m}return c},n=(c,l)=>(c=Math.abs(Math.trunc(c)),l=Math.abs(Math.trunc(l)),c===0||l===0?0:c*l/e(c,l));if(typeof t=="number"){let c=S.zeros(Array.from(r.shape),"int32"),l=c.data,m=r.data,f=r.size,y=Math.abs(Math.trunc(t));for(let p=0;p<f;p++)l[p]=n(Number(m[p]),y);return c}let o=V(r,t,n,"lcm"),a=S.zeros(Array.from(o.shape),"int32"),i=a.data,u=o.data,s=o.size;for(let c=0;c<s;c++)i[c]=Math.round(Number(u[c]));return a}function bn(r,t){if(typeof t=="number"){let e=S.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.data,a=r.size,i=Math.pow(2,t);for(let u=0;u<a;u++)n[u]=Number(o[u])*i;return e}return V(r,t,(e,n)=>e*Math.pow(2,n),"ldexp")}function An(r){let t=S.zeros(Array.from(r.shape),"float64"),e=S.zeros(Array.from(r.shape),"float64"),n=t.data,o=e.data,a=r.data,i=r.size;for(let u=0;u<i;u++){let s=Number(a[u]),c=Math.trunc(s);o[u]=c,n[u]=s-c}return[t,e]}function hn(r,t){return typeof t=="number"?xf(r,t):Y(r,t,(e,n)=>e>n)}function Sn(r,t){return typeof t=="number"?wf(r,t):Y(r,t,(e,n)=>e>=n)}function Nn(r,t){return typeof t=="number"?If(r,t):Y(r,t,(e,n)=>e<n)}function Dn(r,t){return typeof t=="number"?zf(r,t):Y(r,t,(e,n)=>e<=n)}function xn(r,t){return typeof t=="number"?_f(r,t):Y(r,t,(e,n)=>e===n)}function wn(r,t){return typeof t=="number"?Bf(r,t):Y(r,t,(e,n)=>e!==n)}function ht(r,t,e=1e-5,n=1e-8){return typeof t=="number"?vf(r,t,e,n):Y(r,t,(o,a)=>{let i=Math.abs(o-a),u=n+e*Math.abs(a);return i<=u})}function In(r,t,e=1e-5,n=1e-8){let o=ht(r,t,e,n),a=o.data;for(let i=0;i<o.size;i++)if(a[i]===0)return!1;return!0}function zn(r,t){let e=[Array.from(r.shape),Array.from(t.shape)],n=tr(e);if(n===null)return!1;let o=er(r,n),a=er(t,n),i=n.length,u=n.reduce((l,m)=>l*m,1),s=w(o.dtype),c=w(a.dtype);for(let l=0;l<u;l++){let m=l,f=new Array(i);for(let d=i-1;d>=0;d--)f[d]=m%n[d],m=Math.floor(m/n[d]);let y=o.get(...f),p=a.get(...f);if(s||c){let d=typeof y=="bigint"?y:BigInt(Number(y)),g=typeof p=="bigint"?p:BigInt(Number(p));if(d!==g)return!1}else if(y!==p)return!1}return!0}function xf(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 S.fromData(e,Array.from(r.shape),"bool")}function wf(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 S.fromData(e,Array.from(r.shape),"bool")}function If(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 S.fromData(e,Array.from(r.shape),"bool")}function zf(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 S.fromData(e,Array.from(r.shape),"bool")}function _f(r,t){let e=new Uint8Array(r.size),n=r.data,o=r.dtype;if(w(o)){let a=BigInt(Math.round(t)),i=n;for(let u=0;u<r.size;u++)e[u]=i[u]===a?1:0}else for(let a=0;a<r.size;a++)e[a]=n[a]===t?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function Bf(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 S.fromData(e,Array.from(r.shape),"bool")}function vf(r,t,e,n){let o=new Uint8Array(r.size),a=r.data,i=r.dtype;if(w(i)){let u=a;for(let s=0;s<r.size;s++){let c=Number(u[s]),l=Math.abs(c-t),m=n+e*Math.abs(t);o[s]=l<=m?1:0}}else for(let u=0;u<r.size;u++){let s=Number(a[u]),c=Math.abs(s-t),l=n+e*Math.abs(t);o[u]=c<=l?1:0}return S.fromData(o,Array.from(r.shape),"bool")}function M(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 O(r,t,e,n){let o=n.length,a=new Array(o),i=Array.from(n).filter((s,c)=>c!==t),u=r;for(let s=i.length-1;s>=0;s--)a[s>=t?s+1:s]=u%i[s],u=Math.floor(u/i[s]);return a[t]=e,a}function Sr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,i=r.size,u=r.data;if(t===void 0)if(w(n)){let p=u,d=BigInt(0);for(let g=0;g<i;g++)d+=p[g];return Number(d)}else{let p=0;for(let d=0;d<i;d++)p+=Number(u[d]);return p}let s=t;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((p,d)=>d!==s);if(c.length===0)return Sr(r);let l=S.zeros(c,n),m=l.data,f=o[s],y=c.reduce((p,d)=>p*d,1);if(w(n)){let p=u,d=m;for(let g=0;g<y;g++){let h=BigInt(0);for(let A=0;A<f;A++){let b=O(g,s,A,o),N=M(b,o);h+=p[N]}d[g]=h}}else for(let p=0;p<y;p++){let d=0;for(let g=0;g<f;g++){let h=O(p,s,g,o),A=M(h,o);d+=Number(u[A])}m[p]=d}if(e){let p=[...o];return p[s]=1,S.fromData(m,p,n)}return l}function Vr(r,t,e=!1){let n=r.dtype,o=r.shape;if(t===void 0)return Sr(r)/r.size;let a=t;if(a<0&&(a=o.length+a),a<0||a>=o.length)throw new Error(`axis ${t} is out of bounds for array of dimension ${o.length}`);let i=Sr(r,t,e);if(typeof i=="number")return i/o[a];let u=o[a],s=n;(w(n)||n.startsWith("int")||n.startsWith("uint"))&&(s="float64");let c=S.zeros(Array.from(i.shape),s),l=c.data,m=i.data;if(w(n)){let f=m;for(let y=0;y<l.length;y++)l[y]=Number(f[y])/u}else for(let f=0;f<l.length;f++)l[f]=Number(m[f])/u;return c}function qr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,i=r.size,u=r.data;if(t===void 0){if(i===0)throw new Error("max of empty array");let p=u[0];for(let d=1;d<i;d++)u[d]>p&&(p=u[d]);return Number(p)}let s=t;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((p,d)=>d!==s);if(c.length===0)return qr(r);let l=S.zeros(c,n),m=l.data,f=o[s],y=c.reduce((p,d)=>p*d,1);if(w(n)){let p=u,d=m;for(let g=0;g<y;g++){let h=O(g,s,0,o),A=M(h,o),b=p[A];for(let N=1;N<f;N++){let D=O(g,s,N,o),x=M(D,o),I=p[x];I>b&&(b=I)}d[g]=b}}else for(let p=0;p<y;p++){let d=-1/0;for(let g=0;g<f;g++){let h=O(p,s,g,o),A=M(h,o),b=Number(u[A]);b>d&&(d=b)}m[p]=d}if(e){let p=[...o];return p[s]=1,S.fromData(m,p,n)}return l}function St(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,i=r.size,u=r.data;if(t===void 0)if(w(n)){let p=u,d=BigInt(1);for(let g=0;g<i;g++)d*=p[g];return Number(d)}else{let p=1;for(let d=0;d<i;d++)p*=Number(u[d]);return p}let s=t;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((p,d)=>d!==s);if(c.length===0)return St(r);let l=S.zeros(c,n),m=l.data,f=o[s],y=c.reduce((p,d)=>p*d,1);if(w(n)){let p=u,d=m;for(let g=0;g<y;g++){let h=BigInt(1);for(let A=0;A<f;A++){let b=O(g,s,A,o),N=M(b,o);h*=p[N]}d[g]=h}}else for(let p=0;p<y;p++){let d=1;for(let g=0;g<f;g++){let h=O(p,s,g,o),A=M(h,o);d*=Number(u[A])}m[p]=d}if(e){let p=[...o];return p[s]=1,S.fromData(m,p,n)}return l}function jr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,i=r.size,u=r.data;if(t===void 0){if(i===0)throw new Error("min of empty array");let p=u[0];for(let d=1;d<i;d++)u[d]<p&&(p=u[d]);return Number(p)}let s=t;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((p,d)=>d!==s);if(c.length===0)return jr(r);let l=S.zeros(c,n),m=l.data,f=o[s],y=c.reduce((p,d)=>p*d,1);if(w(n)){let p=u,d=m;for(let g=0;g<y;g++){let h=O(g,s,0,o),A=M(h,o),b=p[A];for(let N=1;N<f;N++){let D=O(g,s,N,o),x=M(D,o),I=p[x];I<b&&(b=I)}d[g]=b}}else for(let p=0;p<y;p++){let d=1/0;for(let g=0;g<f;g++){let h=O(p,s,g,o),A=M(h,o),b=Number(u[A]);b<d&&(d=b)}m[p]=d}if(e){let p=[...o];return p[s]=1,S.fromData(m,p,n)}return l}function Nt(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.size,i=r.data;if(t===void 0){if(a===0)throw new Error("argmin of empty array");let y=i[0],p=0;for(let d=1;d<a;d++)i[d]<y&&(y=i[d],p=d);return p}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((y,p)=>p!==u);if(s.length===0)return Nt(r);let c=S.zeros(s,"int32"),l=c.data,m=n[u],f=s.reduce((y,p)=>y*p,1);if(w(e)){let y=i;for(let p=0;p<f;p++){let d=O(p,u,0,n),g=M(d,n),h=y[g],A=0;for(let b=1;b<m;b++){let N=O(p,u,b,n),D=M(N,n),x=y[D];x<h&&(h=x,A=b)}l[p]=A}}else for(let y=0;y<f;y++){let p=1/0,d=0;for(let g=0;g<m;g++){let h=O(y,u,g,n),A=M(h,n),b=Number(i[A]);b<p&&(p=b,d=g)}l[y]=d}return c}function Dt(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.size,i=r.data;if(t===void 0){if(a===0)throw new Error("argmax of empty array");let y=i[0],p=0;for(let d=1;d<a;d++)i[d]>y&&(y=i[d],p=d);return p}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((y,p)=>p!==u);if(s.length===0)return Dt(r);let c=S.zeros(s,"int32"),l=c.data,m=n[u],f=s.reduce((y,p)=>y*p,1);if(w(e)){let y=i;for(let p=0;p<f;p++){let d=O(p,u,0,n),g=M(d,n),h=y[g],A=0;for(let b=1;b<m;b++){let N=O(p,u,b,n),D=M(N,n),x=y[D];x>h&&(h=x,A=b)}l[p]=A}}else for(let y=0;y<f;y++){let p=-1/0,d=0;for(let g=0;g<m;g++){let h=O(y,u,g,n),A=M(h,n),b=Number(i[A]);b>p&&(p=b,d=g)}l[y]=d}return c}function xt(r,t,e=0,n=!1){let o=r.shape,a=o.length,i=r.size,u=r.data,s=Vr(r,t,n);if(t===void 0){let h=s,A=0;for(let b=0;b<i;b++){let N=Number(u[b])-h;A+=N*N}return A/(i-e)}let c=t;if(c<0&&(c=a+c),c<0||c>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let l=o[c],m=s,f=m.data,y=n?m.shape:Array.from(o).filter((h,A)=>A!==c),p=S.zeros(Array.from(y),"float64"),d=p.data,g=y.reduce((h,A)=>h*A,1);for(let h=0;h<g;h++){let A=0,b=Number(f[h]);for(let N=0;N<l;N++){let D=O(h,c,N,o),x=M(D,o),I=Number(u[x])-b;A+=I*I}d[h]=A/(l-e)}return p}function _n(r,t,e=0,n=!1){let o=xt(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=S.zeros(Array.from(o.shape),"float64"),i=o.data,u=a.data;for(let s=0;s<i.length;s++)u[s]=Math.sqrt(Number(i[s]));return a}function wt(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,i=r.data;if(t===void 0){for(let y=0;y<a;y++)if(!i[y])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((y,p)=>p!==u);if(s.length===0)return wt(r);let c=S.zeros(s,"bool"),l=c.data,m=n[u],f=s.reduce((y,p)=>y*p,1);for(let y=0;y<f;y++){let p=!0;for(let d=0;d<m;d++){let g=O(y,u,d,n),h=M(g,n);if(!i[h]){p=!1;break}}l[y]=p?1:0}if(e){let y=[...n];return y[u]=1,S.fromData(l,y,"bool")}return c}function It(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,i=r.data;if(t===void 0){for(let y=0;y<a;y++)if(i[y])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((y,p)=>p!==u);if(s.length===0)return It(r);let c=S.zeros(s,"bool"),l=c.data,m=n[u],f=s.reduce((y,p)=>y*p,1);for(let y=0;y<f;y++){let p=!1;for(let d=0;d<m;d++){let g=O(y,u,d,n),h=M(g,n);if(i[h]){p=!0;break}}l[y]=p?1:0}if(e){let y=[...n];return y[u]=1,S.fromData(l,y,"bool")}return c}function zt(r,t){let e=r.shape,n=e.length,o=r.data;if(t===void 0){let f=r.size,y=new Float64Array(f),p=0;for(let d=0;d<f;d++)p+=Number(o[d]),y[d]=p;return S.fromData(y,[f],"float64")}let a=t;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=new Float64Array(r.size),u=e[a],s=[],c=1;for(let f=n-1;f>=0;f--)s.unshift(c),c*=e[f];let l=r.size,m=s[a];for(let f=0;f<l;f++)Math.floor(f/m)%u===0?i[f]=Number(o[f]):i[f]=i[f-m]+Number(o[f]);return S.fromData(i,[...e],"float64")}function _t(r,t){let e=r.shape,n=e.length,o=r.data;if(t===void 0){let f=r.size,y=new Float64Array(f),p=1;for(let d=0;d<f;d++)p*=Number(o[d]),y[d]=p;return S.fromData(y,[f],"float64")}let a=t;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=new Float64Array(r.size),u=e[a],s=[],c=1;for(let f=n-1;f>=0;f--)s.unshift(c),c*=e[f];let l=r.size,m=s[a];for(let f=0;f<l;f++)Math.floor(f/m)%u===0?i[f]=Number(o[f]):i[f]=i[f-m]*Number(o[f]);return S.fromData(i,[...e],"float64")}function Bt(r,t,e=!1){let n=qr(r,t,e),o=jr(r,t,e);if(typeof n=="number"&&typeof o=="number")return n-o;let a=n,i=o,u=a.data,s=i.data,c=new Float64Array(a.size);for(let l=0;l<a.size;l++)c[l]=Number(u[l])-Number(s[l]);return S.fromData(c,[...a.shape],"float64")}function vt(r,t,e=!1){return yr(r,.5,t,e)}function Et(r,t,e,n=!1){return yr(r,t/100,e,n)}function yr(r,t,e,n=!1){if(t<0||t>1)throw new Error("Quantile must be between 0 and 1");let o=r.shape,a=o.length,i=r.data;if(e===void 0){let y=[];for(let b=0;b<r.size;b++)y.push(Number(i[b]));y.sort((b,N)=>b-N);let p=y.length,d=t*(p-1),g=Math.floor(d),h=Math.ceil(d);if(g===h)return y[g];let A=d-g;return y[g]*(1-A)+y[h]*A}let u=e;if(u<0&&(u=a+u),u<0||u>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);let s=Array.from(o).filter((y,p)=>p!==u);if(s.length===0)return yr(r,t);let c=s.reduce((y,p)=>y*p,1),l=o[u],m=new Float64Array(c);for(let y=0;y<c;y++){let p=[];for(let b=0;b<l;b++){let N=O(y,u,b,o),D=M(N,o);p.push(Number(i[D]))}p.sort((b,N)=>b-N);let d=p.length,g=t*(d-1),h=Math.floor(g),A=Math.ceil(g);if(h===A)m[y]=p[h];else{let b=g-h;m[y]=p[h]*(1-b)+p[A]*b}}let f=S.fromData(m,s,"float64");if(n){let y=[...o];return y[u]=1,S.fromData(m,y,"float64")}return f}function Pr(r,t,e,n=!1){let o=r.shape,a=o.length,i=r.data;if(e===void 0)return Vr(r,t,n);if(t===void 0){let p=0,d=0,g=e.data;for(let h=0;h<r.size;h++){let A=Number(g[h%e.size]);p+=Number(i[h])*A,d+=A}return d===0?NaN:p/d}let u=t;if(u<0&&(u=a+u),u<0||u>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let s=Array.from(o).filter((p,d)=>d!==u);if(s.length===0)return Pr(r,void 0,e);let c=s.reduce((p,d)=>p*d,1),l=o[u],m=e.data,f=new Float64Array(c);for(let p=0;p<c;p++){let d=0,g=0;for(let h=0;h<l;h++){let A=O(p,u,h,o),b=M(A,o),N=Number(m[h%e.size]);d+=Number(i[b])*N,g+=N}f[p]=g===0?NaN:d/g}let y=S.fromData(f,s,"float64");if(n){let p=[...o];return p[u]=1,S.fromData(f,p,"float64")}return y}function Rr(r,t,e=!1){let n=r.shape,o=n.length,a=r.data;if(t===void 0){let f=0;for(let y=0;y<r.size;y++){let p=Number(a[y]);isNaN(p)||(f+=p)}return f}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let u=Array.from(n).filter((f,y)=>y!==i);if(u.length===0)return Rr(r);let s=u.reduce((f,y)=>f*y,1),c=n[i],l=new Float64Array(s);for(let f=0;f<s;f++){let y=0;for(let p=0;p<c;p++){let d=O(f,i,p,n),g=M(d,n),h=Number(a[g]);isNaN(h)||(y+=h)}l[f]=y}let m=S.fromData(l,u,"float64");if(e){let f=[...n];return f[i]=1,S.fromData(l,f,"float64")}return m}function Lr(r,t,e=!1){let n=r.shape,o=n.length,a=r.data;if(t===void 0){let f=1;for(let y=0;y<r.size;y++){let p=Number(a[y]);isNaN(p)||(f*=p)}return f}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let u=Array.from(n).filter((f,y)=>y!==i);if(u.length===0)return Lr(r);let s=u.reduce((f,y)=>f*y,1),c=n[i],l=new Float64Array(s);for(let f=0;f<s;f++){let y=1;for(let p=0;p<c;p++){let d=O(f,i,p,n),g=M(d,n),h=Number(a[g]);isNaN(h)||(y*=h)}l[f]=y}let m=S.fromData(l,u,"float64");if(e){let f=[...n];return f[i]=1,S.fromData(l,f,"float64")}return m}function Gr(r,t,e=!1){let n=r.shape,o=n.length,a=r.data;if(t===void 0){let f=0,y=0;for(let p=0;p<r.size;p++){let d=Number(a[p]);isNaN(d)||(f+=d,y++)}return y===0?NaN:f/y}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let u=Array.from(n).filter((f,y)=>y!==i);if(u.length===0)return Gr(r);let s=u.reduce((f,y)=>f*y,1),c=n[i],l=new Float64Array(s);for(let f=0;f<s;f++){let y=0,p=0;for(let d=0;d<c;d++){let g=O(f,i,d,n),h=M(g,n),A=Number(a[h]);isNaN(A)||(y+=A,p++)}l[f]=p===0?NaN:y/p}let m=S.fromData(l,u,"float64");if(e){let f=[...n];return f[i]=1,S.fromData(l,f,"float64")}return m}function Nr(r,t,e=0,n=!1){let o=r.shape,a=o.length,i=r.data;if(t===void 0){let y=0,p=0;for(let h=0;h<r.size;h++){let A=Number(i[h]);isNaN(A)||(y+=A,p++)}if(p-e<=0)return NaN;let d=y/p,g=0;for(let h=0;h<r.size;h++){let A=Number(i[h]);isNaN(A)||(g+=(A-d)**2)}return g/(p-e)}let u=t;if(u<0&&(u=a+u),u<0||u>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let s=Array.from(o).filter((y,p)=>p!==u);if(s.length===0)return Nr(r,void 0,e);let c=s.reduce((y,p)=>y*p,1),l=o[u],m=new Float64Array(c);for(let y=0;y<c;y++){let p=0,d=0;for(let A=0;A<l;A++){let b=O(y,u,A,o),N=M(b,o),D=Number(i[N]);isNaN(D)||(p+=D,d++)}if(d-e<=0){m[y]=NaN;continue}let g=p/d,h=0;for(let A=0;A<l;A++){let b=O(y,u,A,o),N=M(b,o),D=Number(i[N]);isNaN(D)||(h+=(D-g)**2)}m[y]=h/(d-e)}let f=S.fromData(m,s,"float64");if(n){let y=[...o];return y[u]=1,S.fromData(m,y,"float64")}return f}function Mt(r,t,e=0,n=!1){let o=Nr(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=o,i=new Float64Array(a.size);for(let u=0;u<a.size;u++)i[u]=Math.sqrt(Number(a.data[u]));return S.fromData(i,[...a.shape],"float64")}function Wr(r,t,e=!1){let n=r.shape,o=n.length,a=r.data;if(t===void 0){let f=1/0;for(let y=0;y<r.size;y++){let p=Number(a[y]);!isNaN(p)&&p<f&&(f=p)}return f===1/0?NaN:f}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let u=Array.from(n).filter((f,y)=>y!==i);if(u.length===0)return Wr(r);let s=u.reduce((f,y)=>f*y,1),c=n[i],l=new Float64Array(s);for(let f=0;f<s;f++){let y=1/0;for(let p=0;p<c;p++){let d=O(f,i,p,n),g=M(d,n),h=Number(a[g]);!isNaN(h)&&h<y&&(y=h)}l[f]=y===1/0?NaN:y}let m=S.fromData(l,u,"float64");if(e){let f=[...n];return f[i]=1,S.fromData(l,f,"float64")}return m}function Zr(r,t,e=!1){let n=r.shape,o=n.length,a=r.data;if(t===void 0){let f=-1/0;for(let y=0;y<r.size;y++){let p=Number(a[y]);!isNaN(p)&&p>f&&(f=p)}return f===-1/0?NaN:f}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let u=Array.from(n).filter((f,y)=>y!==i);if(u.length===0)return Zr(r);let s=u.reduce((f,y)=>f*y,1),c=n[i],l=new Float64Array(s);for(let f=0;f<s;f++){let y=-1/0;for(let p=0;p<c;p++){let d=O(f,i,p,n),g=M(d,n),h=Number(a[g]);!isNaN(h)&&h>y&&(y=h)}l[f]=y===-1/0?NaN:y}let m=S.fromData(l,u,"float64");if(e){let f=[...n];return f[i]=1,S.fromData(l,f,"float64")}return m}function Hr(r,t){let e=r.shape,n=e.length,o=r.data;if(t===void 0){let l=1/0,m=-1;for(let f=0;f<r.size;f++){let y=Number(o[f]);!isNaN(y)&&y<l&&(l=y,m=f)}return m}let a=t;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=Array.from(e).filter((l,m)=>m!==a);if(i.length===0)return Hr(r);let u=i.reduce((l,m)=>l*m,1),s=e[a],c=new Int32Array(u);for(let l=0;l<u;l++){let m=1/0,f=0;for(let y=0;y<s;y++){let p=O(l,a,y,e),d=M(p,e),g=Number(o[d]);!isNaN(g)&&g<m&&(m=g,f=y)}c[l]=f}return S.fromData(c,i,"int32")}function Yr(r,t){let e=r.shape,n=e.length,o=r.data;if(t===void 0){let l=-1/0,m=-1;for(let f=0;f<r.size;f++){let y=Number(o[f]);!isNaN(y)&&y>l&&(l=y,m=f)}return m}let a=t;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=Array.from(e).filter((l,m)=>m!==a);if(i.length===0)return Yr(r);let u=i.reduce((l,m)=>l*m,1),s=e[a],c=new Int32Array(u);for(let l=0;l<u;l++){let m=-1/0,f=0;for(let y=0;y<s;y++){let p=O(l,a,y,e),d=M(p,e),g=Number(o[d]);!isNaN(g)&&g>m&&(m=g,f=y)}c[l]=f}return S.fromData(c,i,"int32")}function Ot(r,t){let e=r.shape,n=e.length,o=r.data;if(t===void 0){let f=r.size,y=new Float64Array(f),p=0;for(let d=0;d<f;d++){let g=Number(o[d]);isNaN(g)||(p+=g),y[d]=p}return S.fromData(y,[f],"float64")}let a=t;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=new Float64Array(r.size),u=e[a],s=[],c=1;for(let f=n-1;f>=0;f--)s.unshift(c),c*=e[f];let l=r.size,m=s[a];for(let f=0;f<l;f++){let y=Number(o[f]);Math.floor(f/m)%u===0?i[f]=isNaN(y)?0:y:i[f]=i[f-m]+(isNaN(y)?0:y)}return S.fromData(i,[...e],"float64")}function Tt(r,t){let e=r.shape,n=e.length,o=r.data;if(t===void 0){let f=r.size,y=new Float64Array(f),p=1;for(let d=0;d<f;d++){let g=Number(o[d]);isNaN(g)||(p*=g),y[d]=p}return S.fromData(y,[f],"float64")}let a=t;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=new Float64Array(r.size),u=e[a],s=[],c=1;for(let f=n-1;f>=0;f--)s.unshift(c),c*=e[f];let l=r.size,m=s[a];for(let f=0;f<l;f++){let y=Number(o[f]);Math.floor(f/m)%u===0?i[f]=isNaN(y)?1:y:i[f]=i[f-m]*(isNaN(y)?1:y)}return S.fromData(i,[...e],"float64")}function Jr(r,t,e=!1){let n=r.shape,o=n.length,a=r.data;if(t===void 0){let f=[];for(let d=0;d<r.size;d++){let g=Number(a[d]);isNaN(g)||f.push(g)}if(f.length===0)return NaN;f.sort((d,g)=>d-g);let y=f.length,p=Math.floor(y/2);return y%2===0?(f[p-1]+f[p])/2:f[p]}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let u=Array.from(n).filter((f,y)=>y!==i);if(u.length===0)return Jr(r);let s=u.reduce((f,y)=>f*y,1),c=n[i],l=new Float64Array(s);for(let f=0;f<s;f++){let y=[];for(let g=0;g<c;g++){let h=O(f,i,g,n),A=M(h,n),b=Number(a[A]);isNaN(b)||y.push(b)}if(y.length===0){l[f]=NaN;continue}y.sort((g,h)=>g-h);let p=y.length,d=Math.floor(p/2);p%2===0?l[f]=(y[d-1]+y[d])/2:l[f]=y[d]}let m=S.fromData(l,u,"float64");if(e){let f=[...n];return f[i]=1,S.fromData(l,f,"float64")}return m}function P(r,t){let e=r.size,n=r.dtype,o=t.indexOf(-1),a;if(o!==-1){let c=t.reduce((m,f,y)=>y===o?m:m*f,1),l=e/c;if(!Number.isInteger(l))throw new Error(`cannot reshape array of size ${e} into shape ${JSON.stringify(t)}`);a=t.map((m,f)=>f===o?l:m)}else a=t;if(a.reduce((c,l)=>c*l,1)!==e)throw new Error(`cannot reshape array of size ${e} into shape ${JSON.stringify(a)}`);if(r.isCContiguous){let c=r.data;return S.fromData(c,a,n,G(a),0)}let s=r.copy().data;return S.fromData(s,a,n,G(a),0)}function Xr(r){let t=r.size,e=r.dtype,n=T(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 S.fromData(u,[t],e,[1],0)}let o=new n(t),a=w(e);for(let i=0;i<t;i++){let u=r.iget(i);o[i]=u}return S.fromData(o,[t],e,[1],0)}function pr(r){let t=r.size,e=r.dtype;if(r.isCContiguous){let n=r.data;return S.fromData(n,[t],e,[1],0)}return Xr(r)}function xr(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,i=r.dtype,u;if(t===void 0)u=Array.from({length:n},(m,f)=>n-1-f);else{if(t.length!==n)throw new Error(`axes must have length ${n}, got ${t.length}`);let m=new Set;for(let f of t){let y=f<0?n+f:f;if(y<0||y>=n)throw new Error(`axis ${f} is out of bounds for array of dimension ${n}`);if(m.has(y))throw new Error("repeated axis in transpose");m.add(y)}u=t.map(f=>f<0?n+f:f)}let s=u.map(m=>e[m]),c=Array.from(o),l=u.map(m=>c[m]);return S.fromData(a,s,i,l,r.offset)}function Bn(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,i=r.dtype;if(t===void 0){let u=[],s=[];for(let c=0;c<n;c++)e[c]!==1&&(u.push(e[c]),s.push(o[c]));return u.length===0&&(u.push(1),s.push(1)),S.fromData(a,u,i,s,r.offset)}else{let u=t<0?n+t:t;if(u<0||u>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);if(e[u]!==1)throw new Error(`cannot select an axis which has size not equal to one (axis ${t} has size ${e[u]})`);let s=[],c=[];for(let l=0;l<n;l++)l!==u&&(s.push(e[l]),c.push(o[l]));return S.fromData(a,s,i,c,r.offset)}}function Dr(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,i=r.dtype,u=t;if(u<0&&(u=n+t+1),u<0||u>n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n+1}`);let s=[...Array.from(e)];s.splice(u,0,1);let c=[...Array.from(o)],l=u<n?o[u]*(e[u]||1):1;return c.splice(u,0,l),S.fromData(a,s,i,c,r.offset)}function vn(r,t,e){let n=r.shape,o=n.length,a=r.strides,i=r.data,u=r.dtype,s=t<0?o+t:t,c=e<0?o+e:e;if(s<0||s>=o)throw new Error(`axis1 ${t} is out of bounds for array of dimension ${o}`);if(c<0||c>=o)throw new Error(`axis2 ${e} is out of bounds for array of dimension ${o}`);if(s===c)return S.fromData(i,Array.from(n),u,Array.from(a),r.offset);let l=Array.from(n),m=Array.from(a);return[l[s],l[c]]=[l[c],l[s]],[m[s],m[c]]=[m[c],m[s]],S.fromData(i,l,u,m,r.offset)}function Ut(r,t,e){let n=r.ndim,o=Array.isArray(t)?t:[t],a=Array.isArray(e)?e:[e];if(o.length!==a.length)throw new Error("source and destination must have the same number of elements");let i=o.map(c=>{let l=c<0?n+c:c;if(l<0||l>=n)throw new Error(`source axis ${c} is out of bounds for array of dimension ${n}`);return l}),u=a.map(c=>{let l=c<0?n+c:c;if(l<0||l>=n)throw new Error(`destination axis ${c} is out of bounds for array of dimension ${n}`);return l});if(new Set(i).size!==i.length)throw new Error("repeated axis in source");if(new Set(u).size!==u.length)throw new Error("repeated axis in destination");let s=[];for(let c=0;c<n;c++)i.includes(c)||s.push(c);for(let c=0;c<i.length;c++){let l=u[c];s.splice(l,0,i[c])}return xr(r,s)}function ur(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 y=1;y<r.length;y++){let p=r[y];if(p.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&&p.shape[d]!==e.shape[d])throw new Error("all the input array dimensions except for the concatenation axis must match exactly")}let i=Array.from(e.shape),u=e.shape[a];for(let y=1;y<r.length;y++)u+=r[y].shape[a];i[a]=u;let s=i.reduce((y,p)=>y*p,1),c=T(o);if(!c)throw new Error(`Cannot concatenate arrays with dtype ${o}`);let l=new c(s),m=G(i),f=0;for(let y of r){let p=y.shape[a];Of(y,l,i,m,a,f,o),f+=p}return S.fromData(l,i,o)}function Of(r,t,e,n,o,a,i){let u=r.shape,s=u.length,c=r.size,l=i==="int64"||i==="uint64";if(o===0&&r.isCContiguous&&s>0){let y=a*n[0],p=r.data,d=r.offset,g=d+c;t.set(p.subarray(d,g),y);return}if(o===1&&s===2&&r.isCContiguous){let y=u[0],p=u[1],d=e[1],g=r.data,h=r.offset;for(let A=0;A<y;A++){let b=h+A*p,N=A*d+a;t.set(g.subarray(b,b+p),N)}return}let m=new Array(s).fill(0),f=a*n[o];for(let y=0;y<c;y++){let p=r.iget(y),d=f;for(let g=0;g<s;g++)d+=m[g]*n[g];t[d]=p;for(let g=s-1;g>=0&&(m[g]++,!(m[g]<u[g]));g--)m[g]=0}}function En(r,t=0){if(r.length===0)throw new Error("need at least one array to stack");let e=r[0],n=e.shape,o=e.ndim,a=t<0?o+1+t:t;if(a<0||a>o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o+1}`);for(let u=1;u<r.length;u++){let s=r[u];if(s.ndim!==o)throw new Error("all input arrays must have the same shape");for(let c=0;c<o;c++)if(s.shape[c]!==n[c])throw new Error("all input arrays must have the same shape")}let i=r.map(u=>Dr(u,a));return ur(i,a)}function Mn(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?P(e,[1,e.shape[0]]):e);return ur(t,0)}function $t(r){if(r.length===0)throw new Error("need at least one array to stack");return r.every(e=>e.ndim===1)?ur(r,0):ur(r,1)}function On(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?P(Dr(P(e,[1,e.shape[0]]),2),[1,e.shape[0],1]):e.ndim===2?Dr(e,2):e);return ur(t,2)}function Tn(r,t,e=0){let n=r.shape,o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=n[a],u;if(typeof t=="number"){if(i%t!==0)throw new Error("array split does not result in an equal division");let s=i/t;u=[];for(let c=1;c<t;c++)u.push(c*s)}else u=t;return Un(r,u,a)}function wr(r,t,e=0){let n=r.shape,o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=n[a],u;if(typeof t=="number"){let s=t,c=Math.floor(i/s),l=i%s;u=[];let m=0;for(let f=0;f<s-1;f++)m+=c+(f<l?1:0),u.push(m)}else u=t;return Un(r,u,a)}function Un(r,t,e){let n=r.shape,o=n[e],a=[0,...t,o],i=[];for(let u=0;u<a.length-1;u++){let s=a[u],c=a[u+1];if(s>c)throw new Error("split indices must be in ascending order");let l=Array.from(n);l[e]=c-s;let m=r.offset+s*r.strides[e];i.push(S.fromData(r.data,l,r.dtype,Array.from(r.strides),m))}return i}function $n(r,t){if(r.ndim<2)throw new Error("vsplit only works on arrays of 2 or more dimensions");return wr(r,t,0)}function kn(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 wr(r,t,e)}function Cn(r,t){let e=r.shape,n=e.length,o=r.dtype,a=Array.isArray(t)?t:[t],i=Math.max(n,a.length),u=new Array(i).fill(1),s=new Array(i).fill(1);for(let A=0;A<n;A++)u[i-n+A]=e[A];for(let A=0;A<a.length;A++)s[i-a.length+A]=a[A];let c=u.map((A,b)=>A*s[b]),l=c.reduce((A,b)=>A*b,1),m=T(o);if(!m)throw new Error(`Cannot tile array with dtype ${o}`);let f=new m(l),y=G(c),p=r;n<i&&(p=P(r,u));let d=o==="int64"||o==="uint64",g=p.strides,h=new Array(i).fill(0);for(let A=0;A<l;A++){let b=p.offset;for(let x=0;x<i;x++){let I=h[x]%u[x];b+=I*g[x]}let N=p.data[b],D=0;for(let x=0;x<i;x++)D+=h[x]*y[x];f[D]=N;for(let x=i-1;x>=0&&(h[x]++,!(h[x]<c[x]));x--)h[x]=0}return S.fromData(f,c,o)}function Fn(r,t,e){let n=r.shape,o=n.length,a=r.dtype,i=r.size;if(e===void 0){let A=i,b=Array.isArray(t)?t:new Array(A).fill(t);if(b.length!==A)throw new Error(`operands could not be broadcast together with shape (${A},) (${b.length},)`);let N=b.reduce((_,B)=>_+B,0),D=T(a);if(!D)throw new Error(`Cannot repeat array with dtype ${a}`);let x=new D(N),I=0;for(let _=0;_<A;_++){let B=r.iget(_),v=b[_];for(let E=0;E<v;E++)x[I++]=B}return S.fromData(x,[N],a)}let u=e<0?o+e:e;if(u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=n[u],c=Array.isArray(t)?t:new Array(s).fill(t);if(c.length!==s)throw new Error(`operands could not be broadcast together with shape (${s},) (${c.length},)`);let l=Array.from(n);l[u]=c.reduce((A,b)=>A+b,0);let m=l.reduce((A,b)=>A*b,1),f=T(a);if(!f)throw new Error(`Cannot repeat array with dtype ${a}`);let y=new f(m),p=G(l),d=new Array(o).fill(0),g=a==="int64"||a==="uint64",h=[0];for(let A=0;A<s;A++)h.push(h[A]+c[A]);for(let A=0;A<i;A++){let b=r.iget(A),N=d[u],D=c[N],x=0;for(let B=0;B<o;B++)B!==u&&(x+=d[B]*p[B]);let I=p[u],_=h[N];for(let B=0;B<D;B++){let v=x+(_+B)*I;y[v]=b}for(let B=o-1;B>=0&&(d[B]++,!(d[B]<n[B]));B--)d[B]=0}return S.fromData(y,l,a)}function Vn(r,t){let e=r.shape,n=e.length,o=r.dtype,a=r.size,i;if(t===void 0)i=new Set(Array.from({length:n},(f,y)=>y));else if(typeof t=="number"){let f=t<0?n+t:t;if(f<0||f>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);i=new Set([f])}else i=new Set(t.map(f=>{let y=f<0?n+f:f;if(y<0||y>=n)throw new Error(`axis ${f} is out of bounds for array of dimension ${n}`);return y}));let u=T(o);if(!u)throw new Error(`Cannot flip array with dtype ${o}`);let s=new u(a),c=w(o);if(n===1&&r.isCContiguous){let f=r.data,y=r.offset;for(let p=0;p<a;p++)s[p]=f[y+a-1-p];return S.fromData(s,[...e],o)}if(n===2&&r.isCContiguous){let f=e[0],y=e[1],p=r.data,d=r.offset;if(i.size===2){for(let g=0;g<a;g++)s[g]=p[d+a-1-g];return S.fromData(s,[...e],o)}if(i.size===1){if(i.has(0)){for(let g=0;g<f;g++){let h=d+(f-1-g)*y,A=g*y;for(let b=0;b<y;b++)s[A+b]=p[h+b]}return S.fromData(s,[...e],o)}else if(i.has(1)){for(let g=0;g<f;g++){let h=d+g*y,A=g*y;for(let b=0;b<y;b++)s[A+b]=p[h+y-1-b]}return S.fromData(s,[...e],o)}}}let l=new Array(n),m=new Array(n).fill(0);for(let f=0;f<a;f++){for(let d=0;d<n;d++)l[d]=i.has(d)?e[d]-1-m[d]:m[d];let y=r.offset;for(let d=0;d<n;d++)y+=l[d]*r.strides[d];let p=r.data[y];s[f]=p;for(let d=n-1;d>=0&&(m[d]++,!(m[d]<e[d]));d--)m[d]=0}return S.fromData(s,[...e],o)}function qn(r,t=1,e=[0,1]){let n=r.shape,o=n.length,a=r.dtype;if(o<2)throw new Error("Input must be at least 2-D");let i=e[0]<0?o+e[0]:e[0],u=e[1]<0?o+e[1]:e[1];if(i<0||i>=o||u<0||u>=o)throw new Error(`Axes are out of bounds for array of dimension ${o}`);if(i===u)throw new Error("Axes must be different");if(t=(t%4+4)%4,t===0)return r.copy();let s=T(a);if(!s)throw new Error(`Cannot rotate array with dtype ${a}`);let c=[...n];(t===1||t===3)&&([c[i],c[u]]=[c[u],c[i]]);let l=c.reduce((g,h)=>g*h,1),m=new s(l),f=G(c),y=w(a),p=new Array(o).fill(0),d=new Array(o);for(let g=0;g<r.size;g++){for(let D=0;D<o;D++)d[D]=p[D];let h,A;t===1?(h=n[u]-1-p[u],A=p[i]):t===2?(h=n[i]-1-p[i],A=n[u]-1-p[u],d[i]=h,d[u]=A):(h=p[u],A=n[i]-1-p[i]),t!==2&&(d[i]=h,d[u]=A);let b=0;for(let D=0;D<o;D++)b+=d[D]*f[D];let N=r.iget(g);m[b]=N;for(let D=o-1;D>=0&&(p[D]++,!(p[D]<n[D]));D--)p[D]=0}return S.fromData(m,c,a)}function jn(r,t,e){let n=r.shape,o=n.length,a=r.dtype,i=r.size;if(e===void 0){let p=Array.isArray(t)?t.reduce((b,N)=>b+N,0):t,d=Xr(r),g=T(a);if(!g)throw new Error(`Cannot roll array with dtype ${a}`);let h=new g(i),A=w(a);for(let b=0;b<i;b++){let N=((b-p)%i+i)%i,D=d.iget(N);h[b]=D}return S.fromData(h,[...n],a)}let u=Array.isArray(t)?t:[t],s=Array.isArray(e)?e:[e];if(u.length!==s.length)throw new Error("shift and axis must have the same length");let c=s.map(p=>{let d=p<0?o+p:p;if(d<0||d>=o)throw new Error(`axis ${p} is out of bounds for array of dimension ${o}`);return d}),l=T(a);if(!l)throw new Error(`Cannot roll array with dtype ${a}`);let m=new l(i),f=w(a),y=new Array(o).fill(0);for(let p=0;p<i;p++){let d=[...y];for(let A=0;A<c.length;A++){let b=c[A],N=n[b],D=u[A];d[b]=((d[b]-D)%N+N)%N}let g=r.offset;for(let A=0;A<o;A++)g+=d[A]*r.strides[A];let h=r.data[g];m[p]=h;for(let A=o-1;A>=0&&(y[A]++,!(y[A]<n[A]));A--)y[A]=0}return S.fromData(m,[...n],a)}function Pn(r,t,e=0){let n=r.ndim,o=t<0?n+t:t;if(o<0||o>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let a=e<0?n+e:e;if(a<0||a>n)throw new Error(`start ${e} is out of bounds`);return o<a&&a--,o===a?S.fromData(r.data,Array.from(r.shape),r.dtype,Array.from(r.strides),r.offset):Ut(r,o,a)}function Rn(r,t){if(r.ndim<3)throw new Error("dsplit only works on arrays of 3 or more dimensions");return wr(r,t,2)}function Ln(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?P(e,[e.shape[0],1]):e);return $t(t)}function Gn(r,t){let e=r.dtype,n=t.reduce((s,c)=>s*c,1),o=r.size,a=T(e);if(!a)throw new Error(`Cannot resize array with dtype ${e}`);let i=new a(n),u=w(e);for(let s=0;s<n;s++){let c=s%o,l=r.iget(c);i[s]=l}return S.fromData(i,t,e)}function Wn(r){return r.map(t=>t.ndim===0?P(t,[1]):t)}function Zn(r){return r.map(t=>t.ndim===0?P(t,[1,1]):t.ndim===1?P(t,[1,t.shape[0]]):t)}function Hn(r){return r.map(t=>t.ndim===0?P(t,[1,1,1]):t.ndim===1?P(t,[1,t.shape[0],1]):t.ndim===2?P(t,[t.shape[0],t.shape[1],1]):t)}function Tf(r,t,e,n,o,a,i,u,s,c,l,m,f,y){if(m===0)for(let h=0;h<n*o;h++)f[h]=0;else if(m!==1)for(let h=0;h<n*o;h++)f[h]=(f[h]??0)*m;let p=r==="row-major",d=t==="transpose",g=e==="transpose";if(p&&!d&&!g)for(let h=0;h<n;h++)for(let A=0;A<o;A++){let b=0;for(let N=0;N<a;N++)b+=(u[h*s+N]??0)*(c[N*l+A]??0);f[h*y+A]=(f[h*y+A]??0)+i*b}else if(p&&d&&!g)for(let h=0;h<n;h++)for(let A=0;A<o;A++){let b=0;for(let N=0;N<a;N++)b+=(u[N*s+h]??0)*(c[N*l+A]??0);f[h*y+A]=(f[h*y+A]??0)+i*b}else if(p&&!d&&g)for(let h=0;h<n;h++)for(let A=0;A<o;A++){let b=0;for(let N=0;N<a;N++)b+=(u[h*s+N]??0)*(c[A*l+N]??0);f[h*y+A]=(f[h*y+A]??0)+i*b}else if(p&&d&&g)for(let h=0;h<n;h++)for(let A=0;A<o;A++){let b=0;for(let N=0;N<a;N++)b+=(u[N*s+h]??0)*(c[A*l+N]??0);f[h*y+A]=(f[h*y+A]??0)+i*b}else if(!p&&!d&&!g)for(let h=0;h<n;h++)for(let A=0;A<o;A++){let b=0;for(let N=0;N<a;N++)b+=(u[N*s+h]??0)*(c[A*l+N]??0);f[A*y+h]=(f[A*y+h]??0)+i*b}else if(!p&&d&&!g)for(let h=0;h<n;h++)for(let A=0;A<o;A++){let b=0;for(let N=0;N<a;N++)b+=(u[h*s+N]??0)*(c[A*l+N]??0);f[A*y+h]=(f[A*y+h]??0)+i*b}else if(!p&&!d&&g)for(let h=0;h<n;h++)for(let A=0;A<o;A++){let b=0;for(let N=0;N<a;N++)b+=(u[N*s+h]??0)*(c[N*l+A]??0);f[A*y+h]=(f[A*y+h]??0)+i*b}else for(let h=0;h<n;h++)for(let A=0;A<o;A++){let b=0;for(let N=0;N<a;N++)b+=(u[h*s+N]??0)*(c[N*l+A]??0);f[A*y+h]=(f[A*y+h]??0)+i*b}}function Ct(r,t){let e=r.ndim,n=t.ndim;if(e===0||n===0){let o=e===0?r.get():null,a=n===0?t.get():null;if(e===0&&n===0)return typeof o=="bigint"&&typeof a=="bigint"?o*a:Number(o)*Number(a);if(e===0){let i=k(r.dtype,t.dtype),u=S.zeros([...t.shape],i);for(let s=0;s<t.size;s++){let c=t.data[s+t.offset];typeof o=="bigint"&&typeof c=="bigint"?u.data[s]=o*c:u.data[s]=Number(o)*Number(c)}return u}else{let i=k(r.dtype,t.dtype),u=S.zeros([...r.shape],i);for(let s=0;s<r.size;s++){let c=r.data[s+r.offset];typeof c=="bigint"&&typeof a=="bigint"?u.data[s]=c*a:u.data[s]=Number(c)*Number(a)}return u}}if(e===1&&n===1){if(r.shape[0]!==t.shape[0])throw new Error(`dot: incompatible shapes (${r.shape[0]},) and (${t.shape[0]},)`);let o=r.shape[0],a=0;for(let i=0;i<o;i++){let u=r.get(i),s=t.get(i);typeof u=="bigint"&&typeof s=="bigint"?a=Number(a)+Number(u*s):a+=Number(u)*Number(s)}return a}if(e===2&&n===2)return X(r,t);if(e===2&&n===1){let[o,a]=r.shape,i=t.shape[0];if(a!==i)throw new Error(`dot: incompatible shapes (${o},${a}) and (${i},)`);let u=k(r.dtype,t.dtype),s=S.zeros([o],u);for(let c=0;c<o;c++){let l=0;for(let m=0;m<a;m++){let f=r.get(c,m),y=t.get(m);typeof f=="bigint"&&typeof y=="bigint"?l=Number(l)+Number(f*y):l+=Number(f)*Number(y)}s.set([c],l)}return s}if(e===1&&n===2){let o=r.shape[0],[a,i]=t.shape;if(o!==a)throw new Error(`dot: incompatible shapes (${o},) and (${a},${i})`);let u=k(r.dtype,t.dtype),s=S.zeros([i],u);for(let c=0;c<i;c++){let l=0;for(let m=0;m<o;m++){let f=r.get(m),y=t.get(m,c);typeof f=="bigint"&&typeof y=="bigint"?l=Number(l)+Number(f*y):l+=Number(f)*Number(y)}s.set([c],l)}return s}if(e>2&&n===1){let o=r.shape[e-1],a=t.shape[0];if(o!==a)throw new Error(`dot: incompatible shapes ${JSON.stringify(r.shape)} and (${a},)`);let i=[...r.shape.slice(0,-1)],u=k(r.dtype,t.dtype),s=S.zeros(i,u),c=i.reduce((l,m)=>l*m,1);for(let l=0;l<c;l++){let m=0,f=l,y=[];for(let p=i.length-1;p>=0;p--)y[p]=f%i[p],f=Math.floor(f/i[p]);for(let p=0;p<o;p++){let d=[...y,p],g=r.get(...d),h=t.get(p);typeof g=="bigint"&&typeof h=="bigint"?m=Number(m)+Number(g*h):m+=Number(g)*Number(h)}s.set(y,m)}return s}if(e===1&&n>2){let o=r.shape[0],a=1,i=t.shape[a];if(o!==i)throw new Error(`dot: incompatible shapes (${o},) and ${JSON.stringify(t.shape)}`);let u=[...t.shape.slice(0,a),...t.shape.slice(a+1)],s=k(r.dtype,t.dtype),c=S.zeros(u,s),l=u.reduce((m,f)=>m*f,1);for(let m=0;m<l;m++){let f=m,y=[];for(let h=u.length-1;h>=0;h--)y[h]=f%u[h],f=Math.floor(f/u[h]);let p=y.slice(0,a),d=y.slice(a),g=0;for(let h=0;h<o;h++){let A=r.get(h),b=[...p,h,...d],N=t.get(...b);typeof A=="bigint"&&typeof N=="bigint"?g=Number(g)+Number(A*N):g+=Number(A)*Number(N)}c.set(y,g)}return c}if(e>=2&&n>=2&&!(e===2&&n===2)){let o=r.shape[e-1],a=t.shape[n-2];if(o!==a)throw new Error(`dot: incompatible shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(t.shape)}`);let i=[...r.shape.slice(0,-1),...t.shape.slice(0,-2),t.shape[n-1]],u=k(r.dtype,t.dtype),s=S.zeros(i,u),c=r.shape.slice(0,-1).reduce((y,p)=>y*p,1),l=t.shape.slice(0,-2).reduce((y,p)=>y*p,1),m=t.shape[n-1],f=o;for(let y=0;y<c;y++)for(let p=0;p<l;p++)for(let d=0;d<m;d++){let g=0;for(let A=0;A<f;A++){let b=y*f+A,N=r.data[b+r.offset],D=p*f*m+A*m+d,x=t.data[D+t.offset];typeof N=="bigint"&&typeof x=="bigint"?g=Number(g)+Number(N*x):g+=Number(N)*Number(x)}let h=y*l*m+p*m+d;s.data[h]=g}return s}throw new Error(`dot: unexpected combination of dimensions ${e}D \xB7 ${n}D`)}function X(r,t){if(r.ndim!==2||t.ndim!==2)throw new Error("matmul requires 2D arrays");let[e=0,n=0]=r.shape,[o=0,a=0]=t.shape;if(n!==o)throw new Error(`matmul shape mismatch: (${e},${n}) @ (${o},${a})`);let i=k(r.dtype,t.dtype),u=i.startsWith("int")||i.startsWith("uint")||i==="bool"?"float64":i;if(u!=="float64")throw new Error(`matmul currently only supports float64, got ${u}`);let s=r.dtype==="float64"?r.data:Float64Array.from(Array.from(r.data).map(Number)),c=t.dtype==="float64"?t.data:Float64Array.from(Array.from(t.data).map(Number));r.offset>0&&(s=s.subarray(r.offset)),t.offset>0&&(c=c.subarray(t.offset));let[l=0,m=0]=r.strides,[f=0,y=0]=t.strides,p=m>l,d=y>f,g=p?"transpose":"no-transpose",h=d?"transpose":"no-transpose",A,b;p?A=m:A=l,d?b=y:b=f;let N=S.zeros([e,a],"float64");return Tf("row-major",g,h,e,a,n,1,s,A,c,b,0,N.data,a),N}function Qn(r){if(r.ndim!==2)throw new Error(`trace requires 2D array, got ${r.ndim}D`);let[t=0,e=0]=r.shape,n=Math.min(t,e),o=0;for(let a=0;a<n;a++){let i=r.get(a,a);typeof i=="bigint"?o=(typeof o=="bigint"?o:BigInt(o))+i:o=(typeof o=="bigint"?Number(o):o)+i}return o}function Jn(r,t){return xr(r,t)}function Kn(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 Ct(r,t);let i=[...r.shape.slice(0,-1),...t.shape.slice(0,-1)],u=k(r.dtype,t.dtype),s=S.zeros(i,u),c=e===1?1:r.shape.slice(0,-1).reduce((f,y)=>f*y,1),l=n===1?1:t.shape.slice(0,-1).reduce((f,y)=>f*y,1),m=o;for(let f=0;f<c;f++)for(let y=0;y<l;y++){let p=0;for(let g=0;g<m;g++){let h=e===1?g:f*m+g,A=n===1?g:y*m+g,b=r.data[h+r.offset],N=t.data[A+t.offset];typeof b=="bigint"&&typeof N=="bigint"?p=Number(p)+Number(b*N):p+=Number(b)*Number(N)}if(i.length===0)return p;let d=c===1?y:f*l+y;s.data[d]=p}return s}function Ft(r,t){let e=r.ndim===1?r:pr(r),n=t.ndim===1?t:pr(t),o=e.size,a=n.size,i=k(r.dtype,t.dtype),u=S.zeros([o,a],i);for(let s=0;s<o;s++)for(let c=0;c<a;c++){let l=e.get(s),m=n.get(c),f;typeof l=="bigint"&&typeof m=="bigint"?f=l*m:f=Number(l)*Number(m),u.set([s,c],f)}return u}function ro(r,t,e){let n,o;if(typeof e=="number"){let f=e;if(f<0)throw new Error("tensordot: axes must be non-negative");if(f>r.ndim||f>t.ndim)throw new Error("tensordot: axes exceeds array dimensions");n=Array.from({length:f},(y,p)=>r.ndim-f+p),o=Array.from({length:f},(y,p)=>p)}else if([n,o]=e,n.length!==o.length)throw new Error("tensordot: axes lists must have same length");for(let f=0;f<n.length;f++){let y=n[f],p=o[f];if(y<0||y>=r.ndim||p<0||p>=t.ndim)throw new Error("tensordot: axis out of bounds");if(r.shape[y]!==t.shape[p])throw new Error(`tensordot: shape mismatch on axes ${y} and ${p}: ${r.shape[y]} != ${t.shape[p]}`)}let a=[],i=[];for(let f=0;f<r.ndim;f++)n.includes(f)||a.push(f);for(let f=0;f<t.ndim;f++)o.includes(f)||i.push(f);let u=[...a.map(f=>r.shape[f]),...i.map(f=>t.shape[f])];if(u.length===0){let f=0,y=n.map(p=>r.shape[p]).reduce((p,d)=>p*d,1);for(let p=0;p<y;p++){let d=p,g=new Array(n.length);for(let D=n.length-1;D>=0;D--){let x=n[D];g[D]=d%r.shape[x],d=Math.floor(d/r.shape[x])}let h=new Array(r.ndim),A=new Array(t.ndim);for(let D=0;D<n.length;D++)h[n[D]]=g[D];for(let D=0;D<o.length;D++)A[o[D]]=g[D];let b=r.get(...h),N=t.get(...A);typeof b=="bigint"&&typeof N=="bigint"?f=Number(f)+Number(b*N):f+=Number(b)*Number(N)}return f}let s=k(r.dtype,t.dtype),c=S.zeros(u,s),l=u.reduce((f,y)=>f*y,1),m=n.map(f=>r.shape[f]).reduce((f,y)=>f*y,1);for(let f=0;f<l;f++){let y=f,p=[];for(let A=u.length-1;A>=0;A--)p[A]=y%u[A],y=Math.floor(y/u[A]);let d=p.slice(0,a.length),g=p.slice(a.length),h=0;for(let A=0;A<m;A++){y=A;let b=[];for(let _=n.length-1;_>=0;_--){let B=n[_];b[_]=y%r.shape[B],y=Math.floor(y/r.shape[B])}let N=new Array(r.ndim),D=new Array(t.ndim);for(let _=0;_<a.length;_++)N[a[_]]=d[_];for(let _=0;_<i.length;_++)D[i[_]]=g[_];for(let _=0;_<n.length;_++)N[n[_]]=b[_],D[o[_]]=b[_];let x=r.get(...N),I=t.get(...D);typeof x=="bigint"&&typeof I=="bigint"?h=Number(h)+Number(x*I):h+=Number(x)*Number(I)}c.set(p,h)}return c}function to(r,t=0,e=0,n=1){let o=r.shape,a=o.length;if(a<2)throw new Error("diagonal requires an array of at least two dimensions");let i=e<0?a+e:e,u=n<0?a+n:n;if(i<0||i>=a||u<0||u>=a)throw new Error("axis out of bounds");if(i===u)throw new Error("axis1 and axis2 cannot be the same");let s=o[i],c=o[u],l;t>=0?l=Math.max(0,Math.min(s,c-t)):l=Math.max(0,Math.min(s+t,c));let m=[];for(let d=0;d<a;d++)d!==i&&d!==u&&m.push(o[d]);m.push(l);let f=S.zeros(m,r.dtype),y=o.filter((d,g)=>g!==i&&g!==u),p=y.reduce((d,g)=>d*g,1);for(let d=0;d<p;d++){let g=d,h=[];for(let A=y.length-1;A>=0;A--)h.unshift(g%y[A]),g=Math.floor(g/y[A]);for(let A=0;A<l;A++){let b=new Array(a),N=0;for(let I=0;I<a;I++)I===i?b[I]=t>=0?A:A-t:I===u?b[I]=t>=0?A+t:A:b[I]=h[N++];let D=[...h,A],x=r.get(...b);f.set(D,x)}}return f}function eo(r,...t){let e=r.indexOf("->"),n,o;e===-1?(n=r,o=Uf(n)):(n=r.slice(0,e),o=r.slice(e+2));let a=n.split(",").map(d=>d.trim());if(a.length!==t.length)throw new Error(`einsum: expected ${a.length} operands, got ${t.length}`);let i=new Map;for(let d=0;d<t.length;d++){let g=a[d],h=t[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],N=h.shape[A];if(i.has(b)){if(i.get(b)!==N)throw new Error(`einsum: size mismatch for index '${b}': ${i.get(b)} vs ${N}`)}else i.set(b,N)}}for(let d of o)if(!i.has(d))throw new Error(`einsum: output subscript contains unknown index '${d}'`);let u=new Set(o),s=new Set;for(let d of a)for(let g of d)s.add(g);let c=[];for(let d of s)u.has(d)||c.push(d);if(t.length===2&&a.length===2){let[d,g]=a,[h,A]=t;if(d.length===2&&g.length===2&&o.length===2&&h.ndim===2&&A.ndim===2){let[b,N]=[d[0],d[1]],[D,x]=[g[0],g[1]],[I,_]=[o[0],o[1]];if(b===I&&x===_&&N===D&&c.length===1&&c[0]===N||b===I&&x===_&&N===D&&c.length===1&&c[0]===N)return X(h,A);if(N===I&&x===_&&b===D&&c.length===1&&c[0]===b){let B=Jn(h);return X(B,A)}if(b===I&&D===_&&N===x&&c.length===1&&c[0]===N){let B=Jn(A);return X(h,B)}}if(d.length===1&&g.length===1&&d===g&&o.length===0&&h.ndim===1&&A.ndim===1)return kt(t,a,c,i);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(t.length===1&&a[0].length===2&&o.length===0){let d=a[0];if(d[0]===d[1]&&t[0].ndim===2)return kt(t,a,c,i)}let l=Array.from(o).map(d=>i.get(d));if(l.length===0)return kt(t,a,c,i);let m=t[0].dtype;for(let d=1;d<t.length;d++)m=k(m,t[d].dtype);let f=S.zeros(l,m),y=l.reduce((d,g)=>d*g,1),p=1;for(let d of c)p*=i.get(d);for(let d=0;d<y;d++){let g=$f(d,l),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<p;b++){let N=b;for(let x=c.length-1;x>=0;x--){let I=c[x],_=i.get(I);h.set(I,N%_),N=Math.floor(N/_)}let D=1;for(let x=0;x<t.length;x++){let I=t[x],_=a[x],B=[];for(let E of _)B.push(h.get(E));let v=I.get(...B);D*=Number(v)}A+=D}f.set(g,A)}return f}function Uf(r){let t=new Map,e=r.split(",");for(let o of e)for(let a of o.trim())t.set(a,(t.get(a)||0)+1);let n=[];for(let[o,a]of t)a===1&&n.push(o);return n.sort().join("")}function kt(r,t,e,n){let o=1;for(let i of e)o*=n.get(i);let a=0;for(let i=0;i<o;i++){let u=new Map,s=i;for(let l=e.length-1;l>=0;l--){let m=e[l],f=n.get(m);u.set(m,s%f),s=Math.floor(s/f)}let c=1;for(let l=0;l<r.length;l++){let m=r[l],f=t[l],y=[];for(let d of f)y.push(u.get(d));let p=m.get(...y);c*=Number(p)}a+=c}return a}function $f(r,t){let e=new Array(t.length),n=r;for(let o=t.length-1;o>=0;o--)e[o]=n%t[o],n=Math.floor(n/t[o]);return e}function no(r,t){let e=r.shape,n=t.shape,o=e.length,a=n.length,i=k(r.dtype,t.dtype),u=Math.max(o,a),s=new Array(u),c=new Array(u).fill(1),l=new Array(u).fill(1);for(let p=0;p<o;p++)c[u-o+p]=e[p];for(let p=0;p<a;p++)l[u-a+p]=n[p];for(let p=0;p<u;p++)s[p]=c[p]*l[p];let m=S.zeros(s,i),f=e.reduce((p,d)=>p*d,1),y=n.reduce((p,d)=>p*d,1);for(let p=0;p<f;p++){let d=p,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(u).fill(0);for(let b=0;b<o;b++)h[u-o+b]=g[b];let A=r.get(...g);for(let b=0;b<y;b++){let N=b,D=new Array(a);for(let v=a-1;v>=0;v--)D[v]=N%n[v],N=Math.floor(N/n[v]);let x=new Array(u).fill(0);for(let v=0;v<a;v++)x[u-a+v]=D[v];let I=t.get(...D),_=new Array(u);for(let v=0;v<u;v++)_[v]=h[v]*l[v]+x[v];let B=typeof A=="bigint"||typeof I=="bigint"?BigInt(Number(A))*BigInt(Number(I)):Number(A)*Number(I);m.set(_,B)}}return m}function oo(r,t,e=-1,n=-1,o=-1,a){a!==void 0&&(e=a,n=a,o=a);let i=(b,N)=>b<0?N+b:b,u=i(e,r.ndim),s=i(n,t.ndim);if(r.ndim===1&&t.ndim===1){let b=r.shape[0],N=t.shape[0];if(b===3&&N===3){let D=Number(r.get(0)),x=Number(r.get(1)),I=Number(r.get(2)),_=Number(t.get(0)),B=Number(t.get(1)),v=Number(t.get(2)),E=S.zeros([3],"float64");return E.set([0],x*v-I*B),E.set([1],I*_-D*v),E.set([2],D*B-x*_),E}else if(b===2&&N===2){let D=Number(r.get(0)),x=Number(r.get(1)),I=Number(t.get(0)),_=Number(t.get(1));return D*_-x*I}else if(b===2&&N===3||b===3&&N===2){let D=Number(r.get(0)),x=Number(r.get(1)),I=b===3?Number(r.get(2)):0,_=Number(t.get(0)),B=Number(t.get(1)),v=N===3?Number(t.get(2)):0,E=S.zeros([3],"float64");return E.set([0],x*v-I*B),E.set([1],I*_-D*v),E.set([2],D*B-x*_),E}else throw new Error(`cross: incompatible dimensions for cross product: ${b} and ${N}`)}let c=r.shape[u],l=t.shape[s];if(c!==2&&c!==3||l!==2&&l!==3)throw new Error(`cross: incompatible dimensions for cross product: ${c} and ${l}`);let m=c===2&&l===2?0:3,f=[...r.shape.slice(0,u),...r.shape.slice(u+1)],y=[...t.shape.slice(0,s),...t.shape.slice(s+1)];if(f.length!==y.length)throw new Error("cross: incompatible shapes for cross product");for(let b=0;b<f.length;b++)if(f[b]!==y[b])throw new Error("cross: incompatible shapes for cross product");let p=f,d=o<0?p.length+1+o:o,g;if(m===0?g=p:g=[...p.slice(0,d),m,...p.slice(d)],g.length===0)throw new Error("cross: unexpected scalar result from higher-dimensional input");let h=S.zeros(g,"float64"),A=p.reduce((b,N)=>b*N,1);for(let b=0;b<A;b++){let N=b,D=[];for(let L=p.length-1;L>=0;L--)D[L]=N%p[L],N=Math.floor(N/p[L]);let x=[...D.slice(0,u),0,...D.slice(u)],I=[...D.slice(0,s),0,...D.slice(s)],_=L=>(x[u]=L,Number(r.get(...x))),B=L=>(I[s]=L,Number(t.get(...I))),v=_(0),E=_(1),U=c===3?_(2):0,$=B(0),q=B(1),H=l===3?B(2):0;if(m===0)h.set(D,v*q-E*$);else{let L=E*H-U*q,hr=U*$-v*H,rf=v*q-E*$,pt=(tf,ef)=>{let nf=[...D.slice(0,d),tf,...D.slice(d)];h.set(nf,ef)};pt(0,L),pt(1,hr),pt(2,rf)}}return h}function dr(r,t=2,e,n=!1){if(typeof t!="number")throw new Error("vector_norm: ord must be a number");if(e==null){let c=r.ndim===1?r:pr(r),l=c.size,m;if(t===1/0){m=0;for(let f=0;f<l;f++)m=Math.max(m,Math.abs(Number(c.get(f))))}else if(t===-1/0){m=1/0;for(let f=0;f<l;f++)m=Math.min(m,Math.abs(Number(c.get(f))))}else if(t===0){m=0;for(let f=0;f<l;f++)Number(c.get(f))!==0&&m++}else if(t===1){m=0;for(let f=0;f<l;f++)m+=Math.abs(Number(c.get(f)))}else if(t===2){m=0;for(let f=0;f<l;f++){let y=Number(c.get(f));m+=y*y}m=Math.sqrt(m)}else{m=0;for(let f=0;f<l;f++)m+=Math.pow(Math.abs(Number(c.get(f))),t);m=Math.pow(m,1/t)}if(n){let f=new Array(r.ndim).fill(1),y=S.zeros(f,"float64");return y.set(new Array(r.ndim).fill(0),m),y}return m}let o=e<0?r.ndim+e:e;if(o<0||o>=r.ndim)throw new Error(`vector_norm: axis ${e} out of bounds for array with ${r.ndim} dimensions`);let a=n?[...r.shape.slice(0,o),1,...r.shape.slice(o+1)]:[...r.shape.slice(0,o),...r.shape.slice(o+1)];if(a.length===0)return dr(r,t,null,!1);let i=S.zeros(a,"float64"),u=r.shape[o],s=a.reduce((c,l)=>c*l,1);for(let c=0;c<s;c++){let l=c,m=[];for(let p=a.length-1;p>=0;p--)m[p]=l%a[p],l=Math.floor(l/a[p]);let f=n?[...m.slice(0,o),0,...m.slice(o+1)]:[...m.slice(0,o),0,...m.slice(o)],y;if(t===1/0){y=0;for(let p=0;p<u;p++)f[o]=p,y=Math.max(y,Math.abs(Number(r.get(...f))))}else if(t===-1/0){y=1/0;for(let p=0;p<u;p++)f[o]=p,y=Math.min(y,Math.abs(Number(r.get(...f))))}else if(t===0){y=0;for(let p=0;p<u;p++)f[o]=p,Number(r.get(...f))!==0&&y++}else if(t===1){y=0;for(let p=0;p<u;p++)f[o]=p,y+=Math.abs(Number(r.get(...f)))}else if(t===2){y=0;for(let p=0;p<u;p++){f[o]=p;let d=Number(r.get(...f));y+=d*d}y=Math.sqrt(y)}else{y=0;for(let p=0;p<u;p++)f[o]=p,y+=Math.pow(Math.abs(Number(r.get(...f))),t);y=Math.pow(y,1/t)}i.set(m,y)}return i}function cr(r,t="fro",e=!1){if(r.ndim!==2)throw new Error(`matrix_norm: input must be 2D, got ${r.ndim}D`);let[n,o]=r.shape,a;if(t==="fro"){a=0;for(let i=0;i<n;i++)for(let u=0;u<o;u++){let s=Number(r.get(i,u));a+=s*s}a=Math.sqrt(a)}else if(t==="nuc"){let{s:i}=ir(r);a=0;for(let u=0;u<i.size;u++)a+=Number(i.get(u))}else if(t===1){a=0;for(let i=0;i<o;i++){let u=0;for(let s=0;s<n;s++)u+=Math.abs(Number(r.get(s,i)));a=Math.max(a,u)}}else if(t===-1){a=1/0;for(let i=0;i<o;i++){let u=0;for(let s=0;s<n;s++)u+=Math.abs(Number(r.get(s,i)));a=Math.min(a,u)}}else if(t===1/0){a=0;for(let i=0;i<n;i++){let u=0;for(let s=0;s<o;s++)u+=Math.abs(Number(r.get(i,s)));a=Math.max(a,u)}}else if(t===-1/0){a=1/0;for(let i=0;i<n;i++){let u=0;for(let s=0;s<o;s++)u+=Math.abs(Number(r.get(i,s)));a=Math.min(a,u)}}else if(t===2){let{s:i}=ir(r);a=Number(i.get(0))}else if(t===-2){let{s:i}=ir(r);a=Number(i.get(i.size-1))}else throw new Error(`matrix_norm: invalid ord value: ${t}`);if(e){let i=S.zeros([1,1],"float64");return i.set([0,0],a),i}return a}function ao(r,t=null,e=null,n=!1){if(t===null)return e===null?dr(r,2,null,n):typeof e=="number"?dr(r,2,e,n):cr(r,"fro",n);if(Array.isArray(e)){if(e.length!==2)throw new Error("norm: axis must be a 2-tuple for matrix norms");let o=e[0]<0?r.ndim+e[0]:e[0],a=e[1]<0?r.ndim+e[1]:e[1];if(r.ndim!==2||o!==0&&o!==1||a!==0&&a!==1||o===a)throw new Error("norm: complex axis specification not yet supported");return cr(r,t,n)}if(r.ndim===2&&e===null&&(t==="fro"||t==="nuc"))return cr(r,t,n);if(typeof t!="number"&&t!==null)throw new Error(`norm: ord '${t}' not valid for vector norm`);return dr(r,t??2,e,n)}function Vt(r,t="reduced"){if(r.ndim!==2)throw new Error(`qr: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape,o=Math.min(e,n),a=S.zeros([e,n],"float64");for(let y=0;y<e;y++)for(let p=0;p<n;p++)a.set([y,p],Number(r.get(y,p)));let i=[],u=[];for(let y=0;y<o;y++){let p=e-y,d=[];for(let D=y;D<e;D++)d.push(Number(a.get(D,y)));let g=0;for(let D=0;D<p;D++)g+=d[D]*d[D];if(g=Math.sqrt(g),g<1e-15){i.push(d),u.push(0);continue}let h=d[0]>=0?1:-1,A=d[0]+h*g,b=[1];for(let D=1;D<p;D++)b.push(d[D]/A);let N=h*A/g;u.push(N),i.push(b);for(let D=y;D<n;D++){let x=0;for(let I=0;I<p;I++)x+=b[I]*Number(a.get(y+I,D));for(let I=0;I<p;I++)a.set([y+I,D],Number(a.get(y+I,D))-N*b[I]*x)}}if(t==="raw"){let y=S.zeros([e,n],"float64");for(let d=0;d<e;d++)for(let g=0;g<n;g++)y.set([d,g],Number(a.get(d,g)));let p=S.zeros([o],"float64");for(let d=0;d<o;d++)p.set([d],u[d]);return{h:y,tau:p}}if(t==="r"){let y=S.zeros([o,n],"float64");for(let p=0;p<o;p++)for(let d=p;d<n;d++)y.set([p,d],Number(a.get(p,d)));return y}let s=t==="complete"?e:o,c=S.zeros([e,s],"float64");for(let y=0;y<Math.min(e,s);y++)c.set([y,y],1);for(let y=o-1;y>=0;y--){let p=i[y],d=u[y],g=e-y;for(let h=y;h<s;h++){let A=0;for(let b=0;b<g;b++)A+=p[b]*Number(c.get(y+b,h));for(let b=0;b<g;b++)c.set([y+b,h],Number(c.get(y+b,h))-d*p[b]*A)}}let l=S.zeros([e,s],"float64");for(let y=0;y<e;y++)for(let p=0;p<s;p++)l.set([y,p],Number(c.get(y,p)));let m=t==="complete"?e:o,f=S.zeros([m,n],"float64");for(let y=0;y<m;y++)for(let p=0;p<n;p++)p>=y&&f.set([y,p],Number(a.get(y,p)));return{q:l,r:f}}function so(r,t=!1){if(r.ndim!==2)throw new Error(`cholesky: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`cholesky: matrix must be square, got ${e}x${n}`);let o=e,a=S.zeros([o,o],"float64");for(let i=0;i<o;i++)for(let u=0;u<=i;u++){let s=0;if(i===u){for(let l=0;l<u;l++)s+=Number(a.get(u,l))**2;let c=Number(r.get(u,u))-s;if(c<0)throw new Error("cholesky: matrix is not positive definite");a.set([u,u],Math.sqrt(c))}else{for(let l=0;l<u;l++)s+=Number(a.get(i,l))*Number(a.get(u,l));let c=Number(a.get(u,u));if(Math.abs(c)<1e-15)throw new Error("cholesky: matrix is not positive definite");a.set([i,u],(Number(r.get(i,u))-s)/c)}}if(t){let i=S.zeros([o,o],"float64");for(let u=0;u<o;u++)for(let s=u;s<o;s++)i.set([u,s],Number(a.get(s,u)));return i}return a}function ir(r){if(r.ndim!==2)throw new Error(`svd: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape,n=Math.min(t,e),o=S.zeros([e,e],"float64");for(let m=0;m<e;m++)for(let f=0;f<e;f++){let y=0;for(let p=0;p<t;p++)y+=Number(r.get(p,m))*Number(r.get(p,f));o.set([m,f],y)}let{values:a,vectors:i}=qt(o),u=Array.from({length:e},(m,f)=>f);u.sort((m,f)=>a[f]-a[m]);let s=S.zeros([n],"float64");for(let m=0;m<n;m++){let f=a[u[m]];s.set([m],Math.sqrt(Math.max(0,f)))}let c=S.zeros([e,e],"float64");for(let m=0;m<e;m++)for(let f=0;f<e;f++)c.set([m,f],i[f][u[m]]);let l=S.zeros([t,t],"float64");for(let m=0;m<t;m++)for(let f=0;f<n;f++){let y=Number(s.get(f));if(y>1e-10){let p=0;for(let d=0;d<e;d++)p+=Number(r.get(m,d))*Number(c.get(f,d));l.set([m,f],p/y)}}if(t>n)for(let m=n;m<t;m++){let f=new Array(t).fill(0);f[m]=1;for(let p=0;p<m;p++){let d=0;for(let g=0;g<t;g++)d+=f[g]*Number(l.get(g,p));for(let g=0;g<t;g++)f[g]=f[g]-d*Number(l.get(g,p))}let y=0;for(let p=0;p<t;p++)y+=f[p]*f[p];if(y=Math.sqrt(y),y>1e-10)for(let p=0;p<t;p++)l.set([p,m],f[p]/y)}return{u:l,s,vt:c}}function qt(r){let t=r.shape[0],e=100*t*t,n=1e-10,o=[];for(let u=0;u<t;u++){o.push([]);for(let s=0;s<t;s++)o[u].push(Number(r.get(u,s)))}let a=[];for(let u=0;u<t;u++){a.push([]);for(let s=0;s<t;s++)a[u].push(u===s?1:0)}for(let u=0;u<e;u++){let s=0,c=0,l=1;for(let b=0;b<t;b++)for(let N=b+1;N<t;N++)Math.abs(o[b][N])>s&&(s=Math.abs(o[b][N]),c=b,l=N);if(s<n)break;let m=o[c][c],f=o[l][l],y=o[c][l],p;Math.abs(m-f)<1e-15?p=Math.PI/4:p=.5*Math.atan2(2*y,f-m);let d=Math.cos(p),g=Math.sin(p),h=d*d*m+g*g*f-2*g*d*y,A=g*g*m+d*d*f+2*g*d*y;o[c][c]=h,o[l][l]=A,o[c][l]=0,o[l][c]=0;for(let b=0;b<t;b++)if(b!==c&&b!==l){let N=o[b][c],D=o[b][l];o[b][c]=d*N-g*D,o[c][b]=o[b][c],o[b][l]=g*N+d*D,o[l][b]=o[b][l]}for(let b=0;b<t;b++){let N=a[b][c],D=a[b][l];a[b][c]=d*N-g*D,a[b][l]=g*N+d*D}}let i=[];for(let u=0;u<t;u++)i.push(o[u][u]);return{values:i,vectors:a}}function io(r,t=!0,e=!0){let n=ir(r);if(!e)return n.s;if(!t){let[o,a]=r.shape,i=Math.min(o,a),u=S.zeros([o,i],"float64");for(let c=0;c<o;c++)for(let l=0;l<i;l++)u.set([c,l],Number(n.u.get(c,l)));let s=S.zeros([i,a],"float64");for(let c=0;c<i;c++)for(let l=0;l<a;l++)s.set([c,l],Number(n.vt.get(c,l)));return{u,s:n.s,vt:s}}return n}function uo(r){if(r.ndim!==2)throw new Error(`det: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape;if(t!==e)throw new Error(`det: matrix must be square, got ${t}x${e}`);let n=t;if(n===0)return 1;let o=r.data;if(n===1)return Number(o[0]);if(n===2)return Number(o[0])*Number(o[3])-Number(o[1])*Number(o[2]);let{lu:a,sign:i}=jt(r),u=a.data,s=i;for(let c=0;c<n;c++)s*=u[c*n+c];return s}function jt(r){let[t,e]=r.shape,n=t,o=e,a=S.zeros([n,o],"float64"),i=a.data,u=r.data;for(let l=0;l<n*o;l++)i[l]=Number(u[l]);let s=Array.from({length:n},(l,m)=>m),c=1;for(let l=0;l<Math.min(n,o);l++){let m=Math.abs(i[l*o+l]),f=l;for(let p=l+1;p<n;p++){let d=Math.abs(i[p*o+l]);d>m&&(m=d,f=p)}if(f!==l){for(let d=0;d<o;d++){let g=i[l*o+d];i[l*o+d]=i[f*o+d],i[f*o+d]=g}let p=s[l];s[l]=s[f],s[f]=p,c=-c}let y=i[l*o+l];if(Math.abs(y)>1e-15)for(let p=l+1;p<n;p++){let d=i[p*o+l]/y;i[p*o+l]=d;for(let g=l+1;g<o;g++)i[p*o+g]=i[p*o+g]-d*i[l*o+g]}}return{lu:a,piv:s,sign:c}}function Qr(r){if(r.ndim!==2)throw new Error(`inv: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape;if(t!==e)throw new Error(`inv: matrix must be square, got ${t}x${e}`);let n=t,{lu:o,piv:a}=jt(r),i=o.data,u=S.zeros([n,n],"float64"),s=u.data;for(let c=0;c<n;c++){let l=new Float64Array(n);for(let m=0;m<n;m++){let f=a[m]===c?1:0;for(let y=0;y<m;y++)f-=i[m*n+y]*l[y];l[m]=f}for(let m=n-1;m>=0;m--){let f=l[m];for(let p=m+1;p<n;p++)f-=i[m*n+p]*s[p*n+c];let y=i[m*n+m];if(Math.abs(y)<1e-15)throw new Error("inv: singular matrix");s[m*n+c]=f/y}}return u}function Xn(r,t){let[e]=r.shape,n=e,{lu:o,piv:a}=jt(r),i=o.data,u=t.data,s=new Float64Array(n);for(let f=0;f<n;f++)s[f]=Number(u[a[f]]);let c=new Float64Array(n);for(let f=0;f<n;f++){let y=s[f];for(let p=0;p<f;p++)y-=i[f*n+p]*c[p];c[f]=y}let l=S.zeros([n],"float64"),m=l.data;for(let f=n-1;f>=0;f--){let y=c[f];for(let d=f+1;d<n;d++)y-=i[f*n+d]*m[d];let p=i[f*n+f];if(Math.abs(p)<1e-15)throw new Error("solve: singular matrix");m[f]=y/p}return l}function co(r,t){if(r.ndim!==2)throw new Error(`solve: coefficient matrix must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`solve: coefficient matrix must be square, got ${e}x${n}`);let o=e;if(t.ndim===1){if(t.shape[0]!==o)throw new Error(`solve: incompatible shapes (${e},${n}) and (${t.shape[0]},)`);return Xn(r,t)}if(t.ndim===2){if(t.shape[0]!==o)throw new Error(`solve: incompatible shapes (${e},${n}) and (${t.shape[0]},${t.shape[1]})`);let a=t.shape[1],i=S.zeros([o,a],"float64");for(let u=0;u<a;u++){let s=S.zeros([o],"float64");for(let l=0;l<o;l++)s.set([l],Number(t.get(l,u)));let c=Xn(r,s);for(let l=0;l<o;l++)i.set([l,u],Number(c.get(l)))}return i}throw new Error(`solve: b must be 1D or 2D, got ${t.ndim}D`)}function lo(r,t,e=null){if(r.ndim!==2)throw new Error(`lstsq: coefficient matrix must be 2D, got ${r.ndim}D`);let[n,o]=r.shape,{u:a,s:i,vt:u}=ir(r),s=Math.min(n,o),c=e??Math.max(n,o)*Number.EPSILON,m=Number(i.get(0))*c,f=0;for(let A=0;A<s;A++)Number(i.get(A))>m&&f++;let y=t.ndim===1?P(t,[t.size,1]):t,p=y.shape[1];if(y.shape[0]!==n)throw new Error(`lstsq: incompatible shapes (${n},${o}) and (${t.shape.join(",")})`);let d=S.zeros([o,p],"float64");for(let A=0;A<p;A++){let b=new Array(n).fill(0);for(let N=0;N<n;N++)for(let D=0;D<n;D++)b[N]+=Number(a.get(D,N))*Number(y.get(D,A));for(let N=0;N<o;N++){let D=0;for(let x=0;x<s;x++){let I=Number(i.get(x));I>m&&(D+=Number(u.get(x,N))*b[x]/I)}d.set([N,A],D)}}let g;if(n>o){g=S.zeros([p],"float64");for(let A=0;A<p;A++){let b=0;for(let N=0;N<n;N++){let D=0;for(let I=0;I<o;I++)D+=Number(r.get(N,I))*Number(d.get(I,A));let x=D-Number(y.get(N,A));b+=x*x}g.set([A],b)}}else g=S.zeros([0],"float64");return{x:t.ndim===1?P(d,[o]):d,residuals:g,rank:f,s:i}}function fo(r,t=2){if(r.ndim!==2)throw new Error(`cond: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(t===2||t===-2){let{s:u}=ir(r),s=Math.min(e,n),c=Number(u.get(0)),l=Number(u.get(s-1));return t===2?l>0?c/l:1/0:c>0?l/c:0}if(e!==n)throw new Error(`cond: matrix must be square for p=${t}`);let o=cr(r,t),a=Qr(r),i=cr(a,t);return o*i}function mo(r,t){if(r.ndim===0)return Number(r.get())!==0?1:0;if(r.ndim===1){for(let i=0;i<r.size;i++)if(Number(r.get(i))!==0)return 1;return 0}if(r.ndim!==2)throw new Error(`matrix_rank: input must be at most 2D, got ${r.ndim}D`);let{s:e}=ir(r),n=Number(e.get(0)),o=t??n*Math.max(r.shape[0],r.shape[1])*Number.EPSILON,a=0;for(let i=0;i<e.size;i++)Number(e.get(i))>o&&a++;return a}function yo(r,t){if(r.ndim!==2)throw new Error(`matrix_power: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`matrix_power: matrix must be square, got ${e}x${n}`);let o=e;if(!Number.isInteger(t))throw new Error("matrix_power: exponent must be an integer");if(t===0){let c=S.zeros([o,o],"float64");for(let l=0;l<o;l++)c.set([l,l],1);return c}let a=r,i=t;t<0&&(a=Qr(r),i=-t);let u=S.zeros([o,o],"float64");for(let c=0;c<o;c++)u.set([c,c],1);let s=S.zeros([o,o],"float64");for(let c=0;c<o;c++)for(let l=0;l<o;l++)s.set([c,l],Number(a.get(c,l)));for(;i>0;)i&1&&(u=X(u,s)),s=X(s,s),i>>=1;return u}function po(r,t=1e-15){if(r.ndim!==2)throw new Error(`pinv: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape,{u:o,s:a,vt:i}=ir(r),u=Math.min(e,n),c=Number(a.get(0))*t,l=S.zeros([n,e],"float64");for(let m=0;m<n;m++)for(let f=0;f<e;f++){let y=0;for(let p=0;p<u;p++){let d=Number(a.get(p));d>c&&(y+=Number(i.get(p,m))*Number(o.get(f,p))/d)}l.set([m,f],y)}return l}function Pt(r){if(r.ndim!==2)throw new Error(`eig: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape;if(t!==e)throw new Error(`eig: matrix must be square, got ${t}x${e}`);let n=t,o=!0;r:for(let c=0;c<n;c++)for(let l=c+1;l<n;l++)if(Math.abs(Number(r.get(c,l))-Number(r.get(l,c)))>1e-10){o=!1;break r}if(o){let{values:c,vectors:l}=qt(r),m=S.zeros([n],"float64"),f=S.zeros([n,n],"float64");for(let y=0;y<n;y++){m.set([y],c[y]);for(let p=0;p<n;p++)f.set([p,y],l[p][y])}return{w:m,v:f}}console.warn("numpy-ts: eig() called on non-symmetric matrix. Complex eigenvalues are not supported; results may be inaccurate. For symmetric matrices, use eigh() instead.");let{values:a,vectors:i}=kf(r),u=S.zeros([n],"float64"),s=S.zeros([n,n],"float64");for(let c=0;c<n;c++){u.set([c],a[c]);for(let l=0;l<n;l++)s.set([l,c],i[l][c])}return{w:u,v:s}}function kf(r){let t=r.shape[0],e=1e3,n=1e-10,o=S.zeros([t,t],"float64");for(let s=0;s<t;s++)for(let c=0;c<t;c++)o.set([s,c],Number(r.get(s,c)));let a=S.zeros([t,t],"float64");for(let s=0;s<t;s++)a.set([s,s],1);for(let s=0;s<e;s++){let c=0;for(let y=0;y<t;y++)for(let p=0;p<t;p++)y!==p&&(c+=Number(o.get(y,p))**2);if(Math.sqrt(c)<n*t)break;let l=Vt(o,"reduced"),m=l.q,f=l.r;o=X(f,m),a=X(a,m)}let i=[];for(let s=0;s<t;s++)i.push(Number(o.get(s,s)));let u=[];for(let s=0;s<t;s++){u.push([]);for(let c=0;c<t;c++)u[s].push(Number(a.get(s,c)))}return{values:i,vectors:u}}function Rt(r,t="L"){if(r.ndim!==2)throw new Error(`eigh: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`eigh: matrix must be square, got ${e}x${n}`);let o=e,a=S.zeros([o,o],"float64");for(let m=0;m<o;m++)for(let f=0;f<o;f++)t==="L"?m>=f&&(a.set([m,f],Number(r.get(m,f))),a.set([f,m],Number(r.get(m,f)))):f>=m&&(a.set([m,f],Number(r.get(m,f))),a.set([f,m],Number(r.get(m,f))));let{values:i,vectors:u}=qt(a),s=Array.from({length:o},(m,f)=>f);s.sort((m,f)=>i[m]-i[f]);let c=S.zeros([o],"float64"),l=S.zeros([o,o],"float64");for(let m=0;m<o;m++){c.set([m],i[s[m]]);for(let f=0;f<o;f++)l.set([f,m],u[f][s[m]])}return{w:c,v:l}}function go(r){let{w:t}=Pt(r);return t}function bo(r,t="L"){let{w:e}=Rt(r,t);return e}function Ao(r){return F(r,Math.sqrt,!1)}function ho(r,t){return typeof t=="number"?Ff(r,t):V(r,t,Math.pow,"power")}function Ff(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,s=e!=="float32"&&e!=="float64"&&(t<0||!Number.isInteger(t))?"float64":e,c=S.zeros(n,s),l=c.data;if(w(e))if(w(s)&&Number.isInteger(t)&&t>=0){let m=o,f=l;for(let y=0;y<a;y++)f[y]=m[y]**BigInt(t)}else for(let m=0;m<a;m++)l[m]=Math.pow(Number(o[m]),t);else for(let m=0;m<a;m++)l[m]=Math.pow(Number(o[m]),t);return c}function So(r){return F(r,Math.exp,!1)}function No(r){return F(r,t=>Math.pow(2,t),!1)}function Do(r){return F(r,Math.expm1,!1)}function xo(r){return F(r,Math.log,!1)}function wo(r){return F(r,Math.log2,!1)}function Io(r){return F(r,Math.log10,!1)}function zo(r){return F(r,Math.log1p,!1)}function _o(r,t){return typeof t=="number"?qf(r,t):Vf(r,t)}function Vf(r,t){let e=sr(r.shape,t.shape),n=e.reduce((c,l)=>c*l,1),o=r.dtype,a=t.dtype,i=o==="float32"&&a==="float32"?"float32":"float64",u=S.zeros(e,i),s=u.data;for(let c=0;c<n;c++){let l=(w(o),Number(r.iget(c))),m=(w(a),Number(t.iget(c))),f=Math.max(l,m),y=Math.min(l,m);s[c]=f+Math.log1p(Math.exp(y-f))}return u}function qf(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",i=S.zeros(n,a),u=i.data;for(let s=0;s<o;s++){let c=(w(e),Number(r.data[s])),l=Math.max(c,t),m=Math.min(c,t);u[s]=l+Math.log1p(Math.exp(m-l))}return i}function Bo(r,t){return typeof t=="number"?Pf(r,t):jf(r,t)}function jf(r,t){let e=sr(r.shape,t.shape),n=e.reduce((l,m)=>l*m,1),o=r.dtype,a=t.dtype,i=o==="float32"&&a==="float32"?"float32":"float64",u=S.zeros(e,i),s=u.data,c=Math.LOG2E;for(let l=0;l<n;l++){let m=(w(o),Number(r.iget(l))),f=(w(a),Number(t.iget(l))),y=Math.max(m,f),p=Math.min(m,f);s[l]=y+Math.log1p(Math.pow(2,p-y))*c}return u}function Pf(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",i=S.zeros(n,a),u=i.data,s=Math.LOG2E;for(let c=0;c<o;c++){let l=(w(e),Number(r.data[c])),m=Math.max(l,t),f=Math.min(l,t);u[c]=m+Math.log1p(Math.pow(2,f-m))*s}return i}function vo(r){return F(r,Math.sin,!1)}function Eo(r){return F(r,Math.cos,!1)}function Mo(r){return F(r,Math.tan,!1)}function Oo(r){return F(r,Math.asin,!1)}function To(r){return F(r,Math.acos,!1)}function Uo(r){return F(r,Math.atan,!1)}function $o(r,t){return typeof t=="number"?Gf(r,t):Lf(r,t)}function Lf(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,i=o==="float32"&&a==="float32"?"float32":"float64",u=S.zeros(e,i),s=u.data;for(let c=0;c<n;c++){let l=(w(o),Number(r.data[c])),m=(w(a),Number(t.data[c]));s[c]=Math.atan2(l,m)}return u}function Gf(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=e==="float32"?"float32":"float64",u=S.zeros(n,i),s=u.data;if(w(e))for(let c=0;c<a;c++)s[c]=Math.atan2(Number(o[c]),t);else for(let c=0;c<a;c++)s[c]=Math.atan2(Number(o[c]),t);return u}function ko(r,t){return typeof t=="number"?Zf(r,t):Wf(r,t)}function Wf(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,i=o==="float32"&&a==="float32"?"float32":"float64",u=S.zeros(e,i),s=u.data;for(let c=0;c<n;c++){let l=(w(o),Number(r.data[c])),m=(w(a),Number(t.data[c]));s[c]=Math.hypot(l,m)}return u}function Zf(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=e==="float32"?"float32":"float64",u=S.zeros(n,i),s=u.data;if(w(e))for(let c=0;c<a;c++)s[c]=Math.hypot(Number(o[c]),t);else for(let c=0;c<a;c++)s[c]=Math.hypot(Number(o[c]),t);return u}function Co(r){let t=180/Math.PI;return F(r,e=>e*t,!1)}function Fo(r){let t=Math.PI/180;return F(r,e=>e*t,!1)}function Vo(r){return F(r,Math.sinh,!1)}function qo(r){return F(r,Math.cosh,!1)}function jo(r){return F(r,Math.tanh,!1)}function Po(r){return F(r,Math.asinh,!1)}function Ro(r){return F(r,Math.acosh,!1)}function Lo(r){return F(r,Math.atanh,!1)}function Kr(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=tr([Array.from(e),t]);if(a===null)throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${t.join(",")})`);for(let i=0;i<o;i++)if(a[i]!==t[i])throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${t.join(",")})`);return er(r,t)}function Go(r){if(r.length===0)return[];if(r.length===1)return[r[0]];let t=r.map(n=>Array.from(n.shape)),e=tr(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=>er(n,e))}function Wo(r,t,e){let n=r.shape,o=n.length,a=r.dtype;if(e===void 0){let p=r.size;for(let A of t){let b=A<0?p+A:A;if(b<0||b>=p)throw new Error(`index ${A} is out of bounds for axis 0 with size ${p}`)}let d=t.length,g=T(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=t[A];b<0&&(b=p+b);let N=r.iget(b);w(a),h[A]=N}return S.fromData(h,[d],a)}let i=e<0?o+e:e;if(i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=n[i];for(let p of t){let d=p<0?u+p:p;if(d<0||d>=u)throw new Error(`index ${p} is out of bounds for axis ${i} with size ${u}`)}let s=Array.from(n);s[i]=t.length;let c=s.reduce((p,d)=>p*d,1),l=T(a);if(!l)throw new Error(`Cannot take from array with dtype ${a}`);let m=new l(c),f=G(s),y=new Array(o).fill(0);for(let p=0;p<c;p++){let d=[...y],g=y[i],h=t[g];h<0&&(h=u+h),d[i]=h;let A=r.get(...d),b=0;for(let N=0;N<o;N++)b+=y[N]*f[N];w(a),m[b]=A;for(let N=o-1;N>=0&&(y[N]++,!(y[N]<s[N]));N--)y[N]=0}return S.fromData(m,s,a)}function Zo(r,t,e){let n=r.size,o=r.dtype,a;if(typeof e=="number"||typeof e=="bigint")a=new Array(t.length).fill(e);else{a=[];for(let i=0;i<e.size;i++)a.push(e.iget(i));if(a.length===1)a=new Array(t.length).fill(a[0]);else if(a.length!==t.length){let i=[...a];a=[];for(let u=0;u<t.length;u++)a.push(i[u%i.length])}}for(let i=0;i<t.length;i++){let u=t[i];if(u<0&&(u=n+u),u<0||u>=n)throw new Error(`index ${t[i]} is out of bounds for axis 0 with size ${n}`);let s=a[i];w(o)?typeof s!="bigint"&&(s=BigInt(Math.round(Number(s)))):typeof s=="bigint"&&(s=Number(s)),r.iset(u,s)}}function Ho(r,t){if(t.length===0)throw new Error("choices cannot be empty");let e=r.shape,n=t.length,o=t[0].dtype,a=t.map(f=>Array.from(f.shape));a.unshift(Array.from(e));let i=tr(a);if(i===null)throw new Error("operands could not be broadcast together");let u=er(r,i),s=t.map(f=>er(f,i)),c=i.reduce((f,y)=>f*y,1),l=T(o);if(!l)throw new Error(`Cannot choose with dtype ${o}`);let m=new l(c);for(let f=0;f<c;f++){let y=Number(u.iget(f));if(y<0||y>=n)throw new Error(`index ${y} is out of bounds for axis 0 with size ${n}`);let p=s[y].iget(f);w(o),m[f]=p}return S.fromData(m,i,o)}function Yo(r,t,e=!1){if(r.ndim!==t.ndim)return!1;for(let o=0;o<r.ndim;o++)if(r.shape[o]!==t.shape[o])return!1;let n=r.size;for(let o=0;o<n;o++){let a=r.iget(o),i=t.iget(o);if(e){let u=typeof a=="number"&&Number.isNaN(a),s=typeof i=="number"&&Number.isNaN(i);if(u&&s)continue}if(a!==i)return!1}return!0}function Jo(r,t,e){let n=r.shape,o=n.length,a=r.dtype,i=e<0?o+e:e;if(i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=t.shape;if(u.length!==o)throw new Error(`indices and arr must have the same number of dimensions, got ${u.length} vs ${o}`);for(let d=0;d<o;d++)if(d!==i&&u[d]!==n[d]&&u[d]!==1&&n[d]!==1)throw new Error(`index ${u[d]} is out of bounds for size ${n[d]} in dimension ${d}`);let s=Array.from(u),c=s.reduce((d,g)=>d*g,1),l=T(a);if(!l)throw new Error(`Cannot take_along_axis with dtype ${a}`);let m=new l(c),f=G(n),y=G(u),p=n[i];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%s[I],h=Math.floor(h/s[I]);let A=0;for(let I=0;I<o;I++){let _=u[I]===1?0:g[I];A+=_*y[I]}let b=Number(t.iget(A));if(b<0&&(b=p+b),b<0||b>=p)throw new Error(`index ${b} is out of bounds for axis ${i} with size ${p}`);let N=[...g];N[i]=b;let D=0;for(let I=0;I<o;I++){let _=n[I]===1?0:N[I];D+=_*f[I]}let x=r.iget(D);w(a),m[d]=x}return S.fromData(m,s,a)}function Xo(r,t,e,n){let o=r.shape,a=o.length,i=r.dtype,u=n<0?a+n:n;if(u<0||u>=a)throw new Error(`axis ${n} is out of bounds for array of dimension ${a}`);let s=t.shape,c=e.shape;if(s.length!==a||c.length!==a)throw new Error("indices, arr, and values must have same ndim");let l=o[u],m=G(o),f=G(s),y=G(c),p=s.reduce((d,g)=>d*g,1);for(let d=0;d<p;d++){let g=new Array(a),h=d;for(let _=a-1;_>=0;_--)g[_]=h%s[_],h=Math.floor(h/s[_]);let A=0;for(let _=0;_<a;_++)A+=g[_]*f[_];let b=Number(t.iget(A));if(b<0&&(b=l+b),b<0||b>=l)throw new Error(`index ${b} is out of bounds for axis ${u} with size ${l}`);let N=0;for(let _=0;_<a;_++){let B=c[_]===1?0:g[_];N+=B*y[_]}let D=e.iget(N),x=[...g];x[u]=b;let I=0;for(let _=0;_<a;_++)I+=x[_]*m[_];w(i)?typeof D!="bigint"&&(D=BigInt(Math.round(Number(D)))):typeof D=="bigint"&&(D=Number(D)),r.iset(I,D)}}function Qo(r,t,e){let n=r.size,o=r.dtype,a;if(typeof e=="number"||typeof e=="bigint")a=[e];else{a=[];for(let u=0;u<e.size;u++)a.push(e.iget(u))}let i=0;for(let u=0;u<n;u++)if(t.iget(u)){let c=a[i%a.length];w(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),r.iset(u,c),i++}}function Ko(r,t,e){let n=t.shape,o=n.length,a=t.dtype,i=t.data,u=w(a);if(e===void 0){let A=0,b=Math.min(r.size,t.size);for(let I=0;I<b;I++)r.iget(I)&&A++;let N=T(a);if(!N)throw new Error(`Cannot compress with dtype ${a}`);let D=new N(A),x=0;for(let I=0;I<b;I++)r.iget(I)&&(D[x]=i[I],x++);return S.fromData(D,[A],a)}let s=e<0?o+e:e;if(s<0||s>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let c=n[s],l=Math.min(r.size,c),m=[];for(let A=0;A<l;A++)r.iget(A)&&m.push(A);let f=m.length,y=[...n];y[s]=f;let p=y.reduce((A,b)=>A*b,1),d=T(a);if(!d)throw new Error(`Cannot compress with dtype ${a}`);let g=new d(p),h=G(n);if(s===0){let A=h[0],b=n.slice(1).reduce((D,x)=>D*x,1),N=0;for(let D=0;D<f;D++){let I=m[D]*A;if(u){let _=i,B=g;for(let v=0;v<b;v++)B[N++]=_[I+v]}else{let _=i,B=g;for(let v=0;v<b;v++)B[N++]=_[I+v]}}}else{let A=n.slice(0,s).reduce((D,x)=>D*x,1),b=n.slice(s+1).reduce((D,x)=>D*x,1),N=0;for(let D=0;D<A;D++)for(let x=0;x<f;x++){let I=m[x],_=0,B=D;for(let v=s-1;v>=0;v--){let E=B%n[v];B=Math.floor(B/n[v]),_+=E*h[v]}if(_+=I*h[s],u){let v=i,E=g;for(let U=0;U<b;U++)E[N++]=v[_+U]}else{let v=i,E=g;for(let U=0;U<b;U++)E[N++]=v[_+U]}}}return S.fromData(g,y,a)}function ra(r,t,e=0){if(r.length!==t.length)throw new Error("condlist and choicelist must have same length");if(r.length===0)throw new Error("condlist and choicelist cannot be empty");let n=[...r.map(f=>Array.from(f.shape)),...t.map(f=>Array.from(f.shape))],o=tr(n);if(o===null)throw new Error("condlist and choicelist arrays could not be broadcast together");let a=t[0].dtype,i=o.reduce((f,y)=>f*y,1),u=T(a);if(!u)throw new Error(`Cannot select with dtype ${a}`);let s=e;w(a)?s=typeof e=="bigint"?e:BigInt(e):s=typeof e=="bigint"?Number(e):e;let c=new u(i);for(let f=0;f<i;f++)w(a),c[f]=s;let l=r.map(f=>er(f,o)),m=t.map(f=>er(f,o));for(let f=0;f<i;f++)for(let y=0;y<r.length;y++)if(l[y].iget(f)){let p=m[y].iget(f);w(a),c[f]=p;break}return S.fromData(c,o,a)}function ta(r,t,e){let n=r.size,o=r.dtype,a=[];for(let u=0;u<e.size;u++)a.push(e.iget(u));if(a.length===0)return;let i=0;for(let u=0;u<n;u++)if(t.iget(u)){let c=a[i%a.length];w(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),r.iset(u,c),i++}}function Lt(r,t=2){if(t<1)throw new Error("ndim must be at least 1");let e=new Int32Array(r);for(let o=0;o<r;o++)e[o]=o;let n=[];for(let o=0;o<t;o++)n.push(S.fromData(new Int32Array(e),[r],"int32"));return n}function ea(r){let t=r.shape,e=t.length;if(e<2)throw new Error("array must be at least 2-D");let n=t[0];for(let o=1;o<e;o++)if(t[o]!==n)throw new Error("All dimensions of input must be equal");return Lt(n,e)}function Gt(r,t=0,e){let n=e??r,o=[],a=[];for(let i=0;i<r;i++)for(let u=0;u<=Math.min(i+t,n-1);u++)u>=0&&(o.push(i),a.push(u));return[S.fromData(new Int32Array(o),[o.length],"int32"),S.fromData(new Int32Array(a),[a.length],"int32")]}function na(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return Gt(e[0],t,e[1])}function Wt(r,t=0,e){let n=e??r,o=[],a=[];for(let i=0;i<r;i++)for(let u=Math.max(i+t,0);u<n;u++)o.push(i),a.push(u);return[S.fromData(new Int32Array(o),[o.length],"int32"),S.fromData(new Int32Array(a),[a.length],"int32")]}function oa(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return Wt(e[0],t,e[1])}function aa(r,t,e=0){let n=t(r,e),o=n.shape;if(o.length!==2||o[0]!==r||o[1]!==r)throw new Error("mask_func must return n x n array");let a=[],i=[];for(let u=0;u<r;u++)for(let s=0;s<r;s++)n.get(u,s)&&(a.push(u),i.push(s));return[S.fromData(new Int32Array(a),[a.length],"int32"),S.fromData(new Int32Array(i),[i.length],"int32")]}function sa(r,t="int32"){let e=r.length,n=[e,...r],o=n.reduce((s,c)=>s*c,1),a=T(t);if(!a)throw new Error(`Cannot create indices with dtype ${t}`);let i=new a(o),u=r.reduce((s,c)=>s*c,1);for(let s=0;s<e;s++){let c=s*u;for(let l=0;l<u;l++){let m=new Array(e),f=l;for(let p=e-1;p>=0;p--)m[p]=f%r[p],f=Math.floor(f/r[p]);let y=m[s];t==="int64"?i[c+l]=BigInt(y):i[c+l]=y}}return S.fromData(i,n,t)}function ia(...r){let t=r.length,e=[];for(let n=0;n<t;n++){let o=r[n],a=o.size,i=o.dtype,u=new Array(t).fill(1);u[n]=a;let s=T(i);if(!s)throw new Error(`Cannot create ix_ with dtype ${i}`);let c=new s(a);for(let l=0;l<a;l++){let m=o.iget(l);w(i),c[l]=m}e.push(S.fromData(c,u,i))}return e}function ua(r,t,e="raise"){if(r.length!==t.length)throw new Error("multi_index length must equal dims length");if(r.length===0)throw new Error("multi_index cannot be empty");let n=r[0].size,o=t.length,a=new Int32Array(n),i=new Array(o),u=1;for(let s=o-1;s>=0;s--)i[s]=u,u*=t[s];for(let s=0;s<n;s++){let c=0;for(let l=0;l<o;l++){let m=Number(r[l].iget(s)),f=t[l];if(e==="wrap")m=(m%f+f)%f;else if(e==="clip")m=Math.max(0,Math.min(m,f-1));else if(m<0||m>=f)throw new Error(`index ${m} is out of bounds for axis ${l} with size ${f}`);c+=m*i[l]}a[s]=c}return S.fromData(a,[n],"int32")}function ca(r,t,e="C"){let n=t.length,o,a;if(typeof r=="number")o=[r],a=[];else{o=[];for(let l=0;l<r.size;l++)o.push(Number(r.iget(l)));a=Array.from(r.shape)}let i=o.length,u=t.reduce((l,m)=>l*m,1),s=new Array(n);if(e==="C"){let l=1;for(let m=n-1;m>=0;m--)s[m]=l,l*=t[m]}else{let l=1;for(let m=0;m<n;m++)s[m]=l,l*=t[m]}let c=[];for(let l=0;l<n;l++){let m=new Int32Array(i);c.push(S.fromData(m,a.length?a:[1],"int32"))}for(let l=0;l<i;l++){let m=o[l];if(m<0||m>=u)throw new Error(`index ${m} is out of bounds for array with size ${u}`);if(e==="C")for(let f=0;f<n;f++){let y=Math.floor(m/s[f]);m=m%s[f],c[f].data[l]=y%t[f]}else for(let f=n-1;f>=0;f--){let y=Math.floor(m/s[f]);m=m%s[f],c[f].data[l]=y%t[f]}}return typeof r=="number"?c.map(l=>{let m=l.iget(0);return S.fromData(new Int32Array([Number(m)]),[],"int32")}):c}function la(r,t,e=!1){let n=r.shape,o=n.length;if(o<2)throw new Error("array must be at least 2-d");let a;if(o===2)a=n[1]+1;else{a=1;for(let c=1;c<o;c++){let l=1;for(let m=c;m<o;m++)l*=n[m];a+=l}}let i=r.data,u=r.size,s=Math.min(...n);if(e&&o===2&&(s=Math.max(n[0],n[1])),typeof t=="number")for(let c=0;c<s&&c*a<u;c++){let l=c*a;if(l<u)i[l]=t;else break}else{let c=t.data,l=t.size;for(let m=0;m<s&&m*a<u;m++){let f=m*a;if(f<u)i[f]=c[m%l];else break}}}function Q(r,t){if(!Ye(r)&&r!=="bool")throw new TypeError(`ufunc '${t}' not supported for the input types, and the inputs could not be safely coerced to any supported types`)}function Ir(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function ya(r,t){return Q(r.dtype,"bitwise_and"),typeof t=="number"?Qf(r,t):(Q(t.dtype,"bitwise_and"),Ir(r,t)?Xf(r,t):V(r,t,(e,n)=>e&n,"bitwise_and"))}function Xf(r,t){let e=k(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=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 m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),f=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));s[l]=m&f}else{let l=a,m=i;for(let f=0;f<o;f++)s[f]=l[f]&m[f]}}else for(let s=0;s<o;s++)u[s]=a[s]&i[s];return n}function Qf(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=S.zeros(n,e),u=i.data;if(w(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]&l}else for(let s=0;s<a;s++)u[s]=o[s]&t;return i}function pa(r,t){return Q(r.dtype,"bitwise_or"),typeof t=="number"?rm(r,t):(Q(t.dtype,"bitwise_or"),Ir(r,t)?Kf(r,t):V(r,t,(e,n)=>e|n,"bitwise_or"))}function Kf(r,t){let e=k(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=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 m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),f=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));s[l]=m|f}else{let l=a,m=i;for(let f=0;f<o;f++)s[f]=l[f]|m[f]}}else for(let s=0;s<o;s++)u[s]=a[s]|i[s];return n}function rm(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=S.zeros(n,e),u=i.data;if(w(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]|l}else for(let s=0;s<a;s++)u[s]=o[s]|t;return i}function da(r,t){return Q(r.dtype,"bitwise_xor"),typeof t=="number"?em(r,t):(Q(t.dtype,"bitwise_xor"),Ir(r,t)?tm(r,t):V(r,t,(e,n)=>e^n,"bitwise_xor"))}function tm(r,t){let e=k(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=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 m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),f=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));s[l]=m^f}else{let l=a,m=i;for(let f=0;f<o;f++)s[f]=l[f]^m[f]}}else for(let s=0;s<o;s++)u[s]=a[s]^i[s];return n}function em(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=S.zeros(n,e),u=i.data;if(w(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]^l}else for(let s=0;s<a;s++)u[s]=o[s]^t;return i}function Zt(r){Q(r.dtype,"bitwise_not");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=S.zeros(e,t),i=a.data;if(w(t)){let u=n,s=i;for(let c=0;c<o;c++)s[c]=~u[c]}else for(let u=0;u<o;u++)i[u]=~n[u];return a}function ga(r){return Zt(r)}function ba(r,t){if(Q(r.dtype,"left_shift"),typeof t=="number")return fa(r,t);if(Q(t.dtype,"left_shift"),t.size===1||t.ndim===1&&t.shape[0]===1){let e=w(t.dtype)?Number(t.data[0]):t.data[0];return fa(r,e)}return Ir(r,t)?nm(r,t):V(r,t,(e,n)=>e<<n,"left_shift")}function nm(r,t){let e=k(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,u=n.data;if(w(e)){let s=u;for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?a[c]:BigInt(Math.round(Number(a[c]))),m=typeof i[c]=="bigint"?i[c]:BigInt(Math.round(Number(i[c])));s[c]=l<<m}}else for(let s=0;s<o;s++)u[s]=a[s]<<i[s];return n}function fa(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=S.zeros(n,e),u=i.data;if(w(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]<<l}else for(let s=0;s<a;s++)u[s]=o[s]<<t;return i}function Aa(r,t){if(Q(r.dtype,"right_shift"),typeof t=="number")return ma(r,t);if(Q(t.dtype,"right_shift"),t.size===1||t.ndim===1&&t.shape[0]===1){let e=w(t.dtype)?Number(t.data[0]):t.data[0];return ma(r,e)}return Ir(r,t)?om(r,t):V(r,t,(e,n)=>e>>n,"right_shift")}function om(r,t){let e=k(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,u=n.data;if(w(e)){let s=u;for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?a[c]:BigInt(Math.round(Number(a[c]))),m=typeof i[c]=="bigint"?i[c]:BigInt(Math.round(Number(i[c])));s[c]=l>>m}}else for(let s=0;s<o;s++)u[s]=a[s]>>i[s];return n}function ma(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=S.zeros(n,e),u=i.data;if(w(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]>>l}else for(let s=0;s<a;s++)u[s]=o[s]>>t;return i}function ha(r,t=-1,e="big"){let n=Array.from(r.shape),o=n.length;if(t<0&&(t=o+t),t<0||t>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let a=n[t],i=Math.ceil(a/8),u=[...n];u[t]=i;let s=S.zeros(u,"uint8"),c=s.data;if(o===1){for(let g=0;g<i;g++){let h=0;for(let A=0;A<8;A++){let b=g*8+A;if(b<a){let N=Number(r.data[b])!==0?1:0;e==="big"?h|=N<<7-A:h|=N<<A}}c[g]=h}return s}let l=n.slice(0,t),m=n.slice(t+1),f=l.reduce((g,h)=>g*h,1),y=m.reduce((g,h)=>g*h,1),p=rt(n),d=rt(u);for(let g=0;g<f;g++)for(let h=0;h<y;h++)for(let A=0;A<i;A++){let b=0;for(let I=0;I<8;I++){let _=A*8+I;if(_<a){let B=0,v=g;for(let $=0;$<t;$++){let q=$<t-1?l.slice($+1).reduce((L,hr)=>L*hr,1):1,H=Math.floor(v/q);v%=q,B+=H*p[$]}B+=_*p[t];let E=h;for(let $=t+1;$<o;$++){let q=$<o-1?m.slice($-t).reduce((L,hr)=>L*hr,1):1,H=Math.floor(E/q);E%=q,B+=H*p[$]}let U=Number(r.data[B])!==0?1:0;e==="big"?b|=U<<7-I:b|=U<<I}}let N=0,D=g;for(let I=0;I<t;I++){let _=I<t-1?l.slice(I+1).reduce((v,E)=>v*E,1):1,B=Math.floor(D/_);D%=_,N+=B*d[I]}N+=A*d[t];let x=h;for(let I=t+1;I<o;I++){let _=I<o-1?m.slice(I-t).reduce((v,E)=>v*E,1):1,B=Math.floor(x/_);x%=_,N+=B*d[I]}c[N]=b}return s}function Sa(r,t=-1,e=-1,n="big"){if(r.dtype!=="uint8")throw new TypeError("Expected an input array of unsigned byte data type");let o=Array.from(r.shape),a=o.length;if(t<0&&(t=a+t),t<0||t>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let i=o[t],u=i*8;e>=0&&(u=e);let s=[...o];s[t]=u;let c=S.zeros(s,"uint8"),l=c.data;if(a===1){for(let h=0;h<i;h++){let A=Number(r.data[h]);for(let b=0;b<8;b++){let N=h*8+b;if(N>=u)break;n==="big"?l[N]=A>>7-b&1:l[N]=A>>b&1}}return c}let m=o.slice(0,t),f=o.slice(t+1),y=m.reduce((h,A)=>h*A,1),p=f.reduce((h,A)=>h*A,1),d=rt(o),g=rt(s);for(let h=0;h<y;h++)for(let A=0;A<p;A++)for(let b=0;b<i;b++){let N=0,D=h;for(let _=0;_<t;_++){let B=_<t-1?m.slice(_+1).reduce((E,U)=>E*U,1):1,v=Math.floor(D/B);D%=B,N+=v*d[_]}N+=b*d[t];let x=A;for(let _=t+1;_<a;_++){let B=_<a-1?f.slice(_-t).reduce((E,U)=>E*U,1):1,v=Math.floor(x/B);x%=B,N+=v*d[_]}let I=Number(r.data[N]);for(let _=0;_<8;_++){let B=b*8+_;if(B>=u)break;let v=0;D=h;for(let E=0;E<t;E++){let U=E<t-1?m.slice(E+1).reduce((q,H)=>q*H,1):1,$=Math.floor(D/U);D%=U,v+=$*g[E]}v+=B*g[t],x=A;for(let E=t+1;E<a;E++){let U=E<a-1?f.slice(E-t).reduce((q,H)=>q*H,1):1,$=Math.floor(x/U);x%=U,v+=$*g[E]}n==="big"?l[v]=I>>7-_&1:l[v]=I>>_&1}}return c}function rt(r){let t=r.length,e=new Array(t),n=1;for(let o=t-1;o>=0;o--)e[o]=n,n*=r[o];return e}function gr(r){return r!==0&&r!==0n}function _r(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function Da(r,t){return typeof t=="number"?im(r,t):_r(r,t)?sm(r,t):Y(r,t,(e,n)=>gr(e)&&gr(n))}function sm(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.size,i=w(r.dtype),u=w(t.dtype);if(i||u)for(let s=0;s<a;s++){let c=i?n[s]!==0n:n[s]!==0,l=u?o[s]!==0n:o[s]!==0;e[s]=c&&l?1:0}else for(let s=0;s<a;s++)e[s]=n[s]!==0&&o[s]!==0?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function im(r,t){let e=new Uint8Array(r.size),n=r.data,o=t!==0,a=r.size;if(w(r.dtype)){let i=n;for(let u=0;u<a;u++)e[u]=i[u]!==0n&&o?1:0}else for(let i=0;i<a;i++)e[i]=n[i]!==0&&o?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function xa(r,t){return typeof t=="number"?cm(r,t):_r(r,t)?um(r,t):Y(r,t,(e,n)=>gr(e)||gr(n))}function um(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.size,i=w(r.dtype),u=w(t.dtype);if(i||u)for(let s=0;s<a;s++){let c=i?n[s]!==0n:n[s]!==0,l=u?o[s]!==0n:o[s]!==0;e[s]=c||l?1:0}else for(let s=0;s<a;s++)e[s]=n[s]!==0||o[s]!==0?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function cm(r,t){let e=new Uint8Array(r.size),n=r.data,o=t!==0,a=r.size;if(w(r.dtype)){let i=n;for(let u=0;u<a;u++)e[u]=i[u]!==0n||o?1:0}else for(let i=0;i<a;i++)e[i]=n[i]!==0||o?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function wa(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(w(r.dtype)){let o=e;for(let a=0;a<n;a++)t[a]=o[a]===0n?1:0}else for(let o=0;o<n;o++)t[o]=e[o]===0?1:0;return S.fromData(t,Array.from(r.shape),"bool")}function Ia(r,t){return typeof t=="number"?fm(r,t):_r(r,t)?lm(r,t):Y(r,t,(e,n)=>gr(e)!==gr(n))}function lm(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.size,i=w(r.dtype),u=w(t.dtype);if(i||u)for(let s=0;s<a;s++){let c=i?n[s]!==0n:n[s]!==0,l=u?o[s]!==0n:o[s]!==0;e[s]=c!==l?1:0}else for(let s=0;s<a;s++){let c=n[s]!==0,l=o[s]!==0;e[s]=c!==l?1:0}return S.fromData(e,Array.from(r.shape),"bool")}function fm(r,t){let e=new Uint8Array(r.size),n=r.data,o=t!==0,a=r.size;if(w(r.dtype)){let i=n;for(let u=0;u<a;u++){let s=i[u]!==0n;e[u]=s!==o?1:0}}else for(let i=0;i<a;i++){let u=n[i]!==0;e[i]=u!==o?1:0}return S.fromData(e,Array.from(r.shape),"bool")}function za(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(w(r.dtype))for(let o=0;o<n;o++)t[o]=1;else for(let o=0;o<n;o++){let a=e[o];t[o]=Number.isFinite(a)?1:0}return S.fromData(t,Array.from(r.shape),"bool")}function _a(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(w(r.dtype))for(let o=0;o<n;o++)t[o]=0;else for(let o=0;o<n;o++){let a=e[o];t[o]=!Number.isFinite(a)&&!Number.isNaN(a)?1:0}return S.fromData(t,Array.from(r.shape),"bool")}function Ba(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(w(r.dtype))for(let o=0;o<n;o++)t[o]=0;else for(let o=0;o<n;o++)t[o]=Number.isNaN(e[o])?1:0;return S.fromData(t,Array.from(r.shape),"bool")}function va(r){let t=new Uint8Array(r.size);return S.fromData(t,Array.from(r.shape),"bool")}function Ea(r,t){if(typeof t=="number")return ym(r,t);if(_r(r,t))return mm(r,t);let e=sr(r.shape,t.shape),n=e.reduce((s,c)=>s*c,1),o=S.zeros(e,"float64"),a=o.data,i=tt(r,e),u=tt(t,e);for(let s=0;s<n;s++){let c=Number(i.iget(s)),l=Number(u.iget(s));a[s]=Math.sign(l)*Math.abs(c)}return o}function mm(r,t){let e=S.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size,a=r.data,i=t.data,u=w(r.dtype),s=w(t.dtype);for(let c=0;c<o;c++){let l=u?Number(a[c]):a[c],m=s?Number(i[c]):i[c];n[c]=Math.sign(m)*Math.abs(l)}return e}function ym(r,t){let e=S.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.data,a=r.size,i=Math.sign(t);if(w(r.dtype)){let u=o;for(let s=0;s<a;s++)n[s]=i*Math.abs(Number(u[s]))}else for(let u=0;u<a;u++)n[u]=i*Math.abs(o[u]);return e}function Ma(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(w(r.dtype)){let o=e;for(let a=0;a<n;a++)t[a]=o[a]<0n?1:0}else for(let o=0;o<n;o++){let a=e[o];t[o]=a<0||Object.is(a,-0)?1:0}return S.fromData(t,Array.from(r.shape),"bool")}function Oa(r,t){if(typeof t=="number")return dm(r,t);if(_r(r,t))return pm(r,t);let e=sr(r.shape,t.shape),n=e.reduce((s,c)=>s*c,1),o=S.zeros(e,"float64"),a=o.data,i=tt(r,e),u=tt(t,e);for(let s=0;s<n;s++){let c=Number(i.iget(s)),l=Number(u.iget(s));a[s]=zr(c,l)}return o}function pm(r,t){let e=S.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size,a=r.data,i=t.data,u=w(r.dtype),s=w(t.dtype);for(let c=0;c<o;c++){let l=u?Number(a[c]):a[c],m=s?Number(i[c]):i[c];n[c]=zr(l,m)}return e}function dm(r,t){let e=S.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.data,a=r.size;if(w(r.dtype)){let i=o;for(let u=0;u<a;u++)n[u]=zr(Number(i[u]),t)}else for(let i=0;i<a;i++)n[i]=zr(o[i],t);return e}function zr(r,t){if(Number.isNaN(r)||Number.isNaN(t))return NaN;if(r===t)return t;if(r===0)return t>0?Number.MIN_VALUE:-Number.MIN_VALUE;let e=new ArrayBuffer(8),n=new Float64Array(e),o=new BigInt64Array(e);n[0]=r;let a=o[0];return r>0&&t>r||r<0&&t>r?a=a+1n:a=a-1n,o[0]=a,n[0]}function Ta(r){let t=S.zeros(Array.from(r.shape),"float64"),e=t.data,n=r.data,o=r.size;if(w(r.dtype)){let a=n;for(let i=0;i<o;i++)e[i]=Na(Number(a[i]))}else for(let a=0;a<o;a++)e[a]=Na(n[a]);return t}function Na(r){if(Number.isNaN(r))return NaN;if(!Number.isFinite(r))return NaN;if(Math.abs(r)===0)return Number.MIN_VALUE;let e=zr(r,1/0);return Math.abs(e-r)}function tt(r,t){let e=r.shape.length,n=t.length,o=new Array(n).fill(0);for(let a=0;a<e;a++){let i=n-e+a,u=r.shape[a],s=t[i];if(u===s)o[i]=r.strides[a];else if(u===1)o[i]=0;else throw new Error("Invalid broadcast")}return S.fromData(r.data,Array.from(t),r.dtype,o,r.offset)}function Ua(r){let t=new Uint8Array(r.size);return S.fromData(t,Array.from(r.shape),"bool")}function $a(r){return!1}function ka(r){let t=new Uint8Array(r.size).fill(1);return S.fromData(t,Array.from(r.shape),"bool")}function Ca(r){return!0}function Fa(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(!w(r.dtype))for(let o=0;o<n;o++){let a=e[o];t[o]=a===-1/0?1:0}return S.fromData(t,Array.from(r.shape),"bool")}function Va(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(!w(r.dtype))for(let o=0;o<n;o++){let a=e[o];t[o]=a===1/0?1:0}return S.fromData(t,Array.from(r.shape),"bool")}function qa(r){return r.isFContiguous}function ja(r,t=100){return r.copy()}function Pa(r){return typeof r=="number"||typeof r=="bigint"||typeof r=="boolean"||typeof r=="string"}function Ra(r){return r==null?!1:typeof r[Symbol.iterator]=="function"}function La(r,t){let n={b:["bool"],i:["int8","int16","int32","int64"],u:["uint8","uint16","uint32","uint64"],f:["float32","float64"]}[t];return n?n.includes(r):!1}function Ga(r,t){let e=["float64","float32","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"],n=e.indexOf(r),o=e.indexOf(t);return n<=o?r:t}function Ht(r,t=-1){let e=r.shape,n=e.length,o=r.dtype,a=r.data;if(n===0)return r.copy();let i=t;if(i<0&&(i=n+i),i<0||i>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let u=r.copy(),s=u.data,c=e[i],l=Array.from(e).filter((f,y)=>y!==i),m=l.length===0?1:l.reduce((f,y)=>f*y,1);if(w(o)){let f=a,y=s;for(let p=0;p<m;p++){let d=[];for(let g=0;g<c;g++){let h=O(p,i,g,e),A=M(h,e);d.push({value:f[A],idx:g})}d.sort((g,h)=>g.value<h.value?-1:g.value>h.value?1:0);for(let g=0;g<c;g++){let h=O(p,i,g,e),A=M(h,e);y[A]=d[g].value}}}else for(let f=0;f<m;f++){let y=[];for(let p=0;p<c;p++){let d=O(f,i,p,e),g=M(d,e);y.push(Number(a[g]))}y.sort((p,d)=>isNaN(p)&&isNaN(d)?0:isNaN(p)?1:isNaN(d)?-1:p-d);for(let p=0;p<c;p++){let d=O(f,i,p,e),g=M(d,e);s[g]=y[p]}}return u}function Yt(r,t=-1){let e=r.shape,n=e.length,o=r.dtype,a=r.data;if(n===0)return S.zeros([0],"int32");let i=t;if(i<0&&(i=n+i),i<0||i>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let u=S.zeros(Array.from(e),"int32"),s=u.data,c=e[i],l=Array.from(e).filter((f,y)=>y!==i),m=l.length===0?1:l.reduce((f,y)=>f*y,1);if(w(o)){let f=a;for(let y=0;y<m;y++){let p=[];for(let d=0;d<c;d++){let g=O(y,i,d,e),h=M(g,e);p.push({value:f[h],idx:d})}p.sort((d,g)=>d.value<g.value?-1:d.value>g.value?1:0);for(let d=0;d<c;d++){let g=O(y,i,d,e),h=M(g,e);s[h]=p[d].idx}}}else for(let f=0;f<m;f++){let y=[];for(let p=0;p<c;p++){let d=O(f,i,p,e),g=M(d,e);y.push({value:Number(a[g]),idx:p})}y.sort((p,d)=>isNaN(p.value)&&isNaN(d.value)?0:isNaN(p.value)?1:isNaN(d.value)?-1:p.value-d.value);for(let p=0;p<c;p++){let d=O(f,i,p,e),g=M(d,e);s[g]=y[p].idx}}return u}function Wa(r){if(r.length===0)return S.zeros([0],"int32");let e=r[0].size;for(let i of r){if(i.ndim!==1)throw new Error("keys must be 1D arrays");if(i.size!==e)throw new Error("all keys must have the same length")}let n=[];for(let i=0;i<e;i++)n.push(i);n.sort((i,u)=>{for(let s=r.length-1;s>=0;s--){let l=r[s].data,m=Number(l[i]),f=Number(l[u]);if(!(isNaN(m)&&isNaN(f))){if(isNaN(m))return 1;if(isNaN(f)||m<f)return-1;if(m>f)return 1}}return 0});let o=S.zeros([e],"int32"),a=o.data;for(let i=0;i<e;i++)a[i]=n[i];return o}function bm(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e],i=r[o],u=r[n],s;a<=i&&i<=u||u<=i&&i<=a?s=o:i<=a&&a<=u||u<=a&&a<=i?s=e:s=n;let c=r[s];[r[s],r[n]]=[r[n],r[s]];let l=e;for(let m=e;m<n;m++){let f=r[m],y=isNaN(f),p=isNaN(c);!y&&(p||f<=c)&&([r[l],r[m]]=[r[m],r[l]],l++)}if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function Am(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e],i=r[o],u=r[n],s;a<=i&&i<=u||u<=i&&i<=a?s=o:i<=a&&a<=u||u<=a&&a<=i?s=e:s=n;let c=r[s];[r[s],r[n]]=[r[n],r[s]];let l=e;for(let m=e;m<n;m++)r[m]<=c&&([r[l],r[m]]=[r[m],r[l]],l++);if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function hm(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e].value,i=r[o].value,u=r[n].value,s;a<=i&&i<=u||u<=i&&i<=a?s=o:i<=a&&a<=u||u<=a&&a<=i?s=e:s=n;let c=r[s].value;[r[s],r[n]]=[r[n],r[s]];let l=e;for(let m=e;m<n;m++){let f=r[m].value,y=isNaN(f),p=isNaN(c);!y&&(p||f<=c)&&([r[l],r[m]]=[r[m],r[l]],l++)}if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function Sm(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e].value,i=r[o].value,u=r[n].value,s;a<=i&&i<=u||u<=i&&i<=a?s=o:i<=a&&a<=u||u<=a&&a<=i?s=e:s=n;let c=r[s].value;[r[s],r[n]]=[r[n],r[s]];let l=e;for(let m=e;m<n;m++)r[m].value<=c&&([r[l],r[m]]=[r[m],r[l]],l++);if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function Jt(r,t,e=-1){let n=r.shape,o=n.length,a=r.dtype;if(o===0)return r.copy();let i=e;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=n[i],s=t;if(s<0&&(s=u+s),s<0||s>=u)throw new Error(`kth(=${t}) out of bounds (${u})`);let c=r.copy(),l=c.data,m=Array.from(n).filter((y,p)=>p!==i),f=m.length===0?1:m.reduce((y,p)=>y*p,1);if(w(a)){let y=l;for(let p=0;p<f;p++){let d=[];for(let g=0;g<u;g++){let h=O(p,i,g,n),A=M(h,n);d.push(y[A])}Am(d,s);for(let g=0;g<u;g++){let h=O(p,i,g,n),A=M(h,n);y[A]=d[g]}}}else for(let y=0;y<f;y++){let p=[];for(let d=0;d<u;d++){let g=O(y,i,d,n),h=M(g,n);p.push(Number(l[h]))}bm(p,s);for(let d=0;d<u;d++){let g=O(y,i,d,n),h=M(g,n);l[h]=p[d]}}return c}function Xt(r,t,e=-1){let n=r.shape,o=n.length,a=r.dtype,i=r.data;if(o===0)return S.zeros([0],"int32");let u=e;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=n[u],c=t;if(c<0&&(c=s+c),c<0||c>=s)throw new Error(`kth(=${t}) out of bounds (${s})`);let l=S.zeros(Array.from(n),"int32"),m=l.data,f=Array.from(n).filter((p,d)=>d!==u),y=f.length===0?1:f.reduce((p,d)=>p*d,1);if(w(a)){let p=i;for(let d=0;d<y;d++){let g=[];for(let h=0;h<s;h++){let A=O(d,u,h,n),b=M(A,n);g.push({value:p[b],idx:h})}Sm(g,c);for(let h=0;h<s;h++){let A=O(d,u,h,n),b=M(A,n);m[b]=g[h].idx}}}else for(let p=0;p<y;p++){let d=[];for(let g=0;g<s;g++){let h=O(p,u,g,n),A=M(h,n);d.push({value:Number(i[A]),idx:g})}hm(d,c);for(let g=0;g<s;g++){let h=O(p,u,g,n),A=M(h,n);m[A]=d[g].idx}}return l}function Za(r){let t=r.dtype,e=r.size,n=r.data,o=[];for(let u=0;u<e;u++)o.push(Number(n[u]));o.sort((u,s)=>isNaN(u)&&isNaN(s)?0:isNaN(u)?1:isNaN(s)?-1:u-s);let a=S.zeros([e],t),i=a.data;for(let u=0;u<e;u++)i[u]=o[u];return a}function et(r){let t=r.shape,e=t.length,n=r.data,o=r.size,a=[];for(let l=0;l<e;l++)a.push([]);let i=[],u=1;for(let l=e-1;l>=0;l--)i.unshift(u),u*=t[l];for(let l=0;l<o;l++)if(n[l]){let m=l;for(let f=0;f<e;f++){let y=Math.floor(m/i[f]);m=m%i[f],a[f].push(y)}}let s=a[0]?.length??0,c=[];for(let l=0;l<e;l++){let m=S.zeros([s],"int32"),f=m.data;for(let y=0;y<s;y++)f[y]=a[l][y];c.push(m)}return c}function Qt(r){let t=r.shape,e=t.length,n=r.data,o=r.size,a=[],i=[],u=1;for(let f=e-1;f>=0;f--)i.unshift(u),u*=t[f];for(let f=0;f<o;f++)if(n[f]){let y=[],p=f;for(let d=0;d<e;d++){let g=Math.floor(p/i[d]);p=p%i[d],y.push(g)}a.push(y)}let s=a.length,c=e===0?[s,1]:[s,e],l=S.zeros(c,"int32"),m=l.data;for(let f=0;f<s;f++){let y=a[f];for(let p=0;p<(e===0?1:e);p++)m[f*(e===0?1:e)+p]=y[p]??0}return l}function Ha(r){let t=r.data,e=r.size,n=[];for(let i=0;i<e;i++)t[i]&&n.push(i);let o=S.zeros([n.length],"int32"),a=o.data;for(let i=0;i<n.length;i++)a[i]=n[i];return o}function Ya(r,t,e){if(t===void 0&&e===void 0)return et(r);if(t===void 0||e===void 0)throw new Error("either both or neither of x and y should be given");let n=r.shape,o=t.shape,a=e.shape,i=Math.max(n.length,o.length,a.length),u=B=>{let v=Array(i).fill(1);for(let E=0;E<B.length;E++)v[i-B.length+E]=B[E];return v},s=u(n),c=u(o),l=u(a),m=[];for(let B=0;B<i;B++){let v=[s[B],c[B],l[B]],E=Math.max(...v);for(let U of v)if(U!==1&&U!==E)throw new Error("operands could not be broadcast together");m.push(E)}let f=t.dtype,y=S.zeros(m,f),p=y.data,d=r.data,g=t.data,h=e.data,A=(B,v)=>{let E=[],U=1;for(let $=B.length-1;$>=0;$--)E.unshift(U),U*=B[$];for(;E.length<v.length;)E.unshift(0);for(let $=0;$<v.length;$++)v[$]===1&&m[$]!==1&&(E[$]=0);return E},b=A(n,s),N=A(o,c),D=A(a,l),x=[],I=1;for(let B=m.length-1;B>=0;B--)x.unshift(I),I*=m[B];let _=m.reduce((B,v)=>B*v,1);for(let B=0;B<_;B++){let v=B,E=0,U=0,$=0;for(let q=0;q<i;q++){let H=Math.floor(v/x[q]);v=v%x[q],E+=H*b[q],U+=H*N[q],$+=H*D[q]}d[E]?p[B]=g[U]:p[B]=h[$]}return y}function Kt(r,t,e="left"){if(r.ndim!==1)throw new Error("storage must be 1D");let n=r.data,o=r.size,a=t.data,i=t.size,u=S.zeros([i],"int32"),s=u.data;for(let c=0;c<i;c++){let l=Number(a[c]),m=0,f=o;if(e==="left")for(;m<f;){let y=Math.floor((m+f)/2);Number(n[y])<l?m=y+1:f=y}else for(;m<f;){let y=Math.floor((m+f)/2);Number(n[y])<=l?m=y+1:f=y}s[c]=m}return u}function Ja(r,t){let e=r.data,n=t.data,o=t.dtype,a=Math.min(r.size,t.size),i=0;for(let l=0;l<a;l++)e[l]&&i++;let u=S.zeros([i],o),s=u.data,c=0;if(w(o)){let l=n,m=s;for(let f=0;f<a;f++)e[f]&&(m[c++]=l[f])}else for(let l=0;l<a;l++)e[l]&&(s[c++]=n[l]);return u}function re(r,t){let e=r.shape,n=e.length,o=r.data,a=r.size;if(t===void 0){let f=0;for(let y=0;y<a;y++)o[y]&&f++;return f}let i=t;if(i<0&&(i=n+i),i<0||i>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let u=Array.from(e).filter((f,y)=>y!==i);if(u.length===0)return re(r);let s=S.zeros(u,"int32"),c=s.data,l=e[i],m=u.reduce((f,y)=>f*y,1);for(let f=0;f<m;f++){let y=0;for(let p=0;p<l;p++){let d=O(f,i,p,e),g=M(d,e);o[g]&&y++}c[f]=y}return s}function Xa(r){if(!isFinite(r))return r;let t=Math.floor(r),e=r-t;return Math.abs(e-.5)<1e-10?t%2===0?t:t+1:Math.round(r)}function te(r,t=0){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=e==="float32"?"float32":"float64",u=S.zeros(n,i),s=u.data,c=Math.pow(10,t);for(let l=0;l<a;l++){let m=Number(o[l]);s[l]=Xa(m*c)/c}return u}function ee(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",i=S.zeros(e,a),u=i.data;for(let s=0;s<o;s++)u[s]=Math.ceil(Number(n[s]));return i}function ne(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",i=S.zeros(e,a),u=i.data;for(let s=0;s<o;s++)u[s]=Math.trunc(Number(n[s]));return i}function oe(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",i=S.zeros(e,a),u=i.data;for(let s=0;s<o;s++)u[s]=Math.floor(Number(n[s]));return i}function ae(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",i=S.zeros(e,a),u=i.data;for(let s=0;s<o;s++)u[s]=Xa(Number(n[s]));return i}function se(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",i=S.zeros(e,a),u=i.data;for(let s=0;s<o;s++)u[s]=Math.trunc(Number(n[s]));return i}function ar(r,t=!1,e=!1,n=!1){let o=r.dtype,a=r.size,i=r.data,u=[];for(let b=0;b<a;b++)u.push({value:Number(i[b]),index:b});u.sort((b,N)=>isNaN(b.value)&&isNaN(N.value)?0:isNaN(b.value)?1:isNaN(N.value)?-1:b.value-N.value);let s=[],c=[],l=new Array(a),m=[],f,y=0;for(let b=0;b<u.length;b++){let{value:N,index:D}=u[b];f===void 0||isNaN(N)&&!isNaN(f)||!isNaN(N)&&isNaN(f)||!isNaN(N)&&!isNaN(f)&&N!==f?(f!==void 0&&m.push(y),s.push(N),c.push(D),y=1,f=N):y++}y>0&&m.push(y);let p=new Map,d=-1;for(let b=0;b<s.length;b++){let N=s[b];isNaN(N)?d=b:p.set(N,b)}for(let b=0;b<a;b++){let N=Number(i[b]);isNaN(N)?l[b]=d:l[b]=p.get(N)}let g=S.zeros([s.length],o),h=g.data;for(let b=0;b<s.length;b++)h[b]=s[b];if(!t&&!e&&!n)return g;let A={values:g};if(t){let b=S.zeros([c.length],"int32"),N=b.data;for(let D=0;D<c.length;D++)N[D]=c[D];A.indices=b}if(e){let b=S.zeros([l.length],"int32"),N=b.data;for(let D=0;D<l.length;D++)N[D]=l[D];A.inverse=b}if(n){let b=S.zeros([m.length],"int32"),N=b.data;for(let D=0;D<m.length;D++)N[D]=m[D];A.counts=b}return A}function Qa(r,t){return ie(r,t)}function Ka(r,t){let e=r.dtype,n=ar(r),o=ar(t),a=new Set;for(let c=0;c<o.size;c++)a.add(Number(o.data[c]));let i=[];for(let c=0;c<n.size;c++){let l=Number(n.data[c]);a.has(l)&&i.push(l)}i.sort((c,l)=>c-l);let u=S.zeros([i.length],e),s=u.data;for(let c=0;c<i.length;c++)s[c]=i[c];return u}function ie(r,t){let e=Array.from(r.shape),n=r.size,o=new Set;for(let s=0;s<t.size;s++)o.add(Number(t.data[s]));let a=S.zeros(e,"bool"),i=a.data,u=r.data;for(let s=0;s<n;s++){let c=Number(u[s]);i[s]=o.has(c)?1:0}return a}function rs(r,t){let e=r.dtype,n=ar(r),o=new Set;for(let s=0;s<t.size;s++)o.add(Number(t.data[s]));let a=[];for(let s=0;s<n.size;s++){let c=Number(n.data[s]);o.has(c)||a.push(c)}let i=S.zeros([a.length],e),u=i.data;for(let s=0;s<a.length;s++)u[s]=a[s];return i}function ts(r,t){let e=r.dtype,n=ar(r),o=ar(t),a=new Set,i=new Set;for(let l=0;l<n.size;l++)a.add(Number(n.data[l]));for(let l=0;l<o.size;l++)i.add(Number(o.data[l]));let u=[];for(let l of a)i.has(l)||u.push(l);for(let l of i)a.has(l)||u.push(l);u.sort((l,m)=>l-m);let s=S.zeros([u.length],e),c=s.data;for(let l=0;l<u.length;l++)c[l]=u[l];return s}function es(r,t){let e=r.dtype,n=ar(r),o=ar(t),a=new Set;for(let c=0;c<n.size;c++)a.add(Number(n.data[c]));for(let c=0;c<o.size;c++)a.add(Number(o.data[c]));let i=Array.from(a);i.sort((c,l)=>c-l);let u=S.zeros([i.length],e),s=u.data;for(let c=0;c<i.length;c++)s[c]=i[c];return u}function ue(r,t=1,e=-1){if(t<0)throw new Error(`order must be non-negative but got ${t}`);if(t===0)return r.copy();let n=Array.from(r.shape),o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);if(n[a]<t+1)throw new Error(`diff requires at least ${t+1} elements along axis ${e}, but got ${n[a]}`);let i=r;for(let u=0;u<t;u++)i=wm(i,a);return i}function wm(r,t){let e=Array.from(r.shape),n=e.length,o=e[t],a=[...e];a[t]=o-1;let i=r.dtype,u=w(i)?"float64":i,s=S.zeros(a,u),c=s.data,l=r.strides,m=s.size;for(let f=0;f<m;f++){let y=f,p=new Array(n);for(let D=n-1;D>=0;D--)p[D]=y%a[D],y=Math.floor(y/a[D]);let d=[...p],g=[...p];g[t]=d[t]+1;let h=0,A=0;for(let D=0;D<n;D++)h+=d[D]*l[D],A+=g[D]*l[D];let b=(w(i),Number(r.data[h])),N=(w(i),Number(r.data[A]));c[f]=N-b}return s}function ns(r,t=null,e=null){let n=r.size,o=r.dtype,a=w(o)?"float64":o,i=Math.max(0,n-1),u=e?e.length:0,s=t?t.length:0,c=u+i+s,l=S.zeros([c],a),m=l.data,f=0;if(e)for(let y of e)m[f++]=y;for(let y=0;y<i;y++){let p=(w(o),Number(r.iget(y))),d=(w(o),Number(r.iget(y+1)));m[f++]=d-p}if(t)for(let y of t)m[f++]=y;return l}function os(r,t=1,e=null){let o=Array.from(r.shape).length,a;if(e===null)a=Array.from({length:o},(s,c)=>c);else if(typeof e=="number"){let s=e<0?o+e:e;if(s<0||s>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);a=[s]}else a=e.map(s=>{let c=s<0?o+s:s;if(c<0||c>=o)throw new Error(`axis ${s} is out of bounds for array of dimension ${o}`);return c});let i;if(typeof t=="number")i=a.map(()=>t);else{if(t.length!==a.length)throw new Error("Number of spacings must match number of axes");i=t}let u=[];for(let s=0;s<a.length;s++)u.push(Im(r,a[s],i[s]));return u.length===1?u[0]:u}function Im(r,t,e){let n=Array.from(r.shape),o=n.length,a=n[t];if(a<2)throw new Error(`Shape of array along axis ${t} must be at least 2, but got ${a}`);let i=r.dtype,u=w(i)?"float64":i==="float32"?"float32":"float64",s=S.zeros(n,u),c=s.data,l=r.strides,m=e,f=2*m,y=r.size;for(let p=0;p<y;p++){let d=p,g=new Array(o);for(let b=o-1;b>=0;b--)g[b]=d%n[b],d=Math.floor(d/n[b]);let h=g[t],A;if(h===0){let b=[...g];b[t]=1;let N=0;for(let I=0;I<o;I++)N+=b[I]*l[I];let D=(w(i),Number(r.data[p]));A=((w(i),Number(r.data[N]))-D)/m}else if(h===a-1){let b=[...g];b[t]=a-2;let N=0;for(let I=0;I<o;I++)N+=b[I]*l[I];let D=(w(i),Number(r.data[p])),x=(w(i),Number(r.data[N]));A=(D-x)/m}else{let b=[...g],N=[...g];b[t]=h+1,N[t]=h-1;let D=0,x=0;for(let B=0;B<o;B++)D+=b[B]*l[B],x+=N[B]*l[B];let I=(w(i),Number(r.data[D])),_=(w(i),Number(r.data[x]));A=(I-_)/f}c[p]=A}return s}function as(r,t,e=-1,n=-1,o=-1){let a=Array.from(r.shape),i=Array.from(t.shape),u=a.length,s=i.length,c=e<0?u+e:e,l=n<0?s+n:n;if(c<0||c>=u)throw new Error(`axisa ${e} is out of bounds for array of dimension ${u}`);if(l<0||l>=s)throw new Error(`axisb ${n} is out of bounds for array of dimension ${s}`);let m=a[c],f=i[l];if(m!==2&&m!==3)throw new Error(`incompatible dimensions for cross product (dimension must be 2 or 3, got ${m})`);if(f!==2&&f!==3)throw new Error(`incompatible dimensions for cross product (dimension must be 2 or 3, got ${f})`);let y=k(r.dtype,t.dtype);if(u===1&&s===1&&m===3&&f===3){let p=S.zeros([3],y),d=p.data,g=Number(r.iget(0)),h=Number(r.iget(1)),A=Number(r.iget(2)),b=Number(t.iget(0)),N=Number(t.iget(1)),D=Number(t.iget(2));return d[0]=h*D-A*N,d[1]=A*b-g*D,d[2]=g*N-h*b,p}if(u===1&&s===1&&m===2&&f===2){let p=S.zeros([],y),d=Number(r.iget(0)),g=Number(r.iget(1)),h=Number(t.iget(0)),A=Number(t.iget(1));return p.data[0]=d*A-g*h,p}if(u===1&&s===1){if(m===2&&f===3){let p=S.zeros([3],y),d=p.data,g=Number(r.iget(0)),h=Number(r.iget(1)),A=Number(t.iget(0)),b=Number(t.iget(1)),N=Number(t.iget(2));return d[0]=h*N,d[1]=-g*N,d[2]=g*b-h*A,p}else if(m===3&&f===2){let p=S.zeros([3],y),d=p.data,g=Number(r.iget(0)),h=Number(r.iget(1)),A=Number(r.iget(2)),b=Number(t.iget(0)),N=Number(t.iget(1));return d[0]=-A*N,d[1]=A*b,d[2]=g*N-h*b,p}}if(u===2&&s===2&&c===1&&l===1){let p=a[0];if(i[0]!==p)throw new Error(`Shape mismatch: a has ${p} vectors, b has ${i[0]} vectors`);if(m===3&&f===3){let d=S.zeros([p,3],y),g=d.data;for(let h=0;h<p;h++){let A=Number(r.iget(h*3)),b=Number(r.iget(h*3+1)),N=Number(r.iget(h*3+2)),D=Number(t.iget(h*3)),x=Number(t.iget(h*3+1)),I=Number(t.iget(h*3+2));g[h*3]=b*I-N*x,g[h*3+1]=N*D-A*I,g[h*3+2]=A*x-b*D}return d}if(m===2&&f===2){let d=S.zeros([p],y),g=d.data;for(let h=0;h<p;h++){let A=Number(r.iget(h*2)),b=Number(r.iget(h*2+1)),N=Number(t.iget(h*2)),D=Number(t.iget(h*2+1));g[h]=A*D-b*N}return d}}throw new Error(`cross product not implemented for arrays with shapes ${JSON.stringify(a)} and ${JSON.stringify(i)}`)}function ss(r,t,e=0){let n=r.data,o=r.size,a=0;for(let u=0;u<o;u++){let s=Number(n[u]);if(s<0||!Number.isInteger(s))throw new Error("'x' argument must contain non-negative integers");s>a&&(a=s)}let i=Math.max(a+1,e);if(t!==void 0){if(t.size!==o)throw new Error("weights array must have same length as x");let u=t.data,s=new Float64Array(i);for(let c=0;c<o;c++){let l=Number(n[c]);s[l]+=Number(u[c])}return S.fromData(s,[i],"float64")}else{let u=new Float64Array(i);for(let s=0;s<o;s++){let c=Number(n[s]);u[c]++}return S.fromData(u,[i],"float64")}}function is(r,t,e=!1){let n=r.data,o=t.data,a=r.size,i=t.size,u=new Float64Array(a),s=!0;i>1&&(s=Number(o[1])>=Number(o[0]));for(let c=0;c<a;c++){let l=Number(n[c]),m;if(s)e?m=_m(o,i,l):m=Br(o,i,l);else if(e)for(m=0;m<i&&Number(o[m])>=l;)m++;else for(m=0;m<i&&Number(o[m])>l;)m++;u[c]=m}return S.fromData(u,[...r.shape],"float64")}function _m(r,t,e){let n=0,o=t;for(;n<o;){let a=n+o>>>1;Number(r[a])<e?n=a+1:o=a}return n}function Br(r,t,e){let n=0,o=t;for(;n<o;){let a=n+o>>>1;Number(r[a])<=e?n=a+1:o=a}return n}function us(r,t=10,e,n=!1,o){let a=r.data,i=r.size,u;if(typeof t=="number"){let m,f;if(e)[m,f]=e;else{m=1/0,f=-1/0;for(let p=0;p<i;p++){let d=Number(a[p]);d<m&&(m=d),d>f&&(f=d)}m===f&&(m=m-.5,f=f+.5)}u=[];let y=(f-m)/t;for(let p=0;p<=t;p++)u.push(m+p*y)}else{let m=t.data;u=[];for(let f=0;f<t.size;f++)u.push(Number(m[f]))}let s=u.length-1,c=new Float64Array(s),l=o?.data;for(let m=0;m<i;m++){let f=Number(a[m]),y=l?Number(l[m]):1,p=Br(u,u.length,f)-1;if(!(p<0)){if(p>=s)if(f===u[s])p=s-1;else continue;c[p]+=y}}if(n){let m=0;for(let f=0;f<s;f++)m+=c[f];for(let f=0;f<s;f++){let y=u[f+1]-u[f];c[f]=c[f]/(m*y)}}return{hist:S.fromData(c,[s],"float64"),bin_edges:S.fromData(new Float64Array(u),[u.length],"float64")}}function cs(r,t,e=10,n,o=!1,a){let i=r.data,u=t.data,s=r.size;if(t.size!==s)throw new Error("x and y must have the same length");let c,l,m,f;if(typeof e=="number"?(m=e,f=e):Array.isArray(e)&&e.length===2?(e[0],m=e[0],f=e[1]):(m=10,f=10),typeof m=="number"){let h,A;if(n)[h,A]=n[0];else{h=1/0,A=-1/0;for(let N=0;N<s;N++){let D=Number(i[N]);D<h&&(h=D),D>A&&(A=D)}h===A&&(h-=.5,A+=.5)}c=[];let b=(A-h)/m;for(let N=0;N<=m;N++)c.push(h+N*b)}else{let h=m.data;c=[];for(let A=0;A<m.size;A++)c.push(Number(h[A]))}if(typeof f=="number"){let h,A;if(n)[h,A]=n[1];else{h=1/0,A=-1/0;for(let N=0;N<s;N++){let D=Number(u[N]);D<h&&(h=D),D>A&&(A=D)}h===A&&(h-=.5,A+=.5)}l=[];let b=(A-h)/f;for(let N=0;N<=f;N++)l.push(h+N*b)}else{let h=f.data;l=[];for(let A=0;A<f.size;A++)l.push(Number(h[A]))}let y=c.length-1,p=l.length-1,d=new Float64Array(y*p),g=a?.data;for(let h=0;h<s;h++){let A=Number(i[h]),b=Number(u[h]),N=g?Number(g[h]):1,D=Br(c,c.length,A)-1,x=Br(l,l.length,b)-1;if(D<0||D>=y)if(A===c[y]&&D===y)D=y-1;else continue;if(x<0||x>=p)if(b===l[p]&&x===p)x=p-1;else continue;d[D*p+x]+=N}if(o){let h=0;for(let A=0;A<d.length;A++)h+=d[A];for(let A=0;A<y;A++)for(let b=0;b<p;b++){let N=c[A+1]-c[A],D=l[b+1]-l[b],x=N*D;d[A*p+b]=d[A*p+b]/(h*x)}}return{hist:S.fromData(d,[y,p],"float64"),x_edges:S.fromData(new Float64Array(c),[c.length],"float64"),y_edges:S.fromData(new Float64Array(l),[l.length],"float64")}}function ls(r,t=10,e,n=!1,o){let a=r.shape,i=r.data,u,s;if(a.length===1)u=a[0],s=1;else if(a.length===2)u=a[0],s=a[1];else throw new Error("sample must be 1D or 2D array");let c;if(typeof t=="number")c=new Array(s).fill(t);else if(c=t,c.length!==s)throw new Error("bins array length must match number of dimensions");let l=[];for(let h=0;h<s;h++){let A,b;if(e&&e[h])[A,b]=e[h];else{A=1/0,b=-1/0;for(let I=0;I<u;I++){let _=Number(s===1?i[I]:i[I*s+h]);_<A&&(A=_),_>b&&(b=_)}A===b&&(A-=.5,b+=.5)}let N=c[h],D=[],x=(b-A)/N;for(let I=0;I<=N;I++)D.push(A+I*x);l.push(D)}let m=c.slice(),f=m.reduce((h,A)=>h*A,1),y=new Float64Array(f),p=new Array(s);p[s-1]=1;for(let h=s-2;h>=0;h--)p[h]=p[h+1]*c[h+1];let d=o?.data;for(let h=0;h<u;h++){let A=d?Number(d[h]):1,b=0,N=!1;for(let D=0;D<s;D++){let x=Number(s===1?i[h]:i[h*s+D]),I=l[D],_=c[D],B=Br(I,I.length,x)-1;if(B<0||B>=_)if(x===I[_]&&B===_)B=_-1;else{N=!0;break}b+=B*p[D]}N||(y[b]+=A)}if(n){let h=0;for(let b=0;b<f;b++)h+=y[b];let A=new Float64Array(f);for(let b=0;b<f;b++){let N=1,D=b;for(let x=0;x<s;x++){let I=Math.floor(D/p[x])%c[x],_=l[x];N*=_[I+1]-_[I]}A[b]=N}for(let b=0;b<f;b++)y[b]=y[b]/(h*A[b])}let g=l.map(h=>S.fromData(new Float64Array(h),[h.length],"float64"));return{hist:S.fromData(y,m,"float64"),edges:g}}function ce(r,t,e="full"){let n=r.data,o=t.data,a=r.size,i=t.size,u=a+i-1,s=new Float64Array(u);for(let c=0;c<u;c++){let l=0,m=c-i+1;for(let f=0;f<a;f++){let y=f-m;y>=0&&y<i&&(l+=Number(n[f])*Number(o[y]))}s[c]=l}if(e==="full")return S.fromData(s,[u],"float64");if(e==="same"){let c=Math.floor((u-a)/2),l=new Float64Array(a);for(let m=0;m<a;m++)l[m]=s[c+m];return S.fromData(l,[a],"float64")}else{let c=Math.max(a,i)-Math.min(a,i)+1,l=Math.min(a,i)-1,m=new Float64Array(c);for(let f=0;f<c;f++)m[f]=s[l+f];return S.fromData(m,[c],"float64")}}function fs(r,t,e="full"){let n=t.data,o=t.size,a=new Float64Array(o);for(let u=0;u<o;u++)a[u]=Number(n[o-1-u]);let i=S.fromData(a,[o],"float64");return ce(r,i,e)}function le(r,t,e=!0,n=!1,o){let a=r.shape,i=r.data,u;if(o!==void 0?u=o:u=n?0:1,a.length===1)if(t!==void 0){let y=t.data,p=r.size;if(t.size!==p)throw new Error("m and y must have same length");let d=0,g=0;for(let D=0;D<p;D++)d+=Number(i[D]),g+=Number(y[D]);d/=p,g/=p;let h=0,A=0,b=0;for(let D=0;D<p;D++){let x=Number(i[D])-d,I=Number(y[D])-g;h+=x*x,A+=I*I,b+=x*I}let N=p-u;return N<=0?S.fromData(new Float64Array([NaN,NaN,NaN,NaN]),[2,2],"float64"):(h/=N,A/=N,b/=N,S.fromData(new Float64Array([h,b,b,A]),[2,2],"float64"))}else{let y=r.size,p=0;for(let h=0;h<y;h++)p+=Number(i[h]);p/=y;let d=0;for(let h=0;h<y;h++){let A=Number(i[h])-p;d+=A*A}let g=y-u;return g<=0?S.fromData(new Float64Array([NaN]),[],"float64"):(d/=g,S.fromData(new Float64Array([d]),[],"float64"))}let s,c;e?(s=a[0],c=a[1]):(s=a[1],c=a[0]);let l=new Float64Array(s);for(let y=0;y<s;y++){let p=0;for(let d=0;d<c;d++){let g=e?y*c+d:d*s+y;p+=Number(i[g])}l[y]=p/c}let m=new Float64Array(s*s),f=c-u;if(f<=0)return m.fill(NaN),S.fromData(m,[s,s],"float64");for(let y=0;y<s;y++)for(let p=y;p<s;p++){let d=0;for(let h=0;h<c;h++){let A=e?y*c+h:h*s+y,b=e?p*c+h:h*s+p,N=Number(i[A])-l[y],D=Number(i[b])-l[p];d+=N*D}let g=d/f;m[y*s+p]=g,m[p*s+y]=g}return S.fromData(m,[s,s],"float64")}function ms(r,t,e=!0){if(r.shape.length===1&&t===void 0)return S.fromData(new Float64Array([1]),[],"float64");let n=le(r,t,e,!1),o=n.data,i=n.shape[0],u=new Float64Array(i*i);for(let s=0;s<i;s++)for(let c=0;c<i;c++){let l=Number(o[s*i+c]),m=Number(o[s*i+s]),f=Number(o[c*i+c]);m<=0||f<=0?u[s*i+c]=NaN:u[s*i+c]=l/Math.sqrt(m*f)}return S.fromData(u,[i,i],"float64")}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(){return this.transpose()}get itemsize(){return kr(this._storage.dtype)}get nbytes(){return this.size*this.itemsize}fill(t){let e=this._storage.dtype,n=this.size;if(w(e)){let o=typeof t=="bigint"?t:BigInt(Math.round(Number(t)));for(let a=0;a<n;a++)this._storage.iset(a,o)}else if(e==="bool"){let o=t?1:0;for(let a=0;a<n;a++)this._storage.iset(a,o)}else{let o=Number(t);for(let a=0;a<n;a++)this._storage.iset(a,o)}}*[Symbol.iterator](){if(this.ndim===0)yield this._storage.iget(0);else if(this.ndim===1)for(let t=0;t<this.shape[0];t++)yield this._storage.iget(t);else for(let t=0;t<this.shape[0];t++)yield this.slice(String(t))}get(t){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let e=t.map((n,o)=>{let a=n;if(a<0&&(a=this.shape[o]+a),a<0||a>=this.shape[o])throw new Error(`Index ${n} is out of bounds for axis ${o} with size ${this.shape[o]}`);return a});return this._storage.get(...e)}set(t,e){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let n=t.map((i,u)=>{let s=i;if(s<0&&(s=this.shape[u]+s),s<0||s>=this.shape[u])throw new Error(`Index ${i} is out of bounds for axis ${u} with size ${this.shape[u]}`);return s}),o=this.dtype,a;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,i=T(t);if(!i)throw new Error(`Cannot convert to dtype ${t}`);let u=new i(a),s=this.data;if(w(n)&&!w(t)){let l=s;if(t==="bool")for(let m=0;m<a;m++)u[m]=l[m]!==BigInt(0)?1:0;else for(let m=0;m<a;m++)u[m]=Number(l[m])}else if(!w(n)&&w(t)){let l=s;for(let m=0;m<a;m++)u[m]=BigInt(Math.round(Number(l[m])))}else if(t==="bool"){let l=s;for(let m=0;m<a;m++)u[m]=l[m]!==0?1:0}else if(n==="bool"&&!w(t)){let l=s;for(let m=0;m<a;m++)u[m]=l[m]}else if(!w(n)&&!w(t)){let l=s;for(let m=0;m<a;m++)u[m]=l[m]}else{let l=s;for(let m=0;m<a;m++)u[m]=l[m]}let c=S.fromData(u,o,t);return new r(c)}add(t){let e=typeof t=="number"?t:t._storage,n=Je(this._storage,e);return r._fromStorage(n)}subtract(t){let e=typeof t=="number"?t:t._storage,n=Xe(this._storage,e);return r._fromStorage(n)}multiply(t){let e=typeof t=="number"?t:t._storage,n=Qe(this._storage,e);return r._fromStorage(n)}divide(t){let e=typeof t=="number"?t:t._storage,n=Ke(this._storage,e);return r._fromStorage(n)}mod(t){let e=typeof t=="number"?t:t._storage,n=Fr(this._storage,e);return r._fromStorage(n)}floor_divide(t){let e=typeof t=="number"?t:t._storage,n=At(this._storage,e);return r._fromStorage(n)}positive(){let t=nn(this._storage);return r._fromStorage(t)}reciprocal(){let t=on(this._storage);return r._fromStorage(t)}sqrt(){let t=Ao(this._storage);return r._fromStorage(t)}power(t){let e=typeof t=="number"?t:t._storage,n=ho(this._storage,e);return r._fromStorage(n)}exp(){let t=So(this._storage);return r._fromStorage(t)}exp2(){let t=No(this._storage);return r._fromStorage(t)}expm1(){let t=Do(this._storage);return r._fromStorage(t)}log(){let t=xo(this._storage);return r._fromStorage(t)}log2(){let t=wo(this._storage);return r._fromStorage(t)}log10(){let t=Io(this._storage);return r._fromStorage(t)}log1p(){let t=zo(this._storage);return r._fromStorage(t)}logaddexp(t){let e=typeof t=="number"?t:t._storage,n=_o(this._storage,e);return r._fromStorage(n)}logaddexp2(t){let e=typeof t=="number"?t:t._storage,n=Bo(this._storage,e);return r._fromStorage(n)}absolute(){let t=rn(this._storage);return r._fromStorage(t)}negative(){let t=tn(this._storage);return r._fromStorage(t)}sign(){let t=en(this._storage);return r._fromStorage(t)}around(t=0){let e=te(this._storage,t);return r._fromStorage(e)}round(t=0){return this.around(t)}ceil(){let t=ee(this._storage);return r._fromStorage(t)}fix(){let t=ne(this._storage);return r._fromStorage(t)}floor(){let t=oe(this._storage);return r._fromStorage(t)}rint(){let t=ae(this._storage);return r._fromStorage(t)}trunc(){let t=se(this._storage);return r._fromStorage(t)}sin(){let t=vo(this._storage);return r._fromStorage(t)}cos(){let t=Eo(this._storage);return r._fromStorage(t)}tan(){let t=Mo(this._storage);return r._fromStorage(t)}arcsin(){let t=Oo(this._storage);return r._fromStorage(t)}arccos(){let t=To(this._storage);return r._fromStorage(t)}arctan(){let t=Uo(this._storage);return r._fromStorage(t)}arctan2(t){let e=typeof t=="number"?t:t._storage,n=$o(this._storage,e);return r._fromStorage(n)}hypot(t){let e=typeof t=="number"?t:t._storage,n=ko(this._storage,e);return r._fromStorage(n)}degrees(){let t=Co(this._storage);return r._fromStorage(t)}radians(){let t=Fo(this._storage);return r._fromStorage(t)}sinh(){let t=Vo(this._storage);return r._fromStorage(t)}cosh(){let t=qo(this._storage);return r._fromStorage(t)}tanh(){let t=jo(this._storage);return r._fromStorage(t)}arcsinh(){let t=Po(this._storage);return r._fromStorage(t)}arccosh(){let t=Ro(this._storage);return r._fromStorage(t)}arctanh(){let t=Lo(this._storage);return r._fromStorage(t)}greater(t){let e=typeof t=="number"?t:t._storage,n=hn(this._storage,e);return r._fromStorage(n)}greater_equal(t){let e=typeof t=="number"?t:t._storage,n=Sn(this._storage,e);return r._fromStorage(n)}less(t){let e=typeof t=="number"?t:t._storage,n=Nn(this._storage,e);return r._fromStorage(n)}less_equal(t){let e=typeof t=="number"?t:t._storage,n=Dn(this._storage,e);return r._fromStorage(n)}equal(t){let e=typeof t=="number"?t:t._storage,n=xn(this._storage,e);return r._fromStorage(n)}not_equal(t){let e=typeof t=="number"?t:t._storage,n=wn(this._storage,e);return r._fromStorage(n)}isclose(t,e=1e-5,n=1e-8){let o=typeof t=="number"?t:t._storage,a=ht(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 In(this._storage,o,e,n)}bitwise_and(t){let e=typeof t=="number"?t:t._storage,n=ya(this._storage,e);return r._fromStorage(n)}bitwise_or(t){let e=typeof t=="number"?t:t._storage,n=pa(this._storage,e);return r._fromStorage(n)}bitwise_xor(t){let e=typeof t=="number"?t:t._storage,n=da(this._storage,e);return r._fromStorage(n)}bitwise_not(){let t=Zt(this._storage);return r._fromStorage(t)}invert(){let t=ga(this._storage);return r._fromStorage(t)}left_shift(t){let e=typeof t=="number"?t:t._storage,n=ba(this._storage,e);return r._fromStorage(n)}right_shift(t){let e=typeof t=="number"?t:t._storage,n=Aa(this._storage,e);return r._fromStorage(n)}logical_and(t){let e=typeof t=="number"?t:t._storage,n=Da(this._storage,e);return r._fromStorage(n)}logical_or(t){let e=typeof t=="number"?t:t._storage,n=xa(this._storage,e);return r._fromStorage(n)}logical_not(){let t=wa(this._storage);return r._fromStorage(t)}logical_xor(t){let e=typeof t=="number"?t:t._storage,n=Ia(this._storage,e);return r._fromStorage(n)}isfinite(){let t=za(this._storage);return r._fromStorage(t)}isinf(){let t=_a(this._storage);return r._fromStorage(t)}isnan(){let t=Ba(this._storage);return r._fromStorage(t)}isnat(){let t=va(this._storage);return r._fromStorage(t)}copysign(t){let e=typeof t=="number"?t:t._storage,n=Ea(this._storage,e);return r._fromStorage(n)}signbit(){let t=Ma(this._storage);return r._fromStorage(t)}nextafter(t){let e=typeof t=="number"?t:t._storage,n=Oa(this._storage,e);return r._fromStorage(n)}spacing(){let t=Ta(this._storage);return r._fromStorage(t)}sum(t,e=!1){let n=Sr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}mean(t,e=!1){let n=Vr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}max(t,e=!1){let n=qr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}min(t,e=!1){let n=jr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}prod(t,e=!1){let n=St(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}argmin(t){let e=Nt(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}argmax(t){let e=Dt(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}var(t,e=0,n=!1){let o=xt(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}std(t,e=0,n=!1){let o=_n(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}all(t,e=!1){let n=wt(this._storage,t,e);return typeof n=="boolean"?n:r._fromStorage(n)}any(t,e=!1){let n=It(this._storage,t,e);return typeof n=="boolean"?n:r._fromStorage(n)}cumsum(t){return r._fromStorage(zt(this._storage,t))}cumprod(t){return r._fromStorage(_t(this._storage,t))}ptp(t,e=!1){let n=Bt(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}median(t,e=!1){let n=vt(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}percentile(t,e,n=!1){let o=Et(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}quantile(t,e,n=!1){let o=yr(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}average(t,e){let n=Pr(this._storage,e,t?.storage);return typeof n=="number"?n:r._fromStorage(n)}nansum(t,e=!1){let n=Rr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}nanprod(t,e=!1){let n=Lr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}nanmean(t,e=!1){let n=Gr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}nanvar(t,e=0,n=!1){let o=Nr(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}nanstd(t,e=0,n=!1){let o=Mt(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}nanmin(t,e=!1){let n=Wr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}nanmax(t,e=!1){let n=Zr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}nanargmin(t){let e=Hr(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}nanargmax(t){let e=Yr(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}nancumsum(t){return r._fromStorage(Ot(this._storage,t))}nancumprod(t){return r._fromStorage(Tt(this._storage,t))}nanmedian(t,e=!1){let n=Jr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}sort(t=-1){return r._fromStorage(Ht(this._storage,t))}argsort(t=-1){return r._fromStorage(Yt(this._storage,t))}partition(t,e=-1){return r._fromStorage(Jt(this._storage,t,e))}argpartition(t,e=-1){return r._fromStorage(Xt(this._storage,t,e))}nonzero(){return et(this._storage).map(e=>r._fromStorage(e))}argwhere(){return r._fromStorage(Qt(this._storage))}searchsorted(t,e="left"){return r._fromStorage(Kt(this._storage,t._storage,e))}diff(t=1,e=-1){return r._fromStorage(ue(this._storage,t,e))}reshape(...t){let e=t.length===1&&Array.isArray(t[0])?t[0]:t,n=P(this._storage,e),a=n.data===this.data?this._base??this:void 0;return r._fromStorage(n,a)}flatten(){let t=Xr(this._storage);return r._fromStorage(t)}ravel(){let t=pr(this._storage),n=t.data===this.data?this._base??this:void 0;return r._fromStorage(t,n)}transpose(t){let e=xr(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}squeeze(t){let e=Bn(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}expand_dims(t){let e=Dr(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}swapaxes(t,e){let n=vn(this._storage,t,e),o=this._base??this;return r._fromStorage(n,o)}moveaxis(t,e){let n=Ut(this._storage,t,e),o=this._base??this;return r._fromStorage(n,o)}repeat(t,e){let n=Fn(this._storage,t,e);return r._fromStorage(n)}take(t,e){let n=Wo(this._storage,t,e);return r._fromStorage(n)}put(t,e){let n=e instanceof r?e._storage:e;Zo(this._storage,t,n)}matmul(t){let e=X(this._storage,t._storage);return r._fromStorage(e)}dot(t){let e=Ct(this._storage,t._storage);return typeof e=="number"||typeof e=="bigint"?e:r._fromStorage(e)}trace(){return Qn(this._storage)}inner(t){let e=Kn(this._storage,t._storage);return typeof e=="number"||typeof e=="bigint"?e:r._fromStorage(e)}outer(t){let e=Ft(this._storage,t._storage);return r._fromStorage(e)}tensordot(t,e=2){let n=ro(this._storage,t._storage,e);return typeof n=="number"||typeof n=="bigint"?n:r._fromStorage(n)}cbrt(){let t=an(this._storage);return r._fromStorage(t)}fabs(){let t=sn(this._storage);return r._fromStorage(t)}divmod(t){let e=typeof t=="number"?t:t._storage,[n,o]=un(this._storage,e);return[r._fromStorage(n),r._fromStorage(o)]}square(){let t=cn(this._storage);return r._fromStorage(t)}remainder(t){let e=typeof t=="number"?t:t._storage,n=ln(this._storage,e);return r._fromStorage(n)}heaviside(t){let e=typeof t=="number"?t:t._storage,n=fn(this._storage,e);return r._fromStorage(n)}slice(...t){if(t.length===0)return this;if(t.length>this.ndim)throw new Error(`Too many indices for array: array is ${this.ndim}-dimensional, but ${t.length} were indexed`);let e=t.map((s,c)=>{let l=We(s);return Ze(l,this.shape[c])});for(;e.length<this.ndim;)e.push({start:0,stop:this.shape[e.length],step:1,isIndex:!1});let n=[],o=[],a=this._storage.offset;for(let s=0;s<e.length;s++){let c=e[s],l=this._storage.strides[s];if(a+=c.start*l,!c.isIndex){let m;c.step>0?m=Math.max(0,Math.ceil((c.stop-c.start)/c.step)):m=Math.max(0,Math.ceil((c.start-c.stop)/Math.abs(c.step))),n.push(m),o.push(l*c.step)}}let i=S.fromData(this._storage.data,n,this._storage.dtype,o,a),u=this._base??this;return new r(i,u)}row(t){if(this.ndim<2)throw new Error("row() requires at least 2 dimensions");return this.slice(String(t),":")}col(t){if(this.ndim<2)throw new Error("col() requires at least 2 dimensions");return this.slice(":",String(t))}rows(t,e){if(this.ndim<2)throw new Error("rows() requires at least 2 dimensions");return this.slice(`${t}:${e}`,":")}cols(t,e){if(this.ndim<2)throw new Error("cols() requires at least 2 dimensions");return this.slice(":",`${t}:${e}`)}toString(){return`NDArray(shape=${JSON.stringify(this.shape)}, dtype=${this.dtype})`}toArray(){if(this.ndim===0)return this._storage.iget(0);let t=this.shape,e=t.length,n=(o,a)=>{if(a===e)return this._storage.get(...o);let i=[];for(let u=0;u<t[a];u++)o[a]=u,i.push(n(o,a+1));return i};return n(new Array(e),0)}};function nr(r,t=j){let e=S.zeros(r,t);return new z(e)}function fe(r,t=j){let e=S.ones(r,t);return new z(e)}function vm(r){let t=[],e=r;for(;Array.isArray(e);)t.push(e.length),e=e[0];return t}function ys(r){return typeof r=="bigint"?!0:Array.isArray(r)?r.some(t=>ys(t)):!1}function Em(r){let t=[];function e(n){Array.isArray(n)?n.forEach(o=>e(o)):t.push(n)}return e(r),t}function R(r,t){if(r instanceof z)return!t||r.dtype===t?r.copy():r.astype(t);let e=ys(r),n=vm(r),o=n.reduce((l,m)=>l*m,1),a=t;a||(e?a="int64":a=j);let i=T(a);if(!i)throw new Error(`Cannot create array with dtype ${a}`);let u=new i(o),s=Em(r);if(w(a)){let l=u;for(let m=0;m<o;m++){let f=s[m];l[m]=typeof f=="bigint"?f:BigInt(Math.round(Number(f)))}}else if(a==="bool"){let l=u;for(let m=0;m<o;m++)l[m]=s[m]?1:0}else{let l=u;for(let m=0;m<o;m++){let f=s[m];l[m]=Number(f)}}let c=S.fromData(u,n,a);return new z(c)}function ps(r,t,e=1,n=j){let o=r,a=t;if(t===void 0&&(o=0,a=r),a===void 0)throw new Error("stop is required");let i=Math.max(0,Math.ceil((a-o)/e)),u=T(n);if(!u)throw new Error(`Cannot create arange array with dtype ${n}`);let s=new u(i);if(w(n))for(let l=0;l<i;l++)s[l]=BigInt(Math.round(o+l*e));else if(n==="bool")for(let l=0;l<i;l++)s[l]=o+l*e!==0?1:0;else for(let l=0;l<i;l++)s[l]=o+l*e;let c=S.fromData(s,[i],n);return new z(c)}function ds(r,t,e=50,n=j){if(e<0)throw new Error("num must be non-negative");if(e===0)return R([],n);if(e===1)return R([r],n);let o=T(n);if(!o)throw new Error(`Cannot create linspace array with dtype ${n}`);let a=new o(e),i=(t-r)/(e-1);if(w(n))for(let s=0;s<e;s++)a[s]=BigInt(Math.round(r+s*i));else if(n==="bool")for(let s=0;s<e;s++)a[s]=r+s*i!==0?1:0;else for(let s=0;s<e;s++)a[s]=r+s*i;let u=S.fromData(a,[e],n);return new z(u)}function gs(r,t,e=50,n=10,o=j){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,r)],o);let a=T(o);if(!a)throw new Error(`Cannot create logspace array with dtype ${o}`);let i=new a(e),u=(t-r)/(e-1);if(w(o))for(let c=0;c<e;c++){let l=r+c*u;i[c]=BigInt(Math.round(Math.pow(n,l)))}else if(o==="bool")for(let c=0;c<e;c++){let l=r+c*u;i[c]=Math.pow(n,l)!==0?1:0}else for(let c=0;c<e;c++){let l=r+c*u;i[c]=Math.pow(n,l)}let s=S.fromData(i,[e],o);return new z(s)}function bs(r,t,e=50,n=j){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 R([],n);if(e===1)return R([r],n);let o=Math.sign(r),a=Math.sign(t);if(o!==a)throw new Error("Geometric sequence cannot contain both positive and negative values");let i=T(n);if(!i)throw new Error(`Cannot create geomspace array with dtype ${n}`);let u=new i(e),s=Math.log(Math.abs(r)),l=(Math.log(Math.abs(t))-s)/(e-1);if(w(n))for(let f=0;f<e;f++){let y=o*Math.exp(s+f*l);u[f]=BigInt(Math.round(y))}else if(n==="bool")for(let f=0;f<e;f++){let y=o*Math.exp(s+f*l);u[f]=y!==0?1:0}else for(let f=0;f<e;f++){let y=o*Math.exp(s+f*l);u[f]=y}let m=S.fromData(u,[e],n);return new z(m)}function me(r,t,e=0,n=j){let o=t??r,a=nr([r,o],n),i=a.data;if(w(n)){let u=i;for(let s=0;s<r;s++){let c=s+e;c>=0&&c<o&&(u[s*o+c]=BigInt(1))}}else{let u=i;for(let s=0;s<r;s++){let c=s+e;c>=0&&c<o&&(u[s*o+c]=1)}}return a}function ye(r,t=j){return nr(r,t)}function pe(r,t,e){let n=e;n||(typeof t=="bigint"?n="int64":typeof t=="boolean"?n="bool":Number.isInteger(t)?n="int32":n=j);let o=T(n);if(!o)throw new Error(`Cannot create full array with dtype ${n}`);let a=r.reduce((s,c)=>s*c,1),i=new o(a);if(w(n)){let s=typeof t=="bigint"?t:BigInt(Math.round(Number(t)));i.fill(s)}else n==="bool"?i.fill(t?1:0):i.fill(Number(t));let u=S.fromData(i,r,n);return new z(u)}function As(r,t=j){return me(r,r,0,t)}function vr(r,t){return r instanceof z?!t||r.dtype===t?r:r.astype(t):R(r,t)}function hs(r){return r.copy()}function Ss(r,t){return nr(Array.from(r.shape),t??r.dtype)}function Ns(r,t){return fe(Array.from(r.shape),t??r.dtype)}function Ds(r,t){return ye(Array.from(r.shape),t??r.dtype)}function xs(r,t,e){return pe(Array.from(r.shape),t,e??r.dtype)}function ws(r,t){return vr(r,t)}function Is(r,t){let e=vr(r,t);return e.flags.C_CONTIGUOUS?e:e.copy()}function zs(r,t){return vr(r,t).copy()}function de(r,t=0){if(r.ndim===1){let e=r.size,n=e+Math.abs(t),o=nr([n,n],r.dtype);for(let a=0;a<e;a++){let i=t>=0?a:a-t,u=t>=0?a+t:a;o.set([i,u],r.get([a]))}return o}else if(r.ndim===2){let[e,n]=r.shape,o,a,i;if(t>=0?(o=0,a=t,i=Math.min(e,n-t)):(o=-t,a=0,i=Math.min(e+t,n)),i<=0)return nr([0],r.dtype);let u=T(r.dtype),s=new u(i);for(let l=0;l<i;l++){let m=r.get([o+l,a+l]);w(r.dtype)?s[l]=typeof m=="bigint"?m:BigInt(m):s[l]=m}let c=S.fromData(s,[i],r.dtype);return new z(c)}else throw new Error("Input must be 1-D or 2-D")}function _s(r,t=0){let e=r.flatten();return de(e,t)}function Bs(r,t,e=j){let n=t.reduce((c,l)=>c*l,1),o=T(e);if(!o)throw new Error(`Cannot create array with dtype ${e}`);let a=new o(n),i=t.length,u=new Array(i).fill(0);for(let c=0;c<n;c++){let l=r(...u);w(e)?a[c]=typeof l=="bigint"?l:BigInt(Number(l)):e==="bool"?a[c]=l?1:0:a[c]=Number(l);for(let m=i-1;m>=0&&(u[m]++,!(u[m]<t[m]));m--)u[m]=0}let s=S.fromData(a,t,e);return new z(s)}function vs(...r){let t=[],e="xy";for(let u of r)u instanceof z?t.push(u):typeof u=="object"&&"indexing"in u&&(e=u.indexing||"xy");if(t.length===0)return[];if(t.length===1)return[t[0].copy()];let n=t.map(u=>u.size);e==="xy"&&t.length>=2&&(t=[t[1],t[0],...t.slice(2)],[n[0],n[1]]=[n[1],n[0]]);let o=n,a=o.length,i=[];for(let u=0;u<t.length;u++){let s=t[u],c=s.size,l=new Array(a).fill(1);l[u]=c;let m=s.reshape(...l),f=Kr(m.storage,o),y=z._fromStorage(f.copy());i.push(y)}return e==="xy"&&i.length>=2&&([i[0],i[1]]=[i[1],i[0]]),i}function Es(r,t,e=0,n=j){let o=t??r,a=nr([r,o],n);for(let i=0;i<r;i++)for(let u=0;u<=i+e&&u<o;u++)u>=0&&a.set([i,u],1);return a}function Ms(r,t=0){if(r.ndim<2)throw new Error("Input must have at least 2 dimensions");let e=r.copy(),n=e.shape,o=n[n.length-2],a=n[n.length-1],i=n.slice(0,-2).reduce((u,s)=>u*s,1);for(let u=0;u<i;u++)for(let s=0;s<o;s++)for(let c=0;c<a;c++)if(c>s+t){let l=[],m=u;for(let f=n.length-3;f>=0;f--)l.unshift(m%n[f]),m=Math.floor(m/n[f]);l.push(s,c),e.set(l,0)}return e}function Os(r,t=0){if(r.ndim<2)throw new Error("Input must have at least 2 dimensions");let e=r.copy(),n=e.shape,o=n[n.length-2],a=n[n.length-1],i=n.slice(0,-2).reduce((u,s)=>u*s,1);for(let u=0;u<i;u++)for(let s=0;s<o;s++)for(let c=0;c<a;c++)if(c<s+t){let l=[],m=u;for(let f=n.length-3;f>=0;f--)l.unshift(m%n[f]),m=Math.floor(m/n[f]);l.push(s,c),e.set(l,0)}return e}function Ts(r,t,e=!1){if(r.ndim!==1)throw new Error("Input must be 1-D");let n=r.size,o=t??n;if(o<0)throw new Error("N must be non-negative");let a=nr([n,o],r.dtype);for(let i=0;i<n;i++){let u=r.get([i]);for(let s=0;s<o;s++){let c=e?s:o-1-s;a.set([i,s],Math.pow(u,c))}}return a}function Us(r,t=j,e=-1,n=0){let o,a=n;r instanceof ArrayBuffer?o=r:(o=r.buffer,a+=r.byteOffset);let i=Mm(t),u=o.byteLength-a,s=Math.floor(u/i),c=e<0?s:Math.min(e,s);if(c<=0)return R([],t);let l=T(t);if(!l)throw new Error(`Unsupported dtype: ${t}`);let m=new l(o,a,c),f=S.fromData(m,[c],t);return new z(f)}function $s(r,t=j,e=-1){let n=[],o=0;for(let a of r){if(e>=0&&o>=e)break;n.push(a),o++}return R(n,t)}function ks(r,t=j,e=-1){let n=[],o=0;for(let a of r){if(e>=0&&o>=e)break;n.push(a),o++}return R(n,t)}function Cs(r,t=j,e=-1,n=""){let o;n===""?o=r.trim().split(/\s+/):o=r.split(n);let a=[],i=0;for(let u of o){if(e>=0&&i>=e)break;let s=u.trim();s!==""&&(w(t)?a.push(BigInt(s)):a.push(parseFloat(s)),i++)}return R(a,t)}function Mm(r){switch(r){case"int8":case"uint8":case"bool":return 1;case"int16":case"uint16":return 2;case"int32":case"uint32":case"float32":return 4;case"int64":case"uint64":case"float64":return 8;default:return 8}}function Fs(r){return r.sqrt()}function ge(r,t){return r.power(t)}function Vs(r){return r.exp()}function qs(r){return r.exp2()}function js(r){return r.expm1()}function Ps(r){return r.log()}function Rs(r){return r.log2()}function Ls(r){return r.log10()}function Gs(r){return r.log1p()}function Ws(r,t){return r.logaddexp(t)}function Zs(r,t){return r.logaddexp2(t)}function be(r){return r.absolute()}function Hs(r){return r.negative()}function Ys(r){return r.sign()}function Js(r,t){return r.mod(t)}function Ae(r,t){return r.divide(t)}function Xs(r,t){return r.floor_divide(t)}function Qs(r){return r.positive()}function Ks(r){return r.reciprocal()}function ri(r,t){return r.dot(t)}function ti(r){return r.trace()}function ei(r,t=0,e=0,n=1){let o=to(r.storage,t,e,n);return z._fromStorage(o)}function ni(r,t){let e=no(r.storage,t.storage);return z._fromStorage(e)}function oi(r,t){return r.transpose(t)}function ai(r,t){return r.inner(t)}function si(r,t){return r.outer(t)}function ii(r,t,e=2){return r.tensordot(t,e)}function ui(r){return r.sin()}function ci(r){return r.cos()}function li(r){return r.tan()}function he(r){return r.arcsin()}function Se(r){return r.arccos()}function Ne(r){return r.arctan()}function De(r,t){return r.arctan2(t)}function fi(r,t){return r.hypot(t)}function mi(r){return r.degrees()}function yi(r){return r.radians()}function pi(r){return r.radians()}function di(r){return r.degrees()}function gi(r){return r.sinh()}function bi(r){return r.cosh()}function Ai(r){return r.tanh()}function xe(r){return r.arcsinh()}function we(r){return r.arccosh()}function Ie(r){return r.arctanh()}function hi(r,t,e){return r.swapaxes(t,e)}function Si(r,t,e){return r.moveaxis(t,e)}function lr(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=ur(e,t);return z._fromStorage(n)}function Ni(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=En(e,t);return z._fromStorage(n)}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=Mn(t);return z._fromStorage(e)}function Di(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=$t(t);return z._fromStorage(e)}function xi(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=On(t);return z._fromStorage(e)}function wi(r,t,e=0){return Tn(r.storage,t,e).map(o=>z._fromStorage(o,r.base??r))}function Ii(r,t,e=0){return wr(r.storage,t,e).map(o=>z._fromStorage(o,r.base??r))}function zi(r,t){return $n(r.storage,t).map(n=>z._fromStorage(n,r.base??r))}function _i(r,t){return kn(r.storage,t).map(n=>z._fromStorage(n,r.base??r))}function Bi(r,t){let e=Cn(r.storage,t);return z._fromStorage(e)}function vi(r,t,e){return r.repeat(t,e)}function Ei(r){return r.ravel()}function Mi(r,t){return r.reshape(...t)}function Oi(r,t){return r.squeeze(t)}function Ti(r,t){return r.expand_dims(t)}function nt(r,t){let e=Vn(r.storage,t);return z._fromStorage(e)}function Ui(r){if(r.ndim<2)throw new Error("Input must be at least 2-D");return nt(r,1)}function $i(r){if(r.ndim<2)throw new Error("Input must be at least 2-D");return nt(r,0)}function ki(r,t=1,e=[0,1]){let n=qn(r.storage,t,e);return z._fromStorage(n)}function Ci(r,t,e){let n=jn(r.storage,t,e);return z._fromStorage(n)}function Fi(r,t,e=0){let n=Pn(r.storage,t,e);return z._fromStorage(n,r.base??r)}function Vi(...r){let t=r.map(o=>o.storage),n=Wn(t).map((o,a)=>o===t[a]?r[a]:z._fromStorage(o));return n.length===1?n[0]:n}function qi(...r){let t=r.map(o=>o.storage),n=Zn(t).map((o,a)=>o===t[a]?r[a]:z._fromStorage(o));return n.length===1?n[0]:n}function ji(...r){let t=r.map(o=>o.storage),n=Hn(t).map((o,a)=>o===t[a]?r[a]:z._fromStorage(o));return n.length===1?n[0]:n}function Pi(r,t){return Rn(r.storage,t).map(n=>z._fromStorage(n,r.base??r))}function Ri(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=Ln(t);return z._fromStorage(e)}function Li(r){return ze(r)}function Gi(r,t){let e=Gn(r.storage,t);return z._fromStorage(e)}function Wi(r,t,e){let n=t instanceof z?t:R(t,r.dtype);if(e===void 0){let o=r.flatten(),a=n.flatten();return lr([o,a])}return lr([r,n],e)}function Zi(r,t,e){let n=r.dtype;if(e===void 0){let y=r.flatten(),d=(Array.isArray(t)?t:[t]).map(N=>N<0?y.size+N:N),g=[];for(let N=0;N<y.size;N++)d.includes(N)||g.push(N);let h=T(n),A=new h(g.length);for(let N=0;N<g.length;N++){let D=y.get([g[N]]);w(n)?A[N]=typeof D=="bigint"?D:BigInt(D):A[N]=D}let b=S.fromData(A,[g.length],n);return new z(b)}let o=r.shape,a=o.length,i=e<0?a+e:e;if(i<0||i>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);let u=o[i],s=Array.isArray(t)?t:[t],c=new Set(s.map(y=>y<0?u+y:y)),l=[],m=0;for(let y=0;y<=u;y++)(c.has(y)||y===u)&&(y>m&&l.push([m,y]),m=y+1);if(l.length===0){let y=[...o];return y[i]=0,nr(y,n)}let f=[];for(let[y,p]of l){let d=o.map(()=>":");d[i]=`${y}:${p}`,f.push(r.slice(...d))}return lr(f,i)}function Hi(r,t,e,n){let o=e instanceof z?e:R(e,r.dtype);if(n===void 0){let m=r.flatten(),f=o.flatten(),y=t<0?m.size+t:t;if(y<0||y>m.size)throw new Error(`index ${t} is out of bounds for array of size ${m.size}`);let p=y>0?m.slice(`0:${y}`):null,d=y<m.size?m.slice(`${y}:`):null,g=[];return p&&g.push(p),g.push(f),d&&g.push(d),lr(g)}let a=r.shape,i=a.length,u=n<0?i+n:n;if(u<0||u>=i)throw new Error(`axis ${n} is out of bounds for array of dimension ${i}`);let s=a[u],c=t<0?s+t:t;if(c<0||c>s)throw new Error(`index ${t} is out of bounds for axis ${n} with size ${s}`);let l=[];if(c>0){let m=a.map(()=>":");m[u]=`0:${c}`,l.push(r.slice(...m))}if(l.push(o),c<s){let m=a.map(()=>":");m[u]=`${c}:`,l.push(r.slice(...m))}return lr(l,u)}function Yi(r,t,e="constant",n=0){let o=r.shape,a=o.length,i=r.dtype,u;if(typeof t=="number"?u=o.map(()=>[t,t]):Array.isArray(t)&&typeof t[0]=="number"?u=o.map(()=>t):u=t,u.length!==a)throw new Error(`pad_width must have ${a} elements`);let s=o.map((d,g)=>d+u[g][0]+u[g][1]),c=s.reduce((d,g)=>d*g,1),l=T(i),m=new l(c),f=w(i);e==="constant"&&(f?m.fill(BigInt(n)):m.fill(n));let y=new Array(a).fill(0);for(let d=0;d<c;d++){let g=!0,h=[];for(let b=0;b<a;b++){let[N]=u[b],D=y[b]-N;if(D<0||D>=o[b]){g=!1;break}h.push(D)}let A;if(g)A=r.get(h);else if(e==="constant"){for(let b=a-1;b>=0&&(y[b]++,!(y[b]<s[b]));b--)y[b]=0;continue}else{let b=[];for(let N=0;N<a;N++){let[D]=u[N],x=y[N]-D,I=o[N];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=r.get(b)}f?m[d]=typeof A=="bigint"?A:BigInt(Number(A)):m[d]=Number(A);for(let b=a-1;b>=0&&(y[b]++,!(y[b]<s[b]));b--)y[b]=0}let p=S.fromData(m,s,i);return new z(p)}function Ji(r,t){let e=Kr(r.storage,t);return z._fromStorage(e,r.base??r)}function Xi(...r){let t=r.map(n=>n.storage);return Go(t).map((n,o)=>z._fromStorage(n,r[o].base??r[o]))}function Qi(...r){return gt(...r)}function Ki(r,t,e){return r.take(t,e)}function ru(r,t,e){r.put(t,e)}function tu(r,t,e){if(e!==void 0)throw new Error("copyto with where parameter is not yet implemented");let n=r.storage,o=r.shape,a=r.size,i=r.dtype;if(typeof t=="number"||typeof t=="bigint"){r.fill(t);return}let u=t.storage,s=t.shape,c=tr([s,o]);if(!c)throw new Error(`could not broadcast input array from shape (${s.join(",")}) into shape (${o.join(",")})`);if(c.length!==o.length||!c.every((m,f)=>m===o[f]))throw new Error(`could not broadcast input array from shape (${s.join(",")}) into shape (${o.join(",")})`);let l=Kr(u,o);if(w(i))for(let m=0;m<a;m++){let f=l.iget(m),y=typeof f=="bigint"?f:BigInt(Math.round(Number(f)));n.iset(m,y)}else if(i==="bool")for(let m=0;m<a;m++){let f=l.iget(m);n.iset(m,f?1:0)}else for(let m=0;m<a;m++){let f=l.iget(m);n.iset(m,Number(f))}}function eu(r,t){let e=t.map(o=>o.storage),n=Ho(r.storage,e);return z._fromStorage(n)}function nu(r,t,e=!1){return Yo(r.storage,t.storage,e)}function ou(r,t){return zn(r.storage,t.storage)}function _e(r,t){return z._fromStorage(zt(r.storage,t))}function Be(r,t){return z._fromStorage(_t(r.storage,t))}function ve(r,t,e=!1){return r.max(t,e)}function Ee(r,t,e=!1){return r.min(t,e)}function au(r,t,e=!1){let n=Bt(r.storage,t,e);return typeof n=="number"?n:z._fromStorage(n)}function su(r,t,e=!1){let n=vt(r.storage,t,e);return typeof n=="number"?n:z._fromStorage(n)}function iu(r,t,e,n=!1){let o=Et(r.storage,t,e,n);return typeof o=="number"?o:z._fromStorage(o)}function uu(r,t,e,n=!1){let o=yr(r.storage,t,e,n);return typeof o=="number"?o:z._fromStorage(o)}function cu(r,t,e,n=!1){let o=e?e.storage:void 0,a=Pr(r.storage,t,o,n);return typeof a=="number"?a:z._fromStorage(a)}function lu(r,t,e=!1){let n=Rr(r.storage,t,e);return typeof n=="number"?n:z._fromStorage(n)}function fu(r,t,e=!1){let n=Lr(r.storage,t,e);return typeof n=="number"?n:z._fromStorage(n)}function mu(r,t,e=!1){let n=Gr(r.storage,t,e);return typeof n=="number"?n:z._fromStorage(n)}function yu(r,t,e=0,n=!1){let o=Nr(r.storage,t,e,n);return typeof o=="number"?o:z._fromStorage(o)}function pu(r,t,e=0,n=!1){let o=Mt(r.storage,t,e,n);return typeof o=="number"?o:z._fromStorage(o)}function du(r,t,e=!1){let n=Wr(r.storage,t,e);return typeof n=="number"?n:z._fromStorage(n)}function gu(r,t,e=!1){let n=Zr(r.storage,t,e);return typeof n=="number"?n:z._fromStorage(n)}function bu(r,t){let e=Hr(r.storage,t);return typeof e=="number"?e:z._fromStorage(e)}function Au(r,t){let e=Yr(r.storage,t);return typeof e=="number"?e:z._fromStorage(e)}function hu(r,t){return z._fromStorage(Ot(r.storage,t))}function Su(r,t){return z._fromStorage(Tt(r.storage,t))}function Nu(r,t,e=!1){let n=Jr(r.storage,t,e);return typeof n=="number"?n:z._fromStorage(n)}function Du(r){return r.cbrt()}function xu(r){return r.fabs()}function wu(r,t){return r.divmod(t)}function Iu(r){return r.square()}function zu(r,t){return r.remainder(t)}function _u(r,t){return r.heaviside(t)}function Bu(r,t){let e=typeof t=="number"?t:t.storage;return z._fromStorage(mn(r.storage,e))}function vu(r,t){let e=typeof t=="number"?t:t.storage;return z._fromStorage(yn(r.storage,e))}function Eu(r){let[t,e]=pn(r.storage);return[z._fromStorage(t),z._fromStorage(e)]}function Mu(r,t){let e=typeof t=="number"?t:t.storage;return z._fromStorage(dn(r.storage,e))}function Ou(r,t){let e=typeof t=="number"?t:t.storage;return z._fromStorage(gn(r.storage,e))}function Tu(r,t){let e=typeof t=="number"?t:t.storage;return z._fromStorage(bn(r.storage,e))}function Uu(r){let[t,e]=An(r.storage);return[z._fromStorage(t),z._fromStorage(e)]}function $u(r,t){return r.bitwise_and(t)}function ku(r,t){return r.bitwise_or(t)}function Cu(r,t){return r.bitwise_xor(t)}function Fu(r){return r.bitwise_not()}function Vu(r){return r.invert()}function qu(r,t){return r.left_shift(t)}function ju(r,t){return r.right_shift(t)}function Pu(r,t=-1,e="big"){let n=ha(r.storage,t,e);return z._fromStorage(n)}function Ru(r,t=-1,e=-1,n="big"){let o=Sa(r.storage,t,e,n);return z._fromStorage(o)}function Lu(r,t){return r.logical_and(t)}function Gu(r,t){return r.logical_or(t)}function Wu(r){return r.logical_not()}function Zu(r,t){return r.logical_xor(t)}function Hu(r){return r.isfinite()}function Yu(r){return r.isinf()}function Ju(r){return r.isnan()}function Xu(r){return r.isnat()}function Qu(r,t){return r.copysign(t)}function Ku(r){return r.signbit()}function rc(r,t){return r.nextafter(t)}function tc(r){return r.spacing()}function ec(r){return z._fromStorage(Ua(r.storage))}function nc(r){return $a(r.storage)}function oc(r){return z._fromStorage(ka(r.storage))}function ac(r){return Ca(r.storage)}function sc(r){return z._fromStorage(Fa(r.storage))}function ic(r){return z._fromStorage(Va(r.storage))}function uc(r){return qa(r.storage)}function cc(r,t=100){return z._fromStorage(ja(r.storage,t))}function lc(r){return Pa(r)}function fc(r){return Ra(r)}function mc(r,t){return La(r,t)}function yc(r,t){return Ga(r,t)}function pc(r,...t){let e=t.map(o=>o.storage),n=eo(r,...e);return typeof n=="number"||typeof n=="bigint"?n:z._fromStorage(n)}var dc={cross:(r,t,e=-1,n=-1,o=-1,a)=>{let i=oo(r.storage,t.storage,e,n,o,a);return typeof i=="number"?i:z._fromStorage(i)},norm:(r,t=null,e=null,n=!1)=>{let o=ao(r.storage,t,e,n);return typeof o=="number"?o:z._fromStorage(o)},vector_norm:(r,t=2,e,n=!1)=>{let o=dr(r.storage,t,e,n);return typeof o=="number"?o:z._fromStorage(o)},matrix_norm:(r,t="fro",e=!1)=>{let n=cr(r.storage,t,e);return typeof n=="number"?n:z._fromStorage(n)},qr:(r,t="reduced")=>{let e=Vt(r.storage,t);return e instanceof S?z._fromStorage(e):"q"in e&&"r"in e?{q:z._fromStorage(e.q),r:z._fromStorage(e.r)}:{h:z._fromStorage(e.h),tau:z._fromStorage(e.tau)}},cholesky:(r,t=!1)=>z._fromStorage(so(r.storage,t)),svd:(r,t=!0,e=!0)=>{let n=io(r.storage,t,e);return"u"in n?{u:z._fromStorage(n.u),s:z._fromStorage(n.s),vt:z._fromStorage(n.vt)}:z._fromStorage(n)},det:r=>uo(r.storage),inv:r=>z._fromStorage(Qr(r.storage)),solve:(r,t)=>z._fromStorage(co(r.storage,t.storage)),lstsq:(r,t,e=null)=>{let n=lo(r.storage,t.storage,e);return{x:z._fromStorage(n.x),residuals:z._fromStorage(n.residuals),rank:n.rank,s:z._fromStorage(n.s)}},cond:(r,t=2)=>fo(r.storage,t),matrix_rank:(r,t)=>mo(r.storage,t),matrix_power:(r,t)=>z._fromStorage(yo(r.storage,t)),pinv:(r,t=1e-15)=>z._fromStorage(po(r.storage,t)),eig:r=>{let t=Pt(r.storage);return{w:z._fromStorage(t.w),v:z._fromStorage(t.v)}},eigh:(r,t="L")=>{let e=Rt(r.storage,t);return{w:z._fromStorage(e.w),v:z._fromStorage(e.v)}},eigvals:r=>z._fromStorage(go(r.storage)),eigvalsh:(r,t="L")=>z._fromStorage(bo(r.storage,t))};function gc(r,t,e){return z._fromStorage(Jo(r.storage,t.storage,e))}function bc(r,t,e,n){Xo(r.storage,t.storage,e.storage,n)}function Ac(r,t,e){let n=e instanceof z?e.storage:e;Qo(r.storage,t.storage,n)}function hc(r,t,e){return z._fromStorage(Ko(r.storage,t.storage,e))}function Sc(r,t,e=0){let n=r.map(a=>a.storage),o=t.map(a=>a.storage);return z._fromStorage(ra(n,o,e))}function Nc(r,t,e){ta(r.storage,t.storage,e.storage)}function Dc(r,t,e=!1){let n=typeof t=="number"?t:t.storage;la(r.storage,n,e)}function xc(r,t=2){return Lt(r,t).map(n=>z._fromStorage(n))}function wc(r){return ea(r.storage).map(e=>z._fromStorage(e))}function Ic(r,t=0,e){return Gt(r,t,e).map(o=>z._fromStorage(o))}function zc(r,t=0){return na(r.storage,t).map(n=>z._fromStorage(n))}function _c(r,t=0,e){return Wt(r,t,e).map(o=>z._fromStorage(o))}function Bc(r,t=0){return oa(r.storage,t).map(n=>z._fromStorage(n))}function vc(r,t,e=0){return aa(r,(a,i)=>t(a,i).storage,e).map(a=>z._fromStorage(a))}function Ec(r,t="int32"){return z._fromStorage(sa(r,t))}function Mc(...r){return ia(...r.map(e=>e.storage)).map(e=>z._fromStorage(e))}function Oc(r,t,e="raise"){let n=r.map(o=>o.storage);return z._fromStorage(ua(n,t,e))}function Tc(r,t,e="C"){let n=r instanceof z?r.storage:r;return ca(n,t,e).map(a=>z._fromStorage(a))}function Uc(r,t=-1){return z._fromStorage(Ht(r.storage,t))}function $c(r,t=-1){return z._fromStorage(Yt(r.storage,t))}function kc(r){let t=r.map(e=>e.storage);return z._fromStorage(Wa(t))}function Cc(r,t,e=-1){return z._fromStorage(Jt(r.storage,t,e))}function Fc(r,t,e=-1){return z._fromStorage(Xt(r.storage,t,e))}function Vc(r){return z._fromStorage(Za(r.storage))}function qc(r){return et(r.storage).map(e=>z._fromStorage(e))}function jc(r){return z._fromStorage(Qt(r.storage))}function Pc(r){return z._fromStorage(Ha(r.storage))}function Rc(r,t,e){let n=Ya(r.storage,t?.storage,e?.storage);return Array.isArray(n)?n.map(o=>z._fromStorage(o)):z._fromStorage(n)}function Lc(r,t,e="left"){return z._fromStorage(Kt(r.storage,t.storage,e))}function Gc(r,t){return z._fromStorage(Ja(r.storage,t.storage))}function Wc(r,t){let e=re(r.storage,t);return typeof e=="number"?e:z._fromStorage(e)}function ot(r,t=0){return z._fromStorage(te(r.storage,t))}function Zc(r){return z._fromStorage(ee(r.storage))}function Hc(r){return z._fromStorage(ne(r.storage))}function Yc(r){return z._fromStorage(oe(r.storage))}function Jc(r){return z._fromStorage(ae(r.storage))}function Xc(r){return z._fromStorage(se(r.storage))}function Qc(r,t=!1,e=!1,n=!1){let o=ar(r.storage,t,e,n);if(o instanceof S)return z._fromStorage(o);let a={values:z._fromStorage(o.values)};return o.indices&&(a.indices=z._fromStorage(o.indices)),o.inverse&&(a.inverse=z._fromStorage(o.inverse)),o.counts&&(a.counts=z._fromStorage(o.counts)),a}function Kc(r,t){return z._fromStorage(Qa(r.storage,t.storage))}function rl(r,t){return z._fromStorage(Ka(r.storage,t.storage))}function tl(r,t){return z._fromStorage(ie(r.storage,t.storage))}function el(r,t){return z._fromStorage(rs(r.storage,t.storage))}function nl(r,t){return z._fromStorage(ts(r.storage,t.storage))}function ol(r,t){return z._fromStorage(es(r.storage,t.storage))}function al(r,t=1,e=-1){return z._fromStorage(ue(r.storage,t,e))}function sl(r,t=null,e=null){return z._fromStorage(ns(r.storage,t,e))}function il(r,t=1,e=null){let n=os(r.storage,t,e);return Array.isArray(n)?n.map(o=>z._fromStorage(o)):z._fromStorage(n)}function ul(r,t,e=-1,n=-1,o=-1){return z._fromStorage(as(r.storage,t.storage,e,n,o))}function cl(r,t,e=0){return z._fromStorage(ss(r.storage,t?.storage,e))}function ll(r,t,e=!1){return z._fromStorage(is(r.storage,t.storage,e))}function fl(r,t=10,e,n=!1,o){let a=us(r.storage,typeof t=="number"?t:t.storage,e,n,o?.storage);return[z._fromStorage(a.hist),z._fromStorage(a.bin_edges)]}function ml(r,t,e=10,n,o=!1,a){let i;typeof e=="number"?i=e:Array.isArray(e)&&e.length===2?typeof e[0]=="number"?i=e:i=[e[0].storage,e[1].storage]:i=10;let u=cs(r.storage,t.storage,i,n,o,a?.storage);return[z._fromStorage(u.hist),z._fromStorage(u.x_edges),z._fromStorage(u.y_edges)]}function yl(r,t=10,e,n=!1,o){let a=ls(r.storage,t,e,n,o?.storage);return[z._fromStorage(a.hist),a.edges.map(i=>z._fromStorage(i))]}function pl(r,t,e="full"){return z._fromStorage(ce(r.storage,t.storage,e))}function dl(r,t,e="full"){return z._fromStorage(fs(r.storage,t.storage,e))}function gl(r,t,e=!0,n=!1,o){return z._fromStorage(le(r.storage,t?.storage,e,n,o))}function bl(r,t,e=!0){return z._fromStorage(ms(r.storage,t?.storage,e))}var Er=new Uint8Array([147,78,85,77,80,89]),at=["float64","float32","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"];function Me(){let r=new ArrayBuffer(2);return new DataView(r).setInt16(0,256,!0),new Int16Array(r)[0]===256}var Om={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"},Al={c:"complex numbers",S:"byte strings",U:"Unicode strings",O:"Python objects",V:"structured arrays (void)",M:"datetime64",m:"timedelta64"};function hl(r){if(r.startsWith("[")||r.startsWith("("))throw new or(`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 Al)throw new or(`Unsupported dtype: ${Al[n]} (${r}). Use the 'force' parameter to skip arrays with unsupported dtypes.`);let o=Om[e];if(!o)throw new or(`Unknown or unsupported dtype descriptor: ${r}. Supported types: ${at.join(", ")}. Use the 'force' parameter to skip arrays with unsupported dtypes.`);let a=Me(),i=t==="<"||t==="|"||t==="="&&a,u=t===">"||t==="="&&!a,s=parseInt(e.slice(1),10),c=s>1&&(u&&a||i&&!a);return{dtype:o,needsByteSwap:c,itemsize:s}}var or=class extends Error{constructor(t){super(t),this.name="UnsupportedDTypeError"}},W=class extends Error{constructor(t){super(t),this.name="InvalidNpyError"}};function Or(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=st(t);return it(t,e)}function st(r){if(r.length<10)throw new W("File too small to be a valid NPY file");for(let c=0;c<Er.length;c++)if(r[c]!==Er[c])throw new W("Invalid NPY magic number");let t=r[6],e=r[7];if(t!==1&&t!==2&&t!==3)throw new W(`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 W("File truncated: header extends beyond file");let i=r.slice(o,a),u=new TextDecoder("utf-8").decode(i).trim(),s=Tm(u);return{version:{major:t,minor:e},header:s,dataOffset:a}}function it(r,t){let{header:e,dataOffset:n}=t,{dtype:o,needsByteSwap:a,itemsize:i}=hl(e.descr),u=e.shape.reduce((d,g)=>d*g,1),s=u*i,c=r.length-n;if(c<s)throw new W(`File truncated: expected ${s} bytes of data, got ${c}`);let l=new ArrayBuffer(s);new Uint8Array(l).set(r.subarray(n,n+s));let f=Um(l,o,u,a,i),y=e.shape,p;if(e.fortran_order&&y.length>1){let d=[...y].reverse(),g=S.fromData(f,d,o);p=$m(g,d),y=e.shape}else p=S.fromData(f,[...y],o);return new z(p)}function Tm(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 W(`Failed to parse NPY header: ${r}`);let o=t[1],a=e[1]==="True",i=n[1].trim(),u;return i===""?u=[]:u=i.split(",").map(s=>s.trim()).filter(s=>s!=="").map(s=>{let c=parseInt(s,10);if(isNaN(c))throw new W(`Invalid shape value: ${s}`);return c}),{descr:o,fortran_order:a,shape:u}}function Um(r,t,e,n,o){let a=T(t);if(!a)throw new W(`Cannot create array for dtype: ${t}`);if(!n)return new a(r,0,e);let i=new Uint8Array(r),u=new Uint8Array(r.byteLength);for(let s=0;s<e;s++){let c=s*o;for(let l=0;l<o;l++)u[c+l]=i[c+o-1-l]}return new a(u.buffer,0,e)}function $m(r,t){let e=t.length,n=r.size,o=r.dtype,a=T(o);if(!a)throw new W(`Cannot create array for dtype: ${o}`);let i=new a(n),u=[...t].reverse(),s=Sl(t),c=Sl(u),l=new Array(e).fill(0);for(let m=0;m<n;m++){let f=m;for(let p=0;p<e;p++){let d=s[p];l[p]=Math.floor(f/d),f=f%d}let y=0;for(let p=0;p<e;p++)y+=l[e-1-p]*c[p];w(o),i[y]=r.iget(m)}return S.fromData(i,u,o)}function Sl(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 br(r){let t=r.shape,e=r.dtype,n=Mr[e],o=t.length===0?"()":t.length===1?`(${t[0]},)`:`(${t.join(", ")})`,a=`{'descr': '${n}', 'fortran_order': False, 'shape': ${o}, }`,i=12,s=(64-(i+a.length+1)%64)%64;a=a+" ".repeat(s)+`
|
|
2
|
+
`;let c=new TextEncoder().encode(a),l=c.length,m=r.size,f=kr(e),y=m*f,p=i+l+y,d=new Uint8Array(p);d.set(Er,0),d[6]=3,d[7]=0,d[8]=l&255,d[9]=l>>8&255,d[10]=l>>16&255,d[11]=l>>24&255,d.set(c,i);let g=i+l;return km(r,d.subarray(g),f),d}function km(r,t,e){let n=r.dtype,o=r.size,a=Me(),i=w(n),u=r._storage;if(u.isCContiguous&&u.offset===0&&a){let c=u.data,l=new Uint8Array(c.buffer,c.byteOffset,o*e);t.set(l)}else{let c=new DataView(t.buffer,t.byteOffset,t.byteLength);for(let l=0;l<o;l++){let m=u.iget(l),f=l*e;i?Cm(c,f,m,n==="uint64"):Fm(c,f,m,n)}}}function Cm(r,t,e,n){n?r.setBigUint64(t,e,!0):r.setBigInt64(t,e,!0)}function Fm(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 Vm=(()=>{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 Oe(r){let t=4294967295;for(let e=0;e<r.length;e++)t=Vm[(t^r[e])&255]^t>>>8;return(t^4294967295)>>>0}async function Nl(r){let t=xl(r),e=new Map;for(let n of t){let o=await qm(n);e.set(n.name,o)}return e}function Dl(r){let t=xl(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 xl(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=new DataView(t.buffer,t.byteOffset,t.byteLength),n=[],o=-1;for(let c=t.length-22;c>=0;c--)if(e.getUint32(c,!0)===101010256){o=c;break}if(o===-1)throw new Error("Invalid ZIP file: end of central directory not found");let a=e.getUint32(o+16,!0),i=e.getUint16(o+10,!0),u=[],s=a;for(let c=0;c<i&&e.getUint32(s,!0)===33639248;c++){let m=e.getUint16(s+10,!0),f=e.getUint32(s+16,!0),y=e.getUint32(s+20,!0),p=e.getUint32(s+24,!0),d=e.getUint16(s+28,!0),g=e.getUint16(s+30,!0),h=e.getUint16(s+32,!0),A=e.getUint32(s+42,!0),b=t.slice(s+46,s+46+d),N=new TextDecoder("utf-8").decode(b);u.push({name:N,compressionMethod:m,crc32:f,compressedSize:y,uncompressedSize:p,localHeaderOffset:A}),s=s+46+d+g+h}for(let c of u){let l=c.localHeaderOffset;if(e.getUint32(l,!0)!==67324752)throw new Error(`Invalid local file header at offset ${l}`);let f=e.getUint16(l+26,!0),y=e.getUint16(l+28,!0),p=l+30+f+y,d=t.slice(p,p+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 qm(r){if(r.compressionMethod===0)return r.compressedData;if(r.compressionMethod===8)return await jm(r.compressedData);throw new Error(`Unsupported compression method: ${r.compressionMethod}`)}async function jm(r){if(typeof DecompressionStream>"u")throw new Error("DecompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let t=new DecompressionStream("deflate-raw"),e=new Uint8Array(r.length);e.set(r);let n=t.writable.getWriter();n.write(e),n.close();let o=t.readable.getReader(),a=[];for(;;){let{done:c,value:l}=await o.read();if(c)break;a.push(l)}let i=a.reduce((c,l)=>c+l.length,0),u=new Uint8Array(i),s=0;for(let c of a)u.set(c,s),s+=c.length;return u}async function ut(r,t={}){let e=t.force??!1,n=await Nl(r);return wl(n,e)}function ct(r,t={}){let e=t.force??!1,n=Dl(r);return wl(n,e)}function wl(r,t){let e=new Map,n=[],o=new Map;for(let[a,i]of r){if(!a.endsWith(".npy"))continue;let u=a.slice(0,-4);try{let s=Or(i);e.set(u,s)}catch(s){if(s instanceof or&&t)n.push(u),o.set(u,s.message);else throw s}}return{arrays:e,skipped:n,errors:o}}async function $e(r,t={}){let e=await ut(r,t);return Object.fromEntries(e.arrays)}function ke(r,t={}){let e=ct(r,t);return Object.fromEntries(e.arrays)}async function Il(r,t={}){let e=t.compress??!1,n=[];for(let[f,y]of r){let p=Oe(y),d,g;e?(d=await Rm(y),d.length<y.length?g=8:(d=y,g=0)):(d=y,g=0),n.push({name:f,data:y,compressedData:d,crc:p,compressionMethod:g,offset:0})}let o=0;for(let f of n){let y=new TextEncoder().encode(f.name);o+=30+y.length+f.compressedData.length}let a=0;for(let f of n){let y=new TextEncoder().encode(f.name);a+=46+y.length}let u=o+a+22,s=new Uint8Array(u),c=new DataView(s.buffer),l=0;for(let f of n)f.offset=l,l=_l(s,c,l,f);let m=l;for(let f of n)l=Bl(s,c,l,f);return vl(c,l,n.length,a,m),s}function zl(r){let t=[];for(let[l,m]of r){let f=Oe(m);t.push({name:l,data:m,compressedData:m,crc:f,compressionMethod:0,offset:0})}let e=0;for(let l of t){let m=new TextEncoder().encode(l.name);e+=30+m.length+l.compressedData.length}let n=0;for(let l of t){let m=new TextEncoder().encode(l.name);n+=46+m.length}let a=e+n+22,i=new Uint8Array(a),u=new DataView(i.buffer),s=0;for(let l of t)l.offset=s,s=_l(i,u,s,l);let c=s;for(let l of t)s=Bl(i,u,s,l);return vl(u,s,t.length,n,c),i}function _l(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 Bl(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 vl(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 Rm(r){if(typeof CompressionStream>"u")throw new Error("CompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let t=new CompressionStream("deflate-raw"),e=new Uint8Array(r.length);e.set(r);let n=t.writable.getWriter();n.write(e),n.close();let o=t.readable.getReader(),a=[];for(;;){let{done:c,value:l}=await o.read();if(c)break;a.push(l)}let i=a.reduce((c,l)=>c+l.length,0),u=new Uint8Array(i),s=0;for(let c of a)u.set(c,s),s+=c.length;return u}async function Ce(r,t={}){let e=El(r);return Il(e,{compress:t.compress??!1})}function Fe(r){let t=El(r);return zl(t)}function El(r){let t=new Map;if(Array.isArray(r)){for(let n=0;n<r.length;n++){let o=r[n],a=br(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=br(o),i=n.endsWith(".npy")?n:`${n}.npy`;t.set(i,a)}return t}var K=624,lt=397,Hm=2567483615,Ve=2147483648,qe=2147483647,rr={mt:new Uint32Array(K),mti:K+1};function Tl(r){let t=rr.mt;t[0]=r>>>0;for(let e=1;e<K;e++){let n=t[e-1]^t[e-1]>>>30;t[e]=Math.imul(1812433253,n)+e>>>0}rr.mti=K}function Ml(){let r=rr.mt,t,e=[0,Hm];if(rr.mti>=K){let n;for(rr.mti===K+1&&Tl(5489),n=0;n<K-lt;n++)t=r[n]&Ve|r[n+1]&qe,r[n]=r[n+lt]^t>>>1^e[t&1];for(;n<K-1;n++)t=r[n]&Ve|r[n+1]&qe,r[n]=r[n+(lt-K)]^t>>>1^e[t&1];t=r[K-1]&Ve|r[0]&qe,r[K-1]=r[lt-1]^t>>>1^e[t&1],rr.mti=0}return t=r[rr.mti++],t^=t>>>11,t^=t<<7&2636928640,t^=t<<15&4022730752,t^=t>>>18,t>>>0}function C(){let r=Ml()>>>5,t=Ml()>>>6;return(r*67108864+t)/9007199254740992}var Ym=2468251765,Jm=1492356589,Xm=1135663077,Qm=2337405405,Km=3389127133,ry=1232336661,Ge=16,ft=4;function Z(r){return r>>>0}function je(r,t){return r=Z(Z(r)^t.val),t.val=Z(Math.imul(t.val,Ym)),r=Z(Math.imul(r,t.val)),r=Z(r^r>>>Ge),r}function ty(r,t){let e=Z(Z(Math.imul(Km,Z(r)))-Z(Math.imul(ry,Z(t))));return e=Z(e^e>>>Ge),e}function ey(r){let t=[0,0,0,0],e=[r>>>0],n={val:Xm};for(let o=0;o<ft;o++)o<e.length?t[o]=je(e[o],n):t[o]=je(0,n);for(let o=0;o<ft;o++)for(let a=0;a<ft;a++)if(o!==a){let i=je(t[o],n);t[a]=ty(t[a],i)}return t}function ny(r,t){let e=[],n=Qm;for(let o=0;o<t;o++){let a=r[o%ft],i=Z(a^n);n=Z(Math.imul(n,Jm)),i=Z(Math.imul(i,n)),i=Z(i^i>>>Ge),e.push(i)}return e}var oy=BigInt("4865540595714422341"),ay=BigInt("2549297995355413924"),sy=ay<<BigInt(64)|oy,Pe=BigInt("0xffffffffffffffff"),Re=(BigInt(1)<<BigInt(128))-BigInt(1);function iy(r){let t=r>>BigInt(64),e=r&Pe,n=(t^e)&Pe,o=Number(r>>BigInt(122));return(n>>BigInt(o)|n<<BigInt(64-o))&Pe}function Le(r,t){return r*sy+t&Re}function Ol(r){let t=ey(r),e=ny(t,8),n=BigInt(e[0])|BigInt(e[1])<<BigInt(32),o=BigInt(e[2])|BigInt(e[3])<<BigInt(32),a=BigInt(e[4])|BigInt(e[5])<<BigInt(32),i=BigInt(e[6])|BigInt(e[7])<<BigInt(32),u=n<<BigInt(64)|o,s=(a<<BigInt(64)|i)<<BigInt(1);s=(s|BigInt(1))ℜlet c=BigInt(0);return c=Le(c,s),c=c+u&Re,c=Le(c,s),{state:c,inc:s}}function uy(r){return r.state=Le(r.state,r.inc),iy(r.state)}function cy(r){let e=uy(r)>>BigInt(11);return Number(e)/9007199254740992}var Ur=class{constructor(t){if(t!==void 0)this._pcgState=Ol(t);else{let e=Math.floor(Math.random()*4294967296);this._pcgState=Ol(e)}}_randomFloat(){return cy(this._pcgState)}random(t){if(t===void 0)return this._randomFloat();let e=Array.isArray(t)?t:[t],n=e.reduce((i,u)=>i*u,1),o=S.zeros(e,"float64"),a=o.data;for(let i=0;i<n;i++)a[i]=this._randomFloat();return o}integers(t,e,n){if(e===void 0&&(e=t,t=0),n===void 0)return Math.floor(this._randomFloat()*(e-t))+t;let o=Array.isArray(n)?n:[n],a=o.reduce((c,l)=>c*l,1),i=S.zeros(o,"int64"),u=i.data,s=e-t;for(let c=0;c<a;c++)u[c]=BigInt(Math.floor(this._randomFloat()*s)+t);return i}standard_normal(t){if(t===void 0)return fr(this._randomFloat.bind(this));let e=Array.isArray(t)?t:[t],n=e.reduce((i,u)=>i*u,1),o=S.zeros(e,"float64"),a=o.data;for(let i=0;i<n;i+=2){let[u,s]=$r(this._randomFloat.bind(this));a[i]=u,i+1<n&&(a[i+1]=s)}return o}normal(t=0,e=1,n){if(n===void 0)return fr(this._randomFloat.bind(this))*e+t;let o=Array.isArray(n)?n:[n],a=o.reduce((s,c)=>s*c,1),i=S.zeros(o,"float64"),u=i.data;for(let s=0;s<a;s+=2){let[c,l]=$r(this._randomFloat.bind(this));u[s]=c*e+t,s+1<a&&(u[s+1]=l*e+t)}return i}uniform(t=0,e=1,n){if(n===void 0)return this._randomFloat()*(e-t)+t;let o=Array.isArray(n)?n:[n],a=o.reduce((c,l)=>c*l,1),i=S.zeros(o,"float64"),u=i.data,s=e-t;for(let c=0;c<a;c++)u[c]=this._randomFloat()*s+t;return i}choice(t,e,n=!0,o){return Hl(t,e,n,o,this._randomFloat.bind(this))}permutation(t){return Jl(t,this._randomFloat.bind(this))}shuffle(t){Ql(t,this._randomFloat.bind(this))}exponential(t=1,e){if(e===void 0)return-Math.log(1-this._randomFloat())*t;let n=Array.isArray(e)?e:[e],o=n.reduce((u,s)=>u*s,1),a=S.zeros(n,"float64"),i=a.data;for(let u=0;u<o;u++)i[u]=-Math.log(1-this._randomFloat())*t;return a}poisson(t=1,e){if(e===void 0)return mt(t,this._randomFloat.bind(this));let n=Array.isArray(e)?e:[e],o=n.reduce((u,s)=>u*s,1),a=S.zeros(n,"int64"),i=a.data;for(let u=0;u<o;u++)i[u]=BigInt(mt(t,this._randomFloat.bind(this)));return a}binomial(t,e,n){if(n===void 0)return yt(t,e,this._randomFloat.bind(this));let o=Array.isArray(n)?n:[n],a=o.reduce((s,c)=>s*c,1),i=S.zeros(o,"int64"),u=i.data;for(let s=0;s<a;s++)u[s]=BigInt(yt(t,e,this._randomFloat.bind(this)));return i}};function Ul(r){return new Ur(r)}function $l(r){r==null&&(r=Math.floor(Date.now()^Math.random()*4294967296)),Tl(r>>>0)}function kl(){return{mt:Array.from(rr.mt),mti:rr.mti}}function Cl(r){rr.mt=new Uint32Array(r.mt),rr.mti=r.mti}function fr(r){let t,e;do t=r(),e=r();while(t===0);return Math.sqrt(-2*Math.log(t))*Math.cos(2*Math.PI*e)}function $r(r){let t,e;do t=r(),e=r();while(t===0);let n=Math.sqrt(-2*Math.log(t)),o=2*Math.PI*e;return[n*Math.cos(o),n*Math.sin(o)]}function mt(r,t){if(r<30){let e=Math.exp(-r),n=0,o=1;do n++,o*=t();while(o>e);return n-1}else{let e=fr(t);return Math.max(0,Math.round(r+Math.sqrt(r)*e))}}function yt(r,t,e){if(r*t<10&&r*(1-t)<10){let n=0;for(let o=0;o<r;o++)e()<t&&n++;return n}else{let n=r*t,o=Math.sqrt(r*t*(1-t)),a=fr(e);return Math.max(0,Math.min(r,Math.round(n+o*a)))}}function Fl(r){if(r===void 0)return C();let t=Array.isArray(r)?r:[r],e=t.reduce((a,i)=>a*i,1),n=S.zeros(t,"float64"),o=n.data;for(let a=0;a<e;a++)o[a]=C();return n}function Vl(...r){if(r.length===0)return C();let t=r.reduce((o,a)=>o*a,1),e=S.zeros(r,"float64"),n=e.data;for(let o=0;o<t;o++)n[o]=C();return e}function ql(...r){if(r.length===0)return fr(C);let t=r.reduce((o,a)=>o*a,1),e=S.zeros(r,"float64"),n=e.data;for(let o=0;o<t;o+=2){let[a,i]=$r(C);n[o]=a,o+1<t&&(n[o+1]=i)}return e}function jl(r,t,e,n="int64"){t==null&&(t=r,r=0);let o=t-r;if(e===void 0)return Math.floor(C()*o)+r;let a=Array.isArray(e)?e:[e],i=a.reduce((c,l)=>c*l,1),u=S.zeros(a,n),s=u.data;if(w(n)){let c=s;for(let l=0;l<i;l++)c[l]=BigInt(Math.floor(C()*o)+r)}else{let c=s;for(let l=0;l<i;l++)c[l]=Math.floor(C()*o)+r}return u}function Pl(r=0,t=1,e){if(e===void 0)return C()*(t-r)+r;let n=Array.isArray(e)?e:[e],o=n.reduce((s,c)=>s*c,1),a=S.zeros(n,"float64"),i=a.data,u=t-r;for(let s=0;s<o;s++)i[s]=C()*u+r;return a}function Rl(r=0,t=1,e){if(e===void 0)return fr(C)*t+r;let n=Array.isArray(e)?e:[e],o=n.reduce((u,s)=>u*s,1),a=S.zeros(n,"float64"),i=a.data;for(let u=0;u<o;u+=2){let[s,c]=$r(C);i[u]=s*t+r,u+1<o&&(i[u+1]=c*t+r)}return a}function Ll(r){if(r===void 0)return fr(C);let t=Array.isArray(r)?r:[r],e=t.reduce((a,i)=>a*i,1),n=S.zeros(t,"float64"),o=n.data;for(let a=0;a<e;a+=2){let[i,u]=$r(C);o[a]=i,a+1<e&&(o[a+1]=u)}return n}function Gl(r=1,t){if(t===void 0)return-Math.log(1-C())*r;let e=Array.isArray(t)?t:[t],n=e.reduce((i,u)=>i*u,1),o=S.zeros(e,"float64"),a=o.data;for(let i=0;i<n;i++)a[i]=-Math.log(1-C())*r;return o}function Wl(r=1,t){if(t===void 0)return mt(r,C);let e=Array.isArray(t)?t:[t],n=e.reduce((i,u)=>i*u,1),o=S.zeros(e,"int64"),a=o.data;for(let i=0;i<n;i++)a[i]=BigInt(mt(r,C));return o}function Zl(r,t,e){if(e===void 0)return yt(r,t,C);let n=Array.isArray(e)?e:[e],o=n.reduce((u,s)=>u*s,1),a=S.zeros(n,"int64"),i=a.data;for(let u=0;u<o;u++)i[u]=BigInt(yt(r,t,C));return a}function Hl(r,t,e=!0,n,o=C){let a;if(typeof r=="number")a=Array.from({length:r},(f,y)=>y);else{let f=r.size;a=[];for(let y=0;y<f;y++)a.push(Number(r.iget(y)))}let i=a.length;if(i===0)throw new Error("cannot take a sample from an empty sequence");let u;if(n!==void 0){if(Array.isArray(n))u=n;else{let y=n.size;u=[];for(let p=0;p<y;p++)u.push(Number(n.iget(p)))}if(u.length!==i)throw new Error("p and a must have the same size");let f=u.reduce((y,p)=>y+p,0);Math.abs(f-1)>1e-10&&(u=u.map(y=>y/f))}if(t===void 0){if(u){let f=o(),y=0;for(let p=0;p<i;p++)if(y+=u[p],f<y)return a[p];return a[i-1]}return a[Math.floor(o()*i)]}let s=Array.isArray(t)?t:[t],c=s.reduce((f,y)=>f*y,1);if(!e&&c>i)throw new Error("cannot take a larger sample than population when replace=false");let l=S.zeros(s,"float64"),m=l.data;if(e)if(u){let f=new Array(i);f[0]=u[0];for(let y=1;y<i;y++)f[y]=f[y-1]+u[y];for(let y=0;y<c;y++){let p=o(),d=0;for(;d<i-1&&p>=f[d];)d++;m[y]=a[d]}}else for(let f=0;f<c;f++)m[f]=a[Math.floor(o()*i)];else{let f=[...a],y=u?[...u]:void 0;for(let p=0;p<c;p++){let d;if(y){let g=y.reduce((b,N)=>b+N,0),h=o()*g,A=0;d=0;for(let b=0;b<f.length;b++)if(A+=y[b],h<A){d=b;break}d===0&&h>=A&&(d=f.length-1)}else d=Math.floor(o()*f.length);m[p]=f[d],f.splice(d,1),y&&y.splice(d,1)}}return l}function Yl(r,t,e=!0,n){return Hl(r,t,e,n,C)}function Jl(r,t=C){let e;if(typeof r=="number"){let o=new Float64Array(r);for(let a=0;a<r;a++)o[a]=a;e=S.fromData(o,[r],"float64")}else e=r.copy();let n=e.size;for(let o=n-1;o>0;o--){let a=Math.floor(t()*(o+1)),i=e.iget(o);e.iset(o,e.iget(a)),e.iset(a,i)}return e}function Xl(r){return Jl(r,C)}function Ql(r,t=C){let e=r.size;for(let n=e-1;n>0;n--){let o=Math.floor(t()*(n+1)),a=r.iget(n);r.iset(n,r.iget(o)),r.iset(o,a)}}function Kl(r){Ql(r,C)}function J(r){return r&&typeof r=="object"&&"_data"in r&&"_shape"in r?z._fromStorage(r):r}var fy={seed:$l,random:r=>J(Fl(r)),rand:(...r)=>J(Vl(...r)),randn:(...r)=>J(ql(...r)),randint:(r,t,e,n)=>J(jl(r,t,e,n)),uniform:(r,t,e)=>J(Pl(r,t,e)),normal:(r,t,e)=>J(Rl(r,t,e)),standard_normal:r=>J(Ll(r)),exponential:(r,t)=>J(Gl(r,t)),poisson:(r,t)=>J(Wl(r,t)),binomial:(r,t,e)=>J(Zl(r,t,e)),choice:(r,t,e,n)=>J(Yl(r,t,e,n)),permutation:r=>J(Xl(r)),shuffle:Kl,get_state:kl,set_state:Cl,default_rng:Ul,Generator:Ur},my="0.10.0";0&&(module.exports={DTYPE_TO_DESCR,InvalidNpyError,NDArray,SUPPORTED_DTYPES,UnsupportedDTypeError,__version__,abs,absolute,acos,acosh,amax,amin,append,arange,arccos,arccosh,arcsin,arcsinh,arctan,arctan2,arctanh,argpartition,argsort,argwhere,around,array,array_equal,array_equiv,array_split,asanyarray,asarray,ascontiguousarray,asfortranarray,asin,asinh,atan,atan2,atanh,atleast_1d,atleast_2d,atleast_3d,average,bincount,bitwise_and,bitwise_not,bitwise_or,bitwise_xor,broadcast_arrays,broadcast_shapes,broadcast_to,cbrt,ceil,choose,column_stack,compress,concatenate,convolve,copy,copysign,copyto,corrcoef,correlate,cos,cosh,count_nonzero,cov,cross,cumprod,cumsum,cumulative_prod,cumulative_sum,deg2rad,degrees,delete:null,diag,diag_indices,diag_indices_from,diagflat,diagonal,diff,digitize,divide,divmod,dot,dsplit,dstack,ediff1d,einsum,empty,empty_like,exp,exp2,expand_dims,expm1,extract,eye,fabs,fill_diagonal,fix,flatnonzero,flip,fliplr,flipud,float_power,floor,floor_divide,fmod,frexp,frombuffer,fromfile,fromfunction,fromiter,fromstring,full,full_like,gcd,geomspace,gradient,heaviside,histogram,histogram2d,histogramdd,hsplit,hstack,hypot,identity,in1d,indices,inner,insert,intersect1d,invert,iscomplex,iscomplexobj,isdtype,isfinite,isfortran,isin,isinf,isnan,isnat,isneginf,isposinf,isreal,isrealobj,isscalar,iterable,ix_,kron,lcm,ldexp,left_shift,lexsort,linalg,linspace,loadNpz,loadNpzSync,log,log10,log1p,log2,logaddexp,logaddexp2,logical_and,logical_not,logical_or,logical_xor,logspace,mask_indices,max,median,meshgrid,min,mod,modf,moveaxis,nanargmax,nanargmin,nancumprod,nancumsum,nanmax,nanmean,nanmedian,nanmin,nanprod,nanstd,nansum,nanvar,negative,nextafter,nonzero,ones,ones_like,outer,packbits,pad,parseNpy,parseNpyData,parseNpyHeader,parseNpz,parseNpzSync,partition,percentile,place,positive,pow,power,promote_types,ptp,put,put_along_axis,putmask,quantile,rad2deg,radians,random,ravel,ravel_multi_index,real_if_close,reciprocal,remainder,repeat,reshape,resize,right_shift,rint,roll,rollaxis,rot90,round,round_,row_stack,searchsorted,select,serializeNpy,serializeNpz,serializeNpzSync,setdiff1d,setxor1d,sign,signbit,sin,sinh,sort,sort_complex,spacing,split,sqrt,square,squeeze,stack,swapaxes,take,take_along_axis,tan,tanh,tensordot,tile,trace,transpose,tri,tril,tril_indices,tril_indices_from,triu,triu_indices,triu_indices_from,true_divide,trunc,union1d,unique,unpackbits,unravel_index,vander,vsplit,vstack,where,zeros,zeros_like});
|
|
3
3
|
//# sourceMappingURL=numpy-ts.node.cjs.map
|