numpy-ts 0.11.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/README.md +29 -25
  2. package/dist/esm/common/broadcasting.js +1 -0
  3. package/dist/esm/common/complex.js +1 -0
  4. package/dist/esm/common/dtype.js +1 -0
  5. package/dist/esm/common/internal/compute.js +1 -0
  6. package/dist/esm/common/internal/indexing.js +1 -0
  7. package/dist/esm/common/ndarray-core.js +1 -0
  8. package/dist/esm/common/ops/advanced.js +1 -0
  9. package/dist/esm/common/ops/arithmetic.js +1 -0
  10. package/dist/esm/common/ops/bitwise.js +1 -0
  11. package/dist/esm/common/ops/comparison.js +1 -0
  12. package/dist/esm/common/ops/complex.js +1 -0
  13. package/dist/esm/common/ops/exponential.js +1 -0
  14. package/dist/esm/common/ops/fft.js +1 -0
  15. package/dist/esm/common/ops/formatting.js +2 -0
  16. package/dist/esm/common/ops/gradient.js +1 -0
  17. package/dist/esm/common/ops/hyperbolic.js +1 -0
  18. package/dist/esm/common/ops/linalg.js +2 -0
  19. package/dist/esm/common/ops/logic.js +1 -0
  20. package/dist/esm/common/ops/random.js +1 -0
  21. package/dist/esm/common/ops/reduction.js +1 -0
  22. package/dist/esm/common/ops/rounding.js +1 -0
  23. package/dist/esm/common/ops/sets.js +1 -0
  24. package/dist/esm/common/ops/shape.js +1 -0
  25. package/dist/esm/common/ops/sorting.js +1 -0
  26. package/dist/esm/common/ops/statistics.js +1 -0
  27. package/dist/esm/common/ops/trig.js +1 -0
  28. package/dist/esm/common/slicing.js +1 -0
  29. package/dist/esm/common/storage.js +1 -0
  30. package/dist/esm/core/advanced.js +1 -0
  31. package/dist/esm/core/arithmetic.js +1 -0
  32. package/dist/esm/core/bitwise.js +1 -0
  33. package/dist/esm/core/complex.js +1 -0
  34. package/dist/esm/core/creation.js +1 -0
  35. package/dist/esm/core/formatting.js +1 -0
  36. package/dist/esm/core/gradient.js +1 -0
  37. package/dist/esm/core/index.js +1 -0
  38. package/dist/esm/core/linalg.js +1 -0
  39. package/dist/esm/core/logic.js +1 -0
  40. package/dist/esm/core/polynomial.js +1 -0
  41. package/dist/esm/core/reduction.js +1 -0
  42. package/dist/esm/core/rounding.js +1 -0
  43. package/dist/esm/core/sets.js +1 -0
  44. package/dist/esm/core/shape-extra.js +1 -0
  45. package/dist/esm/core/shape.js +1 -0
  46. package/dist/esm/core/sorting.js +1 -0
  47. package/dist/esm/core/statistics.js +1 -0
  48. package/dist/esm/core/trig.js +1 -0
  49. package/dist/esm/core/typechecking.js +1 -0
  50. package/dist/esm/core/types.js +1 -0
  51. package/dist/esm/core/utility.js +1 -0
  52. package/dist/esm/core.js +1 -0
  53. package/dist/esm/full/index.js +1 -0
  54. package/dist/esm/full/ndarray.js +1 -0
  55. package/dist/esm/index.js +1 -0
  56. package/dist/esm/io/index.js +1 -0
  57. package/dist/esm/io/npy/format.js +1 -0
  58. package/dist/esm/io/npy/index.js +1 -0
  59. package/dist/esm/io/npy/parser.js +1 -0
  60. package/dist/esm/io/npy/serializer.js +2 -0
  61. package/dist/esm/io/npz/index.js +1 -0
  62. package/dist/esm/io/npz/parser.js +1 -0
  63. package/dist/esm/io/npz/serializer.js +1 -0
  64. package/dist/esm/io/txt/index.js +1 -0
  65. package/dist/esm/io/txt/parser.js +1 -0
  66. package/dist/esm/io/txt/serializer.js +2 -0
  67. package/dist/esm/io/zip/index.js +1 -0
  68. package/dist/esm/io/zip/reader.js +1 -0
  69. package/dist/esm/io/zip/types.js +1 -0
  70. package/dist/esm/io/zip/writer.js +1 -0
  71. package/dist/esm/node.js +1 -0
  72. package/dist/numpy-ts.browser.js +5 -2
  73. package/dist/numpy-ts.node-io.cjs +5 -3
  74. package/dist/numpy-ts.node-io.cjs.map +4 -4
  75. package/dist/numpy-ts.node-io.mjs +5 -3
  76. package/dist/numpy-ts.node-io.mjs.map +4 -4
  77. package/dist/numpy-ts.node.cjs +5 -2
  78. package/dist/numpy-ts.node.cjs.map +4 -4
  79. package/dist/types/common/complex.d.ts +94 -0
  80. package/dist/types/{internal → common/internal}/compute.d.ts +1 -1
  81. package/dist/types/{internal → common/internal}/indexing.d.ts +6 -0
  82. package/dist/types/common/ndarray-core.d.ts +126 -0
  83. package/dist/types/{ops → common/ops}/advanced.d.ts +67 -2
  84. package/dist/types/{ops → common/ops}/arithmetic.d.ts +100 -1
  85. package/dist/types/{ops → common/ops}/bitwise.d.ts +31 -1
  86. package/dist/types/{ops → common/ops}/comparison.d.ts +1 -1
  87. package/dist/types/{ops → common/ops}/complex.d.ts +1 -1
  88. package/dist/types/{ops → common/ops}/exponential.d.ts +1 -1
  89. package/dist/types/common/ops/fft.d.ts +166 -0
  90. package/dist/types/common/ops/formatting.d.ts +229 -0
  91. package/dist/types/{ops → common/ops}/gradient.d.ts +1 -1
  92. package/dist/types/{ops → common/ops}/hyperbolic.d.ts +1 -1
  93. package/dist/types/{ops → common/ops}/linalg.d.ts +148 -3
  94. package/dist/types/{ops → common/ops}/logic.d.ts +2 -2
  95. package/dist/types/common/ops/random.d.ts +376 -0
  96. package/dist/types/{ops → common/ops}/reduction.d.ts +10 -2
  97. package/dist/types/{ops → common/ops}/rounding.d.ts +1 -1
  98. package/dist/types/common/ops/sets.d.ts +87 -0
  99. package/dist/types/{ops → common/ops}/shape.d.ts +14 -1
  100. package/dist/types/{ops → common/ops}/sorting.d.ts +1 -1
  101. package/dist/types/{ops → common/ops}/statistics.d.ts +23 -1
  102. package/dist/types/{ops → common/ops}/trig.d.ts +1 -1
  103. package/dist/types/{core → common}/storage.d.ts +1 -0
  104. package/dist/types/core/advanced.d.ts +54 -0
  105. package/dist/types/core/arithmetic.d.ts +110 -0
  106. package/dist/types/core/bitwise.d.ts +34 -0
  107. package/dist/types/core/complex.d.ts +15 -90
  108. package/dist/types/core/creation.d.ts +98 -0
  109. package/dist/types/core/formatting.d.ts +29 -0
  110. package/dist/types/core/gradient.d.ts +14 -0
  111. package/dist/types/core/index.d.ts +40 -0
  112. package/dist/types/core/linalg.d.ts +141 -0
  113. package/dist/types/core/logic.d.ts +72 -0
  114. package/dist/types/core/polynomial.d.ts +50 -0
  115. package/dist/types/core/reduction.d.ts +82 -0
  116. package/dist/types/core/rounding.d.ts +24 -0
  117. package/dist/types/core/sets.d.ts +48 -0
  118. package/dist/types/core/shape-extra.d.ts +24 -0
  119. package/dist/types/core/shape.d.ts +77 -0
  120. package/dist/types/core/sorting.d.ts +34 -0
  121. package/dist/types/core/statistics.d.ts +32 -0
  122. package/dist/types/core/trig.d.ts +58 -0
  123. package/dist/types/core/typechecking.d.ts +50 -0
  124. package/dist/types/core/types.d.ts +43 -0
  125. package/dist/types/core/utility.d.ts +30 -0
  126. package/dist/types/core.d.ts +30 -0
  127. package/dist/types/full/index.d.ts +603 -0
  128. package/dist/types/full/ndarray.d.ts +880 -0
  129. package/dist/types/index.d.ts +140 -26
  130. package/dist/types/io/npy/format.d.ts +1 -1
  131. package/dist/types/io/npy/parser.d.ts +3 -3
  132. package/dist/types/io/npy/serializer.d.ts +2 -2
  133. package/dist/types/io/npz/parser.d.ts +4 -4
  134. package/dist/types/io/npz/serializer.d.ts +6 -6
  135. package/dist/types/io/txt/parser.d.ts +5 -5
  136. package/dist/types/io/txt/serializer.d.ts +2 -2
  137. package/dist/types/node.d.ts +12 -8
  138. package/package.json +31 -30
  139. package/dist/numpy-ts.esm.js +0 -2
  140. package/dist/types/core/ndarray.d.ts +0 -3166
  141. package/dist/types/ops/random.d.ts +0 -136
  142. package/dist/types/ops/sets.d.ts +0 -38
  143. /package/dist/types/{core → common}/broadcasting.d.ts +0 -0
  144. /package/dist/types/{core → common}/dtype.d.ts +0 -0
  145. /package/dist/types/{core → common}/slicing.d.ts +0 -0
@@ -1,2 +0,0 @@
1
- var O=class r{constructor(t,e=0){this.re=t,this.im=e}abs(){return Math.sqrt(this.re*this.re+this.im*this.im)}angle(){return Math.atan2(this.im,this.re)}conj(){return new r(this.re,-this.im)}add(t){return typeof t=="number"?new r(this.re+t,this.im):new r(this.re+t.re,this.im+t.im)}sub(t){return typeof t=="number"?new r(this.re-t,this.im):new r(this.re-t.re,this.im-t.im)}mul(t){return typeof t=="number"?new r(this.re*t,this.im*t):new r(this.re*t.re-this.im*t.im,this.re*t.im+this.im*t.re)}div(t){if(typeof t=="number")return new r(this.re/t,this.im/t);let e=t.re*t.re+t.im*t.im;return new r((this.re*t.re+this.im*t.im)/e,(this.im*t.re-this.re*t.im)/e)}neg(){return new r(-this.re,-this.im)}equals(t){return this.re===t.re&&this.im===t.im}toString(){return this.im===0?`(${this.re}+0j)`:this.im<0?`(${this.re}${this.im}j)`:`(${this.re}+${this.im}j)`}static from(t){if(t instanceof r)return t;if(typeof t=="number")return new r(t,0);if(Array.isArray(t))return new r(t[0]??0,t[1]??0);if(typeof t=="object"&&t!==null&&"re"in t)return new r(t.re??0,t.im??0);throw new Error(`Cannot convert ${t} to Complex`)}static isComplex(t){return t instanceof r||typeof t=="object"&&t!==null&&"re"in t&&"im"in t}};function Ke(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 rn(r,t){let{start:e,stop:n}=r,{step:o,isIndex:a}=r;if(a){if(e===null)throw new Error("Index cannot be null");let u=e<0?t+e:e;if(u<0||u>=t)throw new Error(`Index ${e} is out of bounds for size ${t}`);return{start:u,stop:u+1,step:1,isIndex:!0}}return o>0?(e===null&&(e=0),n===null&&(n=t)):(e===null&&(e=t-1),n===null&&(n=-t-1)),e<0&&(e=t+e),n<0&&(n=t+n),e=Math.max(0,Math.min(e,t)),n=Math.max(-1,Math.min(n,t)),{start:e,stop:n,step:o,isIndex:!1}}var X="float64";function P(r){switch(r){case"float64":return Float64Array;case"float32":return Float32Array;case"complex128":return Float64Array;case"complex64":return Float32Array;case"int64":return BigInt64Array;case"int32":return Int32Array;case"int16":return Int16Array;case"int8":return Int8Array;case"uint64":return BigUint64Array;case"uint32":return Uint32Array;case"uint16":return Uint16Array;case"uint8":return Uint8Array;case"bool":return Uint8Array;default:throw new Error(`Unknown dtype: ${r}`)}}function lt(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 en(r){return r==="int64"||r==="int32"||r==="int16"||r==="int8"||r==="uint64"||r==="uint32"||r==="uint16"||r==="uint8"}function tn(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 Lr(r){if(r==="complex128")return"float64";if(r==="complex64")return"float32";throw new Error(`${r} is not a complex dtype`)}function nn(r){return typeof r=="object"&&r!==null&&"re"in r&&"im"in r}function G(r,t){if(r===t)return r;if(r==="bool")return t;if(t==="bool")return r;if(M(r)||M(t)){if(M(r)&&M(t))return r==="complex128"||t==="complex128"?"complex128":"complex64";let c=M(r)?r:t,l=M(r)?t:r;return c==="complex128"||l==="float64"||l==="int64"||l==="uint64"||l==="int32"||l==="uint32"?"complex128":"complex64"}if(tn(r)||tn(t)){if(r==="float64"||t==="float64")return"float64";if(r==="float32"){let c=t;return c==="int32"||c==="int64"||c==="uint32"||c==="uint64"?"float64":"float32"}if(t==="float32"){let c=r;return c==="int32"||c==="int64"||c==="uint32"||c==="uint64"?"float64":"float32"}return"float32"}let e=r.startsWith("int"),n=t.startsWith("int"),o=r.startsWith("uint"),a=t.startsWith("uint"),u=c=>c.includes("64")?64:c.includes("32")?32:c.includes("16")?16:c.includes("8")?8:0,s=u(r),i=u(t);if(r==="int64"&&t==="uint64"||r==="uint64"&&t==="int64")return"float64";if(e&&a&&s===i){if(s===8)return"int16";if(s===16)return"int32";if(s===32)return"int64"}if(o&&n&&s===i){if(i===8)return"int16";if(i===16)return"int32";if(i===32)return"int64"}if(e&&n||o&&a){let c=Math.max(s,i);return e?c===64?"int64":c===32?"int32":c===16?"int16":"int8":c===64?"uint64":c===32?"uint32":c===16?"uint16":"uint8"}return e&&a?s>i?r:i===8?"int16":i===16?"int32":i===32?"int64":"float64":o&&n?i>s?t:s===8?"int16":s===16?"int32":s===32?"int64":"float64":"float64"}var x=class r{constructor(t,e,n,o,a){this._data=t,this._shape=e,this._strides=n,this._offset=o,this._dtype=a}get shape(){return this._shape}get ndim(){return this._shape.length}get size(){return this._shape.reduce((t,e)=>t*e,1)}get dtype(){return this._dtype}get data(){return this._data}get strides(){return this._strides}get offset(){return this._offset}get isCContiguous(){let t=this._shape,e=this._strides,n=t.length;if(n===0)return!0;if(n===1)return e[0]===1;let o=1;for(let a=n-1;a>=0;a--){if(e[a]!==o)return!1;o*=t[a]}return!0}get isFContiguous(){let t=this._shape,e=this._strides,n=t.length;if(n===0)return!0;if(n===1)return e[0]===1;let o=1;for(let a=0;a<n;a++){if(e[a]!==o)return!1;o*=t[a]}return!0}iget(t){let e=this._shape,n=this._strides,o=e.length,a=M(this._dtype),u;if(o===0)u=this._offset;else{let s=t;u=this._offset;for(let i=0;i<o;i++){let c=1;for(let m=i+1;m<o;m++)c*=e[m];let l=Math.floor(s/c);s=s%c,u+=l*n[i]}}if(a){let s=u*2,i=this._data[s],c=this._data[s+1];return new O(i,c)}return this._data[u]}iset(t,e){let n=this._shape,o=this._strides,a=n.length,u=M(this._dtype),s;if(a===0)s=this._offset;else{let i=t;s=this._offset;for(let c=0;c<a;c++){let l=1;for(let d=c+1;d<a;d++)l*=n[d];let m=Math.floor(i/l);i=i%l,s+=m*o[c]}}if(u){let i=s*2,c,l;e instanceof O?(c=e.re,l=e.im):typeof e=="object"&&e!==null&&"re"in e?(c=e.re,l=e.im??0):(c=Number(e),l=0),this._data[i]=c,this._data[i+1]=l}else this._data[s]=e}get(...t){let e=this._strides,n=this._offset;for(let o=0;o<t.length;o++)n+=t[o]*e[o];if(M(this._dtype)){let o=n*2,a=this._data[o],u=this._data[o+1];return new O(a,u)}return this._data[n]}set(t,e){let n=this._strides,o=this._offset;for(let a=0;a<t.length;a++)o+=t[a]*n[a];if(M(this._dtype)){let a=o*2,u,s;e instanceof O?(u=e.re,s=e.im):typeof e=="object"&&e!==null&&"re"in e?(u=e.re,s=e.im??0):(u=Number(e),s=0),this._data[a]=u,this._data[a+1]=s}else this._data[o]=e}copy(){let t=Array.from(this._shape),e=this._dtype,n=this.size,o=M(e),a=P(e);if(!a)throw new Error(`Cannot copy array with dtype ${e}`);let u=o?n*2:n,s=new a(u);if(this.isCContiguous&&this._offset===0)if(B(e)){let i=this._data,c=s;for(let l=0;l<u;l++)c[l]=i[l]}else s.set(this._data.subarray(0,u));else if(B(e)){let i=s;for(let c=0;c<n;c++)i[c]=this.iget(c)}else if(o){let i=s;for(let c=0;c<n;c++){let l=this.iget(c);i[c*2]=l.re,i[c*2+1]=l.im}}else for(let i=0;i<n;i++)s[i]=this.iget(i);return new r(s,t,r._computeStrides(t),0,e)}static fromData(t,e,n,o,a){let u=o??r._computeStrides(e),s=a??0;return new r(t,e,u,s,n)}static zeros(t,e=X){let n=t.reduce((i,c)=>i*c,1),o=M(e),a=P(e);if(!a)throw new Error(`Cannot create array with dtype ${e}`);let u=o?n*2:n,s=new a(u);return new r(s,t,r._computeStrides(t),0,e)}static ones(t,e=X){let n=t.reduce((i,c)=>i*c,1),o=M(e),a=P(e);if(!a)throw new Error(`Cannot create array with dtype ${e}`);let u=o?n*2:n,s=new a(u);if(B(e))s.fill(BigInt(1));else if(o){let i=s;for(let c=0;c<n;c++)i[c*2]=1,i[c*2+1]=0}else s.fill(1);return new r(s,t,r._computeStrides(t),0,e)}static _computeStrides(t){let e=new Array(t.length),n=1;for(let o=t.length-1;o>=0;o--)e[o]=n,n*=t[o];return e}};function or(r){let t=new Array(r.length),e=1;for(let n=r.length-1;n>=0;n--)t[n]=e,e*=r[n];return t}function yr(r){if(r.length===0)return[];if(r.length===1)return Array.from(r[0]);let t=Math.max(...r.map(n=>n.length)),e=new Array(t);for(let n=0;n<t;n++){let o=1;for(let a of r){let u=a.length-t+n,s=u<0?1:a[u];if(s!==1){if(o===1)o=s;else if(o!==s)return null}}e[n]=o}return e}function Ui(r,t,e){let n=r.length,o=e.length,a=new Array(o).fill(0);for(let u=0;u<n;u++){let s=o-n+u,i=r[u],c=e[s];if(i===c)a[s]=t[u];else if(i===1)a[s]=0;else throw new Error("Invalid broadcast")}return a}function lr(r,t){let e=Ui(r.shape,r.strides,t);return x.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function Rt(...r){let t=yr(r);if(t===null){let e=r.map(n=>`(${n.join(",")})`).join(" ");throw new Error(`shape mismatch: objects cannot be broadcast to a single shape. Mismatch is between ${e}`)}return t}function Ir(r,t){let e=r.length,n=t.length,o=Math.max(e,n),a=new Array(o);for(let u=0;u<o;u++){let s=u<o-e?1:r[u-(o-e)],i=u<o-n?1:t[u-(o-n)];if(s===i)a[u]=s;else if(s===1)a[u]=i;else if(i===1)a[u]=s;else throw new Error(`operands could not be broadcast together with shapes ${JSON.stringify(Array.from(r))} ${JSON.stringify(Array.from(t))}`)}return a}function $i(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=$i(r.shape,r.strides,t);return x.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function J(r,t,e,n){let o=Ir(r.shape,t.shape),a=ft(r,o),u=ft(t,o),s=G(r.dtype,t.dtype),i=x.zeros(o,s),c=i.data,l=i.size;if(B(s)){let m=c;for(let d=0;d<l;d++){let p=a.iget(d),f=u.iget(d),y=p instanceof O?p.re:p,g=f instanceof O?f.re:f,h=typeof y=="bigint"?y:BigInt(Math.round(y)),b=typeof g=="bigint"?g:BigInt(Math.round(g));n==="add"?m[d]=h+b:n==="subtract"?m[d]=h-b:n==="multiply"?m[d]=h*b:n==="divide"?m[d]=h/b:m[d]=BigInt(Math.round(e(Number(h),Number(b))))}}else{let m=B(r.dtype)||B(t.dtype);for(let d=0;d<l;d++){let p=a.iget(d),f=u.iget(d),y=Number(p),g=Number(f);c[d]=e(y,g)}}return i}function fr(r,t,e){let n=Ir(r.shape,t.shape),o=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),d=Number(l),p=Number(m);s[c]=e(d,p)?1:0}return x.fromData(s,n,"bool")}function Y(r,t,e=!0){let n=r.dtype,o=Array.from(r.shape),a=r.size,s=e?n:n!=="float32"&&n!=="float64"?"float64":n,i=x.zeros(o,s),c=i.data,l=r.data;if(B(n))if(B(s)){let m=c;for(let d=0;d<a;d++){let p=Number(l[d]);m[d]=BigInt(Math.round(t(p)))}}else for(let m=0;m<a;m++)c[m]=t(Number(l[m]));else for(let m=0;m<a;m++)c[m]=t(Number(l[m]));return i}function kt(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function ur(r,t){return[r[t*2],r[t*2+1]]}function Dr(r,t,e,n){r[t*2]=e,r[t*2+1]=n}function on(r,t){return typeof t=="number"?Vi(r,t):kt(r,t)?Ri(r,t):J(r,t,(e,n)=>e+n,"add")}function Ri(r,t){let e=G(r.dtype,t.dtype),n=x.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(M(e)){let i=s,c=M(r.dtype),l=M(t.dtype);for(let m=0;m<o;m++){let[d,p]=c?ur(a,m):[Number(a[m]),0],[f,y]=l?ur(u,m):[Number(u[m]),0];Dr(i,m,d+f,p+y)}return n}if(B(e)){let i=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),d=typeof u[l]=="bigint"?u[l]:BigInt(Math.round(Number(u[l])));i[l]=m+d}else{let l=a,m=u;for(let d=0;d<o;d++)i[d]=l[d]+m[d]}}else if(B(r.dtype)||B(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof u[c]=="bigint"?Number(u[c]):u[c];s[c]=l+m}else for(let c=0;c<o;c++)s[c]=a[c]+u[c];return n}function an(r,t){return typeof t=="number"?ji(r,t):kt(r,t)?ki(r,t):J(r,t,(e,n)=>e-n,"subtract")}function ki(r,t){let e=G(r.dtype,t.dtype),n=x.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(M(e)){let i=s,c=M(r.dtype),l=M(t.dtype);for(let m=0;m<o;m++){let[d,p]=c?ur(a,m):[Number(a[m]),0],[f,y]=l?ur(u,m):[Number(u[m]),0];Dr(i,m,d-f,p-y)}return n}if(B(e)){let i=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),d=typeof u[l]=="bigint"?u[l]:BigInt(Math.round(Number(u[l])));i[l]=m-d}else{let l=a,m=u;for(let d=0;d<o;d++)i[d]=l[d]-m[d]}}else if(B(r.dtype)||B(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof u[c]=="bigint"?Number(u[c]):u[c];s[c]=l-m}else for(let c=0;c<o;c++)s[c]=a[c]-u[c];return n}function sn(r,t){return typeof t=="number"?Pi(r,t):kt(r,t)?qi(r,t):J(r,t,(e,n)=>e*n,"multiply")}function qi(r,t){let e=G(r.dtype,t.dtype),n=x.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(M(e)){let i=s,c=M(r.dtype),l=M(t.dtype);for(let m=0;m<o;m++){let[d,p]=c?ur(a,m):[Number(a[m]),0],[f,y]=l?ur(u,m):[Number(u[m]),0],g=d*f-p*y,h=d*y+p*f;Dr(i,m,g,h)}return n}if(B(e)){let i=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),d=typeof u[l]=="bigint"?u[l]:BigInt(Math.round(Number(u[l])));i[l]=m*d}else{let l=a,m=u;for(let d=0;d<o;d++)i[d]=l[d]*m[d]}}else if(B(r.dtype)||B(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof u[c]=="bigint"?Number(u[c]):u[c];s[c]=l*m}else for(let c=0;c<o;c++)s[c]=a[c]*u[c];return n}function un(r,t){if(typeof t=="number")return Li(r,t);let e=M(r.dtype),n=M(t.dtype);if(e||n){let l=G(r.dtype,t.dtype),m=x.zeros(Array.from(r.shape),l),d=m.data,p=r.size,f=r.data,y=t.data;for(let g=0;g<p;g++){let[h,b]=e?ur(f,g):[Number(f[g]),0],[A,S]=n?ur(y,g):[Number(y[g]),0],D=A*A+S*S,w=(h*A+b*S)/D,N=(b*A-h*S)/D;Dr(d,g,w,N)}return m}let o=r.dtype==="float64",a=t.dtype==="float64",u=r.dtype==="float32",s=t.dtype==="float32";if(o||a){let l=o?r:Er(r,"float64"),m=a?t:Er(t,"float64");return J(l,m,(d,p)=>d/p,"divide")}if(u||s){let l=u?r:Er(r,"float32"),m=s?t:Er(t,"float32");return J(l,m,(d,p)=>d/p,"divide")}let i=Er(r,"float64"),c=Er(t,"float64");return J(i,c,(l,m)=>l/m,"divide")}function Er(r,t){let e=x.zeros(Array.from(r.shape),t),n=r.size,o=r.data,a=e.data;for(let u=0;u<n;u++)a[u]=Number(o[u]);return e}function Vi(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=x.zeros(n,e),s=u.data;if(M(e)){let i=o,c=s;for(let l=0;l<a;l++){let[m,d]=ur(i,l);Dr(c,l,m+t,d)}}else if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]+l}else for(let i=0;i<a;i++)s[i]=Number(o[i])+t;return u}function ji(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=x.zeros(n,e),s=u.data;if(M(e)){let i=o,c=s;for(let l=0;l<a;l++){let[m,d]=ur(i,l);Dr(c,l,m-t,d)}}else if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]-l}else for(let i=0;i<a;i++)s[i]=Number(o[i])-t;return u}function Pi(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=x.zeros(n,e),s=u.data;if(M(e)){let i=o,c=s;for(let l=0;l<a;l++){let[m,d]=ur(i,l);Dr(c,l,m*t,d*t)}}else if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]*l}else for(let i=0;i<a;i++)s[i]=Number(o[i])*t;return u}function Li(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size;if(M(e)){let l=x.zeros(n,e),m=o,d=l.data;for(let p=0;p<a;p++){let[f,y]=ur(m,p);Dr(d,p,f/t,y/t)}return l}let s=e!=="float32"&&e!=="float64"?"float64":e,i=x.zeros(n,s),c=i.data;if(B(e))for(let l=0;l<a;l++)c[l]=Number(o[l])/t;else for(let l=0;l<a;l++)c[l]=Number(o[l])/t;return i}function cn(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size;if(M(t)){let s=Lr(t),i=x.zeros(e,s),c=i.data,l=n;for(let m=0;m<o;m++){let d=l[m*2],p=l[m*2+1];c[m]=Math.sqrt(d*d+p*p)}return i}let a=x.zeros(e,t),u=a.data;if(B(t)){let s=n,i=u;for(let c=0;c<o;c++){let l=s[c];i[c]=l<0n?-l:l}}else for(let s=0;s<o;s++)u[s]=Math.abs(Number(n[s]));return a}function ln(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=x.zeros(e,t),u=a.data;if(M(t)){let s=n,i=u;for(let c=0;c<o;c++){let[l,m]=ur(s,c);Dr(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 fn(r){q(r.dtype,"sign","Sign is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=x.zeros(e,t),u=a.data;if(B(t)){let s=n,i=u;for(let c=0;c<o;c++){let l=s[c];i[c]=l>0n?1n:l<0n?-1n:0n}}else for(let s=0;s<o;s++){let i=Number(n[s]);u[s]=i>0?1:i<0?-1:0}return a}function 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"?Zi(r,t):J(r,t,(e,n)=>(e%n+n)%n,"mod")}function Zi(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=x.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++){let d=i[m];c[m]=(d%l+l)%l}}else for(let i=0;i<a;i++){let c=Number(o[i]);s[i]=(c%t+t)%t}return u}function qt(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"?Gi(r,t):J(r,t,(e,n)=>Math.floor(e/n),"floor_divide")}function Gi(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=x.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]/l}else for(let i=0;i<a;i++)s[i]=Math.floor(Number(o[i])/t);return u}function mn(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=x.zeros(e,t),u=a.data;if(M(t)){let s=n,i=u;for(let c=0;c<o;c++)i[c*2]=s[c*2],i[c*2+1]=s[c*2+1]}else for(let s=0;s<o;s++)u[s]=n[s];return a}function yn(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size;if(M(t)){let c=x.zeros(e,t),l=n,m=c.data;for(let d=0;d<o;d++){let p=l[d*2],f=l[d*2+1],y=p*p+f*f;m[d*2]=p/y,m[d*2+1]=-f/y}return c}let u=t!=="float32"&&t!=="float64"?"float64":t,s=x.zeros(e,u),i=s.data;if(B(t))for(let c=0;c<o;c++)i[c]=1/Number(n[c]);else for(let c=0;c<o;c++)i[c]=1/Number(n[c]);return s}function pn(r){let t=r.dtype;q(t,"cbrt","cbrt is not supported for complex numbers.");let e=Array.from(r.shape),n=r.data,o=r.size,u=t!=="float32"&&t!=="float64"?"float64":t,s=x.zeros(e,u),i=s.data;for(let c=0;c<o;c++)i[c]=Math.cbrt(Number(n[c]));return s}function dn(r){let t=r.dtype;q(t,"fabs","fabs is only for real numbers. Use absolute() for complex.");let e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",u=x.zeros(e,a),s=u.data;for(let i=0;i<o;i++)s[i]=Math.abs(Number(n[i]));return u}function gn(r,t){let e=qt(r,t),n=mt(r,t);return[e,n]}function An(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=x.zeros(e,t),u=a.data;if(M(t)){let s=n,i=u;for(let c=0;c<o;c++){let l=s[c*2],m=s[c*2+1];i[c*2]=l*l-m*m,i[c*2+1]=2*l*m}}else if(B(t)){let s=n,i=u;for(let c=0;c<o;c++)i[c]=s[c]*s[c]}else for(let s=0;s<o;s++){let i=Number(n[s]);u[s]=i*i}return a}function bn(r,t){return mt(r,t)}function hn(r,t){q(r.dtype,"heaviside","Heaviside step function is not defined for complex numbers."),typeof t!="number"&&q(t.dtype,"heaviside","Heaviside step function is not defined for complex numbers.");let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",u=x.zeros(n,a),s=u.data;if(typeof t=="number")for(let i=0;i<o;i++){let c=Number(r.data[i]);c<0?s[i]=0:c===0?s[i]=t:s[i]=1}else{let i=t.data,c=t.shape;if(n.every((l,m)=>l===c[m]))for(let l=0;l<o;l++){let m=Number(r.data[l]);m<0?s[l]=0:m===0?s[l]=Number(i[l]):s[l]=1}else for(let l=0;l<o;l++){let m=Number(r.data[l]),d=l%t.size;m<0?s[l]=0:m===0?s[l]=Number(i[d]):s[l]=1}}return u}function Sn(r,t){let e=r.dtype;if(M(e)){let n=r.data,o=r.size,a=x.zeros(Array.from(r.shape),e),u=a.data;if(typeof t=="number")for(let s=0;s<o;s++){let i=n[s*2],c=n[s*2+1],l=Math.hypot(i,c),m=Math.atan2(c,i),d=Math.pow(l,t),p=m*t;u[s*2]=d*Math.cos(p),u[s*2+1]=d*Math.sin(p)}else{let s=t.data,i=M(t.dtype);for(let c=0;c<o;c++){let l=n[c*2],m=n[c*2+1],d,p;i?(d=s[c*2],p=s[c*2+1]):(d=Number(s[c]),p=0);let f=Math.hypot(l,m),y=Math.atan2(m,l),g=Math.log(f),h=y,b=d*g-p*h,A=d*h+p*g,S=Math.exp(b);u[c*2]=S*Math.cos(A),u[c*2+1]=S*Math.sin(A)}}return a}if(typeof t=="number"){let n=x.zeros(Array.from(r.shape),"float64"),o=n.data,a=r.data,u=r.size;for(let s=0;s<u;s++)o[s]=Math.pow(Number(a[s]),t);return n}return J(r,t,(n,o)=>Math.pow(n,o),"float_power")}function Dn(r,t){if(q(r.dtype,"fmod","fmod is not defined for complex numbers."),typeof t!="number"&&q(t.dtype,"fmod","fmod is not defined for complex numbers."),typeof t=="number"){let e=r.copy(),n=e.data,o=r.size;for(let a=0;a<o;a++){let u=Number(n[a]);n[a]=u-Math.trunc(u/t)*t}return e}return J(r,t,(e,n)=>e-Math.trunc(e/n)*n,"fmod")}function xn(r){q(r.dtype,"frexp","frexp is not defined for complex numbers.");let t=x.zeros(Array.from(r.shape),"float64"),e=x.zeros(Array.from(r.shape),"int32"),n=t.data,o=e.data,a=r.data,u=r.size;for(let s=0;s<u;s++){let i=Number(a[s]);if(i===0||!isFinite(i))n[s]=i,o[s]=0;else{let c=Math.floor(Math.log2(Math.abs(i)))+1,l=i/Math.pow(2,c);n[s]=l,o[s]=c}}return[t,e]}function Nn(r,t){q(r.dtype,"gcd","GCD is only defined for integers."),typeof t!="number"&&q(t.dtype,"gcd","GCD is only defined for integers.");let e=(i,c)=>{for(i=Math.abs(Math.trunc(i)),c=Math.abs(Math.trunc(c));c!==0;){let l=c;c=i%c,i=l}return i};if(typeof t=="number"){let i=x.zeros(Array.from(r.shape),"int32"),c=i.data,l=r.data,m=r.size,d=Math.abs(Math.trunc(t));for(let p=0;p<m;p++)c[p]=e(Number(l[p]),d);return i}let n=J(r,t,e,"gcd"),o=x.zeros(Array.from(n.shape),"int32"),a=o.data,u=n.data,s=n.size;for(let i=0;i<s;i++)a[i]=Math.round(Number(u[i]));return o}function wn(r,t){q(r.dtype,"lcm","LCM is only defined for integers."),typeof t!="number"&&q(t.dtype,"lcm","LCM is only defined for integers.");let e=(c,l)=>{for(c=Math.abs(Math.trunc(c)),l=Math.abs(Math.trunc(l));l!==0;){let m=l;l=c%l,c=m}return c},n=(c,l)=>(c=Math.abs(Math.trunc(c)),l=Math.abs(Math.trunc(l)),c===0||l===0?0:c*l/e(c,l));if(typeof t=="number"){let c=x.zeros(Array.from(r.shape),"int32"),l=c.data,m=r.data,d=r.size,p=Math.abs(Math.trunc(t));for(let f=0;f<d;f++)l[f]=n(Number(m[f]),p);return c}let o=J(r,t,n,"lcm"),a=x.zeros(Array.from(o.shape),"int32"),u=a.data,s=o.data,i=o.size;for(let c=0;c<i;c++)u[c]=Math.round(Number(s[c]));return a}function In(r,t){if(q(r.dtype,"ldexp","ldexp is not defined for complex numbers."),typeof t!="number"&&q(t.dtype,"ldexp","ldexp is not defined for complex numbers."),typeof t=="number"){let e=x.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.data,a=r.size,u=Math.pow(2,t);for(let s=0;s<a;s++)n[s]=Number(o[s])*u;return e}return J(r,t,(e,n)=>e*Math.pow(2,n),"ldexp")}function zn(r){q(r.dtype,"modf","modf is not defined for complex numbers.");let t=x.zeros(Array.from(r.shape),"float64"),e=x.zeros(Array.from(r.shape),"float64"),n=t.data,o=e.data,a=r.data,u=r.size;for(let s=0;s<u;s++){let i=Number(a[s]),c=Math.trunc(i);o[s]=c,n[s]=i-c}return[t,e]}function Fr(r,t){return[r[t*2],r[t*2+1]]}function _n(r,t){if(M(r.dtype))return Fr(r.data,t);let e=r.iget(t);return e instanceof O?[e.re,e.im]:[Number(e),0]}function Tr(r,t,e){let n=yr([Array.from(r.shape),Array.from(t.shape)]);if(!n)throw new Error("Cannot broadcast arrays together");let o=lr(r,n),a=lr(t,n),u=n.reduce((i,c)=>i*c,1),s=new Uint8Array(u);for(let i=0;i<u;i++){let[c,l]=_n(o,i),[m,d]=_n(a,i);s[i]=e(c,l,m,d)?1:0}return x.fromData(s,n,"bool")}function Fn(r,t){return typeof t=="number"?Yi(r,t):M(r.dtype)||M(t.dtype)?Tr(r,t,(e,n,o,a)=>e!==o?e>o:n>a):fr(r,t,(e,n)=>e>n)}function Mn(r,t){return typeof t=="number"?Hi(r,t):M(r.dtype)||M(t.dtype)?Tr(r,t,(e,n,o,a)=>e!==o?e>=o:n>=a):fr(r,t,(e,n)=>e>=n)}function Bn(r,t){return typeof t=="number"?Ji(r,t):M(r.dtype)||M(t.dtype)?Tr(r,t,(e,n,o,a)=>e!==o?e<o:n<a):fr(r,t,(e,n)=>e<n)}function vn(r,t){return typeof t=="number"?Xi(r,t):M(r.dtype)||M(t.dtype)?Tr(r,t,(e,n,o,a)=>e!==o?e<=o:n<=a):fr(r,t,(e,n)=>e<=n)}function En(r,t){return typeof t=="number"?Qi(r,t):M(r.dtype)||M(t.dtype)?Tr(r,t,(e,n,o,a)=>e===o&&n===a):fr(r,t,(e,n)=>e===n)}function Tn(r,t){return typeof t=="number"?Ki(r,t):M(r.dtype)||M(t.dtype)?Tr(r,t,(e,n,o,a)=>e!==o||n!==a):fr(r,t,(e,n)=>e!==n)}function Vt(r,t,e=1e-5,n=1e-8){return typeof t=="number"?ru(r,t,e,n):fr(r,t,(o,a)=>{let u=Math.abs(o-a),s=n+e*Math.abs(a);return u<=s})}function On(r,t,e=1e-5,n=1e-8){let o=Vt(r,t,e,n),a=o.data;for(let u=0;u<o.size;u++)if(a[u]===0)return!1;return!0}function Cn(r,t){let e=[Array.from(r.shape),Array.from(t.shape)],n=yr(e);if(n===null)return!1;let o=lr(r,n),a=lr(t,n),u=n.length,s=n.reduce((l,m)=>l*m,1),i=B(o.dtype),c=B(a.dtype);for(let l=0;l<s;l++){let m=l,d=new Array(u);for(let y=u-1;y>=0;y--)d[y]=m%n[y],m=Math.floor(m/n[y]);let p=o.get(...d),f=a.get(...d);if(i||c){let y=typeof p=="bigint"?p:BigInt(Number(p)),g=typeof f=="bigint"?f:BigInt(Number(f));if(y!==g)return!1}else if(p!==f)return!1}return!0}function Yi(r,t){let e=new Uint8Array(r.size),n=r.data;if(M(r.dtype)){let o=n;for(let a=0;a<r.size;a++){let[u,s]=Fr(o,a);e[a]=(u!==t?u>t:s>0)?1:0}}else for(let o=0;o<r.size;o++)e[o]=n[o]>t?1:0;return x.fromData(e,Array.from(r.shape),"bool")}function Hi(r,t){let e=new Uint8Array(r.size),n=r.data;if(M(r.dtype)){let o=n;for(let a=0;a<r.size;a++){let[u,s]=Fr(o,a);e[a]=(u!==t?u>=t:s>=0)?1:0}}else for(let o=0;o<r.size;o++)e[o]=n[o]>=t?1:0;return x.fromData(e,Array.from(r.shape),"bool")}function Ji(r,t){let e=new Uint8Array(r.size),n=r.data;if(M(r.dtype)){let o=n;for(let a=0;a<r.size;a++){let[u,s]=Fr(o,a);e[a]=(u!==t?u<t:s<0)?1:0}}else for(let o=0;o<r.size;o++)e[o]=n[o]<t?1:0;return x.fromData(e,Array.from(r.shape),"bool")}function Xi(r,t){let e=new Uint8Array(r.size),n=r.data;if(M(r.dtype)){let o=n;for(let a=0;a<r.size;a++){let[u,s]=Fr(o,a);e[a]=(u!==t?u<=t:s<=0)?1:0}}else for(let o=0;o<r.size;o++)e[o]=n[o]<=t?1:0;return x.fromData(e,Array.from(r.shape),"bool")}function Qi(r,t){let e=new Uint8Array(r.size),n=r.data,o=r.dtype;if(M(o)){let a=n;for(let u=0;u<r.size;u++){let[s,i]=Fr(a,u);e[u]=s===t&&i===0?1:0}}else if(B(o)){let a=BigInt(Math.round(t)),u=n;for(let s=0;s<r.size;s++)e[s]=u[s]===a?1:0}else for(let a=0;a<r.size;a++)e[a]=n[a]===t?1:0;return x.fromData(e,Array.from(r.shape),"bool")}function Ki(r,t){let e=new Uint8Array(r.size),n=r.data,o=r.dtype;if(M(o)){let a=n;for(let u=0;u<r.size;u++){let[s,i]=Fr(a,u);e[u]=s!==t||i!==0?1:0}}else for(let a=0;a<r.size;a++)e[a]=n[a]!==t?1:0;return x.fromData(e,Array.from(r.shape),"bool")}function ru(r,t,e,n){let o=new Uint8Array(r.size),a=r.data,u=r.dtype;if(B(u)){let s=a;for(let i=0;i<r.size;i++){let c=Number(s[i]),l=Math.abs(c-t),m=n+e*Math.abs(t);o[i]=l<=m?1:0}}else for(let s=0;s<r.size;s++){let i=Number(a[s]),c=Math.abs(i-t),l=n+e*Math.abs(t);o[s]=c<=l?1:0}return x.fromData(o,Array.from(r.shape),"bool")}function U(r,t){let e=0,n=1;for(let o=r.length-1;o>=0;o--)e+=r[o]*n,n*=t[o];return e}function $(r,t,e,n){let o=n.length,a=new Array(o),u=Array.from(n).filter((i,c)=>c!==t),s=r;for(let i=u.length-1;i>=0;i--)a[i>=t?i+1:i]=s%u[i],s=Math.floor(s/u[i]);return a[t]=e,a}function Zr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,s=r.data;if(t===void 0)if(M(n)){let f=s,y=0,g=0;for(let h=0;h<u;h++)y+=f[h*2],g+=f[h*2+1];return new O(y,g)}else if(B(n)){let f=s,y=BigInt(0);for(let g=0;g<u;g++)y+=f[g];return Number(y)}else{let f=0;for(let y=0;y<u;y++)f+=Number(s[y]);return f}let i=t;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,y)=>y!==i);if(c.length===0)return Zr(r);let l=x.zeros(c,n),m=l.data,d=o[i],p=c.reduce((f,y)=>f*y,1);if(M(n)){let f=s,y=m;for(let g=0;g<p;g++){let h=0,b=0;for(let A=0;A<d;A++){let S=$(g,i,A,o),D=U(S,o);h+=f[D*2],b+=f[D*2+1]}y[g*2]=h,y[g*2+1]=b}}else if(B(n)){let f=s,y=m;for(let g=0;g<p;g++){let h=BigInt(0);for(let b=0;b<d;b++){let A=$(g,i,b,o),S=U(A,o);h+=f[S]}y[g]=h}}else for(let f=0;f<p;f++){let y=0;for(let g=0;g<d;g++){let h=$(f,i,g,o),b=U(h,o);y+=Number(s[b])}m[f]=y}if(e){let f=[...o];return f[i]=1,x.fromData(m,f,n)}return l}function yt(r,t,e=!1){let n=r.dtype,o=r.shape;if(t===void 0){let d=Zr(r);return d instanceof O?new O(d.re/r.size,d.im/r.size):d/r.size}let a=t;if(a<0&&(a=o.length+a),a<0||a>=o.length)throw new Error(`axis ${t} is out of bounds for array of dimension ${o.length}`);let u=Zr(r,t,e);if(typeof u=="number")return u/o[a];if(u instanceof O)return new O(u.re/o[a],u.im/o[a]);let s=o[a],i=n;M(n)?i=n:(B(n)||n.startsWith("int")||n.startsWith("uint"))&&(i="float64");let c=x.zeros(Array.from(u.shape),i),l=c.data,m=u.data;if(M(n)){let d=m,p=l,f=u.size;for(let y=0;y<f;y++)p[y*2]=d[y*2]/s,p[y*2+1]=d[y*2+1]/s}else if(B(n)){let d=m;for(let p=0;p<l.length;p++)l[p]=Number(d[p])/s}else for(let d=0;d<l.length;d++)l[d]=Number(m[d])/s;return c}function Or(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,s=r.data;if(M(n)){let f=s;if(t===void 0){if(u===0)throw new Error("max of empty array");let D=f[0],w=f[1];for(let N=1;N<u;N++){let I=f[N*2],z=f[N*2+1];if(isNaN(I)||isNaN(z))return new O(NaN,NaN);(I>D||I===D&&z>w)&&(D=I,w=z)}return isNaN(D)||isNaN(w)?new O(NaN,NaN):new O(D,w)}let y=t;if(y<0&&(y=a+y),y<0||y>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let g=Array.from(o).filter((D,w)=>w!==y);if(g.length===0)return Or(r);let h=x.zeros(g,n),b=h.data,A=o[y],S=g.reduce((D,w)=>D*w,1);for(let D=0;D<S;D++){let w=$(D,y,0,o),N=U(w,o),I=f[N*2],z=f[N*2+1];for(let F=1;F<A;F++){let _=$(D,y,F,o),E=U(_,o),T=f[E*2],C=f[E*2+1];if(isNaN(T)||isNaN(C)){I=NaN,z=NaN;break}(T>I||T===I&&C>z)&&(I=T,z=C)}b[D*2]=I,b[D*2+1]=z}if(e){let D=[...o];return D[y]=1,x.fromData(b,D,n)}return h}if(t===void 0){if(u===0)throw new Error("max of empty array");let f=s[0];for(let y=1;y<u;y++)s[y]>f&&(f=s[y]);return Number(f)}let i=t;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,y)=>y!==i);if(c.length===0)return Or(r);let l=x.zeros(c,n),m=l.data,d=o[i],p=c.reduce((f,y)=>f*y,1);if(B(n)){let f=s,y=m;for(let g=0;g<p;g++){let h=$(g,i,0,o),b=U(h,o),A=f[b];for(let S=1;S<d;S++){let D=$(g,i,S,o),w=U(D,o),N=f[w];N>A&&(A=N)}y[g]=A}}else for(let f=0;f<p;f++){let y=-1/0;for(let g=0;g<d;g++){let h=$(f,i,g,o),b=U(h,o),A=Number(s[b]);A>y&&(y=A)}m[f]=y}if(e){let f=[...o];return f[i]=1,x.fromData(m,f,n)}return l}function jt(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,s=r.data;if(t===void 0)if(M(n)){let f=s,y=1,g=0;for(let h=0;h<u;h++){let b=f[h*2],A=f[h*2+1],S=y*b-g*A,D=y*A+g*b;y=S,g=D}return new O(y,g)}else if(B(n)){let f=s,y=BigInt(1);for(let g=0;g<u;g++)y*=f[g];return Number(y)}else{let f=1;for(let y=0;y<u;y++)f*=Number(s[y]);return f}let i=t;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,y)=>y!==i);if(c.length===0)return jt(r);let l=x.zeros(c,n),m=l.data,d=o[i],p=c.reduce((f,y)=>f*y,1);if(M(n)){let f=s,y=m;for(let g=0;g<p;g++){let h=1,b=0;for(let A=0;A<d;A++){let S=$(g,i,A,o),D=U(S,o),w=f[D*2],N=f[D*2+1],I=h*w-b*N,z=h*N+b*w;h=I,b=z}y[g*2]=h,y[g*2+1]=b}}else if(B(n)){let f=s,y=m;for(let g=0;g<p;g++){let h=BigInt(1);for(let b=0;b<d;b++){let A=$(g,i,b,o),S=U(A,o);h*=f[S]}y[g]=h}}else for(let f=0;f<p;f++){let y=1;for(let g=0;g<d;g++){let h=$(f,i,g,o),b=U(h,o);y*=Number(s[b])}m[f]=y}if(e){let f=[...o];return f[i]=1,x.fromData(m,f,n)}return l}function Cr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,s=r.data;if(M(n)){let f=s;if(t===void 0){if(u===0)throw new Error("min of empty array");let D=f[0],w=f[1];for(let N=1;N<u;N++){let I=f[N*2],z=f[N*2+1];if(isNaN(I)||isNaN(z))return new O(NaN,NaN);(I<D||I===D&&z<w)&&(D=I,w=z)}return isNaN(D)||isNaN(w)?new O(NaN,NaN):new O(D,w)}let y=t;if(y<0&&(y=a+y),y<0||y>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let g=Array.from(o).filter((D,w)=>w!==y);if(g.length===0)return Cr(r);let h=x.zeros(g,n),b=h.data,A=o[y],S=g.reduce((D,w)=>D*w,1);for(let D=0;D<S;D++){let w=$(D,y,0,o),N=U(w,o),I=f[N*2],z=f[N*2+1];for(let F=1;F<A;F++){let _=$(D,y,F,o),E=U(_,o),T=f[E*2],C=f[E*2+1];if(isNaN(T)||isNaN(C)){I=NaN,z=NaN;break}(T<I||T===I&&C<z)&&(I=T,z=C)}b[D*2]=I,b[D*2+1]=z}if(e){let D=[...o];return D[y]=1,x.fromData(b,D,n)}return h}if(t===void 0){if(u===0)throw new Error("min of empty array");let f=s[0];for(let y=1;y<u;y++)s[y]<f&&(f=s[y]);return Number(f)}let i=t;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,y)=>y!==i);if(c.length===0)return Cr(r);let l=x.zeros(c,n),m=l.data,d=o[i],p=c.reduce((f,y)=>f*y,1);if(B(n)){let f=s,y=m;for(let g=0;g<p;g++){let h=$(g,i,0,o),b=U(h,o),A=f[b];for(let S=1;S<d;S++){let D=$(g,i,S,o),w=U(D,o),N=f[w];N<A&&(A=N)}y[g]=A}}else for(let f=0;f<p;f++){let y=1/0;for(let g=0;g<d;g++){let h=$(f,i,g,o),b=U(h,o),A=Number(s[b]);A<y&&(y=A)}m[f]=y}if(e){let f=[...o];return f[i]=1,x.fromData(m,f,n)}return l}function zr(r,t,e,n){return r<e?-1:r>e?1:t<n?-1:t>n?1:0}function Pt(r,t){let e=r.dtype,n=M(e),o=r.shape,a=o.length,u=r.size,s=r.data;if(t===void 0){if(u===0)throw new Error("argmin of empty array");if(n){let g=s,h=g[0],b=g[1],A=0;for(let S=1;S<u;S++){let D=g[S*2],w=g[S*2+1];zr(D,w,h,b)<0&&(h=D,b=w,A=S)}return A}let f=s[0],y=0;for(let g=1;g<u;g++)s[g]<f&&(f=s[g],y=g);return y}let i=t;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,y)=>y!==i);if(c.length===0)return Pt(r);let l=x.zeros(c,"int32"),m=l.data,d=o[i],p=c.reduce((f,y)=>f*y,1);if(n){let f=s;for(let y=0;y<p;y++){let g=$(y,i,0,o),h=U(g,o),b=f[h*2],A=f[h*2+1],S=0;for(let D=1;D<d;D++){let w=$(y,i,D,o),N=U(w,o),I=f[N*2],z=f[N*2+1];zr(I,z,b,A)<0&&(b=I,A=z,S=D)}m[y]=S}}else if(B(e)){let f=s;for(let y=0;y<p;y++){let g=$(y,i,0,o),h=U(g,o),b=f[h],A=0;for(let S=1;S<d;S++){let D=$(y,i,S,o),w=U(D,o),N=f[w];N<b&&(b=N,A=S)}m[y]=A}}else for(let f=0;f<p;f++){let y=1/0,g=0;for(let h=0;h<d;h++){let b=$(f,i,h,o),A=U(b,o),S=Number(s[A]);S<y&&(y=S,g=h)}m[f]=g}return l}function Lt(r,t){let e=r.dtype,n=M(e),o=r.shape,a=o.length,u=r.size,s=r.data;if(t===void 0){if(u===0)throw new Error("argmax of empty array");if(n){let g=s,h=g[0],b=g[1],A=0;for(let S=1;S<u;S++){let D=g[S*2],w=g[S*2+1];zr(D,w,h,b)>0&&(h=D,b=w,A=S)}return A}let f=s[0],y=0;for(let g=1;g<u;g++)s[g]>f&&(f=s[g],y=g);return y}let i=t;if(i<0&&(i=a+i),i<0||i>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,y)=>y!==i);if(c.length===0)return Lt(r);let l=x.zeros(c,"int32"),m=l.data,d=o[i],p=c.reduce((f,y)=>f*y,1);if(n){let f=s;for(let y=0;y<p;y++){let g=$(y,i,0,o),h=U(g,o),b=f[h*2],A=f[h*2+1],S=0;for(let D=1;D<d;D++){let w=$(y,i,D,o),N=U(w,o),I=f[N*2],z=f[N*2+1];zr(I,z,b,A)>0&&(b=I,A=z,S=D)}m[y]=S}}else if(B(e)){let f=s;for(let y=0;y<p;y++){let g=$(y,i,0,o),h=U(g,o),b=f[h],A=0;for(let S=1;S<d;S++){let D=$(y,i,S,o),w=U(D,o),N=f[w];N>b&&(b=N,A=S)}m[y]=A}}else for(let f=0;f<p;f++){let y=-1/0,g=0;for(let h=0;h<d;h++){let b=$(f,i,h,o),A=U(b,o),S=Number(s[A]);S>y&&(y=S,g=h)}m[f]=g}return l}function Zt(r,t,e=0,n=!1){let o=r.dtype,a=r.shape,u=a.length,s=r.size,i=r.data,c=yt(r,t,n);if(t===void 0){if(M(o)){let S=i,D=c,w=0;for(let N=0;N<s;N++){let I=S[N*2],z=S[N*2+1],F=I-D.re,_=z-D.im;w+=F*F+_*_}return w/(s-e)}let b=c,A=0;for(let S=0;S<s;S++){let D=Number(i[S])-b;A+=D*D}return A/(s-e)}let l=t;if(l<0&&(l=u+l),l<0||l>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let m=a[l],d=c,p=d.data,f=n?d.shape:Array.from(a).filter((b,A)=>A!==l),y=x.zeros(Array.from(f),"float64"),g=y.data,h=f.reduce((b,A)=>b*A,1);if(M(o)){let b=i,A=p;for(let S=0;S<h;S++){let D=0,w=A[S*2],N=A[S*2+1];for(let I=0;I<m;I++){let z=$(S,l,I,a),F=U(z,a),_=b[F*2],E=b[F*2+1],T=_-w,C=E-N;D+=T*T+C*C}g[S]=D/(m-e)}}else for(let b=0;b<h;b++){let A=0,S=Number(p[b]);for(let D=0;D<m;D++){let w=$(b,l,D,a),N=U(w,a),I=Number(i[N])-S;A+=I*I}g[b]=A/(m-e)}return y}function Un(r,t,e=0,n=!1){let o=Zt(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=x.zeros(Array.from(o.shape),"float64"),u=o.data,s=a.data;for(let i=0;i<u.length;i++)s[i]=Math.sqrt(Number(u[i]));return a}function Gt(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,u=r.data;if(t===void 0){for(let p=0;p<a;p++)if(!u[p])return!1;return!0}let s=t;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let i=Array.from(n).filter((p,f)=>f!==s);if(i.length===0)return Gt(r);let c=x.zeros(i,"bool"),l=c.data,m=n[s],d=i.reduce((p,f)=>p*f,1);for(let p=0;p<d;p++){let f=!0;for(let y=0;y<m;y++){let g=$(p,s,y,n),h=U(g,n);if(!u[h]){f=!1;break}}l[p]=f?1:0}if(e){let p=[...n];return p[s]=1,x.fromData(l,p,"bool")}return c}function Wt(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,u=r.data;if(t===void 0){for(let p=0;p<a;p++)if(u[p])return!0;return!1}let s=t;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let i=Array.from(n).filter((p,f)=>f!==s);if(i.length===0)return Wt(r);let c=x.zeros(i,"bool"),l=c.data,m=n[s],d=i.reduce((p,f)=>p*f,1);for(let p=0;p<d;p++){let f=!1;for(let y=0;y<m;y++){let g=$(p,s,y,n),h=U(g,n);if(u[h]){f=!0;break}}l[p]=f?1:0}if(e){let p=[...n];return p[s]=1,x.fromData(l,p,"bool")}return c}function Yt(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let p=a,f=r.size;if(t===void 0){let N=x.zeros([f],e),I=N.data,z=0,F=0;for(let _=0;_<f;_++)z+=p[_*2],F+=p[_*2+1],I[_*2]=z,I[_*2+1]=F;return N}let y=t;if(y<0&&(y=o+y),y<0||y>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let g=x.zeros([...n],e),h=g.data,b=n[y],A=[],S=1;for(let N=o-1;N>=0;N--)A.unshift(S),S*=n[N];let D=r.size,w=A[y];for(let N=0;N<D;N++)Math.floor(N/w)%b===0?(h[N*2]=p[N*2],h[N*2+1]=p[N*2+1]):(h[N*2]=h[(N-w)*2]+p[N*2],h[N*2+1]=h[(N-w)*2+1]+p[N*2+1]);return g}if(t===void 0){let p=r.size,f=new Float64Array(p),y=0;for(let g=0;g<p;g++)y+=Number(a[g]),f[g]=y;return x.fromData(f,[p],"float64")}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=new Float64Array(r.size),i=n[u],c=[],l=1;for(let p=o-1;p>=0;p--)c.unshift(l),l*=n[p];let m=r.size,d=c[u];for(let p=0;p<m;p++)Math.floor(p/d)%i===0?s[p]=Number(a[p]):s[p]=s[p-d]+Number(a[p]);return x.fromData(s,[...n],"float64")}function Ht(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let p=a,f=r.size;if(t===void 0){let N=x.zeros([f],e),I=N.data,z=1,F=0;for(let _=0;_<f;_++){let E=p[_*2],T=p[_*2+1],C=z*E-F*T,k=z*T+F*E;z=C,F=k,I[_*2]=z,I[_*2+1]=F}return N}let y=t;if(y<0&&(y=o+y),y<0||y>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let g=x.zeros([...n],e),h=g.data,b=n[y],A=[],S=1;for(let N=o-1;N>=0;N--)A.unshift(S),S*=n[N];let D=r.size,w=A[y];for(let N=0;N<D;N++)if(Math.floor(N/w)%b===0)h[N*2]=p[N*2],h[N*2+1]=p[N*2+1];else{let z=h[(N-w)*2],F=h[(N-w)*2+1],_=p[N*2],E=p[N*2+1];h[N*2]=z*_-F*E,h[N*2+1]=z*E+F*_}return g}if(t===void 0){let p=r.size,f=new Float64Array(p),y=1;for(let g=0;g<p;g++)y*=Number(a[g]),f[g]=y;return x.fromData(f,[p],"float64")}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=new Float64Array(r.size),i=n[u],c=[],l=1;for(let p=o-1;p>=0;p--)c.unshift(l),l*=n[p];let m=r.size,d=c[u];for(let p=0;p<m;p++)Math.floor(p/d)%i===0?s[p]=Number(a[p]):s[p]=s[p-d]*Number(a[p]);return x.fromData(s,[...n],"float64")}function Jt(r,t,e=!1){let n=r.dtype;if(M(n)){let m=Or(r,t,e),d=Cr(r,t,e);if(m instanceof O&&d instanceof O)return new O(m.re-d.re,m.im-d.im);let p=m,f=d,y=p.data,g=f.data,h=new Float64Array(p.size*2);for(let b=0;b<p.size;b++)h[b*2]=y[b*2]-g[b*2],h[b*2+1]=y[b*2+1]-g[b*2+1];return x.fromData(h,[...p.shape],n)}let o=Or(r,t,e),a=Cr(r,t,e);if(typeof o=="number"&&typeof a=="number")return o-a;let u=o,s=a,i=u.data,c=s.data,l=new Float64Array(u.size);for(let m=0;m<u.size;m++)l[m]=Number(i[m])-Number(c[m]);return x.fromData(l,[...u.shape],"float64")}function Xt(r,t,e=!1){return $r(r,.5,t,e)}function Qt(r,t,e,n=!1){return $r(r,t/100,e,n)}function $r(r,t,e,n=!1){if(q(r.dtype,"quantile","Complex numbers are not orderable."),t<0||t>1)throw new Error("Quantile must be between 0 and 1");let o=r.shape,a=o.length,u=r.data;if(e===void 0){let p=[];for(let A=0;A<r.size;A++)p.push(Number(u[A]));p.sort((A,S)=>A-S);let f=p.length,y=t*(f-1),g=Math.floor(y),h=Math.ceil(y);if(g===h)return p[g];let b=y-g;return p[g]*(1-b)+p[h]*b}let s=e;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);let i=Array.from(o).filter((p,f)=>f!==s);if(i.length===0)return $r(r,t);let c=i.reduce((p,f)=>p*f,1),l=o[s],m=new Float64Array(c);for(let p=0;p<c;p++){let f=[];for(let A=0;A<l;A++){let S=$(p,s,A,o),D=U(S,o);f.push(Number(u[D]))}f.sort((A,S)=>A-S);let y=f.length,g=t*(y-1),h=Math.floor(g),b=Math.ceil(g);if(h===b)m[p]=f[h];else{let A=g-h;m[p]=f[h]*(1-A)+f[b]*A}}let d=x.fromData(m,i,"float64");if(n){let p=[...o];return p[s]=1,x.fromData(m,p,"float64")}return d}function Gr(r,t,e,n=!1){let o=r.dtype,a=r.shape,u=a.length,s=r.data;if(e===void 0)return yt(r,t,n);if(M(o)){let y=s,g=e.data;if(t===void 0){let N=0,I=0,z=0;for(let F=0;F<r.size;F++){let _=Number(g[F%e.size]),E=y[F*2],T=y[F*2+1];N+=E*_,I+=T*_,z+=_}return z===0?new O(NaN,NaN):new O(N/z,I/z)}let h=t;if(h<0&&(h=u+h),h<0||h>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let b=Array.from(a).filter((N,I)=>I!==h);if(b.length===0)return Gr(r,void 0,e);let A=b.reduce((N,I)=>N*I,1),S=a[h],D=x.zeros(b,o),w=D.data;for(let N=0;N<A;N++){let I=0,z=0,F=0;for(let _=0;_<S;_++){let E=$(N,h,_,a),T=U(E,a),C=Number(g[_%e.size]),k=y[T*2],V=y[T*2+1];I+=k*C,z+=V*C,F+=C}F===0?(w[N*2]=NaN,w[N*2+1]=NaN):(w[N*2]=I/F,w[N*2+1]=z/F)}if(n){let N=[...a];return N[h]=1,x.fromData(w,N,o)}return D}if(t===void 0){let y=0,g=0,h=e.data;for(let b=0;b<r.size;b++){let A=Number(h[b%e.size]);y+=Number(s[b])*A,g+=A}return g===0?NaN:y/g}let i=t;if(i<0&&(i=u+i),i<0||i>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let c=Array.from(a).filter((y,g)=>g!==i);if(c.length===0)return Gr(r,void 0,e);let l=c.reduce((y,g)=>y*g,1),m=a[i],d=e.data,p=new Float64Array(l);for(let y=0;y<l;y++){let g=0,h=0;for(let b=0;b<m;b++){let A=$(y,i,b,a),S=U(A,a),D=Number(d[b%e.size]);g+=Number(s[S])*D,h+=D}p[y]=h===0?NaN:g/h}let f=x.fromData(p,c,"float64");if(n){let y=[...a];return y[i]=1,x.fromData(p,y,"float64")}return f}function K(r,t){return isNaN(r)||isNaN(t)}function pt(r,t,e=!1){let n=r.dtype,o=M(n),a=r.shape,u=a.length,s=r.data;if(t===void 0){if(o){let y=s,g=0,h=0;for(let b=0;b<r.size;b++){let A=y[b*2],S=y[b*2+1];K(A,S)||(g+=A,h+=S)}return new O(g,h)}let f=0;for(let y=0;y<r.size;y++){let g=Number(s[y]);isNaN(g)||(f+=g)}return f}let i=t;if(i<0&&(i=u+i),i<0||i>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let c=Array.from(a).filter((f,y)=>y!==i);if(c.length===0)return pt(r);let l=c.reduce((f,y)=>f*y,1),m=a[i];if(o){let f=s,y=new Float64Array(l*2);for(let g=0;g<l;g++){let h=0,b=0;for(let A=0;A<m;A++){let S=$(g,i,A,a),D=U(S,a),w=f[D*2],N=f[D*2+1];K(w,N)||(h+=w,b+=N)}y[g*2]=h,y[g*2+1]=b}if(e){let g=[...a];return g[i]=1,x.fromData(y,g,n)}return x.fromData(y,c,n)}let d=new Float64Array(l);for(let f=0;f<l;f++){let y=0;for(let g=0;g<m;g++){let h=$(f,i,g,a),b=U(h,a),A=Number(s[b]);isNaN(A)||(y+=A)}d[f]=y}let p=x.fromData(d,c,"float64");if(e){let f=[...a];return f[i]=1,x.fromData(d,f,"float64")}return p}function dt(r,t,e=!1){let n=r.dtype,o=M(n),a=r.shape,u=a.length,s=r.data;if(t===void 0){if(o){let y=s,g=1,h=0;for(let b=0;b<r.size;b++){let A=y[b*2],S=y[b*2+1];if(!K(A,S)){let D=g*A-h*S,w=g*S+h*A;g=D,h=w}}return new O(g,h)}let f=1;for(let y=0;y<r.size;y++){let g=Number(s[y]);isNaN(g)||(f*=g)}return f}let i=t;if(i<0&&(i=u+i),i<0||i>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let c=Array.from(a).filter((f,y)=>y!==i);if(c.length===0)return dt(r);let l=c.reduce((f,y)=>f*y,1),m=a[i];if(o){let f=s,y=new Float64Array(l*2);for(let g=0;g<l;g++){let h=1,b=0;for(let A=0;A<m;A++){let S=$(g,i,A,a),D=U(S,a),w=f[D*2],N=f[D*2+1];if(!K(w,N)){let I=h*w-b*N,z=h*N+b*w;h=I,b=z}}y[g*2]=h,y[g*2+1]=b}if(e){let g=[...a];return g[i]=1,x.fromData(y,g,n)}return x.fromData(y,c,n)}let d=new Float64Array(l);for(let f=0;f<l;f++){let y=1;for(let g=0;g<m;g++){let h=$(f,i,g,a),b=U(h,a),A=Number(s[b]);isNaN(A)||(y*=A)}d[f]=y}let p=x.fromData(d,c,"float64");if(e){let f=[...a];return f[i]=1,x.fromData(d,f,"float64")}return p}function gt(r,t,e=!1){let n=r.dtype,o=M(n),a=r.shape,u=a.length,s=r.data;if(t===void 0){if(o){let g=s,h=0,b=0,A=0;for(let S=0;S<r.size;S++){let D=g[S*2],w=g[S*2+1];K(D,w)||(h+=D,b+=w,A++)}return A===0?new O(NaN,NaN):new O(h/A,b/A)}let f=0,y=0;for(let g=0;g<r.size;g++){let h=Number(s[g]);isNaN(h)||(f+=h,y++)}return y===0?NaN:f/y}let i=t;if(i<0&&(i=u+i),i<0||i>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let c=Array.from(a).filter((f,y)=>y!==i);if(c.length===0)return gt(r);let l=c.reduce((f,y)=>f*y,1),m=a[i];if(o){let f=s,y=new Float64Array(l*2);for(let g=0;g<l;g++){let h=0,b=0,A=0;for(let S=0;S<m;S++){let D=$(g,i,S,a),w=U(D,a),N=f[w*2],I=f[w*2+1];K(N,I)||(h+=N,b+=I,A++)}A===0?(y[g*2]=NaN,y[g*2+1]=NaN):(y[g*2]=h/A,y[g*2+1]=b/A)}if(e){let g=[...a];return g[i]=1,x.fromData(y,g,n)}return x.fromData(y,c,n)}let d=new Float64Array(l);for(let f=0;f<l;f++){let y=0,g=0;for(let h=0;h<m;h++){let b=$(f,i,h,a),A=U(b,a),S=Number(s[A]);isNaN(S)||(y+=S,g++)}d[f]=g===0?NaN:y/g}let p=x.fromData(d,c,"float64");if(e){let f=[...a];return f[i]=1,x.fromData(d,f,"float64")}return p}function Ur(r,t,e=0,n=!1){let o=r.dtype,a=r.shape,u=a.length,s=r.data;if(M(o)){let f=s;if(t===void 0){let D=0,w=0,N=0;for(let _=0;_<r.size;_++){let E=f[_*2],T=f[_*2+1];K(E,T)||(D+=E,w+=T,N++)}if(N-e<=0)return NaN;let I=D/N,z=w/N,F=0;for(let _=0;_<r.size;_++){let E=f[_*2],T=f[_*2+1];if(!K(E,T)){let C=E-I,k=T-z;F+=C*C+k*k}}return F/(N-e)}let y=t;if(y<0&&(y=u+y),y<0||y>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let g=Array.from(a).filter((D,w)=>w!==y);if(g.length===0)return Ur(r,void 0,e);let h=g.reduce((D,w)=>D*w,1),b=a[y],A=new Float64Array(h);for(let D=0;D<h;D++){let w=0,N=0,I=0;for(let E=0;E<b;E++){let T=$(D,y,E,a),C=U(T,a),k=f[C*2],V=f[C*2+1];K(k,V)||(w+=k,N+=V,I++)}if(I-e<=0){A[D]=NaN;continue}let z=w/I,F=N/I,_=0;for(let E=0;E<b;E++){let T=$(D,y,E,a),C=U(T,a),k=f[C*2],V=f[C*2+1];if(!K(k,V)){let R=k-z,L=V-F;_+=R*R+L*L}}A[D]=_/(I-e)}let S=x.fromData(A,g,"float64");if(n){let D=[...a];return D[y]=1,x.fromData(A,D,"float64")}return S}if(t===void 0){let f=0,y=0;for(let b=0;b<r.size;b++){let A=Number(s[b]);isNaN(A)||(f+=A,y++)}if(y-e<=0)return NaN;let g=f/y,h=0;for(let b=0;b<r.size;b++){let A=Number(s[b]);isNaN(A)||(h+=(A-g)**2)}return h/(y-e)}let i=t;if(i<0&&(i=u+i),i<0||i>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let c=Array.from(a).filter((f,y)=>y!==i);if(c.length===0)return Ur(r,void 0,e);let l=c.reduce((f,y)=>f*y,1),m=a[i],d=new Float64Array(l);for(let f=0;f<l;f++){let y=0,g=0;for(let A=0;A<m;A++){let S=$(f,i,A,a),D=U(S,a),w=Number(s[D]);isNaN(w)||(y+=w,g++)}if(g-e<=0){d[f]=NaN;continue}let h=y/g,b=0;for(let A=0;A<m;A++){let S=$(f,i,A,a),D=U(S,a),w=Number(s[D]);isNaN(w)||(b+=(w-h)**2)}d[f]=b/(g-e)}let p=x.fromData(d,c,"float64");if(n){let f=[...a];return f[i]=1,x.fromData(d,f,"float64")}return p}function Kt(r,t,e=0,n=!1){let o=Ur(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=o,u=new Float64Array(a.size);for(let s=0;s<a.size;s++)u[s]=Math.sqrt(Number(a.data[s]));return x.fromData(u,[...a.shape],"float64")}function Wr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.data;if(M(n)){let p=u;if(t===void 0){let S=1/0,D=1/0,w=!1;for(let N=0;N<r.size;N++){let I=p[N*2],z=p[N*2+1];isNaN(I)||isNaN(z)||(w?(I<S||I===S&&z<D)&&(S=I,D=z):(S=I,D=z,w=!0))}return w?new O(S,D):new O(NaN,NaN)}let f=t;if(f<0&&(f=a+f),f<0||f>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let y=Array.from(o).filter((S,D)=>D!==f);if(y.length===0)return Wr(r);let g=y.reduce((S,D)=>S*D,1),h=o[f],b=new Float64Array(g*2);for(let S=0;S<g;S++){let D=1/0,w=1/0,N=!1;for(let I=0;I<h;I++){let z=$(S,f,I,o),F=U(z,o),_=p[F*2],E=p[F*2+1];isNaN(_)||isNaN(E)||(N?(_<D||_===D&&E<w)&&(D=_,w=E):(D=_,w=E,N=!0))}b[S*2]=N?D:NaN,b[S*2+1]=N?w:NaN}let A=x.fromData(b,y,n);if(e){let S=[...o];return S[f]=1,x.fromData(b,S,n)}return A}if(t===void 0){let p=1/0;for(let f=0;f<r.size;f++){let y=Number(u[f]);!isNaN(y)&&y<p&&(p=y)}return p===1/0?NaN:p}let s=t;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let i=Array.from(o).filter((p,f)=>f!==s);if(i.length===0)return Wr(r);let c=i.reduce((p,f)=>p*f,1),l=o[s],m=new Float64Array(c);for(let p=0;p<c;p++){let f=1/0;for(let y=0;y<l;y++){let g=$(p,s,y,o),h=U(g,o),b=Number(u[h]);!isNaN(b)&&b<f&&(f=b)}m[p]=f===1/0?NaN:f}let d=x.fromData(m,i,"float64");if(e){let p=[...o];return p[s]=1,x.fromData(m,p,"float64")}return d}function Yr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.data;if(M(n)){let p=u;if(t===void 0){let S=-1/0,D=-1/0,w=!1;for(let N=0;N<r.size;N++){let I=p[N*2],z=p[N*2+1];isNaN(I)||isNaN(z)||(w?(I>S||I===S&&z>D)&&(S=I,D=z):(S=I,D=z,w=!0))}return w?new O(S,D):new O(NaN,NaN)}let f=t;if(f<0&&(f=a+f),f<0||f>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let y=Array.from(o).filter((S,D)=>D!==f);if(y.length===0)return Yr(r);let g=y.reduce((S,D)=>S*D,1),h=o[f],b=new Float64Array(g*2);for(let S=0;S<g;S++){let D=-1/0,w=-1/0,N=!1;for(let I=0;I<h;I++){let z=$(S,f,I,o),F=U(z,o),_=p[F*2],E=p[F*2+1];isNaN(_)||isNaN(E)||(N?(_>D||_===D&&E>w)&&(D=_,w=E):(D=_,w=E,N=!0))}b[S*2]=N?D:NaN,b[S*2+1]=N?w:NaN}let A=x.fromData(b,y,n);if(e){let S=[...o];return S[f]=1,x.fromData(b,S,n)}return A}if(t===void 0){let p=-1/0;for(let f=0;f<r.size;f++){let y=Number(u[f]);!isNaN(y)&&y>p&&(p=y)}return p===-1/0?NaN:p}let s=t;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let i=Array.from(o).filter((p,f)=>f!==s);if(i.length===0)return Yr(r);let c=i.reduce((p,f)=>p*f,1),l=o[s],m=new Float64Array(c);for(let p=0;p<c;p++){let f=-1/0;for(let y=0;y<l;y++){let g=$(p,s,y,o),h=U(g,o),b=Number(u[h]);!isNaN(b)&&b>f&&(f=b)}m[p]=f===-1/0?NaN:f}let d=x.fromData(m,i,"float64");if(e){let p=[...o];return p[s]=1,x.fromData(m,p,"float64")}return d}function Hr(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let m=a;if(t===void 0){let h=1/0,b=1/0,A=-1;for(let S=0;S<r.size;S++){let D=m[S*2],w=m[S*2+1];!K(D,w)&&zr(D,w,h,b)<0&&(h=D,b=w,A=S)}return A}let d=t;if(d<0&&(d=o+d),d<0||d>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let p=Array.from(n).filter((h,b)=>b!==d);if(p.length===0)return Hr(r);let f=p.reduce((h,b)=>h*b,1),y=n[d],g=new Int32Array(f);for(let h=0;h<f;h++){let b=1/0,A=1/0,S=0;for(let D=0;D<y;D++){let w=$(h,d,D,n),N=U(w,n),I=m[N*2],z=m[N*2+1];!K(I,z)&&zr(I,z,b,A)<0&&(b=I,A=z,S=D)}g[h]=S}return x.fromData(g,p,"int32")}if(t===void 0){let m=1/0,d=-1;for(let p=0;p<r.size;p++){let f=Number(a[p]);!isNaN(f)&&f<m&&(m=f,d=p)}return d}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((m,d)=>d!==u);if(s.length===0)return Hr(r);let i=s.reduce((m,d)=>m*d,1),c=n[u],l=new Int32Array(i);for(let m=0;m<i;m++){let d=1/0,p=0;for(let f=0;f<c;f++){let y=$(m,u,f,n),g=U(y,n),h=Number(a[g]);!isNaN(h)&&h<d&&(d=h,p=f)}l[m]=p}return x.fromData(l,s,"int32")}function Jr(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let m=a;if(t===void 0){let h=-1/0,b=-1/0,A=-1;for(let S=0;S<r.size;S++){let D=m[S*2],w=m[S*2+1];!K(D,w)&&zr(D,w,h,b)>0&&(h=D,b=w,A=S)}return A}let d=t;if(d<0&&(d=o+d),d<0||d>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let p=Array.from(n).filter((h,b)=>b!==d);if(p.length===0)return Jr(r);let f=p.reduce((h,b)=>h*b,1),y=n[d],g=new Int32Array(f);for(let h=0;h<f;h++){let b=-1/0,A=-1/0,S=0;for(let D=0;D<y;D++){let w=$(h,d,D,n),N=U(w,n),I=m[N*2],z=m[N*2+1];!K(I,z)&&zr(I,z,b,A)>0&&(b=I,A=z,S=D)}g[h]=S}return x.fromData(g,p,"int32")}if(t===void 0){let m=-1/0,d=-1;for(let p=0;p<r.size;p++){let f=Number(a[p]);!isNaN(f)&&f>m&&(m=f,d=p)}return d}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((m,d)=>d!==u);if(s.length===0)return Jr(r);let i=s.reduce((m,d)=>m*d,1),c=n[u],l=new Int32Array(i);for(let m=0;m<i;m++){let d=-1/0,p=0;for(let f=0;f<c;f++){let y=$(m,u,f,n),g=U(y,n),h=Number(a[g]);!isNaN(h)&&h>d&&(d=h,p=f)}l[m]=p}return x.fromData(l,s,"int32")}function re(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let p=a,f=r.size;if(t===void 0){let N=x.zeros([f],e),I=N.data,z=0,F=0;for(let _=0;_<f;_++){let E=p[_*2],T=p[_*2+1];K(E,T)||(z+=E,F+=T),I[_*2]=z,I[_*2+1]=F}return N}let y=t;if(y<0&&(y=o+y),y<0||y>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let g=x.zeros([...n],e),h=g.data,b=n[y],A=[],S=1;for(let N=o-1;N>=0;N--)A.unshift(S),S*=n[N];let D=r.size,w=A[y];for(let N=0;N<D;N++){let I=p[N*2],z=p[N*2+1],F=Math.floor(N/w)%b,_=K(I,z);F===0?(h[N*2]=_?0:I,h[N*2+1]=_?0:z):(h[N*2]=h[(N-w)*2]+(_?0:I),h[N*2+1]=h[(N-w)*2+1]+(_?0:z))}return g}if(t===void 0){let p=r.size,f=new Float64Array(p),y=0;for(let g=0;g<p;g++){let h=Number(a[g]);isNaN(h)||(y+=h),f[g]=y}return x.fromData(f,[p],"float64")}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=new Float64Array(r.size),i=n[u],c=[],l=1;for(let p=o-1;p>=0;p--)c.unshift(l),l*=n[p];let m=r.size,d=c[u];for(let p=0;p<m;p++){let f=Number(a[p]);Math.floor(p/d)%i===0?s[p]=isNaN(f)?0:f:s[p]=s[p-d]+(isNaN(f)?0:f)}return x.fromData(s,[...n],"float64")}function te(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let p=a,f=r.size;if(t===void 0){let N=x.zeros([f],e),I=N.data,z=1,F=0;for(let _=0;_<f;_++){let E=p[_*2],T=p[_*2+1];if(!K(E,T)){let C=z*E-F*T,k=z*T+F*E;z=C,F=k}I[_*2]=z,I[_*2+1]=F}return N}let y=t;if(y<0&&(y=o+y),y<0||y>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let g=x.zeros([...n],e),h=g.data,b=n[y],A=[],S=1;for(let N=o-1;N>=0;N--)A.unshift(S),S*=n[N];let D=r.size,w=A[y];for(let N=0;N<D;N++){let I=p[N*2],z=p[N*2+1],F=Math.floor(N/w)%b,_=K(I,z);if(F===0)h[N*2]=_?1:I,h[N*2+1]=_?0:z;else{let E=h[(N-w)*2],T=h[(N-w)*2+1];_?(h[N*2]=E,h[N*2+1]=T):(h[N*2]=E*I-T*z,h[N*2+1]=E*z+T*I)}}return g}if(t===void 0){let p=r.size,f=new Float64Array(p),y=1;for(let g=0;g<p;g++){let h=Number(a[g]);isNaN(h)||(y*=h),f[g]=y}return x.fromData(f,[p],"float64")}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=new Float64Array(r.size),i=n[u],c=[],l=1;for(let p=o-1;p>=0;p--)c.unshift(l),l*=n[p];let m=r.size,d=c[u];for(let p=0;p<m;p++){let f=Number(a[p]);Math.floor(p/d)%i===0?s[p]=isNaN(f)?1:f:s[p]=s[p-d]*(isNaN(f)?1:f)}return x.fromData(s,[...n],"float64")}function At(r,t,e=!1){q(r.dtype,"nanmedian","Complex numbers are not orderable.");let n=r.shape,o=n.length,a=r.data;if(t===void 0){let d=[];for(let y=0;y<r.size;y++){let g=Number(a[y]);isNaN(g)||d.push(g)}if(d.length===0)return NaN;d.sort((y,g)=>y-g);let p=d.length,f=Math.floor(p/2);return p%2===0?(d[f-1]+d[f])/2:d[f]}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((d,p)=>p!==u);if(s.length===0)return At(r);let i=s.reduce((d,p)=>d*p,1),c=n[u],l=new Float64Array(i);for(let d=0;d<i;d++){let p=[];for(let g=0;g<c;g++){let h=$(d,u,g,n),b=U(h,n),A=Number(a[b]);isNaN(A)||p.push(A)}if(p.length===0){l[d]=NaN;continue}p.sort((g,h)=>g-h);let f=p.length,y=Math.floor(f/2);f%2===0?l[d]=(p[y-1]+p[y])/2:l[d]=p[y]}let m=x.fromData(l,s,"float64");if(e){let d=[...n];return d[u]=1,x.fromData(l,d,"float64")}return m}function nr(r,t){let e=r.size,n=r.dtype,o=t.indexOf(-1),a;if(o!==-1){let c=t.reduce((m,d,p)=>p===o?m:m*d,1),l=e/c;if(!Number.isInteger(l))throw new Error(`cannot reshape array of size ${e} into shape ${JSON.stringify(t)}`);a=t.map((m,d)=>d===o?l:m)}else a=t;if(a.reduce((c,l)=>c*l,1)!==e)throw new Error(`cannot reshape array of size ${e} into shape ${JSON.stringify(a)}`);if(r.isCContiguous){let c=r.data;return x.fromData(c,a,n,or(a),0)}let i=r.copy().data;return x.fromData(i,a,n,or(a),0)}function bt(r){let t=r.size,e=r.dtype,n=P(e);if(!n)throw new Error(`Cannot flatten array with dtype ${e}`);if(r.isCContiguous){let s=r.data.slice(r.offset,r.offset+t);return x.fromData(s,[t],e,[1],0)}let o=new n(t),a=B(e);for(let u=0;u<t;u++){let s=r.iget(u);o[u]=s}return x.fromData(o,[t],e,[1],0)}function Rr(r){let t=r.size,e=r.dtype;if(r.isCContiguous){let n=r.data;return x.fromData(n,[t],e,[1],0)}return bt(r)}function Qr(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,u=r.dtype,s;if(t===void 0)s=Array.from({length:n},(m,d)=>n-1-d);else{if(t.length!==n)throw new Error(`axes must have length ${n}, got ${t.length}`);let m=new Set;for(let d of t){let p=d<0?n+d:d;if(p<0||p>=n)throw new Error(`axis ${d} is out of bounds for array of dimension ${n}`);if(m.has(p))throw new Error("repeated axis in transpose");m.add(p)}s=t.map(d=>d<0?n+d:d)}let i=s.map(m=>e[m]),c=Array.from(o),l=s.map(m=>c[m]);return x.fromData(a,i,u,l,r.offset)}function $n(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,u=r.dtype;if(t===void 0){let s=[],i=[];for(let c=0;c<n;c++)e[c]!==1&&(s.push(e[c]),i.push(o[c]));return s.length===0&&(s.push(1),i.push(1)),x.fromData(a,s,u,i,r.offset)}else{let s=t<0?n+t:t;if(s<0||s>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);if(e[s]!==1)throw new Error(`cannot select an axis which has size not equal to one (axis ${t} has size ${e[s]})`);let i=[],c=[];for(let l=0;l<n;l++)l!==s&&(i.push(e[l]),c.push(o[l]));return x.fromData(a,i,u,c,r.offset)}}function Xr(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,u=r.dtype,s=t;if(s<0&&(s=n+t+1),s<0||s>n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n+1}`);let i=[...Array.from(e)];i.splice(s,0,1);let c=[...Array.from(o)],l=s<n?o[s]*(e[s]||1):1;return c.splice(s,0,l),x.fromData(a,i,u,c,r.offset)}function Rn(r,t,e){let n=r.shape,o=n.length,a=r.strides,u=r.data,s=r.dtype,i=t<0?o+t:t,c=e<0?o+e:e;if(i<0||i>=o)throw new Error(`axis1 ${t} is out of bounds for array of dimension ${o}`);if(c<0||c>=o)throw new Error(`axis2 ${e} is out of bounds for array of dimension ${o}`);if(i===c)return x.fromData(u,Array.from(n),s,Array.from(a),r.offset);let l=Array.from(n),m=Array.from(a);return[l[i],l[c]]=[l[c],l[i]],[m[i],m[c]]=[m[c],m[i]],x.fromData(u,l,s,m,r.offset)}function ee(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 Qr(r,i)}function Mr(r,t=0){if(r.length===0)throw new Error("need at least one array to concatenate");if(r.length===1)return r[0].copy();let e=r[0],n=e.ndim,o=e.dtype,a=t<0?n+t:t;if(a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);for(let p=1;p<r.length;p++){let f=r[p];if(f.ndim!==n)throw new Error("all the input arrays must have same number of dimensions");for(let y=0;y<n;y++)if(y!==a&&f.shape[y]!==e.shape[y])throw new Error("all the input array dimensions except for the concatenation axis must match exactly")}let u=Array.from(e.shape),s=e.shape[a];for(let p=1;p<r.length;p++)s+=r[p].shape[a];u[a]=s;let i=u.reduce((p,f)=>p*f,1),c=P(o);if(!c)throw new Error(`Cannot concatenate arrays with dtype ${o}`);let l=new c(i),m=or(u),d=0;for(let p of r){let f=p.shape[a];nu(p,l,u,m,a,d,o),d+=f}return x.fromData(l,u,o)}function nu(r,t,e,n,o,a,u){let s=r.shape,i=s.length,c=r.size,l=u==="int64"||u==="uint64";if(o===0&&r.isCContiguous&&i>0){let p=a*n[0],f=r.data,y=r.offset,g=y+c;t.set(f.subarray(y,g),p);return}if(o===1&&i===2&&r.isCContiguous){let p=s[0],f=s[1],y=e[1],g=r.data,h=r.offset;for(let b=0;b<p;b++){let A=h+b*f,S=b*y+a;t.set(g.subarray(A,A+f),S)}return}let m=new Array(i).fill(0),d=a*n[o];for(let p=0;p<c;p++){let f=r.iget(p),y=d;for(let g=0;g<i;g++)y+=m[g]*n[g];t[y]=f;for(let g=i-1;g>=0&&(m[g]++,!(m[g]<s[g]));g--)m[g]=0}}function kn(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=>Xr(s,a));return Mr(u,a)}function qn(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?nr(e,[1,e.shape[0]]):e);return Mr(t,0)}function ne(r){if(r.length===0)throw new Error("need at least one array to stack");return r.every(e=>e.ndim===1)?Mr(r,0):Mr(r,1)}function Vn(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?nr(Xr(nr(e,[1,e.shape[0]]),2),[1,e.shape[0],1]):e.ndim===2?Xr(e,2):e);return Mr(t,2)}function jn(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 Pn(r,s,a)}function Kr(r,t,e=0){let n=r.shape,o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=n[a],s;if(typeof t=="number"){let i=t,c=Math.floor(u/i),l=u%i;s=[];let m=0;for(let d=0;d<i-1;d++)m+=c+(d<l?1:0),s.push(m)}else s=t;return Pn(r,s,a)}function Pn(r,t,e){let n=r.shape,o=n[e],a=[0,...t,o],u=[];for(let s=0;s<a.length-1;s++){let i=a[s],c=a[s+1];if(i>c)throw new Error("split indices must be in ascending order");let l=Array.from(n);l[e]=c-i;let m=r.offset+i*r.strides[e];u.push(x.fromData(r.data,l,r.dtype,Array.from(r.strides),m))}return u}function Ln(r,t){if(r.ndim<2)throw new Error("vsplit only works on arrays of 2 or more dimensions");return Kr(r,t,0)}function Zn(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 Kr(r,t,e)}function Gn(r,t){let e=r.shape,n=e.length,o=r.dtype,a=Array.isArray(t)?t:[t],u=Math.max(n,a.length),s=new Array(u).fill(1),i=new Array(u).fill(1);for(let b=0;b<n;b++)s[u-n+b]=e[b];for(let b=0;b<a.length;b++)i[u-a.length+b]=a[b];let c=s.map((b,A)=>b*i[A]),l=c.reduce((b,A)=>b*A,1),m=P(o);if(!m)throw new Error(`Cannot tile array with dtype ${o}`);let d=new m(l),p=or(c),f=r;n<u&&(f=nr(r,s));let y=o==="int64"||o==="uint64",g=f.strides,h=new Array(u).fill(0);for(let b=0;b<l;b++){let A=f.offset;for(let w=0;w<u;w++){let N=h[w]%s[w];A+=N*g[w]}let S=f.data[A],D=0;for(let w=0;w<u;w++)D+=h[w]*p[w];d[D]=S;for(let w=u-1;w>=0&&(h[w]++,!(h[w]<c[w]));w--)h[w]=0}return x.fromData(d,c,o)}function Wn(r,t,e){let n=r.shape,o=n.length,a=r.dtype,u=r.size;if(e===void 0){let b=u,A=Array.isArray(t)?t:new Array(b).fill(t);if(A.length!==b)throw new Error(`operands could not be broadcast together with shape (${b},) (${A.length},)`);let S=A.reduce((I,z)=>I+z,0),D=P(a);if(!D)throw new Error(`Cannot repeat array with dtype ${a}`);let w=new D(S),N=0;for(let I=0;I<b;I++){let z=r.iget(I),F=A[I];for(let _=0;_<F;_++)w[N++]=z}return x.fromData(w,[S],a)}let s=e<0?o+e:e;if(s<0||s>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=n[s],c=Array.isArray(t)?t:new Array(i).fill(t);if(c.length!==i)throw new Error(`operands could not be broadcast together with shape (${i},) (${c.length},)`);let l=Array.from(n);l[s]=c.reduce((b,A)=>b+A,0);let m=l.reduce((b,A)=>b*A,1),d=P(a);if(!d)throw new Error(`Cannot repeat array with dtype ${a}`);let p=new d(m),f=or(l),y=new Array(o).fill(0),g=a==="int64"||a==="uint64",h=[0];for(let b=0;b<i;b++)h.push(h[b]+c[b]);for(let b=0;b<u;b++){let A=r.iget(b),S=y[s],D=c[S],w=0;for(let z=0;z<o;z++)z!==s&&(w+=y[z]*f[z]);let N=f[s],I=h[S];for(let z=0;z<D;z++){let F=w+(I+z)*N;p[F]=A}for(let z=o-1;z>=0&&(y[z]++,!(y[z]<n[z]));z--)y[z]=0}return x.fromData(p,l,a)}function Yn(r,t){let e=r.shape,n=e.length,o=r.dtype,a=r.size,u;if(t===void 0)u=new Set(Array.from({length:n},(d,p)=>p));else if(typeof t=="number"){let d=t<0?n+t:t;if(d<0||d>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);u=new Set([d])}else u=new Set(t.map(d=>{let p=d<0?n+d:d;if(p<0||p>=n)throw new Error(`axis ${d} is out of bounds for array of dimension ${n}`);return p}));let s=P(o);if(!s)throw new Error(`Cannot flip array with dtype ${o}`);let i=new s(a),c=B(o);if(n===1&&r.isCContiguous){let d=r.data,p=r.offset;for(let f=0;f<a;f++)i[f]=d[p+a-1-f];return x.fromData(i,[...e],o)}if(n===2&&r.isCContiguous){let d=e[0],p=e[1],f=r.data,y=r.offset;if(u.size===2){for(let g=0;g<a;g++)i[g]=f[y+a-1-g];return x.fromData(i,[...e],o)}if(u.size===1){if(u.has(0)){for(let g=0;g<d;g++){let h=y+(d-1-g)*p,b=g*p;for(let A=0;A<p;A++)i[b+A]=f[h+A]}return x.fromData(i,[...e],o)}else if(u.has(1)){for(let g=0;g<d;g++){let h=y+g*p,b=g*p;for(let A=0;A<p;A++)i[b+A]=f[h+p-1-A]}return x.fromData(i,[...e],o)}}}let l=new Array(n),m=new Array(n).fill(0);for(let d=0;d<a;d++){for(let y=0;y<n;y++)l[y]=u.has(y)?e[y]-1-m[y]:m[y];let p=r.offset;for(let y=0;y<n;y++)p+=l[y]*r.strides[y];let f=r.data[p];i[d]=f;for(let y=n-1;y>=0&&(m[y]++,!(m[y]<e[y]));y--)m[y]=0}return x.fromData(i,[...e],o)}function Hn(r,t=1,e=[0,1]){let n=r.shape,o=n.length,a=r.dtype;if(o<2)throw new Error("Input must be at least 2-D");let u=e[0]<0?o+e[0]:e[0],s=e[1]<0?o+e[1]:e[1];if(u<0||u>=o||s<0||s>=o)throw new Error(`Axes are out of bounds for array of dimension ${o}`);if(u===s)throw new Error("Axes must be different");if(t=(t%4+4)%4,t===0)return r.copy();let i=P(a);if(!i)throw new Error(`Cannot rotate array with dtype ${a}`);let c=[...n];(t===1||t===3)&&([c[u],c[s]]=[c[s],c[u]]);let l=c.reduce((g,h)=>g*h,1),m=new i(l),d=or(c),p=B(a),f=new Array(o).fill(0),y=new Array(o);for(let g=0;g<r.size;g++){for(let D=0;D<o;D++)y[D]=f[D];let h,b;t===1?(h=n[s]-1-f[s],b=f[u]):t===2?(h=n[u]-1-f[u],b=n[s]-1-f[s],y[u]=h,y[s]=b):(h=f[s],b=n[u]-1-f[u]),t!==2&&(y[u]=h,y[s]=b);let A=0;for(let D=0;D<o;D++)A+=y[D]*d[D];let S=r.iget(g);m[A]=S;for(let D=o-1;D>=0&&(f[D]++,!(f[D]<n[D]));D--)f[D]=0}return x.fromData(m,c,a)}function Jn(r,t,e){let n=r.shape,o=n.length,a=r.dtype,u=r.size;if(e===void 0){let f=Array.isArray(t)?t.reduce((A,S)=>A+S,0):t,y=bt(r),g=P(a);if(!g)throw new Error(`Cannot roll array with dtype ${a}`);let h=new g(u),b=B(a);for(let A=0;A<u;A++){let S=((A-f)%u+u)%u,D=y.iget(S);h[A]=D}return x.fromData(h,[...n],a)}let s=Array.isArray(t)?t:[t],i=Array.isArray(e)?e:[e];if(s.length!==i.length)throw new Error("shift and axis must have the same length");let c=i.map(f=>{let y=f<0?o+f:f;if(y<0||y>=o)throw new Error(`axis ${f} is out of bounds for array of dimension ${o}`);return y}),l=P(a);if(!l)throw new Error(`Cannot roll array with dtype ${a}`);let m=new l(u),d=B(a),p=new Array(o).fill(0);for(let f=0;f<u;f++){let y=[...p];for(let b=0;b<c.length;b++){let A=c[b],S=n[A],D=s[b];y[A]=((y[A]-D)%S+S)%S}let g=r.offset;for(let b=0;b<o;b++)g+=y[b]*r.strides[b];let h=r.data[g];m[f]=h;for(let b=o-1;b>=0&&(p[b]++,!(p[b]<n[b]));b--)p[b]=0}return x.fromData(m,[...n],a)}function Xn(r,t,e=0){let n=r.ndim,o=t<0?n+t:t;if(o<0||o>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let a=e<0?n+e:e;if(a<0||a>n)throw new Error(`start ${e} is out of bounds`);return o<a&&a--,o===a?x.fromData(r.data,Array.from(r.shape),r.dtype,Array.from(r.strides),r.offset):ee(r,o,a)}function Qn(r,t){if(r.ndim<3)throw new Error("dsplit only works on arrays of 3 or more dimensions");return Kr(r,t,2)}function Kn(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?nr(e,[e.shape[0],1]):e);return ne(t)}function ro(r,t){let e=r.dtype,n=t.reduce((i,c)=>i*c,1),o=r.size,a=P(e);if(!a)throw new Error(`Cannot resize array with dtype ${e}`);let u=new a(n),s=B(e);for(let i=0;i<n;i++){let c=i%o,l=r.iget(c);u[i]=l}return x.fromData(u,t,e)}function to(r){return r.map(t=>t.ndim===0?nr(t,[1]):t)}function eo(r){return r.map(t=>t.ndim===0?nr(t,[1,1]):t.ndim===1?nr(t,[1,t.shape[0]]):t)}function no(r){return r.map(t=>t.ndim===0?nr(t,[1,1,1]):t.ndim===1?nr(t,[1,t.shape[0],1]):t.ndim===2?nr(t,[t.shape[0],t.shape[1],1]):t)}function kr(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 ou(r,t,e,n,o,a,u,s,i,c,l,m,d,p){if(m===0)for(let h=0;h<n*o;h++)d[h]=0;else if(m!==1)for(let h=0;h<n*o;h++)d[h]=(d[h]??0)*m;let f=r==="row-major",y=t==="transpose",g=e==="transpose";if(f&&!y&&!g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[h*i+S]??0)*(c[S*l+b]??0);d[h*p+b]=(d[h*p+b]??0)+u*A}else if(f&&y&&!g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[S*i+h]??0)*(c[S*l+b]??0);d[h*p+b]=(d[h*p+b]??0)+u*A}else if(f&&!y&&g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[h*i+S]??0)*(c[b*l+S]??0);d[h*p+b]=(d[h*p+b]??0)+u*A}else if(f&&y&&g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[S*i+h]??0)*(c[b*l+S]??0);d[h*p+b]=(d[h*p+b]??0)+u*A}else if(!f&&!y&&!g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[S*i+h]??0)*(c[b*l+S]??0);d[b*p+h]=(d[b*p+h]??0)+u*A}else if(!f&&y&&!g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[h*i+S]??0)*(c[b*l+S]??0);d[b*p+h]=(d[b*p+h]??0)+u*A}else if(!f&&!y&&g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[S*i+h]??0)*(c[S*l+b]??0);d[b*p+h]=(d[b*p+h]??0)+u*A}else for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[h*i+S]??0)*(c[S*l+b]??0);d[b*p+h]=(d[b*p+h]??0)+u*A}}function ae(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 kr(a,u);if(e===0){let s=G(r.dtype,t.dtype),i=x.zeros([...t.shape],s),c=(l,m)=>{let d=new Array(m.length),p=l;for(let f=m.length-1;f>=0;f--)d[f]=p%m[f],p=Math.floor(p/m[f]);return d};for(let l=0;l<t.size;l++){let m=c(l,t.shape),d=t.get(...m);i.set(m,kr(a,d))}return i}else{let s=G(r.dtype,t.dtype),i=x.zeros([...r.shape],s),c=(l,m)=>{let d=new Array(m.length),p=l;for(let f=m.length-1;f>=0;f--)d[f]=p%m[f],p=Math.floor(p/m[f]);return d};for(let l=0;l<r.size;l++){let m=c(l,r.shape),d=r.get(...m);i.set(m,kr(d,u))}return i}}if(e===1&&n===1){if(r.shape[0]!==t.shape[0])throw new Error(`dot: incompatible shapes (${r.shape[0]},) and (${t.shape[0]},)`);let a=r.shape[0];if(o){let s=0,i=0;for(let c=0;c<a;c++){let l=r.get(c),m=t.get(c),d=kr(l,m);d instanceof O?(s+=d.re,i+=d.im):s+=d}return new O(s,i)}let u=0;for(let s=0;s<a;s++){let i=r.get(s),c=t.get(s);typeof i=="bigint"&&typeof c=="bigint"?u=Number(u)+Number(i*c):u+=Number(i)*Number(c)}return u}if(e===2&&n===2)return pr(r,t);if(e===2&&n===1){let[a,u]=r.shape,s=t.shape[0];if(u!==s)throw new Error(`dot: incompatible shapes (${a},${u}) and (${s},)`);let i=G(r.dtype,t.dtype),c=x.zeros([a],i);if(o)for(let l=0;l<a;l++){let m=0,d=0;for(let p=0;p<u;p++){let f=r.get(l,p),y=t.get(p),g=f instanceof O?f:new O(Number(f),0),h=y instanceof O?y:new O(Number(y),0);m+=g.re*h.re-g.im*h.im,d+=g.re*h.im+g.im*h.re}c.set([l],new O(m,d))}else for(let l=0;l<a;l++){let m=0;for(let d=0;d<u;d++){let p=r.get(l,d),f=t.get(d);typeof p=="bigint"&&typeof f=="bigint"?m=Number(m)+Number(p*f):m+=Number(p)*Number(f)}c.set([l],m)}return c}if(e===1&&n===2){let a=r.shape[0],[u,s]=t.shape;if(a!==u)throw new Error(`dot: incompatible shapes (${a},) and (${u},${s})`);let i=G(r.dtype,t.dtype),c=x.zeros([s],i);if(o)for(let l=0;l<s;l++){let m=0,d=0;for(let p=0;p<a;p++){let f=r.get(p),y=t.get(p,l),g=f instanceof O?f:new O(Number(f),0),h=y instanceof O?y:new O(Number(y),0);m+=g.re*h.re-g.im*h.im,d+=g.re*h.im+g.im*h.re}c.set([l],new O(m,d))}else for(let l=0;l<s;l++){let m=0;for(let d=0;d<a;d++){let p=r.get(d),f=t.get(d,l);typeof p=="bigint"&&typeof f=="bigint"?m=Number(m)+Number(p*f):m+=Number(p)*Number(f)}c.set([l],m)}return c}if(e>2&&n===1){let a=r.shape[e-1],u=t.shape[0];if(a!==u)throw new Error(`dot: incompatible shapes ${JSON.stringify(r.shape)} and (${u},)`);let s=[...r.shape.slice(0,-1)],i=G(r.dtype,t.dtype),c=x.zeros(s,i),l=s.reduce((m,d)=>m*d,1);if(o)for(let m=0;m<l;m++){let d=0,p=0,f=m,y=[];for(let g=s.length-1;g>=0;g--)y[g]=f%s[g],f=Math.floor(f/s[g]);for(let g=0;g<a;g++){let h=[...y,g],b=r.get(...h),A=t.get(g),S=b instanceof O?b:new O(Number(b),0),D=A instanceof O?A:new O(Number(A),0);d+=S.re*D.re-S.im*D.im,p+=S.re*D.im+S.im*D.re}c.set(y,new O(d,p))}else for(let m=0;m<l;m++){let d=0,p=m,f=[];for(let y=s.length-1;y>=0;y--)f[y]=p%s[y],p=Math.floor(p/s[y]);for(let y=0;y<a;y++){let g=[...f,y],h=r.get(...g),b=t.get(y);typeof h=="bigint"&&typeof b=="bigint"?d=Number(d)+Number(h*b):d+=Number(h)*Number(b)}c.set(f,d)}return c}if(e===1&&n>2){let a=r.shape[0],u=1,s=t.shape[u];if(a!==s)throw new Error(`dot: incompatible shapes (${a},) and ${JSON.stringify(t.shape)}`);let i=[...t.shape.slice(0,u),...t.shape.slice(u+1)],c=G(r.dtype,t.dtype),l=x.zeros(i,c),m=i.reduce((d,p)=>d*p,1);if(o)for(let d=0;d<m;d++){let p=d,f=[];for(let A=i.length-1;A>=0;A--)f[A]=p%i[A],p=Math.floor(p/i[A]);let y=f.slice(0,u),g=f.slice(u),h=0,b=0;for(let A=0;A<a;A++){let S=r.get(A),D=[...y,A,...g],w=t.get(...D),N=S instanceof O?S:new O(Number(S),0),I=w instanceof O?w:new O(Number(w),0);h+=N.re*I.re-N.im*I.im,b+=N.re*I.im+N.im*I.re}l.set(f,new O(h,b))}else for(let d=0;d<m;d++){let p=d,f=[];for(let b=i.length-1;b>=0;b--)f[b]=p%i[b],p=Math.floor(p/i[b]);let y=f.slice(0,u),g=f.slice(u),h=0;for(let b=0;b<a;b++){let A=r.get(b),S=[...y,b,...g],D=t.get(...S);typeof A=="bigint"&&typeof D=="bigint"?h=Number(h)+Number(A*D):h+=Number(A)*Number(D)}l.set(f,h)}return l}if(e>=2&&n>=2&&!(e===2&&n===2)){let a=r.shape[e-1],u=t.shape[n-2];if(a!==u)throw new Error(`dot: incompatible shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(t.shape)}`);let s=[...r.shape.slice(0,-1),...t.shape.slice(0,-2),t.shape[n-1]],i=G(r.dtype,t.dtype),c=x.zeros(s,i),l=r.shape.slice(0,-1).reduce((f,y)=>f*y,1),m=t.shape.slice(0,-2).reduce((f,y)=>f*y,1),d=t.shape[n-1],p=a;if(o)for(let f=0;f<l;f++)for(let y=0;y<m;y++)for(let g=0;g<d;g++){let h=0,b=0;for(let D=0;D<p;D++){let w=[],N=f;for(let C=r.shape.length-2;C>=0;C--)w.unshift(N%r.shape[C]),N=Math.floor(N/r.shape[C]);w.push(D);let I=r.get(...w),z=[],F=y;for(let C=t.shape.length-3;C>=0;C--)z.unshift(F%t.shape[C]),F=Math.floor(F/t.shape[C]);z.push(D,g);let _=t.get(...z),E=I instanceof O?I:new O(Number(I),0),T=_ instanceof O?_:new O(Number(_),0);h+=E.re*T.re-E.im*T.im,b+=E.re*T.im+E.im*T.re}let A=f*m*d+y*d+g,S=c.data;S[A*2]=h,S[A*2+1]=b}else for(let f=0;f<l;f++)for(let y=0;y<m;y++)for(let g=0;g<d;g++){let h=0;for(let A=0;A<p;A++){let S=f*p+A,D=y*p*d+A*d+g,w=r.data[S+r.offset],N=t.data[D+t.offset];typeof w=="bigint"&&typeof N=="bigint"?h=Number(h)+Number(w*N):h+=Number(w)*Number(N)}let b=f*m*d+y*d+g;c.data[b]=h}return c}throw new Error(`dot: unexpected combination of dimensions ${e}D \xB7 ${n}D`)}function pr(r,t){if(r.ndim!==2||t.ndim!==2)throw new Error("matmul requires 2D arrays");let[e=0,n=0]=r.shape,[o=0,a=0]=t.shape;if(n!==o)throw new Error(`matmul shape mismatch: (${e},${n}) @ (${o},${a})`);let u=G(r.dtype,t.dtype);if(M(u)){let D=x.zeros([e,a],u),w=D.data,N=r.data,I=t.data;for(let z=0;z<e;z++)for(let F=0;F<a;F++){let _=0,E=0;for(let C=0;C<n;C++){let k=(z*n+C)*2,V=(C*a+F)*2,R=N[k],L=N[k+1],j=I[V],H=I[V+1];_+=R*j-L*H,E+=R*H+L*j}let T=z*a+F;w[T*2]=_,w[T*2+1]=E}return D}let s=u.startsWith("int")||u.startsWith("uint")||u==="bool"?"float64":u;if(s!=="float64")throw new Error(`matmul currently only supports float64, got ${s}`);let i=r.dtype==="float64"?r.data:Float64Array.from(Array.from(r.data).map(Number)),c=t.dtype==="float64"?t.data:Float64Array.from(Array.from(t.data).map(Number));r.offset>0&&(i=i.subarray(r.offset)),t.offset>0&&(c=c.subarray(t.offset));let[l=0,m=0]=r.strides,[d=0,p=0]=t.strides,f=m>l,y=p>d,g=f?"transpose":"no-transpose",h=y?"transpose":"no-transpose",b,A;f?b=m:b=l,y?A=p:A=d;let S=x.zeros([e,a],"float64");return ou("row-major",g,h,e,a,n,1,i,b,c,A,0,S.data,a),S}function io(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 ao(r,t){return Qr(r,t)}function uo(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 ae(r,t);let s=[...r.shape.slice(0,-1),...t.shape.slice(0,-1)],i=G(r.dtype,t.dtype),c=x.zeros(s,i),l=e===1?1:r.shape.slice(0,-1).reduce((p,f)=>p*f,1),m=n===1?1:t.shape.slice(0,-1).reduce((p,f)=>p*f,1),d=a;if(o)for(let p=0;p<l;p++)for(let f=0;f<m;f++){let y=0,g=0;for(let A=0;A<d;A++){let S,D;if(e===1)S=r.get(A);else{let I=[],z=p,F=r.shape.slice(0,-1);for(let _=F.length-1;_>=0;_--)I.unshift(z%F[_]),z=Math.floor(z/F[_]);I.push(A),S=r.get(...I)}if(n===1)D=t.get(A);else{let I=[],z=f,F=t.shape.slice(0,-1);for(let _=F.length-1;_>=0;_--)I.unshift(z%F[_]),z=Math.floor(z/F[_]);I.push(A),D=t.get(...I)}let w=S instanceof O?S:new O(Number(S),0),N=D instanceof O?D:new O(Number(D),0);y+=w.re*N.re-w.im*N.im,g+=w.re*N.im+w.im*N.re}if(s.length===0)return new O(y,g);let h=l===1?f:p*m+f,b=c.data;b[h*2]=y,b[h*2+1]=g}else for(let p=0;p<l;p++)for(let f=0;f<m;f++){let y=0;for(let h=0;h<d;h++){let b=e===1?h:p*d+h,A=n===1?h:f*d+h,S=r.data[b+r.offset],D=t.data[A+t.offset];typeof S=="bigint"&&typeof D=="bigint"?y=Number(y)+Number(S*D):y+=Number(S)*Number(D)}if(s.length===0)return y;let g=l===1?f:p*m+f;c.data[g]=y}return c}function se(r,t){let e=r.ndim===1?r:Rr(r),n=t.ndim===1?t:Rr(t),o=e.size,a=n.size,u=G(r.dtype,t.dtype),s=x.zeros([o,a],u);for(let i=0;i<o;i++)for(let c=0;c<a;c++){let l=e.get(i),m=n.get(c),d=kr(l,m);s.set([i,c],d)}return s}function co(r,t,e){let n,o;if(typeof e=="number"){let f=e;if(f<0)throw new Error("tensordot: axes must be non-negative");if(f>r.ndim||f>t.ndim)throw new Error("tensordot: axes exceeds array dimensions");n=Array.from({length:f},(y,g)=>r.ndim-f+g),o=Array.from({length:f},(y,g)=>g)}else if([n,o]=e,n.length!==o.length)throw new Error("tensordot: axes lists must have same length");for(let f=0;f<n.length;f++){let y=n[f],g=o[f];if(y<0||y>=r.ndim||g<0||g>=t.ndim)throw new Error("tensordot: axis out of bounds");if(r.shape[y]!==t.shape[g])throw new Error(`tensordot: shape mismatch on axes ${y} and ${g}: ${r.shape[y]} != ${t.shape[g]}`)}let a=[],u=[];for(let f=0;f<r.ndim;f++)n.includes(f)||a.push(f);for(let f=0;f<t.ndim;f++)o.includes(f)||u.push(f);let s=[...a.map(f=>r.shape[f]),...u.map(f=>t.shape[f])],i=G(r.dtype,t.dtype),c=M(i),l=f=>f instanceof O?{re:f.re,im:f.im}:{re:Number(f),im:0};if(s.length===0){let f=0,y=0,g=n.map(h=>r.shape[h]).reduce((h,b)=>h*b,1);for(let h=0;h<g;h++){let b=h,A=new Array(n.length);for(let I=n.length-1;I>=0;I--){let z=n[I];A[I]=b%r.shape[z],b=Math.floor(b/r.shape[z])}let S=new Array(r.ndim),D=new Array(t.ndim);for(let I=0;I<n.length;I++)S[n[I]]=A[I];for(let I=0;I<o.length;I++)D[o[I]]=A[I];let w=r.get(...S),N=t.get(...D);if(c){let I=l(w),z=l(N);f+=I.re*z.re-I.im*z.im,y+=I.re*z.im+I.im*z.re}else typeof w=="bigint"&&typeof N=="bigint"?f+=Number(w*N):f+=Number(w)*Number(N)}return c?new O(f,y):f}let m=x.zeros(s,i),d=s.reduce((f,y)=>f*y,1),p=n.map(f=>r.shape[f]).reduce((f,y)=>f*y,1);for(let f=0;f<d;f++){let y=f,g=[];for(let D=s.length-1;D>=0;D--)g[D]=y%s[D],y=Math.floor(y/s[D]);let h=g.slice(0,a.length),b=g.slice(a.length),A=0,S=0;for(let D=0;D<p;D++){y=D;let w=[];for(let _=n.length-1;_>=0;_--){let E=n[_];w[_]=y%r.shape[E],y=Math.floor(y/r.shape[E])}let N=new Array(r.ndim),I=new Array(t.ndim);for(let _=0;_<a.length;_++)N[a[_]]=h[_];for(let _=0;_<u.length;_++)I[u[_]]=b[_];for(let _=0;_<n.length;_++)N[n[_]]=w[_],I[o[_]]=w[_];let z=r.get(...N),F=t.get(...I);if(c){let _=l(z),E=l(F);A+=_.re*E.re-_.im*E.im,S+=_.re*E.im+_.im*E.re}else typeof z=="bigint"&&typeof F=="bigint"?A+=Number(z*F):A+=Number(z)*Number(F)}c?m.set(g,new O(A,S)):m.set(g,A)}return m}function lo(r,t=0,e=0,n=1){let o=r.shape,a=o.length;if(a<2)throw new Error("diagonal requires an array of at least two dimensions");let u=e<0?a+e:e,s=n<0?a+n:n;if(u<0||u>=a||s<0||s>=a)throw new Error("axis out of bounds");if(u===s)throw new Error("axis1 and axis2 cannot be the same");let i=o[u],c=o[s],l;t>=0?l=Math.max(0,Math.min(i,c-t)):l=Math.max(0,Math.min(i+t,c));let m=[];for(let y=0;y<a;y++)y!==u&&y!==s&&m.push(o[y]);m.push(l);let d=x.zeros(m,r.dtype),p=o.filter((y,g)=>g!==u&&g!==s),f=p.reduce((y,g)=>y*g,1);for(let y=0;y<f;y++){let g=y,h=[];for(let b=p.length-1;b>=0;b--)h.unshift(g%p[b]),g=Math.floor(g/p[b]);for(let b=0;b<l;b++){let A=new Array(a),S=0;for(let N=0;N<a;N++)N===u?A[N]=t>=0?b:b-t:N===s?A[N]=t>=0?b+t:b:A[N]=h[S++];let D=[...h,b],w=r.get(...A);d.set(D,w)}}return d}function fo(r,...t){let e=r.indexOf("->"),n,o;e===-1?(n=r,o=au(n)):(n=r.slice(0,e),o=r.slice(e+2));let a=n.split(",").map(y=>y.trim());if(a.length!==t.length)throw new Error(`einsum: expected ${a.length} operands, got ${t.length}`);let u=new Map;for(let y=0;y<t.length;y++){let g=a[y],h=t[y];if(g.length!==h.ndim)throw new Error(`einsum: operand ${y} has ${h.ndim} dimensions but subscript '${g}' has ${g.length} indices`);for(let b=0;b<g.length;b++){let A=g[b],S=h.shape[b];if(u.has(A)){if(u.get(A)!==S)throw new Error(`einsum: size mismatch for index '${A}': ${u.get(A)} vs ${S}`)}else u.set(A,S)}}for(let y of o)if(!u.has(y))throw new Error(`einsum: output subscript contains unknown index '${y}'`);let s=new Set(o),i=new Set;for(let y of a)for(let g of y)i.add(g);let c=[];for(let y of i)s.has(y)||c.push(y);if(t.length===2&&a.length===2){let[y,g]=a,[h,b]=t;if(y.length===2&&g.length===2&&o.length===2&&h.ndim===2&&b.ndim===2){let[A,S]=[y[0],y[1]],[D,w]=[g[0],g[1]],[N,I]=[o[0],o[1]];if(A===N&&w===I&&S===D&&c.length===1&&c[0]===S||A===N&&w===I&&S===D&&c.length===1&&c[0]===S)return pr(h,b);if(S===N&&w===I&&A===D&&c.length===1&&c[0]===A){let z=ao(h);return pr(z,b)}if(A===N&&D===I&&S===w&&c.length===1&&c[0]===S){let z=ao(b);return pr(h,z)}}if(y.length===1&&g.length===1&&y===g&&o.length===0&&h.ndim===1&&b.ndim===1)return oe(t,a,c,u);if(y&&g&&y.length===1&&g.length===1&&o.length===2&&o===y+g&&c.length===0&&h.ndim===1&&b.ndim===1)return se(h,b)}if(t.length===1&&a[0].length===2&&o.length===0){let y=a[0];if(y[0]===y[1]&&t[0].ndim===2)return oe(t,a,c,u)}let l=Array.from(o).map(y=>u.get(y));if(l.length===0)return oe(t,a,c,u);let m=t[0].dtype;for(let y=1;y<t.length;y++)m=G(m,t[y].dtype);let d=x.zeros(l,m),p=l.reduce((y,g)=>y*g,1),f=1;for(let y of c)f*=u.get(y);for(let y=0;y<p;y++){let g=su(y,l),h=new Map;for(let A=0;A<o.length;A++)h.set(o[A],g[A]);let b=0;for(let A=0;A<f;A++){let S=A;for(let w=c.length-1;w>=0;w--){let N=c[w],I=u.get(N);h.set(N,S%I),S=Math.floor(S/I)}let D=1;for(let w=0;w<t.length;w++){let N=t[w],I=a[w],z=[];for(let _ of I)z.push(h.get(_));let F=N.get(...z);D*=Number(F)}b+=D}d.set(g,b)}return d}function au(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 oe(r,t,e,n){let o=!1;for(let c of r)if(M(c.dtype)){o=!0;break}let a=c=>c instanceof O?{re:c.re,im:c.im}:{re:Number(c),im:0},u=1;for(let c of e)u*=n.get(c);let s=0,i=0;for(let c=0;c<u;c++){let l=new Map,m=c;for(let f=e.length-1;f>=0;f--){let y=e[f],g=n.get(y);l.set(y,m%g),m=Math.floor(m/g)}let d=1,p=0;for(let f=0;f<r.length;f++){let y=r[f],g=t[f],h=[];for(let A of g)h.push(l.get(A));let b=y.get(...h);if(o){let A=a(b),S=d*A.re-p*A.im,D=d*A.im+p*A.re;d=S,p=D}else d*=Number(b)}s+=d,i+=p}return o?new O(s,i):s}function su(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 mo(r,t){let e=r.shape,n=t.shape,o=e.length,a=n.length,u=G(r.dtype,t.dtype),s=Math.max(o,a),i=new Array(s),c=new Array(s).fill(1),l=new Array(s).fill(1);for(let f=0;f<o;f++)c[s-o+f]=e[f];for(let f=0;f<a;f++)l[s-a+f]=n[f];for(let f=0;f<s;f++)i[f]=c[f]*l[f];let m=x.zeros(i,u),d=e.reduce((f,y)=>f*y,1),p=n.reduce((f,y)=>f*y,1);for(let f=0;f<d;f++){let y=f,g=new Array(o);for(let A=o-1;A>=0;A--)g[A]=y%e[A],y=Math.floor(y/e[A]);let h=new Array(s).fill(0);for(let A=0;A<o;A++)h[s-o+A]=g[A];let b=r.get(...g);for(let A=0;A<p;A++){let S=A,D=new Array(a);for(let F=a-1;F>=0;F--)D[F]=S%n[F],S=Math.floor(S/n[F]);let w=new Array(s).fill(0);for(let F=0;F<a;F++)w[s-a+F]=D[F];let N=t.get(...D),I=new Array(s);for(let F=0;F<s;F++)I[F]=h[F]*l[F]+w[F];let z=kr(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 D=Number(r.get(0)),w=Number(r.get(1)),N=Number(r.get(2)),I=Number(t.get(0)),z=Number(t.get(1)),F=Number(t.get(2)),_=x.zeros([3],"float64");return _.set([0],w*F-N*z),_.set([1],N*I-D*F),_.set([2],D*z-w*I),_}else if(A===2&&S===2){let D=Number(r.get(0)),w=Number(r.get(1)),N=Number(t.get(0)),I=Number(t.get(1));return D*I-w*N}else if(A===2&&S===3||A===3&&S===2){let D=Number(r.get(0)),w=Number(r.get(1)),N=A===3?Number(r.get(2)):0,I=Number(t.get(0)),z=Number(t.get(1)),F=S===3?Number(t.get(2)):0,_=x.zeros([3],"float64");return _.set([0],w*F-N*z),_.set([1],N*I-D*F),_.set([2],D*z-w*I),_}else throw new Error(`cross: incompatible dimensions for cross product: ${A} and ${S}`)}let c=r.shape[s],l=t.shape[i];if(c!==2&&c!==3||l!==2&&l!==3)throw new Error(`cross: incompatible dimensions for cross product: ${c} and ${l}`);let m=c===2&&l===2?0:3,d=[...r.shape.slice(0,s),...r.shape.slice(s+1)],p=[...t.shape.slice(0,i),...t.shape.slice(i+1)];if(d.length!==p.length)throw new Error("cross: incompatible shapes for cross product");for(let A=0;A<d.length;A++)if(d[A]!==p[A])throw new Error("cross: incompatible shapes for cross product");let f=d,y=o<0?f.length+1+o:o,g;if(m===0?g=f:g=[...f.slice(0,y),m,...f.slice(y)],g.length===0)throw new Error("cross: unexpected scalar result from higher-dimensional input");let h=x.zeros(g,"float64"),b=f.reduce((A,S)=>A*S,1);for(let A=0;A<b;A++){let S=A,D=[];for(let V=f.length-1;V>=0;V--)D[V]=S%f[V],S=Math.floor(S/f[V]);let w=[...D.slice(0,s),0,...D.slice(s)],N=[...D.slice(0,i),0,...D.slice(i)],I=V=>(w[s]=V,Number(r.get(...w))),z=V=>(N[i]=V,Number(t.get(...N))),F=I(0),_=I(1),E=c===3?I(2):0,T=z(0),C=z(1),k=l===3?z(2):0;if(m===0)h.set(D,F*C-_*T);else{let V=_*k-E*C,R=E*T-F*k,L=F*C-_*T,j=(H,Q)=>{let Z=[...D.slice(0,y),H,...D.slice(y)];h.set(Z,Q)};j(0,V),j(1,R),j(2,L)}}return h}function qr(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:Rr(r),l=c.size,m;if(t===1/0){m=0;for(let d=0;d<l;d++)m=Math.max(m,Math.abs(Number(c.get(d))))}else if(t===-1/0){m=1/0;for(let d=0;d<l;d++)m=Math.min(m,Math.abs(Number(c.get(d))))}else if(t===0){m=0;for(let d=0;d<l;d++)Number(c.get(d))!==0&&m++}else if(t===1){m=0;for(let d=0;d<l;d++)m+=Math.abs(Number(c.get(d)))}else if(t===2){m=0;for(let d=0;d<l;d++){let p=Number(c.get(d));m+=p*p}m=Math.sqrt(m)}else{m=0;for(let d=0;d<l;d++)m+=Math.pow(Math.abs(Number(c.get(d))),t);m=Math.pow(m,1/t)}if(n){let d=new Array(r.ndim).fill(1),p=x.zeros(d,"float64");return p.set(new Array(r.ndim).fill(0),m),p}return m}let o=e<0?r.ndim+e:e;if(o<0||o>=r.ndim)throw new Error(`vector_norm: axis ${e} out of bounds for array with ${r.ndim} dimensions`);let a=n?[...r.shape.slice(0,o),1,...r.shape.slice(o+1)]:[...r.shape.slice(0,o),...r.shape.slice(o+1)];if(a.length===0)return qr(r,t,null,!1);let u=x.zeros(a,"float64"),s=r.shape[o],i=a.reduce((c,l)=>c*l,1);for(let c=0;c<i;c++){let l=c,m=[];for(let f=a.length-1;f>=0;f--)m[f]=l%a[f],l=Math.floor(l/a[f]);let d=n?[...m.slice(0,o),0,...m.slice(o+1)]:[...m.slice(0,o),0,...m.slice(o)],p;if(t===1/0){p=0;for(let f=0;f<s;f++)d[o]=f,p=Math.max(p,Math.abs(Number(r.get(...d))))}else if(t===-1/0){p=1/0;for(let f=0;f<s;f++)d[o]=f,p=Math.min(p,Math.abs(Number(r.get(...d))))}else if(t===0){p=0;for(let f=0;f<s;f++)d[o]=f,Number(r.get(...d))!==0&&p++}else if(t===1){p=0;for(let f=0;f<s;f++)d[o]=f,p+=Math.abs(Number(r.get(...d)))}else if(t===2){p=0;for(let f=0;f<s;f++){d[o]=f;let y=Number(r.get(...d));p+=y*y}p=Math.sqrt(p)}else{p=0;for(let f=0;f<s;f++)d[o]=f,p+=Math.pow(Math.abs(Number(r.get(...d))),t);p=Math.pow(p,1/t)}u.set(m,p)}return u}function Br(r,t="fro",e=!1){if(r.ndim!==2)throw new Error(`matrix_norm: input must be 2D, got ${r.ndim}D`);let[n,o]=r.shape,a;if(t==="fro"){a=0;for(let u=0;u<n;u++)for(let s=0;s<o;s++){let i=Number(r.get(u,s));a+=i*i}a=Math.sqrt(a)}else if(t==="nuc"){let{s:u}=_r(r);a=0;for(let s=0;s<u.size;s++)a+=Number(u.get(s))}else if(t===1){a=0;for(let u=0;u<o;u++){let s=0;for(let i=0;i<n;i++)s+=Math.abs(Number(r.get(i,u)));a=Math.max(a,s)}}else if(t===-1){a=1/0;for(let u=0;u<o;u++){let s=0;for(let i=0;i<n;i++)s+=Math.abs(Number(r.get(i,u)));a=Math.min(a,s)}}else if(t===1/0){a=0;for(let u=0;u<n;u++){let s=0;for(let i=0;i<o;i++)s+=Math.abs(Number(r.get(u,i)));a=Math.max(a,s)}}else if(t===-1/0){a=1/0;for(let u=0;u<n;u++){let s=0;for(let i=0;i<o;i++)s+=Math.abs(Number(r.get(u,i)));a=Math.min(a,s)}}else if(t===2){let{s:u}=_r(r);a=Number(u.get(0))}else if(t===-2){let{s:u}=_r(r);a=Number(u.get(u.size-1))}else throw new Error(`matrix_norm: invalid ord value: ${t}`);if(e){let u=x.zeros([1,1],"float64");return u.set([0,0],a),u}return a}function po(r,t=null,e=null,n=!1){if(t===null)return e===null?qr(r,2,null,n):typeof e=="number"?qr(r,2,e,n):Br(r,"fro",n);if(Array.isArray(e)){if(e.length!==2)throw new Error("norm: axis must be a 2-tuple for matrix norms");let o=e[0]<0?r.ndim+e[0]:e[0],a=e[1]<0?r.ndim+e[1]:e[1];if(r.ndim!==2||o!==0&&o!==1||a!==0&&a!==1||o===a)throw new Error("norm: complex axis specification not yet supported");return Br(r,t,n)}if(r.ndim===2&&e===null&&(t==="fro"||t==="nuc"))return Br(r,t,n);if(typeof t!="number"&&t!==null)throw new Error(`norm: ord '${t}' not valid for vector norm`);return qr(r,t??2,e,n)}function ie(r,t="reduced"){if(r.ndim!==2)throw new Error(`qr: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape,o=Math.min(e,n),a=x.zeros([e,n],"float64");for(let p=0;p<e;p++)for(let f=0;f<n;f++)a.set([p,f],Number(r.get(p,f)));let u=[],s=[];for(let p=0;p<o;p++){let f=e-p,y=[];for(let D=p;D<e;D++)y.push(Number(a.get(D,p)));let g=0;for(let D=0;D<f;D++)g+=y[D]*y[D];if(g=Math.sqrt(g),g<1e-15){u.push(y),s.push(0);continue}let h=y[0]>=0?1:-1,b=y[0]+h*g,A=[1];for(let D=1;D<f;D++)A.push(y[D]/b);let S=h*b/g;s.push(S),u.push(A);for(let D=p;D<n;D++){let w=0;for(let N=0;N<f;N++)w+=A[N]*Number(a.get(p+N,D));for(let N=0;N<f;N++)a.set([p+N,D],Number(a.get(p+N,D))-S*A[N]*w)}}if(t==="raw"){let p=x.zeros([e,n],"float64");for(let y=0;y<e;y++)for(let g=0;g<n;g++)p.set([y,g],Number(a.get(y,g)));let f=x.zeros([o],"float64");for(let y=0;y<o;y++)f.set([y],s[y]);return{h:p,tau:f}}if(t==="r"){let p=x.zeros([o,n],"float64");for(let f=0;f<o;f++)for(let y=f;y<n;y++)p.set([f,y],Number(a.get(f,y)));return p}let i=t==="complete"?e:o,c=x.zeros([e,i],"float64");for(let p=0;p<Math.min(e,i);p++)c.set([p,p],1);for(let p=o-1;p>=0;p--){let f=u[p],y=s[p],g=e-p;for(let h=p;h<i;h++){let b=0;for(let A=0;A<g;A++)b+=f[A]*Number(c.get(p+A,h));for(let A=0;A<g;A++)c.set([p+A,h],Number(c.get(p+A,h))-y*f[A]*b)}}let l=x.zeros([e,i],"float64");for(let p=0;p<e;p++)for(let f=0;f<i;f++)l.set([p,f],Number(c.get(p,f)));let m=t==="complete"?e:o,d=x.zeros([m,n],"float64");for(let p=0;p<m;p++)for(let f=0;f<n;f++)f>=p&&d.set([p,f],Number(a.get(p,f)));return{q:l,r:d}}function go(r,t=!1){if(r.ndim!==2)throw new Error(`cholesky: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`cholesky: matrix must be square, got ${e}x${n}`);let o=e,a=x.zeros([o,o],"float64");for(let u=0;u<o;u++)for(let s=0;s<=u;s++){let i=0;if(u===s){for(let l=0;l<s;l++)i+=Number(a.get(s,l))**2;let c=Number(r.get(s,s))-i;if(c<0)throw new Error("cholesky: matrix is not positive definite");a.set([s,s],Math.sqrt(c))}else{for(let l=0;l<s;l++)i+=Number(a.get(u,l))*Number(a.get(s,l));let c=Number(a.get(s,s));if(Math.abs(c)<1e-15)throw new Error("cholesky: matrix is not positive definite");a.set([u,s],(Number(r.get(u,s))-i)/c)}}if(t){let u=x.zeros([o,o],"float64");for(let s=0;s<o;s++)for(let i=s;i<o;i++)u.set([s,i],Number(a.get(i,s)));return u}return a}function _r(r){if(r.ndim!==2)throw new Error(`svd: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape,n=Math.min(t,e),o=x.zeros([e,e],"float64");for(let m=0;m<e;m++)for(let d=0;d<e;d++){let p=0;for(let f=0;f<t;f++)p+=Number(r.get(f,m))*Number(r.get(f,d));o.set([m,d],p)}let{values:a,vectors:u}=ue(o),s=Array.from({length:e},(m,d)=>d);s.sort((m,d)=>a[d]-a[m]);let i=x.zeros([n],"float64");for(let m=0;m<n;m++){let d=a[s[m]];i.set([m],Math.sqrt(Math.max(0,d)))}let c=x.zeros([e,e],"float64");for(let m=0;m<e;m++)for(let d=0;d<e;d++)c.set([m,d],u[d][s[m]]);let l=x.zeros([t,t],"float64");for(let m=0;m<t;m++)for(let d=0;d<n;d++){let p=Number(i.get(d));if(p>1e-10){let f=0;for(let y=0;y<e;y++)f+=Number(r.get(m,y))*Number(c.get(d,y));l.set([m,d],f/p)}}if(t>n)for(let m=n;m<t;m++){let d=new Array(t).fill(0);d[m]=1;for(let f=0;f<m;f++){let y=0;for(let g=0;g<t;g++)y+=d[g]*Number(l.get(g,f));for(let g=0;g<t;g++)d[g]=d[g]-y*Number(l.get(g,f))}let p=0;for(let f=0;f<t;f++)p+=d[f]*d[f];if(p=Math.sqrt(p),p>1e-10)for(let f=0;f<t;f++)l.set([f,m],d[f]/p)}return{u:l,s:i,vt:c}}function ue(r){let t=r.shape[0],e=100*t*t,n=1e-10,o=[];for(let s=0;s<t;s++){o.push([]);for(let i=0;i<t;i++)o[s].push(Number(r.get(s,i)))}let a=[];for(let s=0;s<t;s++){a.push([]);for(let i=0;i<t;i++)a[s].push(s===i?1:0)}for(let s=0;s<e;s++){let i=0,c=0,l=1;for(let A=0;A<t;A++)for(let S=A+1;S<t;S++)Math.abs(o[A][S])>i&&(i=Math.abs(o[A][S]),c=A,l=S);if(i<n)break;let m=o[c][c],d=o[l][l],p=o[c][l],f;Math.abs(m-d)<1e-15?f=Math.PI/4:f=.5*Math.atan2(2*p,d-m);let y=Math.cos(f),g=Math.sin(f),h=y*y*m+g*g*d-2*g*y*p,b=g*g*m+y*y*d+2*g*y*p;o[c][c]=h,o[l][l]=b,o[c][l]=0,o[l][c]=0;for(let A=0;A<t;A++)if(A!==c&&A!==l){let S=o[A][c],D=o[A][l];o[A][c]=y*S-g*D,o[c][A]=o[A][c],o[A][l]=g*S+y*D,o[l][A]=o[A][l]}for(let A=0;A<t;A++){let S=a[A][c],D=a[A][l];a[A][c]=y*S-g*D,a[A][l]=g*S+y*D}}let u=[];for(let s=0;s<t;s++)u.push(o[s][s]);return{values:u,vectors:a}}function Ao(r,t=!0,e=!0){let n=_r(r);if(!e)return n.s;if(!t){let[o,a]=r.shape,u=Math.min(o,a),s=x.zeros([o,u],"float64");for(let c=0;c<o;c++)for(let l=0;l<u;l++)s.set([c,l],Number(n.u.get(c,l)));let i=x.zeros([u,a],"float64");for(let c=0;c<u;c++)for(let l=0;l<a;l++)i.set([c,l],Number(n.vt.get(c,l)));return{u:s,s:n.s,vt:i}}return n}function bo(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}=ce(r),s=a.data,i=u;for(let c=0;c<n;c++)i*=s[c*n+c];return i}function ce(r){let[t,e]=r.shape,n=t,o=e,a=x.zeros([n,o],"float64"),u=a.data,s=r.data;for(let l=0;l<n*o;l++)u[l]=Number(s[l]);let i=Array.from({length:n},(l,m)=>m),c=1;for(let l=0;l<Math.min(n,o);l++){let m=Math.abs(u[l*o+l]),d=l;for(let f=l+1;f<n;f++){let y=Math.abs(u[f*o+l]);y>m&&(m=y,d=f)}if(d!==l){for(let y=0;y<o;y++){let g=u[l*o+y];u[l*o+y]=u[d*o+y],u[d*o+y]=g}let f=i[l];i[l]=i[d],i[d]=f,c=-c}let p=u[l*o+l];if(Math.abs(p)>1e-15)for(let f=l+1;f<n;f++){let y=u[f*o+l]/p;u[f*o+l]=y;for(let g=l+1;g<o;g++)u[f*o+g]=u[f*o+g]-y*u[l*o+g]}}return{lu:a,piv:i,sign:c}}function ht(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}=ce(r),u=o.data,s=x.zeros([n,n],"float64"),i=s.data;for(let c=0;c<n;c++){let l=new Float64Array(n);for(let m=0;m<n;m++){let d=a[m]===c?1:0;for(let p=0;p<m;p++)d-=u[m*n+p]*l[p];l[m]=d}for(let m=n-1;m>=0;m--){let d=l[m];for(let f=m+1;f<n;f++)d-=u[m*n+f]*i[f*n+c];let p=u[m*n+m];if(Math.abs(p)<1e-15)throw new Error("inv: singular matrix");i[m*n+c]=d/p}}return s}function so(r,t){let[e]=r.shape,n=e,{lu:o,piv:a}=ce(r),u=o.data,s=t.data,i=new Float64Array(n);for(let d=0;d<n;d++)i[d]=Number(s[a[d]]);let c=new Float64Array(n);for(let d=0;d<n;d++){let p=i[d];for(let f=0;f<d;f++)p-=u[d*n+f]*c[f];c[d]=p}let l=x.zeros([n],"float64"),m=l.data;for(let d=n-1;d>=0;d--){let p=c[d];for(let y=d+1;y<n;y++)p-=u[d*n+y]*m[y];let f=u[d*n+d];if(Math.abs(f)<1e-15)throw new Error("solve: singular matrix");m[d]=p/f}return l}function ho(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 so(r,t)}if(t.ndim===2){if(t.shape[0]!==o)throw new Error(`solve: incompatible shapes (${e},${n}) and (${t.shape[0]},${t.shape[1]})`);let a=t.shape[1],u=x.zeros([o,a],"float64");for(let s=0;s<a;s++){let i=x.zeros([o],"float64");for(let l=0;l<o;l++)i.set([l],Number(t.get(l,s)));let c=so(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 So(r,t,e=null){if(r.ndim!==2)throw new Error(`lstsq: coefficient matrix must be 2D, got ${r.ndim}D`);let[n,o]=r.shape,{u:a,s:u,vt:s}=_r(r),i=Math.min(n,o),c=e??Math.max(n,o)*Number.EPSILON,m=Number(u.get(0))*c,d=0;for(let b=0;b<i;b++)Number(u.get(b))>m&&d++;let p=t.ndim===1?nr(t,[t.size,1]):t,f=p.shape[1];if(p.shape[0]!==n)throw new Error(`lstsq: incompatible shapes (${n},${o}) and (${t.shape.join(",")})`);let y=x.zeros([o,f],"float64");for(let b=0;b<f;b++){let A=new Array(n).fill(0);for(let S=0;S<n;S++)for(let D=0;D<n;D++)A[S]+=Number(a.get(D,S))*Number(p.get(D,b));for(let S=0;S<o;S++){let D=0;for(let w=0;w<i;w++){let N=Number(u.get(w));N>m&&(D+=Number(s.get(w,S))*A[w]/N)}y.set([S,b],D)}}let g;if(n>o){g=x.zeros([f],"float64");for(let b=0;b<f;b++){let A=0;for(let S=0;S<n;S++){let D=0;for(let N=0;N<o;N++)D+=Number(r.get(S,N))*Number(y.get(N,b));let w=D-Number(p.get(S,b));A+=w*w}g.set([b],A)}}else g=x.zeros([0],"float64");return{x:t.ndim===1?nr(y,[o]):y,residuals:g,rank:d,s:u}}function Do(r,t=2){if(r.ndim!==2)throw new Error(`cond: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(t===2||t===-2){let{s}=_r(r),i=Math.min(e,n),c=Number(s.get(0)),l=Number(s.get(i-1));return t===2?l>0?c/l:1/0:c>0?l/c:0}if(e!==n)throw new Error(`cond: matrix must be square for p=${t}`);let o=Br(r,t),a=ht(r),u=Br(a,t);return o*u}function xo(r,t){if(r.ndim===0)return Number(r.get())!==0?1:0;if(r.ndim===1){for(let u=0;u<r.size;u++)if(Number(r.get(u))!==0)return 1;return 0}if(r.ndim!==2)throw new Error(`matrix_rank: input must be at most 2D, got ${r.ndim}D`);let{s:e}=_r(r),n=Number(e.get(0)),o=t??n*Math.max(r.shape[0],r.shape[1])*Number.EPSILON,a=0;for(let u=0;u<e.size;u++)Number(e.get(u))>o&&a++;return a}function No(r,t){if(r.ndim!==2)throw new Error(`matrix_power: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`matrix_power: matrix must be square, got ${e}x${n}`);let o=e;if(!Number.isInteger(t))throw new Error("matrix_power: exponent must be an integer");if(t===0){let c=x.zeros([o,o],"float64");for(let l=0;l<o;l++)c.set([l,l],1);return c}let a=r,u=t;t<0&&(a=ht(r),u=-t);let s=x.zeros([o,o],"float64");for(let c=0;c<o;c++)s.set([c,c],1);let i=x.zeros([o,o],"float64");for(let c=0;c<o;c++)for(let l=0;l<o;l++)i.set([c,l],Number(a.get(c,l)));for(;u>0;)u&1&&(s=pr(s,i)),i=pr(i,i),u>>=1;return s}function wo(r,t=1e-15){if(r.ndim!==2)throw new Error(`pinv: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape,{u:o,s:a,vt:u}=_r(r),s=Math.min(e,n),c=Number(a.get(0))*t,l=x.zeros([n,e],"float64");for(let m=0;m<n;m++)for(let d=0;d<e;d++){let p=0;for(let f=0;f<s;f++){let y=Number(a.get(f));y>c&&(p+=Number(u.get(f,m))*Number(o.get(d,f))/y)}l.set([m,d],p)}return l}function le(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}=ue(r),m=x.zeros([n],"float64"),d=x.zeros([n,n],"float64");for(let p=0;p<n;p++){m.set([p],c[p]);for(let f=0;f<n;f++)d.set([f,p],l[f][p])}return{w:m,v:d}}console.warn("numpy-ts: eig() called on non-symmetric matrix. Complex eigenvalues are not supported; results may be inaccurate. For symmetric matrices, use eigh() instead.");let{values:a,vectors:u}=iu(r),s=x.zeros([n],"float64"),i=x.zeros([n,n],"float64");for(let c=0;c<n;c++){s.set([c],a[c]);for(let l=0;l<n;l++)i.set([l,c],u[l][c])}return{w:s,v:i}}function iu(r){let t=r.shape[0],e=1e3,n=1e-10,o=x.zeros([t,t],"float64");for(let i=0;i<t;i++)for(let c=0;c<t;c++)o.set([i,c],Number(r.get(i,c)));let a=x.zeros([t,t],"float64");for(let i=0;i<t;i++)a.set([i,i],1);for(let i=0;i<e;i++){let c=0;for(let p=0;p<t;p++)for(let f=0;f<t;f++)p!==f&&(c+=Number(o.get(p,f))**2);if(Math.sqrt(c)<n*t)break;let l=ie(o,"reduced"),m=l.q,d=l.r;o=pr(d,m),a=pr(a,m)}let u=[];for(let i=0;i<t;i++)u.push(Number(o.get(i,i)));let s=[];for(let i=0;i<t;i++){s.push([]);for(let c=0;c<t;c++)s[i].push(Number(a.get(i,c)))}return{values:u,vectors:s}}function fe(r,t="L"){if(r.ndim!==2)throw new Error(`eigh: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`eigh: matrix must be square, got ${e}x${n}`);let o=e,a=x.zeros([o,o],"float64");for(let m=0;m<o;m++)for(let d=0;d<o;d++)t==="L"?m>=d&&(a.set([m,d],Number(r.get(m,d))),a.set([d,m],Number(r.get(m,d)))):d>=m&&(a.set([m,d],Number(r.get(m,d))),a.set([d,m],Number(r.get(m,d))));let{values:u,vectors:s}=ue(a),i=Array.from({length:o},(m,d)=>d);i.sort((m,d)=>u[m]-u[d]);let c=x.zeros([o],"float64"),l=x.zeros([o,o],"float64");for(let m=0;m<o;m++){c.set([m],u[i[m]]);for(let d=0;d<o;d++)l.set([d,m],s[d][i[m]])}return{w:c,v:l}}function Io(r){let{w:t}=le(r);return t}function zo(r,t="L"){let{w:e}=fe(r,t);return e}function _o(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=Math.sqrt(i*i+c*c),m=Math.sqrt((l+i)/2),d=(c>=0?1:-1)*Math.sqrt((l-i)/2);u[s*2]=m,u[s*2+1]=d}return a}return Y(r,Math.sqrt,!1)}function Fo(r,t){if(typeof t=="number")return lu(r,t);let e=M(r.dtype),n=M(t.dtype);return e||n?cu(r,t):J(r,t,Math.pow,"power")}function cu(r,t){let e=M(r.dtype),n=M(t.dtype),o=r.dtype==="complex128"||t.dtype==="complex128"||t.dtype==="float64"?"complex128":"complex64",a=Array.from(r.shape),u=r.size,s=x.zeros(a,o),i=s.data;for(let c=0;c<u;c++){let l,m;if(e){let S=r.data;l=S[c*2],m=S[c*2+1]}else l=Number(r.iget(c)),m=0;let d,p;if(n){let S=t.data;d=S[c*2],p=S[c*2+1]}else d=Number(t.iget(c)),p=0;let f=Math.sqrt(l*l+m*m),y=Math.atan2(m,l),g=Math.log(f),h=d*g-p*y,b=d*y+p*g,A=Math.exp(h);i[c*2]=A*Math.cos(b),i[c*2+1]=A*Math.sin(b)}return s}function lu(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size;if(M(e)){let m=x.zeros(n,e),d=o,p=m.data;for(let f=0;f<a;f++){let y=d[f*2],g=d[f*2+1],h=Math.sqrt(y*y+g*g),b=Math.atan2(g,y),A=Math.pow(h,t),S=b*t;p[f*2]=A*Math.cos(S),p[f*2+1]=A*Math.sin(S)}return m}let i=e!=="float32"&&e!=="float64"&&(t<0||!Number.isInteger(t))?"float64":e,c=x.zeros(n,i),l=c.data;if(B(e))if(B(i)&&Number.isInteger(t)&&t>=0){let m=o,d=l;for(let p=0;p<a;p++)d[p]=m[p]**BigInt(t)}else for(let m=0;m<a;m++)l[m]=Math.pow(Number(o[m]),t);else for(let m=0;m<a;m++)l[m]=Math.pow(Number(o[m]),t);return c}function Mo(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=Math.exp(i);u[s*2]=l*Math.cos(c),u[s*2+1]=l*Math.sin(c)}return a}return Y(r,Math.exp,!1)}function Bo(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=Math.LN2,u=x.zeros(e,t),s=u.data;for(let i=0;i<n;i++){let c=o[i*2],l=o[i*2+1],m=Math.exp(c*a),d=l*a;s[i*2]=m*Math.cos(d),s[i*2+1]=m*Math.sin(d)}return u}return Y(r,e=>Math.pow(2,e),!1)}function vo(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=Math.exp(i);u[s*2]=l*Math.cos(c)-1,u[s*2+1]=l*Math.sin(c)}return a}return Y(r,Math.expm1,!1)}function Eo(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=Math.sqrt(i*i+c*c),m=Math.atan2(c,i);u[s*2]=Math.log(l),u[s*2+1]=m}return a}return Y(r,Math.log,!1)}function To(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=1/Math.LN2,u=x.zeros(e,t),s=u.data;for(let i=0;i<n;i++){let c=o[i*2],l=o[i*2+1],m=Math.sqrt(c*c+l*l),d=Math.atan2(l,c);s[i*2]=Math.log(m)*a,s[i*2+1]=d*a}return u}return Y(r,Math.log2,!1)}function Oo(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=1/Math.LN10,u=x.zeros(e,t),s=u.data;for(let i=0;i<n;i++){let c=o[i*2],l=o[i*2+1],m=Math.sqrt(c*c+l*l),d=Math.atan2(l,c);s[i*2]=Math.log(m)*a,s[i*2+1]=d*a}return u}return Y(r,Math.log10,!1)}function Co(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=1+i,m=Math.sqrt(l*l+c*c),d=Math.atan2(c,l);u[s*2]=Math.log(m),u[s*2+1]=d}return a}return Y(r,Math.log1p,!1)}function Uo(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"?mu(r,t):fu(r,t)}function fu(r,t){let e=Ir(r.shape,t.shape),n=e.reduce((c,l)=>c*l,1),o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",s=x.zeros(e,u),i=s.data;for(let c=0;c<n;c++){let l=(B(o),Number(r.iget(c))),m=(B(a),Number(t.iget(c))),d=Math.max(l,m),p=Math.min(l,m);i[c]=d+Math.log1p(Math.exp(p-d))}return s}function mu(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",u=x.zeros(n,a),s=u.data;for(let i=0;i<o;i++){let c=(B(e),Number(r.data[i])),l=Math.max(c,t),m=Math.min(c,t);s[i]=l+Math.log1p(Math.exp(m-l))}return u}function $o(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"?pu(r,t):yu(r,t)}function yu(r,t){let e=Ir(r.shape,t.shape),n=e.reduce((l,m)=>l*m,1),o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",s=x.zeros(e,u),i=s.data,c=Math.LOG2E;for(let l=0;l<n;l++){let m=(B(o),Number(r.iget(l))),d=(B(a),Number(t.iget(l))),p=Math.max(m,d),f=Math.min(m,d);i[l]=p+Math.log1p(Math.pow(2,f-p))*c}return s}function pu(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",u=x.zeros(n,a),s=u.data,i=Math.LOG2E;for(let c=0;c<o;c++){let l=(B(e),Number(r.data[c])),m=Math.max(l,t),d=Math.min(l,t);s[c]=m+Math.log1p(Math.pow(2,d-m))*i}return u}function Ro(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1];u[s*2]=Math.sin(i)*Math.cosh(c),u[s*2+1]=Math.cos(i)*Math.sinh(c)}return a}return Y(r,Math.sin,!1)}function ko(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1];u[s*2]=Math.cos(i)*Math.cosh(c),u[s*2+1]=-Math.sin(i)*Math.sinh(c)}return a}return Y(r,Math.cos,!1)}function qo(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=Math.cos(2*i)+Math.cosh(2*c);u[s*2]=Math.sin(2*i)/l,u[s*2+1]=Math.sinh(2*c)/l}return a}return Y(r,Math.tan,!1)}function Vo(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=-c,m=i,d=i*i-c*c,p=2*i*c,f=1-d,y=-p,g=Math.sqrt(f*f+y*y),h=Math.sqrt((g+f)/2),b=(y>=0?1:-1)*Math.sqrt((g-f)/2),A=l+h,S=m+b,D=Math.sqrt(A*A+S*S),w=Math.log(D),I=Math.atan2(S,A),z=-w;Math.abs(c)<1e-15&&i>1&&(z=-z),u[s*2]=I,u[s*2+1]=z}return a}return Y(r,Math.asin,!1)}function jo(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=i*i-c*c,m=2*i*c,d=1-l,p=-m,f=Math.sqrt(d*d+p*p),y=Math.sqrt((f+d)/2),h=-((p>=0?1:-1)*Math.sqrt((f-d)/2)),b=y,A=i+h,S=c+b,D=Math.sqrt(A*A+S*S),w=Math.log(D),I=Math.atan2(S,A),z=-w;Math.abs(c)<1e-15&&i>1&&(z=-z),u[s*2]=I,u[s*2+1]=z}return a}return Y(r,Math.acos,!1)}function Po(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],l=-o[s*2+1],m=i,d=1-l,p=-m,f=1+l,y=m,g=f*f+y*y,h=(d*f+p*y)/g,b=(p*f-d*y)/g,A=Math.sqrt(h*h+b*b),S=Math.log(A),D=Math.atan2(b,h);u[s*2]=-D/2,u[s*2+1]=S/2}return a}return Y(r,Math.atan,!1)}function Lo(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"?Au(r,t):gu(r,t)}function gu(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",s=x.zeros(e,u),i=s.data;for(let c=0;c<n;c++){let l=(B(o),Number(r.data[c])),m=(B(a),Number(t.data[c]));i[c]=Math.atan2(l,m)}return s}function Au(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=e==="float32"?"float32":"float64",s=x.zeros(n,u),i=s.data;if(B(e))for(let c=0;c<a;c++)i[c]=Math.atan2(Number(o[c]),t);else for(let c=0;c<a;c++)i[c]=Math.atan2(Number(o[c]),t);return s}function Zo(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"?hu(r,t):bu(r,t)}function bu(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",s=x.zeros(e,u),i=s.data;for(let c=0;c<n;c++){let l=(B(o),Number(r.data[c])),m=(B(a),Number(t.data[c]));i[c]=Math.hypot(l,m)}return s}function hu(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=e==="float32"?"float32":"float64",s=x.zeros(n,u),i=s.data;if(B(e))for(let c=0;c<a;c++)i[c]=Math.hypot(Number(o[c]),t);else for(let c=0;c<a;c++)i[c]=Math.hypot(Number(o[c]),t);return s}function Go(r){q(r.dtype,"degrees","degrees is only defined for real numbers.");let t=180/Math.PI;return Y(r,e=>e*t,!1)}function Wo(r){q(r.dtype,"radians","radians is only defined for real numbers.");let t=Math.PI/180;return Y(r,e=>e*t,!1)}function Yo(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1];u[s*2]=Math.sinh(i)*Math.cos(c),u[s*2+1]=Math.cosh(i)*Math.sin(c)}return a}return Y(r,Math.sinh,!1)}function Ho(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1];u[s*2]=Math.cosh(i)*Math.cos(c),u[s*2+1]=Math.sinh(i)*Math.sin(c)}return a}return Y(r,Math.cosh,!1)}function Jo(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=Math.cosh(2*i)+Math.cos(2*c);u[s*2]=Math.sinh(2*i)/l,u[s*2+1]=Math.sin(2*c)/l}return a}return Y(r,Math.tanh,!1)}function Xo(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=i*i-c*c,m=2*i*c,d=l+1,p=m,f=Math.sqrt(d*d+p*p),y=Math.sqrt((f+d)/2),g=(p>=0?1:-1)*Math.sqrt((f-d)/2),h=i+y,b=c+g,A=Math.sqrt(h*h+b*b);u[s*2]=Math.log(A),u[s*2+1]=Math.atan2(b,h)}return a}return Y(r,Math.asinh,!1)}function Qo(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=i*i-c*c,m=2*i*c,d=l-1,p=m,f=Math.sqrt(d*d+p*p),y=Math.sqrt((f+d)/2),g=(p>=0?1:-1)*Math.sqrt((f-d)/2),h=i+y,b=c+g,A=Math.sqrt(h*h+b*b),S=Math.log(A),D=Math.atan2(b,h);Math.abs(c)<1e-15&&i<1&&(D=-D),u[s*2]=S,u[s*2+1]=D}return a}return Y(r,Math.acosh,!1)}function Ko(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=x.zeros(e,t),u=a.data;for(let s=0;s<n;s++){let i=o[s*2],c=o[s*2+1],l=1+i,m=c,d=1-i,p=-c,f=d*d+p*p,y=(l*d+m*p)/f,g=(m*d-l*p)/f,h=Math.sqrt(y*y+g*g),b=Math.log(h),A=Math.atan2(g,y);u[s*2]=b/2,u[s*2+1]=A/2}return a}return Y(r,Math.atanh,!1)}function St(r,t){let e=r.shape,n=e.length,o=t.length;if(o<n)throw new Error("input operand has more dimensions than allowed by the axis remapping");let a=yr([Array.from(e),t]);if(a===null)throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${t.join(",")})`);for(let u=0;u<o;u++)if(a[u]!==t[u])throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${t.join(",")})`);return lr(r,t)}function ra(r){if(r.length===0)return[];if(r.length===1)return[r[0]];let t=r.map(n=>Array.from(n.shape)),e=yr(t);if(e===null)throw new Error(`operands could not be broadcast together with shapes ${t.map(n=>`(${n.join(",")})`).join(" ")}`);return r.map(n=>lr(n,e))}function ta(r,t,e){let n=r.shape,o=n.length,a=r.dtype;if(e===void 0){let f=r.size;for(let b of t){let A=b<0?f+b:b;if(A<0||A>=f)throw new Error(`index ${b} is out of bounds for axis 0 with size ${f}`)}let y=t.length,g=P(a);if(!g)throw new Error(`Cannot take from array with dtype ${a}`);let h=new g(y);for(let b=0;b<y;b++){let A=t[b];A<0&&(A=f+A);let S=r.iget(A);B(a),h[b]=S}return x.fromData(h,[y],a)}let u=e<0?o+e:e;if(u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=n[u];for(let f of t){let y=f<0?s+f:f;if(y<0||y>=s)throw new Error(`index ${f} is out of bounds for axis ${u} with size ${s}`)}let i=Array.from(n);i[u]=t.length;let c=i.reduce((f,y)=>f*y,1),l=P(a);if(!l)throw new Error(`Cannot take from array with dtype ${a}`);let m=new l(c),d=or(i),p=new Array(o).fill(0);for(let f=0;f<c;f++){let y=[...p],g=p[u],h=t[g];h<0&&(h=s+h),y[u]=h;let b=r.get(...y),A=0;for(let S=0;S<o;S++)A+=p[S]*d[S];B(a),m[A]=b;for(let S=o-1;S>=0&&(p[S]++,!(p[S]<i[S]));S--)p[S]=0}return x.fromData(m,i,a)}function ea(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 na(r,t){if(t.length===0)throw new Error("choices cannot be empty");let e=r.shape,n=t.length,o=t[0].dtype,a=t.map(d=>Array.from(d.shape));a.unshift(Array.from(e));let u=yr(a);if(u===null)throw new Error("operands could not be broadcast together");let s=lr(r,u),i=t.map(d=>lr(d,u)),c=u.reduce((d,p)=>d*p,1),l=P(o);if(!l)throw new Error(`Cannot choose with dtype ${o}`);let m=new l(c);for(let d=0;d<c;d++){let p=Number(s.iget(d));if(p<0||p>=n)throw new Error(`index ${p} is out of bounds for axis 0 with size ${n}`);let f=i[p].iget(d);B(o),m[d]=f}return x.fromData(m,u,o)}function oa(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 aa(r,t,e){let n=r.shape,o=n.length,a=r.dtype,u=e<0?o+e:e;if(u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=t.shape;if(s.length!==o)throw new Error(`indices and arr must have the same number of dimensions, got ${s.length} vs ${o}`);for(let y=0;y<o;y++)if(y!==u&&s[y]!==n[y]&&s[y]!==1&&n[y]!==1)throw new Error(`index ${s[y]} is out of bounds for size ${n[y]} in dimension ${y}`);let i=Array.from(s),c=i.reduce((y,g)=>y*g,1),l=P(a);if(!l)throw new Error(`Cannot take_along_axis with dtype ${a}`);let m=new l(c),d=or(n),p=or(s),f=n[u];for(let y=0;y<c;y++){let g=new Array(o),h=y;for(let N=o-1;N>=0;N--)g[N]=h%i[N],h=Math.floor(h/i[N]);let b=0;for(let N=0;N<o;N++){let I=s[N]===1?0:g[N];b+=I*p[N]}let A=Number(t.iget(b));if(A<0&&(A=f+A),A<0||A>=f)throw new Error(`index ${A} is out of bounds for axis ${u} with size ${f}`);let S=[...g];S[u]=A;let D=0;for(let N=0;N<o;N++){let I=n[N]===1?0:S[N];D+=I*d[N]}let w=r.iget(D);B(a),m[y]=w}return x.fromData(m,i,a)}function sa(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=or(o),d=or(i),p=or(c),f=i.reduce((y,g)=>y*g,1);for(let y=0;y<f;y++){let g=new Array(a),h=y;for(let I=a-1;I>=0;I--)g[I]=h%i[I],h=Math.floor(h/i[I]);let b=0;for(let I=0;I<a;I++)b+=g[I]*d[I];let A=Number(t.iget(b));if(A<0&&(A=l+A),A<0||A>=l)throw new Error(`index ${A} is out of bounds for axis ${s} with size ${l}`);let S=0;for(let I=0;I<a;I++){let z=c[I]===1?0:g[I];S+=z*p[I]}let D=e.iget(S),w=[...g];w[s]=A;let N=0;for(let I=0;I<a;I++)N+=w[I]*m[I];B(u)?typeof D!="bigint"&&(D=BigInt(Math.round(Number(D)))):typeof D=="bigint"&&(D=Number(D)),r.iset(N,D)}}function ia(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 me(r,t,e){let n=t.shape,o=n.length,a=t.dtype,u=t.data,s=B(a);if(e===void 0){let b=0,A=Math.min(r.size,t.size);for(let N=0;N<A;N++)r.iget(N)&&b++;let S=P(a);if(!S)throw new Error(`Cannot compress with dtype ${a}`);let D=new S(b),w=0;for(let N=0;N<A;N++)r.iget(N)&&(D[w]=u[N],w++);return x.fromData(D,[b],a)}let i=e<0?o+e:e;if(i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let c=n[i],l=Math.min(r.size,c),m=[];for(let b=0;b<l;b++)r.iget(b)&&m.push(b);let d=m.length,p=[...n];p[i]=d;let f=p.reduce((b,A)=>b*A,1),y=P(a);if(!y)throw new Error(`Cannot compress with dtype ${a}`);let g=new y(f),h=or(n);if(i===0){let b=h[0],A=n.slice(1).reduce((D,w)=>D*w,1),S=0;for(let D=0;D<d;D++){let N=m[D]*b;if(s){let I=u,z=g;for(let F=0;F<A;F++)z[S++]=I[N+F]}else{let I=u,z=g;for(let F=0;F<A;F++)z[S++]=I[N+F]}}}else{let b=n.slice(0,i).reduce((D,w)=>D*w,1),A=n.slice(i+1).reduce((D,w)=>D*w,1),S=0;for(let D=0;D<b;D++)for(let w=0;w<d;w++){let N=m[w],I=0,z=D;for(let F=i-1;F>=0;F--){let _=z%n[F];z=Math.floor(z/n[F]),I+=_*h[F]}if(I+=N*h[i],s){let F=u,_=g;for(let E=0;E<A;E++)_[S++]=F[I+E]}else{let F=u,_=g;for(let E=0;E<A;E++)_[S++]=F[I+E]}}}return x.fromData(g,p,a)}function ua(r,t,e=0){if(r.length!==t.length)throw new Error("condlist and choicelist must have same length");if(r.length===0)throw new Error("condlist and choicelist cannot be empty");let n=[...r.map(d=>Array.from(d.shape)),...t.map(d=>Array.from(d.shape))],o=yr(n);if(o===null)throw new Error("condlist and choicelist arrays could not be broadcast together");let a=t[0].dtype,u=o.reduce((d,p)=>d*p,1),s=P(a);if(!s)throw new Error(`Cannot select with dtype ${a}`);let i=e;B(a)?i=typeof e=="bigint"?e:BigInt(e):i=typeof e=="bigint"?Number(e):e;let c=new s(u);for(let d=0;d<u;d++)B(a),c[d]=i;let l=r.map(d=>lr(d,o)),m=t.map(d=>lr(d,o));for(let d=0;d<u;d++)for(let p=0;p<r.length;p++)if(l[p].iget(d)){let f=m[p].iget(d);B(a),c[d]=f;break}return x.fromData(c,o,a)}function ca(r,t,e){let n=r.size,o=r.dtype,a=[];for(let s=0;s<e.size;s++){let i=e.iget(s);a.push(i instanceof O?i.re:i)}if(a.length===0)return;let u=0;for(let s=0;s<n;s++)if(t.iget(s)){let c=a[u%a.length];B(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),r.iset(s,c),u++}}function ye(r,t=2){if(t<1)throw new Error("ndim must be at least 1");let e=new Int32Array(r);for(let o=0;o<r;o++)e[o]=o;let n=[];for(let o=0;o<t;o++)n.push(x.fromData(new Int32Array(e),[r],"int32"));return n}function la(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 ye(n,e)}function pe(r,t=0,e){let n=e??r,o=[],a=[];for(let u=0;u<r;u++)for(let s=0;s<=Math.min(u+t,n-1);s++)s>=0&&(o.push(u),a.push(s));return[x.fromData(new Int32Array(o),[o.length],"int32"),x.fromData(new Int32Array(a),[a.length],"int32")]}function fa(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return pe(e[0],t,e[1])}function de(r,t=0,e){let n=e??r,o=[],a=[];for(let u=0;u<r;u++)for(let s=Math.max(u+t,0);s<n;s++)o.push(u),a.push(s);return[x.fromData(new Int32Array(o),[o.length],"int32"),x.fromData(new Int32Array(a),[a.length],"int32")]}function ma(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return de(e[0],t,e[1])}function ya(r,t,e=0){let n=t(r,e),o=n.shape;if(o.length!==2||o[0]!==r||o[1]!==r)throw new Error("mask_func must return n x n array");let a=[],u=[];for(let s=0;s<r;s++)for(let i=0;i<r;i++)n.get(s,i)&&(a.push(s),u.push(i));return[x.fromData(new Int32Array(a),[a.length],"int32"),x.fromData(new Int32Array(u),[u.length],"int32")]}function pa(r,t="int32"){let e=r.length,n=[e,...r],o=n.reduce((i,c)=>i*c,1),a=P(t);if(!a)throw new Error(`Cannot create indices with dtype ${t}`);let u=new a(o),s=r.reduce((i,c)=>i*c,1);for(let i=0;i<e;i++){let c=i*s;for(let l=0;l<s;l++){let m=new Array(e),d=l;for(let f=e-1;f>=0;f--)m[f]=d%r[f],d=Math.floor(d/r[f]);let p=m[i];t==="int64"?u[c+l]=BigInt(p):u[c+l]=p}}return x.fromData(u,n,t)}function da(...r){let t=r.length,e=[];for(let n=0;n<t;n++){let o=r[n],a=o.size,u=o.dtype,s=new Array(t).fill(1);s[n]=a;let i=P(u);if(!i)throw new Error(`Cannot create ix_ with dtype ${u}`);let c=new i(a);for(let l=0;l<a;l++){let m=o.iget(l);B(u),c[l]=m}e.push(x.fromData(c,s,u))}return e}function ga(r,t,e="raise"){if(r.length!==t.length)throw new Error("multi_index length must equal dims length");if(r.length===0)throw new Error("multi_index cannot be empty");let n=r[0].size,o=t.length,a=new Int32Array(n),u=new Array(o),s=1;for(let i=o-1;i>=0;i--)u[i]=s,s*=t[i];for(let i=0;i<n;i++){let c=0;for(let l=0;l<o;l++){let m=Number(r[l].iget(i)),d=t[l];if(e==="wrap")m=(m%d+d)%d;else if(e==="clip")m=Math.max(0,Math.min(m,d-1));else if(m<0||m>=d)throw new Error(`index ${m} is out of bounds for axis ${l} with size ${d}`);c+=m*u[l]}a[i]=c}return x.fromData(a,[n],"int32")}function Aa(r,t,e="C"){let n=t.length,o,a;if(typeof r=="number")o=[r],a=[];else{o=[];for(let l=0;l<r.size;l++)o.push(Number(r.iget(l)));a=Array.from(r.shape)}let u=o.length,s=t.reduce((l,m)=>l*m,1),i=new Array(n);if(e==="C"){let l=1;for(let m=n-1;m>=0;m--)i[m]=l,l*=t[m]}else{let l=1;for(let m=0;m<n;m++)i[m]=l,l*=t[m]}let c=[];for(let l=0;l<n;l++){let m=new Int32Array(u);c.push(x.fromData(m,a.length?a:[1],"int32"))}for(let l=0;l<u;l++){let m=o[l];if(m<0||m>=s)throw new Error(`index ${m} is out of bounds for array with size ${s}`);if(e==="C")for(let d=0;d<n;d++){let p=Math.floor(m/i[d]);m=m%i[d],c[d].data[l]=p%t[d]}else for(let d=n-1;d>=0;d--){let p=Math.floor(m/i[d]);m=m%i[d],c[d].data[l]=p%t[d]}}return typeof r=="number"?c.map(l=>{let m=l.iget(0);return x.fromData(new Int32Array([Number(m)]),[],"int32")}):c}function ba(r,t,e=!1){let n=r.shape,o=n.length;if(o<2)throw new Error("array must be at least 2-d");let a;if(o===2)a=n[1]+1;else{a=1;for(let c=1;c<o;c++){let l=1;for(let m=c;m<o;m++)l*=n[m];a+=l}}let u=r.data,s=r.size,i=Math.min(...n);if(e&&o===2&&(i=Math.max(n[0],n[1])),typeof t=="number")for(let c=0;c<i&&c*a<s;c++){let l=c*a;if(l<s)u[l]=t;else break}else{let c=t.data,l=t.size;for(let m=0;m<i&&m*a<s;m++){let d=m*a;if(d<s)u[d]=c[m%l];else break}}}function dr(r,t){if(!en(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 rt(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function Da(r,t){return dr(r.dtype,"bitwise_and"),typeof t=="number"?wu(r,t):(dr(t.dtype,"bitwise_and"),rt(r,t)?Nu(r,t):J(r,t,(e,n)=>e&n,"bitwise_and"))}function Nu(r,t){let e=G(r.dtype,t.dtype),n=x.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(B(e)){let i=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),d=typeof u[l]=="bigint"?u[l]:BigInt(Math.round(Number(u[l])));i[l]=m&d}else{let l=a,m=u;for(let d=0;d<o;d++)i[d]=l[d]&m[d]}}else for(let i=0;i<o;i++)s[i]=a[i]&u[i];return n}function wu(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=x.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]&l}else for(let i=0;i<a;i++)s[i]=o[i]&t;return u}function xa(r,t){return dr(r.dtype,"bitwise_or"),typeof t=="number"?zu(r,t):(dr(t.dtype,"bitwise_or"),rt(r,t)?Iu(r,t):J(r,t,(e,n)=>e|n,"bitwise_or"))}function Iu(r,t){let e=G(r.dtype,t.dtype),n=x.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(B(e)){let i=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),d=typeof u[l]=="bigint"?u[l]:BigInt(Math.round(Number(u[l])));i[l]=m|d}else{let l=a,m=u;for(let d=0;d<o;d++)i[d]=l[d]|m[d]}}else for(let i=0;i<o;i++)s[i]=a[i]|u[i];return n}function zu(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=x.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]|l}else for(let i=0;i<a;i++)s[i]=o[i]|t;return u}function Na(r,t){return dr(r.dtype,"bitwise_xor"),typeof t=="number"?Fu(r,t):(dr(t.dtype,"bitwise_xor"),rt(r,t)?_u(r,t):J(r,t,(e,n)=>e^n,"bitwise_xor"))}function _u(r,t){let e=G(r.dtype,t.dtype),n=x.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(B(e)){let i=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),d=typeof u[l]=="bigint"?u[l]:BigInt(Math.round(Number(u[l])));i[l]=m^d}else{let l=a,m=u;for(let d=0;d<o;d++)i[d]=l[d]^m[d]}}else for(let i=0;i<o;i++)s[i]=a[i]^u[i];return n}function Fu(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=x.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]^l}else for(let i=0;i<a;i++)s[i]=o[i]^t;return u}function ge(r){dr(r.dtype,"bitwise_not");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=x.zeros(e,t),u=a.data;if(B(t)){let s=n,i=u;for(let c=0;c<o;c++)i[c]=~s[c]}else for(let s=0;s<o;s++)u[s]=~n[s];return a}function wa(r){return ge(r)}function Ia(r,t){if(dr(r.dtype,"left_shift"),typeof t=="number")return ha(r,t);if(dr(t.dtype,"left_shift"),t.size===1||t.ndim===1&&t.shape[0]===1){let e=B(t.dtype)?Number(t.data[0]):t.data[0];return ha(r,e)}return rt(r,t)?Mu(r,t):J(r,t,(e,n)=>e<<n,"left_shift")}function Mu(r,t){let e=G(r.dtype,t.dtype),n=x.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(B(e)){let i=s;for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?a[c]:BigInt(Math.round(Number(a[c]))),m=typeof u[c]=="bigint"?u[c]:BigInt(Math.round(Number(u[c])));i[c]=l<<m}}else for(let i=0;i<o;i++)s[i]=a[i]<<u[i];return n}function ha(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=x.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]<<l}else for(let i=0;i<a;i++)s[i]=o[i]<<t;return u}function za(r,t){if(dr(r.dtype,"right_shift"),typeof t=="number")return Sa(r,t);if(dr(t.dtype,"right_shift"),t.size===1||t.ndim===1&&t.shape[0]===1){let e=B(t.dtype)?Number(t.data[0]):t.data[0];return Sa(r,e)}return rt(r,t)?Bu(r,t):J(r,t,(e,n)=>e>>n,"right_shift")}function Bu(r,t){let e=G(r.dtype,t.dtype),n=x.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,s=n.data;if(B(e)){let i=s;for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?a[c]:BigInt(Math.round(Number(a[c]))),m=typeof u[c]=="bigint"?u[c]:BigInt(Math.round(Number(u[c])));i[c]=l>>m}}else for(let i=0;i<o;i++)s[i]=a[i]>>u[i];return n}function Sa(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=x.zeros(n,e),s=u.data;if(B(e)){let i=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=i[m]>>l}else for(let i=0;i<a;i++)s[i]=o[i]>>t;return u}function _a(r,t=-1,e="big"){let n=Array.from(r.shape),o=n.length;if(t<0&&(t=o+t),t<0||t>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let a=n[t],u=Math.ceil(a/8),s=[...n];s[t]=u;let i=x.zeros(s,"uint8"),c=i.data;if(o===1){for(let g=0;g<u;g++){let h=0;for(let b=0;b<8;b++){let A=g*8+b;if(A<a){let S=Number(r.data[A])!==0?1:0;e==="big"?h|=S<<7-b:h|=S<<b}}c[g]=h}return i}let l=n.slice(0,t),m=n.slice(t+1),d=l.reduce((g,h)=>g*h,1),p=m.reduce((g,h)=>g*h,1),f=Dt(n),y=Dt(s);for(let g=0;g<d;g++)for(let h=0;h<p;h++)for(let b=0;b<u;b++){let A=0;for(let N=0;N<8;N++){let I=b*8+N;if(I<a){let z=0,F=g;for(let T=0;T<t;T++){let C=T<t-1?l.slice(T+1).reduce((V,R)=>V*R,1):1,k=Math.floor(F/C);F%=C,z+=k*f[T]}z+=I*f[t];let _=h;for(let T=t+1;T<o;T++){let C=T<o-1?m.slice(T-t).reduce((V,R)=>V*R,1):1,k=Math.floor(_/C);_%=C,z+=k*f[T]}let E=Number(r.data[z])!==0?1:0;e==="big"?A|=E<<7-N:A|=E<<N}}let S=0,D=g;for(let N=0;N<t;N++){let I=N<t-1?l.slice(N+1).reduce((F,_)=>F*_,1):1,z=Math.floor(D/I);D%=I,S+=z*y[N]}S+=b*y[t];let w=h;for(let N=t+1;N<o;N++){let I=N<o-1?m.slice(N-t).reduce((F,_)=>F*_,1):1,z=Math.floor(w/I);w%=I,S+=z*y[N]}c[S]=A}return i}function Fa(r,t=-1,e=-1,n="big"){if(r.dtype!=="uint8")throw new TypeError("Expected an input array of unsigned byte data type");let o=Array.from(r.shape),a=o.length;if(t<0&&(t=a+t),t<0||t>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let u=o[t],s=u*8;e>=0&&(s=e);let i=[...o];i[t]=s;let c=x.zeros(i,"uint8"),l=c.data;if(a===1){for(let h=0;h<u;h++){let b=Number(r.data[h]);for(let A=0;A<8;A++){let S=h*8+A;if(S>=s)break;n==="big"?l[S]=b>>7-A&1:l[S]=b>>A&1}}return c}let m=o.slice(0,t),d=o.slice(t+1),p=m.reduce((h,b)=>h*b,1),f=d.reduce((h,b)=>h*b,1),y=Dt(o),g=Dt(i);for(let h=0;h<p;h++)for(let b=0;b<f;b++)for(let A=0;A<u;A++){let S=0,D=h;for(let I=0;I<t;I++){let z=I<t-1?m.slice(I+1).reduce((_,E)=>_*E,1):1,F=Math.floor(D/z);D%=z,S+=F*y[I]}S+=A*y[t];let w=b;for(let I=t+1;I<a;I++){let z=I<a-1?d.slice(I-t).reduce((_,E)=>_*E,1):1,F=Math.floor(w/z);w%=z,S+=F*y[I]}let N=Number(r.data[S]);for(let I=0;I<8;I++){let z=A*8+I;if(z>=s)break;let F=0;D=h;for(let _=0;_<t;_++){let E=_<t-1?m.slice(_+1).reduce((C,k)=>C*k,1):1,T=Math.floor(D/E);D%=E,F+=T*g[_]}F+=z*g[t],w=b;for(let _=t+1;_<a;_++){let E=_<a-1?d.slice(_-t).reduce((C,k)=>C*k,1):1,T=Math.floor(w/E);w%=E,F+=T*g[_]}n==="big"?l[F]=N>>7-I&1:l[F]=N>>I&1}}return c}function Dt(r){let t=r.length,e=new Array(t),n=1;for(let o=t-1;o>=0;o--)e[o]=n,n*=r[o];return e}function Vr(r){return r!==0&&r!==0n}function br(r,t){let e=r[t*2],n=r[t*2+1];return e!==0||n!==0}function et(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function Ba(r,t){return typeof t=="number"?Tu(r,t):et(r,t)?Eu(r,t):fr(r,t,(e,n)=>Vr(e)&&Vr(n))}function Eu(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.size,u=B(r.dtype),s=B(t.dtype),i=M(r.dtype),c=M(t.dtype);if(i||c)for(let l=0;l<a;l++){let m=i?br(n,l):n[l]!==0,d=c?br(o,l):o[l]!==0;e[l]=m&&d?1:0}else if(u||s)for(let l=0;l<a;l++){let m=u?n[l]!==0n:n[l]!==0,d=s?o[l]!==0n:o[l]!==0;e[l]=m&&d?1:0}else for(let l=0;l<a;l++)e[l]=n[l]!==0&&o[l]!==0?1:0;return x.fromData(e,Array.from(r.shape),"bool")}function Tu(r,t){let e=new Uint8Array(r.size),n=r.data,o=t!==0,a=r.size;if(M(r.dtype)){let u=n;for(let s=0;s<a;s++)e[s]=br(u,s)&&o?1:0}else if(B(r.dtype)){let u=n;for(let s=0;s<a;s++)e[s]=u[s]!==0n&&o?1:0}else for(let u=0;u<a;u++)e[u]=n[u]!==0&&o?1:0;return x.fromData(e,Array.from(r.shape),"bool")}function va(r,t){return typeof t=="number"?Cu(r,t):et(r,t)?Ou(r,t):fr(r,t,(e,n)=>Vr(e)||Vr(n))}function Ou(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.size,u=B(r.dtype),s=B(t.dtype),i=M(r.dtype),c=M(t.dtype);if(i||c)for(let l=0;l<a;l++){let m=i?br(n,l):n[l]!==0,d=c?br(o,l):o[l]!==0;e[l]=m||d?1:0}else if(u||s)for(let l=0;l<a;l++){let m=u?n[l]!==0n:n[l]!==0,d=s?o[l]!==0n:o[l]!==0;e[l]=m||d?1:0}else for(let l=0;l<a;l++)e[l]=n[l]!==0||o[l]!==0?1:0;return x.fromData(e,Array.from(r.shape),"bool")}function Cu(r,t){let e=new Uint8Array(r.size),n=r.data,o=t!==0,a=r.size;if(M(r.dtype)){let u=n;for(let s=0;s<a;s++)e[s]=br(u,s)||o?1:0}else if(B(r.dtype)){let u=n;for(let s=0;s<a;s++)e[s]=u[s]!==0n||o?1:0}else for(let u=0;u<a;u++)e[u]=n[u]!==0||o?1:0;return x.fromData(e,Array.from(r.shape),"bool")}function Ea(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(M(r.dtype)){let o=e;for(let a=0;a<n;a++)t[a]=br(o,a)?0:1}else if(B(r.dtype)){let o=e;for(let a=0;a<n;a++)t[a]=o[a]===0n?1:0}else for(let o=0;o<n;o++)t[o]=e[o]===0?1:0;return x.fromData(t,Array.from(r.shape),"bool")}function Ta(r,t){return typeof t=="number"?$u(r,t):et(r,t)?Uu(r,t):fr(r,t,(e,n)=>Vr(e)!==Vr(n))}function Uu(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.size,u=B(r.dtype),s=B(t.dtype),i=M(r.dtype),c=M(t.dtype);if(i||c)for(let l=0;l<a;l++){let m=i?br(n,l):n[l]!==0,d=c?br(o,l):o[l]!==0;e[l]=m!==d?1:0}else if(u||s)for(let l=0;l<a;l++){let m=u?n[l]!==0n:n[l]!==0,d=s?o[l]!==0n:o[l]!==0;e[l]=m!==d?1:0}else for(let l=0;l<a;l++){let m=n[l]!==0,d=o[l]!==0;e[l]=m!==d?1:0}return x.fromData(e,Array.from(r.shape),"bool")}function $u(r,t){let e=new Uint8Array(r.size),n=r.data,o=t!==0,a=r.size;if(M(r.dtype)){let u=n;for(let s=0;s<a;s++){let i=br(u,s);e[s]=i!==o?1:0}}else if(B(r.dtype)){let u=n;for(let s=0;s<a;s++){let i=u[s]!==0n;e[s]=i!==o?1:0}}else for(let u=0;u<a;u++){let s=n[u]!==0;e[u]=s!==o?1:0}return x.fromData(e,Array.from(r.shape),"bool")}function Oa(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(M(r.dtype)){let o=e;for(let a=0;a<n;a++){let u=o[a*2],s=o[a*2+1];t[a]=Number.isFinite(u)&&Number.isFinite(s)?1:0}}else if(B(r.dtype))for(let o=0;o<n;o++)t[o]=1;else for(let o=0;o<n;o++){let a=e[o];t[o]=Number.isFinite(a)?1:0}return x.fromData(t,Array.from(r.shape),"bool")}function Ca(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(M(r.dtype)){let o=e;for(let a=0;a<n;a++){let u=o[a*2],s=o[a*2+1],i=!Number.isFinite(u)&&!Number.isNaN(u),c=!Number.isFinite(s)&&!Number.isNaN(s);t[a]=i||c?1:0}}else if(B(r.dtype))for(let o=0;o<n;o++)t[o]=0;else for(let o=0;o<n;o++){let a=e[o];t[o]=!Number.isFinite(a)&&!Number.isNaN(a)?1:0}return x.fromData(t,Array.from(r.shape),"bool")}function Ua(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(M(r.dtype)){let o=e;for(let a=0;a<n;a++){let u=o[a*2],s=o[a*2+1];t[a]=Number.isNaN(u)||Number.isNaN(s)?1:0}}else if(B(r.dtype))for(let o=0;o<n;o++)t[o]=0;else for(let o=0;o<n;o++)t[o]=Number.isNaN(e[o])?1:0;return x.fromData(t,Array.from(r.shape),"bool")}function $a(r){let t=new Uint8Array(r.size);return x.fromData(t,Array.from(r.shape),"bool")}function Ra(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 ku(r,t);if(et(r,t))return Ru(r,t);let e=Ir(r.shape,t.shape),n=e.reduce((i,c)=>i*c,1),o=x.zeros(e,"float64"),a=o.data,u=xt(r,e),s=xt(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 Ru(r,t){let e=x.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size,a=r.data,u=t.data,s=B(r.dtype),i=B(t.dtype);for(let c=0;c<o;c++){let l=s?Number(a[c]):a[c],m=i?Number(u[c]):u[c];n[c]=Math.sign(m)*Math.abs(l)}return e}function ku(r,t){let e=x.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.data,a=r.size,u=Math.sign(t);if(B(r.dtype)){let s=o;for(let i=0;i<a;i++)n[i]=u*Math.abs(Number(s[i]))}else for(let s=0;s<a;s++)n[s]=u*Math.abs(o[s]);return e}function ka(r){q(r.dtype,"signbit","signbit is only defined for real numbers.");let t=new Uint8Array(r.size),e=r.data,n=r.size;if(B(r.dtype)){let o=e;for(let a=0;a<n;a++)t[a]=o[a]<0n?1:0}else for(let o=0;o<n;o++){let a=e[o];t[o]=a<0||Object.is(a,-0)?1:0}return x.fromData(t,Array.from(r.shape),"bool")}function qa(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 Vu(r,t);if(et(r,t))return qu(r,t);let e=Ir(r.shape,t.shape),n=e.reduce((i,c)=>i*c,1),o=x.zeros(e,"float64"),a=o.data,u=xt(r,e),s=xt(t,e);for(let i=0;i<n;i++){let c=Number(u.iget(i)),l=Number(s.iget(i));a[i]=tt(c,l)}return o}function qu(r,t){let e=x.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size,a=r.data,u=t.data,s=B(r.dtype),i=B(t.dtype);for(let c=0;c<o;c++){let l=s?Number(a[c]):a[c],m=i?Number(u[c]):u[c];n[c]=tt(l,m)}return e}function Vu(r,t){let e=x.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.data,a=r.size;if(B(r.dtype)){let u=o;for(let s=0;s<a;s++)n[s]=tt(Number(u[s]),t)}else for(let u=0;u<a;u++)n[u]=tt(o[u],t);return e}function tt(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 Va(r){q(r.dtype,"spacing","spacing is only defined for real numbers.");let t=x.zeros(Array.from(r.shape),"float64"),e=t.data,n=r.data,o=r.size;if(B(r.dtype)){let a=n;for(let u=0;u<o;u++)e[u]=Ma(Number(a[u]))}else for(let a=0;a<o;a++)e[a]=Ma(n[a]);return t}function Ma(r){if(Number.isNaN(r))return NaN;if(!Number.isFinite(r))return NaN;if(Math.abs(r)===0)return Number.MIN_VALUE;let e=tt(r,1/0);return Math.abs(e-r)}function xt(r,t){let e=r.shape.length,n=t.length,o=new Array(n).fill(0);for(let a=0;a<e;a++){let u=n-e+a,s=r.shape[a],i=t[u];if(s===i)o[u]=r.strides[a];else if(s===1)o[u]=0;else throw new Error("Invalid broadcast")}return x.fromData(r.data,Array.from(t),r.dtype,o,r.offset)}function ja(r){let t=r.dtype,e=r.size,n=new Uint8Array(e);if(M(t)){let o=r.data;for(let a=0;a<e;a++)n[a]=o[a*2+1]!==0?1:0}return x.fromData(n,Array.from(r.shape),"bool")}function Pa(r){return M(r.dtype)}function La(r){let t=r.dtype,e=r.size,n=new Uint8Array(e);if(M(t)){let o=r.data;for(let a=0;a<e;a++)n[a]=o[a*2+1]===0?1:0}else n.fill(1);return x.fromData(n,Array.from(r.shape),"bool")}function Za(r){return!M(r.dtype)}function Ga(r){q(r.dtype,"isneginf","This operation is not supported for complex values because it would be ambiguous.");let t=new Uint8Array(r.size),e=r.data,n=r.size;if(!B(r.dtype))for(let o=0;o<n;o++){let a=e[o];t[o]=a===-1/0?1:0}return x.fromData(t,Array.from(r.shape),"bool")}function Wa(r){q(r.dtype,"isposinf","This operation is not supported for complex values because it would be ambiguous.");let t=new Uint8Array(r.size),e=r.data,n=r.size;if(!B(r.dtype))for(let o=0;o<n;o++){let a=e[o];t[o]=a===1/0?1:0}return x.fromData(t,Array.from(r.shape),"bool")}function Ya(r){return r.isFContiguous}function Ha(r,t=100){let e=r.dtype;if(M(e)){let n=r.data,o=r.size,u=t*(e==="complex64"?11920929e-14:2220446049250313e-31),s=!0;for(let i=0;i<o;i++){let c=n[i*2+1];if(Math.abs(c)>u){s=!1;break}}if(s){let i=e==="complex64"?"float32":"float64",c=x.zeros(Array.from(r.shape),i),l=c.data;for(let m=0;m<o;m++)l[m]=n[m*2];return c}return r.copy()}return r.copy()}function Ja(r){return typeof r=="number"||typeof r=="bigint"||typeof r=="boolean"||typeof r=="string"}function Xa(r){return r==null?!1:typeof r[Symbol.iterator]=="function"}function Qa(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 Ka(r,t){let e=["float64","float32","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"],n=e.indexOf(r),o=e.indexOf(t);return n<=o?r:t}function rs(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(M(t)){let o=Lr(t),a=x.zeros(e,o),u=a.data,s=r.data;for(let i=0;i<n;i++)u[i]=s[i*2];return a}return r.copy()}function ts(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(M(t)){let a=Lr(t),u=x.zeros(e,a),s=u.data,i=r.data;for(let c=0;c<n;c++)s[c]=i[c*2+1];return u}let o=t==="float32"?"float32":"float64";return x.zeros(e,o)}function es(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(M(t)){let o=P(t),a=n*2,u=new o(a),s=r.data;for(let i=0;i<n;i++)u[i*2]=s[i*2],u[i*2+1]=-s[i*2+1];return x.fromData(u,e,t)}return r.copy()}function ns(r,t=!1){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=x.zeros(n,"float64"),u=a.data;if(M(e)){let s=r.data;for(let i=0;i<o;i++){let c=s[i*2],l=s[i*2+1],m=Math.atan2(l,c);t&&(m=m*180/Math.PI),u[i]=m}}else for(let s=0;s<o;s++){let i=r.iget(s),l=(i instanceof O?i.re:Number(i))>=0?0:Math.PI;t&&(l=l*180/Math.PI),u[s]=l}return a}function hr(r,t,e){if(e){let n=r[t*2],o=r[t*2+1];return n!==0||o!==0}return!!r[t]}function nt(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 Ae(r,t=-1){let e=r.shape,n=e.length,o=r.dtype,a=r.data;if(n===0)return r.copy();let u=t;if(u<0&&(u=n+u),u<0||u>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let s=r.copy(),i=s.data,c=e[u],l=Array.from(e).filter((d,p)=>p!==u),m=l.length===0?1:l.reduce((d,p)=>d*p,1);if(M(o)){let d=a,p=i;for(let f=0;f<m;f++){let y=[];for(let g=0;g<c;g++){let h=$(f,u,g,e),b=U(h,e);y.push({re:d[b*2],im:d[b*2+1],idx:g})}y.sort((g,h)=>nt(g.re,g.im,h.re,h.im));for(let g=0;g<c;g++){let h=$(f,u,g,e),b=U(h,e);p[b*2]=y[g].re,p[b*2+1]=y[g].im}}}else if(B(o)){let d=a,p=i;for(let f=0;f<m;f++){let y=[];for(let g=0;g<c;g++){let h=$(f,u,g,e),b=U(h,e);y.push({value:d[b],idx:g})}y.sort((g,h)=>g.value<h.value?-1:g.value>h.value?1:0);for(let g=0;g<c;g++){let h=$(f,u,g,e),b=U(h,e);p[b]=y[g].value}}}else for(let d=0;d<m;d++){let p=[];for(let f=0;f<c;f++){let y=$(d,u,f,e),g=U(y,e);p.push(Number(a[g]))}p.sort((f,y)=>isNaN(f)&&isNaN(y)?0:isNaN(f)?1:isNaN(y)?-1:f-y);for(let f=0;f<c;f++){let y=$(d,u,f,e),g=U(y,e);i[g]=p[f]}}return s}function be(r,t=-1){let e=r.shape,n=e.length,o=r.dtype,a=r.data;if(n===0)return x.zeros([0],"int32");let u=t;if(u<0&&(u=n+u),u<0||u>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let s=x.zeros(Array.from(e),"int32"),i=s.data,c=e[u],l=Array.from(e).filter((d,p)=>p!==u),m=l.length===0?1:l.reduce((d,p)=>d*p,1);if(M(o)){let d=a;for(let p=0;p<m;p++){let f=[];for(let y=0;y<c;y++){let g=$(p,u,y,e),h=U(g,e);f.push({re:d[h*2],im:d[h*2+1],idx:y})}f.sort((y,g)=>nt(y.re,y.im,g.re,g.im));for(let y=0;y<c;y++){let g=$(p,u,y,e),h=U(g,e);i[h]=f[y].idx}}}else if(B(o)){let d=a;for(let p=0;p<m;p++){let f=[];for(let y=0;y<c;y++){let g=$(p,u,y,e),h=U(g,e);f.push({value:d[h],idx:y})}f.sort((y,g)=>y.value<g.value?-1:y.value>g.value?1:0);for(let y=0;y<c;y++){let g=$(p,u,y,e),h=U(g,e);i[h]=f[y].idx}}}else for(let d=0;d<m;d++){let p=[];for(let f=0;f<c;f++){let y=$(d,u,f,e),g=U(y,e);p.push({value:Number(a[g]),idx:f})}p.sort((f,y)=>isNaN(f.value)&&isNaN(y.value)?0:isNaN(f.value)?1:isNaN(y.value)?-1:f.value-y.value);for(let f=0;f<c;f++){let y=$(d,u,f,e),g=U(y,e);i[g]=p[f].idx}}return s}function os(r){if(r.length===0)return x.zeros([0],"int32");let e=r[0].size;for(let u of r){if(u.ndim!==1)throw new Error("keys must be 1D arrays");if(u.size!==e)throw new Error("all keys must have the same length")}let n=[];for(let u=0;u<e;u++)n.push(u);n.sort((u,s)=>{for(let i=r.length-1;i>=0;i--){let l=r[i].data,m=Number(l[u]),d=Number(l[s]);if(!(isNaN(m)&&isNaN(d))){if(isNaN(m))return 1;if(isNaN(d)||m<d)return-1;if(m>d)return 1}}return 0});let o=x.zeros([e],"int32"),a=o.data;for(let u=0;u<e;u++)a[u]=n[u];return o}function Lu(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e],u=r[o],s=r[n],i;a<=u&&u<=s||s<=u&&u<=a?i=o:u<=a&&a<=s||s<=a&&a<=u?i=e:i=n;let c=r[i];[r[i],r[n]]=[r[n],r[i]];let l=e;for(let m=e;m<n;m++){let d=r[m],p=isNaN(d),f=isNaN(c);!p&&(f||d<=c)&&([r[l],r[m]]=[r[m],r[l]],l++)}if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function Zu(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 Gu(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e].value,u=r[o].value,s=r[n].value,i;a<=u&&u<=s||s<=u&&u<=a?i=o:u<=a&&a<=s||s<=a&&a<=u?i=e:i=n;let c=r[i].value;[r[i],r[n]]=[r[n],r[i]];let l=e;for(let m=e;m<n;m++){let d=r[m].value,p=isNaN(d),f=isNaN(c);!p&&(f||d<=c)&&([r[l],r[m]]=[r[m],r[l]],l++)}if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function Wu(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 he(r,t,e=-1){let n=r.shape,o=n.length,a=r.dtype;if(o===0)return r.copy();let u=e;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=n[u],i=t;if(i<0&&(i=s+i),i<0||i>=s)throw new Error(`kth(=${t}) out of bounds (${s})`);let c=r.copy(),l=c.data,m=Array.from(n).filter((p,f)=>f!==u),d=m.length===0?1:m.reduce((p,f)=>p*f,1);if(B(a)){let p=l;for(let f=0;f<d;f++){let y=[];for(let g=0;g<s;g++){let h=$(f,u,g,n),b=U(h,n);y.push(p[b])}Zu(y,i);for(let g=0;g<s;g++){let h=$(f,u,g,n),b=U(h,n);p[b]=y[g]}}}else for(let p=0;p<d;p++){let f=[];for(let y=0;y<s;y++){let g=$(p,u,y,n),h=U(g,n);f.push(Number(l[h]))}Lu(f,i);for(let y=0;y<s;y++){let g=$(p,u,y,n),h=U(g,n);l[h]=f[y]}}return c}function Se(r,t,e=-1){let n=r.shape,o=n.length,a=r.dtype,u=r.data;if(o===0)return x.zeros([0],"int32");let s=e;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=n[s],c=t;if(c<0&&(c=i+c),c<0||c>=i)throw new Error(`kth(=${t}) out of bounds (${i})`);let l=x.zeros(Array.from(n),"int32"),m=l.data,d=Array.from(n).filter((f,y)=>y!==s),p=d.length===0?1:d.reduce((f,y)=>f*y,1);if(B(a)){let f=u;for(let y=0;y<p;y++){let g=[];for(let h=0;h<i;h++){let b=$(y,s,h,n),A=U(b,n);g.push({value:f[A],idx:h})}Wu(g,c);for(let h=0;h<i;h++){let b=$(y,s,h,n),A=U(b,n);m[A]=g[h].idx}}}else for(let f=0;f<p;f++){let y=[];for(let g=0;g<i;g++){let h=$(f,s,g,n),b=U(h,n);y.push({value:Number(u[b]),idx:g})}Gu(y,c);for(let g=0;g<i;g++){let h=$(f,s,g,n),b=U(h,n);m[b]=y[g].idx}}return l}function as(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)=>nt(i.re,i.im,c.re,c.im));let u=x.zeros([e],"complex128"),s=u.data;for(let i=0;i<e;i++)s[i*2]=a[i].re,s[i*2+1]=a[i].im;return u}else{let o=[];for(let s=0;s<e;s++)o.push(Number(n[s]));o.sort((s,i)=>isNaN(s)&&isNaN(i)?0:isNaN(s)?1:isNaN(i)?-1:s-i);let a=x.zeros([e],"complex128"),u=a.data;for(let s=0;s<e;s++)u[s*2]=o[s],u[s*2+1]=0;return a}}function Nt(r){let t=r.shape,e=t.length,n=r.data,o=r.size,a=M(r.dtype),u=[];for(let m=0;m<e;m++)u.push([]);let s=[],i=1;for(let m=e-1;m>=0;m--)s.unshift(i),i*=t[m];for(let m=0;m<o;m++)if(hr(n,m,a)){let d=m;for(let p=0;p<e;p++){let f=Math.floor(d/s[p]);d=d%s[p],u[p].push(f)}}let c=u[0]?.length??0,l=[];for(let m=0;m<e;m++){let d=x.zeros([c],"int32"),p=d.data;for(let f=0;f<c;f++)p[f]=u[m][f];l.push(d)}return l}function De(r){let t=r.shape,e=t.length,n=r.data,o=r.size,a=M(r.dtype),u=[],s=[],i=1;for(let p=e-1;p>=0;p--)s.unshift(i),i*=t[p];for(let p=0;p<o;p++)if(hr(n,p,a)){let f=[],y=p;for(let g=0;g<e;g++){let h=Math.floor(y/s[g]);y=y%s[g],f.push(h)}u.push(f)}let c=u.length,l=e===0?[c,1]:[c,e],m=x.zeros(l,"int32"),d=m.data;for(let p=0;p<c;p++){let f=u[p];for(let y=0;y<(e===0?1:e);y++)d[p*(e===0?1:e)+y]=f[y]??0}return m}function ss(r){let t=r.data,e=r.size,n=M(r.dtype),o=[];for(let s=0;s<e;s++)hr(t,s,n)&&o.push(s);let a=x.zeros([o.length],"int32"),u=a.data;for(let s=0;s<o.length;s++)u[s]=o[s];return a}function is(r,t,e){if(t===void 0&&e===void 0)return Nt(r);if(t===void 0||e===void 0)throw new Error("either both or neither of x and y should be given");let n=r.shape,o=t.shape,a=e.shape,u=Math.max(n.length,o.length,a.length),s=_=>{let E=Array(u).fill(1);for(let T=0;T<_.length;T++)E[u-_.length+T]=_[T];return E},i=s(n),c=s(o),l=s(a),m=[];for(let _=0;_<u;_++){let E=[i[_],c[_],l[_]],T=Math.max(...E);for(let C of E)if(C!==1&&C!==T)throw new Error("operands could not be broadcast together");m.push(T)}let d=t.dtype,p=x.zeros(m,d),f=p.data,y=r.data,g=t.data,h=e.data,b=(_,E)=>{let T=[],C=1;for(let k=_.length-1;k>=0;k--)T.unshift(C),C*=_[k];for(;T.length<E.length;)T.unshift(0);for(let k=0;k<E.length;k++)E[k]===1&&m[k]!==1&&(T[k]=0);return T},A=b(n,i),S=b(o,c),D=b(a,l),w=[],N=1;for(let _=m.length-1;_>=0;_--)w.unshift(N),N*=m[_];let I=m.reduce((_,E)=>_*E,1),z=M(r.dtype),F=M(d);for(let _=0;_<I;_++){let E=_,T=0,C=0,k=0;for(let V=0;V<u;V++){let R=Math.floor(E/w[V]);E=E%w[V],T+=R*A[V],C+=R*S[V],k+=R*D[V]}hr(y,T,z)?F?(f[_*2]=g[C*2],f[_*2+1]=g[C*2+1]):f[_]=g[C]:F?(f[_*2]=h[k*2],f[_*2+1]=h[k*2+1]):f[_]=h[k]}return p}function xe(r,t,e="left"){if(r.ndim!==1)throw new Error("storage must be 1D");let n=r.data,o=r.size,a=t.data,u=t.size,s=M(r.dtype),i=x.zeros([u],"int32"),c=i.data;if(s){let l=n,m=a;for(let d=0;d<u;d++){let p=m[d*2],f=m[d*2+1],y=0,g=o;if(e==="left")for(;y<g;){let h=Math.floor((y+g)/2),b=l[h*2],A=l[h*2+1];nt(b,A,p,f)<0?y=h+1:g=h}else for(;y<g;){let h=Math.floor((y+g)/2),b=l[h*2],A=l[h*2+1];nt(b,A,p,f)<=0?y=h+1:g=h}c[d]=y}}else for(let l=0;l<u;l++){let m=Number(a[l]),d=0,p=o;if(e==="left")for(;d<p;){let f=Math.floor((d+p)/2);Number(n[f])<m?d=f+1:p=f}else for(;d<p;){let f=Math.floor((d+p)/2);Number(n[f])<=m?d=f+1:p=f}c[l]=d}return i}function us(r,t){let e=r.data,n=t.data,o=t.dtype,a=M(r.dtype),u=M(o),s=Math.min(r.size,t.size),i=0;for(let d=0;d<s;d++)hr(e,d,a)&&i++;let c=x.zeros([i],o),l=c.data,m=0;if(B(o)){let d=n,p=l;for(let f=0;f<s;f++)hr(e,f,a)&&(p[m++]=d[f])}else if(u){let d=n,p=l;for(let f=0;f<s;f++)hr(e,f,a)&&(p[m*2]=d[f*2],p[m*2+1]=d[f*2+1],m++)}else for(let d=0;d<s;d++)hr(e,d,a)&&(l[m++]=n[d]);return c}function Ne(r,t){let e=r.shape,n=e.length,o=r.data,a=r.size,u=M(r.dtype);if(t===void 0){let p=0;for(let f=0;f<a;f++)hr(o,f,u)&&p++;return p}let s=t;if(s<0&&(s=n+s),s<0||s>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=Array.from(e).filter((p,f)=>f!==s);if(i.length===0)return Ne(r);let c=x.zeros(i,"int32"),l=c.data,m=e[s],d=i.reduce((p,f)=>p*f,1);for(let p=0;p<d;p++){let f=0;for(let y=0;y<m;y++){let g=$(p,s,y,e),h=U(g,e);hr(o,h,u)&&f++}l[p]=f}return c}function cs(r){if(!isFinite(r))return r;let t=Math.floor(r),e=r-t;return Math.abs(e-.5)<1e-10?t%2===0?t:t+1:Math.round(r)}function we(r,t=0){q(r.dtype,"around","Rounding is not defined for complex numbers.");let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=e==="float32"?"float32":"float64",s=x.zeros(n,u),i=s.data,c=Math.pow(10,t);for(let l=0;l<a;l++){let m=Number(o[l]);i[l]=cs(m*c)/c}return s}function Ie(r){q(r.dtype,"ceil","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",u=x.zeros(e,a),s=u.data;for(let i=0;i<o;i++)s[i]=Math.ceil(Number(n[i]));return u}function ze(r){q(r.dtype,"fix","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",u=x.zeros(e,a),s=u.data;for(let i=0;i<o;i++)s[i]=Math.trunc(Number(n[i]));return u}function _e(r){q(r.dtype,"floor","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",u=x.zeros(e,a),s=u.data;for(let i=0;i<o;i++)s[i]=Math.floor(Number(n[i]));return u}function Fe(r){q(r.dtype,"rint","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",u=x.zeros(e,a),s=u.data;for(let i=0;i<o;i++)s[i]=cs(Number(n[i]));return u}function Me(r){q(r.dtype,"trunc","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",u=x.zeros(e,a),s=u.data;for(let i=0;i<o;i++)s[i]=Math.trunc(Number(n[i]));return u}function Be(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 Ju(r,t,e,n){let o=isNaN(r)||isNaN(t),a=isNaN(e)||isNaN(n);return o&&a?!0:o||a?!1:r===e&&t===n}function xr(r,t=!1,e=!1,n=!1){let o=r.dtype,a=r.size,u=r.data;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)=>Be(R.re,R.im,L.re,L.im));let D=[],w=[],N=new Array(a),I=[],z,F,_=0;for(let R=0;R<S.length;R++){let{re:L,im:j,index:H}=S[R];z===void 0||!Ju(L,j,z,F)?(z!==void 0&&I.push(_),D.push({re:L,im:j}),w.push(H),_=1,z=L,F=j):_++}_>0&&I.push(_);let E=new Map,T=-1;for(let R=0;R<D.length;R++){let{re:L,im:j}=D[R];isNaN(L)||isNaN(j)?T=R:E.set(`${L},${j}`,R)}for(let R=0;R<a;R++){let L=A[R*2],j=A[R*2+1];isNaN(L)||isNaN(j)?N[R]=T:N[R]=E.get(`${L},${j}`)}let C=x.zeros([D.length],o),k=C.data;for(let R=0;R<D.length;R++)k[R*2]=D[R].re,k[R*2+1]=D[R].im;if(!t&&!e&&!n)return C;let V={values:C};if(t){let R=x.zeros([w.length],"int32"),L=R.data;for(let j=0;j<w.length;j++)L[j]=w[j];V.indices=R}if(e){let R=x.zeros([N.length],"int32"),L=R.data;for(let j=0;j<N.length;j++)L[j]=N[j];V.inverse=R}if(n){let R=x.zeros([I.length],"int32"),L=R.data;for(let j=0;j<I.length;j++)L[j]=I[j];V.counts=R}return V}let s=[];for(let A=0;A<a;A++)s.push({value:Number(u[A]),index:A});s.sort((A,S)=>isNaN(A.value)&&isNaN(S.value)?0:isNaN(A.value)?1:isNaN(S.value)?-1:A.value-S.value);let i=[],c=[],l=new Array(a),m=[],d,p=0;for(let A=0;A<s.length;A++){let{value:S,index:D}=s[A];d===void 0||isNaN(S)&&!isNaN(d)||!isNaN(S)&&isNaN(d)||!isNaN(S)&&!isNaN(d)&&S!==d?(d!==void 0&&m.push(p),i.push(S),c.push(D),p=1,d=S):p++}p>0&&m.push(p);let f=new Map,y=-1;for(let A=0;A<i.length;A++){let S=i[A];isNaN(S)?y=A:f.set(S,A)}for(let A=0;A<a;A++){let S=Number(u[A]);isNaN(S)?l[A]=y:l[A]=f.get(S)}let g=x.zeros([i.length],o),h=g.data;for(let A=0;A<i.length;A++)h[A]=i[A];if(!t&&!e&&!n)return g;let b={values:g};if(t){let A=x.zeros([c.length],"int32"),S=A.data;for(let D=0;D<c.length;D++)S[D]=c[D];b.indices=A}if(e){let A=x.zeros([l.length],"int32"),S=A.data;for(let D=0;D<l.length;D++)S[D]=l[D];b.inverse=A}if(n){let A=x.zeros([m.length],"int32"),S=A.data;for(let D=0;D<m.length;D++)S[D]=m[D];b.counts=A}return b}function Sr(r,t,e){if(e){let n=Number(r[t*2]),o=Number(r[t*2+1]);return`${n},${o}`}return String(Number(r[t]))}function ls(r,t){return ve(r,t)}function fs(r,t){let e=r.dtype,n=M(e),o=xr(r),a=xr(t),u=new Set;for(let l=0;l<a.size;l++)u.add(Sr(a.data,l,n));let s=[];for(let l=0;l<o.size;l++){let m=Sr(o.data,l,n);u.has(m)&&s.push(l)}if(n){let l=x.zeros([s.length],e),m=l.data,d=o.data;for(let p=0;p<s.length;p++){let f=s[p];m[p*2]=d[f*2],m[p*2+1]=d[f*2+1]}return l}let i=x.zeros([s.length],e),c=i.data;for(let l=0;l<s.length;l++)c[l]=o.data[s[l]];return i}function ve(r,t){let e=Array.from(r.shape),n=r.size,o=M(r.dtype),a=new Set;for(let i=0;i<t.size;i++)a.add(Sr(t.data,i,o));let u=x.zeros(e,"bool"),s=u.data;for(let i=0;i<n;i++){let c=Sr(r.data,i,o);s[i]=a.has(c)?1:0}return u}function ms(r,t){let e=r.dtype,n=M(e),o=xr(r),a=new Set;for(let c=0;c<t.size;c++)a.add(Sr(t.data,c,n));let u=[];for(let c=0;c<o.size;c++){let l=Sr(o.data,c,n);a.has(l)||u.push(c)}if(n){let c=x.zeros([u.length],e),l=c.data,m=o.data;for(let d=0;d<u.length;d++){let p=u[d];l[d*2]=m[p*2],l[d*2+1]=m[p*2+1]}return c}let s=x.zeros([u.length],e),i=s.data;for(let c=0;c<u.length;c++)i[c]=o.data[u[c]];return s}function ys(r,t){let e=r.dtype,n=M(e),o=xr(r),a=xr(t),u=new Set,s=new Set;for(let p=0;p<o.size;p++)u.add(Sr(o.data,p,n));for(let p=0;p<a.size;p++)s.add(Sr(a.data,p,n));let i=[],c=[];for(let p=0;p<o.size;p++){let f=Sr(o.data,p,n);s.has(f)||i.push(p)}for(let p=0;p<a.size;p++){let f=Sr(a.data,p,n);u.has(f)||c.push(p)}if(n){let p=[],f=o.data,y=a.data;for(let b of i)p.push({re:f[b*2],im:f[b*2+1]});for(let b of c)p.push({re:y[b*2],im:y[b*2+1]});p.sort((b,A)=>Be(b.re,b.im,A.re,A.im));let g=x.zeros([p.length],e),h=g.data;for(let b=0;b<p.length;b++)h[b*2]=p[b].re,h[b*2+1]=p[b].im;return g}let l=[];for(let p of i)l.push(Number(o.data[p]));for(let p of c)l.push(Number(a.data[p]));l.sort((p,f)=>isNaN(p)&&isNaN(f)?0:isNaN(p)?1:isNaN(f)?-1:p-f);let m=x.zeros([l.length],e),d=m.data;for(let p=0;p<l.length;p++)d[p]=l[p];return m}function ps(r,t){let e=r.dtype,n=M(e),o=xr(r),a=xr(t),u=new Set,s=[];if(n){let m=o.data,d=a.data;for(let y=0;y<o.size;y++){let g=m[y*2],h=m[y*2+1],b=`${g},${h}`;u.has(b)||(u.add(b),s.push({re:g,im:h}))}for(let y=0;y<a.size;y++){let g=d[y*2],h=d[y*2+1],b=`${g},${h}`;u.has(b)||(u.add(b),s.push({re:g,im:h}))}s.sort((y,g)=>Be(y.re,y.im,g.re,g.im));let p=x.zeros([s.length],e),f=p.data;for(let y=0;y<s.length;y++)f[y*2]=s[y].re,f[y*2+1]=s[y].im;return p}let i=[];for(let m=0;m<o.size;m++){let d=Number(o.data[m]),p=String(d);u.has(p)||(u.add(p),i.push(d))}for(let m=0;m<a.size;m++){let d=Number(a.data[m]),p=String(d);u.has(p)||(u.add(p),i.push(d))}i.sort((m,d)=>isNaN(m)&&isNaN(d)?0:isNaN(m)?1:isNaN(d)?-1:m-d);let c=x.zeros([i.length],e),l=c.data;for(let m=0;m<i.length;m++)l[m]=i[m];return c}function Ee(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=Qu(u,a);return u}function Qu(r,t){let e=Array.from(r.shape),n=e.length,o=e[t],a=[...e];a[t]=o-1;let u=r.dtype,s=M(u),i=B(u)?"float64":u,c=x.zeros(a,i),l=c.data,m=r.strides,d=c.size;for(let p=0;p<d;p++){let f=p,y=new Array(n);for(let S=n-1;S>=0;S--)y[S]=f%a[S],f=Math.floor(f/a[S]);let g=[...y],h=[...y];h[t]=g[t]+1;let b=0,A=0;for(let S=0;S<n;S++)b+=g[S]*m[S],A+=h[S]*m[S];if(s){let S=r.data,D=S[b*2],w=S[b*2+1],N=S[A*2],I=S[A*2+1];l[p*2]=N-D,l[p*2+1]=I-w}else{let S=(B(u),Number(r.data[b])),D=(B(u),Number(r.data[A]));l[p]=D-S}}return c}function ds(r,t=null,e=null){let n=r.size,o=r.dtype,a=M(o),u=B(o)?"float64":o,s=Math.max(0,n-1),i=e?e.length:0,c=t?t.length:0,l=i+s+c,m=x.zeros([l],u),d=m.data,p=0;if(e)if(a)for(let f of e)d[p*2]=f,d[p*2+1]=0,p++;else for(let f of e)d[p++]=f;if(a){let f=r.data;for(let y=0;y<s;y++){let g=f[y*2],h=f[y*2+1],b=f[(y+1)*2],A=f[(y+1)*2+1];d[p*2]=b-g,d[p*2+1]=A-h,p++}}else for(let f=0;f<s;f++){let y=(B(o),Number(r.iget(f))),g=(B(o),Number(r.iget(f+1)));d[p++]=g-y}if(t)if(a)for(let f of t)d[p*2]=f,d[p*2+1]=0,p++;else for(let f of t)d[p++]=f;return m}function gs(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(Ku(r,a[i],u[i]));return s.length===1?s[0]:s}function Ku(r,t,e){let n=Array.from(r.shape),o=n.length,a=n[t];if(a<2)throw new Error(`Shape of array along axis ${t} must be at least 2, but got ${a}`);let u=r.dtype,s=M(u),i=B(u)?"float64":u==="float32"?"float32":s?u:"float64",c=x.zeros(n,i),l=c.data,m=r.strides,d=e,p=2*d,f=r.size;for(let y=0;y<f;y++){let g=y,h=new Array(o);for(let A=o-1;A>=0;A--)h[A]=g%n[A],g=Math.floor(g/n[A]);let b=h[t];if(s){let A=r.data,S=l,D,w;if(b===0){let N=[...h];N[t]=1;let I=0;for(let T=0;T<o;T++)I+=N[T]*m[T];let z=A[y*2],F=A[y*2+1],_=A[I*2],E=A[I*2+1];D=(_-z)/d,w=(E-F)/d}else if(b===a-1){let N=[...h];N[t]=a-2;let I=0;for(let T=0;T<o;T++)I+=N[T]*m[T];let z=A[y*2],F=A[y*2+1],_=A[I*2],E=A[I*2+1];D=(z-_)/d,w=(F-E)/d}else{let N=[...h],I=[...h];N[t]=b+1,I[t]=b-1;let z=0,F=0;for(let k=0;k<o;k++)z+=N[k]*m[k],F+=I[k]*m[k];let _=A[z*2],E=A[z*2+1],T=A[F*2],C=A[F*2+1];D=(_-T)/p,w=(E-C)/p}S[y*2]=D,S[y*2+1]=w}else{let A;if(b===0){let S=[...h];S[t]=1;let D=0;for(let I=0;I<o;I++)D+=S[I]*m[I];let w=(B(u),Number(r.data[y]));A=((B(u),Number(r.data[D]))-w)/d}else if(b===a-1){let S=[...h];S[t]=a-2;let D=0;for(let I=0;I<o;I++)D+=S[I]*m[I];let w=(B(u),Number(r.data[y])),N=(B(u),Number(r.data[D]));A=(w-N)/d}else{let S=[...h],D=[...h];S[t]=b+1,D[t]=b-1;let w=0,N=0;for(let F=0;F<o;F++)w+=S[F]*m[F],N+=D[F]*m[F];let I=(B(u),Number(r.data[w])),z=(B(u),Number(r.data[N]));A=(I-z)/p}l[y]=A}}return c}function As(r,t,e=-1,n=-1,o=-1){let a=Array.from(r.shape),u=Array.from(t.shape),s=a.length,i=u.length,c=e<0?s+e:e,l=n<0?i+n:n;if(c<0||c>=s)throw new Error(`axisa ${e} is out of bounds for array of dimension ${s}`);if(l<0||l>=i)throw new Error(`axisb ${n} is out of bounds for array of dimension ${i}`);let m=a[c],d=u[l];if(m!==2&&m!==3)throw new Error(`incompatible dimensions for cross product (dimension must be 2 or 3, got ${m})`);if(d!==2&&d!==3)throw new Error(`incompatible dimensions for cross product (dimension must be 2 or 3, got ${d})`);let p=G(r.dtype,t.dtype),f=M(p),y=(b,A)=>{if(M(b.dtype)){let S=b.data;return[S[A*2],S[A*2+1]]}return[Number(b.iget(A)),0]},g=(b,A,S,D)=>[b*S-A*D,b*D+A*S],h=(b,A,S,D)=>[b-S,A-D];if(s===1&&i===1&&m===3&&d===3){let b=x.zeros([3],p);if(f){let A=b.data,[S,D]=y(r,0),[w,N]=y(r,1),[I,z]=y(r,2),[F,_]=y(t,0),[E,T]=y(t,1),[C,k]=y(t,2),[V,R]=g(w,N,C,k),[L,j]=g(I,z,E,T),[H,Q]=h(V,R,L,j),[Z,rr]=g(I,z,F,_),[tr,er]=g(S,D,C,k),[cr,vt]=h(Z,rr,tr,er),[Et,Tt]=g(S,D,E,T),[Ot,Ct]=g(w,N,F,_),[Ut,$t]=h(Et,Tt,Ot,Ct);A[0]=H,A[1]=Q,A[2]=cr,A[3]=vt,A[4]=Ut,A[5]=$t}else{let A=b.data,S=Number(r.iget(0)),D=Number(r.iget(1)),w=Number(r.iget(2)),N=Number(t.iget(0)),I=Number(t.iget(1)),z=Number(t.iget(2));A[0]=D*z-w*I,A[1]=w*N-S*z,A[2]=S*I-D*N}return b}if(s===1&&i===1&&m===2&&d===2){let b=x.zeros([],p);if(f){let A=b.data,[S,D]=y(r,0),[w,N]=y(r,1),[I,z]=y(t,0),[F,_]=y(t,1),[E,T]=g(S,D,F,_),[C,k]=g(w,N,I,z),[V,R]=h(E,T,C,k);A[0]=V,A[1]=R}else{let A=Number(r.iget(0)),S=Number(r.iget(1)),D=Number(t.iget(0)),w=Number(t.iget(1));b.data[0]=A*w-S*D}return b}if(s===1&&i===1){if(m===2&&d===3){let b=x.zeros([3],p);if(f){let A=b.data,[S,D]=y(r,0),[w,N]=y(r,1),[I,z]=y(t,0),[F,_]=y(t,1),[E,T]=y(t,2),[C,k]=g(w,N,E,T),[V,R]=g(S,D,E,T),L=-V,j=-R,[H,Q]=g(S,D,F,_),[Z,rr]=g(w,N,I,z),[tr,er]=h(H,Q,Z,rr);A[0]=C,A[1]=k,A[2]=L,A[3]=j,A[4]=tr,A[5]=er}else{let A=b.data,S=Number(r.iget(0)),D=Number(r.iget(1)),w=Number(t.iget(0)),N=Number(t.iget(1)),I=Number(t.iget(2));A[0]=D*I,A[1]=-S*I,A[2]=S*N-D*w}return b}else if(m===3&&d===2){let b=x.zeros([3],p);if(f){let A=b.data,[S,D]=y(r,0),[w,N]=y(r,1),[I,z]=y(r,2),[F,_]=y(t,0),[E,T]=y(t,1),[C,k]=g(I,z,E,T),V=-C,R=-k,[L,j]=g(I,z,F,_),[H,Q]=g(S,D,E,T),[Z,rr]=g(w,N,F,_),[tr,er]=h(H,Q,Z,rr);A[0]=V,A[1]=R,A[2]=L,A[3]=j,A[4]=tr,A[5]=er}else{let A=b.data,S=Number(r.iget(0)),D=Number(r.iget(1)),w=Number(r.iget(2)),N=Number(t.iget(0)),I=Number(t.iget(1));A[0]=-w*I,A[1]=w*N,A[2]=S*I-D*N}return b}}if(s===2&&i===2&&c===1&&l===1){let b=a[0];if(u[0]!==b)throw new Error(`Shape mismatch: a has ${b} vectors, b has ${u[0]} vectors`);if(m===3&&d===3){let A=x.zeros([b,3],p);if(f){let S=A.data;for(let D=0;D<b;D++){let[w,N]=y(r,D*3),[I,z]=y(r,D*3+1),[F,_]=y(r,D*3+2),[E,T]=y(t,D*3),[C,k]=y(t,D*3+1),[V,R]=y(t,D*3+2),[L,j]=g(I,z,V,R),[H,Q]=g(F,_,C,k),[Z,rr]=h(L,j,H,Q),[tr,er]=g(F,_,E,T),[cr,vt]=g(w,N,V,R),[Et,Tt]=h(tr,er,cr,vt),[Ot,Ct]=g(w,N,C,k),[Ut,$t]=g(I,z,E,T),[Oi,Ci]=h(Ot,Ct,Ut,$t);S[D*3*2]=Z,S[D*3*2+1]=rr,S[(D*3+1)*2]=Et,S[(D*3+1)*2+1]=Tt,S[(D*3+2)*2]=Oi,S[(D*3+2)*2+1]=Ci}}else{let S=A.data;for(let D=0;D<b;D++){let w=Number(r.iget(D*3)),N=Number(r.iget(D*3+1)),I=Number(r.iget(D*3+2)),z=Number(t.iget(D*3)),F=Number(t.iget(D*3+1)),_=Number(t.iget(D*3+2));S[D*3]=N*_-I*F,S[D*3+1]=I*z-w*_,S[D*3+2]=w*F-N*z}}return A}if(m===2&&d===2){let A=x.zeros([b],p);if(f){let S=A.data;for(let D=0;D<b;D++){let[w,N]=y(r,D*2),[I,z]=y(r,D*2+1),[F,_]=y(t,D*2),[E,T]=y(t,D*2+1),[C,k]=g(w,N,E,T),[V,R]=g(I,z,F,_),[L,j]=h(C,k,V,R);S[D*2]=L,S[D*2+1]=j}}else{let S=A.data;for(let D=0;D<b;D++){let w=Number(r.iget(D*2)),N=Number(r.iget(D*2+1)),I=Number(t.iget(D*2)),z=Number(t.iget(D*2+1));S[D]=w*z-N*I}}return A}}throw new Error(`cross product not implemented for arrays with shapes ${JSON.stringify(a)} and ${JSON.stringify(u)}`)}function bs(r,t,e=0){q(r.dtype,"bincount","bincount requires integer input.");let n=r.data,o=r.size,a=0;for(let s=0;s<o;s++){let i=Number(n[s]);if(i<0||!Number.isInteger(i))throw new Error("'x' argument must contain non-negative integers");i>a&&(a=i)}let u=Math.max(a+1,e);if(t!==void 0){if(t.size!==o)throw new Error("weights array must have same length as x");let s=t.data,i=new Float64Array(u);for(let c=0;c<o;c++){let l=Number(n[c]);i[l]+=Number(s[c])}return x.fromData(i,[u],"float64")}else{let s=new Float64Array(u);for(let i=0;i<o;i++){let c=Number(n[i]);s[c]++}return x.fromData(s,[u],"float64")}}function hs(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=tc(o,u,l):m=ot(o,u,l);else if(e)for(m=0;m<u&&Number(o[m])>=l;)m++;else for(m=0;m<u&&Number(o[m])>l;)m++;s[c]=m}return x.fromData(s,[...r.shape],"float64")}function tc(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 ot(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 Ss(r,t=10,e,n=!1,o){q(r.dtype,"histogram","histogram requires real numbers."),typeof t!="number"&&q(t.dtype,"histogram","histogram requires real numbers.");let a=r.data,u=r.size,s;if(typeof t=="number"){let m,d;if(e)[m,d]=e;else{m=1/0,d=-1/0;for(let f=0;f<u;f++){let y=Number(a[f]);y<m&&(m=y),y>d&&(d=y)}m===d&&(m=m-.5,d=d+.5)}s=[];let p=(d-m)/t;for(let f=0;f<=t;f++)s.push(m+f*p)}else{let m=t.data;s=[];for(let d=0;d<t.size;d++)s.push(Number(m[d]))}let i=s.length-1,c=new Float64Array(i),l=o?.data;for(let m=0;m<u;m++){let d=Number(a[m]),p=l?Number(l[m]):1,f=ot(s,s.length,d)-1;if(!(f<0)){if(f>=i)if(d===s[i])f=i-1;else continue;c[f]+=p}}if(n){let m=0;for(let d=0;d<i;d++)m+=c[d];for(let d=0;d<i;d++){let p=s[d+1]-s[d];c[d]=c[d]/(m*p)}}return{hist:x.fromData(c,[i],"float64"),bin_edges:x.fromData(new Float64Array(s),[s.length],"float64")}}function Ds(r,t,e=10,n,o=!1,a){q(r.dtype,"histogram2d","histogram2d requires real numbers."),q(t.dtype,"histogram2d","histogram2d requires real numbers.");let u=r.data,s=t.data,i=r.size;if(t.size!==i)throw new Error("x and y must have the same length");let c,l,m,d;if(typeof e=="number"?(m=e,d=e):Array.isArray(e)&&e.length===2?(e[0],m=e[0],d=e[1]):(m=10,d=10),typeof m=="number"){let h,b;if(n)[h,b]=n[0];else{h=1/0,b=-1/0;for(let S=0;S<i;S++){let D=Number(u[S]);D<h&&(h=D),D>b&&(b=D)}h===b&&(h-=.5,b+=.5)}c=[];let A=(b-h)/m;for(let S=0;S<=m;S++)c.push(h+S*A)}else{let h=m.data;c=[];for(let b=0;b<m.size;b++)c.push(Number(h[b]))}if(typeof d=="number"){let h,b;if(n)[h,b]=n[1];else{h=1/0,b=-1/0;for(let S=0;S<i;S++){let D=Number(s[S]);D<h&&(h=D),D>b&&(b=D)}h===b&&(h-=.5,b+=.5)}l=[];let A=(b-h)/d;for(let S=0;S<=d;S++)l.push(h+S*A)}else{let h=d.data;l=[];for(let b=0;b<d.size;b++)l.push(Number(h[b]))}let p=c.length-1,f=l.length-1,y=new Float64Array(p*f),g=a?.data;for(let h=0;h<i;h++){let b=Number(u[h]),A=Number(s[h]),S=g?Number(g[h]):1,D=ot(c,c.length,b)-1,w=ot(l,l.length,A)-1;if(D<0||D>=p)if(b===c[p]&&D===p)D=p-1;else continue;if(w<0||w>=f)if(A===l[f]&&w===f)w=f-1;else continue;y[D*f+w]+=S}if(o){let h=0;for(let b=0;b<y.length;b++)h+=y[b];for(let b=0;b<p;b++)for(let A=0;A<f;A++){let S=c[b+1]-c[b],D=l[A+1]-l[A],w=S*D;y[b*f+A]=y[b*f+A]/(h*w)}}return{hist:x.fromData(y,[p,f],"float64"),x_edges:x.fromData(new Float64Array(c),[c.length],"float64"),y_edges:x.fromData(new Float64Array(l),[l.length],"float64")}}function xs(r,t=10,e,n=!1,o){q(r.dtype,"histogramdd","histogramdd requires real numbers.");let a=r.shape,u=r.data,s,i;if(a.length===1)s=a[0],i=1;else if(a.length===2)s=a[0],i=a[1];else throw new Error("sample must be 1D or 2D array");let c;if(typeof t=="number")c=new Array(i).fill(t);else if(c=t,c.length!==i)throw new Error("bins array length must match number of dimensions");let l=[];for(let h=0;h<i;h++){let b,A;if(e&&e[h])[b,A]=e[h];else{b=1/0,A=-1/0;for(let N=0;N<s;N++){let I=Number(i===1?u[N]:u[N*i+h]);I<b&&(b=I),I>A&&(A=I)}b===A&&(b-=.5,A+=.5)}let S=c[h],D=[],w=(A-b)/S;for(let N=0;N<=S;N++)D.push(b+N*w);l.push(D)}let m=c.slice(),d=m.reduce((h,b)=>h*b,1),p=new Float64Array(d),f=new Array(i);f[i-1]=1;for(let h=i-2;h>=0;h--)f[h]=f[h+1]*c[h+1];let y=o?.data;for(let h=0;h<s;h++){let b=y?Number(y[h]):1,A=0,S=!1;for(let D=0;D<i;D++){let w=Number(i===1?u[h]:u[h*i+D]),N=l[D],I=c[D],z=ot(N,N.length,w)-1;if(z<0||z>=I)if(w===N[I]&&z===I)z=I-1;else{S=!0;break}A+=z*f[D]}S||(p[A]+=b)}if(n){let h=0;for(let A=0;A<d;A++)h+=p[A];let b=new Float64Array(d);for(let A=0;A<d;A++){let S=1,D=A;for(let w=0;w<i;w++){let N=Math.floor(D/f[w])%c[w],I=l[w];S*=I[N+1]-I[N]}b[A]=S}for(let A=0;A<d;A++)p[A]=p[A]/(h*b[A])}let g=l.map(h=>x.fromData(new Float64Array(h),[h.length],"float64"));return{hist:x.fromData(p,m,"float64"),edges:g}}function Te(r,t,e="full"){let n=r.data,o=t.data,a=r.size,u=t.size,s=M(r.dtype)||M(t.dtype),i=a+u-1;if(s){let l=new Float64Array(i),m=new Float64Array(i),d=M(r.dtype),p=M(t.dtype);for(let y=0;y<i;y++){let g=0,h=0,b=y-u+1;for(let A=0;A<a;A++){let S=A-b;if(S>=0&&S<u){let D,w,N,I;d?(D=n[A*2],w=n[A*2+1]):(D=Number(n[A]),w=0),p?(N=o[S*2],I=o[S*2+1]):(N=Number(o[S]),I=0),g+=D*N+w*I,h+=w*N-D*I}}l[y]=g,m[y]=h}let f=(y,g,h,b=0)=>{let A=new Float64Array(h*2);for(let S=0;S<h;S++)A[S*2]=y[b+S],A[S*2+1]=g[b+S];return x.fromData(A,[h],"complex128")};if(e==="full")return f(l,m,i);if(e==="same"){let y=Math.floor((i-a)/2);return f(l,m,a,y)}else{let y=Math.max(a,u)-Math.min(a,u)+1,g=Math.min(a,u)-1;return f(l,m,y,g)}}let c=new Float64Array(i);for(let l=0;l<i;l++){let m=0,d=l-u+1;for(let p=0;p<a;p++){let f=p-d;f>=0&&f<u&&(m+=Number(n[p])*Number(o[f]))}c[l]=m}if(e==="full")return x.fromData(c,[i],"float64");if(e==="same"){let l=Math.floor((i-a)/2),m=new Float64Array(a);for(let d=0;d<a;d++)m[d]=c[l+d];return x.fromData(m,[a],"float64")}else{let l=Math.max(a,u)-Math.min(a,u)+1,m=Math.min(a,u)-1,d=new Float64Array(l);for(let p=0;p<l;p++)d[p]=c[m+p];return x.fromData(d,[l],"float64")}}function Ns(r,t,e="full"){let n=t.data,o=t.size,a=M(t.dtype),u;if(a){let s=new Float64Array(o*2);for(let i=0;i<o;i++){let c=o-1-i;s[i*2]=n[c*2],s[i*2+1]=n[c*2+1]}u=x.fromData(s,[o],t.dtype)}else{let s=new Float64Array(o);for(let i=0;i<o;i++)s[i]=Number(n[o-1-i]);u=x.fromData(s,[o],"float64")}if(a){let s=u.data;for(let i=0;i<o;i++)s[i*2+1]=-s[i*2+1]}return Te(r,u,e)}function Oe(r,t,e=!0,n=!1,o){let a=r.shape,u=r.data,s=M(r.dtype)||t!==void 0&&M(t.dtype),i;if(o!==void 0?i=o:i=n?0:1,a.length===1)if(t!==void 0){let f=t.data,y=r.size,g=M(r.dtype),h=M(t.dtype);if(t.size!==y)throw new Error("m and y must have same length");if(s){let I=0,z=0,F=0,_=0;for(let Z=0;Z<y;Z++)g?(I+=u[Z*2],z+=u[Z*2+1]):I+=Number(u[Z]),h?(F+=f[Z*2],_+=f[Z*2+1]):F+=Number(f[Z]);I/=y,z/=y,F/=y,_/=y;let E=0,T=0,C=0,k=0,V=0,R=0,L=0,j=0;for(let Z=0;Z<y;Z++){let rr,tr,er,cr;g?(rr=u[Z*2]-I,tr=u[Z*2+1]-z):(rr=Number(u[Z])-I,tr=0),h?(er=f[Z*2]-F,cr=f[Z*2+1]-_):(er=Number(f[Z])-F,cr=0),E+=rr*rr+tr*tr,C+=er*er+cr*cr,V+=rr*er+tr*cr,R+=tr*er-rr*cr,L+=er*rr+cr*tr,j+=cr*rr-er*tr}let H=y-i;if(H<=0){let Z=new Float64Array(8);return Z.fill(NaN),x.fromData(Z,[2,2],"complex128")}E/=H,C/=H,V/=H,R/=H,L/=H,j/=H;let Q=new Float64Array(8);return Q[0]=E,Q[1]=T,Q[2]=V,Q[3]=R,Q[4]=L,Q[5]=j,Q[6]=C,Q[7]=k,x.fromData(Q,[2,2],"complex128")}let b=0,A=0;for(let I=0;I<y;I++)b+=Number(u[I]),A+=Number(f[I]);b/=y,A/=y;let S=0,D=0,w=0;for(let I=0;I<y;I++){let z=Number(u[I])-b,F=Number(f[I])-A;S+=z*z,D+=F*F,w+=z*F}let N=y-i;return N<=0?x.fromData(new Float64Array([NaN,NaN,NaN,NaN]),[2,2],"float64"):(S/=N,D/=N,w/=N,x.fromData(new Float64Array([S,w,w,D]),[2,2],"float64"))}else{let f=r.size;if(s){let b=0,A=0;for(let w=0;w<f;w++)b+=u[w*2],A+=u[w*2+1];b/=f,A/=f;let S=0;for(let w=0;w<f;w++){let N=u[w*2]-b,I=u[w*2+1]-A;S+=N*N+I*I}let D=f-i;return D<=0?x.fromData(new Float64Array([NaN,0]),[],"complex128"):(S/=D,x.fromData(new Float64Array([S,0]),[],"complex128"))}let y=0;for(let b=0;b<f;b++)y+=Number(u[b]);y/=f;let g=0;for(let b=0;b<f;b++){let A=Number(u[b])-y;g+=A*A}let h=f-i;return h<=0?x.fromData(new Float64Array([NaN]),[],"float64"):(g/=h,x.fromData(new Float64Array([g]),[],"float64"))}let c,l;e?(c=a[0],l=a[1]):(c=a[1],l=a[0]);let m=l-i;if(s){let f=new Float64Array(c),y=new Float64Array(c);for(let h=0;h<c;h++){let b=0,A=0;for(let S=0;S<l;S++){let D=e?h*l+S:S*c+h;b+=u[D*2],A+=u[D*2+1]}f[h]=b/l,y[h]=A/l}let g=new Float64Array(c*c*2);if(m<=0)return g.fill(NaN),x.fromData(g,[c,c],"complex128");for(let h=0;h<c;h++)for(let b=0;b<c;b++){let A=0,S=0;for(let w=0;w<l;w++){let N=e?h*l+w:w*c+h,I=e?b*l+w:w*c+b,z=u[N*2]-f[h],F=u[N*2+1]-y[h],_=u[I*2]-f[b],E=u[I*2+1]-y[b];A+=z*_+F*E,S+=F*_-z*E}let D=(h*c+b)*2;g[D]=A/m,g[D+1]=S/m}return x.fromData(g,[c,c],"complex128")}let d=new Float64Array(c);for(let f=0;f<c;f++){let y=0;for(let g=0;g<l;g++){let h=e?f*l+g:g*c+f;y+=Number(u[h])}d[f]=y/l}let p=new Float64Array(c*c);if(m<=0)return p.fill(NaN),x.fromData(p,[c,c],"float64");for(let f=0;f<c;f++)for(let y=f;y<c;y++){let g=0;for(let b=0;b<l;b++){let A=e?f*l+b:b*c+f,S=e?y*l+b:b*c+y,D=Number(u[A])-d[f],w=Number(u[S])-d[y];g+=D*w}let h=g/m;p[f*c+y]=h,p[y*c+f]=h}return x.fromData(p,[c,c],"float64")}function ws(r,t,e=!0){let n=M(r.dtype)||t!==void 0&&M(t.dtype);if(r.shape.length===1&&t===void 0)return n?x.fromData(new Float64Array([1,0]),[],"complex128"):x.fromData(new Float64Array([1]),[],"float64");let o=Oe(r,t,e,!1),a=o.data,s=o.shape[0];if(n){let c=new Float64Array(s*s*2);for(let l=0;l<s;l++)for(let m=0;m<s;m++){let d=a[(l*s+m)*2],p=a[(l*s+m)*2+1],f=a[(l*s+l)*2],y=a[(m*s+m)*2],g=(l*s+m)*2;if(f<=0||y<=0)c[g]=NaN,c[g+1]=NaN;else{let h=Math.sqrt(f*y);c[g]=d/h,c[g+1]=p/h}}return x.fromData(c,[s,s],"complex128")}let i=new Float64Array(s*s);for(let c=0;c<s;c++)for(let l=0;l<s;l++){let m=Number(a[c*s+l]),d=Number(a[c*s+c]),p=Number(a[l*s+l]);d<=0||p<=0?i[c*s+l]=NaN:i[c*s+l]=m/Math.sqrt(d*p)}return x.fromData(i,[s,s],"float64")}var v=class r{constructor(t,e){this._storage=t,this._base=e}get storage(){return this._storage}static _fromStorage(t,e){return new r(t,e)}get shape(){return this._storage.shape}get ndim(){return this._storage.ndim}get size(){return this._storage.size}get dtype(){return this._storage.dtype}get data(){return this._storage.data}get strides(){return this._storage.strides}get flags(){return{C_CONTIGUOUS:this._storage.isCContiguous,F_CONTIGUOUS:this._storage.isFContiguous,OWNDATA:this._base===void 0}}get base(){return this._base??null}get T(){return this.transpose()}get itemsize(){return lt(this._storage.dtype)}get nbytes(){return this.size*this.itemsize}fill(t){let e=this._storage.dtype,n=this.size;if(B(e)){let o=typeof t=="bigint"?t:BigInt(Math.round(Number(t)));for(let a=0;a<n;a++)this._storage.iset(a,o)}else if(e==="bool"){let o=t?1:0;for(let a=0;a<n;a++)this._storage.iset(a,o)}else{let o=Number(t);for(let a=0;a<n;a++)this._storage.iset(a,o)}}*[Symbol.iterator](){if(this.ndim===0)yield this._storage.iget(0);else if(this.ndim===1)for(let t=0;t<this.shape[0];t++)yield this._storage.iget(t);else for(let t=0;t<this.shape[0];t++)yield this.slice(String(t))}get(t){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let e=t.map((n,o)=>{let a=n;if(a<0&&(a=this.shape[o]+a),a<0||a>=this.shape[o])throw new Error(`Index ${n} is out of bounds for axis ${o} with size ${this.shape[o]}`);return a});return this._storage.get(...e)}set(t,e){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let n=t.map((a,u)=>{let s=a;if(s<0&&(s=this.shape[u]+s),s<0||s>=this.shape[u])throw new Error(`Index ${a} is out of bounds for axis ${u} with size ${this.shape[u]}`);return s}),o=this.dtype;if(M(o))this._storage.set(n,e);else if(B(o)){let a=e instanceof O?e.re:Number(e),u=typeof e=="bigint"?e:BigInt(Math.round(a));this._storage.set(n,u)}else if(o==="bool"){let u=(e instanceof O?e.re:Number(e))?1:0;this._storage.set(n,u)}else{let a=e instanceof O?e.re:Number(e);this._storage.set(n,a)}}copy(){return new r(this._storage.copy())}astype(t,e=!0){let n=this.dtype;if(n===t&&!e)return this;if(n===t&&e)return this.copy();let o=Array.from(this.shape),a=this.size,u=P(t);if(!u)throw new Error(`Cannot convert to dtype ${t}`);let s=new u(a),i=this.data;if(B(n)&&!B(t)){let l=i;if(t==="bool")for(let m=0;m<a;m++)s[m]=l[m]!==BigInt(0)?1:0;else for(let m=0;m<a;m++)s[m]=Number(l[m])}else if(!B(n)&&B(t)){let l=i;for(let m=0;m<a;m++)s[m]=BigInt(Math.round(Number(l[m])))}else if(t==="bool"){let l=i;for(let m=0;m<a;m++)s[m]=l[m]!==0?1:0}else if(n==="bool"&&!B(t)){let l=i;for(let m=0;m<a;m++)s[m]=l[m]}else if(!B(n)&&!B(t)){let l=i;for(let m=0;m<a;m++)s[m]=l[m]}else{let l=i;for(let m=0;m<a;m++)s[m]=l[m]}let c=x.fromData(s,o,t);return new r(c)}add(t){let e=typeof t=="number"?t:t._storage,n=on(this._storage,e);return r._fromStorage(n)}subtract(t){let e=typeof t=="number"?t:t._storage,n=an(this._storage,e);return r._fromStorage(n)}multiply(t){let e=typeof t=="number"?t:t._storage,n=sn(this._storage,e);return r._fromStorage(n)}divide(t){let e=typeof t=="number"?t:t._storage,n=un(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=qt(this._storage,e);return r._fromStorage(n)}positive(){let t=mn(this._storage);return r._fromStorage(t)}reciprocal(){let t=yn(this._storage);return r._fromStorage(t)}sqrt(){let t=_o(this._storage);return r._fromStorage(t)}power(t){let e=typeof t=="number"?t:t._storage,n=Fo(this._storage,e);return r._fromStorage(n)}exp(){let t=Mo(this._storage);return r._fromStorage(t)}exp2(){let t=Bo(this._storage);return r._fromStorage(t)}expm1(){let t=vo(this._storage);return r._fromStorage(t)}log(){let t=Eo(this._storage);return r._fromStorage(t)}log2(){let t=To(this._storage);return r._fromStorage(t)}log10(){let t=Oo(this._storage);return r._fromStorage(t)}log1p(){let t=Co(this._storage);return r._fromStorage(t)}logaddexp(t){let e=typeof t=="number"?t:t._storage,n=Uo(this._storage,e);return r._fromStorage(n)}logaddexp2(t){let e=typeof t=="number"?t:t._storage,n=$o(this._storage,e);return r._fromStorage(n)}absolute(){let t=cn(this._storage);return r._fromStorage(t)}negative(){let t=ln(this._storage);return r._fromStorage(t)}sign(){let t=fn(this._storage);return r._fromStorage(t)}around(t=0){let e=we(this._storage,t);return r._fromStorage(e)}round(t=0){return this.around(t)}ceil(){let t=Ie(this._storage);return r._fromStorage(t)}fix(){let t=ze(this._storage);return r._fromStorage(t)}floor(){let t=_e(this._storage);return r._fromStorage(t)}rint(){let t=Fe(this._storage);return r._fromStorage(t)}trunc(){let t=Me(this._storage);return r._fromStorage(t)}sin(){let t=Ro(this._storage);return r._fromStorage(t)}cos(){let t=ko(this._storage);return r._fromStorage(t)}tan(){let t=qo(this._storage);return r._fromStorage(t)}arcsin(){let t=Vo(this._storage);return r._fromStorage(t)}arccos(){let t=jo(this._storage);return r._fromStorage(t)}arctan(){let t=Po(this._storage);return r._fromStorage(t)}arctan2(t){let e=typeof t=="number"?t:t._storage,n=Lo(this._storage,e);return r._fromStorage(n)}hypot(t){let e=typeof t=="number"?t:t._storage,n=Zo(this._storage,e);return r._fromStorage(n)}degrees(){let t=Go(this._storage);return r._fromStorage(t)}radians(){let t=Wo(this._storage);return r._fromStorage(t)}sinh(){let t=Yo(this._storage);return r._fromStorage(t)}cosh(){let t=Ho(this._storage);return r._fromStorage(t)}tanh(){let t=Jo(this._storage);return r._fromStorage(t)}arcsinh(){let t=Xo(this._storage);return r._fromStorage(t)}arccosh(){let t=Qo(this._storage);return r._fromStorage(t)}arctanh(){let t=Ko(this._storage);return r._fromStorage(t)}greater(t){let e=typeof t=="number"?t:t._storage,n=Fn(this._storage,e);return r._fromStorage(n)}greater_equal(t){let e=typeof t=="number"?t:t._storage,n=Mn(this._storage,e);return r._fromStorage(n)}less(t){let e=typeof t=="number"?t:t._storage,n=Bn(this._storage,e);return r._fromStorage(n)}less_equal(t){let e=typeof t=="number"?t:t._storage,n=vn(this._storage,e);return r._fromStorage(n)}equal(t){let e=typeof t=="number"?t:t._storage,n=En(this._storage,e);return r._fromStorage(n)}not_equal(t){let e=typeof t=="number"?t:t._storage,n=Tn(this._storage,e);return r._fromStorage(n)}isclose(t,e=1e-5,n=1e-8){let o=typeof t=="number"?t:t._storage,a=Vt(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 On(this._storage,o,e,n)}bitwise_and(t){let e=typeof t=="number"?t:t._storage,n=Da(this._storage,e);return r._fromStorage(n)}bitwise_or(t){let e=typeof t=="number"?t:t._storage,n=xa(this._storage,e);return r._fromStorage(n)}bitwise_xor(t){let e=typeof t=="number"?t:t._storage,n=Na(this._storage,e);return r._fromStorage(n)}bitwise_not(){let t=ge(this._storage);return r._fromStorage(t)}invert(){let t=wa(this._storage);return r._fromStorage(t)}left_shift(t){let e=typeof t=="number"?t:t._storage,n=Ia(this._storage,e);return r._fromStorage(n)}right_shift(t){let e=typeof t=="number"?t:t._storage,n=za(this._storage,e);return r._fromStorage(n)}logical_and(t){let e=typeof t=="number"?t:t._storage,n=Ba(this._storage,e);return r._fromStorage(n)}logical_or(t){let e=typeof t=="number"?t:t._storage,n=va(this._storage,e);return r._fromStorage(n)}logical_not(){let t=Ea(this._storage);return r._fromStorage(t)}logical_xor(t){let e=typeof t=="number"?t:t._storage,n=Ta(this._storage,e);return r._fromStorage(n)}isfinite(){let t=Oa(this._storage);return r._fromStorage(t)}isinf(){let t=Ca(this._storage);return r._fromStorage(t)}isnan(){let t=Ua(this._storage);return r._fromStorage(t)}isnat(){let t=$a(this._storage);return r._fromStorage(t)}copysign(t){let e=typeof t=="number"?t:t._storage,n=Ra(this._storage,e);return r._fromStorage(n)}signbit(){let t=ka(this._storage);return r._fromStorage(t)}nextafter(t){let e=typeof t=="number"?t:t._storage,n=qa(this._storage,e);return r._fromStorage(n)}spacing(){let t=Va(this._storage);return r._fromStorage(t)}sum(t,e=!1){let n=Zr(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}mean(t,e=!1){let n=yt(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}max(t,e=!1){let n=Or(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}min(t,e=!1){let n=Cr(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}prod(t,e=!1){let n=jt(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}argmin(t){let e=Pt(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}argmax(t){let e=Lt(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}var(t,e=0,n=!1){let o=Zt(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}std(t,e=0,n=!1){let o=Un(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}all(t,e=!1){let n=Gt(this._storage,t,e);return typeof n=="boolean"?n:r._fromStorage(n)}any(t,e=!1){let n=Wt(this._storage,t,e);return typeof n=="boolean"?n:r._fromStorage(n)}cumsum(t){return r._fromStorage(Yt(this._storage,t))}cumprod(t){return r._fromStorage(Ht(this._storage,t))}ptp(t,e=!1){let n=Jt(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}median(t,e=!1){let n=Xt(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}percentile(t,e,n=!1){let o=Qt(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}quantile(t,e,n=!1){let o=$r(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}average(t,e){let n=Gr(this._storage,e,t?.storage);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}nansum(t,e=!1){let n=pt(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}nanprod(t,e=!1){let n=dt(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}nanmean(t,e=!1){let n=gt(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}nanvar(t,e=0,n=!1){let o=Ur(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}nanstd(t,e=0,n=!1){let o=Kt(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}nanmin(t,e=!1){let n=Wr(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}nanmax(t,e=!1){let n=Yr(this._storage,t,e);return typeof n=="number"||n instanceof O?n:r._fromStorage(n)}nanargmin(t){let e=Hr(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}nanargmax(t){let e=Jr(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}nancumsum(t){return r._fromStorage(re(this._storage,t))}nancumprod(t){return r._fromStorage(te(this._storage,t))}nanmedian(t,e=!1){let n=At(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}sort(t=-1){return r._fromStorage(Ae(this._storage,t))}argsort(t=-1){return r._fromStorage(be(this._storage,t))}partition(t,e=-1){return r._fromStorage(he(this._storage,t,e))}argpartition(t,e=-1){return r._fromStorage(Se(this._storage,t,e))}nonzero(){return Nt(this._storage).map(e=>r._fromStorage(e))}argwhere(){return r._fromStorage(De(this._storage))}searchsorted(t,e="left"){return r._fromStorage(xe(this._storage,t._storage,e))}diff(t=1,e=-1){return r._fromStorage(Ee(this._storage,t,e))}reshape(...t){let e=t.length===1&&Array.isArray(t[0])?t[0]:t,n=nr(this._storage,e),a=n.data===this.data?this._base??this:void 0;return r._fromStorage(n,a)}flatten(){let t=bt(this._storage);return r._fromStorage(t)}ravel(){let t=Rr(this._storage),n=t.data===this.data?this._base??this:void 0;return r._fromStorage(t,n)}transpose(t){let e=Qr(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}squeeze(t){let e=$n(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}expand_dims(t){let e=Xr(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}swapaxes(t,e){let n=Rn(this._storage,t,e),o=this._base??this;return r._fromStorage(n,o)}moveaxis(t,e){let n=ee(this._storage,t,e),o=this._base??this;return r._fromStorage(n,o)}repeat(t,e){let n=Wn(this._storage,t,e);return r._fromStorage(n)}take(t,e){let n=ta(this._storage,t,e);return r._fromStorage(n)}put(t,e){let n=e instanceof r?e._storage:e;ea(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(me(t._storage,this._storage,e))}matmul(t){let e=pr(this._storage,t._storage);return r._fromStorage(e)}dot(t){let e=ae(this._storage,t._storage);return typeof e=="number"||typeof e=="bigint"||e instanceof O?e:r._fromStorage(e)}trace(){return io(this._storage)}inner(t){let e=uo(this._storage,t._storage);return typeof e=="number"||typeof e=="bigint"||e instanceof O?e:r._fromStorage(e)}outer(t){let e=se(this._storage,t._storage);return r._fromStorage(e)}tensordot(t,e=2){let n=co(this._storage,t._storage,e);return typeof n=="number"||typeof n=="bigint"||n instanceof O?n:r._fromStorage(n)}cbrt(){let t=pn(this._storage);return r._fromStorage(t)}fabs(){let t=dn(this._storage);return r._fromStorage(t)}divmod(t){let e=typeof t=="number"?t:t._storage,[n,o]=gn(this._storage,e);return[r._fromStorage(n),r._fromStorage(o)]}square(){let t=An(this._storage);return r._fromStorage(t)}remainder(t){let e=typeof t=="number"?t:t._storage,n=bn(this._storage,e);return r._fromStorage(n)}heaviside(t){let e=typeof t=="number"?t:t._storage,n=hn(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=Ke(i);return rn(l,this.shape[c])});for(;e.length<this.ndim;)e.push({start:0,stop:this.shape[e.length],step:1,isIndex:!1});let n=[],o=[],a=this._storage.offset;for(let i=0;i<e.length;i++){let c=e[i],l=this._storage.strides[i];if(a+=c.start*l,!c.isIndex){let m;c.step>0?m=Math.max(0,Math.ceil((c.stop-c.start)/c.step)):m=Math.max(0,Math.ceil((c.start-c.stop)/Math.abs(c.step))),n.push(m),o.push(l*c.step)}}let u=x.fromData(this._storage.data,n,this._storage.dtype,o,a),s=this._base??this;return new r(u,s)}row(t){if(this.ndim<2)throw new Error("row() requires at least 2 dimensions");return this.slice(String(t),":")}col(t){if(this.ndim<2)throw new Error("col() requires at least 2 dimensions");return this.slice(":",String(t))}rows(t,e){if(this.ndim<2)throw new Error("rows() requires at least 2 dimensions");return this.slice(`${t}:${e}`,":")}cols(t,e){if(this.ndim<2)throw new Error("cols() requires at least 2 dimensions");return this.slice(":",`${t}:${e}`)}toString(){return`NDArray(shape=${JSON.stringify(this.shape)}, dtype=${this.dtype})`}toArray(){if(this.ndim===0)return this._storage.iget(0);let t=this.shape,e=t.length,n=(o,a)=>{if(a===e)return this._storage.get(...o);let u=[];for(let s=0;s<t[a];s++)o[a]=s,u.push(n(o,a+1));return u};return n(new Array(e),0)}};function Nr(r,t=X){let e=x.zeros(r,t);return new v(e)}function Is(r,t=X){let e=x.ones(r,t);return new v(e)}function nc(r){let t=[],e=r;for(;Array.isArray(e);)t.push(e.length),e=e[0];return t}function zs(r){return typeof r=="bigint"?!0:Array.isArray(r)?r.some(t=>zs(t)):!1}function _s(r){return nn(r)?!0:Array.isArray(r)?r.some(t=>_s(t)):!1}function oc(r){let t=[];function e(n){Array.isArray(n)?n.forEach(o=>e(o)):t.push(n)}return e(r),t}function ar(r,t){if(r instanceof v)return!t||r.dtype===t?r.copy():r.astype(t);let e=zs(r),n=_s(r),o=nc(r),a=o.reduce((p,f)=>p*f,1),u=t;u||(n?u="complex128":e?u="int64":u=X);let s=M(u),i=P(u);if(!i)throw new Error(`Cannot create array with dtype ${u}`);let c=s?a*2:a,l=new i(c),m=oc(r);if(B(u)){let p=l;for(let f=0;f<a;f++){let y=m[f];p[f]=typeof y=="bigint"?y:BigInt(Math.round(Number(y)))}}else if(u==="bool"){let p=l;for(let f=0;f<a;f++)p[f]=m[f]?1:0}else if(s){let p=l;for(let f=0;f<a;f++){let y=m[f],g,h;y instanceof O?(g=y.re,h=y.im):typeof y=="object"&&y!==null&&"re"in y?(g=y.re,h=y.im??0):(g=Number(y),h=0),p[f*2]=g,p[f*2+1]=h}}else{let p=l;for(let f=0;f<a;f++){let y=m[f];p[f]=Number(y)}}let d=x.fromData(l,o,u);return new v(d)}function ac(r,t,e=1,n=X){let o=r,a=t;if(t===void 0&&(o=0,a=r),a===void 0)throw new Error("stop is required");let u=Math.max(0,Math.ceil((a-o)/e)),s=P(n);if(!s)throw new Error(`Cannot create arange array with dtype ${n}`);let i=new s(u);if(B(n))for(let l=0;l<u;l++)i[l]=BigInt(Math.round(o+l*e));else if(n==="bool")for(let l=0;l<u;l++)i[l]=o+l*e!==0?1:0;else for(let l=0;l<u;l++)i[l]=o+l*e;let c=x.fromData(i,[u],n);return new v(c)}function sc(r,t,e=50,n=X){if(e<0)throw new Error("num must be non-negative");if(e===0)return ar([],n);if(e===1)return ar([r],n);let o=P(n);if(!o)throw new Error(`Cannot create linspace array with dtype ${n}`);let a=new o(e),u=(t-r)/(e-1);if(B(n))for(let i=0;i<e;i++)a[i]=BigInt(Math.round(r+i*u));else if(n==="bool")for(let i=0;i<e;i++)a[i]=r+i*u!==0?1:0;else for(let i=0;i<e;i++)a[i]=r+i*u;let s=x.fromData(a,[e],n);return new v(s)}function ic(r,t,e=50,n=10,o=X){if(e<0)throw new Error("num must be non-negative");if(e===0)return ar([],o);if(e===1)return ar([Math.pow(n,r)],o);let a=P(o);if(!a)throw new Error(`Cannot create logspace array with dtype ${o}`);let u=new a(e),s=(t-r)/(e-1);if(B(o))for(let c=0;c<e;c++){let l=r+c*s;u[c]=BigInt(Math.round(Math.pow(n,l)))}else if(o==="bool")for(let c=0;c<e;c++){let l=r+c*s;u[c]=Math.pow(n,l)!==0?1:0}else for(let c=0;c<e;c++){let l=r+c*s;u[c]=Math.pow(n,l)}let i=x.fromData(u,[e],o);return new v(i)}function uc(r,t,e=50,n=X){if(e<0)throw new Error("num must be non-negative");if(r===0||t===0)throw new Error("Geometric sequence cannot include zero");if(e===0)return ar([],n);if(e===1)return ar([r],n);let o=Math.sign(r),a=Math.sign(t);if(o!==a)throw new Error("Geometric sequence cannot contain both positive and negative values");let u=P(n);if(!u)throw new Error(`Cannot create geomspace array with dtype ${n}`);let s=new u(e),i=Math.log(Math.abs(r)),l=(Math.log(Math.abs(t))-i)/(e-1);if(B(n))for(let d=0;d<e;d++){let p=o*Math.exp(i+d*l);s[d]=BigInt(Math.round(p))}else if(n==="bool")for(let d=0;d<e;d++){let p=o*Math.exp(i+d*l);s[d]=p!==0?1:0}else for(let d=0;d<e;d++){let p=o*Math.exp(i+d*l);s[d]=p}let m=x.fromData(s,[e],n);return new v(m)}function Fs(r,t,e=0,n=X){let o=t??r,a=Nr([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 Ms(r,t=X){return Nr(r,t)}function Bs(r,t,e){let n=e;n||(typeof t=="bigint"?n="int64":typeof t=="boolean"?n="bool":Number.isInteger(t)?n="int32":n=X);let o=P(n);if(!o)throw new Error(`Cannot create full array with dtype ${n}`);let a=r.reduce((i,c)=>i*c,1),u=new o(a);if(B(n)){let i=typeof t=="bigint"?t:BigInt(Math.round(Number(t)));u.fill(i)}else n==="bool"?u.fill(t?1:0):u.fill(Number(t));let s=x.fromData(u,r,n);return new v(s)}function cc(r,t=X){return Fs(r,r,0,t)}function wt(r,t){return r instanceof v?!t||r.dtype===t?r:r.astype(t):ar(r,t)}function lc(r){return r.copy()}function fc(r,t){return Nr(Array.from(r.shape),t??r.dtype)}function mc(r,t){return Is(Array.from(r.shape),t??r.dtype)}function yc(r,t){return Ms(Array.from(r.shape),t??r.dtype)}function pc(r,t,e){return Bs(Array.from(r.shape),t,e??r.dtype)}function dc(r,t){return wt(r,t)}function gc(r,t){let e=wt(r,t);return e.flags.C_CONTIGUOUS?e:e.copy()}function Ac(r,t){return wt(r,t).copy()}function vs(r,t=0){if(r.ndim===1){let e=r.size,n=e+Math.abs(t),o=Nr([n,n],r.dtype);for(let a=0;a<e;a++){let 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 Nr([0],r.dtype);let s=P(r.dtype),i=new s(u);for(let l=0;l<u;l++){let m=r.get([o+l,a+l]);B(r.dtype)?i[l]=typeof m=="bigint"?m:BigInt(m):i[l]=m}let c=x.fromData(i,[u],r.dtype);return new v(c)}else throw new Error("Input must be 1-D or 2-D")}function bc(r,t=0){let e=r.flatten();return vs(e,t)}function hc(r,t,e=X){let n=t.reduce((c,l)=>c*l,1),o=P(e);if(!o)throw new Error(`Cannot create array with dtype ${e}`);let a=new o(n),u=t.length,s=new Array(u).fill(0);for(let c=0;c<n;c++){let l=r(...s);B(e)?a[c]=typeof l=="bigint"?l:BigInt(Number(l)):e==="bool"?a[c]=l?1:0:a[c]=Number(l);for(let m=u-1;m>=0&&(s[m]++,!(s[m]<t[m]));m--)s[m]=0}let i=x.fromData(a,t,e);return new v(i)}function Sc(...r){let t=[],e="xy";for(let s of r)s instanceof v?t.push(s):typeof s=="object"&&"indexing"in s&&(e=s.indexing||"xy");if(t.length===0)return[];if(t.length===1)return[t[0].copy()];let n=t.map(s=>s.size);e==="xy"&&t.length>=2&&(t=[t[1],t[0],...t.slice(2)],[n[0],n[1]]=[n[1],n[0]]);let o=n,a=o.length,u=[];for(let s=0;s<t.length;s++){let i=t[s],c=i.size,l=new Array(a).fill(1);l[s]=c;let m=i.reshape(...l),d=St(m.storage,o),p=v._fromStorage(d.copy());u.push(p)}return e==="xy"&&u.length>=2&&([u[0],u[1]]=[u[1],u[0]]),u}function Dc(r,t,e=0,n=X){let o=t??r,a=Nr([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 xc(r,t=0){if(r.ndim<2)throw new Error("Input must have at least 2 dimensions");let e=r.copy(),n=e.shape,o=n[n.length-2],a=n[n.length-1],u=n.slice(0,-2).reduce((s,i)=>s*i,1);for(let s=0;s<u;s++)for(let i=0;i<o;i++)for(let c=0;c<a;c++)if(c>i+t){let l=[],m=s;for(let d=n.length-3;d>=0;d--)l.unshift(m%n[d]),m=Math.floor(m/n[d]);l.push(i,c),e.set(l,0)}return e}function Nc(r,t=0){if(r.ndim<2)throw new Error("Input must have at least 2 dimensions");let e=r.copy(),n=e.shape,o=n[n.length-2],a=n[n.length-1],u=n.slice(0,-2).reduce((s,i)=>s*i,1);for(let s=0;s<u;s++)for(let i=0;i<o;i++)for(let c=0;c<a;c++)if(c<i+t){let l=[],m=s;for(let d=n.length-3;d>=0;d--)l.unshift(m%n[d]),m=Math.floor(m/n[d]);l.push(i,c),e.set(l,0)}return e}function wc(r,t,e=!1){if(r.ndim!==1)throw new Error("Input must be 1-D");let n=r.size,o=t??n;if(o<0)throw new Error("N must be non-negative");let a=Nr([n,o],r.dtype);for(let 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 Ic(r,t=X,e=-1,n=0){let o,a=n;r instanceof ArrayBuffer?o=r:(o=r.buffer,a+=r.byteOffset);let u=Mc(t),s=o.byteLength-a,i=Math.floor(s/u),c=e<0?i:Math.min(e,i);if(c<=0)return ar([],t);let l=P(t);if(!l)throw new Error(`Unsupported dtype: ${t}`);let m=new l(o,a,c),d=x.fromData(m,[c],t);return new v(d)}function zc(r,t=X,e=-1){let n=[],o=0;for(let a of r){if(e>=0&&o>=e)break;n.push(a),o++}return ar(n,t)}function _c(r,t=X,e=-1){let n=[],o=0;for(let a of r){if(e>=0&&o>=e)break;n.push(a),o++}return ar(n,t)}function Fc(r,t=X,e=-1,n=""){let o;n===""?o=r.trim().split(/\s+/):o=r.split(n);let a=[],u=0;for(let s of o){if(e>=0&&u>=e)break;let i=s.trim();i!==""&&(B(t)?a.push(BigInt(i)):a.push(parseFloat(i)),u++)}return ar(a,t)}function Mc(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 Bc(r){return r.sqrt()}function Es(r,t){return r.power(t)}function vc(r){return r.exp()}function Ec(r){return r.exp2()}function Tc(r){return r.expm1()}function Oc(r){return r.log()}function Cc(r){return r.log2()}function Uc(r){return r.log10()}function $c(r){return r.log1p()}function Rc(r,t){return r.logaddexp(t)}function kc(r,t){return r.logaddexp2(t)}function Ts(r){return r.absolute()}function qc(r){return r.negative()}function Vc(r){return r.sign()}function jc(r,t){return r.mod(t)}function Os(r,t){return r.divide(t)}function Pc(r,t){return r.floor_divide(t)}function Lc(r){return r.positive()}function Zc(r){return r.reciprocal()}function Gc(r,t){return r.dot(t)}function Wc(r){return r.trace()}function Yc(r,t=0,e=0,n=1){let o=lo(r.storage,t,e,n);return v._fromStorage(o)}function Hc(r,t){let e=mo(r.storage,t.storage);return v._fromStorage(e)}function Jc(r,t){return r.transpose(t)}function Xc(r,t){return r.inner(t)}function Qc(r,t){return r.outer(t)}function Kc(r,t,e=2){return r.tensordot(t,e)}function rl(r){return r.sin()}function tl(r){return r.cos()}function el(r){return r.tan()}function Cs(r){return r.arcsin()}function Us(r){return r.arccos()}function $s(r){return r.arctan()}function Rs(r,t){return r.arctan2(t)}function nl(r,t){return r.hypot(t)}function ol(r){return r.degrees()}function al(r){return r.radians()}function sl(r){return r.radians()}function il(r){return r.degrees()}function ul(r){return r.sinh()}function cl(r){return r.cosh()}function ll(r){return r.tanh()}function ks(r){return r.arcsinh()}function qs(r){return r.arccosh()}function Vs(r){return r.arctanh()}function fl(r,t,e){return r.swapaxes(t,e)}function ml(r,t,e){return r.moveaxis(t,e)}function jr(r,t=0){if(r.length===0)throw new Error("need at least one array to concatenate");let e=r.map(o=>o.storage),n=Mr(e,t);return v._fromStorage(n)}function yl(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=kn(e,t);return v._fromStorage(n)}function js(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=qn(t);return v._fromStorage(e)}function pl(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=ne(t);return v._fromStorage(e)}function dl(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=Vn(t);return v._fromStorage(e)}function gl(r,t,e=0){return jn(r.storage,t,e).map(o=>v._fromStorage(o,r.base??r))}function Al(r,t,e=0){return Kr(r.storage,t,e).map(o=>v._fromStorage(o,r.base??r))}function bl(r,t){return Ln(r.storage,t).map(n=>v._fromStorage(n,r.base??r))}function hl(r,t){return Zn(r.storage,t).map(n=>v._fromStorage(n,r.base??r))}function Sl(r,t){let e=Gn(r.storage,t);return v._fromStorage(e)}function Dl(r,t,e){return r.repeat(t,e)}function xl(r){return r.ravel()}function Nl(r,t){return r.reshape(...t)}function wl(r,t){return r.squeeze(t)}function Il(r,t){return r.expand_dims(t)}function Ce(r,t){let e=Yn(r.storage,t);return v._fromStorage(e)}function zl(r){if(r.ndim<2)throw new Error("Input must be at least 2-D");return Ce(r,1)}function _l(r){if(r.ndim<2)throw new Error("Input must be at least 2-D");return Ce(r,0)}function Fl(r,t=1,e=[0,1]){let n=Hn(r.storage,t,e);return v._fromStorage(n)}function Ml(r,t,e){let n=Jn(r.storage,t,e);return v._fromStorage(n)}function Bl(r,t,e=0){let n=Xn(r.storage,t,e);return v._fromStorage(n,r.base??r)}function vl(...r){let t=r.map(o=>o.storage),n=to(t).map((o,a)=>o===t[a]?r[a]:v._fromStorage(o));return n.length===1?n[0]:n}function El(...r){let t=r.map(o=>o.storage),n=eo(t).map((o,a)=>o===t[a]?r[a]:v._fromStorage(o));return n.length===1?n[0]:n}function Tl(...r){let t=r.map(o=>o.storage),n=no(t).map((o,a)=>o===t[a]?r[a]:v._fromStorage(o));return n.length===1?n[0]:n}function Ol(r,t){return Qn(r.storage,t).map(n=>v._fromStorage(n,r.base??r))}function Cl(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=Kn(t);return v._fromStorage(e)}function Ul(r){return js(r)}function $l(r,t){let e=ro(r.storage,t);return v._fromStorage(e)}function Rl(r,t,e){let n=t instanceof v?t:ar(t,r.dtype);if(e===void 0){let o=r.flatten(),a=n.flatten();return jr([o,a])}return jr([r,n],e)}function kl(r,t,e){let n=r.dtype;if(e===void 0){let p=r.flatten(),y=(Array.isArray(t)?t:[t]).map(S=>S<0?p.size+S:S),g=[];for(let S=0;S<p.size;S++)y.includes(S)||g.push(S);let h=P(n),b=new h(g.length);for(let S=0;S<g.length;S++){let D=p.get([g[S]]);B(n)?b[S]=typeof D=="bigint"?D:BigInt(D):b[S]=D}let A=x.fromData(b,[g.length],n);return new v(A)}let o=r.shape,a=o.length,u=e<0?a+e:e;if(u<0||u>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);let s=o[u],i=Array.isArray(t)?t:[t],c=new Set(i.map(p=>p<0?s+p:p)),l=[],m=0;for(let p=0;p<=s;p++)(c.has(p)||p===s)&&(p>m&&l.push([m,p]),m=p+1);if(l.length===0){let p=[...o];return p[u]=0,Nr(p,n)}let d=[];for(let[p,f]of l){let y=o.map(()=>":");y[u]=`${p}:${f}`,d.push(r.slice(...y))}return jr(d,u)}function ql(r,t,e,n){let o=e instanceof v?e:ar(e,r.dtype);if(n===void 0){let m=r.flatten(),d=o.flatten(),p=t<0?m.size+t:t;if(p<0||p>m.size)throw new Error(`index ${t} is out of bounds for array of size ${m.size}`);let f=p>0?m.slice(`0:${p}`):null,y=p<m.size?m.slice(`${p}:`):null,g=[];return f&&g.push(f),g.push(d),y&&g.push(y),jr(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 jr(l,s)}function Vl(r,t,e="constant",n=0){let o=r.shape,a=o.length,u=r.dtype,s;if(typeof t=="number"?s=o.map(()=>[t,t]):Array.isArray(t)&&typeof t[0]=="number"?s=o.map(()=>t):s=t,s.length!==a)throw new Error(`pad_width must have ${a} elements`);let i=o.map((y,g)=>y+s[g][0]+s[g][1]),c=i.reduce((y,g)=>y*g,1),l=P(u),m=new l(c),d=B(u);e==="constant"&&(d?m.fill(BigInt(n)):m.fill(n));let p=new Array(a).fill(0);for(let y=0;y<c;y++){let g=!0,h=[];for(let A=0;A<a;A++){let[S]=s[A],D=p[A]-S;if(D<0||D>=o[A]){g=!1;break}h.push(D)}let b;if(g)b=r.get(h);else if(e==="constant"){for(let A=a-1;A>=0&&(p[A]++,!(p[A]<i[A]));A--)p[A]=0;continue}else{let A=[];for(let S=0;S<a;S++){let[D]=s[S],w=p[S]-D,N=o[S];w<0?e==="edge"?w=0:e==="reflect"?(w=-w,w>=N&&(w=N-1)):e==="symmetric"?(w=-w-1,w>=N&&(w=N-1),w<0&&(w=0)):e==="wrap"&&(w=(w%N+N)%N):w>=N&&(e==="edge"?w=N-1:e==="reflect"?(w=2*N-w-2,w<0&&(w=0)):e==="symmetric"?(w=2*N-w-1,w<0&&(w=0)):e==="wrap"&&(w=w%N)),A.push(Math.max(0,Math.min(N-1,w)))}b=r.get(A)}d?m[y]=typeof b=="bigint"?b:BigInt(Number(b)):m[y]=Number(b);for(let A=a-1;A>=0&&(p[A]++,!(p[A]<i[A]));A--)p[A]=0}let f=x.fromData(m,i,u);return new v(f)}function jl(r,t){let e=St(r.storage,t);return v._fromStorage(e,r.base??r)}function Pl(...r){let t=r.map(n=>n.storage);return ra(t).map((n,o)=>v._fromStorage(n,r[o].base??r[o]))}function Ll(...r){return Rt(...r)}function Zl(r,t,e){return r.take(t,e)}function Gl(r,t,e){r.put(t,e)}function Wl(r,t,e=0){return r.iindex(t,e)}function Yl(r,t,e){return r.bindex(t,e)}function Hl(r,t,e){if(e!==void 0)throw new Error("copyto with where parameter is not yet implemented");let n=r.storage,o=r.shape,a=r.size,u=r.dtype;if(typeof t=="number"||typeof t=="bigint"){r.fill(t);return}let s=t.storage,i=t.shape,c=yr([i,o]);if(!c)throw new Error(`could not broadcast input array from shape (${i.join(",")}) into shape (${o.join(",")})`);if(c.length!==o.length||!c.every((m,d)=>m===o[d]))throw new Error(`could not broadcast input array from shape (${i.join(",")}) into shape (${o.join(",")})`);let l=St(s,o);if(B(u))for(let m=0;m<a;m++){let d=l.iget(m),p=typeof d=="bigint"?d:BigInt(Math.round(Number(d)));n.iset(m,p)}else if(u==="bool")for(let m=0;m<a;m++){let d=l.iget(m);n.iset(m,d?1:0)}else for(let m=0;m<a;m++){let d=l.iget(m);n.iset(m,Number(d))}}function Jl(r,t){let e=t.map(o=>o.storage),n=na(r.storage,e);return v._fromStorage(n)}function Xl(r,t,e=!1){return oa(r.storage,t.storage,e)}function Ql(r,t){return Cn(r.storage,t.storage)}function Ps(r,t){return v._fromStorage(Yt(r.storage,t))}function Ls(r,t){return v._fromStorage(Ht(r.storage,t))}function Zs(r,t,e=!1){return r.max(t,e)}function Gs(r,t,e=!1){return r.min(t,e)}function Kl(r,t,e=!1){let n=Jt(r.storage,t,e);return typeof n=="number"||n instanceof O?n:v._fromStorage(n)}function rf(r,t,e=!1){let n=Xt(r.storage,t,e);return typeof n=="number"?n:v._fromStorage(n)}function tf(r,t,e,n=!1){let o=Qt(r.storage,t,e,n);return typeof o=="number"?o:v._fromStorage(o)}function ef(r,t,e,n=!1){let o=$r(r.storage,t,e,n);return typeof o=="number"?o:v._fromStorage(o)}function nf(r,t,e,n=!1){let o=e?e.storage:void 0,a=Gr(r.storage,t,o,n);return typeof a=="number"||a instanceof O?a:v._fromStorage(a)}function of(r,t,e=!1){let n=pt(r.storage,t,e);return typeof n=="number"||n instanceof O?n:v._fromStorage(n)}function af(r,t,e=!1){let n=dt(r.storage,t,e);return typeof n=="number"||n instanceof O?n:v._fromStorage(n)}function sf(r,t,e=!1){let n=gt(r.storage,t,e);return typeof n=="number"||n instanceof O?n:v._fromStorage(n)}function uf(r,t,e=0,n=!1){let o=Ur(r.storage,t,e,n);return typeof o=="number"?o:v._fromStorage(o)}function cf(r,t,e=0,n=!1){let o=Kt(r.storage,t,e,n);return typeof o=="number"?o:v._fromStorage(o)}function lf(r,t,e=!1){let n=Wr(r.storage,t,e);return typeof n=="number"||n instanceof O?n:v._fromStorage(n)}function ff(r,t,e=!1){let n=Yr(r.storage,t,e);return typeof n=="number"||n instanceof O?n:v._fromStorage(n)}function mf(r,t){let e=Hr(r.storage,t);return typeof e=="number"?e:v._fromStorage(e)}function yf(r,t){let e=Jr(r.storage,t);return typeof e=="number"?e:v._fromStorage(e)}function pf(r,t){return v._fromStorage(re(r.storage,t))}function df(r,t){return v._fromStorage(te(r.storage,t))}function gf(r,t,e=!1){let n=At(r.storage,t,e);return typeof n=="number"?n:v._fromStorage(n)}function Af(r){return r.cbrt()}function bf(r){return r.fabs()}function hf(r,t){return r.divmod(t)}function Sf(r){return r.square()}function Df(r,t){return r.remainder(t)}function xf(r,t){return r.heaviside(t)}function Nf(r,t){let e=typeof t=="number"?t:t.storage;return v._fromStorage(Sn(r.storage,e))}function wf(r,t){let e=typeof t=="number"?t:t.storage;return v._fromStorage(Dn(r.storage,e))}function If(r){let[t,e]=xn(r.storage);return[v._fromStorage(t),v._fromStorage(e)]}function zf(r,t){let e=typeof t=="number"?t:t.storage;return v._fromStorage(Nn(r.storage,e))}function _f(r,t){let e=typeof t=="number"?t:t.storage;return v._fromStorage(wn(r.storage,e))}function Ff(r,t){let e=typeof t=="number"?t:t.storage;return v._fromStorage(In(r.storage,e))}function Mf(r){let[t,e]=zn(r.storage);return[v._fromStorage(t),v._fromStorage(e)]}function Bf(r,t){return r.bitwise_and(t)}function vf(r,t){return r.bitwise_or(t)}function Ef(r,t){return r.bitwise_xor(t)}function Tf(r){return r.bitwise_not()}function Of(r){return r.invert()}function Cf(r,t){return r.left_shift(t)}function Uf(r,t){return r.right_shift(t)}function $f(r,t=-1,e="big"){let n=_a(r.storage,t,e);return v._fromStorage(n)}function Rf(r,t=-1,e=-1,n="big"){let o=Fa(r.storage,t,e,n);return v._fromStorage(o)}function kf(r,t){return r.logical_and(t)}function qf(r,t){return r.logical_or(t)}function Vf(r){return r.logical_not()}function jf(r,t){return r.logical_xor(t)}function Pf(r){return r.isfinite()}function Lf(r){return r.isinf()}function Zf(r){return r.isnan()}function Gf(r){return r.isnat()}function Wf(r,t){return r.copysign(t)}function Yf(r){return r.signbit()}function Hf(r,t){return r.nextafter(t)}function Jf(r){return r.spacing()}function Xf(r){return v._fromStorage(ja(r.storage))}function Qf(r){return Pa(r.storage)}function Kf(r){return v._fromStorage(La(r.storage))}function rm(r){return Za(r.storage)}function tm(r){return v._fromStorage(rs(r.storage))}function em(r){return v._fromStorage(ts(r.storage))}function Ws(r){return v._fromStorage(es(r.storage))}var nm=Ws;function om(r,t=!1){return v._fromStorage(ns(r.storage,t))}function am(r){return v._fromStorage(Ga(r.storage))}function sm(r){return v._fromStorage(Wa(r.storage))}function im(r){return Ya(r.storage)}function um(r,t=100){return v._fromStorage(Ha(r.storage,t))}function cm(r){return Ja(r)}function lm(r){return Xa(r)}function fm(r,t){return Qa(r,t)}function mm(r,t){return Ka(r,t)}function ym(r,...t){let e=t.map(o=>o.storage),n=fo(r,...e);return typeof n=="number"||typeof n=="bigint"||n instanceof O?n:v._fromStorage(n)}var pm={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=po(r.storage,t,e,n);return typeof o=="number"?o:v._fromStorage(o)},vector_norm:(r,t=2,e,n=!1)=>{let o=qr(r.storage,t,e,n);return typeof o=="number"?o:v._fromStorage(o)},matrix_norm:(r,t="fro",e=!1)=>{let n=Br(r.storage,t,e);return typeof n=="number"?n:v._fromStorage(n)},qr:(r,t="reduced")=>{let e=ie(r.storage,t);return e instanceof x?v._fromStorage(e):"q"in e&&"r"in e?{q:v._fromStorage(e.q),r:v._fromStorage(e.r)}:{h:v._fromStorage(e.h),tau:v._fromStorage(e.tau)}},cholesky:(r,t=!1)=>v._fromStorage(go(r.storage,t)),svd:(r,t=!0,e=!0)=>{let n=Ao(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=>bo(r.storage),inv:r=>v._fromStorage(ht(r.storage)),solve:(r,t)=>v._fromStorage(ho(r.storage,t.storage)),lstsq:(r,t,e=null)=>{let n=So(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)=>Do(r.storage,t),matrix_rank:(r,t)=>xo(r.storage,t),matrix_power:(r,t)=>v._fromStorage(No(r.storage,t)),pinv:(r,t=1e-15)=>v._fromStorage(wo(r.storage,t)),eig:r=>{let t=le(r.storage);return{w:v._fromStorage(t.w),v:v._fromStorage(t.v)}},eigh:(r,t="L")=>{let e=fe(r.storage,t);return{w:v._fromStorage(e.w),v:v._fromStorage(e.v)}},eigvals:r=>v._fromStorage(Io(r.storage)),eigvalsh:(r,t="L")=>v._fromStorage(zo(r.storage,t))};function dm(r,t,e){return v._fromStorage(aa(r.storage,t.storage,e))}function gm(r,t,e,n){sa(r.storage,t.storage,e.storage,n)}function Am(r,t,e){let n=e instanceof v?e.storage:e;ia(r.storage,t.storage,n)}function bm(r,t,e){return v._fromStorage(me(r.storage,t.storage,e))}function hm(r,t,e=0){let n=r.map(a=>a.storage),o=t.map(a=>a.storage);return v._fromStorage(ua(n,o,e))}function Sm(r,t,e){ca(r.storage,t.storage,e.storage)}function Dm(r,t,e=!1){let n=typeof t=="number"?t:t.storage;ba(r.storage,n,e)}function xm(r,t=2){return ye(r,t).map(n=>v._fromStorage(n))}function Nm(r){return la(r.storage).map(e=>v._fromStorage(e))}function wm(r,t=0,e){return pe(r,t,e).map(o=>v._fromStorage(o))}function Im(r,t=0){return fa(r.storage,t).map(n=>v._fromStorage(n))}function zm(r,t=0,e){return de(r,t,e).map(o=>v._fromStorage(o))}function _m(r,t=0){return ma(r.storage,t).map(n=>v._fromStorage(n))}function Fm(r,t,e=0){return ya(r,(a,u)=>t(a,u).storage,e).map(a=>v._fromStorage(a))}function Mm(r,t="int32"){return v._fromStorage(pa(r,t))}function Bm(...r){return da(...r.map(e=>e.storage)).map(e=>v._fromStorage(e))}function vm(r,t,e="raise"){let n=r.map(o=>o.storage);return v._fromStorage(ga(n,t,e))}function Em(r,t,e="C"){let n=r instanceof v?r.storage:r;return Aa(n,t,e).map(a=>v._fromStorage(a))}function Tm(r,t=-1){return v._fromStorage(Ae(r.storage,t))}function Om(r,t=-1){return v._fromStorage(be(r.storage,t))}function Cm(r){let t=r.map(e=>e.storage);return v._fromStorage(os(t))}function Um(r,t,e=-1){return v._fromStorage(he(r.storage,t,e))}function $m(r,t,e=-1){return v._fromStorage(Se(r.storage,t,e))}function Rm(r){return v._fromStorage(as(r.storage))}function km(r){return Nt(r.storage).map(e=>v._fromStorage(e))}function qm(r){return v._fromStorage(De(r.storage))}function Vm(r){return v._fromStorage(ss(r.storage))}function jm(r,t,e){let n=is(r.storage,t?.storage,e?.storage);return Array.isArray(n)?n.map(o=>v._fromStorage(o)):v._fromStorage(n)}function Pm(r,t,e="left"){return v._fromStorage(xe(r.storage,t.storage,e))}function Lm(r,t){return v._fromStorage(us(r.storage,t.storage))}function Zm(r,t){let e=Ne(r.storage,t);return typeof e=="number"?e:v._fromStorage(e)}function Ue(r,t=0){return v._fromStorage(we(r.storage,t))}function Gm(r){return v._fromStorage(Ie(r.storage))}function Wm(r){return v._fromStorage(ze(r.storage))}function Ym(r){return v._fromStorage(_e(r.storage))}function Hm(r){return v._fromStorage(Fe(r.storage))}function Jm(r){return v._fromStorage(Me(r.storage))}function Xm(r,t=!1,e=!1,n=!1){let o=xr(r.storage,t,e,n);if(o instanceof x)return v._fromStorage(o);let a={values:v._fromStorage(o.values)};return o.indices&&(a.indices=v._fromStorage(o.indices)),o.inverse&&(a.inverse=v._fromStorage(o.inverse)),o.counts&&(a.counts=v._fromStorage(o.counts)),a}function Qm(r,t){return v._fromStorage(ls(r.storage,t.storage))}function Km(r,t){return v._fromStorage(fs(r.storage,t.storage))}function ry(r,t){return v._fromStorage(ve(r.storage,t.storage))}function ty(r,t){return v._fromStorage(ms(r.storage,t.storage))}function ey(r,t){return v._fromStorage(ys(r.storage,t.storage))}function ny(r,t){return v._fromStorage(ps(r.storage,t.storage))}function oy(r,t=1,e=-1){return v._fromStorage(Ee(r.storage,t,e))}function ay(r,t=null,e=null){return v._fromStorage(ds(r.storage,t,e))}function sy(r,t=1,e=null){let n=gs(r.storage,t,e);return Array.isArray(n)?n.map(o=>v._fromStorage(o)):v._fromStorage(n)}function iy(r,t,e=-1,n=-1,o=-1){return v._fromStorage(As(r.storage,t.storage,e,n,o))}function uy(r,t,e=0){return v._fromStorage(bs(r.storage,t?.storage,e))}function cy(r,t,e=!1){return v._fromStorage(hs(r.storage,t.storage,e))}function ly(r,t=10,e,n=!1,o){let a=Ss(r.storage,typeof t=="number"?t:t.storage,e,n,o?.storage);return[v._fromStorage(a.hist),v._fromStorage(a.bin_edges)]}function fy(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=Ds(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 my(r,t=10,e,n=!1,o){let a=xs(r.storage,t,e,n,o?.storage);return[v._fromStorage(a.hist),a.edges.map(u=>v._fromStorage(u))]}function yy(r,t,e="full"){return v._fromStorage(Te(r.storage,t.storage,e))}function py(r,t,e="full"){return v._fromStorage(Ns(r.storage,t.storage,e))}function dy(r,t,e=!0,n=!1,o){return v._fromStorage(Oe(r.storage,t?.storage,e,n,o))}function gy(r,t,e=!0){return v._fromStorage(ws(r.storage,t?.storage,e))}var at=new Uint8Array([147,78,85,77,80,89]),$e=["float64","float32","complex128","complex64","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"];function Re(){let r=new ArrayBuffer(2);return new DataView(r).setInt16(0,256,!0),new Int16Array(r)[0]===256}var Ay={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"},It={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"},Ys={S:"byte strings",U:"Unicode strings",O:"Python objects",V:"structured arrays (void)",M:"datetime64",m:"timedelta64"};function Hs(r){if(r.startsWith("[")||r.startsWith("("))throw new wr(`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 Ys)throw new wr(`Unsupported dtype: ${Ys[n]} (${r}). Use the 'force' parameter to skip arrays with unsupported dtypes.`);let o=Ay[e];if(!o)throw new wr(`Unknown or unsupported dtype descriptor: ${r}. Supported types: ${$e.join(", ")}. Use the 'force' parameter to skip arrays with unsupported dtypes.`);let a=Re(),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 wr=class extends Error{constructor(t){super(t),this.name="UnsupportedDTypeError"}},ir=class extends Error{constructor(t){super(t),this.name="InvalidNpyError"}};function zt(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=ke(t);return qe(t,e)}function ke(r){if(r.length<10)throw new ir("File too small to be a valid NPY file");for(let c=0;c<at.length;c++)if(r[c]!==at[c])throw new ir("Invalid NPY magic number");let t=r[6],e=r[7];if(t!==1&&t!==2&&t!==3)throw new ir(`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 ir("File truncated: header extends beyond file");let u=r.slice(o,a),s=new TextDecoder("utf-8").decode(u).trim(),i=by(s);return{version:{major:t,minor:e},header:i,dataOffset:a}}function qe(r,t){let{header:e,dataOffset:n}=t,{dtype:o,needsByteSwap:a,itemsize:u}=Hs(e.descr),s=e.shape.reduce((y,g)=>y*g,1),i=s*u,c=r.length-n;if(c<i)throw new ir(`File truncated: expected ${i} bytes of data, got ${c}`);let l=new ArrayBuffer(i);new Uint8Array(l).set(r.subarray(n,n+i));let d=hy(l,o,s,a,u),p=e.shape,f;if(e.fortran_order&&p.length>1){let y=[...p].reverse(),g=x.fromData(d,y,o);f=Sy(g,y),p=e.shape}else f=x.fromData(d,[...p],o);return new v(f)}function by(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 ir(`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 ir(`Invalid shape value: ${i}`);return c}),{descr:o,fortran_order:a,shape:s}}function hy(r,t,e,n,o){let a=P(t);if(!a)throw new ir(`Cannot create array for dtype: ${t}`);let u=M(t),s=u?e*2:e;if(!n)return new a(r,0,s);let i=new Uint8Array(r),c=new Uint8Array(r.byteLength);if(u){let l=o/2;for(let m=0;m<e*2;m++){let d=m*l;for(let p=0;p<l;p++)c[d+p]=i[d+l-1-p]}}else for(let l=0;l<e;l++){let m=l*o;for(let d=0;d<o;d++)c[m+d]=i[m+o-1-d]}return new a(c.buffer,0,s)}function Sy(r,t){let e=t.length,n=r.size,o=r.dtype,a=P(o);if(!a)throw new ir(`Cannot create array for dtype: ${o}`);let u=new a(n),s=[...t].reverse(),i=Js(t),c=Js(s),l=new Array(e).fill(0);for(let m=0;m<n;m++){let d=m;for(let f=0;f<e;f++){let y=i[f];l[f]=Math.floor(d/y),d=d%y}let p=0;for(let f=0;f<e;f++)p+=l[e-1-f]*c[f];B(o),u[p]=r.iget(m)}return x.fromData(u,s,o)}function Js(r){let t=new Array(r.length),e=1;for(let n=r.length-1;n>=0;n--)t[n]=e,e*=r[n];return t}function st(r){let t=r.shape,e=r.dtype,n=It[e],o=t.length===0?"()":t.length===1?`(${t[0]},)`:`(${t.join(", ")})`,a=`{'descr': '${n}', 'fortran_order': False, 'shape': ${o}, }`,u=12,i=(64-(u+a.length+1)%64)%64;a=a+" ".repeat(i)+`
2
- `;let c=new TextEncoder().encode(a),l=c.length,m=r.size,d=lt(e),p=m*d,f=u+l+p,y=new Uint8Array(f);y.set(at,0),y[6]=3,y[7]=0,y[8]=l&255,y[9]=l>>8&255,y[10]=l>>16&255,y[11]=l>>24&255,y.set(c,u);let g=u+l;return Dy(r,y.subarray(g),d),y}function Dy(r,t,e){let n=r.dtype,o=r.size,a=Re(),u=B(n),s=M(n),i=r._storage;if(i.isCContiguous&&i.offset===0&&a){let l=i.data,m=new Uint8Array(l.buffer,l.byteOffset,o*e);t.set(m)}else{let l=new DataView(t.buffer,t.byteOffset,t.byteLength);for(let m=0;m<o;m++){let d=i.iget(m),p=m*e;u?xy(l,p,d,n==="uint64"):s?Ny(l,p,d,n):wy(l,p,d,n)}}}function xy(r,t,e,n){n?r.setBigUint64(t,e,!0):r.setBigInt64(t,e,!0)}function Ny(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 wy(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 Iy=(()=>{let r=new Uint32Array(256);for(let t=0;t<256;t++){let e=t;for(let n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;r[t]=e}return r})();function Ve(r){let t=4294967295;for(let e=0;e<r.length;e++)t=Iy[(t^r[e])&255]^t>>>8;return(t^4294967295)>>>0}async function Xs(r){let t=Ks(r),e=new Map;for(let n of t){let o=await zy(n);e.set(n.name,o)}return e}function Qs(r){let t=Ks(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 Ks(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=new DataView(t.buffer,t.byteOffset,t.byteLength),n=[],o=-1;for(let c=t.length-22;c>=0;c--)if(e.getUint32(c,!0)===101010256){o=c;break}if(o===-1)throw new Error("Invalid ZIP file: end of central directory not found");let a=e.getUint32(o+16,!0),u=e.getUint16(o+10,!0),s=[],i=a;for(let c=0;c<u&&e.getUint32(i,!0)===33639248;c++){let m=e.getUint16(i+10,!0),d=e.getUint32(i+16,!0),p=e.getUint32(i+20,!0),f=e.getUint32(i+24,!0),y=e.getUint16(i+28,!0),g=e.getUint16(i+30,!0),h=e.getUint16(i+32,!0),b=e.getUint32(i+42,!0),A=t.slice(i+46,i+46+y),S=new TextDecoder("utf-8").decode(A);s.push({name:S,compressionMethod:m,crc32:d,compressedSize:p,uncompressedSize:f,localHeaderOffset:b}),i=i+46+y+g+h}for(let c of s){let l=c.localHeaderOffset;if(e.getUint32(l,!0)!==67324752)throw new Error(`Invalid local file header at offset ${l}`);let d=e.getUint16(l+26,!0),p=e.getUint16(l+28,!0),f=l+30+d+p,y=t.slice(f,f+c.compressedSize);n.push({name:c.name,compressedData:y,compressionMethod:c.compressionMethod,crc32:c.crc32,compressedSize:c.compressedSize,uncompressedSize:c.uncompressedSize})}return n}async function zy(r){if(r.compressionMethod===0)return r.compressedData;if(r.compressionMethod===8)return await _y(r.compressedData);throw new Error(`Unsupported compression method: ${r.compressionMethod}`)}async function _y(r){if(typeof DecompressionStream>"u")throw new Error("DecompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let t=new DecompressionStream("deflate-raw"),e=new Uint8Array(r.length);e.set(r);let n=t.writable.getWriter();n.write(e),n.close();let o=t.readable.getReader(),a=[];for(;;){let{done:c,value:l}=await o.read();if(c)break;a.push(l)}let u=a.reduce((c,l)=>c+l.length,0),s=new Uint8Array(u),i=0;for(let c of a)s.set(c,i),i+=c.length;return s}async function Le(r,t={}){let e=t.force??!1,n=await Xs(r);return ri(n,e)}function Ze(r,t={}){let e=t.force??!1,n=Qs(r);return ri(n,e)}function ri(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=zt(u);e.set(s,i)}catch(i){if(i instanceof wr&&t)n.push(s),o.set(s,i.message);else throw i}}return{arrays:e,skipped:n,errors:o}}async function ti(r,t={}){let e=await Le(r,t);return Object.fromEntries(e.arrays)}function ei(r,t={}){let e=Ze(r,t);return Object.fromEntries(e.arrays)}async function ni(r,t={}){let e=t.compress??!1,n=[];for(let[d,p]of r){let f=Ve(p),y,g;e?(y=await My(p),y.length<p.length?g=8:(y=p,g=0)):(y=p,g=0),n.push({name:d,data:p,compressedData:y,crc:f,compressionMethod:g,offset:0})}let o=0;for(let d of n){let p=new TextEncoder().encode(d.name);o+=30+p.length+d.compressedData.length}let a=0;for(let d of n){let p=new TextEncoder().encode(d.name);a+=46+p.length}let s=o+a+22,i=new Uint8Array(s),c=new DataView(i.buffer),l=0;for(let d of n)d.offset=l,l=ai(i,c,l,d);let m=l;for(let d of n)l=si(i,c,l,d);return ii(c,l,n.length,a,m),i}function oi(r){let t=[];for(let[l,m]of r){let d=Ve(m);t.push({name:l,data:m,compressedData:m,crc:d,compressionMethod:0,offset:0})}let e=0;for(let l of t){let m=new TextEncoder().encode(l.name);e+=30+m.length+l.compressedData.length}let n=0;for(let l of t){let m=new TextEncoder().encode(l.name);n+=46+m.length}let a=e+n+22,u=new Uint8Array(a),s=new DataView(u.buffer),i=0;for(let l of t)l.offset=i,i=ai(u,s,i,l);let c=i;for(let l of t)i=si(u,s,i,l);return ii(s,i,t.length,n,c),u}function ai(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 si(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 ii(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 My(r){if(typeof CompressionStream>"u")throw new Error("CompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let t=new CompressionStream("deflate-raw"),e=new Uint8Array(r.length);e.set(r);let n=t.writable.getWriter();n.write(e),n.close();let o=t.readable.getReader(),a=[];for(;;){let{done:c,value:l}=await o.read();if(c)break;a.push(l)}let u=a.reduce((c,l)=>c+l.length,0),s=new Uint8Array(u),i=0;for(let c of a)s.set(c,i),i+=c.length;return s}async function ui(r,t={}){let e=li(r);return ni(e,{compress:t.compress??!1})}function ci(r){let t=li(r);return oi(t)}function li(r){let t=new Map;if(Array.isArray(r)){for(let n=0;n<r.length;n++){let o=r[n],a=st(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=st(o),u=n.endsWith(".npy")?n:`${n}.npy`;t.set(u,a)}return t}var gr=624,_t=397,Oy=2567483615,Ge=2147483648,We=2147483647,Ar={mt:new Uint32Array(gr),mti:gr+1};function yi(r){let t=Ar.mt;t[0]=r>>>0;for(let e=1;e<gr;e++){let n=t[e-1]^t[e-1]>>>30;t[e]=Math.imul(1812433253,n)+e>>>0}Ar.mti=gr}function fi(){let r=Ar.mt,t,e=[0,Oy];if(Ar.mti>=gr){let n;for(Ar.mti===gr+1&&yi(5489),n=0;n<gr-_t;n++)t=r[n]&Ge|r[n+1]&We,r[n]=r[n+_t]^t>>>1^e[t&1];for(;n<gr-1;n++)t=r[n]&Ge|r[n+1]&We,r[n]=r[n+(_t-gr)]^t>>>1^e[t&1];t=r[gr-1]&Ge|r[0]&We,r[gr-1]=r[_t-1]^t>>>1^e[t&1],Ar.mti=0}return t=r[Ar.mti++],t^=t>>>11,t^=t<<7&2636928640,t^=t<<15&4022730752,t^=t>>>18,t>>>0}function W(){let r=fi()>>>5,t=fi()>>>6;return(r*67108864+t)/9007199254740992}var Cy=2468251765,Uy=1492356589,$y=1135663077,Ry=2337405405,ky=3389127133,qy=1232336661,Qe=16,Ft=4;function sr(r){return r>>>0}function Ye(r,t){return r=sr(sr(r)^t.val),t.val=sr(Math.imul(t.val,Cy)),r=sr(Math.imul(r,t.val)),r=sr(r^r>>>Qe),r}function Vy(r,t){let e=sr(sr(Math.imul(ky,sr(r)))-sr(Math.imul(qy,sr(t))));return e=sr(e^e>>>Qe),e}function jy(r){let t=[0,0,0,0],e=[r>>>0],n={val:$y};for(let o=0;o<Ft;o++)o<e.length?t[o]=Ye(e[o],n):t[o]=Ye(0,n);for(let o=0;o<Ft;o++)for(let a=0;a<Ft;a++)if(o!==a){let u=Ye(t[o],n);t[a]=Vy(t[a],u)}return t}function Py(r,t){let e=[],n=Ry;for(let o=0;o<t;o++){let a=r[o%Ft],u=sr(a^n);n=sr(Math.imul(n,Uy)),u=sr(Math.imul(u,n)),u=sr(u^u>>>Qe),e.push(u)}return e}var Ly=BigInt("4865540595714422341"),Zy=BigInt("2549297995355413924"),Gy=Zy<<BigInt(64)|Ly,He=BigInt("0xffffffffffffffff"),Je=(BigInt(1)<<BigInt(128))-BigInt(1);function Wy(r){let t=r>>BigInt(64),e=r&He,n=(t^e)&He,o=Number(r>>BigInt(122));return(n>>BigInt(o)|n<<BigInt(64-o))&He}function Xe(r,t){return r*Gy+t&Je}function mi(r){let t=jy(r),e=Py(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))&Je;let c=BigInt(0);return c=Xe(c,i),c=c+s&Je,c=Xe(c,i),{state:c,inc:i}}function Yy(r){return r.state=Xe(r.state,r.inc),Wy(r.state)}function Hy(r){let e=Yy(r)>>BigInt(11);return Number(e)/9007199254740992}var ut=class{constructor(t){if(t!==void 0)this._pcgState=mi(t);else{let e=Math.floor(Math.random()*4294967296);this._pcgState=mi(e)}}_randomFloat(){return Hy(this._pcgState)}random(t){if(t===void 0)return this._randomFloat();let e=Array.isArray(t)?t:[t],n=e.reduce((u,s)=>u*s,1),o=x.zeros(e,"float64"),a=o.data;for(let u=0;u<n;u++)a[u]=this._randomFloat();return o}integers(t,e,n){if(e===void 0&&(e=t,t=0),n===void 0)return Math.floor(this._randomFloat()*(e-t))+t;let o=Array.isArray(n)?n:[n],a=o.reduce((c,l)=>c*l,1),u=x.zeros(o,"int64"),s=u.data,i=e-t;for(let c=0;c<a;c++)s[c]=BigInt(Math.floor(this._randomFloat()*i)+t);return u}standard_normal(t){if(t===void 0)return vr(this._randomFloat.bind(this));let e=Array.isArray(t)?t:[t],n=e.reduce((u,s)=>u*s,1),o=x.zeros(e,"float64"),a=o.data;for(let u=0;u<n;u+=2){let[s,i]=ct(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 vr(this._randomFloat.bind(this))*e+t;let o=Array.isArray(n)?n:[n],a=o.reduce((i,c)=>i*c,1),u=x.zeros(o,"float64"),s=u.data;for(let i=0;i<a;i+=2){let[c,l]=ct(this._randomFloat.bind(this));s[i]=c*e+t,i+1<a&&(s[i+1]=l*e+t)}return u}uniform(t=0,e=1,n){if(n===void 0)return this._randomFloat()*(e-t)+t;let o=Array.isArray(n)?n:[n],a=o.reduce((c,l)=>c*l,1),u=x.zeros(o,"float64"),s=u.data,i=e-t;for(let c=0;c<a;c++)s[c]=this._randomFloat()*i+t;return u}choice(t,e,n=!0,o){return Fi(t,e,n,o,this._randomFloat.bind(this))}permutation(t){return Bi(t,this._randomFloat.bind(this))}shuffle(t){Ei(t,this._randomFloat.bind(this))}exponential(t=1,e){if(e===void 0)return-Math.log(1-this._randomFloat())*t;let n=Array.isArray(e)?e:[e],o=n.reduce((s,i)=>s*i,1),a=x.zeros(n,"float64"),u=a.data;for(let s=0;s<o;s++)u[s]=-Math.log(1-this._randomFloat())*t;return a}poisson(t=1,e){if(e===void 0)return Mt(t,this._randomFloat.bind(this));let n=Array.isArray(e)?e:[e],o=n.reduce((s,i)=>s*i,1),a=x.zeros(n,"int64"),u=a.data;for(let s=0;s<o;s++)u[s]=BigInt(Mt(t,this._randomFloat.bind(this)));return a}binomial(t,e,n){if(n===void 0)return Bt(t,e,this._randomFloat.bind(this));let o=Array.isArray(n)?n:[n],a=o.reduce((i,c)=>i*c,1),u=x.zeros(o,"int64"),s=u.data;for(let i=0;i<a;i++)s[i]=BigInt(Bt(t,e,this._randomFloat.bind(this)));return u}};function pi(r){return new ut(r)}function di(r){r==null&&(r=Math.floor(Date.now()^Math.random()*4294967296)),yi(r>>>0)}function gi(){return{mt:Array.from(Ar.mt),mti:Ar.mti}}function Ai(r){Ar.mt=new Uint32Array(r.mt),Ar.mti=r.mti}function vr(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 ct(r){let t,e;do t=r(),e=r();while(t===0);let n=Math.sqrt(-2*Math.log(t)),o=2*Math.PI*e;return[n*Math.cos(o),n*Math.sin(o)]}function Mt(r,t){if(r<30){let e=Math.exp(-r),n=0,o=1;do n++,o*=t();while(o>e);return n-1}else{let e=vr(t);return Math.max(0,Math.round(r+Math.sqrt(r)*e))}}function Bt(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=vr(e);return Math.max(0,Math.min(r,Math.round(n+o*a)))}}function bi(r){if(r===void 0)return W();let t=Array.isArray(r)?r:[r],e=t.reduce((a,u)=>a*u,1),n=x.zeros(t,"float64"),o=n.data;for(let a=0;a<e;a++)o[a]=W();return n}function hi(...r){if(r.length===0)return W();let t=r.reduce((o,a)=>o*a,1),e=x.zeros(r,"float64"),n=e.data;for(let o=0;o<t;o++)n[o]=W();return e}function Si(...r){if(r.length===0)return vr(W);let t=r.reduce((o,a)=>o*a,1),e=x.zeros(r,"float64"),n=e.data;for(let o=0;o<t;o+=2){let[a,u]=ct(W);n[o]=a,o+1<t&&(n[o+1]=u)}return e}function Di(r,t,e,n="int64"){t==null&&(t=r,r=0);let o=t-r;if(e===void 0)return Math.floor(W()*o)+r;let a=Array.isArray(e)?e:[e],u=a.reduce((c,l)=>c*l,1),s=x.zeros(a,n),i=s.data;if(B(n)){let c=i;for(let l=0;l<u;l++)c[l]=BigInt(Math.floor(W()*o)+r)}else{let c=i;for(let l=0;l<u;l++)c[l]=Math.floor(W()*o)+r}return s}function xi(r=0,t=1,e){if(e===void 0)return W()*(t-r)+r;let n=Array.isArray(e)?e:[e],o=n.reduce((i,c)=>i*c,1),a=x.zeros(n,"float64"),u=a.data,s=t-r;for(let i=0;i<o;i++)u[i]=W()*s+r;return a}function Ni(r=0,t=1,e){if(e===void 0)return vr(W)*t+r;let n=Array.isArray(e)?e:[e],o=n.reduce((s,i)=>s*i,1),a=x.zeros(n,"float64"),u=a.data;for(let s=0;s<o;s+=2){let[i,c]=ct(W);u[s]=i*t+r,s+1<o&&(u[s+1]=c*t+r)}return a}function wi(r){if(r===void 0)return vr(W);let t=Array.isArray(r)?r:[r],e=t.reduce((a,u)=>a*u,1),n=x.zeros(t,"float64"),o=n.data;for(let a=0;a<e;a+=2){let[u,s]=ct(W);o[a]=u,a+1<e&&(o[a+1]=s)}return n}function Ii(r=1,t){if(t===void 0)return-Math.log(1-W())*r;let e=Array.isArray(t)?t:[t],n=e.reduce((u,s)=>u*s,1),o=x.zeros(e,"float64"),a=o.data;for(let u=0;u<n;u++)a[u]=-Math.log(1-W())*r;return o}function zi(r=1,t){if(t===void 0)return Mt(r,W);let e=Array.isArray(t)?t:[t],n=e.reduce((u,s)=>u*s,1),o=x.zeros(e,"int64"),a=o.data;for(let u=0;u<n;u++)a[u]=BigInt(Mt(r,W));return o}function _i(r,t,e){if(e===void 0)return Bt(r,t,W);let n=Array.isArray(e)?e:[e],o=n.reduce((s,i)=>s*i,1),a=x.zeros(n,"int64"),u=a.data;for(let s=0;s<o;s++)u[s]=BigInt(Bt(r,t,W));return a}function Fi(r,t,e=!0,n,o=W){let a;if(typeof r=="number")a=Array.from({length:r},(d,p)=>p);else{let d=r.size;a=[];for(let p=0;p<d;p++)a.push(Number(r.iget(p)))}let u=a.length;if(u===0)throw new Error("cannot take a sample from an empty sequence");let s;if(n!==void 0){if(Array.isArray(n))s=n;else{let p=n.size;s=[];for(let f=0;f<p;f++)s.push(Number(n.iget(f)))}if(s.length!==u)throw new Error("p and a must have the same size");let d=s.reduce((p,f)=>p+f,0);Math.abs(d-1)>1e-10&&(s=s.map(p=>p/d))}if(t===void 0){if(s){let d=o(),p=0;for(let f=0;f<u;f++)if(p+=s[f],d<p)return a[f];return a[u-1]}return a[Math.floor(o()*u)]}let i=Array.isArray(t)?t:[t],c=i.reduce((d,p)=>d*p,1);if(!e&&c>u)throw new Error("cannot take a larger sample than population when replace=false");let l=x.zeros(i,"float64"),m=l.data;if(e)if(s){let d=new Array(u);d[0]=s[0];for(let p=1;p<u;p++)d[p]=d[p-1]+s[p];for(let p=0;p<c;p++){let f=o(),y=0;for(;y<u-1&&f>=d[y];)y++;m[p]=a[y]}}else for(let d=0;d<c;d++)m[d]=a[Math.floor(o()*u)];else{let d=[...a],p=s?[...s]:void 0;for(let f=0;f<c;f++){let y;if(p){let g=p.reduce((A,S)=>A+S,0),h=o()*g,b=0;y=0;for(let A=0;A<d.length;A++)if(b+=p[A],h<b){y=A;break}y===0&&h>=b&&(y=d.length-1)}else y=Math.floor(o()*d.length);m[f]=d[y],d.splice(y,1),p&&p.splice(y,1)}}return l}function Mi(r,t,e=!0,n){return Fi(r,t,e,n,W)}function Bi(r,t=W){let e;if(typeof r=="number"){let o=new Float64Array(r);for(let a=0;a<r;a++)o[a]=a;e=x.fromData(o,[r],"float64")}else e=r.copy();let n=e.size;for(let o=n-1;o>0;o--){let a=Math.floor(t()*(o+1)),u=e.iget(o);e.iset(o,e.iget(a)),e.iset(a,u)}return e}function vi(r){return Bi(r,W)}function Ei(r,t=W){let e=r.size;for(let n=e-1;n>0;n--){let o=Math.floor(t()*(n+1)),a=r.iget(n);r.iset(n,r.iget(o)),r.iset(o,a)}}function Ti(r){Ei(r,W)}function mr(r){return r&&typeof r=="object"&&"_data"in r&&"_shape"in r?v._fromStorage(r):r}var Kd={seed:di,random:r=>mr(bi(r)),rand:(...r)=>mr(hi(...r)),randn:(...r)=>mr(Si(...r)),randint:(r,t,e,n)=>mr(Di(r,t,e,n)),uniform:(r,t,e)=>mr(xi(r,t,e)),normal:(r,t,e)=>mr(Ni(r,t,e)),standard_normal:r=>mr(wi(r)),exponential:(r,t)=>mr(Ii(r,t)),poisson:(r,t)=>mr(zi(r,t)),binomial:(r,t,e)=>mr(_i(r,t,e)),choice:(r,t,e,n)=>mr(Mi(r,t,e,n)),permutation:r=>mr(vi(r)),shuffle:Ti,get_state:gi,set_state:Ai,default_rng:pi,Generator:ut},rg="0.11.0";export{O as Complex,It as DTYPE_TO_DESCR,ir as InvalidNpyError,v as NDArray,$e as SUPPORTED_DTYPES,wr as UnsupportedDTypeError,rg as __version__,Ts as abs,Ts as absolute,Us as acos,qs as acosh,Zs as amax,Gs as amin,om as angle,Rl as append,ac as arange,Us as arccos,qs as arccosh,Cs as arcsin,ks as arcsinh,$s as arctan,Rs as arctan2,Vs as arctanh,$m as argpartition,Om as argsort,qm as argwhere,Ue as around,ar as array,Xl as array_equal,Ql as array_equiv,Al as array_split,dc as asanyarray,wt as asarray,gc as ascontiguousarray,Ac as asfortranarray,Cs as asin,ks as asinh,$s as atan,Rs as atan2,Vs as atanh,vl as atleast_1d,El as atleast_2d,Tl as atleast_3d,nf as average,uy as bincount,Yl as bindex,Bf as bitwise_and,Tf as bitwise_not,vf as bitwise_or,Ef as bitwise_xor,Pl as broadcast_arrays,Ll as broadcast_shapes,jl as broadcast_to,Af as cbrt,Gm as ceil,Jl as choose,Cl as column_stack,bm as compress,jr as concatenate,Ws as conj,nm as conjugate,py as convolve,lc as copy,Wf as copysign,Hl as copyto,gy as corrcoef,yy as correlate,tl as cos,cl as cosh,Zm as count_nonzero,dy as cov,iy as cross,Ls as cumprod,Ps as cumsum,Ls as cumulative_prod,Ps as cumulative_sum,sl as deg2rad,ol as degrees,kl as delete,vs as diag,xm as diag_indices,Nm as diag_indices_from,bc as diagflat,Yc as diagonal,oy as diff,cy as digitize,Os as divide,hf as divmod,Gc as dot,Ol as dsplit,dl as dstack,ay as ediff1d,ym as einsum,Ms as empty,yc as empty_like,vc as exp,Ec as exp2,Il as expand_dims,Tc as expm1,Lm as extract,Fs as eye,bf as fabs,Dm as fill_diagonal,Wm as fix,Vm as flatnonzero,Ce as flip,zl as fliplr,_l as flipud,Nf as float_power,Ym as floor,Pc as floor_divide,wf as fmod,If as frexp,Ic as frombuffer,zc as fromfile,hc as fromfunction,_c as fromiter,Fc as fromstring,Bs as full,pc as full_like,zf as gcd,uc as geomspace,sy as gradient,xf as heaviside,ly as histogram,fy as histogram2d,my as histogramdd,hl as hsplit,pl as hstack,nl as hypot,cc as identity,Wl as iindex,em as imag,Qm as in1d,Mm as indices,Xc as inner,ql as insert,Km as intersect1d,Of as invert,Xf as iscomplex,Qf as iscomplexobj,fm as isdtype,Pf as isfinite,im as isfortran,ry as isin,Lf as isinf,Zf as isnan,Gf as isnat,am as isneginf,sm as isposinf,Kf as isreal,rm as isrealobj,cm as isscalar,lm as iterable,Bm as ix_,Hc as kron,_f as lcm,Ff as ldexp,Cf as left_shift,Cm as lexsort,pm as linalg,sc as linspace,ti as loadNpz,ei as loadNpzSync,Oc as log,Uc as log10,$c as log1p,Cc as log2,Rc as logaddexp,kc as logaddexp2,kf as logical_and,Vf as logical_not,qf as logical_or,jf as logical_xor,ic as logspace,Fm as mask_indices,Zs as max,rf as median,Sc as meshgrid,Gs as min,jc as mod,Mf as modf,ml as moveaxis,yf as nanargmax,mf as nanargmin,df as nancumprod,pf as nancumsum,ff as nanmax,sf as nanmean,gf as nanmedian,lf as nanmin,af as nanprod,cf as nanstd,of as nansum,uf as nanvar,qc as negative,Hf as nextafter,km as nonzero,Is as ones,mc as ones_like,Qc as outer,$f as packbits,Vl as pad,zt as parseNpy,qe as parseNpyData,ke as parseNpyHeader,Le as parseNpz,Ze as parseNpzSync,Um as partition,tf as percentile,Sm as place,Lc as positive,Es as pow,Es as power,mm as promote_types,Kl as ptp,Gl as put,gm as put_along_axis,Am as putmask,ef as quantile,il as rad2deg,al as radians,Kd as random,xl as ravel,vm as ravel_multi_index,tm as real,um as real_if_close,Zc as reciprocal,Df as remainder,Dl as repeat,Nl as reshape,$l as resize,Uf as right_shift,Hm as rint,Ml as roll,Bl as rollaxis,Fl as rot90,Ue as round,Ue as round_,Ul as row_stack,Pm as searchsorted,hm as select,st as serializeNpy,ui as serializeNpz,ci as serializeNpzSync,ty as setdiff1d,ey as setxor1d,Vc as sign,Yf as signbit,rl as sin,ul as sinh,Tm as sort,Rm as sort_complex,Jf as spacing,gl as split,Bc as sqrt,Sf as square,wl as squeeze,yl as stack,fl as swapaxes,Zl as take,dm as take_along_axis,el as tan,ll as tanh,Kc as tensordot,Sl as tile,Wc as trace,Jc as transpose,Dc as tri,xc as tril,wm as tril_indices,Im as tril_indices_from,Nc as triu,zm as triu_indices,_m as triu_indices_from,Os as true_divide,Jm as trunc,ny as union1d,Xm as unique,Rf as unpackbits,Em as unravel_index,wc as vander,bl as vsplit,js as vstack,jm as where,Nr as zeros,fc as zeros_like};