numpy-ts 0.11.0 → 0.13.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 +29 -25
- package/dist/esm/common/broadcasting.js +1 -0
- package/dist/esm/common/complex.js +1 -0
- package/dist/esm/common/dtype.js +1 -0
- package/dist/esm/common/internal/compute.js +1 -0
- package/dist/esm/common/internal/indexing.js +1 -0
- package/dist/esm/common/ndarray-core.js +1 -0
- package/dist/esm/common/ops/advanced.js +1 -0
- package/dist/esm/common/ops/arithmetic.js +1 -0
- package/dist/esm/common/ops/bitwise.js +1 -0
- package/dist/esm/common/ops/comparison.js +1 -0
- package/dist/esm/common/ops/complex.js +1 -0
- package/dist/esm/common/ops/exponential.js +1 -0
- package/dist/esm/common/ops/fft.js +1 -0
- package/dist/esm/common/ops/formatting.js +2 -0
- package/dist/esm/common/ops/gradient.js +1 -0
- package/dist/esm/common/ops/hyperbolic.js +1 -0
- package/dist/esm/common/ops/linalg.js +2 -0
- package/dist/esm/common/ops/logic.js +1 -0
- package/dist/esm/common/ops/random.js +1 -0
- package/dist/esm/common/ops/reduction.js +1 -0
- package/dist/esm/common/ops/rounding.js +1 -0
- package/dist/esm/common/ops/sets.js +1 -0
- package/dist/esm/common/ops/shape.js +1 -0
- package/dist/esm/common/ops/sorting.js +1 -0
- package/dist/esm/common/ops/statistics.js +1 -0
- package/dist/esm/common/ops/trig.js +1 -0
- package/dist/esm/common/slicing.js +1 -0
- package/dist/esm/common/storage.js +1 -0
- package/dist/esm/core/advanced.js +1 -0
- package/dist/esm/core/arithmetic.js +1 -0
- package/dist/esm/core/bitwise.js +1 -0
- package/dist/esm/core/complex.js +1 -0
- package/dist/esm/core/creation.js +1 -0
- package/dist/esm/core/formatting.js +1 -0
- package/dist/esm/core/gradient.js +1 -0
- package/dist/esm/core/index.js +1 -0
- package/dist/esm/core/linalg.js +1 -0
- package/dist/esm/core/logic.js +1 -0
- package/dist/esm/core/polynomial.js +1 -0
- package/dist/esm/core/reduction.js +1 -0
- package/dist/esm/core/rounding.js +1 -0
- package/dist/esm/core/sets.js +1 -0
- package/dist/esm/core/shape-extra.js +1 -0
- package/dist/esm/core/shape.js +1 -0
- package/dist/esm/core/sorting.js +1 -0
- package/dist/esm/core/statistics.js +1 -0
- package/dist/esm/core/trig.js +1 -0
- package/dist/esm/core/typechecking.js +1 -0
- package/dist/esm/core/types.js +1 -0
- package/dist/esm/core/utility.js +1 -0
- package/dist/esm/core.js +1 -0
- package/dist/esm/full/index.js +1 -0
- package/dist/esm/full/ndarray.js +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/io/index.js +1 -0
- package/dist/esm/io/npy/format.js +1 -0
- package/dist/esm/io/npy/index.js +1 -0
- package/dist/esm/io/npy/parser.js +1 -0
- package/dist/esm/io/npy/serializer.js +2 -0
- package/dist/esm/io/npz/index.js +1 -0
- package/dist/esm/io/npz/parser.js +1 -0
- package/dist/esm/io/npz/serializer.js +1 -0
- package/dist/esm/io/txt/index.js +1 -0
- package/dist/esm/io/txt/parser.js +1 -0
- package/dist/esm/io/txt/serializer.js +2 -0
- package/dist/esm/io/zip/index.js +1 -0
- package/dist/esm/io/zip/reader.js +1 -0
- package/dist/esm/io/zip/types.js +1 -0
- package/dist/esm/io/zip/writer.js +1 -0
- package/dist/esm/node.js +1 -0
- package/dist/numpy-ts.browser.js +5 -2
- package/dist/numpy-ts.node-io.cjs +5 -3
- package/dist/numpy-ts.node-io.cjs.map +4 -4
- package/dist/numpy-ts.node-io.mjs +5 -3
- package/dist/numpy-ts.node-io.mjs.map +4 -4
- package/dist/numpy-ts.node.cjs +5 -2
- package/dist/numpy-ts.node.cjs.map +4 -4
- package/dist/types/common/complex.d.ts +94 -0
- package/dist/types/{internal → common/internal}/compute.d.ts +1 -1
- package/dist/types/{internal → common/internal}/indexing.d.ts +6 -0
- package/dist/types/common/ndarray-core.d.ts +126 -0
- package/dist/types/{ops → common/ops}/advanced.d.ts +67 -2
- package/dist/types/{ops → common/ops}/arithmetic.d.ts +100 -1
- package/dist/types/{ops → common/ops}/bitwise.d.ts +31 -1
- package/dist/types/{ops → common/ops}/comparison.d.ts +1 -1
- package/dist/types/{ops → common/ops}/complex.d.ts +1 -1
- package/dist/types/{ops → common/ops}/exponential.d.ts +1 -1
- package/dist/types/common/ops/fft.d.ts +166 -0
- package/dist/types/common/ops/formatting.d.ts +229 -0
- package/dist/types/{ops → common/ops}/gradient.d.ts +1 -1
- package/dist/types/{ops → common/ops}/hyperbolic.d.ts +1 -1
- package/dist/types/{ops → common/ops}/linalg.d.ts +148 -3
- package/dist/types/{ops → common/ops}/logic.d.ts +2 -2
- package/dist/types/common/ops/random.d.ts +376 -0
- package/dist/types/{ops → common/ops}/reduction.d.ts +10 -2
- package/dist/types/{ops → common/ops}/rounding.d.ts +1 -1
- package/dist/types/common/ops/sets.d.ts +87 -0
- package/dist/types/{ops → common/ops}/shape.d.ts +14 -1
- package/dist/types/{ops → common/ops}/sorting.d.ts +1 -1
- package/dist/types/{ops → common/ops}/statistics.d.ts +23 -1
- package/dist/types/{ops → common/ops}/trig.d.ts +1 -1
- package/dist/types/{core → common}/storage.d.ts +1 -0
- package/dist/types/core/advanced.d.ts +54 -0
- package/dist/types/core/arithmetic.d.ts +110 -0
- package/dist/types/core/bitwise.d.ts +34 -0
- package/dist/types/core/complex.d.ts +15 -90
- package/dist/types/core/creation.d.ts +98 -0
- package/dist/types/core/formatting.d.ts +29 -0
- package/dist/types/core/gradient.d.ts +14 -0
- package/dist/types/core/index.d.ts +40 -0
- package/dist/types/core/linalg.d.ts +141 -0
- package/dist/types/core/logic.d.ts +72 -0
- package/dist/types/core/polynomial.d.ts +50 -0
- package/dist/types/core/reduction.d.ts +82 -0
- package/dist/types/core/rounding.d.ts +24 -0
- package/dist/types/core/sets.d.ts +48 -0
- package/dist/types/core/shape-extra.d.ts +24 -0
- package/dist/types/core/shape.d.ts +77 -0
- package/dist/types/core/sorting.d.ts +34 -0
- package/dist/types/core/statistics.d.ts +32 -0
- package/dist/types/core/trig.d.ts +58 -0
- package/dist/types/core/typechecking.d.ts +50 -0
- package/dist/types/core/types.d.ts +43 -0
- package/dist/types/core/utility.d.ts +30 -0
- package/dist/types/core.d.ts +30 -0
- package/dist/types/full/index.d.ts +603 -0
- package/dist/types/full/ndarray.d.ts +880 -0
- package/dist/types/index.d.ts +140 -26
- package/dist/types/io/npy/format.d.ts +1 -1
- package/dist/types/io/npy/parser.d.ts +3 -3
- package/dist/types/io/npy/serializer.d.ts +2 -2
- package/dist/types/io/npz/parser.d.ts +4 -4
- package/dist/types/io/npz/serializer.d.ts +6 -6
- package/dist/types/io/txt/parser.d.ts +5 -5
- package/dist/types/io/txt/serializer.d.ts +2 -2
- package/dist/types/node.d.ts +12 -8
- package/package.json +31 -30
- package/dist/numpy-ts.esm.js +0 -2
- package/dist/types/core/ndarray.d.ts +0 -3166
- package/dist/types/ops/random.d.ts +0 -136
- package/dist/types/ops/sets.d.ts +0 -38
- /package/dist/types/{core → common}/broadcasting.d.ts +0 -0
- /package/dist/types/{core → common}/dtype.d.ts +0 -0
- /package/dist/types/{core → common}/slicing.d.ts +0 -0
package/dist/numpy-ts.browser.js
CHANGED
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
"use strict";var np=(()=>{var Zt=Object.defineProperty;var Yf=Object.getOwnPropertyDescriptor;var Hf=Object.getOwnPropertyNames;var Jf=Object.prototype.hasOwnProperty;var Xf=(r,t)=>{for(var e in t)Zt(r,e,{get:t[e],enumerable:!0})},Qf=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Hf(t))!Jf.call(r,o)&&o!==e&&Zt(r,o,{get:()=>t[o],enumerable:!(n=Yf(t,o))||n.enumerable});return r};var Kf=r=>Qf(Zt({},"__esModule",{value:!0}),r);var sp={};Xf(sp,{Complex:()=>O,DTYPE_TO_DESCR:()=>ut,InvalidNpyError:()=>sr,NDArray:()=>v,SUPPORTED_DTYPES:()=>Mt,UnsupportedDTypeError:()=>xr,__version__:()=>ap,abs:()=>He,absolute:()=>He,acos:()=>Qe,acosh:()=>en,amax:()=>un,amin:()=>cn,angle:()=>Jc,append:()=>vu,arange:()=>Ks,arccos:()=>Qe,arccosh:()=>en,arcsin:()=>Xe,arcsinh:()=>tn,arctan:()=>Ke,arctan2:()=>rn,arctanh:()=>nn,argpartition:()=>Ml,argsort:()=>zl,argwhere:()=>El,around:()=>Ft,array:()=>or,array_equal:()=>Lu,array_equiv:()=>Zu,array_split:()=>lu,asanyarray:()=>ci,asarray:()=>st,ascontiguousarray:()=>li,asfortranarray:()=>fi,asin:()=>Xe,asinh:()=>tn,atan:()=>Ke,atan2:()=>rn,atanh:()=>nn,atleast_1d:()=>wu,atleast_2d:()=>Iu,atleast_3d:()=>zu,average:()=>Ju,bincount:()=>rf,bindex:()=>Vu,bitwise_and:()=>xc,bitwise_not:()=>Ic,bitwise_or:()=>Nc,bitwise_xor:()=>wc,broadcast_arrays:()=>Uu,broadcast_shapes:()=>$u,broadcast_to:()=>Cu,cbrt:()=>cc,ceil:()=>Rl,choose:()=>Pu,column_stack:()=>Fu,compress:()=>ll,concatenate:()=>vr,conj:()=>ln,conjugate:()=>Hc,convolve:()=>sf,copy:()=>oi,copysign:()=>kc,copyto:()=>ju,corrcoef:()=>cf,correlate:()=>af,cos:()=>Yi,cosh:()=>eu,count_nonzero:()=>$l,cov:()=>uf,cross:()=>Kl,cumprod:()=>sn,cumsum:()=>an,cumulative_prod:()=>sn,cumulative_sum:()=>an,deg2rad:()=>Ki,degrees:()=>Xi,delete:()=>Eu,diag:()=>We,diag_indices:()=>pl,diag_indices_from:()=>dl,diagflat:()=>mi,diagonal:()=>Vi,diff:()=>Jl,digitize:()=>tf,divide:()=>Je,divmod:()=>fc,dot:()=>ki,dsplit:()=>_u,dstack:()=>uu,ediff1d:()=>Xl,einsum:()=>al,empty:()=>Ze,empty_like:()=>ii,exp:()=>wi,exp2:()=>Ii,expand_dims:()=>bu,expm1:()=>zi,extract:()=>Ul,eye:()=>Le,fabs:()=>lc,fill_diagonal:()=>yl,fix:()=>kl,flatnonzero:()=>Tl,flip:()=>_t,fliplr:()=>hu,flipud:()=>Su,float_power:()=>dc,floor:()=>ql,floor_divide:()=>Ui,fmod:()=>gc,frexp:()=>Ac,frombuffer:()=>hi,fromfile:()=>Si,fromfunction:()=>yi,fromiter:()=>Di,fromstring:()=>xi,full:()=>Ge,full_like:()=>ui,gcd:()=>bc,geomspace:()=>ei,gradient:()=>Ql,heaviside:()=>pc,histogram:()=>ef,histogram2d:()=>nf,histogramdd:()=>of,hsplit:()=>mu,hstack:()=>iu,hypot:()=>Ji,identity:()=>ni,iindex:()=>qu,imag:()=>Yc,in1d:()=>Ll,indices:()=>Dl,inner:()=>Li,insert:()=>Tu,intersect1d:()=>Zl,invert:()=>zc,iscomplex:()=>Pc,iscomplexobj:()=>Lc,isdtype:()=>nl,isfinite:()=>Cc,isfortran:()=>Kc,isin:()=>Gl,isinf:()=>Uc,isnan:()=>$c,isnat:()=>Rc,isneginf:()=>Xc,isposinf:()=>Qc,isreal:()=>Zc,isrealobj:()=>Gc,isscalar:()=>tl,iterable:()=>el,ix_:()=>xl,kron:()=>ji,lcm:()=>hc,ldexp:()=>Sc,left_shift:()=>_c,lexsort:()=>_l,linalg:()=>sl,linspace:()=>ri,loadNpz:()=>dn,loadNpzSync:()=>gn,log:()=>_i,log10:()=>Mi,log1p:()=>Bi,log2:()=>Fi,logaddexp:()=>vi,logaddexp2:()=>Ei,logical_and:()=>vc,logical_not:()=>Tc,logical_or:()=>Ec,logical_xor:()=>Oc,logspace:()=>ti,mask_indices:()=>Sl,max:()=>un,median:()=>Wu,meshgrid:()=>pi,min:()=>cn,mod:()=>Ci,modf:()=>Dc,moveaxis:()=>au,nanargmax:()=>ac,nanargmin:()=>oc,nancumprod:()=>ic,nancumsum:()=>sc,nanmax:()=>nc,nanmean:()=>Ku,nanmedian:()=>uc,nanmin:()=>ec,nanprod:()=>Qu,nanstd:()=>tc,nansum:()=>Xu,nanvar:()=>rc,negative:()=>Ti,nextafter:()=>Vc,nonzero:()=>vl,ones:()=>Pe,ones_like:()=>si,outer:()=>Zi,packbits:()=>Mc,pad:()=>Ou,parseNpy:()=>ct,parseNpyData:()=>vt,parseNpyHeader:()=>Bt,parseNpz:()=>Et,parseNpzSync:()=>Tt,partition:()=>Fl,percentile:()=>Yu,place:()=>ml,positive:()=>$i,pow:()=>Ye,power:()=>Ye,promote_types:()=>ol,ptp:()=>Gu,put:()=>ku,put_along_axis:()=>ul,putmask:()=>cl,quantile:()=>Hu,rad2deg:()=>ru,radians:()=>Qi,random:()=>op,ravel:()=>du,ravel_multi_index:()=>Nl,real:()=>Wc,real_if_close:()=>rl,reciprocal:()=>Ri,remainder:()=>yc,repeat:()=>pu,reshape:()=>gu,resize:()=>Bu,right_shift:()=>Fc,rint:()=>Vl,roll:()=>xu,rollaxis:()=>Nu,rot90:()=>Du,round:()=>Ft,round_:()=>Ft,row_stack:()=>Mu,searchsorted:()=>Cl,select:()=>fl,serializeNpy:()=>Pr,serializeNpz:()=>An,serializeNpzSync:()=>bn,setdiff1d:()=>Wl,setxor1d:()=>Yl,sign:()=>Oi,signbit:()=>qc,sin:()=>Wi,sinh:()=>tu,sort:()=>Il,sort_complex:()=>Bl,spacing:()=>jc,split:()=>cu,sqrt:()=>Ni,square:()=>mc,squeeze:()=>Au,stack:()=>su,swapaxes:()=>ou,take:()=>Ru,take_along_axis:()=>il,tan:()=>Hi,tanh:()=>nu,tensordot:()=>Gi,tile:()=>yu,trace:()=>qi,transpose:()=>Pi,tri:()=>di,tril:()=>gi,tril_indices:()=>gl,tril_indices_from:()=>Al,triu:()=>Ai,triu_indices:()=>bl,triu_indices_from:()=>hl,true_divide:()=>Je,trunc:()=>jl,union1d:()=>Hl,unique:()=>Pl,unpackbits:()=>Bc,unravel_index:()=>wl,vander:()=>bi,vsplit:()=>fu,vstack:()=>on,where:()=>Ol,zeros:()=>Dr,zeros_like:()=>ai});var O=class r{constructor(t,e=0){this.re=t,this.im=e}abs(){return Math.sqrt(this.re*this.re+this.im*this.im)}angle(){return Math.atan2(this.im,this.re)}conj(){return new r(this.re,-this.im)}add(t){return typeof t=="number"?new r(this.re+t,this.im):new r(this.re+t.re,this.im+t.im)}sub(t){return typeof t=="number"?new r(this.re-t,this.im):new r(this.re-t.re,this.im-t.im)}mul(t){return typeof t=="number"?new r(this.re*t,this.im*t):new r(this.re*t.re-this.im*t.im,this.re*t.im+this.im*t.re)}div(t){if(typeof t=="number")return new r(this.re/t,this.im/t);let e=t.re*t.re+t.im*t.im;return new r((this.re*t.re+this.im*t.im)/e,(this.im*t.re-this.re*t.im)/e)}neg(){return new r(-this.re,-this.im)}equals(t){return this.re===t.re&&this.im===t.im}toString(){return this.im===0?`(${this.re}+0j)`:this.im<0?`(${this.re}${this.im}j)`:`(${this.re}+${this.im}j)`}static from(t){if(t instanceof r)return t;if(typeof t=="number")return new r(t,0);if(Array.isArray(t))return new r(t[0]??0,t[1]??0);if(typeof t=="object"&&t!==null&&"re"in t)return new r(t.re??0,t.im??0);throw new Error(`Cannot convert ${t} to Complex`)}static isComplex(t){return t instanceof r||typeof t=="object"&&t!==null&&"re"in t&&"im"in t}};function zn(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 _n(r,t){let{start:e,stop:n}=r,{step:o,isIndex:a}=r;if(a){if(e===null)throw new Error("Index cannot be null");let u=e<0?t+e:e;if(u<0||u>=t)throw new Error(`Index ${e} is out of bounds for size ${t}`);return{start:u,stop:u+1,step:1,isIndex:!0}}return o>0?(e===null&&(e=0),n===null&&(n=t)):(e===null&&(e=t-1),n===null&&(n=-t-1)),e<0&&(e=t+e),n<0&&(n=t+n),e=Math.max(0,Math.min(e,t)),n=Math.max(-1,Math.min(n,t)),{start:e,stop:n,step:o,isIndex:!1}}var X="float64";function P(r){switch(r){case"float64":return Float64Array;case"float32":return Float32Array;case"complex128":return Float64Array;case"complex64":return Float32Array;case"int64":return BigInt64Array;case"int32":return Int32Array;case"int16":return Int16Array;case"int8":return Int8Array;case"uint64":return BigUint64Array;case"uint32":return Uint32Array;case"uint16":return Uint16Array;case"uint8":return Uint8Array;case"bool":return Uint8Array;default:throw new Error(`Unknown dtype: ${r}`)}}function yt(r){switch(r){case"complex128":return 16;case"float64":case"int64":case"uint64":case"complex64":return 8;case"float32":case"int32":case"uint32":return 4;case"int16":case"uint16":return 2;case"int8":case"uint8":case"bool":return 1;default:throw new Error(`Unknown dtype: ${r}`)}}function Mn(r){return r==="int64"||r==="int32"||r==="int16"||r==="int8"||r==="uint64"||r==="uint32"||r==="uint16"||r==="uint8"}function Fn(r){return r==="float64"||r==="float32"}function B(r){return r==="int64"||r==="uint64"}function M(r){return r==="complex64"||r==="complex128"}function q(r,t,e){if(M(r)){let n=e?` ${e}`:"";throw new TypeError(`ufunc '${t}' not supported for complex dtype '${r}'.${n}`)}}function Zr(r){if(r==="complex128")return"float64";if(r==="complex64")return"float32";throw new Error(`${r} is not a complex dtype`)}function Bn(r){return typeof r=="object"&&r!==null&&"re"in r&&"im"in r}function G(r,t){if(r===t)return r;if(r==="bool")return t;if(t==="bool")return r;if(M(r)||M(t)){if(M(r)&&M(t))return r==="complex128"||t==="complex128"?"complex128":"complex64";let c=M(r)?r:t,l=M(r)?t:r;return c==="complex128"||l==="float64"||l==="int64"||l==="uint64"||l==="int32"||l==="uint32"?"complex128":"complex64"}if(Fn(r)||Fn(t)){if(r==="float64"||t==="float64")return"float64";if(r==="float32"){let c=t;return c==="int32"||c==="int64"||c==="uint32"||c==="uint64"?"float64":"float32"}if(t==="float32"){let c=r;return c==="int32"||c==="int64"||c==="uint32"||c==="uint64"?"float64":"float32"}return"float32"}let e=r.startsWith("int"),n=t.startsWith("int"),o=r.startsWith("uint"),a=t.startsWith("uint"),u=c=>c.includes("64")?64:c.includes("32")?32:c.includes("16")?16:c.includes("8")?8:0,s=u(r),i=u(t);if(r==="int64"&&t==="uint64"||r==="uint64"&&t==="int64")return"float64";if(e&&a&&s===i){if(s===8)return"int16";if(s===16)return"int32";if(s===32)return"int64"}if(o&&n&&s===i){if(i===8)return"int16";if(i===16)return"int32";if(i===32)return"int64"}if(e&&n||o&&a){let c=Math.max(s,i);return e?c===64?"int64":c===32?"int32":c===16?"int16":"int8":c===64?"uint64":c===32?"uint32":c===16?"uint16":"uint8"}return e&&a?s>i?r:i===8?"int16":i===16?"int32":i===32?"int64":"float64":o&&n?i>s?t:s===8?"int16":s===16?"int32":s===32?"int64":"float64":"float64"}var x=class r{constructor(t,e,n,o,a){this._data=t,this._shape=e,this._strides=n,this._offset=o,this._dtype=a}get shape(){return this._shape}get ndim(){return this._shape.length}get size(){return this._shape.reduce((t,e)=>t*e,1)}get dtype(){return this._dtype}get data(){return this._data}get strides(){return this._strides}get offset(){return this._offset}get isCContiguous(){let t=this._shape,e=this._strides,n=t.length;if(n===0)return!0;if(n===1)return e[0]===1;let o=1;for(let a=n-1;a>=0;a--){if(e[a]!==o)return!1;o*=t[a]}return!0}get isFContiguous(){let t=this._shape,e=this._strides,n=t.length;if(n===0)return!0;if(n===1)return e[0]===1;let o=1;for(let a=0;a<n;a++){if(e[a]!==o)return!1;o*=t[a]}return!0}iget(t){let e=this._shape,n=this._strides,o=e.length,a=M(this._dtype),u;if(o===0)u=this._offset;else{let s=t;u=this._offset;for(let i=0;i<o;i++){let c=1;for(let m=i+1;m<o;m++)c*=e[m];let l=Math.floor(s/c);s=s%c,u+=l*n[i]}}if(a){let s=u*2,i=this._data[s],c=this._data[s+1];return new O(i,c)}return this._data[u]}iset(t,e){let n=this._shape,o=this._strides,a=n.length,u=M(this._dtype),s;if(a===0)s=this._offset;else{let i=t;s=this._offset;for(let c=0;c<a;c++){let l=1;for(let d=c+1;d<a;d++)l*=n[d];let m=Math.floor(i/l);i=i%l,s+=m*o[c]}}if(u){let i=s*2,c,l;e instanceof O?(c=e.re,l=e.im):typeof e=="object"&&e!==null&&"re"in e?(c=e.re,l=e.im??0):(c=Number(e),l=0),this._data[i]=c,this._data[i+1]=l}else this._data[s]=e}get(...t){let e=this._strides,n=this._offset;for(let o=0;o<t.length;o++)n+=t[o]*e[o];if(M(this._dtype)){let o=n*2,a=this._data[o],u=this._data[o+1];return new O(a,u)}return this._data[n]}set(t,e){let n=this._strides,o=this._offset;for(let a=0;a<t.length;a++)o+=t[a]*n[a];if(M(this._dtype)){let a=o*2,u,s;e instanceof O?(u=e.re,s=e.im):typeof e=="object"&&e!==null&&"re"in e?(u=e.re,s=e.im??0):(u=Number(e),s=0),this._data[a]=u,this._data[a+1]=s}else this._data[o]=e}copy(){let t=Array.from(this._shape),e=this._dtype,n=this.size,o=M(e),a=P(e);if(!a)throw new Error(`Cannot copy array with dtype ${e}`);let u=o?n*2:n,s=new a(u);if(this.isCContiguous&&this._offset===0)if(B(e)){let i=this._data,c=s;for(let l=0;l<u;l++)c[l]=i[l]}else s.set(this._data.subarray(0,u));else if(B(e)){let i=s;for(let c=0;c<n;c++)i[c]=this.iget(c)}else if(o){let i=s;for(let c=0;c<n;c++){let l=this.iget(c);i[c*2]=l.re,i[c*2+1]=l.im}}else for(let i=0;i<n;i++)s[i]=this.iget(i);return new r(s,t,r._computeStrides(t),0,e)}static fromData(t,e,n,o,a){let u=o??r._computeStrides(e),s=a??0;return new r(t,e,u,s,n)}static zeros(t,e=X){let n=t.reduce((i,c)=>i*c,1),o=M(e),a=P(e);if(!a)throw new Error(`Cannot create array with dtype ${e}`);let u=o?n*2:n,s=new a(u);return new r(s,t,r._computeStrides(t),0,e)}static ones(t,e=X){let n=t.reduce((i,c)=>i*c,1),o=M(e),a=P(e);if(!a)throw new Error(`Cannot create array with dtype ${e}`);let u=o?n*2:n,s=new a(u);if(B(e))s.fill(BigInt(1));else if(o){let i=s;for(let c=0;c<n;c++)i[c*2]=1,i[c*2+1]=0}else s.fill(1);return new r(s,t,r._computeStrides(t),0,e)}static _computeStrides(t){let e=new Array(t.length),n=1;for(let o=t.length-1;o>=0;o--)e[o]=n,n*=t[o];return e}};function ar(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 yr(r){if(r.length===0)return[];if(r.length===1)return Array.from(r[0]);let t=Math.max(...r.map(n=>n.length)),e=new Array(t);for(let n=0;n<t;n++){let o=1;for(let a of r){let u=a.length-t+n,s=u<0?1:a[u];if(s!==1){if(o===1)o=s;else if(o!==s)return null}}e[n]=o}return e}function rm(r,t,e){let n=r.length,o=e.length,a=new Array(o).fill(0);for(let u=0;u<n;u++){let s=o-n+u,i=r[u],c=e[s];if(i===c)a[s]=t[u];else if(i===1)a[s]=0;else throw new Error("Invalid broadcast")}return a}function lr(r,t){let e=rm(r.shape,r.strides,t);return x.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function Gt(...r){let t=yr(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 Ir(r,t){let e=r.length,n=t.length,o=Math.max(e,n),a=new Array(o);for(let u=0;u<o;u++){let s=u<o-e?1:r[u-(o-e)],i=u<o-n?1:t[u-(o-n)];if(s===i)a[u]=s;else if(s===1)a[u]=i;else if(i===1)a[u]=s;else throw new Error(`operands could not be broadcast together with shapes ${JSON.stringify(Array.from(r))} ${JSON.stringify(Array.from(t))}`)}return a}function tm(r,t,e){let n=r.length,o=e.length,a=new Array(o).fill(0);for(let u=0;u<n;u++){let s=o-n+u,i=r[u],c=e[s];if(i===c)a[s]=t[u];else if(i===1)a[s]=0;else throw new Error("Invalid broadcast")}return a}function pt(r,t){let e=tm(r.shape,r.strides,t);return x.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function J(r,t,e,n){let o=Ir(r.shape,t.shape),a=pt(r,o),u=pt(t,o),s=G(r.dtype,t.dtype),i=x.zeros(o,s),c=i.data,l=i.size;if(B(s)){let m=c;for(let d=0;d<l;d++){let p=a.iget(d),f=u.iget(d),y=p instanceof O?p.re:p,g=f instanceof O?f.re:f,h=typeof y=="bigint"?y:BigInt(Math.round(y)),b=typeof g=="bigint"?g:BigInt(Math.round(g));n==="add"?m[d]=h+b:n==="subtract"?m[d]=h-b:n==="multiply"?m[d]=h*b:n==="divide"?m[d]=h/b:m[d]=BigInt(Math.round(e(Number(h),Number(b))))}}else{let m=B(r.dtype)||B(t.dtype);for(let d=0;d<l;d++){let p=a.iget(d),f=u.iget(d),y=Number(p),g=Number(f);c[d]=e(y,g)}}return i}function fr(r,t,e){let n=Ir(r.shape,t.shape),o=pt(r,n),a=pt(t,n),u=n.reduce((c,l)=>c*l,1),s=new Uint8Array(u),i=B(r.dtype)||B(t.dtype);for(let c=0;c<u;c++){let l=o.iget(c),m=a.iget(c),d=Number(l),p=Number(m);s[c]=e(d,p)?1:0}return x.fromData(s,n,"bool")}function Y(r,t,e=!0){let n=r.dtype,o=Array.from(r.shape),a=r.size,s=e?n:n!=="float32"&&n!=="float64"?"float64":n,i=x.zeros(o,s),c=i.data,l=r.data;if(B(n))if(B(s)){let m=c;for(let d=0;d<a;d++){let p=Number(l[d]);m[d]=BigInt(Math.round(t(p)))}}else for(let m=0;m<a;m++)c[m]=t(Number(l[m]));else for(let m=0;m<a;m++)c[m]=t(Number(l[m]));return i}function Wt(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function ur(r,t){return[r[t*2],r[t*2+1]]}function Nr(r,t,e,n){r[t*2]=e,r[t*2+1]=n}function vn(r,t){return typeof t=="number"?am(r,t):Wt(r,t)?em(r,t):J(r,t,(e,n)=>e+n,"add")}function em(r,t){let e=G(r.dtype,t.dtype),n=x.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(M(e)){let i=s,c=M(r.dtype),l=M(t.dtype);for(let m=0;m<o;m++){let[d,p]=c?ur(a,m):[Number(a[m]),0],[f,y]=l?ur(u,m):[Number(u[m]),0];Nr(i,m,d+f,p+y)}return n}if(B(e)){let i=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),d=typeof u[l]=="bigint"?u[l]:BigInt(Math.round(Number(u[l])));i[l]=m+d}else{let l=a,m=u;for(let d=0;d<o;d++)i[d]=l[d]+m[d]}}else if(B(r.dtype)||B(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof u[c]=="bigint"?Number(u[c]):u[c];s[c]=l+m}else for(let c=0;c<o;c++)s[c]=a[c]+u[c];return n}function En(r,t){return typeof t=="number"?sm(r,t):Wt(r,t)?nm(r,t):J(r,t,(e,n)=>e-n,"subtract")}function nm(r,t){let e=G(r.dtype,t.dtype),n=x.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(M(e)){let i=s,c=M(r.dtype),l=M(t.dtype);for(let m=0;m<o;m++){let[d,p]=c?ur(a,m):[Number(a[m]),0],[f,y]=l?ur(u,m):[Number(u[m]),0];Nr(i,m,d-f,p-y)}return n}if(B(e)){let i=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),d=typeof u[l]=="bigint"?u[l]:BigInt(Math.round(Number(u[l])));i[l]=m-d}else{let l=a,m=u;for(let d=0;d<o;d++)i[d]=l[d]-m[d]}}else if(B(r.dtype)||B(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof u[c]=="bigint"?Number(u[c]):u[c];s[c]=l-m}else for(let c=0;c<o;c++)s[c]=a[c]-u[c];return n}function Tn(r,t){return typeof t=="number"?im(r,t):Wt(r,t)?om(r,t):J(r,t,(e,n)=>e*n,"multiply")}function om(r,t){let e=G(r.dtype,t.dtype),n=x.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(M(e)){let i=s,c=M(r.dtype),l=M(t.dtype);for(let m=0;m<o;m++){let[d,p]=c?ur(a,m):[Number(a[m]),0],[f,y]=l?ur(u,m):[Number(u[m]),0],g=d*f-p*y,h=d*y+p*f;Nr(i,m,g,h)}return n}if(B(e)){let i=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),d=typeof u[l]=="bigint"?u[l]:BigInt(Math.round(Number(u[l])));i[l]=m*d}else{let l=a,m=u;for(let d=0;d<o;d++)i[d]=l[d]*m[d]}}else if(B(r.dtype)||B(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof u[c]=="bigint"?Number(u[c]):u[c];s[c]=l*m}else for(let c=0;c<o;c++)s[c]=a[c]*u[c];return n}function On(r,t){if(typeof t=="number")return um(r,t);let e=M(r.dtype),n=M(t.dtype);if(e||n){let l=G(r.dtype,t.dtype),m=x.zeros(Array.from(r.shape),l),d=m.data,p=r.size,f=r.data,y=t.data;for(let g=0;g<p;g++){let[h,b]=e?ur(f,g):[Number(f[g]),0],[A,S]=n?ur(y,g):[Number(y[g]),0],D=A*A+S*S,w=(h*A+b*S)/D,N=(b*A-h*S)/D;Nr(d,g,w,N)}return m}let o=r.dtype==="float64",a=t.dtype==="float64",u=r.dtype==="float32",s=t.dtype==="float32";if(o||a){let l=o?r:Tr(r,"float64"),m=a?t:Tr(t,"float64");return J(l,m,(d,p)=>d/p,"divide")}if(u||s){let l=u?r:Tr(r,"float32"),m=s?t:Tr(t,"float32");return J(l,m,(d,p)=>d/p,"divide")}let i=Tr(r,"float64"),c=Tr(t,"float64");return J(i,c,(l,m)=>l/m,"divide")}function Tr(r,t){let e=x.zeros(Array.from(r.shape),t),n=r.size,o=r.data,a=e.data;for(let u=0;u<n;u++)a[u]=Number(o[u]);return e}function am(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=x.zeros(n,e),s=u.data;if(M(e)){let i=o,c=s;for(let l=0;l<a;l++){let[m,d]=ur(i,l);Nr(c,l,m+t,d)}}else if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]+l}else for(let i=0;i<a;i++)s[i]=Number(o[i])+t;return u}function sm(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=x.zeros(n,e),s=u.data;if(M(e)){let i=o,c=s;for(let l=0;l<a;l++){let[m,d]=ur(i,l);Nr(c,l,m-t,d)}}else if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]-l}else for(let i=0;i<a;i++)s[i]=Number(o[i])-t;return u}function im(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=x.zeros(n,e),s=u.data;if(M(e)){let i=o,c=s;for(let l=0;l<a;l++){let[m,d]=ur(i,l);Nr(c,l,m*t,d*t)}}else if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]*l}else for(let i=0;i<a;i++)s[i]=Number(o[i])*t;return u}function um(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size;if(M(e)){let l=x.zeros(n,e),m=o,d=l.data;for(let p=0;p<a;p++){let[f,y]=ur(m,p);Nr(d,p,f/t,y/t)}return l}let s=e!=="float32"&&e!=="float64"?"float64":e,i=x.zeros(n,s),c=i.data;if(B(e))for(let l=0;l<a;l++)c[l]=Number(o[l])/t;else for(let l=0;l<a;l++)c[l]=Number(o[l])/t;return i}function Cn(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size;if(M(t)){let s=Zr(t),i=x.zeros(e,s),c=i.data,l=n;for(let m=0;m<o;m++){let d=l[m*2],p=l[m*2+1];c[m]=Math.sqrt(d*d+p*p)}return i}let a=x.zeros(e,t),u=a.data;if(B(t)){let s=n,i=u;for(let c=0;c<o;c++){let l=s[c];i[c]=l<0n?-l:l}}else for(let s=0;s<o;s++)u[s]=Math.abs(Number(n[s]));return a}function Un(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=x.zeros(e,t),u=a.data;if(M(t)){let s=n,i=u;for(let c=0;c<o;c++){let[l,m]=ur(s,c);Nr(i,c,-l,-m)}}else if(B(t)){let s=n,i=u;for(let c=0;c<o;c++)i[c]=-s[c]}else for(let s=0;s<o;s++)u[s]=-Number(n[s]);return a}function $n(r){q(r.dtype,"sign","Sign is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=x.zeros(e,t),u=a.data;if(B(t)){let s=n,i=u;for(let c=0;c<o;c++){let l=s[c];i[c]=l>0n?1n:l<0n?-1n:0n}}else for(let s=0;s<o;s++){let i=Number(n[s]);u[s]=i>0?1:i<0?-1:0}return a}function dt(r,t){return q(r.dtype,"mod","Modulo is not defined for complex numbers."),typeof t!="number"&&q(t.dtype,"mod","Modulo is not defined for complex numbers."),typeof t=="number"?cm(r,t):J(r,t,(e,n)=>(e%n+n)%n,"mod")}function cm(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=x.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++){let d=i[m];c[m]=(d%l+l)%l}}else for(let i=0;i<a;i++){let c=Number(o[i]);s[i]=(c%t+t)%t}return u}function Yt(r,t){return q(r.dtype,"floor_divide","Floor division is not defined for complex numbers."),typeof t!="number"&&q(t.dtype,"floor_divide","Floor division is not defined for complex numbers."),typeof t=="number"?lm(r,t):J(r,t,(e,n)=>Math.floor(e/n),"floor_divide")}function lm(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=x.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]/l}else for(let i=0;i<a;i++)s[i]=Math.floor(Number(o[i])/t);return u}function Rn(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=x.zeros(e,t),u=a.data;if(M(t)){let s=n,i=u;for(let c=0;c<o;c++)i[c*2]=s[c*2],i[c*2+1]=s[c*2+1]}else for(let s=0;s<o;s++)u[s]=n[s];return a}function kn(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size;if(M(t)){let c=x.zeros(e,t),l=n,m=c.data;for(let d=0;d<o;d++){let p=l[d*2],f=l[d*2+1],y=p*p+f*f;m[d*2]=p/y,m[d*2+1]=-f/y}return c}let u=t!=="float32"&&t!=="float64"?"float64":t,s=x.zeros(e,u),i=s.data;if(B(t))for(let c=0;c<o;c++)i[c]=1/Number(n[c]);else for(let c=0;c<o;c++)i[c]=1/Number(n[c]);return s}function qn(r){let t=r.dtype;q(t,"cbrt","cbrt is not supported for complex numbers.");let e=Array.from(r.shape),n=r.data,o=r.size,u=t!=="float32"&&t!=="float64"?"float64":t,s=x.zeros(e,u),i=s.data;for(let c=0;c<o;c++)i[c]=Math.cbrt(Number(n[c]));return s}function Vn(r){let t=r.dtype;q(t,"fabs","fabs is only for real numbers. Use absolute() for complex.");let e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",u=x.zeros(e,a),s=u.data;for(let i=0;i<o;i++)s[i]=Math.abs(Number(n[i]));return u}function jn(r,t){let e=Yt(r,t),n=dt(r,t);return[e,n]}function Pn(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=x.zeros(e,t),u=a.data;if(M(t)){let s=n,i=u;for(let c=0;c<o;c++){let l=s[c*2],m=s[c*2+1];i[c*2]=l*l-m*m,i[c*2+1]=2*l*m}}else if(B(t)){let s=n,i=u;for(let c=0;c<o;c++)i[c]=s[c]*s[c]}else for(let s=0;s<o;s++){let i=Number(n[s]);u[s]=i*i}return a}function Ln(r,t){return dt(r,t)}function Zn(r,t){q(r.dtype,"heaviside","Heaviside step function is not defined for complex numbers."),typeof t!="number"&&q(t.dtype,"heaviside","Heaviside step function is not defined for complex numbers.");let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",u=x.zeros(n,a),s=u.data;if(typeof t=="number")for(let i=0;i<o;i++){let c=Number(r.data[i]);c<0?s[i]=0:c===0?s[i]=t:s[i]=1}else{let i=t.data,c=t.shape;if(n.every((l,m)=>l===c[m]))for(let l=0;l<o;l++){let m=Number(r.data[l]);m<0?s[l]=0:m===0?s[l]=Number(i[l]):s[l]=1}else for(let l=0;l<o;l++){let m=Number(r.data[l]),d=l%t.size;m<0?s[l]=0:m===0?s[l]=Number(i[d]):s[l]=1}}return u}function Gn(r,t){let e=r.dtype;if(M(e)){let n=r.data,o=r.size,a=x.zeros(Array.from(r.shape),e),u=a.data;if(typeof t=="number")for(let s=0;s<o;s++){let i=n[s*2],c=n[s*2+1],l=Math.hypot(i,c),m=Math.atan2(c,i),d=Math.pow(l,t),p=m*t;u[s*2]=d*Math.cos(p),u[s*2+1]=d*Math.sin(p)}else{let s=t.data,i=M(t.dtype);for(let c=0;c<o;c++){let l=n[c*2],m=n[c*2+1],d,p;i?(d=s[c*2],p=s[c*2+1]):(d=Number(s[c]),p=0);let f=Math.hypot(l,m),y=Math.atan2(m,l),g=Math.log(f),h=y,b=d*g-p*h,A=d*h+p*g,S=Math.exp(b);u[c*2]=S*Math.cos(A),u[c*2+1]=S*Math.sin(A)}}return a}if(typeof t=="number"){let n=x.zeros(Array.from(r.shape),"float64"),o=n.data,a=r.data,u=r.size;for(let s=0;s<u;s++)o[s]=Math.pow(Number(a[s]),t);return n}return J(r,t,(n,o)=>Math.pow(n,o),"float_power")}function Wn(r,t){if(q(r.dtype,"fmod","fmod is not defined for complex numbers."),typeof t!="number"&&q(t.dtype,"fmod","fmod is not defined for complex numbers."),typeof t=="number"){let e=r.copy(),n=e.data,o=r.size;for(let a=0;a<o;a++){let u=Number(n[a]);n[a]=u-Math.trunc(u/t)*t}return e}return J(r,t,(e,n)=>e-Math.trunc(e/n)*n,"fmod")}function Yn(r){q(r.dtype,"frexp","frexp is not defined for complex numbers.");let t=x.zeros(Array.from(r.shape),"float64"),e=x.zeros(Array.from(r.shape),"int32"),n=t.data,o=e.data,a=r.data,u=r.size;for(let s=0;s<u;s++){let i=Number(a[s]);if(i===0||!isFinite(i))n[s]=i,o[s]=0;else{let c=Math.floor(Math.log2(Math.abs(i)))+1,l=i/Math.pow(2,c);n[s]=l,o[s]=c}}return[t,e]}function Hn(r,t){q(r.dtype,"gcd","GCD is only defined for integers."),typeof t!="number"&&q(t.dtype,"gcd","GCD is only defined for integers.");let e=(i,c)=>{for(i=Math.abs(Math.trunc(i)),c=Math.abs(Math.trunc(c));c!==0;){let l=c;c=i%c,i=l}return i};if(typeof t=="number"){let i=x.zeros(Array.from(r.shape),"int32"),c=i.data,l=r.data,m=r.size,d=Math.abs(Math.trunc(t));for(let p=0;p<m;p++)c[p]=e(Number(l[p]),d);return i}let n=J(r,t,e,"gcd"),o=x.zeros(Array.from(n.shape),"int32"),a=o.data,u=n.data,s=n.size;for(let i=0;i<s;i++)a[i]=Math.round(Number(u[i]));return o}function Jn(r,t){q(r.dtype,"lcm","LCM is only defined for integers."),typeof t!="number"&&q(t.dtype,"lcm","LCM is only defined for integers.");let e=(c,l)=>{for(c=Math.abs(Math.trunc(c)),l=Math.abs(Math.trunc(l));l!==0;){let m=l;l=c%l,c=m}return c},n=(c,l)=>(c=Math.abs(Math.trunc(c)),l=Math.abs(Math.trunc(l)),c===0||l===0?0:c*l/e(c,l));if(typeof t=="number"){let c=x.zeros(Array.from(r.shape),"int32"),l=c.data,m=r.data,d=r.size,p=Math.abs(Math.trunc(t));for(let f=0;f<d;f++)l[f]=n(Number(m[f]),p);return c}let o=J(r,t,n,"lcm"),a=x.zeros(Array.from(o.shape),"int32"),u=a.data,s=o.data,i=o.size;for(let c=0;c<i;c++)u[c]=Math.round(Number(s[c]));return a}function Xn(r,t){if(q(r.dtype,"ldexp","ldexp is not defined for complex numbers."),typeof t!="number"&&q(t.dtype,"ldexp","ldexp is not defined for complex numbers."),typeof t=="number"){let e=x.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.data,a=r.size,u=Math.pow(2,t);for(let s=0;s<a;s++)n[s]=Number(o[s])*u;return e}return J(r,t,(e,n)=>e*Math.pow(2,n),"ldexp")}function Qn(r){q(r.dtype,"modf","modf is not defined for complex numbers.");let t=x.zeros(Array.from(r.shape),"float64"),e=x.zeros(Array.from(r.shape),"float64"),n=t.data,o=e.data,a=r.data,u=r.size;for(let s=0;s<u;s++){let i=Number(a[s]),c=Math.trunc(i);o[s]=c,n[s]=i-c}return[t,e]}function Fr(r,t){return[r[t*2],r[t*2+1]]}function Kn(r,t){if(M(r.dtype))return Fr(r.data,t);let e=r.iget(t);return e instanceof O?[e.re,e.im]:[Number(e),0]}function Or(r,t,e){let n=yr([Array.from(r.shape),Array.from(t.shape)]);if(!n)throw new Error("Cannot broadcast arrays together");let o=lr(r,n),a=lr(t,n),u=n.reduce((i,c)=>i*c,1),s=new Uint8Array(u);for(let i=0;i<u;i++){let[c,l]=Kn(o,i),[m,d]=Kn(a,i);s[i]=e(c,l,m,d)?1:0}return x.fromData(s,n,"bool")}function ro(r,t){return typeof t=="number"?mm(r,t):M(r.dtype)||M(t.dtype)?Or(r,t,(e,n,o,a)=>e!==o?e>o:n>a):fr(r,t,(e,n)=>e>n)}function to(r,t){return typeof t=="number"?ym(r,t):M(r.dtype)||M(t.dtype)?Or(r,t,(e,n,o,a)=>e!==o?e>=o:n>=a):fr(r,t,(e,n)=>e>=n)}function eo(r,t){return typeof t=="number"?pm(r,t):M(r.dtype)||M(t.dtype)?Or(r,t,(e,n,o,a)=>e!==o?e<o:n<a):fr(r,t,(e,n)=>e<n)}function no(r,t){return typeof t=="number"?dm(r,t):M(r.dtype)||M(t.dtype)?Or(r,t,(e,n,o,a)=>e!==o?e<=o:n<=a):fr(r,t,(e,n)=>e<=n)}function oo(r,t){return typeof t=="number"?gm(r,t):M(r.dtype)||M(t.dtype)?Or(r,t,(e,n,o,a)=>e===o&&n===a):fr(r,t,(e,n)=>e===n)}function ao(r,t){return typeof t=="number"?Am(r,t):M(r.dtype)||M(t.dtype)?Or(r,t,(e,n,o,a)=>e!==o||n!==a):fr(r,t,(e,n)=>e!==n)}function Ht(r,t,e=1e-5,n=1e-8){return typeof t=="number"?bm(r,t,e,n):fr(r,t,(o,a)=>{let u=Math.abs(o-a),s=n+e*Math.abs(a);return u<=s})}function so(r,t,e=1e-5,n=1e-8){let o=Ht(r,t,e,n),a=o.data;for(let u=0;u<o.size;u++)if(a[u]===0)return!1;return!0}function io(r,t){let e=[Array.from(r.shape),Array.from(t.shape)],n=yr(e);if(n===null)return!1;let o=lr(r,n),a=lr(t,n),u=n.length,s=n.reduce((l,m)=>l*m,1),i=B(o.dtype),c=B(a.dtype);for(let l=0;l<s;l++){let m=l,d=new Array(u);for(let y=u-1;y>=0;y--)d[y]=m%n[y],m=Math.floor(m/n[y]);let p=o.get(...d),f=a.get(...d);if(i||c){let y=typeof p=="bigint"?p:BigInt(Number(p)),g=typeof f=="bigint"?f:BigInt(Number(f));if(y!==g)return!1}else if(p!==f)return!1}return!0}function mm(r,t){let e=new Uint8Array(r.size),n=r.data;if(M(r.dtype)){let o=n;for(let a=0;a<r.size;a++){let[u,s]=Fr(o,a);e[a]=(u!==t?u>t:s>0)?1:0}}else for(let o=0;o<r.size;o++)e[o]=n[o]>t?1:0;return x.fromData(e,Array.from(r.shape),"bool")}function ym(r,t){let e=new Uint8Array(r.size),n=r.data;if(M(r.dtype)){let o=n;for(let a=0;a<r.size;a++){let[u,s]=Fr(o,a);e[a]=(u!==t?u>=t:s>=0)?1:0}}else for(let o=0;o<r.size;o++)e[o]=n[o]>=t?1:0;return x.fromData(e,Array.from(r.shape),"bool")}function pm(r,t){let e=new Uint8Array(r.size),n=r.data;if(M(r.dtype)){let o=n;for(let a=0;a<r.size;a++){let[u,s]=Fr(o,a);e[a]=(u!==t?u<t:s<0)?1:0}}else for(let o=0;o<r.size;o++)e[o]=n[o]<t?1:0;return x.fromData(e,Array.from(r.shape),"bool")}function dm(r,t){let e=new Uint8Array(r.size),n=r.data;if(M(r.dtype)){let o=n;for(let a=0;a<r.size;a++){let[u,s]=Fr(o,a);e[a]=(u!==t?u<=t:s<=0)?1:0}}else for(let o=0;o<r.size;o++)e[o]=n[o]<=t?1:0;return x.fromData(e,Array.from(r.shape),"bool")}function gm(r,t){let e=new Uint8Array(r.size),n=r.data,o=r.dtype;if(M(o)){let a=n;for(let u=0;u<r.size;u++){let[s,i]=Fr(a,u);e[u]=s===t&&i===0?1:0}}else if(B(o)){let a=BigInt(Math.round(t)),u=n;for(let s=0;s<r.size;s++)e[s]=u[s]===a?1:0}else for(let a=0;a<r.size;a++)e[a]=n[a]===t?1:0;return x.fromData(e,Array.from(r.shape),"bool")}function Am(r,t){let e=new Uint8Array(r.size),n=r.data,o=r.dtype;if(M(o)){let a=n;for(let u=0;u<r.size;u++){let[s,i]=Fr(a,u);e[u]=s!==t||i!==0?1:0}}else for(let a=0;a<r.size;a++)e[a]=n[a]!==t?1:0;return x.fromData(e,Array.from(r.shape),"bool")}function bm(r,t,e,n){let o=new Uint8Array(r.size),a=r.data,u=r.dtype;if(B(u)){let s=a;for(let i=0;i<r.size;i++){let c=Number(s[i]),l=Math.abs(c-t),m=n+e*Math.abs(t);o[i]=l<=m?1:0}}else for(let s=0;s<r.size;s++){let i=Number(a[s]),c=Math.abs(i-t),l=n+e*Math.abs(t);o[s]=c<=l?1:0}return x.fromData(o,Array.from(r.shape),"bool")}function U(r,t){let e=0,n=1;for(let o=r.length-1;o>=0;o--)e+=r[o]*n,n*=t[o];return e}function $(r,t,e,n){let o=n.length,a=new Array(o),u=Array.from(n).filter((i,c)=>c!==t),s=r;for(let i=u.length-1;i>=0;i--)a[i>=t?i+1:i]=s%u[i],s=Math.floor(s/u[i]);return a[t]=e,a}function Gr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,s=r.data;if(t===void 0)if(M(n)){let f=s,y=0,g=0;for(let h=0;h<u;h++)y+=f[h*2],g+=f[h*2+1];return new O(y,g)}else if(B(n)){let f=s,y=BigInt(0);for(let g=0;g<u;g++)y+=f[g];return Number(y)}else{let f=0;for(let y=0;y<u;y++)f+=Number(s[y]);return f}let i=t;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,y)=>y!==i);if(c.length===0)return Gr(r);let l=x.zeros(c,n),m=l.data,d=o[i],p=c.reduce((f,y)=>f*y,1);if(M(n)){let f=s,y=m;for(let g=0;g<p;g++){let h=0,b=0;for(let A=0;A<d;A++){let S=$(g,i,A,o),D=U(S,o);h+=f[D*2],b+=f[D*2+1]}y[g*2]=h,y[g*2+1]=b}}else if(B(n)){let f=s,y=m;for(let g=0;g<p;g++){let h=BigInt(0);for(let b=0;b<d;b++){let A=$(g,i,b,o),S=U(A,o);h+=f[S]}y[g]=h}}else for(let f=0;f<p;f++){let y=0;for(let g=0;g<d;g++){let h=$(f,i,g,o),b=U(h,o);y+=Number(s[b])}m[f]=y}if(e){let f=[...o];return f[i]=1,x.fromData(m,f,n)}return l}function gt(r,t,e=!1){let n=r.dtype,o=r.shape;if(t===void 0){let d=Gr(r);return d instanceof O?new O(d.re/r.size,d.im/r.size):d/r.size}let a=t;if(a<0&&(a=o.length+a),a<0||a>=o.length)throw new Error(`axis ${t} is out of bounds for array of dimension ${o.length}`);let u=Gr(r,t,e);if(typeof u=="number")return u/o[a];if(u instanceof O)return new O(u.re/o[a],u.im/o[a]);let s=o[a],i=n;M(n)?i=n:(B(n)||n.startsWith("int")||n.startsWith("uint"))&&(i="float64");let c=x.zeros(Array.from(u.shape),i),l=c.data,m=u.data;if(M(n)){let d=m,p=l,f=u.size;for(let y=0;y<f;y++)p[y*2]=d[y*2]/s,p[y*2+1]=d[y*2+1]/s}else if(B(n)){let d=m;for(let p=0;p<l.length;p++)l[p]=Number(d[p])/s}else for(let d=0;d<l.length;d++)l[d]=Number(m[d])/s;return c}function Cr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,s=r.data;if(M(n)){let f=s;if(t===void 0){if(u===0)throw new Error("max of empty array");let D=f[0],w=f[1];for(let N=1;N<u;N++){let I=f[N*2],z=f[N*2+1];if(isNaN(I)||isNaN(z))return new O(NaN,NaN);(I>D||I===D&&z>w)&&(D=I,w=z)}return isNaN(D)||isNaN(w)?new O(NaN,NaN):new O(D,w)}let y=t;if(y<0&&(y=a+y),y<0||y>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let g=Array.from(o).filter((D,w)=>w!==y);if(g.length===0)return Cr(r);let h=x.zeros(g,n),b=h.data,A=o[y],S=g.reduce((D,w)=>D*w,1);for(let D=0;D<S;D++){let w=$(D,y,0,o),N=U(w,o),I=f[N*2],z=f[N*2+1];for(let F=1;F<A;F++){let _=$(D,y,F,o),E=U(_,o),T=f[E*2],C=f[E*2+1];if(isNaN(T)||isNaN(C)){I=NaN,z=NaN;break}(T>I||T===I&&C>z)&&(I=T,z=C)}b[D*2]=I,b[D*2+1]=z}if(e){let D=[...o];return D[y]=1,x.fromData(b,D,n)}return h}if(t===void 0){if(u===0)throw new Error("max of empty array");let f=s[0];for(let y=1;y<u;y++)s[y]>f&&(f=s[y]);return Number(f)}let i=t;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,y)=>y!==i);if(c.length===0)return Cr(r);let l=x.zeros(c,n),m=l.data,d=o[i],p=c.reduce((f,y)=>f*y,1);if(B(n)){let f=s,y=m;for(let g=0;g<p;g++){let h=$(g,i,0,o),b=U(h,o),A=f[b];for(let S=1;S<d;S++){let D=$(g,i,S,o),w=U(D,o),N=f[w];N>A&&(A=N)}y[g]=A}}else for(let f=0;f<p;f++){let y=-1/0;for(let g=0;g<d;g++){let h=$(f,i,g,o),b=U(h,o),A=Number(s[b]);A>y&&(y=A)}m[f]=y}if(e){let f=[...o];return f[i]=1,x.fromData(m,f,n)}return l}function Jt(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,s=r.data;if(t===void 0)if(M(n)){let f=s,y=1,g=0;for(let h=0;h<u;h++){let b=f[h*2],A=f[h*2+1],S=y*b-g*A,D=y*A+g*b;y=S,g=D}return new O(y,g)}else if(B(n)){let f=s,y=BigInt(1);for(let g=0;g<u;g++)y*=f[g];return Number(y)}else{let f=1;for(let y=0;y<u;y++)f*=Number(s[y]);return f}let i=t;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,y)=>y!==i);if(c.length===0)return Jt(r);let l=x.zeros(c,n),m=l.data,d=o[i],p=c.reduce((f,y)=>f*y,1);if(M(n)){let f=s,y=m;for(let g=0;g<p;g++){let h=1,b=0;for(let A=0;A<d;A++){let S=$(g,i,A,o),D=U(S,o),w=f[D*2],N=f[D*2+1],I=h*w-b*N,z=h*N+b*w;h=I,b=z}y[g*2]=h,y[g*2+1]=b}}else if(B(n)){let f=s,y=m;for(let g=0;g<p;g++){let h=BigInt(1);for(let b=0;b<d;b++){let A=$(g,i,b,o),S=U(A,o);h*=f[S]}y[g]=h}}else for(let f=0;f<p;f++){let y=1;for(let g=0;g<d;g++){let h=$(f,i,g,o),b=U(h,o);y*=Number(s[b])}m[f]=y}if(e){let f=[...o];return f[i]=1,x.fromData(m,f,n)}return l}function Ur(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,s=r.data;if(M(n)){let f=s;if(t===void 0){if(u===0)throw new Error("min of empty array");let D=f[0],w=f[1];for(let N=1;N<u;N++){let I=f[N*2],z=f[N*2+1];if(isNaN(I)||isNaN(z))return new O(NaN,NaN);(I<D||I===D&&z<w)&&(D=I,w=z)}return isNaN(D)||isNaN(w)?new O(NaN,NaN):new O(D,w)}let y=t;if(y<0&&(y=a+y),y<0||y>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let g=Array.from(o).filter((D,w)=>w!==y);if(g.length===0)return Ur(r);let h=x.zeros(g,n),b=h.data,A=o[y],S=g.reduce((D,w)=>D*w,1);for(let D=0;D<S;D++){let w=$(D,y,0,o),N=U(w,o),I=f[N*2],z=f[N*2+1];for(let F=1;F<A;F++){let _=$(D,y,F,o),E=U(_,o),T=f[E*2],C=f[E*2+1];if(isNaN(T)||isNaN(C)){I=NaN,z=NaN;break}(T<I||T===I&&C<z)&&(I=T,z=C)}b[D*2]=I,b[D*2+1]=z}if(e){let D=[...o];return D[y]=1,x.fromData(b,D,n)}return h}if(t===void 0){if(u===0)throw new Error("min of empty array");let f=s[0];for(let y=1;y<u;y++)s[y]<f&&(f=s[y]);return Number(f)}let i=t;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,y)=>y!==i);if(c.length===0)return Ur(r);let l=x.zeros(c,n),m=l.data,d=o[i],p=c.reduce((f,y)=>f*y,1);if(B(n)){let f=s,y=m;for(let g=0;g<p;g++){let h=$(g,i,0,o),b=U(h,o),A=f[b];for(let S=1;S<d;S++){let D=$(g,i,S,o),w=U(D,o),N=f[w];N<A&&(A=N)}y[g]=A}}else for(let f=0;f<p;f++){let y=1/0;for(let g=0;g<d;g++){let h=$(f,i,g,o),b=U(h,o),A=Number(s[b]);A<y&&(y=A)}m[f]=y}if(e){let f=[...o];return f[i]=1,x.fromData(m,f,n)}return l}function zr(r,t,e,n){return r<e?-1:r>e?1:t<n?-1:t>n?1:0}function Xt(r,t){let e=r.dtype,n=M(e),o=r.shape,a=o.length,u=r.size,s=r.data;if(t===void 0){if(u===0)throw new Error("argmin of empty array");if(n){let g=s,h=g[0],b=g[1],A=0;for(let S=1;S<u;S++){let D=g[S*2],w=g[S*2+1];zr(D,w,h,b)<0&&(h=D,b=w,A=S)}return A}let f=s[0],y=0;for(let g=1;g<u;g++)s[g]<f&&(f=s[g],y=g);return y}let i=t;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,y)=>y!==i);if(c.length===0)return Xt(r);let l=x.zeros(c,"int32"),m=l.data,d=o[i],p=c.reduce((f,y)=>f*y,1);if(n){let f=s;for(let y=0;y<p;y++){let g=$(y,i,0,o),h=U(g,o),b=f[h*2],A=f[h*2+1],S=0;for(let D=1;D<d;D++){let w=$(y,i,D,o),N=U(w,o),I=f[N*2],z=f[N*2+1];zr(I,z,b,A)<0&&(b=I,A=z,S=D)}m[y]=S}}else if(B(e)){let f=s;for(let y=0;y<p;y++){let g=$(y,i,0,o),h=U(g,o),b=f[h],A=0;for(let S=1;S<d;S++){let D=$(y,i,S,o),w=U(D,o),N=f[w];N<b&&(b=N,A=S)}m[y]=A}}else for(let f=0;f<p;f++){let y=1/0,g=0;for(let h=0;h<d;h++){let b=$(f,i,h,o),A=U(b,o),S=Number(s[A]);S<y&&(y=S,g=h)}m[f]=g}return l}function Qt(r,t){let e=r.dtype,n=M(e),o=r.shape,a=o.length,u=r.size,s=r.data;if(t===void 0){if(u===0)throw new Error("argmax of empty array");if(n){let g=s,h=g[0],b=g[1],A=0;for(let S=1;S<u;S++){let D=g[S*2],w=g[S*2+1];zr(D,w,h,b)>0&&(h=D,b=w,A=S)}return A}let f=s[0],y=0;for(let g=1;g<u;g++)s[g]>f&&(f=s[g],y=g);return y}let i=t;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,y)=>y!==i);if(c.length===0)return Qt(r);let l=x.zeros(c,"int32"),m=l.data,d=o[i],p=c.reduce((f,y)=>f*y,1);if(n){let f=s;for(let y=0;y<p;y++){let g=$(y,i,0,o),h=U(g,o),b=f[h*2],A=f[h*2+1],S=0;for(let D=1;D<d;D++){let w=$(y,i,D,o),N=U(w,o),I=f[N*2],z=f[N*2+1];zr(I,z,b,A)>0&&(b=I,A=z,S=D)}m[y]=S}}else if(B(e)){let f=s;for(let y=0;y<p;y++){let g=$(y,i,0,o),h=U(g,o),b=f[h],A=0;for(let S=1;S<d;S++){let D=$(y,i,S,o),w=U(D,o),N=f[w];N>b&&(b=N,A=S)}m[y]=A}}else for(let f=0;f<p;f++){let y=-1/0,g=0;for(let h=0;h<d;h++){let b=$(f,i,h,o),A=U(b,o),S=Number(s[A]);S>y&&(y=S,g=h)}m[f]=g}return l}function Kt(r,t,e=0,n=!1){let o=r.dtype,a=r.shape,u=a.length,s=r.size,i=r.data,c=gt(r,t,n);if(t===void 0){if(M(o)){let S=i,D=c,w=0;for(let N=0;N<s;N++){let I=S[N*2],z=S[N*2+1],F=I-D.re,_=z-D.im;w+=F*F+_*_}return w/(s-e)}let b=c,A=0;for(let S=0;S<s;S++){let D=Number(i[S])-b;A+=D*D}return A/(s-e)}let l=t;if(l<0&&(l=u+l),l<0||l>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let m=a[l],d=c,p=d.data,f=n?d.shape:Array.from(a).filter((b,A)=>A!==l),y=x.zeros(Array.from(f),"float64"),g=y.data,h=f.reduce((b,A)=>b*A,1);if(M(o)){let b=i,A=p;for(let S=0;S<h;S++){let D=0,w=A[S*2],N=A[S*2+1];for(let I=0;I<m;I++){let z=$(S,l,I,a),F=U(z,a),_=b[F*2],E=b[F*2+1],T=_-w,C=E-N;D+=T*T+C*C}g[S]=D/(m-e)}}else for(let b=0;b<h;b++){let A=0,S=Number(p[b]);for(let D=0;D<m;D++){let w=$(b,l,D,a),N=U(w,a),I=Number(i[N])-S;A+=I*I}g[b]=A/(m-e)}return y}function uo(r,t,e=0,n=!1){let o=Kt(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=x.zeros(Array.from(o.shape),"float64"),u=o.data,s=a.data;for(let i=0;i<u.length;i++)s[i]=Math.sqrt(Number(u[i]));return a}function re(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,u=r.data;if(t===void 0){for(let p=0;p<a;p++)if(!u[p])return!1;return!0}let s=t;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let i=Array.from(n).filter((p,f)=>f!==s);if(i.length===0)return re(r);let c=x.zeros(i,"bool"),l=c.data,m=n[s],d=i.reduce((p,f)=>p*f,1);for(let p=0;p<d;p++){let f=!0;for(let y=0;y<m;y++){let g=$(p,s,y,n),h=U(g,n);if(!u[h]){f=!1;break}}l[p]=f?1:0}if(e){let p=[...n];return p[s]=1,x.fromData(l,p,"bool")}return c}function te(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,u=r.data;if(t===void 0){for(let p=0;p<a;p++)if(u[p])return!0;return!1}let s=t;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let i=Array.from(n).filter((p,f)=>f!==s);if(i.length===0)return te(r);let c=x.zeros(i,"bool"),l=c.data,m=n[s],d=i.reduce((p,f)=>p*f,1);for(let p=0;p<d;p++){let f=!1;for(let y=0;y<m;y++){let g=$(p,s,y,n),h=U(g,n);if(u[h]){f=!0;break}}l[p]=f?1:0}if(e){let p=[...n];return p[s]=1,x.fromData(l,p,"bool")}return c}function ee(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let p=a,f=r.size;if(t===void 0){let N=x.zeros([f],e),I=N.data,z=0,F=0;for(let _=0;_<f;_++)z+=p[_*2],F+=p[_*2+1],I[_*2]=z,I[_*2+1]=F;return N}let y=t;if(y<0&&(y=o+y),y<0||y>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let g=x.zeros([...n],e),h=g.data,b=n[y],A=[],S=1;for(let N=o-1;N>=0;N--)A.unshift(S),S*=n[N];let D=r.size,w=A[y];for(let N=0;N<D;N++)Math.floor(N/w)%b===0?(h[N*2]=p[N*2],h[N*2+1]=p[N*2+1]):(h[N*2]=h[(N-w)*2]+p[N*2],h[N*2+1]=h[(N-w)*2+1]+p[N*2+1]);return g}if(t===void 0){let p=r.size,f=new Float64Array(p),y=0;for(let g=0;g<p;g++)y+=Number(a[g]),f[g]=y;return x.fromData(f,[p],"float64")}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=new Float64Array(r.size),i=n[u],c=[],l=1;for(let p=o-1;p>=0;p--)c.unshift(l),l*=n[p];let m=r.size,d=c[u];for(let p=0;p<m;p++)Math.floor(p/d)%i===0?s[p]=Number(a[p]):s[p]=s[p-d]+Number(a[p]);return x.fromData(s,[...n],"float64")}function ne(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let p=a,f=r.size;if(t===void 0){let N=x.zeros([f],e),I=N.data,z=1,F=0;for(let _=0;_<f;_++){let E=p[_*2],T=p[_*2+1],C=z*E-F*T,k=z*T+F*E;z=C,F=k,I[_*2]=z,I[_*2+1]=F}return N}let y=t;if(y<0&&(y=o+y),y<0||y>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let g=x.zeros([...n],e),h=g.data,b=n[y],A=[],S=1;for(let N=o-1;N>=0;N--)A.unshift(S),S*=n[N];let D=r.size,w=A[y];for(let N=0;N<D;N++)if(Math.floor(N/w)%b===0)h[N*2]=p[N*2],h[N*2+1]=p[N*2+1];else{let z=h[(N-w)*2],F=h[(N-w)*2+1],_=p[N*2],E=p[N*2+1];h[N*2]=z*_-F*E,h[N*2+1]=z*E+F*_}return g}if(t===void 0){let p=r.size,f=new Float64Array(p),y=1;for(let g=0;g<p;g++)y*=Number(a[g]),f[g]=y;return x.fromData(f,[p],"float64")}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=new Float64Array(r.size),i=n[u],c=[],l=1;for(let p=o-1;p>=0;p--)c.unshift(l),l*=n[p];let m=r.size,d=c[u];for(let p=0;p<m;p++)Math.floor(p/d)%i===0?s[p]=Number(a[p]):s[p]=s[p-d]*Number(a[p]);return x.fromData(s,[...n],"float64")}function oe(r,t,e=!1){let n=r.dtype;if(M(n)){let m=Cr(r,t,e),d=Ur(r,t,e);if(m instanceof O&&d instanceof O)return new O(m.re-d.re,m.im-d.im);let p=m,f=d,y=p.data,g=f.data,h=new Float64Array(p.size*2);for(let b=0;b<p.size;b++)h[b*2]=y[b*2]-g[b*2],h[b*2+1]=y[b*2+1]-g[b*2+1];return x.fromData(h,[...p.shape],n)}let o=Cr(r,t,e),a=Ur(r,t,e);if(typeof o=="number"&&typeof a=="number")return o-a;let u=o,s=a,i=u.data,c=s.data,l=new Float64Array(u.size);for(let m=0;m<u.size;m++)l[m]=Number(i[m])-Number(c[m]);return x.fromData(l,[...u.shape],"float64")}function ae(r,t,e=!1){return Rr(r,.5,t,e)}function se(r,t,e,n=!1){return Rr(r,t/100,e,n)}function Rr(r,t,e,n=!1){if(q(r.dtype,"quantile","Complex numbers are not orderable."),t<0||t>1)throw new Error("Quantile must be between 0 and 1");let o=r.shape,a=o.length,u=r.data;if(e===void 0){let p=[];for(let A=0;A<r.size;A++)p.push(Number(u[A]));p.sort((A,S)=>A-S);let f=p.length,y=t*(f-1),g=Math.floor(y),h=Math.ceil(y);if(g===h)return p[g];let b=y-g;return p[g]*(1-b)+p[h]*b}let s=e;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);let i=Array.from(o).filter((p,f)=>f!==s);if(i.length===0)return Rr(r,t);let c=i.reduce((p,f)=>p*f,1),l=o[s],m=new Float64Array(c);for(let p=0;p<c;p++){let f=[];for(let A=0;A<l;A++){let S=$(p,s,A,o),D=U(S,o);f.push(Number(u[D]))}f.sort((A,S)=>A-S);let y=f.length,g=t*(y-1),h=Math.floor(g),b=Math.ceil(g);if(h===b)m[p]=f[h];else{let A=g-h;m[p]=f[h]*(1-A)+f[b]*A}}let d=x.fromData(m,i,"float64");if(n){let p=[...o];return p[s]=1,x.fromData(m,p,"float64")}return d}function Wr(r,t,e,n=!1){let o=r.dtype,a=r.shape,u=a.length,s=r.data;if(e===void 0)return gt(r,t,n);if(M(o)){let y=s,g=e.data;if(t===void 0){let N=0,I=0,z=0;for(let F=0;F<r.size;F++){let _=Number(g[F%e.size]),E=y[F*2],T=y[F*2+1];N+=E*_,I+=T*_,z+=_}return z===0?new O(NaN,NaN):new O(N/z,I/z)}let h=t;if(h<0&&(h=u+h),h<0||h>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let b=Array.from(a).filter((N,I)=>I!==h);if(b.length===0)return Wr(r,void 0,e);let A=b.reduce((N,I)=>N*I,1),S=a[h],D=x.zeros(b,o),w=D.data;for(let N=0;N<A;N++){let I=0,z=0,F=0;for(let _=0;_<S;_++){let E=$(N,h,_,a),T=U(E,a),C=Number(g[_%e.size]),k=y[T*2],V=y[T*2+1];I+=k*C,z+=V*C,F+=C}F===0?(w[N*2]=NaN,w[N*2+1]=NaN):(w[N*2]=I/F,w[N*2+1]=z/F)}if(n){let N=[...a];return N[h]=1,x.fromData(w,N,o)}return D}if(t===void 0){let y=0,g=0,h=e.data;for(let b=0;b<r.size;b++){let A=Number(h[b%e.size]);y+=Number(s[b])*A,g+=A}return g===0?NaN:y/g}let i=t;if(i<0&&(i=u+i),i<0||i>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let c=Array.from(a).filter((y,g)=>g!==i);if(c.length===0)return Wr(r,void 0,e);let l=c.reduce((y,g)=>y*g,1),m=a[i],d=e.data,p=new Float64Array(l);for(let y=0;y<l;y++){let g=0,h=0;for(let b=0;b<m;b++){let A=$(y,i,b,a),S=U(A,a),D=Number(d[b%e.size]);g+=Number(s[S])*D,h+=D}p[y]=h===0?NaN:g/h}let f=x.fromData(p,c,"float64");if(n){let y=[...a];return y[i]=1,x.fromData(p,y,"float64")}return f}function K(r,t){return isNaN(r)||isNaN(t)}function At(r,t,e=!1){let n=r.dtype,o=M(n),a=r.shape,u=a.length,s=r.data;if(t===void 0){if(o){let y=s,g=0,h=0;for(let b=0;b<r.size;b++){let A=y[b*2],S=y[b*2+1];K(A,S)||(g+=A,h+=S)}return new O(g,h)}let f=0;for(let y=0;y<r.size;y++){let g=Number(s[y]);isNaN(g)||(f+=g)}return f}let i=t;if(i<0&&(i=u+i),i<0||i>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let c=Array.from(a).filter((f,y)=>y!==i);if(c.length===0)return At(r);let l=c.reduce((f,y)=>f*y,1),m=a[i];if(o){let f=s,y=new Float64Array(l*2);for(let g=0;g<l;g++){let h=0,b=0;for(let A=0;A<m;A++){let S=$(g,i,A,a),D=U(S,a),w=f[D*2],N=f[D*2+1];K(w,N)||(h+=w,b+=N)}y[g*2]=h,y[g*2+1]=b}if(e){let g=[...a];return g[i]=1,x.fromData(y,g,n)}return x.fromData(y,c,n)}let d=new Float64Array(l);for(let f=0;f<l;f++){let y=0;for(let g=0;g<m;g++){let h=$(f,i,g,a),b=U(h,a),A=Number(s[b]);isNaN(A)||(y+=A)}d[f]=y}let p=x.fromData(d,c,"float64");if(e){let f=[...a];return f[i]=1,x.fromData(d,f,"float64")}return p}function bt(r,t,e=!1){let n=r.dtype,o=M(n),a=r.shape,u=a.length,s=r.data;if(t===void 0){if(o){let y=s,g=1,h=0;for(let b=0;b<r.size;b++){let A=y[b*2],S=y[b*2+1];if(!K(A,S)){let D=g*A-h*S,w=g*S+h*A;g=D,h=w}}return new O(g,h)}let f=1;for(let y=0;y<r.size;y++){let g=Number(s[y]);isNaN(g)||(f*=g)}return f}let i=t;if(i<0&&(i=u+i),i<0||i>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let c=Array.from(a).filter((f,y)=>y!==i);if(c.length===0)return bt(r);let l=c.reduce((f,y)=>f*y,1),m=a[i];if(o){let f=s,y=new Float64Array(l*2);for(let g=0;g<l;g++){let h=1,b=0;for(let A=0;A<m;A++){let S=$(g,i,A,a),D=U(S,a),w=f[D*2],N=f[D*2+1];if(!K(w,N)){let I=h*w-b*N,z=h*N+b*w;h=I,b=z}}y[g*2]=h,y[g*2+1]=b}if(e){let g=[...a];return g[i]=1,x.fromData(y,g,n)}return x.fromData(y,c,n)}let d=new Float64Array(l);for(let f=0;f<l;f++){let y=1;for(let g=0;g<m;g++){let h=$(f,i,g,a),b=U(h,a),A=Number(s[b]);isNaN(A)||(y*=A)}d[f]=y}let p=x.fromData(d,c,"float64");if(e){let f=[...a];return f[i]=1,x.fromData(d,f,"float64")}return p}function ht(r,t,e=!1){let n=r.dtype,o=M(n),a=r.shape,u=a.length,s=r.data;if(t===void 0){if(o){let g=s,h=0,b=0,A=0;for(let S=0;S<r.size;S++){let D=g[S*2],w=g[S*2+1];K(D,w)||(h+=D,b+=w,A++)}return A===0?new O(NaN,NaN):new O(h/A,b/A)}let f=0,y=0;for(let g=0;g<r.size;g++){let h=Number(s[g]);isNaN(h)||(f+=h,y++)}return y===0?NaN:f/y}let i=t;if(i<0&&(i=u+i),i<0||i>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let c=Array.from(a).filter((f,y)=>y!==i);if(c.length===0)return ht(r);let l=c.reduce((f,y)=>f*y,1),m=a[i];if(o){let f=s,y=new Float64Array(l*2);for(let g=0;g<l;g++){let h=0,b=0,A=0;for(let S=0;S<m;S++){let D=$(g,i,S,a),w=U(D,a),N=f[w*2],I=f[w*2+1];K(N,I)||(h+=N,b+=I,A++)}A===0?(y[g*2]=NaN,y[g*2+1]=NaN):(y[g*2]=h/A,y[g*2+1]=b/A)}if(e){let g=[...a];return g[i]=1,x.fromData(y,g,n)}return x.fromData(y,c,n)}let d=new Float64Array(l);for(let f=0;f<l;f++){let y=0,g=0;for(let h=0;h<m;h++){let b=$(f,i,h,a),A=U(b,a),S=Number(s[A]);isNaN(S)||(y+=S,g++)}d[f]=g===0?NaN:y/g}let p=x.fromData(d,c,"float64");if(e){let f=[...a];return f[i]=1,x.fromData(d,f,"float64")}return p}function $r(r,t,e=0,n=!1){let o=r.dtype,a=r.shape,u=a.length,s=r.data;if(M(o)){let f=s;if(t===void 0){let D=0,w=0,N=0;for(let _=0;_<r.size;_++){let E=f[_*2],T=f[_*2+1];K(E,T)||(D+=E,w+=T,N++)}if(N-e<=0)return NaN;let I=D/N,z=w/N,F=0;for(let _=0;_<r.size;_++){let E=f[_*2],T=f[_*2+1];if(!K(E,T)){let C=E-I,k=T-z;F+=C*C+k*k}}return F/(N-e)}let y=t;if(y<0&&(y=u+y),y<0||y>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let g=Array.from(a).filter((D,w)=>w!==y);if(g.length===0)return $r(r,void 0,e);let h=g.reduce((D,w)=>D*w,1),b=a[y],A=new Float64Array(h);for(let D=0;D<h;D++){let w=0,N=0,I=0;for(let E=0;E<b;E++){let T=$(D,y,E,a),C=U(T,a),k=f[C*2],V=f[C*2+1];K(k,V)||(w+=k,N+=V,I++)}if(I-e<=0){A[D]=NaN;continue}let z=w/I,F=N/I,_=0;for(let E=0;E<b;E++){let T=$(D,y,E,a),C=U(T,a),k=f[C*2],V=f[C*2+1];if(!K(k,V)){let R=k-z,L=V-F;_+=R*R+L*L}}A[D]=_/(I-e)}let S=x.fromData(A,g,"float64");if(n){let D=[...a];return D[y]=1,x.fromData(A,D,"float64")}return S}if(t===void 0){let f=0,y=0;for(let b=0;b<r.size;b++){let A=Number(s[b]);isNaN(A)||(f+=A,y++)}if(y-e<=0)return NaN;let g=f/y,h=0;for(let b=0;b<r.size;b++){let A=Number(s[b]);isNaN(A)||(h+=(A-g)**2)}return h/(y-e)}let i=t;if(i<0&&(i=u+i),i<0||i>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let c=Array.from(a).filter((f,y)=>y!==i);if(c.length===0)return $r(r,void 0,e);let l=c.reduce((f,y)=>f*y,1),m=a[i],d=new Float64Array(l);for(let f=0;f<l;f++){let y=0,g=0;for(let A=0;A<m;A++){let S=$(f,i,A,a),D=U(S,a),w=Number(s[D]);isNaN(w)||(y+=w,g++)}if(g-e<=0){d[f]=NaN;continue}let h=y/g,b=0;for(let A=0;A<m;A++){let S=$(f,i,A,a),D=U(S,a),w=Number(s[D]);isNaN(w)||(b+=(w-h)**2)}d[f]=b/(g-e)}let p=x.fromData(d,c,"float64");if(n){let f=[...a];return f[i]=1,x.fromData(d,f,"float64")}return p}function ie(r,t,e=0,n=!1){let o=$r(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=o,u=new Float64Array(a.size);for(let s=0;s<a.size;s++)u[s]=Math.sqrt(Number(a.data[s]));return x.fromData(u,[...a.shape],"float64")}function Yr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.data;if(M(n)){let p=u;if(t===void 0){let S=1/0,D=1/0,w=!1;for(let N=0;N<r.size;N++){let I=p[N*2],z=p[N*2+1];isNaN(I)||isNaN(z)||(w?(I<S||I===S&&z<D)&&(S=I,D=z):(S=I,D=z,w=!0))}return w?new O(S,D):new O(NaN,NaN)}let f=t;if(f<0&&(f=a+f),f<0||f>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let y=Array.from(o).filter((S,D)=>D!==f);if(y.length===0)return Yr(r);let g=y.reduce((S,D)=>S*D,1),h=o[f],b=new Float64Array(g*2);for(let S=0;S<g;S++){let D=1/0,w=1/0,N=!1;for(let I=0;I<h;I++){let z=$(S,f,I,o),F=U(z,o),_=p[F*2],E=p[F*2+1];isNaN(_)||isNaN(E)||(N?(_<D||_===D&&E<w)&&(D=_,w=E):(D=_,w=E,N=!0))}b[S*2]=N?D:NaN,b[S*2+1]=N?w:NaN}let A=x.fromData(b,y,n);if(e){let S=[...o];return S[f]=1,x.fromData(b,S,n)}return A}if(t===void 0){let p=1/0;for(let f=0;f<r.size;f++){let y=Number(u[f]);!isNaN(y)&&y<p&&(p=y)}return p===1/0?NaN: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 i=Array.from(o).filter((p,f)=>f!==s);if(i.length===0)return Yr(r);let c=i.reduce((p,f)=>p*f,1),l=o[s],m=new Float64Array(c);for(let p=0;p<c;p++){let f=1/0;for(let y=0;y<l;y++){let g=$(p,s,y,o),h=U(g,o),b=Number(u[h]);!isNaN(b)&&b<f&&(f=b)}m[p]=f===1/0?NaN:f}let d=x.fromData(m,i,"float64");if(e){let p=[...o];return p[s]=1,x.fromData(m,p,"float64")}return d}function Hr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.data;if(M(n)){let p=u;if(t===void 0){let S=-1/0,D=-1/0,w=!1;for(let N=0;N<r.size;N++){let I=p[N*2],z=p[N*2+1];isNaN(I)||isNaN(z)||(w?(I>S||I===S&&z>D)&&(S=I,D=z):(S=I,D=z,w=!0))}return w?new O(S,D):new O(NaN,NaN)}let f=t;if(f<0&&(f=a+f),f<0||f>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let y=Array.from(o).filter((S,D)=>D!==f);if(y.length===0)return Hr(r);let g=y.reduce((S,D)=>S*D,1),h=o[f],b=new Float64Array(g*2);for(let S=0;S<g;S++){let D=-1/0,w=-1/0,N=!1;for(let I=0;I<h;I++){let z=$(S,f,I,o),F=U(z,o),_=p[F*2],E=p[F*2+1];isNaN(_)||isNaN(E)||(N?(_>D||_===D&&E>w)&&(D=_,w=E):(D=_,w=E,N=!0))}b[S*2]=N?D:NaN,b[S*2+1]=N?w:NaN}let A=x.fromData(b,y,n);if(e){let S=[...o];return S[f]=1,x.fromData(b,S,n)}return A}if(t===void 0){let p=-1/0;for(let f=0;f<r.size;f++){let y=Number(u[f]);!isNaN(y)&&y>p&&(p=y)}return p===-1/0?NaN: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 i=Array.from(o).filter((p,f)=>f!==s);if(i.length===0)return Hr(r);let c=i.reduce((p,f)=>p*f,1),l=o[s],m=new Float64Array(c);for(let p=0;p<c;p++){let f=-1/0;for(let y=0;y<l;y++){let g=$(p,s,y,o),h=U(g,o),b=Number(u[h]);!isNaN(b)&&b>f&&(f=b)}m[p]=f===-1/0?NaN:f}let d=x.fromData(m,i,"float64");if(e){let p=[...o];return p[s]=1,x.fromData(m,p,"float64")}return d}function Jr(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let m=a;if(t===void 0){let h=1/0,b=1/0,A=-1;for(let S=0;S<r.size;S++){let D=m[S*2],w=m[S*2+1];!K(D,w)&&zr(D,w,h,b)<0&&(h=D,b=w,A=S)}return A}let d=t;if(d<0&&(d=o+d),d<0||d>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let p=Array.from(n).filter((h,b)=>b!==d);if(p.length===0)return Jr(r);let f=p.reduce((h,b)=>h*b,1),y=n[d],g=new Int32Array(f);for(let h=0;h<f;h++){let b=1/0,A=1/0,S=0;for(let D=0;D<y;D++){let w=$(h,d,D,n),N=U(w,n),I=m[N*2],z=m[N*2+1];!K(I,z)&&zr(I,z,b,A)<0&&(b=I,A=z,S=D)}g[h]=S}return x.fromData(g,p,"int32")}if(t===void 0){let m=1/0,d=-1;for(let p=0;p<r.size;p++){let f=Number(a[p]);!isNaN(f)&&f<m&&(m=f,d=p)}return d}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((m,d)=>d!==u);if(s.length===0)return Jr(r);let i=s.reduce((m,d)=>m*d,1),c=n[u],l=new Int32Array(i);for(let m=0;m<i;m++){let d=1/0,p=0;for(let f=0;f<c;f++){let y=$(m,u,f,n),g=U(y,n),h=Number(a[g]);!isNaN(h)&&h<d&&(d=h,p=f)}l[m]=p}return x.fromData(l,s,"int32")}function Xr(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let m=a;if(t===void 0){let h=-1/0,b=-1/0,A=-1;for(let S=0;S<r.size;S++){let D=m[S*2],w=m[S*2+1];!K(D,w)&&zr(D,w,h,b)>0&&(h=D,b=w,A=S)}return A}let d=t;if(d<0&&(d=o+d),d<0||d>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let p=Array.from(n).filter((h,b)=>b!==d);if(p.length===0)return Xr(r);let f=p.reduce((h,b)=>h*b,1),y=n[d],g=new Int32Array(f);for(let h=0;h<f;h++){let b=-1/0,A=-1/0,S=0;for(let D=0;D<y;D++){let w=$(h,d,D,n),N=U(w,n),I=m[N*2],z=m[N*2+1];!K(I,z)&&zr(I,z,b,A)>0&&(b=I,A=z,S=D)}g[h]=S}return x.fromData(g,p,"int32")}if(t===void 0){let m=-1/0,d=-1;for(let p=0;p<r.size;p++){let f=Number(a[p]);!isNaN(f)&&f>m&&(m=f,d=p)}return d}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((m,d)=>d!==u);if(s.length===0)return Xr(r);let i=s.reduce((m,d)=>m*d,1),c=n[u],l=new Int32Array(i);for(let m=0;m<i;m++){let d=-1/0,p=0;for(let f=0;f<c;f++){let y=$(m,u,f,n),g=U(y,n),h=Number(a[g]);!isNaN(h)&&h>d&&(d=h,p=f)}l[m]=p}return x.fromData(l,s,"int32")}function ue(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let p=a,f=r.size;if(t===void 0){let N=x.zeros([f],e),I=N.data,z=0,F=0;for(let _=0;_<f;_++){let E=p[_*2],T=p[_*2+1];K(E,T)||(z+=E,F+=T),I[_*2]=z,I[_*2+1]=F}return N}let y=t;if(y<0&&(y=o+y),y<0||y>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let g=x.zeros([...n],e),h=g.data,b=n[y],A=[],S=1;for(let N=o-1;N>=0;N--)A.unshift(S),S*=n[N];let D=r.size,w=A[y];for(let N=0;N<D;N++){let I=p[N*2],z=p[N*2+1],F=Math.floor(N/w)%b,_=K(I,z);F===0?(h[N*2]=_?0:I,h[N*2+1]=_?0:z):(h[N*2]=h[(N-w)*2]+(_?0:I),h[N*2+1]=h[(N-w)*2+1]+(_?0:z))}return g}if(t===void 0){let p=r.size,f=new Float64Array(p),y=0;for(let g=0;g<p;g++){let h=Number(a[g]);isNaN(h)||(y+=h),f[g]=y}return x.fromData(f,[p],"float64")}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=new Float64Array(r.size),i=n[u],c=[],l=1;for(let p=o-1;p>=0;p--)c.unshift(l),l*=n[p];let m=r.size,d=c[u];for(let p=0;p<m;p++){let f=Number(a[p]);Math.floor(p/d)%i===0?s[p]=isNaN(f)?0:f:s[p]=s[p-d]+(isNaN(f)?0:f)}return x.fromData(s,[...n],"float64")}function ce(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let p=a,f=r.size;if(t===void 0){let N=x.zeros([f],e),I=N.data,z=1,F=0;for(let _=0;_<f;_++){let E=p[_*2],T=p[_*2+1];if(!K(E,T)){let C=z*E-F*T,k=z*T+F*E;z=C,F=k}I[_*2]=z,I[_*2+1]=F}return N}let y=t;if(y<0&&(y=o+y),y<0||y>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let g=x.zeros([...n],e),h=g.data,b=n[y],A=[],S=1;for(let N=o-1;N>=0;N--)A.unshift(S),S*=n[N];let D=r.size,w=A[y];for(let N=0;N<D;N++){let I=p[N*2],z=p[N*2+1],F=Math.floor(N/w)%b,_=K(I,z);if(F===0)h[N*2]=_?1:I,h[N*2+1]=_?0:z;else{let E=h[(N-w)*2],T=h[(N-w)*2+1];_?(h[N*2]=E,h[N*2+1]=T):(h[N*2]=E*I-T*z,h[N*2+1]=E*z+T*I)}}return g}if(t===void 0){let p=r.size,f=new Float64Array(p),y=1;for(let g=0;g<p;g++){let h=Number(a[g]);isNaN(h)||(y*=h),f[g]=y}return x.fromData(f,[p],"float64")}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=new Float64Array(r.size),i=n[u],c=[],l=1;for(let p=o-1;p>=0;p--)c.unshift(l),l*=n[p];let m=r.size,d=c[u];for(let p=0;p<m;p++){let f=Number(a[p]);Math.floor(p/d)%i===0?s[p]=isNaN(f)?1:f:s[p]=s[p-d]*(isNaN(f)?1:f)}return x.fromData(s,[...n],"float64")}function St(r,t,e=!1){q(r.dtype,"nanmedian","Complex numbers are not orderable.");let n=r.shape,o=n.length,a=r.data;if(t===void 0){let d=[];for(let y=0;y<r.size;y++){let g=Number(a[y]);isNaN(g)||d.push(g)}if(d.length===0)return NaN;d.sort((y,g)=>y-g);let p=d.length,f=Math.floor(p/2);return p%2===0?(d[f-1]+d[f])/2:d[f]}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((d,p)=>p!==u);if(s.length===0)return St(r);let i=s.reduce((d,p)=>d*p,1),c=n[u],l=new Float64Array(i);for(let d=0;d<i;d++){let p=[];for(let g=0;g<c;g++){let h=$(d,u,g,n),b=U(h,n),A=Number(a[b]);isNaN(A)||p.push(A)}if(p.length===0){l[d]=NaN;continue}p.sort((g,h)=>g-h);let f=p.length,y=Math.floor(f/2);f%2===0?l[d]=(p[y-1]+p[y])/2:l[d]=p[y]}let m=x.fromData(l,s,"float64");if(e){let d=[...n];return d[u]=1,x.fromData(l,d,"float64")}return m}function nr(r,t){let e=r.size,n=r.dtype,o=t.indexOf(-1),a;if(o!==-1){let c=t.reduce((m,d,p)=>p===o?m:m*d,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,d)=>d===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 x.fromData(c,a,n,ar(a),0)}let i=r.copy().data;return x.fromData(i,a,n,ar(a),0)}function Dt(r){let t=r.size,e=r.dtype,n=P(e);if(!n)throw new Error(`Cannot flatten array with dtype ${e}`);if(r.isCContiguous){let s=r.data.slice(r.offset,r.offset+t);return x.fromData(s,[t],e,[1],0)}let o=new n(t),a=B(e);for(let u=0;u<t;u++){let s=r.iget(u);o[u]=s}return x.fromData(o,[t],e,[1],0)}function kr(r){let t=r.size,e=r.dtype;if(r.isCContiguous){let n=r.data;return x.fromData(n,[t],e,[1],0)}return Dt(r)}function Kr(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,u=r.dtype,s;if(t===void 0)s=Array.from({length:n},(m,d)=>n-1-d);else{if(t.length!==n)throw new Error(`axes must have length ${n}, got ${t.length}`);let m=new Set;for(let d of t){let p=d<0?n+d:d;if(p<0||p>=n)throw new Error(`axis ${d} is out of bounds for array of dimension ${n}`);if(m.has(p))throw new Error("repeated axis in transpose");m.add(p)}s=t.map(d=>d<0?n+d:d)}let i=s.map(m=>e[m]),c=Array.from(o),l=s.map(m=>c[m]);return x.fromData(a,i,u,l,r.offset)}function co(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,u=r.dtype;if(t===void 0){let s=[],i=[];for(let c=0;c<n;c++)e[c]!==1&&(s.push(e[c]),i.push(o[c]));return s.length===0&&(s.push(1),i.push(1)),x.fromData(a,s,u,i,r.offset)}else{let s=t<0?n+t:t;if(s<0||s>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);if(e[s]!==1)throw new Error(`cannot select an axis which has size not equal to one (axis ${t} has size ${e[s]})`);let i=[],c=[];for(let l=0;l<n;l++)l!==s&&(i.push(e[l]),c.push(o[l]));return x.fromData(a,i,u,c,r.offset)}}function Qr(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,u=r.dtype,s=t;if(s<0&&(s=n+t+1),s<0||s>n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n+1}`);let i=[...Array.from(e)];i.splice(s,0,1);let c=[...Array.from(o)],l=s<n?o[s]*(e[s]||1):1;return c.splice(s,0,l),x.fromData(a,i,u,c,r.offset)}function lo(r,t,e){let n=r.shape,o=n.length,a=r.strides,u=r.data,s=r.dtype,i=t<0?o+t:t,c=e<0?o+e:e;if(i<0||i>=o)throw new Error(`axis1 ${t} is out of bounds for array of dimension ${o}`);if(c<0||c>=o)throw new Error(`axis2 ${e} is out of bounds for array of dimension ${o}`);if(i===c)return x.fromData(u,Array.from(n),s,Array.from(a),r.offset);let l=Array.from(n),m=Array.from(a);return[l[i],l[c]]=[l[c],l[i]],[m[i],m[c]]=[m[c],m[i]],x.fromData(u,l,s,m,r.offset)}function le(r,t,e){let n=r.ndim,o=Array.isArray(t)?t:[t],a=Array.isArray(e)?e:[e];if(o.length!==a.length)throw new Error("source and destination must have the same number of elements");let u=o.map(c=>{let l=c<0?n+c:c;if(l<0||l>=n)throw new Error(`source axis ${c} is out of bounds for array of dimension ${n}`);return l}),s=a.map(c=>{let l=c<0?n+c:c;if(l<0||l>=n)throw new Error(`destination axis ${c} is out of bounds for array of dimension ${n}`);return l});if(new Set(u).size!==u.length)throw new Error("repeated axis in source");if(new Set(s).size!==s.length)throw new Error("repeated axis in destination");let i=[];for(let c=0;c<n;c++)u.includes(c)||i.push(c);for(let c=0;c<u.length;c++){let l=s[c];i.splice(l,0,u[c])}return Kr(r,i)}function Mr(r,t=0){if(r.length===0)throw new Error("need at least one array to concatenate");if(r.length===1)return r[0].copy();let e=r[0],n=e.ndim,o=e.dtype,a=t<0?n+t:t;if(a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);for(let p=1;p<r.length;p++){let f=r[p];if(f.ndim!==n)throw new Error("all the input arrays must have same number of dimensions");for(let y=0;y<n;y++)if(y!==a&&f.shape[y]!==e.shape[y])throw new Error("all the input array dimensions except for the concatenation axis must match exactly")}let u=Array.from(e.shape),s=e.shape[a];for(let p=1;p<r.length;p++)s+=r[p].shape[a];u[a]=s;let i=u.reduce((p,f)=>p*f,1),c=P(o);if(!c)throw new Error(`Cannot concatenate arrays with dtype ${o}`);let l=new c(i),m=ar(u),d=0;for(let p of r){let f=p.shape[a];Dm(p,l,u,m,a,d,o),d+=f}return x.fromData(l,u,o)}function Dm(r,t,e,n,o,a,u){let s=r.shape,i=s.length,c=r.size,l=u==="int64"||u==="uint64";if(o===0&&r.isCContiguous&&i>0){let p=a*n[0],f=r.data,y=r.offset,g=y+c;t.set(f.subarray(y,g),p);return}if(o===1&&i===2&&r.isCContiguous){let p=s[0],f=s[1],y=e[1],g=r.data,h=r.offset;for(let b=0;b<p;b++){let A=h+b*f,S=b*y+a;t.set(g.subarray(A,A+f),S)}return}let m=new Array(i).fill(0),d=a*n[o];for(let p=0;p<c;p++){let f=r.iget(p),y=d;for(let g=0;g<i;g++)y+=m[g]*n[g];t[y]=f;for(let g=i-1;g>=0&&(m[g]++,!(m[g]<s[g]));g--)m[g]=0}}function fo(r,t=0){if(r.length===0)throw new Error("need at least one array to stack");let e=r[0],n=e.shape,o=e.ndim,a=t<0?o+1+t:t;if(a<0||a>o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o+1}`);for(let s=1;s<r.length;s++){let i=r[s];if(i.ndim!==o)throw new Error("all input arrays must have the same shape");for(let c=0;c<o;c++)if(i.shape[c]!==n[c])throw new Error("all input arrays must have the same shape")}let u=r.map(s=>Qr(s,a));return Mr(u,a)}function mo(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?nr(e,[1,e.shape[0]]):e);return Mr(t,0)}function fe(r){if(r.length===0)throw new Error("need at least one array to stack");return r.every(e=>e.ndim===1)?Mr(r,0):Mr(r,1)}function yo(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?nr(Qr(nr(e,[1,e.shape[0]]),2),[1,e.shape[0],1]):e.ndim===2?Qr(e,2):e);return Mr(t,2)}function po(r,t,e=0){let n=r.shape,o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=n[a],s;if(typeof t=="number"){if(u%t!==0)throw new Error("array split does not result in an equal division");let i=u/t;s=[];for(let c=1;c<t;c++)s.push(c*i)}else s=t;return go(r,s,a)}function rt(r,t,e=0){let n=r.shape,o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=n[a],s;if(typeof t=="number"){let i=t,c=Math.floor(u/i),l=u%i;s=[];let m=0;for(let d=0;d<i-1;d++)m+=c+(d<l?1:0),s.push(m)}else s=t;return go(r,s,a)}function go(r,t,e){let n=r.shape,o=n[e],a=[0,...t,o],u=[];for(let s=0;s<a.length-1;s++){let i=a[s],c=a[s+1];if(i>c)throw new Error("split indices must be in ascending order");let l=Array.from(n);l[e]=c-i;let m=r.offset+i*r.strides[e];u.push(x.fromData(r.data,l,r.dtype,Array.from(r.strides),m))}return u}function Ao(r,t){if(r.ndim<2)throw new Error("vsplit only works on arrays of 2 or more dimensions");return rt(r,t,0)}function bo(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 rt(r,t,e)}function ho(r,t){let e=r.shape,n=e.length,o=r.dtype,a=Array.isArray(t)?t:[t],u=Math.max(n,a.length),s=new Array(u).fill(1),i=new Array(u).fill(1);for(let b=0;b<n;b++)s[u-n+b]=e[b];for(let b=0;b<a.length;b++)i[u-a.length+b]=a[b];let c=s.map((b,A)=>b*i[A]),l=c.reduce((b,A)=>b*A,1),m=P(o);if(!m)throw new Error(`Cannot tile array with dtype ${o}`);let d=new m(l),p=ar(c),f=r;n<u&&(f=nr(r,s));let y=o==="int64"||o==="uint64",g=f.strides,h=new Array(u).fill(0);for(let b=0;b<l;b++){let A=f.offset;for(let w=0;w<u;w++){let N=h[w]%s[w];A+=N*g[w]}let S=f.data[A],D=0;for(let w=0;w<u;w++)D+=h[w]*p[w];d[D]=S;for(let w=u-1;w>=0&&(h[w]++,!(h[w]<c[w]));w--)h[w]=0}return x.fromData(d,c,o)}function So(r,t,e){let n=r.shape,o=n.length,a=r.dtype,u=r.size;if(e===void 0){let b=u,A=Array.isArray(t)?t:new Array(b).fill(t);if(A.length!==b)throw new Error(`operands could not be broadcast together with shape (${b},) (${A.length},)`);let S=A.reduce((I,z)=>I+z,0),D=P(a);if(!D)throw new Error(`Cannot repeat array with dtype ${a}`);let w=new D(S),N=0;for(let I=0;I<b;I++){let z=r.iget(I),F=A[I];for(let _=0;_<F;_++)w[N++]=z}return x.fromData(w,[S],a)}let s=e<0?o+e:e;if(s<0||s>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=n[s],c=Array.isArray(t)?t:new Array(i).fill(t);if(c.length!==i)throw new Error(`operands could not be broadcast together with shape (${i},) (${c.length},)`);let l=Array.from(n);l[s]=c.reduce((b,A)=>b+A,0);let m=l.reduce((b,A)=>b*A,1),d=P(a);if(!d)throw new Error(`Cannot repeat array with dtype ${a}`);let p=new d(m),f=ar(l),y=new Array(o).fill(0),g=a==="int64"||a==="uint64",h=[0];for(let b=0;b<i;b++)h.push(h[b]+c[b]);for(let b=0;b<u;b++){let A=r.iget(b),S=y[s],D=c[S],w=0;for(let z=0;z<o;z++)z!==s&&(w+=y[z]*f[z]);let N=f[s],I=h[S];for(let z=0;z<D;z++){let F=w+(I+z)*N;p[F]=A}for(let z=o-1;z>=0&&(y[z]++,!(y[z]<n[z]));z--)y[z]=0}return x.fromData(p,l,a)}function Do(r,t){let e=r.shape,n=e.length,o=r.dtype,a=r.size,u;if(t===void 0)u=new Set(Array.from({length:n},(d,p)=>p));else if(typeof t=="number"){let d=t<0?n+t:t;if(d<0||d>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);u=new Set([d])}else u=new Set(t.map(d=>{let p=d<0?n+d:d;if(p<0||p>=n)throw new Error(`axis ${d} is out of bounds for array of dimension ${n}`);return p}));let s=P(o);if(!s)throw new Error(`Cannot flip array with dtype ${o}`);let i=new s(a),c=B(o);if(n===1&&r.isCContiguous){let d=r.data,p=r.offset;for(let f=0;f<a;f++)i[f]=d[p+a-1-f];return x.fromData(i,[...e],o)}if(n===2&&r.isCContiguous){let d=e[0],p=e[1],f=r.data,y=r.offset;if(u.size===2){for(let g=0;g<a;g++)i[g]=f[y+a-1-g];return x.fromData(i,[...e],o)}if(u.size===1){if(u.has(0)){for(let g=0;g<d;g++){let h=y+(d-1-g)*p,b=g*p;for(let A=0;A<p;A++)i[b+A]=f[h+A]}return x.fromData(i,[...e],o)}else if(u.has(1)){for(let g=0;g<d;g++){let h=y+g*p,b=g*p;for(let A=0;A<p;A++)i[b+A]=f[h+p-1-A]}return x.fromData(i,[...e],o)}}}let l=new Array(n),m=new Array(n).fill(0);for(let d=0;d<a;d++){for(let y=0;y<n;y++)l[y]=u.has(y)?e[y]-1-m[y]:m[y];let p=r.offset;for(let y=0;y<n;y++)p+=l[y]*r.strides[y];let f=r.data[p];i[d]=f;for(let y=n-1;y>=0&&(m[y]++,!(m[y]<e[y]));y--)m[y]=0}return x.fromData(i,[...e],o)}function xo(r,t=1,e=[0,1]){let n=r.shape,o=n.length,a=r.dtype;if(o<2)throw new Error("Input must be at least 2-D");let u=e[0]<0?o+e[0]:e[0],s=e[1]<0?o+e[1]:e[1];if(u<0||u>=o||s<0||s>=o)throw new Error(`Axes are out of bounds for array of dimension ${o}`);if(u===s)throw new Error("Axes must be different");if(t=(t%4+4)%4,t===0)return r.copy();let i=P(a);if(!i)throw new Error(`Cannot rotate array with dtype ${a}`);let c=[...n];(t===1||t===3)&&([c[u],c[s]]=[c[s],c[u]]);let l=c.reduce((g,h)=>g*h,1),m=new i(l),d=ar(c),p=B(a),f=new Array(o).fill(0),y=new Array(o);for(let g=0;g<r.size;g++){for(let D=0;D<o;D++)y[D]=f[D];let h,b;t===1?(h=n[s]-1-f[s],b=f[u]):t===2?(h=n[u]-1-f[u],b=n[s]-1-f[s],y[u]=h,y[s]=b):(h=f[s],b=n[u]-1-f[u]),t!==2&&(y[u]=h,y[s]=b);let A=0;for(let D=0;D<o;D++)A+=y[D]*d[D];let S=r.iget(g);m[A]=S;for(let D=o-1;D>=0&&(f[D]++,!(f[D]<n[D]));D--)f[D]=0}return x.fromData(m,c,a)}function No(r,t,e){let n=r.shape,o=n.length,a=r.dtype,u=r.size;if(e===void 0){let f=Array.isArray(t)?t.reduce((A,S)=>A+S,0):t,y=Dt(r),g=P(a);if(!g)throw new Error(`Cannot roll array with dtype ${a}`);let h=new g(u),b=B(a);for(let A=0;A<u;A++){let S=((A-f)%u+u)%u,D=y.iget(S);h[A]=D}return x.fromData(h,[...n],a)}let s=Array.isArray(t)?t:[t],i=Array.isArray(e)?e:[e];if(s.length!==i.length)throw new Error("shift and axis must have the same length");let c=i.map(f=>{let y=f<0?o+f:f;if(y<0||y>=o)throw new Error(`axis ${f} is out of bounds for array of dimension ${o}`);return y}),l=P(a);if(!l)throw new Error(`Cannot roll array with dtype ${a}`);let m=new l(u),d=B(a),p=new Array(o).fill(0);for(let f=0;f<u;f++){let y=[...p];for(let b=0;b<c.length;b++){let A=c[b],S=n[A],D=s[b];y[A]=((y[A]-D)%S+S)%S}let g=r.offset;for(let b=0;b<o;b++)g+=y[b]*r.strides[b];let h=r.data[g];m[f]=h;for(let b=o-1;b>=0&&(p[b]++,!(p[b]<n[b]));b--)p[b]=0}return x.fromData(m,[...n],a)}function wo(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?x.fromData(r.data,Array.from(r.shape),r.dtype,Array.from(r.strides),r.offset):le(r,o,a)}function Io(r,t){if(r.ndim<3)throw new Error("dsplit only works on arrays of 3 or more dimensions");return rt(r,t,2)}function zo(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?nr(e,[e.shape[0],1]):e);return fe(t)}function _o(r,t){let e=r.dtype,n=t.reduce((i,c)=>i*c,1),o=r.size,a=P(e);if(!a)throw new Error(`Cannot resize array with dtype ${e}`);let u=new a(n),s=B(e);for(let i=0;i<n;i++){let c=i%o,l=r.iget(c);u[i]=l}return x.fromData(u,t,e)}function Fo(r){return r.map(t=>t.ndim===0?nr(t,[1]):t)}function Mo(r){return r.map(t=>t.ndim===0?nr(t,[1,1]):t.ndim===1?nr(t,[1,t.shape[0]]):t)}function Bo(r){return r.map(t=>t.ndim===0?nr(t,[1,1,1]):t.ndim===1?nr(t,[1,t.shape[0],1]):t.ndim===2?nr(t,[t.shape[0],t.shape[1],1]):t)}function qr(r,t){if(r instanceof O||t instanceof O){let e=r instanceof O?r:new O(Number(r),0),n=t instanceof O?t:new O(Number(t),0);return e.mul(n)}return typeof r=="bigint"&&typeof t=="bigint"?Number(r*t):Number(r)*Number(t)}function xm(r,t,e,n,o,a,u,s,i,c,l,m,d,p){if(m===0)for(let h=0;h<n*o;h++)d[h]=0;else if(m!==1)for(let h=0;h<n*o;h++)d[h]=(d[h]??0)*m;let f=r==="row-major",y=t==="transpose",g=e==="transpose";if(f&&!y&&!g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[h*i+S]??0)*(c[S*l+b]??0);d[h*p+b]=(d[h*p+b]??0)+u*A}else if(f&&y&&!g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[S*i+h]??0)*(c[S*l+b]??0);d[h*p+b]=(d[h*p+b]??0)+u*A}else if(f&&!y&&g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[h*i+S]??0)*(c[b*l+S]??0);d[h*p+b]=(d[h*p+b]??0)+u*A}else if(f&&y&&g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[S*i+h]??0)*(c[b*l+S]??0);d[h*p+b]=(d[h*p+b]??0)+u*A}else if(!f&&!y&&!g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[S*i+h]??0)*(c[b*l+S]??0);d[b*p+h]=(d[b*p+h]??0)+u*A}else if(!f&&y&&!g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[h*i+S]??0)*(c[b*l+S]??0);d[b*p+h]=(d[b*p+h]??0)+u*A}else if(!f&&!y&&g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[S*i+h]??0)*(c[S*l+b]??0);d[b*p+h]=(d[b*p+h]??0)+u*A}else for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[h*i+S]??0)*(c[S*l+b]??0);d[b*p+h]=(d[b*p+h]??0)+u*A}}function ye(r,t){let e=r.ndim,n=t.ndim,o=M(r.dtype)||M(t.dtype);if(e===0||n===0){let a=e===0?r.get():null,u=n===0?t.get():null;if(e===0&&n===0)return qr(a,u);if(e===0){let s=G(r.dtype,t.dtype),i=x.zeros([...t.shape],s),c=(l,m)=>{let d=new Array(m.length),p=l;for(let f=m.length-1;f>=0;f--)d[f]=p%m[f],p=Math.floor(p/m[f]);return d};for(let l=0;l<t.size;l++){let m=c(l,t.shape),d=t.get(...m);i.set(m,qr(a,d))}return i}else{let s=G(r.dtype,t.dtype),i=x.zeros([...r.shape],s),c=(l,m)=>{let d=new Array(m.length),p=l;for(let f=m.length-1;f>=0;f--)d[f]=p%m[f],p=Math.floor(p/m[f]);return d};for(let l=0;l<r.size;l++){let m=c(l,r.shape),d=r.get(...m);i.set(m,qr(d,u))}return i}}if(e===1&&n===1){if(r.shape[0]!==t.shape[0])throw new Error(`dot: incompatible shapes (${r.shape[0]},) and (${t.shape[0]},)`);let a=r.shape[0];if(o){let s=0,i=0;for(let c=0;c<a;c++){let l=r.get(c),m=t.get(c),d=qr(l,m);d instanceof O?(s+=d.re,i+=d.im):s+=d}return new O(s,i)}let u=0;for(let s=0;s<a;s++){let i=r.get(s),c=t.get(s);typeof i=="bigint"&&typeof c=="bigint"?u=Number(u)+Number(i*c):u+=Number(i)*Number(c)}return u}if(e===2&&n===2)return pr(r,t);if(e===2&&n===1){let[a,u]=r.shape,s=t.shape[0];if(u!==s)throw new Error(`dot: incompatible shapes (${a},${u}) and (${s},)`);let i=G(r.dtype,t.dtype),c=x.zeros([a],i);if(o)for(let l=0;l<a;l++){let m=0,d=0;for(let p=0;p<u;p++){let f=r.get(l,p),y=t.get(p),g=f instanceof O?f:new O(Number(f),0),h=y instanceof O?y:new O(Number(y),0);m+=g.re*h.re-g.im*h.im,d+=g.re*h.im+g.im*h.re}c.set([l],new O(m,d))}else for(let l=0;l<a;l++){let m=0;for(let d=0;d<u;d++){let p=r.get(l,d),f=t.get(d);typeof p=="bigint"&&typeof f=="bigint"?m=Number(m)+Number(p*f):m+=Number(p)*Number(f)}c.set([l],m)}return c}if(e===1&&n===2){let a=r.shape[0],[u,s]=t.shape;if(a!==u)throw new Error(`dot: incompatible shapes (${a},) and (${u},${s})`);let i=G(r.dtype,t.dtype),c=x.zeros([s],i);if(o)for(let l=0;l<s;l++){let m=0,d=0;for(let p=0;p<a;p++){let f=r.get(p),y=t.get(p,l),g=f instanceof O?f:new O(Number(f),0),h=y instanceof O?y:new O(Number(y),0);m+=g.re*h.re-g.im*h.im,d+=g.re*h.im+g.im*h.re}c.set([l],new O(m,d))}else for(let l=0;l<s;l++){let m=0;for(let d=0;d<a;d++){let p=r.get(d),f=t.get(d,l);typeof p=="bigint"&&typeof f=="bigint"?m=Number(m)+Number(p*f):m+=Number(p)*Number(f)}c.set([l],m)}return c}if(e>2&&n===1){let a=r.shape[e-1],u=t.shape[0];if(a!==u)throw new Error(`dot: incompatible shapes ${JSON.stringify(r.shape)} and (${u},)`);let s=[...r.shape.slice(0,-1)],i=G(r.dtype,t.dtype),c=x.zeros(s,i),l=s.reduce((m,d)=>m*d,1);if(o)for(let m=0;m<l;m++){let d=0,p=0,f=m,y=[];for(let g=s.length-1;g>=0;g--)y[g]=f%s[g],f=Math.floor(f/s[g]);for(let g=0;g<a;g++){let h=[...y,g],b=r.get(...h),A=t.get(g),S=b instanceof O?b:new O(Number(b),0),D=A instanceof O?A:new O(Number(A),0);d+=S.re*D.re-S.im*D.im,p+=S.re*D.im+S.im*D.re}c.set(y,new O(d,p))}else for(let m=0;m<l;m++){let d=0,p=m,f=[];for(let y=s.length-1;y>=0;y--)f[y]=p%s[y],p=Math.floor(p/s[y]);for(let y=0;y<a;y++){let g=[...f,y],h=r.get(...g),b=t.get(y);typeof h=="bigint"&&typeof b=="bigint"?d=Number(d)+Number(h*b):d+=Number(h)*Number(b)}c.set(f,d)}return c}if(e===1&&n>2){let a=r.shape[0],u=1,s=t.shape[u];if(a!==s)throw new Error(`dot: incompatible shapes (${a},) and ${JSON.stringify(t.shape)}`);let i=[...t.shape.slice(0,u),...t.shape.slice(u+1)],c=G(r.dtype,t.dtype),l=x.zeros(i,c),m=i.reduce((d,p)=>d*p,1);if(o)for(let d=0;d<m;d++){let p=d,f=[];for(let A=i.length-1;A>=0;A--)f[A]=p%i[A],p=Math.floor(p/i[A]);let y=f.slice(0,u),g=f.slice(u),h=0,b=0;for(let A=0;A<a;A++){let S=r.get(A),D=[...y,A,...g],w=t.get(...D),N=S instanceof O?S:new O(Number(S),0),I=w instanceof O?w:new O(Number(w),0);h+=N.re*I.re-N.im*I.im,b+=N.re*I.im+N.im*I.re}l.set(f,new O(h,b))}else for(let d=0;d<m;d++){let p=d,f=[];for(let b=i.length-1;b>=0;b--)f[b]=p%i[b],p=Math.floor(p/i[b]);let y=f.slice(0,u),g=f.slice(u),h=0;for(let b=0;b<a;b++){let A=r.get(b),S=[...y,b,...g],D=t.get(...S);typeof A=="bigint"&&typeof D=="bigint"?h=Number(h)+Number(A*D):h+=Number(A)*Number(D)}l.set(f,h)}return l}if(e>=2&&n>=2&&!(e===2&&n===2)){let a=r.shape[e-1],u=t.shape[n-2];if(a!==u)throw new Error(`dot: incompatible shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(t.shape)}`);let s=[...r.shape.slice(0,-1),...t.shape.slice(0,-2),t.shape[n-1]],i=G(r.dtype,t.dtype),c=x.zeros(s,i),l=r.shape.slice(0,-1).reduce((f,y)=>f*y,1),m=t.shape.slice(0,-2).reduce((f,y)=>f*y,1),d=t.shape[n-1],p=a;if(o)for(let f=0;f<l;f++)for(let y=0;y<m;y++)for(let g=0;g<d;g++){let h=0,b=0;for(let D=0;D<p;D++){let w=[],N=f;for(let C=r.shape.length-2;C>=0;C--)w.unshift(N%r.shape[C]),N=Math.floor(N/r.shape[C]);w.push(D);let I=r.get(...w),z=[],F=y;for(let C=t.shape.length-3;C>=0;C--)z.unshift(F%t.shape[C]),F=Math.floor(F/t.shape[C]);z.push(D,g);let _=t.get(...z),E=I instanceof O?I:new O(Number(I),0),T=_ instanceof O?_:new O(Number(_),0);h+=E.re*T.re-E.im*T.im,b+=E.re*T.im+E.im*T.re}let A=f*m*d+y*d+g,S=c.data;S[A*2]=h,S[A*2+1]=b}else for(let f=0;f<l;f++)for(let y=0;y<m;y++)for(let g=0;g<d;g++){let h=0;for(let A=0;A<p;A++){let S=f*p+A,D=y*p*d+A*d+g,w=r.data[S+r.offset],N=t.data[D+t.offset];typeof w=="bigint"&&typeof N=="bigint"?h=Number(h)+Number(w*N):h+=Number(w)*Number(N)}let b=f*m*d+y*d+g;c.data[b]=h}return c}throw new Error(`dot: unexpected combination of dimensions ${e}D \xB7 ${n}D`)}function pr(r,t){if(r.ndim!==2||t.ndim!==2)throw new Error("matmul requires 2D arrays");let[e=0,n=0]=r.shape,[o=0,a=0]=t.shape;if(n!==o)throw new Error(`matmul shape mismatch: (${e},${n}) @ (${o},${a})`);let u=G(r.dtype,t.dtype);if(M(u)){let D=x.zeros([e,a],u),w=D.data,N=r.data,I=t.data;for(let z=0;z<e;z++)for(let F=0;F<a;F++){let _=0,E=0;for(let C=0;C<n;C++){let k=(z*n+C)*2,V=(C*a+F)*2,R=N[k],L=N[k+1],j=I[V],H=I[V+1];_+=R*j-L*H,E+=R*H+L*j}let T=z*a+F;w[T*2]=_,w[T*2+1]=E}return D}let s=u.startsWith("int")||u.startsWith("uint")||u==="bool"?"float64":u;if(s!=="float64")throw new Error(`matmul currently only supports float64, got ${s}`);let i=r.dtype==="float64"?r.data:Float64Array.from(Array.from(r.data).map(Number)),c=t.dtype==="float64"?t.data:Float64Array.from(Array.from(t.data).map(Number));r.offset>0&&(i=i.subarray(r.offset)),t.offset>0&&(c=c.subarray(t.offset));let[l=0,m=0]=r.strides,[d=0,p=0]=t.strides,f=m>l,y=p>d,g=f?"transpose":"no-transpose",h=y?"transpose":"no-transpose",b,A;f?b=m:b=l,y?A=p:A=d;let S=x.zeros([e,a],"float64");return xm("row-major",g,h,e,a,n,1,i,b,c,A,0,S.data,a),S}function Oo(r){if(r.ndim!==2)throw new Error(`trace requires 2D array, got ${r.ndim}D`);let[t=0,e=0]=r.shape,n=Math.min(t,e);if(M(r.dtype)){let a=0,u=0;for(let s=0;s<n;s++){let i=r.get(s,s);a+=i.re,u+=i.im}return new O(a,u)}let o=0;for(let a=0;a<n;a++){let u=r.get(a,a);typeof u=="bigint"?o=(typeof o=="bigint"?o:BigInt(o))+u:o=(typeof o=="bigint"?Number(o):o)+u}return o}function Eo(r,t){return Kr(r,t)}function Co(r,t){let e=r.ndim,n=t.ndim,o=M(r.dtype)||M(t.dtype),a=r.shape[e-1],u=t.shape[n-1];if(a!==u)throw new Error(`inner: incompatible shapes - last dimensions ${a} and ${u} don't match`);if(e===1&&n===1)return ye(r,t);let s=[...r.shape.slice(0,-1),...t.shape.slice(0,-1)],i=G(r.dtype,t.dtype),c=x.zeros(s,i),l=e===1?1:r.shape.slice(0,-1).reduce((p,f)=>p*f,1),m=n===1?1:t.shape.slice(0,-1).reduce((p,f)=>p*f,1),d=a;if(o)for(let p=0;p<l;p++)for(let f=0;f<m;f++){let y=0,g=0;for(let A=0;A<d;A++){let S,D;if(e===1)S=r.get(A);else{let I=[],z=p,F=r.shape.slice(0,-1);for(let _=F.length-1;_>=0;_--)I.unshift(z%F[_]),z=Math.floor(z/F[_]);I.push(A),S=r.get(...I)}if(n===1)D=t.get(A);else{let I=[],z=f,F=t.shape.slice(0,-1);for(let _=F.length-1;_>=0;_--)I.unshift(z%F[_]),z=Math.floor(z/F[_]);I.push(A),D=t.get(...I)}let w=S instanceof O?S:new O(Number(S),0),N=D instanceof O?D:new O(Number(D),0);y+=w.re*N.re-w.im*N.im,g+=w.re*N.im+w.im*N.re}if(s.length===0)return new O(y,g);let h=l===1?f:p*m+f,b=c.data;b[h*2]=y,b[h*2+1]=g}else for(let p=0;p<l;p++)for(let f=0;f<m;f++){let y=0;for(let h=0;h<d;h++){let b=e===1?h:p*d+h,A=n===1?h:f*d+h,S=r.data[b+r.offset],D=t.data[A+t.offset];typeof S=="bigint"&&typeof D=="bigint"?y=Number(y)+Number(S*D):y+=Number(S)*Number(D)}if(s.length===0)return y;let g=l===1?f:p*m+f;c.data[g]=y}return c}function pe(r,t){let e=r.ndim===1?r:kr(r),n=t.ndim===1?t:kr(t),o=e.size,a=n.size,u=G(r.dtype,t.dtype),s=x.zeros([o,a],u);for(let i=0;i<o;i++)for(let c=0;c<a;c++){let l=e.get(i),m=n.get(c),d=qr(l,m);s.set([i,c],d)}return s}function Uo(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,g)=>r.ndim-f+g),o=Array.from({length:f},(y,g)=>g)}else if([n,o]=e,n.length!==o.length)throw new Error("tensordot: axes lists must have same length");for(let f=0;f<n.length;f++){let y=n[f],g=o[f];if(y<0||y>=r.ndim||g<0||g>=t.ndim)throw new Error("tensordot: axis out of bounds");if(r.shape[y]!==t.shape[g])throw new Error(`tensordot: shape mismatch on axes ${y} and ${g}: ${r.shape[y]} != ${t.shape[g]}`)}let a=[],u=[];for(let f=0;f<r.ndim;f++)n.includes(f)||a.push(f);for(let f=0;f<t.ndim;f++)o.includes(f)||u.push(f);let s=[...a.map(f=>r.shape[f]),...u.map(f=>t.shape[f])],i=G(r.dtype,t.dtype),c=M(i),l=f=>f instanceof O?{re:f.re,im:f.im}:{re:Number(f),im:0};if(s.length===0){let f=0,y=0,g=n.map(h=>r.shape[h]).reduce((h,b)=>h*b,1);for(let h=0;h<g;h++){let b=h,A=new Array(n.length);for(let I=n.length-1;I>=0;I--){let z=n[I];A[I]=b%r.shape[z],b=Math.floor(b/r.shape[z])}let S=new Array(r.ndim),D=new Array(t.ndim);for(let I=0;I<n.length;I++)S[n[I]]=A[I];for(let I=0;I<o.length;I++)D[o[I]]=A[I];let w=r.get(...S),N=t.get(...D);if(c){let I=l(w),z=l(N);f+=I.re*z.re-I.im*z.im,y+=I.re*z.im+I.im*z.re}else typeof w=="bigint"&&typeof N=="bigint"?f+=Number(w*N):f+=Number(w)*Number(N)}return c?new O(f,y):f}let m=x.zeros(s,i),d=s.reduce((f,y)=>f*y,1),p=n.map(f=>r.shape[f]).reduce((f,y)=>f*y,1);for(let f=0;f<d;f++){let y=f,g=[];for(let D=s.length-1;D>=0;D--)g[D]=y%s[D],y=Math.floor(y/s[D]);let h=g.slice(0,a.length),b=g.slice(a.length),A=0,S=0;for(let D=0;D<p;D++){y=D;let w=[];for(let _=n.length-1;_>=0;_--){let E=n[_];w[_]=y%r.shape[E],y=Math.floor(y/r.shape[E])}let N=new Array(r.ndim),I=new Array(t.ndim);for(let _=0;_<a.length;_++)N[a[_]]=h[_];for(let _=0;_<u.length;_++)I[u[_]]=b[_];for(let _=0;_<n.length;_++)N[n[_]]=w[_],I[o[_]]=w[_];let z=r.get(...N),F=t.get(...I);if(c){let _=l(z),E=l(F);A+=_.re*E.re-_.im*E.im,S+=_.re*E.im+_.im*E.re}else typeof z=="bigint"&&typeof F=="bigint"?A+=Number(z*F):A+=Number(z)*Number(F)}c?m.set(g,new O(A,S)):m.set(g,A)}return m}function $o(r,t=0,e=0,n=1){let o=r.shape,a=o.length;if(a<2)throw new Error("diagonal requires an array of at least two dimensions");let u=e<0?a+e:e,s=n<0?a+n:n;if(u<0||u>=a||s<0||s>=a)throw new Error("axis out of bounds");if(u===s)throw new Error("axis1 and axis2 cannot be the same");let i=o[u],c=o[s],l;t>=0?l=Math.max(0,Math.min(i,c-t)):l=Math.max(0,Math.min(i+t,c));let m=[];for(let y=0;y<a;y++)y!==u&&y!==s&&m.push(o[y]);m.push(l);let d=x.zeros(m,r.dtype),p=o.filter((y,g)=>g!==u&&g!==s),f=p.reduce((y,g)=>y*g,1);for(let y=0;y<f;y++){let g=y,h=[];for(let b=p.length-1;b>=0;b--)h.unshift(g%p[b]),g=Math.floor(g/p[b]);for(let b=0;b<l;b++){let A=new Array(a),S=0;for(let N=0;N<a;N++)N===u?A[N]=t>=0?b:b-t:N===s?A[N]=t>=0?b+t:b:A[N]=h[S++];let D=[...h,b],w=r.get(...A);d.set(D,w)}}return d}function Ro(r,...t){let e=r.indexOf("->"),n,o;e===-1?(n=r,o=Nm(n)):(n=r.slice(0,e),o=r.slice(e+2));let a=n.split(",").map(y=>y.trim());if(a.length!==t.length)throw new Error(`einsum: expected ${a.length} operands, got ${t.length}`);let u=new Map;for(let y=0;y<t.length;y++){let g=a[y],h=t[y];if(g.length!==h.ndim)throw new Error(`einsum: operand ${y} has ${h.ndim} dimensions but subscript '${g}' has ${g.length} indices`);for(let b=0;b<g.length;b++){let A=g[b],S=h.shape[b];if(u.has(A)){if(u.get(A)!==S)throw new Error(`einsum: size mismatch for index '${A}': ${u.get(A)} vs ${S}`)}else u.set(A,S)}}for(let y of o)if(!u.has(y))throw new Error(`einsum: output subscript contains unknown index '${y}'`);let s=new Set(o),i=new Set;for(let y of a)for(let g of y)i.add(g);let c=[];for(let y of i)s.has(y)||c.push(y);if(t.length===2&&a.length===2){let[y,g]=a,[h,b]=t;if(y.length===2&&g.length===2&&o.length===2&&h.ndim===2&&b.ndim===2){let[A,S]=[y[0],y[1]],[D,w]=[g[0],g[1]],[N,I]=[o[0],o[1]];if(A===N&&w===I&&S===D&&c.length===1&&c[0]===S||A===N&&w===I&&S===D&&c.length===1&&c[0]===S)return pr(h,b);if(S===N&&w===I&&A===D&&c.length===1&&c[0]===A){let z=Eo(h);return pr(z,b)}if(A===N&&D===I&&S===w&&c.length===1&&c[0]===S){let z=Eo(b);return pr(h,z)}}if(y.length===1&&g.length===1&&y===g&&o.length===0&&h.ndim===1&&b.ndim===1)return me(t,a,c,u);if(y&&g&&y.length===1&&g.length===1&&o.length===2&&o===y+g&&c.length===0&&h.ndim===1&&b.ndim===1)return pe(h,b)}if(t.length===1&&a[0].length===2&&o.length===0){let y=a[0];if(y[0]===y[1]&&t[0].ndim===2)return me(t,a,c,u)}let l=Array.from(o).map(y=>u.get(y));if(l.length===0)return me(t,a,c,u);let m=t[0].dtype;for(let y=1;y<t.length;y++)m=G(m,t[y].dtype);let d=x.zeros(l,m),p=l.reduce((y,g)=>y*g,1),f=1;for(let y of c)f*=u.get(y);for(let y=0;y<p;y++){let g=wm(y,l),h=new Map;for(let A=0;A<o.length;A++)h.set(o[A],g[A]);let b=0;for(let A=0;A<f;A++){let S=A;for(let w=c.length-1;w>=0;w--){let N=c[w],I=u.get(N);h.set(N,S%I),S=Math.floor(S/I)}let D=1;for(let w=0;w<t.length;w++){let N=t[w],I=a[w],z=[];for(let _ of I)z.push(h.get(_));let F=N.get(...z);D*=Number(F)}b+=D}d.set(g,b)}return d}function Nm(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 me(r,t,e,n){let o=!1;for(let c of r)if(M(c.dtype)){o=!0;break}let a=c=>c instanceof O?{re:c.re,im:c.im}:{re:Number(c),im:0},u=1;for(let c of e)u*=n.get(c);let s=0,i=0;for(let c=0;c<u;c++){let l=new Map,m=c;for(let f=e.length-1;f>=0;f--){let y=e[f],g=n.get(y);l.set(y,m%g),m=Math.floor(m/g)}let d=1,p=0;for(let f=0;f<r.length;f++){let y=r[f],g=t[f],h=[];for(let A of g)h.push(l.get(A));let b=y.get(...h);if(o){let A=a(b),S=d*A.re-p*A.im,D=d*A.im+p*A.re;d=S,p=D}else d*=Number(b)}s+=d,i+=p}return o?new O(s,i):s}function wm(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 ko(r,t){let e=r.shape,n=t.shape,o=e.length,a=n.length,u=G(r.dtype,t.dtype),s=Math.max(o,a),i=new Array(s),c=new Array(s).fill(1),l=new Array(s).fill(1);for(let f=0;f<o;f++)c[s-o+f]=e[f];for(let f=0;f<a;f++)l[s-a+f]=n[f];for(let f=0;f<s;f++)i[f]=c[f]*l[f];let m=x.zeros(i,u),d=e.reduce((f,y)=>f*y,1),p=n.reduce((f,y)=>f*y,1);for(let f=0;f<d;f++){let y=f,g=new Array(o);for(let A=o-1;A>=0;A--)g[A]=y%e[A],y=Math.floor(y/e[A]);let h=new Array(s).fill(0);for(let A=0;A<o;A++)h[s-o+A]=g[A];let b=r.get(...g);for(let A=0;A<p;A++){let S=A,D=new Array(a);for(let F=a-1;F>=0;F--)D[F]=S%n[F],S=Math.floor(S/n[F]);let w=new Array(s).fill(0);for(let F=0;F<a;F++)w[s-a+F]=D[F];let N=t.get(...D),I=new Array(s);for(let F=0;F<s;F++)I[F]=h[F]*l[F]+w[F];let z=qr(b,N);m.set(I,z)}}return m}function qo(r,t,e=-1,n=-1,o=-1,a){a!==void 0&&(e=a,n=a,o=a);let u=(A,S)=>A<0?S+A:A,s=u(e,r.ndim),i=u(n,t.ndim);if(r.ndim===1&&t.ndim===1){let A=r.shape[0],S=t.shape[0];if(A===3&&S===3){let D=Number(r.get(0)),w=Number(r.get(1)),N=Number(r.get(2)),I=Number(t.get(0)),z=Number(t.get(1)),F=Number(t.get(2)),_=x.zeros([3],"float64");return _.set([0],w*F-N*z),_.set([1],N*I-D*F),_.set([2],D*z-w*I),_}else if(A===2&&S===2){let D=Number(r.get(0)),w=Number(r.get(1)),N=Number(t.get(0)),I=Number(t.get(1));return D*I-w*N}else if(A===2&&S===3||A===3&&S===2){let D=Number(r.get(0)),w=Number(r.get(1)),N=A===3?Number(r.get(2)):0,I=Number(t.get(0)),z=Number(t.get(1)),F=S===3?Number(t.get(2)):0,_=x.zeros([3],"float64");return _.set([0],w*F-N*z),_.set([1],N*I-D*F),_.set([2],D*z-w*I),_}else throw new Error(`cross: incompatible dimensions for cross product: ${A} and ${S}`)}let c=r.shape[s],l=t.shape[i];if(c!==2&&c!==3||l!==2&&l!==3)throw new Error(`cross: incompatible dimensions for cross product: ${c} and ${l}`);let m=c===2&&l===2?0:3,d=[...r.shape.slice(0,s),...r.shape.slice(s+1)],p=[...t.shape.slice(0,i),...t.shape.slice(i+1)];if(d.length!==p.length)throw new Error("cross: incompatible shapes for cross product");for(let A=0;A<d.length;A++)if(d[A]!==p[A])throw new Error("cross: incompatible shapes for cross product");let f=d,y=o<0?f.length+1+o:o,g;if(m===0?g=f:g=[...f.slice(0,y),m,...f.slice(y)],g.length===0)throw new Error("cross: unexpected scalar result from higher-dimensional input");let h=x.zeros(g,"float64"),b=f.reduce((A,S)=>A*S,1);for(let A=0;A<b;A++){let S=A,D=[];for(let V=f.length-1;V>=0;V--)D[V]=S%f[V],S=Math.floor(S/f[V]);let w=[...D.slice(0,s),0,...D.slice(s)],N=[...D.slice(0,i),0,...D.slice(i)],I=V=>(w[s]=V,Number(r.get(...w))),z=V=>(N[i]=V,Number(t.get(...N))),F=I(0),_=I(1),E=c===3?I(2):0,T=z(0),C=z(1),k=l===3?z(2):0;if(m===0)h.set(D,F*C-_*T);else{let V=_*k-E*C,R=E*T-F*k,L=F*C-_*T,j=(H,Q)=>{let Z=[...D.slice(0,y),H,...D.slice(y)];h.set(Z,Q)};j(0,V),j(1,R),j(2,L)}}return h}function Vr(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:kr(r),l=c.size,m;if(t===1/0){m=0;for(let d=0;d<l;d++)m=Math.max(m,Math.abs(Number(c.get(d))))}else if(t===-1/0){m=1/0;for(let d=0;d<l;d++)m=Math.min(m,Math.abs(Number(c.get(d))))}else if(t===0){m=0;for(let d=0;d<l;d++)Number(c.get(d))!==0&&m++}else if(t===1){m=0;for(let d=0;d<l;d++)m+=Math.abs(Number(c.get(d)))}else if(t===2){m=0;for(let d=0;d<l;d++){let p=Number(c.get(d));m+=p*p}m=Math.sqrt(m)}else{m=0;for(let d=0;d<l;d++)m+=Math.pow(Math.abs(Number(c.get(d))),t);m=Math.pow(m,1/t)}if(n){let d=new Array(r.ndim).fill(1),p=x.zeros(d,"float64");return p.set(new Array(r.ndim).fill(0),m),p}return m}let o=e<0?r.ndim+e:e;if(o<0||o>=r.ndim)throw new Error(`vector_norm: axis ${e} out of bounds for array with ${r.ndim} dimensions`);let a=n?[...r.shape.slice(0,o),1,...r.shape.slice(o+1)]:[...r.shape.slice(0,o),...r.shape.slice(o+1)];if(a.length===0)return Vr(r,t,null,!1);let u=x.zeros(a,"float64"),s=r.shape[o],i=a.reduce((c,l)=>c*l,1);for(let c=0;c<i;c++){let l=c,m=[];for(let f=a.length-1;f>=0;f--)m[f]=l%a[f],l=Math.floor(l/a[f]);let d=n?[...m.slice(0,o),0,...m.slice(o+1)]:[...m.slice(0,o),0,...m.slice(o)],p;if(t===1/0){p=0;for(let f=0;f<s;f++)d[o]=f,p=Math.max(p,Math.abs(Number(r.get(...d))))}else if(t===-1/0){p=1/0;for(let f=0;f<s;f++)d[o]=f,p=Math.min(p,Math.abs(Number(r.get(...d))))}else if(t===0){p=0;for(let f=0;f<s;f++)d[o]=f,Number(r.get(...d))!==0&&p++}else if(t===1){p=0;for(let f=0;f<s;f++)d[o]=f,p+=Math.abs(Number(r.get(...d)))}else if(t===2){p=0;for(let f=0;f<s;f++){d[o]=f;let y=Number(r.get(...d));p+=y*y}p=Math.sqrt(p)}else{p=0;for(let f=0;f<s;f++)d[o]=f,p+=Math.pow(Math.abs(Number(r.get(...d))),t);p=Math.pow(p,1/t)}u.set(m,p)}return u}function Br(r,t="fro",e=!1){if(r.ndim!==2)throw new Error(`matrix_norm: input must be 2D, got ${r.ndim}D`);let[n,o]=r.shape,a;if(t==="fro"){a=0;for(let u=0;u<n;u++)for(let s=0;s<o;s++){let i=Number(r.get(u,s));a+=i*i}a=Math.sqrt(a)}else if(t==="nuc"){let{s:u}=_r(r);a=0;for(let s=0;s<u.size;s++)a+=Number(u.get(s))}else if(t===1){a=0;for(let u=0;u<o;u++){let s=0;for(let i=0;i<n;i++)s+=Math.abs(Number(r.get(i,u)));a=Math.max(a,s)}}else if(t===-1){a=1/0;for(let u=0;u<o;u++){let s=0;for(let i=0;i<n;i++)s+=Math.abs(Number(r.get(i,u)));a=Math.min(a,s)}}else if(t===1/0){a=0;for(let u=0;u<n;u++){let s=0;for(let i=0;i<o;i++)s+=Math.abs(Number(r.get(u,i)));a=Math.max(a,s)}}else if(t===-1/0){a=1/0;for(let u=0;u<n;u++){let s=0;for(let i=0;i<o;i++)s+=Math.abs(Number(r.get(u,i)));a=Math.min(a,s)}}else if(t===2){let{s:u}=_r(r);a=Number(u.get(0))}else if(t===-2){let{s:u}=_r(r);a=Number(u.get(u.size-1))}else throw new Error(`matrix_norm: invalid ord value: ${t}`);if(e){let u=x.zeros([1,1],"float64");return u.set([0,0],a),u}return a}function Vo(r,t=null,e=null,n=!1){if(t===null)return e===null?Vr(r,2,null,n):typeof e=="number"?Vr(r,2,e,n):Br(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 Br(r,t,n)}if(r.ndim===2&&e===null&&(t==="fro"||t==="nuc"))return Br(r,t,n);if(typeof t!="number"&&t!==null)throw new Error(`norm: ord '${t}' not valid for vector norm`);return Vr(r,t??2,e,n)}function de(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=x.zeros([e,n],"float64");for(let p=0;p<e;p++)for(let f=0;f<n;f++)a.set([p,f],Number(r.get(p,f)));let u=[],s=[];for(let p=0;p<o;p++){let f=e-p,y=[];for(let D=p;D<e;D++)y.push(Number(a.get(D,p)));let g=0;for(let D=0;D<f;D++)g+=y[D]*y[D];if(g=Math.sqrt(g),g<1e-15){u.push(y),s.push(0);continue}let h=y[0]>=0?1:-1,b=y[0]+h*g,A=[1];for(let D=1;D<f;D++)A.push(y[D]/b);let S=h*b/g;s.push(S),u.push(A);for(let D=p;D<n;D++){let w=0;for(let N=0;N<f;N++)w+=A[N]*Number(a.get(p+N,D));for(let N=0;N<f;N++)a.set([p+N,D],Number(a.get(p+N,D))-S*A[N]*w)}}if(t==="raw"){let p=x.zeros([e,n],"float64");for(let y=0;y<e;y++)for(let g=0;g<n;g++)p.set([y,g],Number(a.get(y,g)));let f=x.zeros([o],"float64");for(let y=0;y<o;y++)f.set([y],s[y]);return{h:p,tau:f}}if(t==="r"){let p=x.zeros([o,n],"float64");for(let f=0;f<o;f++)for(let y=f;y<n;y++)p.set([f,y],Number(a.get(f,y)));return p}let i=t==="complete"?e:o,c=x.zeros([e,i],"float64");for(let p=0;p<Math.min(e,i);p++)c.set([p,p],1);for(let p=o-1;p>=0;p--){let f=u[p],y=s[p],g=e-p;for(let h=p;h<i;h++){let b=0;for(let A=0;A<g;A++)b+=f[A]*Number(c.get(p+A,h));for(let A=0;A<g;A++)c.set([p+A,h],Number(c.get(p+A,h))-y*f[A]*b)}}let l=x.zeros([e,i],"float64");for(let p=0;p<e;p++)for(let f=0;f<i;f++)l.set([p,f],Number(c.get(p,f)));let m=t==="complete"?e:o,d=x.zeros([m,n],"float64");for(let p=0;p<m;p++)for(let f=0;f<n;f++)f>=p&&d.set([p,f],Number(a.get(p,f)));return{q:l,r:d}}function jo(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=x.zeros([o,o],"float64");for(let u=0;u<o;u++)for(let s=0;s<=u;s++){let i=0;if(u===s){for(let l=0;l<s;l++)i+=Number(a.get(s,l))**2;let c=Number(r.get(s,s))-i;if(c<0)throw new Error("cholesky: matrix is not positive definite");a.set([s,s],Math.sqrt(c))}else{for(let l=0;l<s;l++)i+=Number(a.get(u,l))*Number(a.get(s,l));let c=Number(a.get(s,s));if(Math.abs(c)<1e-15)throw new Error("cholesky: matrix is not positive definite");a.set([u,s],(Number(r.get(u,s))-i)/c)}}if(t){let u=x.zeros([o,o],"float64");for(let s=0;s<o;s++)for(let i=s;i<o;i++)u.set([s,i],Number(a.get(i,s)));return u}return a}function _r(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=x.zeros([e,e],"float64");for(let m=0;m<e;m++)for(let d=0;d<e;d++){let p=0;for(let f=0;f<t;f++)p+=Number(r.get(f,m))*Number(r.get(f,d));o.set([m,d],p)}let{values:a,vectors:u}=ge(o),s=Array.from({length:e},(m,d)=>d);s.sort((m,d)=>a[d]-a[m]);let i=x.zeros([n],"float64");for(let m=0;m<n;m++){let d=a[s[m]];i.set([m],Math.sqrt(Math.max(0,d)))}let c=x.zeros([e,e],"float64");for(let m=0;m<e;m++)for(let d=0;d<e;d++)c.set([m,d],u[d][s[m]]);let l=x.zeros([t,t],"float64");for(let m=0;m<t;m++)for(let d=0;d<n;d++){let p=Number(i.get(d));if(p>1e-10){let f=0;for(let y=0;y<e;y++)f+=Number(r.get(m,y))*Number(c.get(d,y));l.set([m,d],f/p)}}if(t>n)for(let m=n;m<t;m++){let d=new Array(t).fill(0);d[m]=1;for(let f=0;f<m;f++){let y=0;for(let g=0;g<t;g++)y+=d[g]*Number(l.get(g,f));for(let g=0;g<t;g++)d[g]=d[g]-y*Number(l.get(g,f))}let p=0;for(let f=0;f<t;f++)p+=d[f]*d[f];if(p=Math.sqrt(p),p>1e-10)for(let f=0;f<t;f++)l.set([f,m],d[f]/p)}return{u:l,s:i,vt:c}}function ge(r){let t=r.shape[0],e=100*t*t,n=1e-10,o=[];for(let s=0;s<t;s++){o.push([]);for(let i=0;i<t;i++)o[s].push(Number(r.get(s,i)))}let a=[];for(let s=0;s<t;s++){a.push([]);for(let i=0;i<t;i++)a[s].push(s===i?1:0)}for(let s=0;s<e;s++){let i=0,c=0,l=1;for(let A=0;A<t;A++)for(let S=A+1;S<t;S++)Math.abs(o[A][S])>i&&(i=Math.abs(o[A][S]),c=A,l=S);if(i<n)break;let m=o[c][c],d=o[l][l],p=o[c][l],f;Math.abs(m-d)<1e-15?f=Math.PI/4:f=.5*Math.atan2(2*p,d-m);let y=Math.cos(f),g=Math.sin(f),h=y*y*m+g*g*d-2*g*y*p,b=g*g*m+y*y*d+2*g*y*p;o[c][c]=h,o[l][l]=b,o[c][l]=0,o[l][c]=0;for(let A=0;A<t;A++)if(A!==c&&A!==l){let S=o[A][c],D=o[A][l];o[A][c]=y*S-g*D,o[c][A]=o[A][c],o[A][l]=g*S+y*D,o[l][A]=o[A][l]}for(let A=0;A<t;A++){let S=a[A][c],D=a[A][l];a[A][c]=y*S-g*D,a[A][l]=g*S+y*D}}let u=[];for(let s=0;s<t;s++)u.push(o[s][s]);return{values:u,vectors:a}}function Po(r,t=!0,e=!0){let n=_r(r);if(!e)return n.s;if(!t){let[o,a]=r.shape,u=Math.min(o,a),s=x.zeros([o,u],"float64");for(let c=0;c<o;c++)for(let l=0;l<u;l++)s.set([c,l],Number(n.u.get(c,l)));let i=x.zeros([u,a],"float64");for(let c=0;c<u;c++)for(let l=0;l<a;l++)i.set([c,l],Number(n.vt.get(c,l)));return{u:s,s:n.s,vt:i}}return n}function Lo(r){if(r.ndim!==2)throw new Error(`det: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape;if(t!==e)throw new Error(`det: matrix must be square, got ${t}x${e}`);let n=t;if(n===0)return 1;let o=r.data;if(n===1)return Number(o[0]);if(n===2)return Number(o[0])*Number(o[3])-Number(o[1])*Number(o[2]);let{lu:a,sign:u}=Ae(r),s=a.data,i=u;for(let c=0;c<n;c++)i*=s[c*n+c];return i}function Ae(r){let[t,e]=r.shape,n=t,o=e,a=x.zeros([n,o],"float64"),u=a.data,s=r.data;for(let l=0;l<n*o;l++)u[l]=Number(s[l]);let i=Array.from({length:n},(l,m)=>m),c=1;for(let l=0;l<Math.min(n,o);l++){let m=Math.abs(u[l*o+l]),d=l;for(let f=l+1;f<n;f++){let y=Math.abs(u[f*o+l]);y>m&&(m=y,d=f)}if(d!==l){for(let y=0;y<o;y++){let g=u[l*o+y];u[l*o+y]=u[d*o+y],u[d*o+y]=g}let f=i[l];i[l]=i[d],i[d]=f,c=-c}let p=u[l*o+l];if(Math.abs(p)>1e-15)for(let f=l+1;f<n;f++){let y=u[f*o+l]/p;u[f*o+l]=y;for(let g=l+1;g<o;g++)u[f*o+g]=u[f*o+g]-y*u[l*o+g]}}return{lu:a,piv:i,sign:c}}function xt(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}=Ae(r),u=o.data,s=x.zeros([n,n],"float64"),i=s.data;for(let c=0;c<n;c++){let l=new Float64Array(n);for(let m=0;m<n;m++){let d=a[m]===c?1:0;for(let p=0;p<m;p++)d-=u[m*n+p]*l[p];l[m]=d}for(let m=n-1;m>=0;m--){let d=l[m];for(let f=m+1;f<n;f++)d-=u[m*n+f]*i[f*n+c];let p=u[m*n+m];if(Math.abs(p)<1e-15)throw new Error("inv: singular matrix");i[m*n+c]=d/p}}return s}function To(r,t){let[e]=r.shape,n=e,{lu:o,piv:a}=Ae(r),u=o.data,s=t.data,i=new Float64Array(n);for(let d=0;d<n;d++)i[d]=Number(s[a[d]]);let c=new Float64Array(n);for(let d=0;d<n;d++){let p=i[d];for(let f=0;f<d;f++)p-=u[d*n+f]*c[f];c[d]=p}let l=x.zeros([n],"float64"),m=l.data;for(let d=n-1;d>=0;d--){let p=c[d];for(let y=d+1;y<n;y++)p-=u[d*n+y]*m[y];let f=u[d*n+d];if(Math.abs(f)<1e-15)throw new Error("solve: singular matrix");m[d]=p/f}return l}function Zo(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 To(r,t)}if(t.ndim===2){if(t.shape[0]!==o)throw new Error(`solve: incompatible shapes (${e},${n}) and (${t.shape[0]},${t.shape[1]})`);let a=t.shape[1],u=x.zeros([o,a],"float64");for(let s=0;s<a;s++){let i=x.zeros([o],"float64");for(let l=0;l<o;l++)i.set([l],Number(t.get(l,s)));let c=To(r,i);for(let l=0;l<o;l++)u.set([l,s],Number(c.get(l)))}return u}throw new Error(`solve: b must be 1D or 2D, got ${t.ndim}D`)}function Go(r,t,e=null){if(r.ndim!==2)throw new Error(`lstsq: coefficient matrix must be 2D, got ${r.ndim}D`);let[n,o]=r.shape,{u:a,s:u,vt:s}=_r(r),i=Math.min(n,o),c=e??Math.max(n,o)*Number.EPSILON,m=Number(u.get(0))*c,d=0;for(let b=0;b<i;b++)Number(u.get(b))>m&&d++;let p=t.ndim===1?nr(t,[t.size,1]):t,f=p.shape[1];if(p.shape[0]!==n)throw new Error(`lstsq: incompatible shapes (${n},${o}) and (${t.shape.join(",")})`);let y=x.zeros([o,f],"float64");for(let b=0;b<f;b++){let A=new Array(n).fill(0);for(let S=0;S<n;S++)for(let D=0;D<n;D++)A[S]+=Number(a.get(D,S))*Number(p.get(D,b));for(let S=0;S<o;S++){let D=0;for(let w=0;w<i;w++){let N=Number(u.get(w));N>m&&(D+=Number(s.get(w,S))*A[w]/N)}y.set([S,b],D)}}let g;if(n>o){g=x.zeros([f],"float64");for(let b=0;b<f;b++){let A=0;for(let S=0;S<n;S++){let D=0;for(let N=0;N<o;N++)D+=Number(r.get(S,N))*Number(y.get(N,b));let w=D-Number(p.get(S,b));A+=w*w}g.set([b],A)}}else g=x.zeros([0],"float64");return{x:t.ndim===1?nr(y,[o]):y,residuals:g,rank:d,s:u}}function Wo(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}=_r(r),i=Math.min(e,n),c=Number(s.get(0)),l=Number(s.get(i-1));return t===2?l>0?c/l:1/0:c>0?l/c:0}if(e!==n)throw new Error(`cond: matrix must be square for p=${t}`);let o=Br(r,t),a=xt(r),u=Br(a,t);return o*u}function Yo(r,t){if(r.ndim===0)return Number(r.get())!==0?1:0;if(r.ndim===1){for(let u=0;u<r.size;u++)if(Number(r.get(u))!==0)return 1;return 0}if(r.ndim!==2)throw new Error(`matrix_rank: input must be at most 2D, got ${r.ndim}D`);let{s:e}=_r(r),n=Number(e.get(0)),o=t??n*Math.max(r.shape[0],r.shape[1])*Number.EPSILON,a=0;for(let u=0;u<e.size;u++)Number(e.get(u))>o&&a++;return a}function Ho(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=x.zeros([o,o],"float64");for(let l=0;l<o;l++)c.set([l,l],1);return c}let a=r,u=t;t<0&&(a=xt(r),u=-t);let s=x.zeros([o,o],"float64");for(let c=0;c<o;c++)s.set([c,c],1);let i=x.zeros([o,o],"float64");for(let c=0;c<o;c++)for(let l=0;l<o;l++)i.set([c,l],Number(a.get(c,l)));for(;u>0;)u&1&&(s=pr(s,i)),i=pr(i,i),u>>=1;return s}function Jo(r,t=1e-15){if(r.ndim!==2)throw new Error(`pinv: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape,{u:o,s:a,vt:u}=_r(r),s=Math.min(e,n),c=Number(a.get(0))*t,l=x.zeros([n,e],"float64");for(let m=0;m<n;m++)for(let d=0;d<e;d++){let p=0;for(let f=0;f<s;f++){let y=Number(a.get(f));y>c&&(p+=Number(u.get(f,m))*Number(o.get(d,f))/y)}l.set([m,d],p)}return l}function be(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}=ge(r),m=x.zeros([n],"float64"),d=x.zeros([n,n],"float64");for(let p=0;p<n;p++){m.set([p],c[p]);for(let f=0;f<n;f++)d.set([f,p],l[f][p])}return{w:m,v:d}}console.warn("numpy-ts: eig() called on non-symmetric matrix. Complex eigenvalues are not supported; results may be inaccurate. For symmetric matrices, use eigh() instead.");let{values:a,vectors:u}=Im(r),s=x.zeros([n],"float64"),i=x.zeros([n,n],"float64");for(let c=0;c<n;c++){s.set([c],a[c]);for(let l=0;l<n;l++)i.set([l,c],u[l][c])}return{w:s,v:i}}function Im(r){let t=r.shape[0],e=1e3,n=1e-10,o=x.zeros([t,t],"float64");for(let i=0;i<t;i++)for(let c=0;c<t;c++)o.set([i,c],Number(r.get(i,c)));let a=x.zeros([t,t],"float64");for(let i=0;i<t;i++)a.set([i,i],1);for(let i=0;i<e;i++){let c=0;for(let p=0;p<t;p++)for(let f=0;f<t;f++)p!==f&&(c+=Number(o.get(p,f))**2);if(Math.sqrt(c)<n*t)break;let l=de(o,"reduced"),m=l.q,d=l.r;o=pr(d,m),a=pr(a,m)}let u=[];for(let i=0;i<t;i++)u.push(Number(o.get(i,i)));let s=[];for(let i=0;i<t;i++){s.push([]);for(let c=0;c<t;c++)s[i].push(Number(a.get(i,c)))}return{values:u,vectors:s}}function he(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=x.zeros([o,o],"float64");for(let m=0;m<o;m++)for(let d=0;d<o;d++)t==="L"?m>=d&&(a.set([m,d],Number(r.get(m,d))),a.set([d,m],Number(r.get(m,d)))):d>=m&&(a.set([m,d],Number(r.get(m,d))),a.set([d,m],Number(r.get(m,d))));let{values:u,vectors:s}=ge(a),i=Array.from({length:o},(m,d)=>d);i.sort((m,d)=>u[m]-u[d]);let c=x.zeros([o],"float64"),l=x.zeros([o,o],"float64");for(let m=0;m<o;m++){c.set([m],u[i[m]]);for(let d=0;d<o;d++)l.set([d,m],s[d][i[m]])}return{w:c,v:l}}function Xo(r){let{w:t}=be(r);return t}function Qo(r,t="L"){let{w:e}=he(r,t);return e}function Ko(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=Math.sqrt(i*i+c*c),m=Math.sqrt((l+i)/2),d=(c>=0?1:-1)*Math.sqrt((l-i)/2);u[s*2]=m,u[s*2+1]=d}return a}return Y(r,Math.sqrt,!1)}function ra(r,t){if(typeof t=="number")return Fm(r,t);let e=M(r.dtype),n=M(t.dtype);return e||n?_m(r,t):J(r,t,Math.pow,"power")}function _m(r,t){let e=M(r.dtype),n=M(t.dtype),o=r.dtype==="complex128"||t.dtype==="complex128"||t.dtype==="float64"?"complex128":"complex64",a=Array.from(r.shape),u=r.size,s=x.zeros(a,o),i=s.data;for(let c=0;c<u;c++){let l,m;if(e){let S=r.data;l=S[c*2],m=S[c*2+1]}else l=Number(r.iget(c)),m=0;let d,p;if(n){let S=t.data;d=S[c*2],p=S[c*2+1]}else d=Number(t.iget(c)),p=0;let f=Math.sqrt(l*l+m*m),y=Math.atan2(m,l),g=Math.log(f),h=d*g-p*y,b=d*y+p*g,A=Math.exp(h);i[c*2]=A*Math.cos(b),i[c*2+1]=A*Math.sin(b)}return s}function Fm(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size;if(M(e)){let m=x.zeros(n,e),d=o,p=m.data;for(let f=0;f<a;f++){let y=d[f*2],g=d[f*2+1],h=Math.sqrt(y*y+g*g),b=Math.atan2(g,y),A=Math.pow(h,t),S=b*t;p[f*2]=A*Math.cos(S),p[f*2+1]=A*Math.sin(S)}return m}let i=e!=="float32"&&e!=="float64"&&(t<0||!Number.isInteger(t))?"float64":e,c=x.zeros(n,i),l=c.data;if(B(e))if(B(i)&&Number.isInteger(t)&&t>=0){let m=o,d=l;for(let p=0;p<a;p++)d[p]=m[p]**BigInt(t)}else for(let m=0;m<a;m++)l[m]=Math.pow(Number(o[m]),t);else for(let m=0;m<a;m++)l[m]=Math.pow(Number(o[m]),t);return c}function ta(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=Math.exp(i);u[s*2]=l*Math.cos(c),u[s*2+1]=l*Math.sin(c)}return a}return Y(r,Math.exp,!1)}function ea(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=Math.LN2,u=x.zeros(e,t),s=u.data;for(let i=0;i<n;i++){let c=o[i*2],l=o[i*2+1],m=Math.exp(c*a),d=l*a;s[i*2]=m*Math.cos(d),s[i*2+1]=m*Math.sin(d)}return u}return Y(r,e=>Math.pow(2,e),!1)}function na(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=Math.exp(i);u[s*2]=l*Math.cos(c)-1,u[s*2+1]=l*Math.sin(c)}return a}return Y(r,Math.expm1,!1)}function oa(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=Math.sqrt(i*i+c*c),m=Math.atan2(c,i);u[s*2]=Math.log(l),u[s*2+1]=m}return a}return Y(r,Math.log,!1)}function aa(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=1/Math.LN2,u=x.zeros(e,t),s=u.data;for(let i=0;i<n;i++){let c=o[i*2],l=o[i*2+1],m=Math.sqrt(c*c+l*l),d=Math.atan2(l,c);s[i*2]=Math.log(m)*a,s[i*2+1]=d*a}return u}return Y(r,Math.log2,!1)}function sa(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=1/Math.LN10,u=x.zeros(e,t),s=u.data;for(let i=0;i<n;i++){let c=o[i*2],l=o[i*2+1],m=Math.sqrt(c*c+l*l),d=Math.atan2(l,c);s[i*2]=Math.log(m)*a,s[i*2+1]=d*a}return u}return Y(r,Math.log10,!1)}function ia(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=1+i,m=Math.sqrt(l*l+c*c),d=Math.atan2(c,l);u[s*2]=Math.log(m),u[s*2+1]=d}return a}return Y(r,Math.log1p,!1)}function ua(r,t){return q(r.dtype,"logaddexp","logaddexp is not supported for complex numbers."),typeof t!="number"&&q(t.dtype,"logaddexp","logaddexp is not supported for complex numbers."),typeof t=="number"?Bm(r,t):Mm(r,t)}function Mm(r,t){let e=Ir(r.shape,t.shape),n=e.reduce((c,l)=>c*l,1),o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",s=x.zeros(e,u),i=s.data;for(let c=0;c<n;c++){let l=(B(o),Number(r.iget(c))),m=(B(a),Number(t.iget(c))),d=Math.max(l,m),p=Math.min(l,m);i[c]=d+Math.log1p(Math.exp(p-d))}return s}function Bm(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",u=x.zeros(n,a),s=u.data;for(let i=0;i<o;i++){let c=(B(e),Number(r.data[i])),l=Math.max(c,t),m=Math.min(c,t);s[i]=l+Math.log1p(Math.exp(m-l))}return u}function ca(r,t){return q(r.dtype,"logaddexp2","logaddexp2 is not supported for complex numbers."),typeof t!="number"&&q(t.dtype,"logaddexp2","logaddexp2 is not supported for complex numbers."),typeof t=="number"?Em(r,t):vm(r,t)}function vm(r,t){let e=Ir(r.shape,t.shape),n=e.reduce((l,m)=>l*m,1),o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",s=x.zeros(e,u),i=s.data,c=Math.LOG2E;for(let l=0;l<n;l++){let m=(B(o),Number(r.iget(l))),d=(B(a),Number(t.iget(l))),p=Math.max(m,d),f=Math.min(m,d);i[l]=p+Math.log1p(Math.pow(2,f-p))*c}return s}function Em(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",u=x.zeros(n,a),s=u.data,i=Math.LOG2E;for(let c=0;c<o;c++){let l=(B(e),Number(r.data[c])),m=Math.max(l,t),d=Math.min(l,t);s[c]=m+Math.log1p(Math.pow(2,d-m))*i}return u}function la(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1];u[s*2]=Math.sin(i)*Math.cosh(c),u[s*2+1]=Math.cos(i)*Math.sinh(c)}return a}return Y(r,Math.sin,!1)}function fa(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1];u[s*2]=Math.cos(i)*Math.cosh(c),u[s*2+1]=-Math.sin(i)*Math.sinh(c)}return a}return Y(r,Math.cos,!1)}function ma(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=Math.cos(2*i)+Math.cosh(2*c);u[s*2]=Math.sin(2*i)/l,u[s*2+1]=Math.sinh(2*c)/l}return a}return Y(r,Math.tan,!1)}function ya(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=-c,m=i,d=i*i-c*c,p=2*i*c,f=1-d,y=-p,g=Math.sqrt(f*f+y*y),h=Math.sqrt((g+f)/2),b=(y>=0?1:-1)*Math.sqrt((g-f)/2),A=l+h,S=m+b,D=Math.sqrt(A*A+S*S),w=Math.log(D),I=Math.atan2(S,A),z=-w;Math.abs(c)<1e-15&&i>1&&(z=-z),u[s*2]=I,u[s*2+1]=z}return a}return Y(r,Math.asin,!1)}function pa(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=i*i-c*c,m=2*i*c,d=1-l,p=-m,f=Math.sqrt(d*d+p*p),y=Math.sqrt((f+d)/2),h=-((p>=0?1:-1)*Math.sqrt((f-d)/2)),b=y,A=i+h,S=c+b,D=Math.sqrt(A*A+S*S),w=Math.log(D),I=Math.atan2(S,A),z=-w;Math.abs(c)<1e-15&&i>1&&(z=-z),u[s*2]=I,u[s*2+1]=z}return a}return Y(r,Math.acos,!1)}function da(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],l=-o[s*2+1],m=i,d=1-l,p=-m,f=1+l,y=m,g=f*f+y*y,h=(d*f+p*y)/g,b=(p*f-d*y)/g,A=Math.sqrt(h*h+b*b),S=Math.log(A),D=Math.atan2(b,h);u[s*2]=-D/2,u[s*2+1]=S/2}return a}return Y(r,Math.atan,!1)}function ga(r,t){return q(r.dtype,"arctan2","arctan2 is only defined for real numbers."),typeof t!="number"&&q(t.dtype,"arctan2","arctan2 is only defined for real numbers."),typeof t=="number"?Cm(r,t):Om(r,t)}function Om(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",s=x.zeros(e,u),i=s.data;for(let c=0;c<n;c++){let l=(B(o),Number(r.data[c])),m=(B(a),Number(t.data[c]));i[c]=Math.atan2(l,m)}return s}function Cm(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=e==="float32"?"float32":"float64",s=x.zeros(n,u),i=s.data;if(B(e))for(let c=0;c<a;c++)i[c]=Math.atan2(Number(o[c]),t);else for(let c=0;c<a;c++)i[c]=Math.atan2(Number(o[c]),t);return s}function Aa(r,t){return q(r.dtype,"hypot","hypot is only defined for real numbers."),typeof t!="number"&&q(t.dtype,"hypot","hypot is only defined for real numbers."),typeof t=="number"?$m(r,t):Um(r,t)}function Um(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",s=x.zeros(e,u),i=s.data;for(let c=0;c<n;c++){let l=(B(o),Number(r.data[c])),m=(B(a),Number(t.data[c]));i[c]=Math.hypot(l,m)}return s}function $m(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=e==="float32"?"float32":"float64",s=x.zeros(n,u),i=s.data;if(B(e))for(let c=0;c<a;c++)i[c]=Math.hypot(Number(o[c]),t);else for(let c=0;c<a;c++)i[c]=Math.hypot(Number(o[c]),t);return s}function ba(r){q(r.dtype,"degrees","degrees is only defined for real numbers.");let t=180/Math.PI;return Y(r,e=>e*t,!1)}function ha(r){q(r.dtype,"radians","radians is only defined for real numbers.");let t=Math.PI/180;return Y(r,e=>e*t,!1)}function Sa(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1];u[s*2]=Math.sinh(i)*Math.cos(c),u[s*2+1]=Math.cosh(i)*Math.sin(c)}return a}return Y(r,Math.sinh,!1)}function Da(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1];u[s*2]=Math.cosh(i)*Math.cos(c),u[s*2+1]=Math.sinh(i)*Math.sin(c)}return a}return Y(r,Math.cosh,!1)}function xa(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=Math.cosh(2*i)+Math.cos(2*c);u[s*2]=Math.sinh(2*i)/l,u[s*2+1]=Math.sin(2*c)/l}return a}return Y(r,Math.tanh,!1)}function Na(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=i*i-c*c,m=2*i*c,d=l+1,p=m,f=Math.sqrt(d*d+p*p),y=Math.sqrt((f+d)/2),g=(p>=0?1:-1)*Math.sqrt((f-d)/2),h=i+y,b=c+g,A=Math.sqrt(h*h+b*b);u[s*2]=Math.log(A),u[s*2+1]=Math.atan2(b,h)}return a}return Y(r,Math.asinh,!1)}function wa(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=i*i-c*c,m=2*i*c,d=l-1,p=m,f=Math.sqrt(d*d+p*p),y=Math.sqrt((f+d)/2),g=(p>=0?1:-1)*Math.sqrt((f-d)/2),h=i+y,b=c+g,A=Math.sqrt(h*h+b*b),S=Math.log(A),D=Math.atan2(b,h);Math.abs(c)<1e-15&&i<1&&(D=-D),u[s*2]=S,u[s*2+1]=D}return a}return Y(r,Math.acosh,!1)}function Ia(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=1+i,m=c,d=1-i,p=-c,f=d*d+p*p,y=(l*d+m*p)/f,g=(m*d-l*p)/f,h=Math.sqrt(y*y+g*g),b=Math.log(h),A=Math.atan2(g,y);u[s*2]=b/2,u[s*2+1]=A/2}return a}return Y(r,Math.atanh,!1)}function Nt(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=yr([Array.from(e),t]);if(a===null)throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${t.join(",")})`);for(let u=0;u<o;u++)if(a[u]!==t[u])throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${t.join(",")})`);return lr(r,t)}function za(r){if(r.length===0)return[];if(r.length===1)return[r[0]];let t=r.map(n=>Array.from(n.shape)),e=yr(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=>lr(n,e))}function _a(r,t,e){let n=r.shape,o=n.length,a=r.dtype;if(e===void 0){let f=r.size;for(let b of t){let A=b<0?f+b:b;if(A<0||A>=f)throw new Error(`index ${b} is out of bounds for axis 0 with size ${f}`)}let y=t.length,g=P(a);if(!g)throw new Error(`Cannot take from array with dtype ${a}`);let h=new g(y);for(let b=0;b<y;b++){let A=t[b];A<0&&(A=f+A);let S=r.iget(A);B(a),h[b]=S}return x.fromData(h,[y],a)}let u=e<0?o+e:e;if(u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=n[u];for(let f of t){let y=f<0?s+f:f;if(y<0||y>=s)throw new Error(`index ${f} is out of bounds for axis ${u} with size ${s}`)}let i=Array.from(n);i[u]=t.length;let c=i.reduce((f,y)=>f*y,1),l=P(a);if(!l)throw new Error(`Cannot take from array with dtype ${a}`);let m=new l(c),d=ar(i),p=new Array(o).fill(0);for(let f=0;f<c;f++){let y=[...p],g=p[u],h=t[g];h<0&&(h=s+h),y[u]=h;let b=r.get(...y),A=0;for(let S=0;S<o;S++)A+=p[S]*d[S];B(a),m[A]=b;for(let S=o-1;S>=0&&(p[S]++,!(p[S]<i[S]));S--)p[S]=0}return x.fromData(m,i,a)}function Fa(r,t,e){let n=r.size,o=r.dtype,a;if(typeof e=="number"||typeof e=="bigint")a=new Array(t.length).fill(e);else{a=[];for(let u=0;u<e.size;u++){let s=e.iget(u);a.push(s instanceof O?s.re:s)}if(a.length===1)a=new Array(t.length).fill(a[0]);else if(a.length!==t.length){let u=[...a];a=[];for(let s=0;s<t.length;s++)a.push(u[s%u.length])}}for(let u=0;u<t.length;u++){let s=t[u];if(s<0&&(s=n+s),s<0||s>=n)throw new Error(`index ${t[u]} is out of bounds for axis 0 with size ${n}`);let i=a[u];B(o)?typeof i!="bigint"&&(i=BigInt(Math.round(Number(i)))):typeof i=="bigint"&&(i=Number(i)),r.iset(s,i)}}function Ma(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(d=>Array.from(d.shape));a.unshift(Array.from(e));let u=yr(a);if(u===null)throw new Error("operands could not be broadcast together");let s=lr(r,u),i=t.map(d=>lr(d,u)),c=u.reduce((d,p)=>d*p,1),l=P(o);if(!l)throw new Error(`Cannot choose with dtype ${o}`);let m=new l(c);for(let d=0;d<c;d++){let p=Number(s.iget(d));if(p<0||p>=n)throw new Error(`index ${p} is out of bounds for axis 0 with size ${n}`);let f=i[p].iget(d);B(o),m[d]=f}return x.fromData(m,u,o)}function Ba(r,t,e=!1){if(r.ndim!==t.ndim)return!1;for(let o=0;o<r.ndim;o++)if(r.shape[o]!==t.shape[o])return!1;let n=r.size;for(let o=0;o<n;o++){let a=r.iget(o),u=t.iget(o);if(e){let s=typeof a=="number"&&Number.isNaN(a),i=typeof u=="number"&&Number.isNaN(u);if(s&&i)continue}if(a!==u)return!1}return!0}function va(r,t,e){let n=r.shape,o=n.length,a=r.dtype,u=e<0?o+e:e;if(u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=t.shape;if(s.length!==o)throw new Error(`indices and arr must have the same number of dimensions, got ${s.length} vs ${o}`);for(let y=0;y<o;y++)if(y!==u&&s[y]!==n[y]&&s[y]!==1&&n[y]!==1)throw new Error(`index ${s[y]} is out of bounds for size ${n[y]} in dimension ${y}`);let i=Array.from(s),c=i.reduce((y,g)=>y*g,1),l=P(a);if(!l)throw new Error(`Cannot take_along_axis with dtype ${a}`);let m=new l(c),d=ar(n),p=ar(s),f=n[u];for(let y=0;y<c;y++){let g=new Array(o),h=y;for(let N=o-1;N>=0;N--)g[N]=h%i[N],h=Math.floor(h/i[N]);let b=0;for(let N=0;N<o;N++){let I=s[N]===1?0:g[N];b+=I*p[N]}let A=Number(t.iget(b));if(A<0&&(A=f+A),A<0||A>=f)throw new Error(`index ${A} is out of bounds for axis ${u} with size ${f}`);let S=[...g];S[u]=A;let D=0;for(let N=0;N<o;N++){let I=n[N]===1?0:S[N];D+=I*d[N]}let w=r.iget(D);B(a),m[y]=w}return x.fromData(m,i,a)}function Ea(r,t,e,n){let o=r.shape,a=o.length,u=r.dtype,s=n<0?a+n:n;if(s<0||s>=a)throw new Error(`axis ${n} is out of bounds for array of dimension ${a}`);let i=t.shape,c=e.shape;if(i.length!==a||c.length!==a)throw new Error("indices, arr, and values must have same ndim");let l=o[s],m=ar(o),d=ar(i),p=ar(c),f=i.reduce((y,g)=>y*g,1);for(let y=0;y<f;y++){let g=new Array(a),h=y;for(let I=a-1;I>=0;I--)g[I]=h%i[I],h=Math.floor(h/i[I]);let b=0;for(let I=0;I<a;I++)b+=g[I]*d[I];let A=Number(t.iget(b));if(A<0&&(A=l+A),A<0||A>=l)throw new Error(`index ${A} is out of bounds for axis ${s} with size ${l}`);let S=0;for(let I=0;I<a;I++){let z=c[I]===1?0:g[I];S+=z*p[I]}let D=e.iget(S),w=[...g];w[s]=A;let N=0;for(let I=0;I<a;I++)N+=w[I]*m[I];B(u)?typeof D!="bigint"&&(D=BigInt(Math.round(Number(D)))):typeof D=="bigint"&&(D=Number(D)),r.iset(N,D)}}function Ta(r,t,e){let n=r.size,o=r.dtype,a;if(typeof e=="number"||typeof e=="bigint")a=[e];else{a=[];for(let s=0;s<e.size;s++){let i=e.iget(s);a.push(i instanceof O?i.re:i)}}let u=0;for(let s=0;s<n;s++)if(t.iget(s)){let c=a[u%a.length];B(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),r.iset(s,c),u++}}function Se(r,t,e){let n=t.shape,o=n.length,a=t.dtype,u=t.data,s=B(a);if(e===void 0){let b=0,A=Math.min(r.size,t.size);for(let N=0;N<A;N++)r.iget(N)&&b++;let S=P(a);if(!S)throw new Error(`Cannot compress with dtype ${a}`);let D=new S(b),w=0;for(let N=0;N<A;N++)r.iget(N)&&(D[w]=u[N],w++);return x.fromData(D,[b],a)}let i=e<0?o+e:e;if(i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let c=n[i],l=Math.min(r.size,c),m=[];for(let b=0;b<l;b++)r.iget(b)&&m.push(b);let d=m.length,p=[...n];p[i]=d;let f=p.reduce((b,A)=>b*A,1),y=P(a);if(!y)throw new Error(`Cannot compress with dtype ${a}`);let g=new y(f),h=ar(n);if(i===0){let b=h[0],A=n.slice(1).reduce((D,w)=>D*w,1),S=0;for(let D=0;D<d;D++){let N=m[D]*b;if(s){let I=u,z=g;for(let F=0;F<A;F++)z[S++]=I[N+F]}else{let I=u,z=g;for(let F=0;F<A;F++)z[S++]=I[N+F]}}}else{let b=n.slice(0,i).reduce((D,w)=>D*w,1),A=n.slice(i+1).reduce((D,w)=>D*w,1),S=0;for(let D=0;D<b;D++)for(let w=0;w<d;w++){let N=m[w],I=0,z=D;for(let F=i-1;F>=0;F--){let _=z%n[F];z=Math.floor(z/n[F]),I+=_*h[F]}if(I+=N*h[i],s){let F=u,_=g;for(let E=0;E<A;E++)_[S++]=F[I+E]}else{let F=u,_=g;for(let E=0;E<A;E++)_[S++]=F[I+E]}}}return x.fromData(g,p,a)}function Oa(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(d=>Array.from(d.shape)),...t.map(d=>Array.from(d.shape))],o=yr(n);if(o===null)throw new Error("condlist and choicelist arrays could not be broadcast together");let a=t[0].dtype,u=o.reduce((d,p)=>d*p,1),s=P(a);if(!s)throw new Error(`Cannot select with dtype ${a}`);let i=e;B(a)?i=typeof e=="bigint"?e:BigInt(e):i=typeof e=="bigint"?Number(e):e;let c=new s(u);for(let d=0;d<u;d++)B(a),c[d]=i;let l=r.map(d=>lr(d,o)),m=t.map(d=>lr(d,o));for(let d=0;d<u;d++)for(let p=0;p<r.length;p++)if(l[p].iget(d)){let f=m[p].iget(d);B(a),c[d]=f;break}return x.fromData(c,o,a)}function Ca(r,t,e){let n=r.size,o=r.dtype,a=[];for(let s=0;s<e.size;s++){let i=e.iget(s);a.push(i instanceof O?i.re:i)}if(a.length===0)return;let u=0;for(let s=0;s<n;s++)if(t.iget(s)){let c=a[u%a.length];B(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),r.iset(s,c),u++}}function De(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(x.fromData(new Int32Array(e),[r],"int32"));return n}function Ua(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 De(n,e)}function xe(r,t=0,e){let n=e??r,o=[],a=[];for(let u=0;u<r;u++)for(let s=0;s<=Math.min(u+t,n-1);s++)s>=0&&(o.push(u),a.push(s));return[x.fromData(new Int32Array(o),[o.length],"int32"),x.fromData(new Int32Array(a),[a.length],"int32")]}function $a(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return xe(e[0],t,e[1])}function Ne(r,t=0,e){let n=e??r,o=[],a=[];for(let u=0;u<r;u++)for(let s=Math.max(u+t,0);s<n;s++)o.push(u),a.push(s);return[x.fromData(new Int32Array(o),[o.length],"int32"),x.fromData(new Int32Array(a),[a.length],"int32")]}function Ra(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return Ne(e[0],t,e[1])}function ka(r,t,e=0){let n=t(r,e),o=n.shape;if(o.length!==2||o[0]!==r||o[1]!==r)throw new Error("mask_func must return n x n array");let a=[],u=[];for(let s=0;s<r;s++)for(let i=0;i<r;i++)n.get(s,i)&&(a.push(s),u.push(i));return[x.fromData(new Int32Array(a),[a.length],"int32"),x.fromData(new Int32Array(u),[u.length],"int32")]}function qa(r,t="int32"){let e=r.length,n=[e,...r],o=n.reduce((i,c)=>i*c,1),a=P(t);if(!a)throw new Error(`Cannot create indices with dtype ${t}`);let u=new a(o),s=r.reduce((i,c)=>i*c,1);for(let i=0;i<e;i++){let c=i*s;for(let l=0;l<s;l++){let m=new Array(e),d=l;for(let f=e-1;f>=0;f--)m[f]=d%r[f],d=Math.floor(d/r[f]);let p=m[i];t==="int64"?u[c+l]=BigInt(p):u[c+l]=p}}return x.fromData(u,n,t)}function Va(...r){let t=r.length,e=[];for(let n=0;n<t;n++){let o=r[n],a=o.size,u=o.dtype,s=new Array(t).fill(1);s[n]=a;let i=P(u);if(!i)throw new Error(`Cannot create ix_ with dtype ${u}`);let c=new i(a);for(let l=0;l<a;l++){let m=o.iget(l);B(u),c[l]=m}e.push(x.fromData(c,s,u))}return e}function ja(r,t,e="raise"){if(r.length!==t.length)throw new Error("multi_index length must equal dims length");if(r.length===0)throw new Error("multi_index cannot be empty");let n=r[0].size,o=t.length,a=new Int32Array(n),u=new Array(o),s=1;for(let i=o-1;i>=0;i--)u[i]=s,s*=t[i];for(let i=0;i<n;i++){let c=0;for(let l=0;l<o;l++){let m=Number(r[l].iget(i)),d=t[l];if(e==="wrap")m=(m%d+d)%d;else if(e==="clip")m=Math.max(0,Math.min(m,d-1));else if(m<0||m>=d)throw new Error(`index ${m} is out of bounds for axis ${l} with size ${d}`);c+=m*u[l]}a[i]=c}return x.fromData(a,[n],"int32")}function Pa(r,t,e="C"){let n=t.length,o,a;if(typeof r=="number")o=[r],a=[];else{o=[];for(let l=0;l<r.size;l++)o.push(Number(r.iget(l)));a=Array.from(r.shape)}let u=o.length,s=t.reduce((l,m)=>l*m,1),i=new Array(n);if(e==="C"){let l=1;for(let m=n-1;m>=0;m--)i[m]=l,l*=t[m]}else{let l=1;for(let m=0;m<n;m++)i[m]=l,l*=t[m]}let c=[];for(let l=0;l<n;l++){let m=new Int32Array(u);c.push(x.fromData(m,a.length?a:[1],"int32"))}for(let l=0;l<u;l++){let m=o[l];if(m<0||m>=s)throw new Error(`index ${m} is out of bounds for array with size ${s}`);if(e==="C")for(let d=0;d<n;d++){let p=Math.floor(m/i[d]);m=m%i[d],c[d].data[l]=p%t[d]}else for(let d=n-1;d>=0;d--){let p=Math.floor(m/i[d]);m=m%i[d],c[d].data[l]=p%t[d]}}return typeof r=="number"?c.map(l=>{let m=l.iget(0);return x.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 u=r.data,s=r.size,i=Math.min(...n);if(e&&o===2&&(i=Math.max(n[0],n[1])),typeof t=="number")for(let c=0;c<i&&c*a<s;c++){let l=c*a;if(l<s)u[l]=t;else break}else{let c=t.data,l=t.size;for(let m=0;m<i&&m*a<s;m++){let d=m*a;if(d<s)u[d]=c[m%l];else break}}}function dr(r,t){if(!Mn(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 tt(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function Wa(r,t){return dr(r.dtype,"bitwise_and"),typeof t=="number"?jm(r,t):(dr(t.dtype,"bitwise_and"),tt(r,t)?Vm(r,t):J(r,t,(e,n)=>e&n,"bitwise_and"))}function Vm(r,t){let e=G(r.dtype,t.dtype),n=x.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(B(e)){let i=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),d=typeof u[l]=="bigint"?u[l]:BigInt(Math.round(Number(u[l])));i[l]=m&d}else{let l=a,m=u;for(let d=0;d<o;d++)i[d]=l[d]&m[d]}}else for(let i=0;i<o;i++)s[i]=a[i]&u[i];return n}function jm(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=x.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]&l}else for(let i=0;i<a;i++)s[i]=o[i]&t;return u}function Ya(r,t){return dr(r.dtype,"bitwise_or"),typeof t=="number"?Lm(r,t):(dr(t.dtype,"bitwise_or"),tt(r,t)?Pm(r,t):J(r,t,(e,n)=>e|n,"bitwise_or"))}function Pm(r,t){let e=G(r.dtype,t.dtype),n=x.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(B(e)){let i=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),d=typeof u[l]=="bigint"?u[l]:BigInt(Math.round(Number(u[l])));i[l]=m|d}else{let l=a,m=u;for(let d=0;d<o;d++)i[d]=l[d]|m[d]}}else for(let i=0;i<o;i++)s[i]=a[i]|u[i];return n}function Lm(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=x.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]|l}else for(let i=0;i<a;i++)s[i]=o[i]|t;return u}function Ha(r,t){return dr(r.dtype,"bitwise_xor"),typeof t=="number"?Gm(r,t):(dr(t.dtype,"bitwise_xor"),tt(r,t)?Zm(r,t):J(r,t,(e,n)=>e^n,"bitwise_xor"))}function Zm(r,t){let e=G(r.dtype,t.dtype),n=x.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(B(e)){let i=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),d=typeof u[l]=="bigint"?u[l]:BigInt(Math.round(Number(u[l])));i[l]=m^d}else{let l=a,m=u;for(let d=0;d<o;d++)i[d]=l[d]^m[d]}}else for(let i=0;i<o;i++)s[i]=a[i]^u[i];return n}function Gm(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=x.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]^l}else for(let i=0;i<a;i++)s[i]=o[i]^t;return u}function we(r){dr(r.dtype,"bitwise_not");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=x.zeros(e,t),u=a.data;if(B(t)){let s=n,i=u;for(let c=0;c<o;c++)i[c]=~s[c]}else for(let s=0;s<o;s++)u[s]=~n[s];return a}function Ja(r){return we(r)}function Xa(r,t){if(dr(r.dtype,"left_shift"),typeof t=="number")return Za(r,t);if(dr(t.dtype,"left_shift"),t.size===1||t.ndim===1&&t.shape[0]===1){let e=B(t.dtype)?Number(t.data[0]):t.data[0];return Za(r,e)}return tt(r,t)?Wm(r,t):J(r,t,(e,n)=>e<<n,"left_shift")}function Wm(r,t){let e=G(r.dtype,t.dtype),n=x.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(B(e)){let i=s;for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?a[c]:BigInt(Math.round(Number(a[c]))),m=typeof u[c]=="bigint"?u[c]:BigInt(Math.round(Number(u[c])));i[c]=l<<m}}else for(let i=0;i<o;i++)s[i]=a[i]<<u[i];return n}function Za(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=x.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]<<l}else for(let i=0;i<a;i++)s[i]=o[i]<<t;return u}function Qa(r,t){if(dr(r.dtype,"right_shift"),typeof t=="number")return Ga(r,t);if(dr(t.dtype,"right_shift"),t.size===1||t.ndim===1&&t.shape[0]===1){let e=B(t.dtype)?Number(t.data[0]):t.data[0];return Ga(r,e)}return tt(r,t)?Ym(r,t):J(r,t,(e,n)=>e>>n,"right_shift")}function Ym(r,t){let e=G(r.dtype,t.dtype),n=x.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(B(e)){let i=s;for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?a[c]:BigInt(Math.round(Number(a[c]))),m=typeof u[c]=="bigint"?u[c]:BigInt(Math.round(Number(u[c])));i[c]=l>>m}}else for(let i=0;i<o;i++)s[i]=a[i]>>u[i];return n}function Ga(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=x.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]>>l}else for(let i=0;i<a;i++)s[i]=o[i]>>t;return u}function Ka(r,t=-1,e="big"){let n=Array.from(r.shape),o=n.length;if(t<0&&(t=o+t),t<0||t>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let a=n[t],u=Math.ceil(a/8),s=[...n];s[t]=u;let i=x.zeros(s,"uint8"),c=i.data;if(o===1){for(let g=0;g<u;g++){let h=0;for(let b=0;b<8;b++){let A=g*8+b;if(A<a){let S=Number(r.data[A])!==0?1:0;e==="big"?h|=S<<7-b:h|=S<<b}}c[g]=h}return i}let l=n.slice(0,t),m=n.slice(t+1),d=l.reduce((g,h)=>g*h,1),p=m.reduce((g,h)=>g*h,1),f=wt(n),y=wt(s);for(let g=0;g<d;g++)for(let h=0;h<p;h++)for(let b=0;b<u;b++){let A=0;for(let N=0;N<8;N++){let I=b*8+N;if(I<a){let z=0,F=g;for(let T=0;T<t;T++){let C=T<t-1?l.slice(T+1).reduce((V,R)=>V*R,1):1,k=Math.floor(F/C);F%=C,z+=k*f[T]}z+=I*f[t];let _=h;for(let T=t+1;T<o;T++){let C=T<o-1?m.slice(T-t).reduce((V,R)=>V*R,1):1,k=Math.floor(_/C);_%=C,z+=k*f[T]}let E=Number(r.data[z])!==0?1:0;e==="big"?A|=E<<7-N:A|=E<<N}}let S=0,D=g;for(let N=0;N<t;N++){let I=N<t-1?l.slice(N+1).reduce((F,_)=>F*_,1):1,z=Math.floor(D/I);D%=I,S+=z*y[N]}S+=b*y[t];let w=h;for(let N=t+1;N<o;N++){let I=N<o-1?m.slice(N-t).reduce((F,_)=>F*_,1):1,z=Math.floor(w/I);w%=I,S+=z*y[N]}c[S]=A}return i}function rs(r,t=-1,e=-1,n="big"){if(r.dtype!=="uint8")throw new TypeError("Expected an input array of unsigned byte data type");let o=Array.from(r.shape),a=o.length;if(t<0&&(t=a+t),t<0||t>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let u=o[t],s=u*8;e>=0&&(s=e);let i=[...o];i[t]=s;let c=x.zeros(i,"uint8"),l=c.data;if(a===1){for(let h=0;h<u;h++){let b=Number(r.data[h]);for(let A=0;A<8;A++){let S=h*8+A;if(S>=s)break;n==="big"?l[S]=b>>7-A&1:l[S]=b>>A&1}}return c}let m=o.slice(0,t),d=o.slice(t+1),p=m.reduce((h,b)=>h*b,1),f=d.reduce((h,b)=>h*b,1),y=wt(o),g=wt(i);for(let h=0;h<p;h++)for(let b=0;b<f;b++)for(let A=0;A<u;A++){let S=0,D=h;for(let I=0;I<t;I++){let z=I<t-1?m.slice(I+1).reduce((_,E)=>_*E,1):1,F=Math.floor(D/z);D%=z,S+=F*y[I]}S+=A*y[t];let w=b;for(let I=t+1;I<a;I++){let z=I<a-1?d.slice(I-t).reduce((_,E)=>_*E,1):1,F=Math.floor(w/z);w%=z,S+=F*y[I]}let N=Number(r.data[S]);for(let I=0;I<8;I++){let z=A*8+I;if(z>=s)break;let F=0;D=h;for(let _=0;_<t;_++){let E=_<t-1?m.slice(_+1).reduce((C,k)=>C*k,1):1,T=Math.floor(D/E);D%=E,F+=T*g[_]}F+=z*g[t],w=b;for(let _=t+1;_<a;_++){let E=_<a-1?d.slice(_-t).reduce((C,k)=>C*k,1):1,T=Math.floor(w/E);w%=E,F+=T*g[_]}n==="big"?l[F]=N>>7-I&1:l[F]=N>>I&1}}return c}function wt(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 jr(r){return r!==0&&r!==0n}function br(r,t){let e=r[t*2],n=r[t*2+1];return e!==0||n!==0}function nt(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function es(r,t){return typeof t=="number"?Xm(r,t):nt(r,t)?Jm(r,t):fr(r,t,(e,n)=>jr(e)&&jr(n))}function Jm(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.size,u=B(r.dtype),s=B(t.dtype),i=M(r.dtype),c=M(t.dtype);if(i||c)for(let l=0;l<a;l++){let m=i?br(n,l):n[l]!==0,d=c?br(o,l):o[l]!==0;e[l]=m&&d?1:0}else if(u||s)for(let l=0;l<a;l++){let m=u?n[l]!==0n:n[l]!==0,d=s?o[l]!==0n:o[l]!==0;e[l]=m&&d?1:0}else for(let l=0;l<a;l++)e[l]=n[l]!==0&&o[l]!==0?1:0;return x.fromData(e,Array.from(r.shape),"bool")}function Xm(r,t){let e=new Uint8Array(r.size),n=r.data,o=t!==0,a=r.size;if(M(r.dtype)){let u=n;for(let s=0;s<a;s++)e[s]=br(u,s)&&o?1:0}else if(B(r.dtype)){let u=n;for(let s=0;s<a;s++)e[s]=u[s]!==0n&&o?1:0}else for(let u=0;u<a;u++)e[u]=n[u]!==0&&o?1:0;return x.fromData(e,Array.from(r.shape),"bool")}function ns(r,t){return typeof t=="number"?Km(r,t):nt(r,t)?Qm(r,t):fr(r,t,(e,n)=>jr(e)||jr(n))}function Qm(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.size,u=B(r.dtype),s=B(t.dtype),i=M(r.dtype),c=M(t.dtype);if(i||c)for(let l=0;l<a;l++){let m=i?br(n,l):n[l]!==0,d=c?br(o,l):o[l]!==0;e[l]=m||d?1:0}else if(u||s)for(let l=0;l<a;l++){let m=u?n[l]!==0n:n[l]!==0,d=s?o[l]!==0n:o[l]!==0;e[l]=m||d?1:0}else for(let l=0;l<a;l++)e[l]=n[l]!==0||o[l]!==0?1:0;return x.fromData(e,Array.from(r.shape),"bool")}function Km(r,t){let e=new Uint8Array(r.size),n=r.data,o=t!==0,a=r.size;if(M(r.dtype)){let u=n;for(let s=0;s<a;s++)e[s]=br(u,s)||o?1:0}else if(B(r.dtype)){let u=n;for(let s=0;s<a;s++)e[s]=u[s]!==0n||o?1:0}else for(let u=0;u<a;u++)e[u]=n[u]!==0||o?1:0;return x.fromData(e,Array.from(r.shape),"bool")}function os(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(M(r.dtype)){let o=e;for(let a=0;a<n;a++)t[a]=br(o,a)?0:1}else if(B(r.dtype)){let o=e;for(let a=0;a<n;a++)t[a]=o[a]===0n?1:0}else for(let o=0;o<n;o++)t[o]=e[o]===0?1:0;return x.fromData(t,Array.from(r.shape),"bool")}function as(r,t){return typeof t=="number"?ty(r,t):nt(r,t)?ry(r,t):fr(r,t,(e,n)=>jr(e)!==jr(n))}function ry(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.size,u=B(r.dtype),s=B(t.dtype),i=M(r.dtype),c=M(t.dtype);if(i||c)for(let l=0;l<a;l++){let m=i?br(n,l):n[l]!==0,d=c?br(o,l):o[l]!==0;e[l]=m!==d?1:0}else if(u||s)for(let l=0;l<a;l++){let m=u?n[l]!==0n:n[l]!==0,d=s?o[l]!==0n:o[l]!==0;e[l]=m!==d?1:0}else for(let l=0;l<a;l++){let m=n[l]!==0,d=o[l]!==0;e[l]=m!==d?1:0}return x.fromData(e,Array.from(r.shape),"bool")}function ty(r,t){let e=new Uint8Array(r.size),n=r.data,o=t!==0,a=r.size;if(M(r.dtype)){let u=n;for(let s=0;s<a;s++){let i=br(u,s);e[s]=i!==o?1:0}}else if(B(r.dtype)){let u=n;for(let s=0;s<a;s++){let i=u[s]!==0n;e[s]=i!==o?1:0}}else for(let u=0;u<a;u++){let s=n[u]!==0;e[u]=s!==o?1:0}return x.fromData(e,Array.from(r.shape),"bool")}function ss(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(M(r.dtype)){let o=e;for(let a=0;a<n;a++){let u=o[a*2],s=o[a*2+1];t[a]=Number.isFinite(u)&&Number.isFinite(s)?1:0}}else if(B(r.dtype))for(let o=0;o<n;o++)t[o]=1;else for(let o=0;o<n;o++){let a=e[o];t[o]=Number.isFinite(a)?1:0}return x.fromData(t,Array.from(r.shape),"bool")}function is(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(M(r.dtype)){let o=e;for(let a=0;a<n;a++){let u=o[a*2],s=o[a*2+1],i=!Number.isFinite(u)&&!Number.isNaN(u),c=!Number.isFinite(s)&&!Number.isNaN(s);t[a]=i||c?1:0}}else if(B(r.dtype))for(let o=0;o<n;o++)t[o]=0;else for(let o=0;o<n;o++){let a=e[o];t[o]=!Number.isFinite(a)&&!Number.isNaN(a)?1:0}return x.fromData(t,Array.from(r.shape),"bool")}function us(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(M(r.dtype)){let o=e;for(let a=0;a<n;a++){let u=o[a*2],s=o[a*2+1];t[a]=Number.isNaN(u)||Number.isNaN(s)?1:0}}else if(B(r.dtype))for(let o=0;o<n;o++)t[o]=0;else for(let o=0;o<n;o++)t[o]=Number.isNaN(e[o])?1:0;return x.fromData(t,Array.from(r.shape),"bool")}function cs(r){let t=new Uint8Array(r.size);return x.fromData(t,Array.from(r.shape),"bool")}function ls(r,t){if(q(r.dtype,"copysign","copysign is only defined for real numbers."),typeof t!="number"&&q(t.dtype,"copysign","copysign is only defined for real numbers."),typeof t=="number")return ny(r,t);if(nt(r,t))return ey(r,t);let e=Ir(r.shape,t.shape),n=e.reduce((i,c)=>i*c,1),o=x.zeros(e,"float64"),a=o.data,u=It(r,e),s=It(t,e);for(let i=0;i<n;i++){let c=Number(u.iget(i)),l=Number(s.iget(i));a[i]=Math.sign(l)*Math.abs(c)}return o}function ey(r,t){let e=x.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size,a=r.data,u=t.data,s=B(r.dtype),i=B(t.dtype);for(let c=0;c<o;c++){let l=s?Number(a[c]):a[c],m=i?Number(u[c]):u[c];n[c]=Math.sign(m)*Math.abs(l)}return e}function ny(r,t){let e=x.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.data,a=r.size,u=Math.sign(t);if(B(r.dtype)){let s=o;for(let i=0;i<a;i++)n[i]=u*Math.abs(Number(s[i]))}else for(let s=0;s<a;s++)n[s]=u*Math.abs(o[s]);return e}function fs(r){q(r.dtype,"signbit","signbit is only defined for real numbers.");let t=new Uint8Array(r.size),e=r.data,n=r.size;if(B(r.dtype)){let o=e;for(let a=0;a<n;a++)t[a]=o[a]<0n?1:0}else for(let o=0;o<n;o++){let a=e[o];t[o]=a<0||Object.is(a,-0)?1:0}return x.fromData(t,Array.from(r.shape),"bool")}function ms(r,t){if(q(r.dtype,"nextafter","nextafter is only defined for real numbers."),typeof t!="number"&&q(t.dtype,"nextafter","nextafter is only defined for real numbers."),typeof t=="number")return ay(r,t);if(nt(r,t))return oy(r,t);let e=Ir(r.shape,t.shape),n=e.reduce((i,c)=>i*c,1),o=x.zeros(e,"float64"),a=o.data,u=It(r,e),s=It(t,e);for(let i=0;i<n;i++){let c=Number(u.iget(i)),l=Number(s.iget(i));a[i]=et(c,l)}return o}function oy(r,t){let e=x.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size,a=r.data,u=t.data,s=B(r.dtype),i=B(t.dtype);for(let c=0;c<o;c++){let l=s?Number(a[c]):a[c],m=i?Number(u[c]):u[c];n[c]=et(l,m)}return e}function ay(r,t){let e=x.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.data,a=r.size;if(B(r.dtype)){let u=o;for(let s=0;s<a;s++)n[s]=et(Number(u[s]),t)}else for(let u=0;u<a;u++)n[u]=et(o[u],t);return e}function et(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 ys(r){q(r.dtype,"spacing","spacing is only defined for real numbers.");let t=x.zeros(Array.from(r.shape),"float64"),e=t.data,n=r.data,o=r.size;if(B(r.dtype)){let a=n;for(let u=0;u<o;u++)e[u]=ts(Number(a[u]))}else for(let a=0;a<o;a++)e[a]=ts(n[a]);return t}function ts(r){if(Number.isNaN(r))return NaN;if(!Number.isFinite(r))return NaN;if(Math.abs(r)===0)return Number.MIN_VALUE;let e=et(r,1/0);return Math.abs(e-r)}function It(r,t){let e=r.shape.length,n=t.length,o=new Array(n).fill(0);for(let a=0;a<e;a++){let u=n-e+a,s=r.shape[a],i=t[u];if(s===i)o[u]=r.strides[a];else if(s===1)o[u]=0;else throw new Error("Invalid broadcast")}return x.fromData(r.data,Array.from(t),r.dtype,o,r.offset)}function ps(r){let t=r.dtype,e=r.size,n=new Uint8Array(e);if(M(t)){let o=r.data;for(let a=0;a<e;a++)n[a]=o[a*2+1]!==0?1:0}return x.fromData(n,Array.from(r.shape),"bool")}function ds(r){return M(r.dtype)}function gs(r){let t=r.dtype,e=r.size,n=new Uint8Array(e);if(M(t)){let o=r.data;for(let a=0;a<e;a++)n[a]=o[a*2+1]===0?1:0}else n.fill(1);return x.fromData(n,Array.from(r.shape),"bool")}function As(r){return!M(r.dtype)}function bs(r){q(r.dtype,"isneginf","This operation is not supported for complex values because it would be ambiguous.");let t=new Uint8Array(r.size),e=r.data,n=r.size;if(!B(r.dtype))for(let o=0;o<n;o++){let a=e[o];t[o]=a===-1/0?1:0}return x.fromData(t,Array.from(r.shape),"bool")}function hs(r){q(r.dtype,"isposinf","This operation is not supported for complex values because it would be ambiguous.");let t=new Uint8Array(r.size),e=r.data,n=r.size;if(!B(r.dtype))for(let o=0;o<n;o++){let a=e[o];t[o]=a===1/0?1:0}return x.fromData(t,Array.from(r.shape),"bool")}function Ss(r){return r.isFContiguous}function Ds(r,t=100){let e=r.dtype;if(M(e)){let n=r.data,o=r.size,u=t*(e==="complex64"?11920929e-14:2220446049250313e-31),s=!0;for(let i=0;i<o;i++){let c=n[i*2+1];if(Math.abs(c)>u){s=!1;break}}if(s){let i=e==="complex64"?"float32":"float64",c=x.zeros(Array.from(r.shape),i),l=c.data;for(let m=0;m<o;m++)l[m]=n[m*2];return c}return r.copy()}return r.copy()}function xs(r){return typeof r=="number"||typeof r=="bigint"||typeof r=="boolean"||typeof r=="string"}function Ns(r){return r==null?!1:typeof r[Symbol.iterator]=="function"}function ws(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 Is(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 zs(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(M(t)){let o=Zr(t),a=x.zeros(e,o),u=a.data,s=r.data;for(let i=0;i<n;i++)u[i]=s[i*2];return a}return r.copy()}function _s(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(M(t)){let a=Zr(t),u=x.zeros(e,a),s=u.data,i=r.data;for(let c=0;c<n;c++)s[c]=i[c*2+1];return u}let o=t==="float32"?"float32":"float64";return x.zeros(e,o)}function Fs(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(M(t)){let o=P(t),a=n*2,u=new o(a),s=r.data;for(let i=0;i<n;i++)u[i*2]=s[i*2],u[i*2+1]=-s[i*2+1];return x.fromData(u,e,t)}return r.copy()}function Ms(r,t=!1){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=x.zeros(n,"float64"),u=a.data;if(M(e)){let s=r.data;for(let i=0;i<o;i++){let c=s[i*2],l=s[i*2+1],m=Math.atan2(l,c);t&&(m=m*180/Math.PI),u[i]=m}}else for(let s=0;s<o;s++){let i=r.iget(s),l=(i instanceof O?i.re:Number(i))>=0?0:Math.PI;t&&(l=l*180/Math.PI),u[s]=l}return a}function hr(r,t,e){if(e){let n=r[t*2],o=r[t*2+1];return n!==0||o!==0}return!!r[t]}function ot(r,t,e,n){let o=isNaN(r)||isNaN(t),a=isNaN(e)||isNaN(n);return o&&a?0:o?1:a||r<e?-1:r>e?1:t<n?-1:t>n?1:0}function Ie(r,t=-1){let e=r.shape,n=e.length,o=r.dtype,a=r.data;if(n===0)return r.copy();let u=t;if(u<0&&(u=n+u),u<0||u>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let s=r.copy(),i=s.data,c=e[u],l=Array.from(e).filter((d,p)=>p!==u),m=l.length===0?1:l.reduce((d,p)=>d*p,1);if(M(o)){let d=a,p=i;for(let f=0;f<m;f++){let y=[];for(let g=0;g<c;g++){let h=$(f,u,g,e),b=U(h,e);y.push({re:d[b*2],im:d[b*2+1],idx:g})}y.sort((g,h)=>ot(g.re,g.im,h.re,h.im));for(let g=0;g<c;g++){let h=$(f,u,g,e),b=U(h,e);p[b*2]=y[g].re,p[b*2+1]=y[g].im}}}else if(B(o)){let d=a,p=i;for(let f=0;f<m;f++){let y=[];for(let g=0;g<c;g++){let h=$(f,u,g,e),b=U(h,e);y.push({value:d[b],idx:g})}y.sort((g,h)=>g.value<h.value?-1:g.value>h.value?1:0);for(let g=0;g<c;g++){let h=$(f,u,g,e),b=U(h,e);p[b]=y[g].value}}}else for(let d=0;d<m;d++){let p=[];for(let f=0;f<c;f++){let y=$(d,u,f,e),g=U(y,e);p.push(Number(a[g]))}p.sort((f,y)=>isNaN(f)&&isNaN(y)?0:isNaN(f)?1:isNaN(y)?-1:f-y);for(let f=0;f<c;f++){let y=$(d,u,f,e),g=U(y,e);i[g]=p[f]}}return s}function ze(r,t=-1){let e=r.shape,n=e.length,o=r.dtype,a=r.data;if(n===0)return x.zeros([0],"int32");let u=t;if(u<0&&(u=n+u),u<0||u>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let s=x.zeros(Array.from(e),"int32"),i=s.data,c=e[u],l=Array.from(e).filter((d,p)=>p!==u),m=l.length===0?1:l.reduce((d,p)=>d*p,1);if(M(o)){let d=a;for(let p=0;p<m;p++){let f=[];for(let y=0;y<c;y++){let g=$(p,u,y,e),h=U(g,e);f.push({re:d[h*2],im:d[h*2+1],idx:y})}f.sort((y,g)=>ot(y.re,y.im,g.re,g.im));for(let y=0;y<c;y++){let g=$(p,u,y,e),h=U(g,e);i[h]=f[y].idx}}}else if(B(o)){let d=a;for(let p=0;p<m;p++){let f=[];for(let y=0;y<c;y++){let g=$(p,u,y,e),h=U(g,e);f.push({value:d[h],idx:y})}f.sort((y,g)=>y.value<g.value?-1:y.value>g.value?1:0);for(let y=0;y<c;y++){let g=$(p,u,y,e),h=U(g,e);i[h]=f[y].idx}}}else for(let d=0;d<m;d++){let p=[];for(let f=0;f<c;f++){let y=$(d,u,f,e),g=U(y,e);p.push({value:Number(a[g]),idx:f})}p.sort((f,y)=>isNaN(f.value)&&isNaN(y.value)?0:isNaN(f.value)?1:isNaN(y.value)?-1:f.value-y.value);for(let f=0;f<c;f++){let y=$(d,u,f,e),g=U(y,e);i[g]=p[f].idx}}return s}function Bs(r){if(r.length===0)return x.zeros([0],"int32");let e=r[0].size;for(let u of r){if(u.ndim!==1)throw new Error("keys must be 1D arrays");if(u.size!==e)throw new Error("all keys must have the same length")}let n=[];for(let u=0;u<e;u++)n.push(u);n.sort((u,s)=>{for(let i=r.length-1;i>=0;i--){let l=r[i].data,m=Number(l[u]),d=Number(l[s]);if(!(isNaN(m)&&isNaN(d))){if(isNaN(m))return 1;if(isNaN(d)||m<d)return-1;if(m>d)return 1}}return 0});let o=x.zeros([e],"int32"),a=o.data;for(let u=0;u<e;u++)a[u]=n[u];return o}function uy(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e],u=r[o],s=r[n],i;a<=u&&u<=s||s<=u&&u<=a?i=o:u<=a&&a<=s||s<=a&&a<=u?i=e:i=n;let c=r[i];[r[i],r[n]]=[r[n],r[i]];let l=e;for(let m=e;m<n;m++){let d=r[m],p=isNaN(d),f=isNaN(c);!p&&(f||d<=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 cy(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e],u=r[o],s=r[n],i;a<=u&&u<=s||s<=u&&u<=a?i=o:u<=a&&a<=s||s<=a&&a<=u?i=e:i=n;let c=r[i];[r[i],r[n]]=[r[n],r[i]];let l=e;for(let m=e;m<n;m++)r[m]<=c&&([r[l],r[m]]=[r[m],r[l]],l++);if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function ly(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e].value,u=r[o].value,s=r[n].value,i;a<=u&&u<=s||s<=u&&u<=a?i=o:u<=a&&a<=s||s<=a&&a<=u?i=e:i=n;let c=r[i].value;[r[i],r[n]]=[r[n],r[i]];let l=e;for(let m=e;m<n;m++){let d=r[m].value,p=isNaN(d),f=isNaN(c);!p&&(f||d<=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 fy(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e].value,u=r[o].value,s=r[n].value,i;a<=u&&u<=s||s<=u&&u<=a?i=o:u<=a&&a<=s||s<=a&&a<=u?i=e:i=n;let c=r[i].value;[r[i],r[n]]=[r[n],r[i]];let l=e;for(let m=e;m<n;m++)r[m].value<=c&&([r[l],r[m]]=[r[m],r[l]],l++);if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function _e(r,t,e=-1){let n=r.shape,o=n.length,a=r.dtype;if(o===0)return r.copy();let u=e;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=n[u],i=t;if(i<0&&(i=s+i),i<0||i>=s)throw new Error(`kth(=${t}) out of bounds (${s})`);let c=r.copy(),l=c.data,m=Array.from(n).filter((p,f)=>f!==u),d=m.length===0?1:m.reduce((p,f)=>p*f,1);if(B(a)){let p=l;for(let f=0;f<d;f++){let y=[];for(let g=0;g<s;g++){let h=$(f,u,g,n),b=U(h,n);y.push(p[b])}cy(y,i);for(let g=0;g<s;g++){let h=$(f,u,g,n),b=U(h,n);p[b]=y[g]}}}else for(let p=0;p<d;p++){let f=[];for(let y=0;y<s;y++){let g=$(p,u,y,n),h=U(g,n);f.push(Number(l[h]))}uy(f,i);for(let y=0;y<s;y++){let g=$(p,u,y,n),h=U(g,n);l[h]=f[y]}}return c}function Fe(r,t,e=-1){let n=r.shape,o=n.length,a=r.dtype,u=r.data;if(o===0)return x.zeros([0],"int32");let s=e;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=n[s],c=t;if(c<0&&(c=i+c),c<0||c>=i)throw new Error(`kth(=${t}) out of bounds (${i})`);let l=x.zeros(Array.from(n),"int32"),m=l.data,d=Array.from(n).filter((f,y)=>y!==s),p=d.length===0?1:d.reduce((f,y)=>f*y,1);if(B(a)){let f=u;for(let y=0;y<p;y++){let g=[];for(let h=0;h<i;h++){let b=$(y,s,h,n),A=U(b,n);g.push({value:f[A],idx:h})}fy(g,c);for(let h=0;h<i;h++){let b=$(y,s,h,n),A=U(b,n);m[A]=g[h].idx}}}else for(let f=0;f<p;f++){let y=[];for(let g=0;g<i;g++){let h=$(f,s,g,n),b=U(h,n);y.push({value:Number(u[b]),idx:g})}ly(y,c);for(let g=0;g<i;g++){let h=$(f,s,g,n),b=U(h,n);m[b]=y[g].idx}}return l}function vs(r){let t=r.dtype,e=r.size,n=r.data;if(M(t)){let o=n,a=[];for(let i=0;i<e;i++)a.push({re:o[i*2],im:o[i*2+1]});a.sort((i,c)=>ot(i.re,i.im,c.re,c.im));let u=x.zeros([e],"complex128"),s=u.data;for(let i=0;i<e;i++)s[i*2]=a[i].re,s[i*2+1]=a[i].im;return u}else{let o=[];for(let s=0;s<e;s++)o.push(Number(n[s]));o.sort((s,i)=>isNaN(s)&&isNaN(i)?0:isNaN(s)?1:isNaN(i)?-1:s-i);let a=x.zeros([e],"complex128"),u=a.data;for(let s=0;s<e;s++)u[s*2]=o[s],u[s*2+1]=0;return a}}function zt(r){let t=r.shape,e=t.length,n=r.data,o=r.size,a=M(r.dtype),u=[];for(let m=0;m<e;m++)u.push([]);let s=[],i=1;for(let m=e-1;m>=0;m--)s.unshift(i),i*=t[m];for(let m=0;m<o;m++)if(hr(n,m,a)){let d=m;for(let p=0;p<e;p++){let f=Math.floor(d/s[p]);d=d%s[p],u[p].push(f)}}let c=u[0]?.length??0,l=[];for(let m=0;m<e;m++){let d=x.zeros([c],"int32"),p=d.data;for(let f=0;f<c;f++)p[f]=u[m][f];l.push(d)}return l}function Me(r){let t=r.shape,e=t.length,n=r.data,o=r.size,a=M(r.dtype),u=[],s=[],i=1;for(let p=e-1;p>=0;p--)s.unshift(i),i*=t[p];for(let p=0;p<o;p++)if(hr(n,p,a)){let f=[],y=p;for(let g=0;g<e;g++){let h=Math.floor(y/s[g]);y=y%s[g],f.push(h)}u.push(f)}let c=u.length,l=e===0?[c,1]:[c,e],m=x.zeros(l,"int32"),d=m.data;for(let p=0;p<c;p++){let f=u[p];for(let y=0;y<(e===0?1:e);y++)d[p*(e===0?1:e)+y]=f[y]??0}return m}function Es(r){let t=r.data,e=r.size,n=M(r.dtype),o=[];for(let s=0;s<e;s++)hr(t,s,n)&&o.push(s);let a=x.zeros([o.length],"int32"),u=a.data;for(let s=0;s<o.length;s++)u[s]=o[s];return a}function Ts(r,t,e){if(t===void 0&&e===void 0)return zt(r);if(t===void 0||e===void 0)throw new Error("either both or neither of x and y should be given");let n=r.shape,o=t.shape,a=e.shape,u=Math.max(n.length,o.length,a.length),s=_=>{let E=Array(u).fill(1);for(let T=0;T<_.length;T++)E[u-_.length+T]=_[T];return E},i=s(n),c=s(o),l=s(a),m=[];for(let _=0;_<u;_++){let E=[i[_],c[_],l[_]],T=Math.max(...E);for(let C of E)if(C!==1&&C!==T)throw new Error("operands could not be broadcast together");m.push(T)}let d=t.dtype,p=x.zeros(m,d),f=p.data,y=r.data,g=t.data,h=e.data,b=(_,E)=>{let T=[],C=1;for(let k=_.length-1;k>=0;k--)T.unshift(C),C*=_[k];for(;T.length<E.length;)T.unshift(0);for(let k=0;k<E.length;k++)E[k]===1&&m[k]!==1&&(T[k]=0);return T},A=b(n,i),S=b(o,c),D=b(a,l),w=[],N=1;for(let _=m.length-1;_>=0;_--)w.unshift(N),N*=m[_];let I=m.reduce((_,E)=>_*E,1),z=M(r.dtype),F=M(d);for(let _=0;_<I;_++){let E=_,T=0,C=0,k=0;for(let V=0;V<u;V++){let R=Math.floor(E/w[V]);E=E%w[V],T+=R*A[V],C+=R*S[V],k+=R*D[V]}hr(y,T,z)?F?(f[_*2]=g[C*2],f[_*2+1]=g[C*2+1]):f[_]=g[C]:F?(f[_*2]=h[k*2],f[_*2+1]=h[k*2+1]):f[_]=h[k]}return p}function Be(r,t,e="left"){if(r.ndim!==1)throw new Error("storage must be 1D");let n=r.data,o=r.size,a=t.data,u=t.size,s=M(r.dtype),i=x.zeros([u],"int32"),c=i.data;if(s){let l=n,m=a;for(let d=0;d<u;d++){let p=m[d*2],f=m[d*2+1],y=0,g=o;if(e==="left")for(;y<g;){let h=Math.floor((y+g)/2),b=l[h*2],A=l[h*2+1];ot(b,A,p,f)<0?y=h+1:g=h}else for(;y<g;){let h=Math.floor((y+g)/2),b=l[h*2],A=l[h*2+1];ot(b,A,p,f)<=0?y=h+1:g=h}c[d]=y}}else for(let l=0;l<u;l++){let m=Number(a[l]),d=0,p=o;if(e==="left")for(;d<p;){let f=Math.floor((d+p)/2);Number(n[f])<m?d=f+1:p=f}else for(;d<p;){let f=Math.floor((d+p)/2);Number(n[f])<=m?d=f+1:p=f}c[l]=d}return i}function Os(r,t){let e=r.data,n=t.data,o=t.dtype,a=M(r.dtype),u=M(o),s=Math.min(r.size,t.size),i=0;for(let d=0;d<s;d++)hr(e,d,a)&&i++;let c=x.zeros([i],o),l=c.data,m=0;if(B(o)){let d=n,p=l;for(let f=0;f<s;f++)hr(e,f,a)&&(p[m++]=d[f])}else if(u){let d=n,p=l;for(let f=0;f<s;f++)hr(e,f,a)&&(p[m*2]=d[f*2],p[m*2+1]=d[f*2+1],m++)}else for(let d=0;d<s;d++)hr(e,d,a)&&(l[m++]=n[d]);return c}function ve(r,t){let e=r.shape,n=e.length,o=r.data,a=r.size,u=M(r.dtype);if(t===void 0){let p=0;for(let f=0;f<a;f++)hr(o,f,u)&&p++;return p}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((p,f)=>f!==s);if(i.length===0)return ve(r);let c=x.zeros(i,"int32"),l=c.data,m=e[s],d=i.reduce((p,f)=>p*f,1);for(let p=0;p<d;p++){let f=0;for(let y=0;y<m;y++){let g=$(p,s,y,e),h=U(g,e);hr(o,h,u)&&f++}l[p]=f}return c}function Cs(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 Ee(r,t=0){q(r.dtype,"around","Rounding is not defined for complex numbers.");let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=e==="float32"?"float32":"float64",s=x.zeros(n,u),i=s.data,c=Math.pow(10,t);for(let l=0;l<a;l++){let m=Number(o[l]);i[l]=Cs(m*c)/c}return s}function Te(r){q(r.dtype,"ceil","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",u=x.zeros(e,a),s=u.data;for(let i=0;i<o;i++)s[i]=Math.ceil(Number(n[i]));return u}function Oe(r){q(r.dtype,"fix","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",u=x.zeros(e,a),s=u.data;for(let i=0;i<o;i++)s[i]=Math.trunc(Number(n[i]));return u}function Ce(r){q(r.dtype,"floor","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",u=x.zeros(e,a),s=u.data;for(let i=0;i<o;i++)s[i]=Math.floor(Number(n[i]));return u}function Ue(r){q(r.dtype,"rint","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",u=x.zeros(e,a),s=u.data;for(let i=0;i<o;i++)s[i]=Cs(Number(n[i]));return u}function $e(r){q(r.dtype,"trunc","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",u=x.zeros(e,a),s=u.data;for(let i=0;i<o;i++)s[i]=Math.trunc(Number(n[i]));return u}function Re(r,t,e,n){let o=isNaN(r)||isNaN(t),a=isNaN(e)||isNaN(n);return o&&a?0:o?1:a||r<e?-1:r>e?1:t<n?-1:t>n?1:0}function py(r,t,e,n){let o=isNaN(r)||isNaN(t),a=isNaN(e)||isNaN(n);return o&&a?!0:o||a?!1:r===e&&t===n}function wr(r,t=!1,e=!1,n=!1){let o=r.dtype,a=r.size,u=r.data;if(M(o)){let A=u,S=[];for(let R=0;R<a;R++)S.push({re:A[R*2],im:A[R*2+1],index:R});S.sort((R,L)=>Re(R.re,R.im,L.re,L.im));let D=[],w=[],N=new Array(a),I=[],z,F,_=0;for(let R=0;R<S.length;R++){let{re:L,im:j,index:H}=S[R];z===void 0||!py(L,j,z,F)?(z!==void 0&&I.push(_),D.push({re:L,im:j}),w.push(H),_=1,z=L,F=j):_++}_>0&&I.push(_);let E=new Map,T=-1;for(let R=0;R<D.length;R++){let{re:L,im:j}=D[R];isNaN(L)||isNaN(j)?T=R:E.set(`${L},${j}`,R)}for(let R=0;R<a;R++){let L=A[R*2],j=A[R*2+1];isNaN(L)||isNaN(j)?N[R]=T:N[R]=E.get(`${L},${j}`)}let C=x.zeros([D.length],o),k=C.data;for(let R=0;R<D.length;R++)k[R*2]=D[R].re,k[R*2+1]=D[R].im;if(!t&&!e&&!n)return C;let V={values:C};if(t){let R=x.zeros([w.length],"int32"),L=R.data;for(let j=0;j<w.length;j++)L[j]=w[j];V.indices=R}if(e){let R=x.zeros([N.length],"int32"),L=R.data;for(let j=0;j<N.length;j++)L[j]=N[j];V.inverse=R}if(n){let R=x.zeros([I.length],"int32"),L=R.data;for(let j=0;j<I.length;j++)L[j]=I[j];V.counts=R}return V}let s=[];for(let A=0;A<a;A++)s.push({value:Number(u[A]),index:A});s.sort((A,S)=>isNaN(A.value)&&isNaN(S.value)?0:isNaN(A.value)?1:isNaN(S.value)?-1:A.value-S.value);let i=[],c=[],l=new Array(a),m=[],d,p=0;for(let A=0;A<s.length;A++){let{value:S,index:D}=s[A];d===void 0||isNaN(S)&&!isNaN(d)||!isNaN(S)&&isNaN(d)||!isNaN(S)&&!isNaN(d)&&S!==d?(d!==void 0&&m.push(p),i.push(S),c.push(D),p=1,d=S):p++}p>0&&m.push(p);let f=new Map,y=-1;for(let A=0;A<i.length;A++){let S=i[A];isNaN(S)?y=A:f.set(S,A)}for(let A=0;A<a;A++){let S=Number(u[A]);isNaN(S)?l[A]=y:l[A]=f.get(S)}let g=x.zeros([i.length],o),h=g.data;for(let A=0;A<i.length;A++)h[A]=i[A];if(!t&&!e&&!n)return g;let b={values:g};if(t){let A=x.zeros([c.length],"int32"),S=A.data;for(let D=0;D<c.length;D++)S[D]=c[D];b.indices=A}if(e){let A=x.zeros([l.length],"int32"),S=A.data;for(let D=0;D<l.length;D++)S[D]=l[D];b.inverse=A}if(n){let A=x.zeros([m.length],"int32"),S=A.data;for(let D=0;D<m.length;D++)S[D]=m[D];b.counts=A}return b}function Sr(r,t,e){if(e){let n=Number(r[t*2]),o=Number(r[t*2+1]);return`${n},${o}`}return String(Number(r[t]))}function Us(r,t){return ke(r,t)}function $s(r,t){let e=r.dtype,n=M(e),o=wr(r),a=wr(t),u=new Set;for(let l=0;l<a.size;l++)u.add(Sr(a.data,l,n));let s=[];for(let l=0;l<o.size;l++){let m=Sr(o.data,l,n);u.has(m)&&s.push(l)}if(n){let l=x.zeros([s.length],e),m=l.data,d=o.data;for(let p=0;p<s.length;p++){let f=s[p];m[p*2]=d[f*2],m[p*2+1]=d[f*2+1]}return l}let i=x.zeros([s.length],e),c=i.data;for(let l=0;l<s.length;l++)c[l]=o.data[s[l]];return i}function ke(r,t){let e=Array.from(r.shape),n=r.size,o=M(r.dtype),a=new Set;for(let i=0;i<t.size;i++)a.add(Sr(t.data,i,o));let u=x.zeros(e,"bool"),s=u.data;for(let i=0;i<n;i++){let c=Sr(r.data,i,o);s[i]=a.has(c)?1:0}return u}function Rs(r,t){let e=r.dtype,n=M(e),o=wr(r),a=new Set;for(let c=0;c<t.size;c++)a.add(Sr(t.data,c,n));let u=[];for(let c=0;c<o.size;c++){let l=Sr(o.data,c,n);a.has(l)||u.push(c)}if(n){let c=x.zeros([u.length],e),l=c.data,m=o.data;for(let d=0;d<u.length;d++){let p=u[d];l[d*2]=m[p*2],l[d*2+1]=m[p*2+1]}return c}let s=x.zeros([u.length],e),i=s.data;for(let c=0;c<u.length;c++)i[c]=o.data[u[c]];return s}function ks(r,t){let e=r.dtype,n=M(e),o=wr(r),a=wr(t),u=new Set,s=new Set;for(let p=0;p<o.size;p++)u.add(Sr(o.data,p,n));for(let p=0;p<a.size;p++)s.add(Sr(a.data,p,n));let i=[],c=[];for(let p=0;p<o.size;p++){let f=Sr(o.data,p,n);s.has(f)||i.push(p)}for(let p=0;p<a.size;p++){let f=Sr(a.data,p,n);u.has(f)||c.push(p)}if(n){let p=[],f=o.data,y=a.data;for(let b of i)p.push({re:f[b*2],im:f[b*2+1]});for(let b of c)p.push({re:y[b*2],im:y[b*2+1]});p.sort((b,A)=>Re(b.re,b.im,A.re,A.im));let g=x.zeros([p.length],e),h=g.data;for(let b=0;b<p.length;b++)h[b*2]=p[b].re,h[b*2+1]=p[b].im;return g}let l=[];for(let p of i)l.push(Number(o.data[p]));for(let p of c)l.push(Number(a.data[p]));l.sort((p,f)=>isNaN(p)&&isNaN(f)?0:isNaN(p)?1:isNaN(f)?-1:p-f);let m=x.zeros([l.length],e),d=m.data;for(let p=0;p<l.length;p++)d[p]=l[p];return m}function qs(r,t){let e=r.dtype,n=M(e),o=wr(r),a=wr(t),u=new Set,s=[];if(n){let m=o.data,d=a.data;for(let y=0;y<o.size;y++){let g=m[y*2],h=m[y*2+1],b=`${g},${h}`;u.has(b)||(u.add(b),s.push({re:g,im:h}))}for(let y=0;y<a.size;y++){let g=d[y*2],h=d[y*2+1],b=`${g},${h}`;u.has(b)||(u.add(b),s.push({re:g,im:h}))}s.sort((y,g)=>Re(y.re,y.im,g.re,g.im));let p=x.zeros([s.length],e),f=p.data;for(let y=0;y<s.length;y++)f[y*2]=s[y].re,f[y*2+1]=s[y].im;return p}let i=[];for(let m=0;m<o.size;m++){let d=Number(o.data[m]),p=String(d);u.has(p)||(u.add(p),i.push(d))}for(let m=0;m<a.size;m++){let d=Number(a.data[m]),p=String(d);u.has(p)||(u.add(p),i.push(d))}i.sort((m,d)=>isNaN(m)&&isNaN(d)?0:isNaN(m)?1:isNaN(d)?-1:m-d);let c=x.zeros([i.length],e),l=c.data;for(let m=0;m<i.length;m++)l[m]=i[m];return c}function qe(r,t=1,e=-1){if(t<0)throw new Error(`order must be non-negative but got ${t}`);if(t===0)return r.copy();let n=Array.from(r.shape),o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);if(n[a]<t+1)throw new Error(`diff requires at least ${t+1} elements along axis ${e}, but got ${n[a]}`);let u=r;for(let s=0;s<t;s++)u=gy(u,a);return u}function gy(r,t){let e=Array.from(r.shape),n=e.length,o=e[t],a=[...e];a[t]=o-1;let u=r.dtype,s=M(u),i=B(u)?"float64":u,c=x.zeros(a,i),l=c.data,m=r.strides,d=c.size;for(let p=0;p<d;p++){let f=p,y=new Array(n);for(let S=n-1;S>=0;S--)y[S]=f%a[S],f=Math.floor(f/a[S]);let g=[...y],h=[...y];h[t]=g[t]+1;let b=0,A=0;for(let S=0;S<n;S++)b+=g[S]*m[S],A+=h[S]*m[S];if(s){let S=r.data,D=S[b*2],w=S[b*2+1],N=S[A*2],I=S[A*2+1];l[p*2]=N-D,l[p*2+1]=I-w}else{let S=(B(u),Number(r.data[b])),D=(B(u),Number(r.data[A]));l[p]=D-S}}return c}function Vs(r,t=null,e=null){let n=r.size,o=r.dtype,a=M(o),u=B(o)?"float64":o,s=Math.max(0,n-1),i=e?e.length:0,c=t?t.length:0,l=i+s+c,m=x.zeros([l],u),d=m.data,p=0;if(e)if(a)for(let f of e)d[p*2]=f,d[p*2+1]=0,p++;else for(let f of e)d[p++]=f;if(a){let f=r.data;for(let y=0;y<s;y++){let g=f[y*2],h=f[y*2+1],b=f[(y+1)*2],A=f[(y+1)*2+1];d[p*2]=b-g,d[p*2+1]=A-h,p++}}else for(let f=0;f<s;f++){let y=(B(o),Number(r.iget(f))),g=(B(o),Number(r.iget(f+1)));d[p++]=g-y}if(t)if(a)for(let f of t)d[p*2]=f,d[p*2+1]=0,p++;else for(let f of t)d[p++]=f;return m}function js(r,t=1,e=null){let o=Array.from(r.shape).length,a;if(e===null)a=Array.from({length:o},(i,c)=>c);else if(typeof e=="number"){let i=e<0?o+e:e;if(i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);a=[i]}else a=e.map(i=>{let c=i<0?o+i:i;if(c<0||c>=o)throw new Error(`axis ${i} is out of bounds for array of dimension ${o}`);return c});let u;if(typeof t=="number")u=a.map(()=>t);else{if(t.length!==a.length)throw new Error("Number of spacings must match number of axes");u=t}let s=[];for(let i=0;i<a.length;i++)s.push(Ay(r,a[i],u[i]));return s.length===1?s[0]:s}function Ay(r,t,e){let n=Array.from(r.shape),o=n.length,a=n[t];if(a<2)throw new Error(`Shape of array along axis ${t} must be at least 2, but got ${a}`);let u=r.dtype,s=M(u),i=B(u)?"float64":u==="float32"?"float32":s?u:"float64",c=x.zeros(n,i),l=c.data,m=r.strides,d=e,p=2*d,f=r.size;for(let y=0;y<f;y++){let g=y,h=new Array(o);for(let A=o-1;A>=0;A--)h[A]=g%n[A],g=Math.floor(g/n[A]);let b=h[t];if(s){let A=r.data,S=l,D,w;if(b===0){let N=[...h];N[t]=1;let I=0;for(let T=0;T<o;T++)I+=N[T]*m[T];let z=A[y*2],F=A[y*2+1],_=A[I*2],E=A[I*2+1];D=(_-z)/d,w=(E-F)/d}else if(b===a-1){let N=[...h];N[t]=a-2;let I=0;for(let T=0;T<o;T++)I+=N[T]*m[T];let z=A[y*2],F=A[y*2+1],_=A[I*2],E=A[I*2+1];D=(z-_)/d,w=(F-E)/d}else{let N=[...h],I=[...h];N[t]=b+1,I[t]=b-1;let z=0,F=0;for(let k=0;k<o;k++)z+=N[k]*m[k],F+=I[k]*m[k];let _=A[z*2],E=A[z*2+1],T=A[F*2],C=A[F*2+1];D=(_-T)/p,w=(E-C)/p}S[y*2]=D,S[y*2+1]=w}else{let A;if(b===0){let S=[...h];S[t]=1;let D=0;for(let I=0;I<o;I++)D+=S[I]*m[I];let w=(B(u),Number(r.data[y]));A=((B(u),Number(r.data[D]))-w)/d}else if(b===a-1){let S=[...h];S[t]=a-2;let D=0;for(let I=0;I<o;I++)D+=S[I]*m[I];let w=(B(u),Number(r.data[y])),N=(B(u),Number(r.data[D]));A=(w-N)/d}else{let S=[...h],D=[...h];S[t]=b+1,D[t]=b-1;let w=0,N=0;for(let F=0;F<o;F++)w+=S[F]*m[F],N+=D[F]*m[F];let I=(B(u),Number(r.data[w])),z=(B(u),Number(r.data[N]));A=(I-z)/p}l[y]=A}}return c}function Ps(r,t,e=-1,n=-1,o=-1){let a=Array.from(r.shape),u=Array.from(t.shape),s=a.length,i=u.length,c=e<0?s+e:e,l=n<0?i+n:n;if(c<0||c>=s)throw new Error(`axisa ${e} is out of bounds for array of dimension ${s}`);if(l<0||l>=i)throw new Error(`axisb ${n} is out of bounds for array of dimension ${i}`);let m=a[c],d=u[l];if(m!==2&&m!==3)throw new Error(`incompatible dimensions for cross product (dimension must be 2 or 3, got ${m})`);if(d!==2&&d!==3)throw new Error(`incompatible dimensions for cross product (dimension must be 2 or 3, got ${d})`);let p=G(r.dtype,t.dtype),f=M(p),y=(b,A)=>{if(M(b.dtype)){let S=b.data;return[S[A*2],S[A*2+1]]}return[Number(b.iget(A)),0]},g=(b,A,S,D)=>[b*S-A*D,b*D+A*S],h=(b,A,S,D)=>[b-S,A-D];if(s===1&&i===1&&m===3&&d===3){let b=x.zeros([3],p);if(f){let A=b.data,[S,D]=y(r,0),[w,N]=y(r,1),[I,z]=y(r,2),[F,_]=y(t,0),[E,T]=y(t,1),[C,k]=y(t,2),[V,R]=g(w,N,C,k),[L,j]=g(I,z,E,T),[H,Q]=h(V,R,L,j),[Z,rr]=g(I,z,F,_),[tr,er]=g(S,D,C,k),[cr,Rt]=h(Z,rr,tr,er),[kt,qt]=g(S,D,E,T),[Vt,jt]=g(w,N,F,_),[Pt,Lt]=h(kt,qt,Vt,jt);A[0]=H,A[1]=Q,A[2]=cr,A[3]=Rt,A[4]=Pt,A[5]=Lt}else{let A=b.data,S=Number(r.iget(0)),D=Number(r.iget(1)),w=Number(r.iget(2)),N=Number(t.iget(0)),I=Number(t.iget(1)),z=Number(t.iget(2));A[0]=D*z-w*I,A[1]=w*N-S*z,A[2]=S*I-D*N}return b}if(s===1&&i===1&&m===2&&d===2){let b=x.zeros([],p);if(f){let A=b.data,[S,D]=y(r,0),[w,N]=y(r,1),[I,z]=y(t,0),[F,_]=y(t,1),[E,T]=g(S,D,F,_),[C,k]=g(w,N,I,z),[V,R]=h(E,T,C,k);A[0]=V,A[1]=R}else{let A=Number(r.iget(0)),S=Number(r.iget(1)),D=Number(t.iget(0)),w=Number(t.iget(1));b.data[0]=A*w-S*D}return b}if(s===1&&i===1){if(m===2&&d===3){let b=x.zeros([3],p);if(f){let A=b.data,[S,D]=y(r,0),[w,N]=y(r,1),[I,z]=y(t,0),[F,_]=y(t,1),[E,T]=y(t,2),[C,k]=g(w,N,E,T),[V,R]=g(S,D,E,T),L=-V,j=-R,[H,Q]=g(S,D,F,_),[Z,rr]=g(w,N,I,z),[tr,er]=h(H,Q,Z,rr);A[0]=C,A[1]=k,A[2]=L,A[3]=j,A[4]=tr,A[5]=er}else{let A=b.data,S=Number(r.iget(0)),D=Number(r.iget(1)),w=Number(t.iget(0)),N=Number(t.iget(1)),I=Number(t.iget(2));A[0]=D*I,A[1]=-S*I,A[2]=S*N-D*w}return b}else if(m===3&&d===2){let b=x.zeros([3],p);if(f){let A=b.data,[S,D]=y(r,0),[w,N]=y(r,1),[I,z]=y(r,2),[F,_]=y(t,0),[E,T]=y(t,1),[C,k]=g(I,z,E,T),V=-C,R=-k,[L,j]=g(I,z,F,_),[H,Q]=g(S,D,E,T),[Z,rr]=g(w,N,F,_),[tr,er]=h(H,Q,Z,rr);A[0]=V,A[1]=R,A[2]=L,A[3]=j,A[4]=tr,A[5]=er}else{let A=b.data,S=Number(r.iget(0)),D=Number(r.iget(1)),w=Number(r.iget(2)),N=Number(t.iget(0)),I=Number(t.iget(1));A[0]=-w*I,A[1]=w*N,A[2]=S*I-D*N}return b}}if(s===2&&i===2&&c===1&&l===1){let b=a[0];if(u[0]!==b)throw new Error(`Shape mismatch: a has ${b} vectors, b has ${u[0]} vectors`);if(m===3&&d===3){let A=x.zeros([b,3],p);if(f){let S=A.data;for(let D=0;D<b;D++){let[w,N]=y(r,D*3),[I,z]=y(r,D*3+1),[F,_]=y(r,D*3+2),[E,T]=y(t,D*3),[C,k]=y(t,D*3+1),[V,R]=y(t,D*3+2),[L,j]=g(I,z,V,R),[H,Q]=g(F,_,C,k),[Z,rr]=h(L,j,H,Q),[tr,er]=g(F,_,E,T),[cr,Rt]=g(w,N,V,R),[kt,qt]=h(tr,er,cr,Rt),[Vt,jt]=g(w,N,C,k),[Pt,Lt]=g(I,z,E,T),[Gf,Wf]=h(Vt,jt,Pt,Lt);S[D*3*2]=Z,S[D*3*2+1]=rr,S[(D*3+1)*2]=kt,S[(D*3+1)*2+1]=qt,S[(D*3+2)*2]=Gf,S[(D*3+2)*2+1]=Wf}}else{let S=A.data;for(let D=0;D<b;D++){let w=Number(r.iget(D*3)),N=Number(r.iget(D*3+1)),I=Number(r.iget(D*3+2)),z=Number(t.iget(D*3)),F=Number(t.iget(D*3+1)),_=Number(t.iget(D*3+2));S[D*3]=N*_-I*F,S[D*3+1]=I*z-w*_,S[D*3+2]=w*F-N*z}}return A}if(m===2&&d===2){let A=x.zeros([b],p);if(f){let S=A.data;for(let D=0;D<b;D++){let[w,N]=y(r,D*2),[I,z]=y(r,D*2+1),[F,_]=y(t,D*2),[E,T]=y(t,D*2+1),[C,k]=g(w,N,E,T),[V,R]=g(I,z,F,_),[L,j]=h(C,k,V,R);S[D*2]=L,S[D*2+1]=j}}else{let S=A.data;for(let D=0;D<b;D++){let w=Number(r.iget(D*2)),N=Number(r.iget(D*2+1)),I=Number(t.iget(D*2)),z=Number(t.iget(D*2+1));S[D]=w*z-N*I}}return A}}throw new Error(`cross product not implemented for arrays with shapes ${JSON.stringify(a)} and ${JSON.stringify(u)}`)}function Ls(r,t,e=0){q(r.dtype,"bincount","bincount requires integer input.");let n=r.data,o=r.size,a=0;for(let s=0;s<o;s++){let i=Number(n[s]);if(i<0||!Number.isInteger(i))throw new Error("'x' argument must contain non-negative integers");i>a&&(a=i)}let u=Math.max(a+1,e);if(t!==void 0){if(t.size!==o)throw new Error("weights array must have same length as x");let s=t.data,i=new Float64Array(u);for(let c=0;c<o;c++){let l=Number(n[c]);i[l]+=Number(s[c])}return x.fromData(i,[u],"float64")}else{let s=new Float64Array(u);for(let i=0;i<o;i++){let c=Number(n[i]);s[c]++}return x.fromData(s,[u],"float64")}}function Zs(r,t,e=!1){q(r.dtype,"digitize","digitize requires real numbers."),q(t.dtype,"digitize","digitize requires real numbers.");let n=r.data,o=t.data,a=r.size,u=t.size,s=new Float64Array(a),i=!0;u>1&&(i=Number(o[1])>=Number(o[0]));for(let c=0;c<a;c++){let l=Number(n[c]),m;if(i)e?m=hy(o,u,l):m=at(o,u,l);else if(e)for(m=0;m<u&&Number(o[m])>=l;)m++;else for(m=0;m<u&&Number(o[m])>l;)m++;s[c]=m}return x.fromData(s,[...r.shape],"float64")}function hy(r,t,e){let n=0,o=t;for(;n<o;){let a=n+o>>>1;Number(r[a])<e?n=a+1:o=a}return n}function at(r,t,e){let n=0,o=t;for(;n<o;){let a=n+o>>>1;Number(r[a])<=e?n=a+1:o=a}return n}function Gs(r,t=10,e,n=!1,o){q(r.dtype,"histogram","histogram requires real numbers."),typeof t!="number"&&q(t.dtype,"histogram","histogram requires real numbers.");let a=r.data,u=r.size,s;if(typeof t=="number"){let m,d;if(e)[m,d]=e;else{m=1/0,d=-1/0;for(let f=0;f<u;f++){let y=Number(a[f]);y<m&&(m=y),y>d&&(d=y)}m===d&&(m=m-.5,d=d+.5)}s=[];let p=(d-m)/t;for(let f=0;f<=t;f++)s.push(m+f*p)}else{let m=t.data;s=[];for(let d=0;d<t.size;d++)s.push(Number(m[d]))}let i=s.length-1,c=new Float64Array(i),l=o?.data;for(let m=0;m<u;m++){let d=Number(a[m]),p=l?Number(l[m]):1,f=at(s,s.length,d)-1;if(!(f<0)){if(f>=i)if(d===s[i])f=i-1;else continue;c[f]+=p}}if(n){let m=0;for(let d=0;d<i;d++)m+=c[d];for(let d=0;d<i;d++){let p=s[d+1]-s[d];c[d]=c[d]/(m*p)}}return{hist:x.fromData(c,[i],"float64"),bin_edges:x.fromData(new Float64Array(s),[s.length],"float64")}}function Ws(r,t,e=10,n,o=!1,a){q(r.dtype,"histogram2d","histogram2d requires real numbers."),q(t.dtype,"histogram2d","histogram2d requires real numbers.");let u=r.data,s=t.data,i=r.size;if(t.size!==i)throw new Error("x and y must have the same length");let c,l,m,d;if(typeof e=="number"?(m=e,d=e):Array.isArray(e)&&e.length===2?(e[0],m=e[0],d=e[1]):(m=10,d=10),typeof m=="number"){let h,b;if(n)[h,b]=n[0];else{h=1/0,b=-1/0;for(let S=0;S<i;S++){let D=Number(u[S]);D<h&&(h=D),D>b&&(b=D)}h===b&&(h-=.5,b+=.5)}c=[];let A=(b-h)/m;for(let S=0;S<=m;S++)c.push(h+S*A)}else{let h=m.data;c=[];for(let b=0;b<m.size;b++)c.push(Number(h[b]))}if(typeof d=="number"){let h,b;if(n)[h,b]=n[1];else{h=1/0,b=-1/0;for(let S=0;S<i;S++){let D=Number(s[S]);D<h&&(h=D),D>b&&(b=D)}h===b&&(h-=.5,b+=.5)}l=[];let A=(b-h)/d;for(let S=0;S<=d;S++)l.push(h+S*A)}else{let h=d.data;l=[];for(let b=0;b<d.size;b++)l.push(Number(h[b]))}let p=c.length-1,f=l.length-1,y=new Float64Array(p*f),g=a?.data;for(let h=0;h<i;h++){let b=Number(u[h]),A=Number(s[h]),S=g?Number(g[h]):1,D=at(c,c.length,b)-1,w=at(l,l.length,A)-1;if(D<0||D>=p)if(b===c[p]&&D===p)D=p-1;else continue;if(w<0||w>=f)if(A===l[f]&&w===f)w=f-1;else continue;y[D*f+w]+=S}if(o){let h=0;for(let b=0;b<y.length;b++)h+=y[b];for(let b=0;b<p;b++)for(let A=0;A<f;A++){let S=c[b+1]-c[b],D=l[A+1]-l[A],w=S*D;y[b*f+A]=y[b*f+A]/(h*w)}}return{hist:x.fromData(y,[p,f],"float64"),x_edges:x.fromData(new Float64Array(c),[c.length],"float64"),y_edges:x.fromData(new Float64Array(l),[l.length],"float64")}}function Ys(r,t=10,e,n=!1,o){q(r.dtype,"histogramdd","histogramdd requires real numbers.");let a=r.shape,u=r.data,s,i;if(a.length===1)s=a[0],i=1;else if(a.length===2)s=a[0],i=a[1];else throw new Error("sample must be 1D or 2D array");let c;if(typeof t=="number")c=new Array(i).fill(t);else if(c=t,c.length!==i)throw new Error("bins array length must match number of dimensions");let l=[];for(let h=0;h<i;h++){let b,A;if(e&&e[h])[b,A]=e[h];else{b=1/0,A=-1/0;for(let N=0;N<s;N++){let I=Number(i===1?u[N]:u[N*i+h]);I<b&&(b=I),I>A&&(A=I)}b===A&&(b-=.5,A+=.5)}let S=c[h],D=[],w=(A-b)/S;for(let N=0;N<=S;N++)D.push(b+N*w);l.push(D)}let m=c.slice(),d=m.reduce((h,b)=>h*b,1),p=new Float64Array(d),f=new Array(i);f[i-1]=1;for(let h=i-2;h>=0;h--)f[h]=f[h+1]*c[h+1];let y=o?.data;for(let h=0;h<s;h++){let b=y?Number(y[h]):1,A=0,S=!1;for(let D=0;D<i;D++){let w=Number(i===1?u[h]:u[h*i+D]),N=l[D],I=c[D],z=at(N,N.length,w)-1;if(z<0||z>=I)if(w===N[I]&&z===I)z=I-1;else{S=!0;break}A+=z*f[D]}S||(p[A]+=b)}if(n){let h=0;for(let A=0;A<d;A++)h+=p[A];let b=new Float64Array(d);for(let A=0;A<d;A++){let S=1,D=A;for(let w=0;w<i;w++){let N=Math.floor(D/f[w])%c[w],I=l[w];S*=I[N+1]-I[N]}b[A]=S}for(let A=0;A<d;A++)p[A]=p[A]/(h*b[A])}let g=l.map(h=>x.fromData(new Float64Array(h),[h.length],"float64"));return{hist:x.fromData(p,m,"float64"),edges:g}}function Ve(r,t,e="full"){let n=r.data,o=t.data,a=r.size,u=t.size,s=M(r.dtype)||M(t.dtype),i=a+u-1;if(s){let l=new Float64Array(i),m=new Float64Array(i),d=M(r.dtype),p=M(t.dtype);for(let y=0;y<i;y++){let g=0,h=0,b=y-u+1;for(let A=0;A<a;A++){let S=A-b;if(S>=0&&S<u){let D,w,N,I;d?(D=n[A*2],w=n[A*2+1]):(D=Number(n[A]),w=0),p?(N=o[S*2],I=o[S*2+1]):(N=Number(o[S]),I=0),g+=D*N+w*I,h+=w*N-D*I}}l[y]=g,m[y]=h}let f=(y,g,h,b=0)=>{let A=new Float64Array(h*2);for(let S=0;S<h;S++)A[S*2]=y[b+S],A[S*2+1]=g[b+S];return x.fromData(A,[h],"complex128")};if(e==="full")return f(l,m,i);if(e==="same"){let y=Math.floor((i-a)/2);return f(l,m,a,y)}else{let y=Math.max(a,u)-Math.min(a,u)+1,g=Math.min(a,u)-1;return f(l,m,y,g)}}let c=new Float64Array(i);for(let l=0;l<i;l++){let m=0,d=l-u+1;for(let p=0;p<a;p++){let f=p-d;f>=0&&f<u&&(m+=Number(n[p])*Number(o[f]))}c[l]=m}if(e==="full")return x.fromData(c,[i],"float64");if(e==="same"){let l=Math.floor((i-a)/2),m=new Float64Array(a);for(let d=0;d<a;d++)m[d]=c[l+d];return x.fromData(m,[a],"float64")}else{let l=Math.max(a,u)-Math.min(a,u)+1,m=Math.min(a,u)-1,d=new Float64Array(l);for(let p=0;p<l;p++)d[p]=c[m+p];return x.fromData(d,[l],"float64")}}function Hs(r,t,e="full"){let n=t.data,o=t.size,a=M(t.dtype),u;if(a){let s=new Float64Array(o*2);for(let i=0;i<o;i++){let c=o-1-i;s[i*2]=n[c*2],s[i*2+1]=n[c*2+1]}u=x.fromData(s,[o],t.dtype)}else{let s=new Float64Array(o);for(let i=0;i<o;i++)s[i]=Number(n[o-1-i]);u=x.fromData(s,[o],"float64")}if(a){let s=u.data;for(let i=0;i<o;i++)s[i*2+1]=-s[i*2+1]}return Ve(r,u,e)}function je(r,t,e=!0,n=!1,o){let a=r.shape,u=r.data,s=M(r.dtype)||t!==void 0&&M(t.dtype),i;if(o!==void 0?i=o:i=n?0:1,a.length===1)if(t!==void 0){let f=t.data,y=r.size,g=M(r.dtype),h=M(t.dtype);if(t.size!==y)throw new Error("m and y must have same length");if(s){let I=0,z=0,F=0,_=0;for(let Z=0;Z<y;Z++)g?(I+=u[Z*2],z+=u[Z*2+1]):I+=Number(u[Z]),h?(F+=f[Z*2],_+=f[Z*2+1]):F+=Number(f[Z]);I/=y,z/=y,F/=y,_/=y;let E=0,T=0,C=0,k=0,V=0,R=0,L=0,j=0;for(let Z=0;Z<y;Z++){let rr,tr,er,cr;g?(rr=u[Z*2]-I,tr=u[Z*2+1]-z):(rr=Number(u[Z])-I,tr=0),h?(er=f[Z*2]-F,cr=f[Z*2+1]-_):(er=Number(f[Z])-F,cr=0),E+=rr*rr+tr*tr,C+=er*er+cr*cr,V+=rr*er+tr*cr,R+=tr*er-rr*cr,L+=er*rr+cr*tr,j+=cr*rr-er*tr}let H=y-i;if(H<=0){let Z=new Float64Array(8);return Z.fill(NaN),x.fromData(Z,[2,2],"complex128")}E/=H,C/=H,V/=H,R/=H,L/=H,j/=H;let Q=new Float64Array(8);return Q[0]=E,Q[1]=T,Q[2]=V,Q[3]=R,Q[4]=L,Q[5]=j,Q[6]=C,Q[7]=k,x.fromData(Q,[2,2],"complex128")}let b=0,A=0;for(let I=0;I<y;I++)b+=Number(u[I]),A+=Number(f[I]);b/=y,A/=y;let S=0,D=0,w=0;for(let I=0;I<y;I++){let z=Number(u[I])-b,F=Number(f[I])-A;S+=z*z,D+=F*F,w+=z*F}let N=y-i;return N<=0?x.fromData(new Float64Array([NaN,NaN,NaN,NaN]),[2,2],"float64"):(S/=N,D/=N,w/=N,x.fromData(new Float64Array([S,w,w,D]),[2,2],"float64"))}else{let f=r.size;if(s){let b=0,A=0;for(let w=0;w<f;w++)b+=u[w*2],A+=u[w*2+1];b/=f,A/=f;let S=0;for(let w=0;w<f;w++){let N=u[w*2]-b,I=u[w*2+1]-A;S+=N*N+I*I}let D=f-i;return D<=0?x.fromData(new Float64Array([NaN,0]),[],"complex128"):(S/=D,x.fromData(new Float64Array([S,0]),[],"complex128"))}let y=0;for(let b=0;b<f;b++)y+=Number(u[b]);y/=f;let g=0;for(let b=0;b<f;b++){let A=Number(u[b])-y;g+=A*A}let h=f-i;return h<=0?x.fromData(new Float64Array([NaN]),[],"float64"):(g/=h,x.fromData(new Float64Array([g]),[],"float64"))}let c,l;e?(c=a[0],l=a[1]):(c=a[1],l=a[0]);let m=l-i;if(s){let f=new Float64Array(c),y=new Float64Array(c);for(let h=0;h<c;h++){let b=0,A=0;for(let S=0;S<l;S++){let D=e?h*l+S:S*c+h;b+=u[D*2],A+=u[D*2+1]}f[h]=b/l,y[h]=A/l}let g=new Float64Array(c*c*2);if(m<=0)return g.fill(NaN),x.fromData(g,[c,c],"complex128");for(let h=0;h<c;h++)for(let b=0;b<c;b++){let A=0,S=0;for(let w=0;w<l;w++){let N=e?h*l+w:w*c+h,I=e?b*l+w:w*c+b,z=u[N*2]-f[h],F=u[N*2+1]-y[h],_=u[I*2]-f[b],E=u[I*2+1]-y[b];A+=z*_+F*E,S+=F*_-z*E}let D=(h*c+b)*2;g[D]=A/m,g[D+1]=S/m}return x.fromData(g,[c,c],"complex128")}let d=new Float64Array(c);for(let f=0;f<c;f++){let y=0;for(let g=0;g<l;g++){let h=e?f*l+g:g*c+f;y+=Number(u[h])}d[f]=y/l}let p=new Float64Array(c*c);if(m<=0)return p.fill(NaN),x.fromData(p,[c,c],"float64");for(let f=0;f<c;f++)for(let y=f;y<c;y++){let g=0;for(let b=0;b<l;b++){let A=e?f*l+b:b*c+f,S=e?y*l+b:b*c+y,D=Number(u[A])-d[f],w=Number(u[S])-d[y];g+=D*w}let h=g/m;p[f*c+y]=h,p[y*c+f]=h}return x.fromData(p,[c,c],"float64")}function Js(r,t,e=!0){let n=M(r.dtype)||t!==void 0&&M(t.dtype);if(r.shape.length===1&&t===void 0)return n?x.fromData(new Float64Array([1,0]),[],"complex128"):x.fromData(new Float64Array([1]),[],"float64");let o=je(r,t,e,!1),a=o.data,s=o.shape[0];if(n){let c=new Float64Array(s*s*2);for(let l=0;l<s;l++)for(let m=0;m<s;m++){let d=a[(l*s+m)*2],p=a[(l*s+m)*2+1],f=a[(l*s+l)*2],y=a[(m*s+m)*2],g=(l*s+m)*2;if(f<=0||y<=0)c[g]=NaN,c[g+1]=NaN;else{let h=Math.sqrt(f*y);c[g]=d/h,c[g+1]=p/h}}return x.fromData(c,[s,s],"complex128")}let i=new Float64Array(s*s);for(let c=0;c<s;c++)for(let l=0;l<s;l++){let m=Number(a[c*s+l]),d=Number(a[c*s+c]),p=Number(a[l*s+l]);d<=0||p<=0?i[c*s+l]=NaN:i[c*s+l]=m/Math.sqrt(d*p)}return x.fromData(i,[s,s],"float64")}var v=class r{constructor(t,e){this._storage=t,this._base=e}get storage(){return this._storage}static _fromStorage(t,e){return new r(t,e)}get shape(){return this._storage.shape}get ndim(){return this._storage.ndim}get size(){return this._storage.size}get dtype(){return this._storage.dtype}get data(){return this._storage.data}get strides(){return this._storage.strides}get flags(){return{C_CONTIGUOUS:this._storage.isCContiguous,F_CONTIGUOUS:this._storage.isFContiguous,OWNDATA:this._base===void 0}}get base(){return this._base??null}get T(){return this.transpose()}get itemsize(){return yt(this._storage.dtype)}get nbytes(){return this.size*this.itemsize}fill(t){let e=this._storage.dtype,n=this.size;if(B(e)){let o=typeof t=="bigint"?t:BigInt(Math.round(Number(t)));for(let a=0;a<n;a++)this._storage.iset(a,o)}else if(e==="bool"){let o=t?1:0;for(let a=0;a<n;a++)this._storage.iset(a,o)}else{let o=Number(t);for(let a=0;a<n;a++)this._storage.iset(a,o)}}*[Symbol.iterator](){if(this.ndim===0)yield this._storage.iget(0);else if(this.ndim===1)for(let t=0;t<this.shape[0];t++)yield this._storage.iget(t);else for(let t=0;t<this.shape[0];t++)yield this.slice(String(t))}get(t){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let e=t.map((n,o)=>{let a=n;if(a<0&&(a=this.shape[o]+a),a<0||a>=this.shape[o])throw new Error(`Index ${n} is out of bounds for axis ${o} with size ${this.shape[o]}`);return a});return this._storage.get(...e)}set(t,e){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let n=t.map((a,u)=>{let s=a;if(s<0&&(s=this.shape[u]+s),s<0||s>=this.shape[u])throw new Error(`Index ${a} is out of bounds for axis ${u} with size ${this.shape[u]}`);return s}),o=this.dtype;if(M(o))this._storage.set(n,e);else if(B(o)){let a=e instanceof O?e.re:Number(e),u=typeof e=="bigint"?e:BigInt(Math.round(a));this._storage.set(n,u)}else if(o==="bool"){let u=(e instanceof O?e.re:Number(e))?1:0;this._storage.set(n,u)}else{let a=e instanceof O?e.re:Number(e);this._storage.set(n,a)}}copy(){return new r(this._storage.copy())}astype(t,e=!0){let n=this.dtype;if(n===t&&!e)return this;if(n===t&&e)return this.copy();let o=Array.from(this.shape),a=this.size,u=P(t);if(!u)throw new Error(`Cannot convert to dtype ${t}`);let s=new u(a),i=this.data;if(B(n)&&!B(t)){let l=i;if(t==="bool")for(let m=0;m<a;m++)s[m]=l[m]!==BigInt(0)?1:0;else for(let m=0;m<a;m++)s[m]=Number(l[m])}else if(!B(n)&&B(t)){let l=i;for(let m=0;m<a;m++)s[m]=BigInt(Math.round(Number(l[m])))}else if(t==="bool"){let l=i;for(let m=0;m<a;m++)s[m]=l[m]!==0?1:0}else if(n==="bool"&&!B(t)){let l=i;for(let m=0;m<a;m++)s[m]=l[m]}else if(!B(n)&&!B(t)){let l=i;for(let m=0;m<a;m++)s[m]=l[m]}else{let l=i;for(let m=0;m<a;m++)s[m]=l[m]}let c=x.fromData(s,o,t);return new r(c)}add(t){let e=typeof t=="number"?t:t._storage,n=vn(this._storage,e);return r._fromStorage(n)}subtract(t){let e=typeof t=="number"?t:t._storage,n=En(this._storage,e);return r._fromStorage(n)}multiply(t){let e=typeof t=="number"?t:t._storage,n=Tn(this._storage,e);return r._fromStorage(n)}divide(t){let e=typeof t=="number"?t:t._storage,n=On(this._storage,e);return r._fromStorage(n)}mod(t){let e=typeof t=="number"?t:t._storage,n=dt(this._storage,e);return r._fromStorage(n)}floor_divide(t){let e=typeof t=="number"?t:t._storage,n=Yt(this._storage,e);return r._fromStorage(n)}positive(){let t=Rn(this._storage);return r._fromStorage(t)}reciprocal(){let t=kn(this._storage);return r._fromStorage(t)}sqrt(){let t=Ko(this._storage);return r._fromStorage(t)}power(t){let e=typeof t=="number"?t:t._storage,n=ra(this._storage,e);return r._fromStorage(n)}exp(){let t=ta(this._storage);return r._fromStorage(t)}exp2(){let t=ea(this._storage);return r._fromStorage(t)}expm1(){let t=na(this._storage);return r._fromStorage(t)}log(){let t=oa(this._storage);return r._fromStorage(t)}log2(){let t=aa(this._storage);return r._fromStorage(t)}log10(){let t=sa(this._storage);return r._fromStorage(t)}log1p(){let t=ia(this._storage);return r._fromStorage(t)}logaddexp(t){let e=typeof t=="number"?t:t._storage,n=ua(this._storage,e);return r._fromStorage(n)}logaddexp2(t){let e=typeof t=="number"?t:t._storage,n=ca(this._storage,e);return r._fromStorage(n)}absolute(){let t=Cn(this._storage);return r._fromStorage(t)}negative(){let t=Un(this._storage);return r._fromStorage(t)}sign(){let t=$n(this._storage);return r._fromStorage(t)}around(t=0){let e=Ee(this._storage,t);return r._fromStorage(e)}round(t=0){return this.around(t)}ceil(){let t=Te(this._storage);return r._fromStorage(t)}fix(){let t=Oe(this._storage);return r._fromStorage(t)}floor(){let t=Ce(this._storage);return r._fromStorage(t)}rint(){let t=Ue(this._storage);return r._fromStorage(t)}trunc(){let t=$e(this._storage);return r._fromStorage(t)}sin(){let t=la(this._storage);return r._fromStorage(t)}cos(){let t=fa(this._storage);return r._fromStorage(t)}tan(){let t=ma(this._storage);return r._fromStorage(t)}arcsin(){let t=ya(this._storage);return r._fromStorage(t)}arccos(){let t=pa(this._storage);return r._fromStorage(t)}arctan(){let t=da(this._storage);return r._fromStorage(t)}arctan2(t){let e=typeof t=="number"?t:t._storage,n=ga(this._storage,e);return r._fromStorage(n)}hypot(t){let e=typeof t=="number"?t:t._storage,n=Aa(this._storage,e);return r._fromStorage(n)}degrees(){let t=ba(this._storage);return r._fromStorage(t)}radians(){let t=ha(this._storage);return r._fromStorage(t)}sinh(){let t=Sa(this._storage);return r._fromStorage(t)}cosh(){let t=Da(this._storage);return r._fromStorage(t)}tanh(){let t=xa(this._storage);return r._fromStorage(t)}arcsinh(){let t=Na(this._storage);return r._fromStorage(t)}arccosh(){let t=wa(this._storage);return r._fromStorage(t)}arctanh(){let t=Ia(this._storage);return r._fromStorage(t)}greater(t){let e=typeof t=="number"?t:t._storage,n=ro(this._storage,e);return r._fromStorage(n)}greater_equal(t){let e=typeof t=="number"?t:t._storage,n=to(this._storage,e);return r._fromStorage(n)}less(t){let e=typeof t=="number"?t:t._storage,n=eo(this._storage,e);return r._fromStorage(n)}less_equal(t){let e=typeof t=="number"?t:t._storage,n=no(this._storage,e);return r._fromStorage(n)}equal(t){let e=typeof t=="number"?t:t._storage,n=oo(this._storage,e);return r._fromStorage(n)}not_equal(t){let e=typeof t=="number"?t:t._storage,n=ao(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 so(this._storage,o,e,n)}bitwise_and(t){let e=typeof t=="number"?t:t._storage,n=Wa(this._storage,e);return r._fromStorage(n)}bitwise_or(t){let e=typeof t=="number"?t:t._storage,n=Ya(this._storage,e);return r._fromStorage(n)}bitwise_xor(t){let e=typeof t=="number"?t:t._storage,n=Ha(this._storage,e);return r._fromStorage(n)}bitwise_not(){let t=we(this._storage);return r._fromStorage(t)}invert(){let t=Ja(this._storage);return r._fromStorage(t)}left_shift(t){let e=typeof t=="number"?t:t._storage,n=Xa(this._storage,e);return r._fromStorage(n)}right_shift(t){let e=typeof t=="number"?t:t._storage,n=Qa(this._storage,e);return r._fromStorage(n)}logical_and(t){let e=typeof t=="number"?t:t._storage,n=es(this._storage,e);return r._fromStorage(n)}logical_or(t){let e=typeof t=="number"?t:t._storage,n=ns(this._storage,e);return r._fromStorage(n)}logical_not(){let t=os(this._storage);return r._fromStorage(t)}logical_xor(t){let e=typeof t=="number"?t:t._storage,n=as(this._storage,e);return r._fromStorage(n)}isfinite(){let t=ss(this._storage);return r._fromStorage(t)}isinf(){let t=is(this._storage);return r._fromStorage(t)}isnan(){let t=us(this._storage);return r._fromStorage(t)}isnat(){let t=cs(this._storage);return r._fromStorage(t)}copysign(t){let e=typeof t=="number"?t:t._storage,n=ls(this._storage,e);return r._fromStorage(n)}signbit(){let t=fs(this._storage);return r._fromStorage(t)}nextafter(t){let e=typeof t=="number"?t:t._storage,n=ms(this._storage,e);return r._fromStorage(n)}spacing(){let t=ys(this._storage);return r._fromStorage(t)}sum(t,e=!1){let n=Gr(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}mean(t,e=!1){let n=gt(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}max(t,e=!1){let n=Cr(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}min(t,e=!1){let n=Ur(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}prod(t,e=!1){let n=Jt(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}argmin(t){let e=Xt(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}argmax(t){let e=Qt(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}var(t,e=0,n=!1){let o=Kt(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}std(t,e=0,n=!1){let o=uo(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}all(t,e=!1){let n=re(this._storage,t,e);return typeof n=="boolean"?n:r._fromStorage(n)}any(t,e=!1){let n=te(this._storage,t,e);return typeof n=="boolean"?n:r._fromStorage(n)}cumsum(t){return r._fromStorage(ee(this._storage,t))}cumprod(t){return r._fromStorage(ne(this._storage,t))}ptp(t,e=!1){let n=oe(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}median(t,e=!1){let n=ae(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}percentile(t,e,n=!1){let o=se(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}quantile(t,e,n=!1){let o=Rr(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}average(t,e){let n=Wr(this._storage,e,t?.storage);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}nansum(t,e=!1){let n=At(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}nanprod(t,e=!1){let n=bt(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}nanmean(t,e=!1){let n=ht(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}nanvar(t,e=0,n=!1){let o=$r(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}nanstd(t,e=0,n=!1){let o=ie(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}nanmin(t,e=!1){let n=Yr(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}nanmax(t,e=!1){let n=Hr(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}nanargmin(t){let e=Jr(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}nanargmax(t){let e=Xr(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}nancumsum(t){return r._fromStorage(ue(this._storage,t))}nancumprod(t){return r._fromStorage(ce(this._storage,t))}nanmedian(t,e=!1){let n=St(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}sort(t=-1){return r._fromStorage(Ie(this._storage,t))}argsort(t=-1){return r._fromStorage(ze(this._storage,t))}partition(t,e=-1){return r._fromStorage(_e(this._storage,t,e))}argpartition(t,e=-1){return r._fromStorage(Fe(this._storage,t,e))}nonzero(){return zt(this._storage).map(e=>r._fromStorage(e))}argwhere(){return r._fromStorage(Me(this._storage))}searchsorted(t,e="left"){return r._fromStorage(Be(this._storage,t._storage,e))}diff(t=1,e=-1){return r._fromStorage(qe(this._storage,t,e))}reshape(...t){let e=t.length===1&&Array.isArray(t[0])?t[0]:t,n=nr(this._storage,e),a=n.data===this.data?this._base??this:void 0;return r._fromStorage(n,a)}flatten(){let t=Dt(this._storage);return r._fromStorage(t)}ravel(){let t=kr(this._storage),n=t.data===this.data?this._base??this:void 0;return r._fromStorage(t,n)}transpose(t){let e=Kr(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}squeeze(t){let e=co(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}expand_dims(t){let e=Qr(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}swapaxes(t,e){let n=lo(this._storage,t,e),o=this._base??this;return r._fromStorage(n,o)}moveaxis(t,e){let n=le(this._storage,t,e),o=this._base??this;return r._fromStorage(n,o)}repeat(t,e){let n=So(this._storage,t,e);return r._fromStorage(n)}take(t,e){let n=_a(this._storage,t,e);return r._fromStorage(n)}put(t,e){let n=e instanceof r?e._storage:e;Fa(this._storage,t,n)}iindex(t,e=0){let n;if(t instanceof r){n=[];for(let o=0;o<t.size;o++){let a=t.storage.iget(o),u=typeof a=="bigint"?Number(a):a instanceof O?a.re:a;n.push(u)}}else Array.isArray(t)&&t.length>0&&Array.isArray(t[0])?n=t.flat():n=t;return this.take(n,e)}bindex(t,e){return r._fromStorage(Se(t._storage,this._storage,e))}matmul(t){let e=pr(this._storage,t._storage);return r._fromStorage(e)}dot(t){let e=ye(this._storage,t._storage);return typeof e=="number"||typeof e=="bigint"||e instanceof O?e:r._fromStorage(e)}trace(){return Oo(this._storage)}inner(t){let e=Co(this._storage,t._storage);return typeof e=="number"||typeof e=="bigint"||e instanceof O?e:r._fromStorage(e)}outer(t){let e=pe(this._storage,t._storage);return r._fromStorage(e)}tensordot(t,e=2){let n=Uo(this._storage,t._storage,e);return typeof n=="number"||typeof n=="bigint"||n instanceof O?n:r._fromStorage(n)}cbrt(){let t=qn(this._storage);return r._fromStorage(t)}fabs(){let t=Vn(this._storage);return r._fromStorage(t)}divmod(t){let e=typeof t=="number"?t:t._storage,[n,o]=jn(this._storage,e);return[r._fromStorage(n),r._fromStorage(o)]}square(){let t=Pn(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=Zn(this._storage,e);return r._fromStorage(n)}slice(...t){if(t.length===0)return this;if(t.length>this.ndim)throw new Error(`Too many indices for array: array is ${this.ndim}-dimensional, but ${t.length} were indexed`);let e=t.map((i,c)=>{let l=zn(i);return _n(l,this.shape[c])});for(;e.length<this.ndim;)e.push({start:0,stop:this.shape[e.length],step:1,isIndex:!1});let n=[],o=[],a=this._storage.offset;for(let i=0;i<e.length;i++){let c=e[i],l=this._storage.strides[i];if(a+=c.start*l,!c.isIndex){let m;c.step>0?m=Math.max(0,Math.ceil((c.stop-c.start)/c.step)):m=Math.max(0,Math.ceil((c.start-c.stop)/Math.abs(c.step))),n.push(m),o.push(l*c.step)}}let u=x.fromData(this._storage.data,n,this._storage.dtype,o,a),s=this._base??this;return new r(u,s)}row(t){if(this.ndim<2)throw new Error("row() requires at least 2 dimensions");return this.slice(String(t),":")}col(t){if(this.ndim<2)throw new Error("col() requires at least 2 dimensions");return this.slice(":",String(t))}rows(t,e){if(this.ndim<2)throw new Error("rows() requires at least 2 dimensions");return this.slice(`${t}:${e}`,":")}cols(t,e){if(this.ndim<2)throw new Error("cols() requires at least 2 dimensions");return this.slice(":",`${t}:${e}`)}toString(){return`NDArray(shape=${JSON.stringify(this.shape)}, dtype=${this.dtype})`}toArray(){if(this.ndim===0)return this._storage.iget(0);let t=this.shape,e=t.length,n=(o,a)=>{if(a===e)return this._storage.get(...o);let u=[];for(let s=0;s<t[a];s++)o[a]=s,u.push(n(o,a+1));return u};return n(new Array(e),0)}};function Dr(r,t=X){let e=x.zeros(r,t);return new v(e)}function Pe(r,t=X){let e=x.ones(r,t);return new v(e)}function Dy(r){let t=[],e=r;for(;Array.isArray(e);)t.push(e.length),e=e[0];return t}function Xs(r){return typeof r=="bigint"?!0:Array.isArray(r)?r.some(t=>Xs(t)):!1}function Qs(r){return Bn(r)?!0:Array.isArray(r)?r.some(t=>Qs(t)):!1}function xy(r){let t=[];function e(n){Array.isArray(n)?n.forEach(o=>e(o)):t.push(n)}return e(r),t}function or(r,t){if(r instanceof v)return!t||r.dtype===t?r.copy():r.astype(t);let e=Xs(r),n=Qs(r),o=Dy(r),a=o.reduce((p,f)=>p*f,1),u=t;u||(n?u="complex128":e?u="int64":u=X);let s=M(u),i=P(u);if(!i)throw new Error(`Cannot create array with dtype ${u}`);let c=s?a*2:a,l=new i(c),m=xy(r);if(B(u)){let p=l;for(let f=0;f<a;f++){let y=m[f];p[f]=typeof y=="bigint"?y:BigInt(Math.round(Number(y)))}}else if(u==="bool"){let p=l;for(let f=0;f<a;f++)p[f]=m[f]?1:0}else if(s){let p=l;for(let f=0;f<a;f++){let y=m[f],g,h;y instanceof O?(g=y.re,h=y.im):typeof y=="object"&&y!==null&&"re"in y?(g=y.re,h=y.im??0):(g=Number(y),h=0),p[f*2]=g,p[f*2+1]=h}}else{let p=l;for(let f=0;f<a;f++){let y=m[f];p[f]=Number(y)}}let d=x.fromData(l,o,u);return new v(d)}function Ks(r,t,e=1,n=X){let o=r,a=t;if(t===void 0&&(o=0,a=r),a===void 0)throw new Error("stop is required");let u=Math.max(0,Math.ceil((a-o)/e)),s=P(n);if(!s)throw new Error(`Cannot create arange array with dtype ${n}`);let i=new s(u);if(B(n))for(let l=0;l<u;l++)i[l]=BigInt(Math.round(o+l*e));else if(n==="bool")for(let l=0;l<u;l++)i[l]=o+l*e!==0?1:0;else for(let l=0;l<u;l++)i[l]=o+l*e;let c=x.fromData(i,[u],n);return new v(c)}function ri(r,t,e=50,n=X){if(e<0)throw new Error("num must be non-negative");if(e===0)return or([],n);if(e===1)return or([r],n);let o=P(n);if(!o)throw new Error(`Cannot create linspace array with dtype ${n}`);let a=new o(e),u=(t-r)/(e-1);if(B(n))for(let i=0;i<e;i++)a[i]=BigInt(Math.round(r+i*u));else if(n==="bool")for(let i=0;i<e;i++)a[i]=r+i*u!==0?1:0;else for(let i=0;i<e;i++)a[i]=r+i*u;let s=x.fromData(a,[e],n);return new v(s)}function ti(r,t,e=50,n=10,o=X){if(e<0)throw new Error("num must be non-negative");if(e===0)return or([],o);if(e===1)return or([Math.pow(n,r)],o);let a=P(o);if(!a)throw new Error(`Cannot create logspace array with dtype ${o}`);let u=new a(e),s=(t-r)/(e-1);if(B(o))for(let c=0;c<e;c++){let l=r+c*s;u[c]=BigInt(Math.round(Math.pow(n,l)))}else if(o==="bool")for(let c=0;c<e;c++){let l=r+c*s;u[c]=Math.pow(n,l)!==0?1:0}else for(let c=0;c<e;c++){let l=r+c*s;u[c]=Math.pow(n,l)}let i=x.fromData(u,[e],o);return new v(i)}function ei(r,t,e=50,n=X){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 or([],n);if(e===1)return or([r],n);let o=Math.sign(r),a=Math.sign(t);if(o!==a)throw new Error("Geometric sequence cannot contain both positive and negative values");let u=P(n);if(!u)throw new Error(`Cannot create geomspace array with dtype ${n}`);let s=new u(e),i=Math.log(Math.abs(r)),l=(Math.log(Math.abs(t))-i)/(e-1);if(B(n))for(let d=0;d<e;d++){let p=o*Math.exp(i+d*l);s[d]=BigInt(Math.round(p))}else if(n==="bool")for(let d=0;d<e;d++){let p=o*Math.exp(i+d*l);s[d]=p!==0?1:0}else for(let d=0;d<e;d++){let p=o*Math.exp(i+d*l);s[d]=p}let m=x.fromData(s,[e],n);return new v(m)}function Le(r,t,e=0,n=X){let o=t??r,a=Dr([r,o],n),u=a.data;if(B(n)){let s=u;for(let i=0;i<r;i++){let c=i+e;c>=0&&c<o&&(s[i*o+c]=BigInt(1))}}else{let s=u;for(let i=0;i<r;i++){let c=i+e;c>=0&&c<o&&(s[i*o+c]=1)}}return a}function Ze(r,t=X){return Dr(r,t)}function Ge(r,t,e){let n=e;n||(typeof t=="bigint"?n="int64":typeof t=="boolean"?n="bool":Number.isInteger(t)?n="int32":n=X);let o=P(n);if(!o)throw new Error(`Cannot create full array with dtype ${n}`);let a=r.reduce((i,c)=>i*c,1),u=new o(a);if(B(n)){let i=typeof t=="bigint"?t:BigInt(Math.round(Number(t)));u.fill(i)}else n==="bool"?u.fill(t?1:0):u.fill(Number(t));let s=x.fromData(u,r,n);return new v(s)}function ni(r,t=X){return Le(r,r,0,t)}function st(r,t){return r instanceof v?!t||r.dtype===t?r:r.astype(t):or(r,t)}function oi(r){return r.copy()}function ai(r,t){return Dr(Array.from(r.shape),t??r.dtype)}function si(r,t){return Pe(Array.from(r.shape),t??r.dtype)}function ii(r,t){return Ze(Array.from(r.shape),t??r.dtype)}function ui(r,t,e){return Ge(Array.from(r.shape),t,e??r.dtype)}function ci(r,t){return st(r,t)}function li(r,t){let e=st(r,t);return e.flags.C_CONTIGUOUS?e:e.copy()}function fi(r,t){return st(r,t).copy()}function We(r,t=0){if(r.ndim===1){let e=r.size,n=e+Math.abs(t),o=Dr([n,n],r.dtype);for(let a=0;a<e;a++){let u=t>=0?a:a-t,s=t>=0?a+t:a;o.set([u,s],r.get([a]))}return o}else if(r.ndim===2){let[e,n]=r.shape,o,a,u;if(t>=0?(o=0,a=t,u=Math.min(e,n-t)):(o=-t,a=0,u=Math.min(e+t,n)),u<=0)return Dr([0],r.dtype);let s=P(r.dtype),i=new s(u);for(let l=0;l<u;l++){let m=r.get([o+l,a+l]);B(r.dtype)?i[l]=typeof m=="bigint"?m:BigInt(m):i[l]=m}let c=x.fromData(i,[u],r.dtype);return new v(c)}else throw new Error("Input must be 1-D or 2-D")}function mi(r,t=0){let e=r.flatten();return We(e,t)}function yi(r,t,e=X){let n=t.reduce((c,l)=>c*l,1),o=P(e);if(!o)throw new Error(`Cannot create array with dtype ${e}`);let a=new o(n),u=t.length,s=new Array(u).fill(0);for(let c=0;c<n;c++){let l=r(...s);B(e)?a[c]=typeof l=="bigint"?l:BigInt(Number(l)):e==="bool"?a[c]=l?1:0:a[c]=Number(l);for(let m=u-1;m>=0&&(s[m]++,!(s[m]<t[m]));m--)s[m]=0}let i=x.fromData(a,t,e);return new v(i)}function pi(...r){let t=[],e="xy";for(let s of r)s instanceof v?t.push(s):typeof s=="object"&&"indexing"in s&&(e=s.indexing||"xy");if(t.length===0)return[];if(t.length===1)return[t[0].copy()];let n=t.map(s=>s.size);e==="xy"&&t.length>=2&&(t=[t[1],t[0],...t.slice(2)],[n[0],n[1]]=[n[1],n[0]]);let o=n,a=o.length,u=[];for(let s=0;s<t.length;s++){let i=t[s],c=i.size,l=new Array(a).fill(1);l[s]=c;let m=i.reshape(...l),d=Nt(m.storage,o),p=v._fromStorage(d.copy());u.push(p)}return e==="xy"&&u.length>=2&&([u[0],u[1]]=[u[1],u[0]]),u}function di(r,t,e=0,n=X){let o=t??r,a=Dr([r,o],n);for(let u=0;u<r;u++)for(let s=0;s<=u+e&&s<o;s++)s>=0&&a.set([u,s],1);return a}function gi(r,t=0){if(r.ndim<2)throw new Error("Input must have at least 2 dimensions");let e=r.copy(),n=e.shape,o=n[n.length-2],a=n[n.length-1],u=n.slice(0,-2).reduce((s,i)=>s*i,1);for(let s=0;s<u;s++)for(let i=0;i<o;i++)for(let c=0;c<a;c++)if(c>i+t){let l=[],m=s;for(let d=n.length-3;d>=0;d--)l.unshift(m%n[d]),m=Math.floor(m/n[d]);l.push(i,c),e.set(l,0)}return e}function Ai(r,t=0){if(r.ndim<2)throw new Error("Input must have at least 2 dimensions");let e=r.copy(),n=e.shape,o=n[n.length-2],a=n[n.length-1],u=n.slice(0,-2).reduce((s,i)=>s*i,1);for(let s=0;s<u;s++)for(let i=0;i<o;i++)for(let c=0;c<a;c++)if(c<i+t){let l=[],m=s;for(let d=n.length-3;d>=0;d--)l.unshift(m%n[d]),m=Math.floor(m/n[d]);l.push(i,c),e.set(l,0)}return e}function bi(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=Dr([n,o],r.dtype);for(let u=0;u<n;u++){let s=r.get([u]);for(let i=0;i<o;i++){let c=e?i:o-1-i;a.set([u,i],Math.pow(s,c))}}return a}function hi(r,t=X,e=-1,n=0){let o,a=n;r instanceof ArrayBuffer?o=r:(o=r.buffer,a+=r.byteOffset);let u=Ny(t),s=o.byteLength-a,i=Math.floor(s/u),c=e<0?i:Math.min(e,i);if(c<=0)return or([],t);let l=P(t);if(!l)throw new Error(`Unsupported dtype: ${t}`);let m=new l(o,a,c),d=x.fromData(m,[c],t);return new v(d)}function Si(r,t=X,e=-1){let n=[],o=0;for(let a of r){if(e>=0&&o>=e)break;n.push(a),o++}return or(n,t)}function Di(r,t=X,e=-1){let n=[],o=0;for(let a of r){if(e>=0&&o>=e)break;n.push(a),o++}return or(n,t)}function xi(r,t=X,e=-1,n=""){let o;n===""?o=r.trim().split(/\s+/):o=r.split(n);let a=[],u=0;for(let s of o){if(e>=0&&u>=e)break;let i=s.trim();i!==""&&(B(t)?a.push(BigInt(i)):a.push(parseFloat(i)),u++)}return or(a,t)}function Ny(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 Ni(r){return r.sqrt()}function Ye(r,t){return r.power(t)}function wi(r){return r.exp()}function Ii(r){return r.exp2()}function zi(r){return r.expm1()}function _i(r){return r.log()}function Fi(r){return r.log2()}function Mi(r){return r.log10()}function Bi(r){return r.log1p()}function vi(r,t){return r.logaddexp(t)}function Ei(r,t){return r.logaddexp2(t)}function He(r){return r.absolute()}function Ti(r){return r.negative()}function Oi(r){return r.sign()}function Ci(r,t){return r.mod(t)}function Je(r,t){return r.divide(t)}function Ui(r,t){return r.floor_divide(t)}function $i(r){return r.positive()}function Ri(r){return r.reciprocal()}function ki(r,t){return r.dot(t)}function qi(r){return r.trace()}function Vi(r,t=0,e=0,n=1){let o=$o(r.storage,t,e,n);return v._fromStorage(o)}function ji(r,t){let e=ko(r.storage,t.storage);return v._fromStorage(e)}function Pi(r,t){return r.transpose(t)}function Li(r,t){return r.inner(t)}function Zi(r,t){return r.outer(t)}function Gi(r,t,e=2){return r.tensordot(t,e)}function Wi(r){return r.sin()}function Yi(r){return r.cos()}function Hi(r){return r.tan()}function Xe(r){return r.arcsin()}function Qe(r){return r.arccos()}function Ke(r){return r.arctan()}function rn(r,t){return r.arctan2(t)}function Ji(r,t){return r.hypot(t)}function Xi(r){return r.degrees()}function Qi(r){return r.radians()}function Ki(r){return r.radians()}function ru(r){return r.degrees()}function tu(r){return r.sinh()}function eu(r){return r.cosh()}function nu(r){return r.tanh()}function tn(r){return r.arcsinh()}function en(r){return r.arccosh()}function nn(r){return r.arctanh()}function ou(r,t,e){return r.swapaxes(t,e)}function au(r,t,e){return r.moveaxis(t,e)}function vr(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=Mr(e,t);return v._fromStorage(n)}function su(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=fo(e,t);return v._fromStorage(n)}function on(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=mo(t);return v._fromStorage(e)}function iu(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=fe(t);return v._fromStorage(e)}function uu(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=yo(t);return v._fromStorage(e)}function cu(r,t,e=0){return po(r.storage,t,e).map(o=>v._fromStorage(o,r.base??r))}function lu(r,t,e=0){return rt(r.storage,t,e).map(o=>v._fromStorage(o,r.base??r))}function fu(r,t){return Ao(r.storage,t).map(n=>v._fromStorage(n,r.base??r))}function mu(r,t){return bo(r.storage,t).map(n=>v._fromStorage(n,r.base??r))}function yu(r,t){let e=ho(r.storage,t);return v._fromStorage(e)}function pu(r,t,e){return r.repeat(t,e)}function du(r){return r.ravel()}function gu(r,t){return r.reshape(...t)}function Au(r,t){return r.squeeze(t)}function bu(r,t){return r.expand_dims(t)}function _t(r,t){let e=Do(r.storage,t);return v._fromStorage(e)}function hu(r){if(r.ndim<2)throw new Error("Input must be at least 2-D");return _t(r,1)}function Su(r){if(r.ndim<2)throw new Error("Input must be at least 2-D");return _t(r,0)}function Du(r,t=1,e=[0,1]){let n=xo(r.storage,t,e);return v._fromStorage(n)}function xu(r,t,e){let n=No(r.storage,t,e);return v._fromStorage(n)}function Nu(r,t,e=0){let n=wo(r.storage,t,e);return v._fromStorage(n,r.base??r)}function wu(...r){let t=r.map(o=>o.storage),n=Fo(t).map((o,a)=>o===t[a]?r[a]:v._fromStorage(o));return n.length===1?n[0]:n}function Iu(...r){let t=r.map(o=>o.storage),n=Mo(t).map((o,a)=>o===t[a]?r[a]:v._fromStorage(o));return n.length===1?n[0]:n}function zu(...r){let t=r.map(o=>o.storage),n=Bo(t).map((o,a)=>o===t[a]?r[a]:v._fromStorage(o));return n.length===1?n[0]:n}function _u(r,t){return Io(r.storage,t).map(n=>v._fromStorage(n,r.base??r))}function Fu(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=zo(t);return v._fromStorage(e)}function Mu(r){return on(r)}function Bu(r,t){let e=_o(r.storage,t);return v._fromStorage(e)}function vu(r,t,e){let n=t instanceof v?t:or(t,r.dtype);if(e===void 0){let o=r.flatten(),a=n.flatten();return vr([o,a])}return vr([r,n],e)}function Eu(r,t,e){let n=r.dtype;if(e===void 0){let p=r.flatten(),y=(Array.isArray(t)?t:[t]).map(S=>S<0?p.size+S:S),g=[];for(let S=0;S<p.size;S++)y.includes(S)||g.push(S);let h=P(n),b=new h(g.length);for(let S=0;S<g.length;S++){let D=p.get([g[S]]);B(n)?b[S]=typeof D=="bigint"?D:BigInt(D):b[S]=D}let A=x.fromData(b,[g.length],n);return new v(A)}let o=r.shape,a=o.length,u=e<0?a+e:e;if(u<0||u>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);let s=o[u],i=Array.isArray(t)?t:[t],c=new Set(i.map(p=>p<0?s+p:p)),l=[],m=0;for(let p=0;p<=s;p++)(c.has(p)||p===s)&&(p>m&&l.push([m,p]),m=p+1);if(l.length===0){let p=[...o];return p[u]=0,Dr(p,n)}let d=[];for(let[p,f]of l){let y=o.map(()=>":");y[u]=`${p}:${f}`,d.push(r.slice(...y))}return vr(d,u)}function Tu(r,t,e,n){let o=e instanceof v?e:or(e,r.dtype);if(n===void 0){let m=r.flatten(),d=o.flatten(),p=t<0?m.size+t:t;if(p<0||p>m.size)throw new Error(`index ${t} is out of bounds for array of size ${m.size}`);let f=p>0?m.slice(`0:${p}`):null,y=p<m.size?m.slice(`${p}:`):null,g=[];return f&&g.push(f),g.push(d),y&&g.push(y),vr(g)}let a=r.shape,u=a.length,s=n<0?u+n:n;if(s<0||s>=u)throw new Error(`axis ${n} is out of bounds for array of dimension ${u}`);let i=a[s],c=t<0?i+t:t;if(c<0||c>i)throw new Error(`index ${t} is out of bounds for axis ${n} with size ${i}`);let l=[];if(c>0){let m=a.map(()=>":");m[s]=`0:${c}`,l.push(r.slice(...m))}if(l.push(o),c<i){let m=a.map(()=>":");m[s]=`${c}:`,l.push(r.slice(...m))}return vr(l,s)}function Ou(r,t,e="constant",n=0){let o=r.shape,a=o.length,u=r.dtype,s;if(typeof t=="number"?s=o.map(()=>[t,t]):Array.isArray(t)&&typeof t[0]=="number"?s=o.map(()=>t):s=t,s.length!==a)throw new Error(`pad_width must have ${a} elements`);let i=o.map((y,g)=>y+s[g][0]+s[g][1]),c=i.reduce((y,g)=>y*g,1),l=P(u),m=new l(c),d=B(u);e==="constant"&&(d?m.fill(BigInt(n)):m.fill(n));let p=new Array(a).fill(0);for(let y=0;y<c;y++){let g=!0,h=[];for(let A=0;A<a;A++){let[S]=s[A],D=p[A]-S;if(D<0||D>=o[A]){g=!1;break}h.push(D)}let b;if(g)b=r.get(h);else if(e==="constant"){for(let A=a-1;A>=0&&(p[A]++,!(p[A]<i[A]));A--)p[A]=0;continue}else{let A=[];for(let S=0;S<a;S++){let[D]=s[S],w=p[S]-D,N=o[S];w<0?e==="edge"?w=0:e==="reflect"?(w=-w,w>=N&&(w=N-1)):e==="symmetric"?(w=-w-1,w>=N&&(w=N-1),w<0&&(w=0)):e==="wrap"&&(w=(w%N+N)%N):w>=N&&(e==="edge"?w=N-1:e==="reflect"?(w=2*N-w-2,w<0&&(w=0)):e==="symmetric"?(w=2*N-w-1,w<0&&(w=0)):e==="wrap"&&(w=w%N)),A.push(Math.max(0,Math.min(N-1,w)))}b=r.get(A)}d?m[y]=typeof b=="bigint"?b:BigInt(Number(b)):m[y]=Number(b);for(let A=a-1;A>=0&&(p[A]++,!(p[A]<i[A]));A--)p[A]=0}let f=x.fromData(m,i,u);return new v(f)}function Cu(r,t){let e=Nt(r.storage,t);return v._fromStorage(e,r.base??r)}function Uu(...r){let t=r.map(n=>n.storage);return za(t).map((n,o)=>v._fromStorage(n,r[o].base??r[o]))}function $u(...r){return Gt(...r)}function Ru(r,t,e){return r.take(t,e)}function ku(r,t,e){r.put(t,e)}function qu(r,t,e=0){return r.iindex(t,e)}function Vu(r,t,e){return r.bindex(t,e)}function ju(r,t,e){if(e!==void 0)throw new Error("copyto with where parameter is not yet implemented");let n=r.storage,o=r.shape,a=r.size,u=r.dtype;if(typeof t=="number"||typeof t=="bigint"){r.fill(t);return}let s=t.storage,i=t.shape,c=yr([i,o]);if(!c)throw new Error(`could not broadcast input array from shape (${i.join(",")}) into shape (${o.join(",")})`);if(c.length!==o.length||!c.every((m,d)=>m===o[d]))throw new Error(`could not broadcast input array from shape (${i.join(",")}) into shape (${o.join(",")})`);let l=Nt(s,o);if(B(u))for(let m=0;m<a;m++){let d=l.iget(m),p=typeof d=="bigint"?d:BigInt(Math.round(Number(d)));n.iset(m,p)}else if(u==="bool")for(let m=0;m<a;m++){let d=l.iget(m);n.iset(m,d?1:0)}else for(let m=0;m<a;m++){let d=l.iget(m);n.iset(m,Number(d))}}function Pu(r,t){let e=t.map(o=>o.storage),n=Ma(r.storage,e);return v._fromStorage(n)}function Lu(r,t,e=!1){return Ba(r.storage,t.storage,e)}function Zu(r,t){return io(r.storage,t.storage)}function an(r,t){return v._fromStorage(ee(r.storage,t))}function sn(r,t){return v._fromStorage(ne(r.storage,t))}function un(r,t,e=!1){return r.max(t,e)}function cn(r,t,e=!1){return r.min(t,e)}function Gu(r,t,e=!1){let n=oe(r.storage,t,e);return typeof n=="number"||n instanceof O?n:v._fromStorage(n)}function Wu(r,t,e=!1){let n=ae(r.storage,t,e);return typeof n=="number"?n:v._fromStorage(n)}function Yu(r,t,e,n=!1){let o=se(r.storage,t,e,n);return typeof o=="number"?o:v._fromStorage(o)}function Hu(r,t,e,n=!1){let o=Rr(r.storage,t,e,n);return typeof o=="number"?o:v._fromStorage(o)}function Ju(r,t,e,n=!1){let o=e?e.storage:void 0,a=Wr(r.storage,t,o,n);return typeof a=="number"||a instanceof O?a:v._fromStorage(a)}function Xu(r,t,e=!1){let n=At(r.storage,t,e);return typeof n=="number"||n instanceof O?n:v._fromStorage(n)}function Qu(r,t,e=!1){let n=bt(r.storage,t,e);return typeof n=="number"||n instanceof O?n:v._fromStorage(n)}function Ku(r,t,e=!1){let n=ht(r.storage,t,e);return typeof n=="number"||n instanceof O?n:v._fromStorage(n)}function rc(r,t,e=0,n=!1){let o=$r(r.storage,t,e,n);return typeof o=="number"?o:v._fromStorage(o)}function tc(r,t,e=0,n=!1){let o=ie(r.storage,t,e,n);return typeof o=="number"?o:v._fromStorage(o)}function ec(r,t,e=!1){let n=Yr(r.storage,t,e);return typeof n=="number"||n instanceof O?n:v._fromStorage(n)}function nc(r,t,e=!1){let n=Hr(r.storage,t,e);return typeof n=="number"||n instanceof O?n:v._fromStorage(n)}function oc(r,t){let e=Jr(r.storage,t);return typeof e=="number"?e:v._fromStorage(e)}function ac(r,t){let e=Xr(r.storage,t);return typeof e=="number"?e:v._fromStorage(e)}function sc(r,t){return v._fromStorage(ue(r.storage,t))}function ic(r,t){return v._fromStorage(ce(r.storage,t))}function uc(r,t,e=!1){let n=St(r.storage,t,e);return typeof n=="number"?n:v._fromStorage(n)}function cc(r){return r.cbrt()}function lc(r){return r.fabs()}function fc(r,t){return r.divmod(t)}function mc(r){return r.square()}function yc(r,t){return r.remainder(t)}function pc(r,t){return r.heaviside(t)}function dc(r,t){let e=typeof t=="number"?t:t.storage;return v._fromStorage(Gn(r.storage,e))}function gc(r,t){let e=typeof t=="number"?t:t.storage;return v._fromStorage(Wn(r.storage,e))}function Ac(r){let[t,e]=Yn(r.storage);return[v._fromStorage(t),v._fromStorage(e)]}function bc(r,t){let e=typeof t=="number"?t:t.storage;return v._fromStorage(Hn(r.storage,e))}function hc(r,t){let e=typeof t=="number"?t:t.storage;return v._fromStorage(Jn(r.storage,e))}function Sc(r,t){let e=typeof t=="number"?t:t.storage;return v._fromStorage(Xn(r.storage,e))}function Dc(r){let[t,e]=Qn(r.storage);return[v._fromStorage(t),v._fromStorage(e)]}function xc(r,t){return r.bitwise_and(t)}function Nc(r,t){return r.bitwise_or(t)}function wc(r,t){return r.bitwise_xor(t)}function Ic(r){return r.bitwise_not()}function zc(r){return r.invert()}function _c(r,t){return r.left_shift(t)}function Fc(r,t){return r.right_shift(t)}function Mc(r,t=-1,e="big"){let n=Ka(r.storage,t,e);return v._fromStorage(n)}function Bc(r,t=-1,e=-1,n="big"){let o=rs(r.storage,t,e,n);return v._fromStorage(o)}function vc(r,t){return r.logical_and(t)}function Ec(r,t){return r.logical_or(t)}function Tc(r){return r.logical_not()}function Oc(r,t){return r.logical_xor(t)}function Cc(r){return r.isfinite()}function Uc(r){return r.isinf()}function $c(r){return r.isnan()}function Rc(r){return r.isnat()}function kc(r,t){return r.copysign(t)}function qc(r){return r.signbit()}function Vc(r,t){return r.nextafter(t)}function jc(r){return r.spacing()}function Pc(r){return v._fromStorage(ps(r.storage))}function Lc(r){return ds(r.storage)}function Zc(r){return v._fromStorage(gs(r.storage))}function Gc(r){return As(r.storage)}function Wc(r){return v._fromStorage(zs(r.storage))}function Yc(r){return v._fromStorage(_s(r.storage))}function ln(r){return v._fromStorage(Fs(r.storage))}var Hc=ln;function Jc(r,t=!1){return v._fromStorage(Ms(r.storage,t))}function Xc(r){return v._fromStorage(bs(r.storage))}function Qc(r){return v._fromStorage(hs(r.storage))}function Kc(r){return Ss(r.storage)}function rl(r,t=100){return v._fromStorage(Ds(r.storage,t))}function tl(r){return xs(r)}function el(r){return Ns(r)}function nl(r,t){return ws(r,t)}function ol(r,t){return Is(r,t)}function al(r,...t){let e=t.map(o=>o.storage),n=Ro(r,...e);return typeof n=="number"||typeof n=="bigint"||n instanceof O?n:v._fromStorage(n)}var sl={cross:(r,t,e=-1,n=-1,o=-1,a)=>{let u=qo(r.storage,t.storage,e,n,o,a);return typeof u=="number"?u:v._fromStorage(u)},norm:(r,t=null,e=null,n=!1)=>{let o=Vo(r.storage,t,e,n);return typeof o=="number"?o:v._fromStorage(o)},vector_norm:(r,t=2,e,n=!1)=>{let o=Vr(r.storage,t,e,n);return typeof o=="number"?o:v._fromStorage(o)},matrix_norm:(r,t="fro",e=!1)=>{let n=Br(r.storage,t,e);return typeof n=="number"?n:v._fromStorage(n)},qr:(r,t="reduced")=>{let e=de(r.storage,t);return e instanceof x?v._fromStorage(e):"q"in e&&"r"in e?{q:v._fromStorage(e.q),r:v._fromStorage(e.r)}:{h:v._fromStorage(e.h),tau:v._fromStorage(e.tau)}},cholesky:(r,t=!1)=>v._fromStorage(jo(r.storage,t)),svd:(r,t=!0,e=!0)=>{let n=Po(r.storage,t,e);return"u"in n?{u:v._fromStorage(n.u),s:v._fromStorage(n.s),vt:v._fromStorage(n.vt)}:v._fromStorage(n)},det:r=>Lo(r.storage),inv:r=>v._fromStorage(xt(r.storage)),solve:(r,t)=>v._fromStorage(Zo(r.storage,t.storage)),lstsq:(r,t,e=null)=>{let n=Go(r.storage,t.storage,e);return{x:v._fromStorage(n.x),residuals:v._fromStorage(n.residuals),rank:n.rank,s:v._fromStorage(n.s)}},cond:(r,t=2)=>Wo(r.storage,t),matrix_rank:(r,t)=>Yo(r.storage,t),matrix_power:(r,t)=>v._fromStorage(Ho(r.storage,t)),pinv:(r,t=1e-15)=>v._fromStorage(Jo(r.storage,t)),eig:r=>{let t=be(r.storage);return{w:v._fromStorage(t.w),v:v._fromStorage(t.v)}},eigh:(r,t="L")=>{let e=he(r.storage,t);return{w:v._fromStorage(e.w),v:v._fromStorage(e.v)}},eigvals:r=>v._fromStorage(Xo(r.storage)),eigvalsh:(r,t="L")=>v._fromStorage(Qo(r.storage,t))};function il(r,t,e){return v._fromStorage(va(r.storage,t.storage,e))}function ul(r,t,e,n){Ea(r.storage,t.storage,e.storage,n)}function cl(r,t,e){let n=e instanceof v?e.storage:e;Ta(r.storage,t.storage,n)}function ll(r,t,e){return v._fromStorage(Se(r.storage,t.storage,e))}function fl(r,t,e=0){let n=r.map(a=>a.storage),o=t.map(a=>a.storage);return v._fromStorage(Oa(n,o,e))}function ml(r,t,e){Ca(r.storage,t.storage,e.storage)}function yl(r,t,e=!1){let n=typeof t=="number"?t:t.storage;La(r.storage,n,e)}function pl(r,t=2){return De(r,t).map(n=>v._fromStorage(n))}function dl(r){return Ua(r.storage).map(e=>v._fromStorage(e))}function gl(r,t=0,e){return xe(r,t,e).map(o=>v._fromStorage(o))}function Al(r,t=0){return $a(r.storage,t).map(n=>v._fromStorage(n))}function bl(r,t=0,e){return Ne(r,t,e).map(o=>v._fromStorage(o))}function hl(r,t=0){return Ra(r.storage,t).map(n=>v._fromStorage(n))}function Sl(r,t,e=0){return ka(r,(a,u)=>t(a,u).storage,e).map(a=>v._fromStorage(a))}function Dl(r,t="int32"){return v._fromStorage(qa(r,t))}function xl(...r){return Va(...r.map(e=>e.storage)).map(e=>v._fromStorage(e))}function Nl(r,t,e="raise"){let n=r.map(o=>o.storage);return v._fromStorage(ja(n,t,e))}function wl(r,t,e="C"){let n=r instanceof v?r.storage:r;return Pa(n,t,e).map(a=>v._fromStorage(a))}function Il(r,t=-1){return v._fromStorage(Ie(r.storage,t))}function zl(r,t=-1){return v._fromStorage(ze(r.storage,t))}function _l(r){let t=r.map(e=>e.storage);return v._fromStorage(Bs(t))}function Fl(r,t,e=-1){return v._fromStorage(_e(r.storage,t,e))}function Ml(r,t,e=-1){return v._fromStorage(Fe(r.storage,t,e))}function Bl(r){return v._fromStorage(vs(r.storage))}function vl(r){return zt(r.storage).map(e=>v._fromStorage(e))}function El(r){return v._fromStorage(Me(r.storage))}function Tl(r){return v._fromStorage(Es(r.storage))}function Ol(r,t,e){let n=Ts(r.storage,t?.storage,e?.storage);return Array.isArray(n)?n.map(o=>v._fromStorage(o)):v._fromStorage(n)}function Cl(r,t,e="left"){return v._fromStorage(Be(r.storage,t.storage,e))}function Ul(r,t){return v._fromStorage(Os(r.storage,t.storage))}function $l(r,t){let e=ve(r.storage,t);return typeof e=="number"?e:v._fromStorage(e)}function Ft(r,t=0){return v._fromStorage(Ee(r.storage,t))}function Rl(r){return v._fromStorage(Te(r.storage))}function kl(r){return v._fromStorage(Oe(r.storage))}function ql(r){return v._fromStorage(Ce(r.storage))}function Vl(r){return v._fromStorage(Ue(r.storage))}function jl(r){return v._fromStorage($e(r.storage))}function Pl(r,t=!1,e=!1,n=!1){let o=wr(r.storage,t,e,n);if(o instanceof x)return v._fromStorage(o);let a={values:v._fromStorage(o.values)};return o.indices&&(a.indices=v._fromStorage(o.indices)),o.inverse&&(a.inverse=v._fromStorage(o.inverse)),o.counts&&(a.counts=v._fromStorage(o.counts)),a}function Ll(r,t){return v._fromStorage(Us(r.storage,t.storage))}function Zl(r,t){return v._fromStorage($s(r.storage,t.storage))}function Gl(r,t){return v._fromStorage(ke(r.storage,t.storage))}function Wl(r,t){return v._fromStorage(Rs(r.storage,t.storage))}function Yl(r,t){return v._fromStorage(ks(r.storage,t.storage))}function Hl(r,t){return v._fromStorage(qs(r.storage,t.storage))}function Jl(r,t=1,e=-1){return v._fromStorage(qe(r.storage,t,e))}function Xl(r,t=null,e=null){return v._fromStorage(Vs(r.storage,t,e))}function Ql(r,t=1,e=null){let n=js(r.storage,t,e);return Array.isArray(n)?n.map(o=>v._fromStorage(o)):v._fromStorage(n)}function Kl(r,t,e=-1,n=-1,o=-1){return v._fromStorage(Ps(r.storage,t.storage,e,n,o))}function rf(r,t,e=0){return v._fromStorage(Ls(r.storage,t?.storage,e))}function tf(r,t,e=!1){return v._fromStorage(Zs(r.storage,t.storage,e))}function ef(r,t=10,e,n=!1,o){let a=Gs(r.storage,typeof t=="number"?t:t.storage,e,n,o?.storage);return[v._fromStorage(a.hist),v._fromStorage(a.bin_edges)]}function nf(r,t,e=10,n,o=!1,a){let u;typeof e=="number"?u=e:Array.isArray(e)&&e.length===2?typeof e[0]=="number"?u=e:u=[e[0].storage,e[1].storage]:u=10;let s=Ws(r.storage,t.storage,u,n,o,a?.storage);return[v._fromStorage(s.hist),v._fromStorage(s.x_edges),v._fromStorage(s.y_edges)]}function of(r,t=10,e,n=!1,o){let a=Ys(r.storage,t,e,n,o?.storage);return[v._fromStorage(a.hist),a.edges.map(u=>v._fromStorage(u))]}function af(r,t,e="full"){return v._fromStorage(Ve(r.storage,t.storage,e))}function sf(r,t,e="full"){return v._fromStorage(Hs(r.storage,t.storage,e))}function uf(r,t,e=!0,n=!1,o){return v._fromStorage(je(r.storage,t?.storage,e,n,o))}function cf(r,t,e=!0){return v._fromStorage(Js(r.storage,t?.storage,e))}var it=new Uint8Array([147,78,85,77,80,89]),Mt=["float64","float32","complex128","complex64","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"];function fn(){let r=new ArrayBuffer(2);return new DataView(r).setInt16(0,256,!0),new Int16Array(r)[0]===256}var wy={f8:"float64",f4:"float32",c16:"complex128",c8:"complex64",i8:"int64",i4:"int32",i2:"int16",i1:"int8",u8:"uint64",u4:"uint32",u2:"uint16",u1:"uint8",b1:"bool"},ut={float64:"<f8",float32:"<f4",complex128:"<c16",complex64:"<c8",int64:"<i8",int32:"<i4",int16:"<i2",int8:"|i1",uint64:"<u8",uint32:"<u4",uint16:"<u2",uint8:"|u1",bool:"|b1"},lf={S:"byte strings",U:"Unicode strings",O:"Python objects",V:"structured arrays (void)",M:"datetime64",m:"timedelta64"};function ff(r){if(r.startsWith("[")||r.startsWith("("))throw new xr(`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 lf)throw new xr(`Unsupported dtype: ${lf[n]} (${r}). Use the 'force' parameter to skip arrays with unsupported dtypes.`);let o=wy[e];if(!o)throw new xr(`Unknown or unsupported dtype descriptor: ${r}. Supported types: ${Mt.join(", ")}. Use the 'force' parameter to skip arrays with unsupported dtypes.`);let a=fn(),u=t==="<"||t==="|"||t==="="&&a,s=t===">"||t==="="&&!a,i=parseInt(e.slice(1),10),c=i>1&&(s&&a||u&&!a);return{dtype:o,needsByteSwap:c,itemsize:i}}var xr=class extends Error{constructor(t){super(t),this.name="UnsupportedDTypeError"}},sr=class extends Error{constructor(t){super(t),this.name="InvalidNpyError"}};function ct(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=Bt(t);return vt(t,e)}function Bt(r){if(r.length<10)throw new sr("File too small to be a valid NPY file");for(let c=0;c<it.length;c++)if(r[c]!==it[c])throw new sr("Invalid NPY magic number");let t=r[6],e=r[7];if(t!==1&&t!==2&&t!==3)throw new sr(`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 sr("File truncated: header extends beyond file");let u=r.slice(o,a),s=new TextDecoder("utf-8").decode(u).trim(),i=Iy(s);return{version:{major:t,minor:e},header:i,dataOffset:a}}function vt(r,t){let{header:e,dataOffset:n}=t,{dtype:o,needsByteSwap:a,itemsize:u}=ff(e.descr),s=e.shape.reduce((y,g)=>y*g,1),i=s*u,c=r.length-n;if(c<i)throw new sr(`File truncated: expected ${i} bytes of data, got ${c}`);let l=new ArrayBuffer(i);new Uint8Array(l).set(r.subarray(n,n+i));let d=zy(l,o,s,a,u),p=e.shape,f;if(e.fortran_order&&p.length>1){let y=[...p].reverse(),g=x.fromData(d,y,o);f=_y(g,y),p=e.shape}else f=x.fromData(d,[...p],o);return new v(f)}function Iy(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 sr(`Failed to parse NPY header: ${r}`);let o=t[1],a=e[1]==="True",u=n[1].trim(),s;return u===""?s=[]:s=u.split(",").map(i=>i.trim()).filter(i=>i!=="").map(i=>{let c=parseInt(i,10);if(isNaN(c))throw new sr(`Invalid shape value: ${i}`);return c}),{descr:o,fortran_order:a,shape:s}}function zy(r,t,e,n,o){let a=P(t);if(!a)throw new sr(`Cannot create array for dtype: ${t}`);let u=M(t),s=u?e*2:e;if(!n)return new a(r,0,s);let i=new Uint8Array(r),c=new Uint8Array(r.byteLength);if(u){let l=o/2;for(let m=0;m<e*2;m++){let d=m*l;for(let p=0;p<l;p++)c[d+p]=i[d+l-1-p]}}else for(let l=0;l<e;l++){let m=l*o;for(let d=0;d<o;d++)c[m+d]=i[m+o-1-d]}return new a(c.buffer,0,s)}function _y(r,t){let e=t.length,n=r.size,o=r.dtype,a=P(o);if(!a)throw new sr(`Cannot create array for dtype: ${o}`);let u=new a(n),s=[...t].reverse(),i=mf(t),c=mf(s),l=new Array(e).fill(0);for(let m=0;m<n;m++){let d=m;for(let f=0;f<e;f++){let y=i[f];l[f]=Math.floor(d/y),d=d%y}let p=0;for(let f=0;f<e;f++)p+=l[e-1-f]*c[f];B(o),u[p]=r.iget(m)}return x.fromData(u,s,o)}function mf(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 Pr(r){let t=r.shape,e=r.dtype,n=ut[e],o=t.length===0?"()":t.length===1?`(${t[0]},)`:`(${t.join(", ")})`,a=`{'descr': '${n}', 'fortran_order': False, 'shape': ${o}, }`,u=12,i=(64-(u+a.length+1)%64)%64;a=a+" ".repeat(i)+`
|
|
2
|
-
`;let c=new TextEncoder().encode(a),l=c.length,m=r.size,d=yt(e),p=m*d,f=u+l+p,y=new Uint8Array(f);y.set(it,0),y[6]=3,y[7]=0,y[8]=l&255,y[9]=l>>8&255,y[10]=l>>16&255,y[11]=l>>24&255,y.set(c,u);let g=u+l;return Fy(r,y.subarray(g),d),y}function Fy(r,t,e){let n=r.dtype,o=r.size,a=fn(),u=B(n),s=M(n),i=r._storage;if(i.isCContiguous&&i.offset===0&&a){let l=i.data,m=new Uint8Array(l.buffer,l.byteOffset,o*e);t.set(m)}else{let l=new DataView(t.buffer,t.byteOffset,t.byteLength);for(let m=0;m<o;m++){let d=i.iget(m),p=m*e;u?My(l,p,d,n==="uint64"):s?By(l,p,d,n):vy(l,p,d,n)}}}function My(r,t,e,n){n?r.setBigUint64(t,e,!0):r.setBigInt64(t,e,!0)}function By(r,t,e,n){n==="complex128"?(r.setFloat64(t,e.re,!0),r.setFloat64(t+8,e.im,!0)):(r.setFloat32(t,e.re,!0),r.setFloat32(t+4,e.im,!0))}function vy(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 Ey=(()=>{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 mn(r){let t=4294967295;for(let e=0;e<r.length;e++)t=Ey[(t^r[e])&255]^t>>>8;return(t^4294967295)>>>0}async function yf(r){let t=df(r),e=new Map;for(let n of t){let o=await Ty(n);e.set(n.name,o)}return e}function pf(r){let t=df(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 df(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=new DataView(t.buffer,t.byteOffset,t.byteLength),n=[],o=-1;for(let c=t.length-22;c>=0;c--)if(e.getUint32(c,!0)===101010256){o=c;break}if(o===-1)throw new Error("Invalid ZIP file: end of central directory not found");let a=e.getUint32(o+16,!0),u=e.getUint16(o+10,!0),s=[],i=a;for(let c=0;c<u&&e.getUint32(i,!0)===33639248;c++){let m=e.getUint16(i+10,!0),d=e.getUint32(i+16,!0),p=e.getUint32(i+20,!0),f=e.getUint32(i+24,!0),y=e.getUint16(i+28,!0),g=e.getUint16(i+30,!0),h=e.getUint16(i+32,!0),b=e.getUint32(i+42,!0),A=t.slice(i+46,i+46+y),S=new TextDecoder("utf-8").decode(A);s.push({name:S,compressionMethod:m,crc32:d,compressedSize:p,uncompressedSize:f,localHeaderOffset:b}),i=i+46+y+g+h}for(let c of s){let l=c.localHeaderOffset;if(e.getUint32(l,!0)!==67324752)throw new Error(`Invalid local file header at offset ${l}`);let d=e.getUint16(l+26,!0),p=e.getUint16(l+28,!0),f=l+30+d+p,y=t.slice(f,f+c.compressedSize);n.push({name:c.name,compressedData:y,compressionMethod:c.compressionMethod,crc32:c.crc32,compressedSize:c.compressedSize,uncompressedSize:c.uncompressedSize})}return n}async function Ty(r){if(r.compressionMethod===0)return r.compressedData;if(r.compressionMethod===8)return await Oy(r.compressedData);throw new Error(`Unsupported compression method: ${r.compressionMethod}`)}async function Oy(r){if(typeof DecompressionStream>"u")throw new Error("DecompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let t=new DecompressionStream("deflate-raw"),e=new Uint8Array(r.length);e.set(r);let n=t.writable.getWriter();n.write(e),n.close();let o=t.readable.getReader(),a=[];for(;;){let{done:c,value:l}=await o.read();if(c)break;a.push(l)}let u=a.reduce((c,l)=>c+l.length,0),s=new Uint8Array(u),i=0;for(let c of a)s.set(c,i),i+=c.length;return s}async function Et(r,t={}){let e=t.force??!1,n=await yf(r);return gf(n,e)}function Tt(r,t={}){let e=t.force??!1,n=pf(r);return gf(n,e)}function gf(r,t){let e=new Map,n=[],o=new Map;for(let[a,u]of r){if(!a.endsWith(".npy"))continue;let s=a.slice(0,-4);try{let i=ct(u);e.set(s,i)}catch(i){if(i instanceof xr&&t)n.push(s),o.set(s,i.message);else throw i}}return{arrays:e,skipped:n,errors:o}}async function dn(r,t={}){let e=await Et(r,t);return Object.fromEntries(e.arrays)}function gn(r,t={}){let e=Tt(r,t);return Object.fromEntries(e.arrays)}async function Af(r,t={}){let e=t.compress??!1,n=[];for(let[d,p]of r){let f=mn(p),y,g;e?(y=await Uy(p),y.length<p.length?g=8:(y=p,g=0)):(y=p,g=0),n.push({name:d,data:p,compressedData:y,crc:f,compressionMethod:g,offset:0})}let o=0;for(let d of n){let p=new TextEncoder().encode(d.name);o+=30+p.length+d.compressedData.length}let a=0;for(let d of n){let p=new TextEncoder().encode(d.name);a+=46+p.length}let s=o+a+22,i=new Uint8Array(s),c=new DataView(i.buffer),l=0;for(let d of n)d.offset=l,l=hf(i,c,l,d);let m=l;for(let d of n)l=Sf(i,c,l,d);return Df(c,l,n.length,a,m),i}function bf(r){let t=[];for(let[l,m]of r){let d=mn(m);t.push({name:l,data:m,compressedData:m,crc:d,compressionMethod:0,offset:0})}let e=0;for(let l of t){let m=new TextEncoder().encode(l.name);e+=30+m.length+l.compressedData.length}let n=0;for(let l of t){let m=new TextEncoder().encode(l.name);n+=46+m.length}let a=e+n+22,u=new Uint8Array(a),s=new DataView(u.buffer),i=0;for(let l of t)l.offset=i,i=hf(u,s,i,l);let c=i;for(let l of t)i=Sf(u,s,i,l);return Df(s,i,t.length,n,c),u}function hf(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 Sf(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 Df(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 Uy(r){if(typeof CompressionStream>"u")throw new Error("CompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let t=new CompressionStream("deflate-raw"),e=new Uint8Array(r.length);e.set(r);let n=t.writable.getWriter();n.write(e),n.close();let o=t.readable.getReader(),a=[];for(;;){let{done:c,value:l}=await o.read();if(c)break;a.push(l)}let u=a.reduce((c,l)=>c+l.length,0),s=new Uint8Array(u),i=0;for(let c of a)s.set(c,i),i+=c.length;return s}async function An(r,t={}){let e=xf(r);return Af(e,{compress:t.compress??!1})}function bn(r){let t=xf(r);return bf(t)}function xf(r){let t=new Map;if(Array.isArray(r)){for(let n=0;n<r.length;n++){let o=r[n],a=Pr(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=Pr(o),u=n.endsWith(".npy")?n:`${n}.npy`;t.set(u,a)}return t}var gr=624,Ot=397,Vy=2567483615,hn=2147483648,Sn=2147483647,Ar={mt:new Uint32Array(gr),mti:gr+1};function If(r){let t=Ar.mt;t[0]=r>>>0;for(let e=1;e<gr;e++){let n=t[e-1]^t[e-1]>>>30;t[e]=Math.imul(1812433253,n)+e>>>0}Ar.mti=gr}function Nf(){let r=Ar.mt,t,e=[0,Vy];if(Ar.mti>=gr){let n;for(Ar.mti===gr+1&&If(5489),n=0;n<gr-Ot;n++)t=r[n]&hn|r[n+1]&Sn,r[n]=r[n+Ot]^t>>>1^e[t&1];for(;n<gr-1;n++)t=r[n]&hn|r[n+1]&Sn,r[n]=r[n+(Ot-gr)]^t>>>1^e[t&1];t=r[gr-1]&hn|r[0]&Sn,r[gr-1]=r[Ot-1]^t>>>1^e[t&1],Ar.mti=0}return t=r[Ar.mti++],t^=t>>>11,t^=t<<7&2636928640,t^=t<<15&4022730752,t^=t>>>18,t>>>0}function W(){let r=Nf()>>>5,t=Nf()>>>6;return(r*67108864+t)/9007199254740992}var jy=2468251765,Py=1492356589,Ly=1135663077,Zy=2337405405,Gy=3389127133,Wy=1232336661,In=16,Ct=4;function ir(r){return r>>>0}function Dn(r,t){return r=ir(ir(r)^t.val),t.val=ir(Math.imul(t.val,jy)),r=ir(Math.imul(r,t.val)),r=ir(r^r>>>In),r}function Yy(r,t){let e=ir(ir(Math.imul(Gy,ir(r)))-ir(Math.imul(Wy,ir(t))));return e=ir(e^e>>>In),e}function Hy(r){let t=[0,0,0,0],e=[r>>>0],n={val:Ly};for(let o=0;o<Ct;o++)o<e.length?t[o]=Dn(e[o],n):t[o]=Dn(0,n);for(let o=0;o<Ct;o++)for(let a=0;a<Ct;a++)if(o!==a){let u=Dn(t[o],n);t[a]=Yy(t[a],u)}return t}function Jy(r,t){let e=[],n=Zy;for(let o=0;o<t;o++){let a=r[o%Ct],u=ir(a^n);n=ir(Math.imul(n,Py)),u=ir(Math.imul(u,n)),u=ir(u^u>>>In),e.push(u)}return e}var Xy=BigInt("4865540595714422341"),Qy=BigInt("2549297995355413924"),Ky=Qy<<BigInt(64)|Xy,xn=BigInt("0xffffffffffffffff"),Nn=(BigInt(1)<<BigInt(128))-BigInt(1);function rp(r){let t=r>>BigInt(64),e=r&xn,n=(t^e)&xn,o=Number(r>>BigInt(122));return(n>>BigInt(o)|n<<BigInt(64-o))&xn}function wn(r,t){return r*Ky+t&Nn}function wf(r){let t=Hy(r),e=Jy(t,8),n=BigInt(e[0])|BigInt(e[1])<<BigInt(32),o=BigInt(e[2])|BigInt(e[3])<<BigInt(32),a=BigInt(e[4])|BigInt(e[5])<<BigInt(32),u=BigInt(e[6])|BigInt(e[7])<<BigInt(32),s=n<<BigInt(64)|o,i=(a<<BigInt(64)|u)<<BigInt(1);i=(i|BigInt(1))&Nn;let c=BigInt(0);return c=wn(c,i),c=c+s&Nn,c=wn(c,i),{state:c,inc:i}}function tp(r){return r.state=wn(r.state,r.inc),rp(r.state)}function ep(r){let e=tp(r)>>BigInt(11);return Number(e)/9007199254740992}var ft=class{constructor(t){if(t!==void 0)this._pcgState=wf(t);else{let e=Math.floor(Math.random()*4294967296);this._pcgState=wf(e)}}_randomFloat(){return ep(this._pcgState)}random(t){if(t===void 0)return this._randomFloat();let e=Array.isArray(t)?t:[t],n=e.reduce((u,s)=>u*s,1),o=x.zeros(e,"float64"),a=o.data;for(let u=0;u<n;u++)a[u]=this._randomFloat();return o}integers(t,e,n){if(e===void 0&&(e=t,t=0),n===void 0)return Math.floor(this._randomFloat()*(e-t))+t;let o=Array.isArray(n)?n:[n],a=o.reduce((c,l)=>c*l,1),u=x.zeros(o,"int64"),s=u.data,i=e-t;for(let c=0;c<a;c++)s[c]=BigInt(Math.floor(this._randomFloat()*i)+t);return u}standard_normal(t){if(t===void 0)return Er(this._randomFloat.bind(this));let e=Array.isArray(t)?t:[t],n=e.reduce((u,s)=>u*s,1),o=x.zeros(e,"float64"),a=o.data;for(let u=0;u<n;u+=2){let[s,i]=mt(this._randomFloat.bind(this));a[u]=s,u+1<n&&(a[u+1]=i)}return o}normal(t=0,e=1,n){if(n===void 0)return Er(this._randomFloat.bind(this))*e+t;let o=Array.isArray(n)?n:[n],a=o.reduce((i,c)=>i*c,1),u=x.zeros(o,"float64"),s=u.data;for(let i=0;i<a;i+=2){let[c,l]=mt(this._randomFloat.bind(this));s[i]=c*e+t,i+1<a&&(s[i+1]=l*e+t)}return u}uniform(t=0,e=1,n){if(n===void 0)return this._randomFloat()*(e-t)+t;let o=Array.isArray(n)?n:[n],a=o.reduce((c,l)=>c*l,1),u=x.zeros(o,"float64"),s=u.data,i=e-t;for(let c=0;c<a;c++)s[c]=this._randomFloat()*i+t;return u}choice(t,e,n=!0,o){return qf(t,e,n,o,this._randomFloat.bind(this))}permutation(t){return jf(t,this._randomFloat.bind(this))}shuffle(t){Lf(t,this._randomFloat.bind(this))}exponential(t=1,e){if(e===void 0)return-Math.log(1-this._randomFloat())*t;let n=Array.isArray(e)?e:[e],o=n.reduce((s,i)=>s*i,1),a=x.zeros(n,"float64"),u=a.data;for(let s=0;s<o;s++)u[s]=-Math.log(1-this._randomFloat())*t;return a}poisson(t=1,e){if(e===void 0)return Ut(t,this._randomFloat.bind(this));let n=Array.isArray(e)?e:[e],o=n.reduce((s,i)=>s*i,1),a=x.zeros(n,"int64"),u=a.data;for(let s=0;s<o;s++)u[s]=BigInt(Ut(t,this._randomFloat.bind(this)));return a}binomial(t,e,n){if(n===void 0)return $t(t,e,this._randomFloat.bind(this));let o=Array.isArray(n)?n:[n],a=o.reduce((i,c)=>i*c,1),u=x.zeros(o,"int64"),s=u.data;for(let i=0;i<a;i++)s[i]=BigInt($t(t,e,this._randomFloat.bind(this)));return u}};function zf(r){return new ft(r)}function _f(r){r==null&&(r=Math.floor(Date.now()^Math.random()*4294967296)),If(r>>>0)}function Ff(){return{mt:Array.from(Ar.mt),mti:Ar.mti}}function Mf(r){Ar.mt=new Uint32Array(r.mt),Ar.mti=r.mti}function Er(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 mt(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 Ut(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=Er(t);return Math.max(0,Math.round(r+Math.sqrt(r)*e))}}function $t(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=Er(e);return Math.max(0,Math.min(r,Math.round(n+o*a)))}}function Bf(r){if(r===void 0)return W();let t=Array.isArray(r)?r:[r],e=t.reduce((a,u)=>a*u,1),n=x.zeros(t,"float64"),o=n.data;for(let a=0;a<e;a++)o[a]=W();return n}function vf(...r){if(r.length===0)return W();let t=r.reduce((o,a)=>o*a,1),e=x.zeros(r,"float64"),n=e.data;for(let o=0;o<t;o++)n[o]=W();return e}function Ef(...r){if(r.length===0)return Er(W);let t=r.reduce((o,a)=>o*a,1),e=x.zeros(r,"float64"),n=e.data;for(let o=0;o<t;o+=2){let[a,u]=mt(W);n[o]=a,o+1<t&&(n[o+1]=u)}return e}function Tf(r,t,e,n="int64"){t==null&&(t=r,r=0);let o=t-r;if(e===void 0)return Math.floor(W()*o)+r;let a=Array.isArray(e)?e:[e],u=a.reduce((c,l)=>c*l,1),s=x.zeros(a,n),i=s.data;if(B(n)){let c=i;for(let l=0;l<u;l++)c[l]=BigInt(Math.floor(W()*o)+r)}else{let c=i;for(let l=0;l<u;l++)c[l]=Math.floor(W()*o)+r}return s}function Of(r=0,t=1,e){if(e===void 0)return W()*(t-r)+r;let n=Array.isArray(e)?e:[e],o=n.reduce((i,c)=>i*c,1),a=x.zeros(n,"float64"),u=a.data,s=t-r;for(let i=0;i<o;i++)u[i]=W()*s+r;return a}function Cf(r=0,t=1,e){if(e===void 0)return Er(W)*t+r;let n=Array.isArray(e)?e:[e],o=n.reduce((s,i)=>s*i,1),a=x.zeros(n,"float64"),u=a.data;for(let s=0;s<o;s+=2){let[i,c]=mt(W);u[s]=i*t+r,s+1<o&&(u[s+1]=c*t+r)}return a}function Uf(r){if(r===void 0)return Er(W);let t=Array.isArray(r)?r:[r],e=t.reduce((a,u)=>a*u,1),n=x.zeros(t,"float64"),o=n.data;for(let a=0;a<e;a+=2){let[u,s]=mt(W);o[a]=u,a+1<e&&(o[a+1]=s)}return n}function $f(r=1,t){if(t===void 0)return-Math.log(1-W())*r;let e=Array.isArray(t)?t:[t],n=e.reduce((u,s)=>u*s,1),o=x.zeros(e,"float64"),a=o.data;for(let u=0;u<n;u++)a[u]=-Math.log(1-W())*r;return o}function Rf(r=1,t){if(t===void 0)return Ut(r,W);let e=Array.isArray(t)?t:[t],n=e.reduce((u,s)=>u*s,1),o=x.zeros(e,"int64"),a=o.data;for(let u=0;u<n;u++)a[u]=BigInt(Ut(r,W));return o}function kf(r,t,e){if(e===void 0)return $t(r,t,W);let n=Array.isArray(e)?e:[e],o=n.reduce((s,i)=>s*i,1),a=x.zeros(n,"int64"),u=a.data;for(let s=0;s<o;s++)u[s]=BigInt($t(r,t,W));return a}function qf(r,t,e=!0,n,o=W){let a;if(typeof r=="number")a=Array.from({length:r},(d,p)=>p);else{let d=r.size;a=[];for(let p=0;p<d;p++)a.push(Number(r.iget(p)))}let u=a.length;if(u===0)throw new Error("cannot take a sample from an empty sequence");let s;if(n!==void 0){if(Array.isArray(n))s=n;else{let p=n.size;s=[];for(let f=0;f<p;f++)s.push(Number(n.iget(f)))}if(s.length!==u)throw new Error("p and a must have the same size");let d=s.reduce((p,f)=>p+f,0);Math.abs(d-1)>1e-10&&(s=s.map(p=>p/d))}if(t===void 0){if(s){let d=o(),p=0;for(let f=0;f<u;f++)if(p+=s[f],d<p)return a[f];return a[u-1]}return a[Math.floor(o()*u)]}let i=Array.isArray(t)?t:[t],c=i.reduce((d,p)=>d*p,1);if(!e&&c>u)throw new Error("cannot take a larger sample than population when replace=false");let l=x.zeros(i,"float64"),m=l.data;if(e)if(s){let d=new Array(u);d[0]=s[0];for(let p=1;p<u;p++)d[p]=d[p-1]+s[p];for(let p=0;p<c;p++){let f=o(),y=0;for(;y<u-1&&f>=d[y];)y++;m[p]=a[y]}}else for(let d=0;d<c;d++)m[d]=a[Math.floor(o()*u)];else{let d=[...a],p=s?[...s]:void 0;for(let f=0;f<c;f++){let y;if(p){let g=p.reduce((A,S)=>A+S,0),h=o()*g,b=0;y=0;for(let A=0;A<d.length;A++)if(b+=p[A],h<b){y=A;break}y===0&&h>=b&&(y=d.length-1)}else y=Math.floor(o()*d.length);m[f]=d[y],d.splice(y,1),p&&p.splice(y,1)}}return l}function Vf(r,t,e=!0,n){return qf(r,t,e,n,W)}function jf(r,t=W){let e;if(typeof r=="number"){let o=new Float64Array(r);for(let a=0;a<r;a++)o[a]=a;e=x.fromData(o,[r],"float64")}else e=r.copy();let n=e.size;for(let o=n-1;o>0;o--){let a=Math.floor(t()*(o+1)),u=e.iget(o);e.iset(o,e.iget(a)),e.iset(a,u)}return e}function Pf(r){return jf(r,W)}function Lf(r,t=W){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 Zf(r){Lf(r,W)}function mr(r){return r&&typeof r=="object"&&"_data"in r&&"_shape"in r?v._fromStorage(r):r}var op={seed:_f,random:r=>mr(Bf(r)),rand:(...r)=>mr(vf(...r)),randn:(...r)=>mr(Ef(...r)),randint:(r,t,e,n)=>mr(Tf(r,t,e,n)),uniform:(r,t,e)=>mr(Of(r,t,e)),normal:(r,t,e)=>mr(Cf(r,t,e)),standard_normal:r=>mr(Uf(r)),exponential:(r,t)=>mr($f(r,t)),poisson:(r,t)=>mr(Rf(r,t)),binomial:(r,t,e)=>mr(kf(r,t,e)),choice:(r,t,e,n)=>mr(Vf(r,t,e,n)),permutation:r=>mr(Pf(r)),shuffle:Zf,get_state:Ff,set_state:Mf,default_rng:zf,Generator:ft},ap="0.11.0";return Kf(sp);})();
|
|
1
|
+
"use strict";var np=(()=>{var ws=Object.defineProperty;var zN=Object.getOwnPropertyDescriptor;var _N=Object.getOwnPropertyNames;var vN=Object.prototype.hasOwnProperty;var MN=(r,t)=>{for(var e in t)ws(r,e,{get:t[e],enumerable:!0})},FN=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of _N(t))!vN.call(r,o)&&o!==e&&ws(r,o,{get:()=>t[o],enumerable:!(n=zN(t,o))||n.enumerable});return r};var BN=r=>FN(ws({},"__esModule",{value:!0}),r);var S1={};MN(S1,{Complex:()=>U,DTYPE_TO_DESCR:()=>bs,InvalidNpyError:()=>hr,NDArray:()=>er,NDArrayCore:()=>P,SUPPORTED_DTYPES:()=>Tc,UnsupportedDTypeError:()=>jr,__version__:()=>C1,abs:()=>jc,absolute:()=>jc,acos:()=>rl,acosh:()=>ol,add:()=>Zd,all:()=>Eg,allclose:()=>Ct,amax:()=>Ve,amin:()=>je,angle:()=>Yb,any:()=>Og,append:()=>ch,apply_along_axis:()=>Yd,apply_over_axes:()=>Wd,arange:()=>Qb,arccos:()=>rl,arccosh:()=>ol,arcsin:()=>Hc,arcsinh:()=>nl,arctan:()=>tl,arctan2:()=>el,arctanh:()=>al,argmax:()=>zg,argmin:()=>Ig,argpartition:()=>Rh,argsort:()=>Uh,argwhere:()=>Ph,around:()=>Xc,array:()=>Kb,array2string:()=>Ka,array_equal:()=>Oa,array_equiv:()=>Ua,array_repr:()=>Qa,array_split:()=>Lo,array_str:()=>Ha,asanyarray:()=>lA,asarray:()=>oA,asarray_chkfinite:()=>pA,ascontiguousarray:()=>fA,asfortranarray:()=>mA,asin:()=>Hc,asinh:()=>nl,atan:()=>tl,atan2:()=>el,atanh:()=>al,atleast_1d:()=>Zo,atleast_2d:()=>Jo,atleast_3d:()=>Xo,average:()=>Tg,base_repr:()=>Ja,binary_repr:()=>Xa,bincount:()=>Gh,bindex:()=>Ed,bitwise_and:()=>$b,bitwise_count:()=>jb,bitwise_invert:()=>Lc,bitwise_left_shift:()=>Gc,bitwise_not:()=>Lc,bitwise_or:()=>kb,bitwise_right_shift:()=>Yc,bitwise_xor:()=>Rb,block:()=>wh,broadcast_arrays:()=>za,broadcast_shapes:()=>_a,broadcast_to:()=>_d,byteswap:()=>as,can_cast:()=>uo,cbrt:()=>yb,ceil:()=>Xg,choose:()=>Fd,clip:()=>zb,column_stack:()=>Sh,common_type:()=>ls,compress:()=>Bd,concat:()=>Qc,concatenate:()=>Qc,conj:()=>Wc,conjugate:()=>Wc,convolve:()=>Zh,copy:()=>cA,copysign:()=>tg,copyto:()=>Ba,corrcoef:()=>Xh,correlate:()=>Wh,cos:()=>Hh,cosh:()=>i0,count_nonzero:()=>ya,cov:()=>Jh,cross:()=>qA,cumprod:()=>Jc,cumsum:()=>Zc,cumulative_prod:()=>Jc,cumulative_sum:()=>Zc,deg2rad:()=>o0,degrees:()=>e0,delete:()=>Kc,delete_:()=>Kc,diag:()=>dA,diag_indices:()=>Rd,diag_indices_from:()=>qd,diagflat:()=>bA,diagonal:()=>vA,diff:()=>IA,digitize:()=>Yh,divide:()=>lb,divmod:()=>bb,dot:()=>_A,dsplit:()=>Wo,dstack:()=>Ch,ediff1d:()=>zA,einsum:()=>To,einsum_path:()=>Eo,empty:()=>Jb,empty_like:()=>iA,equal:()=>cg,exp:()=>Qd,exp2:()=>Hd,expand_dims:()=>bh,expm1:()=>rb,extract:()=>Lh,eye:()=>eA,fabs:()=>db,fft:()=>x1,fill:()=>us,fill_diagonal:()=>Ea,fix:()=>Kg,flatnonzero:()=>jh,flatten:()=>ph,flip:()=>vh,fliplr:()=>Mh,flipud:()=>Fh,float_power:()=>Nb,floor:()=>Qg,floor_divide:()=>fb,fmax:()=>Mb,fmin:()=>Fb,fmod:()=>Db,format_float_positional:()=>Wa,format_float_scientific:()=>Za,frexp:()=>xb,frombuffer:()=>DA,fromfile:()=>wA,fromfunction:()=>xA,fromiter:()=>CA,fromregex:()=>N1,fromstring:()=>SA,full:()=>Xb,full_like:()=>uA,gcd:()=>Cb,genfromtxt:()=>h1,geomspace:()=>tA,get_printoptions:()=>Ga,geterr:()=>Ra,gradient:()=>Ia,greater:()=>ag,greater_equal:()=>sg,heaviside:()=>hb,histogram:()=>xa,histogram2d:()=>Ca,histogram_bin_edges:()=>wa,histogramdd:()=>Sa,hsplit:()=>Yo,hstack:()=>xh,hypot:()=>t0,i0:()=>Ub,identity:()=>nA,iindex:()=>Td,imag:()=>Gb,in1d:()=>th,indices:()=>Ud,inner:()=>BA,insert:()=>lh,interp:()=>Tb,intersect1d:()=>eh,invert:()=>qb,isclose:()=>fg,iscomplex:()=>QA,iscomplexobj:()=>sa,isdtype:()=>fa,isfinite:()=>YA,isfortran:()=>ua,isin:()=>nh,isinf:()=>WA,isnan:()=>ZA,isnat:()=>JA,isneginf:()=>XA,isposinf:()=>KA,isreal:()=>HA,isrealobj:()=>ia,isscalar:()=>ca,issubdtype:()=>ps,item:()=>es,iterable:()=>la,ix_:()=>Ta,kron:()=>MA,lcm:()=>Sb,ldexp:()=>wb,left_shift:()=>Gc,less:()=>ig,less_equal:()=>ug,lexsort:()=>$h,linalg:()=>qo,linspace:()=>Hb,loadNpz:()=>b1,loadNpzSync:()=>A1,log:()=>tb,log10:()=>nb,log1p:()=>ob,log2:()=>eb,logaddexp:()=>ab,logaddexp2:()=>sb,logical_and:()=>PA,logical_not:()=>LA,logical_or:()=>jA,logical_xor:()=>GA,logspace:()=>rA,mask_indices:()=>Gd,matmul:()=>VA,matrix_transpose:()=>UA,matvec:()=>kA,max:()=>Ve,maximum:()=>_b,may_share_memory:()=>$a,mean:()=>Cg,median:()=>Mg,meshgrid:()=>Vc,min:()=>je,min_scalar_type:()=>ms,minimum:()=>vb,mintypecode:()=>ds,mod:()=>cb,modf:()=>Ib,moveaxis:()=>gh,multiply:()=>Xd,nan_to_num:()=>Bb,nanargmax:()=>Lg,nanargmin:()=>jg,nancumprod:()=>Yg,nancumsum:()=>Gg,nanmax:()=>Pg,nanmean:()=>kg,nanmedian:()=>Wg,nanmin:()=>Vg,nanpercentile:()=>Jg,nanprod:()=>$g,nanquantile:()=>Zg,nanstd:()=>qg,nansum:()=>Ug,nanvar:()=>Rg,ndim:()=>rs,negative:()=>ib,nextafter:()=>ng,nonzero:()=>Vh,not_equal:()=>lg,ones:()=>Zb,ones_like:()=>sA,outer:()=>TA,packbits:()=>Vb,pad:()=>fh,parseNpy:()=>f1,parseNpyData:()=>p1,parseNpyHeader:()=>m1,parseNpz:()=>y1,parseNpzSync:()=>d1,parseTxt:()=>g1,partition:()=>kh,percentile:()=>Fg,permute_dims:()=>$A,place:()=>Ma,poly:()=>mg,polyadd:()=>pg,polyder:()=>yg,polydiv:()=>dg,polyfit:()=>bg,polyint:()=>Ag,polymul:()=>gg,polysub:()=>hg,polyval:()=>Ng,positive:()=>mb,pow:()=>Pc,power:()=>Pc,printoptions:()=>Ya,prod:()=>Sg,promote_types:()=>ma,ptp:()=>wg,put:()=>zt,put_along_axis:()=>va,putmask:()=>Fa,quantile:()=>Bg,rad2deg:()=>a0,radians:()=>n0,random:()=>D1,ravel:()=>yh,ravel_multi_index:()=>$d,real:()=>Lb,real_if_close:()=>rg,reciprocal:()=>pb,remainder:()=>gb,repeat:()=>_h,require:()=>yA,reshape:()=>mh,resize:()=>Eh,result_type:()=>fs,right_shift:()=>Yc,rint:()=>Hg,roll:()=>Th,rollaxis:()=>hh,roots:()=>Dg,rot90:()=>Bh,round:()=>Xc,round_:()=>Aa,row_stack:()=>Po,searchsorted:()=>St,select:()=>Od,serializeNpy:()=>lo,serializeNpz:()=>Dd,serializeNpzSync:()=>xd,serializeTxt:()=>zd,set_printoptions:()=>La,setdiff1d:()=>oh,seterr:()=>qa,setxor1d:()=>ah,shape:()=>io,shares_memory:()=>ka,sign:()=>ub,signbit:()=>eg,sin:()=>Qh,sinc:()=>Ob,sinh:()=>s0,size:()=>ts,sort:()=>Oh,sort_complex:()=>qh,spacing:()=>og,split:()=>jo,sqrt:()=>Kd,square:()=>Ab,squeeze:()=>dh,stack:()=>Nh,std:()=>vg,subtract:()=>Jd,sum:()=>xg,swapaxes:()=>Ah,take:()=>vd,take_along_axis:()=>Md,tan:()=>r0,tanh:()=>u0,tensordot:()=>EA,tile:()=>zh,tobytes:()=>os,tofile:()=>is,tolist:()=>ns,trace:()=>Hr,transpose:()=>FA,trapezoid:()=>Kh,tri:()=>AA,tril:()=>gA,tril_indices:()=>Vd,tril_indices_from:()=>Pd,trim_zeros:()=>ih,triu:()=>hA,triu_indices:()=>jd,triu_indices_from:()=>Ld,true_divide:()=>Fo,trunc:()=>rh,typename:()=>ys,union1d:()=>sh,unique:()=>ga,unique_all:()=>ha,unique_counts:()=>Na,unique_inverse:()=>Da,unique_values:()=>uh,unpackbits:()=>Pb,unravel_index:()=>kd,unstack:()=>Ih,unwrap:()=>Eb,vander:()=>NA,var:()=>oa,variance:()=>_g,vdot:()=>Oo,vecdot:()=>OA,vecmat:()=>RA,view:()=>ss,vsplit:()=>Go,vstack:()=>Dh,where:()=>pa,zeros:()=>Wb,zeros_like:()=>aA});var U=class r{constructor(t,e=0){this.re=t,this.im=e}abs(){return Math.sqrt(this.re*this.re+this.im*this.im)}angle(){return Math.atan2(this.im,this.re)}conj(){return new r(this.re,-this.im)}add(t){return typeof t=="number"?new r(this.re+t,this.im):new r(this.re+t.re,this.im+t.im)}sub(t){return typeof t=="number"?new r(this.re-t,this.im):new r(this.re-t.re,this.im-t.im)}mul(t){return typeof t=="number"?new r(this.re*t,this.im*t):new r(this.re*t.re-this.im*t.im,this.re*t.im+this.im*t.re)}div(t){if(typeof t=="number")return new r(this.re/t,this.im/t);let e=t.re*t.re+t.im*t.im;return new r((this.re*t.re+this.im*t.im)/e,(this.im*t.re-this.re*t.im)/e)}neg(){return new r(-this.re,-this.im)}equals(t){return this.re===t.re&&this.im===t.im}toString(){return this.im===0?`(${this.re}+0j)`:this.im<0?`(${this.re}${this.im}j)`:`(${this.re}+${this.im}j)`}static from(t){if(t instanceof r)return t;if(typeof t=="number")return new r(t,0);if(Array.isArray(t))return new r(t[0]??0,t[1]??0);if(typeof t=="object"&&t!==null&&"re"in t)return new r(t.re??0,t.im??0);throw new Error(`Cannot convert ${t} to Complex`)}static isComplex(t){return t instanceof r||typeof t=="object"&&t!==null&&"re"in t&&"im"in t}};function Al(r){return r instanceof U||typeof r=="object"&&r!==null&&"re"in r}function Do(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 xo(r,t){let{start:e,stop:n}=r,{step:o,isIndex:a}=r;if(a){if(e===null)throw new Error("Index cannot be null");let u=e<0?t+e:e;if(u<0||u>=t)throw new Error(`Index ${e} is out of bounds for size ${t}`);return{start:u,stop:u+1,step:1,isIndex:!0}}return o>0?(e===null&&(e=0),n===null&&(n=t)):(e===null&&(e=t-1),n===null&&(n=-t-1)),e<0&&(e=t+e),n<0&&(n=t+n),e=Math.max(0,Math.min(e,t)),n=Math.max(-1,Math.min(n,t)),{start:e,stop:n,step:o,isIndex:!1}}var tr="float64";function K(r){switch(r){case"float64":return Float64Array;case"float32":return Float32Array;case"complex128":return Float64Array;case"complex64":return Float32Array;case"int64":return BigInt64Array;case"int32":return Int32Array;case"int16":return Int16Array;case"int8":return Int8Array;case"uint64":return BigUint64Array;case"uint32":return Uint32Array;case"uint16":return Uint16Array;case"uint8":return Uint8Array;case"bool":return Uint8Array;default:throw new Error(`Unknown dtype: ${r}`)}}function Gr(r){switch(r){case"complex128":return 16;case"float64":case"int64":case"uint64":case"complex64":return 8;case"float32":case"int32":case"uint32":return 4;case"int16":case"uint16":return 2;case"int8":case"uint8":case"bool":return 1;default:throw new Error(`Unknown dtype: ${r}`)}}function Ur(r){return r==="int64"||r==="int32"||r==="int16"||r==="int8"||r==="uint64"||r==="uint32"||r==="uint16"||r==="uint8"}function Or(r){return r==="float64"||r==="float32"}function E(r){return r==="int64"||r==="uint64"}function B(r){return r==="complex64"||r==="complex128"}function L(r,t,e){if(B(r)){let n=e?` ${e}`:"";throw new TypeError(`ufunc '${t}' not supported for complex dtype '${r}'.${n}`)}}function Mt(r){if(r==="complex128")return"float64";if(r==="complex64")return"float32";throw new Error(`${r} is not a complex dtype`)}function or(r,t){if(r===t)return r;if(r==="bool")return t;if(t==="bool")return r;if(B(r)||B(t)){if(B(r)&&B(t))return r==="complex128"||t==="complex128"?"complex128":"complex64";let c=B(r)?r:t,l=B(r)?t:r;return c==="complex128"||l==="float64"||l==="int64"||l==="uint64"||l==="int32"||l==="uint32"?"complex128":"complex64"}if(Or(r)||Or(t)){if(r==="float64"||t==="float64")return"float64";if(r==="float32"){let c=t;return c==="int32"||c==="int64"||c==="uint32"||c==="uint64"?"float64":"float32"}if(t==="float32"){let c=r;return c==="int32"||c==="int64"||c==="uint32"||c==="uint64"?"float64":"float32"}return"float32"}let e=r.startsWith("int"),n=t.startsWith("int"),o=r.startsWith("uint"),a=t.startsWith("uint"),u=c=>c.includes("64")?64:c.includes("32")?32:c.includes("16")?16:c.includes("8")?8:0,i=u(r),s=u(t);if(r==="int64"&&t==="uint64"||r==="uint64"&&t==="int64")return"float64";if(e&&a&&i===s){if(i===8)return"int16";if(i===16)return"int32";if(i===32)return"int64"}if(o&&n&&i===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(i,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?i>s?r:s===8?"int16":s===16?"int32":s===32?"int64":"float64":o&&n?s>i?t:i===8?"int16":i===16?"int32":i===32?"int64":"float64":"float64"}var S=class r{constructor(t,e,n,o,a){this._isCContiguous=-1;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(){if(this._isCContiguous!==-1)return this._isCContiguous===1;let t=this._shape,e=this._strides,n=t.length,o;if(n===0)o=!0;else if(n===1)o=e[0]===1;else{o=!0;let a=1;for(let u=n-1;u>=0;u--){if(e[u]!==a){o=!1;break}a*=t[u]}}return this._isCContiguous=o?1:0,o}get isFContiguous(){let t=this._shape,e=this._strides,n=t.length;if(n===0)return!0;if(n===1)return e[0]===1;let o=1;for(let a=0;a<n;a++){if(e[a]!==o)return!1;o*=t[a]}return!0}iget(t){let e=this._shape,n=this._strides,o=e.length,a=B(this._dtype),u;if(o===0)u=this._offset;else{let i=t;u=this._offset;for(let s=0;s<o;s++){let c=1;for(let f=s+1;f<o;f++)c*=e[f];let l=Math.floor(i/c);i=i%c,u+=l*n[s]}}if(a){let i=u*2,s=this._data[i],c=this._data[i+1];return new U(s,c)}return this._data[u]}iset(t,e){let n=this._shape,o=this._strides,a=n.length,u=B(this._dtype),i;if(a===0)i=this._offset;else{let s=t;i=this._offset;for(let c=0;c<a;c++){let l=1;for(let m=c+1;m<a;m++)l*=n[m];let f=Math.floor(s/l);s=s%l,i+=f*o[c]}}if(u){let s=i*2,c,l;e instanceof U?(c=e.re,l=e.im):typeof e=="object"&&e!==null&&"re"in e?(c=e.re,l=e.im??0):(c=Number(e),l=0),this._data[s]=c,this._data[s+1]=l}else 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];if(B(this._dtype)){let o=n*2,a=this._data[o],u=this._data[o+1];return new U(a,u)}return this._data[n]}set(t,e){let n=this._strides,o=this._offset;for(let a=0;a<t.length;a++)o+=t[a]*n[a];if(B(this._dtype)){let a=o*2,u,i;e instanceof U?(u=e.re,i=e.im):typeof e=="object"&&e!==null&&"re"in e?(u=e.re,i=e.im??0):(u=Number(e),i=0),this._data[a]=u,this._data[a+1]=i}else this._data[o]=e}copy(){let t=Array.from(this._shape),e=this._dtype,n=this.size,o=B(e),a=K(e);if(!a)throw new Error(`Cannot copy array with dtype ${e}`);let u=o?n*2:n,i=new a(u);if(this.isCContiguous&&this._offset===0)if(E(e)){let s=this._data,c=i;for(let l=0;l<u;l++)c[l]=s[l]}else i.set(this._data.subarray(0,u));else if(E(e)){let s=i;for(let c=0;c<n;c++)s[c]=this.iget(c)}else if(o){let s=i;for(let c=0;c<n;c++){let l=this.iget(c);s[c*2]=l.re,s[c*2+1]=l.im}}else for(let s=0;s<n;s++)i[s]=this.iget(s);return new r(i,t,r._computeStrides(t),0,e)}static fromData(t,e,n,o,a){let u=o??r._computeStrides(e),i=a??0;return new r(t,e,u,i,n)}static zeros(t,e=tr){let n=t.reduce((s,c)=>s*c,1),o=B(e),a=K(e);if(!a)throw new Error(`Cannot create array with dtype ${e}`);let u=o?n*2:n,i=new a(u);return new r(i,t,r._computeStrides(t),0,e)}static ones(t,e=tr){let n=t.reduce((s,c)=>s*c,1),o=B(e),a=K(e);if(!a)throw new Error(`Cannot create array with dtype ${e}`);let u=o?n*2:n,i=new a(u);if(E(e))i.fill(BigInt(1));else if(o){let s=i;for(let c=0;c<n;c++)s[c*2]=1,s[c*2+1]=0}else i.fill(1);return new r(i,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 lr(r){let t=new Array(r.length),e=1;for(let n=r.length-1;n>=0;n--)t[n]=e,e*=r[n];return t}var P=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 itemsize(){return Gr(this._storage.dtype)}get nbytes(){return this.size*this.itemsize}fill(t){let e=this._storage.dtype,n=this.size;if(E(e)){let o=typeof t=="bigint"?t:BigInt(Math.round(Number(t)));for(let a=0;a<n;a++)this._storage.iset(a,o)}else if(e==="bool"){let o=t?1:0;for(let a=0;a<n;a++)this._storage.iset(a,o)}else{let o=Number(t);for(let a=0;a<n;a++)this._storage.iset(a,o)}}*[Symbol.iterator](){if(this.ndim===0)yield this._storage.iget(0);else if(this.ndim===1)for(let t=0;t<this.shape[0];t++)yield this._storage.iget(t);else for(let t=0;t<this.shape[0];t++)yield this.slice(String(t))}get(t){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let e=t.map((n,o)=>{let a=n;if(a<0&&(a=this.shape[o]+a),a<0||a>=this.shape[o])throw new Error(`Index ${n} is out of bounds for axis ${o} with size ${this.shape[o]}`);return a});return this._storage.get(...e)}set(t,e){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let n=t.map((a,u)=>{let i=a;if(i<0&&(i=this.shape[u]+i),i<0||i>=this.shape[u])throw new Error(`Index ${a} is out of bounds for axis ${u} with size ${this.shape[u]}`);return i}),o=this.dtype;if(B(o))this._storage.set(n,e);else if(E(o)){let a=e instanceof U?e.re:Number(e),u=typeof e=="bigint"?e:BigInt(Math.round(a));this._storage.set(n,u)}else if(o==="bool"){let u=(e instanceof U?e.re:Number(e))?1:0;this._storage.set(n,u)}else{let a=e instanceof U?e.re:Number(e);this._storage.set(n,a)}}iget(t){return this._storage.iget(t)}iset(t,e){this._storage.iset(t,e)}copy(){return new r(this._storage.copy())}astype(t,e=!0){let n=this.dtype;if(n===t&&!e)return this;if(n===t&&e)return this.copy();let o=Array.from(this.shape),a=this.size,u=K(t);if(!u)throw new Error(`Cannot convert to dtype ${t}`);let i=new u(a),s=this.data;if(E(n)&&!E(t)){let l=s;if(t==="bool")for(let f=0;f<a;f++)i[f]=l[f]!==BigInt(0)?1:0;else for(let f=0;f<a;f++)i[f]=Number(l[f])}else if(!E(n)&&E(t)){let l=s;for(let f=0;f<a;f++)i[f]=BigInt(Math.round(Number(l[f])))}else if(t==="bool"){let l=s;for(let f=0;f<a;f++)i[f]=l[f]!==0?1:0}else if(n==="bool"&&!E(t)){let l=s;for(let f=0;f<a;f++)i[f]=l[f]}else if(!E(n)&&!E(t)){let l=s;for(let f=0;f<a;f++)i[f]=l[f]}else{let l=s;for(let f=0;f<a;f++)i[f]=l[f]}let c=S.fromData(i,o,t);return new r(c)}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=Do(s);return xo(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];if(a+=c.start*this._storage.strides[s],c.step===0)continue;let l=Math.max(0,Math.ceil((c.stop-c.start)/c.step));n.push(l),o.push(this._storage.strides[s]*c.step)}let u=S.fromData(this._storage.data,n,this._storage.dtype,o,a),i=this._base??this;return new r(u,i)}toString(){return`NDArray(shape=${JSON.stringify(this.shape)}, dtype=${this.dtype})`}toArray(){if(this.ndim===0)return this._storage.iget(0);let t=this.shape,e=t.length,n=(o,a)=>{if(a===e)return this._storage.get(...o);let u=[];for(let i=0;i<t[a];i++)o[a]=i,u.push(n(o,a+1));return u};return n(new Array(e),0)}tolist(){return this.toArray()}tobytes(){if(this._storage.isCContiguous){let n=this._storage.data,o=n.BYTES_PER_ELEMENT,a=this._storage.offset*o,u=this.size*o;return n.buffer.slice(a,a+u)}let e=this.copy()._storage.data;return e.buffer.slice(0,this.size*e.BYTES_PER_ELEMENT)}item(...t){if(t.length===0){if(this.size!==1)throw new Error("can only convert an array of size 1 to a Python scalar");return this._storage.iget(0)}if(t.length===1){let e=t[0];if(e<0||e>=this.size)throw new Error(`index ${e} is out of bounds for size ${this.size}`);return this._storage.iget(e)}return this.get(t)}};function z(r){return r instanceof P||r&&typeof r=="object"&&"storage"in r&&r.storage instanceof S?r.storage:r}function M(r,t){return P.fromStorage(r,t)}function Nr(r,t){let e=t.base??t;return P.fromStorage(r,e)}function $r(r){return r.map(t=>M(t))}function at(r,t){return r.map(e=>Nr(e,t))}function Co(r){return[M(r[0]),M(r[1])]}function Is(r){return new P(r)}function TN(r){return!!(r instanceof P||r&&typeof r=="object"&&"storage"in r&&r.storage instanceof S)}function wr(r,t=tr){let e=S.zeros(r,t);return new P(e)}function So(r,t=tr){let e=S.ones(r,t);return new P(e)}function wo(r,t=tr){return wr(r,t)}function Io(r,t,e){let n=e;n||(typeof t=="bigint"?n="int64":typeof t=="boolean"?n="bool":Number.isInteger(t)?n="int32":n=tr);let o=K(n);if(!o)throw new Error(`Cannot create full array with dtype ${n}`);let a=r.reduce((s,c)=>s*c,1),u=new o(a);if(E(n)){let s=typeof t=="bigint"?t:BigInt(Math.round(Number(t)));u.fill(s)}else n==="bool"?u.fill(t?1:0):u.fill(Number(t));let i=S.fromData(u,r,n);return new P(i)}function EN(r){let t=[],e=r;for(;Array.isArray(e);)t.push(e.length),e=e[0];return t}function gl(r){return typeof r=="bigint"?!0:Array.isArray(r)?r.some(t=>gl(t)):!1}function hl(r){return Al(r)?!0:Array.isArray(r)?r.some(t=>hl(t)):!1}function ON(r){let t=[];function e(n){Array.isArray(n)?n.forEach(o=>e(o)):t.push(n)}return e(r),t}function Q(r,t){if(r instanceof P)return!t||r.dtype===t?r.copy():r.astype(t);let e=gl(r),n=hl(r),o=EN(r),a=o.reduce((p,y)=>p*y,1),u=t;u||(n?u="complex128":e?u="int64":u=tr);let i=B(u),s=K(u);if(!s)throw new Error(`Cannot create array with dtype ${u}`);let c=i?a*2:a,l=new s(c),f=ON(r);if(E(u)){let p=l;for(let y=0;y<a;y++){let d=f[y];p[y]=typeof d=="bigint"?d:BigInt(Math.round(Number(d)))}}else if(u==="bool"){let p=l;for(let y=0;y<a;y++)p[y]=f[y]?1:0}else if(i){let p=l;for(let y=0;y<a;y++){let d=f[y],b,A;d instanceof U?(b=d.re,A=d.im):typeof d=="object"&&d!==null&&"re"in d?(b=d.re,A=d.im??0):(b=Number(d),A=0),p[y*2]=b,p[y*2+1]=A}}else{let p=l;for(let y=0;y<a;y++){let d=f[y];p[y]=Number(d)}}let m=S.fromData(l,o,u);return new P(m)}function zs(r,t,e=1,n=tr){let o=r,a=t;if(t===void 0&&(o=0,a=r),a===void 0)throw new Error("stop is required");let u=Math.max(0,Math.ceil((a-o)/e)),i=K(n);if(!i)throw new Error(`Cannot create arange array with dtype ${n}`);let s=new i(u);if(E(n))for(let l=0;l<u;l++)s[l]=BigInt(Math.round(o+l*e));else if(n==="bool")for(let l=0;l<u;l++)s[l]=o+l*e!==0?1:0;else for(let l=0;l<u;l++)s[l]=o+l*e;let c=S.fromData(s,[u],n);return new P(c)}function _s(r,t,e=50,n=tr){if(e<0)throw new Error("num must be non-negative");if(e===0)return Q([],n);if(e===1)return Q([r],n);let o=K(n);if(!o)throw new Error(`Cannot create linspace array with dtype ${n}`);let a=new o(e),u=(t-r)/(e-1);if(E(n))for(let s=0;s<e;s++)a[s]=BigInt(Math.round(r+s*u));else if(n==="bool")for(let s=0;s<e;s++)a[s]=r+s*u!==0?1:0;else for(let s=0;s<e;s++)a[s]=r+s*u;let i=S.fromData(a,[e],n);return new P(i)}function vs(r,t,e=50,n=10,o=tr){if(e<0)throw new Error("num must be non-negative");if(e===0)return Q([],o);if(e===1)return Q([Math.pow(n,r)],o);let a=K(o);if(!a)throw new Error(`Cannot create logspace array with dtype ${o}`);let u=new a(e),i=(t-r)/(e-1);if(E(o))for(let c=0;c<e;c++){let l=r+c*i;u[c]=BigInt(Math.round(Math.pow(n,l)))}else if(o==="bool")for(let c=0;c<e;c++){let l=r+c*i;u[c]=Math.pow(n,l)!==0?1:0}else for(let c=0;c<e;c++){let l=r+c*i;u[c]=Math.pow(n,l)}let s=S.fromData(u,[e],o);return new P(s)}function Ms(r,t,e=50,n=tr){if(e<0)throw new Error("num must be non-negative");if(r===0||t===0)throw new Error("Geometric sequence cannot include zero");if(e===0)return Q([],n);if(e===1)return Q([r],n);let o=Math.sign(r),a=Math.sign(t);if(o!==a)throw new Error("Geometric sequence cannot contain both positive and negative values");let u=K(n);if(!u)throw new Error(`Cannot create geomspace array with dtype ${n}`);let i=new u(e),s=Math.log(Math.abs(r)),l=(Math.log(Math.abs(t))-s)/(e-1);if(E(n))for(let m=0;m<e;m++){let p=o*Math.exp(s+m*l);i[m]=BigInt(Math.round(p))}else if(n==="bool")for(let m=0;m<e;m++){let p=o*Math.exp(s+m*l);i[m]=p!==0?1:0}else for(let m=0;m<e;m++){let p=o*Math.exp(s+m*l);i[m]=p}let f=S.fromData(i,[e],n);return new P(f)}function zo(r,t,e=0,n=tr){let o=t??r,a=wr([r,o],n),u=a.data;if(E(n)){let i=u;for(let s=0;s<r;s++){let c=s+e;c>=0&&c<o&&(i[s*o+c]=BigInt(1))}}else{let i=u;for(let s=0;s<r;s++){let c=s+e;c>=0&&c<o&&(i[s*o+c]=1)}}return a}function Fs(r,t=tr){return zo(r,r,0,t)}function Jr(r,t){return TN(r)?!t||r.dtype===t?r:r.astype(t):Q(r,t)}function Bs(r,t){return wr(Array.from(r.shape),t??r.dtype)}function Ts(r,t){return So(Array.from(r.shape),t??r.dtype)}function Es(r,t){return wo(Array.from(r.shape),t??r.dtype)}function Os(r,t,e){return Io(Array.from(r.shape),t,e??r.dtype)}function Us(r){return r.copy()}function $s(r,t){return Jr(r,t)}function ks(r,t){return Jr(r,t).copy()}function Rs(r,t){return Jr(r,t).copy()}function qs(r,t){let e=Jr(r,t),n=e.data;for(let o=0;o<n.length;o++){let a=n[o];if(!Number.isFinite(a))throw new Error("array must not contain infs or NaNs")}return e}function Vs(r,t,e){let n=r;return t&&t!==r.dtype&&(n=n.astype(t)),n}function UN(r){let t=r.data,e=S.fromData(t.slice(),[t.length],r.dtype);return Is(e)}function _o(r,t=0){let e=r.shape,n=r.data,o=r.dtype;if(e.length===1){let a=e[0],u=a+Math.abs(t),i=wr([u,u],o),s=i.data;for(let c=0;c<a;c++){let l=t>=0?c:c-t,f=t>=0?c+t:c;l>=0&&l<u&&f>=0&&f<u&&(s[l*u+f]=n[c])}return i}else if(e.length===2){let a=e[0],u=e[1],i=Math.min(t>=0?Math.min(a,u-t):Math.min(a+t,u),Math.max(0,t>=0?u-t:a+t));if(i<=0)return Q([],o);let s=[];for(let c=0;c<i;c++){let l=t>=0?c:c-t,f=t>=0?c+t:c;l>=0&&l<a&&f>=0&&f<u&&s.push(n[l*u+f])}return Q(s,o)}throw new Error("Input must be 1-D or 2-D")}function Ps(r,t=0){let e=UN(r);return _o(e,t)}function js(r,t,e=0,n=tr){let o=t??r,a=wr([r,o],n),u=a.data;for(let i=0;i<r;i++)for(let s=0;s<=Math.min(i+e,o-1);s++)s>=0&&(u[i*o+s]=1);return a}function Ls(r,t=0){let e=r.shape;if(e.length<2)throw new Error("Input must be at least 2-D");let n=r.copy(),o=n.data,a=e[e.length-2],u=e[e.length-1],i=e.slice(0,-2).reduce((c,l)=>c*l,1),s=a*u;for(let c=0;c<i;c++){let l=c*s;for(let f=0;f<a;f++)for(let m=f+t+1;m<u;m++)o[l+f*u+m]=0}return n}function Gs(r,t=0){let e=r.shape;if(e.length<2)throw new Error("Input must be at least 2-D");let n=r.copy(),o=n.data,a=e[e.length-2],u=e[e.length-1],i=e.slice(0,-2).reduce((c,l)=>c*l,1),s=a*u;for(let c=0;c<i;c++){let l=c*s;for(let f=0;f<a;f++)for(let m=0;m<Math.min(f+t,u);m++)o[l+f*u+m]=0}return n}function Ys(r,t,e=!1){let n=r.size,o=t??n,a=r.data,u=wr([n,o],r.dtype),i=u.data;for(let s=0;s<n;s++){let c=a[s];for(let l=0;l<o;l++){let f=e?l:o-1-l;i[s*o+l]=Math.pow(c,f)}}return u}function Ws(r,t=tr,e=-1,n=0){let o=K(t);if(!o)throw new Error(`Unsupported dtype: ${t}`);let a;if(r instanceof ArrayBuffer){let i=n,s=e<0?(r.byteLength-i)/o.BYTES_PER_ELEMENT:e;a=new o(r,i,s)}else{let i=n,s=e<0?r.length:n+e,c=Array.from(r.slice(i,s));a=new o(c.length);for(let l=0;l<c.length;l++)a[l]=c[l]}let u=S.fromData(a,[a.length],t);return Is(u)}function Zs(r,t,e=tr){let n=t.reduce((c,l)=>c*l,1),o=K(e);if(!o)throw new Error(`Unsupported dtype: ${e}`);let a=new o(n),u=[],i=1;for(let c=t.length-1;c>=0;c--)u.unshift(i),i*=t[c];for(let c=0;c<n;c++){let l=[],f=c;for(let m=0;m<t.length;m++)l.push(Math.floor(f/u[m])),f=f%u[m];a[c]=r(...l)}let s=S.fromData(a,t,e);return Is(s)}function Js(r,t=tr,e=-1){let n=[],o=0;for(let a of r){if(e>=0&&o>=e)break;n.push(a),o++}return Q(n,t)}function Xs(r,t=tr,e=-1,n){let o=n??/\s+/,u=r.split(o).filter(s=>s.trim()!=="").map(s=>parseFloat(s.trim())),i=e>=0?u.slice(0,e):u;return Q(i,t)}function Ks(r,t=tr,e=-1,n=""){throw new Error("fromfile requires Node.js file system access")}function Yr(r,t){let e=r.length,n=t.length,o=Math.max(e,n),a=new Array(o);for(let u=0;u<o;u++){let i=u<o-e?1:r[u-(o-e)],s=u<o-n?1:t[u-(o-n)];if(i===s)a[u]=i;else if(i===1)a[u]=s;else if(s===1)a[u]=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 $N(r,t,e){let n=r.length,o=e.length,a=new Array(o).fill(0);for(let u=0;u<n;u++){let i=o-n+u,s=r[u],c=e[i];if(s===c)a[i]=t[u];else if(s===1)a[i]=0;else throw new Error("Invalid broadcast")}return a}function vo(r,t){let e=$N(r.shape,r.strides,t);return S.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function sr(r,t,e,n){let o=or(r.dtype,t.dtype),a=r.shape,u=t.shape;if(a.length===u.length&&a.every((y,d)=>y===u[d])&&r.isCContiguous&&t.isCContiguous&&!E(r.dtype)&&!E(t.dtype)&&!E(o)){let y=r.size,d=S.zeros(Array.from(a),o),b=d.data,A=r.data,g=t.data,h=r.offset,N=t.offset;if(h===0&&N===0)for(let D=0;D<y;D++)b[D]=e(A[D],g[D]);else for(let D=0;D<y;D++)b[D]=e(A[h+D],g[N+D]);return d}let s=Yr(r.shape,t.shape),c=vo(r,s),l=vo(t,s),f=S.zeros(s,o),m=f.data,p=f.size;if(E(o)){let y=m;for(let d=0;d<p;d++){let b=c.iget(d),A=l.iget(d),g=b instanceof U?b.re:b,h=A instanceof U?A.re:A,N=typeof g=="bigint"?g:BigInt(Math.round(g)),D=typeof h=="bigint"?h:BigInt(Math.round(h));n==="add"?y[d]=N+D:n==="subtract"?y[d]=N-D:n==="multiply"?y[d]=N*D:n==="divide"?y[d]=N/D:y[d]=BigInt(Math.round(e(Number(N),Number(D))))}}else{let y=E(r.dtype)||E(t.dtype);for(let d=0;d<p;d++){let b=c.iget(d),A=l.iget(d),g=Number(b),h=Number(A);m[d]=e(g,h)}}return f}function Ir(r,t,e){let n=Yr(r.shape,t.shape),o=vo(r,n),a=vo(t,n),u=n.reduce((c,l)=>c*l,1),i=new Uint8Array(u),s=E(r.dtype)||E(t.dtype);for(let c=0;c<u;c++){let l=o.iget(c),f=a.iget(c),m=Number(l),p=Number(f);i[c]=e(m,p)?1:0}return S.fromData(i,n,"bool")}function ir(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,s=S.zeros(o,i),c=s.data,l=r.data,f=r.offset,m=r.isCContiguous;if(E(n))if(E(i)){let p=c;if(m)for(let y=0;y<a;y++){let d=Number(l[f+y]);p[y]=BigInt(Math.round(t(d)))}else for(let y=0;y<a;y++)p[y]=BigInt(Math.round(t(Number(r.iget(y)))))}else if(m)for(let p=0;p<a;p++)c[p]=t(Number(l[f+p]));else for(let p=0;p<a;p++)c[p]=t(Number(r.iget(p)));else if(m)if(f===0)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[f+p]));else for(let p=0;p<a;p++)c[p]=t(Number(r.iget(p)));return s}function Qs(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function Dr(r,t){return[r[t*2],r[t*2+1]]}function br(r,t,e,n){r[t*2]=e,r[t*2+1]=n}function Cl(r,t){if(typeof t=="number")return Nl(r,t);if(t.size===1&&!B(t.dtype)&&r.dtype===t.dtype){let e=Number(t.iget(0));return Nl(r,e)}return Qs(r,t)?kN(r,t):sr(r,t,(e,n)=>e+n,"add")}function kN(r,t){let e=or(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,i=n.data,s=r.offset,c=t.offset;if(B(e)){let l=i,f=B(r.dtype),m=B(t.dtype);for(let p=0;p<o;p++){let[y,d]=f?Dr(a,s+p):[Number(a[s+p]),0],[b,A]=m?Dr(u,c+p):[Number(u[c+p]),0];br(l,p,y+b,d+A)}return n}if(E(e)){let l=i;if(!E(r.dtype)||!E(t.dtype))for(let m=0;m<o;m++){let p=typeof a[s+m]=="bigint"?a[s+m]:BigInt(Math.round(Number(a[s+m]))),y=typeof u[c+m]=="bigint"?u[c+m]:BigInt(Math.round(Number(u[c+m])));l[m]=p+y}else{let m=a,p=u;for(let y=0;y<o;y++)l[y]=m[s+y]+p[c+y]}}else if(E(r.dtype)||E(t.dtype))for(let f=0;f<o;f++){let m=typeof a[s+f]=="bigint"?Number(a[s+f]):a[s+f],p=typeof u[c+f]=="bigint"?Number(u[c+f]):u[c+f];i[f]=m+p}else if(s===0&&c===0)for(let f=0;f<o;f++)i[f]=a[f]+u[f];else for(let f=0;f<o;f++)i[f]=a[s+f]+u[c+f];return n}function Sl(r,t){if(typeof t=="number")return Dl(r,t);if(t.size===1&&!B(t.dtype)&&r.dtype===t.dtype){let e=Number(t.iget(0));return Dl(r,e)}return Qs(r,t)?RN(r,t):sr(r,t,(e,n)=>e-n,"subtract")}function RN(r,t){let e=or(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,i=n.data,s=r.offset,c=t.offset;if(B(e)){let l=i,f=B(r.dtype),m=B(t.dtype);for(let p=0;p<o;p++){let[y,d]=f?Dr(a,s+p):[Number(a[s+p]),0],[b,A]=m?Dr(u,c+p):[Number(u[c+p]),0];br(l,p,y-b,d-A)}return n}if(E(e)){let l=i;if(!E(r.dtype)||!E(t.dtype))for(let m=0;m<o;m++){let p=typeof a[s+m]=="bigint"?a[s+m]:BigInt(Math.round(Number(a[s+m]))),y=typeof u[c+m]=="bigint"?u[c+m]:BigInt(Math.round(Number(u[c+m])));l[m]=p-y}else{let m=a,p=u;for(let y=0;y<o;y++)l[y]=m[s+y]-p[c+y]}}else if(E(r.dtype)||E(t.dtype))for(let f=0;f<o;f++){let m=typeof a[s+f]=="bigint"?Number(a[s+f]):a[s+f],p=typeof u[c+f]=="bigint"?Number(u[c+f]):u[c+f];i[f]=m-p}else if(s===0&&c===0)for(let f=0;f<o;f++)i[f]=a[f]-u[f];else for(let f=0;f<o;f++)i[f]=a[s+f]-u[c+f];return n}function wl(r,t){if(typeof t=="number")return xl(r,t);if(t.size===1&&!B(t.dtype)&&r.dtype===t.dtype){let e=Number(t.iget(0));return xl(r,e)}return Qs(r,t)?qN(r,t):sr(r,t,(e,n)=>e*n,"multiply")}function qN(r,t){let e=or(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,i=n.data,s=r.offset,c=t.offset;if(B(e)){let l=i,f=B(r.dtype),m=B(t.dtype);for(let p=0;p<o;p++){let[y,d]=f?Dr(a,s+p):[Number(a[s+p]),0],[b,A]=m?Dr(u,c+p):[Number(u[c+p]),0],g=y*b-d*A,h=y*A+d*b;br(l,p,g,h)}return n}if(E(e)){let l=i;if(!E(r.dtype)||!E(t.dtype))for(let m=0;m<o;m++){let p=typeof a[s+m]=="bigint"?a[s+m]:BigInt(Math.round(Number(a[s+m]))),y=typeof u[c+m]=="bigint"?u[c+m]:BigInt(Math.round(Number(u[c+m])));l[m]=p*y}else{let m=a,p=u;for(let y=0;y<o;y++)l[y]=m[s+y]*p[c+y]}}else if(E(r.dtype)||E(t.dtype))for(let f=0;f<o;f++){let m=typeof a[s+f]=="bigint"?Number(a[s+f]):a[s+f],p=typeof u[c+f]=="bigint"?Number(u[c+f]):u[c+f];i[f]=m*p}else if(s===0&&c===0)for(let f=0;f<o;f++)i[f]=a[f]*u[f];else for(let f=0;f<o;f++)i[f]=a[s+f]*u[c+f];return n}function Il(r,t){if(typeof t=="number")return VN(r,t);let e=B(r.dtype),n=B(t.dtype);if(e||n){let l=or(r.dtype,t.dtype),f=S.zeros(Array.from(r.shape),l),m=f.data,p=r.size,y=r.data,d=t.data,b=r.offset,A=t.offset;for(let g=0;g<p;g++){let[h,N]=e?Dr(y,b+g):[Number(y[b+g]),0],[D,x]=n?Dr(d,A+g):[Number(d[A+g]),0],C=D*D+x*x,w=(h*D+N*x)/C,_=(N*D-h*x)/C;br(m,g,w,_)}return f}let o=r.dtype==="float64",a=t.dtype==="float64",u=r.dtype==="float32",i=t.dtype==="float32";if(o||a){let l=o?r:st(r,"float64"),f=a?t:st(t,"float64");return sr(l,f,(m,p)=>m/p,"divide")}if(u||i){let l=u?r:st(r,"float32"),f=i?t:st(t,"float32");return sr(l,f,(m,p)=>m/p,"divide")}let s=st(r,"float64"),c=st(t,"float64");return sr(s,c,(l,f)=>l/f,"divide")}function st(r,t){let e=S.zeros(Array.from(r.shape),t),n=r.size,o=e.data;if(r.isCContiguous){let a=r.data,u=r.offset;for(let i=0;i<n;i++)o[i]=Number(a[u+i])}else for(let a=0;a<n;a++)o[a]=Number(r.iget(a));return e}function Nl(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=r.offset,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(B(e)){let l=o,f=c;if(i)for(let m=0;m<a;m++){let[p,y]=Dr(l,u+m);br(f,m,p+t,y)}else for(let m=0;m<a;m++){let p=r.iget(m),y=p.re??Number(p),d=p.im??0;br(f,m,y+t,d)}}else if(E(e)){let l=c,f=BigInt(Math.round(t));if(i){let m=o;for(let p=0;p<a;p++)l[p]=m[u+p]+f}else for(let m=0;m<a;m++)l[m]=r.iget(m)+f}else if(i)if(u===0)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[u+l])+t;else for(let l=0;l<a;l++)c[l]=Number(r.iget(l))+t;return s}function Dl(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=r.offset,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(B(e)){let l=o,f=c;if(i)for(let m=0;m<a;m++){let[p,y]=Dr(l,u+m);br(f,m,p-t,y)}else for(let m=0;m<a;m++){let p=r.iget(m),y=p.re??Number(p),d=p.im??0;br(f,m,y-t,d)}}else if(E(e)){let l=c,f=BigInt(Math.round(t));if(i){let m=o;for(let p=0;p<a;p++)l[p]=m[u+p]-f}else for(let m=0;m<a;m++)l[m]=r.iget(m)-f}else if(i)for(let l=0;l<a;l++)c[l]=Number(o[u+l])-t;else for(let l=0;l<a;l++)c[l]=Number(r.iget(l))-t;return s}function xl(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=r.offset,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(B(e)){let l=o,f=c;if(i)for(let m=0;m<a;m++){let[p,y]=Dr(l,u+m);br(f,m,p*t,y*t)}else for(let m=0;m<a;m++){let p=r.iget(m),y=p.re??Number(p),d=p.im??0;br(f,m,y*t,d*t)}}else if(E(e)){let l=c,f=BigInt(Math.round(t));if(i){let m=o;for(let p=0;p<a;p++)l[p]=m[u+p]*f}else for(let m=0;m<a;m++)l[m]=r.iget(m)*f}else if(i)if(u===0)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[u+l])*t;else for(let l=0;l<a;l++)c[l]=Number(r.iget(l))*t;return s}function VN(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=r.offset,i=r.isCContiguous;if(B(e)){let m=S.zeros(n,e),p=m.data;if(i){let y=o;for(let d=0;d<a;d++){let[b,A]=Dr(y,u+d);br(p,d,b/t,A/t)}}else for(let y=0;y<a;y++){let d=r.iget(y),b=d.re??Number(d),A=d.im??0;br(p,y,b/t,A/t)}return m}let c=e!=="float32"&&e!=="float64"?"float64":e,l=S.zeros(n,c),f=l.data;if(i)for(let m=0;m<a;m++)f[m]=Number(o[u+m])/t;else for(let m=0;m<a;m++)f[m]=Number(r.iget(m))/t;return l}function zl(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=r.offset,u=r.isCContiguous;if(B(t)){let c=Mt(t),l=S.zeros(e,c),f=l.data;if(u){let m=n;for(let p=0;p<o;p++){let y=m[(a+p)*2],d=m[(a+p)*2+1];f[p]=Math.sqrt(y*y+d*d)}}else for(let m=0;m<o;m++){let p=r.iget(m),y=p.re??Number(p),d=p.im??0;f[m]=Math.sqrt(y*y+d*d)}return l}let i=S.zeros(e,t),s=i.data;if(E(t)){let c=s;if(u){let l=n;for(let f=0;f<o;f++){let m=l[a+f];c[f]=m<0n?-m:m}}else for(let l=0;l<o;l++){let f=r.iget(l);c[l]=f<0n?-f:f}}else if(u)if(a===0)for(let c=0;c<o;c++)s[c]=Math.abs(Number(n[c]));else for(let c=0;c<o;c++)s[c]=Math.abs(Number(n[a+c]));else for(let c=0;c<o;c++)s[c]=Math.abs(Number(r.iget(c)));return i}function _l(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=r.offset,u=r.isCContiguous,i=S.zeros(e,t),s=i.data;if(B(t)){let c=s;if(u){let l=n;for(let f=0;f<o;f++){let[m,p]=Dr(l,a+f);br(c,f,-m,-p)}}else for(let l=0;l<o;l++){let f=r.iget(l),m=f.re??Number(f),p=f.im??0;br(c,l,-m,-p)}}else if(E(t)){let c=s;if(u){let l=n;for(let f=0;f<o;f++)c[f]=-l[a+f]}else for(let l=0;l<o;l++)c[l]=-r.iget(l)}else if(u)if(a===0)for(let c=0;c<o;c++)s[c]=-Number(n[c]);else for(let c=0;c<o;c++)s[c]=-Number(n[a+c]);else for(let c=0;c<o;c++)s[c]=-Number(r.iget(c));return i}function vl(r){L(r.dtype,"sign","Sign is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=r.offset,u=r.isCContiguous,i=S.zeros(e,t),s=i.data;if(E(t)){let c=s;if(u){let l=n;for(let f=0;f<o;f++){let m=l[a+f];c[f]=m>0n?1n:m<0n?-1n:0n}}else for(let l=0;l<o;l++){let f=r.iget(l);c[l]=f>0n?1n:f<0n?-1n:0n}}else if(u)for(let c=0;c<o;c++){let l=Number(n[a+c]);s[c]=l>0?1:l<0?-1:0}else for(let c=0;c<o;c++){let l=Number(r.iget(c));s[c]=l>0?1:l<0?-1:0}return i}function Mo(r,t){return L(r.dtype,"mod","Modulo is not defined for complex numbers."),typeof t!="number"&&L(t.dtype,"mod","Modulo is not defined for complex numbers."),typeof t=="number"?PN(r,t):sr(r,t,(e,n)=>(e%n+n)%n,"mod")}function PN(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=r.offset,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(E(e)){let l=c,f=BigInt(Math.round(t));if(i){let m=o;for(let p=0;p<a;p++){let y=m[u+p];l[p]=(y%f+f)%f}}else for(let m=0;m<a;m++){let p=r.iget(m);l[m]=(p%f+f)%f}}else if(i)for(let l=0;l<a;l++){let f=Number(o[u+l]);c[l]=(f%t+t)%t}else for(let l=0;l<a;l++){let f=Number(r.iget(l));c[l]=(f%t+t)%t}return s}function Hs(r,t){return L(r.dtype,"floor_divide","Floor division is not defined for complex numbers."),typeof t!="number"&&L(t.dtype,"floor_divide","Floor division is not defined for complex numbers."),typeof t=="number"?jN(r,t):sr(r,t,(e,n)=>Math.floor(e/n),"floor_divide")}function jN(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=r.offset,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(E(e)){let l=c,f=BigInt(Math.round(t));if(i){let m=o;for(let p=0;p<a;p++)l[p]=m[u+p]/f}else for(let m=0;m<a;m++)l[m]=r.iget(m)/f}else if(i)for(let l=0;l<a;l++)c[l]=Math.floor(Number(o[u+l])/t);else for(let l=0;l<a;l++)c[l]=Math.floor(Number(r.iget(l))/t);return s}function Ml(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=r.offset,u=r.isCContiguous,i=S.zeros(e,t),s=i.data;if(B(t)){let c=s;if(u){let l=n;for(let f=0;f<o;f++)c[f*2]=l[(a+f)*2],c[f*2+1]=l[(a+f)*2+1]}else for(let l=0;l<o;l++){let f=r.iget(l);c[l*2]=f.re??Number(f),c[l*2+1]=f.im??0}}else if(u)for(let c=0;c<o;c++)s[c]=n[a+c];else for(let c=0;c<o;c++)s[c]=r.iget(c);return i}function Fl(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=r.offset,u=r.isCContiguous;if(B(t)){let f=S.zeros(e,t),m=f.data;if(u){let p=n;for(let y=0;y<o;y++){let d=p[(a+y)*2],b=p[(a+y)*2+1],A=d*d+b*b;m[y*2]=d/A,m[y*2+1]=-b/A}}else for(let p=0;p<o;p++){let y=r.iget(p),d=y.re??Number(y),b=y.im??0,A=d*d+b*b;m[p*2]=d/A,m[p*2+1]=-b/A}return f}let s=t!=="float32"&&t!=="float64"?"float64":t,c=S.zeros(e,s),l=c.data;if(u)if(a===0)for(let f=0;f<o;f++)l[f]=1/Number(n[f]);else for(let f=0;f<o;f++)l[f]=1/Number(n[a+f]);else for(let f=0;f<o;f++)l[f]=1/Number(r.iget(f));return c}function Bl(r){let t=r.dtype;L(t,"cbrt","cbrt is not supported for complex numbers.");let e=Array.from(r.shape),n=r.data,o=r.size,a=r.offset,i=t!=="float32"&&t!=="float64"?"float64":t,s=S.zeros(e,i),c=s.data;if(r.isCContiguous)for(let l=0;l<o;l++)c[l]=Math.cbrt(Number(n[a+l]));else for(let l=0;l<o;l++)c[l]=Math.cbrt(Number(r.iget(l)));return s}function Tl(r){let t=r.dtype;L(t,"fabs","fabs is only for real numbers. Use absolute() for complex.");let e=Array.from(r.shape),n=r.data,o=r.size,a=r.offset,u=t==="float32"?"float32":"float64",i=S.zeros(e,u),s=i.data;if(r.isCContiguous)if(a===0)for(let c=0;c<o;c++)s[c]=Math.abs(Number(n[c]));else for(let c=0;c<o;c++)s[c]=Math.abs(Number(n[a+c]));else for(let c=0;c<o;c++)s[c]=Math.abs(Number(r.iget(c)));return i}function El(r,t){let e=Hs(r,t),n=Mo(r,t);return[e,n]}function Ol(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=S.zeros(e,t),u=a.data;if(B(t)){let i=n,s=u;for(let c=0;c<o;c++){let l=i[c*2],f=i[c*2+1];s[c*2]=l*l-f*f,s[c*2+1]=2*l*f}}else if(E(t)){let i=n,s=u;for(let c=0;c<o;c++)s[c]=i[c]*i[c]}else for(let i=0;i<o;i++){let s=Number(n[i]);u[i]=s*s}return a}function Ul(r,t){return Mo(r,t)}function $l(r,t){L(r.dtype,"heaviside","Heaviside step function is not defined for complex numbers."),typeof t!="number"&&L(t.dtype,"heaviside","Heaviside step function is not defined for complex numbers.");let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",u=S.zeros(n,a),i=u.data;if(typeof t=="number")for(let s=0;s<o;s++){let c=Number(r.iget(s));c<0?i[s]=0:c===0?i[s]=t:i[s]=1}else{let s=t.shape;if(n.every((c,l)=>c===s[l]))for(let c=0;c<o;c++){let l=Number(r.iget(c));l<0?i[c]=0:l===0?i[c]=Number(t.iget(c)):i[c]=1}else for(let c=0;c<o;c++){let l=Number(r.iget(c)),f=c%t.size;l<0?i[c]=0:l===0?i[c]=Number(t.iget(f)):i[c]=1}}return u}function kl(r,t){let e=r.dtype;if(B(e)){let n=r.size,o=S.zeros(Array.from(r.shape),e),a=o.data;if(typeof t=="number")if(r.isCContiguous){let u=r.data,i=r.offset;for(let s=0;s<n;s++){let c=u[(i+s)*2],l=u[(i+s)*2+1],f=Math.hypot(c,l),m=Math.atan2(l,c),p=Math.pow(f,t),y=m*t;a[s*2]=p*Math.cos(y),a[s*2+1]=p*Math.sin(y)}}else for(let u=0;u<n;u++){let i=r.iget(u),s=Math.hypot(i.re,i.im),c=Math.atan2(i.im,i.re),l=Math.pow(s,t),f=c*t;a[u*2]=l*Math.cos(f),a[u*2+1]=l*Math.sin(f)}else{let u=B(t.dtype);if(r.isCContiguous&&t.isCContiguous){let i=r.data,s=r.offset,c=t.data,l=t.offset;for(let f=0;f<n;f++){let m=i[(s+f)*2],p=i[(s+f)*2+1],y,d;if(u){let C=c;y=C[(l+f)*2],d=C[(l+f)*2+1]}else y=Number(c[l+f]),d=0;let b=Math.hypot(m,p),A=Math.atan2(p,m),g=Math.log(b),h=A,N=y*g-d*h,D=y*h+d*g,x=Math.exp(N);a[f*2]=x*Math.cos(D),a[f*2+1]=x*Math.sin(D)}}else for(let i=0;i<n;i++){let s=r.iget(i),c,l;if(u){let g=t.iget(i);c=g.re,l=g.im}else c=Number(t.iget(i)),l=0;let f=Math.hypot(s.re,s.im),m=Math.atan2(s.im,s.re),p=Math.log(f),y=m,d=c*p-l*y,b=c*y+l*p,A=Math.exp(d);a[i*2]=A*Math.cos(b),a[i*2+1]=A*Math.sin(b)}}return o}if(typeof t=="number"){let n=S.zeros(Array.from(r.shape),"float64"),o=n.data,a=r.size;if(r.isCContiguous){let u=r.data,i=r.offset;for(let s=0;s<a;s++)o[s]=Math.pow(Number(u[i+s]),t)}else for(let u=0;u<a;u++)o[u]=Math.pow(Number(r.iget(u)),t);return n}return sr(r,t,(n,o)=>Math.pow(n,o),"float_power")}function Rl(r,t){if(L(r.dtype,"fmod","fmod is not defined for complex numbers."),typeof t!="number"&&L(t.dtype,"fmod","fmod is not defined for complex numbers."),typeof t=="number"){let e=r.copy(),n=e.data,o=r.size;for(let a=0;a<o;a++){let u=Number(n[a]);n[a]=u-Math.trunc(u/t)*t}return e}return sr(r,t,(e,n)=>e-Math.trunc(e/n)*n,"fmod")}function ql(r){L(r.dtype,"frexp","frexp is not defined for complex numbers.");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.size;for(let u=0;u<a;u++){let i=Number(r.iget(u));if(i===0||!isFinite(i))n[u]=i,o[u]=0;else{let s=Math.floor(Math.log2(Math.abs(i)))+1,c=i/Math.pow(2,s);n[u]=c,o[u]=s}}return[t,e]}function Vl(r,t){L(r.dtype,"gcd","GCD is only defined for integers."),typeof t!="number"&&L(t.dtype,"gcd","GCD is only defined for integers.");let e=(i,s)=>{for(i=Math.abs(Math.trunc(i)),s=Math.abs(Math.trunc(s));s!==0;){let c=s;s=i%s,i=c}return i};if(typeof t=="number"){let i=S.zeros(Array.from(r.shape),"int32"),s=i.data,c=r.size,l=Math.abs(Math.trunc(t));if(r.isCContiguous){let f=r.data,m=r.offset;for(let p=0;p<c;p++)s[p]=e(Number(f[m+p]),l)}else for(let f=0;f<c;f++)s[f]=e(Number(r.iget(f)),l);return i}let n=sr(r,t,e,"gcd"),o=S.zeros(Array.from(n.shape),"int32"),a=o.data,u=n.size;if(n.isCContiguous){let i=n.data,s=n.offset;for(let c=0;c<u;c++)a[c]=Math.round(Number(i[s+c]))}else for(let i=0;i<u;i++)a[i]=Math.round(Number(n.iget(i)));return o}function Pl(r,t){L(r.dtype,"lcm","LCM is only defined for integers."),typeof t!="number"&&L(t.dtype,"lcm","LCM is only defined for integers.");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},n=(s,c)=>(s=Math.abs(Math.trunc(s)),c=Math.abs(Math.trunc(c)),s===0||c===0?0:s*c/e(s,c));if(typeof t=="number"){let s=S.zeros(Array.from(r.shape),"int32"),c=s.data,l=r.size,f=Math.abs(Math.trunc(t));if(r.isCContiguous){let m=r.data,p=r.offset;for(let y=0;y<l;y++)c[y]=n(Number(m[p+y]),f)}else for(let m=0;m<l;m++)c[m]=n(Number(r.iget(m)),f);return s}let o=sr(r,t,n,"lcm"),a=S.zeros(Array.from(o.shape),"int32"),u=a.data,i=o.size;if(o.isCContiguous){let s=o.data,c=o.offset;for(let l=0;l<i;l++)u[l]=Math.round(Number(s[c+l]))}else for(let s=0;s<i;s++)u[s]=Math.round(Number(o.iget(s)));return a}function jl(r,t){if(L(r.dtype,"ldexp","ldexp is not defined for complex numbers."),typeof t!="number"&&L(t.dtype,"ldexp","ldexp is not defined for complex numbers."),typeof t=="number"){let e=S.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size,a=Math.pow(2,t);for(let u=0;u<o;u++)n[u]=Number(r.iget(u))*a;return e}return sr(r,t,(e,n)=>e*Math.pow(2,n),"ldexp")}function Ll(r){L(r.dtype,"modf","modf is not defined for complex numbers.");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.size;for(let u=0;u<a;u++){let i=Number(r.iget(u)),s=Math.trunc(i);o[u]=s,n[u]=i-s}return[t,e]}function Gl(r,t,e){L(r.dtype,"clip","clip is not supported for complex numbers.");let n=r.dtype,o=Array.from(r.shape),a=r.size,u=S.zeros(o,n),i=u.data,s=t===null||typeof t=="number",c=e===null||typeof e=="number",l=t===null?-1/0:typeof t=="number"?t:null,f=e===null?1/0:typeof e=="number"?e:null,m=r.isCContiguous,p=r.data,y=r.offset,d=!s&&t.isCContiguous,b=s?null:t.data,A=s?0:t.offset,g=s?0:t.size,h=!c&&e.isCContiguous,N=c?null:e.data,D=c?0:e.offset,x=c?0:e.size;if(E(n)){let C=i;if(m&&(s||d)&&(c||h)){let w=p,_=b,I=N;for(let v=0;v<a;v++){let T=w[y+v],O=s?l===-1/0?T:BigInt(Math.round(l)):_[A+v%g],$=c?f===1/0?T:BigInt(Math.round(f)):I[D+v%x];T<O&&(T=O),T>$&&(T=$),C[v]=T}}else for(let w=0;w<a;w++){let _=r.iget(w),I=s?l===-1/0?_:BigInt(Math.round(l)):t.iget(w%t.size),v=c?f===1/0?_:BigInt(Math.round(f)):e.iget(w%e.size);_<I&&(_=I),_>v&&(_=v),C[w]=_}}else if(m&&(s||d)&&(c||h))for(let C=0;C<a;C++){let w=Number(p[y+C]),_=s?l:Number(b[A+C%g]),I=c?f:Number(N[D+C%x]);w<_&&(w=_),w>I&&(w=I),i[C]=w}else for(let C=0;C<a;C++){let w=Number(r.iget(C)),_=s?l:Number(t.iget(C%t.size)),I=c?f:Number(e.iget(C%e.size));w<_&&(w=_),w>I&&(w=I),i[C]=w}return u}function Yl(r,t){if(L(r.dtype,"maximum","maximum is not supported for complex numbers."),typeof t!="number"&&L(t.dtype,"maximum","maximum is not supported for complex numbers."),typeof t=="number"){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=S.zeros(n,e),u=a.data,i=r.data;if(E(e)){let s=u,c=i,l=BigInt(Math.round(t));for(let f=0;f<o;f++)s[f]=c[f]>l?c[f]:l}else for(let s=0;s<o;s++){let c=Number(i[s]);u[s]=isNaN(c)||isNaN(t)?NaN:Math.max(c,t)}return a}return sr(r,t,(e,n)=>isNaN(e)||isNaN(n)?NaN:Math.max(e,n),"maximum")}function Wl(r,t){if(L(r.dtype,"minimum","minimum is not supported for complex numbers."),typeof t!="number"&&L(t.dtype,"minimum","minimum is not supported for complex numbers."),typeof t=="number"){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=S.zeros(n,e),u=a.data,i=r.data;if(E(e)){let s=u,c=i,l=BigInt(Math.round(t));for(let f=0;f<o;f++)s[f]=c[f]<l?c[f]:l}else for(let s=0;s<o;s++){let c=Number(i[s]);u[s]=isNaN(c)||isNaN(t)?NaN:Math.min(c,t)}return a}return sr(r,t,(e,n)=>isNaN(e)||isNaN(n)?NaN:Math.min(e,n),"minimum")}function Zl(r,t){if(L(r.dtype,"fmax","fmax is not supported for complex numbers."),typeof t!="number"&&L(t.dtype,"fmax","fmax is not supported for complex numbers."),typeof t=="number"){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=S.zeros(n,e),u=a.data,i=r.data;if(E(e)){let s=u,c=i,l=BigInt(Math.round(t));for(let f=0;f<o;f++)s[f]=c[f]>l?c[f]:l}else for(let s=0;s<o;s++){let c=Number(i[s]);isNaN(c)?u[s]=t:isNaN(t)?u[s]=c:u[s]=Math.max(c,t)}return a}return sr(r,t,(e,n)=>isNaN(e)?n:isNaN(n)?e:Math.max(e,n),"fmax")}function Jl(r,t){if(L(r.dtype,"fmin","fmin is not supported for complex numbers."),typeof t!="number"&&L(t.dtype,"fmin","fmin is not supported for complex numbers."),typeof t=="number"){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=S.zeros(n,e),u=a.data,i=r.data;if(E(e)){let s=u,c=i,l=BigInt(Math.round(t));for(let f=0;f<o;f++)s[f]=c[f]<l?c[f]:l}else for(let s=0;s<o;s++){let c=Number(i[s]);isNaN(c)?u[s]=t:isNaN(t)?u[s]=c:u[s]=Math.min(c,t)}return a}return sr(r,t,(e,n)=>isNaN(e)?n:isNaN(n)?e:Math.min(e,n),"fmin")}function Xl(r,t=0,e,n){L(r.dtype,"nan_to_num","nan_to_num is not supported for complex numbers.");let o=r.dtype,a=Array.from(r.shape),u=r.size,i=e!==void 0?e:Number.MAX_VALUE,s=n!==void 0?n:-Number.MAX_VALUE,c=S.zeros(a,o),l=c.data,f=r.data;if(E(o)){let m=l,p=f;for(let y=0;y<u;y++)m[y]=p[y]}else for(let m=0;m<u;m++){let p=Number(f[m]);isNaN(p)?l[m]=t:p===1/0?l[m]=i:p===-1/0?l[m]=s:l[m]=p}return c}function Kl(r,t,e,n,o){L(r.dtype,"interp","interp is not supported for complex numbers."),L(t.dtype,"interp","interp is not supported for complex numbers."),L(e.dtype,"interp","interp is not supported for complex numbers.");let a=Array.from(r.shape),u=r.size,i=S.zeros(a,"float64"),s=i.data,c=r.data,l=t.data,f=e.data,m=t.size,p=n!==void 0?n:Number(f[0]),y=o!==void 0?o:Number(f[m-1]);for(let d=0;d<u;d++){let b=Number(c[d]);if(b<=Number(l[0])){s[d]=p;continue}if(b>=Number(l[m-1])){s[d]=y;continue}let A=0,g=m-1;for(;g-A>1;){let w=Math.floor((A+g)/2);Number(l[w])<=b?A=w:g=w}let h=Number(l[A]),N=Number(l[g]),D=Number(f[A]),x=Number(f[g]),C=(b-h)/(N-h);s[d]=D+C*(x-D)}return i}function Ql(r,t=Math.PI,e=-1,n=2*Math.PI){L(r.dtype,"unwrap","unwrap is not supported for complex numbers.");let o=Array.from(r.shape),a=o.length;if(e<0&&(e+=a),e<0||e>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);if(a===1){let c=r.size,l=S.zeros(o,"float64"),f=l.data,m=r.data;if(c===0)return l;f[0]=Number(m[0]);let p=0;for(let y=1;y<c;y++){let d=Number(m[y-1]),b=Number(m[y]),A=b-d;A=(A+n/2)%n-n/2,A===-n/2&&b-d>0&&(A=n/2),Math.abs(A)>t&&(p-=Math.round((b-d-A)/n)*n),f[y]=b+p}return l}let u=S.zeros(o,"float64"),i=u.data,s=r.data;for(let c=0;c<r.size;c++)i[c]=Number(s[c]);if(a===2){let[c,l]=o;if(e===0)for(let f=0;f<l;f++){let m=0;for(let p=1;p<c;p++){let y=(p-1)*l+f,d=p*l+f,b=i[y],A=i[d],g=A-b;g=(g+n/2)%n-n/2,g===-n/2&&A-b>0&&(g=n/2),Math.abs(g)>t&&(m-=Math.round((A-b-g)/n)*n),i[d]=A+m}}else for(let f=0;f<c;f++){let m=0;for(let p=1;p<l;p++){let y=f*l+(p-1),d=f*l+p,b=i[y],A=i[d],g=A-b;g=(g+n/2)%n-n/2,g===-n/2&&A-b>0&&(g=n/2),Math.abs(g)>t&&(m-=Math.round((A-b-g)/n)*n),i[d]=A+m}}}return u}function Hl(r){L(r.dtype,"sinc","sinc is not supported for complex numbers.");let t=Array.from(r.shape),e=r.size,n=S.zeros(t,"float64"),o=n.data,a=r.data;for(let u=0;u<e;u++){let i=Number(a[u]);if(i===0)o[u]=1;else{let s=Math.PI*i;o[u]=Math.sin(s)/s}}return n}function rf(r){L(r.dtype,"i0","i0 is not supported for complex numbers.");let t=Array.from(r.shape),e=r.size,n=S.zeros(t,"float64"),o=n.data,a=r.data;for(let u=0;u<e;u++){let i=Math.abs(Number(a[u]));o[u]=LN(i)}return n}function LN(r){let t=Math.abs(r);if(t<3.75){let e=r/3.75,n=e*e;return 1+n*(3.5156229+n*(3.0899424+n*(1.2067492+n*(.2659732+n*(.0360768+n*.0045813)))))}else{let e=3.75/t;return Math.exp(t)/Math.sqrt(t)*(.39894228+e*(.01328592+e*(.00225319+e*(-.00157565+e*(.00916281+e*(-.02057706+e*(.02635537+e*(-.01647633+e*.00392377))))))))}}function tf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1],m=Math.sqrt(l*l+f*f),p=Math.sqrt((m+l)/2),y=(f>=0?1:-1)*Math.sqrt((m-l)/2);u[c*2]=p,u[c*2+1]=y}}else for(let i=0;i<n;i++){let s=r.iget(i),c=s.re,l=s.im,f=Math.sqrt(c*c+l*l),m=Math.sqrt((f+c)/2),p=(l>=0?1:-1)*Math.sqrt((f-c)/2);u[i*2]=m,u[i*2+1]=p}return a}return ir(r,Math.sqrt,!1)}function ef(r,t){if(typeof t=="number")return WN(r,t);let e=B(r.dtype),n=B(t.dtype);return e||n?YN(r,t):sr(r,t,Math.pow,"power")}function YN(r,t){let e=B(r.dtype),n=B(t.dtype),o=r.dtype==="complex128"||t.dtype==="complex128"||t.dtype==="float64"?"complex128":"complex64",a=Array.from(r.shape),u=r.size,i=S.zeros(a,o),s=i.data,c=r.isCContiguous,l=t.isCContiguous,f=r.offset,m=t.offset;for(let p=0;p<u;p++){let y,d;if(e)if(c){let w=r.data;y=w[(f+p)*2],d=w[(f+p)*2+1]}else{let w=r.iget(p);y=w.re,d=w.im}else y=Number(r.iget(p)),d=0;let b,A;if(n)if(l){let w=t.data;b=w[(m+p)*2],A=w[(m+p)*2+1]}else{let w=t.iget(p);b=w.re,A=w.im}else b=Number(t.iget(p)),A=0;let g=Math.sqrt(y*y+d*d),h=Math.atan2(d,y),N=Math.log(g),D=b*N-A*h,x=b*h+A*N,C=Math.exp(D);s[p*2]=C*Math.cos(x),s[p*2+1]=C*Math.sin(x)}return i}function WN(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=r.offset,i=r.isCContiguous;if(B(e)){let p=S.zeros(n,e),y=p.data;if(i){let d=o;for(let b=0;b<a;b++){let A=d[(u+b)*2],g=d[(u+b)*2+1],h=Math.sqrt(A*A+g*g),N=Math.atan2(g,A),D=Math.pow(h,t),x=N*t;y[b*2]=D*Math.cos(x),y[b*2+1]=D*Math.sin(x)}}else for(let d=0;d<a;d++){let b=r.iget(d),A=b.re,g=b.im,h=Math.sqrt(A*A+g*g),N=Math.atan2(g,A),D=Math.pow(h,t),x=N*t;y[d*2]=D*Math.cos(x),y[d*2+1]=D*Math.sin(x)}return p}let l=e!=="float32"&&e!=="float64"&&(t<0||!Number.isInteger(t))?"float64":e,f=S.zeros(n,l),m=f.data;if(E(e))if(E(l)&&Number.isInteger(t)&&t>=0)if(i){let p=o,y=m;for(let d=0;d<a;d++)y[d]=p[u+d]**BigInt(t)}else{let p=m;for(let y=0;y<a;y++)p[y]=r.iget(y)**BigInt(t)}else if(i)for(let p=0;p<a;p++)m[p]=Math.pow(Number(o[u+p]),t);else for(let p=0;p<a;p++)m[p]=Math.pow(Number(r.iget(p)),t);else if(i)for(let p=0;p<a;p++)m[p]=Math.pow(Number(o[u+p]),t);else for(let p=0;p<a;p++)m[p]=Math.pow(Number(r.iget(p)),t);return f}function nf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1],m=Math.exp(l);u[c*2]=m*Math.cos(f),u[c*2+1]=m*Math.sin(f)}}else for(let i=0;i<n;i++){let s=r.iget(i),c=s.re,l=s.im,f=Math.exp(c);u[i*2]=f*Math.cos(l),u[i*2+1]=f*Math.sin(l)}return a}return ir(r,Math.exp,!1)}function of(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=Math.LN2,u=S.zeros(e,t),i=u.data;if(o){let s=r.data,c=r.offset;for(let l=0;l<n;l++){let f=s[(c+l)*2],m=s[(c+l)*2+1],p=Math.exp(f*a),y=m*a;i[l*2]=p*Math.cos(y),i[l*2+1]=p*Math.sin(y)}}else for(let s=0;s<n;s++){let c=r.iget(s),l=c.re,f=c.im,m=Math.exp(l*a),p=f*a;i[s*2]=m*Math.cos(p),i[s*2+1]=m*Math.sin(p)}return u}return ir(r,e=>Math.pow(2,e),!1)}function af(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1],m=Math.exp(l);u[c*2]=m*Math.cos(f)-1,u[c*2+1]=m*Math.sin(f)}}else for(let i=0;i<n;i++){let s=r.iget(i),c=s.re,l=s.im,f=Math.exp(c);u[i*2]=f*Math.cos(l)-1,u[i*2+1]=f*Math.sin(l)}return a}return ir(r,Math.expm1,!1)}function sf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1],m=Math.sqrt(l*l+f*f),p=Math.atan2(f,l);u[c*2]=Math.log(m),u[c*2+1]=p}}else for(let i=0;i<n;i++){let s=r.iget(i),c=s.re,l=s.im,f=Math.sqrt(c*c+l*l),m=Math.atan2(l,c);u[i*2]=Math.log(f),u[i*2+1]=m}return a}return ir(r,Math.log,!1)}function uf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=1/Math.LN2,u=S.zeros(e,t),i=u.data;if(o){let s=r.data,c=r.offset;for(let l=0;l<n;l++){let f=s[(c+l)*2],m=s[(c+l)*2+1],p=Math.sqrt(f*f+m*m),y=Math.atan2(m,f);i[l*2]=Math.log(p)*a,i[l*2+1]=y*a}}else for(let s=0;s<n;s++){let c=r.iget(s),l=c.re,f=c.im,m=Math.sqrt(l*l+f*f),p=Math.atan2(f,l);i[s*2]=Math.log(m)*a,i[s*2+1]=p*a}return u}return ir(r,Math.log2,!1)}function cf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=1/Math.LN10,u=S.zeros(e,t),i=u.data;if(o){let s=r.data,c=r.offset;for(let l=0;l<n;l++){let f=s[(c+l)*2],m=s[(c+l)*2+1],p=Math.sqrt(f*f+m*m),y=Math.atan2(m,f);i[l*2]=Math.log(p)*a,i[l*2+1]=y*a}}else for(let s=0;s<n;s++){let c=r.iget(s),l=c.re,f=c.im,m=Math.sqrt(l*l+f*f),p=Math.atan2(f,l);i[s*2]=Math.log(m)*a,i[s*2+1]=p*a}return u}return ir(r,Math.log10,!1)}function lf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1],m=1+l,p=Math.sqrt(m*m+f*f),y=Math.atan2(f,m);u[c*2]=Math.log(p),u[c*2+1]=y}}else for(let i=0;i<n;i++){let s=r.iget(i),c=s.re,l=s.im,f=1+c,m=Math.sqrt(f*f+l*l),p=Math.atan2(l,f);u[i*2]=Math.log(m),u[i*2+1]=p}return a}return ir(r,Math.log1p,!1)}function ff(r,t){return L(r.dtype,"logaddexp","logaddexp is not supported for complex numbers."),typeof t!="number"&&L(t.dtype,"logaddexp","logaddexp is not supported for complex numbers."),typeof t=="number"?JN(r,t):ZN(r,t)}function ZN(r,t){let e=Yr(r.shape,t.shape),n=e.reduce((c,l)=>c*l,1),o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",i=S.zeros(e,u),s=i.data;for(let c=0;c<n;c++){let l=(E(o),Number(r.iget(c))),f=(E(a),Number(t.iget(c))),m=Math.max(l,f),p=Math.min(l,f);s[c]=m+Math.log1p(Math.exp(p-m))}return i}function JN(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=r.isCContiguous,u=e==="float32"?"float32":"float64",i=S.zeros(n,u),s=i.data;if(a){let c=r.offset;for(let l=0;l<o;l++){let f=Number(r.data[c+l]),m=Math.max(f,t),p=Math.min(f,t);s[l]=m+Math.log1p(Math.exp(p-m))}}else for(let c=0;c<o;c++){let l=Number(r.iget(c)),f=Math.max(l,t),m=Math.min(l,t);s[c]=f+Math.log1p(Math.exp(m-f))}return i}function mf(r,t){return L(r.dtype,"logaddexp2","logaddexp2 is not supported for complex numbers."),typeof t!="number"&&L(t.dtype,"logaddexp2","logaddexp2 is not supported for complex numbers."),typeof t=="number"?KN(r,t):XN(r,t)}function XN(r,t){let e=Yr(r.shape,t.shape),n=e.reduce((l,f)=>l*f,1),o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",i=S.zeros(e,u),s=i.data,c=Math.LOG2E;for(let l=0;l<n;l++){let f=(E(o),Number(r.iget(l))),m=(E(a),Number(t.iget(l))),p=Math.max(f,m),y=Math.min(f,m);s[l]=p+Math.log1p(Math.pow(2,y-p))*c}return i}function KN(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=r.isCContiguous,u=e==="float32"?"float32":"float64",i=S.zeros(n,u),s=i.data,c=Math.LOG2E;if(a){let l=r.offset;for(let f=0;f<o;f++){let m=Number(r.data[l+f]),p=Math.max(m,t),y=Math.min(m,t);s[f]=p+Math.log1p(Math.pow(2,y-p))*c}}else for(let l=0;l<o;l++){let f=Number(r.iget(l)),m=Math.max(f,t),p=Math.min(f,t);s[l]=m+Math.log1p(Math.pow(2,p-m))*c}return i}function Ft(r,t){let e=typeof t=="number"?t:z(t);return M(Cl(z(r),e))}function Bt(r,t){let e=typeof t=="number"?t:z(t);return M(Sl(z(r),e))}function Tt(r,t){let e=typeof t=="number"?t:z(t);return M(wl(z(r),e))}function Et(r){return M(tf(z(r)))}function Ot(r,t){let e=typeof t=="number"?t:z(t);return M(ef(z(r),e))}function Ut(r){return M(nf(z(r)))}function $t(r){return M(of(z(r)))}function kt(r){return M(af(z(r)))}function Rt(r){return M(sf(z(r)))}function qt(r){return M(uf(z(r)))}function Vt(r){return M(cf(z(r)))}function Pt(r){return M(lf(z(r)))}function jt(r,t){let e=typeof t=="number"?t:z(t);return M(ff(z(r),e))}function Lt(r,t){let e=typeof t=="number"?t:z(t);return M(mf(z(r),e))}function Gt(r){return M(zl(z(r)))}function Yt(r){return M(_l(z(r)))}function Wt(r){return M(vl(z(r)))}function Zt(r,t){let e=typeof t=="number"?t:z(t);return M(Mo(z(r),e))}function it(r,t){let e=typeof t=="number"?t:z(t);return M(Il(z(r),e))}var Fo=it;function Jt(r,t){let e=typeof t=="number"?t:z(t);return M(Hs(z(r),e))}function Xt(r){return M(Ml(z(r)))}function Kt(r){return M(Fl(z(r)))}function Qt(r){return M(Bl(z(r)))}function Ht(r){return M(Tl(z(r)))}function re(r,t){let e=typeof t=="number"?t:z(t);return Co(El(z(r),e))}function te(r){return M(Ol(z(r)))}function ee(r,t){let e=typeof t=="number"?t:z(t);return M(Ul(z(r),e))}function ne(r,t){let e=typeof t=="number"?t:z(t);return M($l(z(r),e))}function ri(r,t){let e=typeof t=="number"?t:z(t);return M(kl(z(r),e))}function ti(r,t){let e=typeof t=="number"?t:z(t);return M(Rl(z(r),e))}function ei(r){return Co(ql(z(r)))}function ni(r,t){let e=typeof t=="number"?t:z(t);return M(Vl(z(r),e))}function oi(r,t){let e=typeof t=="number"?t:z(t);return M(Pl(z(r),e))}function ai(r,t){let e=typeof t=="number"?t:z(t);return M(jl(z(r),e))}function si(r){return Co(Ll(z(r)))}function oe(r,t,e){let n=t===null?null:typeof t=="number"?t:z(t),o=e===null?null:typeof e=="number"?e:z(e);return M(Gl(z(r),n,o))}function ii(r,t){let e=typeof t=="number"?t:z(t);return M(Yl(z(r),e))}function ui(r,t){let e=typeof t=="number"?t:z(t);return M(Wl(z(r),e))}function ci(r,t){let e=typeof t=="number"?t:z(t);return M(Zl(z(r),e))}function li(r,t){let e=typeof t=="number"?t:z(t);return M(Jl(z(r),e))}function fi(r,t=0,e,n){return M(Xl(z(r),t,e,n))}function mi(r,t,e,n,o){return M(Kl(z(r),z(t),z(e),n,o))}function pi(r,t=Math.PI,e=-1,n=2*Math.PI){return M(Ql(z(r),t,e,n))}function yi(r){return M(Hl(z(r)))}function di(r){return M(rf(z(r)))}function bf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1];u[c*2]=Math.sin(l)*Math.cosh(f),u[c*2+1]=Math.cos(l)*Math.sinh(f)}}else for(let i=0;i<n;i++){let s=r.iget(i),c=s.re,l=s.im;u[i*2]=Math.sin(c)*Math.cosh(l),u[i*2+1]=Math.cos(c)*Math.sinh(l)}return a}return ir(r,Math.sin,!1)}function Af(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1];u[c*2]=Math.cos(l)*Math.cosh(f),u[c*2+1]=-Math.sin(l)*Math.sinh(f)}}else for(let i=0;i<n;i++){let s=r.iget(i),c=s.re,l=s.im;u[i*2]=Math.cos(c)*Math.cosh(l),u[i*2+1]=-Math.sin(c)*Math.sinh(l)}return a}return ir(r,Math.cos,!1)}function gf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1],m=Math.cos(2*l)+Math.cosh(2*f);u[c*2]=Math.sin(2*l)/m,u[c*2+1]=Math.sinh(2*f)/m}}else for(let i=0;i<n;i++){let s=r.iget(i),c=s.re,l=s.im,f=Math.cos(2*c)+Math.cosh(2*l);u[i*2]=Math.sin(2*c)/f,u[i*2+1]=Math.sinh(2*l)/f}return a}return ir(r,Math.tan,!1)}function hf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1],[m,p]=pf(l,f);u[c*2]=m,u[c*2+1]=p}}else for(let i=0;i<n;i++){let s=r.iget(i),[c,l]=pf(s.re,s.im);u[i*2]=c,u[i*2+1]=l}return a}return ir(r,Math.asin,!1)}function pf(r,t){let e=-t,n=r,o=r*r-t*t,a=2*r*t,u=1-o,i=-a,s=Math.sqrt(u*u+i*i),c=Math.sqrt((s+u)/2),l=(i>=0?1:-1)*Math.sqrt((s-u)/2),f=e+c,m=n+l,p=Math.sqrt(f*f+m*m),y=Math.log(p),b=Math.atan2(m,f),A=-y;return Math.abs(t)<1e-15&&r>1&&(A=-A),[b,A]}function Nf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1],[m,p]=yf(l,f);u[c*2]=m,u[c*2+1]=p}}else for(let i=0;i<n;i++){let s=r.iget(i),[c,l]=yf(s.re,s.im);u[i*2]=c,u[i*2+1]=l}return a}return ir(r,Math.acos,!1)}function yf(r,t){let e=r*r-t*t,n=2*r*t,o=1-e,a=-n,u=Math.sqrt(o*o+a*a),i=Math.sqrt((u+o)/2),c=-((a>=0?1:-1)*Math.sqrt((u-o)/2)),l=i,f=r+c,m=t+l,p=Math.sqrt(f*f+m*m),y=Math.log(p),b=Math.atan2(m,f),A=-y;return Math.abs(t)<1e-15&&r>1&&(A=-A),[b,A]}function Df(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1],[m,p]=df(l,f);u[c*2]=m,u[c*2+1]=p}}else for(let i=0;i<n;i++){let s=r.iget(i),[c,l]=df(s.re,s.im);u[i*2]=c,u[i*2+1]=l}return a}return ir(r,Math.atan,!1)}function df(r,t){let e=-t,n=r,o=1-e,a=-n,u=1+e,i=n,s=u*u+i*i,c=(o*u+a*i)/s,l=(a*u-o*i)/s,f=Math.sqrt(c*c+l*l),m=Math.log(f);return[-Math.atan2(l,c)/2,m/2]}function xf(r,t){return L(r.dtype,"arctan2","arctan2 is only defined for real numbers."),typeof t!="number"&&L(t.dtype,"arctan2","arctan2 is only defined for real numbers."),typeof t=="number"?rD(r,t):HN(r,t)}function HN(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",i=S.zeros(e,u),s=i.data,c=r.isCContiguous,l=t.isCContiguous;if(c&&l){let f=r.offset,m=t.offset;for(let p=0;p<n;p++){let y=Number(r.data[f+p]),d=Number(t.data[m+p]);s[p]=Math.atan2(y,d)}}else if(c){let f=r.offset;for(let m=0;m<n;m++){let p=Number(r.data[f+m]),y=Number(t.iget(m));s[m]=Math.atan2(p,y)}}else if(l){let f=t.offset;for(let m=0;m<n;m++){let p=Number(r.iget(m)),y=Number(t.data[f+m]);s[m]=Math.atan2(p,y)}}else for(let f=0;f<n;f++){let m=Number(r.iget(f)),p=Number(t.iget(f));s[f]=Math.atan2(m,p)}return i}function rD(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",u=S.zeros(n,a),i=u.data;if(r.isCContiguous){let c=r.data,l=r.offset;if(E(e))for(let f=0;f<o;f++)i[f]=Math.atan2(Number(c[l+f]),t);else for(let f=0;f<o;f++)i[f]=Math.atan2(Number(c[l+f]),t)}else for(let c=0;c<o;c++)i[c]=Math.atan2(Number(r.iget(c)),t);return u}function Cf(r,t){return L(r.dtype,"hypot","hypot is only defined for real numbers."),typeof t!="number"&&L(t.dtype,"hypot","hypot is only defined for real numbers."),typeof t=="number"?eD(r,t):tD(r,t)}function tD(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",i=S.zeros(e,u),s=i.data,c=r.isCContiguous,l=t.isCContiguous;if(c&&l){let f=r.offset,m=t.offset;for(let p=0;p<n;p++){let y=Number(r.data[f+p]),d=Number(t.data[m+p]);s[p]=Math.hypot(y,d)}}else if(c){let f=r.offset;for(let m=0;m<n;m++){let p=Number(r.data[f+m]),y=Number(t.iget(m));s[m]=Math.hypot(p,y)}}else if(l){let f=t.offset;for(let m=0;m<n;m++){let p=Number(r.iget(m)),y=Number(t.data[f+m]);s[m]=Math.hypot(p,y)}}else for(let f=0;f<n;f++){let m=Number(r.iget(f)),p=Number(t.iget(f));s[f]=Math.hypot(m,p)}return i}function eD(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",u=S.zeros(n,a),i=u.data;if(r.isCContiguous){let c=r.data,l=r.offset;if(E(e))for(let f=0;f<o;f++)i[f]=Math.hypot(Number(c[l+f]),t);else for(let f=0;f<o;f++)i[f]=Math.hypot(Number(c[l+f]),t)}else for(let c=0;c<o;c++)i[c]=Math.hypot(Number(r.iget(c)),t);return u}function bi(r){L(r.dtype,"degrees","degrees is only defined for real numbers.");let t=180/Math.PI;return ir(r,e=>e*t,!1)}function Ai(r){L(r.dtype,"radians","radians is only defined for real numbers.");let t=Math.PI/180;return ir(r,e=>e*t,!1)}function Sf(r){return Ai(r)}function wf(r){return bi(r)}function If(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=S.zeros(e,t),u=a.data;for(let i=0;i<n;i++){let s=o[i*2],c=o[i*2+1];u[i*2]=Math.sinh(s)*Math.cos(c),u[i*2+1]=Math.cosh(s)*Math.sin(c)}return a}return ir(r,Math.sinh,!1)}function zf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=S.zeros(e,t),u=a.data;for(let i=0;i<n;i++){let s=o[i*2],c=o[i*2+1];u[i*2]=Math.cosh(s)*Math.cos(c),u[i*2+1]=Math.sinh(s)*Math.sin(c)}return a}return ir(r,Math.cosh,!1)}function _f(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=S.zeros(e,t),u=a.data;for(let i=0;i<n;i++){let s=o[i*2],c=o[i*2+1],l=Math.cosh(2*s)+Math.cos(2*c);u[i*2]=Math.sinh(2*s)/l,u[i*2+1]=Math.sin(2*c)/l}return a}return ir(r,Math.tanh,!1)}function vf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=S.zeros(e,t),u=a.data;for(let i=0;i<n;i++){let s=o[i*2],c=o[i*2+1],l=s*s-c*c,f=2*s*c,m=l+1,p=f,y=Math.sqrt(m*m+p*p),d=Math.sqrt((y+m)/2),b=(p>=0?1:-1)*Math.sqrt((y-m)/2),A=s+d,g=c+b,h=Math.sqrt(A*A+g*g);u[i*2]=Math.log(h),u[i*2+1]=Math.atan2(g,A)}return a}return ir(r,Math.asinh,!1)}function Mf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=S.zeros(e,t),u=a.data;for(let i=0;i<n;i++){let s=o[i*2],c=o[i*2+1],l=s*s-c*c,f=2*s*c,m=l-1,p=f,y=Math.sqrt(m*m+p*p),d=Math.sqrt((y+m)/2),b=(p>=0?1:-1)*Math.sqrt((y-m)/2),A=s+d,g=c+b,h=Math.sqrt(A*A+g*g),N=Math.log(h),D=Math.atan2(g,A);Math.abs(c)<1e-15&&s<1&&(D=-D),u[i*2]=N,u[i*2+1]=D}return a}return ir(r,Math.acosh,!1)}function Ff(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=S.zeros(e,t),u=a.data;for(let i=0;i<n;i++){let s=o[i*2],c=o[i*2+1],l=1+s,f=c,m=1-s,p=-c,y=m*m+p*p,d=(l*m+f*p)/y,b=(f*m-l*p)/y,A=Math.sqrt(d*d+b*b),g=Math.log(A),h=Math.atan2(b,d);u[i*2]=g/2,u[i*2+1]=h/2}return a}return ir(r,Math.atanh,!1)}function ae(r){return M(bf(z(r)))}function se(r){return M(Af(z(r)))}function ie(r){return M(gf(z(r)))}function ue(r){return M(hf(z(r)))}function ce(r){return M(Nf(z(r)))}function le(r){return M(Df(z(r)))}function fe(r,t){let e=typeof t=="number"?t:z(t);return M(xf(z(r),e))}function me(r,t){let e=typeof t=="number"?t:z(t);return M(Cf(z(r),e))}function pe(r){return M(bi(z(r)))}function ye(r){return M(Ai(z(r)))}function gi(r){return M(Sf(z(r)))}function hi(r){return M(wf(z(r)))}function de(r){return M(If(z(r)))}function be(r){return M(zf(z(r)))}function Ae(r){return M(_f(z(r)))}function ge(r){return M(vf(z(r)))}function he(r){return M(Mf(z(r)))}function Ne(r){return M(Ff(z(r)))}function ur(r,t){let e=r.size,n=r.dtype,o=t.indexOf(-1),a;if(o!==-1){let c=t.reduce((f,m,p)=>p===o?f:f*m,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((f,m)=>m===o?l:f)}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,lr(a),0)}let s=r.copy().data;return S.fromData(s,a,n,lr(a),0)}function Xr(r){let t=r.size,e=r.dtype,n=K(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 S.fromData(i,[t],e,[1],0)}let o=new n(t),a=E(e);for(let u=0;u<t;u++){let i=r.iget(u);o[u]=i}return S.fromData(o,[t],e,[1],0)}function ut(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 Ni(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,u=r.dtype,i;if(t===void 0)i=Array.from({length:n},(f,m)=>n-1-m);else{if(t.length!==n)throw new Error(`axes must have length ${n}, got ${t.length}`);let f=new Set;for(let m of t){let p=m<0?n+m:m;if(p<0||p>=n)throw new Error(`axis ${m} is out of bounds for array of dimension ${n}`);if(f.has(p))throw new Error("repeated axis in transpose");f.add(p)}i=t.map(m=>m<0?n+m:m)}let s=i.map(f=>e[f]),c=Array.from(o),l=i.map(f=>c[f]);return S.fromData(a,s,u,l,r.offset)}function Di(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,u=r.dtype;if(t===void 0){let i=[],s=[];for(let c=0;c<n;c++)e[c]!==1&&(i.push(e[c]),s.push(o[c]));return i.length===0&&(i.push(1),s.push(1)),S.fromData(a,i,u,s,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 s=[],c=[];for(let l=0;l<n;l++)l!==i&&(s.push(e[l]),c.push(o[l]));return S.fromData(a,s,u,c,r.offset)}}function De(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,u=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 s=[...Array.from(e)];s.splice(i,0,1);let c=[...Array.from(o)],l=i<n?o[i]*(e[i]||1):1;return c.splice(i,0,l),S.fromData(a,s,u,c,r.offset)}function Bf(r,t,e){let n=r.shape,o=n.length,a=r.strides,u=r.data,i=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(u,Array.from(n),i,Array.from(a),r.offset);let l=Array.from(n),f=Array.from(a);return[l[s],l[c]]=[l[c],l[s]],[f[s],f[c]]=[f[c],f[s]],S.fromData(u,l,i,f,r.offset)}function xi(r,t,e){let n=r.ndim,o=Array.isArray(t)?t:[t],a=Array.isArray(e)?e:[e];if(o.length!==a.length)throw new Error("source and destination must have the same number of elements");let u=o.map(c=>{let l=c<0?n+c:c;if(l<0||l>=n)throw new Error(`source axis ${c} is out of bounds for array of dimension ${n}`);return l}),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(u).size!==u.length)throw new Error("repeated axis in source");if(new Set(i).size!==i.length)throw new Error("repeated axis in destination");let s=[];for(let c=0;c<n;c++)u.includes(c)||s.push(c);for(let c=0;c<u.length;c++){let l=i[c];s.splice(l,0,u[c])}return Ni(r,s)}function Wr(r,t=0){if(r.length===0)throw new Error("need at least one array to concatenate");if(r.length===1)return r[0].copy();let e=r[0],n=e.ndim,o=e.dtype,a=t<0?n+t:t;if(a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);for(let p=1;p<r.length;p++){let y=r[p];if(y.ndim!==n)throw new Error("all the input arrays must have same number of dimensions");for(let d=0;d<n;d++)if(d!==a&&y.shape[d]!==e.shape[d])throw new Error("all the input array dimensions except for the concatenation axis must match exactly")}let u=Array.from(e.shape),i=e.shape[a];for(let p=1;p<r.length;p++)i+=r[p].shape[a];u[a]=i;let s=u.reduce((p,y)=>p*y,1),c=K(o);if(!c)throw new Error(`Cannot concatenate arrays with dtype ${o}`);let l=new c(s),f=lr(u),m=0;for(let p of r){let y=p.shape[a];aD(p,l,u,f,a,m,o),m+=y}return S.fromData(l,u,o)}function aD(r,t,e,n,o,a,u){let i=r.shape,s=i.length,c=r.size,l=u==="int64"||u==="uint64";if(o===0&&r.isCContiguous&&s>0){let p=a*n[0],y=r.data,d=r.offset,b=d+c;t.set(y.subarray(d,b),p);return}if(o===1&&s===2&&r.isCContiguous){let p=i[0],y=i[1],d=e[1],b=r.data,A=r.offset;for(let g=0;g<p;g++){let h=A+g*y,N=g*d+a;t.set(b.subarray(h,h+y),N)}return}let f=new Array(s).fill(0),m=a*n[o];for(let p=0;p<c;p++){let y=r.iget(p),d=m;for(let b=0;b<s;b++)d+=f[b]*n[b];t[d]=y;for(let b=s-1;b>=0&&(f[b]++,!(f[b]<i[b]));b--)f[b]=0}}function Tf(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 s=r[i];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 u=r.map(i=>De(i,a));return Wr(u,a)}function Ef(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?ur(e,[1,e.shape[0]]):e);return Wr(t,0)}function Ci(r){if(r.length===0)throw new Error("need at least one array to stack");return r.every(e=>e.ndim===1)?Wr(r,0):Wr(r,1)}function Of(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?ur(De(ur(e,[1,e.shape[0]]),2),[1,e.shape[0],1]):e.ndim===2?De(e,2):e);return Wr(t,2)}function Uf(r,t,e=0){let n=r.shape,o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=n[a],i;if(typeof t=="number"){if(u%t!==0)throw new Error("array split does not result in an equal division");let s=u/t;i=[];for(let c=1;c<t;c++)i.push(c*s)}else i=t;return $f(r,i,a)}function xe(r,t,e=0){let n=r.shape,o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=n[a],i;if(typeof t=="number"){let s=t,c=Math.floor(u/s),l=u%s;i=[];let f=0;for(let m=0;m<s-1;m++)f+=c+(m<l?1:0),i.push(f)}else i=t;return $f(r,i,a)}function $f(r,t,e){let n=r.shape,o=n[e],a=[0,...t,o],u=[];for(let i=0;i<a.length-1;i++){let s=a[i],c=a[i+1];if(s>c)throw new Error("split indices must be in ascending order");let l=Array.from(n);l[e]=c-s;let f=r.offset+s*r.strides[e];u.push(S.fromData(r.data,l,r.dtype,Array.from(r.strides),f))}return u}function kf(r,t){if(r.ndim<2)throw new Error("vsplit only works on arrays of 2 or more dimensions");return xe(r,t,0)}function Rf(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 xe(r,t,e)}function qf(r,t){let e=r.shape,n=e.length,o=r.dtype,a=Array.isArray(t)?t:[t],u=Math.max(n,a.length),i=new Array(u).fill(1),s=new Array(u).fill(1);for(let g=0;g<n;g++)i[u-n+g]=e[g];for(let g=0;g<a.length;g++)s[u-a.length+g]=a[g];let c=i.map((g,h)=>g*s[h]),l=c.reduce((g,h)=>g*h,1),f=K(o);if(!f)throw new Error(`Cannot tile array with dtype ${o}`);let m=new f(l),p=lr(c),y=r;n<u&&(y=ur(r,i));let d=o==="int64"||o==="uint64",b=y.strides,A=new Array(u).fill(0);for(let g=0;g<l;g++){let h=y.offset;for(let x=0;x<u;x++){let C=A[x]%i[x];h+=C*b[x]}let N=y.data[h],D=0;for(let x=0;x<u;x++)D+=A[x]*p[x];m[D]=N;for(let x=u-1;x>=0&&(A[x]++,!(A[x]<c[x]));x--)A[x]=0}return S.fromData(m,c,o)}function Vf(r,t,e){let n=r.shape,o=n.length,a=r.dtype,u=r.size;if(e===void 0){let g=u,h=Array.isArray(t)?t:new Array(g).fill(t);if(h.length!==g)throw new Error(`operands could not be broadcast together with shape (${g},) (${h.length},)`);let N=h.reduce((w,_)=>w+_,0),D=K(a);if(!D)throw new Error(`Cannot repeat array with dtype ${a}`);let x=new D(N),C=0;for(let w=0;w<g;w++){let _=r.iget(w),I=h[w];for(let v=0;v<I;v++)x[C++]=_}return S.fromData(x,[N],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 s=n[i],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[i]=c.reduce((g,h)=>g+h,0);let f=l.reduce((g,h)=>g*h,1),m=K(a);if(!m)throw new Error(`Cannot repeat array with dtype ${a}`);let p=new m(f),y=lr(l),d=new Array(o).fill(0),b=a==="int64"||a==="uint64",A=[0];for(let g=0;g<s;g++)A.push(A[g]+c[g]);for(let g=0;g<u;g++){let h=r.iget(g),N=d[i],D=c[N],x=0;for(let _=0;_<o;_++)_!==i&&(x+=d[_]*y[_]);let C=y[i],w=A[N];for(let _=0;_<D;_++){let I=x+(w+_)*C;p[I]=h}for(let _=o-1;_>=0&&(d[_]++,!(d[_]<n[_]));_--)d[_]=0}return S.fromData(p,l,a)}function Pf(r,t){let e=r.shape,n=e.length,o=r.dtype,a=r.size,u;if(t===void 0)u=new Set(Array.from({length:n},(m,p)=>p));else if(typeof t=="number"){let m=t<0?n+t:t;if(m<0||m>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);u=new Set([m])}else u=new Set(t.map(m=>{let p=m<0?n+m:m;if(p<0||p>=n)throw new Error(`axis ${m} is out of bounds for array of dimension ${n}`);return p}));let i=K(o);if(!i)throw new Error(`Cannot flip array with dtype ${o}`);let s=new i(a),c=E(o);if(n===1&&r.isCContiguous){let m=r.data,p=r.offset;for(let y=0;y<a;y++)s[y]=m[p+a-1-y];return S.fromData(s,[...e],o)}if(n===2&&r.isCContiguous){let m=e[0],p=e[1],y=r.data,d=r.offset;if(u.size===2){for(let b=0;b<a;b++)s[b]=y[d+a-1-b];return S.fromData(s,[...e],o)}if(u.size===1){if(u.has(0)){for(let b=0;b<m;b++){let A=d+(m-1-b)*p,g=b*p;for(let h=0;h<p;h++)s[g+h]=y[A+h]}return S.fromData(s,[...e],o)}else if(u.has(1)){for(let b=0;b<m;b++){let A=d+b*p,g=b*p;for(let h=0;h<p;h++)s[g+h]=y[A+p-1-h]}return S.fromData(s,[...e],o)}}}let l=new Array(n),f=new Array(n).fill(0);for(let m=0;m<a;m++){for(let d=0;d<n;d++)l[d]=u.has(d)?e[d]-1-f[d]:f[d];let p=r.offset;for(let d=0;d<n;d++)p+=l[d]*r.strides[d];let y=r.data[p];s[m]=y;for(let d=n-1;d>=0&&(f[d]++,!(f[d]<e[d]));d--)f[d]=0}return S.fromData(s,[...e],o)}function jf(r,t=1,e=[0,1]){let n=r.shape,o=n.length,a=r.dtype;if(o<2)throw new Error("Input must be at least 2-D");let u=e[0]<0?o+e[0]:e[0],i=e[1]<0?o+e[1]:e[1];if(u<0||u>=o||i<0||i>=o)throw new Error(`Axes are out of bounds for array of dimension ${o}`);if(u===i)throw new Error("Axes must be different");if(t=(t%4+4)%4,t===0)return r.copy();let s=K(a);if(!s)throw new Error(`Cannot rotate array with dtype ${a}`);let c=[...n];(t===1||t===3)&&([c[u],c[i]]=[c[i],c[u]]);let l=c.reduce((g,h)=>g*h,1),f=new s(l),m=E(a),p=r.data;if(o===2&&u===0&&i===1){let g=n[0],h=n[1];if(t===1){let N=h,D=g;if(m){let x=p,C=f;for(let w=0;w<N;w++){let _=w*D,I=h-1-w;for(let v=0;v<D;v++)C[_+v]=x[v*h+I]}}else{let x=p,C=f;for(let w=0;w<N;w++){let _=w*D,I=h-1-w;for(let v=0;v<D;v++)C[_+v]=x[v*h+I]}}}else if(t===2)if(m){let N=p,D=f;for(let x=0;x<g;x++){let C=x*h,w=(g-1-x)*h;for(let _=0;_<h;_++)D[C+_]=N[w+(h-1-_)]}}else{let N=p,D=f;for(let x=0;x<g;x++){let C=x*h,w=(g-1-x)*h;for(let _=0;_<h;_++)D[C+_]=N[w+(h-1-_)]}}else{let N=h,D=g;if(m){let x=p,C=f;for(let w=0;w<N;w++){let _=w*D;for(let I=0;I<D;I++)C[_+I]=x[(g-1-I)*h+w]}}else{let x=p,C=f;for(let w=0;w<N;w++){let _=w*D;for(let I=0;I<D;I++)C[_+I]=x[(g-1-I)*h+w]}}}return S.fromData(f,c,a)}let y=lr(c),d=lr(n),b=new Array(o).fill(0),A=new Array(o);for(let g=0;g<r.size;g++){for(let C=0;C<o;C++)A[C]=b[C];let h,N;t===1?(h=n[i]-1-b[i],N=b[u]):t===2?(h=n[u]-1-b[u],N=n[i]-1-b[i],A[u]=h,A[i]=N):(h=b[i],N=n[u]-1-b[u]),t!==2&&(A[u]=h,A[i]=N);let D=0;for(let C=0;C<o;C++)D+=A[C]*y[C];let x=0;for(let C=0;C<o;C++)x+=b[C]*d[C];if(m){let C=p,w=f;w[D]=C[x]}else{let C=p,w=f;w[D]=C[x]}for(let C=o-1;C>=0&&(b[C]++,!(b[C]<n[C]));C--)b[C]=0}return S.fromData(f,c,a)}function Lf(r,t,e){let n=r.shape,o=n.length,a=r.dtype,u=r.size;if(e===void 0){let y=Array.isArray(t)?t.reduce((h,N)=>h+N,0):t,d=Xr(r),b=K(a);if(!b)throw new Error(`Cannot roll array with dtype ${a}`);let A=new b(u),g=E(a);for(let h=0;h<u;h++){let N=((h-y)%u+u)%u,D=d.iget(N);A[h]=D}return S.fromData(A,[...n],a)}let i=Array.isArray(t)?t:[t],s=Array.isArray(e)?e:[e];if(i.length!==s.length)throw new Error("shift and axis must have the same length");let c=s.map(y=>{let d=y<0?o+y:y;if(d<0||d>=o)throw new Error(`axis ${y} is out of bounds for array of dimension ${o}`);return d}),l=K(a);if(!l)throw new Error(`Cannot roll array with dtype ${a}`);let f=new l(u),m=E(a),p=new Array(o).fill(0);for(let y=0;y<u;y++){let d=[...p];for(let g=0;g<c.length;g++){let h=c[g],N=n[h],D=i[g];d[h]=((d[h]-D)%N+N)%N}let b=r.offset;for(let g=0;g<o;g++)b+=d[g]*r.strides[g];let A=r.data[b];f[y]=A;for(let g=o-1;g>=0&&(p[g]++,!(p[g]<n[g]));g--)p[g]=0}return S.fromData(f,[...n],a)}function Gf(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):xi(r,o,a)}function Yf(r,t){if(r.ndim<3)throw new Error("dsplit only works on arrays of 3 or more dimensions");return xe(r,t,2)}function Wf(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?ur(e,[e.shape[0],1]):e);return Ci(t)}function Zf(r,t){let e=r.dtype,n=t.reduce((s,c)=>s*c,1),o=r.size,a=K(e);if(!a)throw new Error(`Cannot resize array with dtype ${e}`);let u=new a(n),i=E(e);for(let s=0;s<n;s++){let c=s%o,l=r.iget(c);u[s]=l}return S.fromData(u,t,e)}function Jf(r){return r.map(t=>t.ndim===0?ur(t,[1]):t)}function Xf(r){return r.map(t=>t.ndim===0?ur(t,[1,1]):t.ndim===1?ur(t,[1,t.shape[0]]):t)}function Kf(r){return r.map(t=>t.ndim===0?ur(t,[1,1,1]):t.ndim===1?ur(t,[1,t.shape[0],1]):t.ndim===2?ur(t,[t.shape[0],t.shape[1],1]):t)}function Qf(r,t=0){let e=r.shape,n=e.length,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[o],u=[];for(let i=0;i<a;i++){let s=[];for(let f=0;f<n;f++)f===o?s.push({start:i,stop:i+1,step:1}):s.push({start:0,stop:e[f],step:1});let c=sD(r,s),l=Di(c,o);u.push(l)}return u}function Hf(r,t=1){if(r.length===0)throw new Error("need at least one array to block");return r.length===1?r[0].copy():Wr(r,-1)}function sD(r,t){let e=r.shape,n=r.strides,o=r.offset,a=r.dtype,u=r.data,i=[],s=[];for(let c=0;c<e.length;c++){let l=t[c],{start:f,stop:m,step:p}=l,y=Math.ceil((m-f)/p);i.push(y),s.push(n[c]*p),o+=f*n[c]}return S.fromData(u,i,a,s,o)}function kr(r,t){if(r instanceof U||t instanceof U){let e=r instanceof U?r:new U(Number(r),0),n=t instanceof U?t:new U(Number(t),0);return e.mul(n)}return typeof r=="bigint"&&typeof t=="bigint"?Number(r*t):Number(r)*Number(t)}function iD(r,t,e,n,o,a,u,i,s){for(let c=0;c<e;c++)for(let l=0;l<a;l++)for(let f=0;f<u;f++){let m=0;for(let p=0;p<i;p++)m+=r[t+c*i+p]*n[o+l*i*u+p*u+f];s[c*a*u+l*u+f]=m}}function uD(r,t,e,n,o,a,u,i,s,c){for(let l=0;l<e;l++)for(let f=0;f<u;f++){let m=0;for(let p=0;p<s;p++){let y=n===1?p:l*s+p,d=i===1?p:f*s+p;m+=r[t+y]*o[a+d]}c[e===1?f:l*u+f]=m}}function cD(r,t,e,n,o,a,u,i,s,c,l,f){for(let y=0;y<e*n;y++)l[y]=0;let m=r==="transpose",p=t==="transpose";if(!m&&!p)for(let y=0;y<e;y++)for(let d=0;d<n;d++){let b=0;for(let A=0;A<o;A++)b+=(u[y*i+A]??0)*(s[A*c+d]??0);l[y*f+d]=a*b}else if(m&&!p)for(let y=0;y<e;y++)for(let d=0;d<n;d++){let b=0;for(let A=0;A<o;A++)b+=(u[A*i+y]??0)*(s[A*c+d]??0);l[y*f+d]=a*b}else if(!m&&p)for(let y=0;y<e;y++)for(let d=0;d<n;d++){let b=0;for(let A=0;A<o;A++)b+=(u[y*i+A]??0)*(s[d*c+A]??0);l[y*f+d]=a*b}else for(let y=0;y<e;y++)for(let d=0;d<n;d++){let b=0;for(let A=0;A<o;A++)b+=(u[A*i+y]??0)*(s[d*c+A]??0);l[y*f+d]=a*b}}function lt(r,t){let e=r.ndim,n=t.ndim,o=B(r.dtype)||B(t.dtype);if(e===0||n===0){let a=e===0?r.get():null,u=n===0?t.get():null;if(e===0&&n===0)return kr(a,u);if(e===0){let i=or(r.dtype,t.dtype),s=S.zeros([...t.shape],i),c=(l,f)=>{let m=new Array(f.length),p=l;for(let y=f.length-1;y>=0;y--)m[y]=p%f[y],p=Math.floor(p/f[y]);return m};for(let l=0;l<t.size;l++){let f=c(l,t.shape),m=t.get(...f);s.set(f,kr(a,m))}return s}else{let i=or(r.dtype,t.dtype),s=S.zeros([...r.shape],i),c=(l,f)=>{let m=new Array(f.length),p=l;for(let y=f.length-1;y>=0;y--)m[y]=p%f[y],p=Math.floor(p/f[y]);return m};for(let l=0;l<r.size;l++){let f=c(l,r.shape),m=r.get(...f);s.set(f,kr(m,u))}return s}}if(e===1&&n===1){if(r.shape[0]!==t.shape[0])throw new Error(`dot: incompatible shapes (${r.shape[0]},) and (${t.shape[0]},)`);let a=r.shape[0];if(o){let i=0,s=0;for(let c=0;c<a;c++){let l=r.get(c),f=t.get(c),m=kr(l,f);m instanceof U?(i+=m.re,s+=m.im):i+=m}return new U(i,s)}let u=0;for(let i=0;i<a;i++){let s=r.get(i),c=t.get(i);typeof s=="bigint"&&typeof c=="bigint"?u=Number(u)+Number(s*c):u+=Number(s)*Number(c)}return u}if(e===2&&n===2)return Ar(r,t);if(e===2&&n===1){let[a,u]=r.shape,i=t.shape[0];if(u!==i)throw new Error(`dot: incompatible shapes (${a},${u}) and (${i},)`);let s=or(r.dtype,t.dtype),c=S.zeros([a],s);if(o)for(let l=0;l<a;l++){let f=0,m=0;for(let p=0;p<u;p++){let y=r.get(l,p),d=t.get(p),b=y instanceof U?y:new U(Number(y),0),A=d instanceof U?d:new U(Number(d),0);f+=b.re*A.re-b.im*A.im,m+=b.re*A.im+b.im*A.re}c.set([l],new U(f,m))}else for(let l=0;l<a;l++){let f=0;for(let m=0;m<u;m++){let p=r.get(l,m),y=t.get(m);typeof p=="bigint"&&typeof y=="bigint"?f=Number(f)+Number(p*y):f+=Number(p)*Number(y)}c.set([l],f)}return c}if(e===1&&n===2){let a=r.shape[0],[u,i]=t.shape;if(a!==u)throw new Error(`dot: incompatible shapes (${a},) and (${u},${i})`);let s=or(r.dtype,t.dtype),c=S.zeros([i],s);if(o)for(let l=0;l<i;l++){let f=0,m=0;for(let p=0;p<a;p++){let y=r.get(p),d=t.get(p,l),b=y instanceof U?y:new U(Number(y),0),A=d instanceof U?d:new U(Number(d),0);f+=b.re*A.re-b.im*A.im,m+=b.re*A.im+b.im*A.re}c.set([l],new U(f,m))}else for(let l=0;l<i;l++){let f=0;for(let m=0;m<a;m++){let p=r.get(m),y=t.get(m,l);typeof p=="bigint"&&typeof y=="bigint"?f=Number(f)+Number(p*y):f+=Number(p)*Number(y)}c.set([l],f)}return c}if(e>2&&n===1){let a=r.shape[e-1],u=t.shape[0];if(a!==u)throw new Error(`dot: incompatible shapes ${JSON.stringify(r.shape)} and (${u},)`);let i=[...r.shape.slice(0,-1)],s=or(r.dtype,t.dtype),c=S.zeros(i,s),l=i.reduce((f,m)=>f*m,1);if(o)for(let f=0;f<l;f++){let m=0,p=0,y=f,d=[];for(let b=i.length-1;b>=0;b--)d[b]=y%i[b],y=Math.floor(y/i[b]);for(let b=0;b<a;b++){let A=[...d,b],g=r.get(...A),h=t.get(b),N=g instanceof U?g:new U(Number(g),0),D=h instanceof U?h:new U(Number(h),0);m+=N.re*D.re-N.im*D.im,p+=N.re*D.im+N.im*D.re}c.set(d,new U(m,p))}else for(let f=0;f<l;f++){let m=0,p=f,y=[];for(let d=i.length-1;d>=0;d--)y[d]=p%i[d],p=Math.floor(p/i[d]);for(let d=0;d<a;d++){let b=[...y,d],A=r.get(...b),g=t.get(d);typeof A=="bigint"&&typeof g=="bigint"?m=Number(m)+Number(A*g):m+=Number(A)*Number(g)}c.set(y,m)}return c}if(e===1&&n>2){let a=r.shape[0],u=1,i=t.shape[u];if(a!==i)throw new Error(`dot: incompatible shapes (${a},) and ${JSON.stringify(t.shape)}`);let s=[...t.shape.slice(0,u),...t.shape.slice(u+1)],c=or(r.dtype,t.dtype),l=S.zeros(s,c),f=s.reduce((m,p)=>m*p,1);if(o)for(let m=0;m<f;m++){let p=m,y=[];for(let h=s.length-1;h>=0;h--)y[h]=p%s[h],p=Math.floor(p/s[h]);let d=y.slice(0,u),b=y.slice(u),A=0,g=0;for(let h=0;h<a;h++){let N=r.get(h),D=[...d,h,...b],x=t.get(...D),C=N instanceof U?N:new U(Number(N),0),w=x instanceof U?x:new U(Number(x),0);A+=C.re*w.re-C.im*w.im,g+=C.re*w.im+C.im*w.re}l.set(y,new U(A,g))}else for(let m=0;m<f;m++){let p=m,y=[];for(let g=s.length-1;g>=0;g--)y[g]=p%s[g],p=Math.floor(p/s[g]);let d=y.slice(0,u),b=y.slice(u),A=0;for(let g=0;g<a;g++){let h=r.get(g),N=[...d,g,...b],D=t.get(...N);typeof h=="bigint"&&typeof D=="bigint"?A=Number(A)+Number(h*D):A+=Number(h)*Number(D)}l.set(y,A)}return l}if(e>=2&&n>=2&&!(e===2&&n===2)){let a=r.shape[e-1],u=t.shape[n-2];if(a!==u)throw new Error(`dot: incompatible shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(t.shape)}`);let i=[...r.shape.slice(0,-1),...t.shape.slice(0,-2),t.shape[n-1]],s=or(r.dtype,t.dtype),c=S.zeros(i,s),l=r.shape.slice(0,-1).reduce((y,d)=>y*d,1),f=t.shape.slice(0,-2).reduce((y,d)=>y*d,1),m=t.shape[n-1],p=a;if(o)for(let y=0;y<l;y++)for(let d=0;d<f;d++)for(let b=0;b<m;b++){let A=0,g=0;for(let D=0;D<p;D++){let x=[],C=y;for(let $=r.shape.length-2;$>=0;$--)x.unshift(C%r.shape[$]),C=Math.floor(C/r.shape[$]);x.push(D);let w=r.get(...x),_=[],I=d;for(let $=t.shape.length-3;$>=0;$--)_.unshift(I%t.shape[$]),I=Math.floor(I/t.shape[$]);_.push(D,b);let v=t.get(..._),T=w instanceof U?w:new U(Number(w),0),O=v instanceof U?v:new U(Number(v),0);A+=T.re*O.re-T.im*O.im,g+=T.re*O.im+T.im*O.re}let h=y*f*m+d*m+b,N=c.data;N[h*2]=A,N[h*2+1]=g}else if(r.isCContiguous&&t.isCContiguous&&!E(r.dtype)&&!E(t.dtype))iD(r.data,r.offset,l,t.data,t.offset,f,m,p,c.data);else for(let y=0;y<l;y++)for(let d=0;d<f;d++)for(let b=0;b<m;b++){let A=0;for(let h=0;h<p;h++){let N=y*p+h,D=d*p*m+h*m+b,x=r.iget(N),C=t.iget(D);typeof x=="bigint"&&typeof C=="bigint"?A=Number(A)+Number(x*C):A+=Number(x)*Number(C)}let g=y*f*m+d*m+b;c.data[g]=A}return c}throw new Error(`dot: unexpected combination of dimensions ${e}D \xB7 ${n}D`)}function Ar(r,t){if(r.ndim!==2||t.ndim!==2)throw new Error("matmul requires 2D arrays");let[e=0,n=0]=r.shape,[o=0,a=0]=t.shape;if(n!==o)throw new Error(`matmul shape mismatch: (${e},${n}) @ (${o},${a})`);let u=or(r.dtype,t.dtype);if(B(u)){let D=S.zeros([e,a],u),x=D.data;for(let C=0;C<e;C++)for(let w=0;w<a;w++){let _=0,I=0;for(let T=0;T<n;T++){let O=r.iget(C*n+T),$=t.iget(T*a+w);_+=O.re*$.re-O.im*$.im,I+=O.re*$.im+O.im*$.re}let v=C*a+w;x[v*2]=_,x[v*2+1]=I}return D}let i=u.startsWith("int")||u.startsWith("uint")||u==="bool"?"float64":u;if(i!=="float64")throw new Error(`matmul currently only supports float64, got ${i}`);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,f=0]=r.strides,[m=0,p=0]=t.strides,y=f>l,d=p>m,b=y?"transpose":"no-transpose",A=d?"transpose":"no-transpose",g,h;y?g=f:g=l,d?h=p:h=m;let N=S.zeros([e,a],"float64");return cD(b,A,e,a,n,1,s,g,c,h,N.data,a),N}function em(r){if(r.ndim!==2)throw new Error(`trace requires 2D array, got ${r.ndim}D`);let[t=0,e=0]=r.shape,n=Math.min(t,e);if(B(r.dtype)){let a=0,u=0;for(let i=0;i<n;i++){let s=r.get(i,i);a+=s.re,u+=s.im}return new U(a,u)}let o=0;for(let a=0;a<n;a++){let u=r.get(a,a);typeof u=="bigint"?o=(typeof o=="bigint"?o:BigInt(o))+u:o=(typeof o=="bigint"?Number(o):o)+u}return o}function Qr(r,t){return Ni(r,t)}function nm(r,t){let e=r.ndim,n=t.ndim,o=B(r.dtype)||B(t.dtype),a=r.shape[e-1],u=t.shape[n-1];if(a!==u)throw new Error(`inner: incompatible shapes - last dimensions ${a} and ${u} don't match`);if(e===1&&n===1)return lt(r,t);let i=[...r.shape.slice(0,-1),...t.shape.slice(0,-1)],s=or(r.dtype,t.dtype),c=S.zeros(i,s),l=e===1?1:r.shape.slice(0,-1).reduce((p,y)=>p*y,1),f=n===1?1:t.shape.slice(0,-1).reduce((p,y)=>p*y,1),m=a;if(o)for(let p=0;p<l;p++)for(let y=0;y<f;y++){let d=0,b=0;for(let h=0;h<m;h++){let N,D;if(e===1)N=r.get(h);else{let w=[],_=p,I=r.shape.slice(0,-1);for(let v=I.length-1;v>=0;v--)w.unshift(_%I[v]),_=Math.floor(_/I[v]);w.push(h),N=r.get(...w)}if(n===1)D=t.get(h);else{let w=[],_=y,I=t.shape.slice(0,-1);for(let v=I.length-1;v>=0;v--)w.unshift(_%I[v]),_=Math.floor(_/I[v]);w.push(h),D=t.get(...w)}let x=N instanceof U?N:new U(Number(N),0),C=D instanceof U?D:new U(Number(D),0);d+=x.re*C.re-x.im*C.im,b+=x.re*C.im+x.im*C.re}if(i.length===0)return new U(d,b);let A=l===1?y:p*f+y,g=c.data;g[A*2]=d,g[A*2+1]=b}else if(r.isCContiguous&&t.isCContiguous&&!E(r.dtype)&&!E(t.dtype)){if(i.length===0){let p=r.data,y=t.data,d=r.offset,b=t.offset,A=0;for(let g=0;g<m;g++)A+=p[d+g]*y[b+g];return A}uD(r.data,r.offset,l,e,t.data,t.offset,f,n,m,c.data)}else for(let p=0;p<l;p++)for(let y=0;y<f;y++){let d=0;for(let A=0;A<m;A++){let g=e===1?A:p*m+A,h=n===1?A:y*m+A,N=r.iget(g),D=t.iget(h);typeof N=="bigint"&&typeof D=="bigint"?d=Number(d)+Number(N*D):d+=Number(N)*Number(D)}if(i.length===0)return d;let b=l===1?y:p*f+y;c.data[b]=d}return c}function Ii(r,t){let e=r.ndim===1?r:ut(r),n=t.ndim===1?t:ut(t),o=e.size,a=n.size,u=or(r.dtype,t.dtype),i=S.zeros([o,a],u);for(let s=0;s<o;s++)for(let c=0;c<a;c++){let l=e.get(s),f=n.get(c),m=kr(l,f);i.set([s,c],m)}return i}function om(r,t,e){let n,o;if(typeof e=="number"){let y=e;if(y<0)throw new Error("tensordot: axes must be non-negative");if(y>r.ndim||y>t.ndim)throw new Error("tensordot: axes exceeds array dimensions");n=Array.from({length:y},(d,b)=>r.ndim-y+b),o=Array.from({length:y},(d,b)=>b)}else if([n,o]=e,n.length!==o.length)throw new Error("tensordot: axes lists must have same length");for(let y=0;y<n.length;y++){let d=n[y],b=o[y];if(d<0||d>=r.ndim||b<0||b>=t.ndim)throw new Error("tensordot: axis out of bounds");if(r.shape[d]!==t.shape[b])throw new Error(`tensordot: shape mismatch on axes ${d} and ${b}: ${r.shape[d]} != ${t.shape[b]}`)}let a=[],u=[];for(let y=0;y<r.ndim;y++)n.includes(y)||a.push(y);for(let y=0;y<t.ndim;y++)o.includes(y)||u.push(y);let i=[...a.map(y=>r.shape[y]),...u.map(y=>t.shape[y])],s=or(r.dtype,t.dtype),c=B(s),l=y=>y instanceof U?{re:y.re,im:y.im}:{re:Number(y),im:0};if(i.length===0){let y=0,d=0,b=n.map(A=>r.shape[A]).reduce((A,g)=>A*g,1);for(let A=0;A<b;A++){let g=A,h=new Array(n.length);for(let w=n.length-1;w>=0;w--){let _=n[w];h[w]=g%r.shape[_],g=Math.floor(g/r.shape[_])}let N=new Array(r.ndim),D=new Array(t.ndim);for(let w=0;w<n.length;w++)N[n[w]]=h[w];for(let w=0;w<o.length;w++)D[o[w]]=h[w];let x=r.get(...N),C=t.get(...D);if(c){let w=l(x),_=l(C);y+=w.re*_.re-w.im*_.im,d+=w.re*_.im+w.im*_.re}else typeof x=="bigint"&&typeof C=="bigint"?y+=Number(x*C):y+=Number(x)*Number(C)}return c?new U(y,d):y}let f=S.zeros(i,s),m=i.reduce((y,d)=>y*d,1),p=n.map(y=>r.shape[y]).reduce((y,d)=>y*d,1);for(let y=0;y<m;y++){let d=y,b=[];for(let D=i.length-1;D>=0;D--)b[D]=d%i[D],d=Math.floor(d/i[D]);let A=b.slice(0,a.length),g=b.slice(a.length),h=0,N=0;for(let D=0;D<p;D++){d=D;let x=[];for(let v=n.length-1;v>=0;v--){let T=n[v];x[v]=d%r.shape[T],d=Math.floor(d/r.shape[T])}let C=new Array(r.ndim),w=new Array(t.ndim);for(let v=0;v<a.length;v++)C[a[v]]=A[v];for(let v=0;v<u.length;v++)w[u[v]]=g[v];for(let v=0;v<n.length;v++)C[n[v]]=x[v],w[o[v]]=x[v];let _=r.get(...C),I=t.get(...w);if(c){let v=l(_),T=l(I);h+=v.re*T.re-v.im*T.im,N+=v.re*T.im+v.im*T.re}else typeof _=="bigint"&&typeof I=="bigint"?h+=Number(_*I):h+=Number(_)*Number(I)}c?f.set(b,new U(h,N)):f.set(b,h)}return f}function am(r,t=0,e=0,n=1){let o=r.shape,a=o.length;if(a<2)throw new Error("diagonal requires an array of at least two dimensions");let u=e<0?a+e:e,i=n<0?a+n:n;if(u<0||u>=a||i<0||i>=a)throw new Error("axis out of bounds");if(u===i)throw new Error("axis1 and axis2 cannot be the same");let s=o[u],c=o[i],l;t>=0?l=Math.max(0,Math.min(s,c-t)):l=Math.max(0,Math.min(s+t,c));let f=[];for(let d=0;d<a;d++)d!==u&&d!==i&&f.push(o[d]);f.push(l);let m=S.zeros(f,r.dtype),p=o.filter((d,b)=>b!==u&&b!==i),y=p.reduce((d,b)=>d*b,1);for(let d=0;d<y;d++){let b=d,A=[];for(let g=p.length-1;g>=0;g--)A.unshift(b%p[g]),b=Math.floor(b/p[g]);for(let g=0;g<l;g++){let h=new Array(a),N=0;for(let C=0;C<a;C++)C===u?h[C]=t>=0?g:g-t:C===i?h[C]=t>=0?g+t:g:h[C]=A[N++];let D=[...A,g],x=r.get(...h);m.set(D,x)}}return m}function sm(r,...t){let e=r.indexOf("->"),n,o;e===-1?(n=r,o=im(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 u=new Map;for(let d=0;d<t.length;d++){let b=a[d],A=t[d];if(b.length!==A.ndim)throw new Error(`einsum: operand ${d} has ${A.ndim} dimensions but subscript '${b}' has ${b.length} indices`);for(let g=0;g<b.length;g++){let h=b[g],N=A.shape[g];if(u.has(h)){if(u.get(h)!==N)throw new Error(`einsum: size mismatch for index '${h}': ${u.get(h)} vs ${N}`)}else u.set(h,N)}}for(let d of o)if(!u.has(d))throw new Error(`einsum: output subscript contains unknown index '${d}'`);let i=new Set(o),s=new Set;for(let d of a)for(let b of d)s.add(b);let c=[];for(let d of s)i.has(d)||c.push(d);if(t.length===2&&a.length===2){let[d,b]=a,[A,g]=t;if(d.length===2&&b.length===2&&o.length===2&&A.ndim===2&&g.ndim===2){let[h,N]=[d[0],d[1]],[D,x]=[b[0],b[1]],[C,w]=[o[0],o[1]];if(h===C&&x===w&&N===D&&c.length===1&&c[0]===N||h===C&&x===w&&N===D&&c.length===1&&c[0]===N)return Ar(A,g);if(N===C&&x===w&&h===D&&c.length===1&&c[0]===h){let _=Qr(A);return Ar(_,g)}if(h===C&&D===w&&N===x&&c.length===1&&c[0]===N){let _=Qr(g);return Ar(A,_)}}if(d.length===1&&b.length===1&&d===b&&o.length===0&&A.ndim===1&&g.ndim===1)return Si(t,a,c,u);if(d&&b&&d.length===1&&b.length===1&&o.length===2&&o===d+b&&c.length===0&&A.ndim===1&&g.ndim===1)return Ii(A,g)}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 Si(t,a,c,u)}let l=Array.from(o).map(d=>u.get(d));if(l.length===0)return Si(t,a,c,u);let f=t[0].dtype;for(let d=1;d<t.length;d++)f=or(f,t[d].dtype);let m=S.zeros(l,f),p=l.reduce((d,b)=>d*b,1),y=1;for(let d of c)y*=u.get(d);for(let d=0;d<p;d++){let b=lD(d,l),A=new Map;for(let h=0;h<o.length;h++)A.set(o[h],b[h]);let g=0;for(let h=0;h<y;h++){let N=h;for(let x=c.length-1;x>=0;x--){let C=c[x],w=u.get(C);A.set(C,N%w),N=Math.floor(N/w)}let D=1;for(let x=0;x<t.length;x++){let C=t[x],w=a[x],_=[];for(let v of w)_.push(A.get(v));let I=C.get(..._);D*=Number(I)}g+=D}m.set(b,g)}return m}function im(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 Si(r,t,e,n){let o=!1;for(let c of r)if(B(c.dtype)){o=!0;break}let a=c=>c instanceof U?{re:c.re,im:c.im}:{re:Number(c),im:0},u=1;for(let c of e)u*=n.get(c);let i=0,s=0;for(let c=0;c<u;c++){let l=new Map,f=c;for(let y=e.length-1;y>=0;y--){let d=e[y],b=n.get(d);l.set(d,f%b),f=Math.floor(f/b)}let m=1,p=0;for(let y=0;y<r.length;y++){let d=r[y],b=t[y],A=[];for(let h of b)A.push(l.get(h));let g=d.get(...A);if(o){let h=a(g),N=m*h.re-p*h.im,D=m*h.im+p*h.re;m=N,p=D}else m*=Number(g)}i+=m,s+=p}return o?new U(i,s):i}function lD(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 um(r,t){let e=r.shape,n=t.shape,o=e.length,a=n.length,u=or(r.dtype,t.dtype),i=Math.max(o,a),s=new Array(i),c=new Array(i).fill(1),l=new Array(i).fill(1);for(let y=0;y<o;y++)c[i-o+y]=e[y];for(let y=0;y<a;y++)l[i-a+y]=n[y];for(let y=0;y<i;y++)s[y]=c[y]*l[y];let f=S.zeros(s,u),m=e.reduce((y,d)=>y*d,1),p=n.reduce((y,d)=>y*d,1);for(let y=0;y<m;y++){let d=y,b=new Array(o);for(let h=o-1;h>=0;h--)b[h]=d%e[h],d=Math.floor(d/e[h]);let A=new Array(i).fill(0);for(let h=0;h<o;h++)A[i-o+h]=b[h];let g=r.get(...b);for(let h=0;h<p;h++){let N=h,D=new Array(a);for(let I=a-1;I>=0;I--)D[I]=N%n[I],N=Math.floor(N/n[I]);let x=new Array(i).fill(0);for(let I=0;I<a;I++)x[i-a+I]=D[I];let C=t.get(...D),w=new Array(i);for(let I=0;I<i;I++)w[I]=A[I]*l[I]+x[I];let _=kr(g,C);f.set(w,_)}}return f}function cm(r,t,e=-1,n=-1,o=-1,a){a!==void 0&&(e=a,n=a,o=a);let u=(w,_)=>w<0?_+w:w,i=u(e,r.ndim),s=u(n,t.ndim),c=or(r.dtype,t.dtype),l=B(c),f=(w,..._)=>{let I=w.get(..._);return I instanceof U?I:Number(I)},m=(w,_)=>{if(w instanceof U||_ instanceof U){let I=w instanceof U?w:new U(w,0),v=_ instanceof U?_:new U(_,0);return I.mul(v)}return w*_},p=(w,_)=>{if(w instanceof U||_ instanceof U){let I=w instanceof U?w:new U(w,0),v=_ instanceof U?_:new U(_,0);return I.sub(v)}return w-_};if(r.ndim===1&&t.ndim===1){let w=r.shape[0],_=t.shape[0];if(w===3&&_===3){let I=f(r,0),v=f(r,1),T=f(r,2),O=f(t,0),$=f(t,1),k=f(t,2),V=S.zeros([3],c);return V.set([0],p(m(v,k),m(T,$))),V.set([1],p(m(T,O),m(I,k))),V.set([2],p(m(I,$),m(v,O))),V}else if(w===2&&_===2){let I=f(r,0),v=f(r,1),T=f(t,0),O=f(t,1);return p(m(I,O),m(v,T))}else if(w===2&&_===3||w===3&&_===2){let I=f(r,0),v=f(r,1),T=w===3?f(r,2):l?new U(0,0):0,O=f(t,0),$=f(t,1),k=_===3?f(t,2):l?new U(0,0):0,V=S.zeros([3],c);return V.set([0],p(m(v,k),m(T,$))),V.set([1],p(m(T,O),m(I,k))),V.set([2],p(m(I,$),m(v,O))),V}else throw new Error(`cross: incompatible dimensions for cross product: ${w} and ${_}`)}let y=r.shape[i],d=t.shape[s];if(y!==2&&y!==3||d!==2&&d!==3)throw new Error(`cross: incompatible dimensions for cross product: ${y} and ${d}`);let b=y===2&&d===2?0:3,A=[...r.shape.slice(0,i),...r.shape.slice(i+1)],g=[...t.shape.slice(0,s),...t.shape.slice(s+1)];if(A.length!==g.length)throw new Error("cross: incompatible shapes for cross product");for(let w=0;w<A.length;w++)if(A[w]!==g[w])throw new Error("cross: incompatible shapes for cross product");let h=A,N=o<0?h.length+1+o:o,D;if(b===0?D=h:D=[...h.slice(0,N),b,...h.slice(N)],D.length===0)throw new Error("cross: unexpected scalar result from higher-dimensional input");let x=S.zeros(D,c),C=h.reduce((w,_)=>w*_,1);for(let w=0;w<C;w++){let _=w,I=[];for(let X=h.length-1;X>=0;X--)I[X]=_%h[X],_=Math.floor(_/h[X]);let v=[...I.slice(0,i),0,...I.slice(i)],T=[...I.slice(0,s),0,...I.slice(s)],O=X=>(v[i]=X,f(r,...v)),$=X=>(T[s]=X,f(t,...T)),k=O(0),V=O(1),j=y===3?O(2):l?new U(0,0):0,R=$(0),W=$(1),J=d===3?$(2):l?new U(0,0):0;if(b===0)x.set(I,p(m(k,W),m(V,R)));else{let X=p(m(V,J),m(j,W)),rr=p(m(j,R),m(k,J)),yr=p(m(k,W),m(V,R)),nr=(dr,Er)=>{let IN=[...I.slice(0,N),dr,...I.slice(N)];x.set(IN,Er)};nr(0,X),nr(1,rr),nr(2,yr)}}return x}function ct(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:ut(r),l=c.size,f;if(t===1/0){f=0;for(let m=0;m<l;m++)f=Math.max(f,Math.abs(Number(c.get(m))))}else if(t===-1/0){f=1/0;for(let m=0;m<l;m++)f=Math.min(f,Math.abs(Number(c.get(m))))}else if(t===0){f=0;for(let m=0;m<l;m++)Number(c.get(m))!==0&&f++}else if(t===1){f=0;for(let m=0;m<l;m++)f+=Math.abs(Number(c.get(m)))}else if(t===2){f=0;for(let m=0;m<l;m++){let p=Number(c.get(m));f+=p*p}f=Math.sqrt(f)}else{f=0;for(let m=0;m<l;m++)f+=Math.pow(Math.abs(Number(c.get(m))),t);f=Math.pow(f,1/t)}if(n){let m=new Array(r.ndim).fill(1),p=S.zeros(m,"float64");return p.set(new Array(r.ndim).fill(0),f),p}return f}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 ct(r,t,null,!1);let u=S.zeros(a,"float64"),i=r.shape[o],s=a.reduce((c,l)=>c*l,1);for(let c=0;c<s;c++){let l=c,f=[];for(let y=a.length-1;y>=0;y--)f[y]=l%a[y],l=Math.floor(l/a[y]);let m=n?[...f.slice(0,o),0,...f.slice(o+1)]:[...f.slice(0,o),0,...f.slice(o)],p;if(t===1/0){p=0;for(let y=0;y<i;y++)m[o]=y,p=Math.max(p,Math.abs(Number(r.get(...m))))}else if(t===-1/0){p=1/0;for(let y=0;y<i;y++)m[o]=y,p=Math.min(p,Math.abs(Number(r.get(...m))))}else if(t===0){p=0;for(let y=0;y<i;y++)m[o]=y,Number(r.get(...m))!==0&&p++}else if(t===1){p=0;for(let y=0;y<i;y++)m[o]=y,p+=Math.abs(Number(r.get(...m)))}else if(t===2){p=0;for(let y=0;y<i;y++){m[o]=y;let d=Number(r.get(...m));p+=d*d}p=Math.sqrt(p)}else{p=0;for(let y=0;y<i;y++)m[o]=y,p+=Math.pow(Math.abs(Number(r.get(...m))),t);p=Math.pow(p,1/t)}u.set(f,p)}return u}function Kr(r,t="fro",e=!1){if(r.ndim!==2)throw new Error(`matrix_norm: input must be 2D, got ${r.ndim}D`);let[n,o]=r.shape,a;if(t==="fro"){a=0;for(let u=0;u<n;u++)for(let i=0;i<o;i++){let s=Number(r.get(u,i));a+=s*s}a=Math.sqrt(a)}else if(t==="nuc"){let{s:u}=Zr(r);a=0;for(let i=0;i<u.size;i++)a+=Number(u.get(i))}else if(t===1){a=0;for(let u=0;u<o;u++){let i=0;for(let s=0;s<n;s++)i+=Math.abs(Number(r.get(s,u)));a=Math.max(a,i)}}else if(t===-1){a=1/0;for(let u=0;u<o;u++){let i=0;for(let s=0;s<n;s++)i+=Math.abs(Number(r.get(s,u)));a=Math.min(a,i)}}else if(t===1/0){a=0;for(let u=0;u<n;u++){let i=0;for(let s=0;s<o;s++)i+=Math.abs(Number(r.get(u,s)));a=Math.max(a,i)}}else if(t===-1/0){a=1/0;for(let u=0;u<n;u++){let i=0;for(let s=0;s<o;s++)i+=Math.abs(Number(r.get(u,s)));a=Math.min(a,i)}}else if(t===2){let{s:u}=Zr(r);a=Number(u.get(0))}else if(t===-2){let{s:u}=Zr(r);a=Number(u.get(u.size-1))}else throw new Error(`matrix_norm: invalid ord value: ${t}`);if(e){let u=S.zeros([1,1],"float64");return u.set([0,0],a),u}return a}function lm(r,t=null,e=null,n=!1){if(t===null)return e===null?ct(r,2,null,n):typeof e=="number"?ct(r,2,e,n):Kr(r,"fro",n);if(Array.isArray(e)){if(e.length!==2)throw new Error("norm: axis must be a 2-tuple for matrix norms");let o=e[0]<0?r.ndim+e[0]:e[0],a=e[1]<0?r.ndim+e[1]:e[1];if(r.ndim!==2||o!==0&&o!==1||a!==0&&a!==1||o===a)throw new Error("norm: complex axis specification not yet supported");return Kr(r,t,n)}if(r.ndim===2&&e===null&&(t==="fro"||t==="nuc"))return Kr(r,t,n);if(typeof t!="number"&&t!==null)throw new Error(`norm: ord '${t}' not valid for vector norm`);return ct(r,t??2,e,n)}function zi(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 p=0;p<e;p++)for(let y=0;y<n;y++)a.set([p,y],Number(r.get(p,y)));let u=[],i=[];for(let p=0;p<o;p++){let y=e-p,d=[];for(let D=p;D<e;D++)d.push(Number(a.get(D,p)));let b=0;for(let D=0;D<y;D++)b+=d[D]*d[D];if(b=Math.sqrt(b),b<1e-15){u.push(d),i.push(0);continue}let A=d[0]>=0?1:-1,g=d[0]+A*b,h=[1];for(let D=1;D<y;D++)h.push(d[D]/g);let N=A*g/b;i.push(N),u.push(h);for(let D=p;D<n;D++){let x=0;for(let C=0;C<y;C++)x+=h[C]*Number(a.get(p+C,D));for(let C=0;C<y;C++)a.set([p+C,D],Number(a.get(p+C,D))-N*h[C]*x)}}if(t==="raw"){let p=S.zeros([e,n],"float64");for(let d=0;d<e;d++)for(let b=0;b<n;b++)p.set([d,b],Number(a.get(d,b)));let y=S.zeros([o],"float64");for(let d=0;d<o;d++)y.set([d],i[d]);return{h:p,tau:y}}if(t==="r"){let p=S.zeros([o,n],"float64");for(let y=0;y<o;y++)for(let d=y;d<n;d++)p.set([y,d],Number(a.get(y,d)));return p}let s=t==="complete"?e:o,c=S.zeros([e,s],"float64");for(let p=0;p<Math.min(e,s);p++)c.set([p,p],1);for(let p=o-1;p>=0;p--){let y=u[p],d=i[p],b=e-p;for(let A=p;A<s;A++){let g=0;for(let h=0;h<b;h++)g+=y[h]*Number(c.get(p+h,A));for(let h=0;h<b;h++)c.set([p+h,A],Number(c.get(p+h,A))-d*y[h]*g)}}let l=S.zeros([e,s],"float64");for(let p=0;p<e;p++)for(let y=0;y<s;y++)l.set([p,y],Number(c.get(p,y)));let f=t==="complete"?e:o,m=S.zeros([f,n],"float64");for(let p=0;p<f;p++)for(let y=0;y<n;y++)y>=p&&m.set([p,y],Number(a.get(p,y)));return{q:l,r:m}}function fm(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 u=0;u<o;u++)for(let i=0;i<=u;i++){let s=0;if(u===i){for(let l=0;l<i;l++)s+=Number(a.get(i,l))**2;let c=Number(r.get(i,i))-s;if(c<0)throw new Error("cholesky: matrix is not positive definite");a.set([i,i],Math.sqrt(c))}else{for(let l=0;l<i;l++)s+=Number(a.get(u,l))*Number(a.get(i,l));let c=Number(a.get(i,i));if(Math.abs(c)<1e-15)throw new Error("cholesky: matrix is not positive definite");a.set([u,i],(Number(r.get(u,i))-s)/c)}}if(t){let u=S.zeros([o,o],"float64");for(let i=0;i<o;i++)for(let s=i;s<o;s++)u.set([i,s],Number(a.get(s,i)));return u}return a}function Zr(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 f=0;f<e;f++)for(let m=0;m<e;m++){let p=0;for(let y=0;y<t;y++)p+=Number(r.get(y,f))*Number(r.get(y,m));o.set([f,m],p)}let{values:a,vectors:u}=_i(o),i=Array.from({length:e},(f,m)=>m);i.sort((f,m)=>a[m]-a[f]);let s=S.zeros([n],"float64");for(let f=0;f<n;f++){let m=a[i[f]];s.set([f],Math.sqrt(Math.max(0,m)))}let c=S.zeros([e,e],"float64");for(let f=0;f<e;f++)for(let m=0;m<e;m++)c.set([f,m],u[m][i[f]]);let l=S.zeros([t,t],"float64");for(let f=0;f<t;f++)for(let m=0;m<n;m++){let p=Number(s.get(m));if(p>1e-10){let y=0;for(let d=0;d<e;d++)y+=Number(r.get(f,d))*Number(c.get(m,d));l.set([f,m],y/p)}}if(t>n)for(let f=n;f<t;f++){let m=new Array(t).fill(0);m[f]=1;for(let y=0;y<f;y++){let d=0;for(let b=0;b<t;b++)d+=m[b]*Number(l.get(b,y));for(let b=0;b<t;b++)m[b]=m[b]-d*Number(l.get(b,y))}let p=0;for(let y=0;y<t;y++)p+=m[y]*m[y];if(p=Math.sqrt(p),p>1e-10)for(let y=0;y<t;y++)l.set([y,f],m[y]/p)}return{u:l,s,vt:c}}function _i(r){let t=r.shape[0],e=100*t*t,n=1e-10,o=[];for(let i=0;i<t;i++){o.push([]);for(let s=0;s<t;s++)o[i].push(Number(r.get(i,s)))}let a=[];for(let i=0;i<t;i++){a.push([]);for(let s=0;s<t;s++)a[i].push(i===s?1:0)}for(let i=0;i<e;i++){let s=0,c=0,l=1;for(let h=0;h<t;h++)for(let N=h+1;N<t;N++)Math.abs(o[h][N])>s&&(s=Math.abs(o[h][N]),c=h,l=N);if(s<n)break;let f=o[c][c],m=o[l][l],p=o[c][l],y;Math.abs(f-m)<1e-15?y=Math.PI/4:y=.5*Math.atan2(2*p,m-f);let d=Math.cos(y),b=Math.sin(y),A=d*d*f+b*b*m-2*b*d*p,g=b*b*f+d*d*m+2*b*d*p;o[c][c]=A,o[l][l]=g,o[c][l]=0,o[l][c]=0;for(let h=0;h<t;h++)if(h!==c&&h!==l){let N=o[h][c],D=o[h][l];o[h][c]=d*N-b*D,o[c][h]=o[h][c],o[h][l]=b*N+d*D,o[l][h]=o[h][l]}for(let h=0;h<t;h++){let N=a[h][c],D=a[h][l];a[h][c]=d*N-b*D,a[h][l]=b*N+d*D}}let u=[];for(let i=0;i<t;i++)u.push(o[i][i]);return{values:u,vectors:a}}function vi(r,t=!0,e=!0){let n=Zr(r);if(!e)return n.s;if(!t){let[o,a]=r.shape,u=Math.min(o,a),i=S.zeros([o,u],"float64");for(let c=0;c<o;c++)for(let l=0;l<u;l++)i.set([c,l],Number(n.u.get(c,l)));let s=S.zeros([u,a],"float64");for(let c=0;c<u;c++)for(let l=0;l<a;l++)s.set([c,l],Number(n.vt.get(c,l)));return{u:i,s:n.s,vt:s}}return n}function mm(r){if(r.ndim!==2)throw new Error(`det: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape;if(t!==e)throw new Error(`det: matrix must be square, got ${t}x${e}`);let n=t;if(n===0)return 1;let o=r.data;if(n===1)return Number(o[0]);if(n===2)return Number(o[0])*Number(o[3])-Number(o[1])*Number(o[2]);let{lu:a,sign:u}=Bo(r),i=a.data,s=u;for(let c=0;c<n;c++)s*=i[c*n+c];return s}function Bo(r){let[t,e]=r.shape,n=t,o=e,a=S.zeros([n,o],"float64"),u=a.data,i=r.data;for(let l=0;l<n*o;l++)u[l]=Number(i[l]);let s=Array.from({length:n},(l,f)=>f),c=1;for(let l=0;l<Math.min(n,o);l++){let f=Math.abs(u[l*o+l]),m=l;for(let y=l+1;y<n;y++){let d=Math.abs(u[y*o+l]);d>f&&(f=d,m=y)}if(m!==l){for(let d=0;d<o;d++){let b=u[l*o+d];u[l*o+d]=u[m*o+d],u[m*o+d]=b}let y=s[l];s[l]=s[m],s[m]=y,c=-c}let p=u[l*o+l];if(Math.abs(p)>1e-15)for(let y=l+1;y<n;y++){let d=u[y*o+l]/p;u[y*o+l]=d;for(let b=l+1;b<o;b++)u[y*o+b]=u[y*o+b]-d*u[l*o+b]}}return{lu:a,piv:s,sign:c}}function Ce(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}=Bo(r),u=o.data,i=S.zeros([n,n],"float64"),s=i.data;for(let c=0;c<n;c++){let l=new Float64Array(n);for(let f=0;f<n;f++){let m=a[f]===c?1:0;for(let p=0;p<f;p++)m-=u[f*n+p]*l[p];l[f]=m}for(let f=n-1;f>=0;f--){let m=l[f];for(let y=f+1;y<n;y++)m-=u[f*n+y]*s[y*n+c];let p=u[f*n+f];if(Math.abs(p)<1e-15)throw new Error("inv: singular matrix");s[f*n+c]=m/p}}return i}function tm(r,t){let[e]=r.shape,n=e,{lu:o,piv:a}=Bo(r),u=o.data,i=t.data,s=new Float64Array(n);for(let m=0;m<n;m++)s[m]=Number(i[a[m]]);let c=new Float64Array(n);for(let m=0;m<n;m++){let p=s[m];for(let y=0;y<m;y++)p-=u[m*n+y]*c[y];c[m]=p}let l=S.zeros([n],"float64"),f=l.data;for(let m=n-1;m>=0;m--){let p=c[m];for(let d=m+1;d<n;d++)p-=u[m*n+d]*f[d];let y=u[m*n+m];if(Math.abs(y)<1e-15)throw new Error("solve: singular matrix");f[m]=p/y}return l}function Mi(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 tm(r,t)}if(t.ndim===2){if(t.shape[0]!==o)throw new Error(`solve: incompatible shapes (${e},${n}) and (${t.shape[0]},${t.shape[1]})`);let a=t.shape[1],u=S.zeros([o,a],"float64");for(let i=0;i<a;i++){let s=S.zeros([o],"float64");for(let l=0;l<o;l++)s.set([l],Number(t.get(l,i)));let c=tm(r,s);for(let l=0;l<o;l++)u.set([l,i],Number(c.get(l)))}return u}throw new Error(`solve: b must be 1D or 2D, got ${t.ndim}D`)}function pm(r,t,e=null){if(r.ndim!==2)throw new Error(`lstsq: coefficient matrix must be 2D, got ${r.ndim}D`);let[n,o]=r.shape,{u:a,s:u,vt:i}=Zr(r),s=Math.min(n,o),c=e??Math.max(n,o)*Number.EPSILON,f=Number(u.get(0))*c,m=0;for(let g=0;g<s;g++)Number(u.get(g))>f&&m++;let p=t.ndim===1?ur(t,[t.size,1]):t,y=p.shape[1];if(p.shape[0]!==n)throw new Error(`lstsq: incompatible shapes (${n},${o}) and (${t.shape.join(",")})`);let d=S.zeros([o,y],"float64");for(let g=0;g<y;g++){let h=new Array(n).fill(0);for(let N=0;N<n;N++)for(let D=0;D<n;D++)h[N]+=Number(a.get(D,N))*Number(p.get(D,g));for(let N=0;N<o;N++){let D=0;for(let x=0;x<s;x++){let C=Number(u.get(x));C>f&&(D+=Number(i.get(x,N))*h[x]/C)}d.set([N,g],D)}}let b;if(n>o){b=S.zeros([y],"float64");for(let g=0;g<y;g++){let h=0;for(let N=0;N<n;N++){let D=0;for(let C=0;C<o;C++)D+=Number(r.get(N,C))*Number(d.get(C,g));let x=D-Number(p.get(N,g));h+=x*x}b.set([g],h)}}else b=S.zeros([0],"float64");return{x:t.ndim===1?ur(d,[o]):d,residuals:b,rank:m,s:u}}function ym(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:i}=Zr(r),s=Math.min(e,n),c=Number(i.get(0)),l=Number(i.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=Kr(r,t),a=Ce(r),u=Kr(a,t);return o*u}function dm(r,t){if(r.ndim===0)return Number(r.get())!==0?1:0;if(r.ndim===1){for(let u=0;u<r.size;u++)if(Number(r.get(u))!==0)return 1;return 0}if(r.ndim!==2)throw new Error(`matrix_rank: input must be at most 2D, got ${r.ndim}D`);let{s:e}=Zr(r),n=Number(e.get(0)),o=t??n*Math.max(r.shape[0],r.shape[1])*Number.EPSILON,a=0;for(let u=0;u<e.size;u++)Number(e.get(u))>o&&a++;return a}function bm(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,u=t;t<0&&(a=Ce(r),u=-t);let i=S.zeros([o,o],"float64");for(let c=0;c<o;c++)i.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(;u>0;)u&1&&(i=Ar(i,s)),s=Ar(s,s),u>>=1;return i}function Am(r,t=1e-15){if(r.ndim!==2)throw new Error(`pinv: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape,{u:o,s:a,vt:u}=Zr(r),i=Math.min(e,n),c=Number(a.get(0))*t,l=S.zeros([n,e],"float64");for(let f=0;f<n;f++)for(let m=0;m<e;m++){let p=0;for(let y=0;y<i;y++){let d=Number(a.get(y));d>c&&(p+=Number(u.get(y,f))*Number(o.get(m,y))/d)}l.set([f,m],p)}return l}function Fi(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}=_i(r),f=S.zeros([n],"float64"),m=S.zeros([n,n],"float64");for(let p=0;p<n;p++){f.set([p],c[p]);for(let y=0;y<n;y++)m.set([y,p],l[y][p])}return{w:f,v:m}}console.warn("numpy-ts: eig() called on non-symmetric matrix. Complex eigenvalues are not supported; results may be inaccurate. For symmetric matrices, use eigh() instead.");let{values:a,vectors:u}=fD(r),i=S.zeros([n],"float64"),s=S.zeros([n,n],"float64");for(let c=0;c<n;c++){i.set([c],a[c]);for(let l=0;l<n;l++)s.set([l,c],u[l][c])}return{w:i,v:s}}function fD(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 p=0;p<t;p++)for(let y=0;y<t;y++)p!==y&&(c+=Number(o.get(p,y))**2);if(Math.sqrt(c)<n*t)break;let l=zi(o,"reduced"),f=l.q,m=l.r;o=Ar(m,f),a=Ar(a,f)}let u=[];for(let s=0;s<t;s++)u.push(Number(o.get(s,s)));let i=[];for(let s=0;s<t;s++){i.push([]);for(let c=0;c<t;c++)i[s].push(Number(a.get(s,c)))}return{values:u,vectors:i}}function Bi(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 f=0;f<o;f++)for(let m=0;m<o;m++)t==="L"?f>=m&&(a.set([f,m],Number(r.get(f,m))),a.set([m,f],Number(r.get(f,m)))):m>=f&&(a.set([f,m],Number(r.get(f,m))),a.set([m,f],Number(r.get(f,m))));let{values:u,vectors:i}=_i(a),s=Array.from({length:o},(f,m)=>m);s.sort((f,m)=>u[f]-u[m]);let c=S.zeros([o],"float64"),l=S.zeros([o,o],"float64");for(let f=0;f<o;f++){c.set([f],u[s[f]]);for(let m=0;m<o;m++)l.set([m,f],i[m][s[f]])}return{w:c,v:l}}function gm(r){let{w:t}=Fi(r);return t}function hm(r,t="L"){let{w:e}=Bi(r,t);return e}function Nm(r,t){let e=Xr(r),n=Xr(t),o=e.shape[0],a=n.shape[0];if(o!==a)throw new Error(`vdot: arrays must have same number of elements, got ${o} and ${a}`);if(B(r.dtype)||B(t.dtype)){let s=0,c=0;for(let l=0;l<o;l++){let f=e.get(l),m=n.get(l),p=f instanceof U?f.re:Number(f),y=f instanceof U?-f.im:0,d=m instanceof U?m.re:Number(m),b=m instanceof U?m.im:0;s+=p*d+y*b,c+=p*b-y*d}return Math.abs(c)<1e-15?s:new U(s,c)}let i=0;for(let s=0;s<o;s++){let c=e.get(s),l=n.get(s);typeof c=="bigint"&&typeof l=="bigint"?i=(typeof i=="bigint"?i:BigInt(i))+c*l:i=(typeof i=="bigint"?Number(i):i)+Number(c)*Number(l)}return i}function Dm(r,t,e=-1){let n=r.ndim,o=t.ndim,a=e<0?n+e:e,u=e<0?o+e:e;if(a<0||a>=n)throw new Error(`vecdot: axis ${e} out of bounds for array with ${n} dimensions`);if(u<0||u>=o)throw new Error(`vecdot: axis ${e} out of bounds for array with ${o} dimensions`);let i=r.shape[a],s=t.shape[u];if(i!==s)throw new Error(`vecdot: axis dimensions must match, got ${i} and ${s}`);if(n===1&&o===1)return lt(r,t);let c=[...r.shape.slice(0,a),...r.shape.slice(a+1)],l=[...t.shape.slice(0,u),...t.shape.slice(u+1)],f=i,m=B(r.dtype)||B(t.dtype),p=or(r.dtype,t.dtype),y=c.length>l.length?c:l;if(y.length===0){let A=m?new U(0,0):0;for(let g=0;g<f;g++){let h=r.get(g),N=t.get(g),D=kr(h,N);if(A instanceof U||D instanceof U){let x=A instanceof U?A:new U(Number(A),0),C=D instanceof U?D:new U(Number(D),0);A=x.add(C)}else typeof A=="bigint"||typeof D=="bigint"?A=BigInt(A)+BigInt(D):A=A+D}return A}let d=S.zeros(y,p),b=y.reduce((A,g)=>A*g,1);for(let A=0;A<b;A++){let g=[],h=A;for(let C=y.length-1;C>=0;C--)g.unshift(h%y[C]),h=Math.floor(h/y[C]);let N=[...g.slice(0,a),0,...g.slice(a)],D=[...g.slice(0,u),0,...g.slice(u)],x=m?new U(0,0):0;for(let C=0;C<f;C++){N[a]=C,D[u]=C;let w=r.get(...N),_=t.get(...D),I=kr(w,_);if(x instanceof U||I instanceof U){let v=x instanceof U?x:new U(Number(x),0),T=I instanceof U?I:new U(Number(I),0);x=v.add(T)}else typeof x=="bigint"||typeof I=="bigint"?x=BigInt(x)+BigInt(I):x=x+I}d.set(g,x)}return d}function xm(r){if(r.ndim<2)throw new Error(`matrix_transpose: input must have at least 2 dimensions, got ${r.ndim}D`);let t=Array.from({length:r.ndim},(n,o)=>o),e=t.length-1;return t[e]=e-1,t[e-1]=e,Qr(r,t)}function Cm(r,t){return Qr(r,t)}function Sm(r,t){if(r.ndim<2)throw new Error(`matvec: x1 must have at least 2 dimensions, got ${r.ndim}D`);if(t.ndim<1)throw new Error(`matvec: x2 must have at least 1 dimension, got ${t.ndim}D`);let e=r.shape[r.ndim-2],n=r.shape[r.ndim-1],o=t.shape[t.ndim-1];if(n!==o)throw new Error(`matvec: last axis of x1 (${n}) must match last axis of x2 (${o})`);if(r.ndim===2&&t.ndim===1)return lt(r,t);let a=r.shape.slice(0,-2),u=t.shape.slice(0,-1),i=Math.max(a.length,u.length),s=[...Array(i-a.length).fill(1),...a],c=[...Array(i-u.length).fill(1),...u],l=[];for(let b=0;b<i;b++){let A=s[b],g=c[b];if(A!==1&&g!==1&&A!==g)throw new Error(`matvec: batch dimensions not broadcastable: ${a} vs ${u}`);l.push(Math.max(A,g))}let f=[...l,e],m=or(r.dtype,t.dtype),p=S.zeros(f,m),y=B(m),d=l.reduce((b,A)=>b*A,1);for(let b=0;b<d;b++){let A=[],g=b;for(let D=l.length-1;D>=0;D--)A.unshift(g%l[D]),g=Math.floor(g/l[D]);let h=A.slice(-(a.length||1)).map((D,x)=>(a[x]??1)===1?0:D),N=A.slice(-(u.length||1)).map((D,x)=>(u[x]??1)===1?0:D);for(let D=0;D<e;D++){let x=y?new U(0,0):0;for(let w=0;w<n;w++){let _=[...h,D,w],I=[...N,w],v=r.get(..._),T=t.get(...I),O=kr(v,T);if(x instanceof U||O instanceof U){let $=x instanceof U?x:new U(Number(x),0),k=O instanceof U?O:new U(Number(O),0);x=$.add(k)}else typeof x=="bigint"||typeof O=="bigint"?x=BigInt(x)+BigInt(O):x=x+O}let C=[...A,D];p.set(C,x)}}return p}function wm(r,t){if(r.ndim<1)throw new Error(`vecmat: x1 must have at least 1 dimension, got ${r.ndim}D`);if(t.ndim<2)throw new Error(`vecmat: x2 must have at least 2 dimensions, got ${t.ndim}D`);let e=r.shape[r.ndim-1],n=t.shape[t.ndim-2],o=t.shape[t.ndim-1];if(e!==n)throw new Error(`vecmat: last axis of x1 (${e}) must match second-to-last axis of x2 (${n})`);if(r.ndim===1&&t.ndim===2)return lt(r,t);let a=r.shape.slice(0,-1),u=t.shape.slice(0,-2),i=Math.max(a.length,u.length),s=[...Array(i-a.length).fill(1),...a],c=[...Array(i-u.length).fill(1),...u],l=[];for(let b=0;b<i;b++){let A=s[b],g=c[b];if(A!==1&&g!==1&&A!==g)throw new Error(`vecmat: batch dimensions not broadcastable: ${a} vs ${u}`);l.push(Math.max(A,g))}let f=[...l,o],m=or(r.dtype,t.dtype),p=S.zeros(f,m),y=B(m),d=l.reduce((b,A)=>b*A,1);for(let b=0;b<d;b++){let A=[],g=b;for(let D=l.length-1;D>=0;D--)A.unshift(g%l[D]),g=Math.floor(g/l[D]);let h=A.slice(-(a.length||1)).map((D,x)=>(a[x]??1)===1?0:D),N=A.slice(-(u.length||1)).map((D,x)=>(u[x]??1)===1?0:D);for(let D=0;D<o;D++){let x=y?new U(0,0):0;for(let w=0;w<e;w++){let _=[...h,w],I=[...N,w,D],v=r.get(..._),T=t.get(...I),O=kr(v,T);if(x instanceof U||O instanceof U){let $=x instanceof U?x:new U(Number(x),0),k=O instanceof U?O:new U(Number(O),0);x=$.add(k)}else typeof x=="bigint"||typeof O=="bigint"?x=BigInt(x)+BigInt(O):x=x+O}let C=[...A,D];p.set(C,x)}}return p}function Im(r){if(r.ndim!==2)throw new Error(`slogdet: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape;if(t!==e)throw new Error(`slogdet: matrix must be square, got ${t}x${e}`);let n=t;if(n===0)return{sign:1,logabsdet:0};let{lu:o,sign:a}=Bo(r),u=o.data,i=0,s=a;for(let c=0;c<n;c++){let l=u[c*n+c];if(l===0)return{sign:0,logabsdet:-1/0};l<0&&(s=-s),i+=Math.log(Math.abs(l))}return{sign:s,logabsdet:i}}function zm(r){return vi(r,!0,!1)}function _m(r){if(r.length<2)throw new Error("multi_dot: need at least 2 arrays");if(r.length===2)return Ar(r[0],r[1]);let t=r[0];for(let e=1;e<r.length;e++)t=Ar(t,r[e]);return t}function vm(r,t=2){if(t<=0)throw new Error(`tensorinv: ind must be positive, got ${t}`);let e=r.shape,n=r.ndim;if(n<t)throw new Error(`tensorinv: array has ${n} dimensions, ind=${t} is too large`);let o=1;for(let c=0;c<t;c++)o*=e[c];let a=1;for(let c=t;c<n;c++)a*=e[c];if(o!==a)throw new Error(`tensorinv: product of first ${t} dimensions (${o}) must equal product of remaining dimensions (${a})`);let u=ur(r,[o,a]),i=Ce(u),s=[...e.slice(t),...e.slice(0,t)];return ur(i,s)}function Mm(r,t,e){let n=r.shape,o=t.shape,a=r.ndim,u=t.ndim,i;e==null?i=Array.from({length:u},(h,N)=>a-u+N):i=e.map(h=>h<0?a+h:h);let s=[];for(let h=0;h<a;h++)i.includes(h)||s.push(h);let c=[...s,...i],l=Qr(r,c),m=i.map(h=>n[h]).reduce((h,N)=>h*N,1),y=s.map(h=>n[h]).reduce((h,N)=>h*N,1),d=o.reduce((h,N)=>h*N,1);if(m!==d)throw new Error(`tensorsolve: dimensions don't match - sum dimensions product (${m}) != b total elements (${d})`);if(y!==m)throw new Error(`tensorsolve: non-square problem - other dimensions product (${y}) != sum dimensions product (${m})`);let b=ur(l,[y,m]),A=ur(t,[m]),g=Mi(b,A);return ur(g,[...o])}function Fm(r,...t){let e=r.indexOf("->"),n,o;e===-1?(n=r,o=im(n)):(n=r.slice(0,e),o=r.slice(e+2));let a=n.split(",").map(m=>m.trim());if(a.length!==t.length)throw new Error(`einsum_path: expected ${a.length} operands, got ${t.length}`);let u=t.map(m=>Array.isArray(m)?m:Array.from(m.shape)),i=new Map;for(let m=0;m<t.length;m++){let p=a[m],y=u[m];if(p.length!==y.length)throw new Error(`einsum_path: operand ${m} has ${y.length} dimensions but subscript '${p}' has ${p.length} indices`);for(let d=0;d<p.length;d++){let b=p[d],A=y[d];if(i.has(b)&&i.get(b)!==A)throw new Error(`einsum_path: size mismatch for index '${b}': ${i.get(b)} vs ${A}`);i.set(b,A)}}if(t.length===1){let m=[[0]];return[m,wi(r,u,m,i)]}if(t.length===2){let m=[[0,1]];return[m,wi(r,u,m,i)]}let s=[],c=[...a],l=[...u],f=t.map((m,p)=>p);for(;c.length>1;){let m=0,p=1,y=1/0;for(let A=0;A<c.length;A++)for(let g=A+1;g<c.length;g++){let h=mD(c[A],c[g],l[A],l[g],o,i);h<y&&(y=h,m=A,p=g)}s.push([f[m],f[p]]);let[d,b]=pD(c[m],c[p],l[m],l[p],o,i);c.splice(p,1),c.splice(m,1),l.splice(p,1),l.splice(m,1),f.splice(p,1),f.splice(m,1),c.push(d),l.push(b),f.push(-1)}return[s,wi(r,u,s,i)]}function mD(r,t,e,n,o,a){let u=new Set(r),i=new Set(t),s=1;for(let c of u)s*=a.get(c)||1;for(let c of i)u.has(c)||(s*=a.get(c)||1);return s}function pD(r,t,e,n,o,a){let u=new Set([...r,...t]),i=new Map;for(let f of r)i.set(f,(i.get(f)||0)+1);for(let f of t)i.set(f,(i.get(f)||0)+1);let s=new Set(o),c=[];for(let f of u)(s.has(f)||i.get(f)===1)&&c.push(f);c.sort();let l=c.map(f=>a.get(f));return[c.join(""),l]}function wi(r,t,e,n){let o=[];o.push(" Complete contraction: "+r),o.push(" Operand shapes: "+t.map(u=>`(${u.join(", ")})`).join(", ")),o.push(" Contraction path: "+JSON.stringify(e));let a=0;for(let u of t)a+=u.reduce((i,s)=>i*s,1);return o.push(" Estimated FLOPS: ~"+a.toExponential(2)),o.join(`
|
|
2
|
+
`)}function ft(r,t){let e=lt(z(r),z(t));return typeof e=="number"||typeof e=="bigint"||e instanceof U?e:M(e)}function Hr(r){return em(z(r))}function mt(r,t=0,e=0,n=1){return M(am(z(r),t,e,n))}function Ti(r,t){return M(um(z(r),z(t)))}function pt(r,t){return Nr(Qr(z(r),t),r)}function yt(r,t){let e=nm(z(r),z(t));return typeof e=="number"||typeof e=="bigint"||e instanceof U?e:M(e)}function dt(r,t){return M(Ii(z(r),z(t)))}function bt(r,t,e=2){let n=om(z(r),z(t),e);return typeof n=="number"||typeof n=="bigint"||n instanceof U?n:M(n)}function To(r,...t){let e=t.map(o=>z(o)),n=sm(r,...e);return typeof n=="number"||typeof n=="bigint"||n instanceof U?n:M(n)}function Eo(r,...t){let e=t.map(n=>z(n));return Fm(r,...e)}function Oo(r,t){return Nm(z(r),z(t))}function Uo(r,t,e=-1){let n=Dm(z(r),z(t),e);return typeof n=="number"||typeof n=="bigint"||n instanceof U?n:M(n)}function $o(r){return Nr(xm(z(r)),r)}function ko(r,t){return Nr(Cm(z(r),t),r)}function Ei(r,t){return M(Sm(z(r),z(t)))}function Oi(r,t){return M(wm(z(r),z(t)))}function Ro(r,t,e=-1,n=-1,o=-1,a){let u=cm(z(r),z(t),e,n,o,a);return typeof u=="number"||u instanceof U?u:M(u)}function Se(r,t){return M(Ar(z(r),z(t)))}var qo={matmul:(r,t)=>M(Ar(z(r),z(t))),dot:(r,t)=>ft(r,t),det:r=>mm(z(r)),inv:r=>M(Ce(z(r))),solve:(r,t)=>M(Mi(z(r),z(t))),lstsq:(r,t,e)=>{let n=pm(z(r),z(t),e);return{x:M(n.x),residuals:M(n.residuals),rank:n.rank,s:M(n.s)}},norm:(r,t,e,n)=>{let o=lm(z(r),t,e,n);return typeof o=="number"?o:M(o)},cond:(r,t)=>ym(z(r),t),matrix_rank:(r,t)=>dm(z(r),t),matrix_power:(r,t)=>M(bm(z(r),t)),pinv:(r,t)=>M(Am(z(r),t)),qr:(r,t)=>{let e=zi(z(r),t);return"h"in e&&"tau"in e?{h:M(e.h),tau:M(e.tau)}:"q"in e&&"r"in e?{q:M(e.q),r:M(e.r)}:M(e)},cholesky:(r,t)=>M(fm(z(r),t)),svd:(r,t,e)=>{let n=vi(z(r),t,e);return"u"in n&&"s"in n&&"vt"in n?{u:M(n.u),s:M(n.s),vt:M(n.vt)}:M(n)},eig:r=>{let t=Fi(z(r));return{w:M(t.w),v:M(t.v)}},eigh:(r,t)=>{let e=Bi(z(r),t);return{w:M(e.w),v:M(e.v)}},eigvals:r=>M(gm(z(r))),eigvalsh:(r,t)=>M(hm(z(r),t)),slogdet:r=>Im(z(r)),svdvals:r=>M(zm(z(r))),multi_dot:r=>M(_m(r.map(t=>z(t)))),tensorinv:(r,t)=>M(vm(z(r),t)),tensorsolve:(r,t,e)=>M(Mm(z(r),z(t),e)),vector_norm:(r,t,e,n)=>{let o=ct(z(r),t,e,n);return typeof o=="number"?o:M(o)},matrix_norm:(r,t,e)=>{let n=Kr(z(r),t,e);return typeof n=="number"?n:M(n)},cross:(r,t,e,n,o,a)=>Ro(r,t,e,n,o,a),matrix_transpose:r=>$o(r),permute_dims:(r,t)=>ko(r,t),trace:r=>Hr(r),diagonal:(r,t,e,n)=>mt(r,t,e,n),outer:(r,t)=>dt(r,t),inner:(r,t)=>yt(r,t),tensordot:(r,t,e)=>bt(r,t,e),vecdot:(r,t,e)=>Uo(r,t,e),transpose:(r,t)=>pt(r,t)};function we(r,t){return M(ur(z(r),t))}function Br(r){return M(Xr(z(r)))}function Ie(r){return M(ut(z(r)))}function ze(r,t){return Nr(Di(z(r),t),r)}function _e(r,t){return Nr(De(z(r),t),r)}function ve(r,t,e){return Nr(Bf(z(r),t,e),r)}function Me(r,t,e){return Nr(xi(z(r),t,e),r)}function Ui(r,t,e=0){return Nr(Gf(z(r),t,e),r)}function At(r,t=0){return M(Wr(r.map(e=>z(e)),t))}function $i(r,t=0){return M(Tf(r.map(e=>z(e)),t))}function Vo(r){return M(Ef(r.map(t=>z(t))))}function ki(r){return M(Ci(r.map(t=>z(t))))}function Ri(r){return M(Of(r.map(t=>z(t))))}function qi(r){return M(Wf(r.map(t=>z(t))))}var Po=Vo;function Vi(r){return M(Hf(r.map(t=>z(t))))}function jo(r,t,e=0){return at(Uf(z(r),t,e),r)}function Lo(r,t,e=0){return at(xe(z(r),t,e),r)}function Go(r,t){return at(kf(z(r),t),r)}function Yo(r,t){return at(Rf(z(r),t),r)}function Wo(r,t){return at(Yf(z(r),t),r)}function Pi(r,t=0){return $r(Qf(z(r),t))}function ji(r,t){return M(qf(z(r),t))}function Fe(r,t,e){return M(Vf(z(r),t,e))}function Be(r,t){return M(Pf(z(r),t))}function Li(r){return Be(r,1)}function Gi(r){return Be(r,0)}function Yi(r,t=1,e=[0,1]){return M(jf(z(r),t,e))}function Wi(r,t,e){return M(Lf(z(r),t,e))}function Te(r,t){return M(Zf(z(r),t))}function Zo(...r){let t=Jf(r.map(e=>z(e)));return t.length===1?M(t[0]):$r(t)}function Jo(...r){let t=Xf(r.map(e=>z(e)));return t.length===1?M(t[0]):$r(t)}function Xo(...r){let t=Kf(r.map(e=>z(e)));return t.length===1?M(t[0]):$r(t)}function xr(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 Z(r,t,e){let n=e;for(let o=0;o<r.length;o++)n+=r[o]*t[o];return n}function Y(r,t,e,n){let o=n.length,a=new Array(o),u=Array.from(n).filter((s,c)=>c!==t),i=r;for(let s=u.length-1;s>=0;s--)a[s>=t?s+1:s]=i%u[s],i=Math.floor(i/u[s]);return a[t]=e,a}function Ee(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,i=r.data,s=r.offset,c=r.strides,l=r.isCContiguous;if(t===void 0)if(B(n)){let A=0,g=0;if(l){let h=i;for(let N=0;N<u;N++)A+=h[(s+N)*2],g+=h[(s+N)*2+1]}else for(let h=0;h<u;h++){let N=r.iget(h);A+=N.re,g+=N.im}return new U(A,g)}else if(E(n)){let A=BigInt(0);if(l){let g=i;for(let h=0;h<u;h++)A+=g[s+h]}else for(let g=0;g<u;g++)A+=r.iget(g);return Number(A)}else{let A=0;if(l)if(s===0)for(let g=0;g<u;g++)A+=Number(i[g]);else for(let g=0;g<u;g++)A+=Number(i[s+g]);else for(let g=0;g<u;g++)A+=Number(r.iget(g));return A}let f=t;if(f<0&&(f=a+f),f<0||f>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let m=Array.from(o).filter((A,g)=>g!==f);if(m.length===0)return Ee(r);let p=S.zeros(m,n),y=p.data,d=o[f],b=m.reduce((A,g)=>A*g,1);if(B(n)){let A=i,g=y;for(let h=0;h<b;h++){let N=0,D=0;for(let x=0;x<d;x++){let C=Y(h,f,x,o),w=Z(C,c,s);N+=A[w*2],D+=A[w*2+1]}g[h*2]=N,g[h*2+1]=D}}else if(E(n)){let A=i,g=y;for(let h=0;h<b;h++){let N=BigInt(0);for(let D=0;D<d;D++){let x=Y(h,f,D,o),C=Z(x,c,s);N+=A[C]}g[h]=N}}else for(let A=0;A<b;A++){let g=0;for(let h=0;h<d;h++){let N=Y(A,f,h,o),D=Z(N,c,s);g+=Number(i[D])}y[A]=g}if(e){let A=[...o];return A[f]=1,S.fromData(y,A,n)}return p}function ea(r,t,e=!1){let n=r.dtype,o=r.shape;if(t===void 0){let m=Ee(r);return m instanceof U?new U(m.re/r.size,m.im/r.size):m/r.size}let a=t;if(a<0&&(a=o.length+a),a<0||a>=o.length)throw new Error(`axis ${t} is out of bounds for array of dimension ${o.length}`);let u=Ee(r,t,e);if(typeof u=="number")return u/o[a];if(u instanceof U)return new U(u.re/o[a],u.im/o[a]);let i=o[a],s=n;B(n)?s=n:(E(n)||n.startsWith("int")||n.startsWith("uint"))&&(s="float64");let c=S.zeros(Array.from(u.shape),s),l=c.data,f=u.data;if(B(n)){let m=f,p=l,y=u.size;for(let d=0;d<y;d++)p[d*2]=m[d*2]/i,p[d*2+1]=m[d*2+1]/i}else if(E(n)){let m=f;for(let p=0;p<l.length;p++)l[p]=Number(m[p])/i}else for(let m=0;m<l.length;m++)l[m]=Number(f[m])/i;return c}function gt(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,i=r.data,s=r.offset,c=r.strides;if(B(n)){let b=i;if(t===void 0){if(u===0)throw new Error("max of empty array");let C=b[s*2],w=b[s*2+1];for(let _=1;_<u;_++){let I=b[(s+_)*2],v=b[(s+_)*2+1];if(isNaN(I)||isNaN(v))return new U(NaN,NaN);(I>C||I===C&&v>w)&&(C=I,w=v)}return isNaN(C)||isNaN(w)?new U(NaN,NaN):new U(C,w)}let A=t;if(A<0&&(A=a+A),A<0||A>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let g=Array.from(o).filter((C,w)=>w!==A);if(g.length===0)return gt(r);let h=S.zeros(g,n),N=h.data,D=o[A],x=g.reduce((C,w)=>C*w,1);for(let C=0;C<x;C++){let w=Y(C,A,0,o),_=Z(w,c,s),I=b[_*2],v=b[_*2+1];for(let T=1;T<D;T++){let O=Y(C,A,T,o),$=Z(O,c,s),k=b[$*2],V=b[$*2+1];if(isNaN(k)||isNaN(V)){I=NaN,v=NaN;break}(k>I||k===I&&V>v)&&(I=k,v=V)}N[C*2]=I,N[C*2+1]=v}if(e){let C=[...o];return C[A]=1,S.fromData(N,C,n)}return h}if(t===void 0){if(u===0)throw new Error("max of empty array");if(r.isCContiguous){let b=i[s];if(s===0)for(let A=1;A<u;A++)i[A]>b&&(b=i[A]);else for(let A=1;A<u;A++)i[s+A]>b&&(b=i[s+A]);return Number(b)}else{let b=r.iget(0);for(let A=1;A<u;A++){let g=r.iget(A);g>b&&(b=g)}return Number(b)}}let l=t;if(l<0&&(l=a+l),l<0||l>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let f=Array.from(o).filter((b,A)=>A!==l);if(f.length===0)return gt(r);let m=S.zeros(f,n),p=m.data,y=o[l],d=f.reduce((b,A)=>b*A,1);if(E(n)){let b=i,A=p;for(let g=0;g<d;g++){let h=Y(g,l,0,o),N=Z(h,c,s),D=b[N];for(let x=1;x<y;x++){let C=Y(g,l,x,o),w=Z(C,c,s),_=b[w];_>D&&(D=_)}A[g]=D}}else for(let b=0;b<d;b++){let A=-1/0;for(let g=0;g<y;g++){let h=Y(b,l,g,o),N=Z(h,c,s),D=Number(i[N]);D>A&&(A=D)}p[b]=A}if(e){let b=[...o];return b[l]=1,S.fromData(p,b,n)}return m}function Zi(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,i=r.data,s=r.offset,c=r.strides,l=r.isCContiguous;if(t===void 0)if(B(n)){let A=1,g=0;if(l){let h=i;for(let N=0;N<u;N++){let D=h[(s+N)*2],x=h[(s+N)*2+1],C=A*D-g*x,w=A*x+g*D;A=C,g=w}}else for(let h=0;h<u;h++){let N=r.iget(h),D=N.re,x=N.im,C=A*D-g*x,w=A*x+g*D;A=C,g=w}return new U(A,g)}else if(E(n)){let A=BigInt(1);if(l){let g=i;for(let h=0;h<u;h++)A*=g[s+h]}else for(let g=0;g<u;g++)A*=r.iget(g);return Number(A)}else{let A=1;if(l)if(s===0)for(let g=0;g<u;g++)A*=Number(i[g]);else for(let g=0;g<u;g++)A*=Number(i[s+g]);else for(let g=0;g<u;g++)A*=Number(r.iget(g));return A}let f=t;if(f<0&&(f=a+f),f<0||f>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let m=Array.from(o).filter((A,g)=>g!==f);if(m.length===0)return Zi(r);let p=S.zeros(m,n),y=p.data,d=o[f],b=m.reduce((A,g)=>A*g,1);if(B(n)){let A=i,g=y;for(let h=0;h<b;h++){let N=1,D=0;for(let x=0;x<d;x++){let C=Y(h,f,x,o),w=Z(C,c,s),_=A[w*2],I=A[w*2+1],v=N*_-D*I,T=N*I+D*_;N=v,D=T}g[h*2]=N,g[h*2+1]=D}}else if(E(n)){let A=i,g=y;for(let h=0;h<b;h++){let N=BigInt(1);for(let D=0;D<d;D++){let x=Y(h,f,D,o),C=Z(x,c,s);N*=A[C]}g[h]=N}}else for(let A=0;A<b;A++){let g=1;for(let h=0;h<d;h++){let N=Y(A,f,h,o),D=Z(N,c,s);g*=Number(i[D])}y[A]=g}if(e){let A=[...o];return A[f]=1,S.fromData(y,A,n)}return p}function ht(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,i=r.data,s=r.offset,c=r.strides;if(B(n)){let b=i;if(t===void 0){if(u===0)throw new Error("min of empty array");let C=b[s*2],w=b[s*2+1];for(let _=1;_<u;_++){let I=b[(s+_)*2],v=b[(s+_)*2+1];if(isNaN(I)||isNaN(v))return new U(NaN,NaN);(I<C||I===C&&v<w)&&(C=I,w=v)}return isNaN(C)||isNaN(w)?new U(NaN,NaN):new U(C,w)}let A=t;if(A<0&&(A=a+A),A<0||A>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let g=Array.from(o).filter((C,w)=>w!==A);if(g.length===0)return ht(r);let h=S.zeros(g,n),N=h.data,D=o[A],x=g.reduce((C,w)=>C*w,1);for(let C=0;C<x;C++){let w=Y(C,A,0,o),_=Z(w,c,s),I=b[_*2],v=b[_*2+1];for(let T=1;T<D;T++){let O=Y(C,A,T,o),$=Z(O,c,s),k=b[$*2],V=b[$*2+1];if(isNaN(k)||isNaN(V)){I=NaN,v=NaN;break}(k<I||k===I&&V<v)&&(I=k,v=V)}N[C*2]=I,N[C*2+1]=v}if(e){let C=[...o];return C[A]=1,S.fromData(N,C,n)}return h}if(t===void 0){if(u===0)throw new Error("min of empty array");if(r.isCContiguous){let b=i[s];if(s===0)for(let A=1;A<u;A++)i[A]<b&&(b=i[A]);else for(let A=1;A<u;A++)i[s+A]<b&&(b=i[s+A]);return Number(b)}else{let b=r.iget(0);for(let A=1;A<u;A++){let g=r.iget(A);g<b&&(b=g)}return Number(b)}}let l=t;if(l<0&&(l=a+l),l<0||l>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let f=Array.from(o).filter((b,A)=>A!==l);if(f.length===0)return ht(r);let m=S.zeros(f,n),p=m.data,y=o[l],d=f.reduce((b,A)=>b*A,1);if(E(n)){let b=i,A=p;for(let g=0;g<d;g++){let h=Y(g,l,0,o),N=Z(h,c,s),D=b[N];for(let x=1;x<y;x++){let C=Y(g,l,x,o),w=Z(C,c,s),_=b[w];_<D&&(D=_)}A[g]=D}}else for(let b=0;b<d;b++){let A=1/0;for(let g=0;g<y;g++){let h=Y(b,l,g,o),N=Z(h,c,s),D=Number(i[N]);D<A&&(A=D)}p[b]=A}if(e){let b=[...o];return b[l]=1,S.fromData(p,b,n)}return m}function zr(r,t,e,n){return r<e?-1:r>e?1:t<n?-1:t>n?1:0}function Ji(r,t){let e=r.dtype,n=B(e),o=r.shape,a=o.length,u=r.size,i=r.data,s=r.offset,c=r.strides,l=r.isCContiguous;if(t===void 0){if(u===0)throw new Error("argmin of empty array");if(n)if(l){let A=i,g=A[s*2],h=A[s*2+1],N=0;for(let D=1;D<u;D++){let x=A[(s+D)*2],C=A[(s+D)*2+1];zr(x,C,g,h)<0&&(g=x,h=C,N=D)}return N}else{let A=r.iget(0),g=A.re,h=A.im,N=0;for(let D=1;D<u;D++){let x=r.iget(D);zr(x.re,x.im,g,h)<0&&(g=x.re,h=x.im,N=D)}return N}if(l){let A=i[s],g=0;if(s===0)for(let h=1;h<u;h++)i[h]<A&&(A=i[h],g=h);else for(let h=1;h<u;h++)i[s+h]<A&&(A=i[s+h],g=h);return g}else{let A=r.iget(0),g=0;for(let h=1;h<u;h++){let N=r.iget(h);N<A&&(A=N,g=h)}return g}}let f=t;if(f<0&&(f=a+f),f<0||f>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let m=Array.from(o).filter((A,g)=>g!==f);if(m.length===0)return Ji(r);let p=S.zeros(m,"int32"),y=p.data,d=o[f],b=m.reduce((A,g)=>A*g,1);if(n){let A=i;for(let g=0;g<b;g++){let h=Y(g,f,0,o),N=Z(h,c,s),D=A[N*2],x=A[N*2+1],C=0;for(let w=1;w<d;w++){let _=Y(g,f,w,o),I=Z(_,c,s),v=A[I*2],T=A[I*2+1];zr(v,T,D,x)<0&&(D=v,x=T,C=w)}y[g]=C}}else if(E(e)){let A=i;for(let g=0;g<b;g++){let h=Y(g,f,0,o),N=Z(h,c,s),D=A[N],x=0;for(let C=1;C<d;C++){let w=Y(g,f,C,o),_=Z(w,c,s),I=A[_];I<D&&(D=I,x=C)}y[g]=x}}else for(let A=0;A<b;A++){let g=1/0,h=0;for(let N=0;N<d;N++){let D=Y(A,f,N,o),x=Z(D,c,s),C=Number(i[x]);C<g&&(g=C,h=N)}y[A]=h}return p}function Xi(r,t){let e=r.dtype,n=B(e),o=r.shape,a=o.length,u=r.size,i=r.data,s=r.offset,c=r.strides,l=r.isCContiguous;if(t===void 0){if(u===0)throw new Error("argmax of empty array");if(n)if(l){let A=i,g=A[s*2],h=A[s*2+1],N=0;for(let D=1;D<u;D++){let x=A[(s+D)*2],C=A[(s+D)*2+1];zr(x,C,g,h)>0&&(g=x,h=C,N=D)}return N}else{let A=r.iget(0),g=A.re,h=A.im,N=0;for(let D=1;D<u;D++){let x=r.iget(D);zr(x.re,x.im,g,h)>0&&(g=x.re,h=x.im,N=D)}return N}if(l){let A=i[s],g=0;for(let h=1;h<u;h++)i[s+h]>A&&(A=i[s+h],g=h);return g}else{let A=r.iget(0),g=0;for(let h=1;h<u;h++){let N=r.iget(h);N>A&&(A=N,g=h)}return g}}let f=t;if(f<0&&(f=a+f),f<0||f>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let m=Array.from(o).filter((A,g)=>g!==f);if(m.length===0)return Xi(r);let p=S.zeros(m,"int32"),y=p.data,d=o[f],b=m.reduce((A,g)=>A*g,1);if(n){let A=i;for(let g=0;g<b;g++){let h=Y(g,f,0,o),N=Z(h,c,s),D=A[N*2],x=A[N*2+1],C=0;for(let w=1;w<d;w++){let _=Y(g,f,w,o),I=Z(_,c,s),v=A[I*2],T=A[I*2+1];zr(v,T,D,x)>0&&(D=v,x=T,C=w)}y[g]=C}}else if(E(e)){let A=i;for(let g=0;g<b;g++){let h=Y(g,f,0,o),N=Z(h,c,s),D=A[N],x=0;for(let C=1;C<d;C++){let w=Y(g,f,C,o),_=Z(w,c,s),I=A[_];I>D&&(D=I,x=C)}y[g]=x}}else for(let A=0;A<b;A++){let g=-1/0,h=0;for(let N=0;N<d;N++){let D=Y(A,f,N,o),x=Z(D,c,s),C=Number(i[x]);C>g&&(g=C,h=N)}y[A]=h}return p}function Ki(r,t,e=0,n=!1){let o=r.dtype,a=r.shape,u=a.length,i=r.size,s=r.data,c=r.offset,l=r.strides,f=ea(r,t,n),m=r.isCContiguous;if(t===void 0){if(B(o)){let C=f,w=0;if(m){let _=s;for(let I=0;I<i;I++){let v=_[(c+I)*2],T=_[(c+I)*2+1],O=v-C.re,$=T-C.im;w+=O*O+$*$}}else for(let _=0;_<i;_++){let I=r.iget(_),v=I.re-C.re,T=I.im-C.im;w+=v*v+T*T}return w/(i-e)}let D=f,x=0;if(m)for(let C=0;C<i;C++){let w=Number(s[c+C])-D;x+=w*w}else for(let C=0;C<i;C++){let w=Number(r.iget(C))-D;x+=w*w}return x/(i-e)}let p=t;if(p<0&&(p=u+p),p<0||p>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let y=a[p],d=f,b=d.data,A=n?d.shape:Array.from(a).filter((D,x)=>x!==p),g=S.zeros(Array.from(A),"float64"),h=g.data,N=A.reduce((D,x)=>D*x,1);if(B(o)){let D=s,x=b;for(let C=0;C<N;C++){let w=0,_=x[C*2],I=x[C*2+1];for(let v=0;v<y;v++){let T=Y(C,p,v,a),O=Z(T,l,c),$=D[O*2],k=D[O*2+1],V=$-_,j=k-I;w+=V*V+j*j}h[C]=w/(y-e)}}else for(let D=0;D<N;D++){let x=0,C=Number(b[D]);for(let w=0;w<y;w++){let _=Y(D,p,w,a),I=Z(_,l,c),v=Number(s[I])-C;x+=v*v}h[D]=x/(y-e)}return g}function Bm(r,t,e=0,n=!1){let o=Ki(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=S.zeros(Array.from(o.shape),"float64"),u=o.data,i=a.data;for(let s=0;s<u.length;s++)i[s]=Math.sqrt(Number(u[s]));return a}function Qi(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,u=r.data,i=r.offset,s=r.strides,c=r.isCContiguous;if(t===void 0){if(c){for(let b=0;b<a;b++)if(!u[i+b])return!1}else for(let b=0;b<a;b++)if(!r.iget(b))return!1;return!0}let l=t;if(l<0&&(l=o+l),l<0||l>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let f=Array.from(n).filter((b,A)=>A!==l);if(f.length===0)return Qi(r);let m=S.zeros(f,"bool"),p=m.data,y=n[l],d=f.reduce((b,A)=>b*A,1);for(let b=0;b<d;b++){let A=!0;for(let g=0;g<y;g++){let h=Y(b,l,g,n),N=Z(h,s,i);if(!u[N]){A=!1;break}}p[b]=A?1:0}if(e){let b=[...n];return b[l]=1,S.fromData(p,b,"bool")}return m}function Hi(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,u=r.data,i=r.offset,s=r.strides,c=r.isCContiguous;if(t===void 0){if(c){for(let b=0;b<a;b++)if(u[i+b])return!0}else for(let b=0;b<a;b++)if(r.iget(b))return!0;return!1}let l=t;if(l<0&&(l=o+l),l<0||l>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let f=Array.from(n).filter((b,A)=>A!==l);if(f.length===0)return Hi(r);let m=S.zeros(f,"bool"),p=m.data,y=n[l],d=f.reduce((b,A)=>b*A,1);for(let b=0;b<d;b++){let A=!1;for(let g=0;g<y;g++){let h=Y(b,l,g,n),N=Z(h,s,i);if(u[N]){A=!0;break}}p[b]=A?1:0}if(e){let b=[...n];return b[l]=1,S.fromData(p,b,"bool")}return m}function Tm(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data,u=r.offset,i=r.strides,s=r.isCContiguous;if(B(e)){let b=a,A=r.size;if(t===void 0){let I=S.zeros([A],e),v=I.data,T=0,O=0;if(s)for(let $=0;$<A;$++)T+=b[(u+$)*2],O+=b[(u+$)*2+1],v[$*2]=T,v[$*2+1]=O;else for(let $=0;$<A;$++){let k=r.iget($);T+=k.re,O+=k.im,v[$*2]=T,v[$*2+1]=O}return I}let g=t;if(g<0&&(g=o+g),g<0||g>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let h=S.zeros([...n],e),N=h.data,D=n[g],x=[],C=1;for(let I=o-1;I>=0;I--)x.unshift(C),C*=n[I];let w=r.size,_=x[g];for(let I=0;I<w;I++){let v=Math.floor(I/_)%D,T=new Array(o),O=I;for(let k=o-1;k>=0;k--)T[k]=O%n[k],O=Math.floor(O/n[k]);let $=Z(T,i,u);v===0?(N[I*2]=b[$*2],N[I*2+1]=b[$*2+1]):(N[I*2]=N[(I-_)*2]+b[$*2],N[I*2+1]=N[(I-_)*2+1]+b[$*2+1])}return h}if(t===void 0){let b=r.size,A=new Float64Array(b),g=0;if(s)for(let h=0;h<b;h++)g+=Number(a[u+h]),A[h]=g;else for(let h=0;h<b;h++)g+=Number(r.iget(h)),A[h]=g;return S.fromData(A,[b],"float64")}let c=t;if(c<0&&(c=o+c),c<0||c>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let l=new Float64Array(r.size),f=n[c],m=[],p=1;for(let b=o-1;b>=0;b--)m.unshift(p),p*=n[b];let y=r.size,d=m[c];for(let b=0;b<y;b++){let A=Math.floor(b/d)%f,g=new Array(o),h=b;for(let D=o-1;D>=0;D--)g[D]=h%n[D],h=Math.floor(h/n[D]);let N=Z(g,i,u);A===0?l[b]=Number(a[N]):l[b]=l[b-d]+Number(a[N])}return S.fromData(l,[...n],"float64")}function Em(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data,u=r.offset,i=r.strides,s=r.isCContiguous;if(B(e)){let b=a,A=r.size;if(t===void 0){let I=S.zeros([A],e),v=I.data,T=1,O=0;if(s)for(let $=0;$<A;$++){let k=b[(u+$)*2],V=b[(u+$)*2+1],j=T*k-O*V,R=T*V+O*k;T=j,O=R,v[$*2]=T,v[$*2+1]=O}else for(let $=0;$<A;$++){let k=r.iget($),V=k.re,j=k.im,R=T*V-O*j,W=T*j+O*V;T=R,O=W,v[$*2]=T,v[$*2+1]=O}return I}let g=t;if(g<0&&(g=o+g),g<0||g>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let h=S.zeros([...n],e),N=h.data,D=n[g],x=[],C=1;for(let I=o-1;I>=0;I--)x.unshift(C),C*=n[I];let w=r.size,_=x[g];for(let I=0;I<w;I++){let v=Math.floor(I/_)%D,T=new Array(o),O=I;for(let k=o-1;k>=0;k--)T[k]=O%n[k],O=Math.floor(O/n[k]);let $=Z(T,i,u);if(v===0)N[I*2]=b[$*2],N[I*2+1]=b[$*2+1];else{let k=N[(I-_)*2],V=N[(I-_)*2+1],j=b[$*2],R=b[$*2+1];N[I*2]=k*j-V*R,N[I*2+1]=k*R+V*j}}return h}if(t===void 0){let b=r.size,A=new Float64Array(b),g=1;if(s)for(let h=0;h<b;h++)g*=Number(a[u+h]),A[h]=g;else for(let h=0;h<b;h++)g*=Number(r.iget(h)),A[h]=g;return S.fromData(A,[b],"float64")}let c=t;if(c<0&&(c=o+c),c<0||c>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let l=new Float64Array(r.size),f=n[c],m=[],p=1;for(let b=o-1;b>=0;b--)m.unshift(p),p*=n[b];let y=r.size,d=m[c];for(let b=0;b<y;b++){let A=Math.floor(b/d)%f,g=new Array(o),h=b;for(let D=o-1;D>=0;D--)g[D]=h%n[D],h=Math.floor(h/n[D]);let N=Z(g,i,u);A===0?l[b]=Number(a[N]):l[b]=l[b-d]*Number(a[N])}return S.fromData(l,[...n],"float64")}function Om(r,t,e=!1){let n=r.dtype;if(B(n)){let f=gt(r,t,e),m=ht(r,t,e);if(f instanceof U&&m instanceof U)return new U(f.re-m.re,f.im-m.im);let p=f,y=m,d=p.data,b=y.data,A=new Float64Array(p.size*2);for(let g=0;g<p.size;g++)A[g*2]=d[g*2]-b[g*2],A[g*2+1]=d[g*2+1]-b[g*2+1];return S.fromData(A,[...p.shape],n)}let o=gt(r,t,e),a=ht(r,t,e);if(typeof o=="number"&&typeof a=="number")return o-a;let u=o,i=a,s=u.data,c=i.data,l=new Float64Array(u.size);for(let f=0;f<u.size;f++)l[f]=Number(s[f])-Number(c[f]);return S.fromData(l,[...u.shape],"float64")}function Um(r,t,e=!1){return Ue(r,.5,t,e)}function $m(r,t,e,n=!1){return Ue(r,t/100,e,n)}function Ue(r,t,e,n=!1){if(L(r.dtype,"quantile","Complex numbers are not orderable."),t<0||t>1)throw new Error("Quantile must be between 0 and 1");let o=r.shape,a=o.length,u=r.data,i=r.offset,s=r.strides;if(e===void 0){let d=[];if(r.isCContiguous)for(let x=0;x<r.size;x++)d.push(Number(u[i+x]));else for(let x=0;x<r.size;x++)d.push(Number(r.iget(x)));d.sort((x,C)=>x-C);let A=d.length,g=t*(A-1),h=Math.floor(g),N=Math.ceil(g);if(h===N)return d[h];let D=g-h;return d[h]*(1-D)+d[N]*D}let c=e;if(c<0&&(c=a+c),c<0||c>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);let l=Array.from(o).filter((d,b)=>b!==c);if(l.length===0)return Ue(r,t);let f=l.reduce((d,b)=>d*b,1),m=o[c],p=new Float64Array(f);for(let d=0;d<f;d++){let b=[];for(let D=0;D<m;D++){let x=Y(d,c,D,o),C=Z(x,s,i);b.push(Number(u[C]))}b.sort((D,x)=>D-x);let A=b.length,g=t*(A-1),h=Math.floor(g),N=Math.ceil(g);if(h===N)p[d]=b[h];else{let D=g-h;p[d]=b[h]*(1-D)+b[N]*D}}let y=S.fromData(p,l,"float64");if(n){let d=[...o];return d[c]=1,S.fromData(p,d,"float64")}return y}function Ko(r,t,e,n=!1){let o=r.dtype,a=r.shape,u=a.length,i=r.data,s=r.offset,c=r.strides;if(e===void 0)return ea(r,t,n);if(B(o)){let g=i,h=e.data,N=e.offset;if(t===void 0){let v=0,T=0,O=0;if(r.isCContiguous)for(let k=0;k<r.size;k++){let V=Number(h[N+k%e.size]),j=g[(s+k)*2],R=g[(s+k)*2+1];v+=j*V,T+=R*V,O+=V}else for(let k=0;k<r.size;k++){let V=Number(h[N+k%e.size]),j=r.iget(k);v+=j.re*V,T+=j.im*V,O+=V}return O===0?new U(NaN,NaN):new U(v/O,T/O)}let D=t;if(D<0&&(D=u+D),D<0||D>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let x=Array.from(a).filter((v,T)=>T!==D);if(x.length===0)return Ko(r,void 0,e);let C=x.reduce((v,T)=>v*T,1),w=a[D],_=S.zeros(x,o),I=_.data;for(let v=0;v<C;v++){let T=0,O=0,$=0;for(let k=0;k<w;k++){let V=Y(v,D,k,a),j=Z(V,c,s),R=Number(h[N+k%e.size]),W=g[j*2],J=g[j*2+1];T+=W*R,O+=J*R,$+=R}$===0?(I[v*2]=NaN,I[v*2+1]=NaN):(I[v*2]=T/$,I[v*2+1]=O/$)}if(n){let v=[...a];return v[D]=1,S.fromData(I,v,o)}return _}let l=e.offset;if(t===void 0){let g=0,h=0,N=e.data;if(r.isCContiguous)for(let x=0;x<r.size;x++){let C=Number(N[l+x%e.size]);g+=Number(i[s+x])*C,h+=C}else for(let x=0;x<r.size;x++){let C=Number(N[l+x%e.size]);g+=Number(r.iget(x))*C,h+=C}return h===0?NaN:g/h}let f=t;if(f<0&&(f=u+f),f<0||f>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let m=Array.from(a).filter((g,h)=>h!==f);if(m.length===0)return Ko(r,void 0,e);let p=m.reduce((g,h)=>g*h,1),y=a[f],d=e.data,b=new Float64Array(p);for(let g=0;g<p;g++){let h=0,N=0;for(let D=0;D<y;D++){let x=Y(g,f,D,a),C=Z(x,c,s),w=Number(d[l+D%e.size]);h+=Number(i[C])*w,N+=w}b[g]=N===0?NaN:h/N}let A=S.fromData(b,m,"float64");if(n){let g=[...a];return g[f]=1,S.fromData(b,g,"float64")}return A}function ar(r,t){return isNaN(r)||isNaN(t)}function ru(r,t,e=!1){let n=r.dtype,o=B(n),a=r.shape,u=a.length,i=r.data,s=r.offset,c=r.strides;if(t===void 0){if(o){let g=i,h=0,N=0;if(r.isCContiguous)for(let x=0;x<r.size;x++){let C=g[(s+x)*2],w=g[(s+x)*2+1];ar(C,w)||(h+=C,N+=w)}else for(let x=0;x<r.size;x++){let C=r.iget(x),w=C.re,_=C.im;ar(w,_)||(h+=w,N+=_)}return new U(h,N)}let b=0;if(r.isCContiguous)for(let g=0;g<r.size;g++){let h=Number(i[s+g]);isNaN(h)||(b+=h)}else for(let g=0;g<r.size;g++){let h=Number(r.iget(g));isNaN(h)||(b+=h)}return b}let l=t;if(l<0&&(l=u+l),l<0||l>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let f=Array.from(a).filter((b,A)=>A!==l);if(f.length===0)return ru(r);let m=f.reduce((b,A)=>b*A,1),p=a[l];if(o){let b=i,A=new Float64Array(m*2);for(let g=0;g<m;g++){let h=0,N=0;for(let D=0;D<p;D++){let x=Y(g,l,D,a),C=Z(x,c,s),w=b[C*2],_=b[C*2+1];ar(w,_)||(h+=w,N+=_)}A[g*2]=h,A[g*2+1]=N}if(e){let g=[...a];return g[l]=1,S.fromData(A,g,n)}return S.fromData(A,f,n)}let y=new Float64Array(m);for(let b=0;b<m;b++){let A=0;for(let g=0;g<p;g++){let h=Y(b,l,g,a),N=Z(h,c,s),D=Number(i[N]);isNaN(D)||(A+=D)}y[b]=A}let d=S.fromData(y,f,"float64");if(e){let b=[...a];return b[l]=1,S.fromData(y,b,"float64")}return d}function tu(r,t,e=!1){let n=r.dtype,o=B(n),a=r.shape,u=a.length,i=r.data,s=r.offset,c=r.strides;if(t===void 0){if(o){let g=i,h=1,N=0;if(r.isCContiguous)for(let x=0;x<r.size;x++){let C=g[(s+x)*2],w=g[(s+x)*2+1];if(!ar(C,w)){let _=h*C-N*w,I=h*w+N*C;h=_,N=I}}else for(let x=0;x<r.size;x++){let C=r.iget(x),w=C.re,_=C.im;if(!ar(w,_)){let I=h*w-N*_,v=h*_+N*w;h=I,N=v}}return new U(h,N)}let b=1;if(r.isCContiguous)for(let g=0;g<r.size;g++){let h=Number(i[s+g]);isNaN(h)||(b*=h)}else for(let g=0;g<r.size;g++){let h=Number(r.iget(g));isNaN(h)||(b*=h)}return b}let l=t;if(l<0&&(l=u+l),l<0||l>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let f=Array.from(a).filter((b,A)=>A!==l);if(f.length===0)return tu(r);let m=f.reduce((b,A)=>b*A,1),p=a[l];if(o){let b=i,A=new Float64Array(m*2);for(let g=0;g<m;g++){let h=1,N=0;for(let D=0;D<p;D++){let x=Y(g,l,D,a),C=Z(x,c,s),w=b[C*2],_=b[C*2+1];if(!ar(w,_)){let I=h*w-N*_,v=h*_+N*w;h=I,N=v}}A[g*2]=h,A[g*2+1]=N}if(e){let g=[...a];return g[l]=1,S.fromData(A,g,n)}return S.fromData(A,f,n)}let y=new Float64Array(m);for(let b=0;b<m;b++){let A=1;for(let g=0;g<p;g++){let h=Y(b,l,g,a),N=Z(h,c,s),D=Number(i[N]);isNaN(D)||(A*=D)}y[b]=A}let d=S.fromData(y,f,"float64");if(e){let b=[...a];return b[l]=1,S.fromData(y,b,"float64")}return d}function eu(r,t,e=!1){let n=r.dtype,o=B(n),a=r.shape,u=a.length,i=r.data,s=r.offset,c=r.strides;if(t===void 0){if(o){let h=i,N=0,D=0,x=0;if(r.isCContiguous)for(let w=0;w<r.size;w++){let _=h[(s+w)*2],I=h[(s+w)*2+1];ar(_,I)||(N+=_,D+=I,x++)}else for(let w=0;w<r.size;w++){let _=r.iget(w),I=_.re,v=_.im;ar(I,v)||(N+=I,D+=v,x++)}return x===0?new U(NaN,NaN):new U(N/x,D/x)}let b=0,A=0;if(r.isCContiguous)for(let h=0;h<r.size;h++){let N=Number(i[s+h]);isNaN(N)||(b+=N,A++)}else for(let h=0;h<r.size;h++){let N=Number(r.iget(h));isNaN(N)||(b+=N,A++)}return A===0?NaN:b/A}let l=t;if(l<0&&(l=u+l),l<0||l>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let f=Array.from(a).filter((b,A)=>A!==l);if(f.length===0)return eu(r);let m=f.reduce((b,A)=>b*A,1),p=a[l];if(o){let b=i,A=new Float64Array(m*2);for(let g=0;g<m;g++){let h=0,N=0,D=0;for(let x=0;x<p;x++){let C=Y(g,l,x,a),w=Z(C,c,s),_=b[w*2],I=b[w*2+1];ar(_,I)||(h+=_,N+=I,D++)}D===0?(A[g*2]=NaN,A[g*2+1]=NaN):(A[g*2]=h/D,A[g*2+1]=N/D)}if(e){let g=[...a];return g[l]=1,S.fromData(A,g,n)}return S.fromData(A,f,n)}let y=new Float64Array(m);for(let b=0;b<m;b++){let A=0,g=0;for(let h=0;h<p;h++){let N=Y(b,l,h,a),D=Z(N,c,s),x=Number(i[D]);isNaN(x)||(A+=x,g++)}y[b]=g===0?NaN:A/g}let d=S.fromData(y,f,"float64");if(e){let b=[...a];return b[l]=1,S.fromData(y,b,"float64")}return d}function Oe(r,t,e=0,n=!1){let o=r.dtype,a=r.shape,u=a.length,i=r.data,s=r.offset,c=r.strides;if(B(o)){let b=i;if(t===void 0){let C=0,w=0,_=0,I=r.isCContiguous;if(I)for(let $=0;$<r.size;$++){let k=b[(s+$)*2],V=b[(s+$)*2+1];ar(k,V)||(C+=k,w+=V,_++)}else for(let $=0;$<r.size;$++){let k=r.iget($),V=k.re,j=k.im;ar(V,j)||(C+=V,w+=j,_++)}if(_-e<=0)return NaN;let v=C/_,T=w/_,O=0;if(I)for(let $=0;$<r.size;$++){let k=b[(s+$)*2],V=b[(s+$)*2+1];if(!ar(k,V)){let j=k-v,R=V-T;O+=j*j+R*R}}else for(let $=0;$<r.size;$++){let k=r.iget($),V=k.re,j=k.im;if(!ar(V,j)){let R=V-v,W=j-T;O+=R*R+W*W}}return O/(_-e)}let A=t;if(A<0&&(A=u+A),A<0||A>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let g=Array.from(a).filter((C,w)=>w!==A);if(g.length===0)return Oe(r,void 0,e);let h=g.reduce((C,w)=>C*w,1),N=a[A],D=new Float64Array(h);for(let C=0;C<h;C++){let w=0,_=0,I=0;for(let $=0;$<N;$++){let k=Y(C,A,$,a),V=Z(k,c,s),j=b[V*2],R=b[V*2+1];ar(j,R)||(w+=j,_+=R,I++)}if(I-e<=0){D[C]=NaN;continue}let v=w/I,T=_/I,O=0;for(let $=0;$<N;$++){let k=Y(C,A,$,a),V=Z(k,c,s),j=b[V*2],R=b[V*2+1];if(!ar(j,R)){let W=j-v,J=R-T;O+=W*W+J*J}}D[C]=O/(I-e)}let x=S.fromData(D,g,"float64");if(n){let C=[...a];return C[A]=1,S.fromData(D,C,"float64")}return x}if(t===void 0){let b=0,A=0,g=r.isCContiguous;if(g)for(let D=0;D<r.size;D++){let x=Number(i[s+D]);isNaN(x)||(b+=x,A++)}else for(let D=0;D<r.size;D++){let x=Number(r.iget(D));isNaN(x)||(b+=x,A++)}if(A-e<=0)return NaN;let h=b/A,N=0;if(g)for(let D=0;D<r.size;D++){let x=Number(i[s+D]);isNaN(x)||(N+=(x-h)**2)}else for(let D=0;D<r.size;D++){let x=Number(r.iget(D));isNaN(x)||(N+=(x-h)**2)}return N/(A-e)}let l=t;if(l<0&&(l=u+l),l<0||l>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let f=Array.from(a).filter((b,A)=>A!==l);if(f.length===0)return Oe(r,void 0,e);let m=f.reduce((b,A)=>b*A,1),p=a[l],y=new Float64Array(m);for(let b=0;b<m;b++){let A=0,g=0;for(let D=0;D<p;D++){let x=Y(b,l,D,a),C=Z(x,c,s),w=Number(i[C]);isNaN(w)||(A+=w,g++)}if(g-e<=0){y[b]=NaN;continue}let h=A/g,N=0;for(let D=0;D<p;D++){let x=Y(b,l,D,a),C=Z(x,c,s),w=Number(i[C]);isNaN(w)||(N+=(w-h)**2)}y[b]=N/(g-e)}let d=S.fromData(y,f,"float64");if(n){let b=[...a];return b[l]=1,S.fromData(y,b,"float64")}return d}function km(r,t,e=0,n=!1){let o=Oe(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=o,u=new Float64Array(a.size);for(let i=0;i<a.size;i++)u[i]=Math.sqrt(Number(a.data[i]));return S.fromData(u,[...a.shape],"float64")}function Qo(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.data,i=r.offset,s=r.strides;if(B(n)){let d=u;if(t===void 0){let x=1/0,C=1/0,w=!1;if(r.isCContiguous)for(let I=0;I<r.size;I++){let v=d[(i+I)*2],T=d[(i+I)*2+1];isNaN(v)||isNaN(T)||(w?(v<x||v===x&&T<C)&&(x=v,C=T):(x=v,C=T,w=!0))}else for(let I=0;I<r.size;I++){let v=r.iget(I),T=v.re,O=v.im;isNaN(T)||isNaN(O)||(w?(T<x||T===x&&O<C)&&(x=T,C=O):(x=T,C=O,w=!0))}return w?new U(x,C):new U(NaN,NaN)}let b=t;if(b<0&&(b=a+b),b<0||b>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let A=Array.from(o).filter((x,C)=>C!==b);if(A.length===0)return Qo(r);let g=A.reduce((x,C)=>x*C,1),h=o[b],N=new Float64Array(g*2);for(let x=0;x<g;x++){let C=1/0,w=1/0,_=!1;for(let I=0;I<h;I++){let v=Y(x,b,I,o),T=Z(v,s,i),O=d[T*2],$=d[T*2+1];isNaN(O)||isNaN($)||(_?(O<C||O===C&&$<w)&&(C=O,w=$):(C=O,w=$,_=!0))}N[x*2]=_?C:NaN,N[x*2+1]=_?w:NaN}let D=S.fromData(N,A,n);if(e){let x=[...o];return x[b]=1,S.fromData(N,x,n)}return D}if(t===void 0){let d=1/0;if(r.isCContiguous)for(let A=0;A<r.size;A++){let g=Number(u[i+A]);!isNaN(g)&&g<d&&(d=g)}else for(let A=0;A<r.size;A++){let g=Number(r.iget(A));!isNaN(g)&&g<d&&(d=g)}return d===1/0?NaN:d}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=Array.from(o).filter((d,b)=>b!==c);if(l.length===0)return Qo(r);let f=l.reduce((d,b)=>d*b,1),m=o[c],p=new Float64Array(f);for(let d=0;d<f;d++){let b=1/0;for(let A=0;A<m;A++){let g=Y(d,c,A,o),h=Z(g,s,i),N=Number(u[h]);!isNaN(N)&&N<b&&(b=N)}p[d]=b===1/0?NaN:b}let y=S.fromData(p,l,"float64");if(e){let d=[...o];return d[c]=1,S.fromData(p,d,"float64")}return y}function Ho(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.data,i=r.offset,s=r.strides;if(B(n)){let d=u;if(t===void 0){let x=-1/0,C=-1/0,w=!1;if(r.isCContiguous)for(let I=0;I<r.size;I++){let v=d[(i+I)*2],T=d[(i+I)*2+1];isNaN(v)||isNaN(T)||(w?(v>x||v===x&&T>C)&&(x=v,C=T):(x=v,C=T,w=!0))}else for(let I=0;I<r.size;I++){let v=r.iget(I),T=v.re,O=v.im;isNaN(T)||isNaN(O)||(w?(T>x||T===x&&O>C)&&(x=T,C=O):(x=T,C=O,w=!0))}return w?new U(x,C):new U(NaN,NaN)}let b=t;if(b<0&&(b=a+b),b<0||b>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let A=Array.from(o).filter((x,C)=>C!==b);if(A.length===0)return Ho(r);let g=A.reduce((x,C)=>x*C,1),h=o[b],N=new Float64Array(g*2);for(let x=0;x<g;x++){let C=-1/0,w=-1/0,_=!1;for(let I=0;I<h;I++){let v=Y(x,b,I,o),T=Z(v,s,i),O=d[T*2],$=d[T*2+1];isNaN(O)||isNaN($)||(_?(O>C||O===C&&$>w)&&(C=O,w=$):(C=O,w=$,_=!0))}N[x*2]=_?C:NaN,N[x*2+1]=_?w:NaN}let D=S.fromData(N,A,n);if(e){let x=[...o];return x[b]=1,S.fromData(N,x,n)}return D}if(t===void 0){let d=-1/0;if(r.isCContiguous)for(let A=0;A<r.size;A++){let g=Number(u[i+A]);!isNaN(g)&&g>d&&(d=g)}else for(let A=0;A<r.size;A++){let g=Number(r.iget(A));!isNaN(g)&&g>d&&(d=g)}return d===-1/0?NaN:d}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=Array.from(o).filter((d,b)=>b!==c);if(l.length===0)return Ho(r);let f=l.reduce((d,b)=>d*b,1),m=o[c],p=new Float64Array(f);for(let d=0;d<f;d++){let b=-1/0;for(let A=0;A<m;A++){let g=Y(d,c,A,o),h=Z(g,s,i),N=Number(u[h]);!isNaN(N)&&N>b&&(b=N)}p[d]=b===-1/0?NaN:b}let y=S.fromData(p,l,"float64");if(e){let d=[...o];return d[c]=1,S.fromData(p,d,"float64")}return y}function ra(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data,u=r.offset,i=r.strides;if(B(e)){let p=a;if(t===void 0){let h=1/0,N=1/0,D=-1;if(r.isCContiguous)for(let C=0;C<r.size;C++){let w=p[(u+C)*2],_=p[(u+C)*2+1];!ar(w,_)&&zr(w,_,h,N)<0&&(h=w,N=_,D=C)}else for(let C=0;C<r.size;C++){let w=r.iget(C),_=w.re,I=w.im;!ar(_,I)&&zr(_,I,h,N)<0&&(h=_,N=I,D=C)}return D}let y=t;if(y<0&&(y=o+y),y<0||y>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let d=Array.from(n).filter((h,N)=>N!==y);if(d.length===0)return ra(r);let b=d.reduce((h,N)=>h*N,1),A=n[y],g=new Int32Array(b);for(let h=0;h<b;h++){let N=1/0,D=1/0,x=0;for(let C=0;C<A;C++){let w=Y(h,y,C,n),_=Z(w,i,u),I=p[_*2],v=p[_*2+1];!ar(I,v)&&zr(I,v,N,D)<0&&(N=I,D=v,x=C)}g[h]=x}return S.fromData(g,d,"int32")}if(t===void 0){let p=1/0,y=-1;if(r.isCContiguous)for(let b=0;b<r.size;b++){let A=Number(a[u+b]);!isNaN(A)&&A<p&&(p=A,y=b)}else for(let b=0;b<r.size;b++){let A=Number(r.iget(b));!isNaN(A)&&A<p&&(p=A,y=b)}return 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 c=Array.from(n).filter((p,y)=>y!==s);if(c.length===0)return ra(r);let l=c.reduce((p,y)=>p*y,1),f=n[s],m=new Int32Array(l);for(let p=0;p<l;p++){let y=1/0,d=0;for(let b=0;b<f;b++){let A=Y(p,s,b,n),g=Z(A,i,u),h=Number(a[g]);!isNaN(h)&&h<y&&(y=h,d=b)}m[p]=d}return S.fromData(m,c,"int32")}function ta(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data,u=r.offset,i=r.strides;if(B(e)){let p=a;if(t===void 0){let h=-1/0,N=-1/0,D=-1;if(r.isCContiguous)for(let C=0;C<r.size;C++){let w=p[(u+C)*2],_=p[(u+C)*2+1];!ar(w,_)&&zr(w,_,h,N)>0&&(h=w,N=_,D=C)}else for(let C=0;C<r.size;C++){let w=r.iget(C),_=w.re,I=w.im;!ar(_,I)&&zr(_,I,h,N)>0&&(h=_,N=I,D=C)}return D}let y=t;if(y<0&&(y=o+y),y<0||y>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let d=Array.from(n).filter((h,N)=>N!==y);if(d.length===0)return ta(r);let b=d.reduce((h,N)=>h*N,1),A=n[y],g=new Int32Array(b);for(let h=0;h<b;h++){let N=-1/0,D=-1/0,x=0;for(let C=0;C<A;C++){let w=Y(h,y,C,n),_=Z(w,i,u),I=p[_*2],v=p[_*2+1];!ar(I,v)&&zr(I,v,N,D)>0&&(N=I,D=v,x=C)}g[h]=x}return S.fromData(g,d,"int32")}if(t===void 0){let p=-1/0,y=-1;if(r.isCContiguous)for(let b=0;b<r.size;b++){let A=Number(a[u+b]);!isNaN(A)&&A>p&&(p=A,y=b)}else for(let b=0;b<r.size;b++){let A=Number(r.iget(b));!isNaN(A)&&A>p&&(p=A,y=b)}return 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 c=Array.from(n).filter((p,y)=>y!==s);if(c.length===0)return ta(r);let l=c.reduce((p,y)=>p*y,1),f=n[s],m=new Int32Array(l);for(let p=0;p<l;p++){let y=-1/0,d=0;for(let b=0;b<f;b++){let A=Y(p,s,b,n),g=Z(A,i,u),h=Number(a[g]);!isNaN(h)&&h>y&&(y=h,d=b)}m[p]=d}return S.fromData(m,c,"int32")}function Rm(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data,u=r.offset;if(B(e)){let d=a,b=r.size;if(t===void 0){let I=S.zeros([b],e),v=I.data,T=0,O=0;if(r.isCContiguous)for(let k=0;k<b;k++){let V=d[(u+k)*2],j=d[(u+k)*2+1];ar(V,j)||(T+=V,O+=j),v[k*2]=T,v[k*2+1]=O}else for(let k=0;k<b;k++){let V=r.iget(k),j=V.re,R=V.im;ar(j,R)||(T+=j,O+=R),v[k*2]=T,v[k*2+1]=O}return I}let A=t;if(A<0&&(A=o+A),A<0||A>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let g=S.zeros([...n],e),h=g.data,N=n[A],D=[],x=1;for(let I=o-1;I>=0;I--)D.unshift(x),x*=n[I];let C=r.size,w=D[A];if(r.isCContiguous)for(let I=0;I<C;I++){let v=d[(u+I)*2],T=d[(u+I)*2+1],O=Math.floor(I/w)%N,$=ar(v,T);O===0?(h[I*2]=$?0:v,h[I*2+1]=$?0:T):(h[I*2]=h[(I-w)*2]+($?0:v),h[I*2+1]=h[(I-w)*2+1]+($?0:T))}else for(let I=0;I<C;I++){let v=r.iget(I),T=v.re,O=v.im,$=Math.floor(I/w)%N,k=ar(T,O);$===0?(h[I*2]=k?0:T,h[I*2+1]=k?0:O):(h[I*2]=h[(I-w)*2]+(k?0:T),h[I*2+1]=h[(I-w)*2+1]+(k?0:O))}return g}if(t===void 0){let d=r.size,b=new Float64Array(d),A=0;if(r.isCContiguous)for(let h=0;h<d;h++){let N=Number(a[u+h]);isNaN(N)||(A+=N),b[h]=A}else for(let h=0;h<d;h++){let N=Number(r.iget(h));isNaN(N)||(A+=N),b[h]=A}return S.fromData(b,[d],"float64")}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 s=new Float64Array(r.size),c=n[i],l=[],f=1;for(let d=o-1;d>=0;d--)l.unshift(f),f*=n[d];let m=r.size,p=l[i];if(r.isCContiguous)for(let d=0;d<m;d++){let b=Number(a[u+d]);Math.floor(d/p)%c===0?s[d]=isNaN(b)?0:b:s[d]=s[d-p]+(isNaN(b)?0:b)}else for(let d=0;d<m;d++){let b=Number(r.iget(d));Math.floor(d/p)%c===0?s[d]=isNaN(b)?0:b:s[d]=s[d-p]+(isNaN(b)?0:b)}return S.fromData(s,[...n],"float64")}function qm(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data,u=r.offset;if(B(e)){let d=a,b=r.size;if(t===void 0){let I=S.zeros([b],e),v=I.data,T=1,O=0;if(r.isCContiguous)for(let k=0;k<b;k++){let V=d[(u+k)*2],j=d[(u+k)*2+1];if(!ar(V,j)){let R=T*V-O*j,W=T*j+O*V;T=R,O=W}v[k*2]=T,v[k*2+1]=O}else for(let k=0;k<b;k++){let V=r.iget(k),j=V.re,R=V.im;if(!ar(j,R)){let W=T*j-O*R,J=T*R+O*j;T=W,O=J}v[k*2]=T,v[k*2+1]=O}return I}let A=t;if(A<0&&(A=o+A),A<0||A>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let g=S.zeros([...n],e),h=g.data,N=n[A],D=[],x=1;for(let I=o-1;I>=0;I--)D.unshift(x),x*=n[I];let C=r.size,w=D[A];if(r.isCContiguous)for(let I=0;I<C;I++){let v=d[(u+I)*2],T=d[(u+I)*2+1],O=Math.floor(I/w)%N,$=ar(v,T);if(O===0)h[I*2]=$?1:v,h[I*2+1]=$?0:T;else{let k=h[(I-w)*2],V=h[(I-w)*2+1];$?(h[I*2]=k,h[I*2+1]=V):(h[I*2]=k*v-V*T,h[I*2+1]=k*T+V*v)}}else for(let I=0;I<C;I++){let v=r.iget(I),T=v.re,O=v.im,$=Math.floor(I/w)%N,k=ar(T,O);if($===0)h[I*2]=k?1:T,h[I*2+1]=k?0:O;else{let V=h[(I-w)*2],j=h[(I-w)*2+1];k?(h[I*2]=V,h[I*2+1]=j):(h[I*2]=V*T-j*O,h[I*2+1]=V*O+j*T)}}return g}if(t===void 0){let d=r.size,b=new Float64Array(d),A=1;if(r.isCContiguous)for(let h=0;h<d;h++){let N=Number(a[u+h]);isNaN(N)||(A*=N),b[h]=A}else for(let h=0;h<d;h++){let N=Number(r.iget(h));isNaN(N)||(A*=N),b[h]=A}return S.fromData(b,[d],"float64")}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 s=new Float64Array(r.size),c=n[i],l=[],f=1;for(let d=o-1;d>=0;d--)l.unshift(f),f*=n[d];let m=r.size,p=l[i];if(r.isCContiguous)for(let d=0;d<m;d++){let b=Number(a[u+d]);Math.floor(d/p)%c===0?s[d]=isNaN(b)?1:b:s[d]=s[d-p]*(isNaN(b)?1:b)}else for(let d=0;d<m;d++){let b=Number(r.iget(d));Math.floor(d/p)%c===0?s[d]=isNaN(b)?1:b:s[d]=s[d-p]*(isNaN(b)?1:b)}return S.fromData(s,[...n],"float64")}function nu(r,t,e=!1){L(r.dtype,"nanmedian","Complex numbers are not orderable.");let n=r.shape,o=n.length,a=r.data,u=r.offset,i=r.strides;if(t===void 0){let y=[];if(r.isCContiguous)for(let g=0;g<r.size;g++){let h=Number(a[u+g]);isNaN(h)||y.push(h)}else for(let g=0;g<r.size;g++){let h=Number(r.iget(g));isNaN(h)||y.push(h)}if(y.length===0)return NaN;y.sort((g,h)=>g-h);let b=y.length,A=Math.floor(b/2);return b%2===0?(y[A-1]+y[A])/2:y[A]}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 c=Array.from(n).filter((y,d)=>d!==s);if(c.length===0)return nu(r);let l=c.reduce((y,d)=>y*d,1),f=n[s],m=new Float64Array(l);for(let y=0;y<l;y++){let d=[];for(let g=0;g<f;g++){let h=Y(y,s,g,n),N=Z(h,i,u),D=Number(a[N]);isNaN(D)||d.push(D)}if(d.length===0){m[y]=NaN;continue}d.sort((g,h)=>g-h);let b=d.length,A=Math.floor(b/2);b%2===0?m[y]=(d[A-1]+d[A])/2:m[y]=d[A]}let p=S.fromData(m,c,"float64");if(e){let y=[...n];return y[s]=1,S.fromData(m,y,"float64")}return p}function na(r,t,e,n=!1){if(L(r.dtype,"nanquantile","Complex numbers are not orderable."),t<0||t>1)throw new Error("Quantile must be between 0 and 1");let o=r.shape,a=o.length,u=r.data,i=r.offset,s=r.strides;if(e===void 0){let d=[];if(r.isCContiguous)for(let x=0;x<r.size;x++){let C=Number(u[i+x]);isNaN(C)||d.push(C)}else for(let x=0;x<r.size;x++){let C=Number(r.iget(x));isNaN(C)||d.push(C)}if(d.length===0)return NaN;d.sort((x,C)=>x-C);let A=d.length,g=t*(A-1),h=Math.floor(g),N=Math.ceil(g);if(h===N)return d[h];let D=g-h;return d[h]*(1-D)+d[N]*D}let c=e;if(c<0&&(c=a+c),c<0||c>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);let l=Array.from(o).filter((d,b)=>b!==c);if(l.length===0)return na(r,t);let f=l.reduce((d,b)=>d*b,1),m=o[c],p=new Float64Array(f);for(let d=0;d<f;d++){let b=[];for(let D=0;D<m;D++){let x=Y(d,c,D,o),C=Z(x,s,i),w=Number(u[C]);isNaN(w)||b.push(w)}if(b.length===0){p[d]=NaN;continue}b.sort((D,x)=>D-x);let A=b.length,g=t*(A-1),h=Math.floor(g),N=Math.ceil(g);if(h===N)p[d]=b[h];else{let D=g-h;p[d]=b[h]*(1-D)+b[N]*D}}let y=S.fromData(p,l,"float64");if(n){let d=[...o];return d[c]=1,S.fromData(p,d,"float64")}return y}function Vm(r,t,e,n=!1){return na(r,t/100,e,n)}function $e(r,t,e){let n=Ee(z(r),t,e);return typeof n=="number"||typeof n=="bigint"||n instanceof U?n:M(n)}function ke(r,t,e){let n=ea(z(r),t,e);return typeof n=="number"||n instanceof U?n:M(n)}function Re(r,t,e){let n=Zi(z(r),t,e);return typeof n=="number"||typeof n=="bigint"||n instanceof U?n:M(n)}function qe(r,t,e){let n=gt(z(r),t,e);return typeof n=="number"||n instanceof U?n:M(n)}var Ve=qe;function Pe(r,t,e){let n=ht(z(r),t,e);return typeof n=="number"||n instanceof U?n:M(n)}var je=Pe;function Le(r,t,e){let n=Om(z(r),t,e);return typeof n=="number"||n instanceof U?n:M(n)}function Ge(r,t){let e=Ji(z(r),t);return typeof e=="number"?e:M(e)}function Ye(r,t){let e=Xi(z(r),t);return typeof e=="number"?e:M(e)}function rt(r,t,e,n){let o=Ki(z(r),t,e,n);return typeof o=="number"?o:M(o)}var oa=rt;function We(r,t,e,n){let o=Bm(z(r),t,e,n);return typeof o=="number"?o:M(o)}function Ze(r,t,e){let n=Um(z(r),t,e);return typeof n=="number"?n:M(n)}function Je(r,t,e,n){let o=$m(z(r),t,e,n);return typeof o=="number"?o:M(o)}function Xe(r,t,e,n){let o=Ue(z(r),t,e,n);return typeof o=="number"?o:M(o)}function Ke(r,t,e,n){let o=e?z(e):void 0,a=Ko(z(r),t,o,n);return typeof a=="number"||a instanceof U?a:M(a)}function Qe(r,t,e){let n=Qi(z(r),t,e);return typeof n=="boolean"?n:M(n)}function He(r,t,e){let n=Hi(z(r),t,e);return typeof n=="boolean"?n:M(n)}function rn(r,t){return M(Tm(z(r),t))}function tn(r,t){return M(Em(z(r),t))}function en(r,t,e){let n=ru(z(r),t,e);return typeof n=="number"||n instanceof U?n:M(n)}function nn(r,t,e){let n=tu(z(r),t,e);return typeof n=="number"||n instanceof U?n:M(n)}function on(r,t,e){let n=eu(z(r),t,e);return typeof n=="number"||n instanceof U?n:M(n)}function an(r,t,e,n){let o=Oe(z(r),t,e,n);return typeof o=="number"?o:M(o)}function sn(r,t,e,n){let o=km(z(r),t,e,n);return typeof o=="number"?o:M(o)}function un(r,t,e){let n=Qo(z(r),t,e);return typeof n=="number"||n instanceof U?n:M(n)}function cn(r,t,e){let n=Ho(z(r),t,e);return typeof n=="number"||n instanceof U?n:M(n)}function ln(r,t){let e=ra(z(r),t);return typeof e=="number"?e:M(e)}function fn(r,t){let e=ta(z(r),t);return typeof e=="number"?e:M(e)}function mn(r,t){return M(Rm(z(r),t))}function pn(r,t){return M(qm(z(r),t))}function yn(r,t,e){let n=nu(z(r),t,e);return typeof n=="number"?n:M(n)}function dn(r,t,e,n){let o=na(z(r),t,e,n);return typeof o=="number"?o:M(o)}function bn(r,t,e,n){let o=Vm(z(r),t,e,n);return typeof o=="number"?o:M(o)}function Dt(r){return r!==0&&r!==0n}function Rr(r,t){let e=r[t*2],n=r[t*2+1];return e!==0||n!==0}function An(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function jm(r,t){return typeof t=="number"?AD(r,t):An(r,t)?bD(r,t):Ir(r,t,(e,n)=>Dt(e)&&Dt(n))}function bD(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.offset,u=t.offset,i=r.size,s=E(r.dtype),c=E(t.dtype),l=B(r.dtype),f=B(t.dtype);if(l||f)for(let m=0;m<i;m++){let p=l?Rr(n,a+m):n[a+m]!==0,y=f?Rr(o,u+m):o[u+m]!==0;e[m]=p&&y?1:0}else if(s||c)for(let m=0;m<i;m++){let p=s?n[a+m]!==0n:n[a+m]!==0,y=c?o[u+m]!==0n:o[u+m]!==0;e[m]=p&&y?1:0}else for(let m=0;m<i;m++)e[m]=n[a+m]!==0&&o[u+m]!==0?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function AD(r,t){let e=new Uint8Array(r.size),n=t!==0,o=r.size;if(r.isCContiguous){let a=r.data,u=r.offset;if(B(r.dtype)){let i=a;for(let s=0;s<o;s++)e[s]=Rr(i,u+s)&&n?1:0}else if(E(r.dtype)){let i=a;for(let s=0;s<o;s++)e[s]=i[u+s]!==0n&&n?1:0}else if(u===0)for(let i=0;i<o;i++)e[i]=a[i]!==0&&n?1:0;else for(let i=0;i<o;i++)e[i]=a[u+i]!==0&&n?1:0}else if(B(r.dtype))for(let a=0;a<o;a++){let u=r.iget(a);e[a]=(u.re!==0||u.im!==0)&&n?1:0}else if(E(r.dtype))for(let a=0;a<o;a++)e[a]=r.iget(a)!==0n&&n?1:0;else for(let a=0;a<o;a++)e[a]=Number(r.iget(a))!==0&&n?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function Lm(r,t){if(typeof t=="number")return Pm(r,t);if(t.size===1&&!B(t.dtype)&&r.dtype===t.dtype){let e=Number(t.iget(0));return Pm(r,e)}return An(r,t)?gD(r,t):Ir(r,t,(e,n)=>Dt(e)||Dt(n))}function gD(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.offset,u=t.offset,i=r.size,s=E(r.dtype),c=E(t.dtype),l=B(r.dtype),f=B(t.dtype);if(l||f)for(let m=0;m<i;m++){let p=l?Rr(n,a+m):n[a+m]!==0,y=f?Rr(o,u+m):o[u+m]!==0;e[m]=p||y?1:0}else if(s||c)for(let m=0;m<i;m++){let p=s?n[a+m]!==0n:n[a+m]!==0,y=c?o[u+m]!==0n:o[u+m]!==0;e[m]=p||y?1:0}else for(let m=0;m<i;m++)e[m]=n[a+m]!==0||o[u+m]!==0?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function Pm(r,t){let e=new Uint8Array(r.size),n=t!==0,o=r.size;if(r.isCContiguous){let a=r.data,u=r.offset;if(B(r.dtype)){let i=a;for(let s=0;s<o;s++)e[s]=Rr(i,u+s)||n?1:0}else if(E(r.dtype)){let i=a;for(let s=0;s<o;s++)e[s]=i[u+s]!==0n||n?1:0}else if(u===0)for(let i=0;i<o;i++)e[i]=a[i]!==0||n?1:0;else for(let i=0;i<o;i++)e[i]=a[u+i]!==0||n?1:0}else if(B(r.dtype))for(let a=0;a<o;a++){let u=r.iget(a);e[a]=u.re!==0||u.im!==0||n?1:0}else if(E(r.dtype))for(let a=0;a<o;a++)e[a]=r.iget(a)!==0n||n?1:0;else for(let a=0;a<o;a++)e[a]=Number(r.iget(a))!==0||n?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function Gm(r){let t=new Uint8Array(r.size),e=r.size;if(r.isCContiguous){let n=r.data,o=r.offset;if(B(r.dtype)){let a=n;for(let u=0;u<e;u++)t[u]=Rr(a,o+u)?0:1}else if(E(r.dtype)){let a=n;for(let u=0;u<e;u++)t[u]=a[o+u]===0n?1:0}else if(o===0)for(let a=0;a<e;a++)t[a]=n[a]===0?1:0;else for(let a=0;a<e;a++)t[a]=n[o+a]===0?1:0}else if(B(r.dtype))for(let n=0;n<e;n++){let o=r.iget(n);t[n]=o.re===0&&o.im===0?1:0}else if(E(r.dtype))for(let n=0;n<e;n++)t[n]=r.iget(n)===0n?1:0;else for(let n=0;n<e;n++)t[n]=Number(r.iget(n))===0?1:0;return S.fromData(t,Array.from(r.shape),"bool")}function Ym(r,t){return typeof t=="number"?ND(r,t):An(r,t)?hD(r,t):Ir(r,t,(e,n)=>Dt(e)!==Dt(n))}function hD(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.offset,u=t.offset,i=r.size,s=E(r.dtype),c=E(t.dtype),l=B(r.dtype),f=B(t.dtype);if(l||f)for(let m=0;m<i;m++){let p=l?Rr(n,a+m):n[a+m]!==0,y=f?Rr(o,u+m):o[u+m]!==0;e[m]=p!==y?1:0}else if(s||c)for(let m=0;m<i;m++){let p=s?n[a+m]!==0n:n[a+m]!==0,y=c?o[u+m]!==0n:o[u+m]!==0;e[m]=p!==y?1:0}else for(let m=0;m<i;m++){let p=n[a+m]!==0,y=o[u+m]!==0;e[m]=p!==y?1:0}return S.fromData(e,Array.from(r.shape),"bool")}function ND(r,t){let e=new Uint8Array(r.size),n=t!==0,o=r.size;if(r.isCContiguous){let a=r.data,u=r.offset;if(B(r.dtype)){let i=a;for(let s=0;s<o;s++){let c=Rr(i,u+s);e[s]=c!==n?1:0}}else if(E(r.dtype)){let i=a;for(let s=0;s<o;s++){let c=i[u+s]!==0n;e[s]=c!==n?1:0}}else if(u===0)for(let i=0;i<o;i++){let s=a[i]!==0;e[i]=s!==n?1:0}else for(let i=0;i<o;i++){let s=a[u+i]!==0;e[i]=s!==n?1:0}}else if(B(r.dtype))for(let a=0;a<o;a++){let u=r.iget(a),i=u.re!==0||u.im!==0;e[a]=i!==n?1:0}else if(E(r.dtype))for(let a=0;a<o;a++){let u=r.iget(a)!==0n;e[a]=u!==n?1:0}else for(let a=0;a<o;a++){let u=Number(r.iget(a))!==0;e[a]=u!==n?1:0}return S.fromData(e,Array.from(r.shape),"bool")}function Wm(r){let t=new Uint8Array(r.size),e=r.size;if(r.isCContiguous){let n=r.data,o=r.offset;if(B(r.dtype)){let a=n;for(let u=0;u<e;u++){let i=a[(o+u)*2],s=a[(o+u)*2+1];t[u]=Number.isFinite(i)&&Number.isFinite(s)?1:0}}else if(E(r.dtype))for(let a=0;a<e;a++)t[a]=1;else if(o===0)for(let a=0;a<e;a++)t[a]=Number.isFinite(n[a])?1:0;else for(let a=0;a<e;a++){let u=n[o+a];t[a]=Number.isFinite(u)?1:0}}else if(B(r.dtype))for(let n=0;n<e;n++){let o=r.iget(n);t[n]=Number.isFinite(o.re)&&Number.isFinite(o.im)?1:0}else if(E(r.dtype))for(let n=0;n<e;n++)t[n]=1;else for(let n=0;n<e;n++)t[n]=Number.isFinite(Number(r.iget(n)))?1:0;return S.fromData(t,Array.from(r.shape),"bool")}function Zm(r){let t=new Uint8Array(r.size),e=r.size;if(r.isCContiguous){let n=r.data,o=r.offset;if(B(r.dtype)){let a=n;for(let u=0;u<e;u++){let i=a[(o+u)*2],s=a[(o+u)*2+1],c=!Number.isFinite(i)&&!Number.isNaN(i),l=!Number.isFinite(s)&&!Number.isNaN(s);t[u]=c||l?1:0}}else if(E(r.dtype))for(let a=0;a<e;a++)t[a]=0;else if(o===0)for(let a=0;a<e;a++){let u=n[a];t[a]=!Number.isFinite(u)&&!Number.isNaN(u)?1:0}else for(let a=0;a<e;a++){let u=n[o+a];t[a]=!Number.isFinite(u)&&!Number.isNaN(u)?1:0}}else if(B(r.dtype))for(let n=0;n<e;n++){let o=r.iget(n),a=!Number.isFinite(o.re)&&!Number.isNaN(o.re),u=!Number.isFinite(o.im)&&!Number.isNaN(o.im);t[n]=a||u?1:0}else if(E(r.dtype))for(let n=0;n<e;n++)t[n]=0;else for(let n=0;n<e;n++){let o=Number(r.iget(n));t[n]=!Number.isFinite(o)&&!Number.isNaN(o)?1:0}return S.fromData(t,Array.from(r.shape),"bool")}function Jm(r){let t=new Uint8Array(r.size),e=r.size;if(r.isCContiguous){let n=r.data,o=r.offset;if(B(r.dtype)){let a=n;for(let u=0;u<e;u++){let i=a[(o+u)*2],s=a[(o+u)*2+1];t[u]=Number.isNaN(i)||Number.isNaN(s)?1:0}}else if(E(r.dtype))for(let a=0;a<e;a++)t[a]=0;else for(let a=0;a<e;a++)t[a]=Number.isNaN(n[o+a])?1:0}else if(B(r.dtype))for(let n=0;n<e;n++){let o=r.iget(n);t[n]=Number.isNaN(o.re)||Number.isNaN(o.im)?1:0}else if(E(r.dtype))for(let n=0;n<e;n++)t[n]=0;else for(let n=0;n<e;n++)t[n]=Number.isNaN(Number(r.iget(n)))?1:0;return S.fromData(t,Array.from(r.shape),"bool")}function Xm(r){let t=new Uint8Array(r.size);return S.fromData(t,Array.from(r.shape),"bool")}function Km(r,t){if(L(r.dtype,"copysign","copysign is only defined for real numbers."),typeof t!="number"&&L(t.dtype,"copysign","copysign is only defined for real numbers."),typeof t=="number")return xD(r,t);if(An(r,t))return DD(r,t);let e=Yr(r.shape,t.shape),n=e.reduce((s,c)=>s*c,1),o=S.zeros(e,"float64"),a=o.data,u=aa(r,e),i=aa(t,e);for(let s=0;s<n;s++){let c=Number(u.iget(s)),l=Number(i.iget(s));a[s]=Math.sign(l)*Math.abs(c)}return o}function DD(r,t){let e=S.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size,a=r.data,u=t.data,i=r.offset,s=t.offset,c=E(r.dtype),l=E(t.dtype);for(let f=0;f<o;f++){let m=c?Number(a[i+f]):a[i+f],p=l?Number(u[s+f]):u[s+f];n[f]=Math.sign(p)*Math.abs(m)}return e}function xD(r,t){let e=S.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size,a=Math.sign(t);if(!r.isCContiguous){for(let s=0;s<o;s++)n[s]=a*Math.abs(Number(r.iget(s)));return e}let u=r.data,i=r.offset;if(E(r.dtype)){let s=u;for(let c=0;c<o;c++)n[c]=a*Math.abs(Number(s[i+c]))}else if(i===0)for(let s=0;s<o;s++)n[s]=a*Math.abs(u[s]);else for(let s=0;s<o;s++)n[s]=a*Math.abs(u[i+s]);return e}function Qm(r){L(r.dtype,"signbit","signbit is only defined for real numbers.");let t=new Uint8Array(r.size),e=r.size;if(r.isCContiguous){let n=r.data,o=r.offset;if(E(r.dtype)){let a=n;for(let u=0;u<e;u++)t[u]=a[o+u]<0n?1:0}else for(let a=0;a<e;a++){let u=n[o+a];t[a]=u<0||Object.is(u,-0)?1:0}}else if(E(r.dtype))for(let n=0;n<e;n++)t[n]=r.iget(n)<0n?1:0;else for(let n=0;n<e;n++){let o=Number(r.iget(n));t[n]=o<0||Object.is(o,-0)?1:0}return S.fromData(t,Array.from(r.shape),"bool")}function Hm(r,t){if(L(r.dtype,"nextafter","nextafter is only defined for real numbers."),typeof t!="number"&&L(t.dtype,"nextafter","nextafter is only defined for real numbers."),typeof t=="number")return SD(r,t);if(An(r,t))return CD(r,t);let e=Yr(r.shape,t.shape),n=e.reduce((s,c)=>s*c,1),o=S.zeros(e,"float64"),a=o.data,u=aa(r,e),i=aa(t,e);for(let s=0;s<n;s++){let c=Number(u.iget(s)),l=Number(i.iget(s));a[s]=Nt(c,l)}return o}function CD(r,t){let e=S.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size,a=r.data,u=t.data,i=r.offset,s=t.offset,c=E(r.dtype),l=E(t.dtype);for(let f=0;f<o;f++){let m=c?Number(a[i+f]):a[i+f],p=l?Number(u[s+f]):u[s+f];n[f]=Nt(m,p)}return e}function SD(r,t){let e=S.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size;if(r.isCContiguous){let a=r.data,u=r.offset;if(E(r.dtype)){let i=a;for(let s=0;s<o;s++)n[s]=Nt(Number(i[u+s]),t)}else for(let i=0;i<o;i++)n[i]=Nt(a[u+i],t)}else for(let a=0;a<o;a++)n[a]=Nt(Number(r.iget(a)),t);return e}function Nt(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 rp(r){L(r.dtype,"spacing","spacing is only defined for real numbers.");let t=S.zeros(Array.from(r.shape),"float64"),e=t.data,n=r.size;if(r.isCContiguous){let o=r.data,a=r.offset;if(E(r.dtype)){let u=o;for(let i=0;i<n;i++)e[i]=ou(Number(u[a+i]))}else for(let u=0;u<n;u++)e[u]=ou(o[a+u])}else for(let o=0;o<n;o++)e[o]=ou(Number(r.iget(o)));return t}function ou(r){if(Number.isNaN(r))return NaN;if(!Number.isFinite(r))return NaN;if(Math.abs(r)===0)return Number.MIN_VALUE;let e=Nt(r,1/0);return Math.abs(e-r)}function aa(r,t){let e=r.shape.length,n=t.length,o=new Array(n).fill(0);for(let a=0;a<e;a++){let u=n-e+a,i=r.shape[a],s=t[u];if(i===s)o[u]=r.strides[a];else if(i===1)o[u]=0;else throw new Error("Invalid broadcast")}return S.fromData(r.data,Array.from(t),r.dtype,o,r.offset)}function tp(r){let t=r.dtype,e=r.size,n=new Uint8Array(e);if(B(t))if(r.isCContiguous){let o=r.offset,a=r.data;for(let u=0;u<e;u++)n[u]=a[(o+u)*2+1]!==0?1:0}else for(let o=0;o<e;o++){let a=r.iget(o);n[o]=a.im!==0?1:0}return S.fromData(n,Array.from(r.shape),"bool")}function ep(r){return B(r.dtype)}function np(r){let t=r.dtype,e=r.size,n=new Uint8Array(e);if(B(t))if(r.isCContiguous){let o=r.offset,a=r.data;for(let u=0;u<e;u++)n[u]=a[(o+u)*2+1]===0?1:0}else for(let o=0;o<e;o++){let a=r.iget(o);n[o]=a.im===0?1:0}else n.fill(1);return S.fromData(n,Array.from(r.shape),"bool")}function op(r){return!B(r.dtype)}function ap(r){L(r.dtype,"isneginf","This operation is not supported for complex values because it would be ambiguous.");let t=new Uint8Array(r.size),e=r.size;if(!E(r.dtype))if(r.isCContiguous){let n=r.data,o=r.offset;for(let a=0;a<e;a++){let u=n[o+a];t[a]=u===-1/0?1:0}}else for(let n=0;n<e;n++)t[n]=Number(r.iget(n))===-1/0?1:0;return S.fromData(t,Array.from(r.shape),"bool")}function sp(r){L(r.dtype,"isposinf","This operation is not supported for complex values because it would be ambiguous.");let t=new Uint8Array(r.size),e=r.size;if(!E(r.dtype))if(r.isCContiguous){let n=r.data,o=r.offset;for(let a=0;a<e;a++){let u=n[o+a];t[a]=u===1/0?1:0}}else for(let n=0;n<e;n++)t[n]=Number(r.iget(n))===1/0?1:0;return S.fromData(t,Array.from(r.shape),"bool")}function ip(r){return r.isFContiguous}function up(r,t=100){let e=r.dtype;if(B(e)){let n=r.size,a=t*(e==="complex64"?11920929e-14:2220446049250313e-31);if(r.isCContiguous){let u=r.data,i=r.offset,s=!0;for(let c=0;c<n;c++){let l=u[(i+c)*2+1];if(Math.abs(l)>a){s=!1;break}}if(s){let c=e==="complex64"?"float32":"float64",l=S.zeros(Array.from(r.shape),c),f=l.data;for(let m=0;m<n;m++)f[m]=u[(i+m)*2];return l}}else{let u=!0;for(let i=0;i<n;i++){let s=r.iget(i);if(Math.abs(s.im)>a){u=!1;break}}if(u){let i=e==="complex64"?"float32":"float64",s=S.zeros(Array.from(r.shape),i),c=s.data;for(let l=0;l<n;l++){let f=r.iget(l);c[l]=f.re}return s}}return r.copy()}return r.copy()}function cp(r){return typeof r=="number"||typeof r=="bigint"||typeof r=="boolean"||typeof r=="string"}function lp(r){return r==null?!1:typeof r[Symbol.iterator]=="function"}function fp(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 mp(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 qr(r){if(r.length===0)return[];if(r.length===1)return Array.from(r[0]);let t=Math.max(...r.map(n=>n.length)),e=new Array(t);for(let n=0;n<t;n++){let o=1;for(let a of r){let u=a.length-t+n,i=u<0?1:a[u];if(i!==1){if(o===1)o=i;else if(o!==i)return null}}e[n]=o}return e}function ID(r,t,e){let n=r.length,o=e.length,a=new Array(o).fill(0);for(let u=0;u<n;u++){let i=o-n+u,s=r[u],c=e[i];if(s===c)a[i]=t[u];else if(s===1)a[i]=0;else throw new Error("Invalid broadcast")}return a}function _r(r,t){let e=ID(r.shape,r.strides,t);return S.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function tt(r,t){return[r[t*2],r[t*2+1]]}function pp(r,t){if(B(r.dtype))return tt(r.data,t);let e=r.iget(t);return e instanceof U?[e.re,e.im]:[Number(e),0]}function xt(r,t,e){let n=qr([Array.from(r.shape),Array.from(t.shape)]);if(!n)throw new Error("Cannot broadcast arrays together");let o=_r(r,n),a=_r(t,n),u=n.reduce((s,c)=>s*c,1),i=new Uint8Array(u);for(let s=0;s<u;s++){let[c,l]=pp(o,s),[f,m]=pp(a,s);i[s]=e(c,l,f,m)?1:0}return S.fromData(i,n,"bool")}function yp(r,t){return typeof t=="number"?zD(r,t):B(r.dtype)||B(t.dtype)?xt(r,t,(e,n,o,a)=>e!==o?e>o:n>a):Ir(r,t,(e,n)=>e>n)}function dp(r,t){return typeof t=="number"?_D(r,t):B(r.dtype)||B(t.dtype)?xt(r,t,(e,n,o,a)=>e!==o?e>=o:n>=a):Ir(r,t,(e,n)=>e>=n)}function bp(r,t){return typeof t=="number"?vD(r,t):B(r.dtype)||B(t.dtype)?xt(r,t,(e,n,o,a)=>e!==o?e<o:n<a):Ir(r,t,(e,n)=>e<n)}function Ap(r,t){return typeof t=="number"?MD(r,t):B(r.dtype)||B(t.dtype)?xt(r,t,(e,n,o,a)=>e!==o?e<=o:n<=a):Ir(r,t,(e,n)=>e<=n)}function gp(r,t){return typeof t=="number"?FD(r,t):B(r.dtype)||B(t.dtype)?xt(r,t,(e,n,o,a)=>e===o&&n===a):Ir(r,t,(e,n)=>e===n)}function hp(r,t){return typeof t=="number"?BD(r,t):B(r.dtype)||B(t.dtype)?xt(r,t,(e,n,o,a)=>e!==o||n!==a):Ir(r,t,(e,n)=>e!==n)}function au(r,t,e=1e-5,n=1e-8){return typeof t=="number"?TD(r,t,e,n):Ir(r,t,(o,a)=>{let u=Math.abs(o-a),i=n+e*Math.abs(a);return u<=i})}function Np(r,t,e=1e-5,n=1e-8){let o=au(r,t,e,n),a=o.data;for(let u=0;u<o.size;u++)if(a[u]===0)return!1;return!0}function Dp(r,t){let e=[Array.from(r.shape),Array.from(t.shape)],n=qr(e);if(n===null)return!1;let o=_r(r,n),a=_r(t,n),u=n.length,i=n.reduce((l,f)=>l*f,1),s=E(o.dtype),c=E(a.dtype);for(let l=0;l<i;l++){let f=l,m=new Array(u);for(let d=u-1;d>=0;d--)m[d]=f%n[d],f=Math.floor(f/n[d]);let p=o.get(...m),y=a.get(...m);if(s||c){let d=typeof p=="bigint"?p:BigInt(Number(p)),b=typeof y=="bigint"?y:BigInt(Number(y));if(d!==b)return!1}else if(p!==y)return!1}return!0}function zD(r,t){let e=new Uint8Array(r.size),n=r.size,o=r.isCContiguous;if(B(r.dtype))if(o){let a=r.data,u=r.offset;for(let i=0;i<n;i++){let[s,c]=tt(a,u+i);e[i]=(s!==t?s>t:c>0)?1:0}}else for(let a=0;a<n;a++){let u=r.iget(a);e[a]=(u.re!==t?u.re>t:u.im>0)?1:0}else if(o){let a=r.data,u=r.offset;for(let i=0;i<n;i++)e[i]=a[u+i]>t?1:0}else for(let a=0;a<n;a++)e[a]=Number(r.iget(a))>t?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function _D(r,t){let e=new Uint8Array(r.size),n=r.size,o=r.isCContiguous;if(B(r.dtype))if(o){let a=r.data,u=r.offset;for(let i=0;i<n;i++){let[s,c]=tt(a,u+i);e[i]=(s!==t?s>=t:c>=0)?1:0}}else for(let a=0;a<n;a++){let u=r.iget(a);e[a]=(u.re!==t?u.re>=t:u.im>=0)?1:0}else if(o){let a=r.data,u=r.offset;for(let i=0;i<n;i++)e[i]=a[u+i]>=t?1:0}else for(let a=0;a<n;a++)e[a]=Number(r.iget(a))>=t?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function vD(r,t){let e=new Uint8Array(r.size),n=r.size,o=r.isCContiguous;if(B(r.dtype))if(o){let a=r.data,u=r.offset;for(let i=0;i<n;i++){let[s,c]=tt(a,u+i);e[i]=(s!==t?s<t:c<0)?1:0}}else for(let a=0;a<n;a++){let u=r.iget(a);e[a]=(u.re!==t?u.re<t:u.im<0)?1:0}else if(o){let a=r.data,u=r.offset;for(let i=0;i<n;i++)e[i]=a[u+i]<t?1:0}else for(let a=0;a<n;a++)e[a]=Number(r.iget(a))<t?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function MD(r,t){let e=new Uint8Array(r.size),n=r.size,o=r.isCContiguous;if(B(r.dtype))if(o){let a=r.data,u=r.offset;for(let i=0;i<n;i++){let[s,c]=tt(a,u+i);e[i]=(s!==t?s<=t:c<=0)?1:0}}else for(let a=0;a<n;a++){let u=r.iget(a);e[a]=(u.re!==t?u.re<=t:u.im<=0)?1:0}else if(o){let a=r.data,u=r.offset;for(let i=0;i<n;i++)e[i]=a[u+i]<=t?1:0}else for(let a=0;a<n;a++)e[a]=Number(r.iget(a))<=t?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function FD(r,t){let e=new Uint8Array(r.size),n=r.size,o=r.dtype,a=r.isCContiguous;if(B(o))if(a){let u=r.data,i=r.offset;for(let s=0;s<n;s++){let[c,l]=tt(u,i+s);e[s]=c===t&&l===0?1:0}}else for(let u=0;u<n;u++){let i=r.iget(u);e[u]=i.re===t&&i.im===0?1:0}else if(E(o)){let u=BigInt(Math.round(t));if(a){let i=r.data,s=r.offset;for(let c=0;c<n;c++)e[c]=i[s+c]===u?1:0}else for(let i=0;i<n;i++)e[i]=r.iget(i)===u?1:0}else if(a){let u=r.data,i=r.offset;for(let s=0;s<n;s++)e[s]=u[i+s]===t?1:0}else for(let u=0;u<n;u++)e[u]=Number(r.iget(u))===t?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function BD(r,t){let e=new Uint8Array(r.size),n=r.size,o=r.dtype,a=r.isCContiguous;if(B(o))if(a){let u=r.data,i=r.offset;for(let s=0;s<n;s++){let[c,l]=tt(u,i+s);e[s]=c!==t||l!==0?1:0}}else for(let u=0;u<n;u++){let i=r.iget(u);e[u]=i.re!==t||i.im!==0?1:0}else if(a){let u=r.data,i=r.offset;for(let s=0;s<n;s++)e[s]=u[i+s]!==t?1:0}else for(let u=0;u<n;u++)e[u]=Number(r.iget(u))!==t?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function TD(r,t,e,n){let o=new Uint8Array(r.size),a=r.size,u=n+e*Math.abs(t);if(r.isCContiguous){let i=r.data,s=r.offset;for(let c=0;c<a;c++){let l=Math.abs(Number(i[s+c])-t);o[c]=l<=u?1:0}}else for(let i=0;i<a;i++){let s=Math.abs(Number(r.iget(i))-t);o[i]=s<=u?1:0}return S.fromData(o,Array.from(r.shape),"bool")}function gn(r,t){let e=typeof t=="number"?t:z(t);return M(jm(z(r),e))}function hn(r,t){let e=typeof t=="number"?t:z(t);return M(Lm(z(r),e))}function Nn(r){return M(Gm(z(r)))}function Dn(r,t){let e=typeof t=="number"?t:z(t);return M(Ym(z(r),e))}function xn(r){return M(Wm(z(r)))}function Cn(r){return M(Zm(z(r)))}function Sn(r){return M(Jm(z(r)))}function wn(r){return M(Xm(z(r)))}function su(r){return M(ap(z(r)))}function iu(r){return M(sp(z(r)))}function uu(r){return M(tp(z(r)))}function sa(r){return ep(z(r))}function cu(r){return M(np(z(r)))}function ia(r){return op(z(r))}function lu(r,t){return M(up(z(r),t))}function ua(r){return ip(z(r))}function ca(r){return cp(r)}function la(r){return lp(r)}function fa(r,t){return fp(r,t)}function ma(r,t){return mp(r,t)}function In(r,t){let e=typeof t=="number"?t:z(t);return M(Km(z(r),e))}function zn(r){return M(Qm(z(r)))}function _n(r,t){let e=typeof t=="number"?t:z(t);return M(Hm(z(r),e))}function vn(r){return M(rp(z(r)))}function Mn(r,t){return M(yp(z(r),typeof t=="number"?t:z(t)))}function Fn(r,t){return M(dp(z(r),typeof t=="number"?t:z(t)))}function Bn(r,t){return M(bp(z(r),typeof t=="number"?t:z(t)))}function Tn(r,t){return M(Ap(z(r),typeof t=="number"?t:z(t)))}function En(r,t){return M(gp(z(r),typeof t=="number"?t:z(t)))}function On(r,t){return M(hp(z(r),typeof t=="number"?t:z(t)))}function Un(r,t,e=1e-5,n=1e-8){return M(au(z(r),typeof t=="number"?t:z(t),e,n))}function Ct(r,t,e=1e-5,n=1e-8){return Np(z(r),typeof t=="number"?t:z(t),e,n)}function gr(r,t,e){if(e){let n=r[t*2],o=r[t*2+1];return n!==0||o!==0}return!!r[t]}function et(r,t,e,n){let o=isNaN(r)||isNaN(t),a=isNaN(e)||isNaN(n);return o&&a?0:o?1:a||r<e?-1:r>e?1:t<n?-1:t>n?1:0}function Cp(r,t=-1){let e=r.shape,n=e.length,o=r.dtype,a=r.data,u=r.offset,i=r.strides;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 c=r.copy(),l=c.data,f=e[s],m=Array.from(e).filter((y,d)=>d!==s),p=m.length===0?1:m.reduce((y,d)=>y*d,1);if(B(o)){let y=a,d=l;for(let b=0;b<p;b++){let A=[];for(let g=0;g<f;g++){let h=Y(b,s,g,e),N=Z(h,i,u);A.push({re:y[N*2],im:y[N*2+1],idx:g})}A.sort((g,h)=>et(g.re,g.im,h.re,h.im));for(let g=0;g<f;g++){let h=Y(b,s,g,e),N=xr(h,e);d[N*2]=A[g].re,d[N*2+1]=A[g].im}}}else if(E(o)){let y=a,d=l;for(let b=0;b<p;b++){let A=[];for(let g=0;g<f;g++){let h=Y(b,s,g,e),N=Z(h,i,u);A.push({value:y[N],idx:g})}A.sort((g,h)=>g.value<h.value?-1:g.value>h.value?1:0);for(let g=0;g<f;g++){let h=Y(b,s,g,e),N=xr(h,e);d[N]=A[g].value}}}else for(let y=0;y<p;y++){let d=[];for(let b=0;b<f;b++){let A=Y(y,s,b,e),g=Z(A,i,u);d.push(Number(a[g]))}d.sort((b,A)=>isNaN(b)&&isNaN(A)?0:isNaN(b)?1:isNaN(A)?-1:b-A);for(let b=0;b<f;b++){let A=Y(y,s,b,e),g=xr(A,e);l[g]=d[b]}}return c}function Sp(r,t=-1){let e=r.shape,n=e.length,o=r.dtype,a=r.data,u=r.offset,i=r.strides;if(n===0)return S.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 c=S.zeros(Array.from(e),"int32"),l=c.data,f=e[s],m=Array.from(e).filter((y,d)=>d!==s),p=m.length===0?1:m.reduce((y,d)=>y*d,1);if(B(o)){let y=a;for(let d=0;d<p;d++){let b=[];for(let A=0;A<f;A++){let g=Y(d,s,A,e),h=Z(g,i,u);b.push({re:y[h*2],im:y[h*2+1],idx:A})}b.sort((A,g)=>et(A.re,A.im,g.re,g.im));for(let A=0;A<f;A++){let g=Y(d,s,A,e),h=xr(g,e);l[h]=b[A].idx}}}else if(E(o)){let y=a;for(let d=0;d<p;d++){let b=[];for(let A=0;A<f;A++){let g=Y(d,s,A,e),h=Z(g,i,u);b.push({value:y[h],idx:A})}b.sort((A,g)=>A.value<g.value?-1:A.value>g.value?1:0);for(let A=0;A<f;A++){let g=Y(d,s,A,e),h=xr(g,e);l[h]=b[A].idx}}}else for(let y=0;y<p;y++){let d=[];for(let b=0;b<f;b++){let A=Y(y,s,b,e),g=Z(A,i,u);d.push({value:Number(a[g]),idx:b})}d.sort((b,A)=>isNaN(b.value)&&isNaN(A.value)?0:isNaN(b.value)?1:isNaN(A.value)?-1:b.value-A.value);for(let b=0;b<f;b++){let A=Y(y,s,b,e),g=xr(A,e);l[g]=d[b].idx}}return c}function wp(r){if(r.length===0)return S.zeros([0],"int32");let e=r[0].size;for(let l of r){if(l.ndim!==1)throw new Error("keys must be 1D arrays");if(l.size!==e)throw new Error("all keys must have the same length")}let n=[];for(let l=0;l<e;l++)n.push(l);let o=r.map(l=>B(l.dtype)),a=r.map(l=>l.isCContiguous),u=r.map(l=>l.data),i=r.map(l=>l.offset);n.sort((l,f)=>{for(let m=r.length-1;m>=0;m--)if(o[m]){let p,y,d,b;if(a[m]){let A=u[m],g=i[m];p=A[(g+l)*2],y=A[(g+l)*2+1],d=A[(g+f)*2],b=A[(g+f)*2+1]}else{let A=r[m].iget(l),g=r[m].iget(f);p=A.re,y=A.im,d=g.re,b=g.im}if(p<d)return-1;if(p>d)return 1;if(y<b)return-1;if(y>b)return 1}else{let p,y;if(a[m]){let d=u[m],b=i[m];p=Number(d[b+l]),y=Number(d[b+f])}else p=Number(r[m].iget(l)),y=Number(r[m].iget(f));if(isNaN(p)&&isNaN(y))continue;if(isNaN(p))return 1;if(isNaN(y)||p<y)return-1;if(p>y)return 1}return 0});let s=S.zeros([e],"int32"),c=s.data;for(let l=0;l<e;l++)c[l]=n[l];return s}function ED(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e],u=r[o],i=r[n],s;a<=u&&u<=i||i<=u&&u<=a?s=o:u<=a&&a<=i||i<=a&&a<=u?s=e:s=n;let c=r[s];[r[s],r[n]]=[r[n],r[s]];let l=e;for(let f=e;f<n;f++){let m=r[f],p=isNaN(m),y=isNaN(c);!p&&(y||m<=c)&&([r[l],r[f]]=[r[f],r[l]],l++)}if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function OD(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e],u=r[o],i=r[n],s;a<=u&&u<=i||i<=u&&u<=a?s=o:u<=a&&a<=i||i<=a&&a<=u?s=e:s=n;let c=r[s];[r[s],r[n]]=[r[n],r[s]];let l=e;for(let f=e;f<n;f++)r[f]<=c&&([r[l],r[f]]=[r[f],r[l]],l++);if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function UD(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e].value,u=r[o].value,i=r[n].value,s;a<=u&&u<=i||i<=u&&u<=a?s=o:u<=a&&a<=i||i<=a&&a<=u?s=e:s=n;let c=r[s].value;[r[s],r[n]]=[r[n],r[s]];let l=e;for(let f=e;f<n;f++){let m=r[f].value,p=isNaN(m),y=isNaN(c);!p&&(y||m<=c)&&([r[l],r[f]]=[r[f],r[l]],l++)}if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function $D(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e].value,u=r[o].value,i=r[n].value,s;a<=u&&u<=i||i<=u&&u<=a?s=o:u<=a&&a<=i||i<=a&&a<=u?s=e:s=n;let c=r[s].value;[r[s],r[n]]=[r[n],r[s]];let l=e;for(let f=e;f<n;f++)r[f].value<=c&&([r[l],r[f]]=[r[f],r[l]],l++);if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function Ip(r,t,e=-1){let n=r.shape,o=n.length,a=r.dtype;if(o===0)return r.copy();let u=e;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=n[u],s=t;if(s<0&&(s=i+s),s<0||s>=i)throw new Error(`kth(=${t}) out of bounds (${i})`);let c=r.copy(),l=c.data,f=Array.from(n).filter((p,y)=>y!==u),m=f.length===0?1:f.reduce((p,y)=>p*y,1);if(E(a)){let p=l;for(let y=0;y<m;y++){let d=[];for(let b=0;b<i;b++){let A=Y(y,u,b,n),g=xr(A,n);d.push(p[g])}OD(d,s);for(let b=0;b<i;b++){let A=Y(y,u,b,n),g=xr(A,n);p[g]=d[b]}}}else for(let p=0;p<m;p++){let y=[];for(let d=0;d<i;d++){let b=Y(p,u,d,n),A=xr(b,n);y.push(Number(l[A]))}ED(y,s);for(let d=0;d<i;d++){let b=Y(p,u,d,n),A=xr(b,n);l[A]=y[d]}}return c}function zp(r,t,e=-1){let n=r.shape,o=n.length,a=r.dtype,u=r.data,i=r.offset,s=r.strides;if(o===0)return S.zeros([0],"int32");let c=e;if(c<0&&(c=o+c),c<0||c>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let l=n[c],f=t;if(f<0&&(f=l+f),f<0||f>=l)throw new Error(`kth(=${t}) out of bounds (${l})`);let m=S.zeros(Array.from(n),"int32"),p=m.data,y=Array.from(n).filter((b,A)=>A!==c),d=y.length===0?1:y.reduce((b,A)=>b*A,1);if(E(a)){let b=u;for(let A=0;A<d;A++){let g=[];for(let h=0;h<l;h++){let N=Y(A,c,h,n),D=Z(N,s,i);g.push({value:b[D],idx:h})}$D(g,f);for(let h=0;h<l;h++){let N=Y(A,c,h,n),D=xr(N,n);p[D]=g[h].idx}}}else for(let b=0;b<d;b++){let A=[];for(let g=0;g<l;g++){let h=Y(b,c,g,n),N=Z(h,s,i);A.push({value:Number(u[N]),idx:g})}UD(A,f);for(let g=0;g<l;g++){let h=Y(b,c,g,n),N=xr(h,n);p[N]=A[g].idx}}return m}function _p(r){let t=r.dtype,e=r.size,n=r.isCContiguous,o=r.data,a=r.offset;if(B(t)){let u=[];if(n){let c=o;for(let l=0;l<e;l++)u.push({re:c[(a+l)*2],im:c[(a+l)*2+1]})}else for(let c=0;c<e;c++){let l=r.iget(c);u.push({re:l.re,im:l.im})}u.sort((c,l)=>et(c.re,c.im,l.re,l.im));let i=S.zeros([e],"complex128"),s=i.data;for(let c=0;c<e;c++)s[c*2]=u[c].re,s[c*2+1]=u[c].im;return i}else{let u=[];if(n)for(let c=0;c<e;c++)u.push(Number(o[a+c]));else for(let c=0;c<e;c++)u.push(Number(r.iget(c)));u.sort((c,l)=>isNaN(c)&&isNaN(l)?0:isNaN(c)?1:isNaN(l)?-1:c-l);let i=S.zeros([e],"complex128"),s=i.data;for(let c=0;c<e;c++)s[c*2]=u[c],s[c*2+1]=0;return i}}function fu(r){let t=r.shape,e=t.length,n=r.size,o=B(r.dtype),a=r.isCContiguous,u=r.data,i=r.offset,s=[];for(let p=0;p<e;p++)s.push([]);let c=[],l=1;for(let p=e-1;p>=0;p--)c.unshift(l),l*=t[p];if(a){for(let p=0;p<n;p++)if(gr(u,i+p,o)){let y=p;for(let d=0;d<e;d++){let b=Math.floor(y/c[d]);y=y%c[d],s[d].push(b)}}}else for(let p=0;p<n;p++){let y=r.iget(p);if(o?y.re!==0||y.im!==0:!!y){let b=p;for(let A=0;A<e;A++){let g=Math.floor(b/c[A]);b=b%c[A],s[A].push(g)}}}let f=s[0]?.length??0,m=[];for(let p=0;p<e;p++){let y=S.zeros([f],"int32"),d=y.data;for(let b=0;b<f;b++)d[b]=s[p][b];m.push(y)}return m}function vp(r){let t=r.shape,e=t.length,n=r.size,o=B(r.dtype),a=r.isCContiguous,u=r.data,i=r.offset,s=[],c=[],l=1;for(let d=e-1;d>=0;d--)c.unshift(l),l*=t[d];if(a){for(let d=0;d<n;d++)if(gr(u,i+d,o)){let b=[],A=d;for(let g=0;g<e;g++){let h=Math.floor(A/c[g]);A=A%c[g],b.push(h)}s.push(b)}}else for(let d=0;d<n;d++){let b=r.iget(d);if(o?b.re!==0||b.im!==0:!!b){let g=[],h=d;for(let N=0;N<e;N++){let D=Math.floor(h/c[N]);h=h%c[N],g.push(D)}s.push(g)}}let f=s.length,m=e===0?[f,1]:[f,e],p=S.zeros(m,"int32"),y=p.data;for(let d=0;d<f;d++){let b=s[d];for(let A=0;A<(e===0?1:e);A++)y[d*(e===0?1:e)+A]=b[A]??0}return p}function Mp(r){let t=r.size,e=B(r.dtype),n=r.isCContiguous,o=r.data,a=r.offset,u=[];if(n)for(let c=0;c<t;c++)gr(o,a+c,e)&&u.push(c);else for(let c=0;c<t;c++){let l=r.iget(c);(e?l.re!==0||l.im!==0:l)&&u.push(c)}let i=S.zeros([u.length],"int32"),s=i.data;for(let c=0;c<u.length;c++)s[c]=u[c];return i}function Fp(r,t,e){if(t===void 0&&e===void 0)return fu(r);if(t===void 0||e===void 0)throw new Error("either both or neither of x and y should be given");let n=r.shape,o=t.shape,a=e.shape,u=Math.max(n.length,o.length,a.length),i=R=>{let W=Array(u).fill(1);for(let J=0;J<R.length;J++)W[u-R.length+J]=R[J];return W},s=i(n),c=i(o),l=i(a),f=[];for(let R=0;R<u;R++){let W=[s[R],c[R],l[R]],J=Math.max(...W);for(let X of W)if(X!==1&&X!==J)throw new Error("operands could not be broadcast together");f.push(J)}let m=t.dtype,p=S.zeros(f,m),y=p.data,d=(R,W)=>{let J=[],X=1;for(let rr=R.length-1;rr>=0;rr--)J.unshift(X),X*=R[rr];for(;J.length<W.length;)J.unshift(0);for(let rr=0;rr<W.length;rr++)W[rr]===1&&f[rr]!==1&&(J[rr]=0);return J},b=d(n,s),A=d(o,c),g=d(a,l),h=[],N=1;for(let R=f.length-1;R>=0;R--)h.unshift(N),N*=f[R];let D=f.reduce((R,W)=>R*W,1),x=B(r.dtype),C=B(m),w=r.isCContiguous,_=r.data,I=r.offset,v=t.isCContiguous,T=t.data,O=t.offset,$=e.isCContiguous,k=e.data,V=e.offset;if(n.length===f.length&&o.length===f.length&&a.length===f.length&&n.every((R,W)=>R===f[W])&&o.every((R,W)=>R===f[W])&&a.every((R,W)=>R===f[W])&&w&&v&&$)if(C){let R=y,W=T,J=k;for(let X=0;X<D;X++)gr(_,I+X,x)?(R[X*2]=W[(O+X)*2],R[X*2+1]=W[(O+X)*2+1]):(R[X*2]=J[(V+X)*2],R[X*2+1]=J[(V+X)*2+1])}else if(E(m)){let R=y,W=T,J=k;for(let X=0;X<D;X++)gr(_,I+X,x)?R[X]=W[O+X]:R[X]=J[V+X]}else for(let R=0;R<D;R++)gr(_,I+R,x)?y[R]=T[O+R]:y[R]=k[V+R];else for(let R=0;R<D;R++){let W=R,J=0,X=0,rr=0;for(let nr=0;nr<u;nr++){let dr=Math.floor(W/h[nr]);W=W%h[nr],J+=dr*b[nr],X+=dr*A[nr],rr+=dr*g[nr]}let yr;if(w)yr=gr(_,I+J,x);else{let nr=r.iget(J);yr=x?nr.re!==0||nr.im!==0:!!nr}if(yr)if(C)if(v){let nr=T;y[R*2]=nr[(O+X)*2],y[R*2+1]=nr[(O+X)*2+1]}else{let nr=t.iget(X);y[R*2]=nr.re,y[R*2+1]=nr.im}else v?y[R]=T[O+X]:y[R]=t.iget(X);else if(C)if($){let nr=k;y[R*2]=nr[(V+rr)*2],y[R*2+1]=nr[(V+rr)*2+1]}else{let nr=e.iget(rr);y[R*2]=nr.re,y[R*2+1]=nr.im}else $?y[R]=k[V+rr]:y[R]=e.iget(rr)}return p}function Bp(r,t,e="left"){if(r.ndim!==1)throw new Error("storage must be 1D");let n=r.size,o=t.size,a=B(r.dtype),u=r.isCContiguous,i=r.data,s=r.offset,c=t.isCContiguous,l=t.data,f=t.offset,m=S.zeros([o],"int32"),p=m.data;if(a)if(u&&c){let y=i,d=l;for(let b=0;b<o;b++){let A=d[(f+b)*2],g=d[(f+b)*2+1],h=0,N=n;if(e==="left")for(;h<N;){let D=Math.floor((h+N)/2),x=y[(s+D)*2],C=y[(s+D)*2+1];et(x,C,A,g)<0?h=D+1:N=D}else for(;h<N;){let D=Math.floor((h+N)/2),x=y[(s+D)*2],C=y[(s+D)*2+1];et(x,C,A,g)<=0?h=D+1:N=D}p[b]=h}}else for(let y=0;y<o;y++){let d=t.iget(y),b=d.re,A=d.im,g=0,h=n;if(e==="left")for(;g<h;){let N=Math.floor((g+h)/2),D=r.iget(N);et(D.re,D.im,b,A)<0?g=N+1:h=N}else for(;g<h;){let N=Math.floor((g+h)/2),D=r.iget(N);et(D.re,D.im,b,A)<=0?g=N+1:h=N}p[y]=g}else if(u&&c)for(let y=0;y<o;y++){let d=Number(l[f+y]),b=0,A=n;if(e==="left")for(;b<A;){let g=Math.floor((b+A)/2);Number(i[s+g])<d?b=g+1:A=g}else for(;b<A;){let g=Math.floor((b+A)/2);Number(i[s+g])<=d?b=g+1:A=g}p[y]=b}else for(let y=0;y<o;y++){let d=Number(t.iget(y)),b=0,A=n;if(e==="left")for(;b<A;){let g=Math.floor((b+A)/2);Number(r.iget(g))<d?b=g+1:A=g}else for(;b<A;){let g=Math.floor((b+A)/2);Number(r.iget(g))<=d?b=g+1:A=g}p[y]=b}return m}function Tp(r,t){let e=t.dtype,n=B(r.dtype),o=B(e),a=Math.min(r.size,t.size),u=r.isCContiguous,i=r.data,s=r.offset,c=t.isCContiguous,l=t.data,f=t.offset,m=0;if(u)for(let b=0;b<a;b++)gr(i,s+b,n)&&m++;else for(let b=0;b<a;b++){let A=r.iget(b);(n?A.re!==0||A.im!==0:A)&&m++}let p=S.zeros([m],e),y=p.data,d=0;if(u&&c)if(E(e)){let b=y,A=l;for(let g=0;g<a;g++)gr(i,s+g,n)&&(b[d++]=A[f+g])}else if(o){let b=y,A=l;for(let g=0;g<a;g++)gr(i,s+g,n)&&(b[d*2]=A[(f+g)*2],b[d*2+1]=A[(f+g)*2+1],d++)}else for(let b=0;b<a;b++)gr(i,s+b,n)&&(y[d++]=l[f+b]);else{let b=u?A=>gr(i,s+A,n):A=>{let g=r.iget(A);if(n){let h=g;return h.re!==0||h.im!==0}return!!g};if(E(e)){let A=y;for(let g=0;g<a;g++)b(g)&&(A[d++]=t.iget(g))}else if(o){let A=y;for(let g=0;g<a;g++)if(b(g)){let h=t.iget(g);A[d*2]=h.re,A[d*2+1]=h.im,d++}}else for(let A=0;A<a;A++)b(A)&&(y[d++]=t.iget(A))}return p}function mu(r,t){let e=r.shape,n=e.length,o=r.data,a=r.size,u=r.offset,i=r.strides,s=B(r.dtype),c=r.isCContiguous;if(t===void 0){let b=0;if(c)for(let A=0;A<a;A++)gr(o,u+A,s)&&b++;else for(let A=0;A<a;A++){let g=r.iget(A);if(s){let h=g;(h.re!==0||h.im!==0)&&b++}else g!==0&&g!==BigInt(0)&&b++}return b}let l=t;if(l<0&&(l=n+l),l<0||l>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let f=Array.from(e).filter((b,A)=>A!==l);if(f.length===0)return mu(r);let m=S.zeros(f,"int32"),p=m.data,y=e[l],d=f.reduce((b,A)=>b*A,1);for(let b=0;b<d;b++){let A=0;for(let g=0;g<y;g++){let h=Y(b,l,g,e),N=Z(h,i,u);gr(o,N,s)&&A++}p[b]=A}return m}function $n(r,t=-1){return M(Cp(z(r),t))}function kn(r,t=-1){return M(Sp(z(r),t))}function pu(r){return M(wp(r.map(t=>z(t))))}function Rn(r,t,e=-1){return M(Ip(z(r),t,e))}function qn(r,t,e=-1){return M(zp(z(r),t,e))}function yu(r){return M(_p(z(r)))}function Vn(r){return $r(fu(z(r)))}function Pn(r){return M(vp(z(r)))}function du(r){return M(Mp(z(r)))}function pa(r,t,e){let n=Fp(z(r),t?z(t):void 0,e?z(e):void 0);return Array.isArray(n)?$r(n):M(n)}function St(r,t,e="left"){return M(Bp(z(r),z(t),e))}function bu(r,t){return M(Tp(z(r),z(t)))}function ya(r,t){let e=mu(z(r),t);return typeof e=="number"?e:M(e)}function vr(r,t){if(!Ur(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 jn(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function Up(r,t){return vr(r.dtype,"bitwise_and"),typeof t=="number"?qD(r,t):(vr(t.dtype,"bitwise_and"),jn(r,t)?RD(r,t):sr(r,t,(e,n)=>e&n,"bitwise_and"))}function RD(r,t){let e=or(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,i=r.offset,s=t.offset,c=n.data;if(E(e)){let l=c;if(!E(r.dtype)||!E(t.dtype))for(let m=0;m<o;m++){let p=typeof a[i+m]=="bigint"?a[i+m]:BigInt(Math.round(Number(a[i+m]))),y=typeof u[s+m]=="bigint"?u[s+m]:BigInt(Math.round(Number(u[s+m])));l[m]=p&y}else{let m=a,p=u;for(let y=0;y<o;y++)l[y]=m[i+y]&p[s+y]}}else for(let l=0;l<o;l++)c[l]=a[i+l]&u[s+l];return n}function qD(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.offset,u=r.size,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(E(e)){let l=c,f=BigInt(Math.round(t));if(i){let m=o;if(a===0)for(let p=0;p<u;p++)l[p]=m[p]&f;else for(let p=0;p<u;p++)l[p]=m[a+p]&f}else for(let m=0;m<u;m++)l[m]=r.iget(m)&f}else if(i)if(a===0)for(let l=0;l<u;l++)c[l]=o[l]&t;else for(let l=0;l<u;l++)c[l]=o[a+l]&t;else for(let l=0;l<u;l++)c[l]=Number(r.iget(l))&t;return s}function $p(r,t){return vr(r.dtype,"bitwise_or"),typeof t=="number"?PD(r,t):(vr(t.dtype,"bitwise_or"),jn(r,t)?VD(r,t):sr(r,t,(e,n)=>e|n,"bitwise_or"))}function VD(r,t){let e=or(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,i=r.offset,s=t.offset,c=n.data;if(E(e)){let l=c;if(!E(r.dtype)||!E(t.dtype))for(let m=0;m<o;m++){let p=typeof a[i+m]=="bigint"?a[i+m]:BigInt(Math.round(Number(a[i+m]))),y=typeof u[s+m]=="bigint"?u[s+m]:BigInt(Math.round(Number(u[s+m])));l[m]=p|y}else{let m=a,p=u;for(let y=0;y<o;y++)l[y]=m[i+y]|p[s+y]}}else for(let l=0;l<o;l++)c[l]=a[i+l]|u[s+l];return n}function PD(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.offset,u=r.size,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(E(e)){let l=c,f=BigInt(Math.round(t));if(i){let m=o;if(a===0)for(let p=0;p<u;p++)l[p]=m[p]|f;else for(let p=0;p<u;p++)l[p]=m[a+p]|f}else for(let m=0;m<u;m++)l[m]=r.iget(m)|f}else if(i)if(a===0)for(let l=0;l<u;l++)c[l]=o[l]|t;else for(let l=0;l<u;l++)c[l]=o[a+l]|t;else for(let l=0;l<u;l++)c[l]=Number(r.iget(l))|t;return s}function kp(r,t){return vr(r.dtype,"bitwise_xor"),typeof t=="number"?LD(r,t):(vr(t.dtype,"bitwise_xor"),jn(r,t)?jD(r,t):sr(r,t,(e,n)=>e^n,"bitwise_xor"))}function jD(r,t){let e=or(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,i=r.offset,s=t.offset,c=n.data;if(E(e)){let l=c;if(!E(r.dtype)||!E(t.dtype))for(let m=0;m<o;m++){let p=typeof a[i+m]=="bigint"?a[i+m]:BigInt(Math.round(Number(a[i+m]))),y=typeof u[s+m]=="bigint"?u[s+m]:BigInt(Math.round(Number(u[s+m])));l[m]=p^y}else{let m=a,p=u;for(let y=0;y<o;y++)l[y]=m[i+y]^p[s+y]}}else for(let l=0;l<o;l++)c[l]=a[i+l]^u[s+l];return n}function LD(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.offset,u=r.size,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(E(e)){let l=c,f=BigInt(Math.round(t));if(i){let m=o;if(a===0)for(let p=0;p<u;p++)l[p]=m[p]^f;else for(let p=0;p<u;p++)l[p]=m[a+p]^f}else for(let m=0;m<u;m++)l[m]=r.iget(m)^f}else if(i)if(a===0)for(let l=0;l<u;l++)c[l]=o[l]^t;else for(let l=0;l<u;l++)c[l]=o[a+l]^t;else for(let l=0;l<u;l++)c[l]=Number(r.iget(l))^t;return s}function hu(r){vr(r.dtype,"bitwise_not");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.offset,a=r.size,u=r.isCContiguous,i=S.zeros(e,t),s=i.data;if(E(t)){let c=s;if(u){let l=n;if(o===0)for(let f=0;f<a;f++)c[f]=~l[f];else for(let f=0;f<a;f++)c[f]=~l[o+f]}else for(let l=0;l<a;l++)c[l]=~r.iget(l)}else if(u)if(o===0)for(let c=0;c<a;c++)s[c]=~n[c];else for(let c=0;c<a;c++)s[c]=~n[o+c];else for(let c=0;c<a;c++)s[c]=~Number(r.iget(c));return i}function Rp(r){return hu(r)}function qp(r,t){if(vr(r.dtype,"left_shift"),typeof t=="number")return Ep(r,t);if(vr(t.dtype,"left_shift"),t.size===1||t.ndim===1&&t.shape[0]===1){let e=Number(t.iget(0));return Ep(r,e)}return jn(r,t)?GD(r,t):sr(r,t,(e,n)=>e<<n,"left_shift")}function GD(r,t){let e=or(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,i=r.offset,s=t.offset,c=n.data;if(E(e)){let l=c;for(let f=0;f<o;f++){let m=typeof a[i+f]=="bigint"?a[i+f]:BigInt(Math.round(Number(a[i+f]))),p=typeof u[s+f]=="bigint"?u[s+f]:BigInt(Math.round(Number(u[s+f])));l[f]=m<<p}}else for(let l=0;l<o;l++)c[l]=a[i+l]<<u[s+l];return n}function Ep(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.offset,u=r.size,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(E(e)){let l=c,f=BigInt(Math.round(t));if(i){let m=o;if(a===0)for(let p=0;p<u;p++)l[p]=m[p]<<f;else for(let p=0;p<u;p++)l[p]=m[a+p]<<f}else for(let m=0;m<u;m++)l[m]=r.iget(m)<<f}else if(i)if(a===0)for(let l=0;l<u;l++)c[l]=o[l]<<t;else for(let l=0;l<u;l++)c[l]=o[a+l]<<t;else for(let l=0;l<u;l++)c[l]=Number(r.iget(l))<<t;return s}function Vp(r,t){if(vr(r.dtype,"right_shift"),typeof t=="number")return Op(r,t);if(vr(t.dtype,"right_shift"),t.size===1||t.ndim===1&&t.shape[0]===1){let e=Number(t.iget(0));return Op(r,e)}return jn(r,t)?YD(r,t):sr(r,t,(e,n)=>e>>n,"right_shift")}function YD(r,t){let e=or(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,i=r.offset,s=t.offset,c=n.data;if(E(e)){let l=c;for(let f=0;f<o;f++){let m=typeof a[i+f]=="bigint"?a[i+f]:BigInt(Math.round(Number(a[i+f]))),p=typeof u[s+f]=="bigint"?u[s+f]:BigInt(Math.round(Number(u[s+f])));l[f]=m>>p}}else for(let l=0;l<o;l++)c[l]=a[i+l]>>u[s+l];return n}function Op(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.offset,u=r.size,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(E(e)){let l=c,f=BigInt(Math.round(t));if(i){let m=o;if(a===0)for(let p=0;p<u;p++)l[p]=m[p]>>f;else for(let p=0;p<u;p++)l[p]=m[a+p]>>f}else for(let m=0;m<u;m++)l[m]=r.iget(m)>>f}else if(i)if(a===0)for(let l=0;l<u;l++)c[l]=o[l]>>t;else for(let l=0;l<u;l++)c[l]=o[a+l]>>t;else for(let l=0;l<u;l++)c[l]=Number(r.iget(l))>>t;return s}function Pp(r,t=-1,e="big"){let n=Array.from(r.shape),o=n.length;if(t<0&&(t=o+t),t<0||t>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let a=n[t],u=Math.ceil(a/8),i=[...n];i[t]=u;let s=S.zeros(i,"uint8"),c=s.data,l=r.offset,f=r.isCContiguous;if(o===1){for(let g=0;g<u;g++){let h=0;for(let N=0;N<8;N++){let D=g*8+N;if(D<a){let x=f?Number(r.data[l+D])!==0?1:0:Number(r.iget(D))!==0?1:0;e==="big"?h|=x<<7-N:h|=x<<N}}c[g]=h}return s}let m=n.slice(0,t),p=n.slice(t+1),y=m.reduce((g,h)=>g*h,1),d=p.reduce((g,h)=>g*h,1),b=da(n),A=da(i);for(let g=0;g<y;g++)for(let h=0;h<d;h++)for(let N=0;N<u;N++){let D=0;for(let _=0;_<8;_++){let I=N*8+_;if(I<a){let v=0,T=g;for(let k=0;k<t;k++){let V=k<t-1?m.slice(k+1).reduce((R,W)=>R*W,1):1,j=Math.floor(T/V);T%=V,v+=j*b[k]}v+=I*b[t];let O=h;for(let k=t+1;k<o;k++){let V=k<o-1?p.slice(k-t).reduce((R,W)=>R*W,1):1,j=Math.floor(O/V);O%=V,v+=j*b[k]}let $=f?Number(r.data[l+v])!==0?1:0:Number(r.iget(v))!==0?1:0;e==="big"?D|=$<<7-_:D|=$<<_}}let x=0,C=g;for(let _=0;_<t;_++){let I=_<t-1?m.slice(_+1).reduce((T,O)=>T*O,1):1,v=Math.floor(C/I);C%=I,x+=v*A[_]}x+=N*A[t];let w=h;for(let _=t+1;_<o;_++){let I=_<o-1?p.slice(_-t).reduce((T,O)=>T*O,1):1,v=Math.floor(w/I);w%=I,x+=v*A[_]}c[x]=D}return s}function jp(r,t=-1,e=-1,n="big"){if(r.dtype!=="uint8")throw new TypeError("Expected an input array of unsigned byte data type");let o=Array.from(r.shape),a=o.length;if(t<0&&(t=a+t),t<0||t>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let u=o[t],i=u*8;e>=0&&(i=e);let s=[...o];s[t]=i;let c=S.zeros(s,"uint8"),l=c.data,f=r.offset,m=r.isCContiguous;if(a===1){for(let h=0;h<u;h++){let N=Number(m?r.data[f+h]:r.iget(h));for(let D=0;D<8;D++){let x=h*8+D;if(x>=i)break;n==="big"?l[x]=N>>7-D&1:l[x]=N>>D&1}}return c}let p=o.slice(0,t),y=o.slice(t+1),d=p.reduce((h,N)=>h*N,1),b=y.reduce((h,N)=>h*N,1),A=da(o),g=da(s);for(let h=0;h<d;h++)for(let N=0;N<b;N++)for(let D=0;D<u;D++){let x=0,C=h;for(let I=0;I<t;I++){let v=I<t-1?p.slice(I+1).reduce((O,$)=>O*$,1):1,T=Math.floor(C/v);C%=v,x+=T*A[I]}x+=D*A[t];let w=N;for(let I=t+1;I<a;I++){let v=I<a-1?y.slice(I-t).reduce((O,$)=>O*$,1):1,T=Math.floor(w/v);w%=v,x+=T*A[I]}let _=Number(m?r.data[f+x]:r.iget(x));for(let I=0;I<8;I++){let v=D*8+I;if(v>=i)break;let T=0;C=h;for(let O=0;O<t;O++){let $=O<t-1?p.slice(O+1).reduce((V,j)=>V*j,1):1,k=Math.floor(C/$);C%=$,T+=k*g[O]}T+=v*g[t],w=N;for(let O=t+1;O<a;O++){let $=O<a-1?y.slice(O-t).reduce((V,j)=>V*j,1):1,k=Math.floor(w/$);w%=$,T+=k*g[O]}n==="big"?l[T]=_>>7-I&1:l[T]=_>>I&1}}return c}function da(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 Lp(r){let t=r.dtype;vr(t,"bitwise_count");let e=Array.from(r.shape),n=r.data,o=r.offset,a=r.size,u=r.isCContiguous,i=S.zeros(e,"uint8"),s=i.data;if(E(t))if(u){let c=n;if(o===0)for(let l=0;l<a;l++)s[l]=gu(c[l]);else for(let l=0;l<a;l++)s[l]=gu(c[o+l])}else for(let c=0;c<a;c++)s[c]=gu(r.iget(c));else if(u)if(o===0)for(let c=0;c<a;c++)s[c]=Au(n[c]);else for(let c=0;c<a;c++)s[c]=Au(n[o+c]);else for(let c=0;c<a;c++)s[c]=Au(Number(r.iget(c)));return i}function Au(r){r=r>>>0;let t=0;for(;r!==0;)r=r&r-1,t++;return t}function gu(r){r<0n&&(r=BigInt.asUintN(64,r));let t=0;for(;r!==0n;)r=r&r-1n,t++;return t}function Ln(r,t){let e=typeof t=="number"?t:z(t);return M(Up(z(r),e))}function Gn(r,t){let e=typeof t=="number"?t:z(t);return M($p(z(r),e))}function Yn(r,t){let e=typeof t=="number"?t:z(t);return M(kp(z(r),e))}function Wn(r){return M(hu(z(r)))}function Zn(r){return M(Rp(z(r)))}function Jn(r,t){let e=typeof t=="number"?t:z(t);return M(qp(z(r),e))}function Xn(r,t){let e=typeof t=="number"?t:z(t);return M(Vp(z(r),e))}function Nu(r,t,e){return M(Pp(z(r),t,e))}function Du(r,t,e,n){return M(jp(z(r),t,e,n))}function xu(r){return M(Lp(z(r)))}function ba(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 Gp(r,t=0){L(r.dtype,"around","Rounding is not defined for complex numbers.");let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",u=S.zeros(n,a),i=u.data,s=Math.pow(10,t);if(r.isCContiguous){let c=r.data,l=r.offset;for(let f=0;f<o;f++){let m=Number(c[l+f]);i[f]=ba(m*s)/s}}else for(let c=0;c<o;c++){let l=Number(r.iget(c));i[c]=ba(l*s)/s}return u}function Yp(r){L(r.dtype,"ceil","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.size,o=t==="float32"?"float32":"float64",a=S.zeros(e,o),u=a.data;if(r.isCContiguous){let i=r.data,s=r.offset;for(let c=0;c<n;c++)u[c]=Math.ceil(Number(i[s+c]))}else for(let i=0;i<n;i++)u[i]=Math.ceil(Number(r.iget(i)));return a}function Wp(r){L(r.dtype,"fix","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.size,o=t==="float32"?"float32":"float64",a=S.zeros(e,o),u=a.data;if(r.isCContiguous){let i=r.data,s=r.offset;for(let c=0;c<n;c++)u[c]=Math.trunc(Number(i[s+c]))}else for(let i=0;i<n;i++)u[i]=Math.trunc(Number(r.iget(i)));return a}function Zp(r){L(r.dtype,"floor","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.size,o=t==="float32"?"float32":"float64",a=S.zeros(e,o),u=a.data;if(r.isCContiguous){let i=r.data,s=r.offset;for(let c=0;c<n;c++)u[c]=Math.floor(Number(i[s+c]))}else for(let i=0;i<n;i++)u[i]=Math.floor(Number(r.iget(i)));return a}function Jp(r){L(r.dtype,"rint","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.size,o=t==="float32"?"float32":"float64",a=S.zeros(e,o),u=a.data;if(r.isCContiguous){let i=r.data,s=r.offset;for(let c=0;c<n;c++)u[c]=ba(Number(i[s+c]))}else for(let i=0;i<n;i++)u[i]=ba(Number(r.iget(i)));return a}function Xp(r){L(r.dtype,"trunc","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.size,o=t==="float32"?"float32":"float64",a=S.zeros(e,o),u=a.data;if(r.isCContiguous){let i=r.data,s=r.offset;for(let c=0;c<n;c++)u[c]=Math.trunc(Number(i[s+c]))}else for(let i=0;i<n;i++)u[i]=Math.trunc(Number(r.iget(i)));return a}function wt(r,t=0){return M(Gp(z(r),t))}var Aa=wt;function Kn(r){return M(Yp(z(r)))}function Qn(r){return M(Wp(z(r)))}function Hn(r){return M(Zp(z(r)))}function ro(r){return M(Jp(z(r)))}function to(r){return M(Xp(z(r)))}function Cu(r,t,e,n){let o=isNaN(r)||isNaN(t),a=isNaN(e)||isNaN(n);return o&&a?0:o?1:a||r<e?-1:r>e?1:t<n?-1:t>n?1:0}function JD(r,t,e,n){let o=isNaN(r)||isNaN(t),a=isNaN(e)||isNaN(n);return o&&a?!0:o||a?!1:r===e&&t===n}function Cr(r,t=!1,e=!1,n=!1){let o=r.dtype,a=r.size,u=r.data,i=r.offset;if(B(o)){let N=u,D=[];for(let R=0;R<a;R++)D.push({re:N[(i+R)*2],im:N[(i+R)*2+1],index:R});D.sort((R,W)=>Cu(R.re,R.im,W.re,W.im));let x=[],C=[],w=new Array(a),_=[],I,v,T=0;for(let R=0;R<D.length;R++){let{re:W,im:J,index:X}=D[R];I===void 0||!JD(W,J,I,v)?(I!==void 0&&_.push(T),x.push({re:W,im:J}),C.push(X),T=1,I=W,v=J):T++}T>0&&_.push(T);let O=new Map,$=-1;for(let R=0;R<x.length;R++){let{re:W,im:J}=x[R];isNaN(W)||isNaN(J)?$=R:O.set(`${W},${J}`,R)}for(let R=0;R<a;R++){let W=N[(i+R)*2],J=N[(i+R)*2+1];isNaN(W)||isNaN(J)?w[R]=$:w[R]=O.get(`${W},${J}`)}let k=S.zeros([x.length],o),V=k.data;for(let R=0;R<x.length;R++)V[R*2]=x[R].re,V[R*2+1]=x[R].im;if(!t&&!e&&!n)return k;let j={values:k};if(t){let R=S.zeros([C.length],"int32"),W=R.data;for(let J=0;J<C.length;J++)W[J]=C[J];j.indices=R}if(e){let R=S.zeros([w.length],"int32"),W=R.data;for(let J=0;J<w.length;J++)W[J]=w[J];j.inverse=R}if(n){let R=S.zeros([_.length],"int32"),W=R.data;for(let J=0;J<_.length;J++)W[J]=_[J];j.counts=R}return j}let s=[];for(let N=0;N<a;N++)s.push({value:Number(u[i+N]),index:N});s.sort((N,D)=>isNaN(N.value)&&isNaN(D.value)?0:isNaN(N.value)?1:isNaN(D.value)?-1:N.value-D.value);let c=[],l=[],f=new Array(a),m=[],p,y=0;for(let N=0;N<s.length;N++){let{value:D,index:x}=s[N];p===void 0||isNaN(D)&&!isNaN(p)||!isNaN(D)&&isNaN(p)||!isNaN(D)&&!isNaN(p)&&D!==p?(p!==void 0&&m.push(y),c.push(D),l.push(x),y=1,p=D):y++}y>0&&m.push(y);let d=new Map,b=-1;for(let N=0;N<c.length;N++){let D=c[N];isNaN(D)?b=N:d.set(D,N)}for(let N=0;N<a;N++){let D=Number(u[i+N]);isNaN(D)?f[N]=b:f[N]=d.get(D)}let A=S.zeros([c.length],o),g=A.data;for(let N=0;N<c.length;N++)g[N]=c[N];if(!t&&!e&&!n)return A;let h={values:A};if(t){let N=S.zeros([l.length],"int32"),D=N.data;for(let x=0;x<l.length;x++)D[x]=l[x];h.indices=N}if(e){let N=S.zeros([f.length],"int32"),D=N.data;for(let x=0;x<f.length;x++)D[x]=f[x];h.inverse=N}if(n){let N=S.zeros([m.length],"int32"),D=N.data;for(let x=0;x<m.length;x++)D[x]=m[x];h.counts=N}return h}function Vr(r,t,e,n=0){if(e){let o=Number(r[(n+t)*2]),a=Number(r[(n+t)*2+1]);return`${o},${a}`}return String(Number(r[n+t]))}function Kp(r,t){return Su(r,t)}function Qp(r,t){let e=r.dtype,n=B(e),o=Cr(r),a=Cr(t),u=new Set;for(let l=0;l<a.size;l++)u.add(Vr(a.data,l,n));let i=[];for(let l=0;l<o.size;l++){let f=Vr(o.data,l,n);u.has(f)&&i.push(l)}if(n){let l=S.zeros([i.length],e),f=l.data,m=o.data;for(let p=0;p<i.length;p++){let y=i[p];f[p*2]=m[y*2],f[p*2+1]=m[y*2+1]}return l}let s=S.zeros([i.length],e),c=s.data;for(let l=0;l<i.length;l++)c[l]=o.data[i[l]];return s}function Su(r,t){let e=Array.from(r.shape),n=r.size,o=B(r.dtype),a=new Set;for(let s=0;s<t.size;s++)a.add(Vr(t.data,s,o,t.offset));let u=S.zeros(e,"bool"),i=u.data;for(let s=0;s<n;s++){let c=Vr(r.data,s,o,r.offset);i[s]=a.has(c)?1:0}return u}function Hp(r,t){let e=r.dtype,n=B(e),o=Cr(r),a=new Set;for(let c=0;c<t.size;c++)a.add(Vr(t.data,c,n,t.offset));let u=[];for(let c=0;c<o.size;c++){let l=Vr(o.data,c,n);a.has(l)||u.push(c)}if(n){let c=S.zeros([u.length],e),l=c.data,f=o.data;for(let m=0;m<u.length;m++){let p=u[m];l[m*2]=f[p*2],l[m*2+1]=f[p*2+1]}return c}let i=S.zeros([u.length],e),s=i.data;for(let c=0;c<u.length;c++)s[c]=o.data[u[c]];return i}function ry(r,t){let e=r.dtype,n=B(e),o=Cr(r),a=Cr(t),u=new Set,i=new Set;for(let p=0;p<o.size;p++)u.add(Vr(o.data,p,n));for(let p=0;p<a.size;p++)i.add(Vr(a.data,p,n));let s=[],c=[];for(let p=0;p<o.size;p++){let y=Vr(o.data,p,n);i.has(y)||s.push(p)}for(let p=0;p<a.size;p++){let y=Vr(a.data,p,n);u.has(y)||c.push(p)}if(n){let p=[],y=o.data,d=a.data;for(let g of s)p.push({re:y[g*2],im:y[g*2+1]});for(let g of c)p.push({re:d[g*2],im:d[g*2+1]});p.sort((g,h)=>Cu(g.re,g.im,h.re,h.im));let b=S.zeros([p.length],e),A=b.data;for(let g=0;g<p.length;g++)A[g*2]=p[g].re,A[g*2+1]=p[g].im;return b}let l=[];for(let p of s)l.push(Number(o.data[p]));for(let p of c)l.push(Number(a.data[p]));l.sort((p,y)=>isNaN(p)&&isNaN(y)?0:isNaN(p)?1:isNaN(y)?-1:p-y);let f=S.zeros([l.length],e),m=f.data;for(let p=0;p<l.length;p++)m[p]=l[p];return f}function ty(r,t){let e=r.dtype,n=B(e),o=Cr(r),a=Cr(t),u=new Set,i=[];if(n){let f=o.data,m=a.data;for(let d=0;d<o.size;d++){let b=f[d*2],A=f[d*2+1],g=`${b},${A}`;u.has(g)||(u.add(g),i.push({re:b,im:A}))}for(let d=0;d<a.size;d++){let b=m[d*2],A=m[d*2+1],g=`${b},${A}`;u.has(g)||(u.add(g),i.push({re:b,im:A}))}i.sort((d,b)=>Cu(d.re,d.im,b.re,b.im));let p=S.zeros([i.length],e),y=p.data;for(let d=0;d<i.length;d++)y[d*2]=i[d].re,y[d*2+1]=i[d].im;return p}let s=[];for(let f=0;f<o.size;f++){let m=Number(o.data[f]),p=String(m);u.has(p)||(u.add(p),s.push(m))}for(let f=0;f<a.size;f++){let m=Number(a.data[f]),p=String(m);u.has(p)||(u.add(p),s.push(m))}s.sort((f,m)=>isNaN(f)&&isNaN(m)?0:isNaN(f)?1:isNaN(m)?-1:f-m);let c=S.zeros([s.length],e),l=c.data;for(let f=0;f<s.length;f++)l[f]=s[f];return c}function ey(r,t="fb"){let e=r.dtype,n=r.data,o=r.size,a=r.offset,u=B(e);if(o===0)return S.zeros([0],e);let i=p=>{if(u){let y=n[(a+p)*2],d=n[(a+p)*2+1];return y===0&&d===0}return Number(n[a+p])===0},s=0;if(t==="f"||t==="fb")for(;s<o&&i(s);)s++;let c=o-1;if(t==="b"||t==="fb")for(;c>=s&&i(c);)c--;if(s>c)return S.zeros([0],e);let l=c-s+1;if(u){let p=S.zeros([l],e),y=p.data;for(let d=0;d<l;d++)y[d*2]=n[(a+s+d)*2],y[d*2+1]=n[(a+s+d)*2+1];return p}let f=S.zeros([l],e),m=f.data;for(let p=0;p<l;p++)m[p]=n[a+s+p];return f}function ny(r){let e=Cr(r,!0,!0,!0);return{values:e.values,indices:e.indices,inverse_indices:e.inverse,counts:e.counts}}function oy(r){let e=Cr(r,!1,!1,!0);return{values:e.values,counts:e.counts}}function ay(r){let e=Cr(r,!1,!0,!1);return{values:e.values,inverse_indices:e.inverse}}function sy(r){return Cr(r)}function ga(r,t=!1,e=!1,n=!1){let o=Cr(z(r),t,e,n);return"values"in o?{values:M(o.values),indices:o.indices?M(o.indices):void 0,inverse:o.inverse?M(o.inverse):void 0,counts:o.counts?M(o.counts):void 0}:M(o)}function wu(r,t){return M(Kp(z(r),z(t)))}function Iu(r,t){return M(Qp(z(r),z(t)))}function zu(r,t){return M(Su(z(r),z(t)))}function _u(r,t){return M(Hp(z(r),z(t)))}function vu(r,t){return M(ry(z(r),z(t)))}function Mu(r,t){return M(ty(z(r),z(t)))}function Fu(r,t){return M(ey(z(r),t))}function ha(r){let t=ny(z(r));return{values:M(t.values),indices:M(t.indices),inverse_indices:M(t.inverse_indices),counts:M(t.counts)}}function Na(r){let t=oy(z(r));return{values:M(t.values),counts:M(t.counts)}}function Da(r){let t=ay(z(r));return{values:M(t.values),inverse_indices:M(t.inverse_indices)}}function Bu(r){return M(sy(z(r)))}function iy(r,t,e=0){L(r.dtype,"bincount","bincount requires integer input.");let n=r.data,o=r.size,a=0;for(let i=0;i<o;i++){let s=Number(n[i]);if(s<0||!Number.isInteger(s))throw new Error("'x' argument must contain non-negative integers");s>a&&(a=s)}let u=Math.max(a+1,e);if(t!==void 0){if(t.size!==o)throw new Error("weights array must have same length as x");let i=t.data,s=new Float64Array(u);for(let c=0;c<o;c++){let l=Number(n[c]);s[l]+=Number(i[c])}return S.fromData(s,[u],"float64")}else{let i=new Float64Array(u);for(let s=0;s<o;s++){let c=Number(n[s]);i[c]++}return S.fromData(i,[u],"float64")}}function uy(r,t,e=!1){L(r.dtype,"digitize","digitize requires real numbers."),L(t.dtype,"digitize","digitize requires real numbers.");let n=r.data,o=t.data,a=r.size,u=t.size,i=new Float64Array(a),s=!0;u>1&&(s=Number(o[1])>=Number(o[0]));for(let c=0;c<a;c++){let l=Number(n[c]),f;if(s)e?f=KD(o,u,l):f=eo(o,u,l);else if(e)for(f=0;f<u&&Number(o[f])>=l;)f++;else for(f=0;f<u&&Number(o[f])>l;)f++;i[c]=f}return S.fromData(i,[...r.shape],"float64")}function KD(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 eo(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 cy(r,t=10,e,n=!1,o){L(r.dtype,"histogram","histogram requires real numbers."),typeof t!="number"&&L(t.dtype,"histogram","histogram requires real numbers.");let a=r.data,u=r.size,i;if(typeof t=="number"){let f,m;if(e)[f,m]=e;else{f=1/0,m=-1/0;for(let y=0;y<u;y++){let d=Number(a[y]);d<f&&(f=d),d>m&&(m=d)}f===m&&(f=f-.5,m=m+.5)}i=[];let p=(m-f)/t;for(let y=0;y<=t;y++)i.push(f+y*p)}else{let f=t.data;i=[];for(let m=0;m<t.size;m++)i.push(Number(f[m]))}let s=i.length-1,c=new Float64Array(s),l=o?.data;for(let f=0;f<u;f++){let m=Number(a[f]),p=l?Number(l[f]):1,y=eo(i,i.length,m)-1;if(!(y<0)){if(y>=s)if(m===i[s])y=s-1;else continue;c[y]+=p}}if(n){let f=0;for(let m=0;m<s;m++)f+=c[m];for(let m=0;m<s;m++){let p=i[m+1]-i[m];c[m]=c[m]/(f*p)}}return{hist:S.fromData(c,[s],"float64"),bin_edges:S.fromData(new Float64Array(i),[i.length],"float64")}}function ly(r,t,e=10,n,o=!1,a){L(r.dtype,"histogram2d","histogram2d requires real numbers."),L(t.dtype,"histogram2d","histogram2d requires real numbers.");let u=r.data,i=t.data,s=r.size;if(t.size!==s)throw new Error("x and y must have the same length");let c,l,f,m;if(typeof e=="number"?(f=e,m=e):Array.isArray(e)&&e.length===2?(e[0],f=e[0],m=e[1]):(f=10,m=10),typeof f=="number"){let A,g;if(n)[A,g]=n[0];else{A=1/0,g=-1/0;for(let N=0;N<s;N++){let D=Number(u[N]);D<A&&(A=D),D>g&&(g=D)}A===g&&(A-=.5,g+=.5)}c=[];let h=(g-A)/f;for(let N=0;N<=f;N++)c.push(A+N*h)}else{let A=f.data;c=[];for(let g=0;g<f.size;g++)c.push(Number(A[g]))}if(typeof m=="number"){let A,g;if(n)[A,g]=n[1];else{A=1/0,g=-1/0;for(let N=0;N<s;N++){let D=Number(i[N]);D<A&&(A=D),D>g&&(g=D)}A===g&&(A-=.5,g+=.5)}l=[];let h=(g-A)/m;for(let N=0;N<=m;N++)l.push(A+N*h)}else{let A=m.data;l=[];for(let g=0;g<m.size;g++)l.push(Number(A[g]))}let p=c.length-1,y=l.length-1,d=new Float64Array(p*y),b=a?.data;for(let A=0;A<s;A++){let g=Number(u[A]),h=Number(i[A]),N=b?Number(b[A]):1,D=eo(c,c.length,g)-1,x=eo(l,l.length,h)-1;if(D<0||D>=p)if(g===c[p]&&D===p)D=p-1;else continue;if(x<0||x>=y)if(h===l[y]&&x===y)x=y-1;else continue;d[D*y+x]+=N}if(o){let A=0;for(let g=0;g<d.length;g++)A+=d[g];for(let g=0;g<p;g++)for(let h=0;h<y;h++){let N=c[g+1]-c[g],D=l[h+1]-l[h],x=N*D;d[g*y+h]=d[g*y+h]/(A*x)}}return{hist:S.fromData(d,[p,y],"float64"),x_edges:S.fromData(new Float64Array(c),[c.length],"float64"),y_edges:S.fromData(new Float64Array(l),[l.length],"float64")}}function fy(r,t=10,e,n=!1,o){L(r.dtype,"histogramdd","histogramdd requires real numbers.");let a=r.shape,u=r.data,i,s;if(a.length===1)i=a[0],s=1;else if(a.length===2)i=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 A=0;A<s;A++){let g,h;if(e&&e[A])[g,h]=e[A];else{g=1/0,h=-1/0;for(let C=0;C<i;C++){let w=Number(s===1?u[C]:u[C*s+A]);w<g&&(g=w),w>h&&(h=w)}g===h&&(g-=.5,h+=.5)}let N=c[A],D=[],x=(h-g)/N;for(let C=0;C<=N;C++)D.push(g+C*x);l.push(D)}let f=c.slice(),m=f.reduce((A,g)=>A*g,1),p=new Float64Array(m),y=new Array(s);y[s-1]=1;for(let A=s-2;A>=0;A--)y[A]=y[A+1]*c[A+1];let d=o?.data;for(let A=0;A<i;A++){let g=d?Number(d[A]):1,h=0,N=!1;for(let D=0;D<s;D++){let x=Number(s===1?u[A]:u[A*s+D]),C=l[D],w=c[D],_=eo(C,C.length,x)-1;if(_<0||_>=w)if(x===C[w]&&_===w)_=w-1;else{N=!0;break}h+=_*y[D]}N||(p[h]+=g)}if(n){let A=0;for(let h=0;h<m;h++)A+=p[h];let g=new Float64Array(m);for(let h=0;h<m;h++){let N=1,D=h;for(let x=0;x<s;x++){let C=Math.floor(D/y[x])%c[x],w=l[x];N*=w[C+1]-w[C]}g[h]=N}for(let h=0;h<m;h++)p[h]=p[h]/(A*g[h])}let b=l.map(A=>S.fromData(new Float64Array(A),[A.length],"float64"));return{hist:S.fromData(p,f,"float64"),edges:b}}function Eu(r,t,e="full"){let n=r.data,o=t.data,a=r.size,u=t.size,i=B(r.dtype)||B(t.dtype),s=a+u-1;if(i){let l=new Float64Array(s),f=new Float64Array(s),m=B(r.dtype),p=B(t.dtype);for(let d=0;d<s;d++){let b=0,A=0,g=d-u+1;for(let h=0;h<a;h++){let N=h-g;if(N>=0&&N<u){let D,x,C,w;m?(D=n[h*2],x=n[h*2+1]):(D=Number(n[h]),x=0),p?(C=o[N*2],w=o[N*2+1]):(C=Number(o[N]),w=0),b+=D*C+x*w,A+=x*C-D*w}}l[d]=b,f[d]=A}let y=(d,b,A,g=0)=>{let h=new Float64Array(A*2);for(let N=0;N<A;N++)h[N*2]=d[g+N],h[N*2+1]=b[g+N];return S.fromData(h,[A],"complex128")};if(e==="full")return y(l,f,s);if(e==="same"){let d=Math.floor((s-a)/2);return y(l,f,a,d)}else{let d=Math.max(a,u)-Math.min(a,u)+1,b=Math.min(a,u)-1;return y(l,f,d,b)}}let c=new Float64Array(s);for(let l=0;l<s;l++){let f=0,m=l-u+1;for(let p=0;p<a;p++){let y=p-m;y>=0&&y<u&&(f+=Number(n[p])*Number(o[y]))}c[l]=f}if(e==="full")return S.fromData(c,[s],"float64");if(e==="same"){let l=Math.floor((s-a)/2),f=new Float64Array(a);for(let m=0;m<a;m++)f[m]=c[l+m];return S.fromData(f,[a],"float64")}else{let l=Math.max(a,u)-Math.min(a,u)+1,f=Math.min(a,u)-1,m=new Float64Array(l);for(let p=0;p<l;p++)m[p]=c[f+p];return S.fromData(m,[l],"float64")}}function my(r,t,e="full"){let n=t.data,o=t.size,a=B(t.dtype),u;if(a){let i=new Float64Array(o*2);for(let s=0;s<o;s++){let c=o-1-s;i[s*2]=n[c*2],i[s*2+1]=n[c*2+1]}u=S.fromData(i,[o],t.dtype)}else{let i=new Float64Array(o);for(let s=0;s<o;s++)i[s]=Number(n[o-1-s]);u=S.fromData(i,[o],"float64")}if(a){let i=u.data;for(let s=0;s<o;s++)i[s*2+1]=-i[s*2+1]}return Eu(r,u,e)}function Ou(r,t,e=!0,n=!1,o){let a=r.shape,u=r.data,i=B(r.dtype)||t!==void 0&&B(t.dtype),s;if(o!==void 0?s=o:s=n?0:1,a.length===1)if(t!==void 0){let y=t.data,d=r.size,b=B(r.dtype),A=B(t.dtype);if(t.size!==d)throw new Error("m and y must have same length");if(i){let w=0,_=0,I=0,v=0;for(let rr=0;rr<d;rr++)b?(w+=u[rr*2],_+=u[rr*2+1]):w+=Number(u[rr]),A?(I+=y[rr*2],v+=y[rr*2+1]):I+=Number(y[rr]);w/=d,_/=d,I/=d,v/=d;let T=0,O=0,$=0,k=0,V=0,j=0,R=0,W=0;for(let rr=0;rr<d;rr++){let yr,nr,dr,Er;b?(yr=u[rr*2]-w,nr=u[rr*2+1]-_):(yr=Number(u[rr])-w,nr=0),A?(dr=y[rr*2]-I,Er=y[rr*2+1]-v):(dr=Number(y[rr])-I,Er=0),T+=yr*yr+nr*nr,$+=dr*dr+Er*Er,V+=yr*dr+nr*Er,j+=nr*dr-yr*Er,R+=dr*yr+Er*nr,W+=Er*yr-dr*nr}let J=d-s;if(J<=0){let rr=new Float64Array(8);return rr.fill(NaN),S.fromData(rr,[2,2],"complex128")}T/=J,$/=J,V/=J,j/=J,R/=J,W/=J;let X=new Float64Array(8);return X[0]=T,X[1]=O,X[2]=V,X[3]=j,X[4]=R,X[5]=W,X[6]=$,X[7]=k,S.fromData(X,[2,2],"complex128")}let g=0,h=0;for(let w=0;w<d;w++)g+=Number(u[w]),h+=Number(y[w]);g/=d,h/=d;let N=0,D=0,x=0;for(let w=0;w<d;w++){let _=Number(u[w])-g,I=Number(y[w])-h;N+=_*_,D+=I*I,x+=_*I}let C=d-s;return C<=0?S.fromData(new Float64Array([NaN,NaN,NaN,NaN]),[2,2],"float64"):(N/=C,D/=C,x/=C,S.fromData(new Float64Array([N,x,x,D]),[2,2],"float64"))}else{let y=r.size;if(i){let g=0,h=0;for(let x=0;x<y;x++)g+=u[x*2],h+=u[x*2+1];g/=y,h/=y;let N=0;for(let x=0;x<y;x++){let C=u[x*2]-g,w=u[x*2+1]-h;N+=C*C+w*w}let D=y-s;return D<=0?S.fromData(new Float64Array([NaN,0]),[],"complex128"):(N/=D,S.fromData(new Float64Array([N,0]),[],"complex128"))}let d=0;for(let g=0;g<y;g++)d+=Number(u[g]);d/=y;let b=0;for(let g=0;g<y;g++){let h=Number(u[g])-d;b+=h*h}let A=y-s;return A<=0?S.fromData(new Float64Array([NaN]),[],"float64"):(b/=A,S.fromData(new Float64Array([b]),[],"float64"))}let c,l;e?(c=a[0],l=a[1]):(c=a[1],l=a[0]);let f=l-s;if(i){let y=new Float64Array(c),d=new Float64Array(c);for(let A=0;A<c;A++){let g=0,h=0;for(let N=0;N<l;N++){let D=e?A*l+N:N*c+A;g+=u[D*2],h+=u[D*2+1]}y[A]=g/l,d[A]=h/l}let b=new Float64Array(c*c*2);if(f<=0)return b.fill(NaN),S.fromData(b,[c,c],"complex128");for(let A=0;A<c;A++)for(let g=0;g<c;g++){let h=0,N=0;for(let x=0;x<l;x++){let C=e?A*l+x:x*c+A,w=e?g*l+x:x*c+g,_=u[C*2]-y[A],I=u[C*2+1]-d[A],v=u[w*2]-y[g],T=u[w*2+1]-d[g];h+=_*v+I*T,N+=I*v-_*T}let D=(A*c+g)*2;b[D]=h/f,b[D+1]=N/f}return S.fromData(b,[c,c],"complex128")}let m=new Float64Array(c);for(let y=0;y<c;y++){let d=0;for(let b=0;b<l;b++){let A=e?y*l+b:b*c+y;d+=Number(u[A])}m[y]=d/l}let p=new Float64Array(c*c);if(f<=0)return p.fill(NaN),S.fromData(p,[c,c],"float64");for(let y=0;y<c;y++)for(let d=y;d<c;d++){let b=0;for(let g=0;g<l;g++){let h=e?y*l+g:g*c+y,N=e?d*l+g:g*c+d,D=Number(u[h])-m[y],x=Number(u[N])-m[d];b+=D*x}let A=b/f;p[y*c+d]=A,p[d*c+y]=A}return S.fromData(p,[c,c],"float64")}function py(r,t,e=!0){let n=B(r.dtype)||t!==void 0&&B(t.dtype);if(r.shape.length===1&&t===void 0)return n?S.fromData(new Float64Array([1,0]),[],"complex128"):S.fromData(new Float64Array([1]),[],"float64");let o=Ou(r,t,e,!1),a=o.data,i=o.shape[0];if(n){let c=new Float64Array(i*i*2);for(let l=0;l<i;l++)for(let f=0;f<i;f++){let m=a[(l*i+f)*2],p=a[(l*i+f)*2+1],y=a[(l*i+l)*2],d=a[(f*i+f)*2],b=(l*i+f)*2;if(y<=0||d<=0)c[b]=NaN,c[b+1]=NaN;else{let A=Math.sqrt(y*d);c[b]=m/A,c[b+1]=p/A}}return S.fromData(c,[i,i],"complex128")}let s=new Float64Array(i*i);for(let c=0;c<i;c++)for(let l=0;l<i;l++){let f=Number(a[c*i+l]),m=Number(a[c*i+c]),p=Number(a[l*i+l]);m<=0||p<=0?s[c*i+l]=NaN:s[c*i+l]=f/Math.sqrt(m*p)}return S.fromData(s,[i,i],"float64")}function yy(r,t=10,e,n){L(r.dtype,"histogram_bin_edges","histogram_bin_edges requires real numbers.");let o=r.data,a=r.size,u,i;if(e)[u,i]=e;else{u=1/0,i=-1/0;for(let f=0;f<a;f++){let m=Number(o[f]);isNaN(m)||(m<u&&(u=m),m>i&&(i=m))}!isFinite(u)||!isFinite(i)?(u=0,i=1):u===i&&(u=u-.5,i=i+.5)}let s;typeof t=="number"?s=t:s=Tu(o,a,u,i,t),s=Math.max(1,Math.round(s));let c=new Float64Array(s+1),l=(i-u)/s;for(let f=0;f<=s;f++)c[f]=u+f*l;return S.fromData(c,[s+1],"float64")}function Tu(r,t,e,n,o){if(t===0)return 1;let a=n-e;if(a===0)return 1;let u=[],i=0;for(let d=0;d<t;d++){let b=Number(r[d]);isNaN(b)||(u.push(b),i+=b)}let s=u.length;if(s===0)return 1;let c=i/s,l=0;for(let d=0;d<s;d++){let b=u[d]-c;l+=b*b}let f=Math.sqrt(l/s);u.sort((d,b)=>d-b);let m=u[Math.floor(s*.25)]??0,y=(u[Math.floor(s*.75)]??0)-m;switch(o){case"sqrt":return Math.ceil(Math.sqrt(s));case"sturges":return Math.ceil(Math.log2(s)+1);case"rice":return Math.ceil(2*Math.pow(s,1/3));case"scott":{if(f===0)return 1;let d=3.5*f/Math.pow(s,1/3);return Math.ceil(a/d)}case"fd":{if(y===0)return Tu(r,t,e,n,"sturges");let d=2*y/Math.pow(s,1/3);return Math.ceil(a/d)}case"doane":{let d=QD(u,c,f),b=Math.sqrt(6*(s-2)/((s+1)*(s+3)));return Math.ceil(1+Math.log2(s)+Math.log2(1+Math.abs(d)/b))}case"stone":return Tu(r,t,e,n,"sturges");default:{let d=Math.ceil(Math.log2(s)+1),b=y===0?d:Math.ceil(a/(2*y/Math.pow(s,1/3)));return Math.max(d,b)}}}function QD(r,t,e){if(e===0)return 0;let n=r.length,o=0;for(let a=0;a<n;a++)o+=Math.pow((r[a]-t)/e,3);return o/n}function dy(r,t,e=1,n=-1){L(r.dtype,"trapezoid","trapezoid requires real numbers."),t!==void 0&&L(t.dtype,"trapezoid","trapezoid requires real numbers.");let o=Array.from(r.shape),a=o.length;if(n<0&&(n=a+n),n<0||n>=a)throw new Error(`axis ${n} is out of bounds for array of dimension ${a}`);let u=o[n];if(u<2)throw new Error("trapezoid requires at least 2 samples along axis");let i;if(t!==void 0){if(t.size!==u)throw new Error(`x array size (${t.size}) must match y axis size (${u})`);let d=t.data;i=new Float64Array(u);for(let b=0;b<u;b++)i[b]=Number(d[b])}else{i=new Float64Array(u);for(let d=0;d<u;d++)i[d]=d*e}let s=[...o];if(s.splice(n,1),a===1){let d=r.data,b=0;for(let A=0;A<u-1;A++){let g=Number(d[A]),h=Number(d[A+1]),N=i[A+1]-i[A];b+=.5*(g+h)*N}return b}let c=s.reduce((d,b)=>d*b,1),l=new Float64Array(c),f=new Array(a),m=1;for(let d=a-1;d>=0;d--)f[d]=m,m*=o[d];let p=new Array(s.length);m=1;for(let d=s.length-1;d>=0;d--)p[d]=m,m*=s[d];let y=r.data;for(let d=0;d<c;d++){let b=[],A=d;for(let D=0;D<s.length;D++){let x=Math.floor(A/p[D]);A%=p[D],b.push(x)}let g=[],h=0;for(let D=0;D<a;D++)D===n?g.push(0):(g.push(b[h]),h++);let N=0;for(let D=0;D<u-1;D++){g[n]=D;let x=0;for(let v=0;v<a;v++)x+=g[v]*f[v];g[n]=D+1;let C=0;for(let v=0;v<a;v++)C+=g[v]*f[v];let w=Number(y[x]),_=Number(y[C]),I=i[D+1]-i[D];N+=.5*(w+_)*I}l[d]=N}return s.length===0?l[0]:S.fromData(l,s,"float64")}function Uu(r,t,e){let n=t?z(t):void 0;return M(iy(z(r),n,e))}function $u(r,t,e){return M(uy(z(r),z(t),e))}function xa(r,t,e,n,o){let a=t instanceof P?z(t):t,u=o?z(o):void 0,i=cy(z(r),a,e,n,u);return[M(i.hist),M(i.bin_edges)]}function Ca(r,t,e,n,o,a){let u;if(Array.isArray(e)&&e.length===2){let c=e[0]instanceof P?z(e[0]):e[0],l=e[1]instanceof P?z(e[1]):e[1];u=[c,l]}else u=e;let i=a?z(a):void 0,s=ly(z(r),z(t),u,n,o,i);return[M(s.hist),M(s.x_edges),M(s.y_edges)]}function Sa(r,t,e,n,o){let a=o?z(o):void 0,u=fy(z(r),t,e,n,a);return[M(u.hist),u.edges.map(i=>M(i))]}function ku(r,t,e){return M(Eu(z(r),z(t),e))}function Ru(r,t,e){return M(my(z(r),z(t),e))}function qu(r,t,e,n,o){return M(Ou(z(r),t?z(t):void 0,e,n,o))}function Vu(r,t,e){return M(py(z(r),t?z(t):void 0,e))}function wa(r,t,e,n){return M(yy(z(r),t,e,n?z(n):void 0))}function Pu(r,t,e,n){let o=dy(z(r),t?z(t):void 0,e,n);return typeof o=="number"?o:M(o)}function by(r,t=1,e=-1){if(t<0)throw new Error(`order must be non-negative but got ${t}`);if(t===0)return r.copy();let n=Array.from(r.shape),o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);if(n[a]<t+1)throw new Error(`diff requires at least ${t+1} elements along axis ${e}, but got ${n[a]}`);let u=r;for(let i=0;i<t;i++)u=rx(u,a);return u}function rx(r,t){let e=Array.from(r.shape),n=e.length,o=e[t],a=[...e];a[t]=o-1;let u=r.dtype,i=B(u),s=E(u)?"float64":u,c=S.zeros(a,s),l=c.data,f=r.strides,m=c.size,p=r.offset;for(let y=0;y<m;y++){let d=y,b=new Array(n);for(let D=n-1;D>=0;D--)b[D]=d%a[D],d=Math.floor(d/a[D]);let A=[...b],g=[...b];g[t]=A[t]+1;let h=0,N=0;for(let D=0;D<n;D++)h+=A[D]*f[D],N+=g[D]*f[D];if(i){let D=r.data,x=D[(p+h)*2],C=D[(p+h)*2+1],w=D[(p+N)*2],_=D[(p+N)*2+1];l[y*2]=w-x,l[y*2+1]=_-C}else{let D=(E(u),Number(r.data[p+h])),x=(E(u),Number(r.data[p+N]));l[y]=x-D}}return c}function Ay(r,t=null,e=null){let n=r.size,o=r.dtype,a=B(o),u=E(o)?"float64":o,i=Math.max(0,n-1),s=e?e.length:0,c=t?t.length:0,l=s+i+c,f=S.zeros([l],u),m=f.data,p=0;if(e)if(a)for(let y of e)m[p*2]=y,m[p*2+1]=0,p++;else for(let y of e)m[p++]=y;if(a)for(let y=0;y<i;y++){let d=r.iget(y),b=r.iget(y+1);m[p*2]=b.re-d.re,m[p*2+1]=b.im-d.im,p++}else for(let y=0;y<i;y++){let d=(E(o),Number(r.iget(y))),b=(E(o),Number(r.iget(y+1)));m[p++]=b-d}if(t)if(a)for(let y of t)m[p*2]=y,m[p*2+1]=0,p++;else for(let y of t)m[p++]=y;return f}function gy(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 u;if(typeof t=="number")u=a.map(()=>t);else{if(t.length!==a.length)throw new Error("Number of spacings must match number of axes");u=t}let i=[];for(let s=0;s<a.length;s++)i.push(tx(r,a[s],u[s]));return i.length===1?i[0]:i}function tx(r,t,e){let n=Array.from(r.shape),o=n.length,a=n[t];if(a<2)throw new Error(`Shape of array along axis ${t} must be at least 2, but got ${a}`);let u=r.dtype,i=B(u),s=E(u)?"float64":u==="float32"?"float32":i?u:"float64",c=S.zeros(n,s),l=c.data,f=r.strides,m=e,p=2*m,y=r.size,d=r.offset;for(let b=0;b<y;b++){let A=b,g=new Array(o);for(let D=o-1;D>=0;D--)g[D]=A%n[D],A=Math.floor(A/n[D]);let h=d;for(let D=0;D<o;D++)h+=g[D]*f[D];let N=g[t];if(i){let D=r.data,x=l,C,w;if(N===0){let _=[...g];_[t]=1;let I=0;for(let k=0;k<o;k++)I+=_[k]*f[k];let v=D[h*2],T=D[h*2+1],O=D[(d+I)*2],$=D[(d+I)*2+1];C=(O-v)/m,w=($-T)/m}else if(N===a-1){let _=[...g];_[t]=a-2;let I=0;for(let k=0;k<o;k++)I+=_[k]*f[k];let v=D[h*2],T=D[h*2+1],O=D[(d+I)*2],$=D[(d+I)*2+1];C=(v-O)/m,w=(T-$)/m}else{let _=[...g],I=[...g];_[t]=N+1,I[t]=N-1;let v=0,T=0;for(let j=0;j<o;j++)v+=_[j]*f[j],T+=I[j]*f[j];let O=D[(d+v)*2],$=D[(d+v)*2+1],k=D[(d+T)*2],V=D[(d+T)*2+1];C=(O-k)/p,w=($-V)/p}x[b*2]=C,x[b*2+1]=w}else{let D;if(N===0){let x=[...g];x[t]=1;let C=0;for(let I=0;I<o;I++)C+=x[I]*f[I];let w=(E(u),Number(r.data[h]));D=((E(u),Number(r.data[d+C]))-w)/m}else if(N===a-1){let x=[...g];x[t]=a-2;let C=0;for(let I=0;I<o;I++)C+=x[I]*f[I];let w=(E(u),Number(r.data[h])),_=(E(u),Number(r.data[d+C]));D=(w-_)/m}else{let x=[...g],C=[...g];x[t]=N+1,C[t]=N-1;let w=0,_=0;for(let T=0;T<o;T++)w+=x[T]*f[T],_+=C[T]*f[T];let I=(E(u),Number(r.data[d+w])),v=(E(u),Number(r.data[d+_]));D=(I-v)/p}l[b]=D}}return c}function no(r,t,e){return M(by(z(r),t,e))}function ju(r,t,e){return M(Ay(z(r),t??null,e??null))}function Ia(r,t,e){let n=gy(z(r),t,e);return Array.isArray(n)?$r(n):M(n)}function hy(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(B(t)){let o=Mt(t),a=S.zeros(e,o),u=a.data,i=r.data;for(let s=0;s<n;s++)u[s]=i[s*2];return a}return r.copy()}function Ny(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(B(t)){let a=Mt(t),u=S.zeros(e,a),i=u.data,s=r.data;for(let c=0;c<n;c++)i[c]=s[c*2+1];return u}let o=t==="float32"?"float32":"float64";return S.zeros(e,o)}function Dy(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(B(t)){let o=K(t),a=n*2,u=new o(a),i=r.data;for(let s=0;s<n;s++)u[s*2]=i[s*2],u[s*2+1]=-i[s*2+1];return S.fromData(u,e,t)}return r.copy()}function xy(r,t=!1){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=S.zeros(n,"float64"),u=a.data;if(B(e)){let i=r.data;for(let s=0;s<o;s++){let c=i[s*2],l=i[s*2+1],f=Math.atan2(l,c);t&&(f=f*180/Math.PI),u[s]=f}}else for(let i=0;i<o;i++){let s=r.iget(i),l=(s instanceof U?s.re:Number(s))>=0?0:Math.PI;t&&(l=l*180/Math.PI),u[i]=l}return a}function Lu(r){return M(hy(z(r)))}function Gu(r){return M(Ny(z(r)))}function oo(r){return M(Dy(z(r)))}function Yu(r,t){return M(xy(z(r),t))}function Wu(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=qr([Array.from(e),t]);if(a===null)throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${t.join(",")})`);for(let u=0;u<o;u++)if(a[u]!==t[u])throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${t.join(",")})`);return _r(r,t)}function Cy(r){if(r.length===0)return[];if(r.length===1)return[r[0]];let t=r.map(n=>Array.from(n.shape)),e=qr(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=>_r(n,e))}function Sy(r,t,e){let n=r.shape,o=n.length,a=r.dtype;if(e===void 0){let y=r.size;for(let g of t){let h=g<0?y+g:g;if(h<0||h>=y)throw new Error(`index ${g} is out of bounds for axis 0 with size ${y}`)}let d=t.length,b=K(a);if(!b)throw new Error(`Cannot take from array with dtype ${a}`);let A=new b(d);for(let g=0;g<d;g++){let h=t[g];h<0&&(h=y+h);let N=r.iget(h);E(a),A[g]=N}return S.fromData(A,[d],a)}let u=e<0?o+e:e;if(u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=n[u];for(let y of t){let d=y<0?i+y:y;if(d<0||d>=i)throw new Error(`index ${y} is out of bounds for axis ${u} with size ${i}`)}let s=Array.from(n);s[u]=t.length;let c=s.reduce((y,d)=>y*d,1),l=K(a);if(!l)throw new Error(`Cannot take from array with dtype ${a}`);let f=new l(c),m=lr(s),p=new Array(o).fill(0);for(let y=0;y<c;y++){let d=[...p],b=p[u],A=t[b];A<0&&(A=i+A),d[u]=A;let g=r.get(...d),h=0;for(let N=0;N<o;N++)h+=p[N]*m[N];E(a),f[h]=g;for(let N=o-1;N>=0&&(p[N]++,!(p[N]<s[N]));N--)p[N]=0}return S.fromData(f,s,a)}function wy(r,t,e){let n=r.size,o=r.dtype,a;if(typeof e=="number"||typeof e=="bigint")a=new Array(t.length).fill(e);else{a=[];for(let u=0;u<e.size;u++){let i=e.iget(u);a.push(i instanceof U?i.re:i)}if(a.length===1)a=new Array(t.length).fill(a[0]);else if(a.length!==t.length){let u=[...a];a=[];for(let i=0;i<t.length;i++)a.push(u[i%u.length])}}for(let u=0;u<t.length;u++){let i=t[u];if(i<0&&(i=n+i),i<0||i>=n)throw new Error(`index ${t[u]} is out of bounds for axis 0 with size ${n}`);let s=a[u];E(o)?typeof s!="bigint"&&(s=BigInt(Math.round(Number(s)))):typeof s=="bigint"&&(s=Number(s)),r.iset(i,s)}}function Iy(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(m=>Array.from(m.shape));a.unshift(Array.from(e));let u=qr(a);if(u===null)throw new Error("operands could not be broadcast together");let i=_r(r,u),s=t.map(m=>_r(m,u)),c=u.reduce((m,p)=>m*p,1),l=K(o);if(!l)throw new Error(`Cannot choose with dtype ${o}`);let f=new l(c);for(let m=0;m<c;m++){let p=Number(i.iget(m));if(p<0||p>=n)throw new Error(`index ${p} is out of bounds for axis 0 with size ${n}`);let y=s[p].iget(m);E(o),f[m]=y}return S.fromData(f,u,o)}function zy(r,t,e=!1){if(r.ndim!==t.ndim)return!1;for(let o=0;o<r.ndim;o++)if(r.shape[o]!==t.shape[o])return!1;let n=r.size;for(let o=0;o<n;o++){let a=r.iget(o),u=t.iget(o);if(e){let i=typeof a=="number"&&Number.isNaN(a),s=typeof u=="number"&&Number.isNaN(u);if(i&&s)continue}if(a!==u)return!1}return!0}function _y(r,t,e){let n=r.shape,o=n.length,a=r.dtype,u=e<0?o+e:e;if(u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let 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!==u&&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 s=Array.from(i),c=s.reduce((d,b)=>d*b,1),l=K(a);if(!l)throw new Error(`Cannot take_along_axis with dtype ${a}`);let f=new l(c),m=lr(n),p=lr(i),y=n[u];for(let d=0;d<c;d++){let b=new Array(o),A=d;for(let C=o-1;C>=0;C--)b[C]=A%s[C],A=Math.floor(A/s[C]);let g=0;for(let C=0;C<o;C++){let w=i[C]===1?0:b[C];g+=w*p[C]}let h=Number(t.iget(g));if(h<0&&(h=y+h),h<0||h>=y)throw new Error(`index ${h} is out of bounds for axis ${u} with size ${y}`);let N=[...b];N[u]=h;let D=0;for(let C=0;C<o;C++){let w=n[C]===1?0:N[C];D+=w*m[C]}let x=r.iget(D);E(a),f[d]=x}return S.fromData(f,s,a)}function vy(r,t,e,n){let o=r.shape,a=o.length,u=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 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[i],f=lr(o),m=lr(s),p=lr(c),y=s.reduce((d,b)=>d*b,1);for(let d=0;d<y;d++){let b=new Array(a),A=d;for(let w=a-1;w>=0;w--)b[w]=A%s[w],A=Math.floor(A/s[w]);let g=0;for(let w=0;w<a;w++)g+=b[w]*m[w];let h=Number(t.iget(g));if(h<0&&(h=l+h),h<0||h>=l)throw new Error(`index ${h} is out of bounds for axis ${i} with size ${l}`);let N=0;for(let w=0;w<a;w++){let _=c[w]===1?0:b[w];N+=_*p[w]}let D=e.iget(N),x=[...b];x[i]=h;let C=0;for(let w=0;w<a;w++)C+=x[w]*f[w];E(u)?typeof D!="bigint"&&(D=BigInt(Math.round(Number(D)))):typeof D=="bigint"&&(D=Number(D)),r.iset(C,D)}}function My(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++){let s=e.iget(i);a.push(s instanceof U?s.re:s)}}let u=0;for(let i=0;i<n;i++)if(t.iget(i)){let c=a[u%a.length];E(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),r.iset(i,c),u++}}function Fy(r,t,e){let n=t.shape,o=n.length,a=t.dtype,u=E(a);if(e===void 0){let N=Math.min(r.size,t.size),D=r.isCContiguous,x=r.data,C=r.offset,w=0;if(D)for(let O=0;O<N;O++)x[C+O]&&w++;else for(let O=0;O<N;O++)r.iget(O)&&w++;let _=K(a);if(!_)throw new Error(`Cannot compress with dtype ${a}`);let I=new _(w),v=0,T=t.isCContiguous;if(D&&T){let O=t.data,$=t.offset;if(u){let k=I,V=O;for(let j=0;j<N;j++)x[C+j]&&(k[v++]=V[$+j])}else{let k=I,V=O;for(let j=0;j<N;j++)x[C+j]&&(k[v++]=V[$+j])}}else for(let O=0;O<N;O++)(D?x[C+O]:r.iget(O))&&(I[v]=t.iget(O),v++);return S.fromData(I,[w],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 s=n[i],c=Math.min(r.size,s),l=[];for(let N=0;N<c;N++)r.iget(N)&&l.push(N);let f=l.length,m=[...n];m[i]=f;let p=m.reduce((N,D)=>N*D,1),y=K(a);if(!y)throw new Error(`Cannot compress with dtype ${a}`);let d=new y(p),b=n.slice(i+1).reduce((N,D)=>N*D,1),A=n.slice(0,i).reduce((N,D)=>N*D,1),g=0;if(t.isCContiguous){let N=t.data,D=t.offset;if(u){let x=d,C=N;for(let w=0;w<A;w++)for(let _=0;_<f;_++){let I=l[_];for(let v=0;v<b;v++){let T=w*s*b+I*b+v;x[g++]=C[D+T]}}}else{let x=d,C=N;for(let w=0;w<A;w++)for(let _=0;_<f;_++){let I=l[_];for(let v=0;v<b;v++){let T=w*s*b+I*b+v;x[g++]=C[D+T]}}}}else for(let N=0;N<A;N++)for(let D=0;D<f;D++){let x=l[D];for(let C=0;C<b;C++){let w=N*s*b+x*b+C;d[g++]=t.iget(w)}}return S.fromData(d,m,a)}function By(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(m=>Array.from(m.shape)),...t.map(m=>Array.from(m.shape))],o=qr(n);if(o===null)throw new Error("condlist and choicelist arrays could not be broadcast together");let a=t[0].dtype,u=o.reduce((m,p)=>m*p,1),i=K(a);if(!i)throw new Error(`Cannot select with dtype ${a}`);let s=e;E(a)?s=typeof e=="bigint"?e:BigInt(e):s=typeof e=="bigint"?Number(e):e;let c=new i(u);for(let m=0;m<u;m++)E(a),c[m]=s;let l=r.map(m=>_r(m,o)),f=t.map(m=>_r(m,o));for(let m=0;m<u;m++)for(let p=0;p<r.length;p++)if(l[p].iget(m)){let y=f[p].iget(m);E(a),c[m]=y;break}return S.fromData(c,o,a)}function Ty(r,t,e){let n=r.size,o=r.dtype,a=[];for(let i=0;i<e.size;i++){let s=e.iget(i);a.push(s instanceof U?s.re:s)}if(a.length===0)return;let u=0;for(let i=0;i<n;i++)if(t.iget(i)){let c=a[u%a.length];E(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),r.iset(i,c),u++}}function Zu(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 Ey(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 Zu(n,e)}function Ju(r,t=0,e){let n=e??r,o=[],a=[];for(let u=0;u<r;u++)for(let i=0;i<=Math.min(u+t,n-1);i++)i>=0&&(o.push(u),a.push(i));return[S.fromData(new Int32Array(o),[o.length],"int32"),S.fromData(new Int32Array(a),[a.length],"int32")]}function Oy(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return Ju(e[0],t,e[1])}function Xu(r,t=0,e){let n=e??r,o=[],a=[];for(let u=0;u<r;u++)for(let i=Math.max(u+t,0);i<n;i++)o.push(u),a.push(i);return[S.fromData(new Int32Array(o),[o.length],"int32"),S.fromData(new Int32Array(a),[a.length],"int32")]}function Uy(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return Xu(e[0],t,e[1])}function $y(r,t,e=0){let n=t(r,e),o=n.shape;if(o.length!==2||o[0]!==r||o[1]!==r)throw new Error("mask_func must return n x n array");let a=[],u=[];for(let i=0;i<r;i++)for(let s=0;s<r;s++)n.get(i,s)&&(a.push(i),u.push(s));return[S.fromData(new Int32Array(a),[a.length],"int32"),S.fromData(new Int32Array(u),[u.length],"int32")]}function ky(r,t="int32"){let e=r.length,n=[e,...r],o=n.reduce((s,c)=>s*c,1),a=K(t);if(!a)throw new Error(`Cannot create indices with dtype ${t}`);let u=new a(o),i=r.reduce((s,c)=>s*c,1);for(let s=0;s<e;s++){let c=s*i;for(let l=0;l<i;l++){let f=new Array(e),m=l;for(let y=e-1;y>=0;y--)f[y]=m%r[y],m=Math.floor(m/r[y]);let p=f[s];t==="int64"?u[c+l]=BigInt(p):u[c+l]=p}}return S.fromData(u,n,t)}function Ry(...r){let t=r.length,e=[];for(let n=0;n<t;n++){let o=r[n],a=o.size,u=o.dtype,i=new Array(t).fill(1);i[n]=a;let s=K(u);if(!s)throw new Error(`Cannot create ix_ with dtype ${u}`);let c=new s(a);for(let l=0;l<a;l++){let f=o.iget(l);E(u),c[l]=f}e.push(S.fromData(c,i,u))}return e}function qy(r,t,e="raise"){if(r.length!==t.length)throw new Error("multi_index length must equal dims length");if(r.length===0)throw new Error("multi_index cannot be empty");let n=r[0].size,o=t.length,a=new Int32Array(n),u=new Array(o),i=1;for(let s=o-1;s>=0;s--)u[s]=i,i*=t[s];for(let s=0;s<n;s++){let c=0;for(let l=0;l<o;l++){let f=Number(r[l].iget(s)),m=t[l];if(e==="wrap")f=(f%m+m)%m;else if(e==="clip")f=Math.max(0,Math.min(f,m-1));else if(f<0||f>=m)throw new Error(`index ${f} is out of bounds for axis ${l} with size ${m}`);c+=f*u[l]}a[s]=c}return S.fromData(a,[n],"int32")}function Vy(r,t,e="C"){let n=t.length,o,a;if(typeof r=="number")o=[r],a=[];else{o=[];for(let l=0;l<r.size;l++)o.push(Number(r.iget(l)));a=Array.from(r.shape)}let u=o.length,i=t.reduce((l,f)=>l*f,1),s=new Array(n);if(e==="C"){let l=1;for(let f=n-1;f>=0;f--)s[f]=l,l*=t[f]}else{let l=1;for(let f=0;f<n;f++)s[f]=l,l*=t[f]}let c=[];for(let l=0;l<n;l++){let f=new Int32Array(u);c.push(S.fromData(f,a.length?a:[1],"int32"))}for(let l=0;l<u;l++){let f=o[l];if(f<0||f>=i)throw new Error(`index ${f} is out of bounds for array with size ${i}`);if(e==="C")for(let m=0;m<n;m++){let p=Math.floor(f/s[m]);f=f%s[m],c[m].data[l]=p%t[m]}else for(let m=n-1;m>=0;m--){let p=Math.floor(f/s[m]);f=f%s[m],c[m].data[l]=p%t[m]}}return typeof r=="number"?c.map(l=>{let f=l.iget(0);return S.fromData(new Int32Array([Number(f)]),[],"int32")}):c}function Py(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 f=c;f<o;f++)l*=n[f];a+=l}}let u=r.size,i=Math.min(...n);e&&o===2&&(i=Math.max(n[0],n[1]));let s=r.isCContiguous;if(typeof t=="number")if(s){let c=r.data,l=r.offset;if(E(r.dtype)){let f=c,m=BigInt(Math.round(t));for(let p=0;p<i;p++){let y=p*a;if(y>=u)break;f[l+y]=m}}else for(let f=0;f<i;f++){let m=f*a;if(m>=u)break;c[l+m]=t}}else for(let c=0;c<i&&c*a<u;c++)r.iset(c*a,t);else{let c=t.size;if(s&&t.isCContiguous){let l=r.data,f=r.offset,m=t.data,p=t.offset;if(E(r.dtype)){let y=l,d=m;for(let b=0;b<i;b++){let A=b*a;if(A>=u)break;y[f+A]=d[p+b%c]}}else{let y=l,d=m;for(let b=0;b<i;b++){let A=b*a;if(A>=u)break;y[f+A]=d[p+b%c]}}}else for(let l=0;l<i&&l*a<u;l++)r.iset(l*a,t.iget(l%c))}}function jy(r,t,e){let n=Array.from(r.shape),o=n.length;if(t<0&&(t+=o),t<0||t>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let a=[];for(let u=0;u<o;u++)u!==t&&a.push(n[u]);if(a.length===0){let u=e(r);if(typeof u=="number"){let i=S.zeros([1],r.dtype);return i.data[0]=u,i}return u}if(o===2){let[u,i]=n;if(t===0){let s=[];for(let l=0;l<i;l++){let f=new Float64Array(u);for(let p=0;p<u;p++)f[p]=Number(r.get(p,l));let m=S.fromData(f,[u],"float64");s.push(e(m))}let c=s[0];if(c===void 0)return S.zeros([0],"float64");if(typeof c=="number"){let l=S.zeros([i],"float64");for(let f=0;f<i;f++)l.data[f]=s[f];return l}else{let l=[c.size,i],f=S.zeros(l,"float64");for(let m=0;m<i;m++){let p=s[m];for(let y=0;y<p.size;y++)f.data[y*i+m]=Number(p.iget(y))}return f}}else{let s=[];for(let l=0;l<u;l++){let f=new Float64Array(i);for(let p=0;p<i;p++)f[p]=Number(r.get(l,p));let m=S.fromData(f,[i],"float64");s.push(e(m))}let c=s[0];if(c===void 0)return S.zeros([0],"float64");if(typeof c=="number"){let l=S.zeros([u],"float64");for(let f=0;f<u;f++)l.data[f]=s[f];return l}else{let l=[u,c.size],f=S.zeros(l,"float64");for(let m=0;m<u;m++){let p=s[m];for(let y=0;y<p.size;y++)f.data[m*p.size+y]=Number(p.iget(y))}return f}}}if(o===1){let u=e(r);if(typeof u=="number"){let i=S.zeros([1],"float64");return i.data[0]=u,i}return u}throw new Error(`apply_along_axis not fully implemented for ${o}D arrays. Only 1D and 2D arrays are supported.`)}function Ly(r,t,e){let n=r,o=r.shape.length;for(let a of e){let u=a<0?a+o:a;if(u<0||u>=o)throw new Error(`axis ${a} is out of bounds for array of dimension ${o}`);if(n=t(n,u),n.shape.length<o){let i=Array.from(n.shape);i.splice(u,0,1);let s=lr(i);n=new S(n.data,i,s,0,n.dtype)}}return n}function Ku(r,t){return r.data.buffer===t.data.buffer}function Gy(r,t){return Ku(r,t)}var Pr={divide:"warn",over:"warn",under:"ignore",invalid:"warn"};function Qu(){return{...Pr}}function Yy(r,t,e,n,o){let a=Qu();return r!==void 0&&(Pr.divide=r,Pr.over=r,Pr.under=r,Pr.invalid=r),t!==void 0&&(Pr.divide=t),e!==void 0&&(Pr.over=e),n!==void 0&&(Pr.under=n),o!==void 0&&(Pr.invalid=o),a}function ao(r,t){return Nr(Wu(z(r),t),r)}function za(...r){let t=r.map(z);return Cy(t).map(e=>M(e))}function _a(...r){if(r.length===0)return[];if(r.length===1)return[...r[0]];let t=[...r[0]];for(let e=1;e<r.length;e++){let n=r[e],o=Math.max(t.length,n.length),a=[];for(let u=0;u<o;u++){let i=u<t.length?t[t.length-1-u]:1,s=u<n.length?n[n.length-1-u]:1;if(i===s)a.unshift(i);else if(i===1)a.unshift(s);else if(s===1)a.unshift(i);else throw new Error(`Cannot broadcast shapes: dimensions ${i} and ${s} are incompatible`)}t=a}return t}function It(r,t,e){return M(Sy(z(r),t,e))}function zt(r,t,e){let n=Array.isArray(e)?z(Q(e)):z(e);wy(z(r),t,n)}function Hu(r,t,e){return M(_y(z(r),z(t),e))}function va(r,t,e,n){vy(z(r),z(t),z(e),n)}function so(r,t){let e=t.map(z);return M(Iy(z(r),e))}function nt(r,t,e){return M(Fy(z(r),z(t),e))}function rc(r,t,e=0){let n;return t instanceof P?n=Array.from(t.data):Array.isArray(t[0])?n=t.flat():n=t,It(r,n,e)}function tc(r,t,e){return nt(t,r,e)}function ec(r,t,e=0){let n=r.map(z),o=t.map(z);return M(By(n,o,e))}function Ma(r,t,e){Ty(z(r),z(t),z(e))}function Fa(r,t,e){My(z(r),z(t),z(e))}function Ba(r,t){let e=z(r),n=r.shape,o=r.size,a=r.dtype;if(typeof t=="number"||typeof t=="bigint"){r.fill(t);return}let u=z(t),i=t.shape,s=qr([i,n]);if(!s)throw new Error(`could not broadcast input array from shape (${i.join(",")}) into shape (${n.join(",")})`);if(s.length!==n.length||!s.every((l,f)=>l===n[f]))throw new Error(`could not broadcast input array from shape (${i.join(",")}) into shape (${n.join(",")})`);let c=Wu(u,n);if(E(a))for(let l=0;l<o;l++){let f=c.iget(l),m=typeof f=="bigint"?f:BigInt(Math.round(Number(f)));e.iset(l,m)}else if(a==="bool")for(let l=0;l<o;l++){let f=c.iget(l);e.iset(l,f?1:0)}else for(let l=0;l<o;l++){let f=c.iget(l);e.iset(l,Number(f))}}function nc(r,t="int32"){return M(ky(r,t))}function Ta(...r){let t=r.map(z);return Ry(...t).map(e=>M(e))}function oc(r,t,e="raise"){let n=r.map(z);return M(qy(n,t,e))}function ac(r,t){let e=typeof r=="number"?z(Q([r])):z(r);return Vy(e,t).map(n=>M(n))}function sc(r,t=2){return Zu(r,t).map(e=>M(e))}function ic(r){return Ey(z(r)).map(t=>M(t))}function Ea(r,t,e=!1){Py(z(r),t,e)}function uc(r,t=0,e){return Ju(r,t,e).map(n=>M(n))}function cc(r,t=0){return Oy(z(r),t).map(e=>M(e))}function lc(r,t=0,e){return Xu(r,t,e).map(n=>M(n))}function fc(r,t=0){return Uy(z(r),t).map(e=>M(e))}function mc(r,t,e=0){return $y(r,(o,a)=>z(t(o,a)),e).map(o=>M(o))}function Oa(r,t,e=!1){return zy(z(r),z(t),e)}function Ua(r,t){return Dp(z(r),z(t))}function pc(r,t,e){let n=o=>{let a=r(M(o));return typeof a=="number"?a:z(a)};return M(jy(z(e),t,n))}function yc(r,t,e){let n=(o,a)=>z(r(M(o),a));return M(Ly(z(t),n,e))}function $a(r,t){return Ku(z(r),z(t))}function ka(r,t){return Gy(z(r),z(t))}var Ra=Qu,qa=Yy;var ax={threshold:1e3,edgeitems:3,precision:8,linewidth:75,floatmode:"maxprec",suppress:!0,separator:" ",prefix:"",suffix:"",nanstr:"nan",infstr:"inf",sign:"-",legacy:!1},cr={...ax};function Wy(r){cr={...cr,...r}}function Zy(){return{...cr}}function Jy(r){let t=null,e={_savedOptions:null,enter(){t={...cr},e._savedOptions=t,cr={...cr,...r}},exit(){t&&(cr=t,t=null,e._savedOptions=null)},apply(n){e.enter();try{return n()}finally{e.exit()}}};return e}function dc(r,t=null,e=!0,n=!0,o="k",a="-",u=null,i=null,s=null){let c=t??cr.precision;if(!Number.isFinite(r))return Number.isNaN(r)?cr.nanstr:(r>0?"":"-")+cr.infstr;let l;if(e&&t===null?(l=r.toString(),n&&!l.includes(".")&&!l.includes("e")&&(l+=".0")):l=r.toFixed(c),s!==null){let f=l.indexOf(".");if(f!==-1){let m=l.length-f-1;m<s&&(l+="0".repeat(s-m))}else n&&(l+="."+"0".repeat(s))}if(o!=="k"&&l.includes(".")){if(o==="-"||o==="0"){let f=l.length;for(;f>0&&l[f-1]==="0";)f--;l=l.slice(0,f)}(o==="-"||o===".")&&l.endsWith(".")&&(l=l.slice(0,-1))}if(r>=0&&!Object.is(r,-0)&&(a==="+"?l="+"+l:a===" "&&(l=" "+l)),u!==null&&l.length<u&&(l=" ".repeat(u-l.length)+l),i!==null){let f=l.indexOf(".");if(f!==-1){let m=l.length-f-1;m<i&&(l+="0".repeat(i-m))}}return l}function Xy(r,t=null,e=!0,n="k",o="-",a=null,u=2,i=null){let s=t??cr.precision;if(!Number.isFinite(r))return Number.isNaN(r)?cr.nanstr:(r>0?"":"-")+cr.infstr;let c=r.toExponential(s);if(i!==null){let d=c.indexOf("e"),b=c.slice(0,d),A=c.slice(d),g=b.indexOf(".");if(g!==-1){let h=b.length-g-1;h<i&&(c=b+"0".repeat(i-h)+A)}}if(n!=="k"){let d=c.indexOf("e"),b=c.slice(0,d),A=c.slice(d);b.includes(".")&&((n==="-"||n==="0")&&(b=b.replace(/0+$/,"")),(n==="-"||n===".")&&(b=b.replace(/\.$/,""))),c=b+A}let l=c.indexOf("e"),f=c.slice(0,l),m=c.slice(l+1),p=m[0]==="-"?"-":"+",y=m.replace(/^[+-]/,"");for(;y.length<u;)y="0"+y;return c=f+"e"+p+y,r>=0&&!Object.is(r,-0)&&(o==="+"?c="+"+c:o===" "&&(c=" "+c)),a!==null&&c.length<a&&(c=" ".repeat(a-c.length)+c),c}function Ky(r,t=2,e=0){if(t<2||t>36)throw new Error("base must be between 2 and 36");r=Math.trunc(r);let n;if(r<0?n="-"+Math.abs(r).toString(t).toUpperCase():n=r.toString(t).toUpperCase(),e>0){let o="0".repeat(e);n.startsWith("-")?n="-"+o+n.slice(1):n=o+n}return n}function Qy(r,t=null){if(r=Math.trunc(r),t!==null&&r<0){if(r=Math.pow(2,t)+r,r<0)throw new Error("width too small for negative number");let o=r.toString(2);return o.length<t&&(o="0".repeat(t-o.length)+o),o}let e;return r<0?e="-"+Math.abs(r).toString(2):e=r.toString(2),t!==null&&e.length<t&&(e="0".repeat(t-e.length)+e),e}function Pa(r,t,e){if(r instanceof U){let n=Pa(r.re,"float64",e),o=Pa(Math.abs(r.im),"float64",e),a=r.im>=0?"+":"-";return`${n}${a}${o}j`}return typeof r=="boolean"?r?" True":"False":typeof r=="bigint"?r.toString():Number.isFinite(r)?t==="float32"||t==="float64"?e.suppress&&Math.abs(r)<1e-10&&r!==0?"0.":dc(r,e.precision,!1,!0,"k",e.sign):r.toString():Number.isNaN(r)?e.nanstr:(r>0?"":"-")+e.infstr}function Va(r,t,e,n){let o=r.shape,a=o.length;if(e===a){let p=0,y=r.strides;for(let b=0;b<a;b++)p+=t[b]*y[b];let d=r.iget(p);return Pa(d,r.dtype,n)}let u=o[e],i=n.threshold,s=n.edgeitems,l=o.reduce((p,y)=>p*y,1)>i&&u>2*s,f=[],m=[...t];if(l){for(let p=0;p<s;p++)m[e]=p,f.push(Va(r,m,e+1,n));f.push("...");for(let p=u-s;p<u;p++)m[e]=p,f.push(Va(r,m,e+1,n))}else for(let p=0;p<u;p++)m[e]=p,f.push(Va(r,m,e+1,n));if(e===a-1)return"["+f.join(n.separator)+"]";{let y=`,
|
|
3
|
+
`+" ".repeat(e+1);return"["+f.join(y)+"]"}}function ja(r,t=null,e=null,n=null,o=" ",a="",u="",i=null,s=null){let c={...cr,linewidth:t??cr.linewidth,precision:e??cr.precision,suppress:n??cr.suppress,separator:o,prefix:a,suffix:u,threshold:i??cr.threshold,edgeitems:s??cr.edgeitems};if(r.ndim===0){let f=r.iget(0);return Pa(f,r.dtype,c)}let l=Va(r,new Array(r.ndim).fill(0),0,c);return c.prefix+l+c.suffix}function Hy(r,t=null,e=null,n=null){let a="array("+ja(r,t,e,n,", ");return r.dtype!=="float64"&&(a+=`, dtype='${r.dtype}'`),a+=")",a}function rd(r,t=null,e=null,n=null){return ja(r,t,e,n)}var La=Wy,Ga=Zy,Ya=Jy,Wa=dc,Za=Xy,Ja=Ky,Xa=Qy;function Ka(r,t){return ja(z(r),t?.max_line_width??null,t?.precision??null,t?.suppress_small??null,t?.separator??" ",t?.prefix??"",t?.suffix??"",t?.threshold??null,t?.edgeitems??null)}function Qa(r,t,e,n){return Hy(z(r),t,e,n)}function Ha(r,t,e){return rd(z(r),t,e)}function rs(r){if(r instanceof P)return r.ndim;if(typeof r=="number"||typeof r=="bigint"||typeof r=="boolean")return 0;if(Array.isArray(r)){let t=0,e=r;for(;Array.isArray(e)&&e.length>0;)t++,e=e[0];return t}return 0}function io(r){if(r instanceof P)return r.shape;if(typeof r=="number"||typeof r=="bigint"||typeof r=="boolean")return[];if(Array.isArray(r)){let t=[],e=r;for(;Array.isArray(e)&&e.length>0;)t.push(e.length),e=e[0];return t}return[]}function ts(r){return r instanceof P?r.size:typeof r=="number"||typeof r=="bigint"||typeof r=="boolean"?1:Array.isArray(r)?io(r).reduce((e,n)=>e*n,1):1}function es(r,...t){let e=r.storage,n=r.shape;if(t.length===0){if(r.size!==1)throw new Error("can only convert an array of size 1 to a scalar");return e.isCContiguous?e.data[e.offset]:e.iget(0)}if(t.length===1)return e.isCContiguous?e.data[e.offset+t[0]]:e.iget(t[0]);if(t.length!==n.length)throw new Error("incorrect number of indices for array");return e.get(...t)}function ns(r){let t=r.shape,e=r.storage,n=t.length;if(n===0)return e.iget(0);if(e.isCContiguous){let l=function(f,m){let p=t[m],y=s[m];if(m===n-1){let b=new Array(p);for(let A=0;A<p;A++)b[A]=u[i+f+A];return b}let d=new Array(p);for(let b=0;b<p;b++)d[b]=l(f+b*y,m+1);return d};var a=l;let u=e.data,i=e.offset;if(n===1){let f=t[0],m=new Array(f);for(let p=0;p<f;p++)m[p]=u[i+p];return m}let s=new Array(n),c=1;for(let f=n-1;f>=0;f--)s[f]=c,c*=t[f];return l(0,0)}if(n===1){let u=[];for(let i=0;i<t[0];i++)u.push(e.iget(i));return u}function o(u,i){if(i===n)return e.get(...u);let s=[];for(let c=0;c<t[i];c++)u[i]=c,s.push(o(u,i+1));return s}return o(new Array(n),0)}function os(r,t="C"){let e=r.storage;t==="F"&&console.warn('tobytes with order="F" not fully implemented, returning C-order');let n=e.data,o=n.BYTES_PER_ELEMENT;if(e.isCContiguous){let i=n.byteOffset+e.offset*o,s=r.size*o;return new Uint8Array(n.buffer,i,s)}let u=r.copy().data;return new Uint8Array(u.buffer,u.byteOffset,r.size*o)}function as(r,t=!1){let n=r.data.BYTES_PER_ELEMENT;if(n===1)return t?r:r.copy();let o=t?r:r.copy(),a=o.data,u=new Uint8Array(a.buffer,a.byteOffset,a.byteLength);for(let i=0;i<a.length;i++){let s=i*n;for(let c=0;c<n/2;c++){let l=u[s+c];u[s+c]=u[s+n-1-c],u[s+n-1-c]=l}}return o}function ss(r,t){if(!t||t===r.dtype)return r.copy();throw new Error("view with different dtype not fully implemented")}function is(r,t,e="",n=""){throw new Error("tofile requires Node.js file system access. Use serializeNpy for portable serialization.")}function us(r,t){let e=r.storage,n=r.dtype,o=r.size;if(t instanceof U){if(!(n==="complex64"||n==="complex128"))throw new Error("Cannot fill non-complex array with complex value");if(e.isCContiguous){let u=e.data,i=e.offset;for(let s=0;s<o;s++)u[(i+s)*2]=t.re,u[(i+s)*2+1]=t.im}else for(let u=0;u<o;u++)e.iset(u,t)}else if(typeof t=="bigint")if(e.isCContiguous)e.data.fill(t,e.offset,e.offset+o);else for(let a=0;a<o;a++)e.iset(a,t);else{let a=typeof t=="boolean"?t?1:0:t;if(e.isCContiguous)e.data.fill(a,e.offset,e.offset+o);else for(let u=0;u<o;u++)e.iset(u,a)}}function bc(r,t,e){let n=t instanceof P?t:Q(Array.isArray(t)?t:[t]);if(e===void 0){let o=Br(r),a=Br(n);return At([o,a],0)}return At([r,n],e)}function cs(r,t,e){let n=Array.isArray(t)?t:[t],o=[...r.shape],a=r.storage;if(e===void 0){let A=Br(r),g=A.storage,h=[],N=new Set(n.map(D=>D<0?A.size+D:D));for(let D=0;D<A.size;D++)N.has(D)||h.push(g.iget(D));return Q(h,r.dtype)}let u=e<0?o.length+e:e,i=o[u],s=new Set(n.map(A=>A<0?i+A:A)),c=i-s.size,l=[...o];l[u]=c;let f=wr(l,r.dtype),m=f.storage,p=[],y=1;for(let A=o.length-1;A>=0;A--)p.unshift(y),y*=o[A];let d=[];y=1;for(let A=l.length-1;A>=0;A--)d.unshift(y),y*=l[A];let b=o.reduce((A,g)=>A*g,1);for(let A=0;A<b;A++){let g=[],h=A;for(let C=0;C<o.length;C++)g.push(Math.floor(h/p[C])),h=h%p[C];if(s.has(g[u]))continue;let N=0;for(let C of s)C<g[u]&&N++;let D=[...g];D[u]-=N;let x=0;for(let C=0;C<l.length;C++)x+=D[C]*d[C];m.iset(x,a.iget(A))}return f}function Ac(r,t,e,n){let o=Array.isArray(t)?t:[t],a=e instanceof P?e:Q(Array.isArray(e)?e:[e]);if(n===void 0){let u=Br(r),i=Br(a),s=u.data,c=i.data,l=Array.from(s);if(o.length===1){let f=o[0],m=f<0?u.size+f:f,p=Array.from(c);l.splice(m,0,...p)}else{let f=o.map((m,p)=>({idx:m<0?u.size+m:m,valIdx:p})).sort((m,p)=>m.idx-p.idx);for(let m=0;m<f.length;m++){let{idx:p,valIdx:y}=f[m],d=c[y%c.length];l.splice(p+m,0,d)}}return Q(l,r.dtype)}throw new Error("insert along axis not fully implemented in standalone")}function gc(r,t,e="constant",n=0){let o=[...r.shape],a=o.length,u;typeof t=="number"?u=Array(a).fill([t,t]):Array.isArray(t)&&typeof t[0]=="number"?u=Array(a).fill(t):u=t;let i=o.map((d,b)=>d+u[b][0]+u[b][1]);if(e!=="constant")throw new Error(`pad mode '${e}' not fully implemented in standalone`);let s=wr(i,r.dtype),c=s.storage;if(n!==0)for(let d=0;d<s.size;d++)c.iset(d,n);let l=r.storage,f=[],m=1;for(let d=o.length-1;d>=0;d--)f.unshift(m),m*=o[d];let p=[];m=1;for(let d=i.length-1;d>=0;d--)p.unshift(m),m*=i[d];let y=o.reduce((d,b)=>d*b,1);for(let d=0;d<y;d++){let b=[],A=d;for(let h=0;h<o.length;h++)b.push(Math.floor(A/f[h])),A=A%f[h];let g=0;for(let h=0;h<i.length;h++)g+=(b[h]+u[h][0])*p[h];c.iset(g,l.iget(d))}return s}var Dc=["int8","int16","int32","int64"],xc=["uint8","uint16","uint32","uint64"],ed=[...Dc,...xc],hc=["float32","float64"],Nc=["complex64","complex128"],ix=[...ed,...hc,...Nc],td={bool:0,int8:1,uint8:2,int16:3,uint16:4,int32:5,uint32:6,int64:7,uint64:8,float32:9,float64:10,complex64:11,complex128:12};function uo(r,t,e="safe"){let n=r instanceof P?r.dtype:r;if(e==="no"||e==="equiv")return n===t;if(e==="unsafe")return!0;let o=td[n]??-1,a=td[t]??-1;if(e==="safe"){if(Ur(n)&&Or(t)){let u={int8:8,int16:16,int32:32,int64:64,uint8:8,uint16:16,uint32:32,uint64:64,bool:1,float32:0,float64:0,complex64:0,complex128:0},i={float32:24,float64:53,int8:0,int16:0,int32:0,int64:0,uint8:0,uint16:0,uint32:0,uint64:0,bool:0,complex64:24,complex128:53},s=u[n]??64,c=i[t]??0;return s<=c}return!!(Ur(n)&&B(t)||Or(n)&&B(t)||o<=a)}return e==="same_kind"?!!(Ur(n)&&Ur(t)||Or(n)&&Or(t)||B(n)&&B(t)||n==="bool"&&Ur(t)||n==="bool"&&t==="bool"||Or(n)&&B(t)):!1}function ls(...r){if(r.length===0)return"float64";let t=!1,e=!1;for(let n of r){let o=n.dtype;B(o)?(t=!0,o==="complex128"&&(e=!0)):Or(o)?o==="float64"&&(e=!0):Ur(o)&&(o==="int64"||o==="uint64"||o==="int32"||o==="uint32")&&(e=!0)}return t?e?"complex128":"complex64":e?"float64":"float32"}function fs(...r){if(r.length===0)return"float64";let t=r.map(a=>a instanceof P?a.dtype:a),e=t.some(B),n=t.some(Or),o=t.some(Ur);if(e){let a=t.some(s=>s==="float64"),u=t.some(s=>s==="complex128"),i=t.some(s=>s==="int64"||s==="uint64"||s==="int32"||s==="uint32");return u||a||i?"complex128":"complex64"}if(n){let a=t.some(u=>u==="float64");return o&&(t.some(i=>i==="int32"||i==="uint32"||i==="int64"||i==="uint64")||a)||a?"float64":"float32"}if(o){let a=t.some(c=>Dc.includes(c)),u=t.some(c=>xc.includes(c)),i={bool:8,int8:8,uint8:8,int16:16,uint16:16,int32:32,uint32:32,int64:64,uint64:64,float32:0,float64:0,complex64:0,complex128:0},s=Math.max(...t.map(c=>i[c]??0));return a&&u?s>=32?"int64":s>=16?"int32":"int16":a?s>=64?"int64":s>=32?"int32":s>=16?"int16":"int8":s>=64?"uint64":s>=32?"uint32":s>=16?"uint16":"uint8"}return"bool"}function ms(r){return typeof r=="boolean"?"bool":typeof r=="bigint"?r>=0n?r<=255n?"uint8":r<=65535n?"uint16":r<=4294967295n?"uint32":"uint64":r>=-128n&&r<=127n?"int8":r>=-32768n&&r<=32767n?"int16":r>=-2147483648n&&r<=2147483647n?"int32":"int64":Number.isInteger(r)?r>=0?r<=255?"uint8":r<=65535?"uint16":r<=4294967295?"uint32":"int64":r>=-128&&r<=127?"int8":r>=-32768&&r<=32767?"int16":r>=-2147483648&&r<=2147483647?"int32":"int64":"float64"}function ps(r,t){let e=r instanceof P?r.dtype:r;if(typeof t=="string")switch(t){case"number":case"numeric":return ix.includes(e);case"integer":case"int":return ed.includes(e);case"signedinteger":return Dc.includes(e);case"unsignedinteger":return xc.includes(e);case"floating":case"float":return hc.includes(e);case"complexfloating":case"complex":return Nc.includes(e);case"inexact":return hc.includes(e)||Nc.includes(e);default:return e===t}return e===t}function ys(r){return r}function ds(r,t="GDFgdf",e="d"){let n={b:"int8",B:"uint8",h:"int16",H:"uint16",i:"int32",I:"uint32",l:"int64",L:"uint64",f:"float32",d:"float64",F:"complex64",D:"complex128",g:"float64",G:"complex128"},o={b:0,B:1,h:2,H:3,i:4,I:5,l:6,L:7,f:8,g:9.1,d:9,F:10,G:11.1,D:11};if(r.length===0)return e;let a=[];for(let s of r){let c=n[s];c&&a.push(c)}if(a.length===0)return e;let u=e,i=1/0;for(let s of t){let c=n[s];if(!c)continue;let l=o[s]??1/0,f=!0;for(let m of a)if(!uo(m,c,"safe")){f=!1;break}f&&l<i&&(i=l,u=s)}return u}function Sr(r){return r instanceof P?r:Q(r)}function Cc(r){let t=Sr(r),e=t.data,n=t.size;if(n===0)return Q([1]);let o=[1];for(let a=0;a<n;a++){let u=e[a],i=new Array(o.length+1).fill(0);for(let s=0;s<o.length;s++)i[s]+=o[s],i[s+1]-=o[s]*u;o=i}return Q(o)}function Sc(r,t){let e=Sr(r),n=Sr(t),o=e.data,a=n.data,u=Math.max(e.size,n.size),i=new Array(u).fill(0);for(let c=0;c<e.size;c++)i[u-e.size+c]+=o[c];for(let c=0;c<n.size;c++)i[u-n.size+c]+=a[c];let s=0;for(;s<i.length-1&&i[s]===0;)s++;return Q(i.slice(s))}function wc(r,t=1){let e=Sr(r);for(let n=0;n<t;n++){let o=e.data,a=e.size;if(a<=1)return Q([0]);let u=[];for(let i=0;i<a-1;i++){let s=a-1-i;u.push(o[i]*s)}e=Q(u)}return e}function Ic(r,t){let e=[...Sr(r).data],n=[...Sr(t).data];if(n.length===0||n.length===1&&n[0]===0)throw new Error("Division by zero polynomial");for(;e.length>1&&e[0]===0;)e.shift();for(;n.length>1&&n[0]===0;)n.shift();if(e.length<n.length)return[Q([0]),Q(e)];let o=[],a=[...e];for(;a.length>=n.length;){let u=a[0]/n[0];o.push(u);for(let i=0;i<n.length;i++)a[i]-=u*n[i];a.shift()}for(;a.length>1&&Math.abs(a[0])<1e-15;)a.shift();return[Q(o.length>0?o:[0]),Q(a.length>0?a:[0])]}function zc(r,t,e){let n=r.data,o=t.data,a=r.size;if(e>=a)throw new Error("polyfit: degree must be less than number of points");let u=[];for(let m=0;m<a;m++){let p=[];for(let y=e;y>=0;y--)p.push(Math.pow(n[m],y));u.push(p)}let i=[],s=[];for(let m=0;m<=e;m++){i.push([]);for(let y=0;y<=e;y++){let d=0;for(let b=0;b<a;b++)d+=u[b][m]*u[b][y];i[m].push(d)}let p=0;for(let y=0;y<a;y++)p+=u[y][m]*o[y];s.push(p)}let c=e+1,l=i.map((m,p)=>[...m,s[p]]);for(let m=0;m<c;m++){let p=m;for(let y=m+1;y<c;y++)Math.abs(l[y][m])>Math.abs(l[p][m])&&(p=y);[l[m],l[p]]=[l[p],l[m]];for(let y=m+1;y<c;y++){let d=l[y][m]/l[m][m];for(let b=m;b<=c;b++)l[y][b]-=d*l[m][b]}}let f=new Array(c).fill(0);for(let m=c-1;m>=0;m--){let p=l[m][c];for(let y=m+1;y<c;y++)p-=l[m][y]*f[y];f[m]=p/l[m][m]}return Q(f)}function _c(r,t=1,e=0){let n=Sr(r),o=Array.isArray(e)?e:[e];for(let a=0;a<t;a++){let u=n.data,i=n.size,s=[];for(let l=0;l<i;l++){let f=i-l;s.push(u[l]/f)}let c=a<o.length?o[a]:0;s.push(c),n=Q(s)}return n}function vc(r,t){let e=Sr(r),n=Sr(t),o=e.data,a=n.data,u=e.size+n.size-1,i=new Array(u).fill(0);for(let s=0;s<e.size;s++)for(let c=0;c<n.size;c++)i[s+c]+=o[s]*a[c];return Q(i)}function Mc(r,t){let e=Sr(r),n=Sr(t),o=e.data,a=n.data,u=Math.max(e.size,n.size),i=new Array(u).fill(0);for(let c=0;c<e.size;c++)i[u-e.size+c]+=o[c];for(let c=0;c<n.size;c++)i[u-n.size+c]-=a[c];let s=0;for(;s<i.length-1&&i[s]===0;)s++;return Q(i.slice(s))}function Fc(r,t){let e=Sr(r),n=e.data;if(typeof t=="number"){let i=n[0];for(let s=1;s<e.size;s++)i=i*t+n[s];return i}let o=t instanceof P?t:Q(t),a=o.data,u=[];for(let i=0;i<o.size;i++){let s=a[i],c=n[0];for(let l=1;l<e.size;l++)c=c*s+n[l];u.push(c)}return Q(u)}function Bc(r){let e=[...Sr(r).data];for(;e.length>1&&e[0]===0;)e.shift();let n=0;for(;e.length>1&&e[e.length-1]===0;)e.pop(),n++;let o=e.length-1;if(o+n===0)return nd([],[]);let u=[],i=[];if(o===1)u.push(-e[1]/e[0]),i.push(0);else if(o===2){let f=e[0],m=e[1],p=e[2],y=m*m-4*f*p;if(y>=0){let d=Math.sqrt(y);u.push((-m+d)/(2*f),(-m-d)/(2*f)),i.push(0,0)}else{let d=Math.sqrt(-y);u.push(-m/(2*f),-m/(2*f)),i.push(d/(2*f),-d/(2*f))}}else if(o>=3){let f=ux(e,o);for(let m of f)u.push(m.re),i.push(m.im)}for(let f=0;f<n;f++)u.push(0),i.push(0);let s=u.map((f,m)=>m);s.sort((f,m)=>{let p=Math.sqrt(u[f]**2+i[f]**2),y=Math.sqrt(u[m]**2+i[m]**2);return Math.abs(p-y)>1e-10?y-p:Math.abs(u[f]-u[m])>1e-10?u[m]-u[f]:i[m]-i[f]});let c=s.map(f=>u[f]),l=s.map(f=>i[f]);return nd(c,l)}function nd(r,t){let e=r.length,n=new Float64Array(2*e);for(let a=0;a<e;a++)n[2*a]=r[a],n[2*a+1]=t[a];let o=S.fromData(n,[e],"complex128");return new P(o)}function ux(r,t){let e=Array.from({length:t},()=>new Array(t).fill(0)),n=r[0];for(let o=0;o<t;o++)e[0][o]=-r[o+1]/n;for(let o=1;o<t;o++)e[o][o-1]=1;return cx(e,t)}function cx(r,t){let e=[],o=t,a=0,u=100*t,i=t,s=0;for(;o>0&&a<u;){if(a++,o===i?s++:(s=0,i=o),o===1){e.push({re:r[0][0],im:0}),o=0;break}if(o===2){e.push(...od(r[0][0],r[0][1],r[1][0],r[1][1])),o=0;break}let c=o-1;for(;c>0;){let y=Math.abs(r[c-1][c-1])+Math.abs(r[c][c]),d=222e-18*(y===0?1:y);if(Math.abs(r[c][c-1])<=d){r[c][c-1]=0;break}c--}let l=o-c;if(l===1){e.push({re:r[o-1][o-1],im:0}),o--;continue}if(l===2){e.push(...od(r[o-2][o-2],r[o-2][o-1],r[o-1][o-2],r[o-1][o-1])),o-=2;continue}let f;if(s>0&&s%10===0)f=Math.abs(r[o-1][o-2])+Math.abs(r[o-2][o-3]);else{let y=r[o-2][o-2],d=r[o-2][o-1],b=r[o-1][o-2],A=r[o-1][o-1],g=y+A,h=y*A-d*b,N=g*g-4*h;if(N>=0){let D=Math.sqrt(N),x=(g+D)/2,C=(g-D)/2;f=Math.abs(x-A)<Math.abs(C-A)?x:C}else f=A}for(let y=c;y<o;y++)r[y][y]=r[y][y]-f;let m=[],p=[];for(let y=c;y<o-1;y++){let d=Math.hypot(r[y][y],r[y+1][y]),b=d===0?1:r[y][y]/d,A=d===0?0:r[y+1][y]/d;m.push(b),p.push(A);for(let g=y;g<o;g++){let h=r[y][g],N=r[y+1][g];r[y][g]=b*h+A*N,r[y+1][g]=-A*h+b*N}}for(let y=0;y<m.length;y++){let d=c+y,b=m[y],A=p[y],g=Math.min(d+2,o-1);for(let h=c;h<=g;h++){let N=r[h][d],D=r[h][d+1];r[h][d]=b*N+A*D,r[h][d+1]=-A*N+b*D}}for(let y=c;y<o;y++)r[y][y]=r[y][y]+f}if(o>0)for(let c=0;c<o;c++)e.push({re:r[c][c],im:0});return e}function od(r,t,e,n){let o=r+n,a=r*n-t*e,u=o*o-4*a;if(u>=0){let i=Math.sqrt(u);return[{re:(o+i)/2,im:0},{re:(o-i)/2,im:0}]}else{let i=Math.sqrt(-u);return[{re:o/2,im:i/2},{re:o/2,im:-i/2}]}}var co=new Uint8Array([147,78,85,77,80,89]),Tc=["float64","float32","complex128","complex64","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"];function Ec(){let r=new ArrayBuffer(2);return new DataView(r).setInt16(0,256,!0),new Int16Array(r)[0]===256}var lx={f8:"float64",f4:"float32",c16:"complex128",c8:"complex64",i8:"int64",i4:"int32",i2:"int16",i1:"int8",u8:"uint64",u4:"uint32",u2:"uint16",u1:"uint8",b1:"bool"},bs={float64:"<f8",float32:"<f4",complex128:"<c16",complex64:"<c8",int64:"<i8",int32:"<i4",int16:"<i2",int8:"|i1",uint64:"<u8",uint32:"<u4",uint16:"<u2",uint8:"|u1",bool:"|b1"},ad={S:"byte strings",U:"Unicode strings",O:"Python objects",V:"structured arrays (void)",M:"datetime64",m:"timedelta64"};function sd(r){if(r.startsWith("[")||r.startsWith("("))throw new jr(`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 ad)throw new jr(`Unsupported dtype: ${ad[n]} (${r}). Use the 'force' parameter to skip arrays with unsupported dtypes.`);let o=lx[e];if(!o)throw new jr(`Unknown or unsupported dtype descriptor: ${r}. Supported types: ${Tc.join(", ")}. Use the 'force' parameter to skip arrays with unsupported dtypes.`);let a=Ec(),u=t==="<"||t==="|"||t==="="&&a,i=t===">"||t==="="&&!a,s=parseInt(e.slice(1),10),c=s>1&&(i&&a||u&&!a);return{dtype:o,needsByteSwap:c,itemsize:s}}var jr=class extends Error{constructor(t){super(t),this.name="UnsupportedDTypeError"}},hr=class extends Error{constructor(t){super(t),this.name="InvalidNpyError"}};function As(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=Oc(t);return Uc(t,e)}function Oc(r){if(r.length<10)throw new hr("File too small to be a valid NPY file");for(let c=0;c<co.length;c++)if(r[c]!==co[c])throw new hr("Invalid NPY magic number");let t=r[6],e=r[7];if(t!==1&&t!==2&&t!==3)throw new hr(`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 hr("File truncated: header extends beyond file");let u=r.slice(o,a),i=new TextDecoder("utf-8").decode(u).trim(),s=fx(i);return{version:{major:t,minor:e},header:s,dataOffset:a}}function Uc(r,t){let{header:e,dataOffset:n}=t,{dtype:o,needsByteSwap:a,itemsize:u}=sd(e.descr),i=e.shape.reduce((d,b)=>d*b,1),s=i*u,c=r.length-n;if(c<s)throw new hr(`File truncated: expected ${s} bytes of data, got ${c}`);let l=new ArrayBuffer(s);new Uint8Array(l).set(r.subarray(n,n+s));let m=mx(l,o,i,a,u),p=e.shape,y;if(e.fortran_order&&p.length>1){let d=[...p].reverse(),b=S.fromData(m,d,o);y=px(b,d),p=e.shape}else y=S.fromData(m,[...p],o);return new P(y)}function fx(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 hr(`Failed to parse NPY header: ${r}`);let o=t[1],a=e[1]==="True",u=n[1].trim(),i;return u===""?i=[]:i=u.split(",").map(s=>s.trim()).filter(s=>s!=="").map(s=>{let c=parseInt(s,10);if(isNaN(c))throw new hr(`Invalid shape value: ${s}`);return c}),{descr:o,fortran_order:a,shape:i}}function mx(r,t,e,n,o){let a=K(t);if(!a)throw new hr(`Cannot create array for dtype: ${t}`);let u=B(t),i=u?e*2:e;if(!n)return new a(r,0,i);let s=new Uint8Array(r),c=new Uint8Array(r.byteLength);if(u){let l=o/2;for(let f=0;f<e*2;f++){let m=f*l;for(let p=0;p<l;p++)c[m+p]=s[m+l-1-p]}}else for(let l=0;l<e;l++){let f=l*o;for(let m=0;m<o;m++)c[f+m]=s[f+o-1-m]}return new a(c.buffer,0,i)}function px(r,t){let e=t.length,n=r.size,o=r.dtype,a=K(o);if(!a)throw new hr(`Cannot create array for dtype: ${o}`);let u=new a(n),i=[...t].reverse(),s=id(t),c=id(i),l=new Array(e).fill(0);for(let f=0;f<n;f++){let m=f;for(let y=0;y<e;y++){let d=s[y];l[y]=Math.floor(m/d),m=m%d}let p=0;for(let y=0;y<e;y++)p+=l[e-1-y]*c[y];E(o),u[p]=r.iget(f)}return S.fromData(u,i,o)}function id(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 lo(r){let t=r.shape,e=r.dtype,n=bs[e],o=t.length===0?"()":t.length===1?`(${t[0]},)`:`(${t.join(", ")})`,a=`{'descr': '${n}', 'fortran_order': False, 'shape': ${o}, }`,u=12,s=(64-(u+a.length+1)%64)%64;a=a+" ".repeat(s)+`
|
|
4
|
+
`;let c=new TextEncoder().encode(a),l=c.length,f=r.size,m=Gr(e),p=f*m,y=u+l+p,d=new Uint8Array(y);d.set(co,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,u);let b=u+l;return yx(r,d.subarray(b),m),d}function yx(r,t,e){let n=r.dtype,o=r.size,a=Ec(),u=E(n),i=B(n),s=r.storage;if(s.isCContiguous&&s.offset===0&&a){let l=s.data,f=new Uint8Array(l.buffer,l.byteOffset,o*e);t.set(f)}else{let l=new DataView(t.buffer,t.byteOffset,t.byteLength);for(let f=0;f<o;f++){let m=s.iget(f),p=f*e;u?dx(l,p,m,n==="uint64"):i?bx(l,p,m,n):Ax(l,p,m,n)}}}function dx(r,t,e,n){n?r.setBigUint64(t,e,!0):r.setBigInt64(t,e,!0)}function bx(r,t,e,n){n==="complex128"?(r.setFloat64(t,e.re,!0),r.setFloat64(t+8,e.im,!0)):(r.setFloat32(t,e.re,!0),r.setFloat32(t+4,e.im,!0))}function Ax(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 gx=(()=>{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 $c(r){let t=4294967295;for(let e=0;e<r.length;e++)t=gx[(t^r[e])&255]^t>>>8;return(t^4294967295)>>>0}async function ld(r){let t=md(r),e=new Map;for(let n of t){let o=await hx(n);e.set(n.name,o)}return e}function fd(r){let t=md(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 md(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=new DataView(t.buffer,t.byteOffset,t.byteLength),n=[],o=-1;for(let c=t.length-22;c>=0;c--)if(e.getUint32(c,!0)===101010256){o=c;break}if(o===-1)throw new Error("Invalid ZIP file: end of central directory not found");let a=e.getUint32(o+16,!0),u=e.getUint16(o+10,!0),i=[],s=a;for(let c=0;c<u&&e.getUint32(s,!0)===33639248;c++){let f=e.getUint16(s+10,!0),m=e.getUint32(s+16,!0),p=e.getUint32(s+20,!0),y=e.getUint32(s+24,!0),d=e.getUint16(s+28,!0),b=e.getUint16(s+30,!0),A=e.getUint16(s+32,!0),g=e.getUint32(s+42,!0),h=t.slice(s+46,s+46+d),N=new TextDecoder("utf-8").decode(h);i.push({name:N,compressionMethod:f,crc32:m,compressedSize:p,uncompressedSize:y,localHeaderOffset:g}),s=s+46+d+b+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 m=e.getUint16(l+26,!0),p=e.getUint16(l+28,!0),y=l+30+m+p,d=t.slice(y,y+c.compressedSize);n.push({name:c.name,compressedData:d,compressionMethod:c.compressionMethod,crc32:c.crc32,compressedSize:c.compressedSize,uncompressedSize:c.uncompressedSize})}return n}async function hx(r){if(r.compressionMethod===0)return r.compressedData;if(r.compressionMethod===8)return await Nx(r.compressedData);throw new Error(`Unsupported compression method: ${r.compressionMethod}`)}async function Nx(r){if(typeof DecompressionStream>"u")throw new Error("DecompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let t=new DecompressionStream("deflate-raw"),e=new Uint8Array(r.length);e.set(r);let n=t.writable.getWriter();n.write(e),n.close();let o=t.readable.getReader(),a=[];for(;;){let{done:c,value:l}=await o.read();if(c)break;a.push(l)}let u=a.reduce((c,l)=>c+l.length,0),i=new Uint8Array(u),s=0;for(let c of a)i.set(c,s),s+=c.length;return i}async function kc(r,t={}){let e=t.force??!1,n=await ld(r);return pd(n,e)}function Rc(r,t={}){let e=t.force??!1,n=fd(r);return pd(n,e)}function pd(r,t){let e=new Map,n=[],o=new Map;for(let[a,u]of r){if(!a.endsWith(".npy"))continue;let i=a.slice(0,-4);try{let s=As(u);e.set(i,s)}catch(s){if(s instanceof jr&&t)n.push(i),o.set(i,s.message);else throw s}}return{arrays:e,skipped:n,errors:o}}async function yd(r,t={}){let e=await kc(r,t);return Object.fromEntries(e.arrays)}function dd(r,t={}){let e=Rc(r,t);return Object.fromEntries(e.arrays)}async function bd(r,t={}){let e=t.compress??!1,n=[];for(let[m,p]of r){let y=$c(p),d,b;e?(d=await xx(p),d.length<p.length?b=8:(d=p,b=0)):(d=p,b=0),n.push({name:m,data:p,compressedData:d,crc:y,compressionMethod:b,offset:0})}let o=0;for(let m of n){let p=new TextEncoder().encode(m.name);o+=30+p.length+m.compressedData.length}let a=0;for(let m of n){let p=new TextEncoder().encode(m.name);a+=46+p.length}let i=o+a+22,s=new Uint8Array(i),c=new DataView(s.buffer),l=0;for(let m of n)m.offset=l,l=gd(s,c,l,m);let f=l;for(let m of n)l=hd(s,c,l,m);return Nd(c,l,n.length,a,f),s}function Ad(r){let t=[];for(let[l,f]of r){let m=$c(f);t.push({name:l,data:f,compressedData:f,crc:m,compressionMethod:0,offset:0})}let e=0;for(let l of t){let f=new TextEncoder().encode(l.name);e+=30+f.length+l.compressedData.length}let n=0;for(let l of t){let f=new TextEncoder().encode(l.name);n+=46+f.length}let a=e+n+22,u=new Uint8Array(a),i=new DataView(u.buffer),s=0;for(let l of t)l.offset=s,s=gd(u,i,s,l);let c=s;for(let l of t)s=hd(u,i,s,l);return Nd(i,s,t.length,n,c),u}function gd(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 hd(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 Nd(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 xx(r){if(typeof CompressionStream>"u")throw new Error("CompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let t=new CompressionStream("deflate-raw"),e=new Uint8Array(r.length);e.set(r);let n=t.writable.getWriter();n.write(e),n.close();let o=t.readable.getReader(),a=[];for(;;){let{done:c,value:l}=await o.read();if(c)break;a.push(l)}let u=a.reduce((c,l)=>c+l.length,0),i=new Uint8Array(u),s=0;for(let c of a)i.set(c,s),s+=c.length;return i}async function Dd(r,t={}){let e=Cd(r);return bd(e,{compress:t.compress??!1})}function xd(r){let t=Cd(r);return Ad(t)}function Cd(r){let t=new Map;if(Array.isArray(r)){for(let n=0;n<r.length;n++){let o=r[n],a=lo(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=lo(o),u=n.endsWith(".npy")?n:`${n}.npy`;t.set(u,a)}return t}function qc(r,t={}){let{delimiter:e,comments:n="#",skiprows:o=0,usecols:a,max_rows:u,dtype:i="float64",missing_values:s,filling_values:c}=t,l=r.split(/\r?\n/);if(o>0&&(l=l.slice(o)),l=l.filter(d=>{let b=d.trim();return!(b===""||n&&b.startsWith(n))}),u!==void 0&&u>0&&(l=l.slice(0,u)),l.length===0)return Q([],i);let f=[],m=new Set(s?Array.isArray(s)?s:[s]:[]),p=c!==void 0?c:i.includes("int")||i==="bool"?0:NaN;for(let d of l){let b;e===void 0?b=d.trim().split(/\s+/):b=d.split(e),a!==void 0&&(b=(Array.isArray(a)?a:[a]).map(h=>(h<0&&(h=b.length+h),b[h]??"")));let A=b.map(g=>{let h=g.trim();if(m.has(h)||h==="")return p;let N=parseFloat(h);return isNaN(N)?p:N});f.push(A)}let y=f[0]?.length??0;for(let d=1;d<f.length;d++)if(f[d].length!==y)throw new Error(`Inconsistent number of columns: row 0 has ${y} columns, row ${d} has ${f[d].length} columns`);return y===1?Q(f.map(d=>d[0]),i):Q(f,i)}function Sd(r,t={}){let e={...t,missing_values:t.missing_values??["","nan","NaN","NA","N/A","-"],filling_values:t.filling_values??NaN};return qc(r,e)}function wd(r,t,e="float64"){let n=typeof t=="string"?new RegExp(t,"gm"):new RegExp(t.source,"gm"),o=[],a;for(;(a=n.exec(r))!==null;)if(a.length>1){let u=a.slice(1).map(i=>{let s=parseFloat(i);return isNaN(s)?0:s});o.push(u)}return o.length===0?Q([],e):o[0].length===1?Q(o.map(u=>u[0]),e):Q(o,e)}function Id(r,t){let e=typeof r=="bigint"?Number(r):r,n=t.match(/^%([+-]?)(\d*)(?:\.(\d+))?([dfeEgGs])$/);if(!n)return String(e);let[,o,a,u,i]=n,s=u!==void 0?parseInt(u,10):void 0,c;switch(i){case"d":c=Math.round(e).toString();break;case"f":c=e.toFixed(s??6);break;case"e":c=e.toExponential(s??6).replace(/e([+-])(\d)$/,"e$10$2");break;case"E":c=e.toExponential(s??6).toUpperCase().replace(/E([+-])(\d)$/,"E$10$2");break;case"g":case"G":{let l=s??6,f=Math.floor(Math.log10(Math.abs(e)));f>=-4&&f<l?(c=e.toPrecision(l),c.includes(".")&&(c=c.replace(/\.?0+$/,""))):c=e.toExponential(l-1),i==="G"&&(c=c.toUpperCase());break}case"s":c=String(e);break;default:c=String(e)}if(a){let l=parseInt(a,10);if(c.length<l){let f=" ".repeat(l-c.length);o==="-"?c=c+f:c=f+c}}return o==="+"&&e>=0&&!c.startsWith("-")&&(c="+"+c),c}function zd(r,t={}){let{fmt:e="%.18e",delimiter:n=" ",newline:o=`
|
|
5
|
+
`,header:a,footer:u,comments:i="# "}=t;if(r.ndim>2)throw new Error("savetxt: array must be 1D or 2D");let s=[];if(a!==void 0){let l=a.split(/\r?\n/);for(let f of l)f.startsWith(i.trimEnd())?s.push(f):s.push(i+f)}let c=r.toArray();if(r.ndim===1)for(let l of c)s.push(Id(l,e));else for(let l of c){let f=l.map(m=>Id(m,e));s.push(f.join(n))}if(u!==void 0){let l=u.split(/\r?\n/);for(let f of l)f.startsWith(i.trimEnd())?s.push(f):s.push(i+f)}return s.join(o)+o}var q=r=>{if(r instanceof er)return r;let t=r.base?q(r.base):void 0;return er.fromStorage(r.storage,t)},er=class r extends P{constructor(t,e){super(t,e),this._base=e}static fromStorage(t,e){return new r(t,e)}get base(){return this._base??null}get T(){return this.transpose()}get itemsize(){return Gr(this._storage.dtype)}get nbytes(){return this.size*this.itemsize}fill(t){let e=this._storage.dtype,n=this.size;if(E(e)){let o=typeof t=="bigint"?t:BigInt(Math.round(Number(t)));for(let a=0;a<n;a++)this._storage.iset(a,o)}else if(e==="bool"){let o=t?1:0;for(let a=0;a<n;a++)this._storage.iset(a,o)}else{let o=Number(t);for(let a=0;a<n;a++)this._storage.iset(a,o)}}*[Symbol.iterator](){if(this.ndim===0)yield this._storage.iget(0);else if(this.ndim===1)for(let t=0;t<this.shape[0];t++)yield this._storage.iget(t);else for(let t=0;t<this.shape[0];t++)yield this.slice(String(t))}get(t){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let e=t.map((n,o)=>{let a=n;if(a<0&&(a=this.shape[o]+a),a<0||a>=this.shape[o])throw new Error(`Index ${n} is out of bounds for axis ${o} with size ${this.shape[o]}`);return a});return this._storage.get(...e)}set(t,e){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let n=t.map((a,u)=>{let i=a;if(i<0&&(i=this.shape[u]+i),i<0||i>=this.shape[u])throw new Error(`Index ${a} is out of bounds for axis ${u} with size ${this.shape[u]}`);return i}),o=this.dtype;if(B(o))this._storage.set(n,e);else if(E(o)){let a=e instanceof U?e.re:Number(e),u=typeof e=="bigint"?e:BigInt(Math.round(a));this._storage.set(n,u)}else if(o==="bool"){let u=(e instanceof U?e.re:Number(e))?1:0;this._storage.set(n,u)}else{let a=e instanceof U?e.re:Number(e);this._storage.set(n,a)}}copy(){return new r(this._storage.copy())}astype(t,e=!0){let n=this.dtype;if(n===t&&!e)return this;if(n===t&&e)return this.copy();let o=Array.from(this.shape),a=this.size,u=K(t);if(!u)throw new Error(`Cannot convert to dtype ${t}`);let i=new u(a),s=this.data;if(E(n)&&!E(t)){let l=s;if(t==="bool")for(let f=0;f<a;f++)i[f]=l[f]!==BigInt(0)?1:0;else for(let f=0;f<a;f++)i[f]=Number(l[f])}else if(!E(n)&&E(t)){let l=s;for(let f=0;f<a;f++)i[f]=BigInt(Math.round(Number(l[f])))}else if(t==="bool"){let l=s;for(let f=0;f<a;f++)i[f]=l[f]!==0?1:0}else if(n==="bool"&&!E(t)){let l=s;for(let f=0;f<a;f++)i[f]=l[f]}else if(!E(n)&&!E(t)){let l=s;for(let f=0;f<a;f++)i[f]=l[f]}else{let l=s;for(let f=0;f<a;f++)i[f]=l[f]}let c=S.fromData(i,o,t);return new r(c)}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=Do(s);return xo(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 f;c.step>0?f=Math.max(0,Math.ceil((c.stop-c.start)/c.step)):f=Math.max(0,Math.ceil((c.start-c.stop)/Math.abs(c.step))),n.push(f),o.push(l*c.step)}}let u=S.fromData(this._storage.data,n,this._storage.dtype,o,a),i=this._base??this;return new r(u,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}`)}reshape(...t){let e=t.length===1&&Array.isArray(t[0])?t[0]:t,n=we(this,e).storage,a=n.data===this.data?this._base??this:void 0;return r.fromStorage(n,a)}ravel(){let t=Ie(this).storage,n=t.data===this.data?this._base??this:void 0;return r.fromStorage(t,n)}put(t,e){let n=e instanceof r?e._storage:e;zt(this,t,n)}compress(t,e){let n=t instanceof r?t:r.fromStorage(S.fromData(new Uint8Array(t.map(o=>o?1:0)),[t.length],"bool"));return q(nt(n,this,e))}choose(t){return q(so(this,t))}clip(t,e){return q(oe(this,t,e))}iindex(t,e=0){let n;if(t instanceof r){n=[];for(let o=0;o<t.size;o++){let a=t.storage.iget(o),u=typeof a=="bigint"?Number(a):a instanceof U?a.re:a;n.push(u)}}else Array.isArray(t)&&t.length>0&&Array.isArray(t[0])?n=t.flat():n=t;return this.take(n,e)}bindex(t,e){return q(nt(t,this,e))}toString(){return`NDArray(shape=${JSON.stringify(this.shape)}, dtype=${this.dtype})`}toArray(){if(this.ndim===0)return this._storage.iget(0);let t=this.shape,e=t.length,n=(o,a)=>{if(a===e)return this._storage.get(...o);let u=[];for(let i=0;i<t[a];i++)o[a]=i,u.push(n(o,a+1));return u};return n(new Array(e),0)}tolist(){return this.toArray()}tobytes(){if(this._storage.isCContiguous){let n=this._storage.data,o=n.BYTES_PER_ELEMENT,a=this._storage.offset*o,u=this.size*o;return n.buffer.slice(a,a+u)}let e=this.copy()._storage.data;return e.buffer.slice(0,this.size*e.BYTES_PER_ELEMENT)}item(...t){if(t.length===0){if(this.size!==1)throw new Error("can only convert an array of size 1 to a Python scalar");return this._storage.iget(0)}if(t.length===1){let e=t[0];if(e<0||e>=this.size)throw new Error(`index ${e} is out of bounds for size ${this.size}`);return this._storage.iget(e)}return this.get(t)}byteswap(t=!1){let e=t?this:this.copy(),n=e._storage.data,o=n.BYTES_PER_ELEMENT;if(o===1)return e;let a=n.buffer,u=new DataView(a);for(let i=0;i<n.length;i++){let s=i*o;if(o===2){let c=u.getUint8(s),l=u.getUint8(s+1);u.setUint8(s,l),u.setUint8(s+1,c)}else if(o===4){let c=u.getUint8(s),l=u.getUint8(s+1),f=u.getUint8(s+2),m=u.getUint8(s+3);u.setUint8(s,m),u.setUint8(s+1,f),u.setUint8(s+2,l),u.setUint8(s+3,c)}else if(o===8){let c=u.getUint8(s),l=u.getUint8(s+1),f=u.getUint8(s+2),m=u.getUint8(s+3),p=u.getUint8(s+4),y=u.getUint8(s+5),d=u.getUint8(s+6),b=u.getUint8(s+7);u.setUint8(s,b),u.setUint8(s+1,d),u.setUint8(s+2,y),u.setUint8(s+3,p),u.setUint8(s+4,m),u.setUint8(s+5,f),u.setUint8(s+6,l),u.setUint8(s+7,c)}}return e}view(t){if(!t||t===this.dtype)return r.fromStorage(this._storage,this._base??this);let e=Gr(this.dtype),n=Gr(t);if(e!==n)throw new Error("When changing to a larger dtype, its size must be a divisor of the total size in bytes of the last axis of the array.");let o=K(t);if(!o)throw new Error(`Unsupported dtype: ${t}`);let a=this._storage.data,u=a.byteOffset+this._storage.offset*e,i=new o(a.buffer,u,this.size),s=S.fromData(i,[...this.shape],t,[...this._storage.strides],0);return r.fromStorage(s,this._base??this)}tofile(t,e="",n=""){throw new Error('tofile() requires file system access. Use the node module: import { save } from "numpy-ts/node"')}round(t=0){return this.around(t)}conjugate(){return this.conj()}around(t=0){return q(wt(this,t))}allclose(t,e=1e-5,n=1e-8){return Ct(this,t,e,n)}isclose(t,e=1e-5,n=1e-8){return q(Un(this,t,e,n))}average(t,e){let n=Ke(this,e,t);return n instanceof P?q(n):n}dot(t){let e=ft(this,t);return e instanceof P?q(e):e}trace(){return Hr(this)}inner(t){let e=yt(this,t);return e instanceof P?q(e):e}tensordot(t,e=2){let n=bt(this,t,e);return n instanceof P?q(n):n}divmod(t){let e=re(this,t);return[q(e[0]),q(e[1])]}searchsorted(t,e="left"){return q(St(this,t,e))}sqrt(){return q(Et(this))}exp(){return q(Ut(this))}exp2(){return q($t(this))}expm1(){return q(kt(this))}log(){return q(Rt(this))}log2(){return q(qt(this))}log10(){return q(Vt(this))}log1p(){return q(Pt(this))}absolute(){return q(Gt(this))}negative(){return q(Yt(this))}sign(){return q(Wt(this))}positive(){return q(Xt(this))}reciprocal(){return q(Kt(this))}ceil(){return q(Kn(this))}fix(){return q(Qn(this))}floor(){return q(Hn(this))}rint(){return q(ro(this))}trunc(){return q(to(this))}sin(){return q(ae(this))}cos(){return q(se(this))}tan(){return q(ie(this))}arcsin(){return q(ue(this))}arccos(){return q(ce(this))}arctan(){return q(le(this))}degrees(){return q(pe(this))}radians(){return q(ye(this))}sinh(){return q(de(this))}cosh(){return q(be(this))}tanh(){return q(Ae(this))}arcsinh(){return q(ge(this))}arccosh(){return q(he(this))}arctanh(){return q(Ne(this))}bitwise_not(){return q(Wn(this))}invert(){return q(Zn(this))}logical_not(){return q(Nn(this))}isfinite(){return q(xn(this))}isinf(){return q(Cn(this))}isnan(){return q(Sn(this))}isnat(){return q(wn(this))}signbit(){return q(zn(this))}spacing(){return q(vn(this))}cbrt(){return q(Qt(this))}fabs(){return q(Ht(this))}square(){return q(te(this))}conj(){return q(oo(this))}flatten(){return q(Br(this))}argwhere(){return q(Pn(this))}add(t){return q(Ft(this,t))}subtract(t){return q(Bt(this,t))}multiply(t){return q(Tt(this,t))}divide(t){return q(it(this,t))}mod(t){return q(Zt(this,t))}floor_divide(t){return q(Jt(this,t))}power(t){return q(Ot(this,t))}logaddexp(t){return q(jt(this,t))}logaddexp2(t){return q(Lt(this,t))}arctan2(t){return q(fe(this,t))}hypot(t){return q(me(this,t))}greater(t){return q(Mn(this,t))}greater_equal(t){return q(Fn(this,t))}less(t){return q(Bn(this,t))}less_equal(t){return q(Tn(this,t))}equal(t){return q(En(this,t))}not_equal(t){return q(On(this,t))}bitwise_and(t){return q(Ln(this,t))}bitwise_or(t){return q(Gn(this,t))}bitwise_xor(t){return q(Yn(this,t))}left_shift(t){return q(Jn(this,t))}right_shift(t){return q(Xn(this,t))}logical_and(t){return q(gn(this,t))}logical_or(t){return q(hn(this,t))}logical_xor(t){return q(Dn(this,t))}copysign(t){return q(In(this,t))}nextafter(t){return q(_n(this,t))}remainder(t){return q(ee(this,t))}heaviside(t){return q(ne(this,t))}matmul(t){return q(Se(this,t))}outer(t){return q(dt(this,t))}sum(t,e=!1){let n=$e(this,t,e);return n instanceof P?q(n):n}mean(t,e=!1){let n=ke(this,t,e);return n instanceof P?q(n):n}prod(t,e=!1){let n=Re(this,t,e);return n instanceof P?q(n):n}max(t,e=!1){let n=qe(this,t,e);return n instanceof P?q(n):n}min(t,e=!1){let n=Pe(this,t,e);return n instanceof P?q(n):n}ptp(t,e=!1){let n=Le(this,t,e);return n instanceof P?q(n):n}nansum(t,e=!1){let n=en(this,t,e);return n instanceof P?q(n):n}nanprod(t,e=!1){let n=nn(this,t,e);return n instanceof P?q(n):n}nanmean(t,e=!1){let n=on(this,t,e);return n instanceof P?q(n):n}nanmin(t,e=!1){let n=un(this,t,e);return n instanceof P?q(n):n}nanmax(t,e=!1){let n=cn(this,t,e);return n instanceof P?q(n):n}argmin(t){let e=Ge(this,t);return e instanceof P?q(e):e}argmax(t){let e=Ye(this,t);return e instanceof P?q(e):e}nanargmin(t){let e=ln(this,t);return e instanceof P?q(e):e}nanargmax(t){let e=fn(this,t);return e instanceof P?q(e):e}var(t,e=0,n=!1){let o=rt(this,t,e,n);return o instanceof P?q(o):o}std(t,e=0,n=!1){let o=We(this,t,e,n);return o instanceof P?q(o):o}nanvar(t,e=0,n=!1){let o=an(this,t,e,n);return o instanceof P?q(o):o}nanstd(t,e=0,n=!1){let o=sn(this,t,e,n);return o instanceof P?q(o):o}all(t,e=!1){let n=Qe(this,t,e);return n instanceof P?q(n):n}any(t,e=!1){let n=He(this,t,e);return n instanceof P?q(n):n}median(t,e=!1){let n=Ze(this,t,e);return n instanceof P?q(n):n}nanmedian(t,e=!1){let n=yn(this,t,e);return n instanceof P?q(n):n}percentile(t,e,n=!1){let o=Je(this,t,e,n);return o instanceof P?q(o):o}quantile(t,e,n=!1){let o=Xe(this,t,e,n);return o instanceof P?q(o):o}nanquantile(t,e,n=!1){let o=dn(this,t,e,n);return o instanceof P?q(o):o}nanpercentile(t,e,n=!1){let o=bn(this,t,e,n);return o instanceof P?q(o):o}cumsum(t){return q(rn(this,t))}cumprod(t){return q(tn(this,t))}nancumsum(t){return q(mn(this,t))}nancumprod(t){return q(pn(this,t))}sort(t=-1){return q($n(this,t))}argsort(t=-1){return q(kn(this,t))}partition(t,e=-1){return q(Rn(this,t,e))}argpartition(t,e=-1){return q(qn(this,t,e))}diagonal(t=0,e=0,n=1){return q(mt(this,t,e,n))}resize(t){return q(Te(this,t))}diff(t=1,e=-1){return q(no(this,t,e))}take(t,e){return q(It(this,t,e))}repeat(t,e){return q(Fe(this,t,e))}transpose(t){return q(pt(this,t))}squeeze(t){return q(ze(this,t))}expand_dims(t){return q(_e(this,t))}swapaxes(t,e){return q(ve(this,t,e))}moveaxis(t,e){return q(Me(this,t,e))}nonzero(){return Vn(this).map(q)}};function Vc(...r){let t=[],e="xy";for(let i of r)i instanceof er?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,u=[];for(let i=0;i<t.length;i++){let s=t[i],c=s.size,l=new Array(a).fill(1);l[i]=c;let f=s.reshape(...l),m=ao(f,o),p=er.fromStorage(m.storage.copy());u.push(p)}return e==="xy"&&u.length>=2&&([u[0],u[1]]=[u[1],u[0]]),u}var F=r=>{if(r instanceof er)return r;let t=r.base?F(r.base):void 0;return er.fromStorage(r.storage,t)};function _d(r,t){return F(ao(r,t))}function vd(r,t,e){return F(It(r,t,e))}function Md(r,t,e){return F(Hu(r,t,e))}function Fd(r,t){return F(so(r,t))}function Bd(r,t,e){return F(nt(r,t,e))}function Td(r,t,e=0){return F(rc(r,t,e))}function Ed(r,t,e){return F(tc(r,t,e))}function Od(r,t,e=0){return F(ec(r,t,e))}function Ud(r,t="int32"){return F(nc(r,t))}function $d(r,t,e="raise"){return F(oc(r,t,e))}function kd(r,t){return ac(r,t).map(F)}function Rd(r,t=2){return sc(r,t).map(F)}function qd(r){return ic(r).map(F)}function Vd(r,t=0,e){return uc(r,t,e).map(F)}function Pd(r,t=0){return cc(r,t).map(F)}function jd(r,t=0,e){return lc(r,t,e).map(F)}function Ld(r,t=0){return fc(r,t).map(F)}function Gd(r,t,e=0){return mc(r,t,e).map(F)}function Yd(r,t,e){return F(pc(o=>r(F(o)),t,e))}function Wd(r,t,e){return F(yc((o,a)=>r(F(o),a),t,e))}function Zd(r,t){return F(Ft(r,t))}function Jd(r,t){return F(Bt(r,t))}function Xd(r,t){return F(Tt(r,t))}function Kd(r){return F(Et(r))}function Pc(r,t){return F(Ot(r,t))}function Qd(r){return F(Ut(r))}function Hd(r){return F($t(r))}function rb(r){return F(kt(r))}function tb(r){return F(Rt(r))}function eb(r){return F(qt(r))}function nb(r){return F(Vt(r))}function ob(r){return F(Pt(r))}function ab(r,t){return F(jt(r,t))}function sb(r,t){return F(Lt(r,t))}function jc(r){return F(Gt(r))}function ib(r){return F(Yt(r))}function ub(r){return F(Wt(r))}function cb(r,t){return F(Zt(r,t))}function lb(r,t){return F(it(r,t))}function fb(r,t){return F(Jt(r,t))}function mb(r){return F(Xt(r))}function pb(r){return F(Kt(r))}function yb(r){return F(Qt(r))}function db(r){return F(Ht(r))}function bb(r,t){let e=re(r,t);return[F(e[0]),F(e[1])]}function Ab(r){return F(te(r))}function gb(r,t){return F(ee(r,t))}function hb(r,t){return F(ne(r,t))}function Nb(r,t){return F(ri(r,t))}function Db(r,t){return F(ti(r,t))}function xb(r){let t=ei(r);return[F(t[0]),F(t[1])]}function Cb(r,t){return F(ni(r,t))}function Sb(r,t){return F(oi(r,t))}function wb(r,t){return F(ai(r,t))}function Ib(r){let t=si(r);return[F(t[0]),F(t[1])]}function zb(r,t,e){return F(oe(r,t,e))}function _b(r,t){return F(ii(r,t))}function vb(r,t){return F(ui(r,t))}function Mb(r,t){return F(ci(r,t))}function Fb(r,t){return F(li(r,t))}function Bb(r,t=0,e,n){return F(fi(r,t,e,n))}function Tb(r,t,e,n,o){return F(mi(r,t,e,n,o))}function Eb(r,t=Math.PI,e=-1,n=2*Math.PI){return F(pi(r,t,e,n))}function Ob(r){return F(yi(r))}function Ub(r){return F(di(r))}function $b(r,t){return F(Ln(r,t))}function kb(r,t){return F(Gn(r,t))}function Rb(r,t){return F(Yn(r,t))}function Lc(r){return F(Wn(r))}function qb(r){return F(Zn(r))}function Gc(r,t){return F(Jn(r,t))}function Yc(r,t){return F(Xn(r,t))}function Vb(r,t,e){return F(Nu(r,t,e))}function Pb(r,t,e,n){return F(Du(r,t,e,n))}function jb(r){return F(xu(r))}function Lb(r){return F(Lu(r))}function Gb(r){return F(Gu(r))}function Wc(r){return F(oo(r))}function Yb(r,t){return F(Yu(r,t))}function Wb(r,t=tr){return F(wr(r,t))}function Zb(r,t=tr){return F(So(r,t))}function Jb(r,t=tr){return F(wo(r,t))}function Xb(r,t,e){return F(Io(r,t,e))}function Kb(r,t){return F(Q(r,t))}function Qb(r,t,e=1,n=tr){return F(zs(r,t,e,n))}function Hb(r,t,e=50,n=tr){return F(_s(r,t,e,n))}function rA(r,t,e=50,n=10,o=tr){return F(vs(r,t,e,n,o))}function tA(r,t,e=50,n=tr){return F(Ms(r,t,e,n))}function eA(r,t,e=0,n=tr){return F(zo(r,t,e,n))}function nA(r,t=tr){return F(Fs(r,t))}function oA(r,t){return F(Jr(r,t))}function aA(r,t){return F(Bs(r,t))}function sA(r,t){return F(Ts(r,t))}function iA(r,t){return F(Es(r,t))}function uA(r,t,e){return F(Os(r,t,e))}function cA(r){return F(Us(r))}function lA(r,t){return F($s(r,t))}function fA(r,t){return F(ks(r,t))}function mA(r,t){return F(Rs(r,t))}function pA(r,t){return F(qs(r,t))}function yA(r,t,e){return F(Vs(r,t,e))}function dA(r,t=0){return F(_o(r,t))}function bA(r,t=0){return F(Ps(r,t))}function AA(r,t,e=0,n=tr){return F(js(r,t,e,n))}function gA(r,t=0){return F(Ls(r,t))}function hA(r,t=0){return F(Gs(r,t))}function NA(r,t,e=!1){return F(Ys(r,t,e))}function DA(r,t=tr,e=-1,n=0){return F(Ws(r,t,e,n))}function xA(r,t,e=tr){return F(Zs(r,t,e))}function CA(r,t=tr,e=-1){return F(Js(r,t,e))}function SA(r,t=tr,e=-1,n){return F(Xs(r,t,e,n))}function wA(r,t=tr,e=-1,n=""){return F(Ks(r,t,e,n))}function IA(r,t,e){return F(no(r,t,e))}function zA(r,t,e){return F(ju(r,t,e))}function _A(r,t){let e=ft(r,t);return e instanceof P?F(e):e}function vA(r,t=0,e=0,n=1){return F(mt(r,t,e,n))}function MA(r,t){return F(Ti(r,t))}function FA(r,t){return F(pt(r,t))}function BA(r,t){let e=yt(r,t);return e instanceof P?F(e):e}function TA(r,t){return F(dt(r,t))}function EA(r,t,e=2){let n=bt(r,t,e);return n instanceof P?F(n):n}function OA(r,t,e=-1){let n=Uo(r,t,e);return n instanceof P?F(n):n}function UA(r){return F($o(r))}function $A(r,t){return F(ko(r,t))}function kA(r,t){return F(Ei(r,t))}function RA(r,t){return F(Oi(r,t))}function qA(r,t,e=-1,n=-1,o=-1,a){let u=Ro(r,t,e,n,o,a),i=or(r.dtype,t.dtype);if(u instanceof U){let c=K(i==="complex64"?"float32":"float64"),l=new c(2);return l[0]=u.re,l[1]=u.im,er.fromStorage(S.fromData(l,[],i))}if(typeof u=="number"){if(B(i)){let f=K(i==="complex64"?"float32":"float64"),m=new f(2);return m[0]=u,m[1]=0,er.fromStorage(S.fromData(m,[],i))}let s=K(i),c=new s(1);return c[0]=u,er.fromStorage(S.fromData(c,[],i))}return F(u)}function VA(r,t){return F(Se(r,t))}function PA(r,t){return F(gn(r,t))}function jA(r,t){return F(hn(r,t))}function LA(r){return F(Nn(r))}function GA(r,t){return F(Dn(r,t))}function YA(r){return F(xn(r))}function WA(r){return F(Cn(r))}function ZA(r){return F(Sn(r))}function JA(r){return F(wn(r))}function XA(r){return F(su(r))}function KA(r){return F(iu(r))}function QA(r){return F(uu(r))}function HA(r){return F(cu(r))}function rg(r,t){return F(lu(r,t))}function tg(r,t){return F(In(r,t))}function eg(r){return F(zn(r))}function ng(r,t){return F(_n(r,t))}function og(r){return F(vn(r))}function ag(r,t){return F(Mn(r,t))}function sg(r,t){return F(Fn(r,t))}function ig(r,t){return F(Bn(r,t))}function ug(r,t){return F(Tn(r,t))}function cg(r,t){return F(En(r,t))}function lg(r,t){return F(On(r,t))}function fg(r,t,e=1e-5,n=1e-8){return F(Un(r,t,e,n))}function mg(r){return F(Cc(r))}function pg(r,t){return F(Sc(r,t))}function yg(r,t=1){return F(wc(r,t))}function dg(r,t){let e=Ic(r,t);return[F(e[0]),F(e[1])]}function bg(r,t,e){return F(zc(r,t,e))}function Ag(r,t=1,e=0){return F(_c(r,t,e))}function gg(r,t){return F(vc(r,t))}function hg(r,t){return F(Mc(r,t))}function Ng(r,t){let e=Fc(r,t);return e instanceof P?F(e):e}function Dg(r){return F(Bc(r))}function xg(r,t,e){let n=$e(r,t,e);return n instanceof P?F(n):n}function Cg(r,t,e){let n=ke(r,t,e);return n instanceof P?F(n):n}function Sg(r,t,e){let n=Re(r,t,e);return n instanceof P?F(n):n}function wg(r,t,e){let n=Le(r,t,e);return n instanceof P?F(n):n}function Ig(r,t){let e=Ge(r,t);return e instanceof P?F(e):e}function zg(r,t){let e=Ye(r,t);return e instanceof P?F(e):e}function _g(r,t,e,n){let o=rt(r,t,e,n);return o instanceof P?F(o):o}function vg(r,t,e,n){let o=We(r,t,e,n);return o instanceof P?F(o):o}function Mg(r,t,e){let n=Ze(r,t,e);return n instanceof P?F(n):n}function Fg(r,t,e,n){let o=Je(r,t,e,n);return o instanceof P?F(o):o}function Bg(r,t,e,n){let o=Xe(r,t,e,n);return o instanceof P?F(o):o}function Tg(r,t,e,n){let o=Ke(r,t,e,n);return o instanceof P?F(o):o}function Eg(r,t,e){let n=Qe(r,t,e);return n instanceof P?F(n):n}function Og(r,t,e){let n=He(r,t,e);return n instanceof P?F(n):n}function Zc(r,t){return F(rn(r,t))}function Jc(r,t){return F(tn(r,t))}function Ug(r,t,e){let n=en(r,t,e);return n instanceof P?F(n):n}function $g(r,t,e){let n=nn(r,t,e);return n instanceof P?F(n):n}function kg(r,t,e){let n=on(r,t,e);return n instanceof P?F(n):n}function Rg(r,t,e,n){let o=an(r,t,e,n);return o instanceof P?F(o):o}function qg(r,t,e,n){let o=sn(r,t,e,n);return o instanceof P?F(o):o}function Vg(r,t,e){let n=un(r,t,e);return n instanceof P?F(n):n}function Pg(r,t,e){let n=cn(r,t,e);return n instanceof P?F(n):n}function jg(r,t){let e=ln(r,t);return e instanceof P?F(e):e}function Lg(r,t){let e=fn(r,t);return e instanceof P?F(e):e}function Gg(r,t){return F(mn(r,t))}function Yg(r,t){return F(pn(r,t))}function Wg(r,t,e){let n=yn(r,t,e);return n instanceof P?F(n):n}function Zg(r,t,e,n){let o=dn(r,t,e,n);return o instanceof P?F(o):o}function Jg(r,t,e,n){let o=bn(r,t,e,n);return o instanceof P?F(o):o}function Xc(r,t=0){return F(wt(r,t))}function Xg(r){return F(Kn(r))}function Kg(r){return F(Qn(r))}function Qg(r){return F(Hn(r))}function Hg(r){return F(ro(r))}function rh(r){return F(to(r))}function th(r,t){return F(wu(r,t))}function eh(r,t){return F(Iu(r,t))}function nh(r,t){return F(zu(r,t))}function oh(r,t){return F(_u(r,t))}function ah(r,t){return F(vu(r,t))}function sh(r,t){return F(Mu(r,t))}function ih(r,t){return F(Fu(r,t))}function uh(r){return F(Bu(r))}function ch(r,t,e){return F(bc(r,t,e))}function Kc(r,t,e){return F(cs(r,t,e))}function lh(r,t,e,n){return F(Ac(r,t,e,n))}function fh(r,t,e="constant",n=0){return F(gc(r,t,e,n))}function mh(r,t){return F(we(r,t))}function ph(r){return F(Br(r))}function yh(r){return F(Ie(r))}function dh(r,t){return F(ze(r,t))}function bh(r,t){return F(_e(r,t))}function Ah(r,t,e){return F(ve(r,t,e))}function gh(r,t,e){return F(Me(r,t,e))}function hh(r,t,e=0){return F(Ui(r,t,e))}function Qc(r,t=0){return F(At(r,t))}function Nh(r,t=0){return F($i(r,t))}function Dh(r){return F(Vo(r))}function xh(r){return F(ki(r))}function Ch(r){return F(Ri(r))}function Sh(r){return F(qi(r))}function wh(r){return F(Vi(r))}function Ih(r,t=0){return Pi(r,t).map(F)}function zh(r,t){return F(ji(r,t))}function _h(r,t,e){return F(Fe(r,t,e))}function vh(r,t){return F(Be(r,t))}function Mh(r){return F(Li(r))}function Fh(r){return F(Gi(r))}function Bh(r,t=1,e=[0,1]){return F(Yi(r,t,e))}function Th(r,t,e){return F(Wi(r,t,e))}function Eh(r,t){return F(Te(r,t))}function Oh(r,t=-1){return F($n(r,t))}function Uh(r,t=-1){return F(kn(r,t))}function $h(r){return F(pu(r))}function kh(r,t,e=-1){return F(Rn(r,t,e))}function Rh(r,t,e=-1){return F(qn(r,t,e))}function qh(r){return F(yu(r))}function Vh(r){return Vn(r).map(F)}function Ph(r){return F(Pn(r))}function jh(r){return F(du(r))}function Lh(r,t){return F(bu(r,t))}function Gh(r,t,e){return F(Uu(r,t,e))}function Yh(r,t,e){return F($u(r,t,e))}function Wh(r,t,e){return F(ku(r,t,e))}function Zh(r,t,e){return F(Ru(r,t,e))}function Jh(r,t,e,n,o){return F(qu(r,t,e,n,o))}function Xh(r,t,e){return F(Vu(r,t,e))}function Kh(r,t,e,n){let o=Pu(r,t,e,n);return o instanceof P?F(o):o}function Qh(r){return F(ae(r))}function Hh(r){return F(se(r))}function r0(r){return F(ie(r))}function Hc(r){return F(ue(r))}function rl(r){return F(ce(r))}function tl(r){return F(le(r))}function el(r,t){return F(fe(r,t))}function t0(r,t){return F(me(r,t))}function e0(r){return F(pe(r))}function n0(r){return F(ye(r))}function o0(r){return F(gi(r))}function a0(r){return F(hi(r))}function s0(r){return F(de(r))}function i0(r){return F(be(r))}function u0(r){return F(Ae(r))}function nl(r){return F(ge(r))}function ol(r){return F(he(r))}function al(r){return F(Ne(r))}var Tr=624,hs=397,Vx=2567483615,sl=2147483648,il=2147483647,Mr={mt:new Uint32Array(Tr),mti:Tr+1};function l0(r){let t=Mr.mt;t[0]=r>>>0;for(let e=1;e<Tr;e++){let n=t[e-1]^t[e-1]>>>30;t[e]=Math.imul(1812433253,n)+e>>>0}Mr.mti=Tr}function ll(){let r=Mr.mt,t,e=[0,Vx];if(Mr.mti>=Tr){let n;for(Mr.mti===Tr+1&&l0(5489),n=0;n<Tr-hs;n++)t=r[n]&sl|r[n+1]&il,r[n]=r[n+hs]^t>>>1^e[t&1];for(;n<Tr-1;n++)t=r[n]&sl|r[n+1]&il,r[n]=r[n+(hs-Tr)]^t>>>1^e[t&1];t=r[Tr-1]&sl|r[0]&il,r[Tr-1]=r[hs-1]^t>>>1^e[t&1],Mr.mti=0}return t=r[Mr.mti++],t^=t>>>11,t^=t<<7&2636928640,t^=t<<15&4022730752,t^=t>>>18,t>>>0}function G(){let r=ll()>>>5,t=ll()>>>6;return(r*67108864+t)/9007199254740992}var Px=2468251765,jx=1492356589,Lx=1135663077,Gx=2337405405,Yx=3389127133,Wx=1232336661,pl=16,Ns=4;function mr(r){return r>>>0}function ul(r,t){return r=mr(mr(r)^t.val),t.val=mr(Math.imul(t.val,Px)),r=mr(Math.imul(r,t.val)),r=mr(r^r>>>pl),r}function Zx(r,t){let e=mr(mr(Math.imul(Yx,mr(r)))-mr(Math.imul(Wx,mr(t))));return e=mr(e^e>>>pl),e}function Jx(r){let t=[0,0,0,0],e=[r>>>0],n={val:Lx};for(let o=0;o<Ns;o++)o<e.length?t[o]=ul(e[o],n):t[o]=ul(0,n);for(let o=0;o<Ns;o++)for(let a=0;a<Ns;a++)if(o!==a){let u=ul(t[o],n);t[a]=Zx(t[a],u)}return t}function Xx(r,t){let e=[],n=Gx;for(let o=0;o<t;o++){let a=r[o%Ns],u=mr(a^n);n=mr(Math.imul(n,jx)),u=mr(Math.imul(u,n)),u=mr(u^u>>>pl),e.push(u)}return e}var Kx=BigInt("4865540595714422341"),Qx=BigInt("2549297995355413924"),Hx=Qx<<BigInt(64)|Kx,cl=BigInt("0xffffffffffffffff"),fl=(BigInt(1)<<BigInt(128))-BigInt(1);function r1(r){let t=r>>BigInt(64),e=r&cl,n=(t^e)&cl,o=Number(r>>BigInt(122));return(n>>BigInt(o)|n<<BigInt(64-o))&cl}function ml(r,t){return r*Hx+t&fl}function c0(r){let t=Jx(r),e=Xx(t,8),n=BigInt(e[0])|BigInt(e[1])<<BigInt(32),o=BigInt(e[2])|BigInt(e[3])<<BigInt(32),a=BigInt(e[4])|BigInt(e[5])<<BigInt(32),u=BigInt(e[6])|BigInt(e[7])<<BigInt(32),i=n<<BigInt(64)|o,s=(a<<BigInt(64)|u)<<BigInt(1);s=(s|BigInt(1))&fl;let c=BigInt(0);return c=ml(c,s),c=c+i&fl,c=ml(c,s),{state:c,inc:s}}function t1(r){return r.state=ml(r.state,r.inc),r1(r.state)}function e1(r){let e=t1(r)>>BigInt(11);return Number(e)/9007199254740992}var mo=class{constructor(t){if(t!==void 0)this._pcgState=c0(t);else{let e=Math.floor(Math.random()*4294967296);this._pcgState=c0(e)}}_randomFloat(){return e1(this._pcgState)}random(t){if(t===void 0)return this._randomFloat();let e=Array.isArray(t)?t:[t],n=e.reduce((u,i)=>u*i,1),o=S.zeros(e,"float64"),a=o.data;for(let u=0;u<n;u++)a[u]=this._randomFloat();return o}integers(t,e,n){if(e===void 0&&(e=t,t=0),n===void 0)return Math.floor(this._randomFloat()*(e-t))+t;let o=Array.isArray(n)?n:[n],a=o.reduce((c,l)=>c*l,1),u=S.zeros(o,"int64"),i=u.data,s=e-t;for(let c=0;c<a;c++)i[c]=BigInt(Math.floor(this._randomFloat()*s)+t);return u}standard_normal(t){if(t===void 0)return Fr(this._randomFloat.bind(this));let e=Array.isArray(t)?t:[t],n=e.reduce((u,i)=>u*i,1),o=S.zeros(e,"float64"),a=o.data;for(let u=0;u<n;u+=2){let[i,s]=po(this._randomFloat.bind(this));a[u]=i,u+1<n&&(a[u+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),u=S.zeros(o,"float64"),i=u.data;for(let s=0;s<a;s+=2){let[c,l]=po(this._randomFloat.bind(this));i[s]=c*e+t,s+1<a&&(i[s+1]=l*e+t)}return u}uniform(t=0,e=1,n){if(n===void 0)return this._randomFloat()*(e-t)+t;let o=Array.isArray(n)?n:[n],a=o.reduce((c,l)=>c*l,1),u=S.zeros(o,"float64"),i=u.data,s=e-t;for(let c=0;c<a;c++)i[c]=this._randomFloat()*s+t;return u}choice(t,e,n=!0,o){return x0(t,e,n,o,this._randomFloat.bind(this))}permutation(t){return S0(t,this._randomFloat.bind(this))}shuffle(t){I0(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((i,s)=>i*s,1),a=S.zeros(n,"float64"),u=a.data;for(let i=0;i<o;i++)u[i]=-Math.log(1-this._randomFloat())*t;return a}poisson(t=1,e){if(e===void 0)return ot(t,this._randomFloat.bind(this));let n=Array.isArray(e)?e:[e],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"int64"),u=a.data;for(let i=0;i<o;i++)u[i]=BigInt(ot(t,this._randomFloat.bind(this)));return a}binomial(t,e,n){if(n===void 0)return yo(t,e,this._randomFloat.bind(this));let o=Array.isArray(n)?n:[n],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"int64"),i=u.data;for(let s=0;s<a;s++)i[s]=BigInt(yo(t,e,this._randomFloat.bind(this)));return u}};function f0(r){return new mo(r)}function m0(r){r==null&&(r=Math.floor(Date.now()^Math.random()*4294967296)),l0(r>>>0)}function p0(){return{mt:Array.from(Mr.mt),mti:Mr.mti}}function y0(r){Mr.mt=new Uint32Array(r.mt),Mr.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 po(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 ot(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 yo(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 bo(r){if(r===void 0)return G();let t=Array.isArray(r)?r:[r],e=t.reduce((a,u)=>a*u,1),n=S.zeros(t,"float64"),o=n.data;for(let a=0;a<e;a++)o[a]=G();return n}function d0(...r){if(r.length===0)return G();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]=G();return e}function b0(...r){if(r.length===0)return Fr(G);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,u]=po(G);n[o]=a,o+1<t&&(n[o+1]=u)}return e}function yl(r,t,e,n="int64"){t==null&&(t=r,r=0);let o=t-r;if(e===void 0)return Math.floor(G()*o)+r;let a=Array.isArray(e)?e:[e],u=a.reduce((c,l)=>c*l,1),i=S.zeros(a,n),s=i.data;if(E(n)){let c=s;for(let l=0;l<u;l++)c[l]=BigInt(Math.floor(G()*o)+r)}else{let c=s;for(let l=0;l<u;l++)c[l]=Math.floor(G()*o)+r}return i}function A0(r=0,t=1,e){if(e===void 0)return G()*(t-r)+r;let n=Array.isArray(e)?e:[e],o=n.reduce((s,c)=>s*c,1),a=S.zeros(n,"float64"),u=a.data,i=t-r;for(let s=0;s<o;s++)u[s]=G()*i+r;return a}function g0(r=0,t=1,e){if(e===void 0)return Fr(G)*t+r;let n=Array.isArray(e)?e:[e],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"float64"),u=a.data;for(let i=0;i<o;i+=2){let[s,c]=po(G);u[i]=s*t+r,i+1<o&&(u[i+1]=c*t+r)}return a}function h0(r){if(r===void 0)return Fr(G);let t=Array.isArray(r)?r:[r],e=t.reduce((a,u)=>a*u,1),n=S.zeros(t,"float64"),o=n.data;for(let a=0;a<e;a+=2){let[u,i]=po(G);o[a]=u,a+1<e&&(o[a+1]=i)}return n}function dl(r=1,t){if(t===void 0)return-Math.log(1-G())*r;let e=Array.isArray(t)?t:[t],n=e.reduce((u,i)=>u*i,1),o=S.zeros(e,"float64"),a=o.data;for(let u=0;u<n;u++)a[u]=-Math.log(1-G())*r;return o}function N0(r=1,t){if(t===void 0)return ot(r,G);let e=Array.isArray(t)?t:[t],n=e.reduce((u,i)=>u*i,1),o=S.zeros(e,"int64"),a=o.data;for(let u=0;u<n;u++)a[u]=BigInt(ot(r,G));return o}function D0(r,t,e){if(e===void 0)return yo(r,t,G);let n=Array.isArray(e)?e:[e],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"int64"),u=a.data;for(let i=0;i<o;i++)u[i]=BigInt(yo(r,t,G));return a}function x0(r,t,e=!0,n,o=G){let a;if(typeof r=="number")a=Array.from({length:r},(m,p)=>p);else{let m=r.size;a=[];for(let p=0;p<m;p++)a.push(Number(r.iget(p)))}let u=a.length;if(u===0)throw new Error("cannot take a sample from an empty sequence");let i;if(n!==void 0){if(Array.isArray(n))i=n;else{let p=n.size;i=[];for(let y=0;y<p;y++)i.push(Number(n.iget(y)))}if(i.length!==u)throw new Error("p and a must have the same size");let m=i.reduce((p,y)=>p+y,0);Math.abs(m-1)>1e-10&&(i=i.map(p=>p/m))}if(t===void 0){if(i){let m=o(),p=0;for(let y=0;y<u;y++)if(p+=i[y],m<p)return a[y];return a[u-1]}return a[Math.floor(o()*u)]}let s=Array.isArray(t)?t:[t],c=s.reduce((m,p)=>m*p,1);if(!e&&c>u)throw new Error("cannot take a larger sample than population when replace=false");let l=S.zeros(s,"float64"),f=l.data;if(e)if(i){let m=new Array(u);m[0]=i[0];for(let p=1;p<u;p++)m[p]=m[p-1]+i[p];for(let p=0;p<c;p++){let y=o(),d=0;for(;d<u-1&&y>=m[d];)d++;f[p]=a[d]}}else for(let m=0;m<c;m++)f[m]=a[Math.floor(o()*u)];else{let m=[...a],p=i?[...i]:void 0;for(let y=0;y<c;y++){let d;if(p){let b=p.reduce((h,N)=>h+N,0),A=o()*b,g=0;d=0;for(let h=0;h<m.length;h++)if(g+=p[h],A<g){d=h;break}d===0&&A>=g&&(d=m.length-1)}else d=Math.floor(o()*m.length);f[y]=m[d],m.splice(d,1),p&&p.splice(d,1)}}return l}function C0(r,t,e=!0,n){return x0(r,t,e,n,G)}function S0(r,t=G){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)),u=e.iget(o);e.iset(o,e.iget(a)),e.iset(a,u)}return e}function w0(r){return S0(r,G)}function I0(r,t=G){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 z0(r){I0(r,G)}function _0(r){return bo(r)}function v0(r){return bo(r)}function M0(r){return bo(r)}function F0(r,t,e){return t===void 0&&(t=r,r=1),yl(r,t+1,e)}function B0(r){let t=new Uint8Array(r);for(let e=0;e<r;e++)t[e]=ll()&255;return t}var T0={name:"MT19937",state:Mr};function E0(){return T0}function O0(r){T0=r}function U0(r){return dl(1,r)}function $0(r,t){if(r<=0)throw new Error("shape must be positive");return Ds(r,1,t)}function k0(r){if(r===void 0)return Math.tan(Math.PI*(G()-.5));let t=Array.isArray(r)?r:[r],e=t.reduce((a,u)=>a*u,1),n=S.zeros(t,"float64"),o=n.data;for(let a=0;a<e;a++)o[a]=Math.tan(Math.PI*(G()-.5));return n}function R0(r,t){if(r<=0)throw new Error("df must be positive");let e=i=>{let s=Fr(i),c=pr(r/2,2,i);return s/Math.sqrt(c/r)};if(t===void 0)return e(G);let n=Array.isArray(t)?t:[t],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"float64"),u=a.data;for(let i=0;i<o;i++)u[i]=e(G);return a}function pr(r,t,e){if(r<1){let a=e();return pr(1+r,t,e)*Math.pow(a,1/r)}let n=r-1/3,o=1/Math.sqrt(9*n);for(;;){let a,u;do a=Fr(e),u=1+o*a;while(u<=0);u=u*u*u;let i=e(),s=a*a;if(i<1-.0331*s*s||Math.log(i)<.5*s+n*(1-u+Math.log(u)))return n*u*t}}function Ds(r,t=1,e){if(r<=0)throw new Error("shape must be positive");if(t<=0)throw new Error("scale must be positive");if(e===void 0)return pr(r,t,G);let n=Array.isArray(e)?e:[e],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"float64"),u=a.data;for(let i=0;i<o;i++)u[i]=pr(r,t,G);return a}function q0(r,t,e){if(r<=0||t<=0)throw new Error("a and b must be positive");let n=s=>{let c=pr(r,1,s),l=pr(t,1,s);return c/(c+l)};if(e===void 0)return n(G);let o=Array.isArray(e)?e:[e],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"float64"),i=u.data;for(let s=0;s<a;s++)i[s]=n(G);return u}function V0(r=0,t=1,e){if(t<=0)throw new Error("scale must be positive");let n=s=>{let c=s()-.5;return r-t*Math.sign(c)*Math.log(1-2*Math.abs(c))};if(e===void 0)return n(G);let o=Array.isArray(e)?e:[e],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"float64"),i=u.data;for(let s=0;s<a;s++)i[s]=n(G);return u}function P0(r=0,t=1,e){if(t<=0)throw new Error("scale must be positive");let n=s=>{let c=s();return r+t*Math.log(c/(1-c))};if(e===void 0)return n(G);let o=Array.isArray(e)?e:[e],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"float64"),i=u.data;for(let s=0;s<a;s++)i[s]=n(G);return u}function j0(r=0,t=1,e){if(t<=0)throw new Error("sigma must be positive");let n=s=>Math.exp(r+t*Fr(s));if(e===void 0)return n(G);let o=Array.isArray(e)?e:[e],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"float64"),i=u.data;for(let s=0;s<a;s++)i[s]=n(G);return u}function L0(r=0,t=1,e){if(t<=0)throw new Error("scale must be positive");let n=s=>{let c=s();return r-t*Math.log(-Math.log(c))};if(e===void 0)return n(G);let o=Array.isArray(e)?e:[e],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"float64"),i=u.data;for(let s=0;s<a;s++)i[s]=n(G);return u}function G0(r,t){if(r<=0)throw new Error("a must be positive");let e=i=>{let s=i();return Math.pow(1-s,-1/r)-1};if(t===void 0)return e(G);let n=Array.isArray(t)?t:[t],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"float64"),u=a.data;for(let i=0;i<o;i++)u[i]=e(G);return a}function Y0(r,t){if(r<=0)throw new Error("a must be positive");let e=i=>{let s=i();return Math.pow(s,1/r)};if(t===void 0)return e(G);let n=Array.isArray(t)?t:[t],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"float64"),u=a.data;for(let i=0;i<o;i++)u[i]=e(G);return a}function W0(r=1,t){if(r<=0)throw new Error("scale must be positive");let e=i=>{let s=i();return r*Math.sqrt(-2*Math.log(s))};if(t===void 0)return e(G);let n=Array.isArray(t)?t:[t],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"float64"),u=a.data;for(let i=0;i<o;i++)u[i]=e(G);return a}function Z0(r,t,e,n){if(r>t||t>e||r===e)throw new Error("must have left <= mode <= right and left < right");let o=c=>{let l=c(),f=(t-r)/(e-r);return l<f?r+Math.sqrt(l*(e-r)*(t-r)):e-Math.sqrt((1-l)*(e-r)*(e-t))};if(n===void 0)return o(G);let a=Array.isArray(n)?n:[n],u=a.reduce((c,l)=>c*l,1),i=S.zeros(a,"float64"),s=i.data;for(let c=0;c<u;c++)s[c]=o(G);return i}function J0(r,t,e){if(r<=0)throw new Error("mean must be positive");if(t<=0)throw new Error("scale must be positive");let n=s=>{let c=Fr(s),l=c*c,f=r/(2*t),m=r+f*(r*l-Math.sqrt(4*r*t*l+r*r*l*l));return s()<=r/(r+m)?m:r*r/m};if(e===void 0)return n(G);let o=Array.isArray(e)?e:[e],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"float64"),i=u.data;for(let s=0;s<a;s++)i[s]=n(G);return u}function X0(r,t){if(r<=0)throw new Error("a must be positive");let e=i=>{let s=i();return Math.pow(-Math.log(1-s),1/r)};if(t===void 0)return e(G);let n=Array.isArray(t)?t:[t],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"float64"),u=a.data;for(let i=0;i<o;i++)u[i]=e(G);return a}function K0(r,t){if(r<=0)throw new Error("df must be positive");return Ds(r/2,2,t)}function Q0(r,t,e){if(r<=0)throw new Error("df must be positive");if(t<0)throw new Error("nonc must be non-negative");let n=s=>{if(t===0)return pr(r/2,2,s);let c=ot(t/2,s);return pr(r/2+c,2,s)};if(e===void 0)return n(G);let o=Array.isArray(e)?e:[e],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"float64"),i=u.data;for(let s=0;s<a;s++)i[s]=n(G);return u}function H0(r,t,e){if(r<=0)throw new Error("dfnum must be positive");if(t<=0)throw new Error("dfden must be positive");let n=s=>{let c=pr(r/2,2,s),l=pr(t/2,2,s);return c/r/(l/t)};if(e===void 0)return n(G);let o=Array.isArray(e)?e:[e],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"float64"),i=u.data;for(let s=0;s<a;s++)i[s]=n(G);return u}function rN(r,t,e,n){if(r<=0)throw new Error("dfnum must be positive");if(t<=0)throw new Error("dfden must be positive");if(e<0)throw new Error("nonc must be non-negative");let o=c=>{let l=pr(e===0?r/2:r/2+ot(e/2,c),2,c),f=pr(t/2,2,c);return l/r/(f/t)};if(n===void 0)return o(G);let a=Array.isArray(n)?n:[n],u=a.reduce((c,l)=>c*l,1),i=S.zeros(a,"float64"),s=i.data;for(let c=0;c<u;c++)s[c]=o(G);return i}function tN(r,t){if(r<=0||r>1)throw new Error("p must be in (0, 1]");let e=i=>{if(r===1)return 1;let s=i();return Math.floor(Math.log(s)/Math.log(1-r))+1};if(t===void 0)return e(G);let n=Array.isArray(t)?t:[t],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"int64"),u=a.data;for(let i=0;i<o;i++)u[i]=BigInt(e(G));return a}function eN(r,t,e,n){if(r<0)throw new Error("ngood must be non-negative");if(t<0)throw new Error("nbad must be non-negative");if(e<0)throw new Error("nsample must be non-negative");if(e>r+t)throw new Error("nsample must be <= ngood + nbad");let o=c=>{let l=r,f=t,m=0,p=e;for(;p>0;){let y=l+f;if(y===0)break;c()<l/y?(m++,l--):f--,p--}return m};if(n===void 0)return o(G);let a=Array.isArray(n)?n:[n],u=a.reduce((c,l)=>c*l,1),i=S.zeros(a,"int64"),s=i.data;for(let c=0;c<u;c++)s[c]=BigInt(o(G));return i}function nN(r,t){if(r<=0||r>=1)throw new Error("p must be in (0, 1)");let e=Math.log(1-r),n=s=>{let c=s(),l=s(),f=1-Math.exp(e*c);if(l>=f||l===0)return 1;let m=Math.log(l),p=Math.log(f);return m>=p?1:m>=2*p?2:Math.floor(1+m/p)};if(t===void 0)return n(G);let o=Array.isArray(t)?t:[t],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"int64"),i=u.data;for(let s=0;s<a;s++)i[s]=BigInt(n(G));return u}function oN(r,t,e){if(r<=0)throw new Error("n must be positive");if(t<=0||t>1)throw new Error("p must be in (0, 1]");let n=s=>{if(t===1)return 0;let c=pr(r,(1-t)/t,s);return ot(c,s)};if(e===void 0)return n(G);let o=Array.isArray(e)?e:[e],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"int64"),i=u.data;for(let s=0;s<a;s++)i[s]=BigInt(n(G));return u}function aN(r,t){if(r<=1)throw new Error("a must be > 1");let e=r-1,n=Math.pow(2,e),o=c=>{for(;;){let l=1-c(),f=c(),m=Math.floor(Math.pow(l,-1/e)),p=Math.pow(1+1/m,e);if(f*m*(p-1)/(n-1)<=p/n)return m}};if(t===void 0)return o(G);let a=Array.isArray(t)?t:[t],u=a.reduce((c,l)=>c*l,1),i=S.zeros(a,"int64"),s=i.data;for(let c=0;c<u;c++)s[c]=BigInt(o(G));return i}function sN(r,t,e){let n=Array.isArray(t)?t:Array.from({length:t.size},(p,y)=>Number(t.iget(y))),o=n.length;if(o===0)throw new Error("pvals must have at least one element");let a=n.reduce((p,y)=>p+y,0),u=n.map(p=>p/a),i=p=>{let y=new Array(o).fill(0),d=r,b=1;for(let A=0;A<o-1&&d>0;A++){let g=u[A]/b,h=yo(d,Math.min(1,Math.max(0,g)),p);y[A]=h,d-=h,b-=u[A]}return y[o-1]=d,y};if(e===void 0){let p=i(G),y=S.zeros([o],"int64"),d=y.data;for(let b=0;b<o;b++)d[b]=BigInt(p[b]);return y}let s=Array.isArray(e)?e:[e],c=s.reduce((p,y)=>p*y,1),l=[...s,o],f=S.zeros(l,"int64"),m=f.data;for(let p=0;p<c;p++){let y=i(G);for(let d=0;d<o;d++)m[p*o+d]=BigInt(y[d])}return f}function iN(r,t,e,n="warn",o=1e-8){let a=Array.isArray(r)?r:Array.from({length:r.size},(d,b)=>Number(r.iget(b))),u=a.length,i;if(Array.isArray(t))i=t;else{i=[];for(let d=0;d<u;d++){i.push([]);for(let b=0;b<u;b++)i[d].push(Number(t.iget(d*u+b)))}}let s=Array(u).fill(0).map(()=>Array(u).fill(0));for(let d=0;d<u;d++)for(let b=0;b<=d;b++){let A=i[d][b];for(let g=0;g<b;g++)A-=s[d][g]*s[b][g];if(d===b){if(A<-o){if(n==="raise")throw new Error("covariance matrix is not positive semi-definite");n==="warn"&&console.warn("covariance matrix is not positive semi-definite"),A=0}s[d][b]=Math.sqrt(Math.max(0,A))}else s[d][b]=s[b][b]!==0?A/s[b][b]:0}let c=d=>{let b=[];for(let g=0;g<u;g++)b.push(Fr(d));let A=[];for(let g=0;g<u;g++){let h=a[g];for(let N=0;N<=g;N++)h+=s[g][N]*b[N];A.push(h)}return A};if(e===void 0){let d=c(G),b=S.zeros([u],"float64"),A=b.data;for(let g=0;g<u;g++)A[g]=d[g];return b}let l=Array.isArray(e)?e:[e],f=l.reduce((d,b)=>d*b,1),m=[...l,u],p=S.zeros(m,"float64"),y=p.data;for(let d=0;d<f;d++){let b=c(G);for(let A=0;A<u;A++)y[d*u+A]=b[A]}return p}function uN(r,t){let e=Array.isArray(r)?r:Array.from({length:r.size},(l,f)=>Number(r.iget(f))),n=e.length;if(n<2)throw new Error("alpha must have at least 2 elements");for(let l of e)if(l<=0)throw new Error("all alpha values must be positive");let o=l=>{let f=[],m=0;for(let p=0;p<n;p++){let y=pr(e[p],1,l);f.push(y),m+=y}return f.map(p=>p/m)};if(t===void 0){let l=o(G),f=S.zeros([n],"float64"),m=f.data;for(let p=0;p<n;p++)m[p]=l[p];return f}let a=Array.isArray(t)?t:[t],u=a.reduce((l,f)=>l*f,1),i=[...a,n],s=S.zeros(i,"float64"),c=s.data;for(let l=0;l<u;l++){let f=o(G);for(let m=0;m<n;m++)c[l*n+m]=f[m]}return s}function cN(r,t,e){if(t<0)throw new Error("kappa must be non-negative");let n=s=>{if(t===0)return 2*Math.PI*s()-Math.PI;let c=1+Math.sqrt(1+4*t*t),l=(c-Math.sqrt(2*c))/(2*t),f=(1+l*l)/(2*l);for(;;){let m=s(),p=Math.cos(Math.PI*m),y=(1+f*p)/(f+p),d=t*(f-y),b=s();if(d*(2-d)>b||Math.log(d/b)+1-d>=0)return((s()>.5?Math.acos(y):-Math.acos(y))+r+Math.PI)%(2*Math.PI)-Math.PI}};if(e===void 0)return n(G);let o=Array.isArray(e)?e:[e],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"float64"),i=u.data;for(let s=0;s<a;s++)i[s]=n(G);return u}function o1(r,t,e){let n=r.length;n!==0&&n!==1&&((n&n-1)===0?xs(r,t,e):s1(r,t,e))}var Ao=new Map;function a1(r,t){let e=`${r}_${t}`,n=Ao.get(e);if(n)return n;let o=new Float64Array(r/2),a=new Float64Array(r/2),u=t?1:-1;for(let i=0;i<r/2;i++){let s=u*2*Math.PI*i/r;o[i]=Math.cos(s),a[i]=Math.sin(s)}if(n={cos:o,sin:a},Ao.set(e,n),Ao.size>100){let i=Ao.keys().next().value;Ao.delete(i)}return n}function xs(r,t,e){let n=r.length,o=0;for(let i=0;i<n-1;i++){if(i<o){let c=r[i];r[i]=r[o],r[o]=c,c=t[i],t[i]=t[o],t[o]=c}let s=n>>1;for(;s<=o;)o-=s,s>>=1;o+=s}let{cos:a,sin:u}=a1(n,e);for(let i=2;i<=n;i*=2){let s=i>>1,c=n/i;for(let l=0;l<n;l+=i)for(let f=0,m=0;f<s;f++,m+=c){let p=a[m],y=u[m],d=l+f,b=l+f+s,A=r[d],g=t[d],h=r[b],N=t[b],D=p*h-y*N,x=p*N+y*h;r[d]=A+D,t[d]=g+x,r[b]=A-D,t[b]=g-x}}if(e){let i=1/n;for(let s=0;s<n;s++)r[s]=r[s]*i,t[s]=t[s]*i}}function s1(r,t,e){let n=r.length,o=1;for(;o<2*n-1;)o*=2;let a=e?1:-1,u=new Float64Array(n),i=new Float64Array(n);for(let m=0;m<n;m++){let p=a*Math.PI*m*m/n;u[m]=Math.cos(p),i[m]=Math.sin(p)}let s=new Float64Array(o),c=new Float64Array(o);for(let m=0;m<n;m++){let p=u[m],y=i[m];s[m]=r[m]*p-t[m]*y,c[m]=t[m]*p+r[m]*y}let l=new Float64Array(o),f=new Float64Array(o);l[0]=u[0],f[0]=-i[0];for(let m=1;m<n;m++)l[m]=u[m],f[m]=-i[m],l[o-m]=u[m],f[o-m]=-i[m];xs(s,c,!1),xs(l,f,!1);for(let m=0;m<o;m++){let p=s[m],y=c[m],d=l[m],b=f[m];s[m]=p*d-y*b,c[m]=p*b+y*d}xs(s,c,!0);for(let m=0;m<n;m++){let p=s[m],y=c[m],d=u[m],b=i[m];r[m]=p*d-y*b,t[m]=y*d+p*b}if(e)for(let m=0;m<n;m++)r[m]=r[m]/n,t[m]=t[m]/n}function _t(r,t,e=-1,n="backward"){return vt(r,t!==void 0?[t]:void 0,[e],n,!1)}function go(r,t,e=-1,n="backward"){return vt(r,t!==void 0?[t]:void 0,[e],n,!0)}function lN(r,t,e=[-2,-1],n="backward"){return vt(r,t,e,n,!1)}function fN(r,t,e=[-2,-1],n="backward"){return vt(r,t,e,n,!0)}function mN(r,t,e,n="backward"){return vt(r,t,e,n,!1)}function pN(r,t,e,n="backward"){return vt(r,t,e,n,!0)}function vt(r,t,e,n="backward",o=!1){let a=Array.from(r.shape),u=a.length;if(r.size===0)return S.zeros(a,"complex128");if(u===0){let l=S.zeros([1],"complex128"),f=r.iget(0),m=f instanceof U?f.re:Number(f),p=f instanceof U?f.im:0,y=l.data;return y[0]=m,y[1]=p,S.fromData(l.data,[],"complex128")}let i;if(e===void 0)if(t===void 0)i=Array.from({length:u},(l,f)=>f);else{i=[];for(let l=0;l<t.length;l++)i.push(u-t.length+l)}else i=e.map(l=>l<0?u+l:l);let s=[...a];if(t!==void 0)for(let l=0;l<t.length;l++){let f=i[l];s[f]=t[l]}let c=ho(r);t!==void 0&&(c=i1(c,s,i));for(let l of i)c=c1(c,l,o,n);return c}function ho(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(t==="complex128"||t==="complex64"){let i=S.zeros(e,"complex128"),s=i.data,c=r.data;for(let l=0;l<n*2;l++)s[l]=c[l];return i}let o=S.zeros(e,"complex128"),a=o.data,u=r.data;if(t==="float64"){let i=u;for(let s=0;s<n;s++)a[s*2]=i[s]}else if(t==="float32"){let i=u;for(let s=0;s<n;s++)a[s*2]=i[s]}else if(t==="int32"){let i=u;for(let s=0;s<n;s++)a[s*2]=i[s]}else if(t==="int16"){let i=u;for(let s=0;s<n;s++)a[s*2]=i[s]}else if(t==="int8"){let i=u;for(let s=0;s<n;s++)a[s*2]=i[s]}else if(t==="uint32"){let i=u;for(let s=0;s<n;s++)a[s*2]=i[s]}else if(t==="uint16"){let i=u;for(let s=0;s<n;s++)a[s*2]=i[s]}else if(t==="uint8"){let i=u;for(let s=0;s<n;s++)a[s*2]=i[s]}else if(t==="int64"||t==="uint64"){let i=u;for(let s=0;s<n;s++)a[s*2]=Number(i[s])}else for(let i=0;i<n;i++)a[i*2]=Number(u[i]);return o}function i1(r,t,e){let n=Array.from(r.shape),o=r;for(let a of e){let u=n[a],i=t[a];u!==i&&(i>u?o=u1(o,a,i):o=bl(o,a,i),n[a]=i)}return o}function u1(r,t,e){let n=Array.from(r.shape),o=n[t];n[t]=e;let a=S.zeros(n,"complex128"),u=a.data,i=r.data,s=n.slice(0,t).reduce((l,f)=>l*f,1),c=n.slice(t+1).reduce((l,f)=>l*f,1);for(let l=0;l<s;l++)for(let f=0;f<o;f++)for(let m=0;m<c;m++){let p=(l*o+f)*c+m,y=(l*e+f)*c+m;u[y*2]=i[p*2],u[y*2+1]=i[p*2+1]}return a}function bl(r,t,e){let n=Array.from(r.shape),o=n[t];n[t]=e;let a=S.zeros(n,"complex128"),u=a.data,i=r.data,s=n.slice(0,t).reduce((l,f)=>l*f,1),c=n.slice(t+1).reduce((l,f)=>l*f,1);for(let l=0;l<s;l++)for(let f=0;f<e;f++)for(let m=0;m<c;m++){let p=(l*o+f)*c+m,y=(l*e+f)*c+m;u[y*2]=i[p*2],u[y*2+1]=i[p*2+1]}return a}function c1(r,t,e,n){let o=Array.from(r.shape),a=o[t];if(a===0)return r;let u=S.zeros(o,"complex128"),i=u.data,s=r.data,c=o.slice(0,t).reduce((p,y)=>p*y,1),l=o.slice(t+1).reduce((p,y)=>p*y,1),f=new Float64Array(a),m=new Float64Array(a);for(let p=0;p<c;p++)for(let y=0;y<l;y++){for(let d=0;d<a;d++){let b=(p*a+d)*l+y;f[d]=s[b*2],m[d]=s[b*2+1]}if(o1(f,m,e),n==="ortho"){let d=1/Math.sqrt(a);if(e){let b=Math.sqrt(a);for(let A=0;A<a;A++)f[A]=f[A]*b,m[A]=m[A]*b}else for(let b=0;b<a;b++)f[b]=f[b]*d,m[b]=m[b]*d}else if(n==="forward"&&!e){let d=1/a;for(let b=0;b<a;b++)f[b]=f[b]*d,m[b]=m[b]*d}else if(!(n==="backward"&&e)){if(n==="forward"&&e)for(let d=0;d<a;d++)f[d]=f[d]*a,m[d]=m[d]*a}for(let d=0;d<a;d++){let b=(p*a+d)*l+y;i[b*2]=f[d],i[b*2+1]=m[d]}}return u}function Ss(r,t,e=-1,n="backward"){let o=Array.from(r.shape),a=o.length,u=e<0?a+e:e,i=t??o[u],s=_t(r,i,e,n),c=Math.floor(i/2)+1;return bl(s,u,c)}function No(r,t,e=-1,n="backward"){let o=Array.from(r.shape),a=o.length,u=e<0?a+e:e,i=o[u],s=t??(i-1)*2,c=[...o];c[u]=s;let l=S.zeros(c,"complex128"),f=l.data,m=ho(r).data,p=o.slice(0,u).reduce((b,A)=>b*A,1),y=o.slice(u+1).reduce((b,A)=>b*A,1);for(let b=0;b<p;b++)for(let A=0;A<y;A++){for(let g=0;g<i;g++){let h=(b*i+g)*y+A,N=(b*s+g)*y+A;f[N*2]=m[h*2],f[N*2+1]=m[h*2+1]}for(let g=i;g<s;g++){let h=s-g,N=(b*i+h)*y+A,D=(b*s+g)*y+A;f[D*2]=m[N*2],f[D*2+1]=-m[N*2+1]}}let d=go(l,s,e,n);return Cs(d)}function yN(r,t,e=[-2,-1],n="backward"){let a=Array.from(r.shape).length,u=e[0]<0?a+e[0]:e[0],i=e[1]<0?a+e[1]:e[1],s=_t(r,t?t[0]:void 0,u,n),c=Array.from(s.shape),l=t?t[1]:c[i];s=_t(s,l,i,n);let f=Math.floor(l/2)+1;return bl(s,i,f)}function dN(r,t,e=[-2,-1],n="backward"){let o=Array.from(r.shape),a=o.length,u=e[0]<0?a+e[0]:e[0],i=e[1]<0?a+e[1]:e[1],s=o[i],c=t?t[1]:(s-1)*2,l=t?t[0]:o[u],f=No(r,c,i,n);return f=go(f,l,u,n),Cs(f)}function bN(r,t,e,n="backward"){let a=Array.from(r.shape).length,u;if(e===void 0?u=Array.from({length:a},(l,f)=>f):u=e.map(l=>l<0?a+l:l),u.length===0)return ho(r);let i=r;for(let l=0;l<u.length-1;l++){let f=u[l],m=t?t[l]:void 0;i=_t(i,m,f,n)}let s=u[u.length-1],c=t?t[u.length-1]:void 0;return Ss(i,c,s,n)}function AN(r,t,e,n="backward"){let o=Array.from(r.shape),a=o.length,u;if(e===void 0?u=Array.from({length:a},(f,m)=>m):u=e.map(f=>f<0?a+f:f),u.length===0)return Cs(ho(r));let i=u[u.length-1],s=o[i],c=t?[...t]:u.map((f,m)=>m===u.length-1?(s-1)*2:o[f]),l=No(r,c[u.length-1],i,n);for(let f=u.length-2;f>=0;f--){let m=u[f];l=go(l,c[f],m,n)}return Cs(l)}function gN(r,t,e=-1,n="backward"){let o=Array.from(r.shape),a=o.length,u=e<0?a+e:e,i=o[u],s=t??(i-1)*2,c=NN(ho(r)),l=No(c,s,e,n),f=l.data;for(let m=0;m<l.size;m++)f[m]=f[m]*s;return l}function hN(r,t,e=-1,n="backward"){let o=Array.from(r.shape),a=o.length,u=e<0?a+e:e,i=t??o[u],s=Ss(r,i,e,n),c=NN(s),l=c.data;for(let f=0;f<c.size*2;f++)l[f]=l[f]/i;return c}function NN(r){let t=Array.from(r.shape),e=r.size,n=S.zeros(t,"complex128"),o=n.data,a=r.data;for(let u=0;u<e;u++)o[u*2]=a[u*2],o[u*2+1]=-a[u*2+1];return n}function Cs(r){let t=Array.from(r.shape),e=r.size,n=S.zeros(t,"float64"),o=n.data,a=r.data;for(let u=0;u<e;u++)o[u]=a[u*2];return n}function DN(r,t=1){let e=S.zeros([r],"float64"),n=e.data,o=Math.floor((r-1)/2)+1;for(let a=0;a<o;a++)n[a]=a/(r*t);for(let a=o;a<r;a++)n[a]=(a-r)/(r*t);return e}function xN(r,t=1){let e=Math.floor(r/2)+1,n=S.zeros([e],"float64"),o=n.data;for(let a=0;a<e;a++)o[a]=a/(r*t);return n}function CN(r,t){let e=Array.from(r.shape),n=e.length,o;t===void 0?o=Array.from({length:n},(u,i)=>i):typeof t=="number"?o=[t<0?n+t:t]:o=t.map(u=>u<0?n+u:u);let a=e.map((u,i)=>o.includes(i)?Math.floor(e[i]/2):0);return wN(r,a)}function SN(r,t){let e=Array.from(r.shape),n=e.length,o;t===void 0?o=Array.from({length:n},(u,i)=>i):typeof t=="number"?o=[t<0?n+t:t]:o=t.map(u=>u<0?n+u:u);let a=e.map((u,i)=>o.includes(i)?-Math.floor(e[i]/2):0);return wN(r,a)}function wN(r,t){let e=Array.from(r.shape),n=r.dtype,o=r.size,a=S.zeros(e,n),u=n==="complex128"||n==="complex64",i=new Array(e.length);i[e.length-1]=1;for(let s=e.length-2;s>=0;s--)i[s]=i[s+1]*e[s+1];for(let s=0;s<o;s++){let c=new Array(e.length),l=s;for(let p=0;p<e.length;p++)c[p]=Math.floor(l/i[p]),l=l%i[p];let f=c.map((p,y)=>{let d=p+t[y],b=e[y];return d=(d%b+b)%b,d}),m=0;for(let p=0;p<e.length;p++)m+=f[p]*i[p];if(u){let p=r.data,y=a.data;y[m*2]=p[s*2],y[m*2+1]=p[s*2+1]}else{let p=r.iget(s);a.iset(m,p)}}return a}function Lr(r){return er.fromStorage(r.storage)}function f1(r){return Lr(As(r))}var m1=Oc;function p1(r,t){return Lr(Uc(r,t))}async function y1(r,t={}){let e=await kc(r,t),n=new Map;for(let[o,a]of e.arrays)n.set(o,Lr(a));return{arrays:n,skipped:e.skipped,errors:e.errors}}function d1(r,t={}){let e=Rc(r,t),n=new Map;for(let[o,a]of e.arrays)n.set(o,Lr(a));return{arrays:n,skipped:e.skipped,errors:e.errors}}async function b1(r,t={}){let e=await yd(r,t),n={};for(let[o,a]of Object.entries(e))n[o]=Lr(a);return n}function A1(r,t={}){let e=dd(r,t),n={};for(let[o,a]of Object.entries(e))n[o]=Lr(a);return n}function g1(r,t={}){return Lr(qc(r,t))}function h1(r,t={}){return Lr(Sd(r,t))}function N1(r,t,e="float64"){return Lr(wd(r,t,e))}function H(r){return r&&typeof r=="object"&&"_data"in r&&"_shape"in r?er.fromStorage(r):r}var D1={seed:m0,get_state:p0,set_state:y0,get_bit_generator:E0,set_bit_generator:O0,default_rng:f0,Generator:mo,random:r=>H(bo(r)),rand:(...r)=>H(d0(...r)),randn:(...r)=>H(b0(...r)),randint:(r,t,e,n)=>H(yl(r,t,e,n)),random_sample:r=>H(_0(r)),ranf:r=>H(v0(r)),sample:r=>H(M0(r)),random_integers:(r,t,e)=>H(F0(r,t,e)),bytes:B0,uniform:(r,t,e)=>H(A0(r,t,e)),normal:(r,t,e)=>H(g0(r,t,e)),standard_normal:r=>H(h0(r)),exponential:(r,t)=>H(dl(r,t)),standard_exponential:r=>H(U0(r)),gamma:(r,t,e)=>H(Ds(r,t,e)),standard_gamma:(r,t)=>H($0(r,t)),beta:(r,t,e)=>H(q0(r,t,e)),chisquare:(r,t)=>H(K0(r,t)),noncentral_chisquare:(r,t,e)=>H(Q0(r,t,e)),f:(r,t,e)=>H(H0(r,t,e)),noncentral_f:(r,t,e,n)=>H(rN(r,t,e,n)),standard_cauchy:r=>H(k0(r)),standard_t:(r,t)=>H(R0(r,t)),laplace:(r,t,e)=>H(V0(r,t,e)),logistic:(r,t,e)=>H(P0(r,t,e)),lognormal:(r,t,e)=>H(j0(r,t,e)),gumbel:(r,t,e)=>H(L0(r,t,e)),pareto:(r,t)=>H(G0(r,t)),power:(r,t)=>H(Y0(r,t)),rayleigh:(r,t)=>H(W0(r,t)),triangular:(r,t,e,n)=>H(Z0(r,t,e,n)),wald:(r,t,e)=>H(J0(r,t,e)),weibull:(r,t)=>H(X0(r,t)),poisson:(r,t)=>H(N0(r,t)),binomial:(r,t,e)=>H(D0(r,t,e)),geometric:(r,t)=>H(tN(r,t)),hypergeometric:(r,t,e,n)=>H(eN(r,t,e,n)),logseries:(r,t)=>H(nN(r,t)),negative_binomial:(r,t,e)=>H(oN(r,t,e)),zipf:(r,t)=>H(aN(r,t)),multinomial:(r,t,e)=>H(sN(r,t,e)),multivariate_normal:(r,t,e,n,o)=>H(iN(r,t,e,n,o)),dirichlet:(r,t)=>H(uN(r,t)),vonmises:(r,t,e)=>H(cN(r,t,e)),choice:(r,t,e,n)=>H(C0(r,t,e,n)),permutation:r=>H(w0(r)),shuffle:z0};function fr(r){return r instanceof er||r instanceof P?r.storage:r}var x1={fft:(r,t,e,n)=>er.fromStorage(_t(fr(r),t,e,n)),ifft:(r,t,e,n)=>er.fromStorage(go(fr(r),t,e,n)),fft2:(r,t,e,n)=>er.fromStorage(lN(fr(r),t,e,n)),ifft2:(r,t,e,n)=>er.fromStorage(fN(fr(r),t,e,n)),fftn:(r,t,e,n)=>er.fromStorage(mN(fr(r),t,e,n)),ifftn:(r,t,e,n)=>er.fromStorage(pN(fr(r),t,e,n)),rfft:(r,t,e,n)=>er.fromStorage(Ss(fr(r),t,e,n)),irfft:(r,t,e,n)=>er.fromStorage(No(fr(r),t,e,n)),rfft2:(r,t,e,n)=>er.fromStorage(yN(fr(r),t,e,n)),irfft2:(r,t,e,n)=>er.fromStorage(dN(fr(r),t,e,n)),rfftn:(r,t,e,n)=>er.fromStorage(bN(fr(r),t,e,n)),irfftn:(r,t,e,n)=>er.fromStorage(AN(fr(r),t,e,n)),hfft:(r,t,e,n)=>er.fromStorage(gN(fr(r),t,e,n)),ihfft:(r,t,e,n)=>er.fromStorage(hN(fr(r),t,e,n)),fftfreq:(r,t)=>er.fromStorage(DN(r,t)),rfftfreq:(r,t)=>er.fromStorage(xN(r,t)),fftshift:(r,t)=>er.fromStorage(CN(fr(r),t)),ifftshift:(r,t)=>er.fromStorage(SN(fr(r),t))},C1="0.13.0";return BN(S1);})();
|