numpy-ts 0.9.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +45 -26
- package/dist/numpy-ts.browser.js +2 -2
- package/dist/numpy-ts.esm.js +2 -2
- package/dist/numpy-ts.node-io.cjs +3 -3
- package/dist/numpy-ts.node-io.cjs.map +4 -4
- package/dist/numpy-ts.node-io.mjs +3 -3
- package/dist/numpy-ts.node-io.mjs.map +4 -4
- package/dist/numpy-ts.node.cjs +2 -2
- package/dist/numpy-ts.node.cjs.map +4 -4
- package/dist/types/core/complex.d.ts +94 -0
- package/dist/types/core/dtype.d.ts +62 -3
- package/dist/types/core/ndarray.d.ts +663 -37
- package/dist/types/core/storage.d.ts +15 -4
- package/dist/types/index.d.ts +41 -1
- package/dist/types/ops/advanced.d.ts +7 -0
- package/dist/types/ops/arithmetic.d.ts +53 -0
- package/dist/types/ops/comparison.d.ts +6 -0
- package/dist/types/ops/complex.d.ts +65 -0
- package/dist/types/ops/exponential.d.ts +9 -0
- package/dist/types/ops/hyperbolic.d.ts +6 -0
- package/dist/types/ops/linalg.d.ts +6 -5
- package/dist/types/ops/logic.d.ts +219 -0
- package/dist/types/ops/random.d.ts +136 -0
- package/dist/types/ops/reduction.d.ts +26 -18
- package/dist/types/ops/rounding.d.ts +3 -0
- package/dist/types/ops/sorting.d.ts +8 -0
- package/dist/types/ops/statistics.d.ts +108 -0
- package/dist/types/ops/trig.d.ts +6 -0
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var ut=Object.defineProperty;var Ha=Object.getOwnPropertyDescriptor;var Ya=Object.getOwnPropertyNames;var Ja=Object.prototype.hasOwnProperty;var k=(r,t)=>()=>(r&&(t=r(r=0)),t);var be=(r,t)=>{for(var e in t)ut(r,e,{get:t[e],enumerable:!0})},Qa=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Ya(t))!Ja.call(r,o)&&o!==e&&ut(r,o,{get:()=>t[o],enumerable:!(n=Ha(t,o))||n.enumerable});return r};var Se=r=>Qa(ut({},"__esModule",{value:!0}),r);function Ne(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 De(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 xe=k(()=>{"use strict"});function U(r){switch(r){case"float64":return Float64Array;case"float32":return Float32Array;case"int64":return BigInt64Array;case"int32":return Int32Array;case"int16":return Int16Array;case"int8":return Int8Array;case"uint64":return BigUint64Array;case"uint32":return Uint32Array;case"uint16":return Uint16Array;case"uint8":return Uint8Array;case"bool":return Uint8Array;default:throw new Error(`Unknown dtype: ${r}`)}}function ze(r){switch(r){case"float64":case"int64":case"uint64":return 8;case"float32":case"int32":case"uint32":return 4;case"int16":case"uint16":return 2;case"int8":case"uint8":case"bool":return 1;default:throw new Error(`Unknown dtype: ${r}`)}}function Ie(r){return r==="int64"||r==="int32"||r==="int16"||r==="int8"||r==="uint64"||r==="uint32"||r==="uint16"||r==="uint8"}function we(r){return r==="float64"||r==="float32"}function z(r){return r==="int64"||r==="uint64"}function C(r,t){if(r===t)return r;if(r==="bool")return t;if(t==="bool")return r;if(we(r)||we(t)){if(r==="float64"||t==="float64")return"float64";if(r==="float32"){let c=t;return c==="int32"||c==="int64"||c==="uint32"||c==="uint64"?"float64":"float32"}if(t==="float32"){let c=r;return c==="int32"||c==="int64"||c==="uint32"||c==="uint64"?"float64":"float32"}return"float32"}let e=r.startsWith("int"),n=t.startsWith("int"),o=r.startsWith("uint"),a=t.startsWith("uint"),i=c=>c.includes("64")?64:c.includes("32")?32:c.includes("16")?16:c.includes("8")?8:0,u=i(r),s=i(t);if(r==="int64"&&t==="uint64"||r==="uint64"&&t==="int64")return"float64";if(e&&a&&u===s){if(u===8)return"int16";if(u===16)return"int32";if(u===32)return"int64"}if(o&&n&&u===s){if(s===8)return"int16";if(s===16)return"int32";if(s===32)return"int64"}if(e&&n||o&&a){let c=Math.max(u,s);return e?c===64?"int64":c===32?"int32":c===16?"int16":"int8":c===64?"uint64":c===32?"uint32":c===16?"uint16":"uint8"}return e&&a?u>s?r:s===8?"int16":s===16?"int32":s===32?"int64":"float64":o&&n?s>u?t:u===8?"int16":u===16?"int32":u===32?"int64":"float64":"float64"}var q,j=k(()=>{"use strict";q="float64"});function G(r){let t=new Array(r.length),e=1;for(let n=r.length-1;n>=0;n--)t[n]=e,e*=r[n];return t}var N,R=k(()=>{"use strict";j();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;if(o===0)return this._data[this._offset];let a=t,i=this._offset;for(let u=0;u<o;u++){let s=1;for(let l=u+1;l<o;l++)s*=e[l];let c=Math.floor(a/s);a=a%s,i+=c*n[u]}return this._data[i]}iset(t,e){let n=this._shape,o=this._strides,a=n.length;if(a===0){this._data[this._offset]=e;return}let i=t,u=this._offset;for(let s=0;s<a;s++){let c=1;for(let m=s+1;m<a;m++)c*=n[m];let l=Math.floor(i/c);i=i%c,u+=l*o[s]}this._data[u]=e}get(...t){let e=this._strides,n=this._offset;for(let o=0;o<t.length;o++)n+=t[o]*e[o];return this._data[n]}set(t,e){let n=this._strides,o=this._offset;for(let a=0;a<t.length;a++)o+=t[a]*n[a];this._data[o]=e}copy(){let t=Array.from(this._shape),e=this._dtype,n=this.size,o=U(e);if(!o)throw new Error(`Cannot copy array with dtype ${e}`);let a=new o(n);if(this.isCContiguous&&this._offset===0)if(z(e)){let i=this._data,u=a;for(let s=0;s<n;s++)u[s]=i[s]}else a.set(this._data);else if(z(e)){let i=a;for(let u=0;u<n;u++)i[u]=this.iget(u)}else for(let i=0;i<n;i++)a[i]=this.iget(i);return new r(a,t,r._computeStrides(t),0,e)}static fromData(t,e,n,o,a){let i=o??r._computeStrides(e),u=a??0;return new r(t,e,i,u,n)}static zeros(t,e=q){let n=t.reduce((i,u)=>i*u,1),o=U(e);if(!o)throw new Error(`Cannot create array with dtype ${e}`);let a=new o(n);return new r(a,t,r._computeStrides(t),0,e)}static ones(t,e=q){let n=t.reduce((i,u)=>i*u,1),o=U(e);if(!o)throw new Error(`Cannot create array with dtype ${e}`);let a=new o(n);return z(e)?a.fill(BigInt(1)):a.fill(1),new r(a,t,r._computeStrides(t),0,e)}static _computeStrides(t){let e=new Array(t.length),n=1;for(let o=t.length-1;o>=0;o--)e[o]=n,n*=t[o];return e}}});function br(r,t){let e=r.length,n=t.length,o=Math.max(e,n),a=new Array(o);for(let i=0;i<o;i++){let u=i<o-e?1:r[i-(o-e)],s=i<o-n?1:t[i-(o-n)];if(u===s)a[i]=u;else if(u===1)a[i]=s;else if(s===1)a[i]=u;else throw new Error(`operands could not be broadcast together with shapes ${JSON.stringify(Array.from(r))} ${JSON.stringify(Array.from(t))}`)}return a}function Xa(r,t,e){let n=r.length,o=e.length,a=new Array(o).fill(0);for(let i=0;i<n;i++){let u=o-n+i,s=r[i],c=e[u];if(s===c)a[u]=t[i];else if(s===1)a[u]=0;else throw new Error("Invalid broadcast")}return a}function Mr(r,t){let e=Xa(r.shape,r.strides,t);return N.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function L(r,t,e,n){let o=br(r.shape,t.shape),a=Mr(r,o),i=Mr(t,o),u=C(r.dtype,t.dtype),s=N.zeros(o,u),c=s.data,l=s.size;if(z(u)){let m=c;for(let f=0;f<l;f++){let p=a.iget(f),y=i.iget(f),d=typeof p=="bigint"?p:BigInt(Math.round(p)),g=typeof y=="bigint"?y:BigInt(Math.round(y));n==="add"?m[f]=d+g:n==="subtract"?m[f]=d-g:n==="multiply"?m[f]=d*g:n==="divide"?m[f]=d/g:m[f]=BigInt(Math.round(e(Number(d),Number(g))))}}else{let m=z(r.dtype)||z(t.dtype);for(let f=0;f<l;f++){let p=a.iget(f),y=i.iget(f),d=Number(p),g=Number(y);c[f]=e(d,g)}}return s}function er(r,t,e){let n=br(r.shape,t.shape),o=Mr(r,n),a=Mr(t,n),i=n.reduce((c,l)=>c*l,1),u=new Uint8Array(i),s=z(r.dtype)||z(t.dtype);for(let c=0;c<i;c++){let l=o.iget(c),m=a.iget(c),f=Number(l),p=Number(m);u[c]=e(f,p)?1:0}return N.fromData(u,n,"bool")}function V(r,t,e=!0){let n=r.dtype,o=Array.from(r.shape),a=r.size,u=e?n:n!=="float32"&&n!=="float64"?"float64":n,s=N.zeros(o,u),c=s.data,l=r.data;if(z(n))if(z(u)){let m=c;for(let f=0;f<a;f++){let p=Number(l[f]);m[f]=BigInt(Math.round(t(p)))}}else for(let m=0;m<a;m++)c[m]=t(Number(l[m]));else for(let m=0;m<a;m++)c[m]=t(Number(l[m]));return s}var sr=k(()=>{"use strict";R();j()});function ct(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function _e(r,t){return typeof t=="number"?es(r,t):ct(r,t)?Ka(r,t):L(r,t,(e,n)=>e+n,"add")}function Ka(r,t){let e=C(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,u=n.data;if(z(e)){let s=u;if(!z(r.dtype)||!z(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),f=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));s[l]=m+f}else{let l=a,m=i;for(let f=0;f<o;f++)s[f]=l[f]+m[f]}}else if(z(r.dtype)||z(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof i[c]=="bigint"?Number(i[c]):i[c];u[c]=l+m}else for(let c=0;c<o;c++)u[c]=a[c]+i[c];return n}function Be(r,t){return typeof t=="number"?ns(r,t):ct(r,t)?rs(r,t):L(r,t,(e,n)=>e-n,"subtract")}function rs(r,t){let e=C(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,u=n.data;if(z(e)){let s=u;if(!z(r.dtype)||!z(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),f=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));s[l]=m-f}else{let l=a,m=i;for(let f=0;f<o;f++)s[f]=l[f]-m[f]}}else if(z(r.dtype)||z(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof i[c]=="bigint"?Number(i[c]):i[c];u[c]=l-m}else for(let c=0;c<o;c++)u[c]=a[c]-i[c];return n}function ve(r,t){return typeof t=="number"?os(r,t):ct(r,t)?ts(r,t):L(r,t,(e,n)=>e*n,"multiply")}function ts(r,t){let e=C(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,u=n.data;if(z(e)){let s=u;if(!z(r.dtype)||!z(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),f=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));s[l]=m*f}else{let l=a,m=i;for(let f=0;f<o;f++)s[f]=l[f]*m[f]}}else if(z(r.dtype)||z(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof i[c]=="bigint"?Number(i[c]):i[c];u[c]=l*m}else for(let c=0;c<o;c++)u[c]=a[c]*i[c];return n}function Ee(r,t){if(typeof t=="number")return as(r,t);let e=r.dtype==="float64",n=t.dtype==="float64",o=r.dtype==="float32",a=t.dtype==="float32";if(e||n){let s=e?r:lr(r,"float64"),c=n?t:lr(t,"float64");return L(s,c,(l,m)=>l/m,"divide")}if(o||a){let s=o?r:lr(r,"float32"),c=a?t:lr(t,"float32");return L(s,c,(l,m)=>l/m,"divide")}let i=lr(r,"float64"),u=lr(t,"float64");return L(i,u,(s,c)=>s/c,"divide")}function lr(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 es(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),u=i.data;if(z(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]+l}else for(let s=0;s<a;s++)u[s]=Number(o[s])+t;return i}function ns(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),u=i.data;if(z(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]-l}else for(let s=0;s<a;s++)u[s]=Number(o[s])-t;return i}function os(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),u=i.data;if(z(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]*l}else for(let s=0;s<a;s++)u[s]=Number(o[s])*t;return i}function as(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=e!=="float32"&&e!=="float64"?"float64":e,s=N.zeros(n,u),c=s.data;if(z(e))for(let l=0;l<a;l++)c[l]=Number(o[l])/t;else for(let l=0;l<a;l++)c[l]=Number(o[l])/t;return s}function Oe(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(z(t)){let u=n,s=i;for(let c=0;c<o;c++){let l=u[c];s[c]=l<0n?-l:l}}else for(let u=0;u<o;u++)i[u]=Math.abs(Number(n[u]));return a}function Te(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(z(t)){let u=n,s=i;for(let c=0;c<o;c++)s[c]=-u[c]}else for(let u=0;u<o;u++)i[u]=-Number(n[u]);return a}function Ue(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(z(t)){let u=n,s=i;for(let c=0;c<o;c++){let l=u[c];s[c]=l>0n?1n:l<0n?-1n:0n}}else for(let u=0;u<o;u++){let s=Number(n[u]);i[u]=s>0?1:s<0?-1:0}return a}function kr(r,t){return typeof t=="number"?ss(r,t):L(r,t,(e,n)=>(e%n+n)%n,"mod")}function ss(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),u=i.data;if(z(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++){let f=s[m];c[m]=(f%l+l)%l}}else for(let s=0;s<a;s++){let c=Number(o[s]);u[s]=(c%t+t)%t}return i}function lt(r,t){return typeof t=="number"?is(r,t):L(r,t,(e,n)=>Math.floor(e/n),"floor_divide")}function is(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),u=i.data;if(z(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]/l}else for(let s=0;s<a;s++)u[s]=Math.floor(Number(o[s])/t);return i}function $e(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=N.zeros(e,t),i=a.data;for(let u=0;u<o;u++)i[u]=n[u];return a}function Me(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,i=t!=="float32"&&t!=="float64"?"float64":t,u=N.zeros(e,i),s=u.data;if(z(t))for(let c=0;c<o;c++)s[c]=1/Number(n[c]);else for(let c=0;c<o;c++)s[c]=1/Number(n[c]);return u}function ke(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,i=t!=="float32"&&t!=="float64"?"float64":t,u=N.zeros(e,i),s=u.data;for(let c=0;c<o;c++)s[c]=Math.cbrt(Number(n[c]));return u}function Ce(r){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),u=i.data;for(let s=0;s<o;s++)u[s]=Math.abs(Number(n[s]));return i}function Ve(r,t){let e=lt(r,t),n=kr(r,t);return[e,n]}function Pe(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(z(t)){let u=n,s=i;for(let c=0;c<o;c++)s[c]=u[c]*u[c]}else for(let u=0;u<o;u++){let s=Number(n[u]);i[u]=s*s}return a}function qe(r,t){return kr(r,t)}function Fe(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",i=N.zeros(n,a),u=i.data;if(typeof t=="number")for(let s=0;s<o;s++){let c=Number(r.data[s]);c<0?u[s]=0:c===0?u[s]=t:u[s]=1}else{let s=t.data,c=t.shape;if(n.every((l,m)=>l===c[m]))for(let l=0;l<o;l++){let m=Number(r.data[l]);m<0?u[l]=0:m===0?u[l]=Number(s[l]):u[l]=1}else for(let l=0;l<o;l++){let m=Number(r.data[l]),f=l%t.size;m<0?u[l]=0:m===0?u[l]=Number(s[f]):u[l]=1}}return i}var Re=k(()=>{"use strict";R();j();sr()});function nr(r){if(r.length===0)return[];if(r.length===1)return Array.from(r[0]);let t=Math.max(...r.map(n=>n.length)),e=new Array(t);for(let n=0;n<t;n++){let o=1;for(let a of r){let i=a.length-t+n,u=i<0?1:a[i];if(u!==1){if(o===1)o=u;else if(o!==u)return null}}e[n]=o}return e}function cs(r,t,e){let n=r.length,o=e.length,a=new Array(o).fill(0);for(let i=0;i<n;i++){let u=o-n+i,s=r[i],c=e[u];if(s===c)a[u]=t[i];else if(s===1)a[u]=0;else throw new Error("Invalid broadcast")}return a}function X(r,t){let e=cs(r.shape,r.strides,t);return N.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function ft(...r){let t=nr(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 mt=k(()=>{"use strict";R()});function je(r,t){return typeof t=="number"?ls(r,t):er(r,t,(e,n)=>e>n)}function Le(r,t){return typeof t=="number"?fs(r,t):er(r,t,(e,n)=>e>=n)}function We(r,t){return typeof t=="number"?ms(r,t):er(r,t,(e,n)=>e<n)}function Ze(r,t){return typeof t=="number"?ps(r,t):er(r,t,(e,n)=>e<=n)}function Ge(r,t){return typeof t=="number"?ys(r,t):er(r,t,(e,n)=>e===n)}function He(r,t){return typeof t=="number"?ds(r,t):er(r,t,(e,n)=>e!==n)}function pt(r,t,e=1e-5,n=1e-8){return typeof t=="number"?gs(r,t,e,n):er(r,t,(o,a)=>{let i=Math.abs(o-a),u=n+e*Math.abs(a);return i<=u})}function Ye(r,t,e=1e-5,n=1e-8){let o=pt(r,t,e,n),a=o.data;for(let i=0;i<o.size;i++)if(a[i]===0)return!1;return!0}function Je(r,t){let e=[Array.from(r.shape),Array.from(t.shape)],n=nr(e);if(n===null)return!1;let o=X(r,n),a=X(t,n),i=n.length,u=n.reduce((l,m)=>l*m,1),s=z(o.dtype),c=z(a.dtype);for(let l=0;l<u;l++){let m=l,f=new Array(i);for(let d=i-1;d>=0;d--)f[d]=m%n[d],m=Math.floor(m/n[d]);let p=o.get(...f),y=a.get(...f);if(s||c){let d=typeof p=="bigint"?p:BigInt(Number(p)),g=typeof y=="bigint"?y:BigInt(Number(y));if(d!==g)return!1}else if(p!==y)return!1}return!0}function ls(r,t){let e=new Uint8Array(r.size),n=r.data;for(let o=0;o<r.size;o++)e[o]=n[o]>t?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function fs(r,t){let e=new Uint8Array(r.size),n=r.data;for(let o=0;o<r.size;o++)e[o]=n[o]>=t?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function ms(r,t){let e=new Uint8Array(r.size),n=r.data;for(let o=0;o<r.size;o++)e[o]=n[o]<t?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function ps(r,t){let e=new Uint8Array(r.size),n=r.data;for(let o=0;o<r.size;o++)e[o]=n[o]<=t?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function ys(r,t){let e=new Uint8Array(r.size),n=r.data,o=r.dtype;if(z(o)){let a=BigInt(Math.round(t)),i=n;for(let u=0;u<r.size;u++)e[u]=i[u]===a?1:0}else for(let a=0;a<r.size;a++)e[a]=n[a]===t?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function ds(r,t){let e=new Uint8Array(r.size),n=r.data;for(let o=0;o<r.size;o++)e[o]=n[o]!==t?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function gs(r,t,e,n){let o=new Uint8Array(r.size),a=r.data,i=r.dtype;if(z(i)){let u=a;for(let s=0;s<r.size;s++){let c=Number(u[s]),l=Math.abs(c-t),m=n+e*Math.abs(t);o[s]=l<=m?1:0}}else for(let u=0;u<r.size;u++){let s=Number(a[u]),c=Math.abs(s-t),l=n+e*Math.abs(t);o[u]=c<=l?1:0}return N.fromData(o,Array.from(r.shape),"bool")}var Qe=k(()=>{"use strict";R();j();sr();mt()});function O(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 T(r,t,e,n){let o=n.length,a=new Array(o),i=Array.from(n).filter((s,c)=>c!==t),u=r;for(let s=i.length-1;s>=0;s--)a[s>=t?s+1:s]=u%i[s],u=Math.floor(u/i[s]);return a[t]=e,a}var yt=k(()=>{"use strict"});function Sr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,i=r.size,u=r.data;if(t===void 0)if(z(n)){let y=u,d=BigInt(0);for(let g=0;g<i;g++)d+=y[g];return Number(d)}else{let y=0;for(let d=0;d<i;d++)y+=Number(u[d]);return y}let s=t;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((y,d)=>d!==s);if(c.length===0)return Sr(r);let l=N.zeros(c,n),m=l.data,f=o[s],p=c.reduce((y,d)=>y*d,1);if(z(n)){let y=u,d=m;for(let g=0;g<p;g++){let b=BigInt(0);for(let h=0;h<f;h++){let A=T(g,s,h,o),S=O(A,o);b+=y[S]}d[g]=b}}else for(let y=0;y<p;y++){let d=0;for(let g=0;g<f;g++){let b=T(y,s,g,o),h=O(b,o);d+=Number(u[h])}m[y]=d}if(e){let y=[...o];return y[s]=1,N.fromData(m,y,n)}return l}function Cr(r,t,e=!1){let n=r.dtype,o=r.shape;if(t===void 0)return Sr(r)/r.size;let a=t;if(a<0&&(a=o.length+a),a<0||a>=o.length)throw new Error(`axis ${t} is out of bounds for array of dimension ${o.length}`);let i=Sr(r,t,e);if(typeof i=="number")return i/o[a];let u=o[a],s=n;(z(n)||n.startsWith("int")||n.startsWith("uint"))&&(s="float64");let c=N.zeros(Array.from(i.shape),s),l=c.data,m=i.data;if(z(n)){let f=m;for(let p=0;p<l.length;p++)l[p]=Number(f[p])/u}else for(let f=0;f<l.length;f++)l[f]=Number(m[f])/u;return c}function Vr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,i=r.size,u=r.data;if(t===void 0){if(i===0)throw new Error("max of empty array");let y=u[0];for(let d=1;d<i;d++)u[d]>y&&(y=u[d]);return Number(y)}let s=t;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((y,d)=>d!==s);if(c.length===0)return Vr(r);let l=N.zeros(c,n),m=l.data,f=o[s],p=c.reduce((y,d)=>y*d,1);if(z(n)){let y=u,d=m;for(let g=0;g<p;g++){let b=T(g,s,0,o),h=O(b,o),A=y[h];for(let S=1;S<f;S++){let D=T(g,s,S,o),x=O(D,o),w=y[x];w>A&&(A=w)}d[g]=A}}else for(let y=0;y<p;y++){let d=-1/0;for(let g=0;g<f;g++){let b=T(y,s,g,o),h=O(b,o),A=Number(u[h]);A>d&&(d=A)}m[y]=d}if(e){let y=[...o];return y[s]=1,N.fromData(m,y,n)}return l}function dt(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,i=r.size,u=r.data;if(t===void 0)if(z(n)){let y=u,d=BigInt(1);for(let g=0;g<i;g++)d*=y[g];return Number(d)}else{let y=1;for(let d=0;d<i;d++)y*=Number(u[d]);return y}let s=t;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((y,d)=>d!==s);if(c.length===0)return dt(r);let l=N.zeros(c,n),m=l.data,f=o[s],p=c.reduce((y,d)=>y*d,1);if(z(n)){let y=u,d=m;for(let g=0;g<p;g++){let b=BigInt(1);for(let h=0;h<f;h++){let A=T(g,s,h,o),S=O(A,o);b*=y[S]}d[g]=b}}else for(let y=0;y<p;y++){let d=1;for(let g=0;g<f;g++){let b=T(y,s,g,o),h=O(b,o);d*=Number(u[h])}m[y]=d}if(e){let y=[...o];return y[s]=1,N.fromData(m,y,n)}return l}function Pr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,i=r.size,u=r.data;if(t===void 0){if(i===0)throw new Error("min of empty array");let y=u[0];for(let d=1;d<i;d++)u[d]<y&&(y=u[d]);return Number(y)}let s=t;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((y,d)=>d!==s);if(c.length===0)return Pr(r);let l=N.zeros(c,n),m=l.data,f=o[s],p=c.reduce((y,d)=>y*d,1);if(z(n)){let y=u,d=m;for(let g=0;g<p;g++){let b=T(g,s,0,o),h=O(b,o),A=y[h];for(let S=1;S<f;S++){let D=T(g,s,S,o),x=O(D,o),w=y[x];w<A&&(A=w)}d[g]=A}}else for(let y=0;y<p;y++){let d=1/0;for(let g=0;g<f;g++){let b=T(y,s,g,o),h=O(b,o),A=Number(u[h]);A<d&&(d=A)}m[y]=d}if(e){let y=[...o];return y[s]=1,N.fromData(m,y,n)}return l}function gt(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.size,i=r.data;if(t===void 0){if(a===0)throw new Error("argmin of empty array");let p=i[0],y=0;for(let d=1;d<a;d++)i[d]<p&&(p=i[d],y=d);return y}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((p,y)=>y!==u);if(s.length===0)return gt(r);let c=N.zeros(s,"int32"),l=c.data,m=n[u],f=s.reduce((p,y)=>p*y,1);if(z(e)){let p=i;for(let y=0;y<f;y++){let d=T(y,u,0,n),g=O(d,n),b=p[g],h=0;for(let A=1;A<m;A++){let S=T(y,u,A,n),D=O(S,n),x=p[D];x<b&&(b=x,h=A)}l[y]=h}}else for(let p=0;p<f;p++){let y=1/0,d=0;for(let g=0;g<m;g++){let b=T(p,u,g,n),h=O(b,n),A=Number(i[h]);A<y&&(y=A,d=g)}l[p]=d}return c}function At(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.size,i=r.data;if(t===void 0){if(a===0)throw new Error("argmax of empty array");let p=i[0],y=0;for(let d=1;d<a;d++)i[d]>p&&(p=i[d],y=d);return y}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((p,y)=>y!==u);if(s.length===0)return At(r);let c=N.zeros(s,"int32"),l=c.data,m=n[u],f=s.reduce((p,y)=>p*y,1);if(z(e)){let p=i;for(let y=0;y<f;y++){let d=T(y,u,0,n),g=O(d,n),b=p[g],h=0;for(let A=1;A<m;A++){let S=T(y,u,A,n),D=O(S,n),x=p[D];x>b&&(b=x,h=A)}l[y]=h}}else for(let p=0;p<f;p++){let y=-1/0,d=0;for(let g=0;g<m;g++){let b=T(p,u,g,n),h=O(b,n),A=Number(i[h]);A>y&&(y=A,d=g)}l[p]=d}return c}function ht(r,t,e=0,n=!1){let o=r.shape,a=o.length,i=r.size,u=r.data,s=Cr(r,t,n);if(t===void 0){let b=s,h=0;for(let A=0;A<i;A++){let S=Number(u[A])-b;h+=S*S}return h/(i-e)}let c=t;if(c<0&&(c=a+c),c<0||c>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let l=o[c],m=s,f=m.data,p=n?m.shape:Array.from(o).filter((b,h)=>h!==c),y=N.zeros(Array.from(p),"float64"),d=y.data,g=p.reduce((b,h)=>b*h,1);for(let b=0;b<g;b++){let h=0,A=Number(f[b]);for(let S=0;S<l;S++){let D=T(b,c,S,o),x=O(D,o),w=Number(u[x])-A;h+=w*w}d[b]=h/(l-e)}return y}function Xe(r,t,e=0,n=!1){let o=ht(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=N.zeros(Array.from(o.shape),"float64"),i=o.data,u=a.data;for(let s=0;s<i.length;s++)u[s]=Math.sqrt(Number(i[s]));return a}function bt(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,i=r.data;if(t===void 0){for(let p=0;p<a;p++)if(!i[p])return!1;return!0}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((p,y)=>y!==u);if(s.length===0)return bt(r);let c=N.zeros(s,"bool"),l=c.data,m=n[u],f=s.reduce((p,y)=>p*y,1);for(let p=0;p<f;p++){let y=!0;for(let d=0;d<m;d++){let g=T(p,u,d,n),b=O(g,n);if(!i[b]){y=!1;break}}l[p]=y?1:0}if(e){let p=[...n];return p[u]=1,N.fromData(l,p,"bool")}return c}function St(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,i=r.data;if(t===void 0){for(let p=0;p<a;p++)if(i[p])return!0;return!1}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((p,y)=>y!==u);if(s.length===0)return St(r);let c=N.zeros(s,"bool"),l=c.data,m=n[u],f=s.reduce((p,y)=>p*y,1);for(let p=0;p<f;p++){let y=!1;for(let d=0;d<m;d++){let g=T(p,u,d,n),b=O(g,n);if(i[b]){y=!0;break}}l[p]=y?1:0}if(e){let p=[...n];return p[u]=1,N.fromData(l,p,"bool")}return c}function Nt(r,t){let e=r.shape,n=e.length,o=r.data;if(t===void 0){let f=r.size,p=new Float64Array(f),y=0;for(let d=0;d<f;d++)y+=Number(o[d]),p[d]=y;return N.fromData(p,[f],"float64")}let a=t;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=new Float64Array(r.size),u=e[a],s=[],c=1;for(let f=n-1;f>=0;f--)s.unshift(c),c*=e[f];let l=r.size,m=s[a];for(let f=0;f<l;f++)Math.floor(f/m)%u===0?i[f]=Number(o[f]):i[f]=i[f-m]+Number(o[f]);return N.fromData(i,[...e],"float64")}function Dt(r,t){let e=r.shape,n=e.length,o=r.data;if(t===void 0){let f=r.size,p=new Float64Array(f),y=1;for(let d=0;d<f;d++)y*=Number(o[d]),p[d]=y;return N.fromData(p,[f],"float64")}let a=t;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=new Float64Array(r.size),u=e[a],s=[],c=1;for(let f=n-1;f>=0;f--)s.unshift(c),c*=e[f];let l=r.size,m=s[a];for(let f=0;f<l;f++)Math.floor(f/m)%u===0?i[f]=Number(o[f]):i[f]=i[f-m]*Number(o[f]);return N.fromData(i,[...e],"float64")}function xt(r,t,e=!1){let n=Vr(r,t,e),o=Pr(r,t,e);if(typeof n=="number"&&typeof o=="number")return n-o;let a=n,i=o,u=a.data,s=i.data,c=new Float64Array(a.size);for(let l=0;l<a.size;l++)c[l]=Number(u[l])-Number(s[l]);return N.fromData(c,[...a.shape],"float64")}function wt(r,t,e=!1){return fr(r,.5,t,e)}function zt(r,t,e,n=!1){return fr(r,t/100,e,n)}function fr(r,t,e,n=!1){if(t<0||t>1)throw new Error("Quantile must be between 0 and 1");let o=r.shape,a=o.length,i=r.data;if(e===void 0){let p=[];for(let A=0;A<r.size;A++)p.push(Number(i[A]));p.sort((A,S)=>A-S);let y=p.length,d=t*(y-1),g=Math.floor(d),b=Math.ceil(d);if(g===b)return p[g];let h=d-g;return p[g]*(1-h)+p[b]*h}let u=e;if(u<0&&(u=a+u),u<0||u>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);let s=Array.from(o).filter((p,y)=>y!==u);if(s.length===0)return fr(r,t);let c=s.reduce((p,y)=>p*y,1),l=o[u],m=new Float64Array(c);for(let p=0;p<c;p++){let y=[];for(let A=0;A<l;A++){let S=T(p,u,A,o),D=O(S,o);y.push(Number(i[D]))}y.sort((A,S)=>A-S);let d=y.length,g=t*(d-1),b=Math.floor(g),h=Math.ceil(g);if(b===h)m[p]=y[b];else{let A=g-b;m[p]=y[b]*(1-A)+y[h]*A}}let f=N.fromData(m,s,"float64");if(n){let p=[...o];return p[u]=1,N.fromData(m,p,"float64")}return f}function qr(r,t,e,n=!1){let o=r.shape,a=o.length,i=r.data;if(e===void 0)return Cr(r,t,n);if(t===void 0){let y=0,d=0,g=e.data;for(let b=0;b<r.size;b++){let h=Number(g[b%e.size]);y+=Number(i[b])*h,d+=h}return d===0?NaN:y/d}let u=t;if(u<0&&(u=a+u),u<0||u>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let s=Array.from(o).filter((y,d)=>d!==u);if(s.length===0)return qr(r,void 0,e);let c=s.reduce((y,d)=>y*d,1),l=o[u],m=e.data,f=new Float64Array(c);for(let y=0;y<c;y++){let d=0,g=0;for(let b=0;b<l;b++){let h=T(y,u,b,o),A=O(h,o),S=Number(m[b%e.size]);d+=Number(i[A])*S,g+=S}f[y]=g===0?NaN:d/g}let p=N.fromData(f,s,"float64");if(n){let y=[...o];return y[u]=1,N.fromData(f,y,"float64")}return p}function Fr(r,t,e=!1){let n=r.shape,o=n.length,a=r.data;if(t===void 0){let f=0;for(let p=0;p<r.size;p++){let y=Number(a[p]);isNaN(y)||(f+=y)}return f}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let u=Array.from(n).filter((f,p)=>p!==i);if(u.length===0)return Fr(r);let s=u.reduce((f,p)=>f*p,1),c=n[i],l=new Float64Array(s);for(let f=0;f<s;f++){let p=0;for(let y=0;y<c;y++){let d=T(f,i,y,n),g=O(d,n),b=Number(a[g]);isNaN(b)||(p+=b)}l[f]=p}let m=N.fromData(l,u,"float64");if(e){let f=[...n];return f[i]=1,N.fromData(l,f,"float64")}return m}function Rr(r,t,e=!1){let n=r.shape,o=n.length,a=r.data;if(t===void 0){let f=1;for(let p=0;p<r.size;p++){let y=Number(a[p]);isNaN(y)||(f*=y)}return f}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let u=Array.from(n).filter((f,p)=>p!==i);if(u.length===0)return Rr(r);let s=u.reduce((f,p)=>f*p,1),c=n[i],l=new Float64Array(s);for(let f=0;f<s;f++){let p=1;for(let y=0;y<c;y++){let d=T(f,i,y,n),g=O(d,n),b=Number(a[g]);isNaN(b)||(p*=b)}l[f]=p}let m=N.fromData(l,u,"float64");if(e){let f=[...n];return f[i]=1,N.fromData(l,f,"float64")}return m}function jr(r,t,e=!1){let n=r.shape,o=n.length,a=r.data;if(t===void 0){let f=0,p=0;for(let y=0;y<r.size;y++){let d=Number(a[y]);isNaN(d)||(f+=d,p++)}return p===0?NaN:f/p}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let u=Array.from(n).filter((f,p)=>p!==i);if(u.length===0)return jr(r);let s=u.reduce((f,p)=>f*p,1),c=n[i],l=new Float64Array(s);for(let f=0;f<s;f++){let p=0,y=0;for(let d=0;d<c;d++){let g=T(f,i,d,n),b=O(g,n),h=Number(a[b]);isNaN(h)||(p+=h,y++)}l[f]=y===0?NaN:p/y}let m=N.fromData(l,u,"float64");if(e){let f=[...n];return f[i]=1,N.fromData(l,f,"float64")}return m}function Nr(r,t,e=0,n=!1){let o=r.shape,a=o.length,i=r.data;if(t===void 0){let p=0,y=0;for(let b=0;b<r.size;b++){let h=Number(i[b]);isNaN(h)||(p+=h,y++)}if(y-e<=0)return NaN;let d=p/y,g=0;for(let b=0;b<r.size;b++){let h=Number(i[b]);isNaN(h)||(g+=(h-d)**2)}return g/(y-e)}let u=t;if(u<0&&(u=a+u),u<0||u>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let s=Array.from(o).filter((p,y)=>y!==u);if(s.length===0)return Nr(r,void 0,e);let c=s.reduce((p,y)=>p*y,1),l=o[u],m=new Float64Array(c);for(let p=0;p<c;p++){let y=0,d=0;for(let h=0;h<l;h++){let A=T(p,u,h,o),S=O(A,o),D=Number(i[S]);isNaN(D)||(y+=D,d++)}if(d-e<=0){m[p]=NaN;continue}let g=y/d,b=0;for(let h=0;h<l;h++){let A=T(p,u,h,o),S=O(A,o),D=Number(i[S]);isNaN(D)||(b+=(D-g)**2)}m[p]=b/(d-e)}let f=N.fromData(m,s,"float64");if(n){let p=[...o];return p[u]=1,N.fromData(m,p,"float64")}return f}function It(r,t,e=0,n=!1){let o=Nr(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=o,i=new Float64Array(a.size);for(let u=0;u<a.size;u++)i[u]=Math.sqrt(Number(a.data[u]));return N.fromData(i,[...a.shape],"float64")}function Lr(r,t,e=!1){let n=r.shape,o=n.length,a=r.data;if(t===void 0){let f=1/0;for(let p=0;p<r.size;p++){let y=Number(a[p]);!isNaN(y)&&y<f&&(f=y)}return f===1/0?NaN:f}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let u=Array.from(n).filter((f,p)=>p!==i);if(u.length===0)return Lr(r);let s=u.reduce((f,p)=>f*p,1),c=n[i],l=new Float64Array(s);for(let f=0;f<s;f++){let p=1/0;for(let y=0;y<c;y++){let d=T(f,i,y,n),g=O(d,n),b=Number(a[g]);!isNaN(b)&&b<p&&(p=b)}l[f]=p===1/0?NaN:p}let m=N.fromData(l,u,"float64");if(e){let f=[...n];return f[i]=1,N.fromData(l,f,"float64")}return m}function Wr(r,t,e=!1){let n=r.shape,o=n.length,a=r.data;if(t===void 0){let f=-1/0;for(let p=0;p<r.size;p++){let y=Number(a[p]);!isNaN(y)&&y>f&&(f=y)}return f===-1/0?NaN:f}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let u=Array.from(n).filter((f,p)=>p!==i);if(u.length===0)return Wr(r);let s=u.reduce((f,p)=>f*p,1),c=n[i],l=new Float64Array(s);for(let f=0;f<s;f++){let p=-1/0;for(let y=0;y<c;y++){let d=T(f,i,y,n),g=O(d,n),b=Number(a[g]);!isNaN(b)&&b>p&&(p=b)}l[f]=p===-1/0?NaN:p}let m=N.fromData(l,u,"float64");if(e){let f=[...n];return f[i]=1,N.fromData(l,f,"float64")}return m}function Zr(r,t){let e=r.shape,n=e.length,o=r.data;if(t===void 0){let l=1/0,m=-1;for(let f=0;f<r.size;f++){let p=Number(o[f]);!isNaN(p)&&p<l&&(l=p,m=f)}return m}let a=t;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=Array.from(e).filter((l,m)=>m!==a);if(i.length===0)return Zr(r);let u=i.reduce((l,m)=>l*m,1),s=e[a],c=new Int32Array(u);for(let l=0;l<u;l++){let m=1/0,f=0;for(let p=0;p<s;p++){let y=T(l,a,p,e),d=O(y,e),g=Number(o[d]);!isNaN(g)&&g<m&&(m=g,f=p)}c[l]=f}return N.fromData(c,i,"int32")}function Gr(r,t){let e=r.shape,n=e.length,o=r.data;if(t===void 0){let l=-1/0,m=-1;for(let f=0;f<r.size;f++){let p=Number(o[f]);!isNaN(p)&&p>l&&(l=p,m=f)}return m}let a=t;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=Array.from(e).filter((l,m)=>m!==a);if(i.length===0)return Gr(r);let u=i.reduce((l,m)=>l*m,1),s=e[a],c=new Int32Array(u);for(let l=0;l<u;l++){let m=-1/0,f=0;for(let p=0;p<s;p++){let y=T(l,a,p,e),d=O(y,e),g=Number(o[d]);!isNaN(g)&&g>m&&(m=g,f=p)}c[l]=f}return N.fromData(c,i,"int32")}function _t(r,t){let e=r.shape,n=e.length,o=r.data;if(t===void 0){let f=r.size,p=new Float64Array(f),y=0;for(let d=0;d<f;d++){let g=Number(o[d]);isNaN(g)||(y+=g),p[d]=y}return N.fromData(p,[f],"float64")}let a=t;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=new Float64Array(r.size),u=e[a],s=[],c=1;for(let f=n-1;f>=0;f--)s.unshift(c),c*=e[f];let l=r.size,m=s[a];for(let f=0;f<l;f++){let p=Number(o[f]);Math.floor(f/m)%u===0?i[f]=isNaN(p)?0:p:i[f]=i[f-m]+(isNaN(p)?0:p)}return N.fromData(i,[...e],"float64")}function Bt(r,t){let e=r.shape,n=e.length,o=r.data;if(t===void 0){let f=r.size,p=new Float64Array(f),y=1;for(let d=0;d<f;d++){let g=Number(o[d]);isNaN(g)||(y*=g),p[d]=y}return N.fromData(p,[f],"float64")}let a=t;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=new Float64Array(r.size),u=e[a],s=[],c=1;for(let f=n-1;f>=0;f--)s.unshift(c),c*=e[f];let l=r.size,m=s[a];for(let f=0;f<l;f++){let p=Number(o[f]);Math.floor(f/m)%u===0?i[f]=isNaN(p)?1:p:i[f]=i[f-m]*(isNaN(p)?1:p)}return N.fromData(i,[...e],"float64")}function Hr(r,t,e=!1){let n=r.shape,o=n.length,a=r.data;if(t===void 0){let f=[];for(let d=0;d<r.size;d++){let g=Number(a[d]);isNaN(g)||f.push(g)}if(f.length===0)return NaN;f.sort((d,g)=>d-g);let p=f.length,y=Math.floor(p/2);return p%2===0?(f[y-1]+f[y])/2:f[y]}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let u=Array.from(n).filter((f,p)=>p!==i);if(u.length===0)return Hr(r);let s=u.reduce((f,p)=>f*p,1),c=n[i],l=new Float64Array(s);for(let f=0;f<s;f++){let p=[];for(let g=0;g<c;g++){let b=T(f,i,g,n),h=O(b,n),A=Number(a[h]);isNaN(A)||p.push(A)}if(p.length===0){l[f]=NaN;continue}p.sort((g,b)=>g-b);let y=p.length,d=Math.floor(y/2);y%2===0?l[f]=(p[d-1]+p[d])/2:l[f]=p[d]}let m=N.fromData(l,u,"float64");if(e){let f=[...n];return f[i]=1,N.fromData(l,f,"float64")}return m}var Ke=k(()=>{"use strict";R();j();yt()});function W(r,t){let e=r.size,n=r.dtype,o=t.indexOf(-1),a;if(o!==-1){let c=t.reduce((m,f,p)=>p===o?m:m*f,1),l=e/c;if(!Number.isInteger(l))throw new Error(`cannot reshape array of size ${e} into shape ${JSON.stringify(t)}`);a=t.map((m,f)=>f===o?l:m)}else a=t;if(a.reduce((c,l)=>c*l,1)!==e)throw new Error(`cannot reshape array of size ${e} into shape ${JSON.stringify(a)}`);if(r.isCContiguous){let c=r.data;return N.fromData(c,a,n,G(a),0)}let s=r.copy().data;return N.fromData(s,a,n,G(a),0)}function Yr(r){let t=r.size,e=r.dtype,n=U(e);if(!n)throw new Error(`Cannot flatten array with dtype ${e}`);if(r.isCContiguous){let u=r.data.slice(r.offset,r.offset+t);return N.fromData(u,[t],e,[1],0)}let o=new n(t),a=z(e);for(let i=0;i<t;i++){let u=r.iget(i);o[i]=u}return N.fromData(o,[t],e,[1],0)}function mr(r){let t=r.size,e=r.dtype;if(r.isCContiguous){let n=r.data;return N.fromData(n,[t],e,[1],0)}return Yr(r)}function xr(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,i=r.dtype,u;if(t===void 0)u=Array.from({length:n},(m,f)=>n-1-f);else{if(t.length!==n)throw new Error(`axes must have length ${n}, got ${t.length}`);let m=new Set;for(let f of t){let p=f<0?n+f:f;if(p<0||p>=n)throw new Error(`axis ${f} is out of bounds for array of dimension ${n}`);if(m.has(p))throw new Error("repeated axis in transpose");m.add(p)}u=t.map(f=>f<0?n+f:f)}let s=u.map(m=>e[m]),c=Array.from(o),l=u.map(m=>c[m]);return N.fromData(a,s,i,l,r.offset)}function rn(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,i=r.dtype;if(t===void 0){let u=[],s=[];for(let c=0;c<n;c++)e[c]!==1&&(u.push(e[c]),s.push(o[c]));return u.length===0&&(u.push(1),s.push(1)),N.fromData(a,u,i,s,r.offset)}else{let u=t<0?n+t:t;if(u<0||u>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);if(e[u]!==1)throw new Error(`cannot select an axis which has size not equal to one (axis ${t} has size ${e[u]})`);let s=[],c=[];for(let l=0;l<n;l++)l!==u&&(s.push(e[l]),c.push(o[l]));return N.fromData(a,s,i,c,r.offset)}}function Dr(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,i=r.dtype,u=t;if(u<0&&(u=n+t+1),u<0||u>n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n+1}`);let s=[...Array.from(e)];s.splice(u,0,1);let c=[...Array.from(o)],l=u<n?o[u]*(e[u]||1):1;return c.splice(u,0,l),N.fromData(a,s,i,c,r.offset)}function tn(r,t,e){let n=r.shape,o=n.length,a=r.strides,i=r.data,u=r.dtype,s=t<0?o+t:t,c=e<0?o+e:e;if(s<0||s>=o)throw new Error(`axis1 ${t} is out of bounds for array of dimension ${o}`);if(c<0||c>=o)throw new Error(`axis2 ${e} is out of bounds for array of dimension ${o}`);if(s===c)return N.fromData(i,Array.from(n),u,Array.from(a),r.offset);let l=Array.from(n),m=Array.from(a);return[l[s],l[c]]=[l[c],l[s]],[m[s],m[c]]=[m[c],m[s]],N.fromData(i,l,u,m,r.offset)}function vt(r,t,e){let n=r.ndim,o=Array.isArray(t)?t:[t],a=Array.isArray(e)?e:[e];if(o.length!==a.length)throw new Error("source and destination must have the same number of elements");let i=o.map(c=>{let l=c<0?n+c:c;if(l<0||l>=n)throw new Error(`source axis ${c} is out of bounds for array of dimension ${n}`);return l}),u=a.map(c=>{let l=c<0?n+c:c;if(l<0||l>=n)throw new Error(`destination axis ${c} is out of bounds for array of dimension ${n}`);return l});if(new Set(i).size!==i.length)throw new Error("repeated axis in source");if(new Set(u).size!==u.length)throw new Error("repeated axis in destination");let s=[];for(let c=0;c<n;c++)i.includes(c)||s.push(c);for(let c=0;c<i.length;c++){let l=u[c];s.splice(l,0,i[c])}return xr(r,s)}function ir(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 i=Array.from(e.shape),u=e.shape[a];for(let p=1;p<r.length;p++)u+=r[p].shape[a];i[a]=u;let s=i.reduce((p,y)=>p*y,1),c=U(o);if(!c)throw new Error(`Cannot concatenate arrays with dtype ${o}`);let l=new c(s),m=G(i),f=0;for(let p of r){let y=p.shape[a];bs(p,l,i,m,a,f,o),f+=y}return N.fromData(l,i,o)}function bs(r,t,e,n,o,a,i){let u=r.shape,s=u.length,c=r.size,l=i==="int64"||i==="uint64";if(o===0&&r.isCContiguous&&s>0){let p=a*n[0],y=r.data,d=r.offset,g=d+c;t.set(y.subarray(d,g),p);return}if(o===1&&s===2&&r.isCContiguous){let p=u[0],y=u[1],d=e[1],g=r.data,b=r.offset;for(let h=0;h<p;h++){let A=b+h*y,S=h*d+a;t.set(g.subarray(A,A+y),S)}return}let m=new Array(s).fill(0),f=a*n[o];for(let p=0;p<c;p++){let y=r.iget(p),d=f;for(let g=0;g<s;g++)d+=m[g]*n[g];t[d]=y;for(let g=s-1;g>=0&&(m[g]++,!(m[g]<u[g]));g--)m[g]=0}}function en(r,t=0){if(r.length===0)throw new Error("need at least one array to stack");let e=r[0],n=e.shape,o=e.ndim,a=t<0?o+1+t:t;if(a<0||a>o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o+1}`);for(let u=1;u<r.length;u++){let s=r[u];if(s.ndim!==o)throw new Error("all input arrays must have the same shape");for(let c=0;c<o;c++)if(s.shape[c]!==n[c])throw new Error("all input arrays must have the same shape")}let i=r.map(u=>Dr(u,a));return ir(i,a)}function nn(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?W(e,[1,e.shape[0]]):e);return ir(t,0)}function Et(r){if(r.length===0)throw new Error("need at least one array to stack");return r.every(e=>e.ndim===1)?ir(r,0):ir(r,1)}function on(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?W(Dr(W(e,[1,e.shape[0]]),2),[1,e.shape[0],1]):e.ndim===2?Dr(e,2):e);return ir(t,2)}function an(r,t,e=0){let n=r.shape,o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=n[a],u;if(typeof t=="number"){if(i%t!==0)throw new Error("array split does not result in an equal division");let s=i/t;u=[];for(let c=1;c<t;c++)u.push(c*s)}else u=t;return sn(r,u,a)}function wr(r,t,e=0){let n=r.shape,o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=n[a],u;if(typeof t=="number"){let s=t,c=Math.floor(i/s),l=i%s;u=[];let m=0;for(let f=0;f<s-1;f++)m+=c+(f<l?1:0),u.push(m)}else u=t;return sn(r,u,a)}function sn(r,t,e){let n=r.shape,o=n[e],a=[0,...t,o],i=[];for(let u=0;u<a.length-1;u++){let s=a[u],c=a[u+1];if(s>c)throw new Error("split indices must be in ascending order");let l=Array.from(n);l[e]=c-s;let m=r.offset+s*r.strides[e];i.push(N.fromData(r.data,l,r.dtype,Array.from(r.strides),m))}return i}function un(r,t){if(r.ndim<2)throw new Error("vsplit only works on arrays of 2 or more dimensions");return wr(r,t,0)}function cn(r,t){if(r.ndim<1)throw new Error("hsplit only works on arrays of 1 or more dimensions");let e=r.ndim===1?0:1;return wr(r,t,e)}function ln(r,t){let e=r.shape,n=e.length,o=r.dtype,a=Array.isArray(t)?t:[t],i=Math.max(n,a.length),u=new Array(i).fill(1),s=new Array(i).fill(1);for(let h=0;h<n;h++)u[i-n+h]=e[h];for(let h=0;h<a.length;h++)s[i-a.length+h]=a[h];let c=u.map((h,A)=>h*s[A]),l=c.reduce((h,A)=>h*A,1),m=U(o);if(!m)throw new Error(`Cannot tile array with dtype ${o}`);let f=new m(l),p=G(c),y=r;n<i&&(y=W(r,u));let d=o==="int64"||o==="uint64",g=y.strides,b=new Array(i).fill(0);for(let h=0;h<l;h++){let A=y.offset;for(let x=0;x<i;x++){let w=b[x]%u[x];A+=w*g[x]}let S=y.data[A],D=0;for(let x=0;x<i;x++)D+=b[x]*p[x];f[D]=S;for(let x=i-1;x>=0&&(b[x]++,!(b[x]<c[x]));x--)b[x]=0}return N.fromData(f,c,o)}function fn(r,t,e){let n=r.shape,o=n.length,a=r.dtype,i=r.size;if(e===void 0){let h=i,A=Array.isArray(t)?t:new Array(h).fill(t);if(A.length!==h)throw new Error(`operands could not be broadcast together with shape (${h},) (${A.length},)`);let S=A.reduce((_,B)=>_+B,0),D=U(a);if(!D)throw new Error(`Cannot repeat array with dtype ${a}`);let x=new D(S),w=0;for(let _=0;_<h;_++){let B=r.iget(_),v=A[_];for(let E=0;E<v;E++)x[w++]=B}return N.fromData(x,[S],a)}let u=e<0?o+e:e;if(u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=n[u],c=Array.isArray(t)?t:new Array(s).fill(t);if(c.length!==s)throw new Error(`operands could not be broadcast together with shape (${s},) (${c.length},)`);let l=Array.from(n);l[u]=c.reduce((h,A)=>h+A,0);let m=l.reduce((h,A)=>h*A,1),f=U(a);if(!f)throw new Error(`Cannot repeat array with dtype ${a}`);let p=new f(m),y=G(l),d=new Array(o).fill(0),g=a==="int64"||a==="uint64",b=[0];for(let h=0;h<s;h++)b.push(b[h]+c[h]);for(let h=0;h<i;h++){let A=r.iget(h),S=d[u],D=c[S],x=0;for(let B=0;B<o;B++)B!==u&&(x+=d[B]*y[B]);let w=y[u],_=b[S];for(let B=0;B<D;B++){let v=x+(_+B)*w;p[v]=A}for(let B=o-1;B>=0&&(d[B]++,!(d[B]<n[B]));B--)d[B]=0}return N.fromData(p,l,a)}function mn(r,t){let e=r.shape,n=e.length,o=r.dtype,a=r.size,i;if(t===void 0)i=new Set(Array.from({length:n},(f,p)=>p));else if(typeof t=="number"){let f=t<0?n+t:t;if(f<0||f>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);i=new Set([f])}else i=new Set(t.map(f=>{let p=f<0?n+f:f;if(p<0||p>=n)throw new Error(`axis ${f} is out of bounds for array of dimension ${n}`);return p}));let u=U(o);if(!u)throw new Error(`Cannot flip array with dtype ${o}`);let s=new u(a),c=z(o);if(n===1&&r.isCContiguous){let f=r.data,p=r.offset;for(let y=0;y<a;y++)s[y]=f[p+a-1-y];return N.fromData(s,[...e],o)}if(n===2&&r.isCContiguous){let f=e[0],p=e[1],y=r.data,d=r.offset;if(i.size===2){for(let g=0;g<a;g++)s[g]=y[d+a-1-g];return N.fromData(s,[...e],o)}if(i.size===1){if(i.has(0)){for(let g=0;g<f;g++){let b=d+(f-1-g)*p,h=g*p;for(let A=0;A<p;A++)s[h+A]=y[b+A]}return N.fromData(s,[...e],o)}else if(i.has(1)){for(let g=0;g<f;g++){let b=d+g*p,h=g*p;for(let A=0;A<p;A++)s[h+A]=y[b+p-1-A]}return N.fromData(s,[...e],o)}}}let l=new Array(n),m=new Array(n).fill(0);for(let f=0;f<a;f++){for(let d=0;d<n;d++)l[d]=i.has(d)?e[d]-1-m[d]:m[d];let p=r.offset;for(let d=0;d<n;d++)p+=l[d]*r.strides[d];let y=r.data[p];s[f]=y;for(let d=n-1;d>=0&&(m[d]++,!(m[d]<e[d]));d--)m[d]=0}return N.fromData(s,[...e],o)}function pn(r,t=1,e=[0,1]){let n=r.shape,o=n.length,a=r.dtype;if(o<2)throw new Error("Input must be at least 2-D");let i=e[0]<0?o+e[0]:e[0],u=e[1]<0?o+e[1]:e[1];if(i<0||i>=o||u<0||u>=o)throw new Error(`Axes are out of bounds for array of dimension ${o}`);if(i===u)throw new Error("Axes must be different");if(t=(t%4+4)%4,t===0)return r.copy();let s=U(a);if(!s)throw new Error(`Cannot rotate array with dtype ${a}`);let c=[...n];(t===1||t===3)&&([c[i],c[u]]=[c[u],c[i]]);let l=c.reduce((g,b)=>g*b,1),m=new s(l),f=G(c),p=z(a),y=new Array(o).fill(0),d=new Array(o);for(let g=0;g<r.size;g++){for(let D=0;D<o;D++)d[D]=y[D];let b,h;t===1?(b=n[u]-1-y[u],h=y[i]):t===2?(b=n[i]-1-y[i],h=n[u]-1-y[u],d[i]=b,d[u]=h):(b=y[u],h=n[i]-1-y[i]),t!==2&&(d[i]=b,d[u]=h);let A=0;for(let D=0;D<o;D++)A+=d[D]*f[D];let S=r.iget(g);m[A]=S;for(let D=o-1;D>=0&&(y[D]++,!(y[D]<n[D]));D--)y[D]=0}return N.fromData(m,c,a)}function yn(r,t,e){let n=r.shape,o=n.length,a=r.dtype,i=r.size;if(e===void 0){let y=Array.isArray(t)?t.reduce((A,S)=>A+S,0):t,d=Yr(r),g=U(a);if(!g)throw new Error(`Cannot roll array with dtype ${a}`);let b=new g(i),h=z(a);for(let A=0;A<i;A++){let S=((A-y)%i+i)%i,D=d.iget(S);b[A]=D}return N.fromData(b,[...n],a)}let u=Array.isArray(t)?t:[t],s=Array.isArray(e)?e:[e];if(u.length!==s.length)throw new Error("shift and axis must have the same length");let c=s.map(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=U(a);if(!l)throw new Error(`Cannot roll array with dtype ${a}`);let m=new l(i),f=z(a),p=new Array(o).fill(0);for(let y=0;y<i;y++){let d=[...p];for(let h=0;h<c.length;h++){let A=c[h],S=n[A],D=u[h];d[A]=((d[A]-D)%S+S)%S}let g=r.offset;for(let h=0;h<o;h++)g+=d[h]*r.strides[h];let b=r.data[g];m[y]=b;for(let h=o-1;h>=0&&(p[h]++,!(p[h]<n[h]));h--)p[h]=0}return N.fromData(m,[...n],a)}function dn(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):vt(r,o,a)}function gn(r,t){if(r.ndim<3)throw new Error("dsplit only works on arrays of 3 or more dimensions");return wr(r,t,2)}function An(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?W(e,[e.shape[0],1]):e);return Et(t)}function hn(r,t){let e=r.dtype,n=t.reduce((s,c)=>s*c,1),o=r.size,a=U(e);if(!a)throw new Error(`Cannot resize array with dtype ${e}`);let i=new a(n),u=z(e);for(let s=0;s<n;s++){let c=s%o,l=r.iget(c);i[s]=l}return N.fromData(i,t,e)}function bn(r){return r.map(t=>t.ndim===0?W(t,[1]):t)}function Sn(r){return r.map(t=>t.ndim===0?W(t,[1,1]):t.ndim===1?W(t,[1,t.shape[0]]):t)}function Nn(r){return r.map(t=>t.ndim===0?W(t,[1,1,1]):t.ndim===1?W(t,[1,t.shape[0],1]):t.ndim===2?W(t,[t.shape[0],t.shape[1],1]):t)}var Ot=k(()=>{"use strict";R();j()});function Ss(r,t,e,n,o,a,i,u,s,c,l,m,f,p){if(m===0)for(let b=0;b<n*o;b++)f[b]=0;else if(m!==1)for(let b=0;b<n*o;b++)f[b]=(f[b]??0)*m;let y=r==="row-major",d=t==="transpose",g=e==="transpose";if(y&&!d&&!g)for(let b=0;b<n;b++)for(let h=0;h<o;h++){let A=0;for(let S=0;S<a;S++)A+=(u[b*s+S]??0)*(c[S*l+h]??0);f[b*p+h]=(f[b*p+h]??0)+i*A}else if(y&&d&&!g)for(let b=0;b<n;b++)for(let h=0;h<o;h++){let A=0;for(let S=0;S<a;S++)A+=(u[S*s+b]??0)*(c[S*l+h]??0);f[b*p+h]=(f[b*p+h]??0)+i*A}else if(y&&!d&&g)for(let b=0;b<n;b++)for(let h=0;h<o;h++){let A=0;for(let S=0;S<a;S++)A+=(u[b*s+S]??0)*(c[h*l+S]??0);f[b*p+h]=(f[b*p+h]??0)+i*A}else if(y&&d&&g)for(let b=0;b<n;b++)for(let h=0;h<o;h++){let A=0;for(let S=0;S<a;S++)A+=(u[S*s+b]??0)*(c[h*l+S]??0);f[b*p+h]=(f[b*p+h]??0)+i*A}else if(!y&&!d&&!g)for(let b=0;b<n;b++)for(let h=0;h<o;h++){let A=0;for(let S=0;S<a;S++)A+=(u[S*s+b]??0)*(c[h*l+S]??0);f[h*p+b]=(f[h*p+b]??0)+i*A}else if(!y&&d&&!g)for(let b=0;b<n;b++)for(let h=0;h<o;h++){let A=0;for(let S=0;S<a;S++)A+=(u[b*s+S]??0)*(c[h*l+S]??0);f[h*p+b]=(f[h*p+b]??0)+i*A}else if(!y&&!d&&g)for(let b=0;b<n;b++)for(let h=0;h<o;h++){let A=0;for(let S=0;S<a;S++)A+=(u[S*s+b]??0)*(c[S*l+h]??0);f[h*p+b]=(f[h*p+b]??0)+i*A}else for(let b=0;b<n;b++)for(let h=0;h<o;h++){let A=0;for(let S=0;S<a;S++)A+=(u[b*s+S]??0)*(c[S*l+h]??0);f[h*p+b]=(f[h*p+b]??0)+i*A}}function Ut(r,t){let e=r.ndim,n=t.ndim;if(e===0||n===0){let o=e===0?r.get():null,a=n===0?t.get():null;if(e===0&&n===0)return typeof o=="bigint"&&typeof a=="bigint"?o*a:Number(o)*Number(a);if(e===0){let i=C(r.dtype,t.dtype),u=N.zeros([...t.shape],i);for(let s=0;s<t.size;s++){let c=t.data[s+t.offset];typeof o=="bigint"&&typeof c=="bigint"?u.data[s]=o*c:u.data[s]=Number(o)*Number(c)}return u}else{let i=C(r.dtype,t.dtype),u=N.zeros([...r.shape],i);for(let s=0;s<r.size;s++){let c=r.data[s+r.offset];typeof c=="bigint"&&typeof a=="bigint"?u.data[s]=c*a:u.data[s]=Number(c)*Number(a)}return u}}if(e===1&&n===1){if(r.shape[0]!==t.shape[0])throw new Error(`dot: incompatible shapes (${r.shape[0]},) and (${t.shape[0]},)`);let o=r.shape[0],a=0;for(let i=0;i<o;i++){let u=r.get(i),s=t.get(i);typeof u=="bigint"&&typeof s=="bigint"?a=Number(a)+Number(u*s):a+=Number(u)*Number(s)}return a}if(e===2&&n===2)return J(r,t);if(e===2&&n===1){let[o,a]=r.shape,i=t.shape[0];if(a!==i)throw new Error(`dot: incompatible shapes (${o},${a}) and (${i},)`);let u=C(r.dtype,t.dtype),s=N.zeros([o],u);for(let c=0;c<o;c++){let l=0;for(let m=0;m<a;m++){let f=r.get(c,m),p=t.get(m);typeof f=="bigint"&&typeof p=="bigint"?l=Number(l)+Number(f*p):l+=Number(f)*Number(p)}s.set([c],l)}return s}if(e===1&&n===2){let o=r.shape[0],[a,i]=t.shape;if(o!==a)throw new Error(`dot: incompatible shapes (${o},) and (${a},${i})`);let u=C(r.dtype,t.dtype),s=N.zeros([i],u);for(let c=0;c<i;c++){let l=0;for(let m=0;m<o;m++){let f=r.get(m),p=t.get(m,c);typeof f=="bigint"&&typeof p=="bigint"?l=Number(l)+Number(f*p):l+=Number(f)*Number(p)}s.set([c],l)}return s}if(e>2&&n===1){let o=r.shape[e-1],a=t.shape[0];if(o!==a)throw new Error(`dot: incompatible shapes ${JSON.stringify(r.shape)} and (${a},)`);let i=[...r.shape.slice(0,-1)],u=C(r.dtype,t.dtype),s=N.zeros(i,u),c=i.reduce((l,m)=>l*m,1);for(let l=0;l<c;l++){let m=0,f=l,p=[];for(let y=i.length-1;y>=0;y--)p[y]=f%i[y],f=Math.floor(f/i[y]);for(let y=0;y<o;y++){let d=[...p,y],g=r.get(...d),b=t.get(y);typeof g=="bigint"&&typeof b=="bigint"?m=Number(m)+Number(g*b):m+=Number(g)*Number(b)}s.set(p,m)}return s}if(e===1&&n>2){let o=r.shape[0],a=1,i=t.shape[a];if(o!==i)throw new Error(`dot: incompatible shapes (${o},) and ${JSON.stringify(t.shape)}`);let u=[...t.shape.slice(0,a),...t.shape.slice(a+1)],s=C(r.dtype,t.dtype),c=N.zeros(u,s),l=u.reduce((m,f)=>m*f,1);for(let m=0;m<l;m++){let f=m,p=[];for(let b=u.length-1;b>=0;b--)p[b]=f%u[b],f=Math.floor(f/u[b]);let y=p.slice(0,a),d=p.slice(a),g=0;for(let b=0;b<o;b++){let h=r.get(b),A=[...y,b,...d],S=t.get(...A);typeof h=="bigint"&&typeof S=="bigint"?g=Number(g)+Number(h*S):g+=Number(h)*Number(S)}c.set(p,g)}return c}if(e>=2&&n>=2&&!(e===2&&n===2)){let o=r.shape[e-1],a=t.shape[n-2];if(o!==a)throw new Error(`dot: incompatible shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(t.shape)}`);let i=[...r.shape.slice(0,-1),...t.shape.slice(0,-2),t.shape[n-1]],u=C(r.dtype,t.dtype),s=N.zeros(i,u),c=r.shape.slice(0,-1).reduce((p,y)=>p*y,1),l=t.shape.slice(0,-2).reduce((p,y)=>p*y,1),m=t.shape[n-1],f=o;for(let p=0;p<c;p++)for(let y=0;y<l;y++)for(let d=0;d<m;d++){let g=0;for(let h=0;h<f;h++){let A=p*f+h,S=r.data[A+r.offset],D=y*f*m+h*m+d,x=t.data[D+t.offset];typeof S=="bigint"&&typeof x=="bigint"?g=Number(g)+Number(S*x):g+=Number(S)*Number(x)}let b=p*l*m+y*m+d;s.data[b]=g}return s}throw new Error(`dot: unexpected combination of dimensions ${e}D \xB7 ${n}D`)}function J(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=C(r.dtype,t.dtype),u=i.startsWith("int")||i.startsWith("uint")||i==="bool"?"float64":i;if(u!=="float64")throw new Error(`matmul currently only supports float64, got ${u}`);let s=r.dtype==="float64"?r.data:Float64Array.from(Array.from(r.data).map(Number)),c=t.dtype==="float64"?t.data:Float64Array.from(Array.from(t.data).map(Number));r.offset>0&&(s=s.subarray(r.offset)),t.offset>0&&(c=c.subarray(t.offset));let[l=0,m=0]=r.strides,[f=0,p=0]=t.strides,y=m>l,d=p>f,g=y?"transpose":"no-transpose",b=d?"transpose":"no-transpose",h,A;y?h=m:h=l,d?A=p:A=f;let S=N.zeros([e,a],"float64");return Ss("row-major",g,b,e,a,n,1,s,h,c,A,0,S.data,a),S}function zn(r){if(r.ndim!==2)throw new Error(`trace requires 2D array, got ${r.ndim}D`);let[t=0,e=0]=r.shape,n=Math.min(t,e),o=0;for(let a=0;a<n;a++){let i=r.get(a,a);typeof i=="bigint"?o=(typeof o=="bigint"?o:BigInt(o))+i:o=(typeof o=="bigint"?Number(o):o)+i}return o}function xn(r,t){return xr(r,t)}function In(r,t){let e=r.ndim,n=t.ndim,o=r.shape[e-1],a=t.shape[n-1];if(o!==a)throw new Error(`inner: incompatible shapes - last dimensions ${o} and ${a} don't match`);if(e===1&&n===1)return Ut(r,t);let i=[...r.shape.slice(0,-1),...t.shape.slice(0,-1)],u=C(r.dtype,t.dtype),s=N.zeros(i,u),c=e===1?1:r.shape.slice(0,-1).reduce((f,p)=>f*p,1),l=n===1?1:t.shape.slice(0,-1).reduce((f,p)=>f*p,1),m=o;for(let f=0;f<c;f++)for(let p=0;p<l;p++){let y=0;for(let g=0;g<m;g++){let b=e===1?g:f*m+g,h=n===1?g:p*m+g,A=r.data[b+r.offset],S=t.data[h+t.offset];typeof A=="bigint"&&typeof S=="bigint"?y=Number(y)+Number(A*S):y+=Number(A)*Number(S)}if(i.length===0)return y;let d=c===1?p:f*l+p;s.data[d]=y}return s}function $t(r,t){let e=r.ndim===1?r:mr(r),n=t.ndim===1?t:mr(t),o=e.size,a=n.size,i=C(r.dtype,t.dtype),u=N.zeros([o,a],i);for(let s=0;s<o;s++)for(let c=0;c<a;c++){let l=e.get(s),m=n.get(c),f;typeof l=="bigint"&&typeof m=="bigint"?f=l*m:f=Number(l)*Number(m),u.set([s,c],f)}return u}function _n(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,y)=>r.ndim-f+y),o=Array.from({length:f},(p,y)=>y)}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],y=o[f];if(p<0||p>=r.ndim||y<0||y>=t.ndim)throw new Error("tensordot: axis out of bounds");if(r.shape[p]!==t.shape[y])throw new Error(`tensordot: shape mismatch on axes ${p} and ${y}: ${r.shape[p]} != ${t.shape[y]}`)}let a=[],i=[];for(let f=0;f<r.ndim;f++)n.includes(f)||a.push(f);for(let f=0;f<t.ndim;f++)o.includes(f)||i.push(f);let u=[...a.map(f=>r.shape[f]),...i.map(f=>t.shape[f])];if(u.length===0){let f=0,p=n.map(y=>r.shape[y]).reduce((y,d)=>y*d,1);for(let y=0;y<p;y++){let d=y,g=new Array(n.length);for(let D=n.length-1;D>=0;D--){let x=n[D];g[D]=d%r.shape[x],d=Math.floor(d/r.shape[x])}let b=new Array(r.ndim),h=new Array(t.ndim);for(let D=0;D<n.length;D++)b[n[D]]=g[D];for(let D=0;D<o.length;D++)h[o[D]]=g[D];let A=r.get(...b),S=t.get(...h);typeof A=="bigint"&&typeof S=="bigint"?f=Number(f)+Number(A*S):f+=Number(A)*Number(S)}return f}let s=C(r.dtype,t.dtype),c=N.zeros(u,s),l=u.reduce((f,p)=>f*p,1),m=n.map(f=>r.shape[f]).reduce((f,p)=>f*p,1);for(let f=0;f<l;f++){let p=f,y=[];for(let h=u.length-1;h>=0;h--)y[h]=p%u[h],p=Math.floor(p/u[h]);let d=y.slice(0,a.length),g=y.slice(a.length),b=0;for(let h=0;h<m;h++){p=h;let A=[];for(let _=n.length-1;_>=0;_--){let B=n[_];A[_]=p%r.shape[B],p=Math.floor(p/r.shape[B])}let S=new Array(r.ndim),D=new Array(t.ndim);for(let _=0;_<a.length;_++)S[a[_]]=d[_];for(let _=0;_<i.length;_++)D[i[_]]=g[_];for(let _=0;_<n.length;_++)S[n[_]]=A[_],D[o[_]]=A[_];let x=r.get(...S),w=t.get(...D);typeof x=="bigint"&&typeof w=="bigint"?b=Number(b)+Number(x*w):b+=Number(x)*Number(w)}c.set(y,b)}return c}function Bn(r,t=0,e=0,n=1){let o=r.shape,a=o.length;if(a<2)throw new Error("diagonal requires an array of at least two dimensions");let i=e<0?a+e:e,u=n<0?a+n:n;if(i<0||i>=a||u<0||u>=a)throw new Error("axis out of bounds");if(i===u)throw new Error("axis1 and axis2 cannot be the same");let s=o[i],c=o[u],l;t>=0?l=Math.max(0,Math.min(s,c-t)):l=Math.max(0,Math.min(s+t,c));let m=[];for(let d=0;d<a;d++)d!==i&&d!==u&&m.push(o[d]);m.push(l);let f=N.zeros(m,r.dtype),p=o.filter((d,g)=>g!==i&&g!==u),y=p.reduce((d,g)=>d*g,1);for(let d=0;d<y;d++){let g=d,b=[];for(let h=p.length-1;h>=0;h--)b.unshift(g%p[h]),g=Math.floor(g/p[h]);for(let h=0;h<l;h++){let A=new Array(a),S=0;for(let w=0;w<a;w++)w===i?A[w]=t>=0?h:h-t:w===u?A[w]=t>=0?h+t:h:A[w]=b[S++];let D=[...b,h],x=r.get(...A);f.set(D,x)}}return f}function vn(r,...t){let e=r.indexOf("->"),n,o;e===-1?(n=r,o=Ns(n)):(n=r.slice(0,e),o=r.slice(e+2));let a=n.split(",").map(d=>d.trim());if(a.length!==t.length)throw new Error(`einsum: expected ${a.length} operands, got ${t.length}`);let i=new Map;for(let d=0;d<t.length;d++){let g=a[d],b=t[d];if(g.length!==b.ndim)throw new Error(`einsum: operand ${d} has ${b.ndim} dimensions but subscript '${g}' has ${g.length} indices`);for(let h=0;h<g.length;h++){let A=g[h],S=b.shape[h];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 d of o)if(!i.has(d))throw new Error(`einsum: output subscript contains unknown index '${d}'`);let u=new Set(o),s=new Set;for(let d of a)for(let g of d)s.add(g);let c=[];for(let d of s)u.has(d)||c.push(d);if(t.length===2&&a.length===2){let[d,g]=a,[b,h]=t;if(d.length===2&&g.length===2&&o.length===2&&b.ndim===2&&h.ndim===2){let[A,S]=[d[0],d[1]],[D,x]=[g[0],g[1]],[w,_]=[o[0],o[1]];if(A===w&&x===_&&S===D&&c.length===1&&c[0]===S||A===w&&x===_&&S===D&&c.length===1&&c[0]===S)return J(b,h);if(S===w&&x===_&&A===D&&c.length===1&&c[0]===A){let B=xn(b);return J(B,h)}if(A===w&&D===_&&S===x&&c.length===1&&c[0]===S){let B=xn(h);return J(b,B)}}if(d.length===1&&g.length===1&&d===g&&o.length===0&&b.ndim===1&&h.ndim===1)return Tt(t,a,c,i);if(d&&g&&d.length===1&&g.length===1&&o.length===2&&o===d+g&&c.length===0&&b.ndim===1&&h.ndim===1)return $t(b,h)}if(t.length===1&&a[0].length===2&&o.length===0){let d=a[0];if(d[0]===d[1]&&t[0].ndim===2)return Tt(t,a,c,i)}let l=Array.from(o).map(d=>i.get(d));if(l.length===0)return Tt(t,a,c,i);let m=t[0].dtype;for(let d=1;d<t.length;d++)m=C(m,t[d].dtype);let f=N.zeros(l,m),p=l.reduce((d,g)=>d*g,1),y=1;for(let d of c)y*=i.get(d);for(let d=0;d<p;d++){let g=Ds(d,l),b=new Map;for(let A=0;A<o.length;A++)b.set(o[A],g[A]);let h=0;for(let A=0;A<y;A++){let S=A;for(let x=c.length-1;x>=0;x--){let w=c[x],_=i.get(w);b.set(w,S%_),S=Math.floor(S/_)}let D=1;for(let x=0;x<t.length;x++){let w=t[x],_=a[x],B=[];for(let E of _)B.push(b.get(E));let v=w.get(...B);D*=Number(v)}h+=D}f.set(g,h)}return f}function Ns(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 Tt(r,t,e,n){let o=1;for(let i of e)o*=n.get(i);let a=0;for(let i=0;i<o;i++){let u=new Map,s=i;for(let l=e.length-1;l>=0;l--){let m=e[l],f=n.get(m);u.set(m,s%f),s=Math.floor(s/f)}let c=1;for(let l=0;l<r.length;l++){let m=r[l],f=t[l],p=[];for(let d of f)p.push(u.get(d));let y=m.get(...p);c*=Number(y)}a+=c}return a}function Ds(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 En(r,t){let e=r.shape,n=t.shape,o=e.length,a=n.length,i=C(r.dtype,t.dtype),u=Math.max(o,a),s=new Array(u),c=new Array(u).fill(1),l=new Array(u).fill(1);for(let y=0;y<o;y++)c[u-o+y]=e[y];for(let y=0;y<a;y++)l[u-a+y]=n[y];for(let y=0;y<u;y++)s[y]=c[y]*l[y];let m=N.zeros(s,i),f=e.reduce((y,d)=>y*d,1),p=n.reduce((y,d)=>y*d,1);for(let y=0;y<f;y++){let d=y,g=new Array(o);for(let A=o-1;A>=0;A--)g[A]=d%e[A],d=Math.floor(d/e[A]);let b=new Array(u).fill(0);for(let A=0;A<o;A++)b[u-o+A]=g[A];let h=r.get(...g);for(let A=0;A<p;A++){let S=A,D=new Array(a);for(let v=a-1;v>=0;v--)D[v]=S%n[v],S=Math.floor(S/n[v]);let x=new Array(u).fill(0);for(let v=0;v<a;v++)x[u-a+v]=D[v];let w=t.get(...D),_=new Array(u);for(let v=0;v<u;v++)_[v]=b[v]*l[v]+x[v];let B=typeof h=="bigint"||typeof w=="bigint"?BigInt(Number(h))*BigInt(Number(w)):Number(h)*Number(w);m.set(_,B)}}return m}function On(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,u=i(e,r.ndim),s=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)),x=Number(r.get(1)),w=Number(r.get(2)),_=Number(t.get(0)),B=Number(t.get(1)),v=Number(t.get(2)),E=N.zeros([3],"float64");return E.set([0],x*v-w*B),E.set([1],w*_-D*v),E.set([2],D*B-x*_),E}else if(A===2&&S===2){let D=Number(r.get(0)),x=Number(r.get(1)),w=Number(t.get(0)),_=Number(t.get(1));return D*_-x*w}else if(A===2&&S===3||A===3&&S===2){let D=Number(r.get(0)),x=Number(r.get(1)),w=A===3?Number(r.get(2)):0,_=Number(t.get(0)),B=Number(t.get(1)),v=S===3?Number(t.get(2)):0,E=N.zeros([3],"float64");return E.set([0],x*v-w*B),E.set([1],w*_-D*v),E.set([2],D*B-x*_),E}else throw new Error(`cross: incompatible dimensions for cross product: ${A} and ${S}`)}let c=r.shape[u],l=t.shape[s];if(c!==2&&c!==3||l!==2&&l!==3)throw new Error(`cross: incompatible dimensions for cross product: ${c} and ${l}`);let m=c===2&&l===2?0:3,f=[...r.shape.slice(0,u),...r.shape.slice(u+1)],p=[...t.shape.slice(0,s),...t.shape.slice(s+1)];if(f.length!==p.length)throw new Error("cross: incompatible shapes for cross product");for(let A=0;A<f.length;A++)if(f[A]!==p[A])throw new Error("cross: incompatible shapes for cross product");let y=f,d=o<0?y.length+1+o:o,g;if(m===0?g=y:g=[...y.slice(0,d),m,...y.slice(d)],g.length===0)throw new Error("cross: unexpected scalar result from higher-dimensional input");let b=N.zeros(g,"float64"),h=y.reduce((A,S)=>A*S,1);for(let A=0;A<h;A++){let S=A,D=[];for(let Z=y.length-1;Z>=0;Z--)D[Z]=S%y[Z],S=Math.floor(S/y[Z]);let x=[...D.slice(0,u),0,...D.slice(u)],w=[...D.slice(0,s),0,...D.slice(s)],_=Z=>(x[u]=Z,Number(r.get(...x))),B=Z=>(w[s]=Z,Number(t.get(...w))),v=_(0),E=_(1),$=c===3?_(2):0,M=B(0),P=B(1),H=l===3?B(2):0;if(m===0)b.set(D,v*P-E*M);else{let Z=E*H-$*P,hr=$*M-v*H,La=v*P-E*M,it=(Wa,Za)=>{let Ga=[...D.slice(0,d),Wa,...D.slice(d)];b.set(Ga,Za)};it(0,Z),it(1,hr),it(2,La)}}return b}function pr(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:mr(r),l=c.size,m;if(t===1/0){m=0;for(let f=0;f<l;f++)m=Math.max(m,Math.abs(Number(c.get(f))))}else if(t===-1/0){m=1/0;for(let f=0;f<l;f++)m=Math.min(m,Math.abs(Number(c.get(f))))}else if(t===0){m=0;for(let f=0;f<l;f++)Number(c.get(f))!==0&&m++}else if(t===1){m=0;for(let f=0;f<l;f++)m+=Math.abs(Number(c.get(f)))}else if(t===2){m=0;for(let f=0;f<l;f++){let p=Number(c.get(f));m+=p*p}m=Math.sqrt(m)}else{m=0;for(let f=0;f<l;f++)m+=Math.pow(Math.abs(Number(c.get(f))),t);m=Math.pow(m,1/t)}if(n){let f=new Array(r.ndim).fill(1),p=N.zeros(f,"float64");return p.set(new Array(r.ndim).fill(0),m),p}return m}let o=e<0?r.ndim+e:e;if(o<0||o>=r.ndim)throw new Error(`vector_norm: axis ${e} out of bounds for array with ${r.ndim} dimensions`);let a=n?[...r.shape.slice(0,o),1,...r.shape.slice(o+1)]:[...r.shape.slice(0,o),...r.shape.slice(o+1)];if(a.length===0)return pr(r,t,null,!1);let i=N.zeros(a,"float64"),u=r.shape[o],s=a.reduce((c,l)=>c*l,1);for(let c=0;c<s;c++){let l=c,m=[];for(let y=a.length-1;y>=0;y--)m[y]=l%a[y],l=Math.floor(l/a[y]);let f=n?[...m.slice(0,o),0,...m.slice(o+1)]:[...m.slice(0,o),0,...m.slice(o)],p;if(t===1/0){p=0;for(let y=0;y<u;y++)f[o]=y,p=Math.max(p,Math.abs(Number(r.get(...f))))}else if(t===-1/0){p=1/0;for(let y=0;y<u;y++)f[o]=y,p=Math.min(p,Math.abs(Number(r.get(...f))))}else if(t===0){p=0;for(let y=0;y<u;y++)f[o]=y,Number(r.get(...f))!==0&&p++}else if(t===1){p=0;for(let y=0;y<u;y++)f[o]=y,p+=Math.abs(Number(r.get(...f)))}else if(t===2){p=0;for(let y=0;y<u;y++){f[o]=y;let d=Number(r.get(...f));p+=d*d}p=Math.sqrt(p)}else{p=0;for(let y=0;y<u;y++)f[o]=y,p+=Math.pow(Math.abs(Number(r.get(...f))),t);p=Math.pow(p,1/t)}i.set(m,p)}return i}function ur(r,t="fro",e=!1){if(r.ndim!==2)throw new Error(`matrix_norm: input must be 2D, got ${r.ndim}D`);let[n,o]=r.shape,a;if(t==="fro"){a=0;for(let i=0;i<n;i++)for(let u=0;u<o;u++){let s=Number(r.get(i,u));a+=s*s}a=Math.sqrt(a)}else if(t==="nuc"){let{s:i}=or(r);a=0;for(let u=0;u<i.size;u++)a+=Number(i.get(u))}else if(t===1){a=0;for(let i=0;i<o;i++){let u=0;for(let s=0;s<n;s++)u+=Math.abs(Number(r.get(s,i)));a=Math.max(a,u)}}else if(t===-1){a=1/0;for(let i=0;i<o;i++){let u=0;for(let s=0;s<n;s++)u+=Math.abs(Number(r.get(s,i)));a=Math.min(a,u)}}else if(t===1/0){a=0;for(let i=0;i<n;i++){let u=0;for(let s=0;s<o;s++)u+=Math.abs(Number(r.get(i,s)));a=Math.max(a,u)}}else if(t===-1/0){a=1/0;for(let i=0;i<n;i++){let u=0;for(let s=0;s<o;s++)u+=Math.abs(Number(r.get(i,s)));a=Math.min(a,u)}}else if(t===2){let{s:i}=or(r);a=Number(i.get(0))}else if(t===-2){let{s:i}=or(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 Tn(r,t=null,e=null,n=!1){if(t===null)return e===null?pr(r,2,null,n):typeof e=="number"?pr(r,2,e,n):ur(r,"fro",n);if(Array.isArray(e)){if(e.length!==2)throw new Error("norm: axis must be a 2-tuple for matrix norms");let o=e[0]<0?r.ndim+e[0]:e[0],a=e[1]<0?r.ndim+e[1]:e[1];if(r.ndim!==2||o!==0&&o!==1||a!==0&&a!==1||o===a)throw new Error("norm: complex axis specification not yet supported");return ur(r,t,n)}if(r.ndim===2&&e===null&&(t==="fro"||t==="nuc"))return ur(r,t,n);if(typeof t!="number"&&t!==null)throw new Error(`norm: ord '${t}' not valid for vector norm`);return pr(r,t??2,e,n)}function Mt(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 p=0;p<e;p++)for(let y=0;y<n;y++)a.set([p,y],Number(r.get(p,y)));let i=[],u=[];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 g=0;for(let D=0;D<y;D++)g+=d[D]*d[D];if(g=Math.sqrt(g),g<1e-15){i.push(d),u.push(0);continue}let b=d[0]>=0?1:-1,h=d[0]+b*g,A=[1];for(let D=1;D<y;D++)A.push(d[D]/h);let S=b*h/g;u.push(S),i.push(A);for(let D=p;D<n;D++){let x=0;for(let w=0;w<y;w++)x+=A[w]*Number(a.get(p+w,D));for(let w=0;w<y;w++)a.set([p+w,D],Number(a.get(p+w,D))-S*A[w]*x)}}if(t==="raw"){let p=N.zeros([e,n],"float64");for(let d=0;d<e;d++)for(let g=0;g<n;g++)p.set([d,g],Number(a.get(d,g)));let y=N.zeros([o],"float64");for(let d=0;d<o;d++)y.set([d],u[d]);return{h:p,tau:y}}if(t==="r"){let p=N.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=N.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=i[p],d=u[p],g=e-p;for(let b=p;b<s;b++){let h=0;for(let A=0;A<g;A++)h+=y[A]*Number(c.get(p+A,b));for(let A=0;A<g;A++)c.set([p+A,b],Number(c.get(p+A,b))-d*y[A]*h)}}let l=N.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 m=t==="complete"?e:o,f=N.zeros([m,n],"float64");for(let p=0;p<m;p++)for(let y=0;y<n;y++)y>=p&&f.set([p,y],Number(a.get(p,y)));return{q:l,r:f}}function Un(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 u=0;u<=i;u++){let s=0;if(i===u){for(let l=0;l<u;l++)s+=Number(a.get(u,l))**2;let c=Number(r.get(u,u))-s;if(c<0)throw new Error("cholesky: matrix is not positive definite");a.set([u,u],Math.sqrt(c))}else{for(let l=0;l<u;l++)s+=Number(a.get(i,l))*Number(a.get(u,l));let c=Number(a.get(u,u));if(Math.abs(c)<1e-15)throw new Error("cholesky: matrix is not positive definite");a.set([i,u],(Number(r.get(i,u))-s)/c)}}if(t){let i=N.zeros([o,o],"float64");for(let u=0;u<o;u++)for(let s=u;s<o;s++)i.set([u,s],Number(a.get(s,u)));return i}return a}function or(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 f=0;f<e;f++){let p=0;for(let y=0;y<t;y++)p+=Number(r.get(y,m))*Number(r.get(y,f));o.set([m,f],p)}let{values:a,vectors:i}=kt(o),u=Array.from({length:e},(m,f)=>f);u.sort((m,f)=>a[f]-a[m]);let s=N.zeros([n],"float64");for(let m=0;m<n;m++){let f=a[u[m]];s.set([m],Math.sqrt(Math.max(0,f)))}let c=N.zeros([e,e],"float64");for(let m=0;m<e;m++)for(let f=0;f<e;f++)c.set([m,f],i[f][u[m]]);let l=N.zeros([t,t],"float64");for(let m=0;m<t;m++)for(let f=0;f<n;f++){let p=Number(s.get(f));if(p>1e-10){let y=0;for(let d=0;d<e;d++)y+=Number(r.get(m,d))*Number(c.get(f,d));l.set([m,f],y/p)}}if(t>n)for(let m=n;m<t;m++){let f=new Array(t).fill(0);f[m]=1;for(let y=0;y<m;y++){let d=0;for(let g=0;g<t;g++)d+=f[g]*Number(l.get(g,y));for(let g=0;g<t;g++)f[g]=f[g]-d*Number(l.get(g,y))}let p=0;for(let y=0;y<t;y++)p+=f[y]*f[y];if(p=Math.sqrt(p),p>1e-10)for(let y=0;y<t;y++)l.set([y,m],f[y]/p)}return{u:l,s,vt:c}}function kt(r){let t=r.shape[0],e=100*t*t,n=1e-10,o=[];for(let u=0;u<t;u++){o.push([]);for(let s=0;s<t;s++)o[u].push(Number(r.get(u,s)))}let a=[];for(let u=0;u<t;u++){a.push([]);for(let s=0;s<t;s++)a[u].push(u===s?1:0)}for(let u=0;u<e;u++){let s=0,c=0,l=1;for(let A=0;A<t;A++)for(let S=A+1;S<t;S++)Math.abs(o[A][S])>s&&(s=Math.abs(o[A][S]),c=A,l=S);if(s<n)break;let m=o[c][c],f=o[l][l],p=o[c][l],y;Math.abs(m-f)<1e-15?y=Math.PI/4:y=.5*Math.atan2(2*p,f-m);let d=Math.cos(y),g=Math.sin(y),b=d*d*m+g*g*f-2*g*d*p,h=g*g*m+d*d*f+2*g*d*p;o[c][c]=b,o[l][l]=h,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]=d*S-g*D,o[c][A]=o[A][c],o[A][l]=g*S+d*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]=d*S-g*D,a[A][l]=g*S+d*D}}let i=[];for(let u=0;u<t;u++)i.push(o[u][u]);return{values:i,vectors:a}}function $n(r,t=!0,e=!0){let n=or(r);if(!e)return n.s;if(!t){let[o,a]=r.shape,i=Math.min(o,a),u=N.zeros([o,i],"float64");for(let c=0;c<o;c++)for(let l=0;l<i;l++)u.set([c,l],Number(n.u.get(c,l)));let s=N.zeros([i,a],"float64");for(let c=0;c<i;c++)for(let l=0;l<a;l++)s.set([c,l],Number(n.vt.get(c,l)));return{u,s:n.s,vt:s}}return n}function Mn(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}=Ct(r),u=a.data,s=i;for(let c=0;c<n;c++)s*=u[c*n+c];return s}function Ct(r){let[t,e]=r.shape,n=t,o=e,a=N.zeros([n,o],"float64"),i=a.data,u=r.data;for(let l=0;l<n*o;l++)i[l]=Number(u[l]);let s=Array.from({length:n},(l,m)=>m),c=1;for(let l=0;l<Math.min(n,o);l++){let m=Math.abs(i[l*o+l]),f=l;for(let y=l+1;y<n;y++){let d=Math.abs(i[y*o+l]);d>m&&(m=d,f=y)}if(f!==l){for(let d=0;d<o;d++){let g=i[l*o+d];i[l*o+d]=i[f*o+d],i[f*o+d]=g}let y=s[l];s[l]=s[f],s[f]=y,c=-c}let p=i[l*o+l];if(Math.abs(p)>1e-15)for(let y=l+1;y<n;y++){let d=i[y*o+l]/p;i[y*o+l]=d;for(let g=l+1;g<o;g++)i[y*o+g]=i[y*o+g]-d*i[l*o+g]}}return{lu:a,piv:s,sign:c}}function Jr(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}=Ct(r),i=o.data,u=N.zeros([n,n],"float64"),s=u.data;for(let c=0;c<n;c++){let l=new Float64Array(n);for(let m=0;m<n;m++){let f=a[m]===c?1:0;for(let p=0;p<m;p++)f-=i[m*n+p]*l[p];l[m]=f}for(let m=n-1;m>=0;m--){let f=l[m];for(let y=m+1;y<n;y++)f-=i[m*n+y]*s[y*n+c];let p=i[m*n+m];if(Math.abs(p)<1e-15)throw new Error("inv: singular matrix");s[m*n+c]=f/p}}return u}function wn(r,t){let[e]=r.shape,n=e,{lu:o,piv:a}=Ct(r),i=o.data,u=t.data,s=new Float64Array(n);for(let f=0;f<n;f++)s[f]=Number(u[a[f]]);let c=new Float64Array(n);for(let f=0;f<n;f++){let p=s[f];for(let y=0;y<f;y++)p-=i[f*n+y]*c[y];c[f]=p}let l=N.zeros([n],"float64"),m=l.data;for(let f=n-1;f>=0;f--){let p=c[f];for(let d=f+1;d<n;d++)p-=i[f*n+d]*m[d];let y=i[f*n+f];if(Math.abs(y)<1e-15)throw new Error("solve: singular matrix");m[f]=p/y}return l}function kn(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 wn(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 u=0;u<a;u++){let s=N.zeros([o],"float64");for(let l=0;l<o;l++)s.set([l],Number(t.get(l,u)));let c=wn(r,s);for(let l=0;l<o;l++)i.set([l,u],Number(c.get(l)))}return i}throw new Error(`solve: b must be 1D or 2D, got ${t.ndim}D`)}function Cn(r,t,e=null){if(r.ndim!==2)throw new Error(`lstsq: coefficient matrix must be 2D, got ${r.ndim}D`);let[n,o]=r.shape,{u:a,s:i,vt:u}=or(r),s=Math.min(n,o),c=e??Math.max(n,o)*Number.EPSILON,m=Number(i.get(0))*c,f=0;for(let h=0;h<s;h++)Number(i.get(h))>m&&f++;let p=t.ndim===1?W(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=N.zeros([o,y],"float64");for(let h=0;h<y;h++){let A=new Array(n).fill(0);for(let S=0;S<n;S++)for(let D=0;D<n;D++)A[S]+=Number(a.get(D,S))*Number(p.get(D,h));for(let S=0;S<o;S++){let D=0;for(let x=0;x<s;x++){let w=Number(i.get(x));w>m&&(D+=Number(u.get(x,S))*A[x]/w)}d.set([S,h],D)}}let g;if(n>o){g=N.zeros([y],"float64");for(let h=0;h<y;h++){let A=0;for(let S=0;S<n;S++){let D=0;for(let w=0;w<o;w++)D+=Number(r.get(S,w))*Number(d.get(w,h));let x=D-Number(p.get(S,h));A+=x*x}g.set([h],A)}}else g=N.zeros([0],"float64");return{x:t.ndim===1?W(d,[o]):d,residuals:g,rank:f,s:i}}function Vn(r,t=2){if(r.ndim!==2)throw new Error(`cond: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(t===2||t===-2){let{s:u}=or(r),s=Math.min(e,n),c=Number(u.get(0)),l=Number(u.get(s-1));return t===2?l>0?c/l:1/0:c>0?l/c:0}if(e!==n)throw new Error(`cond: matrix must be square for p=${t}`);let o=ur(r,t),a=Jr(r),i=ur(a,t);return o*i}function Pn(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}=or(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 qn(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=Jr(r),i=-t);let u=N.zeros([o,o],"float64");for(let c=0;c<o;c++)u.set([c,c],1);let s=N.zeros([o,o],"float64");for(let c=0;c<o;c++)for(let l=0;l<o;l++)s.set([c,l],Number(a.get(c,l)));for(;i>0;)i&1&&(u=J(u,s)),s=J(s,s),i>>=1;return u}function Fn(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}=or(r),u=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 f=0;f<e;f++){let p=0;for(let y=0;y<u;y++){let d=Number(a.get(y));d>c&&(p+=Number(i.get(y,m))*Number(o.get(f,y))/d)}l.set([m,f],p)}return l}function Vt(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}=kt(r),m=N.zeros([n],"float64"),f=N.zeros([n,n],"float64");for(let p=0;p<n;p++){m.set([p],c[p]);for(let y=0;y<n;y++)f.set([y,p],l[y][p])}return{w:m,v:f}}console.warn("numpy-ts: eig() called on non-symmetric matrix. Complex eigenvalues are not supported; results may be inaccurate. For symmetric matrices, use eigh() instead.");let{values:a,vectors:i}=xs(r),u=N.zeros([n],"float64"),s=N.zeros([n,n],"float64");for(let c=0;c<n;c++){u.set([c],a[c]);for(let l=0;l<n;l++)s.set([l,c],i[l][c])}return{w:u,v:s}}function xs(r){let t=r.shape[0],e=1e3,n=1e-10,o=N.zeros([t,t],"float64");for(let s=0;s<t;s++)for(let c=0;c<t;c++)o.set([s,c],Number(r.get(s,c)));let a=N.zeros([t,t],"float64");for(let s=0;s<t;s++)a.set([s,s],1);for(let s=0;s<e;s++){let c=0;for(let p=0;p<t;p++)for(let y=0;y<t;y++)p!==y&&(c+=Number(o.get(p,y))**2);if(Math.sqrt(c)<n*t)break;let l=Mt(o,"reduced"),m=l.q,f=l.r;o=J(f,m),a=J(a,m)}let i=[];for(let s=0;s<t;s++)i.push(Number(o.get(s,s)));let u=[];for(let s=0;s<t;s++){u.push([]);for(let c=0;c<t;c++)u[s].push(Number(a.get(s,c)))}return{values:i,vectors:u}}function Pt(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 f=0;f<o;f++)t==="L"?m>=f&&(a.set([m,f],Number(r.get(m,f))),a.set([f,m],Number(r.get(m,f)))):f>=m&&(a.set([m,f],Number(r.get(m,f))),a.set([f,m],Number(r.get(m,f))));let{values:i,vectors:u}=kt(a),s=Array.from({length:o},(m,f)=>f);s.sort((m,f)=>i[m]-i[f]);let c=N.zeros([o],"float64"),l=N.zeros([o,o],"float64");for(let m=0;m<o;m++){c.set([m],i[s[m]]);for(let f=0;f<o;f++)l.set([f,m],u[f][s[m]])}return{w:c,v:l}}function Rn(r){let{w:t}=Vt(r);return t}function jn(r,t="L"){let{w:e}=Pt(r,t);return e}var Ln=k(()=>{"use strict";R();j();Ot()});function Wn(r){return V(r,Math.sqrt,!1)}function Zn(r,t){return typeof t=="number"?zs(r,t):L(r,t,Math.pow,"power")}function zs(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,s=e!=="float32"&&e!=="float64"&&(t<0||!Number.isInteger(t))?"float64":e,c=N.zeros(n,s),l=c.data;if(z(e))if(z(s)&&Number.isInteger(t)&&t>=0){let m=o,f=l;for(let p=0;p<a;p++)f[p]=m[p]**BigInt(t)}else for(let m=0;m<a;m++)l[m]=Math.pow(Number(o[m]),t);else for(let m=0;m<a;m++)l[m]=Math.pow(Number(o[m]),t);return c}function Gn(r){return V(r,Math.exp,!1)}function Hn(r){return V(r,t=>Math.pow(2,t),!1)}function Yn(r){return V(r,Math.expm1,!1)}function Jn(r){return V(r,Math.log,!1)}function Qn(r){return V(r,Math.log2,!1)}function Xn(r){return V(r,Math.log10,!1)}function Kn(r){return V(r,Math.log1p,!1)}function ro(r,t){return typeof t=="number"?_s(r,t):Is(r,t)}function Is(r,t){let e=br(r.shape,t.shape),n=e.reduce((c,l)=>c*l,1),o=r.dtype,a=t.dtype,i=o==="float32"&&a==="float32"?"float32":"float64",u=N.zeros(e,i),s=u.data;for(let c=0;c<n;c++){let l=(z(o),Number(r.iget(c))),m=(z(a),Number(t.iget(c))),f=Math.max(l,m),p=Math.min(l,m);s[c]=f+Math.log1p(Math.exp(p-f))}return u}function _s(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",i=N.zeros(n,a),u=i.data;for(let s=0;s<o;s++){let c=(z(e),Number(r.data[s])),l=Math.max(c,t),m=Math.min(c,t);u[s]=l+Math.log1p(Math.exp(m-l))}return i}function to(r,t){return typeof t=="number"?vs(r,t):Bs(r,t)}function Bs(r,t){let e=br(r.shape,t.shape),n=e.reduce((l,m)=>l*m,1),o=r.dtype,a=t.dtype,i=o==="float32"&&a==="float32"?"float32":"float64",u=N.zeros(e,i),s=u.data,c=Math.LOG2E;for(let l=0;l<n;l++){let m=(z(o),Number(r.iget(l))),f=(z(a),Number(t.iget(l))),p=Math.max(m,f),y=Math.min(m,f);s[l]=p+Math.log1p(Math.pow(2,y-p))*c}return u}function vs(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",i=N.zeros(n,a),u=i.data,s=Math.LOG2E;for(let c=0;c<o;c++){let l=(z(e),Number(r.data[c])),m=Math.max(l,t),f=Math.min(l,t);u[c]=m+Math.log1p(Math.pow(2,f-m))*s}return i}var eo=k(()=>{"use strict";R();sr();j()});function no(r){return V(r,Math.sin,!1)}function oo(r){return V(r,Math.cos,!1)}function ao(r){return V(r,Math.tan,!1)}function so(r){return V(r,Math.asin,!1)}function io(r){return V(r,Math.acos,!1)}function uo(r){return V(r,Math.atan,!1)}function co(r,t){return typeof t=="number"?Ts(r,t):Os(r,t)}function Os(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,i=o==="float32"&&a==="float32"?"float32":"float64",u=N.zeros(e,i),s=u.data;for(let c=0;c<n;c++){let l=(z(o),Number(r.data[c])),m=(z(a),Number(t.data[c]));s[c]=Math.atan2(l,m)}return u}function Ts(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=e==="float32"?"float32":"float64",u=N.zeros(n,i),s=u.data;if(z(e))for(let c=0;c<a;c++)s[c]=Math.atan2(Number(o[c]),t);else for(let c=0;c<a;c++)s[c]=Math.atan2(Number(o[c]),t);return u}function lo(r,t){return typeof t=="number"?$s(r,t):Us(r,t)}function Us(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,i=o==="float32"&&a==="float32"?"float32":"float64",u=N.zeros(e,i),s=u.data;for(let c=0;c<n;c++){let l=(z(o),Number(r.data[c])),m=(z(a),Number(t.data[c]));s[c]=Math.hypot(l,m)}return u}function $s(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=e==="float32"?"float32":"float64",u=N.zeros(n,i),s=u.data;if(z(e))for(let c=0;c<a;c++)s[c]=Math.hypot(Number(o[c]),t);else for(let c=0;c<a;c++)s[c]=Math.hypot(Number(o[c]),t);return u}function fo(r){let t=180/Math.PI;return V(r,e=>e*t,!1)}function mo(r){let t=Math.PI/180;return V(r,e=>e*t,!1)}var po=k(()=>{"use strict";R();sr();j()});function yo(r){return V(r,Math.sinh,!1)}function go(r){return V(r,Math.cosh,!1)}function Ao(r){return V(r,Math.tanh,!1)}function ho(r){return V(r,Math.asinh,!1)}function bo(r){return V(r,Math.acosh,!1)}function So(r){return V(r,Math.atanh,!1)}var No=k(()=>{"use strict";sr()});function qt(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=nr([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 X(r,t)}function Do(r){if(r.length===0)return[];if(r.length===1)return[r[0]];let t=r.map(n=>Array.from(n.shape)),e=nr(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=>X(n,e))}function xo(r,t,e){let n=r.shape,o=n.length,a=r.dtype;if(e===void 0){let y=r.size;for(let h of t){let A=h<0?y+h:h;if(A<0||A>=y)throw new Error(`index ${h} is out of bounds for axis 0 with size ${y}`)}let d=t.length,g=U(a);if(!g)throw new Error(`Cannot take from array with dtype ${a}`);let b=new g(d);for(let h=0;h<d;h++){let A=t[h];A<0&&(A=y+A);let S=r.iget(A);z(a),b[h]=S}return N.fromData(b,[d],a)}let i=e<0?o+e:e;if(i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=n[i];for(let y of t){let d=y<0?u+y:y;if(d<0||d>=u)throw new Error(`index ${y} is out of bounds for axis ${i} with size ${u}`)}let s=Array.from(n);s[i]=t.length;let c=s.reduce((y,d)=>y*d,1),l=U(a);if(!l)throw new Error(`Cannot take from array with dtype ${a}`);let m=new l(c),f=G(s),p=new Array(o).fill(0);for(let y=0;y<c;y++){let d=[...p],g=p[i],b=t[g];b<0&&(b=u+b),d[i]=b;let h=r.get(...d),A=0;for(let S=0;S<o;S++)A+=p[S]*f[S];z(a),m[A]=h;for(let S=o-1;S>=0&&(p[S]++,!(p[S]<s[S]));S--)p[S]=0}return N.fromData(m,s,a)}function wo(r,t,e){let n=r.size,o=r.dtype,a;if(typeof e=="number"||typeof e=="bigint")a=new Array(t.length).fill(e);else{a=[];for(let i=0;i<e.size;i++)a.push(e.iget(i));if(a.length===1)a=new Array(t.length).fill(a[0]);else if(a.length!==t.length){let i=[...a];a=[];for(let u=0;u<t.length;u++)a.push(i[u%i.length])}}for(let i=0;i<t.length;i++){let u=t[i];if(u<0&&(u=n+u),u<0||u>=n)throw new Error(`index ${t[i]} is out of bounds for axis 0 with size ${n}`);let s=a[i];z(o)?typeof s!="bigint"&&(s=BigInt(Math.round(Number(s)))):typeof s=="bigint"&&(s=Number(s)),r.iset(u,s)}}function zo(r,t){if(t.length===0)throw new Error("choices cannot be empty");let e=r.shape,n=t.length,o=t[0].dtype,a=t.map(f=>Array.from(f.shape));a.unshift(Array.from(e));let i=nr(a);if(i===null)throw new Error("operands could not be broadcast together");let u=X(r,i),s=t.map(f=>X(f,i)),c=i.reduce((f,p)=>f*p,1),l=U(o);if(!l)throw new Error(`Cannot choose with dtype ${o}`);let m=new l(c);for(let f=0;f<c;f++){let p=Number(u.iget(f));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(f);z(o),m[f]=y}return N.fromData(m,i,o)}function Io(r,t,e=!1){if(r.ndim!==t.ndim)return!1;for(let o=0;o<r.ndim;o++)if(r.shape[o]!==t.shape[o])return!1;let n=r.size;for(let o=0;o<n;o++){let a=r.iget(o),i=t.iget(o);if(e){let u=typeof a=="number"&&Number.isNaN(a),s=typeof i=="number"&&Number.isNaN(i);if(u&&s)continue}if(a!==i)return!1}return!0}function _o(r,t,e){let n=r.shape,o=n.length,a=r.dtype,i=e<0?o+e:e;if(i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=t.shape;if(u.length!==o)throw new Error(`indices and arr must have the same number of dimensions, got ${u.length} vs ${o}`);for(let d=0;d<o;d++)if(d!==i&&u[d]!==n[d]&&u[d]!==1&&n[d]!==1)throw new Error(`index ${u[d]} is out of bounds for size ${n[d]} in dimension ${d}`);let s=Array.from(u),c=s.reduce((d,g)=>d*g,1),l=U(a);if(!l)throw new Error(`Cannot take_along_axis with dtype ${a}`);let m=new l(c),f=G(n),p=G(u),y=n[i];for(let d=0;d<c;d++){let g=new Array(o),b=d;for(let w=o-1;w>=0;w--)g[w]=b%s[w],b=Math.floor(b/s[w]);let h=0;for(let w=0;w<o;w++){let _=u[w]===1?0:g[w];h+=_*p[w]}let A=Number(t.iget(h));if(A<0&&(A=y+A),A<0||A>=y)throw new Error(`index ${A} is out of bounds for axis ${i} with size ${y}`);let S=[...g];S[i]=A;let D=0;for(let w=0;w<o;w++){let _=n[w]===1?0:S[w];D+=_*f[w]}let x=r.iget(D);z(a),m[d]=x}return N.fromData(m,s,a)}function Bo(r,t,e,n){let o=r.shape,a=o.length,i=r.dtype,u=n<0?a+n:n;if(u<0||u>=a)throw new Error(`axis ${n} is out of bounds for array of dimension ${a}`);let s=t.shape,c=e.shape;if(s.length!==a||c.length!==a)throw new Error("indices, arr, and values must have same ndim");let l=o[u],m=G(o),f=G(s),p=G(c),y=s.reduce((d,g)=>d*g,1);for(let d=0;d<y;d++){let g=new Array(a),b=d;for(let _=a-1;_>=0;_--)g[_]=b%s[_],b=Math.floor(b/s[_]);let h=0;for(let _=0;_<a;_++)h+=g[_]*f[_];let A=Number(t.iget(h));if(A<0&&(A=l+A),A<0||A>=l)throw new Error(`index ${A} is out of bounds for axis ${u} with size ${l}`);let S=0;for(let _=0;_<a;_++){let B=c[_]===1?0:g[_];S+=B*p[_]}let D=e.iget(S),x=[...g];x[u]=A;let w=0;for(let _=0;_<a;_++)w+=x[_]*m[_];z(i)?typeof D!="bigint"&&(D=BigInt(Math.round(Number(D)))):typeof D=="bigint"&&(D=Number(D)),r.iset(w,D)}}function vo(r,t,e){let n=r.size,o=r.dtype,a;if(typeof e=="number"||typeof e=="bigint")a=[e];else{a=[];for(let u=0;u<e.size;u++)a.push(e.iget(u))}let i=0;for(let u=0;u<n;u++)if(t.iget(u)){let c=a[i%a.length];z(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),r.iset(u,c),i++}}function Eo(r,t,e){let n=t.shape,o=n.length,a=t.dtype,i=t.data,u=z(a);if(e===void 0){let h=0,A=Math.min(r.size,t.size);for(let w=0;w<A;w++)r.iget(w)&&h++;let S=U(a);if(!S)throw new Error(`Cannot compress with dtype ${a}`);let D=new S(h),x=0;for(let w=0;w<A;w++)r.iget(w)&&(D[x]=i[w],x++);return N.fromData(D,[h],a)}let s=e<0?o+e:e;if(s<0||s>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let c=n[s],l=Math.min(r.size,c),m=[];for(let h=0;h<l;h++)r.iget(h)&&m.push(h);let f=m.length,p=[...n];p[s]=f;let y=p.reduce((h,A)=>h*A,1),d=U(a);if(!d)throw new Error(`Cannot compress with dtype ${a}`);let g=new d(y),b=G(n);if(s===0){let h=b[0],A=n.slice(1).reduce((D,x)=>D*x,1),S=0;for(let D=0;D<f;D++){let w=m[D]*h;if(u){let _=i,B=g;for(let v=0;v<A;v++)B[S++]=_[w+v]}else{let _=i,B=g;for(let v=0;v<A;v++)B[S++]=_[w+v]}}}else{let h=n.slice(0,s).reduce((D,x)=>D*x,1),A=n.slice(s+1).reduce((D,x)=>D*x,1),S=0;for(let D=0;D<h;D++)for(let x=0;x<f;x++){let w=m[x],_=0,B=D;for(let v=s-1;v>=0;v--){let E=B%n[v];B=Math.floor(B/n[v]),_+=E*b[v]}if(_+=w*b[s],u){let v=i,E=g;for(let $=0;$<A;$++)E[S++]=v[_+$]}else{let v=i,E=g;for(let $=0;$<A;$++)E[S++]=v[_+$]}}}return N.fromData(g,p,a)}function Oo(r,t,e=0){if(r.length!==t.length)throw new Error("condlist and choicelist must have same length");if(r.length===0)throw new Error("condlist and choicelist cannot be empty");let n=[...r.map(f=>Array.from(f.shape)),...t.map(f=>Array.from(f.shape))],o=nr(n);if(o===null)throw new Error("condlist and choicelist arrays could not be broadcast together");let a=t[0].dtype,i=o.reduce((f,p)=>f*p,1),u=U(a);if(!u)throw new Error(`Cannot select with dtype ${a}`);let s=e;z(a)?s=typeof e=="bigint"?e:BigInt(e):s=typeof e=="bigint"?Number(e):e;let c=new u(i);for(let f=0;f<i;f++)z(a),c[f]=s;let l=r.map(f=>X(f,o)),m=t.map(f=>X(f,o));for(let f=0;f<i;f++)for(let p=0;p<r.length;p++)if(l[p].iget(f)){let y=m[p].iget(f);z(a),c[f]=y;break}return N.fromData(c,o,a)}function To(r,t,e){let n=r.size,o=r.dtype,a=[];for(let u=0;u<e.size;u++)a.push(e.iget(u));if(a.length===0)return;let i=0;for(let u=0;u<n;u++)if(t.iget(u)){let c=a[i%a.length];z(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),r.iset(u,c),i++}}function Ft(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 Uo(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 Ft(n,e)}function Rt(r,t=0,e){let n=e??r,o=[],a=[];for(let i=0;i<r;i++)for(let u=0;u<=Math.min(i+t,n-1);u++)u>=0&&(o.push(i),a.push(u));return[N.fromData(new Int32Array(o),[o.length],"int32"),N.fromData(new Int32Array(a),[a.length],"int32")]}function $o(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return Rt(e[0],t,e[1])}function jt(r,t=0,e){let n=e??r,o=[],a=[];for(let i=0;i<r;i++)for(let u=Math.max(i+t,0);u<n;u++)o.push(i),a.push(u);return[N.fromData(new Int32Array(o),[o.length],"int32"),N.fromData(new Int32Array(a),[a.length],"int32")]}function Mo(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return jt(e[0],t,e[1])}function ko(r,t,e=0){let n=t(r,e),o=n.shape;if(o.length!==2||o[0]!==r||o[1]!==r)throw new Error("mask_func must return n x n array");let a=[],i=[];for(let u=0;u<r;u++)for(let s=0;s<r;s++)n.get(u,s)&&(a.push(u),i.push(s));return[N.fromData(new Int32Array(a),[a.length],"int32"),N.fromData(new Int32Array(i),[i.length],"int32")]}function Co(r,t="int32"){let e=r.length,n=[e,...r],o=n.reduce((s,c)=>s*c,1),a=U(t);if(!a)throw new Error(`Cannot create indices with dtype ${t}`);let i=new a(o),u=r.reduce((s,c)=>s*c,1);for(let s=0;s<e;s++){let c=s*u;for(let l=0;l<u;l++){let m=new Array(e),f=l;for(let y=e-1;y>=0;y--)m[y]=f%r[y],f=Math.floor(f/r[y]);let p=m[s];t==="int64"?i[c+l]=BigInt(p):i[c+l]=p}}return N.fromData(i,n,t)}function Vo(...r){let t=r.length,e=[];for(let n=0;n<t;n++){let o=r[n],a=o.size,i=o.dtype,u=new Array(t).fill(1);u[n]=a;let s=U(i);if(!s)throw new Error(`Cannot create ix_ with dtype ${i}`);let c=new s(a);for(let l=0;l<a;l++){let m=o.iget(l);z(i),c[l]=m}e.push(N.fromData(c,u,i))}return e}function Po(r,t,e="raise"){if(r.length!==t.length)throw new Error("multi_index length must equal dims length");if(r.length===0)throw new Error("multi_index cannot be empty");let n=r[0].size,o=t.length,a=new Int32Array(n),i=new Array(o),u=1;for(let s=o-1;s>=0;s--)i[s]=u,u*=t[s];for(let s=0;s<n;s++){let c=0;for(let l=0;l<o;l++){let m=Number(r[l].iget(s)),f=t[l];if(e==="wrap")m=(m%f+f)%f;else if(e==="clip")m=Math.max(0,Math.min(m,f-1));else if(m<0||m>=f)throw new Error(`index ${m} is out of bounds for axis ${l} with size ${f}`);c+=m*i[l]}a[s]=c}return N.fromData(a,[n],"int32")}function qo(r,t,e="C"){let n=t.length,o,a;if(typeof r=="number")o=[r],a=[];else{o=[];for(let l=0;l<r.size;l++)o.push(Number(r.iget(l)));a=Array.from(r.shape)}let i=o.length,u=t.reduce((l,m)=>l*m,1),s=new Array(n);if(e==="C"){let l=1;for(let m=n-1;m>=0;m--)s[m]=l,l*=t[m]}else{let l=1;for(let m=0;m<n;m++)s[m]=l,l*=t[m]}let c=[];for(let l=0;l<n;l++){let m=new Int32Array(i);c.push(N.fromData(m,a.length?a:[1],"int32"))}for(let l=0;l<i;l++){let m=o[l];if(m<0||m>=u)throw new Error(`index ${m} is out of bounds for array with size ${u}`);if(e==="C")for(let f=0;f<n;f++){let p=Math.floor(m/s[f]);m=m%s[f],c[f].data[l]=p%t[f]}else for(let f=n-1;f>=0;f--){let p=Math.floor(m/s[f]);m=m%s[f],c[f].data[l]=p%t[f]}}return typeof r=="number"?c.map(l=>{let m=l.iget(0);return N.fromData(new Int32Array([Number(m)]),[],"int32")}):c}var Fo=k(()=>{"use strict";R();j();mt()});function Q(r,t){if(!Ie(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 zr(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function Lo(r,t){return Q(r.dtype,"bitwise_and"),typeof t=="number"?Ps(r,t):(Q(t.dtype,"bitwise_and"),zr(r,t)?Vs(r,t):L(r,t,(e,n)=>e&n,"bitwise_and"))}function Vs(r,t){let e=C(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,u=n.data;if(z(e)){let s=u;if(!z(r.dtype)||!z(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),f=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));s[l]=m&f}else{let l=a,m=i;for(let f=0;f<o;f++)s[f]=l[f]&m[f]}}else for(let s=0;s<o;s++)u[s]=a[s]&i[s];return n}function Ps(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),u=i.data;if(z(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]&l}else for(let s=0;s<a;s++)u[s]=o[s]&t;return i}function Wo(r,t){return Q(r.dtype,"bitwise_or"),typeof t=="number"?Fs(r,t):(Q(t.dtype,"bitwise_or"),zr(r,t)?qs(r,t):L(r,t,(e,n)=>e|n,"bitwise_or"))}function qs(r,t){let e=C(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,u=n.data;if(z(e)){let s=u;if(!z(r.dtype)||!z(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),f=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));s[l]=m|f}else{let l=a,m=i;for(let f=0;f<o;f++)s[f]=l[f]|m[f]}}else for(let s=0;s<o;s++)u[s]=a[s]|i[s];return n}function Fs(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),u=i.data;if(z(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]|l}else for(let s=0;s<a;s++)u[s]=o[s]|t;return i}function Zo(r,t){return Q(r.dtype,"bitwise_xor"),typeof t=="number"?js(r,t):(Q(t.dtype,"bitwise_xor"),zr(r,t)?Rs(r,t):L(r,t,(e,n)=>e^n,"bitwise_xor"))}function Rs(r,t){let e=C(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,u=n.data;if(z(e)){let s=u;if(!z(r.dtype)||!z(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),f=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));s[l]=m^f}else{let l=a,m=i;for(let f=0;f<o;f++)s[f]=l[f]^m[f]}}else for(let s=0;s<o;s++)u[s]=a[s]^i[s];return n}function js(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),u=i.data;if(z(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]^l}else for(let s=0;s<a;s++)u[s]=o[s]^t;return i}function Lt(r){Q(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(z(t)){let u=n,s=i;for(let c=0;c<o;c++)s[c]=~u[c]}else for(let u=0;u<o;u++)i[u]=~n[u];return a}function Go(r){return Lt(r)}function Ho(r,t){if(Q(r.dtype,"left_shift"),typeof t=="number")return Ro(r,t);if(Q(t.dtype,"left_shift"),t.size===1||t.ndim===1&&t.shape[0]===1){let e=z(t.dtype)?Number(t.data[0]):t.data[0];return Ro(r,e)}return zr(r,t)?Ls(r,t):L(r,t,(e,n)=>e<<n,"left_shift")}function Ls(r,t){let e=C(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,u=n.data;if(z(e)){let s=u;for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?a[c]:BigInt(Math.round(Number(a[c]))),m=typeof i[c]=="bigint"?i[c]:BigInt(Math.round(Number(i[c])));s[c]=l<<m}}else for(let s=0;s<o;s++)u[s]=a[s]<<i[s];return n}function Ro(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),u=i.data;if(z(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]<<l}else for(let s=0;s<a;s++)u[s]=o[s]<<t;return i}function Yo(r,t){if(Q(r.dtype,"right_shift"),typeof t=="number")return jo(r,t);if(Q(t.dtype,"right_shift"),t.size===1||t.ndim===1&&t.shape[0]===1){let e=z(t.dtype)?Number(t.data[0]):t.data[0];return jo(r,e)}return zr(r,t)?Ws(r,t):L(r,t,(e,n)=>e>>n,"right_shift")}function Ws(r,t){let e=C(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,u=n.data;if(z(e)){let s=u;for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?a[c]:BigInt(Math.round(Number(a[c]))),m=typeof i[c]=="bigint"?i[c]:BigInt(Math.round(Number(i[c])));s[c]=l>>m}}else for(let s=0;s<o;s++)u[s]=a[s]>>i[s];return n}function jo(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),u=i.data;if(z(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]>>l}else for(let s=0;s<a;s++)u[s]=o[s]>>t;return i}function Jo(r,t=-1,e="big"){let n=Array.from(r.shape),o=n.length;if(t<0&&(t=o+t),t<0||t>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let a=n[t],i=Math.ceil(a/8),u=[...n];u[t]=i;let s=N.zeros(u,"uint8"),c=s.data;if(o===1){for(let g=0;g<i;g++){let b=0;for(let h=0;h<8;h++){let A=g*8+h;if(A<a){let S=Number(r.data[A])!==0?1:0;e==="big"?b|=S<<7-h:b|=S<<h}}c[g]=b}return s}let l=n.slice(0,t),m=n.slice(t+1),f=l.reduce((g,b)=>g*b,1),p=m.reduce((g,b)=>g*b,1),y=Qr(n),d=Qr(u);for(let g=0;g<f;g++)for(let b=0;b<p;b++)for(let h=0;h<i;h++){let A=0;for(let w=0;w<8;w++){let _=h*8+w;if(_<a){let B=0,v=g;for(let M=0;M<t;M++){let P=M<t-1?l.slice(M+1).reduce((Z,hr)=>Z*hr,1):1,H=Math.floor(v/P);v%=P,B+=H*y[M]}B+=_*y[t];let E=b;for(let M=t+1;M<o;M++){let P=M<o-1?m.slice(M-t).reduce((Z,hr)=>Z*hr,1):1,H=Math.floor(E/P);E%=P,B+=H*y[M]}let $=Number(r.data[B])!==0?1:0;e==="big"?A|=$<<7-w:A|=$<<w}}let S=0,D=g;for(let w=0;w<t;w++){let _=w<t-1?l.slice(w+1).reduce((v,E)=>v*E,1):1,B=Math.floor(D/_);D%=_,S+=B*d[w]}S+=h*d[t];let x=b;for(let w=t+1;w<o;w++){let _=w<o-1?m.slice(w-t).reduce((v,E)=>v*E,1):1,B=Math.floor(x/_);x%=_,S+=B*d[w]}c[S]=A}return s}function Qo(r,t=-1,e=-1,n="big"){if(r.dtype!=="uint8")throw new TypeError("Expected an input array of unsigned byte data type");let o=Array.from(r.shape),a=o.length;if(t<0&&(t=a+t),t<0||t>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let i=o[t],u=i*8;e>=0&&(u=e);let s=[...o];s[t]=u;let c=N.zeros(s,"uint8"),l=c.data;if(a===1){for(let b=0;b<i;b++){let h=Number(r.data[b]);for(let A=0;A<8;A++){let S=b*8+A;if(S>=u)break;n==="big"?l[S]=h>>7-A&1:l[S]=h>>A&1}}return c}let m=o.slice(0,t),f=o.slice(t+1),p=m.reduce((b,h)=>b*h,1),y=f.reduce((b,h)=>b*h,1),d=Qr(o),g=Qr(s);for(let b=0;b<p;b++)for(let h=0;h<y;h++)for(let A=0;A<i;A++){let S=0,D=b;for(let _=0;_<t;_++){let B=_<t-1?m.slice(_+1).reduce((E,$)=>E*$,1):1,v=Math.floor(D/B);D%=B,S+=v*d[_]}S+=A*d[t];let x=h;for(let _=t+1;_<a;_++){let B=_<a-1?f.slice(_-t).reduce((E,$)=>E*$,1):1,v=Math.floor(x/B);x%=B,S+=v*d[_]}let w=Number(r.data[S]);for(let _=0;_<8;_++){let B=A*8+_;if(B>=u)break;let v=0;D=b;for(let E=0;E<t;E++){let $=E<t-1?m.slice(E+1).reduce((P,H)=>P*H,1):1,M=Math.floor(D/$);D%=$,v+=M*g[E]}v+=B*g[t],x=h;for(let E=t+1;E<a;E++){let $=E<a-1?f.slice(E-t).reduce((P,H)=>P*H,1):1,M=Math.floor(x/$);x%=$,v+=M*g[E]}n==="big"?l[v]=w>>7-_&1:l[v]=w>>_&1}}return c}function Qr(r){let t=r.length,e=new Array(t),n=1;for(let o=t-1;o>=0;o--)e[o]=n,n*=r[o];return e}var Xo=k(()=>{"use strict";R();j();sr()});function Wt(r,t=-1){let e=r.shape,n=e.length,o=r.dtype,a=r.data;if(n===0)return r.copy();let i=t;if(i<0&&(i=n+i),i<0||i>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let u=r.copy(),s=u.data,c=e[i],l=Array.from(e).filter((f,p)=>p!==i),m=l.length===0?1:l.reduce((f,p)=>f*p,1);if(z(o)){let f=a,p=s;for(let y=0;y<m;y++){let d=[];for(let g=0;g<c;g++){let b=T(y,i,g,e),h=O(b,e);d.push({value:f[h],idx:g})}d.sort((g,b)=>g.value<b.value?-1:g.value>b.value?1:0);for(let g=0;g<c;g++){let b=T(y,i,g,e),h=O(b,e);p[h]=d[g].value}}}else for(let f=0;f<m;f++){let p=[];for(let y=0;y<c;y++){let d=T(f,i,y,e),g=O(d,e);p.push(Number(a[g]))}p.sort((y,d)=>isNaN(y)&&isNaN(d)?0:isNaN(y)?1:isNaN(d)?-1:y-d);for(let y=0;y<c;y++){let d=T(f,i,y,e),g=O(d,e);s[g]=p[y]}}return u}function Zt(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 u=N.zeros(Array.from(e),"int32"),s=u.data,c=e[i],l=Array.from(e).filter((f,p)=>p!==i),m=l.length===0?1:l.reduce((f,p)=>f*p,1);if(z(o)){let f=a;for(let p=0;p<m;p++){let y=[];for(let d=0;d<c;d++){let g=T(p,i,d,e),b=O(g,e);y.push({value:f[b],idx:d})}y.sort((d,g)=>d.value<g.value?-1:d.value>g.value?1:0);for(let d=0;d<c;d++){let g=T(p,i,d,e),b=O(g,e);s[b]=y[d].idx}}}else for(let f=0;f<m;f++){let p=[];for(let y=0;y<c;y++){let d=T(f,i,y,e),g=O(d,e);p.push({value:Number(a[g]),idx:y})}p.sort((y,d)=>isNaN(y.value)&&isNaN(d.value)?0:isNaN(y.value)?1:isNaN(d.value)?-1:y.value-d.value);for(let y=0;y<c;y++){let d=T(f,i,y,e),g=O(d,e);s[g]=p[y].idx}}return u}function Ko(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,u)=>{for(let s=r.length-1;s>=0;s--){let l=r[s].data,m=Number(l[i]),f=Number(l[u]);if(!(isNaN(m)&&isNaN(f))){if(isNaN(m))return 1;if(isNaN(f)||m<f)return-1;if(m>f)return 1}}return 0});let o=N.zeros([e],"int32"),a=o.data;for(let i=0;i<e;i++)a[i]=n[i];return o}function Gs(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e],i=r[o],u=r[n],s;a<=i&&i<=u||u<=i&&i<=a?s=o:i<=a&&a<=u||u<=a&&a<=i?s=e:s=n;let c=r[s];[r[s],r[n]]=[r[n],r[s]];let l=e;for(let m=e;m<n;m++){let f=r[m],p=isNaN(f),y=isNaN(c);!p&&(y||f<=c)&&([r[l],r[m]]=[r[m],r[l]],l++)}if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function Hs(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e],i=r[o],u=r[n],s;a<=i&&i<=u||u<=i&&i<=a?s=o:i<=a&&a<=u||u<=a&&a<=i?s=e:s=n;let c=r[s];[r[s],r[n]]=[r[n],r[s]];let l=e;for(let m=e;m<n;m++)r[m]<=c&&([r[l],r[m]]=[r[m],r[l]],l++);if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function Ys(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e].value,i=r[o].value,u=r[n].value,s;a<=i&&i<=u||u<=i&&i<=a?s=o:i<=a&&a<=u||u<=a&&a<=i?s=e:s=n;let c=r[s].value;[r[s],r[n]]=[r[n],r[s]];let l=e;for(let m=e;m<n;m++){let f=r[m].value,p=isNaN(f),y=isNaN(c);!p&&(y||f<=c)&&([r[l],r[m]]=[r[m],r[l]],l++)}if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function Js(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e].value,i=r[o].value,u=r[n].value,s;a<=i&&i<=u||u<=i&&i<=a?s=o:i<=a&&a<=u||u<=a&&a<=i?s=e:s=n;let c=r[s].value;[r[s],r[n]]=[r[n],r[s]];let l=e;for(let m=e;m<n;m++)r[m].value<=c&&([r[l],r[m]]=[r[m],r[l]],l++);if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function Gt(r,t,e=-1){let n=r.shape,o=n.length,a=r.dtype;if(o===0)return r.copy();let i=e;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=n[i],s=t;if(s<0&&(s=u+s),s<0||s>=u)throw new Error(`kth(=${t}) out of bounds (${u})`);let c=r.copy(),l=c.data,m=Array.from(n).filter((p,y)=>y!==i),f=m.length===0?1:m.reduce((p,y)=>p*y,1);if(z(a)){let p=l;for(let y=0;y<f;y++){let d=[];for(let g=0;g<u;g++){let b=T(y,i,g,n),h=O(b,n);d.push(p[h])}Hs(d,s);for(let g=0;g<u;g++){let b=T(y,i,g,n),h=O(b,n);p[h]=d[g]}}}else for(let p=0;p<f;p++){let y=[];for(let d=0;d<u;d++){let g=T(p,i,d,n),b=O(g,n);y.push(Number(l[b]))}Gs(y,s);for(let d=0;d<u;d++){let g=T(p,i,d,n),b=O(g,n);l[b]=y[d]}}return c}function Ht(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 u=e;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=n[u],c=t;if(c<0&&(c=s+c),c<0||c>=s)throw new Error(`kth(=${t}) out of bounds (${s})`);let l=N.zeros(Array.from(n),"int32"),m=l.data,f=Array.from(n).filter((y,d)=>d!==u),p=f.length===0?1:f.reduce((y,d)=>y*d,1);if(z(a)){let y=i;for(let d=0;d<p;d++){let g=[];for(let b=0;b<s;b++){let h=T(d,u,b,n),A=O(h,n);g.push({value:y[A],idx:b})}Js(g,c);for(let b=0;b<s;b++){let h=T(d,u,b,n),A=O(h,n);m[A]=g[b].idx}}}else for(let y=0;y<p;y++){let d=[];for(let g=0;g<s;g++){let b=T(y,u,g,n),h=O(b,n);d.push({value:Number(i[h]),idx:g})}Ys(d,c);for(let g=0;g<s;g++){let b=T(y,u,g,n),h=O(b,n);m[h]=d[g].idx}}return l}function ra(r){let t=r.dtype,e=r.size,n=r.data,o=[];for(let u=0;u<e;u++)o.push(Number(n[u]));o.sort((u,s)=>isNaN(u)&&isNaN(s)?0:isNaN(u)?1:isNaN(s)?-1:u-s);let a=N.zeros([e],t),i=a.data;for(let u=0;u<e;u++)i[u]=o[u];return a}function Xr(r){let t=r.shape,e=t.length,n=r.data,o=r.size,a=[];for(let l=0;l<e;l++)a.push([]);let i=[],u=1;for(let l=e-1;l>=0;l--)i.unshift(u),u*=t[l];for(let l=0;l<o;l++)if(n[l]){let m=l;for(let f=0;f<e;f++){let p=Math.floor(m/i[f]);m=m%i[f],a[f].push(p)}}let s=a[0]?.length??0,c=[];for(let l=0;l<e;l++){let m=N.zeros([s],"int32"),f=m.data;for(let p=0;p<s;p++)f[p]=a[l][p];c.push(m)}return c}function ta(r){let t=r.data,e=r.size,n=[];for(let i=0;i<e;i++)t[i]&&n.push(i);let o=N.zeros([n.length],"int32"),a=o.data;for(let i=0;i<n.length;i++)a[i]=n[i];return o}function ea(r,t,e){if(t===void 0&&e===void 0)return Xr(r);if(t===void 0||e===void 0)throw new Error("either both or neither of x and y should be given");let n=r.shape,o=t.shape,a=e.shape,i=Math.max(n.length,o.length,a.length),u=B=>{let v=Array(i).fill(1);for(let E=0;E<B.length;E++)v[i-B.length+E]=B[E];return v},s=u(n),c=u(o),l=u(a),m=[];for(let B=0;B<i;B++){let v=[s[B],c[B],l[B]],E=Math.max(...v);for(let $ of v)if($!==1&&$!==E)throw new Error("operands could not be broadcast together");m.push(E)}let f=t.dtype,p=N.zeros(m,f),y=p.data,d=r.data,g=t.data,b=e.data,h=(B,v)=>{let E=[],$=1;for(let M=B.length-1;M>=0;M--)E.unshift($),$*=B[M];for(;E.length<v.length;)E.unshift(0);for(let M=0;M<v.length;M++)v[M]===1&&m[M]!==1&&(E[M]=0);return E},A=h(n,s),S=h(o,c),D=h(a,l),x=[],w=1;for(let B=m.length-1;B>=0;B--)x.unshift(w),w*=m[B];let _=m.reduce((B,v)=>B*v,1);for(let B=0;B<_;B++){let v=B,E=0,$=0,M=0;for(let P=0;P<i;P++){let H=Math.floor(v/x[P]);v=v%x[P],E+=H*A[P],$+=H*S[P],M+=H*D[P]}d[E]?y[B]=g[$]:y[B]=b[M]}return p}function Yt(r,t,e="left"){if(r.ndim!==1)throw new Error("storage must be 1D");let n=r.data,o=r.size,a=t.data,i=t.size,u=N.zeros([i],"int32"),s=u.data;for(let c=0;c<i;c++){let l=Number(a[c]),m=0,f=o;if(e==="left")for(;m<f;){let p=Math.floor((m+f)/2);Number(n[p])<l?m=p+1:f=p}else for(;m<f;){let p=Math.floor((m+f)/2);Number(n[p])<=l?m=p+1:f=p}s[c]=m}return u}function na(r,t){let e=r.data,n=t.data,o=t.dtype,a=Math.min(r.size,t.size),i=0;for(let l=0;l<a;l++)e[l]&&i++;let u=N.zeros([i],o),s=u.data,c=0;if(z(o)){let l=n,m=s;for(let f=0;f<a;f++)e[f]&&(m[c++]=l[f])}else for(let l=0;l<a;l++)e[l]&&(s[c++]=n[l]);return u}function Jt(r,t){let e=r.shape,n=e.length,o=r.data,a=r.size;if(t===void 0){let f=0;for(let p=0;p<a;p++)o[p]&&f++;return f}let i=t;if(i<0&&(i=n+i),i<0||i>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let u=Array.from(e).filter((f,p)=>p!==i);if(u.length===0)return Jt(r);let s=N.zeros(u,"int32"),c=s.data,l=e[i],m=u.reduce((f,p)=>f*p,1);for(let f=0;f<m;f++){let p=0;for(let y=0;y<l;y++){let d=T(f,i,y,e),g=O(d,e);o[g]&&p++}c[f]=p}return s}var oa=k(()=>{"use strict";R();j();yt()});function aa(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 Qt(r,t=0){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=e==="float32"?"float32":"float64",u=N.zeros(n,i),s=u.data,c=Math.pow(10,t);for(let l=0;l<a;l++){let m=Number(o[l]);s[l]=aa(m*c)/c}return u}function Xt(r){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),u=i.data;for(let s=0;s<o;s++)u[s]=Math.ceil(Number(n[s]));return i}function Kt(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",i=N.zeros(e,a),u=i.data;for(let s=0;s<o;s++)u[s]=Math.trunc(Number(n[s]));return i}function re(r){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),u=i.data;for(let s=0;s<o;s++)u[s]=Math.floor(Number(n[s]));return i}function te(r){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),u=i.data;for(let s=0;s<o;s++)u[s]=aa(Number(n[s]));return i}function ee(r){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),u=i.data;for(let s=0;s<o;s++)u[s]=Math.trunc(Number(n[s]));return i}var sa=k(()=>{"use strict";R()});function K(r,t=!1,e=!1,n=!1){let o=r.dtype,a=r.size,i=r.data,u=[];for(let A=0;A<a;A++)u.push({value:Number(i[A]),index:A});u.sort((A,S)=>isNaN(A.value)&&isNaN(S.value)?0:isNaN(A.value)?1:isNaN(S.value)?-1:A.value-S.value);let s=[],c=[],l=new Array(a),m=[],f,p=0;for(let A=0;A<u.length;A++){let{value:S,index:D}=u[A];f===void 0||isNaN(S)&&!isNaN(f)||!isNaN(S)&&isNaN(f)||!isNaN(S)&&!isNaN(f)&&S!==f?(f!==void 0&&m.push(p),s.push(S),c.push(D),p=1,f=S):p++}p>0&&m.push(p);let y=new Map,d=-1;for(let A=0;A<s.length;A++){let S=s[A];isNaN(S)?d=A:y.set(S,A)}for(let A=0;A<a;A++){let S=Number(i[A]);isNaN(S)?l[A]=d:l[A]=y.get(S)}let g=N.zeros([s.length],o),b=g.data;for(let A=0;A<s.length;A++)b[A]=s[A];if(!t&&!e&&!n)return g;let h={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];h.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];h.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];h.counts=A}return h}function ia(r,t){return ne(r,t)}function ua(r,t){let e=r.dtype,n=K(r),o=K(t),a=new Set;for(let c=0;c<o.size;c++)a.add(Number(o.data[c]));let i=[];for(let c=0;c<n.size;c++){let l=Number(n.data[c]);a.has(l)&&i.push(l)}i.sort((c,l)=>c-l);let u=N.zeros([i.length],e),s=u.data;for(let c=0;c<i.length;c++)s[c]=i[c];return u}function ne(r,t){let e=Array.from(r.shape),n=r.size,o=new Set;for(let s=0;s<t.size;s++)o.add(Number(t.data[s]));let a=N.zeros(e,"bool"),i=a.data,u=r.data;for(let s=0;s<n;s++){let c=Number(u[s]);i[s]=o.has(c)?1:0}return a}function ca(r,t){let e=r.dtype,n=K(r),o=new Set;for(let s=0;s<t.size;s++)o.add(Number(t.data[s]));let a=[];for(let s=0;s<n.size;s++){let c=Number(n.data[s]);o.has(c)||a.push(c)}let i=N.zeros([a.length],e),u=i.data;for(let s=0;s<a.length;s++)u[s]=a[s];return i}function la(r,t){let e=r.dtype,n=K(r),o=K(t),a=new Set,i=new Set;for(let l=0;l<n.size;l++)a.add(Number(n.data[l]));for(let l=0;l<o.size;l++)i.add(Number(o.data[l]));let u=[];for(let l of a)i.has(l)||u.push(l);for(let l of i)a.has(l)||u.push(l);u.sort((l,m)=>l-m);let s=N.zeros([u.length],e),c=s.data;for(let l=0;l<u.length;l++)c[l]=u[l];return s}function fa(r,t){let e=r.dtype,n=K(r),o=K(t),a=new Set;for(let c=0;c<n.size;c++)a.add(Number(n.data[c]));for(let c=0;c<o.size;c++)a.add(Number(o.data[c]));let i=Array.from(a);i.sort((c,l)=>c-l);let u=N.zeros([i.length],e),s=u.data;for(let c=0;c<i.length;c++)s[c]=i[c];return u}var ma=k(()=>{"use strict";R()});function oe(r,t=1,e=-1){if(t<0)throw new Error(`order must be non-negative but got ${t}`);if(t===0)return r.copy();let n=Array.from(r.shape),o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);if(n[a]<t+1)throw new Error(`diff requires at least ${t+1} elements along axis ${e}, but got ${n[a]}`);let i=r;for(let u=0;u<t;u++)i=ri(i,a);return i}function ri(r,t){let e=Array.from(r.shape),n=e.length,o=e[t],a=[...e];a[t]=o-1;let i=r.dtype,u=z(i)?"float64":i,s=N.zeros(a,u),c=s.data,l=r.strides,m=s.size;for(let f=0;f<m;f++){let p=f,y=new Array(n);for(let D=n-1;D>=0;D--)y[D]=p%a[D],p=Math.floor(p/a[D]);let d=[...y],g=[...y];g[t]=d[t]+1;let b=0,h=0;for(let D=0;D<n;D++)b+=d[D]*l[D],h+=g[D]*l[D];let A=(z(i),Number(r.data[b])),S=(z(i),Number(r.data[h]));c[f]=S-A}return s}function pa(r,t=null,e=null){let n=r.size,o=r.dtype,a=z(o)?"float64":o,i=Math.max(0,n-1),u=e?e.length:0,s=t?t.length:0,c=u+i+s,l=N.zeros([c],a),m=l.data,f=0;if(e)for(let p of e)m[f++]=p;for(let p=0;p<i;p++){let y=(z(o),Number(r.iget(p))),d=(z(o),Number(r.iget(p+1)));m[f++]=d-y}if(t)for(let p of t)m[f++]=p;return l}function ya(r,t=1,e=null){let o=Array.from(r.shape).length,a;if(e===null)a=Array.from({length:o},(s,c)=>c);else if(typeof e=="number"){let s=e<0?o+e:e;if(s<0||s>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);a=[s]}else a=e.map(s=>{let c=s<0?o+s:s;if(c<0||c>=o)throw new Error(`axis ${s} is out of bounds for array of dimension ${o}`);return c});let i;if(typeof t=="number")i=a.map(()=>t);else{if(t.length!==a.length)throw new Error("Number of spacings must match number of axes");i=t}let u=[];for(let s=0;s<a.length;s++)u.push(ti(r,a[s],i[s]));return u.length===1?u[0]:u}function ti(r,t,e){let n=Array.from(r.shape),o=n.length,a=n[t];if(a<2)throw new Error(`Shape of array along axis ${t} must be at least 2, but got ${a}`);let i=r.dtype,u=z(i)?"float64":i==="float32"?"float32":"float64",s=N.zeros(n,u),c=s.data,l=r.strides,m=e,f=2*m,p=r.size;for(let y=0;y<p;y++){let d=y,g=new Array(o);for(let A=o-1;A>=0;A--)g[A]=d%n[A],d=Math.floor(d/n[A]);let b=g[t],h;if(b===0){let A=[...g];A[t]=1;let S=0;for(let w=0;w<o;w++)S+=A[w]*l[w];let D=(z(i),Number(r.data[y]));h=((z(i),Number(r.data[S]))-D)/m}else if(b===a-1){let A=[...g];A[t]=a-2;let S=0;for(let w=0;w<o;w++)S+=A[w]*l[w];let D=(z(i),Number(r.data[y])),x=(z(i),Number(r.data[S]));h=(D-x)/m}else{let A=[...g],S=[...g];A[t]=b+1,S[t]=b-1;let D=0,x=0;for(let B=0;B<o;B++)D+=A[B]*l[B],x+=S[B]*l[B];let w=(z(i),Number(r.data[D])),_=(z(i),Number(r.data[x]));h=(w-_)/f}c[y]=h}return s}function da(r,t,e=-1,n=-1,o=-1){let a=Array.from(r.shape),i=Array.from(t.shape),u=a.length,s=i.length,c=e<0?u+e:e,l=n<0?s+n:n;if(c<0||c>=u)throw new Error(`axisa ${e} is out of bounds for array of dimension ${u}`);if(l<0||l>=s)throw new Error(`axisb ${n} is out of bounds for array of dimension ${s}`);let m=a[c],f=i[l];if(m!==2&&m!==3)throw new Error(`incompatible dimensions for cross product (dimension must be 2 or 3, got ${m})`);if(f!==2&&f!==3)throw new Error(`incompatible dimensions for cross product (dimension must be 2 or 3, got ${f})`);let p=C(r.dtype,t.dtype);if(u===1&&s===1&&m===3&&f===3){let y=N.zeros([3],p),d=y.data,g=Number(r.iget(0)),b=Number(r.iget(1)),h=Number(r.iget(2)),A=Number(t.iget(0)),S=Number(t.iget(1)),D=Number(t.iget(2));return d[0]=b*D-h*S,d[1]=h*A-g*D,d[2]=g*S-b*A,y}if(u===1&&s===1&&m===2&&f===2){let y=N.zeros([],p),d=Number(r.iget(0)),g=Number(r.iget(1)),b=Number(t.iget(0)),h=Number(t.iget(1));return y.data[0]=d*h-g*b,y}if(u===1&&s===1){if(m===2&&f===3){let y=N.zeros([3],p),d=y.data,g=Number(r.iget(0)),b=Number(r.iget(1)),h=Number(t.iget(0)),A=Number(t.iget(1)),S=Number(t.iget(2));return d[0]=b*S,d[1]=-g*S,d[2]=g*A-b*h,y}else if(m===3&&f===2){let y=N.zeros([3],p),d=y.data,g=Number(r.iget(0)),b=Number(r.iget(1)),h=Number(r.iget(2)),A=Number(t.iget(0)),S=Number(t.iget(1));return d[0]=-h*S,d[1]=h*A,d[2]=g*S-b*A,y}}if(u===2&&s===2&&c===1&&l===1){let y=a[0];if(i[0]!==y)throw new Error(`Shape mismatch: a has ${y} vectors, b has ${i[0]} vectors`);if(m===3&&f===3){let d=N.zeros([y,3],p),g=d.data;for(let b=0;b<y;b++){let h=Number(r.iget(b*3)),A=Number(r.iget(b*3+1)),S=Number(r.iget(b*3+2)),D=Number(t.iget(b*3)),x=Number(t.iget(b*3+1)),w=Number(t.iget(b*3+2));g[b*3]=A*w-S*x,g[b*3+1]=S*D-h*w,g[b*3+2]=h*x-A*D}return d}if(m===2&&f===2){let d=N.zeros([y],p),g=d.data;for(let b=0;b<y;b++){let h=Number(r.iget(b*2)),A=Number(r.iget(b*2+1)),S=Number(t.iget(b*2)),D=Number(t.iget(b*2+1));g[b]=h*D-A*S}return d}}throw new Error(`cross product not implemented for arrays with shapes ${JSON.stringify(a)} and ${JSON.stringify(i)}`)}var ga=k(()=>{"use strict";R();j()});function rr(r,t=q){let e=N.zeros(r,t);return new I(e)}function Aa(r,t=q){let e=N.ones(r,t);return new I(e)}function ni(r){let t=[],e=r;for(;Array.isArray(e);)t.push(e.length),e=e[0];return t}function ha(r){return typeof r=="bigint"?!0:Array.isArray(r)?r.some(t=>ha(t)):!1}function oi(r){let t=[];function e(n){Array.isArray(n)?n.forEach(o=>e(o)):t.push(n)}return e(r),t}function F(r,t){if(r instanceof I)return!t||r.dtype===t?r.copy():r.astype(t);let e=ha(r),n=ni(r),o=n.reduce((l,m)=>l*m,1),a=t;a||(e?a="int64":a=q);let i=U(a);if(!i)throw new Error(`Cannot create array with dtype ${a}`);let u=new i(o),s=oi(r);if(z(a)){let l=u;for(let m=0;m<o;m++){let f=s[m];l[m]=typeof f=="bigint"?f:BigInt(Math.round(Number(f)))}}else if(a==="bool"){let l=u;for(let m=0;m<o;m++)l[m]=s[m]?1:0}else{let l=u;for(let m=0;m<o;m++){let f=s[m];l[m]=Number(f)}}let c=N.fromData(u,n,a);return new I(c)}function ai(r,t,e=1,n=q){let o=r,a=t;if(t===void 0&&(o=0,a=r),a===void 0)throw new Error("stop is required");let i=Math.max(0,Math.ceil((a-o)/e)),u=U(n);if(!u)throw new Error(`Cannot create arange array with dtype ${n}`);let s=new u(i);if(z(n))for(let l=0;l<i;l++)s[l]=BigInt(Math.round(o+l*e));else if(n==="bool")for(let l=0;l<i;l++)s[l]=o+l*e!==0?1:0;else for(let l=0;l<i;l++)s[l]=o+l*e;let c=N.fromData(s,[i],n);return new I(c)}function si(r,t,e=50,n=q){if(e<0)throw new Error("num must be non-negative");if(e===0)return F([],n);if(e===1)return F([r],n);let o=U(n);if(!o)throw new Error(`Cannot create linspace array with dtype ${n}`);let a=new o(e),i=(t-r)/(e-1);if(z(n))for(let s=0;s<e;s++)a[s]=BigInt(Math.round(r+s*i));else if(n==="bool")for(let s=0;s<e;s++)a[s]=r+s*i!==0?1:0;else for(let s=0;s<e;s++)a[s]=r+s*i;let u=N.fromData(a,[e],n);return new I(u)}function ii(r,t,e=50,n=10,o=q){if(e<0)throw new Error("num must be non-negative");if(e===0)return F([],o);if(e===1)return F([Math.pow(n,r)],o);let a=U(o);if(!a)throw new Error(`Cannot create logspace array with dtype ${o}`);let i=new a(e),u=(t-r)/(e-1);if(z(o))for(let c=0;c<e;c++){let l=r+c*u;i[c]=BigInt(Math.round(Math.pow(n,l)))}else if(o==="bool")for(let c=0;c<e;c++){let l=r+c*u;i[c]=Math.pow(n,l)!==0?1:0}else for(let c=0;c<e;c++){let l=r+c*u;i[c]=Math.pow(n,l)}let s=N.fromData(i,[e],o);return new I(s)}function ui(r,t,e=50,n=q){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 F([],n);if(e===1)return F([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=U(n);if(!i)throw new Error(`Cannot create geomspace array with dtype ${n}`);let u=new i(e),s=Math.log(Math.abs(r)),l=(Math.log(Math.abs(t))-s)/(e-1);if(z(n))for(let f=0;f<e;f++){let p=o*Math.exp(s+f*l);u[f]=BigInt(Math.round(p))}else if(n==="bool")for(let f=0;f<e;f++){let p=o*Math.exp(s+f*l);u[f]=p!==0?1:0}else for(let f=0;f<e;f++){let p=o*Math.exp(s+f*l);u[f]=p}let m=N.fromData(u,[e],n);return new I(m)}function ba(r,t,e=0,n=q){let o=t??r,a=rr([r,o],n),i=a.data;if(z(n)){let u=i;for(let s=0;s<r;s++){let c=s+e;c>=0&&c<o&&(u[s*o+c]=BigInt(1))}}else{let u=i;for(let s=0;s<r;s++){let c=s+e;c>=0&&c<o&&(u[s*o+c]=1)}}return a}function Sa(r,t=q){return rr(r,t)}function Na(r,t,e){let n=e;n||(typeof t=="bigint"?n="int64":typeof t=="boolean"?n="bool":Number.isInteger(t)?n="int32":n=q);let o=U(n);if(!o)throw new Error(`Cannot create full array with dtype ${n}`);let a=r.reduce((s,c)=>s*c,1),i=new o(a);if(z(n)){let s=typeof t=="bigint"?t:BigInt(Math.round(Number(t)));i.fill(s)}else n==="bool"?i.fill(t?1:0):i.fill(Number(t));let u=N.fromData(i,r,n);return new I(u)}function ci(r,t=q){return ba(r,r,0,t)}function Kr(r,t){return r instanceof I?!t||r.dtype===t?r:r.astype(t):F(r,t)}function li(r){return r.copy()}function fi(r,t){return rr(Array.from(r.shape),t??r.dtype)}function mi(r,t){return Aa(Array.from(r.shape),t??r.dtype)}function pi(r,t){return Sa(Array.from(r.shape),t??r.dtype)}function yi(r,t,e){return Na(Array.from(r.shape),t,e??r.dtype)}function di(r,t){return Kr(r,t)}function gi(r,t){let e=Kr(r,t);return e.flags.C_CONTIGUOUS?e:e.copy()}function Ai(r,t){return Kr(r,t).copy()}function Da(r,t=0){if(r.ndim===1){let e=r.size,n=e+Math.abs(t),o=rr([n,n],r.dtype);for(let a=0;a<e;a++){let i=t>=0?a:a-t,u=t>=0?a+t:a;o.set([i,u],r.get([a]))}return o}else if(r.ndim===2){let[e,n]=r.shape,o,a,i;if(t>=0?(o=0,a=t,i=Math.min(e,n-t)):(o=-t,a=0,i=Math.min(e+t,n)),i<=0)return rr([0],r.dtype);let u=U(r.dtype),s=new u(i);for(let l=0;l<i;l++){let m=r.get([o+l,a+l]);z(r.dtype)?s[l]=typeof m=="bigint"?m:BigInt(m):s[l]=m}let c=N.fromData(s,[i],r.dtype);return new I(c)}else throw new Error("Input must be 1-D or 2-D")}function hi(r,t=0){let e=r.flatten();return Da(e,t)}function bi(r,t,e=q){let n=t.reduce((c,l)=>c*l,1),o=U(e);if(!o)throw new Error(`Cannot create array with dtype ${e}`);let a=new o(n),i=t.length,u=new Array(i).fill(0);for(let c=0;c<n;c++){let l=r(...u);z(e)?a[c]=typeof l=="bigint"?l:BigInt(Number(l)):e==="bool"?a[c]=l?1:0:a[c]=Number(l);for(let m=i-1;m>=0&&(u[m]++,!(u[m]<t[m]));m--)u[m]=0}let s=N.fromData(a,t,e);return new I(s)}function Si(...r){let t=[],e="xy";for(let u of r)u instanceof I?t.push(u):typeof u=="object"&&"indexing"in u&&(e=u.indexing||"xy");if(t.length===0)return[];if(t.length===1)return[t[0].copy()];let n=t.map(u=>u.size);e==="xy"&&t.length>=2&&(t=[t[1],t[0],...t.slice(2)],[n[0],n[1]]=[n[1],n[0]]);let o=n,a=o.length,i=[];for(let u=0;u<t.length;u++){let s=t[u],c=s.size,l=new Array(a).fill(1);l[u]=c;let m=s.reshape(...l),f=qt(m.storage,o),p=I._fromStorage(f.copy());i.push(p)}return e==="xy"&&i.length>=2&&([i[0],i[1]]=[i[1],i[0]]),i}function Ni(r,t,e=0,n=q){let o=t??r,a=rr([r,o],n);for(let i=0;i<r;i++)for(let u=0;u<=i+e&&u<o;u++)u>=0&&a.set([i,u],1);return a}function Di(r,t=0){if(r.ndim<2)throw new Error("Input must have at least 2 dimensions");let e=r.copy(),n=e.shape,o=n[n.length-2],a=n[n.length-1],i=n.slice(0,-2).reduce((u,s)=>u*s,1);for(let u=0;u<i;u++)for(let s=0;s<o;s++)for(let c=0;c<a;c++)if(c>s+t){let l=[],m=u;for(let f=n.length-3;f>=0;f--)l.unshift(m%n[f]),m=Math.floor(m/n[f]);l.push(s,c),e.set(l,0)}return e}function xi(r,t=0){if(r.ndim<2)throw new Error("Input must have at least 2 dimensions");let e=r.copy(),n=e.shape,o=n[n.length-2],a=n[n.length-1],i=n.slice(0,-2).reduce((u,s)=>u*s,1);for(let u=0;u<i;u++)for(let s=0;s<o;s++)for(let c=0;c<a;c++)if(c<s+t){let l=[],m=u;for(let f=n.length-3;f>=0;f--)l.unshift(m%n[f]),m=Math.floor(m/n[f]);l.push(s,c),e.set(l,0)}return e}function wi(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=rr([n,o],r.dtype);for(let i=0;i<n;i++){let u=r.get([i]);for(let s=0;s<o;s++){let c=e?s:o-1-s;a.set([i,s],Math.pow(u,c))}}return a}function zi(r,t=q,e=-1,n=0){let o,a=n;r instanceof ArrayBuffer?o=r:(o=r.buffer,a+=r.byteOffset);let i=vi(t),u=o.byteLength-a,s=Math.floor(u/i),c=e<0?s:Math.min(e,s);if(c<=0)return F([],t);let l=U(t);if(!l)throw new Error(`Unsupported dtype: ${t}`);let m=new l(o,a,c),f=N.fromData(m,[c],t);return new I(f)}function Ii(r,t=q,e=-1){let n=[],o=0;for(let a of r){if(e>=0&&o>=e)break;n.push(a),o++}return F(n,t)}function _i(r,t=q,e=-1){let n=[],o=0;for(let a of r){if(e>=0&&o>=e)break;n.push(a),o++}return F(n,t)}function Bi(r,t=q,e=-1,n=""){let o;n===""?o=r.trim().split(/\s+/):o=r.split(n);let a=[],i=0;for(let u of o){if(e>=0&&i>=e)break;let s=u.trim();s!==""&&(z(t)?a.push(BigInt(s)):a.push(parseFloat(s)),i++)}return F(a,t)}function vi(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 Ei(r){return r.sqrt()}function Oi(r,t){return r.power(t)}function Ti(r){return r.exp()}function Ui(r){return r.exp2()}function $i(r){return r.expm1()}function Mi(r){return r.log()}function ki(r){return r.log2()}function Ci(r){return r.log10()}function Vi(r){return r.log1p()}function Pi(r,t){return r.logaddexp(t)}function qi(r,t){return r.logaddexp2(t)}function Fi(r){return r.absolute()}function Ri(r){return r.negative()}function ji(r){return r.sign()}function Li(r,t){return r.mod(t)}function Wi(r,t){return r.floor_divide(t)}function Zi(r){return r.positive()}function Gi(r){return r.reciprocal()}function Hi(r,t){return r.dot(t)}function Yi(r){return r.trace()}function Ji(r,t=0,e=0,n=1){let o=Bn(r.storage,t,e,n);return I._fromStorage(o)}function Qi(r,t){let e=En(r.storage,t.storage);return I._fromStorage(e)}function Xi(r,t){return r.transpose(t)}function Ki(r,t){return r.inner(t)}function ru(r,t){return r.outer(t)}function tu(r,t,e=2){return r.tensordot(t,e)}function eu(r){return r.sin()}function nu(r){return r.cos()}function ou(r){return r.tan()}function au(r){return r.arcsin()}function su(r){return r.arccos()}function iu(r){return r.arctan()}function uu(r,t){return r.arctan2(t)}function cu(r,t){return r.hypot(t)}function lu(r){return r.degrees()}function fu(r){return r.radians()}function mu(r){return r.radians()}function pu(r){return r.degrees()}function yu(r){return r.sinh()}function du(r){return r.cosh()}function gu(r){return r.tanh()}function Au(r){return r.arcsinh()}function hu(r){return r.arccosh()}function bu(r){return r.arctanh()}function Su(r,t,e){return r.swapaxes(t,e)}function Nu(r,t,e){return r.moveaxis(t,e)}function yr(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=ir(e,t);return I._fromStorage(n)}function Du(r,t=0){if(r.length===0)throw new Error("need at least one array to stack");let e=r.map(o=>o.storage),n=en(e,t);return I._fromStorage(n)}function xa(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=nn(t);return I._fromStorage(e)}function xu(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=Et(t);return I._fromStorage(e)}function wu(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=on(t);return I._fromStorage(e)}function zu(r,t,e=0){return an(r.storage,t,e).map(o=>I._fromStorage(o,r.base??r))}function Iu(r,t,e=0){return wr(r.storage,t,e).map(o=>I._fromStorage(o,r.base??r))}function _u(r,t){return un(r.storage,t).map(n=>I._fromStorage(n,r.base??r))}function Bu(r,t){return cn(r.storage,t).map(n=>I._fromStorage(n,r.base??r))}function vu(r,t){let e=ln(r.storage,t);return I._fromStorage(e)}function Eu(r,t,e){return r.repeat(t,e)}function Ou(r){return r.ravel()}function Tu(r,t){return r.reshape(...t)}function Uu(r,t){return r.squeeze(t)}function $u(r,t){return r.expand_dims(t)}function ae(r,t){let e=mn(r.storage,t);return I._fromStorage(e)}function Mu(r){if(r.ndim<2)throw new Error("Input must be at least 2-D");return ae(r,1)}function ku(r){if(r.ndim<2)throw new Error("Input must be at least 2-D");return ae(r,0)}function Cu(r,t=1,e=[0,1]){let n=pn(r.storage,t,e);return I._fromStorage(n)}function Vu(r,t,e){let n=yn(r.storage,t,e);return I._fromStorage(n)}function Pu(r,t,e=0){let n=dn(r.storage,t,e);return I._fromStorage(n,r.base??r)}function qu(...r){let t=r.map(o=>o.storage),n=bn(t).map((o,a)=>o===t[a]?r[a]:I._fromStorage(o));return n.length===1?n[0]:n}function Fu(...r){let t=r.map(o=>o.storage),n=Sn(t).map((o,a)=>o===t[a]?r[a]:I._fromStorage(o));return n.length===1?n[0]:n}function Ru(...r){let t=r.map(o=>o.storage),n=Nn(t).map((o,a)=>o===t[a]?r[a]:I._fromStorage(o));return n.length===1?n[0]:n}function ju(r,t){return gn(r.storage,t).map(n=>I._fromStorage(n,r.base??r))}function Lu(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=An(t);return I._fromStorage(e)}function Wu(r){return xa(r)}function Zu(r,t){let e=hn(r.storage,t);return I._fromStorage(e)}function Gu(r,t,e){let n=t instanceof I?t:F(t,r.dtype);if(e===void 0){let o=r.flatten(),a=n.flatten();return yr([o,a])}return yr([r,n],e)}function Hu(r,t,e){let n=r.dtype;if(e===void 0){let p=r.flatten(),d=(Array.isArray(t)?t:[t]).map(S=>S<0?p.size+S:S),g=[];for(let S=0;S<p.size;S++)d.includes(S)||g.push(S);let b=U(n),h=new b(g.length);for(let S=0;S<g.length;S++){let D=p.get([g[S]]);z(n)?h[S]=typeof D=="bigint"?D:BigInt(D):h[S]=D}let A=N.fromData(h,[g.length],n);return new I(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 u=o[i],s=Array.isArray(t)?t:[t],c=new Set(s.map(p=>p<0?u+p:p)),l=[],m=0;for(let p=0;p<=u;p++)(c.has(p)||p===u)&&(p>m&&l.push([m,p]),m=p+1);if(l.length===0){let p=[...o];return p[i]=0,rr(p,n)}let f=[];for(let[p,y]of l){let d=o.map(()=>":");d[i]=`${p}:${y}`,f.push(r.slice(...d))}return yr(f,i)}function Yu(r,t,e,n){let o=e instanceof I?e:F(e,r.dtype);if(n===void 0){let m=r.flatten(),f=o.flatten(),p=t<0?m.size+t:t;if(p<0||p>m.size)throw new Error(`index ${t} is out of bounds for array of size ${m.size}`);let y=p>0?m.slice(`0:${p}`):null,d=p<m.size?m.slice(`${p}:`):null,g=[];return y&&g.push(y),g.push(f),d&&g.push(d),yr(g)}let a=r.shape,i=a.length,u=n<0?i+n:n;if(u<0||u>=i)throw new Error(`axis ${n} is out of bounds for array of dimension ${i}`);let s=a[u],c=t<0?s+t:t;if(c<0||c>s)throw new Error(`index ${t} is out of bounds for axis ${n} with size ${s}`);let l=[];if(c>0){let m=a.map(()=>":");m[u]=`0:${c}`,l.push(r.slice(...m))}if(l.push(o),c<s){let m=a.map(()=>":");m[u]=`${c}:`,l.push(r.slice(...m))}return yr(l,u)}function Ju(r,t,e="constant",n=0){let o=r.shape,a=o.length,i=r.dtype,u;if(typeof t=="number"?u=o.map(()=>[t,t]):Array.isArray(t)&&typeof t[0]=="number"?u=o.map(()=>t):u=t,u.length!==a)throw new Error(`pad_width must have ${a} elements`);let s=o.map((d,g)=>d+u[g][0]+u[g][1]),c=s.reduce((d,g)=>d*g,1),l=U(i),m=new l(c),f=z(i);e==="constant"&&(f?m.fill(BigInt(n)):m.fill(n));let p=new Array(a).fill(0);for(let d=0;d<c;d++){let g=!0,b=[];for(let A=0;A<a;A++){let[S]=u[A],D=p[A]-S;if(D<0||D>=o[A]){g=!1;break}b.push(D)}let h;if(g)h=r.get(b);else if(e==="constant"){for(let A=a-1;A>=0&&(p[A]++,!(p[A]<s[A]));A--)p[A]=0;continue}else{let A=[];for(let S=0;S<a;S++){let[D]=u[S],x=p[S]-D,w=o[S];x<0?e==="edge"?x=0:e==="reflect"?(x=-x,x>=w&&(x=w-1)):e==="symmetric"?(x=-x-1,x>=w&&(x=w-1),x<0&&(x=0)):e==="wrap"&&(x=(x%w+w)%w):x>=w&&(e==="edge"?x=w-1:e==="reflect"?(x=2*w-x-2,x<0&&(x=0)):e==="symmetric"?(x=2*w-x-1,x<0&&(x=0)):e==="wrap"&&(x=x%w)),A.push(Math.max(0,Math.min(w-1,x)))}h=r.get(A)}f?m[d]=typeof h=="bigint"?h:BigInt(Number(h)):m[d]=Number(h);for(let A=a-1;A>=0&&(p[A]++,!(p[A]<s[A]));A--)p[A]=0}let y=N.fromData(m,s,i);return new I(y)}function Qu(r,t){let e=qt(r.storage,t);return I._fromStorage(e,r.base??r)}function Xu(...r){let t=r.map(n=>n.storage);return Do(t).map((n,o)=>I._fromStorage(n,r[o].base??r[o]))}function Ku(...r){return ft(...r)}function rc(r,t,e){return r.take(t,e)}function tc(r,t,e){r.put(t,e)}function ec(r,t){let e=t.map(o=>o.storage),n=zo(r.storage,e);return I._fromStorage(n)}function nc(r,t,e=!1){return Io(r.storage,t.storage,e)}function oc(r,t){return Je(r.storage,t.storage)}function ac(r,t){return I._fromStorage(Nt(r.storage,t))}function sc(r,t){return I._fromStorage(Dt(r.storage,t))}function ic(r,t,e=!1){let n=xt(r.storage,t,e);return typeof n=="number"?n:I._fromStorage(n)}function uc(r,t,e=!1){let n=wt(r.storage,t,e);return typeof n=="number"?n:I._fromStorage(n)}function cc(r,t,e,n=!1){let o=zt(r.storage,t,e,n);return typeof o=="number"?o:I._fromStorage(o)}function lc(r,t,e,n=!1){let o=fr(r.storage,t,e,n);return typeof o=="number"?o:I._fromStorage(o)}function fc(r,t,e,n=!1){let o=e?e.storage:void 0,a=qr(r.storage,t,o,n);return typeof a=="number"?a:I._fromStorage(a)}function mc(r,t,e=!1){let n=Fr(r.storage,t,e);return typeof n=="number"?n:I._fromStorage(n)}function pc(r,t,e=!1){let n=Rr(r.storage,t,e);return typeof n=="number"?n:I._fromStorage(n)}function yc(r,t,e=!1){let n=jr(r.storage,t,e);return typeof n=="number"?n:I._fromStorage(n)}function dc(r,t,e=0,n=!1){let o=Nr(r.storage,t,e,n);return typeof o=="number"?o:I._fromStorage(o)}function gc(r,t,e=0,n=!1){let o=It(r.storage,t,e,n);return typeof o=="number"?o:I._fromStorage(o)}function Ac(r,t,e=!1){let n=Lr(r.storage,t,e);return typeof n=="number"?n:I._fromStorage(n)}function hc(r,t,e=!1){let n=Wr(r.storage,t,e);return typeof n=="number"?n:I._fromStorage(n)}function bc(r,t){let e=Zr(r.storage,t);return typeof e=="number"?e:I._fromStorage(e)}function Sc(r,t){let e=Gr(r.storage,t);return typeof e=="number"?e:I._fromStorage(e)}function Nc(r,t){return I._fromStorage(_t(r.storage,t))}function Dc(r,t){return I._fromStorage(Bt(r.storage,t))}function xc(r,t,e=!1){let n=Hr(r.storage,t,e);return typeof n=="number"?n:I._fromStorage(n)}function wc(r){return r.cbrt()}function zc(r){return r.fabs()}function Ic(r,t){return r.divmod(t)}function _c(r){return r.square()}function Bc(r,t){return r.remainder(t)}function vc(r,t){return r.heaviside(t)}function Ec(r,t){return r.bitwise_and(t)}function Oc(r,t){return r.bitwise_or(t)}function Tc(r,t){return r.bitwise_xor(t)}function Uc(r){return r.bitwise_not()}function $c(r){return r.invert()}function Mc(r,t){return r.left_shift(t)}function kc(r,t){return r.right_shift(t)}function Cc(r,t=-1,e="big"){let n=Jo(r.storage,t,e);return I._fromStorage(n)}function Vc(r,t=-1,e=-1,n="big"){let o=Qo(r.storage,t,e,n);return I._fromStorage(o)}function Pc(r,...t){let e=t.map(o=>o.storage),n=vn(r,...e);return typeof n=="number"||typeof n=="bigint"?n:I._fromStorage(n)}function Fc(r,t,e){return I._fromStorage(_o(r.storage,t.storage,e))}function Rc(r,t,e,n){Bo(r.storage,t.storage,e.storage,n)}function jc(r,t,e){let n=e instanceof I?e.storage:e;vo(r.storage,t.storage,n)}function Lc(r,t,e){return I._fromStorage(Eo(r.storage,t.storage,e))}function Wc(r,t,e=0){let n=r.map(a=>a.storage),o=t.map(a=>a.storage);return I._fromStorage(Oo(n,o,e))}function Zc(r,t,e){To(r.storage,t.storage,e.storage)}function Gc(r,t=2){return Ft(r,t).map(n=>I._fromStorage(n))}function Hc(r){return Uo(r.storage).map(e=>I._fromStorage(e))}function Yc(r,t=0,e){return Rt(r,t,e).map(o=>I._fromStorage(o))}function Jc(r,t=0){return $o(r.storage,t).map(n=>I._fromStorage(n))}function Qc(r,t=0,e){return jt(r,t,e).map(o=>I._fromStorage(o))}function Xc(r,t=0){return Mo(r.storage,t).map(n=>I._fromStorage(n))}function Kc(r,t,e=0){return ko(r,(a,i)=>t(a,i).storage,e).map(a=>I._fromStorage(a))}function rl(r,t="int32"){return I._fromStorage(Co(r,t))}function tl(...r){return Vo(...r.map(e=>e.storage)).map(e=>I._fromStorage(e))}function el(r,t,e="raise"){let n=r.map(o=>o.storage);return I._fromStorage(Po(n,t,e))}function nl(r,t,e="C"){let n=r instanceof I?r.storage:r;return qo(n,t,e).map(a=>I._fromStorage(a))}function ol(r,t=-1){return I._fromStorage(Wt(r.storage,t))}function al(r,t=-1){return I._fromStorage(Zt(r.storage,t))}function sl(r){let t=r.map(e=>e.storage);return I._fromStorage(Ko(t))}function il(r,t,e=-1){return I._fromStorage(Gt(r.storage,t,e))}function ul(r,t,e=-1){return I._fromStorage(Ht(r.storage,t,e))}function cl(r){return I._fromStorage(ra(r.storage))}function ll(r){return Xr(r.storage).map(e=>I._fromStorage(e))}function fl(r){return I._fromStorage(ta(r.storage))}function ml(r,t,e){let n=ea(r.storage,t?.storage,e?.storage);return Array.isArray(n)?n.map(o=>I._fromStorage(o)):I._fromStorage(n)}function pl(r,t,e="left"){return I._fromStorage(Yt(r.storage,t.storage,e))}function yl(r,t){return I._fromStorage(na(r.storage,t.storage))}function dl(r,t){let e=Jt(r.storage,t);return typeof e=="number"?e:I._fromStorage(e)}function wa(r,t=0){return I._fromStorage(Qt(r.storage,t))}function gl(r){return I._fromStorage(Xt(r.storage))}function Al(r){return I._fromStorage(Kt(r.storage))}function hl(r){return I._fromStorage(re(r.storage))}function bl(r){return I._fromStorage(te(r.storage))}function Sl(r){return I._fromStorage(ee(r.storage))}function Nl(r,t=!1,e=!1,n=!1){let o=K(r.storage,t,e,n);if(o instanceof N)return I._fromStorage(o);let a={values:I._fromStorage(o.values)};return o.indices&&(a.indices=I._fromStorage(o.indices)),o.inverse&&(a.inverse=I._fromStorage(o.inverse)),o.counts&&(a.counts=I._fromStorage(o.counts)),a}function Dl(r,t){return I._fromStorage(ia(r.storage,t.storage))}function xl(r,t){return I._fromStorage(ua(r.storage,t.storage))}function wl(r,t){return I._fromStorage(ne(r.storage,t.storage))}function zl(r,t){return I._fromStorage(ca(r.storage,t.storage))}function Il(r,t){return I._fromStorage(la(r.storage,t.storage))}function _l(r,t){return I._fromStorage(fa(r.storage,t.storage))}function Bl(r,t=1,e=-1){return I._fromStorage(oe(r.storage,t,e))}function vl(r,t=null,e=null){return I._fromStorage(pa(r.storage,t,e))}function El(r,t=1,e=null){let n=ya(r.storage,t,e);return Array.isArray(n)?n.map(o=>I._fromStorage(o)):I._fromStorage(n)}function Ol(r,t,e=-1,n=-1,o=-1){return I._fromStorage(da(r.storage,t.storage,e,n,o))}var I,qc,rt=k(()=>{"use strict";xe();j();R();Re();Qe();Ke();Ot();Ln();eo();po();No();Fo();Xo();oa();sa();ma();ga();I=class r{constructor(t,e){this._storage=t,this._base=e}get storage(){return this._storage}static _fromStorage(t,e){return new r(t,e)}get shape(){return this._storage.shape}get ndim(){return this._storage.ndim}get size(){return this._storage.size}get dtype(){return this._storage.dtype}get data(){return this._storage.data}get strides(){return this._storage.strides}get flags(){return{C_CONTIGUOUS:this._storage.isCContiguous,F_CONTIGUOUS:this._storage.isFContiguous,OWNDATA:this._base===void 0}}get base(){return this._base??null}get(t){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let e=t.map((n,o)=>{let a=n;if(a<0&&(a=this.shape[o]+a),a<0||a>=this.shape[o])throw new Error(`Index ${n} is out of bounds for axis ${o} with size ${this.shape[o]}`);return a});return this._storage.get(...e)}set(t,e){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let n=t.map((i,u)=>{let s=i;if(s<0&&(s=this.shape[u]+s),s<0||s>=this.shape[u])throw new Error(`Index ${i} is out of bounds for axis ${u} with size ${this.shape[u]}`);return s}),o=this.dtype,a;z(o)?a=typeof e=="bigint"?e:BigInt(Math.round(e)):o==="bool"?a=e?1:0:a=Number(e),this._storage.set(n,a)}copy(){return new r(this._storage.copy())}astype(t,e=!0){let n=this.dtype;if(n===t&&!e)return this;if(n===t&&e)return this.copy();let o=Array.from(this.shape),a=this.size,i=U(t);if(!i)throw new Error(`Cannot convert to dtype ${t}`);let u=new i(a),s=this.data;if(z(n)&&!z(t)){let l=s;if(t==="bool")for(let m=0;m<a;m++)u[m]=l[m]!==BigInt(0)?1:0;else for(let m=0;m<a;m++)u[m]=Number(l[m])}else if(!z(n)&&z(t)){let l=s;for(let m=0;m<a;m++)u[m]=BigInt(Math.round(Number(l[m])))}else if(t==="bool"){let l=s;for(let m=0;m<a;m++)u[m]=l[m]!==0?1:0}else if(n==="bool"&&!z(t)){let l=s;for(let m=0;m<a;m++)u[m]=l[m]}else if(!z(n)&&!z(t)){let l=s;for(let m=0;m<a;m++)u[m]=l[m]}else{let l=s;for(let m=0;m<a;m++)u[m]=l[m]}let c=N.fromData(u,o,t);return new r(c)}add(t){let e=typeof t=="number"?t:t._storage,n=_e(this._storage,e);return r._fromStorage(n)}subtract(t){let e=typeof t=="number"?t:t._storage,n=Be(this._storage,e);return r._fromStorage(n)}multiply(t){let e=typeof t=="number"?t:t._storage,n=ve(this._storage,e);return r._fromStorage(n)}divide(t){let e=typeof t=="number"?t:t._storage,n=Ee(this._storage,e);return r._fromStorage(n)}mod(t){let e=typeof t=="number"?t:t._storage,n=kr(this._storage,e);return r._fromStorage(n)}floor_divide(t){let e=typeof t=="number"?t:t._storage,n=lt(this._storage,e);return r._fromStorage(n)}positive(){let t=$e(this._storage);return r._fromStorage(t)}reciprocal(){let t=Me(this._storage);return r._fromStorage(t)}sqrt(){let t=Wn(this._storage);return r._fromStorage(t)}power(t){let e=typeof t=="number"?t:t._storage,n=Zn(this._storage,e);return r._fromStorage(n)}exp(){let t=Gn(this._storage);return r._fromStorage(t)}exp2(){let t=Hn(this._storage);return r._fromStorage(t)}expm1(){let t=Yn(this._storage);return r._fromStorage(t)}log(){let t=Jn(this._storage);return r._fromStorage(t)}log2(){let t=Qn(this._storage);return r._fromStorage(t)}log10(){let t=Xn(this._storage);return r._fromStorage(t)}log1p(){let t=Kn(this._storage);return r._fromStorage(t)}logaddexp(t){let e=typeof t=="number"?t:t._storage,n=ro(this._storage,e);return r._fromStorage(n)}logaddexp2(t){let e=typeof t=="number"?t:t._storage,n=to(this._storage,e);return r._fromStorage(n)}absolute(){let t=Oe(this._storage);return r._fromStorage(t)}negative(){let t=Te(this._storage);return r._fromStorage(t)}sign(){let t=Ue(this._storage);return r._fromStorage(t)}around(t=0){let e=Qt(this._storage,t);return r._fromStorage(e)}round(t=0){return this.around(t)}ceil(){let t=Xt(this._storage);return r._fromStorage(t)}fix(){let t=Kt(this._storage);return r._fromStorage(t)}floor(){let t=re(this._storage);return r._fromStorage(t)}rint(){let t=te(this._storage);return r._fromStorage(t)}trunc(){let t=ee(this._storage);return r._fromStorage(t)}sin(){let t=no(this._storage);return r._fromStorage(t)}cos(){let t=oo(this._storage);return r._fromStorage(t)}tan(){let t=ao(this._storage);return r._fromStorage(t)}arcsin(){let t=so(this._storage);return r._fromStorage(t)}arccos(){let t=io(this._storage);return r._fromStorage(t)}arctan(){let t=uo(this._storage);return r._fromStorage(t)}arctan2(t){let e=typeof t=="number"?t:t._storage,n=co(this._storage,e);return r._fromStorage(n)}hypot(t){let e=typeof t=="number"?t:t._storage,n=lo(this._storage,e);return r._fromStorage(n)}degrees(){let t=fo(this._storage);return r._fromStorage(t)}radians(){let t=mo(this._storage);return r._fromStorage(t)}sinh(){let t=yo(this._storage);return r._fromStorage(t)}cosh(){let t=go(this._storage);return r._fromStorage(t)}tanh(){let t=Ao(this._storage);return r._fromStorage(t)}arcsinh(){let t=ho(this._storage);return r._fromStorage(t)}arccosh(){let t=bo(this._storage);return r._fromStorage(t)}arctanh(){let t=So(this._storage);return r._fromStorage(t)}greater(t){let e=typeof t=="number"?t:t._storage,n=je(this._storage,e);return r._fromStorage(n)}greater_equal(t){let e=typeof t=="number"?t:t._storage,n=Le(this._storage,e);return r._fromStorage(n)}less(t){let e=typeof t=="number"?t:t._storage,n=We(this._storage,e);return r._fromStorage(n)}less_equal(t){let e=typeof t=="number"?t:t._storage,n=Ze(this._storage,e);return r._fromStorage(n)}equal(t){let e=typeof t=="number"?t:t._storage,n=Ge(this._storage,e);return r._fromStorage(n)}not_equal(t){let e=typeof t=="number"?t:t._storage,n=He(this._storage,e);return r._fromStorage(n)}isclose(t,e=1e-5,n=1e-8){let o=typeof t=="number"?t:t._storage,a=pt(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 Ye(this._storage,o,e,n)}bitwise_and(t){let e=typeof t=="number"?t:t._storage,n=Lo(this._storage,e);return r._fromStorage(n)}bitwise_or(t){let e=typeof t=="number"?t:t._storage,n=Wo(this._storage,e);return r._fromStorage(n)}bitwise_xor(t){let e=typeof t=="number"?t:t._storage,n=Zo(this._storage,e);return r._fromStorage(n)}bitwise_not(){let t=Lt(this._storage);return r._fromStorage(t)}invert(){let t=Go(this._storage);return r._fromStorage(t)}left_shift(t){let e=typeof t=="number"?t:t._storage,n=Ho(this._storage,e);return r._fromStorage(n)}right_shift(t){let e=typeof t=="number"?t:t._storage,n=Yo(this._storage,e);return r._fromStorage(n)}sum(t,e=!1){let n=Sr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}mean(t,e=!1){let n=Cr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}max(t,e=!1){let n=Vr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}min(t,e=!1){let n=Pr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}prod(t,e=!1){let n=dt(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}argmin(t){let e=gt(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}argmax(t){let e=At(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}var(t,e=0,n=!1){let o=ht(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}std(t,e=0,n=!1){let o=Xe(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}all(t,e=!1){let n=bt(this._storage,t,e);return typeof n=="boolean"?n:r._fromStorage(n)}any(t,e=!1){let n=St(this._storage,t,e);return typeof n=="boolean"?n:r._fromStorage(n)}cumsum(t){return r._fromStorage(Nt(this._storage,t))}cumprod(t){return r._fromStorage(Dt(this._storage,t))}ptp(t,e=!1){let n=xt(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}median(t,e=!1){let n=wt(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}percentile(t,e,n=!1){let o=zt(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}quantile(t,e,n=!1){let o=fr(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}average(t,e){let n=qr(this._storage,e,t?.storage);return typeof n=="number"?n:r._fromStorage(n)}nansum(t,e=!1){let n=Fr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}nanprod(t,e=!1){let n=Rr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}nanmean(t,e=!1){let n=jr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}nanvar(t,e=0,n=!1){let o=Nr(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}nanstd(t,e=0,n=!1){let o=It(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}nanmin(t,e=!1){let n=Lr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}nanmax(t,e=!1){let n=Wr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}nanargmin(t){let e=Zr(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}nanargmax(t){let e=Gr(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}nancumsum(t){return r._fromStorage(_t(this._storage,t))}nancumprod(t){return r._fromStorage(Bt(this._storage,t))}nanmedian(t,e=!1){let n=Hr(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}sort(t=-1){return r._fromStorage(Wt(this._storage,t))}argsort(t=-1){return r._fromStorage(Zt(this._storage,t))}partition(t,e=-1){return r._fromStorage(Gt(this._storage,t,e))}argpartition(t,e=-1){return r._fromStorage(Ht(this._storage,t,e))}nonzero(){return Xr(this._storage).map(e=>r._fromStorage(e))}searchsorted(t,e="left"){return r._fromStorage(Yt(this._storage,t._storage,e))}diff(t=1,e=-1){return r._fromStorage(oe(this._storage,t,e))}reshape(...t){let e=t.length===1&&Array.isArray(t[0])?t[0]:t,n=W(this._storage,e),a=n.data===this.data?this._base??this:void 0;return r._fromStorage(n,a)}flatten(){let t=Yr(this._storage);return r._fromStorage(t)}ravel(){let t=mr(this._storage),n=t.data===this.data?this._base??this:void 0;return r._fromStorage(t,n)}transpose(t){let e=xr(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}squeeze(t){let e=rn(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}expand_dims(t){let e=Dr(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}swapaxes(t,e){let n=tn(this._storage,t,e),o=this._base??this;return r._fromStorage(n,o)}moveaxis(t,e){let n=vt(this._storage,t,e),o=this._base??this;return r._fromStorage(n,o)}repeat(t,e){let n=fn(this._storage,t,e);return r._fromStorage(n)}take(t,e){let n=xo(this._storage,t,e);return r._fromStorage(n)}put(t,e){let n=e instanceof r?e._storage:e;wo(this._storage,t,n)}matmul(t){let e=J(this._storage,t._storage);return r._fromStorage(e)}dot(t){let e=Ut(this._storage,t._storage);return typeof e=="number"||typeof e=="bigint"?e:r._fromStorage(e)}trace(){return zn(this._storage)}inner(t){let e=In(this._storage,t._storage);return typeof e=="number"||typeof e=="bigint"?e:r._fromStorage(e)}outer(t){let e=$t(this._storage,t._storage);return r._fromStorage(e)}tensordot(t,e=2){let n=_n(this._storage,t._storage,e);return typeof n=="number"||typeof n=="bigint"?n:r._fromStorage(n)}cbrt(){let t=ke(this._storage);return r._fromStorage(t)}fabs(){let t=Ce(this._storage);return r._fromStorage(t)}divmod(t){let e=typeof t=="number"?t:t._storage,[n,o]=Ve(this._storage,e);return[r._fromStorage(n),r._fromStorage(o)]}square(){let t=Pe(this._storage);return r._fromStorage(t)}remainder(t){let e=typeof t=="number"?t:t._storage,n=qe(this._storage,e);return r._fromStorage(n)}heaviside(t){let e=typeof t=="number"?t:t._storage,n=Fe(this._storage,e);return r._fromStorage(n)}slice(...t){if(t.length===0)return this;if(t.length>this.ndim)throw new Error(`Too many indices for array: array is ${this.ndim}-dimensional, but ${t.length} were indexed`);let e=t.map((s,c)=>{let l=Ne(s);return De(l,this.shape[c])});for(;e.length<this.ndim;)e.push({start:0,stop:this.shape[e.length],step:1,isIndex:!1});let n=[],o=[],a=this._storage.offset;for(let s=0;s<e.length;s++){let c=e[s],l=this._storage.strides[s];if(a+=c.start*l,!c.isIndex){let m;c.step>0?m=Math.max(0,Math.ceil((c.stop-c.start)/c.step)):m=Math.max(0,Math.ceil((c.start-c.stop)/Math.abs(c.step))),n.push(m),o.push(l*c.step)}}let i=N.fromData(this._storage.data,n,this._storage.dtype,o,a),u=this._base??this;return new r(i,u)}row(t){if(this.ndim<2)throw new Error("row() requires at least 2 dimensions");return this.slice(String(t),":")}col(t){if(this.ndim<2)throw new Error("col() requires at least 2 dimensions");return this.slice(":",String(t))}rows(t,e){if(this.ndim<2)throw new Error("rows() requires at least 2 dimensions");return this.slice(`${t}:${e}`,":")}cols(t,e){if(this.ndim<2)throw new Error("cols() requires at least 2 dimensions");return this.slice(":",`${t}:${e}`)}toString(){return`NDArray(shape=${JSON.stringify(this.shape)}, dtype=${this.dtype})`}toArray(){if(this.ndim===0)return this._storage.iget(0);let t=this.shape,e=t.length,n=(o,a)=>{if(a===e)return this._storage.get(...o);let i=[];for(let u=0;u<t[a];u++)o[a]=u,i.push(n(o,a+1));return i};return n(new Array(e),0)}};qc={cross:(r,t,e=-1,n=-1,o=-1,a)=>{let i=On(r.storage,t.storage,e,n,o,a);return typeof i=="number"?i:I._fromStorage(i)},norm:(r,t=null,e=null,n=!1)=>{let o=Tn(r.storage,t,e,n);return typeof o=="number"?o:I._fromStorage(o)},vector_norm:(r,t=2,e,n=!1)=>{let o=pr(r.storage,t,e,n);return typeof o=="number"?o:I._fromStorage(o)},matrix_norm:(r,t="fro",e=!1)=>{let n=ur(r.storage,t,e);return typeof n=="number"?n:I._fromStorage(n)},qr:(r,t="reduced")=>{let e=Mt(r.storage,t);return e instanceof N?I._fromStorage(e):"q"in e&&"r"in e?{q:I._fromStorage(e.q),r:I._fromStorage(e.r)}:{h:I._fromStorage(e.h),tau:I._fromStorage(e.tau)}},cholesky:(r,t=!1)=>I._fromStorage(Un(r.storage,t)),svd:(r,t=!0,e=!0)=>{let n=$n(r.storage,t,e);return"u"in n?{u:I._fromStorage(n.u),s:I._fromStorage(n.s),vt:I._fromStorage(n.vt)}:I._fromStorage(n)},det:r=>Mn(r.storage),inv:r=>I._fromStorage(Jr(r.storage)),solve:(r,t)=>I._fromStorage(kn(r.storage,t.storage)),lstsq:(r,t,e=null)=>{let n=Cn(r.storage,t.storage,e);return{x:I._fromStorage(n.x),residuals:I._fromStorage(n.residuals),rank:n.rank,s:I._fromStorage(n.s)}},cond:(r,t=2)=>Vn(r.storage,t),matrix_rank:(r,t)=>Pn(r.storage,t),matrix_power:(r,t)=>I._fromStorage(qn(r.storage,t)),pinv:(r,t=1e-15)=>I._fromStorage(Fn(r.storage,t)),eig:r=>{let t=Vt(r.storage);return{w:I._fromStorage(t.w),v:I._fromStorage(t.v)}},eigh:(r,t="L")=>{let e=Pt(r.storage,t);return{w:I._fromStorage(e.w),v:I._fromStorage(e.v)}},eigvals:r=>I._fromStorage(Rn(r.storage)),eigvalsh:(r,t="L")=>I._fromStorage(jn(r.storage,t))}});function ie(){let r=new ArrayBuffer(2);return new DataView(r).setInt16(0,256,!0),new Int16Array(r)[0]===256}function Ia(r){if(r.startsWith("[")||r.startsWith("("))throw new tr(`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 za)throw new tr(`Unsupported dtype: ${za[n]} (${r}). Use the 'force' parameter to skip arrays with unsupported dtypes.`);let o=Tl[e];if(!o)throw new tr(`Unknown or unsupported dtype descriptor: ${r}. Supported types: ${se.join(", ")}. Use the 'force' parameter to skip arrays with unsupported dtypes.`);let a=ie(),i=t==="<"||t==="|"||t==="="&&a,u=t===">"||t==="="&&!a,s=parseInt(e.slice(1),10),c=s>1&&(u&&a||i&&!a);return{dtype:o,needsByteSwap:c,itemsize:s}}var Ir,se,Tl,tt,za,tr,Y,_r=k(()=>{"use strict";Ir=new Uint8Array([147,78,85,77,80,89]),se=["float64","float32","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"];Tl={f8:"float64",f4:"float32",i8:"int64",i4:"int32",i2:"int16",i1:"int8",u8:"uint64",u4:"uint32",u2:"uint16",u1:"uint8",b1:"bool"},tt={float64:"<f8",float32:"<f4",int64:"<i8",int32:"<i4",int16:"<i2",int8:"|i1",uint64:"<u8",uint32:"<u4",uint16:"<u2",uint8:"|u1",bool:"|b1"},za={c:"complex numbers",S:"byte strings",U:"Unicode strings",O:"Python objects",V:"structured arrays (void)",M:"datetime64",m:"timedelta64"};tr=class extends Error{constructor(t){super(t),this.name="UnsupportedDTypeError"}},Y=class extends Error{constructor(t){super(t),this.name="InvalidNpyError"}}});function cr(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=ue(t);return ce(t,e)}function ue(r){if(r.length<10)throw new Y("File too small to be a valid NPY file");for(let c=0;c<Ir.length;c++)if(r[c]!==Ir[c])throw new Y("Invalid NPY magic number");let t=r[6],e=r[7];if(t!==1&&t!==2&&t!==3)throw new Y(`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 Y("File truncated: header extends beyond file");let i=r.slice(o,a),u=new TextDecoder("utf-8").decode(i).trim(),s=Ul(u);return{version:{major:t,minor:e},header:s,dataOffset:a}}function ce(r,t){let{header:e,dataOffset:n}=t,{dtype:o,needsByteSwap:a,itemsize:i}=Ia(e.descr),u=e.shape.reduce((d,g)=>d*g,1),s=u*i,c=r.length-n;if(c<s)throw new Y(`File truncated: expected ${s} bytes of data, got ${c}`);let l=new ArrayBuffer(s);new Uint8Array(l).set(r.subarray(n,n+s));let f=$l(l,o,u,a,i),p=e.shape,y;if(e.fortran_order&&p.length>1){let d=[...p].reverse(),g=N.fromData(f,d,o);y=Ml(g,d),p=e.shape}else y=N.fromData(f,[...p],o);return new I(y)}function Ul(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 Y(`Failed to parse NPY header: ${r}`);let o=t[1],a=e[1]==="True",i=n[1].trim(),u;return i===""?u=[]:u=i.split(",").map(s=>s.trim()).filter(s=>s!=="").map(s=>{let c=parseInt(s,10);if(isNaN(c))throw new Y(`Invalid shape value: ${s}`);return c}),{descr:o,fortran_order:a,shape:u}}function $l(r,t,e,n,o){let a=U(t);if(!a)throw new Y(`Cannot create array for dtype: ${t}`);if(!n)return new a(r,0,e);let i=new Uint8Array(r),u=new Uint8Array(r.byteLength);for(let s=0;s<e;s++){let c=s*o;for(let l=0;l<o;l++)u[c+l]=i[c+o-1-l]}return new a(u.buffer,0,e)}function Ml(r,t){let e=t.length,n=r.size,o=r.dtype,a=U(o);if(!a)throw new Y(`Cannot create array for dtype: ${o}`);let i=new a(n),u=[...t].reverse(),s=_a(t),c=_a(u),l=new Array(e).fill(0);for(let m=0;m<n;m++){let f=m;for(let y=0;y<e;y++){let d=s[y];l[y]=Math.floor(f/d),f=f%d}let p=0;for(let y=0;y<e;y++)p+=l[e-1-y]*c[y];z(o),i[p]=r.iget(m)}return N.fromData(i,u,o)}function _a(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 et=k(()=>{"use strict";rt();R();j();_r()});function ar(r){let t=r.shape,e=r.dtype,n=tt[e],o=t.length===0?"()":t.length===1?`(${t[0]},)`:`(${t.join(", ")})`,a=`{'descr': '${n}', 'fortran_order': False, 'shape': ${o}, }`,i=12,s=(64-(i+a.length+1)%64)%64;a=a+" ".repeat(s)+`
|
|
2
|
-
`;let c=new TextEncoder().encode(a),l=c.length,m=r.size,f=ze(e),p=m*f,y=i+l+p,d=new Uint8Array(y);d.set(Ir,0),d[6]=3,d[7]=0,d[8]=l&255,d[9]=l>>8&255,d[10]=l>>16&255,d[11]=l>>24&255,d.set(c,i);let g=i+l;return kl(r,d.subarray(g),f),d}function kl(r,t,e){let n=r.dtype,o=r.size,a=ie(),i=z(n),u=r._storage;if(u.isCContiguous&&u.offset===0&&a){let c=u.data,l=new Uint8Array(c.buffer,c.byteOffset,o*e);t.set(l)}else{let c=new DataView(t.buffer,t.byteOffset,t.byteLength);for(let l=0;l<o;l++){let m=u.iget(l),f=l*e;i?Cl(c,f,m,n==="uint64"):Vl(c,f,m,n)}}}function Cl(r,t,e,n){n?r.setBigUint64(t,e,!0):r.setBigInt64(t,e,!0)}function Vl(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 nt=k(()=>{"use strict";j();_r()});function le(r){let t=4294967295;for(let e=0;e<r.length;e++)t=Pl[(t^r[e])&255]^t>>>8;return(t^4294967295)>>>0}var Pl,fe=k(()=>{"use strict";Pl=(()=>{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 Ba(r){let t=Ea(r),e=new Map;for(let n of t){let o=await ql(n);e.set(n.name,o)}return e}function va(r){let t=Ea(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 Ea(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=new DataView(t.buffer,t.byteOffset,t.byteLength),n=[],o=-1;for(let c=t.length-22;c>=0;c--)if(e.getUint32(c,!0)===101010256){o=c;break}if(o===-1)throw new Error("Invalid ZIP file: end of central directory not found");let a=e.getUint32(o+16,!0),i=e.getUint16(o+10,!0),u=[],s=a;for(let c=0;c<i&&e.getUint32(s,!0)===33639248;c++){let m=e.getUint16(s+10,!0),f=e.getUint32(s+16,!0),p=e.getUint32(s+20,!0),y=e.getUint32(s+24,!0),d=e.getUint16(s+28,!0),g=e.getUint16(s+30,!0),b=e.getUint16(s+32,!0),h=e.getUint32(s+42,!0),A=t.slice(s+46,s+46+d),S=new TextDecoder("utf-8").decode(A);u.push({name:S,compressionMethod:m,crc32:f,compressedSize:p,uncompressedSize:y,localHeaderOffset:h}),s=s+46+d+g+b}for(let c of u){let l=c.localHeaderOffset;if(e.getUint32(l,!0)!==67324752)throw new Error(`Invalid local file header at offset ${l}`);let f=e.getUint16(l+26,!0),p=e.getUint16(l+28,!0),y=l+30+f+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 ql(r){if(r.compressionMethod===0)return r.compressedData;if(r.compressionMethod===8)return await Fl(r.compressedData);throw new Error(`Unsupported compression method: ${r.compressionMethod}`)}async function Fl(r){if(typeof DecompressionStream>"u")throw new Error("DecompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let t=new DecompressionStream("deflate-raw"),e=new Uint8Array(r.length);e.set(r);let n=t.writable.getWriter();n.write(e),n.close();let o=t.readable.getReader(),a=[];for(;;){let{done:c,value:l}=await o.read();if(c)break;a.push(l)}let i=a.reduce((c,l)=>c+l.length,0),u=new Uint8Array(i),s=0;for(let c of a)u.set(c,s),s+=c.length;return u}var Oa=k(()=>{"use strict";fe()});var Ua={};be(Ua,{loadNpz:()=>ye,loadNpzSync:()=>de,parseNpz:()=>gr,parseNpzSync:()=>ot});async function gr(r,t={}){let e=t.force??!1,n=await Ba(r);return Ta(n,e)}function ot(r,t={}){let e=t.force??!1,n=va(r);return Ta(n,e)}function Ta(r,t){let e=new Map,n=[],o=new Map;for(let[a,i]of r){if(!a.endsWith(".npy"))continue;let u=a.slice(0,-4);try{let s=cr(i);e.set(u,s)}catch(s){if(s instanceof tr&&t)n.push(u),o.set(u,s.message);else throw s}}return{arrays:e,skipped:n,errors:o}}async function ye(r,t={}){let e=await gr(r,t);return Object.fromEntries(e.arrays)}function de(r,t={}){let e=ot(r,t);return Object.fromEntries(e.arrays)}var at=k(()=>{"use strict";et();_r();Oa()});async function $a(r,t={}){let e=t.compress??!1,n=[];for(let[f,p]of r){let y=le(p),d,g;e?(d=await jl(p),d.length<p.length?g=8:(d=p,g=0)):(d=p,g=0),n.push({name:f,data:p,compressedData:d,crc:y,compressionMethod:g,offset:0})}let o=0;for(let f of n){let p=new TextEncoder().encode(f.name);o+=30+p.length+f.compressedData.length}let a=0;for(let f of n){let p=new TextEncoder().encode(f.name);a+=46+p.length}let u=o+a+22,s=new Uint8Array(u),c=new DataView(s.buffer),l=0;for(let f of n)f.offset=l,l=ka(s,c,l,f);let m=l;for(let f of n)l=Ca(s,c,l,f);return Va(c,l,n.length,a,m),s}function Ma(r){let t=[];for(let[l,m]of r){let f=le(m);t.push({name:l,data:m,compressedData:m,crc:f,compressionMethod:0,offset:0})}let e=0;for(let l of t){let m=new TextEncoder().encode(l.name);e+=30+m.length+l.compressedData.length}let n=0;for(let l of t){let m=new TextEncoder().encode(l.name);n+=46+m.length}let a=e+n+22,i=new Uint8Array(a),u=new DataView(i.buffer),s=0;for(let l of t)l.offset=s,s=ka(i,u,s,l);let c=s;for(let l of t)s=Ca(i,u,s,l);return Va(u,s,t.length,n,c),i}function ka(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 Ca(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 Va(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 jl(r){if(typeof CompressionStream>"u")throw new Error("CompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let t=new CompressionStream("deflate-raw"),e=new Uint8Array(r.length);e.set(r);let n=t.writable.getWriter();n.write(e),n.close();let o=t.readable.getReader(),a=[];for(;;){let{done:c,value:l}=await o.read();if(c)break;a.push(l)}let i=a.reduce((c,l)=>c+l.length,0),u=new Uint8Array(i),s=0;for(let c of a)u.set(c,s),s+=c.length;return u}var Pa=k(()=>{"use strict";fe()});var Fa={};be(Fa,{serializeNpz:()=>vr,serializeNpzSync:()=>ge});async function vr(r,t={}){let e=qa(r);return $a(e,{compress:t.compress??!1})}function ge(r){let t=qa(r);return Ma(t)}function qa(r){let t=new Map;if(Array.isArray(r)){for(let n=0;n<r.length;n++){let o=r[n],a=ar(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=ar(o),i=n.endsWith(".npy")?n:`${n}.npy`;t.set(i,a)}return t}var st=k(()=>{"use strict";nt();Pa()});et();nt();at();st();import{readFileSync as Ur,writeFileSync as Ae}from"node:fs";import{readFile as $r,writeFile as he}from"node:fs/promises";rt();function Ar(r,t={}){let{delimiter:e,comments:n="#",skiprows:o=0,usecols:a,max_rows:i,dtype:u="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 g=d.trim();return!(g===""||n&&g.startsWith(n))}),i!==void 0&&i>0&&(l=l.slice(0,i)),l.length===0)return F([],u);let m=[],f=new Set(s?Array.isArray(s)?s:[s]:[]),p=c!==void 0?c:u.includes("int")||u==="bool"?0:NaN;for(let d of l){let g;e===void 0?g=d.trim().split(/\s+/):g=d.split(e),a!==void 0&&(g=(Array.isArray(a)?a:[a]).map(A=>(A<0&&(A=g.length+A),g[A]??"")));let b=g.map(h=>{let A=h.trim();if(f.has(A)||A==="")return p;let S=parseFloat(A);return isNaN(S)?p:S});m.push(b)}let y=m[0]?.length??0;for(let d=1;d<m.length;d++)if(m[d].length!==y)throw new Error(`Inconsistent number of columns: row 0 has ${y} columns, row ${d} has ${m[d].length} columns`);return y===1?F(m.map(d=>d[0]),u):F(m,u)}function Er(r,t={}){let e={...t,missing_values:t.missing_values??["","nan","NaN","NA","N/A","-"],filling_values:t.filling_values??NaN};return Ar(r,e)}function Or(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(u=>{let s=parseFloat(u);return isNaN(s)?0:s});o.push(i)}return o.length===0?F([],e):o[0].length===1?F(o.map(i=>i[0]),e):F(o,e)}function Ra(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,u]=n,s=i!==void 0?parseInt(i,10):void 0,c;switch(u){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,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),u==="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 Tr(r,t={}){let{fmt:e="%.18e",delimiter:n=" ",newline:o=`
|
|
3
|
-
`,header:a,footer:i,comments:u="# "}=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 m of l)m.startsWith(u.trimEnd())?s.push(m):s.push(u+m)}let c=r.toArray();if(r.ndim===1)for(let l of c)s.push(Ra(l,e));else for(let l of c){let m=l.map(f=>Ra(f,e));s.push(m.join(n))}if(i!==void 0){let l=i.split(/\r?\n/);for(let m of l)m.startsWith(u.trimEnd())?s.push(m):s.push(u+m)}return s.join(o)+o}rt();et();nt();_r();at();st();var Im="0.9.0";async function Ll(r){let t=await $r(r);return cr(t)}function Wl(r){let t=Ur(r);return cr(t)}async function Zl(r,t){let e=ar(t);await he(r,e)}function Gl(r,t){let e=ar(t);Ae(r,e)}async function Hl(r,t={}){let e=await $r(r);return gr(e,t)}function Yl(r,t={}){let e=Ur(r),{parseNpzSync:n}=(at(),Se(Ua));return n(e,t)}async function ja(r,t,e={}){let n=await vr(t,e);await he(r,n)}function Cm(r,t){let{serializeNpzSync:e}=(st(),Se(Fa)),n=e(t);Ae(r,n)}async function Vm(r,t={}){if(r.endsWith(".npy")){if(t.allowNpy===!1)throw new Error("Loading .npy files is disabled (allowNpy: false)");return Ll(r)}else{if(r.endsWith(".npz"))return Hl(r,t);throw new Error(`Unknown file extension. Expected .npy or .npz, got: ${r}`)}}function Pm(r,t={}){if(r.endsWith(".npy")){if(t.allowNpy===!1)throw new Error("Loading .npy files is disabled (allowNpy: false)");return Wl(r)}else{if(r.endsWith(".npz"))return Yl(r,t);throw new Error(`Unknown file extension. Expected .npy or .npz, got: ${r}`)}}async function qm(r,t){if(!r.endsWith(".npy"))throw new Error(`save() is for .npy files. Use saveNpz() for .npz files. Got: ${r}`);return Zl(r,t)}function Fm(r,t){if(!r.endsWith(".npy"))throw new Error(`saveSync() is for .npy files. Use saveNpzSync() for .npz files. Got: ${r}`);return Gl(r,t)}async function Rm(r,t){return r.endsWith(".npz")||(r=r+".npz"),ja(r,t,{compress:!1})}async function jm(r,t){return r.endsWith(".npz")||(r=r+".npz"),ja(r,t,{compress:!0})}async function Lm(r,t={}){let e=await $r(r,{encoding:t.encoding??"utf-8"});return Ar(e,t)}function Wm(r,t={}){let e=Ur(r,{encoding:t.encoding??"utf-8"});return Ar(e,t)}async function Zm(r,t,e={}){let n=Tr(t,e);await he(r,n,"utf-8")}function Gm(r,t,e={}){let n=Tr(t,e);Ae(r,n,"utf-8")}async function Hm(r,t={}){let e=await $r(r,{encoding:t.encoding??"utf-8"});return Er(e,t)}function Ym(r,t={}){let e=Ur(r,{encoding:t.encoding??"utf-8"});return Er(e,t)}async function Jm(r,t,e="float64"){let n=await $r(r,{encoding:"utf-8"});return Or(n,t,e)}function Qm(r,t,e="float64"){let n=Ur(r,{encoding:"utf-8"});return Or(n,t,e)}export{tt as DTYPE_TO_DESCR,Y as InvalidNpyError,I as NDArray,se as SUPPORTED_DTYPES,tr as UnsupportedDTypeError,Im as __version__,Fi as absolute,Gu as append,ai as arange,su as arccos,hu as arccosh,au as arcsin,Au as arcsinh,iu as arctan,uu as arctan2,bu as arctanh,ul as argpartition,al as argsort,wa as around,F as array,nc as array_equal,oc as array_equiv,Iu as array_split,di as asanyarray,Kr as asarray,gi as ascontiguousarray,Ai as asfortranarray,qu as atleast_1d,Fu as atleast_2d,Ru as atleast_3d,fc as average,Ec as bitwise_and,Uc as bitwise_not,Oc as bitwise_or,Tc as bitwise_xor,Xu as broadcast_arrays,Ku as broadcast_shapes,Qu as broadcast_to,wc as cbrt,gl as ceil,ec as choose,Lu as column_stack,Lc as compress,yr as concatenate,li as copy,nu as cos,du as cosh,dl as count_nonzero,Ol as cross,sc as cumprod,ac as cumsum,mu as deg2rad,lu as degrees,Hu as delete,Da as diag,Gc as diag_indices,Hc as diag_indices_from,hi as diagflat,Ji as diagonal,Bl as diff,Ic as divmod,Hi as dot,ju as dsplit,wu as dstack,vl as ediff1d,Pc as einsum,Sa as empty,pi as empty_like,Ti as exp,Ui as exp2,$u as expand_dims,$i as expm1,yl as extract,ba as eye,zc as fabs,Al as fix,fl as flatnonzero,ae as flip,Mu as fliplr,ku as flipud,hl as floor,Wi as floor_divide,zi as frombuffer,Ii as fromfile,bi as fromfunction,_i as fromiter,Jm as fromregex,Qm as fromregexSync,Bi as fromstring,Na as full,yi as full_like,Hm as genfromtxt,Ym as genfromtxtSync,ui as geomspace,El as gradient,vc as heaviside,Bu as hsplit,xu as hstack,cu as hypot,ci as identity,Dl as in1d,rl as indices,Ki as inner,Yu as insert,xl as intersect1d,$c as invert,wl as isin,tl as ix_,Qi as kron,Mc as left_shift,sl as lexsort,qc as linalg,si as linspace,Vm as load,Ll as loadNpy,Wl as loadNpySync,ye as loadNpz,Hl as loadNpzFile,Yl as loadNpzFileSync,de as loadNpzSync,Pm as loadSync,Lm as loadtxt,Wm as loadtxtSync,Mi as log,Ci as log10,Vi as log1p,ki as log2,Pi as logaddexp,qi as logaddexp2,ii as logspace,Kc as mask_indices,uc as median,Si as meshgrid,Li as mod,Nu as moveaxis,Sc as nanargmax,bc as nanargmin,Dc as nancumprod,Nc as nancumsum,hc as nanmax,yc as nanmean,xc as nanmedian,Ac as nanmin,pc as nanprod,gc as nanstd,mc as nansum,dc as nanvar,Ri as negative,ll as nonzero,Aa as ones,mi as ones_like,ru as outer,Cc as packbits,Ju as pad,cr as parseNpy,ce as parseNpyData,ue as parseNpyHeader,gr as parseNpz,ot as parseNpzSync,Ar as parseTxt,il as partition,cc as percentile,Zc as place,Zi as positive,Oi as power,ic as ptp,tc as put,Rc as put_along_axis,jc as putmask,lc as quantile,pu as rad2deg,fu as radians,Ou as ravel,el as ravel_multi_index,Gi as reciprocal,Bc as remainder,Eu as repeat,Tu as reshape,Zu as resize,kc as right_shift,bl as rint,Vu as roll,Pu as rollaxis,Cu as rot90,wa as round,Wu as row_stack,qm as save,Zl as saveNpy,Gl as saveNpySync,ja as saveNpz,Cm as saveNpzSync,Fm as saveSync,Zm as savetxt,Gm as savetxtSync,Rm as savez,jm as savez_compressed,pl as searchsorted,Wc as select,ar as serializeNpy,vr as serializeNpz,ge as serializeNpzSync,Tr as serializeTxt,zl as setdiff1d,Il as setxor1d,ji as sign,eu as sin,yu as sinh,ol as sort,cl as sort_complex,zu as split,Ei as sqrt,_c as square,Uu as squeeze,Du as stack,Su as swapaxes,rc as take,Fc as take_along_axis,ou as tan,gu as tanh,tu as tensordot,vu as tile,Yi as trace,Xi as transpose,Ni as tri,Di as tril,Yc as tril_indices,Jc as tril_indices_from,xi as triu,Qc as triu_indices,Xc as triu_indices_from,Sl as trunc,_l as union1d,Nl as unique,Vc as unpackbits,nl as unravel_index,wi as vander,_u as vsplit,xa as vstack,ml as where,rr as zeros,fi as zeros_like};
|
|
1
|
+
var ae=Object.defineProperty;var vu=Object.getOwnPropertyDescriptor;var Tu=Object.getOwnPropertyNames;var Eu=Object.prototype.hasOwnProperty;var W=(r,t)=>()=>(r&&(t=r(r=0)),t);var Fn=(r,t)=>{for(var e in t)ae(r,e,{get:t[e],enumerable:!0})},Ou=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Tu(t))!Eu.call(r,o)&&o!==e&&ae(r,o,{get:()=>t[o],enumerable:!(n=vu(t,o))||n.enumerable});return r};var Mn=r=>Ou(ae({},"__esModule",{value:!0}),r);function Bn(r){if(!r.includes(":")){if(r.includes("."))throw new Error(`Invalid slice index: "${r}" (must be integer)`);let a=parseInt(r,10);if(isNaN(a))throw new Error(`Invalid slice index: "${r}"`);return{start:a,stop:null,step:1,isIndex:!0}}let t=r.split(":");if(t.length>3)throw new Error(`Invalid slice notation: "${r}" (too many colons)`);let e=t[0]===""?null:parseInt(t[0],10),n=t[1]===""||t[1]===void 0?null:parseInt(t[1],10),o=t[2]===""||t[2]===void 0?1:parseInt(t[2],10);if(e!==null&&isNaN(e))throw new Error(`Invalid start index in slice: "${r}"`);if(n!==null&&isNaN(n))throw new Error(`Invalid stop index in slice: "${r}"`);if(isNaN(o))throw new Error(`Invalid step in slice: "${r}"`);if(o===0)throw new Error("Slice step cannot be zero");return{start:e,stop:n,step:o,isIndex:!1}}function vn(r,t){let{start:e,stop:n}=r,{step:o,isIndex:a}=r;if(a){if(e===null)throw new Error("Index cannot be null");let u=e<0?t+e:e;if(u<0||u>=t)throw new Error(`Index ${e} is out of bounds for size ${t}`);return{start:u,stop:u+1,step:1,isIndex:!0}}return o>0?(e===null&&(e=0),n===null&&(n=t)):(e===null&&(e=t-1),n===null&&(n=-t-1)),e<0&&(e=t+e),n<0&&(n=t+n),e=Math.max(0,Math.min(e,t)),n=Math.max(-1,Math.min(n,t)),{start:e,stop:n,step:o,isIndex:!1}}var Tn=W(()=>{"use strict"});function j(r){switch(r){case"float64":return Float64Array;case"float32":return Float32Array;case"complex128":return Float64Array;case"complex64":return Float32Array;case"int64":return BigInt64Array;case"int32":return Int32Array;case"int16":return Int16Array;case"int8":return Int8Array;case"uint64":return BigUint64Array;case"uint32":return Uint32Array;case"uint16":return Uint16Array;case"uint8":return Uint8Array;case"bool":return Uint8Array;default:throw new Error(`Unknown dtype: ${r}`)}}function zt(r){switch(r){case"complex128":return 16;case"float64":case"int64":case"uint64":case"complex64":return 8;case"float32":case"int32":case"uint32":return 4;case"int16":case"uint16":return 2;case"int8":case"uint8":case"bool":return 1;default:throw new Error(`Unknown dtype: ${r}`)}}function On(r){return r==="int64"||r==="int32"||r==="int16"||r==="int8"||r==="uint64"||r==="uint32"||r==="uint16"||r==="uint8"}function En(r){return r==="float64"||r==="float32"}function B(r){return r==="int64"||r==="uint64"}function M(r){return r==="complex64"||r==="complex128"}function q(r,t,e){if(M(r)){let n=e?` ${e}`:"";throw new TypeError(`ufunc '${t}' not supported for complex dtype '${r}'.${n}`)}}function Kr(r){if(r==="complex128")return"float64";if(r==="complex64")return"float32";throw new Error(`${r} is not a complex dtype`)}function Cn(r){return typeof r=="object"&&r!==null&&"re"in r&&"im"in r}function Z(r,t){if(r===t)return r;if(r==="bool")return t;if(t==="bool")return r;if(M(r)||M(t)){if(M(r)&&M(t))return r==="complex128"||t==="complex128"?"complex128":"complex64";let c=M(r)?r:t,l=M(r)?t:r;return c==="complex128"||l==="float64"||l==="int64"||l==="uint64"||l==="int32"||l==="uint32"?"complex128":"complex64"}if(En(r)||En(t)){if(r==="float64"||t==="float64")return"float64";if(r==="float32"){let c=t;return c==="int32"||c==="int64"||c==="uint32"||c==="uint64"?"float64":"float32"}if(t==="float32"){let c=r;return c==="int32"||c==="int64"||c==="uint32"||c==="uint64"?"float64":"float32"}return"float32"}let e=r.startsWith("int"),n=t.startsWith("int"),o=r.startsWith("uint"),a=t.startsWith("uint"),u=c=>c.includes("64")?64:c.includes("32")?32:c.includes("16")?16:c.includes("8")?8:0,s=u(r),i=u(t);if(r==="int64"&&t==="uint64"||r==="uint64"&&t==="int64")return"float64";if(e&&a&&s===i){if(s===8)return"int16";if(s===16)return"int32";if(s===32)return"int64"}if(o&&n&&s===i){if(i===8)return"int16";if(i===16)return"int32";if(i===32)return"int64"}if(e&&n||o&&a){let c=Math.max(s,i);return e?c===64?"int64":c===32?"int32":c===16?"int16":"int8":c===64?"uint64":c===32?"uint32":c===16?"uint16":"uint8"}return e&&a?s>i?r:i===8?"int16":i===16?"int32":i===32?"int64":"float64":o&&n?i>s?t:s===8?"int16":s===16?"int32":s===32?"int64":"float64":"float64"}var rr,J=W(()=>{"use strict";rr="float64"});var O,xr=W(()=>{"use strict";O=class r{constructor(t,e=0){this.re=t,this.im=e}abs(){return Math.sqrt(this.re*this.re+this.im*this.im)}angle(){return Math.atan2(this.im,this.re)}conj(){return new r(this.re,-this.im)}add(t){return typeof t=="number"?new r(this.re+t,this.im):new r(this.re+t.re,this.im+t.im)}sub(t){return typeof t=="number"?new r(this.re-t,this.im):new r(this.re-t.re,this.im-t.im)}mul(t){return typeof t=="number"?new r(this.re*t,this.im*t):new r(this.re*t.re-this.im*t.im,this.re*t.im+this.im*t.re)}div(t){if(typeof t=="number")return new r(this.re/t,this.im/t);let e=t.re*t.re+t.im*t.im;return new r((this.re*t.re+this.im*t.im)/e,(this.im*t.re-this.re*t.im)/e)}neg(){return new r(-this.re,-this.im)}equals(t){return this.re===t.re&&this.im===t.im}toString(){return this.im===0?`(${this.re}+0j)`:this.im<0?`(${this.re}${this.im}j)`:`(${this.re}+${this.im}j)`}static from(t){if(t instanceof r)return t;if(typeof t=="number")return new r(t,0);if(Array.isArray(t))return new r(t[0]??0,t[1]??0);if(typeof t=="object"&&t!==null&&"re"in t)return new r(t.re??0,t.im??0);throw new Error(`Cannot convert ${t} to Complex`)}static isComplex(t){return t instanceof r||typeof t=="object"&&t!==null&&"re"in t&&"im"in t}}});function ur(r){let t=new Array(r.length),e=1;for(let n=r.length-1;n>=0;n--)t[n]=e,e*=r[n];return t}var D,X=W(()=>{"use strict";J();xr();D=class r{constructor(t,e,n,o,a){this._data=t,this._shape=e,this._strides=n,this._offset=o,this._dtype=a}get shape(){return this._shape}get ndim(){return this._shape.length}get size(){return this._shape.reduce((t,e)=>t*e,1)}get dtype(){return this._dtype}get data(){return this._data}get strides(){return this._strides}get offset(){return this._offset}get isCContiguous(){let t=this._shape,e=this._strides,n=t.length;if(n===0)return!0;if(n===1)return e[0]===1;let o=1;for(let a=n-1;a>=0;a--){if(e[a]!==o)return!1;o*=t[a]}return!0}get isFContiguous(){let t=this._shape,e=this._strides,n=t.length;if(n===0)return!0;if(n===1)return e[0]===1;let o=1;for(let a=0;a<n;a++){if(e[a]!==o)return!1;o*=t[a]}return!0}iget(t){let e=this._shape,n=this._strides,o=e.length,a=M(this._dtype),u;if(o===0)u=this._offset;else{let s=t;u=this._offset;for(let i=0;i<o;i++){let c=1;for(let m=i+1;m<o;m++)c*=e[m];let l=Math.floor(s/c);s=s%c,u+=l*n[i]}}if(a){let s=u*2,i=this._data[s],c=this._data[s+1];return new O(i,c)}return this._data[u]}iset(t,e){let n=this._shape,o=this._strides,a=n.length,u=M(this._dtype),s;if(a===0)s=this._offset;else{let i=t;s=this._offset;for(let c=0;c<a;c++){let l=1;for(let y=c+1;y<a;y++)l*=n[y];let m=Math.floor(i/l);i=i%l,s+=m*o[c]}}if(u){let i=s*2,c,l;e instanceof O?(c=e.re,l=e.im):typeof e=="object"&&e!==null&&"re"in e?(c=e.re,l=e.im??0):(c=Number(e),l=0),this._data[i]=c,this._data[i+1]=l}else this._data[s]=e}get(...t){let e=this._strides,n=this._offset;for(let o=0;o<t.length;o++)n+=t[o]*e[o];if(M(this._dtype)){let o=n*2,a=this._data[o],u=this._data[o+1];return new O(a,u)}return this._data[n]}set(t,e){let n=this._strides,o=this._offset;for(let a=0;a<t.length;a++)o+=t[a]*n[a];if(M(this._dtype)){let a=o*2,u,s;e instanceof O?(u=e.re,s=e.im):typeof e=="object"&&e!==null&&"re"in e?(u=e.re,s=e.im??0):(u=Number(e),s=0),this._data[a]=u,this._data[a+1]=s}else this._data[o]=e}copy(){let t=Array.from(this._shape),e=this._dtype,n=this.size,o=M(e),a=j(e);if(!a)throw new Error(`Cannot copy array with dtype ${e}`);let u=o?n*2:n,s=new a(u);if(this.isCContiguous&&this._offset===0)if(B(e)){let i=this._data,c=s;for(let l=0;l<u;l++)c[l]=i[l]}else s.set(this._data.subarray(0,u));else if(B(e)){let i=s;for(let c=0;c<n;c++)i[c]=this.iget(c)}else if(o){let i=s;for(let c=0;c<n;c++){let l=this.iget(c);i[c*2]=l.re,i[c*2+1]=l.im}}else for(let i=0;i<n;i++)s[i]=this.iget(i);return new r(s,t,r._computeStrides(t),0,e)}static fromData(t,e,n,o,a){let u=o??r._computeStrides(e),s=a??0;return new r(t,e,u,s,n)}static zeros(t,e=rr){let n=t.reduce((i,c)=>i*c,1),o=M(e),a=j(e);if(!a)throw new Error(`Cannot create array with dtype ${e}`);let u=o?n*2:n,s=new a(u);return new r(s,t,r._computeStrides(t),0,e)}static ones(t,e=rr){let n=t.reduce((i,c)=>i*c,1),o=M(e),a=j(e);if(!a)throw new Error(`Cannot create array with dtype ${e}`);let u=o?n*2:n,s=new a(u);if(B(e))s.fill(BigInt(1));else if(o){let i=s;for(let c=0;c<n;c++)i[c*2]=1,i[c*2+1]=0}else s.fill(1);return new r(s,t,r._computeStrides(t),0,e)}static _computeStrides(t){let e=new Array(t.length),n=1;for(let o=t.length-1;o>=0;o--)e[o]=n,n*=t[o];return e}}});function gr(r){if(r.length===0)return[];if(r.length===1)return Array.from(r[0]);let t=Math.max(...r.map(n=>n.length)),e=new Array(t);for(let n=0;n<t;n++){let o=1;for(let a of r){let u=a.length-t+n,s=u<0?1:a[u];if(s!==1){if(o===1)o=s;else if(o!==s)return null}}e[n]=o}return e}function Cu(r,t,e){let n=r.length,o=e.length,a=new Array(o).fill(0);for(let u=0;u<n;u++){let s=o-n+u,i=r[u],c=e[s];if(i===c)a[s]=t[u];else if(i===1)a[s]=0;else throw new Error("Invalid broadcast")}return a}function pr(r,t){let e=Cu(r.shape,r.strides,t);return D.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function se(...r){let t=gr(r);if(t===null){let e=r.map(n=>`(${n.join(",")})`).join(" ");throw new Error(`shape mismatch: objects cannot be broadcast to a single shape. Mismatch is between ${e}`)}return t}var _t=W(()=>{"use strict";X()});function Br(r,t){let e=r.length,n=t.length,o=Math.max(e,n),a=new Array(o);for(let u=0;u<o;u++){let s=u<o-e?1:r[u-(o-e)],i=u<o-n?1:t[u-(o-n)];if(s===i)a[u]=s;else if(s===1)a[u]=i;else if(i===1)a[u]=s;else throw new Error(`operands could not be broadcast together with shapes ${JSON.stringify(Array.from(r))} ${JSON.stringify(Array.from(t))}`)}return a}function Uu(r,t,e){let n=r.length,o=e.length,a=new Array(o).fill(0);for(let u=0;u<n;u++){let s=o-n+u,i=r[u],c=e[s];if(i===c)a[s]=t[u];else if(i===1)a[s]=0;else throw new Error("Invalid broadcast")}return a}function Ft(r,t){let e=Uu(r.shape,r.strides,t);return D.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function K(r,t,e,n){let o=Br(r.shape,t.shape),a=Ft(r,o),u=Ft(t,o),s=Z(r.dtype,t.dtype),i=D.zeros(o,s),c=i.data,l=i.size;if(B(s)){let m=c;for(let y=0;y<l;y++){let d=a.iget(y),f=u.iget(y),p=d instanceof O?d.re:d,g=f instanceof O?f.re:f,h=typeof p=="bigint"?p:BigInt(Math.round(p)),b=typeof g=="bigint"?g:BigInt(Math.round(g));n==="add"?m[y]=h+b:n==="subtract"?m[y]=h-b:n==="multiply"?m[y]=h*b:n==="divide"?m[y]=h/b:m[y]=BigInt(Math.round(e(Number(h),Number(b))))}}else{let m=B(r.dtype)||B(t.dtype);for(let y=0;y<l;y++){let d=a.iget(y),f=u.iget(y),p=Number(d),g=Number(f);c[y]=e(p,g)}}return i}function yr(r,t,e){let n=Br(r.shape,t.shape),o=Ft(r,n),a=Ft(t,n),u=n.reduce((c,l)=>c*l,1),s=new Uint8Array(u),i=B(r.dtype)||B(t.dtype);for(let c=0;c<u;c++){let l=o.iget(c),m=a.iget(c),y=Number(l),d=Number(m);s[c]=e(y,d)?1:0}return D.fromData(s,n,"bool")}function H(r,t,e=!0){let n=r.dtype,o=Array.from(r.shape),a=r.size,s=e?n:n!=="float32"&&n!=="float64"?"float64":n,i=D.zeros(o,s),c=i.data,l=r.data;if(B(n))if(B(s)){let m=c;for(let y=0;y<a;y++){let d=Number(l[y]);m[y]=BigInt(Math.round(t(d)))}}else for(let m=0;m<a;m++)c[m]=t(Number(l[m]));else for(let m=0;m<a;m++)c[m]=t(Number(l[m]));return i}var Ir=W(()=>{"use strict";X();J();xr()});function ie(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function fr(r,t){return[r[t*2],r[t*2+1]]}function zr(r,t,e,n){r[t*2]=e,r[t*2+1]=n}function Un(r,t){return typeof t=="number"?qu(r,t):ie(r,t)?$u(r,t):K(r,t,(e,n)=>e+n,"add")}function $u(r,t){let e=Z(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(M(e)){let i=s,c=M(r.dtype),l=M(t.dtype);for(let m=0;m<o;m++){let[y,d]=c?fr(a,m):[Number(a[m]),0],[f,p]=l?fr(u,m):[Number(u[m]),0];zr(i,m,y+f,d+p)}return n}if(B(e)){let i=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),y=typeof u[l]=="bigint"?u[l]:BigInt(Math.round(Number(u[l])));i[l]=m+y}else{let l=a,m=u;for(let y=0;y<o;y++)i[y]=l[y]+m[y]}}else if(B(r.dtype)||B(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof u[c]=="bigint"?Number(u[c]):u[c];s[c]=l+m}else for(let c=0;c<o;c++)s[c]=a[c]+u[c];return n}function $n(r,t){return typeof t=="number"?Vu(r,t):ie(r,t)?Ru(r,t):K(r,t,(e,n)=>e-n,"subtract")}function Ru(r,t){let e=Z(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(M(e)){let i=s,c=M(r.dtype),l=M(t.dtype);for(let m=0;m<o;m++){let[y,d]=c?fr(a,m):[Number(a[m]),0],[f,p]=l?fr(u,m):[Number(u[m]),0];zr(i,m,y-f,d-p)}return n}if(B(e)){let i=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),y=typeof u[l]=="bigint"?u[l]:BigInt(Math.round(Number(u[l])));i[l]=m-y}else{let l=a,m=u;for(let y=0;y<o;y++)i[y]=l[y]-m[y]}}else if(B(r.dtype)||B(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof u[c]=="bigint"?Number(u[c]):u[c];s[c]=l-m}else for(let c=0;c<o;c++)s[c]=a[c]-u[c];return n}function Rn(r,t){return typeof t=="number"?Pu(r,t):ie(r,t)?ku(r,t):K(r,t,(e,n)=>e*n,"multiply")}function ku(r,t){let e=Z(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(M(e)){let i=s,c=M(r.dtype),l=M(t.dtype);for(let m=0;m<o;m++){let[y,d]=c?fr(a,m):[Number(a[m]),0],[f,p]=l?fr(u,m):[Number(u[m]),0],g=y*f-d*p,h=y*p+d*f;zr(i,m,g,h)}return n}if(B(e)){let i=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),y=typeof u[l]=="bigint"?u[l]:BigInt(Math.round(Number(u[l])));i[l]=m*y}else{let l=a,m=u;for(let y=0;y<o;y++)i[y]=l[y]*m[y]}}else if(B(r.dtype)||B(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof u[c]=="bigint"?Number(u[c]):u[c];s[c]=l*m}else for(let c=0;c<o;c++)s[c]=a[c]*u[c];return n}function kn(r,t){if(typeof t=="number")return ju(r,t);let e=M(r.dtype),n=M(t.dtype);if(e||n){let l=Z(r.dtype,t.dtype),m=D.zeros(Array.from(r.shape),l),y=m.data,d=r.size,f=r.data,p=t.data;for(let g=0;g<d;g++){let[h,b]=e?fr(f,g):[Number(f[g]),0],[A,S]=n?fr(p,g):[Number(p[g]),0],x=A*A+S*S,w=(h*A+b*S)/x,N=(b*A-h*S)/x;zr(y,g,w,N)}return m}let o=r.dtype==="float64",a=t.dtype==="float64",u=r.dtype==="float32",s=t.dtype==="float32";if(o||a){let l=o?r:kr(r,"float64"),m=a?t:kr(t,"float64");return K(l,m,(y,d)=>y/d,"divide")}if(u||s){let l=u?r:kr(r,"float32"),m=s?t:kr(t,"float32");return K(l,m,(y,d)=>y/d,"divide")}let i=kr(r,"float64"),c=kr(t,"float64");return K(i,c,(l,m)=>l/m,"divide")}function kr(r,t){let e=D.zeros(Array.from(r.shape),t),n=r.size,o=r.data,a=e.data;for(let u=0;u<n;u++)a[u]=Number(o[u]);return e}function qu(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=D.zeros(n,e),s=u.data;if(M(e)){let i=o,c=s;for(let l=0;l<a;l++){let[m,y]=fr(i,l);zr(c,l,m+t,y)}}else if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]+l}else for(let i=0;i<a;i++)s[i]=Number(o[i])+t;return u}function Vu(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=D.zeros(n,e),s=u.data;if(M(e)){let i=o,c=s;for(let l=0;l<a;l++){let[m,y]=fr(i,l);zr(c,l,m-t,y)}}else if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]-l}else for(let i=0;i<a;i++)s[i]=Number(o[i])-t;return u}function Pu(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=D.zeros(n,e),s=u.data;if(M(e)){let i=o,c=s;for(let l=0;l<a;l++){let[m,y]=fr(i,l);zr(c,l,m*t,y*t)}}else if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]*l}else for(let i=0;i<a;i++)s[i]=Number(o[i])*t;return u}function ju(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size;if(M(e)){let l=D.zeros(n,e),m=o,y=l.data;for(let d=0;d<a;d++){let[f,p]=fr(m,d);zr(y,d,f/t,p/t)}return l}let s=e!=="float32"&&e!=="float64"?"float64":e,i=D.zeros(n,s),c=i.data;if(B(e))for(let l=0;l<a;l++)c[l]=Number(o[l])/t;else for(let l=0;l<a;l++)c[l]=Number(o[l])/t;return i}function qn(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size;if(M(t)){let s=Kr(t),i=D.zeros(e,s),c=i.data,l=n;for(let m=0;m<o;m++){let y=l[m*2],d=l[m*2+1];c[m]=Math.sqrt(y*y+d*d)}return i}let a=D.zeros(e,t),u=a.data;if(B(t)){let s=n,i=u;for(let c=0;c<o;c++){let l=s[c];i[c]=l<0n?-l:l}}else for(let s=0;s<o;s++)u[s]=Math.abs(Number(n[s]));return a}function Vn(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=D.zeros(e,t),u=a.data;if(M(t)){let s=n,i=u;for(let c=0;c<o;c++){let[l,m]=fr(s,c);zr(i,c,-l,-m)}}else if(B(t)){let s=n,i=u;for(let c=0;c<o;c++)i[c]=-s[c]}else for(let s=0;s<o;s++)u[s]=-Number(n[s]);return a}function Pn(r){q(r.dtype,"sign","Sign is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=D.zeros(e,t),u=a.data;if(B(t)){let s=n,i=u;for(let c=0;c<o;c++){let l=s[c];i[c]=l>0n?1n:l<0n?-1n:0n}}else for(let s=0;s<o;s++){let i=Number(n[s]);u[s]=i>0?1:i<0?-1:0}return a}function Mt(r,t){return q(r.dtype,"mod","Modulo is not defined for complex numbers."),typeof t!="number"&&q(t.dtype,"mod","Modulo is not defined for complex numbers."),typeof t=="number"?Lu(r,t):K(r,t,(e,n)=>(e%n+n)%n,"mod")}function Lu(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=D.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++){let y=i[m];c[m]=(y%l+l)%l}}else for(let i=0;i<a;i++){let c=Number(o[i]);s[i]=(c%t+t)%t}return u}function ue(r,t){return q(r.dtype,"floor_divide","Floor division is not defined for complex numbers."),typeof t!="number"&&q(t.dtype,"floor_divide","Floor division is not defined for complex numbers."),typeof t=="number"?Wu(r,t):K(r,t,(e,n)=>Math.floor(e/n),"floor_divide")}function Wu(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=D.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]/l}else for(let i=0;i<a;i++)s[i]=Math.floor(Number(o[i])/t);return u}function jn(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=D.zeros(e,t),u=a.data;if(M(t)){let s=n,i=u;for(let c=0;c<o;c++)i[c*2]=s[c*2],i[c*2+1]=s[c*2+1]}else for(let s=0;s<o;s++)u[s]=n[s];return a}function Ln(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size;if(M(t)){let c=D.zeros(e,t),l=n,m=c.data;for(let y=0;y<o;y++){let d=l[y*2],f=l[y*2+1],p=d*d+f*f;m[y*2]=d/p,m[y*2+1]=-f/p}return c}let u=t!=="float32"&&t!=="float64"?"float64":t,s=D.zeros(e,u),i=s.data;if(B(t))for(let c=0;c<o;c++)i[c]=1/Number(n[c]);else for(let c=0;c<o;c++)i[c]=1/Number(n[c]);return s}function Wn(r){let t=r.dtype;q(t,"cbrt","cbrt is not supported for complex numbers.");let e=Array.from(r.shape),n=r.data,o=r.size,u=t!=="float32"&&t!=="float64"?"float64":t,s=D.zeros(e,u),i=s.data;for(let c=0;c<o;c++)i[c]=Math.cbrt(Number(n[c]));return s}function Gn(r){let t=r.dtype;q(t,"fabs","fabs is only for real numbers. Use absolute() for complex.");let e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",u=D.zeros(e,a),s=u.data;for(let i=0;i<o;i++)s[i]=Math.abs(Number(n[i]));return u}function Zn(r,t){let e=ue(r,t),n=Mt(r,t);return[e,n]}function Yn(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=D.zeros(e,t),u=a.data;if(M(t)){let s=n,i=u;for(let c=0;c<o;c++){let l=s[c*2],m=s[c*2+1];i[c*2]=l*l-m*m,i[c*2+1]=2*l*m}}else if(B(t)){let s=n,i=u;for(let c=0;c<o;c++)i[c]=s[c]*s[c]}else for(let s=0;s<o;s++){let i=Number(n[s]);u[s]=i*i}return a}function Hn(r,t){return Mt(r,t)}function Jn(r,t){q(r.dtype,"heaviside","Heaviside step function is not defined for complex numbers."),typeof t!="number"&&q(t.dtype,"heaviside","Heaviside step function is not defined for complex numbers.");let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",u=D.zeros(n,a),s=u.data;if(typeof t=="number")for(let i=0;i<o;i++){let c=Number(r.data[i]);c<0?s[i]=0:c===0?s[i]=t:s[i]=1}else{let i=t.data,c=t.shape;if(n.every((l,m)=>l===c[m]))for(let l=0;l<o;l++){let m=Number(r.data[l]);m<0?s[l]=0:m===0?s[l]=Number(i[l]):s[l]=1}else for(let l=0;l<o;l++){let m=Number(r.data[l]),y=l%t.size;m<0?s[l]=0:m===0?s[l]=Number(i[y]):s[l]=1}}return u}function Xn(r,t){let e=r.dtype;if(M(e)){let n=r.data,o=r.size,a=D.zeros(Array.from(r.shape),e),u=a.data;if(typeof t=="number")for(let s=0;s<o;s++){let i=n[s*2],c=n[s*2+1],l=Math.hypot(i,c),m=Math.atan2(c,i),y=Math.pow(l,t),d=m*t;u[s*2]=y*Math.cos(d),u[s*2+1]=y*Math.sin(d)}else{let s=t.data,i=M(t.dtype);for(let c=0;c<o;c++){let l=n[c*2],m=n[c*2+1],y,d;i?(y=s[c*2],d=s[c*2+1]):(y=Number(s[c]),d=0);let f=Math.hypot(l,m),p=Math.atan2(m,l),g=Math.log(f),h=p,b=y*g-d*h,A=y*h+d*g,S=Math.exp(b);u[c*2]=S*Math.cos(A),u[c*2+1]=S*Math.sin(A)}}return a}if(typeof t=="number"){let n=D.zeros(Array.from(r.shape),"float64"),o=n.data,a=r.data,u=r.size;for(let s=0;s<u;s++)o[s]=Math.pow(Number(a[s]),t);return n}return K(r,t,(n,o)=>Math.pow(n,o),"float_power")}function Qn(r,t){if(q(r.dtype,"fmod","fmod is not defined for complex numbers."),typeof t!="number"&&q(t.dtype,"fmod","fmod is not defined for complex numbers."),typeof t=="number"){let e=r.copy(),n=e.data,o=r.size;for(let a=0;a<o;a++){let u=Number(n[a]);n[a]=u-Math.trunc(u/t)*t}return e}return K(r,t,(e,n)=>e-Math.trunc(e/n)*n,"fmod")}function Kn(r){q(r.dtype,"frexp","frexp is not defined for complex numbers.");let t=D.zeros(Array.from(r.shape),"float64"),e=D.zeros(Array.from(r.shape),"int32"),n=t.data,o=e.data,a=r.data,u=r.size;for(let s=0;s<u;s++){let i=Number(a[s]);if(i===0||!isFinite(i))n[s]=i,o[s]=0;else{let c=Math.floor(Math.log2(Math.abs(i)))+1,l=i/Math.pow(2,c);n[s]=l,o[s]=c}}return[t,e]}function ro(r,t){q(r.dtype,"gcd","GCD is only defined for integers."),typeof t!="number"&&q(t.dtype,"gcd","GCD is only defined for integers.");let e=(i,c)=>{for(i=Math.abs(Math.trunc(i)),c=Math.abs(Math.trunc(c));c!==0;){let l=c;c=i%c,i=l}return i};if(typeof t=="number"){let i=D.zeros(Array.from(r.shape),"int32"),c=i.data,l=r.data,m=r.size,y=Math.abs(Math.trunc(t));for(let d=0;d<m;d++)c[d]=e(Number(l[d]),y);return i}let n=K(r,t,e,"gcd"),o=D.zeros(Array.from(n.shape),"int32"),a=o.data,u=n.data,s=n.size;for(let i=0;i<s;i++)a[i]=Math.round(Number(u[i]));return o}function to(r,t){q(r.dtype,"lcm","LCM is only defined for integers."),typeof t!="number"&&q(t.dtype,"lcm","LCM is only defined for integers.");let e=(c,l)=>{for(c=Math.abs(Math.trunc(c)),l=Math.abs(Math.trunc(l));l!==0;){let m=l;l=c%l,c=m}return c},n=(c,l)=>(c=Math.abs(Math.trunc(c)),l=Math.abs(Math.trunc(l)),c===0||l===0?0:c*l/e(c,l));if(typeof t=="number"){let c=D.zeros(Array.from(r.shape),"int32"),l=c.data,m=r.data,y=r.size,d=Math.abs(Math.trunc(t));for(let f=0;f<y;f++)l[f]=n(Number(m[f]),d);return c}let o=K(r,t,n,"lcm"),a=D.zeros(Array.from(o.shape),"int32"),u=a.data,s=o.data,i=o.size;for(let c=0;c<i;c++)u[c]=Math.round(Number(s[c]));return a}function eo(r,t){if(q(r.dtype,"ldexp","ldexp is not defined for complex numbers."),typeof t!="number"&&q(t.dtype,"ldexp","ldexp is not defined for complex numbers."),typeof t=="number"){let e=D.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.data,a=r.size,u=Math.pow(2,t);for(let s=0;s<a;s++)n[s]=Number(o[s])*u;return e}return K(r,t,(e,n)=>e*Math.pow(2,n),"ldexp")}function no(r){q(r.dtype,"modf","modf is not defined for complex numbers.");let t=D.zeros(Array.from(r.shape),"float64"),e=D.zeros(Array.from(r.shape),"float64"),n=t.data,o=e.data,a=r.data,u=r.size;for(let s=0;s<u;s++){let i=Number(a[s]),c=Math.trunc(i);o[s]=c,n[s]=i-c}return[t,e]}var oo=W(()=>{"use strict";X();J();Ir()});function Or(r,t){return[r[t*2],r[t*2+1]]}function ao(r,t){if(M(r.dtype))return Or(r.data,t);let e=r.iget(t);return e instanceof O?[e.re,e.im]:[Number(e),0]}function qr(r,t,e){let n=gr([Array.from(r.shape),Array.from(t.shape)]);if(!n)throw new Error("Cannot broadcast arrays together");let o=pr(r,n),a=pr(t,n),u=n.reduce((i,c)=>i*c,1),s=new Uint8Array(u);for(let i=0;i<u;i++){let[c,l]=ao(o,i),[m,y]=ao(a,i);s[i]=e(c,l,m,y)?1:0}return D.fromData(s,n,"bool")}function so(r,t){return typeof t=="number"?Zu(r,t):M(r.dtype)||M(t.dtype)?qr(r,t,(e,n,o,a)=>e!==o?e>o:n>a):yr(r,t,(e,n)=>e>n)}function io(r,t){return typeof t=="number"?Yu(r,t):M(r.dtype)||M(t.dtype)?qr(r,t,(e,n,o,a)=>e!==o?e>=o:n>=a):yr(r,t,(e,n)=>e>=n)}function uo(r,t){return typeof t=="number"?Hu(r,t):M(r.dtype)||M(t.dtype)?qr(r,t,(e,n,o,a)=>e!==o?e<o:n<a):yr(r,t,(e,n)=>e<n)}function co(r,t){return typeof t=="number"?Ju(r,t):M(r.dtype)||M(t.dtype)?qr(r,t,(e,n,o,a)=>e!==o?e<=o:n<=a):yr(r,t,(e,n)=>e<=n)}function lo(r,t){return typeof t=="number"?Xu(r,t):M(r.dtype)||M(t.dtype)?qr(r,t,(e,n,o,a)=>e===o&&n===a):yr(r,t,(e,n)=>e===n)}function fo(r,t){return typeof t=="number"?Qu(r,t):M(r.dtype)||M(t.dtype)?qr(r,t,(e,n,o,a)=>e!==o||n!==a):yr(r,t,(e,n)=>e!==n)}function ce(r,t,e=1e-5,n=1e-8){return typeof t=="number"?Ku(r,t,e,n):yr(r,t,(o,a)=>{let u=Math.abs(o-a),s=n+e*Math.abs(a);return u<=s})}function mo(r,t,e=1e-5,n=1e-8){let o=ce(r,t,e,n),a=o.data;for(let u=0;u<o.size;u++)if(a[u]===0)return!1;return!0}function po(r,t){let e=[Array.from(r.shape),Array.from(t.shape)],n=gr(e);if(n===null)return!1;let o=pr(r,n),a=pr(t,n),u=n.length,s=n.reduce((l,m)=>l*m,1),i=B(o.dtype),c=B(a.dtype);for(let l=0;l<s;l++){let m=l,y=new Array(u);for(let p=u-1;p>=0;p--)y[p]=m%n[p],m=Math.floor(m/n[p]);let d=o.get(...y),f=a.get(...y);if(i||c){let p=typeof d=="bigint"?d:BigInt(Number(d)),g=typeof f=="bigint"?f:BigInt(Number(f));if(p!==g)return!1}else if(d!==f)return!1}return!0}function Zu(r,t){let e=new Uint8Array(r.size),n=r.data;if(M(r.dtype)){let o=n;for(let a=0;a<r.size;a++){let[u,s]=Or(o,a);e[a]=(u!==t?u>t:s>0)?1:0}}else for(let o=0;o<r.size;o++)e[o]=n[o]>t?1:0;return D.fromData(e,Array.from(r.shape),"bool")}function Yu(r,t){let e=new Uint8Array(r.size),n=r.data;if(M(r.dtype)){let o=n;for(let a=0;a<r.size;a++){let[u,s]=Or(o,a);e[a]=(u!==t?u>=t:s>=0)?1:0}}else for(let o=0;o<r.size;o++)e[o]=n[o]>=t?1:0;return D.fromData(e,Array.from(r.shape),"bool")}function Hu(r,t){let e=new Uint8Array(r.size),n=r.data;if(M(r.dtype)){let o=n;for(let a=0;a<r.size;a++){let[u,s]=Or(o,a);e[a]=(u!==t?u<t:s<0)?1:0}}else for(let o=0;o<r.size;o++)e[o]=n[o]<t?1:0;return D.fromData(e,Array.from(r.shape),"bool")}function Ju(r,t){let e=new Uint8Array(r.size),n=r.data;if(M(r.dtype)){let o=n;for(let a=0;a<r.size;a++){let[u,s]=Or(o,a);e[a]=(u!==t?u<=t:s<=0)?1:0}}else for(let o=0;o<r.size;o++)e[o]=n[o]<=t?1:0;return D.fromData(e,Array.from(r.shape),"bool")}function Xu(r,t){let e=new Uint8Array(r.size),n=r.data,o=r.dtype;if(M(o)){let a=n;for(let u=0;u<r.size;u++){let[s,i]=Or(a,u);e[u]=s===t&&i===0?1:0}}else if(B(o)){let a=BigInt(Math.round(t)),u=n;for(let s=0;s<r.size;s++)e[s]=u[s]===a?1:0}else for(let a=0;a<r.size;a++)e[a]=n[a]===t?1:0;return D.fromData(e,Array.from(r.shape),"bool")}function Qu(r,t){let e=new Uint8Array(r.size),n=r.data,o=r.dtype;if(M(o)){let a=n;for(let u=0;u<r.size;u++){let[s,i]=Or(a,u);e[u]=s!==t||i!==0?1:0}}else for(let a=0;a<r.size;a++)e[a]=n[a]!==t?1:0;return D.fromData(e,Array.from(r.shape),"bool")}function Ku(r,t,e,n){let o=new Uint8Array(r.size),a=r.data,u=r.dtype;if(B(u)){let s=a;for(let i=0;i<r.size;i++){let c=Number(s[i]),l=Math.abs(c-t),m=n+e*Math.abs(t);o[i]=l<=m?1:0}}else for(let s=0;s<r.size;s++){let i=Number(a[s]),c=Math.abs(i-t),l=n+e*Math.abs(t);o[s]=c<=l?1:0}return D.fromData(o,Array.from(r.shape),"bool")}var yo=W(()=>{"use strict";X();J();Ir();_t();xr()});function U(r,t){let e=0,n=1;for(let o=r.length-1;o>=0;o--)e+=r[o]*n,n*=t[o];return e}function $(r,t,e,n){let o=n.length,a=new Array(o),u=Array.from(n).filter((i,c)=>c!==t),s=r;for(let i=u.length-1;i>=0;i--)a[i>=t?i+1:i]=s%u[i],s=Math.floor(s/u[i]);return a[t]=e,a}var le=W(()=>{"use strict"});function rt(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,s=r.data;if(t===void 0)if(M(n)){let f=s,p=0,g=0;for(let h=0;h<u;h++)p+=f[h*2],g+=f[h*2+1];return new O(p,g)}else if(B(n)){let f=s,p=BigInt(0);for(let g=0;g<u;g++)p+=f[g];return Number(p)}else{let f=0;for(let p=0;p<u;p++)f+=Number(s[p]);return f}let i=t;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,p)=>p!==i);if(c.length===0)return rt(r);let l=D.zeros(c,n),m=l.data,y=o[i],d=c.reduce((f,p)=>f*p,1);if(M(n)){let f=s,p=m;for(let g=0;g<d;g++){let h=0,b=0;for(let A=0;A<y;A++){let S=$(g,i,A,o),x=U(S,o);h+=f[x*2],b+=f[x*2+1]}p[g*2]=h,p[g*2+1]=b}}else if(B(n)){let f=s,p=m;for(let g=0;g<d;g++){let h=BigInt(0);for(let b=0;b<y;b++){let A=$(g,i,b,o),S=U(A,o);h+=f[S]}p[g]=h}}else for(let f=0;f<d;f++){let p=0;for(let g=0;g<y;g++){let h=$(f,i,g,o),b=U(h,o);p+=Number(s[b])}m[f]=p}if(e){let f=[...o];return f[i]=1,D.fromData(m,f,n)}return l}function Bt(r,t,e=!1){let n=r.dtype,o=r.shape;if(t===void 0){let y=rt(r);return y instanceof O?new O(y.re/r.size,y.im/r.size):y/r.size}let a=t;if(a<0&&(a=o.length+a),a<0||a>=o.length)throw new Error(`axis ${t} is out of bounds for array of dimension ${o.length}`);let u=rt(r,t,e);if(typeof u=="number")return u/o[a];if(u instanceof O)return new O(u.re/o[a],u.im/o[a]);let s=o[a],i=n;M(n)?i=n:(B(n)||n.startsWith("int")||n.startsWith("uint"))&&(i="float64");let c=D.zeros(Array.from(u.shape),i),l=c.data,m=u.data;if(M(n)){let y=m,d=l,f=u.size;for(let p=0;p<f;p++)d[p*2]=y[p*2]/s,d[p*2+1]=y[p*2+1]/s}else if(B(n)){let y=m;for(let d=0;d<l.length;d++)l[d]=Number(y[d])/s}else for(let y=0;y<l.length;y++)l[y]=Number(m[y])/s;return c}function Vr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,s=r.data;if(M(n)){let f=s;if(t===void 0){if(u===0)throw new Error("max of empty array");let x=f[0],w=f[1];for(let N=1;N<u;N++){let I=f[N*2],z=f[N*2+1];if(isNaN(I)||isNaN(z))return new O(NaN,NaN);(I>x||I===x&&z>w)&&(x=I,w=z)}return isNaN(x)||isNaN(w)?new O(NaN,NaN):new O(x,w)}let p=t;if(p<0&&(p=a+p),p<0||p>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let g=Array.from(o).filter((x,w)=>w!==p);if(g.length===0)return Vr(r);let h=D.zeros(g,n),b=h.data,A=o[p],S=g.reduce((x,w)=>x*w,1);for(let x=0;x<S;x++){let w=$(x,p,0,o),N=U(w,o),I=f[N*2],z=f[N*2+1];for(let F=1;F<A;F++){let _=$(x,p,F,o),T=U(_,o),E=f[T*2],C=f[T*2+1];if(isNaN(E)||isNaN(C)){I=NaN,z=NaN;break}(E>I||E===I&&C>z)&&(I=E,z=C)}b[x*2]=I,b[x*2+1]=z}if(e){let x=[...o];return x[p]=1,D.fromData(b,x,n)}return h}if(t===void 0){if(u===0)throw new Error("max of empty array");let f=s[0];for(let p=1;p<u;p++)s[p]>f&&(f=s[p]);return Number(f)}let i=t;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,p)=>p!==i);if(c.length===0)return Vr(r);let l=D.zeros(c,n),m=l.data,y=o[i],d=c.reduce((f,p)=>f*p,1);if(B(n)){let f=s,p=m;for(let g=0;g<d;g++){let h=$(g,i,0,o),b=U(h,o),A=f[b];for(let S=1;S<y;S++){let x=$(g,i,S,o),w=U(x,o),N=f[w];N>A&&(A=N)}p[g]=A}}else for(let f=0;f<d;f++){let p=-1/0;for(let g=0;g<y;g++){let h=$(f,i,g,o),b=U(h,o),A=Number(s[b]);A>p&&(p=A)}m[f]=p}if(e){let f=[...o];return f[i]=1,D.fromData(m,f,n)}return l}function fe(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,s=r.data;if(t===void 0)if(M(n)){let f=s,p=1,g=0;for(let h=0;h<u;h++){let b=f[h*2],A=f[h*2+1],S=p*b-g*A,x=p*A+g*b;p=S,g=x}return new O(p,g)}else if(B(n)){let f=s,p=BigInt(1);for(let g=0;g<u;g++)p*=f[g];return Number(p)}else{let f=1;for(let p=0;p<u;p++)f*=Number(s[p]);return f}let i=t;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,p)=>p!==i);if(c.length===0)return fe(r);let l=D.zeros(c,n),m=l.data,y=o[i],d=c.reduce((f,p)=>f*p,1);if(M(n)){let f=s,p=m;for(let g=0;g<d;g++){let h=1,b=0;for(let A=0;A<y;A++){let S=$(g,i,A,o),x=U(S,o),w=f[x*2],N=f[x*2+1],I=h*w-b*N,z=h*N+b*w;h=I,b=z}p[g*2]=h,p[g*2+1]=b}}else if(B(n)){let f=s,p=m;for(let g=0;g<d;g++){let h=BigInt(1);for(let b=0;b<y;b++){let A=$(g,i,b,o),S=U(A,o);h*=f[S]}p[g]=h}}else for(let f=0;f<d;f++){let p=1;for(let g=0;g<y;g++){let h=$(f,i,g,o),b=U(h,o);p*=Number(s[b])}m[f]=p}if(e){let f=[...o];return f[i]=1,D.fromData(m,f,n)}return l}function Pr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,s=r.data;if(M(n)){let f=s;if(t===void 0){if(u===0)throw new Error("min of empty array");let x=f[0],w=f[1];for(let N=1;N<u;N++){let I=f[N*2],z=f[N*2+1];if(isNaN(I)||isNaN(z))return new O(NaN,NaN);(I<x||I===x&&z<w)&&(x=I,w=z)}return isNaN(x)||isNaN(w)?new O(NaN,NaN):new O(x,w)}let p=t;if(p<0&&(p=a+p),p<0||p>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let g=Array.from(o).filter((x,w)=>w!==p);if(g.length===0)return Pr(r);let h=D.zeros(g,n),b=h.data,A=o[p],S=g.reduce((x,w)=>x*w,1);for(let x=0;x<S;x++){let w=$(x,p,0,o),N=U(w,o),I=f[N*2],z=f[N*2+1];for(let F=1;F<A;F++){let _=$(x,p,F,o),T=U(_,o),E=f[T*2],C=f[T*2+1];if(isNaN(E)||isNaN(C)){I=NaN,z=NaN;break}(E<I||E===I&&C<z)&&(I=E,z=C)}b[x*2]=I,b[x*2+1]=z}if(e){let x=[...o];return x[p]=1,D.fromData(b,x,n)}return h}if(t===void 0){if(u===0)throw new Error("min of empty array");let f=s[0];for(let p=1;p<u;p++)s[p]<f&&(f=s[p]);return Number(f)}let i=t;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,p)=>p!==i);if(c.length===0)return Pr(r);let l=D.zeros(c,n),m=l.data,y=o[i],d=c.reduce((f,p)=>f*p,1);if(B(n)){let f=s,p=m;for(let g=0;g<d;g++){let h=$(g,i,0,o),b=U(h,o),A=f[b];for(let S=1;S<y;S++){let x=$(g,i,S,o),w=U(x,o),N=f[w];N<A&&(A=N)}p[g]=A}}else for(let f=0;f<d;f++){let p=1/0;for(let g=0;g<y;g++){let h=$(f,i,g,o),b=U(h,o),A=Number(s[b]);A<p&&(p=A)}m[f]=p}if(e){let f=[...o];return f[i]=1,D.fromData(m,f,n)}return l}function vr(r,t,e,n){return r<e?-1:r>e?1:t<n?-1:t>n?1:0}function me(r,t){let e=r.dtype,n=M(e),o=r.shape,a=o.length,u=r.size,s=r.data;if(t===void 0){if(u===0)throw new Error("argmin of empty array");if(n){let g=s,h=g[0],b=g[1],A=0;for(let S=1;S<u;S++){let x=g[S*2],w=g[S*2+1];vr(x,w,h,b)<0&&(h=x,b=w,A=S)}return A}let f=s[0],p=0;for(let g=1;g<u;g++)s[g]<f&&(f=s[g],p=g);return p}let i=t;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,p)=>p!==i);if(c.length===0)return me(r);let l=D.zeros(c,"int32"),m=l.data,y=o[i],d=c.reduce((f,p)=>f*p,1);if(n){let f=s;for(let p=0;p<d;p++){let g=$(p,i,0,o),h=U(g,o),b=f[h*2],A=f[h*2+1],S=0;for(let x=1;x<y;x++){let w=$(p,i,x,o),N=U(w,o),I=f[N*2],z=f[N*2+1];vr(I,z,b,A)<0&&(b=I,A=z,S=x)}m[p]=S}}else if(B(e)){let f=s;for(let p=0;p<d;p++){let g=$(p,i,0,o),h=U(g,o),b=f[h],A=0;for(let S=1;S<y;S++){let x=$(p,i,S,o),w=U(x,o),N=f[w];N<b&&(b=N,A=S)}m[p]=A}}else for(let f=0;f<d;f++){let p=1/0,g=0;for(let h=0;h<y;h++){let b=$(f,i,h,o),A=U(b,o),S=Number(s[A]);S<p&&(p=S,g=h)}m[f]=g}return l}function pe(r,t){let e=r.dtype,n=M(e),o=r.shape,a=o.length,u=r.size,s=r.data;if(t===void 0){if(u===0)throw new Error("argmax of empty array");if(n){let g=s,h=g[0],b=g[1],A=0;for(let S=1;S<u;S++){let x=g[S*2],w=g[S*2+1];vr(x,w,h,b)>0&&(h=x,b=w,A=S)}return A}let f=s[0],p=0;for(let g=1;g<u;g++)s[g]>f&&(f=s[g],p=g);return p}let i=t;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,p)=>p!==i);if(c.length===0)return pe(r);let l=D.zeros(c,"int32"),m=l.data,y=o[i],d=c.reduce((f,p)=>f*p,1);if(n){let f=s;for(let p=0;p<d;p++){let g=$(p,i,0,o),h=U(g,o),b=f[h*2],A=f[h*2+1],S=0;for(let x=1;x<y;x++){let w=$(p,i,x,o),N=U(w,o),I=f[N*2],z=f[N*2+1];vr(I,z,b,A)>0&&(b=I,A=z,S=x)}m[p]=S}}else if(B(e)){let f=s;for(let p=0;p<d;p++){let g=$(p,i,0,o),h=U(g,o),b=f[h],A=0;for(let S=1;S<y;S++){let x=$(p,i,S,o),w=U(x,o),N=f[w];N>b&&(b=N,A=S)}m[p]=A}}else for(let f=0;f<d;f++){let p=-1/0,g=0;for(let h=0;h<y;h++){let b=$(f,i,h,o),A=U(b,o),S=Number(s[A]);S>p&&(p=S,g=h)}m[f]=g}return l}function ye(r,t,e=0,n=!1){let o=r.dtype,a=r.shape,u=a.length,s=r.size,i=r.data,c=Bt(r,t,n);if(t===void 0){if(M(o)){let S=i,x=c,w=0;for(let N=0;N<s;N++){let I=S[N*2],z=S[N*2+1],F=I-x.re,_=z-x.im;w+=F*F+_*_}return w/(s-e)}let b=c,A=0;for(let S=0;S<s;S++){let x=Number(i[S])-b;A+=x*x}return A/(s-e)}let l=t;if(l<0&&(l=u+l),l<0||l>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let m=a[l],y=c,d=y.data,f=n?y.shape:Array.from(a).filter((b,A)=>A!==l),p=D.zeros(Array.from(f),"float64"),g=p.data,h=f.reduce((b,A)=>b*A,1);if(M(o)){let b=i,A=d;for(let S=0;S<h;S++){let x=0,w=A[S*2],N=A[S*2+1];for(let I=0;I<m;I++){let z=$(S,l,I,a),F=U(z,a),_=b[F*2],T=b[F*2+1],E=_-w,C=T-N;x+=E*E+C*C}g[S]=x/(m-e)}}else for(let b=0;b<h;b++){let A=0,S=Number(d[b]);for(let x=0;x<m;x++){let w=$(b,l,x,a),N=U(w,a),I=Number(i[N])-S;A+=I*I}g[b]=A/(m-e)}return p}function go(r,t,e=0,n=!1){let o=ye(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=D.zeros(Array.from(o.shape),"float64"),u=o.data,s=a.data;for(let i=0;i<u.length;i++)s[i]=Math.sqrt(Number(u[i]));return a}function de(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,u=r.data;if(t===void 0){for(let d=0;d<a;d++)if(!u[d])return!1;return!0}let s=t;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let i=Array.from(n).filter((d,f)=>f!==s);if(i.length===0)return de(r);let c=D.zeros(i,"bool"),l=c.data,m=n[s],y=i.reduce((d,f)=>d*f,1);for(let d=0;d<y;d++){let f=!0;for(let p=0;p<m;p++){let g=$(d,s,p,n),h=U(g,n);if(!u[h]){f=!1;break}}l[d]=f?1:0}if(e){let d=[...n];return d[s]=1,D.fromData(l,d,"bool")}return c}function ge(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,u=r.data;if(t===void 0){for(let d=0;d<a;d++)if(u[d])return!0;return!1}let s=t;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let i=Array.from(n).filter((d,f)=>f!==s);if(i.length===0)return ge(r);let c=D.zeros(i,"bool"),l=c.data,m=n[s],y=i.reduce((d,f)=>d*f,1);for(let d=0;d<y;d++){let f=!1;for(let p=0;p<m;p++){let g=$(d,s,p,n),h=U(g,n);if(u[h]){f=!0;break}}l[d]=f?1:0}if(e){let d=[...n];return d[s]=1,D.fromData(l,d,"bool")}return c}function Ae(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let d=a,f=r.size;if(t===void 0){let N=D.zeros([f],e),I=N.data,z=0,F=0;for(let _=0;_<f;_++)z+=d[_*2],F+=d[_*2+1],I[_*2]=z,I[_*2+1]=F;return N}let p=t;if(p<0&&(p=o+p),p<0||p>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let g=D.zeros([...n],e),h=g.data,b=n[p],A=[],S=1;for(let N=o-1;N>=0;N--)A.unshift(S),S*=n[N];let x=r.size,w=A[p];for(let N=0;N<x;N++)Math.floor(N/w)%b===0?(h[N*2]=d[N*2],h[N*2+1]=d[N*2+1]):(h[N*2]=h[(N-w)*2]+d[N*2],h[N*2+1]=h[(N-w)*2+1]+d[N*2+1]);return g}if(t===void 0){let d=r.size,f=new Float64Array(d),p=0;for(let g=0;g<d;g++)p+=Number(a[g]),f[g]=p;return D.fromData(f,[d],"float64")}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=new Float64Array(r.size),i=n[u],c=[],l=1;for(let d=o-1;d>=0;d--)c.unshift(l),l*=n[d];let m=r.size,y=c[u];for(let d=0;d<m;d++)Math.floor(d/y)%i===0?s[d]=Number(a[d]):s[d]=s[d-y]+Number(a[d]);return D.fromData(s,[...n],"float64")}function be(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let d=a,f=r.size;if(t===void 0){let N=D.zeros([f],e),I=N.data,z=1,F=0;for(let _=0;_<f;_++){let T=d[_*2],E=d[_*2+1],C=z*T-F*E,k=z*E+F*T;z=C,F=k,I[_*2]=z,I[_*2+1]=F}return N}let p=t;if(p<0&&(p=o+p),p<0||p>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let g=D.zeros([...n],e),h=g.data,b=n[p],A=[],S=1;for(let N=o-1;N>=0;N--)A.unshift(S),S*=n[N];let x=r.size,w=A[p];for(let N=0;N<x;N++)if(Math.floor(N/w)%b===0)h[N*2]=d[N*2],h[N*2+1]=d[N*2+1];else{let z=h[(N-w)*2],F=h[(N-w)*2+1],_=d[N*2],T=d[N*2+1];h[N*2]=z*_-F*T,h[N*2+1]=z*T+F*_}return g}if(t===void 0){let d=r.size,f=new Float64Array(d),p=1;for(let g=0;g<d;g++)p*=Number(a[g]),f[g]=p;return D.fromData(f,[d],"float64")}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=new Float64Array(r.size),i=n[u],c=[],l=1;for(let d=o-1;d>=0;d--)c.unshift(l),l*=n[d];let m=r.size,y=c[u];for(let d=0;d<m;d++)Math.floor(d/y)%i===0?s[d]=Number(a[d]):s[d]=s[d-y]*Number(a[d]);return D.fromData(s,[...n],"float64")}function he(r,t,e=!1){let n=r.dtype;if(M(n)){let m=Vr(r,t,e),y=Pr(r,t,e);if(m instanceof O&&y instanceof O)return new O(m.re-y.re,m.im-y.im);let d=m,f=y,p=d.data,g=f.data,h=new Float64Array(d.size*2);for(let b=0;b<d.size;b++)h[b*2]=p[b*2]-g[b*2],h[b*2+1]=p[b*2+1]-g[b*2+1];return D.fromData(h,[...d.shape],n)}let o=Vr(r,t,e),a=Pr(r,t,e);if(typeof o=="number"&&typeof a=="number")return o-a;let u=o,s=a,i=u.data,c=s.data,l=new Float64Array(u.size);for(let m=0;m<u.size;m++)l[m]=Number(i[m])-Number(c[m]);return D.fromData(l,[...u.shape],"float64")}function Se(r,t,e=!1){return Lr(r,.5,t,e)}function xe(r,t,e,n=!1){return Lr(r,t/100,e,n)}function Lr(r,t,e,n=!1){if(q(r.dtype,"quantile","Complex numbers are not orderable."),t<0||t>1)throw new Error("Quantile must be between 0 and 1");let o=r.shape,a=o.length,u=r.data;if(e===void 0){let d=[];for(let A=0;A<r.size;A++)d.push(Number(u[A]));d.sort((A,S)=>A-S);let f=d.length,p=t*(f-1),g=Math.floor(p),h=Math.ceil(p);if(g===h)return d[g];let b=p-g;return d[g]*(1-b)+d[h]*b}let s=e;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);let i=Array.from(o).filter((d,f)=>f!==s);if(i.length===0)return Lr(r,t);let c=i.reduce((d,f)=>d*f,1),l=o[s],m=new Float64Array(c);for(let d=0;d<c;d++){let f=[];for(let A=0;A<l;A++){let S=$(d,s,A,o),x=U(S,o);f.push(Number(u[x]))}f.sort((A,S)=>A-S);let p=f.length,g=t*(p-1),h=Math.floor(g),b=Math.ceil(g);if(h===b)m[d]=f[h];else{let A=g-h;m[d]=f[h]*(1-A)+f[b]*A}}let y=D.fromData(m,i,"float64");if(n){let d=[...o];return d[s]=1,D.fromData(m,d,"float64")}return y}function tt(r,t,e,n=!1){let o=r.dtype,a=r.shape,u=a.length,s=r.data;if(e===void 0)return Bt(r,t,n);if(M(o)){let p=s,g=e.data;if(t===void 0){let N=0,I=0,z=0;for(let F=0;F<r.size;F++){let _=Number(g[F%e.size]),T=p[F*2],E=p[F*2+1];N+=T*_,I+=E*_,z+=_}return z===0?new O(NaN,NaN):new O(N/z,I/z)}let h=t;if(h<0&&(h=u+h),h<0||h>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let b=Array.from(a).filter((N,I)=>I!==h);if(b.length===0)return tt(r,void 0,e);let A=b.reduce((N,I)=>N*I,1),S=a[h],x=D.zeros(b,o),w=x.data;for(let N=0;N<A;N++){let I=0,z=0,F=0;for(let _=0;_<S;_++){let T=$(N,h,_,a),E=U(T,a),C=Number(g[_%e.size]),k=p[E*2],V=p[E*2+1];I+=k*C,z+=V*C,F+=C}F===0?(w[N*2]=NaN,w[N*2+1]=NaN):(w[N*2]=I/F,w[N*2+1]=z/F)}if(n){let N=[...a];return N[h]=1,D.fromData(w,N,o)}return x}if(t===void 0){let p=0,g=0,h=e.data;for(let b=0;b<r.size;b++){let A=Number(h[b%e.size]);p+=Number(s[b])*A,g+=A}return g===0?NaN:p/g}let i=t;if(i<0&&(i=u+i),i<0||i>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let c=Array.from(a).filter((p,g)=>g!==i);if(c.length===0)return tt(r,void 0,e);let l=c.reduce((p,g)=>p*g,1),m=a[i],y=e.data,d=new Float64Array(l);for(let p=0;p<l;p++){let g=0,h=0;for(let b=0;b<m;b++){let A=$(p,i,b,a),S=U(A,a),x=Number(y[b%e.size]);g+=Number(s[S])*x,h+=x}d[p]=h===0?NaN:g/h}let f=D.fromData(d,c,"float64");if(n){let p=[...a];return p[i]=1,D.fromData(d,p,"float64")}return f}function nr(r,t){return isNaN(r)||isNaN(t)}function vt(r,t,e=!1){let n=r.dtype,o=M(n),a=r.shape,u=a.length,s=r.data;if(t===void 0){if(o){let p=s,g=0,h=0;for(let b=0;b<r.size;b++){let A=p[b*2],S=p[b*2+1];nr(A,S)||(g+=A,h+=S)}return new O(g,h)}let f=0;for(let p=0;p<r.size;p++){let g=Number(s[p]);isNaN(g)||(f+=g)}return f}let i=t;if(i<0&&(i=u+i),i<0||i>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let c=Array.from(a).filter((f,p)=>p!==i);if(c.length===0)return vt(r);let l=c.reduce((f,p)=>f*p,1),m=a[i];if(o){let f=s,p=new Float64Array(l*2);for(let g=0;g<l;g++){let h=0,b=0;for(let A=0;A<m;A++){let S=$(g,i,A,a),x=U(S,a),w=f[x*2],N=f[x*2+1];nr(w,N)||(h+=w,b+=N)}p[g*2]=h,p[g*2+1]=b}if(e){let g=[...a];return g[i]=1,D.fromData(p,g,n)}return D.fromData(p,c,n)}let y=new Float64Array(l);for(let f=0;f<l;f++){let p=0;for(let g=0;g<m;g++){let h=$(f,i,g,a),b=U(h,a),A=Number(s[b]);isNaN(A)||(p+=A)}y[f]=p}let d=D.fromData(y,c,"float64");if(e){let f=[...a];return f[i]=1,D.fromData(y,f,"float64")}return d}function Tt(r,t,e=!1){let n=r.dtype,o=M(n),a=r.shape,u=a.length,s=r.data;if(t===void 0){if(o){let p=s,g=1,h=0;for(let b=0;b<r.size;b++){let A=p[b*2],S=p[b*2+1];if(!nr(A,S)){let x=g*A-h*S,w=g*S+h*A;g=x,h=w}}return new O(g,h)}let f=1;for(let p=0;p<r.size;p++){let g=Number(s[p]);isNaN(g)||(f*=g)}return f}let i=t;if(i<0&&(i=u+i),i<0||i>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let c=Array.from(a).filter((f,p)=>p!==i);if(c.length===0)return Tt(r);let l=c.reduce((f,p)=>f*p,1),m=a[i];if(o){let f=s,p=new Float64Array(l*2);for(let g=0;g<l;g++){let h=1,b=0;for(let A=0;A<m;A++){let S=$(g,i,A,a),x=U(S,a),w=f[x*2],N=f[x*2+1];if(!nr(w,N)){let I=h*w-b*N,z=h*N+b*w;h=I,b=z}}p[g*2]=h,p[g*2+1]=b}if(e){let g=[...a];return g[i]=1,D.fromData(p,g,n)}return D.fromData(p,c,n)}let y=new Float64Array(l);for(let f=0;f<l;f++){let p=1;for(let g=0;g<m;g++){let h=$(f,i,g,a),b=U(h,a),A=Number(s[b]);isNaN(A)||(p*=A)}y[f]=p}let d=D.fromData(y,c,"float64");if(e){let f=[...a];return f[i]=1,D.fromData(y,f,"float64")}return d}function Et(r,t,e=!1){let n=r.dtype,o=M(n),a=r.shape,u=a.length,s=r.data;if(t===void 0){if(o){let g=s,h=0,b=0,A=0;for(let S=0;S<r.size;S++){let x=g[S*2],w=g[S*2+1];nr(x,w)||(h+=x,b+=w,A++)}return A===0?new O(NaN,NaN):new O(h/A,b/A)}let f=0,p=0;for(let g=0;g<r.size;g++){let h=Number(s[g]);isNaN(h)||(f+=h,p++)}return p===0?NaN:f/p}let i=t;if(i<0&&(i=u+i),i<0||i>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let c=Array.from(a).filter((f,p)=>p!==i);if(c.length===0)return Et(r);let l=c.reduce((f,p)=>f*p,1),m=a[i];if(o){let f=s,p=new Float64Array(l*2);for(let g=0;g<l;g++){let h=0,b=0,A=0;for(let S=0;S<m;S++){let x=$(g,i,S,a),w=U(x,a),N=f[w*2],I=f[w*2+1];nr(N,I)||(h+=N,b+=I,A++)}A===0?(p[g*2]=NaN,p[g*2+1]=NaN):(p[g*2]=h/A,p[g*2+1]=b/A)}if(e){let g=[...a];return g[i]=1,D.fromData(p,g,n)}return D.fromData(p,c,n)}let y=new Float64Array(l);for(let f=0;f<l;f++){let p=0,g=0;for(let h=0;h<m;h++){let b=$(f,i,h,a),A=U(b,a),S=Number(s[A]);isNaN(S)||(p+=S,g++)}y[f]=g===0?NaN:p/g}let d=D.fromData(y,c,"float64");if(e){let f=[...a];return f[i]=1,D.fromData(y,f,"float64")}return d}function jr(r,t,e=0,n=!1){let o=r.dtype,a=r.shape,u=a.length,s=r.data;if(M(o)){let f=s;if(t===void 0){let x=0,w=0,N=0;for(let _=0;_<r.size;_++){let T=f[_*2],E=f[_*2+1];nr(T,E)||(x+=T,w+=E,N++)}if(N-e<=0)return NaN;let I=x/N,z=w/N,F=0;for(let _=0;_<r.size;_++){let T=f[_*2],E=f[_*2+1];if(!nr(T,E)){let C=T-I,k=E-z;F+=C*C+k*k}}return F/(N-e)}let p=t;if(p<0&&(p=u+p),p<0||p>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let g=Array.from(a).filter((x,w)=>w!==p);if(g.length===0)return jr(r,void 0,e);let h=g.reduce((x,w)=>x*w,1),b=a[p],A=new Float64Array(h);for(let x=0;x<h;x++){let w=0,N=0,I=0;for(let T=0;T<b;T++){let E=$(x,p,T,a),C=U(E,a),k=f[C*2],V=f[C*2+1];nr(k,V)||(w+=k,N+=V,I++)}if(I-e<=0){A[x]=NaN;continue}let z=w/I,F=N/I,_=0;for(let T=0;T<b;T++){let E=$(x,p,T,a),C=U(E,a),k=f[C*2],V=f[C*2+1];if(!nr(k,V)){let R=k-z,L=V-F;_+=R*R+L*L}}A[x]=_/(I-e)}let S=D.fromData(A,g,"float64");if(n){let x=[...a];return x[p]=1,D.fromData(A,x,"float64")}return S}if(t===void 0){let f=0,p=0;for(let b=0;b<r.size;b++){let A=Number(s[b]);isNaN(A)||(f+=A,p++)}if(p-e<=0)return NaN;let g=f/p,h=0;for(let b=0;b<r.size;b++){let A=Number(s[b]);isNaN(A)||(h+=(A-g)**2)}return h/(p-e)}let i=t;if(i<0&&(i=u+i),i<0||i>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let c=Array.from(a).filter((f,p)=>p!==i);if(c.length===0)return jr(r,void 0,e);let l=c.reduce((f,p)=>f*p,1),m=a[i],y=new Float64Array(l);for(let f=0;f<l;f++){let p=0,g=0;for(let A=0;A<m;A++){let S=$(f,i,A,a),x=U(S,a),w=Number(s[x]);isNaN(w)||(p+=w,g++)}if(g-e<=0){y[f]=NaN;continue}let h=p/g,b=0;for(let A=0;A<m;A++){let S=$(f,i,A,a),x=U(S,a),w=Number(s[x]);isNaN(w)||(b+=(w-h)**2)}y[f]=b/(g-e)}let d=D.fromData(y,c,"float64");if(n){let f=[...a];return f[i]=1,D.fromData(y,f,"float64")}return d}function De(r,t,e=0,n=!1){let o=jr(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=o,u=new Float64Array(a.size);for(let s=0;s<a.size;s++)u[s]=Math.sqrt(Number(a.data[s]));return D.fromData(u,[...a.shape],"float64")}function et(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.data;if(M(n)){let d=u;if(t===void 0){let S=1/0,x=1/0,w=!1;for(let N=0;N<r.size;N++){let I=d[N*2],z=d[N*2+1];isNaN(I)||isNaN(z)||(w?(I<S||I===S&&z<x)&&(S=I,x=z):(S=I,x=z,w=!0))}return w?new O(S,x):new O(NaN,NaN)}let f=t;if(f<0&&(f=a+f),f<0||f>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let p=Array.from(o).filter((S,x)=>x!==f);if(p.length===0)return et(r);let g=p.reduce((S,x)=>S*x,1),h=o[f],b=new Float64Array(g*2);for(let S=0;S<g;S++){let x=1/0,w=1/0,N=!1;for(let I=0;I<h;I++){let z=$(S,f,I,o),F=U(z,o),_=d[F*2],T=d[F*2+1];isNaN(_)||isNaN(T)||(N?(_<x||_===x&&T<w)&&(x=_,w=T):(x=_,w=T,N=!0))}b[S*2]=N?x:NaN,b[S*2+1]=N?w:NaN}let A=D.fromData(b,p,n);if(e){let S=[...o];return S[f]=1,D.fromData(b,S,n)}return A}if(t===void 0){let d=1/0;for(let f=0;f<r.size;f++){let p=Number(u[f]);!isNaN(p)&&p<d&&(d=p)}return d===1/0?NaN:d}let s=t;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let i=Array.from(o).filter((d,f)=>f!==s);if(i.length===0)return et(r);let c=i.reduce((d,f)=>d*f,1),l=o[s],m=new Float64Array(c);for(let d=0;d<c;d++){let f=1/0;for(let p=0;p<l;p++){let g=$(d,s,p,o),h=U(g,o),b=Number(u[h]);!isNaN(b)&&b<f&&(f=b)}m[d]=f===1/0?NaN:f}let y=D.fromData(m,i,"float64");if(e){let d=[...o];return d[s]=1,D.fromData(m,d,"float64")}return y}function nt(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.data;if(M(n)){let d=u;if(t===void 0){let S=-1/0,x=-1/0,w=!1;for(let N=0;N<r.size;N++){let I=d[N*2],z=d[N*2+1];isNaN(I)||isNaN(z)||(w?(I>S||I===S&&z>x)&&(S=I,x=z):(S=I,x=z,w=!0))}return w?new O(S,x):new O(NaN,NaN)}let f=t;if(f<0&&(f=a+f),f<0||f>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let p=Array.from(o).filter((S,x)=>x!==f);if(p.length===0)return nt(r);let g=p.reduce((S,x)=>S*x,1),h=o[f],b=new Float64Array(g*2);for(let S=0;S<g;S++){let x=-1/0,w=-1/0,N=!1;for(let I=0;I<h;I++){let z=$(S,f,I,o),F=U(z,o),_=d[F*2],T=d[F*2+1];isNaN(_)||isNaN(T)||(N?(_>x||_===x&&T>w)&&(x=_,w=T):(x=_,w=T,N=!0))}b[S*2]=N?x:NaN,b[S*2+1]=N?w:NaN}let A=D.fromData(b,p,n);if(e){let S=[...o];return S[f]=1,D.fromData(b,S,n)}return A}if(t===void 0){let d=-1/0;for(let f=0;f<r.size;f++){let p=Number(u[f]);!isNaN(p)&&p>d&&(d=p)}return d===-1/0?NaN:d}let s=t;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let i=Array.from(o).filter((d,f)=>f!==s);if(i.length===0)return nt(r);let c=i.reduce((d,f)=>d*f,1),l=o[s],m=new Float64Array(c);for(let d=0;d<c;d++){let f=-1/0;for(let p=0;p<l;p++){let g=$(d,s,p,o),h=U(g,o),b=Number(u[h]);!isNaN(b)&&b>f&&(f=b)}m[d]=f===-1/0?NaN:f}let y=D.fromData(m,i,"float64");if(e){let d=[...o];return d[s]=1,D.fromData(m,d,"float64")}return y}function ot(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let m=a;if(t===void 0){let h=1/0,b=1/0,A=-1;for(let S=0;S<r.size;S++){let x=m[S*2],w=m[S*2+1];!nr(x,w)&&vr(x,w,h,b)<0&&(h=x,b=w,A=S)}return A}let y=t;if(y<0&&(y=o+y),y<0||y>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let d=Array.from(n).filter((h,b)=>b!==y);if(d.length===0)return ot(r);let f=d.reduce((h,b)=>h*b,1),p=n[y],g=new Int32Array(f);for(let h=0;h<f;h++){let b=1/0,A=1/0,S=0;for(let x=0;x<p;x++){let w=$(h,y,x,n),N=U(w,n),I=m[N*2],z=m[N*2+1];!nr(I,z)&&vr(I,z,b,A)<0&&(b=I,A=z,S=x)}g[h]=S}return D.fromData(g,d,"int32")}if(t===void 0){let m=1/0,y=-1;for(let d=0;d<r.size;d++){let f=Number(a[d]);!isNaN(f)&&f<m&&(m=f,y=d)}return y}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((m,y)=>y!==u);if(s.length===0)return ot(r);let i=s.reduce((m,y)=>m*y,1),c=n[u],l=new Int32Array(i);for(let m=0;m<i;m++){let y=1/0,d=0;for(let f=0;f<c;f++){let p=$(m,u,f,n),g=U(p,n),h=Number(a[g]);!isNaN(h)&&h<y&&(y=h,d=f)}l[m]=d}return D.fromData(l,s,"int32")}function at(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let m=a;if(t===void 0){let h=-1/0,b=-1/0,A=-1;for(let S=0;S<r.size;S++){let x=m[S*2],w=m[S*2+1];!nr(x,w)&&vr(x,w,h,b)>0&&(h=x,b=w,A=S)}return A}let y=t;if(y<0&&(y=o+y),y<0||y>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let d=Array.from(n).filter((h,b)=>b!==y);if(d.length===0)return at(r);let f=d.reduce((h,b)=>h*b,1),p=n[y],g=new Int32Array(f);for(let h=0;h<f;h++){let b=-1/0,A=-1/0,S=0;for(let x=0;x<p;x++){let w=$(h,y,x,n),N=U(w,n),I=m[N*2],z=m[N*2+1];!nr(I,z)&&vr(I,z,b,A)>0&&(b=I,A=z,S=x)}g[h]=S}return D.fromData(g,d,"int32")}if(t===void 0){let m=-1/0,y=-1;for(let d=0;d<r.size;d++){let f=Number(a[d]);!isNaN(f)&&f>m&&(m=f,y=d)}return y}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((m,y)=>y!==u);if(s.length===0)return at(r);let i=s.reduce((m,y)=>m*y,1),c=n[u],l=new Int32Array(i);for(let m=0;m<i;m++){let y=-1/0,d=0;for(let f=0;f<c;f++){let p=$(m,u,f,n),g=U(p,n),h=Number(a[g]);!isNaN(h)&&h>y&&(y=h,d=f)}l[m]=d}return D.fromData(l,s,"int32")}function Ne(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let d=a,f=r.size;if(t===void 0){let N=D.zeros([f],e),I=N.data,z=0,F=0;for(let _=0;_<f;_++){let T=d[_*2],E=d[_*2+1];nr(T,E)||(z+=T,F+=E),I[_*2]=z,I[_*2+1]=F}return N}let p=t;if(p<0&&(p=o+p),p<0||p>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let g=D.zeros([...n],e),h=g.data,b=n[p],A=[],S=1;for(let N=o-1;N>=0;N--)A.unshift(S),S*=n[N];let x=r.size,w=A[p];for(let N=0;N<x;N++){let I=d[N*2],z=d[N*2+1],F=Math.floor(N/w)%b,_=nr(I,z);F===0?(h[N*2]=_?0:I,h[N*2+1]=_?0:z):(h[N*2]=h[(N-w)*2]+(_?0:I),h[N*2+1]=h[(N-w)*2+1]+(_?0:z))}return g}if(t===void 0){let d=r.size,f=new Float64Array(d),p=0;for(let g=0;g<d;g++){let h=Number(a[g]);isNaN(h)||(p+=h),f[g]=p}return D.fromData(f,[d],"float64")}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=new Float64Array(r.size),i=n[u],c=[],l=1;for(let d=o-1;d>=0;d--)c.unshift(l),l*=n[d];let m=r.size,y=c[u];for(let d=0;d<m;d++){let f=Number(a[d]);Math.floor(d/y)%i===0?s[d]=isNaN(f)?0:f:s[d]=s[d-y]+(isNaN(f)?0:f)}return D.fromData(s,[...n],"float64")}function we(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let d=a,f=r.size;if(t===void 0){let N=D.zeros([f],e),I=N.data,z=1,F=0;for(let _=0;_<f;_++){let T=d[_*2],E=d[_*2+1];if(!nr(T,E)){let C=z*T-F*E,k=z*E+F*T;z=C,F=k}I[_*2]=z,I[_*2+1]=F}return N}let p=t;if(p<0&&(p=o+p),p<0||p>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let g=D.zeros([...n],e),h=g.data,b=n[p],A=[],S=1;for(let N=o-1;N>=0;N--)A.unshift(S),S*=n[N];let x=r.size,w=A[p];for(let N=0;N<x;N++){let I=d[N*2],z=d[N*2+1],F=Math.floor(N/w)%b,_=nr(I,z);if(F===0)h[N*2]=_?1:I,h[N*2+1]=_?0:z;else{let T=h[(N-w)*2],E=h[(N-w)*2+1];_?(h[N*2]=T,h[N*2+1]=E):(h[N*2]=T*I-E*z,h[N*2+1]=T*z+E*I)}}return g}if(t===void 0){let d=r.size,f=new Float64Array(d),p=1;for(let g=0;g<d;g++){let h=Number(a[g]);isNaN(h)||(p*=h),f[g]=p}return D.fromData(f,[d],"float64")}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=new Float64Array(r.size),i=n[u],c=[],l=1;for(let d=o-1;d>=0;d--)c.unshift(l),l*=n[d];let m=r.size,y=c[u];for(let d=0;d<m;d++){let f=Number(a[d]);Math.floor(d/y)%i===0?s[d]=isNaN(f)?1:f:s[d]=s[d-y]*(isNaN(f)?1:f)}return D.fromData(s,[...n],"float64")}function Ot(r,t,e=!1){q(r.dtype,"nanmedian","Complex numbers are not orderable.");let n=r.shape,o=n.length,a=r.data;if(t===void 0){let y=[];for(let p=0;p<r.size;p++){let g=Number(a[p]);isNaN(g)||y.push(g)}if(y.length===0)return NaN;y.sort((p,g)=>p-g);let d=y.length,f=Math.floor(d/2);return d%2===0?(y[f-1]+y[f])/2:y[f]}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((y,d)=>d!==u);if(s.length===0)return Ot(r);let i=s.reduce((y,d)=>y*d,1),c=n[u],l=new Float64Array(i);for(let y=0;y<i;y++){let d=[];for(let g=0;g<c;g++){let h=$(y,u,g,n),b=U(h,n),A=Number(a[b]);isNaN(A)||d.push(A)}if(d.length===0){l[y]=NaN;continue}d.sort((g,h)=>g-h);let f=d.length,p=Math.floor(f/2);f%2===0?l[y]=(d[p-1]+d[p])/2:l[y]=d[p]}let m=D.fromData(l,s,"float64");if(e){let y=[...n];return y[u]=1,D.fromData(l,y,"float64")}return m}var Ao=W(()=>{"use strict";X();J();le();xr()});function ir(r,t){let e=r.size,n=r.dtype,o=t.indexOf(-1),a;if(o!==-1){let c=t.reduce((m,y,d)=>d===o?m:m*y,1),l=e/c;if(!Number.isInteger(l))throw new Error(`cannot reshape array of size ${e} into shape ${JSON.stringify(t)}`);a=t.map((m,y)=>y===o?l:m)}else a=t;if(a.reduce((c,l)=>c*l,1)!==e)throw new Error(`cannot reshape array of size ${e} into shape ${JSON.stringify(a)}`);if(r.isCContiguous){let c=r.data;return D.fromData(c,a,n,ur(a),0)}let i=r.copy().data;return D.fromData(i,a,n,ur(a),0)}function Ct(r){let t=r.size,e=r.dtype,n=j(e);if(!n)throw new Error(`Cannot flatten array with dtype ${e}`);if(r.isCContiguous){let s=r.data.slice(r.offset,r.offset+t);return D.fromData(s,[t],e,[1],0)}let o=new n(t),a=B(e);for(let u=0;u<t;u++){let s=r.iget(u);o[u]=s}return D.fromData(o,[t],e,[1],0)}function Wr(r){let t=r.size,e=r.dtype;if(r.isCContiguous){let n=r.data;return D.fromData(n,[t],e,[1],0)}return Ct(r)}function it(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,u=r.dtype,s;if(t===void 0)s=Array.from({length:n},(m,y)=>n-1-y);else{if(t.length!==n)throw new Error(`axes must have length ${n}, got ${t.length}`);let m=new Set;for(let y of t){let d=y<0?n+y:y;if(d<0||d>=n)throw new Error(`axis ${y} is out of bounds for array of dimension ${n}`);if(m.has(d))throw new Error("repeated axis in transpose");m.add(d)}s=t.map(y=>y<0?n+y:y)}let i=s.map(m=>e[m]),c=Array.from(o),l=s.map(m=>c[m]);return D.fromData(a,i,u,l,r.offset)}function bo(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,u=r.dtype;if(t===void 0){let s=[],i=[];for(let c=0;c<n;c++)e[c]!==1&&(s.push(e[c]),i.push(o[c]));return s.length===0&&(s.push(1),i.push(1)),D.fromData(a,s,u,i,r.offset)}else{let s=t<0?n+t:t;if(s<0||s>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);if(e[s]!==1)throw new Error(`cannot select an axis which has size not equal to one (axis ${t} has size ${e[s]})`);let i=[],c=[];for(let l=0;l<n;l++)l!==s&&(i.push(e[l]),c.push(o[l]));return D.fromData(a,i,u,c,r.offset)}}function st(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,u=r.dtype,s=t;if(s<0&&(s=n+t+1),s<0||s>n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n+1}`);let i=[...Array.from(e)];i.splice(s,0,1);let c=[...Array.from(o)],l=s<n?o[s]*(e[s]||1):1;return c.splice(s,0,l),D.fromData(a,i,u,c,r.offset)}function ho(r,t,e){let n=r.shape,o=n.length,a=r.strides,u=r.data,s=r.dtype,i=t<0?o+t:t,c=e<0?o+e:e;if(i<0||i>=o)throw new Error(`axis1 ${t} is out of bounds for array of dimension ${o}`);if(c<0||c>=o)throw new Error(`axis2 ${e} is out of bounds for array of dimension ${o}`);if(i===c)return D.fromData(u,Array.from(n),s,Array.from(a),r.offset);let l=Array.from(n),m=Array.from(a);return[l[i],l[c]]=[l[c],l[i]],[m[i],m[c]]=[m[c],m[i]],D.fromData(u,l,s,m,r.offset)}function Ie(r,t,e){let n=r.ndim,o=Array.isArray(t)?t:[t],a=Array.isArray(e)?e:[e];if(o.length!==a.length)throw new Error("source and destination must have the same number of elements");let u=o.map(c=>{let l=c<0?n+c:c;if(l<0||l>=n)throw new Error(`source axis ${c} is out of bounds for array of dimension ${n}`);return l}),s=a.map(c=>{let l=c<0?n+c:c;if(l<0||l>=n)throw new Error(`destination axis ${c} is out of bounds for array of dimension ${n}`);return l});if(new Set(u).size!==u.length)throw new Error("repeated axis in source");if(new Set(s).size!==s.length)throw new Error("repeated axis in destination");let i=[];for(let c=0;c<n;c++)u.includes(c)||i.push(c);for(let c=0;c<u.length;c++){let l=s[c];i.splice(l,0,u[c])}return it(r,i)}function Cr(r,t=0){if(r.length===0)throw new Error("need at least one array to concatenate");if(r.length===1)return r[0].copy();let e=r[0],n=e.ndim,o=e.dtype,a=t<0?n+t:t;if(a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);for(let d=1;d<r.length;d++){let f=r[d];if(f.ndim!==n)throw new Error("all the input arrays must have same number of dimensions");for(let p=0;p<n;p++)if(p!==a&&f.shape[p]!==e.shape[p])throw new Error("all the input array dimensions except for the concatenation axis must match exactly")}let u=Array.from(e.shape),s=e.shape[a];for(let d=1;d<r.length;d++)s+=r[d].shape[a];u[a]=s;let i=u.reduce((d,f)=>d*f,1),c=j(o);if(!c)throw new Error(`Cannot concatenate arrays with dtype ${o}`);let l=new c(i),m=ur(u),y=0;for(let d of r){let f=d.shape[a];ec(d,l,u,m,a,y,o),y+=f}return D.fromData(l,u,o)}function ec(r,t,e,n,o,a,u){let s=r.shape,i=s.length,c=r.size,l=u==="int64"||u==="uint64";if(o===0&&r.isCContiguous&&i>0){let d=a*n[0],f=r.data,p=r.offset,g=p+c;t.set(f.subarray(p,g),d);return}if(o===1&&i===2&&r.isCContiguous){let d=s[0],f=s[1],p=e[1],g=r.data,h=r.offset;for(let b=0;b<d;b++){let A=h+b*f,S=b*p+a;t.set(g.subarray(A,A+f),S)}return}let m=new Array(i).fill(0),y=a*n[o];for(let d=0;d<c;d++){let f=r.iget(d),p=y;for(let g=0;g<i;g++)p+=m[g]*n[g];t[p]=f;for(let g=i-1;g>=0&&(m[g]++,!(m[g]<s[g]));g--)m[g]=0}}function So(r,t=0){if(r.length===0)throw new Error("need at least one array to stack");let e=r[0],n=e.shape,o=e.ndim,a=t<0?o+1+t:t;if(a<0||a>o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o+1}`);for(let s=1;s<r.length;s++){let i=r[s];if(i.ndim!==o)throw new Error("all input arrays must have the same shape");for(let c=0;c<o;c++)if(i.shape[c]!==n[c])throw new Error("all input arrays must have the same shape")}let u=r.map(s=>st(s,a));return Cr(u,a)}function xo(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?ir(e,[1,e.shape[0]]):e);return Cr(t,0)}function ze(r){if(r.length===0)throw new Error("need at least one array to stack");return r.every(e=>e.ndim===1)?Cr(r,0):Cr(r,1)}function Do(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?ir(st(ir(e,[1,e.shape[0]]),2),[1,e.shape[0],1]):e.ndim===2?st(e,2):e);return Cr(t,2)}function No(r,t,e=0){let n=r.shape,o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=n[a],s;if(typeof t=="number"){if(u%t!==0)throw new Error("array split does not result in an equal division");let i=u/t;s=[];for(let c=1;c<t;c++)s.push(c*i)}else s=t;return wo(r,s,a)}function ut(r,t,e=0){let n=r.shape,o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=n[a],s;if(typeof t=="number"){let i=t,c=Math.floor(u/i),l=u%i;s=[];let m=0;for(let y=0;y<i-1;y++)m+=c+(y<l?1:0),s.push(m)}else s=t;return wo(r,s,a)}function wo(r,t,e){let n=r.shape,o=n[e],a=[0,...t,o],u=[];for(let s=0;s<a.length-1;s++){let i=a[s],c=a[s+1];if(i>c)throw new Error("split indices must be in ascending order");let l=Array.from(n);l[e]=c-i;let m=r.offset+i*r.strides[e];u.push(D.fromData(r.data,l,r.dtype,Array.from(r.strides),m))}return u}function Io(r,t){if(r.ndim<2)throw new Error("vsplit only works on arrays of 2 or more dimensions");return ut(r,t,0)}function zo(r,t){if(r.ndim<1)throw new Error("hsplit only works on arrays of 1 or more dimensions");let e=r.ndim===1?0:1;return ut(r,t,e)}function _o(r,t){let e=r.shape,n=e.length,o=r.dtype,a=Array.isArray(t)?t:[t],u=Math.max(n,a.length),s=new Array(u).fill(1),i=new Array(u).fill(1);for(let b=0;b<n;b++)s[u-n+b]=e[b];for(let b=0;b<a.length;b++)i[u-a.length+b]=a[b];let c=s.map((b,A)=>b*i[A]),l=c.reduce((b,A)=>b*A,1),m=j(o);if(!m)throw new Error(`Cannot tile array with dtype ${o}`);let y=new m(l),d=ur(c),f=r;n<u&&(f=ir(r,s));let p=o==="int64"||o==="uint64",g=f.strides,h=new Array(u).fill(0);for(let b=0;b<l;b++){let A=f.offset;for(let w=0;w<u;w++){let N=h[w]%s[w];A+=N*g[w]}let S=f.data[A],x=0;for(let w=0;w<u;w++)x+=h[w]*d[w];y[x]=S;for(let w=u-1;w>=0&&(h[w]++,!(h[w]<c[w]));w--)h[w]=0}return D.fromData(y,c,o)}function Fo(r,t,e){let n=r.shape,o=n.length,a=r.dtype,u=r.size;if(e===void 0){let b=u,A=Array.isArray(t)?t:new Array(b).fill(t);if(A.length!==b)throw new Error(`operands could not be broadcast together with shape (${b},) (${A.length},)`);let S=A.reduce((I,z)=>I+z,0),x=j(a);if(!x)throw new Error(`Cannot repeat array with dtype ${a}`);let w=new x(S),N=0;for(let I=0;I<b;I++){let z=r.iget(I),F=A[I];for(let _=0;_<F;_++)w[N++]=z}return D.fromData(w,[S],a)}let s=e<0?o+e:e;if(s<0||s>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=n[s],c=Array.isArray(t)?t:new Array(i).fill(t);if(c.length!==i)throw new Error(`operands could not be broadcast together with shape (${i},) (${c.length},)`);let l=Array.from(n);l[s]=c.reduce((b,A)=>b+A,0);let m=l.reduce((b,A)=>b*A,1),y=j(a);if(!y)throw new Error(`Cannot repeat array with dtype ${a}`);let d=new y(m),f=ur(l),p=new Array(o).fill(0),g=a==="int64"||a==="uint64",h=[0];for(let b=0;b<i;b++)h.push(h[b]+c[b]);for(let b=0;b<u;b++){let A=r.iget(b),S=p[s],x=c[S],w=0;for(let z=0;z<o;z++)z!==s&&(w+=p[z]*f[z]);let N=f[s],I=h[S];for(let z=0;z<x;z++){let F=w+(I+z)*N;d[F]=A}for(let z=o-1;z>=0&&(p[z]++,!(p[z]<n[z]));z--)p[z]=0}return D.fromData(d,l,a)}function Mo(r,t){let e=r.shape,n=e.length,o=r.dtype,a=r.size,u;if(t===void 0)u=new Set(Array.from({length:n},(y,d)=>d));else if(typeof t=="number"){let y=t<0?n+t:t;if(y<0||y>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);u=new Set([y])}else u=new Set(t.map(y=>{let d=y<0?n+y:y;if(d<0||d>=n)throw new Error(`axis ${y} is out of bounds for array of dimension ${n}`);return d}));let s=j(o);if(!s)throw new Error(`Cannot flip array with dtype ${o}`);let i=new s(a),c=B(o);if(n===1&&r.isCContiguous){let y=r.data,d=r.offset;for(let f=0;f<a;f++)i[f]=y[d+a-1-f];return D.fromData(i,[...e],o)}if(n===2&&r.isCContiguous){let y=e[0],d=e[1],f=r.data,p=r.offset;if(u.size===2){for(let g=0;g<a;g++)i[g]=f[p+a-1-g];return D.fromData(i,[...e],o)}if(u.size===1){if(u.has(0)){for(let g=0;g<y;g++){let h=p+(y-1-g)*d,b=g*d;for(let A=0;A<d;A++)i[b+A]=f[h+A]}return D.fromData(i,[...e],o)}else if(u.has(1)){for(let g=0;g<y;g++){let h=p+g*d,b=g*d;for(let A=0;A<d;A++)i[b+A]=f[h+d-1-A]}return D.fromData(i,[...e],o)}}}let l=new Array(n),m=new Array(n).fill(0);for(let y=0;y<a;y++){for(let p=0;p<n;p++)l[p]=u.has(p)?e[p]-1-m[p]:m[p];let d=r.offset;for(let p=0;p<n;p++)d+=l[p]*r.strides[p];let f=r.data[d];i[y]=f;for(let p=n-1;p>=0&&(m[p]++,!(m[p]<e[p]));p--)m[p]=0}return D.fromData(i,[...e],o)}function Bo(r,t=1,e=[0,1]){let n=r.shape,o=n.length,a=r.dtype;if(o<2)throw new Error("Input must be at least 2-D");let u=e[0]<0?o+e[0]:e[0],s=e[1]<0?o+e[1]:e[1];if(u<0||u>=o||s<0||s>=o)throw new Error(`Axes are out of bounds for array of dimension ${o}`);if(u===s)throw new Error("Axes must be different");if(t=(t%4+4)%4,t===0)return r.copy();let i=j(a);if(!i)throw new Error(`Cannot rotate array with dtype ${a}`);let c=[...n];(t===1||t===3)&&([c[u],c[s]]=[c[s],c[u]]);let l=c.reduce((g,h)=>g*h,1),m=new i(l),y=ur(c),d=B(a),f=new Array(o).fill(0),p=new Array(o);for(let g=0;g<r.size;g++){for(let x=0;x<o;x++)p[x]=f[x];let h,b;t===1?(h=n[s]-1-f[s],b=f[u]):t===2?(h=n[u]-1-f[u],b=n[s]-1-f[s],p[u]=h,p[s]=b):(h=f[s],b=n[u]-1-f[u]),t!==2&&(p[u]=h,p[s]=b);let A=0;for(let x=0;x<o;x++)A+=p[x]*y[x];let S=r.iget(g);m[A]=S;for(let x=o-1;x>=0&&(f[x]++,!(f[x]<n[x]));x--)f[x]=0}return D.fromData(m,c,a)}function vo(r,t,e){let n=r.shape,o=n.length,a=r.dtype,u=r.size;if(e===void 0){let f=Array.isArray(t)?t.reduce((A,S)=>A+S,0):t,p=Ct(r),g=j(a);if(!g)throw new Error(`Cannot roll array with dtype ${a}`);let h=new g(u),b=B(a);for(let A=0;A<u;A++){let S=((A-f)%u+u)%u,x=p.iget(S);h[A]=x}return D.fromData(h,[...n],a)}let s=Array.isArray(t)?t:[t],i=Array.isArray(e)?e:[e];if(s.length!==i.length)throw new Error("shift and axis must have the same length");let c=i.map(f=>{let p=f<0?o+f:f;if(p<0||p>=o)throw new Error(`axis ${f} is out of bounds for array of dimension ${o}`);return p}),l=j(a);if(!l)throw new Error(`Cannot roll array with dtype ${a}`);let m=new l(u),y=B(a),d=new Array(o).fill(0);for(let f=0;f<u;f++){let p=[...d];for(let b=0;b<c.length;b++){let A=c[b],S=n[A],x=s[b];p[A]=((p[A]-x)%S+S)%S}let g=r.offset;for(let b=0;b<o;b++)g+=p[b]*r.strides[b];let h=r.data[g];m[f]=h;for(let b=o-1;b>=0&&(d[b]++,!(d[b]<n[b]));b--)d[b]=0}return D.fromData(m,[...n],a)}function To(r,t,e=0){let n=r.ndim,o=t<0?n+t:t;if(o<0||o>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let a=e<0?n+e:e;if(a<0||a>n)throw new Error(`start ${e} is out of bounds`);return o<a&&a--,o===a?D.fromData(r.data,Array.from(r.shape),r.dtype,Array.from(r.strides),r.offset):Ie(r,o,a)}function Eo(r,t){if(r.ndim<3)throw new Error("dsplit only works on arrays of 3 or more dimensions");return ut(r,t,2)}function Oo(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?ir(e,[e.shape[0],1]):e);return ze(t)}function Co(r,t){let e=r.dtype,n=t.reduce((i,c)=>i*c,1),o=r.size,a=j(e);if(!a)throw new Error(`Cannot resize array with dtype ${e}`);let u=new a(n),s=B(e);for(let i=0;i<n;i++){let c=i%o,l=r.iget(c);u[i]=l}return D.fromData(u,t,e)}function Uo(r){return r.map(t=>t.ndim===0?ir(t,[1]):t)}function $o(r){return r.map(t=>t.ndim===0?ir(t,[1,1]):t.ndim===1?ir(t,[1,t.shape[0]]):t)}function Ro(r){return r.map(t=>t.ndim===0?ir(t,[1,1,1]):t.ndim===1?ir(t,[1,t.shape[0],1]):t.ndim===2?ir(t,[t.shape[0],t.shape[1],1]):t)}var _e=W(()=>{"use strict";X();J()});function Gr(r,t){if(r instanceof O||t instanceof O){let e=r instanceof O?r:new O(Number(r),0),n=t instanceof O?t:new O(Number(t),0);return e.mul(n)}return typeof r=="bigint"&&typeof t=="bigint"?Number(r*t):Number(r)*Number(t)}function nc(r,t,e,n,o,a,u,s,i,c,l,m,y,d){if(m===0)for(let h=0;h<n*o;h++)y[h]=0;else if(m!==1)for(let h=0;h<n*o;h++)y[h]=(y[h]??0)*m;let f=r==="row-major",p=t==="transpose",g=e==="transpose";if(f&&!p&&!g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[h*i+S]??0)*(c[S*l+b]??0);y[h*d+b]=(y[h*d+b]??0)+u*A}else if(f&&p&&!g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[S*i+h]??0)*(c[S*l+b]??0);y[h*d+b]=(y[h*d+b]??0)+u*A}else if(f&&!p&&g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[h*i+S]??0)*(c[b*l+S]??0);y[h*d+b]=(y[h*d+b]??0)+u*A}else if(f&&p&&g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[S*i+h]??0)*(c[b*l+S]??0);y[h*d+b]=(y[h*d+b]??0)+u*A}else if(!f&&!p&&!g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[S*i+h]??0)*(c[b*l+S]??0);y[b*d+h]=(y[b*d+h]??0)+u*A}else if(!f&&p&&!g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[h*i+S]??0)*(c[b*l+S]??0);y[b*d+h]=(y[b*d+h]??0)+u*A}else if(!f&&!p&&g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[S*i+h]??0)*(c[S*l+b]??0);y[b*d+h]=(y[b*d+h]??0)+u*A}else for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[h*i+S]??0)*(c[S*l+b]??0);y[b*d+h]=(y[b*d+h]??0)+u*A}}function Me(r,t){let e=r.ndim,n=t.ndim,o=M(r.dtype)||M(t.dtype);if(e===0||n===0){let a=e===0?r.get():null,u=n===0?t.get():null;if(e===0&&n===0)return Gr(a,u);if(e===0){let s=Z(r.dtype,t.dtype),i=D.zeros([...t.shape],s),c=(l,m)=>{let y=new Array(m.length),d=l;for(let f=m.length-1;f>=0;f--)y[f]=d%m[f],d=Math.floor(d/m[f]);return y};for(let l=0;l<t.size;l++){let m=c(l,t.shape),y=t.get(...m);i.set(m,Gr(a,y))}return i}else{let s=Z(r.dtype,t.dtype),i=D.zeros([...r.shape],s),c=(l,m)=>{let y=new Array(m.length),d=l;for(let f=m.length-1;f>=0;f--)y[f]=d%m[f],d=Math.floor(d/m[f]);return y};for(let l=0;l<r.size;l++){let m=c(l,r.shape),y=r.get(...m);i.set(m,Gr(y,u))}return i}}if(e===1&&n===1){if(r.shape[0]!==t.shape[0])throw new Error(`dot: incompatible shapes (${r.shape[0]},) and (${t.shape[0]},)`);let a=r.shape[0];if(o){let s=0,i=0;for(let c=0;c<a;c++){let l=r.get(c),m=t.get(c),y=Gr(l,m);y instanceof O?(s+=y.re,i+=y.im):s+=y}return new O(s,i)}let u=0;for(let s=0;s<a;s++){let i=r.get(s),c=t.get(s);typeof i=="bigint"&&typeof c=="bigint"?u=Number(u)+Number(i*c):u+=Number(i)*Number(c)}return u}if(e===2&&n===2)return Ar(r,t);if(e===2&&n===1){let[a,u]=r.shape,s=t.shape[0];if(u!==s)throw new Error(`dot: incompatible shapes (${a},${u}) and (${s},)`);let i=Z(r.dtype,t.dtype),c=D.zeros([a],i);if(o)for(let l=0;l<a;l++){let m=0,y=0;for(let d=0;d<u;d++){let f=r.get(l,d),p=t.get(d),g=f instanceof O?f:new O(Number(f),0),h=p instanceof O?p:new O(Number(p),0);m+=g.re*h.re-g.im*h.im,y+=g.re*h.im+g.im*h.re}c.set([l],new O(m,y))}else for(let l=0;l<a;l++){let m=0;for(let y=0;y<u;y++){let d=r.get(l,y),f=t.get(y);typeof d=="bigint"&&typeof f=="bigint"?m=Number(m)+Number(d*f):m+=Number(d)*Number(f)}c.set([l],m)}return c}if(e===1&&n===2){let a=r.shape[0],[u,s]=t.shape;if(a!==u)throw new Error(`dot: incompatible shapes (${a},) and (${u},${s})`);let i=Z(r.dtype,t.dtype),c=D.zeros([s],i);if(o)for(let l=0;l<s;l++){let m=0,y=0;for(let d=0;d<a;d++){let f=r.get(d),p=t.get(d,l),g=f instanceof O?f:new O(Number(f),0),h=p instanceof O?p:new O(Number(p),0);m+=g.re*h.re-g.im*h.im,y+=g.re*h.im+g.im*h.re}c.set([l],new O(m,y))}else for(let l=0;l<s;l++){let m=0;for(let y=0;y<a;y++){let d=r.get(y),f=t.get(y,l);typeof d=="bigint"&&typeof f=="bigint"?m=Number(m)+Number(d*f):m+=Number(d)*Number(f)}c.set([l],m)}return c}if(e>2&&n===1){let a=r.shape[e-1],u=t.shape[0];if(a!==u)throw new Error(`dot: incompatible shapes ${JSON.stringify(r.shape)} and (${u},)`);let s=[...r.shape.slice(0,-1)],i=Z(r.dtype,t.dtype),c=D.zeros(s,i),l=s.reduce((m,y)=>m*y,1);if(o)for(let m=0;m<l;m++){let y=0,d=0,f=m,p=[];for(let g=s.length-1;g>=0;g--)p[g]=f%s[g],f=Math.floor(f/s[g]);for(let g=0;g<a;g++){let h=[...p,g],b=r.get(...h),A=t.get(g),S=b instanceof O?b:new O(Number(b),0),x=A instanceof O?A:new O(Number(A),0);y+=S.re*x.re-S.im*x.im,d+=S.re*x.im+S.im*x.re}c.set(p,new O(y,d))}else for(let m=0;m<l;m++){let y=0,d=m,f=[];for(let p=s.length-1;p>=0;p--)f[p]=d%s[p],d=Math.floor(d/s[p]);for(let p=0;p<a;p++){let g=[...f,p],h=r.get(...g),b=t.get(p);typeof h=="bigint"&&typeof b=="bigint"?y=Number(y)+Number(h*b):y+=Number(h)*Number(b)}c.set(f,y)}return c}if(e===1&&n>2){let a=r.shape[0],u=1,s=t.shape[u];if(a!==s)throw new Error(`dot: incompatible shapes (${a},) and ${JSON.stringify(t.shape)}`);let i=[...t.shape.slice(0,u),...t.shape.slice(u+1)],c=Z(r.dtype,t.dtype),l=D.zeros(i,c),m=i.reduce((y,d)=>y*d,1);if(o)for(let y=0;y<m;y++){let d=y,f=[];for(let A=i.length-1;A>=0;A--)f[A]=d%i[A],d=Math.floor(d/i[A]);let p=f.slice(0,u),g=f.slice(u),h=0,b=0;for(let A=0;A<a;A++){let S=r.get(A),x=[...p,A,...g],w=t.get(...x),N=S instanceof O?S:new O(Number(S),0),I=w instanceof O?w:new O(Number(w),0);h+=N.re*I.re-N.im*I.im,b+=N.re*I.im+N.im*I.re}l.set(f,new O(h,b))}else for(let y=0;y<m;y++){let d=y,f=[];for(let b=i.length-1;b>=0;b--)f[b]=d%i[b],d=Math.floor(d/i[b]);let p=f.slice(0,u),g=f.slice(u),h=0;for(let b=0;b<a;b++){let A=r.get(b),S=[...p,b,...g],x=t.get(...S);typeof A=="bigint"&&typeof x=="bigint"?h=Number(h)+Number(A*x):h+=Number(A)*Number(x)}l.set(f,h)}return l}if(e>=2&&n>=2&&!(e===2&&n===2)){let a=r.shape[e-1],u=t.shape[n-2];if(a!==u)throw new Error(`dot: incompatible shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(t.shape)}`);let s=[...r.shape.slice(0,-1),...t.shape.slice(0,-2),t.shape[n-1]],i=Z(r.dtype,t.dtype),c=D.zeros(s,i),l=r.shape.slice(0,-1).reduce((f,p)=>f*p,1),m=t.shape.slice(0,-2).reduce((f,p)=>f*p,1),y=t.shape[n-1],d=a;if(o)for(let f=0;f<l;f++)for(let p=0;p<m;p++)for(let g=0;g<y;g++){let h=0,b=0;for(let x=0;x<d;x++){let w=[],N=f;for(let C=r.shape.length-2;C>=0;C--)w.unshift(N%r.shape[C]),N=Math.floor(N/r.shape[C]);w.push(x);let I=r.get(...w),z=[],F=p;for(let C=t.shape.length-3;C>=0;C--)z.unshift(F%t.shape[C]),F=Math.floor(F/t.shape[C]);z.push(x,g);let _=t.get(...z),T=I instanceof O?I:new O(Number(I),0),E=_ instanceof O?_:new O(Number(_),0);h+=T.re*E.re-T.im*E.im,b+=T.re*E.im+T.im*E.re}let A=f*m*y+p*y+g,S=c.data;S[A*2]=h,S[A*2+1]=b}else for(let f=0;f<l;f++)for(let p=0;p<m;p++)for(let g=0;g<y;g++){let h=0;for(let A=0;A<d;A++){let S=f*d+A,x=p*d*y+A*y+g,w=r.data[S+r.offset],N=t.data[x+t.offset];typeof w=="bigint"&&typeof N=="bigint"?h=Number(h)+Number(w*N):h+=Number(w)*Number(N)}let b=f*m*y+p*y+g;c.data[b]=h}return c}throw new Error(`dot: unexpected combination of dimensions ${e}D \xB7 ${n}D`)}function Ar(r,t){if(r.ndim!==2||t.ndim!==2)throw new Error("matmul requires 2D arrays");let[e=0,n=0]=r.shape,[o=0,a=0]=t.shape;if(n!==o)throw new Error(`matmul shape mismatch: (${e},${n}) @ (${o},${a})`);let u=Z(r.dtype,t.dtype);if(M(u)){let x=D.zeros([e,a],u),w=x.data,N=r.data,I=t.data;for(let z=0;z<e;z++)for(let F=0;F<a;F++){let _=0,T=0;for(let C=0;C<n;C++){let k=(z*n+C)*2,V=(C*a+F)*2,R=N[k],L=N[k+1],P=I[V],Q=I[V+1];_+=R*P-L*Q,T+=R*Q+L*P}let E=z*a+F;w[E*2]=_,w[E*2+1]=T}return x}let s=u.startsWith("int")||u.startsWith("uint")||u==="bool"?"float64":u;if(s!=="float64")throw new Error(`matmul currently only supports float64, got ${s}`);let i=r.dtype==="float64"?r.data:Float64Array.from(Array.from(r.data).map(Number)),c=t.dtype==="float64"?t.data:Float64Array.from(Array.from(t.data).map(Number));r.offset>0&&(i=i.subarray(r.offset)),t.offset>0&&(c=c.subarray(t.offset));let[l=0,m=0]=r.strides,[y=0,d=0]=t.strides,f=m>l,p=d>y,g=f?"transpose":"no-transpose",h=p?"transpose":"no-transpose",b,A;f?b=m:b=l,p?A=d:A=y;let S=D.zeros([e,a],"float64");return nc("row-major",g,h,e,a,n,1,i,b,c,A,0,S.data,a),S}function Po(r){if(r.ndim!==2)throw new Error(`trace requires 2D array, got ${r.ndim}D`);let[t=0,e=0]=r.shape,n=Math.min(t,e);if(M(r.dtype)){let a=0,u=0;for(let s=0;s<n;s++){let i=r.get(s,s);a+=i.re,u+=i.im}return new O(a,u)}let o=0;for(let a=0;a<n;a++){let u=r.get(a,a);typeof u=="bigint"?o=(typeof o=="bigint"?o:BigInt(o))+u:o=(typeof o=="bigint"?Number(o):o)+u}return o}function qo(r,t){return it(r,t)}function jo(r,t){let e=r.ndim,n=t.ndim,o=M(r.dtype)||M(t.dtype),a=r.shape[e-1],u=t.shape[n-1];if(a!==u)throw new Error(`inner: incompatible shapes - last dimensions ${a} and ${u} don't match`);if(e===1&&n===1)return Me(r,t);let s=[...r.shape.slice(0,-1),...t.shape.slice(0,-1)],i=Z(r.dtype,t.dtype),c=D.zeros(s,i),l=e===1?1:r.shape.slice(0,-1).reduce((d,f)=>d*f,1),m=n===1?1:t.shape.slice(0,-1).reduce((d,f)=>d*f,1),y=a;if(o)for(let d=0;d<l;d++)for(let f=0;f<m;f++){let p=0,g=0;for(let A=0;A<y;A++){let S,x;if(e===1)S=r.get(A);else{let I=[],z=d,F=r.shape.slice(0,-1);for(let _=F.length-1;_>=0;_--)I.unshift(z%F[_]),z=Math.floor(z/F[_]);I.push(A),S=r.get(...I)}if(n===1)x=t.get(A);else{let I=[],z=f,F=t.shape.slice(0,-1);for(let _=F.length-1;_>=0;_--)I.unshift(z%F[_]),z=Math.floor(z/F[_]);I.push(A),x=t.get(...I)}let w=S instanceof O?S:new O(Number(S),0),N=x instanceof O?x:new O(Number(x),0);p+=w.re*N.re-w.im*N.im,g+=w.re*N.im+w.im*N.re}if(s.length===0)return new O(p,g);let h=l===1?f:d*m+f,b=c.data;b[h*2]=p,b[h*2+1]=g}else for(let d=0;d<l;d++)for(let f=0;f<m;f++){let p=0;for(let h=0;h<y;h++){let b=e===1?h:d*y+h,A=n===1?h:f*y+h,S=r.data[b+r.offset],x=t.data[A+t.offset];typeof S=="bigint"&&typeof x=="bigint"?p=Number(p)+Number(S*x):p+=Number(S)*Number(x)}if(s.length===0)return p;let g=l===1?f:d*m+f;c.data[g]=p}return c}function Be(r,t){let e=r.ndim===1?r:Wr(r),n=t.ndim===1?t:Wr(t),o=e.size,a=n.size,u=Z(r.dtype,t.dtype),s=D.zeros([o,a],u);for(let i=0;i<o;i++)for(let c=0;c<a;c++){let l=e.get(i),m=n.get(c),y=Gr(l,m);s.set([i,c],y)}return s}function Lo(r,t,e){let n,o;if(typeof e=="number"){let f=e;if(f<0)throw new Error("tensordot: axes must be non-negative");if(f>r.ndim||f>t.ndim)throw new Error("tensordot: axes exceeds array dimensions");n=Array.from({length:f},(p,g)=>r.ndim-f+g),o=Array.from({length:f},(p,g)=>g)}else if([n,o]=e,n.length!==o.length)throw new Error("tensordot: axes lists must have same length");for(let f=0;f<n.length;f++){let p=n[f],g=o[f];if(p<0||p>=r.ndim||g<0||g>=t.ndim)throw new Error("tensordot: axis out of bounds");if(r.shape[p]!==t.shape[g])throw new Error(`tensordot: shape mismatch on axes ${p} and ${g}: ${r.shape[p]} != ${t.shape[g]}`)}let a=[],u=[];for(let f=0;f<r.ndim;f++)n.includes(f)||a.push(f);for(let f=0;f<t.ndim;f++)o.includes(f)||u.push(f);let s=[...a.map(f=>r.shape[f]),...u.map(f=>t.shape[f])],i=Z(r.dtype,t.dtype),c=M(i),l=f=>f instanceof O?{re:f.re,im:f.im}:{re:Number(f),im:0};if(s.length===0){let f=0,p=0,g=n.map(h=>r.shape[h]).reduce((h,b)=>h*b,1);for(let h=0;h<g;h++){let b=h,A=new Array(n.length);for(let I=n.length-1;I>=0;I--){let z=n[I];A[I]=b%r.shape[z],b=Math.floor(b/r.shape[z])}let S=new Array(r.ndim),x=new Array(t.ndim);for(let I=0;I<n.length;I++)S[n[I]]=A[I];for(let I=0;I<o.length;I++)x[o[I]]=A[I];let w=r.get(...S),N=t.get(...x);if(c){let I=l(w),z=l(N);f+=I.re*z.re-I.im*z.im,p+=I.re*z.im+I.im*z.re}else typeof w=="bigint"&&typeof N=="bigint"?f+=Number(w*N):f+=Number(w)*Number(N)}return c?new O(f,p):f}let m=D.zeros(s,i),y=s.reduce((f,p)=>f*p,1),d=n.map(f=>r.shape[f]).reduce((f,p)=>f*p,1);for(let f=0;f<y;f++){let p=f,g=[];for(let x=s.length-1;x>=0;x--)g[x]=p%s[x],p=Math.floor(p/s[x]);let h=g.slice(0,a.length),b=g.slice(a.length),A=0,S=0;for(let x=0;x<d;x++){p=x;let w=[];for(let _=n.length-1;_>=0;_--){let T=n[_];w[_]=p%r.shape[T],p=Math.floor(p/r.shape[T])}let N=new Array(r.ndim),I=new Array(t.ndim);for(let _=0;_<a.length;_++)N[a[_]]=h[_];for(let _=0;_<u.length;_++)I[u[_]]=b[_];for(let _=0;_<n.length;_++)N[n[_]]=w[_],I[o[_]]=w[_];let z=r.get(...N),F=t.get(...I);if(c){let _=l(z),T=l(F);A+=_.re*T.re-_.im*T.im,S+=_.re*T.im+_.im*T.re}else typeof z=="bigint"&&typeof F=="bigint"?A+=Number(z*F):A+=Number(z)*Number(F)}c?m.set(g,new O(A,S)):m.set(g,A)}return m}function Wo(r,t=0,e=0,n=1){let o=r.shape,a=o.length;if(a<2)throw new Error("diagonal requires an array of at least two dimensions");let u=e<0?a+e:e,s=n<0?a+n:n;if(u<0||u>=a||s<0||s>=a)throw new Error("axis out of bounds");if(u===s)throw new Error("axis1 and axis2 cannot be the same");let i=o[u],c=o[s],l;t>=0?l=Math.max(0,Math.min(i,c-t)):l=Math.max(0,Math.min(i+t,c));let m=[];for(let p=0;p<a;p++)p!==u&&p!==s&&m.push(o[p]);m.push(l);let y=D.zeros(m,r.dtype),d=o.filter((p,g)=>g!==u&&g!==s),f=d.reduce((p,g)=>p*g,1);for(let p=0;p<f;p++){let g=p,h=[];for(let b=d.length-1;b>=0;b--)h.unshift(g%d[b]),g=Math.floor(g/d[b]);for(let b=0;b<l;b++){let A=new Array(a),S=0;for(let N=0;N<a;N++)N===u?A[N]=t>=0?b:b-t:N===s?A[N]=t>=0?b+t:b:A[N]=h[S++];let x=[...h,b],w=r.get(...A);y.set(x,w)}}return y}function Go(r,...t){let e=r.indexOf("->"),n,o;e===-1?(n=r,o=oc(n)):(n=r.slice(0,e),o=r.slice(e+2));let a=n.split(",").map(p=>p.trim());if(a.length!==t.length)throw new Error(`einsum: expected ${a.length} operands, got ${t.length}`);let u=new Map;for(let p=0;p<t.length;p++){let g=a[p],h=t[p];if(g.length!==h.ndim)throw new Error(`einsum: operand ${p} has ${h.ndim} dimensions but subscript '${g}' has ${g.length} indices`);for(let b=0;b<g.length;b++){let A=g[b],S=h.shape[b];if(u.has(A)){if(u.get(A)!==S)throw new Error(`einsum: size mismatch for index '${A}': ${u.get(A)} vs ${S}`)}else u.set(A,S)}}for(let p of o)if(!u.has(p))throw new Error(`einsum: output subscript contains unknown index '${p}'`);let s=new Set(o),i=new Set;for(let p of a)for(let g of p)i.add(g);let c=[];for(let p of i)s.has(p)||c.push(p);if(t.length===2&&a.length===2){let[p,g]=a,[h,b]=t;if(p.length===2&&g.length===2&&o.length===2&&h.ndim===2&&b.ndim===2){let[A,S]=[p[0],p[1]],[x,w]=[g[0],g[1]],[N,I]=[o[0],o[1]];if(A===N&&w===I&&S===x&&c.length===1&&c[0]===S||A===N&&w===I&&S===x&&c.length===1&&c[0]===S)return Ar(h,b);if(S===N&&w===I&&A===x&&c.length===1&&c[0]===A){let z=qo(h);return Ar(z,b)}if(A===N&&x===I&&S===w&&c.length===1&&c[0]===S){let z=qo(b);return Ar(h,z)}}if(p.length===1&&g.length===1&&p===g&&o.length===0&&h.ndim===1&&b.ndim===1)return Fe(t,a,c,u);if(p&&g&&p.length===1&&g.length===1&&o.length===2&&o===p+g&&c.length===0&&h.ndim===1&&b.ndim===1)return Be(h,b)}if(t.length===1&&a[0].length===2&&o.length===0){let p=a[0];if(p[0]===p[1]&&t[0].ndim===2)return Fe(t,a,c,u)}let l=Array.from(o).map(p=>u.get(p));if(l.length===0)return Fe(t,a,c,u);let m=t[0].dtype;for(let p=1;p<t.length;p++)m=Z(m,t[p].dtype);let y=D.zeros(l,m),d=l.reduce((p,g)=>p*g,1),f=1;for(let p of c)f*=u.get(p);for(let p=0;p<d;p++){let g=ac(p,l),h=new Map;for(let A=0;A<o.length;A++)h.set(o[A],g[A]);let b=0;for(let A=0;A<f;A++){let S=A;for(let w=c.length-1;w>=0;w--){let N=c[w],I=u.get(N);h.set(N,S%I),S=Math.floor(S/I)}let x=1;for(let w=0;w<t.length;w++){let N=t[w],I=a[w],z=[];for(let _ of I)z.push(h.get(_));let F=N.get(...z);x*=Number(F)}b+=x}y.set(g,b)}return y}function oc(r){let t=new Map,e=r.split(",");for(let o of e)for(let a of o.trim())t.set(a,(t.get(a)||0)+1);let n=[];for(let[o,a]of t)a===1&&n.push(o);return n.sort().join("")}function Fe(r,t,e,n){let o=!1;for(let c of r)if(M(c.dtype)){o=!0;break}let a=c=>c instanceof O?{re:c.re,im:c.im}:{re:Number(c),im:0},u=1;for(let c of e)u*=n.get(c);let s=0,i=0;for(let c=0;c<u;c++){let l=new Map,m=c;for(let f=e.length-1;f>=0;f--){let p=e[f],g=n.get(p);l.set(p,m%g),m=Math.floor(m/g)}let y=1,d=0;for(let f=0;f<r.length;f++){let p=r[f],g=t[f],h=[];for(let A of g)h.push(l.get(A));let b=p.get(...h);if(o){let A=a(b),S=y*A.re-d*A.im,x=y*A.im+d*A.re;y=S,d=x}else y*=Number(b)}s+=y,i+=d}return o?new O(s,i):s}function ac(r,t){let e=new Array(t.length),n=r;for(let o=t.length-1;o>=0;o--)e[o]=n%t[o],n=Math.floor(n/t[o]);return e}function Zo(r,t){let e=r.shape,n=t.shape,o=e.length,a=n.length,u=Z(r.dtype,t.dtype),s=Math.max(o,a),i=new Array(s),c=new Array(s).fill(1),l=new Array(s).fill(1);for(let f=0;f<o;f++)c[s-o+f]=e[f];for(let f=0;f<a;f++)l[s-a+f]=n[f];for(let f=0;f<s;f++)i[f]=c[f]*l[f];let m=D.zeros(i,u),y=e.reduce((f,p)=>f*p,1),d=n.reduce((f,p)=>f*p,1);for(let f=0;f<y;f++){let p=f,g=new Array(o);for(let A=o-1;A>=0;A--)g[A]=p%e[A],p=Math.floor(p/e[A]);let h=new Array(s).fill(0);for(let A=0;A<o;A++)h[s-o+A]=g[A];let b=r.get(...g);for(let A=0;A<d;A++){let S=A,x=new Array(a);for(let F=a-1;F>=0;F--)x[F]=S%n[F],S=Math.floor(S/n[F]);let w=new Array(s).fill(0);for(let F=0;F<a;F++)w[s-a+F]=x[F];let N=t.get(...x),I=new Array(s);for(let F=0;F<s;F++)I[F]=h[F]*l[F]+w[F];let z=Gr(b,N);m.set(I,z)}}return m}function Yo(r,t,e=-1,n=-1,o=-1,a){a!==void 0&&(e=a,n=a,o=a);let u=(A,S)=>A<0?S+A:A,s=u(e,r.ndim),i=u(n,t.ndim);if(r.ndim===1&&t.ndim===1){let A=r.shape[0],S=t.shape[0];if(A===3&&S===3){let x=Number(r.get(0)),w=Number(r.get(1)),N=Number(r.get(2)),I=Number(t.get(0)),z=Number(t.get(1)),F=Number(t.get(2)),_=D.zeros([3],"float64");return _.set([0],w*F-N*z),_.set([1],N*I-x*F),_.set([2],x*z-w*I),_}else if(A===2&&S===2){let x=Number(r.get(0)),w=Number(r.get(1)),N=Number(t.get(0)),I=Number(t.get(1));return x*I-w*N}else if(A===2&&S===3||A===3&&S===2){let x=Number(r.get(0)),w=Number(r.get(1)),N=A===3?Number(r.get(2)):0,I=Number(t.get(0)),z=Number(t.get(1)),F=S===3?Number(t.get(2)):0,_=D.zeros([3],"float64");return _.set([0],w*F-N*z),_.set([1],N*I-x*F),_.set([2],x*z-w*I),_}else throw new Error(`cross: incompatible dimensions for cross product: ${A} and ${S}`)}let c=r.shape[s],l=t.shape[i];if(c!==2&&c!==3||l!==2&&l!==3)throw new Error(`cross: incompatible dimensions for cross product: ${c} and ${l}`);let m=c===2&&l===2?0:3,y=[...r.shape.slice(0,s),...r.shape.slice(s+1)],d=[...t.shape.slice(0,i),...t.shape.slice(i+1)];if(y.length!==d.length)throw new Error("cross: incompatible shapes for cross product");for(let A=0;A<y.length;A++)if(y[A]!==d[A])throw new Error("cross: incompatible shapes for cross product");let f=y,p=o<0?f.length+1+o:o,g;if(m===0?g=f:g=[...f.slice(0,p),m,...f.slice(p)],g.length===0)throw new Error("cross: unexpected scalar result from higher-dimensional input");let h=D.zeros(g,"float64"),b=f.reduce((A,S)=>A*S,1);for(let A=0;A<b;A++){let S=A,x=[];for(let V=f.length-1;V>=0;V--)x[V]=S%f[V],S=Math.floor(S/f[V]);let w=[...x.slice(0,s),0,...x.slice(s)],N=[...x.slice(0,i),0,...x.slice(i)],I=V=>(w[s]=V,Number(r.get(...w))),z=V=>(N[i]=V,Number(t.get(...N))),F=I(0),_=I(1),T=c===3?I(2):0,E=z(0),C=z(1),k=l===3?z(2):0;if(m===0)h.set(x,F*C-_*E);else{let V=_*k-T*C,R=T*E-F*k,L=F*C-_*E,P=(Q,er)=>{let G=[...x.slice(0,p),Q,...x.slice(p)];h.set(G,er)};P(0,V),P(1,R),P(2,L)}}return h}function Zr(r,t=2,e,n=!1){if(typeof t!="number")throw new Error("vector_norm: ord must be a number");if(e==null){let c=r.ndim===1?r:Wr(r),l=c.size,m;if(t===1/0){m=0;for(let y=0;y<l;y++)m=Math.max(m,Math.abs(Number(c.get(y))))}else if(t===-1/0){m=1/0;for(let y=0;y<l;y++)m=Math.min(m,Math.abs(Number(c.get(y))))}else if(t===0){m=0;for(let y=0;y<l;y++)Number(c.get(y))!==0&&m++}else if(t===1){m=0;for(let y=0;y<l;y++)m+=Math.abs(Number(c.get(y)))}else if(t===2){m=0;for(let y=0;y<l;y++){let d=Number(c.get(y));m+=d*d}m=Math.sqrt(m)}else{m=0;for(let y=0;y<l;y++)m+=Math.pow(Math.abs(Number(c.get(y))),t);m=Math.pow(m,1/t)}if(n){let y=new Array(r.ndim).fill(1),d=D.zeros(y,"float64");return d.set(new Array(r.ndim).fill(0),m),d}return m}let o=e<0?r.ndim+e:e;if(o<0||o>=r.ndim)throw new Error(`vector_norm: axis ${e} out of bounds for array with ${r.ndim} dimensions`);let a=n?[...r.shape.slice(0,o),1,...r.shape.slice(o+1)]:[...r.shape.slice(0,o),...r.shape.slice(o+1)];if(a.length===0)return Zr(r,t,null,!1);let u=D.zeros(a,"float64"),s=r.shape[o],i=a.reduce((c,l)=>c*l,1);for(let c=0;c<i;c++){let l=c,m=[];for(let f=a.length-1;f>=0;f--)m[f]=l%a[f],l=Math.floor(l/a[f]);let y=n?[...m.slice(0,o),0,...m.slice(o+1)]:[...m.slice(0,o),0,...m.slice(o)],d;if(t===1/0){d=0;for(let f=0;f<s;f++)y[o]=f,d=Math.max(d,Math.abs(Number(r.get(...y))))}else if(t===-1/0){d=1/0;for(let f=0;f<s;f++)y[o]=f,d=Math.min(d,Math.abs(Number(r.get(...y))))}else if(t===0){d=0;for(let f=0;f<s;f++)y[o]=f,Number(r.get(...y))!==0&&d++}else if(t===1){d=0;for(let f=0;f<s;f++)y[o]=f,d+=Math.abs(Number(r.get(...y)))}else if(t===2){d=0;for(let f=0;f<s;f++){y[o]=f;let p=Number(r.get(...y));d+=p*p}d=Math.sqrt(d)}else{d=0;for(let f=0;f<s;f++)y[o]=f,d+=Math.pow(Math.abs(Number(r.get(...y))),t);d=Math.pow(d,1/t)}u.set(m,d)}return u}function Ur(r,t="fro",e=!1){if(r.ndim!==2)throw new Error(`matrix_norm: input must be 2D, got ${r.ndim}D`);let[n,o]=r.shape,a;if(t==="fro"){a=0;for(let u=0;u<n;u++)for(let s=0;s<o;s++){let i=Number(r.get(u,s));a+=i*i}a=Math.sqrt(a)}else if(t==="nuc"){let{s:u}=Tr(r);a=0;for(let s=0;s<u.size;s++)a+=Number(u.get(s))}else if(t===1){a=0;for(let u=0;u<o;u++){let s=0;for(let i=0;i<n;i++)s+=Math.abs(Number(r.get(i,u)));a=Math.max(a,s)}}else if(t===-1){a=1/0;for(let u=0;u<o;u++){let s=0;for(let i=0;i<n;i++)s+=Math.abs(Number(r.get(i,u)));a=Math.min(a,s)}}else if(t===1/0){a=0;for(let u=0;u<n;u++){let s=0;for(let i=0;i<o;i++)s+=Math.abs(Number(r.get(u,i)));a=Math.max(a,s)}}else if(t===-1/0){a=1/0;for(let u=0;u<n;u++){let s=0;for(let i=0;i<o;i++)s+=Math.abs(Number(r.get(u,i)));a=Math.min(a,s)}}else if(t===2){let{s:u}=Tr(r);a=Number(u.get(0))}else if(t===-2){let{s:u}=Tr(r);a=Number(u.get(u.size-1))}else throw new Error(`matrix_norm: invalid ord value: ${t}`);if(e){let u=D.zeros([1,1],"float64");return u.set([0,0],a),u}return a}function Ho(r,t=null,e=null,n=!1){if(t===null)return e===null?Zr(r,2,null,n):typeof e=="number"?Zr(r,2,e,n):Ur(r,"fro",n);if(Array.isArray(e)){if(e.length!==2)throw new Error("norm: axis must be a 2-tuple for matrix norms");let o=e[0]<0?r.ndim+e[0]:e[0],a=e[1]<0?r.ndim+e[1]:e[1];if(r.ndim!==2||o!==0&&o!==1||a!==0&&a!==1||o===a)throw new Error("norm: complex axis specification not yet supported");return Ur(r,t,n)}if(r.ndim===2&&e===null&&(t==="fro"||t==="nuc"))return Ur(r,t,n);if(typeof t!="number"&&t!==null)throw new Error(`norm: ord '${t}' not valid for vector norm`);return Zr(r,t??2,e,n)}function ve(r,t="reduced"){if(r.ndim!==2)throw new Error(`qr: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape,o=Math.min(e,n),a=D.zeros([e,n],"float64");for(let d=0;d<e;d++)for(let f=0;f<n;f++)a.set([d,f],Number(r.get(d,f)));let u=[],s=[];for(let d=0;d<o;d++){let f=e-d,p=[];for(let x=d;x<e;x++)p.push(Number(a.get(x,d)));let g=0;for(let x=0;x<f;x++)g+=p[x]*p[x];if(g=Math.sqrt(g),g<1e-15){u.push(p),s.push(0);continue}let h=p[0]>=0?1:-1,b=p[0]+h*g,A=[1];for(let x=1;x<f;x++)A.push(p[x]/b);let S=h*b/g;s.push(S),u.push(A);for(let x=d;x<n;x++){let w=0;for(let N=0;N<f;N++)w+=A[N]*Number(a.get(d+N,x));for(let N=0;N<f;N++)a.set([d+N,x],Number(a.get(d+N,x))-S*A[N]*w)}}if(t==="raw"){let d=D.zeros([e,n],"float64");for(let p=0;p<e;p++)for(let g=0;g<n;g++)d.set([p,g],Number(a.get(p,g)));let f=D.zeros([o],"float64");for(let p=0;p<o;p++)f.set([p],s[p]);return{h:d,tau:f}}if(t==="r"){let d=D.zeros([o,n],"float64");for(let f=0;f<o;f++)for(let p=f;p<n;p++)d.set([f,p],Number(a.get(f,p)));return d}let i=t==="complete"?e:o,c=D.zeros([e,i],"float64");for(let d=0;d<Math.min(e,i);d++)c.set([d,d],1);for(let d=o-1;d>=0;d--){let f=u[d],p=s[d],g=e-d;for(let h=d;h<i;h++){let b=0;for(let A=0;A<g;A++)b+=f[A]*Number(c.get(d+A,h));for(let A=0;A<g;A++)c.set([d+A,h],Number(c.get(d+A,h))-p*f[A]*b)}}let l=D.zeros([e,i],"float64");for(let d=0;d<e;d++)for(let f=0;f<i;f++)l.set([d,f],Number(c.get(d,f)));let m=t==="complete"?e:o,y=D.zeros([m,n],"float64");for(let d=0;d<m;d++)for(let f=0;f<n;f++)f>=d&&y.set([d,f],Number(a.get(d,f)));return{q:l,r:y}}function Jo(r,t=!1){if(r.ndim!==2)throw new Error(`cholesky: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`cholesky: matrix must be square, got ${e}x${n}`);let o=e,a=D.zeros([o,o],"float64");for(let u=0;u<o;u++)for(let s=0;s<=u;s++){let i=0;if(u===s){for(let l=0;l<s;l++)i+=Number(a.get(s,l))**2;let c=Number(r.get(s,s))-i;if(c<0)throw new Error("cholesky: matrix is not positive definite");a.set([s,s],Math.sqrt(c))}else{for(let l=0;l<s;l++)i+=Number(a.get(u,l))*Number(a.get(s,l));let c=Number(a.get(s,s));if(Math.abs(c)<1e-15)throw new Error("cholesky: matrix is not positive definite");a.set([u,s],(Number(r.get(u,s))-i)/c)}}if(t){let u=D.zeros([o,o],"float64");for(let s=0;s<o;s++)for(let i=s;i<o;i++)u.set([s,i],Number(a.get(i,s)));return u}return a}function Tr(r){if(r.ndim!==2)throw new Error(`svd: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape,n=Math.min(t,e),o=D.zeros([e,e],"float64");for(let m=0;m<e;m++)for(let y=0;y<e;y++){let d=0;for(let f=0;f<t;f++)d+=Number(r.get(f,m))*Number(r.get(f,y));o.set([m,y],d)}let{values:a,vectors:u}=Te(o),s=Array.from({length:e},(m,y)=>y);s.sort((m,y)=>a[y]-a[m]);let i=D.zeros([n],"float64");for(let m=0;m<n;m++){let y=a[s[m]];i.set([m],Math.sqrt(Math.max(0,y)))}let c=D.zeros([e,e],"float64");for(let m=0;m<e;m++)for(let y=0;y<e;y++)c.set([m,y],u[y][s[m]]);let l=D.zeros([t,t],"float64");for(let m=0;m<t;m++)for(let y=0;y<n;y++){let d=Number(i.get(y));if(d>1e-10){let f=0;for(let p=0;p<e;p++)f+=Number(r.get(m,p))*Number(c.get(y,p));l.set([m,y],f/d)}}if(t>n)for(let m=n;m<t;m++){let y=new Array(t).fill(0);y[m]=1;for(let f=0;f<m;f++){let p=0;for(let g=0;g<t;g++)p+=y[g]*Number(l.get(g,f));for(let g=0;g<t;g++)y[g]=y[g]-p*Number(l.get(g,f))}let d=0;for(let f=0;f<t;f++)d+=y[f]*y[f];if(d=Math.sqrt(d),d>1e-10)for(let f=0;f<t;f++)l.set([f,m],y[f]/d)}return{u:l,s:i,vt:c}}function Te(r){let t=r.shape[0],e=100*t*t,n=1e-10,o=[];for(let s=0;s<t;s++){o.push([]);for(let i=0;i<t;i++)o[s].push(Number(r.get(s,i)))}let a=[];for(let s=0;s<t;s++){a.push([]);for(let i=0;i<t;i++)a[s].push(s===i?1:0)}for(let s=0;s<e;s++){let i=0,c=0,l=1;for(let A=0;A<t;A++)for(let S=A+1;S<t;S++)Math.abs(o[A][S])>i&&(i=Math.abs(o[A][S]),c=A,l=S);if(i<n)break;let m=o[c][c],y=o[l][l],d=o[c][l],f;Math.abs(m-y)<1e-15?f=Math.PI/4:f=.5*Math.atan2(2*d,y-m);let p=Math.cos(f),g=Math.sin(f),h=p*p*m+g*g*y-2*g*p*d,b=g*g*m+p*p*y+2*g*p*d;o[c][c]=h,o[l][l]=b,o[c][l]=0,o[l][c]=0;for(let A=0;A<t;A++)if(A!==c&&A!==l){let S=o[A][c],x=o[A][l];o[A][c]=p*S-g*x,o[c][A]=o[A][c],o[A][l]=g*S+p*x,o[l][A]=o[A][l]}for(let A=0;A<t;A++){let S=a[A][c],x=a[A][l];a[A][c]=p*S-g*x,a[A][l]=g*S+p*x}}let u=[];for(let s=0;s<t;s++)u.push(o[s][s]);return{values:u,vectors:a}}function Xo(r,t=!0,e=!0){let n=Tr(r);if(!e)return n.s;if(!t){let[o,a]=r.shape,u=Math.min(o,a),s=D.zeros([o,u],"float64");for(let c=0;c<o;c++)for(let l=0;l<u;l++)s.set([c,l],Number(n.u.get(c,l)));let i=D.zeros([u,a],"float64");for(let c=0;c<u;c++)for(let l=0;l<a;l++)i.set([c,l],Number(n.vt.get(c,l)));return{u:s,s:n.s,vt:i}}return n}function Qo(r){if(r.ndim!==2)throw new Error(`det: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape;if(t!==e)throw new Error(`det: matrix must be square, got ${t}x${e}`);let n=t;if(n===0)return 1;let o=r.data;if(n===1)return Number(o[0]);if(n===2)return Number(o[0])*Number(o[3])-Number(o[1])*Number(o[2]);let{lu:a,sign:u}=Ee(r),s=a.data,i=u;for(let c=0;c<n;c++)i*=s[c*n+c];return i}function Ee(r){let[t,e]=r.shape,n=t,o=e,a=D.zeros([n,o],"float64"),u=a.data,s=r.data;for(let l=0;l<n*o;l++)u[l]=Number(s[l]);let i=Array.from({length:n},(l,m)=>m),c=1;for(let l=0;l<Math.min(n,o);l++){let m=Math.abs(u[l*o+l]),y=l;for(let f=l+1;f<n;f++){let p=Math.abs(u[f*o+l]);p>m&&(m=p,y=f)}if(y!==l){for(let p=0;p<o;p++){let g=u[l*o+p];u[l*o+p]=u[y*o+p],u[y*o+p]=g}let f=i[l];i[l]=i[y],i[y]=f,c=-c}let d=u[l*o+l];if(Math.abs(d)>1e-15)for(let f=l+1;f<n;f++){let p=u[f*o+l]/d;u[f*o+l]=p;for(let g=l+1;g<o;g++)u[f*o+g]=u[f*o+g]-p*u[l*o+g]}}return{lu:a,piv:i,sign:c}}function Ut(r){if(r.ndim!==2)throw new Error(`inv: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape;if(t!==e)throw new Error(`inv: matrix must be square, got ${t}x${e}`);let n=t,{lu:o,piv:a}=Ee(r),u=o.data,s=D.zeros([n,n],"float64"),i=s.data;for(let c=0;c<n;c++){let l=new Float64Array(n);for(let m=0;m<n;m++){let y=a[m]===c?1:0;for(let d=0;d<m;d++)y-=u[m*n+d]*l[d];l[m]=y}for(let m=n-1;m>=0;m--){let y=l[m];for(let f=m+1;f<n;f++)y-=u[m*n+f]*i[f*n+c];let d=u[m*n+m];if(Math.abs(d)<1e-15)throw new Error("inv: singular matrix");i[m*n+c]=y/d}}return s}function Vo(r,t){let[e]=r.shape,n=e,{lu:o,piv:a}=Ee(r),u=o.data,s=t.data,i=new Float64Array(n);for(let y=0;y<n;y++)i[y]=Number(s[a[y]]);let c=new Float64Array(n);for(let y=0;y<n;y++){let d=i[y];for(let f=0;f<y;f++)d-=u[y*n+f]*c[f];c[y]=d}let l=D.zeros([n],"float64"),m=l.data;for(let y=n-1;y>=0;y--){let d=c[y];for(let p=y+1;p<n;p++)d-=u[y*n+p]*m[p];let f=u[y*n+y];if(Math.abs(f)<1e-15)throw new Error("solve: singular matrix");m[y]=d/f}return l}function Ko(r,t){if(r.ndim!==2)throw new Error(`solve: coefficient matrix must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`solve: coefficient matrix must be square, got ${e}x${n}`);let o=e;if(t.ndim===1){if(t.shape[0]!==o)throw new Error(`solve: incompatible shapes (${e},${n}) and (${t.shape[0]},)`);return Vo(r,t)}if(t.ndim===2){if(t.shape[0]!==o)throw new Error(`solve: incompatible shapes (${e},${n}) and (${t.shape[0]},${t.shape[1]})`);let a=t.shape[1],u=D.zeros([o,a],"float64");for(let s=0;s<a;s++){let i=D.zeros([o],"float64");for(let l=0;l<o;l++)i.set([l],Number(t.get(l,s)));let c=Vo(r,i);for(let l=0;l<o;l++)u.set([l,s],Number(c.get(l)))}return u}throw new Error(`solve: b must be 1D or 2D, got ${t.ndim}D`)}function ra(r,t,e=null){if(r.ndim!==2)throw new Error(`lstsq: coefficient matrix must be 2D, got ${r.ndim}D`);let[n,o]=r.shape,{u:a,s:u,vt:s}=Tr(r),i=Math.min(n,o),c=e??Math.max(n,o)*Number.EPSILON,m=Number(u.get(0))*c,y=0;for(let b=0;b<i;b++)Number(u.get(b))>m&&y++;let d=t.ndim===1?ir(t,[t.size,1]):t,f=d.shape[1];if(d.shape[0]!==n)throw new Error(`lstsq: incompatible shapes (${n},${o}) and (${t.shape.join(",")})`);let p=D.zeros([o,f],"float64");for(let b=0;b<f;b++){let A=new Array(n).fill(0);for(let S=0;S<n;S++)for(let x=0;x<n;x++)A[S]+=Number(a.get(x,S))*Number(d.get(x,b));for(let S=0;S<o;S++){let x=0;for(let w=0;w<i;w++){let N=Number(u.get(w));N>m&&(x+=Number(s.get(w,S))*A[w]/N)}p.set([S,b],x)}}let g;if(n>o){g=D.zeros([f],"float64");for(let b=0;b<f;b++){let A=0;for(let S=0;S<n;S++){let x=0;for(let N=0;N<o;N++)x+=Number(r.get(S,N))*Number(p.get(N,b));let w=x-Number(d.get(S,b));A+=w*w}g.set([b],A)}}else g=D.zeros([0],"float64");return{x:t.ndim===1?ir(p,[o]):p,residuals:g,rank:y,s:u}}function ta(r,t=2){if(r.ndim!==2)throw new Error(`cond: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(t===2||t===-2){let{s}=Tr(r),i=Math.min(e,n),c=Number(s.get(0)),l=Number(s.get(i-1));return t===2?l>0?c/l:1/0:c>0?l/c:0}if(e!==n)throw new Error(`cond: matrix must be square for p=${t}`);let o=Ur(r,t),a=Ut(r),u=Ur(a,t);return o*u}function ea(r,t){if(r.ndim===0)return Number(r.get())!==0?1:0;if(r.ndim===1){for(let u=0;u<r.size;u++)if(Number(r.get(u))!==0)return 1;return 0}if(r.ndim!==2)throw new Error(`matrix_rank: input must be at most 2D, got ${r.ndim}D`);let{s:e}=Tr(r),n=Number(e.get(0)),o=t??n*Math.max(r.shape[0],r.shape[1])*Number.EPSILON,a=0;for(let u=0;u<e.size;u++)Number(e.get(u))>o&&a++;return a}function na(r,t){if(r.ndim!==2)throw new Error(`matrix_power: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`matrix_power: matrix must be square, got ${e}x${n}`);let o=e;if(!Number.isInteger(t))throw new Error("matrix_power: exponent must be an integer");if(t===0){let c=D.zeros([o,o],"float64");for(let l=0;l<o;l++)c.set([l,l],1);return c}let a=r,u=t;t<0&&(a=Ut(r),u=-t);let s=D.zeros([o,o],"float64");for(let c=0;c<o;c++)s.set([c,c],1);let i=D.zeros([o,o],"float64");for(let c=0;c<o;c++)for(let l=0;l<o;l++)i.set([c,l],Number(a.get(c,l)));for(;u>0;)u&1&&(s=Ar(s,i)),i=Ar(i,i),u>>=1;return s}function oa(r,t=1e-15){if(r.ndim!==2)throw new Error(`pinv: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape,{u:o,s:a,vt:u}=Tr(r),s=Math.min(e,n),c=Number(a.get(0))*t,l=D.zeros([n,e],"float64");for(let m=0;m<n;m++)for(let y=0;y<e;y++){let d=0;for(let f=0;f<s;f++){let p=Number(a.get(f));p>c&&(d+=Number(u.get(f,m))*Number(o.get(y,f))/p)}l.set([m,y],d)}return l}function Oe(r){if(r.ndim!==2)throw new Error(`eig: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape;if(t!==e)throw new Error(`eig: matrix must be square, got ${t}x${e}`);let n=t,o=!0;r:for(let c=0;c<n;c++)for(let l=c+1;l<n;l++)if(Math.abs(Number(r.get(c,l))-Number(r.get(l,c)))>1e-10){o=!1;break r}if(o){let{values:c,vectors:l}=Te(r),m=D.zeros([n],"float64"),y=D.zeros([n,n],"float64");for(let d=0;d<n;d++){m.set([d],c[d]);for(let f=0;f<n;f++)y.set([f,d],l[f][d])}return{w:m,v:y}}console.warn("numpy-ts: eig() called on non-symmetric matrix. Complex eigenvalues are not supported; results may be inaccurate. For symmetric matrices, use eigh() instead.");let{values:a,vectors:u}=sc(r),s=D.zeros([n],"float64"),i=D.zeros([n,n],"float64");for(let c=0;c<n;c++){s.set([c],a[c]);for(let l=0;l<n;l++)i.set([l,c],u[l][c])}return{w:s,v:i}}function sc(r){let t=r.shape[0],e=1e3,n=1e-10,o=D.zeros([t,t],"float64");for(let i=0;i<t;i++)for(let c=0;c<t;c++)o.set([i,c],Number(r.get(i,c)));let a=D.zeros([t,t],"float64");for(let i=0;i<t;i++)a.set([i,i],1);for(let i=0;i<e;i++){let c=0;for(let d=0;d<t;d++)for(let f=0;f<t;f++)d!==f&&(c+=Number(o.get(d,f))**2);if(Math.sqrt(c)<n*t)break;let l=ve(o,"reduced"),m=l.q,y=l.r;o=Ar(y,m),a=Ar(a,m)}let u=[];for(let i=0;i<t;i++)u.push(Number(o.get(i,i)));let s=[];for(let i=0;i<t;i++){s.push([]);for(let c=0;c<t;c++)s[i].push(Number(a.get(i,c)))}return{values:u,vectors:s}}function Ce(r,t="L"){if(r.ndim!==2)throw new Error(`eigh: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`eigh: matrix must be square, got ${e}x${n}`);let o=e,a=D.zeros([o,o],"float64");for(let m=0;m<o;m++)for(let y=0;y<o;y++)t==="L"?m>=y&&(a.set([m,y],Number(r.get(m,y))),a.set([y,m],Number(r.get(m,y)))):y>=m&&(a.set([m,y],Number(r.get(m,y))),a.set([y,m],Number(r.get(m,y))));let{values:u,vectors:s}=Te(a),i=Array.from({length:o},(m,y)=>y);i.sort((m,y)=>u[m]-u[y]);let c=D.zeros([o],"float64"),l=D.zeros([o,o],"float64");for(let m=0;m<o;m++){c.set([m],u[i[m]]);for(let y=0;y<o;y++)l.set([y,m],s[y][i[m]])}return{w:c,v:l}}function aa(r){let{w:t}=Oe(r);return t}function sa(r,t="L"){let{w:e}=Ce(r,t);return e}var ia=W(()=>{"use strict";X();J();xr();_e()});function ua(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=Math.sqrt(i*i+c*c),m=Math.sqrt((l+i)/2),y=(c>=0?1:-1)*Math.sqrt((l-i)/2);u[s*2]=m,u[s*2+1]=y}return a}return H(r,Math.sqrt,!1)}function ca(r,t){if(typeof t=="number")return cc(r,t);let e=M(r.dtype),n=M(t.dtype);return e||n?uc(r,t):K(r,t,Math.pow,"power")}function uc(r,t){let e=M(r.dtype),n=M(t.dtype),o=r.dtype==="complex128"||t.dtype==="complex128"||t.dtype==="float64"?"complex128":"complex64",a=Array.from(r.shape),u=r.size,s=D.zeros(a,o),i=s.data;for(let c=0;c<u;c++){let l,m;if(e){let S=r.data;l=S[c*2],m=S[c*2+1]}else l=Number(r.iget(c)),m=0;let y,d;if(n){let S=t.data;y=S[c*2],d=S[c*2+1]}else y=Number(t.iget(c)),d=0;let f=Math.sqrt(l*l+m*m),p=Math.atan2(m,l),g=Math.log(f),h=y*g-d*p,b=y*p+d*g,A=Math.exp(h);i[c*2]=A*Math.cos(b),i[c*2+1]=A*Math.sin(b)}return s}function cc(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size;if(M(e)){let m=D.zeros(n,e),y=o,d=m.data;for(let f=0;f<a;f++){let p=y[f*2],g=y[f*2+1],h=Math.sqrt(p*p+g*g),b=Math.atan2(g,p),A=Math.pow(h,t),S=b*t;d[f*2]=A*Math.cos(S),d[f*2+1]=A*Math.sin(S)}return m}let i=e!=="float32"&&e!=="float64"&&(t<0||!Number.isInteger(t))?"float64":e,c=D.zeros(n,i),l=c.data;if(B(e))if(B(i)&&Number.isInteger(t)&&t>=0){let m=o,y=l;for(let d=0;d<a;d++)y[d]=m[d]**BigInt(t)}else for(let m=0;m<a;m++)l[m]=Math.pow(Number(o[m]),t);else for(let m=0;m<a;m++)l[m]=Math.pow(Number(o[m]),t);return c}function la(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=Math.exp(i);u[s*2]=l*Math.cos(c),u[s*2+1]=l*Math.sin(c)}return a}return H(r,Math.exp,!1)}function fa(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=Math.LN2,u=D.zeros(e,t),s=u.data;for(let i=0;i<n;i++){let c=o[i*2],l=o[i*2+1],m=Math.exp(c*a),y=l*a;s[i*2]=m*Math.cos(y),s[i*2+1]=m*Math.sin(y)}return u}return H(r,e=>Math.pow(2,e),!1)}function ma(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=Math.exp(i);u[s*2]=l*Math.cos(c)-1,u[s*2+1]=l*Math.sin(c)}return a}return H(r,Math.expm1,!1)}function pa(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=Math.sqrt(i*i+c*c),m=Math.atan2(c,i);u[s*2]=Math.log(l),u[s*2+1]=m}return a}return H(r,Math.log,!1)}function ya(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=1/Math.LN2,u=D.zeros(e,t),s=u.data;for(let i=0;i<n;i++){let c=o[i*2],l=o[i*2+1],m=Math.sqrt(c*c+l*l),y=Math.atan2(l,c);s[i*2]=Math.log(m)*a,s[i*2+1]=y*a}return u}return H(r,Math.log2,!1)}function da(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=1/Math.LN10,u=D.zeros(e,t),s=u.data;for(let i=0;i<n;i++){let c=o[i*2],l=o[i*2+1],m=Math.sqrt(c*c+l*l),y=Math.atan2(l,c);s[i*2]=Math.log(m)*a,s[i*2+1]=y*a}return u}return H(r,Math.log10,!1)}function ga(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=1+i,m=Math.sqrt(l*l+c*c),y=Math.atan2(c,l);u[s*2]=Math.log(m),u[s*2+1]=y}return a}return H(r,Math.log1p,!1)}function Aa(r,t){return q(r.dtype,"logaddexp","logaddexp is not supported for complex numbers."),typeof t!="number"&&q(t.dtype,"logaddexp","logaddexp is not supported for complex numbers."),typeof t=="number"?fc(r,t):lc(r,t)}function lc(r,t){let e=Br(r.shape,t.shape),n=e.reduce((c,l)=>c*l,1),o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",s=D.zeros(e,u),i=s.data;for(let c=0;c<n;c++){let l=(B(o),Number(r.iget(c))),m=(B(a),Number(t.iget(c))),y=Math.max(l,m),d=Math.min(l,m);i[c]=y+Math.log1p(Math.exp(d-y))}return s}function fc(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",u=D.zeros(n,a),s=u.data;for(let i=0;i<o;i++){let c=(B(e),Number(r.data[i])),l=Math.max(c,t),m=Math.min(c,t);s[i]=l+Math.log1p(Math.exp(m-l))}return u}function ba(r,t){return q(r.dtype,"logaddexp2","logaddexp2 is not supported for complex numbers."),typeof t!="number"&&q(t.dtype,"logaddexp2","logaddexp2 is not supported for complex numbers."),typeof t=="number"?pc(r,t):mc(r,t)}function mc(r,t){let e=Br(r.shape,t.shape),n=e.reduce((l,m)=>l*m,1),o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",s=D.zeros(e,u),i=s.data,c=Math.LOG2E;for(let l=0;l<n;l++){let m=(B(o),Number(r.iget(l))),y=(B(a),Number(t.iget(l))),d=Math.max(m,y),f=Math.min(m,y);i[l]=d+Math.log1p(Math.pow(2,f-d))*c}return s}function pc(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",u=D.zeros(n,a),s=u.data,i=Math.LOG2E;for(let c=0;c<o;c++){let l=(B(e),Number(r.data[c])),m=Math.max(l,t),y=Math.min(l,t);s[c]=m+Math.log1p(Math.pow(2,y-m))*i}return u}var ha=W(()=>{"use strict";X();Ir();J()});function Sa(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1];u[s*2]=Math.sin(i)*Math.cosh(c),u[s*2+1]=Math.cos(i)*Math.sinh(c)}return a}return H(r,Math.sin,!1)}function xa(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1];u[s*2]=Math.cos(i)*Math.cosh(c),u[s*2+1]=-Math.sin(i)*Math.sinh(c)}return a}return H(r,Math.cos,!1)}function Da(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=Math.cos(2*i)+Math.cosh(2*c);u[s*2]=Math.sin(2*i)/l,u[s*2+1]=Math.sinh(2*c)/l}return a}return H(r,Math.tan,!1)}function Na(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=-c,m=i,y=i*i-c*c,d=2*i*c,f=1-y,p=-d,g=Math.sqrt(f*f+p*p),h=Math.sqrt((g+f)/2),b=(p>=0?1:-1)*Math.sqrt((g-f)/2),A=l+h,S=m+b,x=Math.sqrt(A*A+S*S),w=Math.log(x),I=Math.atan2(S,A),z=-w;Math.abs(c)<1e-15&&i>1&&(z=-z),u[s*2]=I,u[s*2+1]=z}return a}return H(r,Math.asin,!1)}function wa(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=i*i-c*c,m=2*i*c,y=1-l,d=-m,f=Math.sqrt(y*y+d*d),p=Math.sqrt((f+y)/2),h=-((d>=0?1:-1)*Math.sqrt((f-y)/2)),b=p,A=i+h,S=c+b,x=Math.sqrt(A*A+S*S),w=Math.log(x),I=Math.atan2(S,A),z=-w;Math.abs(c)<1e-15&&i>1&&(z=-z),u[s*2]=I,u[s*2+1]=z}return a}return H(r,Math.acos,!1)}function Ia(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],l=-o[s*2+1],m=i,y=1-l,d=-m,f=1+l,p=m,g=f*f+p*p,h=(y*f+d*p)/g,b=(d*f-y*p)/g,A=Math.sqrt(h*h+b*b),S=Math.log(A),x=Math.atan2(b,h);u[s*2]=-x/2,u[s*2+1]=S/2}return a}return H(r,Math.atan,!1)}function za(r,t){return q(r.dtype,"arctan2","arctan2 is only defined for real numbers."),typeof t!="number"&&q(t.dtype,"arctan2","arctan2 is only defined for real numbers."),typeof t=="number"?gc(r,t):dc(r,t)}function dc(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",s=D.zeros(e,u),i=s.data;for(let c=0;c<n;c++){let l=(B(o),Number(r.data[c])),m=(B(a),Number(t.data[c]));i[c]=Math.atan2(l,m)}return s}function gc(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=e==="float32"?"float32":"float64",s=D.zeros(n,u),i=s.data;if(B(e))for(let c=0;c<a;c++)i[c]=Math.atan2(Number(o[c]),t);else for(let c=0;c<a;c++)i[c]=Math.atan2(Number(o[c]),t);return s}function _a(r,t){return q(r.dtype,"hypot","hypot is only defined for real numbers."),typeof t!="number"&&q(t.dtype,"hypot","hypot is only defined for real numbers."),typeof t=="number"?bc(r,t):Ac(r,t)}function Ac(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",s=D.zeros(e,u),i=s.data;for(let c=0;c<n;c++){let l=(B(o),Number(r.data[c])),m=(B(a),Number(t.data[c]));i[c]=Math.hypot(l,m)}return s}function bc(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=e==="float32"?"float32":"float64",s=D.zeros(n,u),i=s.data;if(B(e))for(let c=0;c<a;c++)i[c]=Math.hypot(Number(o[c]),t);else for(let c=0;c<a;c++)i[c]=Math.hypot(Number(o[c]),t);return s}function Fa(r){q(r.dtype,"degrees","degrees is only defined for real numbers.");let t=180/Math.PI;return H(r,e=>e*t,!1)}function Ma(r){q(r.dtype,"radians","radians is only defined for real numbers.");let t=Math.PI/180;return H(r,e=>e*t,!1)}var Ba=W(()=>{"use strict";X();Ir();J()});function va(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1];u[s*2]=Math.sinh(i)*Math.cos(c),u[s*2+1]=Math.cosh(i)*Math.sin(c)}return a}return H(r,Math.sinh,!1)}function Ta(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1];u[s*2]=Math.cosh(i)*Math.cos(c),u[s*2+1]=Math.sinh(i)*Math.sin(c)}return a}return H(r,Math.cosh,!1)}function Ea(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=Math.cosh(2*i)+Math.cos(2*c);u[s*2]=Math.sinh(2*i)/l,u[s*2+1]=Math.sin(2*c)/l}return a}return H(r,Math.tanh,!1)}function Oa(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=i*i-c*c,m=2*i*c,y=l+1,d=m,f=Math.sqrt(y*y+d*d),p=Math.sqrt((f+y)/2),g=(d>=0?1:-1)*Math.sqrt((f-y)/2),h=i+p,b=c+g,A=Math.sqrt(h*h+b*b);u[s*2]=Math.log(A),u[s*2+1]=Math.atan2(b,h)}return a}return H(r,Math.asinh,!1)}function Ca(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=i*i-c*c,m=2*i*c,y=l-1,d=m,f=Math.sqrt(y*y+d*d),p=Math.sqrt((f+y)/2),g=(d>=0?1:-1)*Math.sqrt((f-y)/2),h=i+p,b=c+g,A=Math.sqrt(h*h+b*b),S=Math.log(A),x=Math.atan2(b,h);Math.abs(c)<1e-15&&i<1&&(x=-x),u[s*2]=S,u[s*2+1]=x}return a}return H(r,Math.acosh,!1)}function Ua(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=D.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=1+i,m=c,y=1-i,d=-c,f=y*y+d*d,p=(l*y+m*d)/f,g=(m*y-l*d)/f,h=Math.sqrt(p*p+g*g),b=Math.log(h),A=Math.atan2(g,p);u[s*2]=b/2,u[s*2+1]=A/2}return a}return H(r,Math.atanh,!1)}var $a=W(()=>{"use strict";X();Ir();J()});function $t(r,t){let e=r.shape,n=e.length,o=t.length;if(o<n)throw new Error("input operand has more dimensions than allowed by the axis remapping");let a=gr([Array.from(e),t]);if(a===null)throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${t.join(",")})`);for(let u=0;u<o;u++)if(a[u]!==t[u])throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${t.join(",")})`);return pr(r,t)}function Ra(r){if(r.length===0)return[];if(r.length===1)return[r[0]];let t=r.map(n=>Array.from(n.shape)),e=gr(t);if(e===null)throw new Error(`operands could not be broadcast together with shapes ${t.map(n=>`(${n.join(",")})`).join(" ")}`);return r.map(n=>pr(n,e))}function ka(r,t,e){let n=r.shape,o=n.length,a=r.dtype;if(e===void 0){let f=r.size;for(let b of t){let A=b<0?f+b:b;if(A<0||A>=f)throw new Error(`index ${b} is out of bounds for axis 0 with size ${f}`)}let p=t.length,g=j(a);if(!g)throw new Error(`Cannot take from array with dtype ${a}`);let h=new g(p);for(let b=0;b<p;b++){let A=t[b];A<0&&(A=f+A);let S=r.iget(A);B(a),h[b]=S}return D.fromData(h,[p],a)}let u=e<0?o+e:e;if(u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=n[u];for(let f of t){let p=f<0?s+f:f;if(p<0||p>=s)throw new Error(`index ${f} is out of bounds for axis ${u} with size ${s}`)}let i=Array.from(n);i[u]=t.length;let c=i.reduce((f,p)=>f*p,1),l=j(a);if(!l)throw new Error(`Cannot take from array with dtype ${a}`);let m=new l(c),y=ur(i),d=new Array(o).fill(0);for(let f=0;f<c;f++){let p=[...d],g=d[u],h=t[g];h<0&&(h=s+h),p[u]=h;let b=r.get(...p),A=0;for(let S=0;S<o;S++)A+=d[S]*y[S];B(a),m[A]=b;for(let S=o-1;S>=0&&(d[S]++,!(d[S]<i[S]));S--)d[S]=0}return D.fromData(m,i,a)}function qa(r,t,e){let n=r.size,o=r.dtype,a;if(typeof e=="number"||typeof e=="bigint")a=new Array(t.length).fill(e);else{a=[];for(let u=0;u<e.size;u++){let s=e.iget(u);a.push(s instanceof O?s.re:s)}if(a.length===1)a=new Array(t.length).fill(a[0]);else if(a.length!==t.length){let u=[...a];a=[];for(let s=0;s<t.length;s++)a.push(u[s%u.length])}}for(let u=0;u<t.length;u++){let s=t[u];if(s<0&&(s=n+s),s<0||s>=n)throw new Error(`index ${t[u]} is out of bounds for axis 0 with size ${n}`);let i=a[u];B(o)?typeof i!="bigint"&&(i=BigInt(Math.round(Number(i)))):typeof i=="bigint"&&(i=Number(i)),r.iset(s,i)}}function Va(r,t){if(t.length===0)throw new Error("choices cannot be empty");let e=r.shape,n=t.length,o=t[0].dtype,a=t.map(y=>Array.from(y.shape));a.unshift(Array.from(e));let u=gr(a);if(u===null)throw new Error("operands could not be broadcast together");let s=pr(r,u),i=t.map(y=>pr(y,u)),c=u.reduce((y,d)=>y*d,1),l=j(o);if(!l)throw new Error(`Cannot choose with dtype ${o}`);let m=new l(c);for(let y=0;y<c;y++){let d=Number(s.iget(y));if(d<0||d>=n)throw new Error(`index ${d} is out of bounds for axis 0 with size ${n}`);let f=i[d].iget(y);B(o),m[y]=f}return D.fromData(m,u,o)}function Pa(r,t,e=!1){if(r.ndim!==t.ndim)return!1;for(let o=0;o<r.ndim;o++)if(r.shape[o]!==t.shape[o])return!1;let n=r.size;for(let o=0;o<n;o++){let a=r.iget(o),u=t.iget(o);if(e){let s=typeof a=="number"&&Number.isNaN(a),i=typeof u=="number"&&Number.isNaN(u);if(s&&i)continue}if(a!==u)return!1}return!0}function ja(r,t,e){let n=r.shape,o=n.length,a=r.dtype,u=e<0?o+e:e;if(u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=t.shape;if(s.length!==o)throw new Error(`indices and arr must have the same number of dimensions, got ${s.length} vs ${o}`);for(let p=0;p<o;p++)if(p!==u&&s[p]!==n[p]&&s[p]!==1&&n[p]!==1)throw new Error(`index ${s[p]} is out of bounds for size ${n[p]} in dimension ${p}`);let i=Array.from(s),c=i.reduce((p,g)=>p*g,1),l=j(a);if(!l)throw new Error(`Cannot take_along_axis with dtype ${a}`);let m=new l(c),y=ur(n),d=ur(s),f=n[u];for(let p=0;p<c;p++){let g=new Array(o),h=p;for(let N=o-1;N>=0;N--)g[N]=h%i[N],h=Math.floor(h/i[N]);let b=0;for(let N=0;N<o;N++){let I=s[N]===1?0:g[N];b+=I*d[N]}let A=Number(t.iget(b));if(A<0&&(A=f+A),A<0||A>=f)throw new Error(`index ${A} is out of bounds for axis ${u} with size ${f}`);let S=[...g];S[u]=A;let x=0;for(let N=0;N<o;N++){let I=n[N]===1?0:S[N];x+=I*y[N]}let w=r.iget(x);B(a),m[p]=w}return D.fromData(m,i,a)}function La(r,t,e,n){let o=r.shape,a=o.length,u=r.dtype,s=n<0?a+n:n;if(s<0||s>=a)throw new Error(`axis ${n} is out of bounds for array of dimension ${a}`);let i=t.shape,c=e.shape;if(i.length!==a||c.length!==a)throw new Error("indices, arr, and values must have same ndim");let l=o[s],m=ur(o),y=ur(i),d=ur(c),f=i.reduce((p,g)=>p*g,1);for(let p=0;p<f;p++){let g=new Array(a),h=p;for(let I=a-1;I>=0;I--)g[I]=h%i[I],h=Math.floor(h/i[I]);let b=0;for(let I=0;I<a;I++)b+=g[I]*y[I];let A=Number(t.iget(b));if(A<0&&(A=l+A),A<0||A>=l)throw new Error(`index ${A} is out of bounds for axis ${s} with size ${l}`);let S=0;for(let I=0;I<a;I++){let z=c[I]===1?0:g[I];S+=z*d[I]}let x=e.iget(S),w=[...g];w[s]=A;let N=0;for(let I=0;I<a;I++)N+=w[I]*m[I];B(u)?typeof x!="bigint"&&(x=BigInt(Math.round(Number(x)))):typeof x=="bigint"&&(x=Number(x)),r.iset(N,x)}}function Wa(r,t,e){let n=r.size,o=r.dtype,a;if(typeof e=="number"||typeof e=="bigint")a=[e];else{a=[];for(let s=0;s<e.size;s++){let i=e.iget(s);a.push(i instanceof O?i.re:i)}}let u=0;for(let s=0;s<n;s++)if(t.iget(s)){let c=a[u%a.length];B(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),r.iset(s,c),u++}}function Ue(r,t,e){let n=t.shape,o=n.length,a=t.dtype,u=t.data,s=B(a);if(e===void 0){let b=0,A=Math.min(r.size,t.size);for(let N=0;N<A;N++)r.iget(N)&&b++;let S=j(a);if(!S)throw new Error(`Cannot compress with dtype ${a}`);let x=new S(b),w=0;for(let N=0;N<A;N++)r.iget(N)&&(x[w]=u[N],w++);return D.fromData(x,[b],a)}let i=e<0?o+e:e;if(i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let c=n[i],l=Math.min(r.size,c),m=[];for(let b=0;b<l;b++)r.iget(b)&&m.push(b);let y=m.length,d=[...n];d[i]=y;let f=d.reduce((b,A)=>b*A,1),p=j(a);if(!p)throw new Error(`Cannot compress with dtype ${a}`);let g=new p(f),h=ur(n);if(i===0){let b=h[0],A=n.slice(1).reduce((x,w)=>x*w,1),S=0;for(let x=0;x<y;x++){let N=m[x]*b;if(s){let I=u,z=g;for(let F=0;F<A;F++)z[S++]=I[N+F]}else{let I=u,z=g;for(let F=0;F<A;F++)z[S++]=I[N+F]}}}else{let b=n.slice(0,i).reduce((x,w)=>x*w,1),A=n.slice(i+1).reduce((x,w)=>x*w,1),S=0;for(let x=0;x<b;x++)for(let w=0;w<y;w++){let N=m[w],I=0,z=x;for(let F=i-1;F>=0;F--){let _=z%n[F];z=Math.floor(z/n[F]),I+=_*h[F]}if(I+=N*h[i],s){let F=u,_=g;for(let T=0;T<A;T++)_[S++]=F[I+T]}else{let F=u,_=g;for(let T=0;T<A;T++)_[S++]=F[I+T]}}}return D.fromData(g,d,a)}function Ga(r,t,e=0){if(r.length!==t.length)throw new Error("condlist and choicelist must have same length");if(r.length===0)throw new Error("condlist and choicelist cannot be empty");let n=[...r.map(y=>Array.from(y.shape)),...t.map(y=>Array.from(y.shape))],o=gr(n);if(o===null)throw new Error("condlist and choicelist arrays could not be broadcast together");let a=t[0].dtype,u=o.reduce((y,d)=>y*d,1),s=j(a);if(!s)throw new Error(`Cannot select with dtype ${a}`);let i=e;B(a)?i=typeof e=="bigint"?e:BigInt(e):i=typeof e=="bigint"?Number(e):e;let c=new s(u);for(let y=0;y<u;y++)B(a),c[y]=i;let l=r.map(y=>pr(y,o)),m=t.map(y=>pr(y,o));for(let y=0;y<u;y++)for(let d=0;d<r.length;d++)if(l[d].iget(y)){let f=m[d].iget(y);B(a),c[y]=f;break}return D.fromData(c,o,a)}function Za(r,t,e){let n=r.size,o=r.dtype,a=[];for(let s=0;s<e.size;s++){let i=e.iget(s);a.push(i instanceof O?i.re:i)}if(a.length===0)return;let u=0;for(let s=0;s<n;s++)if(t.iget(s)){let c=a[u%a.length];B(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),r.iset(s,c),u++}}function $e(r,t=2){if(t<1)throw new Error("ndim must be at least 1");let e=new Int32Array(r);for(let o=0;o<r;o++)e[o]=o;let n=[];for(let o=0;o<t;o++)n.push(D.fromData(new Int32Array(e),[r],"int32"));return n}function Ya(r){let t=r.shape,e=t.length;if(e<2)throw new Error("array must be at least 2-D");let n=t[0];for(let o=1;o<e;o++)if(t[o]!==n)throw new Error("All dimensions of input must be equal");return $e(n,e)}function Re(r,t=0,e){let n=e??r,o=[],a=[];for(let u=0;u<r;u++)for(let s=0;s<=Math.min(u+t,n-1);s++)s>=0&&(o.push(u),a.push(s));return[D.fromData(new Int32Array(o),[o.length],"int32"),D.fromData(new Int32Array(a),[a.length],"int32")]}function Ha(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return Re(e[0],t,e[1])}function ke(r,t=0,e){let n=e??r,o=[],a=[];for(let u=0;u<r;u++)for(let s=Math.max(u+t,0);s<n;s++)o.push(u),a.push(s);return[D.fromData(new Int32Array(o),[o.length],"int32"),D.fromData(new Int32Array(a),[a.length],"int32")]}function Ja(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return ke(e[0],t,e[1])}function Xa(r,t,e=0){let n=t(r,e),o=n.shape;if(o.length!==2||o[0]!==r||o[1]!==r)throw new Error("mask_func must return n x n array");let a=[],u=[];for(let s=0;s<r;s++)for(let i=0;i<r;i++)n.get(s,i)&&(a.push(s),u.push(i));return[D.fromData(new Int32Array(a),[a.length],"int32"),D.fromData(new Int32Array(u),[u.length],"int32")]}function Qa(r,t="int32"){let e=r.length,n=[e,...r],o=n.reduce((i,c)=>i*c,1),a=j(t);if(!a)throw new Error(`Cannot create indices with dtype ${t}`);let u=new a(o),s=r.reduce((i,c)=>i*c,1);for(let i=0;i<e;i++){let c=i*s;for(let l=0;l<s;l++){let m=new Array(e),y=l;for(let f=e-1;f>=0;f--)m[f]=y%r[f],y=Math.floor(y/r[f]);let d=m[i];t==="int64"?u[c+l]=BigInt(d):u[c+l]=d}}return D.fromData(u,n,t)}function Ka(...r){let t=r.length,e=[];for(let n=0;n<t;n++){let o=r[n],a=o.size,u=o.dtype,s=new Array(t).fill(1);s[n]=a;let i=j(u);if(!i)throw new Error(`Cannot create ix_ with dtype ${u}`);let c=new i(a);for(let l=0;l<a;l++){let m=o.iget(l);B(u),c[l]=m}e.push(D.fromData(c,s,u))}return e}function rs(r,t,e="raise"){if(r.length!==t.length)throw new Error("multi_index length must equal dims length");if(r.length===0)throw new Error("multi_index cannot be empty");let n=r[0].size,o=t.length,a=new Int32Array(n),u=new Array(o),s=1;for(let i=o-1;i>=0;i--)u[i]=s,s*=t[i];for(let i=0;i<n;i++){let c=0;for(let l=0;l<o;l++){let m=Number(r[l].iget(i)),y=t[l];if(e==="wrap")m=(m%y+y)%y;else if(e==="clip")m=Math.max(0,Math.min(m,y-1));else if(m<0||m>=y)throw new Error(`index ${m} is out of bounds for axis ${l} with size ${y}`);c+=m*u[l]}a[i]=c}return D.fromData(a,[n],"int32")}function ts(r,t,e="C"){let n=t.length,o,a;if(typeof r=="number")o=[r],a=[];else{o=[];for(let l=0;l<r.size;l++)o.push(Number(r.iget(l)));a=Array.from(r.shape)}let u=o.length,s=t.reduce((l,m)=>l*m,1),i=new Array(n);if(e==="C"){let l=1;for(let m=n-1;m>=0;m--)i[m]=l,l*=t[m]}else{let l=1;for(let m=0;m<n;m++)i[m]=l,l*=t[m]}let c=[];for(let l=0;l<n;l++){let m=new Int32Array(u);c.push(D.fromData(m,a.length?a:[1],"int32"))}for(let l=0;l<u;l++){let m=o[l];if(m<0||m>=s)throw new Error(`index ${m} is out of bounds for array with size ${s}`);if(e==="C")for(let y=0;y<n;y++){let d=Math.floor(m/i[y]);m=m%i[y],c[y].data[l]=d%t[y]}else for(let y=n-1;y>=0;y--){let d=Math.floor(m/i[y]);m=m%i[y],c[y].data[l]=d%t[y]}}return typeof r=="number"?c.map(l=>{let m=l.iget(0);return D.fromData(new Int32Array([Number(m)]),[],"int32")}):c}function es(r,t,e=!1){let n=r.shape,o=n.length;if(o<2)throw new Error("array must be at least 2-d");let a;if(o===2)a=n[1]+1;else{a=1;for(let c=1;c<o;c++){let l=1;for(let m=c;m<o;m++)l*=n[m];a+=l}}let u=r.data,s=r.size,i=Math.min(...n);if(e&&o===2&&(i=Math.max(n[0],n[1])),typeof t=="number")for(let c=0;c<i&&c*a<s;c++){let l=c*a;if(l<s)u[l]=t;else break}else{let c=t.data,l=t.size;for(let m=0;m<i&&m*a<s;m++){let y=m*a;if(y<s)u[y]=c[m%l];else break}}}var ns=W(()=>{"use strict";X();J();_t();xr()});function br(r,t){if(!On(r)&&r!=="bool")throw new TypeError(`ufunc '${t}' not supported for the input types, and the inputs could not be safely coerced to any supported types`)}function ct(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function ss(r,t){return br(r.dtype,"bitwise_and"),typeof t=="number"?Nc(r,t):(br(t.dtype,"bitwise_and"),ct(r,t)?Dc(r,t):K(r,t,(e,n)=>e&n,"bitwise_and"))}function Dc(r,t){let e=Z(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(B(e)){let i=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),y=typeof u[l]=="bigint"?u[l]:BigInt(Math.round(Number(u[l])));i[l]=m&y}else{let l=a,m=u;for(let y=0;y<o;y++)i[y]=l[y]&m[y]}}else for(let i=0;i<o;i++)s[i]=a[i]&u[i];return n}function Nc(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=D.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]&l}else for(let i=0;i<a;i++)s[i]=o[i]&t;return u}function is(r,t){return br(r.dtype,"bitwise_or"),typeof t=="number"?Ic(r,t):(br(t.dtype,"bitwise_or"),ct(r,t)?wc(r,t):K(r,t,(e,n)=>e|n,"bitwise_or"))}function wc(r,t){let e=Z(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(B(e)){let i=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),y=typeof u[l]=="bigint"?u[l]:BigInt(Math.round(Number(u[l])));i[l]=m|y}else{let l=a,m=u;for(let y=0;y<o;y++)i[y]=l[y]|m[y]}}else for(let i=0;i<o;i++)s[i]=a[i]|u[i];return n}function Ic(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=D.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]|l}else for(let i=0;i<a;i++)s[i]=o[i]|t;return u}function us(r,t){return br(r.dtype,"bitwise_xor"),typeof t=="number"?_c(r,t):(br(t.dtype,"bitwise_xor"),ct(r,t)?zc(r,t):K(r,t,(e,n)=>e^n,"bitwise_xor"))}function zc(r,t){let e=Z(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(B(e)){let i=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),y=typeof u[l]=="bigint"?u[l]:BigInt(Math.round(Number(u[l])));i[l]=m^y}else{let l=a,m=u;for(let y=0;y<o;y++)i[y]=l[y]^m[y]}}else for(let i=0;i<o;i++)s[i]=a[i]^u[i];return n}function _c(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=D.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]^l}else for(let i=0;i<a;i++)s[i]=o[i]^t;return u}function qe(r){br(r.dtype,"bitwise_not");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=D.zeros(e,t),u=a.data;if(B(t)){let s=n,i=u;for(let c=0;c<o;c++)i[c]=~s[c]}else for(let s=0;s<o;s++)u[s]=~n[s];return a}function cs(r){return qe(r)}function ls(r,t){if(br(r.dtype,"left_shift"),typeof t=="number")return os(r,t);if(br(t.dtype,"left_shift"),t.size===1||t.ndim===1&&t.shape[0]===1){let e=B(t.dtype)?Number(t.data[0]):t.data[0];return os(r,e)}return ct(r,t)?Fc(r,t):K(r,t,(e,n)=>e<<n,"left_shift")}function Fc(r,t){let e=Z(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(B(e)){let i=s;for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?a[c]:BigInt(Math.round(Number(a[c]))),m=typeof u[c]=="bigint"?u[c]:BigInt(Math.round(Number(u[c])));i[c]=l<<m}}else for(let i=0;i<o;i++)s[i]=a[i]<<u[i];return n}function os(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=D.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]<<l}else for(let i=0;i<a;i++)s[i]=o[i]<<t;return u}function fs(r,t){if(br(r.dtype,"right_shift"),typeof t=="number")return as(r,t);if(br(t.dtype,"right_shift"),t.size===1||t.ndim===1&&t.shape[0]===1){let e=B(t.dtype)?Number(t.data[0]):t.data[0];return as(r,e)}return ct(r,t)?Mc(r,t):K(r,t,(e,n)=>e>>n,"right_shift")}function Mc(r,t){let e=Z(r.dtype,t.dtype),n=D.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(B(e)){let i=s;for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?a[c]:BigInt(Math.round(Number(a[c]))),m=typeof u[c]=="bigint"?u[c]:BigInt(Math.round(Number(u[c])));i[c]=l>>m}}else for(let i=0;i<o;i++)s[i]=a[i]>>u[i];return n}function as(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=D.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]>>l}else for(let i=0;i<a;i++)s[i]=o[i]>>t;return u}function ms(r,t=-1,e="big"){let n=Array.from(r.shape),o=n.length;if(t<0&&(t=o+t),t<0||t>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let a=n[t],u=Math.ceil(a/8),s=[...n];s[t]=u;let i=D.zeros(s,"uint8"),c=i.data;if(o===1){for(let g=0;g<u;g++){let h=0;for(let b=0;b<8;b++){let A=g*8+b;if(A<a){let S=Number(r.data[A])!==0?1:0;e==="big"?h|=S<<7-b:h|=S<<b}}c[g]=h}return i}let l=n.slice(0,t),m=n.slice(t+1),y=l.reduce((g,h)=>g*h,1),d=m.reduce((g,h)=>g*h,1),f=Rt(n),p=Rt(s);for(let g=0;g<y;g++)for(let h=0;h<d;h++)for(let b=0;b<u;b++){let A=0;for(let N=0;N<8;N++){let I=b*8+N;if(I<a){let z=0,F=g;for(let E=0;E<t;E++){let C=E<t-1?l.slice(E+1).reduce((V,R)=>V*R,1):1,k=Math.floor(F/C);F%=C,z+=k*f[E]}z+=I*f[t];let _=h;for(let E=t+1;E<o;E++){let C=E<o-1?m.slice(E-t).reduce((V,R)=>V*R,1):1,k=Math.floor(_/C);_%=C,z+=k*f[E]}let T=Number(r.data[z])!==0?1:0;e==="big"?A|=T<<7-N:A|=T<<N}}let S=0,x=g;for(let N=0;N<t;N++){let I=N<t-1?l.slice(N+1).reduce((F,_)=>F*_,1):1,z=Math.floor(x/I);x%=I,S+=z*p[N]}S+=b*p[t];let w=h;for(let N=t+1;N<o;N++){let I=N<o-1?m.slice(N-t).reduce((F,_)=>F*_,1):1,z=Math.floor(w/I);w%=I,S+=z*p[N]}c[S]=A}return i}function ps(r,t=-1,e=-1,n="big"){if(r.dtype!=="uint8")throw new TypeError("Expected an input array of unsigned byte data type");let o=Array.from(r.shape),a=o.length;if(t<0&&(t=a+t),t<0||t>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let u=o[t],s=u*8;e>=0&&(s=e);let i=[...o];i[t]=s;let c=D.zeros(i,"uint8"),l=c.data;if(a===1){for(let h=0;h<u;h++){let b=Number(r.data[h]);for(let A=0;A<8;A++){let S=h*8+A;if(S>=s)break;n==="big"?l[S]=b>>7-A&1:l[S]=b>>A&1}}return c}let m=o.slice(0,t),y=o.slice(t+1),d=m.reduce((h,b)=>h*b,1),f=y.reduce((h,b)=>h*b,1),p=Rt(o),g=Rt(i);for(let h=0;h<d;h++)for(let b=0;b<f;b++)for(let A=0;A<u;A++){let S=0,x=h;for(let I=0;I<t;I++){let z=I<t-1?m.slice(I+1).reduce((_,T)=>_*T,1):1,F=Math.floor(x/z);x%=z,S+=F*p[I]}S+=A*p[t];let w=b;for(let I=t+1;I<a;I++){let z=I<a-1?y.slice(I-t).reduce((_,T)=>_*T,1):1,F=Math.floor(w/z);w%=z,S+=F*p[I]}let N=Number(r.data[S]);for(let I=0;I<8;I++){let z=A*8+I;if(z>=s)break;let F=0;x=h;for(let _=0;_<t;_++){let T=_<t-1?m.slice(_+1).reduce((C,k)=>C*k,1):1,E=Math.floor(x/T);x%=T,F+=E*g[_]}F+=z*g[t],w=b;for(let _=t+1;_<a;_++){let T=_<a-1?y.slice(_-t).reduce((C,k)=>C*k,1):1,E=Math.floor(w/T);w%=T,F+=E*g[_]}n==="big"?l[F]=N>>7-I&1:l[F]=N>>I&1}}return c}function Rt(r){let t=r.length,e=new Array(t),n=1;for(let o=t-1;o>=0;o--)e[o]=n,n*=r[o];return e}var ys=W(()=>{"use strict";X();J();Ir()});function Yr(r){return r!==0&&r!==0n}function Dr(r,t){let e=r[t*2],n=r[t*2+1];return e!==0||n!==0}function ft(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function gs(r,t){return typeof t=="number"?Tc(r,t):ft(r,t)?vc(r,t):yr(r,t,(e,n)=>Yr(e)&&Yr(n))}function vc(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.size,u=B(r.dtype),s=B(t.dtype),i=M(r.dtype),c=M(t.dtype);if(i||c)for(let l=0;l<a;l++){let m=i?Dr(n,l):n[l]!==0,y=c?Dr(o,l):o[l]!==0;e[l]=m&&y?1:0}else if(u||s)for(let l=0;l<a;l++){let m=u?n[l]!==0n:n[l]!==0,y=s?o[l]!==0n:o[l]!==0;e[l]=m&&y?1:0}else for(let l=0;l<a;l++)e[l]=n[l]!==0&&o[l]!==0?1:0;return D.fromData(e,Array.from(r.shape),"bool")}function Tc(r,t){let e=new Uint8Array(r.size),n=r.data,o=t!==0,a=r.size;if(M(r.dtype)){let u=n;for(let s=0;s<a;s++)e[s]=Dr(u,s)&&o?1:0}else if(B(r.dtype)){let u=n;for(let s=0;s<a;s++)e[s]=u[s]!==0n&&o?1:0}else for(let u=0;u<a;u++)e[u]=n[u]!==0&&o?1:0;return D.fromData(e,Array.from(r.shape),"bool")}function As(r,t){return typeof t=="number"?Oc(r,t):ft(r,t)?Ec(r,t):yr(r,t,(e,n)=>Yr(e)||Yr(n))}function Ec(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.size,u=B(r.dtype),s=B(t.dtype),i=M(r.dtype),c=M(t.dtype);if(i||c)for(let l=0;l<a;l++){let m=i?Dr(n,l):n[l]!==0,y=c?Dr(o,l):o[l]!==0;e[l]=m||y?1:0}else if(u||s)for(let l=0;l<a;l++){let m=u?n[l]!==0n:n[l]!==0,y=s?o[l]!==0n:o[l]!==0;e[l]=m||y?1:0}else for(let l=0;l<a;l++)e[l]=n[l]!==0||o[l]!==0?1:0;return D.fromData(e,Array.from(r.shape),"bool")}function Oc(r,t){let e=new Uint8Array(r.size),n=r.data,o=t!==0,a=r.size;if(M(r.dtype)){let u=n;for(let s=0;s<a;s++)e[s]=Dr(u,s)||o?1:0}else if(B(r.dtype)){let u=n;for(let s=0;s<a;s++)e[s]=u[s]!==0n||o?1:0}else for(let u=0;u<a;u++)e[u]=n[u]!==0||o?1:0;return D.fromData(e,Array.from(r.shape),"bool")}function bs(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(M(r.dtype)){let o=e;for(let a=0;a<n;a++)t[a]=Dr(o,a)?0:1}else if(B(r.dtype)){let o=e;for(let a=0;a<n;a++)t[a]=o[a]===0n?1:0}else for(let o=0;o<n;o++)t[o]=e[o]===0?1:0;return D.fromData(t,Array.from(r.shape),"bool")}function hs(r,t){return typeof t=="number"?Uc(r,t):ft(r,t)?Cc(r,t):yr(r,t,(e,n)=>Yr(e)!==Yr(n))}function Cc(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.size,u=B(r.dtype),s=B(t.dtype),i=M(r.dtype),c=M(t.dtype);if(i||c)for(let l=0;l<a;l++){let m=i?Dr(n,l):n[l]!==0,y=c?Dr(o,l):o[l]!==0;e[l]=m!==y?1:0}else if(u||s)for(let l=0;l<a;l++){let m=u?n[l]!==0n:n[l]!==0,y=s?o[l]!==0n:o[l]!==0;e[l]=m!==y?1:0}else for(let l=0;l<a;l++){let m=n[l]!==0,y=o[l]!==0;e[l]=m!==y?1:0}return D.fromData(e,Array.from(r.shape),"bool")}function Uc(r,t){let e=new Uint8Array(r.size),n=r.data,o=t!==0,a=r.size;if(M(r.dtype)){let u=n;for(let s=0;s<a;s++){let i=Dr(u,s);e[s]=i!==o?1:0}}else if(B(r.dtype)){let u=n;for(let s=0;s<a;s++){let i=u[s]!==0n;e[s]=i!==o?1:0}}else for(let u=0;u<a;u++){let s=n[u]!==0;e[u]=s!==o?1:0}return D.fromData(e,Array.from(r.shape),"bool")}function Ss(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(M(r.dtype)){let o=e;for(let a=0;a<n;a++){let u=o[a*2],s=o[a*2+1];t[a]=Number.isFinite(u)&&Number.isFinite(s)?1:0}}else if(B(r.dtype))for(let o=0;o<n;o++)t[o]=1;else for(let o=0;o<n;o++){let a=e[o];t[o]=Number.isFinite(a)?1:0}return D.fromData(t,Array.from(r.shape),"bool")}function xs(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(M(r.dtype)){let o=e;for(let a=0;a<n;a++){let u=o[a*2],s=o[a*2+1],i=!Number.isFinite(u)&&!Number.isNaN(u),c=!Number.isFinite(s)&&!Number.isNaN(s);t[a]=i||c?1:0}}else if(B(r.dtype))for(let o=0;o<n;o++)t[o]=0;else for(let o=0;o<n;o++){let a=e[o];t[o]=!Number.isFinite(a)&&!Number.isNaN(a)?1:0}return D.fromData(t,Array.from(r.shape),"bool")}function Ds(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(M(r.dtype)){let o=e;for(let a=0;a<n;a++){let u=o[a*2],s=o[a*2+1];t[a]=Number.isNaN(u)||Number.isNaN(s)?1:0}}else if(B(r.dtype))for(let o=0;o<n;o++)t[o]=0;else for(let o=0;o<n;o++)t[o]=Number.isNaN(e[o])?1:0;return D.fromData(t,Array.from(r.shape),"bool")}function Ns(r){let t=new Uint8Array(r.size);return D.fromData(t,Array.from(r.shape),"bool")}function ws(r,t){if(q(r.dtype,"copysign","copysign is only defined for real numbers."),typeof t!="number"&&q(t.dtype,"copysign","copysign is only defined for real numbers."),typeof t=="number")return Rc(r,t);if(ft(r,t))return $c(r,t);let e=Br(r.shape,t.shape),n=e.reduce((i,c)=>i*c,1),o=D.zeros(e,"float64"),a=o.data,u=kt(r,e),s=kt(t,e);for(let i=0;i<n;i++){let c=Number(u.iget(i)),l=Number(s.iget(i));a[i]=Math.sign(l)*Math.abs(c)}return o}function $c(r,t){let e=D.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size,a=r.data,u=t.data,s=B(r.dtype),i=B(t.dtype);for(let c=0;c<o;c++){let l=s?Number(a[c]):a[c],m=i?Number(u[c]):u[c];n[c]=Math.sign(m)*Math.abs(l)}return e}function Rc(r,t){let e=D.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.data,a=r.size,u=Math.sign(t);if(B(r.dtype)){let s=o;for(let i=0;i<a;i++)n[i]=u*Math.abs(Number(s[i]))}else for(let s=0;s<a;s++)n[s]=u*Math.abs(o[s]);return e}function Is(r){q(r.dtype,"signbit","signbit is only defined for real numbers.");let t=new Uint8Array(r.size),e=r.data,n=r.size;if(B(r.dtype)){let o=e;for(let a=0;a<n;a++)t[a]=o[a]<0n?1:0}else for(let o=0;o<n;o++){let a=e[o];t[o]=a<0||Object.is(a,-0)?1:0}return D.fromData(t,Array.from(r.shape),"bool")}function zs(r,t){if(q(r.dtype,"nextafter","nextafter is only defined for real numbers."),typeof t!="number"&&q(t.dtype,"nextafter","nextafter is only defined for real numbers."),typeof t=="number")return qc(r,t);if(ft(r,t))return kc(r,t);let e=Br(r.shape,t.shape),n=e.reduce((i,c)=>i*c,1),o=D.zeros(e,"float64"),a=o.data,u=kt(r,e),s=kt(t,e);for(let i=0;i<n;i++){let c=Number(u.iget(i)),l=Number(s.iget(i));a[i]=lt(c,l)}return o}function kc(r,t){let e=D.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size,a=r.data,u=t.data,s=B(r.dtype),i=B(t.dtype);for(let c=0;c<o;c++){let l=s?Number(a[c]):a[c],m=i?Number(u[c]):u[c];n[c]=lt(l,m)}return e}function qc(r,t){let e=D.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.data,a=r.size;if(B(r.dtype)){let u=o;for(let s=0;s<a;s++)n[s]=lt(Number(u[s]),t)}else for(let u=0;u<a;u++)n[u]=lt(o[u],t);return e}function lt(r,t){if(Number.isNaN(r)||Number.isNaN(t))return NaN;if(r===t)return t;if(r===0)return t>0?Number.MIN_VALUE:-Number.MIN_VALUE;let e=new ArrayBuffer(8),n=new Float64Array(e),o=new BigInt64Array(e);n[0]=r;let a=o[0];return r>0&&t>r||r<0&&t>r?a=a+1n:a=a-1n,o[0]=a,n[0]}function _s(r){q(r.dtype,"spacing","spacing is only defined for real numbers.");let t=D.zeros(Array.from(r.shape),"float64"),e=t.data,n=r.data,o=r.size;if(B(r.dtype)){let a=n;for(let u=0;u<o;u++)e[u]=ds(Number(a[u]))}else for(let a=0;a<o;a++)e[a]=ds(n[a]);return t}function ds(r){if(Number.isNaN(r))return NaN;if(!Number.isFinite(r))return NaN;if(Math.abs(r)===0)return Number.MIN_VALUE;let e=lt(r,1/0);return Math.abs(e-r)}function kt(r,t){let e=r.shape.length,n=t.length,o=new Array(n).fill(0);for(let a=0;a<e;a++){let u=n-e+a,s=r.shape[a],i=t[u];if(s===i)o[u]=r.strides[a];else if(s===1)o[u]=0;else throw new Error("Invalid broadcast")}return D.fromData(r.data,Array.from(t),r.dtype,o,r.offset)}function Fs(r){let t=r.dtype,e=r.size,n=new Uint8Array(e);if(M(t)){let o=r.data;for(let a=0;a<e;a++)n[a]=o[a*2+1]!==0?1:0}return D.fromData(n,Array.from(r.shape),"bool")}function Ms(r){return M(r.dtype)}function Bs(r){let t=r.dtype,e=r.size,n=new Uint8Array(e);if(M(t)){let o=r.data;for(let a=0;a<e;a++)n[a]=o[a*2+1]===0?1:0}else n.fill(1);return D.fromData(n,Array.from(r.shape),"bool")}function vs(r){return!M(r.dtype)}function Ts(r){q(r.dtype,"isneginf","This operation is not supported for complex values because it would be ambiguous.");let t=new Uint8Array(r.size),e=r.data,n=r.size;if(!B(r.dtype))for(let o=0;o<n;o++){let a=e[o];t[o]=a===-1/0?1:0}return D.fromData(t,Array.from(r.shape),"bool")}function Es(r){q(r.dtype,"isposinf","This operation is not supported for complex values because it would be ambiguous.");let t=new Uint8Array(r.size),e=r.data,n=r.size;if(!B(r.dtype))for(let o=0;o<n;o++){let a=e[o];t[o]=a===1/0?1:0}return D.fromData(t,Array.from(r.shape),"bool")}function Os(r){return r.isFContiguous}function Cs(r,t=100){let e=r.dtype;if(M(e)){let n=r.data,o=r.size,u=t*(e==="complex64"?11920929e-14:2220446049250313e-31),s=!0;for(let i=0;i<o;i++){let c=n[i*2+1];if(Math.abs(c)>u){s=!1;break}}if(s){let i=e==="complex64"?"float32":"float64",c=D.zeros(Array.from(r.shape),i),l=c.data;for(let m=0;m<o;m++)l[m]=n[m*2];return c}return r.copy()}return r.copy()}function Us(r){return typeof r=="number"||typeof r=="bigint"||typeof r=="boolean"||typeof r=="string"}function $s(r){return r==null?!1:typeof r[Symbol.iterator]=="function"}function Rs(r,t){let n={b:["bool"],i:["int8","int16","int32","int64"],u:["uint8","uint16","uint32","uint64"],f:["float32","float64"]}[t];return n?n.includes(r):!1}function ks(r,t){let e=["float64","float32","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"],n=e.indexOf(r),o=e.indexOf(t);return n<=o?r:t}var qs=W(()=>{"use strict";X();J();Ir();Ir()});function Vs(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(M(t)){let o=Kr(t),a=D.zeros(e,o),u=a.data,s=r.data;for(let i=0;i<n;i++)u[i]=s[i*2];return a}return r.copy()}function Ps(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(M(t)){let a=Kr(t),u=D.zeros(e,a),s=u.data,i=r.data;for(let c=0;c<n;c++)s[c]=i[c*2+1];return u}let o=t==="float32"?"float32":"float64";return D.zeros(e,o)}function js(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(M(t)){let o=j(t),a=n*2,u=new o(a),s=r.data;for(let i=0;i<n;i++)u[i*2]=s[i*2],u[i*2+1]=-s[i*2+1];return D.fromData(u,e,t)}return r.copy()}function Ls(r,t=!1){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=D.zeros(n,"float64"),u=a.data;if(M(e)){let s=r.data;for(let i=0;i<o;i++){let c=s[i*2],l=s[i*2+1],m=Math.atan2(l,c);t&&(m=m*180/Math.PI),u[i]=m}}else for(let s=0;s<o;s++){let i=r.iget(s),l=(i instanceof O?i.re:Number(i))>=0?0:Math.PI;t&&(l=l*180/Math.PI),u[s]=l}return a}var Ws=W(()=>{"use strict";X();J();xr()});function Nr(r,t,e){if(e){let n=r[t*2],o=r[t*2+1];return n!==0||o!==0}return!!r[t]}function mt(r,t,e,n){let o=isNaN(r)||isNaN(t),a=isNaN(e)||isNaN(n);return o&&a?0:o?1:a||r<e?-1:r>e?1:t<n?-1:t>n?1:0}function Ve(r,t=-1){let e=r.shape,n=e.length,o=r.dtype,a=r.data;if(n===0)return r.copy();let u=t;if(u<0&&(u=n+u),u<0||u>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let s=r.copy(),i=s.data,c=e[u],l=Array.from(e).filter((y,d)=>d!==u),m=l.length===0?1:l.reduce((y,d)=>y*d,1);if(M(o)){let y=a,d=i;for(let f=0;f<m;f++){let p=[];for(let g=0;g<c;g++){let h=$(f,u,g,e),b=U(h,e);p.push({re:y[b*2],im:y[b*2+1],idx:g})}p.sort((g,h)=>mt(g.re,g.im,h.re,h.im));for(let g=0;g<c;g++){let h=$(f,u,g,e),b=U(h,e);d[b*2]=p[g].re,d[b*2+1]=p[g].im}}}else if(B(o)){let y=a,d=i;for(let f=0;f<m;f++){let p=[];for(let g=0;g<c;g++){let h=$(f,u,g,e),b=U(h,e);p.push({value:y[b],idx:g})}p.sort((g,h)=>g.value<h.value?-1:g.value>h.value?1:0);for(let g=0;g<c;g++){let h=$(f,u,g,e),b=U(h,e);d[b]=p[g].value}}}else for(let y=0;y<m;y++){let d=[];for(let f=0;f<c;f++){let p=$(y,u,f,e),g=U(p,e);d.push(Number(a[g]))}d.sort((f,p)=>isNaN(f)&&isNaN(p)?0:isNaN(f)?1:isNaN(p)?-1:f-p);for(let f=0;f<c;f++){let p=$(y,u,f,e),g=U(p,e);i[g]=d[f]}}return s}function Pe(r,t=-1){let e=r.shape,n=e.length,o=r.dtype,a=r.data;if(n===0)return D.zeros([0],"int32");let u=t;if(u<0&&(u=n+u),u<0||u>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let s=D.zeros(Array.from(e),"int32"),i=s.data,c=e[u],l=Array.from(e).filter((y,d)=>d!==u),m=l.length===0?1:l.reduce((y,d)=>y*d,1);if(M(o)){let y=a;for(let d=0;d<m;d++){let f=[];for(let p=0;p<c;p++){let g=$(d,u,p,e),h=U(g,e);f.push({re:y[h*2],im:y[h*2+1],idx:p})}f.sort((p,g)=>mt(p.re,p.im,g.re,g.im));for(let p=0;p<c;p++){let g=$(d,u,p,e),h=U(g,e);i[h]=f[p].idx}}}else if(B(o)){let y=a;for(let d=0;d<m;d++){let f=[];for(let p=0;p<c;p++){let g=$(d,u,p,e),h=U(g,e);f.push({value:y[h],idx:p})}f.sort((p,g)=>p.value<g.value?-1:p.value>g.value?1:0);for(let p=0;p<c;p++){let g=$(d,u,p,e),h=U(g,e);i[h]=f[p].idx}}}else for(let y=0;y<m;y++){let d=[];for(let f=0;f<c;f++){let p=$(y,u,f,e),g=U(p,e);d.push({value:Number(a[g]),idx:f})}d.sort((f,p)=>isNaN(f.value)&&isNaN(p.value)?0:isNaN(f.value)?1:isNaN(p.value)?-1:f.value-p.value);for(let f=0;f<c;f++){let p=$(y,u,f,e),g=U(p,e);i[g]=d[f].idx}}return s}function Gs(r){if(r.length===0)return D.zeros([0],"int32");let e=r[0].size;for(let u of r){if(u.ndim!==1)throw new Error("keys must be 1D arrays");if(u.size!==e)throw new Error("all keys must have the same length")}let n=[];for(let u=0;u<e;u++)n.push(u);n.sort((u,s)=>{for(let i=r.length-1;i>=0;i--){let l=r[i].data,m=Number(l[u]),y=Number(l[s]);if(!(isNaN(m)&&isNaN(y))){if(isNaN(m))return 1;if(isNaN(y)||m<y)return-1;if(m>y)return 1}}return 0});let o=D.zeros([e],"int32"),a=o.data;for(let u=0;u<e;u++)a[u]=n[u];return o}function jc(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e],u=r[o],s=r[n],i;a<=u&&u<=s||s<=u&&u<=a?i=o:u<=a&&a<=s||s<=a&&a<=u?i=e:i=n;let c=r[i];[r[i],r[n]]=[r[n],r[i]];let l=e;for(let m=e;m<n;m++){let y=r[m],d=isNaN(y),f=isNaN(c);!d&&(f||y<=c)&&([r[l],r[m]]=[r[m],r[l]],l++)}if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function Lc(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e],u=r[o],s=r[n],i;a<=u&&u<=s||s<=u&&u<=a?i=o:u<=a&&a<=s||s<=a&&a<=u?i=e:i=n;let c=r[i];[r[i],r[n]]=[r[n],r[i]];let l=e;for(let m=e;m<n;m++)r[m]<=c&&([r[l],r[m]]=[r[m],r[l]],l++);if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function Wc(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e].value,u=r[o].value,s=r[n].value,i;a<=u&&u<=s||s<=u&&u<=a?i=o:u<=a&&a<=s||s<=a&&a<=u?i=e:i=n;let c=r[i].value;[r[i],r[n]]=[r[n],r[i]];let l=e;for(let m=e;m<n;m++){let y=r[m].value,d=isNaN(y),f=isNaN(c);!d&&(f||y<=c)&&([r[l],r[m]]=[r[m],r[l]],l++)}if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function Gc(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e].value,u=r[o].value,s=r[n].value,i;a<=u&&u<=s||s<=u&&u<=a?i=o:u<=a&&a<=s||s<=a&&a<=u?i=e:i=n;let c=r[i].value;[r[i],r[n]]=[r[n],r[i]];let l=e;for(let m=e;m<n;m++)r[m].value<=c&&([r[l],r[m]]=[r[m],r[l]],l++);if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function je(r,t,e=-1){let n=r.shape,o=n.length,a=r.dtype;if(o===0)return r.copy();let u=e;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=n[u],i=t;if(i<0&&(i=s+i),i<0||i>=s)throw new Error(`kth(=${t}) out of bounds (${s})`);let c=r.copy(),l=c.data,m=Array.from(n).filter((d,f)=>f!==u),y=m.length===0?1:m.reduce((d,f)=>d*f,1);if(B(a)){let d=l;for(let f=0;f<y;f++){let p=[];for(let g=0;g<s;g++){let h=$(f,u,g,n),b=U(h,n);p.push(d[b])}Lc(p,i);for(let g=0;g<s;g++){let h=$(f,u,g,n),b=U(h,n);d[b]=p[g]}}}else for(let d=0;d<y;d++){let f=[];for(let p=0;p<s;p++){let g=$(d,u,p,n),h=U(g,n);f.push(Number(l[h]))}jc(f,i);for(let p=0;p<s;p++){let g=$(d,u,p,n),h=U(g,n);l[h]=f[p]}}return c}function Le(r,t,e=-1){let n=r.shape,o=n.length,a=r.dtype,u=r.data;if(o===0)return D.zeros([0],"int32");let s=e;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=n[s],c=t;if(c<0&&(c=i+c),c<0||c>=i)throw new Error(`kth(=${t}) out of bounds (${i})`);let l=D.zeros(Array.from(n),"int32"),m=l.data,y=Array.from(n).filter((f,p)=>p!==s),d=y.length===0?1:y.reduce((f,p)=>f*p,1);if(B(a)){let f=u;for(let p=0;p<d;p++){let g=[];for(let h=0;h<i;h++){let b=$(p,s,h,n),A=U(b,n);g.push({value:f[A],idx:h})}Gc(g,c);for(let h=0;h<i;h++){let b=$(p,s,h,n),A=U(b,n);m[A]=g[h].idx}}}else for(let f=0;f<d;f++){let p=[];for(let g=0;g<i;g++){let h=$(f,s,g,n),b=U(h,n);p.push({value:Number(u[b]),idx:g})}Wc(p,c);for(let g=0;g<i;g++){let h=$(f,s,g,n),b=U(h,n);m[b]=p[g].idx}}return l}function Zs(r){let t=r.dtype,e=r.size,n=r.data;if(M(t)){let o=n,a=[];for(let i=0;i<e;i++)a.push({re:o[i*2],im:o[i*2+1]});a.sort((i,c)=>mt(i.re,i.im,c.re,c.im));let u=D.zeros([e],"complex128"),s=u.data;for(let i=0;i<e;i++)s[i*2]=a[i].re,s[i*2+1]=a[i].im;return u}else{let o=[];for(let s=0;s<e;s++)o.push(Number(n[s]));o.sort((s,i)=>isNaN(s)&&isNaN(i)?0:isNaN(s)?1:isNaN(i)?-1:s-i);let a=D.zeros([e],"complex128"),u=a.data;for(let s=0;s<e;s++)u[s*2]=o[s],u[s*2+1]=0;return a}}function qt(r){let t=r.shape,e=t.length,n=r.data,o=r.size,a=M(r.dtype),u=[];for(let m=0;m<e;m++)u.push([]);let s=[],i=1;for(let m=e-1;m>=0;m--)s.unshift(i),i*=t[m];for(let m=0;m<o;m++)if(Nr(n,m,a)){let y=m;for(let d=0;d<e;d++){let f=Math.floor(y/s[d]);y=y%s[d],u[d].push(f)}}let c=u[0]?.length??0,l=[];for(let m=0;m<e;m++){let y=D.zeros([c],"int32"),d=y.data;for(let f=0;f<c;f++)d[f]=u[m][f];l.push(y)}return l}function We(r){let t=r.shape,e=t.length,n=r.data,o=r.size,a=M(r.dtype),u=[],s=[],i=1;for(let d=e-1;d>=0;d--)s.unshift(i),i*=t[d];for(let d=0;d<o;d++)if(Nr(n,d,a)){let f=[],p=d;for(let g=0;g<e;g++){let h=Math.floor(p/s[g]);p=p%s[g],f.push(h)}u.push(f)}let c=u.length,l=e===0?[c,1]:[c,e],m=D.zeros(l,"int32"),y=m.data;for(let d=0;d<c;d++){let f=u[d];for(let p=0;p<(e===0?1:e);p++)y[d*(e===0?1:e)+p]=f[p]??0}return m}function Ys(r){let t=r.data,e=r.size,n=M(r.dtype),o=[];for(let s=0;s<e;s++)Nr(t,s,n)&&o.push(s);let a=D.zeros([o.length],"int32"),u=a.data;for(let s=0;s<o.length;s++)u[s]=o[s];return a}function Hs(r,t,e){if(t===void 0&&e===void 0)return qt(r);if(t===void 0||e===void 0)throw new Error("either both or neither of x and y should be given");let n=r.shape,o=t.shape,a=e.shape,u=Math.max(n.length,o.length,a.length),s=_=>{let T=Array(u).fill(1);for(let E=0;E<_.length;E++)T[u-_.length+E]=_[E];return T},i=s(n),c=s(o),l=s(a),m=[];for(let _=0;_<u;_++){let T=[i[_],c[_],l[_]],E=Math.max(...T);for(let C of T)if(C!==1&&C!==E)throw new Error("operands could not be broadcast together");m.push(E)}let y=t.dtype,d=D.zeros(m,y),f=d.data,p=r.data,g=t.data,h=e.data,b=(_,T)=>{let E=[],C=1;for(let k=_.length-1;k>=0;k--)E.unshift(C),C*=_[k];for(;E.length<T.length;)E.unshift(0);for(let k=0;k<T.length;k++)T[k]===1&&m[k]!==1&&(E[k]=0);return E},A=b(n,i),S=b(o,c),x=b(a,l),w=[],N=1;for(let _=m.length-1;_>=0;_--)w.unshift(N),N*=m[_];let I=m.reduce((_,T)=>_*T,1),z=M(r.dtype),F=M(y);for(let _=0;_<I;_++){let T=_,E=0,C=0,k=0;for(let V=0;V<u;V++){let R=Math.floor(T/w[V]);T=T%w[V],E+=R*A[V],C+=R*S[V],k+=R*x[V]}Nr(p,E,z)?F?(f[_*2]=g[C*2],f[_*2+1]=g[C*2+1]):f[_]=g[C]:F?(f[_*2]=h[k*2],f[_*2+1]=h[k*2+1]):f[_]=h[k]}return d}function Ge(r,t,e="left"){if(r.ndim!==1)throw new Error("storage must be 1D");let n=r.data,o=r.size,a=t.data,u=t.size,s=M(r.dtype),i=D.zeros([u],"int32"),c=i.data;if(s){let l=n,m=a;for(let y=0;y<u;y++){let d=m[y*2],f=m[y*2+1],p=0,g=o;if(e==="left")for(;p<g;){let h=Math.floor((p+g)/2),b=l[h*2],A=l[h*2+1];mt(b,A,d,f)<0?p=h+1:g=h}else for(;p<g;){let h=Math.floor((p+g)/2),b=l[h*2],A=l[h*2+1];mt(b,A,d,f)<=0?p=h+1:g=h}c[y]=p}}else for(let l=0;l<u;l++){let m=Number(a[l]),y=0,d=o;if(e==="left")for(;y<d;){let f=Math.floor((y+d)/2);Number(n[f])<m?y=f+1:d=f}else for(;y<d;){let f=Math.floor((y+d)/2);Number(n[f])<=m?y=f+1:d=f}c[l]=y}return i}function Js(r,t){let e=r.data,n=t.data,o=t.dtype,a=M(r.dtype),u=M(o),s=Math.min(r.size,t.size),i=0;for(let y=0;y<s;y++)Nr(e,y,a)&&i++;let c=D.zeros([i],o),l=c.data,m=0;if(B(o)){let y=n,d=l;for(let f=0;f<s;f++)Nr(e,f,a)&&(d[m++]=y[f])}else if(u){let y=n,d=l;for(let f=0;f<s;f++)Nr(e,f,a)&&(d[m*2]=y[f*2],d[m*2+1]=y[f*2+1],m++)}else for(let y=0;y<s;y++)Nr(e,y,a)&&(l[m++]=n[y]);return c}function Ze(r,t){let e=r.shape,n=e.length,o=r.data,a=r.size,u=M(r.dtype);if(t===void 0){let d=0;for(let f=0;f<a;f++)Nr(o,f,u)&&d++;return d}let s=t;if(s<0&&(s=n+s),s<0||s>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=Array.from(e).filter((d,f)=>f!==s);if(i.length===0)return Ze(r);let c=D.zeros(i,"int32"),l=c.data,m=e[s],y=i.reduce((d,f)=>d*f,1);for(let d=0;d<y;d++){let f=0;for(let p=0;p<m;p++){let g=$(d,s,p,e),h=U(g,e);Nr(o,h,u)&&f++}l[d]=f}return c}var Xs=W(()=>{"use strict";X();J();le()});function Qs(r){if(!isFinite(r))return r;let t=Math.floor(r),e=r-t;return Math.abs(e-.5)<1e-10?t%2===0?t:t+1:Math.round(r)}function Ye(r,t=0){q(r.dtype,"around","Rounding is not defined for complex numbers.");let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=e==="float32"?"float32":"float64",s=D.zeros(n,u),i=s.data,c=Math.pow(10,t);for(let l=0;l<a;l++){let m=Number(o[l]);i[l]=Qs(m*c)/c}return s}function He(r){q(r.dtype,"ceil","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",u=D.zeros(e,a),s=u.data;for(let i=0;i<o;i++)s[i]=Math.ceil(Number(n[i]));return u}function Je(r){q(r.dtype,"fix","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",u=D.zeros(e,a),s=u.data;for(let i=0;i<o;i++)s[i]=Math.trunc(Number(n[i]));return u}function Xe(r){q(r.dtype,"floor","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",u=D.zeros(e,a),s=u.data;for(let i=0;i<o;i++)s[i]=Math.floor(Number(n[i]));return u}function Qe(r){q(r.dtype,"rint","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",u=D.zeros(e,a),s=u.data;for(let i=0;i<o;i++)s[i]=Qs(Number(n[i]));return u}function Ke(r){q(r.dtype,"trunc","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",u=D.zeros(e,a),s=u.data;for(let i=0;i<o;i++)s[i]=Math.trunc(Number(n[i]));return u}var Ks=W(()=>{"use strict";X();J()});function rn(r,t,e,n){let o=isNaN(r)||isNaN(t),a=isNaN(e)||isNaN(n);return o&&a?0:o?1:a||r<e?-1:r>e?1:t<n?-1:t>n?1:0}function Hc(r,t,e,n){let o=isNaN(r)||isNaN(t),a=isNaN(e)||isNaN(n);return o&&a?!0:o||a?!1:r===e&&t===n}function _r(r,t=!1,e=!1,n=!1){let o=r.dtype,a=r.size,u=r.data;if(M(o)){let A=u,S=[];for(let R=0;R<a;R++)S.push({re:A[R*2],im:A[R*2+1],index:R});S.sort((R,L)=>rn(R.re,R.im,L.re,L.im));let x=[],w=[],N=new Array(a),I=[],z,F,_=0;for(let R=0;R<S.length;R++){let{re:L,im:P,index:Q}=S[R];z===void 0||!Hc(L,P,z,F)?(z!==void 0&&I.push(_),x.push({re:L,im:P}),w.push(Q),_=1,z=L,F=P):_++}_>0&&I.push(_);let T=new Map,E=-1;for(let R=0;R<x.length;R++){let{re:L,im:P}=x[R];isNaN(L)||isNaN(P)?E=R:T.set(`${L},${P}`,R)}for(let R=0;R<a;R++){let L=A[R*2],P=A[R*2+1];isNaN(L)||isNaN(P)?N[R]=E:N[R]=T.get(`${L},${P}`)}let C=D.zeros([x.length],o),k=C.data;for(let R=0;R<x.length;R++)k[R*2]=x[R].re,k[R*2+1]=x[R].im;if(!t&&!e&&!n)return C;let V={values:C};if(t){let R=D.zeros([w.length],"int32"),L=R.data;for(let P=0;P<w.length;P++)L[P]=w[P];V.indices=R}if(e){let R=D.zeros([N.length],"int32"),L=R.data;for(let P=0;P<N.length;P++)L[P]=N[P];V.inverse=R}if(n){let R=D.zeros([I.length],"int32"),L=R.data;for(let P=0;P<I.length;P++)L[P]=I[P];V.counts=R}return V}let s=[];for(let A=0;A<a;A++)s.push({value:Number(u[A]),index:A});s.sort((A,S)=>isNaN(A.value)&&isNaN(S.value)?0:isNaN(A.value)?1:isNaN(S.value)?-1:A.value-S.value);let i=[],c=[],l=new Array(a),m=[],y,d=0;for(let A=0;A<s.length;A++){let{value:S,index:x}=s[A];y===void 0||isNaN(S)&&!isNaN(y)||!isNaN(S)&&isNaN(y)||!isNaN(S)&&!isNaN(y)&&S!==y?(y!==void 0&&m.push(d),i.push(S),c.push(x),d=1,y=S):d++}d>0&&m.push(d);let f=new Map,p=-1;for(let A=0;A<i.length;A++){let S=i[A];isNaN(S)?p=A:f.set(S,A)}for(let A=0;A<a;A++){let S=Number(u[A]);isNaN(S)?l[A]=p:l[A]=f.get(S)}let g=D.zeros([i.length],o),h=g.data;for(let A=0;A<i.length;A++)h[A]=i[A];if(!t&&!e&&!n)return g;let b={values:g};if(t){let A=D.zeros([c.length],"int32"),S=A.data;for(let x=0;x<c.length;x++)S[x]=c[x];b.indices=A}if(e){let A=D.zeros([l.length],"int32"),S=A.data;for(let x=0;x<l.length;x++)S[x]=l[x];b.inverse=A}if(n){let A=D.zeros([m.length],"int32"),S=A.data;for(let x=0;x<m.length;x++)S[x]=m[x];b.counts=A}return b}function wr(r,t,e){if(e){let n=Number(r[t*2]),o=Number(r[t*2+1]);return`${n},${o}`}return String(Number(r[t]))}function ri(r,t){return tn(r,t)}function ti(r,t){let e=r.dtype,n=M(e),o=_r(r),a=_r(t),u=new Set;for(let l=0;l<a.size;l++)u.add(wr(a.data,l,n));let s=[];for(let l=0;l<o.size;l++){let m=wr(o.data,l,n);u.has(m)&&s.push(l)}if(n){let l=D.zeros([s.length],e),m=l.data,y=o.data;for(let d=0;d<s.length;d++){let f=s[d];m[d*2]=y[f*2],m[d*2+1]=y[f*2+1]}return l}let i=D.zeros([s.length],e),c=i.data;for(let l=0;l<s.length;l++)c[l]=o.data[s[l]];return i}function tn(r,t){let e=Array.from(r.shape),n=r.size,o=M(r.dtype),a=new Set;for(let i=0;i<t.size;i++)a.add(wr(t.data,i,o));let u=D.zeros(e,"bool"),s=u.data;for(let i=0;i<n;i++){let c=wr(r.data,i,o);s[i]=a.has(c)?1:0}return u}function ei(r,t){let e=r.dtype,n=M(e),o=_r(r),a=new Set;for(let c=0;c<t.size;c++)a.add(wr(t.data,c,n));let u=[];for(let c=0;c<o.size;c++){let l=wr(o.data,c,n);a.has(l)||u.push(c)}if(n){let c=D.zeros([u.length],e),l=c.data,m=o.data;for(let y=0;y<u.length;y++){let d=u[y];l[y*2]=m[d*2],l[y*2+1]=m[d*2+1]}return c}let s=D.zeros([u.length],e),i=s.data;for(let c=0;c<u.length;c++)i[c]=o.data[u[c]];return s}function ni(r,t){let e=r.dtype,n=M(e),o=_r(r),a=_r(t),u=new Set,s=new Set;for(let d=0;d<o.size;d++)u.add(wr(o.data,d,n));for(let d=0;d<a.size;d++)s.add(wr(a.data,d,n));let i=[],c=[];for(let d=0;d<o.size;d++){let f=wr(o.data,d,n);s.has(f)||i.push(d)}for(let d=0;d<a.size;d++){let f=wr(a.data,d,n);u.has(f)||c.push(d)}if(n){let d=[],f=o.data,p=a.data;for(let b of i)d.push({re:f[b*2],im:f[b*2+1]});for(let b of c)d.push({re:p[b*2],im:p[b*2+1]});d.sort((b,A)=>rn(b.re,b.im,A.re,A.im));let g=D.zeros([d.length],e),h=g.data;for(let b=0;b<d.length;b++)h[b*2]=d[b].re,h[b*2+1]=d[b].im;return g}let l=[];for(let d of i)l.push(Number(o.data[d]));for(let d of c)l.push(Number(a.data[d]));l.sort((d,f)=>isNaN(d)&&isNaN(f)?0:isNaN(d)?1:isNaN(f)?-1:d-f);let m=D.zeros([l.length],e),y=m.data;for(let d=0;d<l.length;d++)y[d]=l[d];return m}function oi(r,t){let e=r.dtype,n=M(e),o=_r(r),a=_r(t),u=new Set,s=[];if(n){let m=o.data,y=a.data;for(let p=0;p<o.size;p++){let g=m[p*2],h=m[p*2+1],b=`${g},${h}`;u.has(b)||(u.add(b),s.push({re:g,im:h}))}for(let p=0;p<a.size;p++){let g=y[p*2],h=y[p*2+1],b=`${g},${h}`;u.has(b)||(u.add(b),s.push({re:g,im:h}))}s.sort((p,g)=>rn(p.re,p.im,g.re,g.im));let d=D.zeros([s.length],e),f=d.data;for(let p=0;p<s.length;p++)f[p*2]=s[p].re,f[p*2+1]=s[p].im;return d}let i=[];for(let m=0;m<o.size;m++){let y=Number(o.data[m]),d=String(y);u.has(d)||(u.add(d),i.push(y))}for(let m=0;m<a.size;m++){let y=Number(a.data[m]),d=String(y);u.has(d)||(u.add(d),i.push(y))}i.sort((m,y)=>isNaN(m)&&isNaN(y)?0:isNaN(m)?1:isNaN(y)?-1:m-y);let c=D.zeros([i.length],e),l=c.data;for(let m=0;m<i.length;m++)l[m]=i[m];return c}var ai=W(()=>{"use strict";X();J()});function en(r,t=1,e=-1){if(t<0)throw new Error(`order must be non-negative but got ${t}`);if(t===0)return r.copy();let n=Array.from(r.shape),o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);if(n[a]<t+1)throw new Error(`diff requires at least ${t+1} elements along axis ${e}, but got ${n[a]}`);let u=r;for(let s=0;s<t;s++)u=Xc(u,a);return u}function Xc(r,t){let e=Array.from(r.shape),n=e.length,o=e[t],a=[...e];a[t]=o-1;let u=r.dtype,s=M(u),i=B(u)?"float64":u,c=D.zeros(a,i),l=c.data,m=r.strides,y=c.size;for(let d=0;d<y;d++){let f=d,p=new Array(n);for(let S=n-1;S>=0;S--)p[S]=f%a[S],f=Math.floor(f/a[S]);let g=[...p],h=[...p];h[t]=g[t]+1;let b=0,A=0;for(let S=0;S<n;S++)b+=g[S]*m[S],A+=h[S]*m[S];if(s){let S=r.data,x=S[b*2],w=S[b*2+1],N=S[A*2],I=S[A*2+1];l[d*2]=N-x,l[d*2+1]=I-w}else{let S=(B(u),Number(r.data[b])),x=(B(u),Number(r.data[A]));l[d]=x-S}}return c}function si(r,t=null,e=null){let n=r.size,o=r.dtype,a=M(o),u=B(o)?"float64":o,s=Math.max(0,n-1),i=e?e.length:0,c=t?t.length:0,l=i+s+c,m=D.zeros([l],u),y=m.data,d=0;if(e)if(a)for(let f of e)y[d*2]=f,y[d*2+1]=0,d++;else for(let f of e)y[d++]=f;if(a){let f=r.data;for(let p=0;p<s;p++){let g=f[p*2],h=f[p*2+1],b=f[(p+1)*2],A=f[(p+1)*2+1];y[d*2]=b-g,y[d*2+1]=A-h,d++}}else for(let f=0;f<s;f++){let p=(B(o),Number(r.iget(f))),g=(B(o),Number(r.iget(f+1)));y[d++]=g-p}if(t)if(a)for(let f of t)y[d*2]=f,y[d*2+1]=0,d++;else for(let f of t)y[d++]=f;return m}function ii(r,t=1,e=null){let o=Array.from(r.shape).length,a;if(e===null)a=Array.from({length:o},(i,c)=>c);else if(typeof e=="number"){let i=e<0?o+e:e;if(i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);a=[i]}else a=e.map(i=>{let c=i<0?o+i:i;if(c<0||c>=o)throw new Error(`axis ${i} is out of bounds for array of dimension ${o}`);return c});let u;if(typeof t=="number")u=a.map(()=>t);else{if(t.length!==a.length)throw new Error("Number of spacings must match number of axes");u=t}let s=[];for(let i=0;i<a.length;i++)s.push(Qc(r,a[i],u[i]));return s.length===1?s[0]:s}function Qc(r,t,e){let n=Array.from(r.shape),o=n.length,a=n[t];if(a<2)throw new Error(`Shape of array along axis ${t} must be at least 2, but got ${a}`);let u=r.dtype,s=M(u),i=B(u)?"float64":u==="float32"?"float32":s?u:"float64",c=D.zeros(n,i),l=c.data,m=r.strides,y=e,d=2*y,f=r.size;for(let p=0;p<f;p++){let g=p,h=new Array(o);for(let A=o-1;A>=0;A--)h[A]=g%n[A],g=Math.floor(g/n[A]);let b=h[t];if(s){let A=r.data,S=l,x,w;if(b===0){let N=[...h];N[t]=1;let I=0;for(let E=0;E<o;E++)I+=N[E]*m[E];let z=A[p*2],F=A[p*2+1],_=A[I*2],T=A[I*2+1];x=(_-z)/y,w=(T-F)/y}else if(b===a-1){let N=[...h];N[t]=a-2;let I=0;for(let E=0;E<o;E++)I+=N[E]*m[E];let z=A[p*2],F=A[p*2+1],_=A[I*2],T=A[I*2+1];x=(z-_)/y,w=(F-T)/y}else{let N=[...h],I=[...h];N[t]=b+1,I[t]=b-1;let z=0,F=0;for(let k=0;k<o;k++)z+=N[k]*m[k],F+=I[k]*m[k];let _=A[z*2],T=A[z*2+1],E=A[F*2],C=A[F*2+1];x=(_-E)/d,w=(T-C)/d}S[p*2]=x,S[p*2+1]=w}else{let A;if(b===0){let S=[...h];S[t]=1;let x=0;for(let I=0;I<o;I++)x+=S[I]*m[I];let w=(B(u),Number(r.data[p]));A=((B(u),Number(r.data[x]))-w)/y}else if(b===a-1){let S=[...h];S[t]=a-2;let x=0;for(let I=0;I<o;I++)x+=S[I]*m[I];let w=(B(u),Number(r.data[p])),N=(B(u),Number(r.data[x]));A=(w-N)/y}else{let S=[...h],x=[...h];S[t]=b+1,x[t]=b-1;let w=0,N=0;for(let F=0;F<o;F++)w+=S[F]*m[F],N+=x[F]*m[F];let I=(B(u),Number(r.data[w])),z=(B(u),Number(r.data[N]));A=(I-z)/d}l[p]=A}}return c}function ui(r,t,e=-1,n=-1,o=-1){let a=Array.from(r.shape),u=Array.from(t.shape),s=a.length,i=u.length,c=e<0?s+e:e,l=n<0?i+n:n;if(c<0||c>=s)throw new Error(`axisa ${e} is out of bounds for array of dimension ${s}`);if(l<0||l>=i)throw new Error(`axisb ${n} is out of bounds for array of dimension ${i}`);let m=a[c],y=u[l];if(m!==2&&m!==3)throw new Error(`incompatible dimensions for cross product (dimension must be 2 or 3, got ${m})`);if(y!==2&&y!==3)throw new Error(`incompatible dimensions for cross product (dimension must be 2 or 3, got ${y})`);let d=Z(r.dtype,t.dtype),f=M(d),p=(b,A)=>{if(M(b.dtype)){let S=b.data;return[S[A*2],S[A*2+1]]}return[Number(b.iget(A)),0]},g=(b,A,S,x)=>[b*S-A*x,b*x+A*S],h=(b,A,S,x)=>[b-S,A-x];if(s===1&&i===1&&m===3&&y===3){let b=D.zeros([3],d);if(f){let A=b.data,[S,x]=p(r,0),[w,N]=p(r,1),[I,z]=p(r,2),[F,_]=p(t,0),[T,E]=p(t,1),[C,k]=p(t,2),[V,R]=g(w,N,C,k),[L,P]=g(I,z,T,E),[Q,er]=h(V,R,L,P),[G,or]=g(I,z,F,_),[ar,sr]=g(S,x,C,k),[mr,Qt]=h(G,or,ar,sr),[Kt,re]=g(S,x,T,E),[te,ee]=g(w,N,F,_),[ne,oe]=h(Kt,re,te,ee);A[0]=Q,A[1]=er,A[2]=mr,A[3]=Qt,A[4]=ne,A[5]=oe}else{let A=b.data,S=Number(r.iget(0)),x=Number(r.iget(1)),w=Number(r.iget(2)),N=Number(t.iget(0)),I=Number(t.iget(1)),z=Number(t.iget(2));A[0]=x*z-w*I,A[1]=w*N-S*z,A[2]=S*I-x*N}return b}if(s===1&&i===1&&m===2&&y===2){let b=D.zeros([],d);if(f){let A=b.data,[S,x]=p(r,0),[w,N]=p(r,1),[I,z]=p(t,0),[F,_]=p(t,1),[T,E]=g(S,x,F,_),[C,k]=g(w,N,I,z),[V,R]=h(T,E,C,k);A[0]=V,A[1]=R}else{let A=Number(r.iget(0)),S=Number(r.iget(1)),x=Number(t.iget(0)),w=Number(t.iget(1));b.data[0]=A*w-S*x}return b}if(s===1&&i===1){if(m===2&&y===3){let b=D.zeros([3],d);if(f){let A=b.data,[S,x]=p(r,0),[w,N]=p(r,1),[I,z]=p(t,0),[F,_]=p(t,1),[T,E]=p(t,2),[C,k]=g(w,N,T,E),[V,R]=g(S,x,T,E),L=-V,P=-R,[Q,er]=g(S,x,F,_),[G,or]=g(w,N,I,z),[ar,sr]=h(Q,er,G,or);A[0]=C,A[1]=k,A[2]=L,A[3]=P,A[4]=ar,A[5]=sr}else{let A=b.data,S=Number(r.iget(0)),x=Number(r.iget(1)),w=Number(t.iget(0)),N=Number(t.iget(1)),I=Number(t.iget(2));A[0]=x*I,A[1]=-S*I,A[2]=S*N-x*w}return b}else if(m===3&&y===2){let b=D.zeros([3],d);if(f){let A=b.data,[S,x]=p(r,0),[w,N]=p(r,1),[I,z]=p(r,2),[F,_]=p(t,0),[T,E]=p(t,1),[C,k]=g(I,z,T,E),V=-C,R=-k,[L,P]=g(I,z,F,_),[Q,er]=g(S,x,T,E),[G,or]=g(w,N,F,_),[ar,sr]=h(Q,er,G,or);A[0]=V,A[1]=R,A[2]=L,A[3]=P,A[4]=ar,A[5]=sr}else{let A=b.data,S=Number(r.iget(0)),x=Number(r.iget(1)),w=Number(r.iget(2)),N=Number(t.iget(0)),I=Number(t.iget(1));A[0]=-w*I,A[1]=w*N,A[2]=S*I-x*N}return b}}if(s===2&&i===2&&c===1&&l===1){let b=a[0];if(u[0]!==b)throw new Error(`Shape mismatch: a has ${b} vectors, b has ${u[0]} vectors`);if(m===3&&y===3){let A=D.zeros([b,3],d);if(f){let S=A.data;for(let x=0;x<b;x++){let[w,N]=p(r,x*3),[I,z]=p(r,x*3+1),[F,_]=p(r,x*3+2),[T,E]=p(t,x*3),[C,k]=p(t,x*3+1),[V,R]=p(t,x*3+2),[L,P]=g(I,z,V,R),[Q,er]=g(F,_,C,k),[G,or]=h(L,P,Q,er),[ar,sr]=g(F,_,T,E),[mr,Qt]=g(w,N,V,R),[Kt,re]=h(ar,sr,mr,Qt),[te,ee]=g(w,N,C,k),[ne,oe]=g(I,z,T,E),[Mu,Bu]=h(te,ee,ne,oe);S[x*3*2]=G,S[x*3*2+1]=or,S[(x*3+1)*2]=Kt,S[(x*3+1)*2+1]=re,S[(x*3+2)*2]=Mu,S[(x*3+2)*2+1]=Bu}}else{let S=A.data;for(let x=0;x<b;x++){let w=Number(r.iget(x*3)),N=Number(r.iget(x*3+1)),I=Number(r.iget(x*3+2)),z=Number(t.iget(x*3)),F=Number(t.iget(x*3+1)),_=Number(t.iget(x*3+2));S[x*3]=N*_-I*F,S[x*3+1]=I*z-w*_,S[x*3+2]=w*F-N*z}}return A}if(m===2&&y===2){let A=D.zeros([b],d);if(f){let S=A.data;for(let x=0;x<b;x++){let[w,N]=p(r,x*2),[I,z]=p(r,x*2+1),[F,_]=p(t,x*2),[T,E]=p(t,x*2+1),[C,k]=g(w,N,T,E),[V,R]=g(I,z,F,_),[L,P]=h(C,k,V,R);S[x*2]=L,S[x*2+1]=P}}else{let S=A.data;for(let x=0;x<b;x++){let w=Number(r.iget(x*2)),N=Number(r.iget(x*2+1)),I=Number(t.iget(x*2)),z=Number(t.iget(x*2+1));S[x]=w*z-N*I}}return A}}throw new Error(`cross product not implemented for arrays with shapes ${JSON.stringify(a)} and ${JSON.stringify(u)}`)}var ci=W(()=>{"use strict";X();J()});function li(r,t,e=0){q(r.dtype,"bincount","bincount requires integer input.");let n=r.data,o=r.size,a=0;for(let s=0;s<o;s++){let i=Number(n[s]);if(i<0||!Number.isInteger(i))throw new Error("'x' argument must contain non-negative integers");i>a&&(a=i)}let u=Math.max(a+1,e);if(t!==void 0){if(t.size!==o)throw new Error("weights array must have same length as x");let s=t.data,i=new Float64Array(u);for(let c=0;c<o;c++){let l=Number(n[c]);i[l]+=Number(s[c])}return D.fromData(i,[u],"float64")}else{let s=new Float64Array(u);for(let i=0;i<o;i++){let c=Number(n[i]);s[c]++}return D.fromData(s,[u],"float64")}}function fi(r,t,e=!1){q(r.dtype,"digitize","digitize requires real numbers."),q(t.dtype,"digitize","digitize requires real numbers.");let n=r.data,o=t.data,a=r.size,u=t.size,s=new Float64Array(a),i=!0;u>1&&(i=Number(o[1])>=Number(o[0]));for(let c=0;c<a;c++){let l=Number(n[c]),m;if(i)e?m=rl(o,u,l):m=pt(o,u,l);else if(e)for(m=0;m<u&&Number(o[m])>=l;)m++;else for(m=0;m<u&&Number(o[m])>l;)m++;s[c]=m}return D.fromData(s,[...r.shape],"float64")}function rl(r,t,e){let n=0,o=t;for(;n<o;){let a=n+o>>>1;Number(r[a])<e?n=a+1:o=a}return n}function pt(r,t,e){let n=0,o=t;for(;n<o;){let a=n+o>>>1;Number(r[a])<=e?n=a+1:o=a}return n}function mi(r,t=10,e,n=!1,o){q(r.dtype,"histogram","histogram requires real numbers."),typeof t!="number"&&q(t.dtype,"histogram","histogram requires real numbers.");let a=r.data,u=r.size,s;if(typeof t=="number"){let m,y;if(e)[m,y]=e;else{m=1/0,y=-1/0;for(let f=0;f<u;f++){let p=Number(a[f]);p<m&&(m=p),p>y&&(y=p)}m===y&&(m=m-.5,y=y+.5)}s=[];let d=(y-m)/t;for(let f=0;f<=t;f++)s.push(m+f*d)}else{let m=t.data;s=[];for(let y=0;y<t.size;y++)s.push(Number(m[y]))}let i=s.length-1,c=new Float64Array(i),l=o?.data;for(let m=0;m<u;m++){let y=Number(a[m]),d=l?Number(l[m]):1,f=pt(s,s.length,y)-1;if(!(f<0)){if(f>=i)if(y===s[i])f=i-1;else continue;c[f]+=d}}if(n){let m=0;for(let y=0;y<i;y++)m+=c[y];for(let y=0;y<i;y++){let d=s[y+1]-s[y];c[y]=c[y]/(m*d)}}return{hist:D.fromData(c,[i],"float64"),bin_edges:D.fromData(new Float64Array(s),[s.length],"float64")}}function pi(r,t,e=10,n,o=!1,a){q(r.dtype,"histogram2d","histogram2d requires real numbers."),q(t.dtype,"histogram2d","histogram2d requires real numbers.");let u=r.data,s=t.data,i=r.size;if(t.size!==i)throw new Error("x and y must have the same length");let c,l,m,y;if(typeof e=="number"?(m=e,y=e):Array.isArray(e)&&e.length===2?(e[0],m=e[0],y=e[1]):(m=10,y=10),typeof m=="number"){let h,b;if(n)[h,b]=n[0];else{h=1/0,b=-1/0;for(let S=0;S<i;S++){let x=Number(u[S]);x<h&&(h=x),x>b&&(b=x)}h===b&&(h-=.5,b+=.5)}c=[];let A=(b-h)/m;for(let S=0;S<=m;S++)c.push(h+S*A)}else{let h=m.data;c=[];for(let b=0;b<m.size;b++)c.push(Number(h[b]))}if(typeof y=="number"){let h,b;if(n)[h,b]=n[1];else{h=1/0,b=-1/0;for(let S=0;S<i;S++){let x=Number(s[S]);x<h&&(h=x),x>b&&(b=x)}h===b&&(h-=.5,b+=.5)}l=[];let A=(b-h)/y;for(let S=0;S<=y;S++)l.push(h+S*A)}else{let h=y.data;l=[];for(let b=0;b<y.size;b++)l.push(Number(h[b]))}let d=c.length-1,f=l.length-1,p=new Float64Array(d*f),g=a?.data;for(let h=0;h<i;h++){let b=Number(u[h]),A=Number(s[h]),S=g?Number(g[h]):1,x=pt(c,c.length,b)-1,w=pt(l,l.length,A)-1;if(x<0||x>=d)if(b===c[d]&&x===d)x=d-1;else continue;if(w<0||w>=f)if(A===l[f]&&w===f)w=f-1;else continue;p[x*f+w]+=S}if(o){let h=0;for(let b=0;b<p.length;b++)h+=p[b];for(let b=0;b<d;b++)for(let A=0;A<f;A++){let S=c[b+1]-c[b],x=l[A+1]-l[A],w=S*x;p[b*f+A]=p[b*f+A]/(h*w)}}return{hist:D.fromData(p,[d,f],"float64"),x_edges:D.fromData(new Float64Array(c),[c.length],"float64"),y_edges:D.fromData(new Float64Array(l),[l.length],"float64")}}function yi(r,t=10,e,n=!1,o){q(r.dtype,"histogramdd","histogramdd requires real numbers.");let a=r.shape,u=r.data,s,i;if(a.length===1)s=a[0],i=1;else if(a.length===2)s=a[0],i=a[1];else throw new Error("sample must be 1D or 2D array");let c;if(typeof t=="number")c=new Array(i).fill(t);else if(c=t,c.length!==i)throw new Error("bins array length must match number of dimensions");let l=[];for(let h=0;h<i;h++){let b,A;if(e&&e[h])[b,A]=e[h];else{b=1/0,A=-1/0;for(let N=0;N<s;N++){let I=Number(i===1?u[N]:u[N*i+h]);I<b&&(b=I),I>A&&(A=I)}b===A&&(b-=.5,A+=.5)}let S=c[h],x=[],w=(A-b)/S;for(let N=0;N<=S;N++)x.push(b+N*w);l.push(x)}let m=c.slice(),y=m.reduce((h,b)=>h*b,1),d=new Float64Array(y),f=new Array(i);f[i-1]=1;for(let h=i-2;h>=0;h--)f[h]=f[h+1]*c[h+1];let p=o?.data;for(let h=0;h<s;h++){let b=p?Number(p[h]):1,A=0,S=!1;for(let x=0;x<i;x++){let w=Number(i===1?u[h]:u[h*i+x]),N=l[x],I=c[x],z=pt(N,N.length,w)-1;if(z<0||z>=I)if(w===N[I]&&z===I)z=I-1;else{S=!0;break}A+=z*f[x]}S||(d[A]+=b)}if(n){let h=0;for(let A=0;A<y;A++)h+=d[A];let b=new Float64Array(y);for(let A=0;A<y;A++){let S=1,x=A;for(let w=0;w<i;w++){let N=Math.floor(x/f[w])%c[w],I=l[w];S*=I[N+1]-I[N]}b[A]=S}for(let A=0;A<y;A++)d[A]=d[A]/(h*b[A])}let g=l.map(h=>D.fromData(new Float64Array(h),[h.length],"float64"));return{hist:D.fromData(d,m,"float64"),edges:g}}function nn(r,t,e="full"){let n=r.data,o=t.data,a=r.size,u=t.size,s=M(r.dtype)||M(t.dtype),i=a+u-1;if(s){let l=new Float64Array(i),m=new Float64Array(i),y=M(r.dtype),d=M(t.dtype);for(let p=0;p<i;p++){let g=0,h=0,b=p-u+1;for(let A=0;A<a;A++){let S=A-b;if(S>=0&&S<u){let x,w,N,I;y?(x=n[A*2],w=n[A*2+1]):(x=Number(n[A]),w=0),d?(N=o[S*2],I=o[S*2+1]):(N=Number(o[S]),I=0),g+=x*N+w*I,h+=w*N-x*I}}l[p]=g,m[p]=h}let f=(p,g,h,b=0)=>{let A=new Float64Array(h*2);for(let S=0;S<h;S++)A[S*2]=p[b+S],A[S*2+1]=g[b+S];return D.fromData(A,[h],"complex128")};if(e==="full")return f(l,m,i);if(e==="same"){let p=Math.floor((i-a)/2);return f(l,m,a,p)}else{let p=Math.max(a,u)-Math.min(a,u)+1,g=Math.min(a,u)-1;return f(l,m,p,g)}}let c=new Float64Array(i);for(let l=0;l<i;l++){let m=0,y=l-u+1;for(let d=0;d<a;d++){let f=d-y;f>=0&&f<u&&(m+=Number(n[d])*Number(o[f]))}c[l]=m}if(e==="full")return D.fromData(c,[i],"float64");if(e==="same"){let l=Math.floor((i-a)/2),m=new Float64Array(a);for(let y=0;y<a;y++)m[y]=c[l+y];return D.fromData(m,[a],"float64")}else{let l=Math.max(a,u)-Math.min(a,u)+1,m=Math.min(a,u)-1,y=new Float64Array(l);for(let d=0;d<l;d++)y[d]=c[m+d];return D.fromData(y,[l],"float64")}}function di(r,t,e="full"){let n=t.data,o=t.size,a=M(t.dtype),u;if(a){let s=new Float64Array(o*2);for(let i=0;i<o;i++){let c=o-1-i;s[i*2]=n[c*2],s[i*2+1]=n[c*2+1]}u=D.fromData(s,[o],t.dtype)}else{let s=new Float64Array(o);for(let i=0;i<o;i++)s[i]=Number(n[o-1-i]);u=D.fromData(s,[o],"float64")}if(a){let s=u.data;for(let i=0;i<o;i++)s[i*2+1]=-s[i*2+1]}return nn(r,u,e)}function on(r,t,e=!0,n=!1,o){let a=r.shape,u=r.data,s=M(r.dtype)||t!==void 0&&M(t.dtype),i;if(o!==void 0?i=o:i=n?0:1,a.length===1)if(t!==void 0){let f=t.data,p=r.size,g=M(r.dtype),h=M(t.dtype);if(t.size!==p)throw new Error("m and y must have same length");if(s){let I=0,z=0,F=0,_=0;for(let G=0;G<p;G++)g?(I+=u[G*2],z+=u[G*2+1]):I+=Number(u[G]),h?(F+=f[G*2],_+=f[G*2+1]):F+=Number(f[G]);I/=p,z/=p,F/=p,_/=p;let T=0,E=0,C=0,k=0,V=0,R=0,L=0,P=0;for(let G=0;G<p;G++){let or,ar,sr,mr;g?(or=u[G*2]-I,ar=u[G*2+1]-z):(or=Number(u[G])-I,ar=0),h?(sr=f[G*2]-F,mr=f[G*2+1]-_):(sr=Number(f[G])-F,mr=0),T+=or*or+ar*ar,C+=sr*sr+mr*mr,V+=or*sr+ar*mr,R+=ar*sr-or*mr,L+=sr*or+mr*ar,P+=mr*or-sr*ar}let Q=p-i;if(Q<=0){let G=new Float64Array(8);return G.fill(NaN),D.fromData(G,[2,2],"complex128")}T/=Q,C/=Q,V/=Q,R/=Q,L/=Q,P/=Q;let er=new Float64Array(8);return er[0]=T,er[1]=E,er[2]=V,er[3]=R,er[4]=L,er[5]=P,er[6]=C,er[7]=k,D.fromData(er,[2,2],"complex128")}let b=0,A=0;for(let I=0;I<p;I++)b+=Number(u[I]),A+=Number(f[I]);b/=p,A/=p;let S=0,x=0,w=0;for(let I=0;I<p;I++){let z=Number(u[I])-b,F=Number(f[I])-A;S+=z*z,x+=F*F,w+=z*F}let N=p-i;return N<=0?D.fromData(new Float64Array([NaN,NaN,NaN,NaN]),[2,2],"float64"):(S/=N,x/=N,w/=N,D.fromData(new Float64Array([S,w,w,x]),[2,2],"float64"))}else{let f=r.size;if(s){let b=0,A=0;for(let w=0;w<f;w++)b+=u[w*2],A+=u[w*2+1];b/=f,A/=f;let S=0;for(let w=0;w<f;w++){let N=u[w*2]-b,I=u[w*2+1]-A;S+=N*N+I*I}let x=f-i;return x<=0?D.fromData(new Float64Array([NaN,0]),[],"complex128"):(S/=x,D.fromData(new Float64Array([S,0]),[],"complex128"))}let p=0;for(let b=0;b<f;b++)p+=Number(u[b]);p/=f;let g=0;for(let b=0;b<f;b++){let A=Number(u[b])-p;g+=A*A}let h=f-i;return h<=0?D.fromData(new Float64Array([NaN]),[],"float64"):(g/=h,D.fromData(new Float64Array([g]),[],"float64"))}let c,l;e?(c=a[0],l=a[1]):(c=a[1],l=a[0]);let m=l-i;if(s){let f=new Float64Array(c),p=new Float64Array(c);for(let h=0;h<c;h++){let b=0,A=0;for(let S=0;S<l;S++){let x=e?h*l+S:S*c+h;b+=u[x*2],A+=u[x*2+1]}f[h]=b/l,p[h]=A/l}let g=new Float64Array(c*c*2);if(m<=0)return g.fill(NaN),D.fromData(g,[c,c],"complex128");for(let h=0;h<c;h++)for(let b=0;b<c;b++){let A=0,S=0;for(let w=0;w<l;w++){let N=e?h*l+w:w*c+h,I=e?b*l+w:w*c+b,z=u[N*2]-f[h],F=u[N*2+1]-p[h],_=u[I*2]-f[b],T=u[I*2+1]-p[b];A+=z*_+F*T,S+=F*_-z*T}let x=(h*c+b)*2;g[x]=A/m,g[x+1]=S/m}return D.fromData(g,[c,c],"complex128")}let y=new Float64Array(c);for(let f=0;f<c;f++){let p=0;for(let g=0;g<l;g++){let h=e?f*l+g:g*c+f;p+=Number(u[h])}y[f]=p/l}let d=new Float64Array(c*c);if(m<=0)return d.fill(NaN),D.fromData(d,[c,c],"float64");for(let f=0;f<c;f++)for(let p=f;p<c;p++){let g=0;for(let b=0;b<l;b++){let A=e?f*l+b:b*c+f,S=e?p*l+b:b*c+p,x=Number(u[A])-y[f],w=Number(u[S])-y[p];g+=x*w}let h=g/m;d[f*c+p]=h,d[p*c+f]=h}return D.fromData(d,[c,c],"float64")}function gi(r,t,e=!0){let n=M(r.dtype)||t!==void 0&&M(t.dtype);if(r.shape.length===1&&t===void 0)return n?D.fromData(new Float64Array([1,0]),[],"complex128"):D.fromData(new Float64Array([1]),[],"float64");let o=on(r,t,e,!1),a=o.data,s=o.shape[0];if(n){let c=new Float64Array(s*s*2);for(let l=0;l<s;l++)for(let m=0;m<s;m++){let y=a[(l*s+m)*2],d=a[(l*s+m)*2+1],f=a[(l*s+l)*2],p=a[(m*s+m)*2],g=(l*s+m)*2;if(f<=0||p<=0)c[g]=NaN,c[g+1]=NaN;else{let h=Math.sqrt(f*p);c[g]=y/h,c[g+1]=d/h}}return D.fromData(c,[s,s],"complex128")}let i=new Float64Array(s*s);for(let c=0;c<s;c++)for(let l=0;l<s;l++){let m=Number(a[c*s+l]),y=Number(a[c*s+c]),d=Number(a[l*s+l]);y<=0||d<=0?i[c*s+l]=NaN:i[c*s+l]=m/Math.sqrt(y*d)}return D.fromData(i,[s,s],"float64")}var Ai=W(()=>{"use strict";X();J()});function Fr(r,t=rr){let e=D.zeros(r,t);return new v(e)}function bi(r,t=rr){let e=D.ones(r,t);return new v(e)}function el(r){let t=[],e=r;for(;Array.isArray(e);)t.push(e.length),e=e[0];return t}function hi(r){return typeof r=="bigint"?!0:Array.isArray(r)?r.some(t=>hi(t)):!1}function Si(r){return Cn(r)?!0:Array.isArray(r)?r.some(t=>Si(t)):!1}function nl(r){let t=[];function e(n){Array.isArray(n)?n.forEach(o=>e(o)):t.push(n)}return e(r),t}function tr(r,t){if(r instanceof v)return!t||r.dtype===t?r.copy():r.astype(t);let e=hi(r),n=Si(r),o=el(r),a=o.reduce((d,f)=>d*f,1),u=t;u||(n?u="complex128":e?u="int64":u=rr);let s=M(u),i=j(u);if(!i)throw new Error(`Cannot create array with dtype ${u}`);let c=s?a*2:a,l=new i(c),m=nl(r);if(B(u)){let d=l;for(let f=0;f<a;f++){let p=m[f];d[f]=typeof p=="bigint"?p:BigInt(Math.round(Number(p)))}}else if(u==="bool"){let d=l;for(let f=0;f<a;f++)d[f]=m[f]?1:0}else if(s){let d=l;for(let f=0;f<a;f++){let p=m[f],g,h;p instanceof O?(g=p.re,h=p.im):typeof p=="object"&&p!==null&&"re"in p?(g=p.re,h=p.im??0):(g=Number(p),h=0),d[f*2]=g,d[f*2+1]=h}}else{let d=l;for(let f=0;f<a;f++){let p=m[f];d[f]=Number(p)}}let y=D.fromData(l,o,u);return new v(y)}function ol(r,t,e=1,n=rr){let o=r,a=t;if(t===void 0&&(o=0,a=r),a===void 0)throw new Error("stop is required");let u=Math.max(0,Math.ceil((a-o)/e)),s=j(n);if(!s)throw new Error(`Cannot create arange array with dtype ${n}`);let i=new s(u);if(B(n))for(let l=0;l<u;l++)i[l]=BigInt(Math.round(o+l*e));else if(n==="bool")for(let l=0;l<u;l++)i[l]=o+l*e!==0?1:0;else for(let l=0;l<u;l++)i[l]=o+l*e;let c=D.fromData(i,[u],n);return new v(c)}function al(r,t,e=50,n=rr){if(e<0)throw new Error("num must be non-negative");if(e===0)return tr([],n);if(e===1)return tr([r],n);let o=j(n);if(!o)throw new Error(`Cannot create linspace array with dtype ${n}`);let a=new o(e),u=(t-r)/(e-1);if(B(n))for(let i=0;i<e;i++)a[i]=BigInt(Math.round(r+i*u));else if(n==="bool")for(let i=0;i<e;i++)a[i]=r+i*u!==0?1:0;else for(let i=0;i<e;i++)a[i]=r+i*u;let s=D.fromData(a,[e],n);return new v(s)}function sl(r,t,e=50,n=10,o=rr){if(e<0)throw new Error("num must be non-negative");if(e===0)return tr([],o);if(e===1)return tr([Math.pow(n,r)],o);let a=j(o);if(!a)throw new Error(`Cannot create logspace array with dtype ${o}`);let u=new a(e),s=(t-r)/(e-1);if(B(o))for(let c=0;c<e;c++){let l=r+c*s;u[c]=BigInt(Math.round(Math.pow(n,l)))}else if(o==="bool")for(let c=0;c<e;c++){let l=r+c*s;u[c]=Math.pow(n,l)!==0?1:0}else for(let c=0;c<e;c++){let l=r+c*s;u[c]=Math.pow(n,l)}let i=D.fromData(u,[e],o);return new v(i)}function il(r,t,e=50,n=rr){if(e<0)throw new Error("num must be non-negative");if(r===0||t===0)throw new Error("Geometric sequence cannot include zero");if(e===0)return tr([],n);if(e===1)return tr([r],n);let o=Math.sign(r),a=Math.sign(t);if(o!==a)throw new Error("Geometric sequence cannot contain both positive and negative values");let u=j(n);if(!u)throw new Error(`Cannot create geomspace array with dtype ${n}`);let s=new u(e),i=Math.log(Math.abs(r)),l=(Math.log(Math.abs(t))-i)/(e-1);if(B(n))for(let y=0;y<e;y++){let d=o*Math.exp(i+y*l);s[y]=BigInt(Math.round(d))}else if(n==="bool")for(let y=0;y<e;y++){let d=o*Math.exp(i+y*l);s[y]=d!==0?1:0}else for(let y=0;y<e;y++){let d=o*Math.exp(i+y*l);s[y]=d}let m=D.fromData(s,[e],n);return new v(m)}function xi(r,t,e=0,n=rr){let o=t??r,a=Fr([r,o],n),u=a.data;if(B(n)){let s=u;for(let i=0;i<r;i++){let c=i+e;c>=0&&c<o&&(s[i*o+c]=BigInt(1))}}else{let s=u;for(let i=0;i<r;i++){let c=i+e;c>=0&&c<o&&(s[i*o+c]=1)}}return a}function Di(r,t=rr){return Fr(r,t)}function Ni(r,t,e){let n=e;n||(typeof t=="bigint"?n="int64":typeof t=="boolean"?n="bool":Number.isInteger(t)?n="int32":n=rr);let o=j(n);if(!o)throw new Error(`Cannot create full array with dtype ${n}`);let a=r.reduce((i,c)=>i*c,1),u=new o(a);if(B(n)){let i=typeof t=="bigint"?t:BigInt(Math.round(Number(t)));u.fill(i)}else n==="bool"?u.fill(t?1:0):u.fill(Number(t));let s=D.fromData(u,r,n);return new v(s)}function ul(r,t=rr){return xi(r,r,0,t)}function Vt(r,t){return r instanceof v?!t||r.dtype===t?r:r.astype(t):tr(r,t)}function cl(r){return r.copy()}function ll(r,t){return Fr(Array.from(r.shape),t??r.dtype)}function fl(r,t){return bi(Array.from(r.shape),t??r.dtype)}function ml(r,t){return Di(Array.from(r.shape),t??r.dtype)}function pl(r,t,e){return Ni(Array.from(r.shape),t,e??r.dtype)}function yl(r,t){return Vt(r,t)}function dl(r,t){let e=Vt(r,t);return e.flags.C_CONTIGUOUS?e:e.copy()}function gl(r,t){return Vt(r,t).copy()}function wi(r,t=0){if(r.ndim===1){let e=r.size,n=e+Math.abs(t),o=Fr([n,n],r.dtype);for(let a=0;a<e;a++){let u=t>=0?a:a-t,s=t>=0?a+t:a;o.set([u,s],r.get([a]))}return o}else if(r.ndim===2){let[e,n]=r.shape,o,a,u;if(t>=0?(o=0,a=t,u=Math.min(e,n-t)):(o=-t,a=0,u=Math.min(e+t,n)),u<=0)return Fr([0],r.dtype);let s=j(r.dtype),i=new s(u);for(let l=0;l<u;l++){let m=r.get([o+l,a+l]);B(r.dtype)?i[l]=typeof m=="bigint"?m:BigInt(m):i[l]=m}let c=D.fromData(i,[u],r.dtype);return new v(c)}else throw new Error("Input must be 1-D or 2-D")}function Al(r,t=0){let e=r.flatten();return wi(e,t)}function bl(r,t,e=rr){let n=t.reduce((c,l)=>c*l,1),o=j(e);if(!o)throw new Error(`Cannot create array with dtype ${e}`);let a=new o(n),u=t.length,s=new Array(u).fill(0);for(let c=0;c<n;c++){let l=r(...s);B(e)?a[c]=typeof l=="bigint"?l:BigInt(Number(l)):e==="bool"?a[c]=l?1:0:a[c]=Number(l);for(let m=u-1;m>=0&&(s[m]++,!(s[m]<t[m]));m--)s[m]=0}let i=D.fromData(a,t,e);return new v(i)}function hl(...r){let t=[],e="xy";for(let s of r)s instanceof v?t.push(s):typeof s=="object"&&"indexing"in s&&(e=s.indexing||"xy");if(t.length===0)return[];if(t.length===1)return[t[0].copy()];let n=t.map(s=>s.size);e==="xy"&&t.length>=2&&(t=[t[1],t[0],...t.slice(2)],[n[0],n[1]]=[n[1],n[0]]);let o=n,a=o.length,u=[];for(let s=0;s<t.length;s++){let i=t[s],c=i.size,l=new Array(a).fill(1);l[s]=c;let m=i.reshape(...l),y=$t(m.storage,o),d=v._fromStorage(y.copy());u.push(d)}return e==="xy"&&u.length>=2&&([u[0],u[1]]=[u[1],u[0]]),u}function Sl(r,t,e=0,n=rr){let o=t??r,a=Fr([r,o],n);for(let u=0;u<r;u++)for(let s=0;s<=u+e&&s<o;s++)s>=0&&a.set([u,s],1);return a}function xl(r,t=0){if(r.ndim<2)throw new Error("Input must have at least 2 dimensions");let e=r.copy(),n=e.shape,o=n[n.length-2],a=n[n.length-1],u=n.slice(0,-2).reduce((s,i)=>s*i,1);for(let s=0;s<u;s++)for(let i=0;i<o;i++)for(let c=0;c<a;c++)if(c>i+t){let l=[],m=s;for(let y=n.length-3;y>=0;y--)l.unshift(m%n[y]),m=Math.floor(m/n[y]);l.push(i,c),e.set(l,0)}return e}function Dl(r,t=0){if(r.ndim<2)throw new Error("Input must have at least 2 dimensions");let e=r.copy(),n=e.shape,o=n[n.length-2],a=n[n.length-1],u=n.slice(0,-2).reduce((s,i)=>s*i,1);for(let s=0;s<u;s++)for(let i=0;i<o;i++)for(let c=0;c<a;c++)if(c<i+t){let l=[],m=s;for(let y=n.length-3;y>=0;y--)l.unshift(m%n[y]),m=Math.floor(m/n[y]);l.push(i,c),e.set(l,0)}return e}function Nl(r,t,e=!1){if(r.ndim!==1)throw new Error("Input must be 1-D");let n=r.size,o=t??n;if(o<0)throw new Error("N must be non-negative");let a=Fr([n,o],r.dtype);for(let u=0;u<n;u++){let s=r.get([u]);for(let i=0;i<o;i++){let c=e?i:o-1-i;a.set([u,i],Math.pow(s,c))}}return a}function wl(r,t=rr,e=-1,n=0){let o,a=n;r instanceof ArrayBuffer?o=r:(o=r.buffer,a+=r.byteOffset);let u=Fl(t),s=o.byteLength-a,i=Math.floor(s/u),c=e<0?i:Math.min(e,i);if(c<=0)return tr([],t);let l=j(t);if(!l)throw new Error(`Unsupported dtype: ${t}`);let m=new l(o,a,c),y=D.fromData(m,[c],t);return new v(y)}function Il(r,t=rr,e=-1){let n=[],o=0;for(let a of r){if(e>=0&&o>=e)break;n.push(a),o++}return tr(n,t)}function zl(r,t=rr,e=-1){let n=[],o=0;for(let a of r){if(e>=0&&o>=e)break;n.push(a),o++}return tr(n,t)}function _l(r,t=rr,e=-1,n=""){let o;n===""?o=r.trim().split(/\s+/):o=r.split(n);let a=[],u=0;for(let s of o){if(e>=0&&u>=e)break;let i=s.trim();i!==""&&(B(t)?a.push(BigInt(i)):a.push(parseFloat(i)),u++)}return tr(a,t)}function Fl(r){switch(r){case"int8":case"uint8":case"bool":return 1;case"int16":case"uint16":return 2;case"int32":case"uint32":case"float32":return 4;case"int64":case"uint64":case"float64":return 8;default:return 8}}function Ml(r){return r.sqrt()}function Ii(r,t){return r.power(t)}function Bl(r){return r.exp()}function vl(r){return r.exp2()}function Tl(r){return r.expm1()}function El(r){return r.log()}function Ol(r){return r.log2()}function Cl(r){return r.log10()}function Ul(r){return r.log1p()}function $l(r,t){return r.logaddexp(t)}function Rl(r,t){return r.logaddexp2(t)}function zi(r){return r.absolute()}function kl(r){return r.negative()}function ql(r){return r.sign()}function Vl(r,t){return r.mod(t)}function _i(r,t){return r.divide(t)}function Pl(r,t){return r.floor_divide(t)}function jl(r){return r.positive()}function Ll(r){return r.reciprocal()}function Wl(r,t){return r.dot(t)}function Gl(r){return r.trace()}function Zl(r,t=0,e=0,n=1){let o=Wo(r.storage,t,e,n);return v._fromStorage(o)}function Yl(r,t){let e=Zo(r.storage,t.storage);return v._fromStorage(e)}function Hl(r,t){return r.transpose(t)}function Jl(r,t){return r.inner(t)}function Xl(r,t){return r.outer(t)}function Ql(r,t,e=2){return r.tensordot(t,e)}function Kl(r){return r.sin()}function rf(r){return r.cos()}function tf(r){return r.tan()}function Fi(r){return r.arcsin()}function Mi(r){return r.arccos()}function Bi(r){return r.arctan()}function vi(r,t){return r.arctan2(t)}function ef(r,t){return r.hypot(t)}function nf(r){return r.degrees()}function of(r){return r.radians()}function af(r){return r.radians()}function sf(r){return r.degrees()}function uf(r){return r.sinh()}function cf(r){return r.cosh()}function lf(r){return r.tanh()}function Ti(r){return r.arcsinh()}function Ei(r){return r.arccosh()}function Oi(r){return r.arctanh()}function ff(r,t,e){return r.swapaxes(t,e)}function mf(r,t,e){return r.moveaxis(t,e)}function Hr(r,t=0){if(r.length===0)throw new Error("need at least one array to concatenate");let e=r.map(o=>o.storage),n=Cr(e,t);return v._fromStorage(n)}function pf(r,t=0){if(r.length===0)throw new Error("need at least one array to stack");let e=r.map(o=>o.storage),n=So(e,t);return v._fromStorage(n)}function Ci(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=xo(t);return v._fromStorage(e)}function yf(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=ze(t);return v._fromStorage(e)}function df(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=Do(t);return v._fromStorage(e)}function gf(r,t,e=0){return No(r.storage,t,e).map(o=>v._fromStorage(o,r.base??r))}function Af(r,t,e=0){return ut(r.storage,t,e).map(o=>v._fromStorage(o,r.base??r))}function bf(r,t){return Io(r.storage,t).map(n=>v._fromStorage(n,r.base??r))}function hf(r,t){return zo(r.storage,t).map(n=>v._fromStorage(n,r.base??r))}function Sf(r,t){let e=_o(r.storage,t);return v._fromStorage(e)}function xf(r,t,e){return r.repeat(t,e)}function Df(r){return r.ravel()}function Nf(r,t){return r.reshape(...t)}function wf(r,t){return r.squeeze(t)}function If(r,t){return r.expand_dims(t)}function an(r,t){let e=Mo(r.storage,t);return v._fromStorage(e)}function zf(r){if(r.ndim<2)throw new Error("Input must be at least 2-D");return an(r,1)}function _f(r){if(r.ndim<2)throw new Error("Input must be at least 2-D");return an(r,0)}function Ff(r,t=1,e=[0,1]){let n=Bo(r.storage,t,e);return v._fromStorage(n)}function Mf(r,t,e){let n=vo(r.storage,t,e);return v._fromStorage(n)}function Bf(r,t,e=0){let n=To(r.storage,t,e);return v._fromStorage(n,r.base??r)}function vf(...r){let t=r.map(o=>o.storage),n=Uo(t).map((o,a)=>o===t[a]?r[a]:v._fromStorage(o));return n.length===1?n[0]:n}function Tf(...r){let t=r.map(o=>o.storage),n=$o(t).map((o,a)=>o===t[a]?r[a]:v._fromStorage(o));return n.length===1?n[0]:n}function Ef(...r){let t=r.map(o=>o.storage),n=Ro(t).map((o,a)=>o===t[a]?r[a]:v._fromStorage(o));return n.length===1?n[0]:n}function Of(r,t){return Eo(r.storage,t).map(n=>v._fromStorage(n,r.base??r))}function Cf(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=Oo(t);return v._fromStorage(e)}function Uf(r){return Ci(r)}function $f(r,t){let e=Co(r.storage,t);return v._fromStorage(e)}function Rf(r,t,e){let n=t instanceof v?t:tr(t,r.dtype);if(e===void 0){let o=r.flatten(),a=n.flatten();return Hr([o,a])}return Hr([r,n],e)}function kf(r,t,e){let n=r.dtype;if(e===void 0){let d=r.flatten(),p=(Array.isArray(t)?t:[t]).map(S=>S<0?d.size+S:S),g=[];for(let S=0;S<d.size;S++)p.includes(S)||g.push(S);let h=j(n),b=new h(g.length);for(let S=0;S<g.length;S++){let x=d.get([g[S]]);B(n)?b[S]=typeof x=="bigint"?x:BigInt(x):b[S]=x}let A=D.fromData(b,[g.length],n);return new v(A)}let o=r.shape,a=o.length,u=e<0?a+e:e;if(u<0||u>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);let s=o[u],i=Array.isArray(t)?t:[t],c=new Set(i.map(d=>d<0?s+d:d)),l=[],m=0;for(let d=0;d<=s;d++)(c.has(d)||d===s)&&(d>m&&l.push([m,d]),m=d+1);if(l.length===0){let d=[...o];return d[u]=0,Fr(d,n)}let y=[];for(let[d,f]of l){let p=o.map(()=>":");p[u]=`${d}:${f}`,y.push(r.slice(...p))}return Hr(y,u)}function qf(r,t,e,n){let o=e instanceof v?e:tr(e,r.dtype);if(n===void 0){let m=r.flatten(),y=o.flatten(),d=t<0?m.size+t:t;if(d<0||d>m.size)throw new Error(`index ${t} is out of bounds for array of size ${m.size}`);let f=d>0?m.slice(`0:${d}`):null,p=d<m.size?m.slice(`${d}:`):null,g=[];return f&&g.push(f),g.push(y),p&&g.push(p),Hr(g)}let a=r.shape,u=a.length,s=n<0?u+n:n;if(s<0||s>=u)throw new Error(`axis ${n} is out of bounds for array of dimension ${u}`);let i=a[s],c=t<0?i+t:t;if(c<0||c>i)throw new Error(`index ${t} is out of bounds for axis ${n} with size ${i}`);let l=[];if(c>0){let m=a.map(()=>":");m[s]=`0:${c}`,l.push(r.slice(...m))}if(l.push(o),c<i){let m=a.map(()=>":");m[s]=`${c}:`,l.push(r.slice(...m))}return Hr(l,s)}function Vf(r,t,e="constant",n=0){let o=r.shape,a=o.length,u=r.dtype,s;if(typeof t=="number"?s=o.map(()=>[t,t]):Array.isArray(t)&&typeof t[0]=="number"?s=o.map(()=>t):s=t,s.length!==a)throw new Error(`pad_width must have ${a} elements`);let i=o.map((p,g)=>p+s[g][0]+s[g][1]),c=i.reduce((p,g)=>p*g,1),l=j(u),m=new l(c),y=B(u);e==="constant"&&(y?m.fill(BigInt(n)):m.fill(n));let d=new Array(a).fill(0);for(let p=0;p<c;p++){let g=!0,h=[];for(let A=0;A<a;A++){let[S]=s[A],x=d[A]-S;if(x<0||x>=o[A]){g=!1;break}h.push(x)}let b;if(g)b=r.get(h);else if(e==="constant"){for(let A=a-1;A>=0&&(d[A]++,!(d[A]<i[A]));A--)d[A]=0;continue}else{let A=[];for(let S=0;S<a;S++){let[x]=s[S],w=d[S]-x,N=o[S];w<0?e==="edge"?w=0:e==="reflect"?(w=-w,w>=N&&(w=N-1)):e==="symmetric"?(w=-w-1,w>=N&&(w=N-1),w<0&&(w=0)):e==="wrap"&&(w=(w%N+N)%N):w>=N&&(e==="edge"?w=N-1:e==="reflect"?(w=2*N-w-2,w<0&&(w=0)):e==="symmetric"?(w=2*N-w-1,w<0&&(w=0)):e==="wrap"&&(w=w%N)),A.push(Math.max(0,Math.min(N-1,w)))}b=r.get(A)}y?m[p]=typeof b=="bigint"?b:BigInt(Number(b)):m[p]=Number(b);for(let A=a-1;A>=0&&(d[A]++,!(d[A]<i[A]));A--)d[A]=0}let f=D.fromData(m,i,u);return new v(f)}function Pf(r,t){let e=$t(r.storage,t);return v._fromStorage(e,r.base??r)}function jf(...r){let t=r.map(n=>n.storage);return Ra(t).map((n,o)=>v._fromStorage(n,r[o].base??r[o]))}function Lf(...r){return se(...r)}function Wf(r,t,e){return r.take(t,e)}function Gf(r,t,e){r.put(t,e)}function Zf(r,t,e=0){return r.iindex(t,e)}function Yf(r,t,e){return r.bindex(t,e)}function Hf(r,t,e){if(e!==void 0)throw new Error("copyto with where parameter is not yet implemented");let n=r.storage,o=r.shape,a=r.size,u=r.dtype;if(typeof t=="number"||typeof t=="bigint"){r.fill(t);return}let s=t.storage,i=t.shape,c=gr([i,o]);if(!c)throw new Error(`could not broadcast input array from shape (${i.join(",")}) into shape (${o.join(",")})`);if(c.length!==o.length||!c.every((m,y)=>m===o[y]))throw new Error(`could not broadcast input array from shape (${i.join(",")}) into shape (${o.join(",")})`);let l=$t(s,o);if(B(u))for(let m=0;m<a;m++){let y=l.iget(m),d=typeof y=="bigint"?y:BigInt(Math.round(Number(y)));n.iset(m,d)}else if(u==="bool")for(let m=0;m<a;m++){let y=l.iget(m);n.iset(m,y?1:0)}else for(let m=0;m<a;m++){let y=l.iget(m);n.iset(m,Number(y))}}function Jf(r,t){let e=t.map(o=>o.storage),n=Va(r.storage,e);return v._fromStorage(n)}function Xf(r,t,e=!1){return Pa(r.storage,t.storage,e)}function Qf(r,t){return po(r.storage,t.storage)}function Ui(r,t){return v._fromStorage(Ae(r.storage,t))}function $i(r,t){return v._fromStorage(be(r.storage,t))}function Ri(r,t,e=!1){return r.max(t,e)}function ki(r,t,e=!1){return r.min(t,e)}function Kf(r,t,e=!1){let n=he(r.storage,t,e);return typeof n=="number"||n instanceof O?n:v._fromStorage(n)}function rm(r,t,e=!1){let n=Se(r.storage,t,e);return typeof n=="number"?n:v._fromStorage(n)}function tm(r,t,e,n=!1){let o=xe(r.storage,t,e,n);return typeof o=="number"?o:v._fromStorage(o)}function em(r,t,e,n=!1){let o=Lr(r.storage,t,e,n);return typeof o=="number"?o:v._fromStorage(o)}function nm(r,t,e,n=!1){let o=e?e.storage:void 0,a=tt(r.storage,t,o,n);return typeof a=="number"||a instanceof O?a:v._fromStorage(a)}function om(r,t,e=!1){let n=vt(r.storage,t,e);return typeof n=="number"||n instanceof O?n:v._fromStorage(n)}function am(r,t,e=!1){let n=Tt(r.storage,t,e);return typeof n=="number"||n instanceof O?n:v._fromStorage(n)}function sm(r,t,e=!1){let n=Et(r.storage,t,e);return typeof n=="number"||n instanceof O?n:v._fromStorage(n)}function im(r,t,e=0,n=!1){let o=jr(r.storage,t,e,n);return typeof o=="number"?o:v._fromStorage(o)}function um(r,t,e=0,n=!1){let o=De(r.storage,t,e,n);return typeof o=="number"?o:v._fromStorage(o)}function cm(r,t,e=!1){let n=et(r.storage,t,e);return typeof n=="number"||n instanceof O?n:v._fromStorage(n)}function lm(r,t,e=!1){let n=nt(r.storage,t,e);return typeof n=="number"||n instanceof O?n:v._fromStorage(n)}function fm(r,t){let e=ot(r.storage,t);return typeof e=="number"?e:v._fromStorage(e)}function mm(r,t){let e=at(r.storage,t);return typeof e=="number"?e:v._fromStorage(e)}function pm(r,t){return v._fromStorage(Ne(r.storage,t))}function ym(r,t){return v._fromStorage(we(r.storage,t))}function dm(r,t,e=!1){let n=Ot(r.storage,t,e);return typeof n=="number"?n:v._fromStorage(n)}function gm(r){return r.cbrt()}function Am(r){return r.fabs()}function bm(r,t){return r.divmod(t)}function hm(r){return r.square()}function Sm(r,t){return r.remainder(t)}function xm(r,t){return r.heaviside(t)}function Dm(r,t){let e=typeof t=="number"?t:t.storage;return v._fromStorage(Xn(r.storage,e))}function Nm(r,t){let e=typeof t=="number"?t:t.storage;return v._fromStorage(Qn(r.storage,e))}function wm(r){let[t,e]=Kn(r.storage);return[v._fromStorage(t),v._fromStorage(e)]}function Im(r,t){let e=typeof t=="number"?t:t.storage;return v._fromStorage(ro(r.storage,e))}function zm(r,t){let e=typeof t=="number"?t:t.storage;return v._fromStorage(to(r.storage,e))}function _m(r,t){let e=typeof t=="number"?t:t.storage;return v._fromStorage(eo(r.storage,e))}function Fm(r){let[t,e]=no(r.storage);return[v._fromStorage(t),v._fromStorage(e)]}function Mm(r,t){return r.bitwise_and(t)}function Bm(r,t){return r.bitwise_or(t)}function vm(r,t){return r.bitwise_xor(t)}function Tm(r){return r.bitwise_not()}function Em(r){return r.invert()}function Om(r,t){return r.left_shift(t)}function Cm(r,t){return r.right_shift(t)}function Um(r,t=-1,e="big"){let n=ms(r.storage,t,e);return v._fromStorage(n)}function $m(r,t=-1,e=-1,n="big"){let o=ps(r.storage,t,e,n);return v._fromStorage(o)}function Rm(r,t){return r.logical_and(t)}function km(r,t){return r.logical_or(t)}function qm(r){return r.logical_not()}function Vm(r,t){return r.logical_xor(t)}function Pm(r){return r.isfinite()}function jm(r){return r.isinf()}function Lm(r){return r.isnan()}function Wm(r){return r.isnat()}function Gm(r,t){return r.copysign(t)}function Zm(r){return r.signbit()}function Ym(r,t){return r.nextafter(t)}function Hm(r){return r.spacing()}function Jm(r){return v._fromStorage(Fs(r.storage))}function Xm(r){return Ms(r.storage)}function Qm(r){return v._fromStorage(Bs(r.storage))}function Km(r){return vs(r.storage)}function rp(r){return v._fromStorage(Vs(r.storage))}function tp(r){return v._fromStorage(Ps(r.storage))}function qi(r){return v._fromStorage(js(r.storage))}function np(r,t=!1){return v._fromStorage(Ls(r.storage,t))}function op(r){return v._fromStorage(Ts(r.storage))}function ap(r){return v._fromStorage(Es(r.storage))}function sp(r){return Os(r.storage)}function ip(r,t=100){return v._fromStorage(Cs(r.storage,t))}function up(r){return Us(r)}function cp(r){return $s(r)}function lp(r,t){return Rs(r,t)}function fp(r,t){return ks(r,t)}function mp(r,...t){let e=t.map(o=>o.storage),n=Go(r,...e);return typeof n=="number"||typeof n=="bigint"||n instanceof O?n:v._fromStorage(n)}function yp(r,t,e){return v._fromStorage(ja(r.storage,t.storage,e))}function dp(r,t,e,n){La(r.storage,t.storage,e.storage,n)}function gp(r,t,e){let n=e instanceof v?e.storage:e;Wa(r.storage,t.storage,n)}function Ap(r,t,e){return v._fromStorage(Ue(r.storage,t.storage,e))}function bp(r,t,e=0){let n=r.map(a=>a.storage),o=t.map(a=>a.storage);return v._fromStorage(Ga(n,o,e))}function hp(r,t,e){Za(r.storage,t.storage,e.storage)}function Sp(r,t,e=!1){let n=typeof t=="number"?t:t.storage;es(r.storage,n,e)}function xp(r,t=2){return $e(r,t).map(n=>v._fromStorage(n))}function Dp(r){return Ya(r.storage).map(e=>v._fromStorage(e))}function Np(r,t=0,e){return Re(r,t,e).map(o=>v._fromStorage(o))}function wp(r,t=0){return Ha(r.storage,t).map(n=>v._fromStorage(n))}function Ip(r,t=0,e){return ke(r,t,e).map(o=>v._fromStorage(o))}function zp(r,t=0){return Ja(r.storage,t).map(n=>v._fromStorage(n))}function _p(r,t,e=0){return Xa(r,(a,u)=>t(a,u).storage,e).map(a=>v._fromStorage(a))}function Fp(r,t="int32"){return v._fromStorage(Qa(r,t))}function Mp(...r){return Ka(...r.map(e=>e.storage)).map(e=>v._fromStorage(e))}function Bp(r,t,e="raise"){let n=r.map(o=>o.storage);return v._fromStorage(rs(n,t,e))}function vp(r,t,e="C"){let n=r instanceof v?r.storage:r;return ts(n,t,e).map(a=>v._fromStorage(a))}function Tp(r,t=-1){return v._fromStorage(Ve(r.storage,t))}function Ep(r,t=-1){return v._fromStorage(Pe(r.storage,t))}function Op(r){let t=r.map(e=>e.storage);return v._fromStorage(Gs(t))}function Cp(r,t,e=-1){return v._fromStorage(je(r.storage,t,e))}function Up(r,t,e=-1){return v._fromStorage(Le(r.storage,t,e))}function $p(r){return v._fromStorage(Zs(r.storage))}function Rp(r){return qt(r.storage).map(e=>v._fromStorage(e))}function kp(r){return v._fromStorage(We(r.storage))}function qp(r){return v._fromStorage(Ys(r.storage))}function Vp(r,t,e){let n=Hs(r.storage,t?.storage,e?.storage);return Array.isArray(n)?n.map(o=>v._fromStorage(o)):v._fromStorage(n)}function Pp(r,t,e="left"){return v._fromStorage(Ge(r.storage,t.storage,e))}function jp(r,t){return v._fromStorage(Js(r.storage,t.storage))}function Lp(r,t){let e=Ze(r.storage,t);return typeof e=="number"?e:v._fromStorage(e)}function sn(r,t=0){return v._fromStorage(Ye(r.storage,t))}function Wp(r){return v._fromStorage(He(r.storage))}function Gp(r){return v._fromStorage(Je(r.storage))}function Zp(r){return v._fromStorage(Xe(r.storage))}function Yp(r){return v._fromStorage(Qe(r.storage))}function Hp(r){return v._fromStorage(Ke(r.storage))}function Jp(r,t=!1,e=!1,n=!1){let o=_r(r.storage,t,e,n);if(o instanceof D)return v._fromStorage(o);let a={values:v._fromStorage(o.values)};return o.indices&&(a.indices=v._fromStorage(o.indices)),o.inverse&&(a.inverse=v._fromStorage(o.inverse)),o.counts&&(a.counts=v._fromStorage(o.counts)),a}function Xp(r,t){return v._fromStorage(ri(r.storage,t.storage))}function Qp(r,t){return v._fromStorage(ti(r.storage,t.storage))}function Kp(r,t){return v._fromStorage(tn(r.storage,t.storage))}function ry(r,t){return v._fromStorage(ei(r.storage,t.storage))}function ty(r,t){return v._fromStorage(ni(r.storage,t.storage))}function ey(r,t){return v._fromStorage(oi(r.storage,t.storage))}function ny(r,t=1,e=-1){return v._fromStorage(en(r.storage,t,e))}function oy(r,t=null,e=null){return v._fromStorage(si(r.storage,t,e))}function ay(r,t=1,e=null){let n=ii(r.storage,t,e);return Array.isArray(n)?n.map(o=>v._fromStorage(o)):v._fromStorage(n)}function sy(r,t,e=-1,n=-1,o=-1){return v._fromStorage(ui(r.storage,t.storage,e,n,o))}function iy(r,t,e=0){return v._fromStorage(li(r.storage,t?.storage,e))}function uy(r,t,e=!1){return v._fromStorage(fi(r.storage,t.storage,e))}function cy(r,t=10,e,n=!1,o){let a=mi(r.storage,typeof t=="number"?t:t.storage,e,n,o?.storage);return[v._fromStorage(a.hist),v._fromStorage(a.bin_edges)]}function ly(r,t,e=10,n,o=!1,a){let u;typeof e=="number"?u=e:Array.isArray(e)&&e.length===2?typeof e[0]=="number"?u=e:u=[e[0].storage,e[1].storage]:u=10;let s=pi(r.storage,t.storage,u,n,o,a?.storage);return[v._fromStorage(s.hist),v._fromStorage(s.x_edges),v._fromStorage(s.y_edges)]}function fy(r,t=10,e,n=!1,o){let a=yi(r.storage,t,e,n,o?.storage);return[v._fromStorage(a.hist),a.edges.map(u=>v._fromStorage(u))]}function my(r,t,e="full"){return v._fromStorage(nn(r.storage,t.storage,e))}function py(r,t,e="full"){return v._fromStorage(di(r.storage,t.storage,e))}function yy(r,t,e=!0,n=!1,o){return v._fromStorage(on(r.storage,t?.storage,e,n,o))}function dy(r,t,e=!0){return v._fromStorage(gi(r.storage,t?.storage,e))}var v,ep,pp,yt=W(()=>{"use strict";Tn();J();xr();X();_t();oo();yo();Ao();_e();ia();ha();Ba();$a();ns();ys();qs();Ws();Xs();Ks();ai();ci();Ai();v=class r{constructor(t,e){this._storage=t,this._base=e}get storage(){return this._storage}static _fromStorage(t,e){return new r(t,e)}get shape(){return this._storage.shape}get ndim(){return this._storage.ndim}get size(){return this._storage.size}get dtype(){return this._storage.dtype}get data(){return this._storage.data}get strides(){return this._storage.strides}get flags(){return{C_CONTIGUOUS:this._storage.isCContiguous,F_CONTIGUOUS:this._storage.isFContiguous,OWNDATA:this._base===void 0}}get base(){return this._base??null}get T(){return this.transpose()}get itemsize(){return zt(this._storage.dtype)}get nbytes(){return this.size*this.itemsize}fill(t){let e=this._storage.dtype,n=this.size;if(B(e)){let o=typeof t=="bigint"?t:BigInt(Math.round(Number(t)));for(let a=0;a<n;a++)this._storage.iset(a,o)}else if(e==="bool"){let o=t?1:0;for(let a=0;a<n;a++)this._storage.iset(a,o)}else{let o=Number(t);for(let a=0;a<n;a++)this._storage.iset(a,o)}}*[Symbol.iterator](){if(this.ndim===0)yield this._storage.iget(0);else if(this.ndim===1)for(let t=0;t<this.shape[0];t++)yield this._storage.iget(t);else for(let t=0;t<this.shape[0];t++)yield this.slice(String(t))}get(t){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let e=t.map((n,o)=>{let a=n;if(a<0&&(a=this.shape[o]+a),a<0||a>=this.shape[o])throw new Error(`Index ${n} is out of bounds for axis ${o} with size ${this.shape[o]}`);return a});return this._storage.get(...e)}set(t,e){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let n=t.map((a,u)=>{let s=a;if(s<0&&(s=this.shape[u]+s),s<0||s>=this.shape[u])throw new Error(`Index ${a} is out of bounds for axis ${u} with size ${this.shape[u]}`);return s}),o=this.dtype;if(M(o))this._storage.set(n,e);else if(B(o)){let a=e instanceof O?e.re:Number(e),u=typeof e=="bigint"?e:BigInt(Math.round(a));this._storage.set(n,u)}else if(o==="bool"){let u=(e instanceof O?e.re:Number(e))?1:0;this._storage.set(n,u)}else{let a=e instanceof O?e.re:Number(e);this._storage.set(n,a)}}copy(){return new r(this._storage.copy())}astype(t,e=!0){let n=this.dtype;if(n===t&&!e)return this;if(n===t&&e)return this.copy();let o=Array.from(this.shape),a=this.size,u=j(t);if(!u)throw new Error(`Cannot convert to dtype ${t}`);let s=new u(a),i=this.data;if(B(n)&&!B(t)){let l=i;if(t==="bool")for(let m=0;m<a;m++)s[m]=l[m]!==BigInt(0)?1:0;else for(let m=0;m<a;m++)s[m]=Number(l[m])}else if(!B(n)&&B(t)){let l=i;for(let m=0;m<a;m++)s[m]=BigInt(Math.round(Number(l[m])))}else if(t==="bool"){let l=i;for(let m=0;m<a;m++)s[m]=l[m]!==0?1:0}else if(n==="bool"&&!B(t)){let l=i;for(let m=0;m<a;m++)s[m]=l[m]}else if(!B(n)&&!B(t)){let l=i;for(let m=0;m<a;m++)s[m]=l[m]}else{let l=i;for(let m=0;m<a;m++)s[m]=l[m]}let c=D.fromData(s,o,t);return new r(c)}add(t){let e=typeof t=="number"?t:t._storage,n=Un(this._storage,e);return r._fromStorage(n)}subtract(t){let e=typeof t=="number"?t:t._storage,n=$n(this._storage,e);return r._fromStorage(n)}multiply(t){let e=typeof t=="number"?t:t._storage,n=Rn(this._storage,e);return r._fromStorage(n)}divide(t){let e=typeof t=="number"?t:t._storage,n=kn(this._storage,e);return r._fromStorage(n)}mod(t){let e=typeof t=="number"?t:t._storage,n=Mt(this._storage,e);return r._fromStorage(n)}floor_divide(t){let e=typeof t=="number"?t:t._storage,n=ue(this._storage,e);return r._fromStorage(n)}positive(){let t=jn(this._storage);return r._fromStorage(t)}reciprocal(){let t=Ln(this._storage);return r._fromStorage(t)}sqrt(){let t=ua(this._storage);return r._fromStorage(t)}power(t){let e=typeof t=="number"?t:t._storage,n=ca(this._storage,e);return r._fromStorage(n)}exp(){let t=la(this._storage);return r._fromStorage(t)}exp2(){let t=fa(this._storage);return r._fromStorage(t)}expm1(){let t=ma(this._storage);return r._fromStorage(t)}log(){let t=pa(this._storage);return r._fromStorage(t)}log2(){let t=ya(this._storage);return r._fromStorage(t)}log10(){let t=da(this._storage);return r._fromStorage(t)}log1p(){let t=ga(this._storage);return r._fromStorage(t)}logaddexp(t){let e=typeof t=="number"?t:t._storage,n=Aa(this._storage,e);return r._fromStorage(n)}logaddexp2(t){let e=typeof t=="number"?t:t._storage,n=ba(this._storage,e);return r._fromStorage(n)}absolute(){let t=qn(this._storage);return r._fromStorage(t)}negative(){let t=Vn(this._storage);return r._fromStorage(t)}sign(){let t=Pn(this._storage);return r._fromStorage(t)}around(t=0){let e=Ye(this._storage,t);return r._fromStorage(e)}round(t=0){return this.around(t)}ceil(){let t=He(this._storage);return r._fromStorage(t)}fix(){let t=Je(this._storage);return r._fromStorage(t)}floor(){let t=Xe(this._storage);return r._fromStorage(t)}rint(){let t=Qe(this._storage);return r._fromStorage(t)}trunc(){let t=Ke(this._storage);return r._fromStorage(t)}sin(){let t=Sa(this._storage);return r._fromStorage(t)}cos(){let t=xa(this._storage);return r._fromStorage(t)}tan(){let t=Da(this._storage);return r._fromStorage(t)}arcsin(){let t=Na(this._storage);return r._fromStorage(t)}arccos(){let t=wa(this._storage);return r._fromStorage(t)}arctan(){let t=Ia(this._storage);return r._fromStorage(t)}arctan2(t){let e=typeof t=="number"?t:t._storage,n=za(this._storage,e);return r._fromStorage(n)}hypot(t){let e=typeof t=="number"?t:t._storage,n=_a(this._storage,e);return r._fromStorage(n)}degrees(){let t=Fa(this._storage);return r._fromStorage(t)}radians(){let t=Ma(this._storage);return r._fromStorage(t)}sinh(){let t=va(this._storage);return r._fromStorage(t)}cosh(){let t=Ta(this._storage);return r._fromStorage(t)}tanh(){let t=Ea(this._storage);return r._fromStorage(t)}arcsinh(){let t=Oa(this._storage);return r._fromStorage(t)}arccosh(){let t=Ca(this._storage);return r._fromStorage(t)}arctanh(){let t=Ua(this._storage);return r._fromStorage(t)}greater(t){let e=typeof t=="number"?t:t._storage,n=so(this._storage,e);return r._fromStorage(n)}greater_equal(t){let e=typeof t=="number"?t:t._storage,n=io(this._storage,e);return r._fromStorage(n)}less(t){let e=typeof t=="number"?t:t._storage,n=uo(this._storage,e);return r._fromStorage(n)}less_equal(t){let e=typeof t=="number"?t:t._storage,n=co(this._storage,e);return r._fromStorage(n)}equal(t){let e=typeof t=="number"?t:t._storage,n=lo(this._storage,e);return r._fromStorage(n)}not_equal(t){let e=typeof t=="number"?t:t._storage,n=fo(this._storage,e);return r._fromStorage(n)}isclose(t,e=1e-5,n=1e-8){let o=typeof t=="number"?t:t._storage,a=ce(this._storage,o,e,n);return r._fromStorage(a)}allclose(t,e=1e-5,n=1e-8){let o=typeof t=="number"?t:t._storage;return mo(this._storage,o,e,n)}bitwise_and(t){let e=typeof t=="number"?t:t._storage,n=ss(this._storage,e);return r._fromStorage(n)}bitwise_or(t){let e=typeof t=="number"?t:t._storage,n=is(this._storage,e);return r._fromStorage(n)}bitwise_xor(t){let e=typeof t=="number"?t:t._storage,n=us(this._storage,e);return r._fromStorage(n)}bitwise_not(){let t=qe(this._storage);return r._fromStorage(t)}invert(){let t=cs(this._storage);return r._fromStorage(t)}left_shift(t){let e=typeof t=="number"?t:t._storage,n=ls(this._storage,e);return r._fromStorage(n)}right_shift(t){let e=typeof t=="number"?t:t._storage,n=fs(this._storage,e);return r._fromStorage(n)}logical_and(t){let e=typeof t=="number"?t:t._storage,n=gs(this._storage,e);return r._fromStorage(n)}logical_or(t){let e=typeof t=="number"?t:t._storage,n=As(this._storage,e);return r._fromStorage(n)}logical_not(){let t=bs(this._storage);return r._fromStorage(t)}logical_xor(t){let e=typeof t=="number"?t:t._storage,n=hs(this._storage,e);return r._fromStorage(n)}isfinite(){let t=Ss(this._storage);return r._fromStorage(t)}isinf(){let t=xs(this._storage);return r._fromStorage(t)}isnan(){let t=Ds(this._storage);return r._fromStorage(t)}isnat(){let t=Ns(this._storage);return r._fromStorage(t)}copysign(t){let e=typeof t=="number"?t:t._storage,n=ws(this._storage,e);return r._fromStorage(n)}signbit(){let t=Is(this._storage);return r._fromStorage(t)}nextafter(t){let e=typeof t=="number"?t:t._storage,n=zs(this._storage,e);return r._fromStorage(n)}spacing(){let t=_s(this._storage);return r._fromStorage(t)}sum(t,e=!1){let n=rt(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}mean(t,e=!1){let n=Bt(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}max(t,e=!1){let n=Vr(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}min(t,e=!1){let n=Pr(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}prod(t,e=!1){let n=fe(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}argmin(t){let e=me(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}argmax(t){let e=pe(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}var(t,e=0,n=!1){let o=ye(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}std(t,e=0,n=!1){let o=go(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}all(t,e=!1){let n=de(this._storage,t,e);return typeof n=="boolean"?n:r._fromStorage(n)}any(t,e=!1){let n=ge(this._storage,t,e);return typeof n=="boolean"?n:r._fromStorage(n)}cumsum(t){return r._fromStorage(Ae(this._storage,t))}cumprod(t){return r._fromStorage(be(this._storage,t))}ptp(t,e=!1){let n=he(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}median(t,e=!1){let n=Se(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}percentile(t,e,n=!1){let o=xe(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}quantile(t,e,n=!1){let o=Lr(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}average(t,e){let n=tt(this._storage,e,t?.storage);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}nansum(t,e=!1){let n=vt(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}nanprod(t,e=!1){let n=Tt(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}nanmean(t,e=!1){let n=Et(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}nanvar(t,e=0,n=!1){let o=jr(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}nanstd(t,e=0,n=!1){let o=De(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}nanmin(t,e=!1){let n=et(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}nanmax(t,e=!1){let n=nt(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}nanargmin(t){let e=ot(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}nanargmax(t){let e=at(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}nancumsum(t){return r._fromStorage(Ne(this._storage,t))}nancumprod(t){return r._fromStorage(we(this._storage,t))}nanmedian(t,e=!1){let n=Ot(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}sort(t=-1){return r._fromStorage(Ve(this._storage,t))}argsort(t=-1){return r._fromStorage(Pe(this._storage,t))}partition(t,e=-1){return r._fromStorage(je(this._storage,t,e))}argpartition(t,e=-1){return r._fromStorage(Le(this._storage,t,e))}nonzero(){return qt(this._storage).map(e=>r._fromStorage(e))}argwhere(){return r._fromStorage(We(this._storage))}searchsorted(t,e="left"){return r._fromStorage(Ge(this._storage,t._storage,e))}diff(t=1,e=-1){return r._fromStorage(en(this._storage,t,e))}reshape(...t){let e=t.length===1&&Array.isArray(t[0])?t[0]:t,n=ir(this._storage,e),a=n.data===this.data?this._base??this:void 0;return r._fromStorage(n,a)}flatten(){let t=Ct(this._storage);return r._fromStorage(t)}ravel(){let t=Wr(this._storage),n=t.data===this.data?this._base??this:void 0;return r._fromStorage(t,n)}transpose(t){let e=it(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}squeeze(t){let e=bo(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}expand_dims(t){let e=st(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}swapaxes(t,e){let n=ho(this._storage,t,e),o=this._base??this;return r._fromStorage(n,o)}moveaxis(t,e){let n=Ie(this._storage,t,e),o=this._base??this;return r._fromStorage(n,o)}repeat(t,e){let n=Fo(this._storage,t,e);return r._fromStorage(n)}take(t,e){let n=ka(this._storage,t,e);return r._fromStorage(n)}put(t,e){let n=e instanceof r?e._storage:e;qa(this._storage,t,n)}iindex(t,e=0){let n;if(t instanceof r){n=[];for(let o=0;o<t.size;o++){let a=t.storage.iget(o),u=typeof a=="bigint"?Number(a):a instanceof O?a.re:a;n.push(u)}}else Array.isArray(t)&&t.length>0&&Array.isArray(t[0])?n=t.flat():n=t;return this.take(n,e)}bindex(t,e){return r._fromStorage(Ue(t._storage,this._storage,e))}matmul(t){let e=Ar(this._storage,t._storage);return r._fromStorage(e)}dot(t){let e=Me(this._storage,t._storage);return typeof e=="number"||typeof e=="bigint"||e instanceof O?e:r._fromStorage(e)}trace(){return Po(this._storage)}inner(t){let e=jo(this._storage,t._storage);return typeof e=="number"||typeof e=="bigint"||e instanceof O?e:r._fromStorage(e)}outer(t){let e=Be(this._storage,t._storage);return r._fromStorage(e)}tensordot(t,e=2){let n=Lo(this._storage,t._storage,e);return typeof n=="number"||typeof n=="bigint"||n instanceof O?n:r._fromStorage(n)}cbrt(){let t=Wn(this._storage);return r._fromStorage(t)}fabs(){let t=Gn(this._storage);return r._fromStorage(t)}divmod(t){let e=typeof t=="number"?t:t._storage,[n,o]=Zn(this._storage,e);return[r._fromStorage(n),r._fromStorage(o)]}square(){let t=Yn(this._storage);return r._fromStorage(t)}remainder(t){let e=typeof t=="number"?t:t._storage,n=Hn(this._storage,e);return r._fromStorage(n)}heaviside(t){let e=typeof t=="number"?t:t._storage,n=Jn(this._storage,e);return r._fromStorage(n)}slice(...t){if(t.length===0)return this;if(t.length>this.ndim)throw new Error(`Too many indices for array: array is ${this.ndim}-dimensional, but ${t.length} were indexed`);let e=t.map((i,c)=>{let l=Bn(i);return vn(l,this.shape[c])});for(;e.length<this.ndim;)e.push({start:0,stop:this.shape[e.length],step:1,isIndex:!1});let n=[],o=[],a=this._storage.offset;for(let i=0;i<e.length;i++){let c=e[i],l=this._storage.strides[i];if(a+=c.start*l,!c.isIndex){let m;c.step>0?m=Math.max(0,Math.ceil((c.stop-c.start)/c.step)):m=Math.max(0,Math.ceil((c.start-c.stop)/Math.abs(c.step))),n.push(m),o.push(l*c.step)}}let u=D.fromData(this._storage.data,n,this._storage.dtype,o,a),s=this._base??this;return new r(u,s)}row(t){if(this.ndim<2)throw new Error("row() requires at least 2 dimensions");return this.slice(String(t),":")}col(t){if(this.ndim<2)throw new Error("col() requires at least 2 dimensions");return this.slice(":",String(t))}rows(t,e){if(this.ndim<2)throw new Error("rows() requires at least 2 dimensions");return this.slice(`${t}:${e}`,":")}cols(t,e){if(this.ndim<2)throw new Error("cols() requires at least 2 dimensions");return this.slice(":",`${t}:${e}`)}toString(){return`NDArray(shape=${JSON.stringify(this.shape)}, dtype=${this.dtype})`}toArray(){if(this.ndim===0)return this._storage.iget(0);let t=this.shape,e=t.length,n=(o,a)=>{if(a===e)return this._storage.get(...o);let u=[];for(let s=0;s<t[a];s++)o[a]=s,u.push(n(o,a+1));return u};return n(new Array(e),0)}};ep=qi;pp={cross:(r,t,e=-1,n=-1,o=-1,a)=>{let u=Yo(r.storage,t.storage,e,n,o,a);return typeof u=="number"?u:v._fromStorage(u)},norm:(r,t=null,e=null,n=!1)=>{let o=Ho(r.storage,t,e,n);return typeof o=="number"?o:v._fromStorage(o)},vector_norm:(r,t=2,e,n=!1)=>{let o=Zr(r.storage,t,e,n);return typeof o=="number"?o:v._fromStorage(o)},matrix_norm:(r,t="fro",e=!1)=>{let n=Ur(r.storage,t,e);return typeof n=="number"?n:v._fromStorage(n)},qr:(r,t="reduced")=>{let e=ve(r.storage,t);return e instanceof D?v._fromStorage(e):"q"in e&&"r"in e?{q:v._fromStorage(e.q),r:v._fromStorage(e.r)}:{h:v._fromStorage(e.h),tau:v._fromStorage(e.tau)}},cholesky:(r,t=!1)=>v._fromStorage(Jo(r.storage,t)),svd:(r,t=!0,e=!0)=>{let n=Xo(r.storage,t,e);return"u"in n?{u:v._fromStorage(n.u),s:v._fromStorage(n.s),vt:v._fromStorage(n.vt)}:v._fromStorage(n)},det:r=>Qo(r.storage),inv:r=>v._fromStorage(Ut(r.storage)),solve:(r,t)=>v._fromStorage(Ko(r.storage,t.storage)),lstsq:(r,t,e=null)=>{let n=ra(r.storage,t.storage,e);return{x:v._fromStorage(n.x),residuals:v._fromStorage(n.residuals),rank:n.rank,s:v._fromStorage(n.s)}},cond:(r,t=2)=>ta(r.storage,t),matrix_rank:(r,t)=>ea(r.storage,t),matrix_power:(r,t)=>v._fromStorage(na(r.storage,t)),pinv:(r,t=1e-15)=>v._fromStorage(oa(r.storage,t)),eig:r=>{let t=Oe(r.storage);return{w:v._fromStorage(t.w),v:v._fromStorage(t.v)}},eigh:(r,t="L")=>{let e=Ce(r.storage,t);return{w:v._fromStorage(e.w),v:v._fromStorage(e.v)}},eigvals:r=>v._fromStorage(aa(r.storage)),eigvalsh:(r,t="L")=>v._fromStorage(sa(r.storage,t))}});function cn(){let r=new ArrayBuffer(2);return new DataView(r).setInt16(0,256,!0),new Int16Array(r)[0]===256}function Pi(r){if(r.startsWith("[")||r.startsWith("("))throw new Mr(`Structured/compound dtypes are not supported: ${r}`);let t="",e=r;(r[0]==="<"||r[0]===">"||r[0]==="="||r[0]==="|")&&(t=r[0],e=r.slice(1));let n=e[0];if(n&&n in Vi)throw new Mr(`Unsupported dtype: ${Vi[n]} (${r}). Use the 'force' parameter to skip arrays with unsupported dtypes.`);let o=gy[e];if(!o)throw new Mr(`Unknown or unsupported dtype descriptor: ${r}. Supported types: ${un.join(", ")}. Use the 'force' parameter to skip arrays with unsupported dtypes.`);let a=cn(),u=t==="<"||t==="|"||t==="="&&a,s=t===">"||t==="="&&!a,i=parseInt(e.slice(1),10),c=i>1&&(s&&a||u&&!a);return{dtype:o,needsByteSwap:c,itemsize:i}}var dt,un,gy,Pt,Vi,Mr,lr,gt=W(()=>{"use strict";dt=new Uint8Array([147,78,85,77,80,89]),un=["float64","float32","complex128","complex64","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"];gy={f8:"float64",f4:"float32",c16:"complex128",c8:"complex64",i8:"int64",i4:"int32",i2:"int16",i1:"int8",u8:"uint64",u4:"uint32",u2:"uint16",u1:"uint8",b1:"bool"},Pt={float64:"<f8",float32:"<f4",complex128:"<c16",complex64:"<c8",int64:"<i8",int32:"<i4",int16:"<i2",int8:"|i1",uint64:"<u8",uint32:"<u4",uint16:"<u2",uint8:"|u1",bool:"|b1"},Vi={S:"byte strings",U:"Unicode strings",O:"Python objects",V:"structured arrays (void)",M:"datetime64",m:"timedelta64"};Mr=class extends Error{constructor(t){super(t),this.name="UnsupportedDTypeError"}},lr=class extends Error{constructor(t){super(t),this.name="InvalidNpyError"}}});function $r(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=ln(t);return fn(t,e)}function ln(r){if(r.length<10)throw new lr("File too small to be a valid NPY file");for(let c=0;c<dt.length;c++)if(r[c]!==dt[c])throw new lr("Invalid NPY magic number");let t=r[6],e=r[7];if(t!==1&&t!==2&&t!==3)throw new lr(`Unsupported NPY version: ${t}.${e}`);let n,o;t===1?(n=r[8]|r[9]<<8,o=10):(n=r[8]|r[9]<<8|r[10]<<16|r[11]<<24,o=12);let a=o+n;if(r.length<a)throw new lr("File truncated: header extends beyond file");let u=r.slice(o,a),s=new TextDecoder("utf-8").decode(u).trim(),i=Ay(s);return{version:{major:t,minor:e},header:i,dataOffset:a}}function fn(r,t){let{header:e,dataOffset:n}=t,{dtype:o,needsByteSwap:a,itemsize:u}=Pi(e.descr),s=e.shape.reduce((p,g)=>p*g,1),i=s*u,c=r.length-n;if(c<i)throw new lr(`File truncated: expected ${i} bytes of data, got ${c}`);let l=new ArrayBuffer(i);new Uint8Array(l).set(r.subarray(n,n+i));let y=by(l,o,s,a,u),d=e.shape,f;if(e.fortran_order&&d.length>1){let p=[...d].reverse(),g=D.fromData(y,p,o);f=hy(g,p),d=e.shape}else f=D.fromData(y,[...d],o);return new v(f)}function Ay(r){let t=r.match(/'descr'\s*:\s*'([^']+)'/),e=r.match(/'fortran_order'\s*:\s*(True|False)/),n=r.match(/'shape'\s*:\s*\(([^)]*)\)/);if(!t||!e||!n)throw new lr(`Failed to parse NPY header: ${r}`);let o=t[1],a=e[1]==="True",u=n[1].trim(),s;return u===""?s=[]:s=u.split(",").map(i=>i.trim()).filter(i=>i!=="").map(i=>{let c=parseInt(i,10);if(isNaN(c))throw new lr(`Invalid shape value: ${i}`);return c}),{descr:o,fortran_order:a,shape:s}}function by(r,t,e,n,o){let a=j(t);if(!a)throw new lr(`Cannot create array for dtype: ${t}`);let u=M(t),s=u?e*2:e;if(!n)return new a(r,0,s);let i=new Uint8Array(r),c=new Uint8Array(r.byteLength);if(u){let l=o/2;for(let m=0;m<e*2;m++){let y=m*l;for(let d=0;d<l;d++)c[y+d]=i[y+l-1-d]}}else for(let l=0;l<e;l++){let m=l*o;for(let y=0;y<o;y++)c[m+y]=i[m+o-1-y]}return new a(c.buffer,0,s)}function hy(r,t){let e=t.length,n=r.size,o=r.dtype,a=j(o);if(!a)throw new lr(`Cannot create array for dtype: ${o}`);let u=new a(n),s=[...t].reverse(),i=ji(t),c=ji(s),l=new Array(e).fill(0);for(let m=0;m<n;m++){let y=m;for(let f=0;f<e;f++){let p=i[f];l[f]=Math.floor(y/p),y=y%p}let d=0;for(let f=0;f<e;f++)d+=l[e-1-f]*c[f];B(o),u[d]=r.iget(m)}return D.fromData(u,s,o)}function ji(r){let t=new Array(r.length),e=1;for(let n=r.length-1;n>=0;n--)t[n]=e,e*=r[n];return t}var jt=W(()=>{"use strict";yt();X();J();gt()});function Er(r){let t=r.shape,e=r.dtype,n=Pt[e],o=t.length===0?"()":t.length===1?`(${t[0]},)`:`(${t.join(", ")})`,a=`{'descr': '${n}', 'fortran_order': False, 'shape': ${o}, }`,u=12,i=(64-(u+a.length+1)%64)%64;a=a+" ".repeat(i)+`
|
|
2
|
+
`;let c=new TextEncoder().encode(a),l=c.length,m=r.size,y=zt(e),d=m*y,f=u+l+d,p=new Uint8Array(f);p.set(dt,0),p[6]=3,p[7]=0,p[8]=l&255,p[9]=l>>8&255,p[10]=l>>16&255,p[11]=l>>24&255,p.set(c,u);let g=u+l;return Sy(r,p.subarray(g),y),p}function Sy(r,t,e){let n=r.dtype,o=r.size,a=cn(),u=B(n),s=M(n),i=r._storage;if(i.isCContiguous&&i.offset===0&&a){let l=i.data,m=new Uint8Array(l.buffer,l.byteOffset,o*e);t.set(m)}else{let l=new DataView(t.buffer,t.byteOffset,t.byteLength);for(let m=0;m<o;m++){let y=i.iget(m),d=m*e;u?xy(l,d,y,n==="uint64"):s?Dy(l,d,y,n):Ny(l,d,y,n)}}}function xy(r,t,e,n){n?r.setBigUint64(t,e,!0):r.setBigInt64(t,e,!0)}function Dy(r,t,e,n){n==="complex128"?(r.setFloat64(t,e.re,!0),r.setFloat64(t+8,e.im,!0)):(r.setFloat32(t,e.re,!0),r.setFloat32(t+4,e.im,!0))}function Ny(r,t,e,n){switch(n){case"float64":r.setFloat64(t,e,!0);break;case"float32":r.setFloat32(t,e,!0);break;case"int32":r.setInt32(t,e,!0);break;case"int16":r.setInt16(t,e,!0);break;case"int8":r.setInt8(t,e);break;case"uint32":r.setUint32(t,e,!0);break;case"uint16":r.setUint16(t,e,!0);break;case"uint8":case"bool":r.setUint8(t,e);break;default:throw new Error(`Unsupported dtype for serialization: ${n}`)}}var Lt=W(()=>{"use strict";J();gt()});function mn(r){let t=4294967295;for(let e=0;e<r.length;e++)t=wy[(t^r[e])&255]^t>>>8;return(t^4294967295)>>>0}var wy,pn=W(()=>{"use strict";wy=(()=>{let r=new Uint32Array(256);for(let t=0;t<256;t++){let e=t;for(let n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;r[t]=e}return r})()});async function Li(r){let t=Gi(r),e=new Map;for(let n of t){let o=await Iy(n);e.set(n.name,o)}return e}function Wi(r){let t=Gi(r),e=new Map;for(let n of t){if(n.compressionMethod!==0)throw new Error(`Cannot read compressed entry synchronously: ${n.name}. Use readZip() (async) for DEFLATE-compressed files.`);e.set(n.name,n.compressedData)}return e}function Gi(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=new DataView(t.buffer,t.byteOffset,t.byteLength),n=[],o=-1;for(let c=t.length-22;c>=0;c--)if(e.getUint32(c,!0)===101010256){o=c;break}if(o===-1)throw new Error("Invalid ZIP file: end of central directory not found");let a=e.getUint32(o+16,!0),u=e.getUint16(o+10,!0),s=[],i=a;for(let c=0;c<u&&e.getUint32(i,!0)===33639248;c++){let m=e.getUint16(i+10,!0),y=e.getUint32(i+16,!0),d=e.getUint32(i+20,!0),f=e.getUint32(i+24,!0),p=e.getUint16(i+28,!0),g=e.getUint16(i+30,!0),h=e.getUint16(i+32,!0),b=e.getUint32(i+42,!0),A=t.slice(i+46,i+46+p),S=new TextDecoder("utf-8").decode(A);s.push({name:S,compressionMethod:m,crc32:y,compressedSize:d,uncompressedSize:f,localHeaderOffset:b}),i=i+46+p+g+h}for(let c of s){let l=c.localHeaderOffset;if(e.getUint32(l,!0)!==67324752)throw new Error(`Invalid local file header at offset ${l}`);let y=e.getUint16(l+26,!0),d=e.getUint16(l+28,!0),f=l+30+y+d,p=t.slice(f,f+c.compressedSize);n.push({name:c.name,compressedData:p,compressionMethod:c.compressionMethod,crc32:c.crc32,compressedSize:c.compressedSize,uncompressedSize:c.uncompressedSize})}return n}async function Iy(r){if(r.compressionMethod===0)return r.compressedData;if(r.compressionMethod===8)return await zy(r.compressedData);throw new Error(`Unsupported compression method: ${r.compressionMethod}`)}async function zy(r){if(typeof DecompressionStream>"u")throw new Error("DecompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let t=new DecompressionStream("deflate-raw"),e=new Uint8Array(r.length);e.set(r);let n=t.writable.getWriter();n.write(e),n.close();let o=t.readable.getReader(),a=[];for(;;){let{done:c,value:l}=await o.read();if(c)break;a.push(l)}let u=a.reduce((c,l)=>c+l.length,0),s=new Uint8Array(u),i=0;for(let c of a)s.set(c,i),i+=c.length;return s}var Zi=W(()=>{"use strict";pn()});var Hi={};Fn(Hi,{loadNpz:()=>gn,loadNpzSync:()=>An,parseNpz:()=>Xr,parseNpzSync:()=>Wt});async function Xr(r,t={}){let e=t.force??!1,n=await Li(r);return Yi(n,e)}function Wt(r,t={}){let e=t.force??!1,n=Wi(r);return Yi(n,e)}function Yi(r,t){let e=new Map,n=[],o=new Map;for(let[a,u]of r){if(!a.endsWith(".npy"))continue;let s=a.slice(0,-4);try{let i=$r(u);e.set(s,i)}catch(i){if(i instanceof Mr&&t)n.push(s),o.set(s,i.message);else throw i}}return{arrays:e,skipped:n,errors:o}}async function gn(r,t={}){let e=await Xr(r,t);return Object.fromEntries(e.arrays)}function An(r,t={}){let e=Wt(r,t);return Object.fromEntries(e.arrays)}var Gt=W(()=>{"use strict";jt();gt();Zi()});async function Ji(r,t={}){let e=t.compress??!1,n=[];for(let[y,d]of r){let f=mn(d),p,g;e?(p=await Fy(d),p.length<d.length?g=8:(p=d,g=0)):(p=d,g=0),n.push({name:y,data:d,compressedData:p,crc:f,compressionMethod:g,offset:0})}let o=0;for(let y of n){let d=new TextEncoder().encode(y.name);o+=30+d.length+y.compressedData.length}let a=0;for(let y of n){let d=new TextEncoder().encode(y.name);a+=46+d.length}let s=o+a+22,i=new Uint8Array(s),c=new DataView(i.buffer),l=0;for(let y of n)y.offset=l,l=Qi(i,c,l,y);let m=l;for(let y of n)l=Ki(i,c,l,y);return ru(c,l,n.length,a,m),i}function Xi(r){let t=[];for(let[l,m]of r){let y=mn(m);t.push({name:l,data:m,compressedData:m,crc:y,compressionMethod:0,offset:0})}let e=0;for(let l of t){let m=new TextEncoder().encode(l.name);e+=30+m.length+l.compressedData.length}let n=0;for(let l of t){let m=new TextEncoder().encode(l.name);n+=46+m.length}let a=e+n+22,u=new Uint8Array(a),s=new DataView(u.buffer),i=0;for(let l of t)l.offset=i,i=Qi(u,s,i,l);let c=i;for(let l of t)i=Ki(u,s,i,l);return ru(s,i,t.length,n,c),u}function Qi(r,t,e,n){let o=new TextEncoder().encode(n.name);return t.setUint32(e,67324752,!0),e+=4,t.setUint16(e,n.compressionMethod===8?20:10,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,n.compressionMethod,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,33,!0),e+=2,t.setUint32(e,n.crc,!0),e+=4,t.setUint32(e,n.compressedData.length,!0),e+=4,t.setUint32(e,n.data.length,!0),e+=4,t.setUint16(e,o.length,!0),e+=2,t.setUint16(e,0,!0),e+=2,r.set(o,e),e+=o.length,r.set(n.compressedData,e),e+=n.compressedData.length,e}function Ki(r,t,e,n){let o=new TextEncoder().encode(n.name);return t.setUint32(e,33639248,!0),e+=4,t.setUint16(e,20,!0),e+=2,t.setUint16(e,n.compressionMethod===8?20:10,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,n.compressionMethod,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,33,!0),e+=2,t.setUint32(e,n.crc,!0),e+=4,t.setUint32(e,n.compressedData.length,!0),e+=4,t.setUint32(e,n.data.length,!0),e+=4,t.setUint16(e,o.length,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint32(e,0,!0),e+=4,t.setUint32(e,n.offset,!0),e+=4,r.set(o,e),e+=o.length,e}function ru(r,t,e,n,o){r.setUint32(t,101010256,!0),t+=4,r.setUint16(t,0,!0),t+=2,r.setUint16(t,0,!0),t+=2,r.setUint16(t,e,!0),t+=2,r.setUint16(t,e,!0),t+=2,r.setUint32(t,n,!0),t+=4,r.setUint32(t,o,!0),t+=4,r.setUint16(t,0,!0)}async function Fy(r){if(typeof CompressionStream>"u")throw new Error("CompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let t=new CompressionStream("deflate-raw"),e=new Uint8Array(r.length);e.set(r);let n=t.writable.getWriter();n.write(e),n.close();let o=t.readable.getReader(),a=[];for(;;){let{done:c,value:l}=await o.read();if(c)break;a.push(l)}let u=a.reduce((c,l)=>c+l.length,0),s=new Uint8Array(u),i=0;for(let c of a)s.set(c,i),i+=c.length;return s}var tu=W(()=>{"use strict";pn()});var nu={};Fn(nu,{serializeNpz:()=>bt,serializeNpzSync:()=>bn});async function bt(r,t={}){let e=eu(r);return Ji(e,{compress:t.compress??!1})}function bn(r){let t=eu(r);return Xi(t)}function eu(r){let t=new Map;if(Array.isArray(r)){for(let n=0;n<r.length;n++){let o=r[n],a=Er(o);t.set(`arr_${n}.npy`,a)}return t}let e=r instanceof Map?r.entries():Object.entries(r);for(let[n,o]of e){if(typeof n!="string"||n.length===0)throw new Error("Array names must be non-empty strings");let a=Er(o),u=n.endsWith(".npy")?n:`${n}.npy`;t.set(u,a)}return t}var Zt=W(()=>{"use strict";Lt();tu()});jt();Lt();Gt();Zt();import{readFileSync as wt,writeFileSync as zn}from"node:fs";import{readFile as It,writeFile as _n}from"node:fs/promises";yt();function Qr(r,t={}){let{delimiter:e,comments:n="#",skiprows:o=0,usecols:a,max_rows:u,dtype:s="float64",missing_values:i,filling_values:c}=t,l=r.split(/\r?\n/);if(o>0&&(l=l.slice(o)),l=l.filter(p=>{let g=p.trim();return!(g===""||n&&g.startsWith(n))}),u!==void 0&&u>0&&(l=l.slice(0,u)),l.length===0)return tr([],s);let m=[],y=new Set(i?Array.isArray(i)?i:[i]:[]),d=c!==void 0?c:s.includes("int")||s==="bool"?0:NaN;for(let p of l){let g;e===void 0?g=p.trim().split(/\s+/):g=p.split(e),a!==void 0&&(g=(Array.isArray(a)?a:[a]).map(A=>(A<0&&(A=g.length+A),g[A]??"")));let h=g.map(b=>{let A=b.trim();if(y.has(A)||A==="")return d;let S=parseFloat(A);return isNaN(S)?d:S});m.push(h)}let f=m[0]?.length??0;for(let p=1;p<m.length;p++)if(m[p].length!==f)throw new Error(`Inconsistent number of columns: row 0 has ${f} columns, row ${p} has ${m[p].length} columns`);return f===1?tr(m.map(p=>p[0]),s):tr(m,s)}function ht(r,t={}){let e={...t,missing_values:t.missing_values??["","nan","NaN","NA","N/A","-"],filling_values:t.filling_values??NaN};return Qr(r,e)}function St(r,t,e="float64"){let n=typeof t=="string"?new RegExp(t,"gm"):new RegExp(t.source,"gm"),o=[],a;for(;(a=n.exec(r))!==null;)if(a.length>1){let u=a.slice(1).map(s=>{let i=parseFloat(s);return isNaN(i)?0:i});o.push(u)}return o.length===0?tr([],e):o[0].length===1?tr(o.map(u=>u[0]),e):tr(o,e)}function ou(r,t){let e=typeof r=="bigint"?Number(r):r,n=t.match(/^%([+-]?)(\d*)(?:\.(\d+))?([dfeEgGs])$/);if(!n)return String(e);let[,o,a,u,s]=n,i=u!==void 0?parseInt(u,10):void 0,c;switch(s){case"d":c=Math.round(e).toString();break;case"f":c=e.toFixed(i??6);break;case"e":c=e.toExponential(i??6).replace(/e([+-])(\d)$/,"e$10$2");break;case"E":c=e.toExponential(i??6).toUpperCase().replace(/E([+-])(\d)$/,"E$10$2");break;case"g":case"G":{let l=i??6,m=Math.floor(Math.log10(Math.abs(e)));m>=-4&&m<l?(c=e.toPrecision(l),c.includes(".")&&(c=c.replace(/\.?0+$/,""))):c=e.toExponential(l-1),s==="G"&&(c=c.toUpperCase());break}case"s":c=String(e);break;default:c=String(e)}if(a){let l=parseInt(a,10);if(c.length<l){let m=" ".repeat(l-c.length);o==="-"?c=c+m:c=m+c}}return o==="+"&&e>=0&&!c.startsWith("-")&&(c="+"+c),c}function xt(r,t={}){let{fmt:e="%.18e",delimiter:n=" ",newline:o=`
|
|
3
|
+
`,header:a,footer:u,comments:s="# "}=t;if(r.ndim>2)throw new Error("savetxt: array must be 1D or 2D");let i=[];if(a!==void 0){let l=a.split(/\r?\n/);for(let m of l)m.startsWith(s.trimEnd())?i.push(m):i.push(s+m)}let c=r.toArray();if(r.ndim===1)for(let l of c)i.push(ou(l,e));else for(let l of c){let m=l.map(y=>ou(y,e));i.push(m.join(n))}if(u!==void 0){let l=u.split(/\r?\n/);for(let m of l)m.startsWith(s.trimEnd())?i.push(m):i.push(s+m)}return i.join(o)+o}xr();yt();jt();Lt();gt();Gt();Zt();X();J();var hr=624,Yt=397,My=2567483615,hn=2147483648,Sn=2147483647,Sr={mt:new Uint32Array(hr),mti:hr+1};function iu(r){let t=Sr.mt;t[0]=r>>>0;for(let e=1;e<hr;e++){let n=t[e-1]^t[e-1]>>>30;t[e]=Math.imul(1812433253,n)+e>>>0}Sr.mti=hr}function au(){let r=Sr.mt,t,e=[0,My];if(Sr.mti>=hr){let n;for(Sr.mti===hr+1&&iu(5489),n=0;n<hr-Yt;n++)t=r[n]&hn|r[n+1]&Sn,r[n]=r[n+Yt]^t>>>1^e[t&1];for(;n<hr-1;n++)t=r[n]&hn|r[n+1]&Sn,r[n]=r[n+(Yt-hr)]^t>>>1^e[t&1];t=r[hr-1]&hn|r[0]&Sn,r[hr-1]=r[Yt-1]^t>>>1^e[t&1],Sr.mti=0}return t=r[Sr.mti++],t^=t>>>11,t^=t<<7&2636928640,t^=t<<15&4022730752,t^=t>>>18,t>>>0}function Y(){let r=au()>>>5,t=au()>>>6;return(r*67108864+t)/9007199254740992}var By=2468251765,vy=1492356589,Ty=1135663077,Ey=2337405405,Oy=3389127133,Cy=1232336661,In=16,Ht=4;function cr(r){return r>>>0}function xn(r,t){return r=cr(cr(r)^t.val),t.val=cr(Math.imul(t.val,By)),r=cr(Math.imul(r,t.val)),r=cr(r^r>>>In),r}function Uy(r,t){let e=cr(cr(Math.imul(Oy,cr(r)))-cr(Math.imul(Cy,cr(t))));return e=cr(e^e>>>In),e}function $y(r){let t=[0,0,0,0],e=[r>>>0],n={val:Ty};for(let o=0;o<Ht;o++)o<e.length?t[o]=xn(e[o],n):t[o]=xn(0,n);for(let o=0;o<Ht;o++)for(let a=0;a<Ht;a++)if(o!==a){let u=xn(t[o],n);t[a]=Uy(t[a],u)}return t}function Ry(r,t){let e=[],n=Ey;for(let o=0;o<t;o++){let a=r[o%Ht],u=cr(a^n);n=cr(Math.imul(n,vy)),u=cr(Math.imul(u,n)),u=cr(u^u>>>In),e.push(u)}return e}var ky=BigInt("4865540595714422341"),qy=BigInt("2549297995355413924"),Vy=qy<<BigInt(64)|ky,Dn=BigInt("0xffffffffffffffff"),Nn=(BigInt(1)<<BigInt(128))-BigInt(1);function Py(r){let t=r>>BigInt(64),e=r&Dn,n=(t^e)&Dn,o=Number(r>>BigInt(122));return(n>>BigInt(o)|n<<BigInt(64-o))&Dn}function wn(r,t){return r*Vy+t&Nn}function su(r){let t=$y(r),e=Ry(t,8),n=BigInt(e[0])|BigInt(e[1])<<BigInt(32),o=BigInt(e[2])|BigInt(e[3])<<BigInt(32),a=BigInt(e[4])|BigInt(e[5])<<BigInt(32),u=BigInt(e[6])|BigInt(e[7])<<BigInt(32),s=n<<BigInt(64)|o,i=(a<<BigInt(64)|u)<<BigInt(1);i=(i|BigInt(1))&Nn;let c=BigInt(0);return c=wn(c,i),c=c+s&Nn,c=wn(c,i),{state:c,inc:i}}function jy(r){return r.state=wn(r.state,r.inc),Py(r.state)}function Ly(r){let e=jy(r)>>BigInt(11);return Number(e)/9007199254740992}var Dt=class{constructor(t){if(t!==void 0)this._pcgState=su(t);else{let e=Math.floor(Math.random()*4294967296);this._pcgState=su(e)}}_randomFloat(){return Ly(this._pcgState)}random(t){if(t===void 0)return this._randomFloat();let e=Array.isArray(t)?t:[t],n=e.reduce((u,s)=>u*s,1),o=D.zeros(e,"float64"),a=o.data;for(let u=0;u<n;u++)a[u]=this._randomFloat();return o}integers(t,e,n){if(e===void 0&&(e=t,t=0),n===void 0)return Math.floor(this._randomFloat()*(e-t))+t;let o=Array.isArray(n)?n:[n],a=o.reduce((c,l)=>c*l,1),u=D.zeros(o,"int64"),s=u.data,i=e-t;for(let c=0;c<a;c++)s[c]=BigInt(Math.floor(this._randomFloat()*i)+t);return u}standard_normal(t){if(t===void 0)return Rr(this._randomFloat.bind(this));let e=Array.isArray(t)?t:[t],n=e.reduce((u,s)=>u*s,1),o=D.zeros(e,"float64"),a=o.data;for(let u=0;u<n;u+=2){let[s,i]=Nt(this._randomFloat.bind(this));a[u]=s,u+1<n&&(a[u+1]=i)}return o}normal(t=0,e=1,n){if(n===void 0)return Rr(this._randomFloat.bind(this))*e+t;let o=Array.isArray(n)?n:[n],a=o.reduce((i,c)=>i*c,1),u=D.zeros(o,"float64"),s=u.data;for(let i=0;i<a;i+=2){let[c,l]=Nt(this._randomFloat.bind(this));s[i]=c*e+t,i+1<a&&(s[i+1]=l*e+t)}return u}uniform(t=0,e=1,n){if(n===void 0)return this._randomFloat()*(e-t)+t;let o=Array.isArray(n)?n:[n],a=o.reduce((c,l)=>c*l,1),u=D.zeros(o,"float64"),s=u.data,i=e-t;for(let c=0;c<a;c++)s[c]=this._randomFloat()*i+t;return u}choice(t,e,n=!0,o){return Du(t,e,n,o,this._randomFloat.bind(this))}permutation(t){return wu(t,this._randomFloat.bind(this))}shuffle(t){zu(t,this._randomFloat.bind(this))}exponential(t=1,e){if(e===void 0)return-Math.log(1-this._randomFloat())*t;let n=Array.isArray(e)?e:[e],o=n.reduce((s,i)=>s*i,1),a=D.zeros(n,"float64"),u=a.data;for(let s=0;s<o;s++)u[s]=-Math.log(1-this._randomFloat())*t;return a}poisson(t=1,e){if(e===void 0)return Jt(t,this._randomFloat.bind(this));let n=Array.isArray(e)?e:[e],o=n.reduce((s,i)=>s*i,1),a=D.zeros(n,"int64"),u=a.data;for(let s=0;s<o;s++)u[s]=BigInt(Jt(t,this._randomFloat.bind(this)));return a}binomial(t,e,n){if(n===void 0)return Xt(t,e,this._randomFloat.bind(this));let o=Array.isArray(n)?n:[n],a=o.reduce((i,c)=>i*c,1),u=D.zeros(o,"int64"),s=u.data;for(let i=0;i<a;i++)s[i]=BigInt(Xt(t,e,this._randomFloat.bind(this)));return u}};function uu(r){return new Dt(r)}function cu(r){r==null&&(r=Math.floor(Date.now()^Math.random()*4294967296)),iu(r>>>0)}function lu(){return{mt:Array.from(Sr.mt),mti:Sr.mti}}function fu(r){Sr.mt=new Uint32Array(r.mt),Sr.mti=r.mti}function Rr(r){let t,e;do t=r(),e=r();while(t===0);return Math.sqrt(-2*Math.log(t))*Math.cos(2*Math.PI*e)}function Nt(r){let t,e;do t=r(),e=r();while(t===0);let n=Math.sqrt(-2*Math.log(t)),o=2*Math.PI*e;return[n*Math.cos(o),n*Math.sin(o)]}function Jt(r,t){if(r<30){let e=Math.exp(-r),n=0,o=1;do n++,o*=t();while(o>e);return n-1}else{let e=Rr(t);return Math.max(0,Math.round(r+Math.sqrt(r)*e))}}function Xt(r,t,e){if(r*t<10&&r*(1-t)<10){let n=0;for(let o=0;o<r;o++)e()<t&&n++;return n}else{let n=r*t,o=Math.sqrt(r*t*(1-t)),a=Rr(e);return Math.max(0,Math.min(r,Math.round(n+o*a)))}}function mu(r){if(r===void 0)return Y();let t=Array.isArray(r)?r:[r],e=t.reduce((a,u)=>a*u,1),n=D.zeros(t,"float64"),o=n.data;for(let a=0;a<e;a++)o[a]=Y();return n}function pu(...r){if(r.length===0)return Y();let t=r.reduce((o,a)=>o*a,1),e=D.zeros(r,"float64"),n=e.data;for(let o=0;o<t;o++)n[o]=Y();return e}function yu(...r){if(r.length===0)return Rr(Y);let t=r.reduce((o,a)=>o*a,1),e=D.zeros(r,"float64"),n=e.data;for(let o=0;o<t;o+=2){let[a,u]=Nt(Y);n[o]=a,o+1<t&&(n[o+1]=u)}return e}function du(r,t,e,n="int64"){t==null&&(t=r,r=0);let o=t-r;if(e===void 0)return Math.floor(Y()*o)+r;let a=Array.isArray(e)?e:[e],u=a.reduce((c,l)=>c*l,1),s=D.zeros(a,n),i=s.data;if(B(n)){let c=i;for(let l=0;l<u;l++)c[l]=BigInt(Math.floor(Y()*o)+r)}else{let c=i;for(let l=0;l<u;l++)c[l]=Math.floor(Y()*o)+r}return s}function gu(r=0,t=1,e){if(e===void 0)return Y()*(t-r)+r;let n=Array.isArray(e)?e:[e],o=n.reduce((i,c)=>i*c,1),a=D.zeros(n,"float64"),u=a.data,s=t-r;for(let i=0;i<o;i++)u[i]=Y()*s+r;return a}function Au(r=0,t=1,e){if(e===void 0)return Rr(Y)*t+r;let n=Array.isArray(e)?e:[e],o=n.reduce((s,i)=>s*i,1),a=D.zeros(n,"float64"),u=a.data;for(let s=0;s<o;s+=2){let[i,c]=Nt(Y);u[s]=i*t+r,s+1<o&&(u[s+1]=c*t+r)}return a}function bu(r){if(r===void 0)return Rr(Y);let t=Array.isArray(r)?r:[r],e=t.reduce((a,u)=>a*u,1),n=D.zeros(t,"float64"),o=n.data;for(let a=0;a<e;a+=2){let[u,s]=Nt(Y);o[a]=u,a+1<e&&(o[a+1]=s)}return n}function hu(r=1,t){if(t===void 0)return-Math.log(1-Y())*r;let e=Array.isArray(t)?t:[t],n=e.reduce((u,s)=>u*s,1),o=D.zeros(e,"float64"),a=o.data;for(let u=0;u<n;u++)a[u]=-Math.log(1-Y())*r;return o}function Su(r=1,t){if(t===void 0)return Jt(r,Y);let e=Array.isArray(t)?t:[t],n=e.reduce((u,s)=>u*s,1),o=D.zeros(e,"int64"),a=o.data;for(let u=0;u<n;u++)a[u]=BigInt(Jt(r,Y));return o}function xu(r,t,e){if(e===void 0)return Xt(r,t,Y);let n=Array.isArray(e)?e:[e],o=n.reduce((s,i)=>s*i,1),a=D.zeros(n,"int64"),u=a.data;for(let s=0;s<o;s++)u[s]=BigInt(Xt(r,t,Y));return a}function Du(r,t,e=!0,n,o=Y){let a;if(typeof r=="number")a=Array.from({length:r},(y,d)=>d);else{let y=r.size;a=[];for(let d=0;d<y;d++)a.push(Number(r.iget(d)))}let u=a.length;if(u===0)throw new Error("cannot take a sample from an empty sequence");let s;if(n!==void 0){if(Array.isArray(n))s=n;else{let d=n.size;s=[];for(let f=0;f<d;f++)s.push(Number(n.iget(f)))}if(s.length!==u)throw new Error("p and a must have the same size");let y=s.reduce((d,f)=>d+f,0);Math.abs(y-1)>1e-10&&(s=s.map(d=>d/y))}if(t===void 0){if(s){let y=o(),d=0;for(let f=0;f<u;f++)if(d+=s[f],y<d)return a[f];return a[u-1]}return a[Math.floor(o()*u)]}let i=Array.isArray(t)?t:[t],c=i.reduce((y,d)=>y*d,1);if(!e&&c>u)throw new Error("cannot take a larger sample than population when replace=false");let l=D.zeros(i,"float64"),m=l.data;if(e)if(s){let y=new Array(u);y[0]=s[0];for(let d=1;d<u;d++)y[d]=y[d-1]+s[d];for(let d=0;d<c;d++){let f=o(),p=0;for(;p<u-1&&f>=y[p];)p++;m[d]=a[p]}}else for(let y=0;y<c;y++)m[y]=a[Math.floor(o()*u)];else{let y=[...a],d=s?[...s]:void 0;for(let f=0;f<c;f++){let p;if(d){let g=d.reduce((A,S)=>A+S,0),h=o()*g,b=0;p=0;for(let A=0;A<y.length;A++)if(b+=d[A],h<b){p=A;break}p===0&&h>=b&&(p=y.length-1)}else p=Math.floor(o()*y.length);m[f]=y[p],y.splice(p,1),d&&d.splice(p,1)}}return l}function Nu(r,t,e=!0,n){return Du(r,t,e,n,Y)}function wu(r,t=Y){let e;if(typeof r=="number"){let o=new Float64Array(r);for(let a=0;a<r;a++)o[a]=a;e=D.fromData(o,[r],"float64")}else e=r.copy();let n=e.size;for(let o=n-1;o>0;o--){let a=Math.floor(t()*(o+1)),u=e.iget(o);e.iset(o,e.iget(a)),e.iset(a,u)}return e}function Iu(r){return wu(r,Y)}function zu(r,t=Y){let e=r.size;for(let n=e-1;n>0;n--){let o=Math.floor(t()*(n+1)),a=r.iget(n);r.iset(n,r.iget(o)),r.iset(o,a)}}function _u(r){zu(r,Y)}yt();function dr(r){return r&&typeof r=="object"&&"_data"in r&&"_shape"in r?v._fromStorage(r):r}var Kg={seed:cu,random:r=>dr(mu(r)),rand:(...r)=>dr(pu(...r)),randn:(...r)=>dr(yu(...r)),randint:(r,t,e,n)=>dr(du(r,t,e,n)),uniform:(r,t,e)=>dr(gu(r,t,e)),normal:(r,t,e)=>dr(Au(r,t,e)),standard_normal:r=>dr(bu(r)),exponential:(r,t)=>dr(hu(r,t)),poisson:(r,t)=>dr(Su(r,t)),binomial:(r,t,e)=>dr(xu(r,t,e)),choice:(r,t,e,n)=>dr(Nu(r,t,e,n)),permutation:r=>dr(Iu(r)),shuffle:_u,get_state:lu,set_state:fu,default_rng:uu,Generator:Dt},rA="0.11.0";async function Gy(r){let t=await It(r);return $r(t)}function Zy(r){let t=wt(r);return $r(t)}async function Yy(r,t){let e=Er(t);await _n(r,e)}function Hy(r,t){let e=Er(t);zn(r,e)}async function Jy(r,t={}){let e=await It(r);return Xr(e,t)}function Xy(r,t={}){let e=wt(r),{parseNpzSync:n}=(Gt(),Mn(Hi));return n(e,t)}async function Fu(r,t,e={}){let n=await bt(t,e);await _n(r,n)}function mA(r,t){let{serializeNpzSync:e}=(Zt(),Mn(nu)),n=e(t);zn(r,n)}async function pA(r,t={}){if(r.endsWith(".npy")){if(t.allowNpy===!1)throw new Error("Loading .npy files is disabled (allowNpy: false)");return Gy(r)}else{if(r.endsWith(".npz"))return Jy(r,t);throw new Error(`Unknown file extension. Expected .npy or .npz, got: ${r}`)}}function yA(r,t={}){if(r.endsWith(".npy")){if(t.allowNpy===!1)throw new Error("Loading .npy files is disabled (allowNpy: false)");return Zy(r)}else{if(r.endsWith(".npz"))return Xy(r,t);throw new Error(`Unknown file extension. Expected .npy or .npz, got: ${r}`)}}async function dA(r,t){if(!r.endsWith(".npy"))throw new Error(`save() is for .npy files. Use saveNpz() for .npz files. Got: ${r}`);return Yy(r,t)}function gA(r,t){if(!r.endsWith(".npy"))throw new Error(`saveSync() is for .npy files. Use saveNpzSync() for .npz files. Got: ${r}`);return Hy(r,t)}async function AA(r,t){return r.endsWith(".npz")||(r=r+".npz"),Fu(r,t,{compress:!1})}async function bA(r,t){return r.endsWith(".npz")||(r=r+".npz"),Fu(r,t,{compress:!0})}async function hA(r,t={}){let e=await It(r,{encoding:t.encoding??"utf-8"});return Qr(e,t)}function SA(r,t={}){let e=wt(r,{encoding:t.encoding??"utf-8"});return Qr(e,t)}async function xA(r,t,e={}){let n=xt(t,e);await _n(r,n,"utf-8")}function DA(r,t,e={}){let n=xt(t,e);zn(r,n,"utf-8")}async function NA(r,t={}){let e=await It(r,{encoding:t.encoding??"utf-8"});return ht(e,t)}function wA(r,t={}){let e=wt(r,{encoding:t.encoding??"utf-8"});return ht(e,t)}async function IA(r,t,e="float64"){let n=await It(r,{encoding:"utf-8"});return St(n,t,e)}function zA(r,t,e="float64"){let n=wt(r,{encoding:"utf-8"});return St(n,t,e)}export{O as Complex,Pt as DTYPE_TO_DESCR,lr as InvalidNpyError,v as NDArray,un as SUPPORTED_DTYPES,Mr as UnsupportedDTypeError,rA as __version__,zi as abs,zi as absolute,Mi as acos,Ei as acosh,Ri as amax,ki as amin,np as angle,Rf as append,ol as arange,Mi as arccos,Ei as arccosh,Fi as arcsin,Ti as arcsinh,Bi as arctan,vi as arctan2,Oi as arctanh,Up as argpartition,Ep as argsort,kp as argwhere,sn as around,tr as array,Xf as array_equal,Qf as array_equiv,Af as array_split,yl as asanyarray,Vt as asarray,dl as ascontiguousarray,gl as asfortranarray,Fi as asin,Ti as asinh,Bi as atan,vi as atan2,Oi as atanh,vf as atleast_1d,Tf as atleast_2d,Ef as atleast_3d,nm as average,iy as bincount,Yf as bindex,Mm as bitwise_and,Tm as bitwise_not,Bm as bitwise_or,vm as bitwise_xor,jf as broadcast_arrays,Lf as broadcast_shapes,Pf as broadcast_to,gm as cbrt,Wp as ceil,Jf as choose,Cf as column_stack,Ap as compress,Hr as concatenate,qi as conj,ep as conjugate,py as convolve,cl as copy,Gm as copysign,Hf as copyto,dy as corrcoef,my as correlate,rf as cos,cf as cosh,Lp as count_nonzero,yy as cov,sy as cross,$i as cumprod,Ui as cumsum,$i as cumulative_prod,Ui as cumulative_sum,af as deg2rad,nf as degrees,kf as delete,wi as diag,xp as diag_indices,Dp as diag_indices_from,Al as diagflat,Zl as diagonal,ny as diff,uy as digitize,_i as divide,bm as divmod,Wl as dot,Of as dsplit,df as dstack,oy as ediff1d,mp as einsum,Di as empty,ml as empty_like,Bl as exp,vl as exp2,If as expand_dims,Tl as expm1,jp as extract,xi as eye,Am as fabs,Sp as fill_diagonal,Gp as fix,qp as flatnonzero,an as flip,zf as fliplr,_f as flipud,Dm as float_power,Zp as floor,Pl as floor_divide,Nm as fmod,wm as frexp,wl as frombuffer,Il as fromfile,bl as fromfunction,zl as fromiter,IA as fromregex,zA as fromregexSync,_l as fromstring,Ni as full,pl as full_like,Im as gcd,NA as genfromtxt,wA as genfromtxtSync,il as geomspace,ay as gradient,xm as heaviside,cy as histogram,ly as histogram2d,fy as histogramdd,hf as hsplit,yf as hstack,ef as hypot,ul as identity,Zf as iindex,tp as imag,Xp as in1d,Fp as indices,Jl as inner,qf as insert,Qp as intersect1d,Em as invert,Jm as iscomplex,Xm as iscomplexobj,lp as isdtype,Pm as isfinite,sp as isfortran,Kp as isin,jm as isinf,Lm as isnan,Wm as isnat,op as isneginf,ap as isposinf,Qm as isreal,Km as isrealobj,up as isscalar,cp as iterable,Mp as ix_,Yl as kron,zm as lcm,_m as ldexp,Om as left_shift,Op as lexsort,pp as linalg,al as linspace,pA as load,Gy as loadNpy,Zy as loadNpySync,gn as loadNpz,Jy as loadNpzFile,Xy as loadNpzFileSync,An as loadNpzSync,yA as loadSync,hA as loadtxt,SA as loadtxtSync,El as log,Cl as log10,Ul as log1p,Ol as log2,$l as logaddexp,Rl as logaddexp2,Rm as logical_and,qm as logical_not,km as logical_or,Vm as logical_xor,sl as logspace,_p as mask_indices,Ri as max,rm as median,hl as meshgrid,ki as min,Vl as mod,Fm as modf,mf as moveaxis,mm as nanargmax,fm as nanargmin,ym as nancumprod,pm as nancumsum,lm as nanmax,sm as nanmean,dm as nanmedian,cm as nanmin,am as nanprod,um as nanstd,om as nansum,im as nanvar,kl as negative,Ym as nextafter,Rp as nonzero,bi as ones,fl as ones_like,Xl as outer,Um as packbits,Vf as pad,$r as parseNpy,fn as parseNpyData,ln as parseNpyHeader,Xr as parseNpz,Wt as parseNpzSync,Qr as parseTxt,Cp as partition,tm as percentile,hp as place,jl as positive,Ii as pow,Ii as power,fp as promote_types,Kf as ptp,Gf as put,dp as put_along_axis,gp as putmask,em as quantile,sf as rad2deg,of as radians,Kg as random,Df as ravel,Bp as ravel_multi_index,rp as real,ip as real_if_close,Ll as reciprocal,Sm as remainder,xf as repeat,Nf as reshape,$f as resize,Cm as right_shift,Yp as rint,Mf as roll,Bf as rollaxis,Ff as rot90,sn as round,sn as round_,Uf as row_stack,dA as save,Yy as saveNpy,Hy as saveNpySync,Fu as saveNpz,mA as saveNpzSync,gA as saveSync,xA as savetxt,DA as savetxtSync,AA as savez,bA as savez_compressed,Pp as searchsorted,bp as select,Er as serializeNpy,bt as serializeNpz,bn as serializeNpzSync,xt as serializeTxt,ry as setdiff1d,ty as setxor1d,ql as sign,Zm as signbit,Kl as sin,uf as sinh,Tp as sort,$p as sort_complex,Hm as spacing,gf as split,Ml as sqrt,hm as square,wf as squeeze,pf as stack,ff as swapaxes,Wf as take,yp as take_along_axis,tf as tan,lf as tanh,Ql as tensordot,Sf as tile,Gl as trace,Hl as transpose,Sl as tri,xl as tril,Np as tril_indices,wp as tril_indices_from,Dl as triu,Ip as triu_indices,zp as triu_indices_from,_i as true_divide,Hp as trunc,ey as union1d,Jp as unique,$m as unpackbits,vp as unravel_index,Nl as vander,bf as vsplit,Ci as vstack,Vp as where,Fr as zeros,ll as zeros_like};
|
|
4
4
|
//# sourceMappingURL=numpy-ts.node-io.mjs.map
|