numpy-ts 0.12.0 → 0.13.1
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 +18 -14
- 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 +4 -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 +7 -2
- package/dist/numpy-ts.node-io.cjs +7 -3
- package/dist/numpy-ts.node-io.cjs.map +4 -4
- package/dist/numpy-ts.node-io.mjs +7 -3
- package/dist/numpy-ts.node-io.mjs.map +4 -4
- package/dist/numpy-ts.node.cjs +7 -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 +2 -2
- package/dist/types/{ops → common/ops}/arithmetic.d.ts +1 -1
- package/dist/types/{ops → common/ops}/bitwise.d.ts +1 -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 +24 -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 +2 -2
- package/dist/types/{ops → common/ops}/rounding.d.ts +1 -1
- package/dist/types/{ops → common/ops}/sets.d.ts +1 -1
- package/dist/types/{ops → common/ops}/shape.d.ts +1 -1
- package/dist/types/{ops → common/ops}/sorting.d.ts +1 -1
- package/dist/types/{ops → common/ops}/statistics.d.ts +1 -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 +30 -29
- package/dist/numpy-ts.esm.js +0 -2
- package/dist/types/core/ndarray.d.ts +0 -3923
- package/dist/types/ops/random.d.ts +0 -136
- /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,8 @@
|
|
|
1
|
-
var ye=Object.defineProperty;var zc=Object.getOwnPropertyDescriptor;var _c=Object.getOwnPropertyNames;var vc=Object.prototype.hasOwnProperty;var G=(r,t)=>()=>(r&&(t=r(r=0)),t);var Yn=(r,t)=>{for(var e in t)ye(r,e,{get:t[e],enumerable:!0})},Fc=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of _c(t))!vc.call(r,o)&&o!==e&&ye(r,o,{get:()=>t[o],enumerable:!(n=zc(t,o))||n.enumerable});return r};var Hn=r=>Fc(ye({},"__esModule",{value:!0}),r);function Xn(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 Jn(r,t){let{start:e,stop:n}=r,{step:o,isIndex:a}=r;if(a){if(e===null)throw new Error("Index cannot be null");let i=e<0?t+e:e;if(i<0||i>=t)throw new Error(`Index ${e} is out of bounds for size ${t}`);return{start:i,stop:i+1,step:1,isIndex:!0}}return o>0?(e===null&&(e=0),n===null&&(n=t)):(e===null&&(e=t-1),n===null&&(n=-t-1)),e<0&&(e=t+e),n<0&&(n=t+n),e=Math.max(0,Math.min(e,t)),n=Math.max(-1,Math.min(n,t)),{start:e,stop:n,step:o,isIndex:!1}}var Qn=G(()=>{"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 Wr(r){switch(r){case"complex128":return 16;case"float64":case"int64":case"uint64":case"complex64":return 8;case"float32":case"int32":case"uint32":return 4;case"int16":case"uint16":return 2;case"int8":case"uint8":case"bool":return 1;default:throw new Error(`Unknown dtype: ${r}`)}}function ro(r){return r==="int64"||r==="int32"||r==="int16"||r==="int8"||r==="uint64"||r==="uint32"||r==="uint16"||r==="uint8"}function Kn(r){return r==="float64"||r==="float32"}function B(r){return r==="int64"||r==="uint64"}function M(r){return r==="complex64"||r==="complex128"}function U(r,t,e){if(M(r)){let n=e?` ${e}`:"";throw new TypeError(`ufunc '${t}' not supported for complex dtype '${r}'.${n}`)}}function at(r){if(r==="complex128")return"float64";if(r==="complex64")return"float32";throw new Error(`${r} is not a complex dtype`)}function to(r){return typeof r=="object"&&r!==null&&"re"in r&&"im"in r}function Z(r,t){if(r===t)return r;if(r==="bool")return t;if(t==="bool")return r;if(M(r)||M(t)){if(M(r)&&M(t))return r==="complex128"||t==="complex128"?"complex128":"complex64";let c=M(r)?r:t,l=M(r)?t:r;return c==="complex128"||l==="float64"||l==="int64"||l==="uint64"||l==="int32"||l==="uint32"?"complex128":"complex64"}if(Kn(r)||Kn(t)){if(r==="float64"||t==="float64")return"float64";if(r==="float32"){let c=t;return c==="int32"||c==="int64"||c==="uint32"||c==="uint64"?"float64":"float32"}if(t==="float32"){let c=r;return c==="int32"||c==="int64"||c==="uint32"||c==="uint64"?"float64":"float32"}return"float32"}let e=r.startsWith("int"),n=t.startsWith("int"),o=r.startsWith("uint"),a=t.startsWith("uint"),i=c=>c.includes("64")?64:c.includes("32")?32:c.includes("16")?16:c.includes("8")?8:0,s=i(r),u=i(t);if(r==="int64"&&t==="uint64"||r==="uint64"&&t==="int64")return"float64";if(e&&a&&s===u){if(s===8)return"int16";if(s===16)return"int32";if(s===32)return"int64"}if(o&&n&&s===u){if(u===8)return"int16";if(u===16)return"int32";if(u===32)return"int64"}if(e&&n||o&&a){let c=Math.max(s,u);return e?c===64?"int64":c===32?"int32":c===16?"int16":"int8":c===64?"uint64":c===32?"uint32":c===16?"uint16":"uint8"}return e&&a?s>u?r:u===8?"int16":u===16?"int32":u===32?"int64":"float64":o&&n?u>s?t:s===8?"int16":s===16?"int32":s===32?"int64":"float64":"float64"}var tr,Q=G(()=>{"use strict";tr="float64"});var E,xr=G(()=>{"use strict";E=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 N,K=G(()=>{"use strict";Q();xr();N=class r{constructor(t,e,n,o,a){this._data=t,this._shape=e,this._strides=n,this._offset=o,this._dtype=a}get shape(){return this._shape}get ndim(){return this._shape.length}get size(){return this._shape.reduce((t,e)=>t*e,1)}get dtype(){return this._dtype}get data(){return this._data}get strides(){return this._strides}get offset(){return this._offset}get isCContiguous(){let t=this._shape,e=this._strides,n=t.length;if(n===0)return!0;if(n===1)return e[0]===1;let o=1;for(let a=n-1;a>=0;a--){if(e[a]!==o)return!1;o*=t[a]}return!0}get isFContiguous(){let t=this._shape,e=this._strides,n=t.length;if(n===0)return!0;if(n===1)return e[0]===1;let o=1;for(let a=0;a<n;a++){if(e[a]!==o)return!1;o*=t[a]}return!0}iget(t){let e=this._shape,n=this._strides,o=e.length,a=M(this._dtype),i;if(o===0)i=this._offset;else{let s=t;i=this._offset;for(let u=0;u<o;u++){let c=1;for(let m=u+1;m<o;m++)c*=e[m];let l=Math.floor(s/c);s=s%c,i+=l*n[u]}}if(a){let s=i*2,u=this._data[s],c=this._data[s+1];return new E(u,c)}return this._data[i]}iset(t,e){let n=this._shape,o=this._strides,a=n.length,i=M(this._dtype),s;if(a===0)s=this._offset;else{let u=t;s=this._offset;for(let c=0;c<a;c++){let l=1;for(let d=c+1;d<a;d++)l*=n[d];let m=Math.floor(u/l);u=u%l,s+=m*o[c]}}if(i){let u=s*2,c,l;e instanceof E?(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[u]=c,this._data[u+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],i=this._data[o+1];return new E(a,i)}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,i,s;e instanceof E?(i=e.re,s=e.im):typeof e=="object"&&e!==null&&"re"in e?(i=e.re,s=e.im??0):(i=Number(e),s=0),this._data[a]=i,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 i=o?n*2:n,s=new a(i);if(this.isCContiguous&&this._offset===0)if(B(e)){let u=this._data,c=s;for(let l=0;l<i;l++)c[l]=u[l]}else s.set(this._data.subarray(0,i));else if(B(e)){let u=s;for(let c=0;c<n;c++)u[c]=this.iget(c)}else if(o){let u=s;for(let c=0;c<n;c++){let l=this.iget(c);u[c*2]=l.re,u[c*2+1]=l.im}}else for(let u=0;u<n;u++)s[u]=this.iget(u);return new r(s,t,r._computeStrides(t),0,e)}static fromData(t,e,n,o,a){let i=o??r._computeStrides(e),s=a??0;return new r(t,e,i,s,n)}static zeros(t,e=tr){let n=t.reduce((u,c)=>u*c,1),o=M(e),a=j(e);if(!a)throw new Error(`Cannot create array with dtype ${e}`);let i=o?n*2:n,s=new a(i);return new r(s,t,r._computeStrides(t),0,e)}static ones(t,e=tr){let n=t.reduce((u,c)=>u*c,1),o=M(e),a=j(e);if(!a)throw new Error(`Cannot create array with dtype ${e}`);let i=o?n*2:n,s=new a(i);if(B(e))s.fill(BigInt(1));else if(o){let u=s;for(let c=0;c<n;c++)u[c*2]=1,u[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 Sr(r){if(r.length===0)return[];if(r.length===1)return Array.from(r[0]);let t=Math.max(...r.map(n=>n.length)),e=new Array(t);for(let n=0;n<t;n++){let o=1;for(let a of r){let i=a.length-t+n,s=i<0?1:a[i];if(s!==1){if(o===1)o=s;else if(o!==s)return null}}e[n]=o}return e}function Mc(r,t,e){let n=r.length,o=e.length,a=new Array(o).fill(0);for(let i=0;i<n;i++){let s=o-n+i,u=r[i],c=e[s];if(u===c)a[s]=t[i];else if(u===1)a[s]=0;else throw new Error("Invalid broadcast")}return a}function gr(r,t){let e=Mc(r.shape,r.strides,t);return N.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function de(...r){let t=Sr(r);if(t===null){let e=r.map(n=>`(${n.join(",")})`).join(" ");throw new Error(`shape mismatch: objects cannot be broadcast to a single shape. Mismatch is between ${e}`)}return t}var Ut=G(()=>{"use strict";K()});function Tr(r,t){let e=r.length,n=t.length,o=Math.max(e,n),a=new Array(o);for(let i=0;i<o;i++){let s=i<o-e?1:r[i-(o-e)],u=i<o-n?1:t[i-(o-n)];if(s===u)a[i]=s;else if(s===1)a[i]=u;else if(u===1)a[i]=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 Bc(r,t,e){let n=r.length,o=e.length,a=new Array(o).fill(0);for(let i=0;i<n;i++){let s=o-n+i,u=r[i],c=e[s];if(u===c)a[s]=t[i];else if(u===1)a[s]=0;else throw new Error("Invalid broadcast")}return a}function $t(r,t){let e=Bc(r.shape,r.strides,t);return N.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function X(r,t,e,n){let o=Z(r.dtype,t.dtype),a=r.shape,i=t.shape;if(a.length===i.length&&a.every((f,p)=>f===i[p])&&r.isCContiguous&&t.isCContiguous&&!B(r.dtype)&&!B(t.dtype)&&!B(o)){let f=r.size,p=N.zeros(Array.from(a),o),g=p.data,h=r.data,b=t.data;for(let A=0;A<f;A++)g[A]=e(h[A],b[A]);return p}let u=Tr(r.shape,t.shape),c=$t(r,u),l=$t(t,u),m=N.zeros(u,o),d=m.data,y=m.size;if(B(o)){let f=d;for(let p=0;p<y;p++){let g=c.iget(p),h=l.iget(p),b=g instanceof E?g.re:g,A=h instanceof E?h.re:h,S=typeof b=="bigint"?b:BigInt(Math.round(b)),D=typeof A=="bigint"?A:BigInt(Math.round(A));n==="add"?f[p]=S+D:n==="subtract"?f[p]=S-D:n==="multiply"?f[p]=S*D:n==="divide"?f[p]=S/D:f[p]=BigInt(Math.round(e(Number(S),Number(D))))}}else{let f=B(r.dtype)||B(t.dtype);for(let p=0;p<y;p++){let g=c.iget(p),h=l.iget(p),b=Number(g),A=Number(h);d[p]=e(b,A)}}return m}function Ar(r,t,e){let n=Tr(r.shape,t.shape),o=$t(r,n),a=$t(t,n),i=n.reduce((c,l)=>c*l,1),s=new Uint8Array(i),u=B(r.dtype)||B(t.dtype);for(let c=0;c<i;c++){let l=o.iget(c),m=a.iget(c),d=Number(l),y=Number(m);s[c]=e(d,y)?1:0}return N.fromData(s,n,"bool")}function J(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,u=N.zeros(o,s),c=u.data,l=r.data;if(B(n))if(B(s)){let m=c;for(let d=0;d<a;d++){let y=Number(l[d]);m[d]=BigInt(Math.round(t(y)))}}else for(let m=0;m<a;m++)c[m]=t(Number(l[m]));else for(let m=0;m<a;m++)c[m]=t(Number(l[m]));return u}var vr=G(()=>{"use strict";K();Q();xr()});function ge(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function pr(r,t){return[r[t*2],r[t*2+1]]}function Fr(r,t,e,n){r[t*2]=e,r[t*2+1]=n}function eo(r,t){return typeof t=="number"?Cc(r,t):ge(r,t)?Ec(r,t):X(r,t,(e,n)=>e+n,"add")}function Ec(r,t){let e=Z(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,s=n.data;if(M(e)){let u=s,c=M(r.dtype),l=M(t.dtype);for(let m=0;m<o;m++){let[d,y]=c?pr(a,m):[Number(a[m]),0],[f,p]=l?pr(i,m):[Number(i[m]),0];Fr(u,m,d+f,y+p)}return n}if(B(e)){let u=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),d=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));u[l]=m+d}else{let l=a,m=i;for(let d=0;d<o;d++)u[d]=l[d]+m[d]}}else if(B(r.dtype)||B(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof i[c]=="bigint"?Number(i[c]):i[c];s[c]=l+m}else for(let c=0;c<o;c++)s[c]=a[c]+i[c];return n}function no(r,t){return typeof t=="number"?Uc(r,t):ge(r,t)?Tc(r,t):X(r,t,(e,n)=>e-n,"subtract")}function Tc(r,t){let e=Z(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,s=n.data;if(M(e)){let u=s,c=M(r.dtype),l=M(t.dtype);for(let m=0;m<o;m++){let[d,y]=c?pr(a,m):[Number(a[m]),0],[f,p]=l?pr(i,m):[Number(i[m]),0];Fr(u,m,d-f,y-p)}return n}if(B(e)){let u=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),d=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));u[l]=m-d}else{let l=a,m=i;for(let d=0;d<o;d++)u[d]=l[d]-m[d]}}else if(B(r.dtype)||B(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof i[c]=="bigint"?Number(i[c]):i[c];s[c]=l-m}else for(let c=0;c<o;c++)s[c]=a[c]-i[c];return n}function oo(r,t){return typeof t=="number"?$c(r,t):ge(r,t)?Oc(r,t):X(r,t,(e,n)=>e*n,"multiply")}function Oc(r,t){let e=Z(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,s=n.data;if(M(e)){let u=s,c=M(r.dtype),l=M(t.dtype);for(let m=0;m<o;m++){let[d,y]=c?pr(a,m):[Number(a[m]),0],[f,p]=l?pr(i,m):[Number(i[m]),0],g=d*f-y*p,h=d*p+y*f;Fr(u,m,g,h)}return n}if(B(e)){let u=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),d=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));u[l]=m*d}else{let l=a,m=i;for(let d=0;d<o;d++)u[d]=l[d]*m[d]}}else if(B(r.dtype)||B(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof i[c]=="bigint"?Number(i[c]):i[c];s[c]=l*m}else for(let c=0;c<o;c++)s[c]=a[c]*i[c];return n}function ao(r,t){if(typeof t=="number")return Rc(r,t);let e=M(r.dtype),n=M(t.dtype);if(e||n){let l=Z(r.dtype,t.dtype),m=N.zeros(Array.from(r.shape),l),d=m.data,y=r.size,f=r.data,p=t.data;for(let g=0;g<y;g++){let[h,b]=e?pr(f,g):[Number(f[g]),0],[A,S]=n?pr(p,g):[Number(p[g]),0],D=A*A+S*S,w=(h*A+b*S)/D,x=(b*A-h*S)/D;Fr(d,g,w,x)}return m}let o=r.dtype==="float64",a=t.dtype==="float64",i=r.dtype==="float32",s=t.dtype==="float32";if(o||a){let l=o?r:Gr(r,"float64"),m=a?t:Gr(t,"float64");return X(l,m,(d,y)=>d/y,"divide")}if(i||s){let l=i?r:Gr(r,"float32"),m=s?t:Gr(t,"float32");return X(l,m,(d,y)=>d/y,"divide")}let u=Gr(r,"float64"),c=Gr(t,"float64");return X(u,c,(l,m)=>l/m,"divide")}function Gr(r,t){let e=N.zeros(Array.from(r.shape),t),n=r.size,o=r.data,a=e.data;for(let i=0;i<n;i++)a[i]=Number(o[i]);return e}function Cc(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),s=i.data;if(M(e)){let u=o,c=s;for(let l=0;l<a;l++){let[m,d]=pr(u,l);Fr(c,l,m+t,d)}}else if(B(e)){let u=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=u[m]+l}else for(let u=0;u<a;u++)s[u]=Number(o[u])+t;return i}function Uc(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),s=i.data;if(M(e)){let u=o,c=s;for(let l=0;l<a;l++){let[m,d]=pr(u,l);Fr(c,l,m-t,d)}}else if(B(e)){let u=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=u[m]-l}else for(let u=0;u<a;u++)s[u]=Number(o[u])-t;return i}function $c(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),s=i.data;if(M(e)){let u=o,c=s;for(let l=0;l<a;l++){let[m,d]=pr(u,l);Fr(c,l,m*t,d*t)}}else if(B(e)){let u=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=u[m]*l}else for(let u=0;u<a;u++)s[u]=Number(o[u])*t;return i}function Rc(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size;if(M(e)){let l=N.zeros(n,e),m=o,d=l.data;for(let y=0;y<a;y++){let[f,p]=pr(m,y);Fr(d,y,f/t,p/t)}return l}let s=e!=="float32"&&e!=="float64"?"float64":e,u=N.zeros(n,s),c=u.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 u}function so(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size;if(M(t)){let s=at(t),u=N.zeros(e,s),c=u.data,l=n;for(let m=0;m<o;m++){let d=l[m*2],y=l[m*2+1];c[m]=Math.sqrt(d*d+y*y)}return u}let a=N.zeros(e,t),i=a.data;if(B(t)){let s=n,u=i;for(let c=0;c<o;c++){let l=s[c];u[c]=l<0n?-l:l}}else for(let s=0;s<o;s++)i[s]=Math.abs(Number(n[s]));return a}function io(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=N.zeros(e,t),i=a.data;if(M(t)){let s=n,u=i;for(let c=0;c<o;c++){let[l,m]=pr(s,c);Fr(u,c,-l,-m)}}else if(B(t)){let s=n,u=i;for(let c=0;c<o;c++)u[c]=-s[c]}else for(let s=0;s<o;s++)i[s]=-Number(n[s]);return a}function uo(r){U(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=N.zeros(e,t),i=a.data;if(B(t)){let s=n,u=i;for(let c=0;c<o;c++){let l=s[c];u[c]=l>0n?1n:l<0n?-1n:0n}}else for(let s=0;s<o;s++){let u=Number(n[s]);i[s]=u>0?1:u<0?-1:0}return a}function Rt(r,t){return U(r.dtype,"mod","Modulo is not defined for complex numbers."),typeof t!="number"&&U(t.dtype,"mod","Modulo is not defined for complex numbers."),typeof t=="number"?kc(r,t):X(r,t,(e,n)=>(e%n+n)%n,"mod")}function kc(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),s=i.data;if(B(e)){let u=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++){let d=u[m];c[m]=(d%l+l)%l}}else for(let u=0;u<a;u++){let c=Number(o[u]);s[u]=(c%t+t)%t}return i}function Ae(r,t){return U(r.dtype,"floor_divide","Floor division is not defined for complex numbers."),typeof t!="number"&&U(t.dtype,"floor_divide","Floor division is not defined for complex numbers."),typeof t=="number"?qc(r,t):X(r,t,(e,n)=>Math.floor(e/n),"floor_divide")}function qc(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),s=i.data;if(B(e)){let u=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=u[m]/l}else for(let u=0;u<a;u++)s[u]=Math.floor(Number(o[u])/t);return i}function co(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=N.zeros(e,t),i=a.data;if(M(t)){let s=n,u=i;for(let c=0;c<o;c++)u[c*2]=s[c*2],u[c*2+1]=s[c*2+1]}else for(let s=0;s<o;s++)i[s]=n[s];return a}function lo(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size;if(M(t)){let c=N.zeros(e,t),l=n,m=c.data;for(let d=0;d<o;d++){let y=l[d*2],f=l[d*2+1],p=y*y+f*f;m[d*2]=y/p,m[d*2+1]=-f/p}return c}let i=t!=="float32"&&t!=="float64"?"float64":t,s=N.zeros(e,i),u=s.data;if(B(t))for(let c=0;c<o;c++)u[c]=1/Number(n[c]);else for(let c=0;c<o;c++)u[c]=1/Number(n[c]);return s}function fo(r){let t=r.dtype;U(t,"cbrt","cbrt is not supported for complex numbers.");let e=Array.from(r.shape),n=r.data,o=r.size,i=t!=="float32"&&t!=="float64"?"float64":t,s=N.zeros(e,i),u=s.data;for(let c=0;c<o;c++)u[c]=Math.cbrt(Number(n[c]));return s}function mo(r){let t=r.dtype;U(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",i=N.zeros(e,a),s=i.data;for(let u=0;u<o;u++)s[u]=Math.abs(Number(n[u]));return i}function po(r,t){let e=Ae(r,t),n=Rt(r,t);return[e,n]}function yo(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=N.zeros(e,t),i=a.data;if(M(t)){let s=n,u=i;for(let c=0;c<o;c++){let l=s[c*2],m=s[c*2+1];u[c*2]=l*l-m*m,u[c*2+1]=2*l*m}}else if(B(t)){let s=n,u=i;for(let c=0;c<o;c++)u[c]=s[c]*s[c]}else for(let s=0;s<o;s++){let u=Number(n[s]);i[s]=u*u}return a}function go(r,t){return Rt(r,t)}function Ao(r,t){U(r.dtype,"heaviside","Heaviside step function is not defined for complex numbers."),typeof t!="number"&&U(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",i=N.zeros(n,a),s=i.data;if(typeof t=="number")for(let u=0;u<o;u++){let c=Number(r.data[u]);c<0?s[u]=0:c===0?s[u]=t:s[u]=1}else{let u=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(u[l]):s[l]=1}else for(let l=0;l<o;l++){let m=Number(r.data[l]),d=l%t.size;m<0?s[l]=0:m===0?s[l]=Number(u[d]):s[l]=1}}return i}function bo(r,t){let e=r.dtype;if(M(e)){let n=r.data,o=r.size,a=N.zeros(Array.from(r.shape),e),i=a.data;if(typeof t=="number")for(let s=0;s<o;s++){let u=n[s*2],c=n[s*2+1],l=Math.hypot(u,c),m=Math.atan2(c,u),d=Math.pow(l,t),y=m*t;i[s*2]=d*Math.cos(y),i[s*2+1]=d*Math.sin(y)}else{let s=t.data,u=M(t.dtype);for(let c=0;c<o;c++){let l=n[c*2],m=n[c*2+1],d,y;u?(d=s[c*2],y=s[c*2+1]):(d=Number(s[c]),y=0);let f=Math.hypot(l,m),p=Math.atan2(m,l),g=Math.log(f),h=p,b=d*g-y*h,A=d*h+y*g,S=Math.exp(b);i[c*2]=S*Math.cos(A),i[c*2+1]=S*Math.sin(A)}}return a}if(typeof t=="number"){let n=N.zeros(Array.from(r.shape),"float64"),o=n.data,a=r.data,i=r.size;for(let s=0;s<i;s++)o[s]=Math.pow(Number(a[s]),t);return n}return X(r,t,(n,o)=>Math.pow(n,o),"float_power")}function ho(r,t){if(U(r.dtype,"fmod","fmod is not defined for complex numbers."),typeof t!="number"&&U(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 i=Number(n[a]);n[a]=i-Math.trunc(i/t)*t}return e}return X(r,t,(e,n)=>e-Math.trunc(e/n)*n,"fmod")}function So(r){U(r.dtype,"frexp","frexp is not defined for complex numbers.");let t=N.zeros(Array.from(r.shape),"float64"),e=N.zeros(Array.from(r.shape),"int32"),n=t.data,o=e.data,a=r.data,i=r.size;for(let s=0;s<i;s++){let u=Number(a[s]);if(u===0||!isFinite(u))n[s]=u,o[s]=0;else{let c=Math.floor(Math.log2(Math.abs(u)))+1,l=u/Math.pow(2,c);n[s]=l,o[s]=c}}return[t,e]}function Do(r,t){U(r.dtype,"gcd","GCD is only defined for integers."),typeof t!="number"&&U(t.dtype,"gcd","GCD is only defined for integers.");let e=(u,c)=>{for(u=Math.abs(Math.trunc(u)),c=Math.abs(Math.trunc(c));c!==0;){let l=c;c=u%c,u=l}return u};if(typeof t=="number"){let u=N.zeros(Array.from(r.shape),"int32"),c=u.data,l=r.data,m=r.size,d=Math.abs(Math.trunc(t));for(let y=0;y<m;y++)c[y]=e(Number(l[y]),d);return u}let n=X(r,t,e,"gcd"),o=N.zeros(Array.from(n.shape),"int32"),a=o.data,i=n.data,s=n.size;for(let u=0;u<s;u++)a[u]=Math.round(Number(i[u]));return o}function No(r,t){U(r.dtype,"lcm","LCM is only defined for integers."),typeof t!="number"&&U(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=N.zeros(Array.from(r.shape),"int32"),l=c.data,m=r.data,d=r.size,y=Math.abs(Math.trunc(t));for(let f=0;f<d;f++)l[f]=n(Number(m[f]),y);return c}let o=X(r,t,n,"lcm"),a=N.zeros(Array.from(o.shape),"int32"),i=a.data,s=o.data,u=o.size;for(let c=0;c<u;c++)i[c]=Math.round(Number(s[c]));return a}function xo(r,t){if(U(r.dtype,"ldexp","ldexp is not defined for complex numbers."),typeof t!="number"&&U(t.dtype,"ldexp","ldexp is not defined for complex numbers."),typeof t=="number"){let e=N.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.data,a=r.size,i=Math.pow(2,t);for(let s=0;s<a;s++)n[s]=Number(o[s])*i;return e}return X(r,t,(e,n)=>e*Math.pow(2,n),"ldexp")}function wo(r){U(r.dtype,"modf","modf is not defined for complex numbers.");let t=N.zeros(Array.from(r.shape),"float64"),e=N.zeros(Array.from(r.shape),"float64"),n=t.data,o=e.data,a=r.data,i=r.size;for(let s=0;s<i;s++){let u=Number(a[s]),c=Math.trunc(u);o[s]=c,n[s]=u-c}return[t,e]}function Io(r,t,e){U(r.dtype,"clip","clip is not supported for complex numbers.");let n=r.dtype,o=Array.from(r.shape),a=r.size,i=N.zeros(o,n),s=i.data,u=r.data,c=t===null||typeof t=="number",l=e===null||typeof e=="number",m=t===null?-1/0:typeof t=="number"?t:null,d=e===null?1/0:typeof e=="number"?e:null;if(B(n)){let y=s,f=u;for(let p=0;p<a;p++){let g=f[p],h=c?m===-1/0?g:BigInt(Math.round(m)):t.data[p%t.size],b=l?d===1/0?g:BigInt(Math.round(d)):e.data[p%e.size];g<h&&(g=h),g>b&&(g=b),y[p]=g}}else for(let y=0;y<a;y++){let f=Number(u[y]),p=c?m:Number(t.data[y%t.size]),g=l?d:Number(e.data[y%e.size]);f<p&&(f=p),f>g&&(f=g),s[y]=f}return i}function zo(r,t){if(U(r.dtype,"maximum","maximum is not supported for complex numbers."),typeof t!="number"&&U(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=N.zeros(n,e),i=a.data,s=r.data;if(B(e)){let u=i,c=s,l=BigInt(Math.round(t));for(let m=0;m<o;m++)u[m]=c[m]>l?c[m]:l}else for(let u=0;u<o;u++){let c=Number(s[u]);i[u]=isNaN(c)||isNaN(t)?NaN:Math.max(c,t)}return a}return X(r,t,(e,n)=>isNaN(e)||isNaN(n)?NaN:Math.max(e,n),"maximum")}function _o(r,t){if(U(r.dtype,"minimum","minimum is not supported for complex numbers."),typeof t!="number"&&U(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=N.zeros(n,e),i=a.data,s=r.data;if(B(e)){let u=i,c=s,l=BigInt(Math.round(t));for(let m=0;m<o;m++)u[m]=c[m]<l?c[m]:l}else for(let u=0;u<o;u++){let c=Number(s[u]);i[u]=isNaN(c)||isNaN(t)?NaN:Math.min(c,t)}return a}return X(r,t,(e,n)=>isNaN(e)||isNaN(n)?NaN:Math.min(e,n),"minimum")}function vo(r,t){if(U(r.dtype,"fmax","fmax is not supported for complex numbers."),typeof t!="number"&&U(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=N.zeros(n,e),i=a.data,s=r.data;if(B(e)){let u=i,c=s,l=BigInt(Math.round(t));for(let m=0;m<o;m++)u[m]=c[m]>l?c[m]:l}else for(let u=0;u<o;u++){let c=Number(s[u]);isNaN(c)?i[u]=t:isNaN(t)?i[u]=c:i[u]=Math.max(c,t)}return a}return X(r,t,(e,n)=>isNaN(e)?n:isNaN(n)?e:Math.max(e,n),"fmax")}function Fo(r,t){if(U(r.dtype,"fmin","fmin is not supported for complex numbers."),typeof t!="number"&&U(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=N.zeros(n,e),i=a.data,s=r.data;if(B(e)){let u=i,c=s,l=BigInt(Math.round(t));for(let m=0;m<o;m++)u[m]=c[m]<l?c[m]:l}else for(let u=0;u<o;u++){let c=Number(s[u]);isNaN(c)?i[u]=t:isNaN(t)?i[u]=c:i[u]=Math.min(c,t)}return a}return X(r,t,(e,n)=>isNaN(e)?n:isNaN(n)?e:Math.min(e,n),"fmin")}function Mo(r,t=0,e,n){U(r.dtype,"nan_to_num","nan_to_num is not supported for complex numbers.");let o=r.dtype,a=Array.from(r.shape),i=r.size,s=e!==void 0?e:Number.MAX_VALUE,u=n!==void 0?n:-Number.MAX_VALUE,c=N.zeros(a,o),l=c.data,m=r.data;if(B(o)){let d=l,y=m;for(let f=0;f<i;f++)d[f]=y[f]}else for(let d=0;d<i;d++){let y=Number(m[d]);isNaN(y)?l[d]=t:y===1/0?l[d]=s:y===-1/0?l[d]=u:l[d]=y}return c}function Bo(r,t,e,n,o){U(r.dtype,"interp","interp is not supported for complex numbers."),U(t.dtype,"interp","interp is not supported for complex numbers."),U(e.dtype,"interp","interp is not supported for complex numbers.");let a=Array.from(r.shape),i=r.size,s=N.zeros(a,"float64"),u=s.data,c=r.data,l=t.data,m=e.data,d=t.size,y=n!==void 0?n:Number(m[0]),f=o!==void 0?o:Number(m[d-1]);for(let p=0;p<i;p++){let g=Number(c[p]);if(g<=Number(l[0])){u[p]=y;continue}if(g>=Number(l[d-1])){u[p]=f;continue}let h=0,b=d-1;for(;b-h>1;){let I=Math.floor((h+b)/2);Number(l[I])<=g?h=I:b=I}let A=Number(l[h]),S=Number(l[b]),D=Number(m[h]),w=Number(m[b]),x=(g-A)/(S-A);u[p]=D+x*(w-D)}return s}function Eo(r,t=Math.PI,e=-1,n=2*Math.PI){U(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=N.zeros(o,"float64"),m=l.data,d=r.data;if(c===0)return l;m[0]=Number(d[0]);let y=0;for(let f=1;f<c;f++){let p=Number(d[f-1]),g=Number(d[f]),h=g-p;h=(h+n/2)%n-n/2,h===-n/2&&g-p>0&&(h=n/2),Math.abs(h)>t&&(y-=Math.round((g-p-h)/n)*n),m[f]=g+y}return l}let i=N.zeros(o,"float64"),s=i.data,u=r.data;for(let c=0;c<r.size;c++)s[c]=Number(u[c]);if(a===2){let[c,l]=o;if(e===0)for(let m=0;m<l;m++){let d=0;for(let y=1;y<c;y++){let f=(y-1)*l+m,p=y*l+m,g=s[f],h=s[p],b=h-g;b=(b+n/2)%n-n/2,b===-n/2&&h-g>0&&(b=n/2),Math.abs(b)>t&&(d-=Math.round((h-g-b)/n)*n),s[p]=h+d}}else for(let m=0;m<c;m++){let d=0;for(let y=1;y<l;y++){let f=m*l+(y-1),p=m*l+y,g=s[f],h=s[p],b=h-g;b=(b+n/2)%n-n/2,b===-n/2&&h-g>0&&(b=n/2),Math.abs(b)>t&&(d-=Math.round((h-g-b)/n)*n),s[p]=h+d}}}return i}function To(r){U(r.dtype,"sinc","sinc is not supported for complex numbers.");let t=Array.from(r.shape),e=r.size,n=N.zeros(t,"float64"),o=n.data,a=r.data;for(let i=0;i<e;i++){let s=Number(a[i]);if(s===0)o[i]=1;else{let u=Math.PI*s;o[i]=Math.sin(u)/u}}return n}function Oo(r){U(r.dtype,"i0","i0 is not supported for complex numbers.");let t=Array.from(r.shape),e=r.size,n=N.zeros(t,"float64"),o=n.data,a=r.data;for(let i=0;i<e;i++){let s=Math.abs(Number(a[i]));o[i]=Vc(s)}return n}function Vc(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))))))))}}var Co=G(()=>{"use strict";K();Q();vr()});function kr(r,t){return[r[t*2],r[t*2+1]]}function Uo(r,t){if(M(r.dtype))return kr(r.data,t);let e=r.iget(t);return e instanceof E?[e.re,e.im]:[Number(e),0]}function Zr(r,t,e){let n=Sr([Array.from(r.shape),Array.from(t.shape)]);if(!n)throw new Error("Cannot broadcast arrays together");let o=gr(r,n),a=gr(t,n),i=n.reduce((u,c)=>u*c,1),s=new Uint8Array(i);for(let u=0;u<i;u++){let[c,l]=Uo(o,u),[m,d]=Uo(a,u);s[u]=e(c,l,m,d)?1:0}return N.fromData(s,n,"bool")}function $o(r,t){return typeof t=="number"?jc(r,t):M(r.dtype)||M(t.dtype)?Zr(r,t,(e,n,o,a)=>e!==o?e>o:n>a):Ar(r,t,(e,n)=>e>n)}function Ro(r,t){return typeof t=="number"?Lc(r,t):M(r.dtype)||M(t.dtype)?Zr(r,t,(e,n,o,a)=>e!==o?e>=o:n>=a):Ar(r,t,(e,n)=>e>=n)}function ko(r,t){return typeof t=="number"?Wc(r,t):M(r.dtype)||M(t.dtype)?Zr(r,t,(e,n,o,a)=>e!==o?e<o:n<a):Ar(r,t,(e,n)=>e<n)}function qo(r,t){return typeof t=="number"?Gc(r,t):M(r.dtype)||M(t.dtype)?Zr(r,t,(e,n,o,a)=>e!==o?e<=o:n<=a):Ar(r,t,(e,n)=>e<=n)}function Vo(r,t){return typeof t=="number"?Zc(r,t):M(r.dtype)||M(t.dtype)?Zr(r,t,(e,n,o,a)=>e===o&&n===a):Ar(r,t,(e,n)=>e===n)}function Po(r,t){return typeof t=="number"?Yc(r,t):M(r.dtype)||M(t.dtype)?Zr(r,t,(e,n,o,a)=>e!==o||n!==a):Ar(r,t,(e,n)=>e!==n)}function be(r,t,e=1e-5,n=1e-8){return typeof t=="number"?Hc(r,t,e,n):Ar(r,t,(o,a)=>{let i=Math.abs(o-a),s=n+e*Math.abs(a);return i<=s})}function jo(r,t,e=1e-5,n=1e-8){let o=be(r,t,e,n),a=o.data;for(let i=0;i<o.size;i++)if(a[i]===0)return!1;return!0}function Lo(r,t){let e=[Array.from(r.shape),Array.from(t.shape)],n=Sr(e);if(n===null)return!1;let o=gr(r,n),a=gr(t,n),i=n.length,s=n.reduce((l,m)=>l*m,1),u=B(o.dtype),c=B(a.dtype);for(let l=0;l<s;l++){let m=l,d=new Array(i);for(let p=i-1;p>=0;p--)d[p]=m%n[p],m=Math.floor(m/n[p]);let y=o.get(...d),f=a.get(...d);if(u||c){let p=typeof y=="bigint"?y:BigInt(Number(y)),g=typeof f=="bigint"?f:BigInt(Number(f));if(p!==g)return!1}else if(y!==f)return!1}return!0}function jc(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[i,s]=kr(o,a);e[a]=(i!==t?i>t:s>0)?1:0}}else for(let o=0;o<r.size;o++)e[o]=n[o]>t?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function Lc(r,t){let e=new Uint8Array(r.size),n=r.data;if(M(r.dtype)){let o=n;for(let a=0;a<r.size;a++){let[i,s]=kr(o,a);e[a]=(i!==t?i>=t:s>=0)?1:0}}else for(let o=0;o<r.size;o++)e[o]=n[o]>=t?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function Wc(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[i,s]=kr(o,a);e[a]=(i!==t?i<t:s<0)?1:0}}else for(let o=0;o<r.size;o++)e[o]=n[o]<t?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function Gc(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[i,s]=kr(o,a);e[a]=(i!==t?i<=t:s<=0)?1:0}}else for(let o=0;o<r.size;o++)e[o]=n[o]<=t?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function Zc(r,t){let e=new Uint8Array(r.size),n=r.data,o=r.dtype;if(M(o)){let a=n;for(let i=0;i<r.size;i++){let[s,u]=kr(a,i);e[i]=s===t&&u===0?1:0}}else if(B(o)){let a=BigInt(Math.round(t)),i=n;for(let s=0;s<r.size;s++)e[s]=i[s]===a?1:0}else for(let a=0;a<r.size;a++)e[a]=n[a]===t?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function Yc(r,t){let e=new Uint8Array(r.size),n=r.data,o=r.dtype;if(M(o)){let a=n;for(let i=0;i<r.size;i++){let[s,u]=kr(a,i);e[i]=s!==t||u!==0?1:0}}else for(let a=0;a<r.size;a++)e[a]=n[a]!==t?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function Hc(r,t,e,n){let o=new Uint8Array(r.size),a=r.data,i=r.dtype;if(B(i)){let s=a;for(let u=0;u<r.size;u++){let c=Number(s[u]),l=Math.abs(c-t),m=n+e*Math.abs(t);o[u]=l<=m?1:0}}else for(let s=0;s<r.size;s++){let u=Number(a[s]),c=Math.abs(u-t),l=n+e*Math.abs(t);o[s]=c<=l?1:0}return N.fromData(o,Array.from(r.shape),"bool")}var Wo=G(()=>{"use strict";K();Q();vr();Ut();xr()});function $(r,t){let e=0,n=1;for(let o=r.length-1;o>=0;o--)e+=r[o]*n,n*=t[o];return e}function R(r,t,e,n){let o=n.length,a=new Array(o),i=Array.from(n).filter((u,c)=>c!==t),s=r;for(let u=i.length-1;u>=0;u--)a[u>=t?u+1:u]=s%i[u],s=Math.floor(s/i[u]);return a[t]=e,a}var he=G(()=>{"use strict"});function st(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,i=r.size,s=r.data;if(t===void 0)if(M(n)){let f=s,p=0,g=0;for(let h=0;h<i;h++)p+=f[h*2],g+=f[h*2+1];return new E(p,g)}else if(B(n)){let f=s,p=BigInt(0);for(let g=0;g<i;g++)p+=f[g];return Number(p)}else{let f=0;for(let p=0;p<i;p++)f+=Number(s[p]);return f}let u=t;if(u<0&&(u=a+u),u<0||u>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,p)=>p!==u);if(c.length===0)return st(r);let l=N.zeros(c,n),m=l.data,d=o[u],y=c.reduce((f,p)=>f*p,1);if(M(n)){let f=s,p=m;for(let g=0;g<y;g++){let h=0,b=0;for(let A=0;A<d;A++){let S=R(g,u,A,o),D=$(S,o);h+=f[D*2],b+=f[D*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<y;g++){let h=BigInt(0);for(let b=0;b<d;b++){let A=R(g,u,b,o),S=$(A,o);h+=f[S]}p[g]=h}}else for(let f=0;f<y;f++){let p=0;for(let g=0;g<d;g++){let h=R(f,u,g,o),b=$(h,o);p+=Number(s[b])}m[f]=p}if(e){let f=[...o];return f[u]=1,N.fromData(m,f,n)}return l}function kt(r,t,e=!1){let n=r.dtype,o=r.shape;if(t===void 0){let d=st(r);return d instanceof E?new E(d.re/r.size,d.im/r.size):d/r.size}let a=t;if(a<0&&(a=o.length+a),a<0||a>=o.length)throw new Error(`axis ${t} is out of bounds for array of dimension ${o.length}`);let i=st(r,t,e);if(typeof i=="number")return i/o[a];if(i instanceof E)return new E(i.re/o[a],i.im/o[a]);let s=o[a],u=n;M(n)?u=n:(B(n)||n.startsWith("int")||n.startsWith("uint"))&&(u="float64");let c=N.zeros(Array.from(i.shape),u),l=c.data,m=i.data;if(M(n)){let d=m,y=l,f=i.size;for(let p=0;p<f;p++)y[p*2]=d[p*2]/s,y[p*2+1]=d[p*2+1]/s}else if(B(n)){let d=m;for(let y=0;y<l.length;y++)l[y]=Number(d[y])/s}else for(let d=0;d<l.length;d++)l[d]=Number(m[d])/s;return c}function Yr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,i=r.size,s=r.data;if(M(n)){let f=s;if(t===void 0){if(i===0)throw new Error("max of empty array");let D=f[0],w=f[1];for(let x=1;x<i;x++){let I=f[x*2],z=f[x*2+1];if(isNaN(I)||isNaN(z))return new E(NaN,NaN);(I>D||I===D&&z>w)&&(D=I,w=z)}return isNaN(D)||isNaN(w)?new E(NaN,NaN):new E(D,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((D,w)=>w!==p);if(g.length===0)return Yr(r);let h=N.zeros(g,n),b=h.data,A=o[p],S=g.reduce((D,w)=>D*w,1);for(let D=0;D<S;D++){let w=R(D,p,0,o),x=$(w,o),I=f[x*2],z=f[x*2+1];for(let F=1;F<A;F++){let v=R(D,p,F,o),T=$(v,o),O=f[T*2],C=f[T*2+1];if(isNaN(O)||isNaN(C)){I=NaN,z=NaN;break}(O>I||O===I&&C>z)&&(I=O,z=C)}b[D*2]=I,b[D*2+1]=z}if(e){let D=[...o];return D[p]=1,N.fromData(b,D,n)}return h}if(t===void 0){if(i===0)throw new Error("max of empty array");let f=s[0];for(let p=1;p<i;p++)s[p]>f&&(f=s[p]);return Number(f)}let u=t;if(u<0&&(u=a+u),u<0||u>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,p)=>p!==u);if(c.length===0)return Yr(r);let l=N.zeros(c,n),m=l.data,d=o[u],y=c.reduce((f,p)=>f*p,1);if(B(n)){let f=s,p=m;for(let g=0;g<y;g++){let h=R(g,u,0,o),b=$(h,o),A=f[b];for(let S=1;S<d;S++){let D=R(g,u,S,o),w=$(D,o),x=f[w];x>A&&(A=x)}p[g]=A}}else for(let f=0;f<y;f++){let p=-1/0;for(let g=0;g<d;g++){let h=R(f,u,g,o),b=$(h,o),A=Number(s[b]);A>p&&(p=A)}m[f]=p}if(e){let f=[...o];return f[u]=1,N.fromData(m,f,n)}return l}function Se(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,i=r.size,s=r.data;if(t===void 0)if(M(n)){let f=s,p=1,g=0;for(let h=0;h<i;h++){let b=f[h*2],A=f[h*2+1],S=p*b-g*A,D=p*A+g*b;p=S,g=D}return new E(p,g)}else if(B(n)){let f=s,p=BigInt(1);for(let g=0;g<i;g++)p*=f[g];return Number(p)}else{let f=1;for(let p=0;p<i;p++)f*=Number(s[p]);return f}let u=t;if(u<0&&(u=a+u),u<0||u>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,p)=>p!==u);if(c.length===0)return Se(r);let l=N.zeros(c,n),m=l.data,d=o[u],y=c.reduce((f,p)=>f*p,1);if(M(n)){let f=s,p=m;for(let g=0;g<y;g++){let h=1,b=0;for(let A=0;A<d;A++){let S=R(g,u,A,o),D=$(S,o),w=f[D*2],x=f[D*2+1],I=h*w-b*x,z=h*x+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<y;g++){let h=BigInt(1);for(let b=0;b<d;b++){let A=R(g,u,b,o),S=$(A,o);h*=f[S]}p[g]=h}}else for(let f=0;f<y;f++){let p=1;for(let g=0;g<d;g++){let h=R(f,u,g,o),b=$(h,o);p*=Number(s[b])}m[f]=p}if(e){let f=[...o];return f[u]=1,N.fromData(m,f,n)}return l}function Hr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,i=r.size,s=r.data;if(M(n)){let f=s;if(t===void 0){if(i===0)throw new Error("min of empty array");let D=f[0],w=f[1];for(let x=1;x<i;x++){let I=f[x*2],z=f[x*2+1];if(isNaN(I)||isNaN(z))return new E(NaN,NaN);(I<D||I===D&&z<w)&&(D=I,w=z)}return isNaN(D)||isNaN(w)?new E(NaN,NaN):new E(D,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((D,w)=>w!==p);if(g.length===0)return Hr(r);let h=N.zeros(g,n),b=h.data,A=o[p],S=g.reduce((D,w)=>D*w,1);for(let D=0;D<S;D++){let w=R(D,p,0,o),x=$(w,o),I=f[x*2],z=f[x*2+1];for(let F=1;F<A;F++){let v=R(D,p,F,o),T=$(v,o),O=f[T*2],C=f[T*2+1];if(isNaN(O)||isNaN(C)){I=NaN,z=NaN;break}(O<I||O===I&&C<z)&&(I=O,z=C)}b[D*2]=I,b[D*2+1]=z}if(e){let D=[...o];return D[p]=1,N.fromData(b,D,n)}return h}if(t===void 0){if(i===0)throw new Error("min of empty array");let f=s[0];for(let p=1;p<i;p++)s[p]<f&&(f=s[p]);return Number(f)}let u=t;if(u<0&&(u=a+u),u<0||u>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,p)=>p!==u);if(c.length===0)return Hr(r);let l=N.zeros(c,n),m=l.data,d=o[u],y=c.reduce((f,p)=>f*p,1);if(B(n)){let f=s,p=m;for(let g=0;g<y;g++){let h=R(g,u,0,o),b=$(h,o),A=f[b];for(let S=1;S<d;S++){let D=R(g,u,S,o),w=$(D,o),x=f[w];x<A&&(A=x)}p[g]=A}}else for(let f=0;f<y;f++){let p=1/0;for(let g=0;g<d;g++){let h=R(f,u,g,o),b=$(h,o),A=Number(s[b]);A<p&&(p=A)}m[f]=p}if(e){let f=[...o];return f[u]=1,N.fromData(m,f,n)}return l}function Or(r,t,e,n){return r<e?-1:r>e?1:t<n?-1:t>n?1:0}function De(r,t){let e=r.dtype,n=M(e),o=r.shape,a=o.length,i=r.size,s=r.data;if(t===void 0){if(i===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<i;S++){let D=g[S*2],w=g[S*2+1];Or(D,w,h,b)<0&&(h=D,b=w,A=S)}return A}let f=s[0],p=0;for(let g=1;g<i;g++)s[g]<f&&(f=s[g],p=g);return p}let u=t;if(u<0&&(u=a+u),u<0||u>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,p)=>p!==u);if(c.length===0)return De(r);let l=N.zeros(c,"int32"),m=l.data,d=o[u],y=c.reduce((f,p)=>f*p,1);if(n){let f=s;for(let p=0;p<y;p++){let g=R(p,u,0,o),h=$(g,o),b=f[h*2],A=f[h*2+1],S=0;for(let D=1;D<d;D++){let w=R(p,u,D,o),x=$(w,o),I=f[x*2],z=f[x*2+1];Or(I,z,b,A)<0&&(b=I,A=z,S=D)}m[p]=S}}else if(B(e)){let f=s;for(let p=0;p<y;p++){let g=R(p,u,0,o),h=$(g,o),b=f[h],A=0;for(let S=1;S<d;S++){let D=R(p,u,S,o),w=$(D,o),x=f[w];x<b&&(b=x,A=S)}m[p]=A}}else for(let f=0;f<y;f++){let p=1/0,g=0;for(let h=0;h<d;h++){let b=R(f,u,h,o),A=$(b,o),S=Number(s[A]);S<p&&(p=S,g=h)}m[f]=g}return l}function Ne(r,t){let e=r.dtype,n=M(e),o=r.shape,a=o.length,i=r.size,s=r.data;if(t===void 0){if(i===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<i;S++){let D=g[S*2],w=g[S*2+1];Or(D,w,h,b)>0&&(h=D,b=w,A=S)}return A}let f=s[0],p=0;for(let g=1;g<i;g++)s[g]>f&&(f=s[g],p=g);return p}let u=t;if(u<0&&(u=a+u),u<0||u>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,p)=>p!==u);if(c.length===0)return Ne(r);let l=N.zeros(c,"int32"),m=l.data,d=o[u],y=c.reduce((f,p)=>f*p,1);if(n){let f=s;for(let p=0;p<y;p++){let g=R(p,u,0,o),h=$(g,o),b=f[h*2],A=f[h*2+1],S=0;for(let D=1;D<d;D++){let w=R(p,u,D,o),x=$(w,o),I=f[x*2],z=f[x*2+1];Or(I,z,b,A)>0&&(b=I,A=z,S=D)}m[p]=S}}else if(B(e)){let f=s;for(let p=0;p<y;p++){let g=R(p,u,0,o),h=$(g,o),b=f[h],A=0;for(let S=1;S<d;S++){let D=R(p,u,S,o),w=$(D,o),x=f[w];x>b&&(b=x,A=S)}m[p]=A}}else for(let f=0;f<y;f++){let p=-1/0,g=0;for(let h=0;h<d;h++){let b=R(f,u,h,o),A=$(b,o),S=Number(s[A]);S>p&&(p=S,g=h)}m[f]=g}return l}function xe(r,t,e=0,n=!1){let o=r.dtype,a=r.shape,i=a.length,s=r.size,u=r.data,c=kt(r,t,n);if(t===void 0){if(M(o)){let S=u,D=c,w=0;for(let x=0;x<s;x++){let I=S[x*2],z=S[x*2+1],F=I-D.re,v=z-D.im;w+=F*F+v*v}return w/(s-e)}let b=c,A=0;for(let S=0;S<s;S++){let D=Number(u[S])-b;A+=D*D}return A/(s-e)}let l=t;if(l<0&&(l=i+l),l<0||l>=i)throw new Error(`axis ${t} is out of bounds for array of dimension ${i}`);let m=a[l],d=c,y=d.data,f=n?d.shape:Array.from(a).filter((b,A)=>A!==l),p=N.zeros(Array.from(f),"float64"),g=p.data,h=f.reduce((b,A)=>b*A,1);if(M(o)){let b=u,A=y;for(let S=0;S<h;S++){let D=0,w=A[S*2],x=A[S*2+1];for(let I=0;I<m;I++){let z=R(S,l,I,a),F=$(z,a),v=b[F*2],T=b[F*2+1],O=v-w,C=T-x;D+=O*O+C*C}g[S]=D/(m-e)}}else for(let b=0;b<h;b++){let A=0,S=Number(y[b]);for(let D=0;D<m;D++){let w=R(b,l,D,a),x=$(w,a),I=Number(u[x])-S;A+=I*I}g[b]=A/(m-e)}return p}function Go(r,t,e=0,n=!1){let o=xe(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=N.zeros(Array.from(o.shape),"float64"),i=o.data,s=a.data;for(let u=0;u<i.length;u++)s[u]=Math.sqrt(Number(i[u]));return a}function we(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,i=r.data;if(t===void 0){for(let y=0;y<a;y++)if(!i[y])return!1;return!0}let 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 u=Array.from(n).filter((y,f)=>f!==s);if(u.length===0)return we(r);let c=N.zeros(u,"bool"),l=c.data,m=n[s],d=u.reduce((y,f)=>y*f,1);for(let y=0;y<d;y++){let f=!0;for(let p=0;p<m;p++){let g=R(y,s,p,n),h=$(g,n);if(!i[h]){f=!1;break}}l[y]=f?1:0}if(e){let y=[...n];return y[s]=1,N.fromData(l,y,"bool")}return c}function Ie(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,i=r.data;if(t===void 0){for(let y=0;y<a;y++)if(i[y])return!0;return!1}let 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 u=Array.from(n).filter((y,f)=>f!==s);if(u.length===0)return Ie(r);let c=N.zeros(u,"bool"),l=c.data,m=n[s],d=u.reduce((y,f)=>y*f,1);for(let y=0;y<d;y++){let f=!1;for(let p=0;p<m;p++){let g=R(y,s,p,n),h=$(g,n);if(i[h]){f=!0;break}}l[y]=f?1:0}if(e){let y=[...n];return y[s]=1,N.fromData(l,y,"bool")}return c}function ze(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let y=a,f=r.size;if(t===void 0){let x=N.zeros([f],e),I=x.data,z=0,F=0;for(let v=0;v<f;v++)z+=y[v*2],F+=y[v*2+1],I[v*2]=z,I[v*2+1]=F;return x}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=N.zeros([...n],e),h=g.data,b=n[p],A=[],S=1;for(let x=o-1;x>=0;x--)A.unshift(S),S*=n[x];let D=r.size,w=A[p];for(let x=0;x<D;x++)Math.floor(x/w)%b===0?(h[x*2]=y[x*2],h[x*2+1]=y[x*2+1]):(h[x*2]=h[(x-w)*2]+y[x*2],h[x*2+1]=h[(x-w)*2+1]+y[x*2+1]);return g}if(t===void 0){let y=r.size,f=new Float64Array(y),p=0;for(let g=0;g<y;g++)p+=Number(a[g]),f[g]=p;return N.fromData(f,[y],"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),u=n[i],c=[],l=1;for(let y=o-1;y>=0;y--)c.unshift(l),l*=n[y];let m=r.size,d=c[i];for(let y=0;y<m;y++)Math.floor(y/d)%u===0?s[y]=Number(a[y]):s[y]=s[y-d]+Number(a[y]);return N.fromData(s,[...n],"float64")}function _e(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let y=a,f=r.size;if(t===void 0){let x=N.zeros([f],e),I=x.data,z=1,F=0;for(let v=0;v<f;v++){let T=y[v*2],O=y[v*2+1],C=z*T-F*O,q=z*O+F*T;z=C,F=q,I[v*2]=z,I[v*2+1]=F}return x}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=N.zeros([...n],e),h=g.data,b=n[p],A=[],S=1;for(let x=o-1;x>=0;x--)A.unshift(S),S*=n[x];let D=r.size,w=A[p];for(let x=0;x<D;x++)if(Math.floor(x/w)%b===0)h[x*2]=y[x*2],h[x*2+1]=y[x*2+1];else{let z=h[(x-w)*2],F=h[(x-w)*2+1],v=y[x*2],T=y[x*2+1];h[x*2]=z*v-F*T,h[x*2+1]=z*T+F*v}return g}if(t===void 0){let y=r.size,f=new Float64Array(y),p=1;for(let g=0;g<y;g++)p*=Number(a[g]),f[g]=p;return N.fromData(f,[y],"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),u=n[i],c=[],l=1;for(let y=o-1;y>=0;y--)c.unshift(l),l*=n[y];let m=r.size,d=c[i];for(let y=0;y<m;y++)Math.floor(y/d)%u===0?s[y]=Number(a[y]):s[y]=s[y-d]*Number(a[y]);return N.fromData(s,[...n],"float64")}function ve(r,t,e=!1){let n=r.dtype;if(M(n)){let m=Yr(r,t,e),d=Hr(r,t,e);if(m instanceof E&&d instanceof E)return new E(m.re-d.re,m.im-d.im);let y=m,f=d,p=y.data,g=f.data,h=new Float64Array(y.size*2);for(let b=0;b<y.size;b++)h[b*2]=p[b*2]-g[b*2],h[b*2+1]=p[b*2+1]-g[b*2+1];return N.fromData(h,[...y.shape],n)}let o=Yr(r,t,e),a=Hr(r,t,e);if(typeof o=="number"&&typeof a=="number")return o-a;let i=o,s=a,u=i.data,c=s.data,l=new Float64Array(i.size);for(let m=0;m<i.size;m++)l[m]=Number(u[m])-Number(c[m]);return N.fromData(l,[...i.shape],"float64")}function Fe(r,t,e=!1){return Jr(r,.5,t,e)}function Me(r,t,e,n=!1){return Jr(r,t/100,e,n)}function Jr(r,t,e,n=!1){if(U(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,i=r.data;if(e===void 0){let y=[];for(let A=0;A<r.size;A++)y.push(Number(i[A]));y.sort((A,S)=>A-S);let f=y.length,p=t*(f-1),g=Math.floor(p),h=Math.ceil(p);if(g===h)return y[g];let b=p-g;return y[g]*(1-b)+y[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 u=Array.from(o).filter((y,f)=>f!==s);if(u.length===0)return Jr(r,t);let c=u.reduce((y,f)=>y*f,1),l=o[s],m=new Float64Array(c);for(let y=0;y<c;y++){let f=[];for(let A=0;A<l;A++){let S=R(y,s,A,o),D=$(S,o);f.push(Number(i[D]))}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[y]=f[h];else{let A=g-h;m[y]=f[h]*(1-A)+f[b]*A}}let d=N.fromData(m,u,"float64");if(n){let y=[...o];return y[s]=1,N.fromData(m,y,"float64")}return d}function it(r,t,e,n=!1){let o=r.dtype,a=r.shape,i=a.length,s=r.data;if(e===void 0)return kt(r,t,n);if(M(o)){let p=s,g=e.data;if(t===void 0){let x=0,I=0,z=0;for(let F=0;F<r.size;F++){let v=Number(g[F%e.size]),T=p[F*2],O=p[F*2+1];x+=T*v,I+=O*v,z+=v}return z===0?new E(NaN,NaN):new E(x/z,I/z)}let h=t;if(h<0&&(h=i+h),h<0||h>=i)throw new Error(`axis ${t} is out of bounds for array of dimension ${i}`);let b=Array.from(a).filter((x,I)=>I!==h);if(b.length===0)return it(r,void 0,e);let A=b.reduce((x,I)=>x*I,1),S=a[h],D=N.zeros(b,o),w=D.data;for(let x=0;x<A;x++){let I=0,z=0,F=0;for(let v=0;v<S;v++){let T=R(x,h,v,a),O=$(T,a),C=Number(g[v%e.size]),q=p[O*2],V=p[O*2+1];I+=q*C,z+=V*C,F+=C}F===0?(w[x*2]=NaN,w[x*2+1]=NaN):(w[x*2]=I/F,w[x*2+1]=z/F)}if(n){let x=[...a];return x[h]=1,N.fromData(w,x,o)}return D}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 u=t;if(u<0&&(u=i+u),u<0||u>=i)throw new Error(`axis ${t} is out of bounds for array of dimension ${i}`);let c=Array.from(a).filter((p,g)=>g!==u);if(c.length===0)return it(r,void 0,e);let l=c.reduce((p,g)=>p*g,1),m=a[u],d=e.data,y=new Float64Array(l);for(let p=0;p<l;p++){let g=0,h=0;for(let b=0;b<m;b++){let A=R(p,u,b,a),S=$(A,a),D=Number(d[b%e.size]);g+=Number(s[S])*D,h+=D}y[p]=h===0?NaN:g/h}let f=N.fromData(y,c,"float64");if(n){let p=[...a];return p[u]=1,N.fromData(y,p,"float64")}return f}function or(r,t){return isNaN(r)||isNaN(t)}function qt(r,t,e=!1){let n=r.dtype,o=M(n),a=r.shape,i=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];or(A,S)||(g+=A,h+=S)}return new E(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 u=t;if(u<0&&(u=i+u),u<0||u>=i)throw new Error(`axis ${t} is out of bounds for array of dimension ${i}`);let c=Array.from(a).filter((f,p)=>p!==u);if(c.length===0)return qt(r);let l=c.reduce((f,p)=>f*p,1),m=a[u];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=R(g,u,A,a),D=$(S,a),w=f[D*2],x=f[D*2+1];or(w,x)||(h+=w,b+=x)}p[g*2]=h,p[g*2+1]=b}if(e){let g=[...a];return g[u]=1,N.fromData(p,g,n)}return N.fromData(p,c,n)}let d=new Float64Array(l);for(let f=0;f<l;f++){let p=0;for(let g=0;g<m;g++){let h=R(f,u,g,a),b=$(h,a),A=Number(s[b]);isNaN(A)||(p+=A)}d[f]=p}let y=N.fromData(d,c,"float64");if(e){let f=[...a];return f[u]=1,N.fromData(d,f,"float64")}return y}function Vt(r,t,e=!1){let n=r.dtype,o=M(n),a=r.shape,i=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(!or(A,S)){let D=g*A-h*S,w=g*S+h*A;g=D,h=w}}return new E(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 u=t;if(u<0&&(u=i+u),u<0||u>=i)throw new Error(`axis ${t} is out of bounds for array of dimension ${i}`);let c=Array.from(a).filter((f,p)=>p!==u);if(c.length===0)return Vt(r);let l=c.reduce((f,p)=>f*p,1),m=a[u];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=R(g,u,A,a),D=$(S,a),w=f[D*2],x=f[D*2+1];if(!or(w,x)){let I=h*w-b*x,z=h*x+b*w;h=I,b=z}}p[g*2]=h,p[g*2+1]=b}if(e){let g=[...a];return g[u]=1,N.fromData(p,g,n)}return N.fromData(p,c,n)}let d=new Float64Array(l);for(let f=0;f<l;f++){let p=1;for(let g=0;g<m;g++){let h=R(f,u,g,a),b=$(h,a),A=Number(s[b]);isNaN(A)||(p*=A)}d[f]=p}let y=N.fromData(d,c,"float64");if(e){let f=[...a];return f[u]=1,N.fromData(d,f,"float64")}return y}function Pt(r,t,e=!1){let n=r.dtype,o=M(n),a=r.shape,i=a.length,s=r.data;if(t===void 0){if(o){let g=s,h=0,b=0,A=0;for(let S=0;S<r.size;S++){let D=g[S*2],w=g[S*2+1];or(D,w)||(h+=D,b+=w,A++)}return A===0?new E(NaN,NaN):new E(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 u=t;if(u<0&&(u=i+u),u<0||u>=i)throw new Error(`axis ${t} is out of bounds for array of dimension ${i}`);let c=Array.from(a).filter((f,p)=>p!==u);if(c.length===0)return Pt(r);let l=c.reduce((f,p)=>f*p,1),m=a[u];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 D=R(g,u,S,a),w=$(D,a),x=f[w*2],I=f[w*2+1];or(x,I)||(h+=x,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[u]=1,N.fromData(p,g,n)}return N.fromData(p,c,n)}let d=new Float64Array(l);for(let f=0;f<l;f++){let p=0,g=0;for(let h=0;h<m;h++){let b=R(f,u,h,a),A=$(b,a),S=Number(s[A]);isNaN(S)||(p+=S,g++)}d[f]=g===0?NaN:p/g}let y=N.fromData(d,c,"float64");if(e){let f=[...a];return f[u]=1,N.fromData(d,f,"float64")}return y}function Xr(r,t,e=0,n=!1){let o=r.dtype,a=r.shape,i=a.length,s=r.data;if(M(o)){let f=s;if(t===void 0){let D=0,w=0,x=0;for(let v=0;v<r.size;v++){let T=f[v*2],O=f[v*2+1];or(T,O)||(D+=T,w+=O,x++)}if(x-e<=0)return NaN;let I=D/x,z=w/x,F=0;for(let v=0;v<r.size;v++){let T=f[v*2],O=f[v*2+1];if(!or(T,O)){let C=T-I,q=O-z;F+=C*C+q*q}}return F/(x-e)}let p=t;if(p<0&&(p=i+p),p<0||p>=i)throw new Error(`axis ${t} is out of bounds for array of dimension ${i}`);let g=Array.from(a).filter((D,w)=>w!==p);if(g.length===0)return Xr(r,void 0,e);let h=g.reduce((D,w)=>D*w,1),b=a[p],A=new Float64Array(h);for(let D=0;D<h;D++){let w=0,x=0,I=0;for(let T=0;T<b;T++){let O=R(D,p,T,a),C=$(O,a),q=f[C*2],V=f[C*2+1];or(q,V)||(w+=q,x+=V,I++)}if(I-e<=0){A[D]=NaN;continue}let z=w/I,F=x/I,v=0;for(let T=0;T<b;T++){let O=R(D,p,T,a),C=$(O,a),q=f[C*2],V=f[C*2+1];if(!or(q,V)){let k=q-z,W=V-F;v+=k*k+W*W}}A[D]=v/(I-e)}let S=N.fromData(A,g,"float64");if(n){let D=[...a];return D[p]=1,N.fromData(A,D,"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 u=t;if(u<0&&(u=i+u),u<0||u>=i)throw new Error(`axis ${t} is out of bounds for array of dimension ${i}`);let c=Array.from(a).filter((f,p)=>p!==u);if(c.length===0)return Xr(r,void 0,e);let l=c.reduce((f,p)=>f*p,1),m=a[u],d=new Float64Array(l);for(let f=0;f<l;f++){let p=0,g=0;for(let A=0;A<m;A++){let S=R(f,u,A,a),D=$(S,a),w=Number(s[D]);isNaN(w)||(p+=w,g++)}if(g-e<=0){d[f]=NaN;continue}let h=p/g,b=0;for(let A=0;A<m;A++){let S=R(f,u,A,a),D=$(S,a),w=Number(s[D]);isNaN(w)||(b+=(w-h)**2)}d[f]=b/(g-e)}let y=N.fromData(d,c,"float64");if(n){let f=[...a];return f[u]=1,N.fromData(d,f,"float64")}return y}function Be(r,t,e=0,n=!1){let o=Xr(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=o,i=new Float64Array(a.size);for(let s=0;s<a.size;s++)i[s]=Math.sqrt(Number(a.data[s]));return N.fromData(i,[...a.shape],"float64")}function ut(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,i=r.data;if(M(n)){let y=i;if(t===void 0){let S=1/0,D=1/0,w=!1;for(let x=0;x<r.size;x++){let I=y[x*2],z=y[x*2+1];isNaN(I)||isNaN(z)||(w?(I<S||I===S&&z<D)&&(S=I,D=z):(S=I,D=z,w=!0))}return w?new E(S,D):new E(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,D)=>D!==f);if(p.length===0)return ut(r);let g=p.reduce((S,D)=>S*D,1),h=o[f],b=new Float64Array(g*2);for(let S=0;S<g;S++){let D=1/0,w=1/0,x=!1;for(let I=0;I<h;I++){let z=R(S,f,I,o),F=$(z,o),v=y[F*2],T=y[F*2+1];isNaN(v)||isNaN(T)||(x?(v<D||v===D&&T<w)&&(D=v,w=T):(D=v,w=T,x=!0))}b[S*2]=x?D:NaN,b[S*2+1]=x?w:NaN}let A=N.fromData(b,p,n);if(e){let S=[...o];return S[f]=1,N.fromData(b,S,n)}return A}if(t===void 0){let y=1/0;for(let f=0;f<r.size;f++){let p=Number(i[f]);!isNaN(p)&&p<y&&(y=p)}return y===1/0?NaN:y}let s=t;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let u=Array.from(o).filter((y,f)=>f!==s);if(u.length===0)return ut(r);let c=u.reduce((y,f)=>y*f,1),l=o[s],m=new Float64Array(c);for(let y=0;y<c;y++){let f=1/0;for(let p=0;p<l;p++){let g=R(y,s,p,o),h=$(g,o),b=Number(i[h]);!isNaN(b)&&b<f&&(f=b)}m[y]=f===1/0?NaN:f}let d=N.fromData(m,u,"float64");if(e){let y=[...o];return y[s]=1,N.fromData(m,y,"float64")}return d}function ct(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,i=r.data;if(M(n)){let y=i;if(t===void 0){let S=-1/0,D=-1/0,w=!1;for(let x=0;x<r.size;x++){let I=y[x*2],z=y[x*2+1];isNaN(I)||isNaN(z)||(w?(I>S||I===S&&z>D)&&(S=I,D=z):(S=I,D=z,w=!0))}return w?new E(S,D):new E(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,D)=>D!==f);if(p.length===0)return ct(r);let g=p.reduce((S,D)=>S*D,1),h=o[f],b=new Float64Array(g*2);for(let S=0;S<g;S++){let D=-1/0,w=-1/0,x=!1;for(let I=0;I<h;I++){let z=R(S,f,I,o),F=$(z,o),v=y[F*2],T=y[F*2+1];isNaN(v)||isNaN(T)||(x?(v>D||v===D&&T>w)&&(D=v,w=T):(D=v,w=T,x=!0))}b[S*2]=x?D:NaN,b[S*2+1]=x?w:NaN}let A=N.fromData(b,p,n);if(e){let S=[...o];return S[f]=1,N.fromData(b,S,n)}return A}if(t===void 0){let y=-1/0;for(let f=0;f<r.size;f++){let p=Number(i[f]);!isNaN(p)&&p>y&&(y=p)}return y===-1/0?NaN:y}let s=t;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let u=Array.from(o).filter((y,f)=>f!==s);if(u.length===0)return ct(r);let c=u.reduce((y,f)=>y*f,1),l=o[s],m=new Float64Array(c);for(let y=0;y<c;y++){let f=-1/0;for(let p=0;p<l;p++){let g=R(y,s,p,o),h=$(g,o),b=Number(i[h]);!isNaN(b)&&b>f&&(f=b)}m[y]=f===-1/0?NaN:f}let d=N.fromData(m,u,"float64");if(e){let y=[...o];return y[s]=1,N.fromData(m,y,"float64")}return d}function lt(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let m=a;if(t===void 0){let h=1/0,b=1/0,A=-1;for(let S=0;S<r.size;S++){let D=m[S*2],w=m[S*2+1];!or(D,w)&&Or(D,w,h,b)<0&&(h=D,b=w,A=S)}return A}let d=t;if(d<0&&(d=o+d),d<0||d>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let y=Array.from(n).filter((h,b)=>b!==d);if(y.length===0)return lt(r);let f=y.reduce((h,b)=>h*b,1),p=n[d],g=new Int32Array(f);for(let h=0;h<f;h++){let b=1/0,A=1/0,S=0;for(let D=0;D<p;D++){let w=R(h,d,D,n),x=$(w,n),I=m[x*2],z=m[x*2+1];!or(I,z)&&Or(I,z,b,A)<0&&(b=I,A=z,S=D)}g[h]=S}return N.fromData(g,y,"int32")}if(t===void 0){let m=1/0,d=-1;for(let y=0;y<r.size;y++){let f=Number(a[y]);!isNaN(f)&&f<m&&(m=f,d=y)}return d}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=Array.from(n).filter((m,d)=>d!==i);if(s.length===0)return lt(r);let u=s.reduce((m,d)=>m*d,1),c=n[i],l=new Int32Array(u);for(let m=0;m<u;m++){let d=1/0,y=0;for(let f=0;f<c;f++){let p=R(m,i,f,n),g=$(p,n),h=Number(a[g]);!isNaN(h)&&h<d&&(d=h,y=f)}l[m]=y}return N.fromData(l,s,"int32")}function ft(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let m=a;if(t===void 0){let h=-1/0,b=-1/0,A=-1;for(let S=0;S<r.size;S++){let D=m[S*2],w=m[S*2+1];!or(D,w)&&Or(D,w,h,b)>0&&(h=D,b=w,A=S)}return A}let d=t;if(d<0&&(d=o+d),d<0||d>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let y=Array.from(n).filter((h,b)=>b!==d);if(y.length===0)return ft(r);let f=y.reduce((h,b)=>h*b,1),p=n[d],g=new Int32Array(f);for(let h=0;h<f;h++){let b=-1/0,A=-1/0,S=0;for(let D=0;D<p;D++){let w=R(h,d,D,n),x=$(w,n),I=m[x*2],z=m[x*2+1];!or(I,z)&&Or(I,z,b,A)>0&&(b=I,A=z,S=D)}g[h]=S}return N.fromData(g,y,"int32")}if(t===void 0){let m=-1/0,d=-1;for(let y=0;y<r.size;y++){let f=Number(a[y]);!isNaN(f)&&f>m&&(m=f,d=y)}return d}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=Array.from(n).filter((m,d)=>d!==i);if(s.length===0)return ft(r);let u=s.reduce((m,d)=>m*d,1),c=n[i],l=new Int32Array(u);for(let m=0;m<u;m++){let d=-1/0,y=0;for(let f=0;f<c;f++){let p=R(m,i,f,n),g=$(p,n),h=Number(a[g]);!isNaN(h)&&h>d&&(d=h,y=f)}l[m]=y}return N.fromData(l,s,"int32")}function Ee(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let y=a,f=r.size;if(t===void 0){let x=N.zeros([f],e),I=x.data,z=0,F=0;for(let v=0;v<f;v++){let T=y[v*2],O=y[v*2+1];or(T,O)||(z+=T,F+=O),I[v*2]=z,I[v*2+1]=F}return x}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=N.zeros([...n],e),h=g.data,b=n[p],A=[],S=1;for(let x=o-1;x>=0;x--)A.unshift(S),S*=n[x];let D=r.size,w=A[p];for(let x=0;x<D;x++){let I=y[x*2],z=y[x*2+1],F=Math.floor(x/w)%b,v=or(I,z);F===0?(h[x*2]=v?0:I,h[x*2+1]=v?0:z):(h[x*2]=h[(x-w)*2]+(v?0:I),h[x*2+1]=h[(x-w)*2+1]+(v?0:z))}return g}if(t===void 0){let y=r.size,f=new Float64Array(y),p=0;for(let g=0;g<y;g++){let h=Number(a[g]);isNaN(h)||(p+=h),f[g]=p}return N.fromData(f,[y],"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),u=n[i],c=[],l=1;for(let y=o-1;y>=0;y--)c.unshift(l),l*=n[y];let m=r.size,d=c[i];for(let y=0;y<m;y++){let f=Number(a[y]);Math.floor(y/d)%u===0?s[y]=isNaN(f)?0:f:s[y]=s[y-d]+(isNaN(f)?0:f)}return N.fromData(s,[...n],"float64")}function Te(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let y=a,f=r.size;if(t===void 0){let x=N.zeros([f],e),I=x.data,z=1,F=0;for(let v=0;v<f;v++){let T=y[v*2],O=y[v*2+1];if(!or(T,O)){let C=z*T-F*O,q=z*O+F*T;z=C,F=q}I[v*2]=z,I[v*2+1]=F}return x}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=N.zeros([...n],e),h=g.data,b=n[p],A=[],S=1;for(let x=o-1;x>=0;x--)A.unshift(S),S*=n[x];let D=r.size,w=A[p];for(let x=0;x<D;x++){let I=y[x*2],z=y[x*2+1],F=Math.floor(x/w)%b,v=or(I,z);if(F===0)h[x*2]=v?1:I,h[x*2+1]=v?0:z;else{let T=h[(x-w)*2],O=h[(x-w)*2+1];v?(h[x*2]=T,h[x*2+1]=O):(h[x*2]=T*I-O*z,h[x*2+1]=T*z+O*I)}}return g}if(t===void 0){let y=r.size,f=new Float64Array(y),p=1;for(let g=0;g<y;g++){let h=Number(a[g]);isNaN(h)||(p*=h),f[g]=p}return N.fromData(f,[y],"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),u=n[i],c=[],l=1;for(let y=o-1;y>=0;y--)c.unshift(l),l*=n[y];let m=r.size,d=c[i];for(let y=0;y<m;y++){let f=Number(a[y]);Math.floor(y/d)%u===0?s[y]=isNaN(f)?1:f:s[y]=s[y-d]*(isNaN(f)?1:f)}return N.fromData(s,[...n],"float64")}function jt(r,t,e=!1){U(r.dtype,"nanmedian","Complex numbers are not orderable.");let n=r.shape,o=n.length,a=r.data;if(t===void 0){let d=[];for(let p=0;p<r.size;p++){let g=Number(a[p]);isNaN(g)||d.push(g)}if(d.length===0)return NaN;d.sort((p,g)=>p-g);let y=d.length,f=Math.floor(y/2);return y%2===0?(d[f-1]+d[f])/2:d[f]}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((d,y)=>y!==i);if(s.length===0)return jt(r);let u=s.reduce((d,y)=>d*y,1),c=n[i],l=new Float64Array(u);for(let d=0;d<u;d++){let y=[];for(let g=0;g<c;g++){let h=R(d,i,g,n),b=$(h,n),A=Number(a[b]);isNaN(A)||y.push(A)}if(y.length===0){l[d]=NaN;continue}y.sort((g,h)=>g-h);let f=y.length,p=Math.floor(f/2);f%2===0?l[d]=(y[p-1]+y[p])/2:l[d]=y[p]}let m=N.fromData(l,s,"float64");if(e){let d=[...n];return d[i]=1,N.fromData(l,d,"float64")}return m}function mt(r,t,e,n=!1){if(U(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,i=r.data;if(e===void 0){let y=[];for(let A=0;A<r.size;A++){let S=Number(i[A]);isNaN(S)||y.push(S)}if(y.length===0)return NaN;y.sort((A,S)=>A-S);let f=y.length,p=t*(f-1),g=Math.floor(p),h=Math.ceil(p);if(g===h)return y[g];let b=p-g;return y[g]*(1-b)+y[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 u=Array.from(o).filter((y,f)=>f!==s);if(u.length===0)return mt(r,t);let c=u.reduce((y,f)=>y*f,1),l=o[s],m=new Float64Array(c);for(let y=0;y<c;y++){let f=[];for(let A=0;A<l;A++){let S=R(y,s,A,o),D=$(S,o),w=Number(i[D]);isNaN(w)||f.push(w)}if(f.length===0){m[y]=NaN;continue}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[y]=f[h];else{let A=g-h;m[y]=f[h]*(1-A)+f[b]*A}}let d=N.fromData(m,u,"float64");if(n){let y=[...o];return y[s]=1,N.fromData(m,y,"float64")}return d}function Oe(r,t,e,n=!1){return mt(r,t/100,e,n)}var Zo=G(()=>{"use strict";K();Q();he();xr()});function er(r,t){let e=r.size,n=r.dtype,o=t.indexOf(-1),a;if(o!==-1){let c=t.reduce((m,d,y)=>y===o?m:m*d,1),l=e/c;if(!Number.isInteger(l))throw new Error(`cannot reshape array of size ${e} into shape ${JSON.stringify(t)}`);a=t.map((m,d)=>d===o?l:m)}else a=t;if(a.reduce((c,l)=>c*l,1)!==e)throw new Error(`cannot reshape array of size ${e} into shape ${JSON.stringify(a)}`);if(r.isCContiguous){let c=r.data;return N.fromData(c,a,n,ur(a),0)}let u=r.copy().data;return N.fromData(u,a,n,ur(a),0)}function qr(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 N.fromData(s,[t],e,[1],0)}let o=new n(t),a=B(e);for(let i=0;i<t;i++){let s=r.iget(i);o[i]=s}return N.fromData(o,[t],e,[1],0)}function Qr(r){let t=r.size,e=r.dtype;if(r.isCContiguous){let n=r.data;return N.fromData(n,[t],e,[1],0)}return qr(r)}function yt(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,i=r.dtype,s;if(t===void 0)s=Array.from({length:n},(m,d)=>n-1-d);else{if(t.length!==n)throw new Error(`axes must have length ${n}, got ${t.length}`);let m=new Set;for(let d of t){let y=d<0?n+d:d;if(y<0||y>=n)throw new Error(`axis ${d} is out of bounds for array of dimension ${n}`);if(m.has(y))throw new Error("repeated axis in transpose");m.add(y)}s=t.map(d=>d<0?n+d:d)}let u=s.map(m=>e[m]),c=Array.from(o),l=s.map(m=>c[m]);return N.fromData(a,u,i,l,r.offset)}function Ce(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,i=r.dtype;if(t===void 0){let s=[],u=[];for(let c=0;c<n;c++)e[c]!==1&&(s.push(e[c]),u.push(o[c]));return s.length===0&&(s.push(1),u.push(1)),N.fromData(a,s,i,u,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 u=[],c=[];for(let l=0;l<n;l++)l!==s&&(u.push(e[l]),c.push(o[l]));return N.fromData(a,u,i,c,r.offset)}}function pt(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,i=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 u=[...Array.from(e)];u.splice(s,0,1);let c=[...Array.from(o)],l=s<n?o[s]*(e[s]||1):1;return c.splice(s,0,l),N.fromData(a,u,i,c,r.offset)}function Yo(r,t,e){let n=r.shape,o=n.length,a=r.strides,i=r.data,s=r.dtype,u=t<0?o+t:t,c=e<0?o+e:e;if(u<0||u>=o)throw new Error(`axis1 ${t} is out of bounds for array of dimension ${o}`);if(c<0||c>=o)throw new Error(`axis2 ${e} is out of bounds for array of dimension ${o}`);if(u===c)return N.fromData(i,Array.from(n),s,Array.from(a),r.offset);let l=Array.from(n),m=Array.from(a);return[l[u],l[c]]=[l[c],l[u]],[m[u],m[c]]=[m[c],m[u]],N.fromData(i,l,s,m,r.offset)}function Ue(r,t,e){let n=r.ndim,o=Array.isArray(t)?t:[t],a=Array.isArray(e)?e:[e];if(o.length!==a.length)throw new Error("source and destination must have the same number of elements");let i=o.map(c=>{let l=c<0?n+c:c;if(l<0||l>=n)throw new Error(`source axis ${c} is out of bounds for array of dimension ${n}`);return l}),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(i).size!==i.length)throw new Error("repeated axis in source");if(new Set(s).size!==s.length)throw new Error("repeated axis in destination");let u=[];for(let c=0;c<n;c++)i.includes(c)||u.push(c);for(let c=0;c<i.length;c++){let l=s[c];u.splice(l,0,i[c])}return yt(r,u)}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 y=1;y<r.length;y++){let f=r[y];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 i=Array.from(e.shape),s=e.shape[a];for(let y=1;y<r.length;y++)s+=r[y].shape[a];i[a]=s;let u=i.reduce((y,f)=>y*f,1),c=j(o);if(!c)throw new Error(`Cannot concatenate arrays with dtype ${o}`);let l=new c(u),m=ur(i),d=0;for(let y of r){let f=y.shape[a];Qc(y,l,i,m,a,d,o),d+=f}return N.fromData(l,i,o)}function Qc(r,t,e,n,o,a,i){let s=r.shape,u=s.length,c=r.size,l=i==="int64"||i==="uint64";if(o===0&&r.isCContiguous&&u>0){let y=a*n[0],f=r.data,p=r.offset,g=p+c;t.set(f.subarray(p,g),y);return}if(o===1&&u===2&&r.isCContiguous){let y=s[0],f=s[1],p=e[1],g=r.data,h=r.offset;for(let b=0;b<y;b++){let A=h+b*f,S=b*p+a;t.set(g.subarray(A,A+f),S)}return}let m=new Array(u).fill(0),d=a*n[o];for(let y=0;y<c;y++){let f=r.iget(y),p=d;for(let g=0;g<u;g++)p+=m[g]*n[g];t[p]=f;for(let g=u-1;g>=0&&(m[g]++,!(m[g]<s[g]));g--)m[g]=0}}function Ho(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 u=r[s];if(u.ndim!==o)throw new Error("all input arrays must have the same shape");for(let c=0;c<o;c++)if(u.shape[c]!==n[c])throw new Error("all input arrays must have the same shape")}let i=r.map(s=>pt(s,a));return Cr(i,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?er(e,[1,e.shape[0]]):e);return Cr(t,0)}function $e(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 Jo(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?er(pt(er(e,[1,e.shape[0]]),2),[1,e.shape[0],1]):e.ndim===2?pt(e,2):e);return Cr(t,2)}function Qo(r,t,e=0){let n=r.shape,o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=n[a],s;if(typeof t=="number"){if(i%t!==0)throw new Error("array split does not result in an equal division");let u=i/t;s=[];for(let c=1;c<t;c++)s.push(c*u)}else s=t;return Ko(r,s,a)}function dt(r,t,e=0){let n=r.shape,o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=n[a],s;if(typeof t=="number"){let u=t,c=Math.floor(i/u),l=i%u;s=[];let m=0;for(let d=0;d<u-1;d++)m+=c+(d<l?1:0),s.push(m)}else s=t;return Ko(r,s,a)}function Ko(r,t,e){let n=r.shape,o=n[e],a=[0,...t,o],i=[];for(let s=0;s<a.length-1;s++){let u=a[s],c=a[s+1];if(u>c)throw new Error("split indices must be in ascending order");let l=Array.from(n);l[e]=c-u;let m=r.offset+u*r.strides[e];i.push(N.fromData(r.data,l,r.dtype,Array.from(r.strides),m))}return i}function ra(r,t){if(r.ndim<2)throw new Error("vsplit only works on arrays of 2 or more dimensions");return dt(r,t,0)}function ta(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 dt(r,t,e)}function ea(r,t){let e=r.shape,n=e.length,o=r.dtype,a=Array.isArray(t)?t:[t],i=Math.max(n,a.length),s=new Array(i).fill(1),u=new Array(i).fill(1);for(let b=0;b<n;b++)s[i-n+b]=e[b];for(let b=0;b<a.length;b++)u[i-a.length+b]=a[b];let c=s.map((b,A)=>b*u[A]),l=c.reduce((b,A)=>b*A,1),m=j(o);if(!m)throw new Error(`Cannot tile array with dtype ${o}`);let d=new m(l),y=ur(c),f=r;n<i&&(f=er(r,s));let p=o==="int64"||o==="uint64",g=f.strides,h=new Array(i).fill(0);for(let b=0;b<l;b++){let A=f.offset;for(let w=0;w<i;w++){let x=h[w]%s[w];A+=x*g[w]}let S=f.data[A],D=0;for(let w=0;w<i;w++)D+=h[w]*y[w];d[D]=S;for(let w=i-1;w>=0&&(h[w]++,!(h[w]<c[w]));w--)h[w]=0}return N.fromData(d,c,o)}function na(r,t,e){let n=r.shape,o=n.length,a=r.dtype,i=r.size;if(e===void 0){let b=i,A=Array.isArray(t)?t:new Array(b).fill(t);if(A.length!==b)throw new Error(`operands could not be broadcast together with shape (${b},) (${A.length},)`);let S=A.reduce((I,z)=>I+z,0),D=j(a);if(!D)throw new Error(`Cannot repeat array with dtype ${a}`);let w=new D(S),x=0;for(let I=0;I<b;I++){let z=r.iget(I),F=A[I];for(let v=0;v<F;v++)w[x++]=z}return N.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 u=n[s],c=Array.isArray(t)?t:new Array(u).fill(t);if(c.length!==u)throw new Error(`operands could not be broadcast together with shape (${u},) (${c.length},)`);let l=Array.from(n);l[s]=c.reduce((b,A)=>b+A,0);let m=l.reduce((b,A)=>b*A,1),d=j(a);if(!d)throw new Error(`Cannot repeat array with dtype ${a}`);let y=new d(m),f=ur(l),p=new Array(o).fill(0),g=a==="int64"||a==="uint64",h=[0];for(let b=0;b<u;b++)h.push(h[b]+c[b]);for(let b=0;b<i;b++){let A=r.iget(b),S=p[s],D=c[S],w=0;for(let z=0;z<o;z++)z!==s&&(w+=p[z]*f[z]);let x=f[s],I=h[S];for(let z=0;z<D;z++){let F=w+(I+z)*x;y[F]=A}for(let z=o-1;z>=0&&(p[z]++,!(p[z]<n[z]));z--)p[z]=0}return N.fromData(y,l,a)}function oa(r,t){let e=r.shape,n=e.length,o=r.dtype,a=r.size,i;if(t===void 0)i=new Set(Array.from({length:n},(d,y)=>y));else if(typeof t=="number"){let d=t<0?n+t:t;if(d<0||d>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);i=new Set([d])}else i=new Set(t.map(d=>{let y=d<0?n+d:d;if(y<0||y>=n)throw new Error(`axis ${d} is out of bounds for array of dimension ${n}`);return y}));let s=j(o);if(!s)throw new Error(`Cannot flip array with dtype ${o}`);let u=new s(a),c=B(o);if(n===1&&r.isCContiguous){let d=r.data,y=r.offset;for(let f=0;f<a;f++)u[f]=d[y+a-1-f];return N.fromData(u,[...e],o)}if(n===2&&r.isCContiguous){let d=e[0],y=e[1],f=r.data,p=r.offset;if(i.size===2){for(let g=0;g<a;g++)u[g]=f[p+a-1-g];return N.fromData(u,[...e],o)}if(i.size===1){if(i.has(0)){for(let g=0;g<d;g++){let h=p+(d-1-g)*y,b=g*y;for(let A=0;A<y;A++)u[b+A]=f[h+A]}return N.fromData(u,[...e],o)}else if(i.has(1)){for(let g=0;g<d;g++){let h=p+g*y,b=g*y;for(let A=0;A<y;A++)u[b+A]=f[h+y-1-A]}return N.fromData(u,[...e],o)}}}let l=new Array(n),m=new Array(n).fill(0);for(let d=0;d<a;d++){for(let p=0;p<n;p++)l[p]=i.has(p)?e[p]-1-m[p]:m[p];let y=r.offset;for(let p=0;p<n;p++)y+=l[p]*r.strides[p];let f=r.data[y];u[d]=f;for(let p=n-1;p>=0&&(m[p]++,!(m[p]<e[p]));p--)m[p]=0}return N.fromData(u,[...e],o)}function aa(r,t=1,e=[0,1]){let n=r.shape,o=n.length,a=r.dtype;if(o<2)throw new Error("Input must be at least 2-D");let i=e[0]<0?o+e[0]:e[0],s=e[1]<0?o+e[1]:e[1];if(i<0||i>=o||s<0||s>=o)throw new Error(`Axes are out of bounds for array of dimension ${o}`);if(i===s)throw new Error("Axes must be different");if(t=(t%4+4)%4,t===0)return r.copy();let u=j(a);if(!u)throw new Error(`Cannot rotate array with dtype ${a}`);let c=[...n];(t===1||t===3)&&([c[i],c[s]]=[c[s],c[i]]);let l=c.reduce((g,h)=>g*h,1),m=new u(l),d=ur(c),y=B(a),f=new Array(o).fill(0),p=new Array(o);for(let g=0;g<r.size;g++){for(let D=0;D<o;D++)p[D]=f[D];let h,b;t===1?(h=n[s]-1-f[s],b=f[i]):t===2?(h=n[i]-1-f[i],b=n[s]-1-f[s],p[i]=h,p[s]=b):(h=f[s],b=n[i]-1-f[i]),t!==2&&(p[i]=h,p[s]=b);let A=0;for(let D=0;D<o;D++)A+=p[D]*d[D];let S=r.iget(g);m[A]=S;for(let D=o-1;D>=0&&(f[D]++,!(f[D]<n[D]));D--)f[D]=0}return N.fromData(m,c,a)}function sa(r,t,e){let n=r.shape,o=n.length,a=r.dtype,i=r.size;if(e===void 0){let f=Array.isArray(t)?t.reduce((A,S)=>A+S,0):t,p=qr(r),g=j(a);if(!g)throw new Error(`Cannot roll array with dtype ${a}`);let h=new g(i),b=B(a);for(let A=0;A<i;A++){let S=((A-f)%i+i)%i,D=p.iget(S);h[A]=D}return N.fromData(h,[...n],a)}let s=Array.isArray(t)?t:[t],u=Array.isArray(e)?e:[e];if(s.length!==u.length)throw new Error("shift and axis must have the same length");let c=u.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(i),d=B(a),y=new Array(o).fill(0);for(let f=0;f<i;f++){let p=[...y];for(let b=0;b<c.length;b++){let A=c[b],S=n[A],D=s[b];p[A]=((p[A]-D)%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&&(y[b]++,!(y[b]<n[b]));b--)y[b]=0}return N.fromData(m,[...n],a)}function ia(r,t,e=0){let n=r.ndim,o=t<0?n+t:t;if(o<0||o>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let a=e<0?n+e:e;if(a<0||a>n)throw new Error(`start ${e} is out of bounds`);return o<a&&a--,o===a?N.fromData(r.data,Array.from(r.shape),r.dtype,Array.from(r.strides),r.offset):Ue(r,o,a)}function ua(r,t){if(r.ndim<3)throw new Error("dsplit only works on arrays of 3 or more dimensions");return dt(r,t,2)}function ca(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?er(e,[e.shape[0],1]):e);return $e(t)}function la(r,t){let e=r.dtype,n=t.reduce((u,c)=>u*c,1),o=r.size,a=j(e);if(!a)throw new Error(`Cannot resize array with dtype ${e}`);let i=new a(n),s=B(e);for(let u=0;u<n;u++){let c=u%o,l=r.iget(c);i[u]=l}return N.fromData(i,t,e)}function fa(r){return r.map(t=>t.ndim===0?er(t,[1]):t)}function ma(r){return r.map(t=>t.ndim===0?er(t,[1,1]):t.ndim===1?er(t,[1,t.shape[0]]):t)}function pa(r){return r.map(t=>t.ndim===0?er(t,[1,1,1]):t.ndim===1?er(t,[1,t.shape[0],1]):t.ndim===2?er(t,[t.shape[0],t.shape[1],1]):t)}function ya(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],i=[];for(let s=0;s<a;s++){let u=[];for(let m=0;m<n;m++)m===o?u.push({start:s,stop:s+1,step:1}):u.push({start:0,stop:e[m],step:1});let c=Kc(r,u),l=Ce(c,o);i.push(l)}return i}function da(r,t=1){if(r.length===0)throw new Error("need at least one array to block");return r.length===1?r[0].copy():Cr(r,-1)}function Kc(r,t){let e=r.shape,n=r.strides,o=r.offset,a=r.dtype,i=r.data,s=[],u=[];for(let c=0;c<e.length;c++){let l=t[c],{start:m,stop:d,step:y}=l,f=Math.ceil((d-m)/y);s.push(f),u.push(n[c]*y),o+=m*n[c]}return N.fromData(i,s,a,u,o)}var Re=G(()=>{"use strict";K();Q()});function wr(r,t){if(r instanceof E||t instanceof E){let e=r instanceof E?r:new E(Number(r),0),n=t instanceof E?t:new E(Number(t),0);return e.mul(n)}return typeof r=="bigint"&&typeof t=="bigint"?Number(r*t):Number(r)*Number(t)}function rl(r,t,e,n,o,a,i,s,u,c,l,m,d,y){if(m===0)for(let h=0;h<n*o;h++)d[h]=0;else if(m!==1)for(let h=0;h<n*o;h++)d[h]=(d[h]??0)*m;let f=r==="row-major",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*u+S]??0)*(c[S*l+b]??0);d[h*y+b]=(d[h*y+b]??0)+i*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*u+h]??0)*(c[S*l+b]??0);d[h*y+b]=(d[h*y+b]??0)+i*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*u+S]??0)*(c[b*l+S]??0);d[h*y+b]=(d[h*y+b]??0)+i*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*u+h]??0)*(c[b*l+S]??0);d[h*y+b]=(d[h*y+b]??0)+i*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*u+h]??0)*(c[b*l+S]??0);d[b*y+h]=(d[b*y+h]??0)+i*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*u+S]??0)*(c[b*l+S]??0);d[b*y+h]=(d[b*y+h]??0)+i*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*u+h]??0)*(c[S*l+b]??0);d[b*y+h]=(d[b*y+h]??0)+i*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*u+S]??0)*(c[S*l+b]??0);d[b*y+h]=(d[b*y+h]??0)+i*A}}function rt(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,i=n===0?t.get():null;if(e===0&&n===0)return wr(a,i);if(e===0){let s=Z(r.dtype,t.dtype),u=N.zeros([...t.shape],s),c=(l,m)=>{let d=new Array(m.length),y=l;for(let f=m.length-1;f>=0;f--)d[f]=y%m[f],y=Math.floor(y/m[f]);return d};for(let l=0;l<t.size;l++){let m=c(l,t.shape),d=t.get(...m);u.set(m,wr(a,d))}return u}else{let s=Z(r.dtype,t.dtype),u=N.zeros([...r.shape],s),c=(l,m)=>{let d=new Array(m.length),y=l;for(let f=m.length-1;f>=0;f--)d[f]=y%m[f],y=Math.floor(y/m[f]);return d};for(let l=0;l<r.size;l++){let m=c(l,r.shape),d=r.get(...m);u.set(m,wr(d,i))}return u}}if(e===1&&n===1){if(r.shape[0]!==t.shape[0])throw new Error(`dot: incompatible shapes (${r.shape[0]},) and (${t.shape[0]},)`);let a=r.shape[0];if(o){let s=0,u=0;for(let c=0;c<a;c++){let l=r.get(c),m=t.get(c),d=wr(l,m);d instanceof E?(s+=d.re,u+=d.im):s+=d}return new E(s,u)}let i=0;for(let s=0;s<a;s++){let u=r.get(s),c=t.get(s);typeof u=="bigint"&&typeof c=="bigint"?i=Number(i)+Number(u*c):i+=Number(u)*Number(c)}return i}if(e===2&&n===2)return fr(r,t);if(e===2&&n===1){let[a,i]=r.shape,s=t.shape[0];if(i!==s)throw new Error(`dot: incompatible shapes (${a},${i}) and (${s},)`);let u=Z(r.dtype,t.dtype),c=N.zeros([a],u);if(o)for(let l=0;l<a;l++){let m=0,d=0;for(let y=0;y<i;y++){let f=r.get(l,y),p=t.get(y),g=f instanceof E?f:new E(Number(f),0),h=p instanceof E?p:new E(Number(p),0);m+=g.re*h.re-g.im*h.im,d+=g.re*h.im+g.im*h.re}c.set([l],new E(m,d))}else for(let l=0;l<a;l++){let m=0;for(let d=0;d<i;d++){let y=r.get(l,d),f=t.get(d);typeof y=="bigint"&&typeof f=="bigint"?m=Number(m)+Number(y*f):m+=Number(y)*Number(f)}c.set([l],m)}return c}if(e===1&&n===2){let a=r.shape[0],[i,s]=t.shape;if(a!==i)throw new Error(`dot: incompatible shapes (${a},) and (${i},${s})`);let u=Z(r.dtype,t.dtype),c=N.zeros([s],u);if(o)for(let l=0;l<s;l++){let m=0,d=0;for(let y=0;y<a;y++){let f=r.get(y),p=t.get(y,l),g=f instanceof E?f:new E(Number(f),0),h=p instanceof E?p:new E(Number(p),0);m+=g.re*h.re-g.im*h.im,d+=g.re*h.im+g.im*h.re}c.set([l],new E(m,d))}else for(let l=0;l<s;l++){let m=0;for(let d=0;d<a;d++){let y=r.get(d),f=t.get(d,l);typeof y=="bigint"&&typeof f=="bigint"?m=Number(m)+Number(y*f):m+=Number(y)*Number(f)}c.set([l],m)}return c}if(e>2&&n===1){let a=r.shape[e-1],i=t.shape[0];if(a!==i)throw new Error(`dot: incompatible shapes ${JSON.stringify(r.shape)} and (${i},)`);let s=[...r.shape.slice(0,-1)],u=Z(r.dtype,t.dtype),c=N.zeros(s,u),l=s.reduce((m,d)=>m*d,1);if(o)for(let m=0;m<l;m++){let d=0,y=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 E?b:new E(Number(b),0),D=A instanceof E?A:new E(Number(A),0);d+=S.re*D.re-S.im*D.im,y+=S.re*D.im+S.im*D.re}c.set(p,new E(d,y))}else for(let m=0;m<l;m++){let d=0,y=m,f=[];for(let p=s.length-1;p>=0;p--)f[p]=y%s[p],y=Math.floor(y/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"?d=Number(d)+Number(h*b):d+=Number(h)*Number(b)}c.set(f,d)}return c}if(e===1&&n>2){let a=r.shape[0],i=1,s=t.shape[i];if(a!==s)throw new Error(`dot: incompatible shapes (${a},) and ${JSON.stringify(t.shape)}`);let u=[...t.shape.slice(0,i),...t.shape.slice(i+1)],c=Z(r.dtype,t.dtype),l=N.zeros(u,c),m=u.reduce((d,y)=>d*y,1);if(o)for(let d=0;d<m;d++){let y=d,f=[];for(let A=u.length-1;A>=0;A--)f[A]=y%u[A],y=Math.floor(y/u[A]);let p=f.slice(0,i),g=f.slice(i),h=0,b=0;for(let A=0;A<a;A++){let S=r.get(A),D=[...p,A,...g],w=t.get(...D),x=S instanceof E?S:new E(Number(S),0),I=w instanceof E?w:new E(Number(w),0);h+=x.re*I.re-x.im*I.im,b+=x.re*I.im+x.im*I.re}l.set(f,new E(h,b))}else for(let d=0;d<m;d++){let y=d,f=[];for(let b=u.length-1;b>=0;b--)f[b]=y%u[b],y=Math.floor(y/u[b]);let p=f.slice(0,i),g=f.slice(i),h=0;for(let b=0;b<a;b++){let A=r.get(b),S=[...p,b,...g],D=t.get(...S);typeof A=="bigint"&&typeof D=="bigint"?h=Number(h)+Number(A*D):h+=Number(A)*Number(D)}l.set(f,h)}return l}if(e>=2&&n>=2&&!(e===2&&n===2)){let a=r.shape[e-1],i=t.shape[n-2];if(a!==i)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]],u=Z(r.dtype,t.dtype),c=N.zeros(s,u),l=r.shape.slice(0,-1).reduce((f,p)=>f*p,1),m=t.shape.slice(0,-2).reduce((f,p)=>f*p,1),d=t.shape[n-1],y=a;if(o)for(let f=0;f<l;f++)for(let p=0;p<m;p++)for(let g=0;g<d;g++){let h=0,b=0;for(let D=0;D<y;D++){let w=[],x=f;for(let C=r.shape.length-2;C>=0;C--)w.unshift(x%r.shape[C]),x=Math.floor(x/r.shape[C]);w.push(D);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(D,g);let v=t.get(...z),T=I instanceof E?I:new E(Number(I),0),O=v instanceof E?v:new E(Number(v),0);h+=T.re*O.re-T.im*O.im,b+=T.re*O.im+T.im*O.re}let A=f*m*d+p*d+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<d;g++){let h=0;for(let A=0;A<y;A++){let S=f*y+A,D=p*y*d+A*d+g,w=r.data[S+r.offset],x=t.data[D+t.offset];typeof w=="bigint"&&typeof x=="bigint"?h=Number(h)+Number(w*x):h+=Number(w)*Number(x)}let b=f*m*d+p*d+g;c.data[b]=h}return c}throw new Error(`dot: unexpected combination of dimensions ${e}D \xB7 ${n}D`)}function fr(r,t){if(r.ndim!==2||t.ndim!==2)throw new Error("matmul requires 2D arrays");let[e=0,n=0]=r.shape,[o=0,a=0]=t.shape;if(n!==o)throw new Error(`matmul shape mismatch: (${e},${n}) @ (${o},${a})`);let i=Z(r.dtype,t.dtype);if(M(i)){let D=N.zeros([e,a],i),w=D.data,x=r.data,I=t.data;for(let z=0;z<e;z++)for(let F=0;F<a;F++){let v=0,T=0;for(let C=0;C<n;C++){let q=(z*n+C)*2,V=(C*a+F)*2,k=x[q],W=x[q+1],P=I[V],rr=I[V+1];v+=k*P-W*rr,T+=k*rr+W*P}let O=z*a+F;w[O*2]=v,w[O*2+1]=T}return D}let s=i.startsWith("int")||i.startsWith("uint")||i==="bool"?"float64":i;if(s!=="float64")throw new Error(`matmul currently only supports float64, got ${s}`);let u=r.dtype==="float64"?r.data:Float64Array.from(Array.from(r.data).map(Number)),c=t.dtype==="float64"?t.data:Float64Array.from(Array.from(t.data).map(Number));r.offset>0&&(u=u.subarray(r.offset)),t.offset>0&&(c=c.subarray(t.offset));let[l=0,m=0]=r.strides,[d=0,y=0]=t.strides,f=m>l,p=y>d,g=f?"transpose":"no-transpose",h=p?"transpose":"no-transpose",b,A;f?b=m:b=l,p?A=y:A=d;let S=N.zeros([e,a],"float64");return rl("row-major",g,h,e,a,n,1,u,b,c,A,0,S.data,a),S}function qe(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,i=0;for(let s=0;s<n;s++){let u=r.get(s,s);a+=u.re,i+=u.im}return new E(a,i)}let o=0;for(let a=0;a<n;a++){let i=r.get(a,a);typeof i=="bigint"?o=(typeof o=="bigint"?o:BigInt(o))+i:o=(typeof o=="bigint"?Number(o):o)+i}return o}function gt(r,t){return yt(r,t)}function ba(r,t){let e=r.ndim,n=t.ndim,o=M(r.dtype)||M(t.dtype),a=r.shape[e-1],i=t.shape[n-1];if(a!==i)throw new Error(`inner: incompatible shapes - last dimensions ${a} and ${i} don't match`);if(e===1&&n===1)return rt(r,t);let s=[...r.shape.slice(0,-1),...t.shape.slice(0,-1)],u=Z(r.dtype,t.dtype),c=N.zeros(s,u),l=e===1?1:r.shape.slice(0,-1).reduce((y,f)=>y*f,1),m=n===1?1:t.shape.slice(0,-1).reduce((y,f)=>y*f,1),d=a;if(o)for(let y=0;y<l;y++)for(let f=0;f<m;f++){let p=0,g=0;for(let A=0;A<d;A++){let S,D;if(e===1)S=r.get(A);else{let I=[],z=y,F=r.shape.slice(0,-1);for(let v=F.length-1;v>=0;v--)I.unshift(z%F[v]),z=Math.floor(z/F[v]);I.push(A),S=r.get(...I)}if(n===1)D=t.get(A);else{let I=[],z=f,F=t.shape.slice(0,-1);for(let v=F.length-1;v>=0;v--)I.unshift(z%F[v]),z=Math.floor(z/F[v]);I.push(A),D=t.get(...I)}let w=S instanceof E?S:new E(Number(S),0),x=D instanceof E?D:new E(Number(D),0);p+=w.re*x.re-w.im*x.im,g+=w.re*x.im+w.im*x.re}if(s.length===0)return new E(p,g);let h=l===1?f:y*m+f,b=c.data;b[h*2]=p,b[h*2+1]=g}else for(let y=0;y<l;y++)for(let f=0;f<m;f++){let p=0;for(let h=0;h<d;h++){let b=e===1?h:y*d+h,A=n===1?h:f*d+h,S=r.data[b+r.offset],D=t.data[A+t.offset];typeof S=="bigint"&&typeof D=="bigint"?p=Number(p)+Number(S*D):p+=Number(S)*Number(D)}if(s.length===0)return p;let g=l===1?f:y*m+f;c.data[g]=p}return c}function Lt(r,t){let e=r.ndim===1?r:Qr(r),n=t.ndim===1?t:Qr(t),o=e.size,a=n.size,i=Z(r.dtype,t.dtype),s=N.zeros([o,a],i);for(let u=0;u<o;u++)for(let c=0;c<a;c++){let l=e.get(u),m=n.get(c),d=wr(l,m);s.set([u,c],d)}return s}function Ve(r,t,e){let n,o;if(typeof e=="number"){let f=e;if(f<0)throw new Error("tensordot: axes must be non-negative");if(f>r.ndim||f>t.ndim)throw new Error("tensordot: axes exceeds array dimensions");n=Array.from({length:f},(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=[],i=[];for(let f=0;f<r.ndim;f++)n.includes(f)||a.push(f);for(let f=0;f<t.ndim;f++)o.includes(f)||i.push(f);let s=[...a.map(f=>r.shape[f]),...i.map(f=>t.shape[f])],u=Z(r.dtype,t.dtype),c=M(u),l=f=>f instanceof E?{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),D=new Array(t.ndim);for(let I=0;I<n.length;I++)S[n[I]]=A[I];for(let I=0;I<o.length;I++)D[o[I]]=A[I];let w=r.get(...S),x=t.get(...D);if(c){let I=l(w),z=l(x);f+=I.re*z.re-I.im*z.im,p+=I.re*z.im+I.im*z.re}else typeof w=="bigint"&&typeof x=="bigint"?f+=Number(w*x):f+=Number(w)*Number(x)}return c?new E(f,p):f}let m=N.zeros(s,u),d=s.reduce((f,p)=>f*p,1),y=n.map(f=>r.shape[f]).reduce((f,p)=>f*p,1);for(let f=0;f<d;f++){let p=f,g=[];for(let D=s.length-1;D>=0;D--)g[D]=p%s[D],p=Math.floor(p/s[D]);let h=g.slice(0,a.length),b=g.slice(a.length),A=0,S=0;for(let D=0;D<y;D++){p=D;let w=[];for(let v=n.length-1;v>=0;v--){let T=n[v];w[v]=p%r.shape[T],p=Math.floor(p/r.shape[T])}let x=new Array(r.ndim),I=new Array(t.ndim);for(let v=0;v<a.length;v++)x[a[v]]=h[v];for(let v=0;v<i.length;v++)I[i[v]]=b[v];for(let v=0;v<n.length;v++)x[n[v]]=w[v],I[o[v]]=w[v];let z=r.get(...x),F=t.get(...I);if(c){let v=l(z),T=l(F);A+=v.re*T.re-v.im*T.im,S+=v.re*T.im+v.im*T.re}else typeof z=="bigint"&&typeof F=="bigint"?A+=Number(z*F):A+=Number(z)*Number(F)}c?m.set(g,new E(A,S)):m.set(g,A)}return m}function Pe(r,t=0,e=0,n=1){let o=r.shape,a=o.length;if(a<2)throw new Error("diagonal requires an array of at least two dimensions");let i=e<0?a+e:e,s=n<0?a+n:n;if(i<0||i>=a||s<0||s>=a)throw new Error("axis out of bounds");if(i===s)throw new Error("axis1 and axis2 cannot be the same");let u=o[i],c=o[s],l;t>=0?l=Math.max(0,Math.min(u,c-t)):l=Math.max(0,Math.min(u+t,c));let m=[];for(let p=0;p<a;p++)p!==i&&p!==s&&m.push(o[p]);m.push(l);let d=N.zeros(m,r.dtype),y=o.filter((p,g)=>g!==i&&g!==s),f=y.reduce((p,g)=>p*g,1);for(let p=0;p<f;p++){let g=p,h=[];for(let b=y.length-1;b>=0;b--)h.unshift(g%y[b]),g=Math.floor(g/y[b]);for(let b=0;b<l;b++){let A=new Array(a),S=0;for(let x=0;x<a;x++)x===i?A[x]=t>=0?b:b-t:x===s?A[x]=t>=0?b+t:b:A[x]=h[S++];let D=[...h,b],w=r.get(...A);d.set(D,w)}}return d}function ha(r,...t){let e=r.indexOf("->"),n,o;e===-1?(n=r,o=tl(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 i=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(i.has(A)){if(i.get(A)!==S)throw new Error(`einsum: size mismatch for index '${A}': ${i.get(A)} vs ${S}`)}else i.set(A,S)}}for(let p of o)if(!i.has(p))throw new Error(`einsum: output subscript contains unknown index '${p}'`);let s=new Set(o),u=new Set;for(let p of a)for(let g of p)u.add(g);let c=[];for(let p of u)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]],[D,w]=[g[0],g[1]],[x,I]=[o[0],o[1]];if(A===x&&w===I&&S===D&&c.length===1&&c[0]===S||A===x&&w===I&&S===D&&c.length===1&&c[0]===S)return fr(h,b);if(S===x&&w===I&&A===D&&c.length===1&&c[0]===A){let z=gt(h);return fr(z,b)}if(A===x&&D===I&&S===w&&c.length===1&&c[0]===S){let z=gt(b);return fr(h,z)}}if(p.length===1&&g.length===1&&p===g&&o.length===0&&h.ndim===1&&b.ndim===1)return ke(t,a,c,i);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 Lt(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 ke(t,a,c,i)}let l=Array.from(o).map(p=>i.get(p));if(l.length===0)return ke(t,a,c,i);let m=t[0].dtype;for(let p=1;p<t.length;p++)m=Z(m,t[p].dtype);let d=N.zeros(l,m),y=l.reduce((p,g)=>p*g,1),f=1;for(let p of c)f*=i.get(p);for(let p=0;p<y;p++){let g=el(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 x=c[w],I=i.get(x);h.set(x,S%I),S=Math.floor(S/I)}let D=1;for(let w=0;w<t.length;w++){let x=t[w],I=a[w],z=[];for(let v of I)z.push(h.get(v));let F=x.get(...z);D*=Number(F)}b+=D}d.set(g,b)}return d}function tl(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 ke(r,t,e,n){let o=!1;for(let c of r)if(M(c.dtype)){o=!0;break}let a=c=>c instanceof E?{re:c.re,im:c.im}:{re:Number(c),im:0},i=1;for(let c of e)i*=n.get(c);let s=0,u=0;for(let c=0;c<i;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 d=1,y=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=d*A.re-y*A.im,D=d*A.im+y*A.re;d=S,y=D}else d*=Number(b)}s+=d,u+=y}return o?new E(s,u):s}function el(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 Sa(r,t){let e=r.shape,n=t.shape,o=e.length,a=n.length,i=Z(r.dtype,t.dtype),s=Math.max(o,a),u=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++)u[f]=c[f]*l[f];let m=N.zeros(u,i),d=e.reduce((f,p)=>f*p,1),y=n.reduce((f,p)=>f*p,1);for(let f=0;f<d;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<y;A++){let S=A,D=new Array(a);for(let F=a-1;F>=0;F--)D[F]=S%n[F],S=Math.floor(S/n[F]);let w=new Array(s).fill(0);for(let F=0;F<a;F++)w[s-a+F]=D[F];let x=t.get(...D),I=new Array(s);for(let F=0;F<s;F++)I[F]=h[F]*l[F]+w[F];let z=wr(b,x);m.set(I,z)}}return m}function Da(r,t,e=-1,n=-1,o=-1,a){a!==void 0&&(e=a,n=a,o=a);let i=(A,S)=>A<0?S+A:A,s=i(e,r.ndim),u=i(n,t.ndim);if(r.ndim===1&&t.ndim===1){let A=r.shape[0],S=t.shape[0];if(A===3&&S===3){let D=Number(r.get(0)),w=Number(r.get(1)),x=Number(r.get(2)),I=Number(t.get(0)),z=Number(t.get(1)),F=Number(t.get(2)),v=N.zeros([3],"float64");return v.set([0],w*F-x*z),v.set([1],x*I-D*F),v.set([2],D*z-w*I),v}else if(A===2&&S===2){let D=Number(r.get(0)),w=Number(r.get(1)),x=Number(t.get(0)),I=Number(t.get(1));return D*I-w*x}else if(A===2&&S===3||A===3&&S===2){let D=Number(r.get(0)),w=Number(r.get(1)),x=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,v=N.zeros([3],"float64");return v.set([0],w*F-x*z),v.set([1],x*I-D*F),v.set([2],D*z-w*I),v}else throw new Error(`cross: incompatible dimensions for cross product: ${A} and ${S}`)}let c=r.shape[s],l=t.shape[u];if(c!==2&&c!==3||l!==2&&l!==3)throw new Error(`cross: incompatible dimensions for cross product: ${c} and ${l}`);let m=c===2&&l===2?0:3,d=[...r.shape.slice(0,s),...r.shape.slice(s+1)],y=[...t.shape.slice(0,u),...t.shape.slice(u+1)];if(d.length!==y.length)throw new Error("cross: incompatible shapes for cross product");for(let A=0;A<d.length;A++)if(d[A]!==y[A])throw new Error("cross: incompatible shapes for cross product");let f=d,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=N.zeros(g,"float64"),b=f.reduce((A,S)=>A*S,1);for(let A=0;A<b;A++){let S=A,D=[];for(let V=f.length-1;V>=0;V--)D[V]=S%f[V],S=Math.floor(S/f[V]);let w=[...D.slice(0,s),0,...D.slice(s)],x=[...D.slice(0,u),0,...D.slice(u)],I=V=>(w[s]=V,Number(r.get(...w))),z=V=>(x[u]=V,Number(t.get(...x))),F=I(0),v=I(1),T=c===3?I(2):0,O=z(0),C=z(1),q=l===3?z(2):0;if(m===0)h.set(D,F*C-v*O);else{let V=v*q-T*C,k=T*O-F*q,W=F*C-v*O,P=(rr,nr)=>{let Y=[...D.slice(0,p),rr,...D.slice(p)];h.set(Y,nr)};P(0,V),P(1,k),P(2,W)}}return h}function Kr(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:Qr(r),l=c.size,m;if(t===1/0){m=0;for(let d=0;d<l;d++)m=Math.max(m,Math.abs(Number(c.get(d))))}else if(t===-1/0){m=1/0;for(let d=0;d<l;d++)m=Math.min(m,Math.abs(Number(c.get(d))))}else if(t===0){m=0;for(let d=0;d<l;d++)Number(c.get(d))!==0&&m++}else if(t===1){m=0;for(let d=0;d<l;d++)m+=Math.abs(Number(c.get(d)))}else if(t===2){m=0;for(let d=0;d<l;d++){let y=Number(c.get(d));m+=y*y}m=Math.sqrt(m)}else{m=0;for(let d=0;d<l;d++)m+=Math.pow(Math.abs(Number(c.get(d))),t);m=Math.pow(m,1/t)}if(n){let d=new Array(r.ndim).fill(1),y=N.zeros(d,"float64");return y.set(new Array(r.ndim).fill(0),m),y}return m}let o=e<0?r.ndim+e:e;if(o<0||o>=r.ndim)throw new Error(`vector_norm: axis ${e} out of bounds for array with ${r.ndim} dimensions`);let a=n?[...r.shape.slice(0,o),1,...r.shape.slice(o+1)]:[...r.shape.slice(0,o),...r.shape.slice(o+1)];if(a.length===0)return Kr(r,t,null,!1);let i=N.zeros(a,"float64"),s=r.shape[o],u=a.reduce((c,l)=>c*l,1);for(let c=0;c<u;c++){let l=c,m=[];for(let f=a.length-1;f>=0;f--)m[f]=l%a[f],l=Math.floor(l/a[f]);let d=n?[...m.slice(0,o),0,...m.slice(o+1)]:[...m.slice(0,o),0,...m.slice(o)],y;if(t===1/0){y=0;for(let f=0;f<s;f++)d[o]=f,y=Math.max(y,Math.abs(Number(r.get(...d))))}else if(t===-1/0){y=1/0;for(let f=0;f<s;f++)d[o]=f,y=Math.min(y,Math.abs(Number(r.get(...d))))}else if(t===0){y=0;for(let f=0;f<s;f++)d[o]=f,Number(r.get(...d))!==0&&y++}else if(t===1){y=0;for(let f=0;f<s;f++)d[o]=f,y+=Math.abs(Number(r.get(...d)))}else if(t===2){y=0;for(let f=0;f<s;f++){d[o]=f;let p=Number(r.get(...d));y+=p*p}y=Math.sqrt(y)}else{y=0;for(let f=0;f<s;f++)d[o]=f,y+=Math.pow(Math.abs(Number(r.get(...d))),t);y=Math.pow(y,1/t)}i.set(m,y)}return i}function Vr(r,t="fro",e=!1){if(r.ndim!==2)throw new Error(`matrix_norm: input must be 2D, got ${r.ndim}D`);let[n,o]=r.shape,a;if(t==="fro"){a=0;for(let i=0;i<n;i++)for(let s=0;s<o;s++){let u=Number(r.get(i,s));a+=u*u}a=Math.sqrt(a)}else if(t==="nuc"){let{s:i}=Ur(r);a=0;for(let s=0;s<i.size;s++)a+=Number(i.get(s))}else if(t===1){a=0;for(let i=0;i<o;i++){let s=0;for(let u=0;u<n;u++)s+=Math.abs(Number(r.get(u,i)));a=Math.max(a,s)}}else if(t===-1){a=1/0;for(let i=0;i<o;i++){let s=0;for(let u=0;u<n;u++)s+=Math.abs(Number(r.get(u,i)));a=Math.min(a,s)}}else if(t===1/0){a=0;for(let i=0;i<n;i++){let s=0;for(let u=0;u<o;u++)s+=Math.abs(Number(r.get(i,u)));a=Math.max(a,s)}}else if(t===-1/0){a=1/0;for(let i=0;i<n;i++){let s=0;for(let u=0;u<o;u++)s+=Math.abs(Number(r.get(i,u)));a=Math.min(a,s)}}else if(t===2){let{s:i}=Ur(r);a=Number(i.get(0))}else if(t===-2){let{s:i}=Ur(r);a=Number(i.get(i.size-1))}else throw new Error(`matrix_norm: invalid ord value: ${t}`);if(e){let i=N.zeros([1,1],"float64");return i.set([0,0],a),i}return a}function Na(r,t=null,e=null,n=!1){if(t===null)return e===null?Kr(r,2,null,n):typeof e=="number"?Kr(r,2,e,n):Vr(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 Vr(r,t,n)}if(r.ndim===2&&e===null&&(t==="fro"||t==="nuc"))return Vr(r,t,n);if(typeof t!="number"&&t!==null)throw new Error(`norm: ord '${t}' not valid for vector norm`);return Kr(r,t??2,e,n)}function je(r,t="reduced"){if(r.ndim!==2)throw new Error(`qr: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape,o=Math.min(e,n),a=N.zeros([e,n],"float64");for(let y=0;y<e;y++)for(let f=0;f<n;f++)a.set([y,f],Number(r.get(y,f)));let i=[],s=[];for(let y=0;y<o;y++){let f=e-y,p=[];for(let D=y;D<e;D++)p.push(Number(a.get(D,y)));let g=0;for(let D=0;D<f;D++)g+=p[D]*p[D];if(g=Math.sqrt(g),g<1e-15){i.push(p),s.push(0);continue}let h=p[0]>=0?1:-1,b=p[0]+h*g,A=[1];for(let D=1;D<f;D++)A.push(p[D]/b);let S=h*b/g;s.push(S),i.push(A);for(let D=y;D<n;D++){let w=0;for(let x=0;x<f;x++)w+=A[x]*Number(a.get(y+x,D));for(let x=0;x<f;x++)a.set([y+x,D],Number(a.get(y+x,D))-S*A[x]*w)}}if(t==="raw"){let y=N.zeros([e,n],"float64");for(let p=0;p<e;p++)for(let g=0;g<n;g++)y.set([p,g],Number(a.get(p,g)));let f=N.zeros([o],"float64");for(let p=0;p<o;p++)f.set([p],s[p]);return{h:y,tau:f}}if(t==="r"){let y=N.zeros([o,n],"float64");for(let f=0;f<o;f++)for(let p=f;p<n;p++)y.set([f,p],Number(a.get(f,p)));return y}let u=t==="complete"?e:o,c=N.zeros([e,u],"float64");for(let y=0;y<Math.min(e,u);y++)c.set([y,y],1);for(let y=o-1;y>=0;y--){let f=i[y],p=s[y],g=e-y;for(let h=y;h<u;h++){let b=0;for(let A=0;A<g;A++)b+=f[A]*Number(c.get(y+A,h));for(let A=0;A<g;A++)c.set([y+A,h],Number(c.get(y+A,h))-p*f[A]*b)}}let l=N.zeros([e,u],"float64");for(let y=0;y<e;y++)for(let f=0;f<u;f++)l.set([y,f],Number(c.get(y,f)));let m=t==="complete"?e:o,d=N.zeros([m,n],"float64");for(let y=0;y<m;y++)for(let f=0;f<n;f++)f>=y&&d.set([y,f],Number(a.get(y,f)));return{q:l,r:d}}function xa(r,t=!1){if(r.ndim!==2)throw new Error(`cholesky: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`cholesky: matrix must be square, got ${e}x${n}`);let o=e,a=N.zeros([o,o],"float64");for(let i=0;i<o;i++)for(let s=0;s<=i;s++){let u=0;if(i===s){for(let l=0;l<s;l++)u+=Number(a.get(s,l))**2;let c=Number(r.get(s,s))-u;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++)u+=Number(a.get(i,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([i,s],(Number(r.get(i,s))-u)/c)}}if(t){let i=N.zeros([o,o],"float64");for(let s=0;s<o;s++)for(let u=s;u<o;u++)i.set([s,u],Number(a.get(u,s)));return i}return a}function Ur(r){if(r.ndim!==2)throw new Error(`svd: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape,n=Math.min(t,e),o=N.zeros([e,e],"float64");for(let m=0;m<e;m++)for(let d=0;d<e;d++){let y=0;for(let f=0;f<t;f++)y+=Number(r.get(f,m))*Number(r.get(f,d));o.set([m,d],y)}let{values:a,vectors:i}=Le(o),s=Array.from({length:e},(m,d)=>d);s.sort((m,d)=>a[d]-a[m]);let u=N.zeros([n],"float64");for(let m=0;m<n;m++){let d=a[s[m]];u.set([m],Math.sqrt(Math.max(0,d)))}let c=N.zeros([e,e],"float64");for(let m=0;m<e;m++)for(let d=0;d<e;d++)c.set([m,d],i[d][s[m]]);let l=N.zeros([t,t],"float64");for(let m=0;m<t;m++)for(let d=0;d<n;d++){let y=Number(u.get(d));if(y>1e-10){let f=0;for(let p=0;p<e;p++)f+=Number(r.get(m,p))*Number(c.get(d,p));l.set([m,d],f/y)}}if(t>n)for(let m=n;m<t;m++){let d=new Array(t).fill(0);d[m]=1;for(let f=0;f<m;f++){let p=0;for(let g=0;g<t;g++)p+=d[g]*Number(l.get(g,f));for(let g=0;g<t;g++)d[g]=d[g]-p*Number(l.get(g,f))}let y=0;for(let f=0;f<t;f++)y+=d[f]*d[f];if(y=Math.sqrt(y),y>1e-10)for(let f=0;f<t;f++)l.set([f,m],d[f]/y)}return{u:l,s:u,vt:c}}function Le(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 u=0;u<t;u++)o[s].push(Number(r.get(s,u)))}let a=[];for(let s=0;s<t;s++){a.push([]);for(let u=0;u<t;u++)a[s].push(s===u?1:0)}for(let s=0;s<e;s++){let u=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])>u&&(u=Math.abs(o[A][S]),c=A,l=S);if(u<n)break;let m=o[c][c],d=o[l][l],y=o[c][l],f;Math.abs(m-d)<1e-15?f=Math.PI/4:f=.5*Math.atan2(2*y,d-m);let p=Math.cos(f),g=Math.sin(f),h=p*p*m+g*g*d-2*g*p*y,b=g*g*m+p*p*d+2*g*p*y;o[c][c]=h,o[l][l]=b,o[c][l]=0,o[l][c]=0;for(let A=0;A<t;A++)if(A!==c&&A!==l){let S=o[A][c],D=o[A][l];o[A][c]=p*S-g*D,o[c][A]=o[A][c],o[A][l]=g*S+p*D,o[l][A]=o[A][l]}for(let A=0;A<t;A++){let S=a[A][c],D=a[A][l];a[A][c]=p*S-g*D,a[A][l]=g*S+p*D}}let i=[];for(let s=0;s<t;s++)i.push(o[s][s]);return{values:i,vectors:a}}function We(r,t=!0,e=!0){let n=Ur(r);if(!e)return n.s;if(!t){let[o,a]=r.shape,i=Math.min(o,a),s=N.zeros([o,i],"float64");for(let c=0;c<o;c++)for(let l=0;l<i;l++)s.set([c,l],Number(n.u.get(c,l)));let u=N.zeros([i,a],"float64");for(let c=0;c<i;c++)for(let l=0;l<a;l++)u.set([c,l],Number(n.vt.get(c,l)));return{u:s,s:n.s,vt:u}}return n}function wa(r){if(r.ndim!==2)throw new Error(`det: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape;if(t!==e)throw new Error(`det: matrix must be square, got ${t}x${e}`);let n=t;if(n===0)return 1;let o=r.data;if(n===1)return Number(o[0]);if(n===2)return Number(o[0])*Number(o[3])-Number(o[1])*Number(o[2]);let{lu:a,sign:i}=Wt(r),s=a.data,u=i;for(let c=0;c<n;c++)u*=s[c*n+c];return u}function Wt(r){let[t,e]=r.shape,n=t,o=e,a=N.zeros([n,o],"float64"),i=a.data,s=r.data;for(let l=0;l<n*o;l++)i[l]=Number(s[l]);let u=Array.from({length:n},(l,m)=>m),c=1;for(let l=0;l<Math.min(n,o);l++){let m=Math.abs(i[l*o+l]),d=l;for(let f=l+1;f<n;f++){let p=Math.abs(i[f*o+l]);p>m&&(m=p,d=f)}if(d!==l){for(let p=0;p<o;p++){let g=i[l*o+p];i[l*o+p]=i[d*o+p],i[d*o+p]=g}let f=u[l];u[l]=u[d],u[d]=f,c=-c}let y=i[l*o+l];if(Math.abs(y)>1e-15)for(let f=l+1;f<n;f++){let p=i[f*o+l]/y;i[f*o+l]=p;for(let g=l+1;g<o;g++)i[f*o+g]=i[f*o+g]-p*i[l*o+g]}}return{lu:a,piv:u,sign:c}}function At(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}=Wt(r),i=o.data,s=N.zeros([n,n],"float64"),u=s.data;for(let c=0;c<n;c++){let l=new Float64Array(n);for(let m=0;m<n;m++){let d=a[m]===c?1:0;for(let y=0;y<m;y++)d-=i[m*n+y]*l[y];l[m]=d}for(let m=n-1;m>=0;m--){let d=l[m];for(let f=m+1;f<n;f++)d-=i[m*n+f]*u[f*n+c];let y=i[m*n+m];if(Math.abs(y)<1e-15)throw new Error("inv: singular matrix");u[m*n+c]=d/y}}return s}function Aa(r,t){let[e]=r.shape,n=e,{lu:o,piv:a}=Wt(r),i=o.data,s=t.data,u=new Float64Array(n);for(let d=0;d<n;d++)u[d]=Number(s[a[d]]);let c=new Float64Array(n);for(let d=0;d<n;d++){let y=u[d];for(let f=0;f<d;f++)y-=i[d*n+f]*c[f];c[d]=y}let l=N.zeros([n],"float64"),m=l.data;for(let d=n-1;d>=0;d--){let y=c[d];for(let p=d+1;p<n;p++)y-=i[d*n+p]*m[p];let f=i[d*n+d];if(Math.abs(f)<1e-15)throw new Error("solve: singular matrix");m[d]=y/f}return l}function Ge(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 Aa(r,t)}if(t.ndim===2){if(t.shape[0]!==o)throw new Error(`solve: incompatible shapes (${e},${n}) and (${t.shape[0]},${t.shape[1]})`);let a=t.shape[1],i=N.zeros([o,a],"float64");for(let s=0;s<a;s++){let u=N.zeros([o],"float64");for(let l=0;l<o;l++)u.set([l],Number(t.get(l,s)));let c=Aa(r,u);for(let l=0;l<o;l++)i.set([l,s],Number(c.get(l)))}return i}throw new Error(`solve: b must be 1D or 2D, got ${t.ndim}D`)}function Ia(r,t,e=null){if(r.ndim!==2)throw new Error(`lstsq: coefficient matrix must be 2D, got ${r.ndim}D`);let[n,o]=r.shape,{u:a,s:i,vt:s}=Ur(r),u=Math.min(n,o),c=e??Math.max(n,o)*Number.EPSILON,m=Number(i.get(0))*c,d=0;for(let b=0;b<u;b++)Number(i.get(b))>m&&d++;let y=t.ndim===1?er(t,[t.size,1]):t,f=y.shape[1];if(y.shape[0]!==n)throw new Error(`lstsq: incompatible shapes (${n},${o}) and (${t.shape.join(",")})`);let p=N.zeros([o,f],"float64");for(let b=0;b<f;b++){let A=new Array(n).fill(0);for(let S=0;S<n;S++)for(let D=0;D<n;D++)A[S]+=Number(a.get(D,S))*Number(y.get(D,b));for(let S=0;S<o;S++){let D=0;for(let w=0;w<u;w++){let x=Number(i.get(w));x>m&&(D+=Number(s.get(w,S))*A[w]/x)}p.set([S,b],D)}}let g;if(n>o){g=N.zeros([f],"float64");for(let b=0;b<f;b++){let A=0;for(let S=0;S<n;S++){let D=0;for(let x=0;x<o;x++)D+=Number(r.get(S,x))*Number(p.get(x,b));let w=D-Number(y.get(S,b));A+=w*w}g.set([b],A)}}else g=N.zeros([0],"float64");return{x:t.ndim===1?er(p,[o]):p,residuals:g,rank:d,s:i}}function za(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}=Ur(r),u=Math.min(e,n),c=Number(s.get(0)),l=Number(s.get(u-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=Vr(r,t),a=At(r),i=Vr(a,t);return o*i}function _a(r,t){if(r.ndim===0)return Number(r.get())!==0?1:0;if(r.ndim===1){for(let i=0;i<r.size;i++)if(Number(r.get(i))!==0)return 1;return 0}if(r.ndim!==2)throw new Error(`matrix_rank: input must be at most 2D, got ${r.ndim}D`);let{s:e}=Ur(r),n=Number(e.get(0)),o=t??n*Math.max(r.shape[0],r.shape[1])*Number.EPSILON,a=0;for(let i=0;i<e.size;i++)Number(e.get(i))>o&&a++;return a}function va(r,t){if(r.ndim!==2)throw new Error(`matrix_power: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`matrix_power: matrix must be square, got ${e}x${n}`);let o=e;if(!Number.isInteger(t))throw new Error("matrix_power: exponent must be an integer");if(t===0){let c=N.zeros([o,o],"float64");for(let l=0;l<o;l++)c.set([l,l],1);return c}let a=r,i=t;t<0&&(a=At(r),i=-t);let s=N.zeros([o,o],"float64");for(let c=0;c<o;c++)s.set([c,c],1);let u=N.zeros([o,o],"float64");for(let c=0;c<o;c++)for(let l=0;l<o;l++)u.set([c,l],Number(a.get(c,l)));for(;i>0;)i&1&&(s=fr(s,u)),u=fr(u,u),i>>=1;return s}function Fa(r,t=1e-15){if(r.ndim!==2)throw new Error(`pinv: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape,{u:o,s:a,vt:i}=Ur(r),s=Math.min(e,n),c=Number(a.get(0))*t,l=N.zeros([n,e],"float64");for(let m=0;m<n;m++)for(let d=0;d<e;d++){let y=0;for(let f=0;f<s;f++){let p=Number(a.get(f));p>c&&(y+=Number(i.get(f,m))*Number(o.get(d,f))/p)}l.set([m,d],y)}return l}function Ze(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}=Le(r),m=N.zeros([n],"float64"),d=N.zeros([n,n],"float64");for(let y=0;y<n;y++){m.set([y],c[y]);for(let f=0;f<n;f++)d.set([f,y],l[f][y])}return{w:m,v:d}}console.warn("numpy-ts: eig() called on non-symmetric matrix. Complex eigenvalues are not supported; results may be inaccurate. For symmetric matrices, use eigh() instead.");let{values:a,vectors:i}=nl(r),s=N.zeros([n],"float64"),u=N.zeros([n,n],"float64");for(let c=0;c<n;c++){s.set([c],a[c]);for(let l=0;l<n;l++)u.set([l,c],i[l][c])}return{w:s,v:u}}function nl(r){let t=r.shape[0],e=1e3,n=1e-10,o=N.zeros([t,t],"float64");for(let u=0;u<t;u++)for(let c=0;c<t;c++)o.set([u,c],Number(r.get(u,c)));let a=N.zeros([t,t],"float64");for(let u=0;u<t;u++)a.set([u,u],1);for(let u=0;u<e;u++){let c=0;for(let y=0;y<t;y++)for(let f=0;f<t;f++)y!==f&&(c+=Number(o.get(y,f))**2);if(Math.sqrt(c)<n*t)break;let l=je(o,"reduced"),m=l.q,d=l.r;o=fr(d,m),a=fr(a,m)}let i=[];for(let u=0;u<t;u++)i.push(Number(o.get(u,u)));let s=[];for(let u=0;u<t;u++){s.push([]);for(let c=0;c<t;c++)s[u].push(Number(a.get(u,c)))}return{values:i,vectors:s}}function Ye(r,t="L"){if(r.ndim!==2)throw new Error(`eigh: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`eigh: matrix must be square, got ${e}x${n}`);let o=e,a=N.zeros([o,o],"float64");for(let m=0;m<o;m++)for(let d=0;d<o;d++)t==="L"?m>=d&&(a.set([m,d],Number(r.get(m,d))),a.set([d,m],Number(r.get(m,d)))):d>=m&&(a.set([m,d],Number(r.get(m,d))),a.set([d,m],Number(r.get(m,d))));let{values:i,vectors:s}=Le(a),u=Array.from({length:o},(m,d)=>d);u.sort((m,d)=>i[m]-i[d]);let c=N.zeros([o],"float64"),l=N.zeros([o,o],"float64");for(let m=0;m<o;m++){c.set([m],i[u[m]]);for(let d=0;d<o;d++)l.set([d,m],s[d][u[m]])}return{w:c,v:l}}function Ma(r){let{w:t}=Ze(r);return t}function Ba(r,t="L"){let{w:e}=Ye(r,t);return e}function Ea(r,t){let e=qr(r),n=qr(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(M(r.dtype)||M(t.dtype)){let u=0,c=0;for(let l=0;l<o;l++){let m=e.get(l),d=n.get(l),y=m instanceof E?m.re:Number(m),f=m instanceof E?-m.im:0,p=d instanceof E?d.re:Number(d),g=d instanceof E?d.im:0;u+=y*p+f*g,c+=y*g-f*p}return Math.abs(c)<1e-15?u:new E(u,c)}let s=0;for(let u=0;u<o;u++){let c=e.get(u),l=n.get(u);typeof c=="bigint"&&typeof l=="bigint"?s=(typeof s=="bigint"?s:BigInt(s))+c*l:s=(typeof s=="bigint"?Number(s):s)+Number(c)*Number(l)}return s}function He(r,t,e=-1){let n=r.ndim,o=t.ndim,a=e<0?n+e:e,i=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(i<0||i>=o)throw new Error(`vecdot: axis ${e} out of bounds for array with ${o} dimensions`);let s=r.shape[a],u=t.shape[i];if(s!==u)throw new Error(`vecdot: axis dimensions must match, got ${s} and ${u}`);if(n===1&&o===1)return rt(r,t);let c=[...r.shape.slice(0,a),...r.shape.slice(a+1)],l=[...t.shape.slice(0,i),...t.shape.slice(i+1)],m=s,d=M(r.dtype)||M(t.dtype),y=Z(r.dtype,t.dtype),f=c.length>l.length?c:l;if(f.length===0){let h=d?new E(0,0):0;for(let b=0;b<m;b++){let A=r.get(b),S=t.get(b),D=wr(A,S);if(h instanceof E||D instanceof E){let w=h instanceof E?h:new E(Number(h),0),x=D instanceof E?D:new E(Number(D),0);h=w.add(x)}else typeof h=="bigint"||typeof D=="bigint"?h=BigInt(h)+BigInt(D):h=h+D}return h}let p=N.zeros(f,y),g=f.reduce((h,b)=>h*b,1);for(let h=0;h<g;h++){let b=[],A=h;for(let x=f.length-1;x>=0;x--)b.unshift(A%f[x]),A=Math.floor(A/f[x]);let S=[...b.slice(0,a),0,...b.slice(a)],D=[...b.slice(0,i),0,...b.slice(i)],w=d?new E(0,0):0;for(let x=0;x<m;x++){S[a]=x,D[i]=x;let I=r.get(...S),z=t.get(...D),F=wr(I,z);if(w instanceof E||F instanceof E){let v=w instanceof E?w:new E(Number(w),0),T=F instanceof E?F:new E(Number(F),0);w=v.add(T)}else typeof w=="bigint"||typeof F=="bigint"?w=BigInt(w)+BigInt(F):w=w+F}p.set(b,w)}return p}function Xe(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,gt(r,t)}function Ta(r,t){return gt(r,t)}function Oa(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 rt(r,t);let a=r.shape.slice(0,-2),i=t.shape.slice(0,-1),s=Math.max(a.length,i.length),u=[...Array(s-a.length).fill(1),...a],c=[...Array(s-i.length).fill(1),...i],l=[];for(let g=0;g<s;g++){let h=u[g],b=c[g];if(h!==1&&b!==1&&h!==b)throw new Error(`matvec: batch dimensions not broadcastable: ${a} vs ${i}`);l.push(Math.max(h,b))}let m=[...l,e],d=Z(r.dtype,t.dtype),y=N.zeros(m,d),f=M(d),p=l.reduce((g,h)=>g*h,1);for(let g=0;g<p;g++){let h=[],b=g;for(let D=l.length-1;D>=0;D--)h.unshift(b%l[D]),b=Math.floor(b/l[D]);let A=h.slice(-(a.length||1)).map((D,w)=>(a[w]??1)===1?0:D),S=h.slice(-(i.length||1)).map((D,w)=>(i[w]??1)===1?0:D);for(let D=0;D<e;D++){let w=f?new E(0,0):0;for(let I=0;I<n;I++){let z=[...A,D,I],F=[...S,I],v=r.get(...z),T=t.get(...F),O=wr(v,T);if(w instanceof E||O instanceof E){let C=w instanceof E?w:new E(Number(w),0),q=O instanceof E?O:new E(Number(O),0);w=C.add(q)}else typeof w=="bigint"||typeof O=="bigint"?w=BigInt(w)+BigInt(O):w=w+O}let x=[...h,D];y.set(x,w)}}return y}function Ca(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 rt(r,t);let a=r.shape.slice(0,-1),i=t.shape.slice(0,-2),s=Math.max(a.length,i.length),u=[...Array(s-a.length).fill(1),...a],c=[...Array(s-i.length).fill(1),...i],l=[];for(let g=0;g<s;g++){let h=u[g],b=c[g];if(h!==1&&b!==1&&h!==b)throw new Error(`vecmat: batch dimensions not broadcastable: ${a} vs ${i}`);l.push(Math.max(h,b))}let m=[...l,o],d=Z(r.dtype,t.dtype),y=N.zeros(m,d),f=M(d),p=l.reduce((g,h)=>g*h,1);for(let g=0;g<p;g++){let h=[],b=g;for(let D=l.length-1;D>=0;D--)h.unshift(b%l[D]),b=Math.floor(b/l[D]);let A=h.slice(-(a.length||1)).map((D,w)=>(a[w]??1)===1?0:D),S=h.slice(-(i.length||1)).map((D,w)=>(i[w]??1)===1?0:D);for(let D=0;D<o;D++){let w=f?new E(0,0):0;for(let I=0;I<e;I++){let z=[...A,I],F=[...S,I,D],v=r.get(...z),T=t.get(...F),O=wr(v,T);if(w instanceof E||O instanceof E){let C=w instanceof E?w:new E(Number(w),0),q=O instanceof E?O:new E(Number(O),0);w=C.add(q)}else typeof w=="bigint"||typeof O=="bigint"?w=BigInt(w)+BigInt(O):w=w+O}let x=[...h,D];y.set(x,w)}}return y}function Ua(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}=Wt(r),i=o.data,s=0,u=a;for(let c=0;c<n;c++){let l=i[c*n+c];if(l===0)return{sign:0,logabsdet:-1/0};l<0&&(u=-u),s+=Math.log(Math.abs(l))}return{sign:u,logabsdet:s}}function $a(r){return We(r,!0,!1)}function Ra(r){if(r.length<2)throw new Error("multi_dot: need at least 2 arrays");if(r.length===2)return fr(r[0],r[1]);let t=r[0];for(let e=1;e<r.length;e++)t=fr(t,r[e]);return t}function ka(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 i=er(r,[o,a]),s=At(i),u=[...e.slice(t),...e.slice(0,t)];return er(s,u)}function qa(r,t,e){let n=r.shape,o=t.shape,a=r.ndim,i=t.ndim,s;e==null?s=Array.from({length:i},(A,S)=>a-i+S):s=e.map(A=>A<0?a+A:A);let u=[];for(let A=0;A<a;A++)s.includes(A)||u.push(A);let c=[...u,...s],l=gt(r,c),d=s.map(A=>n[A]).reduce((A,S)=>A*S,1),f=u.map(A=>n[A]).reduce((A,S)=>A*S,1),p=o.reduce((A,S)=>A*S,1);if(d!==p)throw new Error(`tensorsolve: dimensions don't match - sum dimensions product (${d}) != b total elements (${p})`);if(f!==d)throw new Error(`tensorsolve: non-square problem - other dimensions product (${f}) != sum dimensions product (${d})`);let g=er(l,[f,d]),h=er(t,[d]),b=Ge(g,h);return er(b,[...o])}var Va=G(()=>{"use strict";K();Q();xr();Re()});function Pa(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1],l=Math.sqrt(u*u+c*c),m=Math.sqrt((l+u)/2),d=(c>=0?1:-1)*Math.sqrt((l-u)/2);i[s*2]=m,i[s*2+1]=d}return a}return J(r,Math.sqrt,!1)}function ja(r,t){if(typeof t=="number")return sl(r,t);let e=M(r.dtype),n=M(t.dtype);return e||n?al(r,t):X(r,t,Math.pow,"power")}function al(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),i=r.size,s=N.zeros(a,o),u=s.data;for(let c=0;c<i;c++){let l,m;if(e){let S=r.data;l=S[c*2],m=S[c*2+1]}else l=Number(r.iget(c)),m=0;let d,y;if(n){let S=t.data;d=S[c*2],y=S[c*2+1]}else d=Number(t.iget(c)),y=0;let f=Math.sqrt(l*l+m*m),p=Math.atan2(m,l),g=Math.log(f),h=d*g-y*p,b=d*p+y*g,A=Math.exp(h);u[c*2]=A*Math.cos(b),u[c*2+1]=A*Math.sin(b)}return s}function sl(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size;if(M(e)){let m=N.zeros(n,e),d=o,y=m.data;for(let f=0;f<a;f++){let p=d[f*2],g=d[f*2+1],h=Math.sqrt(p*p+g*g),b=Math.atan2(g,p),A=Math.pow(h,t),S=b*t;y[f*2]=A*Math.cos(S),y[f*2+1]=A*Math.sin(S)}return m}let u=e!=="float32"&&e!=="float64"&&(t<0||!Number.isInteger(t))?"float64":e,c=N.zeros(n,u),l=c.data;if(B(e))if(B(u)&&Number.isInteger(t)&&t>=0){let m=o,d=l;for(let y=0;y<a;y++)d[y]=m[y]**BigInt(t)}else for(let m=0;m<a;m++)l[m]=Math.pow(Number(o[m]),t);else for(let m=0;m<a;m++)l[m]=Math.pow(Number(o[m]),t);return c}function La(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1],l=Math.exp(u);i[s*2]=l*Math.cos(c),i[s*2+1]=l*Math.sin(c)}return a}return J(r,Math.exp,!1)}function Wa(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=Math.LN2,i=N.zeros(e,t),s=i.data;for(let u=0;u<n;u++){let c=o[u*2],l=o[u*2+1],m=Math.exp(c*a),d=l*a;s[u*2]=m*Math.cos(d),s[u*2+1]=m*Math.sin(d)}return i}return J(r,e=>Math.pow(2,e),!1)}function Ga(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1],l=Math.exp(u);i[s*2]=l*Math.cos(c)-1,i[s*2+1]=l*Math.sin(c)}return a}return J(r,Math.expm1,!1)}function Za(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1],l=Math.sqrt(u*u+c*c),m=Math.atan2(c,u);i[s*2]=Math.log(l),i[s*2+1]=m}return a}return J(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,i=N.zeros(e,t),s=i.data;for(let u=0;u<n;u++){let c=o[u*2],l=o[u*2+1],m=Math.sqrt(c*c+l*l),d=Math.atan2(l,c);s[u*2]=Math.log(m)*a,s[u*2+1]=d*a}return i}return J(r,Math.log2,!1)}function Ha(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=1/Math.LN10,i=N.zeros(e,t),s=i.data;for(let u=0;u<n;u++){let c=o[u*2],l=o[u*2+1],m=Math.sqrt(c*c+l*l),d=Math.atan2(l,c);s[u*2]=Math.log(m)*a,s[u*2+1]=d*a}return i}return J(r,Math.log10,!1)}function Xa(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1],l=1+u,m=Math.sqrt(l*l+c*c),d=Math.atan2(c,l);i[s*2]=Math.log(m),i[s*2+1]=d}return a}return J(r,Math.log1p,!1)}function Ja(r,t){return U(r.dtype,"logaddexp","logaddexp is not supported for complex numbers."),typeof t!="number"&&U(t.dtype,"logaddexp","logaddexp is not supported for complex numbers."),typeof t=="number"?ul(r,t):il(r,t)}function il(r,t){let e=Tr(r.shape,t.shape),n=e.reduce((c,l)=>c*l,1),o=r.dtype,a=t.dtype,i=o==="float32"&&a==="float32"?"float32":"float64",s=N.zeros(e,i),u=s.data;for(let c=0;c<n;c++){let l=(B(o),Number(r.iget(c))),m=(B(a),Number(t.iget(c))),d=Math.max(l,m),y=Math.min(l,m);u[c]=d+Math.log1p(Math.exp(y-d))}return s}function ul(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",i=N.zeros(n,a),s=i.data;for(let u=0;u<o;u++){let c=(B(e),Number(r.data[u])),l=Math.max(c,t),m=Math.min(c,t);s[u]=l+Math.log1p(Math.exp(m-l))}return i}function Qa(r,t){return U(r.dtype,"logaddexp2","logaddexp2 is not supported for complex numbers."),typeof t!="number"&&U(t.dtype,"logaddexp2","logaddexp2 is not supported for complex numbers."),typeof t=="number"?ll(r,t):cl(r,t)}function cl(r,t){let e=Tr(r.shape,t.shape),n=e.reduce((l,m)=>l*m,1),o=r.dtype,a=t.dtype,i=o==="float32"&&a==="float32"?"float32":"float64",s=N.zeros(e,i),u=s.data,c=Math.LOG2E;for(let l=0;l<n;l++){let m=(B(o),Number(r.iget(l))),d=(B(a),Number(t.iget(l))),y=Math.max(m,d),f=Math.min(m,d);u[l]=y+Math.log1p(Math.pow(2,f-y))*c}return s}function ll(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",i=N.zeros(n,a),s=i.data,u=Math.LOG2E;for(let c=0;c<o;c++){let l=(B(e),Number(r.data[c])),m=Math.max(l,t),d=Math.min(l,t);s[c]=m+Math.log1p(Math.pow(2,d-m))*u}return i}var Ka=G(()=>{"use strict";K();vr();Q()});function rs(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1];i[s*2]=Math.sin(u)*Math.cosh(c),i[s*2+1]=Math.cos(u)*Math.sinh(c)}return a}return J(r,Math.sin,!1)}function ts(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1];i[s*2]=Math.cos(u)*Math.cosh(c),i[s*2+1]=-Math.sin(u)*Math.sinh(c)}return a}return J(r,Math.cos,!1)}function es(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1],l=Math.cos(2*u)+Math.cosh(2*c);i[s*2]=Math.sin(2*u)/l,i[s*2+1]=Math.sinh(2*c)/l}return a}return J(r,Math.tan,!1)}function ns(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1],l=-c,m=u,d=u*u-c*c,y=2*u*c,f=1-d,p=-y,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,D=Math.sqrt(A*A+S*S),w=Math.log(D),I=Math.atan2(S,A),z=-w;Math.abs(c)<1e-15&&u>1&&(z=-z),i[s*2]=I,i[s*2+1]=z}return a}return J(r,Math.asin,!1)}function os(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1],l=u*u-c*c,m=2*u*c,d=1-l,y=-m,f=Math.sqrt(d*d+y*y),p=Math.sqrt((f+d)/2),h=-((y>=0?1:-1)*Math.sqrt((f-d)/2)),b=p,A=u+h,S=c+b,D=Math.sqrt(A*A+S*S),w=Math.log(D),I=Math.atan2(S,A),z=-w;Math.abs(c)<1e-15&&u>1&&(z=-z),i[s*2]=I,i[s*2+1]=z}return a}return J(r,Math.acos,!1)}function as(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],l=-o[s*2+1],m=u,d=1-l,y=-m,f=1+l,p=m,g=f*f+p*p,h=(d*f+y*p)/g,b=(y*f-d*p)/g,A=Math.sqrt(h*h+b*b),S=Math.log(A),D=Math.atan2(b,h);i[s*2]=-D/2,i[s*2+1]=S/2}return a}return J(r,Math.atan,!1)}function ss(r,t){return U(r.dtype,"arctan2","arctan2 is only defined for real numbers."),typeof t!="number"&&U(t.dtype,"arctan2","arctan2 is only defined for real numbers."),typeof t=="number"?pl(r,t):ml(r,t)}function ml(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,i=o==="float32"&&a==="float32"?"float32":"float64",s=N.zeros(e,i),u=s.data;for(let c=0;c<n;c++){let l=(B(o),Number(r.data[c])),m=(B(a),Number(t.data[c]));u[c]=Math.atan2(l,m)}return s}function pl(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=e==="float32"?"float32":"float64",s=N.zeros(n,i),u=s.data;if(B(e))for(let c=0;c<a;c++)u[c]=Math.atan2(Number(o[c]),t);else for(let c=0;c<a;c++)u[c]=Math.atan2(Number(o[c]),t);return s}function is(r,t){return U(r.dtype,"hypot","hypot is only defined for real numbers."),typeof t!="number"&&U(t.dtype,"hypot","hypot is only defined for real numbers."),typeof t=="number"?dl(r,t):yl(r,t)}function yl(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,i=o==="float32"&&a==="float32"?"float32":"float64",s=N.zeros(e,i),u=s.data;for(let c=0;c<n;c++){let l=(B(o),Number(r.data[c])),m=(B(a),Number(t.data[c]));u[c]=Math.hypot(l,m)}return s}function dl(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=e==="float32"?"float32":"float64",s=N.zeros(n,i),u=s.data;if(B(e))for(let c=0;c<a;c++)u[c]=Math.hypot(Number(o[c]),t);else for(let c=0;c<a;c++)u[c]=Math.hypot(Number(o[c]),t);return s}function us(r){U(r.dtype,"degrees","degrees is only defined for real numbers.");let t=180/Math.PI;return J(r,e=>e*t,!1)}function cs(r){U(r.dtype,"radians","radians is only defined for real numbers.");let t=Math.PI/180;return J(r,e=>e*t,!1)}var ls=G(()=>{"use strict";K();vr();Q()});function fs(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1];i[s*2]=Math.sinh(u)*Math.cos(c),i[s*2+1]=Math.cosh(u)*Math.sin(c)}return a}return J(r,Math.sinh,!1)}function ms(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1];i[s*2]=Math.cosh(u)*Math.cos(c),i[s*2+1]=Math.sinh(u)*Math.sin(c)}return a}return J(r,Math.cosh,!1)}function ps(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1],l=Math.cosh(2*u)+Math.cos(2*c);i[s*2]=Math.sinh(2*u)/l,i[s*2+1]=Math.sin(2*c)/l}return a}return J(r,Math.tanh,!1)}function ys(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1],l=u*u-c*c,m=2*u*c,d=l+1,y=m,f=Math.sqrt(d*d+y*y),p=Math.sqrt((f+d)/2),g=(y>=0?1:-1)*Math.sqrt((f-d)/2),h=u+p,b=c+g,A=Math.sqrt(h*h+b*b);i[s*2]=Math.log(A),i[s*2+1]=Math.atan2(b,h)}return a}return J(r,Math.asinh,!1)}function ds(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1],l=u*u-c*c,m=2*u*c,d=l-1,y=m,f=Math.sqrt(d*d+y*y),p=Math.sqrt((f+d)/2),g=(y>=0?1:-1)*Math.sqrt((f-d)/2),h=u+p,b=c+g,A=Math.sqrt(h*h+b*b),S=Math.log(A),D=Math.atan2(b,h);Math.abs(c)<1e-15&&u<1&&(D=-D),i[s*2]=S,i[s*2+1]=D}return a}return J(r,Math.acosh,!1)}function gs(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1],l=1+u,m=c,d=1-u,y=-c,f=d*d+y*y,p=(l*d+m*y)/f,g=(m*d-l*y)/f,h=Math.sqrt(p*p+g*g),b=Math.log(h),A=Math.atan2(g,p);i[s*2]=b/2,i[s*2+1]=A/2}return a}return J(r,Math.atanh,!1)}var As=G(()=>{"use strict";K();vr();Q()});function Gt(r,t){let e=r.shape,n=e.length,o=t.length;if(o<n)throw new Error("input operand has more dimensions than allowed by the axis remapping");let a=Sr([Array.from(e),t]);if(a===null)throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${t.join(",")})`);for(let i=0;i<o;i++)if(a[i]!==t[i])throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${t.join(",")})`);return gr(r,t)}function bs(r){if(r.length===0)return[];if(r.length===1)return[r[0]];let t=r.map(n=>Array.from(n.shape)),e=Sr(t);if(e===null)throw new Error(`operands could not be broadcast together with shapes ${t.map(n=>`(${n.join(",")})`).join(" ")}`);return r.map(n=>gr(n,e))}function hs(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 N.fromData(h,[p],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];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 ${i} with size ${s}`)}let u=Array.from(n);u[i]=t.length;let c=u.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),d=ur(u),y=new Array(o).fill(0);for(let f=0;f<c;f++){let p=[...y],g=y[i],h=t[g];h<0&&(h=s+h),p[i]=h;let b=r.get(...p),A=0;for(let S=0;S<o;S++)A+=y[S]*d[S];B(a),m[A]=b;for(let S=o-1;S>=0&&(y[S]++,!(y[S]<u[S]));S--)y[S]=0}return N.fromData(m,u,a)}function Ss(r,t,e){let n=r.size,o=r.dtype,a;if(typeof e=="number"||typeof e=="bigint")a=new Array(t.length).fill(e);else{a=[];for(let i=0;i<e.size;i++){let s=e.iget(i);a.push(s instanceof E?s.re:s)}if(a.length===1)a=new Array(t.length).fill(a[0]);else if(a.length!==t.length){let i=[...a];a=[];for(let s=0;s<t.length;s++)a.push(i[s%i.length])}}for(let i=0;i<t.length;i++){let s=t[i];if(s<0&&(s=n+s),s<0||s>=n)throw new Error(`index ${t[i]} is out of bounds for axis 0 with size ${n}`);let u=a[i];B(o)?typeof u!="bigint"&&(u=BigInt(Math.round(Number(u)))):typeof u=="bigint"&&(u=Number(u)),r.iset(s,u)}}function Ds(r,t){if(t.length===0)throw new Error("choices cannot be empty");let e=r.shape,n=t.length,o=t[0].dtype,a=t.map(d=>Array.from(d.shape));a.unshift(Array.from(e));let i=Sr(a);if(i===null)throw new Error("operands could not be broadcast together");let s=gr(r,i),u=t.map(d=>gr(d,i)),c=i.reduce((d,y)=>d*y,1),l=j(o);if(!l)throw new Error(`Cannot choose with dtype ${o}`);let m=new l(c);for(let d=0;d<c;d++){let y=Number(s.iget(d));if(y<0||y>=n)throw new Error(`index ${y} is out of bounds for axis 0 with size ${n}`);let f=u[y].iget(d);B(o),m[d]=f}return N.fromData(m,i,o)}function Ns(r,t,e=!1){if(r.ndim!==t.ndim)return!1;for(let o=0;o<r.ndim;o++)if(r.shape[o]!==t.shape[o])return!1;let n=r.size;for(let o=0;o<n;o++){let a=r.iget(o),i=t.iget(o);if(e){let s=typeof a=="number"&&Number.isNaN(a),u=typeof i=="number"&&Number.isNaN(i);if(s&&u)continue}if(a!==i)return!1}return!0}function xs(r,t,e){let n=r.shape,o=n.length,a=r.dtype,i=e<0?o+e:e;if(i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let 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!==i&&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 u=Array.from(s),c=u.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),d=ur(n),y=ur(s),f=n[i];for(let p=0;p<c;p++){let g=new Array(o),h=p;for(let x=o-1;x>=0;x--)g[x]=h%u[x],h=Math.floor(h/u[x]);let b=0;for(let x=0;x<o;x++){let I=s[x]===1?0:g[x];b+=I*y[x]}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 ${i} with size ${f}`);let S=[...g];S[i]=A;let D=0;for(let x=0;x<o;x++){let I=n[x]===1?0:S[x];D+=I*d[x]}let w=r.iget(D);B(a),m[p]=w}return N.fromData(m,u,a)}function ws(r,t,e,n){let o=r.shape,a=o.length,i=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 u=t.shape,c=e.shape;if(u.length!==a||c.length!==a)throw new Error("indices, arr, and values must have same ndim");let l=o[s],m=ur(o),d=ur(u),y=ur(c),f=u.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%u[I],h=Math.floor(h/u[I]);let b=0;for(let I=0;I<a;I++)b+=g[I]*d[I];let A=Number(t.iget(b));if(A<0&&(A=l+A),A<0||A>=l)throw new Error(`index ${A} is out of bounds for axis ${s} with size ${l}`);let S=0;for(let I=0;I<a;I++){let z=c[I]===1?0:g[I];S+=z*y[I]}let D=e.iget(S),w=[...g];w[s]=A;let x=0;for(let I=0;I<a;I++)x+=w[I]*m[I];B(i)?typeof D!="bigint"&&(D=BigInt(Math.round(Number(D)))):typeof D=="bigint"&&(D=Number(D)),r.iset(x,D)}}function Is(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 u=e.iget(s);a.push(u instanceof E?u.re:u)}}let i=0;for(let s=0;s<n;s++)if(t.iget(s)){let c=a[i%a.length];B(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),r.iset(s,c),i++}}function Je(r,t,e){let n=t.shape,o=n.length,a=t.dtype,i=t.data,s=B(a);if(e===void 0){let b=0,A=Math.min(r.size,t.size);for(let x=0;x<A;x++)r.iget(x)&&b++;let S=j(a);if(!S)throw new Error(`Cannot compress with dtype ${a}`);let D=new S(b),w=0;for(let x=0;x<A;x++)r.iget(x)&&(D[w]=i[x],w++);return N.fromData(D,[b],a)}let u=e<0?o+e:e;if(u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let c=n[u],l=Math.min(r.size,c),m=[];for(let b=0;b<l;b++)r.iget(b)&&m.push(b);let d=m.length,y=[...n];y[u]=d;let f=y.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(u===0){let b=h[0],A=n.slice(1).reduce((D,w)=>D*w,1),S=0;for(let D=0;D<d;D++){let x=m[D]*b;if(s){let I=i,z=g;for(let F=0;F<A;F++)z[S++]=I[x+F]}else{let I=i,z=g;for(let F=0;F<A;F++)z[S++]=I[x+F]}}}else{let b=n.slice(0,u).reduce((D,w)=>D*w,1),A=n.slice(u+1).reduce((D,w)=>D*w,1),S=0;for(let D=0;D<b;D++)for(let w=0;w<d;w++){let x=m[w],I=0,z=D;for(let F=u-1;F>=0;F--){let v=z%n[F];z=Math.floor(z/n[F]),I+=v*h[F]}if(I+=x*h[u],s){let F=i,v=g;for(let T=0;T<A;T++)v[S++]=F[I+T]}else{let F=i,v=g;for(let T=0;T<A;T++)v[S++]=F[I+T]}}}return N.fromData(g,y,a)}function zs(r,t,e=0){if(r.length!==t.length)throw new Error("condlist and choicelist must have same length");if(r.length===0)throw new Error("condlist and choicelist cannot be empty");let n=[...r.map(d=>Array.from(d.shape)),...t.map(d=>Array.from(d.shape))],o=Sr(n);if(o===null)throw new Error("condlist and choicelist arrays could not be broadcast together");let a=t[0].dtype,i=o.reduce((d,y)=>d*y,1),s=j(a);if(!s)throw new Error(`Cannot select with dtype ${a}`);let u=e;B(a)?u=typeof e=="bigint"?e:BigInt(e):u=typeof e=="bigint"?Number(e):e;let c=new s(i);for(let d=0;d<i;d++)B(a),c[d]=u;let l=r.map(d=>gr(d,o)),m=t.map(d=>gr(d,o));for(let d=0;d<i;d++)for(let y=0;y<r.length;y++)if(l[y].iget(d)){let f=m[y].iget(d);B(a),c[d]=f;break}return N.fromData(c,o,a)}function _s(r,t,e){let n=r.size,o=r.dtype,a=[];for(let s=0;s<e.size;s++){let u=e.iget(s);a.push(u instanceof E?u.re:u)}if(a.length===0)return;let i=0;for(let s=0;s<n;s++)if(t.iget(s)){let c=a[i%a.length];B(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),r.iset(s,c),i++}}function Qe(r,t=2){if(t<1)throw new Error("ndim must be at least 1");let e=new Int32Array(r);for(let o=0;o<r;o++)e[o]=o;let n=[];for(let o=0;o<t;o++)n.push(N.fromData(new Int32Array(e),[r],"int32"));return n}function vs(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 Qe(n,e)}function Ke(r,t=0,e){let n=e??r,o=[],a=[];for(let i=0;i<r;i++)for(let s=0;s<=Math.min(i+t,n-1);s++)s>=0&&(o.push(i),a.push(s));return[N.fromData(new Int32Array(o),[o.length],"int32"),N.fromData(new Int32Array(a),[a.length],"int32")]}function Fs(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 rn(r,t=0,e){let n=e??r,o=[],a=[];for(let i=0;i<r;i++)for(let s=Math.max(i+t,0);s<n;s++)o.push(i),a.push(s);return[N.fromData(new Int32Array(o),[o.length],"int32"),N.fromData(new Int32Array(a),[a.length],"int32")]}function Ms(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return rn(e[0],t,e[1])}function Bs(r,t,e=0){let n=t(r,e),o=n.shape;if(o.length!==2||o[0]!==r||o[1]!==r)throw new Error("mask_func must return n x n array");let a=[],i=[];for(let s=0;s<r;s++)for(let u=0;u<r;u++)n.get(s,u)&&(a.push(s),i.push(u));return[N.fromData(new Int32Array(a),[a.length],"int32"),N.fromData(new Int32Array(i),[i.length],"int32")]}function Es(r,t="int32"){let e=r.length,n=[e,...r],o=n.reduce((u,c)=>u*c,1),a=j(t);if(!a)throw new Error(`Cannot create indices with dtype ${t}`);let i=new a(o),s=r.reduce((u,c)=>u*c,1);for(let u=0;u<e;u++){let c=u*s;for(let l=0;l<s;l++){let m=new Array(e),d=l;for(let f=e-1;f>=0;f--)m[f]=d%r[f],d=Math.floor(d/r[f]);let y=m[u];t==="int64"?i[c+l]=BigInt(y):i[c+l]=y}}return N.fromData(i,n,t)}function Ts(...r){let t=r.length,e=[];for(let n=0;n<t;n++){let o=r[n],a=o.size,i=o.dtype,s=new Array(t).fill(1);s[n]=a;let u=j(i);if(!u)throw new Error(`Cannot create ix_ with dtype ${i}`);let c=new u(a);for(let l=0;l<a;l++){let m=o.iget(l);B(i),c[l]=m}e.push(N.fromData(c,s,i))}return e}function Os(r,t,e="raise"){if(r.length!==t.length)throw new Error("multi_index length must equal dims length");if(r.length===0)throw new Error("multi_index cannot be empty");let n=r[0].size,o=t.length,a=new Int32Array(n),i=new Array(o),s=1;for(let u=o-1;u>=0;u--)i[u]=s,s*=t[u];for(let u=0;u<n;u++){let c=0;for(let l=0;l<o;l++){let m=Number(r[l].iget(u)),d=t[l];if(e==="wrap")m=(m%d+d)%d;else if(e==="clip")m=Math.max(0,Math.min(m,d-1));else if(m<0||m>=d)throw new Error(`index ${m} is out of bounds for axis ${l} with size ${d}`);c+=m*i[l]}a[u]=c}return N.fromData(a,[n],"int32")}function Cs(r,t,e="C"){let n=t.length,o,a;if(typeof r=="number")o=[r],a=[];else{o=[];for(let l=0;l<r.size;l++)o.push(Number(r.iget(l)));a=Array.from(r.shape)}let i=o.length,s=t.reduce((l,m)=>l*m,1),u=new Array(n);if(e==="C"){let l=1;for(let m=n-1;m>=0;m--)u[m]=l,l*=t[m]}else{let l=1;for(let m=0;m<n;m++)u[m]=l,l*=t[m]}let c=[];for(let l=0;l<n;l++){let m=new Int32Array(i);c.push(N.fromData(m,a.length?a:[1],"int32"))}for(let l=0;l<i;l++){let m=o[l];if(m<0||m>=s)throw new Error(`index ${m} is out of bounds for array with size ${s}`);if(e==="C")for(let d=0;d<n;d++){let y=Math.floor(m/u[d]);m=m%u[d],c[d].data[l]=y%t[d]}else for(let d=n-1;d>=0;d--){let y=Math.floor(m/u[d]);m=m%u[d],c[d].data[l]=y%t[d]}}return typeof r=="number"?c.map(l=>{let m=l.iget(0);return N.fromData(new Int32Array([Number(m)]),[],"int32")}):c}function Us(r,t,e=!1){let n=r.shape,o=n.length;if(o<2)throw new Error("array must be at least 2-d");let a;if(o===2)a=n[1]+1;else{a=1;for(let c=1;c<o;c++){let l=1;for(let m=c;m<o;m++)l*=n[m];a+=l}}let i=r.data,s=r.size,u=Math.min(...n);if(e&&o===2&&(u=Math.max(n[0],n[1])),typeof t=="number")for(let c=0;c<u&&c*a<s;c++){let l=c*a;if(l<s)i[l]=t;else break}else{let c=t.data,l=t.size;for(let m=0;m<u&&m*a<s;m++){let d=m*a;if(d<s)i[d]=c[m%l];else break}}}function $s(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 i=0;i<o;i++)i!==t&&a.push(n[i]);if(a.length===0){let i=e(r);if(typeof i=="number"){let s=N.zeros([1],r.dtype);return s.data[0]=i,s}return i}if(o===2){let[i,s]=n;if(t===0){let u=[];for(let l=0;l<s;l++){let m=new Float64Array(i);for(let y=0;y<i;y++)m[y]=Number(r.data[y*s+l]);let d=N.fromData(m,[i],"float64");u.push(e(d))}let c=u[0];if(c===void 0)return N.zeros([0],"float64");if(typeof c=="number"){let l=N.zeros([s],"float64");for(let m=0;m<s;m++)l.data[m]=u[m];return l}else{let l=[c.size,s],m=N.zeros(l,"float64");for(let d=0;d<s;d++){let y=u[d];for(let f=0;f<y.size;f++)m.data[f*s+d]=Number(y.data[f])}return m}}else{let u=[];for(let l=0;l<i;l++){let m=new Float64Array(s);for(let y=0;y<s;y++)m[y]=Number(r.data[l*s+y]);let d=N.fromData(m,[s],"float64");u.push(e(d))}let c=u[0];if(c===void 0)return N.zeros([0],"float64");if(typeof c=="number"){let l=N.zeros([i],"float64");for(let m=0;m<i;m++)l.data[m]=u[m];return l}else{let l=[i,c.size],m=N.zeros(l,"float64");for(let d=0;d<i;d++){let y=u[d];for(let f=0;f<y.size;f++)m.data[d*y.size+f]=Number(y.data[f])}return m}}}if(o===1){let i=e(r);if(typeof i=="number"){let s=N.zeros([1],"float64");return s.data[0]=i,s}return i}throw new Error(`apply_along_axis not fully implemented for ${o}D arrays. Only 1D and 2D arrays are supported.`)}function Rs(r,t,e){let n=r,o=r.shape.length;for(let a of e){let i=a<0?a+o:a;if(i<0||i>=o)throw new Error(`axis ${a} is out of bounds for array of dimension ${o}`);if(n=t(n,i),n.shape.length<o){let s=Array.from(n.shape);s.splice(i,0,1);let u=ur(s);n=new N(n.data,s,u,0,n.dtype)}}return n}function tn(r,t){return r.data.buffer===t.data.buffer}function ks(r,t){return tn(r,t)}function en(){return{...Mr}}function qs(r,t,e,n,o){let a=en();return r!==void 0&&(Mr.divide=r,Mr.over=r,Mr.under=r,Mr.invalid=r),t!==void 0&&(Mr.divide=t),e!==void 0&&(Mr.over=e),n!==void 0&&(Mr.under=n),o!==void 0&&(Mr.invalid=o),a}var Mr,nn=G(()=>{"use strict";K();Q();Ut();xr();Mr={divide:"warn",over:"warn",under:"ignore",invalid:"warn"}});function br(r,t){if(!ro(r)&&r!=="bool")throw new TypeError(`ufunc '${t}' not supported for the input types, and the inputs could not be safely coerced to any supported types`)}function bt(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function js(r,t){return br(r.dtype,"bitwise_and"),typeof t=="number"?Sl(r,t):(br(t.dtype,"bitwise_and"),bt(r,t)?hl(r,t):X(r,t,(e,n)=>e&n,"bitwise_and"))}function hl(r,t){let e=Z(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,s=n.data;if(B(e)){let u=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),d=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));u[l]=m&d}else{let l=a,m=i;for(let d=0;d<o;d++)u[d]=l[d]&m[d]}}else for(let u=0;u<o;u++)s[u]=a[u]&i[u];return n}function Sl(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),s=i.data;if(B(e)){let u=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=u[m]&l}else for(let u=0;u<a;u++)s[u]=o[u]&t;return i}function Ls(r,t){return br(r.dtype,"bitwise_or"),typeof t=="number"?Nl(r,t):(br(t.dtype,"bitwise_or"),bt(r,t)?Dl(r,t):X(r,t,(e,n)=>e|n,"bitwise_or"))}function Dl(r,t){let e=Z(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,s=n.data;if(B(e)){let u=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),d=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));u[l]=m|d}else{let l=a,m=i;for(let d=0;d<o;d++)u[d]=l[d]|m[d]}}else for(let u=0;u<o;u++)s[u]=a[u]|i[u];return n}function Nl(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),s=i.data;if(B(e)){let u=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=u[m]|l}else for(let u=0;u<a;u++)s[u]=o[u]|t;return i}function Ws(r,t){return br(r.dtype,"bitwise_xor"),typeof t=="number"?wl(r,t):(br(t.dtype,"bitwise_xor"),bt(r,t)?xl(r,t):X(r,t,(e,n)=>e^n,"bitwise_xor"))}function xl(r,t){let e=Z(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,s=n.data;if(B(e)){let u=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),d=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));u[l]=m^d}else{let l=a,m=i;for(let d=0;d<o;d++)u[d]=l[d]^m[d]}}else for(let u=0;u<o;u++)s[u]=a[u]^i[u];return n}function wl(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),s=i.data;if(B(e)){let u=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=u[m]^l}else for(let u=0;u<a;u++)s[u]=o[u]^t;return i}function Yt(r){br(r.dtype,"bitwise_not");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=N.zeros(e,t),i=a.data;if(B(t)){let s=n,u=i;for(let c=0;c<o;c++)u[c]=~s[c]}else for(let s=0;s<o;s++)i[s]=~n[s];return a}function Gs(r){return Yt(r)}function on(r,t){if(br(r.dtype,"left_shift"),typeof t=="number")return Vs(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 Vs(r,e)}return bt(r,t)?Il(r,t):X(r,t,(e,n)=>e<<n,"left_shift")}function Il(r,t){let e=Z(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,s=n.data;if(B(e)){let u=s;for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?a[c]:BigInt(Math.round(Number(a[c]))),m=typeof i[c]=="bigint"?i[c]:BigInt(Math.round(Number(i[c])));u[c]=l<<m}}else for(let u=0;u<o;u++)s[u]=a[u]<<i[u];return n}function Vs(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),s=i.data;if(B(e)){let u=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=u[m]<<l}else for(let u=0;u<a;u++)s[u]=o[u]<<t;return i}function an(r,t){if(br(r.dtype,"right_shift"),typeof t=="number")return Ps(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 Ps(r,e)}return bt(r,t)?zl(r,t):X(r,t,(e,n)=>e>>n,"right_shift")}function zl(r,t){let e=Z(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,s=n.data;if(B(e)){let u=s;for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?a[c]:BigInt(Math.round(Number(a[c]))),m=typeof i[c]=="bigint"?i[c]:BigInt(Math.round(Number(i[c])));u[c]=l>>m}}else for(let u=0;u<o;u++)s[u]=a[u]>>i[u];return n}function Ps(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),s=i.data;if(B(e)){let u=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=u[m]>>l}else for(let u=0;u<a;u++)s[u]=o[u]>>t;return i}function Zs(r,t=-1,e="big"){let n=Array.from(r.shape),o=n.length;if(t<0&&(t=o+t),t<0||t>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let a=n[t],i=Math.ceil(a/8),s=[...n];s[t]=i;let u=N.zeros(s,"uint8"),c=u.data;if(o===1){for(let g=0;g<i;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 u}let l=n.slice(0,t),m=n.slice(t+1),d=l.reduce((g,h)=>g*h,1),y=m.reduce((g,h)=>g*h,1),f=Zt(n),p=Zt(s);for(let g=0;g<d;g++)for(let h=0;h<y;h++)for(let b=0;b<i;b++){let A=0;for(let x=0;x<8;x++){let I=b*8+x;if(I<a){let z=0,F=g;for(let O=0;O<t;O++){let C=O<t-1?l.slice(O+1).reduce((V,k)=>V*k,1):1,q=Math.floor(F/C);F%=C,z+=q*f[O]}z+=I*f[t];let v=h;for(let O=t+1;O<o;O++){let C=O<o-1?m.slice(O-t).reduce((V,k)=>V*k,1):1,q=Math.floor(v/C);v%=C,z+=q*f[O]}let T=Number(r.data[z])!==0?1:0;e==="big"?A|=T<<7-x:A|=T<<x}}let S=0,D=g;for(let x=0;x<t;x++){let I=x<t-1?l.slice(x+1).reduce((F,v)=>F*v,1):1,z=Math.floor(D/I);D%=I,S+=z*p[x]}S+=b*p[t];let w=h;for(let x=t+1;x<o;x++){let I=x<o-1?m.slice(x-t).reduce((F,v)=>F*v,1):1,z=Math.floor(w/I);w%=I,S+=z*p[x]}c[S]=A}return u}function Ys(r,t=-1,e=-1,n="big"){if(r.dtype!=="uint8")throw new TypeError("Expected an input array of unsigned byte data type");let o=Array.from(r.shape),a=o.length;if(t<0&&(t=a+t),t<0||t>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let i=o[t],s=i*8;e>=0&&(s=e);let u=[...o];u[t]=s;let c=N.zeros(u,"uint8"),l=c.data;if(a===1){for(let h=0;h<i;h++){let b=Number(r.data[h]);for(let A=0;A<8;A++){let S=h*8+A;if(S>=s)break;n==="big"?l[S]=b>>7-A&1:l[S]=b>>A&1}}return c}let m=o.slice(0,t),d=o.slice(t+1),y=m.reduce((h,b)=>h*b,1),f=d.reduce((h,b)=>h*b,1),p=Zt(o),g=Zt(u);for(let h=0;h<y;h++)for(let b=0;b<f;b++)for(let A=0;A<i;A++){let S=0,D=h;for(let I=0;I<t;I++){let z=I<t-1?m.slice(I+1).reduce((v,T)=>v*T,1):1,F=Math.floor(D/z);D%=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?d.slice(I-t).reduce((v,T)=>v*T,1):1,F=Math.floor(w/z);w%=z,S+=F*p[I]}let x=Number(r.data[S]);for(let I=0;I<8;I++){let z=A*8+I;if(z>=s)break;let F=0;D=h;for(let v=0;v<t;v++){let T=v<t-1?m.slice(v+1).reduce((C,q)=>C*q,1):1,O=Math.floor(D/T);D%=T,F+=O*g[v]}F+=z*g[t],w=b;for(let v=t+1;v<a;v++){let T=v<a-1?d.slice(v-t).reduce((C,q)=>C*q,1):1,O=Math.floor(w/T);w%=T,F+=O*g[v]}n==="big"?l[F]=x>>7-I&1:l[F]=x>>I&1}}return c}function Zt(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 Hs(r){let t=r.dtype;br(t,"bitwise_count");let e=Array.from(r.shape),n=r.data,o=r.size,a=N.zeros(e,"uint8"),i=a.data;if(B(t)){let s=n;for(let u=0;u<o;u++)i[u]=vl(s[u])}else for(let s=0;s<o;s++){let u=n[s];i[s]=_l(u)}return a}function _l(r){r=r>>>0;let t=0;for(;r!==0;)r=r&r-1,t++;return t}function vl(r){r<0n&&(r=BigInt.asUintN(64,r));let t=0;for(;r!==0n;)r=r&r-1n,t++;return t}function Xs(r){return Yt(r)}function Js(r,t){return on(r,t)}function Qs(r,t){return an(r,t)}var Ks=G(()=>{"use strict";K();Q();vr()});function tt(r){return r!==0&&r!==0n}function Ir(r,t){let e=r[t*2],n=r[t*2+1];return e!==0||n!==0}function St(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function ti(r,t){return typeof t=="number"?Bl(r,t):St(r,t)?Ml(r,t):Ar(r,t,(e,n)=>tt(e)&&tt(n))}function Ml(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.size,i=B(r.dtype),s=B(t.dtype),u=M(r.dtype),c=M(t.dtype);if(u||c)for(let l=0;l<a;l++){let m=u?Ir(n,l):n[l]!==0,d=c?Ir(o,l):o[l]!==0;e[l]=m&&d?1:0}else if(i||s)for(let l=0;l<a;l++){let m=i?n[l]!==0n:n[l]!==0,d=s?o[l]!==0n:o[l]!==0;e[l]=m&&d?1:0}else for(let l=0;l<a;l++)e[l]=n[l]!==0&&o[l]!==0?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function Bl(r,t){let e=new Uint8Array(r.size),n=r.data,o=t!==0,a=r.size;if(M(r.dtype)){let i=n;for(let s=0;s<a;s++)e[s]=Ir(i,s)&&o?1:0}else if(B(r.dtype)){let i=n;for(let s=0;s<a;s++)e[s]=i[s]!==0n&&o?1:0}else for(let i=0;i<a;i++)e[i]=n[i]!==0&&o?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function ei(r,t){return typeof t=="number"?Tl(r,t):St(r,t)?El(r,t):Ar(r,t,(e,n)=>tt(e)||tt(n))}function El(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.size,i=B(r.dtype),s=B(t.dtype),u=M(r.dtype),c=M(t.dtype);if(u||c)for(let l=0;l<a;l++){let m=u?Ir(n,l):n[l]!==0,d=c?Ir(o,l):o[l]!==0;e[l]=m||d?1:0}else if(i||s)for(let l=0;l<a;l++){let m=i?n[l]!==0n:n[l]!==0,d=s?o[l]!==0n:o[l]!==0;e[l]=m||d?1:0}else for(let l=0;l<a;l++)e[l]=n[l]!==0||o[l]!==0?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function Tl(r,t){let e=new Uint8Array(r.size),n=r.data,o=t!==0,a=r.size;if(M(r.dtype)){let i=n;for(let s=0;s<a;s++)e[s]=Ir(i,s)||o?1:0}else if(B(r.dtype)){let i=n;for(let s=0;s<a;s++)e[s]=i[s]!==0n||o?1:0}else for(let i=0;i<a;i++)e[i]=n[i]!==0||o?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function ni(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]=Ir(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 N.fromData(t,Array.from(r.shape),"bool")}function oi(r,t){return typeof t=="number"?Cl(r,t):St(r,t)?Ol(r,t):Ar(r,t,(e,n)=>tt(e)!==tt(n))}function Ol(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.size,i=B(r.dtype),s=B(t.dtype),u=M(r.dtype),c=M(t.dtype);if(u||c)for(let l=0;l<a;l++){let m=u?Ir(n,l):n[l]!==0,d=c?Ir(o,l):o[l]!==0;e[l]=m!==d?1:0}else if(i||s)for(let l=0;l<a;l++){let m=i?n[l]!==0n:n[l]!==0,d=s?o[l]!==0n:o[l]!==0;e[l]=m!==d?1:0}else for(let l=0;l<a;l++){let m=n[l]!==0,d=o[l]!==0;e[l]=m!==d?1:0}return N.fromData(e,Array.from(r.shape),"bool")}function Cl(r,t){let e=new Uint8Array(r.size),n=r.data,o=t!==0,a=r.size;if(M(r.dtype)){let i=n;for(let s=0;s<a;s++){let u=Ir(i,s);e[s]=u!==o?1:0}}else if(B(r.dtype)){let i=n;for(let s=0;s<a;s++){let u=i[s]!==0n;e[s]=u!==o?1:0}}else for(let i=0;i<a;i++){let s=n[i]!==0;e[i]=s!==o?1:0}return N.fromData(e,Array.from(r.shape),"bool")}function ai(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 i=o[a*2],s=o[a*2+1];t[a]=Number.isFinite(i)&&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 N.fromData(t,Array.from(r.shape),"bool")}function si(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 i=o[a*2],s=o[a*2+1],u=!Number.isFinite(i)&&!Number.isNaN(i),c=!Number.isFinite(s)&&!Number.isNaN(s);t[a]=u||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 N.fromData(t,Array.from(r.shape),"bool")}function ii(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 i=o[a*2],s=o[a*2+1];t[a]=Number.isNaN(i)||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 N.fromData(t,Array.from(r.shape),"bool")}function ui(r){let t=new Uint8Array(r.size);return N.fromData(t,Array.from(r.shape),"bool")}function ci(r,t){if(U(r.dtype,"copysign","copysign is only defined for real numbers."),typeof t!="number"&&U(t.dtype,"copysign","copysign is only defined for real numbers."),typeof t=="number")return $l(r,t);if(St(r,t))return Ul(r,t);let e=Tr(r.shape,t.shape),n=e.reduce((u,c)=>u*c,1),o=N.zeros(e,"float64"),a=o.data,i=Ht(r,e),s=Ht(t,e);for(let u=0;u<n;u++){let c=Number(i.iget(u)),l=Number(s.iget(u));a[u]=Math.sign(l)*Math.abs(c)}return o}function Ul(r,t){let e=N.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size,a=r.data,i=t.data,s=B(r.dtype),u=B(t.dtype);for(let c=0;c<o;c++){let l=s?Number(a[c]):a[c],m=u?Number(i[c]):i[c];n[c]=Math.sign(m)*Math.abs(l)}return e}function $l(r,t){let e=N.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.data,a=r.size,i=Math.sign(t);if(B(r.dtype)){let s=o;for(let u=0;u<a;u++)n[u]=i*Math.abs(Number(s[u]))}else for(let s=0;s<a;s++)n[s]=i*Math.abs(o[s]);return e}function li(r){U(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 N.fromData(t,Array.from(r.shape),"bool")}function fi(r,t){if(U(r.dtype,"nextafter","nextafter is only defined for real numbers."),typeof t!="number"&&U(t.dtype,"nextafter","nextafter is only defined for real numbers."),typeof t=="number")return kl(r,t);if(St(r,t))return Rl(r,t);let e=Tr(r.shape,t.shape),n=e.reduce((u,c)=>u*c,1),o=N.zeros(e,"float64"),a=o.data,i=Ht(r,e),s=Ht(t,e);for(let u=0;u<n;u++){let c=Number(i.iget(u)),l=Number(s.iget(u));a[u]=ht(c,l)}return o}function Rl(r,t){let e=N.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size,a=r.data,i=t.data,s=B(r.dtype),u=B(t.dtype);for(let c=0;c<o;c++){let l=s?Number(a[c]):a[c],m=u?Number(i[c]):i[c];n[c]=ht(l,m)}return e}function kl(r,t){let e=N.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.data,a=r.size;if(B(r.dtype)){let i=o;for(let s=0;s<a;s++)n[s]=ht(Number(i[s]),t)}else for(let i=0;i<a;i++)n[i]=ht(o[i],t);return e}function ht(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 mi(r){U(r.dtype,"spacing","spacing is only defined for real numbers.");let t=N.zeros(Array.from(r.shape),"float64"),e=t.data,n=r.data,o=r.size;if(B(r.dtype)){let a=n;for(let i=0;i<o;i++)e[i]=ri(Number(a[i]))}else for(let a=0;a<o;a++)e[a]=ri(n[a]);return t}function ri(r){if(Number.isNaN(r))return NaN;if(!Number.isFinite(r))return NaN;if(Math.abs(r)===0)return Number.MIN_VALUE;let e=ht(r,1/0);return Math.abs(e-r)}function Ht(r,t){let e=r.shape.length,n=t.length,o=new Array(n).fill(0);for(let a=0;a<e;a++){let i=n-e+a,s=r.shape[a],u=t[i];if(s===u)o[i]=r.strides[a];else if(s===1)o[i]=0;else throw new Error("Invalid broadcast")}return N.fromData(r.data,Array.from(t),r.dtype,o,r.offset)}function pi(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 N.fromData(n,Array.from(r.shape),"bool")}function yi(r){return M(r.dtype)}function di(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 N.fromData(n,Array.from(r.shape),"bool")}function gi(r){return!M(r.dtype)}function Ai(r){U(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 N.fromData(t,Array.from(r.shape),"bool")}function bi(r){U(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 N.fromData(t,Array.from(r.shape),"bool")}function hi(r){return r.isFContiguous}function Si(r,t=100){let e=r.dtype;if(M(e)){let n=r.data,o=r.size,i=t*(e==="complex64"?11920929e-14:2220446049250313e-31),s=!0;for(let u=0;u<o;u++){let c=n[u*2+1];if(Math.abs(c)>i){s=!1;break}}if(s){let u=e==="complex64"?"float32":"float64",c=N.zeros(Array.from(r.shape),u),l=c.data;for(let m=0;m<o;m++)l[m]=n[m*2];return c}return r.copy()}return r.copy()}function Di(r){return typeof r=="number"||typeof r=="bigint"||typeof r=="boolean"||typeof r=="string"}function Ni(r){return r==null?!1:typeof r[Symbol.iterator]=="function"}function xi(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 wi(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 Ii=G(()=>{"use strict";K();Q();vr();vr()});function zi(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(M(t)){let o=at(t),a=N.zeros(e,o),i=a.data,s=r.data;for(let u=0;u<n;u++)i[u]=s[u*2];return a}return r.copy()}function _i(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(M(t)){let a=at(t),i=N.zeros(e,a),s=i.data,u=r.data;for(let c=0;c<n;c++)s[c]=u[c*2+1];return i}let o=t==="float32"?"float32":"float64";return N.zeros(e,o)}function vi(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(M(t)){let o=j(t),a=n*2,i=new o(a),s=r.data;for(let u=0;u<n;u++)i[u*2]=s[u*2],i[u*2+1]=-s[u*2+1];return N.fromData(i,e,t)}return r.copy()}function Fi(r,t=!1){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=N.zeros(n,"float64"),i=a.data;if(M(e)){let s=r.data;for(let u=0;u<o;u++){let c=s[u*2],l=s[u*2+1],m=Math.atan2(l,c);t&&(m=m*180/Math.PI),i[u]=m}}else for(let s=0;s<o;s++){let u=r.iget(s),l=(u instanceof E?u.re:Number(u))>=0?0:Math.PI;t&&(l=l*180/Math.PI),i[s]=l}return a}var Mi=G(()=>{"use strict";K();Q();xr()});function zr(r,t,e){if(e){let n=r[t*2],o=r[t*2+1];return n!==0||o!==0}return!!r[t]}function Dt(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 sn(r,t=-1){let e=r.shape,n=e.length,o=r.dtype,a=r.data;if(n===0)return r.copy();let i=t;if(i<0&&(i=n+i),i<0||i>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let s=r.copy(),u=s.data,c=e[i],l=Array.from(e).filter((d,y)=>y!==i),m=l.length===0?1:l.reduce((d,y)=>d*y,1);if(M(o)){let d=a,y=u;for(let f=0;f<m;f++){let p=[];for(let g=0;g<c;g++){let h=R(f,i,g,e),b=$(h,e);p.push({re:d[b*2],im:d[b*2+1],idx:g})}p.sort((g,h)=>Dt(g.re,g.im,h.re,h.im));for(let g=0;g<c;g++){let h=R(f,i,g,e),b=$(h,e);y[b*2]=p[g].re,y[b*2+1]=p[g].im}}}else if(B(o)){let d=a,y=u;for(let f=0;f<m;f++){let p=[];for(let g=0;g<c;g++){let h=R(f,i,g,e),b=$(h,e);p.push({value:d[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=R(f,i,g,e),b=$(h,e);y[b]=p[g].value}}}else for(let d=0;d<m;d++){let y=[];for(let f=0;f<c;f++){let p=R(d,i,f,e),g=$(p,e);y.push(Number(a[g]))}y.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=R(d,i,f,e),g=$(p,e);u[g]=y[f]}}return s}function un(r,t=-1){let e=r.shape,n=e.length,o=r.dtype,a=r.data;if(n===0)return N.zeros([0],"int32");let i=t;if(i<0&&(i=n+i),i<0||i>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let s=N.zeros(Array.from(e),"int32"),u=s.data,c=e[i],l=Array.from(e).filter((d,y)=>y!==i),m=l.length===0?1:l.reduce((d,y)=>d*y,1);if(M(o)){let d=a;for(let y=0;y<m;y++){let f=[];for(let p=0;p<c;p++){let g=R(y,i,p,e),h=$(g,e);f.push({re:d[h*2],im:d[h*2+1],idx:p})}f.sort((p,g)=>Dt(p.re,p.im,g.re,g.im));for(let p=0;p<c;p++){let g=R(y,i,p,e),h=$(g,e);u[h]=f[p].idx}}}else if(B(o)){let d=a;for(let y=0;y<m;y++){let f=[];for(let p=0;p<c;p++){let g=R(y,i,p,e),h=$(g,e);f.push({value:d[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=R(y,i,p,e),h=$(g,e);u[h]=f[p].idx}}}else for(let d=0;d<m;d++){let y=[];for(let f=0;f<c;f++){let p=R(d,i,f,e),g=$(p,e);y.push({value:Number(a[g]),idx:f})}y.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=R(d,i,f,e),g=$(p,e);u[g]=y[f].idx}}return s}function Bi(r){if(r.length===0)return N.zeros([0],"int32");let e=r[0].size;for(let i of r){if(i.ndim!==1)throw new Error("keys must be 1D arrays");if(i.size!==e)throw new Error("all keys must have the same length")}let n=[];for(let i=0;i<e;i++)n.push(i);n.sort((i,s)=>{for(let u=r.length-1;u>=0;u--){let l=r[u].data,m=Number(l[i]),d=Number(l[s]);if(!(isNaN(m)&&isNaN(d))){if(isNaN(m))return 1;if(isNaN(d)||m<d)return-1;if(m>d)return 1}}return 0});let o=N.zeros([e],"int32"),a=o.data;for(let i=0;i<e;i++)a[i]=n[i];return o}function Pl(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e],i=r[o],s=r[n],u;a<=i&&i<=s||s<=i&&i<=a?u=o:i<=a&&a<=s||s<=a&&a<=i?u=e:u=n;let c=r[u];[r[u],r[n]]=[r[n],r[u]];let l=e;for(let m=e;m<n;m++){let d=r[m],y=isNaN(d),f=isNaN(c);!y&&(f||d<=c)&&([r[l],r[m]]=[r[m],r[l]],l++)}if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function jl(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e],i=r[o],s=r[n],u;a<=i&&i<=s||s<=i&&i<=a?u=o:i<=a&&a<=s||s<=a&&a<=i?u=e:u=n;let c=r[u];[r[u],r[n]]=[r[n],r[u]];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 Ll(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e].value,i=r[o].value,s=r[n].value,u;a<=i&&i<=s||s<=i&&i<=a?u=o:i<=a&&a<=s||s<=a&&a<=i?u=e:u=n;let c=r[u].value;[r[u],r[n]]=[r[n],r[u]];let l=e;for(let m=e;m<n;m++){let d=r[m].value,y=isNaN(d),f=isNaN(c);!y&&(f||d<=c)&&([r[l],r[m]]=[r[m],r[l]],l++)}if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function Wl(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e].value,i=r[o].value,s=r[n].value,u;a<=i&&i<=s||s<=i&&i<=a?u=o:i<=a&&a<=s||s<=a&&a<=i?u=e:u=n;let c=r[u].value;[r[u],r[n]]=[r[n],r[u]];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 cn(r,t,e=-1){let n=r.shape,o=n.length,a=r.dtype;if(o===0)return r.copy();let i=e;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=n[i],u=t;if(u<0&&(u=s+u),u<0||u>=s)throw new Error(`kth(=${t}) out of bounds (${s})`);let c=r.copy(),l=c.data,m=Array.from(n).filter((y,f)=>f!==i),d=m.length===0?1:m.reduce((y,f)=>y*f,1);if(B(a)){let y=l;for(let f=0;f<d;f++){let p=[];for(let g=0;g<s;g++){let h=R(f,i,g,n),b=$(h,n);p.push(y[b])}jl(p,u);for(let g=0;g<s;g++){let h=R(f,i,g,n),b=$(h,n);y[b]=p[g]}}}else for(let y=0;y<d;y++){let f=[];for(let p=0;p<s;p++){let g=R(y,i,p,n),h=$(g,n);f.push(Number(l[h]))}Pl(f,u);for(let p=0;p<s;p++){let g=R(y,i,p,n),h=$(g,n);l[h]=f[p]}}return c}function ln(r,t,e=-1){let n=r.shape,o=n.length,a=r.dtype,i=r.data;if(o===0)return N.zeros([0],"int32");let 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 u=n[s],c=t;if(c<0&&(c=u+c),c<0||c>=u)throw new Error(`kth(=${t}) out of bounds (${u})`);let l=N.zeros(Array.from(n),"int32"),m=l.data,d=Array.from(n).filter((f,p)=>p!==s),y=d.length===0?1:d.reduce((f,p)=>f*p,1);if(B(a)){let f=i;for(let p=0;p<y;p++){let g=[];for(let h=0;h<u;h++){let b=R(p,s,h,n),A=$(b,n);g.push({value:f[A],idx:h})}Wl(g,c);for(let h=0;h<u;h++){let b=R(p,s,h,n),A=$(b,n);m[A]=g[h].idx}}}else for(let f=0;f<y;f++){let p=[];for(let g=0;g<u;g++){let h=R(f,s,g,n),b=$(h,n);p.push({value:Number(i[b]),idx:g})}Ll(p,c);for(let g=0;g<u;g++){let h=R(f,s,g,n),b=$(h,n);m[b]=p[g].idx}}return l}function Ei(r){let t=r.dtype,e=r.size,n=r.data;if(M(t)){let o=n,a=[];for(let u=0;u<e;u++)a.push({re:o[u*2],im:o[u*2+1]});a.sort((u,c)=>Dt(u.re,u.im,c.re,c.im));let i=N.zeros([e],"complex128"),s=i.data;for(let u=0;u<e;u++)s[u*2]=a[u].re,s[u*2+1]=a[u].im;return i}else{let o=[];for(let s=0;s<e;s++)o.push(Number(n[s]));o.sort((s,u)=>isNaN(s)&&isNaN(u)?0:isNaN(s)?1:isNaN(u)?-1:s-u);let a=N.zeros([e],"complex128"),i=a.data;for(let s=0;s<e;s++)i[s*2]=o[s],i[s*2+1]=0;return a}}function Xt(r){let t=r.shape,e=t.length,n=r.data,o=r.size,a=M(r.dtype),i=[];for(let m=0;m<e;m++)i.push([]);let s=[],u=1;for(let m=e-1;m>=0;m--)s.unshift(u),u*=t[m];for(let m=0;m<o;m++)if(zr(n,m,a)){let d=m;for(let y=0;y<e;y++){let f=Math.floor(d/s[y]);d=d%s[y],i[y].push(f)}}let c=i[0]?.length??0,l=[];for(let m=0;m<e;m++){let d=N.zeros([c],"int32"),y=d.data;for(let f=0;f<c;f++)y[f]=i[m][f];l.push(d)}return l}function fn(r){let t=r.shape,e=t.length,n=r.data,o=r.size,a=M(r.dtype),i=[],s=[],u=1;for(let y=e-1;y>=0;y--)s.unshift(u),u*=t[y];for(let y=0;y<o;y++)if(zr(n,y,a)){let f=[],p=y;for(let g=0;g<e;g++){let h=Math.floor(p/s[g]);p=p%s[g],f.push(h)}i.push(f)}let c=i.length,l=e===0?[c,1]:[c,e],m=N.zeros(l,"int32"),d=m.data;for(let y=0;y<c;y++){let f=i[y];for(let p=0;p<(e===0?1:e);p++)d[y*(e===0?1:e)+p]=f[p]??0}return m}function Ti(r){let t=r.data,e=r.size,n=M(r.dtype),o=[];for(let s=0;s<e;s++)zr(t,s,n)&&o.push(s);let a=N.zeros([o.length],"int32"),i=a.data;for(let s=0;s<o.length;s++)i[s]=o[s];return a}function Oi(r,t,e){if(t===void 0&&e===void 0)return Xt(r);if(t===void 0||e===void 0)throw new Error("either both or neither of x and y should be given");let n=r.shape,o=t.shape,a=e.shape,i=Math.max(n.length,o.length,a.length),s=v=>{let T=Array(i).fill(1);for(let O=0;O<v.length;O++)T[i-v.length+O]=v[O];return T},u=s(n),c=s(o),l=s(a),m=[];for(let v=0;v<i;v++){let T=[u[v],c[v],l[v]],O=Math.max(...T);for(let C of T)if(C!==1&&C!==O)throw new Error("operands could not be broadcast together");m.push(O)}let d=t.dtype,y=N.zeros(m,d),f=y.data,p=r.data,g=t.data,h=e.data,b=(v,T)=>{let O=[],C=1;for(let q=v.length-1;q>=0;q--)O.unshift(C),C*=v[q];for(;O.length<T.length;)O.unshift(0);for(let q=0;q<T.length;q++)T[q]===1&&m[q]!==1&&(O[q]=0);return O},A=b(n,u),S=b(o,c),D=b(a,l),w=[],x=1;for(let v=m.length-1;v>=0;v--)w.unshift(x),x*=m[v];let I=m.reduce((v,T)=>v*T,1),z=M(r.dtype),F=M(d);for(let v=0;v<I;v++){let T=v,O=0,C=0,q=0;for(let V=0;V<i;V++){let k=Math.floor(T/w[V]);T=T%w[V],O+=k*A[V],C+=k*S[V],q+=k*D[V]}zr(p,O,z)?F?(f[v*2]=g[C*2],f[v*2+1]=g[C*2+1]):f[v]=g[C]:F?(f[v*2]=h[q*2],f[v*2+1]=h[q*2+1]):f[v]=h[q]}return y}function mn(r,t,e="left"){if(r.ndim!==1)throw new Error("storage must be 1D");let n=r.data,o=r.size,a=t.data,i=t.size,s=M(r.dtype),u=N.zeros([i],"int32"),c=u.data;if(s){let l=n,m=a;for(let d=0;d<i;d++){let y=m[d*2],f=m[d*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];Dt(b,A,y,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];Dt(b,A,y,f)<=0?p=h+1:g=h}c[d]=p}}else for(let l=0;l<i;l++){let m=Number(a[l]),d=0,y=o;if(e==="left")for(;d<y;){let f=Math.floor((d+y)/2);Number(n[f])<m?d=f+1:y=f}else for(;d<y;){let f=Math.floor((d+y)/2);Number(n[f])<=m?d=f+1:y=f}c[l]=d}return u}function Ci(r,t){let e=r.data,n=t.data,o=t.dtype,a=M(r.dtype),i=M(o),s=Math.min(r.size,t.size),u=0;for(let d=0;d<s;d++)zr(e,d,a)&&u++;let c=N.zeros([u],o),l=c.data,m=0;if(B(o)){let d=n,y=l;for(let f=0;f<s;f++)zr(e,f,a)&&(y[m++]=d[f])}else if(i){let d=n,y=l;for(let f=0;f<s;f++)zr(e,f,a)&&(y[m*2]=d[f*2],y[m*2+1]=d[f*2+1],m++)}else for(let d=0;d<s;d++)zr(e,d,a)&&(l[m++]=n[d]);return c}function pn(r,t){let e=r.shape,n=e.length,o=r.data,a=r.size,i=M(r.dtype);if(t===void 0){let y=0;for(let f=0;f<a;f++)zr(o,f,i)&&y++;return y}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 u=Array.from(e).filter((y,f)=>f!==s);if(u.length===0)return pn(r);let c=N.zeros(u,"int32"),l=c.data,m=e[s],d=u.reduce((y,f)=>y*f,1);for(let y=0;y<d;y++){let f=0;for(let p=0;p<m;p++){let g=R(y,s,p,e),h=$(g,e);zr(o,h,i)&&f++}l[y]=f}return c}var Ui=G(()=>{"use strict";K();Q();he()});function $i(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 yn(r,t=0){U(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,i=e==="float32"?"float32":"float64",s=N.zeros(n,i),u=s.data,c=Math.pow(10,t);for(let l=0;l<a;l++){let m=Number(o[l]);u[l]=$i(m*c)/c}return s}function dn(r){U(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",i=N.zeros(e,a),s=i.data;for(let u=0;u<o;u++)s[u]=Math.ceil(Number(n[u]));return i}function gn(r){U(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",i=N.zeros(e,a),s=i.data;for(let u=0;u<o;u++)s[u]=Math.trunc(Number(n[u]));return i}function An(r){U(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",i=N.zeros(e,a),s=i.data;for(let u=0;u<o;u++)s[u]=Math.floor(Number(n[u]));return i}function bn(r){U(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",i=N.zeros(e,a),s=i.data;for(let u=0;u<o;u++)s[u]=$i(Number(n[u]));return i}function hn(r){U(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",i=N.zeros(e,a),s=i.data;for(let u=0;u<o;u++)s[u]=Math.trunc(Number(n[u]));return i}var Ri=G(()=>{"use strict";K();Q()});function Sn(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 Yl(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 yr(r,t=!1,e=!1,n=!1){let o=r.dtype,a=r.size,i=r.data;if(M(o)){let A=i,S=[];for(let k=0;k<a;k++)S.push({re:A[k*2],im:A[k*2+1],index:k});S.sort((k,W)=>Sn(k.re,k.im,W.re,W.im));let D=[],w=[],x=new Array(a),I=[],z,F,v=0;for(let k=0;k<S.length;k++){let{re:W,im:P,index:rr}=S[k];z===void 0||!Yl(W,P,z,F)?(z!==void 0&&I.push(v),D.push({re:W,im:P}),w.push(rr),v=1,z=W,F=P):v++}v>0&&I.push(v);let T=new Map,O=-1;for(let k=0;k<D.length;k++){let{re:W,im:P}=D[k];isNaN(W)||isNaN(P)?O=k:T.set(`${W},${P}`,k)}for(let k=0;k<a;k++){let W=A[k*2],P=A[k*2+1];isNaN(W)||isNaN(P)?x[k]=O:x[k]=T.get(`${W},${P}`)}let C=N.zeros([D.length],o),q=C.data;for(let k=0;k<D.length;k++)q[k*2]=D[k].re,q[k*2+1]=D[k].im;if(!t&&!e&&!n)return C;let V={values:C};if(t){let k=N.zeros([w.length],"int32"),W=k.data;for(let P=0;P<w.length;P++)W[P]=w[P];V.indices=k}if(e){let k=N.zeros([x.length],"int32"),W=k.data;for(let P=0;P<x.length;P++)W[P]=x[P];V.inverse=k}if(n){let k=N.zeros([I.length],"int32"),W=k.data;for(let P=0;P<I.length;P++)W[P]=I[P];V.counts=k}return V}let s=[];for(let A=0;A<a;A++)s.push({value:Number(i[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 u=[],c=[],l=new Array(a),m=[],d,y=0;for(let A=0;A<s.length;A++){let{value:S,index:D}=s[A];d===void 0||isNaN(S)&&!isNaN(d)||!isNaN(S)&&isNaN(d)||!isNaN(S)&&!isNaN(d)&&S!==d?(d!==void 0&&m.push(y),u.push(S),c.push(D),y=1,d=S):y++}y>0&&m.push(y);let f=new Map,p=-1;for(let A=0;A<u.length;A++){let S=u[A];isNaN(S)?p=A:f.set(S,A)}for(let A=0;A<a;A++){let S=Number(i[A]);isNaN(S)?l[A]=p:l[A]=f.get(S)}let g=N.zeros([u.length],o),h=g.data;for(let A=0;A<u.length;A++)h[A]=u[A];if(!t&&!e&&!n)return g;let b={values:g};if(t){let A=N.zeros([c.length],"int32"),S=A.data;for(let D=0;D<c.length;D++)S[D]=c[D];b.indices=A}if(e){let A=N.zeros([l.length],"int32"),S=A.data;for(let D=0;D<l.length;D++)S[D]=l[D];b.inverse=A}if(n){let A=N.zeros([m.length],"int32"),S=A.data;for(let D=0;D<m.length;D++)S[D]=m[D];b.counts=A}return b}function _r(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 ki(r,t){return Dn(r,t)}function qi(r,t){let e=r.dtype,n=M(e),o=yr(r),a=yr(t),i=new Set;for(let l=0;l<a.size;l++)i.add(_r(a.data,l,n));let s=[];for(let l=0;l<o.size;l++){let m=_r(o.data,l,n);i.has(m)&&s.push(l)}if(n){let l=N.zeros([s.length],e),m=l.data,d=o.data;for(let y=0;y<s.length;y++){let f=s[y];m[y*2]=d[f*2],m[y*2+1]=d[f*2+1]}return l}let u=N.zeros([s.length],e),c=u.data;for(let l=0;l<s.length;l++)c[l]=o.data[s[l]];return u}function Dn(r,t){let e=Array.from(r.shape),n=r.size,o=M(r.dtype),a=new Set;for(let u=0;u<t.size;u++)a.add(_r(t.data,u,o));let i=N.zeros(e,"bool"),s=i.data;for(let u=0;u<n;u++){let c=_r(r.data,u,o);s[u]=a.has(c)?1:0}return i}function Vi(r,t){let e=r.dtype,n=M(e),o=yr(r),a=new Set;for(let c=0;c<t.size;c++)a.add(_r(t.data,c,n));let i=[];for(let c=0;c<o.size;c++){let l=_r(o.data,c,n);a.has(l)||i.push(c)}if(n){let c=N.zeros([i.length],e),l=c.data,m=o.data;for(let d=0;d<i.length;d++){let y=i[d];l[d*2]=m[y*2],l[d*2+1]=m[y*2+1]}return c}let s=N.zeros([i.length],e),u=s.data;for(let c=0;c<i.length;c++)u[c]=o.data[i[c]];return s}function Pi(r,t){let e=r.dtype,n=M(e),o=yr(r),a=yr(t),i=new Set,s=new Set;for(let y=0;y<o.size;y++)i.add(_r(o.data,y,n));for(let y=0;y<a.size;y++)s.add(_r(a.data,y,n));let u=[],c=[];for(let y=0;y<o.size;y++){let f=_r(o.data,y,n);s.has(f)||u.push(y)}for(let y=0;y<a.size;y++){let f=_r(a.data,y,n);i.has(f)||c.push(y)}if(n){let y=[],f=o.data,p=a.data;for(let b of u)y.push({re:f[b*2],im:f[b*2+1]});for(let b of c)y.push({re:p[b*2],im:p[b*2+1]});y.sort((b,A)=>Sn(b.re,b.im,A.re,A.im));let g=N.zeros([y.length],e),h=g.data;for(let b=0;b<y.length;b++)h[b*2]=y[b].re,h[b*2+1]=y[b].im;return g}let l=[];for(let y of u)l.push(Number(o.data[y]));for(let y of c)l.push(Number(a.data[y]));l.sort((y,f)=>isNaN(y)&&isNaN(f)?0:isNaN(y)?1:isNaN(f)?-1:y-f);let m=N.zeros([l.length],e),d=m.data;for(let y=0;y<l.length;y++)d[y]=l[y];return m}function ji(r,t){let e=r.dtype,n=M(e),o=yr(r),a=yr(t),i=new Set,s=[];if(n){let m=o.data,d=a.data;for(let p=0;p<o.size;p++){let g=m[p*2],h=m[p*2+1],b=`${g},${h}`;i.has(b)||(i.add(b),s.push({re:g,im:h}))}for(let p=0;p<a.size;p++){let g=d[p*2],h=d[p*2+1],b=`${g},${h}`;i.has(b)||(i.add(b),s.push({re:g,im:h}))}s.sort((p,g)=>Sn(p.re,p.im,g.re,g.im));let y=N.zeros([s.length],e),f=y.data;for(let p=0;p<s.length;p++)f[p*2]=s[p].re,f[p*2+1]=s[p].im;return y}let u=[];for(let m=0;m<o.size;m++){let d=Number(o.data[m]),y=String(d);i.has(y)||(i.add(y),u.push(d))}for(let m=0;m<a.size;m++){let d=Number(a.data[m]),y=String(d);i.has(y)||(i.add(y),u.push(d))}u.sort((m,d)=>isNaN(m)&&isNaN(d)?0:isNaN(m)?1:isNaN(d)?-1:m-d);let c=N.zeros([u.length],e),l=c.data;for(let m=0;m<u.length;m++)l[m]=u[m];return c}function Li(r,t="fb"){let e=r.dtype,n=r.data,o=r.size,a=M(e);if(o===0)return N.zeros([0],e);let i=d=>{if(a){let y=n[d*2],f=n[d*2+1];return y===0&&f===0}return Number(n[d])===0},s=0;if(t==="f"||t==="fb")for(;s<o&&i(s);)s++;let u=o-1;if(t==="b"||t==="fb")for(;u>=s&&i(u);)u--;if(s>u)return N.zeros([0],e);let c=u-s+1;if(a){let d=N.zeros([c],e),y=d.data;for(let f=0;f<c;f++)y[f*2]=n[(s+f)*2],y[f*2+1]=n[(s+f)*2+1];return d}let l=N.zeros([c],e),m=l.data;for(let d=0;d<c;d++)m[d]=n[s+d];return l}function Wi(r){let e=yr(r,!0,!0,!0);return{values:e.values,indices:e.indices,inverse_indices:e.inverse,counts:e.counts}}function Gi(r){let e=yr(r,!1,!1,!0);return{values:e.values,counts:e.counts}}function Zi(r){let e=yr(r,!1,!0,!1);return{values:e.values,inverse_indices:e.inverse}}function Yi(r){return yr(r)}var Hi=G(()=>{"use strict";K();Q()});function Nn(r,t=1,e=-1){if(t<0)throw new Error(`order must be non-negative but got ${t}`);if(t===0)return r.copy();let n=Array.from(r.shape),o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);if(n[a]<t+1)throw new Error(`diff requires at least ${t+1} elements along axis ${e}, but got ${n[a]}`);let i=r;for(let s=0;s<t;s++)i=Xl(i,a);return i}function Xl(r,t){let e=Array.from(r.shape),n=e.length,o=e[t],a=[...e];a[t]=o-1;let i=r.dtype,s=M(i),u=B(i)?"float64":i,c=N.zeros(a,u),l=c.data,m=r.strides,d=c.size;for(let y=0;y<d;y++){let f=y,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,D=S[b*2],w=S[b*2+1],x=S[A*2],I=S[A*2+1];l[y*2]=x-D,l[y*2+1]=I-w}else{let S=(B(i),Number(r.data[b])),D=(B(i),Number(r.data[A]));l[y]=D-S}}return c}function Xi(r,t=null,e=null){let n=r.size,o=r.dtype,a=M(o),i=B(o)?"float64":o,s=Math.max(0,n-1),u=e?e.length:0,c=t?t.length:0,l=u+s+c,m=N.zeros([l],i),d=m.data,y=0;if(e)if(a)for(let f of e)d[y*2]=f,d[y*2+1]=0,y++;else for(let f of e)d[y++]=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];d[y*2]=b-g,d[y*2+1]=A-h,y++}}else for(let f=0;f<s;f++){let p=(B(o),Number(r.iget(f))),g=(B(o),Number(r.iget(f+1)));d[y++]=g-p}if(t)if(a)for(let f of t)d[y*2]=f,d[y*2+1]=0,y++;else for(let f of t)d[y++]=f;return m}function Ji(r,t=1,e=null){let o=Array.from(r.shape).length,a;if(e===null)a=Array.from({length:o},(u,c)=>c);else if(typeof e=="number"){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}`);a=[u]}else a=e.map(u=>{let c=u<0?o+u:u;if(c<0||c>=o)throw new Error(`axis ${u} is out of bounds for array of dimension ${o}`);return c});let i;if(typeof t=="number")i=a.map(()=>t);else{if(t.length!==a.length)throw new Error("Number of spacings must match number of axes");i=t}let s=[];for(let u=0;u<a.length;u++)s.push(Jl(r,a[u],i[u]));return s.length===1?s[0]:s}function Jl(r,t,e){let n=Array.from(r.shape),o=n.length,a=n[t];if(a<2)throw new Error(`Shape of array along axis ${t} must be at least 2, but got ${a}`);let i=r.dtype,s=M(i),u=B(i)?"float64":i==="float32"?"float32":s?i:"float64",c=N.zeros(n,u),l=c.data,m=r.strides,d=e,y=2*d,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,D,w;if(b===0){let x=[...h];x[t]=1;let I=0;for(let O=0;O<o;O++)I+=x[O]*m[O];let z=A[p*2],F=A[p*2+1],v=A[I*2],T=A[I*2+1];D=(v-z)/d,w=(T-F)/d}else if(b===a-1){let x=[...h];x[t]=a-2;let I=0;for(let O=0;O<o;O++)I+=x[O]*m[O];let z=A[p*2],F=A[p*2+1],v=A[I*2],T=A[I*2+1];D=(z-v)/d,w=(F-T)/d}else{let x=[...h],I=[...h];x[t]=b+1,I[t]=b-1;let z=0,F=0;for(let q=0;q<o;q++)z+=x[q]*m[q],F+=I[q]*m[q];let v=A[z*2],T=A[z*2+1],O=A[F*2],C=A[F*2+1];D=(v-O)/y,w=(T-C)/y}S[p*2]=D,S[p*2+1]=w}else{let A;if(b===0){let S=[...h];S[t]=1;let D=0;for(let I=0;I<o;I++)D+=S[I]*m[I];let w=(B(i),Number(r.data[p]));A=((B(i),Number(r.data[D]))-w)/d}else if(b===a-1){let S=[...h];S[t]=a-2;let D=0;for(let I=0;I<o;I++)D+=S[I]*m[I];let w=(B(i),Number(r.data[p])),x=(B(i),Number(r.data[D]));A=(w-x)/d}else{let S=[...h],D=[...h];S[t]=b+1,D[t]=b-1;let w=0,x=0;for(let F=0;F<o;F++)w+=S[F]*m[F],x+=D[F]*m[F];let I=(B(i),Number(r.data[w])),z=(B(i),Number(r.data[x]));A=(I-z)/y}l[p]=A}}return c}function Qi(r,t,e=-1,n=-1,o=-1){let a=Array.from(r.shape),i=Array.from(t.shape),s=a.length,u=i.length,c=e<0?s+e:e,l=n<0?u+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>=u)throw new Error(`axisb ${n} is out of bounds for array of dimension ${u}`);let m=a[c],d=i[l];if(m!==2&&m!==3)throw new Error(`incompatible dimensions for cross product (dimension must be 2 or 3, got ${m})`);if(d!==2&&d!==3)throw new Error(`incompatible dimensions for cross product (dimension must be 2 or 3, got ${d})`);let y=Z(r.dtype,t.dtype),f=M(y),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,D)=>[b*S-A*D,b*D+A*S],h=(b,A,S,D)=>[b-S,A-D];if(s===1&&u===1&&m===3&&d===3){let b=N.zeros([3],y);if(f){let A=b.data,[S,D]=p(r,0),[w,x]=p(r,1),[I,z]=p(r,2),[F,v]=p(t,0),[T,O]=p(t,1),[C,q]=p(t,2),[V,k]=g(w,x,C,q),[W,P]=g(I,z,T,O),[rr,nr]=h(V,k,W,P),[Y,ar]=g(I,z,F,v),[sr,ir]=g(S,D,C,q),[dr,ie]=h(Y,ar,sr,ir),[ue,ce]=g(S,D,T,O),[le,fe]=g(w,x,F,v),[me,pe]=h(ue,ce,le,fe);A[0]=rr,A[1]=nr,A[2]=dr,A[3]=ie,A[4]=me,A[5]=pe}else{let A=b.data,S=Number(r.iget(0)),D=Number(r.iget(1)),w=Number(r.iget(2)),x=Number(t.iget(0)),I=Number(t.iget(1)),z=Number(t.iget(2));A[0]=D*z-w*I,A[1]=w*x-S*z,A[2]=S*I-D*x}return b}if(s===1&&u===1&&m===2&&d===2){let b=N.zeros([],y);if(f){let A=b.data,[S,D]=p(r,0),[w,x]=p(r,1),[I,z]=p(t,0),[F,v]=p(t,1),[T,O]=g(S,D,F,v),[C,q]=g(w,x,I,z),[V,k]=h(T,O,C,q);A[0]=V,A[1]=k}else{let A=Number(r.iget(0)),S=Number(r.iget(1)),D=Number(t.iget(0)),w=Number(t.iget(1));b.data[0]=A*w-S*D}return b}if(s===1&&u===1){if(m===2&&d===3){let b=N.zeros([3],y);if(f){let A=b.data,[S,D]=p(r,0),[w,x]=p(r,1),[I,z]=p(t,0),[F,v]=p(t,1),[T,O]=p(t,2),[C,q]=g(w,x,T,O),[V,k]=g(S,D,T,O),W=-V,P=-k,[rr,nr]=g(S,D,F,v),[Y,ar]=g(w,x,I,z),[sr,ir]=h(rr,nr,Y,ar);A[0]=C,A[1]=q,A[2]=W,A[3]=P,A[4]=sr,A[5]=ir}else{let A=b.data,S=Number(r.iget(0)),D=Number(r.iget(1)),w=Number(t.iget(0)),x=Number(t.iget(1)),I=Number(t.iget(2));A[0]=D*I,A[1]=-S*I,A[2]=S*x-D*w}return b}else if(m===3&&d===2){let b=N.zeros([3],y);if(f){let A=b.data,[S,D]=p(r,0),[w,x]=p(r,1),[I,z]=p(r,2),[F,v]=p(t,0),[T,O]=p(t,1),[C,q]=g(I,z,T,O),V=-C,k=-q,[W,P]=g(I,z,F,v),[rr,nr]=g(S,D,T,O),[Y,ar]=g(w,x,F,v),[sr,ir]=h(rr,nr,Y,ar);A[0]=V,A[1]=k,A[2]=W,A[3]=P,A[4]=sr,A[5]=ir}else{let A=b.data,S=Number(r.iget(0)),D=Number(r.iget(1)),w=Number(r.iget(2)),x=Number(t.iget(0)),I=Number(t.iget(1));A[0]=-w*I,A[1]=w*x,A[2]=S*I-D*x}return b}}if(s===2&&u===2&&c===1&&l===1){let b=a[0];if(i[0]!==b)throw new Error(`Shape mismatch: a has ${b} vectors, b has ${i[0]} vectors`);if(m===3&&d===3){let A=N.zeros([b,3],y);if(f){let S=A.data;for(let D=0;D<b;D++){let[w,x]=p(r,D*3),[I,z]=p(r,D*3+1),[F,v]=p(r,D*3+2),[T,O]=p(t,D*3),[C,q]=p(t,D*3+1),[V,k]=p(t,D*3+2),[W,P]=g(I,z,V,k),[rr,nr]=g(F,v,C,q),[Y,ar]=h(W,P,rr,nr),[sr,ir]=g(F,v,T,O),[dr,ie]=g(w,x,V,k),[ue,ce]=h(sr,ir,dr,ie),[le,fe]=g(w,x,C,q),[me,pe]=g(I,z,T,O),[wc,Ic]=h(le,fe,me,pe);S[D*3*2]=Y,S[D*3*2+1]=ar,S[(D*3+1)*2]=ue,S[(D*3+1)*2+1]=ce,S[(D*3+2)*2]=wc,S[(D*3+2)*2+1]=Ic}}else{let S=A.data;for(let D=0;D<b;D++){let w=Number(r.iget(D*3)),x=Number(r.iget(D*3+1)),I=Number(r.iget(D*3+2)),z=Number(t.iget(D*3)),F=Number(t.iget(D*3+1)),v=Number(t.iget(D*3+2));S[D*3]=x*v-I*F,S[D*3+1]=I*z-w*v,S[D*3+2]=w*F-x*z}}return A}if(m===2&&d===2){let A=N.zeros([b],y);if(f){let S=A.data;for(let D=0;D<b;D++){let[w,x]=p(r,D*2),[I,z]=p(r,D*2+1),[F,v]=p(t,D*2),[T,O]=p(t,D*2+1),[C,q]=g(w,x,T,O),[V,k]=g(I,z,F,v),[W,P]=h(C,q,V,k);S[D*2]=W,S[D*2+1]=P}}else{let S=A.data;for(let D=0;D<b;D++){let w=Number(r.iget(D*2)),x=Number(r.iget(D*2+1)),I=Number(t.iget(D*2)),z=Number(t.iget(D*2+1));S[D]=w*z-x*I}}return A}}throw new Error(`cross product not implemented for arrays with shapes ${JSON.stringify(a)} and ${JSON.stringify(i)}`)}var Ki=G(()=>{"use strict";K();Q()});function ru(r,t,e=0){U(r.dtype,"bincount","bincount requires integer input.");let n=r.data,o=r.size,a=0;for(let s=0;s<o;s++){let u=Number(n[s]);if(u<0||!Number.isInteger(u))throw new Error("'x' argument must contain non-negative integers");u>a&&(a=u)}let i=Math.max(a+1,e);if(t!==void 0){if(t.size!==o)throw new Error("weights array must have same length as x");let s=t.data,u=new Float64Array(i);for(let c=0;c<o;c++){let l=Number(n[c]);u[l]+=Number(s[c])}return N.fromData(u,[i],"float64")}else{let s=new Float64Array(i);for(let u=0;u<o;u++){let c=Number(n[u]);s[c]++}return N.fromData(s,[i],"float64")}}function tu(r,t,e=!1){U(r.dtype,"digitize","digitize requires real numbers."),U(t.dtype,"digitize","digitize requires real numbers.");let n=r.data,o=t.data,a=r.size,i=t.size,s=new Float64Array(a),u=!0;i>1&&(u=Number(o[1])>=Number(o[0]));for(let c=0;c<a;c++){let l=Number(n[c]),m;if(u)e?m=Kl(o,i,l):m=Nt(o,i,l);else if(e)for(m=0;m<i&&Number(o[m])>=l;)m++;else for(m=0;m<i&&Number(o[m])>l;)m++;s[c]=m}return N.fromData(s,[...r.shape],"float64")}function Kl(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 Nt(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 eu(r,t=10,e,n=!1,o){U(r.dtype,"histogram","histogram requires real numbers."),typeof t!="number"&&U(t.dtype,"histogram","histogram requires real numbers.");let a=r.data,i=r.size,s;if(typeof t=="number"){let m,d;if(e)[m,d]=e;else{m=1/0,d=-1/0;for(let f=0;f<i;f++){let p=Number(a[f]);p<m&&(m=p),p>d&&(d=p)}m===d&&(m=m-.5,d=d+.5)}s=[];let y=(d-m)/t;for(let f=0;f<=t;f++)s.push(m+f*y)}else{let m=t.data;s=[];for(let d=0;d<t.size;d++)s.push(Number(m[d]))}let u=s.length-1,c=new Float64Array(u),l=o?.data;for(let m=0;m<i;m++){let d=Number(a[m]),y=l?Number(l[m]):1,f=Nt(s,s.length,d)-1;if(!(f<0)){if(f>=u)if(d===s[u])f=u-1;else continue;c[f]+=y}}if(n){let m=0;for(let d=0;d<u;d++)m+=c[d];for(let d=0;d<u;d++){let y=s[d+1]-s[d];c[d]=c[d]/(m*y)}}return{hist:N.fromData(c,[u],"float64"),bin_edges:N.fromData(new Float64Array(s),[s.length],"float64")}}function nu(r,t,e=10,n,o=!1,a){U(r.dtype,"histogram2d","histogram2d requires real numbers."),U(t.dtype,"histogram2d","histogram2d requires real numbers.");let i=r.data,s=t.data,u=r.size;if(t.size!==u)throw new Error("x and y must have the same length");let c,l,m,d;if(typeof e=="number"?(m=e,d=e):Array.isArray(e)&&e.length===2?(e[0],m=e[0],d=e[1]):(m=10,d=10),typeof m=="number"){let h,b;if(n)[h,b]=n[0];else{h=1/0,b=-1/0;for(let S=0;S<u;S++){let D=Number(i[S]);D<h&&(h=D),D>b&&(b=D)}h===b&&(h-=.5,b+=.5)}c=[];let A=(b-h)/m;for(let S=0;S<=m;S++)c.push(h+S*A)}else{let h=m.data;c=[];for(let b=0;b<m.size;b++)c.push(Number(h[b]))}if(typeof d=="number"){let h,b;if(n)[h,b]=n[1];else{h=1/0,b=-1/0;for(let S=0;S<u;S++){let D=Number(s[S]);D<h&&(h=D),D>b&&(b=D)}h===b&&(h-=.5,b+=.5)}l=[];let A=(b-h)/d;for(let S=0;S<=d;S++)l.push(h+S*A)}else{let h=d.data;l=[];for(let b=0;b<d.size;b++)l.push(Number(h[b]))}let y=c.length-1,f=l.length-1,p=new Float64Array(y*f),g=a?.data;for(let h=0;h<u;h++){let b=Number(i[h]),A=Number(s[h]),S=g?Number(g[h]):1,D=Nt(c,c.length,b)-1,w=Nt(l,l.length,A)-1;if(D<0||D>=y)if(b===c[y]&&D===y)D=y-1;else continue;if(w<0||w>=f)if(A===l[f]&&w===f)w=f-1;else continue;p[D*f+w]+=S}if(o){let h=0;for(let b=0;b<p.length;b++)h+=p[b];for(let b=0;b<y;b++)for(let A=0;A<f;A++){let S=c[b+1]-c[b],D=l[A+1]-l[A],w=S*D;p[b*f+A]=p[b*f+A]/(h*w)}}return{hist:N.fromData(p,[y,f],"float64"),x_edges:N.fromData(new Float64Array(c),[c.length],"float64"),y_edges:N.fromData(new Float64Array(l),[l.length],"float64")}}function ou(r,t=10,e,n=!1,o){U(r.dtype,"histogramdd","histogramdd requires real numbers.");let a=r.shape,i=r.data,s,u;if(a.length===1)s=a[0],u=1;else if(a.length===2)s=a[0],u=a[1];else throw new Error("sample must be 1D or 2D array");let c;if(typeof t=="number")c=new Array(u).fill(t);else if(c=t,c.length!==u)throw new Error("bins array length must match number of dimensions");let l=[];for(let h=0;h<u;h++){let b,A;if(e&&e[h])[b,A]=e[h];else{b=1/0,A=-1/0;for(let x=0;x<s;x++){let I=Number(u===1?i[x]:i[x*u+h]);I<b&&(b=I),I>A&&(A=I)}b===A&&(b-=.5,A+=.5)}let S=c[h],D=[],w=(A-b)/S;for(let x=0;x<=S;x++)D.push(b+x*w);l.push(D)}let m=c.slice(),d=m.reduce((h,b)=>h*b,1),y=new Float64Array(d),f=new Array(u);f[u-1]=1;for(let h=u-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 D=0;D<u;D++){let w=Number(u===1?i[h]:i[h*u+D]),x=l[D],I=c[D],z=Nt(x,x.length,w)-1;if(z<0||z>=I)if(w===x[I]&&z===I)z=I-1;else{S=!0;break}A+=z*f[D]}S||(y[A]+=b)}if(n){let h=0;for(let A=0;A<d;A++)h+=y[A];let b=new Float64Array(d);for(let A=0;A<d;A++){let S=1,D=A;for(let w=0;w<u;w++){let x=Math.floor(D/f[w])%c[w],I=l[w];S*=I[x+1]-I[x]}b[A]=S}for(let A=0;A<d;A++)y[A]=y[A]/(h*b[A])}let g=l.map(h=>N.fromData(new Float64Array(h),[h.length],"float64"));return{hist:N.fromData(y,m,"float64"),edges:g}}function wn(r,t,e="full"){let n=r.data,o=t.data,a=r.size,i=t.size,s=M(r.dtype)||M(t.dtype),u=a+i-1;if(s){let l=new Float64Array(u),m=new Float64Array(u),d=M(r.dtype),y=M(t.dtype);for(let p=0;p<u;p++){let g=0,h=0,b=p-i+1;for(let A=0;A<a;A++){let S=A-b;if(S>=0&&S<i){let D,w,x,I;d?(D=n[A*2],w=n[A*2+1]):(D=Number(n[A]),w=0),y?(x=o[S*2],I=o[S*2+1]):(x=Number(o[S]),I=0),g+=D*x+w*I,h+=w*x-D*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 N.fromData(A,[h],"complex128")};if(e==="full")return f(l,m,u);if(e==="same"){let p=Math.floor((u-a)/2);return f(l,m,a,p)}else{let p=Math.max(a,i)-Math.min(a,i)+1,g=Math.min(a,i)-1;return f(l,m,p,g)}}let c=new Float64Array(u);for(let l=0;l<u;l++){let m=0,d=l-i+1;for(let y=0;y<a;y++){let f=y-d;f>=0&&f<i&&(m+=Number(n[y])*Number(o[f]))}c[l]=m}if(e==="full")return N.fromData(c,[u],"float64");if(e==="same"){let l=Math.floor((u-a)/2),m=new Float64Array(a);for(let d=0;d<a;d++)m[d]=c[l+d];return N.fromData(m,[a],"float64")}else{let l=Math.max(a,i)-Math.min(a,i)+1,m=Math.min(a,i)-1,d=new Float64Array(l);for(let y=0;y<l;y++)d[y]=c[m+y];return N.fromData(d,[l],"float64")}}function au(r,t,e="full"){let n=t.data,o=t.size,a=M(t.dtype),i;if(a){let s=new Float64Array(o*2);for(let u=0;u<o;u++){let c=o-1-u;s[u*2]=n[c*2],s[u*2+1]=n[c*2+1]}i=N.fromData(s,[o],t.dtype)}else{let s=new Float64Array(o);for(let u=0;u<o;u++)s[u]=Number(n[o-1-u]);i=N.fromData(s,[o],"float64")}if(a){let s=i.data;for(let u=0;u<o;u++)s[u*2+1]=-s[u*2+1]}return wn(r,i,e)}function In(r,t,e=!0,n=!1,o){let a=r.shape,i=r.data,s=M(r.dtype)||t!==void 0&&M(t.dtype),u;if(o!==void 0?u=o:u=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,v=0;for(let Y=0;Y<p;Y++)g?(I+=i[Y*2],z+=i[Y*2+1]):I+=Number(i[Y]),h?(F+=f[Y*2],v+=f[Y*2+1]):F+=Number(f[Y]);I/=p,z/=p,F/=p,v/=p;let T=0,O=0,C=0,q=0,V=0,k=0,W=0,P=0;for(let Y=0;Y<p;Y++){let ar,sr,ir,dr;g?(ar=i[Y*2]-I,sr=i[Y*2+1]-z):(ar=Number(i[Y])-I,sr=0),h?(ir=f[Y*2]-F,dr=f[Y*2+1]-v):(ir=Number(f[Y])-F,dr=0),T+=ar*ar+sr*sr,C+=ir*ir+dr*dr,V+=ar*ir+sr*dr,k+=sr*ir-ar*dr,W+=ir*ar+dr*sr,P+=dr*ar-ir*sr}let rr=p-u;if(rr<=0){let Y=new Float64Array(8);return Y.fill(NaN),N.fromData(Y,[2,2],"complex128")}T/=rr,C/=rr,V/=rr,k/=rr,W/=rr,P/=rr;let nr=new Float64Array(8);return nr[0]=T,nr[1]=O,nr[2]=V,nr[3]=k,nr[4]=W,nr[5]=P,nr[6]=C,nr[7]=q,N.fromData(nr,[2,2],"complex128")}let b=0,A=0;for(let I=0;I<p;I++)b+=Number(i[I]),A+=Number(f[I]);b/=p,A/=p;let S=0,D=0,w=0;for(let I=0;I<p;I++){let z=Number(i[I])-b,F=Number(f[I])-A;S+=z*z,D+=F*F,w+=z*F}let x=p-u;return x<=0?N.fromData(new Float64Array([NaN,NaN,NaN,NaN]),[2,2],"float64"):(S/=x,D/=x,w/=x,N.fromData(new Float64Array([S,w,w,D]),[2,2],"float64"))}else{let f=r.size;if(s){let b=0,A=0;for(let w=0;w<f;w++)b+=i[w*2],A+=i[w*2+1];b/=f,A/=f;let S=0;for(let w=0;w<f;w++){let x=i[w*2]-b,I=i[w*2+1]-A;S+=x*x+I*I}let D=f-u;return D<=0?N.fromData(new Float64Array([NaN,0]),[],"complex128"):(S/=D,N.fromData(new Float64Array([S,0]),[],"complex128"))}let p=0;for(let b=0;b<f;b++)p+=Number(i[b]);p/=f;let g=0;for(let b=0;b<f;b++){let A=Number(i[b])-p;g+=A*A}let h=f-u;return h<=0?N.fromData(new Float64Array([NaN]),[],"float64"):(g/=h,N.fromData(new Float64Array([g]),[],"float64"))}let c,l;e?(c=a[0],l=a[1]):(c=a[1],l=a[0]);let m=l-u;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 D=e?h*l+S:S*c+h;b+=i[D*2],A+=i[D*2+1]}f[h]=b/l,p[h]=A/l}let g=new Float64Array(c*c*2);if(m<=0)return g.fill(NaN),N.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 x=e?h*l+w:w*c+h,I=e?b*l+w:w*c+b,z=i[x*2]-f[h],F=i[x*2+1]-p[h],v=i[I*2]-f[b],T=i[I*2+1]-p[b];A+=z*v+F*T,S+=F*v-z*T}let D=(h*c+b)*2;g[D]=A/m,g[D+1]=S/m}return N.fromData(g,[c,c],"complex128")}let d=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(i[h])}d[f]=p/l}let y=new Float64Array(c*c);if(m<=0)return y.fill(NaN),N.fromData(y,[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,D=Number(i[A])-d[f],w=Number(i[S])-d[p];g+=D*w}let h=g/m;y[f*c+p]=h,y[p*c+f]=h}return N.fromData(y,[c,c],"float64")}function su(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?N.fromData(new Float64Array([1,0]),[],"complex128"):N.fromData(new Float64Array([1]),[],"float64");let o=In(r,t,e,!1),a=o.data,s=o.shape[0];if(n){let c=new Float64Array(s*s*2);for(let l=0;l<s;l++)for(let m=0;m<s;m++){let d=a[(l*s+m)*2],y=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]=d/h,c[g+1]=y/h}}return N.fromData(c,[s,s],"complex128")}let u=new Float64Array(s*s);for(let c=0;c<s;c++)for(let l=0;l<s;l++){let m=Number(a[c*s+l]),d=Number(a[c*s+c]),y=Number(a[l*s+l]);d<=0||y<=0?u[c*s+l]=NaN:u[c*s+l]=m/Math.sqrt(d*y)}return N.fromData(u,[s,s],"float64")}function iu(r,t=10,e,n){U(r.dtype,"histogram_bin_edges","histogram_bin_edges requires real numbers.");let o=r.data,a=r.size,i,s;if(e)[i,s]=e;else{i=1/0,s=-1/0;for(let m=0;m<a;m++){let d=Number(o[m]);isNaN(d)||(d<i&&(i=d),d>s&&(s=d))}!isFinite(i)||!isFinite(s)?(i=0,s=1):i===s&&(i=i-.5,s=s+.5)}let u;typeof t=="number"?u=t:u=xn(o,a,i,s,t),u=Math.max(1,Math.round(u));let c=new Float64Array(u+1),l=(s-i)/u;for(let m=0;m<=u;m++)c[m]=i+m*l;return N.fromData(c,[u+1],"float64")}function xn(r,t,e,n,o){if(t===0)return 1;let a=n-e;if(a===0)return 1;let i=[],s=0;for(let p=0;p<t;p++){let g=Number(r[p]);isNaN(g)||(i.push(g),s+=g)}let u=i.length;if(u===0)return 1;let c=s/u,l=0;for(let p=0;p<u;p++){let g=i[p]-c;l+=g*g}let m=Math.sqrt(l/u);i.sort((p,g)=>p-g);let d=i[Math.floor(u*.25)]??0,f=(i[Math.floor(u*.75)]??0)-d;switch(o){case"sqrt":return Math.ceil(Math.sqrt(u));case"sturges":return Math.ceil(Math.log2(u)+1);case"rice":return Math.ceil(2*Math.pow(u,1/3));case"scott":{if(m===0)return 1;let p=3.5*m/Math.pow(u,1/3);return Math.ceil(a/p)}case"fd":{if(f===0)return xn(r,t,e,n,"sturges");let p=2*f/Math.pow(u,1/3);return Math.ceil(a/p)}case"doane":{let p=rf(i,c,m),g=Math.sqrt(6*(u-2)/((u+1)*(u+3)));return Math.ceil(1+Math.log2(u)+Math.log2(1+Math.abs(p)/g))}case"stone":return xn(r,t,e,n,"sturges");default:{let p=Math.ceil(Math.log2(u)+1),g=f===0?p:Math.ceil(a/(2*f/Math.pow(u,1/3)));return Math.max(p,g)}}}function rf(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 uu(r,t,e=1,n=-1){U(r.dtype,"trapezoid","trapezoid requires real numbers."),t!==void 0&&U(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 i=o[n];if(i<2)throw new Error("trapezoid requires at least 2 samples along axis");let s;if(t!==void 0){if(t.size!==i)throw new Error(`x array size (${t.size}) must match y axis size (${i})`);let p=t.data;s=new Float64Array(i);for(let g=0;g<i;g++)s[g]=Number(p[g])}else{s=new Float64Array(i);for(let p=0;p<i;p++)s[p]=p*e}let u=[...o];if(u.splice(n,1),a===1){let p=r.data,g=0;for(let h=0;h<i-1;h++){let b=Number(p[h]),A=Number(p[h+1]),S=s[h+1]-s[h];g+=.5*(b+A)*S}return g}let c=u.reduce((p,g)=>p*g,1),l=new Float64Array(c),m=new Array(a),d=1;for(let p=a-1;p>=0;p--)m[p]=d,d*=o[p];let y=new Array(u.length);d=1;for(let p=u.length-1;p>=0;p--)y[p]=d,d*=u[p];let f=r.data;for(let p=0;p<c;p++){let g=[],h=p;for(let D=0;D<u.length;D++){let w=Math.floor(h/y[D]);h%=y[D],g.push(w)}let b=[],A=0;for(let D=0;D<a;D++)D===n?b.push(0):(b.push(g[A]),A++);let S=0;for(let D=0;D<i-1;D++){b[n]=D;let w=0;for(let v=0;v<a;v++)w+=b[v]*m[v];b[n]=D+1;let x=0;for(let v=0;v<a;v++)x+=b[v]*m[v];let I=Number(f[w]),z=Number(f[x]),F=s[D+1]-s[D];S+=.5*(I+z)*F}l[p]=S}return u.length===0?l[0]:N.fromData(l,u,"float64")}var cu=G(()=>{"use strict";K();Q()});function Br(r,t=tr){let e=N.zeros(r,t);return new _(e)}function lu(r,t=tr){let e=N.ones(r,t);return new _(e)}function ef(r){let t=[],e=r;for(;Array.isArray(e);)t.push(e.length),e=e[0];return t}function fu(r){return typeof r=="bigint"?!0:Array.isArray(r)?r.some(t=>fu(t)):!1}function mu(r){return to(r)?!0:Array.isArray(r)?r.some(t=>mu(t)):!1}function nf(r){let t=[];function e(n){Array.isArray(n)?n.forEach(o=>e(o)):t.push(n)}return e(r),t}function L(r,t){if(r instanceof _)return!t||r.dtype===t?r.copy():r.astype(t);let e=fu(r),n=mu(r),o=ef(r),a=o.reduce((y,f)=>y*f,1),i=t;i||(n?i="complex128":e?i="int64":i=tr);let s=M(i),u=j(i);if(!u)throw new Error(`Cannot create array with dtype ${i}`);let c=s?a*2:a,l=new u(c),m=nf(r);if(B(i)){let y=l;for(let f=0;f<a;f++){let p=m[f];y[f]=typeof p=="bigint"?p:BigInt(Math.round(Number(p)))}}else if(i==="bool"){let y=l;for(let f=0;f<a;f++)y[f]=m[f]?1:0}else if(s){let y=l;for(let f=0;f<a;f++){let p=m[f],g,h;p instanceof E?(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),y[f*2]=g,y[f*2+1]=h}}else{let y=l;for(let f=0;f<a;f++){let p=m[f];y[f]=Number(p)}}let d=N.fromData(l,o,i);return new _(d)}function of(r,t,e=1,n=tr){let o=r,a=t;if(t===void 0&&(o=0,a=r),a===void 0)throw new Error("stop is required");let i=Math.max(0,Math.ceil((a-o)/e)),s=j(n);if(!s)throw new Error(`Cannot create arange array with dtype ${n}`);let u=new s(i);if(B(n))for(let l=0;l<i;l++)u[l]=BigInt(Math.round(o+l*e));else if(n==="bool")for(let l=0;l<i;l++)u[l]=o+l*e!==0?1:0;else for(let l=0;l<i;l++)u[l]=o+l*e;let c=N.fromData(u,[i],n);return new _(c)}function af(r,t,e=50,n=tr){if(e<0)throw new Error("num must be non-negative");if(e===0)return L([],n);if(e===1)return L([r],n);let o=j(n);if(!o)throw new Error(`Cannot create linspace array with dtype ${n}`);let a=new o(e),i=(t-r)/(e-1);if(B(n))for(let u=0;u<e;u++)a[u]=BigInt(Math.round(r+u*i));else if(n==="bool")for(let u=0;u<e;u++)a[u]=r+u*i!==0?1:0;else for(let u=0;u<e;u++)a[u]=r+u*i;let s=N.fromData(a,[e],n);return new _(s)}function sf(r,t,e=50,n=10,o=tr){if(e<0)throw new Error("num must be non-negative");if(e===0)return L([],o);if(e===1)return L([Math.pow(n,r)],o);let a=j(o);if(!a)throw new Error(`Cannot create logspace array with dtype ${o}`);let i=new a(e),s=(t-r)/(e-1);if(B(o))for(let c=0;c<e;c++){let l=r+c*s;i[c]=BigInt(Math.round(Math.pow(n,l)))}else if(o==="bool")for(let c=0;c<e;c++){let l=r+c*s;i[c]=Math.pow(n,l)!==0?1:0}else for(let c=0;c<e;c++){let l=r+c*s;i[c]=Math.pow(n,l)}let u=N.fromData(i,[e],o);return new _(u)}function uf(r,t,e=50,n=tr){if(e<0)throw new Error("num must be non-negative");if(r===0||t===0)throw new Error("Geometric sequence cannot include zero");if(e===0)return L([],n);if(e===1)return L([r],n);let o=Math.sign(r),a=Math.sign(t);if(o!==a)throw new Error("Geometric sequence cannot contain both positive and negative values");let i=j(n);if(!i)throw new Error(`Cannot create geomspace array with dtype ${n}`);let s=new i(e),u=Math.log(Math.abs(r)),l=(Math.log(Math.abs(t))-u)/(e-1);if(B(n))for(let d=0;d<e;d++){let y=o*Math.exp(u+d*l);s[d]=BigInt(Math.round(y))}else if(n==="bool")for(let d=0;d<e;d++){let y=o*Math.exp(u+d*l);s[d]=y!==0?1:0}else for(let d=0;d<e;d++){let y=o*Math.exp(u+d*l);s[d]=y}let m=N.fromData(s,[e],n);return new _(m)}function pu(r,t,e=0,n=tr){let o=t??r,a=Br([r,o],n),i=a.data;if(B(n)){let s=i;for(let u=0;u<r;u++){let c=u+e;c>=0&&c<o&&(s[u*o+c]=BigInt(1))}}else{let s=i;for(let u=0;u<r;u++){let c=u+e;c>=0&&c<o&&(s[u*o+c]=1)}}return a}function yu(r,t=tr){return Br(r,t)}function du(r,t,e){let n=e;n||(typeof t=="bigint"?n="int64":typeof t=="boolean"?n="bool":Number.isInteger(t)?n="int32":n=tr);let o=j(n);if(!o)throw new Error(`Cannot create full array with dtype ${n}`);let a=r.reduce((u,c)=>u*c,1),i=new o(a);if(B(n)){let u=typeof t=="bigint"?t:BigInt(Math.round(Number(t)));i.fill(u)}else n==="bool"?i.fill(t?1:0):i.fill(Number(t));let s=N.fromData(i,r,n);return new _(s)}function cf(r,t=tr){return pu(r,r,0,t)}function xt(r,t){return r instanceof _?!t||r.dtype===t?r:r.astype(t):L(r,t)}function lf(r,t){let e=xt(r,t);for(let n=0;n<e.size;n++)if(!isFinite(Number(e.data[n])))throw new Error("array must not contain infs or NaNs");return e}function ff(r,t,e){let n=Array.isArray(e)?e:e?[e]:[],o=new Set(n.map(i=>{let s=i.toUpperCase();return s==="C_CONTIGUOUS"||s==="CONTIGUOUS"?"C":s==="F_CONTIGUOUS"||s==="FORTRAN"?"F":s==="WRITEABLE"?"W":s==="ENSUREARRAY"?"E":s==="OWNDATA"?"O":s})),a=r;return t&&r.dtype!==t&&(a=r.astype(t)),(o.has("C")||o.has("W")||o.has("O"))&&a===r&&(a=r.copy()),a}function mf(r){return r.copy()}function pf(r,t){return Br(Array.from(r.shape),t??r.dtype)}function yf(r,t){return lu(Array.from(r.shape),t??r.dtype)}function df(r,t){return yu(Array.from(r.shape),t??r.dtype)}function gf(r,t,e){return du(Array.from(r.shape),t,e??r.dtype)}function Af(r,t){return xt(r,t)}function bf(r,t){let e=xt(r,t);return e.flags.C_CONTIGUOUS?e:e.copy()}function hf(r,t){return xt(r,t).copy()}function gu(r,t=0){if(r.ndim===1){let e=r.size,n=e+Math.abs(t),o=Br([n,n],r.dtype);for(let a=0;a<e;a++){let i=t>=0?a:a-t,s=t>=0?a+t:a;o.set([i,s],r.get([a]))}return o}else if(r.ndim===2){let[e,n]=r.shape,o,a,i;if(t>=0?(o=0,a=t,i=Math.min(e,n-t)):(o=-t,a=0,i=Math.min(e+t,n)),i<=0)return Br([0],r.dtype);let s=j(r.dtype),u=new s(i);for(let l=0;l<i;l++){let m=r.get([o+l,a+l]);B(r.dtype)?u[l]=typeof m=="bigint"?m:BigInt(m):u[l]=m}let c=N.fromData(u,[i],r.dtype);return new _(c)}else throw new Error("Input must be 1-D or 2-D")}function Sf(r,t=0){let e=r.flatten();return gu(e,t)}function Df(r,t,e=tr){let n=t.reduce((c,l)=>c*l,1),o=j(e);if(!o)throw new Error(`Cannot create array with dtype ${e}`);let a=new o(n),i=t.length,s=new Array(i).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=i-1;m>=0&&(s[m]++,!(s[m]<t[m]));m--)s[m]=0}let u=N.fromData(a,t,e);return new _(u)}function Nf(...r){let t=[],e="xy";for(let s of r)s instanceof _?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,i=[];for(let s=0;s<t.length;s++){let u=t[s],c=u.size,l=new Array(a).fill(1);l[s]=c;let m=u.reshape(...l),d=Gt(m.storage,o),y=_._fromStorage(d.copy());i.push(y)}return e==="xy"&&i.length>=2&&([i[0],i[1]]=[i[1],i[0]]),i}function xf(r,t,e=0,n=tr){let o=t??r,a=Br([r,o],n);for(let i=0;i<r;i++)for(let s=0;s<=i+e&&s<o;s++)s>=0&&a.set([i,s],1);return a}function wf(r,t=0){if(r.ndim<2)throw new Error("Input must have at least 2 dimensions");let e=r.copy(),n=e.shape,o=n[n.length-2],a=n[n.length-1],i=n.slice(0,-2).reduce((s,u)=>s*u,1);for(let s=0;s<i;s++)for(let u=0;u<o;u++)for(let c=0;c<a;c++)if(c>u+t){let l=[],m=s;for(let d=n.length-3;d>=0;d--)l.unshift(m%n[d]),m=Math.floor(m/n[d]);l.push(u,c),e.set(l,0)}return e}function If(r,t=0){if(r.ndim<2)throw new Error("Input must have at least 2 dimensions");let e=r.copy(),n=e.shape,o=n[n.length-2],a=n[n.length-1],i=n.slice(0,-2).reduce((s,u)=>s*u,1);for(let s=0;s<i;s++)for(let u=0;u<o;u++)for(let c=0;c<a;c++)if(c<u+t){let l=[],m=s;for(let d=n.length-3;d>=0;d--)l.unshift(m%n[d]),m=Math.floor(m/n[d]);l.push(u,c),e.set(l,0)}return e}function zf(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=Br([n,o],r.dtype);for(let i=0;i<n;i++){let s=r.get([i]);for(let u=0;u<o;u++){let c=e?u:o-1-u;a.set([i,u],Math.pow(s,c))}}return a}function _f(r,t=tr,e=-1,n=0){let o,a=n;r instanceof ArrayBuffer?o=r:(o=r.buffer,a+=r.byteOffset);let i=Bf(t),s=o.byteLength-a,u=Math.floor(s/i),c=e<0?u:Math.min(e,u);if(c<=0)return L([],t);let l=j(t);if(!l)throw new Error(`Unsupported dtype: ${t}`);let m=new l(o,a,c),d=N.fromData(m,[c],t);return new _(d)}function vf(r,t=tr,e=-1){let n=[],o=0;for(let a of r){if(e>=0&&o>=e)break;n.push(a),o++}return L(n,t)}function Ff(r,t=tr,e=-1){let n=[],o=0;for(let a of r){if(e>=0&&o>=e)break;n.push(a),o++}return L(n,t)}function Mf(r,t=tr,e=-1,n=""){let o;n===""?o=r.trim().split(/\s+/):o=r.split(n);let a=[],i=0;for(let s of o){if(e>=0&&i>=e)break;let u=s.trim();u!==""&&(B(t)?a.push(BigInt(u)):a.push(parseFloat(u)),i++)}return L(a,t)}function Bf(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 Ef(r){return r.sqrt()}function Au(r,t){return r.power(t)}function Tf(r){return r.exp()}function Of(r){return r.exp2()}function Cf(r){return r.expm1()}function Uf(r){return r.log()}function $f(r){return r.log2()}function Rf(r){return r.log10()}function kf(r){return r.log1p()}function qf(r,t){return r.logaddexp(t)}function Vf(r,t){return r.logaddexp2(t)}function bu(r){return r.absolute()}function Pf(r){return r.negative()}function jf(r){return r.sign()}function Lf(r,t){return r.mod(t)}function hu(r,t){return r.divide(t)}function Wf(r,t){return r.floor_divide(t)}function Gf(r){return r.positive()}function Zf(r){return r.reciprocal()}function Yf(r,t){return r.dot(t)}function Hf(r){return r.trace()}function Xf(r,t=0,e=0,n=1){let o=Pe(r.storage,t,e,n);return _._fromStorage(o)}function Jf(r,t){let e=Sa(r.storage,t.storage);return _._fromStorage(e)}function Qf(r,t){return r.transpose(t)}function Kf(r,t){return r.inner(t)}function rm(r,t){return r.outer(t)}function tm(r,t,e=2){return r.tensordot(t,e)}function em(r){return r.sin()}function nm(r){return r.cos()}function om(r){return r.tan()}function Su(r){return r.arcsin()}function Du(r){return r.arccos()}function Nu(r){return r.arctan()}function xu(r,t){return r.arctan2(t)}function am(r,t){return r.hypot(t)}function sm(r){return r.degrees()}function im(r){return r.radians()}function um(r){return r.radians()}function cm(r){return r.degrees()}function lm(r){return r.sinh()}function fm(r){return r.cosh()}function mm(r){return r.tanh()}function wu(r){return r.arcsinh()}function Iu(r){return r.arccosh()}function zu(r){return r.arctanh()}function pm(r,t,e){return r.swapaxes(t,e)}function ym(r,t,e){return r.moveaxis(t,e)}function Pr(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 _._fromStorage(n)}function dm(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=Ho(e,t);return _._fromStorage(n)}function _u(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 _._fromStorage(e)}function gm(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=$e(t);return _._fromStorage(e)}function Am(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=Jo(t);return _._fromStorage(e)}function bm(r,t=0){return Pr(r,t)}function hm(r,t=0){return ya(r.storage,t).map(n=>_._fromStorage(n))}function Sm(r){let t=r.map(n=>n.storage),e=da(t);return _._fromStorage(e)}function Dm(r,t,e=0){return Qo(r.storage,t,e).map(o=>_._fromStorage(o,r.base??r))}function Nm(r,t,e=0){return dt(r.storage,t,e).map(o=>_._fromStorage(o,r.base??r))}function xm(r,t){return ra(r.storage,t).map(n=>_._fromStorage(n,r.base??r))}function wm(r,t){return ta(r.storage,t).map(n=>_._fromStorage(n,r.base??r))}function Im(r,t){let e=ea(r.storage,t);return _._fromStorage(e)}function zm(r,t,e){return r.repeat(t,e)}function _m(r){return r.ravel()}function vm(r){return r.flatten()}function Fm(r,t){r.fill(t)}function Mm(r,...t){return r.item(...t)}function Bm(r){return r.tolist()}function Em(r){return r.tobytes()}function Tm(r,t=!1){return r.byteswap(t)}function Om(r,t){return r.view(t)}function Cm(r,t,e="",n=""){r.tofile(t,e,n)}function Um(r,t){return r.reshape(...t)}function $m(r,t){return r.squeeze(t)}function Rm(r,t){return r.expand_dims(t)}function zn(r,t){let e=oa(r.storage,t);return _._fromStorage(e)}function km(r){if(r.ndim<2)throw new Error("Input must be at least 2-D");return zn(r,1)}function qm(r){if(r.ndim<2)throw new Error("Input must be at least 2-D");return zn(r,0)}function Vm(r,t=1,e=[0,1]){let n=aa(r.storage,t,e);return _._fromStorage(n)}function Pm(r,t,e){let n=sa(r.storage,t,e);return _._fromStorage(n)}function jm(r,t,e=0){let n=ia(r.storage,t,e);return _._fromStorage(n,r.base??r)}function Lm(...r){let t=r.map(o=>o.storage),n=fa(t).map((o,a)=>o===t[a]?r[a]:_._fromStorage(o));return n.length===1?n[0]:n}function Wm(...r){let t=r.map(o=>o.storage),n=ma(t).map((o,a)=>o===t[a]?r[a]:_._fromStorage(o));return n.length===1?n[0]:n}function Gm(...r){let t=r.map(o=>o.storage),n=pa(t).map((o,a)=>o===t[a]?r[a]:_._fromStorage(o));return n.length===1?n[0]:n}function Zm(r,t){return ua(r.storage,t).map(n=>_._fromStorage(n,r.base??r))}function Ym(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=ca(t);return _._fromStorage(e)}function Hm(r){return _u(r)}function Xm(r,t){let e=la(r.storage,t);return _._fromStorage(e)}function Jm(r,t,e){let n=t instanceof _?t:L(t,r.dtype);if(e===void 0){let o=r.flatten(),a=n.flatten();return Pr([o,a])}return Pr([r,n],e)}function Qm(r,t,e){let n=r.dtype;if(e===void 0){let y=r.flatten(),p=(Array.isArray(t)?t:[t]).map(S=>S<0?y.size+S:S),g=[];for(let S=0;S<y.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 D=y.get([g[S]]);B(n)?b[S]=typeof D=="bigint"?D:BigInt(D):b[S]=D}let A=N.fromData(b,[g.length],n);return new _(A)}let o=r.shape,a=o.length,i=e<0?a+e:e;if(i<0||i>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);let s=o[i],u=Array.isArray(t)?t:[t],c=new Set(u.map(y=>y<0?s+y:y)),l=[],m=0;for(let y=0;y<=s;y++)(c.has(y)||y===s)&&(y>m&&l.push([m,y]),m=y+1);if(l.length===0){let y=[...o];return y[i]=0,Br(y,n)}let d=[];for(let[y,f]of l){let p=o.map(()=>":");p[i]=`${y}:${f}`,d.push(r.slice(...p))}return Pr(d,i)}function Km(r,t,e,n){let o=e instanceof _?e:L(e,r.dtype);if(n===void 0){let m=r.flatten(),d=o.flatten(),y=t<0?m.size+t:t;if(y<0||y>m.size)throw new Error(`index ${t} is out of bounds for array of size ${m.size}`);let f=y>0?m.slice(`0:${y}`):null,p=y<m.size?m.slice(`${y}:`):null,g=[];return f&&g.push(f),g.push(d),p&&g.push(p),Pr(g)}let a=r.shape,i=a.length,s=n<0?i+n:n;if(s<0||s>=i)throw new Error(`axis ${n} is out of bounds for array of dimension ${i}`);let u=a[s],c=t<0?u+t:t;if(c<0||c>u)throw new Error(`index ${t} is out of bounds for axis ${n} with size ${u}`);let l=[];if(c>0){let m=a.map(()=>":");m[s]=`0:${c}`,l.push(r.slice(...m))}if(l.push(o),c<u){let m=a.map(()=>":");m[s]=`${c}:`,l.push(r.slice(...m))}return Pr(l,s)}function rp(r,t,e="constant",n=0){let o=r.shape,a=o.length,i=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 u=o.map((p,g)=>p+s[g][0]+s[g][1]),c=u.reduce((p,g)=>p*g,1),l=j(i),m=new l(c),d=B(i);e==="constant"&&(d?m.fill(BigInt(n)):m.fill(n));let y=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],D=y[A]-S;if(D<0||D>=o[A]){g=!1;break}h.push(D)}let b;if(g)b=r.get(h);else if(e==="constant"){for(let A=a-1;A>=0&&(y[A]++,!(y[A]<u[A]));A--)y[A]=0;continue}else{let A=[];for(let S=0;S<a;S++){let[D]=s[S],w=y[S]-D,x=o[S];w<0?e==="edge"?w=0:e==="reflect"?(w=-w,w>=x&&(w=x-1)):e==="symmetric"?(w=-w-1,w>=x&&(w=x-1),w<0&&(w=0)):e==="wrap"&&(w=(w%x+x)%x):w>=x&&(e==="edge"?w=x-1:e==="reflect"?(w=2*x-w-2,w<0&&(w=0)):e==="symmetric"?(w=2*x-w-1,w<0&&(w=0)):e==="wrap"&&(w=w%x)),A.push(Math.max(0,Math.min(x-1,w)))}b=r.get(A)}d?m[p]=typeof b=="bigint"?b:BigInt(Number(b)):m[p]=Number(b);for(let A=a-1;A>=0&&(y[A]++,!(y[A]<u[A]));A--)y[A]=0}let f=N.fromData(m,u,i);return new _(f)}function tp(r,t){let e=Gt(r.storage,t);return _._fromStorage(e,r.base??r)}function ep(...r){let t=r.map(n=>n.storage);return bs(t).map((n,o)=>_._fromStorage(n,r[o].base??r[o]))}function np(...r){return de(...r)}function op(r,t,e){return r.take(t,e)}function ap(r,t,e){r.put(t,e)}function sp(r,t,e=0){return r.iindex(t,e)}function ip(r,t,e){return r.bindex(t,e)}function up(r,t,e){if(e!==void 0)throw new Error("copyto with where parameter is not yet implemented");let n=r.storage,o=r.shape,a=r.size,i=r.dtype;if(typeof t=="number"||typeof t=="bigint"){r.fill(t);return}let s=t.storage,u=t.shape,c=Sr([u,o]);if(!c)throw new Error(`could not broadcast input array from shape (${u.join(",")}) into shape (${o.join(",")})`);if(c.length!==o.length||!c.every((m,d)=>m===o[d]))throw new Error(`could not broadcast input array from shape (${u.join(",")}) into shape (${o.join(",")})`);let l=Gt(s,o);if(B(i))for(let m=0;m<a;m++){let d=l.iget(m),y=typeof d=="bigint"?d:BigInt(Math.round(Number(d)));n.iset(m,y)}else if(i==="bool")for(let m=0;m<a;m++){let d=l.iget(m);n.iset(m,d?1:0)}else for(let m=0;m<a;m++){let d=l.iget(m);n.iset(m,Number(d))}}function cp(r,t){let e=t.map(o=>o.storage),n=Ds(r.storage,e);return _._fromStorage(n)}function lp(r,t,e=!1){return Ns(r.storage,t.storage,e)}function fp(r,t){return Lo(r.storage,t.storage)}function vu(r,t){return _._fromStorage(ze(r.storage,t))}function Fu(r,t){return _._fromStorage(_e(r.storage,t))}function Mu(r,t,e=!1){return r.max(t,e)}function Bu(r,t,e=!1){return r.min(t,e)}function mp(r,t,e=!1){let n=ve(r.storage,t,e);return typeof n=="number"||n instanceof E?n:_._fromStorage(n)}function pp(r,t,e=!1){let n=Fe(r.storage,t,e);return typeof n=="number"?n:_._fromStorage(n)}function yp(r,t,e,n=!1){let o=Me(r.storage,t,e,n);return typeof o=="number"?o:_._fromStorage(o)}function dp(r,t,e,n=!1){let o=Jr(r.storage,t,e,n);return typeof o=="number"?o:_._fromStorage(o)}function gp(r,t,e,n=!1){let o=e?e.storage:void 0,a=it(r.storage,t,o,n);return typeof a=="number"||a instanceof E?a:_._fromStorage(a)}function Ap(r,t,e=!1){let n=qt(r.storage,t,e);return typeof n=="number"||n instanceof E?n:_._fromStorage(n)}function bp(r,t,e=!1){let n=Vt(r.storage,t,e);return typeof n=="number"||n instanceof E?n:_._fromStorage(n)}function hp(r,t,e=!1){let n=Pt(r.storage,t,e);return typeof n=="number"||n instanceof E?n:_._fromStorage(n)}function Sp(r,t,e=0,n=!1){let o=Xr(r.storage,t,e,n);return typeof o=="number"?o:_._fromStorage(o)}function Dp(r,t,e=0,n=!1){let o=Be(r.storage,t,e,n);return typeof o=="number"?o:_._fromStorage(o)}function Np(r,t,e=!1){let n=ut(r.storage,t,e);return typeof n=="number"||n instanceof E?n:_._fromStorage(n)}function xp(r,t,e=!1){let n=ct(r.storage,t,e);return typeof n=="number"||n instanceof E?n:_._fromStorage(n)}function wp(r,t){let e=lt(r.storage,t);return typeof e=="number"?e:_._fromStorage(e)}function Ip(r,t){let e=ft(r.storage,t);return typeof e=="number"?e:_._fromStorage(e)}function zp(r,t){return _._fromStorage(Ee(r.storage,t))}function _p(r,t){return _._fromStorage(Te(r.storage,t))}function vp(r,t,e=!1){let n=jt(r.storage,t,e);return typeof n=="number"?n:_._fromStorage(n)}function Fp(r,t,e,n=!1){let o=mt(r.storage,t,e,n);return typeof o=="number"?o:_._fromStorage(o)}function Mp(r,t,e,n=!1){let o=Oe(r.storage,t,e,n);return typeof o=="number"?o:_._fromStorage(o)}function Bp(r){return r.cbrt()}function Ep(r){return r.fabs()}function Tp(r,t){return r.divmod(t)}function Op(r){return r.square()}function Cp(r,t){return r.remainder(t)}function Up(r,t){return r.heaviside(t)}function $p(r,t){let e=typeof t=="number"?t:t.storage;return _._fromStorage(bo(r.storage,e))}function Rp(r,t){let e=typeof t=="number"?t:t.storage;return _._fromStorage(ho(r.storage,e))}function kp(r){let[t,e]=So(r.storage);return[_._fromStorage(t),_._fromStorage(e)]}function qp(r,t){let e=typeof t=="number"?t:t.storage;return _._fromStorage(Do(r.storage,e))}function Vp(r,t){let e=typeof t=="number"?t:t.storage;return _._fromStorage(No(r.storage,e))}function Pp(r,t){let e=typeof t=="number"?t:t.storage;return _._fromStorage(xo(r.storage,e))}function jp(r){let[t,e]=wo(r.storage);return[_._fromStorage(t),_._fromStorage(e)]}function Lp(r,t,e){let n=t instanceof _?t.storage:t,o=e instanceof _?e.storage:e;return _._fromStorage(Io(r.storage,n,o))}function Wp(r,t){let e=t instanceof _?t.storage:t;return _._fromStorage(zo(r.storage,e))}function Gp(r,t){let e=t instanceof _?t.storage:t;return _._fromStorage(_o(r.storage,e))}function Zp(r,t){let e=t instanceof _?t.storage:t;return _._fromStorage(vo(r.storage,e))}function Yp(r,t){let e=t instanceof _?t.storage:t;return _._fromStorage(Fo(r.storage,e))}function Hp(r,t=0,e,n){return _._fromStorage(Mo(r.storage,t,e,n))}function Xp(r,t,e,n,o){return _._fromStorage(Bo(r.storage,t.storage,e.storage,n,o))}function Jp(r,t=Math.PI,e=-1,n=2*Math.PI){return _._fromStorage(Eo(r.storage,t,e,n))}function Qp(r){return _._fromStorage(To(r.storage))}function Kp(r){return _._fromStorage(Oo(r.storage))}function ry(r,t){return r.bitwise_and(t)}function ty(r,t){return r.bitwise_or(t)}function ey(r,t){return r.bitwise_xor(t)}function ny(r){return r.bitwise_not()}function oy(r){return r.invert()}function ay(r,t){return r.left_shift(t)}function sy(r,t){return r.right_shift(t)}function iy(r,t=-1,e="big"){let n=Zs(r.storage,t,e);return _._fromStorage(n)}function uy(r,t=-1,e=-1,n="big"){let o=Ys(r.storage,t,e,n);return _._fromStorage(o)}function cy(r){return _._fromStorage(Hs(r.storage))}function ly(r){return _._fromStorage(Xs(r.storage))}function fy(r,t){let e=typeof t=="number"?t:t.storage;return _._fromStorage(Js(r.storage,e))}function my(r,t){let e=typeof t=="number"?t:t.storage;return _._fromStorage(Qs(r.storage,e))}function py(r,t){return r.logical_and(t)}function yy(r,t){return r.logical_or(t)}function dy(r){return r.logical_not()}function gy(r,t){return r.logical_xor(t)}function Ay(r){return r.isfinite()}function by(r){return r.isinf()}function hy(r){return r.isnan()}function Sy(r){return r.isnat()}function Dy(r,t){return r.copysign(t)}function Ny(r){return r.signbit()}function xy(r,t){return r.nextafter(t)}function wy(r){return r.spacing()}function Iy(r){return _._fromStorage(pi(r.storage))}function zy(r){return yi(r.storage)}function _y(r){return _._fromStorage(di(r.storage))}function vy(r){return gi(r.storage)}function Fy(r){return _._fromStorage(zi(r.storage))}function My(r){return _._fromStorage(_i(r.storage))}function Eu(r){return _._fromStorage(vi(r.storage))}function Ey(r,t=!1){return _._fromStorage(Fi(r.storage,t))}function Ty(r){return _._fromStorage(Ai(r.storage))}function Oy(r){return _._fromStorage(bi(r.storage))}function Cy(r){return hi(r.storage)}function Uy(r,t=100){return _._fromStorage(Si(r.storage,t))}function $y(r){return Di(r)}function Ry(r){return Ni(r)}function ky(r,t){return xi(r,t)}function qy(r,t){return wi(r,t)}function Vy(r,...t){let e=t.map(o=>o.storage),n=ha(r,...e);return typeof n=="number"||typeof n=="bigint"||n instanceof E?n:_._fromStorage(n)}function Py(r,t){return Ea(r.storage,t.storage)}function jy(r,t,e=-1){let n=He(r.storage,t.storage,e);return typeof n=="number"||typeof n=="bigint"||n instanceof E?n:_._fromStorage(n)}function Ly(r){return _._fromStorage(Xe(r.storage))}function Wy(r,t){return _._fromStorage(Ta(r.storage,t))}function Gy(r,t){return _._fromStorage(Oa(r.storage,t.storage))}function Zy(r,t){return _._fromStorage(Ca(r.storage,t.storage))}function Hy(r,t,e){return _._fromStorage(xs(r.storage,t.storage,e))}function Xy(r,t,e,n){ws(r.storage,t.storage,e.storage,n)}function Jy(r,t,e){let n=e instanceof _?e.storage:e;Is(r.storage,t.storage,n)}function Qy(r,t,e){return _._fromStorage(Je(r.storage,t.storage,e))}function Ky(r,t,e=0){let n=r.map(a=>a.storage),o=t.map(a=>a.storage);return _._fromStorage(zs(n,o,e))}function rd(r,t,e){_s(r.storage,t.storage,e.storage)}function td(r,t,e=!1){let n=typeof t=="number"?t:t.storage;Us(r.storage,n,e)}function ed(r,t=2){return Qe(r,t).map(n=>_._fromStorage(n))}function nd(r){return vs(r.storage).map(e=>_._fromStorage(e))}function od(r,t=0,e){return Ke(r,t,e).map(o=>_._fromStorage(o))}function ad(r,t=0){return Fs(r.storage,t).map(n=>_._fromStorage(n))}function sd(r,t=0,e){return rn(r,t,e).map(o=>_._fromStorage(o))}function id(r,t=0){return Ms(r.storage,t).map(n=>_._fromStorage(n))}function ud(r,t,e=0){return Bs(r,(a,i)=>t(a,i).storage,e).map(a=>_._fromStorage(a))}function cd(r,t="int32"){return _._fromStorage(Es(r,t))}function ld(...r){return Ts(...r.map(e=>e.storage)).map(e=>_._fromStorage(e))}function fd(r,t,e="raise"){let n=r.map(o=>o.storage);return _._fromStorage(Os(n,t,e))}function md(r,t,e="C"){let n=r instanceof _?r.storage:r;return Cs(n,t,e).map(a=>_._fromStorage(a))}function pd(r,t=-1){return _._fromStorage(sn(r.storage,t))}function yd(r,t=-1){return _._fromStorage(un(r.storage,t))}function dd(r){let t=r.map(e=>e.storage);return _._fromStorage(Bi(t))}function gd(r,t,e=-1){return _._fromStorage(cn(r.storage,t,e))}function Ad(r,t,e=-1){return _._fromStorage(ln(r.storage,t,e))}function bd(r){return _._fromStorage(Ei(r.storage))}function hd(r){return Xt(r.storage).map(e=>_._fromStorage(e))}function Sd(r){return _._fromStorage(fn(r.storage))}function Dd(r){return _._fromStorage(Ti(r.storage))}function Nd(r,t,e){let n=Oi(r.storage,t?.storage,e?.storage);return Array.isArray(n)?n.map(o=>_._fromStorage(o)):_._fromStorage(n)}function xd(r,t,e="left"){return _._fromStorage(mn(r.storage,t.storage,e))}function wd(r,t){return _._fromStorage(Ci(r.storage,t.storage))}function Id(r,t){let e=pn(r.storage,t);return typeof e=="number"?e:_._fromStorage(e)}function _n(r,t=0){return _._fromStorage(yn(r.storage,t))}function zd(r){return _._fromStorage(dn(r.storage))}function _d(r){return _._fromStorage(gn(r.storage))}function vd(r){return _._fromStorage(An(r.storage))}function Fd(r){return _._fromStorage(bn(r.storage))}function Md(r){return _._fromStorage(hn(r.storage))}function Bd(r,t=!1,e=!1,n=!1){let o=yr(r.storage,t,e,n);if(o instanceof N)return _._fromStorage(o);let a={values:_._fromStorage(o.values)};return o.indices&&(a.indices=_._fromStorage(o.indices)),o.inverse&&(a.inverse=_._fromStorage(o.inverse)),o.counts&&(a.counts=_._fromStorage(o.counts)),a}function Ed(r,t){return _._fromStorage(ki(r.storage,t.storage))}function Td(r,t){return _._fromStorage(qi(r.storage,t.storage))}function Od(r,t){return _._fromStorage(Dn(r.storage,t.storage))}function Cd(r,t){return _._fromStorage(Vi(r.storage,t.storage))}function Ud(r,t){return _._fromStorage(Pi(r.storage,t.storage))}function $d(r,t){return _._fromStorage(ji(r.storage,t.storage))}function Rd(r,t="fb"){return _._fromStorage(Li(r.storage,t))}function kd(r){let t=Wi(r.storage);return{values:_._fromStorage(t.values),indices:_._fromStorage(t.indices),inverse_indices:_._fromStorage(t.inverse_indices),counts:_._fromStorage(t.counts)}}function qd(r){let t=Gi(r.storage);return{values:_._fromStorage(t.values),counts:_._fromStorage(t.counts)}}function Vd(r){let t=Zi(r.storage);return{values:_._fromStorage(t.values),inverse_indices:_._fromStorage(t.inverse_indices)}}function Pd(r){return _._fromStorage(Yi(r.storage))}function jd(r,t=1,e=-1){return _._fromStorage(Nn(r.storage,t,e))}function Ld(r,t=null,e=null){return _._fromStorage(Xi(r.storage,t,e))}function Wd(r,t=1,e=null){let n=Ji(r.storage,t,e);return Array.isArray(n)?n.map(o=>_._fromStorage(o)):_._fromStorage(n)}function Gd(r,t,e=-1,n=-1,o=-1){return _._fromStorage(Qi(r.storage,t.storage,e,n,o))}function Zd(r,t,e=0){return _._fromStorage(ru(r.storage,t?.storage,e))}function Yd(r,t,e=!1){return _._fromStorage(tu(r.storage,t.storage,e))}function Hd(r,t=10,e,n=!1,o){let a=eu(r.storage,typeof t=="number"?t:t.storage,e,n,o?.storage);return[_._fromStorage(a.hist),_._fromStorage(a.bin_edges)]}function Xd(r,t,e=10,n,o=!1,a){let i;typeof e=="number"?i=e:Array.isArray(e)&&e.length===2?typeof e[0]=="number"?i=e:i=[e[0].storage,e[1].storage]:i=10;let s=nu(r.storage,t.storage,i,n,o,a?.storage);return[_._fromStorage(s.hist),_._fromStorage(s.x_edges),_._fromStorage(s.y_edges)]}function Jd(r,t=10,e,n=!1,o){let a=ou(r.storage,t,e,n,o?.storage);return[_._fromStorage(a.hist),a.edges.map(i=>_._fromStorage(i))]}function Qd(r,t,e="full"){return _._fromStorage(wn(r.storage,t.storage,e))}function Kd(r,t,e="full"){return _._fromStorage(au(r.storage,t.storage,e))}function rg(r,t,e=!0,n=!1,o){return _._fromStorage(In(r.storage,t?.storage,e,n,o))}function tg(r,t,e=!0){return _._fromStorage(su(r.storage,t?.storage,e))}function eg(r,t=10,e,n){return _._fromStorage(iu(r.storage,t,e,n?.storage))}function ng(r,t,e=1,n=-1){let o=uu(r.storage,t?.storage,e,n);return typeof o=="number"?o:_._fromStorage(o)}function og(r,t,e){let n=o=>{let a=r(_._fromStorage(o));return a instanceof _?a.storage:a};return _._fromStorage($s(e.storage,t,n))}function ag(r,t,e){let n=(o,a)=>r(_._fromStorage(o),a).storage;return _._fromStorage(Rs(t.storage,n,e))}function sg(r,t){return tn(r.storage,t.storage)}function ig(r,t){return ks(r.storage,t.storage)}function ug(r){if(typeof r=="number")return 0;if(r instanceof _)return r.ndim;let t=0,e=r;for(;Array.isArray(e);)t++,e=e[0];return t}function Tu(r){if(typeof r=="number")return[];if(r instanceof _)return Array.from(r.shape);let t=[],e=r;for(;Array.isArray(e);)t.push(e.length),e=e[0];return t}function cg(r){return typeof r=="number"?1:r instanceof _?r.size:Tu(r).reduce((e,n)=>e*n,1)}function lg(r,t,e="safe"){let n=r instanceof _?r.dtype:r;if(n===t)return!0;switch(e){case"no":return!1;case"equiv":return n===t;case"safe":return n==="bool"?!0:M(n)?M(t)?$r[n]<=$r[t]:!1:M(t)?!0:(cr[n]==="i"||cr[n]==="u")&&cr[t]==="f"?t==="float32"?["int8","int16","uint8","uint16"].includes(n):t==="float64":cr[n]==="f"&&cr[t]==="f"||(cr[n]==="i"||cr[n]==="u")&&(cr[t]==="i"||cr[t]==="u")?$r[n]<=$r[t]:!1;case"same_kind":{let o=cr[n],a=cr[t];return n==="bool"&&(a==="i"||a==="u"||a==="b")||o===a||(o==="i"||o==="u")&&(a==="i"||a==="u")||o==="f"&&a==="c"}case"unsafe":return!0;default:return!1}}function fg(...r){if(r.length===0)return"float64";let t=!1,e=32;for(let n of r){let o=n.dtype;M(o)?(t=!0,o==="complex128"&&(e=64)):(o==="float64"||o==="int64"||o==="uint64")&&(e=64)}return t?e===64?"complex128":"complex64":e===64?"float64":"float32"}function mg(...r){if(r.length===0)return"float64";let t=r.map(n=>n instanceof _?n.dtype:n),e=t[0];for(let n=1;n<t.length;n++)e=Ou(e,t[n]);return e}function Ou(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 i=M(r)?r:t,s=M(r)?t:r;return i==="complex128"||s==="float64"||s==="int64"||s==="uint64"?"complex128":"complex64"}let e=cr[r]==="f",n=cr[t]==="f";if(e||n){if(r==="float64"||t==="float64")return"float64";if(r==="float32"||t==="float32"){let i=e?t:r;return["int32","int64","uint32","uint64"].includes(i)?"float64":"float32"}}let o=cr[r],a=cr[t];if(o==="i"&&a==="u"||o==="u"&&a==="i"){let i=o==="u"?r:t;if(i==="uint64")return"float64";if(i==="uint32")return"int64";if(i==="uint16")return"int32";if(i==="uint8")return"int16"}return $r[r]>=$r[t]?r:t}function pg(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.isFinite(r)||!Number.isInteger(r)?"float64":r>=0?r<=255?"uint8":r<=65535?"uint16":r<=4294967295?"uint32":"float64":r>=-128&&r<=127?"int8":r>=-32768&&r<=32767?"int16":r>=-2147483648&&r<=2147483647?"int32":"float64"}function yg(r,t){let e=r instanceof _?r.dtype:r;return t==="integer"?["int8","int16","int32","int64","uint8","uint16","uint32","uint64"].includes(e):t==="signedinteger"?["int8","int16","int32","int64"].includes(e):t==="unsignedinteger"?["uint8","uint16","uint32","uint64"].includes(e):t==="floating"?["float32","float64"].includes(e):t==="complexfloating"?["complex64","complex128"].includes(e):t==="number"||t==="numeric"?!["bool"].includes(e):t==="inexact"?["float32","float64","complex64","complex128"].includes(e):e===t}function dg(r){return{bool:"bool",uint8:"uint8",uint16:"uint16",uint32:"uint32",uint64:"uint64",int8:"int8",int16:"int16",int32:"int32",int64:"int64",float32:"float32",float64:"float64",complex64:"complex64",complex128:"complex128"}[r]||r}function gg(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","?":"bool"},o={int8:"b",uint8:"B",int16:"h",uint16:"H",int32:"i",uint32:"I",int64:"l",uint64:"L",float32:"f",float64:"d",complex64:"F",complex128:"D",bool:"?"},a=[];for(let l of r)n[l]&&a.push(n[l]);if(a.length===0)return e;let i=a[0];for(let l=1;l<a.length;l++)i=Ou(i,a[l]);let s=new Set(t),u=o[i]||e;if(s.has(u)||s.size===0)return u;let c="gfdGFD";for(let l of c)if(s.has(l))return l;return e}function Ag(r){let t=r instanceof _?r.toArray().flat():r;if(t.length===0)return L([1]);let e=[1];for(let n of t){let o=new Array(e.length+1).fill(0);for(let a=0;a<e.length;a++)o[a]+=e[a],o[a+1]-=e[a]*n;e=o}return L(e)}function bg(r,t){let e=r instanceof _?r.toArray().flat():r,n=t instanceof _?t.toArray().flat():t,o=Math.max(e.length,n.length),a=new Array(o).fill(0);for(let i=0;i<e.length;i++)a[o-e.length+i]+=e[i];for(let i=0;i<n.length;i++)a[o-n.length+i]+=n[i];return L(a)}function hg(r,t=1){let e=r instanceof _?r.toArray().flat():[...r];for(let n=0;n<t;n++){if(e.length<=1)return L([0]);let o=new Array(e.length-1),a=e.length-1;for(let i=0;i<a;i++)o[i]=e[i]*(a-i);e=o}return L(e)}function Sg(r,t){let e=r instanceof _?r.toArray().flat():[...r],n=t instanceof _?t.toArray().flat():[...t];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[L([0]),L(e)];let o=[],a=[...e];for(;a.length>=n.length;){let i=a[0]/n[0];o.push(i);for(let s=0;s<n.length;s++)a[s]=a[s]-i*n[s];a.shift()}return a.length===0||a.every(i=>Math.abs(i)<1e-14)?[L(o.length>0?o:[0]),L([0])]:[L(o.length>0?o:[0]),L(a)]}function Dg(r,t,e){let n=r.toArray().flat(),o=t.toArray().flat(),a=n.length;if(a!==o.length)throw new Error("x and y must have the same length");if(e<0)throw new Error("Degree must be non-negative");if(a<=e)throw new Error("Need more data points than degree");let i=[];for(let m=0;m<a;m++){let d=[];for(let y=e;y>=0;y--)d.push(Math.pow(n[m],y));i.push(d)}let s=Ng(i),u=Cu(s,i),c=xg(s,o),l=wg(u,c);return L(l)}function Ng(r){let t=r.length,e=r[0].length,n=[];for(let o=0;o<e;o++){let a=[];for(let i=0;i<t;i++)a.push(r[i][o]);n.push(a)}return n}function Cu(r,t){let e=r.length,n=r[0].length,o=t[0].length,a=[];for(let i=0;i<e;i++){let s=[];for(let u=0;u<o;u++){let c=0;for(let l=0;l<n;l++)c+=r[i][l]*t[l][u];s.push(c)}a.push(s)}return a}function xg(r,t){let e=[];for(let n=0;n<r.length;n++){let o=0;for(let a=0;a<r[n].length;a++)o+=r[n][a]*t[a];e.push(o)}return e}function wg(r,t){let e=r.length,n=r.map((a,i)=>[...a,t[i]]);for(let a=0;a<e;a++){let i=a;for(let s=a+1;s<e;s++)Math.abs(n[s][a])>Math.abs(n[i][a])&&(i=s);[n[a],n[i]]=[n[i],n[a]];for(let s=a+1;s<e;s++){let u=n[s][a]/n[a][a];for(let c=a;c<=e;c++)n[s][c]=n[s][c]-u*n[a][c]}}let o=new Array(e).fill(0);for(let a=e-1;a>=0;a--){o[a]=n[a][e];for(let i=a+1;i<e;i++)o[a]-=n[a][i]*o[i];o[a]/=n[a][a]}return o}function Ig(r,t=1,e=0){let n=r instanceof _?r.toArray().flat():[...r],o=Array.isArray(e)?e:[e];for(let a=0;a<t;a++){let i=n.length,s=new Array(i+1);for(let u=0;u<i;u++)s[u]=n[u]/(i-u);s[i]=o[a]!==void 0?o[a]:0,n=s}return L(n)}function zg(r,t){let e=r instanceof _?r.toArray().flat():r,n=t instanceof _?t.toArray().flat():t,o=e.length+n.length-1,a=new Array(o).fill(0);for(let i=0;i<e.length;i++)for(let s=0;s<n.length;s++)a[i+s]+=e[i]*n[s];return L(a)}function _g(r,t){let e=r instanceof _?r.toArray().flat():r,n=t instanceof _?t.toArray().flat():t,o=Math.max(e.length,n.length),a=new Array(o).fill(0);for(let i=0;i<e.length;i++)a[o-e.length+i]+=e[i];for(let i=0;i<n.length;i++)a[o-n.length+i]-=n[i];return L(a)}function vg(r,t){let e=r instanceof _?r.toArray().flat():r,n=i=>{let s=0;for(let u of e)s=s*i+u;return s};if(typeof t=="number")return n(t);let a=(t instanceof _?t.toArray().flat():t).map(n);return L(a)}function Fg(r){let t=r instanceof _?r.toArray().flat():[...r];for(;t.length>1&&t[0]===0;)t.shift();let e=t.length-1;if(e<=0)return L([]);let n=t[0],o=t.map(u=>u/n);if(e===1)return L([-o[1]]);if(e===2){let c=o[1],l=o[2],m=c*c-4*l;if(m>=0){let d=Math.sqrt(m);return L([(-c+d)/2,(-c-d)/2])}else{let d=-c/2;return L([d,d])}}let a=e,i=[];for(let u=0;u<a;u++){let c=new Array(a).fill(0);u<a-1&&(c[u+1]=1),i.push(c)}for(let u=0;u<a;u++)i[a-1][u]=-o[a-u];let s=Mg(i);return L(s)}function Mg(r){let t=r.length,e=[...r.map(i=>[...i])],n=100,o=1e-10;for(let i=0;i<n;i++){let{Q:s,R:u}=Bg(e);e=Cu(u,s);let c=0;for(let l=1;l<t;l++)c=Math.max(c,Math.abs(e[l][l-1]));if(c<o)break}let a=[];for(let i=0;i<t;i++)a.push(e[i][i]);return a}function Bg(r){let t=r.length,e=r.map(o=>[...o]),n=Array.from({length:t},()=>new Array(t).fill(0));for(let o=0;o<t;o++){for(let i=0;i<o;i++){let s=0;for(let u=0;u<t;u++)s+=e[u][i]*r[u][o];n[i][o]=s;for(let u=0;u<t;u++)e[u][o]=e[u][o]-s*e[u][i]}let a=0;for(let i=0;i<t;i++)a+=e[i][o]*e[i][o];if(a=Math.sqrt(a),n[o][o]=a,a>1e-14)for(let i=0;i<t;i++)e[i][o]=e[i][o]/a}return{Q:e,R:n}}var _,By,Yy,$r,cr,wt=G(()=>{"use strict";Qn();Q();xr();K();Ut();Co();Wo();Zo();Re();Va();Ka();ls();As();nn();Ks();Ii();Mi();Ui();Ri();Hi();Ki();cu();nn();_=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 Wr(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,i)=>{let s=a;if(s<0&&(s=this.shape[i]+s),s<0||s>=this.shape[i])throw new Error(`Index ${a} is out of bounds for axis ${i} with size ${this.shape[i]}`);return s}),o=this.dtype;if(M(o))this._storage.set(n,e);else if(B(o)){let a=e instanceof E?e.re:Number(e),i=typeof e=="bigint"?e:BigInt(Math.round(a));this._storage.set(n,i)}else if(o==="bool"){let i=(e instanceof E?e.re:Number(e))?1:0;this._storage.set(n,i)}else{let a=e instanceof E?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,i=j(t);if(!i)throw new Error(`Cannot convert to dtype ${t}`);let s=new i(a),u=this.data;if(B(n)&&!B(t)){let l=u;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=u;for(let m=0;m<a;m++)s[m]=BigInt(Math.round(Number(l[m])))}else if(t==="bool"){let l=u;for(let m=0;m<a;m++)s[m]=l[m]!==0?1:0}else if(n==="bool"&&!B(t)){let l=u;for(let m=0;m<a;m++)s[m]=l[m]}else if(!B(n)&&!B(t)){let l=u;for(let m=0;m<a;m++)s[m]=l[m]}else{let l=u;for(let m=0;m<a;m++)s[m]=l[m]}let c=N.fromData(s,o,t);return new r(c)}add(t){let e=typeof t=="number"?t:t._storage,n=eo(this._storage,e);return r._fromStorage(n)}subtract(t){let e=typeof t=="number"?t:t._storage,n=no(this._storage,e);return r._fromStorage(n)}multiply(t){let e=typeof t=="number"?t:t._storage,n=oo(this._storage,e);return r._fromStorage(n)}divide(t){let e=typeof t=="number"?t:t._storage,n=ao(this._storage,e);return r._fromStorage(n)}mod(t){let e=typeof t=="number"?t:t._storage,n=Rt(this._storage,e);return r._fromStorage(n)}floor_divide(t){let e=typeof t=="number"?t:t._storage,n=Ae(this._storage,e);return r._fromStorage(n)}positive(){let t=co(this._storage);return r._fromStorage(t)}reciprocal(){let t=lo(this._storage);return r._fromStorage(t)}sqrt(){let t=Pa(this._storage);return r._fromStorage(t)}power(t){let e=typeof t=="number"?t:t._storage,n=ja(this._storage,e);return r._fromStorage(n)}exp(){let t=La(this._storage);return r._fromStorage(t)}exp2(){let t=Wa(this._storage);return r._fromStorage(t)}expm1(){let t=Ga(this._storage);return r._fromStorage(t)}log(){let t=Za(this._storage);return r._fromStorage(t)}log2(){let t=Ya(this._storage);return r._fromStorage(t)}log10(){let t=Ha(this._storage);return r._fromStorage(t)}log1p(){let t=Xa(this._storage);return r._fromStorage(t)}logaddexp(t){let e=typeof t=="number"?t:t._storage,n=Ja(this._storage,e);return r._fromStorage(n)}logaddexp2(t){let e=typeof t=="number"?t:t._storage,n=Qa(this._storage,e);return r._fromStorage(n)}absolute(){let t=so(this._storage);return r._fromStorage(t)}negative(){let t=io(this._storage);return r._fromStorage(t)}sign(){let t=uo(this._storage);return r._fromStorage(t)}around(t=0){let e=yn(this._storage,t);return r._fromStorage(e)}round(t=0){return this.around(t)}ceil(){let t=dn(this._storage);return r._fromStorage(t)}fix(){let t=gn(this._storage);return r._fromStorage(t)}floor(){let t=An(this._storage);return r._fromStorage(t)}rint(){let t=bn(this._storage);return r._fromStorage(t)}trunc(){let t=hn(this._storage);return r._fromStorage(t)}sin(){let t=rs(this._storage);return r._fromStorage(t)}cos(){let t=ts(this._storage);return r._fromStorage(t)}tan(){let t=es(this._storage);return r._fromStorage(t)}arcsin(){let t=ns(this._storage);return r._fromStorage(t)}arccos(){let t=os(this._storage);return r._fromStorage(t)}arctan(){let t=as(this._storage);return r._fromStorage(t)}arctan2(t){let e=typeof t=="number"?t:t._storage,n=ss(this._storage,e);return r._fromStorage(n)}hypot(t){let e=typeof t=="number"?t:t._storage,n=is(this._storage,e);return r._fromStorage(n)}degrees(){let t=us(this._storage);return r._fromStorage(t)}radians(){let t=cs(this._storage);return r._fromStorage(t)}sinh(){let t=fs(this._storage);return r._fromStorage(t)}cosh(){let t=ms(this._storage);return r._fromStorage(t)}tanh(){let t=ps(this._storage);return r._fromStorage(t)}arcsinh(){let t=ys(this._storage);return r._fromStorage(t)}arccosh(){let t=ds(this._storage);return r._fromStorage(t)}arctanh(){let t=gs(this._storage);return r._fromStorage(t)}greater(t){let e=typeof t=="number"?t:t._storage,n=$o(this._storage,e);return r._fromStorage(n)}greater_equal(t){let e=typeof t=="number"?t:t._storage,n=Ro(this._storage,e);return r._fromStorage(n)}less(t){let e=typeof t=="number"?t:t._storage,n=ko(this._storage,e);return r._fromStorage(n)}less_equal(t){let e=typeof t=="number"?t:t._storage,n=qo(this._storage,e);return r._fromStorage(n)}equal(t){let e=typeof t=="number"?t:t._storage,n=Vo(this._storage,e);return r._fromStorage(n)}not_equal(t){let e=typeof t=="number"?t:t._storage,n=Po(this._storage,e);return r._fromStorage(n)}isclose(t,e=1e-5,n=1e-8){let o=typeof t=="number"?t:t._storage,a=be(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 jo(this._storage,o,e,n)}bitwise_and(t){let e=typeof t=="number"?t:t._storage,n=js(this._storage,e);return r._fromStorage(n)}bitwise_or(t){let e=typeof t=="number"?t:t._storage,n=Ls(this._storage,e);return r._fromStorage(n)}bitwise_xor(t){let e=typeof t=="number"?t:t._storage,n=Ws(this._storage,e);return r._fromStorage(n)}bitwise_not(){let t=Yt(this._storage);return r._fromStorage(t)}invert(){let t=Gs(this._storage);return r._fromStorage(t)}left_shift(t){let e=typeof t=="number"?t:t._storage,n=on(this._storage,e);return r._fromStorage(n)}right_shift(t){let e=typeof t=="number"?t:t._storage,n=an(this._storage,e);return r._fromStorage(n)}logical_and(t){let e=typeof t=="number"?t:t._storage,n=ti(this._storage,e);return r._fromStorage(n)}logical_or(t){let e=typeof t=="number"?t:t._storage,n=ei(this._storage,e);return r._fromStorage(n)}logical_not(){let t=ni(this._storage);return r._fromStorage(t)}logical_xor(t){let e=typeof t=="number"?t:t._storage,n=oi(this._storage,e);return r._fromStorage(n)}isfinite(){let t=ai(this._storage);return r._fromStorage(t)}isinf(){let t=si(this._storage);return r._fromStorage(t)}isnan(){let t=ii(this._storage);return r._fromStorage(t)}isnat(){let t=ui(this._storage);return r._fromStorage(t)}copysign(t){let e=typeof t=="number"?t:t._storage,n=ci(this._storage,e);return r._fromStorage(n)}signbit(){let t=li(this._storage);return r._fromStorage(t)}nextafter(t){let e=typeof t=="number"?t:t._storage,n=fi(this._storage,e);return r._fromStorage(n)}spacing(){let t=mi(this._storage);return r._fromStorage(t)}sum(t,e=!1){let n=st(this._storage,t,e);return typeof n=="number"||n instanceof E?n:r._fromStorage(n)}mean(t,e=!1){let n=kt(this._storage,t,e);return typeof n=="number"||n instanceof E?n:r._fromStorage(n)}max(t,e=!1){let n=Yr(this._storage,t,e);return typeof n=="number"||n instanceof E?n:r._fromStorage(n)}min(t,e=!1){let n=Hr(this._storage,t,e);return typeof n=="number"||n instanceof E?n:r._fromStorage(n)}prod(t,e=!1){let n=Se(this._storage,t,e);return typeof n=="number"||n instanceof E?n:r._fromStorage(n)}argmin(t){let e=De(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}argmax(t){let e=Ne(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}var(t,e=0,n=!1){let o=xe(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=we(this._storage,t,e);return typeof n=="boolean"?n:r._fromStorage(n)}any(t,e=!1){let n=Ie(this._storage,t,e);return typeof n=="boolean"?n:r._fromStorage(n)}cumsum(t){return r._fromStorage(ze(this._storage,t))}cumprod(t){return r._fromStorage(_e(this._storage,t))}ptp(t,e=!1){let n=ve(this._storage,t,e);return typeof n=="number"||n instanceof E?n:r._fromStorage(n)}median(t,e=!1){let n=Fe(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}percentile(t,e,n=!1){let o=Me(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}quantile(t,e,n=!1){let o=Jr(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}average(t,e){let n=it(this._storage,e,t?.storage);return typeof n=="number"||n instanceof E?n:r._fromStorage(n)}nansum(t,e=!1){let n=qt(this._storage,t,e);return typeof n=="number"||n instanceof E?n:r._fromStorage(n)}nanprod(t,e=!1){let n=Vt(this._storage,t,e);return typeof n=="number"||n instanceof E?n:r._fromStorage(n)}nanmean(t,e=!1){let n=Pt(this._storage,t,e);return typeof n=="number"||n instanceof E?n:r._fromStorage(n)}nanvar(t,e=0,n=!1){let o=Xr(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}nanstd(t,e=0,n=!1){let o=Be(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}nanmin(t,e=!1){let n=ut(this._storage,t,e);return typeof n=="number"||n instanceof E?n:r._fromStorage(n)}nanmax(t,e=!1){let n=ct(this._storage,t,e);return typeof n=="number"||n instanceof E?n:r._fromStorage(n)}nanquantile(t,e,n=!1){let o=mt(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}nanpercentile(t,e,n=!1){let o=Oe(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}nanargmin(t){let e=lt(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}nanargmax(t){let e=ft(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}nancumsum(t){return r._fromStorage(Ee(this._storage,t))}nancumprod(t){return r._fromStorage(Te(this._storage,t))}nanmedian(t,e=!1){let n=jt(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}sort(t=-1){return r._fromStorage(sn(this._storage,t))}argsort(t=-1){return r._fromStorage(un(this._storage,t))}partition(t,e=-1){return r._fromStorage(cn(this._storage,t,e))}argpartition(t,e=-1){return r._fromStorage(ln(this._storage,t,e))}nonzero(){return Xt(this._storage).map(e=>r._fromStorage(e))}argwhere(){return r._fromStorage(fn(this._storage))}searchsorted(t,e="left"){return r._fromStorage(mn(this._storage,t._storage,e))}diff(t=1,e=-1){return r._fromStorage(Nn(this._storage,t,e))}reshape(...t){let e=t.length===1&&Array.isArray(t[0])?t[0]:t,n=er(this._storage,e),a=n.data===this.data?this._base??this:void 0;return r._fromStorage(n,a)}flatten(){let t=qr(this._storage);return r._fromStorage(t)}ravel(){let t=Qr(this._storage),n=t.data===this.data?this._base??this:void 0;return r._fromStorage(t,n)}transpose(t){let e=yt(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}squeeze(t){let e=Ce(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}expand_dims(t){let e=pt(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}swapaxes(t,e){let n=Yo(this._storage,t,e),o=this._base??this;return r._fromStorage(n,o)}moveaxis(t,e){let n=Ue(this._storage,t,e),o=this._base??this;return r._fromStorage(n,o)}repeat(t,e){let n=na(this._storage,t,e);return r._fromStorage(n)}take(t,e){let n=hs(this._storage,t,e);return r._fromStorage(n)}put(t,e){let n=e instanceof r?e._storage:e;Ss(this._storage,t,n)}iindex(t,e=0){let n;if(t instanceof r){n=[];for(let o=0;o<t.size;o++){let a=t.storage.iget(o),i=typeof a=="bigint"?Number(a):a instanceof E?a.re:a;n.push(i)}}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(Je(t._storage,this._storage,e))}matmul(t){let e=fr(this._storage,t._storage);return r._fromStorage(e)}dot(t){let e=rt(this._storage,t._storage);return typeof e=="number"||typeof e=="bigint"||e instanceof E?e:r._fromStorage(e)}trace(){return qe(this._storage)}inner(t){let e=ba(this._storage,t._storage);return typeof e=="number"||typeof e=="bigint"||e instanceof E?e:r._fromStorage(e)}outer(t){let e=Lt(this._storage,t._storage);return r._fromStorage(e)}tensordot(t,e=2){let n=Ve(this._storage,t._storage,e);return typeof n=="number"||typeof n=="bigint"||n instanceof E?n:r._fromStorage(n)}cbrt(){let t=fo(this._storage);return r._fromStorage(t)}fabs(){let t=mo(this._storage);return r._fromStorage(t)}divmod(t){let e=typeof t=="number"?t:t._storage,[n,o]=po(this._storage,e);return[r._fromStorage(n),r._fromStorage(o)]}square(){let t=yo(this._storage);return r._fromStorage(t)}remainder(t){let e=typeof t=="number"?t:t._storage,n=go(this._storage,e);return r._fromStorage(n)}heaviside(t){let e=typeof t=="number"?t:t._storage,n=Ao(this._storage,e);return r._fromStorage(n)}slice(...t){if(t.length===0)return this;if(t.length>this.ndim)throw new Error(`Too many indices for array: array is ${this.ndim}-dimensional, but ${t.length} were indexed`);let e=t.map((u,c)=>{let l=Xn(u);return Jn(l,this.shape[c])});for(;e.length<this.ndim;)e.push({start:0,stop:this.shape[e.length],step:1,isIndex:!1});let n=[],o=[],a=this._storage.offset;for(let u=0;u<e.length;u++){let c=e[u],l=this._storage.strides[u];if(a+=c.start*l,!c.isIndex){let m;c.step>0?m=Math.max(0,Math.ceil((c.stop-c.start)/c.step)):m=Math.max(0,Math.ceil((c.start-c.stop)/Math.abs(c.step))),n.push(m),o.push(l*c.step)}}let i=N.fromData(this._storage.data,n,this._storage.dtype,o,a),s=this._base??this;return new r(i,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 i=[];for(let s=0;s<t[a];s++)o[a]=s,i.push(n(o,a+1));return i};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,i=this.size*o;return n.buffer.slice(a,a+i)}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,i=new DataView(a);for(let s=0;s<n.length;s++){let u=s*o;if(o===2){let c=i.getUint8(u),l=i.getUint8(u+1);i.setUint8(u,l),i.setUint8(u+1,c)}else if(o===4){let c=i.getUint8(u),l=i.getUint8(u+1),m=i.getUint8(u+2),d=i.getUint8(u+3);i.setUint8(u,d),i.setUint8(u+1,m),i.setUint8(u+2,l),i.setUint8(u+3,c)}else if(o===8){let c=i.getUint8(u),l=i.getUint8(u+1),m=i.getUint8(u+2),d=i.getUint8(u+3),y=i.getUint8(u+4),f=i.getUint8(u+5),p=i.getUint8(u+6),g=i.getUint8(u+7);i.setUint8(u,g),i.setUint8(u+1,p),i.setUint8(u+2,f),i.setUint8(u+3,y),i.setUint8(u+4,d),i.setUint8(u+5,m),i.setUint8(u+6,l),i.setUint8(u+7,c)}}return e}view(t){if(!t||t===this.dtype)return r._fromStorage(this._storage,this._base??this);let e=Wr(this.dtype),n=Wr(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=j(t);if(!o)throw new Error(`Unsupported dtype: ${t}`);let a=this._storage.data,i=a.byteOffset+this._storage.offset*e,s=new o(a.buffer,i,this.size),u=N.fromData(s,[...this.shape],t,[...this._storage.strides],0);return r._fromStorage(u,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"')}};By=Eu;Yy={cross:(r,t,e=-1,n=-1,o=-1,a)=>{let i=Da(r.storage,t.storage,e,n,o,a);return typeof i=="number"?i:_._fromStorage(i)},norm:(r,t=null,e=null,n=!1)=>{let o=Na(r.storage,t,e,n);return typeof o=="number"?o:_._fromStorage(o)},vector_norm:(r,t=2,e,n=!1)=>{let o=Kr(r.storage,t,e,n);return typeof o=="number"?o:_._fromStorage(o)},matrix_norm:(r,t="fro",e=!1)=>{let n=Vr(r.storage,t,e);return typeof n=="number"?n:_._fromStorage(n)},qr:(r,t="reduced")=>{let e=je(r.storage,t);return e instanceof N?_._fromStorage(e):"q"in e&&"r"in e?{q:_._fromStorage(e.q),r:_._fromStorage(e.r)}:{h:_._fromStorage(e.h),tau:_._fromStorage(e.tau)}},cholesky:(r,t=!1)=>_._fromStorage(xa(r.storage,t)),svd:(r,t=!0,e=!0)=>{let n=We(r.storage,t,e);return"u"in n?{u:_._fromStorage(n.u),s:_._fromStorage(n.s),vt:_._fromStorage(n.vt)}:_._fromStorage(n)},det:r=>wa(r.storage),inv:r=>_._fromStorage(At(r.storage)),solve:(r,t)=>_._fromStorage(Ge(r.storage,t.storage)),lstsq:(r,t,e=null)=>{let n=Ia(r.storage,t.storage,e);return{x:_._fromStorage(n.x),residuals:_._fromStorage(n.residuals),rank:n.rank,s:_._fromStorage(n.s)}},cond:(r,t=2)=>za(r.storage,t),matrix_rank:(r,t)=>_a(r.storage,t),matrix_power:(r,t)=>_._fromStorage(va(r.storage,t)),pinv:(r,t=1e-15)=>_._fromStorage(Fa(r.storage,t)),eig:r=>{let t=Ze(r.storage);return{w:_._fromStorage(t.w),v:_._fromStorage(t.v)}},eigh:(r,t="L")=>{let e=Ye(r.storage,t);return{w:_._fromStorage(e.w),v:_._fromStorage(e.v)}},eigvals:r=>_._fromStorage(Ma(r.storage)),eigvalsh:(r,t="L")=>_._fromStorage(Ba(r.storage,t)),diagonal:(r,t=0,e=0,n=1)=>_._fromStorage(Pe(r.storage,t,e,n)),matmul:(r,t)=>_._fromStorage(fr(r.storage,t.storage)),matrix_transpose:r=>_._fromStorage(Xe(r.storage)),multi_dot:r=>{let t=r.map(e=>e.storage);return _._fromStorage(Ra(t))},outer:(r,t)=>_._fromStorage(Lt(r.storage,t.storage)),slogdet:r=>Ua(r.storage),svdvals:r=>_._fromStorage($a(r.storage)),tensordot:(r,t,e=2)=>{let n=Ve(r.storage,t.storage,e);return typeof n=="number"||typeof n=="bigint"||n instanceof E?n:_._fromStorage(n)},tensorinv:(r,t=2)=>_._fromStorage(ka(r.storage,t)),tensorsolve:(r,t,e)=>_._fromStorage(qa(r.storage,t.storage,e)),trace:r=>qe(r.storage),vecdot:(r,t,e=-1)=>{let n=He(r.storage,t.storage,e);return typeof n=="number"||typeof n=="bigint"||n instanceof E?n:_._fromStorage(n)}};$r={bool:0,uint8:1,int8:2,uint16:3,int16:4,uint32:5,int32:6,uint64:7,int64:8,float32:9,float64:10,complex64:11,complex128:12},cr={bool:"b",uint8:"u",uint16:"u",uint32:"u",uint64:"u",int8:"i",int16:"i",int32:"i",int64:"i",float32:"f",float64:"f",complex64:"c",complex128:"c"}});function Fn(){let r=new ArrayBuffer(2);return new DataView(r).setInt16(0,256,!0),new Int16Array(r)[0]===256}function $u(r){if(r.startsWith("[")||r.startsWith("("))throw new Er(`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 Uu)throw new Er(`Unsupported dtype: ${Uu[n]} (${r}). Use the 'force' parameter to skip arrays with unsupported dtypes.`);let o=Eg[e];if(!o)throw new Er(`Unknown or unsupported dtype descriptor: ${r}. Supported types: ${vn.join(", ")}. Use the 'force' parameter to skip arrays with unsupported dtypes.`);let a=Fn(),i=t==="<"||t==="|"||t==="="&&a,s=t===">"||t==="="&&!a,u=parseInt(e.slice(1),10),c=u>1&&(s&&a||i&&!a);return{dtype:o,needsByteSwap:c,itemsize:u}}var It,vn,Eg,Jt,Uu,Er,mr,zt=G(()=>{"use strict";It=new Uint8Array([147,78,85,77,80,89]),vn=["float64","float32","complex128","complex64","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"];Eg={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"},Jt={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"},Uu={S:"byte strings",U:"Unicode strings",O:"Python objects",V:"structured arrays (void)",M:"datetime64",m:"timedelta64"};Er=class extends Error{constructor(t){super(t),this.name="UnsupportedDTypeError"}},mr=class extends Error{constructor(t){super(t),this.name="InvalidNpyError"}}});function jr(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=Mn(t);return Bn(t,e)}function Mn(r){if(r.length<10)throw new mr("File too small to be a valid NPY file");for(let c=0;c<It.length;c++)if(r[c]!==It[c])throw new mr("Invalid NPY magic number");let t=r[6],e=r[7];if(t!==1&&t!==2&&t!==3)throw new mr(`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 mr("File truncated: header extends beyond file");let i=r.slice(o,a),s=new TextDecoder("utf-8").decode(i).trim(),u=Tg(s);return{version:{major:t,minor:e},header:u,dataOffset:a}}function Bn(r,t){let{header:e,dataOffset:n}=t,{dtype:o,needsByteSwap:a,itemsize:i}=$u(e.descr),s=e.shape.reduce((p,g)=>p*g,1),u=s*i,c=r.length-n;if(c<u)throw new mr(`File truncated: expected ${u} bytes of data, got ${c}`);let l=new ArrayBuffer(u);new Uint8Array(l).set(r.subarray(n,n+u));let d=Og(l,o,s,a,i),y=e.shape,f;if(e.fortran_order&&y.length>1){let p=[...y].reverse(),g=N.fromData(d,p,o);f=Cg(g,p),y=e.shape}else f=N.fromData(d,[...y],o);return new _(f)}function Tg(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 mr(`Failed to parse NPY header: ${r}`);let o=t[1],a=e[1]==="True",i=n[1].trim(),s;return i===""?s=[]:s=i.split(",").map(u=>u.trim()).filter(u=>u!=="").map(u=>{let c=parseInt(u,10);if(isNaN(c))throw new mr(`Invalid shape value: ${u}`);return c}),{descr:o,fortran_order:a,shape:s}}function Og(r,t,e,n,o){let a=j(t);if(!a)throw new mr(`Cannot create array for dtype: ${t}`);let i=M(t),s=i?e*2:e;if(!n)return new a(r,0,s);let u=new Uint8Array(r),c=new Uint8Array(r.byteLength);if(i){let l=o/2;for(let m=0;m<e*2;m++){let d=m*l;for(let y=0;y<l;y++)c[d+y]=u[d+l-1-y]}}else for(let l=0;l<e;l++){let m=l*o;for(let d=0;d<o;d++)c[m+d]=u[m+o-1-d]}return new a(c.buffer,0,s)}function Cg(r,t){let e=t.length,n=r.size,o=r.dtype,a=j(o);if(!a)throw new mr(`Cannot create array for dtype: ${o}`);let i=new a(n),s=[...t].reverse(),u=Ru(t),c=Ru(s),l=new Array(e).fill(0);for(let m=0;m<n;m++){let d=m;for(let f=0;f<e;f++){let p=u[f];l[f]=Math.floor(d/p),d=d%p}let y=0;for(let f=0;f<e;f++)y+=l[e-1-f]*c[f];B(o),i[y]=r.iget(m)}return N.fromData(i,s,o)}function Ru(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 Qt=G(()=>{"use strict";wt();K();Q();zt()});function Rr(r){let t=r.shape,e=r.dtype,n=Jt[e],o=t.length===0?"()":t.length===1?`(${t[0]},)`:`(${t.join(", ")})`,a=`{'descr': '${n}', 'fortran_order': False, 'shape': ${o}, }`,i=12,u=(64-(i+a.length+1)%64)%64;a=a+" ".repeat(u)+`
|
|
2
|
-
`;let c=new TextEncoder().encode(a),l=c.length,m=r.size,d=Wr(e),y=m*d,f=i+l+y,p=new Uint8Array(f);p.set(It,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,i);let g=i+l;return Ug(r,p.subarray(g),d),p}function Ug(r,t,e){let n=r.dtype,o=r.size,a=Fn(),i=B(n),s=M(n),u=r._storage;if(u.isCContiguous&&u.offset===0&&a){let l=u.data,m=new Uint8Array(l.buffer,l.byteOffset,o*e);t.set(m)}else{let l=new DataView(t.buffer,t.byteOffset,t.byteLength);for(let m=0;m<o;m++){let d=u.iget(m),y=m*e;i?$g(l,y,d,n==="uint64"):s?Rg(l,y,d,n):kg(l,y,d,n)}}}function $g(r,t,e,n){n?r.setBigUint64(t,e,!0):r.setBigInt64(t,e,!0)}function Rg(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 kg(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 Kt=G(()=>{"use strict";Q();zt()});function En(r){let t=4294967295;for(let e=0;e<r.length;e++)t=qg[(t^r[e])&255]^t>>>8;return(t^4294967295)>>>0}var qg,Tn=G(()=>{"use strict";qg=(()=>{let r=new Uint32Array(256);for(let t=0;t<256;t++){let e=t;for(let n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;r[t]=e}return r})()});async function ku(r){let t=Vu(r),e=new Map;for(let n of t){let o=await Vg(n);e.set(n.name,o)}return e}function qu(r){let t=Vu(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 Vu(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=new DataView(t.buffer,t.byteOffset,t.byteLength),n=[],o=-1;for(let c=t.length-22;c>=0;c--)if(e.getUint32(c,!0)===101010256){o=c;break}if(o===-1)throw new Error("Invalid ZIP file: end of central directory not found");let a=e.getUint32(o+16,!0),i=e.getUint16(o+10,!0),s=[],u=a;for(let c=0;c<i&&e.getUint32(u,!0)===33639248;c++){let m=e.getUint16(u+10,!0),d=e.getUint32(u+16,!0),y=e.getUint32(u+20,!0),f=e.getUint32(u+24,!0),p=e.getUint16(u+28,!0),g=e.getUint16(u+30,!0),h=e.getUint16(u+32,!0),b=e.getUint32(u+42,!0),A=t.slice(u+46,u+46+p),S=new TextDecoder("utf-8").decode(A);s.push({name:S,compressionMethod:m,crc32:d,compressedSize:y,uncompressedSize:f,localHeaderOffset:b}),u=u+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 d=e.getUint16(l+26,!0),y=e.getUint16(l+28,!0),f=l+30+d+y,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 Vg(r){if(r.compressionMethod===0)return r.compressedData;if(r.compressionMethod===8)return await Pg(r.compressedData);throw new Error(`Unsupported compression method: ${r.compressionMethod}`)}async function Pg(r){if(typeof DecompressionStream>"u")throw new Error("DecompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let t=new DecompressionStream("deflate-raw"),e=new Uint8Array(r.length);e.set(r);let n=t.writable.getWriter();n.write(e),n.close();let o=t.readable.getReader(),a=[];for(;;){let{done:c,value:l}=await o.read();if(c)break;a.push(l)}let i=a.reduce((c,l)=>c+l.length,0),s=new Uint8Array(i),u=0;for(let c of a)s.set(c,u),u+=c.length;return s}var Pu=G(()=>{"use strict";Tn()});var Lu={};Yn(Lu,{loadNpz:()=>Un,loadNpzSync:()=>$n,parseNpz:()=>nt,parseNpzSync:()=>re});async function nt(r,t={}){let e=t.force??!1,n=await ku(r);return ju(n,e)}function re(r,t={}){let e=t.force??!1,n=qu(r);return ju(n,e)}function ju(r,t){let e=new Map,n=[],o=new Map;for(let[a,i]of r){if(!a.endsWith(".npy"))continue;let s=a.slice(0,-4);try{let u=jr(i);e.set(s,u)}catch(u){if(u instanceof Er&&t)n.push(s),o.set(s,u.message);else throw u}}return{arrays:e,skipped:n,errors:o}}async function Un(r,t={}){let e=await nt(r,t);return Object.fromEntries(e.arrays)}function $n(r,t={}){let e=re(r,t);return Object.fromEntries(e.arrays)}var te=G(()=>{"use strict";Qt();zt();Pu()});async function Wu(r,t={}){let e=t.compress??!1,n=[];for(let[d,y]of r){let f=En(y),p,g;e?(p=await Lg(y),p.length<y.length?g=8:(p=y,g=0)):(p=y,g=0),n.push({name:d,data:y,compressedData:p,crc:f,compressionMethod:g,offset:0})}let o=0;for(let d of n){let y=new TextEncoder().encode(d.name);o+=30+y.length+d.compressedData.length}let a=0;for(let d of n){let y=new TextEncoder().encode(d.name);a+=46+y.length}let s=o+a+22,u=new Uint8Array(s),c=new DataView(u.buffer),l=0;for(let d of n)d.offset=l,l=Zu(u,c,l,d);let m=l;for(let d of n)l=Yu(u,c,l,d);return Hu(c,l,n.length,a,m),u}function Gu(r){let t=[];for(let[l,m]of r){let d=En(m);t.push({name:l,data:m,compressedData:m,crc:d,compressionMethod:0,offset:0})}let e=0;for(let l of t){let m=new TextEncoder().encode(l.name);e+=30+m.length+l.compressedData.length}let n=0;for(let l of t){let m=new TextEncoder().encode(l.name);n+=46+m.length}let a=e+n+22,i=new Uint8Array(a),s=new DataView(i.buffer),u=0;for(let l of t)l.offset=u,u=Zu(i,s,u,l);let c=u;for(let l of t)u=Yu(i,s,u,l);return Hu(s,u,t.length,n,c),i}function Zu(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 Yu(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 Hu(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 Lg(r){if(typeof CompressionStream>"u")throw new Error("CompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let t=new CompressionStream("deflate-raw"),e=new Uint8Array(r.length);e.set(r);let n=t.writable.getWriter();n.write(e),n.close();let o=t.readable.getReader(),a=[];for(;;){let{done:c,value:l}=await o.read();if(c)break;a.push(l)}let i=a.reduce((c,l)=>c+l.length,0),s=new Uint8Array(i),u=0;for(let c of a)s.set(c,u),u+=c.length;return s}var Xu=G(()=>{"use strict";Tn()});var Qu={};Yn(Qu,{serializeNpz:()=>vt,serializeNpzSync:()=>Rn});async function vt(r,t={}){let e=Ju(r);return Wu(e,{compress:t.compress??!1})}function Rn(r){let t=Ju(r);return Gu(t)}function Ju(r){let t=new Map;if(Array.isArray(r)){for(let n=0;n<r.length;n++){let o=r[n],a=Rr(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=Rr(o),i=n.endsWith(".npy")?n:`${n}.npy`;t.set(i,a)}return t}var ee=G(()=>{"use strict";Kt();Xu()});Qt();Kt();te();ee();import{readFileSync as Ot,writeFileSync as Gn}from"node:fs";import{readFile as Ct,writeFile as Zn}from"node:fs/promises";wt();function ot(r,t={}){let{delimiter:e,comments:n="#",skiprows:o=0,usecols:a,max_rows:i,dtype:s="float64",missing_values:u,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))}),i!==void 0&&i>0&&(l=l.slice(0,i)),l.length===0)return L([],s);let m=[],d=new Set(u?Array.isArray(u)?u:[u]:[]),y=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(d.has(A)||A==="")return y;let S=parseFloat(A);return isNaN(S)?y: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?L(m.map(p=>p[0]),s):L(m,s)}function Ft(r,t={}){let e={...t,missing_values:t.missing_values??["","nan","NaN","NA","N/A","-"],filling_values:t.filling_values??NaN};return ot(r,e)}function Mt(r,t,e="float64"){let n=typeof t=="string"?new RegExp(t,"gm"):new RegExp(t.source,"gm"),o=[],a;for(;(a=n.exec(r))!==null;)if(a.length>1){let i=a.slice(1).map(s=>{let u=parseFloat(s);return isNaN(u)?0:u});o.push(i)}return o.length===0?L([],e):o[0].length===1?L(o.map(i=>i[0]),e):L(o,e)}function Ku(r,t){let e=typeof r=="bigint"?Number(r):r,n=t.match(/^%([+-]?)(\d*)(?:\.(\d+))?([dfeEgGs])$/);if(!n)return String(e);let[,o,a,i,s]=n,u=i!==void 0?parseInt(i,10):void 0,c;switch(s){case"d":c=Math.round(e).toString();break;case"f":c=e.toFixed(u??6);break;case"e":c=e.toExponential(u??6).replace(/e([+-])(\d)$/,"e$10$2");break;case"E":c=e.toExponential(u??6).toUpperCase().replace(/E([+-])(\d)$/,"E$10$2");break;case"g":case"G":{let l=u??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 Bt(r,t={}){let{fmt:e="%.18e",delimiter:n=" ",newline:o=`
|
|
3
|
-
`,header:a,footer:i,comments:s="# "}=t;if(r.ndim>2)throw new Error("savetxt: array must be 1D or 2D");let u=[];if(a!==void 0){let l=a.split(/\r?\n/);for(let m of l)m.startsWith(s.trimEnd())?u.push(m):u.push(s+m)}let c=r.toArray();if(r.ndim===1)for(let l of c)u.push(Ku(l,e));else for(let l of c){let m=l.map(d=>Ku(d,e));u.push(m.join(n))}if(i!==void 0){let l=i.split(/\r?\n/);for(let m of l)m.startsWith(s.trimEnd())?u.push(m):u.push(s+m)}return u.join(o)+o}xr();wt();Qt();Kt();zt();te();ee();K();Q();var Dr=624,ne=397,Wg=2567483615,kn=2147483648,qn=2147483647,Nr={mt:new Uint32Array(Dr),mti:Dr+1};function ec(r){let t=Nr.mt;t[0]=r>>>0;for(let e=1;e<Dr;e++){let n=t[e-1]^t[e-1]>>>30;t[e]=Math.imul(1812433253,n)+e>>>0}Nr.mti=Dr}function rc(){let r=Nr.mt,t,e=[0,Wg];if(Nr.mti>=Dr){let n;for(Nr.mti===Dr+1&&ec(5489),n=0;n<Dr-ne;n++)t=r[n]&kn|r[n+1]&qn,r[n]=r[n+ne]^t>>>1^e[t&1];for(;n<Dr-1;n++)t=r[n]&kn|r[n+1]&qn,r[n]=r[n+(ne-Dr)]^t>>>1^e[t&1];t=r[Dr-1]&kn|r[0]&qn,r[Dr-1]=r[ne-1]^t>>>1^e[t&1],Nr.mti=0}return t=r[Nr.mti++],t^=t>>>11,t^=t<<7&2636928640,t^=t<<15&4022730752,t^=t>>>18,t>>>0}function H(){let r=rc()>>>5,t=rc()>>>6;return(r*67108864+t)/9007199254740992}var Gg=2468251765,Zg=1492356589,Yg=1135663077,Hg=2337405405,Xg=3389127133,Jg=1232336661,Wn=16,oe=4;function lr(r){return r>>>0}function Vn(r,t){return r=lr(lr(r)^t.val),t.val=lr(Math.imul(t.val,Gg)),r=lr(Math.imul(r,t.val)),r=lr(r^r>>>Wn),r}function Qg(r,t){let e=lr(lr(Math.imul(Xg,lr(r)))-lr(Math.imul(Jg,lr(t))));return e=lr(e^e>>>Wn),e}function Kg(r){let t=[0,0,0,0],e=[r>>>0],n={val:Yg};for(let o=0;o<oe;o++)o<e.length?t[o]=Vn(e[o],n):t[o]=Vn(0,n);for(let o=0;o<oe;o++)for(let a=0;a<oe;a++)if(o!==a){let i=Vn(t[o],n);t[a]=Qg(t[a],i)}return t}function rA(r,t){let e=[],n=Hg;for(let o=0;o<t;o++){let a=r[o%oe],i=lr(a^n);n=lr(Math.imul(n,Zg)),i=lr(Math.imul(i,n)),i=lr(i^i>>>Wn),e.push(i)}return e}var tA=BigInt("4865540595714422341"),eA=BigInt("2549297995355413924"),nA=eA<<BigInt(64)|tA,Pn=BigInt("0xffffffffffffffff"),jn=(BigInt(1)<<BigInt(128))-BigInt(1);function oA(r){let t=r>>BigInt(64),e=r&Pn,n=(t^e)&Pn,o=Number(r>>BigInt(122));return(n>>BigInt(o)|n<<BigInt(64-o))&Pn}function Ln(r,t){return r*nA+t&jn}function tc(r){let t=Kg(r),e=rA(t,8),n=BigInt(e[0])|BigInt(e[1])<<BigInt(32),o=BigInt(e[2])|BigInt(e[3])<<BigInt(32),a=BigInt(e[4])|BigInt(e[5])<<BigInt(32),i=BigInt(e[6])|BigInt(e[7])<<BigInt(32),s=n<<BigInt(64)|o,u=(a<<BigInt(64)|i)<<BigInt(1);u=(u|BigInt(1))&jn;let c=BigInt(0);return c=Ln(c,u),c=c+s&jn,c=Ln(c,u),{state:c,inc:u}}function aA(r){return r.state=Ln(r.state,r.inc),oA(r.state)}function sA(r){let e=aA(r)>>BigInt(11);return Number(e)/9007199254740992}var Et=class{constructor(t){if(t!==void 0)this._pcgState=tc(t);else{let e=Math.floor(Math.random()*4294967296);this._pcgState=tc(e)}}_randomFloat(){return sA(this._pcgState)}random(t){if(t===void 0)return this._randomFloat();let e=Array.isArray(t)?t:[t],n=e.reduce((i,s)=>i*s,1),o=N.zeros(e,"float64"),a=o.data;for(let i=0;i<n;i++)a[i]=this._randomFloat();return o}integers(t,e,n){if(e===void 0&&(e=t,t=0),n===void 0)return Math.floor(this._randomFloat()*(e-t))+t;let o=Array.isArray(n)?n:[n],a=o.reduce((c,l)=>c*l,1),i=N.zeros(o,"int64"),s=i.data,u=e-t;for(let c=0;c<a;c++)s[c]=BigInt(Math.floor(this._randomFloat()*u)+t);return i}standard_normal(t){if(t===void 0)return Lr(this._randomFloat.bind(this));let e=Array.isArray(t)?t:[t],n=e.reduce((i,s)=>i*s,1),o=N.zeros(e,"float64"),a=o.data;for(let i=0;i<n;i+=2){let[s,u]=Tt(this._randomFloat.bind(this));a[i]=s,i+1<n&&(a[i+1]=u)}return o}normal(t=0,e=1,n){if(n===void 0)return Lr(this._randomFloat.bind(this))*e+t;let o=Array.isArray(n)?n:[n],a=o.reduce((u,c)=>u*c,1),i=N.zeros(o,"float64"),s=i.data;for(let u=0;u<a;u+=2){let[c,l]=Tt(this._randomFloat.bind(this));s[u]=c*e+t,u+1<a&&(s[u+1]=l*e+t)}return i}uniform(t=0,e=1,n){if(n===void 0)return this._randomFloat()*(e-t)+t;let o=Array.isArray(n)?n:[n],a=o.reduce((c,l)=>c*l,1),i=N.zeros(o,"float64"),s=i.data,u=e-t;for(let c=0;c<a;c++)s[c]=this._randomFloat()*u+t;return i}choice(t,e,n=!0,o){return Ac(t,e,n,o,this._randomFloat.bind(this))}permutation(t){return hc(t,this._randomFloat.bind(this))}shuffle(t){Dc(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,u)=>s*u,1),a=N.zeros(n,"float64"),i=a.data;for(let s=0;s<o;s++)i[s]=-Math.log(1-this._randomFloat())*t;return a}poisson(t=1,e){if(e===void 0)return ae(t,this._randomFloat.bind(this));let n=Array.isArray(e)?e:[e],o=n.reduce((s,u)=>s*u,1),a=N.zeros(n,"int64"),i=a.data;for(let s=0;s<o;s++)i[s]=BigInt(ae(t,this._randomFloat.bind(this)));return a}binomial(t,e,n){if(n===void 0)return se(t,e,this._randomFloat.bind(this));let o=Array.isArray(n)?n:[n],a=o.reduce((u,c)=>u*c,1),i=N.zeros(o,"int64"),s=i.data;for(let u=0;u<a;u++)s[u]=BigInt(se(t,e,this._randomFloat.bind(this)));return i}};function nc(r){return new Et(r)}function oc(r){r==null&&(r=Math.floor(Date.now()^Math.random()*4294967296)),ec(r>>>0)}function ac(){return{mt:Array.from(Nr.mt),mti:Nr.mti}}function sc(r){Nr.mt=new Uint32Array(r.mt),Nr.mti=r.mti}function Lr(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 Tt(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 ae(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=Lr(t);return Math.max(0,Math.round(r+Math.sqrt(r)*e))}}function se(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=Lr(e);return Math.max(0,Math.min(r,Math.round(n+o*a)))}}function ic(r){if(r===void 0)return H();let t=Array.isArray(r)?r:[r],e=t.reduce((a,i)=>a*i,1),n=N.zeros(t,"float64"),o=n.data;for(let a=0;a<e;a++)o[a]=H();return n}function uc(...r){if(r.length===0)return H();let t=r.reduce((o,a)=>o*a,1),e=N.zeros(r,"float64"),n=e.data;for(let o=0;o<t;o++)n[o]=H();return e}function cc(...r){if(r.length===0)return Lr(H);let t=r.reduce((o,a)=>o*a,1),e=N.zeros(r,"float64"),n=e.data;for(let o=0;o<t;o+=2){let[a,i]=Tt(H);n[o]=a,o+1<t&&(n[o+1]=i)}return e}function lc(r,t,e,n="int64"){t==null&&(t=r,r=0);let o=t-r;if(e===void 0)return Math.floor(H()*o)+r;let a=Array.isArray(e)?e:[e],i=a.reduce((c,l)=>c*l,1),s=N.zeros(a,n),u=s.data;if(B(n)){let c=u;for(let l=0;l<i;l++)c[l]=BigInt(Math.floor(H()*o)+r)}else{let c=u;for(let l=0;l<i;l++)c[l]=Math.floor(H()*o)+r}return s}function fc(r=0,t=1,e){if(e===void 0)return H()*(t-r)+r;let n=Array.isArray(e)?e:[e],o=n.reduce((u,c)=>u*c,1),a=N.zeros(n,"float64"),i=a.data,s=t-r;for(let u=0;u<o;u++)i[u]=H()*s+r;return a}function mc(r=0,t=1,e){if(e===void 0)return Lr(H)*t+r;let n=Array.isArray(e)?e:[e],o=n.reduce((s,u)=>s*u,1),a=N.zeros(n,"float64"),i=a.data;for(let s=0;s<o;s+=2){let[u,c]=Tt(H);i[s]=u*t+r,s+1<o&&(i[s+1]=c*t+r)}return a}function pc(r){if(r===void 0)return Lr(H);let t=Array.isArray(r)?r:[r],e=t.reduce((a,i)=>a*i,1),n=N.zeros(t,"float64"),o=n.data;for(let a=0;a<e;a+=2){let[i,s]=Tt(H);o[a]=i,a+1<e&&(o[a+1]=s)}return n}function yc(r=1,t){if(t===void 0)return-Math.log(1-H())*r;let e=Array.isArray(t)?t:[t],n=e.reduce((i,s)=>i*s,1),o=N.zeros(e,"float64"),a=o.data;for(let i=0;i<n;i++)a[i]=-Math.log(1-H())*r;return o}function dc(r=1,t){if(t===void 0)return ae(r,H);let e=Array.isArray(t)?t:[t],n=e.reduce((i,s)=>i*s,1),o=N.zeros(e,"int64"),a=o.data;for(let i=0;i<n;i++)a[i]=BigInt(ae(r,H));return o}function gc(r,t,e){if(e===void 0)return se(r,t,H);let n=Array.isArray(e)?e:[e],o=n.reduce((s,u)=>s*u,1),a=N.zeros(n,"int64"),i=a.data;for(let s=0;s<o;s++)i[s]=BigInt(se(r,t,H));return a}function Ac(r,t,e=!0,n,o=H){let a;if(typeof r=="number")a=Array.from({length:r},(d,y)=>y);else{let d=r.size;a=[];for(let y=0;y<d;y++)a.push(Number(r.iget(y)))}let i=a.length;if(i===0)throw new Error("cannot take a sample from an empty sequence");let s;if(n!==void 0){if(Array.isArray(n))s=n;else{let y=n.size;s=[];for(let f=0;f<y;f++)s.push(Number(n.iget(f)))}if(s.length!==i)throw new Error("p and a must have the same size");let d=s.reduce((y,f)=>y+f,0);Math.abs(d-1)>1e-10&&(s=s.map(y=>y/d))}if(t===void 0){if(s){let d=o(),y=0;for(let f=0;f<i;f++)if(y+=s[f],d<y)return a[f];return a[i-1]}return a[Math.floor(o()*i)]}let u=Array.isArray(t)?t:[t],c=u.reduce((d,y)=>d*y,1);if(!e&&c>i)throw new Error("cannot take a larger sample than population when replace=false");let l=N.zeros(u,"float64"),m=l.data;if(e)if(s){let d=new Array(i);d[0]=s[0];for(let y=1;y<i;y++)d[y]=d[y-1]+s[y];for(let y=0;y<c;y++){let f=o(),p=0;for(;p<i-1&&f>=d[p];)p++;m[y]=a[p]}}else for(let d=0;d<c;d++)m[d]=a[Math.floor(o()*i)];else{let d=[...a],y=s?[...s]:void 0;for(let f=0;f<c;f++){let p;if(y){let g=y.reduce((A,S)=>A+S,0),h=o()*g,b=0;p=0;for(let A=0;A<d.length;A++)if(b+=y[A],h<b){p=A;break}p===0&&h>=b&&(p=d.length-1)}else p=Math.floor(o()*d.length);m[f]=d[p],d.splice(p,1),y&&y.splice(p,1)}}return l}function bc(r,t,e=!0,n){return Ac(r,t,e,n,H)}function hc(r,t=H){let e;if(typeof r=="number"){let o=new Float64Array(r);for(let a=0;a<r;a++)o[a]=a;e=N.fromData(o,[r],"float64")}else e=r.copy();let n=e.size;for(let o=n-1;o>0;o--){let a=Math.floor(t()*(o+1)),i=e.iget(o);e.iset(o,e.iget(a)),e.iset(a,i)}return e}function Sc(r){return hc(r,H)}function Dc(r,t=H){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 Nc(r){Dc(r,H)}wt();function hr(r){return r&&typeof r=="object"&&"_data"in r&&"_shape"in r?_._fromStorage(r):r}var gh={seed:oc,random:r=>hr(ic(r)),rand:(...r)=>hr(uc(...r)),randn:(...r)=>hr(cc(...r)),randint:(r,t,e,n)=>hr(lc(r,t,e,n)),uniform:(r,t,e)=>hr(fc(r,t,e)),normal:(r,t,e)=>hr(mc(r,t,e)),standard_normal:r=>hr(pc(r)),exponential:(r,t)=>hr(yc(r,t)),poisson:(r,t)=>hr(dc(r,t)),binomial:(r,t,e)=>hr(gc(r,t,e)),choice:(r,t,e,n)=>hr(bc(r,t,e,n)),permutation:r=>hr(Sc(r)),shuffle:Nc,get_state:ac,set_state:sc,default_rng:nc,Generator:Et},Ah="0.12.0";async function uA(r){let t=await Ct(r);return jr(t)}function cA(r){let t=Ot(r);return jr(t)}async function lA(r,t){let e=Rr(t);await Zn(r,e)}function fA(r,t){let e=Rr(t);Gn(r,e)}async function mA(r,t={}){let e=await Ct(r);return nt(e,t)}function pA(r,t={}){let e=Ot(r),{parseNpzSync:n}=(te(),Hn(Lu));return n(e,t)}async function xc(r,t,e={}){let n=await vt(t,e);await Zn(r,n)}function Fh(r,t){let{serializeNpzSync:e}=(ee(),Hn(Qu)),n=e(t);Gn(r,n)}async function Mh(r,t={}){if(r.endsWith(".npy")){if(t.allowNpy===!1)throw new Error("Loading .npy files is disabled (allowNpy: false)");return uA(r)}else{if(r.endsWith(".npz"))return mA(r,t);throw new Error(`Unknown file extension. Expected .npy or .npz, got: ${r}`)}}function Bh(r,t={}){if(r.endsWith(".npy")){if(t.allowNpy===!1)throw new Error("Loading .npy files is disabled (allowNpy: false)");return cA(r)}else{if(r.endsWith(".npz"))return pA(r,t);throw new Error(`Unknown file extension. Expected .npy or .npz, got: ${r}`)}}async function Eh(r,t){if(!r.endsWith(".npy"))throw new Error(`save() is for .npy files. Use saveNpz() for .npz files. Got: ${r}`);return lA(r,t)}function Th(r,t){if(!r.endsWith(".npy"))throw new Error(`saveSync() is for .npy files. Use saveNpzSync() for .npz files. Got: ${r}`);return fA(r,t)}async function Oh(r,t){return r.endsWith(".npz")||(r=r+".npz"),xc(r,t,{compress:!1})}async function Ch(r,t){return r.endsWith(".npz")||(r=r+".npz"),xc(r,t,{compress:!0})}async function Uh(r,t={}){let e=await Ct(r,{encoding:t.encoding??"utf-8"});return ot(e,t)}function $h(r,t={}){let e=Ot(r,{encoding:t.encoding??"utf-8"});return ot(e,t)}async function Rh(r,t,e={}){let n=Bt(t,e);await Zn(r,n,"utf-8")}function kh(r,t,e={}){let n=Bt(t,e);Gn(r,n,"utf-8")}async function qh(r,t={}){let e=await Ct(r,{encoding:t.encoding??"utf-8"});return Ft(e,t)}function Vh(r,t={}){let e=Ot(r,{encoding:t.encoding??"utf-8"});return Ft(e,t)}async function Ph(r,t,e="float64"){let n=await Ct(r,{encoding:"utf-8"});return Mt(n,t,e)}function jh(r,t,e="float64"){let n=Ot(r,{encoding:"utf-8"});return Mt(n,t,e)}export{E as Complex,Jt as DTYPE_TO_DESCR,mr as InvalidNpyError,_ as NDArray,vn as SUPPORTED_DTYPES,Er as UnsupportedDTypeError,Ah as __version__,bu as abs,bu as absolute,Du as acos,Iu as acosh,Mu as amax,Bu as amin,Ey as angle,Jm as append,og as apply_along_axis,ag as apply_over_axes,of as arange,Du as arccos,Iu as arccosh,Su as arcsin,wu as arcsinh,Nu as arctan,xu as arctan2,zu as arctanh,Ad as argpartition,yd as argsort,Sd as argwhere,_n as around,L as array,lp as array_equal,fp as array_equiv,Nm as array_split,Af as asanyarray,xt as asarray,lf as asarray_chkfinite,bf as ascontiguousarray,hf as asfortranarray,Su as asin,wu as asinh,Nu as atan,xu as atan2,zu as atanh,Lm as atleast_1d,Wm as atleast_2d,Gm as atleast_3d,gp as average,Zd as bincount,ip as bindex,ry as bitwise_and,cy as bitwise_count,ly as bitwise_invert,fy as bitwise_left_shift,ny as bitwise_not,ty as bitwise_or,my as bitwise_right_shift,ey as bitwise_xor,Sm as block,ep as broadcast_arrays,np as broadcast_shapes,tp as broadcast_to,Tm as byteswap,lg as can_cast,Bp as cbrt,zd as ceil,cp as choose,Lp as clip,Ym as column_stack,fg as common_type,Qy as compress,bm as concat,Pr as concatenate,Eu as conj,By as conjugate,Kd as convolve,mf as copy,Dy as copysign,up as copyto,tg as corrcoef,Qd as correlate,nm as cos,fm as cosh,Id as count_nonzero,rg as cov,Gd as cross,Fu as cumprod,vu as cumsum,Fu as cumulative_prod,vu as cumulative_sum,um as deg2rad,sm as degrees,Qm as delete,gu as diag,ed as diag_indices,nd as diag_indices_from,Sf as diagflat,Xf as diagonal,jd as diff,Yd as digitize,hu as divide,Tp as divmod,Yf as dot,Zm as dsplit,Am as dstack,Ld as ediff1d,Vy as einsum,yu as empty,df as empty_like,Tf as exp,Of as exp2,Rm as expand_dims,Cf as expm1,wd as extract,pu as eye,Ep as fabs,Fm as fill,td as fill_diagonal,_d as fix,Dd as flatnonzero,vm as flatten,zn as flip,km as fliplr,qm as flipud,$p as float_power,vd as floor,Wf as floor_divide,Zp as fmax,Yp as fmin,Rp as fmod,kp as frexp,_f as frombuffer,vf as fromfile,Df as fromfunction,Ff as fromiter,Ph as fromregex,jh as fromregexSync,Mf as fromstring,du as full,gf as full_like,qp as gcd,qh as genfromtxt,Vh as genfromtxtSync,uf as geomspace,en as geterr,Wd as gradient,Up as heaviside,Hd as histogram,Xd as histogram2d,eg as histogram_bin_edges,Jd as histogramdd,wm as hsplit,gm as hstack,am as hypot,Kp as i0,cf as identity,sp as iindex,My as imag,Ed as in1d,cd as indices,Kf as inner,Km as insert,Xp as interp,Td as intersect1d,oy as invert,Iy as iscomplex,zy as iscomplexobj,ky as isdtype,Ay as isfinite,Cy as isfortran,Od as isin,by as isinf,hy as isnan,Sy as isnat,Ty as isneginf,Oy as isposinf,_y as isreal,vy as isrealobj,$y as isscalar,yg as issubdtype,Mm as item,Ry as iterable,ld as ix_,Jf as kron,Vp as lcm,Pp as ldexp,ay as left_shift,dd as lexsort,Yy as linalg,af as linspace,Mh as load,uA as loadNpy,cA as loadNpySync,Un as loadNpz,mA as loadNpzFile,pA as loadNpzFileSync,$n as loadNpzSync,Bh as loadSync,Uh as loadtxt,$h as loadtxtSync,Uf as log,Rf as log10,kf as log1p,$f as log2,qf as logaddexp,Vf as logaddexp2,py as logical_and,dy as logical_not,yy as logical_or,gy as logical_xor,sf as logspace,ud as mask_indices,Ly as matrix_transpose,Gy as matvec,Mu as max,Wp as maximum,sg as may_share_memory,pp as median,Nf as meshgrid,Bu as min,pg as min_scalar_type,Gp as minimum,gg as mintypecode,Lf as mod,jp as modf,ym as moveaxis,Hp as nan_to_num,Ip as nanargmax,wp as nanargmin,_p as nancumprod,zp as nancumsum,xp as nanmax,hp as nanmean,vp as nanmedian,Np as nanmin,Mp as nanpercentile,bp as nanprod,Fp as nanquantile,Dp as nanstd,Ap as nansum,Sp as nanvar,ug as ndim,Pf as negative,xy as nextafter,hd as nonzero,lu as ones,yf as ones_like,rm as outer,iy as packbits,rp as pad,jr as parseNpy,Bn as parseNpyData,Mn as parseNpyHeader,nt as parseNpz,re as parseNpzSync,ot as parseTxt,gd as partition,yp as percentile,Wy as permute_dims,rd as place,Ag as poly,bg as polyadd,hg as polyder,Sg as polydiv,Dg as polyfit,Ig as polyint,zg as polymul,_g as polysub,vg as polyval,Gf as positive,Au as pow,Au as power,qy as promote_types,mp as ptp,ap as put,Xy as put_along_axis,Jy as putmask,dp as quantile,cm as rad2deg,im as radians,gh as random,_m as ravel,fd as ravel_multi_index,Fy as real,Uy as real_if_close,Zf as reciprocal,Cp as remainder,zm as repeat,ff as require,Um as reshape,Xm as resize,mg as result_type,sy as right_shift,Fd as rint,Pm as roll,jm as rollaxis,Fg as roots,Vm as rot90,_n as round,_n as round_,Hm as row_stack,Eh as save,lA as saveNpy,fA as saveNpySync,xc as saveNpz,Fh as saveNpzSync,Th as saveSync,Rh as savetxt,kh as savetxtSync,Oh as savez,Ch as savez_compressed,xd as searchsorted,Ky as select,Rr as serializeNpy,vt as serializeNpz,Rn as serializeNpzSync,Bt as serializeTxt,Cd as setdiff1d,qs as seterr,Ud as setxor1d,Tu as shape,ig as shares_memory,jf as sign,Ny as signbit,em as sin,Qp as sinc,lm as sinh,cg as size,pd as sort,bd as sort_complex,wy as spacing,Dm as split,Ef as sqrt,Op as square,$m as squeeze,dm as stack,pm as swapaxes,op as take,Hy as take_along_axis,om as tan,mm as tanh,tm as tensordot,Im as tile,Em as tobytes,Cm as tofile,Bm as tolist,Hf as trace,Qf as transpose,ng as trapezoid,xf as tri,wf as tril,od as tril_indices,ad as tril_indices_from,Rd as trim_zeros,If as triu,sd as triu_indices,id as triu_indices_from,hu as true_divide,Md as trunc,dg as typename,$d as union1d,Bd as unique,kd as unique_all,qd as unique_counts,Vd as unique_inverse,Pd as unique_values,uy as unpackbits,md as unravel_index,hm as unstack,Jp as unwrap,zf as vander,Py as vdot,jy as vecdot,Zy as vecmat,Om as view,xm as vsplit,_u as vstack,Nd as where,Br as zeros,pf as zeros_like};
|
|
1
|
+
import{readFileSync as vo,writeFileSync as ul}from"node:fs";import{readFile as Mo,writeFile as cl}from"node:fs/promises";function Fo(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 Bo(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 Bt(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 ll(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 tA={threshold:1e3,edgeitems:3,precision:8,linewidth:75,floatmode:"maxprec",suppress:!0,separator:" ",prefix:"",suffix:"",nanstr:"nan",infstr:"inf",sign:"-",legacy:!1},ur={...tA};function pl(r){ur={...ur,...r}}function yl(){return{...ur}}function dl(r){let t=null,e={_savedOptions:null,enter(){t={...ur},e._savedOptions=t,ur={...ur,...r}},exit(){t&&(ur=t,t=null,e._savedOptions=null)},apply(n){e.enter();try{return n()}finally{e.exit()}}};return e}function Ot(r,t=null,e=!0,n=!0,o="k",a="-",u=null,i=null,s=null){let c=t??ur.precision;if(!Number.isFinite(r))return Number.isNaN(r)?ur.nanstr:(r>0?"":"-")+ur.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"||o==="-"){let f=l.length;for(;f>0&&l[f-1]==="0";)f--;l=l.slice(0,f)}o==="0"&&l.endsWith(".")&&(l+="0"),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 Tt(r,t=null,e=!0,n="k",o="-",a=null,u=2,i=null){let s=t??ur.precision;if(!Number.isFinite(r))return Number.isNaN(r)?ur.nanstr:(r>0?"":"-")+ur.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"||n==="-")&&(b=b.replace(/0+$/,"")),n==="0"&&b.endsWith(".")&&(b+="0"),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 bl(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 Al(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 Oo(r,t,e){if(r instanceof U){let n=Oo(r.re,"float64",e),o=Oo(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.":Ot(r,e.precision,!1,!0,"k",e.sign):r.toString():Number.isNaN(r)?e.nanstr:(r>0?"":"-")+e.infstr}function eA(r,t){let e=[],n=r.shape,o=n.length,a=r.strides;function u(i,s){if(s===o){let m=0;for(let p=0;p<o;p++)m+=i[p]*a[p];e.push(r.iget(m));return}let c=n[s];if(n.reduce((m,p)=>m*p,1)>t.threshold&&c>2*t.edgeitems){for(let m=0;m<t.edgeitems;m++)i[s]=m,u(i,s+1);for(let m=c-t.edgeitems;m<c;m++)i[s]=m,u(i,s+1)}else for(let m=0;m<c;m++)i[s]=m,u(i,s+1)}return o>0?u(new Array(o).fill(0),0):e.push(r.iget(0)),e}function fl(r,t){return r<0||Object.is(r,-0)?"-"+Math.abs(r).toString()+".":t==="+"?"+"+r.toString()+".":t===" "?" "+r.toString()+".":r.toString()+"."}function ut(r,t,e){let n=r.indexOf(".");if(n===-1)return r.padStart(t+(e>0?1+e:0));let o=r.slice(0,n),a=r.slice(n+1),u=o.padStart(t),i=e>0?a.padEnd(e):a;return u+"."+i}function ml(r){let t=0,e=0;for(let n of r){let o=n.indexOf(".");o===-1?t=Math.max(t,n.length):(t=Math.max(t,o),e=Math.max(e,n.length-o-1))}return{maxLeft:t,maxRight:e}}function ha(r,t){let e=r.filter(m=>Number.isFinite(m));if(e.length===0){let m=r.map(y=>Number.isNaN(y)?t.nanstr:(y>0?"":"-")+t.infstr),p=m.length>0?Math.max(...m.map(y=>y.length)):1;return y=>Number.isNaN(y)?t.nanstr.padStart(p):Number.isFinite(y)?y.toString().padStart(p):((y>0?"":"-")+t.infstr).padStart(p)}let n=t.suppress?e.map(m=>Math.abs(m)<1e-10&&m!==0?0:m):e,o=n.map(Math.abs).filter(m=>m>0),a=o.length>0?Math.max(...o):0,u=o.length>0?Math.min(...o):0;if(a>=1e16||u>0&&u<1e-4||u>0&&a/u>1e3){let m=n.map(h=>Tt(h,t.precision,!1,".",t.sign)),p=0;for(let h of m){let N=h.indexOf("e"),D=N!==-1?h.slice(0,N):h,x=D.indexOf(".");x!==-1&&(p=Math.max(p,D.length-x-1))}let y=Math.max(p,0),d=Math.max(y,1),b=y===0?".":"k",A=n.map(h=>Tt(h,d,!1,b,t.sign));for(let h of r)Number.isFinite(h)||A.push(Number.isNaN(h)?t.nanstr:(h>0?"":"-")+t.infstr);let g=Math.max(...A.map(h=>h.length));return h=>(t.suppress&&Math.abs(h)<1e-10&&h!==0&&Number.isFinite(h)&&(h=0),Number.isNaN(h)?t.nanstr.padStart(g):Number.isFinite(h)?Tt(h,d,!1,b,t.sign).padStart(g):((h>0?"":"-")+t.infstr).padStart(g))}if(n.every(m=>Number.isInteger(m))){let m=n.map(d=>fl(d,t.sign));for(let d of r)Number.isFinite(d)||m.push(Number.isNaN(d)?t.nanstr:(d>0?"":"-")+t.infstr);let{maxLeft:p,maxRight:y}=ml(m);return d=>(t.suppress&&Math.abs(d)<1e-10&&d!==0&&Number.isFinite(d)&&(d=0),Number.isNaN(d)?ut(t.nanstr,p,y):Number.isFinite(d)?ut(fl(d,t.sign),p,y):ut((d>0?"":"-")+t.infstr,p,y))}let c=n.map(m=>Ot(m,t.precision,!1,!0,".",t.sign));for(let m of r)Number.isFinite(m)||c.push(Number.isNaN(m)?t.nanstr:(m>0?"":"-")+t.infstr);let{maxLeft:l,maxRight:f}=ml(c);return m=>(t.suppress&&Math.abs(m)<1e-10&&m!==0&&Number.isFinite(m)&&(m=0),Number.isNaN(m)?ut(t.nanstr,l,f):Number.isFinite(m)?ut(Ot(m,t.precision,!1,!0,".",t.sign),l,f):ut((m>0?"":"-")+t.infstr,l,f))}function nA(r,t){let e=r.dtype,n=eA(r,t);if(n.length===0)return a=>Oo(a,e,t);if(e==="bool")return a=>a?" True":"False";if(e==="int64"||e==="uint64"){let a=n.map(i=>i.toString()),u=Math.max(...a.map(i=>i.length));return i=>i.toString().padStart(u)}if(e.startsWith("int")||e.startsWith("uint")){let a=n.map(i=>i.toString()),u=Math.max(...a.map(i=>i.length));return i=>i.toString().padStart(u)}if(e==="complex64"||e==="complex128"){let a=n.map(c=>c.re),u=n.map(c=>Math.abs(c.im)),i=ha(a,t),s=ha(u,t);return c=>{let l=c,f=i(l.re),m=s(Math.abs(l.im)),p=l.im>=0?"+":"-";return`${f}${p}${m}j`}}let o=ha(n,t);return a=>o(a)}function To(r,t,e,n,o,a){let u=r.shape,i=u.length;if(e===i){let d=0,b=r.strides;for(let g=0;g<i;g++)d+=t[g]*b[g];let A=r.iget(d);return o(A)}let s=u[e],c=n.threshold,l=n.edgeitems,m=u.reduce((d,b)=>d*b,1)>c&&s>2*l,p=[],y=[...t];if(m){for(let d=0;d<l;d++)y[e]=d,p.push(To(r,y,e+1,n,o,a+1));p.push("...");for(let d=s-l;d<s;d++)y[e]=d,p.push(To(r,y,e+1,n,o,a+1))}else for(let d=0;d<s;d++)y[e]=d,p.push(To(r,y,e+1,n,o,a+1));if(e===i-1){let d="["+p.join(n.separator)+"]";if(a+d.length<n.linewidth)return d;let b=" ".repeat(a+1),A=n.linewidth-a-1,g=[],h="";for(let N=0;N<p.length;N++){let D=p[N];if(h==="")h=D;else{let x=h+n.separator+D;x.length<A?h=x:(g.push(h),h=D)}}return h&&g.push(h),"["+g.join(`
|
|
2
|
+
`+b)+"]"}else{let d=" ".repeat(a+1),b=i-e-2,A=`
|
|
3
|
+
`+`
|
|
4
|
+
`.repeat(Math.max(0,b))+d;return"["+p.join(A)+"]"}}function Eo(r,t=null,e=null,n=null,o=" ",a="",u="",i=null,s=null,c=null,l=null){let f={...ur,linewidth:t??ur.linewidth,precision:e??ur.precision,suppress:n??ur.suppress,separator:o,prefix:a,suffix:u,threshold:i??ur.threshold,edgeitems:s??ur.edgeitems,floatmode:c??ur.floatmode,sign:l??ur.sign};if(r.ndim===0){let d=r.iget(0);return Oo(d,r.dtype,f)}let m=nA(r,f),p=f.prefix.length,y=To(r,new Array(r.ndim).fill(0),0,f,m,p);return f.prefix+y+f.suffix}function gl(r,t=null,e=null,n=null){let a="array("+Eo(r,t,e,n,", ");return r.dtype!=="float64"&&(a+=`, dtype='${r.dtype}'`),a+=")",a}function Uo(r,t=null,e=null,n=null){return Eo(r,t,e,n)}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=Fo(s);return Bo(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 Uo(this._storage)}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 ct(r,t){return r.map(e=>hr(e,t))}function $o(r){return[M(r[0]),M(r[1])]}function Na(r){return new P(r)}function aA(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 ko(r,t=er){let e=S.ones(r,t);return new P(e)}function Ro(r,t=er){return wr(r,t)}function qo(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 sA(r){let t=[],e=r;for(;Array.isArray(e);)t.push(e.length),e=e[0];return t}function hl(r){return typeof r=="bigint"?!0:Array.isArray(r)?r.some(t=>hl(t)):!1}function Nl(r){return ll(r)?!0:Array.isArray(r)?r.some(t=>Nl(t)):!1}function iA(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=hl(r),n=Nl(r),o=sA(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=iA(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 xa(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 Ca(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 Sa(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 Vo(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 wa(r,t=er){return Vo(r,r,0,t)}function Xr(r,t){return aA(r)?!t||r.dtype===t?r:r.astype(t):Q(r,t)}function Ia(r,t){return wr(Array.from(r.shape),t??r.dtype)}function za(r,t){return ko(Array.from(r.shape),t??r.dtype)}function _a(r,t){return Ro(Array.from(r.shape),t??r.dtype)}function va(r,t,e){return qo(Array.from(r.shape),t,e??r.dtype)}function Ma(r){return r.copy()}function Fa(r,t){return Xr(r,t)}function Ba(r,t){return Xr(r,t).copy()}function Ta(r,t){return Xr(r,t).copy()}function Oa(r,t){let e=Xr(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 Ea(r,t,e){let n=r;return t&&t!==r.dtype&&(n=n.astype(t)),n}function uA(r){let t=r.data,e=S.fromData(t.slice(),[t.length],r.dtype);return Na(e)}function Po(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 Ua(r,t=0){let e=uA(r);return Po(e,t)}function $a(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 ka(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 Ra(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 qa(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 Va(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 Na(u)}function Pa(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 Na(s)}function ja(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 La(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 Wa(r,t=er,e=-1,n=""){throw new Error("fromfile requires Node.js file system access")}function Wr(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 cA(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 jo(r,t){let e=cA(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=Wr(r.shape,t.shape),c=jo(r,s),l=jo(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=Wr(r.shape,t.shape),o=jo(r,n),a=jo(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 Ga(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 Sl(r,t){if(typeof t=="number")return Dl(r,t);if(t.size===1&&!B(t.dtype)&&r.dtype===t.dtype){let e=Number(t.iget(0));return Dl(r,e)}return Ga(r,t)?lA(r,t):sr(r,t,(e,n)=>e+n,"add")}function lA(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 wl(r,t){if(typeof t=="number")return xl(r,t);if(t.size===1&&!B(t.dtype)&&r.dtype===t.dtype){let e=Number(t.iget(0));return xl(r,e)}return Ga(r,t)?fA(r,t):sr(r,t,(e,n)=>e-n,"subtract")}function fA(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 Il(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 Ga(r,t)?mA(r,t):sr(r,t,(e,n)=>e*n,"multiply")}function mA(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 zl(r,t){if(typeof t=="number")return pA(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:lt(r,"float64"),f=a?t:lt(t,"float64");return sr(l,f,(m,p)=>m/p,"divide")}if(u||i){let l=u?r:lt(r,"float32"),f=i?t:lt(t,"float32");return sr(l,f,(m,p)=>m/p,"divide")}let s=lt(r,"float64"),c=lt(t,"float64");return sr(s,c,(l,f)=>l/f,"divide")}function lt(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 Dl(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=r.offset,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(B(e)){let l=o,f=c;if(i)for(let m=0;m<a;m++){let[p,y]=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 xl(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=r.offset,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(B(e)){let l=o,f=c;if(i)for(let m=0;m<a;m++){let[p,y]=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 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*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 pA(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 _l(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=Bt(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 vl(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 Ml(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 Lo(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"?yA(r,t):sr(r,t,(e,n)=>(e%n+n)%n,"mod")}function yA(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 Ya(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"?dA(r,t):sr(r,t,(e,n)=>Math.floor(e/n),"floor_divide")}function dA(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 Fl(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 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 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 Tl(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 Ol(r){let t=r.dtype;L(t,"fabs","fabs is only for real numbers. Use absolute() for complex.");let e=Array.from(r.shape),n=r.data,o=r.size,a=r.offset,u=t==="float32"?"float32":"float64",i=S.zeros(e,u),s=i.data;if(r.isCContiguous)if(a===0)for(let c=0;c<o;c++)s[c]=Math.abs(Number(n[c]));else for(let c=0;c<o;c++)s[c]=Math.abs(Number(n[a+c]));else for(let c=0;c<o;c++)s[c]=Math.abs(Number(r.iget(c)));return i}function El(r,t){let e=Ya(r,t),n=Lo(r,t);return[e,n]}function Ul(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 $l(r,t){return Lo(r,t)}function kl(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 Rl(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 ql(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 Pl(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 jl(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 Ll(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 Wl(r){L(r.dtype,"modf","modf is not defined for complex numbers.");let t=S.zeros(Array.from(r.shape),"float64"),e=S.zeros(Array.from(r.shape),"float64"),n=t.data,o=e.data,a=r.size;for(let u=0;u<a;u++){let i=Number(r.iget(u)),s=Math.trunc(i);o[u]=s,n[u]=i-s}return[t,e]}function Gl(r,t,e){L(r.dtype,"clip","clip is not supported for complex numbers.");let n=r.dtype,o=Array.from(r.shape),a=r.size,u=S.zeros(o,n),i=u.data,s=t===null||typeof t=="number",c=e===null||typeof e=="number",l=t===null?-1/0:typeof t=="number"?t:null,f=e===null?1/0:typeof e=="number"?e:null,m=r.isCContiguous,p=r.data,y=r.offset,d=!s&&t.isCContiguous,b=s?null:t.data,A=s?0:t.offset,g=s?0:t.size,h=!c&&e.isCContiguous,N=c?null:e.data,D=c?0:e.offset,x=c?0:e.size;if(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 Yl(r,t){if(L(r.dtype,"maximum","maximum is not supported for complex numbers."),typeof t!="number"&&L(t.dtype,"maximum","maximum is not supported for complex numbers."),typeof t=="number"){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=S.zeros(n,e),u=a.data,i=r.data;if(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 Zl(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 Xl(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 Jl(r,t){if(L(r.dtype,"fmin","fmin is not supported for complex numbers."),typeof t!="number"&&L(t.dtype,"fmin","fmin is not supported for complex numbers."),typeof t=="number"){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=S.zeros(n,e),u=a.data,i=r.data;if(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 Kl(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 Hl(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 rf(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 tf(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]=bA(i)}return n}function bA(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 ef(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 nf(r,t){if(typeof t=="number")return hA(r,t);let e=B(r.dtype),n=B(t.dtype);return e||n?gA(r,t):sr(r,t,Math.pow,"power")}function gA(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 hA(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 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],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 af(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 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.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 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=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 cf(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 lf(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 ff(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 mf(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"?DA(r,t):NA(r,t)}function NA(r,t){let e=Wr(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 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;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 pf(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"?CA(r,t):xA(r,t)}function xA(r,t){let e=Wr(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 CA(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 Et(r,t){let e=typeof t=="number"?t:z(t);return M(Sl(z(r),e))}function Ut(r,t){let e=typeof t=="number"?t:z(t);return M(wl(z(r),e))}function $t(r,t){let e=typeof t=="number"?t:z(t);return M(Il(z(r),e))}function kt(r){return M(ef(z(r)))}function Rt(r,t){let e=typeof t=="number"?t:z(t);return M(nf(z(r),e))}function qt(r){return M(of(z(r)))}function Vt(r){return M(af(z(r)))}function Pt(r){return M(sf(z(r)))}function jt(r){return M(uf(z(r)))}function Lt(r){return M(cf(z(r)))}function Wt(r){return M(lf(z(r)))}function Gt(r){return M(ff(z(r)))}function Yt(r,t){let e=typeof t=="number"?t:z(t);return M(mf(z(r),e))}function Zt(r,t){let e=typeof t=="number"?t:z(t);return M(pf(z(r),e))}function Xt(r){return M(_l(z(r)))}function Jt(r){return M(vl(z(r)))}function Kt(r){return M(Ml(z(r)))}function Qt(r,t){let e=typeof t=="number"?t:z(t);return M(Lo(z(r),e))}function ft(r,t){let e=typeof t=="number"?t:z(t);return M(zl(z(r),e))}var Za=ft;function Ht(r,t){let e=typeof t=="number"?t:z(t);return M(Ya(z(r),e))}function re(r){return M(Fl(z(r)))}function te(r){return M(Bl(z(r)))}function ee(r){return M(Tl(z(r)))}function ne(r){return M(Ol(z(r)))}function oe(r,t){let e=typeof t=="number"?t:z(t);return $o(El(z(r),e))}function ae(r){return M(Ul(z(r)))}function se(r,t){let e=typeof t=="number"?t:z(t);return M($l(z(r),e))}function ie(r,t){let e=typeof t=="number"?t:z(t);return M(kl(z(r),e))}function Xa(r,t){let e=typeof t=="number"?t:z(t);return M(Rl(z(r),e))}function Ja(r,t){let e=typeof t=="number"?t:z(t);return M(ql(z(r),e))}function Ka(r){return $o(Vl(z(r)))}function Qa(r,t){let e=typeof t=="number"?t:z(t);return M(Pl(z(r),e))}function Ha(r,t){let e=typeof t=="number"?t:z(t);return M(jl(z(r),e))}function rs(r,t){let e=typeof t=="number"?t:z(t);return M(Ll(z(r),e))}function ts(r){return $o(Wl(z(r)))}function ue(r,t,e){let n=t===null?null:typeof t=="number"?t:z(t),o=e===null?null:typeof e=="number"?e:z(e);return M(Gl(z(r),n,o))}function es(r,t){let e=typeof t=="number"?t:z(t);return M(Yl(z(r),e))}function ns(r,t){let e=typeof t=="number"?t:z(t);return M(Zl(z(r),e))}function os(r,t){let e=typeof t=="number"?t:z(t);return M(Xl(z(r),e))}function as(r,t){let e=typeof t=="number"?t:z(t);return M(Jl(z(r),e))}function ss(r,t=0,e,n){return M(Kl(z(r),t,e,n))}function is(r,t,e,n,o){return M(Ql(z(r),z(t),z(e),n,o))}function us(r,t=Math.PI,e=-1,n=2*Math.PI){return M(Hl(z(r),t,e,n))}function cs(r){return M(rf(z(r)))}function ls(r){return M(tf(z(r)))}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.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 gf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1];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 hf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1],m=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 Nf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1],[m,p]=yf(l,f);u[c*2]=m,u[c*2+1]=p}}else for(let i=0;i<n;i++){let s=r.iget(i),[c,l]=yf(s.re,s.im);u[i*2]=c,u[i*2+1]=l}return a}return ir(r,Math.asin,!1)}function yf(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 Df(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1],[m,p]=df(l,f);u[c*2]=m,u[c*2+1]=p}}else for(let i=0;i<n;i++){let s=r.iget(i),[c,l]=df(s.re,s.im);u[i*2]=c,u[i*2+1]=l}return a}return ir(r,Math.acos,!1)}function df(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 xf(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]=bf(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]=bf(s.re,s.im);u[i*2]=c,u[i*2+1]=l}return a}return ir(r,Math.atan,!1)}function bf(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 Cf(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"?IA(r,t):wA(r,t)}function wA(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 IA(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 Sf(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"?_A(r,t):zA(r,t)}function zA(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 _A(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 fs(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 ms(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 wf(r){return ms(r)}function If(r){return fs(r)}function zf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=S.zeros(e,t),u=a.data;for(let i=0;i<n;i++){let s=o[i*2],c=o[i*2+1];u[i*2]=Math.sinh(s)*Math.cos(c),u[i*2+1]=Math.cosh(s)*Math.sin(c)}return a}return ir(r,Math.sinh,!1)}function _f(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=S.zeros(e,t),u=a.data;for(let i=0;i<n;i++){let s=o[i*2],c=o[i*2+1];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 vf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=S.zeros(e,t),u=a.data;for(let i=0;i<n;i++){let s=o[i*2],c=o[i*2+1],l=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 Mf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=S.zeros(e,t),u=a.data;for(let i=0;i<n;i++){let s=o[i*2],c=o[i*2+1],l=s*s-c*c,f=2*s*c,m=l+1,p=f,y=Math.sqrt(m*m+p*p),d=Math.sqrt((y+m)/2),b=(p>=0?1:-1)*Math.sqrt((y-m)/2),A=s+d,g=c+b,h=Math.sqrt(A*A+g*g);u[i*2]=Math.log(h),u[i*2+1]=Math.atan2(g,A)}return a}return ir(r,Math.asinh,!1)}function Ff(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=S.zeros(e,t),u=a.data;for(let i=0;i<n;i++){let s=o[i*2],c=o[i*2+1],l=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 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],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 ce(r){return M(Af(z(r)))}function le(r){return M(gf(z(r)))}function fe(r){return M(hf(z(r)))}function me(r){return M(Nf(z(r)))}function pe(r){return M(Df(z(r)))}function ye(r){return M(xf(z(r)))}function de(r,t){let e=typeof t=="number"?t:z(t);return M(Cf(z(r),e))}function be(r,t){let e=typeof t=="number"?t:z(t);return M(Sf(z(r),e))}function Ae(r){return M(fs(z(r)))}function ge(r){return M(ms(z(r)))}function ps(r){return M(wf(z(r)))}function ys(r){return M(If(z(r)))}function he(r){return M(zf(z(r)))}function Ne(r){return M(_f(z(r)))}function De(r){return M(vf(z(r)))}function xe(r){return M(Mf(z(r)))}function Ce(r){return M(Ff(z(r)))}function Se(r){return M(Bf(z(r)))}function cr(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 Jr(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 mt(r){let t=r.size,e=r.dtype;if(r.isCContiguous){let n=r.data;return S.fromData(n,[t],e,[1],0)}return Jr(r)}function ds(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 bs(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 we(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 Tf(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 As(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 ds(r,s)}function Gr(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];FA(p,l,u,f,a,m,o),m+=y}return S.fromData(l,u,o)}function FA(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 Of(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=>we(i,a));return Gr(u,a)}function Ef(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?cr(e,[1,e.shape[0]]):e);return Gr(t,0)}function gs(r){if(r.length===0)throw new Error("need at least one array to stack");return r.every(e=>e.ndim===1)?Gr(r,0):Gr(r,1)}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?cr(we(cr(e,[1,e.shape[0]]),2),[1,e.shape[0],1]):e.ndim===2?we(e,2):e);return Gr(t,2)}function $f(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 kf(r,i,a)}function Ie(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 kf(r,i,a)}function kf(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 Rf(r,t){if(r.ndim<2)throw new Error("vsplit only works on arrays of 2 or more dimensions");return Ie(r,t,0)}function qf(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 Ie(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=cr(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 Pf(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 jf(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 Lf(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 Wf(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=Jr(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 Gf(r,t,e=0){let n=r.ndim,o=t<0?n+t:t;if(o<0||o>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let a=e<0?n+e:e;if(a<0||a>n)throw new Error(`start ${e} is out of bounds`);return o<a&&a--,o===a?S.fromData(r.data,Array.from(r.shape),r.dtype,Array.from(r.strides),r.offset):As(r,o,a)}function Yf(r,t){if(r.ndim<3)throw new Error("dsplit only works on arrays of 3 or more dimensions");return Ie(r,t,2)}function Zf(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?cr(e,[e.shape[0],1]):e);return gs(t)}function Xf(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 Jf(r){return r.map(t=>t.ndim===0?cr(t,[1]):t)}function Kf(r){return r.map(t=>t.ndim===0?cr(t,[1,1]):t.ndim===1?cr(t,[1,t.shape[0]]):t)}function Qf(r){return r.map(t=>t.ndim===0?cr(t,[1,1,1]):t.ndim===1?cr(t,[1,t.shape[0],1]):t.ndim===2?cr(t,[t.shape[0],t.shape[1],1]):t)}function Hf(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=BA(r,s),l=bs(c,o);u.push(l)}return u}function rm(r,t=1){if(r.length===0)throw new Error("need at least one array to block");return r.length===1?r[0].copy():Gr(r,-1)}function BA(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 TA(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 OA(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 EA(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 yt(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))TA(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 EA(b,A,e,a,n,1,s,g,c,h,N.data,a),N}function nm(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 ds(r,t)}function om(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 yt(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}OA(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:mt(r),n=t.ndim===1?t:mt(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 am(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 sm(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 im(r,...t){let e=r.indexOf("->"),n,o;e===-1?(n=r,o=um(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 hs(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 hs(t,a,c,u)}let l=Array.from(o).map(d=>u.get(d));if(l.length===0)return hs(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=UA(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 um(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 hs(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 UA(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 cm(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 lm(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 J=h.length-1;J>=0;J--)I[J]=_%h[J],_=Math.floor(_/h[J]);let v=[...I.slice(0,i),0,...I.slice(i)],T=[...I.slice(0,s),0,...I.slice(s)],E=J=>(v[i]=J,f(r,...v)),$=J=>(T[s]=J,f(t,...T)),k=E(0),V=E(1),j=y===3?E(2):l?new U(0,0):0,R=$(0),Y=$(1),X=d===3?$(2):l?new U(0,0):0;if(b===0)x.set(I,p(m(k,Y),m(V,R)));else{let J=p(m(V,X),m(j,Y)),rr=p(m(j,R),m(k,X)),yr=p(m(k,Y),m(V,R)),nr=(dr,Or)=>{let rA=[...I.slice(0,N),dr,...I.slice(N)];x.set(rA,Or)};nr(0,J),nr(1,rr),nr(2,yr)}}return x}function pt(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:mt(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 pt(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 fm(r,t=null,e=null,n=!1){if(t===null)return e===null?pt(r,2,null,n):typeof e=="number"?pt(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 pt(r,t??2,e,n)}function xs(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 mm(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}=Cs(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 Cs(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 Ss(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 pm(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}=Wo(r),i=a.data,s=u;for(let c=0;c<n;c++)s*=i[c*n+c];return s}function Wo(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 ze(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}=Wo(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 em(r,t){let[e]=r.shape,n=e,{lu:o,piv:a}=Wo(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 ws(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 em(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=em(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 ym(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?cr(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?cr(d,[o]):d,residuals:b,rank:m,s:u}}function dm(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=ze(r),u=Kr(a,t);return o*u}function bm(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=ze(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 gm(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 Is(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 l=0;l<n;l++)for(let f=l+1;f<n;f++)if(Math.abs(Number(r.get(l,f))-Number(r.get(f,l)))>1e-10){o=!1;break r}if(o){let{values:l,vectors:f}=Cs(r),m=S.zeros([n],"float64"),p=S.zeros([n,n],"float64");for(let y=0;y<n;y++){m.set([y],l[y]);for(let d=0;d<n;d++)p.set([d,y],f[d][y])}return{w:m,v:p}}let{values:a,vectors:u,hasComplexEigenvalues:i}=$A(r);i&&console.warn("numpy-ts: eig() detected complex eigenvalues which cannot be represented. Results are real approximations and may be inaccurate. For symmetric matrices, use eigh() instead.");let s=S.zeros([n],"float64"),c=S.zeros([n,n],"float64");for(let l=0;l<n;l++){s.set([l],a[l]);for(let f=0;f<n;f++)c.set([f,l],u[f][l])}return{w:s,v:c}}function $A(r){let t=r.shape[0],e=1e3,n=1e-10,o=S.zeros([t,t],"float64");for(let c=0;c<t;c++)for(let l=0;l<t;l++)o.set([c,l],Number(r.get(c,l)));let a=S.zeros([t,t],"float64");for(let c=0;c<t;c++)a.set([c,c],1);for(let c=0;c<e;c++){let l=0;for(let y=0;y<t;y++)for(let d=0;d<t;d++)y!==d&&(l+=Number(o.get(y,d))**2);if(Math.sqrt(l)<n*t)break;let f=xs(o,"reduced"),m=f.q,p=f.r;o=Ar(p,m),a=Ar(a,m)}let u=!1;for(let c=0;c<t-1;c++){let l=Math.abs(Number(o.get(c+1,c))),f=Math.abs(Number(o.get(c,c))),m=Math.abs(Number(o.get(c+1,c+1))),p=Math.max(f,m,1e-10);if(l/p>1e-6){u=!0;break}}let i=[];for(let c=0;c<t;c++)i.push(Number(o.get(c,c)));let s=[];for(let c=0;c<t;c++){s.push([]);for(let l=0;l<t;l++)s[c].push(Number(a.get(c,l)))}return{values:i,vectors:s,hasComplexEigenvalues:u}}function zs(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}=Cs(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 hm(r){let{w:t}=Is(r);return t}function Nm(r,t="L"){let{w:e}=zs(r,t);return e}function Dm(r,t){let e=Jr(r),n=Jr(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 xm(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 yt(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 Cm(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 Sm(r,t){return Qr(r,t)}function wm(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 yt(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 Im(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 yt(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 zm(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}=Wo(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 _m(r){return Ss(r,!0,!1)}function vm(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 Mm(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=cr(r,[o,a]),i=ze(u),s=[...e.slice(t),...e.slice(0,t)];return cr(i,s)}function Fm(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=cr(l,[y,m]),A=cr(t,[m]),g=ws(b,A);return cr(g,[...o])}function Bm(r,...t){let e=r.indexOf("->"),n,o;e===-1?(n=r,o=um(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,Ns(r,u,m,i)]}if(t.length===2){let m=[[0,1]];return[m,Ns(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=kA(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]=RA(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,Ns(r,u,s,i)]}function kA(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 RA(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 Ns(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(`
|
|
5
|
+
`)}function dt(r,t){let e=yt(z(r),z(t));return typeof e=="number"||typeof e=="bigint"||e instanceof U?e:M(e)}function bt(r){return nm(z(r))}function At(r,t=0,e=0,n=1){return M(sm(z(r),t,e,n))}function _s(r,t){return M(cm(z(r),z(t)))}function gt(r,t){return hr(Qr(z(r),t),r)}function ht(r,t){let e=om(z(r),z(t));return typeof e=="number"||typeof e=="bigint"||e instanceof U?e:M(e)}function Nt(r,t){return M(Ds(z(r),z(t)))}function Dt(r,t,e=2){let n=am(z(r),z(t),e);return typeof n=="number"||typeof n=="bigint"||n instanceof U?n:M(n)}function vs(r,...t){let e=t.map(o=>z(o)),n=im(r,...e);return typeof n=="number"||typeof n=="bigint"||n instanceof U?n:M(n)}function Ms(r,...t){let e=t.map(n=>z(n));return Bm(r,...e)}function Fs(r,t){return Dm(z(r),z(t))}function Go(r,t,e=-1){let n=xm(z(r),z(t),e);return typeof n=="number"||typeof n=="bigint"||n instanceof U?n:M(n)}function Yo(r){return hr(Cm(z(r)),r)}function Zo(r,t){return hr(Sm(z(r),t),r)}function Bs(r,t){return M(wm(z(r),z(t)))}function Ts(r,t){return M(Im(z(r),z(t)))}function Xo(r,t,e=-1,n=-1,o=-1,a){let u=lm(z(r),z(t),e,n,o,a);return typeof u=="number"||u instanceof U?u:M(u)}function _e(r,t){return M(Ar(z(r),z(t)))}var Os={matmul:(r,t)=>M(Ar(z(r),z(t))),dot:(r,t)=>dt(r,t),det:r=>pm(z(r)),inv:r=>M(ze(z(r))),solve:(r,t)=>M(ws(z(r),z(t))),lstsq:(r,t,e)=>{let n=ym(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=fm(z(r),t,e,n);return typeof o=="number"?o:M(o)},cond:(r,t)=>dm(z(r),t),matrix_rank:(r,t)=>bm(z(r),t),matrix_power:(r,t)=>M(Am(z(r),t)),pinv:(r,t)=>M(gm(z(r),t)),qr:(r,t)=>{let e=xs(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(mm(z(r),t)),svd:(r,t,e)=>{let n=Ss(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=Is(z(r));return{w:M(t.w),v:M(t.v)}},eigh:(r,t)=>{let e=zs(z(r),t);return{w:M(e.w),v:M(e.v)}},eigvals:r=>M(hm(z(r))),eigvalsh:(r,t)=>M(Nm(z(r),t)),slogdet:r=>zm(z(r)),svdvals:r=>M(_m(z(r))),multi_dot:r=>M(vm(r.map(t=>z(t)))),tensorinv:(r,t)=>M(Mm(z(r),t)),tensorsolve:(r,t,e)=>M(Fm(z(r),z(t),e)),vector_norm:(r,t,e,n)=>{let o=pt(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)=>Xo(r,t,e,n,o,a),matrix_transpose:r=>Yo(r),permute_dims:(r,t)=>Zo(r,t),trace:r=>bt(r),diagonal:(r,t,e,n)=>At(r,t,e,n),outer:(r,t)=>Nt(r,t),inner:(r,t)=>ht(r,t),tensordot:(r,t,e)=>Dt(r,t,e),vecdot:(r,t,e)=>Go(r,t,e),transpose:(r,t)=>gt(r,t)};function ve(r,t){return M(cr(z(r),t))}function Br(r){return M(Jr(z(r)))}function Me(r){return M(mt(z(r)))}function Fe(r,t){return hr(bs(z(r),t),r)}function Be(r,t){return hr(we(z(r),t),r)}function Te(r,t,e){return hr(Tf(z(r),t,e),r)}function Oe(r,t,e){return hr(As(z(r),t,e),r)}function Es(r,t,e=0){return hr(Gf(z(r),t,e),r)}function xt(r,t=0){return M(Gr(r.map(e=>z(e)),t))}function Us(r,t=0){return M(Of(r.map(e=>z(e)),t))}function Jo(r){return M(Ef(r.map(t=>z(t))))}function $s(r){return M(gs(r.map(t=>z(t))))}function ks(r){return M(Uf(r.map(t=>z(t))))}function Rs(r){return M(Zf(r.map(t=>z(t))))}var qs=Jo;function Vs(r){return M(rm(r.map(t=>z(t))))}function Ps(r,t,e=0){return ct($f(z(r),t,e),r)}function js(r,t,e=0){return ct(Ie(z(r),t,e),r)}function Ls(r,t){return ct(Rf(z(r),t),r)}function Ws(r,t){return ct(qf(z(r),t),r)}function Gs(r,t){return ct(Yf(z(r),t),r)}function Ys(r,t=0){return $r(Hf(z(r),t))}function Zs(r,t){return M(Vf(z(r),t))}function Ee(r,t,e){return M(Pf(z(r),t,e))}function Ue(r,t){return M(jf(z(r),t))}function Xs(r){return Ue(r,1)}function Js(r){return Ue(r,0)}function Ks(r,t=1,e=[0,1]){return M(Lf(z(r),t,e))}function Qs(r,t,e){return M(Wf(z(r),t,e))}function $e(r,t){return M(Xf(z(r),t))}function Hs(...r){let t=Jf(r.map(e=>z(e)));return t.length===1?M(t[0]):$r(t)}function ri(...r){let t=Kf(r.map(e=>z(e)));return t.length===1?M(t[0]):$r(t)}function ti(...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 G(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 ke(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 ke(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=G(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=G(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=G(A,f,h,o),D=Z(N,c,s);g+=Number(i[D])}y[A]=g}if(e){let A=[...o];return A[f]=1,S.fromData(y,A,n)}return p}function ea(r,t,e=!1){let n=r.dtype,o=r.shape;if(t===void 0){let m=ke(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=ke(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 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("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 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=G(C,A,0,o),_=Z(w,c,s),I=b[_*2],v=b[_*2+1];for(let T=1;T<D;T++){let E=G(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 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=G(g,l,0,o),N=Z(h,c,s),D=b[N];for(let x=1;x<y;x++){let C=G(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=G(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 ei(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 ei(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=G(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=G(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=G(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 St(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 St(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=G(C,A,0,o),_=Z(w,c,s),I=b[_*2],v=b[_*2+1];for(let T=1;T<D;T++){let E=G(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 St(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=G(g,l,0,o),N=Z(h,c,s),D=b[N];for(let x=1;x<y;x++){let C=G(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=G(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 ni(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 ni(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=G(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 _=G(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=G(g,f,0,o),N=Z(h,c,s),D=A[N],x=0;for(let C=1;C<d;C++){let w=G(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=G(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 oi(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 oi(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=G(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 _=G(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=G(g,f,0,o),N=Z(h,c,s),D=A[N],x=0;for(let C=1;C<d;C++){let w=G(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=G(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 ai(r,t,e=0,n=!1){let o=r.dtype,a=r.shape,u=a.length,i=r.size,s=r.data,c=r.offset,l=r.strides,f=ea(r,t,n),m=r.isCContiguous;if(t===void 0){if(B(o)){let C=f,w=0;if(m){let _=s;for(let I=0;I<i;I++){let v=_[(c+I)*2],T=_[(c+I)*2+1],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=G(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 _=G(D,p,w,a),I=Z(_,l,c),v=Number(s[I])-C;x+=v*v}h[D]=x/(y-e)}return g}function Tm(r,t,e=0,n=!1){let o=ai(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 si(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 si(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=G(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 ii(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 ii(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=G(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 Om(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 Em(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data,u=r.offset,i=r.strides,s=r.isCContiguous;if(B(e)){let b=a,A=r.size;if(t===void 0){let I=S.zeros([A],e),v=I.data,T=1,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 Um(r,t,e=!1){let n=r.dtype;if(B(n)){let f=Ct(r,t,e),m=St(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=Ct(r,t,e),a=St(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 $m(r,t,e=!1){return qe(r,.5,t,e)}function km(r,t,e,n=!1){return qe(r,t/100,e,n)}function qe(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 qe(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=G(d,c,D,o),C=Z(x,s,i);b.push(Number(u[C]))}b.sort((D,x)=>D-x);let A=b.length,g=t*(A-1),h=Math.floor(g),N=Math.ceil(g);if(h===N)p[d]=b[h];else{let D=g-h;p[d]=b[h]*(1-D)+b[N]*D}}let y=S.fromData(p,l,"float64");if(n){let d=[...o];return d[c]=1,S.fromData(p,d,"float64")}return y}function Ko(r,t,e,n=!1){let o=r.dtype,a=r.shape,u=a.length,i=r.data,s=r.offset,c=r.strides;if(e===void 0)return ea(r,t,n);if(B(o)){let g=i,h=e.data,N=e.offset;if(t===void 0){let v=0,T=0,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 Ko(r,void 0,e);let C=x.reduce((v,T)=>v*T,1),w=a[D],_=S.zeros(x,o),I=_.data;for(let v=0;v<C;v++){let T=0,E=0,$=0;for(let k=0;k<w;k++){let V=G(v,D,k,a),j=Z(V,c,s),R=Number(h[N+k%e.size]),Y=g[j*2],X=g[j*2+1];T+=Y*R,E+=X*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 Ko(r,void 0,e);let p=m.reduce((g,h)=>g*h,1),y=a[f],d=e.data,b=new Float64Array(p);for(let g=0;g<p;g++){let h=0,N=0;for(let D=0;D<y;D++){let x=G(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 ui(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 ui(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=G(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=G(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 ci(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 ci(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=G(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=G(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 li(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 li(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=G(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=G(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 Re(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 Re(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=G(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=G(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,X=R-T;E+=Y*Y+X*X}}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 Re(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=G(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=G(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 Rm(r,t,e=0,n=!1){let o=Re(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=o,u=new Float64Array(a.size);for(let i=0;i<a.size;i++)u[i]=Math.sqrt(Number(a.data[i]));return S.fromData(u,[...a.shape],"float64")}function Qo(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.data,i=r.offset,s=r.strides;if(B(n)){let d=u;if(t===void 0){let x=1/0,C=1/0,w=!1;if(r.isCContiguous)for(let I=0;I<r.size;I++){let v=d[(i+I)*2],T=d[(i+I)*2+1];isNaN(v)||isNaN(T)||(w?(v<x||v===x&&T<C)&&(x=v,C=T):(x=v,C=T,w=!0))}else for(let I=0;I<r.size;I++){let v=r.iget(I),T=v.re,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 Qo(r);let g=A.reduce((x,C)=>x*C,1),h=o[b],N=new Float64Array(g*2);for(let x=0;x<g;x++){let C=1/0,w=1/0,_=!1;for(let I=0;I<h;I++){let v=G(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 Qo(r);let f=l.reduce((d,b)=>d*b,1),m=o[c],p=new Float64Array(f);for(let d=0;d<f;d++){let b=1/0;for(let A=0;A<m;A++){let g=G(d,c,A,o),h=Z(g,s,i),N=Number(u[h]);!isNaN(N)&&N<b&&(b=N)}p[d]=b===1/0?NaN:b}let y=S.fromData(p,l,"float64");if(e){let d=[...o];return d[c]=1,S.fromData(p,d,"float64")}return y}function Ho(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.data,i=r.offset,s=r.strides;if(B(n)){let d=u;if(t===void 0){let x=-1/0,C=-1/0,w=!1;if(r.isCContiguous)for(let I=0;I<r.size;I++){let v=d[(i+I)*2],T=d[(i+I)*2+1];isNaN(v)||isNaN(T)||(w?(v>x||v===x&&T>C)&&(x=v,C=T):(x=v,C=T,w=!0))}else for(let I=0;I<r.size;I++){let v=r.iget(I),T=v.re,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 Ho(r);let g=A.reduce((x,C)=>x*C,1),h=o[b],N=new Float64Array(g*2);for(let x=0;x<g;x++){let C=-1/0,w=-1/0,_=!1;for(let I=0;I<h;I++){let v=G(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 Ho(r);let f=l.reduce((d,b)=>d*b,1),m=o[c],p=new Float64Array(f);for(let d=0;d<f;d++){let b=-1/0;for(let A=0;A<m;A++){let g=G(d,c,A,o),h=Z(g,s,i),N=Number(u[h]);!isNaN(N)&&N>b&&(b=N)}p[d]=b===-1/0?NaN:b}let y=S.fromData(p,l,"float64");if(e){let d=[...o];return d[c]=1,S.fromData(p,d,"float64")}return y}function ra(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data,u=r.offset,i=r.strides;if(B(e)){let p=a;if(t===void 0){let h=1/0,N=1/0,D=-1;if(r.isCContiguous)for(let C=0;C<r.size;C++){let w=p[(u+C)*2],_=p[(u+C)*2+1];!ar(w,_)&&zr(w,_,h,N)<0&&(h=w,N=_,D=C)}else for(let C=0;C<r.size;C++){let w=r.iget(C),_=w.re,I=w.im;!ar(_,I)&&zr(_,I,h,N)<0&&(h=_,N=I,D=C)}return D}let y=t;if(y<0&&(y=o+y),y<0||y>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let d=Array.from(n).filter((h,N)=>N!==y);if(d.length===0)return ra(r);let b=d.reduce((h,N)=>h*N,1),A=n[y],g=new Int32Array(b);for(let h=0;h<b;h++){let N=1/0,D=1/0,x=0;for(let C=0;C<A;C++){let w=G(h,y,C,n),_=Z(w,i,u),I=p[_*2],v=p[_*2+1];!ar(I,v)&&zr(I,v,N,D)<0&&(N=I,D=v,x=C)}g[h]=x}return S.fromData(g,d,"int32")}if(t===void 0){let p=1/0,y=-1;if(r.isCContiguous)for(let b=0;b<r.size;b++){let A=Number(a[u+b]);!isNaN(A)&&A<p&&(p=A,y=b)}else for(let b=0;b<r.size;b++){let A=Number(r.iget(b));!isNaN(A)&&A<p&&(p=A,y=b)}return y}let s=t;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let c=Array.from(n).filter((p,y)=>y!==s);if(c.length===0)return ra(r);let l=c.reduce((p,y)=>p*y,1),f=n[s],m=new Int32Array(l);for(let p=0;p<l;p++){let y=1/0,d=0;for(let b=0;b<f;b++){let A=G(p,s,b,n),g=Z(A,i,u),h=Number(a[g]);!isNaN(h)&&h<y&&(y=h,d=b)}m[p]=d}return S.fromData(m,c,"int32")}function ta(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data,u=r.offset,i=r.strides;if(B(e)){let p=a;if(t===void 0){let h=-1/0,N=-1/0,D=-1;if(r.isCContiguous)for(let C=0;C<r.size;C++){let w=p[(u+C)*2],_=p[(u+C)*2+1];!ar(w,_)&&zr(w,_,h,N)>0&&(h=w,N=_,D=C)}else for(let C=0;C<r.size;C++){let w=r.iget(C),_=w.re,I=w.im;!ar(_,I)&&zr(_,I,h,N)>0&&(h=_,N=I,D=C)}return D}let y=t;if(y<0&&(y=o+y),y<0||y>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let d=Array.from(n).filter((h,N)=>N!==y);if(d.length===0)return ta(r);let b=d.reduce((h,N)=>h*N,1),A=n[y],g=new Int32Array(b);for(let h=0;h<b;h++){let N=-1/0,D=-1/0,x=0;for(let C=0;C<A;C++){let w=G(h,y,C,n),_=Z(w,i,u),I=p[_*2],v=p[_*2+1];!ar(I,v)&&zr(I,v,N,D)>0&&(N=I,D=v,x=C)}g[h]=x}return S.fromData(g,d,"int32")}if(t===void 0){let p=-1/0,y=-1;if(r.isCContiguous)for(let b=0;b<r.size;b++){let A=Number(a[u+b]);!isNaN(A)&&A>p&&(p=A,y=b)}else for(let b=0;b<r.size;b++){let A=Number(r.iget(b));!isNaN(A)&&A>p&&(p=A,y=b)}return y}let s=t;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let c=Array.from(n).filter((p,y)=>y!==s);if(c.length===0)return ta(r);let l=c.reduce((p,y)=>p*y,1),f=n[s],m=new Int32Array(l);for(let p=0;p<l;p++){let y=-1/0,d=0;for(let b=0;b<f;b++){let A=G(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 qm(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data,u=r.offset;if(B(e)){let d=a,b=r.size;if(t===void 0){let I=S.zeros([b],e),v=I.data,T=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,X=T*R+E*j;T=Y,E=X}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 fi(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 fi(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=G(y,s,g,n),N=Z(h,i,u),D=Number(a[N]);isNaN(D)||d.push(D)}if(d.length===0){m[y]=NaN;continue}d.sort((g,h)=>g-h);let b=d.length,A=Math.floor(b/2);b%2===0?m[y]=(d[A-1]+d[A])/2:m[y]=d[A]}let p=S.fromData(m,c,"float64");if(e){let y=[...n];return y[s]=1,S.fromData(m,y,"float64")}return p}function na(r,t,e,n=!1){if(L(r.dtype,"nanquantile","Complex numbers are not orderable."),t<0||t>1)throw new Error("Quantile must be between 0 and 1");let o=r.shape,a=o.length,u=r.data,i=r.offset,s=r.strides;if(e===void 0){let d=[];if(r.isCContiguous)for(let x=0;x<r.size;x++){let C=Number(u[i+x]);isNaN(C)||d.push(C)}else for(let x=0;x<r.size;x++){let C=Number(r.iget(x));isNaN(C)||d.push(C)}if(d.length===0)return NaN;d.sort((x,C)=>x-C);let A=d.length,g=t*(A-1),h=Math.floor(g),N=Math.ceil(g);if(h===N)return d[h];let D=g-h;return d[h]*(1-D)+d[N]*D}let c=e;if(c<0&&(c=a+c),c<0||c>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);let l=Array.from(o).filter((d,b)=>b!==c);if(l.length===0)return na(r,t);let f=l.reduce((d,b)=>d*b,1),m=o[c],p=new Float64Array(f);for(let d=0;d<f;d++){let b=[];for(let D=0;D<m;D++){let x=G(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 Pm(r,t,e,n=!1){return na(r,t/100,e,n)}function Ve(r,t,e){let n=ke(z(r),t,e);return typeof n=="number"||typeof n=="bigint"||n instanceof U?n:M(n)}function Pe(r,t,e){let n=ea(z(r),t,e);return typeof n=="number"||n instanceof U?n:M(n)}function je(r,t,e){let n=ei(z(r),t,e);return typeof n=="number"||typeof n=="bigint"||n instanceof U?n:M(n)}function Le(r,t,e){let n=Ct(z(r),t,e);return typeof n=="number"||n instanceof U?n:M(n)}var oa=Le;function We(r,t,e){let n=St(z(r),t,e);return typeof n=="number"||n instanceof U?n:M(n)}var aa=We;function Ge(r,t,e){let n=Um(z(r),t,e);return typeof n=="number"||n instanceof U?n:M(n)}function Ye(r,t){let e=ni(z(r),t);return typeof e=="number"?e:M(e)}function Ze(r,t){let e=oi(z(r),t);return typeof e=="number"?e:M(e)}function Hr(r,t,e,n){let o=ai(z(r),t,e,n);return typeof o=="number"?o:M(o)}var mi=Hr;function Xe(r,t,e,n){let o=Tm(z(r),t,e,n);return typeof o=="number"?o:M(o)}function Je(r,t,e){let n=$m(z(r),t,e);return typeof n=="number"?n:M(n)}function Ke(r,t,e,n){let o=km(z(r),t,e,n);return typeof o=="number"?o:M(o)}function Qe(r,t,e,n){let o=qe(z(r),t,e,n);return typeof o=="number"?o:M(o)}function He(r,t,e,n){let o=e?z(e):void 0,a=Ko(z(r),t,o,n);return typeof a=="number"||a instanceof U?a:M(a)}function rn(r,t,e){let n=si(z(r),t,e);return typeof n=="boolean"?n:M(n)}function tn(r,t,e){let n=ii(z(r),t,e);return typeof n=="boolean"?n:M(n)}function en(r,t){return M(Om(z(r),t))}function nn(r,t){return M(Em(z(r),t))}function on(r,t,e){let n=ui(z(r),t,e);return typeof n=="number"||n instanceof U?n:M(n)}function an(r,t,e){let n=ci(z(r),t,e);return typeof n=="number"||n instanceof U?n:M(n)}function sn(r,t,e){let n=li(z(r),t,e);return typeof n=="number"||n instanceof U?n:M(n)}function un(r,t,e,n){let o=Re(z(r),t,e,n);return typeof o=="number"?o:M(o)}function cn(r,t,e,n){let o=Rm(z(r),t,e,n);return typeof o=="number"?o:M(o)}function ln(r,t,e){let n=Qo(z(r),t,e);return typeof n=="number"||n instanceof U?n:M(n)}function fn(r,t,e){let n=Ho(z(r),t,e);return typeof n=="number"||n instanceof U?n:M(n)}function mn(r,t){let e=ra(z(r),t);return typeof e=="number"?e:M(e)}function pn(r,t){let e=ta(z(r),t);return typeof e=="number"?e:M(e)}function yn(r,t){return M(qm(z(r),t))}function dn(r,t){return M(Vm(z(r),t))}function bn(r,t,e){let n=fi(z(r),t,e);return typeof n=="number"?n:M(n)}function An(r,t,e,n){let o=na(z(r),t,e,n);return typeof o=="number"?o:M(o)}function gn(r,t,e,n){let o=Pm(z(r),t,e,n);return typeof o=="number"?o:M(o)}function It(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 hn(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function Lm(r,t){return typeof t=="number"?jA(r,t):hn(r,t)?PA(r,t):Ir(r,t,(e,n)=>It(e)&&It(n))}function PA(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 jA(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 Wm(r,t){if(typeof t=="number")return jm(r,t);if(t.size===1&&!B(t.dtype)&&r.dtype===t.dtype){let e=Number(t.iget(0));return jm(r,e)}return hn(r,t)?LA(r,t):Ir(r,t,(e,n)=>It(e)||It(n))}function LA(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 jm(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 Gm(r){let t=new Uint8Array(r.size),e=r.size;if(r.isCContiguous){let n=r.data,o=r.offset;if(B(r.dtype)){let a=n;for(let u=0;u<e;u++)t[u]=Rr(a,o+u)?0:1}else if(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 Ym(r,t){return typeof t=="number"?GA(r,t):hn(r,t)?WA(r,t):Ir(r,t,(e,n)=>It(e)!==It(n))}function WA(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 GA(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 Zm(r){let t=new Uint8Array(r.size),e=r.size;if(r.isCContiguous){let n=r.data,o=r.offset;if(B(r.dtype)){let a=n;for(let u=0;u<e;u++){let i=a[(o+u)*2],s=a[(o+u)*2+1];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 Xm(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 Jm(r){let t=new Uint8Array(r.size),e=r.size;if(r.isCContiguous){let n=r.data,o=r.offset;if(B(r.dtype)){let a=n;for(let u=0;u<e;u++){let i=a[(o+u)*2],s=a[(o+u)*2+1];t[u]=Number.isNaN(i)||Number.isNaN(s)?1:0}}else if(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 Km(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 ZA(r,t);if(hn(r,t))return YA(r,t);let e=Wr(r.shape,t.shape),n=e.reduce((s,c)=>s*c,1),o=S.zeros(e,"float64"),a=o.data,u=sa(r,e),i=sa(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 YA(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 ZA(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 Hm(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 rp(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 JA(r,t);if(hn(r,t))return XA(r,t);let e=Wr(r.shape,t.shape),n=e.reduce((s,c)=>s*c,1),o=S.zeros(e,"float64"),a=o.data,u=sa(r,e),i=sa(t,e);for(let s=0;s<n;s++){let c=Number(u.iget(s)),l=Number(i.iget(s));a[s]=wt(c,l)}return o}function XA(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]=wt(m,p)}return e}function JA(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]=wt(Number(i[u+s]),t)}else for(let i=0;i<o;i++)n[i]=wt(a[u+i],t)}else for(let a=0;a<o;a++)n[a]=wt(Number(r.iget(a)),t);return e}function wt(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 tp(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]=pi(Number(u[a+i]))}else for(let u=0;u<n;u++)e[u]=pi(o[a+u])}else for(let o=0;o<n;o++)e[o]=pi(Number(r.iget(o)));return t}function pi(r){if(Number.isNaN(r))return NaN;if(!Number.isFinite(r))return NaN;if(Math.abs(r)===0)return Number.MIN_VALUE;let e=wt(r,1/0);return Math.abs(e-r)}function sa(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 ep(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 np(r){return B(r.dtype)}function op(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 ap(r){return!B(r.dtype)}function sp(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 ip(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 up(r){return r.isFContiguous}function cp(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 lp(r){return typeof r=="number"||typeof r=="bigint"||typeof r=="boolean"||typeof r=="string"}function fp(r){return r==null?!1:typeof r[Symbol.iterator]=="function"}function mp(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 pp(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 QA(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=QA(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 yp(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 zt(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]=yp(o,s),[f,m]=yp(a,s);i[s]=e(c,l,f,m)?1:0}return S.fromData(i,n,"bool")}function dp(r,t){return typeof t=="number"?HA(r,t):B(r.dtype)||B(t.dtype)?zt(r,t,(e,n,o,a)=>e!==o?e>o:n>a):Ir(r,t,(e,n)=>e>n)}function bp(r,t){return typeof t=="number"?rg(r,t):B(r.dtype)||B(t.dtype)?zt(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"?tg(r,t):B(r.dtype)||B(t.dtype)?zt(r,t,(e,n,o,a)=>e!==o?e<o:n<a):Ir(r,t,(e,n)=>e<n)}function gp(r,t){return typeof t=="number"?eg(r,t):B(r.dtype)||B(t.dtype)?zt(r,t,(e,n,o,a)=>e!==o?e<=o:n<=a):Ir(r,t,(e,n)=>e<=n)}function hp(r,t){return typeof t=="number"?ng(r,t):B(r.dtype)||B(t.dtype)?zt(r,t,(e,n,o,a)=>e===o&&n===a):Ir(r,t,(e,n)=>e===n)}function Np(r,t){return typeof t=="number"?og(r,t):B(r.dtype)||B(t.dtype)?zt(r,t,(e,n,o,a)=>e!==o||n!==a):Ir(r,t,(e,n)=>e!==n)}function yi(r,t,e=1e-5,n=1e-8){return typeof t=="number"?ag(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 Dp(r,t,e=1e-5,n=1e-8){let o=yi(r,t,e,n),a=o.data;for(let u=0;u<o.size;u++)if(a[u]===0)return!1;return!0}function xp(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 HA(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 rg(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 tg(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 eg(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 ng(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 og(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 ag(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 Nn(r,t){let e=typeof t=="number"?t:z(t);return M(Lm(z(r),e))}function Dn(r,t){let e=typeof t=="number"?t:z(t);return M(Wm(z(r),e))}function xn(r){return M(Gm(z(r)))}function Cn(r,t){let e=typeof t=="number"?t:z(t);return M(Ym(z(r),e))}function Sn(r){return M(Zm(z(r)))}function wn(r){return M(Xm(z(r)))}function In(r){return M(Jm(z(r)))}function zn(r){return M(Km(z(r)))}function di(r){return M(sp(z(r)))}function bi(r){return M(ip(z(r)))}function Ai(r){return M(ep(z(r)))}function gi(r){return np(z(r))}function hi(r){return M(op(z(r)))}function Ni(r){return ap(z(r))}function Di(r,t){return M(cp(z(r),t))}function xi(r){return up(z(r))}function Ci(r){return lp(r)}function Si(r){return fp(r)}function wi(r,t){return mp(r,t)}function Ii(r,t){return pp(r,t)}function _n(r,t){let e=typeof t=="number"?t:z(t);return M(Qm(z(r),e))}function vn(r){return M(Hm(z(r)))}function Mn(r,t){let e=typeof t=="number"?t:z(t);return M(rp(z(r),e))}function Fn(r){return M(tp(z(r)))}function Bn(r,t){return M(dp(z(r),typeof t=="number"?t:z(t)))}function Tn(r,t){return M(bp(z(r),typeof t=="number"?t:z(t)))}function On(r,t){return M(Ap(z(r),typeof t=="number"?t:z(t)))}function En(r,t){return M(gp(z(r),typeof t=="number"?t:z(t)))}function Un(r,t){return M(hp(z(r),typeof t=="number"?t:z(t)))}function $n(r,t){return M(Np(z(r),typeof t=="number"?t:z(t)))}function kn(r,t,e=1e-5,n=1e-8){return M(yi(z(r),typeof t=="number"?t:z(t),e,n))}function Rn(r,t,e=1e-5,n=1e-8){return Dp(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 Sp(r,t=-1){let e=r.shape,n=e.length,o=r.dtype,a=r.data,u=r.offset,i=r.strides;if(n===0)return 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=G(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=G(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=G(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=G(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=G(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=G(y,s,b,e),g=Dr(A,e);l[g]=d[b]}}return c}function wp(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=G(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=G(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=G(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=G(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=G(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=G(y,s,b,e),g=Dr(A,e);l[g]=d[b].idx}}return c}function Ip(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 sg(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 ig(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 ug(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 cg(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 zp(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=G(y,u,b,n),g=Dr(A,n);d.push(p[g])}ig(d,s);for(let b=0;b<i;b++){let A=G(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=G(p,u,d,n),A=Dr(b,n);y.push(Number(l[A]))}sg(y,s);for(let d=0;d<i;d++){let b=G(p,u,d,n),A=Dr(b,n);l[A]=y[d]}}return c}function _p(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=G(A,c,h,n),D=Z(N,s,i);g.push({value:b[D],idx:h})}cg(g,f);for(let h=0;h<l;h++){let N=G(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=G(b,c,g,n),N=Z(h,s,i);A.push({value:Number(u[N]),idx:g})}ug(A,f);for(let g=0;g<l;g++){let h=G(b,c,g,n),N=Dr(h,n);p[N]=A[g].idx}}return m}function vp(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 zi(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 Mp(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 Fp(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 Bp(r,t,e){if(t===void 0&&e===void 0)return zi(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 X=0;X<R.length;X++)Y[u-R.length+X]=R[X];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]],X=Math.max(...Y);for(let J of Y)if(J!==1&&J!==X)throw new Error("operands could not be broadcast together");f.push(X)}let m=t.dtype,p=S.zeros(f,m),y=p.data,d=(R,Y)=>{let X=[],J=1;for(let rr=R.length-1;rr>=0;rr--)X.unshift(J),J*=R[rr];for(;X.length<Y.length;)X.unshift(0);for(let rr=0;rr<Y.length;rr++)Y[rr]===1&&f[rr]!==1&&(X[rr]=0);return X},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,X=k;for(let J=0;J<D;J++)gr(_,I+J,x)?(R[J*2]=Y[(E+J)*2],R[J*2+1]=Y[(E+J)*2+1]):(R[J*2]=X[(V+J)*2],R[J*2+1]=X[(V+J)*2+1])}else if(O(m)){let R=y,Y=T,X=k;for(let J=0;J<D;J++)gr(_,I+J,x)?R[J]=Y[E+J]:R[J]=X[V+J]}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,X=0,J=0,rr=0;for(let nr=0;nr<u;nr++){let dr=Math.floor(Y/h[nr]);Y=Y%h[nr],X+=dr*b[nr],J+=dr*A[nr],rr+=dr*g[nr]}let yr;if(w)yr=gr(_,I+X,x);else{let nr=r.iget(X);yr=x?nr.re!==0||nr.im!==0:!!nr}if(yr)if(C)if(v){let nr=T;y[R*2]=nr[(E+J)*2],y[R*2+1]=nr[(E+J)*2+1]}else{let nr=t.iget(J);y[R*2]=nr.re,y[R*2+1]=nr.im}else v?y[R]=T[E+J]:y[R]=t.iget(J);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 Tp(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 Op(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 _i(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 _i(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=G(b,l,g,e),N=Z(h,i,u);gr(o,N,s)&&A++}p[b]=A}return m}function qn(r,t=-1){return M(Sp(z(r),t))}function Vn(r,t=-1){return M(wp(z(r),t))}function vi(r){return M(Ip(r.map(t=>z(t))))}function Pn(r,t,e=-1){return M(zp(z(r),t,e))}function jn(r,t,e=-1){return M(_p(z(r),t,e))}function Mi(r){return M(vp(z(r)))}function Ln(r){return $r(zi(z(r)))}function Wn(r){return M(Mp(z(r)))}function Fi(r){return M(Fp(z(r)))}function Bi(r,t,e){let n=Bp(z(r),t?z(t):void 0,e?z(e):void 0);return Array.isArray(n)?$r(n):M(n)}function Gn(r,t,e="left"){return M(Tp(z(r),z(t),e))}function Ti(r,t){return M(Op(z(r),z(t)))}function Oi(r,t){let e=_i(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 Yn(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function $p(r,t){return vr(r.dtype,"bitwise_and"),typeof t=="number"?mg(r,t):(vr(t.dtype,"bitwise_and"),Yn(r,t)?fg(r,t):sr(r,t,(e,n)=>e&n,"bitwise_and"))}function fg(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 mg(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 kp(r,t){return vr(r.dtype,"bitwise_or"),typeof t=="number"?yg(r,t):(vr(t.dtype,"bitwise_or"),Yn(r,t)?pg(r,t):sr(r,t,(e,n)=>e|n,"bitwise_or"))}function pg(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 yg(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 Rp(r,t){return vr(r.dtype,"bitwise_xor"),typeof t=="number"?bg(r,t):(vr(t.dtype,"bitwise_xor"),Yn(r,t)?dg(r,t):sr(r,t,(e,n)=>e^n,"bitwise_xor"))}function dg(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 bg(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 $i(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 qp(r){return $i(r)}function Vp(r,t){if(vr(r.dtype,"left_shift"),typeof t=="number")return Ep(r,t);if(vr(t.dtype,"left_shift"),t.size===1||t.ndim===1&&t.shape[0]===1){let e=Number(t.iget(0));return Ep(r,e)}return Yn(r,t)?Ag(r,t):sr(r,t,(e,n)=>e<<n,"left_shift")}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;for(let f=0;f<o;f++){let m=typeof a[i+f]=="bigint"?a[i+f]:BigInt(Math.round(Number(a[i+f]))),p=typeof u[s+f]=="bigint"?u[s+f]:BigInt(Math.round(Number(u[s+f])));l[f]=m<<p}}else for(let l=0;l<o;l++)c[l]=a[i+l]<<u[s+l];return n}function Ep(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.offset,u=r.size,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(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 Pp(r,t){if(vr(r.dtype,"right_shift"),typeof t=="number")return Up(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 Up(r,e)}return Yn(r,t)?gg(r,t):sr(r,t,(e,n)=>e>>n,"right_shift")}function gg(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 Up(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 jp(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=ia(n),A=ia(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 Lp(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=ia(o),g=ia(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 ia(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 Wp(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]=Ui(c[l]);else for(let l=0;l<a;l++)s[l]=Ui(c[o+l])}else for(let c=0;c<a;c++)s[c]=Ui(r.iget(c));else if(u)if(o===0)for(let c=0;c<a;c++)s[c]=Ei(n[c]);else for(let c=0;c<a;c++)s[c]=Ei(n[o+c]);else for(let c=0;c<a;c++)s[c]=Ei(Number(r.iget(c)));return i}function Ei(r){r=r>>>0;let t=0;for(;r!==0;)r=r&r-1,t++;return t}function Ui(r){r<0n&&(r=BigInt.asUintN(64,r));let t=0;for(;r!==0n;)r=r&r-1n,t++;return t}function Zn(r,t){let e=typeof t=="number"?t:z(t);return M($p(z(r),e))}function Xn(r,t){let e=typeof t=="number"?t:z(t);return M(kp(z(r),e))}function Jn(r,t){let e=typeof t=="number"?t:z(t);return M(Rp(z(r),e))}function Kn(r){return M($i(z(r)))}function Qn(r){return M(qp(z(r)))}function Hn(r,t){let e=typeof t=="number"?t:z(t);return M(Vp(z(r),e))}function ro(r,t){let e=typeof t=="number"?t:z(t);return M(Pp(z(r),e))}function ki(r,t,e){return M(jp(z(r),t,e))}function Ri(r,t,e,n){return M(Lp(z(r),t,e,n))}function qi(r){return M(Wp(z(r)))}function ua(r){if(!isFinite(r))return r;let t=Math.floor(r),e=r-t;return Math.abs(e-.5)<1e-10?t%2===0?t:t+1:Math.round(r)}function Gp(r,t=0){L(r.dtype,"around","Rounding is not defined for complex numbers.");let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",u=S.zeros(n,a),i=u.data,s=Math.pow(10,t);if(r.isCContiguous){let c=r.data,l=r.offset;for(let f=0;f<o;f++){let m=Number(c[l+f]);i[f]=ua(m*s)/s}}else for(let c=0;c<o;c++){let l=Number(r.iget(c));i[c]=ua(l*s)/s}return u}function Yp(r){L(r.dtype,"ceil","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.size,o=t==="float32"?"float32":"float64",a=S.zeros(e,o),u=a.data;if(r.isCContiguous){let i=r.data,s=r.offset;for(let c=0;c<n;c++)u[c]=Math.ceil(Number(i[s+c]))}else for(let i=0;i<n;i++)u[i]=Math.ceil(Number(r.iget(i)));return a}function Zp(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 Xp(r){L(r.dtype,"floor","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.size,o=t==="float32"?"float32":"float64",a=S.zeros(e,o),u=a.data;if(r.isCContiguous){let i=r.data,s=r.offset;for(let c=0;c<n;c++)u[c]=Math.floor(Number(i[s+c]))}else for(let i=0;i<n;i++)u[i]=Math.floor(Number(r.iget(i)));return a}function Jp(r){L(r.dtype,"rint","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.size,o=t==="float32"?"float32":"float64",a=S.zeros(e,o),u=a.data;if(r.isCContiguous){let i=r.data,s=r.offset;for(let c=0;c<n;c++)u[c]=ua(Number(i[s+c]))}else for(let i=0;i<n;i++)u[i]=ua(Number(r.iget(i)));return a}function Kp(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 _t(r,t=0){return M(Gp(z(r),t))}var Vi=_t;function to(r){return M(Yp(z(r)))}function eo(r){return M(Zp(z(r)))}function no(r){return M(Xp(z(r)))}function oo(r){return M(Jp(z(r)))}function ao(r){return M(Kp(z(r)))}function Pi(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 Dg(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)=>Pi(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:X,index:J}=D[R];I===void 0||!Dg(Y,X,I,v)?(I!==void 0&&_.push(T),x.push({re:Y,im:X}),C.push(J),T=1,I=Y,v=X):T++}T>0&&_.push(T);let E=new Map,$=-1;for(let R=0;R<x.length;R++){let{re:Y,im:X}=x[R];isNaN(Y)||isNaN(X)?$=R:E.set(`${Y},${X}`,R)}for(let R=0;R<a;R++){let Y=N[(i+R)*2],X=N[(i+R)*2+1];isNaN(Y)||isNaN(X)?w[R]=$:w[R]=E.get(`${Y},${X}`)}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 X=0;X<C.length;X++)Y[X]=C[X];j.indices=R}if(e){let R=S.zeros([w.length],"int32"),Y=R.data;for(let X=0;X<w.length;X++)Y[X]=w[X];j.inverse=R}if(n){let R=S.zeros([_.length],"int32"),Y=R.data;for(let X=0;X<_.length;X++)Y[X]=_[X];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 ji(r,t)}function Hp(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 ji(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 ry(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 ty(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)=>Pi(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 ey(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)=>Pi(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 ny(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 oy(r){let e=xr(r,!0,!0,!0);return{values:e.values,indices:e.indices,inverse_indices:e.inverse,counts:e.counts}}function ay(r){let e=xr(r,!1,!1,!0);return{values:e.values,counts:e.counts}}function sy(r){let e=xr(r,!1,!0,!1);return{values:e.values,inverse_indices:e.inverse}}function iy(r){return xr(r)}function Li(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 Wi(r,t){return M(Qp(z(r),z(t)))}function Gi(r,t){return M(Hp(z(r),z(t)))}function Yi(r,t){return M(ji(z(r),z(t)))}function Zi(r,t){return M(ry(z(r),z(t)))}function Xi(r,t){return M(ty(z(r),z(t)))}function Ji(r,t){return M(ey(z(r),z(t)))}function Ki(r,t){return M(ny(z(r),t))}function Qi(r){let t=oy(z(r));return{values:M(t.values),indices:M(t.indices),inverse_indices:M(t.inverse_indices),counts:M(t.counts)}}function Hi(r){let t=ay(z(r));return{values:M(t.values),counts:M(t.counts)}}function ru(r){let t=sy(z(r));return{values:M(t.values),inverse_indices:M(t.inverse_indices)}}function tu(r){return M(iy(z(r)))}function uy(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 cy(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=Cg(o,u,l):f=so(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 Cg(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 so(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 ly(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=so(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 fy(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=so(c,c.length,g)-1,x=so(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 my(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],_=so(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 nu(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 py(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 nu(r,u,e)}function ou(r,t,e=!0,n=!1,o){let a=r.shape,u=r.data,i=B(r.dtype)||t!==void 0&&B(t.dtype),s;if(o!==void 0?s=o:s=n?0:1,a.length===1)if(t!==void 0){let y=t.data,d=r.size,b=B(r.dtype),A=B(t.dtype);if(t.size!==d)throw new Error("m and y must have same length");if(i){let w=0,_=0,I=0,v=0;for(let rr=0;rr<d;rr++)b?(w+=u[rr*2],_+=u[rr*2+1]):w+=Number(u[rr]),A?(I+=y[rr*2],v+=y[rr*2+1]):I+=Number(y[rr]);w/=d,_/=d,I/=d,v/=d;let T=0,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 X=d-s;if(X<=0){let rr=new Float64Array(8);return rr.fill(NaN),S.fromData(rr,[2,2],"complex128")}T/=X,$/=X,V/=X,j/=X,R/=X,Y/=X;let J=new Float64Array(8);return J[0]=T,J[1]=E,J[2]=V,J[3]=j,J[4]=R,J[5]=Y,J[6]=$,J[7]=k,S.fromData(J,[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 yy(r,t,e=!0){let n=B(r.dtype)||t!==void 0&&B(t.dtype);if(r.shape.length===1&&t===void 0)return n?S.fromData(new Float64Array([1,0]),[],"complex128"):S.fromData(new Float64Array([1]),[],"float64");let o=ou(r,t,e,!1),a=o.data,i=o.shape[0];if(n){let c=new Float64Array(i*i*2);for(let l=0;l<i;l++)for(let f=0;f<i;f++){let m=a[(l*i+f)*2],p=a[(l*i+f)*2+1],y=a[(l*i+l)*2],d=a[(f*i+f)*2],b=(l*i+f)*2;if(y<=0||d<=0)c[b]=NaN,c[b+1]=NaN;else{let A=Math.sqrt(y*d);c[b]=m/A,c[b+1]=p/A}}return S.fromData(c,[i,i],"complex128")}let s=new Float64Array(i*i);for(let c=0;c<i;c++)for(let l=0;l<i;l++){let f=Number(a[c*i+l]),m=Number(a[c*i+c]),p=Number(a[l*i+l]);m<=0||p<=0?s[c*i+l]=NaN:s[c*i+l]=f/Math.sqrt(m*p)}return S.fromData(s,[i,i],"float64")}function dy(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=eu(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 eu(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 eu(r,t,e,n,"sturges");let d=2*y/Math.pow(s,1/3);return Math.ceil(a/d)}case"doane":{let d=Sg(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 eu(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 Sg(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 by(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 au(r,t,e){let n=t?z(t):void 0;return M(uy(z(r),n,e))}function su(r,t,e){return M(cy(z(r),z(t),e))}function iu(r,t,e,n,o){let a=t instanceof P?z(t):t,u=o?z(o):void 0,i=ly(z(r),a,e,n,u);return[M(i.hist),M(i.bin_edges)]}function uu(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=fy(z(r),z(t),u,n,o,i);return[M(s.hist),M(s.x_edges),M(s.y_edges)]}function cu(r,t,e,n,o){let a=o?z(o):void 0,u=my(z(r),t,e,n,a);return[M(u.hist),u.edges.map(i=>M(i))]}function lu(r,t,e){return M(nu(z(r),z(t),e))}function fu(r,t,e){return M(py(z(r),z(t),e))}function mu(r,t,e,n,o){return M(ou(z(r),t?z(t):void 0,e,n,o))}function pu(r,t,e){return M(yy(z(r),t?z(t):void 0,e))}function yu(r,t,e,n){return M(dy(z(r),t,e,n?z(n):void 0))}function du(r,t,e,n){let o=by(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=Ig(u,a);return u}function Ig(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 gy(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 hy(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(zg(r,a[s],u[s]));return i.length===1?i[0]:i}function zg(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 io(r,t,e){return M(Ay(z(r),t,e))}function bu(r,t,e){return M(gy(z(r),t??null,e??null))}function Au(r,t,e){let n=hy(z(r),t,e);return Array.isArray(n)?$r(n):M(n)}function Ny(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(B(t)){let o=Bt(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 Dy(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(B(t)){let a=Bt(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 xy(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 Cy(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 gu(r){return M(Ny(z(r)))}function hu(r){return M(Dy(z(r)))}function uo(r){return M(xy(z(r)))}function Nu(r,t){return M(Cy(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 Sy(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 wy(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 Iy(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 zy(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 _y(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 vy(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 My(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 Fy(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 By(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 Ty(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 Oy(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 xu(r,t=2){if(t<1)throw new Error("ndim must be at least 1");let e=new Int32Array(r);for(let o=0;o<r;o++)e[o]=o;let n=[];for(let o=0;o<t;o++)n.push(S.fromData(new Int32Array(e),[r],"int32"));return n}function Ey(r){let t=r.shape,e=t.length;if(e<2)throw new Error("array must be at least 2-D");let n=t[0];for(let o=1;o<e;o++)if(t[o]!==n)throw new Error("All dimensions of input must be equal");return xu(n,e)}function Cu(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 Uy(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return Cu(e[0],t,e[1])}function Su(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 $y(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return Su(e[0],t,e[1])}function ky(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 Ry(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 qy(...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 Py(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 jy(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 Ly(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 Wy(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 wu(r,t){return r.data.buffer===t.data.buffer}function Gy(r,t){return wu(r,t)}var jr={divide:"warn",over:"warn",under:"ignore",invalid:"warn"};function Iu(){return{...jr}}function Yy(r,t,e,n,o){let a=Iu();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 co(r,t){return hr(Du(z(r),t),r)}function zu(...r){let t=r.map(z);return Sy(t).map(e=>M(e))}function _u(...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 vt(r,t,e){return M(wy(z(r),t,e))}function lo(r,t,e){let n=Array.isArray(e)?z(Q(e)):z(e);Iy(z(r),t,n)}function vu(r,t,e){return M(vy(z(r),z(t),e))}function Mu(r,t,e,n){My(z(r),z(t),z(e),n)}function fo(r,t){let e=t.map(z);return M(zy(z(r),e))}function et(r,t,e){return M(By(z(r),z(t),e))}function Fu(r,t,e=0){let n;return t instanceof P?n=Array.from(t.data):Array.isArray(t[0])?n=t.flat():n=t,vt(r,n,e)}function Bu(r,t,e){return et(t,r,e)}function Tu(r,t,e=0){let n=r.map(z),o=t.map(z);return M(Ty(n,o,e))}function Ou(r,t,e){Oy(z(r),z(t),z(e))}function Eu(r,t,e){Fy(z(r),z(t),z(e))}function Uu(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 $u(r,t="int32"){return M(Ry(r,t))}function ku(...r){let t=r.map(z);return qy(...t).map(e=>M(e))}function Ru(r,t,e="raise"){let n=r.map(z);return M(Vy(n,t,e))}function qu(r,t){let e=typeof r=="number"?z(Q([r])):z(r);return Py(e,t).map(n=>M(n))}function Vu(r,t=2){return xu(r,t).map(e=>M(e))}function Pu(r){return Ey(z(r)).map(t=>M(t))}function ju(r,t,e=!1){jy(z(r),t,e)}function Lu(r,t=0,e){return Cu(r,t,e).map(n=>M(n))}function Wu(r,t=0){return Uy(z(r),t).map(e=>M(e))}function Gu(r,t=0,e){return Su(r,t,e).map(n=>M(n))}function Yu(r,t=0){return $y(z(r),t).map(e=>M(e))}function Zu(r,t,e=0){return ky(r,(o,a)=>z(t(o,a)),e).map(o=>M(o))}function Xu(r,t,e=!1){return _y(z(r),z(t),e)}function Ju(r,t){return xp(z(r),z(t))}function Ku(r,t,e){let n=o=>{let a=r(M(o));return typeof a=="number"?a:z(a)};return M(Ly(z(e),t,n))}function Qu(r,t,e){let n=(o,a)=>z(r(M(o),a));return M(Wy(z(t),n,e))}function Hu(r,t){return wu(z(r),z(t))}function rc(r,t){return Gy(z(r),z(t))}var tc=Iu,ec=Yy;var nc=pl,oc=yl,ac=dl,sc=Ot,ic=Tt,uc=bl,cc=Al;function lc(r,t){return Eo(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,t?.floatmode??null,t?.sign??null)}function fc(r,t,e,n){return gl(z(r),t,e,n)}function mo(r,t,e){return Uo(z(r),t,e)}function mc(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 ca(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 pc(r){return r instanceof P?r.size:typeof r=="number"||typeof r=="bigint"||typeof r=="boolean"?1:Array.isArray(r)?ca(r).reduce((e,n)=>e*n,1):1}function yc(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 dc(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 bc(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 Ac(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 gc(r,t){if(!t||t===r.dtype)return r.copy();throw new Error("view with different dtype not fully implemented")}function hc(r,t,e="",n=""){throw new Error("tofile requires Node.js file system access. Use serializeNpy for portable serialization.")}function Nc(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 Dc(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 xt([o,a],0)}return xt([r,n],e)}function la(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 xc(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 Cc(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 Ic=["int8","int16","int32","int64"],zc=["uint8","uint16","uint32","uint64"],Xy=[...Ic,...zc],Sc=["float32","float64"],wc=["complex64","complex128"],Fg=[...Xy,...Sc,...wc],Zy={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 fa(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=Zy[n]??-1,a=Zy[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 _c(...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 vc(...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=>Ic.includes(c)),u=t.some(c=>zc.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 Mc(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 Fc(r,t){let e=r instanceof P?r.dtype:r;if(typeof t=="string")switch(t){case"number":case"numeric":return Fg.includes(e);case"integer":case"int":return Xy.includes(e);case"signedinteger":return Ic.includes(e);case"unsignedinteger":return zc.includes(e);case"floating":case"float":return Sc.includes(e);case"complexfloating":case"complex":return wc.includes(e);case"inexact":return Sc.includes(e)||wc.includes(e);default:return e===t}return e===t}function Bc(r){return r}function Tc(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(!fa(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 Oc(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 Ec(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 Uc(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 $c(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 kc(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 Rc(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 qc(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 Vc(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 Pc(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 jc(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 Jy([],[]);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=Bg(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 Jy(c,l)}function Jy(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 Bg(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 Tg(e,t)}function Tg(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(...Ky(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(...Ky(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 Ky(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 po=new Uint8Array([147,78,85,77,80,89]),Hy=["float64","float32","complex128","complex64","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"];function Lc(){let r=new ArrayBuffer(2);return new DataView(r).setInt16(0,256,!0),new Int16Array(r)[0]===256}var Og={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"},Wc={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"},Qy={S:"byte strings",U:"Unicode strings",O:"Python objects",V:"structured arrays (void)",M:"datetime64",m:"timedelta64"};function rd(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 Qy)throw new Zr(`Unsupported dtype: ${Qy[n]} (${r}). Use the 'force' parameter to skip arrays with unsupported dtypes.`);let o=Og[e];if(!o)throw new Zr(`Unknown or unsupported dtype descriptor: ${r}. Supported types: ${Hy.join(", ")}. Use the 'force' parameter to skip arrays with unsupported dtypes.`);let a=Lc(),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=Gc(t);return Yc(t,e)}function Gc(r){if(r.length<10)throw new Sr("File too small to be a valid NPY file");for(let c=0;c<po.length;c++)if(r[c]!==po[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=Eg(i);return{version:{major:t,minor:e},header:s,dataOffset:a}}function Yc(r,t){let{header:e,dataOffset:n}=t,{dtype:o,needsByteSwap:a,itemsize:u}=rd(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=Ug(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=$g(b,d),p=e.shape}else y=S.fromData(m,[...p],o);return new P(y)}function Eg(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 Ug(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 $g(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=td(t),c=td(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 td(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=Wc[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)+`
|
|
6
|
+
`;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(po,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 kg(r,d.subarray(b),m),d}function kg(r,t,e){let n=r.dtype,o=r.size,a=Lc(),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?Rg(l,p,m,n==="uint64"):i?qg(l,p,m,n):Vg(l,p,m,n)}}}function Rg(r,t,e,n){n?r.setBigUint64(t,e,!0):r.setBigInt64(t,e,!0)}function qg(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 Vg(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 Pg=(()=>{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 Zc(r){let t=4294967295;for(let e=0;e<r.length;e++)t=Pg[(t^r[e])&255]^t>>>8;return(t^4294967295)>>>0}async function od(r){let t=sd(r),e=new Map;for(let n of t){let o=await jg(n);e.set(n.name,o)}return e}function ad(r){let t=sd(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 sd(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 jg(r){if(r.compressionMethod===0)return r.compressedData;if(r.compressionMethod===8)return await Lg(r.compressedData);throw new Error(`Unsupported compression method: ${r.compressionMethod}`)}async function Lg(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 bo(r,t={}){let e=t.force??!1,n=await od(r);return id(n,e)}function Ao(r,t={}){let e=t.force??!1,n=ad(r);return id(n,e)}function id(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 ud(r,t={}){let e=await bo(r,t);return Object.fromEntries(e.arrays)}function cd(r,t={}){let e=Ao(r,t);return Object.fromEntries(e.arrays)}async function ld(r,t={}){let e=t.compress??!1,n=[];for(let[m,p]of r){let y=Zc(p),d,b;e?(d=await Gg(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=md(s,c,l,m);let f=l;for(let m of n)l=pd(s,c,l,m);return yd(c,l,n.length,a,f),s}function fd(r){let t=[];for(let[l,f]of r){let m=Zc(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=md(u,i,s,l);let c=s;for(let l of t)s=pd(u,i,s,l);return yd(i,s,t.length,n,c),u}function md(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 pd(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 yd(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 Gg(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 Xc(r,t={}){let e=dd(r);return ld(e,{compress:t.compress??!1})}function Jc(r){let t=dd(r);return fd(t)}function dd(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 go(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 ho(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 bd(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 No(r,t={}){let{fmt:e="%.18e",delimiter:n=" ",newline:o=`
|
|
7
|
+
`,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(bd(l,e));else for(let l of c){let f=l.map(m=>bd(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=Fo(s);return Bo(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=ve(this,e).storage,a=n.data===this.data?this._base??this:void 0;return r.fromStorage(n,a)}ravel(){let t=Me(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;lo(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(fo(this,t))}clip(t,e){return q(ue(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 mo(this)}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(_t(this,t))}allclose(t,e=1e-5,n=1e-8){return Rn(this,t,e,n)}isclose(t,e=1e-5,n=1e-8){return q(kn(this,t,e,n))}average(t,e){let n=He(this,e,t);return n instanceof P?q(n):n}dot(t){let e=dt(this,t);return e instanceof P?q(e):e}trace(){return bt(this)}inner(t){let e=ht(this,t);return e instanceof P?q(e):e}tensordot(t,e=2){let n=Dt(this,t,e);return n instanceof P?q(n):n}divmod(t){let e=oe(this,t);return[q(e[0]),q(e[1])]}searchsorted(t,e="left"){return q(Gn(this,t,e))}sqrt(){return q(kt(this))}exp(){return q(qt(this))}exp2(){return q(Vt(this))}expm1(){return q(Pt(this))}log(){return q(jt(this))}log2(){return q(Lt(this))}log10(){return q(Wt(this))}log1p(){return q(Gt(this))}absolute(){return q(Xt(this))}negative(){return q(Jt(this))}sign(){return q(Kt(this))}positive(){return q(re(this))}reciprocal(){return q(te(this))}ceil(){return q(to(this))}fix(){return q(eo(this))}floor(){return q(no(this))}rint(){return q(oo(this))}trunc(){return q(ao(this))}sin(){return q(ce(this))}cos(){return q(le(this))}tan(){return q(fe(this))}arcsin(){return q(me(this))}arccos(){return q(pe(this))}arctan(){return q(ye(this))}degrees(){return q(Ae(this))}radians(){return q(ge(this))}sinh(){return q(he(this))}cosh(){return q(Ne(this))}tanh(){return q(De(this))}arcsinh(){return q(xe(this))}arccosh(){return q(Ce(this))}arctanh(){return q(Se(this))}bitwise_not(){return q(Kn(this))}invert(){return q(Qn(this))}logical_not(){return q(xn(this))}isfinite(){return q(Sn(this))}isinf(){return q(wn(this))}isnan(){return q(In(this))}isnat(){return q(zn(this))}signbit(){return q(vn(this))}spacing(){return q(Fn(this))}cbrt(){return q(ee(this))}fabs(){return q(ne(this))}square(){return q(ae(this))}conj(){return q(uo(this))}flatten(){return q(Br(this))}argwhere(){return q(Wn(this))}add(t){return q(Et(this,t))}subtract(t){return q(Ut(this,t))}multiply(t){return q($t(this,t))}divide(t){return q(ft(this,t))}mod(t){return q(Qt(this,t))}floor_divide(t){return q(Ht(this,t))}power(t){return q(Rt(this,t))}logaddexp(t){return q(Yt(this,t))}logaddexp2(t){return q(Zt(this,t))}arctan2(t){return q(de(this,t))}hypot(t){return q(be(this,t))}greater(t){return q(Bn(this,t))}greater_equal(t){return q(Tn(this,t))}less(t){return q(On(this,t))}less_equal(t){return q(En(this,t))}equal(t){return q(Un(this,t))}not_equal(t){return q($n(this,t))}bitwise_and(t){return q(Zn(this,t))}bitwise_or(t){return q(Xn(this,t))}bitwise_xor(t){return q(Jn(this,t))}left_shift(t){return q(Hn(this,t))}right_shift(t){return q(ro(this,t))}logical_and(t){return q(Nn(this,t))}logical_or(t){return q(Dn(this,t))}logical_xor(t){return q(Cn(this,t))}copysign(t){return q(_n(this,t))}nextafter(t){return q(Mn(this,t))}remainder(t){return q(se(this,t))}heaviside(t){return q(ie(this,t))}matmul(t){return q(_e(this,t))}outer(t){return q(Nt(this,t))}sum(t,e=!1){let n=Ve(this,t,e);return n instanceof P?q(n):n}mean(t,e=!1){let n=Pe(this,t,e);return n instanceof P?q(n):n}prod(t,e=!1){let n=je(this,t,e);return n instanceof P?q(n):n}max(t,e=!1){let n=Le(this,t,e);return n instanceof P?q(n):n}min(t,e=!1){let n=We(this,t,e);return n instanceof P?q(n):n}ptp(t,e=!1){let n=Ge(this,t,e);return n instanceof P?q(n):n}nansum(t,e=!1){let n=on(this,t,e);return n instanceof P?q(n):n}nanprod(t,e=!1){let n=an(this,t,e);return n instanceof P?q(n):n}nanmean(t,e=!1){let n=sn(this,t,e);return n instanceof P?q(n):n}nanmin(t,e=!1){let n=ln(this,t,e);return n instanceof P?q(n):n}nanmax(t,e=!1){let n=fn(this,t,e);return n instanceof P?q(n):n}argmin(t){let e=Ye(this,t);return e instanceof P?q(e):e}argmax(t){let e=Ze(this,t);return e instanceof P?q(e):e}nanargmin(t){let e=mn(this,t);return e instanceof P?q(e):e}nanargmax(t){let e=pn(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=Xe(this,t,e,n);return o instanceof P?q(o):o}nanvar(t,e=0,n=!1){let o=un(this,t,e,n);return o instanceof P?q(o):o}nanstd(t,e=0,n=!1){let o=cn(this,t,e,n);return o instanceof P?q(o):o}all(t,e=!1){let n=rn(this,t,e);return n instanceof P?q(n):n}any(t,e=!1){let n=tn(this,t,e);return n instanceof P?q(n):n}median(t,e=!1){let n=Je(this,t,e);return n instanceof P?q(n):n}nanmedian(t,e=!1){let n=bn(this,t,e);return n instanceof P?q(n):n}percentile(t,e,n=!1){let o=Ke(this,t,e,n);return o instanceof P?q(o):o}quantile(t,e,n=!1){let o=Qe(this,t,e,n);return o instanceof P?q(o):o}nanquantile(t,e,n=!1){let o=An(this,t,e,n);return o instanceof P?q(o):o}nanpercentile(t,e,n=!1){let o=gn(this,t,e,n);return o instanceof P?q(o):o}cumsum(t){return q(en(this,t))}cumprod(t){return q(nn(this,t))}nancumsum(t){return q(yn(this,t))}nancumprod(t){return q(dn(this,t))}sort(t=-1){return q(qn(this,t))}argsort(t=-1){return q(Vn(this,t))}partition(t,e=-1){return q(Pn(this,t,e))}argpartition(t,e=-1){return q(jn(this,t,e))}diagonal(t=0,e=0,n=1){return q(At(this,t,e,n))}resize(t){return q($e(this,t))}diff(t=1,e=-1){return q(io(this,t,e))}take(t,e){return q(vt(this,t,e))}repeat(t,e){return q(Ee(this,t,e))}transpose(t){return q(gt(this,t))}squeeze(t){return q(Fe(this,t))}expand_dims(t){return q(Be(this,t))}swapaxes(t,e){return q(Te(this,t,e))}moveaxis(t,e){return q(Oe(this,t,e))}nonzero(){return Ln(this).map(q)}};function Ad(...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=co(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 fh(r,t){return F(co(r,t))}function mh(r,t,e){return F(vt(r,t,e))}function ph(r,t,e){return F(vu(r,t,e))}function yh(r,t){return F(fo(r,t))}function dh(r,t,e){return F(et(r,t,e))}function bh(r,t,e=0){return F(Fu(r,t,e))}function Ah(r,t,e){return F(Bu(r,t,e))}function gh(r,t,e=0){return F(Tu(r,t,e))}function hh(r,t="int32"){return F($u(r,t))}function Nh(r,t,e="raise"){return F(Ru(r,t,e))}function Dh(r,t){return qu(r,t).map(F)}function xh(r,t=2){return Vu(r,t).map(F)}function Ch(r){return Pu(r).map(F)}function Sh(r,t=0,e){return Lu(r,t,e).map(F)}function wh(r,t=0){return Wu(r,t).map(F)}function Ih(r,t=0,e){return Gu(r,t,e).map(F)}function zh(r,t=0){return Yu(r,t).map(F)}function _h(r,t,e=0){return Zu(r,t,e).map(F)}function vh(r,t,e){return F(Ku(o=>r(F(o)),t,e))}function Mh(r,t,e){return F(Qu((o,a)=>r(F(o),a),t,e))}function Fh(r,t){return F(Et(r,t))}function Bh(r,t){return F(Ut(r,t))}function Th(r,t){return F($t(r,t))}function Oh(r){return F(kt(r))}function gd(r,t){return F(Rt(r,t))}function Eh(r){return F(qt(r))}function Uh(r){return F(Vt(r))}function $h(r){return F(Pt(r))}function kh(r){return F(jt(r))}function Rh(r){return F(Lt(r))}function qh(r){return F(Wt(r))}function Vh(r){return F(Gt(r))}function Ph(r,t){return F(Yt(r,t))}function jh(r,t){return F(Zt(r,t))}function hd(r){return F(Xt(r))}function Lh(r){return F(Jt(r))}function Wh(r){return F(Kt(r))}function Gh(r,t){return F(Qt(r,t))}function Yh(r,t){return F(ft(r,t))}function Zh(r,t){return F(Ht(r,t))}function Xh(r){return F(re(r))}function Jh(r){return F(te(r))}function Kh(r){return F(ee(r))}function Qh(r){return F(ne(r))}function Hh(r,t){let e=oe(r,t);return[F(e[0]),F(e[1])]}function r0(r){return F(ae(r))}function t0(r,t){return F(se(r,t))}function e0(r,t){return F(ie(r,t))}function n0(r,t){return F(Xa(r,t))}function o0(r,t){return F(Ja(r,t))}function a0(r){let t=Ka(r);return[F(t[0]),F(t[1])]}function s0(r,t){return F(Qa(r,t))}function i0(r,t){return F(Ha(r,t))}function u0(r,t){return F(rs(r,t))}function c0(r){let t=ts(r);return[F(t[0]),F(t[1])]}function l0(r,t,e){return F(ue(r,t,e))}function f0(r,t){return F(es(r,t))}function m0(r,t){return F(ns(r,t))}function p0(r,t){return F(os(r,t))}function y0(r,t){return F(as(r,t))}function d0(r,t=0,e,n){return F(ss(r,t,e,n))}function b0(r,t,e,n,o){return F(is(r,t,e,n,o))}function A0(r,t=Math.PI,e=-1,n=2*Math.PI){return F(us(r,t,e,n))}function g0(r){return F(cs(r))}function h0(r){return F(ls(r))}function N0(r,t){return F(Zn(r,t))}function D0(r,t){return F(Xn(r,t))}function x0(r,t){return F(Jn(r,t))}function Nd(r){return F(Kn(r))}function C0(r){return F(Qn(r))}function Dd(r,t){return F(Hn(r,t))}function xd(r,t){return F(ro(r,t))}function S0(r,t,e){return F(ki(r,t,e))}function w0(r,t,e,n){return F(Ri(r,t,e,n))}function I0(r){return F(qi(r))}function z0(r){return F(gu(r))}function _0(r){return F(hu(r))}function Cd(r){return F(uo(r))}function v0(r,t){return F(Nu(r,t))}function M0(r,t=er){return F(wr(r,t))}function F0(r,t=er){return F(ko(r,t))}function B0(r,t=er){return F(Ro(r,t))}function T0(r,t,e){return F(qo(r,t,e))}function O0(r,t){return F(Q(r,t))}function E0(r,t,e=1,n=er){return F(Da(r,t,e,n))}function U0(r,t,e=50,n=er){return F(xa(r,t,e,n))}function $0(r,t,e=50,n=10,o=er){return F(Ca(r,t,e,n,o))}function k0(r,t,e=50,n=er){return F(Sa(r,t,e,n))}function R0(r,t,e=0,n=er){return F(Vo(r,t,e,n))}function q0(r,t=er){return F(wa(r,t))}function V0(r,t){return F(Xr(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 W0(r,t,e){return F(va(r,t,e))}function G0(r){return F(Ma(r))}function Y0(r,t){return F(Fa(r,t))}function Z0(r,t){return F(Ba(r,t))}function X0(r,t){return F(Ta(r,t))}function J0(r,t){return F(Oa(r,t))}function K0(r,t,e){return F(Ea(r,t,e))}function Q0(r,t=0){return F(Po(r,t))}function H0(r,t=0){return F(Ua(r,t))}function rN(r,t,e=0,n=er){return F($a(r,t,e,n))}function tN(r,t=0){return F(ka(r,t))}function eN(r,t=0){return F(Ra(r,t))}function nN(r,t,e=!1){return F(qa(r,t,e))}function oN(r,t=er,e=-1,n=0){return F(Va(r,t,e,n))}function aN(r,t,e=er){return F(Pa(r,t,e))}function sN(r,t=er,e=-1){return F(ja(r,t,e))}function iN(r,t=er,e=-1,n){return F(La(r,t,e,n))}function uN(r,t=er,e=-1,n=""){return F(Wa(r,t,e,n))}function cN(r,t,e){return F(io(r,t,e))}function lN(r,t,e){return F(bu(r,t,e))}function fN(r,t){let e=dt(r,t);return e instanceof P?F(e):e}function mN(r,t=0,e=0,n=1){return F(At(r,t,e,n))}function pN(r,t){return F(_s(r,t))}function yN(r,t){return F(gt(r,t))}function dN(r,t){let e=ht(r,t);return e instanceof P?F(e):e}function bN(r,t){return F(Nt(r,t))}function AN(r,t,e=2){let n=Dt(r,t,e);return n instanceof P?F(n):n}function gN(r,t,e=-1){let n=Go(r,t,e);return n instanceof P?F(n):n}function hN(r){return F(Yo(r))}function NN(r,t){return F(Zo(r,t))}function DN(r,t){return F(Bs(r,t))}function xN(r,t){return F(Ts(r,t))}function CN(r,t,e=-1,n=-1,o=-1,a){let u=Xo(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 SN(r,t){return F(_e(r,t))}function wN(r,t){return F(Nn(r,t))}function IN(r,t){return F(Dn(r,t))}function zN(r){return F(xn(r))}function _N(r,t){return F(Cn(r,t))}function vN(r){return F(Sn(r))}function MN(r){return F(wn(r))}function FN(r){return F(In(r))}function BN(r){return F(zn(r))}function TN(r){return F(di(r))}function ON(r){return F(bi(r))}function EN(r){return F(Ai(r))}function UN(r){return F(hi(r))}function $N(r,t){return F(Di(r,t))}function kN(r,t){return F(_n(r,t))}function RN(r){return F(vn(r))}function qN(r,t){return F(Mn(r,t))}function VN(r){return F(Fn(r))}function PN(r,t){return F(Bn(r,t))}function jN(r,t){return F(Tn(r,t))}function LN(r,t){return F(On(r,t))}function WN(r,t){return F(En(r,t))}function GN(r,t){return F(Un(r,t))}function YN(r,t){return F($n(r,t))}function ZN(r,t,e=1e-5,n=1e-8){return F(kn(r,t,e,n))}function XN(r){return F(Oc(r))}function JN(r,t){return F(Ec(r,t))}function KN(r,t=1){return F(Uc(r,t))}function QN(r,t){let e=$c(r,t);return[F(e[0]),F(e[1])]}function HN(r,t,e){return F(kc(r,t,e))}function rD(r,t=1,e=0){return F(Rc(r,t,e))}function tD(r,t){return F(qc(r,t))}function eD(r,t){return F(Vc(r,t))}function nD(r,t){let e=Pc(r,t);return e instanceof P?F(e):e}function oD(r){return F(jc(r))}function aD(r,t,e){let n=Ve(r,t,e);return n instanceof P?F(n):n}function sD(r,t,e){let n=Pe(r,t,e);return n instanceof P?F(n):n}function iD(r,t,e){let n=je(r,t,e);return n instanceof P?F(n):n}function uD(r,t,e){let n=Ge(r,t,e);return n instanceof P?F(n):n}function cD(r,t){let e=Ye(r,t);return e instanceof P?F(e):e}function lD(r,t){let e=Ze(r,t);return e instanceof P?F(e):e}function fD(r,t,e,n){let o=Hr(r,t,e,n);return o instanceof P?F(o):o}function mD(r,t,e,n){let o=Xe(r,t,e,n);return o instanceof P?F(o):o}function pD(r,t,e){let n=Je(r,t,e);return n instanceof P?F(n):n}function yD(r,t,e,n){let o=Ke(r,t,e,n);return o instanceof P?F(o):o}function dD(r,t,e,n){let o=Qe(r,t,e,n);return o instanceof P?F(o):o}function bD(r,t,e,n){let o=He(r,t,e,n);return o instanceof P?F(o):o}function AD(r,t,e){let n=rn(r,t,e);return n instanceof P?F(n):n}function gD(r,t,e){let n=tn(r,t,e);return n instanceof P?F(n):n}function Sd(r,t){return F(en(r,t))}function wd(r,t){return F(nn(r,t))}function hD(r,t,e){let n=on(r,t,e);return n instanceof P?F(n):n}function ND(r,t,e){let n=an(r,t,e);return n instanceof P?F(n):n}function DD(r,t,e){let n=sn(r,t,e);return n instanceof P?F(n):n}function xD(r,t,e,n){let o=un(r,t,e,n);return o instanceof P?F(o):o}function CD(r,t,e,n){let o=cn(r,t,e,n);return o instanceof P?F(o):o}function SD(r,t,e){let n=ln(r,t,e);return n instanceof P?F(n):n}function wD(r,t,e){let n=fn(r,t,e);return n instanceof P?F(n):n}function ID(r,t){let e=mn(r,t);return e instanceof P?F(e):e}function zD(r,t){let e=pn(r,t);return e instanceof P?F(e):e}function _D(r,t){return F(yn(r,t))}function vD(r,t){return F(dn(r,t))}function MD(r,t,e){let n=bn(r,t,e);return n instanceof P?F(n):n}function FD(r,t,e,n){let o=An(r,t,e,n);return o instanceof P?F(o):o}function BD(r,t,e,n){let o=gn(r,t,e,n);return o instanceof P?F(o):o}function Id(r,t=0){return F(_t(r,t))}function TD(r){return F(to(r))}function OD(r){return F(eo(r))}function ED(r){return F(no(r))}function UD(r){return F(oo(r))}function $D(r){return F(ao(r))}function kD(r,t){return F(Wi(r,t))}function RD(r,t){return F(Gi(r,t))}function qD(r,t){return F(Yi(r,t))}function VD(r,t){return F(Zi(r,t))}function PD(r,t){return F(Xi(r,t))}function jD(r,t){return F(Ji(r,t))}function LD(r,t){return F(Ki(r,t))}function WD(r){return F(tu(r))}function GD(r,t,e){return F(Dc(r,t,e))}function zd(r,t,e){return F(la(r,t,e))}function YD(r,t,e,n){return F(xc(r,t,e,n))}function ZD(r,t,e="constant",n=0){return F(Cc(r,t,e,n))}function XD(r,t){return F(ve(r,t))}function JD(r){return F(Br(r))}function KD(r){return F(Me(r))}function QD(r,t){return F(Fe(r,t))}function HD(r,t){return F(Be(r,t))}function rx(r,t,e){return F(Te(r,t,e))}function tx(r,t,e){return F(Oe(r,t,e))}function ex(r,t,e=0){return F(Es(r,t,e))}function _d(r,t=0){return F(xt(r,t))}function nx(r,t=0){return F(Us(r,t))}function ox(r){return F(Jo(r))}function ax(r){return F($s(r))}function sx(r){return F(ks(r))}function ix(r){return F(Rs(r))}function ux(r){return F(Vs(r))}function cx(r,t=0){return Ys(r,t).map(F)}function lx(r,t){return F(Zs(r,t))}function fx(r,t,e){return F(Ee(r,t,e))}function mx(r,t){return F(Ue(r,t))}function px(r){return F(Xs(r))}function yx(r){return F(Js(r))}function dx(r,t=1,e=[0,1]){return F(Ks(r,t,e))}function bx(r,t,e){return F(Qs(r,t,e))}function Ax(r,t){return F($e(r,t))}function gx(r,t=-1){return F(qn(r,t))}function hx(r,t=-1){return F(Vn(r,t))}function Nx(r){return F(vi(r))}function Dx(r,t,e=-1){return F(Pn(r,t,e))}function xx(r,t,e=-1){return F(jn(r,t,e))}function Cx(r){return F(Mi(r))}function Sx(r){return Ln(r).map(F)}function wx(r){return F(Wn(r))}function Ix(r){return F(Fi(r))}function zx(r,t){return F(Ti(r,t))}function _x(r,t,e){return F(au(r,t,e))}function vx(r,t,e){return F(su(r,t,e))}function Mx(r,t,e){return F(lu(r,t,e))}function Fx(r,t,e){return F(fu(r,t,e))}function Bx(r,t,e,n,o){return F(mu(r,t,e,n,o))}function Tx(r,t,e){return F(pu(r,t,e))}function Ox(r,t,e,n){let o=du(r,t,e,n);return o instanceof P?F(o):o}function Ex(r){return F(ce(r))}function Ux(r){return F(le(r))}function $x(r){return F(fe(r))}function vd(r){return F(me(r))}function Md(r){return F(pe(r))}function Fd(r){return F(ye(r))}function Bd(r,t){return F(de(r,t))}function kx(r,t){return F(be(r,t))}function Rx(r){return F(Ae(r))}function qx(r){return F(ge(r))}function Vx(r){return F(ps(r))}function Px(r){return F(ys(r))}function jx(r){return F(he(r))}function Lx(r){return F(Ne(r))}function Wx(r){return F(De(r))}function Td(r){return F(xe(r))}function Od(r){return F(Ce(r))}function Ed(r){return F(Se(r))}var Tr=624,pa=397,Gx=2567483615,Kc=2147483648,Qc=2147483647,Mr={mt:new Uint32Array(Tr),mti:Tr+1};function $d(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 tl(){let r=Mr.mt,t,e=[0,Gx];if(Mr.mti>=Tr){let n;for(Mr.mti===Tr+1&&$d(5489),n=0;n<Tr-pa;n++)t=r[n]&Kc|r[n+1]&Qc,r[n]=r[n+pa]^t>>>1^e[t&1];for(;n<Tr-1;n++)t=r[n]&Kc|r[n+1]&Qc,r[n]=r[n+(pa-Tr)]^t>>>1^e[t&1];t=r[Tr-1]&Kc|r[0]&Qc,r[Tr-1]=r[pa-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 W(){let r=tl()>>>5,t=tl()>>>6;return(r*67108864+t)/9007199254740992}var Yx=2468251765,Zx=1492356589,Xx=1135663077,Jx=2337405405,Kx=3389127133,Qx=1232336661,ol=16,ya=4;function mr(r){return r>>>0}function Hc(r,t){return r=mr(mr(r)^t.val),t.val=mr(Math.imul(t.val,Yx)),r=mr(Math.imul(r,t.val)),r=mr(r^r>>>ol),r}function Hx(r,t){let e=mr(mr(Math.imul(Kx,mr(r)))-mr(Math.imul(Qx,mr(t))));return e=mr(e^e>>>ol),e}function r1(r){let t=[0,0,0,0],e=[r>>>0],n={val:Xx};for(let o=0;o<ya;o++)o<e.length?t[o]=Hc(e[o],n):t[o]=Hc(0,n);for(let o=0;o<ya;o++)for(let a=0;a<ya;a++)if(o!==a){let u=Hc(t[o],n);t[a]=Hx(t[a],u)}return t}function t1(r,t){let e=[],n=Jx;for(let o=0;o<t;o++){let a=r[o%ya],u=mr(a^n);n=mr(Math.imul(n,Zx)),u=mr(Math.imul(u,n)),u=mr(u^u>>>ol),e.push(u)}return e}var e1=BigInt("4865540595714422341"),n1=BigInt("2549297995355413924"),o1=n1<<BigInt(64)|e1,rl=BigInt("0xffffffffffffffff"),el=(BigInt(1)<<BigInt(128))-BigInt(1);function a1(r){let t=r>>BigInt(64),e=r&rl,n=(t^e)&rl,o=Number(r>>BigInt(122));return(n>>BigInt(o)|n<<BigInt(64-o))&rl}function nl(r,t){return r*o1+t&el}function Ud(r){let t=r1(r),e=t1(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))⪙let c=BigInt(0);return c=nl(c,s),c=c+i&el,c=nl(c,s),{state:c,inc:s}}function s1(r){return r.state=nl(r.state,r.inc),a1(r.state)}function i1(r){let e=s1(r)>>BigInt(11);return Number(e)/9007199254740992}var Do=class{constructor(t){if(t!==void 0)this._pcgState=Ud(t);else{let e=Math.floor(Math.random()*4294967296);this._pcgState=Ud(e)}}_randomFloat(){return i1(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]=xo(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]=xo(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 Xd(t,e,n,o,this._randomFloat.bind(this))}permutation(t){return Kd(t,this._randomFloat.bind(this))}shuffle(t){Hd(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 Co(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(Co(t,e,this._randomFloat.bind(this)));return u}};function kd(r){return new Do(r)}function Rd(r){r==null&&(r=Math.floor(Date.now()^Math.random()*4294967296)),$d(r>>>0)}function qd(){return{mt:Array.from(Mr.mt),mti:Mr.mti}}function Vd(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 xo(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 Co(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 So(r){if(r===void 0)return W();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]=W();return n}function Pd(...r){if(r.length===0)return W();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]=W();return e}function jd(...r){if(r.length===0)return Fr(W);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]=xo(W);n[o]=a,o+1<t&&(n[o+1]=u)}return e}function al(r,t,e,n="int64"){t==null&&(t=r,r=0);let o=t-r;if(e===void 0)return Math.floor(W()*o)+r;let a=Array.isArray(e)?e:[e],u=a.reduce((c,l)=>c*l,1),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(W()*o)+r)}else{let c=s;for(let l=0;l<u;l++)c[l]=Math.floor(W()*o)+r}return i}function Ld(r=0,t=1,e){if(e===void 0)return W()*(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]=W()*i+r;return a}function Wd(r=0,t=1,e){if(e===void 0)return Fr(W)*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]=xo(W);u[i]=s*t+r,i+1<o&&(u[i+1]=c*t+r)}return a}function Gd(r){if(r===void 0)return Fr(W);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]=xo(W);o[a]=u,a+1<e&&(o[a+1]=i)}return n}function sl(r=1,t){if(t===void 0)return-Math.log(1-W())*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-W())*r;return o}function Yd(r=1,t){if(t===void 0)return st(r,W);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,W));return o}function Zd(r,t,e){if(e===void 0)return Co(r,t,W);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(Co(r,t,W));return a}function Xd(r,t,e=!0,n,o=W){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 Jd(r,t,e=!0,n){return Xd(r,t,e,n,W)}function Kd(r,t=W){let e;if(typeof r=="number"){let o=new Float64Array(r);for(let a=0;a<r;a++)o[a]=a;e=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 Qd(r){return Kd(r,W)}function Hd(r,t=W){let e=r.size;for(let n=e-1;n>0;n--){let o=Math.floor(t()*(n+1)),a=r.iget(n);r.iset(n,r.iget(o)),r.iset(o,a)}}function rb(r){Hd(r,W)}function tb(r){return So(r)}function eb(r){return So(r)}function nb(r){return So(r)}function ob(r,t,e){return t===void 0&&(t=r,r=1),al(r,t+1,e)}function ab(r){let t=new Uint8Array(r);for(let e=0;e<r;e++)t[e]=tl()&255;return t}var sb={name:"MT19937",state:Mr};function ib(){return sb}function ub(r){sb=r}function cb(r){return sl(1,r)}function lb(r,t){if(r<=0)throw new Error("shape must be positive");return da(r,1,t)}function fb(r){if(r===void 0)return Math.tan(Math.PI*(W()-.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*(W()-.5));return n}function mb(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(W);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(W);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 da(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,W);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,W);return a}function pb(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(W);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(W);return u}function yb(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(W);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(W);return u}function db(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(W);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(W);return u}function bb(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(W);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(W);return u}function Ab(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(W);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(W);return u}function gb(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(W);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(W);return a}function hb(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(W);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(W);return a}function Nb(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(W);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(W);return a}function Db(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(W);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(W);return i}function xb(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(W);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(W);return u}function Cb(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(W);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(W);return a}function Sb(r,t){if(r<=0)throw new Error("df must be positive");return da(r/2,2,t)}function wb(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(W);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(W);return u}function Ib(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(W);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(W);return u}function zb(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(W);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(W);return i}function _b(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(W);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(W));return a}function vb(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(W);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(W));return i}function Mb(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(W);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(W));return u}function Fb(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(W);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(W));return u}function Bb(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(W);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(W));return i}function Tb(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=Co(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(W),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(W);for(let d=0;d<o;d++)m[p*o+d]=BigInt(y[d])}return f}function Ob(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(W),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(W);for(let A=0;A<u;A++)y[d*u+A]=b[A]}return p}function Eb(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(W),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(W);for(let m=0;m<n;m++)c[l*n+m]=f[m]}return s}function Ub(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(W);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(W);return u}function c1(r,t,e){let n=r.length;n!==0&&n!==1&&((n&n-1)===0?ba(r,t,e):f1(r,t,e))}var wo=new Map;function l1(r,t){let e=`${r}_${t}`,n=wo.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},wo.set(e,n),wo.size>100){let i=wo.keys().next().value;wo.delete(i)}return n}function ba(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}=l1(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 f1(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];ba(s,c,!1),ba(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}ba(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 Mt(r,t,e=-1,n="backward"){return Ft(r,t!==void 0?[t]:void 0,[e],n,!1)}function Io(r,t,e=-1,n="backward"){return Ft(r,t!==void 0?[t]:void 0,[e],n,!0)}function $b(r,t,e=[-2,-1],n="backward"){return Ft(r,t,e,n,!1)}function kb(r,t,e=[-2,-1],n="backward"){return Ft(r,t,e,n,!0)}function Rb(r,t,e,n="backward"){return Ft(r,t,e,n,!1)}function qb(r,t,e,n="backward"){return Ft(r,t,e,n,!0)}function Ft(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=zo(r);t!==void 0&&(c=m1(c,s,i));for(let l of i)c=y1(c,l,o,n);return c}function zo(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 m1(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=p1(o,a,i):o=il(o,a,i),n[a]=i)}return o}function p1(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 il(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 y1(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(c1(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 ga(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=Mt(r,i,e,n),c=Math.floor(i/2)+1;return il(s,u,c)}function _o(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=zo(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=Io(l,s,e,n);return Aa(d)}function Vb(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=Mt(r,t?t[0]:void 0,u,n),c=Array.from(s.shape),l=t?t[1]:c[i];s=Mt(s,l,i,n);let f=Math.floor(l/2)+1;return il(s,i,f)}function Pb(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=_o(r,c,i,n);return f=Io(f,l,u,n),Aa(f)}function jb(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 zo(r);let i=r;for(let l=0;l<u.length-1;l++){let f=u[l],m=t?t[l]:void 0;i=Mt(i,m,f,n)}let s=u[u.length-1],c=t?t[u.length-1]:void 0;return ga(i,c,s,n)}function Lb(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 Aa(zo(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=_o(r,c[u.length-1],i,n);for(let f=u.length-2;f>=0;f--){let m=u[f];l=Io(l,c[f],m,n)}return Aa(l)}function Wb(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=Yb(zo(r)),l=_o(c,s,e,n),f=l.data;for(let m=0;m<l.size;m++)f[m]=f[m]*s;return l}function Gb(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=ga(r,i,e,n),c=Yb(s),l=c.data;for(let f=0;f<c.size*2;f++)l[f]=l[f]/i;return c}function Yb(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 Aa(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 Zb(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 Xb(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 Jb(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 Qb(r,a)}function Kb(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 Qb(r,a)}function Qb(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 I2(r){return it(nt(r))}var z2=Gc;function _2(r,t){return it(Yc(r,t))}async function v2(r,t={}){let e=await bo(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 M2(r,t={}){let e=Ao(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 F2(r,t={}){let e=await ud(r,t),n={};for(let[o,a]of Object.entries(e))n[o]=it(a);return n}function B2(r,t={}){let e=cd(r,t),n={};for(let[o,a]of Object.entries(e))n[o]=it(a);return n}function T2(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 E2={seed:Rd,get_state:qd,set_state:Vd,get_bit_generator:ib,set_bit_generator:ub,default_rng:kd,Generator:Do,random:r=>H(So(r)),rand:(...r)=>H(Pd(...r)),randn:(...r)=>H(jd(...r)),randint:(r,t,e,n)=>H(al(r,t,e,n)),random_sample:r=>H(tb(r)),ranf:r=>H(eb(r)),sample:r=>H(nb(r)),random_integers:(r,t,e)=>H(ob(r,t,e)),bytes:ab,uniform:(r,t,e)=>H(Ld(r,t,e)),normal:(r,t,e)=>H(Wd(r,t,e)),standard_normal:r=>H(Gd(r)),exponential:(r,t)=>H(sl(r,t)),standard_exponential:r=>H(cb(r)),gamma:(r,t,e)=>H(da(r,t,e)),standard_gamma:(r,t)=>H(lb(r,t)),beta:(r,t,e)=>H(pb(r,t,e)),chisquare:(r,t)=>H(Sb(r,t)),noncentral_chisquare:(r,t,e)=>H(wb(r,t,e)),f:(r,t,e)=>H(Ib(r,t,e)),noncentral_f:(r,t,e,n)=>H(zb(r,t,e,n)),standard_cauchy:r=>H(fb(r)),standard_t:(r,t)=>H(mb(r,t)),laplace:(r,t,e)=>H(yb(r,t,e)),logistic:(r,t,e)=>H(db(r,t,e)),lognormal:(r,t,e)=>H(bb(r,t,e)),gumbel:(r,t,e)=>H(Ab(r,t,e)),pareto:(r,t)=>H(gb(r,t)),power:(r,t)=>H(hb(r,t)),rayleigh:(r,t)=>H(Nb(r,t)),triangular:(r,t,e,n)=>H(Db(r,t,e,n)),wald:(r,t,e)=>H(xb(r,t,e)),weibull:(r,t)=>H(Cb(r,t)),poisson:(r,t)=>H(Yd(r,t)),binomial:(r,t,e)=>H(Zd(r,t,e)),geometric:(r,t)=>H(_b(r,t)),hypergeometric:(r,t,e,n)=>H(vb(r,t,e,n)),logseries:(r,t)=>H(Mb(r,t)),negative_binomial:(r,t,e)=>H(Fb(r,t,e)),zipf:(r,t)=>H(Bb(r,t)),multinomial:(r,t,e)=>H(Tb(r,t,e)),multivariate_normal:(r,t,e,n,o)=>H(Ob(r,t,e,n,o)),dirichlet:(r,t)=>H(Eb(r,t)),vonmises:(r,t,e)=>H(Ub(r,t,e)),choice:(r,t,e,n)=>H(Jd(r,t,e,n)),permutation:r=>H(Qd(r)),shuffle:rb};function fr(r){return r instanceof tr||r instanceof P?r.storage:r}var $2={fft:(r,t,e,n)=>tr.fromStorage(Mt(fr(r),t,e,n)),ifft:(r,t,e,n)=>tr.fromStorage(Io(fr(r),t,e,n)),fft2:(r,t,e,n)=>tr.fromStorage($b(fr(r),t,e,n)),ifft2:(r,t,e,n)=>tr.fromStorage(kb(fr(r),t,e,n)),fftn:(r,t,e,n)=>tr.fromStorage(Rb(fr(r),t,e,n)),ifftn:(r,t,e,n)=>tr.fromStorage(qb(fr(r),t,e,n)),rfft:(r,t,e,n)=>tr.fromStorage(ga(fr(r),t,e,n)),irfft:(r,t,e,n)=>tr.fromStorage(_o(fr(r),t,e,n)),rfft2:(r,t,e,n)=>tr.fromStorage(Vb(fr(r),t,e,n)),irfft2:(r,t,e,n)=>tr.fromStorage(Pb(fr(r),t,e,n)),rfftn:(r,t,e,n)=>tr.fromStorage(jb(fr(r),t,e,n)),irfftn:(r,t,e,n)=>tr.fromStorage(Lb(fr(r),t,e,n)),hfft:(r,t,e,n)=>tr.fromStorage(Wb(fr(r),t,e,n)),ihfft:(r,t,e,n)=>tr.fromStorage(Gb(fr(r),t,e,n)),fftfreq:(r,t)=>tr.fromStorage(Zb(r,t)),rfftfreq:(r,t)=>tr.fromStorage(Xb(r,t)),fftshift:(r,t)=>tr.fromStorage(Jb(fr(r),t)),ifftshift:(r,t)=>tr.fromStorage(Kb(fr(r),t))},k2="0.13.1";function Pr(r){return tr.fromStorage(r.storage)}async function b1(r){let t=await Mo(r);return Pr(nt(t))}function A1(r){let t=vo(r);return Pr(nt(t))}async function g1(r,t){let e=ot(t);await cl(r,e)}function h1(r,t){let e=ot(t);ul(r,e)}async function N1(r,t={}){let e=await Mo(r),n=await bo(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=vo(r),n=Ao(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 Hb(r,t,e={}){let n=await Xc(t,e);await cl(r,n)}function _I(r,t){let e=Jc(t);ul(r,e)}async function vI(r,t={}){if(r.endsWith(".npy")){if(t.allowNpy===!1)throw new Error("Loading .npy files is disabled (allowNpy: false)");return b1(r)}else{if(r.endsWith(".npz"))return N1(r,t);throw new Error(`Unknown file extension. Expected .npy or .npz, got: ${r}`)}}function MI(r,t={}){if(r.endsWith(".npy")){if(t.allowNpy===!1)throw new Error("Loading .npy files is disabled (allowNpy: false)");return A1(r)}else{if(r.endsWith(".npz"))return D1(r,t);throw new Error(`Unknown file extension. Expected .npy or .npz, got: ${r}`)}}async function FI(r,t){if(!r.endsWith(".npy"))throw new Error(`save() is for .npy files. Use saveNpz() for .npz files. Got: ${r}`);return g1(r,t)}function BI(r,t){if(!r.endsWith(".npy"))throw new Error(`saveSync() is for .npy files. Use saveNpzSync() for .npz files. Got: ${r}`);return h1(r,t)}async function TI(r,t){return r.endsWith(".npz")||(r=r+".npz"),Hb(r,t,{compress:!1})}async function OI(r,t){return r.endsWith(".npz")||(r=r+".npz"),Hb(r,t,{compress:!0})}async function EI(r,t={}){let e=await Mo(r,{encoding:t.encoding??"utf-8"});return Pr(at(e,t))}function UI(r,t={}){let e=vo(r,{encoding:t.encoding??"utf-8"});return Pr(at(e,t))}async function $I(r,t,e={}){let n=No(t,e);await cl(r,n,"utf-8")}function kI(r,t,e={}){let n=No(t,e);ul(r,n,"utf-8")}async function RI(r,t={}){let e=await Mo(r,{encoding:t.encoding??"utf-8"});return Pr(go(e,t))}function qI(r,t={}){let e=vo(r,{encoding:t.encoding??"utf-8"});return Pr(go(e,t))}async function VI(r,t,e="float64"){let n=await Mo(r,{encoding:"utf-8"});return Pr(ho(n,t,e))}function PI(r,t,e="float64"){let n=vo(r,{encoding:"utf-8"});return Pr(ho(n,t,e))}export{U as Complex,Wc as DTYPE_TO_DESCR,Sr as InvalidNpyError,tr as NDArray,P as NDArrayCore,Hy as SUPPORTED_DTYPES,Zr as UnsupportedDTypeError,k2 as __version__,hd as abs,hd as absolute,Md as acos,Od as acosh,Fh as add,AD as all,Rn as allclose,oa as amax,aa as amin,v0 as angle,gD as any,GD as append,vh as apply_along_axis,Mh as apply_over_axes,E0 as arange,Md as arccos,Od as arccosh,vd as arcsin,Td as arcsinh,Fd as arctan,Bd as arctan2,Ed as arctanh,lD as argmax,cD as argmin,xx as argpartition,hx as argsort,wx as argwhere,Id as around,O0 as array,lc as array2string,Xu as array_equal,Ju as array_equiv,fc as array_repr,js as array_split,mo as array_str,Y0 as asanyarray,V0 as asarray,J0 as asarray_chkfinite,Z0 as ascontiguousarray,X0 as asfortranarray,vd as asin,Td as asinh,Fd as atan,Bd as atan2,Ed as atanh,Hs as atleast_1d,ri as atleast_2d,ti as atleast_3d,bD as average,uc as base_repr,cc as binary_repr,_x as bincount,Ah as bindex,N0 as bitwise_and,I0 as bitwise_count,Nd as bitwise_invert,Dd as bitwise_left_shift,Nd as bitwise_not,D0 as bitwise_or,xd as bitwise_right_shift,x0 as bitwise_xor,ux as block,zu as broadcast_arrays,_u as broadcast_shapes,fh as broadcast_to,Ac as byteswap,fa as can_cast,Kh as cbrt,TD as ceil,yh as choose,l0 as clip,ix as column_stack,_c as common_type,dh as compress,_d as concat,_d as concatenate,Cd as conj,Cd as conjugate,Fx as convolve,G0 as copy,kN as copysign,Uu as copyto,Tx as corrcoef,Mx as correlate,Ux as cos,Lx as cosh,Oi as count_nonzero,Bx as cov,CN as cross,wd as cumprod,Sd as cumsum,wd as cumulative_prod,Sd as cumulative_sum,Vx as deg2rad,Rx as degrees,zd as delete,zd as delete_,Q0 as diag,xh as diag_indices,Ch as diag_indices_from,H0 as diagflat,mN as diagonal,cN as diff,vx as digitize,Yh as divide,Hh as divmod,fN as dot,Gs as dsplit,sx as dstack,lN as ediff1d,vs as einsum,Ms as einsum_path,B0 as empty,L0 as empty_like,GN as equal,Eh as exp,Uh as exp2,HD as expand_dims,$h as expm1,zx as extract,R0 as eye,Qh as fabs,$2 as fft,Nc as fill,ju as fill_diagonal,OD as fix,Ix as flatnonzero,JD as flatten,mx as flip,px as fliplr,yx as flipud,n0 as float_power,ED as floor,Zh as floor_divide,p0 as fmax,y0 as fmin,o0 as fmod,sc as format_float_positional,ic as format_float_scientific,a0 as frexp,oN as frombuffer,uN as fromfile,aN as fromfunction,sN as fromiter,VI as fromregex,PI as fromregexSync,iN as fromstring,T0 as full,W0 as full_like,s0 as gcd,RI as genfromtxt,qI as genfromtxtSync,k0 as geomspace,oc as get_printoptions,tc as geterr,Au as gradient,PN as greater,jN as greater_equal,e0 as heaviside,iu as histogram,uu as histogram2d,yu as histogram_bin_edges,cu as histogramdd,Ws as hsplit,ax as hstack,kx as hypot,h0 as i0,q0 as identity,bh as iindex,_0 as imag,kD as in1d,hh as indices,dN as inner,YD as insert,b0 as interp,RD as intersect1d,C0 as invert,ZN as isclose,EN as iscomplex,gi as iscomplexobj,wi as isdtype,vN as isfinite,xi as isfortran,qD as isin,MN as isinf,FN as isnan,BN as isnat,TN as isneginf,ON as isposinf,UN as isreal,Ni as isrealobj,Ci as isscalar,Fc as issubdtype,yc as item,Si as iterable,ku as ix_,pN as kron,i0 as lcm,u0 as ldexp,Dd as left_shift,LN as less,WN as less_equal,Nx as lexsort,Os as linalg,U0 as linspace,vI as load,b1 as loadNpy,A1 as loadNpySync,F2 as loadNpz,N1 as loadNpzFile,D1 as loadNpzFileSync,B2 as loadNpzSync,MI as loadSync,EI as loadtxt,UI as loadtxtSync,kh as log,qh as log10,Vh as log1p,Rh as log2,Ph as logaddexp,jh as logaddexp2,wN as logical_and,zN as logical_not,IN as logical_or,_N as logical_xor,$0 as logspace,_h as mask_indices,SN as matmul,hN as matrix_transpose,DN as matvec,oa as max,f0 as maximum,Hu as may_share_memory,sD as mean,pD as median,Ad as meshgrid,aa as min,Mc as min_scalar_type,m0 as minimum,Tc as mintypecode,Gh as mod,c0 as modf,tx as moveaxis,Th as multiply,d0 as nan_to_num,zD as nanargmax,ID as nanargmin,vD as nancumprod,_D as nancumsum,wD as nanmax,DD as nanmean,MD as nanmedian,SD as nanmin,BD as nanpercentile,ND as nanprod,FD as nanquantile,CD as nanstd,hD as nansum,xD as nanvar,mc as ndim,Lh as negative,qN as nextafter,Sx as nonzero,YN as not_equal,F0 as ones,j0 as ones_like,bN as outer,S0 as packbits,ZD as pad,I2 as parseNpy,_2 as parseNpyData,z2 as parseNpyHeader,v2 as parseNpz,M2 as parseNpzSync,T2 as parseTxt,Dx as partition,yD as percentile,NN as permute_dims,Ou as place,XN as poly,JN as polyadd,KN as polyder,QN as polydiv,HN as polyfit,rD as polyint,tD as polymul,eD as polysub,nD as polyval,Xh as positive,gd as pow,gd as power,ac as printoptions,iD as prod,Ii as promote_types,uD as ptp,lo as put,Mu as put_along_axis,Eu as putmask,dD as quantile,Px as rad2deg,qx as radians,E2 as random,KD as ravel,Nh as ravel_multi_index,z0 as real,$N as real_if_close,Jh as reciprocal,t0 as remainder,fx as repeat,K0 as require,XD as reshape,Ax as resize,vc as result_type,xd as right_shift,UD as rint,bx as roll,ex as rollaxis,oD as roots,dx as rot90,Id as round,Vi as round_,qs as row_stack,FI as save,g1 as saveNpy,h1 as saveNpySync,Hb as saveNpz,_I as saveNpzSync,BI as saveSync,$I as savetxt,kI as savetxtSync,TI as savez,OI as savez_compressed,Gn as searchsorted,gh as select,ot as serializeNpy,Xc as serializeNpz,Jc as serializeNpzSync,No as serializeTxt,nc as set_printoptions,VD as setdiff1d,ec as seterr,PD as setxor1d,ca as shape,rc as shares_memory,Wh as sign,RN as signbit,Ex as sin,g0 as sinc,jx as sinh,pc as size,gx as sort,Cx as sort_complex,VN as spacing,Ps as split,Oh as sqrt,r0 as square,QD as squeeze,nx as stack,mD as std,Bh as subtract,aD as sum,rx as swapaxes,mh as take,ph as take_along_axis,$x as tan,Wx as tanh,AN as tensordot,lx as tile,bc as tobytes,hc as tofile,dc as tolist,bt as trace,yN as transpose,Ox as trapezoid,rN as tri,tN as tril,Sh as tril_indices,wh as tril_indices_from,LD as trim_zeros,eN as triu,Ih as triu_indices,zh as triu_indices_from,Za as true_divide,$D as trunc,Bc as typename,jD as union1d,Li as unique,Qi as unique_all,Hi as unique_counts,ru as unique_inverse,WD as unique_values,w0 as unpackbits,Dh as unravel_index,cx as unstack,A0 as unwrap,nN as vander,mi as var,fD as variance,Fs as vdot,gN as vecdot,xN as vecmat,gc as view,Ls as vsplit,ox as vstack,Bi as where,M0 as zeros,P0 as zeros_like};
|
|
4
8
|
//# sourceMappingURL=numpy-ts.node-io.mjs.map
|