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
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
var ae=Object.defineProperty;var vu=Object.getOwnPropertyDescriptor;var Tu=Object.getOwnPropertyNames;var Eu=Object.prototype.hasOwnProperty;var W=(r,t)=>()=>(r&&(t=r(r=0)),t);var Fn=(r,t)=>{for(var e in t)ae(r,e,{get:t[e],enumerable:!0})},Ou=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Tu(t))!Eu.call(r,o)&&o!==e&&ae(r,o,{get:()=>t[o],enumerable:!(n=vu(t,o))||n.enumerable});return r};var Mn=r=>Ou(ae({},"__esModule",{value:!0}),r);function Bn(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 vn(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 Tn=W(()=>{"use strict"});function j(r){switch(r){case"float64":return Float64Array;case"float32":return Float32Array;case"complex128":return Float64Array;case"complex64":return Float32Array;case"int64":return BigInt64Array;case"int32":return Int32Array;case"int16":return Int16Array;case"int8":return Int8Array;case"uint64":return BigUint64Array;case"uint32":return Uint32Array;case"uint16":return Uint16Array;case"uint8":return Uint8Array;case"bool":return Uint8Array;default:throw new Error(`Unknown dtype: ${r}`)}}function zt(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 On(r){return r==="int64"||r==="int32"||r==="int16"||r==="int8"||r==="uint64"||r==="uint32"||r==="uint16"||r==="uint8"}function En(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 Kr(r){if(r==="complex128")return"float64";if(r==="complex64")return"float32";throw new Error(`${r} is not a complex dtype`)}function Cn(r){return typeof r=="object"&&r!==null&&"re"in r&&"im"in r}function Z(r,t){if(r===t)return r;if(r==="bool")return t;if(t==="bool")return r;if(M(r)||M(t)){if(M(r)&&M(t))return r==="complex128"||t==="complex128"?"complex128":"complex64";let c=M(r)?r:t,l=M(r)?t:r;return c==="complex128"||l==="float64"||l==="int64"||l==="uint64"||l==="int32"||l==="uint32"?"complex128":"complex64"}if(En(r)||En(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 rr,J=W(()=>{"use strict";rr="float64"});var O,xr=W(()=>{"use strict";O=class r{constructor(t,e=0){this.re=t,this.im=e}abs(){return Math.sqrt(this.re*this.re+this.im*this.im)}angle(){return Math.atan2(this.im,this.re)}conj(){return new r(this.re,-this.im)}add(t){return typeof t=="number"?new r(this.re+t,this.im):new r(this.re+t.re,this.im+t.im)}sub(t){return typeof t=="number"?new r(this.re-t,this.im):new r(this.re-t.re,this.im-t.im)}mul(t){return typeof t=="number"?new r(this.re*t,this.im*t):new r(this.re*t.re-this.im*t.im,this.re*t.im+this.im*t.re)}div(t){if(typeof t=="number")return new r(this.re/t,this.im/t);let e=t.re*t.re+t.im*t.im;return new r((this.re*t.re+this.im*t.im)/e,(this.im*t.re-this.re*t.im)/e)}neg(){return new r(-this.re,-this.im)}equals(t){return this.re===t.re&&this.im===t.im}toString(){return this.im===0?`(${this.re}+0j)`:this.im<0?`(${this.re}${this.im}j)`:`(${this.re}+${this.im}j)`}static from(t){if(t instanceof r)return t;if(typeof t=="number")return new r(t,0);if(Array.isArray(t))return new r(t[0]??0,t[1]??0);if(typeof t=="object"&&t!==null&&"re"in t)return new r(t.re??0,t.im??0);throw new Error(`Cannot convert ${t} to Complex`)}static isComplex(t){return t instanceof r||typeof t=="object"&&t!==null&&"re"in t&&"im"in t}}});function ur(r){let t=new Array(r.length),e=1;for(let n=r.length-1;n>=0;n--)t[n]=e,e*=r[n];return t}var D,X=W(()=>{"use strict";J();xr();D=class r{constructor(t,e,n,o,a){this._data=t,this._shape=e,this._strides=n,this._offset=o,this._dtype=a}get shape(){return this._shape}get ndim(){return this._shape.length}get size(){return this._shape.reduce((t,e)=>t*e,1)}get dtype(){return this._dtype}get data(){return this._data}get strides(){return this._strides}get offset(){return this._offset}get isCContiguous(){let t=this._shape,e=this._strides,n=t.length;if(n===0)return!0;if(n===1)return e[0]===1;let o=1;for(let a=n-1;a>=0;a--){if(e[a]!==o)return!1;o*=t[a]}return!0}get isFContiguous(){let t=this._shape,e=this._strides,n=t.length;if(n===0)return!0;if(n===1)return e[0]===1;let o=1;for(let a=0;a<n;a++){if(e[a]!==o)return!1;o*=t[a]}return!0}iget(t){let e=this._shape,n=this._strides,o=e.length,a=M(this._dtype),u;if(o===0)u=this._offset;else{let s=t;u=this._offset;for(let i=0;i<o;i++){let c=1;for(let m=i+1;m<o;m++)c*=e[m];let l=Math.floor(s/c);s=s%c,u+=l*n[i]}}if(a){let s=u*2,i=this._data[s],c=this._data[s+1];return new O(i,c)}return this._data[u]}iset(t,e){let n=this._shape,o=this._strides,a=n.length,u=M(this._dtype),s;if(a===0)s=this._offset;else{let i=t;s=this._offset;for(let c=0;c<a;c++){let l=1;for(let y=c+1;y<a;y++)l*=n[y];let m=Math.floor(i/l);i=i%l,s+=m*o[c]}}if(u){let i=s*2,c,l;e instanceof O?(c=e.re,l=e.im):typeof e=="object"&&e!==null&&"re"in e?(c=e.re,l=e.im??0):(c=Number(e),l=0),this._data[i]=c,this._data[i+1]=l}else this._data[s]=e}get(...t){let e=this._strides,n=this._offset;for(let o=0;o<t.length;o++)n+=t[o]*e[o];if(M(this._dtype)){let o=n*2,a=this._data[o],u=this._data[o+1];return new O(a,u)}return this._data[n]}set(t,e){let n=this._strides,o=this._offset;for(let a=0;a<t.length;a++)o+=t[a]*n[a];if(M(this._dtype)){let a=o*2,u,s;e instanceof O?(u=e.re,s=e.im):typeof e=="object"&&e!==null&&"re"in e?(u=e.re,s=e.im??0):(u=Number(e),s=0),this._data[a]=u,this._data[a+1]=s}else this._data[o]=e}copy(){let t=Array.from(this._shape),e=this._dtype,n=this.size,o=M(e),a=j(e);if(!a)throw new Error(`Cannot copy array with dtype ${e}`);let u=o?n*2:n,s=new a(u);if(this.isCContiguous&&this._offset===0)if(B(e)){let i=this._data,c=s;for(let l=0;l<u;l++)c[l]=i[l]}else s.set(this._data.subarray(0,u));else if(B(e)){let i=s;for(let c=0;c<n;c++)i[c]=this.iget(c)}else if(o){let i=s;for(let c=0;c<n;c++){let l=this.iget(c);i[c*2]=l.re,i[c*2+1]=l.im}}else for(let i=0;i<n;i++)s[i]=this.iget(i);return new r(s,t,r._computeStrides(t),0,e)}static fromData(t,e,n,o,a){let u=o??r._computeStrides(e),s=a??0;return new r(t,e,u,s,n)}static zeros(t,e=rr){let n=t.reduce((i,c)=>i*c,1),o=M(e),a=j(e);if(!a)throw new Error(`Cannot create array with dtype ${e}`);let u=o?n*2:n,s=new a(u);return new r(s,t,r._computeStrides(t),0,e)}static ones(t,e=rr){let n=t.reduce((i,c)=>i*c,1),o=M(e),a=j(e);if(!a)throw new Error(`Cannot create array with dtype ${e}`);let u=o?n*2:n,s=new a(u);if(B(e))s.fill(BigInt(1));else if(o){let i=s;for(let c=0;c<n;c++)i[c*2]=1,i[c*2+1]=0}else s.fill(1);return new r(s,t,r._computeStrides(t),0,e)}static _computeStrides(t){let e=new Array(t.length),n=1;for(let o=t.length-1;o>=0;o--)e[o]=n,n*=t[o];return e}}});function gr(r){if(r.length===0)return[];if(r.length===1)return Array.from(r[0]);let t=Math.max(...r.map(n=>n.length)),e=new Array(t);for(let n=0;n<t;n++){let o=1;for(let a of r){let u=a.length-t+n,s=u<0?1:a[u];if(s!==1){if(o===1)o=s;else if(o!==s)return null}}e[n]=o}return e}function Cu(r,t,e){let n=r.length,o=e.length,a=new Array(o).fill(0);for(let u=0;u<n;u++){let s=o-n+u,i=r[u],c=e[s];if(i===c)a[s]=t[u];else if(i===1)a[s]=0;else throw new Error("Invalid broadcast")}return a}function pr(r,t){let e=Cu(r.shape,r.strides,t);return D.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function se(...r){let t=gr(r);if(t===null){let e=r.map(n=>`(${n.join(",")})`).join(" ");throw new Error(`shape mismatch: objects cannot be broadcast to a single shape. Mismatch is between ${e}`)}return t}var _t=W(()=>{"use strict";X()});function Br(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 Uu(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 Ft(r,t){let e=Uu(r.shape,r.strides,t);return D.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function K(r,t,e,n){let o=Br(r.shape,t.shape),a=Ft(r,o),u=Ft(t,o),s=Z(r.dtype,t.dtype),i=D.zeros(o,s),c=i.data,l=i.size;if(B(s)){let m=c;for(let y=0;y<l;y++){let d=a.iget(y),f=u.iget(y),p=d instanceof O?d.re:d,g=f instanceof O?f.re:f,h=typeof p=="bigint"?p:BigInt(Math.round(p)),b=typeof g=="bigint"?g:BigInt(Math.round(g));n==="add"?m[y]=h+b:n==="subtract"?m[y]=h-b:n==="multiply"?m[y]=h*b:n==="divide"?m[y]=h/b:m[y]=BigInt(Math.round(e(Number(h),Number(b))))}}else{let m=B(r.dtype)||B(t.dtype);for(let y=0;y<l;y++){let d=a.iget(y),f=u.iget(y),p=Number(d),g=Number(f);c[y]=e(p,g)}}return i}function yr(r,t,e){let n=Br(r.shape,t.shape),o=Ft(r,n),a=Ft(t,n),u=n.reduce((c,l)=>c*l,1),s=new Uint8Array(u),i=B(r.dtype)||B(t.dtype);for(let c=0;c<u;c++){let l=o.iget(c),m=a.iget(c),y=Number(l),d=Number(m);s[c]=e(y,d)?1:0}return D.fromData(s,n,"bool")}function H(r,t,e=!0){let n=r.dtype,o=Array.from(r.shape),a=r.size,s=e?n:n!=="float32"&&n!=="float64"?"float64":n,i=D.zeros(o,s),c=i.data,l=r.data;if(B(n))if(B(s)){let m=c;for(let y=0;y<a;y++){let d=Number(l[y]);m[y]=BigInt(Math.round(t(d)))}}else for(let m=0;m<a;m++)c[m]=t(Number(l[m]));else for(let m=0;m<a;m++)c[m]=t(Number(l[m]));return i}var Ir=W(()=>{"use strict";X();J();xr()});function ie(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function fr(r,t){return[r[t*2],r[t*2+1]]}function zr(r,t,e,n){r[t*2]=e,r[t*2+1]=n}function Un(r,t){return typeof t=="number"?qu(r,t):ie(r,t)?$u(r,t):K(r,t,(e,n)=>e+n,"add")}function $u(r,t){let e=Z(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(M(e)){let i=s,c=M(r.dtype),l=M(t.dtype);for(let m=0;m<o;m++){let[y,d]=c?fr(a,m):[Number(a[m]),0],[f,p]=l?fr(u,m):[Number(u[m]),0];zr(i,m,y+f,d+p)}return n}if(B(e)){let i=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),y=typeof u[l]=="bigint"?u[l]:BigInt(Math.round(Number(u[l])));i[l]=m+y}else{let l=a,m=u;for(let y=0;y<o;y++)i[y]=l[y]+m[y]}}else if(B(r.dtype)||B(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof u[c]=="bigint"?Number(u[c]):u[c];s[c]=l+m}else for(let c=0;c<o;c++)s[c]=a[c]+u[c];return n}function $n(r,t){return typeof t=="number"?Vu(r,t):ie(r,t)?Ru(r,t):K(r,t,(e,n)=>e-n,"subtract")}function Ru(r,t){let e=Z(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(M(e)){let i=s,c=M(r.dtype),l=M(t.dtype);for(let m=0;m<o;m++){let[y,d]=c?fr(a,m):[Number(a[m]),0],[f,p]=l?fr(u,m):[Number(u[m]),0];zr(i,m,y-f,d-p)}return n}if(B(e)){let i=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),y=typeof u[l]=="bigint"?u[l]:BigInt(Math.round(Number(u[l])));i[l]=m-y}else{let l=a,m=u;for(let y=0;y<o;y++)i[y]=l[y]-m[y]}}else if(B(r.dtype)||B(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof u[c]=="bigint"?Number(u[c]):u[c];s[c]=l-m}else for(let c=0;c<o;c++)s[c]=a[c]-u[c];return n}function Rn(r,t){return typeof t=="number"?Pu(r,t):ie(r,t)?ku(r,t):K(r,t,(e,n)=>e*n,"multiply")}function ku(r,t){let e=Z(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(M(e)){let i=s,c=M(r.dtype),l=M(t.dtype);for(let m=0;m<o;m++){let[y,d]=c?fr(a,m):[Number(a[m]),0],[f,p]=l?fr(u,m):[Number(u[m]),0],g=y*f-d*p,h=y*p+d*f;zr(i,m,g,h)}return n}if(B(e)){let i=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),y=typeof u[l]=="bigint"?u[l]:BigInt(Math.round(Number(u[l])));i[l]=m*y}else{let l=a,m=u;for(let y=0;y<o;y++)i[y]=l[y]*m[y]}}else if(B(r.dtype)||B(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof u[c]=="bigint"?Number(u[c]):u[c];s[c]=l*m}else for(let c=0;c<o;c++)s[c]=a[c]*u[c];return n}function kn(r,t){if(typeof t=="number")return ju(r,t);let e=M(r.dtype),n=M(t.dtype);if(e||n){let l=Z(r.dtype,t.dtype),m=D.zeros(Array.from(r.shape),l),y=m.data,d=r.size,f=r.data,p=t.data;for(let g=0;g<d;g++){let[h,b]=e?fr(f,g):[Number(f[g]),0],[A,S]=n?fr(p,g):[Number(p[g]),0],x=A*A+S*S,w=(h*A+b*S)/x,N=(b*A-h*S)/x;zr(y,g,w,N)}return m}let o=r.dtype==="float64",a=t.dtype==="float64",u=r.dtype==="float32",s=t.dtype==="float32";if(o||a){let l=o?r:kr(r,"float64"),m=a?t:kr(t,"float64");return K(l,m,(y,d)=>y/d,"divide")}if(u||s){let l=u?r:kr(r,"float32"),m=s?t:kr(t,"float32");return K(l,m,(y,d)=>y/d,"divide")}let i=kr(r,"float64"),c=kr(t,"float64");return K(i,c,(l,m)=>l/m,"divide")}function kr(r,t){let e=D.zeros(Array.from(r.shape),t),n=r.size,o=r.data,a=e.data;for(let u=0;u<n;u++)a[u]=Number(o[u]);return e}function qu(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=D.zeros(n,e),s=u.data;if(M(e)){let i=o,c=s;for(let l=0;l<a;l++){let[m,y]=fr(i,l);zr(c,l,m+t,y)}}else if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]+l}else for(let i=0;i<a;i++)s[i]=Number(o[i])+t;return u}function Vu(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=D.zeros(n,e),s=u.data;if(M(e)){let i=o,c=s;for(let l=0;l<a;l++){let[m,y]=fr(i,l);zr(c,l,m-t,y)}}else if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]-l}else for(let i=0;i<a;i++)s[i]=Number(o[i])-t;return u}function Pu(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=D.zeros(n,e),s=u.data;if(M(e)){let i=o,c=s;for(let l=0;l<a;l++){let[m,y]=fr(i,l);zr(c,l,m*t,y*t)}}else if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]*l}else for(let i=0;i<a;i++)s[i]=Number(o[i])*t;return u}function ju(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size;if(M(e)){let l=D.zeros(n,e),m=o,y=l.data;for(let d=0;d<a;d++){let[f,p]=fr(m,d);zr(y,d,f/t,p/t)}return l}let s=e!=="float32"&&e!=="float64"?"float64":e,i=D.zeros(n,s),c=i.data;if(B(e))for(let l=0;l<a;l++)c[l]=Number(o[l])/t;else for(let l=0;l<a;l++)c[l]=Number(o[l])/t;return i}function qn(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size;if(M(t)){let s=Kr(t),i=D.zeros(e,s),c=i.data,l=n;for(let m=0;m<o;m++){let y=l[m*2],d=l[m*2+1];c[m]=Math.sqrt(y*y+d*d)}return i}let a=D.zeros(e,t),u=a.data;if(B(t)){let s=n,i=u;for(let c=0;c<o;c++){let l=s[c];i[c]=l<0n?-l:l}}else for(let s=0;s<o;s++)u[s]=Math.abs(Number(n[s]));return a}function Vn(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=D.zeros(e,t),u=a.data;if(M(t)){let s=n,i=u;for(let c=0;c<o;c++){let[l,m]=fr(s,c);zr(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 Pn(r){q(r.dtype,"sign","Sign is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=D.zeros(e,t),u=a.data;if(B(t)){let s=n,i=u;for(let c=0;c<o;c++){let l=s[c];i[c]=l>0n?1n:l<0n?-1n:0n}}else for(let s=0;s<o;s++){let i=Number(n[s]);u[s]=i>0?1:i<0?-1:0}return a}function Mt(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"?Lu(r,t):K(r,t,(e,n)=>(e%n+n)%n,"mod")}function Lu(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=D.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++){let y=i[m];c[m]=(y%l+l)%l}}else for(let i=0;i<a;i++){let c=Number(o[i]);s[i]=(c%t+t)%t}return u}function ue(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"?Wu(r,t):K(r,t,(e,n)=>Math.floor(e/n),"floor_divide")}function Wu(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=D.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]/l}else for(let i=0;i<a;i++)s[i]=Math.floor(Number(o[i])/t);return u}function jn(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=D.zeros(e,t),u=a.data;if(M(t)){let s=n,i=u;for(let c=0;c<o;c++)i[c*2]=s[c*2],i[c*2+1]=s[c*2+1]}else for(let s=0;s<o;s++)u[s]=n[s];return a}function Ln(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size;if(M(t)){let c=D.zeros(e,t),l=n,m=c.data;for(let y=0;y<o;y++){let d=l[y*2],f=l[y*2+1],p=d*d+f*f;m[y*2]=d/p,m[y*2+1]=-f/p}return c}let u=t!=="float32"&&t!=="float64"?"float64":t,s=D.zeros(e,u),i=s.data;if(B(t))for(let c=0;c<o;c++)i[c]=1/Number(n[c]);else for(let c=0;c<o;c++)i[c]=1/Number(n[c]);return s}function Wn(r){let t=r.dtype;q(t,"cbrt","cbrt is not supported for complex numbers.");let e=Array.from(r.shape),n=r.data,o=r.size,u=t!=="float32"&&t!=="float64"?"float64":t,s=D.zeros(e,u),i=s.data;for(let c=0;c<o;c++)i[c]=Math.cbrt(Number(n[c]));return s}function Gn(r){let t=r.dtype;q(t,"fabs","fabs is only for real numbers. Use absolute() for complex.");let e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",u=D.zeros(e,a),s=u.data;for(let i=0;i<o;i++)s[i]=Math.abs(Number(n[i]));return u}function Zn(r,t){let e=ue(r,t),n=Mt(r,t);return[e,n]}function Yn(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=D.zeros(e,t),u=a.data;if(M(t)){let s=n,i=u;for(let c=0;c<o;c++){let l=s[c*2],m=s[c*2+1];i[c*2]=l*l-m*m,i[c*2+1]=2*l*m}}else if(B(t)){let s=n,i=u;for(let c=0;c<o;c++)i[c]=s[c]*s[c]}else for(let s=0;s<o;s++){let i=Number(n[s]);u[s]=i*i}return a}function Hn(r,t){return Mt(r,t)}function Jn(r,t){q(r.dtype,"heaviside","Heaviside step function is not defined for complex numbers."),typeof t!="number"&&q(t.dtype,"heaviside","Heaviside step function is not defined for complex numbers.");let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",u=D.zeros(n,a),s=u.data;if(typeof t=="number")for(let i=0;i<o;i++){let c=Number(r.data[i]);c<0?s[i]=0:c===0?s[i]=t:s[i]=1}else{let i=t.data,c=t.shape;if(n.every((l,m)=>l===c[m]))for(let l=0;l<o;l++){let m=Number(r.data[l]);m<0?s[l]=0:m===0?s[l]=Number(i[l]):s[l]=1}else for(let l=0;l<o;l++){let m=Number(r.data[l]),y=l%t.size;m<0?s[l]=0:m===0?s[l]=Number(i[y]):s[l]=1}}return u}function Xn(r,t){let e=r.dtype;if(M(e)){let n=r.data,o=r.size,a=D.zeros(Array.from(r.shape),e),u=a.data;if(typeof t=="number")for(let s=0;s<o;s++){let i=n[s*2],c=n[s*2+1],l=Math.hypot(i,c),m=Math.atan2(c,i),y=Math.pow(l,t),d=m*t;u[s*2]=y*Math.cos(d),u[s*2+1]=y*Math.sin(d)}else{let s=t.data,i=M(t.dtype);for(let c=0;c<o;c++){let l=n[c*2],m=n[c*2+1],y,d;i?(y=s[c*2],d=s[c*2+1]):(y=Number(s[c]),d=0);let f=Math.hypot(l,m),p=Math.atan2(m,l),g=Math.log(f),h=p,b=y*g-d*h,A=y*h+d*g,S=Math.exp(b);u[c*2]=S*Math.cos(A),u[c*2+1]=S*Math.sin(A)}}return a}if(typeof t=="number"){let n=D.zeros(Array.from(r.shape),"float64"),o=n.data,a=r.data,u=r.size;for(let s=0;s<u;s++)o[s]=Math.pow(Number(a[s]),t);return n}return K(r,t,(n,o)=>Math.pow(n,o),"float_power")}function Qn(r,t){if(q(r.dtype,"fmod","fmod is not defined for complex numbers."),typeof t!="number"&&q(t.dtype,"fmod","fmod is not defined for complex numbers."),typeof t=="number"){let e=r.copy(),n=e.data,o=r.size;for(let a=0;a<o;a++){let u=Number(n[a]);n[a]=u-Math.trunc(u/t)*t}return e}return K(r,t,(e,n)=>e-Math.trunc(e/n)*n,"fmod")}function Kn(r){q(r.dtype,"frexp","frexp is not defined for complex numbers.");let t=D.zeros(Array.from(r.shape),"float64"),e=D.zeros(Array.from(r.shape),"int32"),n=t.data,o=e.data,a=r.data,u=r.size;for(let s=0;s<u;s++){let i=Number(a[s]);if(i===0||!isFinite(i))n[s]=i,o[s]=0;else{let c=Math.floor(Math.log2(Math.abs(i)))+1,l=i/Math.pow(2,c);n[s]=l,o[s]=c}}return[t,e]}function ro(r,t){q(r.dtype,"gcd","GCD is only defined for integers."),typeof t!="number"&&q(t.dtype,"gcd","GCD is only defined for integers.");let e=(i,c)=>{for(i=Math.abs(Math.trunc(i)),c=Math.abs(Math.trunc(c));c!==0;){let l=c;c=i%c,i=l}return i};if(typeof t=="number"){let i=D.zeros(Array.from(r.shape),"int32"),c=i.data,l=r.data,m=r.size,y=Math.abs(Math.trunc(t));for(let d=0;d<m;d++)c[d]=e(Number(l[d]),y);return i}let n=K(r,t,e,"gcd"),o=D.zeros(Array.from(n.shape),"int32"),a=o.data,u=n.data,s=n.size;for(let i=0;i<s;i++)a[i]=Math.round(Number(u[i]));return o}function to(r,t){q(r.dtype,"lcm","LCM is only defined for integers."),typeof t!="number"&&q(t.dtype,"lcm","LCM is only defined for integers.");let e=(c,l)=>{for(c=Math.abs(Math.trunc(c)),l=Math.abs(Math.trunc(l));l!==0;){let m=l;l=c%l,c=m}return c},n=(c,l)=>(c=Math.abs(Math.trunc(c)),l=Math.abs(Math.trunc(l)),c===0||l===0?0:c*l/e(c,l));if(typeof t=="number"){let c=D.zeros(Array.from(r.shape),"int32"),l=c.data,m=r.data,y=r.size,d=Math.abs(Math.trunc(t));for(let f=0;f<y;f++)l[f]=n(Number(m[f]),d);return c}let o=K(r,t,n,"lcm"),a=D.zeros(Array.from(o.shape),"int32"),u=a.data,s=o.data,i=o.size;for(let c=0;c<i;c++)u[c]=Math.round(Number(s[c]));return a}function eo(r,t){if(q(r.dtype,"ldexp","ldexp is not defined for complex numbers."),typeof t!="number"&&q(t.dtype,"ldexp","ldexp is not defined for complex numbers."),typeof t=="number"){let e=D.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.data,a=r.size,u=Math.pow(2,t);for(let s=0;s<a;s++)n[s]=Number(o[s])*u;return e}return K(r,t,(e,n)=>e*Math.pow(2,n),"ldexp")}function no(r){q(r.dtype,"modf","modf is not defined for complex numbers.");let t=D.zeros(Array.from(r.shape),"float64"),e=D.zeros(Array.from(r.shape),"float64"),n=t.data,o=e.data,a=r.data,u=r.size;for(let s=0;s<u;s++){let i=Number(a[s]),c=Math.trunc(i);o[s]=c,n[s]=i-c}return[t,e]}var oo=W(()=>{"use strict";X();J();Ir()});function Or(r,t){return[r[t*2],r[t*2+1]]}function ao(r,t){if(M(r.dtype))return Or(r.data,t);let e=r.iget(t);return e instanceof O?[e.re,e.im]:[Number(e),0]}function qr(r,t,e){let n=gr([Array.from(r.shape),Array.from(t.shape)]);if(!n)throw new Error("Cannot broadcast arrays together");let o=pr(r,n),a=pr(t,n),u=n.reduce((i,c)=>i*c,1),s=new Uint8Array(u);for(let i=0;i<u;i++){let[c,l]=ao(o,i),[m,y]=ao(a,i);s[i]=e(c,l,m,y)?1:0}return D.fromData(s,n,"bool")}function so(r,t){return typeof t=="number"?Zu(r,t):M(r.dtype)||M(t.dtype)?qr(r,t,(e,n,o,a)=>e!==o?e>o:n>a):yr(r,t,(e,n)=>e>n)}function io(r,t){return typeof t=="number"?Yu(r,t):M(r.dtype)||M(t.dtype)?qr(r,t,(e,n,o,a)=>e!==o?e>=o:n>=a):yr(r,t,(e,n)=>e>=n)}function uo(r,t){return typeof t=="number"?Hu(r,t):M(r.dtype)||M(t.dtype)?qr(r,t,(e,n,o,a)=>e!==o?e<o:n<a):yr(r,t,(e,n)=>e<n)}function co(r,t){return typeof t=="number"?Ju(r,t):M(r.dtype)||M(t.dtype)?qr(r,t,(e,n,o,a)=>e!==o?e<=o:n<=a):yr(r,t,(e,n)=>e<=n)}function lo(r,t){return typeof t=="number"?Xu(r,t):M(r.dtype)||M(t.dtype)?qr(r,t,(e,n,o,a)=>e===o&&n===a):yr(r,t,(e,n)=>e===n)}function fo(r,t){return typeof t=="number"?Qu(r,t):M(r.dtype)||M(t.dtype)?qr(r,t,(e,n,o,a)=>e!==o||n!==a):yr(r,t,(e,n)=>e!==n)}function ce(r,t,e=1e-5,n=1e-8){return typeof t=="number"?Ku(r,t,e,n):yr(r,t,(o,a)=>{let u=Math.abs(o-a),s=n+e*Math.abs(a);return u<=s})}function mo(r,t,e=1e-5,n=1e-8){let o=ce(r,t,e,n),a=o.data;for(let u=0;u<o.size;u++)if(a[u]===0)return!1;return!0}function po(r,t){let e=[Array.from(r.shape),Array.from(t.shape)],n=gr(e);if(n===null)return!1;let o=pr(r,n),a=pr(t,n),u=n.length,s=n.reduce((l,m)=>l*m,1),i=B(o.dtype),c=B(a.dtype);for(let l=0;l<s;l++){let m=l,y=new Array(u);for(let p=u-1;p>=0;p--)y[p]=m%n[p],m=Math.floor(m/n[p]);let d=o.get(...y),f=a.get(...y);if(i||c){let p=typeof d=="bigint"?d:BigInt(Number(d)),g=typeof f=="bigint"?f:BigInt(Number(f));if(p!==g)return!1}else if(d!==f)return!1}return!0}function Zu(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]=Or(o,a);e[a]=(u!==t?u>t:s>0)?1:0}}else for(let o=0;o<r.size;o++)e[o]=n[o]>t?1:0;return D.fromData(e,Array.from(r.shape),"bool")}function Yu(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]=Or(o,a);e[a]=(u!==t?u>=t:s>=0)?1:0}}else for(let o=0;o<r.size;o++)e[o]=n[o]>=t?1:0;return D.fromData(e,Array.from(r.shape),"bool")}function Hu(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]=Or(o,a);e[a]=(u!==t?u<t:s<0)?1:0}}else for(let o=0;o<r.size;o++)e[o]=n[o]<t?1:0;return D.fromData(e,Array.from(r.shape),"bool")}function Ju(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]=Or(o,a);e[a]=(u!==t?u<=t:s<=0)?1:0}}else for(let o=0;o<r.size;o++)e[o]=n[o]<=t?1:0;return D.fromData(e,Array.from(r.shape),"bool")}function Xu(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]=Or(a,u);e[u]=s===t&&i===0?1:0}}else if(B(o)){let a=BigInt(Math.round(t)),u=n;for(let s=0;s<r.size;s++)e[s]=u[s]===a?1:0}else for(let a=0;a<r.size;a++)e[a]=n[a]===t?1:0;return D.fromData(e,Array.from(r.shape),"bool")}function Qu(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]=Or(a,u);e[u]=s!==t||i!==0?1:0}}else for(let a=0;a<r.size;a++)e[a]=n[a]!==t?1:0;return D.fromData(e,Array.from(r.shape),"bool")}function Ku(r,t,e,n){let o=new Uint8Array(r.size),a=r.data,u=r.dtype;if(B(u)){let s=a;for(let i=0;i<r.size;i++){let c=Number(s[i]),l=Math.abs(c-t),m=n+e*Math.abs(t);o[i]=l<=m?1:0}}else for(let s=0;s<r.size;s++){let i=Number(a[s]),c=Math.abs(i-t),l=n+e*Math.abs(t);o[s]=c<=l?1:0}return D.fromData(o,Array.from(r.shape),"bool")}var yo=W(()=>{"use strict";X();J();Ir();_t();xr()});function U(r,t){let e=0,n=1;for(let o=r.length-1;o>=0;o--)e+=r[o]*n,n*=t[o];return e}function $(r,t,e,n){let o=n.length,a=new Array(o),u=Array.from(n).filter((i,c)=>c!==t),s=r;for(let i=u.length-1;i>=0;i--)a[i>=t?i+1:i]=s%u[i],s=Math.floor(s/u[i]);return a[t]=e,a}var le=W(()=>{"use strict"});function rt(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,s=r.data;if(t===void 0)if(M(n)){let f=s,p=0,g=0;for(let h=0;h<u;h++)p+=f[h*2],g+=f[h*2+1];return new O(p,g)}else if(B(n)){let f=s,p=BigInt(0);for(let g=0;g<u;g++)p+=f[g];return Number(p)}else{let f=0;for(let p=0;p<u;p++)f+=Number(s[p]);return f}let i=t;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,p)=>p!==i);if(c.length===0)return rt(r);let l=D.zeros(c,n),m=l.data,y=o[i],d=c.reduce((f,p)=>f*p,1);if(M(n)){let f=s,p=m;for(let g=0;g<d;g++){let h=0,b=0;for(let A=0;A<y;A++){let S=$(g,i,A,o),x=U(S,o);h+=f[x*2],b+=f[x*2+1]}p[g*2]=h,p[g*2+1]=b}}else if(B(n)){let f=s,p=m;for(let g=0;g<d;g++){let h=BigInt(0);for(let b=0;b<y;b++){let A=$(g,i,b,o),S=U(A,o);h+=f[S]}p[g]=h}}else for(let f=0;f<d;f++){let p=0;for(let g=0;g<y;g++){let h=$(f,i,g,o),b=U(h,o);p+=Number(s[b])}m[f]=p}if(e){let f=[...o];return f[i]=1,D.fromData(m,f,n)}return l}function Bt(r,t,e=!1){let n=r.dtype,o=r.shape;if(t===void 0){let y=rt(r);return y instanceof O?new O(y.re/r.size,y.im/r.size):y/r.size}let a=t;if(a<0&&(a=o.length+a),a<0||a>=o.length)throw new Error(`axis ${t} is out of bounds for array of dimension ${o.length}`);let u=rt(r,t,e);if(typeof u=="number")return u/o[a];if(u instanceof O)return new O(u.re/o[a],u.im/o[a]);let s=o[a],i=n;M(n)?i=n:(B(n)||n.startsWith("int")||n.startsWith("uint"))&&(i="float64");let c=D.zeros(Array.from(u.shape),i),l=c.data,m=u.data;if(M(n)){let y=m,d=l,f=u.size;for(let p=0;p<f;p++)d[p*2]=y[p*2]/s,d[p*2+1]=y[p*2+1]/s}else if(B(n)){let y=m;for(let d=0;d<l.length;d++)l[d]=Number(y[d])/s}else for(let y=0;y<l.length;y++)l[y]=Number(m[y])/s;return c}function Vr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,s=r.data;if(M(n)){let f=s;if(t===void 0){if(u===0)throw new Error("max of empty array");let x=f[0],w=f[1];for(let N=1;N<u;N++){let I=f[N*2],z=f[N*2+1];if(isNaN(I)||isNaN(z))return new O(NaN,NaN);(I>x||I===x&&z>w)&&(x=I,w=z)}return isNaN(x)||isNaN(w)?new O(NaN,NaN):new O(x,w)}let p=t;if(p<0&&(p=a+p),p<0||p>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let g=Array.from(o).filter((x,w)=>w!==p);if(g.length===0)return Vr(r);let h=D.zeros(g,n),b=h.data,A=o[p],S=g.reduce((x,w)=>x*w,1);for(let x=0;x<S;x++){let w=$(x,p,0,o),N=U(w,o),I=f[N*2],z=f[N*2+1];for(let F=1;F<A;F++){let _=$(x,p,F,o),T=U(_,o),E=f[T*2],C=f[T*2+1];if(isNaN(E)||isNaN(C)){I=NaN,z=NaN;break}(E>I||E===I&&C>z)&&(I=E,z=C)}b[x*2]=I,b[x*2+1]=z}if(e){let x=[...o];return x[p]=1,D.fromData(b,x,n)}return h}if(t===void 0){if(u===0)throw new Error("max of empty array");let f=s[0];for(let p=1;p<u;p++)s[p]>f&&(f=s[p]);return Number(f)}let i=t;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,p)=>p!==i);if(c.length===0)return Vr(r);let l=D.zeros(c,n),m=l.data,y=o[i],d=c.reduce((f,p)=>f*p,1);if(B(n)){let f=s,p=m;for(let g=0;g<d;g++){let h=$(g,i,0,o),b=U(h,o),A=f[b];for(let S=1;S<y;S++){let x=$(g,i,S,o),w=U(x,o),N=f[w];N>A&&(A=N)}p[g]=A}}else for(let f=0;f<d;f++){let p=-1/0;for(let g=0;g<y;g++){let h=$(f,i,g,o),b=U(h,o),A=Number(s[b]);A>p&&(p=A)}m[f]=p}if(e){let f=[...o];return f[i]=1,D.fromData(m,f,n)}return l}function fe(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,s=r.data;if(t===void 0)if(M(n)){let f=s,p=1,g=0;for(let h=0;h<u;h++){let b=f[h*2],A=f[h*2+1],S=p*b-g*A,x=p*A+g*b;p=S,g=x}return new O(p,g)}else if(B(n)){let f=s,p=BigInt(1);for(let g=0;g<u;g++)p*=f[g];return Number(p)}else{let f=1;for(let p=0;p<u;p++)f*=Number(s[p]);return f}let i=t;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,p)=>p!==i);if(c.length===0)return fe(r);let l=D.zeros(c,n),m=l.data,y=o[i],d=c.reduce((f,p)=>f*p,1);if(M(n)){let f=s,p=m;for(let g=0;g<d;g++){let h=1,b=0;for(let A=0;A<y;A++){let S=$(g,i,A,o),x=U(S,o),w=f[x*2],N=f[x*2+1],I=h*w-b*N,z=h*N+b*w;h=I,b=z}p[g*2]=h,p[g*2+1]=b}}else if(B(n)){let f=s,p=m;for(let g=0;g<d;g++){let h=BigInt(1);for(let b=0;b<y;b++){let A=$(g,i,b,o),S=U(A,o);h*=f[S]}p[g]=h}}else for(let f=0;f<d;f++){let p=1;for(let g=0;g<y;g++){let h=$(f,i,g,o),b=U(h,o);p*=Number(s[b])}m[f]=p}if(e){let f=[...o];return f[i]=1,D.fromData(m,f,n)}return l}function Pr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,s=r.data;if(M(n)){let f=s;if(t===void 0){if(u===0)throw new Error("min of empty array");let x=f[0],w=f[1];for(let N=1;N<u;N++){let I=f[N*2],z=f[N*2+1];if(isNaN(I)||isNaN(z))return new O(NaN,NaN);(I<x||I===x&&z<w)&&(x=I,w=z)}return isNaN(x)||isNaN(w)?new O(NaN,NaN):new O(x,w)}let p=t;if(p<0&&(p=a+p),p<0||p>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let g=Array.from(o).filter((x,w)=>w!==p);if(g.length===0)return Pr(r);let h=D.zeros(g,n),b=h.data,A=o[p],S=g.reduce((x,w)=>x*w,1);for(let x=0;x<S;x++){let w=$(x,p,0,o),N=U(w,o),I=f[N*2],z=f[N*2+1];for(let F=1;F<A;F++){let _=$(x,p,F,o),T=U(_,o),E=f[T*2],C=f[T*2+1];if(isNaN(E)||isNaN(C)){I=NaN,z=NaN;break}(E<I||E===I&&C<z)&&(I=E,z=C)}b[x*2]=I,b[x*2+1]=z}if(e){let x=[...o];return x[p]=1,D.fromData(b,x,n)}return h}if(t===void 0){if(u===0)throw new Error("min of empty array");let f=s[0];for(let p=1;p<u;p++)s[p]<f&&(f=s[p]);return Number(f)}let i=t;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,p)=>p!==i);if(c.length===0)return Pr(r);let l=D.zeros(c,n),m=l.data,y=o[i],d=c.reduce((f,p)=>f*p,1);if(B(n)){let f=s,p=m;for(let g=0;g<d;g++){let h=$(g,i,0,o),b=U(h,o),A=f[b];for(let S=1;S<y;S++){let x=$(g,i,S,o),w=U(x,o),N=f[w];N<A&&(A=N)}p[g]=A}}else for(let f=0;f<d;f++){let p=1/0;for(let g=0;g<y;g++){let h=$(f,i,g,o),b=U(h,o),A=Number(s[b]);A<p&&(p=A)}m[f]=p}if(e){let f=[...o];return f[i]=1,D.fromData(m,f,n)}return l}function vr(r,t,e,n){return r<e?-1:r>e?1:t<n?-1:t>n?1:0}function me(r,t){let e=r.dtype,n=M(e),o=r.shape,a=o.length,u=r.size,s=r.data;if(t===void 0){if(u===0)throw new Error("argmin of empty array");if(n){let g=s,h=g[0],b=g[1],A=0;for(let S=1;S<u;S++){let x=g[S*2],w=g[S*2+1];vr(x,w,h,b)<0&&(h=x,b=w,A=S)}return A}let f=s[0],p=0;for(let g=1;g<u;g++)s[g]<f&&(f=s[g],p=g);return p}let i=t;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,p)=>p!==i);if(c.length===0)return me(r);let l=D.zeros(c,"int32"),m=l.data,y=o[i],d=c.reduce((f,p)=>f*p,1);if(n){let f=s;for(let p=0;p<d;p++){let g=$(p,i,0,o),h=U(g,o),b=f[h*2],A=f[h*2+1],S=0;for(let x=1;x<y;x++){let w=$(p,i,x,o),N=U(w,o),I=f[N*2],z=f[N*2+1];vr(I,z,b,A)<0&&(b=I,A=z,S=x)}m[p]=S}}else if(B(e)){let f=s;for(let p=0;p<d;p++){let g=$(p,i,0,o),h=U(g,o),b=f[h],A=0;for(let S=1;S<y;S++){let x=$(p,i,S,o),w=U(x,o),N=f[w];N<b&&(b=N,A=S)}m[p]=A}}else for(let f=0;f<d;f++){let p=1/0,g=0;for(let h=0;h<y;h++){let b=$(f,i,h,o),A=U(b,o),S=Number(s[A]);S<p&&(p=S,g=h)}m[f]=g}return l}function pe(r,t){let e=r.dtype,n=M(e),o=r.shape,a=o.length,u=r.size,s=r.data;if(t===void 0){if(u===0)throw new Error("argmax of empty array");if(n){let g=s,h=g[0],b=g[1],A=0;for(let S=1;S<u;S++){let x=g[S*2],w=g[S*2+1];vr(x,w,h,b)>0&&(h=x,b=w,A=S)}return A}let f=s[0],p=0;for(let g=1;g<u;g++)s[g]>f&&(f=s[g],p=g);return p}let i=t;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,p)=>p!==i);if(c.length===0)return pe(r);let l=D.zeros(c,"int32"),m=l.data,y=o[i],d=c.reduce((f,p)=>f*p,1);if(n){let f=s;for(let p=0;p<d;p++){let g=$(p,i,0,o),h=U(g,o),b=f[h*2],A=f[h*2+1],S=0;for(let x=1;x<y;x++){let w=$(p,i,x,o),N=U(w,o),I=f[N*2],z=f[N*2+1];vr(I,z,b,A)>0&&(b=I,A=z,S=x)}m[p]=S}}else if(B(e)){let f=s;for(let p=0;p<d;p++){let g=$(p,i,0,o),h=U(g,o),b=f[h],A=0;for(let S=1;S<y;S++){let x=$(p,i,S,o),w=U(x,o),N=f[w];N>b&&(b=N,A=S)}m[p]=A}}else for(let f=0;f<d;f++){let p=-1/0,g=0;for(let h=0;h<y;h++){let b=$(f,i,h,o),A=U(b,o),S=Number(s[A]);S>p&&(p=S,g=h)}m[f]=g}return l}function ye(r,t,e=0,n=!1){let o=r.dtype,a=r.shape,u=a.length,s=r.size,i=r.data,c=Bt(r,t,n);if(t===void 0){if(M(o)){let S=i,x=c,w=0;for(let N=0;N<s;N++){let I=S[N*2],z=S[N*2+1],F=I-x.re,_=z-x.im;w+=F*F+_*_}return w/(s-e)}let b=c,A=0;for(let S=0;S<s;S++){let x=Number(i[S])-b;A+=x*x}return A/(s-e)}let l=t;if(l<0&&(l=u+l),l<0||l>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let m=a[l],y=c,d=y.data,f=n?y.shape:Array.from(a).filter((b,A)=>A!==l),p=D.zeros(Array.from(f),"float64"),g=p.data,h=f.reduce((b,A)=>b*A,1);if(M(o)){let b=i,A=d;for(let S=0;S<h;S++){let x=0,w=A[S*2],N=A[S*2+1];for(let I=0;I<m;I++){let z=$(S,l,I,a),F=U(z,a),_=b[F*2],T=b[F*2+1],E=_-w,C=T-N;x+=E*E+C*C}g[S]=x/(m-e)}}else for(let b=0;b<h;b++){let A=0,S=Number(d[b]);for(let x=0;x<m;x++){let w=$(b,l,x,a),N=U(w,a),I=Number(i[N])-S;A+=I*I}g[b]=A/(m-e)}return p}function go(r,t,e=0,n=!1){let o=ye(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=D.zeros(Array.from(o.shape),"float64"),u=o.data,s=a.data;for(let i=0;i<u.length;i++)s[i]=Math.sqrt(Number(u[i]));return a}function de(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,u=r.data;if(t===void 0){for(let d=0;d<a;d++)if(!u[d])return!1;return!0}let s=t;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let i=Array.from(n).filter((d,f)=>f!==s);if(i.length===0)return de(r);let c=D.zeros(i,"bool"),l=c.data,m=n[s],y=i.reduce((d,f)=>d*f,1);for(let d=0;d<y;d++){let f=!0;for(let p=0;p<m;p++){let g=$(d,s,p,n),h=U(g,n);if(!u[h]){f=!1;break}}l[d]=f?1:0}if(e){let d=[...n];return d[s]=1,D.fromData(l,d,"bool")}return c}function ge(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,u=r.data;if(t===void 0){for(let d=0;d<a;d++)if(u[d])return!0;return!1}let s=t;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let i=Array.from(n).filter((d,f)=>f!==s);if(i.length===0)return ge(r);let c=D.zeros(i,"bool"),l=c.data,m=n[s],y=i.reduce((d,f)=>d*f,1);for(let d=0;d<y;d++){let f=!1;for(let p=0;p<m;p++){let g=$(d,s,p,n),h=U(g,n);if(u[h]){f=!0;break}}l[d]=f?1:0}if(e){let d=[...n];return d[s]=1,D.fromData(l,d,"bool")}return c}function Ae(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let d=a,f=r.size;if(t===void 0){let N=D.zeros([f],e),I=N.data,z=0,F=0;for(let _=0;_<f;_++)z+=d[_*2],F+=d[_*2+1],I[_*2]=z,I[_*2+1]=F;return N}let p=t;if(p<0&&(p=o+p),p<0||p>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let g=D.zeros([...n],e),h=g.data,b=n[p],A=[],S=1;for(let N=o-1;N>=0;N--)A.unshift(S),S*=n[N];let x=r.size,w=A[p];for(let N=0;N<x;N++)Math.floor(N/w)%b===0?(h[N*2]=d[N*2],h[N*2+1]=d[N*2+1]):(h[N*2]=h[(N-w)*2]+d[N*2],h[N*2+1]=h[(N-w)*2+1]+d[N*2+1]);return g}if(t===void 0){let d=r.size,f=new Float64Array(d),p=0;for(let g=0;g<d;g++)p+=Number(a[g]),f[g]=p;return D.fromData(f,[d],"float64")}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=new Float64Array(r.size),i=n[u],c=[],l=1;for(let d=o-1;d>=0;d--)c.unshift(l),l*=n[d];let m=r.size,y=c[u];for(let d=0;d<m;d++)Math.floor(d/y)%i===0?s[d]=Number(a[d]):s[d]=s[d-y]+Number(a[d]);return D.fromData(s,[...n],"float64")}function be(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let d=a,f=r.size;if(t===void 0){let N=D.zeros([f],e),I=N.data,z=1,F=0;for(let _=0;_<f;_++){let T=d[_*2],E=d[_*2+1],C=z*T-F*E,k=z*E+F*T;z=C,F=k,I[_*2]=z,I[_*2+1]=F}return N}let p=t;if(p<0&&(p=o+p),p<0||p>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let g=D.zeros([...n],e),h=g.data,b=n[p],A=[],S=1;for(let N=o-1;N>=0;N--)A.unshift(S),S*=n[N];let x=r.size,w=A[p];for(let N=0;N<x;N++)if(Math.floor(N/w)%b===0)h[N*2]=d[N*2],h[N*2+1]=d[N*2+1];else{let z=h[(N-w)*2],F=h[(N-w)*2+1],_=d[N*2],T=d[N*2+1];h[N*2]=z*_-F*T,h[N*2+1]=z*T+F*_}return g}if(t===void 0){let d=r.size,f=new Float64Array(d),p=1;for(let g=0;g<d;g++)p*=Number(a[g]),f[g]=p;return D.fromData(f,[d],"float64")}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=new Float64Array(r.size),i=n[u],c=[],l=1;for(let d=o-1;d>=0;d--)c.unshift(l),l*=n[d];let m=r.size,y=c[u];for(let d=0;d<m;d++)Math.floor(d/y)%i===0?s[d]=Number(a[d]):s[d]=s[d-y]*Number(a[d]);return D.fromData(s,[...n],"float64")}function he(r,t,e=!1){let n=r.dtype;if(M(n)){let m=Vr(r,t,e),y=Pr(r,t,e);if(m instanceof O&&y instanceof O)return new O(m.re-y.re,m.im-y.im);let d=m,f=y,p=d.data,g=f.data,h=new Float64Array(d.size*2);for(let b=0;b<d.size;b++)h[b*2]=p[b*2]-g[b*2],h[b*2+1]=p[b*2+1]-g[b*2+1];return D.fromData(h,[...d.shape],n)}let o=Vr(r,t,e),a=Pr(r,t,e);if(typeof o=="number"&&typeof a=="number")return o-a;let u=o,s=a,i=u.data,c=s.data,l=new Float64Array(u.size);for(let m=0;m<u.size;m++)l[m]=Number(i[m])-Number(c[m]);return D.fromData(l,[...u.shape],"float64")}function Se(r,t,e=!1){return Lr(r,.5,t,e)}function xe(r,t,e,n=!1){return Lr(r,t/100,e,n)}function Lr(r,t,e,n=!1){if(q(r.dtype,"quantile","Complex numbers are not orderable."),t<0||t>1)throw new Error("Quantile must be between 0 and 1");let o=r.shape,a=o.length,u=r.data;if(e===void 0){let d=[];for(let A=0;A<r.size;A++)d.push(Number(u[A]));d.sort((A,S)=>A-S);let f=d.length,p=t*(f-1),g=Math.floor(p),h=Math.ceil(p);if(g===h)return d[g];let b=p-g;return d[g]*(1-b)+d[h]*b}let s=e;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);let i=Array.from(o).filter((d,f)=>f!==s);if(i.length===0)return Lr(r,t);let c=i.reduce((d,f)=>d*f,1),l=o[s],m=new Float64Array(c);for(let d=0;d<c;d++){let f=[];for(let A=0;A<l;A++){let S=$(d,s,A,o),x=U(S,o);f.push(Number(u[x]))}f.sort((A,S)=>A-S);let p=f.length,g=t*(p-1),h=Math.floor(g),b=Math.ceil(g);if(h===b)m[d]=f[h];else{let A=g-h;m[d]=f[h]*(1-A)+f[b]*A}}let y=D.fromData(m,i,"float64");if(n){let d=[...o];return d[s]=1,D.fromData(m,d,"float64")}return y}function tt(r,t,e,n=!1){let o=r.dtype,a=r.shape,u=a.length,s=r.data;if(e===void 0)return Bt(r,t,n);if(M(o)){let p=s,g=e.data;if(t===void 0){let N=0,I=0,z=0;for(let F=0;F<r.size;F++){let _=Number(g[F%e.size]),T=p[F*2],E=p[F*2+1];N+=T*_,I+=E*_,z+=_}return z===0?new O(NaN,NaN):new O(N/z,I/z)}let h=t;if(h<0&&(h=u+h),h<0||h>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let b=Array.from(a).filter((N,I)=>I!==h);if(b.length===0)return tt(r,void 0,e);let A=b.reduce((N,I)=>N*I,1),S=a[h],x=D.zeros(b,o),w=x.data;for(let N=0;N<A;N++){let I=0,z=0,F=0;for(let _=0;_<S;_++){let T=$(N,h,_,a),E=U(T,a),C=Number(g[_%e.size]),k=p[E*2],V=p[E*2+1];I+=k*C,z+=V*C,F+=C}F===0?(w[N*2]=NaN,w[N*2+1]=NaN):(w[N*2]=I/F,w[N*2+1]=z/F)}if(n){let N=[...a];return N[h]=1,D.fromData(w,N,o)}return x}if(t===void 0){let p=0,g=0,h=e.data;for(let b=0;b<r.size;b++){let A=Number(h[b%e.size]);p+=Number(s[b])*A,g+=A}return g===0?NaN:p/g}let i=t;if(i<0&&(i=u+i),i<0||i>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let c=Array.from(a).filter((p,g)=>g!==i);if(c.length===0)return tt(r,void 0,e);let l=c.reduce((p,g)=>p*g,1),m=a[i],y=e.data,d=new Float64Array(l);for(let p=0;p<l;p++){let g=0,h=0;for(let b=0;b<m;b++){let A=$(p,i,b,a),S=U(A,a),x=Number(y[b%e.size]);g+=Number(s[S])*x,h+=x}d[p]=h===0?NaN:g/h}let f=D.fromData(d,c,"float64");if(n){let p=[...a];return p[i]=1,D.fromData(d,p,"float64")}return f}function nr(r,t){return isNaN(r)||isNaN(t)}function vt(r,t,e=!1){let n=r.dtype,o=M(n),a=r.shape,u=a.length,s=r.data;if(t===void 0){if(o){let p=s,g=0,h=0;for(let b=0;b<r.size;b++){let A=p[b*2],S=p[b*2+1];nr(A,S)||(g+=A,h+=S)}return new O(g,h)}let f=0;for(let p=0;p<r.size;p++){let g=Number(s[p]);isNaN(g)||(f+=g)}return f}let i=t;if(i<0&&(i=u+i),i<0||i>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let c=Array.from(a).filter((f,p)=>p!==i);if(c.length===0)return vt(r);let l=c.reduce((f,p)=>f*p,1),m=a[i];if(o){let f=s,p=new Float64Array(l*2);for(let g=0;g<l;g++){let h=0,b=0;for(let A=0;A<m;A++){let S=$(g,i,A,a),x=U(S,a),w=f[x*2],N=f[x*2+1];nr(w,N)||(h+=w,b+=N)}p[g*2]=h,p[g*2+1]=b}if(e){let g=[...a];return g[i]=1,D.fromData(p,g,n)}return D.fromData(p,c,n)}let y=new Float64Array(l);for(let f=0;f<l;f++){let p=0;for(let g=0;g<m;g++){let h=$(f,i,g,a),b=U(h,a),A=Number(s[b]);isNaN(A)||(p+=A)}y[f]=p}let d=D.fromData(y,c,"float64");if(e){let f=[...a];return f[i]=1,D.fromData(y,f,"float64")}return d}function Tt(r,t,e=!1){let n=r.dtype,o=M(n),a=r.shape,u=a.length,s=r.data;if(t===void 0){if(o){let p=s,g=1,h=0;for(let b=0;b<r.size;b++){let A=p[b*2],S=p[b*2+1];if(!nr(A,S)){let x=g*A-h*S,w=g*S+h*A;g=x,h=w}}return new O(g,h)}let f=1;for(let p=0;p<r.size;p++){let g=Number(s[p]);isNaN(g)||(f*=g)}return f}let i=t;if(i<0&&(i=u+i),i<0||i>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let c=Array.from(a).filter((f,p)=>p!==i);if(c.length===0)return Tt(r);let l=c.reduce((f,p)=>f*p,1),m=a[i];if(o){let f=s,p=new Float64Array(l*2);for(let g=0;g<l;g++){let h=1,b=0;for(let A=0;A<m;A++){let S=$(g,i,A,a),x=U(S,a),w=f[x*2],N=f[x*2+1];if(!nr(w,N)){let I=h*w-b*N,z=h*N+b*w;h=I,b=z}}p[g*2]=h,p[g*2+1]=b}if(e){let g=[...a];return g[i]=1,D.fromData(p,g,n)}return D.fromData(p,c,n)}let y=new Float64Array(l);for(let f=0;f<l;f++){let p=1;for(let g=0;g<m;g++){let h=$(f,i,g,a),b=U(h,a),A=Number(s[b]);isNaN(A)||(p*=A)}y[f]=p}let d=D.fromData(y,c,"float64");if(e){let f=[...a];return f[i]=1,D.fromData(y,f,"float64")}return d}function Et(r,t,e=!1){let n=r.dtype,o=M(n),a=r.shape,u=a.length,s=r.data;if(t===void 0){if(o){let g=s,h=0,b=0,A=0;for(let S=0;S<r.size;S++){let x=g[S*2],w=g[S*2+1];nr(x,w)||(h+=x,b+=w,A++)}return A===0?new O(NaN,NaN):new O(h/A,b/A)}let f=0,p=0;for(let g=0;g<r.size;g++){let h=Number(s[g]);isNaN(h)||(f+=h,p++)}return p===0?NaN:f/p}let i=t;if(i<0&&(i=u+i),i<0||i>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let c=Array.from(a).filter((f,p)=>p!==i);if(c.length===0)return Et(r);let l=c.reduce((f,p)=>f*p,1),m=a[i];if(o){let f=s,p=new Float64Array(l*2);for(let g=0;g<l;g++){let h=0,b=0,A=0;for(let S=0;S<m;S++){let x=$(g,i,S,a),w=U(x,a),N=f[w*2],I=f[w*2+1];nr(N,I)||(h+=N,b+=I,A++)}A===0?(p[g*2]=NaN,p[g*2+1]=NaN):(p[g*2]=h/A,p[g*2+1]=b/A)}if(e){let g=[...a];return g[i]=1,D.fromData(p,g,n)}return D.fromData(p,c,n)}let y=new Float64Array(l);for(let f=0;f<l;f++){let p=0,g=0;for(let h=0;h<m;h++){let b=$(f,i,h,a),A=U(b,a),S=Number(s[A]);isNaN(S)||(p+=S,g++)}y[f]=g===0?NaN:p/g}let d=D.fromData(y,c,"float64");if(e){let f=[...a];return f[i]=1,D.fromData(y,f,"float64")}return d}function jr(r,t,e=0,n=!1){let o=r.dtype,a=r.shape,u=a.length,s=r.data;if(M(o)){let f=s;if(t===void 0){let x=0,w=0,N=0;for(let _=0;_<r.size;_++){let T=f[_*2],E=f[_*2+1];nr(T,E)||(x+=T,w+=E,N++)}if(N-e<=0)return NaN;let I=x/N,z=w/N,F=0;for(let _=0;_<r.size;_++){let T=f[_*2],E=f[_*2+1];if(!nr(T,E)){let C=T-I,k=E-z;F+=C*C+k*k}}return F/(N-e)}let p=t;if(p<0&&(p=u+p),p<0||p>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let g=Array.from(a).filter((x,w)=>w!==p);if(g.length===0)return jr(r,void 0,e);let h=g.reduce((x,w)=>x*w,1),b=a[p],A=new Float64Array(h);for(let x=0;x<h;x++){let w=0,N=0,I=0;for(let T=0;T<b;T++){let E=$(x,p,T,a),C=U(E,a),k=f[C*2],V=f[C*2+1];nr(k,V)||(w+=k,N+=V,I++)}if(I-e<=0){A[x]=NaN;continue}let z=w/I,F=N/I,_=0;for(let T=0;T<b;T++){let E=$(x,p,T,a),C=U(E,a),k=f[C*2],V=f[C*2+1];if(!nr(k,V)){let R=k-z,L=V-F;_+=R*R+L*L}}A[x]=_/(I-e)}let S=D.fromData(A,g,"float64");if(n){let x=[...a];return x[p]=1,D.fromData(A,x,"float64")}return S}if(t===void 0){let f=0,p=0;for(let b=0;b<r.size;b++){let A=Number(s[b]);isNaN(A)||(f+=A,p++)}if(p-e<=0)return NaN;let g=f/p,h=0;for(let b=0;b<r.size;b++){let A=Number(s[b]);isNaN(A)||(h+=(A-g)**2)}return h/(p-e)}let i=t;if(i<0&&(i=u+i),i<0||i>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let c=Array.from(a).filter((f,p)=>p!==i);if(c.length===0)return jr(r,void 0,e);let l=c.reduce((f,p)=>f*p,1),m=a[i],y=new Float64Array(l);for(let f=0;f<l;f++){let p=0,g=0;for(let A=0;A<m;A++){let S=$(f,i,A,a),x=U(S,a),w=Number(s[x]);isNaN(w)||(p+=w,g++)}if(g-e<=0){y[f]=NaN;continue}let h=p/g,b=0;for(let A=0;A<m;A++){let S=$(f,i,A,a),x=U(S,a),w=Number(s[x]);isNaN(w)||(b+=(w-h)**2)}y[f]=b/(g-e)}let d=D.fromData(y,c,"float64");if(n){let f=[...a];return f[i]=1,D.fromData(y,f,"float64")}return d}function De(r,t,e=0,n=!1){let o=jr(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=o,u=new Float64Array(a.size);for(let s=0;s<a.size;s++)u[s]=Math.sqrt(Number(a.data[s]));return D.fromData(u,[...a.shape],"float64")}function et(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.data;if(M(n)){let d=u;if(t===void 0){let S=1/0,x=1/0,w=!1;for(let N=0;N<r.size;N++){let I=d[N*2],z=d[N*2+1];isNaN(I)||isNaN(z)||(w?(I<S||I===S&&z<x)&&(S=I,x=z):(S=I,x=z,w=!0))}return w?new O(S,x):new O(NaN,NaN)}let f=t;if(f<0&&(f=a+f),f<0||f>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let p=Array.from(o).filter((S,x)=>x!==f);if(p.length===0)return et(r);let g=p.reduce((S,x)=>S*x,1),h=o[f],b=new Float64Array(g*2);for(let S=0;S<g;S++){let x=1/0,w=1/0,N=!1;for(let I=0;I<h;I++){let z=$(S,f,I,o),F=U(z,o),_=d[F*2],T=d[F*2+1];isNaN(_)||isNaN(T)||(N?(_<x||_===x&&T<w)&&(x=_,w=T):(x=_,w=T,N=!0))}b[S*2]=N?x:NaN,b[S*2+1]=N?w:NaN}let A=D.fromData(b,p,n);if(e){let S=[...o];return S[f]=1,D.fromData(b,S,n)}return A}if(t===void 0){let d=1/0;for(let f=0;f<r.size;f++){let p=Number(u[f]);!isNaN(p)&&p<d&&(d=p)}return d===1/0?NaN:d}let s=t;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let i=Array.from(o).filter((d,f)=>f!==s);if(i.length===0)return et(r);let c=i.reduce((d,f)=>d*f,1),l=o[s],m=new Float64Array(c);for(let d=0;d<c;d++){let f=1/0;for(let p=0;p<l;p++){let g=$(d,s,p,o),h=U(g,o),b=Number(u[h]);!isNaN(b)&&b<f&&(f=b)}m[d]=f===1/0?NaN:f}let y=D.fromData(m,i,"float64");if(e){let d=[...o];return d[s]=1,D.fromData(m,d,"float64")}return y}function nt(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.data;if(M(n)){let d=u;if(t===void 0){let S=-1/0,x=-1/0,w=!1;for(let N=0;N<r.size;N++){let I=d[N*2],z=d[N*2+1];isNaN(I)||isNaN(z)||(w?(I>S||I===S&&z>x)&&(S=I,x=z):(S=I,x=z,w=!0))}return w?new O(S,x):new O(NaN,NaN)}let f=t;if(f<0&&(f=a+f),f<0||f>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let p=Array.from(o).filter((S,x)=>x!==f);if(p.length===0)return nt(r);let g=p.reduce((S,x)=>S*x,1),h=o[f],b=new Float64Array(g*2);for(let S=0;S<g;S++){let x=-1/0,w=-1/0,N=!1;for(let I=0;I<h;I++){let z=$(S,f,I,o),F=U(z,o),_=d[F*2],T=d[F*2+1];isNaN(_)||isNaN(T)||(N?(_>x||_===x&&T>w)&&(x=_,w=T):(x=_,w=T,N=!0))}b[S*2]=N?x:NaN,b[S*2+1]=N?w:NaN}let A=D.fromData(b,p,n);if(e){let S=[...o];return S[f]=1,D.fromData(b,S,n)}return A}if(t===void 0){let d=-1/0;for(let f=0;f<r.size;f++){let p=Number(u[f]);!isNaN(p)&&p>d&&(d=p)}return d===-1/0?NaN:d}let s=t;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let i=Array.from(o).filter((d,f)=>f!==s);if(i.length===0)return nt(r);let c=i.reduce((d,f)=>d*f,1),l=o[s],m=new Float64Array(c);for(let d=0;d<c;d++){let f=-1/0;for(let p=0;p<l;p++){let g=$(d,s,p,o),h=U(g,o),b=Number(u[h]);!isNaN(b)&&b>f&&(f=b)}m[d]=f===-1/0?NaN:f}let y=D.fromData(m,i,"float64");if(e){let d=[...o];return d[s]=1,D.fromData(m,d,"float64")}return y}function ot(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let m=a;if(t===void 0){let h=1/0,b=1/0,A=-1;for(let S=0;S<r.size;S++){let x=m[S*2],w=m[S*2+1];!nr(x,w)&&vr(x,w,h,b)<0&&(h=x,b=w,A=S)}return A}let y=t;if(y<0&&(y=o+y),y<0||y>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let d=Array.from(n).filter((h,b)=>b!==y);if(d.length===0)return ot(r);let f=d.reduce((h,b)=>h*b,1),p=n[y],g=new Int32Array(f);for(let h=0;h<f;h++){let b=1/0,A=1/0,S=0;for(let x=0;x<p;x++){let w=$(h,y,x,n),N=U(w,n),I=m[N*2],z=m[N*2+1];!nr(I,z)&&vr(I,z,b,A)<0&&(b=I,A=z,S=x)}g[h]=S}return D.fromData(g,d,"int32")}if(t===void 0){let m=1/0,y=-1;for(let d=0;d<r.size;d++){let f=Number(a[d]);!isNaN(f)&&f<m&&(m=f,y=d)}return y}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((m,y)=>y!==u);if(s.length===0)return ot(r);let i=s.reduce((m,y)=>m*y,1),c=n[u],l=new Int32Array(i);for(let m=0;m<i;m++){let y=1/0,d=0;for(let f=0;f<c;f++){let p=$(m,u,f,n),g=U(p,n),h=Number(a[g]);!isNaN(h)&&h<y&&(y=h,d=f)}l[m]=d}return D.fromData(l,s,"int32")}function at(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let m=a;if(t===void 0){let h=-1/0,b=-1/0,A=-1;for(let S=0;S<r.size;S++){let x=m[S*2],w=m[S*2+1];!nr(x,w)&&vr(x,w,h,b)>0&&(h=x,b=w,A=S)}return A}let y=t;if(y<0&&(y=o+y),y<0||y>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let d=Array.from(n).filter((h,b)=>b!==y);if(d.length===0)return at(r);let f=d.reduce((h,b)=>h*b,1),p=n[y],g=new Int32Array(f);for(let h=0;h<f;h++){let b=-1/0,A=-1/0,S=0;for(let x=0;x<p;x++){let w=$(h,y,x,n),N=U(w,n),I=m[N*2],z=m[N*2+1];!nr(I,z)&&vr(I,z,b,A)>0&&(b=I,A=z,S=x)}g[h]=S}return D.fromData(g,d,"int32")}if(t===void 0){let m=-1/0,y=-1;for(let d=0;d<r.size;d++){let f=Number(a[d]);!isNaN(f)&&f>m&&(m=f,y=d)}return y}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((m,y)=>y!==u);if(s.length===0)return at(r);let i=s.reduce((m,y)=>m*y,1),c=n[u],l=new Int32Array(i);for(let m=0;m<i;m++){let y=-1/0,d=0;for(let f=0;f<c;f++){let p=$(m,u,f,n),g=U(p,n),h=Number(a[g]);!isNaN(h)&&h>y&&(y=h,d=f)}l[m]=d}return D.fromData(l,s,"int32")}function Ne(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let d=a,f=r.size;if(t===void 0){let N=D.zeros([f],e),I=N.data,z=0,F=0;for(let _=0;_<f;_++){let T=d[_*2],E=d[_*2+1];nr(T,E)||(z+=T,F+=E),I[_*2]=z,I[_*2+1]=F}return N}let p=t;if(p<0&&(p=o+p),p<0||p>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let g=D.zeros([...n],e),h=g.data,b=n[p],A=[],S=1;for(let N=o-1;N>=0;N--)A.unshift(S),S*=n[N];let x=r.size,w=A[p];for(let N=0;N<x;N++){let I=d[N*2],z=d[N*2+1],F=Math.floor(N/w)%b,_=nr(I,z);F===0?(h[N*2]=_?0:I,h[N*2+1]=_?0:z):(h[N*2]=h[(N-w)*2]+(_?0:I),h[N*2+1]=h[(N-w)*2+1]+(_?0:z))}return g}if(t===void 0){let d=r.size,f=new Float64Array(d),p=0;for(let g=0;g<d;g++){let h=Number(a[g]);isNaN(h)||(p+=h),f[g]=p}return D.fromData(f,[d],"float64")}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=new Float64Array(r.size),i=n[u],c=[],l=1;for(let d=o-1;d>=0;d--)c.unshift(l),l*=n[d];let m=r.size,y=c[u];for(let d=0;d<m;d++){let f=Number(a[d]);Math.floor(d/y)%i===0?s[d]=isNaN(f)?0:f:s[d]=s[d-y]+(isNaN(f)?0:f)}return D.fromData(s,[...n],"float64")}function we(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let d=a,f=r.size;if(t===void 0){let N=D.zeros([f],e),I=N.data,z=1,F=0;for(let _=0;_<f;_++){let T=d[_*2],E=d[_*2+1];if(!nr(T,E)){let C=z*T-F*E,k=z*E+F*T;z=C,F=k}I[_*2]=z,I[_*2+1]=F}return N}let p=t;if(p<0&&(p=o+p),p<0||p>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let g=D.zeros([...n],e),h=g.data,b=n[p],A=[],S=1;for(let N=o-1;N>=0;N--)A.unshift(S),S*=n[N];let x=r.size,w=A[p];for(let N=0;N<x;N++){let I=d[N*2],z=d[N*2+1],F=Math.floor(N/w)%b,_=nr(I,z);if(F===0)h[N*2]=_?1:I,h[N*2+1]=_?0:z;else{let T=h[(N-w)*2],E=h[(N-w)*2+1];_?(h[N*2]=T,h[N*2+1]=E):(h[N*2]=T*I-E*z,h[N*2+1]=T*z+E*I)}}return g}if(t===void 0){let d=r.size,f=new Float64Array(d),p=1;for(let g=0;g<d;g++){let h=Number(a[g]);isNaN(h)||(p*=h),f[g]=p}return D.fromData(f,[d],"float64")}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=new Float64Array(r.size),i=n[u],c=[],l=1;for(let d=o-1;d>=0;d--)c.unshift(l),l*=n[d];let m=r.size,y=c[u];for(let d=0;d<m;d++){let f=Number(a[d]);Math.floor(d/y)%i===0?s[d]=isNaN(f)?1:f:s[d]=s[d-y]*(isNaN(f)?1:f)}return D.fromData(s,[...n],"float64")}function Ot(r,t,e=!1){q(r.dtype,"nanmedian","Complex numbers are not orderable.");let n=r.shape,o=n.length,a=r.data;if(t===void 0){let y=[];for(let p=0;p<r.size;p++){let g=Number(a[p]);isNaN(g)||y.push(g)}if(y.length===0)return NaN;y.sort((p,g)=>p-g);let d=y.length,f=Math.floor(d/2);return d%2===0?(y[f-1]+y[f])/2:y[f]}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((y,d)=>d!==u);if(s.length===0)return Ot(r);let i=s.reduce((y,d)=>y*d,1),c=n[u],l=new Float64Array(i);for(let y=0;y<i;y++){let d=[];for(let g=0;g<c;g++){let h=$(y,u,g,n),b=U(h,n),A=Number(a[b]);isNaN(A)||d.push(A)}if(d.length===0){l[y]=NaN;continue}d.sort((g,h)=>g-h);let f=d.length,p=Math.floor(f/2);f%2===0?l[y]=(d[p-1]+d[p])/2:l[y]=d[p]}let m=D.fromData(l,s,"float64");if(e){let y=[...n];return y[u]=1,D.fromData(l,y,"float64")}return m}var Ao=W(()=>{"use strict";X();J();le();xr()});function ir(r,t){let e=r.size,n=r.dtype,o=t.indexOf(-1),a;if(o!==-1){let c=t.reduce((m,y,d)=>d===o?m:m*y,1),l=e/c;if(!Number.isInteger(l))throw new Error(`cannot reshape array of size ${e} into shape ${JSON.stringify(t)}`);a=t.map((m,y)=>y===o?l:m)}else a=t;if(a.reduce((c,l)=>c*l,1)!==e)throw new Error(`cannot reshape array of size ${e} into shape ${JSON.stringify(a)}`);if(r.isCContiguous){let c=r.data;return D.fromData(c,a,n,ur(a),0)}let i=r.copy().data;return D.fromData(i,a,n,ur(a),0)}function Ct(r){let t=r.size,e=r.dtype,n=j(e);if(!n)throw new Error(`Cannot flatten array with dtype ${e}`);if(r.isCContiguous){let s=r.data.slice(r.offset,r.offset+t);return D.fromData(s,[t],e,[1],0)}let o=new n(t),a=B(e);for(let u=0;u<t;u++){let s=r.iget(u);o[u]=s}return D.fromData(o,[t],e,[1],0)}function Wr(r){let t=r.size,e=r.dtype;if(r.isCContiguous){let n=r.data;return D.fromData(n,[t],e,[1],0)}return Ct(r)}function it(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,u=r.dtype,s;if(t===void 0)s=Array.from({length:n},(m,y)=>n-1-y);else{if(t.length!==n)throw new Error(`axes must have length ${n}, got ${t.length}`);let m=new Set;for(let y of t){let d=y<0?n+y:y;if(d<0||d>=n)throw new Error(`axis ${y} is out of bounds for array of dimension ${n}`);if(m.has(d))throw new Error("repeated axis in transpose");m.add(d)}s=t.map(y=>y<0?n+y:y)}let i=s.map(m=>e[m]),c=Array.from(o),l=s.map(m=>c[m]);return D.fromData(a,i,u,l,r.offset)}function bo(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,u=r.dtype;if(t===void 0){let s=[],i=[];for(let c=0;c<n;c++)e[c]!==1&&(s.push(e[c]),i.push(o[c]));return s.length===0&&(s.push(1),i.push(1)),D.fromData(a,s,u,i,r.offset)}else{let s=t<0?n+t:t;if(s<0||s>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);if(e[s]!==1)throw new Error(`cannot select an axis which has size not equal to one (axis ${t} has size ${e[s]})`);let i=[],c=[];for(let l=0;l<n;l++)l!==s&&(i.push(e[l]),c.push(o[l]));return D.fromData(a,i,u,c,r.offset)}}function st(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,u=r.dtype,s=t;if(s<0&&(s=n+t+1),s<0||s>n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n+1}`);let i=[...Array.from(e)];i.splice(s,0,1);let c=[...Array.from(o)],l=s<n?o[s]*(e[s]||1):1;return c.splice(s,0,l),D.fromData(a,i,u,c,r.offset)}function ho(r,t,e){let n=r.shape,o=n.length,a=r.strides,u=r.data,s=r.dtype,i=t<0?o+t:t,c=e<0?o+e:e;if(i<0||i>=o)throw new Error(`axis1 ${t} is out of bounds for array of dimension ${o}`);if(c<0||c>=o)throw new Error(`axis2 ${e} is out of bounds for array of dimension ${o}`);if(i===c)return D.fromData(u,Array.from(n),s,Array.from(a),r.offset);let l=Array.from(n),m=Array.from(a);return[l[i],l[c]]=[l[c],l[i]],[m[i],m[c]]=[m[c],m[i]],D.fromData(u,l,s,m,r.offset)}function Ie(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 it(r,i)}function Cr(r,t=0){if(r.length===0)throw new Error("need at least one array to concatenate");if(r.length===1)return r[0].copy();let e=r[0],n=e.ndim,o=e.dtype,a=t<0?n+t:t;if(a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);for(let d=1;d<r.length;d++){let f=r[d];if(f.ndim!==n)throw new Error("all the input arrays must have same number of dimensions");for(let p=0;p<n;p++)if(p!==a&&f.shape[p]!==e.shape[p])throw new Error("all the input array dimensions except for the concatenation axis must match exactly")}let u=Array.from(e.shape),s=e.shape[a];for(let d=1;d<r.length;d++)s+=r[d].shape[a];u[a]=s;let i=u.reduce((d,f)=>d*f,1),c=j(o);if(!c)throw new Error(`Cannot concatenate arrays with dtype ${o}`);let l=new c(i),m=ur(u),y=0;for(let d of r){let f=d.shape[a];ec(d,l,u,m,a,y,o),y+=f}return D.fromData(l,u,o)}function ec(r,t,e,n,o,a,u){let s=r.shape,i=s.length,c=r.size,l=u==="int64"||u==="uint64";if(o===0&&r.isCContiguous&&i>0){let d=a*n[0],f=r.data,p=r.offset,g=p+c;t.set(f.subarray(p,g),d);return}if(o===1&&i===2&&r.isCContiguous){let d=s[0],f=s[1],p=e[1],g=r.data,h=r.offset;for(let b=0;b<d;b++){let A=h+b*f,S=b*p+a;t.set(g.subarray(A,A+f),S)}return}let m=new Array(i).fill(0),y=a*n[o];for(let d=0;d<c;d++){let f=r.iget(d),p=y;for(let g=0;g<i;g++)p+=m[g]*n[g];t[p]=f;for(let g=i-1;g>=0&&(m[g]++,!(m[g]<s[g]));g--)m[g]=0}}function So(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=>st(s,a));return Cr(u,a)}function xo(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?ir(e,[1,e.shape[0]]):e);return Cr(t,0)}function ze(r){if(r.length===0)throw new Error("need at least one array to stack");return r.every(e=>e.ndim===1)?Cr(r,0):Cr(r,1)}function Do(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?ir(st(ir(e,[1,e.shape[0]]),2),[1,e.shape[0],1]):e.ndim===2?st(e,2):e);return Cr(t,2)}function No(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 wo(r,s,a)}function ut(r,t,e=0){let n=r.shape,o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=n[a],s;if(typeof t=="number"){let i=t,c=Math.floor(u/i),l=u%i;s=[];let m=0;for(let y=0;y<i-1;y++)m+=c+(y<l?1:0),s.push(m)}else s=t;return wo(r,s,a)}function wo(r,t,e){let n=r.shape,o=n[e],a=[0,...t,o],u=[];for(let s=0;s<a.length-1;s++){let i=a[s],c=a[s+1];if(i>c)throw new Error("split indices must be in ascending order");let l=Array.from(n);l[e]=c-i;let m=r.offset+i*r.strides[e];u.push(D.fromData(r.data,l,r.dtype,Array.from(r.strides),m))}return u}function Io(r,t){if(r.ndim<2)throw new Error("vsplit only works on arrays of 2 or more dimensions");return ut(r,t,0)}function zo(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 ut(r,t,e)}function _o(r,t){let e=r.shape,n=e.length,o=r.dtype,a=Array.isArray(t)?t:[t],u=Math.max(n,a.length),s=new Array(u).fill(1),i=new Array(u).fill(1);for(let b=0;b<n;b++)s[u-n+b]=e[b];for(let b=0;b<a.length;b++)i[u-a.length+b]=a[b];let c=s.map((b,A)=>b*i[A]),l=c.reduce((b,A)=>b*A,1),m=j(o);if(!m)throw new Error(`Cannot tile array with dtype ${o}`);let y=new m(l),d=ur(c),f=r;n<u&&(f=ir(r,s));let p=o==="int64"||o==="uint64",g=f.strides,h=new Array(u).fill(0);for(let b=0;b<l;b++){let A=f.offset;for(let w=0;w<u;w++){let N=h[w]%s[w];A+=N*g[w]}let S=f.data[A],x=0;for(let w=0;w<u;w++)x+=h[w]*d[w];y[x]=S;for(let w=u-1;w>=0&&(h[w]++,!(h[w]<c[w]));w--)h[w]=0}return D.fromData(y,c,o)}function Fo(r,t,e){let n=r.shape,o=n.length,a=r.dtype,u=r.size;if(e===void 0){let b=u,A=Array.isArray(t)?t:new Array(b).fill(t);if(A.length!==b)throw new Error(`operands could not be broadcast together with shape (${b},) (${A.length},)`);let S=A.reduce((I,z)=>I+z,0),x=j(a);if(!x)throw new Error(`Cannot repeat array with dtype ${a}`);let w=new x(S),N=0;for(let I=0;I<b;I++){let z=r.iget(I),F=A[I];for(let _=0;_<F;_++)w[N++]=z}return D.fromData(w,[S],a)}let s=e<0?o+e:e;if(s<0||s>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=n[s],c=Array.isArray(t)?t:new Array(i).fill(t);if(c.length!==i)throw new Error(`operands could not be broadcast together with shape (${i},) (${c.length},)`);let l=Array.from(n);l[s]=c.reduce((b,A)=>b+A,0);let m=l.reduce((b,A)=>b*A,1),y=j(a);if(!y)throw new Error(`Cannot repeat array with dtype ${a}`);let d=new y(m),f=ur(l),p=new Array(o).fill(0),g=a==="int64"||a==="uint64",h=[0];for(let b=0;b<i;b++)h.push(h[b]+c[b]);for(let b=0;b<u;b++){let A=r.iget(b),S=p[s],x=c[S],w=0;for(let z=0;z<o;z++)z!==s&&(w+=p[z]*f[z]);let N=f[s],I=h[S];for(let z=0;z<x;z++){let F=w+(I+z)*N;d[F]=A}for(let z=o-1;z>=0&&(p[z]++,!(p[z]<n[z]));z--)p[z]=0}return D.fromData(d,l,a)}function Mo(r,t){let e=r.shape,n=e.length,o=r.dtype,a=r.size,u;if(t===void 0)u=new Set(Array.from({length:n},(y,d)=>d));else if(typeof t=="number"){let y=t<0?n+t:t;if(y<0||y>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);u=new Set([y])}else u=new Set(t.map(y=>{let d=y<0?n+y:y;if(d<0||d>=n)throw new Error(`axis ${y} is out of bounds for array of dimension ${n}`);return d}));let s=j(o);if(!s)throw new Error(`Cannot flip array with dtype ${o}`);let i=new s(a),c=B(o);if(n===1&&r.isCContiguous){let y=r.data,d=r.offset;for(let f=0;f<a;f++)i[f]=y[d+a-1-f];return D.fromData(i,[...e],o)}if(n===2&&r.isCContiguous){let y=e[0],d=e[1],f=r.data,p=r.offset;if(u.size===2){for(let g=0;g<a;g++)i[g]=f[p+a-1-g];return D.fromData(i,[...e],o)}if(u.size===1){if(u.has(0)){for(let g=0;g<y;g++){let h=p+(y-1-g)*d,b=g*d;for(let A=0;A<d;A++)i[b+A]=f[h+A]}return D.fromData(i,[...e],o)}else if(u.has(1)){for(let g=0;g<y;g++){let h=p+g*d,b=g*d;for(let A=0;A<d;A++)i[b+A]=f[h+d-1-A]}return D.fromData(i,[...e],o)}}}let l=new Array(n),m=new Array(n).fill(0);for(let y=0;y<a;y++){for(let p=0;p<n;p++)l[p]=u.has(p)?e[p]-1-m[p]:m[p];let d=r.offset;for(let p=0;p<n;p++)d+=l[p]*r.strides[p];let f=r.data[d];i[y]=f;for(let p=n-1;p>=0&&(m[p]++,!(m[p]<e[p]));p--)m[p]=0}return D.fromData(i,[...e],o)}function Bo(r,t=1,e=[0,1]){let n=r.shape,o=n.length,a=r.dtype;if(o<2)throw new Error("Input must be at least 2-D");let u=e[0]<0?o+e[0]:e[0],s=e[1]<0?o+e[1]:e[1];if(u<0||u>=o||s<0||s>=o)throw new Error(`Axes are out of bounds for array of dimension ${o}`);if(u===s)throw new Error("Axes must be different");if(t=(t%4+4)%4,t===0)return r.copy();let i=j(a);if(!i)throw new Error(`Cannot rotate array with dtype ${a}`);let c=[...n];(t===1||t===3)&&([c[u],c[s]]=[c[s],c[u]]);let l=c.reduce((g,h)=>g*h,1),m=new i(l),y=ur(c),d=B(a),f=new Array(o).fill(0),p=new Array(o);for(let g=0;g<r.size;g++){for(let x=0;x<o;x++)p[x]=f[x];let h,b;t===1?(h=n[s]-1-f[s],b=f[u]):t===2?(h=n[u]-1-f[u],b=n[s]-1-f[s],p[u]=h,p[s]=b):(h=f[s],b=n[u]-1-f[u]),t!==2&&(p[u]=h,p[s]=b);let A=0;for(let x=0;x<o;x++)A+=p[x]*y[x];let S=r.iget(g);m[A]=S;for(let x=o-1;x>=0&&(f[x]++,!(f[x]<n[x]));x--)f[x]=0}return D.fromData(m,c,a)}function vo(r,t,e){let n=r.shape,o=n.length,a=r.dtype,u=r.size;if(e===void 0){let f=Array.isArray(t)?t.reduce((A,S)=>A+S,0):t,p=Ct(r),g=j(a);if(!g)throw new Error(`Cannot roll array with dtype ${a}`);let h=new g(u),b=B(a);for(let A=0;A<u;A++){let S=((A-f)%u+u)%u,x=p.iget(S);h[A]=x}return D.fromData(h,[...n],a)}let s=Array.isArray(t)?t:[t],i=Array.isArray(e)?e:[e];if(s.length!==i.length)throw new Error("shift and axis must have the same length");let c=i.map(f=>{let p=f<0?o+f:f;if(p<0||p>=o)throw new Error(`axis ${f} is out of bounds for array of dimension ${o}`);return p}),l=j(a);if(!l)throw new Error(`Cannot roll array with dtype ${a}`);let m=new l(u),y=B(a),d=new Array(o).fill(0);for(let f=0;f<u;f++){let p=[...d];for(let b=0;b<c.length;b++){let A=c[b],S=n[A],x=s[b];p[A]=((p[A]-x)%S+S)%S}let g=r.offset;for(let b=0;b<o;b++)g+=p[b]*r.strides[b];let h=r.data[g];m[f]=h;for(let b=o-1;b>=0&&(d[b]++,!(d[b]<n[b]));b--)d[b]=0}return D.fromData(m,[...n],a)}function To(r,t,e=0){let n=r.ndim,o=t<0?n+t:t;if(o<0||o>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let a=e<0?n+e:e;if(a<0||a>n)throw new Error(`start ${e} is out of bounds`);return o<a&&a--,o===a?D.fromData(r.data,Array.from(r.shape),r.dtype,Array.from(r.strides),r.offset):Ie(r,o,a)}function Eo(r,t){if(r.ndim<3)throw new Error("dsplit only works on arrays of 3 or more dimensions");return ut(r,t,2)}function Oo(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?ir(e,[e.shape[0],1]):e);return ze(t)}function Co(r,t){let e=r.dtype,n=t.reduce((i,c)=>i*c,1),o=r.size,a=j(e);if(!a)throw new Error(`Cannot resize array with dtype ${e}`);let u=new a(n),s=B(e);for(let i=0;i<n;i++){let c=i%o,l=r.iget(c);u[i]=l}return D.fromData(u,t,e)}function Uo(r){return r.map(t=>t.ndim===0?ir(t,[1]):t)}function $o(r){return r.map(t=>t.ndim===0?ir(t,[1,1]):t.ndim===1?ir(t,[1,t.shape[0]]):t)}function Ro(r){return r.map(t=>t.ndim===0?ir(t,[1,1,1]):t.ndim===1?ir(t,[1,t.shape[0],1]):t.ndim===2?ir(t,[t.shape[0],t.shape[1],1]):t)}var _e=W(()=>{"use strict";X();J()});function Gr(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 nc(r,t,e,n,o,a,u,s,i,c,l,m,y,d){if(m===0)for(let h=0;h<n*o;h++)y[h]=0;else if(m!==1)for(let h=0;h<n*o;h++)y[h]=(y[h]??0)*m;let f=r==="row-major",p=t==="transpose",g=e==="transpose";if(f&&!p&&!g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[h*i+S]??0)*(c[S*l+b]??0);y[h*d+b]=(y[h*d+b]??0)+u*A}else if(f&&p&&!g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[S*i+h]??0)*(c[S*l+b]??0);y[h*d+b]=(y[h*d+b]??0)+u*A}else if(f&&!p&&g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[h*i+S]??0)*(c[b*l+S]??0);y[h*d+b]=(y[h*d+b]??0)+u*A}else if(f&&p&&g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[S*i+h]??0)*(c[b*l+S]??0);y[h*d+b]=(y[h*d+b]??0)+u*A}else if(!f&&!p&&!g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[S*i+h]??0)*(c[b*l+S]??0);y[b*d+h]=(y[b*d+h]??0)+u*A}else if(!f&&p&&!g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[h*i+S]??0)*(c[b*l+S]??0);y[b*d+h]=(y[b*d+h]??0)+u*A}else if(!f&&!p&&g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[S*i+h]??0)*(c[S*l+b]??0);y[b*d+h]=(y[b*d+h]??0)+u*A}else for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[h*i+S]??0)*(c[S*l+b]??0);y[b*d+h]=(y[b*d+h]??0)+u*A}}function Me(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 Gr(a,u);if(e===0){let s=Z(r.dtype,t.dtype),i=D.zeros([...t.shape],s),c=(l,m)=>{let y=new Array(m.length),d=l;for(let f=m.length-1;f>=0;f--)y[f]=d%m[f],d=Math.floor(d/m[f]);return y};for(let l=0;l<t.size;l++){let m=c(l,t.shape),y=t.get(...m);i.set(m,Gr(a,y))}return i}else{let s=Z(r.dtype,t.dtype),i=D.zeros([...r.shape],s),c=(l,m)=>{let y=new Array(m.length),d=l;for(let f=m.length-1;f>=0;f--)y[f]=d%m[f],d=Math.floor(d/m[f]);return y};for(let l=0;l<r.size;l++){let m=c(l,r.shape),y=r.get(...m);i.set(m,Gr(y,u))}return i}}if(e===1&&n===1){if(r.shape[0]!==t.shape[0])throw new Error(`dot: incompatible shapes (${r.shape[0]},) and (${t.shape[0]},)`);let a=r.shape[0];if(o){let s=0,i=0;for(let c=0;c<a;c++){let l=r.get(c),m=t.get(c),y=Gr(l,m);y instanceof O?(s+=y.re,i+=y.im):s+=y}return new O(s,i)}let u=0;for(let s=0;s<a;s++){let i=r.get(s),c=t.get(s);typeof i=="bigint"&&typeof c=="bigint"?u=Number(u)+Number(i*c):u+=Number(i)*Number(c)}return u}if(e===2&&n===2)return Ar(r,t);if(e===2&&n===1){let[a,u]=r.shape,s=t.shape[0];if(u!==s)throw new Error(`dot: incompatible shapes (${a},${u}) and (${s},)`);let i=Z(r.dtype,t.dtype),c=D.zeros([a],i);if(o)for(let l=0;l<a;l++){let m=0,y=0;for(let d=0;d<u;d++){let f=r.get(l,d),p=t.get(d),g=f instanceof O?f:new O(Number(f),0),h=p instanceof O?p:new O(Number(p),0);m+=g.re*h.re-g.im*h.im,y+=g.re*h.im+g.im*h.re}c.set([l],new O(m,y))}else for(let l=0;l<a;l++){let m=0;for(let y=0;y<u;y++){let d=r.get(l,y),f=t.get(y);typeof d=="bigint"&&typeof f=="bigint"?m=Number(m)+Number(d*f):m+=Number(d)*Number(f)}c.set([l],m)}return c}if(e===1&&n===2){let a=r.shape[0],[u,s]=t.shape;if(a!==u)throw new Error(`dot: incompatible shapes (${a},) and (${u},${s})`);let i=Z(r.dtype,t.dtype),c=D.zeros([s],i);if(o)for(let l=0;l<s;l++){let m=0,y=0;for(let d=0;d<a;d++){let f=r.get(d),p=t.get(d,l),g=f instanceof O?f:new O(Number(f),0),h=p instanceof O?p:new O(Number(p),0);m+=g.re*h.re-g.im*h.im,y+=g.re*h.im+g.im*h.re}c.set([l],new O(m,y))}else for(let l=0;l<s;l++){let m=0;for(let y=0;y<a;y++){let d=r.get(y),f=t.get(y,l);typeof d=="bigint"&&typeof f=="bigint"?m=Number(m)+Number(d*f):m+=Number(d)*Number(f)}c.set([l],m)}return c}if(e>2&&n===1){let a=r.shape[e-1],u=t.shape[0];if(a!==u)throw new Error(`dot: incompatible shapes ${JSON.stringify(r.shape)} and (${u},)`);let s=[...r.shape.slice(0,-1)],i=Z(r.dtype,t.dtype),c=D.zeros(s,i),l=s.reduce((m,y)=>m*y,1);if(o)for(let m=0;m<l;m++){let y=0,d=0,f=m,p=[];for(let g=s.length-1;g>=0;g--)p[g]=f%s[g],f=Math.floor(f/s[g]);for(let g=0;g<a;g++){let h=[...p,g],b=r.get(...h),A=t.get(g),S=b instanceof O?b:new O(Number(b),0),x=A instanceof O?A:new O(Number(A),0);y+=S.re*x.re-S.im*x.im,d+=S.re*x.im+S.im*x.re}c.set(p,new O(y,d))}else for(let m=0;m<l;m++){let y=0,d=m,f=[];for(let p=s.length-1;p>=0;p--)f[p]=d%s[p],d=Math.floor(d/s[p]);for(let p=0;p<a;p++){let g=[...f,p],h=r.get(...g),b=t.get(p);typeof h=="bigint"&&typeof b=="bigint"?y=Number(y)+Number(h*b):y+=Number(h)*Number(b)}c.set(f,y)}return c}if(e===1&&n>2){let a=r.shape[0],u=1,s=t.shape[u];if(a!==s)throw new Error(`dot: incompatible shapes (${a},) and ${JSON.stringify(t.shape)}`);let i=[...t.shape.slice(0,u),...t.shape.slice(u+1)],c=Z(r.dtype,t.dtype),l=D.zeros(i,c),m=i.reduce((y,d)=>y*d,1);if(o)for(let y=0;y<m;y++){let d=y,f=[];for(let A=i.length-1;A>=0;A--)f[A]=d%i[A],d=Math.floor(d/i[A]);let p=f.slice(0,u),g=f.slice(u),h=0,b=0;for(let A=0;A<a;A++){let S=r.get(A),x=[...p,A,...g],w=t.get(...x),N=S instanceof O?S:new O(Number(S),0),I=w instanceof O?w:new O(Number(w),0);h+=N.re*I.re-N.im*I.im,b+=N.re*I.im+N.im*I.re}l.set(f,new O(h,b))}else for(let y=0;y<m;y++){let d=y,f=[];for(let b=i.length-1;b>=0;b--)f[b]=d%i[b],d=Math.floor(d/i[b]);let p=f.slice(0,u),g=f.slice(u),h=0;for(let b=0;b<a;b++){let A=r.get(b),S=[...p,b,...g],x=t.get(...S);typeof A=="bigint"&&typeof x=="bigint"?h=Number(h)+Number(A*x):h+=Number(A)*Number(x)}l.set(f,h)}return l}if(e>=2&&n>=2&&!(e===2&&n===2)){let a=r.shape[e-1],u=t.shape[n-2];if(a!==u)throw new Error(`dot: incompatible shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(t.shape)}`);let s=[...r.shape.slice(0,-1),...t.shape.slice(0,-2),t.shape[n-1]],i=Z(r.dtype,t.dtype),c=D.zeros(s,i),l=r.shape.slice(0,-1).reduce((f,p)=>f*p,1),m=t.shape.slice(0,-2).reduce((f,p)=>f*p,1),y=t.shape[n-1],d=a;if(o)for(let f=0;f<l;f++)for(let p=0;p<m;p++)for(let g=0;g<y;g++){let h=0,b=0;for(let x=0;x<d;x++){let w=[],N=f;for(let C=r.shape.length-2;C>=0;C--)w.unshift(N%r.shape[C]),N=Math.floor(N/r.shape[C]);w.push(x);let I=r.get(...w),z=[],F=p;for(let C=t.shape.length-3;C>=0;C--)z.unshift(F%t.shape[C]),F=Math.floor(F/t.shape[C]);z.push(x,g);let _=t.get(...z),T=I instanceof O?I:new O(Number(I),0),E=_ instanceof O?_:new O(Number(_),0);h+=T.re*E.re-T.im*E.im,b+=T.re*E.im+T.im*E.re}let A=f*m*y+p*y+g,S=c.data;S[A*2]=h,S[A*2+1]=b}else for(let f=0;f<l;f++)for(let p=0;p<m;p++)for(let g=0;g<y;g++){let h=0;for(let A=0;A<d;A++){let S=f*d+A,x=p*d*y+A*y+g,w=r.data[S+r.offset],N=t.data[x+t.offset];typeof w=="bigint"&&typeof N=="bigint"?h=Number(h)+Number(w*N):h+=Number(w)*Number(N)}let b=f*m*y+p*y+g;c.data[b]=h}return c}throw new Error(`dot: unexpected combination of dimensions ${e}D \xB7 ${n}D`)}function Ar(r,t){if(r.ndim!==2||t.ndim!==2)throw new Error("matmul requires 2D arrays");let[e=0,n=0]=r.shape,[o=0,a=0]=t.shape;if(n!==o)throw new Error(`matmul shape mismatch: (${e},${n}) @ (${o},${a})`);let u=Z(r.dtype,t.dtype);if(M(u)){let x=D.zeros([e,a],u),w=x.data,N=r.data,I=t.data;for(let z=0;z<e;z++)for(let F=0;F<a;F++){let _=0,T=0;for(let C=0;C<n;C++){let k=(z*n+C)*2,V=(C*a+F)*2,R=N[k],L=N[k+1],P=I[V],Q=I[V+1];_+=R*P-L*Q,T+=R*Q+L*P}let E=z*a+F;w[E*2]=_,w[E*2+1]=T}return x}let s=u.startsWith("int")||u.startsWith("uint")||u==="bool"?"float64":u;if(s!=="float64")throw new Error(`matmul currently only supports float64, got ${s}`);let i=r.dtype==="float64"?r.data:Float64Array.from(Array.from(r.data).map(Number)),c=t.dtype==="float64"?t.data:Float64Array.from(Array.from(t.data).map(Number));r.offset>0&&(i=i.subarray(r.offset)),t.offset>0&&(c=c.subarray(t.offset));let[l=0,m=0]=r.strides,[y=0,d=0]=t.strides,f=m>l,p=d>y,g=f?"transpose":"no-transpose",h=p?"transpose":"no-transpose",b,A;f?b=m:b=l,p?A=d:A=y;let S=D.zeros([e,a],"float64");return nc("row-major",g,h,e,a,n,1,i,b,c,A,0,S.data,a),S}function Po(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 qo(r,t){return it(r,t)}function jo(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 Me(r,t);let s=[...r.shape.slice(0,-1),...t.shape.slice(0,-1)],i=Z(r.dtype,t.dtype),c=D.zeros(s,i),l=e===1?1:r.shape.slice(0,-1).reduce((d,f)=>d*f,1),m=n===1?1:t.shape.slice(0,-1).reduce((d,f)=>d*f,1),y=a;if(o)for(let d=0;d<l;d++)for(let f=0;f<m;f++){let p=0,g=0;for(let A=0;A<y;A++){let S,x;if(e===1)S=r.get(A);else{let I=[],z=d,F=r.shape.slice(0,-1);for(let _=F.length-1;_>=0;_--)I.unshift(z%F[_]),z=Math.floor(z/F[_]);I.push(A),S=r.get(...I)}if(n===1)x=t.get(A);else{let I=[],z=f,F=t.shape.slice(0,-1);for(let _=F.length-1;_>=0;_--)I.unshift(z%F[_]),z=Math.floor(z/F[_]);I.push(A),x=t.get(...I)}let w=S instanceof O?S:new O(Number(S),0),N=x instanceof O?x:new O(Number(x),0);p+=w.re*N.re-w.im*N.im,g+=w.re*N.im+w.im*N.re}if(s.length===0)return new O(p,g);let h=l===1?f:d*m+f,b=c.data;b[h*2]=p,b[h*2+1]=g}else for(let d=0;d<l;d++)for(let f=0;f<m;f++){let p=0;for(let h=0;h<y;h++){let b=e===1?h:d*y+h,A=n===1?h:f*y+h,S=r.data[b+r.offset],x=t.data[A+t.offset];typeof S=="bigint"&&typeof x=="bigint"?p=Number(p)+Number(S*x):p+=Number(S)*Number(x)}if(s.length===0)return p;let g=l===1?f:d*m+f;c.data[g]=p}return c}function Be(r,t){let e=r.ndim===1?r:Wr(r),n=t.ndim===1?t:Wr(t),o=e.size,a=n.size,u=Z(r.dtype,t.dtype),s=D.zeros([o,a],u);for(let i=0;i<o;i++)for(let c=0;c<a;c++){let l=e.get(i),m=n.get(c),y=Gr(l,m);s.set([i,c],y)}return s}function Lo(r,t,e){let n,o;if(typeof e=="number"){let f=e;if(f<0)throw new Error("tensordot: axes must be non-negative");if(f>r.ndim||f>t.ndim)throw new Error("tensordot: axes exceeds array dimensions");n=Array.from({length:f},(p,g)=>r.ndim-f+g),o=Array.from({length:f},(p,g)=>g)}else if([n,o]=e,n.length!==o.length)throw new Error("tensordot: axes lists must have same length");for(let f=0;f<n.length;f++){let p=n[f],g=o[f];if(p<0||p>=r.ndim||g<0||g>=t.ndim)throw new Error("tensordot: axis out of bounds");if(r.shape[p]!==t.shape[g])throw new Error(`tensordot: shape mismatch on axes ${p} and ${g}: ${r.shape[p]} != ${t.shape[g]}`)}let a=[],u=[];for(let f=0;f<r.ndim;f++)n.includes(f)||a.push(f);for(let f=0;f<t.ndim;f++)o.includes(f)||u.push(f);let s=[...a.map(f=>r.shape[f]),...u.map(f=>t.shape[f])],i=Z(r.dtype,t.dtype),c=M(i),l=f=>f instanceof O?{re:f.re,im:f.im}:{re:Number(f),im:0};if(s.length===0){let f=0,p=0,g=n.map(h=>r.shape[h]).reduce((h,b)=>h*b,1);for(let h=0;h<g;h++){let b=h,A=new Array(n.length);for(let I=n.length-1;I>=0;I--){let z=n[I];A[I]=b%r.shape[z],b=Math.floor(b/r.shape[z])}let S=new Array(r.ndim),x=new Array(t.ndim);for(let I=0;I<n.length;I++)S[n[I]]=A[I];for(let I=0;I<o.length;I++)x[o[I]]=A[I];let w=r.get(...S),N=t.get(...x);if(c){let I=l(w),z=l(N);f+=I.re*z.re-I.im*z.im,p+=I.re*z.im+I.im*z.re}else typeof w=="bigint"&&typeof N=="bigint"?f+=Number(w*N):f+=Number(w)*Number(N)}return c?new O(f,p):f}let m=D.zeros(s,i),y=s.reduce((f,p)=>f*p,1),d=n.map(f=>r.shape[f]).reduce((f,p)=>f*p,1);for(let f=0;f<y;f++){let p=f,g=[];for(let x=s.length-1;x>=0;x--)g[x]=p%s[x],p=Math.floor(p/s[x]);let h=g.slice(0,a.length),b=g.slice(a.length),A=0,S=0;for(let x=0;x<d;x++){p=x;let w=[];for(let _=n.length-1;_>=0;_--){let T=n[_];w[_]=p%r.shape[T],p=Math.floor(p/r.shape[T])}let N=new Array(r.ndim),I=new Array(t.ndim);for(let _=0;_<a.length;_++)N[a[_]]=h[_];for(let _=0;_<u.length;_++)I[u[_]]=b[_];for(let _=0;_<n.length;_++)N[n[_]]=w[_],I[o[_]]=w[_];let z=r.get(...N),F=t.get(...I);if(c){let _=l(z),T=l(F);A+=_.re*T.re-_.im*T.im,S+=_.re*T.im+_.im*T.re}else typeof z=="bigint"&&typeof F=="bigint"?A+=Number(z*F):A+=Number(z)*Number(F)}c?m.set(g,new O(A,S)):m.set(g,A)}return m}function Wo(r,t=0,e=0,n=1){let o=r.shape,a=o.length;if(a<2)throw new Error("diagonal requires an array of at least two dimensions");let u=e<0?a+e:e,s=n<0?a+n:n;if(u<0||u>=a||s<0||s>=a)throw new Error("axis out of bounds");if(u===s)throw new Error("axis1 and axis2 cannot be the same");let i=o[u],c=o[s],l;t>=0?l=Math.max(0,Math.min(i,c-t)):l=Math.max(0,Math.min(i+t,c));let m=[];for(let p=0;p<a;p++)p!==u&&p!==s&&m.push(o[p]);m.push(l);let y=D.zeros(m,r.dtype),d=o.filter((p,g)=>g!==u&&g!==s),f=d.reduce((p,g)=>p*g,1);for(let p=0;p<f;p++){let g=p,h=[];for(let b=d.length-1;b>=0;b--)h.unshift(g%d[b]),g=Math.floor(g/d[b]);for(let b=0;b<l;b++){let A=new Array(a),S=0;for(let N=0;N<a;N++)N===u?A[N]=t>=0?b:b-t:N===s?A[N]=t>=0?b+t:b:A[N]=h[S++];let x=[...h,b],w=r.get(...A);y.set(x,w)}}return y}function Go(r,...t){let e=r.indexOf("->"),n,o;e===-1?(n=r,o=oc(n)):(n=r.slice(0,e),o=r.slice(e+2));let a=n.split(",").map(p=>p.trim());if(a.length!==t.length)throw new Error(`einsum: expected ${a.length} operands, got ${t.length}`);let u=new Map;for(let p=0;p<t.length;p++){let g=a[p],h=t[p];if(g.length!==h.ndim)throw new Error(`einsum: operand ${p} has ${h.ndim} dimensions but subscript '${g}' has ${g.length} indices`);for(let b=0;b<g.length;b++){let A=g[b],S=h.shape[b];if(u.has(A)){if(u.get(A)!==S)throw new Error(`einsum: size mismatch for index '${A}': ${u.get(A)} vs ${S}`)}else u.set(A,S)}}for(let p of o)if(!u.has(p))throw new Error(`einsum: output subscript contains unknown index '${p}'`);let s=new Set(o),i=new Set;for(let p of a)for(let g of p)i.add(g);let c=[];for(let p of i)s.has(p)||c.push(p);if(t.length===2&&a.length===2){let[p,g]=a,[h,b]=t;if(p.length===2&&g.length===2&&o.length===2&&h.ndim===2&&b.ndim===2){let[A,S]=[p[0],p[1]],[x,w]=[g[0],g[1]],[N,I]=[o[0],o[1]];if(A===N&&w===I&&S===x&&c.length===1&&c[0]===S||A===N&&w===I&&S===x&&c.length===1&&c[0]===S)return Ar(h,b);if(S===N&&w===I&&A===x&&c.length===1&&c[0]===A){let z=qo(h);return Ar(z,b)}if(A===N&&x===I&&S===w&&c.length===1&&c[0]===S){let z=qo(b);return Ar(h,z)}}if(p.length===1&&g.length===1&&p===g&&o.length===0&&h.ndim===1&&b.ndim===1)return Fe(t,a,c,u);if(p&&g&&p.length===1&&g.length===1&&o.length===2&&o===p+g&&c.length===0&&h.ndim===1&&b.ndim===1)return Be(h,b)}if(t.length===1&&a[0].length===2&&o.length===0){let p=a[0];if(p[0]===p[1]&&t[0].ndim===2)return Fe(t,a,c,u)}let l=Array.from(o).map(p=>u.get(p));if(l.length===0)return Fe(t,a,c,u);let m=t[0].dtype;for(let p=1;p<t.length;p++)m=Z(m,t[p].dtype);let y=D.zeros(l,m),d=l.reduce((p,g)=>p*g,1),f=1;for(let p of c)f*=u.get(p);for(let p=0;p<d;p++){let g=ac(p,l),h=new Map;for(let A=0;A<o.length;A++)h.set(o[A],g[A]);let b=0;for(let A=0;A<f;A++){let S=A;for(let w=c.length-1;w>=0;w--){let N=c[w],I=u.get(N);h.set(N,S%I),S=Math.floor(S/I)}let x=1;for(let w=0;w<t.length;w++){let N=t[w],I=a[w],z=[];for(let _ of I)z.push(h.get(_));let F=N.get(...z);x*=Number(F)}b+=x}y.set(g,b)}return y}function oc(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 Fe(r,t,e,n){let o=!1;for(let c of r)if(M(c.dtype)){o=!0;break}let a=c=>c instanceof O?{re:c.re,im:c.im}:{re:Number(c),im:0},u=1;for(let c of e)u*=n.get(c);let s=0,i=0;for(let c=0;c<u;c++){let l=new Map,m=c;for(let f=e.length-1;f>=0;f--){let p=e[f],g=n.get(p);l.set(p,m%g),m=Math.floor(m/g)}let y=1,d=0;for(let f=0;f<r.length;f++){let p=r[f],g=t[f],h=[];for(let A of g)h.push(l.get(A));let b=p.get(...h);if(o){let A=a(b),S=y*A.re-d*A.im,x=y*A.im+d*A.re;y=S,d=x}else y*=Number(b)}s+=y,i+=d}return o?new O(s,i):s}function ac(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 Zo(r,t){let e=r.shape,n=t.shape,o=e.length,a=n.length,u=Z(r.dtype,t.dtype),s=Math.max(o,a),i=new Array(s),c=new Array(s).fill(1),l=new Array(s).fill(1);for(let f=0;f<o;f++)c[s-o+f]=e[f];for(let f=0;f<a;f++)l[s-a+f]=n[f];for(let f=0;f<s;f++)i[f]=c[f]*l[f];let m=D.zeros(i,u),y=e.reduce((f,p)=>f*p,1),d=n.reduce((f,p)=>f*p,1);for(let f=0;f<y;f++){let p=f,g=new Array(o);for(let A=o-1;A>=0;A--)g[A]=p%e[A],p=Math.floor(p/e[A]);let h=new Array(s).fill(0);for(let A=0;A<o;A++)h[s-o+A]=g[A];let b=r.get(...g);for(let A=0;A<d;A++){let S=A,x=new Array(a);for(let F=a-1;F>=0;F--)x[F]=S%n[F],S=Math.floor(S/n[F]);let w=new Array(s).fill(0);for(let F=0;F<a;F++)w[s-a+F]=x[F];let N=t.get(...x),I=new Array(s);for(let F=0;F<s;F++)I[F]=h[F]*l[F]+w[F];let z=Gr(b,N);m.set(I,z)}}return m}function Yo(r,t,e=-1,n=-1,o=-1,a){a!==void 0&&(e=a,n=a,o=a);let u=(A,S)=>A<0?S+A:A,s=u(e,r.ndim),i=u(n,t.ndim);if(r.ndim===1&&t.ndim===1){let A=r.shape[0],S=t.shape[0];if(A===3&&S===3){let x=Number(r.get(0)),w=Number(r.get(1)),N=Number(r.get(2)),I=Number(t.get(0)),z=Number(t.get(1)),F=Number(t.get(2)),_=D.zeros([3],"float64");return _.set([0],w*F-N*z),_.set([1],N*I-x*F),_.set([2],x*z-w*I),_}else if(A===2&&S===2){let x=Number(r.get(0)),w=Number(r.get(1)),N=Number(t.get(0)),I=Number(t.get(1));return x*I-w*N}else if(A===2&&S===3||A===3&&S===2){let x=Number(r.get(0)),w=Number(r.get(1)),N=A===3?Number(r.get(2)):0,I=Number(t.get(0)),z=Number(t.get(1)),F=S===3?Number(t.get(2)):0,_=D.zeros([3],"float64");return _.set([0],w*F-N*z),_.set([1],N*I-x*F),_.set([2],x*z-w*I),_}else throw new Error(`cross: incompatible dimensions for cross product: ${A} and ${S}`)}let c=r.shape[s],l=t.shape[i];if(c!==2&&c!==3||l!==2&&l!==3)throw new Error(`cross: incompatible dimensions for cross product: ${c} and ${l}`);let m=c===2&&l===2?0:3,y=[...r.shape.slice(0,s),...r.shape.slice(s+1)],d=[...t.shape.slice(0,i),...t.shape.slice(i+1)];if(y.length!==d.length)throw new Error("cross: incompatible shapes for cross product");for(let A=0;A<y.length;A++)if(y[A]!==d[A])throw new Error("cross: incompatible shapes for cross product");let f=y,p=o<0?f.length+1+o:o,g;if(m===0?g=f:g=[...f.slice(0,p),m,...f.slice(p)],g.length===0)throw new Error("cross: unexpected scalar result from higher-dimensional input");let h=D.zeros(g,"float64"),b=f.reduce((A,S)=>A*S,1);for(let A=0;A<b;A++){let S=A,x=[];for(let V=f.length-1;V>=0;V--)x[V]=S%f[V],S=Math.floor(S/f[V]);let w=[...x.slice(0,s),0,...x.slice(s)],N=[...x.slice(0,i),0,...x.slice(i)],I=V=>(w[s]=V,Number(r.get(...w))),z=V=>(N[i]=V,Number(t.get(...N))),F=I(0),_=I(1),T=c===3?I(2):0,E=z(0),C=z(1),k=l===3?z(2):0;if(m===0)h.set(x,F*C-_*E);else{let V=_*k-T*C,R=T*E-F*k,L=F*C-_*E,P=(Q,er)=>{let G=[...x.slice(0,p),Q,...x.slice(p)];h.set(G,er)};P(0,V),P(1,R),P(2,L)}}return h}function Zr(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:Wr(r),l=c.size,m;if(t===1/0){m=0;for(let y=0;y<l;y++)m=Math.max(m,Math.abs(Number(c.get(y))))}else if(t===-1/0){m=1/0;for(let y=0;y<l;y++)m=Math.min(m,Math.abs(Number(c.get(y))))}else if(t===0){m=0;for(let y=0;y<l;y++)Number(c.get(y))!==0&&m++}else if(t===1){m=0;for(let y=0;y<l;y++)m+=Math.abs(Number(c.get(y)))}else if(t===2){m=0;for(let y=0;y<l;y++){let d=Number(c.get(y));m+=d*d}m=Math.sqrt(m)}else{m=0;for(let y=0;y<l;y++)m+=Math.pow(Math.abs(Number(c.get(y))),t);m=Math.pow(m,1/t)}if(n){let y=new Array(r.ndim).fill(1),d=D.zeros(y,"float64");return d.set(new Array(r.ndim).fill(0),m),d}return m}let o=e<0?r.ndim+e:e;if(o<0||o>=r.ndim)throw new Error(`vector_norm: axis ${e} out of bounds for array with ${r.ndim} dimensions`);let a=n?[...r.shape.slice(0,o),1,...r.shape.slice(o+1)]:[...r.shape.slice(0,o),...r.shape.slice(o+1)];if(a.length===0)return Zr(r,t,null,!1);let u=D.zeros(a,"float64"),s=r.shape[o],i=a.reduce((c,l)=>c*l,1);for(let c=0;c<i;c++){let l=c,m=[];for(let f=a.length-1;f>=0;f--)m[f]=l%a[f],l=Math.floor(l/a[f]);let y=n?[...m.slice(0,o),0,...m.slice(o+1)]:[...m.slice(0,o),0,...m.slice(o)],d;if(t===1/0){d=0;for(let f=0;f<s;f++)y[o]=f,d=Math.max(d,Math.abs(Number(r.get(...y))))}else if(t===-1/0){d=1/0;for(let f=0;f<s;f++)y[o]=f,d=Math.min(d,Math.abs(Number(r.get(...y))))}else if(t===0){d=0;for(let f=0;f<s;f++)y[o]=f,Number(r.get(...y))!==0&&d++}else if(t===1){d=0;for(let f=0;f<s;f++)y[o]=f,d+=Math.abs(Number(r.get(...y)))}else if(t===2){d=0;for(let f=0;f<s;f++){y[o]=f;let p=Number(r.get(...y));d+=p*p}d=Math.sqrt(d)}else{d=0;for(let f=0;f<s;f++)y[o]=f,d+=Math.pow(Math.abs(Number(r.get(...y))),t);d=Math.pow(d,1/t)}u.set(m,d)}return u}function Ur(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}=Tr(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}=Tr(r);a=Number(u.get(0))}else if(t===-2){let{s:u}=Tr(r);a=Number(u.get(u.size-1))}else throw new Error(`matrix_norm: invalid ord value: ${t}`);if(e){let u=D.zeros([1,1],"float64");return u.set([0,0],a),u}return a}function Ho(r,t=null,e=null,n=!1){if(t===null)return e===null?Zr(r,2,null,n):typeof e=="number"?Zr(r,2,e,n):Ur(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 Ur(r,t,n)}if(r.ndim===2&&e===null&&(t==="fro"||t==="nuc"))return Ur(r,t,n);if(typeof t!="number"&&t!==null)throw new Error(`norm: ord '${t}' not valid for vector norm`);return Zr(r,t??2,e,n)}function ve(r,t="reduced"){if(r.ndim!==2)throw new Error(`qr: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape,o=Math.min(e,n),a=D.zeros([e,n],"float64");for(let d=0;d<e;d++)for(let f=0;f<n;f++)a.set([d,f],Number(r.get(d,f)));let u=[],s=[];for(let d=0;d<o;d++){let f=e-d,p=[];for(let x=d;x<e;x++)p.push(Number(a.get(x,d)));let g=0;for(let x=0;x<f;x++)g+=p[x]*p[x];if(g=Math.sqrt(g),g<1e-15){u.push(p),s.push(0);continue}let h=p[0]>=0?1:-1,b=p[0]+h*g,A=[1];for(let x=1;x<f;x++)A.push(p[x]/b);let S=h*b/g;s.push(S),u.push(A);for(let x=d;x<n;x++){let w=0;for(let N=0;N<f;N++)w+=A[N]*Number(a.get(d+N,x));for(let N=0;N<f;N++)a.set([d+N,x],Number(a.get(d+N,x))-S*A[N]*w)}}if(t==="raw"){let d=D.zeros([e,n],"float64");for(let p=0;p<e;p++)for(let g=0;g<n;g++)d.set([p,g],Number(a.get(p,g)));let f=D.zeros([o],"float64");for(let p=0;p<o;p++)f.set([p],s[p]);return{h:d,tau:f}}if(t==="r"){let d=D.zeros([o,n],"float64");for(let f=0;f<o;f++)for(let p=f;p<n;p++)d.set([f,p],Number(a.get(f,p)));return d}let i=t==="complete"?e:o,c=D.zeros([e,i],"float64");for(let d=0;d<Math.min(e,i);d++)c.set([d,d],1);for(let d=o-1;d>=0;d--){let f=u[d],p=s[d],g=e-d;for(let h=d;h<i;h++){let b=0;for(let A=0;A<g;A++)b+=f[A]*Number(c.get(d+A,h));for(let A=0;A<g;A++)c.set([d+A,h],Number(c.get(d+A,h))-p*f[A]*b)}}let l=D.zeros([e,i],"float64");for(let d=0;d<e;d++)for(let f=0;f<i;f++)l.set([d,f],Number(c.get(d,f)));let m=t==="complete"?e:o,y=D.zeros([m,n],"float64");for(let d=0;d<m;d++)for(let f=0;f<n;f++)f>=d&&y.set([d,f],Number(a.get(d,f)));return{q:l,r:y}}function 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=D.zeros([o,o],"float64");for(let u=0;u<o;u++)for(let s=0;s<=u;s++){let i=0;if(u===s){for(let l=0;l<s;l++)i+=Number(a.get(s,l))**2;let c=Number(r.get(s,s))-i;if(c<0)throw new Error("cholesky: matrix is not positive definite");a.set([s,s],Math.sqrt(c))}else{for(let l=0;l<s;l++)i+=Number(a.get(u,l))*Number(a.get(s,l));let c=Number(a.get(s,s));if(Math.abs(c)<1e-15)throw new Error("cholesky: matrix is not positive definite");a.set([u,s],(Number(r.get(u,s))-i)/c)}}if(t){let u=D.zeros([o,o],"float64");for(let s=0;s<o;s++)for(let i=s;i<o;i++)u.set([s,i],Number(a.get(i,s)));return u}return a}function Tr(r){if(r.ndim!==2)throw new Error(`svd: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape,n=Math.min(t,e),o=D.zeros([e,e],"float64");for(let m=0;m<e;m++)for(let y=0;y<e;y++){let d=0;for(let f=0;f<t;f++)d+=Number(r.get(f,m))*Number(r.get(f,y));o.set([m,y],d)}let{values:a,vectors:u}=Te(o),s=Array.from({length:e},(m,y)=>y);s.sort((m,y)=>a[y]-a[m]);let i=D.zeros([n],"float64");for(let m=0;m<n;m++){let y=a[s[m]];i.set([m],Math.sqrt(Math.max(0,y)))}let c=D.zeros([e,e],"float64");for(let m=0;m<e;m++)for(let y=0;y<e;y++)c.set([m,y],u[y][s[m]]);let l=D.zeros([t,t],"float64");for(let m=0;m<t;m++)for(let y=0;y<n;y++){let d=Number(i.get(y));if(d>1e-10){let f=0;for(let p=0;p<e;p++)f+=Number(r.get(m,p))*Number(c.get(y,p));l.set([m,y],f/d)}}if(t>n)for(let m=n;m<t;m++){let y=new Array(t).fill(0);y[m]=1;for(let f=0;f<m;f++){let p=0;for(let g=0;g<t;g++)p+=y[g]*Number(l.get(g,f));for(let g=0;g<t;g++)y[g]=y[g]-p*Number(l.get(g,f))}let d=0;for(let f=0;f<t;f++)d+=y[f]*y[f];if(d=Math.sqrt(d),d>1e-10)for(let f=0;f<t;f++)l.set([f,m],y[f]/d)}return{u:l,s:i,vt:c}}function Te(r){let t=r.shape[0],e=100*t*t,n=1e-10,o=[];for(let s=0;s<t;s++){o.push([]);for(let i=0;i<t;i++)o[s].push(Number(r.get(s,i)))}let a=[];for(let s=0;s<t;s++){a.push([]);for(let i=0;i<t;i++)a[s].push(s===i?1:0)}for(let s=0;s<e;s++){let i=0,c=0,l=1;for(let A=0;A<t;A++)for(let S=A+1;S<t;S++)Math.abs(o[A][S])>i&&(i=Math.abs(o[A][S]),c=A,l=S);if(i<n)break;let m=o[c][c],y=o[l][l],d=o[c][l],f;Math.abs(m-y)<1e-15?f=Math.PI/4:f=.5*Math.atan2(2*d,y-m);let p=Math.cos(f),g=Math.sin(f),h=p*p*m+g*g*y-2*g*p*d,b=g*g*m+p*p*y+2*g*p*d;o[c][c]=h,o[l][l]=b,o[c][l]=0,o[l][c]=0;for(let A=0;A<t;A++)if(A!==c&&A!==l){let S=o[A][c],x=o[A][l];o[A][c]=p*S-g*x,o[c][A]=o[A][c],o[A][l]=g*S+p*x,o[l][A]=o[A][l]}for(let A=0;A<t;A++){let S=a[A][c],x=a[A][l];a[A][c]=p*S-g*x,a[A][l]=g*S+p*x}}let u=[];for(let s=0;s<t;s++)u.push(o[s][s]);return{values:u,vectors:a}}function Xo(r,t=!0,e=!0){let n=Tr(r);if(!e)return n.s;if(!t){let[o,a]=r.shape,u=Math.min(o,a),s=D.zeros([o,u],"float64");for(let c=0;c<o;c++)for(let l=0;l<u;l++)s.set([c,l],Number(n.u.get(c,l)));let i=D.zeros([u,a],"float64");for(let c=0;c<u;c++)for(let l=0;l<a;l++)i.set([c,l],Number(n.vt.get(c,l)));return{u:s,s:n.s,vt:i}}return n}function Qo(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}=Ee(r),s=a.data,i=u;for(let c=0;c<n;c++)i*=s[c*n+c];return i}function Ee(r){let[t,e]=r.shape,n=t,o=e,a=D.zeros([n,o],"float64"),u=a.data,s=r.data;for(let l=0;l<n*o;l++)u[l]=Number(s[l]);let i=Array.from({length:n},(l,m)=>m),c=1;for(let l=0;l<Math.min(n,o);l++){let m=Math.abs(u[l*o+l]),y=l;for(let f=l+1;f<n;f++){let p=Math.abs(u[f*o+l]);p>m&&(m=p,y=f)}if(y!==l){for(let p=0;p<o;p++){let g=u[l*o+p];u[l*o+p]=u[y*o+p],u[y*o+p]=g}let f=i[l];i[l]=i[y],i[y]=f,c=-c}let d=u[l*o+l];if(Math.abs(d)>1e-15)for(let f=l+1;f<n;f++){let p=u[f*o+l]/d;u[f*o+l]=p;for(let g=l+1;g<o;g++)u[f*o+g]=u[f*o+g]-p*u[l*o+g]}}return{lu:a,piv:i,sign:c}}function Ut(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}=Ee(r),u=o.data,s=D.zeros([n,n],"float64"),i=s.data;for(let c=0;c<n;c++){let l=new Float64Array(n);for(let m=0;m<n;m++){let y=a[m]===c?1:0;for(let d=0;d<m;d++)y-=u[m*n+d]*l[d];l[m]=y}for(let m=n-1;m>=0;m--){let y=l[m];for(let f=m+1;f<n;f++)y-=u[m*n+f]*i[f*n+c];let d=u[m*n+m];if(Math.abs(d)<1e-15)throw new Error("inv: singular matrix");i[m*n+c]=y/d}}return s}function Vo(r,t){let[e]=r.shape,n=e,{lu:o,piv:a}=Ee(r),u=o.data,s=t.data,i=new Float64Array(n);for(let y=0;y<n;y++)i[y]=Number(s[a[y]]);let c=new Float64Array(n);for(let y=0;y<n;y++){let d=i[y];for(let f=0;f<y;f++)d-=u[y*n+f]*c[f];c[y]=d}let l=D.zeros([n],"float64"),m=l.data;for(let y=n-1;y>=0;y--){let d=c[y];for(let p=y+1;p<n;p++)d-=u[y*n+p]*m[p];let f=u[y*n+y];if(Math.abs(f)<1e-15)throw new Error("solve: singular matrix");m[y]=d/f}return l}function Ko(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 Vo(r,t)}if(t.ndim===2){if(t.shape[0]!==o)throw new Error(`solve: incompatible shapes (${e},${n}) and (${t.shape[0]},${t.shape[1]})`);let a=t.shape[1],u=D.zeros([o,a],"float64");for(let s=0;s<a;s++){let i=D.zeros([o],"float64");for(let l=0;l<o;l++)i.set([l],Number(t.get(l,s)));let c=Vo(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 ra(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}=Tr(r),i=Math.min(n,o),c=e??Math.max(n,o)*Number.EPSILON,m=Number(u.get(0))*c,y=0;for(let b=0;b<i;b++)Number(u.get(b))>m&&y++;let d=t.ndim===1?ir(t,[t.size,1]):t,f=d.shape[1];if(d.shape[0]!==n)throw new Error(`lstsq: incompatible shapes (${n},${o}) and (${t.shape.join(",")})`);let p=D.zeros([o,f],"float64");for(let b=0;b<f;b++){let A=new Array(n).fill(0);for(let S=0;S<n;S++)for(let x=0;x<n;x++)A[S]+=Number(a.get(x,S))*Number(d.get(x,b));for(let S=0;S<o;S++){let x=0;for(let w=0;w<i;w++){let N=Number(u.get(w));N>m&&(x+=Number(s.get(w,S))*A[w]/N)}p.set([S,b],x)}}let g;if(n>o){g=D.zeros([f],"float64");for(let b=0;b<f;b++){let A=0;for(let S=0;S<n;S++){let x=0;for(let N=0;N<o;N++)x+=Number(r.get(S,N))*Number(p.get(N,b));let w=x-Number(d.get(S,b));A+=w*w}g.set([b],A)}}else g=D.zeros([0],"float64");return{x:t.ndim===1?ir(p,[o]):p,residuals:g,rank:y,s:u}}function ta(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}=Tr(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=Ur(r,t),a=Ut(r),u=Ur(a,t);return o*u}function ea(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}=Tr(r),n=Number(e.get(0)),o=t??n*Math.max(r.shape[0],r.shape[1])*Number.EPSILON,a=0;for(let u=0;u<e.size;u++)Number(e.get(u))>o&&a++;return a}function na(r,t){if(r.ndim!==2)throw new Error(`matrix_power: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`matrix_power: matrix must be square, got ${e}x${n}`);let o=e;if(!Number.isInteger(t))throw new Error("matrix_power: exponent must be an integer");if(t===0){let c=D.zeros([o,o],"float64");for(let l=0;l<o;l++)c.set([l,l],1);return c}let a=r,u=t;t<0&&(a=Ut(r),u=-t);let s=D.zeros([o,o],"float64");for(let c=0;c<o;c++)s.set([c,c],1);let i=D.zeros([o,o],"float64");for(let c=0;c<o;c++)for(let l=0;l<o;l++)i.set([c,l],Number(a.get(c,l)));for(;u>0;)u&1&&(s=Ar(s,i)),i=Ar(i,i),u>>=1;return s}function oa(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}=Tr(r),s=Math.min(e,n),c=Number(a.get(0))*t,l=D.zeros([n,e],"float64");for(let m=0;m<n;m++)for(let y=0;y<e;y++){let d=0;for(let f=0;f<s;f++){let p=Number(a.get(f));p>c&&(d+=Number(u.get(f,m))*Number(o.get(y,f))/p)}l.set([m,y],d)}return l}function Oe(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}=Te(r),m=D.zeros([n],"float64"),y=D.zeros([n,n],"float64");for(let d=0;d<n;d++){m.set([d],c[d]);for(let f=0;f<n;f++)y.set([f,d],l[f][d])}return{w:m,v:y}}console.warn("numpy-ts: eig() called on non-symmetric matrix. Complex eigenvalues are not supported; results may be inaccurate. For symmetric matrices, use eigh() instead.");let{values:a,vectors:u}=sc(r),s=D.zeros([n],"float64"),i=D.zeros([n,n],"float64");for(let c=0;c<n;c++){s.set([c],a[c]);for(let l=0;l<n;l++)i.set([l,c],u[l][c])}return{w:s,v:i}}function sc(r){let t=r.shape[0],e=1e3,n=1e-10,o=D.zeros([t,t],"float64");for(let i=0;i<t;i++)for(let c=0;c<t;c++)o.set([i,c],Number(r.get(i,c)));let a=D.zeros([t,t],"float64");for(let i=0;i<t;i++)a.set([i,i],1);for(let i=0;i<e;i++){let c=0;for(let d=0;d<t;d++)for(let f=0;f<t;f++)d!==f&&(c+=Number(o.get(d,f))**2);if(Math.sqrt(c)<n*t)break;let l=ve(o,"reduced"),m=l.q,y=l.r;o=Ar(y,m),a=Ar(a,m)}let u=[];for(let i=0;i<t;i++)u.push(Number(o.get(i,i)));let s=[];for(let i=0;i<t;i++){s.push([]);for(let c=0;c<t;c++)s[i].push(Number(a.get(i,c)))}return{values:u,vectors:s}}function Ce(r,t="L"){if(r.ndim!==2)throw new Error(`eigh: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`eigh: matrix must be square, got ${e}x${n}`);let o=e,a=D.zeros([o,o],"float64");for(let m=0;m<o;m++)for(let y=0;y<o;y++)t==="L"?m>=y&&(a.set([m,y],Number(r.get(m,y))),a.set([y,m],Number(r.get(m,y)))):y>=m&&(a.set([m,y],Number(r.get(m,y))),a.set([y,m],Number(r.get(m,y))));let{values:u,vectors:s}=Te(a),i=Array.from({length:o},(m,y)=>y);i.sort((m,y)=>u[m]-u[y]);let c=D.zeros([o],"float64"),l=D.zeros([o,o],"float64");for(let m=0;m<o;m++){c.set([m],u[i[m]]);for(let y=0;y<o;y++)l.set([y,m],s[y][i[m]])}return{w:c,v:l}}function aa(r){let{w:t}=Oe(r);return t}function sa(r,t="L"){let{w:e}=Ce(r,t);return e}var ia=W(()=>{"use strict";X();J();xr();_e()});function ua(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=Math.sqrt(i*i+c*c),m=Math.sqrt((l+i)/2),y=(c>=0?1:-1)*Math.sqrt((l-i)/2);u[s*2]=m,u[s*2+1]=y}return a}return H(r,Math.sqrt,!1)}function ca(r,t){if(typeof t=="number")return cc(r,t);let e=M(r.dtype),n=M(t.dtype);return e||n?uc(r,t):K(r,t,Math.pow,"power")}function uc(r,t){let e=M(r.dtype),n=M(t.dtype),o=r.dtype==="complex128"||t.dtype==="complex128"||t.dtype==="float64"?"complex128":"complex64",a=Array.from(r.shape),u=r.size,s=D.zeros(a,o),i=s.data;for(let c=0;c<u;c++){let l,m;if(e){let S=r.data;l=S[c*2],m=S[c*2+1]}else l=Number(r.iget(c)),m=0;let y,d;if(n){let S=t.data;y=S[c*2],d=S[c*2+1]}else y=Number(t.iget(c)),d=0;let f=Math.sqrt(l*l+m*m),p=Math.atan2(m,l),g=Math.log(f),h=y*g-d*p,b=y*p+d*g,A=Math.exp(h);i[c*2]=A*Math.cos(b),i[c*2+1]=A*Math.sin(b)}return s}function cc(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size;if(M(e)){let m=D.zeros(n,e),y=o,d=m.data;for(let f=0;f<a;f++){let p=y[f*2],g=y[f*2+1],h=Math.sqrt(p*p+g*g),b=Math.atan2(g,p),A=Math.pow(h,t),S=b*t;d[f*2]=A*Math.cos(S),d[f*2+1]=A*Math.sin(S)}return m}let i=e!=="float32"&&e!=="float64"&&(t<0||!Number.isInteger(t))?"float64":e,c=D.zeros(n,i),l=c.data;if(B(e))if(B(i)&&Number.isInteger(t)&&t>=0){let m=o,y=l;for(let d=0;d<a;d++)y[d]=m[d]**BigInt(t)}else for(let m=0;m<a;m++)l[m]=Math.pow(Number(o[m]),t);else for(let m=0;m<a;m++)l[m]=Math.pow(Number(o[m]),t);return c}function la(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=Math.exp(i);u[s*2]=l*Math.cos(c),u[s*2+1]=l*Math.sin(c)}return a}return H(r,Math.exp,!1)}function fa(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=Math.LN2,u=D.zeros(e,t),s=u.data;for(let i=0;i<n;i++){let c=o[i*2],l=o[i*2+1],m=Math.exp(c*a),y=l*a;s[i*2]=m*Math.cos(y),s[i*2+1]=m*Math.sin(y)}return u}return H(r,e=>Math.pow(2,e),!1)}function ma(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=Math.exp(i);u[s*2]=l*Math.cos(c)-1,u[s*2+1]=l*Math.sin(c)}return a}return H(r,Math.expm1,!1)}function pa(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=Math.sqrt(i*i+c*c),m=Math.atan2(c,i);u[s*2]=Math.log(l),u[s*2+1]=m}return a}return H(r,Math.log,!1)}function ya(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=1/Math.LN2,u=D.zeros(e,t),s=u.data;for(let i=0;i<n;i++){let c=o[i*2],l=o[i*2+1],m=Math.sqrt(c*c+l*l),y=Math.atan2(l,c);s[i*2]=Math.log(m)*a,s[i*2+1]=y*a}return u}return H(r,Math.log2,!1)}function da(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=1/Math.LN10,u=D.zeros(e,t),s=u.data;for(let i=0;i<n;i++){let c=o[i*2],l=o[i*2+1],m=Math.sqrt(c*c+l*l),y=Math.atan2(l,c);s[i*2]=Math.log(m)*a,s[i*2+1]=y*a}return u}return H(r,Math.log10,!1)}function ga(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=1+i,m=Math.sqrt(l*l+c*c),y=Math.atan2(c,l);u[s*2]=Math.log(m),u[s*2+1]=y}return a}return H(r,Math.log1p,!1)}function Aa(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"?fc(r,t):lc(r,t)}function lc(r,t){let e=Br(r.shape,t.shape),n=e.reduce((c,l)=>c*l,1),o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",s=D.zeros(e,u),i=s.data;for(let c=0;c<n;c++){let l=(B(o),Number(r.iget(c))),m=(B(a),Number(t.iget(c))),y=Math.max(l,m),d=Math.min(l,m);i[c]=y+Math.log1p(Math.exp(d-y))}return s}function fc(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",u=D.zeros(n,a),s=u.data;for(let i=0;i<o;i++){let c=(B(e),Number(r.data[i])),l=Math.max(c,t),m=Math.min(c,t);s[i]=l+Math.log1p(Math.exp(m-l))}return u}function ba(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"?pc(r,t):mc(r,t)}function mc(r,t){let e=Br(r.shape,t.shape),n=e.reduce((l,m)=>l*m,1),o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",s=D.zeros(e,u),i=s.data,c=Math.LOG2E;for(let l=0;l<n;l++){let m=(B(o),Number(r.iget(l))),y=(B(a),Number(t.iget(l))),d=Math.max(m,y),f=Math.min(m,y);i[l]=d+Math.log1p(Math.pow(2,f-d))*c}return s}function pc(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",u=D.zeros(n,a),s=u.data,i=Math.LOG2E;for(let c=0;c<o;c++){let l=(B(e),Number(r.data[c])),m=Math.max(l,t),y=Math.min(l,t);s[c]=m+Math.log1p(Math.pow(2,y-m))*i}return u}var ha=W(()=>{"use strict";X();Ir();J()});function Sa(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1];u[s*2]=Math.sin(i)*Math.cosh(c),u[s*2+1]=Math.cos(i)*Math.sinh(c)}return a}return H(r,Math.sin,!1)}function xa(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1];u[s*2]=Math.cos(i)*Math.cosh(c),u[s*2+1]=-Math.sin(i)*Math.sinh(c)}return a}return H(r,Math.cos,!1)}function Da(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=Math.cos(2*i)+Math.cosh(2*c);u[s*2]=Math.sin(2*i)/l,u[s*2+1]=Math.sinh(2*c)/l}return a}return H(r,Math.tan,!1)}function Na(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=-c,m=i,y=i*i-c*c,d=2*i*c,f=1-y,p=-d,g=Math.sqrt(f*f+p*p),h=Math.sqrt((g+f)/2),b=(p>=0?1:-1)*Math.sqrt((g-f)/2),A=l+h,S=m+b,x=Math.sqrt(A*A+S*S),w=Math.log(x),I=Math.atan2(S,A),z=-w;Math.abs(c)<1e-15&&i>1&&(z=-z),u[s*2]=I,u[s*2+1]=z}return a}return H(r,Math.asin,!1)}function wa(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=i*i-c*c,m=2*i*c,y=1-l,d=-m,f=Math.sqrt(y*y+d*d),p=Math.sqrt((f+y)/2),h=-((d>=0?1:-1)*Math.sqrt((f-y)/2)),b=p,A=i+h,S=c+b,x=Math.sqrt(A*A+S*S),w=Math.log(x),I=Math.atan2(S,A),z=-w;Math.abs(c)<1e-15&&i>1&&(z=-z),u[s*2]=I,u[s*2+1]=z}return a}return H(r,Math.acos,!1)}function Ia(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],l=-o[s*2+1],m=i,y=1-l,d=-m,f=1+l,p=m,g=f*f+p*p,h=(y*f+d*p)/g,b=(d*f-y*p)/g,A=Math.sqrt(h*h+b*b),S=Math.log(A),x=Math.atan2(b,h);u[s*2]=-x/2,u[s*2+1]=S/2}return a}return H(r,Math.atan,!1)}function za(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"?gc(r,t):dc(r,t)}function dc(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",s=D.zeros(e,u),i=s.data;for(let c=0;c<n;c++){let l=(B(o),Number(r.data[c])),m=(B(a),Number(t.data[c]));i[c]=Math.atan2(l,m)}return s}function gc(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=e==="float32"?"float32":"float64",s=D.zeros(n,u),i=s.data;if(B(e))for(let c=0;c<a;c++)i[c]=Math.atan2(Number(o[c]),t);else for(let c=0;c<a;c++)i[c]=Math.atan2(Number(o[c]),t);return s}function _a(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"?bc(r,t):Ac(r,t)}function Ac(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",s=D.zeros(e,u),i=s.data;for(let c=0;c<n;c++){let l=(B(o),Number(r.data[c])),m=(B(a),Number(t.data[c]));i[c]=Math.hypot(l,m)}return s}function bc(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=e==="float32"?"float32":"float64",s=D.zeros(n,u),i=s.data;if(B(e))for(let c=0;c<a;c++)i[c]=Math.hypot(Number(o[c]),t);else for(let c=0;c<a;c++)i[c]=Math.hypot(Number(o[c]),t);return s}function Fa(r){q(r.dtype,"degrees","degrees is only defined for real numbers.");let t=180/Math.PI;return H(r,e=>e*t,!1)}function Ma(r){q(r.dtype,"radians","radians is only defined for real numbers.");let t=Math.PI/180;return H(r,e=>e*t,!1)}var Ba=W(()=>{"use strict";X();Ir();J()});function va(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1];u[s*2]=Math.sinh(i)*Math.cos(c),u[s*2+1]=Math.cosh(i)*Math.sin(c)}return a}return H(r,Math.sinh,!1)}function Ta(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1];u[s*2]=Math.cosh(i)*Math.cos(c),u[s*2+1]=Math.sinh(i)*Math.sin(c)}return a}return H(r,Math.cosh,!1)}function Ea(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=Math.cosh(2*i)+Math.cos(2*c);u[s*2]=Math.sinh(2*i)/l,u[s*2+1]=Math.sin(2*c)/l}return a}return H(r,Math.tanh,!1)}function Oa(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=i*i-c*c,m=2*i*c,y=l+1,d=m,f=Math.sqrt(y*y+d*d),p=Math.sqrt((f+y)/2),g=(d>=0?1:-1)*Math.sqrt((f-y)/2),h=i+p,b=c+g,A=Math.sqrt(h*h+b*b);u[s*2]=Math.log(A),u[s*2+1]=Math.atan2(b,h)}return a}return H(r,Math.asinh,!1)}function Ca(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=i*i-c*c,m=2*i*c,y=l-1,d=m,f=Math.sqrt(y*y+d*d),p=Math.sqrt((f+y)/2),g=(d>=0?1:-1)*Math.sqrt((f-y)/2),h=i+p,b=c+g,A=Math.sqrt(h*h+b*b),S=Math.log(A),x=Math.atan2(b,h);Math.abs(c)<1e-15&&i<1&&(x=-x),u[s*2]=S,u[s*2+1]=x}return a}return H(r,Math.acosh,!1)}function Ua(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=1+i,m=c,y=1-i,d=-c,f=y*y+d*d,p=(l*y+m*d)/f,g=(m*y-l*d)/f,h=Math.sqrt(p*p+g*g),b=Math.log(h),A=Math.atan2(g,p);u[s*2]=b/2,u[s*2+1]=A/2}return a}return H(r,Math.atanh,!1)}var $a=W(()=>{"use strict";X();Ir();J()});function $t(r,t){let e=r.shape,n=e.length,o=t.length;if(o<n)throw new Error("input operand has more dimensions than allowed by the axis remapping");let a=gr([Array.from(e),t]);if(a===null)throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${t.join(",")})`);for(let u=0;u<o;u++)if(a[u]!==t[u])throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${t.join(",")})`);return pr(r,t)}function Ra(r){if(r.length===0)return[];if(r.length===1)return[r[0]];let t=r.map(n=>Array.from(n.shape)),e=gr(t);if(e===null)throw new Error(`operands could not be broadcast together with shapes ${t.map(n=>`(${n.join(",")})`).join(" ")}`);return r.map(n=>pr(n,e))}function ka(r,t,e){let n=r.shape,o=n.length,a=r.dtype;if(e===void 0){let f=r.size;for(let b of t){let A=b<0?f+b:b;if(A<0||A>=f)throw new Error(`index ${b} is out of bounds for axis 0 with size ${f}`)}let p=t.length,g=j(a);if(!g)throw new Error(`Cannot take from array with dtype ${a}`);let h=new g(p);for(let b=0;b<p;b++){let A=t[b];A<0&&(A=f+A);let S=r.iget(A);B(a),h[b]=S}return D.fromData(h,[p],a)}let u=e<0?o+e:e;if(u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=n[u];for(let f of t){let p=f<0?s+f:f;if(p<0||p>=s)throw new Error(`index ${f} is out of bounds for axis ${u} with size ${s}`)}let i=Array.from(n);i[u]=t.length;let c=i.reduce((f,p)=>f*p,1),l=j(a);if(!l)throw new Error(`Cannot take from array with dtype ${a}`);let m=new l(c),y=ur(i),d=new Array(o).fill(0);for(let f=0;f<c;f++){let p=[...d],g=d[u],h=t[g];h<0&&(h=s+h),p[u]=h;let b=r.get(...p),A=0;for(let S=0;S<o;S++)A+=d[S]*y[S];B(a),m[A]=b;for(let S=o-1;S>=0&&(d[S]++,!(d[S]<i[S]));S--)d[S]=0}return D.fromData(m,i,a)}function qa(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 Va(r,t){if(t.length===0)throw new Error("choices cannot be empty");let e=r.shape,n=t.length,o=t[0].dtype,a=t.map(y=>Array.from(y.shape));a.unshift(Array.from(e));let u=gr(a);if(u===null)throw new Error("operands could not be broadcast together");let s=pr(r,u),i=t.map(y=>pr(y,u)),c=u.reduce((y,d)=>y*d,1),l=j(o);if(!l)throw new Error(`Cannot choose with dtype ${o}`);let m=new l(c);for(let y=0;y<c;y++){let d=Number(s.iget(y));if(d<0||d>=n)throw new Error(`index ${d} is out of bounds for axis 0 with size ${n}`);let f=i[d].iget(y);B(o),m[y]=f}return D.fromData(m,u,o)}function Pa(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 ja(r,t,e){let n=r.shape,o=n.length,a=r.dtype,u=e<0?o+e:e;if(u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=t.shape;if(s.length!==o)throw new Error(`indices and arr must have the same number of dimensions, got ${s.length} vs ${o}`);for(let p=0;p<o;p++)if(p!==u&&s[p]!==n[p]&&s[p]!==1&&n[p]!==1)throw new Error(`index ${s[p]} is out of bounds for size ${n[p]} in dimension ${p}`);let i=Array.from(s),c=i.reduce((p,g)=>p*g,1),l=j(a);if(!l)throw new Error(`Cannot take_along_axis with dtype ${a}`);let m=new l(c),y=ur(n),d=ur(s),f=n[u];for(let p=0;p<c;p++){let g=new Array(o),h=p;for(let N=o-1;N>=0;N--)g[N]=h%i[N],h=Math.floor(h/i[N]);let b=0;for(let N=0;N<o;N++){let I=s[N]===1?0:g[N];b+=I*d[N]}let A=Number(t.iget(b));if(A<0&&(A=f+A),A<0||A>=f)throw new Error(`index ${A} is out of bounds for axis ${u} with size ${f}`);let S=[...g];S[u]=A;let x=0;for(let N=0;N<o;N++){let I=n[N]===1?0:S[N];x+=I*y[N]}let w=r.iget(x);B(a),m[p]=w}return D.fromData(m,i,a)}function La(r,t,e,n){let o=r.shape,a=o.length,u=r.dtype,s=n<0?a+n:n;if(s<0||s>=a)throw new Error(`axis ${n} is out of bounds for array of dimension ${a}`);let i=t.shape,c=e.shape;if(i.length!==a||c.length!==a)throw new Error("indices, arr, and values must have same ndim");let l=o[s],m=ur(o),y=ur(i),d=ur(c),f=i.reduce((p,g)=>p*g,1);for(let p=0;p<f;p++){let g=new Array(a),h=p;for(let I=a-1;I>=0;I--)g[I]=h%i[I],h=Math.floor(h/i[I]);let b=0;for(let I=0;I<a;I++)b+=g[I]*y[I];let A=Number(t.iget(b));if(A<0&&(A=l+A),A<0||A>=l)throw new Error(`index ${A} is out of bounds for axis ${s} with size ${l}`);let S=0;for(let I=0;I<a;I++){let z=c[I]===1?0:g[I];S+=z*d[I]}let x=e.iget(S),w=[...g];w[s]=A;let N=0;for(let I=0;I<a;I++)N+=w[I]*m[I];B(u)?typeof x!="bigint"&&(x=BigInt(Math.round(Number(x)))):typeof x=="bigint"&&(x=Number(x)),r.iset(N,x)}}function Wa(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 Ue(r,t,e){let n=t.shape,o=n.length,a=t.dtype,u=t.data,s=B(a);if(e===void 0){let b=0,A=Math.min(r.size,t.size);for(let N=0;N<A;N++)r.iget(N)&&b++;let S=j(a);if(!S)throw new Error(`Cannot compress with dtype ${a}`);let x=new S(b),w=0;for(let N=0;N<A;N++)r.iget(N)&&(x[w]=u[N],w++);return D.fromData(x,[b],a)}let i=e<0?o+e:e;if(i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let c=n[i],l=Math.min(r.size,c),m=[];for(let b=0;b<l;b++)r.iget(b)&&m.push(b);let y=m.length,d=[...n];d[i]=y;let f=d.reduce((b,A)=>b*A,1),p=j(a);if(!p)throw new Error(`Cannot compress with dtype ${a}`);let g=new p(f),h=ur(n);if(i===0){let b=h[0],A=n.slice(1).reduce((x,w)=>x*w,1),S=0;for(let x=0;x<y;x++){let N=m[x]*b;if(s){let I=u,z=g;for(let F=0;F<A;F++)z[S++]=I[N+F]}else{let I=u,z=g;for(let F=0;F<A;F++)z[S++]=I[N+F]}}}else{let b=n.slice(0,i).reduce((x,w)=>x*w,1),A=n.slice(i+1).reduce((x,w)=>x*w,1),S=0;for(let x=0;x<b;x++)for(let w=0;w<y;w++){let N=m[w],I=0,z=x;for(let F=i-1;F>=0;F--){let _=z%n[F];z=Math.floor(z/n[F]),I+=_*h[F]}if(I+=N*h[i],s){let F=u,_=g;for(let T=0;T<A;T++)_[S++]=F[I+T]}else{let F=u,_=g;for(let T=0;T<A;T++)_[S++]=F[I+T]}}}return D.fromData(g,d,a)}function Ga(r,t,e=0){if(r.length!==t.length)throw new Error("condlist and choicelist must have same length");if(r.length===0)throw new Error("condlist and choicelist cannot be empty");let n=[...r.map(y=>Array.from(y.shape)),...t.map(y=>Array.from(y.shape))],o=gr(n);if(o===null)throw new Error("condlist and choicelist arrays could not be broadcast together");let a=t[0].dtype,u=o.reduce((y,d)=>y*d,1),s=j(a);if(!s)throw new Error(`Cannot select with dtype ${a}`);let i=e;B(a)?i=typeof e=="bigint"?e:BigInt(e):i=typeof e=="bigint"?Number(e):e;let c=new s(u);for(let y=0;y<u;y++)B(a),c[y]=i;let l=r.map(y=>pr(y,o)),m=t.map(y=>pr(y,o));for(let y=0;y<u;y++)for(let d=0;d<r.length;d++)if(l[d].iget(y)){let f=m[d].iget(y);B(a),c[y]=f;break}return D.fromData(c,o,a)}function Za(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 $e(r,t=2){if(t<1)throw new Error("ndim must be at least 1");let e=new Int32Array(r);for(let o=0;o<r;o++)e[o]=o;let n=[];for(let o=0;o<t;o++)n.push(D.fromData(new Int32Array(e),[r],"int32"));return n}function Ya(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 $e(n,e)}function Re(r,t=0,e){let n=e??r,o=[],a=[];for(let u=0;u<r;u++)for(let s=0;s<=Math.min(u+t,n-1);s++)s>=0&&(o.push(u),a.push(s));return[D.fromData(new Int32Array(o),[o.length],"int32"),D.fromData(new Int32Array(a),[a.length],"int32")]}function Ha(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return Re(e[0],t,e[1])}function ke(r,t=0,e){let n=e??r,o=[],a=[];for(let u=0;u<r;u++)for(let s=Math.max(u+t,0);s<n;s++)o.push(u),a.push(s);return[D.fromData(new Int32Array(o),[o.length],"int32"),D.fromData(new Int32Array(a),[a.length],"int32")]}function Ja(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return ke(e[0],t,e[1])}function Xa(r,t,e=0){let n=t(r,e),o=n.shape;if(o.length!==2||o[0]!==r||o[1]!==r)throw new Error("mask_func must return n x n array");let a=[],u=[];for(let s=0;s<r;s++)for(let i=0;i<r;i++)n.get(s,i)&&(a.push(s),u.push(i));return[D.fromData(new Int32Array(a),[a.length],"int32"),D.fromData(new Int32Array(u),[u.length],"int32")]}function Qa(r,t="int32"){let e=r.length,n=[e,...r],o=n.reduce((i,c)=>i*c,1),a=j(t);if(!a)throw new Error(`Cannot create indices with dtype ${t}`);let u=new a(o),s=r.reduce((i,c)=>i*c,1);for(let i=0;i<e;i++){let c=i*s;for(let l=0;l<s;l++){let m=new Array(e),y=l;for(let f=e-1;f>=0;f--)m[f]=y%r[f],y=Math.floor(y/r[f]);let d=m[i];t==="int64"?u[c+l]=BigInt(d):u[c+l]=d}}return D.fromData(u,n,t)}function Ka(...r){let t=r.length,e=[];for(let n=0;n<t;n++){let o=r[n],a=o.size,u=o.dtype,s=new Array(t).fill(1);s[n]=a;let i=j(u);if(!i)throw new Error(`Cannot create ix_ with dtype ${u}`);let c=new i(a);for(let l=0;l<a;l++){let m=o.iget(l);B(u),c[l]=m}e.push(D.fromData(c,s,u))}return e}function rs(r,t,e="raise"){if(r.length!==t.length)throw new Error("multi_index length must equal dims length");if(r.length===0)throw new Error("multi_index cannot be empty");let n=r[0].size,o=t.length,a=new Int32Array(n),u=new Array(o),s=1;for(let i=o-1;i>=0;i--)u[i]=s,s*=t[i];for(let i=0;i<n;i++){let c=0;for(let l=0;l<o;l++){let m=Number(r[l].iget(i)),y=t[l];if(e==="wrap")m=(m%y+y)%y;else if(e==="clip")m=Math.max(0,Math.min(m,y-1));else if(m<0||m>=y)throw new Error(`index ${m} is out of bounds for axis ${l} with size ${y}`);c+=m*u[l]}a[i]=c}return D.fromData(a,[n],"int32")}function ts(r,t,e="C"){let n=t.length,o,a;if(typeof r=="number")o=[r],a=[];else{o=[];for(let l=0;l<r.size;l++)o.push(Number(r.iget(l)));a=Array.from(r.shape)}let u=o.length,s=t.reduce((l,m)=>l*m,1),i=new Array(n);if(e==="C"){let l=1;for(let m=n-1;m>=0;m--)i[m]=l,l*=t[m]}else{let l=1;for(let m=0;m<n;m++)i[m]=l,l*=t[m]}let c=[];for(let l=0;l<n;l++){let m=new Int32Array(u);c.push(D.fromData(m,a.length?a:[1],"int32"))}for(let l=0;l<u;l++){let m=o[l];if(m<0||m>=s)throw new Error(`index ${m} is out of bounds for array with size ${s}`);if(e==="C")for(let y=0;y<n;y++){let d=Math.floor(m/i[y]);m=m%i[y],c[y].data[l]=d%t[y]}else for(let y=n-1;y>=0;y--){let d=Math.floor(m/i[y]);m=m%i[y],c[y].data[l]=d%t[y]}}return typeof r=="number"?c.map(l=>{let m=l.iget(0);return D.fromData(new Int32Array([Number(m)]),[],"int32")}):c}function es(r,t,e=!1){let n=r.shape,o=n.length;if(o<2)throw new Error("array must be at least 2-d");let a;if(o===2)a=n[1]+1;else{a=1;for(let c=1;c<o;c++){let l=1;for(let m=c;m<o;m++)l*=n[m];a+=l}}let u=r.data,s=r.size,i=Math.min(...n);if(e&&o===2&&(i=Math.max(n[0],n[1])),typeof t=="number")for(let c=0;c<i&&c*a<s;c++){let l=c*a;if(l<s)u[l]=t;else break}else{let c=t.data,l=t.size;for(let m=0;m<i&&m*a<s;m++){let y=m*a;if(y<s)u[y]=c[m%l];else break}}}var ns=W(()=>{"use strict";X();J();_t();xr()});function br(r,t){if(!On(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 ct(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function ss(r,t){return br(r.dtype,"bitwise_and"),typeof t=="number"?Nc(r,t):(br(t.dtype,"bitwise_and"),ct(r,t)?Dc(r,t):K(r,t,(e,n)=>e&n,"bitwise_and"))}function Dc(r,t){let e=Z(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(B(e)){let i=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),y=typeof u[l]=="bigint"?u[l]:BigInt(Math.round(Number(u[l])));i[l]=m&y}else{let l=a,m=u;for(let y=0;y<o;y++)i[y]=l[y]&m[y]}}else for(let i=0;i<o;i++)s[i]=a[i]&u[i];return n}function Nc(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=D.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]&l}else for(let i=0;i<a;i++)s[i]=o[i]&t;return u}function is(r,t){return br(r.dtype,"bitwise_or"),typeof t=="number"?Ic(r,t):(br(t.dtype,"bitwise_or"),ct(r,t)?wc(r,t):K(r,t,(e,n)=>e|n,"bitwise_or"))}function wc(r,t){let e=Z(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(B(e)){let i=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),y=typeof u[l]=="bigint"?u[l]:BigInt(Math.round(Number(u[l])));i[l]=m|y}else{let l=a,m=u;for(let y=0;y<o;y++)i[y]=l[y]|m[y]}}else for(let i=0;i<o;i++)s[i]=a[i]|u[i];return n}function Ic(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=D.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]|l}else for(let i=0;i<a;i++)s[i]=o[i]|t;return u}function us(r,t){return br(r.dtype,"bitwise_xor"),typeof t=="number"?_c(r,t):(br(t.dtype,"bitwise_xor"),ct(r,t)?zc(r,t):K(r,t,(e,n)=>e^n,"bitwise_xor"))}function zc(r,t){let e=Z(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(B(e)){let i=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),y=typeof u[l]=="bigint"?u[l]:BigInt(Math.round(Number(u[l])));i[l]=m^y}else{let l=a,m=u;for(let y=0;y<o;y++)i[y]=l[y]^m[y]}}else for(let i=0;i<o;i++)s[i]=a[i]^u[i];return n}function _c(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=D.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]^l}else for(let i=0;i<a;i++)s[i]=o[i]^t;return u}function qe(r){br(r.dtype,"bitwise_not");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=D.zeros(e,t),u=a.data;if(B(t)){let s=n,i=u;for(let c=0;c<o;c++)i[c]=~s[c]}else for(let s=0;s<o;s++)u[s]=~n[s];return a}function cs(r){return qe(r)}function ls(r,t){if(br(r.dtype,"left_shift"),typeof t=="number")return os(r,t);if(br(t.dtype,"left_shift"),t.size===1||t.ndim===1&&t.shape[0]===1){let e=B(t.dtype)?Number(t.data[0]):t.data[0];return os(r,e)}return ct(r,t)?Fc(r,t):K(r,t,(e,n)=>e<<n,"left_shift")}function Fc(r,t){let e=Z(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(B(e)){let i=s;for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?a[c]:BigInt(Math.round(Number(a[c]))),m=typeof u[c]=="bigint"?u[c]:BigInt(Math.round(Number(u[c])));i[c]=l<<m}}else for(let i=0;i<o;i++)s[i]=a[i]<<u[i];return n}function os(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=D.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]<<l}else for(let i=0;i<a;i++)s[i]=o[i]<<t;return u}function fs(r,t){if(br(r.dtype,"right_shift"),typeof t=="number")return as(r,t);if(br(t.dtype,"right_shift"),t.size===1||t.ndim===1&&t.shape[0]===1){let e=B(t.dtype)?Number(t.data[0]):t.data[0];return as(r,e)}return ct(r,t)?Mc(r,t):K(r,t,(e,n)=>e>>n,"right_shift")}function Mc(r,t){let e=Z(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(B(e)){let i=s;for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?a[c]:BigInt(Math.round(Number(a[c]))),m=typeof u[c]=="bigint"?u[c]:BigInt(Math.round(Number(u[c])));i[c]=l>>m}}else for(let i=0;i<o;i++)s[i]=a[i]>>u[i];return n}function as(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=D.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]>>l}else for(let i=0;i<a;i++)s[i]=o[i]>>t;return u}function ms(r,t=-1,e="big"){let n=Array.from(r.shape),o=n.length;if(t<0&&(t=o+t),t<0||t>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let a=n[t],u=Math.ceil(a/8),s=[...n];s[t]=u;let i=D.zeros(s,"uint8"),c=i.data;if(o===1){for(let g=0;g<u;g++){let h=0;for(let b=0;b<8;b++){let A=g*8+b;if(A<a){let S=Number(r.data[A])!==0?1:0;e==="big"?h|=S<<7-b:h|=S<<b}}c[g]=h}return i}let l=n.slice(0,t),m=n.slice(t+1),y=l.reduce((g,h)=>g*h,1),d=m.reduce((g,h)=>g*h,1),f=Rt(n),p=Rt(s);for(let g=0;g<y;g++)for(let h=0;h<d;h++)for(let b=0;b<u;b++){let A=0;for(let N=0;N<8;N++){let I=b*8+N;if(I<a){let z=0,F=g;for(let E=0;E<t;E++){let C=E<t-1?l.slice(E+1).reduce((V,R)=>V*R,1):1,k=Math.floor(F/C);F%=C,z+=k*f[E]}z+=I*f[t];let _=h;for(let E=t+1;E<o;E++){let C=E<o-1?m.slice(E-t).reduce((V,R)=>V*R,1):1,k=Math.floor(_/C);_%=C,z+=k*f[E]}let T=Number(r.data[z])!==0?1:0;e==="big"?A|=T<<7-N:A|=T<<N}}let S=0,x=g;for(let N=0;N<t;N++){let I=N<t-1?l.slice(N+1).reduce((F,_)=>F*_,1):1,z=Math.floor(x/I);x%=I,S+=z*p[N]}S+=b*p[t];let w=h;for(let N=t+1;N<o;N++){let I=N<o-1?m.slice(N-t).reduce((F,_)=>F*_,1):1,z=Math.floor(w/I);w%=I,S+=z*p[N]}c[S]=A}return i}function ps(r,t=-1,e=-1,n="big"){if(r.dtype!=="uint8")throw new TypeError("Expected an input array of unsigned byte data type");let o=Array.from(r.shape),a=o.length;if(t<0&&(t=a+t),t<0||t>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let u=o[t],s=u*8;e>=0&&(s=e);let i=[...o];i[t]=s;let c=D.zeros(i,"uint8"),l=c.data;if(a===1){for(let h=0;h<u;h++){let b=Number(r.data[h]);for(let A=0;A<8;A++){let S=h*8+A;if(S>=s)break;n==="big"?l[S]=b>>7-A&1:l[S]=b>>A&1}}return c}let m=o.slice(0,t),y=o.slice(t+1),d=m.reduce((h,b)=>h*b,1),f=y.reduce((h,b)=>h*b,1),p=Rt(o),g=Rt(i);for(let h=0;h<d;h++)for(let b=0;b<f;b++)for(let A=0;A<u;A++){let S=0,x=h;for(let I=0;I<t;I++){let z=I<t-1?m.slice(I+1).reduce((_,T)=>_*T,1):1,F=Math.floor(x/z);x%=z,S+=F*p[I]}S+=A*p[t];let w=b;for(let I=t+1;I<a;I++){let z=I<a-1?y.slice(I-t).reduce((_,T)=>_*T,1):1,F=Math.floor(w/z);w%=z,S+=F*p[I]}let N=Number(r.data[S]);for(let I=0;I<8;I++){let z=A*8+I;if(z>=s)break;let F=0;x=h;for(let _=0;_<t;_++){let T=_<t-1?m.slice(_+1).reduce((C,k)=>C*k,1):1,E=Math.floor(x/T);x%=T,F+=E*g[_]}F+=z*g[t],w=b;for(let _=t+1;_<a;_++){let T=_<a-1?y.slice(_-t).reduce((C,k)=>C*k,1):1,E=Math.floor(w/T);w%=T,F+=E*g[_]}n==="big"?l[F]=N>>7-I&1:l[F]=N>>I&1}}return c}function Rt(r){let t=r.length,e=new Array(t),n=1;for(let o=t-1;o>=0;o--)e[o]=n,n*=r[o];return e}var ys=W(()=>{"use strict";X();J();Ir()});function Yr(r){return r!==0&&r!==0n}function Dr(r,t){let e=r[t*2],n=r[t*2+1];return e!==0||n!==0}function ft(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function gs(r,t){return typeof t=="number"?Tc(r,t):ft(r,t)?vc(r,t):yr(r,t,(e,n)=>Yr(e)&&Yr(n))}function vc(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.size,u=B(r.dtype),s=B(t.dtype),i=M(r.dtype),c=M(t.dtype);if(i||c)for(let l=0;l<a;l++){let m=i?Dr(n,l):n[l]!==0,y=c?Dr(o,l):o[l]!==0;e[l]=m&&y?1:0}else if(u||s)for(let l=0;l<a;l++){let m=u?n[l]!==0n:n[l]!==0,y=s?o[l]!==0n:o[l]!==0;e[l]=m&&y?1:0}else for(let l=0;l<a;l++)e[l]=n[l]!==0&&o[l]!==0?1:0;return D.fromData(e,Array.from(r.shape),"bool")}function Tc(r,t){let e=new Uint8Array(r.size),n=r.data,o=t!==0,a=r.size;if(M(r.dtype)){let u=n;for(let s=0;s<a;s++)e[s]=Dr(u,s)&&o?1:0}else if(B(r.dtype)){let u=n;for(let s=0;s<a;s++)e[s]=u[s]!==0n&&o?1:0}else for(let u=0;u<a;u++)e[u]=n[u]!==0&&o?1:0;return D.fromData(e,Array.from(r.shape),"bool")}function As(r,t){return typeof t=="number"?Oc(r,t):ft(r,t)?Ec(r,t):yr(r,t,(e,n)=>Yr(e)||Yr(n))}function Ec(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.size,u=B(r.dtype),s=B(t.dtype),i=M(r.dtype),c=M(t.dtype);if(i||c)for(let l=0;l<a;l++){let m=i?Dr(n,l):n[l]!==0,y=c?Dr(o,l):o[l]!==0;e[l]=m||y?1:0}else if(u||s)for(let l=0;l<a;l++){let m=u?n[l]!==0n:n[l]!==0,y=s?o[l]!==0n:o[l]!==0;e[l]=m||y?1:0}else for(let l=0;l<a;l++)e[l]=n[l]!==0||o[l]!==0?1:0;return D.fromData(e,Array.from(r.shape),"bool")}function Oc(r,t){let e=new Uint8Array(r.size),n=r.data,o=t!==0,a=r.size;if(M(r.dtype)){let u=n;for(let s=0;s<a;s++)e[s]=Dr(u,s)||o?1:0}else if(B(r.dtype)){let u=n;for(let s=0;s<a;s++)e[s]=u[s]!==0n||o?1:0}else for(let u=0;u<a;u++)e[u]=n[u]!==0||o?1:0;return D.fromData(e,Array.from(r.shape),"bool")}function bs(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(M(r.dtype)){let o=e;for(let a=0;a<n;a++)t[a]=Dr(o,a)?0:1}else if(B(r.dtype)){let o=e;for(let a=0;a<n;a++)t[a]=o[a]===0n?1:0}else for(let o=0;o<n;o++)t[o]=e[o]===0?1:0;return D.fromData(t,Array.from(r.shape),"bool")}function hs(r,t){return typeof t=="number"?Uc(r,t):ft(r,t)?Cc(r,t):yr(r,t,(e,n)=>Yr(e)!==Yr(n))}function Cc(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.size,u=B(r.dtype),s=B(t.dtype),i=M(r.dtype),c=M(t.dtype);if(i||c)for(let l=0;l<a;l++){let m=i?Dr(n,l):n[l]!==0,y=c?Dr(o,l):o[l]!==0;e[l]=m!==y?1:0}else if(u||s)for(let l=0;l<a;l++){let m=u?n[l]!==0n:n[l]!==0,y=s?o[l]!==0n:o[l]!==0;e[l]=m!==y?1:0}else for(let l=0;l<a;l++){let m=n[l]!==0,y=o[l]!==0;e[l]=m!==y?1:0}return D.fromData(e,Array.from(r.shape),"bool")}function Uc(r,t){let e=new Uint8Array(r.size),n=r.data,o=t!==0,a=r.size;if(M(r.dtype)){let u=n;for(let s=0;s<a;s++){let i=Dr(u,s);e[s]=i!==o?1:0}}else if(B(r.dtype)){let u=n;for(let s=0;s<a;s++){let i=u[s]!==0n;e[s]=i!==o?1:0}}else for(let u=0;u<a;u++){let s=n[u]!==0;e[u]=s!==o?1:0}return D.fromData(e,Array.from(r.shape),"bool")}function 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 D.fromData(t,Array.from(r.shape),"bool")}function xs(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(M(r.dtype)){let o=e;for(let a=0;a<n;a++){let u=o[a*2],s=o[a*2+1],i=!Number.isFinite(u)&&!Number.isNaN(u),c=!Number.isFinite(s)&&!Number.isNaN(s);t[a]=i||c?1:0}}else if(B(r.dtype))for(let o=0;o<n;o++)t[o]=0;else for(let o=0;o<n;o++){let a=e[o];t[o]=!Number.isFinite(a)&&!Number.isNaN(a)?1:0}return D.fromData(t,Array.from(r.shape),"bool")}function Ds(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(M(r.dtype)){let o=e;for(let a=0;a<n;a++){let u=o[a*2],s=o[a*2+1];t[a]=Number.isNaN(u)||Number.isNaN(s)?1:0}}else if(B(r.dtype))for(let o=0;o<n;o++)t[o]=0;else for(let o=0;o<n;o++)t[o]=Number.isNaN(e[o])?1:0;return D.fromData(t,Array.from(r.shape),"bool")}function Ns(r){let t=new Uint8Array(r.size);return D.fromData(t,Array.from(r.shape),"bool")}function ws(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 Rc(r,t);if(ft(r,t))return $c(r,t);let e=Br(r.shape,t.shape),n=e.reduce((i,c)=>i*c,1),o=D.zeros(e,"float64"),a=o.data,u=kt(r,e),s=kt(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 $c(r,t){let e=D.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size,a=r.data,u=t.data,s=B(r.dtype),i=B(t.dtype);for(let c=0;c<o;c++){let l=s?Number(a[c]):a[c],m=i?Number(u[c]):u[c];n[c]=Math.sign(m)*Math.abs(l)}return e}function Rc(r,t){let e=D.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.data,a=r.size,u=Math.sign(t);if(B(r.dtype)){let s=o;for(let i=0;i<a;i++)n[i]=u*Math.abs(Number(s[i]))}else for(let s=0;s<a;s++)n[s]=u*Math.abs(o[s]);return e}function Is(r){q(r.dtype,"signbit","signbit is only defined for real numbers.");let t=new Uint8Array(r.size),e=r.data,n=r.size;if(B(r.dtype)){let o=e;for(let a=0;a<n;a++)t[a]=o[a]<0n?1:0}else for(let o=0;o<n;o++){let a=e[o];t[o]=a<0||Object.is(a,-0)?1:0}return D.fromData(t,Array.from(r.shape),"bool")}function zs(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 qc(r,t);if(ft(r,t))return kc(r,t);let e=Br(r.shape,t.shape),n=e.reduce((i,c)=>i*c,1),o=D.zeros(e,"float64"),a=o.data,u=kt(r,e),s=kt(t,e);for(let i=0;i<n;i++){let c=Number(u.iget(i)),l=Number(s.iget(i));a[i]=lt(c,l)}return o}function kc(r,t){let e=D.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size,a=r.data,u=t.data,s=B(r.dtype),i=B(t.dtype);for(let c=0;c<o;c++){let l=s?Number(a[c]):a[c],m=i?Number(u[c]):u[c];n[c]=lt(l,m)}return e}function qc(r,t){let e=D.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.data,a=r.size;if(B(r.dtype)){let u=o;for(let s=0;s<a;s++)n[s]=lt(Number(u[s]),t)}else for(let u=0;u<a;u++)n[u]=lt(o[u],t);return e}function lt(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 _s(r){q(r.dtype,"spacing","spacing is only defined for real numbers.");let t=D.zeros(Array.from(r.shape),"float64"),e=t.data,n=r.data,o=r.size;if(B(r.dtype)){let a=n;for(let u=0;u<o;u++)e[u]=ds(Number(a[u]))}else for(let a=0;a<o;a++)e[a]=ds(n[a]);return t}function ds(r){if(Number.isNaN(r))return NaN;if(!Number.isFinite(r))return NaN;if(Math.abs(r)===0)return Number.MIN_VALUE;let e=lt(r,1/0);return Math.abs(e-r)}function kt(r,t){let e=r.shape.length,n=t.length,o=new Array(n).fill(0);for(let a=0;a<e;a++){let u=n-e+a,s=r.shape[a],i=t[u];if(s===i)o[u]=r.strides[a];else if(s===1)o[u]=0;else throw new Error("Invalid broadcast")}return D.fromData(r.data,Array.from(t),r.dtype,o,r.offset)}function Fs(r){let t=r.dtype,e=r.size,n=new Uint8Array(e);if(M(t)){let o=r.data;for(let a=0;a<e;a++)n[a]=o[a*2+1]!==0?1:0}return D.fromData(n,Array.from(r.shape),"bool")}function Ms(r){return M(r.dtype)}function Bs(r){let t=r.dtype,e=r.size,n=new Uint8Array(e);if(M(t)){let o=r.data;for(let a=0;a<e;a++)n[a]=o[a*2+1]===0?1:0}else n.fill(1);return D.fromData(n,Array.from(r.shape),"bool")}function vs(r){return!M(r.dtype)}function Ts(r){q(r.dtype,"isneginf","This operation is not supported for complex values because it would be ambiguous.");let t=new Uint8Array(r.size),e=r.data,n=r.size;if(!B(r.dtype))for(let o=0;o<n;o++){let a=e[o];t[o]=a===-1/0?1:0}return D.fromData(t,Array.from(r.shape),"bool")}function Es(r){q(r.dtype,"isposinf","This operation is not supported for complex values because it would be ambiguous.");let t=new Uint8Array(r.size),e=r.data,n=r.size;if(!B(r.dtype))for(let o=0;o<n;o++){let a=e[o];t[o]=a===1/0?1:0}return D.fromData(t,Array.from(r.shape),"bool")}function Os(r){return r.isFContiguous}function Cs(r,t=100){let e=r.dtype;if(M(e)){let n=r.data,o=r.size,u=t*(e==="complex64"?11920929e-14:2220446049250313e-31),s=!0;for(let i=0;i<o;i++){let c=n[i*2+1];if(Math.abs(c)>u){s=!1;break}}if(s){let i=e==="complex64"?"float32":"float64",c=D.zeros(Array.from(r.shape),i),l=c.data;for(let m=0;m<o;m++)l[m]=n[m*2];return c}return r.copy()}return r.copy()}function Us(r){return typeof r=="number"||typeof r=="bigint"||typeof r=="boolean"||typeof r=="string"}function $s(r){return r==null?!1:typeof r[Symbol.iterator]=="function"}function Rs(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 ks(r,t){let e=["float64","float32","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"],n=e.indexOf(r),o=e.indexOf(t);return n<=o?r:t}var qs=W(()=>{"use strict";X();J();Ir();Ir()});function Vs(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(M(t)){let o=Kr(t),a=D.zeros(e,o),u=a.data,s=r.data;for(let i=0;i<n;i++)u[i]=s[i*2];return a}return r.copy()}function Ps(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(M(t)){let a=Kr(t),u=D.zeros(e,a),s=u.data,i=r.data;for(let c=0;c<n;c++)s[c]=i[c*2+1];return u}let o=t==="float32"?"float32":"float64";return D.zeros(e,o)}function js(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(M(t)){let o=j(t),a=n*2,u=new o(a),s=r.data;for(let i=0;i<n;i++)u[i*2]=s[i*2],u[i*2+1]=-s[i*2+1];return D.fromData(u,e,t)}return r.copy()}function Ls(r,t=!1){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=D.zeros(n,"float64"),u=a.data;if(M(e)){let s=r.data;for(let i=0;i<o;i++){let c=s[i*2],l=s[i*2+1],m=Math.atan2(l,c);t&&(m=m*180/Math.PI),u[i]=m}}else for(let s=0;s<o;s++){let i=r.iget(s),l=(i instanceof O?i.re:Number(i))>=0?0:Math.PI;t&&(l=l*180/Math.PI),u[s]=l}return a}var Ws=W(()=>{"use strict";X();J();xr()});function Nr(r,t,e){if(e){let n=r[t*2],o=r[t*2+1];return n!==0||o!==0}return!!r[t]}function mt(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 Ve(r,t=-1){let e=r.shape,n=e.length,o=r.dtype,a=r.data;if(n===0)return r.copy();let u=t;if(u<0&&(u=n+u),u<0||u>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let s=r.copy(),i=s.data,c=e[u],l=Array.from(e).filter((y,d)=>d!==u),m=l.length===0?1:l.reduce((y,d)=>y*d,1);if(M(o)){let y=a,d=i;for(let f=0;f<m;f++){let p=[];for(let g=0;g<c;g++){let h=$(f,u,g,e),b=U(h,e);p.push({re:y[b*2],im:y[b*2+1],idx:g})}p.sort((g,h)=>mt(g.re,g.im,h.re,h.im));for(let g=0;g<c;g++){let h=$(f,u,g,e),b=U(h,e);d[b*2]=p[g].re,d[b*2+1]=p[g].im}}}else if(B(o)){let y=a,d=i;for(let f=0;f<m;f++){let p=[];for(let g=0;g<c;g++){let h=$(f,u,g,e),b=U(h,e);p.push({value:y[b],idx:g})}p.sort((g,h)=>g.value<h.value?-1:g.value>h.value?1:0);for(let g=0;g<c;g++){let h=$(f,u,g,e),b=U(h,e);d[b]=p[g].value}}}else for(let y=0;y<m;y++){let d=[];for(let f=0;f<c;f++){let p=$(y,u,f,e),g=U(p,e);d.push(Number(a[g]))}d.sort((f,p)=>isNaN(f)&&isNaN(p)?0:isNaN(f)?1:isNaN(p)?-1:f-p);for(let f=0;f<c;f++){let p=$(y,u,f,e),g=U(p,e);i[g]=d[f]}}return s}function Pe(r,t=-1){let e=r.shape,n=e.length,o=r.dtype,a=r.data;if(n===0)return D.zeros([0],"int32");let u=t;if(u<0&&(u=n+u),u<0||u>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let s=D.zeros(Array.from(e),"int32"),i=s.data,c=e[u],l=Array.from(e).filter((y,d)=>d!==u),m=l.length===0?1:l.reduce((y,d)=>y*d,1);if(M(o)){let y=a;for(let d=0;d<m;d++){let f=[];for(let p=0;p<c;p++){let g=$(d,u,p,e),h=U(g,e);f.push({re:y[h*2],im:y[h*2+1],idx:p})}f.sort((p,g)=>mt(p.re,p.im,g.re,g.im));for(let p=0;p<c;p++){let g=$(d,u,p,e),h=U(g,e);i[h]=f[p].idx}}}else if(B(o)){let y=a;for(let d=0;d<m;d++){let f=[];for(let p=0;p<c;p++){let g=$(d,u,p,e),h=U(g,e);f.push({value:y[h],idx:p})}f.sort((p,g)=>p.value<g.value?-1:p.value>g.value?1:0);for(let p=0;p<c;p++){let g=$(d,u,p,e),h=U(g,e);i[h]=f[p].idx}}}else for(let y=0;y<m;y++){let d=[];for(let f=0;f<c;f++){let p=$(y,u,f,e),g=U(p,e);d.push({value:Number(a[g]),idx:f})}d.sort((f,p)=>isNaN(f.value)&&isNaN(p.value)?0:isNaN(f.value)?1:isNaN(p.value)?-1:f.value-p.value);for(let f=0;f<c;f++){let p=$(y,u,f,e),g=U(p,e);i[g]=d[f].idx}}return s}function Gs(r){if(r.length===0)return D.zeros([0],"int32");let e=r[0].size;for(let u of r){if(u.ndim!==1)throw new Error("keys must be 1D arrays");if(u.size!==e)throw new Error("all keys must have the same length")}let n=[];for(let u=0;u<e;u++)n.push(u);n.sort((u,s)=>{for(let i=r.length-1;i>=0;i--){let l=r[i].data,m=Number(l[u]),y=Number(l[s]);if(!(isNaN(m)&&isNaN(y))){if(isNaN(m))return 1;if(isNaN(y)||m<y)return-1;if(m>y)return 1}}return 0});let o=D.zeros([e],"int32"),a=o.data;for(let u=0;u<e;u++)a[u]=n[u];return o}function jc(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e],u=r[o],s=r[n],i;a<=u&&u<=s||s<=u&&u<=a?i=o:u<=a&&a<=s||s<=a&&a<=u?i=e:i=n;let c=r[i];[r[i],r[n]]=[r[n],r[i]];let l=e;for(let m=e;m<n;m++){let y=r[m],d=isNaN(y),f=isNaN(c);!d&&(f||y<=c)&&([r[l],r[m]]=[r[m],r[l]],l++)}if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function Lc(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 Wc(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e].value,u=r[o].value,s=r[n].value,i;a<=u&&u<=s||s<=u&&u<=a?i=o:u<=a&&a<=s||s<=a&&a<=u?i=e:i=n;let c=r[i].value;[r[i],r[n]]=[r[n],r[i]];let l=e;for(let m=e;m<n;m++){let y=r[m].value,d=isNaN(y),f=isNaN(c);!d&&(f||y<=c)&&([r[l],r[m]]=[r[m],r[l]],l++)}if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function Gc(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 je(r,t,e=-1){let n=r.shape,o=n.length,a=r.dtype;if(o===0)return r.copy();let u=e;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=n[u],i=t;if(i<0&&(i=s+i),i<0||i>=s)throw new Error(`kth(=${t}) out of bounds (${s})`);let c=r.copy(),l=c.data,m=Array.from(n).filter((d,f)=>f!==u),y=m.length===0?1:m.reduce((d,f)=>d*f,1);if(B(a)){let d=l;for(let f=0;f<y;f++){let p=[];for(let g=0;g<s;g++){let h=$(f,u,g,n),b=U(h,n);p.push(d[b])}Lc(p,i);for(let g=0;g<s;g++){let h=$(f,u,g,n),b=U(h,n);d[b]=p[g]}}}else for(let d=0;d<y;d++){let f=[];for(let p=0;p<s;p++){let g=$(d,u,p,n),h=U(g,n);f.push(Number(l[h]))}jc(f,i);for(let p=0;p<s;p++){let g=$(d,u,p,n),h=U(g,n);l[h]=f[p]}}return c}function Le(r,t,e=-1){let n=r.shape,o=n.length,a=r.dtype,u=r.data;if(o===0)return D.zeros([0],"int32");let s=e;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=n[s],c=t;if(c<0&&(c=i+c),c<0||c>=i)throw new Error(`kth(=${t}) out of bounds (${i})`);let l=D.zeros(Array.from(n),"int32"),m=l.data,y=Array.from(n).filter((f,p)=>p!==s),d=y.length===0?1:y.reduce((f,p)=>f*p,1);if(B(a)){let f=u;for(let p=0;p<d;p++){let g=[];for(let h=0;h<i;h++){let b=$(p,s,h,n),A=U(b,n);g.push({value:f[A],idx:h})}Gc(g,c);for(let h=0;h<i;h++){let b=$(p,s,h,n),A=U(b,n);m[A]=g[h].idx}}}else for(let f=0;f<d;f++){let p=[];for(let g=0;g<i;g++){let h=$(f,s,g,n),b=U(h,n);p.push({value:Number(u[b]),idx:g})}Wc(p,c);for(let g=0;g<i;g++){let h=$(f,s,g,n),b=U(h,n);m[b]=p[g].idx}}return l}function Zs(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)=>mt(i.re,i.im,c.re,c.im));let u=D.zeros([e],"complex128"),s=u.data;for(let i=0;i<e;i++)s[i*2]=a[i].re,s[i*2+1]=a[i].im;return u}else{let o=[];for(let s=0;s<e;s++)o.push(Number(n[s]));o.sort((s,i)=>isNaN(s)&&isNaN(i)?0:isNaN(s)?1:isNaN(i)?-1:s-i);let a=D.zeros([e],"complex128"),u=a.data;for(let s=0;s<e;s++)u[s*2]=o[s],u[s*2+1]=0;return a}}function qt(r){let t=r.shape,e=t.length,n=r.data,o=r.size,a=M(r.dtype),u=[];for(let m=0;m<e;m++)u.push([]);let s=[],i=1;for(let m=e-1;m>=0;m--)s.unshift(i),i*=t[m];for(let m=0;m<o;m++)if(Nr(n,m,a)){let y=m;for(let d=0;d<e;d++){let f=Math.floor(y/s[d]);y=y%s[d],u[d].push(f)}}let c=u[0]?.length??0,l=[];for(let m=0;m<e;m++){let y=D.zeros([c],"int32"),d=y.data;for(let f=0;f<c;f++)d[f]=u[m][f];l.push(y)}return l}function We(r){let t=r.shape,e=t.length,n=r.data,o=r.size,a=M(r.dtype),u=[],s=[],i=1;for(let d=e-1;d>=0;d--)s.unshift(i),i*=t[d];for(let d=0;d<o;d++)if(Nr(n,d,a)){let f=[],p=d;for(let g=0;g<e;g++){let h=Math.floor(p/s[g]);p=p%s[g],f.push(h)}u.push(f)}let c=u.length,l=e===0?[c,1]:[c,e],m=D.zeros(l,"int32"),y=m.data;for(let d=0;d<c;d++){let f=u[d];for(let p=0;p<(e===0?1:e);p++)y[d*(e===0?1:e)+p]=f[p]??0}return m}function Ys(r){let t=r.data,e=r.size,n=M(r.dtype),o=[];for(let s=0;s<e;s++)Nr(t,s,n)&&o.push(s);let a=D.zeros([o.length],"int32"),u=a.data;for(let s=0;s<o.length;s++)u[s]=o[s];return a}function Hs(r,t,e){if(t===void 0&&e===void 0)return qt(r);if(t===void 0||e===void 0)throw new Error("either both or neither of x and y should be given");let n=r.shape,o=t.shape,a=e.shape,u=Math.max(n.length,o.length,a.length),s=_=>{let T=Array(u).fill(1);for(let E=0;E<_.length;E++)T[u-_.length+E]=_[E];return T},i=s(n),c=s(o),l=s(a),m=[];for(let _=0;_<u;_++){let T=[i[_],c[_],l[_]],E=Math.max(...T);for(let C of T)if(C!==1&&C!==E)throw new Error("operands could not be broadcast together");m.push(E)}let y=t.dtype,d=D.zeros(m,y),f=d.data,p=r.data,g=t.data,h=e.data,b=(_,T)=>{let E=[],C=1;for(let k=_.length-1;k>=0;k--)E.unshift(C),C*=_[k];for(;E.length<T.length;)E.unshift(0);for(let k=0;k<T.length;k++)T[k]===1&&m[k]!==1&&(E[k]=0);return E},A=b(n,i),S=b(o,c),x=b(a,l),w=[],N=1;for(let _=m.length-1;_>=0;_--)w.unshift(N),N*=m[_];let I=m.reduce((_,T)=>_*T,1),z=M(r.dtype),F=M(y);for(let _=0;_<I;_++){let T=_,E=0,C=0,k=0;for(let V=0;V<u;V++){let R=Math.floor(T/w[V]);T=T%w[V],E+=R*A[V],C+=R*S[V],k+=R*x[V]}Nr(p,E,z)?F?(f[_*2]=g[C*2],f[_*2+1]=g[C*2+1]):f[_]=g[C]:F?(f[_*2]=h[k*2],f[_*2+1]=h[k*2+1]):f[_]=h[k]}return d}function Ge(r,t,e="left"){if(r.ndim!==1)throw new Error("storage must be 1D");let n=r.data,o=r.size,a=t.data,u=t.size,s=M(r.dtype),i=D.zeros([u],"int32"),c=i.data;if(s){let l=n,m=a;for(let y=0;y<u;y++){let d=m[y*2],f=m[y*2+1],p=0,g=o;if(e==="left")for(;p<g;){let h=Math.floor((p+g)/2),b=l[h*2],A=l[h*2+1];mt(b,A,d,f)<0?p=h+1:g=h}else for(;p<g;){let h=Math.floor((p+g)/2),b=l[h*2],A=l[h*2+1];mt(b,A,d,f)<=0?p=h+1:g=h}c[y]=p}}else for(let l=0;l<u;l++){let m=Number(a[l]),y=0,d=o;if(e==="left")for(;y<d;){let f=Math.floor((y+d)/2);Number(n[f])<m?y=f+1:d=f}else for(;y<d;){let f=Math.floor((y+d)/2);Number(n[f])<=m?y=f+1:d=f}c[l]=y}return i}function Js(r,t){let e=r.data,n=t.data,o=t.dtype,a=M(r.dtype),u=M(o),s=Math.min(r.size,t.size),i=0;for(let y=0;y<s;y++)Nr(e,y,a)&&i++;let c=D.zeros([i],o),l=c.data,m=0;if(B(o)){let y=n,d=l;for(let f=0;f<s;f++)Nr(e,f,a)&&(d[m++]=y[f])}else if(u){let y=n,d=l;for(let f=0;f<s;f++)Nr(e,f,a)&&(d[m*2]=y[f*2],d[m*2+1]=y[f*2+1],m++)}else for(let y=0;y<s;y++)Nr(e,y,a)&&(l[m++]=n[y]);return c}function Ze(r,t){let e=r.shape,n=e.length,o=r.data,a=r.size,u=M(r.dtype);if(t===void 0){let d=0;for(let f=0;f<a;f++)Nr(o,f,u)&&d++;return d}let s=t;if(s<0&&(s=n+s),s<0||s>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=Array.from(e).filter((d,f)=>f!==s);if(i.length===0)return Ze(r);let c=D.zeros(i,"int32"),l=c.data,m=e[s],y=i.reduce((d,f)=>d*f,1);for(let d=0;d<y;d++){let f=0;for(let p=0;p<m;p++){let g=$(d,s,p,e),h=U(g,e);Nr(o,h,u)&&f++}l[d]=f}return c}var Xs=W(()=>{"use strict";X();J();le()});function Qs(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 Ye(r,t=0){q(r.dtype,"around","Rounding is not defined for complex numbers.");let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=e==="float32"?"float32":"float64",s=D.zeros(n,u),i=s.data,c=Math.pow(10,t);for(let l=0;l<a;l++){let m=Number(o[l]);i[l]=Qs(m*c)/c}return s}function He(r){q(r.dtype,"ceil","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",u=D.zeros(e,a),s=u.data;for(let i=0;i<o;i++)s[i]=Math.ceil(Number(n[i]));return u}function Je(r){q(r.dtype,"fix","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",u=D.zeros(e,a),s=u.data;for(let i=0;i<o;i++)s[i]=Math.trunc(Number(n[i]));return u}function Xe(r){q(r.dtype,"floor","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",u=D.zeros(e,a),s=u.data;for(let i=0;i<o;i++)s[i]=Math.floor(Number(n[i]));return u}function Qe(r){q(r.dtype,"rint","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",u=D.zeros(e,a),s=u.data;for(let i=0;i<o;i++)s[i]=Qs(Number(n[i]));return u}function Ke(r){q(r.dtype,"trunc","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",u=D.zeros(e,a),s=u.data;for(let i=0;i<o;i++)s[i]=Math.trunc(Number(n[i]));return u}var Ks=W(()=>{"use strict";X();J()});function rn(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 Hc(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 _r(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)=>rn(R.re,R.im,L.re,L.im));let x=[],w=[],N=new Array(a),I=[],z,F,_=0;for(let R=0;R<S.length;R++){let{re:L,im:P,index:Q}=S[R];z===void 0||!Hc(L,P,z,F)?(z!==void 0&&I.push(_),x.push({re:L,im:P}),w.push(Q),_=1,z=L,F=P):_++}_>0&&I.push(_);let T=new Map,E=-1;for(let R=0;R<x.length;R++){let{re:L,im:P}=x[R];isNaN(L)||isNaN(P)?E=R:T.set(`${L},${P}`,R)}for(let R=0;R<a;R++){let L=A[R*2],P=A[R*2+1];isNaN(L)||isNaN(P)?N[R]=E:N[R]=T.get(`${L},${P}`)}let C=D.zeros([x.length],o),k=C.data;for(let R=0;R<x.length;R++)k[R*2]=x[R].re,k[R*2+1]=x[R].im;if(!t&&!e&&!n)return C;let V={values:C};if(t){let R=D.zeros([w.length],"int32"),L=R.data;for(let P=0;P<w.length;P++)L[P]=w[P];V.indices=R}if(e){let R=D.zeros([N.length],"int32"),L=R.data;for(let P=0;P<N.length;P++)L[P]=N[P];V.inverse=R}if(n){let R=D.zeros([I.length],"int32"),L=R.data;for(let P=0;P<I.length;P++)L[P]=I[P];V.counts=R}return V}let s=[];for(let A=0;A<a;A++)s.push({value:Number(u[A]),index:A});s.sort((A,S)=>isNaN(A.value)&&isNaN(S.value)?0:isNaN(A.value)?1:isNaN(S.value)?-1:A.value-S.value);let i=[],c=[],l=new Array(a),m=[],y,d=0;for(let A=0;A<s.length;A++){let{value:S,index:x}=s[A];y===void 0||isNaN(S)&&!isNaN(y)||!isNaN(S)&&isNaN(y)||!isNaN(S)&&!isNaN(y)&&S!==y?(y!==void 0&&m.push(d),i.push(S),c.push(x),d=1,y=S):d++}d>0&&m.push(d);let f=new Map,p=-1;for(let A=0;A<i.length;A++){let S=i[A];isNaN(S)?p=A:f.set(S,A)}for(let A=0;A<a;A++){let S=Number(u[A]);isNaN(S)?l[A]=p:l[A]=f.get(S)}let g=D.zeros([i.length],o),h=g.data;for(let A=0;A<i.length;A++)h[A]=i[A];if(!t&&!e&&!n)return g;let b={values:g};if(t){let A=D.zeros([c.length],"int32"),S=A.data;for(let x=0;x<c.length;x++)S[x]=c[x];b.indices=A}if(e){let A=D.zeros([l.length],"int32"),S=A.data;for(let x=0;x<l.length;x++)S[x]=l[x];b.inverse=A}if(n){let A=D.zeros([m.length],"int32"),S=A.data;for(let x=0;x<m.length;x++)S[x]=m[x];b.counts=A}return b}function wr(r,t,e){if(e){let n=Number(r[t*2]),o=Number(r[t*2+1]);return`${n},${o}`}return String(Number(r[t]))}function ri(r,t){return tn(r,t)}function ti(r,t){let e=r.dtype,n=M(e),o=_r(r),a=_r(t),u=new Set;for(let l=0;l<a.size;l++)u.add(wr(a.data,l,n));let s=[];for(let l=0;l<o.size;l++){let m=wr(o.data,l,n);u.has(m)&&s.push(l)}if(n){let l=D.zeros([s.length],e),m=l.data,y=o.data;for(let d=0;d<s.length;d++){let f=s[d];m[d*2]=y[f*2],m[d*2+1]=y[f*2+1]}return l}let i=D.zeros([s.length],e),c=i.data;for(let l=0;l<s.length;l++)c[l]=o.data[s[l]];return i}function tn(r,t){let e=Array.from(r.shape),n=r.size,o=M(r.dtype),a=new Set;for(let i=0;i<t.size;i++)a.add(wr(t.data,i,o));let u=D.zeros(e,"bool"),s=u.data;for(let i=0;i<n;i++){let c=wr(r.data,i,o);s[i]=a.has(c)?1:0}return u}function ei(r,t){let e=r.dtype,n=M(e),o=_r(r),a=new Set;for(let c=0;c<t.size;c++)a.add(wr(t.data,c,n));let u=[];for(let c=0;c<o.size;c++){let l=wr(o.data,c,n);a.has(l)||u.push(c)}if(n){let c=D.zeros([u.length],e),l=c.data,m=o.data;for(let y=0;y<u.length;y++){let d=u[y];l[y*2]=m[d*2],l[y*2+1]=m[d*2+1]}return c}let s=D.zeros([u.length],e),i=s.data;for(let c=0;c<u.length;c++)i[c]=o.data[u[c]];return s}function ni(r,t){let e=r.dtype,n=M(e),o=_r(r),a=_r(t),u=new Set,s=new Set;for(let d=0;d<o.size;d++)u.add(wr(o.data,d,n));for(let d=0;d<a.size;d++)s.add(wr(a.data,d,n));let i=[],c=[];for(let d=0;d<o.size;d++){let f=wr(o.data,d,n);s.has(f)||i.push(d)}for(let d=0;d<a.size;d++){let f=wr(a.data,d,n);u.has(f)||c.push(d)}if(n){let d=[],f=o.data,p=a.data;for(let b of i)d.push({re:f[b*2],im:f[b*2+1]});for(let b of c)d.push({re:p[b*2],im:p[b*2+1]});d.sort((b,A)=>rn(b.re,b.im,A.re,A.im));let g=D.zeros([d.length],e),h=g.data;for(let b=0;b<d.length;b++)h[b*2]=d[b].re,h[b*2+1]=d[b].im;return g}let l=[];for(let d of i)l.push(Number(o.data[d]));for(let d of c)l.push(Number(a.data[d]));l.sort((d,f)=>isNaN(d)&&isNaN(f)?0:isNaN(d)?1:isNaN(f)?-1:d-f);let m=D.zeros([l.length],e),y=m.data;for(let d=0;d<l.length;d++)y[d]=l[d];return m}function oi(r,t){let e=r.dtype,n=M(e),o=_r(r),a=_r(t),u=new Set,s=[];if(n){let m=o.data,y=a.data;for(let p=0;p<o.size;p++){let g=m[p*2],h=m[p*2+1],b=`${g},${h}`;u.has(b)||(u.add(b),s.push({re:g,im:h}))}for(let p=0;p<a.size;p++){let g=y[p*2],h=y[p*2+1],b=`${g},${h}`;u.has(b)||(u.add(b),s.push({re:g,im:h}))}s.sort((p,g)=>rn(p.re,p.im,g.re,g.im));let d=D.zeros([s.length],e),f=d.data;for(let p=0;p<s.length;p++)f[p*2]=s[p].re,f[p*2+1]=s[p].im;return d}let i=[];for(let m=0;m<o.size;m++){let y=Number(o.data[m]),d=String(y);u.has(d)||(u.add(d),i.push(y))}for(let m=0;m<a.size;m++){let y=Number(a.data[m]),d=String(y);u.has(d)||(u.add(d),i.push(y))}i.sort((m,y)=>isNaN(m)&&isNaN(y)?0:isNaN(m)?1:isNaN(y)?-1:m-y);let c=D.zeros([i.length],e),l=c.data;for(let m=0;m<i.length;m++)l[m]=i[m];return c}var ai=W(()=>{"use strict";X();J()});function en(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=Xc(u,a);return u}function Xc(r,t){let e=Array.from(r.shape),n=e.length,o=e[t],a=[...e];a[t]=o-1;let u=r.dtype,s=M(u),i=B(u)?"float64":u,c=D.zeros(a,i),l=c.data,m=r.strides,y=c.size;for(let d=0;d<y;d++){let f=d,p=new Array(n);for(let S=n-1;S>=0;S--)p[S]=f%a[S],f=Math.floor(f/a[S]);let g=[...p],h=[...p];h[t]=g[t]+1;let b=0,A=0;for(let S=0;S<n;S++)b+=g[S]*m[S],A+=h[S]*m[S];if(s){let S=r.data,x=S[b*2],w=S[b*2+1],N=S[A*2],I=S[A*2+1];l[d*2]=N-x,l[d*2+1]=I-w}else{let S=(B(u),Number(r.data[b])),x=(B(u),Number(r.data[A]));l[d]=x-S}}return c}function si(r,t=null,e=null){let n=r.size,o=r.dtype,a=M(o),u=B(o)?"float64":o,s=Math.max(0,n-1),i=e?e.length:0,c=t?t.length:0,l=i+s+c,m=D.zeros([l],u),y=m.data,d=0;if(e)if(a)for(let f of e)y[d*2]=f,y[d*2+1]=0,d++;else for(let f of e)y[d++]=f;if(a){let f=r.data;for(let p=0;p<s;p++){let g=f[p*2],h=f[p*2+1],b=f[(p+1)*2],A=f[(p+1)*2+1];y[d*2]=b-g,y[d*2+1]=A-h,d++}}else for(let f=0;f<s;f++){let p=(B(o),Number(r.iget(f))),g=(B(o),Number(r.iget(f+1)));y[d++]=g-p}if(t)if(a)for(let f of t)y[d*2]=f,y[d*2+1]=0,d++;else for(let f of t)y[d++]=f;return m}function ii(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(Qc(r,a[i],u[i]));return s.length===1?s[0]:s}function Qc(r,t,e){let n=Array.from(r.shape),o=n.length,a=n[t];if(a<2)throw new Error(`Shape of array along axis ${t} must be at least 2, but got ${a}`);let u=r.dtype,s=M(u),i=B(u)?"float64":u==="float32"?"float32":s?u:"float64",c=D.zeros(n,i),l=c.data,m=r.strides,y=e,d=2*y,f=r.size;for(let p=0;p<f;p++){let g=p,h=new Array(o);for(let A=o-1;A>=0;A--)h[A]=g%n[A],g=Math.floor(g/n[A]);let b=h[t];if(s){let A=r.data,S=l,x,w;if(b===0){let N=[...h];N[t]=1;let I=0;for(let E=0;E<o;E++)I+=N[E]*m[E];let z=A[p*2],F=A[p*2+1],_=A[I*2],T=A[I*2+1];x=(_-z)/y,w=(T-F)/y}else if(b===a-1){let N=[...h];N[t]=a-2;let I=0;for(let E=0;E<o;E++)I+=N[E]*m[E];let z=A[p*2],F=A[p*2+1],_=A[I*2],T=A[I*2+1];x=(z-_)/y,w=(F-T)/y}else{let N=[...h],I=[...h];N[t]=b+1,I[t]=b-1;let z=0,F=0;for(let k=0;k<o;k++)z+=N[k]*m[k],F+=I[k]*m[k];let _=A[z*2],T=A[z*2+1],E=A[F*2],C=A[F*2+1];x=(_-E)/d,w=(T-C)/d}S[p*2]=x,S[p*2+1]=w}else{let A;if(b===0){let S=[...h];S[t]=1;let x=0;for(let I=0;I<o;I++)x+=S[I]*m[I];let w=(B(u),Number(r.data[p]));A=((B(u),Number(r.data[x]))-w)/y}else if(b===a-1){let S=[...h];S[t]=a-2;let x=0;for(let I=0;I<o;I++)x+=S[I]*m[I];let w=(B(u),Number(r.data[p])),N=(B(u),Number(r.data[x]));A=(w-N)/y}else{let S=[...h],x=[...h];S[t]=b+1,x[t]=b-1;let w=0,N=0;for(let F=0;F<o;F++)w+=S[F]*m[F],N+=x[F]*m[F];let I=(B(u),Number(r.data[w])),z=(B(u),Number(r.data[N]));A=(I-z)/d}l[p]=A}}return c}function ui(r,t,e=-1,n=-1,o=-1){let a=Array.from(r.shape),u=Array.from(t.shape),s=a.length,i=u.length,c=e<0?s+e:e,l=n<0?i+n:n;if(c<0||c>=s)throw new Error(`axisa ${e} is out of bounds for array of dimension ${s}`);if(l<0||l>=i)throw new Error(`axisb ${n} is out of bounds for array of dimension ${i}`);let m=a[c],y=u[l];if(m!==2&&m!==3)throw new Error(`incompatible dimensions for cross product (dimension must be 2 or 3, got ${m})`);if(y!==2&&y!==3)throw new Error(`incompatible dimensions for cross product (dimension must be 2 or 3, got ${y})`);let d=Z(r.dtype,t.dtype),f=M(d),p=(b,A)=>{if(M(b.dtype)){let S=b.data;return[S[A*2],S[A*2+1]]}return[Number(b.iget(A)),0]},g=(b,A,S,x)=>[b*S-A*x,b*x+A*S],h=(b,A,S,x)=>[b-S,A-x];if(s===1&&i===1&&m===3&&y===3){let b=D.zeros([3],d);if(f){let A=b.data,[S,x]=p(r,0),[w,N]=p(r,1),[I,z]=p(r,2),[F,_]=p(t,0),[T,E]=p(t,1),[C,k]=p(t,2),[V,R]=g(w,N,C,k),[L,P]=g(I,z,T,E),[Q,er]=h(V,R,L,P),[G,or]=g(I,z,F,_),[ar,sr]=g(S,x,C,k),[mr,Qt]=h(G,or,ar,sr),[Kt,re]=g(S,x,T,E),[te,ee]=g(w,N,F,_),[ne,oe]=h(Kt,re,te,ee);A[0]=Q,A[1]=er,A[2]=mr,A[3]=Qt,A[4]=ne,A[5]=oe}else{let A=b.data,S=Number(r.iget(0)),x=Number(r.iget(1)),w=Number(r.iget(2)),N=Number(t.iget(0)),I=Number(t.iget(1)),z=Number(t.iget(2));A[0]=x*z-w*I,A[1]=w*N-S*z,A[2]=S*I-x*N}return b}if(s===1&&i===1&&m===2&&y===2){let b=D.zeros([],d);if(f){let A=b.data,[S,x]=p(r,0),[w,N]=p(r,1),[I,z]=p(t,0),[F,_]=p(t,1),[T,E]=g(S,x,F,_),[C,k]=g(w,N,I,z),[V,R]=h(T,E,C,k);A[0]=V,A[1]=R}else{let A=Number(r.iget(0)),S=Number(r.iget(1)),x=Number(t.iget(0)),w=Number(t.iget(1));b.data[0]=A*w-S*x}return b}if(s===1&&i===1){if(m===2&&y===3){let b=D.zeros([3],d);if(f){let A=b.data,[S,x]=p(r,0),[w,N]=p(r,1),[I,z]=p(t,0),[F,_]=p(t,1),[T,E]=p(t,2),[C,k]=g(w,N,T,E),[V,R]=g(S,x,T,E),L=-V,P=-R,[Q,er]=g(S,x,F,_),[G,or]=g(w,N,I,z),[ar,sr]=h(Q,er,G,or);A[0]=C,A[1]=k,A[2]=L,A[3]=P,A[4]=ar,A[5]=sr}else{let A=b.data,S=Number(r.iget(0)),x=Number(r.iget(1)),w=Number(t.iget(0)),N=Number(t.iget(1)),I=Number(t.iget(2));A[0]=x*I,A[1]=-S*I,A[2]=S*N-x*w}return b}else if(m===3&&y===2){let b=D.zeros([3],d);if(f){let A=b.data,[S,x]=p(r,0),[w,N]=p(r,1),[I,z]=p(r,2),[F,_]=p(t,0),[T,E]=p(t,1),[C,k]=g(I,z,T,E),V=-C,R=-k,[L,P]=g(I,z,F,_),[Q,er]=g(S,x,T,E),[G,or]=g(w,N,F,_),[ar,sr]=h(Q,er,G,or);A[0]=V,A[1]=R,A[2]=L,A[3]=P,A[4]=ar,A[5]=sr}else{let A=b.data,S=Number(r.iget(0)),x=Number(r.iget(1)),w=Number(r.iget(2)),N=Number(t.iget(0)),I=Number(t.iget(1));A[0]=-w*I,A[1]=w*N,A[2]=S*I-x*N}return b}}if(s===2&&i===2&&c===1&&l===1){let b=a[0];if(u[0]!==b)throw new Error(`Shape mismatch: a has ${b} vectors, b has ${u[0]} vectors`);if(m===3&&y===3){let A=D.zeros([b,3],d);if(f){let S=A.data;for(let x=0;x<b;x++){let[w,N]=p(r,x*3),[I,z]=p(r,x*3+1),[F,_]=p(r,x*3+2),[T,E]=p(t,x*3),[C,k]=p(t,x*3+1),[V,R]=p(t,x*3+2),[L,P]=g(I,z,V,R),[Q,er]=g(F,_,C,k),[G,or]=h(L,P,Q,er),[ar,sr]=g(F,_,T,E),[mr,Qt]=g(w,N,V,R),[Kt,re]=h(ar,sr,mr,Qt),[te,ee]=g(w,N,C,k),[ne,oe]=g(I,z,T,E),[Mu,Bu]=h(te,ee,ne,oe);S[x*3*2]=G,S[x*3*2+1]=or,S[(x*3+1)*2]=Kt,S[(x*3+1)*2+1]=re,S[(x*3+2)*2]=Mu,S[(x*3+2)*2+1]=Bu}}else{let S=A.data;for(let x=0;x<b;x++){let w=Number(r.iget(x*3)),N=Number(r.iget(x*3+1)),I=Number(r.iget(x*3+2)),z=Number(t.iget(x*3)),F=Number(t.iget(x*3+1)),_=Number(t.iget(x*3+2));S[x*3]=N*_-I*F,S[x*3+1]=I*z-w*_,S[x*3+2]=w*F-N*z}}return A}if(m===2&&y===2){let A=D.zeros([b],d);if(f){let S=A.data;for(let x=0;x<b;x++){let[w,N]=p(r,x*2),[I,z]=p(r,x*2+1),[F,_]=p(t,x*2),[T,E]=p(t,x*2+1),[C,k]=g(w,N,T,E),[V,R]=g(I,z,F,_),[L,P]=h(C,k,V,R);S[x*2]=L,S[x*2+1]=P}}else{let S=A.data;for(let x=0;x<b;x++){let w=Number(r.iget(x*2)),N=Number(r.iget(x*2+1)),I=Number(t.iget(x*2)),z=Number(t.iget(x*2+1));S[x]=w*z-N*I}}return A}}throw new Error(`cross product not implemented for arrays with shapes ${JSON.stringify(a)} and ${JSON.stringify(u)}`)}var ci=W(()=>{"use strict";X();J()});function li(r,t,e=0){q(r.dtype,"bincount","bincount requires integer input.");let n=r.data,o=r.size,a=0;for(let s=0;s<o;s++){let i=Number(n[s]);if(i<0||!Number.isInteger(i))throw new Error("'x' argument must contain non-negative integers");i>a&&(a=i)}let u=Math.max(a+1,e);if(t!==void 0){if(t.size!==o)throw new Error("weights array must have same length as x");let s=t.data,i=new Float64Array(u);for(let c=0;c<o;c++){let l=Number(n[c]);i[l]+=Number(s[c])}return D.fromData(i,[u],"float64")}else{let s=new Float64Array(u);for(let i=0;i<o;i++){let c=Number(n[i]);s[c]++}return D.fromData(s,[u],"float64")}}function fi(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=rl(o,u,l):m=pt(o,u,l);else if(e)for(m=0;m<u&&Number(o[m])>=l;)m++;else for(m=0;m<u&&Number(o[m])>l;)m++;s[c]=m}return D.fromData(s,[...r.shape],"float64")}function rl(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 pt(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 mi(r,t=10,e,n=!1,o){q(r.dtype,"histogram","histogram requires real numbers."),typeof t!="number"&&q(t.dtype,"histogram","histogram requires real numbers.");let a=r.data,u=r.size,s;if(typeof t=="number"){let m,y;if(e)[m,y]=e;else{m=1/0,y=-1/0;for(let f=0;f<u;f++){let p=Number(a[f]);p<m&&(m=p),p>y&&(y=p)}m===y&&(m=m-.5,y=y+.5)}s=[];let d=(y-m)/t;for(let f=0;f<=t;f++)s.push(m+f*d)}else{let m=t.data;s=[];for(let y=0;y<t.size;y++)s.push(Number(m[y]))}let i=s.length-1,c=new Float64Array(i),l=o?.data;for(let m=0;m<u;m++){let y=Number(a[m]),d=l?Number(l[m]):1,f=pt(s,s.length,y)-1;if(!(f<0)){if(f>=i)if(y===s[i])f=i-1;else continue;c[f]+=d}}if(n){let m=0;for(let y=0;y<i;y++)m+=c[y];for(let y=0;y<i;y++){let d=s[y+1]-s[y];c[y]=c[y]/(m*d)}}return{hist:D.fromData(c,[i],"float64"),bin_edges:D.fromData(new Float64Array(s),[s.length],"float64")}}function pi(r,t,e=10,n,o=!1,a){q(r.dtype,"histogram2d","histogram2d requires real numbers."),q(t.dtype,"histogram2d","histogram2d requires real numbers.");let u=r.data,s=t.data,i=r.size;if(t.size!==i)throw new Error("x and y must have the same length");let c,l,m,y;if(typeof e=="number"?(m=e,y=e):Array.isArray(e)&&e.length===2?(e[0],m=e[0],y=e[1]):(m=10,y=10),typeof m=="number"){let h,b;if(n)[h,b]=n[0];else{h=1/0,b=-1/0;for(let S=0;S<i;S++){let x=Number(u[S]);x<h&&(h=x),x>b&&(b=x)}h===b&&(h-=.5,b+=.5)}c=[];let A=(b-h)/m;for(let S=0;S<=m;S++)c.push(h+S*A)}else{let h=m.data;c=[];for(let b=0;b<m.size;b++)c.push(Number(h[b]))}if(typeof y=="number"){let h,b;if(n)[h,b]=n[1];else{h=1/0,b=-1/0;for(let S=0;S<i;S++){let x=Number(s[S]);x<h&&(h=x),x>b&&(b=x)}h===b&&(h-=.5,b+=.5)}l=[];let A=(b-h)/y;for(let S=0;S<=y;S++)l.push(h+S*A)}else{let h=y.data;l=[];for(let b=0;b<y.size;b++)l.push(Number(h[b]))}let d=c.length-1,f=l.length-1,p=new Float64Array(d*f),g=a?.data;for(let h=0;h<i;h++){let b=Number(u[h]),A=Number(s[h]),S=g?Number(g[h]):1,x=pt(c,c.length,b)-1,w=pt(l,l.length,A)-1;if(x<0||x>=d)if(b===c[d]&&x===d)x=d-1;else continue;if(w<0||w>=f)if(A===l[f]&&w===f)w=f-1;else continue;p[x*f+w]+=S}if(o){let h=0;for(let b=0;b<p.length;b++)h+=p[b];for(let b=0;b<d;b++)for(let A=0;A<f;A++){let S=c[b+1]-c[b],x=l[A+1]-l[A],w=S*x;p[b*f+A]=p[b*f+A]/(h*w)}}return{hist:D.fromData(p,[d,f],"float64"),x_edges:D.fromData(new Float64Array(c),[c.length],"float64"),y_edges:D.fromData(new Float64Array(l),[l.length],"float64")}}function yi(r,t=10,e,n=!1,o){q(r.dtype,"histogramdd","histogramdd requires real numbers.");let a=r.shape,u=r.data,s,i;if(a.length===1)s=a[0],i=1;else if(a.length===2)s=a[0],i=a[1];else throw new Error("sample must be 1D or 2D array");let c;if(typeof t=="number")c=new Array(i).fill(t);else if(c=t,c.length!==i)throw new Error("bins array length must match number of dimensions");let l=[];for(let h=0;h<i;h++){let b,A;if(e&&e[h])[b,A]=e[h];else{b=1/0,A=-1/0;for(let N=0;N<s;N++){let I=Number(i===1?u[N]:u[N*i+h]);I<b&&(b=I),I>A&&(A=I)}b===A&&(b-=.5,A+=.5)}let S=c[h],x=[],w=(A-b)/S;for(let N=0;N<=S;N++)x.push(b+N*w);l.push(x)}let m=c.slice(),y=m.reduce((h,b)=>h*b,1),d=new Float64Array(y),f=new Array(i);f[i-1]=1;for(let h=i-2;h>=0;h--)f[h]=f[h+1]*c[h+1];let p=o?.data;for(let h=0;h<s;h++){let b=p?Number(p[h]):1,A=0,S=!1;for(let x=0;x<i;x++){let w=Number(i===1?u[h]:u[h*i+x]),N=l[x],I=c[x],z=pt(N,N.length,w)-1;if(z<0||z>=I)if(w===N[I]&&z===I)z=I-1;else{S=!0;break}A+=z*f[x]}S||(d[A]+=b)}if(n){let h=0;for(let A=0;A<y;A++)h+=d[A];let b=new Float64Array(y);for(let A=0;A<y;A++){let S=1,x=A;for(let w=0;w<i;w++){let N=Math.floor(x/f[w])%c[w],I=l[w];S*=I[N+1]-I[N]}b[A]=S}for(let A=0;A<y;A++)d[A]=d[A]/(h*b[A])}let g=l.map(h=>D.fromData(new Float64Array(h),[h.length],"float64"));return{hist:D.fromData(d,m,"float64"),edges:g}}function nn(r,t,e="full"){let n=r.data,o=t.data,a=r.size,u=t.size,s=M(r.dtype)||M(t.dtype),i=a+u-1;if(s){let l=new Float64Array(i),m=new Float64Array(i),y=M(r.dtype),d=M(t.dtype);for(let p=0;p<i;p++){let g=0,h=0,b=p-u+1;for(let A=0;A<a;A++){let S=A-b;if(S>=0&&S<u){let x,w,N,I;y?(x=n[A*2],w=n[A*2+1]):(x=Number(n[A]),w=0),d?(N=o[S*2],I=o[S*2+1]):(N=Number(o[S]),I=0),g+=x*N+w*I,h+=w*N-x*I}}l[p]=g,m[p]=h}let f=(p,g,h,b=0)=>{let A=new Float64Array(h*2);for(let S=0;S<h;S++)A[S*2]=p[b+S],A[S*2+1]=g[b+S];return D.fromData(A,[h],"complex128")};if(e==="full")return f(l,m,i);if(e==="same"){let p=Math.floor((i-a)/2);return f(l,m,a,p)}else{let p=Math.max(a,u)-Math.min(a,u)+1,g=Math.min(a,u)-1;return f(l,m,p,g)}}let c=new Float64Array(i);for(let l=0;l<i;l++){let m=0,y=l-u+1;for(let d=0;d<a;d++){let f=d-y;f>=0&&f<u&&(m+=Number(n[d])*Number(o[f]))}c[l]=m}if(e==="full")return D.fromData(c,[i],"float64");if(e==="same"){let l=Math.floor((i-a)/2),m=new Float64Array(a);for(let y=0;y<a;y++)m[y]=c[l+y];return D.fromData(m,[a],"float64")}else{let l=Math.max(a,u)-Math.min(a,u)+1,m=Math.min(a,u)-1,y=new Float64Array(l);for(let d=0;d<l;d++)y[d]=c[m+d];return D.fromData(y,[l],"float64")}}function di(r,t,e="full"){let n=t.data,o=t.size,a=M(t.dtype),u;if(a){let s=new Float64Array(o*2);for(let i=0;i<o;i++){let c=o-1-i;s[i*2]=n[c*2],s[i*2+1]=n[c*2+1]}u=D.fromData(s,[o],t.dtype)}else{let s=new Float64Array(o);for(let i=0;i<o;i++)s[i]=Number(n[o-1-i]);u=D.fromData(s,[o],"float64")}if(a){let s=u.data;for(let i=0;i<o;i++)s[i*2+1]=-s[i*2+1]}return nn(r,u,e)}function on(r,t,e=!0,n=!1,o){let a=r.shape,u=r.data,s=M(r.dtype)||t!==void 0&&M(t.dtype),i;if(o!==void 0?i=o:i=n?0:1,a.length===1)if(t!==void 0){let f=t.data,p=r.size,g=M(r.dtype),h=M(t.dtype);if(t.size!==p)throw new Error("m and y must have same length");if(s){let I=0,z=0,F=0,_=0;for(let G=0;G<p;G++)g?(I+=u[G*2],z+=u[G*2+1]):I+=Number(u[G]),h?(F+=f[G*2],_+=f[G*2+1]):F+=Number(f[G]);I/=p,z/=p,F/=p,_/=p;let T=0,E=0,C=0,k=0,V=0,R=0,L=0,P=0;for(let G=0;G<p;G++){let or,ar,sr,mr;g?(or=u[G*2]-I,ar=u[G*2+1]-z):(or=Number(u[G])-I,ar=0),h?(sr=f[G*2]-F,mr=f[G*2+1]-_):(sr=Number(f[G])-F,mr=0),T+=or*or+ar*ar,C+=sr*sr+mr*mr,V+=or*sr+ar*mr,R+=ar*sr-or*mr,L+=sr*or+mr*ar,P+=mr*or-sr*ar}let Q=p-i;if(Q<=0){let G=new Float64Array(8);return G.fill(NaN),D.fromData(G,[2,2],"complex128")}T/=Q,C/=Q,V/=Q,R/=Q,L/=Q,P/=Q;let er=new Float64Array(8);return er[0]=T,er[1]=E,er[2]=V,er[3]=R,er[4]=L,er[5]=P,er[6]=C,er[7]=k,D.fromData(er,[2,2],"complex128")}let b=0,A=0;for(let I=0;I<p;I++)b+=Number(u[I]),A+=Number(f[I]);b/=p,A/=p;let S=0,x=0,w=0;for(let I=0;I<p;I++){let z=Number(u[I])-b,F=Number(f[I])-A;S+=z*z,x+=F*F,w+=z*F}let N=p-i;return N<=0?D.fromData(new Float64Array([NaN,NaN,NaN,NaN]),[2,2],"float64"):(S/=N,x/=N,w/=N,D.fromData(new Float64Array([S,w,w,x]),[2,2],"float64"))}else{let f=r.size;if(s){let b=0,A=0;for(let w=0;w<f;w++)b+=u[w*2],A+=u[w*2+1];b/=f,A/=f;let S=0;for(let w=0;w<f;w++){let N=u[w*2]-b,I=u[w*2+1]-A;S+=N*N+I*I}let x=f-i;return x<=0?D.fromData(new Float64Array([NaN,0]),[],"complex128"):(S/=x,D.fromData(new Float64Array([S,0]),[],"complex128"))}let p=0;for(let b=0;b<f;b++)p+=Number(u[b]);p/=f;let g=0;for(let b=0;b<f;b++){let A=Number(u[b])-p;g+=A*A}let h=f-i;return h<=0?D.fromData(new Float64Array([NaN]),[],"float64"):(g/=h,D.fromData(new Float64Array([g]),[],"float64"))}let c,l;e?(c=a[0],l=a[1]):(c=a[1],l=a[0]);let m=l-i;if(s){let f=new Float64Array(c),p=new Float64Array(c);for(let h=0;h<c;h++){let b=0,A=0;for(let S=0;S<l;S++){let x=e?h*l+S:S*c+h;b+=u[x*2],A+=u[x*2+1]}f[h]=b/l,p[h]=A/l}let g=new Float64Array(c*c*2);if(m<=0)return g.fill(NaN),D.fromData(g,[c,c],"complex128");for(let h=0;h<c;h++)for(let b=0;b<c;b++){let A=0,S=0;for(let w=0;w<l;w++){let N=e?h*l+w:w*c+h,I=e?b*l+w:w*c+b,z=u[N*2]-f[h],F=u[N*2+1]-p[h],_=u[I*2]-f[b],T=u[I*2+1]-p[b];A+=z*_+F*T,S+=F*_-z*T}let x=(h*c+b)*2;g[x]=A/m,g[x+1]=S/m}return D.fromData(g,[c,c],"complex128")}let y=new Float64Array(c);for(let f=0;f<c;f++){let p=0;for(let g=0;g<l;g++){let h=e?f*l+g:g*c+f;p+=Number(u[h])}y[f]=p/l}let d=new Float64Array(c*c);if(m<=0)return d.fill(NaN),D.fromData(d,[c,c],"float64");for(let f=0;f<c;f++)for(let p=f;p<c;p++){let g=0;for(let b=0;b<l;b++){let A=e?f*l+b:b*c+f,S=e?p*l+b:b*c+p,x=Number(u[A])-y[f],w=Number(u[S])-y[p];g+=x*w}let h=g/m;d[f*c+p]=h,d[p*c+f]=h}return D.fromData(d,[c,c],"float64")}function gi(r,t,e=!0){let n=M(r.dtype)||t!==void 0&&M(t.dtype);if(r.shape.length===1&&t===void 0)return n?D.fromData(new Float64Array([1,0]),[],"complex128"):D.fromData(new Float64Array([1]),[],"float64");let o=on(r,t,e,!1),a=o.data,s=o.shape[0];if(n){let c=new Float64Array(s*s*2);for(let l=0;l<s;l++)for(let m=0;m<s;m++){let y=a[(l*s+m)*2],d=a[(l*s+m)*2+1],f=a[(l*s+l)*2],p=a[(m*s+m)*2],g=(l*s+m)*2;if(f<=0||p<=0)c[g]=NaN,c[g+1]=NaN;else{let h=Math.sqrt(f*p);c[g]=y/h,c[g+1]=d/h}}return D.fromData(c,[s,s],"complex128")}let i=new Float64Array(s*s);for(let c=0;c<s;c++)for(let l=0;l<s;l++){let m=Number(a[c*s+l]),y=Number(a[c*s+c]),d=Number(a[l*s+l]);y<=0||d<=0?i[c*s+l]=NaN:i[c*s+l]=m/Math.sqrt(y*d)}return D.fromData(i,[s,s],"float64")}var Ai=W(()=>{"use strict";X();J()});function Fr(r,t=rr){let e=D.zeros(r,t);return new v(e)}function bi(r,t=rr){let e=D.ones(r,t);return new v(e)}function el(r){let t=[],e=r;for(;Array.isArray(e);)t.push(e.length),e=e[0];return t}function hi(r){return typeof r=="bigint"?!0:Array.isArray(r)?r.some(t=>hi(t)):!1}function Si(r){return Cn(r)?!0:Array.isArray(r)?r.some(t=>Si(t)):!1}function nl(r){let t=[];function e(n){Array.isArray(n)?n.forEach(o=>e(o)):t.push(n)}return e(r),t}function tr(r,t){if(r instanceof v)return!t||r.dtype===t?r.copy():r.astype(t);let e=hi(r),n=Si(r),o=el(r),a=o.reduce((d,f)=>d*f,1),u=t;u||(n?u="complex128":e?u="int64":u=rr);let s=M(u),i=j(u);if(!i)throw new Error(`Cannot create array with dtype ${u}`);let c=s?a*2:a,l=new i(c),m=nl(r);if(B(u)){let d=l;for(let f=0;f<a;f++){let p=m[f];d[f]=typeof p=="bigint"?p:BigInt(Math.round(Number(p)))}}else if(u==="bool"){let d=l;for(let f=0;f<a;f++)d[f]=m[f]?1:0}else if(s){let d=l;for(let f=0;f<a;f++){let p=m[f],g,h;p instanceof O?(g=p.re,h=p.im):typeof p=="object"&&p!==null&&"re"in p?(g=p.re,h=p.im??0):(g=Number(p),h=0),d[f*2]=g,d[f*2+1]=h}}else{let d=l;for(let f=0;f<a;f++){let p=m[f];d[f]=Number(p)}}let y=D.fromData(l,o,u);return new v(y)}function ol(r,t,e=1,n=rr){let o=r,a=t;if(t===void 0&&(o=0,a=r),a===void 0)throw new Error("stop is required");let u=Math.max(0,Math.ceil((a-o)/e)),s=j(n);if(!s)throw new Error(`Cannot create arange array with dtype ${n}`);let i=new s(u);if(B(n))for(let l=0;l<u;l++)i[l]=BigInt(Math.round(o+l*e));else if(n==="bool")for(let l=0;l<u;l++)i[l]=o+l*e!==0?1:0;else for(let l=0;l<u;l++)i[l]=o+l*e;let c=D.fromData(i,[u],n);return new v(c)}function al(r,t,e=50,n=rr){if(e<0)throw new Error("num must be non-negative");if(e===0)return tr([],n);if(e===1)return tr([r],n);let o=j(n);if(!o)throw new Error(`Cannot create linspace array with dtype ${n}`);let a=new o(e),u=(t-r)/(e-1);if(B(n))for(let i=0;i<e;i++)a[i]=BigInt(Math.round(r+i*u));else if(n==="bool")for(let i=0;i<e;i++)a[i]=r+i*u!==0?1:0;else for(let i=0;i<e;i++)a[i]=r+i*u;let s=D.fromData(a,[e],n);return new v(s)}function sl(r,t,e=50,n=10,o=rr){if(e<0)throw new Error("num must be non-negative");if(e===0)return tr([],o);if(e===1)return tr([Math.pow(n,r)],o);let a=j(o);if(!a)throw new Error(`Cannot create logspace array with dtype ${o}`);let u=new a(e),s=(t-r)/(e-1);if(B(o))for(let c=0;c<e;c++){let l=r+c*s;u[c]=BigInt(Math.round(Math.pow(n,l)))}else if(o==="bool")for(let c=0;c<e;c++){let l=r+c*s;u[c]=Math.pow(n,l)!==0?1:0}else for(let c=0;c<e;c++){let l=r+c*s;u[c]=Math.pow(n,l)}let i=D.fromData(u,[e],o);return new v(i)}function il(r,t,e=50,n=rr){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 tr([],n);if(e===1)return tr([r],n);let o=Math.sign(r),a=Math.sign(t);if(o!==a)throw new Error("Geometric sequence cannot contain both positive and negative values");let u=j(n);if(!u)throw new Error(`Cannot create geomspace array with dtype ${n}`);let s=new u(e),i=Math.log(Math.abs(r)),l=(Math.log(Math.abs(t))-i)/(e-1);if(B(n))for(let y=0;y<e;y++){let d=o*Math.exp(i+y*l);s[y]=BigInt(Math.round(d))}else if(n==="bool")for(let y=0;y<e;y++){let d=o*Math.exp(i+y*l);s[y]=d!==0?1:0}else for(let y=0;y<e;y++){let d=o*Math.exp(i+y*l);s[y]=d}let m=D.fromData(s,[e],n);return new v(m)}function xi(r,t,e=0,n=rr){let o=t??r,a=Fr([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 Di(r,t=rr){return Fr(r,t)}function Ni(r,t,e){let n=e;n||(typeof t=="bigint"?n="int64":typeof t=="boolean"?n="bool":Number.isInteger(t)?n="int32":n=rr);let o=j(n);if(!o)throw new Error(`Cannot create full array with dtype ${n}`);let a=r.reduce((i,c)=>i*c,1),u=new o(a);if(B(n)){let i=typeof t=="bigint"?t:BigInt(Math.round(Number(t)));u.fill(i)}else n==="bool"?u.fill(t?1:0):u.fill(Number(t));let s=D.fromData(u,r,n);return new v(s)}function ul(r,t=rr){return xi(r,r,0,t)}function Vt(r,t){return r instanceof v?!t||r.dtype===t?r:r.astype(t):tr(r,t)}function cl(r){return r.copy()}function ll(r,t){return Fr(Array.from(r.shape),t??r.dtype)}function fl(r,t){return bi(Array.from(r.shape),t??r.dtype)}function ml(r,t){return Di(Array.from(r.shape),t??r.dtype)}function pl(r,t,e){return Ni(Array.from(r.shape),t,e??r.dtype)}function yl(r,t){return Vt(r,t)}function dl(r,t){let e=Vt(r,t);return e.flags.C_CONTIGUOUS?e:e.copy()}function gl(r,t){return Vt(r,t).copy()}function wi(r,t=0){if(r.ndim===1){let e=r.size,n=e+Math.abs(t),o=Fr([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 Fr([0],r.dtype);let s=j(r.dtype),i=new s(u);for(let l=0;l<u;l++){let m=r.get([o+l,a+l]);B(r.dtype)?i[l]=typeof m=="bigint"?m:BigInt(m):i[l]=m}let c=D.fromData(i,[u],r.dtype);return new v(c)}else throw new Error("Input must be 1-D or 2-D")}function Al(r,t=0){let e=r.flatten();return wi(e,t)}function bl(r,t,e=rr){let n=t.reduce((c,l)=>c*l,1),o=j(e);if(!o)throw new Error(`Cannot create array with dtype ${e}`);let a=new o(n),u=t.length,s=new Array(u).fill(0);for(let c=0;c<n;c++){let l=r(...s);B(e)?a[c]=typeof l=="bigint"?l:BigInt(Number(l)):e==="bool"?a[c]=l?1:0:a[c]=Number(l);for(let m=u-1;m>=0&&(s[m]++,!(s[m]<t[m]));m--)s[m]=0}let i=D.fromData(a,t,e);return new v(i)}function hl(...r){let t=[],e="xy";for(let s of r)s instanceof v?t.push(s):typeof s=="object"&&"indexing"in s&&(e=s.indexing||"xy");if(t.length===0)return[];if(t.length===1)return[t[0].copy()];let n=t.map(s=>s.size);e==="xy"&&t.length>=2&&(t=[t[1],t[0],...t.slice(2)],[n[0],n[1]]=[n[1],n[0]]);let o=n,a=o.length,u=[];for(let s=0;s<t.length;s++){let i=t[s],c=i.size,l=new Array(a).fill(1);l[s]=c;let m=i.reshape(...l),y=$t(m.storage,o),d=v._fromStorage(y.copy());u.push(d)}return e==="xy"&&u.length>=2&&([u[0],u[1]]=[u[1],u[0]]),u}function Sl(r,t,e=0,n=rr){let o=t??r,a=Fr([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 xl(r,t=0){if(r.ndim<2)throw new Error("Input must have at least 2 dimensions");let e=r.copy(),n=e.shape,o=n[n.length-2],a=n[n.length-1],u=n.slice(0,-2).reduce((s,i)=>s*i,1);for(let s=0;s<u;s++)for(let i=0;i<o;i++)for(let c=0;c<a;c++)if(c>i+t){let l=[],m=s;for(let y=n.length-3;y>=0;y--)l.unshift(m%n[y]),m=Math.floor(m/n[y]);l.push(i,c),e.set(l,0)}return e}function Dl(r,t=0){if(r.ndim<2)throw new Error("Input must have at least 2 dimensions");let e=r.copy(),n=e.shape,o=n[n.length-2],a=n[n.length-1],u=n.slice(0,-2).reduce((s,i)=>s*i,1);for(let s=0;s<u;s++)for(let i=0;i<o;i++)for(let c=0;c<a;c++)if(c<i+t){let l=[],m=s;for(let y=n.length-3;y>=0;y--)l.unshift(m%n[y]),m=Math.floor(m/n[y]);l.push(i,c),e.set(l,0)}return e}function Nl(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=Fr([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 wl(r,t=rr,e=-1,n=0){let o,a=n;r instanceof ArrayBuffer?o=r:(o=r.buffer,a+=r.byteOffset);let u=Fl(t),s=o.byteLength-a,i=Math.floor(s/u),c=e<0?i:Math.min(e,i);if(c<=0)return tr([],t);let l=j(t);if(!l)throw new Error(`Unsupported dtype: ${t}`);let m=new l(o,a,c),y=D.fromData(m,[c],t);return new v(y)}function Il(r,t=rr,e=-1){let n=[],o=0;for(let a of r){if(e>=0&&o>=e)break;n.push(a),o++}return tr(n,t)}function zl(r,t=rr,e=-1){let n=[],o=0;for(let a of r){if(e>=0&&o>=e)break;n.push(a),o++}return tr(n,t)}function _l(r,t=rr,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 tr(a,t)}function Fl(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 Ml(r){return r.sqrt()}function Ii(r,t){return r.power(t)}function Bl(r){return r.exp()}function vl(r){return r.exp2()}function Tl(r){return r.expm1()}function El(r){return r.log()}function Ol(r){return r.log2()}function Cl(r){return r.log10()}function Ul(r){return r.log1p()}function $l(r,t){return r.logaddexp(t)}function Rl(r,t){return r.logaddexp2(t)}function zi(r){return r.absolute()}function kl(r){return r.negative()}function ql(r){return r.sign()}function Vl(r,t){return r.mod(t)}function _i(r,t){return r.divide(t)}function Pl(r,t){return r.floor_divide(t)}function jl(r){return r.positive()}function Ll(r){return r.reciprocal()}function Wl(r,t){return r.dot(t)}function Gl(r){return r.trace()}function Zl(r,t=0,e=0,n=1){let o=Wo(r.storage,t,e,n);return v._fromStorage(o)}function Yl(r,t){let e=Zo(r.storage,t.storage);return v._fromStorage(e)}function Hl(r,t){return r.transpose(t)}function Jl(r,t){return r.inner(t)}function Xl(r,t){return r.outer(t)}function Ql(r,t,e=2){return r.tensordot(t,e)}function Kl(r){return r.sin()}function rf(r){return r.cos()}function tf(r){return r.tan()}function Fi(r){return r.arcsin()}function Mi(r){return r.arccos()}function Bi(r){return r.arctan()}function vi(r,t){return r.arctan2(t)}function ef(r,t){return r.hypot(t)}function nf(r){return r.degrees()}function of(r){return r.radians()}function af(r){return r.radians()}function sf(r){return r.degrees()}function uf(r){return r.sinh()}function cf(r){return r.cosh()}function lf(r){return r.tanh()}function Ti(r){return r.arcsinh()}function Ei(r){return r.arccosh()}function Oi(r){return r.arctanh()}function ff(r,t,e){return r.swapaxes(t,e)}function mf(r,t,e){return r.moveaxis(t,e)}function Hr(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=Cr(e,t);return v._fromStorage(n)}function pf(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=So(e,t);return v._fromStorage(n)}function Ci(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=xo(t);return v._fromStorage(e)}function yf(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=ze(t);return v._fromStorage(e)}function df(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=Do(t);return v._fromStorage(e)}function gf(r,t,e=0){return No(r.storage,t,e).map(o=>v._fromStorage(o,r.base??r))}function Af(r,t,e=0){return ut(r.storage,t,e).map(o=>v._fromStorage(o,r.base??r))}function bf(r,t){return Io(r.storage,t).map(n=>v._fromStorage(n,r.base??r))}function hf(r,t){return zo(r.storage,t).map(n=>v._fromStorage(n,r.base??r))}function Sf(r,t){let e=_o(r.storage,t);return v._fromStorage(e)}function xf(r,t,e){return r.repeat(t,e)}function Df(r){return r.ravel()}function Nf(r,t){return r.reshape(...t)}function wf(r,t){return r.squeeze(t)}function If(r,t){return r.expand_dims(t)}function an(r,t){let e=Mo(r.storage,t);return v._fromStorage(e)}function zf(r){if(r.ndim<2)throw new Error("Input must be at least 2-D");return an(r,1)}function _f(r){if(r.ndim<2)throw new Error("Input must be at least 2-D");return an(r,0)}function Ff(r,t=1,e=[0,1]){let n=Bo(r.storage,t,e);return v._fromStorage(n)}function Mf(r,t,e){let n=vo(r.storage,t,e);return v._fromStorage(n)}function Bf(r,t,e=0){let n=To(r.storage,t,e);return v._fromStorage(n,r.base??r)}function vf(...r){let t=r.map(o=>o.storage),n=Uo(t).map((o,a)=>o===t[a]?r[a]:v._fromStorage(o));return n.length===1?n[0]:n}function Tf(...r){let t=r.map(o=>o.storage),n=$o(t).map((o,a)=>o===t[a]?r[a]:v._fromStorage(o));return n.length===1?n[0]:n}function Ef(...r){let t=r.map(o=>o.storage),n=Ro(t).map((o,a)=>o===t[a]?r[a]:v._fromStorage(o));return n.length===1?n[0]:n}function Of(r,t){return Eo(r.storage,t).map(n=>v._fromStorage(n,r.base??r))}function Cf(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=Oo(t);return v._fromStorage(e)}function Uf(r){return Ci(r)}function $f(r,t){let e=Co(r.storage,t);return v._fromStorage(e)}function Rf(r,t,e){let n=t instanceof v?t:tr(t,r.dtype);if(e===void 0){let o=r.flatten(),a=n.flatten();return Hr([o,a])}return Hr([r,n],e)}function kf(r,t,e){let n=r.dtype;if(e===void 0){let d=r.flatten(),p=(Array.isArray(t)?t:[t]).map(S=>S<0?d.size+S:S),g=[];for(let S=0;S<d.size;S++)p.includes(S)||g.push(S);let h=j(n),b=new h(g.length);for(let S=0;S<g.length;S++){let x=d.get([g[S]]);B(n)?b[S]=typeof x=="bigint"?x:BigInt(x):b[S]=x}let A=D.fromData(b,[g.length],n);return new v(A)}let o=r.shape,a=o.length,u=e<0?a+e:e;if(u<0||u>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);let s=o[u],i=Array.isArray(t)?t:[t],c=new Set(i.map(d=>d<0?s+d:d)),l=[],m=0;for(let d=0;d<=s;d++)(c.has(d)||d===s)&&(d>m&&l.push([m,d]),m=d+1);if(l.length===0){let d=[...o];return d[u]=0,Fr(d,n)}let y=[];for(let[d,f]of l){let p=o.map(()=>":");p[u]=`${d}:${f}`,y.push(r.slice(...p))}return Hr(y,u)}function qf(r,t,e,n){let o=e instanceof v?e:tr(e,r.dtype);if(n===void 0){let m=r.flatten(),y=o.flatten(),d=t<0?m.size+t:t;if(d<0||d>m.size)throw new Error(`index ${t} is out of bounds for array of size ${m.size}`);let f=d>0?m.slice(`0:${d}`):null,p=d<m.size?m.slice(`${d}:`):null,g=[];return f&&g.push(f),g.push(y),p&&g.push(p),Hr(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 Hr(l,s)}function Vf(r,t,e="constant",n=0){let o=r.shape,a=o.length,u=r.dtype,s;if(typeof t=="number"?s=o.map(()=>[t,t]):Array.isArray(t)&&typeof t[0]=="number"?s=o.map(()=>t):s=t,s.length!==a)throw new Error(`pad_width must have ${a} elements`);let i=o.map((p,g)=>p+s[g][0]+s[g][1]),c=i.reduce((p,g)=>p*g,1),l=j(u),m=new l(c),y=B(u);e==="constant"&&(y?m.fill(BigInt(n)):m.fill(n));let d=new Array(a).fill(0);for(let p=0;p<c;p++){let g=!0,h=[];for(let A=0;A<a;A++){let[S]=s[A],x=d[A]-S;if(x<0||x>=o[A]){g=!1;break}h.push(x)}let b;if(g)b=r.get(h);else if(e==="constant"){for(let A=a-1;A>=0&&(d[A]++,!(d[A]<i[A]));A--)d[A]=0;continue}else{let A=[];for(let S=0;S<a;S++){let[x]=s[S],w=d[S]-x,N=o[S];w<0?e==="edge"?w=0:e==="reflect"?(w=-w,w>=N&&(w=N-1)):e==="symmetric"?(w=-w-1,w>=N&&(w=N-1),w<0&&(w=0)):e==="wrap"&&(w=(w%N+N)%N):w>=N&&(e==="edge"?w=N-1:e==="reflect"?(w=2*N-w-2,w<0&&(w=0)):e==="symmetric"?(w=2*N-w-1,w<0&&(w=0)):e==="wrap"&&(w=w%N)),A.push(Math.max(0,Math.min(N-1,w)))}b=r.get(A)}y?m[p]=typeof b=="bigint"?b:BigInt(Number(b)):m[p]=Number(b);for(let A=a-1;A>=0&&(d[A]++,!(d[A]<i[A]));A--)d[A]=0}let f=D.fromData(m,i,u);return new v(f)}function Pf(r,t){let e=$t(r.storage,t);return v._fromStorage(e,r.base??r)}function jf(...r){let t=r.map(n=>n.storage);return Ra(t).map((n,o)=>v._fromStorage(n,r[o].base??r[o]))}function Lf(...r){return se(...r)}function Wf(r,t,e){return r.take(t,e)}function Gf(r,t,e){r.put(t,e)}function Zf(r,t,e=0){return r.iindex(t,e)}function Yf(r,t,e){return r.bindex(t,e)}function Hf(r,t,e){if(e!==void 0)throw new Error("copyto with where parameter is not yet implemented");let n=r.storage,o=r.shape,a=r.size,u=r.dtype;if(typeof t=="number"||typeof t=="bigint"){r.fill(t);return}let s=t.storage,i=t.shape,c=gr([i,o]);if(!c)throw new Error(`could not broadcast input array from shape (${i.join(",")}) into shape (${o.join(",")})`);if(c.length!==o.length||!c.every((m,y)=>m===o[y]))throw new Error(`could not broadcast input array from shape (${i.join(",")}) into shape (${o.join(",")})`);let l=$t(s,o);if(B(u))for(let m=0;m<a;m++){let y=l.iget(m),d=typeof y=="bigint"?y:BigInt(Math.round(Number(y)));n.iset(m,d)}else if(u==="bool")for(let m=0;m<a;m++){let y=l.iget(m);n.iset(m,y?1:0)}else for(let m=0;m<a;m++){let y=l.iget(m);n.iset(m,Number(y))}}function Jf(r,t){let e=t.map(o=>o.storage),n=Va(r.storage,e);return v._fromStorage(n)}function Xf(r,t,e=!1){return Pa(r.storage,t.storage,e)}function Qf(r,t){return po(r.storage,t.storage)}function Ui(r,t){return v._fromStorage(Ae(r.storage,t))}function $i(r,t){return v._fromStorage(be(r.storage,t))}function Ri(r,t,e=!1){return r.max(t,e)}function ki(r,t,e=!1){return r.min(t,e)}function Kf(r,t,e=!1){let n=he(r.storage,t,e);return typeof n=="number"||n instanceof O?n:v._fromStorage(n)}function rm(r,t,e=!1){let n=Se(r.storage,t,e);return typeof n=="number"?n:v._fromStorage(n)}function tm(r,t,e,n=!1){let o=xe(r.storage,t,e,n);return typeof o=="number"?o:v._fromStorage(o)}function em(r,t,e,n=!1){let o=Lr(r.storage,t,e,n);return typeof o=="number"?o:v._fromStorage(o)}function nm(r,t,e,n=!1){let o=e?e.storage:void 0,a=tt(r.storage,t,o,n);return typeof a=="number"||a instanceof O?a:v._fromStorage(a)}function om(r,t,e=!1){let n=vt(r.storage,t,e);return typeof n=="number"||n instanceof O?n:v._fromStorage(n)}function am(r,t,e=!1){let n=Tt(r.storage,t,e);return typeof n=="number"||n instanceof O?n:v._fromStorage(n)}function sm(r,t,e=!1){let n=Et(r.storage,t,e);return typeof n=="number"||n instanceof O?n:v._fromStorage(n)}function im(r,t,e=0,n=!1){let o=jr(r.storage,t,e,n);return typeof o=="number"?o:v._fromStorage(o)}function um(r,t,e=0,n=!1){let o=De(r.storage,t,e,n);return typeof o=="number"?o:v._fromStorage(o)}function cm(r,t,e=!1){let n=et(r.storage,t,e);return typeof n=="number"||n instanceof O?n:v._fromStorage(n)}function lm(r,t,e=!1){let n=nt(r.storage,t,e);return typeof n=="number"||n instanceof O?n:v._fromStorage(n)}function fm(r,t){let e=ot(r.storage,t);return typeof e=="number"?e:v._fromStorage(e)}function mm(r,t){let e=at(r.storage,t);return typeof e=="number"?e:v._fromStorage(e)}function pm(r,t){return v._fromStorage(Ne(r.storage,t))}function ym(r,t){return v._fromStorage(we(r.storage,t))}function dm(r,t,e=!1){let n=Ot(r.storage,t,e);return typeof n=="number"?n:v._fromStorage(n)}function gm(r){return r.cbrt()}function Am(r){return r.fabs()}function bm(r,t){return r.divmod(t)}function hm(r){return r.square()}function Sm(r,t){return r.remainder(t)}function xm(r,t){return r.heaviside(t)}function Dm(r,t){let e=typeof t=="number"?t:t.storage;return v._fromStorage(Xn(r.storage,e))}function Nm(r,t){let e=typeof t=="number"?t:t.storage;return v._fromStorage(Qn(r.storage,e))}function wm(r){let[t,e]=Kn(r.storage);return[v._fromStorage(t),v._fromStorage(e)]}function Im(r,t){let e=typeof t=="number"?t:t.storage;return v._fromStorage(ro(r.storage,e))}function zm(r,t){let e=typeof t=="number"?t:t.storage;return v._fromStorage(to(r.storage,e))}function _m(r,t){let e=typeof t=="number"?t:t.storage;return v._fromStorage(eo(r.storage,e))}function Fm(r){let[t,e]=no(r.storage);return[v._fromStorage(t),v._fromStorage(e)]}function Mm(r,t){return r.bitwise_and(t)}function Bm(r,t){return r.bitwise_or(t)}function vm(r,t){return r.bitwise_xor(t)}function Tm(r){return r.bitwise_not()}function Em(r){return r.invert()}function Om(r,t){return r.left_shift(t)}function Cm(r,t){return r.right_shift(t)}function Um(r,t=-1,e="big"){let n=ms(r.storage,t,e);return v._fromStorage(n)}function $m(r,t=-1,e=-1,n="big"){let o=ps(r.storage,t,e,n);return v._fromStorage(o)}function Rm(r,t){return r.logical_and(t)}function km(r,t){return r.logical_or(t)}function qm(r){return r.logical_not()}function Vm(r,t){return r.logical_xor(t)}function Pm(r){return r.isfinite()}function jm(r){return r.isinf()}function Lm(r){return r.isnan()}function Wm(r){return r.isnat()}function Gm(r,t){return r.copysign(t)}function Zm(r){return r.signbit()}function Ym(r,t){return r.nextafter(t)}function Hm(r){return r.spacing()}function Jm(r){return v._fromStorage(Fs(r.storage))}function Xm(r){return Ms(r.storage)}function Qm(r){return v._fromStorage(Bs(r.storage))}function Km(r){return vs(r.storage)}function rp(r){return v._fromStorage(Vs(r.storage))}function tp(r){return v._fromStorage(Ps(r.storage))}function qi(r){return v._fromStorage(js(r.storage))}function np(r,t=!1){return v._fromStorage(Ls(r.storage,t))}function op(r){return v._fromStorage(Ts(r.storage))}function ap(r){return v._fromStorage(Es(r.storage))}function sp(r){return Os(r.storage)}function ip(r,t=100){return v._fromStorage(Cs(r.storage,t))}function up(r){return Us(r)}function cp(r){return $s(r)}function lp(r,t){return Rs(r,t)}function fp(r,t){return ks(r,t)}function mp(r,...t){let e=t.map(o=>o.storage),n=Go(r,...e);return typeof n=="number"||typeof n=="bigint"||n instanceof O?n:v._fromStorage(n)}function yp(r,t,e){return v._fromStorage(ja(r.storage,t.storage,e))}function dp(r,t,e,n){La(r.storage,t.storage,e.storage,n)}function gp(r,t,e){let n=e instanceof v?e.storage:e;Wa(r.storage,t.storage,n)}function Ap(r,t,e){return v._fromStorage(Ue(r.storage,t.storage,e))}function bp(r,t,e=0){let n=r.map(a=>a.storage),o=t.map(a=>a.storage);return v._fromStorage(Ga(n,o,e))}function hp(r,t,e){Za(r.storage,t.storage,e.storage)}function Sp(r,t,e=!1){let n=typeof t=="number"?t:t.storage;es(r.storage,n,e)}function xp(r,t=2){return $e(r,t).map(n=>v._fromStorage(n))}function Dp(r){return Ya(r.storage).map(e=>v._fromStorage(e))}function Np(r,t=0,e){return Re(r,t,e).map(o=>v._fromStorage(o))}function wp(r,t=0){return Ha(r.storage,t).map(n=>v._fromStorage(n))}function Ip(r,t=0,e){return ke(r,t,e).map(o=>v._fromStorage(o))}function zp(r,t=0){return Ja(r.storage,t).map(n=>v._fromStorage(n))}function _p(r,t,e=0){return Xa(r,(a,u)=>t(a,u).storage,e).map(a=>v._fromStorage(a))}function Fp(r,t="int32"){return v._fromStorage(Qa(r,t))}function Mp(...r){return Ka(...r.map(e=>e.storage)).map(e=>v._fromStorage(e))}function Bp(r,t,e="raise"){let n=r.map(o=>o.storage);return v._fromStorage(rs(n,t,e))}function vp(r,t,e="C"){let n=r instanceof v?r.storage:r;return ts(n,t,e).map(a=>v._fromStorage(a))}function Tp(r,t=-1){return v._fromStorage(Ve(r.storage,t))}function Ep(r,t=-1){return v._fromStorage(Pe(r.storage,t))}function Op(r){let t=r.map(e=>e.storage);return v._fromStorage(Gs(t))}function Cp(r,t,e=-1){return v._fromStorage(je(r.storage,t,e))}function Up(r,t,e=-1){return v._fromStorage(Le(r.storage,t,e))}function $p(r){return v._fromStorage(Zs(r.storage))}function Rp(r){return qt(r.storage).map(e=>v._fromStorage(e))}function kp(r){return v._fromStorage(We(r.storage))}function qp(r){return v._fromStorage(Ys(r.storage))}function Vp(r,t,e){let n=Hs(r.storage,t?.storage,e?.storage);return Array.isArray(n)?n.map(o=>v._fromStorage(o)):v._fromStorage(n)}function Pp(r,t,e="left"){return v._fromStorage(Ge(r.storage,t.storage,e))}function jp(r,t){return v._fromStorage(Js(r.storage,t.storage))}function Lp(r,t){let e=Ze(r.storage,t);return typeof e=="number"?e:v._fromStorage(e)}function sn(r,t=0){return v._fromStorage(Ye(r.storage,t))}function Wp(r){return v._fromStorage(He(r.storage))}function Gp(r){return v._fromStorage(Je(r.storage))}function Zp(r){return v._fromStorage(Xe(r.storage))}function Yp(r){return v._fromStorage(Qe(r.storage))}function Hp(r){return v._fromStorage(Ke(r.storage))}function Jp(r,t=!1,e=!1,n=!1){let o=_r(r.storage,t,e,n);if(o instanceof D)return v._fromStorage(o);let a={values:v._fromStorage(o.values)};return o.indices&&(a.indices=v._fromStorage(o.indices)),o.inverse&&(a.inverse=v._fromStorage(o.inverse)),o.counts&&(a.counts=v._fromStorage(o.counts)),a}function Xp(r,t){return v._fromStorage(ri(r.storage,t.storage))}function Qp(r,t){return v._fromStorage(ti(r.storage,t.storage))}function Kp(r,t){return v._fromStorage(tn(r.storage,t.storage))}function ry(r,t){return v._fromStorage(ei(r.storage,t.storage))}function ty(r,t){return v._fromStorage(ni(r.storage,t.storage))}function ey(r,t){return v._fromStorage(oi(r.storage,t.storage))}function ny(r,t=1,e=-1){return v._fromStorage(en(r.storage,t,e))}function oy(r,t=null,e=null){return v._fromStorage(si(r.storage,t,e))}function ay(r,t=1,e=null){let n=ii(r.storage,t,e);return Array.isArray(n)?n.map(o=>v._fromStorage(o)):v._fromStorage(n)}function sy(r,t,e=-1,n=-1,o=-1){return v._fromStorage(ui(r.storage,t.storage,e,n,o))}function iy(r,t,e=0){return v._fromStorage(li(r.storage,t?.storage,e))}function uy(r,t,e=!1){return v._fromStorage(fi(r.storage,t.storage,e))}function cy(r,t=10,e,n=!1,o){let a=mi(r.storage,typeof t=="number"?t:t.storage,e,n,o?.storage);return[v._fromStorage(a.hist),v._fromStorage(a.bin_edges)]}function ly(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=pi(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 fy(r,t=10,e,n=!1,o){let a=yi(r.storage,t,e,n,o?.storage);return[v._fromStorage(a.hist),a.edges.map(u=>v._fromStorage(u))]}function my(r,t,e="full"){return v._fromStorage(nn(r.storage,t.storage,e))}function py(r,t,e="full"){return v._fromStorage(di(r.storage,t.storage,e))}function yy(r,t,e=!0,n=!1,o){return v._fromStorage(on(r.storage,t?.storage,e,n,o))}function dy(r,t,e=!0){return v._fromStorage(gi(r.storage,t?.storage,e))}var v,ep,pp,yt=W(()=>{"use strict";Tn();J();xr();X();_t();oo();yo();Ao();_e();ia();ha();Ba();$a();ns();ys();qs();Ws();Xs();Ks();ai();ci();Ai();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 zt(this._storage.dtype)}get nbytes(){return this.size*this.itemsize}fill(t){let e=this._storage.dtype,n=this.size;if(B(e)){let o=typeof t=="bigint"?t:BigInt(Math.round(Number(t)));for(let a=0;a<n;a++)this._storage.iset(a,o)}else if(e==="bool"){let o=t?1:0;for(let a=0;a<n;a++)this._storage.iset(a,o)}else{let o=Number(t);for(let a=0;a<n;a++)this._storage.iset(a,o)}}*[Symbol.iterator](){if(this.ndim===0)yield this._storage.iget(0);else if(this.ndim===1)for(let t=0;t<this.shape[0];t++)yield this._storage.iget(t);else for(let t=0;t<this.shape[0];t++)yield this.slice(String(t))}get(t){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let e=t.map((n,o)=>{let a=n;if(a<0&&(a=this.shape[o]+a),a<0||a>=this.shape[o])throw new Error(`Index ${n} is out of bounds for axis ${o} with size ${this.shape[o]}`);return a});return this._storage.get(...e)}set(t,e){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let n=t.map((a,u)=>{let s=a;if(s<0&&(s=this.shape[u]+s),s<0||s>=this.shape[u])throw new Error(`Index ${a} is out of bounds for axis ${u} with size ${this.shape[u]}`);return s}),o=this.dtype;if(M(o))this._storage.set(n,e);else if(B(o)){let a=e instanceof O?e.re:Number(e),u=typeof e=="bigint"?e:BigInt(Math.round(a));this._storage.set(n,u)}else if(o==="bool"){let u=(e instanceof O?e.re:Number(e))?1:0;this._storage.set(n,u)}else{let a=e instanceof O?e.re:Number(e);this._storage.set(n,a)}}copy(){return new r(this._storage.copy())}astype(t,e=!0){let n=this.dtype;if(n===t&&!e)return this;if(n===t&&e)return this.copy();let o=Array.from(this.shape),a=this.size,u=j(t);if(!u)throw new Error(`Cannot convert to dtype ${t}`);let s=new u(a),i=this.data;if(B(n)&&!B(t)){let l=i;if(t==="bool")for(let m=0;m<a;m++)s[m]=l[m]!==BigInt(0)?1:0;else for(let m=0;m<a;m++)s[m]=Number(l[m])}else if(!B(n)&&B(t)){let l=i;for(let m=0;m<a;m++)s[m]=BigInt(Math.round(Number(l[m])))}else if(t==="bool"){let l=i;for(let m=0;m<a;m++)s[m]=l[m]!==0?1:0}else if(n==="bool"&&!B(t)){let l=i;for(let m=0;m<a;m++)s[m]=l[m]}else if(!B(n)&&!B(t)){let l=i;for(let m=0;m<a;m++)s[m]=l[m]}else{let l=i;for(let m=0;m<a;m++)s[m]=l[m]}let c=D.fromData(s,o,t);return new r(c)}add(t){let e=typeof t=="number"?t:t._storage,n=Un(this._storage,e);return r._fromStorage(n)}subtract(t){let e=typeof t=="number"?t:t._storage,n=$n(this._storage,e);return r._fromStorage(n)}multiply(t){let e=typeof t=="number"?t:t._storage,n=Rn(this._storage,e);return r._fromStorage(n)}divide(t){let e=typeof t=="number"?t:t._storage,n=kn(this._storage,e);return r._fromStorage(n)}mod(t){let e=typeof t=="number"?t:t._storage,n=Mt(this._storage,e);return r._fromStorage(n)}floor_divide(t){let e=typeof t=="number"?t:t._storage,n=ue(this._storage,e);return r._fromStorage(n)}positive(){let t=jn(this._storage);return r._fromStorage(t)}reciprocal(){let t=Ln(this._storage);return r._fromStorage(t)}sqrt(){let t=ua(this._storage);return r._fromStorage(t)}power(t){let e=typeof t=="number"?t:t._storage,n=ca(this._storage,e);return r._fromStorage(n)}exp(){let t=la(this._storage);return r._fromStorage(t)}exp2(){let t=fa(this._storage);return r._fromStorage(t)}expm1(){let t=ma(this._storage);return r._fromStorage(t)}log(){let t=pa(this._storage);return r._fromStorage(t)}log2(){let t=ya(this._storage);return r._fromStorage(t)}log10(){let t=da(this._storage);return r._fromStorage(t)}log1p(){let t=ga(this._storage);return r._fromStorage(t)}logaddexp(t){let e=typeof t=="number"?t:t._storage,n=Aa(this._storage,e);return r._fromStorage(n)}logaddexp2(t){let e=typeof t=="number"?t:t._storage,n=ba(this._storage,e);return r._fromStorage(n)}absolute(){let t=qn(this._storage);return r._fromStorage(t)}negative(){let t=Vn(this._storage);return r._fromStorage(t)}sign(){let t=Pn(this._storage);return r._fromStorage(t)}around(t=0){let e=Ye(this._storage,t);return r._fromStorage(e)}round(t=0){return this.around(t)}ceil(){let t=He(this._storage);return r._fromStorage(t)}fix(){let t=Je(this._storage);return r._fromStorage(t)}floor(){let t=Xe(this._storage);return r._fromStorage(t)}rint(){let t=Qe(this._storage);return r._fromStorage(t)}trunc(){let t=Ke(this._storage);return r._fromStorage(t)}sin(){let t=Sa(this._storage);return r._fromStorage(t)}cos(){let t=xa(this._storage);return r._fromStorage(t)}tan(){let t=Da(this._storage);return r._fromStorage(t)}arcsin(){let t=Na(this._storage);return r._fromStorage(t)}arccos(){let t=wa(this._storage);return r._fromStorage(t)}arctan(){let t=Ia(this._storage);return r._fromStorage(t)}arctan2(t){let e=typeof t=="number"?t:t._storage,n=za(this._storage,e);return r._fromStorage(n)}hypot(t){let e=typeof t=="number"?t:t._storage,n=_a(this._storage,e);return r._fromStorage(n)}degrees(){let t=Fa(this._storage);return r._fromStorage(t)}radians(){let t=Ma(this._storage);return r._fromStorage(t)}sinh(){let t=va(this._storage);return r._fromStorage(t)}cosh(){let t=Ta(this._storage);return r._fromStorage(t)}tanh(){let t=Ea(this._storage);return r._fromStorage(t)}arcsinh(){let t=Oa(this._storage);return r._fromStorage(t)}arccosh(){let t=Ca(this._storage);return r._fromStorage(t)}arctanh(){let t=Ua(this._storage);return r._fromStorage(t)}greater(t){let e=typeof t=="number"?t:t._storage,n=so(this._storage,e);return r._fromStorage(n)}greater_equal(t){let e=typeof t=="number"?t:t._storage,n=io(this._storage,e);return r._fromStorage(n)}less(t){let e=typeof t=="number"?t:t._storage,n=uo(this._storage,e);return r._fromStorage(n)}less_equal(t){let e=typeof t=="number"?t:t._storage,n=co(this._storage,e);return r._fromStorage(n)}equal(t){let e=typeof t=="number"?t:t._storage,n=lo(this._storage,e);return r._fromStorage(n)}not_equal(t){let e=typeof t=="number"?t:t._storage,n=fo(this._storage,e);return r._fromStorage(n)}isclose(t,e=1e-5,n=1e-8){let o=typeof t=="number"?t:t._storage,a=ce(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 mo(this._storage,o,e,n)}bitwise_and(t){let e=typeof t=="number"?t:t._storage,n=ss(this._storage,e);return r._fromStorage(n)}bitwise_or(t){let e=typeof t=="number"?t:t._storage,n=is(this._storage,e);return r._fromStorage(n)}bitwise_xor(t){let e=typeof t=="number"?t:t._storage,n=us(this._storage,e);return r._fromStorage(n)}bitwise_not(){let t=qe(this._storage);return r._fromStorage(t)}invert(){let t=cs(this._storage);return r._fromStorage(t)}left_shift(t){let e=typeof t=="number"?t:t._storage,n=ls(this._storage,e);return r._fromStorage(n)}right_shift(t){let e=typeof t=="number"?t:t._storage,n=fs(this._storage,e);return r._fromStorage(n)}logical_and(t){let e=typeof t=="number"?t:t._storage,n=gs(this._storage,e);return r._fromStorage(n)}logical_or(t){let e=typeof t=="number"?t:t._storage,n=As(this._storage,e);return r._fromStorage(n)}logical_not(){let t=bs(this._storage);return r._fromStorage(t)}logical_xor(t){let e=typeof t=="number"?t:t._storage,n=hs(this._storage,e);return r._fromStorage(n)}isfinite(){let t=Ss(this._storage);return r._fromStorage(t)}isinf(){let t=xs(this._storage);return r._fromStorage(t)}isnan(){let t=Ds(this._storage);return r._fromStorage(t)}isnat(){let t=Ns(this._storage);return r._fromStorage(t)}copysign(t){let e=typeof t=="number"?t:t._storage,n=ws(this._storage,e);return r._fromStorage(n)}signbit(){let t=Is(this._storage);return r._fromStorage(t)}nextafter(t){let e=typeof t=="number"?t:t._storage,n=zs(this._storage,e);return r._fromStorage(n)}spacing(){let t=_s(this._storage);return r._fromStorage(t)}sum(t,e=!1){let n=rt(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}mean(t,e=!1){let n=Bt(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}max(t,e=!1){let n=Vr(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}min(t,e=!1){let n=Pr(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}prod(t,e=!1){let n=fe(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}argmin(t){let e=me(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}argmax(t){let e=pe(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}var(t,e=0,n=!1){let o=ye(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}std(t,e=0,n=!1){let o=go(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}all(t,e=!1){let n=de(this._storage,t,e);return typeof n=="boolean"?n:r._fromStorage(n)}any(t,e=!1){let n=ge(this._storage,t,e);return typeof n=="boolean"?n:r._fromStorage(n)}cumsum(t){return r._fromStorage(Ae(this._storage,t))}cumprod(t){return r._fromStorage(be(this._storage,t))}ptp(t,e=!1){let n=he(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}median(t,e=!1){let n=Se(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}percentile(t,e,n=!1){let o=xe(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}quantile(t,e,n=!1){let o=Lr(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}average(t,e){let n=tt(this._storage,e,t?.storage);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}nansum(t,e=!1){let n=vt(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}nanprod(t,e=!1){let n=Tt(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}nanmean(t,e=!1){let n=Et(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}nanvar(t,e=0,n=!1){let o=jr(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}nanstd(t,e=0,n=!1){let o=De(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}nanmin(t,e=!1){let n=et(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}nanmax(t,e=!1){let n=nt(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}nanargmin(t){let e=ot(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}nanargmax(t){let e=at(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}nancumsum(t){return r._fromStorage(Ne(this._storage,t))}nancumprod(t){return r._fromStorage(we(this._storage,t))}nanmedian(t,e=!1){let n=Ot(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}sort(t=-1){return r._fromStorage(Ve(this._storage,t))}argsort(t=-1){return r._fromStorage(Pe(this._storage,t))}partition(t,e=-1){return r._fromStorage(je(this._storage,t,e))}argpartition(t,e=-1){return r._fromStorage(Le(this._storage,t,e))}nonzero(){return qt(this._storage).map(e=>r._fromStorage(e))}argwhere(){return r._fromStorage(We(this._storage))}searchsorted(t,e="left"){return r._fromStorage(Ge(this._storage,t._storage,e))}diff(t=1,e=-1){return r._fromStorage(en(this._storage,t,e))}reshape(...t){let e=t.length===1&&Array.isArray(t[0])?t[0]:t,n=ir(this._storage,e),a=n.data===this.data?this._base??this:void 0;return r._fromStorage(n,a)}flatten(){let t=Ct(this._storage);return r._fromStorage(t)}ravel(){let t=Wr(this._storage),n=t.data===this.data?this._base??this:void 0;return r._fromStorage(t,n)}transpose(t){let e=it(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}squeeze(t){let e=bo(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}expand_dims(t){let e=st(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}swapaxes(t,e){let n=ho(this._storage,t,e),o=this._base??this;return r._fromStorage(n,o)}moveaxis(t,e){let n=Ie(this._storage,t,e),o=this._base??this;return r._fromStorage(n,o)}repeat(t,e){let n=Fo(this._storage,t,e);return r._fromStorage(n)}take(t,e){let n=ka(this._storage,t,e);return r._fromStorage(n)}put(t,e){let n=e instanceof r?e._storage:e;qa(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(Ue(t._storage,this._storage,e))}matmul(t){let e=Ar(this._storage,t._storage);return r._fromStorage(e)}dot(t){let e=Me(this._storage,t._storage);return typeof e=="number"||typeof e=="bigint"||e instanceof O?e:r._fromStorage(e)}trace(){return Po(this._storage)}inner(t){let e=jo(this._storage,t._storage);return typeof e=="number"||typeof e=="bigint"||e instanceof O?e:r._fromStorage(e)}outer(t){let e=Be(this._storage,t._storage);return r._fromStorage(e)}tensordot(t,e=2){let n=Lo(this._storage,t._storage,e);return typeof n=="number"||typeof n=="bigint"||n instanceof O?n:r._fromStorage(n)}cbrt(){let t=Wn(this._storage);return r._fromStorage(t)}fabs(){let t=Gn(this._storage);return r._fromStorage(t)}divmod(t){let e=typeof t=="number"?t:t._storage,[n,o]=Zn(this._storage,e);return[r._fromStorage(n),r._fromStorage(o)]}square(){let t=Yn(this._storage);return r._fromStorage(t)}remainder(t){let e=typeof t=="number"?t:t._storage,n=Hn(this._storage,e);return r._fromStorage(n)}heaviside(t){let e=typeof t=="number"?t:t._storage,n=Jn(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=Bn(i);return vn(l,this.shape[c])});for(;e.length<this.ndim;)e.push({start:0,stop:this.shape[e.length],step:1,isIndex:!1});let n=[],o=[],a=this._storage.offset;for(let i=0;i<e.length;i++){let c=e[i],l=this._storage.strides[i];if(a+=c.start*l,!c.isIndex){let m;c.step>0?m=Math.max(0,Math.ceil((c.stop-c.start)/c.step)):m=Math.max(0,Math.ceil((c.start-c.stop)/Math.abs(c.step))),n.push(m),o.push(l*c.step)}}let u=D.fromData(this._storage.data,n,this._storage.dtype,o,a),s=this._base??this;return new r(u,s)}row(t){if(this.ndim<2)throw new Error("row() requires at least 2 dimensions");return this.slice(String(t),":")}col(t){if(this.ndim<2)throw new Error("col() requires at least 2 dimensions");return this.slice(":",String(t))}rows(t,e){if(this.ndim<2)throw new Error("rows() requires at least 2 dimensions");return this.slice(`${t}:${e}`,":")}cols(t,e){if(this.ndim<2)throw new Error("cols() requires at least 2 dimensions");return this.slice(":",`${t}:${e}`)}toString(){return`NDArray(shape=${JSON.stringify(this.shape)}, dtype=${this.dtype})`}toArray(){if(this.ndim===0)return this._storage.iget(0);let t=this.shape,e=t.length,n=(o,a)=>{if(a===e)return this._storage.get(...o);let u=[];for(let s=0;s<t[a];s++)o[a]=s,u.push(n(o,a+1));return u};return n(new Array(e),0)}};ep=qi;pp={cross:(r,t,e=-1,n=-1,o=-1,a)=>{let u=Yo(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=Ho(r.storage,t,e,n);return typeof o=="number"?o:v._fromStorage(o)},vector_norm:(r,t=2,e,n=!1)=>{let o=Zr(r.storage,t,e,n);return typeof o=="number"?o:v._fromStorage(o)},matrix_norm:(r,t="fro",e=!1)=>{let n=Ur(r.storage,t,e);return typeof n=="number"?n:v._fromStorage(n)},qr:(r,t="reduced")=>{let e=ve(r.storage,t);return e instanceof D?v._fromStorage(e):"q"in e&&"r"in e?{q:v._fromStorage(e.q),r:v._fromStorage(e.r)}:{h:v._fromStorage(e.h),tau:v._fromStorage(e.tau)}},cholesky:(r,t=!1)=>v._fromStorage(Jo(r.storage,t)),svd:(r,t=!0,e=!0)=>{let n=Xo(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=>Qo(r.storage),inv:r=>v._fromStorage(Ut(r.storage)),solve:(r,t)=>v._fromStorage(Ko(r.storage,t.storage)),lstsq:(r,t,e=null)=>{let n=ra(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)=>ta(r.storage,t),matrix_rank:(r,t)=>ea(r.storage,t),matrix_power:(r,t)=>v._fromStorage(na(r.storage,t)),pinv:(r,t=1e-15)=>v._fromStorage(oa(r.storage,t)),eig:r=>{let t=Oe(r.storage);return{w:v._fromStorage(t.w),v:v._fromStorage(t.v)}},eigh:(r,t="L")=>{let e=Ce(r.storage,t);return{w:v._fromStorage(e.w),v:v._fromStorage(e.v)}},eigvals:r=>v._fromStorage(aa(r.storage)),eigvalsh:(r,t="L")=>v._fromStorage(sa(r.storage,t))}});function cn(){let r=new ArrayBuffer(2);return new DataView(r).setInt16(0,256,!0),new Int16Array(r)[0]===256}function Pi(r){if(r.startsWith("[")||r.startsWith("("))throw new Mr(`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 Vi)throw new Mr(`Unsupported dtype: ${Vi[n]} (${r}). Use the 'force' parameter to skip arrays with unsupported dtypes.`);let o=gy[e];if(!o)throw new Mr(`Unknown or unsupported dtype descriptor: ${r}. Supported types: ${un.join(", ")}. Use the 'force' parameter to skip arrays with unsupported dtypes.`);let a=cn(),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 dt,un,gy,Pt,Vi,Mr,lr,gt=W(()=>{"use strict";dt=new Uint8Array([147,78,85,77,80,89]),un=["float64","float32","complex128","complex64","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"];gy={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"},Pt={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"},Vi={S:"byte strings",U:"Unicode strings",O:"Python objects",V:"structured arrays (void)",M:"datetime64",m:"timedelta64"};Mr=class extends Error{constructor(t){super(t),this.name="UnsupportedDTypeError"}},lr=class extends Error{constructor(t){super(t),this.name="InvalidNpyError"}}});function $r(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=ln(t);return fn(t,e)}function ln(r){if(r.length<10)throw new lr("File too small to be a valid NPY file");for(let c=0;c<dt.length;c++)if(r[c]!==dt[c])throw new lr("Invalid NPY magic number");let t=r[6],e=r[7];if(t!==1&&t!==2&&t!==3)throw new lr(`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 lr("File truncated: header extends beyond file");let u=r.slice(o,a),s=new TextDecoder("utf-8").decode(u).trim(),i=Ay(s);return{version:{major:t,minor:e},header:i,dataOffset:a}}function fn(r,t){let{header:e,dataOffset:n}=t,{dtype:o,needsByteSwap:a,itemsize:u}=Pi(e.descr),s=e.shape.reduce((p,g)=>p*g,1),i=s*u,c=r.length-n;if(c<i)throw new lr(`File truncated: expected ${i} bytes of data, got ${c}`);let l=new ArrayBuffer(i);new Uint8Array(l).set(r.subarray(n,n+i));let y=by(l,o,s,a,u),d=e.shape,f;if(e.fortran_order&&d.length>1){let p=[...d].reverse(),g=D.fromData(y,p,o);f=hy(g,p),d=e.shape}else f=D.fromData(y,[...d],o);return new v(f)}function Ay(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 lr(`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 lr(`Invalid shape value: ${i}`);return c}),{descr:o,fortran_order:a,shape:s}}function by(r,t,e,n,o){let a=j(t);if(!a)throw new lr(`Cannot create array for dtype: ${t}`);let u=M(t),s=u?e*2:e;if(!n)return new a(r,0,s);let i=new Uint8Array(r),c=new Uint8Array(r.byteLength);if(u){let l=o/2;for(let m=0;m<e*2;m++){let y=m*l;for(let d=0;d<l;d++)c[y+d]=i[y+l-1-d]}}else for(let l=0;l<e;l++){let m=l*o;for(let y=0;y<o;y++)c[m+y]=i[m+o-1-y]}return new a(c.buffer,0,s)}function hy(r,t){let e=t.length,n=r.size,o=r.dtype,a=j(o);if(!a)throw new lr(`Cannot create array for dtype: ${o}`);let u=new a(n),s=[...t].reverse(),i=ji(t),c=ji(s),l=new Array(e).fill(0);for(let m=0;m<n;m++){let y=m;for(let f=0;f<e;f++){let p=i[f];l[f]=Math.floor(y/p),y=y%p}let d=0;for(let f=0;f<e;f++)d+=l[e-1-f]*c[f];B(o),u[d]=r.iget(m)}return D.fromData(u,s,o)}function ji(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 jt=W(()=>{"use strict";yt();X();J();gt()});function Er(r){let t=r.shape,e=r.dtype,n=Pt[e],o=t.length===0?"()":t.length===1?`(${t[0]},)`:`(${t.join(", ")})`,a=`{'descr': '${n}', 'fortran_order': False, 'shape': ${o}, }`,u=12,i=(64-(u+a.length+1)%64)%64;a=a+" ".repeat(i)+`
|
|
2
|
-
`;let c=new TextEncoder().encode(a),l=c.length,m=r.size,y=zt(e),d=m*y,f=u+l+d,p=new Uint8Array(f);p.set(dt,0),p[6]=3,p[7]=0,p[8]=l&255,p[9]=l>>8&255,p[10]=l>>16&255,p[11]=l>>24&255,p.set(c,u);let g=u+l;return Sy(r,p.subarray(g),y),p}function Sy(r,t,e){let n=r.dtype,o=r.size,a=cn(),u=B(n),s=M(n),i=r._storage;if(i.isCContiguous&&i.offset===0&&a){let l=i.data,m=new Uint8Array(l.buffer,l.byteOffset,o*e);t.set(m)}else{let l=new DataView(t.buffer,t.byteOffset,t.byteLength);for(let m=0;m<o;m++){let y=i.iget(m),d=m*e;u?xy(l,d,y,n==="uint64"):s?Dy(l,d,y,n):Ny(l,d,y,n)}}}function xy(r,t,e,n){n?r.setBigUint64(t,e,!0):r.setBigInt64(t,e,!0)}function Dy(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 Ny(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 Lt=W(()=>{"use strict";J();gt()});function mn(r){let t=4294967295;for(let e=0;e<r.length;e++)t=wy[(t^r[e])&255]^t>>>8;return(t^4294967295)>>>0}var wy,pn=W(()=>{"use strict";wy=(()=>{let r=new Uint32Array(256);for(let t=0;t<256;t++){let e=t;for(let n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;r[t]=e}return r})()});async function Li(r){let t=Gi(r),e=new Map;for(let n of t){let o=await Iy(n);e.set(n.name,o)}return e}function Wi(r){let t=Gi(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 Gi(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=new DataView(t.buffer,t.byteOffset,t.byteLength),n=[],o=-1;for(let c=t.length-22;c>=0;c--)if(e.getUint32(c,!0)===101010256){o=c;break}if(o===-1)throw new Error("Invalid ZIP file: end of central directory not found");let a=e.getUint32(o+16,!0),u=e.getUint16(o+10,!0),s=[],i=a;for(let c=0;c<u&&e.getUint32(i,!0)===33639248;c++){let m=e.getUint16(i+10,!0),y=e.getUint32(i+16,!0),d=e.getUint32(i+20,!0),f=e.getUint32(i+24,!0),p=e.getUint16(i+28,!0),g=e.getUint16(i+30,!0),h=e.getUint16(i+32,!0),b=e.getUint32(i+42,!0),A=t.slice(i+46,i+46+p),S=new TextDecoder("utf-8").decode(A);s.push({name:S,compressionMethod:m,crc32:y,compressedSize:d,uncompressedSize:f,localHeaderOffset:b}),i=i+46+p+g+h}for(let c of s){let l=c.localHeaderOffset;if(e.getUint32(l,!0)!==67324752)throw new Error(`Invalid local file header at offset ${l}`);let y=e.getUint16(l+26,!0),d=e.getUint16(l+28,!0),f=l+30+y+d,p=t.slice(f,f+c.compressedSize);n.push({name:c.name,compressedData:p,compressionMethod:c.compressionMethod,crc32:c.crc32,compressedSize:c.compressedSize,uncompressedSize:c.uncompressedSize})}return n}async function Iy(r){if(r.compressionMethod===0)return r.compressedData;if(r.compressionMethod===8)return await zy(r.compressedData);throw new Error(`Unsupported compression method: ${r.compressionMethod}`)}async function zy(r){if(typeof DecompressionStream>"u")throw new Error("DecompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let t=new DecompressionStream("deflate-raw"),e=new Uint8Array(r.length);e.set(r);let n=t.writable.getWriter();n.write(e),n.close();let o=t.readable.getReader(),a=[];for(;;){let{done:c,value:l}=await o.read();if(c)break;a.push(l)}let u=a.reduce((c,l)=>c+l.length,0),s=new Uint8Array(u),i=0;for(let c of a)s.set(c,i),i+=c.length;return s}var Zi=W(()=>{"use strict";pn()});var Hi={};Fn(Hi,{loadNpz:()=>gn,loadNpzSync:()=>An,parseNpz:()=>Xr,parseNpzSync:()=>Wt});async function Xr(r,t={}){let e=t.force??!1,n=await Li(r);return Yi(n,e)}function Wt(r,t={}){let e=t.force??!1,n=Wi(r);return Yi(n,e)}function Yi(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=$r(u);e.set(s,i)}catch(i){if(i instanceof Mr&&t)n.push(s),o.set(s,i.message);else throw i}}return{arrays:e,skipped:n,errors:o}}async function gn(r,t={}){let e=await Xr(r,t);return Object.fromEntries(e.arrays)}function An(r,t={}){let e=Wt(r,t);return Object.fromEntries(e.arrays)}var Gt=W(()=>{"use strict";jt();gt();Zi()});async function Ji(r,t={}){let e=t.compress??!1,n=[];for(let[y,d]of r){let f=mn(d),p,g;e?(p=await Fy(d),p.length<d.length?g=8:(p=d,g=0)):(p=d,g=0),n.push({name:y,data:d,compressedData:p,crc:f,compressionMethod:g,offset:0})}let o=0;for(let y of n){let d=new TextEncoder().encode(y.name);o+=30+d.length+y.compressedData.length}let a=0;for(let y of n){let d=new TextEncoder().encode(y.name);a+=46+d.length}let s=o+a+22,i=new Uint8Array(s),c=new DataView(i.buffer),l=0;for(let y of n)y.offset=l,l=Qi(i,c,l,y);let m=l;for(let y of n)l=Ki(i,c,l,y);return ru(c,l,n.length,a,m),i}function Xi(r){let t=[];for(let[l,m]of r){let y=mn(m);t.push({name:l,data:m,compressedData:m,crc:y,compressionMethod:0,offset:0})}let e=0;for(let l of t){let m=new TextEncoder().encode(l.name);e+=30+m.length+l.compressedData.length}let n=0;for(let l of t){let m=new TextEncoder().encode(l.name);n+=46+m.length}let a=e+n+22,u=new Uint8Array(a),s=new DataView(u.buffer),i=0;for(let l of t)l.offset=i,i=Qi(u,s,i,l);let c=i;for(let l of t)i=Ki(u,s,i,l);return ru(s,i,t.length,n,c),u}function Qi(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 Ki(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 ru(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 Fy(r){if(typeof CompressionStream>"u")throw new Error("CompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let t=new CompressionStream("deflate-raw"),e=new Uint8Array(r.length);e.set(r);let n=t.writable.getWriter();n.write(e),n.close();let o=t.readable.getReader(),a=[];for(;;){let{done:c,value:l}=await o.read();if(c)break;a.push(l)}let u=a.reduce((c,l)=>c+l.length,0),s=new Uint8Array(u),i=0;for(let c of a)s.set(c,i),i+=c.length;return s}var tu=W(()=>{"use strict";pn()});var nu={};Fn(nu,{serializeNpz:()=>bt,serializeNpzSync:()=>bn});async function bt(r,t={}){let e=eu(r);return Ji(e,{compress:t.compress??!1})}function bn(r){let t=eu(r);return Xi(t)}function eu(r){let t=new Map;if(Array.isArray(r)){for(let n=0;n<r.length;n++){let o=r[n],a=Er(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=Er(o),u=n.endsWith(".npy")?n:`${n}.npy`;t.set(u,a)}return t}var Zt=W(()=>{"use strict";Lt();tu()});jt();Lt();Gt();Zt();import{readFileSync as wt,writeFileSync as zn}from"node:fs";import{readFile as It,writeFile as _n}from"node:fs/promises";yt();function Qr(r,t={}){let{delimiter:e,comments:n="#",skiprows:o=0,usecols:a,max_rows:u,dtype:s="float64",missing_values:i,filling_values:c}=t,l=r.split(/\r?\n/);if(o>0&&(l=l.slice(o)),l=l.filter(p=>{let g=p.trim();return!(g===""||n&&g.startsWith(n))}),u!==void 0&&u>0&&(l=l.slice(0,u)),l.length===0)return tr([],s);let m=[],y=new Set(i?Array.isArray(i)?i:[i]:[]),d=c!==void 0?c:s.includes("int")||s==="bool"?0:NaN;for(let p of l){let g;e===void 0?g=p.trim().split(/\s+/):g=p.split(e),a!==void 0&&(g=(Array.isArray(a)?a:[a]).map(A=>(A<0&&(A=g.length+A),g[A]??"")));let h=g.map(b=>{let A=b.trim();if(y.has(A)||A==="")return d;let S=parseFloat(A);return isNaN(S)?d:S});m.push(h)}let f=m[0]?.length??0;for(let p=1;p<m.length;p++)if(m[p].length!==f)throw new Error(`Inconsistent number of columns: row 0 has ${f} columns, row ${p} has ${m[p].length} columns`);return f===1?tr(m.map(p=>p[0]),s):tr(m,s)}function ht(r,t={}){let e={...t,missing_values:t.missing_values??["","nan","NaN","NA","N/A","-"],filling_values:t.filling_values??NaN};return Qr(r,e)}function St(r,t,e="float64"){let n=typeof t=="string"?new RegExp(t,"gm"):new RegExp(t.source,"gm"),o=[],a;for(;(a=n.exec(r))!==null;)if(a.length>1){let u=a.slice(1).map(s=>{let i=parseFloat(s);return isNaN(i)?0:i});o.push(u)}return o.length===0?tr([],e):o[0].length===1?tr(o.map(u=>u[0]),e):tr(o,e)}function ou(r,t){let e=typeof r=="bigint"?Number(r):r,n=t.match(/^%([+-]?)(\d*)(?:\.(\d+))?([dfeEgGs])$/);if(!n)return String(e);let[,o,a,u,s]=n,i=u!==void 0?parseInt(u,10):void 0,c;switch(s){case"d":c=Math.round(e).toString();break;case"f":c=e.toFixed(i??6);break;case"e":c=e.toExponential(i??6).replace(/e([+-])(\d)$/,"e$10$2");break;case"E":c=e.toExponential(i??6).toUpperCase().replace(/E([+-])(\d)$/,"E$10$2");break;case"g":case"G":{let l=i??6,m=Math.floor(Math.log10(Math.abs(e)));m>=-4&&m<l?(c=e.toPrecision(l),c.includes(".")&&(c=c.replace(/\.?0+$/,""))):c=e.toExponential(l-1),s==="G"&&(c=c.toUpperCase());break}case"s":c=String(e);break;default:c=String(e)}if(a){let l=parseInt(a,10);if(c.length<l){let m=" ".repeat(l-c.length);o==="-"?c=c+m:c=m+c}}return o==="+"&&e>=0&&!c.startsWith("-")&&(c="+"+c),c}function xt(r,t={}){let{fmt:e="%.18e",delimiter:n=" ",newline:o=`
|
|
3
|
-
`,header:a,footer:u,comments:s="# "}=t;if(r.ndim>2)throw new Error("savetxt: array must be 1D or 2D");let i=[];if(a!==void 0){let l=a.split(/\r?\n/);for(let m of l)m.startsWith(s.trimEnd())?i.push(m):i.push(s+m)}let c=r.toArray();if(r.ndim===1)for(let l of c)i.push(ou(l,e));else for(let l of c){let m=l.map(y=>ou(y,e));i.push(m.join(n))}if(u!==void 0){let l=u.split(/\r?\n/);for(let m of l)m.startsWith(s.trimEnd())?i.push(m):i.push(s+m)}return i.join(o)+o}xr();yt();jt();Lt();gt();Gt();Zt();X();J();var hr=624,Yt=397,My=2567483615,hn=2147483648,Sn=2147483647,Sr={mt:new Uint32Array(hr),mti:hr+1};function iu(r){let t=Sr.mt;t[0]=r>>>0;for(let e=1;e<hr;e++){let n=t[e-1]^t[e-1]>>>30;t[e]=Math.imul(1812433253,n)+e>>>0}Sr.mti=hr}function au(){let r=Sr.mt,t,e=[0,My];if(Sr.mti>=hr){let n;for(Sr.mti===hr+1&&iu(5489),n=0;n<hr-Yt;n++)t=r[n]&hn|r[n+1]&Sn,r[n]=r[n+Yt]^t>>>1^e[t&1];for(;n<hr-1;n++)t=r[n]&hn|r[n+1]&Sn,r[n]=r[n+(Yt-hr)]^t>>>1^e[t&1];t=r[hr-1]&hn|r[0]&Sn,r[hr-1]=r[Yt-1]^t>>>1^e[t&1],Sr.mti=0}return t=r[Sr.mti++],t^=t>>>11,t^=t<<7&2636928640,t^=t<<15&4022730752,t^=t>>>18,t>>>0}function Y(){let r=au()>>>5,t=au()>>>6;return(r*67108864+t)/9007199254740992}var By=2468251765,vy=1492356589,Ty=1135663077,Ey=2337405405,Oy=3389127133,Cy=1232336661,In=16,Ht=4;function cr(r){return r>>>0}function xn(r,t){return r=cr(cr(r)^t.val),t.val=cr(Math.imul(t.val,By)),r=cr(Math.imul(r,t.val)),r=cr(r^r>>>In),r}function Uy(r,t){let e=cr(cr(Math.imul(Oy,cr(r)))-cr(Math.imul(Cy,cr(t))));return e=cr(e^e>>>In),e}function $y(r){let t=[0,0,0,0],e=[r>>>0],n={val:Ty};for(let o=0;o<Ht;o++)o<e.length?t[o]=xn(e[o],n):t[o]=xn(0,n);for(let o=0;o<Ht;o++)for(let a=0;a<Ht;a++)if(o!==a){let u=xn(t[o],n);t[a]=Uy(t[a],u)}return t}function Ry(r,t){let e=[],n=Ey;for(let o=0;o<t;o++){let a=r[o%Ht],u=cr(a^n);n=cr(Math.imul(n,vy)),u=cr(Math.imul(u,n)),u=cr(u^u>>>In),e.push(u)}return e}var ky=BigInt("4865540595714422341"),qy=BigInt("2549297995355413924"),Vy=qy<<BigInt(64)|ky,Dn=BigInt("0xffffffffffffffff"),Nn=(BigInt(1)<<BigInt(128))-BigInt(1);function Py(r){let t=r>>BigInt(64),e=r&Dn,n=(t^e)&Dn,o=Number(r>>BigInt(122));return(n>>BigInt(o)|n<<BigInt(64-o))&Dn}function wn(r,t){return r*Vy+t&Nn}function su(r){let t=$y(r),e=Ry(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 jy(r){return r.state=wn(r.state,r.inc),Py(r.state)}function Ly(r){let e=jy(r)>>BigInt(11);return Number(e)/9007199254740992}var Dt=class{constructor(t){if(t!==void 0)this._pcgState=su(t);else{let e=Math.floor(Math.random()*4294967296);this._pcgState=su(e)}}_randomFloat(){return Ly(this._pcgState)}random(t){if(t===void 0)return this._randomFloat();let e=Array.isArray(t)?t:[t],n=e.reduce((u,s)=>u*s,1),o=D.zeros(e,"float64"),a=o.data;for(let u=0;u<n;u++)a[u]=this._randomFloat();return o}integers(t,e,n){if(e===void 0&&(e=t,t=0),n===void 0)return Math.floor(this._randomFloat()*(e-t))+t;let o=Array.isArray(n)?n:[n],a=o.reduce((c,l)=>c*l,1),u=D.zeros(o,"int64"),s=u.data,i=e-t;for(let c=0;c<a;c++)s[c]=BigInt(Math.floor(this._randomFloat()*i)+t);return u}standard_normal(t){if(t===void 0)return Rr(this._randomFloat.bind(this));let e=Array.isArray(t)?t:[t],n=e.reduce((u,s)=>u*s,1),o=D.zeros(e,"float64"),a=o.data;for(let u=0;u<n;u+=2){let[s,i]=Nt(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 Rr(this._randomFloat.bind(this))*e+t;let o=Array.isArray(n)?n:[n],a=o.reduce((i,c)=>i*c,1),u=D.zeros(o,"float64"),s=u.data;for(let i=0;i<a;i+=2){let[c,l]=Nt(this._randomFloat.bind(this));s[i]=c*e+t,i+1<a&&(s[i+1]=l*e+t)}return u}uniform(t=0,e=1,n){if(n===void 0)return this._randomFloat()*(e-t)+t;let o=Array.isArray(n)?n:[n],a=o.reduce((c,l)=>c*l,1),u=D.zeros(o,"float64"),s=u.data,i=e-t;for(let c=0;c<a;c++)s[c]=this._randomFloat()*i+t;return u}choice(t,e,n=!0,o){return Du(t,e,n,o,this._randomFloat.bind(this))}permutation(t){return wu(t,this._randomFloat.bind(this))}shuffle(t){zu(t,this._randomFloat.bind(this))}exponential(t=1,e){if(e===void 0)return-Math.log(1-this._randomFloat())*t;let n=Array.isArray(e)?e:[e],o=n.reduce((s,i)=>s*i,1),a=D.zeros(n,"float64"),u=a.data;for(let s=0;s<o;s++)u[s]=-Math.log(1-this._randomFloat())*t;return a}poisson(t=1,e){if(e===void 0)return Jt(t,this._randomFloat.bind(this));let n=Array.isArray(e)?e:[e],o=n.reduce((s,i)=>s*i,1),a=D.zeros(n,"int64"),u=a.data;for(let s=0;s<o;s++)u[s]=BigInt(Jt(t,this._randomFloat.bind(this)));return a}binomial(t,e,n){if(n===void 0)return Xt(t,e,this._randomFloat.bind(this));let o=Array.isArray(n)?n:[n],a=o.reduce((i,c)=>i*c,1),u=D.zeros(o,"int64"),s=u.data;for(let i=0;i<a;i++)s[i]=BigInt(Xt(t,e,this._randomFloat.bind(this)));return u}};function uu(r){return new Dt(r)}function cu(r){r==null&&(r=Math.floor(Date.now()^Math.random()*4294967296)),iu(r>>>0)}function lu(){return{mt:Array.from(Sr.mt),mti:Sr.mti}}function fu(r){Sr.mt=new Uint32Array(r.mt),Sr.mti=r.mti}function Rr(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 Nt(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 Jt(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=Rr(t);return Math.max(0,Math.round(r+Math.sqrt(r)*e))}}function Xt(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=Rr(e);return Math.max(0,Math.min(r,Math.round(n+o*a)))}}function mu(r){if(r===void 0)return Y();let t=Array.isArray(r)?r:[r],e=t.reduce((a,u)=>a*u,1),n=D.zeros(t,"float64"),o=n.data;for(let a=0;a<e;a++)o[a]=Y();return n}function pu(...r){if(r.length===0)return Y();let t=r.reduce((o,a)=>o*a,1),e=D.zeros(r,"float64"),n=e.data;for(let o=0;o<t;o++)n[o]=Y();return e}function yu(...r){if(r.length===0)return Rr(Y);let t=r.reduce((o,a)=>o*a,1),e=D.zeros(r,"float64"),n=e.data;for(let o=0;o<t;o+=2){let[a,u]=Nt(Y);n[o]=a,o+1<t&&(n[o+1]=u)}return e}function du(r,t,e,n="int64"){t==null&&(t=r,r=0);let o=t-r;if(e===void 0)return Math.floor(Y()*o)+r;let a=Array.isArray(e)?e:[e],u=a.reduce((c,l)=>c*l,1),s=D.zeros(a,n),i=s.data;if(B(n)){let c=i;for(let l=0;l<u;l++)c[l]=BigInt(Math.floor(Y()*o)+r)}else{let c=i;for(let l=0;l<u;l++)c[l]=Math.floor(Y()*o)+r}return s}function gu(r=0,t=1,e){if(e===void 0)return Y()*(t-r)+r;let n=Array.isArray(e)?e:[e],o=n.reduce((i,c)=>i*c,1),a=D.zeros(n,"float64"),u=a.data,s=t-r;for(let i=0;i<o;i++)u[i]=Y()*s+r;return a}function Au(r=0,t=1,e){if(e===void 0)return Rr(Y)*t+r;let n=Array.isArray(e)?e:[e],o=n.reduce((s,i)=>s*i,1),a=D.zeros(n,"float64"),u=a.data;for(let s=0;s<o;s+=2){let[i,c]=Nt(Y);u[s]=i*t+r,s+1<o&&(u[s+1]=c*t+r)}return a}function bu(r){if(r===void 0)return Rr(Y);let t=Array.isArray(r)?r:[r],e=t.reduce((a,u)=>a*u,1),n=D.zeros(t,"float64"),o=n.data;for(let a=0;a<e;a+=2){let[u,s]=Nt(Y);o[a]=u,a+1<e&&(o[a+1]=s)}return n}function hu(r=1,t){if(t===void 0)return-Math.log(1-Y())*r;let e=Array.isArray(t)?t:[t],n=e.reduce((u,s)=>u*s,1),o=D.zeros(e,"float64"),a=o.data;for(let u=0;u<n;u++)a[u]=-Math.log(1-Y())*r;return o}function Su(r=1,t){if(t===void 0)return Jt(r,Y);let e=Array.isArray(t)?t:[t],n=e.reduce((u,s)=>u*s,1),o=D.zeros(e,"int64"),a=o.data;for(let u=0;u<n;u++)a[u]=BigInt(Jt(r,Y));return o}function xu(r,t,e){if(e===void 0)return Xt(r,t,Y);let n=Array.isArray(e)?e:[e],o=n.reduce((s,i)=>s*i,1),a=D.zeros(n,"int64"),u=a.data;for(let s=0;s<o;s++)u[s]=BigInt(Xt(r,t,Y));return a}function Du(r,t,e=!0,n,o=Y){let a;if(typeof r=="number")a=Array.from({length:r},(y,d)=>d);else{let y=r.size;a=[];for(let d=0;d<y;d++)a.push(Number(r.iget(d)))}let u=a.length;if(u===0)throw new Error("cannot take a sample from an empty sequence");let s;if(n!==void 0){if(Array.isArray(n))s=n;else{let d=n.size;s=[];for(let f=0;f<d;f++)s.push(Number(n.iget(f)))}if(s.length!==u)throw new Error("p and a must have the same size");let y=s.reduce((d,f)=>d+f,0);Math.abs(y-1)>1e-10&&(s=s.map(d=>d/y))}if(t===void 0){if(s){let y=o(),d=0;for(let f=0;f<u;f++)if(d+=s[f],y<d)return a[f];return a[u-1]}return a[Math.floor(o()*u)]}let i=Array.isArray(t)?t:[t],c=i.reduce((y,d)=>y*d,1);if(!e&&c>u)throw new Error("cannot take a larger sample than population when replace=false");let l=D.zeros(i,"float64"),m=l.data;if(e)if(s){let y=new Array(u);y[0]=s[0];for(let d=1;d<u;d++)y[d]=y[d-1]+s[d];for(let d=0;d<c;d++){let f=o(),p=0;for(;p<u-1&&f>=y[p];)p++;m[d]=a[p]}}else for(let y=0;y<c;y++)m[y]=a[Math.floor(o()*u)];else{let y=[...a],d=s?[...s]:void 0;for(let f=0;f<c;f++){let p;if(d){let g=d.reduce((A,S)=>A+S,0),h=o()*g,b=0;p=0;for(let A=0;A<y.length;A++)if(b+=d[A],h<b){p=A;break}p===0&&h>=b&&(p=y.length-1)}else p=Math.floor(o()*y.length);m[f]=y[p],y.splice(p,1),d&&d.splice(p,1)}}return l}function Nu(r,t,e=!0,n){return Du(r,t,e,n,Y)}function wu(r,t=Y){let e;if(typeof r=="number"){let o=new Float64Array(r);for(let a=0;a<r;a++)o[a]=a;e=D.fromData(o,[r],"float64")}else e=r.copy();let n=e.size;for(let o=n-1;o>0;o--){let a=Math.floor(t()*(o+1)),u=e.iget(o);e.iset(o,e.iget(a)),e.iset(a,u)}return e}function Iu(r){return wu(r,Y)}function zu(r,t=Y){let e=r.size;for(let n=e-1;n>0;n--){let o=Math.floor(t()*(n+1)),a=r.iget(n);r.iset(n,r.iget(o)),r.iset(o,a)}}function _u(r){zu(r,Y)}yt();function dr(r){return r&&typeof r=="object"&&"_data"in r&&"_shape"in r?v._fromStorage(r):r}var Kg={seed:cu,random:r=>dr(mu(r)),rand:(...r)=>dr(pu(...r)),randn:(...r)=>dr(yu(...r)),randint:(r,t,e,n)=>dr(du(r,t,e,n)),uniform:(r,t,e)=>dr(gu(r,t,e)),normal:(r,t,e)=>dr(Au(r,t,e)),standard_normal:r=>dr(bu(r)),exponential:(r,t)=>dr(hu(r,t)),poisson:(r,t)=>dr(Su(r,t)),binomial:(r,t,e)=>dr(xu(r,t,e)),choice:(r,t,e,n)=>dr(Nu(r,t,e,n)),permutation:r=>dr(Iu(r)),shuffle:_u,get_state:lu,set_state:fu,default_rng:uu,Generator:Dt},rA="0.11.0";async function Gy(r){let t=await It(r);return $r(t)}function Zy(r){let t=wt(r);return $r(t)}async function Yy(r,t){let e=Er(t);await _n(r,e)}function Hy(r,t){let e=Er(t);zn(r,e)}async function Jy(r,t={}){let e=await It(r);return Xr(e,t)}function Xy(r,t={}){let e=wt(r),{parseNpzSync:n}=(Gt(),Mn(Hi));return n(e,t)}async function Fu(r,t,e={}){let n=await bt(t,e);await _n(r,n)}function mA(r,t){let{serializeNpzSync:e}=(Zt(),Mn(nu)),n=e(t);zn(r,n)}async function pA(r,t={}){if(r.endsWith(".npy")){if(t.allowNpy===!1)throw new Error("Loading .npy files is disabled (allowNpy: false)");return Gy(r)}else{if(r.endsWith(".npz"))return Jy(r,t);throw new Error(`Unknown file extension. Expected .npy or .npz, got: ${r}`)}}function yA(r,t={}){if(r.endsWith(".npy")){if(t.allowNpy===!1)throw new Error("Loading .npy files is disabled (allowNpy: false)");return Zy(r)}else{if(r.endsWith(".npz"))return Xy(r,t);throw new Error(`Unknown file extension. Expected .npy or .npz, got: ${r}`)}}async function dA(r,t){if(!r.endsWith(".npy"))throw new Error(`save() is for .npy files. Use saveNpz() for .npz files. Got: ${r}`);return Yy(r,t)}function gA(r,t){if(!r.endsWith(".npy"))throw new Error(`saveSync() is for .npy files. Use saveNpzSync() for .npz files. Got: ${r}`);return Hy(r,t)}async function AA(r,t){return r.endsWith(".npz")||(r=r+".npz"),Fu(r,t,{compress:!1})}async function bA(r,t){return r.endsWith(".npz")||(r=r+".npz"),Fu(r,t,{compress:!0})}async function hA(r,t={}){let e=await It(r,{encoding:t.encoding??"utf-8"});return Qr(e,t)}function SA(r,t={}){let e=wt(r,{encoding:t.encoding??"utf-8"});return Qr(e,t)}async function xA(r,t,e={}){let n=xt(t,e);await _n(r,n,"utf-8")}function DA(r,t,e={}){let n=xt(t,e);zn(r,n,"utf-8")}async function NA(r,t={}){let e=await It(r,{encoding:t.encoding??"utf-8"});return ht(e,t)}function wA(r,t={}){let e=wt(r,{encoding:t.encoding??"utf-8"});return ht(e,t)}async function IA(r,t,e="float64"){let n=await It(r,{encoding:"utf-8"});return St(n,t,e)}function zA(r,t,e="float64"){let n=wt(r,{encoding:"utf-8"});return St(n,t,e)}export{O as Complex,Pt as DTYPE_TO_DESCR,lr as InvalidNpyError,v as NDArray,un as SUPPORTED_DTYPES,Mr as UnsupportedDTypeError,rA as __version__,zi as abs,zi as absolute,Mi as acos,Ei as acosh,Ri as amax,ki as amin,np as angle,Rf as append,ol as arange,Mi as arccos,Ei as arccosh,Fi as arcsin,Ti as arcsinh,Bi as arctan,vi as arctan2,Oi as arctanh,Up as argpartition,Ep as argsort,kp as argwhere,sn as around,tr as array,Xf as array_equal,Qf as array_equiv,Af as array_split,yl as asanyarray,Vt as asarray,dl as ascontiguousarray,gl as asfortranarray,Fi as asin,Ti as asinh,Bi as atan,vi as atan2,Oi as atanh,vf as atleast_1d,Tf as atleast_2d,Ef as atleast_3d,nm as average,iy as bincount,Yf as bindex,Mm as bitwise_and,Tm as bitwise_not,Bm as bitwise_or,vm as bitwise_xor,jf as broadcast_arrays,Lf as broadcast_shapes,Pf as broadcast_to,gm as cbrt,Wp as ceil,Jf as choose,Cf as column_stack,Ap as compress,Hr as concatenate,qi as conj,ep as conjugate,py as convolve,cl as copy,Gm as copysign,Hf as copyto,dy as corrcoef,my as correlate,rf as cos,cf as cosh,Lp as count_nonzero,yy as cov,sy as cross,$i as cumprod,Ui as cumsum,$i as cumulative_prod,Ui as cumulative_sum,af as deg2rad,nf as degrees,kf as delete,wi as diag,xp as diag_indices,Dp as diag_indices_from,Al as diagflat,Zl as diagonal,ny as diff,uy as digitize,_i as divide,bm as divmod,Wl as dot,Of as dsplit,df as dstack,oy as ediff1d,mp as einsum,Di as empty,ml as empty_like,Bl as exp,vl as exp2,If as expand_dims,Tl as expm1,jp as extract,xi as eye,Am as fabs,Sp as fill_diagonal,Gp as fix,qp as flatnonzero,an as flip,zf as fliplr,_f as flipud,Dm as float_power,Zp as floor,Pl as floor_divide,Nm as fmod,wm as frexp,wl as frombuffer,Il as fromfile,bl as fromfunction,zl as fromiter,IA as fromregex,zA as fromregexSync,_l as fromstring,Ni as full,pl as full_like,Im as gcd,NA as genfromtxt,wA as genfromtxtSync,il as geomspace,ay as gradient,xm as heaviside,cy as histogram,ly as histogram2d,fy as histogramdd,hf as hsplit,yf as hstack,ef as hypot,ul as identity,Zf as iindex,tp as imag,Xp as in1d,Fp as indices,Jl as inner,qf as insert,Qp as intersect1d,Em as invert,Jm as iscomplex,Xm as iscomplexobj,lp as isdtype,Pm as isfinite,sp as isfortran,Kp as isin,jm as isinf,Lm as isnan,Wm as isnat,op as isneginf,ap as isposinf,Qm as isreal,Km as isrealobj,up as isscalar,cp as iterable,Mp as ix_,Yl as kron,zm as lcm,_m as ldexp,Om as left_shift,Op as lexsort,pp as linalg,al as linspace,pA as load,Gy as loadNpy,Zy as loadNpySync,gn as loadNpz,Jy as loadNpzFile,Xy as loadNpzFileSync,An as loadNpzSync,yA as loadSync,hA as loadtxt,SA as loadtxtSync,El as log,Cl as log10,Ul as log1p,Ol as log2,$l as logaddexp,Rl as logaddexp2,Rm as logical_and,qm as logical_not,km as logical_or,Vm as logical_xor,sl as logspace,_p as mask_indices,Ri as max,rm as median,hl as meshgrid,ki as min,Vl as mod,Fm as modf,mf as moveaxis,mm as nanargmax,fm as nanargmin,ym as nancumprod,pm as nancumsum,lm as nanmax,sm as nanmean,dm as nanmedian,cm as nanmin,am as nanprod,um as nanstd,om as nansum,im as nanvar,kl as negative,Ym as nextafter,Rp as nonzero,bi as ones,fl as ones_like,Xl as outer,Um as packbits,Vf as pad,$r as parseNpy,fn as parseNpyData,ln as parseNpyHeader,Xr as parseNpz,Wt as parseNpzSync,Qr as parseTxt,Cp as partition,tm as percentile,hp as place,jl as positive,Ii as pow,Ii as power,fp as promote_types,Kf as ptp,Gf as put,dp as put_along_axis,gp as putmask,em as quantile,sf as rad2deg,of as radians,Kg as random,Df as ravel,Bp as ravel_multi_index,rp as real,ip as real_if_close,Ll as reciprocal,Sm as remainder,xf as repeat,Nf as reshape,$f as resize,Cm as right_shift,Yp as rint,Mf as roll,Bf as rollaxis,Ff as rot90,sn as round,sn as round_,Uf as row_stack,dA as save,Yy as saveNpy,Hy as saveNpySync,Fu as saveNpz,mA as saveNpzSync,gA as saveSync,xA as savetxt,DA as savetxtSync,AA as savez,bA as savez_compressed,Pp as searchsorted,bp as select,Er as serializeNpy,bt as serializeNpz,bn as serializeNpzSync,xt as serializeTxt,ry as setdiff1d,ty as setxor1d,ql as sign,Zm as signbit,Kl as sin,uf as sinh,Tp as sort,$p as sort_complex,Hm as spacing,gf as split,Ml as sqrt,hm as square,wf as squeeze,pf as stack,ff as swapaxes,Wf as take,yp as take_along_axis,tf as tan,lf as tanh,Ql as tensordot,Sf as tile,Gl as trace,Hl as transpose,Sl as tri,xl as tril,Np as tril_indices,wp as tril_indices_from,Dl as triu,Ip as triu_indices,zp as triu_indices_from,_i as true_divide,Hp as trunc,ey as union1d,Jp as unique,$m as unpackbits,vp as unravel_index,Nl as vander,bf as vsplit,Ci as vstack,Vp as where,Fr as zeros,ll as zeros_like};
|
|
1
|
+
import{readFileSync as wo,writeFileSync as ol}from"node:fs";import{readFile as Io,writeFile as al}from"node:fs/promises";function zo(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 _o(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 er="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 Lr(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 Er(r){return r==="float64"||r==="float32"}function O(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 Ft(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(Er(r)||Er(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 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 sl(r){return r instanceof U||typeof r=="object"&&r!==null&&"re"in r}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(O(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(O(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=er){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=er){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(O(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 Lr(this._storage.dtype)}get nbytes(){return this.size*this.itemsize}fill(t){let e=this._storage.dtype,n=this.size;if(O(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(O(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(O(n)&&!O(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(!O(n)&&O(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"&&!O(t)){let l=s;for(let f=0;f<a;f++)i[f]=l[f]}else if(!O(n)&&!O(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=zo(s);return _o(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 hr(r,t){let e=t.base??t;return P.fromStorage(r,e)}function $r(r){return r.map(t=>M(t))}function ut(r,t){return r.map(e=>hr(e,t))}function vo(r){return[M(r[0]),M(r[1])]}function ya(r){return new P(r)}function Kb(r){return!!(r instanceof P||r&&typeof r=="object"&&"storage"in r&&r.storage instanceof S)}function wr(r,t=er){let e=S.zeros(r,t);return new P(e)}function Mo(r,t=er){let e=S.ones(r,t);return new P(e)}function Fo(r,t=er){return wr(r,t)}function Bo(r,t,e){let n=e;n||(typeof t=="bigint"?n="int64":typeof t=="boolean"?n="bool":Number.isInteger(t)?n="int32":n=er);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(O(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 Qb(r){let t=[],e=r;for(;Array.isArray(e);)t.push(e.length),e=e[0];return t}function il(r){return typeof r=="bigint"?!0:Array.isArray(r)?r.some(t=>il(t)):!1}function ul(r){return sl(r)?!0:Array.isArray(r)?r.some(t=>ul(t)):!1}function Hb(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=il(r),n=ul(r),o=Qb(r),a=o.reduce((p,y)=>p*y,1),u=t;u||(n?u="complex128":e?u="int64":u=er);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=Hb(r);if(O(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 da(r,t,e=1,n=er){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(O(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 ba(r,t,e=50,n=er){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(O(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 Aa(r,t,e=50,n=10,o=er){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(O(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 ga(r,t,e=50,n=er){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(O(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 To(r,t,e=0,n=er){let o=t??r,a=wr([r,o],n),u=a.data;if(O(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 ha(r,t=er){return To(r,r,0,t)}function Jr(r,t){return Kb(r)?!t||r.dtype===t?r:r.astype(t):Q(r,t)}function Na(r,t){return wr(Array.from(r.shape),t??r.dtype)}function Da(r,t){return Mo(Array.from(r.shape),t??r.dtype)}function xa(r,t){return Fo(Array.from(r.shape),t??r.dtype)}function Ca(r,t,e){return Bo(Array.from(r.shape),t,e??r.dtype)}function Sa(r){return r.copy()}function wa(r,t){return Jr(r,t)}function Ia(r,t){return Jr(r,t).copy()}function za(r,t){return Jr(r,t).copy()}function _a(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 va(r,t,e){let n=r;return t&&t!==r.dtype&&(n=n.astype(t)),n}function rA(r){let t=r.data,e=S.fromData(t.slice(),[t.length],r.dtype);return ya(e)}function Oo(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 Ma(r,t=0){let e=rA(r);return Oo(e,t)}function Fa(r,t,e=0,n=er){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 Ba(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 Ta(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 Oa(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 Ea(r,t=er,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 ya(u)}function Ua(r,t,e=er){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 ya(s)}function $a(r,t=er,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 ka(r,t=er,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 Ra(r,t=er,e=-1,n=""){throw new Error("fromfile requires Node.js file system access")}function Gr(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 tA(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 Eo(r,t){let e=tA(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&&!O(r.dtype)&&!O(t.dtype)&&!O(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=Gr(r.shape,t.shape),c=Eo(r,s),l=Eo(t,s),f=S.zeros(s,o),m=f.data,p=f.size;if(O(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=O(r.dtype)||O(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=Gr(r.shape,t.shape),o=Eo(r,n),a=Eo(t,n),u=n.reduce((c,l)=>c*l,1),i=new Uint8Array(u),s=O(r.dtype)||O(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(O(n))if(O(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 qa(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function Nr(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 ml(r,t){if(typeof t=="number")return cl(r,t);if(t.size===1&&!B(t.dtype)&&r.dtype===t.dtype){let e=Number(t.iget(0));return cl(r,e)}return qa(r,t)?eA(r,t):sr(r,t,(e,n)=>e+n,"add")}function eA(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?Nr(a,s+p):[Number(a[s+p]),0],[b,A]=m?Nr(u,c+p):[Number(u[c+p]),0];br(l,p,y+b,d+A)}return n}if(O(e)){let l=i;if(!O(r.dtype)||!O(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(O(r.dtype)||O(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 pl(r,t){if(typeof t=="number")return ll(r,t);if(t.size===1&&!B(t.dtype)&&r.dtype===t.dtype){let e=Number(t.iget(0));return ll(r,e)}return qa(r,t)?nA(r,t):sr(r,t,(e,n)=>e-n,"subtract")}function nA(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?Nr(a,s+p):[Number(a[s+p]),0],[b,A]=m?Nr(u,c+p):[Number(u[c+p]),0];br(l,p,y-b,d-A)}return n}if(O(e)){let l=i;if(!O(r.dtype)||!O(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(O(r.dtype)||O(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 yl(r,t){if(typeof t=="number")return fl(r,t);if(t.size===1&&!B(t.dtype)&&r.dtype===t.dtype){let e=Number(t.iget(0));return fl(r,e)}return qa(r,t)?oA(r,t):sr(r,t,(e,n)=>e*n,"multiply")}function oA(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?Nr(a,s+p):[Number(a[s+p]),0],[b,A]=m?Nr(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(O(e)){let l=i;if(!O(r.dtype)||!O(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(O(r.dtype)||O(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 dl(r,t){if(typeof t=="number")return aA(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?Nr(y,b+g):[Number(y[b+g]),0],[D,x]=n?Nr(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:ct(r,"float64"),f=a?t:ct(t,"float64");return sr(l,f,(m,p)=>m/p,"divide")}if(u||i){let l=u?r:ct(r,"float32"),f=i?t:ct(t,"float32");return sr(l,f,(m,p)=>m/p,"divide")}let s=ct(r,"float64"),c=ct(t,"float64");return sr(s,c,(l,f)=>l/f,"divide")}function ct(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 cl(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]=Nr(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(O(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 ll(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]=Nr(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(O(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 fl(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]=Nr(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(O(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 aA(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]=Nr(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 bl(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=Ft(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(O(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 Al(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]=Nr(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(O(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 gl(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(O(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 Uo(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"?sA(r,t):sr(r,t,(e,n)=>(e%n+n)%n,"mod")}function sA(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(O(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 Va(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"?iA(r,t):sr(r,t,(e,n)=>Math.floor(e/n),"floor_divide")}function iA(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(O(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 hl(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 Nl(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 Dl(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 xl(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 Cl(r,t){let e=Va(r,t),n=Uo(r,t);return[e,n]}function Sl(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(O(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 wl(r,t){return Uo(r,t)}function Il(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 zl(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 _l(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 vl(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 Ml(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 Fl(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 Bl(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 Tl(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 Ol(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(O(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],E=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<E&&(T=E),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 El(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(O(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 Ul(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(O(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 $l(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(O(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 kl(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(O(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 Rl(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(O(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 ql(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 Vl(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 Pl(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 jl(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]=uA(i)}return n}function uA(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 Ll(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 Gl(r,t){if(typeof t=="number")return fA(r,t);let e=B(r.dtype),n=B(t.dtype);return e||n?lA(r,t):sr(r,t,Math.pow,"power")}function lA(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 fA(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(O(e))if(O(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 Wl(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 Yl(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 Zl(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 Jl(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 Xl(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 Kl(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 Ql(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 Hl(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"?pA(r,t):mA(r,t)}function mA(r,t){let e=Gr(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=(O(o),Number(r.iget(c))),f=(O(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 pA(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 rf(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"?dA(r,t):yA(r,t)}function yA(r,t){let e=Gr(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=(O(o),Number(r.iget(l))),m=(O(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 dA(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 Bt(r,t){let e=typeof t=="number"?t:z(t);return M(ml(z(r),e))}function Tt(r,t){let e=typeof t=="number"?t:z(t);return M(pl(z(r),e))}function Ot(r,t){let e=typeof t=="number"?t:z(t);return M(yl(z(r),e))}function Et(r){return M(Ll(z(r)))}function Ut(r,t){let e=typeof t=="number"?t:z(t);return M(Gl(z(r),e))}function $t(r){return M(Wl(z(r)))}function kt(r){return M(Yl(z(r)))}function Rt(r){return M(Zl(z(r)))}function qt(r){return M(Jl(z(r)))}function Vt(r){return M(Xl(z(r)))}function Pt(r){return M(Kl(z(r)))}function jt(r){return M(Ql(z(r)))}function Lt(r,t){let e=typeof t=="number"?t:z(t);return M(Hl(z(r),e))}function Gt(r,t){let e=typeof t=="number"?t:z(t);return M(rf(z(r),e))}function Wt(r){return M(bl(z(r)))}function Yt(r){return M(Al(z(r)))}function Zt(r){return M(gl(z(r)))}function Jt(r,t){let e=typeof t=="number"?t:z(t);return M(Uo(z(r),e))}function lt(r,t){let e=typeof t=="number"?t:z(t);return M(dl(z(r),e))}var Pa=lt;function Xt(r,t){let e=typeof t=="number"?t:z(t);return M(Va(z(r),e))}function Kt(r){return M(hl(z(r)))}function Qt(r){return M(Nl(z(r)))}function Ht(r){return M(Dl(z(r)))}function re(r){return M(xl(z(r)))}function te(r,t){let e=typeof t=="number"?t:z(t);return vo(Cl(z(r),e))}function ee(r){return M(Sl(z(r)))}function ne(r,t){let e=typeof t=="number"?t:z(t);return M(wl(z(r),e))}function oe(r,t){let e=typeof t=="number"?t:z(t);return M(Il(z(r),e))}function ja(r,t){let e=typeof t=="number"?t:z(t);return M(zl(z(r),e))}function La(r,t){let e=typeof t=="number"?t:z(t);return M(_l(z(r),e))}function Ga(r){return vo(vl(z(r)))}function Wa(r,t){let e=typeof t=="number"?t:z(t);return M(Ml(z(r),e))}function Ya(r,t){let e=typeof t=="number"?t:z(t);return M(Fl(z(r),e))}function Za(r,t){let e=typeof t=="number"?t:z(t);return M(Bl(z(r),e))}function Ja(r){return vo(Tl(z(r)))}function ae(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(Ol(z(r),n,o))}function Xa(r,t){let e=typeof t=="number"?t:z(t);return M(El(z(r),e))}function Ka(r,t){let e=typeof t=="number"?t:z(t);return M(Ul(z(r),e))}function Qa(r,t){let e=typeof t=="number"?t:z(t);return M($l(z(r),e))}function Ha(r,t){let e=typeof t=="number"?t:z(t);return M(kl(z(r),e))}function rs(r,t=0,e,n){return M(Rl(z(r),t,e,n))}function ts(r,t,e,n,o){return M(ql(z(r),z(t),z(e),n,o))}function es(r,t=Math.PI,e=-1,n=2*Math.PI){return M(Vl(z(r),t,e,n))}function ns(r){return M(Pl(z(r)))}function os(r){return M(jl(z(r)))}function of(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 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.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 uf(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]=tf(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]=tf(s.re,s.im);u[i*2]=c,u[i*2+1]=l}return a}return ir(r,Math.asin,!1)}function tf(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 cf(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]=ef(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]=ef(s.re,s.im);u[i*2]=c,u[i*2+1]=l}return a}return ir(r,Math.acos,!1)}function ef(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 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,p]=nf(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]=nf(s.re,s.im);u[i*2]=c,u[i*2+1]=l}return a}return ir(r,Math.atan,!1)}function nf(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 ff(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"?gA(r,t):AA(r,t)}function AA(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 gA(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(O(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 mf(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"?NA(r,t):hA(r,t)}function hA(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 NA(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(O(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 as(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 ss(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 pf(r){return ss(r)}function yf(r){return as(r)}function df(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 bf(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 Af(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 gf(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 hf(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 Nf(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 se(r){return M(of(z(r)))}function ie(r){return M(af(z(r)))}function ue(r){return M(sf(z(r)))}function ce(r){return M(uf(z(r)))}function le(r){return M(cf(z(r)))}function fe(r){return M(lf(z(r)))}function me(r,t){let e=typeof t=="number"?t:z(t);return M(ff(z(r),e))}function pe(r,t){let e=typeof t=="number"?t:z(t);return M(mf(z(r),e))}function ye(r){return M(as(z(r)))}function de(r){return M(ss(z(r)))}function is(r){return M(pf(z(r)))}function us(r){return M(yf(z(r)))}function be(r){return M(df(z(r)))}function Ae(r){return M(bf(z(r)))}function ge(r){return M(Af(z(r)))}function he(r){return M(gf(z(r)))}function Ne(r){return M(hf(z(r)))}function De(r){return M(Nf(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=O(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 ft(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 cs(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 ls(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 xe(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 Df(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 fs(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 cs(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];CA(p,l,u,f,a,m,o),m+=y}return S.fromData(l,u,o)}function CA(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 xf(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=>xe(i,a));return Wr(u,a)}function Cf(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 ms(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 Sf(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?ur(xe(ur(e,[1,e.shape[0]]),2),[1,e.shape[0],1]):e.ndim===2?xe(e,2):e);return Wr(t,2)}function wf(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 If(r,i,a)}function Ce(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 If(r,i,a)}function If(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 zf(r,t){if(r.ndim<2)throw new Error("vsplit only works on arrays of 2 or more dimensions");return Ce(r,t,0)}function _f(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 Ce(r,t,e)}function vf(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 Mf(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 Ff(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=O(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 Bf(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=O(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 Tf(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=O(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=O(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 Of(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):fs(r,o,a)}function Ef(r,t){if(r.ndim<3)throw new Error("dsplit only works on arrays of 3 or more dimensions");return Ce(r,t,2)}function Uf(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 ms(t)}function $f(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=O(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 kf(r){return r.map(t=>t.ndim===0?ur(t,[1]):t)}function Rf(r){return r.map(t=>t.ndim===0?ur(t,[1,1]):t.ndim===1?ur(t,[1,t.shape[0]]):t)}function qf(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 Vf(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=SA(r,s),l=ls(c,o);u.push(l)}return u}function Pf(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 SA(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 wA(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 IA(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 zA(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 pt(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),E=v instanceof U?v:new U(Number(v),0);A+=T.re*E.re-T.im*E.im,g+=T.re*E.im+T.im*E.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&&!O(r.dtype)&&!O(t.dtype))wA(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 E=r.iget(C*n+T),$=t.iget(T*a+w);_+=E.re*$.re-E.im*$.im,I+=E.re*$.im+E.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 zA(b,A,e,a,n,1,s,g,c,h,N.data,a),N}function Gf(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 cs(r,t)}function Wf(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 pt(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&&!O(r.dtype)&&!O(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}IA(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 ds(r,t){let e=r.ndim===1?r:ft(r),n=t.ndim===1?t:ft(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 Yf(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 Zf(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 Jf(r,...t){let e=r.indexOf("->"),n,o;e===-1?(n=r,o=Xf(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 ps(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 ds(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 ps(t,a,c,u)}let l=Array.from(o).map(d=>u.get(d));if(l.length===0)return ps(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=_A(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 Xf(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 ps(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 _A(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 Kf(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 Qf(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),E=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,E),m(I,k))),V.set([2],p(m(I,$),m(v,E))),V}else if(w===2&&_===2){let I=f(r,0),v=f(r,1),T=f(t,0),E=f(t,1);return p(m(I,E),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,E=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,E),m(I,k))),V.set([2],p(m(I,$),m(v,E))),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)],E=X=>(v[i]=X,f(r,...v)),$=X=>(T[s]=X,f(t,...T)),k=E(0),V=E(1),j=y===3?E(2):l?new U(0,0):0,R=$(0),Y=$(1),J=d===3?$(2):l?new U(0,0):0;if(b===0)x.set(I,p(m(k,Y),m(V,R)));else{let X=p(m(V,J),m(j,Y)),rr=p(m(j,R),m(k,J)),yr=p(m(k,Y),m(V,R)),nr=(dr,Or)=>{let Xb=[...I.slice(0,N),dr,...I.slice(N)];x.set(Xb,Or)};nr(0,X),nr(1,rr),nr(2,yr)}}return x}function mt(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:ft(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 mt(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}=Yr(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}=Yr(r);a=Number(u.get(0))}else if(t===-2){let{s:u}=Yr(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 Hf(r,t=null,e=null,n=!1){if(t===null)return e===null?mt(r,2,null,n):typeof e=="number"?mt(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 mt(r,t??2,e,n)}function bs(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 rm(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 Yr(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}=As(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 As(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 gs(r,t=!0,e=!0){let n=Yr(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 tm(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}=$o(r),i=a.data,s=u;for(let c=0;c<n;c++)s*=i[c*n+c];return s}function $o(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 Se(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}=$o(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 Lf(r,t){let[e]=r.shape,n=e,{lu:o,piv:a}=$o(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 hs(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 Lf(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=Lf(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 em(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}=Yr(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 nm(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}=Yr(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=Se(r),u=Kr(a,t);return o*u}function om(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}=Yr(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 am(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=Se(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 sm(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}=Yr(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 Ns(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}=As(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}=vA(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 vA(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=bs(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 Ds(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}=As(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 im(r){let{w:t}=Ns(r);return t}function um(r,t="L"){let{w:e}=Ds(r,t);return e}function cm(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 lm(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 pt(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 fm(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 mm(r,t){return Qr(r,t)}function pm(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 pt(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),E=kr(v,T);if(x instanceof U||E instanceof U){let $=x instanceof U?x:new U(Number(x),0),k=E instanceof U?E:new U(Number(E),0);x=$.add(k)}else typeof x=="bigint"||typeof E=="bigint"?x=BigInt(x)+BigInt(E):x=x+E}let C=[...A,D];p.set(C,x)}}return p}function ym(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 pt(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),E=kr(v,T);if(x instanceof U||E instanceof U){let $=x instanceof U?x:new U(Number(x),0),k=E instanceof U?E:new U(Number(E),0);x=$.add(k)}else typeof x=="bigint"||typeof E=="bigint"?x=BigInt(x)+BigInt(E):x=x+E}let C=[...A,D];p.set(C,x)}}return p}function dm(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}=$o(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 bm(r){return gs(r,!0,!1)}function Am(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 gm(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=Se(u),s=[...e.slice(t),...e.slice(0,t)];return ur(i,s)}function hm(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=hs(b,A);return ur(g,[...o])}function Nm(r,...t){let e=r.indexOf("->"),n,o;e===-1?(n=r,o=Xf(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,ys(r,u,m,i)]}if(t.length===2){let m=[[0,1]];return[m,ys(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=MA(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]=FA(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,ys(r,u,s,i)]}function MA(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 FA(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 ys(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 yt(r,t){let e=pt(z(r),z(t));return typeof e=="number"||typeof e=="bigint"||e instanceof U?e:M(e)}function dt(r){return Gf(z(r))}function bt(r,t=0,e=0,n=1){return M(Zf(z(r),t,e,n))}function xs(r,t){return M(Kf(z(r),z(t)))}function At(r,t){return hr(Qr(z(r),t),r)}function gt(r,t){let e=Wf(z(r),z(t));return typeof e=="number"||typeof e=="bigint"||e instanceof U?e:M(e)}function ht(r,t){return M(ds(z(r),z(t)))}function Nt(r,t,e=2){let n=Yf(z(r),z(t),e);return typeof n=="number"||typeof n=="bigint"||n instanceof U?n:M(n)}function Cs(r,...t){let e=t.map(o=>z(o)),n=Jf(r,...e);return typeof n=="number"||typeof n=="bigint"||n instanceof U?n:M(n)}function Ss(r,...t){let e=t.map(n=>z(n));return Nm(r,...e)}function ws(r,t){return cm(z(r),z(t))}function ko(r,t,e=-1){let n=lm(z(r),z(t),e);return typeof n=="number"||typeof n=="bigint"||n instanceof U?n:M(n)}function Ro(r){return hr(fm(z(r)),r)}function qo(r,t){return hr(mm(z(r),t),r)}function Is(r,t){return M(pm(z(r),z(t)))}function zs(r,t){return M(ym(z(r),z(t)))}function Vo(r,t,e=-1,n=-1,o=-1,a){let u=Qf(z(r),z(t),e,n,o,a);return typeof u=="number"||u instanceof U?u:M(u)}function we(r,t){return M(Ar(z(r),z(t)))}var _s={matmul:(r,t)=>M(Ar(z(r),z(t))),dot:(r,t)=>yt(r,t),det:r=>tm(z(r)),inv:r=>M(Se(z(r))),solve:(r,t)=>M(hs(z(r),z(t))),lstsq:(r,t,e)=>{let n=em(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=Hf(z(r),t,e,n);return typeof o=="number"?o:M(o)},cond:(r,t)=>nm(z(r),t),matrix_rank:(r,t)=>om(z(r),t),matrix_power:(r,t)=>M(am(z(r),t)),pinv:(r,t)=>M(sm(z(r),t)),qr:(r,t)=>{let e=bs(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(rm(z(r),t)),svd:(r,t,e)=>{let n=gs(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=Ns(z(r));return{w:M(t.w),v:M(t.v)}},eigh:(r,t)=>{let e=Ds(z(r),t);return{w:M(e.w),v:M(e.v)}},eigvals:r=>M(im(z(r))),eigvalsh:(r,t)=>M(um(z(r),t)),slogdet:r=>dm(z(r)),svdvals:r=>M(bm(z(r))),multi_dot:r=>M(Am(r.map(t=>z(t)))),tensorinv:(r,t)=>M(gm(z(r),t)),tensorsolve:(r,t,e)=>M(hm(z(r),z(t),e)),vector_norm:(r,t,e,n)=>{let o=mt(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)=>Vo(r,t,e,n,o,a),matrix_transpose:r=>Ro(r),permute_dims:(r,t)=>qo(r,t),trace:r=>dt(r),diagonal:(r,t,e,n)=>bt(r,t,e,n),outer:(r,t)=>ht(r,t),inner:(r,t)=>gt(r,t),tensordot:(r,t,e)=>Nt(r,t,e),vecdot:(r,t,e)=>ko(r,t,e),transpose:(r,t)=>At(r,t)};function Ie(r,t){return M(ur(z(r),t))}function Br(r){return M(Xr(z(r)))}function ze(r){return M(ft(z(r)))}function _e(r,t){return hr(ls(z(r),t),r)}function ve(r,t){return hr(xe(z(r),t),r)}function Me(r,t,e){return hr(Df(z(r),t,e),r)}function Fe(r,t,e){return hr(fs(z(r),t,e),r)}function vs(r,t,e=0){return hr(Of(z(r),t,e),r)}function Dt(r,t=0){return M(Wr(r.map(e=>z(e)),t))}function Ms(r,t=0){return M(xf(r.map(e=>z(e)),t))}function Po(r){return M(Cf(r.map(t=>z(t))))}function Fs(r){return M(ms(r.map(t=>z(t))))}function Bs(r){return M(Sf(r.map(t=>z(t))))}function Ts(r){return M(Uf(r.map(t=>z(t))))}var Os=Po;function Es(r){return M(Pf(r.map(t=>z(t))))}function Us(r,t,e=0){return ut(wf(z(r),t,e),r)}function $s(r,t,e=0){return ut(Ce(z(r),t,e),r)}function ks(r,t){return ut(zf(z(r),t),r)}function Rs(r,t){return ut(_f(z(r),t),r)}function qs(r,t){return ut(Ef(z(r),t),r)}function Vs(r,t=0){return $r(Vf(z(r),t))}function Ps(r,t){return M(vf(z(r),t))}function Be(r,t,e){return M(Mf(z(r),t,e))}function Te(r,t){return M(Ff(z(r),t))}function js(r){return Te(r,1)}function Ls(r){return Te(r,0)}function Gs(r,t=1,e=[0,1]){return M(Bf(z(r),t,e))}function Ws(r,t,e){return M(Tf(z(r),t,e))}function Oe(r,t){return M($f(z(r),t))}function Ys(...r){let t=kf(r.map(e=>z(e)));return t.length===1?M(t[0]):$r(t)}function Zs(...r){let t=Rf(r.map(e=>z(e)));return t.length===1?M(t[0]):$r(t)}function Js(...r){let t=qf(r.map(e=>z(e)));return t.length===1?M(t[0]):$r(t)}function Dr(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 W(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(O(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=W(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(O(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=W(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=W(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 Zo(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:(O(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(O(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 xt(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 xt(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=W(C,A,0,o),_=Z(w,c,s),I=b[_*2],v=b[_*2+1];for(let T=1;T<D;T++){let E=W(C,A,T,o),$=Z(E,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 xt(r);let m=S.zeros(f,n),p=m.data,y=o[l],d=f.reduce((b,A)=>b*A,1);if(O(n)){let b=i,A=p;for(let g=0;g<d;g++){let h=W(g,l,0,o),N=Z(h,c,s),D=b[N];for(let x=1;x<y;x++){let C=W(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=W(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 Xs(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(O(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 Xs(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=W(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(O(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=W(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=W(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 Ct(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 Ct(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=W(C,A,0,o),_=Z(w,c,s),I=b[_*2],v=b[_*2+1];for(let T=1;T<D;T++){let E=W(C,A,T,o),$=Z(E,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 Ct(r);let m=S.zeros(f,n),p=m.data,y=o[l],d=f.reduce((b,A)=>b*A,1);if(O(n)){let b=i,A=p;for(let g=0;g<d;g++){let h=W(g,l,0,o),N=Z(h,c,s),D=b[N];for(let x=1;x<y;x++){let C=W(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=W(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 Ks(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 Ks(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=W(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 _=W(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(O(e)){let A=i;for(let g=0;g<b;g++){let h=W(g,f,0,o),N=Z(h,c,s),D=A[N],x=0;for(let C=1;C<d;C++){let w=W(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=W(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 Qs(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 Qs(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=W(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 _=W(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(O(e)){let A=i;for(let g=0;g<b;g++){let h=W(g,f,0,o),N=Z(h,c,s),D=A[N],x=0;for(let C=1;C<d;C++){let w=W(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=W(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 Hs(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=Zo(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],E=v-C.re,$=T-C.im;w+=E*E+$*$}}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=W(C,p,v,a),E=Z(T,l,c),$=D[E*2],k=D[E*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 _=W(D,p,w,a),I=Z(_,l,c),v=Number(s[I])-C;x+=v*v}h[D]=x/(y-e)}return g}function Dm(r,t,e=0,n=!1){let o=Hs(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 ri(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 ri(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=W(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 ti(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 ti(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=W(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 xm(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,E=0;if(s)for(let $=0;$<A;$++)T+=b[(u+$)*2],E+=b[(u+$)*2+1],v[$*2]=T,v[$*2+1]=E;else for(let $=0;$<A;$++){let k=r.iget($);T+=k.re,E+=k.im,v[$*2]=T,v[$*2+1]=E}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),E=I;for(let k=o-1;k>=0;k--)T[k]=E%n[k],E=Math.floor(E/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 Cm(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,E=0;if(s)for(let $=0;$<A;$++){let k=b[(u+$)*2],V=b[(u+$)*2+1],j=T*k-E*V,R=T*V+E*k;T=j,E=R,v[$*2]=T,v[$*2+1]=E}else for(let $=0;$<A;$++){let k=r.iget($),V=k.re,j=k.im,R=T*V-E*j,Y=T*j+E*V;T=R,E=Y,v[$*2]=T,v[$*2+1]=E}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),E=I;for(let k=o-1;k>=0;k--)T[k]=E%n[k],E=Math.floor(E/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 Sm(r,t,e=!1){let n=r.dtype;if(B(n)){let f=xt(r,t,e),m=Ct(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=xt(r,t,e),a=Ct(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 wm(r,t,e=!1){return $e(r,.5,t,e)}function Im(r,t,e,n=!1){return $e(r,t/100,e,n)}function $e(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 $e(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=W(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 jo(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 Zo(r,t,n);if(B(o)){let g=i,h=e.data,N=e.offset;if(t===void 0){let v=0,T=0,E=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,E+=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,E+=V}return E===0?new U(NaN,NaN):new U(v/E,T/E)}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 jo(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,E=0,$=0;for(let k=0;k<w;k++){let V=W(v,D,k,a),j=Z(V,c,s),R=Number(h[N+k%e.size]),Y=g[j*2],J=g[j*2+1];T+=Y*R,E+=J*R,$+=R}$===0?(I[v*2]=NaN,I[v*2+1]=NaN):(I[v*2]=T/$,I[v*2+1]=E/$)}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 jo(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=W(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 ei(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 ei(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=W(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=W(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 ni(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 ni(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=W(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=W(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 oi(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 oi(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=W(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=W(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 Ue(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/_,E=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;E+=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,Y=j-T;E+=R*R+Y*Y}}return E/(_-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 Ue(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=W(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,E=0;for(let $=0;$<N;$++){let k=W(C,A,$,a),V=Z(k,c,s),j=b[V*2],R=b[V*2+1];if(!ar(j,R)){let Y=j-v,J=R-T;E+=Y*Y+J*J}}D[C]=E/(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 Ue(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=W(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=W(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 zm(r,t,e=0,n=!1){let o=Ue(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 Lo(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,E=v.im;isNaN(T)||isNaN(E)||(w?(T<x||T===x&&E<C)&&(x=T,C=E):(x=T,C=E,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 Lo(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=W(x,b,I,o),T=Z(v,s,i),E=d[T*2],$=d[T*2+1];isNaN(E)||isNaN($)||(_?(E<C||E===C&&$<w)&&(C=E,w=$):(C=E,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 Lo(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=W(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 Go(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,E=v.im;isNaN(T)||isNaN(E)||(w?(T>x||T===x&&E>C)&&(x=T,C=E):(x=T,C=E,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 Go(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=W(x,b,I,o),T=Z(v,s,i),E=d[T*2],$=d[T*2+1];isNaN(E)||isNaN($)||(_?(E>C||E===C&&$>w)&&(C=E,w=$):(C=E,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 Go(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=W(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 Wo(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 Wo(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=W(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 Wo(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=W(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 Yo(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 Yo(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=W(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 Yo(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=W(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 _m(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,E=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,E+=j),v[k*2]=T,v[k*2+1]=E}else for(let k=0;k<b;k++){let V=r.iget(k),j=V.re,R=V.im;ar(j,R)||(T+=j,E+=R),v[k*2]=T,v[k*2+1]=E}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],E=Math.floor(I/w)%N,$=ar(v,T);E===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,E=v.im,$=Math.floor(I/w)%N,k=ar(T,E);$===0?(h[I*2]=k?0:T,h[I*2+1]=k?0:E):(h[I*2]=h[(I-w)*2]+(k?0:T),h[I*2+1]=h[(I-w)*2+1]+(k?0:E))}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 vm(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,E=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-E*j,Y=T*j+E*V;T=R,E=Y}v[k*2]=T,v[k*2+1]=E}else for(let k=0;k<b;k++){let V=r.iget(k),j=V.re,R=V.im;if(!ar(j,R)){let Y=T*j-E*R,J=T*R+E*j;T=Y,E=J}v[k*2]=T,v[k*2+1]=E}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],E=Math.floor(I/w)%N,$=ar(v,T);if(E===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,E=v.im,$=Math.floor(I/w)%N,k=ar(T,E);if($===0)h[I*2]=k?1:T,h[I*2+1]=k?0:E;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*E,h[I*2+1]=V*E+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 ai(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 ai(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=W(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 Jo(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 Jo(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=W(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 Mm(r,t,e,n=!1){return Jo(r,t/100,e,n)}function ke(r,t,e){let n=Ee(z(r),t,e);return typeof n=="number"||typeof n=="bigint"||n instanceof U?n:M(n)}function Re(r,t,e){let n=Zo(z(r),t,e);return typeof n=="number"||n instanceof U?n:M(n)}function qe(r,t,e){let n=Xs(z(r),t,e);return typeof n=="number"||typeof n=="bigint"||n instanceof U?n:M(n)}function Ve(r,t,e){let n=xt(z(r),t,e);return typeof n=="number"||n instanceof U?n:M(n)}var Xo=Ve;function Pe(r,t,e){let n=Ct(z(r),t,e);return typeof n=="number"||n instanceof U?n:M(n)}var Ko=Pe;function je(r,t,e){let n=Sm(z(r),t,e);return typeof n=="number"||n instanceof U?n:M(n)}function Le(r,t){let e=Ks(z(r),t);return typeof e=="number"?e:M(e)}function Ge(r,t){let e=Qs(z(r),t);return typeof e=="number"?e:M(e)}function Hr(r,t,e,n){let o=Hs(z(r),t,e,n);return typeof o=="number"?o:M(o)}var si=Hr;function We(r,t,e,n){let o=Dm(z(r),t,e,n);return typeof o=="number"?o:M(o)}function Ye(r,t,e){let n=wm(z(r),t,e);return typeof n=="number"?n:M(n)}function Ze(r,t,e,n){let o=Im(z(r),t,e,n);return typeof o=="number"?o:M(o)}function Je(r,t,e,n){let o=$e(z(r),t,e,n);return typeof o=="number"?o:M(o)}function Xe(r,t,e,n){let o=e?z(e):void 0,a=jo(z(r),t,o,n);return typeof a=="number"||a instanceof U?a:M(a)}function Ke(r,t,e){let n=ri(z(r),t,e);return typeof n=="boolean"?n:M(n)}function Qe(r,t,e){let n=ti(z(r),t,e);return typeof n=="boolean"?n:M(n)}function He(r,t){return M(xm(z(r),t))}function rn(r,t){return M(Cm(z(r),t))}function tn(r,t,e){let n=ei(z(r),t,e);return typeof n=="number"||n instanceof U?n:M(n)}function en(r,t,e){let n=ni(z(r),t,e);return typeof n=="number"||n instanceof U?n:M(n)}function nn(r,t,e){let n=oi(z(r),t,e);return typeof n=="number"||n instanceof U?n:M(n)}function on(r,t,e,n){let o=Ue(z(r),t,e,n);return typeof o=="number"?o:M(o)}function an(r,t,e,n){let o=zm(z(r),t,e,n);return typeof o=="number"?o:M(o)}function sn(r,t,e){let n=Lo(z(r),t,e);return typeof n=="number"||n instanceof U?n:M(n)}function un(r,t,e){let n=Go(z(r),t,e);return typeof n=="number"||n instanceof U?n:M(n)}function cn(r,t){let e=Wo(z(r),t);return typeof e=="number"?e:M(e)}function ln(r,t){let e=Yo(z(r),t);return typeof e=="number"?e:M(e)}function fn(r,t){return M(_m(z(r),t))}function mn(r,t){return M(vm(z(r),t))}function pn(r,t,e){let n=ai(z(r),t,e);return typeof n=="number"?n:M(n)}function yn(r,t,e,n){let o=Jo(z(r),t,e,n);return typeof o=="number"?o:M(o)}function dn(r,t,e,n){let o=Mm(z(r),t,e,n);return typeof o=="number"?o:M(o)}function wt(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 bn(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function Bm(r,t){return typeof t=="number"?EA(r,t):bn(r,t)?OA(r,t):Ir(r,t,(e,n)=>wt(e)&&wt(n))}function OA(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.offset,u=t.offset,i=r.size,s=O(r.dtype),c=O(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 EA(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(O(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(O(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 Tm(r,t){if(typeof t=="number")return Fm(r,t);if(t.size===1&&!B(t.dtype)&&r.dtype===t.dtype){let e=Number(t.iget(0));return Fm(r,e)}return bn(r,t)?UA(r,t):Ir(r,t,(e,n)=>wt(e)||wt(n))}function UA(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.offset,u=t.offset,i=r.size,s=O(r.dtype),c=O(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 Fm(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(O(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(O(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 Om(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(O(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(O(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 Em(r,t){return typeof t=="number"?kA(r,t):bn(r,t)?$A(r,t):Ir(r,t,(e,n)=>wt(e)!==wt(n))}function $A(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.offset,u=t.offset,i=r.size,s=O(r.dtype),c=O(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 kA(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(O(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(O(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 Um(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(O(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(O(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 $m(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(O(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(O(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 km(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(O(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(O(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 Rm(r){let t=new Uint8Array(r.size);return S.fromData(t,Array.from(r.shape),"bool")}function qm(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 qA(r,t);if(bn(r,t))return RA(r,t);let e=Gr(r.shape,t.shape),n=e.reduce((s,c)=>s*c,1),o=S.zeros(e,"float64"),a=o.data,u=Qo(r,e),i=Qo(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 RA(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=O(r.dtype),l=O(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 qA(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(O(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 Vm(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(O(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(O(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 Pm(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 PA(r,t);if(bn(r,t))return VA(r,t);let e=Gr(r.shape,t.shape),n=e.reduce((s,c)=>s*c,1),o=S.zeros(e,"float64"),a=o.data,u=Qo(r,e),i=Qo(t,e);for(let s=0;s<n;s++){let c=Number(u.iget(s)),l=Number(i.iget(s));a[s]=St(c,l)}return o}function VA(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=O(r.dtype),l=O(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]=St(m,p)}return e}function PA(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(O(r.dtype)){let i=a;for(let s=0;s<o;s++)n[s]=St(Number(i[u+s]),t)}else for(let i=0;i<o;i++)n[i]=St(a[u+i],t)}else for(let a=0;a<o;a++)n[a]=St(Number(r.iget(a)),t);return e}function St(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 jm(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(O(r.dtype)){let u=o;for(let i=0;i<n;i++)e[i]=ii(Number(u[a+i]))}else for(let u=0;u<n;u++)e[u]=ii(o[a+u])}else for(let o=0;o<n;o++)e[o]=ii(Number(r.iget(o)));return t}function ii(r){if(Number.isNaN(r))return NaN;if(!Number.isFinite(r))return NaN;if(Math.abs(r)===0)return Number.MIN_VALUE;let e=St(r,1/0);return Math.abs(e-r)}function Qo(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 Lm(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 Gm(r){return B(r.dtype)}function Wm(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 Ym(r){return!B(r.dtype)}function Zm(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(!O(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 Jm(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(!O(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 Xm(r){return r.isFContiguous}function Km(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 Qm(r){return typeof r=="number"||typeof r=="bigint"||typeof r=="boolean"||typeof r=="string"}function Hm(r){return r==null?!1:typeof r[Symbol.iterator]=="function"}function rp(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 tp(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 LA(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=LA(r.shape,r.strides,t);return S.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function rt(r,t){return[r[t*2],r[t*2+1]]}function ep(r,t){if(B(r.dtype))return rt(r.data,t);let e=r.iget(t);return e instanceof U?[e.re,e.im]:[Number(e),0]}function It(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]=ep(o,s),[f,m]=ep(a,s);i[s]=e(c,l,f,m)?1:0}return S.fromData(i,n,"bool")}function np(r,t){return typeof t=="number"?GA(r,t):B(r.dtype)||B(t.dtype)?It(r,t,(e,n,o,a)=>e!==o?e>o:n>a):Ir(r,t,(e,n)=>e>n)}function op(r,t){return typeof t=="number"?WA(r,t):B(r.dtype)||B(t.dtype)?It(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"?YA(r,t):B(r.dtype)||B(t.dtype)?It(r,t,(e,n,o,a)=>e!==o?e<o:n<a):Ir(r,t,(e,n)=>e<n)}function sp(r,t){return typeof t=="number"?ZA(r,t):B(r.dtype)||B(t.dtype)?It(r,t,(e,n,o,a)=>e!==o?e<=o:n<=a):Ir(r,t,(e,n)=>e<=n)}function ip(r,t){return typeof t=="number"?JA(r,t):B(r.dtype)||B(t.dtype)?It(r,t,(e,n,o,a)=>e===o&&n===a):Ir(r,t,(e,n)=>e===n)}function up(r,t){return typeof t=="number"?XA(r,t):B(r.dtype)||B(t.dtype)?It(r,t,(e,n,o,a)=>e!==o||n!==a):Ir(r,t,(e,n)=>e!==n)}function ui(r,t,e=1e-5,n=1e-8){return typeof t=="number"?KA(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 cp(r,t,e=1e-5,n=1e-8){let o=ui(r,t,e,n),a=o.data;for(let u=0;u<o.size;u++)if(a[u]===0)return!1;return!0}function lp(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=O(o.dtype),c=O(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 GA(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]=rt(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 WA(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]=rt(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 YA(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]=rt(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 ZA(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]=rt(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 JA(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]=rt(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(O(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 XA(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]=rt(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 KA(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 An(r,t){let e=typeof t=="number"?t:z(t);return M(Bm(z(r),e))}function gn(r,t){let e=typeof t=="number"?t:z(t);return M(Tm(z(r),e))}function hn(r){return M(Om(z(r)))}function Nn(r,t){let e=typeof t=="number"?t:z(t);return M(Em(z(r),e))}function Dn(r){return M(Um(z(r)))}function xn(r){return M($m(z(r)))}function Cn(r){return M(km(z(r)))}function Sn(r){return M(Rm(z(r)))}function ci(r){return M(Zm(z(r)))}function li(r){return M(Jm(z(r)))}function fi(r){return M(Lm(z(r)))}function mi(r){return Gm(z(r))}function pi(r){return M(Wm(z(r)))}function yi(r){return Ym(z(r))}function di(r,t){return M(Km(z(r),t))}function bi(r){return Xm(z(r))}function Ai(r){return Qm(r)}function gi(r){return Hm(r)}function hi(r,t){return rp(r,t)}function Ni(r,t){return tp(r,t)}function wn(r,t){let e=typeof t=="number"?t:z(t);return M(qm(z(r),e))}function In(r){return M(Vm(z(r)))}function zn(r,t){let e=typeof t=="number"?t:z(t);return M(Pm(z(r),e))}function _n(r){return M(jm(z(r)))}function vn(r,t){return M(np(z(r),typeof t=="number"?t:z(t)))}function Mn(r,t){return M(op(z(r),typeof t=="number"?t:z(t)))}function Fn(r,t){return M(ap(z(r),typeof t=="number"?t:z(t)))}function Bn(r,t){return M(sp(z(r),typeof t=="number"?t:z(t)))}function Tn(r,t){return M(ip(z(r),typeof t=="number"?t:z(t)))}function On(r,t){return M(up(z(r),typeof t=="number"?t:z(t)))}function En(r,t,e=1e-5,n=1e-8){return M(ui(z(r),typeof t=="number"?t:z(t),e,n))}function Un(r,t,e=1e-5,n=1e-8){return cp(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 tt(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 mp(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=W(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)=>tt(g.re,g.im,h.re,h.im));for(let g=0;g<f;g++){let h=W(b,s,g,e),N=Dr(h,e);d[N*2]=A[g].re,d[N*2+1]=A[g].im}}}else if(O(o)){let y=a,d=l;for(let b=0;b<p;b++){let A=[];for(let g=0;g<f;g++){let h=W(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=W(b,s,g,e),N=Dr(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=W(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=W(y,s,b,e),g=Dr(A,e);l[g]=d[b]}}return c}function pp(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=W(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)=>tt(A.re,A.im,g.re,g.im));for(let A=0;A<f;A++){let g=W(d,s,A,e),h=Dr(g,e);l[h]=b[A].idx}}}else if(O(o)){let y=a;for(let d=0;d<p;d++){let b=[];for(let A=0;A<f;A++){let g=W(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=W(d,s,A,e),h=Dr(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=W(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=W(y,s,b,e),g=Dr(A,e);l[g]=d[b].idx}}return c}function yp(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 QA(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 HA(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 rg(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 tg(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 dp(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(O(a)){let p=l;for(let y=0;y<m;y++){let d=[];for(let b=0;b<i;b++){let A=W(y,u,b,n),g=Dr(A,n);d.push(p[g])}HA(d,s);for(let b=0;b<i;b++){let A=W(y,u,b,n),g=Dr(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=W(p,u,d,n),A=Dr(b,n);y.push(Number(l[A]))}QA(y,s);for(let d=0;d<i;d++){let b=W(p,u,d,n),A=Dr(b,n);l[A]=y[d]}}return c}function bp(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(O(a)){let b=u;for(let A=0;A<d;A++){let g=[];for(let h=0;h<l;h++){let N=W(A,c,h,n),D=Z(N,s,i);g.push({value:b[D],idx:h})}tg(g,f);for(let h=0;h<l;h++){let N=W(A,c,h,n),D=Dr(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=W(b,c,g,n),N=Z(h,s,i);A.push({value:Number(u[N]),idx:g})}rg(A,f);for(let g=0;g<l;g++){let h=W(b,c,g,n),N=Dr(h,n);p[N]=A[g].idx}}return m}function Ap(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)=>tt(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 Di(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 gp(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 hp(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 Np(r,t,e){if(t===void 0&&e===void 0)return Di(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 Y=Array(u).fill(1);for(let J=0;J<R.length;J++)Y[u-R.length+J]=R[J];return Y},s=i(n),c=i(o),l=i(a),f=[];for(let R=0;R<u;R++){let Y=[s[R],c[R],l[R]],J=Math.max(...Y);for(let X of Y)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,Y)=>{let J=[],X=1;for(let rr=R.length-1;rr>=0;rr--)J.unshift(X),X*=R[rr];for(;J.length<Y.length;)J.unshift(0);for(let rr=0;rr<Y.length;rr++)Y[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,Y)=>R*Y,1),x=B(r.dtype),C=B(m),w=r.isCContiguous,_=r.data,I=r.offset,v=t.isCContiguous,T=t.data,E=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,Y)=>R===f[Y])&&o.every((R,Y)=>R===f[Y])&&a.every((R,Y)=>R===f[Y])&&w&&v&&$)if(C){let R=y,Y=T,J=k;for(let X=0;X<D;X++)gr(_,I+X,x)?(R[X*2]=Y[(E+X)*2],R[X*2+1]=Y[(E+X)*2+1]):(R[X*2]=J[(V+X)*2],R[X*2+1]=J[(V+X)*2+1])}else if(O(m)){let R=y,Y=T,J=k;for(let X=0;X<D;X++)gr(_,I+X,x)?R[X]=Y[E+X]:R[X]=J[V+X]}else for(let R=0;R<D;R++)gr(_,I+R,x)?y[R]=T[E+R]:y[R]=k[V+R];else for(let R=0;R<D;R++){let Y=R,J=0,X=0,rr=0;for(let nr=0;nr<u;nr++){let dr=Math.floor(Y/h[nr]);Y=Y%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[(E+X)*2],y[R*2+1]=nr[(E+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[E+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 Dp(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];tt(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];tt(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);tt(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);tt(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 xp(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(O(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(O(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 xi(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 xi(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=W(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(mp(z(r),t))}function kn(r,t=-1){return M(pp(z(r),t))}function Ci(r){return M(yp(r.map(t=>z(t))))}function Rn(r,t,e=-1){return M(dp(z(r),t,e))}function qn(r,t,e=-1){return M(bp(z(r),t,e))}function Si(r){return M(Ap(z(r)))}function Vn(r){return $r(Di(z(r)))}function Pn(r){return M(gp(z(r)))}function wi(r){return M(hp(z(r)))}function Ii(r,t,e){let n=Np(z(r),t?z(t):void 0,e?z(e):void 0);return Array.isArray(n)?$r(n):M(n)}function jn(r,t,e="left"){return M(Dp(z(r),z(t),e))}function zi(r,t){return M(xp(z(r),z(t)))}function _i(r,t){let e=xi(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 Ln(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function wp(r,t){return vr(r.dtype,"bitwise_and"),typeof t=="number"?og(r,t):(vr(t.dtype,"bitwise_and"),Ln(r,t)?ng(r,t):sr(r,t,(e,n)=>e&n,"bitwise_and"))}function ng(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(O(e)){let l=c;if(!O(r.dtype)||!O(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 og(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(O(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 Ip(r,t){return vr(r.dtype,"bitwise_or"),typeof t=="number"?sg(r,t):(vr(t.dtype,"bitwise_or"),Ln(r,t)?ag(r,t):sr(r,t,(e,n)=>e|n,"bitwise_or"))}function ag(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(O(e)){let l=c;if(!O(r.dtype)||!O(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 sg(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(O(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 zp(r,t){return vr(r.dtype,"bitwise_xor"),typeof t=="number"?ug(r,t):(vr(t.dtype,"bitwise_xor"),Ln(r,t)?ig(r,t):sr(r,t,(e,n)=>e^n,"bitwise_xor"))}function ig(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(O(e)){let l=c;if(!O(r.dtype)||!O(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 ug(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(O(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 Fi(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(O(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 _p(r){return Fi(r)}function vp(r,t){if(vr(r.dtype,"left_shift"),typeof t=="number")return Cp(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 Cp(r,e)}return Ln(r,t)?cg(r,t):sr(r,t,(e,n)=>e<<n,"left_shift")}function cg(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(O(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 Cp(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(O(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 Mp(r,t){if(vr(r.dtype,"right_shift"),typeof t=="number")return Sp(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 Sp(r,e)}return Ln(r,t)?lg(r,t):sr(r,t,(e,n)=>e>>n,"right_shift")}function lg(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(O(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 Sp(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(O(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 Fp(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=Ho(n),A=Ho(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,Y)=>R*Y,1):1,j=Math.floor(T/V);T%=V,v+=j*b[k]}v+=I*b[t];let E=h;for(let k=t+1;k<o;k++){let V=k<o-1?p.slice(k-t).reduce((R,Y)=>R*Y,1):1,j=Math.floor(E/V);E%=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,E)=>T*E,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,E)=>T*E,1):1,v=Math.floor(w/I);w%=I,x+=v*A[_]}c[x]=D}return s}function Bp(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=Ho(o),g=Ho(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((E,$)=>E*$,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((E,$)=>E*$,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 E=0;E<t;E++){let $=E<t-1?p.slice(E+1).reduce((V,j)=>V*j,1):1,k=Math.floor(C/$);C%=$,T+=k*g[E]}T+=v*g[t],w=N;for(let E=t+1;E<a;E++){let $=E<a-1?y.slice(E-t).reduce((V,j)=>V*j,1):1,k=Math.floor(w/$);w%=$,T+=k*g[E]}n==="big"?l[T]=_>>7-I&1:l[T]=_>>I&1}}return c}function Ho(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 Tp(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(O(t))if(u){let c=n;if(o===0)for(let l=0;l<a;l++)s[l]=Mi(c[l]);else for(let l=0;l<a;l++)s[l]=Mi(c[o+l])}else for(let c=0;c<a;c++)s[c]=Mi(r.iget(c));else if(u)if(o===0)for(let c=0;c<a;c++)s[c]=vi(n[c]);else for(let c=0;c<a;c++)s[c]=vi(n[o+c]);else for(let c=0;c<a;c++)s[c]=vi(Number(r.iget(c)));return i}function vi(r){r=r>>>0;let t=0;for(;r!==0;)r=r&r-1,t++;return t}function Mi(r){r<0n&&(r=BigInt.asUintN(64,r));let t=0;for(;r!==0n;)r=r&r-1n,t++;return t}function Gn(r,t){let e=typeof t=="number"?t:z(t);return M(wp(z(r),e))}function Wn(r,t){let e=typeof t=="number"?t:z(t);return M(Ip(z(r),e))}function Yn(r,t){let e=typeof t=="number"?t:z(t);return M(zp(z(r),e))}function Zn(r){return M(Fi(z(r)))}function Jn(r){return M(_p(z(r)))}function Xn(r,t){let e=typeof t=="number"?t:z(t);return M(vp(z(r),e))}function Kn(r,t){let e=typeof t=="number"?t:z(t);return M(Mp(z(r),e))}function Bi(r,t,e){return M(Fp(z(r),t,e))}function Ti(r,t,e,n){return M(Bp(z(r),t,e,n))}function Oi(r){return M(Tp(z(r)))}function ra(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 Op(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]=ra(m*s)/s}}else for(let c=0;c<o;c++){let l=Number(r.iget(c));i[c]=ra(l*s)/s}return u}function Ep(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 Up(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 $p(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 kp(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]=ra(Number(i[s+c]))}else for(let i=0;i<n;i++)u[i]=ra(Number(r.iget(i)));return a}function Rp(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 zt(r,t=0){return M(Op(z(r),t))}var Ei=zt;function Qn(r){return M(Ep(z(r)))}function Hn(r){return M(Up(z(r)))}function ro(r){return M($p(z(r)))}function to(r){return M(kp(z(r)))}function eo(r){return M(Rp(z(r)))}function Ui(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 pg(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 xr(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,Y)=>Ui(R.re,R.im,Y.re,Y.im));let x=[],C=[],w=new Array(a),_=[],I,v,T=0;for(let R=0;R<D.length;R++){let{re:Y,im:J,index:X}=D[R];I===void 0||!pg(Y,J,I,v)?(I!==void 0&&_.push(T),x.push({re:Y,im:J}),C.push(X),T=1,I=Y,v=J):T++}T>0&&_.push(T);let E=new Map,$=-1;for(let R=0;R<x.length;R++){let{re:Y,im:J}=x[R];isNaN(Y)||isNaN(J)?$=R:E.set(`${Y},${J}`,R)}for(let R=0;R<a;R++){let Y=N[(i+R)*2],J=N[(i+R)*2+1];isNaN(Y)||isNaN(J)?w[R]=$:w[R]=E.get(`${Y},${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"),Y=R.data;for(let J=0;J<C.length;J++)Y[J]=C[J];j.indices=R}if(e){let R=S.zeros([w.length],"int32"),Y=R.data;for(let J=0;J<w.length;J++)Y[J]=w[J];j.inverse=R}if(n){let R=S.zeros([_.length],"int32"),Y=R.data;for(let J=0;J<_.length;J++)Y[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 qp(r,t){return $i(r,t)}function Vp(r,t){let e=r.dtype,n=B(e),o=xr(r),a=xr(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 $i(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 Pp(r,t){let e=r.dtype,n=B(e),o=xr(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 jp(r,t){let e=r.dtype,n=B(e),o=xr(r),a=xr(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)=>Ui(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 Lp(r,t){let e=r.dtype,n=B(e),o=xr(r),a=xr(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)=>Ui(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 Gp(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 Wp(r){let e=xr(r,!0,!0,!0);return{values:e.values,indices:e.indices,inverse_indices:e.inverse,counts:e.counts}}function Yp(r){let e=xr(r,!1,!1,!0);return{values:e.values,counts:e.counts}}function Zp(r){let e=xr(r,!1,!0,!1);return{values:e.values,inverse_indices:e.inverse}}function Jp(r){return xr(r)}function ki(r,t=!1,e=!1,n=!1){let o=xr(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 Ri(r,t){return M(qp(z(r),z(t)))}function qi(r,t){return M(Vp(z(r),z(t)))}function Vi(r,t){return M($i(z(r),z(t)))}function Pi(r,t){return M(Pp(z(r),z(t)))}function ji(r,t){return M(jp(z(r),z(t)))}function Li(r,t){return M(Lp(z(r),z(t)))}function Gi(r,t){return M(Gp(z(r),t))}function Wi(r){let t=Wp(z(r));return{values:M(t.values),indices:M(t.indices),inverse_indices:M(t.inverse_indices),counts:M(t.counts)}}function Yi(r){let t=Yp(z(r));return{values:M(t.values),counts:M(t.counts)}}function Zi(r){let t=Zp(z(r));return{values:M(t.values),inverse_indices:M(t.inverse_indices)}}function Ji(r){return M(Jp(z(r)))}function Xp(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 Kp(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=dg(o,u,l):f=no(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 dg(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 no(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 Qp(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=no(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 Hp(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=no(c,c.length,g)-1,x=no(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 ry(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],_=no(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 Ki(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 ty(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 Ki(r,u,e)}function Qi(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,E=0,$=0,k=0,V=0,j=0,R=0,Y=0;for(let rr=0;rr<d;rr++){let yr,nr,dr,Or;b?(yr=u[rr*2]-w,nr=u[rr*2+1]-_):(yr=Number(u[rr])-w,nr=0),A?(dr=y[rr*2]-I,Or=y[rr*2+1]-v):(dr=Number(y[rr])-I,Or=0),T+=yr*yr+nr*nr,$+=dr*dr+Or*Or,V+=yr*dr+nr*Or,j+=nr*dr-yr*Or,R+=dr*yr+Or*nr,Y+=Or*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,Y/=J;let X=new Float64Array(8);return X[0]=T,X[1]=E,X[2]=V,X[3]=j,X[4]=R,X[5]=Y,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 ey(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=Qi(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 ny(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=Xi(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 Xi(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 Xi(r,t,e,n,"sturges");let d=2*y/Math.pow(s,1/3);return Math.ceil(a/d)}case"doane":{let d=bg(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 Xi(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 bg(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 oy(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 Hi(r,t,e){let n=t?z(t):void 0;return M(Xp(z(r),n,e))}function ru(r,t,e){return M(Kp(z(r),z(t),e))}function tu(r,t,e,n,o){let a=t instanceof P?z(t):t,u=o?z(o):void 0,i=Qp(z(r),a,e,n,u);return[M(i.hist),M(i.bin_edges)]}function eu(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=Hp(z(r),z(t),u,n,o,i);return[M(s.hist),M(s.x_edges),M(s.y_edges)]}function nu(r,t,e,n,o){let a=o?z(o):void 0,u=ry(z(r),t,e,n,a);return[M(u.hist),u.edges.map(i=>M(i))]}function ou(r,t,e){return M(Ki(z(r),z(t),e))}function au(r,t,e){return M(ty(z(r),z(t),e))}function su(r,t,e,n,o){return M(Qi(z(r),t?z(t):void 0,e,n,o))}function iu(r,t,e){return M(ey(z(r),t?z(t):void 0,e))}function uu(r,t,e,n){return M(ny(z(r),t,e,n?z(n):void 0))}function cu(r,t,e,n){let o=oy(z(r),t?z(t):void 0,e,n);return typeof o=="number"?o:M(o)}function ay(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=gg(u,a);return u}function gg(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=O(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=(O(u),Number(r.data[p+h])),x=(O(u),Number(r.data[p+N]));l[y]=x-D}}return c}function sy(r,t=null,e=null){let n=r.size,o=r.dtype,a=B(o),u=O(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=(O(o),Number(r.iget(y))),b=(O(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 iy(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(hg(r,a[s],u[s]));return i.length===1?i[0]:i}function hg(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=O(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],E=D[(d+I)*2],$=D[(d+I)*2+1];C=(E-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],E=D[(d+I)*2],$=D[(d+I)*2+1];C=(v-E)/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 E=D[(d+v)*2],$=D[(d+v)*2+1],k=D[(d+T)*2],V=D[(d+T)*2+1];C=(E-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=(O(u),Number(r.data[h]));D=((O(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=(O(u),Number(r.data[h])),_=(O(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=(O(u),Number(r.data[d+w])),v=(O(u),Number(r.data[d+_]));D=(I-v)/p}l[b]=D}}return c}function oo(r,t,e){return M(ay(z(r),t,e))}function lu(r,t,e){return M(sy(z(r),t??null,e??null))}function fu(r,t,e){let n=iy(z(r),t,e);return Array.isArray(n)?$r(n):M(n)}function uy(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(B(t)){let o=Ft(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 cy(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(B(t)){let a=Ft(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 ly(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 fy(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 mu(r){return M(uy(z(r)))}function pu(r){return M(cy(z(r)))}function ao(r){return M(ly(z(r)))}function yu(r,t){return M(fy(z(r),t))}function du(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 my(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 py(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);O(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];O(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 yy(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];O(o)?typeof s!="bigint"&&(s=BigInt(Math.round(Number(s)))):typeof s=="bigint"&&(s=Number(s)),r.iset(i,s)}}function dy(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);O(o),f[m]=y}return S.fromData(f,u,o)}function by(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 Ay(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);O(a),f[d]=x}return S.fromData(f,s,a)}function gy(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];O(u)?typeof D!="bigint"&&(D=BigInt(Math.round(Number(D)))):typeof D=="bigint"&&(D=Number(D)),r.iset(C,D)}}function hy(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];O(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),r.iset(i,c),u++}}function Ny(r,t,e){let n=t.shape,o=n.length,a=t.dtype,u=O(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 E=0;E<N;E++)x[C+E]&&w++;else for(let E=0;E<N;E++)r.iget(E)&&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 E=t.data,$=t.offset;if(u){let k=I,V=E;for(let j=0;j<N;j++)x[C+j]&&(k[v++]=V[$+j])}else{let k=I,V=E;for(let j=0;j<N;j++)x[C+j]&&(k[v++]=V[$+j])}}else for(let E=0;E<N;E++)(D?x[C+E]:r.iget(E))&&(I[v]=t.iget(E),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 Dy(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;O(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++)O(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);O(a),c[m]=y;break}return S.fromData(c,o,a)}function xy(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];O(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),r.iset(i,c),u++}}function bu(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 Cy(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 bu(n,e)}function Au(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 Sy(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return Au(e[0],t,e[1])}function gu(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 wy(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return gu(e[0],t,e[1])}function Iy(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 zy(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 _y(...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);O(u),c[l]=f}e.push(S.fromData(c,i,u))}return e}function vy(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 My(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 Fy(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(O(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(O(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 By(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 Ty(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 hu(r,t){return r.data.buffer===t.data.buffer}function Oy(r,t){return hu(r,t)}var jr={divide:"warn",over:"warn",under:"ignore",invalid:"warn"};function Nu(){return{...jr}}function Ey(r,t,e,n,o){let a=Nu();return r!==void 0&&(jr.divide=r,jr.over=r,jr.under=r,jr.invalid=r),t!==void 0&&(jr.divide=t),e!==void 0&&(jr.over=e),n!==void 0&&(jr.under=n),o!==void 0&&(jr.invalid=o),a}function so(r,t){return hr(du(z(r),t),r)}function Du(...r){let t=r.map(z);return my(t).map(e=>M(e))}function xu(...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 _t(r,t,e){return M(py(z(r),t,e))}function io(r,t,e){let n=Array.isArray(e)?z(Q(e)):z(e);yy(z(r),t,n)}function Cu(r,t,e){return M(Ay(z(r),z(t),e))}function Su(r,t,e,n){gy(z(r),z(t),z(e),n)}function uo(r,t){let e=t.map(z);return M(dy(z(r),e))}function et(r,t,e){return M(Ny(z(r),z(t),e))}function wu(r,t,e=0){let n;return t instanceof P?n=Array.from(t.data):Array.isArray(t[0])?n=t.flat():n=t,_t(r,n,e)}function Iu(r,t,e){return et(t,r,e)}function zu(r,t,e=0){let n=r.map(z),o=t.map(z);return M(Dy(n,o,e))}function _u(r,t,e){xy(z(r),z(t),z(e))}function vu(r,t,e){hy(z(r),z(t),z(e))}function Mu(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=du(u,n);if(O(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 Fu(r,t="int32"){return M(zy(r,t))}function Bu(...r){let t=r.map(z);return _y(...t).map(e=>M(e))}function Tu(r,t,e="raise"){let n=r.map(z);return M(vy(n,t,e))}function Ou(r,t){let e=typeof r=="number"?z(Q([r])):z(r);return My(e,t).map(n=>M(n))}function Eu(r,t=2){return bu(r,t).map(e=>M(e))}function Uu(r){return Cy(z(r)).map(t=>M(t))}function $u(r,t,e=!1){Fy(z(r),t,e)}function ku(r,t=0,e){return Au(r,t,e).map(n=>M(n))}function Ru(r,t=0){return Sy(z(r),t).map(e=>M(e))}function qu(r,t=0,e){return gu(r,t,e).map(n=>M(n))}function Vu(r,t=0){return wy(z(r),t).map(e=>M(e))}function Pu(r,t,e=0){return Iy(r,(o,a)=>z(t(o,a)),e).map(o=>M(o))}function ju(r,t,e=!1){return by(z(r),z(t),e)}function Lu(r,t){return lp(z(r),z(t))}function Gu(r,t,e){let n=o=>{let a=r(M(o));return typeof a=="number"?a:z(a)};return M(By(z(e),t,n))}function Wu(r,t,e){let n=(o,a)=>z(r(M(o),a));return M(Ty(z(t),n,e))}function Yu(r,t){return hu(z(r),z(t))}function Zu(r,t){return Oy(z(r),z(t))}var Ju=Nu,Xu=Ey;var Cg={threshold:1e3,edgeitems:3,precision:8,linewidth:75,floatmode:"maxprec",suppress:!0,separator:" ",prefix:"",suffix:"",nanstr:"nan",infstr:"inf",sign:"-",legacy:!1},cr={...Cg};function Uy(r){cr={...cr,...r}}function $y(){return{...cr}}function ky(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 Ku(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 Ry(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 qy(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 Vy(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 ea(r,t,e){if(r instanceof U){let n=ea(r.re,"float64",e),o=ea(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.":Ku(r,e.precision,!1,!0,"k",e.sign):r.toString():Number.isNaN(r)?e.nanstr:(r>0?"":"-")+e.infstr}function ta(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 ea(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(ta(r,m,e+1,n));f.push("...");for(let p=u-s;p<u;p++)m[e]=p,f.push(ta(r,m,e+1,n))}else for(let p=0;p<u;p++)m[e]=p,f.push(ta(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 na(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 ea(f,r.dtype,c)}let l=ta(r,new Array(r.ndim).fill(0),0,c);return c.prefix+l+c.suffix}function Py(r,t=null,e=null,n=null){let a="array("+na(r,t,e,n,", ");return r.dtype!=="float64"&&(a+=`, dtype='${r.dtype}'`),a+=")",a}function jy(r,t=null,e=null,n=null){return na(r,t,e,n)}var Qu=Uy,Hu=$y,rc=ky,tc=Ku,ec=Ry,nc=qy,oc=Vy;function ac(r,t){return na(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 sc(r,t,e,n){return Py(z(r),t,e,n)}function ic(r,t,e){return jy(z(r),t,e)}function uc(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 oa(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 cc(r){return r instanceof P?r.size:typeof r=="number"||typeof r=="bigint"||typeof r=="boolean"?1:Array.isArray(r)?oa(r).reduce((e,n)=>e*n,1):1}function lc(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 fc(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 mc(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 pc(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 yc(r,t){if(!t||t===r.dtype)return r.copy();throw new Error("view with different dtype not fully implemented")}function dc(r,t,e="",n=""){throw new Error("tofile requires Node.js file system access. Use serializeNpy for portable serialization.")}function bc(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 Ac(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 Dt([o,a],0)}return Dt([r,n],e)}function aa(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 gc(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 hc(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 xc=["int8","int16","int32","int64"],Cc=["uint8","uint16","uint32","uint64"],Gy=[...xc,...Cc],Nc=["float32","float64"],Dc=["complex64","complex128"],wg=[...Gy,...Nc,...Dc],Ly={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 sa(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=Ly[n]??-1,a=Ly[t]??-1;if(e==="safe"){if(Ur(n)&&Er(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)||Er(n)&&B(t)||o<=a)}return e==="same_kind"?!!(Ur(n)&&Ur(t)||Er(n)&&Er(t)||B(n)&&B(t)||n==="bool"&&Ur(t)||n==="bool"&&t==="bool"||Er(n)&&B(t)):!1}function Sc(...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)):Er(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 wc(...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(Er),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=>xc.includes(c)),u=t.some(c=>Cc.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 Ic(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 zc(r,t){let e=r instanceof P?r.dtype:r;if(typeof t=="string")switch(t){case"number":case"numeric":return wg.includes(e);case"integer":case"int":return Gy.includes(e);case"signedinteger":return xc.includes(e);case"unsignedinteger":return Cc.includes(e);case"floating":case"float":return Nc.includes(e);case"complexfloating":case"complex":return Dc.includes(e);case"inexact":return Nc.includes(e)||Dc.includes(e);default:return e===t}return e===t}function _c(r){return r}function vc(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(!sa(m,c,"safe")){f=!1;break}f&&l<i&&(i=l,u=s)}return u}function Cr(r){return r instanceof P?r:Q(r)}function Mc(r){let t=Cr(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 Fc(r,t){let e=Cr(r),n=Cr(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 Bc(r,t=1){let e=Cr(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 Tc(r,t){let e=[...Cr(r).data],n=[...Cr(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 Oc(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 Ec(r,t=1,e=0){let n=Cr(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 Uc(r,t){let e=Cr(r),n=Cr(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 $c(r,t){let e=Cr(r),n=Cr(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 kc(r,t){let e=Cr(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 Rc(r){let e=[...Cr(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 Wy([],[]);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=Ig(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 Wy(c,l)}function Wy(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 Ig(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 zg(e,t)}function zg(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(...Yy(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(...Yy(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 Yy(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]),Jy=["float64","float32","complex128","complex64","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"];function qc(){let r=new ArrayBuffer(2);return new DataView(r).setInt16(0,256,!0),new Int16Array(r)[0]===256}var _g={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"},Vc={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"},Zy={S:"byte strings",U:"Unicode strings",O:"Python objects",V:"structured arrays (void)",M:"datetime64",m:"timedelta64"};function Xy(r){if(r.startsWith("[")||r.startsWith("("))throw new Zr(`Structured/compound dtypes are not supported: ${r}`);let t="",e=r;(r[0]==="<"||r[0]===">"||r[0]==="="||r[0]==="|")&&(t=r[0],e=r.slice(1));let n=e[0];if(n&&n in Zy)throw new Zr(`Unsupported dtype: ${Zy[n]} (${r}). Use the 'force' parameter to skip arrays with unsupported dtypes.`);let o=_g[e];if(!o)throw new Zr(`Unknown or unsupported dtype descriptor: ${r}. Supported types: ${Jy.join(", ")}. Use the 'force' parameter to skip arrays with unsupported dtypes.`);let a=qc(),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 Zr=class extends Error{constructor(t){super(t),this.name="UnsupportedDTypeError"}},Sr=class extends Error{constructor(t){super(t),this.name="InvalidNpyError"}};function nt(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=Pc(t);return jc(t,e)}function Pc(r){if(r.length<10)throw new Sr("File too small to be a valid NPY file");for(let c=0;c<co.length;c++)if(r[c]!==co[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),i=new TextDecoder("utf-8").decode(u).trim(),s=vg(i);return{version:{major:t,minor:e},header:s,dataOffset:a}}function jc(r,t){let{header:e,dataOffset:n}=t,{dtype:o,needsByteSwap:a,itemsize:u}=Xy(e.descr),i=e.shape.reduce((d,b)=>d*b,1),s=i*u,c=r.length-n;if(c<s)throw new Sr(`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=Mg(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=Fg(b,d),p=e.shape}else y=S.fromData(m,[...p],o);return new P(y)}function vg(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(),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 Sr(`Invalid shape value: ${s}`);return c}),{descr:o,fortran_order:a,shape:i}}function Mg(r,t,e,n,o){let a=K(t);if(!a)throw new Sr(`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 Fg(r,t){let e=t.length,n=r.size,o=r.dtype,a=K(o);if(!a)throw new Sr(`Cannot create array for dtype: ${o}`);let u=new a(n),i=[...t].reverse(),s=Ky(t),c=Ky(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];O(o),u[p]=r.iget(f)}return S.fromData(u,i,o)}function Ky(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 ot(r){let t=r.shape,e=r.dtype,n=Vc[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=Lr(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 Bg(r,d.subarray(b),m),d}function Bg(r,t,e){let n=r.dtype,o=r.size,a=qc(),u=O(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?Tg(l,p,m,n==="uint64"):i?Og(l,p,m,n):Eg(l,p,m,n)}}}function Tg(r,t,e,n){n?r.setBigUint64(t,e,!0):r.setBigInt64(t,e,!0)}function Og(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 Eg(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 Ug=(()=>{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 Lc(r){let t=4294967295;for(let e=0;e<r.length;e++)t=Ug[(t^r[e])&255]^t>>>8;return(t^4294967295)>>>0}async function rd(r){let t=ed(r),e=new Map;for(let n of t){let o=await $g(n);e.set(n.name,o)}return e}function td(r){let t=ed(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 ed(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 $g(r){if(r.compressionMethod===0)return r.compressedData;if(r.compressionMethod===8)return await kg(r.compressedData);throw new Error(`Unsupported compression method: ${r.compressionMethod}`)}async function kg(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 fo(r,t={}){let e=t.force??!1,n=await rd(r);return nd(n,e)}function mo(r,t={}){let e=t.force??!1,n=td(r);return nd(n,e)}function nd(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=nt(u);e.set(i,s)}catch(s){if(s instanceof Zr&&t)n.push(i),o.set(i,s.message);else throw s}}return{arrays:e,skipped:n,errors:o}}async function od(r,t={}){let e=await fo(r,t);return Object.fromEntries(e.arrays)}function ad(r,t={}){let e=mo(r,t);return Object.fromEntries(e.arrays)}async function sd(r,t={}){let e=t.compress??!1,n=[];for(let[m,p]of r){let y=Lc(p),d,b;e?(d=await qg(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=ud(s,c,l,m);let f=l;for(let m of n)l=cd(s,c,l,m);return ld(c,l,n.length,a,f),s}function id(r){let t=[];for(let[l,f]of r){let m=Lc(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=ud(u,i,s,l);let c=s;for(let l of t)s=cd(u,i,s,l);return ld(i,s,t.length,n,c),u}function ud(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 cd(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 ld(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 qg(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 Gc(r,t={}){let e=fd(r);return sd(e,{compress:t.compress??!1})}function Wc(r){let t=fd(r);return id(t)}function fd(r){let t=new Map;if(Array.isArray(r)){for(let n=0;n<r.length;n++){let o=r[n],a=ot(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=ot(o),u=n.endsWith(".npy")?n:`${n}.npy`;t.set(u,a)}return t}function at(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 po(r,t={}){let e={...t,missing_values:t.missing_values??["","nan","NaN","NA","N/A","-"],filling_values:t.filling_values??NaN};return at(r,e)}function yo(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 md(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 bo(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(md(l,e));else for(let l of c){let f=l.map(m=>md(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 tr)return r;let t=r.base?q(r.base):void 0;return tr.fromStorage(r.storage,t)},tr=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 Lr(this._storage.dtype)}get nbytes(){return this.size*this.itemsize}fill(t){let e=this._storage.dtype,n=this.size;if(O(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(O(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(O(n)&&!O(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(!O(n)&&O(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"&&!O(t)){let l=s;for(let f=0;f<a;f++)i[f]=l[f]}else if(!O(n)&&!O(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=zo(s);return _o(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=Ie(this,e).storage,a=n.data===this.data?this._base??this:void 0;return r.fromStorage(n,a)}ravel(){let t=ze(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;io(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(et(n,this,e))}choose(t){return q(uo(this,t))}clip(t,e){return q(ae(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(et(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=Lr(this.dtype),n=Lr(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(zt(this,t))}allclose(t,e=1e-5,n=1e-8){return Un(this,t,e,n)}isclose(t,e=1e-5,n=1e-8){return q(En(this,t,e,n))}average(t,e){let n=Xe(this,e,t);return n instanceof P?q(n):n}dot(t){let e=yt(this,t);return e instanceof P?q(e):e}trace(){return dt(this)}inner(t){let e=gt(this,t);return e instanceof P?q(e):e}tensordot(t,e=2){let n=Nt(this,t,e);return n instanceof P?q(n):n}divmod(t){let e=te(this,t);return[q(e[0]),q(e[1])]}searchsorted(t,e="left"){return q(jn(this,t,e))}sqrt(){return q(Et(this))}exp(){return q($t(this))}exp2(){return q(kt(this))}expm1(){return q(Rt(this))}log(){return q(qt(this))}log2(){return q(Vt(this))}log10(){return q(Pt(this))}log1p(){return q(jt(this))}absolute(){return q(Wt(this))}negative(){return q(Yt(this))}sign(){return q(Zt(this))}positive(){return q(Kt(this))}reciprocal(){return q(Qt(this))}ceil(){return q(Qn(this))}fix(){return q(Hn(this))}floor(){return q(ro(this))}rint(){return q(to(this))}trunc(){return q(eo(this))}sin(){return q(se(this))}cos(){return q(ie(this))}tan(){return q(ue(this))}arcsin(){return q(ce(this))}arccos(){return q(le(this))}arctan(){return q(fe(this))}degrees(){return q(ye(this))}radians(){return q(de(this))}sinh(){return q(be(this))}cosh(){return q(Ae(this))}tanh(){return q(ge(this))}arcsinh(){return q(he(this))}arccosh(){return q(Ne(this))}arctanh(){return q(De(this))}bitwise_not(){return q(Zn(this))}invert(){return q(Jn(this))}logical_not(){return q(hn(this))}isfinite(){return q(Dn(this))}isinf(){return q(xn(this))}isnan(){return q(Cn(this))}isnat(){return q(Sn(this))}signbit(){return q(In(this))}spacing(){return q(_n(this))}cbrt(){return q(Ht(this))}fabs(){return q(re(this))}square(){return q(ee(this))}conj(){return q(ao(this))}flatten(){return q(Br(this))}argwhere(){return q(Pn(this))}add(t){return q(Bt(this,t))}subtract(t){return q(Tt(this,t))}multiply(t){return q(Ot(this,t))}divide(t){return q(lt(this,t))}mod(t){return q(Jt(this,t))}floor_divide(t){return q(Xt(this,t))}power(t){return q(Ut(this,t))}logaddexp(t){return q(Lt(this,t))}logaddexp2(t){return q(Gt(this,t))}arctan2(t){return q(me(this,t))}hypot(t){return q(pe(this,t))}greater(t){return q(vn(this,t))}greater_equal(t){return q(Mn(this,t))}less(t){return q(Fn(this,t))}less_equal(t){return q(Bn(this,t))}equal(t){return q(Tn(this,t))}not_equal(t){return q(On(this,t))}bitwise_and(t){return q(Gn(this,t))}bitwise_or(t){return q(Wn(this,t))}bitwise_xor(t){return q(Yn(this,t))}left_shift(t){return q(Xn(this,t))}right_shift(t){return q(Kn(this,t))}logical_and(t){return q(An(this,t))}logical_or(t){return q(gn(this,t))}logical_xor(t){return q(Nn(this,t))}copysign(t){return q(wn(this,t))}nextafter(t){return q(zn(this,t))}remainder(t){return q(ne(this,t))}heaviside(t){return q(oe(this,t))}matmul(t){return q(we(this,t))}outer(t){return q(ht(this,t))}sum(t,e=!1){let n=ke(this,t,e);return n instanceof P?q(n):n}mean(t,e=!1){let n=Re(this,t,e);return n instanceof P?q(n):n}prod(t,e=!1){let n=qe(this,t,e);return n instanceof P?q(n):n}max(t,e=!1){let n=Ve(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=je(this,t,e);return n instanceof P?q(n):n}nansum(t,e=!1){let n=tn(this,t,e);return n instanceof P?q(n):n}nanprod(t,e=!1){let n=en(this,t,e);return n instanceof P?q(n):n}nanmean(t,e=!1){let n=nn(this,t,e);return n instanceof P?q(n):n}nanmin(t,e=!1){let n=sn(this,t,e);return n instanceof P?q(n):n}nanmax(t,e=!1){let n=un(this,t,e);return n instanceof P?q(n):n}argmin(t){let e=Le(this,t);return e instanceof P?q(e):e}argmax(t){let e=Ge(this,t);return e instanceof P?q(e):e}nanargmin(t){let e=cn(this,t);return e instanceof P?q(e):e}nanargmax(t){let e=ln(this,t);return e instanceof P?q(e):e}var(t,e=0,n=!1){let o=Hr(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=on(this,t,e,n);return o instanceof P?q(o):o}nanstd(t,e=0,n=!1){let o=an(this,t,e,n);return o instanceof P?q(o):o}all(t,e=!1){let n=Ke(this,t,e);return n instanceof P?q(n):n}any(t,e=!1){let n=Qe(this,t,e);return n instanceof P?q(n):n}median(t,e=!1){let n=Ye(this,t,e);return n instanceof P?q(n):n}nanmedian(t,e=!1){let n=pn(this,t,e);return n instanceof P?q(n):n}percentile(t,e,n=!1){let o=Ze(this,t,e,n);return o instanceof P?q(o):o}quantile(t,e,n=!1){let o=Je(this,t,e,n);return o instanceof P?q(o):o}nanquantile(t,e,n=!1){let o=yn(this,t,e,n);return o instanceof P?q(o):o}nanpercentile(t,e,n=!1){let o=dn(this,t,e,n);return o instanceof P?q(o):o}cumsum(t){return q(He(this,t))}cumprod(t){return q(rn(this,t))}nancumsum(t){return q(fn(this,t))}nancumprod(t){return q(mn(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(bt(this,t,e,n))}resize(t){return q(Oe(this,t))}diff(t=1,e=-1){return q(oo(this,t,e))}take(t,e){return q(_t(this,t,e))}repeat(t,e){return q(Be(this,t,e))}transpose(t){return q(At(this,t))}squeeze(t){return q(_e(this,t))}expand_dims(t){return q(ve(this,t))}swapaxes(t,e){return q(Me(this,t,e))}moveaxis(t,e){return q(Fe(this,t,e))}nonzero(){return Vn(this).map(q)}};function pd(...r){let t=[],e="xy";for(let i of r)i instanceof tr?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=so(f,o),p=tr.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 tr)return r;let t=r.base?F(r.base):void 0;return tr.fromStorage(r.storage,t)};function ah(r,t){return F(so(r,t))}function sh(r,t,e){return F(_t(r,t,e))}function ih(r,t,e){return F(Cu(r,t,e))}function uh(r,t){return F(uo(r,t))}function ch(r,t,e){return F(et(r,t,e))}function lh(r,t,e=0){return F(wu(r,t,e))}function fh(r,t,e){return F(Iu(r,t,e))}function mh(r,t,e=0){return F(zu(r,t,e))}function ph(r,t="int32"){return F(Fu(r,t))}function yh(r,t,e="raise"){return F(Tu(r,t,e))}function dh(r,t){return Ou(r,t).map(F)}function bh(r,t=2){return Eu(r,t).map(F)}function Ah(r){return Uu(r).map(F)}function gh(r,t=0,e){return ku(r,t,e).map(F)}function hh(r,t=0){return Ru(r,t).map(F)}function Nh(r,t=0,e){return qu(r,t,e).map(F)}function Dh(r,t=0){return Vu(r,t).map(F)}function xh(r,t,e=0){return Pu(r,t,e).map(F)}function Ch(r,t,e){return F(Gu(o=>r(F(o)),t,e))}function Sh(r,t,e){return F(Wu((o,a)=>r(F(o),a),t,e))}function wh(r,t){return F(Bt(r,t))}function Ih(r,t){return F(Tt(r,t))}function zh(r,t){return F(Ot(r,t))}function _h(r){return F(Et(r))}function yd(r,t){return F(Ut(r,t))}function vh(r){return F($t(r))}function Mh(r){return F(kt(r))}function Fh(r){return F(Rt(r))}function Bh(r){return F(qt(r))}function Th(r){return F(Vt(r))}function Oh(r){return F(Pt(r))}function Eh(r){return F(jt(r))}function Uh(r,t){return F(Lt(r,t))}function $h(r,t){return F(Gt(r,t))}function dd(r){return F(Wt(r))}function kh(r){return F(Yt(r))}function Rh(r){return F(Zt(r))}function qh(r,t){return F(Jt(r,t))}function Vh(r,t){return F(lt(r,t))}function Ph(r,t){return F(Xt(r,t))}function jh(r){return F(Kt(r))}function Lh(r){return F(Qt(r))}function Gh(r){return F(Ht(r))}function Wh(r){return F(re(r))}function Yh(r,t){let e=te(r,t);return[F(e[0]),F(e[1])]}function Zh(r){return F(ee(r))}function Jh(r,t){return F(ne(r,t))}function Xh(r,t){return F(oe(r,t))}function Kh(r,t){return F(ja(r,t))}function Qh(r,t){return F(La(r,t))}function Hh(r){let t=Ga(r);return[F(t[0]),F(t[1])]}function r0(r,t){return F(Wa(r,t))}function t0(r,t){return F(Ya(r,t))}function e0(r,t){return F(Za(r,t))}function n0(r){let t=Ja(r);return[F(t[0]),F(t[1])]}function o0(r,t,e){return F(ae(r,t,e))}function a0(r,t){return F(Xa(r,t))}function s0(r,t){return F(Ka(r,t))}function i0(r,t){return F(Qa(r,t))}function u0(r,t){return F(Ha(r,t))}function c0(r,t=0,e,n){return F(rs(r,t,e,n))}function l0(r,t,e,n,o){return F(ts(r,t,e,n,o))}function f0(r,t=Math.PI,e=-1,n=2*Math.PI){return F(es(r,t,e,n))}function m0(r){return F(ns(r))}function p0(r){return F(os(r))}function y0(r,t){return F(Gn(r,t))}function d0(r,t){return F(Wn(r,t))}function b0(r,t){return F(Yn(r,t))}function bd(r){return F(Zn(r))}function A0(r){return F(Jn(r))}function Ad(r,t){return F(Xn(r,t))}function gd(r,t){return F(Kn(r,t))}function g0(r,t,e){return F(Bi(r,t,e))}function h0(r,t,e,n){return F(Ti(r,t,e,n))}function N0(r){return F(Oi(r))}function D0(r){return F(mu(r))}function x0(r){return F(pu(r))}function hd(r){return F(ao(r))}function C0(r,t){return F(yu(r,t))}function S0(r,t=er){return F(wr(r,t))}function w0(r,t=er){return F(Mo(r,t))}function I0(r,t=er){return F(Fo(r,t))}function z0(r,t,e){return F(Bo(r,t,e))}function _0(r,t){return F(Q(r,t))}function v0(r,t,e=1,n=er){return F(da(r,t,e,n))}function M0(r,t,e=50,n=er){return F(ba(r,t,e,n))}function F0(r,t,e=50,n=10,o=er){return F(Aa(r,t,e,n,o))}function B0(r,t,e=50,n=er){return F(ga(r,t,e,n))}function T0(r,t,e=0,n=er){return F(To(r,t,e,n))}function O0(r,t=er){return F(ha(r,t))}function E0(r,t){return F(Jr(r,t))}function U0(r,t){return F(Na(r,t))}function $0(r,t){return F(Da(r,t))}function k0(r,t){return F(xa(r,t))}function R0(r,t,e){return F(Ca(r,t,e))}function q0(r){return F(Sa(r))}function V0(r,t){return F(wa(r,t))}function P0(r,t){return F(Ia(r,t))}function j0(r,t){return F(za(r,t))}function L0(r,t){return F(_a(r,t))}function G0(r,t,e){return F(va(r,t,e))}function W0(r,t=0){return F(Oo(r,t))}function Y0(r,t=0){return F(Ma(r,t))}function Z0(r,t,e=0,n=er){return F(Fa(r,t,e,n))}function J0(r,t=0){return F(Ba(r,t))}function X0(r,t=0){return F(Ta(r,t))}function K0(r,t,e=!1){return F(Oa(r,t,e))}function Q0(r,t=er,e=-1,n=0){return F(Ea(r,t,e,n))}function H0(r,t,e=er){return F(Ua(r,t,e))}function rN(r,t=er,e=-1){return F($a(r,t,e))}function tN(r,t=er,e=-1,n){return F(ka(r,t,e,n))}function eN(r,t=er,e=-1,n=""){return F(Ra(r,t,e,n))}function nN(r,t,e){return F(oo(r,t,e))}function oN(r,t,e){return F(lu(r,t,e))}function aN(r,t){let e=yt(r,t);return e instanceof P?F(e):e}function sN(r,t=0,e=0,n=1){return F(bt(r,t,e,n))}function iN(r,t){return F(xs(r,t))}function uN(r,t){return F(At(r,t))}function cN(r,t){let e=gt(r,t);return e instanceof P?F(e):e}function lN(r,t){return F(ht(r,t))}function fN(r,t,e=2){let n=Nt(r,t,e);return n instanceof P?F(n):n}function mN(r,t,e=-1){let n=ko(r,t,e);return n instanceof P?F(n):n}function pN(r){return F(Ro(r))}function yN(r,t){return F(qo(r,t))}function dN(r,t){return F(Is(r,t))}function bN(r,t){return F(zs(r,t))}function AN(r,t,e=-1,n=-1,o=-1,a){let u=Vo(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,tr.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,tr.fromStorage(S.fromData(m,[],i))}let s=K(i),c=new s(1);return c[0]=u,tr.fromStorage(S.fromData(c,[],i))}return F(u)}function gN(r,t){return F(we(r,t))}function hN(r,t){return F(An(r,t))}function NN(r,t){return F(gn(r,t))}function DN(r){return F(hn(r))}function xN(r,t){return F(Nn(r,t))}function CN(r){return F(Dn(r))}function SN(r){return F(xn(r))}function wN(r){return F(Cn(r))}function IN(r){return F(Sn(r))}function zN(r){return F(ci(r))}function _N(r){return F(li(r))}function vN(r){return F(fi(r))}function MN(r){return F(pi(r))}function FN(r,t){return F(di(r,t))}function BN(r,t){return F(wn(r,t))}function TN(r){return F(In(r))}function ON(r,t){return F(zn(r,t))}function EN(r){return F(_n(r))}function UN(r,t){return F(vn(r,t))}function $N(r,t){return F(Mn(r,t))}function kN(r,t){return F(Fn(r,t))}function RN(r,t){return F(Bn(r,t))}function qN(r,t){return F(Tn(r,t))}function VN(r,t){return F(On(r,t))}function PN(r,t,e=1e-5,n=1e-8){return F(En(r,t,e,n))}function jN(r){return F(Mc(r))}function LN(r,t){return F(Fc(r,t))}function GN(r,t=1){return F(Bc(r,t))}function WN(r,t){let e=Tc(r,t);return[F(e[0]),F(e[1])]}function YN(r,t,e){return F(Oc(r,t,e))}function ZN(r,t=1,e=0){return F(Ec(r,t,e))}function JN(r,t){return F(Uc(r,t))}function XN(r,t){return F($c(r,t))}function KN(r,t){let e=kc(r,t);return e instanceof P?F(e):e}function QN(r){return F(Rc(r))}function HN(r,t,e){let n=ke(r,t,e);return n instanceof P?F(n):n}function rD(r,t,e){let n=Re(r,t,e);return n instanceof P?F(n):n}function tD(r,t,e){let n=qe(r,t,e);return n instanceof P?F(n):n}function eD(r,t,e){let n=je(r,t,e);return n instanceof P?F(n):n}function nD(r,t){let e=Le(r,t);return e instanceof P?F(e):e}function oD(r,t){let e=Ge(r,t);return e instanceof P?F(e):e}function aD(r,t,e,n){let o=Hr(r,t,e,n);return o instanceof P?F(o):o}function sD(r,t,e,n){let o=We(r,t,e,n);return o instanceof P?F(o):o}function iD(r,t,e){let n=Ye(r,t,e);return n instanceof P?F(n):n}function uD(r,t,e,n){let o=Ze(r,t,e,n);return o instanceof P?F(o):o}function cD(r,t,e,n){let o=Je(r,t,e,n);return o instanceof P?F(o):o}function lD(r,t,e,n){let o=Xe(r,t,e,n);return o instanceof P?F(o):o}function fD(r,t,e){let n=Ke(r,t,e);return n instanceof P?F(n):n}function mD(r,t,e){let n=Qe(r,t,e);return n instanceof P?F(n):n}function Nd(r,t){return F(He(r,t))}function Dd(r,t){return F(rn(r,t))}function pD(r,t,e){let n=tn(r,t,e);return n instanceof P?F(n):n}function yD(r,t,e){let n=en(r,t,e);return n instanceof P?F(n):n}function dD(r,t,e){let n=nn(r,t,e);return n instanceof P?F(n):n}function bD(r,t,e,n){let o=on(r,t,e,n);return o instanceof P?F(o):o}function AD(r,t,e,n){let o=an(r,t,e,n);return o instanceof P?F(o):o}function gD(r,t,e){let n=sn(r,t,e);return n instanceof P?F(n):n}function hD(r,t,e){let n=un(r,t,e);return n instanceof P?F(n):n}function ND(r,t){let e=cn(r,t);return e instanceof P?F(e):e}function DD(r,t){let e=ln(r,t);return e instanceof P?F(e):e}function xD(r,t){return F(fn(r,t))}function CD(r,t){return F(mn(r,t))}function SD(r,t,e){let n=pn(r,t,e);return n instanceof P?F(n):n}function wD(r,t,e,n){let o=yn(r,t,e,n);return o instanceof P?F(o):o}function ID(r,t,e,n){let o=dn(r,t,e,n);return o instanceof P?F(o):o}function xd(r,t=0){return F(zt(r,t))}function zD(r){return F(Qn(r))}function _D(r){return F(Hn(r))}function vD(r){return F(ro(r))}function MD(r){return F(to(r))}function FD(r){return F(eo(r))}function BD(r,t){return F(Ri(r,t))}function TD(r,t){return F(qi(r,t))}function OD(r,t){return F(Vi(r,t))}function ED(r,t){return F(Pi(r,t))}function UD(r,t){return F(ji(r,t))}function $D(r,t){return F(Li(r,t))}function kD(r,t){return F(Gi(r,t))}function RD(r){return F(Ji(r))}function qD(r,t,e){return F(Ac(r,t,e))}function Cd(r,t,e){return F(aa(r,t,e))}function VD(r,t,e,n){return F(gc(r,t,e,n))}function PD(r,t,e="constant",n=0){return F(hc(r,t,e,n))}function jD(r,t){return F(Ie(r,t))}function LD(r){return F(Br(r))}function GD(r){return F(ze(r))}function WD(r,t){return F(_e(r,t))}function YD(r,t){return F(ve(r,t))}function ZD(r,t,e){return F(Me(r,t,e))}function JD(r,t,e){return F(Fe(r,t,e))}function XD(r,t,e=0){return F(vs(r,t,e))}function Sd(r,t=0){return F(Dt(r,t))}function KD(r,t=0){return F(Ms(r,t))}function QD(r){return F(Po(r))}function HD(r){return F(Fs(r))}function rx(r){return F(Bs(r))}function tx(r){return F(Ts(r))}function ex(r){return F(Es(r))}function nx(r,t=0){return Vs(r,t).map(F)}function ox(r,t){return F(Ps(r,t))}function ax(r,t,e){return F(Be(r,t,e))}function sx(r,t){return F(Te(r,t))}function ix(r){return F(js(r))}function ux(r){return F(Ls(r))}function cx(r,t=1,e=[0,1]){return F(Gs(r,t,e))}function lx(r,t,e){return F(Ws(r,t,e))}function fx(r,t){return F(Oe(r,t))}function mx(r,t=-1){return F($n(r,t))}function px(r,t=-1){return F(kn(r,t))}function yx(r){return F(Ci(r))}function dx(r,t,e=-1){return F(Rn(r,t,e))}function bx(r,t,e=-1){return F(qn(r,t,e))}function Ax(r){return F(Si(r))}function gx(r){return Vn(r).map(F)}function hx(r){return F(Pn(r))}function Nx(r){return F(wi(r))}function Dx(r,t){return F(zi(r,t))}function xx(r,t,e){return F(Hi(r,t,e))}function Cx(r,t,e){return F(ru(r,t,e))}function Sx(r,t,e){return F(ou(r,t,e))}function wx(r,t,e){return F(au(r,t,e))}function Ix(r,t,e,n,o){return F(su(r,t,e,n,o))}function zx(r,t,e){return F(iu(r,t,e))}function _x(r,t,e,n){let o=cu(r,t,e,n);return o instanceof P?F(o):o}function vx(r){return F(se(r))}function Mx(r){return F(ie(r))}function Fx(r){return F(ue(r))}function wd(r){return F(ce(r))}function Id(r){return F(le(r))}function zd(r){return F(fe(r))}function _d(r,t){return F(me(r,t))}function Bx(r,t){return F(pe(r,t))}function Tx(r){return F(ye(r))}function Ox(r){return F(de(r))}function Ex(r){return F(is(r))}function Ux(r){return F(us(r))}function $x(r){return F(be(r))}function kx(r){return F(Ae(r))}function Rx(r){return F(ge(r))}function vd(r){return F(he(r))}function Md(r){return F(Ne(r))}function Fd(r){return F(De(r))}var Tr=624,ua=397,qx=2567483615,Yc=2147483648,Zc=2147483647,Mr={mt:new Uint32Array(Tr),mti:Tr+1};function Td(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 Kc(){let r=Mr.mt,t,e=[0,qx];if(Mr.mti>=Tr){let n;for(Mr.mti===Tr+1&&Td(5489),n=0;n<Tr-ua;n++)t=r[n]&Yc|r[n+1]&Zc,r[n]=r[n+ua]^t>>>1^e[t&1];for(;n<Tr-1;n++)t=r[n]&Yc|r[n+1]&Zc,r[n]=r[n+(ua-Tr)]^t>>>1^e[t&1];t=r[Tr-1]&Yc|r[0]&Zc,r[Tr-1]=r[ua-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=Kc()>>>5,t=Kc()>>>6;return(r*67108864+t)/9007199254740992}var Vx=2468251765,Px=1492356589,jx=1135663077,Lx=2337405405,Gx=3389127133,Wx=1232336661,rl=16,ca=4;function mr(r){return r>>>0}function Jc(r,t){return r=mr(mr(r)^t.val),t.val=mr(Math.imul(t.val,Vx)),r=mr(Math.imul(r,t.val)),r=mr(r^r>>>rl),r}function Yx(r,t){let e=mr(mr(Math.imul(Gx,mr(r)))-mr(Math.imul(Wx,mr(t))));return e=mr(e^e>>>rl),e}function Zx(r){let t=[0,0,0,0],e=[r>>>0],n={val:jx};for(let o=0;o<ca;o++)o<e.length?t[o]=Jc(e[o],n):t[o]=Jc(0,n);for(let o=0;o<ca;o++)for(let a=0;a<ca;a++)if(o!==a){let u=Jc(t[o],n);t[a]=Yx(t[a],u)}return t}function Jx(r,t){let e=[],n=Lx;for(let o=0;o<t;o++){let a=r[o%ca],u=mr(a^n);n=mr(Math.imul(n,Px)),u=mr(Math.imul(u,n)),u=mr(u^u>>>rl),e.push(u)}return e}var Xx=BigInt("4865540595714422341"),Kx=BigInt("2549297995355413924"),Qx=Kx<<BigInt(64)|Xx,Xc=BigInt("0xffffffffffffffff"),Qc=(BigInt(1)<<BigInt(128))-BigInt(1);function Hx(r){let t=r>>BigInt(64),e=r&Xc,n=(t^e)&Xc,o=Number(r>>BigInt(122));return(n>>BigInt(o)|n<<BigInt(64-o))&Xc}function Hc(r,t){return r*Qx+t&Qc}function Bd(r){let t=Zx(r),e=Jx(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))&Qc;let c=BigInt(0);return c=Hc(c,s),c=c+i&Qc,c=Hc(c,s),{state:c,inc:s}}function r1(r){return r.state=Hc(r.state,r.inc),Hx(r.state)}function t1(r){let e=r1(r)>>BigInt(11);return Number(e)/9007199254740992}var Ao=class{constructor(t){if(t!==void 0)this._pcgState=Bd(t);else{let e=Math.floor(Math.random()*4294967296);this._pcgState=Bd(e)}}_randomFloat(){return t1(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]=go(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]=go(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 Gd(t,e,n,o,this._randomFloat.bind(this))}permutation(t){return Yd(t,this._randomFloat.bind(this))}shuffle(t){Jd(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 st(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(st(t,this._randomFloat.bind(this)));return a}binomial(t,e,n){if(n===void 0)return ho(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(ho(t,e,this._randomFloat.bind(this)));return u}};function Od(r){return new Ao(r)}function Ed(r){r==null&&(r=Math.floor(Date.now()^Math.random()*4294967296)),Td(r>>>0)}function Ud(){return{mt:Array.from(Mr.mt),mti:Mr.mti}}function $d(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 go(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 st(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 ho(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 No(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 kd(...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 Rd(...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]=go(G);n[o]=a,o+1<t&&(n[o+1]=u)}return e}function tl(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(O(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 qd(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 Vd(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]=go(G);u[i]=s*t+r,i+1<o&&(u[i+1]=c*t+r)}return a}function Pd(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]=go(G);o[a]=u,a+1<e&&(o[a+1]=i)}return n}function el(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 jd(r=1,t){if(t===void 0)return st(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(st(r,G));return o}function Ld(r,t,e){if(e===void 0)return ho(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(ho(r,t,G));return a}function Gd(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 Wd(r,t,e=!0,n){return Gd(r,t,e,n,G)}function Yd(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 Zd(r){return Yd(r,G)}function Jd(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 Xd(r){Jd(r,G)}function Kd(r){return No(r)}function Qd(r){return No(r)}function Hd(r){return No(r)}function rb(r,t,e){return t===void 0&&(t=r,r=1),tl(r,t+1,e)}function tb(r){let t=new Uint8Array(r);for(let e=0;e<r;e++)t[e]=Kc()&255;return t}var eb={name:"MT19937",state:Mr};function nb(){return eb}function ob(r){eb=r}function ab(r){return el(1,r)}function sb(r,t){if(r<=0)throw new Error("shape must be positive");return la(r,1,t)}function ib(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 ub(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 la(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 cb(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 lb(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 fb(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 mb(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 pb(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 yb(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 db(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 bb(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 Ab(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 gb(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 hb(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 Nb(r,t){if(r<=0)throw new Error("df must be positive");return la(r/2,2,t)}function Db(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=st(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 xb(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 Cb(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+st(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 Sb(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 wb(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 Ib(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 zb(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 st(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 _b(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 vb(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=ho(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 Mb(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 Fb(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 Bb(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 n1(r,t,e){let n=r.length;n!==0&&n!==1&&((n&n-1)===0?fa(r,t,e):a1(r,t,e))}var Do=new Map;function o1(r,t){let e=`${r}_${t}`,n=Do.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},Do.set(e,n),Do.size>100){let i=Do.keys().next().value;Do.delete(i)}return n}function fa(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}=o1(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 a1(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];fa(s,c,!1),fa(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}fa(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 vt(r,t,e=-1,n="backward"){return Mt(r,t!==void 0?[t]:void 0,[e],n,!1)}function xo(r,t,e=-1,n="backward"){return Mt(r,t!==void 0?[t]:void 0,[e],n,!0)}function Tb(r,t,e=[-2,-1],n="backward"){return Mt(r,t,e,n,!1)}function Ob(r,t,e=[-2,-1],n="backward"){return Mt(r,t,e,n,!0)}function Eb(r,t,e,n="backward"){return Mt(r,t,e,n,!1)}function Ub(r,t,e,n="backward"){return Mt(r,t,e,n,!0)}function Mt(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=Co(r);t!==void 0&&(c=s1(c,s,i));for(let l of i)c=u1(c,l,o,n);return c}function Co(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 s1(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=i1(o,a,i):o=nl(o,a,i),n[a]=i)}return o}function i1(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 nl(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 u1(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(n1(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 pa(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=vt(r,i,e,n),c=Math.floor(i/2)+1;return nl(s,u,c)}function So(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=Co(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=xo(l,s,e,n);return ma(d)}function $b(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=vt(r,t?t[0]:void 0,u,n),c=Array.from(s.shape),l=t?t[1]:c[i];s=vt(s,l,i,n);let f=Math.floor(l/2)+1;return nl(s,i,f)}function kb(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=So(r,c,i,n);return f=xo(f,l,u,n),ma(f)}function Rb(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 Co(r);let i=r;for(let l=0;l<u.length-1;l++){let f=u[l],m=t?t[l]:void 0;i=vt(i,m,f,n)}let s=u[u.length-1],c=t?t[u.length-1]:void 0;return pa(i,c,s,n)}function qb(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 ma(Co(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=So(r,c[u.length-1],i,n);for(let f=u.length-2;f>=0;f--){let m=u[f];l=xo(l,c[f],m,n)}return ma(l)}function Vb(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=jb(Co(r)),l=So(c,s,e,n),f=l.data;for(let m=0;m<l.size;m++)f[m]=f[m]*s;return l}function Pb(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=pa(r,i,e,n),c=jb(s),l=c.data;for(let f=0;f<c.size*2;f++)l[f]=l[f]/i;return c}function jb(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 ma(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 Lb(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 Gb(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 Wb(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 Zb(r,a)}function Yb(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 Zb(r,a)}function Zb(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 it(r){return tr.fromStorage(r.storage)}function h2(r){return it(nt(r))}var N2=Pc;function D2(r,t){return it(jc(r,t))}async function x2(r,t={}){let e=await fo(r,t),n=new Map;for(let[o,a]of e.arrays)n.set(o,it(a));return{arrays:n,skipped:e.skipped,errors:e.errors}}function C2(r,t={}){let e=mo(r,t),n=new Map;for(let[o,a]of e.arrays)n.set(o,it(a));return{arrays:n,skipped:e.skipped,errors:e.errors}}async function S2(r,t={}){let e=await od(r,t),n={};for(let[o,a]of Object.entries(e))n[o]=it(a);return n}function w2(r,t={}){let e=ad(r,t),n={};for(let[o,a]of Object.entries(e))n[o]=it(a);return n}function I2(r,t={}){return it(at(r,t))}function H(r){return r&&typeof r=="object"&&"_data"in r&&"_shape"in r?tr.fromStorage(r):r}var _2={seed:Ed,get_state:Ud,set_state:$d,get_bit_generator:nb,set_bit_generator:ob,default_rng:Od,Generator:Ao,random:r=>H(No(r)),rand:(...r)=>H(kd(...r)),randn:(...r)=>H(Rd(...r)),randint:(r,t,e,n)=>H(tl(r,t,e,n)),random_sample:r=>H(Kd(r)),ranf:r=>H(Qd(r)),sample:r=>H(Hd(r)),random_integers:(r,t,e)=>H(rb(r,t,e)),bytes:tb,uniform:(r,t,e)=>H(qd(r,t,e)),normal:(r,t,e)=>H(Vd(r,t,e)),standard_normal:r=>H(Pd(r)),exponential:(r,t)=>H(el(r,t)),standard_exponential:r=>H(ab(r)),gamma:(r,t,e)=>H(la(r,t,e)),standard_gamma:(r,t)=>H(sb(r,t)),beta:(r,t,e)=>H(cb(r,t,e)),chisquare:(r,t)=>H(Nb(r,t)),noncentral_chisquare:(r,t,e)=>H(Db(r,t,e)),f:(r,t,e)=>H(xb(r,t,e)),noncentral_f:(r,t,e,n)=>H(Cb(r,t,e,n)),standard_cauchy:r=>H(ib(r)),standard_t:(r,t)=>H(ub(r,t)),laplace:(r,t,e)=>H(lb(r,t,e)),logistic:(r,t,e)=>H(fb(r,t,e)),lognormal:(r,t,e)=>H(mb(r,t,e)),gumbel:(r,t,e)=>H(pb(r,t,e)),pareto:(r,t)=>H(yb(r,t)),power:(r,t)=>H(db(r,t)),rayleigh:(r,t)=>H(bb(r,t)),triangular:(r,t,e,n)=>H(Ab(r,t,e,n)),wald:(r,t,e)=>H(gb(r,t,e)),weibull:(r,t)=>H(hb(r,t)),poisson:(r,t)=>H(jd(r,t)),binomial:(r,t,e)=>H(Ld(r,t,e)),geometric:(r,t)=>H(Sb(r,t)),hypergeometric:(r,t,e,n)=>H(wb(r,t,e,n)),logseries:(r,t)=>H(Ib(r,t)),negative_binomial:(r,t,e)=>H(zb(r,t,e)),zipf:(r,t)=>H(_b(r,t)),multinomial:(r,t,e)=>H(vb(r,t,e)),multivariate_normal:(r,t,e,n,o)=>H(Mb(r,t,e,n,o)),dirichlet:(r,t)=>H(Fb(r,t)),vonmises:(r,t,e)=>H(Bb(r,t,e)),choice:(r,t,e,n)=>H(Wd(r,t,e,n)),permutation:r=>H(Zd(r)),shuffle:Xd};function fr(r){return r instanceof tr||r instanceof P?r.storage:r}var M2={fft:(r,t,e,n)=>tr.fromStorage(vt(fr(r),t,e,n)),ifft:(r,t,e,n)=>tr.fromStorage(xo(fr(r),t,e,n)),fft2:(r,t,e,n)=>tr.fromStorage(Tb(fr(r),t,e,n)),ifft2:(r,t,e,n)=>tr.fromStorage(Ob(fr(r),t,e,n)),fftn:(r,t,e,n)=>tr.fromStorage(Eb(fr(r),t,e,n)),ifftn:(r,t,e,n)=>tr.fromStorage(Ub(fr(r),t,e,n)),rfft:(r,t,e,n)=>tr.fromStorage(pa(fr(r),t,e,n)),irfft:(r,t,e,n)=>tr.fromStorage(So(fr(r),t,e,n)),rfft2:(r,t,e,n)=>tr.fromStorage($b(fr(r),t,e,n)),irfft2:(r,t,e,n)=>tr.fromStorage(kb(fr(r),t,e,n)),rfftn:(r,t,e,n)=>tr.fromStorage(Rb(fr(r),t,e,n)),irfftn:(r,t,e,n)=>tr.fromStorage(qb(fr(r),t,e,n)),hfft:(r,t,e,n)=>tr.fromStorage(Vb(fr(r),t,e,n)),ihfft:(r,t,e,n)=>tr.fromStorage(Pb(fr(r),t,e,n)),fftfreq:(r,t)=>tr.fromStorage(Lb(r,t)),rfftfreq:(r,t)=>tr.fromStorage(Gb(r,t)),fftshift:(r,t)=>tr.fromStorage(Wb(fr(r),t)),ifftshift:(r,t)=>tr.fromStorage(Yb(fr(r),t))},F2="0.13.0";function Pr(r){return tr.fromStorage(r.storage)}async function l1(r){let t=await Io(r);return Pr(nt(t))}function f1(r){let t=wo(r);return Pr(nt(t))}async function m1(r,t){let e=ot(t);await al(r,e)}function p1(r,t){let e=ot(t);ol(r,e)}async function y1(r,t={}){let e=await Io(r),n=await fo(e,t),o=new Map;for(let[a,u]of n.arrays)o.set(a,Pr(u));return{arrays:o,skipped:n.skipped,errors:n.errors}}function d1(r,t={}){let e=wo(r),n=mo(e,t),o=new Map;for(let[a,u]of n.arrays)o.set(a,Pr(u));return{arrays:o,skipped:n.skipped,errors:n.errors}}async function Jb(r,t,e={}){let n=await Gc(t,e);await al(r,n)}function DI(r,t){let e=Wc(t);ol(r,e)}async function xI(r,t={}){if(r.endsWith(".npy")){if(t.allowNpy===!1)throw new Error("Loading .npy files is disabled (allowNpy: false)");return l1(r)}else{if(r.endsWith(".npz"))return y1(r,t);throw new Error(`Unknown file extension. Expected .npy or .npz, got: ${r}`)}}function CI(r,t={}){if(r.endsWith(".npy")){if(t.allowNpy===!1)throw new Error("Loading .npy files is disabled (allowNpy: false)");return f1(r)}else{if(r.endsWith(".npz"))return d1(r,t);throw new Error(`Unknown file extension. Expected .npy or .npz, got: ${r}`)}}async function SI(r,t){if(!r.endsWith(".npy"))throw new Error(`save() is for .npy files. Use saveNpz() for .npz files. Got: ${r}`);return m1(r,t)}function wI(r,t){if(!r.endsWith(".npy"))throw new Error(`saveSync() is for .npy files. Use saveNpzSync() for .npz files. Got: ${r}`);return p1(r,t)}async function II(r,t){return r.endsWith(".npz")||(r=r+".npz"),Jb(r,t,{compress:!1})}async function zI(r,t){return r.endsWith(".npz")||(r=r+".npz"),Jb(r,t,{compress:!0})}async function _I(r,t={}){let e=await Io(r,{encoding:t.encoding??"utf-8"});return Pr(at(e,t))}function vI(r,t={}){let e=wo(r,{encoding:t.encoding??"utf-8"});return Pr(at(e,t))}async function MI(r,t,e={}){let n=bo(t,e);await al(r,n,"utf-8")}function FI(r,t,e={}){let n=bo(t,e);ol(r,n,"utf-8")}async function BI(r,t={}){let e=await Io(r,{encoding:t.encoding??"utf-8"});return Pr(po(e,t))}function TI(r,t={}){let e=wo(r,{encoding:t.encoding??"utf-8"});return Pr(po(e,t))}async function OI(r,t,e="float64"){let n=await Io(r,{encoding:"utf-8"});return Pr(yo(n,t,e))}function EI(r,t,e="float64"){let n=wo(r,{encoding:"utf-8"});return Pr(yo(n,t,e))}export{U as Complex,Vc as DTYPE_TO_DESCR,Sr as InvalidNpyError,tr as NDArray,P as NDArrayCore,Jy as SUPPORTED_DTYPES,Zr as UnsupportedDTypeError,F2 as __version__,dd as abs,dd as absolute,Id as acos,Md as acosh,wh as add,fD as all,Un as allclose,Xo as amax,Ko as amin,C0 as angle,mD as any,qD as append,Ch as apply_along_axis,Sh as apply_over_axes,v0 as arange,Id as arccos,Md as arccosh,wd as arcsin,vd as arcsinh,zd as arctan,_d as arctan2,Fd as arctanh,oD as argmax,nD as argmin,bx as argpartition,px as argsort,hx as argwhere,xd as around,_0 as array,ac as array2string,ju as array_equal,Lu as array_equiv,sc as array_repr,$s as array_split,ic as array_str,V0 as asanyarray,E0 as asarray,L0 as asarray_chkfinite,P0 as ascontiguousarray,j0 as asfortranarray,wd as asin,vd as asinh,zd as atan,_d as atan2,Fd as atanh,Ys as atleast_1d,Zs as atleast_2d,Js as atleast_3d,lD as average,nc as base_repr,oc as binary_repr,xx as bincount,fh as bindex,y0 as bitwise_and,N0 as bitwise_count,bd as bitwise_invert,Ad as bitwise_left_shift,bd as bitwise_not,d0 as bitwise_or,gd as bitwise_right_shift,b0 as bitwise_xor,ex as block,Du as broadcast_arrays,xu as broadcast_shapes,ah as broadcast_to,pc as byteswap,sa as can_cast,Gh as cbrt,zD as ceil,uh as choose,o0 as clip,tx as column_stack,Sc as common_type,ch as compress,Sd as concat,Sd as concatenate,hd as conj,hd as conjugate,wx as convolve,q0 as copy,BN as copysign,Mu as copyto,zx as corrcoef,Sx as correlate,Mx as cos,kx as cosh,_i as count_nonzero,Ix as cov,AN as cross,Dd as cumprod,Nd as cumsum,Dd as cumulative_prod,Nd as cumulative_sum,Ex as deg2rad,Tx as degrees,Cd as delete,Cd as delete_,W0 as diag,bh as diag_indices,Ah as diag_indices_from,Y0 as diagflat,sN as diagonal,nN as diff,Cx as digitize,Vh as divide,Yh as divmod,aN as dot,qs as dsplit,rx as dstack,oN as ediff1d,Cs as einsum,Ss as einsum_path,I0 as empty,k0 as empty_like,qN as equal,vh as exp,Mh as exp2,YD as expand_dims,Fh as expm1,Dx as extract,T0 as eye,Wh as fabs,M2 as fft,bc as fill,$u as fill_diagonal,_D as fix,Nx as flatnonzero,LD as flatten,sx as flip,ix as fliplr,ux as flipud,Kh as float_power,vD as floor,Ph as floor_divide,i0 as fmax,u0 as fmin,Qh as fmod,tc as format_float_positional,ec as format_float_scientific,Hh as frexp,Q0 as frombuffer,eN as fromfile,H0 as fromfunction,rN as fromiter,OI as fromregex,EI as fromregexSync,tN as fromstring,z0 as full,R0 as full_like,r0 as gcd,BI as genfromtxt,TI as genfromtxtSync,B0 as geomspace,Hu as get_printoptions,Ju as geterr,fu as gradient,UN as greater,$N as greater_equal,Xh as heaviside,tu as histogram,eu as histogram2d,uu as histogram_bin_edges,nu as histogramdd,Rs as hsplit,HD as hstack,Bx as hypot,p0 as i0,O0 as identity,lh as iindex,x0 as imag,BD as in1d,ph as indices,cN as inner,VD as insert,l0 as interp,TD as intersect1d,A0 as invert,PN as isclose,vN as iscomplex,mi as iscomplexobj,hi as isdtype,CN as isfinite,bi as isfortran,OD as isin,SN as isinf,wN as isnan,IN as isnat,zN as isneginf,_N as isposinf,MN as isreal,yi as isrealobj,Ai as isscalar,zc as issubdtype,lc as item,gi as iterable,Bu as ix_,iN as kron,t0 as lcm,e0 as ldexp,Ad as left_shift,kN as less,RN as less_equal,yx as lexsort,_s as linalg,M0 as linspace,xI as load,l1 as loadNpy,f1 as loadNpySync,S2 as loadNpz,y1 as loadNpzFile,d1 as loadNpzFileSync,w2 as loadNpzSync,CI as loadSync,_I as loadtxt,vI as loadtxtSync,Bh as log,Oh as log10,Eh as log1p,Th as log2,Uh as logaddexp,$h as logaddexp2,hN as logical_and,DN as logical_not,NN as logical_or,xN as logical_xor,F0 as logspace,xh as mask_indices,gN as matmul,pN as matrix_transpose,dN as matvec,Xo as max,a0 as maximum,Yu as may_share_memory,rD as mean,iD as median,pd as meshgrid,Ko as min,Ic as min_scalar_type,s0 as minimum,vc as mintypecode,qh as mod,n0 as modf,JD as moveaxis,zh as multiply,c0 as nan_to_num,DD as nanargmax,ND as nanargmin,CD as nancumprod,xD as nancumsum,hD as nanmax,dD as nanmean,SD as nanmedian,gD as nanmin,ID as nanpercentile,yD as nanprod,wD as nanquantile,AD as nanstd,pD as nansum,bD as nanvar,uc as ndim,kh as negative,ON as nextafter,gx as nonzero,VN as not_equal,w0 as ones,$0 as ones_like,lN as outer,g0 as packbits,PD as pad,h2 as parseNpy,D2 as parseNpyData,N2 as parseNpyHeader,x2 as parseNpz,C2 as parseNpzSync,I2 as parseTxt,dx as partition,uD as percentile,yN as permute_dims,_u as place,jN as poly,LN as polyadd,GN as polyder,WN as polydiv,YN as polyfit,ZN as polyint,JN as polymul,XN as polysub,KN as polyval,jh as positive,yd as pow,yd as power,rc as printoptions,tD as prod,Ni as promote_types,eD as ptp,io as put,Su as put_along_axis,vu as putmask,cD as quantile,Ux as rad2deg,Ox as radians,_2 as random,GD as ravel,yh as ravel_multi_index,D0 as real,FN as real_if_close,Lh as reciprocal,Jh as remainder,ax as repeat,G0 as require,jD as reshape,fx as resize,wc as result_type,gd as right_shift,MD as rint,lx as roll,XD as rollaxis,QN as roots,cx as rot90,xd as round,Ei as round_,Os as row_stack,SI as save,m1 as saveNpy,p1 as saveNpySync,Jb as saveNpz,DI as saveNpzSync,wI as saveSync,MI as savetxt,FI as savetxtSync,II as savez,zI as savez_compressed,jn as searchsorted,mh as select,ot as serializeNpy,Gc as serializeNpz,Wc as serializeNpzSync,bo as serializeTxt,Qu as set_printoptions,ED as setdiff1d,Xu as seterr,UD as setxor1d,oa as shape,Zu as shares_memory,Rh as sign,TN as signbit,vx as sin,m0 as sinc,$x as sinh,cc as size,mx as sort,Ax as sort_complex,EN as spacing,Us as split,_h as sqrt,Zh as square,WD as squeeze,KD as stack,sD as std,Ih as subtract,HN as sum,ZD as swapaxes,sh as take,ih as take_along_axis,Fx as tan,Rx as tanh,fN as tensordot,ox as tile,mc as tobytes,dc as tofile,fc as tolist,dt as trace,uN as transpose,_x as trapezoid,Z0 as tri,J0 as tril,gh as tril_indices,hh as tril_indices_from,kD as trim_zeros,X0 as triu,Nh as triu_indices,Dh as triu_indices_from,Pa as true_divide,FD as trunc,_c as typename,$D as union1d,ki as unique,Wi as unique_all,Yi as unique_counts,Zi as unique_inverse,RD as unique_values,h0 as unpackbits,dh as unravel_index,nx as unstack,f0 as unwrap,K0 as vander,si as var,aD as variance,ws as vdot,mN as vecdot,bN as vecmat,yc as view,ks as vsplit,QD as vstack,Ii as where,S0 as zeros,U0 as zeros_like};
|
|
4
6
|
//# sourceMappingURL=numpy-ts.node-io.mjs.map
|