numpy-ts 0.13.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -251
- package/dist/esm/common/internal/indexing.js +1 -1
- package/dist/esm/common/ndarray-core.js +1 -1
- package/dist/esm/common/ops/advanced.js +1 -1
- package/dist/esm/common/ops/arithmetic.js +1 -1
- package/dist/esm/common/ops/bitwise.js +1 -1
- package/dist/esm/common/ops/exponential.js +1 -1
- package/dist/esm/common/ops/fft.js +1 -1
- package/dist/esm/common/ops/gradient.js +1 -1
- package/dist/esm/common/ops/hyperbolic.js +1 -1
- package/dist/esm/common/ops/linalg.js +2 -2
- package/dist/esm/common/ops/logic.js +1 -1
- package/dist/esm/common/ops/reduction.js +1 -1
- package/dist/esm/common/ops/sets.js +1 -1
- package/dist/esm/common/ops/shape.js +1 -1
- package/dist/esm/common/ops/sorting.js +1 -1
- package/dist/esm/common/ops/statistics.js +1 -1
- package/dist/esm/common/ops/trig.js +1 -1
- package/dist/esm/common/storage.js +1 -1
- package/dist/esm/common/wasm/abs.js +1 -0
- package/dist/esm/common/wasm/add.js +1 -0
- package/dist/esm/common/wasm/arccos.js +1 -0
- package/dist/esm/common/wasm/arcsin.js +1 -0
- package/dist/esm/common/wasm/arctan.js +1 -0
- package/dist/esm/common/wasm/argpartition.js +1 -0
- package/dist/esm/common/wasm/argsort.js +1 -0
- package/dist/esm/common/wasm/bins/abs.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/add.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/arccos.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/arcsin.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/arctan.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/argpartition.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/argsort.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/bitwise_and.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/bitwise_count.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/bitwise_not.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/bitwise_or.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/bitwise_xor.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/cholesky.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/clip.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/convolve.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/copysign.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/correlate.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/cos.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/cosh.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/cross.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/diff.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/divide.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/dot.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/exp.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/exp2.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/fft.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/flip.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/frexp.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/gather.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/gcd.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/gradient.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/heaviside.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/hypot.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/indices.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/inner.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/kron.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/ldexp.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/left_shift.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/lexsort.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/logaddexp.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/logical_and.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/logical_not.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/logical_or.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/logical_xor.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/matmul.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/matvec.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/max.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/min.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/mul.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/neg.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/outer.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/pad.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/partition.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/power.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/qr.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/reciprocal.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/reduce_all.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/reduce_any.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/reduce_argmax.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/reduce_argmin.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/reduce_count_nz.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/reduce_max.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/reduce_mean.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/reduce_min.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/reduce_nanmax.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/reduce_nanmin.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/reduce_nansum.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/reduce_prod.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/reduce_quantile.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/reduce_std.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/reduce_sum.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/reduce_var.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/repeat.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/right_shift.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/roll.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/rot90.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/searchsorted.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/sign.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/sinh.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/sort.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/sqrt.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/square.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/sub.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/svd.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/tan.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/tanh.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/tile.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/vdot.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/vecdot.wasm.js +1 -0
- package/dist/esm/common/wasm/bins/vecmat.wasm.js +1 -0
- package/dist/esm/common/wasm/bitwise_and.js +1 -0
- package/dist/esm/common/wasm/bitwise_count.js +1 -0
- package/dist/esm/common/wasm/bitwise_not.js +1 -0
- package/dist/esm/common/wasm/bitwise_or.js +1 -0
- package/dist/esm/common/wasm/bitwise_xor.js +1 -0
- package/dist/esm/common/wasm/cholesky.js +1 -0
- package/dist/esm/common/wasm/clip.js +1 -0
- package/dist/esm/common/wasm/config.js +1 -0
- package/dist/esm/common/wasm/convolve.js +1 -0
- package/dist/esm/common/wasm/copysign.js +1 -0
- package/dist/esm/common/wasm/correlate.js +1 -0
- package/dist/esm/common/wasm/cos.js +1 -0
- package/dist/esm/common/wasm/cosh.js +1 -0
- package/dist/esm/common/wasm/cross.js +1 -0
- package/dist/esm/common/wasm/diff.js +1 -0
- package/dist/esm/common/wasm/divide.js +1 -0
- package/dist/esm/common/wasm/dot.js +1 -0
- package/dist/esm/common/wasm/exp.js +1 -0
- package/dist/esm/common/wasm/exp2.js +1 -0
- package/dist/esm/common/wasm/fft.js +1 -0
- package/dist/esm/common/wasm/flip.js +1 -0
- package/dist/esm/common/wasm/frexp.js +1 -0
- package/dist/esm/common/wasm/gather.js +1 -0
- package/dist/esm/common/wasm/gcd.js +1 -0
- package/dist/esm/common/wasm/gradient.js +1 -0
- package/dist/esm/common/wasm/heaviside.js +1 -0
- package/dist/esm/common/wasm/hypot.js +1 -0
- package/dist/esm/common/wasm/indices.js +1 -0
- package/dist/esm/common/wasm/inner.js +1 -0
- package/dist/esm/common/wasm/kron.js +1 -0
- package/dist/esm/common/wasm/ldexp.js +1 -0
- package/dist/esm/common/wasm/left_shift.js +1 -0
- package/dist/esm/common/wasm/lexsort.js +1 -0
- package/dist/esm/common/wasm/logaddexp.js +1 -0
- package/dist/esm/common/wasm/logical_and.js +1 -0
- package/dist/esm/common/wasm/logical_not.js +1 -0
- package/dist/esm/common/wasm/logical_or.js +1 -0
- package/dist/esm/common/wasm/logical_xor.js +1 -0
- package/dist/esm/common/wasm/lstsq.js +1 -0
- package/dist/esm/common/wasm/matmul.js +1 -0
- package/dist/esm/common/wasm/matvec.js +1 -0
- package/dist/esm/common/wasm/max.js +1 -0
- package/dist/esm/common/wasm/min.js +1 -0
- package/dist/esm/common/wasm/mul.js +1 -0
- package/dist/esm/common/wasm/neg.js +1 -0
- package/dist/esm/common/wasm/outer.js +1 -0
- package/dist/esm/common/wasm/pad.js +1 -0
- package/dist/esm/common/wasm/partition.js +1 -0
- package/dist/esm/common/wasm/power.js +1 -0
- package/dist/esm/common/wasm/qr.js +1 -0
- package/dist/esm/common/wasm/reciprocal.js +1 -0
- package/dist/esm/common/wasm/reduce_all.js +1 -0
- package/dist/esm/common/wasm/reduce_any.js +1 -0
- package/dist/esm/common/wasm/reduce_argmax.js +1 -0
- package/dist/esm/common/wasm/reduce_argmin.js +1 -0
- package/dist/esm/common/wasm/reduce_count_nz.js +1 -0
- package/dist/esm/common/wasm/reduce_max.js +1 -0
- package/dist/esm/common/wasm/reduce_mean.js +1 -0
- package/dist/esm/common/wasm/reduce_min.js +1 -0
- package/dist/esm/common/wasm/reduce_nanmax.js +1 -0
- package/dist/esm/common/wasm/reduce_nanmin.js +1 -0
- package/dist/esm/common/wasm/reduce_nansum.js +1 -0
- package/dist/esm/common/wasm/reduce_prod.js +1 -0
- package/dist/esm/common/wasm/reduce_quantile.js +1 -0
- package/dist/esm/common/wasm/reduce_std.js +1 -0
- package/dist/esm/common/wasm/reduce_sum.js +1 -0
- package/dist/esm/common/wasm/reduce_var.js +1 -0
- package/dist/esm/common/wasm/repeat.js +1 -0
- package/dist/esm/common/wasm/right_shift.js +1 -0
- package/dist/esm/common/wasm/roll.js +1 -0
- package/dist/esm/common/wasm/rot90.js +1 -0
- package/dist/esm/common/wasm/runtime.js +1 -0
- package/dist/esm/common/wasm/searchsorted.js +1 -0
- package/dist/esm/common/wasm/sign.js +1 -0
- package/dist/esm/common/wasm/sinh.js +1 -0
- package/dist/esm/common/wasm/sort.js +1 -0
- package/dist/esm/common/wasm/sqrt.js +1 -0
- package/dist/esm/common/wasm/square.js +1 -0
- package/dist/esm/common/wasm/sub.js +1 -0
- package/dist/esm/common/wasm/svd.js +1 -0
- package/dist/esm/common/wasm/tan.js +1 -0
- package/dist/esm/common/wasm/tanh.js +1 -0
- package/dist/esm/common/wasm/tile.js +1 -0
- package/dist/esm/common/wasm/vdot.js +1 -0
- package/dist/esm/common/wasm/vecdot.js +1 -0
- package/dist/esm/common/wasm/vecmat.js +1 -0
- package/dist/esm/core/creation.js +1 -1
- package/dist/esm/core/linalg.js +1 -1
- package/dist/esm/core/polynomial.js +1 -1
- package/dist/esm/core/reduction.js +1 -1
- package/dist/esm/core/sets.js +1 -1
- package/dist/esm/core/shape-extra.js +1 -1
- package/dist/esm/core/sorting.js +1 -1
- package/dist/esm/full/index.js +1 -1
- package/dist/esm/full/ndarray.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/io/zip/types.js +1 -1
- package/dist/esm/io/zip/writer.js +1 -1
- package/dist/numpy-ts.browser.js +6 -6
- package/dist/numpy-ts.node-io.cjs +6 -6
- package/dist/numpy-ts.node-io.cjs.map +4 -4
- package/dist/numpy-ts.node-io.mjs +6 -6
- package/dist/numpy-ts.node-io.mjs.map +4 -4
- package/dist/numpy-ts.node.cjs +6 -6
- package/dist/numpy-ts.node.cjs.map +4 -4
- package/dist/types/common/internal/indexing.d.ts +18 -0
- package/dist/types/common/ndarray-core.d.ts +3 -13
- package/dist/types/common/ops/linalg.d.ts +13 -12
- package/dist/types/common/ops/sets.d.ts +1 -1
- package/dist/types/common/ops/shape.d.ts +11 -0
- package/dist/types/common/storage.d.ts +4 -0
- package/dist/types/common/wasm/abs.d.ts +14 -0
- package/dist/types/common/wasm/add.d.ts +19 -0
- package/dist/types/common/wasm/arccos.d.ts +15 -0
- package/dist/types/common/wasm/arcsin.d.ts +15 -0
- package/dist/types/common/wasm/arctan.d.ts +15 -0
- package/dist/types/common/wasm/argpartition.d.ts +18 -0
- package/dist/types/common/wasm/argsort.d.ts +18 -0
- package/dist/types/common/wasm/bins/abs.wasm.d.ts +7 -0
- package/dist/types/common/wasm/bins/add.wasm.d.ts +17 -0
- package/dist/types/common/wasm/bins/arccos.wasm.d.ts +5 -0
- package/dist/types/common/wasm/bins/arcsin.wasm.d.ts +5 -0
- package/dist/types/common/wasm/bins/arctan.wasm.d.ts +5 -0
- package/dist/types/common/wasm/bins/argpartition.wasm.d.ts +21 -0
- package/dist/types/common/wasm/bins/argsort.wasm.d.ts +25 -0
- package/dist/types/common/wasm/bins/bitwise_and.wasm.d.ts +5 -0
- package/dist/types/common/wasm/bins/bitwise_count.wasm.d.ts +9 -0
- package/dist/types/common/wasm/bins/bitwise_not.wasm.d.ts +5 -0
- package/dist/types/common/wasm/bins/bitwise_or.wasm.d.ts +5 -0
- package/dist/types/common/wasm/bins/bitwise_xor.wasm.d.ts +5 -0
- package/dist/types/common/wasm/bins/cholesky.wasm.d.ts +3 -0
- package/dist/types/common/wasm/bins/clip.wasm.d.ts +11 -0
- package/dist/types/common/wasm/bins/convolve.wasm.d.ts +3 -0
- package/dist/types/common/wasm/bins/copysign.wasm.d.ts +21 -0
- package/dist/types/common/wasm/bins/correlate.wasm.d.ts +3 -0
- package/dist/types/common/wasm/bins/cos.wasm.d.ts +3 -0
- package/dist/types/common/wasm/bins/cosh.wasm.d.ts +5 -0
- package/dist/types/common/wasm/bins/cross.wasm.d.ts +9 -0
- package/dist/types/common/wasm/bins/diff.wasm.d.ts +13 -0
- package/dist/types/common/wasm/bins/divide.wasm.d.ts +23 -0
- package/dist/types/common/wasm/bins/dot.wasm.d.ts +9 -0
- package/dist/types/common/wasm/bins/exp.wasm.d.ts +5 -0
- package/dist/types/common/wasm/bins/exp2.wasm.d.ts +5 -0
- package/dist/types/common/wasm/bins/fft.wasm.d.ts +17 -0
- package/dist/types/common/wasm/bins/flip.wasm.d.ts +7 -0
- package/dist/types/common/wasm/bins/frexp.wasm.d.ts +2 -0
- package/dist/types/common/wasm/bins/gather.wasm.d.ts +32 -0
- package/dist/types/common/wasm/bins/gcd.wasm.d.ts +3 -0
- package/dist/types/common/wasm/bins/gradient.wasm.d.ts +11 -0
- package/dist/types/common/wasm/bins/heaviside.wasm.d.ts +5 -0
- package/dist/types/common/wasm/bins/hypot.wasm.d.ts +13 -0
- package/dist/types/common/wasm/bins/indices.wasm.d.ts +3 -0
- package/dist/types/common/wasm/bins/inner.wasm.d.ts +9 -0
- package/dist/types/common/wasm/bins/kron.wasm.d.ts +9 -0
- package/dist/types/common/wasm/bins/ldexp.wasm.d.ts +3 -0
- package/dist/types/common/wasm/bins/left_shift.wasm.d.ts +9 -0
- package/dist/types/common/wasm/bins/lexsort.wasm.d.ts +11 -0
- package/dist/types/common/wasm/bins/logaddexp.wasm.d.ts +21 -0
- package/dist/types/common/wasm/bins/logical_and.wasm.d.ts +13 -0
- package/dist/types/common/wasm/bins/logical_not.wasm.d.ts +7 -0
- package/dist/types/common/wasm/bins/logical_or.wasm.d.ts +13 -0
- package/dist/types/common/wasm/bins/logical_xor.wasm.d.ts +13 -0
- package/dist/types/common/wasm/bins/matmul.wasm.d.ts +9 -0
- package/dist/types/common/wasm/bins/matvec.wasm.d.ts +9 -0
- package/dist/types/common/wasm/bins/max.wasm.d.ts +21 -0
- package/dist/types/common/wasm/bins/min.wasm.d.ts +21 -0
- package/dist/types/common/wasm/bins/mul.wasm.d.ts +17 -0
- package/dist/types/common/wasm/bins/neg.wasm.d.ts +9 -0
- package/dist/types/common/wasm/bins/outer.wasm.d.ts +9 -0
- package/dist/types/common/wasm/bins/pad.wasm.d.ts +7 -0
- package/dist/types/common/wasm/bins/partition.wasm.d.ts +21 -0
- package/dist/types/common/wasm/bins/power.wasm.d.ts +13 -0
- package/dist/types/common/wasm/bins/qr.wasm.d.ts +3 -0
- package/dist/types/common/wasm/bins/reciprocal.wasm.d.ts +7 -0
- package/dist/types/common/wasm/bins/reduce_all.wasm.d.ts +7 -0
- package/dist/types/common/wasm/bins/reduce_any.wasm.d.ts +7 -0
- package/dist/types/common/wasm/bins/reduce_argmax.wasm.d.ts +11 -0
- package/dist/types/common/wasm/bins/reduce_argmin.wasm.d.ts +11 -0
- package/dist/types/common/wasm/bins/reduce_count_nz.wasm.d.ts +7 -0
- package/dist/types/common/wasm/bins/reduce_max.wasm.d.ts +20 -0
- package/dist/types/common/wasm/bins/reduce_mean.wasm.d.ts +21 -0
- package/dist/types/common/wasm/bins/reduce_min.wasm.d.ts +20 -0
- package/dist/types/common/wasm/bins/reduce_nanmax.wasm.d.ts +3 -0
- package/dist/types/common/wasm/bins/reduce_nanmin.wasm.d.ts +3 -0
- package/dist/types/common/wasm/bins/reduce_nansum.wasm.d.ts +3 -0
- package/dist/types/common/wasm/bins/reduce_prod.wasm.d.ts +19 -0
- package/dist/types/common/wasm/bins/reduce_quantile.wasm.d.ts +2 -0
- package/dist/types/common/wasm/bins/reduce_std.wasm.d.ts +11 -0
- package/dist/types/common/wasm/bins/reduce_sum.wasm.d.ts +17 -0
- package/dist/types/common/wasm/bins/reduce_var.wasm.d.ts +11 -0
- package/dist/types/common/wasm/bins/repeat.wasm.d.ts +7 -0
- package/dist/types/common/wasm/bins/right_shift.wasm.d.ts +17 -0
- package/dist/types/common/wasm/bins/roll.wasm.d.ts +7 -0
- package/dist/types/common/wasm/bins/rot90.wasm.d.ts +7 -0
- package/dist/types/common/wasm/bins/searchsorted.wasm.d.ts +21 -0
- package/dist/types/common/wasm/bins/sign.wasm.d.ts +7 -0
- package/dist/types/common/wasm/bins/sinh.wasm.d.ts +5 -0
- package/dist/types/common/wasm/bins/sort.wasm.d.ts +25 -0
- package/dist/types/common/wasm/bins/sqrt.wasm.d.ts +7 -0
- package/dist/types/common/wasm/bins/square.wasm.d.ts +9 -0
- package/dist/types/common/wasm/bins/sub.wasm.d.ts +17 -0
- package/dist/types/common/wasm/bins/svd.wasm.d.ts +2 -0
- package/dist/types/common/wasm/bins/tan.wasm.d.ts +3 -0
- package/dist/types/common/wasm/bins/tanh.wasm.d.ts +5 -0
- package/dist/types/common/wasm/bins/tile.wasm.d.ts +7 -0
- package/dist/types/common/wasm/bins/vdot.wasm.d.ts +3 -0
- package/dist/types/common/wasm/bins/vecdot.wasm.d.ts +9 -0
- package/dist/types/common/wasm/bins/vecmat.wasm.d.ts +9 -0
- package/dist/types/common/wasm/bitwise_and.d.ts +9 -0
- package/dist/types/common/wasm/bitwise_count.d.ts +11 -0
- package/dist/types/common/wasm/bitwise_not.d.ts +9 -0
- package/dist/types/common/wasm/bitwise_or.d.ts +9 -0
- package/dist/types/common/wasm/bitwise_xor.d.ts +9 -0
- package/dist/types/common/wasm/cholesky.d.ts +20 -0
- package/dist/types/common/wasm/clip.d.ts +13 -0
- package/dist/types/common/wasm/config.d.ts +21 -0
- package/dist/types/common/wasm/convolve.d.ts +14 -0
- package/dist/types/common/wasm/copysign.d.ts +19 -0
- package/dist/types/common/wasm/correlate.d.ts +14 -0
- package/dist/types/common/wasm/cos.d.ts +15 -0
- package/dist/types/common/wasm/cosh.d.ts +15 -0
- package/dist/types/common/wasm/cross.d.ts +15 -0
- package/dist/types/common/wasm/diff.d.ts +15 -0
- package/dist/types/common/wasm/divide.d.ts +11 -0
- package/dist/types/common/wasm/dot.d.ts +14 -0
- package/dist/types/common/wasm/exp.d.ts +15 -0
- package/dist/types/common/wasm/exp2.d.ts +15 -0
- package/dist/types/common/wasm/fft.d.ts +29 -0
- package/dist/types/common/wasm/flip.d.ts +13 -0
- package/dist/types/common/wasm/frexp.d.ts +9 -0
- package/dist/types/common/wasm/gather.d.ts +23 -0
- package/dist/types/common/wasm/gcd.d.ts +11 -0
- package/dist/types/common/wasm/gradient.d.ts +13 -0
- package/dist/types/common/wasm/heaviside.d.ts +11 -0
- package/dist/types/common/wasm/hypot.d.ts +21 -0
- package/dist/types/common/wasm/indices.d.ts +10 -0
- package/dist/types/common/wasm/inner.d.ts +20 -0
- package/dist/types/common/wasm/kron.d.ts +13 -0
- package/dist/types/common/wasm/ldexp.d.ts +9 -0
- package/dist/types/common/wasm/left_shift.d.ts +11 -0
- package/dist/types/common/wasm/lexsort.d.ts +14 -0
- package/dist/types/common/wasm/logaddexp.d.ts +21 -0
- package/dist/types/common/wasm/logical_and.d.ts +19 -0
- package/dist/types/common/wasm/logical_not.d.ts +13 -0
- package/dist/types/common/wasm/logical_or.d.ts +19 -0
- package/dist/types/common/wasm/logical_xor.d.ts +19 -0
- package/dist/types/common/wasm/lstsq.d.ts +14 -0
- package/dist/types/common/wasm/matmul.d.ts +18 -0
- package/dist/types/common/wasm/matvec.d.ts +13 -0
- package/dist/types/common/wasm/max.d.ts +11 -0
- package/dist/types/common/wasm/min.d.ts +11 -0
- package/dist/types/common/wasm/mul.d.ts +19 -0
- package/dist/types/common/wasm/neg.d.ts +13 -0
- package/dist/types/common/wasm/outer.d.ts +13 -0
- package/dist/types/common/wasm/pad.d.ts +14 -0
- package/dist/types/common/wasm/partition.d.ts +20 -0
- package/dist/types/common/wasm/power.d.ts +19 -0
- package/dist/types/common/wasm/qr.d.ts +17 -0
- package/dist/types/common/wasm/reciprocal.d.ts +9 -0
- package/dist/types/common/wasm/reduce_all.d.ts +14 -0
- package/dist/types/common/wasm/reduce_any.d.ts +14 -0
- package/dist/types/common/wasm/reduce_argmax.d.ts +14 -0
- package/dist/types/common/wasm/reduce_argmin.d.ts +14 -0
- package/dist/types/common/wasm/reduce_count_nz.d.ts +14 -0
- package/dist/types/common/wasm/reduce_max.d.ts +19 -0
- package/dist/types/common/wasm/reduce_mean.d.ts +19 -0
- package/dist/types/common/wasm/reduce_min.d.ts +19 -0
- package/dist/types/common/wasm/reduce_nanmax.d.ts +14 -0
- package/dist/types/common/wasm/reduce_nanmin.d.ts +14 -0
- package/dist/types/common/wasm/reduce_nansum.d.ts +14 -0
- package/dist/types/common/wasm/reduce_prod.d.ts +20 -0
- package/dist/types/common/wasm/reduce_quantile.d.ts +15 -0
- package/dist/types/common/wasm/reduce_std.d.ts +14 -0
- package/dist/types/common/wasm/reduce_sum.d.ts +20 -0
- package/dist/types/common/wasm/reduce_var.d.ts +14 -0
- package/dist/types/common/wasm/repeat.d.ts +14 -0
- package/dist/types/common/wasm/right_shift.d.ts +11 -0
- package/dist/types/common/wasm/roll.d.ts +13 -0
- package/dist/types/common/wasm/rot90.d.ts +14 -0
- package/dist/types/common/wasm/runtime.d.ts +44 -0
- package/dist/types/common/wasm/searchsorted.d.ts +12 -0
- package/dist/types/common/wasm/sign.d.ts +14 -0
- package/dist/types/common/wasm/sinh.d.ts +15 -0
- package/dist/types/common/wasm/sort.d.ts +20 -0
- package/dist/types/common/wasm/sqrt.d.ts +15 -0
- package/dist/types/common/wasm/square.d.ts +13 -0
- package/dist/types/common/wasm/sub.d.ts +19 -0
- package/dist/types/common/wasm/svd.d.ts +18 -0
- package/dist/types/common/wasm/tan.d.ts +15 -0
- package/dist/types/common/wasm/tanh.d.ts +15 -0
- package/dist/types/common/wasm/tile.d.ts +14 -0
- package/dist/types/common/wasm/vdot.d.ts +16 -0
- package/dist/types/common/wasm/vecdot.d.ts +15 -0
- package/dist/types/common/wasm/vecmat.d.ts +13 -0
- package/dist/types/core/linalg.d.ts +10 -10
- package/dist/types/core/reduction.d.ts +17 -17
- package/dist/types/core/sets.d.ts +1 -1
- package/dist/types/core/sorting.d.ts +1 -1
- package/dist/types/full/index.d.ts +20 -18
- package/dist/types/full/ndarray.d.ts +16 -22
- package/dist/types/index.d.ts +1 -0
- package/dist/types/io/zip/types.d.ts +2 -1
- package/package.json +39 -15
package/dist/numpy-ts.node.cjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
"use strict";var Ms=Object.defineProperty;var FN=Object.getOwnPropertyDescriptor;var BN=Object.getOwnPropertyNames;var TN=Object.prototype.hasOwnProperty;var EN=(r,t)=>{for(var e in t)Ms(r,e,{get:t[e],enumerable:!0})},ON=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of BN(t))!TN.call(r,o)&&o!==e&&Ms(r,o,{get:()=>t[o],enumerable:!(n=FN(t,o))||n.enumerable});return r};var UN=r=>ON(Ms({},"__esModule",{value:!0}),r);var v1={};EN(v1,{Complex:()=>U,DTYPE_TO_DESCR:()=>Ns,InvalidNpyError:()=>hr,NDArray:()=>er,NDArrayCore:()=>P,SUPPORTED_DTYPES:()=>$c,UnsupportedDTypeError:()=>jr,__version__:()=>M1,abs:()=>Yc,absolute:()=>Yc,acos:()=>ol,acosh:()=>ul,add:()=>Qd,all:()=>kg,allclose:()=>St,amax:()=>We,amin:()=>Ye,angle:()=>Jb,any:()=>Rg,append:()=>ph,apply_along_axis:()=>Jd,apply_over_axes:()=>Kd,arange:()=>eA,arccos:()=>ol,arccosh:()=>ul,arcsin:()=>nl,arcsinh:()=>il,arctan:()=>al,arctan2:()=>sl,arctanh:()=>cl,argmax:()=>Fg,argmin:()=>vg,argpartition:()=>jh,argsort:()=>qh,argwhere:()=>Gh,around:()=>rl,array:()=>tA,array2string:()=>es,array_equal:()=>ja,array_equiv:()=>La,array_repr:()=>ns,array_split:()=>Qo,array_str:()=>Mt,asanyarray:()=>yA,asarray:()=>uA,asarray_chkfinite:()=>AA,ascontiguousarray:()=>dA,asfortranarray:()=>bA,asin:()=>nl,asinh:()=>il,atan:()=>al,atan2:()=>sl,atanh:()=>cl,atleast_1d:()=>ea,atleast_2d:()=>na,atleast_3d:()=>oa,average:()=>$g,base_repr:()=>rs,binary_repr:()=>ts,bincount:()=>Xh,bindex:()=>kd,bitwise_and:()=>Vb,bitwise_count:()=>Yb,bitwise_invert:()=>Zc,bitwise_left_shift:()=>Xc,bitwise_not:()=>Zc,bitwise_or:()=>Pb,bitwise_right_shift:()=>Jc,bitwise_xor:()=>jb,block:()=>Mh,broadcast_arrays:()=>Oa,broadcast_shapes:()=>Ua,broadcast_to:()=>Bd,byteswap:()=>cs,can_cast:()=>mo,cbrt:()=>gb,ceil:()=>rh,choose:()=>Od,clip:()=>Fb,column_stack:()=>_h,common_type:()=>ys,compress:()=>Ud,concat:()=>el,concatenate:()=>el,conj:()=>Kc,conjugate:()=>Kc,convolve:()=>Qh,copy:()=>pA,copysign:()=>ag,copyto:()=>qa,corrcoef:()=>r0,correlate:()=>Kh,cos:()=>n0,cosh:()=>f0,count_nonzero:()=>xa,cov:()=>Hh,cross:()=>LA,cumprod:()=>Hc,cumsum:()=>Qc,cumulative_prod:()=>Hc,cumulative_sum:()=>Qc,deg2rad:()=>u0,degrees:()=>s0,delete:()=>tl,delete_:()=>tl,diag:()=>hA,diag_indices:()=>jd,diag_indices_from:()=>Ld,diagflat:()=>NA,diagonal:()=>TA,diff:()=>vA,digitize:()=>Jh,divide:()=>yb,divmod:()=>Nb,dot:()=>BA,dsplit:()=>ta,dstack:()=>zh,ediff1d:()=>FA,einsum:()=>Vo,einsum_path:()=>Po,empty:()=>Hb,empty_like:()=>fA,equal:()=>pg,exp:()=>eb,exp2:()=>nb,expand_dims:()=>Nh,expm1:()=>ob,extract:()=>Zh,eye:()=>sA,fabs:()=>hb,fft:()=>_1,fill:()=>ms,fill_diagonal:()=>Pa,fix:()=>th,flatnonzero:()=>Yh,flatten:()=>Ah,flip:()=>Th,fliplr:()=>Eh,flipud:()=>Oh,float_power:()=>Sb,floor:()=>eh,floor_divide:()=>db,fmax:()=>Eb,fmin:()=>Ob,fmod:()=>wb,format_float_positional:()=>Qa,format_float_scientific:()=>Ha,frexp:()=>Ib,frombuffer:()=>wA,fromfile:()=>MA,fromfunction:()=>IA,fromiter:()=>zA,fromregex:()=>I1,fromstring:()=>_A,full:()=>rA,full_like:()=>mA,gcd:()=>zb,genfromtxt:()=>w1,geomspace:()=>aA,get_printoptions:()=>Ja,geterr:()=>Ya,gradient:()=>Ea,greater:()=>cg,greater_equal:()=>lg,heaviside:()=>Cb,histogram:()=>va,histogram2d:()=>Fa,histogram_bin_edges:()=>Ta,histogramdd:()=>Ba,hsplit:()=>ra,hstack:()=>Ih,hypot:()=>a0,i0:()=>qb,identity:()=>iA,iindex:()=>$d,imag:()=>Xb,in1d:()=>ah,indices:()=>qd,inner:()=>UA,insert:()=>yh,interp:()=>$b,intersect1d:()=>sh,invert:()=>Lb,isclose:()=>dg,iscomplex:()=>eg,iscomplexobj:()=>ya,isdtype:()=>ha,isfinite:()=>JA,isfortran:()=>ba,isin:()=>ih,isinf:()=>KA,isnan:()=>QA,isnat:()=>HA,isneginf:()=>rg,isposinf:()=>tg,isreal:()=>ng,isrealobj:()=>da,isscalar:()=>Aa,issubdtype:()=>As,item:()=>ss,iterable:()=>ga,ix_:()=>Va,kron:()=>EA,lcm:()=>_b,ldexp:()=>Mb,left_shift:()=>Xc,less:()=>fg,less_equal:()=>mg,lexsort:()=>Vh,linalg:()=>Zo,linspace:()=>nA,loadNpz:()=>x1,loadNpzSync:()=>C1,log:()=>ab,log10:()=>ib,log1p:()=>ub,log2:()=>sb,logaddexp:()=>cb,logaddexp2:()=>lb,logical_and:()=>GA,logical_not:()=>ZA,logical_or:()=>YA,logical_xor:()=>XA,logspace:()=>oA,mask_indices:()=>Xd,matmul:()=>WA,matrix_transpose:()=>qA,matvec:()=>PA,max:()=>We,maximum:()=>Bb,may_share_memory:()=>Wa,mean:()=>zg,median:()=>Eg,meshgrid:()=>Wc,min:()=>Ye,min_scalar_type:()=>bs,minimum:()=>Tb,mintypecode:()=>hs,mod:()=>pb,modf:()=>vb,moveaxis:()=>xh,multiply:()=>rb,nan_to_num:()=>Ub,nanargmax:()=>Zg,nanargmin:()=>Yg,nancumprod:()=>Jg,nancumsum:()=>Xg,nanmax:()=>Gg,nanmean:()=>Pg,nanmedian:()=>Kg,nanmin:()=>Wg,nanpercentile:()=>Hg,nanprod:()=>Vg,nanquantile:()=>Qg,nanstd:()=>Lg,nansum:()=>qg,nanvar:()=>jg,ndim:()=>os,negative:()=>fb,nextafter:()=>ig,nonzero:()=>Wh,not_equal:()=>yg,ones:()=>Qb,ones_like:()=>lA,outer:()=>$A,packbits:()=>Wb,pad:()=>dh,parseNpy:()=>A1,parseNpyData:()=>h1,parseNpyHeader:()=>g1,parseNpz:()=>N1,parseNpzSync:()=>D1,parseTxt:()=>S1,partition:()=>Ph,percentile:()=>Og,permute_dims:()=>VA,place:()=>ka,poly:()=>bg,polyadd:()=>Ag,polyder:()=>gg,polydiv:()=>hg,polyfit:()=>Ng,polyint:()=>Dg,polymul:()=>xg,polysub:()=>Cg,polyval:()=>Sg,positive:()=>bb,pow:()=>Gc,power:()=>Gc,printoptions:()=>Ka,prod:()=>_g,promote_types:()=>Na,ptp:()=>Mg,put:()=>_t,put_along_axis:()=>$a,putmask:()=>Ra,quantile:()=>Ug,rad2deg:()=>c0,radians:()=>i0,random:()=>z1,ravel:()=>gh,ravel_multi_index:()=>Vd,real:()=>Zb,real_if_close:()=>og,reciprocal:()=>Ab,remainder:()=>xb,repeat:()=>Bh,require:()=>gA,reshape:()=>bh,resize:()=>kh,result_type:()=>ds,right_shift:()=>Jc,rint:()=>nh,roll:()=>$h,rollaxis:()=>Ch,roots:()=>wg,rot90:()=>Uh,round:()=>rl,round_:()=>wa,row_stack:()=>Jo,searchsorted:()=>wt,select:()=>Rd,serializeNpy:()=>yo,serializeNpz:()=>wd,serializeNpzSync:()=>Id,serializeTxt:()=>Fd,set_printoptions:()=>Xa,setdiff1d:()=>uh,seterr:()=>Za,setxor1d:()=>ch,shape:()=>fo,shares_memory:()=>Ga,sign:()=>mb,signbit:()=>sg,sin:()=>e0,sinc:()=>Rb,sinh:()=>l0,size:()=>as,sort:()=>Rh,sort_complex:()=>Lh,spacing:()=>ug,split:()=>Ko,sqrt:()=>tb,square:()=>Db,squeeze:()=>hh,stack:()=>Sh,std:()=>Tg,subtract:()=>Hd,sum:()=>Ig,swapaxes:()=>Dh,take:()=>Td,take_along_axis:()=>Ed,tan:()=>o0,tanh:()=>m0,tensordot:()=>kA,tile:()=>Fh,tobytes:()=>us,tofile:()=>fs,tolist:()=>is,trace:()=>Hr,transpose:()=>OA,trapezoid:()=>t0,tri:()=>DA,tril:()=>xA,tril_indices:()=>Wd,tril_indices_from:()=>Gd,trim_zeros:()=>fh,triu:()=>CA,triu_indices:()=>Yd,triu_indices_from:()=>Zd,true_divide:()=>Ro,trunc:()=>oh,typename:()=>gs,union1d:()=>lh,unique:()=>Ia,unique_all:()=>za,unique_counts:()=>_a,unique_inverse:()=>Ma,unique_values:()=>mh,unpackbits:()=>Gb,unravel_index:()=>Pd,unstack:()=>vh,unwrap:()=>kb,vander:()=>SA,var:()=>ma,variance:()=>Bg,vdot:()=>jo,vecdot:()=>RA,vecmat:()=>jA,view:()=>ls,vsplit:()=>Ho,vstack:()=>wh,where:()=>Da,zeros:()=>Kb,zeros_like:()=>cA});module.exports=UN(v1);var U=class r{constructor(t,e=0){this.re=t,this.im=e}abs(){return Math.sqrt(this.re*this.re+this.im*this.im)}angle(){return Math.atan2(this.im,this.re)}conj(){return new r(this.re,-this.im)}add(t){return typeof t=="number"?new r(this.re+t,this.im):new r(this.re+t.re,this.im+t.im)}sub(t){return typeof t=="number"?new r(this.re-t,this.im):new r(this.re-t.re,this.im-t.im)}mul(t){return typeof t=="number"?new r(this.re*t,this.im*t):new r(this.re*t.re-this.im*t.im,this.re*t.im+this.im*t.re)}div(t){if(typeof t=="number")return new r(this.re/t,this.im/t);let e=t.re*t.re+t.im*t.im;return new r((this.re*t.re+this.im*t.im)/e,(this.im*t.re-this.re*t.im)/e)}neg(){return new r(-this.re,-this.im)}equals(t){return this.re===t.re&&this.im===t.im}toString(){return this.im===0?`(${this.re}+0j)`:this.im<0?`(${this.re}${this.im}j)`:`(${this.re}+${this.im}j)`}static from(t){if(t instanceof r)return t;if(typeof t=="number")return new r(t,0);if(Array.isArray(t))return new r(t[0]??0,t[1]??0);if(typeof t=="object"&&t!==null&&"re"in t)return new r(t.re??0,t.im??0);throw new Error(`Cannot convert ${t} to Complex`)}static isComplex(t){return t instanceof r||typeof t=="object"&&t!==null&&"re"in t&&"im"in t}};function Dl(r){return r instanceof U||typeof r=="object"&&r!==null&&"re"in r}function wo(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 Io(r,t){let{start:e,stop:n}=r,{step:o,isIndex:a}=r;if(a){if(e===null)throw new Error("Index cannot be null");let u=e<0?t+e:e;if(u<0||u>=t)throw new Error(`Index ${e} is out of bounds for size ${t}`);return{start:u,stop:u+1,step:1,isIndex:!0}}return o>0?(e===null&&(e=0),n===null&&(n=t)):(e===null&&(e=t-1),n===null&&(n=-t-1)),e<0&&(e=t+e),n<0&&(n=t+n),e=Math.max(0,Math.min(e,t)),n=Math.max(-1,Math.min(n,t)),{start:e,stop:n,step:o,isIndex:!1}}var tr="float64";function K(r){switch(r){case"float64":return Float64Array;case"float32":return Float32Array;case"complex128":return Float64Array;case"complex64":return Float32Array;case"int64":return BigInt64Array;case"int32":return Int32Array;case"int16":return Int16Array;case"int8":return Int8Array;case"uint64":return BigUint64Array;case"uint32":return Uint32Array;case"uint16":return Uint16Array;case"uint8":return Uint8Array;case"bool":return Uint8Array;default:throw new Error(`Unknown dtype: ${r}`)}}function Wr(r){switch(r){case"complex128":return 16;case"float64":case"int64":case"uint64":case"complex64":return 8;case"float32":case"int32":case"uint32":return 4;case"int16":case"uint16":return 2;case"int8":case"uint8":case"bool":return 1;default:throw new Error(`Unknown dtype: ${r}`)}}function Ur(r){return r==="int64"||r==="int32"||r==="int16"||r==="int8"||r==="uint64"||r==="uint32"||r==="uint16"||r==="uint8"}function Or(r){return r==="float64"||r==="float32"}function E(r){return r==="int64"||r==="uint64"}function B(r){return r==="complex64"||r==="complex128"}function L(r,t,e){if(B(r)){let n=e?` ${e}`:"";throw new TypeError(`ufunc '${t}' not supported for complex dtype '${r}'.${n}`)}}function Bt(r){if(r==="complex128")return"float64";if(r==="complex64")return"float32";throw new Error(`${r} is not a complex dtype`)}function or(r,t){if(r===t)return r;if(r==="bool")return t;if(t==="bool")return r;if(B(r)||B(t)){if(B(r)&&B(t))return r==="complex128"||t==="complex128"?"complex128":"complex64";let c=B(r)?r:t,l=B(r)?t:r;return c==="complex128"||l==="float64"||l==="int64"||l==="uint64"||l==="int32"||l==="uint32"?"complex128":"complex64"}if(Or(r)||Or(t)){if(r==="float64"||t==="float64")return"float64";if(r==="float32"){let c=t;return c==="int32"||c==="int64"||c==="uint32"||c==="uint64"?"float64":"float32"}if(t==="float32"){let c=r;return c==="int32"||c==="int64"||c==="uint32"||c==="uint64"?"float64":"float32"}return"float32"}let e=r.startsWith("int"),n=t.startsWith("int"),o=r.startsWith("uint"),a=t.startsWith("uint"),u=c=>c.includes("64")?64:c.includes("32")?32:c.includes("16")?16:c.includes("8")?8:0,i=u(r),s=u(t);if(r==="int64"&&t==="uint64"||r==="uint64"&&t==="int64")return"float64";if(e&&a&&i===s){if(i===8)return"int16";if(i===16)return"int32";if(i===32)return"int64"}if(o&&n&&i===s){if(s===8)return"int16";if(s===16)return"int32";if(s===32)return"int64"}if(e&&n||o&&a){let c=Math.max(i,s);return e?c===64?"int64":c===32?"int32":c===16?"int16":"int8":c===64?"uint64":c===32?"uint32":c===16?"uint16":"uint8"}return e&&a?i>s?r:s===8?"int16":s===16?"int32":s===32?"int64":"float64":o&&n?s>i?t:i===8?"int16":i===16?"int32":i===32?"int64":"float64":"float64"}var S=class r{constructor(t,e,n,o,a){this._isCContiguous=-1;this._data=t,this._shape=e,this._strides=n,this._offset=o,this._dtype=a}get shape(){return this._shape}get ndim(){return this._shape.length}get size(){return this._shape.reduce((t,e)=>t*e,1)}get dtype(){return this._dtype}get data(){return this._data}get strides(){return this._strides}get offset(){return this._offset}get isCContiguous(){if(this._isCContiguous!==-1)return this._isCContiguous===1;let t=this._shape,e=this._strides,n=t.length,o;if(n===0)o=!0;else if(n===1)o=e[0]===1;else{o=!0;let a=1;for(let u=n-1;u>=0;u--){if(e[u]!==a){o=!1;break}a*=t[u]}}return this._isCContiguous=o?1:0,o}get isFContiguous(){let t=this._shape,e=this._strides,n=t.length;if(n===0)return!0;if(n===1)return e[0]===1;let o=1;for(let a=0;a<n;a++){if(e[a]!==o)return!1;o*=t[a]}return!0}iget(t){let e=this._shape,n=this._strides,o=e.length,a=B(this._dtype),u;if(o===0)u=this._offset;else{let i=t;u=this._offset;for(let s=0;s<o;s++){let c=1;for(let f=s+1;f<o;f++)c*=e[f];let l=Math.floor(i/c);i=i%c,u+=l*n[s]}}if(a){let i=u*2,s=this._data[i],c=this._data[i+1];return new U(s,c)}return this._data[u]}iset(t,e){let n=this._shape,o=this._strides,a=n.length,u=B(this._dtype),i;if(a===0)i=this._offset;else{let s=t;i=this._offset;for(let c=0;c<a;c++){let l=1;for(let m=c+1;m<a;m++)l*=n[m];let f=Math.floor(s/l);s=s%l,i+=f*o[c]}}if(u){let s=i*2,c,l;e instanceof U?(c=e.re,l=e.im):typeof e=="object"&&e!==null&&"re"in e?(c=e.re,l=e.im??0):(c=Number(e),l=0),this._data[s]=c,this._data[s+1]=l}else this._data[i]=e}get(...t){let e=this._strides,n=this._offset;for(let o=0;o<t.length;o++)n+=t[o]*e[o];if(B(this._dtype)){let o=n*2,a=this._data[o],u=this._data[o+1];return new U(a,u)}return this._data[n]}set(t,e){let n=this._strides,o=this._offset;for(let a=0;a<t.length;a++)o+=t[a]*n[a];if(B(this._dtype)){let a=o*2,u,i;e instanceof U?(u=e.re,i=e.im):typeof e=="object"&&e!==null&&"re"in e?(u=e.re,i=e.im??0):(u=Number(e),i=0),this._data[a]=u,this._data[a+1]=i}else this._data[o]=e}copy(){let t=Array.from(this._shape),e=this._dtype,n=this.size,o=B(e),a=K(e);if(!a)throw new Error(`Cannot copy array with dtype ${e}`);let u=o?n*2:n,i=new a(u);if(this.isCContiguous&&this._offset===0)if(E(e)){let s=this._data,c=i;for(let l=0;l<u;l++)c[l]=s[l]}else i.set(this._data.subarray(0,u));else if(E(e)){let s=i;for(let c=0;c<n;c++)s[c]=this.iget(c)}else if(o){let s=i;for(let c=0;c<n;c++){let l=this.iget(c);s[c*2]=l.re,s[c*2+1]=l.im}}else for(let s=0;s<n;s++)i[s]=this.iget(s);return new r(i,t,r._computeStrides(t),0,e)}static fromData(t,e,n,o,a){let u=o??r._computeStrides(e),i=a??0;return new r(t,e,u,i,n)}static zeros(t,e=tr){let n=t.reduce((s,c)=>s*c,1),o=B(e),a=K(e);if(!a)throw new Error(`Cannot create array with dtype ${e}`);let u=o?n*2:n,i=new a(u);return new r(i,t,r._computeStrides(t),0,e)}static ones(t,e=tr){let n=t.reduce((s,c)=>s*c,1),o=B(e),a=K(e);if(!a)throw new Error(`Cannot create array with dtype ${e}`);let u=o?n*2:n,i=new a(u);if(E(e))i.fill(BigInt(1));else if(o){let s=i;for(let c=0;c<n;c++)s[c*2]=1,s[c*2+1]=0}else i.fill(1);return new r(i,t,r._computeStrides(t),0,e)}static _computeStrides(t){let e=new Array(t.length),n=1;for(let o=t.length-1;o>=0;o--)e[o]=n,n*=t[o];return e}};function lr(r){let t=new Array(r.length),e=1;for(let n=r.length-1;n>=0;n--)t[n]=e,e*=r[n];return t}var $N={threshold:1e3,edgeitems:3,precision:8,linewidth:75,floatmode:"maxprec",suppress:!0,separator:" ",prefix:"",suffix:"",nanstr:"nan",infstr:"inf",sign:"-",legacy:!1},ur={...$N};function Sl(r){ur={...ur,...r}}function wl(){return{...ur}}function Il(r){let t=null,e={_savedOptions:null,enter(){t={...ur},e._savedOptions=t,ur={...ur,...r}},exit(){t&&(ur=t,t=null,e._savedOptions=null)},apply(n){e.enter();try{return n()}finally{e.exit()}}};return e}function Et(r,t=null,e=!0,n=!0,o="k",a="-",u=null,i=null,s=null){let c=t??ur.precision;if(!Number.isFinite(r))return Number.isNaN(r)?ur.nanstr:(r>0?"":"-")+ur.infstr;let l;if(e&&t===null?(l=r.toString(),n&&!l.includes(".")&&!l.includes("e")&&(l+=".0")):l=r.toFixed(c),s!==null){let f=l.indexOf(".");if(f!==-1){let m=l.length-f-1;m<s&&(l+="0".repeat(s-m))}else n&&(l+="."+"0".repeat(s))}if(o!=="k"&&l.includes(".")){if(o==="."||o==="0"||o==="-"){let f=l.length;for(;f>0&&l[f-1]==="0";)f--;l=l.slice(0,f)}o==="0"&&l.endsWith(".")&&(l+="0"),o==="-"&&l.endsWith(".")&&(l=l.slice(0,-1))}if(r>=0&&!Object.is(r,-0)&&(a==="+"?l="+"+l:a===" "&&(l=" "+l)),u!==null&&l.length<u&&(l=" ".repeat(u-l.length)+l),i!==null){let f=l.indexOf(".");if(f!==-1){let m=l.length-f-1;m<i&&(l+="0".repeat(i-m))}}return l}function Tt(r,t=null,e=!0,n="k",o="-",a=null,u=2,i=null){let s=t??ur.precision;if(!Number.isFinite(r))return Number.isNaN(r)?ur.nanstr:(r>0?"":"-")+ur.infstr;let c=r.toExponential(s);if(i!==null){let d=c.indexOf("e"),b=c.slice(0,d),A=c.slice(d),g=b.indexOf(".");if(g!==-1){let h=b.length-g-1;h<i&&(c=b+"0".repeat(i-h)+A)}}if(n!=="k"){let d=c.indexOf("e"),b=c.slice(0,d),A=c.slice(d);b.includes(".")&&((n==="."||n==="0"||n==="-")&&(b=b.replace(/0+$/,"")),n==="0"&&b.endsWith(".")&&(b+="0"),n==="-"&&(b=b.replace(/\.$/,""))),c=b+A}let l=c.indexOf("e"),f=c.slice(0,l),m=c.slice(l+1),p=m[0]==="-"?"-":"+",y=m.replace(/^[+-]/,"");for(;y.length<u;)y="0"+y;return c=f+"e"+p+y,r>=0&&!Object.is(r,-0)&&(o==="+"?c="+"+c:o===" "&&(c=" "+c)),a!==null&&c.length<a&&(c=" ".repeat(a-c.length)+c),c}function zl(r,t=2,e=0){if(t<2||t>36)throw new Error("base must be between 2 and 36");r=Math.trunc(r);let n;if(r<0?n="-"+Math.abs(r).toString(t).toUpperCase():n=r.toString(t).toUpperCase(),e>0){let o="0".repeat(e);n.startsWith("-")?n="-"+o+n.slice(1):n=o+n}return n}function _l(r,t=null){if(r=Math.trunc(r),t!==null&&r<0){if(r=Math.pow(2,t)+r,r<0)throw new Error("width too small for negative number");let o=r.toString(2);return o.length<t&&(o="0".repeat(t-o.length)+o),o}let e;return r<0?e="-"+Math.abs(r).toString(2):e=r.toString(2),t!==null&&e.length<t&&(e="0".repeat(t-e.length)+e),e}function _o(r,t,e){if(r instanceof U){let n=_o(r.re,"float64",e),o=_o(Math.abs(r.im),"float64",e),a=r.im>=0?"+":"-";return`${n}${a}${o}j`}return typeof r=="boolean"?r?" True":"False":typeof r=="bigint"?r.toString():Number.isFinite(r)?t==="float32"||t==="float64"?e.suppress&&Math.abs(r)<1e-10&&r!==0?"0.":Et(r,e.precision,!1,!0,"k",e.sign):r.toString():Number.isNaN(r)?e.nanstr:(r>0?"":"-")+e.infstr}function kN(r,t){let e=[],n=r.shape,o=n.length,a=r.strides;function u(i,s){if(s===o){let m=0;for(let p=0;p<o;p++)m+=i[p]*a[p];e.push(r.iget(m));return}let c=n[s];if(n.reduce((m,p)=>m*p,1)>t.threshold&&c>2*t.edgeitems){for(let m=0;m<t.edgeitems;m++)i[s]=m,u(i,s+1);for(let m=c-t.edgeitems;m<c;m++)i[s]=m,u(i,s+1)}else for(let m=0;m<c;m++)i[s]=m,u(i,s+1)}return o>0?u(new Array(o).fill(0),0):e.push(r.iget(0)),e}function xl(r,t){return r<0||Object.is(r,-0)?"-"+Math.abs(r).toString()+".":t==="+"?"+"+r.toString()+".":t===" "?" "+r.toString()+".":r.toString()+"."}function at(r,t,e){let n=r.indexOf(".");if(n===-1)return r.padStart(t+(e>0?1+e:0));let o=r.slice(0,n),a=r.slice(n+1),u=o.padStart(t),i=e>0?a.padEnd(e):a;return u+"."+i}function Cl(r){let t=0,e=0;for(let n of r){let o=n.indexOf(".");o===-1?t=Math.max(t,n.length):(t=Math.max(t,o),e=Math.max(e,n.length-o-1))}return{maxLeft:t,maxRight:e}}function vs(r,t){let e=r.filter(m=>Number.isFinite(m));if(e.length===0){let m=r.map(y=>Number.isNaN(y)?t.nanstr:(y>0?"":"-")+t.infstr),p=m.length>0?Math.max(...m.map(y=>y.length)):1;return y=>Number.isNaN(y)?t.nanstr.padStart(p):Number.isFinite(y)?y.toString().padStart(p):((y>0?"":"-")+t.infstr).padStart(p)}let n=t.suppress?e.map(m=>Math.abs(m)<1e-10&&m!==0?0:m):e,o=n.map(Math.abs).filter(m=>m>0),a=o.length>0?Math.max(...o):0,u=o.length>0?Math.min(...o):0;if(a>=1e16||u>0&&u<1e-4||u>0&&a/u>1e3){let m=n.map(h=>Tt(h,t.precision,!1,".",t.sign)),p=0;for(let h of m){let N=h.indexOf("e"),D=N!==-1?h.slice(0,N):h,x=D.indexOf(".");x!==-1&&(p=Math.max(p,D.length-x-1))}let y=Math.max(p,0),d=Math.max(y,1),b=y===0?".":"k",A=n.map(h=>Tt(h,d,!1,b,t.sign));for(let h of r)Number.isFinite(h)||A.push(Number.isNaN(h)?t.nanstr:(h>0?"":"-")+t.infstr);let g=Math.max(...A.map(h=>h.length));return h=>(t.suppress&&Math.abs(h)<1e-10&&h!==0&&Number.isFinite(h)&&(h=0),Number.isNaN(h)?t.nanstr.padStart(g):Number.isFinite(h)?Tt(h,d,!1,b,t.sign).padStart(g):((h>0?"":"-")+t.infstr).padStart(g))}if(n.every(m=>Number.isInteger(m))){let m=n.map(d=>xl(d,t.sign));for(let d of r)Number.isFinite(d)||m.push(Number.isNaN(d)?t.nanstr:(d>0?"":"-")+t.infstr);let{maxLeft:p,maxRight:y}=Cl(m);return d=>(t.suppress&&Math.abs(d)<1e-10&&d!==0&&Number.isFinite(d)&&(d=0),Number.isNaN(d)?at(t.nanstr,p,y):Number.isFinite(d)?at(xl(d,t.sign),p,y):at((d>0?"":"-")+t.infstr,p,y))}let c=n.map(m=>Et(m,t.precision,!1,!0,".",t.sign));for(let m of r)Number.isFinite(m)||c.push(Number.isNaN(m)?t.nanstr:(m>0?"":"-")+t.infstr);let{maxLeft:l,maxRight:f}=Cl(c);return m=>(t.suppress&&Math.abs(m)<1e-10&&m!==0&&Number.isFinite(m)&&(m=0),Number.isNaN(m)?at(t.nanstr,l,f):Number.isFinite(m)?at(Et(m,t.precision,!1,!0,".",t.sign),l,f):at((m>0?"":"-")+t.infstr,l,f))}function RN(r,t){let e=r.dtype,n=kN(r,t);if(n.length===0)return a=>_o(a,e,t);if(e==="bool")return a=>a?" True":"False";if(e==="int64"||e==="uint64"){let a=n.map(i=>i.toString()),u=Math.max(...a.map(i=>i.length));return i=>i.toString().padStart(u)}if(e.startsWith("int")||e.startsWith("uint")){let a=n.map(i=>i.toString()),u=Math.max(...a.map(i=>i.length));return i=>i.toString().padStart(u)}if(e==="complex64"||e==="complex128"){let a=n.map(c=>c.re),u=n.map(c=>Math.abs(c.im)),i=vs(a,t),s=vs(u,t);return c=>{let l=c,f=i(l.re),m=s(Math.abs(l.im)),p=l.im>=0?"+":"-";return`${f}${p}${m}j`}}let o=vs(n,t);return a=>o(a)}function zo(r,t,e,n,o,a){let u=r.shape,i=u.length;if(e===i){let d=0,b=r.strides;for(let g=0;g<i;g++)d+=t[g]*b[g];let A=r.iget(d);return o(A)}let s=u[e],c=n.threshold,l=n.edgeitems,m=u.reduce((d,b)=>d*b,1)>c&&s>2*l,p=[],y=[...t];if(m){for(let d=0;d<l;d++)y[e]=d,p.push(zo(r,y,e+1,n,o,a+1));p.push("...");for(let d=s-l;d<s;d++)y[e]=d,p.push(zo(r,y,e+1,n,o,a+1))}else for(let d=0;d<s;d++)y[e]=d,p.push(zo(r,y,e+1,n,o,a+1));if(e===i-1){let d="["+p.join(n.separator)+"]";if(a+d.length<n.linewidth)return d;let b=" ".repeat(a+1),A=n.linewidth-a-1,g=[],h="";for(let N=0;N<p.length;N++){let D=p[N];if(h==="")h=D;else{let x=h+n.separator+D;x.length<A?h=x:(g.push(h),h=D)}}return h&&g.push(h),"["+g.join(`
|
|
2
|
-
`+
|
|
1
|
+
"use strict";var ca=Object.defineProperty;var G_=Object.getOwnPropertyDescriptor;var S_=Object.getOwnPropertyNames;var R_=Object.prototype.hasOwnProperty;var k_=(A,r)=>{for(var I in r)ca(A,I,{get:r[I],enumerable:!0})},q_=(A,r,I,e)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of S_(r))!R_.call(A,t)&&t!==I&&ca(A,t,{get:()=>r[t],enumerable:!(e=G_(r,t))||e.enumerable});return A};var M_=A=>q_(ca({},"__esModule",{value:!0}),A);var _T={};k_(_T,{Complex:()=>T,DTYPE_TO_DESCR:()=>na,InvalidNpyError:()=>jA,NDArray:()=>sA,NDArrayCore:()=>AA,SUPPORTED_DTYPES:()=>bD,UnsupportedDTypeError:()=>Ur,__version__:()=>HT,abs:()=>MD,absolute:()=>MD,acos:()=>PD,acosh:()=>OD,add:()=>TJ,all:()=>RL,allclose:()=>ZI,amax:()=>Go,amin:()=>Ro,angle:()=>vU,any:()=>kL,append:()=>nH,apply_along_axis:()=>vJ,apply_over_axes:()=>XJ,arange:()=>WU,arccos:()=>PD,arccosh:()=>OD,arcsin:()=>TD,arcsinh:()=>WD,arctan:()=>KD,arctan2:()=>VD,arctanh:()=>ZD,argmax:()=>bL,argmin:()=>dL,argpartition:()=>JH,argsort:()=>qH,argwhere:()=>HH,around:()=>YD,array:()=>VU,array2string:()=>vQ,array_equal:()=>GQ,array_equiv:()=>SQ,array_repr:()=>XQ,array_split:()=>Fg,array_str:()=>ee,asanyarray:()=>n2,asarray:()=>A2,asarray_chkfinite:()=>Q2,ascontiguousarray:()=>i2,asfortranarray:()=>g2,asin:()=>TD,asinh:()=>WD,atan:()=>KD,atan2:()=>VD,atanh:()=>ZD,atleast_1d:()=>kg,atleast_2d:()=>qg,atleast_3d:()=>Mg,average:()=>SL,base_repr:()=>_Q,binary_repr:()=>YQ,bincount:()=>vH,bindex:()=>SJ,bitwise_and:()=>qU,bitwise_count:()=>HU,bitwise_invert:()=>xD,bitwise_left_shift:()=>JD,bitwise_not:()=>xD,bitwise_or:()=>MU,bitwise_right_shift:()=>UD,bitwise_xor:()=>xU,block:()=>hH,broadcast_arrays:()=>lQ,broadcast_shapes:()=>hQ,broadcast_to:()=>bJ,byteswap:()=>OQ,can_cast:()=>hi,cbrt:()=>aU,ceil:()=>VL,choose:()=>NJ,clip:()=>dU,column_stack:()=>lH,common_type:()=>Aa,compress:()=>FJ,concat:()=>XD,concatenate:()=>XD,conj:()=>LD,conjugate:()=>LD,convolve:()=>PH,copy:()=>o2,copysign:()=>j2,copyto:()=>wQ,corrcoef:()=>VH,correlate:()=>TH,cos:()=>ZH,cosh:()=>t9,count_nonzero:()=>tQ,cov:()=>KH,cross:()=>U2,cumprod:()=>_D,cumsum:()=>HD,cumulative_prod:()=>_D,cumulative_sum:()=>HD,deg2rad:()=>r9,degrees:()=>$H,delete:()=>vD,delete_:()=>vD,diag:()=>B2,diag_indices:()=>xJ,diag_indices_from:()=>JJ,diagflat:()=>s2,diagonal:()=>w2,diff:()=>h2,digitize:()=>XH,divide:()=>nU,divmod:()=>sU,dot:()=>b2,dsplit:()=>Rg,dstack:()=>yH,ediff1d:()=>d2,einsum:()=>Dg,einsum_path:()=>fg,empty:()=>PU,empty_like:()=>e2,equal:()=>nL,exp:()=>WJ,exp2:()=>OJ,expand_dims:()=>CH,expm1:()=>ZJ,extract:()=>YH,eye:()=>jU,fabs:()=>BU,fft:()=>LT,fill:()=>jQ,fill_diagonal:()=>FQ,fix:()=>WL,flatnonzero:()=>_H,flatten:()=>aH,flip:()=>wH,fliplr:()=>NH,flipud:()=>FH,float_power:()=>cU,floor:()=>OL,floor_divide:()=>iU,fmax:()=>wU,fmin:()=>NU,fmod:()=>DU,format_float_positional:()=>LQ,format_float_scientific:()=>HQ,frexp:()=>fU,frombuffer:()=>D2,fromfile:()=>l2,fromfunction:()=>f2,fromiter:()=>m2,fromregex:()=>JT,fromstring:()=>y2,full:()=>KU,full_like:()=>t2,gcd:()=>mU,genfromtxt:()=>xT,geomspace:()=>zU,get_printoptions:()=>JQ,geterr:()=>qQ,gradient:()=>yQ,greater:()=>IL,greater_equal:()=>eL,heaviside:()=>uU,histogram:()=>cQ,histogram2d:()=>DQ,histogram_bin_edges:()=>mQ,histogramdd:()=>fQ,hsplit:()=>Sg,hstack:()=>mH,hypot:()=>jH,i0:()=>kU,identity:()=>$U,iindex:()=>GJ,imag:()=>YU,in1d:()=>jL,indices:()=>kJ,inner:()=>G2,insert:()=>iH,interp:()=>GU,intersect1d:()=>$L,invert:()=>JU,isclose:()=>gL,iscomplex:()=>O2,iscomplexobj:()=>Og,isdtype:()=>AQ,isfinite:()=>X2,isfortran:()=>zg,isin:()=>AH,isinf:()=>T2,isnan:()=>P2,isnat:()=>K2,isneginf:()=>V2,isposinf:()=>W2,isreal:()=>Z2,isrealobj:()=>Zg,isscalar:()=>jg,issubdtype:()=>ea,item:()=>KQ,iterable:()=>$g,ix_:()=>NQ,kron:()=>N2,lcm:()=>yU,ldexp:()=>lU,left_shift:()=>JD,less:()=>tL,less_equal:()=>oL,lexsort:()=>MH,linalg:()=>bg,linspace:()=>OU,loadNpz:()=>kT,loadNpzSync:()=>qT,log:()=>zJ,log10:()=>$J,log1p:()=>AU,log2:()=>jJ,logaddexp:()=>rU,logaddexp2:()=>IU,logical_and:()=>H2,logical_not:()=>Y2,logical_or:()=>_2,logical_xor:()=>v2,logspace:()=>ZU,mask_indices:()=>YJ,matmul:()=>L2,matrix_transpose:()=>q2,matvec:()=>x2,max:()=>Go,maximum:()=>bU,may_share_memory:()=>RQ,mean:()=>yL,median:()=>NL,meshgrid:()=>kD,min:()=>Ro,min_scalar_type:()=>Ia,minimum:()=>pU,mintypecode:()=>oa,mod:()=>oU,modf:()=>hU,moveaxis:()=>uH,multiply:()=>KJ,nan_to_num:()=>FU,nanargmax:()=>YL,nanargmin:()=>_L,nancumprod:()=>XL,nancumsum:()=>vL,nanmax:()=>HL,nanmean:()=>xL,nanmedian:()=>TL,nanmin:()=>LL,nanpercentile:()=>KL,nanprod:()=>ML,nanquantile:()=>PL,nanstd:()=>UL,nansum:()=>qL,nanvar:()=>JL,ndim:()=>TQ,negative:()=>eU,nextafter:()=>AL,nonzero:()=>LH,not_equal:()=>iL,ones:()=>TU,ones_like:()=>I2,outer:()=>S2,packbits:()=>UU,pad:()=>gH,parseNpy:()=>NT,parseNpyData:()=>GT,parseNpyHeader:()=>FT,parseNpz:()=>ST,parseNpzSync:()=>RT,parseTxt:()=>MT,partition:()=>xH,percentile:()=>FL,permute_dims:()=>M2,place:()=>bQ,poly:()=>QL,polyadd:()=>aL,polyder:()=>BL,polydiv:()=>sL,polyfit:()=>CL,polyint:()=>EL,polymul:()=>uL,polysub:()=>cL,polyval:()=>DL,positive:()=>gU,pow:()=>qD,power:()=>qD,printoptions:()=>UQ,prod:()=>lL,promote_types:()=>rQ,ptp:()=>hL,put:()=>Ie,put_along_axis:()=>dQ,putmask:()=>pQ,quantile:()=>GL,rad2deg:()=>I9,radians:()=>A9,random:()=>UT,ravel:()=>BH,ravel_multi_index:()=>qJ,real:()=>_U,real_if_close:()=>z2,reciprocal:()=>QU,remainder:()=>EU,repeat:()=>pH,require:()=>a2,reshape:()=>QH,resize:()=>RH,result_type:()=>ra,right_shift:()=>UD,rint:()=>ZL,roll:()=>SH,rollaxis:()=>cH,roots:()=>fL,rot90:()=>GH,round:()=>YD,round_:()=>BQ,row_stack:()=>wg,searchsorted:()=>jI,select:()=>RJ,serializeNpy:()=>bi,serializeNpz:()=>DJ,serializeNpzSync:()=>fJ,serializeTxt:()=>dJ,set_printoptions:()=>xQ,setdiff1d:()=>rH,seterr:()=>MQ,setxor1d:()=>IH,shape:()=>yi,shares_memory:()=>kQ,sign:()=>tU,signbit:()=>$2,sin:()=>OH,sinc:()=>RU,sinh:()=>e9,size:()=>PQ,sort:()=>kH,sort_complex:()=>UH,spacing:()=>rL,split:()=>Ng,sqrt:()=>VJ,square:()=>CU,squeeze:()=>sH,stack:()=>DH,std:()=>wL,subtract:()=>PJ,sum:()=>mL,swapaxes:()=>EH,take:()=>pJ,take_along_axis:()=>wJ,tan:()=>zH,tanh:()=>o9,tensordot:()=>R2,tile:()=>bH,tobytes:()=>WQ,tofile:()=>zQ,tolist:()=>VQ,trace:()=>p2,transpose:()=>F2,trapezoid:()=>WH,tri:()=>C2,tril:()=>E2,tril_indices:()=>UJ,tril_indices_from:()=>LJ,trim_zeros:()=>tH,triu:()=>u2,triu_indices:()=>HJ,triu_indices_from:()=>_J,true_divide:()=>Ig,trunc:()=>zL,typename:()=>ta,union1d:()=>eH,unique:()=>sQ,unique_all:()=>CQ,unique_counts:()=>EQ,unique_inverse:()=>uQ,unique_values:()=>oH,unpackbits:()=>LU,unravel_index:()=>MJ,unstack:()=>dH,unwrap:()=>SU,vander:()=>c2,var:()=>Vg,variance:()=>pL,vdot:()=>mg,vecdot:()=>k2,vecmat:()=>J2,view:()=>ZQ,vsplit:()=>Gg,vstack:()=>fH,wasmConfig:()=>Y,where:()=>eQ,zeros:()=>XU,zeros_like:()=>r2});module.exports=M_(_T);var T=class A{constructor(r,I=0){this.re=r,this.im=I}abs(){return Math.sqrt(this.re*this.re+this.im*this.im)}angle(){return Math.atan2(this.im,this.re)}conj(){return new A(this.re,-this.im)}add(r){return typeof r=="number"?new A(this.re+r,this.im):new A(this.re+r.re,this.im+r.im)}sub(r){return typeof r=="number"?new A(this.re-r,this.im):new A(this.re-r.re,this.im-r.im)}mul(r){return typeof r=="number"?new A(this.re*r,this.im*r):new A(this.re*r.re-this.im*r.im,this.re*r.im+this.im*r.re)}div(r){if(typeof r=="number")return new A(this.re/r,this.im/r);let I=r.re*r.re+r.im*r.im;return new A((this.re*r.re+this.im*r.im)/I,(this.im*r.re-this.re*r.im)/I)}neg(){return new A(-this.re,-this.im)}equals(r){return this.re===r.re&&this.im===r.im}toString(){return this.im===0?`(${this.re}+0j)`:this.im<0?`(${this.re}${this.im}j)`:`(${this.re}+${this.im}j)`}static from(r){if(r instanceof A)return r;if(typeof r=="number")return new A(r,0);if(Array.isArray(r))return new A(r[0]??0,r[1]??0);if(typeof r=="object"&&r!==null&&"re"in r)return new A(r.re??0,r.im??0);throw new Error(`Cannot convert ${r} to Complex`)}static isComplex(r){return r instanceof A||typeof r=="object"&&r!==null&&"re"in r&&"im"in r}};function Cf(A){return A instanceof T||typeof A=="object"&&A!==null&&"re"in A}var BA="float64";function nA(A){switch(A){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: ${A}`)}}function Hr(A){switch(A){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: ${A}`)}}function pA(A){return A==="int64"||A==="int32"||A==="int16"||A==="int8"||A==="uint64"||A==="uint32"||A==="uint16"||A==="uint8"}function fA(A){return A==="float64"||A==="float32"}function L(A){return A==="int64"||A==="uint64"}function k(A){return A==="complex64"||A==="complex128"}function eA(A,r,I){if(k(A)){let e=I?` ${I}`:"";throw new TypeError(`ufunc '${r}' not supported for complex dtype '${A}'.${e}`)}}function ne(A){if(A==="complex128")return"float64";if(A==="complex64")return"float32";throw new Error(`${A} is not a complex dtype`)}function IA(A,r){if(A===r)return A;if(A==="bool")return r;if(r==="bool")return A;if(k(A)||k(r)){if(k(A)&&k(r))return A==="complex128"||r==="complex128"?"complex128":"complex64";let Q=k(A)?A:r,a=k(A)?r:A;return Q==="complex128"||a==="float64"||a==="int64"||a==="uint64"||a==="int32"||a==="uint32"?"complex128":"complex64"}if(fA(A)||fA(r)){if(A==="float64"||r==="float64")return"float64";if(A==="float32"){let Q=r;return Q==="int32"||Q==="int64"||Q==="uint32"||Q==="uint64"?"float64":"float32"}if(r==="float32"){let Q=A;return Q==="int32"||Q==="int64"||Q==="uint32"||Q==="uint64"?"float64":"float32"}return"float32"}let I=A.startsWith("int"),e=r.startsWith("int"),t=A.startsWith("uint"),o=r.startsWith("uint"),n=Q=>Q.includes("64")?64:Q.includes("32")?32:Q.includes("16")?16:Q.includes("8")?8:0,g=n(A),i=n(r);if(A==="int64"&&r==="uint64"||A==="uint64"&&r==="int64")return"float64";if(I&&o&&g===i){if(g===8)return"int16";if(g===16)return"int32";if(g===32)return"int64"}if(t&&e&&g===i){if(i===8)return"int16";if(i===16)return"int32";if(i===32)return"int64"}if(I&&e||t&&o){let Q=Math.max(g,i);return I?Q===64?"int64":Q===32?"int32":Q===16?"int16":"int8":Q===64?"uint64":Q===32?"uint32":Q===16?"uint16":"uint8"}return I&&o?g>i?A:i===8?"int16":i===16?"int32":i===32?"int64":"float64":t&&e?i>g?r:g===8?"int16":g===16?"int32":g===32?"int64":"float64":"float64"}var xi=64,d=class A{constructor(r,I,e,t,o){this._isCContiguous=-1;this._data=r,this._shape=I,this._strides=e,this._offset=t,this._dtype=o}get shape(){return this._shape}get ndim(){return this._shape.length}get size(){return this._shape.reduce((r,I)=>r*I,1)}get dtype(){return this._dtype}get data(){return this._data}get strides(){return this._strides}get offset(){return this._offset}get isCContiguous(){if(this._isCContiguous!==-1)return this._isCContiguous===1;let r=this._shape,I=this._strides,e=r.length,t;if(e===0)t=!0;else if(e===1)t=I[0]===1;else{t=!0;let o=1;for(let n=e-1;n>=0;n--){if(I[n]!==o){t=!1;break}o*=r[n]}}return this._isCContiguous=t?1:0,t}get isFContiguous(){let r=this._shape,I=this._strides,e=r.length;if(e===0)return!0;if(e===1)return I[0]===1;let t=1;for(let o=0;o<e;o++){if(I[o]!==t)return!1;t*=r[o]}return!0}iget(r){let I=this._shape,e=this._strides,t=I.length,o=k(this._dtype),n;if(t===0)n=this._offset;else{let g=r;n=this._offset;for(let i=0;i<t;i++){let Q=1;for(let B=i+1;B<t;B++)Q*=I[B];let a=Math.floor(g/Q);g=g%Q,n+=a*e[i]}}if(o){let g=n*2,i=this._data[g],Q=this._data[g+1];return new T(i,Q)}return this._data[n]}iset(r,I){let e=this._shape,t=this._strides,o=e.length,n=k(this._dtype),g;if(o===0)g=this._offset;else{let i=r;g=this._offset;for(let Q=0;Q<o;Q++){let a=1;for(let s=Q+1;s<o;s++)a*=e[s];let B=Math.floor(i/a);i=i%a,g+=B*t[Q]}}if(n){let i=g*2,Q,a;I instanceof T?(Q=I.re,a=I.im):typeof I=="object"&&I!==null&&"re"in I?(Q=I.re,a=I.im??0):(Q=Number(I),a=0),this._data[i]=Q,this._data[i+1]=a}else this._data[g]=I}get(...r){let I=this._strides,e=this._offset;for(let t=0;t<r.length;t++)e+=r[t]*I[t];if(k(this._dtype)){let t=e*2,o=this._data[t],n=this._data[t+1];return new T(o,n)}return this._data[e]}set(r,I){let e=this._strides,t=this._offset;for(let o=0;o<r.length;o++)t+=r[o]*e[o];if(k(this._dtype)){let o=t*2,n,g;I instanceof T?(n=I.re,g=I.im):typeof I=="object"&&I!==null&&"re"in I?(n=I.re,g=I.im??0):(n=Number(I),g=0),this._data[o]=n,this._data[o+1]=g}else this._data[t]=I}copy(){let r=Array.from(this._shape),I=this._dtype,e=this.size,t=k(I),o=nA(I);if(!o)throw new Error(`Cannot copy array with dtype ${I}`);let n=t?e*2:e,g=new o(n);if(this.isCContiguous&&this._offset===0)g.set(this._data.subarray(0,n));else if(L(I)){let i=g;for(let Q=0;Q<e;Q++)i[Q]=this.iget(Q)}else if(t){let i=g;for(let Q=0;Q<e;Q++){let a=this.iget(Q);i[Q*2]=a.re,i[Q*2+1]=a.im}}else for(let i=0;i<e;i++)g[i]=this.iget(i);return new A(g,r,A._computeStrides(r),0,I)}static fromData(r,I,e,t,o){if(I.length>xi)throw new Error(`maximum supported dimension for an ndarray is currently ${xi}, found ${I.length}`);let n=t??A._computeStrides(I),g=o??0;return new A(r,I,n,g,e)}static zeros(r,I=BA){if(r.length>xi)throw new Error(`maximum supported dimension for an ndarray is currently ${xi}, found ${r.length}`);let e=r.reduce((i,Q)=>i*Q,1),t=k(I),o=nA(I);if(!o)throw new Error(`Cannot create array with dtype ${I}`);let n=t?e*2:e,g=new o(n);return new A(g,r,A._computeStrides(r),0,I)}static ones(r,I=BA){let e=r.reduce((i,Q)=>i*Q,1),t=k(I),o=nA(I);if(!o)throw new Error(`Cannot create array with dtype ${I}`);let n=t?e*2:e,g=new o(n);if(L(I))g.fill(BigInt(1));else if(t){let i=g;for(let Q=0;Q<e;Q++)i[Q*2]=1,i[Q*2+1]=0}else g.fill(1);return new A(g,r,A._computeStrides(r),0,I)}static _computeStrides(r){let I=new Array(r.length),e=1;for(let t=r.length-1;t>=0;t--)I[t]=e,e*=r[t];return I}};function HA(A){let r=new Array(A.length),I=1;for(let e=A.length-1;e>=0;e--)r[e]=I,I*=A[e];return r}var Y={thresholdMultiplier:1,wasmCallCount:0};var Da=null,fa=0,Ji=0;function K(){return Da||(Da=new WebAssembly.Memory({initial:17})),Da}function J(A){let r=K(),I=Ji+A,e=r.buffer.byteLength;if(I>e){let t=Math.ceil((I-e)/65536);r.grow(t)}}function U(A=Ji){fa=A,Y.wasmCallCount++}function W(A){A>Ji&&(Ji=A)}function _(A){let r=fa+7&-8;return fa=r+A,r}function q(A){let r=_(A.byteLength),I=K();return new Uint8Array(I.buffer,r,A.byteLength).set(new Uint8Array(A.buffer,A.byteOffset,A.byteLength)),r}function v(A,r,I){let e=K(),t=new I(new ArrayBuffer(r*I.BYTES_PER_ELEMENT),0,r);return new Uint8Array(t.buffer,0,t.byteLength).set(new Uint8Array(e.buffer,A,t.byteLength)),t}var x_="AGFzbQEAAAABBwFgA39/fwACDwEDZW52Bm1lbW9yeQIAEAMHBgAAAAAAAAYJAX8BQYCAwAALB0IGCGZsaXBfZjY0AAAIZmxpcF9mMzIAAQhmbGlwX2k2NAACCGZsaXBfaTMyAAMIZmxpcF9pMTYABAdmbGlwX2k4AAUK+hAG8QIDBH8BewF/AkAgAkUNAEEAIQMCQCACQQhJDQACQCABIAAgAkEDdCIEak8NACAAIAEgBGpJDQELIAJBA3QgAGpBcGohBCACQX5xIgMhBSABIQYDQCAGIAT9AAMAIAf9DQgJCgsMDQ4PAAECAwQFBgf9CwMAIARBcGohBCAGQRBqIQYgBUF+aiIFDQALIAIgA0YNAQsgAyEIAkAgAiADa0EDcSIFRQ0AIAJBA3QgA0EDdCIGayAAakF4aiEEIAMgBWohCCABIAZqIQYDQCAGIAQrAwA5AwAgBkEIaiEGIARBeGohBCAFQX9qIgUNAAsLIAMgAmtBfEsNACACQQN0IAhBA3QiBmsgAGpBYGohBCACIAhrIQUgASAGaiEGA0AgBiAEQRhqKwMAOQMAIAZBCGogBEEQaisDADkDACAGQRBqIARBCGorAwA5AwAgBkEYaiAEKwMAOQMAIARBYGohBCAGQSBqIQYgBUF8aiIFDQALCwvuAgMEfwF7AX8CQCACRQ0AQQAhAwJAIAJBCEkNAAJAIAEgACACQQJ0IgRqTw0AIAAgASAEakkNAQsgAkECdCAAakFwaiEEIAJBfHEiAyEFIAEhBgNAIAYgBP0AAgAgB/0NDA0ODwgJCgsEBQYHAAECA/0LAgAgBEFwaiEEIAZBEGohBiAFQXxqIgUNAAsgAiADRg0BCyADIQgCQCACQQNxIgVFDQAgAkECdCADQQJ0IgZrIABqQXxqIQQgAyAFaiEIIAEgBmohBgNAIAYgBCoCADgCACAGQQRqIQYgBEF8aiEEIAVBf2oiBQ0ACwsgAyACa0F8Sw0AIAJBAnQgCEECdCIGayAAakFwaiEEIAIgCGshBSABIAZqIQYDQCAGIARBDGoqAgA4AgAgBkEEaiAEQQhqKgIAOAIAIAZBCGogBEEEaioCADgCACAGQQxqIAQqAgA4AgAgBEFwaiEEIAZBEGohBiAFQXxqIgUNAAsLC/ECAwR/AXsBfwJAIAJFDQBBACEDAkAgAkEISQ0AAkAgASAAIAJBA3QiBGpPDQAgACABIARqSQ0BCyACQQN0IABqQXBqIQQgAkF+cSIDIQUgASEGA0AgBiAE/QADACAH/Q0ICQoLDA0ODwABAgMEBQYH/QsDACAEQXBqIQQgBkEQaiEGIAVBfmoiBQ0ACyACIANGDQELIAMhCAJAIAIgA2tBA3EiBUUNACACQQN0IANBA3QiBmsgAGpBeGohBCADIAVqIQggASAGaiEGA0AgBiAEKQMANwMAIAZBCGohBiAEQXhqIQQgBUF/aiIFDQALCyADIAJrQXxLDQAgAkEDdCAIQQN0IgZrIABqQWBqIQQgAiAIayEFIAEgBmohBgNAIAYgBEEYaikDADcDACAGQQhqIARBEGopAwA3AwAgBkEQaiAEQQhqKQMANwMAIAZBGGogBCkDADcDACAEQWBqIQQgBkEgaiEGIAVBfGoiBQ0ACwsL7gIDBH8BewF/AkAgAkUNAEEAIQMCQCACQQhJDQACQCABIAAgAkECdCIEak8NACAAIAEgBGpJDQELIAJBAnQgAGpBcGohBCACQXxxIgMhBSABIQYDQCAGIAT9AAIAIAf9DQwNDg8ICQoLBAUGBwABAgP9CwIAIARBcGohBCAGQRBqIQYgBUF8aiIFDQALIAIgA0YNAQsgAyEIAkAgAkEDcSIFRQ0AIAJBAnQgA0ECdCIGayAAakF8aiEEIAMgBWohCCABIAZqIQYDQCAGIAQoAgA2AgAgBkEEaiEGIARBfGohBCAFQX9qIgUNAAsLIAMgAmtBfEsNACACQQJ0IAhBAnQiBmsgAGpBcGohBCACIAhrIQUgASAGaiEGA0AgBiAEQQxqKAIANgIAIAZBBGogBEEIaigCADYCACAGQQhqIARBBGooAgA2AgAgBkEMaiAEKAIANgIAIARBcGohBCAGQRBqIQYgBUF8aiIFDQALCwvuAgMEfwF7AX8CQCACRQ0AQQAhAwJAIAJBCEkNAAJAIAEgACACQQF0IgRqTw0AIAAgASAEakkNAQsgAkEBdCAAakFwaiEEIAJBeHEiAyEFIAEhBgNAIAYgBP0AAQAgB/0NDg8MDQoLCAkGBwQFAgMAAf0LAQAgBEFwaiEEIAZBEGohBiAFQXhqIgUNAAsgAiADRg0BCyADIQgCQCACQQNxIgVFDQAgAkEBdCADQQF0IgZrIABqQX5qIQQgAyAFaiEIIAEgBmohBgNAIAYgBC8BADsBACAGQQJqIQYgBEF+aiEEIAVBf2oiBQ0ACwsgAyACa0F8Sw0AIAJBAXQgCEEBdCIGayAAakF4aiEEIAIgCGshBSABIAZqIQYDQCAGIARBBmovAQA7AQAgBkECaiAEQQRqLwEAOwEAIAZBBGogBEECai8BADsBACAGQQZqIAQvAQA7AQAgBEF4aiEEIAZBCGohBiAFQXxqIgUNAAsLC8ECAgR/AXsCQCACRQ0AQQAhAwJAIAJBEEkNAAJAIAEgACACaiIETw0AIAAgASACakkNAQsgBEFwaiEEIAJBcHEiAyEFIAEhBgNAIAYgBP0AAAAgB/0NDw4NDAsKCQgHBgUEAwIBAP0LAAAgBEFwaiEEIAZBEGohBiAFQXBqIgUNAAsgAiADRg0BCyADIQQCQCACQQNxIgVFDQAgACADQX9zIAJqaiEGIAMhBANAIAEgBGogBi0AADoAACAGQX9qIQYgBEEBaiEEIAVBf2oiBQ0ACwsgAyACa0F8Sw0AIAAgBGtBfGohAwNAIAEgBGoiBiADIAJqIgVBA2otAAA6AAAgBkEBaiAFQQJqLQAAOgAAIAZBAmogBUEBai0AADoAACAGQQNqIAUtAAA6AAAgAUEEaiEBIAQgAkF8aiICRw0ACwsL",ie=null;function DI(){if(ie)return ie;let A=atob(x_),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ie=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ie.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ie}function Ef(A,r,I){DI().exports.flip_f64(A,r,I)}function uf(A,r,I){DI().exports.flip_f32(A,r,I)}function ma(A,r,I){DI().exports.flip_i64(A,r,I)}function ya(A,r,I){DI().exports.flip_i32(A,r,I)}function la(A,r,I){DI().exports.flip_i16(A,r,I)}function ha(A,r,I){DI().exports.flip_i8(A,r,I)}var J_=64,U_={float64:Ef,float32:uf,int64:ma,uint64:ma,int32:ya,uint32:ya,int16:la,uint16:la,int8:ha,uint8:ha},L_={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function da(A){if(!A.isCContiguous)return null;let r=A.size;if(r<J_*Y.thresholdMultiplier)return null;let I=A.dtype,e=U_[I],t=L_[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT,n=r*o,g=r*o;J(n+g),U();let i=A.offset,Q=A.data.subarray(i,i+r),a=q(Q),B=_(g);e(a,B,r);let s=v(B,r,t);return d.fromData(s,Array.from(A.shape),I)}var H_="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",ge=null;function fI(){if(ge)return ge;let A=atob(H_),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ge=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ge.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ge}function cf(A,r,I,e,t,o){fI().exports.tile_2d_f64(A,r,I,e,t,o)}function Df(A,r,I,e,t,o){fI().exports.tile_2d_f32(A,r,I,e,t,o)}function ba(A,r,I,e,t,o){fI().exports.tile_2d_i64(A,r,I,e,t,o)}function pa(A,r,I,e,t,o){fI().exports.tile_2d_i32(A,r,I,e,t,o)}function wa(A,r,I,e,t,o){fI().exports.tile_2d_i16(A,r,I,e,t,o)}function Na(A,r,I,e,t,o){fI().exports.tile_2d_i8(A,r,I,e,t,o)}var __=64,Y_={float64:cf,float32:Df,int64:ba,uint64:ba,int32:pa,uint32:pa,int16:wa,uint16:wa,int8:Na,uint8:Na},v_={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Fa(A,r,I){if(!A.isCContiguous||A.shape.length!==2)return null;let e=A.size;if(e<__*Y.thresholdMultiplier)return null;let t=A.dtype,o=Y_[t],n=v_[t];if(!o||!n)return null;let g=A.shape[0],i=A.shape[1],Q=g*r*i*I,a=n.BYTES_PER_ELEMENT,B=e*a,s=Q*a;J(B+s),U();let C=A.offset,E=A.data.subarray(C,C+e),u=q(E),f=_(s);o(u,f,g,i,r,I);let m=v(f,Q,n);return d.fromData(m,[g*r,i*I],t)}var X_="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",Qe=null;function mI(){if(Qe)return Qe;let A=atob(X_),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Qe=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Qe.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Qe}function ff(A,r,I,e){mI().exports.roll_f64(A,r,I,e)}function mf(A,r,I,e){mI().exports.roll_f32(A,r,I,e)}function Ga(A,r,I,e){mI().exports.roll_i64(A,r,I,e)}function Sa(A,r,I,e){mI().exports.roll_i32(A,r,I,e)}function Ra(A,r,I,e){mI().exports.roll_i16(A,r,I,e)}function ka(A,r,I,e){mI().exports.roll_i8(A,r,I,e)}var T_=64,P_={float64:ff,float32:mf,int64:Ga,uint64:Ga,int32:Sa,uint32:Sa,int16:Ra,uint16:Ra,int8:ka,uint8:ka},K_={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function yf(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<T_*Y.thresholdMultiplier)return null;let e=A.dtype,t=P_[e],o=K_[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n;J(g+i),U();let Q=A.offset,a=A.data.subarray(Q,Q+I),B=q(a),s=_(i);t(B,s,I,r);let C=v(s,I,o);return d.fromData(C,Array.from(A.shape),e)}var V_="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",ae=null;function yI(){if(ae)return ae;let A=atob(V_),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ae=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ae.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ae}function lf(A,r,I,e){yI().exports.rot90_f64(A,r,I,e)}function hf(A,r,I,e){yI().exports.rot90_f32(A,r,I,e)}function qa(A,r,I,e){yI().exports.rot90_i64(A,r,I,e)}function Ma(A,r,I,e){yI().exports.rot90_i32(A,r,I,e)}function xa(A,r,I,e){yI().exports.rot90_i16(A,r,I,e)}function Ja(A,r,I,e){yI().exports.rot90_i8(A,r,I,e)}var W_=64,O_={float64:lf,float32:hf,int64:qa,uint64:qa,int32:Ma,uint32:Ma,int16:xa,uint16:xa,int8:Ja,uint8:Ja},Z_={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function df(A){if(!A.isCContiguous||A.shape.length!==2)return null;let r=A.size;if(r<W_*Y.thresholdMultiplier)return null;let I=A.dtype,e=O_[I],t=Z_[I];if(!e||!t)return null;let o=A.shape[0],n=A.shape[1],g=t.BYTES_PER_ELEMENT,i=r*g,Q=r*g;J(i+Q),U();let a=A.offset,B=A.data.subarray(a,a+r),s=q(B),C=_(Q);e(s,C,o,n);let E=v(C,r,t);return d.fromData(E,[n,o],I)}var z_="AGFzbQEAAAABCAFgBH9/f38AAg8BA2VudgZtZW1vcnkCABADBwYAAAAAAAAGCQF/AUGAgMAACwdOBgpyZXBlYXRfZjY0AAAKcmVwZWF0X2YzMgABCnJlcGVhdF9pNjQAAgpyZXBlYXRfaTMyAAMKcmVwZWF0X2kxNgAECXJlcGVhdF9pOAAFCt4JBsIBBQR/AXwBfwF7AX8CQCACRQ0AIANFDQAgA0EDdCEEIANBfnEhBUEAIQYgA0ECSSEHA0AgACAGQQN0aisDACEIQQAhCQJAAkAgBw0AIAj9FCEKIAUhCyABIQkDQCAJIAr9CwMAIAlBEGohCSALQX5qIgsNAAsgBSEJIAMgBUYNAQsgAyAJayELIAEgCUEDdGohCQNAIAkgCDkDACAJQQhqIQkgC0F/aiILDQALCyABIARqIQEgBkEBaiIGIAJHDQALCwvCAQUEfwF9AX8BewF/AkAgAkUNACADRQ0AIANBAnQhBCADQXxxIQVBACEGIANBBEkhBwNAIAAgBkECdGoqAgAhCEEAIQkCQAJAIAcNACAI/RMhCiAFIQsgASEJA0AgCSAK/QsCACAJQRBqIQkgC0F8aiILDQALIAUhCSADIAVGDQELIAMgCWshCyABIAlBAnRqIQkDQCAJIAg4AgAgCUEEaiEJIAtBf2oiCw0ACwsgASAEaiEBIAZBAWoiBiACRw0ACwsLwgEFBH8BfgF/AXsBfwJAIAJFDQAgA0UNACADQQN0IQQgA0F+cSEFQQAhBiADQQJJIQcDQCAAIAZBA3RqKQMAIQhBACEJAkACQCAHDQAgCP0SIQogBSELIAEhCQNAIAkgCv0LAwAgCUEQaiEJIAtBfmoiCw0ACyAFIQkgAyAFRg0BCyADIAlrIQsgASAJQQN0aiEJA0AgCSAINwMAIAlBCGohCSALQX9qIgsNAAsLIAEgBGohASAGQQFqIgYgAkcNAAsLC74BAwZ/AXsBfwJAIAJFDQAgA0UNACADQQJ0IQQgA0F8cSEFQQAhBiADQQRJIQcDQCAAIAZBAnRqKAIAIQhBACEJAkACQCAHDQAgCP0RIQogBSELIAEhCQNAIAkgCv0LAgAgCUEQaiEJIAtBfGoiCw0ACyAFIQkgAyAFRg0BCyADIAlrIQsgASAJQQJ0aiEJA0AgCSAINgIAIAlBBGohCSALQX9qIgsNAAsLIAEgBGohASAGQQFqIgYgAkcNAAsLC74BAwZ/AXsBfwJAIAJFDQAgA0UNACADQQF0IQQgA0F4cSEFQQAhBiADQQhJIQcDQCAAIAZBAXRqLwEAIQhBACEJAkACQCAHDQAgCP0QIQogBSELIAEhCQNAIAkgCv0LAQAgCUEQaiEJIAtBeGoiCw0ACyAFIQkgAyAFRg0BCyADIAlrIQsgASAJQQF0aiEJA0AgCSAIOwEAIAlBAmohCSALQX9qIgsNAAsLIAEgBGohASAGQQFqIgYgAkcNAAsLC48CAQh/AkAgAkUNACADRQ0AIAJBA3EhBEEAIQUCQCACQX9qQQNJDQAgA0EBdCEGIANBAnQhByADQQNsIQggAkF8cSEJQQAhBSABIQIDQCAAIAVqIQoCQCADRSILDQAgAiAKLQAAIAP8CwALAkAgCw0AIAIgA2ogCkEBai0AACAD/AsACwJAIAsNACACIAZqIApBAmotAAAgA/wLAAsCQCALDQAgAiAIaiAKQQNqLQAAIAP8CwALIAIgB2ohAiAJIAVBBGoiBUcNAAsLIARFDQAgACAFaiECIAEgBSADbGohCwNAAkAgA0UNACALIAItAAAgA/wLAAsgCyADaiELIAJBAWohAiAEQX9qIgQNAAsLCw==",Be=null;function lI(){if(Be)return Be;let A=atob(z_),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Be=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Be.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Be}function bf(A,r,I,e){lI().exports.repeat_f64(A,r,I,e)}function pf(A,r,I,e){lI().exports.repeat_f32(A,r,I,e)}function Ua(A,r,I,e){lI().exports.repeat_i64(A,r,I,e)}function La(A,r,I,e){lI().exports.repeat_i32(A,r,I,e)}function Ha(A,r,I,e){lI().exports.repeat_i16(A,r,I,e)}function _a(A,r,I,e){lI().exports.repeat_i8(A,r,I,e)}var j_=64,$_={float64:bf,float32:pf,int64:Ua,uint64:Ua,int32:La,uint32:La,int16:Ha,uint16:Ha,int8:_a,uint8:_a},A4={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function wf(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<j_*Y.thresholdMultiplier)return null;let e=A.dtype,t=$_[e],o=A4[e];if(!t||!o)return null;let n=I*r,g=o.BYTES_PER_ELEMENT,i=I*g,Q=n*g;J(i+Q),U();let a=A.offset,B=A.data.subarray(a,a+I),s=q(B),C=_(Q);t(s,C,I,r);let E=v(C,n,o);return d.fromData(E,[n],e)}function Nf(A){if(!A.includes(":")){if(A.includes("."))throw new Error(`Invalid slice index: "${A}" (must be integer)`);let o=parseInt(A,10);if(isNaN(o))throw new Error(`Invalid slice index: "${A}"`);return{start:o,stop:null,step:1,isIndex:!0}}let r=A.split(":");if(r.length>3)throw new Error(`Invalid slice notation: "${A}" (too many colons)`);let I=r[0]===""?null:parseInt(r[0],10),e=r[1]===""||r[1]===void 0?null:parseInt(r[1],10),t=r[2]===""||r[2]===void 0?1:parseInt(r[2],10);if(I!==null&&isNaN(I))throw new Error(`Invalid start index in slice: "${A}"`);if(e!==null&&isNaN(e))throw new Error(`Invalid stop index in slice: "${A}"`);if(isNaN(t))throw new Error(`Invalid step in slice: "${A}"`);if(t===0)throw new Error("Slice step cannot be zero");return{start:I,stop:e,step:t,isIndex:!1}}function Ff(A,r){let{start:I,stop:e}=A,{step:t,isIndex:o}=A;if(o){if(I===null)throw new Error("Index cannot be null");let n=I<0?r+I:I;if(n<0||n>=r)throw new Error(`Index ${I} is out of bounds for size ${r}`);return{start:n,stop:n+1,step:1,isIndex:!0}}return t>0?(I===null&&(I=0),e===null&&(e=r)):(I===null&&(I=r-1),e===null&&(e=-r-1)),I<0&&(I=r+I),e<0&&(e=r+e),I=Math.max(0,Math.min(I,r)),e=Math.max(-1,Math.min(e,r)),{start:I,stop:e,step:t,isIndex:!1}}function Gf(A,...r){if(r.length===0)return A;if(r.length>A.ndim)throw new Error(`Too many indices for array: array is ${A.ndim}-dimensional, but ${r.length} were indexed`);let I=r.map((n,g)=>{let i=Nf(n);return Ff(i,A.shape[g])});for(;I.length<A.ndim;)I.push({start:0,stop:A.shape[I.length],step:1,isIndex:!1});let e=[],t=[],o=A.offset;for(let n=0;n<I.length;n++){let g=I[n];if(o+=g.start*A.strides[n],g.isIndex)continue;let i=Math.max(0,Math.ceil((g.stop-g.start)/g.step));e.push(i),t.push(A.strides[n]*g.step)}return d.fromData(A.data,e,A.dtype,t,o)}function EA(A,r){let I=A.size,e=A.dtype,t=r.indexOf(-1),o;if(t!==-1){let Q=r.reduce((B,s,C)=>C===t?B:B*s,1),a=I/Q;if(!Number.isInteger(a))throw new Error(`cannot reshape array of size ${I} into shape ${JSON.stringify(r)}`);o=r.map((B,s)=>s===t?a:B)}else o=r;if(o.reduce((Q,a)=>Q*a,1)!==I)throw new Error(`cannot reshape array of size ${I} into shape ${JSON.stringify(o)}`);if(A.isCContiguous){let Q=A.data;return d.fromData(Q,o,e,HA(o),0)}let i=A.copy().data;return d.fromData(i,o,e,HA(o),0)}function gI(A){let r=A.size,I=A.dtype,e=nA(I);if(!e)throw new Error(`Cannot flatten array with dtype ${I}`);let t=k(I),o=t?r*2:r;if(A.isCContiguous){let i=A.data,Q=t?A.offset*2:A.offset,a=i.slice(Q,Q+o);return d.fromData(a,[r],I,[1],0)}let n=new e(o),g=L(I);if(t)for(let i=0;i<r;i++){let Q=A.iget(i);n[i*2]=Q.re,n[i*2+1]=Q.im}else for(let i=0;i<r;i++){let Q=A.iget(i);n[i]=Q}return d.fromData(n,[r],I,[1],0)}function hI(A){let r=A.size,I=A.dtype;if(A.isCContiguous){let e=A.data;return d.fromData(e,[r],I,[1],0)}return gI(A)}function Ya(A,r){let I=A.shape,e=I.length,t=A.strides,o=A.data,n=A.dtype,g;if(r===void 0)g=Array.from({length:e},(B,s)=>e-1-s);else{if(r.length!==e)throw new Error(`axes must have length ${e}, got ${r.length}`);let B=new Set;for(let s of r){let C=s<0?e+s:s;if(C<0||C>=e)throw new Error(`axis ${s} is out of bounds for array of dimension ${e}`);if(B.has(C))throw new Error("repeated axis in transpose");B.add(C)}g=r.map(s=>s<0?e+s:s)}let i=g.map(B=>I[B]),Q=Array.from(t),a=g.map(B=>Q[B]);return d.fromData(o,i,n,a,A.offset)}function Sf(A,r){let I=A.shape,e=I.length,t=A.strides,o=A.data,n=A.dtype;if(r===void 0){let g=[],i=[];for(let Q=0;Q<e;Q++)I[Q]!==1&&(g.push(I[Q]),i.push(t[Q]));return d.fromData(o,g,n,i,A.offset)}else{let g=r<0?e+r:r;if(g<0||g>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);if(I[g]!==1)throw new Error(`cannot select an axis which has size not equal to one (axis ${r} has size ${I[g]})`);let i=[],Q=[];for(let a=0;a<e;a++)a!==g&&(i.push(I[a]),Q.push(t[a]));return d.fromData(o,i,n,Q,A.offset)}}function iI(A,r){let I=A.shape,e=I.length,t=A.strides,o=A.data,n=A.dtype,g=r;if(g<0&&(g=e+r+1),g<0||g>e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e+1}`);let i=[...Array.from(I)];i.splice(g,0,1);let Q=[...Array.from(t)],a=g<e?t[g]*(I[g]||1):1;return Q.splice(g,0,a),d.fromData(o,i,n,Q,A.offset)}function Rf(A,r,I){let e=A.shape,t=e.length,o=A.strides,n=A.data,g=A.dtype,i=r<0?t+r:r,Q=I<0?t+I:I;if(i<0||i>=t)throw new Error(`axis1 ${r} is out of bounds for array of dimension ${t}`);if(Q<0||Q>=t)throw new Error(`axis2 ${I} is out of bounds for array of dimension ${t}`);if(i===Q)return d.fromData(n,Array.from(e),g,Array.from(o),A.offset);let a=Array.from(e),B=Array.from(o);return[a[i],a[Q]]=[a[Q],a[i]],[B[i],B[Q]]=[B[Q],B[i]],d.fromData(n,a,g,B,A.offset)}function va(A,r,I){let e=A.ndim,t=Array.isArray(r)?r:[r],o=Array.isArray(I)?I:[I];if(t.length!==o.length)throw new Error("source and destination must have the same number of elements");let n=t.map(Q=>{let a=Q<0?e+Q:Q;if(a<0||a>=e)throw new Error(`source axis ${Q} is out of bounds for array of dimension ${e}`);return a}),g=o.map(Q=>{let a=Q<0?e+Q:Q;if(a<0||a>=e)throw new Error(`destination axis ${Q} is out of bounds for array of dimension ${e}`);return a});if(new Set(n).size!==n.length)throw new Error("repeated axis in source");if(new Set(g).size!==g.length)throw new Error("repeated axis in destination");let i=[];for(let Q=0;Q<e;Q++)n.includes(Q)||i.push(Q);for(let Q=0;Q<n.length;Q++){let a=g[Q];i.splice(a,0,n[Q])}return Ya(A,i)}function _r(A,r=0){if(A.length===0)throw new Error("need at least one array to concatenate");if(A.length===1)return A[0].copy();let I=A[0],e=I.ndim,t=I.dtype,o=r<0?e+r:r;if(o<0||o>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);for(let C=1;C<A.length;C++){let E=A[C];if(E.ndim!==e)throw new Error("all the input arrays must have same number of dimensions");for(let u=0;u<e;u++)if(u!==o&&E.shape[u]!==I.shape[u])throw new Error("all the input array dimensions except for the concatenation axis must match exactly")}let n=Array.from(I.shape),g=I.shape[o];for(let C=1;C<A.length;C++)g+=A[C].shape[o];n[o]=g;let i=n.reduce((C,E)=>C*E,1),Q=nA(t);if(!Q)throw new Error(`Cannot concatenate arrays with dtype ${t}`);let a=new Q(i),B=HA(n),s=0;for(let C of A){let E=C.shape[o];r4(C,a,n,B,o,s,t),s+=E}return d.fromData(a,n,t)}function r4(A,r,I,e,t,o,n){let g=A.shape,i=g.length,Q=A.size,a=n==="int64"||n==="uint64";if(t===0&&A.isCContiguous&&i>0){let C=o*e[0],E=A.data,u=A.offset,f=u+Q;r.set(E.subarray(u,f),C);return}if(t===1&&i===2&&A.isCContiguous){let C=g[0],E=g[1],u=I[1],f=A.data,m=A.offset;for(let c=0;c<C;c++){let D=m+c*E,y=c*u+o;r.set(f.subarray(D,D+E),y)}return}let B=new Array(i).fill(0),s=o*e[t];for(let C=0;C<Q;C++){let E=A.iget(C),u=s;for(let f=0;f<i;f++)u+=B[f]*e[f];r[u]=E;for(let f=i-1;f>=0&&(B[f]++,!(B[f]<g[f]));f--)B[f]=0}}function kf(A,r=0){if(A.length===0)throw new Error("need at least one array to stack");let I=A[0],e=I.shape,t=I.ndim,o=r<0?t+1+r:r;if(o<0||o>t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t+1}`);for(let g=1;g<A.length;g++){let i=A[g];if(i.ndim!==t)throw new Error("all input arrays must have the same shape");for(let Q=0;Q<t;Q++)if(i.shape[Q]!==e[Q])throw new Error("all input arrays must have the same shape")}let n=A.map(g=>iI(g,o));return _r(n,o)}function qf(A){if(A.length===0)throw new Error("need at least one array to stack");let r=A.map(I=>I.ndim===1?EA(I,[1,I.shape[0]]):I);return _r(r,0)}function Xa(A){if(A.length===0)throw new Error("need at least one array to stack");return A.every(I=>I.ndim===1)?_r(A,0):_r(A,1)}function Mf(A){if(A.length===0)throw new Error("need at least one array to stack");let r=A.map(I=>I.ndim===1?EA(iI(EA(I,[1,I.shape[0]]),2),[1,I.shape[0],1]):I.ndim===2?iI(I,2):I);return _r(r,2)}function xf(A,r,I=0){let e=A.shape,t=e.length,o=I<0?t+I:I;if(o<0||o>=t)throw new Error(`axis ${I} is out of bounds for array of dimension ${t}`);let n=e[o],g;if(typeof r=="number"){if(n%r!==0)throw new Error("array split does not result in an equal division");let i=n/r;g=[];for(let Q=1;Q<r;Q++)g.push(Q*i)}else g=r;return Jf(A,g,o)}function se(A,r,I=0){let e=A.shape,t=e.length,o=I<0?t+I:I;if(o<0||o>=t)throw new Error(`axis ${I} is out of bounds for array of dimension ${t}`);let n=e[o],g;if(typeof r=="number"){let i=r,Q=Math.floor(n/i),a=n%i;g=[];let B=0;for(let s=0;s<i-1;s++)B+=Q+(s<a?1:0),g.push(B)}else g=r;return Jf(A,g,o)}function Jf(A,r,I){let e=A.shape,t=e[I],o=[0,...r,t],n=[];for(let g=0;g<o.length-1;g++){let i=o[g],Q=o[g+1];if(i>Q)throw new Error("split indices must be in ascending order");let a=Array.from(e);a[I]=Q-i;let B=A.offset+i*A.strides[I];n.push(d.fromData(A.data,a,A.dtype,Array.from(A.strides),B))}return n}function Uf(A,r){if(A.ndim<2)throw new Error("vsplit only works on arrays of 2 or more dimensions");return se(A,r,0)}function Lf(A,r){if(A.ndim<1)throw new Error("hsplit only works on arrays of 1 or more dimensions");let I=A.ndim===1?0:1;return se(A,r,I)}function Hf(A,r){let I=A.shape,e=I.length,t=A.dtype,o=Array.isArray(r)?r:[r];if(e===2&&o.length===2&&A.isCContiguous){let c=Fa(A,o[0],o[1]);if(c)return c}if(e===1&&o.length===1&&A.isCContiguous){let c=Fa(A,1,o[0]);if(c)return d.fromData(c.data,[A.size*o[0]],A.dtype)}let n=Math.max(e,o.length),g=new Array(n).fill(1),i=new Array(n).fill(1);for(let c=0;c<e;c++)g[n-e+c]=I[c];for(let c=0;c<o.length;c++)i[n-o.length+c]=o[c];let Q=g.map((c,D)=>c*i[D]),a=Q.reduce((c,D)=>c*D,1),B=nA(t);if(!B)throw new Error(`Cannot tile array with dtype ${t}`);let s=new B(a),C=HA(Q),E=A;e<n&&(E=EA(A,g));let u=t==="int64"||t==="uint64",f=E.strides,m=new Array(n).fill(0);for(let c=0;c<a;c++){let D=E.offset;for(let h=0;h<n;h++){let b=m[h]%g[h];D+=b*f[h]}let y=E.data[D],l=0;for(let h=0;h<n;h++)l+=m[h]*C[h];s[l]=y;for(let h=n-1;h>=0&&(m[h]++,!(m[h]<Q[h]));h--)m[h]=0}return d.fromData(s,Q,t)}function _f(A,r,I){let e=A.shape,t=e.length,o=A.dtype,n=A.size;if(I===void 0){if(typeof r=="number"&&A.isCContiguous){let p=wf(A,r);if(p)return p}let c=n,D=Array.isArray(r)?r:new Array(c).fill(r);if(D.length!==c)throw new Error(`operands could not be broadcast together with shape (${c},) (${D.length},)`);let y=D.reduce((p,w)=>p+w,0),l=nA(o);if(!l)throw new Error(`Cannot repeat array with dtype ${o}`);let h=new l(y),b=0;for(let p=0;p<c;p++){let w=A.iget(p),N=D[p];for(let F=0;F<N;F++)h[b++]=w}return d.fromData(h,[y],o)}let g=I<0?t+I:I;if(g<0||g>=t)throw new Error(`axis ${I} is out of bounds for array of dimension ${t}`);let i=e[g],Q=Array.isArray(r)?r:new Array(i).fill(r);if(Q.length!==i)throw new Error(`operands could not be broadcast together with shape (${i},) (${Q.length},)`);let a=Array.from(e);a[g]=Q.reduce((c,D)=>c+D,0);let B=a.reduce((c,D)=>c*D,1),s=nA(o);if(!s)throw new Error(`Cannot repeat array with dtype ${o}`);let C=new s(B),E=HA(a),u=new Array(t).fill(0),f=o==="int64"||o==="uint64",m=[0];for(let c=0;c<i;c++)m.push(m[c]+Q[c]);for(let c=0;c<n;c++){let D=A.iget(c),y=u[g],l=Q[y],h=0;for(let w=0;w<t;w++)w!==g&&(h+=u[w]*E[w]);let b=E[g],p=m[y];for(let w=0;w<l;w++){let N=h+(p+w)*b;C[N]=D}for(let w=t-1;w>=0&&(u[w]++,!(u[w]<e[w]));w--)u[w]=0}return d.fromData(C,a,o)}function Yf(A,r){let I=A.shape,e=I.length,t=A.dtype,o=A.size,n;if(r===void 0)n=new Set(Array.from({length:e},(s,C)=>C));else if(typeof r=="number"){let s=r<0?e+r:r;if(s<0||s>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);n=new Set([s])}else n=new Set(r.map(s=>{let C=s<0?e+s:s;if(C<0||C>=e)throw new Error(`axis ${s} is out of bounds for array of dimension ${e}`);return C}));let g=nA(t);if(!g)throw new Error(`Cannot flip array with dtype ${t}`);let i=L(t);if(n.size===e&&A.isCContiguous&&!k(t)){let s=da(A);if(s)return s}let Q=new g(o);if(e===1&&A.isCContiguous){let s=A.data,C=A.offset;for(let E=0;E<o;E++)Q[E]=s[C+o-1-E];return d.fromData(Q,[...I],t)}if(e===2&&A.isCContiguous){let s=I[0],C=I[1],E=A.data,u=A.offset;if(n.size===2){for(let f=0;f<o;f++)Q[f]=E[u+o-1-f];return d.fromData(Q,[...I],t)}if(n.size===1){if(n.has(0)){for(let f=0;f<s;f++){let m=u+(s-1-f)*C,c=f*C;for(let D=0;D<C;D++)Q[c+D]=E[m+D]}return d.fromData(Q,[...I],t)}else if(n.has(1)){for(let f=0;f<s;f++){let m=u+f*C,c=f*C;for(let D=0;D<C;D++)Q[c+D]=E[m+C-1-D]}return d.fromData(Q,[...I],t)}}}let a=new Array(e),B=new Array(e).fill(0);for(let s=0;s<o;s++){for(let u=0;u<e;u++)a[u]=n.has(u)?I[u]-1-B[u]:B[u];let C=A.offset;for(let u=0;u<e;u++)C+=a[u]*A.strides[u];let E=A.data[C];Q[s]=E;for(let u=e-1;u>=0&&(B[u]++,!(B[u]<I[u]));u--)B[u]=0}return d.fromData(Q,[...I],t)}function vf(A,r=1,I=[0,1]){let e=A.shape,t=e.length,o=A.dtype;if(t<2)throw new Error("Input must be at least 2-D");let n=I[0]<0?t+I[0]:I[0],g=I[1]<0?t+I[1]:I[1];if(n<0||n>=t||g<0||g>=t)throw new Error(`Axes are out of bounds for array of dimension ${t}`);if(n===g)throw new Error("Axes must be different");if(r=(r%4+4)%4,r===0)return A.copy();if(t===2&&n===0&&g===1&&A.isCContiguous){if(r===1){let c=df(A);if(c)return c}else if(r===2){let c=da(A);if(c)return c}}let i=nA(o);if(!i)throw new Error(`Cannot rotate array with dtype ${o}`);let Q=[...e];(r===1||r===3)&&([Q[n],Q[g]]=[Q[g],Q[n]]);let a=Q.reduce((c,D)=>c*D,1),B=new i(a),s=L(o),C=A.data;if(t===2&&n===0&&g===1){let c=e[0],D=e[1];if(r===1){let y=D,l=c;if(s){let h=C,b=B;for(let p=0;p<y;p++){let w=p*l,N=D-1-p;for(let F=0;F<l;F++)b[w+F]=h[F*D+N]}}else{let h=C,b=B;for(let p=0;p<y;p++){let w=p*l,N=D-1-p;for(let F=0;F<l;F++)b[w+F]=h[F*D+N]}}}else if(r===2)if(s){let y=C,l=B;for(let h=0;h<c;h++){let b=h*D,p=(c-1-h)*D;for(let w=0;w<D;w++)l[b+w]=y[p+(D-1-w)]}}else{let y=C,l=B;for(let h=0;h<c;h++){let b=h*D,p=(c-1-h)*D;for(let w=0;w<D;w++)l[b+w]=y[p+(D-1-w)]}}else{let y=D,l=c;if(s){let h=C,b=B;for(let p=0;p<y;p++){let w=p*l;for(let N=0;N<l;N++)b[w+N]=h[(c-1-N)*D+p]}}else{let h=C,b=B;for(let p=0;p<y;p++){let w=p*l;for(let N=0;N<l;N++)b[w+N]=h[(c-1-N)*D+p]}}}return d.fromData(B,Q,o)}let E=HA(Q),u=HA(e),f=new Array(t).fill(0),m=new Array(t);for(let c=0;c<A.size;c++){for(let b=0;b<t;b++)m[b]=f[b];let D,y;r===1?(D=e[g]-1-f[g],y=f[n]):r===2?(D=e[n]-1-f[n],y=e[g]-1-f[g],m[n]=D,m[g]=y):(D=f[g],y=e[n]-1-f[n]),r!==2&&(m[n]=D,m[g]=y);let l=0;for(let b=0;b<t;b++)l+=m[b]*E[b];let h=0;for(let b=0;b<t;b++)h+=f[b]*u[b];if(s){let b=C,p=B;p[l]=b[h]}else{let b=C,p=B;p[l]=b[h]}for(let b=t-1;b>=0&&(f[b]++,!(f[b]<e[b]));b--)f[b]=0}return d.fromData(B,Q,o)}function Xf(A,r,I){let e=A.shape,t=e.length,o=A.dtype,n=A.size;if(I===void 0){let E=Array.isArray(r)?r.reduce((D,y)=>D+y,0):r;if(A.isCContiguous){let D=yf(A,E);if(D)return D}let u=gI(A),f=nA(o);if(!f)throw new Error(`Cannot roll array with dtype ${o}`);let m=new f(n),c=L(o);for(let D=0;D<n;D++){let y=((D-E)%n+n)%n,l=u.iget(y);m[D]=l}return d.fromData(m,[...e],o)}let g=Array.isArray(r)?r:[r],i=Array.isArray(I)?I:[I];if(g.length!==i.length)throw new Error("shift and axis must have the same length");let Q=i.map(E=>{let u=E<0?t+E:E;if(u<0||u>=t)throw new Error(`axis ${E} is out of bounds for array of dimension ${t}`);return u}),a=nA(o);if(!a)throw new Error(`Cannot roll array with dtype ${o}`);let B=new a(n),s=L(o),C=new Array(t).fill(0);for(let E=0;E<n;E++){let u=[...C];for(let c=0;c<Q.length;c++){let D=Q[c],y=e[D],l=g[c];u[D]=((u[D]-l)%y+y)%y}let f=A.offset;for(let c=0;c<t;c++)f+=u[c]*A.strides[c];let m=A.data[f];B[E]=m;for(let c=t-1;c>=0&&(C[c]++,!(C[c]<e[c]));c--)C[c]=0}return d.fromData(B,[...e],o)}function Tf(A,r,I=0){let e=A.ndim,t=r<0?e+r:r;if(t<0||t>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);let o=I<0?e+I:I;if(o<0||o>e)throw new Error(`start ${I} is out of bounds`);return t<o&&o--,t===o?d.fromData(A.data,Array.from(A.shape),A.dtype,Array.from(A.strides),A.offset):va(A,t,o)}function Pf(A,r){if(A.ndim<3)throw new Error("dsplit only works on arrays of 3 or more dimensions");return se(A,r,2)}function Kf(A){if(A.length===0)throw new Error("need at least one array to stack");let r=A.map(I=>I.ndim===1?EA(I,[I.shape[0],1]):I);return Xa(r)}function Vf(A,r){let I=A.dtype,e=r.reduce((i,Q)=>i*Q,1),t=A.size,o=nA(I);if(!o)throw new Error(`Cannot resize array with dtype ${I}`);let n=new o(e),g=L(I);for(let i=0;i<e;i++){let Q=i%t,a=A.iget(Q);n[i]=a}return d.fromData(n,r,I)}function Wf(A){return A.map(r=>r.ndim===0?EA(r,[1]):r)}function Of(A){return A.map(r=>r.ndim===0?EA(r,[1,1]):r.ndim===1?EA(r,[1,r.shape[0]]):r)}function Zf(A){return A.map(r=>r.ndim===0?EA(r,[1,1,1]):r.ndim===1?EA(r,[1,r.shape[0],1]):r.ndim===2?EA(r,[r.shape[0],r.shape[1],1]):r)}function zf(A,r=0){let I=A.shape,e=I.length,t=r<0?e+r:r;if(t<0||t>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);let o=I[t],n=new Array(o),g=A.data,i=A.dtype,Q=A.strides,a=A.offset,B=[],s=[];for(let E=0;E<e;E++)E!==t&&(B.push(I[E]),s.push(Q[E]));let C=Q[t];for(let E=0;E<o;E++)n[E]=d.fromData(g,B,i,s,a+E*C);return n}function jf(A,r=1){if(A.length===0)throw new Error("need at least one array to block");return A.length===1?A[0].copy():_r(A,-1)}var I4={threshold:1e3,edgeitems:3,precision:8,linewidth:75,floatmode:"maxprec",suppress:!0,separator:" ",prefix:"",suffix:"",nanstr:"nan",infstr:"inf",sign:"-",legacy:!1},wA={...I4};function rm(A){wA={...wA,...A}}function Im(){return{...wA}}function em(A){let r=null,I={_savedOptions:null,enter(){r={...wA},I._savedOptions=r,wA={...wA,...A}},exit(){r&&(wA=r,r=null,I._savedOptions=null)},apply(e){I.enter();try{return e()}finally{I.exit()}}};return I}function Ee(A,r=null,I=!0,e=!0,t="k",o="-",n=null,g=null,i=null){let Q=r??wA.precision;if(!Number.isFinite(A))return Number.isNaN(A)?wA.nanstr:(A>0?"":"-")+wA.infstr;let a;if(I&&r===null?(a=A.toString(),e&&!a.includes(".")&&!a.includes("e")&&(a+=".0")):a=A.toFixed(Q),i!==null){let B=a.indexOf(".");if(B!==-1){let s=a.length-B-1;s<i&&(a+="0".repeat(i-s))}else e&&(a+="."+"0".repeat(i))}if(t!=="k"&&a.includes(".")){if(t==="."||t==="0"||t==="-"){let B=a.length;for(;B>0&&a[B-1]==="0";)B--;a=a.slice(0,B)}t==="0"&&a.endsWith(".")&&(a+="0"),t==="-"&&a.endsWith(".")&&(a=a.slice(0,-1))}if(A>=0&&!Object.is(A,-0)&&(o==="+"?a="+"+a:o===" "&&(a=" "+a)),n!==null&&a.length<n&&(a=" ".repeat(n-a.length)+a),g!==null){let B=a.indexOf(".");if(B!==-1){let s=a.length-B-1;s<g&&(a+="0".repeat(g-s))}}return a}function Ce(A,r=null,I=!0,e="k",t="-",o=null,n=2,g=null){let i=r??wA.precision;if(!Number.isFinite(A))return Number.isNaN(A)?wA.nanstr:(A>0?"":"-")+wA.infstr;let Q=A.toExponential(i);if(g!==null){let u=Q.indexOf("e"),f=Q.slice(0,u),m=Q.slice(u),c=f.indexOf(".");if(c!==-1){let D=f.length-c-1;D<g&&(Q=f+"0".repeat(g-D)+m)}}if(e!=="k"){let u=Q.indexOf("e"),f=Q.slice(0,u),m=Q.slice(u);f.includes(".")&&((e==="."||e==="0"||e==="-")&&(f=f.replace(/0+$/,"")),e==="0"&&f.endsWith(".")&&(f+="0"),e==="-"&&(f=f.replace(/\.$/,""))),Q=f+m}let a=Q.indexOf("e"),B=Q.slice(0,a),s=Q.slice(a+1),C=s[0]==="-"?"-":"+",E=s.replace(/^[+-]/,"");for(;E.length<n;)E="0"+E;return Q=B+"e"+C+E,A>=0&&!Object.is(A,-0)&&(t==="+"?Q="+"+Q:t===" "&&(Q=" "+Q)),o!==null&&Q.length<o&&(Q=" ".repeat(o-Q.length)+Q),Q}function tm(A,r=2,I=0){if(r<2||r>36)throw new Error("base must be between 2 and 36");A=Math.trunc(A);let e;if(A<0?e="-"+Math.abs(A).toString(r).toUpperCase():e=A.toString(r).toUpperCase(),I>0){let t="0".repeat(I);e.startsWith("-")?e="-"+t+e.slice(1):e=t+e}return e}function om(A,r=null){if(A=Math.trunc(A),r!==null&&A<0){if(A=Math.pow(2,r)+A,A<0)throw new Error("width too small for negative number");let t=A.toString(2);return t.length<r&&(t="0".repeat(r-t.length)+t),t}let I;return A<0?I="-"+Math.abs(A).toString(2):I=A.toString(2),r!==null&&I.length<r&&(I="0".repeat(r-I.length)+I),I}function Hi(A,r,I){if(A instanceof T){let e=Hi(A.re,"float64",I),t=Hi(Math.abs(A.im),"float64",I),o=A.im>=0?"+":"-";return`${e}${o}${t}j`}return typeof A=="boolean"?A?" True":"False":typeof A=="bigint"?A.toString():Number.isFinite(A)?r==="float32"||r==="float64"?I.suppress&&Math.abs(A)<1e-10&&A!==0?"0.":Ee(A,I.precision,!1,!0,"k",I.sign):A.toString():Number.isNaN(A)?I.nanstr:(A>0?"":"-")+I.infstr}function e4(A,r){let I=[],e=A.shape,t=e.length,o=A.strides;function n(g,i){if(i===t){let s=0;for(let C=0;C<t;C++)s+=g[C]*o[C];I.push(A.iget(s));return}let Q=e[i];if(e.reduce((s,C)=>s*C,1)>r.threshold&&Q>2*r.edgeitems){for(let s=0;s<r.edgeitems;s++)g[i]=s,n(g,i+1);for(let s=Q-r.edgeitems;s<Q;s++)g[i]=s,n(g,i+1)}else for(let s=0;s<Q;s++)g[i]=s,n(g,i+1)}return t>0?n(new Array(t).fill(0),0):I.push(A.iget(0)),I}function $f(A,r){return A<0||Object.is(A,-0)?"-"+Math.abs(A).toString()+".":r==="+"?"+"+A.toString()+".":r===" "?" "+A.toString()+".":A.toString()+"."}function dI(A,r,I){let e=A.indexOf(".");if(e===-1)return A.padStart(r+(I>0?1+I:0));let t=A.slice(0,e),o=A.slice(e+1),n=t.padStart(r),g=I>0?o.padEnd(I):o;return n+"."+g}function Am(A){let r=0,I=0;for(let e of A){let t=e.indexOf(".");t===-1?r=Math.max(r,e.length):(r=Math.max(r,t),I=Math.max(I,e.length-t-1))}return{maxLeft:r,maxRight:I}}function Ta(A,r){let I=A.filter(s=>Number.isFinite(s));if(I.length===0){let s=A.map(E=>Number.isNaN(E)?r.nanstr:(E>0?"":"-")+r.infstr),C=s.length>0?Math.max(...s.map(E=>E.length)):1;return E=>Number.isNaN(E)?r.nanstr.padStart(C):Number.isFinite(E)?E.toString().padStart(C):((E>0?"":"-")+r.infstr).padStart(C)}let e=r.suppress?I.map(s=>Math.abs(s)<1e-10&&s!==0?0:s):I,t=e.map(Math.abs).filter(s=>s>0),o=t.length>0?Math.max(...t):0,n=t.length>0?Math.min(...t):0;if(o>=1e16||n>0&&n<1e-4||n>0&&o/n>1e3){let s=e.map(D=>Ce(D,r.precision,!1,".",r.sign)),C=0;for(let D of s){let y=D.indexOf("e"),l=y!==-1?D.slice(0,y):D,h=l.indexOf(".");h!==-1&&(C=Math.max(C,l.length-h-1))}let E=Math.max(C,0),u=Math.max(E,1),f=E===0?".":"k",m=e.map(D=>Ce(D,u,!1,f,r.sign));for(let D of A)Number.isFinite(D)||m.push(Number.isNaN(D)?r.nanstr:(D>0?"":"-")+r.infstr);let c=Math.max(...m.map(D=>D.length));return D=>(r.suppress&&Math.abs(D)<1e-10&&D!==0&&Number.isFinite(D)&&(D=0),Number.isNaN(D)?r.nanstr.padStart(c):Number.isFinite(D)?Ce(D,u,!1,f,r.sign).padStart(c):((D>0?"":"-")+r.infstr).padStart(c))}if(e.every(s=>Number.isInteger(s))){let s=e.map(u=>$f(u,r.sign));for(let u of A)Number.isFinite(u)||s.push(Number.isNaN(u)?r.nanstr:(u>0?"":"-")+r.infstr);let{maxLeft:C,maxRight:E}=Am(s);return u=>(r.suppress&&Math.abs(u)<1e-10&&u!==0&&Number.isFinite(u)&&(u=0),Number.isNaN(u)?dI(r.nanstr,C,E):Number.isFinite(u)?dI($f(u,r.sign),C,E):dI((u>0?"":"-")+r.infstr,C,E))}let Q=e.map(s=>Ee(s,r.precision,!1,!0,".",r.sign));for(let s of A)Number.isFinite(s)||Q.push(Number.isNaN(s)?r.nanstr:(s>0?"":"-")+r.infstr);let{maxLeft:a,maxRight:B}=Am(Q);return s=>(r.suppress&&Math.abs(s)<1e-10&&s!==0&&Number.isFinite(s)&&(s=0),Number.isNaN(s)?dI(r.nanstr,a,B):Number.isFinite(s)?dI(Ee(s,r.precision,!1,!0,".",r.sign),a,B):dI((s>0?"":"-")+r.infstr,a,B))}function t4(A,r){let I=A.dtype,e=e4(A,r);if(e.length===0)return o=>Hi(o,I,r);if(I==="bool")return o=>o?" True":"False";if(I==="int64"||I==="uint64"){let o=e.map(g=>g.toString()),n=Math.max(...o.map(g=>g.length));return g=>g.toString().padStart(n)}if(I.startsWith("int")||I.startsWith("uint")){let o=e.map(g=>g.toString()),n=Math.max(...o.map(g=>g.length));return g=>g.toString().padStart(n)}if(I==="complex64"||I==="complex128"){let o=e.map(Q=>Q.re),n=e.map(Q=>Math.abs(Q.im)),g=Ta(o,r),i=Ta(n,r);return Q=>{let a=Q,B=g(a.re),s=i(Math.abs(a.im)),C=a.im>=0?"+":"-";return`${B}${C}${s}j`}}let t=Ta(e,r);return o=>t(o)}function Li(A,r,I,e,t,o){let n=A.shape,g=n.length;if(I===g){let u=0,f=A.strides;for(let c=0;c<g;c++)u+=r[c]*f[c];let m=A.iget(u);return t(m)}let i=n[I],Q=e.threshold,a=e.edgeitems,s=n.reduce((u,f)=>u*f,1)>Q&&i>2*a,C=[],E=[...r];if(s){for(let u=0;u<a;u++)E[I]=u,C.push(Li(A,E,I+1,e,t,o+1));C.push("...");for(let u=i-a;u<i;u++)E[I]=u,C.push(Li(A,E,I+1,e,t,o+1))}else for(let u=0;u<i;u++)E[I]=u,C.push(Li(A,E,I+1,e,t,o+1));if(I===g-1){let u="["+C.join(e.separator)+"]";if(o+u.length<e.linewidth)return u;let f=" ".repeat(o+1),m=e.linewidth-o-1,c=[],D="";for(let y=0;y<C.length;y++){let l=C[y];if(D==="")D=l;else{let h=D+e.separator+l;h.length<m?D=h:(c.push(D),D=l)}}return D&&c.push(D),"["+c.join(`
|
|
2
|
+
`+f)+"]"}else{let u=" ".repeat(o+1),f=g-I-2,m=`
|
|
3
3
|
`+`
|
|
4
|
-
`.repeat(Math.max(0,b))+d;return"["+p.join(A)+"]"}}function Mo(r,t=null,e=null,n=null,o=" ",a="",u="",i=null,s=null,c=null,l=null){let f={...ur,linewidth:t??ur.linewidth,precision:e??ur.precision,suppress:n??ur.suppress,separator:o,prefix:a,suffix:u,threshold:i??ur.threshold,edgeitems:s??ur.edgeitems,floatmode:c??ur.floatmode,sign:l??ur.sign};if(r.ndim===0){let d=r.iget(0);return _o(d,r.dtype,f)}let m=RN(r,f),p=f.prefix.length,y=zo(r,new Array(r.ndim).fill(0),0,f,m,p);return f.prefix+y+f.suffix}function Ml(r,t=null,e=null,n=null){let a="array("+Mo(r,t,e,n,", ");return r.dtype!=="float64"&&(a+=`, dtype='${r.dtype}'`),a+=")",a}function vo(r,t=null,e=null,n=null){return Mo(r,t,e,n)}var P=class r{constructor(t,e){this._storage=t,this._base=e}get storage(){return this._storage}static fromStorage(t,e){return new r(t,e)}get shape(){return this._storage.shape}get ndim(){return this._storage.ndim}get size(){return this._storage.size}get dtype(){return this._storage.dtype}get data(){return this._storage.data}get strides(){return this._storage.strides}get flags(){return{C_CONTIGUOUS:this._storage.isCContiguous,F_CONTIGUOUS:this._storage.isFContiguous,OWNDATA:this._base===void 0}}get base(){return this._base??null}get itemsize(){return Wr(this._storage.dtype)}get nbytes(){return this.size*this.itemsize}fill(t){let e=this._storage.dtype,n=this.size;if(E(e)){let o=typeof t=="bigint"?t:BigInt(Math.round(Number(t)));for(let a=0;a<n;a++)this._storage.iset(a,o)}else if(e==="bool"){let o=t?1:0;for(let a=0;a<n;a++)this._storage.iset(a,o)}else{let o=Number(t);for(let a=0;a<n;a++)this._storage.iset(a,o)}}*[Symbol.iterator](){if(this.ndim===0)yield this._storage.iget(0);else if(this.ndim===1)for(let t=0;t<this.shape[0];t++)yield this._storage.iget(t);else for(let t=0;t<this.shape[0];t++)yield this.slice(String(t))}get(t){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let e=t.map((n,o)=>{let a=n;if(a<0&&(a=this.shape[o]+a),a<0||a>=this.shape[o])throw new Error(`Index ${n} is out of bounds for axis ${o} with size ${this.shape[o]}`);return a});return this._storage.get(...e)}set(t,e){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let n=t.map((a,u)=>{let i=a;if(i<0&&(i=this.shape[u]+i),i<0||i>=this.shape[u])throw new Error(`Index ${a} is out of bounds for axis ${u} with size ${this.shape[u]}`);return i}),o=this.dtype;if(B(o))this._storage.set(n,e);else if(E(o)){let a=e instanceof U?e.re:Number(e),u=typeof e=="bigint"?e:BigInt(Math.round(a));this._storage.set(n,u)}else if(o==="bool"){let u=(e instanceof U?e.re:Number(e))?1:0;this._storage.set(n,u)}else{let a=e instanceof U?e.re:Number(e);this._storage.set(n,a)}}iget(t){return this._storage.iget(t)}iset(t,e){this._storage.iset(t,e)}copy(){return new r(this._storage.copy())}astype(t,e=!0){let n=this.dtype;if(n===t&&!e)return this;if(n===t&&e)return this.copy();let o=Array.from(this.shape),a=this.size,u=K(t);if(!u)throw new Error(`Cannot convert to dtype ${t}`);let i=new u(a),s=this.data;if(E(n)&&!E(t)){let l=s;if(t==="bool")for(let f=0;f<a;f++)i[f]=l[f]!==BigInt(0)?1:0;else for(let f=0;f<a;f++)i[f]=Number(l[f])}else if(!E(n)&&E(t)){let l=s;for(let f=0;f<a;f++)i[f]=BigInt(Math.round(Number(l[f])))}else if(t==="bool"){let l=s;for(let f=0;f<a;f++)i[f]=l[f]!==0?1:0}else if(n==="bool"&&!E(t)){let l=s;for(let f=0;f<a;f++)i[f]=l[f]}else if(!E(n)&&!E(t)){let l=s;for(let f=0;f<a;f++)i[f]=l[f]}else{let l=s;for(let f=0;f<a;f++)i[f]=l[f]}let c=S.fromData(i,o,t);return new r(c)}slice(...t){if(t.length===0)return this;if(t.length>this.ndim)throw new Error(`Too many indices for array: array is ${this.ndim}-dimensional, but ${t.length} were indexed`);let e=t.map((s,c)=>{let l=wo(s);return Io(l,this.shape[c])});for(;e.length<this.ndim;)e.push({start:0,stop:this.shape[e.length],step:1,isIndex:!1});let n=[],o=[],a=this._storage.offset;for(let s=0;s<e.length;s++){let c=e[s];if(a+=c.start*this._storage.strides[s],c.step===0)continue;let l=Math.max(0,Math.ceil((c.stop-c.start)/c.step));n.push(l),o.push(this._storage.strides[s]*c.step)}let u=S.fromData(this._storage.data,n,this._storage.dtype,o,a),i=this._base??this;return new r(u,i)}toString(){return vo(this._storage)}toArray(){if(this.ndim===0)return this._storage.iget(0);let t=this.shape,e=t.length,n=(o,a)=>{if(a===e)return this._storage.get(...o);let u=[];for(let i=0;i<t[a];i++)o[a]=i,u.push(n(o,a+1));return u};return n(new Array(e),0)}tolist(){return this.toArray()}tobytes(){if(this._storage.isCContiguous){let n=this._storage.data,o=n.BYTES_PER_ELEMENT,a=this._storage.offset*o,u=this.size*o;return n.buffer.slice(a,a+u)}let e=this.copy()._storage.data;return e.buffer.slice(0,this.size*e.BYTES_PER_ELEMENT)}item(...t){if(t.length===0){if(this.size!==1)throw new Error("can only convert an array of size 1 to a Python scalar");return this._storage.iget(0)}if(t.length===1){let e=t[0];if(e<0||e>=this.size)throw new Error(`index ${e} is out of bounds for size ${this.size}`);return this._storage.iget(e)}return this.get(t)}};function z(r){return r instanceof P||r&&typeof r=="object"&&"storage"in r&&r.storage instanceof S?r.storage:r}function v(r,t){return P.fromStorage(r,t)}function Nr(r,t){let e=t.base??t;return P.fromStorage(r,e)}function $r(r){return r.map(t=>v(t))}function st(r,t){return r.map(e=>Nr(e,t))}function Fo(r){return[v(r[0]),v(r[1])]}function Fs(r){return new P(r)}function VN(r){return!!(r instanceof P||r&&typeof r=="object"&&"storage"in r&&r.storage instanceof S)}function wr(r,t=tr){let e=S.zeros(r,t);return new P(e)}function Bo(r,t=tr){let e=S.ones(r,t);return new P(e)}function To(r,t=tr){return wr(r,t)}function Eo(r,t,e){let n=e;n||(typeof t=="bigint"?n="int64":typeof t=="boolean"?n="bool":Number.isInteger(t)?n="int32":n=tr);let o=K(n);if(!o)throw new Error(`Cannot create full array with dtype ${n}`);let a=r.reduce((s,c)=>s*c,1),u=new o(a);if(E(n)){let s=typeof t=="bigint"?t:BigInt(Math.round(Number(t)));u.fill(s)}else n==="bool"?u.fill(t?1:0):u.fill(Number(t));let i=S.fromData(u,r,n);return new P(i)}function PN(r){let t=[],e=r;for(;Array.isArray(e);)t.push(e.length),e=e[0];return t}function vl(r){return typeof r=="bigint"?!0:Array.isArray(r)?r.some(t=>vl(t)):!1}function Fl(r){return Dl(r)?!0:Array.isArray(r)?r.some(t=>Fl(t)):!1}function jN(r){let t=[];function e(n){Array.isArray(n)?n.forEach(o=>e(o)):t.push(n)}return e(r),t}function Q(r,t){if(r instanceof P)return!t||r.dtype===t?r.copy():r.astype(t);let e=vl(r),n=Fl(r),o=PN(r),a=o.reduce((p,y)=>p*y,1),u=t;u||(n?u="complex128":e?u="int64":u=tr);let i=B(u),s=K(u);if(!s)throw new Error(`Cannot create array with dtype ${u}`);let c=i?a*2:a,l=new s(c),f=jN(r);if(E(u)){let p=l;for(let y=0;y<a;y++){let d=f[y];p[y]=typeof d=="bigint"?d:BigInt(Math.round(Number(d)))}}else if(u==="bool"){let p=l;for(let y=0;y<a;y++)p[y]=f[y]?1:0}else if(i){let p=l;for(let y=0;y<a;y++){let d=f[y],b,A;d instanceof U?(b=d.re,A=d.im):typeof d=="object"&&d!==null&&"re"in d?(b=d.re,A=d.im??0):(b=Number(d),A=0),p[y*2]=b,p[y*2+1]=A}}else{let p=l;for(let y=0;y<a;y++){let d=f[y];p[y]=Number(d)}}let m=S.fromData(l,o,u);return new P(m)}function Bs(r,t,e=1,n=tr){let o=r,a=t;if(t===void 0&&(o=0,a=r),a===void 0)throw new Error("stop is required");let u=Math.max(0,Math.ceil((a-o)/e)),i=K(n);if(!i)throw new Error(`Cannot create arange array with dtype ${n}`);let s=new i(u);if(E(n))for(let l=0;l<u;l++)s[l]=BigInt(Math.round(o+l*e));else if(n==="bool")for(let l=0;l<u;l++)s[l]=o+l*e!==0?1:0;else for(let l=0;l<u;l++)s[l]=o+l*e;let c=S.fromData(s,[u],n);return new P(c)}function Ts(r,t,e=50,n=tr){if(e<0)throw new Error("num must be non-negative");if(e===0)return Q([],n);if(e===1)return Q([r],n);let o=K(n);if(!o)throw new Error(`Cannot create linspace array with dtype ${n}`);let a=new o(e),u=(t-r)/(e-1);if(E(n))for(let s=0;s<e;s++)a[s]=BigInt(Math.round(r+s*u));else if(n==="bool")for(let s=0;s<e;s++)a[s]=r+s*u!==0?1:0;else for(let s=0;s<e;s++)a[s]=r+s*u;let i=S.fromData(a,[e],n);return new P(i)}function Es(r,t,e=50,n=10,o=tr){if(e<0)throw new Error("num must be non-negative");if(e===0)return Q([],o);if(e===1)return Q([Math.pow(n,r)],o);let a=K(o);if(!a)throw new Error(`Cannot create logspace array with dtype ${o}`);let u=new a(e),i=(t-r)/(e-1);if(E(o))for(let c=0;c<e;c++){let l=r+c*i;u[c]=BigInt(Math.round(Math.pow(n,l)))}else if(o==="bool")for(let c=0;c<e;c++){let l=r+c*i;u[c]=Math.pow(n,l)!==0?1:0}else for(let c=0;c<e;c++){let l=r+c*i;u[c]=Math.pow(n,l)}let s=S.fromData(u,[e],o);return new P(s)}function Os(r,t,e=50,n=tr){if(e<0)throw new Error("num must be non-negative");if(r===0||t===0)throw new Error("Geometric sequence cannot include zero");if(e===0)return Q([],n);if(e===1)return Q([r],n);let o=Math.sign(r),a=Math.sign(t);if(o!==a)throw new Error("Geometric sequence cannot contain both positive and negative values");let u=K(n);if(!u)throw new Error(`Cannot create geomspace array with dtype ${n}`);let i=new u(e),s=Math.log(Math.abs(r)),l=(Math.log(Math.abs(t))-s)/(e-1);if(E(n))for(let m=0;m<e;m++){let p=o*Math.exp(s+m*l);i[m]=BigInt(Math.round(p))}else if(n==="bool")for(let m=0;m<e;m++){let p=o*Math.exp(s+m*l);i[m]=p!==0?1:0}else for(let m=0;m<e;m++){let p=o*Math.exp(s+m*l);i[m]=p}let f=S.fromData(i,[e],n);return new P(f)}function Oo(r,t,e=0,n=tr){let o=t??r,a=wr([r,o],n),u=a.data;if(E(n)){let i=u;for(let s=0;s<r;s++){let c=s+e;c>=0&&c<o&&(i[s*o+c]=BigInt(1))}}else{let i=u;for(let s=0;s<r;s++){let c=s+e;c>=0&&c<o&&(i[s*o+c]=1)}}return a}function Us(r,t=tr){return Oo(r,r,0,t)}function Xr(r,t){return VN(r)?!t||r.dtype===t?r:r.astype(t):Q(r,t)}function $s(r,t){return wr(Array.from(r.shape),t??r.dtype)}function ks(r,t){return Bo(Array.from(r.shape),t??r.dtype)}function Rs(r,t){return To(Array.from(r.shape),t??r.dtype)}function qs(r,t,e){return Eo(Array.from(r.shape),t,e??r.dtype)}function Vs(r){return r.copy()}function Ps(r,t){return Xr(r,t)}function js(r,t){return Xr(r,t).copy()}function Ls(r,t){return Xr(r,t).copy()}function Ws(r,t){let e=Xr(r,t),n=e.data;for(let o=0;o<n.length;o++){let a=n[o];if(!Number.isFinite(a))throw new Error("array must not contain infs or NaNs")}return e}function Gs(r,t,e){let n=r;return t&&t!==r.dtype&&(n=n.astype(t)),n}function LN(r){let t=r.data,e=S.fromData(t.slice(),[t.length],r.dtype);return Fs(e)}function Uo(r,t=0){let e=r.shape,n=r.data,o=r.dtype;if(e.length===1){let a=e[0],u=a+Math.abs(t),i=wr([u,u],o),s=i.data;for(let c=0;c<a;c++){let l=t>=0?c:c-t,f=t>=0?c+t:c;l>=0&&l<u&&f>=0&&f<u&&(s[l*u+f]=n[c])}return i}else if(e.length===2){let a=e[0],u=e[1],i=Math.min(t>=0?Math.min(a,u-t):Math.min(a+t,u),Math.max(0,t>=0?u-t:a+t));if(i<=0)return Q([],o);let s=[];for(let c=0;c<i;c++){let l=t>=0?c:c-t,f=t>=0?c+t:c;l>=0&&l<a&&f>=0&&f<u&&s.push(n[l*u+f])}return Q(s,o)}throw new Error("Input must be 1-D or 2-D")}function Ys(r,t=0){let e=LN(r);return Uo(e,t)}function Zs(r,t,e=0,n=tr){let o=t??r,a=wr([r,o],n),u=a.data;for(let i=0;i<r;i++)for(let s=0;s<=Math.min(i+e,o-1);s++)s>=0&&(u[i*o+s]=1);return a}function Xs(r,t=0){let e=r.shape;if(e.length<2)throw new Error("Input must be at least 2-D");let n=r.copy(),o=n.data,a=e[e.length-2],u=e[e.length-1],i=e.slice(0,-2).reduce((c,l)=>c*l,1),s=a*u;for(let c=0;c<i;c++){let l=c*s;for(let f=0;f<a;f++)for(let m=f+t+1;m<u;m++)o[l+f*u+m]=0}return n}function Js(r,t=0){let e=r.shape;if(e.length<2)throw new Error("Input must be at least 2-D");let n=r.copy(),o=n.data,a=e[e.length-2],u=e[e.length-1],i=e.slice(0,-2).reduce((c,l)=>c*l,1),s=a*u;for(let c=0;c<i;c++){let l=c*s;for(let f=0;f<a;f++)for(let m=0;m<Math.min(f+t,u);m++)o[l+f*u+m]=0}return n}function Ks(r,t,e=!1){let n=r.size,o=t??n,a=r.data,u=wr([n,o],r.dtype),i=u.data;for(let s=0;s<n;s++){let c=a[s];for(let l=0;l<o;l++){let f=e?l:o-1-l;i[s*o+l]=Math.pow(c,f)}}return u}function Qs(r,t=tr,e=-1,n=0){let o=K(t);if(!o)throw new Error(`Unsupported dtype: ${t}`);let a;if(r instanceof ArrayBuffer){let i=n,s=e<0?(r.byteLength-i)/o.BYTES_PER_ELEMENT:e;a=new o(r,i,s)}else{let i=n,s=e<0?r.length:n+e,c=Array.from(r.slice(i,s));a=new o(c.length);for(let l=0;l<c.length;l++)a[l]=c[l]}let u=S.fromData(a,[a.length],t);return Fs(u)}function Hs(r,t,e=tr){let n=t.reduce((c,l)=>c*l,1),o=K(e);if(!o)throw new Error(`Unsupported dtype: ${e}`);let a=new o(n),u=[],i=1;for(let c=t.length-1;c>=0;c--)u.unshift(i),i*=t[c];for(let c=0;c<n;c++){let l=[],f=c;for(let m=0;m<t.length;m++)l.push(Math.floor(f/u[m])),f=f%u[m];a[c]=r(...l)}let s=S.fromData(a,t,e);return Fs(s)}function ri(r,t=tr,e=-1){let n=[],o=0;for(let a of r){if(e>=0&&o>=e)break;n.push(a),o++}return Q(n,t)}function ti(r,t=tr,e=-1,n){let o=n??/\s+/,u=r.split(o).filter(s=>s.trim()!=="").map(s=>parseFloat(s.trim())),i=e>=0?u.slice(0,e):u;return Q(i,t)}function ei(r,t=tr,e=-1,n=""){throw new Error("fromfile requires Node.js file system access")}function Gr(r,t){let e=r.length,n=t.length,o=Math.max(e,n),a=new Array(o);for(let u=0;u<o;u++){let i=u<o-e?1:r[u-(o-e)],s=u<o-n?1:t[u-(o-n)];if(i===s)a[u]=i;else if(i===1)a[u]=s;else if(s===1)a[u]=i;else throw new Error(`operands could not be broadcast together with shapes ${JSON.stringify(Array.from(r))} ${JSON.stringify(Array.from(t))}`)}return a}function WN(r,t,e){let n=r.length,o=e.length,a=new Array(o).fill(0);for(let u=0;u<n;u++){let i=o-n+u,s=r[u],c=e[i];if(s===c)a[i]=t[u];else if(s===1)a[i]=0;else throw new Error("Invalid broadcast")}return a}function $o(r,t){let e=WN(r.shape,r.strides,t);return S.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function sr(r,t,e,n){let o=or(r.dtype,t.dtype),a=r.shape,u=t.shape;if(a.length===u.length&&a.every((y,d)=>y===u[d])&&r.isCContiguous&&t.isCContiguous&&!E(r.dtype)&&!E(t.dtype)&&!E(o)){let y=r.size,d=S.zeros(Array.from(a),o),b=d.data,A=r.data,g=t.data,h=r.offset,N=t.offset;if(h===0&&N===0)for(let D=0;D<y;D++)b[D]=e(A[D],g[D]);else for(let D=0;D<y;D++)b[D]=e(A[h+D],g[N+D]);return d}let s=Gr(r.shape,t.shape),c=$o(r,s),l=$o(t,s),f=S.zeros(s,o),m=f.data,p=f.size;if(E(o)){let y=m;for(let d=0;d<p;d++){let b=c.iget(d),A=l.iget(d),g=b instanceof U?b.re:b,h=A instanceof U?A.re:A,N=typeof g=="bigint"?g:BigInt(Math.round(g)),D=typeof h=="bigint"?h:BigInt(Math.round(h));n==="add"?y[d]=N+D:n==="subtract"?y[d]=N-D:n==="multiply"?y[d]=N*D:n==="divide"?y[d]=N/D:y[d]=BigInt(Math.round(e(Number(N),Number(D))))}}else{let y=E(r.dtype)||E(t.dtype);for(let d=0;d<p;d++){let b=c.iget(d),A=l.iget(d),g=Number(b),h=Number(A);m[d]=e(g,h)}}return f}function Ir(r,t,e){let n=Gr(r.shape,t.shape),o=$o(r,n),a=$o(t,n),u=n.reduce((c,l)=>c*l,1),i=new Uint8Array(u),s=E(r.dtype)||E(t.dtype);for(let c=0;c<u;c++){let l=o.iget(c),f=a.iget(c),m=Number(l),p=Number(f);i[c]=e(m,p)?1:0}return S.fromData(i,n,"bool")}function ir(r,t,e=!0){let n=r.dtype,o=Array.from(r.shape),a=r.size,i=e?n:n!=="float32"&&n!=="float64"?"float64":n,s=S.zeros(o,i),c=s.data,l=r.data,f=r.offset,m=r.isCContiguous;if(E(n))if(E(i)){let p=c;if(m)for(let y=0;y<a;y++){let d=Number(l[f+y]);p[y]=BigInt(Math.round(t(d)))}else for(let y=0;y<a;y++)p[y]=BigInt(Math.round(t(Number(r.iget(y)))))}else if(m)for(let p=0;p<a;p++)c[p]=t(Number(l[f+p]));else for(let p=0;p<a;p++)c[p]=t(Number(r.iget(p)));else if(m)if(f===0)for(let p=0;p<a;p++)c[p]=t(Number(l[p]));else for(let p=0;p<a;p++)c[p]=t(Number(l[f+p]));else for(let p=0;p<a;p++)c[p]=t(Number(r.iget(p)));return s}function ni(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function Dr(r,t){return[r[t*2],r[t*2+1]]}function br(r,t,e,n){r[t*2]=e,r[t*2+1]=n}function Ol(r,t){if(typeof t=="number")return Bl(r,t);if(t.size===1&&!B(t.dtype)&&r.dtype===t.dtype){let e=Number(t.iget(0));return Bl(r,e)}return ni(r,t)?GN(r,t):sr(r,t,(e,n)=>e+n,"add")}function GN(r,t){let e=or(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,i=n.data,s=r.offset,c=t.offset;if(B(e)){let l=i,f=B(r.dtype),m=B(t.dtype);for(let p=0;p<o;p++){let[y,d]=f?Dr(a,s+p):[Number(a[s+p]),0],[b,A]=m?Dr(u,c+p):[Number(u[c+p]),0];br(l,p,y+b,d+A)}return n}if(E(e)){let l=i;if(!E(r.dtype)||!E(t.dtype))for(let m=0;m<o;m++){let p=typeof a[s+m]=="bigint"?a[s+m]:BigInt(Math.round(Number(a[s+m]))),y=typeof u[c+m]=="bigint"?u[c+m]:BigInt(Math.round(Number(u[c+m])));l[m]=p+y}else{let m=a,p=u;for(let y=0;y<o;y++)l[y]=m[s+y]+p[c+y]}}else if(E(r.dtype)||E(t.dtype))for(let f=0;f<o;f++){let m=typeof a[s+f]=="bigint"?Number(a[s+f]):a[s+f],p=typeof u[c+f]=="bigint"?Number(u[c+f]):u[c+f];i[f]=m+p}else if(s===0&&c===0)for(let f=0;f<o;f++)i[f]=a[f]+u[f];else for(let f=0;f<o;f++)i[f]=a[s+f]+u[c+f];return n}function Ul(r,t){if(typeof t=="number")return Tl(r,t);if(t.size===1&&!B(t.dtype)&&r.dtype===t.dtype){let e=Number(t.iget(0));return Tl(r,e)}return ni(r,t)?YN(r,t):sr(r,t,(e,n)=>e-n,"subtract")}function YN(r,t){let e=or(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,i=n.data,s=r.offset,c=t.offset;if(B(e)){let l=i,f=B(r.dtype),m=B(t.dtype);for(let p=0;p<o;p++){let[y,d]=f?Dr(a,s+p):[Number(a[s+p]),0],[b,A]=m?Dr(u,c+p):[Number(u[c+p]),0];br(l,p,y-b,d-A)}return n}if(E(e)){let l=i;if(!E(r.dtype)||!E(t.dtype))for(let m=0;m<o;m++){let p=typeof a[s+m]=="bigint"?a[s+m]:BigInt(Math.round(Number(a[s+m]))),y=typeof u[c+m]=="bigint"?u[c+m]:BigInt(Math.round(Number(u[c+m])));l[m]=p-y}else{let m=a,p=u;for(let y=0;y<o;y++)l[y]=m[s+y]-p[c+y]}}else if(E(r.dtype)||E(t.dtype))for(let f=0;f<o;f++){let m=typeof a[s+f]=="bigint"?Number(a[s+f]):a[s+f],p=typeof u[c+f]=="bigint"?Number(u[c+f]):u[c+f];i[f]=m-p}else if(s===0&&c===0)for(let f=0;f<o;f++)i[f]=a[f]-u[f];else for(let f=0;f<o;f++)i[f]=a[s+f]-u[c+f];return n}function $l(r,t){if(typeof t=="number")return El(r,t);if(t.size===1&&!B(t.dtype)&&r.dtype===t.dtype){let e=Number(t.iget(0));return El(r,e)}return ni(r,t)?ZN(r,t):sr(r,t,(e,n)=>e*n,"multiply")}function ZN(r,t){let e=or(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,i=n.data,s=r.offset,c=t.offset;if(B(e)){let l=i,f=B(r.dtype),m=B(t.dtype);for(let p=0;p<o;p++){let[y,d]=f?Dr(a,s+p):[Number(a[s+p]),0],[b,A]=m?Dr(u,c+p):[Number(u[c+p]),0],g=y*b-d*A,h=y*A+d*b;br(l,p,g,h)}return n}if(E(e)){let l=i;if(!E(r.dtype)||!E(t.dtype))for(let m=0;m<o;m++){let p=typeof a[s+m]=="bigint"?a[s+m]:BigInt(Math.round(Number(a[s+m]))),y=typeof u[c+m]=="bigint"?u[c+m]:BigInt(Math.round(Number(u[c+m])));l[m]=p*y}else{let m=a,p=u;for(let y=0;y<o;y++)l[y]=m[s+y]*p[c+y]}}else if(E(r.dtype)||E(t.dtype))for(let f=0;f<o;f++){let m=typeof a[s+f]=="bigint"?Number(a[s+f]):a[s+f],p=typeof u[c+f]=="bigint"?Number(u[c+f]):u[c+f];i[f]=m*p}else if(s===0&&c===0)for(let f=0;f<o;f++)i[f]=a[f]*u[f];else for(let f=0;f<o;f++)i[f]=a[s+f]*u[c+f];return n}function kl(r,t){if(typeof t=="number")return XN(r,t);let e=B(r.dtype),n=B(t.dtype);if(e||n){let l=or(r.dtype,t.dtype),f=S.zeros(Array.from(r.shape),l),m=f.data,p=r.size,y=r.data,d=t.data,b=r.offset,A=t.offset;for(let g=0;g<p;g++){let[h,N]=e?Dr(y,b+g):[Number(y[b+g]),0],[D,x]=n?Dr(d,A+g):[Number(d[A+g]),0],C=D*D+x*x,w=(h*D+N*x)/C,_=(N*D-h*x)/C;br(m,g,w,_)}return f}let o=r.dtype==="float64",a=t.dtype==="float64",u=r.dtype==="float32",i=t.dtype==="float32";if(o||a){let l=o?r:it(r,"float64"),f=a?t:it(t,"float64");return sr(l,f,(m,p)=>m/p,"divide")}if(u||i){let l=u?r:it(r,"float32"),f=i?t:it(t,"float32");return sr(l,f,(m,p)=>m/p,"divide")}let s=it(r,"float64"),c=it(t,"float64");return sr(s,c,(l,f)=>l/f,"divide")}function it(r,t){let e=S.zeros(Array.from(r.shape),t),n=r.size,o=e.data;if(r.isCContiguous){let a=r.data,u=r.offset;for(let i=0;i<n;i++)o[i]=Number(a[u+i])}else for(let a=0;a<n;a++)o[a]=Number(r.iget(a));return e}function Bl(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=r.offset,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(B(e)){let l=o,f=c;if(i)for(let m=0;m<a;m++){let[p,y]=Dr(l,u+m);br(f,m,p+t,y)}else for(let m=0;m<a;m++){let p=r.iget(m),y=p.re??Number(p),d=p.im??0;br(f,m,y+t,d)}}else if(E(e)){let l=c,f=BigInt(Math.round(t));if(i){let m=o;for(let p=0;p<a;p++)l[p]=m[u+p]+f}else for(let m=0;m<a;m++)l[m]=r.iget(m)+f}else if(i)if(u===0)for(let l=0;l<a;l++)c[l]=Number(o[l])+t;else for(let l=0;l<a;l++)c[l]=Number(o[u+l])+t;else for(let l=0;l<a;l++)c[l]=Number(r.iget(l))+t;return s}function Tl(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=r.offset,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(B(e)){let l=o,f=c;if(i)for(let m=0;m<a;m++){let[p,y]=Dr(l,u+m);br(f,m,p-t,y)}else for(let m=0;m<a;m++){let p=r.iget(m),y=p.re??Number(p),d=p.im??0;br(f,m,y-t,d)}}else if(E(e)){let l=c,f=BigInt(Math.round(t));if(i){let m=o;for(let p=0;p<a;p++)l[p]=m[u+p]-f}else for(let m=0;m<a;m++)l[m]=r.iget(m)-f}else if(i)for(let l=0;l<a;l++)c[l]=Number(o[u+l])-t;else for(let l=0;l<a;l++)c[l]=Number(r.iget(l))-t;return s}function El(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=r.offset,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(B(e)){let l=o,f=c;if(i)for(let m=0;m<a;m++){let[p,y]=Dr(l,u+m);br(f,m,p*t,y*t)}else for(let m=0;m<a;m++){let p=r.iget(m),y=p.re??Number(p),d=p.im??0;br(f,m,y*t,d*t)}}else if(E(e)){let l=c,f=BigInt(Math.round(t));if(i){let m=o;for(let p=0;p<a;p++)l[p]=m[u+p]*f}else for(let m=0;m<a;m++)l[m]=r.iget(m)*f}else if(i)if(u===0)for(let l=0;l<a;l++)c[l]=Number(o[l])*t;else for(let l=0;l<a;l++)c[l]=Number(o[u+l])*t;else for(let l=0;l<a;l++)c[l]=Number(r.iget(l))*t;return s}function XN(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=r.offset,i=r.isCContiguous;if(B(e)){let m=S.zeros(n,e),p=m.data;if(i){let y=o;for(let d=0;d<a;d++){let[b,A]=Dr(y,u+d);br(p,d,b/t,A/t)}}else for(let y=0;y<a;y++){let d=r.iget(y),b=d.re??Number(d),A=d.im??0;br(p,y,b/t,A/t)}return m}let c=e!=="float32"&&e!=="float64"?"float64":e,l=S.zeros(n,c),f=l.data;if(i)for(let m=0;m<a;m++)f[m]=Number(o[u+m])/t;else for(let m=0;m<a;m++)f[m]=Number(r.iget(m))/t;return l}function Rl(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=r.offset,u=r.isCContiguous;if(B(t)){let c=Bt(t),l=S.zeros(e,c),f=l.data;if(u){let m=n;for(let p=0;p<o;p++){let y=m[(a+p)*2],d=m[(a+p)*2+1];f[p]=Math.sqrt(y*y+d*d)}}else for(let m=0;m<o;m++){let p=r.iget(m),y=p.re??Number(p),d=p.im??0;f[m]=Math.sqrt(y*y+d*d)}return l}let i=S.zeros(e,t),s=i.data;if(E(t)){let c=s;if(u){let l=n;for(let f=0;f<o;f++){let m=l[a+f];c[f]=m<0n?-m:m}}else for(let l=0;l<o;l++){let f=r.iget(l);c[l]=f<0n?-f:f}}else if(u)if(a===0)for(let c=0;c<o;c++)s[c]=Math.abs(Number(n[c]));else for(let c=0;c<o;c++)s[c]=Math.abs(Number(n[a+c]));else for(let c=0;c<o;c++)s[c]=Math.abs(Number(r.iget(c)));return i}function ql(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=r.offset,u=r.isCContiguous,i=S.zeros(e,t),s=i.data;if(B(t)){let c=s;if(u){let l=n;for(let f=0;f<o;f++){let[m,p]=Dr(l,a+f);br(c,f,-m,-p)}}else for(let l=0;l<o;l++){let f=r.iget(l),m=f.re??Number(f),p=f.im??0;br(c,l,-m,-p)}}else if(E(t)){let c=s;if(u){let l=n;for(let f=0;f<o;f++)c[f]=-l[a+f]}else for(let l=0;l<o;l++)c[l]=-r.iget(l)}else if(u)if(a===0)for(let c=0;c<o;c++)s[c]=-Number(n[c]);else for(let c=0;c<o;c++)s[c]=-Number(n[a+c]);else for(let c=0;c<o;c++)s[c]=-Number(r.iget(c));return i}function Vl(r){L(r.dtype,"sign","Sign is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=r.offset,u=r.isCContiguous,i=S.zeros(e,t),s=i.data;if(E(t)){let c=s;if(u){let l=n;for(let f=0;f<o;f++){let m=l[a+f];c[f]=m>0n?1n:m<0n?-1n:0n}}else for(let l=0;l<o;l++){let f=r.iget(l);c[l]=f>0n?1n:f<0n?-1n:0n}}else if(u)for(let c=0;c<o;c++){let l=Number(n[a+c]);s[c]=l>0?1:l<0?-1:0}else for(let c=0;c<o;c++){let l=Number(r.iget(c));s[c]=l>0?1:l<0?-1:0}return i}function ko(r,t){return L(r.dtype,"mod","Modulo is not defined for complex numbers."),typeof t!="number"&&L(t.dtype,"mod","Modulo is not defined for complex numbers."),typeof t=="number"?JN(r,t):sr(r,t,(e,n)=>(e%n+n)%n,"mod")}function JN(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=r.offset,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(E(e)){let l=c,f=BigInt(Math.round(t));if(i){let m=o;for(let p=0;p<a;p++){let y=m[u+p];l[p]=(y%f+f)%f}}else for(let m=0;m<a;m++){let p=r.iget(m);l[m]=(p%f+f)%f}}else if(i)for(let l=0;l<a;l++){let f=Number(o[u+l]);c[l]=(f%t+t)%t}else for(let l=0;l<a;l++){let f=Number(r.iget(l));c[l]=(f%t+t)%t}return s}function oi(r,t){return L(r.dtype,"floor_divide","Floor division is not defined for complex numbers."),typeof t!="number"&&L(t.dtype,"floor_divide","Floor division is not defined for complex numbers."),typeof t=="number"?KN(r,t):sr(r,t,(e,n)=>Math.floor(e/n),"floor_divide")}function KN(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=r.offset,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(E(e)){let l=c,f=BigInt(Math.round(t));if(i){let m=o;for(let p=0;p<a;p++)l[p]=m[u+p]/f}else for(let m=0;m<a;m++)l[m]=r.iget(m)/f}else if(i)for(let l=0;l<a;l++)c[l]=Math.floor(Number(o[u+l])/t);else for(let l=0;l<a;l++)c[l]=Math.floor(Number(r.iget(l))/t);return s}function Pl(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=r.offset,u=r.isCContiguous,i=S.zeros(e,t),s=i.data;if(B(t)){let c=s;if(u){let l=n;for(let f=0;f<o;f++)c[f*2]=l[(a+f)*2],c[f*2+1]=l[(a+f)*2+1]}else for(let l=0;l<o;l++){let f=r.iget(l);c[l*2]=f.re??Number(f),c[l*2+1]=f.im??0}}else if(u)for(let c=0;c<o;c++)s[c]=n[a+c];else for(let c=0;c<o;c++)s[c]=r.iget(c);return i}function jl(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=r.offset,u=r.isCContiguous;if(B(t)){let f=S.zeros(e,t),m=f.data;if(u){let p=n;for(let y=0;y<o;y++){let d=p[(a+y)*2],b=p[(a+y)*2+1],A=d*d+b*b;m[y*2]=d/A,m[y*2+1]=-b/A}}else for(let p=0;p<o;p++){let y=r.iget(p),d=y.re??Number(y),b=y.im??0,A=d*d+b*b;m[p*2]=d/A,m[p*2+1]=-b/A}return f}let s=t!=="float32"&&t!=="float64"?"float64":t,c=S.zeros(e,s),l=c.data;if(u)if(a===0)for(let f=0;f<o;f++)l[f]=1/Number(n[f]);else for(let f=0;f<o;f++)l[f]=1/Number(n[a+f]);else for(let f=0;f<o;f++)l[f]=1/Number(r.iget(f));return c}function Ll(r){let t=r.dtype;L(t,"cbrt","cbrt is not supported for complex numbers.");let e=Array.from(r.shape),n=r.data,o=r.size,a=r.offset,i=t!=="float32"&&t!=="float64"?"float64":t,s=S.zeros(e,i),c=s.data;if(r.isCContiguous)for(let l=0;l<o;l++)c[l]=Math.cbrt(Number(n[a+l]));else for(let l=0;l<o;l++)c[l]=Math.cbrt(Number(r.iget(l)));return s}function Wl(r){let t=r.dtype;L(t,"fabs","fabs is only for real numbers. Use absolute() for complex.");let e=Array.from(r.shape),n=r.data,o=r.size,a=r.offset,u=t==="float32"?"float32":"float64",i=S.zeros(e,u),s=i.data;if(r.isCContiguous)if(a===0)for(let c=0;c<o;c++)s[c]=Math.abs(Number(n[c]));else for(let c=0;c<o;c++)s[c]=Math.abs(Number(n[a+c]));else for(let c=0;c<o;c++)s[c]=Math.abs(Number(r.iget(c)));return i}function Gl(r,t){let e=oi(r,t),n=ko(r,t);return[e,n]}function Yl(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=S.zeros(e,t),u=a.data;if(B(t)){let i=n,s=u;for(let c=0;c<o;c++){let l=i[c*2],f=i[c*2+1];s[c*2]=l*l-f*f,s[c*2+1]=2*l*f}}else if(E(t)){let i=n,s=u;for(let c=0;c<o;c++)s[c]=i[c]*i[c]}else for(let i=0;i<o;i++){let s=Number(n[i]);u[i]=s*s}return a}function Zl(r,t){return ko(r,t)}function Xl(r,t){L(r.dtype,"heaviside","Heaviside step function is not defined for complex numbers."),typeof t!="number"&&L(t.dtype,"heaviside","Heaviside step function is not defined for complex numbers.");let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",u=S.zeros(n,a),i=u.data;if(typeof t=="number")for(let s=0;s<o;s++){let c=Number(r.iget(s));c<0?i[s]=0:c===0?i[s]=t:i[s]=1}else{let s=t.shape;if(n.every((c,l)=>c===s[l]))for(let c=0;c<o;c++){let l=Number(r.iget(c));l<0?i[c]=0:l===0?i[c]=Number(t.iget(c)):i[c]=1}else for(let c=0;c<o;c++){let l=Number(r.iget(c)),f=c%t.size;l<0?i[c]=0:l===0?i[c]=Number(t.iget(f)):i[c]=1}}return u}function Jl(r,t){let e=r.dtype;if(B(e)){let n=r.size,o=S.zeros(Array.from(r.shape),e),a=o.data;if(typeof t=="number")if(r.isCContiguous){let u=r.data,i=r.offset;for(let s=0;s<n;s++){let c=u[(i+s)*2],l=u[(i+s)*2+1],f=Math.hypot(c,l),m=Math.atan2(l,c),p=Math.pow(f,t),y=m*t;a[s*2]=p*Math.cos(y),a[s*2+1]=p*Math.sin(y)}}else for(let u=0;u<n;u++){let i=r.iget(u),s=Math.hypot(i.re,i.im),c=Math.atan2(i.im,i.re),l=Math.pow(s,t),f=c*t;a[u*2]=l*Math.cos(f),a[u*2+1]=l*Math.sin(f)}else{let u=B(t.dtype);if(r.isCContiguous&&t.isCContiguous){let i=r.data,s=r.offset,c=t.data,l=t.offset;for(let f=0;f<n;f++){let m=i[(s+f)*2],p=i[(s+f)*2+1],y,d;if(u){let C=c;y=C[(l+f)*2],d=C[(l+f)*2+1]}else y=Number(c[l+f]),d=0;let b=Math.hypot(m,p),A=Math.atan2(p,m),g=Math.log(b),h=A,N=y*g-d*h,D=y*h+d*g,x=Math.exp(N);a[f*2]=x*Math.cos(D),a[f*2+1]=x*Math.sin(D)}}else for(let i=0;i<n;i++){let s=r.iget(i),c,l;if(u){let g=t.iget(i);c=g.re,l=g.im}else c=Number(t.iget(i)),l=0;let f=Math.hypot(s.re,s.im),m=Math.atan2(s.im,s.re),p=Math.log(f),y=m,d=c*p-l*y,b=c*y+l*p,A=Math.exp(d);a[i*2]=A*Math.cos(b),a[i*2+1]=A*Math.sin(b)}}return o}if(typeof t=="number"){let n=S.zeros(Array.from(r.shape),"float64"),o=n.data,a=r.size;if(r.isCContiguous){let u=r.data,i=r.offset;for(let s=0;s<a;s++)o[s]=Math.pow(Number(u[i+s]),t)}else for(let u=0;u<a;u++)o[u]=Math.pow(Number(r.iget(u)),t);return n}return sr(r,t,(n,o)=>Math.pow(n,o),"float_power")}function Kl(r,t){if(L(r.dtype,"fmod","fmod is not defined for complex numbers."),typeof t!="number"&&L(t.dtype,"fmod","fmod is not defined for complex numbers."),typeof t=="number"){let e=r.copy(),n=e.data,o=r.size;for(let a=0;a<o;a++){let u=Number(n[a]);n[a]=u-Math.trunc(u/t)*t}return e}return sr(r,t,(e,n)=>e-Math.trunc(e/n)*n,"fmod")}function Ql(r){L(r.dtype,"frexp","frexp is not defined for complex numbers.");let t=S.zeros(Array.from(r.shape),"float64"),e=S.zeros(Array.from(r.shape),"int32"),n=t.data,o=e.data,a=r.size;for(let u=0;u<a;u++){let i=Number(r.iget(u));if(i===0||!isFinite(i))n[u]=i,o[u]=0;else{let s=Math.floor(Math.log2(Math.abs(i)))+1,c=i/Math.pow(2,s);n[u]=c,o[u]=s}}return[t,e]}function Hl(r,t){L(r.dtype,"gcd","GCD is only defined for integers."),typeof t!="number"&&L(t.dtype,"gcd","GCD is only defined for integers.");let e=(i,s)=>{for(i=Math.abs(Math.trunc(i)),s=Math.abs(Math.trunc(s));s!==0;){let c=s;s=i%s,i=c}return i};if(typeof t=="number"){let i=S.zeros(Array.from(r.shape),"int32"),s=i.data,c=r.size,l=Math.abs(Math.trunc(t));if(r.isCContiguous){let f=r.data,m=r.offset;for(let p=0;p<c;p++)s[p]=e(Number(f[m+p]),l)}else for(let f=0;f<c;f++)s[f]=e(Number(r.iget(f)),l);return i}let n=sr(r,t,e,"gcd"),o=S.zeros(Array.from(n.shape),"int32"),a=o.data,u=n.size;if(n.isCContiguous){let i=n.data,s=n.offset;for(let c=0;c<u;c++)a[c]=Math.round(Number(i[s+c]))}else for(let i=0;i<u;i++)a[i]=Math.round(Number(n.iget(i)));return o}function rf(r,t){L(r.dtype,"lcm","LCM is only defined for integers."),typeof t!="number"&&L(t.dtype,"lcm","LCM is only defined for integers.");let e=(s,c)=>{for(s=Math.abs(Math.trunc(s)),c=Math.abs(Math.trunc(c));c!==0;){let l=c;c=s%c,s=l}return s},n=(s,c)=>(s=Math.abs(Math.trunc(s)),c=Math.abs(Math.trunc(c)),s===0||c===0?0:s*c/e(s,c));if(typeof t=="number"){let s=S.zeros(Array.from(r.shape),"int32"),c=s.data,l=r.size,f=Math.abs(Math.trunc(t));if(r.isCContiguous){let m=r.data,p=r.offset;for(let y=0;y<l;y++)c[y]=n(Number(m[p+y]),f)}else for(let m=0;m<l;m++)c[m]=n(Number(r.iget(m)),f);return s}let o=sr(r,t,n,"lcm"),a=S.zeros(Array.from(o.shape),"int32"),u=a.data,i=o.size;if(o.isCContiguous){let s=o.data,c=o.offset;for(let l=0;l<i;l++)u[l]=Math.round(Number(s[c+l]))}else for(let s=0;s<i;s++)u[s]=Math.round(Number(o.iget(s)));return a}function tf(r,t){if(L(r.dtype,"ldexp","ldexp is not defined for complex numbers."),typeof t!="number"&&L(t.dtype,"ldexp","ldexp is not defined for complex numbers."),typeof t=="number"){let e=S.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size,a=Math.pow(2,t);for(let u=0;u<o;u++)n[u]=Number(r.iget(u))*a;return e}return sr(r,t,(e,n)=>e*Math.pow(2,n),"ldexp")}function ef(r){L(r.dtype,"modf","modf is not defined for complex numbers.");let t=S.zeros(Array.from(r.shape),"float64"),e=S.zeros(Array.from(r.shape),"float64"),n=t.data,o=e.data,a=r.size;for(let u=0;u<a;u++){let i=Number(r.iget(u)),s=Math.trunc(i);o[u]=s,n[u]=i-s}return[t,e]}function nf(r,t,e){L(r.dtype,"clip","clip is not supported for complex numbers.");let n=r.dtype,o=Array.from(r.shape),a=r.size,u=S.zeros(o,n),i=u.data,s=t===null||typeof t=="number",c=e===null||typeof e=="number",l=t===null?-1/0:typeof t=="number"?t:null,f=e===null?1/0:typeof e=="number"?e:null,m=r.isCContiguous,p=r.data,y=r.offset,d=!s&&t.isCContiguous,b=s?null:t.data,A=s?0:t.offset,g=s?0:t.size,h=!c&&e.isCContiguous,N=c?null:e.data,D=c?0:e.offset,x=c?0:e.size;if(E(n)){let C=i;if(m&&(s||d)&&(c||h)){let w=p,_=b,I=N;for(let M=0;M<a;M++){let T=w[y+M],O=s?l===-1/0?T:BigInt(Math.round(l)):_[A+M%g],$=c?f===1/0?T:BigInt(Math.round(f)):I[D+M%x];T<O&&(T=O),T>$&&(T=$),C[M]=T}}else for(let w=0;w<a;w++){let _=r.iget(w),I=s?l===-1/0?_:BigInt(Math.round(l)):t.iget(w%t.size),M=c?f===1/0?_:BigInt(Math.round(f)):e.iget(w%e.size);_<I&&(_=I),_>M&&(_=M),C[w]=_}}else if(m&&(s||d)&&(c||h))for(let C=0;C<a;C++){let w=Number(p[y+C]),_=s?l:Number(b[A+C%g]),I=c?f:Number(N[D+C%x]);w<_&&(w=_),w>I&&(w=I),i[C]=w}else for(let C=0;C<a;C++){let w=Number(r.iget(C)),_=s?l:Number(t.iget(C%t.size)),I=c?f:Number(e.iget(C%e.size));w<_&&(w=_),w>I&&(w=I),i[C]=w}return u}function of(r,t){if(L(r.dtype,"maximum","maximum is not supported for complex numbers."),typeof t!="number"&&L(t.dtype,"maximum","maximum is not supported for complex numbers."),typeof t=="number"){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=S.zeros(n,e),u=a.data,i=r.data;if(E(e)){let s=u,c=i,l=BigInt(Math.round(t));for(let f=0;f<o;f++)s[f]=c[f]>l?c[f]:l}else for(let s=0;s<o;s++){let c=Number(i[s]);u[s]=isNaN(c)||isNaN(t)?NaN:Math.max(c,t)}return a}return sr(r,t,(e,n)=>isNaN(e)||isNaN(n)?NaN:Math.max(e,n),"maximum")}function af(r,t){if(L(r.dtype,"minimum","minimum is not supported for complex numbers."),typeof t!="number"&&L(t.dtype,"minimum","minimum is not supported for complex numbers."),typeof t=="number"){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=S.zeros(n,e),u=a.data,i=r.data;if(E(e)){let s=u,c=i,l=BigInt(Math.round(t));for(let f=0;f<o;f++)s[f]=c[f]<l?c[f]:l}else for(let s=0;s<o;s++){let c=Number(i[s]);u[s]=isNaN(c)||isNaN(t)?NaN:Math.min(c,t)}return a}return sr(r,t,(e,n)=>isNaN(e)||isNaN(n)?NaN:Math.min(e,n),"minimum")}function sf(r,t){if(L(r.dtype,"fmax","fmax is not supported for complex numbers."),typeof t!="number"&&L(t.dtype,"fmax","fmax is not supported for complex numbers."),typeof t=="number"){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=S.zeros(n,e),u=a.data,i=r.data;if(E(e)){let s=u,c=i,l=BigInt(Math.round(t));for(let f=0;f<o;f++)s[f]=c[f]>l?c[f]:l}else for(let s=0;s<o;s++){let c=Number(i[s]);isNaN(c)?u[s]=t:isNaN(t)?u[s]=c:u[s]=Math.max(c,t)}return a}return sr(r,t,(e,n)=>isNaN(e)?n:isNaN(n)?e:Math.max(e,n),"fmax")}function uf(r,t){if(L(r.dtype,"fmin","fmin is not supported for complex numbers."),typeof t!="number"&&L(t.dtype,"fmin","fmin is not supported for complex numbers."),typeof t=="number"){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=S.zeros(n,e),u=a.data,i=r.data;if(E(e)){let s=u,c=i,l=BigInt(Math.round(t));for(let f=0;f<o;f++)s[f]=c[f]<l?c[f]:l}else for(let s=0;s<o;s++){let c=Number(i[s]);isNaN(c)?u[s]=t:isNaN(t)?u[s]=c:u[s]=Math.min(c,t)}return a}return sr(r,t,(e,n)=>isNaN(e)?n:isNaN(n)?e:Math.min(e,n),"fmin")}function cf(r,t=0,e,n){L(r.dtype,"nan_to_num","nan_to_num is not supported for complex numbers.");let o=r.dtype,a=Array.from(r.shape),u=r.size,i=e!==void 0?e:Number.MAX_VALUE,s=n!==void 0?n:-Number.MAX_VALUE,c=S.zeros(a,o),l=c.data,f=r.data;if(E(o)){let m=l,p=f;for(let y=0;y<u;y++)m[y]=p[y]}else for(let m=0;m<u;m++){let p=Number(f[m]);isNaN(p)?l[m]=t:p===1/0?l[m]=i:p===-1/0?l[m]=s:l[m]=p}return c}function lf(r,t,e,n,o){L(r.dtype,"interp","interp is not supported for complex numbers."),L(t.dtype,"interp","interp is not supported for complex numbers."),L(e.dtype,"interp","interp is not supported for complex numbers.");let a=Array.from(r.shape),u=r.size,i=S.zeros(a,"float64"),s=i.data,c=r.data,l=t.data,f=e.data,m=t.size,p=n!==void 0?n:Number(f[0]),y=o!==void 0?o:Number(f[m-1]);for(let d=0;d<u;d++){let b=Number(c[d]);if(b<=Number(l[0])){s[d]=p;continue}if(b>=Number(l[m-1])){s[d]=y;continue}let A=0,g=m-1;for(;g-A>1;){let w=Math.floor((A+g)/2);Number(l[w])<=b?A=w:g=w}let h=Number(l[A]),N=Number(l[g]),D=Number(f[A]),x=Number(f[g]),C=(b-h)/(N-h);s[d]=D+C*(x-D)}return i}function ff(r,t=Math.PI,e=-1,n=2*Math.PI){L(r.dtype,"unwrap","unwrap is not supported for complex numbers.");let o=Array.from(r.shape),a=o.length;if(e<0&&(e+=a),e<0||e>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);if(a===1){let c=r.size,l=S.zeros(o,"float64"),f=l.data,m=r.data;if(c===0)return l;f[0]=Number(m[0]);let p=0;for(let y=1;y<c;y++){let d=Number(m[y-1]),b=Number(m[y]),A=b-d;A=(A+n/2)%n-n/2,A===-n/2&&b-d>0&&(A=n/2),Math.abs(A)>t&&(p-=Math.round((b-d-A)/n)*n),f[y]=b+p}return l}let u=S.zeros(o,"float64"),i=u.data,s=r.data;for(let c=0;c<r.size;c++)i[c]=Number(s[c]);if(a===2){let[c,l]=o;if(e===0)for(let f=0;f<l;f++){let m=0;for(let p=1;p<c;p++){let y=(p-1)*l+f,d=p*l+f,b=i[y],A=i[d],g=A-b;g=(g+n/2)%n-n/2,g===-n/2&&A-b>0&&(g=n/2),Math.abs(g)>t&&(m-=Math.round((A-b-g)/n)*n),i[d]=A+m}}else for(let f=0;f<c;f++){let m=0;for(let p=1;p<l;p++){let y=f*l+(p-1),d=f*l+p,b=i[y],A=i[d],g=A-b;g=(g+n/2)%n-n/2,g===-n/2&&A-b>0&&(g=n/2),Math.abs(g)>t&&(m-=Math.round((A-b-g)/n)*n),i[d]=A+m}}}return u}function mf(r){L(r.dtype,"sinc","sinc is not supported for complex numbers.");let t=Array.from(r.shape),e=r.size,n=S.zeros(t,"float64"),o=n.data,a=r.data;for(let u=0;u<e;u++){let i=Number(a[u]);if(i===0)o[u]=1;else{let s=Math.PI*i;o[u]=Math.sin(s)/s}}return n}function pf(r){L(r.dtype,"i0","i0 is not supported for complex numbers.");let t=Array.from(r.shape),e=r.size,n=S.zeros(t,"float64"),o=n.data,a=r.data;for(let u=0;u<e;u++){let i=Math.abs(Number(a[u]));o[u]=QN(i)}return n}function QN(r){let t=Math.abs(r);if(t<3.75){let e=r/3.75,n=e*e;return 1+n*(3.5156229+n*(3.0899424+n*(1.2067492+n*(.2659732+n*(.0360768+n*.0045813)))))}else{let e=3.75/t;return Math.exp(t)/Math.sqrt(t)*(.39894228+e*(.01328592+e*(.00225319+e*(-.00157565+e*(.00916281+e*(-.02057706+e*(.02635537+e*(-.01647633+e*.00392377))))))))}}function yf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1],m=Math.sqrt(l*l+f*f),p=Math.sqrt((m+l)/2),y=(f>=0?1:-1)*Math.sqrt((m-l)/2);u[c*2]=p,u[c*2+1]=y}}else for(let i=0;i<n;i++){let s=r.iget(i),c=s.re,l=s.im,f=Math.sqrt(c*c+l*l),m=Math.sqrt((f+c)/2),p=(l>=0?1:-1)*Math.sqrt((f-c)/2);u[i*2]=m,u[i*2+1]=p}return a}return ir(r,Math.sqrt,!1)}function df(r,t){if(typeof t=="number")return tD(r,t);let e=B(r.dtype),n=B(t.dtype);return e||n?rD(r,t):sr(r,t,Math.pow,"power")}function rD(r,t){let e=B(r.dtype),n=B(t.dtype),o=r.dtype==="complex128"||t.dtype==="complex128"||t.dtype==="float64"?"complex128":"complex64",a=Array.from(r.shape),u=r.size,i=S.zeros(a,o),s=i.data,c=r.isCContiguous,l=t.isCContiguous,f=r.offset,m=t.offset;for(let p=0;p<u;p++){let y,d;if(e)if(c){let w=r.data;y=w[(f+p)*2],d=w[(f+p)*2+1]}else{let w=r.iget(p);y=w.re,d=w.im}else y=Number(r.iget(p)),d=0;let b,A;if(n)if(l){let w=t.data;b=w[(m+p)*2],A=w[(m+p)*2+1]}else{let w=t.iget(p);b=w.re,A=w.im}else b=Number(t.iget(p)),A=0;let g=Math.sqrt(y*y+d*d),h=Math.atan2(d,y),N=Math.log(g),D=b*N-A*h,x=b*h+A*N,C=Math.exp(D);s[p*2]=C*Math.cos(x),s[p*2+1]=C*Math.sin(x)}return i}function tD(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=r.offset,i=r.isCContiguous;if(B(e)){let p=S.zeros(n,e),y=p.data;if(i){let d=o;for(let b=0;b<a;b++){let A=d[(u+b)*2],g=d[(u+b)*2+1],h=Math.sqrt(A*A+g*g),N=Math.atan2(g,A),D=Math.pow(h,t),x=N*t;y[b*2]=D*Math.cos(x),y[b*2+1]=D*Math.sin(x)}}else for(let d=0;d<a;d++){let b=r.iget(d),A=b.re,g=b.im,h=Math.sqrt(A*A+g*g),N=Math.atan2(g,A),D=Math.pow(h,t),x=N*t;y[d*2]=D*Math.cos(x),y[d*2+1]=D*Math.sin(x)}return p}let l=e!=="float32"&&e!=="float64"&&(t<0||!Number.isInteger(t))?"float64":e,f=S.zeros(n,l),m=f.data;if(E(e))if(E(l)&&Number.isInteger(t)&&t>=0)if(i){let p=o,y=m;for(let d=0;d<a;d++)y[d]=p[u+d]**BigInt(t)}else{let p=m;for(let y=0;y<a;y++)p[y]=r.iget(y)**BigInt(t)}else if(i)for(let p=0;p<a;p++)m[p]=Math.pow(Number(o[u+p]),t);else for(let p=0;p<a;p++)m[p]=Math.pow(Number(r.iget(p)),t);else if(i)for(let p=0;p<a;p++)m[p]=Math.pow(Number(o[u+p]),t);else for(let p=0;p<a;p++)m[p]=Math.pow(Number(r.iget(p)),t);return f}function bf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1],m=Math.exp(l);u[c*2]=m*Math.cos(f),u[c*2+1]=m*Math.sin(f)}}else for(let i=0;i<n;i++){let s=r.iget(i),c=s.re,l=s.im,f=Math.exp(c);u[i*2]=f*Math.cos(l),u[i*2+1]=f*Math.sin(l)}return a}return ir(r,Math.exp,!1)}function Af(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=Math.LN2,u=S.zeros(e,t),i=u.data;if(o){let s=r.data,c=r.offset;for(let l=0;l<n;l++){let f=s[(c+l)*2],m=s[(c+l)*2+1],p=Math.exp(f*a),y=m*a;i[l*2]=p*Math.cos(y),i[l*2+1]=p*Math.sin(y)}}else for(let s=0;s<n;s++){let c=r.iget(s),l=c.re,f=c.im,m=Math.exp(l*a),p=f*a;i[s*2]=m*Math.cos(p),i[s*2+1]=m*Math.sin(p)}return u}return ir(r,e=>Math.pow(2,e),!1)}function gf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1],m=Math.exp(l);u[c*2]=m*Math.cos(f)-1,u[c*2+1]=m*Math.sin(f)}}else for(let i=0;i<n;i++){let s=r.iget(i),c=s.re,l=s.im,f=Math.exp(c);u[i*2]=f*Math.cos(l)-1,u[i*2+1]=f*Math.sin(l)}return a}return ir(r,Math.expm1,!1)}function hf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1],m=Math.sqrt(l*l+f*f),p=Math.atan2(f,l);u[c*2]=Math.log(m),u[c*2+1]=p}}else for(let i=0;i<n;i++){let s=r.iget(i),c=s.re,l=s.im,f=Math.sqrt(c*c+l*l),m=Math.atan2(l,c);u[i*2]=Math.log(f),u[i*2+1]=m}return a}return ir(r,Math.log,!1)}function Nf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=1/Math.LN2,u=S.zeros(e,t),i=u.data;if(o){let s=r.data,c=r.offset;for(let l=0;l<n;l++){let f=s[(c+l)*2],m=s[(c+l)*2+1],p=Math.sqrt(f*f+m*m),y=Math.atan2(m,f);i[l*2]=Math.log(p)*a,i[l*2+1]=y*a}}else for(let s=0;s<n;s++){let c=r.iget(s),l=c.re,f=c.im,m=Math.sqrt(l*l+f*f),p=Math.atan2(f,l);i[s*2]=Math.log(m)*a,i[s*2+1]=p*a}return u}return ir(r,Math.log2,!1)}function Df(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=1/Math.LN10,u=S.zeros(e,t),i=u.data;if(o){let s=r.data,c=r.offset;for(let l=0;l<n;l++){let f=s[(c+l)*2],m=s[(c+l)*2+1],p=Math.sqrt(f*f+m*m),y=Math.atan2(m,f);i[l*2]=Math.log(p)*a,i[l*2+1]=y*a}}else for(let s=0;s<n;s++){let c=r.iget(s),l=c.re,f=c.im,m=Math.sqrt(l*l+f*f),p=Math.atan2(f,l);i[s*2]=Math.log(m)*a,i[s*2+1]=p*a}return u}return ir(r,Math.log10,!1)}function xf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1],m=1+l,p=Math.sqrt(m*m+f*f),y=Math.atan2(f,m);u[c*2]=Math.log(p),u[c*2+1]=y}}else for(let i=0;i<n;i++){let s=r.iget(i),c=s.re,l=s.im,f=1+c,m=Math.sqrt(f*f+l*l),p=Math.atan2(l,f);u[i*2]=Math.log(m),u[i*2+1]=p}return a}return ir(r,Math.log1p,!1)}function Cf(r,t){return L(r.dtype,"logaddexp","logaddexp is not supported for complex numbers."),typeof t!="number"&&L(t.dtype,"logaddexp","logaddexp is not supported for complex numbers."),typeof t=="number"?nD(r,t):eD(r,t)}function eD(r,t){let e=Gr(r.shape,t.shape),n=e.reduce((c,l)=>c*l,1),o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",i=S.zeros(e,u),s=i.data;for(let c=0;c<n;c++){let l=(E(o),Number(r.iget(c))),f=(E(a),Number(t.iget(c))),m=Math.max(l,f),p=Math.min(l,f);s[c]=m+Math.log1p(Math.exp(p-m))}return i}function nD(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=r.isCContiguous,u=e==="float32"?"float32":"float64",i=S.zeros(n,u),s=i.data;if(a){let c=r.offset;for(let l=0;l<o;l++){let f=Number(r.data[c+l]),m=Math.max(f,t),p=Math.min(f,t);s[l]=m+Math.log1p(Math.exp(p-m))}}else for(let c=0;c<o;c++){let l=Number(r.iget(c)),f=Math.max(l,t),m=Math.min(l,t);s[c]=f+Math.log1p(Math.exp(m-f))}return i}function Sf(r,t){return L(r.dtype,"logaddexp2","logaddexp2 is not supported for complex numbers."),typeof t!="number"&&L(t.dtype,"logaddexp2","logaddexp2 is not supported for complex numbers."),typeof t=="number"?aD(r,t):oD(r,t)}function oD(r,t){let e=Gr(r.shape,t.shape),n=e.reduce((l,f)=>l*f,1),o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",i=S.zeros(e,u),s=i.data,c=Math.LOG2E;for(let l=0;l<n;l++){let f=(E(o),Number(r.iget(l))),m=(E(a),Number(t.iget(l))),p=Math.max(f,m),y=Math.min(f,m);s[l]=p+Math.log1p(Math.pow(2,y-p))*c}return i}function aD(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=r.isCContiguous,u=e==="float32"?"float32":"float64",i=S.zeros(n,u),s=i.data,c=Math.LOG2E;if(a){let l=r.offset;for(let f=0;f<o;f++){let m=Number(r.data[l+f]),p=Math.max(m,t),y=Math.min(m,t);s[f]=p+Math.log1p(Math.pow(2,y-p))*c}}else for(let l=0;l<o;l++){let f=Number(r.iget(l)),m=Math.max(f,t),p=Math.min(f,t);s[l]=m+Math.log1p(Math.pow(2,p-m))*c}return i}function Ot(r,t){let e=typeof t=="number"?t:z(t);return v(Ol(z(r),e))}function Ut(r,t){let e=typeof t=="number"?t:z(t);return v(Ul(z(r),e))}function $t(r,t){let e=typeof t=="number"?t:z(t);return v($l(z(r),e))}function kt(r){return v(yf(z(r)))}function Rt(r,t){let e=typeof t=="number"?t:z(t);return v(df(z(r),e))}function qt(r){return v(bf(z(r)))}function Vt(r){return v(Af(z(r)))}function Pt(r){return v(gf(z(r)))}function jt(r){return v(hf(z(r)))}function Lt(r){return v(Nf(z(r)))}function Wt(r){return v(Df(z(r)))}function Gt(r){return v(xf(z(r)))}function Yt(r,t){let e=typeof t=="number"?t:z(t);return v(Cf(z(r),e))}function Zt(r,t){let e=typeof t=="number"?t:z(t);return v(Sf(z(r),e))}function Xt(r){return v(Rl(z(r)))}function Jt(r){return v(ql(z(r)))}function Kt(r){return v(Vl(z(r)))}function Qt(r,t){let e=typeof t=="number"?t:z(t);return v(ko(z(r),e))}function ut(r,t){let e=typeof t=="number"?t:z(t);return v(kl(z(r),e))}var Ro=ut;function Ht(r,t){let e=typeof t=="number"?t:z(t);return v(oi(z(r),e))}function re(r){return v(Pl(z(r)))}function te(r){return v(jl(z(r)))}function ee(r){return v(Ll(z(r)))}function ne(r){return v(Wl(z(r)))}function oe(r,t){let e=typeof t=="number"?t:z(t);return Fo(Gl(z(r),e))}function ae(r){return v(Yl(z(r)))}function se(r,t){let e=typeof t=="number"?t:z(t);return v(Zl(z(r),e))}function ie(r,t){let e=typeof t=="number"?t:z(t);return v(Xl(z(r),e))}function ai(r,t){let e=typeof t=="number"?t:z(t);return v(Jl(z(r),e))}function si(r,t){let e=typeof t=="number"?t:z(t);return v(Kl(z(r),e))}function ii(r){return Fo(Ql(z(r)))}function ui(r,t){let e=typeof t=="number"?t:z(t);return v(Hl(z(r),e))}function ci(r,t){let e=typeof t=="number"?t:z(t);return v(rf(z(r),e))}function li(r,t){let e=typeof t=="number"?t:z(t);return v(tf(z(r),e))}function fi(r){return Fo(ef(z(r)))}function ue(r,t,e){let n=t===null?null:typeof t=="number"?t:z(t),o=e===null?null:typeof e=="number"?e:z(e);return v(nf(z(r),n,o))}function mi(r,t){let e=typeof t=="number"?t:z(t);return v(of(z(r),e))}function pi(r,t){let e=typeof t=="number"?t:z(t);return v(af(z(r),e))}function yi(r,t){let e=typeof t=="number"?t:z(t);return v(sf(z(r),e))}function di(r,t){let e=typeof t=="number"?t:z(t);return v(uf(z(r),e))}function bi(r,t=0,e,n){return v(cf(z(r),t,e,n))}function Ai(r,t,e,n,o){return v(lf(z(r),z(t),z(e),n,o))}function gi(r,t=Math.PI,e=-1,n=2*Math.PI){return v(ff(z(r),t,e,n))}function hi(r){return v(mf(z(r)))}function Ni(r){return v(pf(z(r)))}function _f(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1];u[c*2]=Math.sin(l)*Math.cosh(f),u[c*2+1]=Math.cos(l)*Math.sinh(f)}}else for(let i=0;i<n;i++){let s=r.iget(i),c=s.re,l=s.im;u[i*2]=Math.sin(c)*Math.cosh(l),u[i*2+1]=Math.cos(c)*Math.sinh(l)}return a}return ir(r,Math.sin,!1)}function Mf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1];u[c*2]=Math.cos(l)*Math.cosh(f),u[c*2+1]=-Math.sin(l)*Math.sinh(f)}}else for(let i=0;i<n;i++){let s=r.iget(i),c=s.re,l=s.im;u[i*2]=Math.cos(c)*Math.cosh(l),u[i*2+1]=-Math.sin(c)*Math.sinh(l)}return a}return ir(r,Math.cos,!1)}function vf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1],m=Math.cos(2*l)+Math.cosh(2*f);u[c*2]=Math.sin(2*l)/m,u[c*2+1]=Math.sinh(2*f)/m}}else for(let i=0;i<n;i++){let s=r.iget(i),c=s.re,l=s.im,f=Math.cos(2*c)+Math.cosh(2*l);u[i*2]=Math.sin(2*c)/f,u[i*2+1]=Math.sinh(2*l)/f}return a}return ir(r,Math.tan,!1)}function Ff(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1],[m,p]=wf(l,f);u[c*2]=m,u[c*2+1]=p}}else for(let i=0;i<n;i++){let s=r.iget(i),[c,l]=wf(s.re,s.im);u[i*2]=c,u[i*2+1]=l}return a}return ir(r,Math.asin,!1)}function wf(r,t){let e=-t,n=r,o=r*r-t*t,a=2*r*t,u=1-o,i=-a,s=Math.sqrt(u*u+i*i),c=Math.sqrt((s+u)/2),l=(i>=0?1:-1)*Math.sqrt((s-u)/2),f=e+c,m=n+l,p=Math.sqrt(f*f+m*m),y=Math.log(p),b=Math.atan2(m,f),A=-y;return Math.abs(t)<1e-15&&r>1&&(A=-A),[b,A]}function Bf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1],[m,p]=If(l,f);u[c*2]=m,u[c*2+1]=p}}else for(let i=0;i<n;i++){let s=r.iget(i),[c,l]=If(s.re,s.im);u[i*2]=c,u[i*2+1]=l}return a}return ir(r,Math.acos,!1)}function If(r,t){let e=r*r-t*t,n=2*r*t,o=1-e,a=-n,u=Math.sqrt(o*o+a*a),i=Math.sqrt((u+o)/2),c=-((a>=0?1:-1)*Math.sqrt((u-o)/2)),l=i,f=r+c,m=t+l,p=Math.sqrt(f*f+m*m),y=Math.log(p),b=Math.atan2(m,f),A=-y;return Math.abs(t)<1e-15&&r>1&&(A=-A),[b,A]}function Tf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1],[m,p]=zf(l,f);u[c*2]=m,u[c*2+1]=p}}else for(let i=0;i<n;i++){let s=r.iget(i),[c,l]=zf(s.re,s.im);u[i*2]=c,u[i*2+1]=l}return a}return ir(r,Math.atan,!1)}function zf(r,t){let e=-t,n=r,o=1-e,a=-n,u=1+e,i=n,s=u*u+i*i,c=(o*u+a*i)/s,l=(a*u-o*i)/s,f=Math.sqrt(c*c+l*l),m=Math.log(f);return[-Math.atan2(l,c)/2,m/2]}function Ef(r,t){return L(r.dtype,"arctan2","arctan2 is only defined for real numbers."),typeof t!="number"&&L(t.dtype,"arctan2","arctan2 is only defined for real numbers."),typeof t=="number"?uD(r,t):iD(r,t)}function iD(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",i=S.zeros(e,u),s=i.data,c=r.isCContiguous,l=t.isCContiguous;if(c&&l){let f=r.offset,m=t.offset;for(let p=0;p<n;p++){let y=Number(r.data[f+p]),d=Number(t.data[m+p]);s[p]=Math.atan2(y,d)}}else if(c){let f=r.offset;for(let m=0;m<n;m++){let p=Number(r.data[f+m]),y=Number(t.iget(m));s[m]=Math.atan2(p,y)}}else if(l){let f=t.offset;for(let m=0;m<n;m++){let p=Number(r.iget(m)),y=Number(t.data[f+m]);s[m]=Math.atan2(p,y)}}else for(let f=0;f<n;f++){let m=Number(r.iget(f)),p=Number(t.iget(f));s[f]=Math.atan2(m,p)}return i}function uD(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",u=S.zeros(n,a),i=u.data;if(r.isCContiguous){let c=r.data,l=r.offset;if(E(e))for(let f=0;f<o;f++)i[f]=Math.atan2(Number(c[l+f]),t);else for(let f=0;f<o;f++)i[f]=Math.atan2(Number(c[l+f]),t)}else for(let c=0;c<o;c++)i[c]=Math.atan2(Number(r.iget(c)),t);return u}function Of(r,t){return L(r.dtype,"hypot","hypot is only defined for real numbers."),typeof t!="number"&&L(t.dtype,"hypot","hypot is only defined for real numbers."),typeof t=="number"?lD(r,t):cD(r,t)}function cD(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",i=S.zeros(e,u),s=i.data,c=r.isCContiguous,l=t.isCContiguous;if(c&&l){let f=r.offset,m=t.offset;for(let p=0;p<n;p++){let y=Number(r.data[f+p]),d=Number(t.data[m+p]);s[p]=Math.hypot(y,d)}}else if(c){let f=r.offset;for(let m=0;m<n;m++){let p=Number(r.data[f+m]),y=Number(t.iget(m));s[m]=Math.hypot(p,y)}}else if(l){let f=t.offset;for(let m=0;m<n;m++){let p=Number(r.iget(m)),y=Number(t.data[f+m]);s[m]=Math.hypot(p,y)}}else for(let f=0;f<n;f++){let m=Number(r.iget(f)),p=Number(t.iget(f));s[f]=Math.hypot(m,p)}return i}function lD(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",u=S.zeros(n,a),i=u.data;if(r.isCContiguous){let c=r.data,l=r.offset;if(E(e))for(let f=0;f<o;f++)i[f]=Math.hypot(Number(c[l+f]),t);else for(let f=0;f<o;f++)i[f]=Math.hypot(Number(c[l+f]),t)}else for(let c=0;c<o;c++)i[c]=Math.hypot(Number(r.iget(c)),t);return u}function Di(r){L(r.dtype,"degrees","degrees is only defined for real numbers.");let t=180/Math.PI;return ir(r,e=>e*t,!1)}function xi(r){L(r.dtype,"radians","radians is only defined for real numbers.");let t=Math.PI/180;return ir(r,e=>e*t,!1)}function Uf(r){return xi(r)}function $f(r){return Di(r)}function kf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=S.zeros(e,t),u=a.data;for(let i=0;i<n;i++){let s=o[i*2],c=o[i*2+1];u[i*2]=Math.sinh(s)*Math.cos(c),u[i*2+1]=Math.cosh(s)*Math.sin(c)}return a}return ir(r,Math.sinh,!1)}function Rf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=S.zeros(e,t),u=a.data;for(let i=0;i<n;i++){let s=o[i*2],c=o[i*2+1];u[i*2]=Math.cosh(s)*Math.cos(c),u[i*2+1]=Math.sinh(s)*Math.sin(c)}return a}return ir(r,Math.cosh,!1)}function qf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=S.zeros(e,t),u=a.data;for(let i=0;i<n;i++){let s=o[i*2],c=o[i*2+1],l=Math.cosh(2*s)+Math.cos(2*c);u[i*2]=Math.sinh(2*s)/l,u[i*2+1]=Math.sin(2*c)/l}return a}return ir(r,Math.tanh,!1)}function Vf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=S.zeros(e,t),u=a.data;for(let i=0;i<n;i++){let s=o[i*2],c=o[i*2+1],l=s*s-c*c,f=2*s*c,m=l+1,p=f,y=Math.sqrt(m*m+p*p),d=Math.sqrt((y+m)/2),b=(p>=0?1:-1)*Math.sqrt((y-m)/2),A=s+d,g=c+b,h=Math.sqrt(A*A+g*g);u[i*2]=Math.log(h),u[i*2+1]=Math.atan2(g,A)}return a}return ir(r,Math.asinh,!1)}function Pf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=S.zeros(e,t),u=a.data;for(let i=0;i<n;i++){let s=o[i*2],c=o[i*2+1],l=s*s-c*c,f=2*s*c,m=l-1,p=f,y=Math.sqrt(m*m+p*p),d=Math.sqrt((y+m)/2),b=(p>=0?1:-1)*Math.sqrt((y-m)/2),A=s+d,g=c+b,h=Math.sqrt(A*A+g*g),N=Math.log(h),D=Math.atan2(g,A);Math.abs(c)<1e-15&&s<1&&(D=-D),u[i*2]=N,u[i*2+1]=D}return a}return ir(r,Math.acosh,!1)}function jf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=S.zeros(e,t),u=a.data;for(let i=0;i<n;i++){let s=o[i*2],c=o[i*2+1],l=1+s,f=c,m=1-s,p=-c,y=m*m+p*p,d=(l*m+f*p)/y,b=(f*m-l*p)/y,A=Math.sqrt(d*d+b*b),g=Math.log(A),h=Math.atan2(b,d);u[i*2]=g/2,u[i*2+1]=h/2}return a}return ir(r,Math.atanh,!1)}function ce(r){return v(_f(z(r)))}function le(r){return v(Mf(z(r)))}function fe(r){return v(vf(z(r)))}function me(r){return v(Ff(z(r)))}function pe(r){return v(Bf(z(r)))}function ye(r){return v(Tf(z(r)))}function de(r,t){let e=typeof t=="number"?t:z(t);return v(Ef(z(r),e))}function be(r,t){let e=typeof t=="number"?t:z(t);return v(Of(z(r),e))}function Ae(r){return v(Di(z(r)))}function ge(r){return v(xi(z(r)))}function Ci(r){return v(Uf(z(r)))}function Si(r){return v($f(z(r)))}function he(r){return v(kf(z(r)))}function Ne(r){return v(Rf(z(r)))}function De(r){return v(qf(z(r)))}function xe(r){return v(Vf(z(r)))}function Ce(r){return v(Pf(z(r)))}function Se(r){return v(jf(z(r)))}function cr(r,t){let e=r.size,n=r.dtype,o=t.indexOf(-1),a;if(o!==-1){let c=t.reduce((f,m,p)=>p===o?f:f*m,1),l=e/c;if(!Number.isInteger(l))throw new Error(`cannot reshape array of size ${e} into shape ${JSON.stringify(t)}`);a=t.map((f,m)=>m===o?l:f)}else a=t;if(a.reduce((c,l)=>c*l,1)!==e)throw new Error(`cannot reshape array of size ${e} into shape ${JSON.stringify(a)}`);if(r.isCContiguous){let c=r.data;return S.fromData(c,a,n,lr(a),0)}let s=r.copy().data;return S.fromData(s,a,n,lr(a),0)}function Jr(r){let t=r.size,e=r.dtype,n=K(e);if(!n)throw new Error(`Cannot flatten array with dtype ${e}`);if(r.isCContiguous){let i=r.data.slice(r.offset,r.offset+t);return S.fromData(i,[t],e,[1],0)}let o=new n(t),a=E(e);for(let u=0;u<t;u++){let i=r.iget(u);o[u]=i}return S.fromData(o,[t],e,[1],0)}function ct(r){let t=r.size,e=r.dtype;if(r.isCContiguous){let n=r.data;return S.fromData(n,[t],e,[1],0)}return Jr(r)}function wi(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,u=r.dtype,i;if(t===void 0)i=Array.from({length:n},(f,m)=>n-1-m);else{if(t.length!==n)throw new Error(`axes must have length ${n}, got ${t.length}`);let f=new Set;for(let m of t){let p=m<0?n+m:m;if(p<0||p>=n)throw new Error(`axis ${m} is out of bounds for array of dimension ${n}`);if(f.has(p))throw new Error("repeated axis in transpose");f.add(p)}i=t.map(m=>m<0?n+m:m)}let s=i.map(f=>e[f]),c=Array.from(o),l=i.map(f=>c[f]);return S.fromData(a,s,u,l,r.offset)}function Ii(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,u=r.dtype;if(t===void 0){let i=[],s=[];for(let c=0;c<n;c++)e[c]!==1&&(i.push(e[c]),s.push(o[c]));return i.length===0&&(i.push(1),s.push(1)),S.fromData(a,i,u,s,r.offset)}else{let i=t<0?n+t:t;if(i<0||i>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);if(e[i]!==1)throw new Error(`cannot select an axis which has size not equal to one (axis ${t} has size ${e[i]})`);let s=[],c=[];for(let l=0;l<n;l++)l!==i&&(s.push(e[l]),c.push(o[l]));return S.fromData(a,s,u,c,r.offset)}}function we(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,u=r.dtype,i=t;if(i<0&&(i=n+t+1),i<0||i>n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n+1}`);let s=[...Array.from(e)];s.splice(i,0,1);let c=[...Array.from(o)],l=i<n?o[i]*(e[i]||1):1;return c.splice(i,0,l),S.fromData(a,s,u,c,r.offset)}function Lf(r,t,e){let n=r.shape,o=n.length,a=r.strides,u=r.data,i=r.dtype,s=t<0?o+t:t,c=e<0?o+e:e;if(s<0||s>=o)throw new Error(`axis1 ${t} is out of bounds for array of dimension ${o}`);if(c<0||c>=o)throw new Error(`axis2 ${e} is out of bounds for array of dimension ${o}`);if(s===c)return S.fromData(u,Array.from(n),i,Array.from(a),r.offset);let l=Array.from(n),f=Array.from(a);return[l[s],l[c]]=[l[c],l[s]],[f[s],f[c]]=[f[c],f[s]],S.fromData(u,l,i,f,r.offset)}function zi(r,t,e){let n=r.ndim,o=Array.isArray(t)?t:[t],a=Array.isArray(e)?e:[e];if(o.length!==a.length)throw new Error("source and destination must have the same number of elements");let u=o.map(c=>{let l=c<0?n+c:c;if(l<0||l>=n)throw new Error(`source axis ${c} is out of bounds for array of dimension ${n}`);return l}),i=a.map(c=>{let l=c<0?n+c:c;if(l<0||l>=n)throw new Error(`destination axis ${c} is out of bounds for array of dimension ${n}`);return l});if(new Set(u).size!==u.length)throw new Error("repeated axis in source");if(new Set(i).size!==i.length)throw new Error("repeated axis in destination");let s=[];for(let c=0;c<n;c++)u.includes(c)||s.push(c);for(let c=0;c<u.length;c++){let l=i[c];s.splice(l,0,u[c])}return wi(r,s)}function Yr(r,t=0){if(r.length===0)throw new Error("need at least one array to concatenate");if(r.length===1)return r[0].copy();let e=r[0],n=e.ndim,o=e.dtype,a=t<0?n+t:t;if(a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);for(let p=1;p<r.length;p++){let y=r[p];if(y.ndim!==n)throw new Error("all the input arrays must have same number of dimensions");for(let d=0;d<n;d++)if(d!==a&&y.shape[d]!==e.shape[d])throw new Error("all the input array dimensions except for the concatenation axis must match exactly")}let u=Array.from(e.shape),i=e.shape[a];for(let p=1;p<r.length;p++)i+=r[p].shape[a];u[a]=i;let s=u.reduce((p,y)=>p*y,1),c=K(o);if(!c)throw new Error(`Cannot concatenate arrays with dtype ${o}`);let l=new c(s),f=lr(u),m=0;for(let p of r){let y=p.shape[a];pD(p,l,u,f,a,m,o),m+=y}return S.fromData(l,u,o)}function pD(r,t,e,n,o,a,u){let i=r.shape,s=i.length,c=r.size,l=u==="int64"||u==="uint64";if(o===0&&r.isCContiguous&&s>0){let p=a*n[0],y=r.data,d=r.offset,b=d+c;t.set(y.subarray(d,b),p);return}if(o===1&&s===2&&r.isCContiguous){let p=i[0],y=i[1],d=e[1],b=r.data,A=r.offset;for(let g=0;g<p;g++){let h=A+g*y,N=g*d+a;t.set(b.subarray(h,h+y),N)}return}let f=new Array(s).fill(0),m=a*n[o];for(let p=0;p<c;p++){let y=r.iget(p),d=m;for(let b=0;b<s;b++)d+=f[b]*n[b];t[d]=y;for(let b=s-1;b>=0&&(f[b]++,!(f[b]<i[b]));b--)f[b]=0}}function Wf(r,t=0){if(r.length===0)throw new Error("need at least one array to stack");let e=r[0],n=e.shape,o=e.ndim,a=t<0?o+1+t:t;if(a<0||a>o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o+1}`);for(let i=1;i<r.length;i++){let s=r[i];if(s.ndim!==o)throw new Error("all input arrays must have the same shape");for(let c=0;c<o;c++)if(s.shape[c]!==n[c])throw new Error("all input arrays must have the same shape")}let u=r.map(i=>we(i,a));return Yr(u,a)}function Gf(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?cr(e,[1,e.shape[0]]):e);return Yr(t,0)}function _i(r){if(r.length===0)throw new Error("need at least one array to stack");return r.every(e=>e.ndim===1)?Yr(r,0):Yr(r,1)}function Yf(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?cr(we(cr(e,[1,e.shape[0]]),2),[1,e.shape[0],1]):e.ndim===2?we(e,2):e);return Yr(t,2)}function Zf(r,t,e=0){let n=r.shape,o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=n[a],i;if(typeof t=="number"){if(u%t!==0)throw new Error("array split does not result in an equal division");let s=u/t;i=[];for(let c=1;c<t;c++)i.push(c*s)}else i=t;return Xf(r,i,a)}function Ie(r,t,e=0){let n=r.shape,o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=n[a],i;if(typeof t=="number"){let s=t,c=Math.floor(u/s),l=u%s;i=[];let f=0;for(let m=0;m<s-1;m++)f+=c+(m<l?1:0),i.push(f)}else i=t;return Xf(r,i,a)}function Xf(r,t,e){let n=r.shape,o=n[e],a=[0,...t,o],u=[];for(let i=0;i<a.length-1;i++){let s=a[i],c=a[i+1];if(s>c)throw new Error("split indices must be in ascending order");let l=Array.from(n);l[e]=c-s;let f=r.offset+s*r.strides[e];u.push(S.fromData(r.data,l,r.dtype,Array.from(r.strides),f))}return u}function Jf(r,t){if(r.ndim<2)throw new Error("vsplit only works on arrays of 2 or more dimensions");return Ie(r,t,0)}function Kf(r,t){if(r.ndim<1)throw new Error("hsplit only works on arrays of 1 or more dimensions");let e=r.ndim===1?0:1;return Ie(r,t,e)}function Qf(r,t){let e=r.shape,n=e.length,o=r.dtype,a=Array.isArray(t)?t:[t],u=Math.max(n,a.length),i=new Array(u).fill(1),s=new Array(u).fill(1);for(let g=0;g<n;g++)i[u-n+g]=e[g];for(let g=0;g<a.length;g++)s[u-a.length+g]=a[g];let c=i.map((g,h)=>g*s[h]),l=c.reduce((g,h)=>g*h,1),f=K(o);if(!f)throw new Error(`Cannot tile array with dtype ${o}`);let m=new f(l),p=lr(c),y=r;n<u&&(y=cr(r,i));let d=o==="int64"||o==="uint64",b=y.strides,A=new Array(u).fill(0);for(let g=0;g<l;g++){let h=y.offset;for(let x=0;x<u;x++){let C=A[x]%i[x];h+=C*b[x]}let N=y.data[h],D=0;for(let x=0;x<u;x++)D+=A[x]*p[x];m[D]=N;for(let x=u-1;x>=0&&(A[x]++,!(A[x]<c[x]));x--)A[x]=0}return S.fromData(m,c,o)}function Hf(r,t,e){let n=r.shape,o=n.length,a=r.dtype,u=r.size;if(e===void 0){let g=u,h=Array.isArray(t)?t:new Array(g).fill(t);if(h.length!==g)throw new Error(`operands could not be broadcast together with shape (${g},) (${h.length},)`);let N=h.reduce((w,_)=>w+_,0),D=K(a);if(!D)throw new Error(`Cannot repeat array with dtype ${a}`);let x=new D(N),C=0;for(let w=0;w<g;w++){let _=r.iget(w),I=h[w];for(let M=0;M<I;M++)x[C++]=_}return S.fromData(x,[N],a)}let i=e<0?o+e:e;if(i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=n[i],c=Array.isArray(t)?t:new Array(s).fill(t);if(c.length!==s)throw new Error(`operands could not be broadcast together with shape (${s},) (${c.length},)`);let l=Array.from(n);l[i]=c.reduce((g,h)=>g+h,0);let f=l.reduce((g,h)=>g*h,1),m=K(a);if(!m)throw new Error(`Cannot repeat array with dtype ${a}`);let p=new m(f),y=lr(l),d=new Array(o).fill(0),b=a==="int64"||a==="uint64",A=[0];for(let g=0;g<s;g++)A.push(A[g]+c[g]);for(let g=0;g<u;g++){let h=r.iget(g),N=d[i],D=c[N],x=0;for(let _=0;_<o;_++)_!==i&&(x+=d[_]*y[_]);let C=y[i],w=A[N];for(let _=0;_<D;_++){let I=x+(w+_)*C;p[I]=h}for(let _=o-1;_>=0&&(d[_]++,!(d[_]<n[_]));_--)d[_]=0}return S.fromData(p,l,a)}function rm(r,t){let e=r.shape,n=e.length,o=r.dtype,a=r.size,u;if(t===void 0)u=new Set(Array.from({length:n},(m,p)=>p));else if(typeof t=="number"){let m=t<0?n+t:t;if(m<0||m>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);u=new Set([m])}else u=new Set(t.map(m=>{let p=m<0?n+m:m;if(p<0||p>=n)throw new Error(`axis ${m} is out of bounds for array of dimension ${n}`);return p}));let i=K(o);if(!i)throw new Error(`Cannot flip array with dtype ${o}`);let s=new i(a),c=E(o);if(n===1&&r.isCContiguous){let m=r.data,p=r.offset;for(let y=0;y<a;y++)s[y]=m[p+a-1-y];return S.fromData(s,[...e],o)}if(n===2&&r.isCContiguous){let m=e[0],p=e[1],y=r.data,d=r.offset;if(u.size===2){for(let b=0;b<a;b++)s[b]=y[d+a-1-b];return S.fromData(s,[...e],o)}if(u.size===1){if(u.has(0)){for(let b=0;b<m;b++){let A=d+(m-1-b)*p,g=b*p;for(let h=0;h<p;h++)s[g+h]=y[A+h]}return S.fromData(s,[...e],o)}else if(u.has(1)){for(let b=0;b<m;b++){let A=d+b*p,g=b*p;for(let h=0;h<p;h++)s[g+h]=y[A+p-1-h]}return S.fromData(s,[...e],o)}}}let l=new Array(n),f=new Array(n).fill(0);for(let m=0;m<a;m++){for(let d=0;d<n;d++)l[d]=u.has(d)?e[d]-1-f[d]:f[d];let p=r.offset;for(let d=0;d<n;d++)p+=l[d]*r.strides[d];let y=r.data[p];s[m]=y;for(let d=n-1;d>=0&&(f[d]++,!(f[d]<e[d]));d--)f[d]=0}return S.fromData(s,[...e],o)}function tm(r,t=1,e=[0,1]){let n=r.shape,o=n.length,a=r.dtype;if(o<2)throw new Error("Input must be at least 2-D");let u=e[0]<0?o+e[0]:e[0],i=e[1]<0?o+e[1]:e[1];if(u<0||u>=o||i<0||i>=o)throw new Error(`Axes are out of bounds for array of dimension ${o}`);if(u===i)throw new Error("Axes must be different");if(t=(t%4+4)%4,t===0)return r.copy();let s=K(a);if(!s)throw new Error(`Cannot rotate array with dtype ${a}`);let c=[...n];(t===1||t===3)&&([c[u],c[i]]=[c[i],c[u]]);let l=c.reduce((g,h)=>g*h,1),f=new s(l),m=E(a),p=r.data;if(o===2&&u===0&&i===1){let g=n[0],h=n[1];if(t===1){let N=h,D=g;if(m){let x=p,C=f;for(let w=0;w<N;w++){let _=w*D,I=h-1-w;for(let M=0;M<D;M++)C[_+M]=x[M*h+I]}}else{let x=p,C=f;for(let w=0;w<N;w++){let _=w*D,I=h-1-w;for(let M=0;M<D;M++)C[_+M]=x[M*h+I]}}}else if(t===2)if(m){let N=p,D=f;for(let x=0;x<g;x++){let C=x*h,w=(g-1-x)*h;for(let _=0;_<h;_++)D[C+_]=N[w+(h-1-_)]}}else{let N=p,D=f;for(let x=0;x<g;x++){let C=x*h,w=(g-1-x)*h;for(let _=0;_<h;_++)D[C+_]=N[w+(h-1-_)]}}else{let N=h,D=g;if(m){let x=p,C=f;for(let w=0;w<N;w++){let _=w*D;for(let I=0;I<D;I++)C[_+I]=x[(g-1-I)*h+w]}}else{let x=p,C=f;for(let w=0;w<N;w++){let _=w*D;for(let I=0;I<D;I++)C[_+I]=x[(g-1-I)*h+w]}}}return S.fromData(f,c,a)}let y=lr(c),d=lr(n),b=new Array(o).fill(0),A=new Array(o);for(let g=0;g<r.size;g++){for(let C=0;C<o;C++)A[C]=b[C];let h,N;t===1?(h=n[i]-1-b[i],N=b[u]):t===2?(h=n[u]-1-b[u],N=n[i]-1-b[i],A[u]=h,A[i]=N):(h=b[i],N=n[u]-1-b[u]),t!==2&&(A[u]=h,A[i]=N);let D=0;for(let C=0;C<o;C++)D+=A[C]*y[C];let x=0;for(let C=0;C<o;C++)x+=b[C]*d[C];if(m){let C=p,w=f;w[D]=C[x]}else{let C=p,w=f;w[D]=C[x]}for(let C=o-1;C>=0&&(b[C]++,!(b[C]<n[C]));C--)b[C]=0}return S.fromData(f,c,a)}function em(r,t,e){let n=r.shape,o=n.length,a=r.dtype,u=r.size;if(e===void 0){let y=Array.isArray(t)?t.reduce((h,N)=>h+N,0):t,d=Jr(r),b=K(a);if(!b)throw new Error(`Cannot roll array with dtype ${a}`);let A=new b(u),g=E(a);for(let h=0;h<u;h++){let N=((h-y)%u+u)%u,D=d.iget(N);A[h]=D}return S.fromData(A,[...n],a)}let i=Array.isArray(t)?t:[t],s=Array.isArray(e)?e:[e];if(i.length!==s.length)throw new Error("shift and axis must have the same length");let c=s.map(y=>{let d=y<0?o+y:y;if(d<0||d>=o)throw new Error(`axis ${y} is out of bounds for array of dimension ${o}`);return d}),l=K(a);if(!l)throw new Error(`Cannot roll array with dtype ${a}`);let f=new l(u),m=E(a),p=new Array(o).fill(0);for(let y=0;y<u;y++){let d=[...p];for(let g=0;g<c.length;g++){let h=c[g],N=n[h],D=i[g];d[h]=((d[h]-D)%N+N)%N}let b=r.offset;for(let g=0;g<o;g++)b+=d[g]*r.strides[g];let A=r.data[b];f[y]=A;for(let g=o-1;g>=0&&(p[g]++,!(p[g]<n[g]));g--)p[g]=0}return S.fromData(f,[...n],a)}function nm(r,t,e=0){let n=r.ndim,o=t<0?n+t:t;if(o<0||o>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let a=e<0?n+e:e;if(a<0||a>n)throw new Error(`start ${e} is out of bounds`);return o<a&&a--,o===a?S.fromData(r.data,Array.from(r.shape),r.dtype,Array.from(r.strides),r.offset):zi(r,o,a)}function om(r,t){if(r.ndim<3)throw new Error("dsplit only works on arrays of 3 or more dimensions");return Ie(r,t,2)}function am(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?cr(e,[e.shape[0],1]):e);return _i(t)}function sm(r,t){let e=r.dtype,n=t.reduce((s,c)=>s*c,1),o=r.size,a=K(e);if(!a)throw new Error(`Cannot resize array with dtype ${e}`);let u=new a(n),i=E(e);for(let s=0;s<n;s++){let c=s%o,l=r.iget(c);u[s]=l}return S.fromData(u,t,e)}function im(r){return r.map(t=>t.ndim===0?cr(t,[1]):t)}function um(r){return r.map(t=>t.ndim===0?cr(t,[1,1]):t.ndim===1?cr(t,[1,t.shape[0]]):t)}function cm(r){return r.map(t=>t.ndim===0?cr(t,[1,1,1]):t.ndim===1?cr(t,[1,t.shape[0],1]):t.ndim===2?cr(t,[t.shape[0],t.shape[1],1]):t)}function lm(r,t=0){let e=r.shape,n=e.length,o=t<0?n+t:t;if(o<0||o>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let a=e[o],u=[];for(let i=0;i<a;i++){let s=[];for(let f=0;f<n;f++)f===o?s.push({start:i,stop:i+1,step:1}):s.push({start:0,stop:e[f],step:1});let c=yD(r,s),l=Ii(c,o);u.push(l)}return u}function fm(r,t=1){if(r.length===0)throw new Error("need at least one array to block");return r.length===1?r[0].copy():Yr(r,-1)}function yD(r,t){let e=r.shape,n=r.strides,o=r.offset,a=r.dtype,u=r.data,i=[],s=[];for(let c=0;c<e.length;c++){let l=t[c],{start:f,stop:m,step:p}=l,y=Math.ceil((m-f)/p);i.push(y),s.push(n[c]*p),o+=f*n[c]}return S.fromData(u,i,a,s,o)}function kr(r,t){if(r instanceof U||t instanceof U){let e=r instanceof U?r:new U(Number(r),0),n=t instanceof U?t:new U(Number(t),0);return e.mul(n)}return typeof r=="bigint"&&typeof t=="bigint"?Number(r*t):Number(r)*Number(t)}function dD(r,t,e,n,o,a,u,i,s){for(let c=0;c<e;c++)for(let l=0;l<a;l++)for(let f=0;f<u;f++){let m=0;for(let p=0;p<i;p++)m+=r[t+c*i+p]*n[o+l*i*u+p*u+f];s[c*a*u+l*u+f]=m}}function bD(r,t,e,n,o,a,u,i,s,c){for(let l=0;l<e;l++)for(let f=0;f<u;f++){let m=0;for(let p=0;p<s;p++){let y=n===1?p:l*s+p,d=i===1?p:f*s+p;m+=r[t+y]*o[a+d]}c[e===1?f:l*u+f]=m}}function AD(r,t,e,n,o,a,u,i,s,c,l,f){for(let y=0;y<e*n;y++)l[y]=0;let m=r==="transpose",p=t==="transpose";if(!m&&!p)for(let y=0;y<e;y++)for(let d=0;d<n;d++){let b=0;for(let A=0;A<o;A++)b+=(u[y*i+A]??0)*(s[A*c+d]??0);l[y*f+d]=a*b}else if(m&&!p)for(let y=0;y<e;y++)for(let d=0;d<n;d++){let b=0;for(let A=0;A<o;A++)b+=(u[A*i+y]??0)*(s[A*c+d]??0);l[y*f+d]=a*b}else if(!m&&p)for(let y=0;y<e;y++)for(let d=0;d<n;d++){let b=0;for(let A=0;A<o;A++)b+=(u[y*i+A]??0)*(s[d*c+A]??0);l[y*f+d]=a*b}else for(let y=0;y<e;y++)for(let d=0;d<n;d++){let b=0;for(let A=0;A<o;A++)b+=(u[A*i+y]??0)*(s[d*c+A]??0);l[y*f+d]=a*b}}function ft(r,t){let e=r.ndim,n=t.ndim,o=B(r.dtype)||B(t.dtype);if(e===0||n===0){let a=e===0?r.get():null,u=n===0?t.get():null;if(e===0&&n===0)return kr(a,u);if(e===0){let i=or(r.dtype,t.dtype),s=S.zeros([...t.shape],i),c=(l,f)=>{let m=new Array(f.length),p=l;for(let y=f.length-1;y>=0;y--)m[y]=p%f[y],p=Math.floor(p/f[y]);return m};for(let l=0;l<t.size;l++){let f=c(l,t.shape),m=t.get(...f);s.set(f,kr(a,m))}return s}else{let i=or(r.dtype,t.dtype),s=S.zeros([...r.shape],i),c=(l,f)=>{let m=new Array(f.length),p=l;for(let y=f.length-1;y>=0;y--)m[y]=p%f[y],p=Math.floor(p/f[y]);return m};for(let l=0;l<r.size;l++){let f=c(l,r.shape),m=r.get(...f);s.set(f,kr(m,u))}return s}}if(e===1&&n===1){if(r.shape[0]!==t.shape[0])throw new Error(`dot: incompatible shapes (${r.shape[0]},) and (${t.shape[0]},)`);let a=r.shape[0];if(o){let i=0,s=0;for(let c=0;c<a;c++){let l=r.get(c),f=t.get(c),m=kr(l,f);m instanceof U?(i+=m.re,s+=m.im):i+=m}return new U(i,s)}let u=0;for(let i=0;i<a;i++){let s=r.get(i),c=t.get(i);typeof s=="bigint"&&typeof c=="bigint"?u=Number(u)+Number(s*c):u+=Number(s)*Number(c)}return u}if(e===2&&n===2)return Ar(r,t);if(e===2&&n===1){let[a,u]=r.shape,i=t.shape[0];if(u!==i)throw new Error(`dot: incompatible shapes (${a},${u}) and (${i},)`);let s=or(r.dtype,t.dtype),c=S.zeros([a],s);if(o)for(let l=0;l<a;l++){let f=0,m=0;for(let p=0;p<u;p++){let y=r.get(l,p),d=t.get(p),b=y instanceof U?y:new U(Number(y),0),A=d instanceof U?d:new U(Number(d),0);f+=b.re*A.re-b.im*A.im,m+=b.re*A.im+b.im*A.re}c.set([l],new U(f,m))}else for(let l=0;l<a;l++){let f=0;for(let m=0;m<u;m++){let p=r.get(l,m),y=t.get(m);typeof p=="bigint"&&typeof y=="bigint"?f=Number(f)+Number(p*y):f+=Number(p)*Number(y)}c.set([l],f)}return c}if(e===1&&n===2){let a=r.shape[0],[u,i]=t.shape;if(a!==u)throw new Error(`dot: incompatible shapes (${a},) and (${u},${i})`);let s=or(r.dtype,t.dtype),c=S.zeros([i],s);if(o)for(let l=0;l<i;l++){let f=0,m=0;for(let p=0;p<a;p++){let y=r.get(p),d=t.get(p,l),b=y instanceof U?y:new U(Number(y),0),A=d instanceof U?d:new U(Number(d),0);f+=b.re*A.re-b.im*A.im,m+=b.re*A.im+b.im*A.re}c.set([l],new U(f,m))}else for(let l=0;l<i;l++){let f=0;for(let m=0;m<a;m++){let p=r.get(m),y=t.get(m,l);typeof p=="bigint"&&typeof y=="bigint"?f=Number(f)+Number(p*y):f+=Number(p)*Number(y)}c.set([l],f)}return c}if(e>2&&n===1){let a=r.shape[e-1],u=t.shape[0];if(a!==u)throw new Error(`dot: incompatible shapes ${JSON.stringify(r.shape)} and (${u},)`);let i=[...r.shape.slice(0,-1)],s=or(r.dtype,t.dtype),c=S.zeros(i,s),l=i.reduce((f,m)=>f*m,1);if(o)for(let f=0;f<l;f++){let m=0,p=0,y=f,d=[];for(let b=i.length-1;b>=0;b--)d[b]=y%i[b],y=Math.floor(y/i[b]);for(let b=0;b<a;b++){let A=[...d,b],g=r.get(...A),h=t.get(b),N=g instanceof U?g:new U(Number(g),0),D=h instanceof U?h:new U(Number(h),0);m+=N.re*D.re-N.im*D.im,p+=N.re*D.im+N.im*D.re}c.set(d,new U(m,p))}else for(let f=0;f<l;f++){let m=0,p=f,y=[];for(let d=i.length-1;d>=0;d--)y[d]=p%i[d],p=Math.floor(p/i[d]);for(let d=0;d<a;d++){let b=[...y,d],A=r.get(...b),g=t.get(d);typeof A=="bigint"&&typeof g=="bigint"?m=Number(m)+Number(A*g):m+=Number(A)*Number(g)}c.set(y,m)}return c}if(e===1&&n>2){let a=r.shape[0],u=1,i=t.shape[u];if(a!==i)throw new Error(`dot: incompatible shapes (${a},) and ${JSON.stringify(t.shape)}`);let s=[...t.shape.slice(0,u),...t.shape.slice(u+1)],c=or(r.dtype,t.dtype),l=S.zeros(s,c),f=s.reduce((m,p)=>m*p,1);if(o)for(let m=0;m<f;m++){let p=m,y=[];for(let h=s.length-1;h>=0;h--)y[h]=p%s[h],p=Math.floor(p/s[h]);let d=y.slice(0,u),b=y.slice(u),A=0,g=0;for(let h=0;h<a;h++){let N=r.get(h),D=[...d,h,...b],x=t.get(...D),C=N instanceof U?N:new U(Number(N),0),w=x instanceof U?x:new U(Number(x),0);A+=C.re*w.re-C.im*w.im,g+=C.re*w.im+C.im*w.re}l.set(y,new U(A,g))}else for(let m=0;m<f;m++){let p=m,y=[];for(let g=s.length-1;g>=0;g--)y[g]=p%s[g],p=Math.floor(p/s[g]);let d=y.slice(0,u),b=y.slice(u),A=0;for(let g=0;g<a;g++){let h=r.get(g),N=[...d,g,...b],D=t.get(...N);typeof h=="bigint"&&typeof D=="bigint"?A=Number(A)+Number(h*D):A+=Number(h)*Number(D)}l.set(y,A)}return l}if(e>=2&&n>=2&&!(e===2&&n===2)){let a=r.shape[e-1],u=t.shape[n-2];if(a!==u)throw new Error(`dot: incompatible shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(t.shape)}`);let i=[...r.shape.slice(0,-1),...t.shape.slice(0,-2),t.shape[n-1]],s=or(r.dtype,t.dtype),c=S.zeros(i,s),l=r.shape.slice(0,-1).reduce((y,d)=>y*d,1),f=t.shape.slice(0,-2).reduce((y,d)=>y*d,1),m=t.shape[n-1],p=a;if(o)for(let y=0;y<l;y++)for(let d=0;d<f;d++)for(let b=0;b<m;b++){let A=0,g=0;for(let D=0;D<p;D++){let x=[],C=y;for(let $=r.shape.length-2;$>=0;$--)x.unshift(C%r.shape[$]),C=Math.floor(C/r.shape[$]);x.push(D);let w=r.get(...x),_=[],I=d;for(let $=t.shape.length-3;$>=0;$--)_.unshift(I%t.shape[$]),I=Math.floor(I/t.shape[$]);_.push(D,b);let M=t.get(..._),T=w instanceof U?w:new U(Number(w),0),O=M instanceof U?M:new U(Number(M),0);A+=T.re*O.re-T.im*O.im,g+=T.re*O.im+T.im*O.re}let h=y*f*m+d*m+b,N=c.data;N[h*2]=A,N[h*2+1]=g}else if(r.isCContiguous&&t.isCContiguous&&!E(r.dtype)&&!E(t.dtype))dD(r.data,r.offset,l,t.data,t.offset,f,m,p,c.data);else for(let y=0;y<l;y++)for(let d=0;d<f;d++)for(let b=0;b<m;b++){let A=0;for(let h=0;h<p;h++){let N=y*p+h,D=d*p*m+h*m+b,x=r.iget(N),C=t.iget(D);typeof x=="bigint"&&typeof C=="bigint"?A=Number(A)+Number(x*C):A+=Number(x)*Number(C)}let g=y*f*m+d*m+b;c.data[g]=A}return c}throw new Error(`dot: unexpected combination of dimensions ${e}D \xB7 ${n}D`)}function Ar(r,t){if(r.ndim!==2||t.ndim!==2)throw new Error("matmul requires 2D arrays");let[e=0,n=0]=r.shape,[o=0,a=0]=t.shape;if(n!==o)throw new Error(`matmul shape mismatch: (${e},${n}) @ (${o},${a})`);let u=or(r.dtype,t.dtype);if(B(u)){let D=S.zeros([e,a],u),x=D.data;for(let C=0;C<e;C++)for(let w=0;w<a;w++){let _=0,I=0;for(let T=0;T<n;T++){let O=r.iget(C*n+T),$=t.iget(T*a+w);_+=O.re*$.re-O.im*$.im,I+=O.re*$.im+O.im*$.re}let M=C*a+w;x[M*2]=_,x[M*2+1]=I}return D}let i=u.startsWith("int")||u.startsWith("uint")||u==="bool"?"float64":u;if(i!=="float64")throw new Error(`matmul currently only supports float64, got ${i}`);let s=r.dtype==="float64"?r.data:Float64Array.from(Array.from(r.data).map(Number)),c=t.dtype==="float64"?t.data:Float64Array.from(Array.from(t.data).map(Number));r.offset>0&&(s=s.subarray(r.offset)),t.offset>0&&(c=c.subarray(t.offset));let[l=0,f=0]=r.strides,[m=0,p=0]=t.strides,y=f>l,d=p>m,b=y?"transpose":"no-transpose",A=d?"transpose":"no-transpose",g,h;y?g=f:g=l,d?h=p:h=m;let N=S.zeros([e,a],"float64");return AD(b,A,e,a,n,1,s,g,c,h,N.data,a),N}function ym(r){if(r.ndim!==2)throw new Error(`trace requires 2D array, got ${r.ndim}D`);let[t=0,e=0]=r.shape,n=Math.min(t,e);if(B(r.dtype)){let a=0,u=0;for(let i=0;i<n;i++){let s=r.get(i,i);a+=s.re,u+=s.im}return new U(a,u)}let o=0;for(let a=0;a<n;a++){let u=r.get(a,a);typeof u=="bigint"?o=(typeof o=="bigint"?o:BigInt(o))+u:o=(typeof o=="bigint"?Number(o):o)+u}return o}function Qr(r,t){return wi(r,t)}function dm(r,t){let e=r.ndim,n=t.ndim,o=B(r.dtype)||B(t.dtype),a=r.shape[e-1],u=t.shape[n-1];if(a!==u)throw new Error(`inner: incompatible shapes - last dimensions ${a} and ${u} don't match`);if(e===1&&n===1)return ft(r,t);let i=[...r.shape.slice(0,-1),...t.shape.slice(0,-1)],s=or(r.dtype,t.dtype),c=S.zeros(i,s),l=e===1?1:r.shape.slice(0,-1).reduce((p,y)=>p*y,1),f=n===1?1:t.shape.slice(0,-1).reduce((p,y)=>p*y,1),m=a;if(o)for(let p=0;p<l;p++)for(let y=0;y<f;y++){let d=0,b=0;for(let h=0;h<m;h++){let N,D;if(e===1)N=r.get(h);else{let w=[],_=p,I=r.shape.slice(0,-1);for(let M=I.length-1;M>=0;M--)w.unshift(_%I[M]),_=Math.floor(_/I[M]);w.push(h),N=r.get(...w)}if(n===1)D=t.get(h);else{let w=[],_=y,I=t.shape.slice(0,-1);for(let M=I.length-1;M>=0;M--)w.unshift(_%I[M]),_=Math.floor(_/I[M]);w.push(h),D=t.get(...w)}let x=N instanceof U?N:new U(Number(N),0),C=D instanceof U?D:new U(Number(D),0);d+=x.re*C.re-x.im*C.im,b+=x.re*C.im+x.im*C.re}if(i.length===0)return new U(d,b);let A=l===1?y:p*f+y,g=c.data;g[A*2]=d,g[A*2+1]=b}else if(r.isCContiguous&&t.isCContiguous&&!E(r.dtype)&&!E(t.dtype)){if(i.length===0){let p=r.data,y=t.data,d=r.offset,b=t.offset,A=0;for(let g=0;g<m;g++)A+=p[d+g]*y[b+g];return A}bD(r.data,r.offset,l,e,t.data,t.offset,f,n,m,c.data)}else for(let p=0;p<l;p++)for(let y=0;y<f;y++){let d=0;for(let A=0;A<m;A++){let g=e===1?A:p*m+A,h=n===1?A:y*m+A,N=r.iget(g),D=t.iget(h);typeof N=="bigint"&&typeof D=="bigint"?d=Number(d)+Number(N*D):d+=Number(N)*Number(D)}if(i.length===0)return d;let b=l===1?y:p*f+y;c.data[b]=d}return c}function Fi(r,t){let e=r.ndim===1?r:ct(r),n=t.ndim===1?t:ct(t),o=e.size,a=n.size,u=or(r.dtype,t.dtype),i=S.zeros([o,a],u);for(let s=0;s<o;s++)for(let c=0;c<a;c++){let l=e.get(s),f=n.get(c),m=kr(l,f);i.set([s,c],m)}return i}function bm(r,t,e){let n,o;if(typeof e=="number"){let y=e;if(y<0)throw new Error("tensordot: axes must be non-negative");if(y>r.ndim||y>t.ndim)throw new Error("tensordot: axes exceeds array dimensions");n=Array.from({length:y},(d,b)=>r.ndim-y+b),o=Array.from({length:y},(d,b)=>b)}else if([n,o]=e,n.length!==o.length)throw new Error("tensordot: axes lists must have same length");for(let y=0;y<n.length;y++){let d=n[y],b=o[y];if(d<0||d>=r.ndim||b<0||b>=t.ndim)throw new Error("tensordot: axis out of bounds");if(r.shape[d]!==t.shape[b])throw new Error(`tensordot: shape mismatch on axes ${d} and ${b}: ${r.shape[d]} != ${t.shape[b]}`)}let a=[],u=[];for(let y=0;y<r.ndim;y++)n.includes(y)||a.push(y);for(let y=0;y<t.ndim;y++)o.includes(y)||u.push(y);let i=[...a.map(y=>r.shape[y]),...u.map(y=>t.shape[y])],s=or(r.dtype,t.dtype),c=B(s),l=y=>y instanceof U?{re:y.re,im:y.im}:{re:Number(y),im:0};if(i.length===0){let y=0,d=0,b=n.map(A=>r.shape[A]).reduce((A,g)=>A*g,1);for(let A=0;A<b;A++){let g=A,h=new Array(n.length);for(let w=n.length-1;w>=0;w--){let _=n[w];h[w]=g%r.shape[_],g=Math.floor(g/r.shape[_])}let N=new Array(r.ndim),D=new Array(t.ndim);for(let w=0;w<n.length;w++)N[n[w]]=h[w];for(let w=0;w<o.length;w++)D[o[w]]=h[w];let x=r.get(...N),C=t.get(...D);if(c){let w=l(x),_=l(C);y+=w.re*_.re-w.im*_.im,d+=w.re*_.im+w.im*_.re}else typeof x=="bigint"&&typeof C=="bigint"?y+=Number(x*C):y+=Number(x)*Number(C)}return c?new U(y,d):y}let f=S.zeros(i,s),m=i.reduce((y,d)=>y*d,1),p=n.map(y=>r.shape[y]).reduce((y,d)=>y*d,1);for(let y=0;y<m;y++){let d=y,b=[];for(let D=i.length-1;D>=0;D--)b[D]=d%i[D],d=Math.floor(d/i[D]);let A=b.slice(0,a.length),g=b.slice(a.length),h=0,N=0;for(let D=0;D<p;D++){d=D;let x=[];for(let M=n.length-1;M>=0;M--){let T=n[M];x[M]=d%r.shape[T],d=Math.floor(d/r.shape[T])}let C=new Array(r.ndim),w=new Array(t.ndim);for(let M=0;M<a.length;M++)C[a[M]]=A[M];for(let M=0;M<u.length;M++)w[u[M]]=g[M];for(let M=0;M<n.length;M++)C[n[M]]=x[M],w[o[M]]=x[M];let _=r.get(...C),I=t.get(...w);if(c){let M=l(_),T=l(I);h+=M.re*T.re-M.im*T.im,N+=M.re*T.im+M.im*T.re}else typeof _=="bigint"&&typeof I=="bigint"?h+=Number(_*I):h+=Number(_)*Number(I)}c?f.set(b,new U(h,N)):f.set(b,h)}return f}function Am(r,t=0,e=0,n=1){let o=r.shape,a=o.length;if(a<2)throw new Error("diagonal requires an array of at least two dimensions");let u=e<0?a+e:e,i=n<0?a+n:n;if(u<0||u>=a||i<0||i>=a)throw new Error("axis out of bounds");if(u===i)throw new Error("axis1 and axis2 cannot be the same");let s=o[u],c=o[i],l;t>=0?l=Math.max(0,Math.min(s,c-t)):l=Math.max(0,Math.min(s+t,c));let f=[];for(let d=0;d<a;d++)d!==u&&d!==i&&f.push(o[d]);f.push(l);let m=S.zeros(f,r.dtype),p=o.filter((d,b)=>b!==u&&b!==i),y=p.reduce((d,b)=>d*b,1);for(let d=0;d<y;d++){let b=d,A=[];for(let g=p.length-1;g>=0;g--)A.unshift(b%p[g]),b=Math.floor(b/p[g]);for(let g=0;g<l;g++){let h=new Array(a),N=0;for(let C=0;C<a;C++)C===u?h[C]=t>=0?g:g-t:C===i?h[C]=t>=0?g+t:g:h[C]=A[N++];let D=[...A,g],x=r.get(...h);m.set(D,x)}}return m}function gm(r,...t){let e=r.indexOf("->"),n,o;e===-1?(n=r,o=hm(n)):(n=r.slice(0,e),o=r.slice(e+2));let a=n.split(",").map(d=>d.trim());if(a.length!==t.length)throw new Error(`einsum: expected ${a.length} operands, got ${t.length}`);let u=new Map;for(let d=0;d<t.length;d++){let b=a[d],A=t[d];if(b.length!==A.ndim)throw new Error(`einsum: operand ${d} has ${A.ndim} dimensions but subscript '${b}' has ${b.length} indices`);for(let g=0;g<b.length;g++){let h=b[g],N=A.shape[g];if(u.has(h)){if(u.get(h)!==N)throw new Error(`einsum: size mismatch for index '${h}': ${u.get(h)} vs ${N}`)}else u.set(h,N)}}for(let d of o)if(!u.has(d))throw new Error(`einsum: output subscript contains unknown index '${d}'`);let i=new Set(o),s=new Set;for(let d of a)for(let b of d)s.add(b);let c=[];for(let d of s)i.has(d)||c.push(d);if(t.length===2&&a.length===2){let[d,b]=a,[A,g]=t;if(d.length===2&&b.length===2&&o.length===2&&A.ndim===2&&g.ndim===2){let[h,N]=[d[0],d[1]],[D,x]=[b[0],b[1]],[C,w]=[o[0],o[1]];if(h===C&&x===w&&N===D&&c.length===1&&c[0]===N||h===C&&x===w&&N===D&&c.length===1&&c[0]===N)return Ar(A,g);if(N===C&&x===w&&h===D&&c.length===1&&c[0]===h){let _=Qr(A);return Ar(_,g)}if(h===C&&D===w&&N===x&&c.length===1&&c[0]===N){let _=Qr(g);return Ar(A,_)}}if(d.length===1&&b.length===1&&d===b&&o.length===0&&A.ndim===1&&g.ndim===1)return Mi(t,a,c,u);if(d&&b&&d.length===1&&b.length===1&&o.length===2&&o===d+b&&c.length===0&&A.ndim===1&&g.ndim===1)return Fi(A,g)}if(t.length===1&&a[0].length===2&&o.length===0){let d=a[0];if(d[0]===d[1]&&t[0].ndim===2)return Mi(t,a,c,u)}let l=Array.from(o).map(d=>u.get(d));if(l.length===0)return Mi(t,a,c,u);let f=t[0].dtype;for(let d=1;d<t.length;d++)f=or(f,t[d].dtype);let m=S.zeros(l,f),p=l.reduce((d,b)=>d*b,1),y=1;for(let d of c)y*=u.get(d);for(let d=0;d<p;d++){let b=gD(d,l),A=new Map;for(let h=0;h<o.length;h++)A.set(o[h],b[h]);let g=0;for(let h=0;h<y;h++){let N=h;for(let x=c.length-1;x>=0;x--){let C=c[x],w=u.get(C);A.set(C,N%w),N=Math.floor(N/w)}let D=1;for(let x=0;x<t.length;x++){let C=t[x],w=a[x],_=[];for(let M of w)_.push(A.get(M));let I=C.get(..._);D*=Number(I)}g+=D}m.set(b,g)}return m}function hm(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 Mi(r,t,e,n){let o=!1;for(let c of r)if(B(c.dtype)){o=!0;break}let a=c=>c instanceof U?{re:c.re,im:c.im}:{re:Number(c),im:0},u=1;for(let c of e)u*=n.get(c);let i=0,s=0;for(let c=0;c<u;c++){let l=new Map,f=c;for(let y=e.length-1;y>=0;y--){let d=e[y],b=n.get(d);l.set(d,f%b),f=Math.floor(f/b)}let m=1,p=0;for(let y=0;y<r.length;y++){let d=r[y],b=t[y],A=[];for(let h of b)A.push(l.get(h));let g=d.get(...A);if(o){let h=a(g),N=m*h.re-p*h.im,D=m*h.im+p*h.re;m=N,p=D}else m*=Number(g)}i+=m,s+=p}return o?new U(i,s):i}function gD(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 Nm(r,t){let e=r.shape,n=t.shape,o=e.length,a=n.length,u=or(r.dtype,t.dtype),i=Math.max(o,a),s=new Array(i),c=new Array(i).fill(1),l=new Array(i).fill(1);for(let y=0;y<o;y++)c[i-o+y]=e[y];for(let y=0;y<a;y++)l[i-a+y]=n[y];for(let y=0;y<i;y++)s[y]=c[y]*l[y];let f=S.zeros(s,u),m=e.reduce((y,d)=>y*d,1),p=n.reduce((y,d)=>y*d,1);for(let y=0;y<m;y++){let d=y,b=new Array(o);for(let h=o-1;h>=0;h--)b[h]=d%e[h],d=Math.floor(d/e[h]);let A=new Array(i).fill(0);for(let h=0;h<o;h++)A[i-o+h]=b[h];let g=r.get(...b);for(let h=0;h<p;h++){let N=h,D=new Array(a);for(let I=a-1;I>=0;I--)D[I]=N%n[I],N=Math.floor(N/n[I]);let x=new Array(i).fill(0);for(let I=0;I<a;I++)x[i-a+I]=D[I];let C=t.get(...D),w=new Array(i);for(let I=0;I<i;I++)w[I]=A[I]*l[I]+x[I];let _=kr(g,C);f.set(w,_)}}return f}function Dm(r,t,e=-1,n=-1,o=-1,a){a!==void 0&&(e=a,n=a,o=a);let u=(w,_)=>w<0?_+w:w,i=u(e,r.ndim),s=u(n,t.ndim),c=or(r.dtype,t.dtype),l=B(c),f=(w,..._)=>{let I=w.get(..._);return I instanceof U?I:Number(I)},m=(w,_)=>{if(w instanceof U||_ instanceof U){let I=w instanceof U?w:new U(w,0),M=_ instanceof U?_:new U(_,0);return I.mul(M)}return w*_},p=(w,_)=>{if(w instanceof U||_ instanceof U){let I=w instanceof U?w:new U(w,0),M=_ instanceof U?_:new U(_,0);return I.sub(M)}return w-_};if(r.ndim===1&&t.ndim===1){let w=r.shape[0],_=t.shape[0];if(w===3&&_===3){let I=f(r,0),M=f(r,1),T=f(r,2),O=f(t,0),$=f(t,1),k=f(t,2),V=S.zeros([3],c);return V.set([0],p(m(M,k),m(T,$))),V.set([1],p(m(T,O),m(I,k))),V.set([2],p(m(I,$),m(M,O))),V}else if(w===2&&_===2){let I=f(r,0),M=f(r,1),T=f(t,0),O=f(t,1);return p(m(I,O),m(M,T))}else if(w===2&&_===3||w===3&&_===2){let I=f(r,0),M=f(r,1),T=w===3?f(r,2):l?new U(0,0):0,O=f(t,0),$=f(t,1),k=_===3?f(t,2):l?new U(0,0):0,V=S.zeros([3],c);return V.set([0],p(m(M,k),m(T,$))),V.set([1],p(m(T,O),m(I,k))),V.set([2],p(m(I,$),m(M,O))),V}else throw new Error(`cross: incompatible dimensions for cross product: ${w} and ${_}`)}let y=r.shape[i],d=t.shape[s];if(y!==2&&y!==3||d!==2&&d!==3)throw new Error(`cross: incompatible dimensions for cross product: ${y} and ${d}`);let b=y===2&&d===2?0:3,A=[...r.shape.slice(0,i),...r.shape.slice(i+1)],g=[...t.shape.slice(0,s),...t.shape.slice(s+1)];if(A.length!==g.length)throw new Error("cross: incompatible shapes for cross product");for(let w=0;w<A.length;w++)if(A[w]!==g[w])throw new Error("cross: incompatible shapes for cross product");let h=A,N=o<0?h.length+1+o:o,D;if(b===0?D=h:D=[...h.slice(0,N),b,...h.slice(N)],D.length===0)throw new Error("cross: unexpected scalar result from higher-dimensional input");let x=S.zeros(D,c),C=h.reduce((w,_)=>w*_,1);for(let w=0;w<C;w++){let _=w,I=[];for(let J=h.length-1;J>=0;J--)I[J]=_%h[J],_=Math.floor(_/h[J]);let M=[...I.slice(0,i),0,...I.slice(i)],T=[...I.slice(0,s),0,...I.slice(s)],O=J=>(M[i]=J,f(r,...M)),$=J=>(T[s]=J,f(t,...T)),k=O(0),V=O(1),j=y===3?O(2):l?new U(0,0):0,R=$(0),Y=$(1),X=d===3?$(2):l?new U(0,0):0;if(b===0)x.set(I,p(m(k,Y),m(V,R)));else{let J=p(m(V,X),m(j,Y)),rr=p(m(j,R),m(k,X)),yr=p(m(k,Y),m(V,R)),nr=(dr,Er)=>{let vN=[...I.slice(0,N),dr,...I.slice(N)];x.set(vN,Er)};nr(0,J),nr(1,rr),nr(2,yr)}}return x}function lt(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:ct(r),l=c.size,f;if(t===1/0){f=0;for(let m=0;m<l;m++)f=Math.max(f,Math.abs(Number(c.get(m))))}else if(t===-1/0){f=1/0;for(let m=0;m<l;m++)f=Math.min(f,Math.abs(Number(c.get(m))))}else if(t===0){f=0;for(let m=0;m<l;m++)Number(c.get(m))!==0&&f++}else if(t===1){f=0;for(let m=0;m<l;m++)f+=Math.abs(Number(c.get(m)))}else if(t===2){f=0;for(let m=0;m<l;m++){let p=Number(c.get(m));f+=p*p}f=Math.sqrt(f)}else{f=0;for(let m=0;m<l;m++)f+=Math.pow(Math.abs(Number(c.get(m))),t);f=Math.pow(f,1/t)}if(n){let m=new Array(r.ndim).fill(1),p=S.zeros(m,"float64");return p.set(new Array(r.ndim).fill(0),f),p}return f}let o=e<0?r.ndim+e:e;if(o<0||o>=r.ndim)throw new Error(`vector_norm: axis ${e} out of bounds for array with ${r.ndim} dimensions`);let a=n?[...r.shape.slice(0,o),1,...r.shape.slice(o+1)]:[...r.shape.slice(0,o),...r.shape.slice(o+1)];if(a.length===0)return lt(r,t,null,!1);let u=S.zeros(a,"float64"),i=r.shape[o],s=a.reduce((c,l)=>c*l,1);for(let c=0;c<s;c++){let l=c,f=[];for(let y=a.length-1;y>=0;y--)f[y]=l%a[y],l=Math.floor(l/a[y]);let m=n?[...f.slice(0,o),0,...f.slice(o+1)]:[...f.slice(0,o),0,...f.slice(o)],p;if(t===1/0){p=0;for(let y=0;y<i;y++)m[o]=y,p=Math.max(p,Math.abs(Number(r.get(...m))))}else if(t===-1/0){p=1/0;for(let y=0;y<i;y++)m[o]=y,p=Math.min(p,Math.abs(Number(r.get(...m))))}else if(t===0){p=0;for(let y=0;y<i;y++)m[o]=y,Number(r.get(...m))!==0&&p++}else if(t===1){p=0;for(let y=0;y<i;y++)m[o]=y,p+=Math.abs(Number(r.get(...m)))}else if(t===2){p=0;for(let y=0;y<i;y++){m[o]=y;let d=Number(r.get(...m));p+=d*d}p=Math.sqrt(p)}else{p=0;for(let y=0;y<i;y++)m[o]=y,p+=Math.pow(Math.abs(Number(r.get(...m))),t);p=Math.pow(p,1/t)}u.set(f,p)}return u}function Kr(r,t="fro",e=!1){if(r.ndim!==2)throw new Error(`matrix_norm: input must be 2D, got ${r.ndim}D`);let[n,o]=r.shape,a;if(t==="fro"){a=0;for(let u=0;u<n;u++)for(let i=0;i<o;i++){let s=Number(r.get(u,i));a+=s*s}a=Math.sqrt(a)}else if(t==="nuc"){let{s:u}=Zr(r);a=0;for(let i=0;i<u.size;i++)a+=Number(u.get(i))}else if(t===1){a=0;for(let u=0;u<o;u++){let i=0;for(let s=0;s<n;s++)i+=Math.abs(Number(r.get(s,u)));a=Math.max(a,i)}}else if(t===-1){a=1/0;for(let u=0;u<o;u++){let i=0;for(let s=0;s<n;s++)i+=Math.abs(Number(r.get(s,u)));a=Math.min(a,i)}}else if(t===1/0){a=0;for(let u=0;u<n;u++){let i=0;for(let s=0;s<o;s++)i+=Math.abs(Number(r.get(u,s)));a=Math.max(a,i)}}else if(t===-1/0){a=1/0;for(let u=0;u<n;u++){let i=0;for(let s=0;s<o;s++)i+=Math.abs(Number(r.get(u,s)));a=Math.min(a,i)}}else if(t===2){let{s:u}=Zr(r);a=Number(u.get(0))}else if(t===-2){let{s:u}=Zr(r);a=Number(u.get(u.size-1))}else throw new Error(`matrix_norm: invalid ord value: ${t}`);if(e){let u=S.zeros([1,1],"float64");return u.set([0,0],a),u}return a}function xm(r,t=null,e=null,n=!1){if(t===null)return e===null?lt(r,2,null,n):typeof e=="number"?lt(r,2,e,n):Kr(r,"fro",n);if(Array.isArray(e)){if(e.length!==2)throw new Error("norm: axis must be a 2-tuple for matrix norms");let o=e[0]<0?r.ndim+e[0]:e[0],a=e[1]<0?r.ndim+e[1]:e[1];if(r.ndim!==2||o!==0&&o!==1||a!==0&&a!==1||o===a)throw new Error("norm: complex axis specification not yet supported");return Kr(r,t,n)}if(r.ndim===2&&e===null&&(t==="fro"||t==="nuc"))return Kr(r,t,n);if(typeof t!="number"&&t!==null)throw new Error(`norm: ord '${t}' not valid for vector norm`);return lt(r,t??2,e,n)}function Bi(r,t="reduced"){if(r.ndim!==2)throw new Error(`qr: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape,o=Math.min(e,n),a=S.zeros([e,n],"float64");for(let p=0;p<e;p++)for(let y=0;y<n;y++)a.set([p,y],Number(r.get(p,y)));let u=[],i=[];for(let p=0;p<o;p++){let y=e-p,d=[];for(let D=p;D<e;D++)d.push(Number(a.get(D,p)));let b=0;for(let D=0;D<y;D++)b+=d[D]*d[D];if(b=Math.sqrt(b),b<1e-15){u.push(d),i.push(0);continue}let A=d[0]>=0?1:-1,g=d[0]+A*b,h=[1];for(let D=1;D<y;D++)h.push(d[D]/g);let N=A*g/b;i.push(N),u.push(h);for(let D=p;D<n;D++){let x=0;for(let C=0;C<y;C++)x+=h[C]*Number(a.get(p+C,D));for(let C=0;C<y;C++)a.set([p+C,D],Number(a.get(p+C,D))-N*h[C]*x)}}if(t==="raw"){let p=S.zeros([e,n],"float64");for(let d=0;d<e;d++)for(let b=0;b<n;b++)p.set([d,b],Number(a.get(d,b)));let y=S.zeros([o],"float64");for(let d=0;d<o;d++)y.set([d],i[d]);return{h:p,tau:y}}if(t==="r"){let p=S.zeros([o,n],"float64");for(let y=0;y<o;y++)for(let d=y;d<n;d++)p.set([y,d],Number(a.get(y,d)));return p}let s=t==="complete"?e:o,c=S.zeros([e,s],"float64");for(let p=0;p<Math.min(e,s);p++)c.set([p,p],1);for(let p=o-1;p>=0;p--){let y=u[p],d=i[p],b=e-p;for(let A=p;A<s;A++){let g=0;for(let h=0;h<b;h++)g+=y[h]*Number(c.get(p+h,A));for(let h=0;h<b;h++)c.set([p+h,A],Number(c.get(p+h,A))-d*y[h]*g)}}let l=S.zeros([e,s],"float64");for(let p=0;p<e;p++)for(let y=0;y<s;y++)l.set([p,y],Number(c.get(p,y)));let f=t==="complete"?e:o,m=S.zeros([f,n],"float64");for(let p=0;p<f;p++)for(let y=0;y<n;y++)y>=p&&m.set([p,y],Number(a.get(p,y)));return{q:l,r:m}}function Cm(r,t=!1){if(r.ndim!==2)throw new Error(`cholesky: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`cholesky: matrix must be square, got ${e}x${n}`);let o=e,a=S.zeros([o,o],"float64");for(let u=0;u<o;u++)for(let i=0;i<=u;i++){let s=0;if(u===i){for(let l=0;l<i;l++)s+=Number(a.get(i,l))**2;let c=Number(r.get(i,i))-s;if(c<0)throw new Error("cholesky: matrix is not positive definite");a.set([i,i],Math.sqrt(c))}else{for(let l=0;l<i;l++)s+=Number(a.get(u,l))*Number(a.get(i,l));let c=Number(a.get(i,i));if(Math.abs(c)<1e-15)throw new Error("cholesky: matrix is not positive definite");a.set([u,i],(Number(r.get(u,i))-s)/c)}}if(t){let u=S.zeros([o,o],"float64");for(let i=0;i<o;i++)for(let s=i;s<o;s++)u.set([i,s],Number(a.get(s,i)));return u}return a}function Zr(r){if(r.ndim!==2)throw new Error(`svd: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape,n=Math.min(t,e),o=S.zeros([e,e],"float64");for(let f=0;f<e;f++)for(let m=0;m<e;m++){let p=0;for(let y=0;y<t;y++)p+=Number(r.get(y,f))*Number(r.get(y,m));o.set([f,m],p)}let{values:a,vectors:u}=Ti(o),i=Array.from({length:e},(f,m)=>m);i.sort((f,m)=>a[m]-a[f]);let s=S.zeros([n],"float64");for(let f=0;f<n;f++){let m=a[i[f]];s.set([f],Math.sqrt(Math.max(0,m)))}let c=S.zeros([e,e],"float64");for(let f=0;f<e;f++)for(let m=0;m<e;m++)c.set([f,m],u[m][i[f]]);let l=S.zeros([t,t],"float64");for(let f=0;f<t;f++)for(let m=0;m<n;m++){let p=Number(s.get(m));if(p>1e-10){let y=0;for(let d=0;d<e;d++)y+=Number(r.get(f,d))*Number(c.get(m,d));l.set([f,m],y/p)}}if(t>n)for(let f=n;f<t;f++){let m=new Array(t).fill(0);m[f]=1;for(let y=0;y<f;y++){let d=0;for(let b=0;b<t;b++)d+=m[b]*Number(l.get(b,y));for(let b=0;b<t;b++)m[b]=m[b]-d*Number(l.get(b,y))}let p=0;for(let y=0;y<t;y++)p+=m[y]*m[y];if(p=Math.sqrt(p),p>1e-10)for(let y=0;y<t;y++)l.set([y,f],m[y]/p)}return{u:l,s,vt:c}}function Ti(r){let t=r.shape[0],e=100*t*t,n=1e-10,o=[];for(let i=0;i<t;i++){o.push([]);for(let s=0;s<t;s++)o[i].push(Number(r.get(i,s)))}let a=[];for(let i=0;i<t;i++){a.push([]);for(let s=0;s<t;s++)a[i].push(i===s?1:0)}for(let i=0;i<e;i++){let s=0,c=0,l=1;for(let h=0;h<t;h++)for(let N=h+1;N<t;N++)Math.abs(o[h][N])>s&&(s=Math.abs(o[h][N]),c=h,l=N);if(s<n)break;let f=o[c][c],m=o[l][l],p=o[c][l],y;Math.abs(f-m)<1e-15?y=Math.PI/4:y=.5*Math.atan2(2*p,m-f);let d=Math.cos(y),b=Math.sin(y),A=d*d*f+b*b*m-2*b*d*p,g=b*b*f+d*d*m+2*b*d*p;o[c][c]=A,o[l][l]=g,o[c][l]=0,o[l][c]=0;for(let h=0;h<t;h++)if(h!==c&&h!==l){let N=o[h][c],D=o[h][l];o[h][c]=d*N-b*D,o[c][h]=o[h][c],o[h][l]=b*N+d*D,o[l][h]=o[h][l]}for(let h=0;h<t;h++){let N=a[h][c],D=a[h][l];a[h][c]=d*N-b*D,a[h][l]=b*N+d*D}}let u=[];for(let i=0;i<t;i++)u.push(o[i][i]);return{values:u,vectors:a}}function Ei(r,t=!0,e=!0){let n=Zr(r);if(!e)return n.s;if(!t){let[o,a]=r.shape,u=Math.min(o,a),i=S.zeros([o,u],"float64");for(let c=0;c<o;c++)for(let l=0;l<u;l++)i.set([c,l],Number(n.u.get(c,l)));let s=S.zeros([u,a],"float64");for(let c=0;c<u;c++)for(let l=0;l<a;l++)s.set([c,l],Number(n.vt.get(c,l)));return{u:i,s:n.s,vt:s}}return n}function Sm(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}=qo(r),i=a.data,s=u;for(let c=0;c<n;c++)s*=i[c*n+c];return s}function qo(r){let[t,e]=r.shape,n=t,o=e,a=S.zeros([n,o],"float64"),u=a.data,i=r.data;for(let l=0;l<n*o;l++)u[l]=Number(i[l]);let s=Array.from({length:n},(l,f)=>f),c=1;for(let l=0;l<Math.min(n,o);l++){let f=Math.abs(u[l*o+l]),m=l;for(let y=l+1;y<n;y++){let d=Math.abs(u[y*o+l]);d>f&&(f=d,m=y)}if(m!==l){for(let d=0;d<o;d++){let b=u[l*o+d];u[l*o+d]=u[m*o+d],u[m*o+d]=b}let y=s[l];s[l]=s[m],s[m]=y,c=-c}let p=u[l*o+l];if(Math.abs(p)>1e-15)for(let y=l+1;y<n;y++){let d=u[y*o+l]/p;u[y*o+l]=d;for(let b=l+1;b<o;b++)u[y*o+b]=u[y*o+b]-d*u[l*o+b]}}return{lu:a,piv:s,sign:c}}function ze(r){if(r.ndim!==2)throw new Error(`inv: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape;if(t!==e)throw new Error(`inv: matrix must be square, got ${t}x${e}`);let n=t,{lu:o,piv:a}=qo(r),u=o.data,i=S.zeros([n,n],"float64"),s=i.data;for(let c=0;c<n;c++){let l=new Float64Array(n);for(let f=0;f<n;f++){let m=a[f]===c?1:0;for(let p=0;p<f;p++)m-=u[f*n+p]*l[p];l[f]=m}for(let f=n-1;f>=0;f--){let m=l[f];for(let y=f+1;y<n;y++)m-=u[f*n+y]*s[y*n+c];let p=u[f*n+f];if(Math.abs(p)<1e-15)throw new Error("inv: singular matrix");s[f*n+c]=m/p}}return i}function pm(r,t){let[e]=r.shape,n=e,{lu:o,piv:a}=qo(r),u=o.data,i=t.data,s=new Float64Array(n);for(let m=0;m<n;m++)s[m]=Number(i[a[m]]);let c=new Float64Array(n);for(let m=0;m<n;m++){let p=s[m];for(let y=0;y<m;y++)p-=u[m*n+y]*c[y];c[m]=p}let l=S.zeros([n],"float64"),f=l.data;for(let m=n-1;m>=0;m--){let p=c[m];for(let d=m+1;d<n;d++)p-=u[m*n+d]*f[d];let y=u[m*n+m];if(Math.abs(y)<1e-15)throw new Error("solve: singular matrix");f[m]=p/y}return l}function Oi(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 pm(r,t)}if(t.ndim===2){if(t.shape[0]!==o)throw new Error(`solve: incompatible shapes (${e},${n}) and (${t.shape[0]},${t.shape[1]})`);let a=t.shape[1],u=S.zeros([o,a],"float64");for(let i=0;i<a;i++){let s=S.zeros([o],"float64");for(let l=0;l<o;l++)s.set([l],Number(t.get(l,i)));let c=pm(r,s);for(let l=0;l<o;l++)u.set([l,i],Number(c.get(l)))}return u}throw new Error(`solve: b must be 1D or 2D, got ${t.ndim}D`)}function wm(r,t,e=null){if(r.ndim!==2)throw new Error(`lstsq: coefficient matrix must be 2D, got ${r.ndim}D`);let[n,o]=r.shape,{u:a,s:u,vt:i}=Zr(r),s=Math.min(n,o),c=e??Math.max(n,o)*Number.EPSILON,f=Number(u.get(0))*c,m=0;for(let g=0;g<s;g++)Number(u.get(g))>f&&m++;let p=t.ndim===1?cr(t,[t.size,1]):t,y=p.shape[1];if(p.shape[0]!==n)throw new Error(`lstsq: incompatible shapes (${n},${o}) and (${t.shape.join(",")})`);let d=S.zeros([o,y],"float64");for(let g=0;g<y;g++){let h=new Array(n).fill(0);for(let N=0;N<n;N++)for(let D=0;D<n;D++)h[N]+=Number(a.get(D,N))*Number(p.get(D,g));for(let N=0;N<o;N++){let D=0;for(let x=0;x<s;x++){let C=Number(u.get(x));C>f&&(D+=Number(i.get(x,N))*h[x]/C)}d.set([N,g],D)}}let b;if(n>o){b=S.zeros([y],"float64");for(let g=0;g<y;g++){let h=0;for(let N=0;N<n;N++){let D=0;for(let C=0;C<o;C++)D+=Number(r.get(N,C))*Number(d.get(C,g));let x=D-Number(p.get(N,g));h+=x*x}b.set([g],h)}}else b=S.zeros([0],"float64");return{x:t.ndim===1?cr(d,[o]):d,residuals:b,rank:m,s:u}}function Im(r,t=2){if(r.ndim!==2)throw new Error(`cond: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(t===2||t===-2){let{s:i}=Zr(r),s=Math.min(e,n),c=Number(i.get(0)),l=Number(i.get(s-1));return t===2?l>0?c/l:1/0:c>0?l/c:0}if(e!==n)throw new Error(`cond: matrix must be square for p=${t}`);let o=Kr(r,t),a=ze(r),u=Kr(a,t);return o*u}function zm(r,t){if(r.ndim===0)return Number(r.get())!==0?1:0;if(r.ndim===1){for(let u=0;u<r.size;u++)if(Number(r.get(u))!==0)return 1;return 0}if(r.ndim!==2)throw new Error(`matrix_rank: input must be at most 2D, got ${r.ndim}D`);let{s:e}=Zr(r),n=Number(e.get(0)),o=t??n*Math.max(r.shape[0],r.shape[1])*Number.EPSILON,a=0;for(let u=0;u<e.size;u++)Number(e.get(u))>o&&a++;return a}function _m(r,t){if(r.ndim!==2)throw new Error(`matrix_power: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`matrix_power: matrix must be square, got ${e}x${n}`);let o=e;if(!Number.isInteger(t))throw new Error("matrix_power: exponent must be an integer");if(t===0){let c=S.zeros([o,o],"float64");for(let l=0;l<o;l++)c.set([l,l],1);return c}let a=r,u=t;t<0&&(a=ze(r),u=-t);let i=S.zeros([o,o],"float64");for(let c=0;c<o;c++)i.set([c,c],1);let s=S.zeros([o,o],"float64");for(let c=0;c<o;c++)for(let l=0;l<o;l++)s.set([c,l],Number(a.get(c,l)));for(;u>0;)u&1&&(i=Ar(i,s)),s=Ar(s,s),u>>=1;return i}function Mm(r,t=1e-15){if(r.ndim!==2)throw new Error(`pinv: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape,{u:o,s:a,vt:u}=Zr(r),i=Math.min(e,n),c=Number(a.get(0))*t,l=S.zeros([n,e],"float64");for(let f=0;f<n;f++)for(let m=0;m<e;m++){let p=0;for(let y=0;y<i;y++){let d=Number(a.get(y));d>c&&(p+=Number(u.get(y,f))*Number(o.get(m,y))/d)}l.set([f,m],p)}return l}function Ui(r){if(r.ndim!==2)throw new Error(`eig: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape;if(t!==e)throw new Error(`eig: matrix must be square, got ${t}x${e}`);let n=t,o=!0;r:for(let l=0;l<n;l++)for(let f=l+1;f<n;f++)if(Math.abs(Number(r.get(l,f))-Number(r.get(f,l)))>1e-10){o=!1;break r}if(o){let{values:l,vectors:f}=Ti(r),m=S.zeros([n],"float64"),p=S.zeros([n,n],"float64");for(let y=0;y<n;y++){m.set([y],l[y]);for(let d=0;d<n;d++)p.set([d,y],f[d][y])}return{w:m,v:p}}let{values:a,vectors:u,hasComplexEigenvalues:i}=hD(r);i&&console.warn("numpy-ts: eig() detected complex eigenvalues which cannot be represented. Results are real approximations and may be inaccurate. For symmetric matrices, use eigh() instead.");let s=S.zeros([n],"float64"),c=S.zeros([n,n],"float64");for(let l=0;l<n;l++){s.set([l],a[l]);for(let f=0;f<n;f++)c.set([f,l],u[f][l])}return{w:s,v:c}}function hD(r){let t=r.shape[0],e=1e3,n=1e-10,o=S.zeros([t,t],"float64");for(let c=0;c<t;c++)for(let l=0;l<t;l++)o.set([c,l],Number(r.get(c,l)));let a=S.zeros([t,t],"float64");for(let c=0;c<t;c++)a.set([c,c],1);for(let c=0;c<e;c++){let l=0;for(let y=0;y<t;y++)for(let d=0;d<t;d++)y!==d&&(l+=Number(o.get(y,d))**2);if(Math.sqrt(l)<n*t)break;let f=Bi(o,"reduced"),m=f.q,p=f.r;o=Ar(p,m),a=Ar(a,m)}let u=!1;for(let c=0;c<t-1;c++){let l=Math.abs(Number(o.get(c+1,c))),f=Math.abs(Number(o.get(c,c))),m=Math.abs(Number(o.get(c+1,c+1))),p=Math.max(f,m,1e-10);if(l/p>1e-6){u=!0;break}}let i=[];for(let c=0;c<t;c++)i.push(Number(o.get(c,c)));let s=[];for(let c=0;c<t;c++){s.push([]);for(let l=0;l<t;l++)s[c].push(Number(a.get(c,l)))}return{values:i,vectors:s,hasComplexEigenvalues:u}}function $i(r,t="L"){if(r.ndim!==2)throw new Error(`eigh: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`eigh: matrix must be square, got ${e}x${n}`);let o=e,a=S.zeros([o,o],"float64");for(let f=0;f<o;f++)for(let m=0;m<o;m++)t==="L"?f>=m&&(a.set([f,m],Number(r.get(f,m))),a.set([m,f],Number(r.get(f,m)))):m>=f&&(a.set([f,m],Number(r.get(f,m))),a.set([m,f],Number(r.get(f,m))));let{values:u,vectors:i}=Ti(a),s=Array.from({length:o},(f,m)=>m);s.sort((f,m)=>u[f]-u[m]);let c=S.zeros([o],"float64"),l=S.zeros([o,o],"float64");for(let f=0;f<o;f++){c.set([f],u[s[f]]);for(let m=0;m<o;m++)l.set([m,f],i[m][s[f]])}return{w:c,v:l}}function vm(r){let{w:t}=Ui(r);return t}function Fm(r,t="L"){let{w:e}=$i(r,t);return e}function Bm(r,t){let e=Jr(r),n=Jr(t),o=e.shape[0],a=n.shape[0];if(o!==a)throw new Error(`vdot: arrays must have same number of elements, got ${o} and ${a}`);if(B(r.dtype)||B(t.dtype)){let s=0,c=0;for(let l=0;l<o;l++){let f=e.get(l),m=n.get(l),p=f instanceof U?f.re:Number(f),y=f instanceof U?-f.im:0,d=m instanceof U?m.re:Number(m),b=m instanceof U?m.im:0;s+=p*d+y*b,c+=p*b-y*d}return Math.abs(c)<1e-15?s:new U(s,c)}let i=0;for(let s=0;s<o;s++){let c=e.get(s),l=n.get(s);typeof c=="bigint"&&typeof l=="bigint"?i=(typeof i=="bigint"?i:BigInt(i))+c*l:i=(typeof i=="bigint"?Number(i):i)+Number(c)*Number(l)}return i}function Tm(r,t,e=-1){let n=r.ndim,o=t.ndim,a=e<0?n+e:e,u=e<0?o+e:e;if(a<0||a>=n)throw new Error(`vecdot: axis ${e} out of bounds for array with ${n} dimensions`);if(u<0||u>=o)throw new Error(`vecdot: axis ${e} out of bounds for array with ${o} dimensions`);let i=r.shape[a],s=t.shape[u];if(i!==s)throw new Error(`vecdot: axis dimensions must match, got ${i} and ${s}`);if(n===1&&o===1)return ft(r,t);let c=[...r.shape.slice(0,a),...r.shape.slice(a+1)],l=[...t.shape.slice(0,u),...t.shape.slice(u+1)],f=i,m=B(r.dtype)||B(t.dtype),p=or(r.dtype,t.dtype),y=c.length>l.length?c:l;if(y.length===0){let A=m?new U(0,0):0;for(let g=0;g<f;g++){let h=r.get(g),N=t.get(g),D=kr(h,N);if(A instanceof U||D instanceof U){let x=A instanceof U?A:new U(Number(A),0),C=D instanceof U?D:new U(Number(D),0);A=x.add(C)}else typeof A=="bigint"||typeof D=="bigint"?A=BigInt(A)+BigInt(D):A=A+D}return A}let d=S.zeros(y,p),b=y.reduce((A,g)=>A*g,1);for(let A=0;A<b;A++){let g=[],h=A;for(let C=y.length-1;C>=0;C--)g.unshift(h%y[C]),h=Math.floor(h/y[C]);let N=[...g.slice(0,a),0,...g.slice(a)],D=[...g.slice(0,u),0,...g.slice(u)],x=m?new U(0,0):0;for(let C=0;C<f;C++){N[a]=C,D[u]=C;let w=r.get(...N),_=t.get(...D),I=kr(w,_);if(x instanceof U||I instanceof U){let M=x instanceof U?x:new U(Number(x),0),T=I instanceof U?I:new U(Number(I),0);x=M.add(T)}else typeof x=="bigint"||typeof I=="bigint"?x=BigInt(x)+BigInt(I):x=x+I}d.set(g,x)}return d}function Em(r){if(r.ndim<2)throw new Error(`matrix_transpose: input must have at least 2 dimensions, got ${r.ndim}D`);let t=Array.from({length:r.ndim},(n,o)=>o),e=t.length-1;return t[e]=e-1,t[e-1]=e,Qr(r,t)}function Om(r,t){return Qr(r,t)}function Um(r,t){if(r.ndim<2)throw new Error(`matvec: x1 must have at least 2 dimensions, got ${r.ndim}D`);if(t.ndim<1)throw new Error(`matvec: x2 must have at least 1 dimension, got ${t.ndim}D`);let e=r.shape[r.ndim-2],n=r.shape[r.ndim-1],o=t.shape[t.ndim-1];if(n!==o)throw new Error(`matvec: last axis of x1 (${n}) must match last axis of x2 (${o})`);if(r.ndim===2&&t.ndim===1)return ft(r,t);let a=r.shape.slice(0,-2),u=t.shape.slice(0,-1),i=Math.max(a.length,u.length),s=[...Array(i-a.length).fill(1),...a],c=[...Array(i-u.length).fill(1),...u],l=[];for(let b=0;b<i;b++){let A=s[b],g=c[b];if(A!==1&&g!==1&&A!==g)throw new Error(`matvec: batch dimensions not broadcastable: ${a} vs ${u}`);l.push(Math.max(A,g))}let f=[...l,e],m=or(r.dtype,t.dtype),p=S.zeros(f,m),y=B(m),d=l.reduce((b,A)=>b*A,1);for(let b=0;b<d;b++){let A=[],g=b;for(let D=l.length-1;D>=0;D--)A.unshift(g%l[D]),g=Math.floor(g/l[D]);let h=A.slice(-(a.length||1)).map((D,x)=>(a[x]??1)===1?0:D),N=A.slice(-(u.length||1)).map((D,x)=>(u[x]??1)===1?0:D);for(let D=0;D<e;D++){let x=y?new U(0,0):0;for(let w=0;w<n;w++){let _=[...h,D,w],I=[...N,w],M=r.get(..._),T=t.get(...I),O=kr(M,T);if(x instanceof U||O instanceof U){let $=x instanceof U?x:new U(Number(x),0),k=O instanceof U?O:new U(Number(O),0);x=$.add(k)}else typeof x=="bigint"||typeof O=="bigint"?x=BigInt(x)+BigInt(O):x=x+O}let C=[...A,D];p.set(C,x)}}return p}function $m(r,t){if(r.ndim<1)throw new Error(`vecmat: x1 must have at least 1 dimension, got ${r.ndim}D`);if(t.ndim<2)throw new Error(`vecmat: x2 must have at least 2 dimensions, got ${t.ndim}D`);let e=r.shape[r.ndim-1],n=t.shape[t.ndim-2],o=t.shape[t.ndim-1];if(e!==n)throw new Error(`vecmat: last axis of x1 (${e}) must match second-to-last axis of x2 (${n})`);if(r.ndim===1&&t.ndim===2)return ft(r,t);let a=r.shape.slice(0,-1),u=t.shape.slice(0,-2),i=Math.max(a.length,u.length),s=[...Array(i-a.length).fill(1),...a],c=[...Array(i-u.length).fill(1),...u],l=[];for(let b=0;b<i;b++){let A=s[b],g=c[b];if(A!==1&&g!==1&&A!==g)throw new Error(`vecmat: batch dimensions not broadcastable: ${a} vs ${u}`);l.push(Math.max(A,g))}let f=[...l,o],m=or(r.dtype,t.dtype),p=S.zeros(f,m),y=B(m),d=l.reduce((b,A)=>b*A,1);for(let b=0;b<d;b++){let A=[],g=b;for(let D=l.length-1;D>=0;D--)A.unshift(g%l[D]),g=Math.floor(g/l[D]);let h=A.slice(-(a.length||1)).map((D,x)=>(a[x]??1)===1?0:D),N=A.slice(-(u.length||1)).map((D,x)=>(u[x]??1)===1?0:D);for(let D=0;D<o;D++){let x=y?new U(0,0):0;for(let w=0;w<e;w++){let _=[...h,w],I=[...N,w,D],M=r.get(..._),T=t.get(...I),O=kr(M,T);if(x instanceof U||O instanceof U){let $=x instanceof U?x:new U(Number(x),0),k=O instanceof U?O:new U(Number(O),0);x=$.add(k)}else typeof x=="bigint"||typeof O=="bigint"?x=BigInt(x)+BigInt(O):x=x+O}let C=[...A,D];p.set(C,x)}}return p}function km(r){if(r.ndim!==2)throw new Error(`slogdet: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape;if(t!==e)throw new Error(`slogdet: matrix must be square, got ${t}x${e}`);let n=t;if(n===0)return{sign:1,logabsdet:0};let{lu:o,sign:a}=qo(r),u=o.data,i=0,s=a;for(let c=0;c<n;c++){let l=u[c*n+c];if(l===0)return{sign:0,logabsdet:-1/0};l<0&&(s=-s),i+=Math.log(Math.abs(l))}return{sign:s,logabsdet:i}}function Rm(r){return Ei(r,!0,!1)}function qm(r){if(r.length<2)throw new Error("multi_dot: need at least 2 arrays");if(r.length===2)return Ar(r[0],r[1]);let t=r[0];for(let e=1;e<r.length;e++)t=Ar(t,r[e]);return t}function Vm(r,t=2){if(t<=0)throw new Error(`tensorinv: ind must be positive, got ${t}`);let e=r.shape,n=r.ndim;if(n<t)throw new Error(`tensorinv: array has ${n} dimensions, ind=${t} is too large`);let o=1;for(let c=0;c<t;c++)o*=e[c];let a=1;for(let c=t;c<n;c++)a*=e[c];if(o!==a)throw new Error(`tensorinv: product of first ${t} dimensions (${o}) must equal product of remaining dimensions (${a})`);let u=cr(r,[o,a]),i=ze(u),s=[...e.slice(t),...e.slice(0,t)];return cr(i,s)}function Pm(r,t,e){let n=r.shape,o=t.shape,a=r.ndim,u=t.ndim,i;e==null?i=Array.from({length:u},(h,N)=>a-u+N):i=e.map(h=>h<0?a+h:h);let s=[];for(let h=0;h<a;h++)i.includes(h)||s.push(h);let c=[...s,...i],l=Qr(r,c),m=i.map(h=>n[h]).reduce((h,N)=>h*N,1),y=s.map(h=>n[h]).reduce((h,N)=>h*N,1),d=o.reduce((h,N)=>h*N,1);if(m!==d)throw new Error(`tensorsolve: dimensions don't match - sum dimensions product (${m}) != b total elements (${d})`);if(y!==m)throw new Error(`tensorsolve: non-square problem - other dimensions product (${y}) != sum dimensions product (${m})`);let b=cr(l,[y,m]),A=cr(t,[m]),g=Oi(b,A);return cr(g,[...o])}function jm(r,...t){let e=r.indexOf("->"),n,o;e===-1?(n=r,o=hm(n)):(n=r.slice(0,e),o=r.slice(e+2));let a=n.split(",").map(m=>m.trim());if(a.length!==t.length)throw new Error(`einsum_path: expected ${a.length} operands, got ${t.length}`);let u=t.map(m=>Array.isArray(m)?m:Array.from(m.shape)),i=new Map;for(let m=0;m<t.length;m++){let p=a[m],y=u[m];if(p.length!==y.length)throw new Error(`einsum_path: operand ${m} has ${y.length} dimensions but subscript '${p}' has ${p.length} indices`);for(let d=0;d<p.length;d++){let b=p[d],A=y[d];if(i.has(b)&&i.get(b)!==A)throw new Error(`einsum_path: size mismatch for index '${b}': ${i.get(b)} vs ${A}`);i.set(b,A)}}if(t.length===1){let m=[[0]];return[m,vi(r,u,m,i)]}if(t.length===2){let m=[[0,1]];return[m,vi(r,u,m,i)]}let s=[],c=[...a],l=[...u],f=t.map((m,p)=>p);for(;c.length>1;){let m=0,p=1,y=1/0;for(let A=0;A<c.length;A++)for(let g=A+1;g<c.length;g++){let h=ND(c[A],c[g],l[A],l[g],o,i);h<y&&(y=h,m=A,p=g)}s.push([f[m],f[p]]);let[d,b]=DD(c[m],c[p],l[m],l[p],o,i);c.splice(p,1),c.splice(m,1),l.splice(p,1),l.splice(m,1),f.splice(p,1),f.splice(m,1),c.push(d),l.push(b),f.push(-1)}return[s,vi(r,u,s,i)]}function ND(r,t,e,n,o,a){let u=new Set(r),i=new Set(t),s=1;for(let c of u)s*=a.get(c)||1;for(let c of i)u.has(c)||(s*=a.get(c)||1);return s}function DD(r,t,e,n,o,a){let u=new Set([...r,...t]),i=new Map;for(let f of r)i.set(f,(i.get(f)||0)+1);for(let f of t)i.set(f,(i.get(f)||0)+1);let s=new Set(o),c=[];for(let f of u)(s.has(f)||i.get(f)===1)&&c.push(f);c.sort();let l=c.map(f=>a.get(f));return[c.join(""),l]}function vi(r,t,e,n){let o=[];o.push(" Complete contraction: "+r),o.push(" Operand shapes: "+t.map(u=>`(${u.join(", ")})`).join(", ")),o.push(" Contraction path: "+JSON.stringify(e));let a=0;for(let u of t)a+=u.reduce((i,s)=>i*s,1);return o.push(" Estimated FLOPS: ~"+a.toExponential(2)),o.join(`
|
|
5
|
-
`)}function mt(r,t){let e=ft(z(r),z(t));return typeof e=="number"||typeof e=="bigint"||e instanceof U?e:v(e)}function Hr(r){return ym(z(r))}function pt(r,t=0,e=0,n=1){return v(Am(z(r),t,e,n))}function ki(r,t){return v(Nm(z(r),z(t)))}function yt(r,t){return Nr(Qr(z(r),t),r)}function dt(r,t){let e=dm(z(r),z(t));return typeof e=="number"||typeof e=="bigint"||e instanceof U?e:v(e)}function bt(r,t){return v(Fi(z(r),z(t)))}function At(r,t,e=2){let n=bm(z(r),z(t),e);return typeof n=="number"||typeof n=="bigint"||n instanceof U?n:v(n)}function Vo(r,...t){let e=t.map(o=>z(o)),n=gm(r,...e);return typeof n=="number"||typeof n=="bigint"||n instanceof U?n:v(n)}function Po(r,...t){let e=t.map(n=>z(n));return jm(r,...e)}function jo(r,t){return Bm(z(r),z(t))}function Lo(r,t,e=-1){let n=Tm(z(r),z(t),e);return typeof n=="number"||typeof n=="bigint"||n instanceof U?n:v(n)}function Wo(r){return Nr(Em(z(r)),r)}function Go(r,t){return Nr(Om(z(r),t),r)}function Ri(r,t){return v(Um(z(r),z(t)))}function qi(r,t){return v($m(z(r),z(t)))}function Yo(r,t,e=-1,n=-1,o=-1,a){let u=Dm(z(r),z(t),e,n,o,a);return typeof u=="number"||u instanceof U?u:v(u)}function _e(r,t){return v(Ar(z(r),z(t)))}var Zo={matmul:(r,t)=>v(Ar(z(r),z(t))),dot:(r,t)=>mt(r,t),det:r=>Sm(z(r)),inv:r=>v(ze(z(r))),solve:(r,t)=>v(Oi(z(r),z(t))),lstsq:(r,t,e)=>{let n=wm(z(r),z(t),e);return{x:v(n.x),residuals:v(n.residuals),rank:n.rank,s:v(n.s)}},norm:(r,t,e,n)=>{let o=xm(z(r),t,e,n);return typeof o=="number"?o:v(o)},cond:(r,t)=>Im(z(r),t),matrix_rank:(r,t)=>zm(z(r),t),matrix_power:(r,t)=>v(_m(z(r),t)),pinv:(r,t)=>v(Mm(z(r),t)),qr:(r,t)=>{let e=Bi(z(r),t);return"h"in e&&"tau"in e?{h:v(e.h),tau:v(e.tau)}:"q"in e&&"r"in e?{q:v(e.q),r:v(e.r)}:v(e)},cholesky:(r,t)=>v(Cm(z(r),t)),svd:(r,t,e)=>{let n=Ei(z(r),t,e);return"u"in n&&"s"in n&&"vt"in n?{u:v(n.u),s:v(n.s),vt:v(n.vt)}:v(n)},eig:r=>{let t=Ui(z(r));return{w:v(t.w),v:v(t.v)}},eigh:(r,t)=>{let e=$i(z(r),t);return{w:v(e.w),v:v(e.v)}},eigvals:r=>v(vm(z(r))),eigvalsh:(r,t)=>v(Fm(z(r),t)),slogdet:r=>km(z(r)),svdvals:r=>v(Rm(z(r))),multi_dot:r=>v(qm(r.map(t=>z(t)))),tensorinv:(r,t)=>v(Vm(z(r),t)),tensorsolve:(r,t,e)=>v(Pm(z(r),z(t),e)),vector_norm:(r,t,e,n)=>{let o=lt(z(r),t,e,n);return typeof o=="number"?o:v(o)},matrix_norm:(r,t,e)=>{let n=Kr(z(r),t,e);return typeof n=="number"?n:v(n)},cross:(r,t,e,n,o,a)=>Yo(r,t,e,n,o,a),matrix_transpose:r=>Wo(r),permute_dims:(r,t)=>Go(r,t),trace:r=>Hr(r),diagonal:(r,t,e,n)=>pt(r,t,e,n),outer:(r,t)=>bt(r,t),inner:(r,t)=>dt(r,t),tensordot:(r,t,e)=>At(r,t,e),vecdot:(r,t,e)=>Lo(r,t,e),transpose:(r,t)=>yt(r,t)};function Me(r,t){return v(cr(z(r),t))}function Br(r){return v(Jr(z(r)))}function ve(r){return v(ct(z(r)))}function Fe(r,t){return Nr(Ii(z(r),t),r)}function Be(r,t){return Nr(we(z(r),t),r)}function Te(r,t,e){return Nr(Lf(z(r),t,e),r)}function Ee(r,t,e){return Nr(zi(z(r),t,e),r)}function Vi(r,t,e=0){return Nr(nm(z(r),t,e),r)}function gt(r,t=0){return v(Yr(r.map(e=>z(e)),t))}function Pi(r,t=0){return v(Wf(r.map(e=>z(e)),t))}function Xo(r){return v(Gf(r.map(t=>z(t))))}function ji(r){return v(_i(r.map(t=>z(t))))}function Li(r){return v(Yf(r.map(t=>z(t))))}function Wi(r){return v(am(r.map(t=>z(t))))}var Jo=Xo;function Gi(r){return v(fm(r.map(t=>z(t))))}function Ko(r,t,e=0){return st(Zf(z(r),t,e),r)}function Qo(r,t,e=0){return st(Ie(z(r),t,e),r)}function Ho(r,t){return st(Jf(z(r),t),r)}function ra(r,t){return st(Kf(z(r),t),r)}function ta(r,t){return st(om(z(r),t),r)}function Yi(r,t=0){return $r(lm(z(r),t))}function Zi(r,t){return v(Qf(z(r),t))}function Oe(r,t,e){return v(Hf(z(r),t,e))}function Ue(r,t){return v(rm(z(r),t))}function Xi(r){return Ue(r,1)}function Ji(r){return Ue(r,0)}function Ki(r,t=1,e=[0,1]){return v(tm(z(r),t,e))}function Qi(r,t,e){return v(em(z(r),t,e))}function $e(r,t){return v(sm(z(r),t))}function ea(...r){let t=im(r.map(e=>z(e)));return t.length===1?v(t[0]):$r(t)}function na(...r){let t=um(r.map(e=>z(e)));return t.length===1?v(t[0]):$r(t)}function oa(...r){let t=cm(r.map(e=>z(e)));return t.length===1?v(t[0]):$r(t)}function xr(r,t){let e=0,n=1;for(let o=r.length-1;o>=0;o--)e+=r[o]*n,n*=t[o];return e}function Z(r,t,e){let n=e;for(let o=0;o<r.length;o++)n+=r[o]*t[o];return n}function G(r,t,e,n){let o=n.length,a=new Array(o),u=Array.from(n).filter((s,c)=>c!==t),i=r;for(let s=u.length-1;s>=0;s--)a[s>=t?s+1:s]=i%u[s],i=Math.floor(i/u[s]);return a[t]=e,a}function ke(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,i=r.data,s=r.offset,c=r.strides,l=r.isCContiguous;if(t===void 0)if(B(n)){let A=0,g=0;if(l){let h=i;for(let N=0;N<u;N++)A+=h[(s+N)*2],g+=h[(s+N)*2+1]}else for(let h=0;h<u;h++){let N=r.iget(h);A+=N.re,g+=N.im}return new U(A,g)}else if(E(n)){let A=BigInt(0);if(l){let g=i;for(let h=0;h<u;h++)A+=g[s+h]}else for(let g=0;g<u;g++)A+=r.iget(g);return Number(A)}else{let A=0;if(l)if(s===0)for(let g=0;g<u;g++)A+=Number(i[g]);else for(let g=0;g<u;g++)A+=Number(i[s+g]);else for(let g=0;g<u;g++)A+=Number(r.iget(g));return A}let f=t;if(f<0&&(f=a+f),f<0||f>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let m=Array.from(o).filter((A,g)=>g!==f);if(m.length===0)return ke(r);let p=S.zeros(m,n),y=p.data,d=o[f],b=m.reduce((A,g)=>A*g,1);if(B(n)){let A=i,g=y;for(let h=0;h<b;h++){let N=0,D=0;for(let x=0;x<d;x++){let C=G(h,f,x,o),w=Z(C,c,s);N+=A[w*2],D+=A[w*2+1]}g[h*2]=N,g[h*2+1]=D}}else if(E(n)){let A=i,g=y;for(let h=0;h<b;h++){let N=BigInt(0);for(let D=0;D<d;D++){let x=G(h,f,D,o),C=Z(x,c,s);N+=A[C]}g[h]=N}}else for(let A=0;A<b;A++){let g=0;for(let h=0;h<d;h++){let N=G(A,f,h,o),D=Z(N,c,s);g+=Number(i[D])}y[A]=g}if(e){let A=[...o];return A[f]=1,S.fromData(y,A,n)}return p}function la(r,t,e=!1){let n=r.dtype,o=r.shape;if(t===void 0){let m=ke(r);return m instanceof U?new U(m.re/r.size,m.im/r.size):m/r.size}let a=t;if(a<0&&(a=o.length+a),a<0||a>=o.length)throw new Error(`axis ${t} is out of bounds for array of dimension ${o.length}`);let u=ke(r,t,e);if(typeof u=="number")return u/o[a];if(u instanceof U)return new U(u.re/o[a],u.im/o[a]);let i=o[a],s=n;B(n)?s=n:(E(n)||n.startsWith("int")||n.startsWith("uint"))&&(s="float64");let c=S.zeros(Array.from(u.shape),s),l=c.data,f=u.data;if(B(n)){let m=f,p=l,y=u.size;for(let d=0;d<y;d++)p[d*2]=m[d*2]/i,p[d*2+1]=m[d*2+1]/i}else if(E(n)){let m=f;for(let p=0;p<l.length;p++)l[p]=Number(m[p])/i}else for(let m=0;m<l.length;m++)l[m]=Number(f[m])/i;return c}function ht(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,i=r.data,s=r.offset,c=r.strides;if(B(n)){let b=i;if(t===void 0){if(u===0)throw new Error("max of empty array");let C=b[s*2],w=b[s*2+1];for(let _=1;_<u;_++){let I=b[(s+_)*2],M=b[(s+_)*2+1];if(isNaN(I)||isNaN(M))return new U(NaN,NaN);(I>C||I===C&&M>w)&&(C=I,w=M)}return isNaN(C)||isNaN(w)?new U(NaN,NaN):new U(C,w)}let A=t;if(A<0&&(A=a+A),A<0||A>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let g=Array.from(o).filter((C,w)=>w!==A);if(g.length===0)return ht(r);let h=S.zeros(g,n),N=h.data,D=o[A],x=g.reduce((C,w)=>C*w,1);for(let C=0;C<x;C++){let w=G(C,A,0,o),_=Z(w,c,s),I=b[_*2],M=b[_*2+1];for(let T=1;T<D;T++){let O=G(C,A,T,o),$=Z(O,c,s),k=b[$*2],V=b[$*2+1];if(isNaN(k)||isNaN(V)){I=NaN,M=NaN;break}(k>I||k===I&&V>M)&&(I=k,M=V)}N[C*2]=I,N[C*2+1]=M}if(e){let C=[...o];return C[A]=1,S.fromData(N,C,n)}return h}if(t===void 0){if(u===0)throw new Error("max of empty array");if(r.isCContiguous){let b=i[s];if(s===0)for(let A=1;A<u;A++)i[A]>b&&(b=i[A]);else for(let A=1;A<u;A++)i[s+A]>b&&(b=i[s+A]);return Number(b)}else{let b=r.iget(0);for(let A=1;A<u;A++){let g=r.iget(A);g>b&&(b=g)}return Number(b)}}let l=t;if(l<0&&(l=a+l),l<0||l>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let f=Array.from(o).filter((b,A)=>A!==l);if(f.length===0)return ht(r);let m=S.zeros(f,n),p=m.data,y=o[l],d=f.reduce((b,A)=>b*A,1);if(E(n)){let b=i,A=p;for(let g=0;g<d;g++){let h=G(g,l,0,o),N=Z(h,c,s),D=b[N];for(let x=1;x<y;x++){let C=G(g,l,x,o),w=Z(C,c,s),_=b[w];_>D&&(D=_)}A[g]=D}}else for(let b=0;b<d;b++){let A=-1/0;for(let g=0;g<y;g++){let h=G(b,l,g,o),N=Z(h,c,s),D=Number(i[N]);D>A&&(A=D)}p[b]=A}if(e){let b=[...o];return b[l]=1,S.fromData(p,b,n)}return m}function Hi(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,i=r.data,s=r.offset,c=r.strides,l=r.isCContiguous;if(t===void 0)if(B(n)){let A=1,g=0;if(l){let h=i;for(let N=0;N<u;N++){let D=h[(s+N)*2],x=h[(s+N)*2+1],C=A*D-g*x,w=A*x+g*D;A=C,g=w}}else for(let h=0;h<u;h++){let N=r.iget(h),D=N.re,x=N.im,C=A*D-g*x,w=A*x+g*D;A=C,g=w}return new U(A,g)}else if(E(n)){let A=BigInt(1);if(l){let g=i;for(let h=0;h<u;h++)A*=g[s+h]}else for(let g=0;g<u;g++)A*=r.iget(g);return Number(A)}else{let A=1;if(l)if(s===0)for(let g=0;g<u;g++)A*=Number(i[g]);else for(let g=0;g<u;g++)A*=Number(i[s+g]);else for(let g=0;g<u;g++)A*=Number(r.iget(g));return A}let f=t;if(f<0&&(f=a+f),f<0||f>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let m=Array.from(o).filter((A,g)=>g!==f);if(m.length===0)return Hi(r);let p=S.zeros(m,n),y=p.data,d=o[f],b=m.reduce((A,g)=>A*g,1);if(B(n)){let A=i,g=y;for(let h=0;h<b;h++){let N=1,D=0;for(let x=0;x<d;x++){let C=G(h,f,x,o),w=Z(C,c,s),_=A[w*2],I=A[w*2+1],M=N*_-D*I,T=N*I+D*_;N=M,D=T}g[h*2]=N,g[h*2+1]=D}}else if(E(n)){let A=i,g=y;for(let h=0;h<b;h++){let N=BigInt(1);for(let D=0;D<d;D++){let x=G(h,f,D,o),C=Z(x,c,s);N*=A[C]}g[h]=N}}else for(let A=0;A<b;A++){let g=1;for(let h=0;h<d;h++){let N=G(A,f,h,o),D=Z(N,c,s);g*=Number(i[D])}y[A]=g}if(e){let A=[...o];return A[f]=1,S.fromData(y,A,n)}return p}function Nt(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,i=r.data,s=r.offset,c=r.strides;if(B(n)){let b=i;if(t===void 0){if(u===0)throw new Error("min of empty array");let C=b[s*2],w=b[s*2+1];for(let _=1;_<u;_++){let I=b[(s+_)*2],M=b[(s+_)*2+1];if(isNaN(I)||isNaN(M))return new U(NaN,NaN);(I<C||I===C&&M<w)&&(C=I,w=M)}return isNaN(C)||isNaN(w)?new U(NaN,NaN):new U(C,w)}let A=t;if(A<0&&(A=a+A),A<0||A>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let g=Array.from(o).filter((C,w)=>w!==A);if(g.length===0)return Nt(r);let h=S.zeros(g,n),N=h.data,D=o[A],x=g.reduce((C,w)=>C*w,1);for(let C=0;C<x;C++){let w=G(C,A,0,o),_=Z(w,c,s),I=b[_*2],M=b[_*2+1];for(let T=1;T<D;T++){let O=G(C,A,T,o),$=Z(O,c,s),k=b[$*2],V=b[$*2+1];if(isNaN(k)||isNaN(V)){I=NaN,M=NaN;break}(k<I||k===I&&V<M)&&(I=k,M=V)}N[C*2]=I,N[C*2+1]=M}if(e){let C=[...o];return C[A]=1,S.fromData(N,C,n)}return h}if(t===void 0){if(u===0)throw new Error("min of empty array");if(r.isCContiguous){let b=i[s];if(s===0)for(let A=1;A<u;A++)i[A]<b&&(b=i[A]);else for(let A=1;A<u;A++)i[s+A]<b&&(b=i[s+A]);return Number(b)}else{let b=r.iget(0);for(let A=1;A<u;A++){let g=r.iget(A);g<b&&(b=g)}return Number(b)}}let l=t;if(l<0&&(l=a+l),l<0||l>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let f=Array.from(o).filter((b,A)=>A!==l);if(f.length===0)return Nt(r);let m=S.zeros(f,n),p=m.data,y=o[l],d=f.reduce((b,A)=>b*A,1);if(E(n)){let b=i,A=p;for(let g=0;g<d;g++){let h=G(g,l,0,o),N=Z(h,c,s),D=b[N];for(let x=1;x<y;x++){let C=G(g,l,x,o),w=Z(C,c,s),_=b[w];_<D&&(D=_)}A[g]=D}}else for(let b=0;b<d;b++){let A=1/0;for(let g=0;g<y;g++){let h=G(b,l,g,o),N=Z(h,c,s),D=Number(i[N]);D<A&&(A=D)}p[b]=A}if(e){let b=[...o];return b[l]=1,S.fromData(p,b,n)}return m}function zr(r,t,e,n){return r<e?-1:r>e?1:t<n?-1:t>n?1:0}function ru(r,t){let e=r.dtype,n=B(e),o=r.shape,a=o.length,u=r.size,i=r.data,s=r.offset,c=r.strides,l=r.isCContiguous;if(t===void 0){if(u===0)throw new Error("argmin of empty array");if(n)if(l){let A=i,g=A[s*2],h=A[s*2+1],N=0;for(let D=1;D<u;D++){let x=A[(s+D)*2],C=A[(s+D)*2+1];zr(x,C,g,h)<0&&(g=x,h=C,N=D)}return N}else{let A=r.iget(0),g=A.re,h=A.im,N=0;for(let D=1;D<u;D++){let x=r.iget(D);zr(x.re,x.im,g,h)<0&&(g=x.re,h=x.im,N=D)}return N}if(l){let A=i[s],g=0;if(s===0)for(let h=1;h<u;h++)i[h]<A&&(A=i[h],g=h);else for(let h=1;h<u;h++)i[s+h]<A&&(A=i[s+h],g=h);return g}else{let A=r.iget(0),g=0;for(let h=1;h<u;h++){let N=r.iget(h);N<A&&(A=N,g=h)}return g}}let f=t;if(f<0&&(f=a+f),f<0||f>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let m=Array.from(o).filter((A,g)=>g!==f);if(m.length===0)return ru(r);let p=S.zeros(m,"int32"),y=p.data,d=o[f],b=m.reduce((A,g)=>A*g,1);if(n){let A=i;for(let g=0;g<b;g++){let h=G(g,f,0,o),N=Z(h,c,s),D=A[N*2],x=A[N*2+1],C=0;for(let w=1;w<d;w++){let _=G(g,f,w,o),I=Z(_,c,s),M=A[I*2],T=A[I*2+1];zr(M,T,D,x)<0&&(D=M,x=T,C=w)}y[g]=C}}else if(E(e)){let A=i;for(let g=0;g<b;g++){let h=G(g,f,0,o),N=Z(h,c,s),D=A[N],x=0;for(let C=1;C<d;C++){let w=G(g,f,C,o),_=Z(w,c,s),I=A[_];I<D&&(D=I,x=C)}y[g]=x}}else for(let A=0;A<b;A++){let g=1/0,h=0;for(let N=0;N<d;N++){let D=G(A,f,N,o),x=Z(D,c,s),C=Number(i[x]);C<g&&(g=C,h=N)}y[A]=h}return p}function tu(r,t){let e=r.dtype,n=B(e),o=r.shape,a=o.length,u=r.size,i=r.data,s=r.offset,c=r.strides,l=r.isCContiguous;if(t===void 0){if(u===0)throw new Error("argmax of empty array");if(n)if(l){let A=i,g=A[s*2],h=A[s*2+1],N=0;for(let D=1;D<u;D++){let x=A[(s+D)*2],C=A[(s+D)*2+1];zr(x,C,g,h)>0&&(g=x,h=C,N=D)}return N}else{let A=r.iget(0),g=A.re,h=A.im,N=0;for(let D=1;D<u;D++){let x=r.iget(D);zr(x.re,x.im,g,h)>0&&(g=x.re,h=x.im,N=D)}return N}if(l){let A=i[s],g=0;for(let h=1;h<u;h++)i[s+h]>A&&(A=i[s+h],g=h);return g}else{let A=r.iget(0),g=0;for(let h=1;h<u;h++){let N=r.iget(h);N>A&&(A=N,g=h)}return g}}let f=t;if(f<0&&(f=a+f),f<0||f>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let m=Array.from(o).filter((A,g)=>g!==f);if(m.length===0)return tu(r);let p=S.zeros(m,"int32"),y=p.data,d=o[f],b=m.reduce((A,g)=>A*g,1);if(n){let A=i;for(let g=0;g<b;g++){let h=G(g,f,0,o),N=Z(h,c,s),D=A[N*2],x=A[N*2+1],C=0;for(let w=1;w<d;w++){let _=G(g,f,w,o),I=Z(_,c,s),M=A[I*2],T=A[I*2+1];zr(M,T,D,x)>0&&(D=M,x=T,C=w)}y[g]=C}}else if(E(e)){let A=i;for(let g=0;g<b;g++){let h=G(g,f,0,o),N=Z(h,c,s),D=A[N],x=0;for(let C=1;C<d;C++){let w=G(g,f,C,o),_=Z(w,c,s),I=A[_];I>D&&(D=I,x=C)}y[g]=x}}else for(let A=0;A<b;A++){let g=-1/0,h=0;for(let N=0;N<d;N++){let D=G(A,f,N,o),x=Z(D,c,s),C=Number(i[x]);C>g&&(g=C,h=N)}y[A]=h}return p}function eu(r,t,e=0,n=!1){let o=r.dtype,a=r.shape,u=a.length,i=r.size,s=r.data,c=r.offset,l=r.strides,f=la(r,t,n),m=r.isCContiguous;if(t===void 0){if(B(o)){let C=f,w=0;if(m){let _=s;for(let I=0;I<i;I++){let M=_[(c+I)*2],T=_[(c+I)*2+1],O=M-C.re,$=T-C.im;w+=O*O+$*$}}else for(let _=0;_<i;_++){let I=r.iget(_),M=I.re-C.re,T=I.im-C.im;w+=M*M+T*T}return w/(i-e)}let D=f,x=0;if(m)for(let C=0;C<i;C++){let w=Number(s[c+C])-D;x+=w*w}else for(let C=0;C<i;C++){let w=Number(r.iget(C))-D;x+=w*w}return x/(i-e)}let p=t;if(p<0&&(p=u+p),p<0||p>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let y=a[p],d=f,b=d.data,A=n?d.shape:Array.from(a).filter((D,x)=>x!==p),g=S.zeros(Array.from(A),"float64"),h=g.data,N=A.reduce((D,x)=>D*x,1);if(B(o)){let D=s,x=b;for(let C=0;C<N;C++){let w=0,_=x[C*2],I=x[C*2+1];for(let M=0;M<y;M++){let T=G(C,p,M,a),O=Z(T,l,c),$=D[O*2],k=D[O*2+1],V=$-_,j=k-I;w+=V*V+j*j}h[C]=w/(y-e)}}else for(let D=0;D<N;D++){let x=0,C=Number(b[D]);for(let w=0;w<y;w++){let _=G(D,p,w,a),I=Z(_,l,c),M=Number(s[I])-C;x+=M*M}h[D]=x/(y-e)}return g}function Lm(r,t,e=0,n=!1){let o=eu(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=S.zeros(Array.from(o.shape),"float64"),u=o.data,i=a.data;for(let s=0;s<u.length;s++)i[s]=Math.sqrt(Number(u[s]));return a}function nu(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,u=r.data,i=r.offset,s=r.strides,c=r.isCContiguous;if(t===void 0){if(c){for(let b=0;b<a;b++)if(!u[i+b])return!1}else for(let b=0;b<a;b++)if(!r.iget(b))return!1;return!0}let l=t;if(l<0&&(l=o+l),l<0||l>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let f=Array.from(n).filter((b,A)=>A!==l);if(f.length===0)return nu(r);let m=S.zeros(f,"bool"),p=m.data,y=n[l],d=f.reduce((b,A)=>b*A,1);for(let b=0;b<d;b++){let A=!0;for(let g=0;g<y;g++){let h=G(b,l,g,n),N=Z(h,s,i);if(!u[N]){A=!1;break}}p[b]=A?1:0}if(e){let b=[...n];return b[l]=1,S.fromData(p,b,"bool")}return m}function ou(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,u=r.data,i=r.offset,s=r.strides,c=r.isCContiguous;if(t===void 0){if(c){for(let b=0;b<a;b++)if(u[i+b])return!0}else for(let b=0;b<a;b++)if(r.iget(b))return!0;return!1}let l=t;if(l<0&&(l=o+l),l<0||l>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let f=Array.from(n).filter((b,A)=>A!==l);if(f.length===0)return ou(r);let m=S.zeros(f,"bool"),p=m.data,y=n[l],d=f.reduce((b,A)=>b*A,1);for(let b=0;b<d;b++){let A=!1;for(let g=0;g<y;g++){let h=G(b,l,g,n),N=Z(h,s,i);if(u[N]){A=!0;break}}p[b]=A?1:0}if(e){let b=[...n];return b[l]=1,S.fromData(p,b,"bool")}return m}function Wm(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data,u=r.offset,i=r.strides,s=r.isCContiguous;if(B(e)){let b=a,A=r.size;if(t===void 0){let I=S.zeros([A],e),M=I.data,T=0,O=0;if(s)for(let $=0;$<A;$++)T+=b[(u+$)*2],O+=b[(u+$)*2+1],M[$*2]=T,M[$*2+1]=O;else for(let $=0;$<A;$++){let k=r.iget($);T+=k.re,O+=k.im,M[$*2]=T,M[$*2+1]=O}return I}let g=t;if(g<0&&(g=o+g),g<0||g>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let h=S.zeros([...n],e),N=h.data,D=n[g],x=[],C=1;for(let I=o-1;I>=0;I--)x.unshift(C),C*=n[I];let w=r.size,_=x[g];for(let I=0;I<w;I++){let M=Math.floor(I/_)%D,T=new Array(o),O=I;for(let k=o-1;k>=0;k--)T[k]=O%n[k],O=Math.floor(O/n[k]);let $=Z(T,i,u);M===0?(N[I*2]=b[$*2],N[I*2+1]=b[$*2+1]):(N[I*2]=N[(I-_)*2]+b[$*2],N[I*2+1]=N[(I-_)*2+1]+b[$*2+1])}return h}if(t===void 0){let b=r.size,A=new Float64Array(b),g=0;if(s)for(let h=0;h<b;h++)g+=Number(a[u+h]),A[h]=g;else for(let h=0;h<b;h++)g+=Number(r.iget(h)),A[h]=g;return S.fromData(A,[b],"float64")}let c=t;if(c<0&&(c=o+c),c<0||c>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let l=new Float64Array(r.size),f=n[c],m=[],p=1;for(let b=o-1;b>=0;b--)m.unshift(p),p*=n[b];let y=r.size,d=m[c];for(let b=0;b<y;b++){let A=Math.floor(b/d)%f,g=new Array(o),h=b;for(let D=o-1;D>=0;D--)g[D]=h%n[D],h=Math.floor(h/n[D]);let N=Z(g,i,u);A===0?l[b]=Number(a[N]):l[b]=l[b-d]+Number(a[N])}return S.fromData(l,[...n],"float64")}function Gm(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data,u=r.offset,i=r.strides,s=r.isCContiguous;if(B(e)){let b=a,A=r.size;if(t===void 0){let I=S.zeros([A],e),M=I.data,T=1,O=0;if(s)for(let $=0;$<A;$++){let k=b[(u+$)*2],V=b[(u+$)*2+1],j=T*k-O*V,R=T*V+O*k;T=j,O=R,M[$*2]=T,M[$*2+1]=O}else for(let $=0;$<A;$++){let k=r.iget($),V=k.re,j=k.im,R=T*V-O*j,Y=T*j+O*V;T=R,O=Y,M[$*2]=T,M[$*2+1]=O}return I}let g=t;if(g<0&&(g=o+g),g<0||g>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let h=S.zeros([...n],e),N=h.data,D=n[g],x=[],C=1;for(let I=o-1;I>=0;I--)x.unshift(C),C*=n[I];let w=r.size,_=x[g];for(let I=0;I<w;I++){let M=Math.floor(I/_)%D,T=new Array(o),O=I;for(let k=o-1;k>=0;k--)T[k]=O%n[k],O=Math.floor(O/n[k]);let $=Z(T,i,u);if(M===0)N[I*2]=b[$*2],N[I*2+1]=b[$*2+1];else{let k=N[(I-_)*2],V=N[(I-_)*2+1],j=b[$*2],R=b[$*2+1];N[I*2]=k*j-V*R,N[I*2+1]=k*R+V*j}}return h}if(t===void 0){let b=r.size,A=new Float64Array(b),g=1;if(s)for(let h=0;h<b;h++)g*=Number(a[u+h]),A[h]=g;else for(let h=0;h<b;h++)g*=Number(r.iget(h)),A[h]=g;return S.fromData(A,[b],"float64")}let c=t;if(c<0&&(c=o+c),c<0||c>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let l=new Float64Array(r.size),f=n[c],m=[],p=1;for(let b=o-1;b>=0;b--)m.unshift(p),p*=n[b];let y=r.size,d=m[c];for(let b=0;b<y;b++){let A=Math.floor(b/d)%f,g=new Array(o),h=b;for(let D=o-1;D>=0;D--)g[D]=h%n[D],h=Math.floor(h/n[D]);let N=Z(g,i,u);A===0?l[b]=Number(a[N]):l[b]=l[b-d]*Number(a[N])}return S.fromData(l,[...n],"float64")}function Ym(r,t,e=!1){let n=r.dtype;if(B(n)){let f=ht(r,t,e),m=Nt(r,t,e);if(f instanceof U&&m instanceof U)return new U(f.re-m.re,f.im-m.im);let p=f,y=m,d=p.data,b=y.data,A=new Float64Array(p.size*2);for(let g=0;g<p.size;g++)A[g*2]=d[g*2]-b[g*2],A[g*2+1]=d[g*2+1]-b[g*2+1];return S.fromData(A,[...p.shape],n)}let o=ht(r,t,e),a=Nt(r,t,e);if(typeof o=="number"&&typeof a=="number")return o-a;let u=o,i=a,s=u.data,c=i.data,l=new Float64Array(u.size);for(let f=0;f<u.size;f++)l[f]=Number(s[f])-Number(c[f]);return S.fromData(l,[...u.shape],"float64")}function Zm(r,t,e=!1){return qe(r,.5,t,e)}function Xm(r,t,e,n=!1){return qe(r,t/100,e,n)}function qe(r,t,e,n=!1){if(L(r.dtype,"quantile","Complex numbers are not orderable."),t<0||t>1)throw new Error("Quantile must be between 0 and 1");let o=r.shape,a=o.length,u=r.data,i=r.offset,s=r.strides;if(e===void 0){let d=[];if(r.isCContiguous)for(let x=0;x<r.size;x++)d.push(Number(u[i+x]));else for(let x=0;x<r.size;x++)d.push(Number(r.iget(x)));d.sort((x,C)=>x-C);let A=d.length,g=t*(A-1),h=Math.floor(g),N=Math.ceil(g);if(h===N)return d[h];let D=g-h;return d[h]*(1-D)+d[N]*D}let c=e;if(c<0&&(c=a+c),c<0||c>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);let l=Array.from(o).filter((d,b)=>b!==c);if(l.length===0)return qe(r,t);let f=l.reduce((d,b)=>d*b,1),m=o[c],p=new Float64Array(f);for(let d=0;d<f;d++){let b=[];for(let D=0;D<m;D++){let x=G(d,c,D,o),C=Z(x,s,i);b.push(Number(u[C]))}b.sort((D,x)=>D-x);let A=b.length,g=t*(A-1),h=Math.floor(g),N=Math.ceil(g);if(h===N)p[d]=b[h];else{let D=g-h;p[d]=b[h]*(1-D)+b[N]*D}}let y=S.fromData(p,l,"float64");if(n){let d=[...o];return d[c]=1,S.fromData(p,d,"float64")}return y}function aa(r,t,e,n=!1){let o=r.dtype,a=r.shape,u=a.length,i=r.data,s=r.offset,c=r.strides;if(e===void 0)return la(r,t,n);if(B(o)){let g=i,h=e.data,N=e.offset;if(t===void 0){let M=0,T=0,O=0;if(r.isCContiguous)for(let k=0;k<r.size;k++){let V=Number(h[N+k%e.size]),j=g[(s+k)*2],R=g[(s+k)*2+1];M+=j*V,T+=R*V,O+=V}else for(let k=0;k<r.size;k++){let V=Number(h[N+k%e.size]),j=r.iget(k);M+=j.re*V,T+=j.im*V,O+=V}return O===0?new U(NaN,NaN):new U(M/O,T/O)}let D=t;if(D<0&&(D=u+D),D<0||D>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let x=Array.from(a).filter((M,T)=>T!==D);if(x.length===0)return aa(r,void 0,e);let C=x.reduce((M,T)=>M*T,1),w=a[D],_=S.zeros(x,o),I=_.data;for(let M=0;M<C;M++){let T=0,O=0,$=0;for(let k=0;k<w;k++){let V=G(M,D,k,a),j=Z(V,c,s),R=Number(h[N+k%e.size]),Y=g[j*2],X=g[j*2+1];T+=Y*R,O+=X*R,$+=R}$===0?(I[M*2]=NaN,I[M*2+1]=NaN):(I[M*2]=T/$,I[M*2+1]=O/$)}if(n){let M=[...a];return M[D]=1,S.fromData(I,M,o)}return _}let l=e.offset;if(t===void 0){let g=0,h=0,N=e.data;if(r.isCContiguous)for(let x=0;x<r.size;x++){let C=Number(N[l+x%e.size]);g+=Number(i[s+x])*C,h+=C}else for(let x=0;x<r.size;x++){let C=Number(N[l+x%e.size]);g+=Number(r.iget(x))*C,h+=C}return h===0?NaN:g/h}let f=t;if(f<0&&(f=u+f),f<0||f>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let m=Array.from(a).filter((g,h)=>h!==f);if(m.length===0)return aa(r,void 0,e);let p=m.reduce((g,h)=>g*h,1),y=a[f],d=e.data,b=new Float64Array(p);for(let g=0;g<p;g++){let h=0,N=0;for(let D=0;D<y;D++){let x=G(g,f,D,a),C=Z(x,c,s),w=Number(d[l+D%e.size]);h+=Number(i[C])*w,N+=w}b[g]=N===0?NaN:h/N}let A=S.fromData(b,m,"float64");if(n){let g=[...a];return g[f]=1,S.fromData(b,g,"float64")}return A}function ar(r,t){return isNaN(r)||isNaN(t)}function au(r,t,e=!1){let n=r.dtype,o=B(n),a=r.shape,u=a.length,i=r.data,s=r.offset,c=r.strides;if(t===void 0){if(o){let g=i,h=0,N=0;if(r.isCContiguous)for(let x=0;x<r.size;x++){let C=g[(s+x)*2],w=g[(s+x)*2+1];ar(C,w)||(h+=C,N+=w)}else for(let x=0;x<r.size;x++){let C=r.iget(x),w=C.re,_=C.im;ar(w,_)||(h+=w,N+=_)}return new U(h,N)}let b=0;if(r.isCContiguous)for(let g=0;g<r.size;g++){let h=Number(i[s+g]);isNaN(h)||(b+=h)}else for(let g=0;g<r.size;g++){let h=Number(r.iget(g));isNaN(h)||(b+=h)}return b}let l=t;if(l<0&&(l=u+l),l<0||l>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let f=Array.from(a).filter((b,A)=>A!==l);if(f.length===0)return au(r);let m=f.reduce((b,A)=>b*A,1),p=a[l];if(o){let b=i,A=new Float64Array(m*2);for(let g=0;g<m;g++){let h=0,N=0;for(let D=0;D<p;D++){let x=G(g,l,D,a),C=Z(x,c,s),w=b[C*2],_=b[C*2+1];ar(w,_)||(h+=w,N+=_)}A[g*2]=h,A[g*2+1]=N}if(e){let g=[...a];return g[l]=1,S.fromData(A,g,n)}return S.fromData(A,f,n)}let y=new Float64Array(m);for(let b=0;b<m;b++){let A=0;for(let g=0;g<p;g++){let h=G(b,l,g,a),N=Z(h,c,s),D=Number(i[N]);isNaN(D)||(A+=D)}y[b]=A}let d=S.fromData(y,f,"float64");if(e){let b=[...a];return b[l]=1,S.fromData(y,b,"float64")}return d}function su(r,t,e=!1){let n=r.dtype,o=B(n),a=r.shape,u=a.length,i=r.data,s=r.offset,c=r.strides;if(t===void 0){if(o){let g=i,h=1,N=0;if(r.isCContiguous)for(let x=0;x<r.size;x++){let C=g[(s+x)*2],w=g[(s+x)*2+1];if(!ar(C,w)){let _=h*C-N*w,I=h*w+N*C;h=_,N=I}}else for(let x=0;x<r.size;x++){let C=r.iget(x),w=C.re,_=C.im;if(!ar(w,_)){let I=h*w-N*_,M=h*_+N*w;h=I,N=M}}return new U(h,N)}let b=1;if(r.isCContiguous)for(let g=0;g<r.size;g++){let h=Number(i[s+g]);isNaN(h)||(b*=h)}else for(let g=0;g<r.size;g++){let h=Number(r.iget(g));isNaN(h)||(b*=h)}return b}let l=t;if(l<0&&(l=u+l),l<0||l>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let f=Array.from(a).filter((b,A)=>A!==l);if(f.length===0)return su(r);let m=f.reduce((b,A)=>b*A,1),p=a[l];if(o){let b=i,A=new Float64Array(m*2);for(let g=0;g<m;g++){let h=1,N=0;for(let D=0;D<p;D++){let x=G(g,l,D,a),C=Z(x,c,s),w=b[C*2],_=b[C*2+1];if(!ar(w,_)){let I=h*w-N*_,M=h*_+N*w;h=I,N=M}}A[g*2]=h,A[g*2+1]=N}if(e){let g=[...a];return g[l]=1,S.fromData(A,g,n)}return S.fromData(A,f,n)}let y=new Float64Array(m);for(let b=0;b<m;b++){let A=1;for(let g=0;g<p;g++){let h=G(b,l,g,a),N=Z(h,c,s),D=Number(i[N]);isNaN(D)||(A*=D)}y[b]=A}let d=S.fromData(y,f,"float64");if(e){let b=[...a];return b[l]=1,S.fromData(y,b,"float64")}return d}function iu(r,t,e=!1){let n=r.dtype,o=B(n),a=r.shape,u=a.length,i=r.data,s=r.offset,c=r.strides;if(t===void 0){if(o){let h=i,N=0,D=0,x=0;if(r.isCContiguous)for(let w=0;w<r.size;w++){let _=h[(s+w)*2],I=h[(s+w)*2+1];ar(_,I)||(N+=_,D+=I,x++)}else for(let w=0;w<r.size;w++){let _=r.iget(w),I=_.re,M=_.im;ar(I,M)||(N+=I,D+=M,x++)}return x===0?new U(NaN,NaN):new U(N/x,D/x)}let b=0,A=0;if(r.isCContiguous)for(let h=0;h<r.size;h++){let N=Number(i[s+h]);isNaN(N)||(b+=N,A++)}else for(let h=0;h<r.size;h++){let N=Number(r.iget(h));isNaN(N)||(b+=N,A++)}return A===0?NaN:b/A}let l=t;if(l<0&&(l=u+l),l<0||l>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let f=Array.from(a).filter((b,A)=>A!==l);if(f.length===0)return iu(r);let m=f.reduce((b,A)=>b*A,1),p=a[l];if(o){let b=i,A=new Float64Array(m*2);for(let g=0;g<m;g++){let h=0,N=0,D=0;for(let x=0;x<p;x++){let C=G(g,l,x,a),w=Z(C,c,s),_=b[w*2],I=b[w*2+1];ar(_,I)||(h+=_,N+=I,D++)}D===0?(A[g*2]=NaN,A[g*2+1]=NaN):(A[g*2]=h/D,A[g*2+1]=N/D)}if(e){let g=[...a];return g[l]=1,S.fromData(A,g,n)}return S.fromData(A,f,n)}let y=new Float64Array(m);for(let b=0;b<m;b++){let A=0,g=0;for(let h=0;h<p;h++){let N=G(b,l,h,a),D=Z(N,c,s),x=Number(i[D]);isNaN(x)||(A+=x,g++)}y[b]=g===0?NaN:A/g}let d=S.fromData(y,f,"float64");if(e){let b=[...a];return b[l]=1,S.fromData(y,b,"float64")}return d}function Re(r,t,e=0,n=!1){let o=r.dtype,a=r.shape,u=a.length,i=r.data,s=r.offset,c=r.strides;if(B(o)){let b=i;if(t===void 0){let C=0,w=0,_=0,I=r.isCContiguous;if(I)for(let $=0;$<r.size;$++){let k=b[(s+$)*2],V=b[(s+$)*2+1];ar(k,V)||(C+=k,w+=V,_++)}else for(let $=0;$<r.size;$++){let k=r.iget($),V=k.re,j=k.im;ar(V,j)||(C+=V,w+=j,_++)}if(_-e<=0)return NaN;let M=C/_,T=w/_,O=0;if(I)for(let $=0;$<r.size;$++){let k=b[(s+$)*2],V=b[(s+$)*2+1];if(!ar(k,V)){let j=k-M,R=V-T;O+=j*j+R*R}}else for(let $=0;$<r.size;$++){let k=r.iget($),V=k.re,j=k.im;if(!ar(V,j)){let R=V-M,Y=j-T;O+=R*R+Y*Y}}return O/(_-e)}let A=t;if(A<0&&(A=u+A),A<0||A>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let g=Array.from(a).filter((C,w)=>w!==A);if(g.length===0)return Re(r,void 0,e);let h=g.reduce((C,w)=>C*w,1),N=a[A],D=new Float64Array(h);for(let C=0;C<h;C++){let w=0,_=0,I=0;for(let $=0;$<N;$++){let k=G(C,A,$,a),V=Z(k,c,s),j=b[V*2],R=b[V*2+1];ar(j,R)||(w+=j,_+=R,I++)}if(I-e<=0){D[C]=NaN;continue}let M=w/I,T=_/I,O=0;for(let $=0;$<N;$++){let k=G(C,A,$,a),V=Z(k,c,s),j=b[V*2],R=b[V*2+1];if(!ar(j,R)){let Y=j-M,X=R-T;O+=Y*Y+X*X}}D[C]=O/(I-e)}let x=S.fromData(D,g,"float64");if(n){let C=[...a];return C[A]=1,S.fromData(D,C,"float64")}return x}if(t===void 0){let b=0,A=0,g=r.isCContiguous;if(g)for(let D=0;D<r.size;D++){let x=Number(i[s+D]);isNaN(x)||(b+=x,A++)}else for(let D=0;D<r.size;D++){let x=Number(r.iget(D));isNaN(x)||(b+=x,A++)}if(A-e<=0)return NaN;let h=b/A,N=0;if(g)for(let D=0;D<r.size;D++){let x=Number(i[s+D]);isNaN(x)||(N+=(x-h)**2)}else for(let D=0;D<r.size;D++){let x=Number(r.iget(D));isNaN(x)||(N+=(x-h)**2)}return N/(A-e)}let l=t;if(l<0&&(l=u+l),l<0||l>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let f=Array.from(a).filter((b,A)=>A!==l);if(f.length===0)return Re(r,void 0,e);let m=f.reduce((b,A)=>b*A,1),p=a[l],y=new Float64Array(m);for(let b=0;b<m;b++){let A=0,g=0;for(let D=0;D<p;D++){let x=G(b,l,D,a),C=Z(x,c,s),w=Number(i[C]);isNaN(w)||(A+=w,g++)}if(g-e<=0){y[b]=NaN;continue}let h=A/g,N=0;for(let D=0;D<p;D++){let x=G(b,l,D,a),C=Z(x,c,s),w=Number(i[C]);isNaN(w)||(N+=(w-h)**2)}y[b]=N/(g-e)}let d=S.fromData(y,f,"float64");if(n){let b=[...a];return b[l]=1,S.fromData(y,b,"float64")}return d}function Jm(r,t,e=0,n=!1){let o=Re(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=o,u=new Float64Array(a.size);for(let i=0;i<a.size;i++)u[i]=Math.sqrt(Number(a.data[i]));return S.fromData(u,[...a.shape],"float64")}function sa(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.data,i=r.offset,s=r.strides;if(B(n)){let d=u;if(t===void 0){let x=1/0,C=1/0,w=!1;if(r.isCContiguous)for(let I=0;I<r.size;I++){let M=d[(i+I)*2],T=d[(i+I)*2+1];isNaN(M)||isNaN(T)||(w?(M<x||M===x&&T<C)&&(x=M,C=T):(x=M,C=T,w=!0))}else for(let I=0;I<r.size;I++){let M=r.iget(I),T=M.re,O=M.im;isNaN(T)||isNaN(O)||(w?(T<x||T===x&&O<C)&&(x=T,C=O):(x=T,C=O,w=!0))}return w?new U(x,C):new U(NaN,NaN)}let b=t;if(b<0&&(b=a+b),b<0||b>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let A=Array.from(o).filter((x,C)=>C!==b);if(A.length===0)return sa(r);let g=A.reduce((x,C)=>x*C,1),h=o[b],N=new Float64Array(g*2);for(let x=0;x<g;x++){let C=1/0,w=1/0,_=!1;for(let I=0;I<h;I++){let M=G(x,b,I,o),T=Z(M,s,i),O=d[T*2],$=d[T*2+1];isNaN(O)||isNaN($)||(_?(O<C||O===C&&$<w)&&(C=O,w=$):(C=O,w=$,_=!0))}N[x*2]=_?C:NaN,N[x*2+1]=_?w:NaN}let D=S.fromData(N,A,n);if(e){let x=[...o];return x[b]=1,S.fromData(N,x,n)}return D}if(t===void 0){let d=1/0;if(r.isCContiguous)for(let A=0;A<r.size;A++){let g=Number(u[i+A]);!isNaN(g)&&g<d&&(d=g)}else for(let A=0;A<r.size;A++){let g=Number(r.iget(A));!isNaN(g)&&g<d&&(d=g)}return d===1/0?NaN:d}let c=t;if(c<0&&(c=a+c),c<0||c>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let l=Array.from(o).filter((d,b)=>b!==c);if(l.length===0)return sa(r);let f=l.reduce((d,b)=>d*b,1),m=o[c],p=new Float64Array(f);for(let d=0;d<f;d++){let b=1/0;for(let A=0;A<m;A++){let g=G(d,c,A,o),h=Z(g,s,i),N=Number(u[h]);!isNaN(N)&&N<b&&(b=N)}p[d]=b===1/0?NaN:b}let y=S.fromData(p,l,"float64");if(e){let d=[...o];return d[c]=1,S.fromData(p,d,"float64")}return y}function ia(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.data,i=r.offset,s=r.strides;if(B(n)){let d=u;if(t===void 0){let x=-1/0,C=-1/0,w=!1;if(r.isCContiguous)for(let I=0;I<r.size;I++){let M=d[(i+I)*2],T=d[(i+I)*2+1];isNaN(M)||isNaN(T)||(w?(M>x||M===x&&T>C)&&(x=M,C=T):(x=M,C=T,w=!0))}else for(let I=0;I<r.size;I++){let M=r.iget(I),T=M.re,O=M.im;isNaN(T)||isNaN(O)||(w?(T>x||T===x&&O>C)&&(x=T,C=O):(x=T,C=O,w=!0))}return w?new U(x,C):new U(NaN,NaN)}let b=t;if(b<0&&(b=a+b),b<0||b>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let A=Array.from(o).filter((x,C)=>C!==b);if(A.length===0)return ia(r);let g=A.reduce((x,C)=>x*C,1),h=o[b],N=new Float64Array(g*2);for(let x=0;x<g;x++){let C=-1/0,w=-1/0,_=!1;for(let I=0;I<h;I++){let M=G(x,b,I,o),T=Z(M,s,i),O=d[T*2],$=d[T*2+1];isNaN(O)||isNaN($)||(_?(O>C||O===C&&$>w)&&(C=O,w=$):(C=O,w=$,_=!0))}N[x*2]=_?C:NaN,N[x*2+1]=_?w:NaN}let D=S.fromData(N,A,n);if(e){let x=[...o];return x[b]=1,S.fromData(N,x,n)}return D}if(t===void 0){let d=-1/0;if(r.isCContiguous)for(let A=0;A<r.size;A++){let g=Number(u[i+A]);!isNaN(g)&&g>d&&(d=g)}else for(let A=0;A<r.size;A++){let g=Number(r.iget(A));!isNaN(g)&&g>d&&(d=g)}return d===-1/0?NaN:d}let c=t;if(c<0&&(c=a+c),c<0||c>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let l=Array.from(o).filter((d,b)=>b!==c);if(l.length===0)return ia(r);let f=l.reduce((d,b)=>d*b,1),m=o[c],p=new Float64Array(f);for(let d=0;d<f;d++){let b=-1/0;for(let A=0;A<m;A++){let g=G(d,c,A,o),h=Z(g,s,i),N=Number(u[h]);!isNaN(N)&&N>b&&(b=N)}p[d]=b===-1/0?NaN:b}let y=S.fromData(p,l,"float64");if(e){let d=[...o];return d[c]=1,S.fromData(p,d,"float64")}return y}function ua(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data,u=r.offset,i=r.strides;if(B(e)){let p=a;if(t===void 0){let h=1/0,N=1/0,D=-1;if(r.isCContiguous)for(let C=0;C<r.size;C++){let w=p[(u+C)*2],_=p[(u+C)*2+1];!ar(w,_)&&zr(w,_,h,N)<0&&(h=w,N=_,D=C)}else for(let C=0;C<r.size;C++){let w=r.iget(C),_=w.re,I=w.im;!ar(_,I)&&zr(_,I,h,N)<0&&(h=_,N=I,D=C)}return D}let y=t;if(y<0&&(y=o+y),y<0||y>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let d=Array.from(n).filter((h,N)=>N!==y);if(d.length===0)return ua(r);let b=d.reduce((h,N)=>h*N,1),A=n[y],g=new Int32Array(b);for(let h=0;h<b;h++){let N=1/0,D=1/0,x=0;for(let C=0;C<A;C++){let w=G(h,y,C,n),_=Z(w,i,u),I=p[_*2],M=p[_*2+1];!ar(I,M)&&zr(I,M,N,D)<0&&(N=I,D=M,x=C)}g[h]=x}return S.fromData(g,d,"int32")}if(t===void 0){let p=1/0,y=-1;if(r.isCContiguous)for(let b=0;b<r.size;b++){let A=Number(a[u+b]);!isNaN(A)&&A<p&&(p=A,y=b)}else for(let b=0;b<r.size;b++){let A=Number(r.iget(b));!isNaN(A)&&A<p&&(p=A,y=b)}return y}let s=t;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let c=Array.from(n).filter((p,y)=>y!==s);if(c.length===0)return ua(r);let l=c.reduce((p,y)=>p*y,1),f=n[s],m=new Int32Array(l);for(let p=0;p<l;p++){let y=1/0,d=0;for(let b=0;b<f;b++){let A=G(p,s,b,n),g=Z(A,i,u),h=Number(a[g]);!isNaN(h)&&h<y&&(y=h,d=b)}m[p]=d}return S.fromData(m,c,"int32")}function ca(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data,u=r.offset,i=r.strides;if(B(e)){let p=a;if(t===void 0){let h=-1/0,N=-1/0,D=-1;if(r.isCContiguous)for(let C=0;C<r.size;C++){let w=p[(u+C)*2],_=p[(u+C)*2+1];!ar(w,_)&&zr(w,_,h,N)>0&&(h=w,N=_,D=C)}else for(let C=0;C<r.size;C++){let w=r.iget(C),_=w.re,I=w.im;!ar(_,I)&&zr(_,I,h,N)>0&&(h=_,N=I,D=C)}return D}let y=t;if(y<0&&(y=o+y),y<0||y>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let d=Array.from(n).filter((h,N)=>N!==y);if(d.length===0)return ca(r);let b=d.reduce((h,N)=>h*N,1),A=n[y],g=new Int32Array(b);for(let h=0;h<b;h++){let N=-1/0,D=-1/0,x=0;for(let C=0;C<A;C++){let w=G(h,y,C,n),_=Z(w,i,u),I=p[_*2],M=p[_*2+1];!ar(I,M)&&zr(I,M,N,D)>0&&(N=I,D=M,x=C)}g[h]=x}return S.fromData(g,d,"int32")}if(t===void 0){let p=-1/0,y=-1;if(r.isCContiguous)for(let b=0;b<r.size;b++){let A=Number(a[u+b]);!isNaN(A)&&A>p&&(p=A,y=b)}else for(let b=0;b<r.size;b++){let A=Number(r.iget(b));!isNaN(A)&&A>p&&(p=A,y=b)}return y}let s=t;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let c=Array.from(n).filter((p,y)=>y!==s);if(c.length===0)return ca(r);let l=c.reduce((p,y)=>p*y,1),f=n[s],m=new Int32Array(l);for(let p=0;p<l;p++){let y=-1/0,d=0;for(let b=0;b<f;b++){let A=G(p,s,b,n),g=Z(A,i,u),h=Number(a[g]);!isNaN(h)&&h>y&&(y=h,d=b)}m[p]=d}return S.fromData(m,c,"int32")}function Km(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data,u=r.offset;if(B(e)){let d=a,b=r.size;if(t===void 0){let I=S.zeros([b],e),M=I.data,T=0,O=0;if(r.isCContiguous)for(let k=0;k<b;k++){let V=d[(u+k)*2],j=d[(u+k)*2+1];ar(V,j)||(T+=V,O+=j),M[k*2]=T,M[k*2+1]=O}else for(let k=0;k<b;k++){let V=r.iget(k),j=V.re,R=V.im;ar(j,R)||(T+=j,O+=R),M[k*2]=T,M[k*2+1]=O}return I}let A=t;if(A<0&&(A=o+A),A<0||A>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let g=S.zeros([...n],e),h=g.data,N=n[A],D=[],x=1;for(let I=o-1;I>=0;I--)D.unshift(x),x*=n[I];let C=r.size,w=D[A];if(r.isCContiguous)for(let I=0;I<C;I++){let M=d[(u+I)*2],T=d[(u+I)*2+1],O=Math.floor(I/w)%N,$=ar(M,T);O===0?(h[I*2]=$?0:M,h[I*2+1]=$?0:T):(h[I*2]=h[(I-w)*2]+($?0:M),h[I*2+1]=h[(I-w)*2+1]+($?0:T))}else for(let I=0;I<C;I++){let M=r.iget(I),T=M.re,O=M.im,$=Math.floor(I/w)%N,k=ar(T,O);$===0?(h[I*2]=k?0:T,h[I*2+1]=k?0:O):(h[I*2]=h[(I-w)*2]+(k?0:T),h[I*2+1]=h[(I-w)*2+1]+(k?0:O))}return g}if(t===void 0){let d=r.size,b=new Float64Array(d),A=0;if(r.isCContiguous)for(let h=0;h<d;h++){let N=Number(a[u+h]);isNaN(N)||(A+=N),b[h]=A}else for(let h=0;h<d;h++){let N=Number(r.iget(h));isNaN(N)||(A+=N),b[h]=A}return S.fromData(b,[d],"float64")}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=new Float64Array(r.size),c=n[i],l=[],f=1;for(let d=o-1;d>=0;d--)l.unshift(f),f*=n[d];let m=r.size,p=l[i];if(r.isCContiguous)for(let d=0;d<m;d++){let b=Number(a[u+d]);Math.floor(d/p)%c===0?s[d]=isNaN(b)?0:b:s[d]=s[d-p]+(isNaN(b)?0:b)}else for(let d=0;d<m;d++){let b=Number(r.iget(d));Math.floor(d/p)%c===0?s[d]=isNaN(b)?0:b:s[d]=s[d-p]+(isNaN(b)?0:b)}return S.fromData(s,[...n],"float64")}function Qm(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data,u=r.offset;if(B(e)){let d=a,b=r.size;if(t===void 0){let I=S.zeros([b],e),M=I.data,T=1,O=0;if(r.isCContiguous)for(let k=0;k<b;k++){let V=d[(u+k)*2],j=d[(u+k)*2+1];if(!ar(V,j)){let R=T*V-O*j,Y=T*j+O*V;T=R,O=Y}M[k*2]=T,M[k*2+1]=O}else for(let k=0;k<b;k++){let V=r.iget(k),j=V.re,R=V.im;if(!ar(j,R)){let Y=T*j-O*R,X=T*R+O*j;T=Y,O=X}M[k*2]=T,M[k*2+1]=O}return I}let A=t;if(A<0&&(A=o+A),A<0||A>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let g=S.zeros([...n],e),h=g.data,N=n[A],D=[],x=1;for(let I=o-1;I>=0;I--)D.unshift(x),x*=n[I];let C=r.size,w=D[A];if(r.isCContiguous)for(let I=0;I<C;I++){let M=d[(u+I)*2],T=d[(u+I)*2+1],O=Math.floor(I/w)%N,$=ar(M,T);if(O===0)h[I*2]=$?1:M,h[I*2+1]=$?0:T;else{let k=h[(I-w)*2],V=h[(I-w)*2+1];$?(h[I*2]=k,h[I*2+1]=V):(h[I*2]=k*M-V*T,h[I*2+1]=k*T+V*M)}}else for(let I=0;I<C;I++){let M=r.iget(I),T=M.re,O=M.im,$=Math.floor(I/w)%N,k=ar(T,O);if($===0)h[I*2]=k?1:T,h[I*2+1]=k?0:O;else{let V=h[(I-w)*2],j=h[(I-w)*2+1];k?(h[I*2]=V,h[I*2+1]=j):(h[I*2]=V*T-j*O,h[I*2+1]=V*O+j*T)}}return g}if(t===void 0){let d=r.size,b=new Float64Array(d),A=1;if(r.isCContiguous)for(let h=0;h<d;h++){let N=Number(a[u+h]);isNaN(N)||(A*=N),b[h]=A}else for(let h=0;h<d;h++){let N=Number(r.iget(h));isNaN(N)||(A*=N),b[h]=A}return S.fromData(b,[d],"float64")}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=new Float64Array(r.size),c=n[i],l=[],f=1;for(let d=o-1;d>=0;d--)l.unshift(f),f*=n[d];let m=r.size,p=l[i];if(r.isCContiguous)for(let d=0;d<m;d++){let b=Number(a[u+d]);Math.floor(d/p)%c===0?s[d]=isNaN(b)?1:b:s[d]=s[d-p]*(isNaN(b)?1:b)}else for(let d=0;d<m;d++){let b=Number(r.iget(d));Math.floor(d/p)%c===0?s[d]=isNaN(b)?1:b:s[d]=s[d-p]*(isNaN(b)?1:b)}return S.fromData(s,[...n],"float64")}function uu(r,t,e=!1){L(r.dtype,"nanmedian","Complex numbers are not orderable.");let n=r.shape,o=n.length,a=r.data,u=r.offset,i=r.strides;if(t===void 0){let y=[];if(r.isCContiguous)for(let g=0;g<r.size;g++){let h=Number(a[u+g]);isNaN(h)||y.push(h)}else for(let g=0;g<r.size;g++){let h=Number(r.iget(g));isNaN(h)||y.push(h)}if(y.length===0)return NaN;y.sort((g,h)=>g-h);let b=y.length,A=Math.floor(b/2);return b%2===0?(y[A-1]+y[A])/2:y[A]}let s=t;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let c=Array.from(n).filter((y,d)=>d!==s);if(c.length===0)return uu(r);let l=c.reduce((y,d)=>y*d,1),f=n[s],m=new Float64Array(l);for(let y=0;y<l;y++){let d=[];for(let g=0;g<f;g++){let h=G(y,s,g,n),N=Z(h,i,u),D=Number(a[N]);isNaN(D)||d.push(D)}if(d.length===0){m[y]=NaN;continue}d.sort((g,h)=>g-h);let b=d.length,A=Math.floor(b/2);b%2===0?m[y]=(d[A-1]+d[A])/2:m[y]=d[A]}let p=S.fromData(m,c,"float64");if(e){let y=[...n];return y[s]=1,S.fromData(m,y,"float64")}return p}function fa(r,t,e,n=!1){if(L(r.dtype,"nanquantile","Complex numbers are not orderable."),t<0||t>1)throw new Error("Quantile must be between 0 and 1");let o=r.shape,a=o.length,u=r.data,i=r.offset,s=r.strides;if(e===void 0){let d=[];if(r.isCContiguous)for(let x=0;x<r.size;x++){let C=Number(u[i+x]);isNaN(C)||d.push(C)}else for(let x=0;x<r.size;x++){let C=Number(r.iget(x));isNaN(C)||d.push(C)}if(d.length===0)return NaN;d.sort((x,C)=>x-C);let A=d.length,g=t*(A-1),h=Math.floor(g),N=Math.ceil(g);if(h===N)return d[h];let D=g-h;return d[h]*(1-D)+d[N]*D}let c=e;if(c<0&&(c=a+c),c<0||c>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);let l=Array.from(o).filter((d,b)=>b!==c);if(l.length===0)return fa(r,t);let f=l.reduce((d,b)=>d*b,1),m=o[c],p=new Float64Array(f);for(let d=0;d<f;d++){let b=[];for(let D=0;D<m;D++){let x=G(d,c,D,o),C=Z(x,s,i),w=Number(u[C]);isNaN(w)||b.push(w)}if(b.length===0){p[d]=NaN;continue}b.sort((D,x)=>D-x);let A=b.length,g=t*(A-1),h=Math.floor(g),N=Math.ceil(g);if(h===N)p[d]=b[h];else{let D=g-h;p[d]=b[h]*(1-D)+b[N]*D}}let y=S.fromData(p,l,"float64");if(n){let d=[...o];return d[c]=1,S.fromData(p,d,"float64")}return y}function Hm(r,t,e,n=!1){return fa(r,t/100,e,n)}function Ve(r,t,e){let n=ke(z(r),t,e);return typeof n=="number"||typeof n=="bigint"||n instanceof U?n:v(n)}function Pe(r,t,e){let n=la(z(r),t,e);return typeof n=="number"||n instanceof U?n:v(n)}function je(r,t,e){let n=Hi(z(r),t,e);return typeof n=="number"||typeof n=="bigint"||n instanceof U?n:v(n)}function Le(r,t,e){let n=ht(z(r),t,e);return typeof n=="number"||n instanceof U?n:v(n)}var We=Le;function Ge(r,t,e){let n=Nt(z(r),t,e);return typeof n=="number"||n instanceof U?n:v(n)}var Ye=Ge;function Ze(r,t,e){let n=Ym(z(r),t,e);return typeof n=="number"||n instanceof U?n:v(n)}function Xe(r,t){let e=ru(z(r),t);return typeof e=="number"?e:v(e)}function Je(r,t){let e=tu(z(r),t);return typeof e=="number"?e:v(e)}function rt(r,t,e,n){let o=eu(z(r),t,e,n);return typeof o=="number"?o:v(o)}var ma=rt;function Ke(r,t,e,n){let o=Lm(z(r),t,e,n);return typeof o=="number"?o:v(o)}function Qe(r,t,e){let n=Zm(z(r),t,e);return typeof n=="number"?n:v(n)}function He(r,t,e,n){let o=Xm(z(r),t,e,n);return typeof o=="number"?o:v(o)}function rn(r,t,e,n){let o=qe(z(r),t,e,n);return typeof o=="number"?o:v(o)}function tn(r,t,e,n){let o=e?z(e):void 0,a=aa(z(r),t,o,n);return typeof a=="number"||a instanceof U?a:v(a)}function en(r,t,e){let n=nu(z(r),t,e);return typeof n=="boolean"?n:v(n)}function nn(r,t,e){let n=ou(z(r),t,e);return typeof n=="boolean"?n:v(n)}function on(r,t){return v(Wm(z(r),t))}function an(r,t){return v(Gm(z(r),t))}function sn(r,t,e){let n=au(z(r),t,e);return typeof n=="number"||n instanceof U?n:v(n)}function un(r,t,e){let n=su(z(r),t,e);return typeof n=="number"||n instanceof U?n:v(n)}function cn(r,t,e){let n=iu(z(r),t,e);return typeof n=="number"||n instanceof U?n:v(n)}function ln(r,t,e,n){let o=Re(z(r),t,e,n);return typeof o=="number"?o:v(o)}function fn(r,t,e,n){let o=Jm(z(r),t,e,n);return typeof o=="number"?o:v(o)}function mn(r,t,e){let n=sa(z(r),t,e);return typeof n=="number"||n instanceof U?n:v(n)}function pn(r,t,e){let n=ia(z(r),t,e);return typeof n=="number"||n instanceof U?n:v(n)}function yn(r,t){let e=ua(z(r),t);return typeof e=="number"?e:v(e)}function dn(r,t){let e=ca(z(r),t);return typeof e=="number"?e:v(e)}function bn(r,t){return v(Km(z(r),t))}function An(r,t){return v(Qm(z(r),t))}function gn(r,t,e){let n=uu(z(r),t,e);return typeof n=="number"?n:v(n)}function hn(r,t,e,n){let o=fa(z(r),t,e,n);return typeof o=="number"?o:v(o)}function Nn(r,t,e,n){let o=Hm(z(r),t,e,n);return typeof o=="number"?o:v(o)}function xt(r){return r!==0&&r!==0n}function Rr(r,t){let e=r[t*2],n=r[t*2+1];return e!==0||n!==0}function Dn(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function tp(r,t){return typeof t=="number"?wD(r,t):Dn(r,t)?SD(r,t):Ir(r,t,(e,n)=>xt(e)&&xt(n))}function SD(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.offset,u=t.offset,i=r.size,s=E(r.dtype),c=E(t.dtype),l=B(r.dtype),f=B(t.dtype);if(l||f)for(let m=0;m<i;m++){let p=l?Rr(n,a+m):n[a+m]!==0,y=f?Rr(o,u+m):o[u+m]!==0;e[m]=p&&y?1:0}else if(s||c)for(let m=0;m<i;m++){let p=s?n[a+m]!==0n:n[a+m]!==0,y=c?o[u+m]!==0n:o[u+m]!==0;e[m]=p&&y?1:0}else for(let m=0;m<i;m++)e[m]=n[a+m]!==0&&o[u+m]!==0?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function wD(r,t){let e=new Uint8Array(r.size),n=t!==0,o=r.size;if(r.isCContiguous){let a=r.data,u=r.offset;if(B(r.dtype)){let i=a;for(let s=0;s<o;s++)e[s]=Rr(i,u+s)&&n?1:0}else if(E(r.dtype)){let i=a;for(let s=0;s<o;s++)e[s]=i[u+s]!==0n&&n?1:0}else if(u===0)for(let i=0;i<o;i++)e[i]=a[i]!==0&&n?1:0;else for(let i=0;i<o;i++)e[i]=a[u+i]!==0&&n?1:0}else if(B(r.dtype))for(let a=0;a<o;a++){let u=r.iget(a);e[a]=(u.re!==0||u.im!==0)&&n?1:0}else if(E(r.dtype))for(let a=0;a<o;a++)e[a]=r.iget(a)!==0n&&n?1:0;else for(let a=0;a<o;a++)e[a]=Number(r.iget(a))!==0&&n?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function ep(r,t){if(typeof t=="number")return rp(r,t);if(t.size===1&&!B(t.dtype)&&r.dtype===t.dtype){let e=Number(t.iget(0));return rp(r,e)}return Dn(r,t)?ID(r,t):Ir(r,t,(e,n)=>xt(e)||xt(n))}function ID(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.offset,u=t.offset,i=r.size,s=E(r.dtype),c=E(t.dtype),l=B(r.dtype),f=B(t.dtype);if(l||f)for(let m=0;m<i;m++){let p=l?Rr(n,a+m):n[a+m]!==0,y=f?Rr(o,u+m):o[u+m]!==0;e[m]=p||y?1:0}else if(s||c)for(let m=0;m<i;m++){let p=s?n[a+m]!==0n:n[a+m]!==0,y=c?o[u+m]!==0n:o[u+m]!==0;e[m]=p||y?1:0}else for(let m=0;m<i;m++)e[m]=n[a+m]!==0||o[u+m]!==0?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function rp(r,t){let e=new Uint8Array(r.size),n=t!==0,o=r.size;if(r.isCContiguous){let a=r.data,u=r.offset;if(B(r.dtype)){let i=a;for(let s=0;s<o;s++)e[s]=Rr(i,u+s)||n?1:0}else if(E(r.dtype)){let i=a;for(let s=0;s<o;s++)e[s]=i[u+s]!==0n||n?1:0}else if(u===0)for(let i=0;i<o;i++)e[i]=a[i]!==0||n?1:0;else for(let i=0;i<o;i++)e[i]=a[u+i]!==0||n?1:0}else if(B(r.dtype))for(let a=0;a<o;a++){let u=r.iget(a);e[a]=u.re!==0||u.im!==0||n?1:0}else if(E(r.dtype))for(let a=0;a<o;a++)e[a]=r.iget(a)!==0n||n?1:0;else for(let a=0;a<o;a++)e[a]=Number(r.iget(a))!==0||n?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function np(r){let t=new Uint8Array(r.size),e=r.size;if(r.isCContiguous){let n=r.data,o=r.offset;if(B(r.dtype)){let a=n;for(let u=0;u<e;u++)t[u]=Rr(a,o+u)?0:1}else if(E(r.dtype)){let a=n;for(let u=0;u<e;u++)t[u]=a[o+u]===0n?1:0}else if(o===0)for(let a=0;a<e;a++)t[a]=n[a]===0?1:0;else for(let a=0;a<e;a++)t[a]=n[o+a]===0?1:0}else if(B(r.dtype))for(let n=0;n<e;n++){let o=r.iget(n);t[n]=o.re===0&&o.im===0?1:0}else if(E(r.dtype))for(let n=0;n<e;n++)t[n]=r.iget(n)===0n?1:0;else for(let n=0;n<e;n++)t[n]=Number(r.iget(n))===0?1:0;return S.fromData(t,Array.from(r.shape),"bool")}function op(r,t){return typeof t=="number"?_D(r,t):Dn(r,t)?zD(r,t):Ir(r,t,(e,n)=>xt(e)!==xt(n))}function zD(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.offset,u=t.offset,i=r.size,s=E(r.dtype),c=E(t.dtype),l=B(r.dtype),f=B(t.dtype);if(l||f)for(let m=0;m<i;m++){let p=l?Rr(n,a+m):n[a+m]!==0,y=f?Rr(o,u+m):o[u+m]!==0;e[m]=p!==y?1:0}else if(s||c)for(let m=0;m<i;m++){let p=s?n[a+m]!==0n:n[a+m]!==0,y=c?o[u+m]!==0n:o[u+m]!==0;e[m]=p!==y?1:0}else for(let m=0;m<i;m++){let p=n[a+m]!==0,y=o[u+m]!==0;e[m]=p!==y?1:0}return S.fromData(e,Array.from(r.shape),"bool")}function _D(r,t){let e=new Uint8Array(r.size),n=t!==0,o=r.size;if(r.isCContiguous){let a=r.data,u=r.offset;if(B(r.dtype)){let i=a;for(let s=0;s<o;s++){let c=Rr(i,u+s);e[s]=c!==n?1:0}}else if(E(r.dtype)){let i=a;for(let s=0;s<o;s++){let c=i[u+s]!==0n;e[s]=c!==n?1:0}}else if(u===0)for(let i=0;i<o;i++){let s=a[i]!==0;e[i]=s!==n?1:0}else for(let i=0;i<o;i++){let s=a[u+i]!==0;e[i]=s!==n?1:0}}else if(B(r.dtype))for(let a=0;a<o;a++){let u=r.iget(a),i=u.re!==0||u.im!==0;e[a]=i!==n?1:0}else if(E(r.dtype))for(let a=0;a<o;a++){let u=r.iget(a)!==0n;e[a]=u!==n?1:0}else for(let a=0;a<o;a++){let u=Number(r.iget(a))!==0;e[a]=u!==n?1:0}return S.fromData(e,Array.from(r.shape),"bool")}function ap(r){let t=new Uint8Array(r.size),e=r.size;if(r.isCContiguous){let n=r.data,o=r.offset;if(B(r.dtype)){let a=n;for(let u=0;u<e;u++){let i=a[(o+u)*2],s=a[(o+u)*2+1];t[u]=Number.isFinite(i)&&Number.isFinite(s)?1:0}}else if(E(r.dtype))for(let a=0;a<e;a++)t[a]=1;else if(o===0)for(let a=0;a<e;a++)t[a]=Number.isFinite(n[a])?1:0;else for(let a=0;a<e;a++){let u=n[o+a];t[a]=Number.isFinite(u)?1:0}}else if(B(r.dtype))for(let n=0;n<e;n++){let o=r.iget(n);t[n]=Number.isFinite(o.re)&&Number.isFinite(o.im)?1:0}else if(E(r.dtype))for(let n=0;n<e;n++)t[n]=1;else for(let n=0;n<e;n++)t[n]=Number.isFinite(Number(r.iget(n)))?1:0;return S.fromData(t,Array.from(r.shape),"bool")}function sp(r){let t=new Uint8Array(r.size),e=r.size;if(r.isCContiguous){let n=r.data,o=r.offset;if(B(r.dtype)){let a=n;for(let u=0;u<e;u++){let i=a[(o+u)*2],s=a[(o+u)*2+1],c=!Number.isFinite(i)&&!Number.isNaN(i),l=!Number.isFinite(s)&&!Number.isNaN(s);t[u]=c||l?1:0}}else if(E(r.dtype))for(let a=0;a<e;a++)t[a]=0;else if(o===0)for(let a=0;a<e;a++){let u=n[a];t[a]=!Number.isFinite(u)&&!Number.isNaN(u)?1:0}else for(let a=0;a<e;a++){let u=n[o+a];t[a]=!Number.isFinite(u)&&!Number.isNaN(u)?1:0}}else if(B(r.dtype))for(let n=0;n<e;n++){let o=r.iget(n),a=!Number.isFinite(o.re)&&!Number.isNaN(o.re),u=!Number.isFinite(o.im)&&!Number.isNaN(o.im);t[n]=a||u?1:0}else if(E(r.dtype))for(let n=0;n<e;n++)t[n]=0;else for(let n=0;n<e;n++){let o=Number(r.iget(n));t[n]=!Number.isFinite(o)&&!Number.isNaN(o)?1:0}return S.fromData(t,Array.from(r.shape),"bool")}function ip(r){let t=new Uint8Array(r.size),e=r.size;if(r.isCContiguous){let n=r.data,o=r.offset;if(B(r.dtype)){let a=n;for(let u=0;u<e;u++){let i=a[(o+u)*2],s=a[(o+u)*2+1];t[u]=Number.isNaN(i)||Number.isNaN(s)?1:0}}else if(E(r.dtype))for(let a=0;a<e;a++)t[a]=0;else for(let a=0;a<e;a++)t[a]=Number.isNaN(n[o+a])?1:0}else if(B(r.dtype))for(let n=0;n<e;n++){let o=r.iget(n);t[n]=Number.isNaN(o.re)||Number.isNaN(o.im)?1:0}else if(E(r.dtype))for(let n=0;n<e;n++)t[n]=0;else for(let n=0;n<e;n++)t[n]=Number.isNaN(Number(r.iget(n)))?1:0;return S.fromData(t,Array.from(r.shape),"bool")}function up(r){let t=new Uint8Array(r.size);return S.fromData(t,Array.from(r.shape),"bool")}function cp(r,t){if(L(r.dtype,"copysign","copysign is only defined for real numbers."),typeof t!="number"&&L(t.dtype,"copysign","copysign is only defined for real numbers."),typeof t=="number")return vD(r,t);if(Dn(r,t))return MD(r,t);let e=Gr(r.shape,t.shape),n=e.reduce((s,c)=>s*c,1),o=S.zeros(e,"float64"),a=o.data,u=pa(r,e),i=pa(t,e);for(let s=0;s<n;s++){let c=Number(u.iget(s)),l=Number(i.iget(s));a[s]=Math.sign(l)*Math.abs(c)}return o}function MD(r,t){let e=S.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size,a=r.data,u=t.data,i=r.offset,s=t.offset,c=E(r.dtype),l=E(t.dtype);for(let f=0;f<o;f++){let m=c?Number(a[i+f]):a[i+f],p=l?Number(u[s+f]):u[s+f];n[f]=Math.sign(p)*Math.abs(m)}return e}function vD(r,t){let e=S.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size,a=Math.sign(t);if(!r.isCContiguous){for(let s=0;s<o;s++)n[s]=a*Math.abs(Number(r.iget(s)));return e}let u=r.data,i=r.offset;if(E(r.dtype)){let s=u;for(let c=0;c<o;c++)n[c]=a*Math.abs(Number(s[i+c]))}else if(i===0)for(let s=0;s<o;s++)n[s]=a*Math.abs(u[s]);else for(let s=0;s<o;s++)n[s]=a*Math.abs(u[i+s]);return e}function lp(r){L(r.dtype,"signbit","signbit is only defined for real numbers.");let t=new Uint8Array(r.size),e=r.size;if(r.isCContiguous){let n=r.data,o=r.offset;if(E(r.dtype)){let a=n;for(let u=0;u<e;u++)t[u]=a[o+u]<0n?1:0}else for(let a=0;a<e;a++){let u=n[o+a];t[a]=u<0||Object.is(u,-0)?1:0}}else if(E(r.dtype))for(let n=0;n<e;n++)t[n]=r.iget(n)<0n?1:0;else for(let n=0;n<e;n++){let o=Number(r.iget(n));t[n]=o<0||Object.is(o,-0)?1:0}return S.fromData(t,Array.from(r.shape),"bool")}function fp(r,t){if(L(r.dtype,"nextafter","nextafter is only defined for real numbers."),typeof t!="number"&&L(t.dtype,"nextafter","nextafter is only defined for real numbers."),typeof t=="number")return BD(r,t);if(Dn(r,t))return FD(r,t);let e=Gr(r.shape,t.shape),n=e.reduce((s,c)=>s*c,1),o=S.zeros(e,"float64"),a=o.data,u=pa(r,e),i=pa(t,e);for(let s=0;s<n;s++){let c=Number(u.iget(s)),l=Number(i.iget(s));a[s]=Dt(c,l)}return o}function FD(r,t){let e=S.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size,a=r.data,u=t.data,i=r.offset,s=t.offset,c=E(r.dtype),l=E(t.dtype);for(let f=0;f<o;f++){let m=c?Number(a[i+f]):a[i+f],p=l?Number(u[s+f]):u[s+f];n[f]=Dt(m,p)}return e}function BD(r,t){let e=S.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size;if(r.isCContiguous){let a=r.data,u=r.offset;if(E(r.dtype)){let i=a;for(let s=0;s<o;s++)n[s]=Dt(Number(i[u+s]),t)}else for(let i=0;i<o;i++)n[i]=Dt(a[u+i],t)}else for(let a=0;a<o;a++)n[a]=Dt(Number(r.iget(a)),t);return e}function Dt(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 mp(r){L(r.dtype,"spacing","spacing is only defined for real numbers.");let t=S.zeros(Array.from(r.shape),"float64"),e=t.data,n=r.size;if(r.isCContiguous){let o=r.data,a=r.offset;if(E(r.dtype)){let u=o;for(let i=0;i<n;i++)e[i]=cu(Number(u[a+i]))}else for(let u=0;u<n;u++)e[u]=cu(o[a+u])}else for(let o=0;o<n;o++)e[o]=cu(Number(r.iget(o)));return t}function cu(r){if(Number.isNaN(r))return NaN;if(!Number.isFinite(r))return NaN;if(Math.abs(r)===0)return Number.MIN_VALUE;let e=Dt(r,1/0);return Math.abs(e-r)}function pa(r,t){let e=r.shape.length,n=t.length,o=new Array(n).fill(0);for(let a=0;a<e;a++){let u=n-e+a,i=r.shape[a],s=t[u];if(i===s)o[u]=r.strides[a];else if(i===1)o[u]=0;else throw new Error("Invalid broadcast")}return S.fromData(r.data,Array.from(t),r.dtype,o,r.offset)}function pp(r){let t=r.dtype,e=r.size,n=new Uint8Array(e);if(B(t))if(r.isCContiguous){let o=r.offset,a=r.data;for(let u=0;u<e;u++)n[u]=a[(o+u)*2+1]!==0?1:0}else for(let o=0;o<e;o++){let a=r.iget(o);n[o]=a.im!==0?1:0}return S.fromData(n,Array.from(r.shape),"bool")}function yp(r){return B(r.dtype)}function dp(r){let t=r.dtype,e=r.size,n=new Uint8Array(e);if(B(t))if(r.isCContiguous){let o=r.offset,a=r.data;for(let u=0;u<e;u++)n[u]=a[(o+u)*2+1]===0?1:0}else for(let o=0;o<e;o++){let a=r.iget(o);n[o]=a.im===0?1:0}else n.fill(1);return S.fromData(n,Array.from(r.shape),"bool")}function bp(r){return!B(r.dtype)}function Ap(r){L(r.dtype,"isneginf","This operation is not supported for complex values because it would be ambiguous.");let t=new Uint8Array(r.size),e=r.size;if(!E(r.dtype))if(r.isCContiguous){let n=r.data,o=r.offset;for(let a=0;a<e;a++){let u=n[o+a];t[a]=u===-1/0?1:0}}else for(let n=0;n<e;n++)t[n]=Number(r.iget(n))===-1/0?1:0;return S.fromData(t,Array.from(r.shape),"bool")}function gp(r){L(r.dtype,"isposinf","This operation is not supported for complex values because it would be ambiguous.");let t=new Uint8Array(r.size),e=r.size;if(!E(r.dtype))if(r.isCContiguous){let n=r.data,o=r.offset;for(let a=0;a<e;a++){let u=n[o+a];t[a]=u===1/0?1:0}}else for(let n=0;n<e;n++)t[n]=Number(r.iget(n))===1/0?1:0;return S.fromData(t,Array.from(r.shape),"bool")}function hp(r){return r.isFContiguous}function Np(r,t=100){let e=r.dtype;if(B(e)){let n=r.size,a=t*(e==="complex64"?11920929e-14:2220446049250313e-31);if(r.isCContiguous){let u=r.data,i=r.offset,s=!0;for(let c=0;c<n;c++){let l=u[(i+c)*2+1];if(Math.abs(l)>a){s=!1;break}}if(s){let c=e==="complex64"?"float32":"float64",l=S.zeros(Array.from(r.shape),c),f=l.data;for(let m=0;m<n;m++)f[m]=u[(i+m)*2];return l}}else{let u=!0;for(let i=0;i<n;i++){let s=r.iget(i);if(Math.abs(s.im)>a){u=!1;break}}if(u){let i=e==="complex64"?"float32":"float64",s=S.zeros(Array.from(r.shape),i),c=s.data;for(let l=0;l<n;l++){let f=r.iget(l);c[l]=f.re}return s}}return r.copy()}return r.copy()}function Dp(r){return typeof r=="number"||typeof r=="bigint"||typeof r=="boolean"||typeof r=="string"}function xp(r){return r==null?!1:typeof r[Symbol.iterator]=="function"}function Cp(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 Sp(r,t){let e=["float64","float32","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"],n=e.indexOf(r),o=e.indexOf(t);return n<=o?r:t}function qr(r){if(r.length===0)return[];if(r.length===1)return Array.from(r[0]);let t=Math.max(...r.map(n=>n.length)),e=new Array(t);for(let n=0;n<t;n++){let o=1;for(let a of r){let u=a.length-t+n,i=u<0?1:a[u];if(i!==1){if(o===1)o=i;else if(o!==i)return null}}e[n]=o}return e}function ED(r,t,e){let n=r.length,o=e.length,a=new Array(o).fill(0);for(let u=0;u<n;u++){let i=o-n+u,s=r[u],c=e[i];if(s===c)a[i]=t[u];else if(s===1)a[i]=0;else throw new Error("Invalid broadcast")}return a}function _r(r,t){let e=ED(r.shape,r.strides,t);return S.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function tt(r,t){return[r[t*2],r[t*2+1]]}function wp(r,t){if(B(r.dtype))return tt(r.data,t);let e=r.iget(t);return e instanceof U?[e.re,e.im]:[Number(e),0]}function Ct(r,t,e){let n=qr([Array.from(r.shape),Array.from(t.shape)]);if(!n)throw new Error("Cannot broadcast arrays together");let o=_r(r,n),a=_r(t,n),u=n.reduce((s,c)=>s*c,1),i=new Uint8Array(u);for(let s=0;s<u;s++){let[c,l]=wp(o,s),[f,m]=wp(a,s);i[s]=e(c,l,f,m)?1:0}return S.fromData(i,n,"bool")}function Ip(r,t){return typeof t=="number"?OD(r,t):B(r.dtype)||B(t.dtype)?Ct(r,t,(e,n,o,a)=>e!==o?e>o:n>a):Ir(r,t,(e,n)=>e>n)}function zp(r,t){return typeof t=="number"?UD(r,t):B(r.dtype)||B(t.dtype)?Ct(r,t,(e,n,o,a)=>e!==o?e>=o:n>=a):Ir(r,t,(e,n)=>e>=n)}function _p(r,t){return typeof t=="number"?$D(r,t):B(r.dtype)||B(t.dtype)?Ct(r,t,(e,n,o,a)=>e!==o?e<o:n<a):Ir(r,t,(e,n)=>e<n)}function Mp(r,t){return typeof t=="number"?kD(r,t):B(r.dtype)||B(t.dtype)?Ct(r,t,(e,n,o,a)=>e!==o?e<=o:n<=a):Ir(r,t,(e,n)=>e<=n)}function vp(r,t){return typeof t=="number"?RD(r,t):B(r.dtype)||B(t.dtype)?Ct(r,t,(e,n,o,a)=>e===o&&n===a):Ir(r,t,(e,n)=>e===n)}function Fp(r,t){return typeof t=="number"?qD(r,t):B(r.dtype)||B(t.dtype)?Ct(r,t,(e,n,o,a)=>e!==o||n!==a):Ir(r,t,(e,n)=>e!==n)}function lu(r,t,e=1e-5,n=1e-8){return typeof t=="number"?VD(r,t,e,n):Ir(r,t,(o,a)=>{let u=Math.abs(o-a),i=n+e*Math.abs(a);return u<=i})}function Bp(r,t,e=1e-5,n=1e-8){let o=lu(r,t,e,n),a=o.data;for(let u=0;u<o.size;u++)if(a[u]===0)return!1;return!0}function Tp(r,t){let e=[Array.from(r.shape),Array.from(t.shape)],n=qr(e);if(n===null)return!1;let o=_r(r,n),a=_r(t,n),u=n.length,i=n.reduce((l,f)=>l*f,1),s=E(o.dtype),c=E(a.dtype);for(let l=0;l<i;l++){let f=l,m=new Array(u);for(let d=u-1;d>=0;d--)m[d]=f%n[d],f=Math.floor(f/n[d]);let p=o.get(...m),y=a.get(...m);if(s||c){let d=typeof p=="bigint"?p:BigInt(Number(p)),b=typeof y=="bigint"?y:BigInt(Number(y));if(d!==b)return!1}else if(p!==y)return!1}return!0}function OD(r,t){let e=new Uint8Array(r.size),n=r.size,o=r.isCContiguous;if(B(r.dtype))if(o){let a=r.data,u=r.offset;for(let i=0;i<n;i++){let[s,c]=tt(a,u+i);e[i]=(s!==t?s>t:c>0)?1:0}}else for(let a=0;a<n;a++){let u=r.iget(a);e[a]=(u.re!==t?u.re>t:u.im>0)?1:0}else if(o){let a=r.data,u=r.offset;for(let i=0;i<n;i++)e[i]=a[u+i]>t?1:0}else for(let a=0;a<n;a++)e[a]=Number(r.iget(a))>t?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function UD(r,t){let e=new Uint8Array(r.size),n=r.size,o=r.isCContiguous;if(B(r.dtype))if(o){let a=r.data,u=r.offset;for(let i=0;i<n;i++){let[s,c]=tt(a,u+i);e[i]=(s!==t?s>=t:c>=0)?1:0}}else for(let a=0;a<n;a++){let u=r.iget(a);e[a]=(u.re!==t?u.re>=t:u.im>=0)?1:0}else if(o){let a=r.data,u=r.offset;for(let i=0;i<n;i++)e[i]=a[u+i]>=t?1:0}else for(let a=0;a<n;a++)e[a]=Number(r.iget(a))>=t?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function $D(r,t){let e=new Uint8Array(r.size),n=r.size,o=r.isCContiguous;if(B(r.dtype))if(o){let a=r.data,u=r.offset;for(let i=0;i<n;i++){let[s,c]=tt(a,u+i);e[i]=(s!==t?s<t:c<0)?1:0}}else for(let a=0;a<n;a++){let u=r.iget(a);e[a]=(u.re!==t?u.re<t:u.im<0)?1:0}else if(o){let a=r.data,u=r.offset;for(let i=0;i<n;i++)e[i]=a[u+i]<t?1:0}else for(let a=0;a<n;a++)e[a]=Number(r.iget(a))<t?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function kD(r,t){let e=new Uint8Array(r.size),n=r.size,o=r.isCContiguous;if(B(r.dtype))if(o){let a=r.data,u=r.offset;for(let i=0;i<n;i++){let[s,c]=tt(a,u+i);e[i]=(s!==t?s<=t:c<=0)?1:0}}else for(let a=0;a<n;a++){let u=r.iget(a);e[a]=(u.re!==t?u.re<=t:u.im<=0)?1:0}else if(o){let a=r.data,u=r.offset;for(let i=0;i<n;i++)e[i]=a[u+i]<=t?1:0}else for(let a=0;a<n;a++)e[a]=Number(r.iget(a))<=t?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function RD(r,t){let e=new Uint8Array(r.size),n=r.size,o=r.dtype,a=r.isCContiguous;if(B(o))if(a){let u=r.data,i=r.offset;for(let s=0;s<n;s++){let[c,l]=tt(u,i+s);e[s]=c===t&&l===0?1:0}}else for(let u=0;u<n;u++){let i=r.iget(u);e[u]=i.re===t&&i.im===0?1:0}else if(E(o)){let u=BigInt(Math.round(t));if(a){let i=r.data,s=r.offset;for(let c=0;c<n;c++)e[c]=i[s+c]===u?1:0}else for(let i=0;i<n;i++)e[i]=r.iget(i)===u?1:0}else if(a){let u=r.data,i=r.offset;for(let s=0;s<n;s++)e[s]=u[i+s]===t?1:0}else for(let u=0;u<n;u++)e[u]=Number(r.iget(u))===t?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function qD(r,t){let e=new Uint8Array(r.size),n=r.size,o=r.dtype,a=r.isCContiguous;if(B(o))if(a){let u=r.data,i=r.offset;for(let s=0;s<n;s++){let[c,l]=tt(u,i+s);e[s]=c!==t||l!==0?1:0}}else for(let u=0;u<n;u++){let i=r.iget(u);e[u]=i.re!==t||i.im!==0?1:0}else if(a){let u=r.data,i=r.offset;for(let s=0;s<n;s++)e[s]=u[i+s]!==t?1:0}else for(let u=0;u<n;u++)e[u]=Number(r.iget(u))!==t?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function VD(r,t,e,n){let o=new Uint8Array(r.size),a=r.size,u=n+e*Math.abs(t);if(r.isCContiguous){let i=r.data,s=r.offset;for(let c=0;c<a;c++){let l=Math.abs(Number(i[s+c])-t);o[c]=l<=u?1:0}}else for(let i=0;i<a;i++){let s=Math.abs(Number(r.iget(i))-t);o[i]=s<=u?1:0}return S.fromData(o,Array.from(r.shape),"bool")}function xn(r,t){let e=typeof t=="number"?t:z(t);return v(tp(z(r),e))}function Cn(r,t){let e=typeof t=="number"?t:z(t);return v(ep(z(r),e))}function Sn(r){return v(np(z(r)))}function wn(r,t){let e=typeof t=="number"?t:z(t);return v(op(z(r),e))}function In(r){return v(ap(z(r)))}function zn(r){return v(sp(z(r)))}function _n(r){return v(ip(z(r)))}function Mn(r){return v(up(z(r)))}function fu(r){return v(Ap(z(r)))}function mu(r){return v(gp(z(r)))}function pu(r){return v(pp(z(r)))}function ya(r){return yp(z(r))}function yu(r){return v(dp(z(r)))}function da(r){return bp(z(r))}function du(r,t){return v(Np(z(r),t))}function ba(r){return hp(z(r))}function Aa(r){return Dp(r)}function ga(r){return xp(r)}function ha(r,t){return Cp(r,t)}function Na(r,t){return Sp(r,t)}function vn(r,t){let e=typeof t=="number"?t:z(t);return v(cp(z(r),e))}function Fn(r){return v(lp(z(r)))}function Bn(r,t){let e=typeof t=="number"?t:z(t);return v(fp(z(r),e))}function Tn(r){return v(mp(z(r)))}function En(r,t){return v(Ip(z(r),typeof t=="number"?t:z(t)))}function On(r,t){return v(zp(z(r),typeof t=="number"?t:z(t)))}function Un(r,t){return v(_p(z(r),typeof t=="number"?t:z(t)))}function $n(r,t){return v(Mp(z(r),typeof t=="number"?t:z(t)))}function kn(r,t){return v(vp(z(r),typeof t=="number"?t:z(t)))}function Rn(r,t){return v(Fp(z(r),typeof t=="number"?t:z(t)))}function qn(r,t,e=1e-5,n=1e-8){return v(lu(z(r),typeof t=="number"?t:z(t),e,n))}function St(r,t,e=1e-5,n=1e-8){return Bp(z(r),typeof t=="number"?t:z(t),e,n)}function gr(r,t,e){if(e){let n=r[t*2],o=r[t*2+1];return n!==0||o!==0}return!!r[t]}function et(r,t,e,n){let o=isNaN(r)||isNaN(t),a=isNaN(e)||isNaN(n);return o&&a?0:o?1:a||r<e?-1:r>e?1:t<n?-1:t>n?1:0}function Op(r,t=-1){let e=r.shape,n=e.length,o=r.dtype,a=r.data,u=r.offset,i=r.strides;if(n===0)return r.copy();let s=t;if(s<0&&(s=n+s),s<0||s>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let c=r.copy(),l=c.data,f=e[s],m=Array.from(e).filter((y,d)=>d!==s),p=m.length===0?1:m.reduce((y,d)=>y*d,1);if(B(o)){let y=a,d=l;for(let b=0;b<p;b++){let A=[];for(let g=0;g<f;g++){let h=G(b,s,g,e),N=Z(h,i,u);A.push({re:y[N*2],im:y[N*2+1],idx:g})}A.sort((g,h)=>et(g.re,g.im,h.re,h.im));for(let g=0;g<f;g++){let h=G(b,s,g,e),N=xr(h,e);d[N*2]=A[g].re,d[N*2+1]=A[g].im}}}else if(E(o)){let y=a,d=l;for(let b=0;b<p;b++){let A=[];for(let g=0;g<f;g++){let h=G(b,s,g,e),N=Z(h,i,u);A.push({value:y[N],idx:g})}A.sort((g,h)=>g.value<h.value?-1:g.value>h.value?1:0);for(let g=0;g<f;g++){let h=G(b,s,g,e),N=xr(h,e);d[N]=A[g].value}}}else for(let y=0;y<p;y++){let d=[];for(let b=0;b<f;b++){let A=G(y,s,b,e),g=Z(A,i,u);d.push(Number(a[g]))}d.sort((b,A)=>isNaN(b)&&isNaN(A)?0:isNaN(b)?1:isNaN(A)?-1:b-A);for(let b=0;b<f;b++){let A=G(y,s,b,e),g=xr(A,e);l[g]=d[b]}}return c}function Up(r,t=-1){let e=r.shape,n=e.length,o=r.dtype,a=r.data,u=r.offset,i=r.strides;if(n===0)return S.zeros([0],"int32");let s=t;if(s<0&&(s=n+s),s<0||s>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let c=S.zeros(Array.from(e),"int32"),l=c.data,f=e[s],m=Array.from(e).filter((y,d)=>d!==s),p=m.length===0?1:m.reduce((y,d)=>y*d,1);if(B(o)){let y=a;for(let d=0;d<p;d++){let b=[];for(let A=0;A<f;A++){let g=G(d,s,A,e),h=Z(g,i,u);b.push({re:y[h*2],im:y[h*2+1],idx:A})}b.sort((A,g)=>et(A.re,A.im,g.re,g.im));for(let A=0;A<f;A++){let g=G(d,s,A,e),h=xr(g,e);l[h]=b[A].idx}}}else if(E(o)){let y=a;for(let d=0;d<p;d++){let b=[];for(let A=0;A<f;A++){let g=G(d,s,A,e),h=Z(g,i,u);b.push({value:y[h],idx:A})}b.sort((A,g)=>A.value<g.value?-1:A.value>g.value?1:0);for(let A=0;A<f;A++){let g=G(d,s,A,e),h=xr(g,e);l[h]=b[A].idx}}}else for(let y=0;y<p;y++){let d=[];for(let b=0;b<f;b++){let A=G(y,s,b,e),g=Z(A,i,u);d.push({value:Number(a[g]),idx:b})}d.sort((b,A)=>isNaN(b.value)&&isNaN(A.value)?0:isNaN(b.value)?1:isNaN(A.value)?-1:b.value-A.value);for(let b=0;b<f;b++){let A=G(y,s,b,e),g=xr(A,e);l[g]=d[b].idx}}return c}function $p(r){if(r.length===0)return S.zeros([0],"int32");let e=r[0].size;for(let l of r){if(l.ndim!==1)throw new Error("keys must be 1D arrays");if(l.size!==e)throw new Error("all keys must have the same length")}let n=[];for(let l=0;l<e;l++)n.push(l);let o=r.map(l=>B(l.dtype)),a=r.map(l=>l.isCContiguous),u=r.map(l=>l.data),i=r.map(l=>l.offset);n.sort((l,f)=>{for(let m=r.length-1;m>=0;m--)if(o[m]){let p,y,d,b;if(a[m]){let A=u[m],g=i[m];p=A[(g+l)*2],y=A[(g+l)*2+1],d=A[(g+f)*2],b=A[(g+f)*2+1]}else{let A=r[m].iget(l),g=r[m].iget(f);p=A.re,y=A.im,d=g.re,b=g.im}if(p<d)return-1;if(p>d)return 1;if(y<b)return-1;if(y>b)return 1}else{let p,y;if(a[m]){let d=u[m],b=i[m];p=Number(d[b+l]),y=Number(d[b+f])}else p=Number(r[m].iget(l)),y=Number(r[m].iget(f));if(isNaN(p)&&isNaN(y))continue;if(isNaN(p))return 1;if(isNaN(y)||p<y)return-1;if(p>y)return 1}return 0});let s=S.zeros([e],"int32"),c=s.data;for(let l=0;l<e;l++)c[l]=n[l];return s}function PD(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e],u=r[o],i=r[n],s;a<=u&&u<=i||i<=u&&u<=a?s=o:u<=a&&a<=i||i<=a&&a<=u?s=e:s=n;let c=r[s];[r[s],r[n]]=[r[n],r[s]];let l=e;for(let f=e;f<n;f++){let m=r[f],p=isNaN(m),y=isNaN(c);!p&&(y||m<=c)&&([r[l],r[f]]=[r[f],r[l]],l++)}if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function jD(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e],u=r[o],i=r[n],s;a<=u&&u<=i||i<=u&&u<=a?s=o:u<=a&&a<=i||i<=a&&a<=u?s=e:s=n;let c=r[s];[r[s],r[n]]=[r[n],r[s]];let l=e;for(let f=e;f<n;f++)r[f]<=c&&([r[l],r[f]]=[r[f],r[l]],l++);if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function LD(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e].value,u=r[o].value,i=r[n].value,s;a<=u&&u<=i||i<=u&&u<=a?s=o:u<=a&&a<=i||i<=a&&a<=u?s=e:s=n;let c=r[s].value;[r[s],r[n]]=[r[n],r[s]];let l=e;for(let f=e;f<n;f++){let m=r[f].value,p=isNaN(m),y=isNaN(c);!p&&(y||m<=c)&&([r[l],r[f]]=[r[f],r[l]],l++)}if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function WD(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e].value,u=r[o].value,i=r[n].value,s;a<=u&&u<=i||i<=u&&u<=a?s=o:u<=a&&a<=i||i<=a&&a<=u?s=e:s=n;let c=r[s].value;[r[s],r[n]]=[r[n],r[s]];let l=e;for(let f=e;f<n;f++)r[f].value<=c&&([r[l],r[f]]=[r[f],r[l]],l++);if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function kp(r,t,e=-1){let n=r.shape,o=n.length,a=r.dtype;if(o===0)return r.copy();let u=e;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=n[u],s=t;if(s<0&&(s=i+s),s<0||s>=i)throw new Error(`kth(=${t}) out of bounds (${i})`);let c=r.copy(),l=c.data,f=Array.from(n).filter((p,y)=>y!==u),m=f.length===0?1:f.reduce((p,y)=>p*y,1);if(E(a)){let p=l;for(let y=0;y<m;y++){let d=[];for(let b=0;b<i;b++){let A=G(y,u,b,n),g=xr(A,n);d.push(p[g])}jD(d,s);for(let b=0;b<i;b++){let A=G(y,u,b,n),g=xr(A,n);p[g]=d[b]}}}else for(let p=0;p<m;p++){let y=[];for(let d=0;d<i;d++){let b=G(p,u,d,n),A=xr(b,n);y.push(Number(l[A]))}PD(y,s);for(let d=0;d<i;d++){let b=G(p,u,d,n),A=xr(b,n);l[A]=y[d]}}return c}function Rp(r,t,e=-1){let n=r.shape,o=n.length,a=r.dtype,u=r.data,i=r.offset,s=r.strides;if(o===0)return S.zeros([0],"int32");let c=e;if(c<0&&(c=o+c),c<0||c>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let l=n[c],f=t;if(f<0&&(f=l+f),f<0||f>=l)throw new Error(`kth(=${t}) out of bounds (${l})`);let m=S.zeros(Array.from(n),"int32"),p=m.data,y=Array.from(n).filter((b,A)=>A!==c),d=y.length===0?1:y.reduce((b,A)=>b*A,1);if(E(a)){let b=u;for(let A=0;A<d;A++){let g=[];for(let h=0;h<l;h++){let N=G(A,c,h,n),D=Z(N,s,i);g.push({value:b[D],idx:h})}WD(g,f);for(let h=0;h<l;h++){let N=G(A,c,h,n),D=xr(N,n);p[D]=g[h].idx}}}else for(let b=0;b<d;b++){let A=[];for(let g=0;g<l;g++){let h=G(b,c,g,n),N=Z(h,s,i);A.push({value:Number(u[N]),idx:g})}LD(A,f);for(let g=0;g<l;g++){let h=G(b,c,g,n),N=xr(h,n);p[N]=A[g].idx}}return m}function qp(r){let t=r.dtype,e=r.size,n=r.isCContiguous,o=r.data,a=r.offset;if(B(t)){let u=[];if(n){let c=o;for(let l=0;l<e;l++)u.push({re:c[(a+l)*2],im:c[(a+l)*2+1]})}else for(let c=0;c<e;c++){let l=r.iget(c);u.push({re:l.re,im:l.im})}u.sort((c,l)=>et(c.re,c.im,l.re,l.im));let i=S.zeros([e],"complex128"),s=i.data;for(let c=0;c<e;c++)s[c*2]=u[c].re,s[c*2+1]=u[c].im;return i}else{let u=[];if(n)for(let c=0;c<e;c++)u.push(Number(o[a+c]));else for(let c=0;c<e;c++)u.push(Number(r.iget(c)));u.sort((c,l)=>isNaN(c)&&isNaN(l)?0:isNaN(c)?1:isNaN(l)?-1:c-l);let i=S.zeros([e],"complex128"),s=i.data;for(let c=0;c<e;c++)s[c*2]=u[c],s[c*2+1]=0;return i}}function bu(r){let t=r.shape,e=t.length,n=r.size,o=B(r.dtype),a=r.isCContiguous,u=r.data,i=r.offset,s=[];for(let p=0;p<e;p++)s.push([]);let c=[],l=1;for(let p=e-1;p>=0;p--)c.unshift(l),l*=t[p];if(a){for(let p=0;p<n;p++)if(gr(u,i+p,o)){let y=p;for(let d=0;d<e;d++){let b=Math.floor(y/c[d]);y=y%c[d],s[d].push(b)}}}else for(let p=0;p<n;p++){let y=r.iget(p);if(o?y.re!==0||y.im!==0:!!y){let b=p;for(let A=0;A<e;A++){let g=Math.floor(b/c[A]);b=b%c[A],s[A].push(g)}}}let f=s[0]?.length??0,m=[];for(let p=0;p<e;p++){let y=S.zeros([f],"int32"),d=y.data;for(let b=0;b<f;b++)d[b]=s[p][b];m.push(y)}return m}function Vp(r){let t=r.shape,e=t.length,n=r.size,o=B(r.dtype),a=r.isCContiguous,u=r.data,i=r.offset,s=[],c=[],l=1;for(let d=e-1;d>=0;d--)c.unshift(l),l*=t[d];if(a){for(let d=0;d<n;d++)if(gr(u,i+d,o)){let b=[],A=d;for(let g=0;g<e;g++){let h=Math.floor(A/c[g]);A=A%c[g],b.push(h)}s.push(b)}}else for(let d=0;d<n;d++){let b=r.iget(d);if(o?b.re!==0||b.im!==0:!!b){let g=[],h=d;for(let N=0;N<e;N++){let D=Math.floor(h/c[N]);h=h%c[N],g.push(D)}s.push(g)}}let f=s.length,m=e===0?[f,1]:[f,e],p=S.zeros(m,"int32"),y=p.data;for(let d=0;d<f;d++){let b=s[d];for(let A=0;A<(e===0?1:e);A++)y[d*(e===0?1:e)+A]=b[A]??0}return p}function Pp(r){let t=r.size,e=B(r.dtype),n=r.isCContiguous,o=r.data,a=r.offset,u=[];if(n)for(let c=0;c<t;c++)gr(o,a+c,e)&&u.push(c);else for(let c=0;c<t;c++){let l=r.iget(c);(e?l.re!==0||l.im!==0:l)&&u.push(c)}let i=S.zeros([u.length],"int32"),s=i.data;for(let c=0;c<u.length;c++)s[c]=u[c];return i}function jp(r,t,e){if(t===void 0&&e===void 0)return bu(r);if(t===void 0||e===void 0)throw new Error("either both or neither of x and y should be given");let n=r.shape,o=t.shape,a=e.shape,u=Math.max(n.length,o.length,a.length),i=R=>{let Y=Array(u).fill(1);for(let X=0;X<R.length;X++)Y[u-R.length+X]=R[X];return Y},s=i(n),c=i(o),l=i(a),f=[];for(let R=0;R<u;R++){let Y=[s[R],c[R],l[R]],X=Math.max(...Y);for(let J of Y)if(J!==1&&J!==X)throw new Error("operands could not be broadcast together");f.push(X)}let m=t.dtype,p=S.zeros(f,m),y=p.data,d=(R,Y)=>{let X=[],J=1;for(let rr=R.length-1;rr>=0;rr--)X.unshift(J),J*=R[rr];for(;X.length<Y.length;)X.unshift(0);for(let rr=0;rr<Y.length;rr++)Y[rr]===1&&f[rr]!==1&&(X[rr]=0);return X},b=d(n,s),A=d(o,c),g=d(a,l),h=[],N=1;for(let R=f.length-1;R>=0;R--)h.unshift(N),N*=f[R];let D=f.reduce((R,Y)=>R*Y,1),x=B(r.dtype),C=B(m),w=r.isCContiguous,_=r.data,I=r.offset,M=t.isCContiguous,T=t.data,O=t.offset,$=e.isCContiguous,k=e.data,V=e.offset;if(n.length===f.length&&o.length===f.length&&a.length===f.length&&n.every((R,Y)=>R===f[Y])&&o.every((R,Y)=>R===f[Y])&&a.every((R,Y)=>R===f[Y])&&w&&M&&$)if(C){let R=y,Y=T,X=k;for(let J=0;J<D;J++)gr(_,I+J,x)?(R[J*2]=Y[(O+J)*2],R[J*2+1]=Y[(O+J)*2+1]):(R[J*2]=X[(V+J)*2],R[J*2+1]=X[(V+J)*2+1])}else if(E(m)){let R=y,Y=T,X=k;for(let J=0;J<D;J++)gr(_,I+J,x)?R[J]=Y[O+J]:R[J]=X[V+J]}else for(let R=0;R<D;R++)gr(_,I+R,x)?y[R]=T[O+R]:y[R]=k[V+R];else for(let R=0;R<D;R++){let Y=R,X=0,J=0,rr=0;for(let nr=0;nr<u;nr++){let dr=Math.floor(Y/h[nr]);Y=Y%h[nr],X+=dr*b[nr],J+=dr*A[nr],rr+=dr*g[nr]}let yr;if(w)yr=gr(_,I+X,x);else{let nr=r.iget(X);yr=x?nr.re!==0||nr.im!==0:!!nr}if(yr)if(C)if(M){let nr=T;y[R*2]=nr[(O+J)*2],y[R*2+1]=nr[(O+J)*2+1]}else{let nr=t.iget(J);y[R*2]=nr.re,y[R*2+1]=nr.im}else M?y[R]=T[O+J]:y[R]=t.iget(J);else if(C)if($){let nr=k;y[R*2]=nr[(V+rr)*2],y[R*2+1]=nr[(V+rr)*2+1]}else{let nr=e.iget(rr);y[R*2]=nr.re,y[R*2+1]=nr.im}else $?y[R]=k[V+rr]:y[R]=e.iget(rr)}return p}function Lp(r,t,e="left"){if(r.ndim!==1)throw new Error("storage must be 1D");let n=r.size,o=t.size,a=B(r.dtype),u=r.isCContiguous,i=r.data,s=r.offset,c=t.isCContiguous,l=t.data,f=t.offset,m=S.zeros([o],"int32"),p=m.data;if(a)if(u&&c){let y=i,d=l;for(let b=0;b<o;b++){let A=d[(f+b)*2],g=d[(f+b)*2+1],h=0,N=n;if(e==="left")for(;h<N;){let D=Math.floor((h+N)/2),x=y[(s+D)*2],C=y[(s+D)*2+1];et(x,C,A,g)<0?h=D+1:N=D}else for(;h<N;){let D=Math.floor((h+N)/2),x=y[(s+D)*2],C=y[(s+D)*2+1];et(x,C,A,g)<=0?h=D+1:N=D}p[b]=h}}else for(let y=0;y<o;y++){let d=t.iget(y),b=d.re,A=d.im,g=0,h=n;if(e==="left")for(;g<h;){let N=Math.floor((g+h)/2),D=r.iget(N);et(D.re,D.im,b,A)<0?g=N+1:h=N}else for(;g<h;){let N=Math.floor((g+h)/2),D=r.iget(N);et(D.re,D.im,b,A)<=0?g=N+1:h=N}p[y]=g}else if(u&&c)for(let y=0;y<o;y++){let d=Number(l[f+y]),b=0,A=n;if(e==="left")for(;b<A;){let g=Math.floor((b+A)/2);Number(i[s+g])<d?b=g+1:A=g}else for(;b<A;){let g=Math.floor((b+A)/2);Number(i[s+g])<=d?b=g+1:A=g}p[y]=b}else for(let y=0;y<o;y++){let d=Number(t.iget(y)),b=0,A=n;if(e==="left")for(;b<A;){let g=Math.floor((b+A)/2);Number(r.iget(g))<d?b=g+1:A=g}else for(;b<A;){let g=Math.floor((b+A)/2);Number(r.iget(g))<=d?b=g+1:A=g}p[y]=b}return m}function Wp(r,t){let e=t.dtype,n=B(r.dtype),o=B(e),a=Math.min(r.size,t.size),u=r.isCContiguous,i=r.data,s=r.offset,c=t.isCContiguous,l=t.data,f=t.offset,m=0;if(u)for(let b=0;b<a;b++)gr(i,s+b,n)&&m++;else for(let b=0;b<a;b++){let A=r.iget(b);(n?A.re!==0||A.im!==0:A)&&m++}let p=S.zeros([m],e),y=p.data,d=0;if(u&&c)if(E(e)){let b=y,A=l;for(let g=0;g<a;g++)gr(i,s+g,n)&&(b[d++]=A[f+g])}else if(o){let b=y,A=l;for(let g=0;g<a;g++)gr(i,s+g,n)&&(b[d*2]=A[(f+g)*2],b[d*2+1]=A[(f+g)*2+1],d++)}else for(let b=0;b<a;b++)gr(i,s+b,n)&&(y[d++]=l[f+b]);else{let b=u?A=>gr(i,s+A,n):A=>{let g=r.iget(A);if(n){let h=g;return h.re!==0||h.im!==0}return!!g};if(E(e)){let A=y;for(let g=0;g<a;g++)b(g)&&(A[d++]=t.iget(g))}else if(o){let A=y;for(let g=0;g<a;g++)if(b(g)){let h=t.iget(g);A[d*2]=h.re,A[d*2+1]=h.im,d++}}else for(let A=0;A<a;A++)b(A)&&(y[d++]=t.iget(A))}return p}function Au(r,t){let e=r.shape,n=e.length,o=r.data,a=r.size,u=r.offset,i=r.strides,s=B(r.dtype),c=r.isCContiguous;if(t===void 0){let b=0;if(c)for(let A=0;A<a;A++)gr(o,u+A,s)&&b++;else for(let A=0;A<a;A++){let g=r.iget(A);if(s){let h=g;(h.re!==0||h.im!==0)&&b++}else g!==0&&g!==BigInt(0)&&b++}return b}let l=t;if(l<0&&(l=n+l),l<0||l>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let f=Array.from(e).filter((b,A)=>A!==l);if(f.length===0)return Au(r);let m=S.zeros(f,"int32"),p=m.data,y=e[l],d=f.reduce((b,A)=>b*A,1);for(let b=0;b<d;b++){let A=0;for(let g=0;g<y;g++){let h=G(b,l,g,e),N=Z(h,i,u);gr(o,N,s)&&A++}p[b]=A}return m}function Vn(r,t=-1){return v(Op(z(r),t))}function Pn(r,t=-1){return v(Up(z(r),t))}function gu(r){return v($p(r.map(t=>z(t))))}function jn(r,t,e=-1){return v(kp(z(r),t,e))}function Ln(r,t,e=-1){return v(Rp(z(r),t,e))}function hu(r){return v(qp(z(r)))}function Wn(r){return $r(bu(z(r)))}function Gn(r){return v(Vp(z(r)))}function Nu(r){return v(Pp(z(r)))}function Da(r,t,e){let n=jp(z(r),t?z(t):void 0,e?z(e):void 0);return Array.isArray(n)?$r(n):v(n)}function wt(r,t,e="left"){return v(Lp(z(r),z(t),e))}function Du(r,t){return v(Wp(z(r),z(t)))}function xa(r,t){let e=Au(z(r),t);return typeof e=="number"?e:v(e)}function Mr(r,t){if(!Ur(r)&&r!=="bool")throw new TypeError(`ufunc '${t}' not supported for the input types, and the inputs could not be safely coerced to any supported types`)}function Yn(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function Zp(r,t){return Mr(r.dtype,"bitwise_and"),typeof t=="number"?ZD(r,t):(Mr(t.dtype,"bitwise_and"),Yn(r,t)?YD(r,t):sr(r,t,(e,n)=>e&n,"bitwise_and"))}function YD(r,t){let e=or(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,i=r.offset,s=t.offset,c=n.data;if(E(e)){let l=c;if(!E(r.dtype)||!E(t.dtype))for(let m=0;m<o;m++){let p=typeof a[i+m]=="bigint"?a[i+m]:BigInt(Math.round(Number(a[i+m]))),y=typeof u[s+m]=="bigint"?u[s+m]:BigInt(Math.round(Number(u[s+m])));l[m]=p&y}else{let m=a,p=u;for(let y=0;y<o;y++)l[y]=m[i+y]&p[s+y]}}else for(let l=0;l<o;l++)c[l]=a[i+l]&u[s+l];return n}function ZD(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.offset,u=r.size,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(E(e)){let l=c,f=BigInt(Math.round(t));if(i){let m=o;if(a===0)for(let p=0;p<u;p++)l[p]=m[p]&f;else for(let p=0;p<u;p++)l[p]=m[a+p]&f}else for(let m=0;m<u;m++)l[m]=r.iget(m)&f}else if(i)if(a===0)for(let l=0;l<u;l++)c[l]=o[l]&t;else for(let l=0;l<u;l++)c[l]=o[a+l]&t;else for(let l=0;l<u;l++)c[l]=Number(r.iget(l))&t;return s}function Xp(r,t){return Mr(r.dtype,"bitwise_or"),typeof t=="number"?JD(r,t):(Mr(t.dtype,"bitwise_or"),Yn(r,t)?XD(r,t):sr(r,t,(e,n)=>e|n,"bitwise_or"))}function XD(r,t){let e=or(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,i=r.offset,s=t.offset,c=n.data;if(E(e)){let l=c;if(!E(r.dtype)||!E(t.dtype))for(let m=0;m<o;m++){let p=typeof a[i+m]=="bigint"?a[i+m]:BigInt(Math.round(Number(a[i+m]))),y=typeof u[s+m]=="bigint"?u[s+m]:BigInt(Math.round(Number(u[s+m])));l[m]=p|y}else{let m=a,p=u;for(let y=0;y<o;y++)l[y]=m[i+y]|p[s+y]}}else for(let l=0;l<o;l++)c[l]=a[i+l]|u[s+l];return n}function JD(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.offset,u=r.size,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(E(e)){let l=c,f=BigInt(Math.round(t));if(i){let m=o;if(a===0)for(let p=0;p<u;p++)l[p]=m[p]|f;else for(let p=0;p<u;p++)l[p]=m[a+p]|f}else for(let m=0;m<u;m++)l[m]=r.iget(m)|f}else if(i)if(a===0)for(let l=0;l<u;l++)c[l]=o[l]|t;else for(let l=0;l<u;l++)c[l]=o[a+l]|t;else for(let l=0;l<u;l++)c[l]=Number(r.iget(l))|t;return s}function Jp(r,t){return Mr(r.dtype,"bitwise_xor"),typeof t=="number"?QD(r,t):(Mr(t.dtype,"bitwise_xor"),Yn(r,t)?KD(r,t):sr(r,t,(e,n)=>e^n,"bitwise_xor"))}function KD(r,t){let e=or(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,i=r.offset,s=t.offset,c=n.data;if(E(e)){let l=c;if(!E(r.dtype)||!E(t.dtype))for(let m=0;m<o;m++){let p=typeof a[i+m]=="bigint"?a[i+m]:BigInt(Math.round(Number(a[i+m]))),y=typeof u[s+m]=="bigint"?u[s+m]:BigInt(Math.round(Number(u[s+m])));l[m]=p^y}else{let m=a,p=u;for(let y=0;y<o;y++)l[y]=m[i+y]^p[s+y]}}else for(let l=0;l<o;l++)c[l]=a[i+l]^u[s+l];return n}function QD(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.offset,u=r.size,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(E(e)){let l=c,f=BigInt(Math.round(t));if(i){let m=o;if(a===0)for(let p=0;p<u;p++)l[p]=m[p]^f;else for(let p=0;p<u;p++)l[p]=m[a+p]^f}else for(let m=0;m<u;m++)l[m]=r.iget(m)^f}else if(i)if(a===0)for(let l=0;l<u;l++)c[l]=o[l]^t;else for(let l=0;l<u;l++)c[l]=o[a+l]^t;else for(let l=0;l<u;l++)c[l]=Number(r.iget(l))^t;return s}function Su(r){Mr(r.dtype,"bitwise_not");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.offset,a=r.size,u=r.isCContiguous,i=S.zeros(e,t),s=i.data;if(E(t)){let c=s;if(u){let l=n;if(o===0)for(let f=0;f<a;f++)c[f]=~l[f];else for(let f=0;f<a;f++)c[f]=~l[o+f]}else for(let l=0;l<a;l++)c[l]=~r.iget(l)}else if(u)if(o===0)for(let c=0;c<a;c++)s[c]=~n[c];else for(let c=0;c<a;c++)s[c]=~n[o+c];else for(let c=0;c<a;c++)s[c]=~Number(r.iget(c));return i}function Kp(r){return Su(r)}function Qp(r,t){if(Mr(r.dtype,"left_shift"),typeof t=="number")return Gp(r,t);if(Mr(t.dtype,"left_shift"),t.size===1||t.ndim===1&&t.shape[0]===1){let e=Number(t.iget(0));return Gp(r,e)}return Yn(r,t)?HD(r,t):sr(r,t,(e,n)=>e<<n,"left_shift")}function HD(r,t){let e=or(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,i=r.offset,s=t.offset,c=n.data;if(E(e)){let l=c;for(let f=0;f<o;f++){let m=typeof a[i+f]=="bigint"?a[i+f]:BigInt(Math.round(Number(a[i+f]))),p=typeof u[s+f]=="bigint"?u[s+f]:BigInt(Math.round(Number(u[s+f])));l[f]=m<<p}}else for(let l=0;l<o;l++)c[l]=a[i+l]<<u[s+l];return n}function Gp(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.offset,u=r.size,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(E(e)){let l=c,f=BigInt(Math.round(t));if(i){let m=o;if(a===0)for(let p=0;p<u;p++)l[p]=m[p]<<f;else for(let p=0;p<u;p++)l[p]=m[a+p]<<f}else for(let m=0;m<u;m++)l[m]=r.iget(m)<<f}else if(i)if(a===0)for(let l=0;l<u;l++)c[l]=o[l]<<t;else for(let l=0;l<u;l++)c[l]=o[a+l]<<t;else for(let l=0;l<u;l++)c[l]=Number(r.iget(l))<<t;return s}function Hp(r,t){if(Mr(r.dtype,"right_shift"),typeof t=="number")return Yp(r,t);if(Mr(t.dtype,"right_shift"),t.size===1||t.ndim===1&&t.shape[0]===1){let e=Number(t.iget(0));return Yp(r,e)}return Yn(r,t)?rx(r,t):sr(r,t,(e,n)=>e>>n,"right_shift")}function rx(r,t){let e=or(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,i=r.offset,s=t.offset,c=n.data;if(E(e)){let l=c;for(let f=0;f<o;f++){let m=typeof a[i+f]=="bigint"?a[i+f]:BigInt(Math.round(Number(a[i+f]))),p=typeof u[s+f]=="bigint"?u[s+f]:BigInt(Math.round(Number(u[s+f])));l[f]=m>>p}}else for(let l=0;l<o;l++)c[l]=a[i+l]>>u[s+l];return n}function Yp(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.offset,u=r.size,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(E(e)){let l=c,f=BigInt(Math.round(t));if(i){let m=o;if(a===0)for(let p=0;p<u;p++)l[p]=m[p]>>f;else for(let p=0;p<u;p++)l[p]=m[a+p]>>f}else for(let m=0;m<u;m++)l[m]=r.iget(m)>>f}else if(i)if(a===0)for(let l=0;l<u;l++)c[l]=o[l]>>t;else for(let l=0;l<u;l++)c[l]=o[a+l]>>t;else for(let l=0;l<u;l++)c[l]=Number(r.iget(l))>>t;return s}function ry(r,t=-1,e="big"){let n=Array.from(r.shape),o=n.length;if(t<0&&(t=o+t),t<0||t>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let a=n[t],u=Math.ceil(a/8),i=[...n];i[t]=u;let s=S.zeros(i,"uint8"),c=s.data,l=r.offset,f=r.isCContiguous;if(o===1){for(let g=0;g<u;g++){let h=0;for(let N=0;N<8;N++){let D=g*8+N;if(D<a){let x=f?Number(r.data[l+D])!==0?1:0:Number(r.iget(D))!==0?1:0;e==="big"?h|=x<<7-N:h|=x<<N}}c[g]=h}return s}let m=n.slice(0,t),p=n.slice(t+1),y=m.reduce((g,h)=>g*h,1),d=p.reduce((g,h)=>g*h,1),b=Ca(n),A=Ca(i);for(let g=0;g<y;g++)for(let h=0;h<d;h++)for(let N=0;N<u;N++){let D=0;for(let _=0;_<8;_++){let I=N*8+_;if(I<a){let M=0,T=g;for(let k=0;k<t;k++){let V=k<t-1?m.slice(k+1).reduce((R,Y)=>R*Y,1):1,j=Math.floor(T/V);T%=V,M+=j*b[k]}M+=I*b[t];let O=h;for(let k=t+1;k<o;k++){let V=k<o-1?p.slice(k-t).reduce((R,Y)=>R*Y,1):1,j=Math.floor(O/V);O%=V,M+=j*b[k]}let $=f?Number(r.data[l+M])!==0?1:0:Number(r.iget(M))!==0?1:0;e==="big"?D|=$<<7-_:D|=$<<_}}let x=0,C=g;for(let _=0;_<t;_++){let I=_<t-1?m.slice(_+1).reduce((T,O)=>T*O,1):1,M=Math.floor(C/I);C%=I,x+=M*A[_]}x+=N*A[t];let w=h;for(let _=t+1;_<o;_++){let I=_<o-1?p.slice(_-t).reduce((T,O)=>T*O,1):1,M=Math.floor(w/I);w%=I,x+=M*A[_]}c[x]=D}return s}function ty(r,t=-1,e=-1,n="big"){if(r.dtype!=="uint8")throw new TypeError("Expected an input array of unsigned byte data type");let o=Array.from(r.shape),a=o.length;if(t<0&&(t=a+t),t<0||t>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let u=o[t],i=u*8;e>=0&&(i=e);let s=[...o];s[t]=i;let c=S.zeros(s,"uint8"),l=c.data,f=r.offset,m=r.isCContiguous;if(a===1){for(let h=0;h<u;h++){let N=Number(m?r.data[f+h]:r.iget(h));for(let D=0;D<8;D++){let x=h*8+D;if(x>=i)break;n==="big"?l[x]=N>>7-D&1:l[x]=N>>D&1}}return c}let p=o.slice(0,t),y=o.slice(t+1),d=p.reduce((h,N)=>h*N,1),b=y.reduce((h,N)=>h*N,1),A=Ca(o),g=Ca(s);for(let h=0;h<d;h++)for(let N=0;N<b;N++)for(let D=0;D<u;D++){let x=0,C=h;for(let I=0;I<t;I++){let M=I<t-1?p.slice(I+1).reduce((O,$)=>O*$,1):1,T=Math.floor(C/M);C%=M,x+=T*A[I]}x+=D*A[t];let w=N;for(let I=t+1;I<a;I++){let M=I<a-1?y.slice(I-t).reduce((O,$)=>O*$,1):1,T=Math.floor(w/M);w%=M,x+=T*A[I]}let _=Number(m?r.data[f+x]:r.iget(x));for(let I=0;I<8;I++){let M=D*8+I;if(M>=i)break;let T=0;C=h;for(let O=0;O<t;O++){let $=O<t-1?p.slice(O+1).reduce((V,j)=>V*j,1):1,k=Math.floor(C/$);C%=$,T+=k*g[O]}T+=M*g[t],w=N;for(let O=t+1;O<a;O++){let $=O<a-1?y.slice(O-t).reduce((V,j)=>V*j,1):1,k=Math.floor(w/$);w%=$,T+=k*g[O]}n==="big"?l[T]=_>>7-I&1:l[T]=_>>I&1}}return c}function Ca(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 ey(r){let t=r.dtype;Mr(t,"bitwise_count");let e=Array.from(r.shape),n=r.data,o=r.offset,a=r.size,u=r.isCContiguous,i=S.zeros(e,"uint8"),s=i.data;if(E(t))if(u){let c=n;if(o===0)for(let l=0;l<a;l++)s[l]=Cu(c[l]);else for(let l=0;l<a;l++)s[l]=Cu(c[o+l])}else for(let c=0;c<a;c++)s[c]=Cu(r.iget(c));else if(u)if(o===0)for(let c=0;c<a;c++)s[c]=xu(n[c]);else for(let c=0;c<a;c++)s[c]=xu(n[o+c]);else for(let c=0;c<a;c++)s[c]=xu(Number(r.iget(c)));return i}function xu(r){r=r>>>0;let t=0;for(;r!==0;)r=r&r-1,t++;return t}function Cu(r){r<0n&&(r=BigInt.asUintN(64,r));let t=0;for(;r!==0n;)r=r&r-1n,t++;return t}function Zn(r,t){let e=typeof t=="number"?t:z(t);return v(Zp(z(r),e))}function Xn(r,t){let e=typeof t=="number"?t:z(t);return v(Xp(z(r),e))}function Jn(r,t){let e=typeof t=="number"?t:z(t);return v(Jp(z(r),e))}function Kn(r){return v(Su(z(r)))}function Qn(r){return v(Kp(z(r)))}function Hn(r,t){let e=typeof t=="number"?t:z(t);return v(Qp(z(r),e))}function ro(r,t){let e=typeof t=="number"?t:z(t);return v(Hp(z(r),e))}function wu(r,t,e){return v(ry(z(r),t,e))}function Iu(r,t,e,n){return v(ty(z(r),t,e,n))}function zu(r){return v(ey(z(r)))}function Sa(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 ny(r,t=0){L(r.dtype,"around","Rounding is not defined for complex numbers.");let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",u=S.zeros(n,a),i=u.data,s=Math.pow(10,t);if(r.isCContiguous){let c=r.data,l=r.offset;for(let f=0;f<o;f++){let m=Number(c[l+f]);i[f]=Sa(m*s)/s}}else for(let c=0;c<o;c++){let l=Number(r.iget(c));i[c]=Sa(l*s)/s}return u}function oy(r){L(r.dtype,"ceil","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.size,o=t==="float32"?"float32":"float64",a=S.zeros(e,o),u=a.data;if(r.isCContiguous){let i=r.data,s=r.offset;for(let c=0;c<n;c++)u[c]=Math.ceil(Number(i[s+c]))}else for(let i=0;i<n;i++)u[i]=Math.ceil(Number(r.iget(i)));return a}function ay(r){L(r.dtype,"fix","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.size,o=t==="float32"?"float32":"float64",a=S.zeros(e,o),u=a.data;if(r.isCContiguous){let i=r.data,s=r.offset;for(let c=0;c<n;c++)u[c]=Math.trunc(Number(i[s+c]))}else for(let i=0;i<n;i++)u[i]=Math.trunc(Number(r.iget(i)));return a}function sy(r){L(r.dtype,"floor","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.size,o=t==="float32"?"float32":"float64",a=S.zeros(e,o),u=a.data;if(r.isCContiguous){let i=r.data,s=r.offset;for(let c=0;c<n;c++)u[c]=Math.floor(Number(i[s+c]))}else for(let i=0;i<n;i++)u[i]=Math.floor(Number(r.iget(i)));return a}function iy(r){L(r.dtype,"rint","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.size,o=t==="float32"?"float32":"float64",a=S.zeros(e,o),u=a.data;if(r.isCContiguous){let i=r.data,s=r.offset;for(let c=0;c<n;c++)u[c]=Sa(Number(i[s+c]))}else for(let i=0;i<n;i++)u[i]=Sa(Number(r.iget(i)));return a}function uy(r){L(r.dtype,"trunc","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.size,o=t==="float32"?"float32":"float64",a=S.zeros(e,o),u=a.data;if(r.isCContiguous){let i=r.data,s=r.offset;for(let c=0;c<n;c++)u[c]=Math.trunc(Number(i[s+c]))}else for(let i=0;i<n;i++)u[i]=Math.trunc(Number(r.iget(i)));return a}function It(r,t=0){return v(ny(z(r),t))}var wa=It;function to(r){return v(oy(z(r)))}function eo(r){return v(ay(z(r)))}function no(r){return v(sy(z(r)))}function oo(r){return v(iy(z(r)))}function ao(r){return v(uy(z(r)))}function _u(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 nx(r,t,e,n){let o=isNaN(r)||isNaN(t),a=isNaN(e)||isNaN(n);return o&&a?!0:o||a?!1:r===e&&t===n}function Cr(r,t=!1,e=!1,n=!1){let o=r.dtype,a=r.size,u=r.data,i=r.offset;if(B(o)){let N=u,D=[];for(let R=0;R<a;R++)D.push({re:N[(i+R)*2],im:N[(i+R)*2+1],index:R});D.sort((R,Y)=>_u(R.re,R.im,Y.re,Y.im));let x=[],C=[],w=new Array(a),_=[],I,M,T=0;for(let R=0;R<D.length;R++){let{re:Y,im:X,index:J}=D[R];I===void 0||!nx(Y,X,I,M)?(I!==void 0&&_.push(T),x.push({re:Y,im:X}),C.push(J),T=1,I=Y,M=X):T++}T>0&&_.push(T);let O=new Map,$=-1;for(let R=0;R<x.length;R++){let{re:Y,im:X}=x[R];isNaN(Y)||isNaN(X)?$=R:O.set(`${Y},${X}`,R)}for(let R=0;R<a;R++){let Y=N[(i+R)*2],X=N[(i+R)*2+1];isNaN(Y)||isNaN(X)?w[R]=$:w[R]=O.get(`${Y},${X}`)}let k=S.zeros([x.length],o),V=k.data;for(let R=0;R<x.length;R++)V[R*2]=x[R].re,V[R*2+1]=x[R].im;if(!t&&!e&&!n)return k;let j={values:k};if(t){let R=S.zeros([C.length],"int32"),Y=R.data;for(let X=0;X<C.length;X++)Y[X]=C[X];j.indices=R}if(e){let R=S.zeros([w.length],"int32"),Y=R.data;for(let X=0;X<w.length;X++)Y[X]=w[X];j.inverse=R}if(n){let R=S.zeros([_.length],"int32"),Y=R.data;for(let X=0;X<_.length;X++)Y[X]=_[X];j.counts=R}return j}let s=[];for(let N=0;N<a;N++)s.push({value:Number(u[i+N]),index:N});s.sort((N,D)=>isNaN(N.value)&&isNaN(D.value)?0:isNaN(N.value)?1:isNaN(D.value)?-1:N.value-D.value);let c=[],l=[],f=new Array(a),m=[],p,y=0;for(let N=0;N<s.length;N++){let{value:D,index:x}=s[N];p===void 0||isNaN(D)&&!isNaN(p)||!isNaN(D)&&isNaN(p)||!isNaN(D)&&!isNaN(p)&&D!==p?(p!==void 0&&m.push(y),c.push(D),l.push(x),y=1,p=D):y++}y>0&&m.push(y);let d=new Map,b=-1;for(let N=0;N<c.length;N++){let D=c[N];isNaN(D)?b=N:d.set(D,N)}for(let N=0;N<a;N++){let D=Number(u[i+N]);isNaN(D)?f[N]=b:f[N]=d.get(D)}let A=S.zeros([c.length],o),g=A.data;for(let N=0;N<c.length;N++)g[N]=c[N];if(!t&&!e&&!n)return A;let h={values:A};if(t){let N=S.zeros([l.length],"int32"),D=N.data;for(let x=0;x<l.length;x++)D[x]=l[x];h.indices=N}if(e){let N=S.zeros([f.length],"int32"),D=N.data;for(let x=0;x<f.length;x++)D[x]=f[x];h.inverse=N}if(n){let N=S.zeros([m.length],"int32"),D=N.data;for(let x=0;x<m.length;x++)D[x]=m[x];h.counts=N}return h}function Vr(r,t,e,n=0){if(e){let o=Number(r[(n+t)*2]),a=Number(r[(n+t)*2+1]);return`${o},${a}`}return String(Number(r[n+t]))}function cy(r,t){return Mu(r,t)}function ly(r,t){let e=r.dtype,n=B(e),o=Cr(r),a=Cr(t),u=new Set;for(let l=0;l<a.size;l++)u.add(Vr(a.data,l,n));let i=[];for(let l=0;l<o.size;l++){let f=Vr(o.data,l,n);u.has(f)&&i.push(l)}if(n){let l=S.zeros([i.length],e),f=l.data,m=o.data;for(let p=0;p<i.length;p++){let y=i[p];f[p*2]=m[y*2],f[p*2+1]=m[y*2+1]}return l}let s=S.zeros([i.length],e),c=s.data;for(let l=0;l<i.length;l++)c[l]=o.data[i[l]];return s}function Mu(r,t){let e=Array.from(r.shape),n=r.size,o=B(r.dtype),a=new Set;for(let s=0;s<t.size;s++)a.add(Vr(t.data,s,o,t.offset));let u=S.zeros(e,"bool"),i=u.data;for(let s=0;s<n;s++){let c=Vr(r.data,s,o,r.offset);i[s]=a.has(c)?1:0}return u}function fy(r,t){let e=r.dtype,n=B(e),o=Cr(r),a=new Set;for(let c=0;c<t.size;c++)a.add(Vr(t.data,c,n,t.offset));let u=[];for(let c=0;c<o.size;c++){let l=Vr(o.data,c,n);a.has(l)||u.push(c)}if(n){let c=S.zeros([u.length],e),l=c.data,f=o.data;for(let m=0;m<u.length;m++){let p=u[m];l[m*2]=f[p*2],l[m*2+1]=f[p*2+1]}return c}let i=S.zeros([u.length],e),s=i.data;for(let c=0;c<u.length;c++)s[c]=o.data[u[c]];return i}function my(r,t){let e=r.dtype,n=B(e),o=Cr(r),a=Cr(t),u=new Set,i=new Set;for(let p=0;p<o.size;p++)u.add(Vr(o.data,p,n));for(let p=0;p<a.size;p++)i.add(Vr(a.data,p,n));let s=[],c=[];for(let p=0;p<o.size;p++){let y=Vr(o.data,p,n);i.has(y)||s.push(p)}for(let p=0;p<a.size;p++){let y=Vr(a.data,p,n);u.has(y)||c.push(p)}if(n){let p=[],y=o.data,d=a.data;for(let g of s)p.push({re:y[g*2],im:y[g*2+1]});for(let g of c)p.push({re:d[g*2],im:d[g*2+1]});p.sort((g,h)=>_u(g.re,g.im,h.re,h.im));let b=S.zeros([p.length],e),A=b.data;for(let g=0;g<p.length;g++)A[g*2]=p[g].re,A[g*2+1]=p[g].im;return b}let l=[];for(let p of s)l.push(Number(o.data[p]));for(let p of c)l.push(Number(a.data[p]));l.sort((p,y)=>isNaN(p)&&isNaN(y)?0:isNaN(p)?1:isNaN(y)?-1:p-y);let f=S.zeros([l.length],e),m=f.data;for(let p=0;p<l.length;p++)m[p]=l[p];return f}function py(r,t){let e=r.dtype,n=B(e),o=Cr(r),a=Cr(t),u=new Set,i=[];if(n){let f=o.data,m=a.data;for(let d=0;d<o.size;d++){let b=f[d*2],A=f[d*2+1],g=`${b},${A}`;u.has(g)||(u.add(g),i.push({re:b,im:A}))}for(let d=0;d<a.size;d++){let b=m[d*2],A=m[d*2+1],g=`${b},${A}`;u.has(g)||(u.add(g),i.push({re:b,im:A}))}i.sort((d,b)=>_u(d.re,d.im,b.re,b.im));let p=S.zeros([i.length],e),y=p.data;for(let d=0;d<i.length;d++)y[d*2]=i[d].re,y[d*2+1]=i[d].im;return p}let s=[];for(let f=0;f<o.size;f++){let m=Number(o.data[f]),p=String(m);u.has(p)||(u.add(p),s.push(m))}for(let f=0;f<a.size;f++){let m=Number(a.data[f]),p=String(m);u.has(p)||(u.add(p),s.push(m))}s.sort((f,m)=>isNaN(f)&&isNaN(m)?0:isNaN(f)?1:isNaN(m)?-1:f-m);let c=S.zeros([s.length],e),l=c.data;for(let f=0;f<s.length;f++)l[f]=s[f];return c}function yy(r,t="fb"){let e=r.dtype,n=r.data,o=r.size,a=r.offset,u=B(e);if(o===0)return S.zeros([0],e);let i=p=>{if(u){let y=n[(a+p)*2],d=n[(a+p)*2+1];return y===0&&d===0}return Number(n[a+p])===0},s=0;if(t==="f"||t==="fb")for(;s<o&&i(s);)s++;let c=o-1;if(t==="b"||t==="fb")for(;c>=s&&i(c);)c--;if(s>c)return S.zeros([0],e);let l=c-s+1;if(u){let p=S.zeros([l],e),y=p.data;for(let d=0;d<l;d++)y[d*2]=n[(a+s+d)*2],y[d*2+1]=n[(a+s+d)*2+1];return p}let f=S.zeros([l],e),m=f.data;for(let p=0;p<l;p++)m[p]=n[a+s+p];return f}function dy(r){let e=Cr(r,!0,!0,!0);return{values:e.values,indices:e.indices,inverse_indices:e.inverse,counts:e.counts}}function by(r){let e=Cr(r,!1,!1,!0);return{values:e.values,counts:e.counts}}function Ay(r){let e=Cr(r,!1,!0,!1);return{values:e.values,inverse_indices:e.inverse}}function gy(r){return Cr(r)}function Ia(r,t=!1,e=!1,n=!1){let o=Cr(z(r),t,e,n);return"values"in o?{values:v(o.values),indices:o.indices?v(o.indices):void 0,inverse:o.inverse?v(o.inverse):void 0,counts:o.counts?v(o.counts):void 0}:v(o)}function vu(r,t){return v(cy(z(r),z(t)))}function Fu(r,t){return v(ly(z(r),z(t)))}function Bu(r,t){return v(Mu(z(r),z(t)))}function Tu(r,t){return v(fy(z(r),z(t)))}function Eu(r,t){return v(my(z(r),z(t)))}function Ou(r,t){return v(py(z(r),z(t)))}function Uu(r,t){return v(yy(z(r),t))}function za(r){let t=dy(z(r));return{values:v(t.values),indices:v(t.indices),inverse_indices:v(t.inverse_indices),counts:v(t.counts)}}function _a(r){let t=by(z(r));return{values:v(t.values),counts:v(t.counts)}}function Ma(r){let t=Ay(z(r));return{values:v(t.values),inverse_indices:v(t.inverse_indices)}}function $u(r){return v(gy(z(r)))}function hy(r,t,e=0){L(r.dtype,"bincount","bincount requires integer input.");let n=r.data,o=r.size,a=0;for(let i=0;i<o;i++){let s=Number(n[i]);if(s<0||!Number.isInteger(s))throw new Error("'x' argument must contain non-negative integers");s>a&&(a=s)}let u=Math.max(a+1,e);if(t!==void 0){if(t.size!==o)throw new Error("weights array must have same length as x");let i=t.data,s=new Float64Array(u);for(let c=0;c<o;c++){let l=Number(n[c]);s[l]+=Number(i[c])}return S.fromData(s,[u],"float64")}else{let i=new Float64Array(u);for(let s=0;s<o;s++){let c=Number(n[s]);i[c]++}return S.fromData(i,[u],"float64")}}function Ny(r,t,e=!1){L(r.dtype,"digitize","digitize requires real numbers."),L(t.dtype,"digitize","digitize requires real numbers.");let n=r.data,o=t.data,a=r.size,u=t.size,i=new Float64Array(a),s=!0;u>1&&(s=Number(o[1])>=Number(o[0]));for(let c=0;c<a;c++){let l=Number(n[c]),f;if(s)e?f=ax(o,u,l):f=so(o,u,l);else if(e)for(f=0;f<u&&Number(o[f])>=l;)f++;else for(f=0;f<u&&Number(o[f])>l;)f++;i[c]=f}return S.fromData(i,[...r.shape],"float64")}function ax(r,t,e){let n=0,o=t;for(;n<o;){let a=n+o>>>1;Number(r[a])<e?n=a+1:o=a}return n}function so(r,t,e){let n=0,o=t;for(;n<o;){let a=n+o>>>1;Number(r[a])<=e?n=a+1:o=a}return n}function Dy(r,t=10,e,n=!1,o){L(r.dtype,"histogram","histogram requires real numbers."),typeof t!="number"&&L(t.dtype,"histogram","histogram requires real numbers.");let a=r.data,u=r.size,i;if(typeof t=="number"){let f,m;if(e)[f,m]=e;else{f=1/0,m=-1/0;for(let y=0;y<u;y++){let d=Number(a[y]);d<f&&(f=d),d>m&&(m=d)}f===m&&(f=f-.5,m=m+.5)}i=[];let p=(m-f)/t;for(let y=0;y<=t;y++)i.push(f+y*p)}else{let f=t.data;i=[];for(let m=0;m<t.size;m++)i.push(Number(f[m]))}let s=i.length-1,c=new Float64Array(s),l=o?.data;for(let f=0;f<u;f++){let m=Number(a[f]),p=l?Number(l[f]):1,y=so(i,i.length,m)-1;if(!(y<0)){if(y>=s)if(m===i[s])y=s-1;else continue;c[y]+=p}}if(n){let f=0;for(let m=0;m<s;m++)f+=c[m];for(let m=0;m<s;m++){let p=i[m+1]-i[m];c[m]=c[m]/(f*p)}}return{hist:S.fromData(c,[s],"float64"),bin_edges:S.fromData(new Float64Array(i),[i.length],"float64")}}function xy(r,t,e=10,n,o=!1,a){L(r.dtype,"histogram2d","histogram2d requires real numbers."),L(t.dtype,"histogram2d","histogram2d requires real numbers.");let u=r.data,i=t.data,s=r.size;if(t.size!==s)throw new Error("x and y must have the same length");let c,l,f,m;if(typeof e=="number"?(f=e,m=e):Array.isArray(e)&&e.length===2?(e[0],f=e[0],m=e[1]):(f=10,m=10),typeof f=="number"){let A,g;if(n)[A,g]=n[0];else{A=1/0,g=-1/0;for(let N=0;N<s;N++){let D=Number(u[N]);D<A&&(A=D),D>g&&(g=D)}A===g&&(A-=.5,g+=.5)}c=[];let h=(g-A)/f;for(let N=0;N<=f;N++)c.push(A+N*h)}else{let A=f.data;c=[];for(let g=0;g<f.size;g++)c.push(Number(A[g]))}if(typeof m=="number"){let A,g;if(n)[A,g]=n[1];else{A=1/0,g=-1/0;for(let N=0;N<s;N++){let D=Number(i[N]);D<A&&(A=D),D>g&&(g=D)}A===g&&(A-=.5,g+=.5)}l=[];let h=(g-A)/m;for(let N=0;N<=m;N++)l.push(A+N*h)}else{let A=m.data;l=[];for(let g=0;g<m.size;g++)l.push(Number(A[g]))}let p=c.length-1,y=l.length-1,d=new Float64Array(p*y),b=a?.data;for(let A=0;A<s;A++){let g=Number(u[A]),h=Number(i[A]),N=b?Number(b[A]):1,D=so(c,c.length,g)-1,x=so(l,l.length,h)-1;if(D<0||D>=p)if(g===c[p]&&D===p)D=p-1;else continue;if(x<0||x>=y)if(h===l[y]&&x===y)x=y-1;else continue;d[D*y+x]+=N}if(o){let A=0;for(let g=0;g<d.length;g++)A+=d[g];for(let g=0;g<p;g++)for(let h=0;h<y;h++){let N=c[g+1]-c[g],D=l[h+1]-l[h],x=N*D;d[g*y+h]=d[g*y+h]/(A*x)}}return{hist:S.fromData(d,[p,y],"float64"),x_edges:S.fromData(new Float64Array(c),[c.length],"float64"),y_edges:S.fromData(new Float64Array(l),[l.length],"float64")}}function Cy(r,t=10,e,n=!1,o){L(r.dtype,"histogramdd","histogramdd requires real numbers.");let a=r.shape,u=r.data,i,s;if(a.length===1)i=a[0],s=1;else if(a.length===2)i=a[0],s=a[1];else throw new Error("sample must be 1D or 2D array");let c;if(typeof t=="number")c=new Array(s).fill(t);else if(c=t,c.length!==s)throw new Error("bins array length must match number of dimensions");let l=[];for(let A=0;A<s;A++){let g,h;if(e&&e[A])[g,h]=e[A];else{g=1/0,h=-1/0;for(let C=0;C<i;C++){let w=Number(s===1?u[C]:u[C*s+A]);w<g&&(g=w),w>h&&(h=w)}g===h&&(g-=.5,h+=.5)}let N=c[A],D=[],x=(h-g)/N;for(let C=0;C<=N;C++)D.push(g+C*x);l.push(D)}let f=c.slice(),m=f.reduce((A,g)=>A*g,1),p=new Float64Array(m),y=new Array(s);y[s-1]=1;for(let A=s-2;A>=0;A--)y[A]=y[A+1]*c[A+1];let d=o?.data;for(let A=0;A<i;A++){let g=d?Number(d[A]):1,h=0,N=!1;for(let D=0;D<s;D++){let x=Number(s===1?u[A]:u[A*s+D]),C=l[D],w=c[D],_=so(C,C.length,x)-1;if(_<0||_>=w)if(x===C[w]&&_===w)_=w-1;else{N=!0;break}h+=_*y[D]}N||(p[h]+=g)}if(n){let A=0;for(let h=0;h<m;h++)A+=p[h];let g=new Float64Array(m);for(let h=0;h<m;h++){let N=1,D=h;for(let x=0;x<s;x++){let C=Math.floor(D/y[x])%c[x],w=l[x];N*=w[C+1]-w[C]}g[h]=N}for(let h=0;h<m;h++)p[h]=p[h]/(A*g[h])}let b=l.map(A=>S.fromData(new Float64Array(A),[A.length],"float64"));return{hist:S.fromData(p,f,"float64"),edges:b}}function Ru(r,t,e="full"){let n=r.data,o=t.data,a=r.size,u=t.size,i=B(r.dtype)||B(t.dtype),s=a+u-1;if(i){let l=new Float64Array(s),f=new Float64Array(s),m=B(r.dtype),p=B(t.dtype);for(let d=0;d<s;d++){let b=0,A=0,g=d-u+1;for(let h=0;h<a;h++){let N=h-g;if(N>=0&&N<u){let D,x,C,w;m?(D=n[h*2],x=n[h*2+1]):(D=Number(n[h]),x=0),p?(C=o[N*2],w=o[N*2+1]):(C=Number(o[N]),w=0),b+=D*C+x*w,A+=x*C-D*w}}l[d]=b,f[d]=A}let y=(d,b,A,g=0)=>{let h=new Float64Array(A*2);for(let N=0;N<A;N++)h[N*2]=d[g+N],h[N*2+1]=b[g+N];return S.fromData(h,[A],"complex128")};if(e==="full")return y(l,f,s);if(e==="same"){let d=Math.floor((s-a)/2);return y(l,f,a,d)}else{let d=Math.max(a,u)-Math.min(a,u)+1,b=Math.min(a,u)-1;return y(l,f,d,b)}}let c=new Float64Array(s);for(let l=0;l<s;l++){let f=0,m=l-u+1;for(let p=0;p<a;p++){let y=p-m;y>=0&&y<u&&(f+=Number(n[p])*Number(o[y]))}c[l]=f}if(e==="full")return S.fromData(c,[s],"float64");if(e==="same"){let l=Math.floor((s-a)/2),f=new Float64Array(a);for(let m=0;m<a;m++)f[m]=c[l+m];return S.fromData(f,[a],"float64")}else{let l=Math.max(a,u)-Math.min(a,u)+1,f=Math.min(a,u)-1,m=new Float64Array(l);for(let p=0;p<l;p++)m[p]=c[f+p];return S.fromData(m,[l],"float64")}}function Sy(r,t,e="full"){let n=t.data,o=t.size,a=B(t.dtype),u;if(a){let i=new Float64Array(o*2);for(let s=0;s<o;s++){let c=o-1-s;i[s*2]=n[c*2],i[s*2+1]=n[c*2+1]}u=S.fromData(i,[o],t.dtype)}else{let i=new Float64Array(o);for(let s=0;s<o;s++)i[s]=Number(n[o-1-s]);u=S.fromData(i,[o],"float64")}if(a){let i=u.data;for(let s=0;s<o;s++)i[s*2+1]=-i[s*2+1]}return Ru(r,u,e)}function qu(r,t,e=!0,n=!1,o){let a=r.shape,u=r.data,i=B(r.dtype)||t!==void 0&&B(t.dtype),s;if(o!==void 0?s=o:s=n?0:1,a.length===1)if(t!==void 0){let y=t.data,d=r.size,b=B(r.dtype),A=B(t.dtype);if(t.size!==d)throw new Error("m and y must have same length");if(i){let w=0,_=0,I=0,M=0;for(let rr=0;rr<d;rr++)b?(w+=u[rr*2],_+=u[rr*2+1]):w+=Number(u[rr]),A?(I+=y[rr*2],M+=y[rr*2+1]):I+=Number(y[rr]);w/=d,_/=d,I/=d,M/=d;let T=0,O=0,$=0,k=0,V=0,j=0,R=0,Y=0;for(let rr=0;rr<d;rr++){let yr,nr,dr,Er;b?(yr=u[rr*2]-w,nr=u[rr*2+1]-_):(yr=Number(u[rr])-w,nr=0),A?(dr=y[rr*2]-I,Er=y[rr*2+1]-M):(dr=Number(y[rr])-I,Er=0),T+=yr*yr+nr*nr,$+=dr*dr+Er*Er,V+=yr*dr+nr*Er,j+=nr*dr-yr*Er,R+=dr*yr+Er*nr,Y+=Er*yr-dr*nr}let X=d-s;if(X<=0){let rr=new Float64Array(8);return rr.fill(NaN),S.fromData(rr,[2,2],"complex128")}T/=X,$/=X,V/=X,j/=X,R/=X,Y/=X;let J=new Float64Array(8);return J[0]=T,J[1]=O,J[2]=V,J[3]=j,J[4]=R,J[5]=Y,J[6]=$,J[7]=k,S.fromData(J,[2,2],"complex128")}let g=0,h=0;for(let w=0;w<d;w++)g+=Number(u[w]),h+=Number(y[w]);g/=d,h/=d;let N=0,D=0,x=0;for(let w=0;w<d;w++){let _=Number(u[w])-g,I=Number(y[w])-h;N+=_*_,D+=I*I,x+=_*I}let C=d-s;return C<=0?S.fromData(new Float64Array([NaN,NaN,NaN,NaN]),[2,2],"float64"):(N/=C,D/=C,x/=C,S.fromData(new Float64Array([N,x,x,D]),[2,2],"float64"))}else{let y=r.size;if(i){let g=0,h=0;for(let x=0;x<y;x++)g+=u[x*2],h+=u[x*2+1];g/=y,h/=y;let N=0;for(let x=0;x<y;x++){let C=u[x*2]-g,w=u[x*2+1]-h;N+=C*C+w*w}let D=y-s;return D<=0?S.fromData(new Float64Array([NaN,0]),[],"complex128"):(N/=D,S.fromData(new Float64Array([N,0]),[],"complex128"))}let d=0;for(let g=0;g<y;g++)d+=Number(u[g]);d/=y;let b=0;for(let g=0;g<y;g++){let h=Number(u[g])-d;b+=h*h}let A=y-s;return A<=0?S.fromData(new Float64Array([NaN]),[],"float64"):(b/=A,S.fromData(new Float64Array([b]),[],"float64"))}let c,l;e?(c=a[0],l=a[1]):(c=a[1],l=a[0]);let f=l-s;if(i){let y=new Float64Array(c),d=new Float64Array(c);for(let A=0;A<c;A++){let g=0,h=0;for(let N=0;N<l;N++){let D=e?A*l+N:N*c+A;g+=u[D*2],h+=u[D*2+1]}y[A]=g/l,d[A]=h/l}let b=new Float64Array(c*c*2);if(f<=0)return b.fill(NaN),S.fromData(b,[c,c],"complex128");for(let A=0;A<c;A++)for(let g=0;g<c;g++){let h=0,N=0;for(let x=0;x<l;x++){let C=e?A*l+x:x*c+A,w=e?g*l+x:x*c+g,_=u[C*2]-y[A],I=u[C*2+1]-d[A],M=u[w*2]-y[g],T=u[w*2+1]-d[g];h+=_*M+I*T,N+=I*M-_*T}let D=(A*c+g)*2;b[D]=h/f,b[D+1]=N/f}return S.fromData(b,[c,c],"complex128")}let m=new Float64Array(c);for(let y=0;y<c;y++){let d=0;for(let b=0;b<l;b++){let A=e?y*l+b:b*c+y;d+=Number(u[A])}m[y]=d/l}let p=new Float64Array(c*c);if(f<=0)return p.fill(NaN),S.fromData(p,[c,c],"float64");for(let y=0;y<c;y++)for(let d=y;d<c;d++){let b=0;for(let g=0;g<l;g++){let h=e?y*l+g:g*c+y,N=e?d*l+g:g*c+d,D=Number(u[h])-m[y],x=Number(u[N])-m[d];b+=D*x}let A=b/f;p[y*c+d]=A,p[d*c+y]=A}return S.fromData(p,[c,c],"float64")}function wy(r,t,e=!0){let n=B(r.dtype)||t!==void 0&&B(t.dtype);if(r.shape.length===1&&t===void 0)return n?S.fromData(new Float64Array([1,0]),[],"complex128"):S.fromData(new Float64Array([1]),[],"float64");let o=qu(r,t,e,!1),a=o.data,i=o.shape[0];if(n){let c=new Float64Array(i*i*2);for(let l=0;l<i;l++)for(let f=0;f<i;f++){let m=a[(l*i+f)*2],p=a[(l*i+f)*2+1],y=a[(l*i+l)*2],d=a[(f*i+f)*2],b=(l*i+f)*2;if(y<=0||d<=0)c[b]=NaN,c[b+1]=NaN;else{let A=Math.sqrt(y*d);c[b]=m/A,c[b+1]=p/A}}return S.fromData(c,[i,i],"complex128")}let s=new Float64Array(i*i);for(let c=0;c<i;c++)for(let l=0;l<i;l++){let f=Number(a[c*i+l]),m=Number(a[c*i+c]),p=Number(a[l*i+l]);m<=0||p<=0?s[c*i+l]=NaN:s[c*i+l]=f/Math.sqrt(m*p)}return S.fromData(s,[i,i],"float64")}function Iy(r,t=10,e,n){L(r.dtype,"histogram_bin_edges","histogram_bin_edges requires real numbers.");let o=r.data,a=r.size,u,i;if(e)[u,i]=e;else{u=1/0,i=-1/0;for(let f=0;f<a;f++){let m=Number(o[f]);isNaN(m)||(m<u&&(u=m),m>i&&(i=m))}!isFinite(u)||!isFinite(i)?(u=0,i=1):u===i&&(u=u-.5,i=i+.5)}let s;typeof t=="number"?s=t:s=ku(o,a,u,i,t),s=Math.max(1,Math.round(s));let c=new Float64Array(s+1),l=(i-u)/s;for(let f=0;f<=s;f++)c[f]=u+f*l;return S.fromData(c,[s+1],"float64")}function ku(r,t,e,n,o){if(t===0)return 1;let a=n-e;if(a===0)return 1;let u=[],i=0;for(let d=0;d<t;d++){let b=Number(r[d]);isNaN(b)||(u.push(b),i+=b)}let s=u.length;if(s===0)return 1;let c=i/s,l=0;for(let d=0;d<s;d++){let b=u[d]-c;l+=b*b}let f=Math.sqrt(l/s);u.sort((d,b)=>d-b);let m=u[Math.floor(s*.25)]??0,y=(u[Math.floor(s*.75)]??0)-m;switch(o){case"sqrt":return Math.ceil(Math.sqrt(s));case"sturges":return Math.ceil(Math.log2(s)+1);case"rice":return Math.ceil(2*Math.pow(s,1/3));case"scott":{if(f===0)return 1;let d=3.5*f/Math.pow(s,1/3);return Math.ceil(a/d)}case"fd":{if(y===0)return ku(r,t,e,n,"sturges");let d=2*y/Math.pow(s,1/3);return Math.ceil(a/d)}case"doane":{let d=sx(u,c,f),b=Math.sqrt(6*(s-2)/((s+1)*(s+3)));return Math.ceil(1+Math.log2(s)+Math.log2(1+Math.abs(d)/b))}case"stone":return ku(r,t,e,n,"sturges");default:{let d=Math.ceil(Math.log2(s)+1),b=y===0?d:Math.ceil(a/(2*y/Math.pow(s,1/3)));return Math.max(d,b)}}}function sx(r,t,e){if(e===0)return 0;let n=r.length,o=0;for(let a=0;a<n;a++)o+=Math.pow((r[a]-t)/e,3);return o/n}function zy(r,t,e=1,n=-1){L(r.dtype,"trapezoid","trapezoid requires real numbers."),t!==void 0&&L(t.dtype,"trapezoid","trapezoid requires real numbers.");let o=Array.from(r.shape),a=o.length;if(n<0&&(n=a+n),n<0||n>=a)throw new Error(`axis ${n} is out of bounds for array of dimension ${a}`);let u=o[n];if(u<2)throw new Error("trapezoid requires at least 2 samples along axis");let i;if(t!==void 0){if(t.size!==u)throw new Error(`x array size (${t.size}) must match y axis size (${u})`);let d=t.data;i=new Float64Array(u);for(let b=0;b<u;b++)i[b]=Number(d[b])}else{i=new Float64Array(u);for(let d=0;d<u;d++)i[d]=d*e}let s=[...o];if(s.splice(n,1),a===1){let d=r.data,b=0;for(let A=0;A<u-1;A++){let g=Number(d[A]),h=Number(d[A+1]),N=i[A+1]-i[A];b+=.5*(g+h)*N}return b}let c=s.reduce((d,b)=>d*b,1),l=new Float64Array(c),f=new Array(a),m=1;for(let d=a-1;d>=0;d--)f[d]=m,m*=o[d];let p=new Array(s.length);m=1;for(let d=s.length-1;d>=0;d--)p[d]=m,m*=s[d];let y=r.data;for(let d=0;d<c;d++){let b=[],A=d;for(let D=0;D<s.length;D++){let x=Math.floor(A/p[D]);A%=p[D],b.push(x)}let g=[],h=0;for(let D=0;D<a;D++)D===n?g.push(0):(g.push(b[h]),h++);let N=0;for(let D=0;D<u-1;D++){g[n]=D;let x=0;for(let M=0;M<a;M++)x+=g[M]*f[M];g[n]=D+1;let C=0;for(let M=0;M<a;M++)C+=g[M]*f[M];let w=Number(y[x]),_=Number(y[C]),I=i[D+1]-i[D];N+=.5*(w+_)*I}l[d]=N}return s.length===0?l[0]:S.fromData(l,s,"float64")}function Vu(r,t,e){let n=t?z(t):void 0;return v(hy(z(r),n,e))}function Pu(r,t,e){return v(Ny(z(r),z(t),e))}function va(r,t,e,n,o){let a=t instanceof P?z(t):t,u=o?z(o):void 0,i=Dy(z(r),a,e,n,u);return[v(i.hist),v(i.bin_edges)]}function Fa(r,t,e,n,o,a){let u;if(Array.isArray(e)&&e.length===2){let c=e[0]instanceof P?z(e[0]):e[0],l=e[1]instanceof P?z(e[1]):e[1];u=[c,l]}else u=e;let i=a?z(a):void 0,s=xy(z(r),z(t),u,n,o,i);return[v(s.hist),v(s.x_edges),v(s.y_edges)]}function Ba(r,t,e,n,o){let a=o?z(o):void 0,u=Cy(z(r),t,e,n,a);return[v(u.hist),u.edges.map(i=>v(i))]}function ju(r,t,e){return v(Ru(z(r),z(t),e))}function Lu(r,t,e){return v(Sy(z(r),z(t),e))}function Wu(r,t,e,n,o){return v(qu(z(r),t?z(t):void 0,e,n,o))}function Gu(r,t,e){return v(wy(z(r),t?z(t):void 0,e))}function Ta(r,t,e,n){return v(Iy(z(r),t,e,n?z(n):void 0))}function Yu(r,t,e,n){let o=zy(z(r),t?z(t):void 0,e,n);return typeof o=="number"?o:v(o)}function _y(r,t=1,e=-1){if(t<0)throw new Error(`order must be non-negative but got ${t}`);if(t===0)return r.copy();let n=Array.from(r.shape),o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);if(n[a]<t+1)throw new Error(`diff requires at least ${t+1} elements along axis ${e}, but got ${n[a]}`);let u=r;for(let i=0;i<t;i++)u=ux(u,a);return u}function ux(r,t){let e=Array.from(r.shape),n=e.length,o=e[t],a=[...e];a[t]=o-1;let u=r.dtype,i=B(u),s=E(u)?"float64":u,c=S.zeros(a,s),l=c.data,f=r.strides,m=c.size,p=r.offset;for(let y=0;y<m;y++){let d=y,b=new Array(n);for(let D=n-1;D>=0;D--)b[D]=d%a[D],d=Math.floor(d/a[D]);let A=[...b],g=[...b];g[t]=A[t]+1;let h=0,N=0;for(let D=0;D<n;D++)h+=A[D]*f[D],N+=g[D]*f[D];if(i){let D=r.data,x=D[(p+h)*2],C=D[(p+h)*2+1],w=D[(p+N)*2],_=D[(p+N)*2+1];l[y*2]=w-x,l[y*2+1]=_-C}else{let D=(E(u),Number(r.data[p+h])),x=(E(u),Number(r.data[p+N]));l[y]=x-D}}return c}function My(r,t=null,e=null){let n=r.size,o=r.dtype,a=B(o),u=E(o)?"float64":o,i=Math.max(0,n-1),s=e?e.length:0,c=t?t.length:0,l=s+i+c,f=S.zeros([l],u),m=f.data,p=0;if(e)if(a)for(let y of e)m[p*2]=y,m[p*2+1]=0,p++;else for(let y of e)m[p++]=y;if(a)for(let y=0;y<i;y++){let d=r.iget(y),b=r.iget(y+1);m[p*2]=b.re-d.re,m[p*2+1]=b.im-d.im,p++}else for(let y=0;y<i;y++){let d=(E(o),Number(r.iget(y))),b=(E(o),Number(r.iget(y+1)));m[p++]=b-d}if(t)if(a)for(let y of t)m[p*2]=y,m[p*2+1]=0,p++;else for(let y of t)m[p++]=y;return f}function vy(r,t=1,e=null){let o=Array.from(r.shape).length,a;if(e===null)a=Array.from({length:o},(s,c)=>c);else if(typeof e=="number"){let s=e<0?o+e:e;if(s<0||s>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);a=[s]}else a=e.map(s=>{let c=s<0?o+s:s;if(c<0||c>=o)throw new Error(`axis ${s} is out of bounds for array of dimension ${o}`);return c});let u;if(typeof t=="number")u=a.map(()=>t);else{if(t.length!==a.length)throw new Error("Number of spacings must match number of axes");u=t}let i=[];for(let s=0;s<a.length;s++)i.push(cx(r,a[s],u[s]));return i.length===1?i[0]:i}function cx(r,t,e){let n=Array.from(r.shape),o=n.length,a=n[t];if(a<2)throw new Error(`Shape of array along axis ${t} must be at least 2, but got ${a}`);let u=r.dtype,i=B(u),s=E(u)?"float64":u==="float32"?"float32":i?u:"float64",c=S.zeros(n,s),l=c.data,f=r.strides,m=e,p=2*m,y=r.size,d=r.offset;for(let b=0;b<y;b++){let A=b,g=new Array(o);for(let D=o-1;D>=0;D--)g[D]=A%n[D],A=Math.floor(A/n[D]);let h=d;for(let D=0;D<o;D++)h+=g[D]*f[D];let N=g[t];if(i){let D=r.data,x=l,C,w;if(N===0){let _=[...g];_[t]=1;let I=0;for(let k=0;k<o;k++)I+=_[k]*f[k];let M=D[h*2],T=D[h*2+1],O=D[(d+I)*2],$=D[(d+I)*2+1];C=(O-M)/m,w=($-T)/m}else if(N===a-1){let _=[...g];_[t]=a-2;let I=0;for(let k=0;k<o;k++)I+=_[k]*f[k];let M=D[h*2],T=D[h*2+1],O=D[(d+I)*2],$=D[(d+I)*2+1];C=(M-O)/m,w=(T-$)/m}else{let _=[...g],I=[...g];_[t]=N+1,I[t]=N-1;let M=0,T=0;for(let j=0;j<o;j++)M+=_[j]*f[j],T+=I[j]*f[j];let O=D[(d+M)*2],$=D[(d+M)*2+1],k=D[(d+T)*2],V=D[(d+T)*2+1];C=(O-k)/p,w=($-V)/p}x[b*2]=C,x[b*2+1]=w}else{let D;if(N===0){let x=[...g];x[t]=1;let C=0;for(let I=0;I<o;I++)C+=x[I]*f[I];let w=(E(u),Number(r.data[h]));D=((E(u),Number(r.data[d+C]))-w)/m}else if(N===a-1){let x=[...g];x[t]=a-2;let C=0;for(let I=0;I<o;I++)C+=x[I]*f[I];let w=(E(u),Number(r.data[h])),_=(E(u),Number(r.data[d+C]));D=(w-_)/m}else{let x=[...g],C=[...g];x[t]=N+1,C[t]=N-1;let w=0,_=0;for(let T=0;T<o;T++)w+=x[T]*f[T],_+=C[T]*f[T];let I=(E(u),Number(r.data[d+w])),M=(E(u),Number(r.data[d+_]));D=(I-M)/p}l[b]=D}}return c}function io(r,t,e){return v(_y(z(r),t,e))}function Zu(r,t,e){return v(My(z(r),t??null,e??null))}function Ea(r,t,e){let n=vy(z(r),t,e);return Array.isArray(n)?$r(n):v(n)}function Fy(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(B(t)){let o=Bt(t),a=S.zeros(e,o),u=a.data,i=r.data;for(let s=0;s<n;s++)u[s]=i[s*2];return a}return r.copy()}function By(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(B(t)){let a=Bt(t),u=S.zeros(e,a),i=u.data,s=r.data;for(let c=0;c<n;c++)i[c]=s[c*2+1];return u}let o=t==="float32"?"float32":"float64";return S.zeros(e,o)}function Ty(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(B(t)){let o=K(t),a=n*2,u=new o(a),i=r.data;for(let s=0;s<n;s++)u[s*2]=i[s*2],u[s*2+1]=-i[s*2+1];return S.fromData(u,e,t)}return r.copy()}function Ey(r,t=!1){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=S.zeros(n,"float64"),u=a.data;if(B(e)){let i=r.data;for(let s=0;s<o;s++){let c=i[s*2],l=i[s*2+1],f=Math.atan2(l,c);t&&(f=f*180/Math.PI),u[s]=f}}else for(let i=0;i<o;i++){let s=r.iget(i),l=(s instanceof U?s.re:Number(s))>=0?0:Math.PI;t&&(l=l*180/Math.PI),u[i]=l}return a}function Xu(r){return v(Fy(z(r)))}function Ju(r){return v(By(z(r)))}function uo(r){return v(Ty(z(r)))}function Ku(r,t){return v(Ey(z(r),t))}function Qu(r,t){let e=r.shape,n=e.length,o=t.length;if(o<n)throw new Error("input operand has more dimensions than allowed by the axis remapping");let a=qr([Array.from(e),t]);if(a===null)throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${t.join(",")})`);for(let u=0;u<o;u++)if(a[u]!==t[u])throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${t.join(",")})`);return _r(r,t)}function Oy(r){if(r.length===0)return[];if(r.length===1)return[r[0]];let t=r.map(n=>Array.from(n.shape)),e=qr(t);if(e===null)throw new Error(`operands could not be broadcast together with shapes ${t.map(n=>`(${n.join(",")})`).join(" ")}`);return r.map(n=>_r(n,e))}function Uy(r,t,e){let n=r.shape,o=n.length,a=r.dtype;if(e===void 0){let y=r.size;for(let g of t){let h=g<0?y+g:g;if(h<0||h>=y)throw new Error(`index ${g} is out of bounds for axis 0 with size ${y}`)}let d=t.length,b=K(a);if(!b)throw new Error(`Cannot take from array with dtype ${a}`);let A=new b(d);for(let g=0;g<d;g++){let h=t[g];h<0&&(h=y+h);let N=r.iget(h);E(a),A[g]=N}return S.fromData(A,[d],a)}let u=e<0?o+e:e;if(u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=n[u];for(let y of t){let d=y<0?i+y:y;if(d<0||d>=i)throw new Error(`index ${y} is out of bounds for axis ${u} with size ${i}`)}let s=Array.from(n);s[u]=t.length;let c=s.reduce((y,d)=>y*d,1),l=K(a);if(!l)throw new Error(`Cannot take from array with dtype ${a}`);let f=new l(c),m=lr(s),p=new Array(o).fill(0);for(let y=0;y<c;y++){let d=[...p],b=p[u],A=t[b];A<0&&(A=i+A),d[u]=A;let g=r.get(...d),h=0;for(let N=0;N<o;N++)h+=p[N]*m[N];E(a),f[h]=g;for(let N=o-1;N>=0&&(p[N]++,!(p[N]<s[N]));N--)p[N]=0}return S.fromData(f,s,a)}function $y(r,t,e){let n=r.size,o=r.dtype,a;if(typeof e=="number"||typeof e=="bigint")a=new Array(t.length).fill(e);else{a=[];for(let u=0;u<e.size;u++){let i=e.iget(u);a.push(i instanceof U?i.re:i)}if(a.length===1)a=new Array(t.length).fill(a[0]);else if(a.length!==t.length){let u=[...a];a=[];for(let i=0;i<t.length;i++)a.push(u[i%u.length])}}for(let u=0;u<t.length;u++){let i=t[u];if(i<0&&(i=n+i),i<0||i>=n)throw new Error(`index ${t[u]} is out of bounds for axis 0 with size ${n}`);let s=a[u];E(o)?typeof s!="bigint"&&(s=BigInt(Math.round(Number(s)))):typeof s=="bigint"&&(s=Number(s)),r.iset(i,s)}}function ky(r,t){if(t.length===0)throw new Error("choices cannot be empty");let e=r.shape,n=t.length,o=t[0].dtype,a=t.map(m=>Array.from(m.shape));a.unshift(Array.from(e));let u=qr(a);if(u===null)throw new Error("operands could not be broadcast together");let i=_r(r,u),s=t.map(m=>_r(m,u)),c=u.reduce((m,p)=>m*p,1),l=K(o);if(!l)throw new Error(`Cannot choose with dtype ${o}`);let f=new l(c);for(let m=0;m<c;m++){let p=Number(i.iget(m));if(p<0||p>=n)throw new Error(`index ${p} is out of bounds for axis 0 with size ${n}`);let y=s[p].iget(m);E(o),f[m]=y}return S.fromData(f,u,o)}function Ry(r,t,e=!1){if(r.ndim!==t.ndim)return!1;for(let o=0;o<r.ndim;o++)if(r.shape[o]!==t.shape[o])return!1;let n=r.size;for(let o=0;o<n;o++){let a=r.iget(o),u=t.iget(o);if(e){let i=typeof a=="number"&&Number.isNaN(a),s=typeof u=="number"&&Number.isNaN(u);if(i&&s)continue}if(a!==u)return!1}return!0}function qy(r,t,e){let n=r.shape,o=n.length,a=r.dtype,u=e<0?o+e:e;if(u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=t.shape;if(i.length!==o)throw new Error(`indices and arr must have the same number of dimensions, got ${i.length} vs ${o}`);for(let d=0;d<o;d++)if(d!==u&&i[d]!==n[d]&&i[d]!==1&&n[d]!==1)throw new Error(`index ${i[d]} is out of bounds for size ${n[d]} in dimension ${d}`);let s=Array.from(i),c=s.reduce((d,b)=>d*b,1),l=K(a);if(!l)throw new Error(`Cannot take_along_axis with dtype ${a}`);let f=new l(c),m=lr(n),p=lr(i),y=n[u];for(let d=0;d<c;d++){let b=new Array(o),A=d;for(let C=o-1;C>=0;C--)b[C]=A%s[C],A=Math.floor(A/s[C]);let g=0;for(let C=0;C<o;C++){let w=i[C]===1?0:b[C];g+=w*p[C]}let h=Number(t.iget(g));if(h<0&&(h=y+h),h<0||h>=y)throw new Error(`index ${h} is out of bounds for axis ${u} with size ${y}`);let N=[...b];N[u]=h;let D=0;for(let C=0;C<o;C++){let w=n[C]===1?0:N[C];D+=w*m[C]}let x=r.iget(D);E(a),f[d]=x}return S.fromData(f,s,a)}function Vy(r,t,e,n){let o=r.shape,a=o.length,u=r.dtype,i=n<0?a+n:n;if(i<0||i>=a)throw new Error(`axis ${n} is out of bounds for array of dimension ${a}`);let s=t.shape,c=e.shape;if(s.length!==a||c.length!==a)throw new Error("indices, arr, and values must have same ndim");let l=o[i],f=lr(o),m=lr(s),p=lr(c),y=s.reduce((d,b)=>d*b,1);for(let d=0;d<y;d++){let b=new Array(a),A=d;for(let w=a-1;w>=0;w--)b[w]=A%s[w],A=Math.floor(A/s[w]);let g=0;for(let w=0;w<a;w++)g+=b[w]*m[w];let h=Number(t.iget(g));if(h<0&&(h=l+h),h<0||h>=l)throw new Error(`index ${h} is out of bounds for axis ${i} with size ${l}`);let N=0;for(let w=0;w<a;w++){let _=c[w]===1?0:b[w];N+=_*p[w]}let D=e.iget(N),x=[...b];x[i]=h;let C=0;for(let w=0;w<a;w++)C+=x[w]*f[w];E(u)?typeof D!="bigint"&&(D=BigInt(Math.round(Number(D)))):typeof D=="bigint"&&(D=Number(D)),r.iset(C,D)}}function Py(r,t,e){let n=r.size,o=r.dtype,a;if(typeof e=="number"||typeof e=="bigint")a=[e];else{a=[];for(let i=0;i<e.size;i++){let s=e.iget(i);a.push(s instanceof U?s.re:s)}}let u=0;for(let i=0;i<n;i++)if(t.iget(i)){let c=a[u%a.length];E(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),r.iset(i,c),u++}}function jy(r,t,e){let n=t.shape,o=n.length,a=t.dtype,u=E(a);if(e===void 0){let N=Math.min(r.size,t.size),D=r.isCContiguous,x=r.data,C=r.offset,w=0;if(D)for(let O=0;O<N;O++)x[C+O]&&w++;else for(let O=0;O<N;O++)r.iget(O)&&w++;let _=K(a);if(!_)throw new Error(`Cannot compress with dtype ${a}`);let I=new _(w),M=0,T=t.isCContiguous;if(D&&T){let O=t.data,$=t.offset;if(u){let k=I,V=O;for(let j=0;j<N;j++)x[C+j]&&(k[M++]=V[$+j])}else{let k=I,V=O;for(let j=0;j<N;j++)x[C+j]&&(k[M++]=V[$+j])}}else for(let O=0;O<N;O++)(D?x[C+O]:r.iget(O))&&(I[M]=t.iget(O),M++);return S.fromData(I,[w],a)}let i=e<0?o+e:e;if(i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=n[i],c=Math.min(r.size,s),l=[];for(let N=0;N<c;N++)r.iget(N)&&l.push(N);let f=l.length,m=[...n];m[i]=f;let p=m.reduce((N,D)=>N*D,1),y=K(a);if(!y)throw new Error(`Cannot compress with dtype ${a}`);let d=new y(p),b=n.slice(i+1).reduce((N,D)=>N*D,1),A=n.slice(0,i).reduce((N,D)=>N*D,1),g=0;if(t.isCContiguous){let N=t.data,D=t.offset;if(u){let x=d,C=N;for(let w=0;w<A;w++)for(let _=0;_<f;_++){let I=l[_];for(let M=0;M<b;M++){let T=w*s*b+I*b+M;x[g++]=C[D+T]}}}else{let x=d,C=N;for(let w=0;w<A;w++)for(let _=0;_<f;_++){let I=l[_];for(let M=0;M<b;M++){let T=w*s*b+I*b+M;x[g++]=C[D+T]}}}}else for(let N=0;N<A;N++)for(let D=0;D<f;D++){let x=l[D];for(let C=0;C<b;C++){let w=N*s*b+x*b+C;d[g++]=t.iget(w)}}return S.fromData(d,m,a)}function Ly(r,t,e=0){if(r.length!==t.length)throw new Error("condlist and choicelist must have same length");if(r.length===0)throw new Error("condlist and choicelist cannot be empty");let n=[...r.map(m=>Array.from(m.shape)),...t.map(m=>Array.from(m.shape))],o=qr(n);if(o===null)throw new Error("condlist and choicelist arrays could not be broadcast together");let a=t[0].dtype,u=o.reduce((m,p)=>m*p,1),i=K(a);if(!i)throw new Error(`Cannot select with dtype ${a}`);let s=e;E(a)?s=typeof e=="bigint"?e:BigInt(e):s=typeof e=="bigint"?Number(e):e;let c=new i(u);for(let m=0;m<u;m++)E(a),c[m]=s;let l=r.map(m=>_r(m,o)),f=t.map(m=>_r(m,o));for(let m=0;m<u;m++)for(let p=0;p<r.length;p++)if(l[p].iget(m)){let y=f[p].iget(m);E(a),c[m]=y;break}return S.fromData(c,o,a)}function Wy(r,t,e){let n=r.size,o=r.dtype,a=[];for(let i=0;i<e.size;i++){let s=e.iget(i);a.push(s instanceof U?s.re:s)}if(a.length===0)return;let u=0;for(let i=0;i<n;i++)if(t.iget(i)){let c=a[u%a.length];E(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),r.iset(i,c),u++}}function Hu(r,t=2){if(t<1)throw new Error("ndim must be at least 1");let e=new Int32Array(r);for(let o=0;o<r;o++)e[o]=o;let n=[];for(let o=0;o<t;o++)n.push(S.fromData(new Int32Array(e),[r],"int32"));return n}function Gy(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 Hu(n,e)}function rc(r,t=0,e){let n=e??r,o=[],a=[];for(let u=0;u<r;u++)for(let i=0;i<=Math.min(u+t,n-1);i++)i>=0&&(o.push(u),a.push(i));return[S.fromData(new Int32Array(o),[o.length],"int32"),S.fromData(new Int32Array(a),[a.length],"int32")]}function Yy(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return rc(e[0],t,e[1])}function tc(r,t=0,e){let n=e??r,o=[],a=[];for(let u=0;u<r;u++)for(let i=Math.max(u+t,0);i<n;i++)o.push(u),a.push(i);return[S.fromData(new Int32Array(o),[o.length],"int32"),S.fromData(new Int32Array(a),[a.length],"int32")]}function Zy(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return tc(e[0],t,e[1])}function Xy(r,t,e=0){let n=t(r,e),o=n.shape;if(o.length!==2||o[0]!==r||o[1]!==r)throw new Error("mask_func must return n x n array");let a=[],u=[];for(let i=0;i<r;i++)for(let s=0;s<r;s++)n.get(i,s)&&(a.push(i),u.push(s));return[S.fromData(new Int32Array(a),[a.length],"int32"),S.fromData(new Int32Array(u),[u.length],"int32")]}function Jy(r,t="int32"){let e=r.length,n=[e,...r],o=n.reduce((s,c)=>s*c,1),a=K(t);if(!a)throw new Error(`Cannot create indices with dtype ${t}`);let u=new a(o),i=r.reduce((s,c)=>s*c,1);for(let s=0;s<e;s++){let c=s*i;for(let l=0;l<i;l++){let f=new Array(e),m=l;for(let y=e-1;y>=0;y--)f[y]=m%r[y],m=Math.floor(m/r[y]);let p=f[s];t==="int64"?u[c+l]=BigInt(p):u[c+l]=p}}return S.fromData(u,n,t)}function Ky(...r){let t=r.length,e=[];for(let n=0;n<t;n++){let o=r[n],a=o.size,u=o.dtype,i=new Array(t).fill(1);i[n]=a;let s=K(u);if(!s)throw new Error(`Cannot create ix_ with dtype ${u}`);let c=new s(a);for(let l=0;l<a;l++){let f=o.iget(l);E(u),c[l]=f}e.push(S.fromData(c,i,u))}return e}function Qy(r,t,e="raise"){if(r.length!==t.length)throw new Error("multi_index length must equal dims length");if(r.length===0)throw new Error("multi_index cannot be empty");let n=r[0].size,o=t.length,a=new Int32Array(n),u=new Array(o),i=1;for(let s=o-1;s>=0;s--)u[s]=i,i*=t[s];for(let s=0;s<n;s++){let c=0;for(let l=0;l<o;l++){let f=Number(r[l].iget(s)),m=t[l];if(e==="wrap")f=(f%m+m)%m;else if(e==="clip")f=Math.max(0,Math.min(f,m-1));else if(f<0||f>=m)throw new Error(`index ${f} is out of bounds for axis ${l} with size ${m}`);c+=f*u[l]}a[s]=c}return S.fromData(a,[n],"int32")}function Hy(r,t,e="C"){let n=t.length,o,a;if(typeof r=="number")o=[r],a=[];else{o=[];for(let l=0;l<r.size;l++)o.push(Number(r.iget(l)));a=Array.from(r.shape)}let u=o.length,i=t.reduce((l,f)=>l*f,1),s=new Array(n);if(e==="C"){let l=1;for(let f=n-1;f>=0;f--)s[f]=l,l*=t[f]}else{let l=1;for(let f=0;f<n;f++)s[f]=l,l*=t[f]}let c=[];for(let l=0;l<n;l++){let f=new Int32Array(u);c.push(S.fromData(f,a.length?a:[1],"int32"))}for(let l=0;l<u;l++){let f=o[l];if(f<0||f>=i)throw new Error(`index ${f} is out of bounds for array with size ${i}`);if(e==="C")for(let m=0;m<n;m++){let p=Math.floor(f/s[m]);f=f%s[m],c[m].data[l]=p%t[m]}else for(let m=n-1;m>=0;m--){let p=Math.floor(f/s[m]);f=f%s[m],c[m].data[l]=p%t[m]}}return typeof r=="number"?c.map(l=>{let f=l.iget(0);return S.fromData(new Int32Array([Number(f)]),[],"int32")}):c}function rd(r,t,e=!1){let n=r.shape,o=n.length;if(o<2)throw new Error("array must be at least 2-d");let a;if(o===2)a=n[1]+1;else{a=1;for(let c=1;c<o;c++){let l=1;for(let f=c;f<o;f++)l*=n[f];a+=l}}let u=r.size,i=Math.min(...n);e&&o===2&&(i=Math.max(n[0],n[1]));let s=r.isCContiguous;if(typeof t=="number")if(s){let c=r.data,l=r.offset;if(E(r.dtype)){let f=c,m=BigInt(Math.round(t));for(let p=0;p<i;p++){let y=p*a;if(y>=u)break;f[l+y]=m}}else for(let f=0;f<i;f++){let m=f*a;if(m>=u)break;c[l+m]=t}}else for(let c=0;c<i&&c*a<u;c++)r.iset(c*a,t);else{let c=t.size;if(s&&t.isCContiguous){let l=r.data,f=r.offset,m=t.data,p=t.offset;if(E(r.dtype)){let y=l,d=m;for(let b=0;b<i;b++){let A=b*a;if(A>=u)break;y[f+A]=d[p+b%c]}}else{let y=l,d=m;for(let b=0;b<i;b++){let A=b*a;if(A>=u)break;y[f+A]=d[p+b%c]}}}else for(let l=0;l<i&&l*a<u;l++)r.iset(l*a,t.iget(l%c))}}function td(r,t,e){let n=Array.from(r.shape),o=n.length;if(t<0&&(t+=o),t<0||t>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let a=[];for(let u=0;u<o;u++)u!==t&&a.push(n[u]);if(a.length===0){let u=e(r);if(typeof u=="number"){let i=S.zeros([1],r.dtype);return i.data[0]=u,i}return u}if(o===2){let[u,i]=n;if(t===0){let s=[];for(let l=0;l<i;l++){let f=new Float64Array(u);for(let p=0;p<u;p++)f[p]=Number(r.get(p,l));let m=S.fromData(f,[u],"float64");s.push(e(m))}let c=s[0];if(c===void 0)return S.zeros([0],"float64");if(typeof c=="number"){let l=S.zeros([i],"float64");for(let f=0;f<i;f++)l.data[f]=s[f];return l}else{let l=[c.size,i],f=S.zeros(l,"float64");for(let m=0;m<i;m++){let p=s[m];for(let y=0;y<p.size;y++)f.data[y*i+m]=Number(p.iget(y))}return f}}else{let s=[];for(let l=0;l<u;l++){let f=new Float64Array(i);for(let p=0;p<i;p++)f[p]=Number(r.get(l,p));let m=S.fromData(f,[i],"float64");s.push(e(m))}let c=s[0];if(c===void 0)return S.zeros([0],"float64");if(typeof c=="number"){let l=S.zeros([u],"float64");for(let f=0;f<u;f++)l.data[f]=s[f];return l}else{let l=[u,c.size],f=S.zeros(l,"float64");for(let m=0;m<u;m++){let p=s[m];for(let y=0;y<p.size;y++)f.data[m*p.size+y]=Number(p.iget(y))}return f}}}if(o===1){let u=e(r);if(typeof u=="number"){let i=S.zeros([1],"float64");return i.data[0]=u,i}return u}throw new Error(`apply_along_axis not fully implemented for ${o}D arrays. Only 1D and 2D arrays are supported.`)}function ed(r,t,e){let n=r,o=r.shape.length;for(let a of e){let u=a<0?a+o:a;if(u<0||u>=o)throw new Error(`axis ${a} is out of bounds for array of dimension ${o}`);if(n=t(n,u),n.shape.length<o){let i=Array.from(n.shape);i.splice(u,0,1);let s=lr(i);n=new S(n.data,i,s,0,n.dtype)}}return n}function ec(r,t){return r.data.buffer===t.data.buffer}function nd(r,t){return ec(r,t)}var Pr={divide:"warn",over:"warn",under:"ignore",invalid:"warn"};function nc(){return{...Pr}}function od(r,t,e,n,o){let a=nc();return r!==void 0&&(Pr.divide=r,Pr.over=r,Pr.under=r,Pr.invalid=r),t!==void 0&&(Pr.divide=t),e!==void 0&&(Pr.over=e),n!==void 0&&(Pr.under=n),o!==void 0&&(Pr.invalid=o),a}function co(r,t){return Nr(Qu(z(r),t),r)}function Oa(...r){let t=r.map(z);return Oy(t).map(e=>v(e))}function Ua(...r){if(r.length===0)return[];if(r.length===1)return[...r[0]];let t=[...r[0]];for(let e=1;e<r.length;e++){let n=r[e],o=Math.max(t.length,n.length),a=[];for(let u=0;u<o;u++){let i=u<t.length?t[t.length-1-u]:1,s=u<n.length?n[n.length-1-u]:1;if(i===s)a.unshift(i);else if(i===1)a.unshift(s);else if(s===1)a.unshift(i);else throw new Error(`Cannot broadcast shapes: dimensions ${i} and ${s} are incompatible`)}t=a}return t}function zt(r,t,e){return v(Uy(z(r),t,e))}function _t(r,t,e){let n=Array.isArray(e)?z(Q(e)):z(e);$y(z(r),t,n)}function oc(r,t,e){return v(qy(z(r),z(t),e))}function $a(r,t,e,n){Vy(z(r),z(t),z(e),n)}function lo(r,t){let e=t.map(z);return v(ky(z(r),e))}function nt(r,t,e){return v(jy(z(r),z(t),e))}function ac(r,t,e=0){let n;return t instanceof P?n=Array.from(t.data):Array.isArray(t[0])?n=t.flat():n=t,zt(r,n,e)}function sc(r,t,e){return nt(t,r,e)}function ic(r,t,e=0){let n=r.map(z),o=t.map(z);return v(Ly(n,o,e))}function ka(r,t,e){Wy(z(r),z(t),z(e))}function Ra(r,t,e){Py(z(r),z(t),z(e))}function qa(r,t){let e=z(r),n=r.shape,o=r.size,a=r.dtype;if(typeof t=="number"||typeof t=="bigint"){r.fill(t);return}let u=z(t),i=t.shape,s=qr([i,n]);if(!s)throw new Error(`could not broadcast input array from shape (${i.join(",")}) into shape (${n.join(",")})`);if(s.length!==n.length||!s.every((l,f)=>l===n[f]))throw new Error(`could not broadcast input array from shape (${i.join(",")}) into shape (${n.join(",")})`);let c=Qu(u,n);if(E(a))for(let l=0;l<o;l++){let f=c.iget(l),m=typeof f=="bigint"?f:BigInt(Math.round(Number(f)));e.iset(l,m)}else if(a==="bool")for(let l=0;l<o;l++){let f=c.iget(l);e.iset(l,f?1:0)}else for(let l=0;l<o;l++){let f=c.iget(l);e.iset(l,Number(f))}}function uc(r,t="int32"){return v(Jy(r,t))}function Va(...r){let t=r.map(z);return Ky(...t).map(e=>v(e))}function cc(r,t,e="raise"){let n=r.map(z);return v(Qy(n,t,e))}function lc(r,t){let e=typeof r=="number"?z(Q([r])):z(r);return Hy(e,t).map(n=>v(n))}function fc(r,t=2){return Hu(r,t).map(e=>v(e))}function mc(r){return Gy(z(r)).map(t=>v(t))}function Pa(r,t,e=!1){rd(z(r),t,e)}function pc(r,t=0,e){return rc(r,t,e).map(n=>v(n))}function yc(r,t=0){return Yy(z(r),t).map(e=>v(e))}function dc(r,t=0,e){return tc(r,t,e).map(n=>v(n))}function bc(r,t=0){return Zy(z(r),t).map(e=>v(e))}function Ac(r,t,e=0){return Xy(r,(o,a)=>z(t(o,a)),e).map(o=>v(o))}function ja(r,t,e=!1){return Ry(z(r),z(t),e)}function La(r,t){return Tp(z(r),z(t))}function gc(r,t,e){let n=o=>{let a=r(v(o));return typeof a=="number"?a:z(a)};return v(td(z(e),t,n))}function hc(r,t,e){let n=(o,a)=>z(r(v(o),a));return v(ed(z(t),n,e))}function Wa(r,t){return ec(z(r),z(t))}function Ga(r,t){return nd(z(r),z(t))}var Ya=nc,Za=od;var Xa=Sl,Ja=wl,Ka=Il,Qa=Et,Ha=Tt,rs=zl,ts=_l;function es(r,t){return Mo(z(r),t?.max_line_width??null,t?.precision??null,t?.suppress_small??null,t?.separator??" ",t?.prefix??"",t?.suffix??"",t?.threshold??null,t?.edgeitems??null,t?.floatmode??null,t?.sign??null)}function ns(r,t,e,n){return Ml(z(r),t,e,n)}function Mt(r,t,e){return vo(z(r),t,e)}function os(r){if(r instanceof P)return r.ndim;if(typeof r=="number"||typeof r=="bigint"||typeof r=="boolean")return 0;if(Array.isArray(r)){let t=0,e=r;for(;Array.isArray(e)&&e.length>0;)t++,e=e[0];return t}return 0}function fo(r){if(r instanceof P)return r.shape;if(typeof r=="number"||typeof r=="bigint"||typeof r=="boolean")return[];if(Array.isArray(r)){let t=[],e=r;for(;Array.isArray(e)&&e.length>0;)t.push(e.length),e=e[0];return t}return[]}function as(r){return r instanceof P?r.size:typeof r=="number"||typeof r=="bigint"||typeof r=="boolean"?1:Array.isArray(r)?fo(r).reduce((e,n)=>e*n,1):1}function ss(r,...t){let e=r.storage,n=r.shape;if(t.length===0){if(r.size!==1)throw new Error("can only convert an array of size 1 to a scalar");return e.isCContiguous?e.data[e.offset]:e.iget(0)}if(t.length===1)return e.isCContiguous?e.data[e.offset+t[0]]:e.iget(t[0]);if(t.length!==n.length)throw new Error("incorrect number of indices for array");return e.get(...t)}function is(r){let t=r.shape,e=r.storage,n=t.length;if(n===0)return e.iget(0);if(e.isCContiguous){let l=function(f,m){let p=t[m],y=s[m];if(m===n-1){let b=new Array(p);for(let A=0;A<p;A++)b[A]=u[i+f+A];return b}let d=new Array(p);for(let b=0;b<p;b++)d[b]=l(f+b*y,m+1);return d};var a=l;let u=e.data,i=e.offset;if(n===1){let f=t[0],m=new Array(f);for(let p=0;p<f;p++)m[p]=u[i+p];return m}let s=new Array(n),c=1;for(let f=n-1;f>=0;f--)s[f]=c,c*=t[f];return l(0,0)}if(n===1){let u=[];for(let i=0;i<t[0];i++)u.push(e.iget(i));return u}function o(u,i){if(i===n)return e.get(...u);let s=[];for(let c=0;c<t[i];c++)u[i]=c,s.push(o(u,i+1));return s}return o(new Array(n),0)}function us(r,t="C"){let e=r.storage;t==="F"&&console.warn('tobytes with order="F" not fully implemented, returning C-order');let n=e.data,o=n.BYTES_PER_ELEMENT;if(e.isCContiguous){let i=n.byteOffset+e.offset*o,s=r.size*o;return new Uint8Array(n.buffer,i,s)}let u=r.copy().data;return new Uint8Array(u.buffer,u.byteOffset,r.size*o)}function cs(r,t=!1){let n=r.data.BYTES_PER_ELEMENT;if(n===1)return t?r:r.copy();let o=t?r:r.copy(),a=o.data,u=new Uint8Array(a.buffer,a.byteOffset,a.byteLength);for(let i=0;i<a.length;i++){let s=i*n;for(let c=0;c<n/2;c++){let l=u[s+c];u[s+c]=u[s+n-1-c],u[s+n-1-c]=l}}return o}function ls(r,t){if(!t||t===r.dtype)return r.copy();throw new Error("view with different dtype not fully implemented")}function fs(r,t,e="",n=""){throw new Error("tofile requires Node.js file system access. Use serializeNpy for portable serialization.")}function ms(r,t){let e=r.storage,n=r.dtype,o=r.size;if(t instanceof U){if(!(n==="complex64"||n==="complex128"))throw new Error("Cannot fill non-complex array with complex value");if(e.isCContiguous){let u=e.data,i=e.offset;for(let s=0;s<o;s++)u[(i+s)*2]=t.re,u[(i+s)*2+1]=t.im}else for(let u=0;u<o;u++)e.iset(u,t)}else if(typeof t=="bigint")if(e.isCContiguous)e.data.fill(t,e.offset,e.offset+o);else for(let a=0;a<o;a++)e.iset(a,t);else{let a=typeof t=="boolean"?t?1:0:t;if(e.isCContiguous)e.data.fill(a,e.offset,e.offset+o);else for(let u=0;u<o;u++)e.iset(u,a)}}function Nc(r,t,e){let n=t instanceof P?t:Q(Array.isArray(t)?t:[t]);if(e===void 0){let o=Br(r),a=Br(n);return gt([o,a],0)}return gt([r,n],e)}function ps(r,t,e){let n=Array.isArray(t)?t:[t],o=[...r.shape],a=r.storage;if(e===void 0){let A=Br(r),g=A.storage,h=[],N=new Set(n.map(D=>D<0?A.size+D:D));for(let D=0;D<A.size;D++)N.has(D)||h.push(g.iget(D));return Q(h,r.dtype)}let u=e<0?o.length+e:e,i=o[u],s=new Set(n.map(A=>A<0?i+A:A)),c=i-s.size,l=[...o];l[u]=c;let f=wr(l,r.dtype),m=f.storage,p=[],y=1;for(let A=o.length-1;A>=0;A--)p.unshift(y),y*=o[A];let d=[];y=1;for(let A=l.length-1;A>=0;A--)d.unshift(y),y*=l[A];let b=o.reduce((A,g)=>A*g,1);for(let A=0;A<b;A++){let g=[],h=A;for(let C=0;C<o.length;C++)g.push(Math.floor(h/p[C])),h=h%p[C];if(s.has(g[u]))continue;let N=0;for(let C of s)C<g[u]&&N++;let D=[...g];D[u]-=N;let x=0;for(let C=0;C<l.length;C++)x+=D[C]*d[C];m.iset(x,a.iget(A))}return f}function Dc(r,t,e,n){let o=Array.isArray(t)?t:[t],a=e instanceof P?e:Q(Array.isArray(e)?e:[e]);if(n===void 0){let u=Br(r),i=Br(a),s=u.data,c=i.data,l=Array.from(s);if(o.length===1){let f=o[0],m=f<0?u.size+f:f,p=Array.from(c);l.splice(m,0,...p)}else{let f=o.map((m,p)=>({idx:m<0?u.size+m:m,valIdx:p})).sort((m,p)=>m.idx-p.idx);for(let m=0;m<f.length;m++){let{idx:p,valIdx:y}=f[m],d=c[y%c.length];l.splice(p+m,0,d)}}return Q(l,r.dtype)}throw new Error("insert along axis not fully implemented in standalone")}function xc(r,t,e="constant",n=0){let o=[...r.shape],a=o.length,u;typeof t=="number"?u=Array(a).fill([t,t]):Array.isArray(t)&&typeof t[0]=="number"?u=Array(a).fill(t):u=t;let i=o.map((d,b)=>d+u[b][0]+u[b][1]);if(e!=="constant")throw new Error(`pad mode '${e}' not fully implemented in standalone`);let s=wr(i,r.dtype),c=s.storage;if(n!==0)for(let d=0;d<s.size;d++)c.iset(d,n);let l=r.storage,f=[],m=1;for(let d=o.length-1;d>=0;d--)f.unshift(m),m*=o[d];let p=[];m=1;for(let d=i.length-1;d>=0;d--)p.unshift(m),m*=i[d];let y=o.reduce((d,b)=>d*b,1);for(let d=0;d<y;d++){let b=[],A=d;for(let h=0;h<o.length;h++)b.push(Math.floor(A/f[h])),A=A%f[h];let g=0;for(let h=0;h<i.length;h++)g+=(b[h]+u[h][0])*p[h];c.iset(g,l.iget(d))}return s}var wc=["int8","int16","int32","int64"],Ic=["uint8","uint16","uint32","uint64"],sd=[...wc,...Ic],Cc=["float32","float64"],Sc=["complex64","complex128"],px=[...sd,...Cc,...Sc],ad={bool:0,int8:1,uint8:2,int16:3,uint16:4,int32:5,uint32:6,int64:7,uint64:8,float32:9,float64:10,complex64:11,complex128:12};function mo(r,t,e="safe"){let n=r instanceof P?r.dtype:r;if(e==="no"||e==="equiv")return n===t;if(e==="unsafe")return!0;let o=ad[n]??-1,a=ad[t]??-1;if(e==="safe"){if(Ur(n)&&Or(t)){let u={int8:8,int16:16,int32:32,int64:64,uint8:8,uint16:16,uint32:32,uint64:64,bool:1,float32:0,float64:0,complex64:0,complex128:0},i={float32:24,float64:53,int8:0,int16:0,int32:0,int64:0,uint8:0,uint16:0,uint32:0,uint64:0,bool:0,complex64:24,complex128:53},s=u[n]??64,c=i[t]??0;return s<=c}return!!(Ur(n)&&B(t)||Or(n)&&B(t)||o<=a)}return e==="same_kind"?!!(Ur(n)&&Ur(t)||Or(n)&&Or(t)||B(n)&&B(t)||n==="bool"&&Ur(t)||n==="bool"&&t==="bool"||Or(n)&&B(t)):!1}function ys(...r){if(r.length===0)return"float64";let t=!1,e=!1;for(let n of r){let o=n.dtype;B(o)?(t=!0,o==="complex128"&&(e=!0)):Or(o)?o==="float64"&&(e=!0):Ur(o)&&(o==="int64"||o==="uint64"||o==="int32"||o==="uint32")&&(e=!0)}return t?e?"complex128":"complex64":e?"float64":"float32"}function ds(...r){if(r.length===0)return"float64";let t=r.map(a=>a instanceof P?a.dtype:a),e=t.some(B),n=t.some(Or),o=t.some(Ur);if(e){let a=t.some(s=>s==="float64"),u=t.some(s=>s==="complex128"),i=t.some(s=>s==="int64"||s==="uint64"||s==="int32"||s==="uint32");return u||a||i?"complex128":"complex64"}if(n){let a=t.some(u=>u==="float64");return o&&(t.some(i=>i==="int32"||i==="uint32"||i==="int64"||i==="uint64")||a)||a?"float64":"float32"}if(o){let a=t.some(c=>wc.includes(c)),u=t.some(c=>Ic.includes(c)),i={bool:8,int8:8,uint8:8,int16:16,uint16:16,int32:32,uint32:32,int64:64,uint64:64,float32:0,float64:0,complex64:0,complex128:0},s=Math.max(...t.map(c=>i[c]??0));return a&&u?s>=32?"int64":s>=16?"int32":"int16":a?s>=64?"int64":s>=32?"int32":s>=16?"int16":"int8":s>=64?"uint64":s>=32?"uint32":s>=16?"uint16":"uint8"}return"bool"}function bs(r){return typeof r=="boolean"?"bool":typeof r=="bigint"?r>=0n?r<=255n?"uint8":r<=65535n?"uint16":r<=4294967295n?"uint32":"uint64":r>=-128n&&r<=127n?"int8":r>=-32768n&&r<=32767n?"int16":r>=-2147483648n&&r<=2147483647n?"int32":"int64":Number.isInteger(r)?r>=0?r<=255?"uint8":r<=65535?"uint16":r<=4294967295?"uint32":"int64":r>=-128&&r<=127?"int8":r>=-32768&&r<=32767?"int16":r>=-2147483648&&r<=2147483647?"int32":"int64":"float64"}function As(r,t){let e=r instanceof P?r.dtype:r;if(typeof t=="string")switch(t){case"number":case"numeric":return px.includes(e);case"integer":case"int":return sd.includes(e);case"signedinteger":return wc.includes(e);case"unsignedinteger":return Ic.includes(e);case"floating":case"float":return Cc.includes(e);case"complexfloating":case"complex":return Sc.includes(e);case"inexact":return Cc.includes(e)||Sc.includes(e);default:return e===t}return e===t}function gs(r){return r}function hs(r,t="GDFgdf",e="d"){let n={b:"int8",B:"uint8",h:"int16",H:"uint16",i:"int32",I:"uint32",l:"int64",L:"uint64",f:"float32",d:"float64",F:"complex64",D:"complex128",g:"float64",G:"complex128"},o={b:0,B:1,h:2,H:3,i:4,I:5,l:6,L:7,f:8,g:9.1,d:9,F:10,G:11.1,D:11};if(r.length===0)return e;let a=[];for(let s of r){let c=n[s];c&&a.push(c)}if(a.length===0)return e;let u=e,i=1/0;for(let s of t){let c=n[s];if(!c)continue;let l=o[s]??1/0,f=!0;for(let m of a)if(!mo(m,c,"safe")){f=!1;break}f&&l<i&&(i=l,u=s)}return u}function Sr(r){return r instanceof P?r:Q(r)}function zc(r){let t=Sr(r),e=t.data,n=t.size;if(n===0)return Q([1]);let o=[1];for(let a=0;a<n;a++){let u=e[a],i=new Array(o.length+1).fill(0);for(let s=0;s<o.length;s++)i[s]+=o[s],i[s+1]-=o[s]*u;o=i}return Q(o)}function _c(r,t){let e=Sr(r),n=Sr(t),o=e.data,a=n.data,u=Math.max(e.size,n.size),i=new Array(u).fill(0);for(let c=0;c<e.size;c++)i[u-e.size+c]+=o[c];for(let c=0;c<n.size;c++)i[u-n.size+c]+=a[c];let s=0;for(;s<i.length-1&&i[s]===0;)s++;return Q(i.slice(s))}function Mc(r,t=1){let e=Sr(r);for(let n=0;n<t;n++){let o=e.data,a=e.size;if(a<=1)return Q([0]);let u=[];for(let i=0;i<a-1;i++){let s=a-1-i;u.push(o[i]*s)}e=Q(u)}return e}function vc(r,t){let e=[...Sr(r).data],n=[...Sr(t).data];if(n.length===0||n.length===1&&n[0]===0)throw new Error("Division by zero polynomial");for(;e.length>1&&e[0]===0;)e.shift();for(;n.length>1&&n[0]===0;)n.shift();if(e.length<n.length)return[Q([0]),Q(e)];let o=[],a=[...e];for(;a.length>=n.length;){let u=a[0]/n[0];o.push(u);for(let i=0;i<n.length;i++)a[i]-=u*n[i];a.shift()}for(;a.length>1&&Math.abs(a[0])<1e-15;)a.shift();return[Q(o.length>0?o:[0]),Q(a.length>0?a:[0])]}function Fc(r,t,e){let n=r.data,o=t.data,a=r.size;if(e>=a)throw new Error("polyfit: degree must be less than number of points");let u=[];for(let m=0;m<a;m++){let p=[];for(let y=e;y>=0;y--)p.push(Math.pow(n[m],y));u.push(p)}let i=[],s=[];for(let m=0;m<=e;m++){i.push([]);for(let y=0;y<=e;y++){let d=0;for(let b=0;b<a;b++)d+=u[b][m]*u[b][y];i[m].push(d)}let p=0;for(let y=0;y<a;y++)p+=u[y][m]*o[y];s.push(p)}let c=e+1,l=i.map((m,p)=>[...m,s[p]]);for(let m=0;m<c;m++){let p=m;for(let y=m+1;y<c;y++)Math.abs(l[y][m])>Math.abs(l[p][m])&&(p=y);[l[m],l[p]]=[l[p],l[m]];for(let y=m+1;y<c;y++){let d=l[y][m]/l[m][m];for(let b=m;b<=c;b++)l[y][b]-=d*l[m][b]}}let f=new Array(c).fill(0);for(let m=c-1;m>=0;m--){let p=l[m][c];for(let y=m+1;y<c;y++)p-=l[m][y]*f[y];f[m]=p/l[m][m]}return Q(f)}function Bc(r,t=1,e=0){let n=Sr(r),o=Array.isArray(e)?e:[e];for(let a=0;a<t;a++){let u=n.data,i=n.size,s=[];for(let l=0;l<i;l++){let f=i-l;s.push(u[l]/f)}let c=a<o.length?o[a]:0;s.push(c),n=Q(s)}return n}function Tc(r,t){let e=Sr(r),n=Sr(t),o=e.data,a=n.data,u=e.size+n.size-1,i=new Array(u).fill(0);for(let s=0;s<e.size;s++)for(let c=0;c<n.size;c++)i[s+c]+=o[s]*a[c];return Q(i)}function Ec(r,t){let e=Sr(r),n=Sr(t),o=e.data,a=n.data,u=Math.max(e.size,n.size),i=new Array(u).fill(0);for(let c=0;c<e.size;c++)i[u-e.size+c]+=o[c];for(let c=0;c<n.size;c++)i[u-n.size+c]-=a[c];let s=0;for(;s<i.length-1&&i[s]===0;)s++;return Q(i.slice(s))}function Oc(r,t){let e=Sr(r),n=e.data;if(typeof t=="number"){let i=n[0];for(let s=1;s<e.size;s++)i=i*t+n[s];return i}let o=t instanceof P?t:Q(t),a=o.data,u=[];for(let i=0;i<o.size;i++){let s=a[i],c=n[0];for(let l=1;l<e.size;l++)c=c*s+n[l];u.push(c)}return Q(u)}function Uc(r){let e=[...Sr(r).data];for(;e.length>1&&e[0]===0;)e.shift();let n=0;for(;e.length>1&&e[e.length-1]===0;)e.pop(),n++;let o=e.length-1;if(o+n===0)return id([],[]);let u=[],i=[];if(o===1)u.push(-e[1]/e[0]),i.push(0);else if(o===2){let f=e[0],m=e[1],p=e[2],y=m*m-4*f*p;if(y>=0){let d=Math.sqrt(y);u.push((-m+d)/(2*f),(-m-d)/(2*f)),i.push(0,0)}else{let d=Math.sqrt(-y);u.push(-m/(2*f),-m/(2*f)),i.push(d/(2*f),-d/(2*f))}}else if(o>=3){let f=yx(e,o);for(let m of f)u.push(m.re),i.push(m.im)}for(let f=0;f<n;f++)u.push(0),i.push(0);let s=u.map((f,m)=>m);s.sort((f,m)=>{let p=Math.sqrt(u[f]**2+i[f]**2),y=Math.sqrt(u[m]**2+i[m]**2);return Math.abs(p-y)>1e-10?y-p:Math.abs(u[f]-u[m])>1e-10?u[m]-u[f]:i[m]-i[f]});let c=s.map(f=>u[f]),l=s.map(f=>i[f]);return id(c,l)}function id(r,t){let e=r.length,n=new Float64Array(2*e);for(let a=0;a<e;a++)n[2*a]=r[a],n[2*a+1]=t[a];let o=S.fromData(n,[e],"complex128");return new P(o)}function yx(r,t){let e=Array.from({length:t},()=>new Array(t).fill(0)),n=r[0];for(let o=0;o<t;o++)e[0][o]=-r[o+1]/n;for(let o=1;o<t;o++)e[o][o-1]=1;return dx(e,t)}function dx(r,t){let e=[],o=t,a=0,u=100*t,i=t,s=0;for(;o>0&&a<u;){if(a++,o===i?s++:(s=0,i=o),o===1){e.push({re:r[0][0],im:0}),o=0;break}if(o===2){e.push(...ud(r[0][0],r[0][1],r[1][0],r[1][1])),o=0;break}let c=o-1;for(;c>0;){let y=Math.abs(r[c-1][c-1])+Math.abs(r[c][c]),d=222e-18*(y===0?1:y);if(Math.abs(r[c][c-1])<=d){r[c][c-1]=0;break}c--}let l=o-c;if(l===1){e.push({re:r[o-1][o-1],im:0}),o--;continue}if(l===2){e.push(...ud(r[o-2][o-2],r[o-2][o-1],r[o-1][o-2],r[o-1][o-1])),o-=2;continue}let f;if(s>0&&s%10===0)f=Math.abs(r[o-1][o-2])+Math.abs(r[o-2][o-3]);else{let y=r[o-2][o-2],d=r[o-2][o-1],b=r[o-1][o-2],A=r[o-1][o-1],g=y+A,h=y*A-d*b,N=g*g-4*h;if(N>=0){let D=Math.sqrt(N),x=(g+D)/2,C=(g-D)/2;f=Math.abs(x-A)<Math.abs(C-A)?x:C}else f=A}for(let y=c;y<o;y++)r[y][y]=r[y][y]-f;let m=[],p=[];for(let y=c;y<o-1;y++){let d=Math.hypot(r[y][y],r[y+1][y]),b=d===0?1:r[y][y]/d,A=d===0?0:r[y+1][y]/d;m.push(b),p.push(A);for(let g=y;g<o;g++){let h=r[y][g],N=r[y+1][g];r[y][g]=b*h+A*N,r[y+1][g]=-A*h+b*N}}for(let y=0;y<m.length;y++){let d=c+y,b=m[y],A=p[y],g=Math.min(d+2,o-1);for(let h=c;h<=g;h++){let N=r[h][d],D=r[h][d+1];r[h][d]=b*N+A*D,r[h][d+1]=-A*N+b*D}}for(let y=c;y<o;y++)r[y][y]=r[y][y]+f}if(o>0)for(let c=0;c<o;c++)e.push({re:r[c][c],im:0});return e}function ud(r,t,e,n){let o=r+n,a=r*n-t*e,u=o*o-4*a;if(u>=0){let i=Math.sqrt(u);return[{re:(o+i)/2,im:0},{re:(o-i)/2,im:0}]}else{let i=Math.sqrt(-u);return[{re:o/2,im:i/2},{re:o/2,im:-i/2}]}}var po=new Uint8Array([147,78,85,77,80,89]),$c=["float64","float32","complex128","complex64","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"];function kc(){let r=new ArrayBuffer(2);return new DataView(r).setInt16(0,256,!0),new Int16Array(r)[0]===256}var bx={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"},Ns={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"},cd={S:"byte strings",U:"Unicode strings",O:"Python objects",V:"structured arrays (void)",M:"datetime64",m:"timedelta64"};function ld(r){if(r.startsWith("[")||r.startsWith("("))throw new jr(`Structured/compound dtypes are not supported: ${r}`);let t="",e=r;(r[0]==="<"||r[0]===">"||r[0]==="="||r[0]==="|")&&(t=r[0],e=r.slice(1));let n=e[0];if(n&&n in cd)throw new jr(`Unsupported dtype: ${cd[n]} (${r}). Use the 'force' parameter to skip arrays with unsupported dtypes.`);let o=bx[e];if(!o)throw new jr(`Unknown or unsupported dtype descriptor: ${r}. Supported types: ${$c.join(", ")}. Use the 'force' parameter to skip arrays with unsupported dtypes.`);let a=kc(),u=t==="<"||t==="|"||t==="="&&a,i=t===">"||t==="="&&!a,s=parseInt(e.slice(1),10),c=s>1&&(i&&a||u&&!a);return{dtype:o,needsByteSwap:c,itemsize:s}}var jr=class extends Error{constructor(t){super(t),this.name="UnsupportedDTypeError"}},hr=class extends Error{constructor(t){super(t),this.name="InvalidNpyError"}};function Ds(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=Rc(t);return qc(t,e)}function Rc(r){if(r.length<10)throw new hr("File too small to be a valid NPY file");for(let c=0;c<po.length;c++)if(r[c]!==po[c])throw new hr("Invalid NPY magic number");let t=r[6],e=r[7];if(t!==1&&t!==2&&t!==3)throw new hr(`Unsupported NPY version: ${t}.${e}`);let n,o;t===1?(n=r[8]|r[9]<<8,o=10):(n=r[8]|r[9]<<8|r[10]<<16|r[11]<<24,o=12);let a=o+n;if(r.length<a)throw new hr("File truncated: header extends beyond file");let u=r.slice(o,a),i=new TextDecoder("utf-8").decode(u).trim(),s=Ax(i);return{version:{major:t,minor:e},header:s,dataOffset:a}}function qc(r,t){let{header:e,dataOffset:n}=t,{dtype:o,needsByteSwap:a,itemsize:u}=ld(e.descr),i=e.shape.reduce((d,b)=>d*b,1),s=i*u,c=r.length-n;if(c<s)throw new hr(`File truncated: expected ${s} bytes of data, got ${c}`);let l=new ArrayBuffer(s);new Uint8Array(l).set(r.subarray(n,n+s));let m=gx(l,o,i,a,u),p=e.shape,y;if(e.fortran_order&&p.length>1){let d=[...p].reverse(),b=S.fromData(m,d,o);y=hx(b,d),p=e.shape}else y=S.fromData(m,[...p],o);return new P(y)}function Ax(r){let t=r.match(/'descr'\s*:\s*'([^']+)'/),e=r.match(/'fortran_order'\s*:\s*(True|False)/),n=r.match(/'shape'\s*:\s*\(([^)]*)\)/);if(!t||!e||!n)throw new hr(`Failed to parse NPY header: ${r}`);let o=t[1],a=e[1]==="True",u=n[1].trim(),i;return u===""?i=[]:i=u.split(",").map(s=>s.trim()).filter(s=>s!=="").map(s=>{let c=parseInt(s,10);if(isNaN(c))throw new hr(`Invalid shape value: ${s}`);return c}),{descr:o,fortran_order:a,shape:i}}function gx(r,t,e,n,o){let a=K(t);if(!a)throw new hr(`Cannot create array for dtype: ${t}`);let u=B(t),i=u?e*2:e;if(!n)return new a(r,0,i);let s=new Uint8Array(r),c=new Uint8Array(r.byteLength);if(u){let l=o/2;for(let f=0;f<e*2;f++){let m=f*l;for(let p=0;p<l;p++)c[m+p]=s[m+l-1-p]}}else for(let l=0;l<e;l++){let f=l*o;for(let m=0;m<o;m++)c[f+m]=s[f+o-1-m]}return new a(c.buffer,0,i)}function hx(r,t){let e=t.length,n=r.size,o=r.dtype,a=K(o);if(!a)throw new hr(`Cannot create array for dtype: ${o}`);let u=new a(n),i=[...t].reverse(),s=fd(t),c=fd(i),l=new Array(e).fill(0);for(let f=0;f<n;f++){let m=f;for(let y=0;y<e;y++){let d=s[y];l[y]=Math.floor(m/d),m=m%d}let p=0;for(let y=0;y<e;y++)p+=l[e-1-y]*c[y];E(o),u[p]=r.iget(f)}return S.fromData(u,i,o)}function fd(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 yo(r){let t=r.shape,e=r.dtype,n=Ns[e],o=t.length===0?"()":t.length===1?`(${t[0]},)`:`(${t.join(", ")})`,a=`{'descr': '${n}', 'fortran_order': False, 'shape': ${o}, }`,u=12,s=(64-(u+a.length+1)%64)%64;a=a+" ".repeat(s)+`
|
|
6
|
-
`;let c=new TextEncoder().encode(a),l=c.length,f=r.size,m=Wr(e),p=f*m,y=u+l+p,d=new Uint8Array(y);d.set(po,0),d[6]=3,d[7]=0,d[8]=l&255,d[9]=l>>8&255,d[10]=l>>16&255,d[11]=l>>24&255,d.set(c,u);let b=u+l;return Nx(r,d.subarray(b),m),d}function Nx(r,t,e){let n=r.dtype,o=r.size,a=kc(),u=E(n),i=B(n),s=r.storage;if(s.isCContiguous&&s.offset===0&&a){let l=s.data,f=new Uint8Array(l.buffer,l.byteOffset,o*e);t.set(f)}else{let l=new DataView(t.buffer,t.byteOffset,t.byteLength);for(let f=0;f<o;f++){let m=s.iget(f),p=f*e;u?Dx(l,p,m,n==="uint64"):i?xx(l,p,m,n):Cx(l,p,m,n)}}}function Dx(r,t,e,n){n?r.setBigUint64(t,e,!0):r.setBigInt64(t,e,!0)}function xx(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 Cx(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 Sx=(()=>{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 Vc(r){let t=4294967295;for(let e=0;e<r.length;e++)t=Sx[(t^r[e])&255]^t>>>8;return(t^4294967295)>>>0}async function yd(r){let t=bd(r),e=new Map;for(let n of t){let o=await wx(n);e.set(n.name,o)}return e}function dd(r){let t=bd(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 bd(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=new DataView(t.buffer,t.byteOffset,t.byteLength),n=[],o=-1;for(let c=t.length-22;c>=0;c--)if(e.getUint32(c,!0)===101010256){o=c;break}if(o===-1)throw new Error("Invalid ZIP file: end of central directory not found");let a=e.getUint32(o+16,!0),u=e.getUint16(o+10,!0),i=[],s=a;for(let c=0;c<u&&e.getUint32(s,!0)===33639248;c++){let f=e.getUint16(s+10,!0),m=e.getUint32(s+16,!0),p=e.getUint32(s+20,!0),y=e.getUint32(s+24,!0),d=e.getUint16(s+28,!0),b=e.getUint16(s+30,!0),A=e.getUint16(s+32,!0),g=e.getUint32(s+42,!0),h=t.slice(s+46,s+46+d),N=new TextDecoder("utf-8").decode(h);i.push({name:N,compressionMethod:f,crc32:m,compressedSize:p,uncompressedSize:y,localHeaderOffset:g}),s=s+46+d+b+A}for(let c of i){let l=c.localHeaderOffset;if(e.getUint32(l,!0)!==67324752)throw new Error(`Invalid local file header at offset ${l}`);let m=e.getUint16(l+26,!0),p=e.getUint16(l+28,!0),y=l+30+m+p,d=t.slice(y,y+c.compressedSize);n.push({name:c.name,compressedData:d,compressionMethod:c.compressionMethod,crc32:c.crc32,compressedSize:c.compressedSize,uncompressedSize:c.uncompressedSize})}return n}async function wx(r){if(r.compressionMethod===0)return r.compressedData;if(r.compressionMethod===8)return await Ix(r.compressedData);throw new Error(`Unsupported compression method: ${r.compressionMethod}`)}async function Ix(r){if(typeof DecompressionStream>"u")throw new Error("DecompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let t=new DecompressionStream("deflate-raw"),e=new Uint8Array(r.length);e.set(r);let n=t.writable.getWriter();n.write(e),n.close();let o=t.readable.getReader(),a=[];for(;;){let{done:c,value:l}=await o.read();if(c)break;a.push(l)}let u=a.reduce((c,l)=>c+l.length,0),i=new Uint8Array(u),s=0;for(let c of a)i.set(c,s),s+=c.length;return i}async function Pc(r,t={}){let e=t.force??!1,n=await yd(r);return Ad(n,e)}function jc(r,t={}){let e=t.force??!1,n=dd(r);return Ad(n,e)}function Ad(r,t){let e=new Map,n=[],o=new Map;for(let[a,u]of r){if(!a.endsWith(".npy"))continue;let i=a.slice(0,-4);try{let s=Ds(u);e.set(i,s)}catch(s){if(s instanceof jr&&t)n.push(i),o.set(i,s.message);else throw s}}return{arrays:e,skipped:n,errors:o}}async function gd(r,t={}){let e=await Pc(r,t);return Object.fromEntries(e.arrays)}function hd(r,t={}){let e=jc(r,t);return Object.fromEntries(e.arrays)}async function Nd(r,t={}){let e=t.compress??!1,n=[];for(let[m,p]of r){let y=Vc(p),d,b;e?(d=await _x(p),d.length<p.length?b=8:(d=p,b=0)):(d=p,b=0),n.push({name:m,data:p,compressedData:d,crc:y,compressionMethod:b,offset:0})}let o=0;for(let m of n){let p=new TextEncoder().encode(m.name);o+=30+p.length+m.compressedData.length}let a=0;for(let m of n){let p=new TextEncoder().encode(m.name);a+=46+p.length}let i=o+a+22,s=new Uint8Array(i),c=new DataView(s.buffer),l=0;for(let m of n)m.offset=l,l=xd(s,c,l,m);let f=l;for(let m of n)l=Cd(s,c,l,m);return Sd(c,l,n.length,a,f),s}function Dd(r){let t=[];for(let[l,f]of r){let m=Vc(f);t.push({name:l,data:f,compressedData:f,crc:m,compressionMethod:0,offset:0})}let e=0;for(let l of t){let f=new TextEncoder().encode(l.name);e+=30+f.length+l.compressedData.length}let n=0;for(let l of t){let f=new TextEncoder().encode(l.name);n+=46+f.length}let a=e+n+22,u=new Uint8Array(a),i=new DataView(u.buffer),s=0;for(let l of t)l.offset=s,s=xd(u,i,s,l);let c=s;for(let l of t)s=Cd(u,i,s,l);return Sd(i,s,t.length,n,c),u}function xd(r,t,e,n){let o=new TextEncoder().encode(n.name);return t.setUint32(e,67324752,!0),e+=4,t.setUint16(e,n.compressionMethod===8?20:10,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,n.compressionMethod,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,33,!0),e+=2,t.setUint32(e,n.crc,!0),e+=4,t.setUint32(e,n.compressedData.length,!0),e+=4,t.setUint32(e,n.data.length,!0),e+=4,t.setUint16(e,o.length,!0),e+=2,t.setUint16(e,0,!0),e+=2,r.set(o,e),e+=o.length,r.set(n.compressedData,e),e+=n.compressedData.length,e}function Cd(r,t,e,n){let o=new TextEncoder().encode(n.name);return t.setUint32(e,33639248,!0),e+=4,t.setUint16(e,20,!0),e+=2,t.setUint16(e,n.compressionMethod===8?20:10,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,n.compressionMethod,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,33,!0),e+=2,t.setUint32(e,n.crc,!0),e+=4,t.setUint32(e,n.compressedData.length,!0),e+=4,t.setUint32(e,n.data.length,!0),e+=4,t.setUint16(e,o.length,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint32(e,0,!0),e+=4,t.setUint32(e,n.offset,!0),e+=4,r.set(o,e),e+=o.length,e}function Sd(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 _x(r){if(typeof CompressionStream>"u")throw new Error("CompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let t=new CompressionStream("deflate-raw"),e=new Uint8Array(r.length);e.set(r);let n=t.writable.getWriter();n.write(e),n.close();let o=t.readable.getReader(),a=[];for(;;){let{done:c,value:l}=await o.read();if(c)break;a.push(l)}let u=a.reduce((c,l)=>c+l.length,0),i=new Uint8Array(u),s=0;for(let c of a)i.set(c,s),s+=c.length;return i}async function wd(r,t={}){let e=zd(r);return Nd(e,{compress:t.compress??!1})}function Id(r){let t=zd(r);return Dd(t)}function zd(r){let t=new Map;if(Array.isArray(r)){for(let n=0;n<r.length;n++){let o=r[n],a=yo(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=yo(o),u=n.endsWith(".npy")?n:`${n}.npy`;t.set(u,a)}return t}function Lc(r,t={}){let{delimiter:e,comments:n="#",skiprows:o=0,usecols:a,max_rows:u,dtype:i="float64",missing_values:s,filling_values:c}=t,l=r.split(/\r?\n/);if(o>0&&(l=l.slice(o)),l=l.filter(d=>{let b=d.trim();return!(b===""||n&&b.startsWith(n))}),u!==void 0&&u>0&&(l=l.slice(0,u)),l.length===0)return Q([],i);let f=[],m=new Set(s?Array.isArray(s)?s:[s]:[]),p=c!==void 0?c:i.includes("int")||i==="bool"?0:NaN;for(let d of l){let b;e===void 0?b=d.trim().split(/\s+/):b=d.split(e),a!==void 0&&(b=(Array.isArray(a)?a:[a]).map(h=>(h<0&&(h=b.length+h),b[h]??"")));let A=b.map(g=>{let h=g.trim();if(m.has(h)||h==="")return p;let N=parseFloat(h);return isNaN(N)?p:N});f.push(A)}let y=f[0]?.length??0;for(let d=1;d<f.length;d++)if(f[d].length!==y)throw new Error(`Inconsistent number of columns: row 0 has ${y} columns, row ${d} has ${f[d].length} columns`);return y===1?Q(f.map(d=>d[0]),i):Q(f,i)}function _d(r,t={}){let e={...t,missing_values:t.missing_values??["","nan","NaN","NA","N/A","-"],filling_values:t.filling_values??NaN};return Lc(r,e)}function Md(r,t,e="float64"){let n=typeof t=="string"?new RegExp(t,"gm"):new RegExp(t.source,"gm"),o=[],a;for(;(a=n.exec(r))!==null;)if(a.length>1){let u=a.slice(1).map(i=>{let s=parseFloat(i);return isNaN(s)?0:s});o.push(u)}return o.length===0?Q([],e):o[0].length===1?Q(o.map(u=>u[0]),e):Q(o,e)}function vd(r,t){let e=typeof r=="bigint"?Number(r):r,n=t.match(/^%([+-]?)(\d*)(?:\.(\d+))?([dfeEgGs])$/);if(!n)return String(e);let[,o,a,u,i]=n,s=u!==void 0?parseInt(u,10):void 0,c;switch(i){case"d":c=Math.round(e).toString();break;case"f":c=e.toFixed(s??6);break;case"e":c=e.toExponential(s??6).replace(/e([+-])(\d)$/,"e$10$2");break;case"E":c=e.toExponential(s??6).toUpperCase().replace(/E([+-])(\d)$/,"E$10$2");break;case"g":case"G":{let l=s??6,f=Math.floor(Math.log10(Math.abs(e)));f>=-4&&f<l?(c=e.toPrecision(l),c.includes(".")&&(c=c.replace(/\.?0+$/,""))):c=e.toExponential(l-1),i==="G"&&(c=c.toUpperCase());break}case"s":c=String(e);break;default:c=String(e)}if(a){let l=parseInt(a,10);if(c.length<l){let f=" ".repeat(l-c.length);o==="-"?c=c+f:c=f+c}}return o==="+"&&e>=0&&!c.startsWith("-")&&(c="+"+c),c}function Fd(r,t={}){let{fmt:e="%.18e",delimiter:n=" ",newline:o=`
|
|
7
|
-
`,header:a,footer:u,comments:i="# "}=t;if(r.ndim>2)throw new Error("savetxt: array must be 1D or 2D");let s=[];if(a!==void 0){let l=a.split(/\r?\n/);for(let f of l)f.startsWith(i.trimEnd())?s.push(f):s.push(i+f)}let c=r.toArray();if(r.ndim===1)for(let l of c)s.push(vd(l,e));else for(let l of c){let f=l.map(m=>vd(m,e));s.push(f.join(n))}if(u!==void 0){let l=u.split(/\r?\n/);for(let f of l)f.startsWith(i.trimEnd())?s.push(f):s.push(i+f)}return s.join(o)+o}var q=r=>{if(r instanceof er)return r;let t=r.base?q(r.base):void 0;return er.fromStorage(r.storage,t)},er=class r extends P{constructor(t,e){super(t,e),this._base=e}static fromStorage(t,e){return new r(t,e)}get base(){return this._base??null}get T(){return this.transpose()}get itemsize(){return Wr(this._storage.dtype)}get nbytes(){return this.size*this.itemsize}fill(t){let e=this._storage.dtype,n=this.size;if(E(e)){let o=typeof t=="bigint"?t:BigInt(Math.round(Number(t)));for(let a=0;a<n;a++)this._storage.iset(a,o)}else if(e==="bool"){let o=t?1:0;for(let a=0;a<n;a++)this._storage.iset(a,o)}else{let o=Number(t);for(let a=0;a<n;a++)this._storage.iset(a,o)}}*[Symbol.iterator](){if(this.ndim===0)yield this._storage.iget(0);else if(this.ndim===1)for(let t=0;t<this.shape[0];t++)yield this._storage.iget(t);else for(let t=0;t<this.shape[0];t++)yield this.slice(String(t))}get(t){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let e=t.map((n,o)=>{let a=n;if(a<0&&(a=this.shape[o]+a),a<0||a>=this.shape[o])throw new Error(`Index ${n} is out of bounds for axis ${o} with size ${this.shape[o]}`);return a});return this._storage.get(...e)}set(t,e){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let n=t.map((a,u)=>{let i=a;if(i<0&&(i=this.shape[u]+i),i<0||i>=this.shape[u])throw new Error(`Index ${a} is out of bounds for axis ${u} with size ${this.shape[u]}`);return i}),o=this.dtype;if(B(o))this._storage.set(n,e);else if(E(o)){let a=e instanceof U?e.re:Number(e),u=typeof e=="bigint"?e:BigInt(Math.round(a));this._storage.set(n,u)}else if(o==="bool"){let u=(e instanceof U?e.re:Number(e))?1:0;this._storage.set(n,u)}else{let a=e instanceof U?e.re:Number(e);this._storage.set(n,a)}}copy(){return new r(this._storage.copy())}astype(t,e=!0){let n=this.dtype;if(n===t&&!e)return this;if(n===t&&e)return this.copy();let o=Array.from(this.shape),a=this.size,u=K(t);if(!u)throw new Error(`Cannot convert to dtype ${t}`);let i=new u(a),s=this.data;if(E(n)&&!E(t)){let l=s;if(t==="bool")for(let f=0;f<a;f++)i[f]=l[f]!==BigInt(0)?1:0;else for(let f=0;f<a;f++)i[f]=Number(l[f])}else if(!E(n)&&E(t)){let l=s;for(let f=0;f<a;f++)i[f]=BigInt(Math.round(Number(l[f])))}else if(t==="bool"){let l=s;for(let f=0;f<a;f++)i[f]=l[f]!==0?1:0}else if(n==="bool"&&!E(t)){let l=s;for(let f=0;f<a;f++)i[f]=l[f]}else if(!E(n)&&!E(t)){let l=s;for(let f=0;f<a;f++)i[f]=l[f]}else{let l=s;for(let f=0;f<a;f++)i[f]=l[f]}let c=S.fromData(i,o,t);return new r(c)}slice(...t){if(t.length===0)return this;if(t.length>this.ndim)throw new Error(`Too many indices for array: array is ${this.ndim}-dimensional, but ${t.length} were indexed`);let e=t.map((s,c)=>{let l=wo(s);return Io(l,this.shape[c])});for(;e.length<this.ndim;)e.push({start:0,stop:this.shape[e.length],step:1,isIndex:!1});let n=[],o=[],a=this._storage.offset;for(let s=0;s<e.length;s++){let c=e[s],l=this._storage.strides[s];if(a+=c.start*l,!c.isIndex){let f;c.step>0?f=Math.max(0,Math.ceil((c.stop-c.start)/c.step)):f=Math.max(0,Math.ceil((c.start-c.stop)/Math.abs(c.step))),n.push(f),o.push(l*c.step)}}let u=S.fromData(this._storage.data,n,this._storage.dtype,o,a),i=this._base??this;return new r(u,i)}row(t){if(this.ndim<2)throw new Error("row() requires at least 2 dimensions");return this.slice(String(t),":")}col(t){if(this.ndim<2)throw new Error("col() requires at least 2 dimensions");return this.slice(":",String(t))}rows(t,e){if(this.ndim<2)throw new Error("rows() requires at least 2 dimensions");return this.slice(`${t}:${e}`,":")}cols(t,e){if(this.ndim<2)throw new Error("cols() requires at least 2 dimensions");return this.slice(":",`${t}:${e}`)}reshape(...t){let e=t.length===1&&Array.isArray(t[0])?t[0]:t,n=Me(this,e).storage,a=n.data===this.data?this._base??this:void 0;return r.fromStorage(n,a)}ravel(){let t=ve(this).storage,n=t.data===this.data?this._base??this:void 0;return r.fromStorage(t,n)}put(t,e){let n=e instanceof r?e._storage:e;_t(this,t,n)}compress(t,e){let n=t instanceof r?t:r.fromStorage(S.fromData(new Uint8Array(t.map(o=>o?1:0)),[t.length],"bool"));return q(nt(n,this,e))}choose(t){return q(lo(this,t))}clip(t,e){return q(ue(this,t,e))}iindex(t,e=0){let n;if(t instanceof r){n=[];for(let o=0;o<t.size;o++){let a=t.storage.iget(o),u=typeof a=="bigint"?Number(a):a instanceof U?a.re:a;n.push(u)}}else Array.isArray(t)&&t.length>0&&Array.isArray(t[0])?n=t.flat():n=t;return this.take(n,e)}bindex(t,e){return q(nt(t,this,e))}toString(){return Mt(this)}toArray(){if(this.ndim===0)return this._storage.iget(0);let t=this.shape,e=t.length,n=(o,a)=>{if(a===e)return this._storage.get(...o);let u=[];for(let i=0;i<t[a];i++)o[a]=i,u.push(n(o,a+1));return u};return n(new Array(e),0)}tolist(){return this.toArray()}tobytes(){if(this._storage.isCContiguous){let n=this._storage.data,o=n.BYTES_PER_ELEMENT,a=this._storage.offset*o,u=this.size*o;return n.buffer.slice(a,a+u)}let e=this.copy()._storage.data;return e.buffer.slice(0,this.size*e.BYTES_PER_ELEMENT)}item(...t){if(t.length===0){if(this.size!==1)throw new Error("can only convert an array of size 1 to a Python scalar");return this._storage.iget(0)}if(t.length===1){let e=t[0];if(e<0||e>=this.size)throw new Error(`index ${e} is out of bounds for size ${this.size}`);return this._storage.iget(e)}return this.get(t)}byteswap(t=!1){let e=t?this:this.copy(),n=e._storage.data,o=n.BYTES_PER_ELEMENT;if(o===1)return e;let a=n.buffer,u=new DataView(a);for(let i=0;i<n.length;i++){let s=i*o;if(o===2){let c=u.getUint8(s),l=u.getUint8(s+1);u.setUint8(s,l),u.setUint8(s+1,c)}else if(o===4){let c=u.getUint8(s),l=u.getUint8(s+1),f=u.getUint8(s+2),m=u.getUint8(s+3);u.setUint8(s,m),u.setUint8(s+1,f),u.setUint8(s+2,l),u.setUint8(s+3,c)}else if(o===8){let c=u.getUint8(s),l=u.getUint8(s+1),f=u.getUint8(s+2),m=u.getUint8(s+3),p=u.getUint8(s+4),y=u.getUint8(s+5),d=u.getUint8(s+6),b=u.getUint8(s+7);u.setUint8(s,b),u.setUint8(s+1,d),u.setUint8(s+2,y),u.setUint8(s+3,p),u.setUint8(s+4,m),u.setUint8(s+5,f),u.setUint8(s+6,l),u.setUint8(s+7,c)}}return e}view(t){if(!t||t===this.dtype)return r.fromStorage(this._storage,this._base??this);let e=Wr(this.dtype),n=Wr(t);if(e!==n)throw new Error("When changing to a larger dtype, its size must be a divisor of the total size in bytes of the last axis of the array.");let o=K(t);if(!o)throw new Error(`Unsupported dtype: ${t}`);let a=this._storage.data,u=a.byteOffset+this._storage.offset*e,i=new o(a.buffer,u,this.size),s=S.fromData(i,[...this.shape],t,[...this._storage.strides],0);return r.fromStorage(s,this._base??this)}tofile(t,e="",n=""){throw new Error('tofile() requires file system access. Use the node module: import { save } from "numpy-ts/node"')}round(t=0){return this.around(t)}conjugate(){return this.conj()}around(t=0){return q(It(this,t))}allclose(t,e=1e-5,n=1e-8){return St(this,t,e,n)}isclose(t,e=1e-5,n=1e-8){return q(qn(this,t,e,n))}average(t,e){let n=tn(this,e,t);return n instanceof P?q(n):n}dot(t){let e=mt(this,t);return e instanceof P?q(e):e}trace(){return Hr(this)}inner(t){let e=dt(this,t);return e instanceof P?q(e):e}tensordot(t,e=2){let n=At(this,t,e);return n instanceof P?q(n):n}divmod(t){let e=oe(this,t);return[q(e[0]),q(e[1])]}searchsorted(t,e="left"){return q(wt(this,t,e))}sqrt(){return q(kt(this))}exp(){return q(qt(this))}exp2(){return q(Vt(this))}expm1(){return q(Pt(this))}log(){return q(jt(this))}log2(){return q(Lt(this))}log10(){return q(Wt(this))}log1p(){return q(Gt(this))}absolute(){return q(Xt(this))}negative(){return q(Jt(this))}sign(){return q(Kt(this))}positive(){return q(re(this))}reciprocal(){return q(te(this))}ceil(){return q(to(this))}fix(){return q(eo(this))}floor(){return q(no(this))}rint(){return q(oo(this))}trunc(){return q(ao(this))}sin(){return q(ce(this))}cos(){return q(le(this))}tan(){return q(fe(this))}arcsin(){return q(me(this))}arccos(){return q(pe(this))}arctan(){return q(ye(this))}degrees(){return q(Ae(this))}radians(){return q(ge(this))}sinh(){return q(he(this))}cosh(){return q(Ne(this))}tanh(){return q(De(this))}arcsinh(){return q(xe(this))}arccosh(){return q(Ce(this))}arctanh(){return q(Se(this))}bitwise_not(){return q(Kn(this))}invert(){return q(Qn(this))}logical_not(){return q(Sn(this))}isfinite(){return q(In(this))}isinf(){return q(zn(this))}isnan(){return q(_n(this))}isnat(){return q(Mn(this))}signbit(){return q(Fn(this))}spacing(){return q(Tn(this))}cbrt(){return q(ee(this))}fabs(){return q(ne(this))}square(){return q(ae(this))}conj(){return q(uo(this))}flatten(){return q(Br(this))}argwhere(){return q(Gn(this))}add(t){return q(Ot(this,t))}subtract(t){return q(Ut(this,t))}multiply(t){return q($t(this,t))}divide(t){return q(ut(this,t))}mod(t){return q(Qt(this,t))}floor_divide(t){return q(Ht(this,t))}power(t){return q(Rt(this,t))}logaddexp(t){return q(Yt(this,t))}logaddexp2(t){return q(Zt(this,t))}arctan2(t){return q(de(this,t))}hypot(t){return q(be(this,t))}greater(t){return q(En(this,t))}greater_equal(t){return q(On(this,t))}less(t){return q(Un(this,t))}less_equal(t){return q($n(this,t))}equal(t){return q(kn(this,t))}not_equal(t){return q(Rn(this,t))}bitwise_and(t){return q(Zn(this,t))}bitwise_or(t){return q(Xn(this,t))}bitwise_xor(t){return q(Jn(this,t))}left_shift(t){return q(Hn(this,t))}right_shift(t){return q(ro(this,t))}logical_and(t){return q(xn(this,t))}logical_or(t){return q(Cn(this,t))}logical_xor(t){return q(wn(this,t))}copysign(t){return q(vn(this,t))}nextafter(t){return q(Bn(this,t))}remainder(t){return q(se(this,t))}heaviside(t){return q(ie(this,t))}matmul(t){return q(_e(this,t))}outer(t){return q(bt(this,t))}sum(t,e=!1){let n=Ve(this,t,e);return n instanceof P?q(n):n}mean(t,e=!1){let n=Pe(this,t,e);return n instanceof P?q(n):n}prod(t,e=!1){let n=je(this,t,e);return n instanceof P?q(n):n}max(t,e=!1){let n=Le(this,t,e);return n instanceof P?q(n):n}min(t,e=!1){let n=Ge(this,t,e);return n instanceof P?q(n):n}ptp(t,e=!1){let n=Ze(this,t,e);return n instanceof P?q(n):n}nansum(t,e=!1){let n=sn(this,t,e);return n instanceof P?q(n):n}nanprod(t,e=!1){let n=un(this,t,e);return n instanceof P?q(n):n}nanmean(t,e=!1){let n=cn(this,t,e);return n instanceof P?q(n):n}nanmin(t,e=!1){let n=mn(this,t,e);return n instanceof P?q(n):n}nanmax(t,e=!1){let n=pn(this,t,e);return n instanceof P?q(n):n}argmin(t){let e=Xe(this,t);return e instanceof P?q(e):e}argmax(t){let e=Je(this,t);return e instanceof P?q(e):e}nanargmin(t){let e=yn(this,t);return e instanceof P?q(e):e}nanargmax(t){let e=dn(this,t);return e instanceof P?q(e):e}var(t,e=0,n=!1){let o=rt(this,t,e,n);return o instanceof P?q(o):o}std(t,e=0,n=!1){let o=Ke(this,t,e,n);return o instanceof P?q(o):o}nanvar(t,e=0,n=!1){let o=ln(this,t,e,n);return o instanceof P?q(o):o}nanstd(t,e=0,n=!1){let o=fn(this,t,e,n);return o instanceof P?q(o):o}all(t,e=!1){let n=en(this,t,e);return n instanceof P?q(n):n}any(t,e=!1){let n=nn(this,t,e);return n instanceof P?q(n):n}median(t,e=!1){let n=Qe(this,t,e);return n instanceof P?q(n):n}nanmedian(t,e=!1){let n=gn(this,t,e);return n instanceof P?q(n):n}percentile(t,e,n=!1){let o=He(this,t,e,n);return o instanceof P?q(o):o}quantile(t,e,n=!1){let o=rn(this,t,e,n);return o instanceof P?q(o):o}nanquantile(t,e,n=!1){let o=hn(this,t,e,n);return o instanceof P?q(o):o}nanpercentile(t,e,n=!1){let o=Nn(this,t,e,n);return o instanceof P?q(o):o}cumsum(t){return q(on(this,t))}cumprod(t){return q(an(this,t))}nancumsum(t){return q(bn(this,t))}nancumprod(t){return q(An(this,t))}sort(t=-1){return q(Vn(this,t))}argsort(t=-1){return q(Pn(this,t))}partition(t,e=-1){return q(jn(this,t,e))}argpartition(t,e=-1){return q(Ln(this,t,e))}diagonal(t=0,e=0,n=1){return q(pt(this,t,e,n))}resize(t){return q($e(this,t))}diff(t=1,e=-1){return q(io(this,t,e))}take(t,e){return q(zt(this,t,e))}repeat(t,e){return q(Oe(this,t,e))}transpose(t){return q(yt(this,t))}squeeze(t){return q(Fe(this,t))}expand_dims(t){return q(Be(this,t))}swapaxes(t,e){return q(Te(this,t,e))}moveaxis(t,e){return q(Ee(this,t,e))}nonzero(){return Wn(this).map(q)}};function Wc(...r){let t=[],e="xy";for(let i of r)i instanceof er?t.push(i):typeof i=="object"&&"indexing"in i&&(e=i.indexing||"xy");if(t.length===0)return[];if(t.length===1)return[t[0].copy()];let n=t.map(i=>i.size);e==="xy"&&t.length>=2&&(t=[t[1],t[0],...t.slice(2)],[n[0],n[1]]=[n[1],n[0]]);let o=n,a=o.length,u=[];for(let i=0;i<t.length;i++){let s=t[i],c=s.size,l=new Array(a).fill(1);l[i]=c;let f=s.reshape(...l),m=co(f,o),p=er.fromStorage(m.storage.copy());u.push(p)}return e==="xy"&&u.length>=2&&([u[0],u[1]]=[u[1],u[0]]),u}var F=r=>{if(r instanceof er)return r;let t=r.base?F(r.base):void 0;return er.fromStorage(r.storage,t)};function Bd(r,t){return F(co(r,t))}function Td(r,t,e){return F(zt(r,t,e))}function Ed(r,t,e){return F(oc(r,t,e))}function Od(r,t){return F(lo(r,t))}function Ud(r,t,e){return F(nt(r,t,e))}function $d(r,t,e=0){return F(ac(r,t,e))}function kd(r,t,e){return F(sc(r,t,e))}function Rd(r,t,e=0){return F(ic(r,t,e))}function qd(r,t="int32"){return F(uc(r,t))}function Vd(r,t,e="raise"){return F(cc(r,t,e))}function Pd(r,t){return lc(r,t).map(F)}function jd(r,t=2){return fc(r,t).map(F)}function Ld(r){return mc(r).map(F)}function Wd(r,t=0,e){return pc(r,t,e).map(F)}function Gd(r,t=0){return yc(r,t).map(F)}function Yd(r,t=0,e){return dc(r,t,e).map(F)}function Zd(r,t=0){return bc(r,t).map(F)}function Xd(r,t,e=0){return Ac(r,t,e).map(F)}function Jd(r,t,e){return F(gc(o=>r(F(o)),t,e))}function Kd(r,t,e){return F(hc((o,a)=>r(F(o),a),t,e))}function Qd(r,t){return F(Ot(r,t))}function Hd(r,t){return F(Ut(r,t))}function rb(r,t){return F($t(r,t))}function tb(r){return F(kt(r))}function Gc(r,t){return F(Rt(r,t))}function eb(r){return F(qt(r))}function nb(r){return F(Vt(r))}function ob(r){return F(Pt(r))}function ab(r){return F(jt(r))}function sb(r){return F(Lt(r))}function ib(r){return F(Wt(r))}function ub(r){return F(Gt(r))}function cb(r,t){return F(Yt(r,t))}function lb(r,t){return F(Zt(r,t))}function Yc(r){return F(Xt(r))}function fb(r){return F(Jt(r))}function mb(r){return F(Kt(r))}function pb(r,t){return F(Qt(r,t))}function yb(r,t){return F(ut(r,t))}function db(r,t){return F(Ht(r,t))}function bb(r){return F(re(r))}function Ab(r){return F(te(r))}function gb(r){return F(ee(r))}function hb(r){return F(ne(r))}function Nb(r,t){let e=oe(r,t);return[F(e[0]),F(e[1])]}function Db(r){return F(ae(r))}function xb(r,t){return F(se(r,t))}function Cb(r,t){return F(ie(r,t))}function Sb(r,t){return F(ai(r,t))}function wb(r,t){return F(si(r,t))}function Ib(r){let t=ii(r);return[F(t[0]),F(t[1])]}function zb(r,t){return F(ui(r,t))}function _b(r,t){return F(ci(r,t))}function Mb(r,t){return F(li(r,t))}function vb(r){let t=fi(r);return[F(t[0]),F(t[1])]}function Fb(r,t,e){return F(ue(r,t,e))}function Bb(r,t){return F(mi(r,t))}function Tb(r,t){return F(pi(r,t))}function Eb(r,t){return F(yi(r,t))}function Ob(r,t){return F(di(r,t))}function Ub(r,t=0,e,n){return F(bi(r,t,e,n))}function $b(r,t,e,n,o){return F(Ai(r,t,e,n,o))}function kb(r,t=Math.PI,e=-1,n=2*Math.PI){return F(gi(r,t,e,n))}function Rb(r){return F(hi(r))}function qb(r){return F(Ni(r))}function Vb(r,t){return F(Zn(r,t))}function Pb(r,t){return F(Xn(r,t))}function jb(r,t){return F(Jn(r,t))}function Zc(r){return F(Kn(r))}function Lb(r){return F(Qn(r))}function Xc(r,t){return F(Hn(r,t))}function Jc(r,t){return F(ro(r,t))}function Wb(r,t,e){return F(wu(r,t,e))}function Gb(r,t,e,n){return F(Iu(r,t,e,n))}function Yb(r){return F(zu(r))}function Zb(r){return F(Xu(r))}function Xb(r){return F(Ju(r))}function Kc(r){return F(uo(r))}function Jb(r,t){return F(Ku(r,t))}function Kb(r,t=tr){return F(wr(r,t))}function Qb(r,t=tr){return F(Bo(r,t))}function Hb(r,t=tr){return F(To(r,t))}function rA(r,t,e){return F(Eo(r,t,e))}function tA(r,t){return F(Q(r,t))}function eA(r,t,e=1,n=tr){return F(Bs(r,t,e,n))}function nA(r,t,e=50,n=tr){return F(Ts(r,t,e,n))}function oA(r,t,e=50,n=10,o=tr){return F(Es(r,t,e,n,o))}function aA(r,t,e=50,n=tr){return F(Os(r,t,e,n))}function sA(r,t,e=0,n=tr){return F(Oo(r,t,e,n))}function iA(r,t=tr){return F(Us(r,t))}function uA(r,t){return F(Xr(r,t))}function cA(r,t){return F($s(r,t))}function lA(r,t){return F(ks(r,t))}function fA(r,t){return F(Rs(r,t))}function mA(r,t,e){return F(qs(r,t,e))}function pA(r){return F(Vs(r))}function yA(r,t){return F(Ps(r,t))}function dA(r,t){return F(js(r,t))}function bA(r,t){return F(Ls(r,t))}function AA(r,t){return F(Ws(r,t))}function gA(r,t,e){return F(Gs(r,t,e))}function hA(r,t=0){return F(Uo(r,t))}function NA(r,t=0){return F(Ys(r,t))}function DA(r,t,e=0,n=tr){return F(Zs(r,t,e,n))}function xA(r,t=0){return F(Xs(r,t))}function CA(r,t=0){return F(Js(r,t))}function SA(r,t,e=!1){return F(Ks(r,t,e))}function wA(r,t=tr,e=-1,n=0){return F(Qs(r,t,e,n))}function IA(r,t,e=tr){return F(Hs(r,t,e))}function zA(r,t=tr,e=-1){return F(ri(r,t,e))}function _A(r,t=tr,e=-1,n){return F(ti(r,t,e,n))}function MA(r,t=tr,e=-1,n=""){return F(ei(r,t,e,n))}function vA(r,t,e){return F(io(r,t,e))}function FA(r,t,e){return F(Zu(r,t,e))}function BA(r,t){let e=mt(r,t);return e instanceof P?F(e):e}function TA(r,t=0,e=0,n=1){return F(pt(r,t,e,n))}function EA(r,t){return F(ki(r,t))}function OA(r,t){return F(yt(r,t))}function UA(r,t){let e=dt(r,t);return e instanceof P?F(e):e}function $A(r,t){return F(bt(r,t))}function kA(r,t,e=2){let n=At(r,t,e);return n instanceof P?F(n):n}function RA(r,t,e=-1){let n=Lo(r,t,e);return n instanceof P?F(n):n}function qA(r){return F(Wo(r))}function VA(r,t){return F(Go(r,t))}function PA(r,t){return F(Ri(r,t))}function jA(r,t){return F(qi(r,t))}function LA(r,t,e=-1,n=-1,o=-1,a){let u=Yo(r,t,e,n,o,a),i=or(r.dtype,t.dtype);if(u instanceof U){let c=K(i==="complex64"?"float32":"float64"),l=new c(2);return l[0]=u.re,l[1]=u.im,er.fromStorage(S.fromData(l,[],i))}if(typeof u=="number"){if(B(i)){let f=K(i==="complex64"?"float32":"float64"),m=new f(2);return m[0]=u,m[1]=0,er.fromStorage(S.fromData(m,[],i))}let s=K(i),c=new s(1);return c[0]=u,er.fromStorage(S.fromData(c,[],i))}return F(u)}function WA(r,t){return F(_e(r,t))}function GA(r,t){return F(xn(r,t))}function YA(r,t){return F(Cn(r,t))}function ZA(r){return F(Sn(r))}function XA(r,t){return F(wn(r,t))}function JA(r){return F(In(r))}function KA(r){return F(zn(r))}function QA(r){return F(_n(r))}function HA(r){return F(Mn(r))}function rg(r){return F(fu(r))}function tg(r){return F(mu(r))}function eg(r){return F(pu(r))}function ng(r){return F(yu(r))}function og(r,t){return F(du(r,t))}function ag(r,t){return F(vn(r,t))}function sg(r){return F(Fn(r))}function ig(r,t){return F(Bn(r,t))}function ug(r){return F(Tn(r))}function cg(r,t){return F(En(r,t))}function lg(r,t){return F(On(r,t))}function fg(r,t){return F(Un(r,t))}function mg(r,t){return F($n(r,t))}function pg(r,t){return F(kn(r,t))}function yg(r,t){return F(Rn(r,t))}function dg(r,t,e=1e-5,n=1e-8){return F(qn(r,t,e,n))}function bg(r){return F(zc(r))}function Ag(r,t){return F(_c(r,t))}function gg(r,t=1){return F(Mc(r,t))}function hg(r,t){let e=vc(r,t);return[F(e[0]),F(e[1])]}function Ng(r,t,e){return F(Fc(r,t,e))}function Dg(r,t=1,e=0){return F(Bc(r,t,e))}function xg(r,t){return F(Tc(r,t))}function Cg(r,t){return F(Ec(r,t))}function Sg(r,t){let e=Oc(r,t);return e instanceof P?F(e):e}function wg(r){return F(Uc(r))}function Ig(r,t,e){let n=Ve(r,t,e);return n instanceof P?F(n):n}function zg(r,t,e){let n=Pe(r,t,e);return n instanceof P?F(n):n}function _g(r,t,e){let n=je(r,t,e);return n instanceof P?F(n):n}function Mg(r,t,e){let n=Ze(r,t,e);return n instanceof P?F(n):n}function vg(r,t){let e=Xe(r,t);return e instanceof P?F(e):e}function Fg(r,t){let e=Je(r,t);return e instanceof P?F(e):e}function Bg(r,t,e,n){let o=rt(r,t,e,n);return o instanceof P?F(o):o}function Tg(r,t,e,n){let o=Ke(r,t,e,n);return o instanceof P?F(o):o}function Eg(r,t,e){let n=Qe(r,t,e);return n instanceof P?F(n):n}function Og(r,t,e,n){let o=He(r,t,e,n);return o instanceof P?F(o):o}function Ug(r,t,e,n){let o=rn(r,t,e,n);return o instanceof P?F(o):o}function $g(r,t,e,n){let o=tn(r,t,e,n);return o instanceof P?F(o):o}function kg(r,t,e){let n=en(r,t,e);return n instanceof P?F(n):n}function Rg(r,t,e){let n=nn(r,t,e);return n instanceof P?F(n):n}function Qc(r,t){return F(on(r,t))}function Hc(r,t){return F(an(r,t))}function qg(r,t,e){let n=sn(r,t,e);return n instanceof P?F(n):n}function Vg(r,t,e){let n=un(r,t,e);return n instanceof P?F(n):n}function Pg(r,t,e){let n=cn(r,t,e);return n instanceof P?F(n):n}function jg(r,t,e,n){let o=ln(r,t,e,n);return o instanceof P?F(o):o}function Lg(r,t,e,n){let o=fn(r,t,e,n);return o instanceof P?F(o):o}function Wg(r,t,e){let n=mn(r,t,e);return n instanceof P?F(n):n}function Gg(r,t,e){let n=pn(r,t,e);return n instanceof P?F(n):n}function Yg(r,t){let e=yn(r,t);return e instanceof P?F(e):e}function Zg(r,t){let e=dn(r,t);return e instanceof P?F(e):e}function Xg(r,t){return F(bn(r,t))}function Jg(r,t){return F(An(r,t))}function Kg(r,t,e){let n=gn(r,t,e);return n instanceof P?F(n):n}function Qg(r,t,e,n){let o=hn(r,t,e,n);return o instanceof P?F(o):o}function Hg(r,t,e,n){let o=Nn(r,t,e,n);return o instanceof P?F(o):o}function rl(r,t=0){return F(It(r,t))}function rh(r){return F(to(r))}function th(r){return F(eo(r))}function eh(r){return F(no(r))}function nh(r){return F(oo(r))}function oh(r){return F(ao(r))}function ah(r,t){return F(vu(r,t))}function sh(r,t){return F(Fu(r,t))}function ih(r,t){return F(Bu(r,t))}function uh(r,t){return F(Tu(r,t))}function ch(r,t){return F(Eu(r,t))}function lh(r,t){return F(Ou(r,t))}function fh(r,t){return F(Uu(r,t))}function mh(r){return F($u(r))}function ph(r,t,e){return F(Nc(r,t,e))}function tl(r,t,e){return F(ps(r,t,e))}function yh(r,t,e,n){return F(Dc(r,t,e,n))}function dh(r,t,e="constant",n=0){return F(xc(r,t,e,n))}function bh(r,t){return F(Me(r,t))}function Ah(r){return F(Br(r))}function gh(r){return F(ve(r))}function hh(r,t){return F(Fe(r,t))}function Nh(r,t){return F(Be(r,t))}function Dh(r,t,e){return F(Te(r,t,e))}function xh(r,t,e){return F(Ee(r,t,e))}function Ch(r,t,e=0){return F(Vi(r,t,e))}function el(r,t=0){return F(gt(r,t))}function Sh(r,t=0){return F(Pi(r,t))}function wh(r){return F(Xo(r))}function Ih(r){return F(ji(r))}function zh(r){return F(Li(r))}function _h(r){return F(Wi(r))}function Mh(r){return F(Gi(r))}function vh(r,t=0){return Yi(r,t).map(F)}function Fh(r,t){return F(Zi(r,t))}function Bh(r,t,e){return F(Oe(r,t,e))}function Th(r,t){return F(Ue(r,t))}function Eh(r){return F(Xi(r))}function Oh(r){return F(Ji(r))}function Uh(r,t=1,e=[0,1]){return F(Ki(r,t,e))}function $h(r,t,e){return F(Qi(r,t,e))}function kh(r,t){return F($e(r,t))}function Rh(r,t=-1){return F(Vn(r,t))}function qh(r,t=-1){return F(Pn(r,t))}function Vh(r){return F(gu(r))}function Ph(r,t,e=-1){return F(jn(r,t,e))}function jh(r,t,e=-1){return F(Ln(r,t,e))}function Lh(r){return F(hu(r))}function Wh(r){return Wn(r).map(F)}function Gh(r){return F(Gn(r))}function Yh(r){return F(Nu(r))}function Zh(r,t){return F(Du(r,t))}function Xh(r,t,e){return F(Vu(r,t,e))}function Jh(r,t,e){return F(Pu(r,t,e))}function Kh(r,t,e){return F(ju(r,t,e))}function Qh(r,t,e){return F(Lu(r,t,e))}function Hh(r,t,e,n,o){return F(Wu(r,t,e,n,o))}function r0(r,t,e){return F(Gu(r,t,e))}function t0(r,t,e,n){let o=Yu(r,t,e,n);return o instanceof P?F(o):o}function e0(r){return F(ce(r))}function n0(r){return F(le(r))}function o0(r){return F(fe(r))}function nl(r){return F(me(r))}function ol(r){return F(pe(r))}function al(r){return F(ye(r))}function sl(r,t){return F(de(r,t))}function a0(r,t){return F(be(r,t))}function s0(r){return F(Ae(r))}function i0(r){return F(ge(r))}function u0(r){return F(Ci(r))}function c0(r){return F(Si(r))}function l0(r){return F(he(r))}function f0(r){return F(Ne(r))}function m0(r){return F(De(r))}function il(r){return F(xe(r))}function ul(r){return F(Ce(r))}function cl(r){return F(Se(r))}var Tr=624,Cs=397,Yx=2567483615,ll=2147483648,fl=2147483647,vr={mt:new Uint32Array(Tr),mti:Tr+1};function y0(r){let t=vr.mt;t[0]=r>>>0;for(let e=1;e<Tr;e++){let n=t[e-1]^t[e-1]>>>30;t[e]=Math.imul(1812433253,n)+e>>>0}vr.mti=Tr}function yl(){let r=vr.mt,t,e=[0,Yx];if(vr.mti>=Tr){let n;for(vr.mti===Tr+1&&y0(5489),n=0;n<Tr-Cs;n++)t=r[n]&ll|r[n+1]&fl,r[n]=r[n+Cs]^t>>>1^e[t&1];for(;n<Tr-1;n++)t=r[n]&ll|r[n+1]&fl,r[n]=r[n+(Cs-Tr)]^t>>>1^e[t&1];t=r[Tr-1]&ll|r[0]&fl,r[Tr-1]=r[Cs-1]^t>>>1^e[t&1],vr.mti=0}return t=r[vr.mti++],t^=t>>>11,t^=t<<7&2636928640,t^=t<<15&4022730752,t^=t>>>18,t>>>0}function W(){let r=yl()>>>5,t=yl()>>>6;return(r*67108864+t)/9007199254740992}var Zx=2468251765,Xx=1492356589,Jx=1135663077,Kx=2337405405,Qx=3389127133,Hx=1232336661,Al=16,Ss=4;function mr(r){return r>>>0}function ml(r,t){return r=mr(mr(r)^t.val),t.val=mr(Math.imul(t.val,Zx)),r=mr(Math.imul(r,t.val)),r=mr(r^r>>>Al),r}function r1(r,t){let e=mr(mr(Math.imul(Qx,mr(r)))-mr(Math.imul(Hx,mr(t))));return e=mr(e^e>>>Al),e}function t1(r){let t=[0,0,0,0],e=[r>>>0],n={val:Jx};for(let o=0;o<Ss;o++)o<e.length?t[o]=ml(e[o],n):t[o]=ml(0,n);for(let o=0;o<Ss;o++)for(let a=0;a<Ss;a++)if(o!==a){let u=ml(t[o],n);t[a]=r1(t[a],u)}return t}function e1(r,t){let e=[],n=Kx;for(let o=0;o<t;o++){let a=r[o%Ss],u=mr(a^n);n=mr(Math.imul(n,Xx)),u=mr(Math.imul(u,n)),u=mr(u^u>>>Al),e.push(u)}return e}var n1=BigInt("4865540595714422341"),o1=BigInt("2549297995355413924"),a1=o1<<BigInt(64)|n1,pl=BigInt("0xffffffffffffffff"),dl=(BigInt(1)<<BigInt(128))-BigInt(1);function s1(r){let t=r>>BigInt(64),e=r&pl,n=(t^e)&pl,o=Number(r>>BigInt(122));return(n>>BigInt(o)|n<<BigInt(64-o))&pl}function bl(r,t){return r*a1+t&dl}function p0(r){let t=t1(r),e=e1(t,8),n=BigInt(e[0])|BigInt(e[1])<<BigInt(32),o=BigInt(e[2])|BigInt(e[3])<<BigInt(32),a=BigInt(e[4])|BigInt(e[5])<<BigInt(32),u=BigInt(e[6])|BigInt(e[7])<<BigInt(32),i=n<<BigInt(64)|o,s=(a<<BigInt(64)|u)<<BigInt(1);s=(s|BigInt(1))&dl;let c=BigInt(0);return c=bl(c,s),c=c+i&dl,c=bl(c,s),{state:c,inc:s}}function i1(r){return r.state=bl(r.state,r.inc),s1(r.state)}function u1(r){let e=i1(r)>>BigInt(11);return Number(e)/9007199254740992}var Ao=class{constructor(t){if(t!==void 0)this._pcgState=p0(t);else{let e=Math.floor(Math.random()*4294967296);this._pcgState=p0(e)}}_randomFloat(){return u1(this._pcgState)}random(t){if(t===void 0)return this._randomFloat();let e=Array.isArray(t)?t:[t],n=e.reduce((u,i)=>u*i,1),o=S.zeros(e,"float64"),a=o.data;for(let u=0;u<n;u++)a[u]=this._randomFloat();return o}integers(t,e,n){if(e===void 0&&(e=t,t=0),n===void 0)return Math.floor(this._randomFloat()*(e-t))+t;let o=Array.isArray(n)?n:[n],a=o.reduce((c,l)=>c*l,1),u=S.zeros(o,"int64"),i=u.data,s=e-t;for(let c=0;c<a;c++)i[c]=BigInt(Math.floor(this._randomFloat()*s)+t);return u}standard_normal(t){if(t===void 0)return Fr(this._randomFloat.bind(this));let e=Array.isArray(t)?t:[t],n=e.reduce((u,i)=>u*i,1),o=S.zeros(e,"float64"),a=o.data;for(let u=0;u<n;u+=2){let[i,s]=go(this._randomFloat.bind(this));a[u]=i,u+1<n&&(a[u+1]=s)}return o}normal(t=0,e=1,n){if(n===void 0)return Fr(this._randomFloat.bind(this))*e+t;let o=Array.isArray(n)?n:[n],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"float64"),i=u.data;for(let s=0;s<a;s+=2){let[c,l]=go(this._randomFloat.bind(this));i[s]=c*e+t,s+1<a&&(i[s+1]=l*e+t)}return u}uniform(t=0,e=1,n){if(n===void 0)return this._randomFloat()*(e-t)+t;let o=Array.isArray(n)?n:[n],a=o.reduce((c,l)=>c*l,1),u=S.zeros(o,"float64"),i=u.data,s=e-t;for(let c=0;c<a;c++)i[c]=this._randomFloat()*s+t;return u}choice(t,e,n=!0,o){return I0(t,e,n,o,this._randomFloat.bind(this))}permutation(t){return _0(t,this._randomFloat.bind(this))}shuffle(t){v0(t,this._randomFloat.bind(this))}exponential(t=1,e){if(e===void 0)return-Math.log(1-this._randomFloat())*t;let n=Array.isArray(e)?e:[e],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"float64"),u=a.data;for(let i=0;i<o;i++)u[i]=-Math.log(1-this._randomFloat())*t;return a}poisson(t=1,e){if(e===void 0)return ot(t,this._randomFloat.bind(this));let n=Array.isArray(e)?e:[e],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"int64"),u=a.data;for(let i=0;i<o;i++)u[i]=BigInt(ot(t,this._randomFloat.bind(this)));return a}binomial(t,e,n){if(n===void 0)return ho(t,e,this._randomFloat.bind(this));let o=Array.isArray(n)?n:[n],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"int64"),i=u.data;for(let s=0;s<a;s++)i[s]=BigInt(ho(t,e,this._randomFloat.bind(this)));return u}};function d0(r){return new Ao(r)}function b0(r){r==null&&(r=Math.floor(Date.now()^Math.random()*4294967296)),y0(r>>>0)}function A0(){return{mt:Array.from(vr.mt),mti:vr.mti}}function g0(r){vr.mt=new Uint32Array(r.mt),vr.mti=r.mti}function Fr(r){let t,e;do t=r(),e=r();while(t===0);return Math.sqrt(-2*Math.log(t))*Math.cos(2*Math.PI*e)}function go(r){let t,e;do t=r(),e=r();while(t===0);let n=Math.sqrt(-2*Math.log(t)),o=2*Math.PI*e;return[n*Math.cos(o),n*Math.sin(o)]}function ot(r,t){if(r<30){let e=Math.exp(-r),n=0,o=1;do n++,o*=t();while(o>e);return n-1}else{let e=Fr(t);return Math.max(0,Math.round(r+Math.sqrt(r)*e))}}function ho(r,t,e){if(r*t<10&&r*(1-t)<10){let n=0;for(let o=0;o<r;o++)e()<t&&n++;return n}else{let n=r*t,o=Math.sqrt(r*t*(1-t)),a=Fr(e);return Math.max(0,Math.min(r,Math.round(n+o*a)))}}function No(r){if(r===void 0)return W();let t=Array.isArray(r)?r:[r],e=t.reduce((a,u)=>a*u,1),n=S.zeros(t,"float64"),o=n.data;for(let a=0;a<e;a++)o[a]=W();return n}function h0(...r){if(r.length===0)return W();let t=r.reduce((o,a)=>o*a,1),e=S.zeros(r,"float64"),n=e.data;for(let o=0;o<t;o++)n[o]=W();return e}function N0(...r){if(r.length===0)return Fr(W);let t=r.reduce((o,a)=>o*a,1),e=S.zeros(r,"float64"),n=e.data;for(let o=0;o<t;o+=2){let[a,u]=go(W);n[o]=a,o+1<t&&(n[o+1]=u)}return e}function gl(r,t,e,n="int64"){t==null&&(t=r,r=0);let o=t-r;if(e===void 0)return Math.floor(W()*o)+r;let a=Array.isArray(e)?e:[e],u=a.reduce((c,l)=>c*l,1),i=S.zeros(a,n),s=i.data;if(E(n)){let c=s;for(let l=0;l<u;l++)c[l]=BigInt(Math.floor(W()*o)+r)}else{let c=s;for(let l=0;l<u;l++)c[l]=Math.floor(W()*o)+r}return i}function D0(r=0,t=1,e){if(e===void 0)return W()*(t-r)+r;let n=Array.isArray(e)?e:[e],o=n.reduce((s,c)=>s*c,1),a=S.zeros(n,"float64"),u=a.data,i=t-r;for(let s=0;s<o;s++)u[s]=W()*i+r;return a}function x0(r=0,t=1,e){if(e===void 0)return Fr(W)*t+r;let n=Array.isArray(e)?e:[e],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"float64"),u=a.data;for(let i=0;i<o;i+=2){let[s,c]=go(W);u[i]=s*t+r,i+1<o&&(u[i+1]=c*t+r)}return a}function C0(r){if(r===void 0)return Fr(W);let t=Array.isArray(r)?r:[r],e=t.reduce((a,u)=>a*u,1),n=S.zeros(t,"float64"),o=n.data;for(let a=0;a<e;a+=2){let[u,i]=go(W);o[a]=u,a+1<e&&(o[a+1]=i)}return n}function hl(r=1,t){if(t===void 0)return-Math.log(1-W())*r;let e=Array.isArray(t)?t:[t],n=e.reduce((u,i)=>u*i,1),o=S.zeros(e,"float64"),a=o.data;for(let u=0;u<n;u++)a[u]=-Math.log(1-W())*r;return o}function S0(r=1,t){if(t===void 0)return ot(r,W);let e=Array.isArray(t)?t:[t],n=e.reduce((u,i)=>u*i,1),o=S.zeros(e,"int64"),a=o.data;for(let u=0;u<n;u++)a[u]=BigInt(ot(r,W));return o}function w0(r,t,e){if(e===void 0)return ho(r,t,W);let n=Array.isArray(e)?e:[e],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"int64"),u=a.data;for(let i=0;i<o;i++)u[i]=BigInt(ho(r,t,W));return a}function I0(r,t,e=!0,n,o=W){let a;if(typeof r=="number")a=Array.from({length:r},(m,p)=>p);else{let m=r.size;a=[];for(let p=0;p<m;p++)a.push(Number(r.iget(p)))}let u=a.length;if(u===0)throw new Error("cannot take a sample from an empty sequence");let i;if(n!==void 0){if(Array.isArray(n))i=n;else{let p=n.size;i=[];for(let y=0;y<p;y++)i.push(Number(n.iget(y)))}if(i.length!==u)throw new Error("p and a must have the same size");let m=i.reduce((p,y)=>p+y,0);Math.abs(m-1)>1e-10&&(i=i.map(p=>p/m))}if(t===void 0){if(i){let m=o(),p=0;for(let y=0;y<u;y++)if(p+=i[y],m<p)return a[y];return a[u-1]}return a[Math.floor(o()*u)]}let s=Array.isArray(t)?t:[t],c=s.reduce((m,p)=>m*p,1);if(!e&&c>u)throw new Error("cannot take a larger sample than population when replace=false");let l=S.zeros(s,"float64"),f=l.data;if(e)if(i){let m=new Array(u);m[0]=i[0];for(let p=1;p<u;p++)m[p]=m[p-1]+i[p];for(let p=0;p<c;p++){let y=o(),d=0;for(;d<u-1&&y>=m[d];)d++;f[p]=a[d]}}else for(let m=0;m<c;m++)f[m]=a[Math.floor(o()*u)];else{let m=[...a],p=i?[...i]:void 0;for(let y=0;y<c;y++){let d;if(p){let b=p.reduce((h,N)=>h+N,0),A=o()*b,g=0;d=0;for(let h=0;h<m.length;h++)if(g+=p[h],A<g){d=h;break}d===0&&A>=g&&(d=m.length-1)}else d=Math.floor(o()*m.length);f[y]=m[d],m.splice(d,1),p&&p.splice(d,1)}}return l}function z0(r,t,e=!0,n){return I0(r,t,e,n,W)}function _0(r,t=W){let e;if(typeof r=="number"){let o=new Float64Array(r);for(let a=0;a<r;a++)o[a]=a;e=S.fromData(o,[r],"float64")}else e=r.copy();let n=e.size;for(let o=n-1;o>0;o--){let a=Math.floor(t()*(o+1)),u=e.iget(o);e.iset(o,e.iget(a)),e.iset(a,u)}return e}function M0(r){return _0(r,W)}function v0(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 F0(r){v0(r,W)}function B0(r){return No(r)}function T0(r){return No(r)}function E0(r){return No(r)}function O0(r,t,e){return t===void 0&&(t=r,r=1),gl(r,t+1,e)}function U0(r){let t=new Uint8Array(r);for(let e=0;e<r;e++)t[e]=yl()&255;return t}var $0={name:"MT19937",state:vr};function k0(){return $0}function R0(r){$0=r}function q0(r){return hl(1,r)}function V0(r,t){if(r<=0)throw new Error("shape must be positive");return ws(r,1,t)}function P0(r){if(r===void 0)return Math.tan(Math.PI*(W()-.5));let t=Array.isArray(r)?r:[r],e=t.reduce((a,u)=>a*u,1),n=S.zeros(t,"float64"),o=n.data;for(let a=0;a<e;a++)o[a]=Math.tan(Math.PI*(W()-.5));return n}function j0(r,t){if(r<=0)throw new Error("df must be positive");let e=i=>{let s=Fr(i),c=pr(r/2,2,i);return s/Math.sqrt(c/r)};if(t===void 0)return e(W);let n=Array.isArray(t)?t:[t],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"float64"),u=a.data;for(let i=0;i<o;i++)u[i]=e(W);return a}function pr(r,t,e){if(r<1){let a=e();return pr(1+r,t,e)*Math.pow(a,1/r)}let n=r-1/3,o=1/Math.sqrt(9*n);for(;;){let a,u;do a=Fr(e),u=1+o*a;while(u<=0);u=u*u*u;let i=e(),s=a*a;if(i<1-.0331*s*s||Math.log(i)<.5*s+n*(1-u+Math.log(u)))return n*u*t}}function ws(r,t=1,e){if(r<=0)throw new Error("shape must be positive");if(t<=0)throw new Error("scale must be positive");if(e===void 0)return pr(r,t,W);let n=Array.isArray(e)?e:[e],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"float64"),u=a.data;for(let i=0;i<o;i++)u[i]=pr(r,t,W);return a}function L0(r,t,e){if(r<=0||t<=0)throw new Error("a and b must be positive");let n=s=>{let c=pr(r,1,s),l=pr(t,1,s);return c/(c+l)};if(e===void 0)return n(W);let o=Array.isArray(e)?e:[e],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"float64"),i=u.data;for(let s=0;s<a;s++)i[s]=n(W);return u}function W0(r=0,t=1,e){if(t<=0)throw new Error("scale must be positive");let n=s=>{let c=s()-.5;return r-t*Math.sign(c)*Math.log(1-2*Math.abs(c))};if(e===void 0)return n(W);let o=Array.isArray(e)?e:[e],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"float64"),i=u.data;for(let s=0;s<a;s++)i[s]=n(W);return u}function G0(r=0,t=1,e){if(t<=0)throw new Error("scale must be positive");let n=s=>{let c=s();return r+t*Math.log(c/(1-c))};if(e===void 0)return n(W);let o=Array.isArray(e)?e:[e],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"float64"),i=u.data;for(let s=0;s<a;s++)i[s]=n(W);return u}function Y0(r=0,t=1,e){if(t<=0)throw new Error("sigma must be positive");let n=s=>Math.exp(r+t*Fr(s));if(e===void 0)return n(W);let o=Array.isArray(e)?e:[e],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"float64"),i=u.data;for(let s=0;s<a;s++)i[s]=n(W);return u}function Z0(r=0,t=1,e){if(t<=0)throw new Error("scale must be positive");let n=s=>{let c=s();return r-t*Math.log(-Math.log(c))};if(e===void 0)return n(W);let o=Array.isArray(e)?e:[e],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"float64"),i=u.data;for(let s=0;s<a;s++)i[s]=n(W);return u}function X0(r,t){if(r<=0)throw new Error("a must be positive");let e=i=>{let s=i();return Math.pow(1-s,-1/r)-1};if(t===void 0)return e(W);let n=Array.isArray(t)?t:[t],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"float64"),u=a.data;for(let i=0;i<o;i++)u[i]=e(W);return a}function J0(r,t){if(r<=0)throw new Error("a must be positive");let e=i=>{let s=i();return Math.pow(s,1/r)};if(t===void 0)return e(W);let n=Array.isArray(t)?t:[t],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"float64"),u=a.data;for(let i=0;i<o;i++)u[i]=e(W);return a}function K0(r=1,t){if(r<=0)throw new Error("scale must be positive");let e=i=>{let s=i();return r*Math.sqrt(-2*Math.log(s))};if(t===void 0)return e(W);let n=Array.isArray(t)?t:[t],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"float64"),u=a.data;for(let i=0;i<o;i++)u[i]=e(W);return a}function Q0(r,t,e,n){if(r>t||t>e||r===e)throw new Error("must have left <= mode <= right and left < right");let o=c=>{let l=c(),f=(t-r)/(e-r);return l<f?r+Math.sqrt(l*(e-r)*(t-r)):e-Math.sqrt((1-l)*(e-r)*(e-t))};if(n===void 0)return o(W);let a=Array.isArray(n)?n:[n],u=a.reduce((c,l)=>c*l,1),i=S.zeros(a,"float64"),s=i.data;for(let c=0;c<u;c++)s[c]=o(W);return i}function H0(r,t,e){if(r<=0)throw new Error("mean must be positive");if(t<=0)throw new Error("scale must be positive");let n=s=>{let c=Fr(s),l=c*c,f=r/(2*t),m=r+f*(r*l-Math.sqrt(4*r*t*l+r*r*l*l));return s()<=r/(r+m)?m:r*r/m};if(e===void 0)return n(W);let o=Array.isArray(e)?e:[e],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"float64"),i=u.data;for(let s=0;s<a;s++)i[s]=n(W);return u}function rN(r,t){if(r<=0)throw new Error("a must be positive");let e=i=>{let s=i();return Math.pow(-Math.log(1-s),1/r)};if(t===void 0)return e(W);let n=Array.isArray(t)?t:[t],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"float64"),u=a.data;for(let i=0;i<o;i++)u[i]=e(W);return a}function tN(r,t){if(r<=0)throw new Error("df must be positive");return ws(r/2,2,t)}function eN(r,t,e){if(r<=0)throw new Error("df must be positive");if(t<0)throw new Error("nonc must be non-negative");let n=s=>{if(t===0)return pr(r/2,2,s);let c=ot(t/2,s);return pr(r/2+c,2,s)};if(e===void 0)return n(W);let o=Array.isArray(e)?e:[e],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"float64"),i=u.data;for(let s=0;s<a;s++)i[s]=n(W);return u}function nN(r,t,e){if(r<=0)throw new Error("dfnum must be positive");if(t<=0)throw new Error("dfden must be positive");let n=s=>{let c=pr(r/2,2,s),l=pr(t/2,2,s);return c/r/(l/t)};if(e===void 0)return n(W);let o=Array.isArray(e)?e:[e],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"float64"),i=u.data;for(let s=0;s<a;s++)i[s]=n(W);return u}function oN(r,t,e,n){if(r<=0)throw new Error("dfnum must be positive");if(t<=0)throw new Error("dfden must be positive");if(e<0)throw new Error("nonc must be non-negative");let o=c=>{let l=pr(e===0?r/2:r/2+ot(e/2,c),2,c),f=pr(t/2,2,c);return l/r/(f/t)};if(n===void 0)return o(W);let a=Array.isArray(n)?n:[n],u=a.reduce((c,l)=>c*l,1),i=S.zeros(a,"float64"),s=i.data;for(let c=0;c<u;c++)s[c]=o(W);return i}function aN(r,t){if(r<=0||r>1)throw new Error("p must be in (0, 1]");let e=i=>{if(r===1)return 1;let s=i();return Math.floor(Math.log(s)/Math.log(1-r))+1};if(t===void 0)return e(W);let n=Array.isArray(t)?t:[t],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"int64"),u=a.data;for(let i=0;i<o;i++)u[i]=BigInt(e(W));return a}function sN(r,t,e,n){if(r<0)throw new Error("ngood must be non-negative");if(t<0)throw new Error("nbad must be non-negative");if(e<0)throw new Error("nsample must be non-negative");if(e>r+t)throw new Error("nsample must be <= ngood + nbad");let o=c=>{let l=r,f=t,m=0,p=e;for(;p>0;){let y=l+f;if(y===0)break;c()<l/y?(m++,l--):f--,p--}return m};if(n===void 0)return o(W);let a=Array.isArray(n)?n:[n],u=a.reduce((c,l)=>c*l,1),i=S.zeros(a,"int64"),s=i.data;for(let c=0;c<u;c++)s[c]=BigInt(o(W));return i}function iN(r,t){if(r<=0||r>=1)throw new Error("p must be in (0, 1)");let e=Math.log(1-r),n=s=>{let c=s(),l=s(),f=1-Math.exp(e*c);if(l>=f||l===0)return 1;let m=Math.log(l),p=Math.log(f);return m>=p?1:m>=2*p?2:Math.floor(1+m/p)};if(t===void 0)return n(W);let o=Array.isArray(t)?t:[t],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"int64"),i=u.data;for(let s=0;s<a;s++)i[s]=BigInt(n(W));return u}function uN(r,t,e){if(r<=0)throw new Error("n must be positive");if(t<=0||t>1)throw new Error("p must be in (0, 1]");let n=s=>{if(t===1)return 0;let c=pr(r,(1-t)/t,s);return ot(c,s)};if(e===void 0)return n(W);let o=Array.isArray(e)?e:[e],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"int64"),i=u.data;for(let s=0;s<a;s++)i[s]=BigInt(n(W));return u}function cN(r,t){if(r<=1)throw new Error("a must be > 1");let e=r-1,n=Math.pow(2,e),o=c=>{for(;;){let l=1-c(),f=c(),m=Math.floor(Math.pow(l,-1/e)),p=Math.pow(1+1/m,e);if(f*m*(p-1)/(n-1)<=p/n)return m}};if(t===void 0)return o(W);let a=Array.isArray(t)?t:[t],u=a.reduce((c,l)=>c*l,1),i=S.zeros(a,"int64"),s=i.data;for(let c=0;c<u;c++)s[c]=BigInt(o(W));return i}function lN(r,t,e){let n=Array.isArray(t)?t:Array.from({length:t.size},(p,y)=>Number(t.iget(y))),o=n.length;if(o===0)throw new Error("pvals must have at least one element");let a=n.reduce((p,y)=>p+y,0),u=n.map(p=>p/a),i=p=>{let y=new Array(o).fill(0),d=r,b=1;for(let A=0;A<o-1&&d>0;A++){let g=u[A]/b,h=ho(d,Math.min(1,Math.max(0,g)),p);y[A]=h,d-=h,b-=u[A]}return y[o-1]=d,y};if(e===void 0){let p=i(W),y=S.zeros([o],"int64"),d=y.data;for(let b=0;b<o;b++)d[b]=BigInt(p[b]);return y}let s=Array.isArray(e)?e:[e],c=s.reduce((p,y)=>p*y,1),l=[...s,o],f=S.zeros(l,"int64"),m=f.data;for(let p=0;p<c;p++){let y=i(W);for(let d=0;d<o;d++)m[p*o+d]=BigInt(y[d])}return f}function fN(r,t,e,n="warn",o=1e-8){let a=Array.isArray(r)?r:Array.from({length:r.size},(d,b)=>Number(r.iget(b))),u=a.length,i;if(Array.isArray(t))i=t;else{i=[];for(let d=0;d<u;d++){i.push([]);for(let b=0;b<u;b++)i[d].push(Number(t.iget(d*u+b)))}}let s=Array(u).fill(0).map(()=>Array(u).fill(0));for(let d=0;d<u;d++)for(let b=0;b<=d;b++){let A=i[d][b];for(let g=0;g<b;g++)A-=s[d][g]*s[b][g];if(d===b){if(A<-o){if(n==="raise")throw new Error("covariance matrix is not positive semi-definite");n==="warn"&&console.warn("covariance matrix is not positive semi-definite"),A=0}s[d][b]=Math.sqrt(Math.max(0,A))}else s[d][b]=s[b][b]!==0?A/s[b][b]:0}let c=d=>{let b=[];for(let g=0;g<u;g++)b.push(Fr(d));let A=[];for(let g=0;g<u;g++){let h=a[g];for(let N=0;N<=g;N++)h+=s[g][N]*b[N];A.push(h)}return A};if(e===void 0){let d=c(W),b=S.zeros([u],"float64"),A=b.data;for(let g=0;g<u;g++)A[g]=d[g];return b}let l=Array.isArray(e)?e:[e],f=l.reduce((d,b)=>d*b,1),m=[...l,u],p=S.zeros(m,"float64"),y=p.data;for(let d=0;d<f;d++){let b=c(W);for(let A=0;A<u;A++)y[d*u+A]=b[A]}return p}function mN(r,t){let e=Array.isArray(r)?r:Array.from({length:r.size},(l,f)=>Number(r.iget(f))),n=e.length;if(n<2)throw new Error("alpha must have at least 2 elements");for(let l of e)if(l<=0)throw new Error("all alpha values must be positive");let o=l=>{let f=[],m=0;for(let p=0;p<n;p++){let y=pr(e[p],1,l);f.push(y),m+=y}return f.map(p=>p/m)};if(t===void 0){let l=o(W),f=S.zeros([n],"float64"),m=f.data;for(let p=0;p<n;p++)m[p]=l[p];return f}let a=Array.isArray(t)?t:[t],u=a.reduce((l,f)=>l*f,1),i=[...a,n],s=S.zeros(i,"float64"),c=s.data;for(let l=0;l<u;l++){let f=o(W);for(let m=0;m<n;m++)c[l*n+m]=f[m]}return s}function pN(r,t,e){if(t<0)throw new Error("kappa must be non-negative");let n=s=>{if(t===0)return 2*Math.PI*s()-Math.PI;let c=1+Math.sqrt(1+4*t*t),l=(c-Math.sqrt(2*c))/(2*t),f=(1+l*l)/(2*l);for(;;){let m=s(),p=Math.cos(Math.PI*m),y=(1+f*p)/(f+p),d=t*(f-y),b=s();if(d*(2-d)>b||Math.log(d/b)+1-d>=0)return((s()>.5?Math.acos(y):-Math.acos(y))+r+Math.PI)%(2*Math.PI)-Math.PI}};if(e===void 0)return n(W);let o=Array.isArray(e)?e:[e],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"float64"),i=u.data;for(let s=0;s<a;s++)i[s]=n(W);return u}function l1(r,t,e){let n=r.length;n!==0&&n!==1&&((n&n-1)===0?Is(r,t,e):m1(r,t,e))}var Do=new Map;function f1(r,t){let e=`${r}_${t}`,n=Do.get(e);if(n)return n;let o=new Float64Array(r/2),a=new Float64Array(r/2),u=t?1:-1;for(let i=0;i<r/2;i++){let s=u*2*Math.PI*i/r;o[i]=Math.cos(s),a[i]=Math.sin(s)}if(n={cos:o,sin:a},Do.set(e,n),Do.size>100){let i=Do.keys().next().value;Do.delete(i)}return n}function Is(r,t,e){let n=r.length,o=0;for(let i=0;i<n-1;i++){if(i<o){let c=r[i];r[i]=r[o],r[o]=c,c=t[i],t[i]=t[o],t[o]=c}let s=n>>1;for(;s<=o;)o-=s,s>>=1;o+=s}let{cos:a,sin:u}=f1(n,e);for(let i=2;i<=n;i*=2){let s=i>>1,c=n/i;for(let l=0;l<n;l+=i)for(let f=0,m=0;f<s;f++,m+=c){let p=a[m],y=u[m],d=l+f,b=l+f+s,A=r[d],g=t[d],h=r[b],N=t[b],D=p*h-y*N,x=p*N+y*h;r[d]=A+D,t[d]=g+x,r[b]=A-D,t[b]=g-x}}if(e){let i=1/n;for(let s=0;s<n;s++)r[s]=r[s]*i,t[s]=t[s]*i}}function m1(r,t,e){let n=r.length,o=1;for(;o<2*n-1;)o*=2;let a=e?1:-1,u=new Float64Array(n),i=new Float64Array(n);for(let m=0;m<n;m++){let p=a*Math.PI*m*m/n;u[m]=Math.cos(p),i[m]=Math.sin(p)}let s=new Float64Array(o),c=new Float64Array(o);for(let m=0;m<n;m++){let p=u[m],y=i[m];s[m]=r[m]*p-t[m]*y,c[m]=t[m]*p+r[m]*y}let l=new Float64Array(o),f=new Float64Array(o);l[0]=u[0],f[0]=-i[0];for(let m=1;m<n;m++)l[m]=u[m],f[m]=-i[m],l[o-m]=u[m],f[o-m]=-i[m];Is(s,c,!1),Is(l,f,!1);for(let m=0;m<o;m++){let p=s[m],y=c[m],d=l[m],b=f[m];s[m]=p*d-y*b,c[m]=p*b+y*d}Is(s,c,!0);for(let m=0;m<n;m++){let p=s[m],y=c[m],d=u[m],b=i[m];r[m]=p*d-y*b,t[m]=y*d+p*b}if(e)for(let m=0;m<n;m++)r[m]=r[m]/n,t[m]=t[m]/n}function vt(r,t,e=-1,n="backward"){return Ft(r,t!==void 0?[t]:void 0,[e],n,!1)}function xo(r,t,e=-1,n="backward"){return Ft(r,t!==void 0?[t]:void 0,[e],n,!0)}function yN(r,t,e=[-2,-1],n="backward"){return Ft(r,t,e,n,!1)}function dN(r,t,e=[-2,-1],n="backward"){return Ft(r,t,e,n,!0)}function bN(r,t,e,n="backward"){return Ft(r,t,e,n,!1)}function AN(r,t,e,n="backward"){return Ft(r,t,e,n,!0)}function Ft(r,t,e,n="backward",o=!1){let a=Array.from(r.shape),u=a.length;if(r.size===0)return S.zeros(a,"complex128");if(u===0){let l=S.zeros([1],"complex128"),f=r.iget(0),m=f instanceof U?f.re:Number(f),p=f instanceof U?f.im:0,y=l.data;return y[0]=m,y[1]=p,S.fromData(l.data,[],"complex128")}let i;if(e===void 0)if(t===void 0)i=Array.from({length:u},(l,f)=>f);else{i=[];for(let l=0;l<t.length;l++)i.push(u-t.length+l)}else i=e.map(l=>l<0?u+l:l);let s=[...a];if(t!==void 0)for(let l=0;l<t.length;l++){let f=i[l];s[f]=t[l]}let c=Co(r);t!==void 0&&(c=p1(c,s,i));for(let l of i)c=d1(c,l,o,n);return c}function Co(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(t==="complex128"||t==="complex64"){let i=S.zeros(e,"complex128"),s=i.data,c=r.data;for(let l=0;l<n*2;l++)s[l]=c[l];return i}let o=S.zeros(e,"complex128"),a=o.data,u=r.data;if(t==="float64"){let i=u;for(let s=0;s<n;s++)a[s*2]=i[s]}else if(t==="float32"){let i=u;for(let s=0;s<n;s++)a[s*2]=i[s]}else if(t==="int32"){let i=u;for(let s=0;s<n;s++)a[s*2]=i[s]}else if(t==="int16"){let i=u;for(let s=0;s<n;s++)a[s*2]=i[s]}else if(t==="int8"){let i=u;for(let s=0;s<n;s++)a[s*2]=i[s]}else if(t==="uint32"){let i=u;for(let s=0;s<n;s++)a[s*2]=i[s]}else if(t==="uint16"){let i=u;for(let s=0;s<n;s++)a[s*2]=i[s]}else if(t==="uint8"){let i=u;for(let s=0;s<n;s++)a[s*2]=i[s]}else if(t==="int64"||t==="uint64"){let i=u;for(let s=0;s<n;s++)a[s*2]=Number(i[s])}else for(let i=0;i<n;i++)a[i*2]=Number(u[i]);return o}function p1(r,t,e){let n=Array.from(r.shape),o=r;for(let a of e){let u=n[a],i=t[a];u!==i&&(i>u?o=y1(o,a,i):o=Nl(o,a,i),n[a]=i)}return o}function y1(r,t,e){let n=Array.from(r.shape),o=n[t];n[t]=e;let a=S.zeros(n,"complex128"),u=a.data,i=r.data,s=n.slice(0,t).reduce((l,f)=>l*f,1),c=n.slice(t+1).reduce((l,f)=>l*f,1);for(let l=0;l<s;l++)for(let f=0;f<o;f++)for(let m=0;m<c;m++){let p=(l*o+f)*c+m,y=(l*e+f)*c+m;u[y*2]=i[p*2],u[y*2+1]=i[p*2+1]}return a}function Nl(r,t,e){let n=Array.from(r.shape),o=n[t];n[t]=e;let a=S.zeros(n,"complex128"),u=a.data,i=r.data,s=n.slice(0,t).reduce((l,f)=>l*f,1),c=n.slice(t+1).reduce((l,f)=>l*f,1);for(let l=0;l<s;l++)for(let f=0;f<e;f++)for(let m=0;m<c;m++){let p=(l*o+f)*c+m,y=(l*e+f)*c+m;u[y*2]=i[p*2],u[y*2+1]=i[p*2+1]}return a}function d1(r,t,e,n){let o=Array.from(r.shape),a=o[t];if(a===0)return r;let u=S.zeros(o,"complex128"),i=u.data,s=r.data,c=o.slice(0,t).reduce((p,y)=>p*y,1),l=o.slice(t+1).reduce((p,y)=>p*y,1),f=new Float64Array(a),m=new Float64Array(a);for(let p=0;p<c;p++)for(let y=0;y<l;y++){for(let d=0;d<a;d++){let b=(p*a+d)*l+y;f[d]=s[b*2],m[d]=s[b*2+1]}if(l1(f,m,e),n==="ortho"){let d=1/Math.sqrt(a);if(e){let b=Math.sqrt(a);for(let A=0;A<a;A++)f[A]=f[A]*b,m[A]=m[A]*b}else for(let b=0;b<a;b++)f[b]=f[b]*d,m[b]=m[b]*d}else if(n==="forward"&&!e){let d=1/a;for(let b=0;b<a;b++)f[b]=f[b]*d,m[b]=m[b]*d}else if(!(n==="backward"&&e)){if(n==="forward"&&e)for(let d=0;d<a;d++)f[d]=f[d]*a,m[d]=m[d]*a}for(let d=0;d<a;d++){let b=(p*a+d)*l+y;i[b*2]=f[d],i[b*2+1]=m[d]}}return u}function _s(r,t,e=-1,n="backward"){let o=Array.from(r.shape),a=o.length,u=e<0?a+e:e,i=t??o[u],s=vt(r,i,e,n),c=Math.floor(i/2)+1;return Nl(s,u,c)}function So(r,t,e=-1,n="backward"){let o=Array.from(r.shape),a=o.length,u=e<0?a+e:e,i=o[u],s=t??(i-1)*2,c=[...o];c[u]=s;let l=S.zeros(c,"complex128"),f=l.data,m=Co(r).data,p=o.slice(0,u).reduce((b,A)=>b*A,1),y=o.slice(u+1).reduce((b,A)=>b*A,1);for(let b=0;b<p;b++)for(let A=0;A<y;A++){for(let g=0;g<i;g++){let h=(b*i+g)*y+A,N=(b*s+g)*y+A;f[N*2]=m[h*2],f[N*2+1]=m[h*2+1]}for(let g=i;g<s;g++){let h=s-g,N=(b*i+h)*y+A,D=(b*s+g)*y+A;f[D*2]=m[N*2],f[D*2+1]=-m[N*2+1]}}let d=xo(l,s,e,n);return zs(d)}function gN(r,t,e=[-2,-1],n="backward"){let a=Array.from(r.shape).length,u=e[0]<0?a+e[0]:e[0],i=e[1]<0?a+e[1]:e[1],s=vt(r,t?t[0]:void 0,u,n),c=Array.from(s.shape),l=t?t[1]:c[i];s=vt(s,l,i,n);let f=Math.floor(l/2)+1;return Nl(s,i,f)}function hN(r,t,e=[-2,-1],n="backward"){let o=Array.from(r.shape),a=o.length,u=e[0]<0?a+e[0]:e[0],i=e[1]<0?a+e[1]:e[1],s=o[i],c=t?t[1]:(s-1)*2,l=t?t[0]:o[u],f=So(r,c,i,n);return f=xo(f,l,u,n),zs(f)}function NN(r,t,e,n="backward"){let a=Array.from(r.shape).length,u;if(e===void 0?u=Array.from({length:a},(l,f)=>f):u=e.map(l=>l<0?a+l:l),u.length===0)return Co(r);let i=r;for(let l=0;l<u.length-1;l++){let f=u[l],m=t?t[l]:void 0;i=vt(i,m,f,n)}let s=u[u.length-1],c=t?t[u.length-1]:void 0;return _s(i,c,s,n)}function DN(r,t,e,n="backward"){let o=Array.from(r.shape),a=o.length,u;if(e===void 0?u=Array.from({length:a},(f,m)=>m):u=e.map(f=>f<0?a+f:f),u.length===0)return zs(Co(r));let i=u[u.length-1],s=o[i],c=t?[...t]:u.map((f,m)=>m===u.length-1?(s-1)*2:o[f]),l=So(r,c[u.length-1],i,n);for(let f=u.length-2;f>=0;f--){let m=u[f];l=xo(l,c[f],m,n)}return zs(l)}function xN(r,t,e=-1,n="backward"){let o=Array.from(r.shape),a=o.length,u=e<0?a+e:e,i=o[u],s=t??(i-1)*2,c=SN(Co(r)),l=So(c,s,e,n),f=l.data;for(let m=0;m<l.size;m++)f[m]=f[m]*s;return l}function CN(r,t,e=-1,n="backward"){let o=Array.from(r.shape),a=o.length,u=e<0?a+e:e,i=t??o[u],s=_s(r,i,e,n),c=SN(s),l=c.data;for(let f=0;f<c.size*2;f++)l[f]=l[f]/i;return c}function SN(r){let t=Array.from(r.shape),e=r.size,n=S.zeros(t,"complex128"),o=n.data,a=r.data;for(let u=0;u<e;u++)o[u*2]=a[u*2],o[u*2+1]=-a[u*2+1];return n}function zs(r){let t=Array.from(r.shape),e=r.size,n=S.zeros(t,"float64"),o=n.data,a=r.data;for(let u=0;u<e;u++)o[u]=a[u*2];return n}function wN(r,t=1){let e=S.zeros([r],"float64"),n=e.data,o=Math.floor((r-1)/2)+1;for(let a=0;a<o;a++)n[a]=a/(r*t);for(let a=o;a<r;a++)n[a]=(a-r)/(r*t);return e}function IN(r,t=1){let e=Math.floor(r/2)+1,n=S.zeros([e],"float64"),o=n.data;for(let a=0;a<e;a++)o[a]=a/(r*t);return n}function zN(r,t){let e=Array.from(r.shape),n=e.length,o;t===void 0?o=Array.from({length:n},(u,i)=>i):typeof t=="number"?o=[t<0?n+t:t]:o=t.map(u=>u<0?n+u:u);let a=e.map((u,i)=>o.includes(i)?Math.floor(e[i]/2):0);return MN(r,a)}function _N(r,t){let e=Array.from(r.shape),n=e.length,o;t===void 0?o=Array.from({length:n},(u,i)=>i):typeof t=="number"?o=[t<0?n+t:t]:o=t.map(u=>u<0?n+u:u);let a=e.map((u,i)=>o.includes(i)?-Math.floor(e[i]/2):0);return MN(r,a)}function MN(r,t){let e=Array.from(r.shape),n=r.dtype,o=r.size,a=S.zeros(e,n),u=n==="complex128"||n==="complex64",i=new Array(e.length);i[e.length-1]=1;for(let s=e.length-2;s>=0;s--)i[s]=i[s+1]*e[s+1];for(let s=0;s<o;s++){let c=new Array(e.length),l=s;for(let p=0;p<e.length;p++)c[p]=Math.floor(l/i[p]),l=l%i[p];let f=c.map((p,y)=>{let d=p+t[y],b=e[y];return d=(d%b+b)%b,d}),m=0;for(let p=0;p<e.length;p++)m+=f[p]*i[p];if(u){let p=r.data,y=a.data;y[m*2]=p[s*2],y[m*2+1]=p[s*2+1]}else{let p=r.iget(s);a.iset(m,p)}}return a}function Lr(r){return er.fromStorage(r.storage)}function A1(r){return Lr(Ds(r))}var g1=Rc;function h1(r,t){return Lr(qc(r,t))}async function N1(r,t={}){let e=await Pc(r,t),n=new Map;for(let[o,a]of e.arrays)n.set(o,Lr(a));return{arrays:n,skipped:e.skipped,errors:e.errors}}function D1(r,t={}){let e=jc(r,t),n=new Map;for(let[o,a]of e.arrays)n.set(o,Lr(a));return{arrays:n,skipped:e.skipped,errors:e.errors}}async function x1(r,t={}){let e=await gd(r,t),n={};for(let[o,a]of Object.entries(e))n[o]=Lr(a);return n}function C1(r,t={}){let e=hd(r,t),n={};for(let[o,a]of Object.entries(e))n[o]=Lr(a);return n}function S1(r,t={}){return Lr(Lc(r,t))}function w1(r,t={}){return Lr(_d(r,t))}function I1(r,t,e="float64"){return Lr(Md(r,t,e))}function H(r){return r&&typeof r=="object"&&"_data"in r&&"_shape"in r?er.fromStorage(r):r}var z1={seed:b0,get_state:A0,set_state:g0,get_bit_generator:k0,set_bit_generator:R0,default_rng:d0,Generator:Ao,random:r=>H(No(r)),rand:(...r)=>H(h0(...r)),randn:(...r)=>H(N0(...r)),randint:(r,t,e,n)=>H(gl(r,t,e,n)),random_sample:r=>H(B0(r)),ranf:r=>H(T0(r)),sample:r=>H(E0(r)),random_integers:(r,t,e)=>H(O0(r,t,e)),bytes:U0,uniform:(r,t,e)=>H(D0(r,t,e)),normal:(r,t,e)=>H(x0(r,t,e)),standard_normal:r=>H(C0(r)),exponential:(r,t)=>H(hl(r,t)),standard_exponential:r=>H(q0(r)),gamma:(r,t,e)=>H(ws(r,t,e)),standard_gamma:(r,t)=>H(V0(r,t)),beta:(r,t,e)=>H(L0(r,t,e)),chisquare:(r,t)=>H(tN(r,t)),noncentral_chisquare:(r,t,e)=>H(eN(r,t,e)),f:(r,t,e)=>H(nN(r,t,e)),noncentral_f:(r,t,e,n)=>H(oN(r,t,e,n)),standard_cauchy:r=>H(P0(r)),standard_t:(r,t)=>H(j0(r,t)),laplace:(r,t,e)=>H(W0(r,t,e)),logistic:(r,t,e)=>H(G0(r,t,e)),lognormal:(r,t,e)=>H(Y0(r,t,e)),gumbel:(r,t,e)=>H(Z0(r,t,e)),pareto:(r,t)=>H(X0(r,t)),power:(r,t)=>H(J0(r,t)),rayleigh:(r,t)=>H(K0(r,t)),triangular:(r,t,e,n)=>H(Q0(r,t,e,n)),wald:(r,t,e)=>H(H0(r,t,e)),weibull:(r,t)=>H(rN(r,t)),poisson:(r,t)=>H(S0(r,t)),binomial:(r,t,e)=>H(w0(r,t,e)),geometric:(r,t)=>H(aN(r,t)),hypergeometric:(r,t,e,n)=>H(sN(r,t,e,n)),logseries:(r,t)=>H(iN(r,t)),negative_binomial:(r,t,e)=>H(uN(r,t,e)),zipf:(r,t)=>H(cN(r,t)),multinomial:(r,t,e)=>H(lN(r,t,e)),multivariate_normal:(r,t,e,n,o)=>H(fN(r,t,e,n,o)),dirichlet:(r,t)=>H(mN(r,t)),vonmises:(r,t,e)=>H(pN(r,t,e)),choice:(r,t,e,n)=>H(z0(r,t,e,n)),permutation:r=>H(M0(r)),shuffle:F0};function fr(r){return r instanceof er||r instanceof P?r.storage:r}var _1={fft:(r,t,e,n)=>er.fromStorage(vt(fr(r),t,e,n)),ifft:(r,t,e,n)=>er.fromStorage(xo(fr(r),t,e,n)),fft2:(r,t,e,n)=>er.fromStorage(yN(fr(r),t,e,n)),ifft2:(r,t,e,n)=>er.fromStorage(dN(fr(r),t,e,n)),fftn:(r,t,e,n)=>er.fromStorage(bN(fr(r),t,e,n)),ifftn:(r,t,e,n)=>er.fromStorage(AN(fr(r),t,e,n)),rfft:(r,t,e,n)=>er.fromStorage(_s(fr(r),t,e,n)),irfft:(r,t,e,n)=>er.fromStorage(So(fr(r),t,e,n)),rfft2:(r,t,e,n)=>er.fromStorage(gN(fr(r),t,e,n)),irfft2:(r,t,e,n)=>er.fromStorage(hN(fr(r),t,e,n)),rfftn:(r,t,e,n)=>er.fromStorage(NN(fr(r),t,e,n)),irfftn:(r,t,e,n)=>er.fromStorage(DN(fr(r),t,e,n)),hfft:(r,t,e,n)=>er.fromStorage(xN(fr(r),t,e,n)),ihfft:(r,t,e,n)=>er.fromStorage(CN(fr(r),t,e,n)),fftfreq:(r,t)=>er.fromStorage(wN(r,t)),rfftfreq:(r,t)=>er.fromStorage(IN(r,t)),fftshift:(r,t)=>er.fromStorage(zN(fr(r),t)),ifftshift:(r,t)=>er.fromStorage(_N(fr(r),t))},M1="0.13.1";0&&(module.exports={Complex,DTYPE_TO_DESCR,InvalidNpyError,NDArray,NDArrayCore,SUPPORTED_DTYPES,UnsupportedDTypeError,__version__,abs,absolute,acos,acosh,add,all,allclose,amax,amin,angle,any,append,apply_along_axis,apply_over_axes,arange,arccos,arccosh,arcsin,arcsinh,arctan,arctan2,arctanh,argmax,argmin,argpartition,argsort,argwhere,around,array,array2string,array_equal,array_equiv,array_repr,array_split,array_str,asanyarray,asarray,asarray_chkfinite,ascontiguousarray,asfortranarray,asin,asinh,atan,atan2,atanh,atleast_1d,atleast_2d,atleast_3d,average,base_repr,binary_repr,bincount,bindex,bitwise_and,bitwise_count,bitwise_invert,bitwise_left_shift,bitwise_not,bitwise_or,bitwise_right_shift,bitwise_xor,block,broadcast_arrays,broadcast_shapes,broadcast_to,byteswap,can_cast,cbrt,ceil,choose,clip,column_stack,common_type,compress,concat,concatenate,conj,conjugate,convolve,copy,copysign,copyto,corrcoef,correlate,cos,cosh,count_nonzero,cov,cross,cumprod,cumsum,cumulative_prod,cumulative_sum,deg2rad,degrees,delete:null,delete_,diag,diag_indices,diag_indices_from,diagflat,diagonal,diff,digitize,divide,divmod,dot,dsplit,dstack,ediff1d,einsum,einsum_path,empty,empty_like,equal,exp,exp2,expand_dims,expm1,extract,eye,fabs,fft,fill,fill_diagonal,fix,flatnonzero,flatten,flip,fliplr,flipud,float_power,floor,floor_divide,fmax,fmin,fmod,format_float_positional,format_float_scientific,frexp,frombuffer,fromfile,fromfunction,fromiter,fromregex,fromstring,full,full_like,gcd,genfromtxt,geomspace,get_printoptions,geterr,gradient,greater,greater_equal,heaviside,histogram,histogram2d,histogram_bin_edges,histogramdd,hsplit,hstack,hypot,i0,identity,iindex,imag,in1d,indices,inner,insert,interp,intersect1d,invert,isclose,iscomplex,iscomplexobj,isdtype,isfinite,isfortran,isin,isinf,isnan,isnat,isneginf,isposinf,isreal,isrealobj,isscalar,issubdtype,item,iterable,ix_,kron,lcm,ldexp,left_shift,less,less_equal,lexsort,linalg,linspace,loadNpz,loadNpzSync,log,log10,log1p,log2,logaddexp,logaddexp2,logical_and,logical_not,logical_or,logical_xor,logspace,mask_indices,matmul,matrix_transpose,matvec,max,maximum,may_share_memory,mean,median,meshgrid,min,min_scalar_type,minimum,mintypecode,mod,modf,moveaxis,multiply,nan_to_num,nanargmax,nanargmin,nancumprod,nancumsum,nanmax,nanmean,nanmedian,nanmin,nanpercentile,nanprod,nanquantile,nanstd,nansum,nanvar,ndim,negative,nextafter,nonzero,not_equal,ones,ones_like,outer,packbits,pad,parseNpy,parseNpyData,parseNpyHeader,parseNpz,parseNpzSync,parseTxt,partition,percentile,permute_dims,place,poly,polyadd,polyder,polydiv,polyfit,polyint,polymul,polysub,polyval,positive,pow,power,printoptions,prod,promote_types,ptp,put,put_along_axis,putmask,quantile,rad2deg,radians,random,ravel,ravel_multi_index,real,real_if_close,reciprocal,remainder,repeat,require,reshape,resize,result_type,right_shift,rint,roll,rollaxis,roots,rot90,round,round_,row_stack,searchsorted,select,serializeNpy,serializeNpz,serializeNpzSync,serializeTxt,set_printoptions,setdiff1d,seterr,setxor1d,shape,shares_memory,sign,signbit,sin,sinc,sinh,size,sort,sort_complex,spacing,split,sqrt,square,squeeze,stack,std,subtract,sum,swapaxes,take,take_along_axis,tan,tanh,tensordot,tile,tobytes,tofile,tolist,trace,transpose,trapezoid,tri,tril,tril_indices,tril_indices_from,trim_zeros,triu,triu_indices,triu_indices_from,true_divide,trunc,typename,union1d,unique,unique_all,unique_counts,unique_inverse,unique_values,unpackbits,unravel_index,unstack,unwrap,vander,var:null,variance,vdot,vecdot,vecmat,view,vsplit,vstack,where,zeros,zeros_like});
|
|
4
|
+
`.repeat(Math.max(0,f))+u;return"["+C.join(m)+"]"}}function _i(A,r=null,I=null,e=null,t=" ",o="",n="",g=null,i=null,Q=null,a=null){let B={...wA,linewidth:r??wA.linewidth,precision:I??wA.precision,suppress:e??wA.suppress,separator:t,prefix:o,suffix:n,threshold:g??wA.threshold,edgeitems:i??wA.edgeitems,floatmode:Q??wA.floatmode,sign:a??wA.sign};if(A.ndim===0){let u=A.iget(0);return Hi(u,A.dtype,B)}let s=t4(A,B),C=B.prefix.length,E=Li(A,new Array(A.ndim).fill(0),0,B,s,C);return B.prefix+E+B.suffix}function nm(A,r=null,I=null,e=null){let o="array("+_i(A,r,I,e,", ");return A.dtype!=="float64"&&(o+=`, dtype='${A.dtype}'`),o+=")",o}function Yi(A,r=null,I=null,e=null){return _i(A,r,I,e)}var im=2**63,gm={int8:-1,int16:-1,uint8:255,uint16:65535},n4={int8:0,int16:0,uint8:0,uint16:0},Qm={int32:[-2147483648,2147483647],uint32:[0,4294967295]};function i4(A,r){if(isNaN(A))return 0;if(r in gm)return A>=im||A===1/0?gm[r]:A<=-im||A===-1/0?n4[r]:Math.trunc(A);if(r in Qm){let[I,e]=Qm[r];return A>=e||A===1/0?e:A<=I||A===-1/0?I:Math.trunc(A)}return Math.trunc(A)}var AA=class A{static{this._proxyHandler={get(r,I,e){if(typeof I=="string"){let t=parseInt(I,10);if(!isNaN(t)&&String(t)===I){let o=r._storage.ndim>0?r._storage.shape[0]:1,n=t<0?o+t:t;return r._storage.ndim<=1?r._storage.iget(n):r.slice(I)}}return Reflect.get(r,I,e)},set(r,I,e,t){if(typeof I=="string"){let o=parseInt(I,10);if(!isNaN(o)&&String(o)===I){let n=r._storage.shape[0],g=o<0?n+o:o;if(r._storage.ndim===1)return r.set([g],e),!0;let i=r.slice(String(o)),Q=i.size;if(typeof e=="number"||typeof e=="bigint")i.fill(e);else if(e instanceof T)for(let a=0;a<Q;a++)i._storage.iset(a,e);else if(e instanceof A){if(e.size!==Q)throw new Error(`Cannot assign array of size ${e.size} into slice of size ${Q}`);for(let a=0;a<Q;a++)i._storage.iset(a,e._storage.iget(a))}else if(Array.isArray(e)){let a=e.flat(1/0);if(a.length!==Q)throw new Error(`Cannot assign array of length ${a.length} into slice of size ${Q}`);for(let B=0;B<Q;B++)i._storage.iset(B,a[B])}else throw new Error(`Cannot assign value of type ${typeof e} via bracket operator`);return!0}}return Reflect.set(r,I,e,t)}}}constructor(r,I){return this._storage=r,this._base=I,new Proxy(this,A._proxyHandler)}get storage(){return this._storage}static fromStorage(r,I){return new A(r,I)}get shape(){return this._storage.shape}get ndim(){return this._storage.ndim}get size(){return this._storage.size}get dtype(){return this._storage.dtype}get data(){return this._storage.data}get strides(){return this._storage.strides}get flags(){return{C_CONTIGUOUS:this._storage.isCContiguous,F_CONTIGUOUS:this._storage.isFContiguous,OWNDATA:this._base===void 0}}get base(){return this._base??null}get itemsize(){return Hr(this._storage.dtype)}get nbytes(){return this.size*this.itemsize}fill(r){let I=this._storage.dtype,e=this.size;if(L(I)){let t=typeof r=="bigint"?r:BigInt(Math.round(Number(r)));for(let o=0;o<e;o++)this._storage.iset(o,t)}else if(I==="bool"){let t=r?1:0;for(let o=0;o<e;o++)this._storage.iset(o,t)}else{let t=Number(r);for(let o=0;o<e;o++)this._storage.iset(o,t)}}*[Symbol.iterator](){if(this.ndim===0)yield this._storage.iget(0);else if(this.ndim===1)for(let r=0;r<this.shape[0];r++)yield this._storage.iget(r);else for(let r=0;r<this.shape[0];r++)yield this.slice(String(r))}get(r){if(r.length!==this.ndim)throw new Error(`Index has ${r.length} dimensions, but array has ${this.ndim} dimensions`);let I=r.map((e,t)=>{let o=e;if(o<0&&(o=this.shape[t]+o),o<0||o>=this.shape[t])throw new Error(`Index ${e} is out of bounds for axis ${t} with size ${this.shape[t]}`);return o});return this._storage.get(...I)}set(r,I){if(r.length!==this.ndim)throw new Error(`Index has ${r.length} dimensions, but array has ${this.ndim} dimensions`);let e=r.map((o,n)=>{let g=o;if(g<0&&(g=this.shape[n]+g),g<0||g>=this.shape[n])throw new Error(`Index ${o} is out of bounds for axis ${n} with size ${this.shape[n]}`);return g}),t=this.dtype;if(k(t))this._storage.set(e,I);else if(L(t)){let o=I instanceof T?I.re:Number(I),n=typeof I=="bigint"?I:BigInt(Math.round(o));this._storage.set(e,n)}else if(t==="bool"){let n=(I instanceof T?I.re:Number(I))?1:0;this._storage.set(e,n)}else{let o=I instanceof T?I.re:Number(I);this._storage.set(e,o)}}iget(r){return this._storage.iget(r)}iset(r,I){this._storage.iset(r,I)}copy(){return new A(this._storage.copy())}astype(r,I=!0){let e=this.dtype;if(e===r&&!I)return this;if(e===r&&I)return this.copy();let t=Array.from(this.shape),o=this.size,n=nA(r);if(!n)throw new Error(`Cannot convert to dtype ${r}`);let g=k(e),i=k(r);if(g&&i){let s=new n(o*2),C=this.data,E=s;for(let f=0;f<o*2;f++)E[f]=C[f];let u=d.fromData(s,t,r);return new A(u)}if(!g&&i){let s=new n(o*2),C=s;for(let u=0;u<o;u++)C[u*2]=Number(this.data[u]),C[u*2+1]=0;let E=d.fromData(s,t,r);return new A(E)}if(g&&!i){let s=new n(o),C=this.data;if(L(r))for(let u=0;u<o;u++)s[u]=BigInt(Math.trunc(C[u*2]));else for(let u=0;u<o;u++)s[u]=C[u*2];let E=d.fromData(s,t,r);return new A(E)}let Q=new n(o),a=this.data;if(L(e)&&!L(r)){let s=a;if(r==="bool")for(let C=0;C<o;C++)Q[C]=s[C]!==BigInt(0)?1:0;else for(let C=0;C<o;C++)Q[C]=Number(s[C])}else if(!L(e)&&L(r)){let s=a;if(fA(e)){let E=r==="int64",u=BigInt(E?"9223372036854775807":"18446744073709551615"),f=E?BigInt("-9223372036854775808"):0n;for(let m=0;m<o;m++){let c=Number(s[m]);isNaN(c)?Q[m]=0n:!isFinite(c)||c>=Number(u)?Q[m]=c<0?f:u:c<=Number(f)?Q[m]=f:Q[m]=BigInt(Math.trunc(c))}}else for(let E=0;E<o;E++)Q[E]=BigInt(Math.round(Number(s[E])))}else if(r==="bool"){let s=a;for(let C=0;C<o;C++)Q[C]=s[C]!==0?1:0}else if(e==="bool"&&!L(r)){let s=a;for(let C=0;C<o;C++)Q[C]=s[C]}else if(!L(e)&&!L(r)){let s=a;if(fA(e)&&!fA(r))for(let E=0;E<o;E++)Q[E]=i4(s[E],r);else for(let E=0;E<o;E++)Q[E]=s[E]}else{let s=a;for(let C=0;C<o;C++)Q[C]=s[C]}let B=d.fromData(Q,t,r);return new A(B)}slice(...r){let I=Gf(this._storage,...r);if(I===this._storage)return this;let e=this._base??this;return new this.constructor(I,e)}toString(){return Yi(this._storage)}toArray(){if(this.ndim===0)return this._storage.iget(0);let r=this.shape,I=r.length,e=(t,o)=>{if(o===I)return this._storage.get(...t);let n=[];for(let g=0;g<r[o];g++)t[o]=g,n.push(e(t,o+1));return n};return e(new Array(I),0)}tolist(){return this.toArray()}tobytes(){if(this._storage.isCContiguous){let e=this._storage.data,t=e.BYTES_PER_ELEMENT,o=this._storage.offset*t,n=this.size*t;return e.buffer.slice(o,o+n)}let I=this.copy()._storage.data;return I.buffer.slice(0,this.size*I.BYTES_PER_ELEMENT)}item(...r){if(r.length===0){if(this.size!==1)throw new Error("can only convert an array of size 1 to a Python scalar");return this._storage.iget(0)}if(r.length===1){let I=r[0];if(I<0||I>=this.size)throw new Error(`index ${I} is out of bounds for size ${this.size}`);return this._storage.iget(I)}return this.get(r)}};function G(A){return A instanceof AA||A&&typeof A=="object"&&"storage"in A&&A.storage instanceof d?A.storage:A}function R(A,r){return AA.fromStorage(A,r)}function $A(A,r){let I=r.base??r;return AA.fromStorage(A,I)}function dr(A){return A.map(r=>R(r))}function bI(A,r){return A.map(I=>$A(I,r))}function vi(A){return[R(A[0]),R(A[1])]}function Pa(A){return new AA(A)}function g4(A){return!!(A instanceof AA||A&&typeof A=="object"&&"storage"in A&&A.storage instanceof d)}function er(A,r=BA){let I=d.zeros(A,r);return new AA(I)}function Xi(A,r=BA){let I=d.ones(A,r);return new AA(I)}function Ti(A,r=BA){return er(A,r)}function Pi(A,r,I){let e=I;e||(typeof r=="bigint"?e="int64":typeof r=="boolean"?e="bool":Number.isInteger(r)?e="int32":e=BA);let t=nA(e);if(!t)throw new Error(`Cannot create full array with dtype ${e}`);let o=A.reduce((i,Q)=>i*Q,1),n=new t(o);if(L(e)){let i=typeof r=="bigint"?r:BigInt(Math.round(Number(r)));n.fill(i)}else e==="bool"?n.fill(r?1:0):n.fill(Number(r));let g=d.fromData(n,A,e);return new AA(g)}function Q4(A){let r=[],I=A;for(;Array.isArray(I);)r.push(I.length),I=I[0];return r}function am(A){return typeof A=="bigint"?!0:Array.isArray(A)?A.some(r=>am(r)):!1}function Bm(A){return Cf(A)?!0:Array.isArray(A)?A.some(r=>Bm(r)):!1}function a4(A){let r=[];function I(e){Array.isArray(e)?e.forEach(t=>I(t)):r.push(e)}return I(A),r}function QA(A,r){if(A instanceof AA)return!r||A.dtype===r?A.copy():A.astype(r);let I=am(A),e=Bm(A),t=Q4(A),o=t.reduce((C,E)=>C*E,1),n=r;n||(e?n="complex128":I?n="int64":n=BA);let g=k(n),i=nA(n);if(!i)throw new Error(`Cannot create array with dtype ${n}`);let Q=g?o*2:o,a=new i(Q),B=a4(A);if(L(n)){let C=a;for(let E=0;E<o;E++){let u=B[E];C[E]=typeof u=="bigint"?u:BigInt(Math.round(Number(u)))}}else if(n==="bool"){let C=a;for(let E=0;E<o;E++)C[E]=B[E]?1:0}else if(g){let C=a;for(let E=0;E<o;E++){let u=B[E],f,m;u instanceof T?(f=u.re,m=u.im):typeof u=="object"&&u!==null&&"re"in u?(f=u.re,m=u.im??0):(f=Number(u),m=0),C[E*2]=f,C[E*2+1]=m}}else{let C=a;for(let E=0;E<o;E++){let u=B[E];C[E]=Number(u)}}let s=d.fromData(a,t,n);return new AA(s)}function Ka(A,r,I=1,e=BA){let t=A,o=r;if(r===void 0&&(t=0,o=A),o===void 0)throw new Error("stop is required");let n=Math.max(0,Math.ceil((o-t)/I)),g=nA(e);if(!g)throw new Error(`Cannot create arange array with dtype ${e}`);let i=new g(n);if(L(e))for(let a=0;a<n;a++)i[a]=BigInt(Math.round(t+a*I));else if(e==="bool")for(let a=0;a<n;a++)i[a]=t+a*I!==0?1:0;else for(let a=0;a<n;a++)i[a]=t+a*I;let Q=d.fromData(i,[n],e);return new AA(Q)}function Va(A,r,I=50,e=BA){if(I<0)throw new Error("num must be non-negative");if(I===0)return QA([],e);if(I===1)return QA([A],e);let t=nA(e);if(!t)throw new Error(`Cannot create linspace array with dtype ${e}`);let o=new t(I),n=(r-A)/(I-1);if(L(e))for(let i=0;i<I;i++)o[i]=BigInt(Math.round(A+i*n));else if(e==="bool")for(let i=0;i<I;i++)o[i]=A+i*n!==0?1:0;else for(let i=0;i<I;i++)o[i]=A+i*n;let g=d.fromData(o,[I],e);return new AA(g)}function Wa(A,r,I=50,e=10,t=BA){if(I<0)throw new Error("num must be non-negative");if(I===0)return QA([],t);if(I===1)return QA([Math.pow(e,A)],t);let o=nA(t);if(!o)throw new Error(`Cannot create logspace array with dtype ${t}`);let n=new o(I),g=(r-A)/(I-1);if(L(t))for(let Q=0;Q<I;Q++){let a=A+Q*g;n[Q]=BigInt(Math.round(Math.pow(e,a)))}else if(t==="bool")for(let Q=0;Q<I;Q++){let a=A+Q*g;n[Q]=Math.pow(e,a)!==0?1:0}else for(let Q=0;Q<I;Q++){let a=A+Q*g;n[Q]=Math.pow(e,a)}let i=d.fromData(n,[I],t);return new AA(i)}function Oa(A,r,I=50,e=BA){if(I<0)throw new Error("num must be non-negative");if(A===0||r===0)throw new Error("Geometric sequence cannot include zero");if(I===0)return QA([],e);if(I===1)return QA([A],e);let t=Math.sign(A),o=Math.sign(r);if(t!==o)throw new Error("Geometric sequence cannot contain both positive and negative values");let n=nA(e);if(!n)throw new Error(`Cannot create geomspace array with dtype ${e}`);let g=new n(I),i=Math.log(Math.abs(A)),a=(Math.log(Math.abs(r))-i)/(I-1);if(L(e))for(let s=0;s<I;s++){let C=t*Math.exp(i+s*a);g[s]=BigInt(Math.round(C))}else if(e==="bool")for(let s=0;s<I;s++){let C=t*Math.exp(i+s*a);g[s]=C!==0?1:0}else for(let s=0;s<I;s++){let C=t*Math.exp(i+s*a);g[s]=C}let B=d.fromData(g,[I],e);return new AA(B)}function Ki(A,r,I=0,e=BA){let t=r??A,o=er([A,t],e),n=o.data;if(L(e)){let g=n;for(let i=0;i<A;i++){let Q=i+I;Q>=0&&Q<t&&(g[i*t+Q]=BigInt(1))}}else{let g=n;for(let i=0;i<A;i++){let Q=i+I;Q>=0&&Q<t&&(g[i*t+Q]=1)}}return o}function Za(A,r=BA){return Ki(A,A,0,r)}function QI(A,r){return g4(A)?!r||A.dtype===r?A:A.astype(r):QA(A,r)}function za(A,r){return er(Array.from(A.shape),r??A.dtype)}function ja(A,r){return Xi(Array.from(A.shape),r??A.dtype)}function $a(A,r){return Ti(Array.from(A.shape),r??A.dtype)}function AB(A,r,I){return Pi(Array.from(A.shape),r,I??A.dtype)}function rB(A){return A.copy()}function IB(A,r){return QI(A,r)}function eB(A,r){return QI(A,r).copy()}function tB(A,r){return QI(A,r).copy()}function oB(A,r){let I=QI(A,r),e=I.data;if(e instanceof Float64Array){let t=new Uint32Array(e.buffer,e.byteOffset,e.length*2),o=2146435072;for(let n=1;n<t.length;n+=2)if((t[n]&o)===o)throw new Error("array must not contain infs or NaNs")}else if(e instanceof Float32Array){let t=new Uint32Array(e.buffer,e.byteOffset,e.length),o=2139095040;for(let n=0;n<t.length;n++)if((t[n]&o)===o)throw new Error("array must not contain infs or NaNs")}return I}function nB(A,r,I){let e=A;return r&&r!==A.dtype&&(e=e.astype(r)),e}function B4(A){let r=A.data,I=d.fromData(r.slice(),[r.length],A.dtype);return Pa(I)}function Vi(A,r=0){let I=A.shape,e=A.data,t=A.dtype;if(I.length===1){let o=I[0],n=o+Math.abs(r),g=er([n,n],t),i=g.data;for(let Q=0;Q<o;Q++){let a=r>=0?Q:Q-r,B=r>=0?Q+r:Q;a>=0&&a<n&&B>=0&&B<n&&(i[a*n+B]=e[Q])}return g}else if(I.length===2){let o=I[0],n=I[1],g=Math.min(r>=0?Math.min(o,n-r):Math.min(o+r,n),Math.max(0,r>=0?n-r:o+r));if(g<=0)return QA([],t);let i=[];for(let Q=0;Q<g;Q++){let a=r>=0?Q:Q-r,B=r>=0?Q+r:Q;a>=0&&a<o&&B>=0&&B<n&&i.push(e[a*n+B])}return QA(i,t)}throw new Error("Input must be 1-D or 2-D")}function iB(A,r=0){let I=B4(A);return Vi(I,r)}function gB(A,r,I=0,e=BA){let t=r??A,o=er([A,t],e),n=o.data;for(let g=0;g<A;g++)for(let i=0;i<=Math.min(g+I,t-1);i++)i>=0&&(n[g*t+i]=1);return o}function QB(A,r=0){let I=A.shape;if(I.length<2)throw new Error("Input must be at least 2-D");let e=A.copy(),t=e.data,o=I[I.length-2],n=I[I.length-1],g=I.slice(0,-2).reduce((a,B)=>a*B,1),i=o*n,Q=t instanceof BigInt64Array||t instanceof BigUint64Array;for(let a=0;a<g;a++){let B=a*i;for(let s=0;s<o;s++){let C=B+s*n+Math.max(0,Math.min(s+r+1,n)),E=B+s*n+n;C<E&&t.fill(Q?0n:0,C,E)}}return e}function aB(A,r=0){let I=A.shape;if(I.length<2)throw new Error("Input must be at least 2-D");let e=A.copy(),t=e.data,o=I[I.length-2],n=I[I.length-1],g=I.slice(0,-2).reduce((a,B)=>a*B,1),i=o*n,Q=t instanceof BigInt64Array||t instanceof BigUint64Array;for(let a=0;a<g;a++){let B=a*i;for(let s=0;s<o;s++){let C=B+s*n+Math.max(0,Math.min(s+r,n)),E=B+s*n;E<C&&t.fill(Q?0n:0,E,C)}}return e}function BB(A,r,I=!1){let e=A.size,t=r??e,o=A.data,n=er([e,t],A.dtype),g=n.data;for(let i=0;i<e;i++){let Q=o[i];for(let a=0;a<t;a++){let B=I?a:t-1-a;g[i*t+a]=Math.pow(Q,B)}}return n}function sB(A,r=BA,I=-1,e=0){let t=nA(r);if(!t)throw new Error(`Unsupported dtype: ${r}`);let o;if(A instanceof ArrayBuffer){let g=e,i=I<0?(A.byteLength-g)/t.BYTES_PER_ELEMENT:I;o=new t(A,g,i)}else{let g=e,i=I<0?A.length:e+I,Q=Array.from(A.slice(g,i));o=new t(Q.length);for(let a=0;a<Q.length;a++)o[a]=Q[a]}let n=d.fromData(o,[o.length],r);return Pa(n)}function CB(A,r,I=BA){let e=r.reduce((Q,a)=>Q*a,1),t=nA(I);if(!t)throw new Error(`Unsupported dtype: ${I}`);let o=new t(e),n=[],g=1;for(let Q=r.length-1;Q>=0;Q--)n.unshift(g),g*=r[Q];for(let Q=0;Q<e;Q++){let a=[],B=Q;for(let s=0;s<r.length;s++)a.push(Math.floor(B/n[s])),B=B%n[s];o[Q]=A(...a)}let i=d.fromData(o,r,I);return Pa(i)}function EB(A,r=BA,I=-1){let e=[],t=0;for(let o of A){if(I>=0&&t>=I)break;e.push(o),t++}return QA(e,r)}function uB(A,r=BA,I=-1,e){let t=e??/\s+/,n=A.split(t).filter(i=>i.trim()!=="").map(i=>parseFloat(i.trim())),g=I>=0?n.slice(0,I):n;return QA(g,r)}function cB(A,r=BA,I=-1,e=""){throw new Error("fromfile requires Node.js file system access")}function Yr(A,r){let I=A.length,e=r.length,t=Math.max(I,e),o=new Array(t);for(let n=0;n<t;n++){let g=n<t-I?1:A[n-(t-I)],i=n<t-e?1:r[n-(t-e)];if(g===i)o[n]=g;else if(g===1)o[n]=i;else if(i===1)o[n]=g;else throw new Error(`operands could not be broadcast together with shapes ${JSON.stringify(Array.from(A))} ${JSON.stringify(Array.from(r))}`)}return o}function s4(A,r,I){let e=A.length,t=I.length,o=new Array(t).fill(0);for(let n=0;n<e;n++){let g=t-e+n,i=A[n],Q=I[g];if(i===Q)o[g]=r[n];else if(i===1)o[g]=0;else throw new Error("Invalid broadcast")}return o}function Wi(A,r){let I=s4(A.shape,A.strides,r);return d.fromData(A.data,Array.from(r),A.dtype,I,A.offset)}function yA(A,r,I,e){let t=IA(A.dtype,r.dtype),o=A.shape,n=r.shape;if(o.length===n.length&&o.every((E,u)=>E===n[u])&&A.isCContiguous&&r.isCContiguous&&!L(A.dtype)&&!L(r.dtype)&&!L(t)){let E=A.size,u=d.zeros(Array.from(o),t),f=u.data,m=A.data,c=r.data,D=A.offset,y=r.offset;if(D===0&&y===0)for(let l=0;l<E;l++)f[l]=I(m[l],c[l]);else for(let l=0;l<E;l++)f[l]=I(m[D+l],c[y+l]);return u}let i=Yr(A.shape,r.shape),Q=Wi(A,i),a=Wi(r,i),B=d.zeros(i,t),s=B.data,C=B.size;if(L(t)){let E=s;for(let u=0;u<C;u++){let f=Q.iget(u),m=a.iget(u),c=f instanceof T?f.re:f,D=m instanceof T?m.re:m,y=typeof c=="bigint"?c:BigInt(Math.round(c)),l=typeof D=="bigint"?D:BigInt(Math.round(D));e==="add"?E[u]=y+l:e==="subtract"?E[u]=y-l:e==="multiply"?E[u]=y*l:e==="divide"?E[u]=y/l:E[u]=BigInt(Math.round(I(Number(y),Number(l))))}}else{let E=L(A.dtype)||L(r.dtype);for(let u=0;u<C;u++){let f=Q.iget(u),m=a.iget(u),c=Number(f),D=Number(m);s[u]=I(c,D)}}return B}function tr(A,r,I){let e=Yr(A.shape,r.shape),t=Wi(A,e),o=Wi(r,e),n=e.reduce((Q,a)=>Q*a,1),g=new Uint8Array(n),i=L(A.dtype)||L(r.dtype);for(let Q=0;Q<n;Q++){let a=t.iget(Q),B=o.iget(Q),s=Number(a),C=Number(B);g[Q]=I(s,C)?1:0}return d.fromData(g,e,"bool")}function mA(A,r,I=!0){let e=A.dtype,t=Array.from(A.shape),o=A.size,g=I?e:e!=="float32"&&e!=="float64"?"float64":e,i=d.zeros(t,g),Q=i.data,a=A.data,B=A.offset,s=A.isCContiguous;if(L(e))if(L(g)){let C=Q;if(s)for(let E=0;E<o;E++){let u=Number(a[B+E]);C[E]=BigInt(Math.round(r(u)))}else for(let E=0;E<o;E++)C[E]=BigInt(Math.round(r(Number(A.iget(E)))))}else if(s)for(let C=0;C<o;C++)Q[C]=r(Number(a[B+C]));else for(let C=0;C<o;C++)Q[C]=r(Number(A.iget(C)));else if(s)if(B===0)for(let C=0;C<o;C++)Q[C]=r(Number(a[C]));else for(let C=0;C<o;C++)Q[C]=r(Number(a[B+C]));else for(let C=0;C<o;C++)Q[C]=r(Number(A.iget(C)));return i}var C4="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",ue=null;function YA(){if(ue)return ue;let A=atob(C4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ue=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ue.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ue}function sm(A,r,I,e){YA().exports.add_f64(A,r,I,e)}function Cm(A,r,I,e){YA().exports.add_scalar_f64(A,r,I,e)}function Em(A,r,I,e){YA().exports.add_f32(A,r,I,e)}function um(A,r,I,e){YA().exports.add_scalar_f32(A,r,I,e)}function cm(A,r,I,e){YA().exports.add_c128(A,r,I,e)}function Dm(A,r,I,e){YA().exports.add_scalar_c128(A,r,I,e)}function fm(A,r,I,e){YA().exports.add_c64(A,r,I,e)}function mm(A,r,I,e){YA().exports.add_scalar_c64(A,r,I,e)}function DB(A,r,I,e){YA().exports.add_i64(A,r,I,e)}function fB(A,r,I,e){YA().exports.add_scalar_i64(A,r,I,BigInt(Math.round(e)))}function mB(A,r,I,e){YA().exports.add_i32(A,r,I,e)}function yB(A,r,I,e){YA().exports.add_scalar_i32(A,r,I,e)}function lB(A,r,I,e){YA().exports.add_i16(A,r,I,e)}function hB(A,r,I,e){YA().exports.add_scalar_i16(A,r,I,e)}function dB(A,r,I,e){YA().exports.add_i8(A,r,I,e)}function bB(A,r,I,e){YA().exports.add_scalar_i8(A,r,I,e)}var ym=64,E4={float64:sm,float32:Em,int64:DB,uint64:DB,int32:mB,uint32:mB,int16:lB,uint16:lB,int8:dB,uint8:dB,complex128:cm,complex64:fm},u4={float64:Cm,float32:um,int64:fB,uint64:fB,int32:yB,uint32:yB,int16:hB,uint16:hB,int8:bB,uint8:bB,complex128:Dm,complex64:mm},lm={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},hm={complex128:2,complex64:2};function dm(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<ym*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=E4[e],o=lm[e];if(!t||!o)return null;let n=hm[e]??1,g=o.BYTES_PER_ELEMENT,i=I*n,Q=i*g,a=i*g,B=i*g;J(Q+a+B),U();let s=A.offset*n,C=r.offset*n,E=A.data.subarray(s,s+i),u=r.data.subarray(C,C+i),f=q(E),m=q(u),c=_(B);t(f,m,c,I);let D=v(c,i,o);return d.fromData(D,Array.from(A.shape),e)}function bm(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<ym*Y.thresholdMultiplier)return null;let e=A.dtype,t=u4[e],o=lm[e];if(!t||!o)return null;let n=hm[e]??1,g=o.BYTES_PER_ELEMENT,i=I*n,Q=i*g,a=i*g;J(Q+a),U();let B=A.offset*n,s=A.data.subarray(B,B+i),C=q(s),E=_(a);t(C,E,I,r);let u=v(E,i,o);return d.fromData(u,Array.from(A.shape),e)}var c4="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",ce=null;function vA(){if(ce)return ce;let A=atob(c4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ce=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ce.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ce}function pm(A,r,I,e){vA().exports.sub_f64(A,r,I,e)}function wm(A,r,I,e){vA().exports.sub_scalar_f64(A,r,I,e)}function Nm(A,r,I,e){vA().exports.sub_f32(A,r,I,e)}function Fm(A,r,I,e){vA().exports.sub_scalar_f32(A,r,I,e)}function Gm(A,r,I,e){vA().exports.sub_c128(A,r,I,e)}function Sm(A,r,I,e){vA().exports.sub_scalar_c128(A,r,I,e)}function Rm(A,r,I,e){vA().exports.sub_c64(A,r,I,e)}function km(A,r,I,e){vA().exports.sub_scalar_c64(A,r,I,e)}function pB(A,r,I,e){vA().exports.sub_i64(A,r,I,e)}function wB(A,r,I,e){vA().exports.sub_scalar_i64(A,r,I,BigInt(Math.round(e)))}function NB(A,r,I,e){vA().exports.sub_i32(A,r,I,e)}function FB(A,r,I,e){vA().exports.sub_scalar_i32(A,r,I,e)}function GB(A,r,I,e){vA().exports.sub_i16(A,r,I,e)}function SB(A,r,I,e){vA().exports.sub_scalar_i16(A,r,I,e)}function RB(A,r,I,e){vA().exports.sub_i8(A,r,I,e)}function kB(A,r,I,e){vA().exports.sub_scalar_i8(A,r,I,e)}var qm=64,D4={float64:pm,float32:Nm,int64:pB,uint64:pB,int32:NB,uint32:NB,int16:GB,uint16:GB,int8:RB,uint8:RB,complex128:Gm,complex64:Rm},f4={float64:wm,float32:Fm,int64:wB,uint64:wB,int32:FB,uint32:FB,int16:SB,uint16:SB,int8:kB,uint8:kB,complex128:Sm,complex64:km},Mm={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},xm={complex128:2,complex64:2};function Jm(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<qm*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=D4[e],o=Mm[e];if(!t||!o)return null;let n=xm[e]??1,g=o.BYTES_PER_ELEMENT,i=I*n,Q=i*g,a=i*g,B=i*g;J(Q+a+B),U();let s=A.offset*n,C=r.offset*n,E=A.data.subarray(s,s+i),u=r.data.subarray(C,C+i),f=q(E),m=q(u),c=_(B);t(f,m,c,I);let D=v(c,i,o);return d.fromData(D,Array.from(A.shape),e)}function Um(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<qm*Y.thresholdMultiplier)return null;let e=A.dtype,t=f4[e],o=Mm[e];if(!t||!o)return null;let n=xm[e]??1,g=o.BYTES_PER_ELEMENT,i=I*n,Q=i*g,a=i*g;J(Q+a),U();let B=A.offset*n,s=A.data.subarray(B,B+i),C=q(s),E=_(a);t(C,E,I,r);let u=v(E,i,o);return d.fromData(u,Array.from(A.shape),e)}var m4="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",De=null;function XA(){if(De)return De;let A=atob(m4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);De=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=De.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),De}function Lm(A,r,I,e){XA().exports.mul_f64(A,r,I,e)}function Hm(A,r,I,e){XA().exports.mul_scalar_f64(A,r,I,e)}function _m(A,r,I,e){XA().exports.mul_f32(A,r,I,e)}function Ym(A,r,I,e){XA().exports.mul_scalar_f32(A,r,I,e)}function vm(A,r,I,e){XA().exports.mul_c128(A,r,I,e)}function Xm(A,r,I,e){XA().exports.mul_scalar_c128(A,r,I,e)}function Tm(A,r,I,e){XA().exports.mul_c64(A,r,I,e)}function Pm(A,r,I,e){XA().exports.mul_scalar_c64(A,r,I,e)}function qB(A,r,I,e){XA().exports.mul_i64(A,r,I,e)}function MB(A,r,I,e){XA().exports.mul_scalar_i64(A,r,I,BigInt(Math.round(e)))}function xB(A,r,I,e){XA().exports.mul_i32(A,r,I,e)}function JB(A,r,I,e){XA().exports.mul_scalar_i32(A,r,I,e)}function UB(A,r,I,e){XA().exports.mul_i16(A,r,I,e)}function LB(A,r,I,e){XA().exports.mul_scalar_i16(A,r,I,e)}function HB(A,r,I,e){XA().exports.mul_i8(A,r,I,e)}function _B(A,r,I,e){XA().exports.mul_scalar_i8(A,r,I,e)}var Km=64,y4={float64:Lm,float32:_m,int64:qB,uint64:qB,int32:xB,uint32:xB,int16:UB,uint16:UB,int8:HB,uint8:HB,complex128:vm,complex64:Tm},l4={float64:Hm,float32:Ym,int64:MB,uint64:MB,int32:JB,uint32:JB,int16:LB,uint16:LB,int8:_B,uint8:_B,complex128:Xm,complex64:Pm},Vm={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},Wm={complex128:2,complex64:2};function Om(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<Km*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=y4[e],o=Vm[e];if(!t||!o)return null;let n=Wm[e]??1,g=o.BYTES_PER_ELEMENT,i=I*n,Q=i*g,a=i*g,B=i*g;J(Q+a+B),U();let s=A.offset*n,C=r.offset*n,E=A.data.subarray(s,s+i),u=r.data.subarray(C,C+i),f=q(E),m=q(u),c=_(B);t(f,m,c,I);let D=v(c,i,o);return d.fromData(D,Array.from(A.shape),e)}function Zm(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<Km*Y.thresholdMultiplier)return null;let e=A.dtype,t=l4[e],o=Vm[e];if(!t||!o)return null;let n=Wm[e]??1,g=o.BYTES_PER_ELEMENT,i=I*n,Q=i*g,a=i*g;J(Q+a),U();let B=A.offset*n,s=A.data.subarray(B,B+i),C=q(s),E=_(a);t(C,E,I,r);let u=v(E,i,o);return d.fromData(u,Array.from(A.shape),e)}var h4="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",fe=null;function bA(){if(fe)return fe;let A=atob(h4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);fe=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=fe.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),fe}function zm(A,r,I,e){bA().exports.div_f64(A,r,I,e)}function jm(A,r,I,e){bA().exports.div_f32(A,r,I,e)}function $m(A,r,I,e){bA().exports.div_i64_f64(A,r,I,e)}function Ay(A,r,I,e){bA().exports.div_u64_f64(A,r,I,e)}function ry(A,r,I,e){bA().exports.div_i32_f64(A,r,I,e)}function Iy(A,r,I,e){bA().exports.div_u32_f64(A,r,I,e)}function ey(A,r,I,e){bA().exports.div_i16_f64(A,r,I,e)}function ty(A,r,I,e){bA().exports.div_u16_f64(A,r,I,e)}function oy(A,r,I,e){bA().exports.div_i8_f64(A,r,I,e)}function ny(A,r,I,e){bA().exports.div_u8_f64(A,r,I,e)}function iy(A,r,I,e){bA().exports.div_c128(A,r,I,e)}function gy(A,r,I,e){bA().exports.div_c64(A,r,I,e)}function Qy(A,r,I,e){bA().exports.div_scalar_f64(A,r,I,e)}function ay(A,r,I,e){bA().exports.div_scalar_f32(A,r,I,e)}function By(A,r,I,e){bA().exports.div_scalar_i64_f64(A,r,I,e)}function sy(A,r,I,e){bA().exports.div_scalar_u64_f64(A,r,I,e)}function Cy(A,r,I,e){bA().exports.div_scalar_i32_f64(A,r,I,e)}function Ey(A,r,I,e){bA().exports.div_scalar_u32_f64(A,r,I,e)}function uy(A,r,I,e){bA().exports.div_scalar_i16_f64(A,r,I,e)}function cy(A,r,I,e){bA().exports.div_scalar_u16_f64(A,r,I,e)}function Dy(A,r,I,e){bA().exports.div_scalar_i8_f64(A,r,I,e)}function fy(A,r,I,e){bA().exports.div_scalar_u8_f64(A,r,I,e)}var my=64,d4={float64:zm,float32:jm,complex128:iy,complex64:gy},b4={float64:Qy,float32:ay},p4={int64:$m,uint64:Ay,int32:ry,uint32:Iy,int16:ey,uint16:ty,int8:oy,uint8:ny},w4={int64:By,uint64:sy,int32:Cy,uint32:Ey,int16:uy,uint16:cy,int8:Dy,uint8:fy},Oi={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Zi(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<my*Y.thresholdMultiplier||A.dtype!==r.dtype)return null;let e=A.dtype,t=d4[e];if(t){let s=Oi[e],C=k(e)?2:1,E=s.BYTES_PER_ELEMENT,u=I*C;J(u*E*3),U();let f=q(A.data.subarray(A.offset*C,(A.offset+I)*C)),m=q(r.data.subarray(r.offset*C,(r.offset+I)*C)),c=_(u*E);t(f,m,c,I);let D=v(c,u,s);return d.fromData(D,Array.from(A.shape),e)}let o=p4[e],n=Oi[e];if(!o||!n)return null;let g=n.BYTES_PER_ELEMENT;J(I*g*2+I*8),U();let i=q(A.data.subarray(A.offset,A.offset+I)),Q=q(r.data.subarray(r.offset,r.offset+I)),a=_(I*8);o(i,Q,a,I);let B=v(a,I,Float64Array);return d.fromData(B,Array.from(A.shape),"float64")}function yy(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<my*Y.thresholdMultiplier)return null;let e=A.dtype,t=b4[e];if(t){let B=Oi[e],s=B.BYTES_PER_ELEMENT;J(I*s*2),U();let C=q(A.data.subarray(A.offset,A.offset+I)),E=_(I*s);t(C,E,I,r);let u=v(E,I,B);return d.fromData(u,Array.from(A.shape),e)}let o=w4[e],n=Oi[e];if(!o||!n)return null;let g=n.BYTES_PER_ELEMENT;J(I*g+I*8),U();let i=q(A.data.subarray(A.offset,A.offset+I)),Q=_(I*8);o(i,Q,I,r);let a=v(Q,I,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var N4="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",me=null;function vr(){if(me)return me;let A=atob(N4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);me=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=me.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),me}function ly(A,r,I){vr().exports.neg_f64(A,r,I)}function hy(A,r,I){vr().exports.neg_f32(A,r,I)}function dy(A,r,I){vr().exports.neg_c128(A,r,I)}function by(A,r,I){vr().exports.neg_c64(A,r,I)}function YB(A,r,I){vr().exports.neg_i64(A,r,I)}function vB(A,r,I){vr().exports.neg_i32(A,r,I)}function XB(A,r,I){vr().exports.neg_i16(A,r,I)}function TB(A,r,I){vr().exports.neg_i8(A,r,I)}var F4=64,G4={float64:ly,float32:hy,int64:YB,uint64:YB,int32:vB,uint32:vB,int16:XB,uint16:XB,int8:TB,uint8:TB,complex128:dy,complex64:by},S4={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},R4={complex128:2,complex64:2};function py(A){if(!A.isCContiguous)return null;let r=A.size;if(r<F4*Y.thresholdMultiplier)return null;let I=A.dtype,e=G4[I],t=S4[I];if(!e||!t)return null;let o=R4[I]??1,n=t.BYTES_PER_ELEMENT,g=r*o,i=g*n,Q=g*n;J(i+Q),U();let a=A.offset*o,B=A.data.subarray(a,a+g),s=q(B),C=_(Q);e(s,C,r);let E=v(C,g,t);return d.fromData(E,Array.from(A.shape),I)}var k4="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",ye=null;function pI(){if(ye)return ye;let A=atob(k4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ye=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ye.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ye}function wy(A,r,I){pI().exports.abs_f64(A,r,I)}function Ny(A,r,I){pI().exports.abs_f32(A,r,I)}function Fy(A,r,I){pI().exports.abs_i64(A,r,I)}function Gy(A,r,I){pI().exports.abs_i32(A,r,I)}function Sy(A,r,I){pI().exports.abs_i16(A,r,I)}function Ry(A,r,I){pI().exports.abs_i8(A,r,I)}var q4=64,M4={float64:wy,float32:Ny,int64:Fy,int32:Gy,int16:Sy,int8:Ry},ky={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function qy(A){if(!A.isCContiguous)return null;let r=A.size;if(r<q4*Y.thresholdMultiplier)return null;let I=A.dtype;if(I==="uint8"||I==="uint16"||I==="uint32"||I==="uint64"){let C=ky[I],E=A.offset,u=A.data.subarray(E,E+r),f=new C(u);return d.fromData(f,Array.from(A.shape),I)}let e=M4[I],t=ky[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT,n=r*o,g=r*o;J(n+g),U();let i=A.offset,Q=A.data.subarray(i,i+r),a=q(Q),B=_(g);e(a,B,r);let s=v(B,r,t);return d.fromData(s,Array.from(A.shape),I)}var x4="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",le=null;function wI(){if(le)return le;let A=atob(x4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);le=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=le.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),le}function My(A,r,I){wI().exports.sign_f64(A,r,I)}function xy(A,r,I){wI().exports.sign_f32(A,r,I)}function Jy(A,r,I){wI().exports.sign_i64(A,r,I)}function Uy(A,r,I){wI().exports.sign_i32(A,r,I)}function Ly(A,r,I){wI().exports.sign_i16(A,r,I)}function Hy(A,r,I){wI().exports.sign_i8(A,r,I)}var J4=64,U4={float64:My,float32:xy,int64:Jy,int32:Uy,int16:Ly,int8:Hy},L4={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function _y(A){if(!A.isCContiguous)return null;let r=A.size;if(r<J4*Y.thresholdMultiplier)return null;let I=A.dtype,e=U4[I],t=L4[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT,n=r*o,g=r*o;J(n+g),U();let i=A.offset,Q=A.data.subarray(i,i+r),a=q(Q),B=_(g);e(a,B,r);let s=v(B,r,t);return d.fromData(s,Array.from(A.shape),I)}var H4="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",he=null;function NA(){if(he)return he;let A=atob(H4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);he=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=he.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),he}function Yy(A,r,I,e){NA().exports.min_f64(A,r,I,e)}function vy(A,r,I,e){NA().exports.min_scalar_f64(A,r,I,e)}function Xy(A,r,I,e){NA().exports.min_f32(A,r,I,e)}function Ty(A,r,I,e){NA().exports.min_scalar_f32(A,r,I,e)}function Py(A,r,I,e){NA().exports.min_i64(A,r,I,e)}function Ky(A,r,I,e){NA().exports.min_scalar_i64(A,r,I,BigInt(Math.round(e)))}function Vy(A,r,I,e){NA().exports.min_u64(A,r,I,e)}function Wy(A,r,I,e){NA().exports.min_scalar_u64(A,r,I,BigInt(Math.round(e)))}function Oy(A,r,I,e){NA().exports.min_i32(A,r,I,e)}function Zy(A,r,I,e){NA().exports.min_scalar_i32(A,r,I,e)}function zy(A,r,I,e){NA().exports.min_u32(A,r,I,e)}function jy(A,r,I,e){NA().exports.min_scalar_u32(A,r,I,e)}function $y(A,r,I,e){NA().exports.min_i16(A,r,I,e)}function Al(A,r,I,e){NA().exports.min_scalar_i16(A,r,I,e)}function rl(A,r,I,e){NA().exports.min_u16(A,r,I,e)}function Il(A,r,I,e){NA().exports.min_scalar_u16(A,r,I,e)}function el(A,r,I,e){NA().exports.min_i8(A,r,I,e)}function tl(A,r,I,e){NA().exports.min_scalar_i8(A,r,I,e)}function ol(A,r,I,e){NA().exports.min_u8(A,r,I,e)}function nl(A,r,I,e){NA().exports.min_scalar_u8(A,r,I,e)}var il=64,_4={float64:Yy,float32:Xy,int64:Py,uint64:Vy,int32:Oy,uint32:zy,int16:$y,uint16:rl,int8:el,uint8:ol},Y4={float64:vy,float32:Ty,int64:Ky,uint64:Wy,int32:Zy,uint32:jy,int16:Al,uint16:Il,int8:tl,uint8:nl},gl={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function PB(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<il*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=_4[e],o=gl[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT;J(I*n*3),U();let g=q(A.data.subarray(A.offset,A.offset+I)),i=q(r.data.subarray(r.offset,r.offset+I)),Q=_(I*n);t(g,i,Q,I);let a=v(Q,I,o);return d.fromData(a,Array.from(A.shape),e)}function de(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<il*Y.thresholdMultiplier)return null;let e=A.dtype,t=Y4[e],o=gl[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT;J(I*n*2),U();let g=q(A.data.subarray(A.offset,A.offset+I)),i=_(I*n);t(g,i,I,r);let Q=v(i,I,o);return d.fromData(Q,Array.from(A.shape),e)}var v4="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",be=null;function FA(){if(be)return be;let A=atob(v4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);be=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=be.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),be}function Ql(A,r,I,e){FA().exports.max_f64(A,r,I,e)}function al(A,r,I,e){FA().exports.max_scalar_f64(A,r,I,e)}function Bl(A,r,I,e){FA().exports.max_f32(A,r,I,e)}function sl(A,r,I,e){FA().exports.max_scalar_f32(A,r,I,e)}function Cl(A,r,I,e){FA().exports.max_i64(A,r,I,e)}function El(A,r,I,e){FA().exports.max_scalar_i64(A,r,I,BigInt(Math.round(e)))}function ul(A,r,I,e){FA().exports.max_u64(A,r,I,e)}function cl(A,r,I,e){FA().exports.max_scalar_u64(A,r,I,BigInt(Math.round(e)))}function Dl(A,r,I,e){FA().exports.max_i32(A,r,I,e)}function fl(A,r,I,e){FA().exports.max_scalar_i32(A,r,I,e)}function ml(A,r,I,e){FA().exports.max_u32(A,r,I,e)}function yl(A,r,I,e){FA().exports.max_scalar_u32(A,r,I,e)}function ll(A,r,I,e){FA().exports.max_i16(A,r,I,e)}function hl(A,r,I,e){FA().exports.max_scalar_i16(A,r,I,e)}function dl(A,r,I,e){FA().exports.max_u16(A,r,I,e)}function bl(A,r,I,e){FA().exports.max_scalar_u16(A,r,I,e)}function pl(A,r,I,e){FA().exports.max_i8(A,r,I,e)}function wl(A,r,I,e){FA().exports.max_scalar_i8(A,r,I,e)}function Nl(A,r,I,e){FA().exports.max_u8(A,r,I,e)}function Fl(A,r,I,e){FA().exports.max_scalar_u8(A,r,I,e)}var Gl=64,X4={float64:Ql,float32:Bl,int64:Cl,uint64:ul,int32:Dl,uint32:ml,int16:ll,uint16:dl,int8:pl,uint8:Nl},T4={float64:al,float32:sl,int64:El,uint64:cl,int32:fl,uint32:yl,int16:hl,uint16:bl,int8:wl,uint8:Fl},Sl={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function KB(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<Gl*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=X4[e],o=Sl[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT;J(I*n*3),U();let g=q(A.data.subarray(A.offset,A.offset+I)),i=q(r.data.subarray(r.offset,r.offset+I)),Q=_(I*n);t(g,i,Q,I);let a=v(Q,I,o);return d.fromData(a,Array.from(A.shape),e)}function pe(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<Gl*Y.thresholdMultiplier)return null;let e=A.dtype,t=T4[e],o=Sl[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT;J(I*n*2),U();let g=q(A.data.subarray(A.offset,A.offset+I)),i=_(I*n);t(g,i,I,r);let Q=v(i,I,o);return d.fromData(Q,Array.from(A.shape),e)}var P4="AGFzbQEAAAABIQRgBX9/f3x8AGAFf39/fX0AYAV/f39+fgBgBX9/f39/AAIPAQNlbnYGbWVtb3J5AgAQAwsKAAECAgMDAwMDAwYJAX8BQYCAwAALB20KCGNsaXBfZjY0AAAIY2xpcF9mMzIAAQhjbGlwX2k2NAACCGNsaXBfdTY0AAMIY2xpcF9pMzIABAhjbGlwX3UzMgAFCGNsaXBfaTE2AAYIY2xpcF91MTYABwdjbGlwX2k4AAgHY2xpcF91OAAJCusqCpUEBAJ7Bn8BewF8IAT9FCEFIAP9FCEGAkACQCACQX5xIgcNAEEAIQgMAQsCQAJAIAdBf2oiCUEBRw0AQQAhCAwBCyAJQQF2QQFqQX5xIgpBAXQhCCABIQcgACELA0AgByAFIAYgC/0AAwD99wH99gH9CwMAIAdBEGogBSAGIAtBEGr9AAMA/fcB/fYB/QsDACAHQSBqIQcgC0EgaiELIApBfmoiCg0ACwsgCUECcQ0AIAEgCEEDdCIHaiAFIAYgACAHav0AAwD99wH99gH9CwMAIAhBAmohCAsCQCACIAhNDQACQCACIAhrIglBAkkNACABIABrQRBJDQAgASAIQQN0IgtqIQcgACALaiELIAggCUF+cSIMaiEIIAwhCgNAIAcgBiAL/QADACINIAX99gEgDSAG/Un9Uv0LAwAgB0EQaiEHIAtBEGohCyAKQX5qIgoNAAsgCSAMRg0BCyAIQQFqIQcCQCACIAhrQQFxRQ0AIAEgCEEDdCILaiADIAQgACALaisDACIOIA4gBGQbIA4gA2MbOQMAIAchCAsgAiAHRg0AIAIgCGshCiAAIAhBA3QiC2ohByABIAtqIQsDQCALIAMgBCAHKwMAIg4gDiAEZBsgDiADYxs5AwAgC0EIaiADIAQgB0EIaisDACIOIA4gBGQbIA4gA2MbOQMAIAdBEGohByALQRBqIQsgCkF+aiIKDQALCwuZBAQCewZ/AXsBfSAE/RMhBSAD/RMhBgJAAkAgAkF8cSIHDQBBACEIDAELAkACQCAHQX9qIglBA0cNAEEAIQgMAQsgCUECdkEBakH+////B3EiCkECdCEIIAEhByAAIQsDQCAHIAUgBiAL/QACAP3rAf3qAf0LAgAgB0EQaiAFIAYgC0EQav0AAgD96wH96gH9CwIAIAdBIGohByALQSBqIQsgCkF+aiIKDQALCyAJQQRxDQAgASAIQQJ0IgdqIAUgBiAAIAdq/QACAP3rAf3qAf0LAgAgCEEEaiEICwJAIAIgCE0NAAJAIAIgCGsiCUEESQ0AIAEgAGtBEEkNACABIAhBAnQiC2ohByAAIAtqIQsgCCAJQXxxIgxqIQggDCEKA0AgByAGIAv9AAIAIg0gBf3qASANIAb9Q/1S/QsCACAHQRBqIQcgC0EQaiELIApBfGoiCg0ACyAJIAxGDQELIAhBAWohBwJAIAIgCGtBAXFFDQAgASAIQQJ0IgtqIAMgBCAAIAtqKgIAIg4gDiAEXhsgDiADXRs4AgAgByEICyACIAdGDQAgAiAIayEKIAAgCEECdCILaiEHIAEgC2ohCwNAIAsgAyAEIAcqAgAiDiAOIAReGyAOIANdGzgCACALQQRqIAMgBCAHQQRqKgIAIg4gDiAEXhsgDiADXRs4AgAgB0EIaiEHIAtBCGohCyAKQX5qIgoNAAsLC8oCBQF/AnsDfwF7AX5BACEFAkACQAJAIAIOAgIBAAsgASAAa0EQSQ0AIAT9EiEGIAP9EiEHIAJBfnEiBSEIIAEhCSAAIQoDQCAJIAr9AAMAIgsgByALIAf92QH9UiILIAYgCyAG/dgB/VL9CwMAIAlBEGohCSAKQRBqIQogCEF+aiIIDQALIAIgBUYNAQsgBUEBciEJAkAgAkEBcUUNACABIAVBA3QiCmogACAKaikDACIMIAMgDCADVRsiDCAEIAwgBFMbNwMAIAkhBQsgAiAJRg0AIAIgBWshCCAAIAVBA3QiCmohCSABIApqIQoDQCAKIAkpAwAiDCADIAwgA1UbIgwgBCAMIARTGzcDACAKQQhqIAlBCGopAwAiDCADIAwgA1UbIgwgBCAMIARTGzcDACAJQRBqIQkgCkEQaiEKIAhBfmoiCA0ACwsLhgMFAX8CewN/AXsBfkEAIQUCQAJAAkAgAg4CAgEACyABIABrQRBJDQAgBP0SIQYgA/0SIQcgAkF+cSIFIQggASEJIAAhCgNAIAkgCv0AAwAiCyAHQn9CACAL/R0AIAf9HQBWG/0SQn9CACAL/R0BIAf9HQFWG/0eAf1SIgsgBkJ/QgAgC/0dACAG/R0AVBv9EkJ/QgAgC/0dASAG/R0BVBv9HgH9Uv0LAwAgCUEQaiEJIApBEGohCiAIQX5qIggNAAsgAiAFRg0BCyAFQQFyIQkCQCACQQFxRQ0AIAEgBUEDdCIKaiAAIApqKQMAIgwgAyAMIANWGyIMIAQgDCAEVBs3AwAgCSEFCyACIAlGDQAgAiAFayEIIAAgBUEDdCIKaiEJIAEgCmohCgNAIAogCSkDACIMIAMgDCADVhsiDCAEIAwgBFQbNwMAIApBCGogCUEIaikDACIMIAMgDCADVhsiDCAEIAwgBFQbNwMAIAlBEGohCSAKQRBqIQogCEF+aiIIDQALCwv6BAICewZ/IAT9ESEFIAP9ESEGAkACQCACQXxxIgcNAEEAIQgMAQsgB0F/akECdkEBaiIJQQNxIQoCQAJAIAdBDU8NAEEAIQgMAQsgCUH8////B3EiC0ECdCEIQQAhBwNAIAEgB2oiCSAAIAdqIgz9AAIAIAb9uAEgBf22Af0LAgAgCUEQaiAMQRBq/QACACAG/bgBIAX9tgH9CwIAIAlBIGogDEEgav0AAgAgBv24ASAF/bYB/QsCACAJQTBqIAxBMGr9AAIAIAb9uAEgBf22Af0LAgAgB0HAAGohByALQXxqIgsNAAsLIApFDQAgCCAKQQJ0aiEMIAAgCEECdCIJaiEHIAEgCWohCQNAIAkgB/0AAgAgBv24ASAF/bYB/QsCACAHQRBqIQcgCUEQaiEJIApBf2oiCg0ACyAMIQgLAkAgAiAITQ0AAkAgAiAIayIKQQRJDQAgASAAa0EQSQ0AIAEgCEECdCIJaiEHIAAgCWohCSAIIApBfHEiC2ohCCALIQwDQCAHIAn9AAIAIAb9uAEgBf22Af0LAgAgB0EQaiEHIAlBEGohCSAMQXxqIgwNAAsgCiALRg0BCyAIQQFqIQcCQCACIAhrQQFxRQ0AIAEgCEECdCIJaiAAIAlqKAIAIgkgAyAJIANKGyIJIAQgCSAESBs2AgAgByEICyACIAdGDQAgAiAIayEMIAAgCEECdCIJaiEHIAEgCWohCQNAIAkgBygCACIKIAMgCiADShsiCiAEIAogBEgbNgIAIAlBBGogB0EEaigCACIKIAMgCiADShsiCiAEIAogBEgbNgIAIAdBCGohByAJQQhqIQkgDEF+aiIMDQALCwv6BAICewZ/IAT9ESEFIAP9ESEGAkACQCACQXxxIgcNAEEAIQgMAQsgB0F/akECdkEBaiIJQQNxIQoCQAJAIAdBDU8NAEEAIQgMAQsgCUH8////B3EiC0ECdCEIQQAhBwNAIAEgB2oiCSAAIAdqIgz9AAIAIAb9uQEgBf23Af0LAgAgCUEQaiAMQRBq/QACACAG/bkBIAX9twH9CwIAIAlBIGogDEEgav0AAgAgBv25ASAF/bcB/QsCACAJQTBqIAxBMGr9AAIAIAb9uQEgBf23Af0LAgAgB0HAAGohByALQXxqIgsNAAsLIApFDQAgCCAKQQJ0aiEMIAAgCEECdCIJaiEHIAEgCWohCQNAIAkgB/0AAgAgBv25ASAF/bcB/QsCACAHQRBqIQcgCUEQaiEJIApBf2oiCg0ACyAMIQgLAkAgAiAITQ0AAkAgAiAIayIKQQRJDQAgASAAa0EQSQ0AIAEgCEECdCIJaiEHIAAgCWohCSAIIApBfHEiC2ohCCALIQwDQCAHIAn9AAIAIAb9uQEgBf23Af0LAgAgB0EQaiEHIAlBEGohCSAMQXxqIgwNAAsgCiALRg0BCyAIQQFqIQcCQCACIAhrQQFxRQ0AIAEgCEECdCIJaiAAIAlqKAIAIgkgAyAJIANLGyIJIAQgCSAESRs2AgAgByEICyACIAdGDQAgAiAIayEMIAAgCEECdCIJaiEHIAEgCWohCQNAIAkgBygCACIKIAMgCiADSxsiCiAEIAogBEkbNgIAIAlBBGogB0EEaigCACIKIAMgCiADSxsiCiAEIAogBEkbNgIAIAdBCGohByAJQQhqIQkgDEF+aiIMDQALCwv6BAICewZ/IAT9ECEFIAP9ECEGAkACQCACQXhxIgcNAEEAIQgMAQsgB0F/akEDdkEBaiIJQQNxIQoCQAJAIAdBGU8NAEEAIQgMAQsgCUH8////A3EiC0EDdCEIQQAhBwNAIAEgB2oiCSAAIAdqIgz9AAEAIAb9mAEgBf2WAf0LAQAgCUEQaiAMQRBq/QABACAG/ZgBIAX9lgH9CwEAIAlBIGogDEEgav0AAQAgBv2YASAF/ZYB/QsBACAJQTBqIAxBMGr9AAEAIAb9mAEgBf2WAf0LAQAgB0HAAGohByALQXxqIgsNAAsLIApFDQAgCCAKQQN0aiEMIAAgCEEBdCIJaiEHIAEgCWohCQNAIAkgB/0AAQAgBv2YASAF/ZYB/QsBACAHQRBqIQcgCUEQaiEJIApBf2oiCg0ACyAMIQgLAkAgAiAITQ0AAkAgAiAIayIKQQhJDQAgASAAa0EQSQ0AIAEgCEEBdCIJaiEHIAAgCWohCSAIIApBeHEiC2ohCCALIQwDQCAHIAn9AAEAIAb9mAEgBf2WAf0LAQAgB0EQaiEHIAlBEGohCSAMQXhqIgwNAAsgCiALRg0BCyAIQQFqIQcCQCACIAhrQQFxRQ0AIAEgCEEBdCIJaiAAIAlqLgEAIgkgAyAJIANKGyIJIAQgCSAESBs7AQAgByEICyACIAdGDQAgAiAIayEMIAAgCEEBdCIJaiEHIAEgCWohCQNAIAkgBy4BACIKIAMgCiADShsiCiAEIAogBEgbOwEAIAlBAmogB0ECai4BACIKIAMgCiADShsiCiAEIAogBEgbOwEAIAdBBGohByAJQQRqIQkgDEF+aiIMDQALCwv6BAICewZ/IAT9ECEFIAP9ECEGAkACQCACQXhxIgcNAEEAIQgMAQsgB0F/akEDdkEBaiIJQQNxIQoCQAJAIAdBGU8NAEEAIQgMAQsgCUH8////A3EiC0EDdCEIQQAhBwNAIAEgB2oiCSAAIAdqIgz9AAEAIAb9mQEgBf2XAf0LAQAgCUEQaiAMQRBq/QABACAG/ZkBIAX9lwH9CwEAIAlBIGogDEEgav0AAQAgBv2ZASAF/ZcB/QsBACAJQTBqIAxBMGr9AAEAIAb9mQEgBf2XAf0LAQAgB0HAAGohByALQXxqIgsNAAsLIApFDQAgCCAKQQN0aiEMIAAgCEEBdCIJaiEHIAEgCWohCQNAIAkgB/0AAQAgBv2ZASAF/ZcB/QsBACAHQRBqIQcgCUEQaiEJIApBf2oiCg0ACyAMIQgLAkAgAiAITQ0AAkAgAiAIayIKQQhJDQAgASAAa0EQSQ0AIAEgCEEBdCIJaiEHIAAgCWohCSAIIApBeHEiC2ohCCALIQwDQCAHIAn9AAEAIAb9mQEgBf2XAf0LAQAgB0EQaiEHIAlBEGohCSAMQXhqIgwNAAsgCiALRg0BCyAIQQFqIQcCQCACIAhrQQFxRQ0AIAEgCEEBdCIJaiAAIAlqLwEAIgkgAyAJIANLGyIJIAQgCSAESRs7AQAgByEICyACIAdGDQAgAiAIayEMIAAgCEEBdCIJaiEHIAEgCWohCQNAIAkgBy8BACIKIAMgCiADSxsiCiAEIAogBEkbOwEAIAlBAmogB0ECai8BACIKIAMgCiADSxsiCiAEIAogBEkbOwEAIAdBBGohByAJQQRqIQkgDEF+aiIMDQALCwu4BAICewZ/IAT9DyEFIAP9DyEGAkACQCACQXBxIgcNAEEAIQcMAQsgB0F/akEEdkEBaiIIQQNxIQkCQAJAIAdBMU8NAEEAIQcMAQsgCEH8////AXEhCkEAIQcDQCABIAdqIgggACAHaiIL/QAAACAG/XggBf12/QsAACAIQRBqIAtBEGr9AAAAIAb9eCAF/Xb9CwAAIAhBIGogC0Egav0AAAAgBv14IAX9dv0LAAAgCEEwaiALQTBq/QAAACAG/XggBf12/QsAACAHQcAAaiEHIApBfGoiCg0ACwsgCUUNAANAIAEgB2ogACAHav0AAAAgBv14IAX9dv0LAAAgB0EQaiEHIAlBf2oiCQ0ACwsCQCACIAdNDQACQCACIAdrIgpBEEkNACABIABrQRBJDQAgASAHaiEIIAAgB2ohCyAHIApBcHEiDGohByAMIQkDQCAIIAv9AAAAIAb9eCAF/Xb9CwAAIAhBEGohCCALQRBqIQsgCUFwaiIJDQALIAogDEYNAQsgB0EBaiEIAkAgAiAHa0EBcUUNACABIAdqIAAgB2osAAAiByADIAcgA0obIgcgBCAHIARIGzoAACAIIQcLIAIgCEYNACAAIAdqIQggASAHaiELIAIgB2shBwNAIAsgCCwAACIJIAMgCSADShsiCSAEIAkgBEgbOgAAIAtBAWogCEEBaiwAACIJIAMgCSADShsiCSAEIAkgBEgbOgAAIAhBAmohCCALQQJqIQsgB0F+aiIHDQALCwu4BAICewZ/IAT9DyEFIAP9DyEGAkACQCACQXBxIgcNAEEAIQcMAQsgB0F/akEEdkEBaiIIQQNxIQkCQAJAIAdBMU8NAEEAIQcMAQsgCEH8////AXEhCkEAIQcDQCABIAdqIgggACAHaiIL/QAAACAG/XkgBf13/QsAACAIQRBqIAtBEGr9AAAAIAb9eSAF/Xf9CwAAIAhBIGogC0Egav0AAAAgBv15IAX9d/0LAAAgCEEwaiALQTBq/QAAACAG/XkgBf13/QsAACAHQcAAaiEHIApBfGoiCg0ACwsgCUUNAANAIAEgB2ogACAHav0AAAAgBv15IAX9d/0LAAAgB0EQaiEHIAlBf2oiCQ0ACwsCQCACIAdNDQACQCACIAdrIgpBEEkNACABIABrQRBJDQAgASAHaiEIIAAgB2ohCyAHIApBcHEiDGohByAMIQkDQCAIIAv9AAAAIAb9eSAF/Xf9CwAAIAhBEGohCCALQRBqIQsgCUFwaiIJDQALIAogDEYNAQsgB0EBaiEIAkAgAiAHa0EBcUUNACABIAdqIAAgB2otAAAiByADIAcgA0sbIgcgBCAHIARJGzoAACAIIQcLIAIgCEYNACAAIAdqIQggASAHaiELIAIgB2shBwNAIAsgCC0AACIJIAMgCSADSxsiCSAEIAkgBEkbOgAAIAtBAWogCEEBai0AACIJIAMgCSADSxsiCSAEIAkgBEkbOgAAIAhBAmohCCALQQJqIQsgB0F+aiIHDQALCws=",we=null;function br(){if(we)return we;let A=atob(P4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);we=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=we.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),we}function Rl(A,r,I,e,t){br().exports.clip_f64(A,r,I,e,t)}function kl(A,r,I,e,t){br().exports.clip_f32(A,r,I,e,t)}function ql(A,r,I,e,t){br().exports.clip_i64(A,r,I,BigInt(Math.round(e)),BigInt(Math.round(t)))}function Ml(A,r,I,e,t){br().exports.clip_u64(A,r,I,BigInt(Math.round(e)),BigInt(Math.round(t)))}function xl(A,r,I,e,t){br().exports.clip_i32(A,r,I,e,t)}function Jl(A,r,I,e,t){br().exports.clip_u32(A,r,I,e,t)}function Ul(A,r,I,e,t){br().exports.clip_i16(A,r,I,e,t)}function Ll(A,r,I,e,t){br().exports.clip_u16(A,r,I,e,t)}function Hl(A,r,I,e,t){br().exports.clip_i8(A,r,I,e,t)}function _l(A,r,I,e,t){br().exports.clip_u8(A,r,I,e,t)}var K4=64,V4={float64:Rl,float32:kl,int64:ql,uint64:Ml,int32:xl,uint32:Jl,int16:Ul,uint16:Ll,int8:Hl,uint8:_l},W4={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Yl(A,r,I){if(!A.isCContiguous)return null;let e=A.size;if(e<K4*Y.thresholdMultiplier)return null;let t=A.dtype,o=V4[t],n=W4[t];if(!o||!n)return null;let g=n.BYTES_PER_ELEMENT;J(e*g*2),U();let i=q(A.data.subarray(A.offset,A.offset+e)),Q=_(e*g);o(i,Q,e,r,I);let a=v(Q,e,n);return d.fromData(a,Array.from(A.shape),t)}var O4="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",Ne=null;function Xr(){if(Ne)return Ne;let A=atob(O4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Ne=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Ne.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ne}function vl(A,r,I){Xr().exports.square_f64(A,r,I)}function Xl(A,r,I){Xr().exports.square_f32(A,r,I)}function Tl(A,r,I){Xr().exports.square_c128(A,r,I)}function Pl(A,r,I){Xr().exports.square_c64(A,r,I)}function VB(A,r,I){Xr().exports.square_i64(A,r,I)}function WB(A,r,I){Xr().exports.square_i32(A,r,I)}function OB(A,r,I){Xr().exports.square_i16(A,r,I)}function ZB(A,r,I){Xr().exports.square_i8(A,r,I)}var Z4=64,z4={float64:vl,float32:Xl,complex128:Tl,complex64:Pl,int64:VB,uint64:VB,int32:WB,uint32:WB,int16:OB,uint16:OB,int8:ZB,uint8:ZB},j4={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Kl(A){if(!A.isCContiguous)return null;let r=A.size;if(r<Z4*Y.thresholdMultiplier)return null;let I=A.dtype,e=z4[I],t=j4[I];if(!e||!t)return null;let o=k(I)?2:1,n=t.BYTES_PER_ELEMENT,g=r*o;J(g*n*2),U();let i=q(A.data.subarray(A.offset*o,(A.offset+r)*o)),Q=_(g*n);e(i,Q,r);let a=v(Q,g,t);return d.fromData(a,Array.from(A.shape),I)}var $4="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",Fe=null;function NI(){if(Fe)return Fe;let A=atob($4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Fe=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Fe.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Fe}function Vl(A,r,I){NI().exports.reciprocal_f64(A,r,I)}function Wl(A,r,I){NI().exports.reciprocal_f32(A,r,I)}function zB(A,r,I){NI().exports.reciprocal_i64_f64(A,r,I)}function jB(A,r,I){NI().exports.reciprocal_i32_f64(A,r,I)}function $B(A,r,I){NI().exports.reciprocal_i16_f64(A,r,I)}function As(A,r,I){NI().exports.reciprocal_i8_f64(A,r,I)}var AY=64,rY={float64:Vl,float32:Wl},IY={int64:zB,uint64:zB,int32:jB,uint32:jB,int16:$B,uint16:$B,int8:As,uint8:As},Ol={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Zl(A){if(!A.isCContiguous)return null;let r=A.size;if(r<AY*Y.thresholdMultiplier)return null;let I=A.dtype,e=rY[I];if(e){let a=Ol[I],B=a.BYTES_PER_ELEMENT;J(r*B*2),U();let s=q(A.data.subarray(A.offset,A.offset+r)),C=_(r*B);e(s,C,r);let E=v(C,r,a);return d.fromData(E,Array.from(A.shape),I)}let t=IY[I],o=Ol[I];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT;J(r*n+r*8),U();let g=q(A.data.subarray(A.offset,A.offset+r)),i=_(r*8);t(g,i,r);let Q=v(i,r,Float64Array);return d.fromData(Q,Array.from(A.shape),"float64")}var eY="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",Ge=null;function zi(){if(Ge)return Ge;let A=atob(eY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Ge=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Ge.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ge}function zl(A,r,I,e){zi().exports.heaviside_scalar_f64(A,r,I,e)}function jl(A,r,I,e){zi().exports.heaviside_scalar_f32(A,r,I,e)}function $l(A,r,I,e){zi().exports.heaviside_f64(A,r,I,e)}function A0(A,r,I,e){zi().exports.heaviside_f32(A,r,I,e)}var r0=64,tY={float64:zl,float32:jl},oY={float64:$l,float32:A0},I0={float64:Float64Array,float32:Float32Array};function e0(A,r,I){if(!A.isCContiguous)return null;let e=A.size;if(e<r0*Y.thresholdMultiplier)return null;let t=tY[I],o=I0[I];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT;J(e*n*2),U();let g=q(A.data.subarray(A.offset,A.offset+e)),i=_(e*n);t(g,i,e,r);let Q=v(i,e,o);return d.fromData(Q,Array.from(A.shape),I)}function t0(A,r,I){if(!A.isCContiguous||!r.isCContiguous)return null;let e=A.size;if(e<r0*Y.thresholdMultiplier)return null;let t=oY[I],o=I0[I];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT;J(e*n*3),U();let g=q(A.data.subarray(A.offset,A.offset+e)),i=q(r.data.subarray(r.offset,r.offset+e)),Q=_(e*n);t(g,i,Q,e);let a=v(Q,e,o);return d.fromData(a,Array.from(A.shape),I)}var nY="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IAO+DwsgBEEASkEXdCACQf///wNxckEAIAFrIgNBASABIARqayIBIAMgAUgbQX9qIgF2QQFqQQF2IAJoIAFBH3FGQX9zcb4gAJghAAsgAA8LIAFBF3QgAmq+C6ECAQR/AkACQCAAIABcDQAgALwiAkH/////B3FBgICA/AdPDQAgAkGAgICAeHEhA0EIIAJBAXQiBGdrIARBGHYgBEGAgIAISRshBAJAIAFBAEgNAAJAIAFB/gEgBGtMDQBDAACAfyAAmA8LAkAgBCABaiIFQQBKDQAgAiABdCADcr4PCwJAIARBAEoNACACQQEgBGt0Qf///wNxIAVBF3RyIANyvg8LIAFBF3QgAmq+DwsgAUEAIARrSg0BAkAgAUFpIARrTg0AIAO+DwsgBEEASkEXdCACQf///wNxckEAIAFrIgNBASABIARqayIBIAMgAUgbQX9qIgF2QQFqQQF2IAJoIAFBH3FGQX9zcb4gAJghAAsgAA8LIAFBF3QgAmq+C84CAgN+An8CQAJAIAAgAGINACAAvSICQv///////////wCDQoCAgICAgID4/wBaDQAgAkKAgICAgICAgIB/gyEDQQsgAkIBhiIEeadrIARCNYinIARCgICAgICAgBBUGyEFAkAgAUEASA0AAkAgAUH+DyAFa0wNAEQAAAAAAADwfyAApg8LAkAgBSABaiIGQQBKDQAgAiABrYYgA4S/DwsCQCAFQQBKDQAgAkEBIAVrrYZC/////////weDIAatQjSGhCADhL8PCyABrUI0hiACfL8PC0EAIAFrIQYgAUEAIAVrSg0BAkAgAUFMIAVrTg0AIAO/DwsgBUEASq1CNIYgAkL/////////B4OEIAZBASABIAVqayIBIAYgAUgbQX9qQT9xrSIEiEIBfEIBiCACeiAEUa1Cf4WDvyAApiEACyAADwsgAiAGrUI0hn2/C9cCAgN/A30CQAJAIAAgAFwNACAAvCIBQR92IQICQAJAAkACQAJAAkACQCABQf////8HcSIDQc/YupUESw0AIANBmOTF9QNNDQEgA0GSq5T8A00NAgwECyADQYCAgPwHSw0GAkAgAUEASA0AIANBmOTFlQRJDQAgAEMAAAB/lA8LIAFBf0oNA0MAAAAAIQQgA0G047+WBEsNBwwDCyADQYCAgMgDTQ0BQQAhA0MAAAAAIQUgACEEDAQLIAJBAXMgAmshAwwCCyAAQwAAgD+SDwsgAEM7qrg/lCACQQJ0QYCAwIAAaioCAJL8ACEDCyAAIAOyIgRDAHIxv5SSIgAgBEOOvr81lCIFkyEECyAAIAQgBCAEIASUIgYgBkMVUjW7lEOPqio+kpSTIgaUQwAAAEAgBpOVIAWTkkMAAIA/kiEEIANFDQEgBCADEISAgIAADwsgACEECyAEC68DAwF+AX8DfAJAIAAgAGINACAAvSIBQj+IpyECAkACQAJAAkACQAJAAkAgAUIgiEL/////B4MiAUKqxpiEBFYNACABQsLc2P4DWA0BIAFCssXC/wNYDQIMBAsgAUKAgMD/B1YNBgJAIABE7zn6/kIuhkBkRQ0ARAAAAAAAAPB/DwsgAETSvHrdKyOGwGNFDQMgAERRMC3VEEmHwGNFDQNEAAAAAAAAAAAPCyABQoCAwPEDWA0BQQAhAkQAAAAAAAAAACEDIAAhBAwECyACQQFzIAJrIQIMAgsgAEQAAAAAAADwP6AhAAwDCyAARP6CK2VHFfc/oiACQQN0QYiAwIAAaisDAKD8AiECCyAAIAK3IgREAADg/kIu5r+ioCIAIAREdjx5Ne856j2iIgOhIQQLIAAgBCAEIAQgBKIiBSAFIAUgBSAFRNCkvnJpN2Y+okTxa9LFQb27vqCiRCzeJa9qVhE/oKJEk72+FmzBZr+gokQ+VVVVVVXFP6CioSIFokQAAAAAAAAAQCAFoaMgA6GgRAAAAAAAAPA/oCEAIAJFDQAgACACEIWAgIAADwsgAAsLIQEAQYCAwAALGAAAAD8AAAC/AAAAAAAA4D8AAAAAAADgvw==",Se=null;function o0(){if(Se)return Se;let A=atob(nY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Se=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Se.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Se}function n0(A,r,I,e){o0().exports.ldexp_scalar_f64(A,r,I,e)}function i0(A,r,I,e){o0().exports.ldexp_scalar_f32(A,r,I,e)}var iY=64,gY={float64:n0,float32:i0},QY={float64:Float64Array,float32:Float32Array};function g0(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<iY*Y.thresholdMultiplier)return null;let e=A.dtype,t=gY[e],o=QY[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT;J(I*n*2),U();let g=q(A.data.subarray(A.offset,A.offset+I)),i=_(I*n);t(g,i,I,r);let Q=v(i,I,o);return d.fromData(Q,Array.from(A.shape),e)}var aY="AGFzbQEAAAABCAFgBH9/f38AAg8BA2VudgZtZW1vcnkCABADAgEABgkBfwFBgIDAAAsHDQEJZnJleHBfZjY0AAAKqgIBpwIDAXwBfgJ/AkAgA0UNAANAAkACQAJAIAArAwAiBEQAAAAAAAAAAGENACAEvSIFQv///////////wCDQoCAgICAgID4/wBUDQELIAEgBDkDAEEAIQYMAQtBACEGAkACQCAFQjSIp0H/D3EiB0H/D0YNACAHDQEgBUL/////////B4NQDQAgBUKAgICAgICAgIB/gyAFIAVCDIZ5pyIGQQFqrYZC/////////weDQgAgBkE/cUEzSRuEQoCAgICAgIDwP4QhBUGCeCAGayEGCyABIAU3AwAMAQsgB0GCeGohBiABIAVC/////////4eAf4NCgICAgICAgPA/hDcDAAsgAiAGNgIAIABBCGohACABQQhqIQEgAkEEaiECIANBf2oiAw0ACwsL",Re=null;function BY(){if(Re)return Re;let A=atob(aY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Re=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Re.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Re}function Q0(A,r,I,e){BY().exports.frexp_f64(A,r,I,e)}var sY=64;function a0(A){if(!A.isCContiguous)return null;let r=A.size;if(r<sY*Y.thresholdMultiplier)return null;let I=A.dtype;if(I!=="float64"&&I!=="float32")return null;let e=8,t=4;J(r*e+r*e+r*t),U();let o;if(I==="float32"){let C=A.data.subarray(A.offset,A.offset+r),E=new Float64Array(r);for(let u=0;u<r;u++)E[u]=C[u];o=E}else o=A.data.subarray(A.offset,A.offset+r);let n=q(o),g=_(r*e),i=_(r*t);Q0(n,g,i,r);let Q=v(g,r,Float64Array),a=v(i,r,Int32Array),B=d.fromData(Q,Array.from(A.shape),"float64"),s=d.fromData(a,Array.from(A.shape),"int32");return[B,s]}var CY="AGFzbQEAAAABCAFgBH9/f38AAg8BA2VudgZtZW1vcnkCABADAwIAAAYJAX8BQYCAwAALBxwCDmdjZF9zY2FsYXJfaTMyAAAHZ2NkX2kzMgABCvsDAvYCAQV/AkAgAkUNAAJAIANFDQAgAyADQR91IgRzIARrIQVBACEGA0AgACAGQQJ0IgdqKAIAIgMgA0EfdSIDcyADayEEIAUhAwNAIAQgAyIIcCEDIAghBCADDQALIAEgB2ogCDYCACAGQQFqIgYgAkcNAAwCCwtBACEGAkAgAkEESQ0AIAEgAGtBEEkNACACQXxxIgYhCCABIQMgACEEA0AgAyAE/QACAP2gAf0LAgAgA0EQaiEDIARBEGohBCAIQXxqIggNAAsgAiAGRg0BCyAGQQFyIQMCQCACQQFxRQ0AIAEgBkECdCIEaiAAIARqKAIAIgQgBEEfdSIEcyAEazYCACADIQYLIAIgA0YNACACIAZrIQggACAGQQJ0IgRqIQMgASAEaiEEA0AgBCADKAIAIgYgBkEfdSIGcyAGazYCACAEQQRqIANBBGooAgAiBiAGQR91IgZzIAZrNgIAIANBCGohAyAEQQhqIQQgCEF+aiIIDQALCwuAAQEFfwJAIANFDQBBACEEA0AgACAEQQJ0IgVqKAIAIgYgBkEfdSIGcyAGayEHAkACQCABIAVqKAIAIgYNACAHIQgMAQsgBiAGQR91IghzIAhrIQYDQCAHIAYiCHAhBiAIIQcgBg0ACwsgAiAFaiAINgIAIARBAWoiBCADRw0ACwsL",ke=null;function B0(){if(ke)return ke;let A=atob(CY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ke=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ke.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ke}function s0(A,r,I,e){B0().exports.gcd_scalar_i32(A,r,I,e)}function C0(A,r,I,e){B0().exports.gcd_i32(A,r,I,e)}var E0=64;function rs(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<E0*Y.thresholdMultiplier)return null;let e=A.dtype;if(e!=="int32"&&e!=="int16"&&e!=="int8"&&e!=="uint16"&&e!=="uint8")return null;let t=4;J(I*t*2),U();let o=A.data.subarray(A.offset,A.offset+I),n=new Int32Array(I);for(let a=0;a<I;a++)n[a]=Number(o[a]);let g=q(n),i=_(I*t);s0(g,i,I,Math.abs(Math.trunc(r)));let Q=v(i,I,Int32Array);return d.fromData(Q,Array.from(A.shape),"int32")}function u0(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<E0*Y.thresholdMultiplier)return null;let e=A.dtype,t=r.dtype,o=["int32","int16","int8","uint16","uint8"];if(!o.includes(e)||!o.includes(t))return null;let n=4;J(I*n*3),U();let g=A.data.subarray(A.offset,A.offset+I),i=r.data.subarray(r.offset,r.offset+I),Q=new Int32Array(I),a=new Int32Array(I);for(let u=0;u<I;u++)Q[u]=Number(g[u]),a[u]=Number(i[u]);let B=q(Q),s=q(a),C=_(I*n);C0(B,s,C,I);let E=v(C,I,Int32Array);return d.fromData(E,Array.from(A.shape),"int32")}function fr(A,r){return A.isCContiguous&&r.isCContiguous&&A.shape.length===r.shape.length&&A.shape.every((I,e)=>I===r.shape[e])}function Ar(A,r){return[A[r*2],A[r*2+1]]}function WA(A,r,I,e){A[r*2]=I,A[r*2+1]=e}function y0(A,r){if(typeof r=="number")return c0(A,r);if(r.size===1&&!k(r.dtype)&&A.dtype===r.dtype){let I=Number(r.iget(0));return c0(A,I)}if(fr(A,r)){let I=dm(A,r);return I||EY(A,r)}return yA(A,r,(I,e)=>I+e,"add")}function EY(A,r){let I=IA(A.dtype,r.dtype),e=d.zeros(Array.from(A.shape),I),t=A.size,o=A.data,n=r.data,g=e.data,i=A.offset,Q=r.offset;if(k(I)){let a=g,B=k(A.dtype),s=k(r.dtype);for(let C=0;C<t;C++){let[E,u]=B?Ar(o,i+C):[Number(o[i+C]),0],[f,m]=s?Ar(n,Q+C):[Number(n[Q+C]),0];WA(a,C,E+f,u+m)}return e}if(L(I)){let a=g;if(!L(A.dtype)||!L(r.dtype))for(let s=0;s<t;s++){let C=typeof o[i+s]=="bigint"?o[i+s]:BigInt(Math.round(Number(o[i+s]))),E=typeof n[Q+s]=="bigint"?n[Q+s]:BigInt(Math.round(Number(n[Q+s])));a[s]=C+E}else{let s=o,C=n;for(let E=0;E<t;E++)a[E]=s[i+E]+C[Q+E]}}else if(L(A.dtype)||L(r.dtype))for(let B=0;B<t;B++){let s=typeof o[i+B]=="bigint"?Number(o[i+B]):o[i+B],C=typeof n[Q+B]=="bigint"?Number(n[Q+B]):n[Q+B];g[B]=s+C}else if(i===0&&Q===0)for(let B=0;B<t;B++)g[B]=o[B]+n[B];else for(let B=0;B<t;B++)g[B]=o[i+B]+n[Q+B];return e}function l0(A,r){if(typeof r=="number")return D0(A,r);if(r.size===1&&!k(r.dtype)&&A.dtype===r.dtype){let I=Number(r.iget(0));return D0(A,I)}if(fr(A,r)){let I=Jm(A,r);return I||uY(A,r)}return yA(A,r,(I,e)=>I-e,"subtract")}function uY(A,r){let I=IA(A.dtype,r.dtype),e=d.zeros(Array.from(A.shape),I),t=A.size,o=A.data,n=r.data,g=e.data,i=A.offset,Q=r.offset;if(k(I)){let a=g,B=k(A.dtype),s=k(r.dtype);for(let C=0;C<t;C++){let[E,u]=B?Ar(o,i+C):[Number(o[i+C]),0],[f,m]=s?Ar(n,Q+C):[Number(n[Q+C]),0];WA(a,C,E-f,u-m)}return e}if(L(I)){let a=g;if(!L(A.dtype)||!L(r.dtype))for(let s=0;s<t;s++){let C=typeof o[i+s]=="bigint"?o[i+s]:BigInt(Math.round(Number(o[i+s]))),E=typeof n[Q+s]=="bigint"?n[Q+s]:BigInt(Math.round(Number(n[Q+s])));a[s]=C-E}else{let s=o,C=n;for(let E=0;E<t;E++)a[E]=s[i+E]-C[Q+E]}}else if(L(A.dtype)||L(r.dtype))for(let B=0;B<t;B++){let s=typeof o[i+B]=="bigint"?Number(o[i+B]):o[i+B],C=typeof n[Q+B]=="bigint"?Number(n[Q+B]):n[Q+B];g[B]=s-C}else if(i===0&&Q===0)for(let B=0;B<t;B++)g[B]=o[B]-n[B];else for(let B=0;B<t;B++)g[B]=o[i+B]-n[Q+B];return e}function h0(A,r){if(typeof r=="number")return f0(A,r);if(r.size===1&&!k(r.dtype)&&A.dtype===r.dtype){let I=Number(r.iget(0));return f0(A,I)}if(fr(A,r)){let I=Om(A,r);return I||cY(A,r)}return yA(A,r,(I,e)=>I*e,"multiply")}function cY(A,r){let I=IA(A.dtype,r.dtype),e=d.zeros(Array.from(A.shape),I),t=A.size,o=A.data,n=r.data,g=e.data,i=A.offset,Q=r.offset;if(k(I)){let a=g,B=k(A.dtype),s=k(r.dtype);for(let C=0;C<t;C++){let[E,u]=B?Ar(o,i+C):[Number(o[i+C]),0],[f,m]=s?Ar(n,Q+C):[Number(n[Q+C]),0],c=E*f-u*m,D=E*m+u*f;WA(a,C,c,D)}return e}if(L(I)){let a=g;if(!L(A.dtype)||!L(r.dtype))for(let s=0;s<t;s++){let C=typeof o[i+s]=="bigint"?o[i+s]:BigInt(Math.round(Number(o[i+s]))),E=typeof n[Q+s]=="bigint"?n[Q+s]:BigInt(Math.round(Number(n[Q+s])));a[s]=C*E}else{let s=o,C=n;for(let E=0;E<t;E++)a[E]=s[i+E]*C[Q+E]}}else if(L(A.dtype)||L(r.dtype))for(let B=0;B<t;B++){let s=typeof o[i+B]=="bigint"?Number(o[i+B]):o[i+B],C=typeof n[Q+B]=="bigint"?Number(n[Q+B]):n[Q+B];g[B]=s*C}else if(i===0&&Q===0)for(let B=0;B<t;B++)g[B]=o[B]*n[B];else for(let B=0;B<t;B++)g[B]=o[i+B]*n[Q+B];return e}function d0(A,r){if(typeof r=="number")return m0(A,r);if(r.size===1&&!k(r.dtype)&&!k(A.dtype)){let B=Number(r.iget(0));return m0(A,B)}let I=k(A.dtype),e=k(r.dtype);if(I||e){let B=IA(A.dtype,r.dtype);if(I&&e&&A.dtype===r.dtype&&fr(A,r)){let D=Zi(A,r);if(D)return D}let s=d.zeros(Array.from(A.shape),B),C=s.data,E=A.size,u=A.data,f=r.data,m=A.offset,c=r.offset;for(let D=0;D<E;D++){let[y,l]=I?Ar(u,m+D):[Number(u[m+D]),0],[h,b]=e?Ar(f,c+D):[Number(f[c+D]),0],p=h*h+b*b,w=(y*h+l*b)/p,N=(l*h-y*b)/p;WA(C,D,w,N)}return s}if(A.dtype===r.dtype&&fr(A,r)){let B=Zi(A,r);if(B)return B}let t=A.dtype==="float64",o=r.dtype==="float64",n=A.dtype==="float32",g=r.dtype==="float32",i;n&&g||(n||g)&&!t&&!o?i="float32":i="float64";let Q=A.dtype===i?A:FI(A,i),a=r.dtype===i?r:FI(r,i);if(fr(Q,a)){let B=Zi(Q,a);if(B)return B}return yA(Q,a,(B,s)=>B/s,"divide")}function FI(A,r){let I=d.zeros(Array.from(A.shape),r),e=A.size,t=I.data;if(A.isCContiguous){let o=A.data,n=A.offset;for(let g=0;g<e;g++)t[g]=Number(o[n+g])}else for(let o=0;o<e;o++)t[o]=Number(A.iget(o));return I}function c0(A,r){let I=bm(A,r);if(I)return I;let e=A.dtype,t=Array.from(A.shape),o=A.data,n=A.size,g=A.offset,i=A.isCContiguous,Q=d.zeros(t,e),a=Q.data;if(k(e)){let B=o,s=a;if(i)for(let C=0;C<n;C++){let[E,u]=Ar(B,g+C);WA(s,C,E+r,u)}else for(let C=0;C<n;C++){let E=A.iget(C),u=E.re??Number(E),f=E.im??0;WA(s,C,u+r,f)}}else if(L(e)){let B=a,s=BigInt(Math.round(r));if(i){let C=o;for(let E=0;E<n;E++)B[E]=C[g+E]+s}else for(let C=0;C<n;C++)B[C]=A.iget(C)+s}else if(i)if(g===0)for(let B=0;B<n;B++)a[B]=Number(o[B])+r;else for(let B=0;B<n;B++)a[B]=Number(o[g+B])+r;else for(let B=0;B<n;B++)a[B]=Number(A.iget(B))+r;return Q}function D0(A,r){let I=Um(A,r);if(I)return I;let e=A.dtype,t=Array.from(A.shape),o=A.data,n=A.size,g=A.offset,i=A.isCContiguous,Q=d.zeros(t,e),a=Q.data;if(k(e)){let B=o,s=a;if(i)for(let C=0;C<n;C++){let[E,u]=Ar(B,g+C);WA(s,C,E-r,u)}else for(let C=0;C<n;C++){let E=A.iget(C),u=E.re??Number(E),f=E.im??0;WA(s,C,u-r,f)}}else if(L(e)){let B=a,s=BigInt(Math.round(r));if(i){let C=o;for(let E=0;E<n;E++)B[E]=C[g+E]-s}else for(let C=0;C<n;C++)B[C]=A.iget(C)-s}else if(i)for(let B=0;B<n;B++)a[B]=Number(o[g+B])-r;else for(let B=0;B<n;B++)a[B]=Number(A.iget(B))-r;return Q}function f0(A,r){let I=Zm(A,r);if(I)return I;let e=A.dtype,t=Array.from(A.shape),o=A.data,n=A.size,g=A.offset,i=A.isCContiguous,Q=d.zeros(t,e),a=Q.data;if(k(e)){let B=o,s=a;if(i)for(let C=0;C<n;C++){let[E,u]=Ar(B,g+C);WA(s,C,E*r,u*r)}else for(let C=0;C<n;C++){let E=A.iget(C),u=E.re??Number(E),f=E.im??0;WA(s,C,u*r,f*r)}}else if(L(e)){let B=a,s=BigInt(Math.round(r));if(i){let C=o;for(let E=0;E<n;E++)B[E]=C[g+E]*s}else for(let C=0;C<n;C++)B[C]=A.iget(C)*s}else if(i)if(g===0)for(let B=0;B<n;B++)a[B]=Number(o[B])*r;else for(let B=0;B<n;B++)a[B]=Number(o[g+B])*r;else for(let B=0;B<n;B++)a[B]=Number(A.iget(B))*r;return Q}function m0(A,r){let I=A.dtype;if(k(I)){let s=Array.from(A.shape),C=A.data,E=A.size,u=A.offset,f=A.isCContiguous,m=d.zeros(s,I),c=m.data;if(f){let D=C;for(let y=0;y<E;y++){let[l,h]=Ar(D,u+y);WA(c,y,l/r,h/r)}}else for(let D=0;D<E;D++){let y=A.iget(D),l=y.re??Number(y),h=y.im??0;WA(c,D,l/r,h/r)}return m}let e=yy(A,r);if(e)return e;let o=I==="float32"||I==="float64"?A:FI(A,"float64"),n=Array.from(o.shape),g=o.size,i=d.zeros(n,o.dtype),Q=i.data,a=o.data,B=o.offset;if(o.isCContiguous)for(let s=0;s<g;s++)Q[s]=a[B+s]/r;else for(let s=0;s<g;s++)Q[s]=Number(o.iget(s))/r;return i}function b0(A){let r=qy(A);if(r)return r;let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.size,n=A.offset,g=A.isCContiguous;if(k(I)){let a=ne(I),B=d.zeros(e,a),s=B.data;if(g){let C=t;for(let E=0;E<o;E++){let u=C[(n+E)*2],f=C[(n+E)*2+1];s[E]=Math.sqrt(u*u+f*f)}}else for(let C=0;C<o;C++){let E=A.iget(C),u=E.re??Number(E),f=E.im??0;s[C]=Math.sqrt(u*u+f*f)}return B}let i=d.zeros(e,I),Q=i.data;if(L(I)){let a=Q;if(g){let B=t;for(let s=0;s<o;s++){let C=B[n+s];a[s]=C<0n?-C:C}}else for(let B=0;B<o;B++){let s=A.iget(B);a[B]=s<0n?-s:s}}else if(g)if(n===0)for(let a=0;a<o;a++)Q[a]=Math.abs(Number(t[a]));else for(let a=0;a<o;a++)Q[a]=Math.abs(Number(t[n+a]));else for(let a=0;a<o;a++)Q[a]=Math.abs(Number(A.iget(a)));return i}function p0(A){let r=py(A);if(r)return r;let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.size,n=A.offset,g=A.isCContiguous,i=d.zeros(e,I),Q=i.data;if(k(I)){let a=Q;if(g){let B=t;for(let s=0;s<o;s++){let[C,E]=Ar(B,n+s);WA(a,s,-C,-E)}}else for(let B=0;B<o;B++){let s=A.iget(B),C=s.re??Number(s),E=s.im??0;WA(a,B,-C,-E)}}else if(L(I)){let a=Q;if(g){let B=t;for(let s=0;s<o;s++)a[s]=-B[n+s]}else for(let B=0;B<o;B++)a[B]=-A.iget(B)}else if(g)if(n===0)for(let a=0;a<o;a++)Q[a]=-Number(t[a]);else for(let a=0;a<o;a++)Q[a]=-Number(t[n+a]);else for(let a=0;a<o;a++)Q[a]=-Number(A.iget(a));return i}function w0(A){eA(A.dtype,"sign","Sign is not defined for complex numbers.");let r=_y(A);if(r)return r;let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.size,n=A.offset,g=A.isCContiguous,i=d.zeros(e,I),Q=i.data;if(L(I)){let a=Q;if(g){let B=t;for(let s=0;s<o;s++){let C=B[n+s];a[s]=C>0n?1n:C<0n?-1n:0n}}else for(let B=0;B<o;B++){let s=A.iget(B);a[B]=s>0n?1n:s<0n?-1n:0n}}else if(g)for(let a=0;a<o;a++){let B=Number(t[n+a]);Q[a]=B>0?1:B<0?-1:0}else for(let a=0;a<o;a++){let B=Number(A.iget(a));Q[a]=B>0?1:B<0?-1:0}return i}function ji(A,r){return eA(A.dtype,"mod","Modulo is not defined for complex numbers."),typeof r!="number"&&eA(r.dtype,"mod","Modulo is not defined for complex numbers."),typeof r=="number"?DY(A,r):yA(A,r,(I,e)=>(I%e+e)%e,"mod")}function DY(A,r){let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.size,n=A.offset,g=A.isCContiguous,i=d.zeros(e,I),Q=i.data;if(L(I)){let a=Q,B=BigInt(Math.round(r));if(g){let s=t;for(let C=0;C<o;C++){let E=s[n+C];a[C]=(E%B+B)%B}}else for(let s=0;s<o;s++){let C=A.iget(s);a[s]=(C%B+B)%B}}else if(g)for(let a=0;a<o;a++){let B=Number(t[n+a]);Q[a]=(B%r+r)%r}else for(let a=0;a<o;a++){let B=Number(A.iget(a));Q[a]=(B%r+r)%r}return i}function Is(A,r){return eA(A.dtype,"floor_divide","Floor division is not defined for complex numbers."),typeof r!="number"&&eA(r.dtype,"floor_divide","Floor division is not defined for complex numbers."),typeof r=="number"?fY(A,r):yA(A,r,(I,e)=>Math.floor(I/e),"floor_divide")}function fY(A,r){let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.size,n=A.offset,g=A.isCContiguous,i=d.zeros(e,I),Q=i.data;if(L(I)){let a=Q,B=BigInt(Math.round(r));if(g){let s=t;for(let C=0;C<o;C++)a[C]=s[n+C]/B}else for(let s=0;s<o;s++)a[s]=A.iget(s)/B}else if(g)for(let a=0;a<o;a++)Q[a]=Math.floor(Number(t[n+a])/r);else for(let a=0;a<o;a++)Q[a]=Math.floor(Number(A.iget(a))/r);return i}function N0(A){let r=A.dtype,I=Array.from(A.shape),e=A.data,t=A.size,o=A.offset,n=A.isCContiguous,g=d.zeros(I,r),i=g.data;if(k(r)){let Q=i;if(n){let a=e;Q.set(a.subarray(o*2,(o+t)*2))}else for(let a=0;a<t;a++){let B=A.iget(a);Q[a*2]=B.re??Number(B),Q[a*2+1]=B.im??0}}else if(n)i.set(e.subarray(o,o+t));else for(let Q=0;Q<t;Q++)i[Q]=A.iget(Q);return g}function F0(A){let r=Zl(A);if(r)return r;let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.size,n=A.offset,g=A.isCContiguous;if(k(I)){let s=d.zeros(e,I),C=s.data;if(g){let E=t;for(let u=0;u<o;u++){let f=E[(n+u)*2],m=E[(n+u)*2+1],c=f*f+m*m;C[u*2]=f/c,C[u*2+1]=-m/c}}else for(let E=0;E<o;E++){let u=A.iget(E),f=u.re??Number(u),m=u.im??0,c=f*f+m*m;C[E*2]=f/c,C[E*2+1]=-m/c}return s}let Q=I!=="float32"&&I!=="float64"?"float64":I,a=d.zeros(e,Q),B=a.data;if(g)if(n===0)for(let s=0;s<o;s++)B[s]=1/Number(t[s]);else for(let s=0;s<o;s++)B[s]=1/Number(t[n+s]);else for(let s=0;s<o;s++)B[s]=1/Number(A.iget(s));return a}function G0(A){let r=A.dtype;eA(r,"cbrt","cbrt is not supported for complex numbers.");let I=Array.from(A.shape),e=A.data,t=A.size,o=A.offset,g=r!=="float32"&&r!=="float64"?"float64":r,i=d.zeros(I,g),Q=i.data;if(A.isCContiguous)for(let a=0;a<t;a++)Q[a]=Math.cbrt(Number(e[o+a]));else for(let a=0;a<t;a++)Q[a]=Math.cbrt(Number(A.iget(a)));return i}function S0(A){let r=A.dtype;eA(r,"fabs","fabs is only for real numbers. Use absolute() for complex.");let I=Array.from(A.shape),e=A.data,t=A.size,o=A.offset,n=r==="float32"?"float32":"float64",g=d.zeros(I,n),i=g.data;if(A.isCContiguous)if(o===0)for(let Q=0;Q<t;Q++)i[Q]=Math.abs(Number(e[Q]));else for(let Q=0;Q<t;Q++)i[Q]=Math.abs(Number(e[o+Q]));else for(let Q=0;Q<t;Q++)i[Q]=Math.abs(Number(A.iget(Q)));return g}function R0(A,r){let I=Is(A,r),e=ji(A,r);return[I,e]}function k0(A){let r=Kl(A);if(r)return r;let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.size,n=d.zeros(e,I),g=n.data;if(k(I)){let i=t,Q=g;for(let a=0;a<o;a++){let B=i[a*2],s=i[a*2+1];Q[a*2]=B*B-s*s,Q[a*2+1]=2*B*s}}else if(L(I)){let i=t,Q=g;for(let a=0;a<o;a++)Q[a]=i[a]*i[a]}else for(let i=0;i<o;i++){let Q=Number(t[i]);g[i]=Q*Q}return n}function q0(A,r){return ji(A,r)}function es(A,r){eA(A.dtype,"heaviside","Heaviside step function is not defined for complex numbers."),typeof r!="number"&&eA(r.dtype,"heaviside","Heaviside step function is not defined for complex numbers.");let I=A.dtype,e=Array.from(A.shape),t=A.size,o=I==="float32"?"float32":"float64",n=A.dtype===o?A:FI(A,o);if(typeof r!="number"&&r.size===1)return es(A,Number(r.iget(0)));if(typeof r=="number"){let g=e0(n,r,o);if(g)return g;let i=d.zeros(e,o),Q=i.data;if(n.isCContiguous){let a=n.data,B=n.offset;for(let s=0;s<t;s++){let C=a[B+s];Q[s]=C<0?0:C===0?r:1}}else for(let a=0;a<t;a++){let B=Number(A.iget(a));Q[a]=B<0?0:B===0?r:1}return i}else{let g=r.shape,i=r.dtype===o?r:FI(r,o);if(e.every((Q,a)=>Q===g[a])){let Q=t0(n,i,o);if(Q)return Q;let a=d.zeros(e,o),B=a.data;if(n.isCContiguous&&i.isCContiguous){let s=n.data,C=n.offset,E=i.data,u=i.offset;for(let f=0;f<t;f++){let m=s[C+f];B[f]=m<0?0:m===0?E[u+f]:1}}else for(let s=0;s<t;s++){let C=Number(A.iget(s));B[s]=C<0?0:C===0?Number(r.iget(s)):1}return a}else{let Q=d.zeros(e,o),a=Q.data;for(let B=0;B<t;B++){let s=Number(A.iget(B)),C=B%r.size;a[B]=s<0?0:s===0?Number(r.iget(C)):1}return Q}}}function M0(A,r){let I=A.dtype;if(k(I)){let e=A.size,t=d.zeros(Array.from(A.shape),I),o=t.data;if(typeof r=="number")if(A.isCContiguous){let n=A.data,g=A.offset;for(let i=0;i<e;i++){let Q=n[(g+i)*2],a=n[(g+i)*2+1],B=Math.hypot(Q,a),s=Math.atan2(a,Q),C=Math.pow(B,r),E=s*r;o[i*2]=C*Math.cos(E),o[i*2+1]=C*Math.sin(E)}}else for(let n=0;n<e;n++){let g=A.iget(n),i=Math.hypot(g.re,g.im),Q=Math.atan2(g.im,g.re),a=Math.pow(i,r),B=Q*r;o[n*2]=a*Math.cos(B),o[n*2+1]=a*Math.sin(B)}else{let n=k(r.dtype);if(A.isCContiguous&&r.isCContiguous){let g=A.data,i=A.offset,Q=r.data,a=r.offset;for(let B=0;B<e;B++){let s=g[(i+B)*2],C=g[(i+B)*2+1],E,u;if(n){let b=Q;E=b[(a+B)*2],u=b[(a+B)*2+1]}else E=Number(Q[a+B]),u=0;let f=Math.hypot(s,C),m=Math.atan2(C,s),c=Math.log(f),D=m,y=E*c-u*D,l=E*D+u*c,h=Math.exp(y);o[B*2]=h*Math.cos(l),o[B*2+1]=h*Math.sin(l)}}else for(let g=0;g<e;g++){let i=A.iget(g),Q,a;if(n){let c=r.iget(g);Q=c.re,a=c.im}else Q=Number(r.iget(g)),a=0;let B=Math.hypot(i.re,i.im),s=Math.atan2(i.im,i.re),C=Math.log(B),E=s,u=Q*C-a*E,f=Q*E+a*C,m=Math.exp(u);o[g*2]=m*Math.cos(f),o[g*2+1]=m*Math.sin(f)}}return t}if(typeof r=="number"){let e=d.zeros(Array.from(A.shape),"float64"),t=e.data,o=A.size;if(A.isCContiguous){let n=A.data,g=A.offset;for(let i=0;i<o;i++)t[i]=Math.pow(Number(n[g+i]),r)}else for(let n=0;n<o;n++)t[n]=Math.pow(Number(A.iget(n)),r);return e}return yA(A,r,(e,t)=>Math.pow(e,t),"float_power")}function x0(A,r){if(eA(A.dtype,"fmod","fmod is not defined for complex numbers."),typeof r!="number"&&eA(r.dtype,"fmod","fmod is not defined for complex numbers."),typeof r=="number"){let I=A.copy(),e=I.data,t=A.size;for(let o=0;o<t;o++){let n=Number(e[o]);e[o]=n-Math.trunc(n/r)*r}return I}return yA(A,r,(I,e)=>I-Math.trunc(I/e)*e,"fmod")}function J0(A){eA(A.dtype,"frexp","frexp is not defined for complex numbers.");let r=a0(A);if(r)return r;let I=d.zeros(Array.from(A.shape),"float64"),e=d.zeros(Array.from(A.shape),"int32"),t=I.data,o=e.data,n=A.size;if(A.isCContiguous){let g=A.data,i=A.offset;for(let Q=0;Q<n;Q++){let a=Number(g[i+Q]);if(a===0||!isFinite(a))t[Q]=a,o[Q]=0;else{let B=Math.floor(Math.log2(Math.abs(a)))+1;t[Q]=a/Math.pow(2,B),o[Q]=B}}}else for(let g=0;g<n;g++){let i=Number(A.iget(g));if(i===0||!isFinite(i))t[g]=i,o[g]=0;else{let Q=Math.floor(Math.log2(Math.abs(i)))+1;t[g]=i/Math.pow(2,Q),o[g]=Q}}return[I,e]}function U0(A,r){eA(A.dtype,"gcd","GCD is only defined for integers."),typeof r!="number"&&eA(r.dtype,"gcd","GCD is only defined for integers.");let I=(g,i)=>{for(g=Math.abs(Math.trunc(g)),i=Math.abs(Math.trunc(i));i!==0;){let Q=i;i=g%i,g=Q}return g};if(typeof r=="number"){let g=rs(A,r);if(g)return g;let i=d.zeros(Array.from(A.shape),"int32"),Q=i.data,a=A.size,B=Math.abs(Math.trunc(r));if(A.isCContiguous){let s=A.data,C=A.offset;for(let E=0;E<a;E++)Q[E]=I(Number(s[C+E]),B)}else for(let s=0;s<a;s++)Q[s]=I(Number(A.iget(s)),B);return i}if(typeof r!="number"&&r.size===1){let g=Number(r.iget(0)),i=rs(A,g);if(i)return i}if(typeof r!="number"&&fr(A,r)){let g=u0(A,r);if(g)return g}let e=yA(A,r,I,"gcd"),t=d.zeros(Array.from(e.shape),"int32"),o=t.data,n=e.size;if(e.isCContiguous){let g=e.data,i=e.offset;for(let Q=0;Q<n;Q++)o[Q]=Math.round(Number(g[i+Q]))}else for(let g=0;g<n;g++)o[g]=Math.round(Number(e.iget(g)));return t}function L0(A,r){eA(A.dtype,"lcm","LCM is only defined for integers."),typeof r!="number"&&eA(r.dtype,"lcm","LCM is only defined for integers.");let I=(i,Q)=>{for(i=Math.abs(Math.trunc(i)),Q=Math.abs(Math.trunc(Q));Q!==0;){let a=Q;Q=i%Q,i=a}return i},e=(i,Q)=>(i=Math.abs(Math.trunc(i)),Q=Math.abs(Math.trunc(Q)),i===0||Q===0?0:i*Q/I(i,Q));if(typeof r=="number"){let i=d.zeros(Array.from(A.shape),"int32"),Q=i.data,a=A.size,B=Math.abs(Math.trunc(r));if(A.isCContiguous){let s=A.data,C=A.offset;for(let E=0;E<a;E++)Q[E]=e(Number(s[C+E]),B)}else for(let s=0;s<a;s++)Q[s]=e(Number(A.iget(s)),B);return i}let t=yA(A,r,e,"lcm"),o=d.zeros(Array.from(t.shape),"int32"),n=o.data,g=t.size;if(t.isCContiguous){let i=t.data,Q=t.offset;for(let a=0;a<g;a++)n[a]=Math.round(Number(i[Q+a]))}else for(let i=0;i<g;i++)n[i]=Math.round(Number(t.iget(i)));return o}function ts(A,r){if(eA(A.dtype,"ldexp","ldexp is not defined for complex numbers."),typeof r!="number"&&(eA(r.dtype,"ldexp","ldexp is not defined for complex numbers."),r.size===1))return ts(A,Number(r.iget(0)));if(typeof r=="number"){let I=A.dtype==="float32"?"float32":"float64",e=A.dtype===I?A:FI(A,I),t=g0(e,r);if(t)return t;let o=d.zeros(Array.from(A.shape),"float64"),n=o.data,g=A.size,i=Math.pow(2,r);if(A.isCContiguous){let Q=A.data,a=A.offset;for(let B=0;B<g;B++)n[B]=Number(Q[a+B])*i}else for(let Q=0;Q<g;Q++)n[Q]=Number(A.iget(Q))*i;return o}return yA(A,r,(I,e)=>I*Math.pow(2,e),"ldexp")}function H0(A){eA(A.dtype,"modf","modf is not defined for complex numbers.");let r=d.zeros(Array.from(A.shape),"float64"),I=d.zeros(Array.from(A.shape),"float64"),e=r.data,t=I.data,o=A.size;for(let n=0;n<o;n++){let g=Number(A.iget(n)),i=Math.trunc(g);t[n]=i,e[n]=g-i}return[r,I]}function _0(A,r,I){if(eA(A.dtype,"clip","clip is not supported for complex numbers."),(r===null||typeof r=="number")&&(I===null||typeof I=="number")){let w=Yl(A,r===null?-1/0:r,I===null?1/0:I);if(w)return w}let e=A.dtype,t=Array.from(A.shape),o=A.size,n=d.zeros(t,e),g=n.data,i=r===null||typeof r=="number",Q=I===null||typeof I=="number",a=r===null?-1/0:typeof r=="number"?r:null,B=I===null?1/0:typeof I=="number"?I:null,s=A.isCContiguous,C=A.data,E=A.offset,u=!i&&r.isCContiguous,f=i?null:r.data,m=i?0:r.offset,c=i?0:r.size,D=!Q&&I.isCContiguous,y=Q?null:I.data,l=Q?0:I.offset,h=Q?0:I.size;if(L(e)){let b=g;if(s&&(i||u)&&(Q||D)){let p=C,w=f,N=y;for(let F=0;F<o;F++){let S=p[E+F],x=i?a===-1/0?S:BigInt(Math.round(a)):w[m+F%c],H=Q?B===1/0?S:BigInt(Math.round(B)):N[l+F%h];S<x&&(S=x),S>H&&(S=H),b[F]=S}}else for(let p=0;p<o;p++){let w=A.iget(p),N=i?a===-1/0?w:BigInt(Math.round(a)):r.iget(p%r.size),F=Q?B===1/0?w:BigInt(Math.round(B)):I.iget(p%I.size);w<N&&(w=N),w>F&&(w=F),b[p]=w}}else if(s&&(i||u)&&(Q||D))for(let b=0;b<o;b++){let p=Number(C[E+b]),w=i?a:Number(f[m+b%c]),N=Q?B:Number(y[l+b%h]);p<w&&(p=w),p>N&&(p=N),g[b]=p}else for(let b=0;b<o;b++){let p=Number(A.iget(b)),w=i?a:Number(r.iget(b%r.size)),N=Q?B:Number(I.iget(b%I.size));p<w&&(p=w),p>N&&(p=N),g[b]=p}return n}function Y0(A,r){if(eA(A.dtype,"maximum","maximum is not supported for complex numbers."),typeof r!="number"&&eA(r.dtype,"maximum","maximum is not supported for complex numbers."),typeof r=="number"){let I=pe(A,r);if(I)return I}else if(r.size===1){let I=pe(A,Number(r.iget(0)));if(I)return I}else if(fr(A,r)){let I=KB(A,r);if(I)return I}if(typeof r=="number"){let I=A.dtype,e=Array.from(A.shape),t=A.size,o=d.zeros(e,I),n=o.data,g=A.data;if(L(I)){let i=n,Q=g,a=BigInt(Math.round(r));for(let B=0;B<t;B++)i[B]=Q[B]>a?Q[B]:a}else for(let i=0;i<t;i++){let Q=Number(g[i]);n[i]=isNaN(Q)||isNaN(r)?NaN:Math.max(Q,r)}return o}return yA(A,r,(I,e)=>isNaN(I)||isNaN(e)?NaN:Math.max(I,e),"maximum")}function v0(A,r){if(eA(A.dtype,"minimum","minimum is not supported for complex numbers."),typeof r!="number"&&eA(r.dtype,"minimum","minimum is not supported for complex numbers."),typeof r=="number"){let I=de(A,r);if(I)return I}else if(r.size===1){let I=de(A,Number(r.iget(0)));if(I)return I}else if(fr(A,r)){let I=PB(A,r);if(I)return I}if(typeof r=="number"){let I=A.dtype,e=Array.from(A.shape),t=A.size,o=d.zeros(e,I),n=o.data,g=A.data;if(L(I)){let i=n,Q=g,a=BigInt(Math.round(r));for(let B=0;B<t;B++)i[B]=Q[B]<a?Q[B]:a}else for(let i=0;i<t;i++){let Q=Number(g[i]);n[i]=isNaN(Q)||isNaN(r)?NaN:Math.min(Q,r)}return o}return yA(A,r,(I,e)=>isNaN(I)||isNaN(e)?NaN:Math.min(I,e),"minimum")}function X0(A,r){if(eA(A.dtype,"fmax","fmax is not supported for complex numbers."),typeof r!="number"&&eA(r.dtype,"fmax","fmax is not supported for complex numbers."),typeof r=="number"){let I=pe(A,r);if(I)return I}else if(r.size===1){let I=pe(A,Number(r.iget(0)));if(I)return I}else if(fr(A,r)){let I=KB(A,r);if(I)return I}if(typeof r=="number"){let I=A.dtype,e=Array.from(A.shape),t=A.size,o=d.zeros(e,I),n=o.data,g=A.data;if(L(I)){let i=n,Q=g,a=BigInt(Math.round(r));for(let B=0;B<t;B++)i[B]=Q[B]>a?Q[B]:a}else for(let i=0;i<t;i++){let Q=Number(g[i]);isNaN(Q)?n[i]=r:isNaN(r)?n[i]=Q:n[i]=Math.max(Q,r)}return o}return yA(A,r,(I,e)=>isNaN(I)?e:isNaN(e)?I:Math.max(I,e),"fmax")}function T0(A,r){if(eA(A.dtype,"fmin","fmin is not supported for complex numbers."),typeof r!="number"&&eA(r.dtype,"fmin","fmin is not supported for complex numbers."),typeof r=="number"){let I=de(A,r);if(I)return I}else if(r.size===1){let I=de(A,Number(r.iget(0)));if(I)return I}else if(fr(A,r)){let I=PB(A,r);if(I)return I}if(typeof r=="number"){let I=A.dtype,e=Array.from(A.shape),t=A.size,o=d.zeros(e,I),n=o.data,g=A.data;if(L(I)){let i=n,Q=g,a=BigInt(Math.round(r));for(let B=0;B<t;B++)i[B]=Q[B]<a?Q[B]:a}else for(let i=0;i<t;i++){let Q=Number(g[i]);isNaN(Q)?n[i]=r:isNaN(r)?n[i]=Q:n[i]=Math.min(Q,r)}return o}return yA(A,r,(I,e)=>isNaN(I)?e:isNaN(e)?I:Math.min(I,e),"fmin")}function P0(A,r=0,I,e){eA(A.dtype,"nan_to_num","nan_to_num is not supported for complex numbers.");let t=A.dtype,o=Array.from(A.shape),n=A.size,g=I!==void 0?I:Number.MAX_VALUE,i=e!==void 0?e:-Number.MAX_VALUE,Q=d.zeros(o,t),a=Q.data,B=A.data;if(pA(t))a.set(B.subarray(A.offset,A.offset+n));else for(let s=0;s<n;s++){let C=Number(B[s]);isNaN(C)?a[s]=r:C===1/0?a[s]=g:C===-1/0?a[s]=i:a[s]=C}return Q}function K0(A,r,I,e,t){eA(A.dtype,"interp","interp is not supported for complex numbers."),eA(r.dtype,"interp","interp is not supported for complex numbers."),eA(I.dtype,"interp","interp is not supported for complex numbers.");let o=Array.from(A.shape),n=A.size,g=d.zeros(o,"float64"),i=g.data,Q=A.data,a=r.data,B=I.data,s=r.size,C=e!==void 0?e:Number(B[0]),E=t!==void 0?t:Number(B[s-1]);for(let u=0;u<n;u++){let f=Number(Q[u]);if(f<=Number(a[0])){i[u]=C;continue}if(f>=Number(a[s-1])){i[u]=E;continue}let m=0,c=s-1;for(;c-m>1;){let p=Math.floor((m+c)/2);Number(a[p])<=f?m=p:c=p}let D=Number(a[m]),y=Number(a[c]),l=Number(B[m]),h=Number(B[c]),b=(f-D)/(y-D);i[u]=l+b*(h-l)}return g}function V0(A,r=Math.PI,I=-1,e=2*Math.PI){eA(A.dtype,"unwrap","unwrap is not supported for complex numbers.");let t=Array.from(A.shape),o=t.length;if(I<0&&(I+=o),I<0||I>=o)throw new Error(`axis ${I} is out of bounds for array of dimension ${o}`);if(o===1){let Q=A.size,a=d.zeros(t,"float64"),B=a.data,s=A.data;if(Q===0)return a;B[0]=Number(s[0]);let C=0;for(let E=1;E<Q;E++){let u=Number(s[E-1]),f=Number(s[E]),m=f-u;m=(m+e/2)%e-e/2,m===-e/2&&f-u>0&&(m=e/2),Math.abs(m)>r&&(C-=Math.round((f-u-m)/e)*e),B[E]=f+C}return a}let n=d.zeros(t,"float64"),g=n.data,i=A.data;for(let Q=0;Q<A.size;Q++)g[Q]=Number(i[Q]);if(o===2){let[Q,a]=t;if(I===0)for(let B=0;B<a;B++){let s=0;for(let C=1;C<Q;C++){let E=(C-1)*a+B,u=C*a+B,f=g[E],m=g[u],c=m-f;c=(c+e/2)%e-e/2,c===-e/2&&m-f>0&&(c=e/2),Math.abs(c)>r&&(s-=Math.round((m-f-c)/e)*e),g[u]=m+s}}else for(let B=0;B<Q;B++){let s=0;for(let C=1;C<a;C++){let E=B*a+(C-1),u=B*a+C,f=g[E],m=g[u],c=m-f;c=(c+e/2)%e-e/2,c===-e/2&&m-f>0&&(c=e/2),Math.abs(c)>r&&(s-=Math.round((m-f-c)/e)*e),g[u]=m+s}}}return n}function W0(A){eA(A.dtype,"sinc","sinc is not supported for complex numbers.");let r=Array.from(A.shape),I=A.size,e=d.zeros(r,"float64"),t=e.data,o=A.data;for(let n=0;n<I;n++){let g=Number(o[n]);if(g===0)t[n]=1;else{let i=Math.PI*g;t[n]=Math.sin(i)/i}}return e}function O0(A){eA(A.dtype,"i0","i0 is not supported for complex numbers.");let r=Array.from(A.shape),I=A.size,e=d.zeros(r,"float64"),t=e.data,o=A.data;for(let n=0;n<I;n++){let g=Math.abs(Number(o[n]));t[n]=mY(g)}return e}function mY(A){let r=Math.abs(A);if(r<3.75){let I=A/3.75,e=I*I;return 1+e*(3.5156229+e*(3.0899424+e*(1.2067492+e*(.2659732+e*(.0360768+e*.0045813)))))}else{let I=3.75/r;return Math.exp(r)/Math.sqrt(r)*(.39894228+I*(.01328592+I*(.00225319+I*(-.00157565+I*(.00916281+I*(-.02057706+I*(.02635537+I*(-.01647633+I*.00392377))))))))}}var lY="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",qe=null;function GI(){if(qe)return qe;let A=atob(lY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);qe=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=qe.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),qe}function Z0(A,r,I){GI().exports.sqrt_f64(A,r,I)}function z0(A,r,I){GI().exports.sqrt_f32(A,r,I)}function os(A,r,I){GI().exports.sqrt_i64(A,r,I)}function ns(A,r,I){GI().exports.sqrt_i32(A,r,I)}function is(A,r,I){GI().exports.sqrt_i16(A,r,I)}function gs(A,r,I){GI().exports.sqrt_i8(A,r,I)}var hY=64,dY={float64:Z0,float32:z0},bY={int64:os,uint64:os,int32:ns,uint32:ns,int16:is,uint16:is,int8:gs,uint8:gs},j0={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function $0(A){if(!A.isCContiguous)return null;let r=A.size;if(r<hY*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=dY[I];if(e){let o=j0[I],n=o.BYTES_PER_ELEMENT;J(r*n*2),U();let g=A.data.subarray(A.offset,A.offset+r),i=q(g),Q=_(r*n);e(i,Q,r);let a=v(Q,r,o);return d.fromData(a,Array.from(A.shape),I)}let t=bY[I];if(t){let n=j0[I].BYTES_PER_ELEMENT,g=8;J(r*n+r*g),U();let i=A.data.subarray(A.offset,A.offset+r),Q=q(i),a=_(r*g);t(Q,a,r);let B=v(a,r,Float64Array);return d.fromData(B,Array.from(A.shape),"float64")}return null}var pY="AGFzbQEAAAABMwhgBH9/f38AYAJ8fAF8YAJ/fABgAnx/AXxgBH9/f3wAYAR/f399AGAEf39/fgBgAXwBfAIPAQNlbnYGbWVtb3J5AgARAxMSAAECAwQABQAGAAAAAAAAAwcHBgkBfwFBgIDAAAsHuQEMCXBvd2VyX2Y2NAAAEHBvd2VyX3NjYWxhcl9mNjQABAlwb3dlcl9mMzIABRBwb3dlcl9zY2FsYXJfZjMyAAYJcG93ZXJfaTY0AAcQcG93ZXJfc2NhbGFyX2k2NAAICXBvd2VyX2kzMgAJEHBvd2VyX3NjYWxhcl9pMzIACglwb3dlcl9pMTYACxBwb3dlcl9zY2FsYXJfaTE2AAwIcG93ZXJfaTgADQ9wb3dlcl9zY2FsYXJfaTgADgq4KBJAAAJAIANFDQADQCACIAArAwAgASsDABCBgICAADkDACACQQhqIQIgAEEIaiEAIAFBCGohASADQX9qIgMNAAsLC40IBgF/AXwBfwJ8AX4DfyOAgICAAEEQayICJICAgIAARAAAAAAAAPA/IQMCQCABRAAAAAAAAAAAYQ0AIABEAAAAAAAA8D9hDQBEAAAAAAAA+H8hAyAAIABiIAEgAWIiBHINAAJAIAFEAAAAAAAA8D9iDQAgACEDDAELAkACQAJAAkAgAEQAAAAAAAAAAGENACABmSIFRAAAAAAAAPB/YQ0BIACZRAAAAAAAAPB/Yg0DIABEAAAAAAAA8P9iDQJEAAAAAAAAAIAhAEQAAAAAAAD4f0QAAAAAAAAAgCAEGyEDIAQNBCABRAAAAAAAAPC/YQ0EIAGaIQELIAGZIQMCQCABRAAAAAAAAAAAY0UNAAJAIANEAAAAAAAAQENmRQ0ARAAAAAAAAPB/IQMMBQtEAAAAAAAA8H8gAKZEAAAAAAAA8H8gAZ0iAPwGp0EBcRtEAAAAAAAA8H8gASAAYRshAwwECwJAIANEAAAAAAAAQENmRQ0ARAAAAAAAAAAAIQMMBAsgAEQAAAAAAAAAACABnSID/AanQQFxG0QAAAAAAAAAACABIANhGyEDDAMLAkAgAEQAAAAAAADwv2INAEQAAAAAAADwPyEDDAMLRAAAAAAAAAAARAAAAAAAAPB/IACZRAAAAAAAAPA/YyABRAAAAAAAAPB/YnMbIQMMAgtEAAAAAAAAAAAhAyABRAAAAAAAAAAAYw0BIAFEAAAAAAAAAABkRQ0ARAAAAAAAAPB/IQMMAQsCQCABRAAAAAAAAOA/YQ0AAkAgAUQAAAAAAADgv2INAEQAAAAAAADwPyAAn6MhAwwCCwJAIAUgBZ0iBqEiBUQAAAAAAAAAAGENAEQAAAAAAAD4fyEDIABEAAAAAAAAAABjDQILAkAgBkQAAAAAAADgQ2ZFDQAgASAAEJGAgIAAohCQgICAACEDDAILAkACQCAFRAAAAAAAAAAAYg0ARAAAAAAAAPA/IQMMAQsgBkQAAAAAAADwP6AgBiAFRAAAAAAAAOA/ZCIEGyEGIAAQkYCAgAAgBUQAAAAAAADwv6AgBSAEG6IQkICAgAAhAwsgAiAAEIKAgIAAAkACQCAG/AYiB1BFDQBBACEIDAELIAIoAgghBCACKwMAIQBBACEIA0ACQCAEQf9fakH+v39LDQAgCCAEaiEIDAILIAMgACADoiAHQgGDUCIJGyEDIAAgAKIiACAAoCAAIABEAAAAAAAA4D9jIgobIQAgCEEAIAQgCRtqIQggB0ICVCEJIARBAXQgCmshBCAHQgGHIQcgCUUNAAsLAkAgAUQAAAAAAAAAAGNFDQBBACAIayEIRAAAAAAAAPA/IAOjIQMLIAMgCBCDgICAACEDDAELIACfIQMLIAJBEGokgICAgAAgAwvJAQMBfwF+An9BACECAkACQAJAIAG9IgNCNIinIgRB/w9xIgVFDQAgBUH/D0cNAQwCCyADQv////////8Hg1ANASADQoCAgICAgICAgH+DIAMgA0IMhnmnIgJBAWqthkL/////////B4NCACACQT9xQTNJG4RCgICAgICAgPA/hCEDQYJ4IAJrIQIMAQsgA0L/////////h4B/g0KAgICAgICA8D+EIQMgBEH/D3FBgnhqIQILIABBADYCDCAAIAI2AgggACADNwMAC84CAgN+An8CQAJAIAAgAGINACAAvSICQv///////////wCDQoCAgICAgID4/wBaDQAgAkKAgICAgICAgIB/gyEDQQsgAkIBhiIEeadrIARCNYinIARCgICAgICAgBBUGyEFAkAgAUEASA0AAkAgAUH+DyAFa0wNAEQAAAAAAADwfyAApg8LAkAgBSABaiIGQQBKDQAgAiABrYYgA4S/DwsCQCAFQQBKDQAgAkEBIAVrrYZC/////////weDIAat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",Me=null;function or(){if(Me)return Me;let A=atob(pY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Me=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Me.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Me}function Ah(A,r,I,e){or().exports.power_f64(A,r,I,e)}function Qs(A,r,I,e){or().exports.power_scalar_f64(A,r,I,e)}function rh(A,r,I,e){or().exports.power_f32(A,r,I,e)}function Ih(A,r,I,e){or().exports.power_scalar_f32(A,r,I,e)}function as(A,r,I,e){or().exports.power_i64(A,r,I,e)}function Bs(A,r,I,e){or().exports.power_scalar_i64(A,r,I,BigInt(Math.round(e)))}function ss(A,r,I,e){or().exports.power_i32(A,r,I,e)}function Cs(A,r,I,e){or().exports.power_scalar_i32(A,r,I,e)}function Es(A,r,I,e){or().exports.power_i16(A,r,I,e)}function us(A,r,I,e){or().exports.power_scalar_i16(A,r,I,e)}function cs(A,r,I,e){or().exports.power_i8(A,r,I,e)}function Ds(A,r,I,e){or().exports.power_scalar_i8(A,r,I,e)}var eh=64,wY={float64:Ah,float32:rh,int64:as,uint64:as,int32:ss,uint32:ss,int16:Es,uint16:Es,int8:cs,uint8:cs},NY={float64:Qs,float32:Ih,int64:Bs,uint64:Bs,int32:Cs,uint32:Cs,int16:us,uint16:us,int8:Ds,uint8:Ds},th={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function oh(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<eh*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=wY[e],o=th[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n,Q=I*n;J(g+i+Q),U();let a=A.offset,B=r.offset,s=A.data.subarray(a,a+I),C=r.data.subarray(B,B+I),E=q(s),u=q(C),f=_(Q);t(E,u,f,I);let m=v(f,I,o);return d.fromData(m,Array.from(A.shape),e)}function nh(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<eh*Y.thresholdMultiplier)return null;let e=A.dtype;if(e!=="float32"&&e!=="float64"&&(r<0||!Number.isInteger(r))){J(I*8*2),U();let f=A.offset,m=A.data,c=new Float64Array(I);if(L(e))for(let h=0;h<I;h++)c[h]=Number(m[f+h]);else for(let h=0;h<I;h++)c[h]=m[f+h];let D=q(c),y=_(I*8);Qs(D,y,I,r);let l=v(y,I,Float64Array);return d.fromData(l,Array.from(A.shape),"float64")}let o=NY[e],n=th[e];if(!o||!n)return null;let g=n.BYTES_PER_ELEMENT,i=I*g,Q=I*g;J(i+Q),U();let a=A.offset,B=A.data.subarray(a,a+I),s=q(B),C=_(Q);o(s,C,I,r);let E=v(C,I,n);return d.fromData(E,Array.from(A.shape),e)}var FY="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",xe=null;function $i(){if(xe)return xe;let A=atob(FY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);xe=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=xe.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),xe}function fs(A,r,I){$i().exports.exp_f64(A,r,I)}function ih(A,r,I){$i().exports.exp_f32(A,r,I)}function gh(A,r,I){$i().exports.exp_i64(A,r,I)}function Qh(A,r,I){$i().exports.exp_u64(A,r,I)}var GY=64,SY={float64:fs,float32:ih};function ah(A){if(!A.isCContiguous)return null;let r=A.size;if(r<GY*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=SY[I];if(e){let B=I==="float32",s=B?4:8,C=B?Float32Array:Float64Array;J(r*s*2),U();let E=A.offset,u=A.data.subarray(E,E+r),f=q(u),m=_(r*s);e(f,m,r);let c=v(m,r,C);return d.fromData(c,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){J(r*16),U();let B=A.offset,s=A.data.subarray(B,B+r),C=q(s),E=_(r*8);(I==="int64"?gh:Qh)(C,E,r);let u=v(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let t=8;J(r*t*2),U();let o=A.offset,n=A.data,g=new Float64Array(r);if(L(I))for(let B=0;B<r;B++)g[B]=Number(n[o+B]);else for(let B=0;B<r;B++)g[B]=n[o+B];let i=q(g),Q=_(r*t);fs(i,Q,r);let a=v(Q,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var RY="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",Je=null;function Ag(){if(Je)return Je;let A=atob(RY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Je=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Je.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Je}function ms(A,r,I){Ag().exports.exp2_f64(A,r,I)}function Bh(A,r,I){Ag().exports.exp2_f32(A,r,I)}function sh(A,r,I){Ag().exports.exp2_i64(A,r,I)}function Ch(A,r,I){Ag().exports.exp2_u64(A,r,I)}var kY=64,qY={float64:ms,float32:Bh};function Eh(A){if(!A.isCContiguous)return null;let r=A.size;if(r<kY*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=qY[I];if(e){let B=I==="float32",s=B?4:8,C=B?Float32Array:Float64Array;J(r*s*2),U();let E=A.offset,u=A.data.subarray(E,E+r),f=q(u),m=_(r*s);e(f,m,r);let c=v(m,r,C);return d.fromData(c,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){J(r*16),U();let B=A.offset,s=A.data.subarray(B,B+r),C=q(s),E=_(r*8);(I==="int64"?sh:Ch)(C,E,r);let u=v(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let t=8;J(r*t*2),U();let o=A.offset,n=A.data,g=new Float64Array(r);if(L(I))for(let B=0;B<r;B++)g[B]=Number(n[o+B]);else for(let B=0;B<r;B++)g[B]=n[o+B];let i=q(g),Q=_(r*t);ms(i,Q,r);let a=v(Q,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var MY="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BiACIAYgBCAFEJiAgIAAIAahEJeAgIAAEIGAgIAAoDkDACAAQQJqIQAgAUECaiEBIAJBCGohAiADQX9qIgMNAAsLC2YBA3wCQCADRQ0AA0AgACwAALciBCABLAAAtyIFEJaAgIAAIQYgAiAGIAQgBRCYgICAACAGoRCXgICAABCBgICAAKA5AwAgAEEBaiEAIAFBAWohASACQQhqIQIgA0F/aiIDDQALCwtmAQN8AkAgA0UNAANAIAAtAAC4IgQgAS0AALgiBRCWgICAACEGIAIgBiAEIAUQmICAgAAgBqEQl4CAgAAQgYCAgACgOQMAIABBAWohACABQQFqIQEgAkEIaiECIANBf2oiAw0ACwsLWAECfAJAIAJFDQADQCAAKwMAIgQgAxCWgICAACEFIAEgBSAEIAMQmICAgAAgBaEQl4CAgAAQgYCAgACgOQMAIABBCGohACABQQhqIQEgAkF/aiICDQALCwtfAQN8AkAgAkUNACADuyEEA0AgACoCALsiBSAEEJaAgIAAIQYgASAGIAUgBBCYgICAACAGoRCXgICAABCBgICAAKC2OAIAIABBBGohACABQQRqIQEgAkF/aiICDQALCwteAQN8AkAgAkUNACADuSEEA0AgACkDALkiBSAEEJaAgIAAIQYgASAGIAUgBBCYgICAACAGoRCXgICAABCBgICAAKA5AwAgAEEIaiEAIAFBCGohASACQX9qIgINAAsLC14BA3wCQCACRQ0AIAO6IQQDQCAAKQMAuiIFIAQQloCAgAAhBiABIAYgBSAEEJiAgIAAIAahEJeAgIAAEIGAgIAAoDkDACAAQQhqIQAgAUEIaiEBIAJBf2oiAg0ACwsLXgEDfAJAIAJFDQAgA7chBANAIAAoAgC3IgUgBBCWgICAACEGIAEgBiAFIAQQmICAgAAgBqEQl4CAgAAQgYCAgACgOQMAIABBBGohACABQQhqIQEgAkF/aiICDQALCwteAQN8AkAgAkUNACADuCEEA0AgACgCALgiBSAEEJaAgIAAIQYgASAGIAUgBBCYgICAACAGoRCXgICAABCBgICAAKA5AwAgAEEEaiEAIAFBCGohASACQX9qIgINAAsLC14BA3wCQCACRQ0AIAO3IQQDQCAALgEAtyIFIAQQloCAgAAhBiABIAYgBSAEEJiAgIAAIAahEJeAgIAAEIGAgIAAoDkDACAAQQJqIQAgAUEIaiEBIAJBf2oiAg0ACwsLXgEDfAJAIAJFDQAgA7ghBANAIAAvAQC4IgUgBBCWgICAACEGIAEgBiAFIAQQmICAgAAgBqEQl4CAgAAQgYCAgACgOQMAIABBAmohACABQQhqIQEgAkF/aiICDQALCwteAQN8AkAgAkUNACADtyEEA0AgACwAALciBSAEEJaAgIAAIQYgASAGIAUgBBCYgICAACAGoRCXgICAABCBgICAAKA5AwAgAEEBaiEAIAFBCGohASACQX9qIgINAAsLC14BA3wCQCACRQ0AIAO4IQQDQCAALQAAuCIFIAQQloCAgAAhBiABIAYgBSAEEJiAgIAAIAahEJeAgIAAEIGAgIAAoDkDACAAQQFqIQAgAUEIaiEBIAJBf2oiAg0ACwsLzgICA34CfwJAAkAgACAAYg0AIAC9IgJC////////////AINCgICAgICAgPj/AFoNACACQoCAgICAgICAgH+DIQNBCyACQgGGIgR5p2sgBEI1iKcgBEKAgICAgICAEFQbIQUCQCABQQBIDQACQCABQf4PIAVrTA0ARAAAAAAAAPB/IACmDwsCQCAFIAFqIgZBAEoNACACIAGthiADhL8PCwJAIAVBAEoNACACQQEgBWuthkL/////////B4MgBq1CNIaEIAOEvw8LIAGtQjSGIAJ8vw8LQQAgAWshBiABQQAgBWtKDQECQCABQUwgBWtODQAgA78PCyAFQQBKrUI0hiACQv////////8Hg4QgBkEBIAEgBWprIgEgBiABSBtBf2pBP3GtIgSIQgF8QgGIIAJ6IARRrUJ/hYO/IACmIQALIAAPCyACIAatQjSGfb8LRQEBfgJAIAAgAGINAAJAIAEgAWENACAADwsCQCABvSAAvSIChUJ/VQ0AIAEgACACQgBTGw8LIAEgACAAIAFjGyEBCyABC68DAwF+AX8DfAJAIAAgAGINACAAvSIBQj+IpyECAkACQAJAAkACQAJAAkAgAUIgiEL/////B4MiAUKqxpiEBFYNACABQsLc2P4DWA0BIAFCssXC/wNYDQIMBAsgAUKAgMD/B1YNBgJAIABE7zn6/kIuhkBkRQ0ARAAAAAAAAPB/DwsgAETSvHrdKyOGwGNFDQMgAERRMC3VEEmHwGNFDQNEAAAAAAAAAAAPCyABQoCAwPEDWA0BQQAhAkQAAAAAAAAAACEDIAAhBAwECyACQQFzIAJrIQIMAgsgAEQAAAAAAADwP6AhAAwDCyAARP6CK2VHFfc/oiACQQN0QYCAwIAAaisDAKD8AiECCyAAIAK3IgREAADg/kIu5r+ioCIAIAREdjx5Ne856j2iIgOhIQQLIAAgBCAEIAQgBKIiBSAFIAUgBSAFRNCkvnJpN2Y+okTxa9LFQb27vqCiRCzeJa9qVhE/oKJEk72+FmzBZr+gokQ+VVVVVVXFP6CioSIFokQAAAAAAAAAQCAFoaMgA6GgRAAAAAAAAPA/oCEAIAJFDQAgACACEJWAgIAADwsgAAtFAQF+AkAgACAAYg0AAkAgASABYQ0AIAAPCwJAIAG9IAC9IgKFQn9VDQAgACABIAJCAFMbDwsgACABIAAgAWMbIQELIAELCxkBAEGAgMAACxAAAAAAAADgPwAAAAAAAOC/",Ue=null;function GA(){if(Ue)return Ue;let A=atob(MY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Ue=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Ue.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ue}function uh(A,r,I,e){GA().exports.logaddexp_f64(A,r,I,e)}function ch(A,r,I,e){GA().exports.logaddexp_f32(A,r,I,e)}function Dh(A,r,I,e){GA().exports.logaddexp_i64(A,r,I,e)}function fh(A,r,I,e){GA().exports.logaddexp_u64(A,r,I,e)}function mh(A,r,I,e){GA().exports.logaddexp_i32(A,r,I,e)}function yh(A,r,I,e){GA().exports.logaddexp_u32(A,r,I,e)}function lh(A,r,I,e){GA().exports.logaddexp_i16(A,r,I,e)}function hh(A,r,I,e){GA().exports.logaddexp_u16(A,r,I,e)}function dh(A,r,I,e){GA().exports.logaddexp_i8(A,r,I,e)}function bh(A,r,I,e){GA().exports.logaddexp_u8(A,r,I,e)}function ph(A,r,I,e){GA().exports.logaddexp_scalar_f64(A,r,I,e)}function wh(A,r,I,e){GA().exports.logaddexp_scalar_f32(A,r,I,e)}function Nh(A,r,I,e){GA().exports.logaddexp_scalar_i64(A,r,I,BigInt(Math.round(e)))}function Fh(A,r,I,e){GA().exports.logaddexp_scalar_u64(A,r,I,BigInt(Math.round(e)))}function Gh(A,r,I,e){GA().exports.logaddexp_scalar_i32(A,r,I,e)}function Sh(A,r,I,e){GA().exports.logaddexp_scalar_u32(A,r,I,e)}function Rh(A,r,I,e){GA().exports.logaddexp_scalar_i16(A,r,I,e)}function kh(A,r,I,e){GA().exports.logaddexp_scalar_u16(A,r,I,e)}function qh(A,r,I,e){GA().exports.logaddexp_scalar_i8(A,r,I,e)}function Mh(A,r,I,e){GA().exports.logaddexp_scalar_u8(A,r,I,e)}var xh=64,xY={float64:uh,float32:ch},JY={float64:ph,float32:wh},UY={int64:Dh,uint64:fh,int32:mh,uint32:yh,int16:lh,uint16:hh,int8:dh,uint8:bh},LY={int64:Nh,uint64:Fh,int32:Gh,uint32:Sh,int16:Rh,uint16:kh,int8:qh,uint8:Mh},rg={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Jh(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<xh*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=xY[e];if(t){let n=rg[e],g=n.BYTES_PER_ELEMENT;J(I*g*3),U();let i=A.data.subarray(A.offset,A.offset+I),Q=r.data.subarray(r.offset,r.offset+I),a=q(i),B=q(Q),s=_(I*g);t(a,B,s,I);let C=v(s,I,n);return d.fromData(C,Array.from(A.shape),e)}let o=UY[e];if(o){let g=rg[e].BYTES_PER_ELEMENT,i=8;J(I*g*2+I*i),U();let Q=A.data.subarray(A.offset,A.offset+I),a=r.data.subarray(r.offset,r.offset+I),B=q(Q),s=q(a),C=_(I*i);o(B,s,C,I);let E=v(C,I,Float64Array);return d.fromData(E,Array.from(A.shape),"float64")}return null}function Uh(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<xh*Y.thresholdMultiplier)return null;let e=A.dtype,t=JY[e];if(t){let n=rg[e],g=n.BYTES_PER_ELEMENT;J(I*g*2),U();let i=A.data.subarray(A.offset,A.offset+I),Q=q(i),a=_(I*g);t(Q,a,I,r);let B=v(a,I,n);return d.fromData(B,Array.from(A.shape),e)}let o=LY[e];if(o){let g=rg[e].BYTES_PER_ELEMENT,i=8;J(I*g+I*i),U();let Q=A.data.subarray(A.offset,A.offset+I),a=q(Q),B=_(I*i);o(a,B,I,r);let s=v(B,I,Float64Array);return d.fromData(s,Array.from(A.shape),"float64")}return null}function Lh(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.isCContiguous,n=d.zeros(e,r),g=n.data;if(o){let i=A.data,Q=A.offset;for(let a=0;a<t;a++){let B=i[(Q+a)*2],s=i[(Q+a)*2+1],C=Math.sqrt(B*B+s*s),E=Math.sqrt((C+B)/2),u=(s>=0?1:-1)*Math.sqrt((C-B)/2);g[a*2]=E,g[a*2+1]=u}}else for(let i=0;i<t;i++){let Q=A.iget(i),a=Q.re,B=Q.im,s=Math.sqrt(a*a+B*B),C=Math.sqrt((s+a)/2),E=(B>=0?1:-1)*Math.sqrt((s-a)/2);g[i*2]=C,g[i*2+1]=E}return n}let I=$0(A);return I||mA(A,Math.sqrt,!1)}function Hh(A,r){if(typeof r=="number")return _Y(A,r);let I=k(A.dtype),e=k(r.dtype);if(I||e)return HY(A,r);let t=oh(A,r);return t||yA(A,r,Math.pow,"power")}function HY(A,r){let I=k(A.dtype),e=k(r.dtype),t=A.dtype==="complex128"||r.dtype==="complex128"||r.dtype==="float64"?"complex128":"complex64",o=Array.from(A.shape),n=A.size,g=d.zeros(o,t),i=g.data,Q=A.isCContiguous,a=r.isCContiguous,B=A.offset,s=r.offset;for(let C=0;C<n;C++){let E,u;if(I)if(Q){let p=A.data;E=p[(B+C)*2],u=p[(B+C)*2+1]}else{let p=A.iget(C);E=p.re,u=p.im}else E=Number(A.iget(C)),u=0;let f,m;if(e)if(a){let p=r.data;f=p[(s+C)*2],m=p[(s+C)*2+1]}else{let p=r.iget(C);f=p.re,m=p.im}else f=Number(r.iget(C)),m=0;let c=Math.sqrt(E*E+u*u),D=Math.atan2(u,E),y=Math.log(c),l=f*y-m*D,h=f*D+m*y,b=Math.exp(l);i[C*2]=b*Math.cos(h),i[C*2+1]=b*Math.sin(h)}return g}function _Y(A,r){let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.size,n=A.offset,g=A.isCContiguous;if(!k(I)){let C=nh(A,r);if(C)return C}if(k(I)){let C=d.zeros(e,I),E=C.data;if(g){let u=t;for(let f=0;f<o;f++){let m=u[(n+f)*2],c=u[(n+f)*2+1],D=Math.sqrt(m*m+c*c),y=Math.atan2(c,m),l=Math.pow(D,r),h=y*r;E[f*2]=l*Math.cos(h),E[f*2+1]=l*Math.sin(h)}}else for(let u=0;u<o;u++){let f=A.iget(u),m=f.re,c=f.im,D=Math.sqrt(m*m+c*c),y=Math.atan2(c,m),l=Math.pow(D,r),h=y*r;E[u*2]=l*Math.cos(h),E[u*2+1]=l*Math.sin(h)}return C}let a=I!=="float32"&&I!=="float64"&&(r<0||!Number.isInteger(r))?"float64":I,B=d.zeros(e,a),s=B.data;if(L(I))if(L(a)&&Number.isInteger(r)&&r>=0)if(g){let C=t,E=s;for(let u=0;u<o;u++)E[u]=C[n+u]**BigInt(r)}else{let C=s;for(let E=0;E<o;E++)C[E]=A.iget(E)**BigInt(r)}else if(g)for(let C=0;C<o;C++)s[C]=Math.pow(Number(t[n+C]),r);else for(let C=0;C<o;C++)s[C]=Math.pow(Number(A.iget(C)),r);else if(g)for(let C=0;C<o;C++)s[C]=Math.pow(Number(t[n+C]),r);else for(let C=0;C<o;C++)s[C]=Math.pow(Number(A.iget(C)),r);return B}function _h(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.isCContiguous,n=d.zeros(e,r),g=n.data;if(o){let i=A.data,Q=A.offset;for(let a=0;a<t;a++){let B=i[(Q+a)*2],s=i[(Q+a)*2+1],C=Math.exp(B);g[a*2]=C*Math.cos(s),g[a*2+1]=C*Math.sin(s)}}else for(let i=0;i<t;i++){let Q=A.iget(i),a=Q.re,B=Q.im,s=Math.exp(a);g[i*2]=s*Math.cos(B),g[i*2+1]=s*Math.sin(B)}return n}let I=ah(A);return I||mA(A,Math.exp,!1)}function Yh(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.isCContiguous,n=Math.LN2,g=d.zeros(e,r),i=g.data;if(o){let Q=A.data,a=A.offset;for(let B=0;B<t;B++){let s=Q[(a+B)*2],C=Q[(a+B)*2+1],E=Math.exp(s*n),u=C*n;i[B*2]=E*Math.cos(u),i[B*2+1]=E*Math.sin(u)}}else for(let Q=0;Q<t;Q++){let a=A.iget(Q),B=a.re,s=a.im,C=Math.exp(B*n),E=s*n;i[Q*2]=C*Math.cos(E),i[Q*2+1]=C*Math.sin(E)}return g}let I=Eh(A);return I||mA(A,e=>Math.pow(2,e),!1)}function vh(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),e=A.size,t=A.isCContiguous,o=d.zeros(I,r),n=o.data;if(t){let g=A.data,i=A.offset;for(let Q=0;Q<e;Q++){let a=g[(i+Q)*2],B=g[(i+Q)*2+1],s=Math.exp(a);n[Q*2]=s*Math.cos(B)-1,n[Q*2+1]=s*Math.sin(B)}}else for(let g=0;g<e;g++){let i=A.iget(g),Q=i.re,a=i.im,B=Math.exp(Q);n[g*2]=B*Math.cos(a)-1,n[g*2+1]=B*Math.sin(a)}return o}return mA(A,Math.expm1,!1)}function Xh(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),e=A.size,t=A.isCContiguous,o=d.zeros(I,r),n=o.data;if(t){let g=A.data,i=A.offset;for(let Q=0;Q<e;Q++){let a=g[(i+Q)*2],B=g[(i+Q)*2+1],s=Math.sqrt(a*a+B*B),C=Math.atan2(B,a);n[Q*2]=Math.log(s),n[Q*2+1]=C}}else for(let g=0;g<e;g++){let i=A.iget(g),Q=i.re,a=i.im,B=Math.sqrt(Q*Q+a*a),s=Math.atan2(a,Q);n[g*2]=Math.log(B),n[g*2+1]=s}return o}return mA(A,Math.log,!1)}function Th(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),e=A.size,t=A.isCContiguous,o=1/Math.LN2,n=d.zeros(I,r),g=n.data;if(t){let i=A.data,Q=A.offset;for(let a=0;a<e;a++){let B=i[(Q+a)*2],s=i[(Q+a)*2+1],C=Math.sqrt(B*B+s*s),E=Math.atan2(s,B);g[a*2]=Math.log(C)*o,g[a*2+1]=E*o}}else for(let i=0;i<e;i++){let Q=A.iget(i),a=Q.re,B=Q.im,s=Math.sqrt(a*a+B*B),C=Math.atan2(B,a);g[i*2]=Math.log(s)*o,g[i*2+1]=C*o}return n}return mA(A,Math.log2,!1)}function Ph(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),e=A.size,t=A.isCContiguous,o=1/Math.LN10,n=d.zeros(I,r),g=n.data;if(t){let i=A.data,Q=A.offset;for(let a=0;a<e;a++){let B=i[(Q+a)*2],s=i[(Q+a)*2+1],C=Math.sqrt(B*B+s*s),E=Math.atan2(s,B);g[a*2]=Math.log(C)*o,g[a*2+1]=E*o}}else for(let i=0;i<e;i++){let Q=A.iget(i),a=Q.re,B=Q.im,s=Math.sqrt(a*a+B*B),C=Math.atan2(B,a);g[i*2]=Math.log(s)*o,g[i*2+1]=C*o}return n}return mA(A,Math.log10,!1)}function Kh(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),e=A.size,t=A.isCContiguous,o=d.zeros(I,r),n=o.data;if(t){let g=A.data,i=A.offset;for(let Q=0;Q<e;Q++){let a=g[(i+Q)*2],B=g[(i+Q)*2+1],s=1+a,C=Math.sqrt(s*s+B*B),E=Math.atan2(B,s);n[Q*2]=Math.log(C),n[Q*2+1]=E}}else for(let g=0;g<e;g++){let i=A.iget(g),Q=i.re,a=i.im,B=1+Q,s=Math.sqrt(B*B+a*a),C=Math.atan2(a,B);n[g*2]=Math.log(s),n[g*2+1]=C}return o}return mA(A,Math.log1p,!1)}function Vh(A,r){return eA(A.dtype,"logaddexp","logaddexp is not supported for complex numbers."),typeof r!="number"&&eA(r.dtype,"logaddexp","logaddexp is not supported for complex numbers."),typeof r=="number"?vY(A,r):YY(A,r)}function YY(A,r){let I=Jh(A,r);if(I)return I;let e=Yr(A.shape,r.shape),t=e.reduce((B,s)=>B*s,1),o=A.dtype,n=r.dtype,g=B=>B==="float32"||B==="int8"||B==="uint8"||B==="int16"||B==="uint16",i=g(o)&&g(n)?"float32":"float64",Q=d.zeros(e,i),a=Q.data;for(let B=0;B<t;B++){let s=(L(o),Number(A.iget(B))),C=(L(n),Number(r.iget(B))),E=Math.max(s,C),u=Math.min(s,C);a[B]=E+Math.log1p(Math.exp(u-E))}return Q}function vY(A,r){let I=Uh(A,r);if(I)return I;let e=A.dtype,t=Array.from(A.shape),o=A.size,n=A.isCContiguous,g=e==="float32"||e==="int8"||e==="uint8"||e==="int16"||e==="uint16"?"float32":"float64",i=d.zeros(t,g),Q=i.data;if(n){let a=A.offset;for(let B=0;B<o;B++){let s=Number(A.data[a+B]),C=Math.max(s,r),E=Math.min(s,r);Q[B]=C+Math.log1p(Math.exp(E-C))}}else for(let a=0;a<o;a++){let B=Number(A.iget(a)),s=Math.max(B,r),C=Math.min(B,r);Q[a]=s+Math.log1p(Math.exp(C-s))}return i}function Wh(A,r){return eA(A.dtype,"logaddexp2","logaddexp2 is not supported for complex numbers."),typeof r!="number"&&eA(r.dtype,"logaddexp2","logaddexp2 is not supported for complex numbers."),typeof r=="number"?TY(A,r):XY(A,r)}function XY(A,r){let I=Yr(A.shape,r.shape),e=I.reduce((a,B)=>a*B,1),t=A.dtype,o=r.dtype,n=t==="float32"&&o==="float32"?"float32":"float64",g=d.zeros(I,n),i=g.data,Q=Math.LOG2E;for(let a=0;a<e;a++){let B=(L(t),Number(A.iget(a))),s=(L(o),Number(r.iget(a))),C=Math.max(B,s),E=Math.min(B,s);i[a]=C+Math.log1p(Math.pow(2,E-C))*Q}return g}function TY(A,r){let I=A.dtype,e=Array.from(A.shape),t=A.size,o=A.isCContiguous,n=I==="float32"?"float32":"float64",g=d.zeros(e,n),i=g.data,Q=Math.LOG2E;if(o){let a=A.offset;for(let B=0;B<t;B++){let s=Number(A.data[a+B]),C=Math.max(s,r),E=Math.min(s,r);i[B]=C+Math.log1p(Math.pow(2,E-C))*Q}}else for(let a=0;a<t;a++){let B=Number(A.iget(a)),s=Math.max(B,r),C=Math.min(B,r);i[a]=s+Math.log1p(Math.pow(2,C-s))*Q}return g}function Le(A,r){let I=typeof r=="number"?r:G(r);return R(y0(G(A),I))}function He(A,r){let I=typeof r=="number"?r:G(r);return R(l0(G(A),I))}function _e(A,r){let I=typeof r=="number"?r:G(r);return R(h0(G(A),I))}function Ye(A){return R(Lh(G(A)))}function ve(A,r){let I=typeof r=="number"?r:G(r);return R(Hh(G(A),I))}function Xe(A){return R(_h(G(A)))}function Te(A){return R(Yh(G(A)))}function Pe(A){return R(vh(G(A)))}function Ke(A){return R(Xh(G(A)))}function Ve(A){return R(Th(G(A)))}function We(A){return R(Ph(G(A)))}function Oe(A){return R(Kh(G(A)))}function Ze(A,r){let I=typeof r=="number"?r:G(r);return R(Vh(G(A),I))}function ze(A,r){let I=typeof r=="number"?r:G(r);return R(Wh(G(A),I))}function je(A){return R(b0(G(A)))}function $e(A){return R(p0(G(A)))}function At(A){return R(w0(G(A)))}function rt(A,r){let I=typeof r=="number"?r:G(r);return R(ji(G(A),I))}function SI(A,r){let I=typeof r=="number"?r:G(r);return R(d0(G(A),I))}var Ig=SI;function It(A,r){let I=typeof r=="number"?r:G(r);return R(Is(G(A),I))}function et(A){return R(N0(G(A)))}function tt(A){return R(F0(G(A)))}function ot(A){return R(G0(G(A)))}function nt(A){return R(S0(G(A)))}function it(A,r){let I=typeof r=="number"?r:G(r);return vi(R0(G(A),I))}function gt(A){return R(k0(G(A)))}function Qt(A,r){let I=typeof r=="number"?r:G(r);return R(q0(G(A),I))}function at(A,r){let I=typeof r=="number"?r:G(r);return R(es(G(A),I))}function ys(A,r){let I=typeof r=="number"?r:G(r);return R(M0(G(A),I))}function ls(A,r){let I=typeof r=="number"?r:G(r);return R(x0(G(A),I))}function hs(A){return vi(J0(G(A)))}function ds(A,r){let I=typeof r=="number"?r:G(r);return R(U0(G(A),I))}function bs(A,r){let I=typeof r=="number"?r:G(r);return R(L0(G(A),I))}function ps(A,r){let I=typeof r=="number"?r:G(r);return R(ts(G(A),I))}function ws(A){return vi(H0(G(A)))}function Bt(A,r,I){let e=r===null?null:typeof r=="number"?r:G(r),t=I===null?null:typeof I=="number"?I:G(I);return R(_0(G(A),e,t))}function Ns(A,r){let I=typeof r=="number"?r:G(r);return R(Y0(G(A),I))}function Fs(A,r){let I=typeof r=="number"?r:G(r);return R(v0(G(A),I))}function Gs(A,r){let I=typeof r=="number"?r:G(r);return R(X0(G(A),I))}function Ss(A,r){let I=typeof r=="number"?r:G(r);return R(T0(G(A),I))}function Rs(A,r=0,I,e){return R(P0(G(A),r,I,e))}function ks(A,r,I,e,t){return R(K0(G(A),G(r),G(I),e,t))}function qs(A,r=Math.PI,I=-1,e=2*Math.PI){return R(V0(G(A),r,I,e))}function Ms(A){return R(W0(G(A)))}function xs(A){return R(O0(G(A)))}var KY="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",st=null;function Oh(){if(st)return st;let A=atob(KY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);st=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=st.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),st}function Js(A,r,I){Oh().exports.cos_f64(A,r,I)}function Zh(A,r,I){Oh().exports.cos_f32(A,r,I)}var VY=64,WY={float64:Js,float32:Zh};function zh(A){if(!A.isCContiguous)return null;let r=A.size;if(r<VY*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=WY[I];if(e){let B=I==="float32",s=B?4:8,C=B?Float32Array:Float64Array;J(r*s*2),U();let E=A.offset,u=A.data.subarray(E,E+r),f=q(u),m=_(r*s);e(f,m,r);let c=v(m,r,C);return d.fromData(c,Array.from(A.shape),I)}let t=8;J(r*t*2),U();let o=A.offset,n=A.data,g=new Float64Array(r);if(L(I))for(let B=0;B<r;B++)g[B]=Number(n[o+B]);else for(let B=0;B<r;B++)g[B]=n[o+B];let i=q(g),Q=_(r*t);Js(i,Q,r);let a=v(Q,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var OY="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BEEBaiEEIAZEAAAAAAAA8D+gIgZEMWNiGmG00D2iIQggACAGRAAAQFT7Ifm/oqAhBwwBCyAEQX9qIQQgBkQAAAAAAADwv6AiBkQxY2IaYbTQPaIhCCAAIAZEAABAVPsh+b+ioCEHCyABIAcgCKEiADkDAAJAIAC9QoCAgICAgID4/wCDQoCAgICAgICIP1oNACABIAcgBkQAAGAaYbTQPaIiAKEiCSAGRHNwAy6KGaM7oiAHIAmhIAChoSIIoSIAOQMAAkAgAL1CgICAgICAgID/AINC//////////88WA0AIAkhBwwBCyABIAkgBkQAAAAuihmjO6IiAKEiByAGRMFJICWag3s5oiAJIAehIAChoSIIoSIAOQMACyABIAcgAKEgCKE5AwgMAwsgASAHIAihIgA5AwACQCAAvUKAgICAgICA+P8Ag0KAgICAgICAiD9aDQAgASAHIAZEAABgGmG00D2iIgChIgkgBkRzcAMuihmjO6IgByAJoSAAoaEiCKEiADkDAAJAIAC9QoCAgICAgICA/wCDQv//////////PFgNACAJIQcMAQsgASAJIAZEAAAALooZozuiIgChIgcgBkTBSSAlmoN7OaIgCSAHoSAAoaEiCKEiADkDAAsgASAHIAChIAihOQMIDAILIAEgByAIoSIAOQMAAkAgBUEUdiIKIAC9QjSIp0H/D3FrQRBMDQAgASAHIAZEAABgGmG00D2iIgChIgkgBkRzcAMuihmjO6IgByAJoSAAoaEiCKEiADkDAAJAIAogAL1CNIinQf8PcWtBMk4NACAJIQcMAQsgASAJIAZEAAAALooZozuiIgChIgcgBkTBSSAlmoN7OaIgCSAHoSAAoaEiCKEiADkDAAsgASAHIAChIAihOQMIDAELIAEgByAIoSIAOQMAAkAgBUEUdiIKIAC9QjSIp0H/D3FrQRBMDQAgASAHIAZEAABgGmG00D2iIgChIgkgBkRzcAMuihmjO6IgByAJoSAAoaEiCKEiADkDAAJAIAogAL1CNIinQf8PcWtBMk4NACAJIQcMAQsgASAJIAZEAAAALooZozuiIgChIgcgBkTBSSAlmoN7OaIgCSAHoSAAoaEiCKEiADkDAAsgASAHIAChIAihOQMICyACQTBqJICAgIAAIAQL4AcIAX8CfgJ8AnsBfwF8An8BfCOAgICAAEEQ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",Ct=null;function jh(){if(Ct)return Ct;let A=atob(OY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Ct=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Ct.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ct}function Us(A,r,I){jh().exports.tan_f64(A,r,I)}function $h(A,r,I){jh().exports.tan_f32(A,r,I)}var ZY=64,zY={float64:Us,float32:$h};function Ad(A){if(!A.isCContiguous)return null;let r=A.size;if(r<ZY*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=zY[I];if(e){let B=I==="float32",s=B?4:8,C=B?Float32Array:Float64Array;J(r*s*2),U();let E=A.offset,u=A.data.subarray(E,E+r),f=q(u),m=_(r*s);e(f,m,r);let c=v(m,r,C);return d.fromData(c,Array.from(A.shape),I)}let t=8;J(r*t*2),U();let o=A.offset,n=A.data,g=new Float64Array(r);if(L(I))for(let B=0;B<r;B++)g[B]=Number(n[o+B]);else for(let B=0;B<r;B++)g[B]=n[o+B];let i=q(g),Q=_(r*t);Us(i,Q,r);let a=v(Q,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var jY="AGFzbQEAAAABDAJgA39/fwBgAXwBfAIPAQNlbnYGbWVtb3J5AgAQAwYFAAEAAAAGCQF/AUGAgMAACwc1BAphcmNzaW5fZjY0AAAKYXJjc2luX2YzMgACCmFyY3Npbl9pNjQAAwphcmNzaW5fdTY0AAQKvQYFNAACQCACRQ0AA0AgASAAKwMAEIGAgIAAOQMAIAFBCGohASAAQQhqIQAgAkF/aiICDQALCwviBAQBfgF/A3wBewJAAkAgAL0iAUIgiKdB/////wdxIgJBgIDA/wNJDQBEAAAAAAAA+H8hAyACQYCAwIB8aiABp3INASAARBgtRFT7Ifk/okQAAAAAAABwOKAPCwJAIAJBgICA/wNJDQBEAAAAAAAA8D8gAJmhRAAAAAAAAOA/oiIAIAAgACAAIAAgAEQJ9/0N4T0CP6JEiLIBdeDvST+gokQ7j2i1KIKkv6CiRFVEiA5Vwck/oKJEfW/rAxLW1L+gokRVVVVVVVXFP6CiIAAgACAAIABEgpIuscW4sz+iRFkBjRtsBua/oKJEyIpZnOUqAECgokRLLYocJzoDwKCiRAAAAAAAAPA/oKMhBCAAnyEDAkACQCACQbLmvP8DTQ0ARBgtRFT7Ifk/IAMgAyAEoqAiACAAoKEhAAwBC0QYLURU+yHpPyADvUKAgICAcIO/IgUgBaChRAdcFDMmppE8IAAgBSAFoqEgAyAFoKMiACAAoKEgAyADoCAEoqGgRBgtRFT7Iek/oCEACyAAmiAAIAFCAFMbDwsCQCACQYCAQGpBgICA8gNPDQAgAA8LIAAgACAAIACiIgMgA/0UIgYgBiAGIAb9DAAAAAAAAAAAgpIuscW4sz8gA0QJ9/0N4T0CP6JEiLIBdeDvST+g/SIA/fIB/Qw7j2i1KIKkv1kBjRtsBua//fAB/fIB/QxVRIgOVcHJP8iKWZzlKgBA/fAB/fIB/Qx9b+sDEtbUv0stihwnOgPA/fAB/fIB/QxVVVVVVVXFPwAAAAAAAPA//fABIgb9IQCiIAb9IQGjoqAhAwsgAws2AAJAIAJFDQADQCABIAAqAgC7EIGAgIAAtjgCACABQQRqIQEgAEEEaiEAIAJBf2oiAg0ACwsLNQACQCACRQ0AA0AgASAAKQMAuRCBgICAADkDACABQQhqIQEgAEEIaiEAIAJBf2oiAg0ACwsLNQACQCACRQ0AA0AgASAAKQMAuhCBgICAADkDACABQQhqIQEgAEEIaiEAIAJBf2oiAg0ACwsL",Et=null;function eg(){if(Et)return Et;let A=atob(jY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Et=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Et.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Et}function Ls(A,r,I){eg().exports.arcsin_f64(A,r,I)}function rd(A,r,I){eg().exports.arcsin_f32(A,r,I)}function Id(A,r,I){eg().exports.arcsin_i64(A,r,I)}function ed(A,r,I){eg().exports.arcsin_u64(A,r,I)}var $Y=64,A6={float64:Ls,float32:rd};function td(A){if(!A.isCContiguous)return null;let r=A.size;if(r<$Y*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=A6[I];if(e){let B=I==="float32",s=B?4:8,C=B?Float32Array:Float64Array;J(r*s*2),U();let E=A.offset,u=A.data.subarray(E,E+r),f=q(u),m=_(r*s);e(f,m,r);let c=v(m,r,C);return d.fromData(c,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){J(r*16),U();let B=A.offset,s=A.data.subarray(B,B+r),C=q(s),E=_(r*8);(I==="int64"?Id:ed)(C,E,r);let u=v(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let t=8;J(r*t*2),U();let o=A.offset,n=A.data,g=new Float64Array(r);if(L(I))for(let B=0;B<r;B++)g[B]=Number(n[o+B]);else for(let B=0;B<r;B++)g[B]=n[o+B];let i=q(g),Q=_(r*t);Ls(i,Q,r);let a=v(Q,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var r6="AGFzbQEAAAABDAJgA39/fwBgAXwBfAIPAQNlbnYGbWVtb3J5AgAQAwYFAAEAAAAGCQF/AUGAgMAACwc1BAphcmNjb3NfZjY0AAAKYXJjY29zX2YzMgACCmFyY2Nvc19pNjQAAwphcmNjb3NfdTY0AAQK8QcFNAACQCACRQ0AA0AgASAAKwMAEIGAgIAAOQMAIAFBCGohASAAQQhqIQAgAkF/aiICDQALCwuWBgUBfgF/AXwBewF8AkAgAL0iAUIgiKdB/////wdxIgJBgIDA/wNJDQACQCACQYCAwIB8aiABp3JFDQBEAAAAAAAA+H8PC0QAAAAAAAAAAEQYLURU+yEJQCABQn9VGw8LAkAgAkGAgID/A0kNAAJAIAFCf1UNAEQYLURU+yH5PyAARAAAAAAAAPA/oEQAAAAAAADgP6IiAJ8iAyADIAAgAP0UIgQgBCAEIAT9DAAAAAAAAAAAgpIuscW4sz8gAEQJ9/0N4T0CP6JEiLIBdeDvST+g/SIA/fIB/Qw7j2i1KIKkv1kBjRtsBua//fAB/fIB/QxVRIgOVcHJP8iKWZzlKgBA/fAB/fIB/Qx9b+sDEtbUv0stihwnOgPA/fAB/fIB/QxVVVVVVVXFPwAAAAAAAPA//fABIgT9IQCiIAT9IQGjokQHXBQzJqaRvKCgoSIAIACgDwtEAAAAAAAA8D8gAKFEAAAAAAAA4D+iIgAgAJ8iBb1CgICAgHCDvyIDIAOioSAFIAOgoyAFIAAgAP0UIgQgBCAEIAT9DAAAAAAAAAAAgpIuscW4sz8gAEQJ9/0N4T0CP6JEiLIBdeDvST+g/SIA/fIB/Qw7j2i1KIKkv1kBjRtsBua//fAB/fIB/QxVRIgOVcHJP8iKWZzlKgBA/fAB/fIB/Qx9b+sDEtbUv0stihwnOgPA/fAB/fIB/QxVVVVVVVXFPwAAAAAAAPA//fABIgT9IQCiIAT9IQGjoqAgA6AiACAAoA8LAkAgAkGBgIDjA08NAEQYLURU+yH5Pw8LRAdcFDMmppE8IAAgACAAoiIDIAP9FCIEIAQgBCAE/QwAAAAAAAAAAIKSLrHFuLM/IANECff9DeE9Aj+iRIiyAXXg70k/oP0iAP3yAf0MO49otSiCpL9ZAY0bbAbmv/3wAf3yAf0MVUSIDlXByT/Iilmc5SoAQP3wAf3yAf0MfW/rAxLW1L9LLYocJzoDwP3wAf3yAf0MVVVVVVVVxT8AAAAAAADwP/3wASIE/SEAoiAE/SEBo6KhIAChRBgtRFT7Ifk/oAs2AAJAIAJFDQADQCABIAAqAgC7EIGAgIAAtjgCACABQQRqIQEgAEEEaiEAIAJBf2oiAg0ACwsLNQACQCACRQ0AA0AgASAAKQMAuRCBgICAADkDACABQQhqIQEgAEEIaiEAIAJBf2oiAg0ACwsLNQACQCACRQ0AA0AgASAAKQMAuhCBgICAADkDACABQQhqIQEgAEEIaiEAIAJBf2oiAg0ACwsL",ut=null;function tg(){if(ut)return ut;let A=atob(r6),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ut=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ut.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ut}function Hs(A,r,I){tg().exports.arccos_f64(A,r,I)}function od(A,r,I){tg().exports.arccos_f32(A,r,I)}function nd(A,r,I){tg().exports.arccos_i64(A,r,I)}function id(A,r,I){tg().exports.arccos_u64(A,r,I)}var I6=64,e6={float64:Hs,float32:od};function gd(A){if(!A.isCContiguous)return null;let r=A.size;if(r<I6*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=e6[I];if(e){let B=I==="float32",s=B?4:8,C=B?Float32Array:Float64Array;J(r*s*2),U();let E=A.offset,u=A.data.subarray(E,E+r),f=q(u),m=_(r*s);e(f,m,r);let c=v(m,r,C);return d.fromData(c,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){J(r*16),U();let B=A.offset,s=A.data.subarray(B,B+r),C=q(s),E=_(r*8);(I==="int64"?nd:id)(C,E,r);let u=v(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let t=8;J(r*t*2),U();let o=A.offset,n=A.data,g=new Float64Array(r);if(L(I))for(let B=0;B<r;B++)g[B]=Number(n[o+B]);else for(let B=0;B<r;B++)g[B]=n[o+B];let i=q(g),Q=_(r*t);Hs(i,Q,r);let a=v(Q,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var t6="AGFzbQEAAAABDAJgA39/fwBgAXwBfAIPAQNlbnYGbWVtb3J5AgARAwYFAAEAAAAGCQF/AUGAgMAACwc1BAphcmN0YW5fZjY0AAAKYXJjdGFuX2YzMgACCmFyY3Rhbl9pNjQAAwphcmN0YW5fdTY0AAQKmQYFNAACQCACRQ0AA0AgASAAKwMAEIGAgIAAOQMAIAFBCGohASAAQQhqIQAgAkF/aiICDQALCwu+BAQBfwF+An8DfCOAgICAAEEQayIBJICAgIAAAkACQCAAvSICQiCIp0H/////B3EiA0GAgMCgBEkNACAARBgtRFT7Ifk/IACmIAAgAGIbIQAMAQsCQAJAIANBgIDw/gNJDQAgAJkhAAJAIANBgIDM/wNPDQACQCADQYCAmP8DTw0AIAAgAKBEAAAAAAAA8L+gIABEAAAAAAAAAECgoyEAQQAhBAwDCyAARAAAAAAAAPC/oCAARAAAAAAAAPA/oKMhAEEBIQQMAgsCQCADQYCAjoAESQ0ARAAAAAAAAPC/IACjIQBBAyEEDAILIABEAAAAAAAA+L+gIABEAAAAAAAA+D+iRAAAAAAAAPA/oKMhAEECIQQMAQsCQCADQYCAgPIDSQ0ADAELIANB//8/Sw0BIAEgALY4AgwgAUEMaiEDDAELIAAgAKIiBSAFoiIGIAYgBiAGIAZEL2xqLES0or+iRJr93lIt3q2/oKJEbZp0r/Kws7+gokRxFiP+xnG8v6CiRMTrmJmZmcm/oKIhByAFIAYgBiAGIAYgBkQR2iLjOq2QP6JE6w12JEt7qT+gokRRPdCgZg2xP6CiRG4gTMXNRbc/oKJE/4MAkiRJwj+gokQNVVVVVVXVP6CiIQYCQCADQYCA8P4DSQ0AIARBA3QiA0GAgMCAAGorAwAgACAHIAagoiADQaCAwIAAaisDAKEgAKGhIgCaIAAgAkIAUxshAAwBCyAAIAAgByAGoKKhIQALIAFBEGokgICAgAAgAAs2AAJAIAJFDQADQCABIAAqAgC7EIGAgIAAtjgCACABQQRqIQEgAEEEaiEAIAJBf2oiAg0ACwsLNQACQCACRQ0AA0AgASAAKQMAuRCBgICAADkDACABQQhqIQEgAEEIaiEAIAJBf2oiAg0ACwsLNQACQCACRQ0AA0AgASAAKQMAuhCBgICAADkDACABQQhqIQEgAEEIaiEAIAJBf2oiAg0ACwsLC0kBAEGAgMAAC0BPu2EFZ6zdPxgtRFT7Iek/m/aB0gtz7z8YLURU+yH5P+JlLyJ/K3o8B1wUMyamgTy9y/B6iAdwPAdcFDMmppE8",ct=null;function og(){if(ct)return ct;let A=atob(t6),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ct=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ct.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ct}function _s(A,r,I){og().exports.arctan_f64(A,r,I)}function Qd(A,r,I){og().exports.arctan_f32(A,r,I)}function ad(A,r,I){og().exports.arctan_i64(A,r,I)}function Bd(A,r,I){og().exports.arctan_u64(A,r,I)}var o6=64,n6={float64:_s,float32:Qd};function sd(A){if(!A.isCContiguous)return null;let r=A.size;if(r<o6*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=n6[I];if(e){let B=I==="float32",s=B?4:8,C=B?Float32Array:Float64Array;J(r*s*2),U();let E=A.offset,u=A.data.subarray(E,E+r),f=q(u),m=_(r*s);e(f,m,r);let c=v(m,r,C);return d.fromData(c,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){J(r*16),U();let B=A.offset,s=A.data.subarray(B,B+r),C=q(s),E=_(r*8);(I==="int64"?ad:Bd)(C,E,r);let u=v(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let t=8;J(r*t*2),U();let o=A.offset,n=A.data,g=new Float64Array(r);if(L(I))for(let B=0;B<r;B++)g[B]=Number(n[o+B]);else for(let B=0;B<r;B++)g[B]=n[o+B];let i=q(g),Q=_(r*t);_s(i,Q,r);let a=v(Q,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var i6="AGFzbQEAAAABHQRgBH9/f38AYAR/f398AGAEf39/fQBgBH9/f34AAg8BA2VudgZtZW1vcnkCABADDQwAAQACAAMAAAAAAAAGCQF/AUGAgMAACwe5AQwJaHlwb3RfZjY0AAAQaHlwb3Rfc2NhbGFyX2Y2NAABCWh5cG90X2YzMgACEGh5cG90X3NjYWxhcl9mMzIAAwloeXBvdF9pNjQABBBoeXBvdF9zY2FsYXJfaTY0AAUJaHlwb3RfaTMyAAYQaHlwb3Rfc2NhbGFyX2kzMgAHCWh5cG90X2kxNgAIEGh5cG90X3NjYWxhcl9pMTYACQhoeXBvdF9pOAAKD2h5cG90X3NjYWxhcl9pOAALCqMgDNwCAwV/AXsBfAJAIANFDQBBACEEAkAgA0EESQ0AIAIgAGtBEEkNACACIAFrQRBJDQAgA0F+cSIEIQUgASEGIAAhByACIQgDQCAIIAf9AAMAIgkgCf3yASAG/QADACIJIAn98gH98AH97wH9CwMAIAZBEGohBiAHQRBqIQcgCEEQaiEIIAVBfmoiBQ0ACyADIARGDQELIARBAXIhBgJAIANBAXFFDQAgAiAEQQN0IgdqIAAgB2orAwAiCiAKoiABIAdqKwMAIgogCqKgnzkDACAGIQQLIAMgBkYNACADIARrIQUgAiAEQQN0IghqIQYgACAIaiEHIAEgCGohCANAIAYgBysDACIKIAqiIAgrAwAiCiAKoqCfOQMAIAZBCGogB0EIaisDACIKIAqiIAhBCGorAwAiCiAKoqCfOQMAIAZBEGohBiAHQRBqIQcgCEEQaiEIIAVBfmoiBQ0ACwsLnwIFAX8BewN/AXsBfCADIAOiIQNBACEEAkACQAJAIAIOAgIBAAsgASAAa0EQSQ0AIAP9FCEFIAJBfnEiBCEGIAAhByABIQgDQCAIIAUgB/0AAwAiCSAJ/fIB/fAB/e8B/QsDACAHQRBqIQcgCEEQaiEIIAZBfmoiBg0ACyACIARGDQELIARBAXIhBwJAIAJBAXFFDQAgASAEQQN0IghqIAMgACAIaisDACIKIAqioJ85AwAgByEECyACIAdGDQAgAiAEayEGIAEgBEEDdCIIaiEHIAAgCGohCANAIAcgAyAIKwMAIgogCqKgnzkDACAHQQhqIAMgCEEIaisDACIKIAqioJ85AwAgB0EQaiEHIAhBEGohCCAGQX5qIgYNAAsLC9wCAwV/AXsBfQJAIANFDQBBACEEAkAgA0EESQ0AIAIgAGtBEEkNACACIAFrQRBJDQAgA0F8cSIEIQUgASEGIAAhByACIQgDQCAIIAf9AAIAIgkgCf3mASAG/QACACIJIAn95gH95AH94wH9CwIAIAZBEGohBiAHQRBqIQcgCEEQaiEIIAVBfGoiBQ0ACyADIARGDQELIARBAXIhBgJAIANBAXFFDQAgAiAEQQJ0IgdqIAAgB2oqAgAiCiAKlCABIAdqKgIAIgogCpSSkTgCACAGIQQLIAMgBkYNACADIARrIQUgAiAEQQJ0IghqIQYgACAIaiEHIAEgCGohCANAIAYgByoCACIKIAqUIAgqAgAiCiAKlJKROAIAIAZBBGogB0EEaioCACIKIAqUIAhBBGoqAgAiCiAKlJKROAIAIAZBCGohBiAHQQhqIQcgCEEIaiEIIAVBfmoiBQ0ACwsLoQIFAX8BewN/AXsBfQJAIAJFDQAgAyADlCEDQQAhBAJAIAJBBEkNACABIABrQRBJDQAgA/0TIQUgAkF8cSIEIQYgACEHIAEhCANAIAggBSAH/QACACIJIAn95gH95AH94wH9CwIAIAdBEGohByAIQRBqIQggBkF8aiIGDQALIAIgBEYNAQsgBEEBciEHAkAgAkEBcUUNACABIARBAnQiCGogAyAAIAhqKgIAIgogCpSSkTgCACAHIQQLIAIgB0YNACACIARrIQYgASAEQQJ0IghqIQcgACAIaiEIA0AgByADIAgqAgAiCiAKlJKROAIAIAdBBGogAyAIQQRqKgIAIgogCpSSkTgCACAHQQhqIQcgCEEIaiEIIAZBfmoiBg0ACwsLhAMDBX8BewF8AkAgA0UNAEEAIQQCQCADQQRJDQAgAiAAa0EQSQ0AIAIgAWtBEEkNACADQX5xIgQhBSACIQYgASEHIAAhCANAIAYgCP0AAwAiCf0dALn9FCAJ/R0Buf0iASIJIAn98gEgB/0AAwAiCf0dALn9FCAJ/R0Buf0iASIJIAn98gH98AH97wH9CwMAIAZBEGohBiAHQRBqIQcgCEEQaiEIIAVBfmoiBQ0ACyADIARGDQELIARBAXIhBgJAIANBAXFFDQAgAiAEQQN0IgdqIAAgB2opAwC5IgogCqIgASAHaikDALkiCiAKoqCfOQMAIAYhBAsgAyAGRg0AIAMgBGshBSAAIARBA3QiCGohBiABIAhqIQcgAiAIaiEIA0AgCCAGKQMAuSIKIAqiIAcpAwC5IgogCqKgnzkDACAIQQhqIAZBCGopAwC5IgogCqIgB0EIaikDALkiCiAKoqCfOQMAIAZBEGohBiAHQRBqIQcgCEEQaiEIIAVBfmoiBQ0ACwsLuAIGAXwBfwF7A38BewF8IAO5IgQgBKIhBEEAIQUCQAJAAkAgAg4CAgEACyABIABrQRBJDQAgBP0UIQYgAkF+cSIFIQcgASEIIAAhCQNAIAggBiAJ/QADACIK/R0Auf0UIAr9HQG5/SIBIgogCv3yAf3wAf3vAf0LAwAgCEEQaiEIIAlBEGohCSAHQX5qIgcNAAsgAiAFRg0BCyAFQQFyIQgCQCACQQFxRQ0AIAEgBUEDdCIJaiAEIAAgCWopAwC5IgsgC6KgnzkDACAIIQULIAIgCEYNACACIAVrIQcgACAFQQN0IglqIQggASAJaiEJA0AgCSAEIAgpAwC5IgsgC6KgnzkDACAJQQhqIAQgCEEIaikDALkiCyALoqCfOQMAIAhBEGohCCAJQRBqIQkgB0F+aiIHDQALCwuHAwMFfwF7AXwCQCADRQ0AQQAhBAJAIANBDEkNACACIAAgA0ECdCIFakkgACACIANBA3RqIgZJcQ0AIAIgASAFakkgASAGSXENACADQX5xIgQhByACIQUgASEGIAAhCANAIAUgCP1dAgD9/gEiCSAJ/fIBIAb9XQIA/f4BIgkgCf3yAf3wAf3vAf0LAwAgBUEQaiEFIAZBCGohBiAIQQhqIQggB0F+aiIHDQALIAMgBEYNAQsgBEEBciEFAkAgA0EBcUUNACACIARBA3RqIAAgBEECdCIGaigCALciCiAKoiABIAZqKAIAtyIKIAqioJ85AwAgBSEECyADIAVGDQAgAyAEayEHIAAgBEECdCIGaiEFIAEgBmohBiACIARBA3RqIQgDQCAIIAUoAgC3IgogCqIgBigCALciCiAKoqCfOQMAIAhBCGogBUEEaigCALciCiAKoiAGQQRqKAIAtyIKIAqioJ85AwAgBUEIaiEFIAZBCGohBiAIQRBqIQggB0F+aiIHDQALCwvBAgYBfAF/AXsCfwF7AXwCQCACRQ0AIAO3IgQgBKIhBEEAIQUCQCACQQZJDQACQCABIAAgAkECdGpPDQAgACABIAJBA3RqSQ0BCyAE/RQhBiACQX5xIgUhByABIQMgACEIA0AgAyAGIAj9XQIA/f4BIgkgCf3yAf3wAf3vAf0LAwAgA0EQaiEDIAhBCGohCCAHQX5qIgcNAAsgAiAFRg0BCyAFQQFyIQMCQCACQQFxRQ0AIAEgBUEDdGogBCAAIAVBAnRqKAIAtyIKIAqioJ85AwAgAyEFCyACIANGDQAgAiAFayEHIAAgBUECdGohAyABIAVBA3RqIQgDQCAIIAQgAygCALciCiAKoqCfOQMAIAhBCGogBCADQQRqKAIAtyIKIAqioJ85AwAgA0EIaiEDIAhBEGohCCAHQX5qIgcNAAsLC40DAwV/AXsBfAJAIANFDQBBACEEAkAgA0EMSQ0AIAIgACADQQF0IgVqSSAAIAIgA0EDdGoiBklxDQAgAiABIAVqSSABIAZJcQ0AIANBfnEiBCEHIAIhBSABIQYgACEIA0AgBSAI/VwBAP2nAf3+ASIJIAn98gEgBv1cAQD9pwH9/gEiCSAJ/fIB/fAB/e8B/QsDACAFQRBqIQUgBkEEaiEGIAhBBGohCCAHQX5qIgcNAAsgAyAERg0BCyAEQQFyIQUCQCADQQFxRQ0AIAIgBEEDdGogACAEQQF0IgZqLgEAtyIKIAqiIAEgBmouAQC3IgogCqKgnzkDACAFIQQLIAMgBUYNACADIARrIQcgACAEQQF0IgZqIQUgASAGaiEGIAIgBEEDdGohCANAIAggBS4BALciCiAKoiAGLgEAtyIKIAqioJ85AwAgCEEIaiAFQQJqLgEAtyIKIAqiIAZBAmouAQC3IgogCqKgnzkDACAFQQRqIQUgBkEEaiEGIAhBEGohCCAHQX5qIgcNAAsLC8QCBgF8AX8BewJ/AXsBfAJAIAJFDQAgA7ciBCAEoiEEQQAhBQJAIAJBBkkNAAJAIAEgACACQQF0ak8NACAAIAEgAkEDdGpJDQELIAT9FCEGIAJBfnEiBSEHIAEhAyAAIQgDQCADIAYgCP1cAQD9pwH9/gEiCSAJ/fIB/fAB/e8B/QsDACADQRBqIQMgCEEEaiEIIAdBfmoiBw0ACyACIAVGDQELIAVBAXIhAwJAIAJBAXFFDQAgASAFQQN0aiAEIAAgBUEBdGouAQC3IgogCqKgnzkDACADIQULIAIgA0YNACACIAVrIQcgACAFQQF0aiEDIAEgBUEDdGohCANAIAggBCADLgEAtyIKIAqioJ85AwAgCEEIaiAEIANBAmouAQC3IgogCqKgnzkDACADQQRqIQMgCEEQaiEIIAdBfmoiBw0ACwsL/gIDBX8BewF8AkAgA0UNAEEAIQQCQCADQQxJDQAgAiAAIANqSSAAIAIgA0EDdGoiBUlxDQAgAiABIANqSSABIAVJcQ0AIANBfnEiBCEGIAIhBSABIQcgACEIA0AgBSAILwAA/RD9hwH9pwH9/gEiCSAJ/fIBIAcvAAD9EP2HAf2nAf3+ASIJIAn98gH98AH97wH9CwMAIAVBEGohBSAHQQJqIQcgCEECaiEIIAZBfmoiBg0ACyADIARGDQELIARBAXIhBQJAIANBAXFFDQAgAiAEQQN0aiAAIARqLAAAtyIKIAqiIAEgBGosAAC3IgogCqKgnzkDACAFIQQLIAMgBUYNACACIARBA3RqIQUDQCAFIAAgBGoiBywAALciCiAKoiABIARqIggsAAC3IgogCqKgnzkDACAFQQhqIAdBAWosAAC3IgogCqIgCEEBaiwAALciCiAKoqCfOQMAIABBAmohACABQQJqIQEgBUEQaiEFIAQgA0F+aiIDRw0ACwsLvwIGAXwBfwF7An8BewF8AkAgAkUNACADtyIEIASiIQRBACEFAkAgAkEGSQ0AAkAgASAAIAJqTw0AIAAgASACQQN0akkNAQsgBP0UIQYgAkF+cSIFIQcgASEDIAAhCANAIAMgBiAILwAA/RD9hwH9pwH9/gEiCSAJ/fIB/fAB/e8B/QsDACADQRBqIQMgCEECaiEIIAdBfmoiBw0ACyACIAVGDQELIAVBAXIhAwJAIAJBAXFFDQAgASAFQQN0aiAEIAAgBWosAAC3IgogCqKgnzkDACADIQULIAIgA0YNACAAIAVqIQMgAiAFayEHIAEgBUEDdGohCANAIAggBCADLAAAtyIKIAqioJ85AwAgCEEIaiAEIANBAWosAAC3IgogCqKgnzkDACADQQJqIQMgCEEQaiEIIAdBfmoiBw0ACwsL",Dt=null;function nr(){if(Dt)return Dt;let A=atob(i6),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Dt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Dt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Dt}function Cd(A,r,I,e){nr().exports.hypot_f64(A,r,I,e)}function Ed(A,r,I,e){nr().exports.hypot_scalar_f64(A,r,I,e)}function ud(A,r,I,e){nr().exports.hypot_f32(A,r,I,e)}function cd(A,r,I,e){nr().exports.hypot_scalar_f32(A,r,I,e)}function Ys(A,r,I,e){nr().exports.hypot_i64(A,r,I,e)}function vs(A,r,I,e){nr().exports.hypot_scalar_i64(A,r,I,BigInt(Math.round(e)))}function Xs(A,r,I,e){nr().exports.hypot_i32(A,r,I,e)}function Ts(A,r,I,e){nr().exports.hypot_scalar_i32(A,r,I,e)}function Ps(A,r,I,e){nr().exports.hypot_i16(A,r,I,e)}function Ks(A,r,I,e){nr().exports.hypot_scalar_i16(A,r,I,e)}function Vs(A,r,I,e){nr().exports.hypot_i8(A,r,I,e)}function Ws(A,r,I,e){nr().exports.hypot_scalar_i8(A,r,I,e)}var Dd=64,g6={float64:Cd,float32:ud},Q6={float64:Ed,float32:cd},a6={int64:Ys,uint64:Ys,int32:Xs,uint32:Xs,int16:Ps,uint16:Ps,int8:Vs,uint8:Vs},B6={int64:vs,uint64:vs,int32:Ts,uint32:Ts,int16:Ks,uint16:Ks,int8:Ws,uint8:Ws},ng={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function fd(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<Dd*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=g6[e];if(t){let n=ng[e],g=n.BYTES_PER_ELEMENT;J(I*g*3),U();let i=A.data.subarray(A.offset,A.offset+I),Q=r.data.subarray(r.offset,r.offset+I),a=q(i),B=q(Q),s=_(I*g);t(a,B,s,I);let C=v(s,I,n);return d.fromData(C,Array.from(A.shape),e)}let o=a6[e];if(o){let g=ng[e].BYTES_PER_ELEMENT,i=8;J(I*g*2+I*i),U();let Q=A.data.subarray(A.offset,A.offset+I),a=r.data.subarray(r.offset,r.offset+I),B=q(Q),s=q(a),C=_(I*i);o(B,s,C,I);let E=v(C,I,Float64Array);return d.fromData(E,Array.from(A.shape),"float64")}return null}function md(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<Dd*Y.thresholdMultiplier)return null;let e=A.dtype,t=Q6[e];if(t){let n=ng[e],g=n.BYTES_PER_ELEMENT;J(I*g*2),U();let i=A.data.subarray(A.offset,A.offset+I),Q=q(i),a=_(I*g);t(Q,a,I,r);let B=v(a,I,n);return d.fromData(B,Array.from(A.shape),e)}let o=B6[e];if(o){let g=ng[e].BYTES_PER_ELEMENT,i=8;J(I*g+I*i),U();let Q=A.data.subarray(A.offset,A.offset+I),a=q(Q),B=_(I*i);o(a,B,I,r);let s=v(B,I,Float64Array);return d.fromData(s,Array.from(A.shape),"float64")}return null}function dd(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),e=A.size,t=A.isCContiguous,o=d.zeros(I,r),n=o.data;if(t){let g=A.data,i=A.offset;for(let Q=0;Q<e;Q++){let a=g[(i+Q)*2],B=g[(i+Q)*2+1];n[Q*2]=Math.sin(a)*Math.cosh(B),n[Q*2+1]=Math.cos(a)*Math.sinh(B)}}else for(let g=0;g<e;g++){let i=A.iget(g),Q=i.re,a=i.im;n[g*2]=Math.sin(Q)*Math.cosh(a),n[g*2+1]=Math.cos(Q)*Math.sinh(a)}return o}return mA(A,Math.sin,!1)}function bd(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.isCContiguous,n=d.zeros(e,r),g=n.data;if(o){let i=A.data,Q=A.offset;for(let a=0;a<t;a++){let B=i[(Q+a)*2],s=i[(Q+a)*2+1];g[a*2]=Math.cos(B)*Math.cosh(s),g[a*2+1]=-Math.sin(B)*Math.sinh(s)}}else for(let i=0;i<t;i++){let Q=A.iget(i),a=Q.re,B=Q.im;g[i*2]=Math.cos(a)*Math.cosh(B),g[i*2+1]=-Math.sin(a)*Math.sinh(B)}return n}let I=zh(A);return I||mA(A,Math.cos,!1)}function pd(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.isCContiguous,n=d.zeros(e,r),g=n.data;if(o){let i=A.data,Q=A.offset;for(let a=0;a<t;a++){let B=i[(Q+a)*2],s=i[(Q+a)*2+1],C=Math.cos(2*B)+Math.cosh(2*s);g[a*2]=Math.sin(2*B)/C,g[a*2+1]=Math.sinh(2*s)/C}}else for(let i=0;i<t;i++){let Q=A.iget(i),a=Q.re,B=Q.im,s=Math.cos(2*a)+Math.cosh(2*B);g[i*2]=Math.sin(2*a)/s,g[i*2+1]=Math.sinh(2*B)/s}return n}let I=Ad(A);return I||mA(A,Math.tan,!1)}function wd(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.isCContiguous,n=d.zeros(e,r),g=n.data;if(o){let i=A.data,Q=A.offset;for(let a=0;a<t;a++){let B=i[(Q+a)*2],s=i[(Q+a)*2+1],[C,E]=yd(B,s);g[a*2]=C,g[a*2+1]=E}}else for(let i=0;i<t;i++){let Q=A.iget(i),[a,B]=yd(Q.re,Q.im);g[i*2]=a,g[i*2+1]=B}return n}let I=td(A);return I||mA(A,Math.asin,!1)}function yd(A,r){let I=-r,e=A,t=A*A-r*r,o=2*A*r,n=1-t,g=-o,i=Math.sqrt(n*n+g*g),Q=Math.sqrt((i+n)/2),a=(g>=0?1:-1)*Math.sqrt((i-n)/2),B=I+Q,s=e+a,C=Math.sqrt(B*B+s*s),E=Math.log(C),f=Math.atan2(s,B),m=-E;return Math.abs(r)<1e-15&&A>1&&(m=-m),[f,m]}function Nd(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.isCContiguous,n=d.zeros(e,r),g=n.data;if(o){let i=A.data,Q=A.offset;for(let a=0;a<t;a++){let B=i[(Q+a)*2],s=i[(Q+a)*2+1],[C,E]=ld(B,s);g[a*2]=C,g[a*2+1]=E}}else for(let i=0;i<t;i++){let Q=A.iget(i),[a,B]=ld(Q.re,Q.im);g[i*2]=a,g[i*2+1]=B}return n}let I=gd(A);return I||mA(A,Math.acos,!1)}function ld(A,r){let I=A*A-r*r,e=2*A*r,t=1-I,o=-e,n=Math.sqrt(t*t+o*o),g=Math.sqrt((n+t)/2),Q=-((o>=0?1:-1)*Math.sqrt((n-t)/2)),a=g,B=A+Q,s=r+a,C=Math.sqrt(B*B+s*s),E=Math.log(C),f=Math.atan2(s,B),m=-E;return Math.abs(r)<1e-15&&A>1&&(m=-m),[f,m]}function Fd(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.isCContiguous,n=d.zeros(e,r),g=n.data;if(o){let i=A.data,Q=A.offset;for(let a=0;a<t;a++){let B=i[(Q+a)*2],s=i[(Q+a)*2+1],[C,E]=hd(B,s);g[a*2]=C,g[a*2+1]=E}}else for(let i=0;i<t;i++){let Q=A.iget(i),[a,B]=hd(Q.re,Q.im);g[i*2]=a,g[i*2+1]=B}return n}let I=sd(A);return I||mA(A,Math.atan,!1)}function hd(A,r){let I=-r,e=A,t=1-I,o=-e,n=1+I,g=e,i=n*n+g*g,Q=(t*n+o*g)/i,a=(o*n-t*g)/i,B=Math.sqrt(Q*Q+a*a),s=Math.log(B);return[-Math.atan2(a,Q)/2,s/2]}function Gd(A,r){return eA(A.dtype,"arctan2","arctan2 is only defined for real numbers."),typeof r!="number"&&eA(r.dtype,"arctan2","arctan2 is only defined for real numbers."),typeof r=="number"?C6(A,r):s6(A,r)}function s6(A,r){let I=Array.from(A.shape),e=A.size,t=A.dtype,o=r.dtype,n=t==="float32"&&o==="float32"?"float32":"float64",g=d.zeros(I,n),i=g.data,Q=A.isCContiguous,a=r.isCContiguous;if(Q&&a){let B=A.offset,s=r.offset;for(let C=0;C<e;C++){let E=Number(A.data[B+C]),u=Number(r.data[s+C]);i[C]=Math.atan2(E,u)}}else if(Q){let B=A.offset;for(let s=0;s<e;s++){let C=Number(A.data[B+s]),E=Number(r.iget(s));i[s]=Math.atan2(C,E)}}else if(a){let B=r.offset;for(let s=0;s<e;s++){let C=Number(A.iget(s)),E=Number(r.data[B+s]);i[s]=Math.atan2(C,E)}}else for(let B=0;B<e;B++){let s=Number(A.iget(B)),C=Number(r.iget(B));i[B]=Math.atan2(s,C)}return g}function C6(A,r){let I=A.dtype,e=Array.from(A.shape),t=A.size,o=I==="float32"?"float32":"float64",n=d.zeros(e,o),g=n.data;if(A.isCContiguous){let Q=A.data,a=A.offset;if(L(I))for(let B=0;B<t;B++)g[B]=Math.atan2(Number(Q[a+B]),r);else for(let B=0;B<t;B++)g[B]=Math.atan2(Number(Q[a+B]),r)}else for(let Q=0;Q<t;Q++)g[Q]=Math.atan2(Number(A.iget(Q)),r);return n}function Sd(A,r){return eA(A.dtype,"hypot","hypot is only defined for real numbers."),typeof r!="number"&&eA(r.dtype,"hypot","hypot is only defined for real numbers."),typeof r=="number"?u6(A,r):E6(A,r)}function E6(A,r){let I=fd(A,r);if(I)return I;let e=Array.from(A.shape),t=A.size,o=A.dtype,n=r.dtype,g=o==="float32"&&n==="float32"?"float32":"float64",i=d.zeros(e,g),Q=i.data,a=A.isCContiguous,B=r.isCContiguous;if(a&&B){let s=A.offset,C=r.offset;for(let E=0;E<t;E++){let u=Number(A.data[s+E]),f=Number(r.data[C+E]);Q[E]=Math.hypot(u,f)}}else if(a){let s=A.offset;for(let C=0;C<t;C++){let E=Number(A.data[s+C]),u=Number(r.iget(C));Q[C]=Math.hypot(E,u)}}else if(B){let s=r.offset;for(let C=0;C<t;C++){let E=Number(A.iget(C)),u=Number(r.data[s+C]);Q[C]=Math.hypot(E,u)}}else for(let s=0;s<t;s++){let C=Number(A.iget(s)),E=Number(r.iget(s));Q[s]=Math.hypot(C,E)}return i}function u6(A,r){let I=md(A,r);if(I)return I;let e=A.dtype,t=Array.from(A.shape),o=A.size,n=e==="float32"?"float32":"float64",g=d.zeros(t,n),i=g.data;if(A.isCContiguous){let a=A.data,B=A.offset;if(L(e))for(let s=0;s<o;s++)i[s]=Math.hypot(Number(a[B+s]),r);else for(let s=0;s<o;s++)i[s]=Math.hypot(Number(a[B+s]),r)}else for(let a=0;a<o;a++)i[a]=Math.hypot(Number(A.iget(a)),r);return g}function Os(A){eA(A.dtype,"degrees","degrees is only defined for real numbers.");let r=180/Math.PI;return mA(A,I=>I*r,!1)}function Zs(A){eA(A.dtype,"radians","radians is only defined for real numbers.");let r=Math.PI/180;return mA(A,I=>I*r,!1)}function Rd(A){return Zs(A)}function kd(A){return Os(A)}var D6="AGFzbQEAAAABEgNgA39/fwBgAXwBfGACfH8BfAIPAQNlbnYGbWVtb3J5AgARAwgHAAEAAAACAQYJAX8BQYCAwAALBy0ECHNpbmhfZjY0AAAIc2luaF9mMzIAAghzaW5oX2k2NAADCHNpbmhfdTY0AAQKyQ8HNAACQCACRQ0AA0AgASAAKwMAEIGAgIAAOQMAIAFBCGohASAAQQhqIQAgAkF/aiICDQALCwvtBwgBfwF8AX4BfQF/AnwBfwJ8I4CAgIAAQRBrIgEkgICAgAACQCAARAAAAAAAAAAAZCAARAAAAAAAAAAAY3JBAUcNACAAmSECQwAAAD9DAAAAvyAAvSIDQn9VGyEEAkACQAJAAkAgA0IgiKdB/////wdxIgVBwdyYhARLDQACQAJAAkACQAJAIAK9IgNC/////5+P2qHAAFYNACADQv////+vyIvrP1gNASADQoCAgICg1qj4P1oNAyACRAAA4P5CLua/oCEGRHY8eTXvOeo9IQdBASEIDAYLIANC/////4+AgPj/AFgNASACIQYMBwsgA0KAgICAgICAyDxUDQJEAAAAAAAAAAAhB0EAIQgMBQtEAAAAAAAA8H8hBiACRO85+v5CLoZAZA0FCyACRP6CK2VHFfc/okQAAAAAAADgP6D8AiIItyIGRHY8eTXvOeo9oiEHIAIgBkQAAOD+Qi7mv6KgIQYMAgsCQCADQv////////8HWA0AIAIhBgwECyABIAK2OAIMIAFBDGohCCACIQYMAwsgAkSL3RoVZiCWwKAQhoCAgABEAAAAAAAAwH+iRAAAAAAAAMB/oiAEIASSu6IhAAwDCyAGIAYgB6EiAqEgB6EhBwsgAiACRAAAAAAAAOA/oiIJoiIGIAYgBiAGIAYgBkQtwwlut/2KvqJEOVLmhsrP0D6gokS326qeGc4Uv6CiRIVV/hmgAVo/oKJE9BARERERob+gokQAAAAAAADwP6AiCkQAAAAAAAAIQCAJIAqioSIJoUQAAAAAAAAYQCACIAmioaOiIQkCQCAIDQAgAiACIAmiIAahoSEGDAELIAIgCSAHoaIgB6EgBqEhBgJAAkACQAJAIAhBAWoOAwACAQILIAIgBqFEAAAAAAAA4D+iRAAAAAAAAOC/oCEGDAMLIAJEAAAAAAAA0L9jDQEgAiAGoSICIAKgRAAAAAAAAPA/oCEGDAILIAhB/wdqrUI0hr8hBwJAIAhBOEsNAEH/ByAIa61CNIa/IQkCQCAIQRNLDQBEAAAAAAAA8D8gCaEgAiAGoaAgB6IhBgwDCyACIAYgCaChRAAAAAAAAPA/oCAHoiEGDAILIAIgBqFEAAAAAAAA8D+gIgIgAqBEAAAAAAAA4H+iIAIgB6IgCEGACEYbRAAAAAAAAPC/oCEGDAELIAYgAkQAAAAAAADgP6ChRAAAAAAAAADAoiEGCwJAIAVBgIDA/wNPDQAgBUGAgMDyA0kNASAGIAagIAYgBqIgBkQAAAAAAADwP6CjoSAEu6IhAAwBCyAGIAYgBkQAAAAAAADwP6CjoCAEu6IhAAsgAUEQaiSAgICAACAACzYAAkAgAkUNAANAIAEgACoCALsQgYCAgAC2OAIAIAFBBGohASAAQQRqIQAgAkF/aiICDQALCws1AAJAIAJFDQADQCABIAApAwC5EIGAgIAAOQMAIAFBCGohASAAQQhqIQAgAkF/aiICDQALCws1AAJAIAJFDQADQCABIAApAwC6EIGAgIAAOQMAIAFBCGohASAAQQhqIQAgAkF/aiICDQALCwvOAgIDfgJ/AkACQCAAIABiDQAgAL0iAkL///////////8Ag0KAgICAgICA+P8AWg0AIAJCgICAgICAgICAf4MhA0ELIAJCAYYiBHmnayAEQjWIpyAEQoCAgICAgIAQVBshBQJAIAFBAEgNAAJAIAFB/g8gBWtMDQBEAAAAAAAA8H8gAKYPCwJAIAUgAWoiBkEASg0AIAIgAa2GIAOEvw8LAkAgBUEASg0AIAJBASAFa62GQv////////8HgyAGrUI0hoQgA4S/DwsgAa1CNIYgAny/DwtBACABayEGIAFBACAFa0oNAQJAIAFBTCAFa04NACADvw8LIAVBAEqtQjSGIAJC/////////weDhCAGQQEgASAFamsiASAGIAFIG0F/akE/ca0iBIhCAXxCAYggAnogBFGtQn+Fg78gAKYhAAsgAA8LIAIgBq1CNIZ9vwuvAwMBfgF/A3wCQCAAIABiDQAgAL0iAUI/iKchAgJAAkACQAJAAkACQAJAIAFCIIhC/////weDIgFCqsaYhARWDQAgAULC3Nj+A1gNASABQrLFwv8DWA0CDAQLIAFCgIDA/wdWDQYCQCAARO85+v5CLoZAZEUNAEQAAAAAAADwfw8LIABE0rx63SsjhsBjRQ0DIABEUTAt1RBJh8BjRQ0DRAAAAAAAAAAADwsgAUKAgMDxA1gNAUEAIQJEAAAAAAAAAAAhAyAAIQQMBAsgAkEBcyACayECDAILIABEAAAAAAAA8D+gIQAMAwsgAET+gitlRxX3P6IgAkEDdEGAgMCAAGorAwCg/AIhAgsgACACtyIERAAA4P5CLua/oqAiACAERHY8eTXvOeo9oiIDoSEECyAAIAQgBCAEIASiIgUgBSAFIAUgBUTQpL5yaTdmPqJE8WvSxUG9u76gokQs3iWvalYRP6CiRJO9vhZswWa/oKJEPlVVVVVVxT+goqEiBaJEAAAAAAAAAEAgBaGjIAOhoEQAAAAAAADwP6AhACACRQ0AIAAgAhCFgICAAA8LIAALCxkBAEGAgMAACxAAAAAAAADgPwAAAAAAAOC/",ft=null;function ig(){if(ft)return ft;let A=atob(D6),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ft=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ft.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ft}function zs(A,r,I){ig().exports.sinh_f64(A,r,I)}function qd(A,r,I){ig().exports.sinh_f32(A,r,I)}function Md(A,r,I){ig().exports.sinh_i64(A,r,I)}function xd(A,r,I){ig().exports.sinh_u64(A,r,I)}var f6=64,m6={float64:zs,float32:qd};function Jd(A){if(!A.isCContiguous)return null;let r=A.size;if(r<f6*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=m6[I];if(e){let B=I==="float32",s=B?4:8,C=B?Float32Array:Float64Array;J(r*s*2),U();let E=A.offset,u=A.data.subarray(E,E+r),f=q(u),m=_(r*s);e(f,m,r);let c=v(m,r,C);return d.fromData(c,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){J(r*16),U();let B=A.offset,s=A.data.subarray(B,B+r),C=q(s),E=_(r*8);(I==="int64"?Md:xd)(C,E,r);let u=v(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let t=8;J(r*t*2),U();let o=A.offset,n=A.data,g=new Float64Array(r);if(L(I))for(let B=0;B<r;B++)g[B]=Number(n[o+B]);else for(let B=0;B<r;B++)g[B]=n[o+B];let i=q(g),Q=_(r*t);zs(i,Q,r);let a=v(Q,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var y6="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",mt=null;function gg(){if(mt)return mt;let A=atob(y6),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);mt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=mt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),mt}function js(A,r,I){gg().exports.cosh_f64(A,r,I)}function Ud(A,r,I){gg().exports.cosh_f32(A,r,I)}function Ld(A,r,I){gg().exports.cosh_i64(A,r,I)}function Hd(A,r,I){gg().exports.cosh_u64(A,r,I)}var l6=64,h6={float64:js,float32:Ud};function _d(A){if(!A.isCContiguous)return null;let r=A.size;if(r<l6*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=h6[I];if(e){let B=I==="float32",s=B?4:8,C=B?Float32Array:Float64Array;J(r*s*2),U();let E=A.offset,u=A.data.subarray(E,E+r),f=q(u),m=_(r*s);e(f,m,r);let c=v(m,r,C);return d.fromData(c,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){J(r*16),U();let B=A.offset,s=A.data.subarray(B,B+r),C=q(s),E=_(r*8);(I==="int64"?Ld:Hd)(C,E,r);let u=v(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let t=8;J(r*t*2),U();let o=A.offset,n=A.data,g=new Float64Array(r);if(L(I))for(let B=0;B<r;B++)g[B]=Number(n[o+B]);else for(let B=0;B<r;B++)g[B]=n[o+B];let i=q(g),Q=_(r*t);js(i,Q,r);let a=v(Q,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var d6="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",yt=null;function Qg(){if(yt)return yt;let A=atob(d6),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);yt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=yt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),yt}function $s(A,r,I){Qg().exports.tanh_f64(A,r,I)}function Yd(A,r,I){Qg().exports.tanh_f32(A,r,I)}function vd(A,r,I){Qg().exports.tanh_i64(A,r,I)}function Xd(A,r,I){Qg().exports.tanh_u64(A,r,I)}var b6=64,p6={float64:$s,float32:Yd};function Td(A){if(!A.isCContiguous)return null;let r=A.size;if(r<b6*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=p6[I];if(e){let B=I==="float32",s=B?4:8,C=B?Float32Array:Float64Array;J(r*s*2),U();let E=A.offset,u=A.data.subarray(E,E+r),f=q(u),m=_(r*s);e(f,m,r);let c=v(m,r,C);return d.fromData(c,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){J(r*16),U();let B=A.offset,s=A.data.subarray(B,B+r),C=q(s),E=_(r*8);(I==="int64"?vd:Xd)(C,E,r);let u=v(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let t=8;J(r*t*2),U();let o=A.offset,n=A.data,g=new Float64Array(r);if(L(I))for(let B=0;B<r;B++)g[B]=Number(n[o+B]);else for(let B=0;B<r;B++)g[B]=n[o+B];let i=q(g),Q=_(r*t);$s(i,Q,r);let a=v(Q,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}function Pd(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.data,n=d.zeros(e,r),g=n.data;for(let i=0;i<t;i++){let Q=o[i*2],a=o[i*2+1];g[i*2]=Math.sinh(Q)*Math.cos(a),g[i*2+1]=Math.cosh(Q)*Math.sin(a)}return n}let I=Jd(A);return I||mA(A,Math.sinh,!1)}function Kd(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.data,n=d.zeros(e,r),g=n.data;for(let i=0;i<t;i++){let Q=o[i*2],a=o[i*2+1];g[i*2]=Math.cosh(Q)*Math.cos(a),g[i*2+1]=Math.sinh(Q)*Math.sin(a)}return n}let I=_d(A);return I||mA(A,Math.cosh,!1)}function Vd(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.data,n=d.zeros(e,r),g=n.data;for(let i=0;i<t;i++){let Q=o[i*2],a=o[i*2+1],B=Math.cosh(2*Q)+Math.cos(2*a);g[i*2]=Math.sinh(2*Q)/B,g[i*2+1]=Math.sin(2*a)/B}return n}let I=Td(A);return I||mA(A,Math.tanh,!1)}function Wd(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),e=A.size,t=A.data,o=d.zeros(I,r),n=o.data;for(let g=0;g<e;g++){let i=t[g*2],Q=t[g*2+1],a=i*i-Q*Q,B=2*i*Q,s=a+1,C=B,E=Math.sqrt(s*s+C*C),u=Math.sqrt((E+s)/2),f=(C>=0?1:-1)*Math.sqrt((E-s)/2),m=i+u,c=Q+f,D=Math.sqrt(m*m+c*c);n[g*2]=Math.log(D),n[g*2+1]=Math.atan2(c,m)}return o}return mA(A,Math.asinh,!1)}function Od(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),e=A.size,t=A.data,o=d.zeros(I,r),n=o.data;for(let g=0;g<e;g++){let i=t[g*2],Q=t[g*2+1],a=i*i-Q*Q,B=2*i*Q,s=a-1,C=B,E=Math.sqrt(s*s+C*C),u=Math.sqrt((E+s)/2),f=(C>=0?1:-1)*Math.sqrt((E-s)/2),m=i+u,c=Q+f,D=Math.sqrt(m*m+c*c),y=Math.log(D),l=Math.atan2(c,m);Math.abs(Q)<1e-15&&i<1&&(l=-l),n[g*2]=y,n[g*2+1]=l}return o}return mA(A,Math.acosh,!1)}function Zd(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),e=A.size,t=A.data,o=d.zeros(I,r),n=o.data;for(let g=0;g<e;g++){let i=t[g*2],Q=t[g*2+1],a=1+i,B=Q,s=1-i,C=-Q,E=s*s+C*C,u=(a*s+B*C)/E,f=(B*s-a*C)/E,m=Math.sqrt(u*u+f*f),c=Math.log(m),D=Math.atan2(f,u);n[g*2]=c/2,n[g*2+1]=D/2}return o}return mA(A,Math.atanh,!1)}function lt(A){return R(dd(G(A)))}function ht(A){return R(bd(G(A)))}function dt(A){return R(pd(G(A)))}function bt(A){return R(wd(G(A)))}function pt(A){return R(Nd(G(A)))}function wt(A){return R(Fd(G(A)))}function Nt(A,r){let I=typeof r=="number"?r:G(r);return R(Gd(G(A),I))}function Ft(A,r){let I=typeof r=="number"?r:G(r);return R(Sd(G(A),I))}function Gt(A){return R(Os(G(A)))}function St(A){return R(Zs(G(A)))}function AC(A){return R(Rd(G(A)))}function rC(A){return R(kd(G(A)))}function Rt(A){return R(Pd(G(A)))}function kt(A){return R(Kd(G(A)))}function qt(A){return R(Vd(G(A)))}function Mt(A){return R(Wd(G(A)))}function xt(A){return R(Od(G(A)))}function Jt(A){return R(Zd(G(A)))}var N6="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",Ut=null;function Tr(){if(Ut)return Ut;let A=atob(N6),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Ut=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Ut.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ut}function zd(A,r,I,e,t,o){Tr().exports.matmul_f64(A,r,I,e,t,o)}function jd(A,r,I,e,t,o){Tr().exports.matmul_f32(A,r,I,e,t,o)}function $d(A,r,I,e,t,o){Tr().exports.matmul_c128(A,r,I,e,t,o)}function Ab(A,r,I,e,t,o){Tr().exports.matmul_c64(A,r,I,e,t,o)}function IC(A,r,I,e,t,o){Tr().exports.matmul_i64(A,r,I,e,t,o)}function eC(A,r,I,e,t,o){Tr().exports.matmul_i32(A,r,I,e,t,o)}function tC(A,r,I,e,t,o){Tr().exports.matmul_i16(A,r,I,e,t,o)}function oC(A,r,I,e,t,o){Tr().exports.matmul_i8(A,r,I,e,t,o)}var F6=256,G6={float64:zd,float32:jd,complex128:$d,complex64:Ab,int64:IC,uint64:IC,int32:eC,uint32:eC,int16:tC,uint16:tC,int8:oC,uint8:oC},tb={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},S6={complex128:2,complex64:2};function rb(A,r,I,e,t,o,n,g=1){let i=r.BYTES_PER_ELEMENT,Q=t*o*g*i,a=o*n*g*i,B=t*n*g*i;J(Q+a+B),U();let s=q(I),C=q(e),E=_(B);return A(s,C,E,t,n,o),v(E,t*n*g,r)}function ob(A,r){if(A.ndim===0||r.ndim===0)return null;let I=IA(A.dtype,r.dtype);if(I==="bool")return null;let e=I,t=G6[e],o=tb[e];if(!t||!o||!A.isCContiguous||!r.isCContiguous)return null;let n=S6[e]??1,g=A.ndim===1,i=r.ndim===1,Q=g?[1,A.shape[0]]:Array.from(A.shape),a=i?[r.shape[0],1]:Array.from(r.shape),B=Q.length,s=a.length,C=Q[B-2],E=Q[B-1],u=a[s-2],f=a[s-1];if(E!==u||C*E+E*f<F6*Y.thresholdMultiplier)return null;let c=Ib(A,e,n),D=Ib(r,e,n);if(B===2&&s===2){let H=rb(t,o,c,D,C,E,f,n),X;return g&&i?X=[]:g?X=[f]:i?X=[C]:X=[C,f],d.fromData(H,X,e)}let y=Q.slice(0,B-2),l=a.slice(0,s-2),h=R6(y,l),b=h.reduce((H,X)=>H*X,1),p=C*E*n,w=E*f*n,N=C*f*n,F=new o(b*N);for(let H=0;H<b;H++){let X=k6(H,h),P=eb(X,y),Z=eb(X,l),V=P*p,$=Z*w,O=c.subarray(V,V+p),z=D.subarray($,$+w),rA=rb(t,o,O,z,C,E,f,n);new Uint8Array(F.buffer,H*N*o.BYTES_PER_ELEMENT,rA.byteLength).set(new Uint8Array(rA.buffer,rA.byteOffset,rA.byteLength))}let S=[...h,C,f],x=d.fromData(F,S,e);return g&&i?nC(x,[...h]):g?nC(x,[...h,f]):i?nC(x,[...h,C]):x}function Ib(A,r,I){let e=A.data,t=A.offset,o=A.size,n=o*I;if(A.dtype===r&&t===0)return e.subarray(0,n);if(A.dtype===r){let Q=t*I;return e.subarray(Q,Q+n)}let g=tb[r];if(!g)throw new Error(`No TypedArray constructor for dtype ${r}`);let i=new g(n);for(let Q=0;Q<o;Q++)i[Q]=Number(A.iget(Q));return i}function nC(A,r){return d.fromData(A.data,r,A.dtype)}function R6(A,r){let I=Math.max(A.length,r.length),e=[];for(let t=0;t<I;t++){let o=t<I-A.length?1:A[t-(I-A.length)],n=t<I-r.length?1:r[t-(I-r.length)];if(o!==n&&o!==1&&n!==1)throw new Error(`matmul: batch shapes not broadcastable: [${A}] vs [${r}]`);e.push(Math.max(o,n))}return e}function k6(A,r){let I=new Array(r.length),e=A;for(let t=r.length-1;t>=0;t--)I[t]=e%r[t],e=Math.floor(e/r[t]);return I}function eb(A,r){let I=A.length-r.length,e=0,t=1;for(let o=r.length-1;o>=0;o--){let n=r[o],g=A[o+I];e+=(n===1?0:g)*t,t*=n}return e}var q6="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",Lt=null;function Pr(){if(Lt)return Lt;let A=atob(q6),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Lt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Lt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Lt}function nb(A,r,I,e,t,o){Pr().exports.inner_f64(A,r,I,e,t,o)}function ib(A,r,I,e,t,o){Pr().exports.inner_f32(A,r,I,e,t,o)}function gb(A,r,I,e,t,o){Pr().exports.inner_c128(A,r,I,e,t,o)}function Qb(A,r,I,e,t,o){Pr().exports.inner_c64(A,r,I,e,t,o)}function iC(A,r,I,e,t,o){Pr().exports.inner_i64(A,r,I,e,t,o)}function gC(A,r,I,e,t,o){Pr().exports.inner_i32(A,r,I,e,t,o)}function QC(A,r,I,e,t,o){Pr().exports.inner_i16(A,r,I,e,t,o)}function aC(A,r,I,e,t,o){Pr().exports.inner_i8(A,r,I,e,t,o)}var M6=256,x6={float64:nb,float32:ib,complex128:gb,complex64:Qb,int64:iC,uint64:iC,int32:gC,uint32:gC,int16:QC,uint16:QC,int8:aC,uint8:aC},J6={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},U6={complex128:2,complex64:2};function ab(A,r){if(A.ndim===0||r.ndim===0||!A.isCContiguous||!r.isCContiguous)return null;let I=IA(A.dtype,r.dtype),e=x6[I],t=J6[I];if(!e||!t)return null;let o=U6[I]??1,n=A.shape[A.ndim-1],g=r.shape[r.ndim-1];if(n!==g)return null;let i=A.ndim===1?1:A.shape.slice(0,-1).reduce((h,b)=>h*b,1),Q=r.ndim===1?1:r.shape.slice(0,-1).reduce((h,b)=>h*b,1);if(i*n+Q*n<M6*Y.thresholdMultiplier)return null;let B=t.BYTES_PER_ELEMENT,s=i*n*o*B,C=Q*n*o*B,E=i*Q*o*B;J(s+C+E),U();let u=A.data.subarray(A.offset*o,A.offset*o+i*n*o),f=r.data.subarray(r.offset*o,r.offset*o+Q*n*o),m=q(u),c=q(f),D=_(E);e(m,c,D,i,Q,n);let y=v(D,i*Q*o,t);if(A.ndim===1&&r.ndim===1)return o===2?new T(Number(y[0]),Number(y[1])):y[0];let l=[...A.shape.slice(0,-1),...r.shape.slice(0,-1)];return d.fromData(y,l,I)}var L6="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",Ht=null;function Kr(){if(Ht)return Ht;let A=atob(L6),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Ht=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Ht.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ht}function Bb(A,r,I,e){Kr().exports.dot_f64(A,r,I,e)}function sb(A,r,I,e){Kr().exports.dot_f32(A,r,I,e)}function Cb(A,r,I,e){Kr().exports.dot_c128(A,r,I,e)}function Eb(A,r,I,e){Kr().exports.dot_c64(A,r,I,e)}function BC(A,r,I,e){Kr().exports.dot_i64(A,r,I,e)}function sC(A,r,I,e){Kr().exports.dot_i32(A,r,I,e)}function CC(A,r,I,e){Kr().exports.dot_i16(A,r,I,e)}function EC(A,r,I,e){Kr().exports.dot_i8(A,r,I,e)}var H6=128,_6={float64:Bb,float32:sb,complex128:Cb,complex64:Eb,int64:BC,uint64:BC,int32:sC,uint32:sC,int16:CC,uint16:CC,int8:EC,uint8:EC},Y6={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},v6={complex128:2,complex64:2};function ag(A,r){if(A.ndim!==1||r.ndim!==1||!A.isCContiguous||!r.isCContiguous)return null;let I=A.shape[0];if(I!==r.shape[0]||I<H6*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=_6[e],o=Y6[e];if(!t||!o)return null;let n=v6[e]??1,g=o.BYTES_PER_ELEMENT,i=I*n*g,Q=I*n*g,a=1*n*g;J(i+Q+a),U();let B=A.data.subarray(A.offset*n,A.offset*n+I*n),s=r.data.subarray(r.offset*n,r.offset*n+I*n),C=q(B),E=q(s),u=_(a);t(C,E,u,I);let f=v(u,1*n,o);return n===2?new T(Number(f[0]),Number(f[1])):Number(f[0])}var X6="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",_t=null;function Vr(){if(_t)return _t;let A=atob(X6),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);_t=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=_t.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),_t}function ub(A,r,I,e,t){Vr().exports.matvec_f64(A,r,I,e,t)}function cb(A,r,I,e,t){Vr().exports.matvec_f32(A,r,I,e,t)}function Db(A,r,I,e,t){Vr().exports.matvec_c128(A,r,I,e,t)}function fb(A,r,I,e,t){Vr().exports.matvec_c64(A,r,I,e,t)}function uC(A,r,I,e,t){Vr().exports.matvec_i64(A,r,I,e,t)}function cC(A,r,I,e,t){Vr().exports.matvec_i32(A,r,I,e,t)}function DC(A,r,I,e,t){Vr().exports.matvec_i16(A,r,I,e,t)}function fC(A,r,I,e,t){Vr().exports.matvec_i8(A,r,I,e,t)}var T6=128,P6={float64:ub,float32:cb,complex128:Db,complex64:fb,int64:uC,uint64:uC,int32:cC,uint32:cC,int16:DC,uint16:DC,int8:fC,uint8:fC},K6={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},V6={complex128:2,complex64:2};function mC(A,r){if(A.ndim!==2||r.ndim!==1||!A.isCContiguous||!r.isCContiguous)return null;let I=A.shape[0],e=A.shape[1];if(e!==r.shape[0]||I*e<T6*Y.thresholdMultiplier)return null;let t=IA(A.dtype,r.dtype),o=P6[t],n=K6[t];if(!o||!n)return null;let g=V6[t]??1,i=n.BYTES_PER_ELEMENT,Q=I*e*g*i,a=e*g*i,B=I*g*i;J(Q+a+B),U();let s=A.data.subarray(A.offset*g,A.offset*g+I*e*g),C=r.data.subarray(r.offset*g,r.offset*g+e*g),E=q(s),u=q(C),f=_(B);o(E,u,f,I,e);let m=v(f,I*g,n);return d.fromData(m,[I],t)}var W6="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",Yt=null;function Wr(){if(Yt)return Yt;let A=atob(W6),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Yt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Yt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Yt}function mb(A,r,I,e,t){Wr().exports.vecmat_f64(A,r,I,e,t)}function yb(A,r,I,e,t){Wr().exports.vecmat_f32(A,r,I,e,t)}function lb(A,r,I,e,t){Wr().exports.vecmat_c128(A,r,I,e,t)}function hb(A,r,I,e,t){Wr().exports.vecmat_c64(A,r,I,e,t)}function yC(A,r,I,e,t){Wr().exports.vecmat_i64(A,r,I,e,t)}function lC(A,r,I,e,t){Wr().exports.vecmat_i32(A,r,I,e,t)}function hC(A,r,I,e,t){Wr().exports.vecmat_i16(A,r,I,e,t)}function dC(A,r,I,e,t){Wr().exports.vecmat_i8(A,r,I,e,t)}var O6=128,Z6={float64:mb,float32:yb,complex128:lb,complex64:hb,int64:yC,uint64:yC,int32:lC,uint32:lC,int16:hC,uint16:hC,int8:dC,uint8:dC},z6={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},j6={complex128:2,complex64:2};function bC(A,r){if(A.ndim!==1||r.ndim!==2||!A.isCContiguous||!r.isCContiguous)return null;let I=r.shape[0],e=r.shape[1];if(I!==A.shape[0]||I*e<O6*Y.thresholdMultiplier)return null;let t=IA(A.dtype,r.dtype),o=Z6[t],n=z6[t];if(!o||!n)return null;let g=j6[t]??1,i=n.BYTES_PER_ELEMENT,Q=I*g*i,a=I*e*g*i,B=e*g*i;J(Q+a+B),U();let s=A.data.subarray(A.offset*g,A.offset*g+I*g),C=r.data.subarray(r.offset*g,r.offset*g+I*e*g),E=q(s),u=q(C),f=_(B);o(E,u,f,I,e);let m=v(f,e*g,n);return d.fromData(m,[e],t)}var $6="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",vt=null;function Or(){if(vt)return vt;let A=atob($6),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);vt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=vt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),vt}function db(A,r,I,e,t){Or().exports.outer_f64(A,r,I,e,t)}function bb(A,r,I,e,t){Or().exports.outer_f32(A,r,I,e,t)}function pb(A,r,I,e,t){Or().exports.outer_c128(A,r,I,e,t)}function wb(A,r,I,e,t){Or().exports.outer_c64(A,r,I,e,t)}function pC(A,r,I,e,t){Or().exports.outer_i64(A,r,I,e,t)}function wC(A,r,I,e,t){Or().exports.outer_i32(A,r,I,e,t)}function NC(A,r,I,e,t){Or().exports.outer_i16(A,r,I,e,t)}function FC(A,r,I,e,t){Or().exports.outer_i8(A,r,I,e,t)}var A1=128,r1={float64:db,float32:bb,complex128:pb,complex64:wb,int64:pC,uint64:pC,int32:wC,uint32:wC,int16:NC,uint16:NC,int8:FC,uint8:FC},I1={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},e1={complex128:2,complex64:2};function Nb(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size,e=r.size;if(I+e<A1*Y.thresholdMultiplier)return null;let t=IA(A.dtype,r.dtype),o=r1[t],n=I1[t];if(!o||!n)return null;let g=e1[t]??1,i=n.BYTES_PER_ELEMENT,Q=I*g*i,a=e*g*i,B=I*e*g*i;J(Q+a+B),U();let s=A.data.subarray(A.offset*g,A.offset*g+I*g),C=r.data.subarray(r.offset*g,r.offset*g+e*g),E=q(s),u=q(C),f=_(B);o(E,u,f,I,e);let m=v(f,I*e*g,n);return d.fromData(m,[I,e],t)}var t1="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",Xt=null;function Zr(){if(Xt)return Xt;let A=atob(t1),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Xt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Xt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Xt}function Fb(A,r,I,e,t){Zr().exports.vecdot_f64(A,r,I,e,t)}function Gb(A,r,I,e,t){Zr().exports.vecdot_f32(A,r,I,e,t)}function Sb(A,r,I,e,t){Zr().exports.vecdot_c128(A,r,I,e,t)}function Rb(A,r,I,e,t){Zr().exports.vecdot_c64(A,r,I,e,t)}function GC(A,r,I,e,t){Zr().exports.vecdot_i64(A,r,I,e,t)}function SC(A,r,I,e,t){Zr().exports.vecdot_i32(A,r,I,e,t)}function RC(A,r,I,e,t){Zr().exports.vecdot_i16(A,r,I,e,t)}function kC(A,r,I,e,t){Zr().exports.vecdot_i8(A,r,I,e,t)}var o1=256,n1={float64:Fb,float32:Gb,complex128:Sb,complex64:Rb,int64:GC,uint64:GC,int32:SC,uint32:SC,int16:RC,uint16:RC,int8:kC,uint8:kC},i1={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},g1={complex128:2,complex64:2};function kb(A,r){if(A.ndim!==2||r.ndim!==2||!A.isCContiguous||!r.isCContiguous)return null;let I=A.shape[0],e=A.shape[1];if(I!==r.shape[0]||e!==r.shape[1]||I*e<o1*Y.thresholdMultiplier)return null;let t=IA(A.dtype,r.dtype),o=n1[t],n=i1[t];if(!o||!n)return null;let g=g1[t]??1,i=n.BYTES_PER_ELEMENT,Q=I*e*g*i,a=I*e*g*i,B=I*g*i;J(Q+a+B),U();let s=A.data.subarray(A.offset*g,A.offset*g+I*e*g),C=r.data.subarray(r.offset*g,r.offset*g+I*e*g),E=q(s),u=q(C),f=_(B);o(E,u,f,I,e);let m=v(f,I*g,n);return d.fromData(m,[I],t)}var Q1="AGFzbQEAAAABCAFgBH9/f38AAg8BA2VudgZtZW1vcnkCABADAwIAAAYJAX8BQYCAwAALBxgCCXZkb3RfYzEyOAAACHZkb3RfYzY0AAEKsQICngEBBnwCQAJAIAMNAEQAAAAAAAAAACEERAAAAAAAAAAAIQUMAQtEAAAAAAAAAAAhBUQAAAAAAAAAACEEA0AgBCAAKwMAIgYgAUEIaisDACIHoiAAQQhqKwMAIgggASsDACIJoqGgIQQgBSAGIAmiIAggB6KgoCEFIAFBEGohASAAQRBqIQAgA0F/aiIDDQALCyACIAQ5AwggAiAFOQMAC44BAQZ9AkACQCADDQBDAAAAACEEQwAAAAAhBQwBC0MAAAAAIQVDAAAAACEEA0AgBCAAKgIAIgYgAUEEaioCACIHlCAAQQRqKgIAIgggASoCACIJlJOSIQQgBSAGIAmUIAggB5SSkiEFIAFBCGohASAAQQhqIQAgA0F/aiIDDQALCyACIAQ4AgQgAiAFOAIACw==",Tt=null;function qb(){if(Tt)return Tt;let A=atob(Q1),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Tt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Tt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Tt}function Mb(A,r,I,e){qb().exports.vdot_c128(A,r,I,e)}function xb(A,r,I,e){qb().exports.vdot_c64(A,r,I,e)}var a1=64,B1={complex128:Mb,complex64:xb},s1={complex128:Float64Array,complex64:Float32Array};function Jb(A,r){if(A.ndim!==1||r.ndim!==1||!A.isCContiguous||!r.isCContiguous)return null;let I=A.shape[0];if(I!==r.shape[0]||I<a1*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=B1[e],o=s1[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*2*n,i=I*2*n,Q=2*n;J(g+i+Q),U();let a=A.data.subarray(A.offset*2,A.offset*2+I*2),B=r.data.subarray(r.offset*2,r.offset*2+I*2),s=q(a),C=q(B),E=_(Q);t(s,C,E,I);let u=v(E,2,o);return new T(Number(u[0]),Number(u[1]))}var C1="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",Pt=null;function zr(){if(Pt)return Pt;let A=atob(C1),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Pt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Pt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Pt}function Ub(A,r,I,e,t,o,n){zr().exports.kron_f64(A,r,I,e,t,o,n)}function Lb(A,r,I,e,t,o,n){zr().exports.kron_f32(A,r,I,e,t,o,n)}function Hb(A,r,I,e,t,o,n){zr().exports.kron_c128(A,r,I,e,t,o,n)}function _b(A,r,I,e,t,o,n){zr().exports.kron_c64(A,r,I,e,t,o,n)}function qC(A,r,I,e,t,o,n){zr().exports.kron_i64(A,r,I,e,t,o,n)}function MC(A,r,I,e,t,o,n){zr().exports.kron_i32(A,r,I,e,t,o,n)}function xC(A,r,I,e,t,o,n){zr().exports.kron_i16(A,r,I,e,t,o,n)}function JC(A,r,I,e,t,o,n){zr().exports.kron_i8(A,r,I,e,t,o,n)}var E1=64,u1={float64:Ub,float32:Lb,complex128:Hb,complex64:_b,int64:qC,uint64:qC,int32:MC,uint32:MC,int16:xC,uint16:xC,int8:JC,uint8:JC},c1={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},D1={complex128:2,complex64:2};function Yb(A,r){if(A.ndim!==2||r.ndim!==2||!A.isCContiguous||!r.isCContiguous)return null;let I=A.shape[0],e=A.shape[1],t=r.shape[0],o=r.shape[1],n=I*t,g=e*o;if(n*g<E1*Y.thresholdMultiplier)return null;let i=IA(A.dtype,r.dtype),Q=u1[i],a=c1[i];if(!Q||!a)return null;let B=D1[i]??1,s=a.BYTES_PER_ELEMENT,C=I*e*B*s,E=t*o*B*s,u=n*g*B*s;J(C+E+u),U();let f=A.data.subarray(A.offset*B,A.offset*B+I*e*B),m=r.data.subarray(r.offset*B,r.offset*B+t*o*B),c=q(f),D=q(m),y=_(u);Q(c,D,y,I,e,t,o);let l=v(y,n*g*B,a);return d.fromData(l,[n,g],i)}var f1="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",Kt=null;function jr(){if(Kt)return Kt;let A=atob(f1),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Kt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Kt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Kt}function vb(A,r,I,e){jr().exports.cross_f64(A,r,I,e)}function Xb(A,r,I,e){jr().exports.cross_f32(A,r,I,e)}function Tb(A,r,I,e){jr().exports.cross_c128(A,r,I,e)}function Pb(A,r,I,e){jr().exports.cross_c64(A,r,I,e)}function UC(A,r,I,e){jr().exports.cross_i64(A,r,I,e)}function LC(A,r,I,e){jr().exports.cross_i32(A,r,I,e)}function HC(A,r,I,e){jr().exports.cross_i16(A,r,I,e)}function _C(A,r,I,e){jr().exports.cross_i8(A,r,I,e)}var m1=8,y1={float64:vb,float32:Xb,complex128:Tb,complex64:Pb,int64:UC,uint64:UC,int32:LC,uint32:LC,int16:HC,uint16:HC,int8:_C,uint8:_C},l1={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},h1={complex128:2,complex64:2};function Kb(A,r,I){if(I<m1*Y.thresholdMultiplier||!A.isCContiguous||!r.isCContiguous)return null;let e=IA(A.dtype,r.dtype),t=y1[e],o=l1[e];if(!t||!o)return null;let n=h1[e]??1,g=o.BYTES_PER_ELEMENT,i=I*3,Q=i*n*g,a=i*n*g,B=i*n*g;J(Q+a+B),U();let s=A.data.subarray(A.offset*n,A.offset*n+i*n),C=r.data.subarray(r.offset*n,r.offset*n+i*n),E=q(s),u=q(C),f=_(B);t(E,u,f,I);let m=v(f,i*n,o);return d.fromData(m,[...A.shape],e)}var d1="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",Vt=null;function b1(){if(Vt)return Vt;let A=atob(d1),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Vt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Vt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Vt}function Vb(A,r,I,e,t,o,n){b1().exports.qr_f64(A,r,I,e,t,o,n)}var Wb=4;function Ob(A){if(A.ndim!==2)return null;let r=A.shape[0],I=A.shape[1];if(r<Wb*Y.thresholdMultiplier||I<Wb*Y.thresholdMultiplier)return null;let e=Math.min(r,I),t=r*I,o=r*e,n=e*I,g=e,i=e,a=(t+o+n+g+i)*8;J(a),U();let B=new Float64Array(t);for(let l=0;l<r;l++)for(let h=0;h<I;h++)B[l*I+h]=Number(A.get(l,h));let s=q(B),C=_(o*8),E=_(n*8),u=_(g*8),f=_(i*8);Vb(s,C,E,u,f,r,I);let m=v(C,o,Float64Array),c=v(E,n,Float64Array),D=d.fromData(m,[r,e],"float64"),y=d.fromData(c,[e,I],"float64");return{q:D,r:y}}var p1="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",Wt=null;function w1(){if(Wt)return Wt;let A=atob(p1),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Wt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Wt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Wt}function Zb(A,r,I){return w1().exports.cholesky_f64(A,r,I)}var N1=4;function zb(A){if(A.ndim!==2)return null;let r=A.shape[0];if(r!==A.shape[1]||r<N1*Y.thresholdMultiplier)return null;let I=r*r,t=I*2*8;J(t),U();let o=new Float64Array(I);for(let a=0;a<r;a++)for(let B=0;B<r;B++)o[a*r+B]=Number(A.get(a,B));let n=q(o),g=_(I*8);if(Zb(n,g,r)!==0)throw new Error("cholesky: matrix is not positive definite");let Q=v(g,I,Float64Array);return d.fromData(Q,[r,r],"float64")}var F1="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",Ot=null;function G1(){if(Ot)return Ot;let A=atob(F1),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Ot=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Ot.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ot}function jb(A,r,I,e,t,o,n){G1().exports.svd_f64(A,r,I,e,t,o,n)}var $b=4;function Ap(A){if(A.ndim!==2)return null;let r=A.shape[0],I=A.shape[1];if(r<$b*Y.thresholdMultiplier||I<$b*Y.thresholdMultiplier)return null;let e=Math.min(r,I),t=r*I,o=r*r,n=e,g=I*I,i=r*I+I*I,a=(t+o+n+g+i)*8;J(a),U();let B=new Float64Array(t);for(let b=0;b<r;b++)for(let p=0;p<I;p++)B[b*I+p]=Number(A.get(b,p));let s=q(B),C=_(o*8),E=_(n*8),u=_(g*8),f=_(i*8);jb(s,C,E,u,f,r,I);let m=v(C,o,Float64Array),c=v(E,n,Float64Array),D=v(u,g,Float64Array),y=d.fromData(m,[r,r],"float64"),l=d.fromData(c,[e],"float64"),h=d.fromData(D,[I,I],"float64");return{u:y,s:l,vt:h}}var S1=new Int32Array(1),R1=new Uint32Array(1),k1=new Int16Array(1),q1=new Uint16Array(1),M1=new Int8Array(1),x1=new Uint8Array(1),J1={int32:S1,uint32:R1,int16:k1,uint16:q1,int8:M1,uint8:x1};function ir(A){return J1[A]??null}function mr(A,r){if(A instanceof T||r instanceof T){let I=A instanceof T?A:new T(Number(A),0),e=r instanceof T?r:new T(Number(r),0);return I.mul(e)}return typeof A=="bigint"&&typeof r=="bigint"?Number(A*r):Number(A)*Number(r)}function U1(A,r,I,e,t,o,n,g,i){for(let Q=0;Q<I;Q++)for(let a=0;a<o;a++)for(let B=0;B<n;B++){let s=0;for(let C=0;C<g;C++)s+=A[r+Q*g+C]*e[t+a*g*n+C*n+B];i[Q*o*n+a*n+B]=s}}function L1(A,r,I,e,t,o,n,g,i,Q){for(let a=0;a<I;a++)for(let B=0;B<n;B++){let s=0;for(let E=0;E<i;E++){let u=e===1?E:a*i+E,f=g===1?E:B*i+E;s+=A[r+u]*t[o+f]}let C=I===1?B:a*n+B;Q[C]=s}}function H1(A,r,I,e,t,o,n,g,i,Q,a,B){for(let E=0;E<I*e;E++)a[E]=0;let s=A==="transpose",C=r==="transpose";if(!s&&!C)for(let E=0;E<I;E++)for(let u=0;u<e;u++){let f=0;for(let m=0;m<t;m++)f+=(n[E*g+m]??0)*(i[m*Q+u]??0);a[E*B+u]=o*f}else if(s&&!C)for(let E=0;E<I;E++)for(let u=0;u<e;u++){let f=0;for(let m=0;m<t;m++)f+=(n[m*g+E]??0)*(i[m*Q+u]??0);a[E*B+u]=o*f}else if(!s&&C)for(let E=0;E<I;E++)for(let u=0;u<e;u++){let f=0;for(let m=0;m<t;m++)f+=(n[E*g+m]??0)*(i[u*Q+m]??0);a[E*B+u]=o*f}else for(let E=0;E<I;E++)for(let u=0;u<e;u++){let f=0;for(let m=0;m<t;m++)f+=(n[m*g+E]??0)*(i[u*Q+m]??0);a[E*B+u]=o*f}}function aI(A,r){let I=A.ndim,e=r.ndim,t=k(A.dtype)||k(r.dtype);if(I===0||e===0){let o=I===0?A.get():null,n=e===0?r.get():null;if(I===0&&e===0)return mr(o,n);if(I===0){let g=IA(A.dtype,r.dtype),i=d.zeros([...r.shape],g),Q=(a,B)=>{let s=new Array(B.length),C=a;for(let E=B.length-1;E>=0;E--)s[E]=C%B[E],C=Math.floor(C/B[E]);return s};for(let a=0;a<r.size;a++){let B=Q(a,r.shape),s=r.get(...B);i.set(B,mr(o,s))}return i}else{let g=IA(A.dtype,r.dtype),i=d.zeros([...A.shape],g),Q=(a,B)=>{let s=new Array(B.length),C=a;for(let E=B.length-1;E>=0;E--)s[E]=C%B[E],C=Math.floor(C/B[E]);return s};for(let a=0;a<A.size;a++){let B=Q(a,A.shape),s=A.get(...B);i.set(B,mr(s,n))}return i}}if(I===1&&e===1){if(A.shape[0]!==r.shape[0])throw new Error(`dot: incompatible shapes (${A.shape[0]},) and (${r.shape[0]},)`);let o=ag(A,r);if(o!==null)return o;let n=A.shape[0];if(t){let a=0,B=0;for(let s=0;s<n;s++){let C=A.get(s),E=r.get(s),u=mr(C,E);u instanceof T?(a+=u.re,B+=u.im):a+=u}return new T(a,B)}let g=IA(A.dtype,r.dtype),i=ir(g);if(i){i[0]=0;for(let a=0;a<n;a++)i[0]+=Number(A.get(a))*Number(r.get(a));return i[0]}let Q=0;for(let a=0;a<n;a++){let B=A.get(a),s=r.get(a);typeof B=="bigint"&&typeof s=="bigint"?Q=Number(Q)+Number(B*s):Q+=Number(B)*Number(s)}return Q}if(I===2&&e===2)return OA(A,r);if(I===2&&e===1){let[o,n]=A.shape,g=r.shape[0];if(n!==g)throw new Error(`dot: incompatible shapes (${o},${n}) and (${g},)`);let i=mC(A,r);if(i)return i;let Q=IA(A.dtype,r.dtype),a=d.zeros([o],Q);if(t)for(let B=0;B<o;B++){let s=0,C=0;for(let E=0;E<n;E++){let u=A.get(B,E),f=r.get(E),m=u instanceof T?u:new T(Number(u),0),c=f instanceof T?f:new T(Number(f),0);s+=m.re*c.re-m.im*c.im,C+=m.re*c.im+m.im*c.re}a.set([B],new T(s,C))}else{let B=ir(Q);for(let s=0;s<o;s++)if(B){B[0]=0;for(let C=0;C<n;C++)B[0]+=Number(A.get(s,C))*Number(r.get(C));a.set([s],B[0])}else{let C=0;for(let E=0;E<n;E++){let u=A.get(s,E),f=r.get(E);typeof u=="bigint"&&typeof f=="bigint"?C=Number(C)+Number(u*f):C+=Number(u)*Number(f)}a.set([s],C)}}return a}if(I===1&&e===2){let o=A.shape[0],[n,g]=r.shape;if(o!==n)throw new Error(`dot: incompatible shapes (${o},) and (${n},${g})`);let i=bC(A,r);if(i)return i;let Q=IA(A.dtype,r.dtype),a=d.zeros([g],Q);if(t)for(let B=0;B<g;B++){let s=0,C=0;for(let E=0;E<o;E++){let u=A.get(E),f=r.get(E,B),m=u instanceof T?u:new T(Number(u),0),c=f instanceof T?f:new T(Number(f),0);s+=m.re*c.re-m.im*c.im,C+=m.re*c.im+m.im*c.re}a.set([B],new T(s,C))}else{let B=ir(Q);for(let s=0;s<g;s++)if(B){B[0]=0;for(let C=0;C<o;C++)B[0]+=Number(A.get(C))*Number(r.get(C,s));a.set([s],B[0])}else{let C=0;for(let E=0;E<o;E++){let u=A.get(E),f=r.get(E,s);typeof u=="bigint"&&typeof f=="bigint"?C=Number(C)+Number(u*f):C+=Number(u)*Number(f)}a.set([s],C)}}return a}if(I>2&&e===1){let o=A.shape[I-1],n=r.shape[0];if(o!==n)throw new Error(`dot: incompatible shapes ${JSON.stringify(A.shape)} and (${n},)`);let g=[...A.shape.slice(0,-1)],i=IA(A.dtype,r.dtype),Q=d.zeros(g,i),a=g.reduce((B,s)=>B*s,1);if(t)for(let B=0;B<a;B++){let s=0,C=0,E=B,u=[];for(let f=g.length-1;f>=0;f--)u[f]=E%g[f],E=Math.floor(E/g[f]);for(let f=0;f<o;f++){let m=[...u,f],c=A.get(...m),D=r.get(f),y=c instanceof T?c:new T(Number(c),0),l=D instanceof T?D:new T(Number(D),0);s+=y.re*l.re-y.im*l.im,C+=y.re*l.im+y.im*l.re}Q.set(u,new T(s,C))}else{let B=ir(i);for(let s=0;s<a;s++){let C=s,E=[];for(let u=g.length-1;u>=0;u--)E[u]=C%g[u],C=Math.floor(C/g[u]);if(B){B[0]=0;for(let u=0;u<o;u++){let f=[...E,u];B[0]+=Number(A.get(...f))*Number(r.get(u))}Q.set(E,B[0])}else{let u=0;for(let f=0;f<o;f++){let m=[...E,f],c=A.get(...m),D=r.get(f);typeof c=="bigint"&&typeof D=="bigint"?u=Number(u)+Number(c*D):u+=Number(c)*Number(D)}Q.set(E,u)}}}return Q}if(I===1&&e>2){let o=A.shape[0],n=1,g=r.shape[n];if(o!==g)throw new Error(`dot: incompatible shapes (${o},) and ${JSON.stringify(r.shape)}`);let i=[...r.shape.slice(0,n),...r.shape.slice(n+1)],Q=IA(A.dtype,r.dtype),a=d.zeros(i,Q),B=i.reduce((s,C)=>s*C,1);if(t)for(let s=0;s<B;s++){let C=s,E=[];for(let D=i.length-1;D>=0;D--)E[D]=C%i[D],C=Math.floor(C/i[D]);let u=E.slice(0,n),f=E.slice(n),m=0,c=0;for(let D=0;D<o;D++){let y=A.get(D),l=[...u,D,...f],h=r.get(...l),b=y instanceof T?y:new T(Number(y),0),p=h instanceof T?h:new T(Number(h),0);m+=b.re*p.re-b.im*p.im,c+=b.re*p.im+b.im*p.re}a.set(E,new T(m,c))}else{let s=ir(Q);for(let C=0;C<B;C++){let E=C,u=[];for(let c=i.length-1;c>=0;c--)u[c]=E%i[c],E=Math.floor(E/i[c]);let f=u.slice(0,n),m=u.slice(n);if(s){s[0]=0;for(let c=0;c<o;c++){let D=[...f,c,...m];s[0]+=Number(A.get(c))*Number(r.get(...D))}a.set(u,s[0])}else{let c=0;for(let D=0;D<o;D++){let y=A.get(D),l=[...f,D,...m],h=r.get(...l);typeof y=="bigint"&&typeof h=="bigint"?c=Number(c)+Number(y*h):c+=Number(y)*Number(h)}a.set(u,c)}}}return a}if(I>=2&&e>=2&&!(I===2&&e===2)){let o=A.shape[I-1],n=r.shape[e-2];if(o!==n)throw new Error(`dot: incompatible shapes ${JSON.stringify(A.shape)} and ${JSON.stringify(r.shape)}`);let g=[...A.shape.slice(0,-1),...r.shape.slice(0,-2),r.shape[e-1]],i=IA(A.dtype,r.dtype),Q=d.zeros(g,i),a=A.shape.slice(0,-1).reduce((E,u)=>E*u,1),B=r.shape.slice(0,-2).reduce((E,u)=>E*u,1),s=r.shape[e-1],C=o;if(t)for(let E=0;E<a;E++)for(let u=0;u<B;u++)for(let f=0;f<s;f++){let m=0,c=0;for(let l=0;l<C;l++){let h=[],b=E;for(let H=A.shape.length-2;H>=0;H--)h.unshift(b%A.shape[H]),b=Math.floor(b/A.shape[H]);h.push(l);let p=A.get(...h),w=[],N=u;for(let H=r.shape.length-3;H>=0;H--)w.unshift(N%r.shape[H]),N=Math.floor(N/r.shape[H]);w.push(l,f);let F=r.get(...w),S=p instanceof T?p:new T(Number(p),0),x=F instanceof T?F:new T(Number(F),0);m+=S.re*x.re-S.im*x.im,c+=S.re*x.im+S.im*x.re}let D=E*B*s+u*s+f,y=Q.data;y[D*2]=m,y[D*2+1]=c}else if(A.isCContiguous&&r.isCContiguous&&!L(A.dtype)&&!L(r.dtype)&&!ir(i))U1(A.data,A.offset,a,r.data,r.offset,B,s,C,Q.data);else{let E=ir(i);for(let u=0;u<a;u++)for(let f=0;f<B;f++)for(let m=0;m<s;m++){let c=u*B*s+f*s+m;if(E){E[0]=0;for(let D=0;D<C;D++){let y=u*C+D,l=f*C*s+D*s+m;E[0]+=Number(A.iget(y))*Number(r.iget(l))}Q.data[c]=E[0]}else{let D=0;for(let y=0;y<C;y++){let l=u*C+y,h=f*C*s+y*s+m,b=A.iget(l),p=r.iget(h);typeof b=="bigint"&&typeof p=="bigint"?D=Number(D)+Number(b*p):D+=Number(b)*Number(p)}Q.data[c]=D}}}return Q}throw new Error(`dot: unexpected combination of dimensions ${I}D \xB7 ${e}D`)}function rp(A,r){let[I=0,e=0]=A.shape,[t=0,o=0]=r.shape;if(e!==t)throw new Error(`matmul shape mismatch: (${I},${e}) @ (${t},${o})`);let n=IA(A.dtype,r.dtype);if(k(n)){let h=d.zeros([I,o],n),b=h.data;for(let p=0;p<I;p++)for(let w=0;w<o;w++){let N=0,F=0;for(let x=0;x<e;x++){let H=A.iget(p*e+x),X=r.iget(x*o+w);N+=H.re*X.re-H.im*X.im,F+=H.re*X.im+H.im*X.re}let S=p*o+w;b[S*2]=N,b[S*2+1]=F}return h}if(n.startsWith("int")||n.startsWith("uint")||n==="bool"){let h=d.zeros([I,o],n),b=h.data,p=A.offset,w=r.offset,[N=0,F=0]=A.strides,[S=0,x=0]=r.strides;if(L(n)){let H=A.data,X=r.data,P=b;for(let Z=0;Z<I;Z++)for(let V=0;V<o;V++){let $=0n;for(let O=0;O<e;O++)$+=H[p+Z*N+O*F]*X[w+O*S+V*x];P[Z*o+V]=$}}else{let H=A.data,X=r.data,P=b;for(let Z=0;Z<I;Z++)for(let V=0;V<o;V++){let $=0;for(let O=0;O<e;O++)$+=H[p+Z*N+O*F]*X[w+O*S+V*x];P[Z*o+V]=$}}return h}let g=n;if(g!=="float64"&&g!=="float32")throw new Error(`matmul currently only supports float64/float32, got ${g}`);let i=h=>h.dtype==="float64"?h.data:h.dtype==="float32"?Float64Array.from(h.data):Float64Array.from(Array.from(h.data).map(Number)),Q=i(A),a=i(r);A.offset>0&&(Q=Q.subarray(A.offset)),r.offset>0&&(a=a.subarray(r.offset));let[B=0,s=0]=A.strides,[C=0,E=0]=r.strides,u=s>B,f=E>C,m=u?"transpose":"no-transpose",c=f?"transpose":"no-transpose",D,y;u?D=s:D=B,f?y=E:y=C;let l=d.zeros([I,o],"float64");if(H1(m,c,I,o,e,1,Q,D,a,y,l.data,o),g==="float32"){let h=d.zeros([I,o],"float32"),b=l.data,p=h.data;for(let w=0;w<b.length;w++)p[w]=b[w];return h}return l}function _1(A,r){let I=Math.max(A.length,r.length),e=new Array(I);for(let t=0;t<I;t++){let o=A[A.length-I+t]??1,n=r[r.length-I+t]??1;if(o!==n&&o!==1&&n!==1)throw new Error(`matmul: cannot broadcast batch shapes ${JSON.stringify(A)} and ${JSON.stringify(r)}`);e[t]=Math.max(o,n)}return e}function Bg(A,r){let I=new Array(r.length),e=A;for(let t=r.length-1;t>=0;t--)I[t]=e%r[t],e=Math.floor(e/r[t]);return I}function Ip(A,r){let I=r.length,e=0;for(let t=0;t<I;t++){let o=A.length-I+t,n=o>=0?A[o]:0,g=r[t]===1?0:n;e=e*r[t]+g}return e}function ZA(A){if(A.isCContiguous&&A.offset===0&&A.dtype==="float64")return A.data;let r=new Float64Array(A.size);for(let I=0;I<A.size;I++)r[I]=Number(A.iget(I));return r}function ep(A,r,I,e){let t=A.ndim,o=I*e,n=k(A.dtype),g=L(A.dtype),i=n?2:1,Q=nA(A.dtype),a=new Q(o*i);if(A.isCContiguous){let B=(A.offset+r*o)*i;if(g){let s=A.data,C=a;for(let E=0;E<o*i;E++)C[E]=s[B+E]}else{let s=A.data,C=a;for(let E=0;E<o*i;E++)C[E]=s[B+E]}}else{let B=r*o;for(let s=0;s<o;s++){let E=B+s,u=A.offset;for(let f=t-1;f>=0;f--){let m=A.shape[f];u+=E%m*A.strides[f],E=Math.floor(E/m)}if(n){let f=A.data,m=a;m[s*2]=f[u*2],m[s*2+1]=f[u*2+1]}else a[s]=A.data[u]}}return d.fromData(a,[I,e],A.dtype)}function OA(A,r){if(A.ndim===1&&r.ndim===1){let S=ag(A,r);if(S!==null){let x=IA(A.dtype,r.dtype),H=d.zeros([],x);return S instanceof T?(H.data[0]=S.re,H.data[1]=S.im):H.data[0]=S,H}}else if(A.ndim>=2&&r.ndim===1){if(A.ndim===2){let S=mC(A,r);if(S)return S}}else if(A.ndim===1&&r.ndim>=2&&r.ndim===2){let S=bC(A,r);if(S)return S}let I=ob(A,r);if(I)return I;if(A.ndim===0||r.ndim===0)throw new Error("matmul: Input operand does not have enough dimensions (has 0, gufunc core with signature (n?,k),(k,m?)->(n?,m?) requires at least 1-D)");let e=A.ndim===1,t=r.ndim===1,o=e?EA(A,[1,A.shape[0]]):A,n=t?EA(r,[r.shape[0],1]):r,g=o.ndim,i=n.ndim,Q=o.shape[g-2],a=o.shape[g-1],B=n.shape[i-2],s=n.shape[i-1];if(a!==B)throw new Error(`matmul: shape mismatch: (...,${Q},${a}) @ (...,${B},${s}): inner dimensions must match`);if(g===2&&i===2){let S=rp(o,n);return e&&t?EA(S,[]):e?EA(S,[s]):t?EA(S,[Q]):S}let C=Array.from(o.shape).slice(0,g-2),E=Array.from(n.shape).slice(0,i-2),u=_1(C,E),f=u.reduce((S,x)=>S*x,1),m=IA(o.dtype,n.dtype),c=[];for(let S=0;S<f;S++){let x=Bg(S,u),H=Ip(x,C),X=Ip(x,E),P=ep(o,H,Q,a),Z=ep(n,X,a,s);c.push(rp(P,Z))}let D=Q*s,y=k(m),l=L(m),h=y?2:1,b=nA(m),p=f*D*h,w=new b(p);for(let S=0;S<f;S++){let H=c[S].data,X=S*D*h;if(l){let P=H,Z=w;for(let V=0;V<D;V++)Z[X+V]=P[V]}else{let P=H,Z=w;for(let V=0;V<D*h;V++)Z[X+V]=P[V]}}let N=[...u,Q,s],F=d.fromData(w,N,m);return e&&t?EA(F,[...u]):e?EA(F,[...u,s]):t?EA(F,[...u,Q]):F}function op(A,r=0,I=0,e=1){if(A.ndim<2)throw new Error(`trace requires at least 2D array, got ${A.ndim}D`);if(A.ndim===2){let C=I<0?A.ndim+I:I,E=e<0?A.ndim+e:e,u=A.shape[C],f=A.shape[E],m=Math.min(u,f)-Math.max(0,r);if(m<=0)return k(A.dtype)?new T(0,0):0;if(k(A.dtype)){let D=0,y=0;for(let l=0;l<m;l++){let h=r>=0?l:l-r,b=r>=0?l+r:l,p=[0,0];p[C]=h,p[E]=b;let w=A.get(...p);D+=w.re,y+=w.im}return new T(D,y)}let c=0;for(let D=0;D<m;D++){let y=r>=0?D:D-r,l=r>=0?D+r:D,h=[0,0];h[C]=y,h[E]=l;let b=A.get(...h);typeof b=="bigint"?c=(typeof c=="bigint"?c:BigInt(c))+b:c=(typeof c=="bigint"?Number(c):c)+b}return c}let t=A.ndim,o=(I%t+t)%t,n=(e%t+t)%t;if(o===n)throw new Error("trace: axis1 and axis2 must be different");let g=A.shape[o],i=A.shape[n],Q=Math.min(g,i)-Math.max(0,r),a=Array.from(A.shape).filter((C,E)=>E!==o&&E!==n),B=a.reduce((C,E)=>C*E,1),s=d.zeros(a.length>0?a:[1],A.dtype);if(Q<=0)return s.shape.length===0?0:s;for(let C=0;C<B;C++){let E=new Array(a.length),u=C;for(let y=a.length-1;y>=0;y--)E[y]=u%a[y],u=Math.floor(u/a[y]);let f=0,m=0,c=0,D=k(A.dtype);for(let y=0;y<Q;y++){let l=r>=0?y:y-r,h=r>=0?y+r:y,b=new Array(t),p=0;for(let N=0;N<t;N++)N===o?b[N]=l:N===n?b[N]=h:b[N]=E[p++];let w=A.get(...b);D?(m+=w.re,c+=w.im):typeof w=="bigint"?f=(typeof f=="bigint"?f:BigInt(f))+w:f=(typeof f=="bigint"?Number(f):f)+w}D?s.iset(C,new T(m,c)):s.iset(C,typeof f=="bigint"?Number(f):f)}return s}function AI(A,r){return Ya(A,r)}function np(A,r){let I=A.ndim,e=r.ndim,t=k(A.dtype)||k(r.dtype);if(I===0||e===0)return aI(A,r);let o=A.shape[I-1],n=r.shape[e-1];if(o!==n)throw new Error(`inner: incompatible shapes - last dimensions ${o} and ${n} don't match`);let g=ab(A,r);if(g!==null)return g;if(I===1&&e===1)return aI(A,r);let i=[...A.shape.slice(0,-1),...r.shape.slice(0,-1)],Q=IA(A.dtype,r.dtype),a=d.zeros(i,Q),B=I===1?1:A.shape.slice(0,-1).reduce((E,u)=>E*u,1),s=e===1?1:r.shape.slice(0,-1).reduce((E,u)=>E*u,1),C=o;if(t)for(let E=0;E<B;E++)for(let u=0;u<s;u++){let f=0,m=0;for(let y=0;y<C;y++){let l,h;if(I===1)l=A.get(y);else{let w=[],N=E,F=A.shape.slice(0,-1);for(let S=F.length-1;S>=0;S--)w.unshift(N%F[S]),N=Math.floor(N/F[S]);w.push(y),l=A.get(...w)}if(e===1)h=r.get(y);else{let w=[],N=u,F=r.shape.slice(0,-1);for(let S=F.length-1;S>=0;S--)w.unshift(N%F[S]),N=Math.floor(N/F[S]);w.push(y),h=r.get(...w)}let b=l instanceof T?l:new T(Number(l),0),p=h instanceof T?h:new T(Number(h),0);f+=b.re*p.re-b.im*p.im,m+=b.re*p.im+b.im*p.re}if(i.length===0)return new T(f,m);let c=B===1?u:E*s+u,D=a.data;D[c*2]=f,D[c*2+1]=m}else{let E=ir(Q);if(A.isCContiguous&&r.isCContiguous&&!L(A.dtype)&&!L(r.dtype)&&!E){if(i.length===0){let u=A.data,f=r.data,m=A.offset,c=r.offset,D=0;for(let y=0;y<C;y++)D+=u[m+y]*f[c+y];return D}L1(A.data,A.offset,B,I,r.data,r.offset,s,e,C,a.data)}else for(let u=0;u<B;u++)for(let f=0;f<s;f++)if(E){E[0]=0;for(let c=0;c<C;c++){let D=I===1?c:u*C+c,y=e===1?c:f*C+c;E[0]+=Number(A.iget(D))*Number(r.iget(y))}if(i.length===0)return E[0];let m=B===1?f:u*s+f;a.data[m]=E[0]}else{let m=0;for(let D=0;D<C;D++){let y=I===1?D:u*C+D,l=e===1?D:f*C+D,h=A.iget(y),b=r.iget(l);typeof h=="bigint"&&typeof b=="bigint"?m=Number(m)+Number(h*b):m+=Number(h)*Number(b)}if(i.length===0)return m;let c=B===1?f:u*s+f;a.data[c]=m}}return a}function XC(A,r){let I=A.ndim===1?A:hI(A),e=r.ndim===1?r:hI(r),t=Nb(I,e);if(t)return t;let o=I.size,n=e.size,g=IA(A.dtype,r.dtype),i=d.zeros([o,n],g);for(let Q=0;Q<o;Q++)for(let a=0;a<n;a++){let B=I.get(Q),s=e.get(a),C=mr(B,s);i.set([Q,a],C)}return i}function ip(A,r,I){let e,t;if(typeof I=="number"){let E=I;if(E<0)throw new Error("tensordot: axes must be non-negative");if(E>A.ndim||E>r.ndim)throw new Error("tensordot: axes exceeds array dimensions");e=Array.from({length:E},(u,f)=>A.ndim-E+f),t=Array.from({length:E},(u,f)=>f)}else if([e,t]=I,e.length!==t.length)throw new Error("tensordot: axes lists must have same length");for(let E=0;E<e.length;E++){let u=e[E],f=t[E];if(u<0||u>=A.ndim||f<0||f>=r.ndim)throw new Error("tensordot: axis out of bounds");if(A.shape[u]!==r.shape[f])throw new Error(`tensordot: shape mismatch on axes ${u} and ${f}: ${A.shape[u]} != ${r.shape[f]}`)}let o=[],n=[];for(let E=0;E<A.ndim;E++)e.includes(E)||o.push(E);for(let E=0;E<r.ndim;E++)t.includes(E)||n.push(E);let g=[...o.map(E=>A.shape[E]),...n.map(E=>r.shape[E])],i=IA(A.dtype,r.dtype),Q=k(i),a=E=>E instanceof T?{re:E.re,im:E.im}:{re:Number(E),im:0};if(g.length===0){let E=0,u=0,f=e.map(m=>A.shape[m]).reduce((m,c)=>m*c,1);for(let m=0;m<f;m++){let c=m,D=new Array(e.length);for(let p=e.length-1;p>=0;p--){let w=e[p];D[p]=c%A.shape[w],c=Math.floor(c/A.shape[w])}let y=new Array(A.ndim),l=new Array(r.ndim);for(let p=0;p<e.length;p++)y[e[p]]=D[p];for(let p=0;p<t.length;p++)l[t[p]]=D[p];let h=A.get(...y),b=r.get(...l);if(Q){let p=a(h),w=a(b);E+=p.re*w.re-p.im*w.im,u+=p.re*w.im+p.im*w.re}else typeof h=="bigint"&&typeof b=="bigint"?E+=Number(h*b):E+=Number(h)*Number(b)}return Q?new T(E,u):E}let B=d.zeros(g,i),s=g.reduce((E,u)=>E*u,1),C=e.map(E=>A.shape[E]).reduce((E,u)=>E*u,1);for(let E=0;E<s;E++){let u=E,f=[];for(let l=g.length-1;l>=0;l--)f[l]=u%g[l],u=Math.floor(u/g[l]);let m=f.slice(0,o.length),c=f.slice(o.length),D=0,y=0;for(let l=0;l<C;l++){u=l;let h=[];for(let F=e.length-1;F>=0;F--){let S=e[F];h[F]=u%A.shape[S],u=Math.floor(u/A.shape[S])}let b=new Array(A.ndim),p=new Array(r.ndim);for(let F=0;F<o.length;F++)b[o[F]]=m[F];for(let F=0;F<n.length;F++)p[n[F]]=c[F];for(let F=0;F<e.length;F++)b[e[F]]=h[F],p[t[F]]=h[F];let w=A.get(...b),N=r.get(...p);if(Q){let F=a(w),S=a(N);D+=F.re*S.re-F.im*S.im,y+=F.re*S.im+F.im*S.re}else typeof w=="bigint"&&typeof N=="bigint"?D+=Number(w*N):D+=Number(w)*Number(N)}Q?B.set(f,new T(D,y)):B.set(f,D)}return B}function gp(A,r=0,I=0,e=1){let t=A.shape,o=t.length;if(o<2)throw new Error("diagonal requires an array of at least two dimensions");let n=I<0?o+I:I,g=e<0?o+e:e;if(n<0||n>=o||g<0||g>=o)throw new Error("axis out of bounds");if(n===g)throw new Error("axis1 and axis2 cannot be the same");let i=t[n],Q=t[g],a;r>=0?a=Math.max(0,Math.min(i,Q-r)):a=Math.max(0,Math.min(i+r,Q));let B=[];for(let u=0;u<o;u++)u!==n&&u!==g&&B.push(t[u]);B.push(a);let s=d.zeros(B,A.dtype),C=t.filter((u,f)=>f!==n&&f!==g),E=C.reduce((u,f)=>u*f,1);for(let u=0;u<E;u++){let f=u,m=[];for(let c=C.length-1;c>=0;c--)m.unshift(f%C[c]),f=Math.floor(f/C[c]);for(let c=0;c<a;c++){let D=new Array(o),y=0;for(let b=0;b<o;b++)b===n?D[b]=r>=0?c:c-r:b===g?D[b]=r>=0?c+r:c:D[b]=m[y++];let l=[...m,c],h=A.get(...D);s.set(l,h)}}return s}function Qp(A,...r){let I=A.indexOf("->"),e,t;I===-1?(e=A,t=ap(e)):(e=A.slice(0,I),t=A.slice(I+2));let o=e.split(",").map(u=>u.trim());if(o.length!==r.length)throw new Error(`einsum: expected ${o.length} operands, got ${r.length}`);let n=new Map;for(let u=0;u<r.length;u++){let f=o[u],m=r[u];if(f.length!==m.ndim)throw new Error(`einsum: operand ${u} has ${m.ndim} dimensions but subscript '${f}' has ${f.length} indices`);for(let c=0;c<f.length;c++){let D=f[c],y=m.shape[c];if(n.has(D)){if(n.get(D)!==y)throw new Error(`einsum: size mismatch for index '${D}': ${n.get(D)} vs ${y}`)}else n.set(D,y)}}for(let u of t)if(!n.has(u))throw new Error(`einsum: output subscript contains unknown index '${u}'`);let g=new Set(t),i=new Set;for(let u of o)for(let f of u)i.add(f);let Q=[];for(let u of i)g.has(u)||Q.push(u);if(r.length===2&&o.length===2){let[u,f]=o,[m,c]=r;if(u.length===2&&f.length===2&&t.length===2&&m.ndim===2&&c.ndim===2){let[D,y]=[u[0],u[1]],[l,h]=[f[0],f[1]],[b,p]=[t[0],t[1]];if(D===b&&h===p&&y===l&&Q.length===1&&Q[0]===y||D===b&&h===p&&y===l&&Q.length===1&&Q[0]===y)return OA(m,c);if(y===b&&h===p&&D===l&&Q.length===1&&Q[0]===D){let w=AI(m);return OA(w,c)}if(D===b&&l===p&&y===h&&Q.length===1&&Q[0]===y){let w=AI(c);return OA(m,w)}}if(u.length===1&&f.length===1&&u===f&&t.length===0&&m.ndim===1&&c.ndim===1)return YC(r,o,Q,n);if(u&&f&&u.length===1&&f.length===1&&t.length===2&&t===u+f&&Q.length===0&&m.ndim===1&&c.ndim===1)return XC(m,c)}if(r.length===1&&o[0].length===2&&t.length===0){let u=o[0];if(u[0]===u[1]&&r[0].ndim===2)return YC(r,o,Q,n)}let a=Array.from(t).map(u=>n.get(u));if(a.length===0)return YC(r,o,Q,n);let B=r[0].dtype;for(let u=1;u<r.length;u++)B=IA(B,r[u].dtype);let s=d.zeros(a,B),C=a.reduce((u,f)=>u*f,1),E=1;for(let u of Q)E*=n.get(u);for(let u=0;u<C;u++){let f=Y1(u,a),m=new Map;for(let D=0;D<t.length;D++)m.set(t[D],f[D]);let c=0;for(let D=0;D<E;D++){let y=D;for(let h=Q.length-1;h>=0;h--){let b=Q[h],p=n.get(b);m.set(b,y%p),y=Math.floor(y/p)}let l=1;for(let h=0;h<r.length;h++){let b=r[h],p=o[h],w=[];for(let F of p)w.push(m.get(F));let N=b.get(...w);l*=Number(N)}c+=l}s.set(f,c)}return s}function ap(A){let r=new Map,I=A.split(",");for(let t of I)for(let o of t.trim())r.set(o,(r.get(o)||0)+1);let e=[];for(let[t,o]of r)o===1&&e.push(t);return e.sort().join("")}function YC(A,r,I,e){let t=!1;for(let Q of A)if(k(Q.dtype)){t=!0;break}let o=Q=>Q instanceof T?{re:Q.re,im:Q.im}:{re:Number(Q),im:0},n=1;for(let Q of I)n*=e.get(Q);let g=0,i=0;for(let Q=0;Q<n;Q++){let a=new Map,B=Q;for(let E=I.length-1;E>=0;E--){let u=I[E],f=e.get(u);a.set(u,B%f),B=Math.floor(B/f)}let s=1,C=0;for(let E=0;E<A.length;E++){let u=A[E],f=r[E],m=[];for(let D of f)m.push(a.get(D));let c=u.get(...m);if(t){let D=o(c),y=s*D.re-C*D.im,l=s*D.im+C*D.re;s=y,C=l}else s*=Number(c)}g+=s,i+=C}return t?new T(g,i):g}function Y1(A,r){let I=new Array(r.length),e=A;for(let t=r.length-1;t>=0;t--)I[t]=e%r[t],e=Math.floor(e/r[t]);return I}function Bp(A,r){let I=A.shape,e=r.shape,t=I.length,o=e.length,n=IA(A.dtype,r.dtype);if(t===2&&o===2){let E=Yb(A,r);if(E)return E}let g=Math.max(t,o),i=new Array(g),Q=new Array(g).fill(1),a=new Array(g).fill(1);for(let E=0;E<t;E++)Q[g-t+E]=I[E];for(let E=0;E<o;E++)a[g-o+E]=e[E];for(let E=0;E<g;E++)i[E]=Q[E]*a[E];let B=d.zeros(i,n),s=I.reduce((E,u)=>E*u,1),C=e.reduce((E,u)=>E*u,1);for(let E=0;E<s;E++){let u=E,f=new Array(t);for(let D=t-1;D>=0;D--)f[D]=u%I[D],u=Math.floor(u/I[D]);let m=new Array(g).fill(0);for(let D=0;D<t;D++)m[g-t+D]=f[D];let c=A.get(...f);for(let D=0;D<C;D++){let y=D,l=new Array(o);for(let N=o-1;N>=0;N--)l[N]=y%e[N],y=Math.floor(y/e[N]);let h=new Array(g).fill(0);for(let N=0;N<o;N++)h[g-o+N]=l[N];let b=r.get(...l),p=new Array(g);for(let N=0;N<g;N++)p[N]=m[N]*a[N]+h[N];let w=mr(c,b);B.set(p,w)}}return B}function sp(A,r,I=-1,e=-1,t=-1,o){o!==void 0&&(I=o,e=o,t=o);let n=(p,w)=>p<0?w+p:p,g=n(I,A.ndim),i=n(e,r.ndim),Q=IA(A.dtype,r.dtype),a=k(Q),B=(p,...w)=>{let N=p.get(...w);return N instanceof T||typeof N=="bigint"?N:Number(N)},s=(p,w)=>{if(p instanceof T||w instanceof T){let N=p instanceof T?p:new T(Number(p),0),F=w instanceof T?w:new T(Number(w),0);return N.mul(F)}return typeof p=="bigint"||typeof w=="bigint"?BigInt(p)*BigInt(w):p*w},C=(p,w)=>{if(p instanceof T||w instanceof T){let N=p instanceof T?p:new T(Number(p),0),F=w instanceof T?w:new T(Number(w),0);return N.sub(F)}return typeof p=="bigint"||typeof w=="bigint"?BigInt(p)-BigInt(w):p-w};if(A.ndim===1&&r.ndim===1){let p=A.shape[0],w=r.shape[0];if(p===3&&w===3){let N=B(A,0),F=B(A,1),S=B(A,2),x=B(r,0),H=B(r,1),X=B(r,2),P=d.zeros([3],Q);return P.set([0],C(s(F,X),s(S,H))),P.set([1],C(s(S,x),s(N,X))),P.set([2],C(s(N,H),s(F,x))),P}else if(p===2&&w===2){let N=B(A,0),F=B(A,1),S=B(r,0),x=B(r,1);return C(s(N,x),s(F,S))}else if(p===2&&w===3||p===3&&w===2){let N=B(A,0),F=B(A,1),S=p===3?B(A,2):a?new T(0,0):L(Q)?0n:0,x=B(r,0),H=B(r,1),X=w===3?B(r,2):a?new T(0,0):L(Q)?0n:0,P=d.zeros([3],Q);return P.set([0],C(s(F,X),s(S,H))),P.set([1],C(s(S,x),s(N,X))),P.set([2],C(s(N,H),s(F,x))),P}else throw new Error(`cross: incompatible dimensions for cross product: ${p} and ${w}`)}let E=A.shape[g],u=r.shape[i];if(E!==2&&E!==3||u!==2&&u!==3)throw new Error(`cross: incompatible dimensions for cross product: ${E} and ${u}`);let f=E===2&&u===2?0:3,m=[...A.shape.slice(0,g),...A.shape.slice(g+1)],c=[...r.shape.slice(0,i),...r.shape.slice(i+1)];if(m.length!==c.length)throw new Error("cross: incompatible shapes for cross product");for(let p=0;p<m.length;p++)if(m[p]!==c[p])throw new Error("cross: incompatible shapes for cross product");let D=m;if(E===3&&u===3&&g===A.ndim-1&&i===r.ndim-1){let p=D.reduce((N,F)=>N*F,1),w=Kb(A,r,p);if(w)return w}let y=t<0?D.length+1+t:t,l;if(f===0?l=D:l=[...D.slice(0,y),f,...D.slice(y)],l.length===0)throw new Error("cross: unexpected scalar result from higher-dimensional input");let h=d.zeros(l,Q),b=D.reduce((p,w)=>p*w,1);for(let p=0;p<b;p++){let w=p,N=[];for(let z=D.length-1;z>=0;z--)N[z]=w%D[z],w=Math.floor(w/D[z]);let F=[...N.slice(0,g),0,...N.slice(g)],S=[...N.slice(0,i),0,...N.slice(i)],x=z=>(F[g]=z,B(A,...F)),H=z=>(S[i]=z,B(r,...S)),X=x(0),P=x(1),Z=E===3?x(2):a?new T(0,0):L(Q)?0n:0,V=H(0),$=H(1),O=u===3?H(2):a?new T(0,0):L(Q)?0n:0;if(f===0)h.set(N,C(s(X,$),s(P,V)));else{let z=C(s(P,O),s(Z,$)),rA=C(s(Z,V),s(X,O)),oA=C(s(X,$),s(P,V)),iA=(CA,dA)=>{let hr=[...N.slice(0,y),CA,...N.slice(y)];h.set(hr,dA)};iA(0,z),iA(1,rA),iA(2,oA)}}return h}function RI(A,r=2,I,e=!1){if(typeof r!="number")throw new Error("vector_norm: ord must be a number");if(I==null){let Q=A.ndim===1?A:hI(A),a=Q.size,B;if(r===1/0){B=0;for(let s=0;s<a;s++)B=Math.max(B,Math.abs(Number(Q.get(s))))}else if(r===-1/0){B=1/0;for(let s=0;s<a;s++)B=Math.min(B,Math.abs(Number(Q.get(s))))}else if(r===0){B=0;for(let s=0;s<a;s++)Number(Q.get(s))!==0&&B++}else if(r===1){B=0;for(let s=0;s<a;s++)B+=Math.abs(Number(Q.get(s)))}else if(r===2){B=0;for(let s=0;s<a;s++){let C=Number(Q.get(s));B+=C*C}B=Math.sqrt(B)}else{B=0;for(let s=0;s<a;s++)B+=Math.pow(Math.abs(Number(Q.get(s))),r);B=Math.pow(B,1/r)}if(e){let s=new Array(A.ndim).fill(1),C=d.zeros(s,"float64");return C.set(new Array(A.ndim).fill(0),B),C}return B}let t=I<0?A.ndim+I:I;if(t<0||t>=A.ndim)throw new Error(`vector_norm: axis ${I} out of bounds for array with ${A.ndim} dimensions`);let o=e?[...A.shape.slice(0,t),1,...A.shape.slice(t+1)]:[...A.shape.slice(0,t),...A.shape.slice(t+1)];if(o.length===0)return RI(A,r,null,!1);let n=d.zeros(o,"float64"),g=A.shape[t],i=o.reduce((Q,a)=>Q*a,1);for(let Q=0;Q<i;Q++){let a=Q,B=[];for(let E=o.length-1;E>=0;E--)B[E]=a%o[E],a=Math.floor(a/o[E]);let s=e?[...B.slice(0,t),0,...B.slice(t+1)]:[...B.slice(0,t),0,...B.slice(t)],C;if(r===1/0){C=0;for(let E=0;E<g;E++)s[t]=E,C=Math.max(C,Math.abs(Number(A.get(...s))))}else if(r===-1/0){C=1/0;for(let E=0;E<g;E++)s[t]=E,C=Math.min(C,Math.abs(Number(A.get(...s))))}else if(r===0){C=0;for(let E=0;E<g;E++)s[t]=E,Number(A.get(...s))!==0&&C++}else if(r===1){C=0;for(let E=0;E<g;E++)s[t]=E,C+=Math.abs(Number(A.get(...s)))}else if(r===2){C=0;for(let E=0;E<g;E++){s[t]=E;let u=Number(A.get(...s));C+=u*u}C=Math.sqrt(C)}else{C=0;for(let E=0;E<g;E++)s[t]=E,C+=Math.pow(Math.abs(Number(A.get(...s))),r);C=Math.pow(C,1/r)}n.set(B,C)}return n}function $r(A,r="fro",I=!1){if(A.ndim<2)throw new Error(`matrix_norm: input must be at least 2D, got ${A.ndim}D`);if(A.ndim>2){let n=Array.from(A.shape).slice(0,-2),g=A.shape[A.ndim-2],i=A.shape[A.ndim-1],Q=n.reduce((s,C)=>s*C,1),a=new Float64Array(Q),B=ZA(A);for(let s=0;s<Q;s++){let C=s*g*i,E=d.fromData(B.slice(C,C+g*i),[g,i],"float64");a[s]=$r(E,r,!1)}if(I){let s=[...n,1,1],C=d.fromData(a,n,"float64");return EA(C,s)}return d.fromData(a,n,"float64")}let[e,t]=A.shape,o;if(r==="fro"){o=0;for(let n=0;n<e;n++)for(let g=0;g<t;g++){let i=Number(A.get(n,g));o+=i*i}o=Math.sqrt(o)}else if(r==="nuc"){let{s:n}=qr(A);o=0;for(let g=0;g<n.size;g++)o+=Number(n.get(g))}else if(r===1){o=0;for(let n=0;n<t;n++){let g=0;for(let i=0;i<e;i++)g+=Math.abs(Number(A.get(i,n)));o=Math.max(o,g)}}else if(r===-1){o=1/0;for(let n=0;n<t;n++){let g=0;for(let i=0;i<e;i++)g+=Math.abs(Number(A.get(i,n)));o=Math.min(o,g)}}else if(r===1/0){o=0;for(let n=0;n<e;n++){let g=0;for(let i=0;i<t;i++)g+=Math.abs(Number(A.get(n,i)));o=Math.max(o,g)}}else if(r===-1/0){o=1/0;for(let n=0;n<e;n++){let g=0;for(let i=0;i<t;i++)g+=Math.abs(Number(A.get(n,i)));o=Math.min(o,g)}}else if(r===2){let{s:n}=qr(A);o=Number(n.get(0))}else if(r===-2){let{s:n}=qr(A);o=Number(n.get(n.size-1))}else throw new Error(`matrix_norm: invalid ord value: ${r}`);if(I){let n=d.zeros([1,1],"float64");return n.set([0,0],o),n}return o}function Cp(A,r=null,I=null,e=!1){if(r===null){if(I===null)return RI(A,2,null,e);if(typeof I=="number")return RI(A,2,I,e);r="fro"}if(Array.isArray(I)){if(I.length!==2)throw new Error("norm: axis must be a 2-tuple for matrix norms");let t=I[0]<0?A.ndim+I[0]:I[0],o=I[1]<0?A.ndim+I[1]:I[1],n=r??"fro";if(A.ndim===2)return $r(A,n,e);let g=A.ndim,i=Array.from({length:g},(f,m)=>m).filter(f=>f!==t&&f!==o),Q=i.map(f=>A.shape[f]),a=Q.reduce((f,m)=>f*m,1)||1,B=A.shape[t],s=A.shape[o],C=[...i,t,o],E=AI(A,C),u=new Float64Array(a);for(let f=0;f<a;f++){let m=new Array(Q.length),c=f;for(let l=Q.length-1;l>=0;l--)m[l]=c%Q[l],c=Math.floor(c/Q[l]);let D=d.zeros([B,s],"float64");for(let l=0;l<B;l++)for(let h=0;h<s;h++)D.set([l,h],Number(E.get(...m,l,h)));let y=$r(D,n,!1);u[f]=typeof y=="number"?y:Number(y)}if(e){let f=Array.from(A.shape);return f[t]=1,f[o]=1,d.fromData(u,f,"float64")}return Q.length===0?u[0]:d.fromData(u,Q,"float64")}if(A.ndim===2&&I===null&&(r==="fro"||r==="nuc"))return $r(A,r,e);if(typeof r!="number"&&r!==null)throw new Error(`norm: ord '${r}' not valid for vector norm`);return RI(A,r??2,I,e)}function sg(A,r="reduced"){if(A.ndim>2){let C=A.shape.slice(0,-2),[E,u]=[A.shape[A.ndim-2],A.shape[A.ndim-1]],f=Math.min(E,u),m=C.reduce((l,h)=>l*h,1),c=r==="complete"?E:f,D=d.zeros([...C,E,c],"float64"),y=d.zeros([...C,c,u],"float64");for(let l=0;l<m;l++){let h=Bg(l,C),b=d.zeros([E,u],"float64");for(let w=0;w<E;w++)for(let N=0;N<u;N++)b.set([w,N],Number(A.get(...h,w,N)));let p=sg(b,r);for(let w=0;w<E;w++)for(let N=0;N<c;N++)D.set([...h,w,N],Number(p.q.get(w,N)));for(let w=0;w<c;w++)for(let N=0;N<u;N++)y.set([...h,w,N],Number(p.r.get(w,N)))}return{q:D,r:y}}if(A.ndim!==2)throw new Error(`qr: input must be 2D, got ${A.ndim}D`);if(r==="reduced"){let C=Ob(A);if(C)return C}let[I,e]=A.shape,t=Math.min(I,e),o=d.zeros([I,e],"float64");for(let C=0;C<I;C++)for(let E=0;E<e;E++)o.set([C,E],Number(A.get(C,E)));let n=[],g=[];for(let C=0;C<t;C++){let E=I-C,u=[];for(let l=C;l<I;l++)u.push(Number(o.get(l,C)));let f=0;for(let l=0;l<E;l++)f+=u[l]*u[l];if(f=Math.sqrt(f),f<1e-15){n.push(u),g.push(0);continue}let m=u[0]>=0?1:-1,c=u[0]+m*f,D=[1];for(let l=1;l<E;l++)D.push(u[l]/c);let y=m*c/f;g.push(y),n.push(D);for(let l=C;l<e;l++){let h=0;for(let b=0;b<E;b++)h+=D[b]*Number(o.get(C+b,l));for(let b=0;b<E;b++)o.set([C+b,l],Number(o.get(C+b,l))-y*D[b]*h)}}if(r==="raw"){let C=d.zeros([I,e],"float64");for(let u=0;u<I;u++)for(let f=0;f<e;f++)C.set([u,f],Number(o.get(u,f)));let E=d.zeros([t],"float64");for(let u=0;u<t;u++)E.set([u],g[u]);return{h:C,tau:E}}if(r==="r"){let C=d.zeros([t,e],"float64");for(let E=0;E<t;E++)for(let u=E;u<e;u++)C.set([E,u],Number(o.get(E,u)));return C}let i=r==="complete"?I:t,Q=d.zeros([I,i],"float64");for(let C=0;C<Math.min(I,i);C++)Q.set([C,C],1);for(let C=t-1;C>=0;C--){let E=n[C],u=g[C],f=I-C;for(let m=C;m<i;m++){let c=0;for(let D=0;D<f;D++)c+=E[D]*Number(Q.get(C+D,m));for(let D=0;D<f;D++)Q.set([C+D,m],Number(Q.get(C+D,m))-u*E[D]*c)}}let a=d.zeros([I,i],"float64");for(let C=0;C<I;C++)for(let E=0;E<i;E++)a.set([C,E],Number(Q.get(C,E)));let B=r==="complete"?I:t,s=d.zeros([B,e],"float64");for(let C=0;C<B;C++)for(let E=0;E<e;E++)E>=C&&s.set([C,E],Number(o.get(C,E)));return{q:a,r:s}}function TC(A,r=!1){if(A.ndim<2)throw new Error(`cholesky: input must be at least 2D, got ${A.ndim}D`);if(A.ndim>2){let g=Array.from(A.shape).slice(0,-2),i=A.shape[A.ndim-1],Q=A.shape[A.ndim-2];if(Q!==i)throw new Error(`cholesky: last 2 dimensions must be square, got ${Q}x${i}`);let a=g.reduce((C,E)=>C*E,1),B=new Float64Array(a*i*i),s=ZA(A);for(let C=0;C<a;C++){let E=C*i*i,u=d.fromData(s.slice(E,E+i*i),[i,i],"float64"),f=TC(u,r);B.set(ZA(f),E)}return d.fromData(B,[...g,i,i],"float64")}let[I,e]=A.shape;if(I!==e)throw new Error(`cholesky: matrix must be square, got ${I}x${e}`);let t=zb(A);if(t){if(r){let g=I,i=d.zeros([g,g],"float64");for(let Q=0;Q<g;Q++)for(let a=Q;a<g;a++)i.set([Q,a],Number(t.get(a,Q)));return i}return t}let o=I,n=d.zeros([o,o],"float64");for(let g=0;g<o;g++)for(let i=0;i<=g;i++){let Q=0;if(g===i){for(let B=0;B<i;B++)Q+=Number(n.get(i,B))**2;let a=Number(A.get(i,i))-Q;if(a<0)throw new Error("cholesky: matrix is not positive definite");n.set([i,i],Math.sqrt(a))}else{for(let B=0;B<i;B++)Q+=Number(n.get(g,B))*Number(n.get(i,B));let a=Number(n.get(i,i));if(Math.abs(a)<1e-15)throw new Error("cholesky: matrix is not positive definite");n.set([g,i],(Number(A.get(g,i))-Q)/a)}}if(r){let g=d.zeros([o,o],"float64");for(let i=0;i<o;i++)for(let Q=i;Q<o;Q++)g.set([i,Q],Number(n.get(Q,i)));return g}return n}function qr(A){if(A.ndim!==2)throw new Error(`svd: input must be 2D, got ${A.ndim}D`);let r=Ap(A);if(r)return r;let[I,e]=A.shape,t=Math.min(I,e),o=d.zeros([e,e],"float64");for(let s=0;s<e;s++)for(let C=0;C<e;C++){let E=0;for(let u=0;u<I;u++)E+=Number(A.get(u,s))*Number(A.get(u,C));o.set([s,C],E)}let{values:n,vectors:g}=PC(o),i=Array.from({length:e},(s,C)=>C);i.sort((s,C)=>n[C]-n[s]);let Q=d.zeros([t],"float64");for(let s=0;s<t;s++){let C=n[i[s]];Q.set([s],Math.sqrt(Math.max(0,C)))}let a=d.zeros([e,e],"float64");for(let s=0;s<e;s++)for(let C=0;C<e;C++)a.set([s,C],g[C][i[s]]);let B=d.zeros([I,I],"float64");for(let s=0;s<I;s++)for(let C=0;C<t;C++){let E=Number(Q.get(C));if(E>1e-10){let u=0;for(let f=0;f<e;f++)u+=Number(A.get(s,f))*Number(a.get(C,f));B.set([s,C],u/E)}}if(I>t)for(let s=t;s<I;s++){let C=new Array(I).fill(0);C[s]=1;for(let u=0;u<s;u++){let f=0;for(let m=0;m<I;m++)f+=C[m]*Number(B.get(m,u));for(let m=0;m<I;m++)C[m]=C[m]-f*Number(B.get(m,u))}let E=0;for(let u=0;u<I;u++)E+=C[u]*C[u];if(E=Math.sqrt(E),E>1e-10)for(let u=0;u<I;u++)B.set([u,s],C[u]/E)}return{u:B,s:Q,vt:a}}function PC(A){let r=A.shape[0],I=100*r*r,e=1e-10,t=[];for(let g=0;g<r;g++){t.push([]);for(let i=0;i<r;i++)t[g].push(Number(A.get(g,i)))}let o=[];for(let g=0;g<r;g++){o.push([]);for(let i=0;i<r;i++)o[g].push(g===i?1:0)}for(let g=0;g<I;g++){let i=0,Q=0,a=1;for(let D=0;D<r;D++)for(let y=D+1;y<r;y++)Math.abs(t[D][y])>i&&(i=Math.abs(t[D][y]),Q=D,a=y);if(i<e)break;let B=t[Q][Q],s=t[a][a],C=t[Q][a],E;Math.abs(B-s)<1e-15?E=Math.PI/4:E=.5*Math.atan2(2*C,s-B);let u=Math.cos(E),f=Math.sin(E),m=u*u*B+f*f*s-2*f*u*C,c=f*f*B+u*u*s+2*f*u*C;t[Q][Q]=m,t[a][a]=c,t[Q][a]=0,t[a][Q]=0;for(let D=0;D<r;D++)if(D!==Q&&D!==a){let y=t[D][Q],l=t[D][a];t[D][Q]=u*y-f*l,t[Q][D]=t[D][Q],t[D][a]=f*y+u*l,t[a][D]=t[D][a]}for(let D=0;D<r;D++){let y=o[D][Q],l=o[D][a];o[D][Q]=u*y-f*l,o[D][a]=f*y+u*l}}let n=[];for(let g=0;g<r;g++)n.push(t[g][g]);return{values:n,vectors:o}}function Cg(A,r=!0,I=!0){if(A.ndim>2){let t=A.shape.slice(0,-2),[o,n]=[A.shape[A.ndim-2],A.shape[A.ndim-1]],g=Math.min(o,n),i=t.reduce((E,u)=>E*u,1);if(!I){let E=d.zeros([...t,g],"float64");for(let u=0;u<i;u++){let f=Bg(u,t),m=d.zeros([o,n],"float64");for(let D=0;D<o;D++)for(let y=0;y<n;y++)m.set([D,y],Number(A.get(...f,D,y)));let{s:c}=qr(m);for(let D=0;D<g;D++)E.set([...f,D],Number(c.get(D)))}return E}let Q=r?o:g,a=r?n:g,B=d.zeros([...t,o,Q],"float64"),s=d.zeros([...t,g],"float64"),C=d.zeros([...t,a,n],"float64");for(let E=0;E<i;E++){let u=Bg(E,t),f=d.zeros([o,n],"float64");for(let c=0;c<o;c++)for(let D=0;D<n;D++)f.set([c,D],Number(A.get(...u,c,D)));let m=Cg(f,r,!0);for(let c=0;c<o;c++)for(let D=0;D<Q;D++)B.set([...u,c,D],Number(m.u.get(c,D)));for(let c=0;c<g;c++)s.set([...u,c],Number(m.s.get(c)));for(let c=0;c<a;c++)for(let D=0;D<n;D++)C.set([...u,c,D],Number(m.vt.get(c,D)))}return{u:B,s,vt:C}}let e=qr(A);if(!I)return e.s;if(!r){let[t,o]=A.shape,n=Math.min(t,o),g=d.zeros([t,n],"float64");for(let Q=0;Q<t;Q++)for(let a=0;a<n;a++)g.set([Q,a],Number(e.u.get(Q,a)));let i=d.zeros([n,o],"float64");for(let Q=0;Q<n;Q++)for(let a=0;a<o;a++)i.set([Q,a],Number(e.vt.get(Q,a)));return{u:g,s:e.s,vt:i}}return e}function KC(A){if(A.ndim<2)throw new Error(`det: input must be at least 2D, got ${A.ndim}D`);if(A.ndim>2){let Q=Array.from(A.shape).slice(0,-2),a=A.shape[A.ndim-1],B=A.shape[A.ndim-2];if(B!==a)throw new Error(`det: last 2 dimensions must be square, got ${B}x${a}`);let s=Q.reduce((u,f)=>u*f,1),C=new Float64Array(s),E=ZA(A);for(let u=0;u<s;u++){let f=u*a*a,m=d.fromData(E.slice(f,f+a*a),[a,a],"float64");C[u]=KC(m)}return d.fromData(C,Q,"float64")}let[r,I]=A.shape;if(r!==I)throw new Error(`det: matrix must be square, got ${r}x${I}`);let e=r;if(e===0)return 1;let t=A.data;if(e===1)return Number(t[0]);if(e===2)return Number(t[0])*Number(t[3])-Number(t[1])*Number(t[2]);let{lu:o,sign:n}=Eg(A),g=o.data,i=n;for(let Q=0;Q<e;Q++)i*=g[Q*e+Q];return i}function Eg(A){let[r,I]=A.shape,e=r,t=I,o=d.zeros([e,t],"float64"),n=o.data,g=A.data;for(let a=0;a<e*t;a++)n[a]=Number(g[a]);let i=Array.from({length:e},(a,B)=>B),Q=1;for(let a=0;a<Math.min(e,t);a++){let B=Math.abs(n[a*t+a]),s=a;for(let E=a+1;E<e;E++){let u=Math.abs(n[E*t+a]);u>B&&(B=u,s=E)}if(s!==a){for(let u=0;u<t;u++){let f=n[a*t+u];n[a*t+u]=n[s*t+u],n[s*t+u]=f}let E=i[a];i[a]=i[s],i[s]=E,Q=-Q}let C=n[a*t+a];if(Math.abs(C)>1e-15)for(let E=a+1;E<e;E++){let u=n[E*t+a]/C;n[E*t+a]=u;for(let f=a+1;f<t;f++)n[E*t+f]=n[E*t+f]-u*n[a*t+f]}}return{lu:o,piv:i,sign:Q}}function kI(A){if(A.ndim<2)throw new Error(`inv: input must be at least 2D, got ${A.ndim}D`);if(A.ndim>2){let Q=Array.from(A.shape).slice(0,-2),a=A.shape[A.ndim-1],B=A.shape[A.ndim-2];if(B!==a)throw new Error(`inv: last 2 dimensions must be square, got ${B}x${a}`);let s=Q.reduce((u,f)=>u*f,1),C=ZA(A),E=new Float64Array(s*a*a);for(let u=0;u<s;u++){let f=u*a*a,m=d.fromData(C.slice(f,f+a*a),[a,a],"float64"),D=kI(m).data;for(let y=0;y<a*a;y++)E[f+y]=D[y]}return d.fromData(E,Array.from(A.shape),"float64")}let[r,I]=A.shape;if(r!==I)throw new Error(`inv: matrix must be square, got ${r}x${I}`);let e=r,{lu:t,piv:o}=Eg(A),n=t.data,g=d.zeros([e,e],"float64"),i=g.data;for(let Q=0;Q<e;Q++){let a=new Float64Array(e);for(let B=0;B<e;B++){let s=o[B]===Q?1:0;for(let C=0;C<B;C++)s-=n[B*e+C]*a[C];a[B]=s}for(let B=e-1;B>=0;B--){let s=a[B];for(let E=B+1;E<e;E++)s-=n[B*e+E]*i[E*e+Q];let C=n[B*e+B];if(Math.abs(C)<1e-15)throw new Error("inv: singular matrix");i[B*e+Q]=s/C}}return g}function tp(A,r){let[I]=A.shape,e=I,{lu:t,piv:o}=Eg(A),n=t.data,g=r.data,i=new Float64Array(e);for(let s=0;s<e;s++)i[s]=Number(g[o[s]]);let Q=new Float64Array(e);for(let s=0;s<e;s++){let C=i[s];for(let E=0;E<s;E++)C-=n[s*e+E]*Q[E];Q[s]=C}let a=d.zeros([e],"float64"),B=a.data;for(let s=e-1;s>=0;s--){let C=Q[s];for(let u=s+1;u<e;u++)C-=n[s*e+u]*B[u];let E=n[s*e+s];if(Math.abs(E)<1e-15)throw new Error("solve: singular matrix");B[s]=C/E}return a}function VC(A,r){if(A.ndim!==2)throw new Error(`solve: coefficient matrix must be 2D, got ${A.ndim}D`);let[I,e]=A.shape;if(I!==e)throw new Error(`solve: coefficient matrix must be square, got ${I}x${e}`);let t=I;if(r.ndim===1){if(r.shape[0]!==t)throw new Error(`solve: incompatible shapes (${I},${e}) and (${r.shape[0]},)`);return tp(A,r)}if(r.ndim===2){if(r.shape[0]!==t)throw new Error(`solve: incompatible shapes (${I},${e}) and (${r.shape[0]},${r.shape[1]})`);let o=r.shape[1],n=d.zeros([t,o],"float64");for(let g=0;g<o;g++){let i=d.zeros([t],"float64");for(let a=0;a<t;a++)i.set([a],Number(r.get(a,g)));let Q=tp(A,i);for(let a=0;a<t;a++)n.set([a,g],Number(Q.get(a)))}return n}throw new Error(`solve: b must be 1D or 2D, got ${r.ndim}D`)}function Ep(A,r,I=null){if(A.ndim!==2)throw new Error(`lstsq: coefficient matrix must be 2D, got ${A.ndim}D`);let[e,t]=A.shape,{u:o,s:n,vt:g}=qr(A),i=Math.min(e,t),Q=I??Math.max(e,t)*Number.EPSILON,B=Number(n.get(0))*Q,s=0;for(let c=0;c<i;c++)Number(n.get(c))>B&&s++;let C=r.ndim===1?EA(r,[r.size,1]):r,E=C.shape[1];if(C.shape[0]!==e)throw new Error(`lstsq: incompatible shapes (${e},${t}) and (${r.shape.join(",")})`);let u=d.zeros([t,E],"float64");for(let c=0;c<E;c++){let D=new Array(e).fill(0);for(let y=0;y<e;y++)for(let l=0;l<e;l++)D[y]+=Number(o.get(l,y))*Number(C.get(l,c));for(let y=0;y<t;y++){let l=0;for(let h=0;h<i;h++){let b=Number(n.get(h));b>B&&(l+=Number(g.get(h,y))*D[h]/b)}u.set([y,c],l)}}let f;if(e>t){f=d.zeros([E],"float64");for(let c=0;c<E;c++){let D=0;for(let y=0;y<e;y++){let l=0;for(let b=0;b<t;b++)l+=Number(A.get(y,b))*Number(u.get(b,c));let h=l-Number(C.get(y,c));D+=h*h}f.set([c],D)}}else f=d.zeros([0],"float64");return{x:r.ndim===1?EA(u,[t]):u,residuals:f,rank:s,s:n}}function up(A,r=2){if(A.ndim!==2)throw new Error(`cond: input must be 2D, got ${A.ndim}D`);let[I,e]=A.shape;if(r===2||r===-2){let{s:g}=qr(A),i=Math.min(I,e),Q=Number(g.get(0)),a=Number(g.get(i-1));return r===2?a>0?Q/a:1/0:Q>0?a/Q:0}if(I!==e)throw new Error(`cond: matrix must be square for p=${r}`);let t=$r(A,r),o=kI(A),n=$r(o,r);return t*n}function cp(A,r){if(A.ndim===0)return Number(A.get())!==0?1:0;if(A.ndim===1){for(let n=0;n<A.size;n++)if(Number(A.get(n))!==0)return 1;return 0}if(A.ndim!==2)throw new Error(`matrix_rank: input must be at most 2D, got ${A.ndim}D`);let{s:I}=qr(A),e=Number(I.get(0)),t=r??e*Math.max(A.shape[0],A.shape[1])*Number.EPSILON,o=0;for(let n=0;n<I.size;n++)Number(I.get(n))>t&&o++;return o}function Dp(A,r){if(A.ndim!==2)throw new Error(`matrix_power: input must be 2D, got ${A.ndim}D`);let[I,e]=A.shape;if(I!==e)throw new Error(`matrix_power: matrix must be square, got ${I}x${e}`);let t=I;if(!Number.isInteger(r))throw new Error("matrix_power: exponent must be an integer");if(r===0){let B=d.zeros([t,t],"float64");for(let s=0;s<t;s++)B.set([s,s],1);return B}let o=A,n=r;r<0&&(o=kI(A),n=-r);let g=o.dtype==="float32"?"float32":"float64",i=d.zeros([t,t],g),Q=i.data;for(let B=0;B<t;B++)Q[B*t+B]=1;let a;if(o.isCContiguous&&(o.dtype==="float64"||o.dtype==="float32"))a=o.copy();else{a=d.zeros([t,t],g);let B=a.data,s=o.data,C=o.offset,[E=0,u=0]=o.strides;for(let f=0;f<t;f++)for(let m=0;m<t;m++)B[f*t+m]=Number(s[C+f*E+m*u])}for(;n>0;)n&1&&(i=OA(i,a)),a=OA(a,a),n>>=1;return i}function WC(A,r=1e-15){if(A.ndim<2)throw new Error(`pinv: input must be at least 2D, got ${A.ndim}D`);if(A.ndim>2){let B=Array.from(A.shape).slice(0,-2),s=A.shape[A.ndim-2],C=A.shape[A.ndim-1],E=B.reduce((m,c)=>m*c,1),u=new Float64Array(E*C*s),f=ZA(A);for(let m=0;m<E;m++){let c=m*s*C,D=d.fromData(f.slice(c,c+s*C),[s,C],"float64"),y=WC(D,r);u.set(ZA(y),m*C*s)}return d.fromData(u,[...B,C,s],"float64")}let[I,e]=A.shape,{u:t,s:o,vt:n}=qr(A),g=Math.min(I,e),Q=Number(o.get(0))*r,a=d.zeros([e,I],"float64");for(let B=0;B<e;B++)for(let s=0;s<I;s++){let C=0;for(let E=0;E<g;E++){let u=Number(o.get(E));u>Q&&(C+=Number(n.get(E,B))*Number(t.get(s,E))/u)}a.set([B,s],C)}return a}function ug(A){if(A.ndim<2)throw new Error(`eig: input must be at least 2D, got ${A.ndim}D`);if(A.ndim>2){let a=Array.from(A.shape).slice(0,-2),B=A.shape[A.ndim-1],s=A.shape[A.ndim-2];if(s!==B)throw new Error(`eig: last 2 dimensions must be square, got ${s}x${B}`);let C=a.reduce((m,c)=>m*c,1),E=new Float64Array(C*B),u=new Float64Array(C*B*B),f=ZA(A);for(let m=0;m<C;m++){let c=m*B*B,D=d.fromData(f.slice(c,c+B*B),[B,B],"float64"),{w:y,v:l}=ug(D);E.set(ZA(y),m*B),u.set(ZA(l),c)}return{w:d.fromData(E,[...a,B],"float64"),v:d.fromData(u,[...a,B,B],"float64")}}let[r,I]=A.shape;if(r!==I)throw new Error(`eig: matrix must be square, got ${r}x${I}`);let e=r,t=!0;A:for(let a=0;a<e;a++)for(let B=a+1;B<e;B++)if(Math.abs(Number(A.get(a,B))-Number(A.get(B,a)))>1e-10){t=!1;break A}if(t){let{values:a,vectors:B}=PC(A),s=d.zeros([e],"float64"),C=d.zeros([e,e],"float64");for(let E=0;E<e;E++){s.set([E],a[E]);for(let u=0;u<e;u++)C.set([u,E],B[u][E])}return{w:s,v:C}}let{values:o,vectors:n,hasComplexEigenvalues:g}=v1(A);g&&console.warn("numpy-ts: eig() detected complex eigenvalues which cannot be represented. Results are real approximations and may be inaccurate. For symmetric matrices, use eigh() instead.");let i=d.zeros([e],"float64"),Q=d.zeros([e,e],"float64");for(let a=0;a<e;a++){i.set([a],o[a]);for(let B=0;B<e;B++)Q.set([B,a],n[B][a])}return{w:i,v:Q}}function v1(A){let r=A.shape[0],I=1e3,e=1e-10,t=d.zeros([r,r],"float64");for(let Q=0;Q<r;Q++)for(let a=0;a<r;a++)t.set([Q,a],Number(A.get(Q,a)));let o=d.zeros([r,r],"float64");for(let Q=0;Q<r;Q++)o.set([Q,Q],1);for(let Q=0;Q<I;Q++){let a=0;for(let E=0;E<r;E++)for(let u=0;u<r;u++)E!==u&&(a+=Number(t.get(E,u))**2);if(Math.sqrt(a)<e*r)break;let B=sg(t,"reduced"),s=B.q,C=B.r;t=OA(C,s),o=OA(o,s)}let n=!1;for(let Q=0;Q<r-1;Q++){let a=Math.abs(Number(t.get(Q+1,Q))),B=Math.abs(Number(t.get(Q,Q))),s=Math.abs(Number(t.get(Q+1,Q+1))),C=Math.max(B,s,1e-10);if(a/C>1e-6){n=!0;break}}let g=[];for(let Q=0;Q<r;Q++)g.push(Number(t.get(Q,Q)));let i=[];for(let Q=0;Q<r;Q++){i.push([]);for(let a=0;a<r;a++)i[Q].push(Number(o.get(Q,a)))}return{values:g,vectors:i,hasComplexEigenvalues:n}}function cg(A,r="L"){if(A.ndim<2)throw new Error(`eigh: input must be at least 2D, got ${A.ndim}D`);if(A.ndim>2){let B=Array.from(A.shape).slice(0,-2),s=A.shape[A.ndim-1],C=A.shape[A.ndim-2];if(C!==s)throw new Error(`eigh: last 2 dimensions must be square, got ${C}x${s}`);let E=B.reduce((c,D)=>c*D,1),u=new Float64Array(E*s),f=new Float64Array(E*s*s),m=ZA(A);for(let c=0;c<E;c++){let D=c*s*s,y=d.fromData(m.slice(D,D+s*s),[s,s],"float64"),{w:l,v:h}=cg(y,r);u.set(ZA(l),c*s),f.set(ZA(h),D)}return{w:d.fromData(u,[...B,s],"float64"),v:d.fromData(f,[...B,s,s],"float64")}}let[I,e]=A.shape;if(I!==e)throw new Error(`eigh: matrix must be square, got ${I}x${e}`);let t=I,o=d.zeros([t,t],"float64");for(let B=0;B<t;B++)for(let s=0;s<t;s++)r==="L"?B>=s&&(o.set([B,s],Number(A.get(B,s))),o.set([s,B],Number(A.get(B,s)))):s>=B&&(o.set([B,s],Number(A.get(B,s))),o.set([s,B],Number(A.get(B,s))));let{values:n,vectors:g}=PC(o),i=Array.from({length:t},(B,s)=>s);i.sort((B,s)=>n[B]-n[s]);let Q=d.zeros([t],"float64"),a=d.zeros([t,t],"float64");for(let B=0;B<t;B++){Q.set([B],n[i[B]]);for(let s=0;s<t;s++)a.set([s,B],g[s][i[B]])}return{w:Q,v:a}}function fp(A){let{w:r}=ug(A);return r}function mp(A,r="L"){let{w:I}=cg(A,r);return I}function yp(A,r){let I=gI(A),e=gI(r),t=I.shape[0],o=e.shape[0];if(t!==o)throw new Error(`vdot: arrays must have same number of elements, got ${t} and ${o}`);let n=k(A.dtype)||k(r.dtype);if(n){let a=Jb(I,e);if(a!==null)return a}else{let a=ag(I,e);if(a!==null)return a}if(n){let a=0,B=0;for(let s=0;s<t;s++){let C=I.get(s),E=e.get(s),u=C instanceof T?C.re:Number(C),f=C instanceof T?C.im:0,m=E instanceof T?E.re:Number(E),c=E instanceof T?E.im:0;a+=u*m+f*c,B+=-f*m+u*c}return Math.abs(B)<1e-15?a:new T(a,B)}let g=IA(A.dtype,r.dtype),i=ir(g);if(i){i[0]=0;for(let a=0;a<t;a++)i[0]+=Number(I.get(a))*Number(e.get(a));return i[0]}let Q=0;for(let a=0;a<t;a++){let B=I.get(a),s=e.get(a);typeof B=="bigint"&&typeof s=="bigint"?Q=(typeof Q=="bigint"?Q:BigInt(Q))+B*s:Q=(typeof Q=="bigint"?Number(Q):Q)+Number(B)*Number(s)}return Q}function lp(A,r,I=-1){let e=A.ndim,t=r.ndim,o=I<0?e+I:I,n=I<0?t+I:I;if(o<0||o>=e)throw new Error(`vecdot: axis ${I} out of bounds for array with ${e} dimensions`);if(n<0||n>=t)throw new Error(`vecdot: axis ${I} out of bounds for array with ${t} dimensions`);let g=A.shape[o],i=r.shape[n];if(g!==i)throw new Error(`vecdot: axis dimensions must match, got ${g} and ${i}`);if(e===1&&t===1){if(!(k(A.dtype)||k(r.dtype)))return aI(A,r);let D=A.shape[0],y=0,l=0;for(let h=0;h<D;h++){let b=A.get(h),p=r.get(h),w=b instanceof T?new T(b.re,-b.im):b,N=mr(w,p);N instanceof T?(y+=N.re,l+=N.im):y+=Number(N)}return new T(y,l)}if(e===2&&t===2&&I===-1){let c=kb(A,r);if(c)return c}let Q=[...A.shape.slice(0,o),...A.shape.slice(o+1)],a=[...r.shape.slice(0,n),...r.shape.slice(n+1)],B=g,s=k(A.dtype)||k(r.dtype),C=IA(A.dtype,r.dtype),E=Q.length>a.length?Q:a,u=ir(C);if(E.length===0){if(u){u[0]=0;for(let D=0;D<B;D++)u[0]+=Number(A.get(D))*Number(r.get(D));return u[0]}let c=s?new T(0,0):L(C)?0n:0;for(let D=0;D<B;D++){let y=A.get(D),l=r.get(D),h=y instanceof T?new T(y.re,-y.im):y,b=mr(h,l);if(c instanceof T||b instanceof T){let p=c instanceof T?c:new T(Number(c),0),w=b instanceof T?b:new T(Number(b),0);c=p.add(w)}else typeof c=="bigint"||typeof b=="bigint"?c=BigInt(c)+BigInt(b):c=c+b}return c}let f=d.zeros(E,C),m=E.reduce((c,D)=>c*D,1);for(let c=0;c<m;c++){let D=[],y=c;for(let b=E.length-1;b>=0;b--)D.unshift(y%E[b]),y=Math.floor(y/E[b]);let l=[...D.slice(0,o),0,...D.slice(o)],h=[...D.slice(0,n),0,...D.slice(n)];if(u){u[0]=0;for(let b=0;b<B;b++)l[o]=b,h[n]=b,u[0]+=Number(A.get(...l))*Number(r.get(...h));f.set(D,u[0])}else{let b=s?new T(0,0):L(C)?0n:0;for(let p=0;p<B;p++){l[o]=p,h[n]=p;let w=A.get(...l),N=r.get(...h),F=w instanceof T?new T(w.re,-w.im):w,S=mr(F,N);if(b instanceof T||S instanceof T){let x=b instanceof T?b:new T(Number(b),0),H=S instanceof T?S:new T(Number(S),0);b=x.add(H)}else typeof b=="bigint"||typeof S=="bigint"?b=BigInt(b)+BigInt(S):b=b+S}f.set(D,b)}}return f}function hp(A){if(A.ndim<2)throw new Error(`matrix_transpose: input must have at least 2 dimensions, got ${A.ndim}D`);let r=Array.from({length:A.ndim},(e,t)=>t),I=r.length-1;return r[I]=I-1,r[I-1]=I,AI(A,r)}function dp(A,r){return AI(A,r)}function bp(A,r){if(A.ndim<2)throw new Error(`matvec: x1 must have at least 2 dimensions, got ${A.ndim}D`);if(r.ndim<1)throw new Error(`matvec: x2 must have at least 1 dimension, got ${r.ndim}D`);let I=A.shape[A.ndim-2],e=A.shape[A.ndim-1],t=r.shape[r.ndim-1];if(e!==t)throw new Error(`matvec: last axis of x1 (${e}) must match last axis of x2 (${t})`);if(A.ndim===2&&r.ndim===1)return aI(A,r);let o=A.shape.slice(0,-2),n=r.shape.slice(0,-1),g=Math.max(o.length,n.length),i=[...Array(g-o.length).fill(1),...o],Q=[...Array(g-n.length).fill(1),...n],a=[];for(let f=0;f<g;f++){let m=i[f],c=Q[f];if(m!==1&&c!==1&&m!==c)throw new Error(`matvec: batch dimensions not broadcastable: ${o} vs ${n}`);a.push(Math.max(m,c))}let B=[...a,I],s=IA(A.dtype,r.dtype),C=d.zeros(B,s),E=k(s),u=a.reduce((f,m)=>f*m,1);for(let f=0;f<u;f++){let m=[],c=f;for(let h=a.length-1;h>=0;h--)m.unshift(c%a[h]),c=Math.floor(c/a[h]);let D=m.slice(-(o.length||1)).map((h,b)=>(o[b]??1)===1?0:h),y=m.slice(-(n.length||1)).map((h,b)=>(n[b]??1)===1?0:h),l=ir(s);for(let h=0;h<I;h++)if(l){l[0]=0;for(let b=0;b<e;b++){let p=[...D,h,b],w=[...y,b];l[0]+=Number(A.get(...p))*Number(r.get(...w))}C.set([...m,h],l[0])}else{let b=E?new T(0,0):L(s)?0n:0;for(let p=0;p<e;p++){let w=[...D,h,p],N=[...y,p],F=A.get(...w),S=r.get(...N),x=mr(F,S);if(b instanceof T||x instanceof T){let H=b instanceof T?b:new T(Number(b),0),X=x instanceof T?x:new T(Number(x),0);b=H.add(X)}else typeof b=="bigint"||typeof x=="bigint"?b=BigInt(b)+BigInt(x):b=b+x}C.set([...m,h],b)}}return C}function pp(A,r){if(A.ndim<1)throw new Error(`vecmat: x1 must have at least 1 dimension, got ${A.ndim}D`);if(r.ndim<2)throw new Error(`vecmat: x2 must have at least 2 dimensions, got ${r.ndim}D`);let I=A.shape[A.ndim-1],e=r.shape[r.ndim-2],t=r.shape[r.ndim-1];if(I!==e)throw new Error(`vecmat: last axis of x1 (${I}) must match second-to-last axis of x2 (${e})`);if(A.ndim===1&&r.ndim===2)return aI(A,r);let o=A.shape.slice(0,-1),n=r.shape.slice(0,-2),g=Math.max(o.length,n.length),i=[...Array(g-o.length).fill(1),...o],Q=[...Array(g-n.length).fill(1),...n],a=[];for(let f=0;f<g;f++){let m=i[f],c=Q[f];if(m!==1&&c!==1&&m!==c)throw new Error(`vecmat: batch dimensions not broadcastable: ${o} vs ${n}`);a.push(Math.max(m,c))}let B=[...a,t],s=IA(A.dtype,r.dtype),C=d.zeros(B,s),E=k(s),u=a.reduce((f,m)=>f*m,1);for(let f=0;f<u;f++){let m=[],c=f;for(let h=a.length-1;h>=0;h--)m.unshift(c%a[h]),c=Math.floor(c/a[h]);let D=m.slice(-(o.length||1)).map((h,b)=>(o[b]??1)===1?0:h),y=m.slice(-(n.length||1)).map((h,b)=>(n[b]??1)===1?0:h),l=ir(s);for(let h=0;h<t;h++)if(l){l[0]=0;for(let b=0;b<I;b++){let p=[...D,b],w=[...y,b,h];l[0]+=Number(A.get(...p))*Number(r.get(...w))}C.set([...m,h],l[0])}else{let b=E?new T(0,0):L(s)?0n:0;for(let p=0;p<I;p++){let w=[...D,p],N=[...y,p,h],F=A.get(...w),S=r.get(...N),x=mr(F,S);if(b instanceof T||x instanceof T){let H=b instanceof T?b:new T(Number(b),0),X=x instanceof T?x:new T(Number(x),0);b=H.add(X)}else typeof b=="bigint"||typeof x=="bigint"?b=BigInt(b)+BigInt(x):b=b+x}C.set([...m,h],b)}}return C}function OC(A){if(A.ndim<2)throw new Error(`slogdet: input must be at least 2D, got ${A.ndim}D`);if(A.ndim>2){let Q=Array.from(A.shape).slice(0,-2),a=A.shape[A.ndim-1],B=A.shape[A.ndim-2];if(B!==a)throw new Error(`slogdet: last 2 dimensions must be square, got ${B}x${a}`);let s=Q.reduce((f,m)=>f*m,1),C=new Float64Array(s),E=new Float64Array(s),u=ZA(A);for(let f=0;f<s;f++){let m=f*a*a,c=d.fromData(u.slice(m,m+a*a),[a,a],"float64"),{sign:D,logabsdet:y}=OC(c);C[f]=D,E[f]=y}return{sign:d.fromData(C,Q,"float64"),logabsdet:d.fromData(E,Q,"float64")}}let[r,I]=A.shape;if(r!==I)throw new Error(`slogdet: matrix must be square, got ${r}x${I}`);let e=r;if(e===0)return{sign:1,logabsdet:0};let{lu:t,sign:o}=Eg(A),n=t.data,g=0,i=o;for(let Q=0;Q<e;Q++){let a=n[Q*e+Q];if(a===0)return{sign:0,logabsdet:-1/0};a<0&&(i=-i),g+=Math.log(Math.abs(a))}return{sign:i,logabsdet:g}}function wp(A){return Cg(A,!0,!1)}function Np(A){if(A.length<2)throw new Error("multi_dot: need at least 2 arrays");if(A.length===2)return OA(A[0],A[1]);let r=A[0];for(let I=1;I<A.length;I++)r=OA(r,A[I]);return r}function Fp(A,r=2){if(r<=0)throw new Error(`tensorinv: ind must be positive, got ${r}`);let I=A.shape,e=A.ndim;if(e<r)throw new Error(`tensorinv: array has ${e} dimensions, ind=${r} is too large`);let t=1;for(let Q=0;Q<r;Q++)t*=I[Q];let o=1;for(let Q=r;Q<e;Q++)o*=I[Q];if(t!==o)throw new Error(`tensorinv: product of first ${r} dimensions (${t}) must equal product of remaining dimensions (${o})`);let n=EA(A,[t,o]),g=kI(n),i=[...I.slice(r),...I.slice(0,r)];return EA(g,i)}function Gp(A,r,I){let e=A.shape,t=r.shape,o=A.ndim,n=r.ndim,g;I==null?g=Array.from({length:n},(D,y)=>o-n+y):g=I.map(D=>D<0?o+D:D);let i=[];for(let D=0;D<o;D++)g.includes(D)||i.push(D);let Q=[...i,...g],a=AI(A,Q),s=g.map(D=>e[D]).reduce((D,y)=>D*y,1),E=i.map(D=>e[D]).reduce((D,y)=>D*y,1),u=t.reduce((D,y)=>D*y,1);if(s!==u)throw new Error(`tensorsolve: dimensions don't match - sum dimensions product (${s}) != b total elements (${u})`);if(E!==s)throw new Error(`tensorsolve: non-square problem - other dimensions product (${E}) != sum dimensions product (${s})`);let f=EA(a,[E,s]),m=EA(r,[s]),c=VC(f,m);return EA(c,[...t])}function Sp(A,...r){let I=A.indexOf("->"),e,t;I===-1?(e=A,t=ap(e)):(e=A.slice(0,I),t=A.slice(I+2));let o=e.split(",").map(s=>s.trim());if(o.length!==r.length)throw new Error(`einsum_path: expected ${o.length} operands, got ${r.length}`);let n=r.map(s=>Array.isArray(s)?s:Array.from(s.shape)),g=new Map;for(let s=0;s<r.length;s++){let C=o[s],E=n[s];if(C.length!==E.length)throw new Error(`einsum_path: operand ${s} has ${E.length} dimensions but subscript '${C}' has ${C.length} indices`);for(let u=0;u<C.length;u++){let f=C[u],m=E[u];if(g.has(f)&&g.get(f)!==m)throw new Error(`einsum_path: size mismatch for index '${f}': ${g.get(f)} vs ${m}`);g.set(f,m)}}if(r.length===1){let s=[[0]];return[s,vC(A,n,s,g)]}if(r.length===2){let s=[[0,1]];return[s,vC(A,n,s,g)]}let i=[],Q=[...o],a=[...n],B=r.map((s,C)=>C);for(;Q.length>1;){let s=0,C=1,E=1/0;for(let m=0;m<Q.length;m++)for(let c=m+1;c<Q.length;c++){let D=X1(Q[m],Q[c],a[m],a[c],t,g);D<E&&(E=D,s=m,C=c)}i.push([B[s],B[C]]);let[u,f]=T1(Q[s],Q[C],a[s],a[C],t,g);Q.splice(C,1),Q.splice(s,1),a.splice(C,1),a.splice(s,1),B.splice(C,1),B.splice(s,1),Q.push(u),a.push(f),B.push(-1)}return[i,vC(A,n,i,g)]}function X1(A,r,I,e,t,o){let n=new Set(A),g=new Set(r),i=1;for(let Q of n)i*=o.get(Q)||1;for(let Q of g)n.has(Q)||(i*=o.get(Q)||1);return i}function T1(A,r,I,e,t,o){let n=new Set([...A,...r]),g=new Map;for(let B of A)g.set(B,(g.get(B)||0)+1);for(let B of r)g.set(B,(g.get(B)||0)+1);let i=new Set(t),Q=[];for(let B of n)(i.has(B)||g.get(B)===1)&&Q.push(B);Q.sort();let a=Q.map(B=>o.get(B));return[Q.join(""),a]}function vC(A,r,I,e){let t=[];t.push(" Complete contraction: "+A),t.push(" Operand shapes: "+r.map(n=>`(${n.join(", ")})`).join(", ")),t.push(" Contraction path: "+JSON.stringify(I));let o=0;for(let n of r)o+=n.reduce((g,i)=>g*i,1);return t.push(" Estimated FLOPS: ~"+o.toExponential(2)),t.join(`
|
|
5
|
+
`)}function qI(A,r){let I=aI(G(A),G(r));return typeof I=="number"||typeof I=="bigint"||I instanceof T?I:R(I)}function MI(A,r=0,I=0,e=1){let t=op(G(A),r,I,e);return t instanceof d?R(t):t}function xI(A,r=0,I=0,e=1){return R(gp(G(A),r,I,e))}function ZC(A,r){return R(Bp(G(A),G(r)))}function JI(A,r){return $A(AI(G(A),r),A)}function UI(A,r){let I=np(G(A),G(r));return typeof I=="number"||typeof I=="bigint"||I instanceof T?I:R(I)}function LI(A,r){return R(XC(G(A),G(r)))}function HI(A,r,I=2){let e=ip(G(A),G(r),I);return typeof e=="number"||typeof e=="bigint"||e instanceof T?e:R(e)}function Dg(A,...r){let I=r.map(t=>G(t)),e=Qp(A,...I);return typeof e=="number"||typeof e=="bigint"||e instanceof T?e:R(e)}function fg(A,...r){let I=r.map(e=>G(e));return Sp(A,...I)}function mg(A,r){return yp(G(A),G(r))}function yg(A,r,I=-1){let e=lp(G(A),G(r),I);return typeof e=="number"||typeof e=="bigint"||e instanceof T?e:R(e)}function lg(A){return $A(hp(G(A)),A)}function hg(A,r){return $A(dp(G(A),r),A)}function zC(A,r){return R(bp(G(A),G(r)))}function jC(A,r){return R(pp(G(A),G(r)))}function dg(A,r,I=-1,e=-1,t=-1,o){let n=sp(G(A),G(r),I,e,t,o);return typeof n=="number"||typeof n=="bigint"||n instanceof T?n:R(n)}function Zt(A,r){return R(OA(G(A),G(r)))}var bg={matmul:(A,r)=>R(OA(G(A),G(r))),dot:(A,r)=>qI(A,r),det:A=>{let r=KC(G(A));return typeof r=="number"?r:R(r)},inv:A=>R(kI(G(A))),solve:(A,r)=>R(VC(G(A),G(r))),lstsq:(A,r,I)=>{let e=Ep(G(A),G(r),I);return{x:R(e.x),residuals:R(e.residuals),rank:e.rank,s:R(e.s)}},norm:(A,r,I,e)=>{let t=Cp(G(A),r,I,e);return typeof t=="number"?t:R(t)},cond:(A,r)=>up(G(A),r),matrix_rank:(A,r)=>cp(G(A),r),matrix_power:(A,r)=>R(Dp(G(A),r)),pinv:(A,r)=>R(WC(G(A),r)),qr:(A,r)=>{let I=sg(G(A),r);return"h"in I&&"tau"in I?{h:R(I.h),tau:R(I.tau)}:"q"in I&&"r"in I?{q:R(I.q),r:R(I.r)}:R(I)},cholesky:(A,r)=>R(TC(G(A),r)),svd:(A,r,I)=>{let e=Cg(G(A),r,I);return"u"in e&&"s"in e&&"vt"in e?{u:R(e.u),s:R(e.s),vt:R(e.vt)}:R(e)},eig:A=>{let r=ug(G(A));return{w:R(r.w),v:R(r.v)}},eigh:(A,r)=>{let I=cg(G(A),r);return{w:R(I.w),v:R(I.v)}},eigvals:A=>R(fp(G(A))),eigvalsh:(A,r)=>R(mp(G(A),r)),slogdet:A=>{let r=OC(G(A)),I=r.sign instanceof d?R(r.sign):r.sign,e=r.logabsdet instanceof d?R(r.logabsdet):r.logabsdet;return{sign:I,logabsdet:e}},svdvals:A=>R(wp(G(A))),multi_dot:A=>R(Np(A.map(r=>G(r)))),tensorinv:(A,r)=>R(Fp(G(A),r)),tensorsolve:(A,r,I)=>R(Gp(G(A),G(r),I)),vector_norm:(A,r,I,e)=>{let t=RI(G(A),r,I,e);return typeof t=="number"?t:R(t)},matrix_norm:(A,r,I)=>{let e=$r(G(A),r,I);return typeof e=="number"?e:R(e)},cross:(A,r,I,e,t,o)=>dg(A,r,I,e,t,o),matrix_transpose:A=>lg(A),permute_dims:(A,r)=>hg(A,r),trace:(A,r,I,e)=>MI(A,r,I,e),diagonal:(A,r,I,e)=>xI(A,r,I,e),outer:(A,r)=>LI(A,r),inner:(A,r)=>UI(A,r),tensordot:(A,r,I)=>HI(A,r,I),vecdot:(A,r,I)=>yg(A,r,I),transpose:(A,r)=>JI(A,r)};function zt(A,r){return R(EA(G(A),r))}function yr(A){return R(gI(G(A)))}function jt(A){return R(hI(G(A)))}function $t(A,r){return $A(Sf(G(A),r),A)}function Ao(A,r){return $A(iI(G(A),r),A)}function ro(A,r,I){return $A(Rf(G(A),r,I),A)}function Io(A,r,I){return $A(va(G(A),r,I),A)}function $C(A,r,I=0){return $A(Tf(G(A),r,I),A)}function _I(A,r=0){return R(_r(A.map(I=>G(I)),r))}function AE(A,r=0){return R(kf(A.map(I=>G(I)),r))}function pg(A){return R(qf(A.map(r=>G(r))))}function rE(A){return R(Xa(A.map(r=>G(r))))}function IE(A){return R(Mf(A.map(r=>G(r))))}function eE(A){return R(Kf(A.map(r=>G(r))))}var wg=pg;function tE(A){return R(jf(A.map(r=>G(r))))}function Ng(A,r,I=0){return bI(xf(G(A),r,I),A)}function Fg(A,r,I=0){return bI(se(G(A),r,I),A)}function Gg(A,r){return bI(Uf(G(A),r),A)}function Sg(A,r){return bI(Lf(G(A),r),A)}function Rg(A,r){return bI(Pf(G(A),r),A)}function oE(A,r=0){return dr(zf(G(A),r))}function nE(A,r){return R(Hf(G(A),r))}function eo(A,r,I){return R(_f(G(A),r,I))}function to(A,r){return R(Yf(G(A),r))}function iE(A){return to(A,1)}function gE(A){return to(A,0)}function QE(A,r=1,I=[0,1]){return R(vf(G(A),r,I))}function aE(A,r,I){return R(Xf(G(A),r,I))}function oo(A,r){return R(Vf(G(A),r))}function kg(...A){let r=Wf(A.map(I=>G(I)));return r.length===1?R(r[0]):dr(r)}function qg(...A){let r=Of(A.map(I=>G(I)));return r.length===1?R(r[0]):dr(r)}function Mg(...A){let r=Zf(A.map(I=>G(I)));return r.length===1?R(r[0]):dr(r)}function pr(A){let r=new Array(A.length),I=1;for(let e=A.length-1;e>=0;e--)r[e]=I,I*=A[e];return r}function gA(A,r,I,e,t){let o=A.length,n=r[e],g=[],i=[];for(let B=0;B<o;B++)B!==e&&(g.push(A[B]),i.push(r[B]));let Q=new Int32Array(t),a=g.length;if(a===0)Q[0]=I;else if(a===1){let B=i[0];for(let s=0;s<t;s++)Q[s]=I+s*B}else{let B=new Int32Array(a);B[a-1]=1;for(let s=a-2;s>=0;s--)B[s]=B[s+1]*g[s+1];for(let s=0;s<t;s++){let C=I,E=s;for(let u=0;u<a;u++){let f=E/B[u]|0;E-=f*B[u],C+=f*i[u]}Q[s]=C}}return{baseOffsets:Q,axisStride:n}}var K1="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",no=null;function zA(){if(no)return no;let A=atob(K1),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);no=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=no.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),no}function Rp(A,r){return zA().exports.reduce_sum_f64(A,r)}function kp(A,r){return zA().exports.reduce_sum_f32(A,r)}function BE(A,r){return zA().exports.reduce_sum_i64(A,r)}function sE(A,r){return zA().exports.reduce_sum_i32(A,r)}function qp(A,r,I,e,t){zA().exports.reduce_sum_strided_f64(A,r,I,e,t)}function Mp(A,r,I,e,t){zA().exports.reduce_sum_strided_f32(A,r,I,e,t)}function xp(A,r,I,e,t){zA().exports.reduce_sum_strided_i64(A,r,I,e,t)}function Jp(A,r,I,e,t){zA().exports.reduce_sum_strided_u64(A,r,I,e,t)}function Up(A,r,I,e,t){zA().exports.reduce_sum_strided_i32(A,r,I,e,t)}function Lp(A,r,I,e,t){zA().exports.reduce_sum_strided_u32(A,r,I,e,t)}function Hp(A,r,I,e,t){zA().exports.reduce_sum_strided_i16(A,r,I,e,t)}function _p(A,r,I,e,t){zA().exports.reduce_sum_strided_u16(A,r,I,e,t)}function Yp(A,r,I,e,t){zA().exports.reduce_sum_strided_i8(A,r,I,e,t)}function vp(A,r,I,e,t){zA().exports.reduce_sum_strided_u8(A,r,I,e,t)}var Xp=64,V1={float64:Rp,float32:kp,int64:BE,uint64:BE,int32:sE,uint32:sE},Tp={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Pp(A){if(!A.isCContiguous)return null;let r=A.size;if(r<Xp*Y.thresholdMultiplier)return null;let I=A.dtype,e=V1[I],t=Tp[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var W1={float64:qp,float32:Mp,int64:xp,uint64:Jp,int32:Up,uint32:Lp,int16:Hp,uint16:_p,int8:Yp,uint8:vp};function Kp(A,r,I,e){if(!A.isCContiguous)return null;let t=r*I*e;if(t<Xp*Y.thresholdMultiplier)return null;let o=A.dtype,n=W1[o],g=Tp[o];if(!n||!g)return null;let i=g.BYTES_PER_ELEMENT,Q=r*e;J(t*i+Q*8),U();let a=A.offset,B=A.data.subarray(a,a+t),s=q(B),C=_(Q*8);n(s,C,r,I,e);let E=v(C,Q,Float64Array);return d.fromData(E,[Q],"float64")}var O1="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",io=null;function xA(){if(io)return io;let A=atob(O1),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);io=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=io.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),io}function Vp(A,r){return xA().exports.reduce_max_f32(A,r)}function Wp(A,r){return xA().exports.reduce_max_i64(A,r)}function Op(A,r){return xA().exports.reduce_max_u64(A,r)}function Zp(A,r){return xA().exports.reduce_max_i32(A,r)}function zp(A,r){return xA().exports.reduce_max_u32(A,r)}function jp(A,r){return xA().exports.reduce_max_i16(A,r)}function $p(A,r){return xA().exports.reduce_max_u16(A,r)}function Aw(A,r){return xA().exports.reduce_max_i8(A,r)}function rw(A,r){return xA().exports.reduce_max_u8(A,r)}function Iw(A,r,I,e,t){xA().exports.reduce_max_strided_f32(A,r,I,e,t)}function ew(A,r,I,e,t){xA().exports.reduce_max_strided_i64(A,r,I,e,t)}function tw(A,r,I,e,t){xA().exports.reduce_max_strided_u64(A,r,I,e,t)}function ow(A,r,I,e,t){xA().exports.reduce_max_strided_i32(A,r,I,e,t)}function nw(A,r,I,e,t){xA().exports.reduce_max_strided_u32(A,r,I,e,t)}function iw(A,r,I,e,t){xA().exports.reduce_max_strided_i16(A,r,I,e,t)}function gw(A,r,I,e,t){xA().exports.reduce_max_strided_u16(A,r,I,e,t)}function Qw(A,r,I,e,t){xA().exports.reduce_max_strided_i8(A,r,I,e,t)}function aw(A,r,I,e,t){xA().exports.reduce_max_strided_u8(A,r,I,e,t)}var Bw=64,Z1={float32:Vp,int64:Wp,uint64:Op,int32:Zp,uint32:zp,int16:jp,uint16:$p,int8:Aw,uint8:rw},sw={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Cw(A){if(!A.isCContiguous)return null;let r=A.size;if(r<Bw*Y.thresholdMultiplier)return null;let I=A.dtype,e=Z1[I],t=sw[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var z1={float32:Iw,int64:ew,uint64:tw,int32:ow,uint32:nw,int16:iw,uint16:gw,int8:Qw,uint8:aw},j1={float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Ew(A,r,I,e){if(!A.isCContiguous)return null;let t=r*I*e;if(t<Bw*Y.thresholdMultiplier)return null;let o=A.dtype,n=z1[o],g=sw[o],i=j1[o];if(!n||!g||!i)return null;let Q=g.BYTES_PER_ELEMENT,a=Q,B=r*e;J(t*Q+B*a),U();let s=A.offset,C=A.data.subarray(s,s+t),E=q(C),u=_(B*a);n(E,u,r,I,e);let f=v(u,B,i);return d.fromData(f,[B],o)}var $1="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",go=null;function JA(){if(go)return go;let A=atob($1),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);go=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=go.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),go}function uw(A,r){return JA().exports.reduce_min_f32(A,r)}function cw(A,r){return JA().exports.reduce_min_i64(A,r)}function Dw(A,r){return JA().exports.reduce_min_u64(A,r)}function fw(A,r){return JA().exports.reduce_min_i32(A,r)}function mw(A,r){return JA().exports.reduce_min_u32(A,r)}function yw(A,r){return JA().exports.reduce_min_i16(A,r)}function lw(A,r){return JA().exports.reduce_min_u16(A,r)}function hw(A,r){return JA().exports.reduce_min_i8(A,r)}function dw(A,r){return JA().exports.reduce_min_u8(A,r)}function bw(A,r,I,e,t){JA().exports.reduce_min_strided_f32(A,r,I,e,t)}function pw(A,r,I,e,t){JA().exports.reduce_min_strided_i64(A,r,I,e,t)}function ww(A,r,I,e,t){JA().exports.reduce_min_strided_u64(A,r,I,e,t)}function Nw(A,r,I,e,t){JA().exports.reduce_min_strided_i32(A,r,I,e,t)}function Fw(A,r,I,e,t){JA().exports.reduce_min_strided_u32(A,r,I,e,t)}function Gw(A,r,I,e,t){JA().exports.reduce_min_strided_i16(A,r,I,e,t)}function Sw(A,r,I,e,t){JA().exports.reduce_min_strided_u16(A,r,I,e,t)}function Rw(A,r,I,e,t){JA().exports.reduce_min_strided_i8(A,r,I,e,t)}function kw(A,r,I,e,t){JA().exports.reduce_min_strided_u8(A,r,I,e,t)}var qw=64,A3={float32:uw,int64:cw,uint64:Dw,int32:fw,uint32:mw,int16:yw,uint16:lw,int8:hw,uint8:dw},Mw={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function xw(A){if(!A.isCContiguous)return null;let r=A.size;if(r<qw*Y.thresholdMultiplier)return null;let I=A.dtype,e=A3[I],t=Mw[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var r3={float32:bw,int64:pw,uint64:ww,int32:Nw,uint32:Fw,int16:Gw,uint16:Sw,int8:Rw,uint8:kw},I3={float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Jw(A,r,I,e){if(!A.isCContiguous)return null;let t=r*I*e;if(t<qw*Y.thresholdMultiplier)return null;let o=A.dtype,n=r3[o],g=Mw[o],i=I3[o];if(!n||!g||!i)return null;let Q=g.BYTES_PER_ELEMENT,a=Q,B=r*e;J(t*Q+B*a),U();let s=A.offset,C=A.data.subarray(s,s+t),E=q(C),u=_(B*a);n(E,u,r,I,e);let f=v(u,B,i);return d.fromData(f,[B],o)}var e3="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",Qo=null;function Mr(){if(Qo)return Qo;let A=atob(e3),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Qo=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Qo.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Qo}function Uw(A,r){return Mr().exports.reduce_argmax_f32(A,r)}function Lw(A,r){return Mr().exports.reduce_argmax_i64(A,r)}function Hw(A,r){return Mr().exports.reduce_argmax_u64(A,r)}function _w(A,r){return Mr().exports.reduce_argmax_i32(A,r)}function Yw(A,r){return Mr().exports.reduce_argmax_u32(A,r)}function vw(A,r){return Mr().exports.reduce_argmax_i16(A,r)}function Xw(A,r){return Mr().exports.reduce_argmax_u16(A,r)}function Tw(A,r){return Mr().exports.reduce_argmax_i8(A,r)}function Pw(A,r){return Mr().exports.reduce_argmax_u8(A,r)}var t3=64,o3={float32:Uw,int64:Lw,uint64:Hw,int32:_w,uint32:Yw,int16:vw,uint16:Xw,int8:Tw,uint8:Pw},n3={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Kw(A){if(!A.isCContiguous)return null;let r=A.size;if(r<t3*Y.thresholdMultiplier)return null;let I=A.dtype,e=o3[I],t=n3[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var i3="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",ao=null;function xr(){if(ao)return ao;let A=atob(i3),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ao=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ao.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ao}function Vw(A,r){return xr().exports.reduce_argmin_f32(A,r)}function Ww(A,r){return xr().exports.reduce_argmin_i64(A,r)}function Ow(A,r){return xr().exports.reduce_argmin_u64(A,r)}function Zw(A,r){return xr().exports.reduce_argmin_i32(A,r)}function zw(A,r){return xr().exports.reduce_argmin_u32(A,r)}function jw(A,r){return xr().exports.reduce_argmin_i16(A,r)}function $w(A,r){return xr().exports.reduce_argmin_u16(A,r)}function AN(A,r){return xr().exports.reduce_argmin_i8(A,r)}function rN(A,r){return xr().exports.reduce_argmin_u8(A,r)}var g3=64,Q3={float32:Vw,int64:Ww,uint64:Ow,int32:Zw,uint32:zw,int16:jw,uint16:$w,int8:AN,uint8:rN},a3={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function IN(A){if(!A.isCContiguous)return null;let r=A.size;if(r<g3*Y.thresholdMultiplier)return null;let I=A.dtype,e=Q3[I],t=a3[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var B3="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",Bo=null;function SA(){if(Bo)return Bo;let A=atob(B3),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Bo=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Bo.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Bo}function eN(A,r){return SA().exports.reduce_mean_f64(A,r)}function tN(A,r){return SA().exports.reduce_mean_f32(A,r)}function oN(A,r){return SA().exports.reduce_mean_i64(A,r)}function nN(A,r){return SA().exports.reduce_mean_u64(A,r)}function iN(A,r){return SA().exports.reduce_mean_i32(A,r)}function gN(A,r){return SA().exports.reduce_mean_u32(A,r)}function QN(A,r){return SA().exports.reduce_mean_i16(A,r)}function aN(A,r){return SA().exports.reduce_mean_u16(A,r)}function BN(A,r){return SA().exports.reduce_mean_i8(A,r)}function sN(A,r){return SA().exports.reduce_mean_u8(A,r)}function CN(A,r,I,e,t){SA().exports.reduce_mean_strided_f64(A,r,I,e,t)}function EN(A,r,I,e,t){SA().exports.reduce_mean_strided_f32(A,r,I,e,t)}function uN(A,r,I,e,t){SA().exports.reduce_mean_strided_i64(A,r,I,e,t)}function cN(A,r,I,e,t){SA().exports.reduce_mean_strided_u64(A,r,I,e,t)}function DN(A,r,I,e,t){SA().exports.reduce_mean_strided_i32(A,r,I,e,t)}function fN(A,r,I,e,t){SA().exports.reduce_mean_strided_u32(A,r,I,e,t)}function mN(A,r,I,e,t){SA().exports.reduce_mean_strided_i16(A,r,I,e,t)}function yN(A,r,I,e,t){SA().exports.reduce_mean_strided_u16(A,r,I,e,t)}function lN(A,r,I,e,t){SA().exports.reduce_mean_strided_i8(A,r,I,e,t)}function hN(A,r,I,e,t){SA().exports.reduce_mean_strided_u8(A,r,I,e,t)}var dN=64,s3={float64:eN,float32:tN,int64:oN,uint64:nN,int32:iN,uint32:gN,int16:QN,uint16:aN,int8:BN,uint8:sN},bN={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function pN(A){if(!A.isCContiguous)return null;let r=A.size;if(r<dN*Y.thresholdMultiplier)return null;let I=A.dtype,e=s3[I],t=bN[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var C3={float64:CN,float32:EN,int64:uN,uint64:cN,int32:DN,uint32:fN,int16:mN,uint16:yN,int8:lN,uint8:hN};function wN(A,r,I,e){if(!A.isCContiguous)return null;let t=r*I*e;if(t<dN*Y.thresholdMultiplier)return null;let o=A.dtype,n=C3[o],g=bN[o];if(!n||!g)return null;let i=g.BYTES_PER_ELEMENT,Q=Float64Array.BYTES_PER_ELEMENT,a=r*e;J(t*i+a*Q),U();let B=A.offset,s=A.data.subarray(B,B+t),C=q(s),E=_(a*Q);n(C,E,r,I,e);let u=v(E,a,Float64Array);return d.fromData(u,[a],"float64")}var E3="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",so=null;function wr(){if(so)return so;let A=atob(E3),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);so=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=so.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),so}function NN(A,r){return wr().exports.reduce_var_f64(A,r)}function FN(A,r){return wr().exports.reduce_var_f32(A,r)}function GN(A,r){return wr().exports.reduce_var_i64(A,r)}function SN(A,r){return wr().exports.reduce_var_u64(A,r)}function RN(A,r){return wr().exports.reduce_var_i32(A,r)}function kN(A,r){return wr().exports.reduce_var_u32(A,r)}function qN(A,r){return wr().exports.reduce_var_i16(A,r)}function MN(A,r){return wr().exports.reduce_var_u16(A,r)}function xN(A,r){return wr().exports.reduce_var_i8(A,r)}function JN(A,r){return wr().exports.reduce_var_u8(A,r)}var u3=64,c3={float64:NN,float32:FN,int64:GN,uint64:SN,int32:RN,uint32:kN,int16:qN,uint16:MN,int8:xN,uint8:JN},D3={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function UN(A){if(!A.isCContiguous)return null;let r=A.size;if(r<u3*Y.thresholdMultiplier)return null;let I=A.dtype,e=c3[I],t=D3[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var f3="AGFzbQEAAAABDQJgAn9/AXxgAn9/AX0CDwEDZW52Bm1lbW9yeQIAEAMDAgABBgkBfwFBgIDAAAsHKQIRcmVkdWNlX25hbnN1bV9mNjQAABFyZWR1Y2VfbmFuc3VtX2YzMgABCvUDAv4BBAJ/AXwBfwF8AkAgAQ0ARAAAAAAAAAAADwsgAUEDcSECAkACQCABQQRPDQBBACEDRAAAAAAAAAAAIQQMAQsgAUF8cSEFQQAhA0QAAAAAAAAAACEEIAAhAQNAIAQgASsDACIGoCAEIAYgBmEbIgYgAUEIaisDACIEoCAGIAQgBGEbIgYgAUEQaisDACIEoCAGIAQgBGEbIgYgAUEYaisDACIEoCAGIAQgBGEbIQQgAUEgaiEBIAUgA0EEaiIDRw0ACwsCQCACRQ0AIAAgA0EDdGohAQNAIAQgASsDACIGoCAEIAYgBmEbIQQgAUEIaiEBIAJBf2oiAg0ACwsgBAvyAQQCfwF9AX8BfQJAIAENAEMAAAAADwsgAUEDcSECAkACQCABQQRPDQBBACEDQwAAAAAhBAwBCyABQXxxIQVBACEDQwAAAAAhBCAAIQEDQCAEIAEqAgAiBpIgBCAGIAZbGyIGIAFBBGoqAgAiBJIgBiAEIARbGyIGIAFBCGoqAgAiBJIgBiAEIARbGyIGIAFBDGoqAgAiBJIgBiAEIARbGyEEIAFBEGohASAFIANBBGoiA0cNAAsLAkAgAkUNACAAIANBAnRqIQEDQCAEIAEqAgAiBpIgBCAGIAZbGyEEIAFBBGohASACQX9qIgINAAsLIAQL",Co=null;function LN(){if(Co)return Co;let A=atob(f3),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Co=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Co.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Co}function HN(A,r){return LN().exports.reduce_nansum_f64(A,r)}function _N(A,r){return LN().exports.reduce_nansum_f32(A,r)}var m3=64,y3={float64:HN,float32:_N},l3={float64:Float64Array,float32:Float32Array};function YN(A){if(!A.isCContiguous)return null;let r=A.size;if(r<m3*Y.thresholdMultiplier)return null;let I=A.dtype,e=y3[I],t=l3[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var h3="AGFzbQEAAAABDQJgAn9/AXxgAn9/AX0CDwEDZW52Bm1lbW9yeQIAEAMDAgABBgkBfwFBgIDAAAsHKQIRcmVkdWNlX25hbm1pbl9mNjQAABFyZWR1Y2VfbmFubWluX2YzMgABCqcEApcCBAJ/AXwBfwR8AkAgAQ0ARAAAAAAAAPB/DwsgAUEDcSECAkACQCABQQRPDQBBACEDRAAAAAAAAPB/IQQMAQsgAUF8cSEFQQAhA0QAAAAAAADwfyEEIAAhAQNAIAFBGGorAwAiBiABQRBqKwMAIgcgAUEIaisDACIIIAErAwAiCSAEIAkgBGMbIAQgCSAJYRsiBCAIIARjGyAEIAggCGEbIgQgByAEYxsgBCAHIAdhGyIEIAYgBGMbIAQgBiAGYRshBCABQSBqIQEgBSADQQRqIgNHDQALCwJAIAJFDQAgACADQQN0aiEBA0AgASsDACIGIAQgBiAEYxsgBCAGIAZhGyEEIAFBCGohASACQX9qIgINAAsLIAQLiwIEAn8BfQF/BH0CQCABDQBDAACAfw8LIAFBA3EhAgJAAkAgAUEETw0AQQAhA0MAAIB/IQQMAQsgAUF8cSEFQQAhA0MAAIB/IQQgACEBA0AgAUEMaioCACIGIAFBCGoqAgAiByABQQRqKgIAIgggASoCACIJIAQgCSAEXRsgBCAJIAlbGyIEIAggBF0bIAQgCCAIWxsiBCAHIARdGyAEIAcgB1sbIgQgBiAEXRsgBCAGIAZbGyEEIAFBEGohASAFIANBBGoiA0cNAAsLAkAgAkUNACAAIANBAnRqIQEDQCABKgIAIgYgBCAGIARdGyAEIAYgBlsbIQQgAUEEaiEBIAJBf2oiAg0ACwsgBAs=",Eo=null;function vN(){if(Eo)return Eo;let A=atob(h3),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Eo=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Eo.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Eo}function XN(A,r){return vN().exports.reduce_nanmin_f64(A,r)}function TN(A,r){return vN().exports.reduce_nanmin_f32(A,r)}var d3=64,b3={float64:XN,float32:TN},p3={float64:Float64Array,float32:Float32Array};function PN(A){if(!A.isCContiguous)return null;let r=A.size;if(r<d3*Y.thresholdMultiplier)return null;let I=A.dtype,e=b3[I],t=p3[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var w3="AGFzbQEAAAABDQJgAn9/AXxgAn9/AX0CDwEDZW52Bm1lbW9yeQIAEAMDAgABBgkBfwFBgIDAAAsHKQIRcmVkdWNlX25hbm1heF9mNjQAABFyZWR1Y2VfbmFubWF4X2YzMgABCqcEApcCBAJ/AXwBfwR8AkAgAQ0ARAAAAAAAAPD/DwsgAUEDcSECAkACQCABQQRPDQBBACEDRAAAAAAAAPD/IQQMAQsgAUF8cSEFQQAhA0QAAAAAAADw/yEEIAAhAQNAIAFBGGorAwAiBiABQRBqKwMAIgcgAUEIaisDACIIIAErAwAiCSAEIAkgBGQbIAQgCSAJYRsiBCAIIARkGyAEIAggCGEbIgQgByAEZBsgBCAHIAdhGyIEIAYgBGQbIAQgBiAGYRshBCABQSBqIQEgBSADQQRqIgNHDQALCwJAIAJFDQAgACADQQN0aiEBA0AgASsDACIGIAQgBiAEZBsgBCAGIAZhGyEEIAFBCGohASACQX9qIgINAAsLIAQLiwIEAn8BfQF/BH0CQCABDQBDAACA/w8LIAFBA3EhAgJAAkAgAUEETw0AQQAhA0MAAID/IQQMAQsgAUF8cSEFQQAhA0MAAID/IQQgACEBA0AgAUEMaioCACIGIAFBCGoqAgAiByABQQRqKgIAIgggASoCACIJIAQgCSAEXhsgBCAJIAlbGyIEIAggBF4bIAQgCCAIWxsiBCAHIAReGyAEIAcgB1sbIgQgBiAEXhsgBCAGIAZbGyEEIAFBEGohASAFIANBBGoiA0cNAAsLAkAgAkUNACAAIANBAnRqIQEDQCABKgIAIgYgBCAGIAReGyAEIAYgBlsbIQQgAUEEaiEBIAJBf2oiAg0ACwsgBAs=",uo=null;function KN(){if(uo)return uo;let A=atob(w3),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);uo=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=uo.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),uo}function VN(A,r){return KN().exports.reduce_nanmax_f64(A,r)}function WN(A,r){return KN().exports.reduce_nanmax_f32(A,r)}var N3=64,F3={float64:VN,float32:WN},G3={float64:Float64Array,float32:Float32Array};function ON(A){if(!A.isCContiguous)return null;let r=A.size;if(r<N3*Y.thresholdMultiplier)return null;let I=A.dtype,e=F3[I],t=G3[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var S3="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IBIgBGtBfEsNACATQQN0IQogBCATayESA0AgESAKaiIDIAMrAwAgFyAKaiIWKwMAojkDACADQQhqIhMgEysDACAWQQhqKwMAojkDACADQRBqIhMgEysDACAWQRBqKwMAojkDACADQRhqIgMgAysDACAWQRhqKwMAojkDACAKQSBqIQogEkF8aiISDQALCyAXIAhqIRcgGEEBaiIYIAVHDQALIBAgC2ohECAAIAtqIQAgESAIaiERIAZBAWoiBiACRw0ADAILCyAERQ0AIARBA3QhEyAEQX5xIRIgBCADbCIKQQN0IRhBACERIARBBkkgASAAIAQgAyACQX9qbEEDdEEIamxqSSAAIAEgBCACbEEDdGpJcSAKIARyQYCAgIABcUEcdnJyQQFxIQcDQEEAIRYCQAJAIAcNACASIRYgACEDIAEhCgNAIAogA/0AAwD9CwMAIANBEGohAyAKQRBqIQogFkF+aiIWDQALIBIhFiAEIBJGDQELIBYhFwJAIAQgFmtBA3EiCkUNACAWIApqIRcgFkEDdCEDA0AgASADaiAAIANqKwMAOQMAIANBCGohAyAKQX9qIgoNAAsLIBYgBGtBfEsNACAXQQN0IQMgBCAXayEXA0AgASADaiIKIAAgA2oiFisDADkDACAKQQhqIBZBCGorAwA5AwAgCkEQaiAWQRBqKwMAOQMAIApBGGogFkEYaisDADkDACADQSBqIQMgF0F8aiIXDQALCyAAIBhqIQAgASATaiEBIBFBAWoiESACRw0ACwsLyQkBFH8CQCACRQ0AAkAgA0F/aiIFRQ0AIARFDQFBACEGIARBA3EhByAEQXxxIQggASAEQQJ0IglqIQogACAEIANsIgtBAnQiDGohDSAEQQhJIAEgACAEIAMgAkF/amxBAnRBBGpsakkgACABIAQgAmxBAnRqSXEgCUEASHIgC0GAgICAAnFBHXZyckEBcSEOIAAgCWoiDyEQIAEhEQNAIA0gDCAGbCIDaiESIA8gA2ohEyAKIAkgBmwiA2ohFCABIANqIRVBACEWAkACQCAODQAgCCEWIAAhAyARIQsDQCALIAP9AAIA/QsCACADQRBqIQMgC0EQaiELIBZBfGoiFg0ACyAIIRYgBCAIRg0BCyAWIRcCQCAHRQ0AIAcgFmohFyAWQQJ0IQMgByELA0AgESADaiAAIANqKgIA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",co=null;function UA(){if(co)return co;let A=atob(S3),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);co=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=co.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),co}function ZN(A,r){return UA().exports.reduce_prod_f64(A,r)}function zN(A,r){return UA().exports.reduce_prod_f32(A,r)}function CE(A,r){return UA().exports.reduce_prod_i64(A,r)}function EE(A,r){return UA().exports.reduce_prod_i32(A,r)}function jN(A,r){return UA().exports.reduce_prod_i16(A,r)}function $N(A,r){return UA().exports.reduce_prod_u16(A,r)}function AF(A,r){return UA().exports.reduce_prod_i8(A,r)}function rF(A,r){return UA().exports.reduce_prod_u8(A,r)}function IF(A,r,I,e,t){UA().exports.reduce_prod_strided_f64(A,r,I,e,t)}function eF(A,r,I,e,t){UA().exports.reduce_prod_strided_f32(A,r,I,e,t)}function tF(A,r,I,e,t){UA().exports.reduce_prod_strided_i64(A,r,I,e,t)}function oF(A,r,I,e,t){UA().exports.reduce_prod_strided_u64(A,r,I,e,t)}function nF(A,r,I,e,t){UA().exports.reduce_prod_strided_i32(A,r,I,e,t)}function iF(A,r,I,e,t){UA().exports.reduce_prod_strided_u32(A,r,I,e,t)}function gF(A,r,I,e,t){UA().exports.reduce_prod_strided_i16(A,r,I,e,t)}function QF(A,r,I,e,t){UA().exports.reduce_prod_strided_u16(A,r,I,e,t)}function aF(A,r,I,e,t){UA().exports.reduce_prod_strided_i8(A,r,I,e,t)}function BF(A,r,I,e,t){UA().exports.reduce_prod_strided_u8(A,r,I,e,t)}var sF=64,R3={float64:ZN,float32:zN,int64:CE,uint64:CE,int32:EE,uint32:EE,int16:jN,uint16:$N,int8:AF,uint8:rF},CF={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function EF(A){if(!A.isCContiguous)return null;let r=A.size;if(r<sF*Y.thresholdMultiplier)return null;let I=A.dtype,e=R3[I],t=CF[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var k3={float64:IF,float32:eF,int64:tF,uint64:oF,int32:nF,uint32:iF,int16:gF,uint16:QF,int8:aF,uint8:BF},q3={float64:"float64",float32:"float32",int64:"int64",uint64:"uint64",int32:"int32",uint32:"uint32",int16:"int64",uint16:"uint64",int8:"int64",uint8:"uint64"},M3={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:BigInt64Array,uint16:BigUint64Array,int8:BigInt64Array,uint8:BigUint64Array},x3={float64:8,float32:4,int64:8,uint64:8,int32:4,uint32:4,int16:8,uint16:8,int8:8,uint8:8};function uF(A,r,I,e){if(!A.isCContiguous)return null;let t=r*I*e;if(t<sF*Y.thresholdMultiplier)return null;let o=A.dtype,n=k3[o],g=CF[o],i=M3[o],Q=q3[o],a=x3[o];if(!n||!g||!i||!Q||!a)return null;let B=g.BYTES_PER_ELEMENT,s=r*e;J(t*B+s*a),U();let C=A.offset,E=A.data.subarray(C,C+t),u=q(E),f=_(s*a);n(u,f,r,I,e);let m=v(f,s,i);return d.fromData(m,[s],Q)}var J3="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",Do=null;function U3(){if(Do)return Do;let A=atob(J3),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Do=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Do.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Do}function cF(A,r,I){return U3().exports.reduce_quantile_f64(A,r,I)}var L3=64;function DF(A,r){if(!A.isCContiguous||k(A.dtype))return null;let I=A.size;if(I<L3*Y.thresholdMultiplier)return null;let e=new Float64Array(I),t=A.offset,o=A.data;if(A.dtype==="float64")e.set(o.subarray(t,t+I));else if(L(A.dtype)){let g=o;for(let i=0;i<I;i++)e[i]=Number(g[t+i])}else for(let g=0;g<I;g++)e[g]=Number(o[t+g]);J(I*8),U();let n=q(e);return cF(n,I,r)}var H3="AGFzbQEAAAABBwFgAn9/AX8CDwEDZW52Bm1lbW9yeQIAEAMHBgAAAAAAAAYJAX8BQYCAwAALB2YGDnJlZHVjZV9hbnlfZjY0AAAOcmVkdWNlX2FueV9mMzIAAQ5yZWR1Y2VfYW55X2k2NAACDnJlZHVjZV9hbnlfaTMyAAMOcmVkdWNlX2FueV9pMTYABA1yZWR1Y2VfYW55X2k4AAUK3QIGQAEBf0EAIQICQCABRQ0AAkADQCAAKwMARAAAAAAAAAAAYg0BIABBCGohACABQX9qIgFFDQIMAAsLQQEhAgsgAgs8AQF/QQAhAgJAIAFFDQACQANAIAAqAgBDAAAAAFwNASAAQQRqIQAgAUF/aiIBRQ0CDAALC0EBIQILIAILOAEBf0EAIQICQCABRQ0AAkADQCAAKQMAUEUNASAAQQhqIQAgAUF/aiIBRQ0CDAALC0EBIQILIAILNgEBf0EAIQICQCABRQ0AAkADQCAAKAIADQEgAEEEaiEAIAFBf2oiAUUNAgwACwtBASECCyACCzYBAX9BACECAkAgAUUNAAJAA0AgAC8BAA0BIABBAmohACABQX9qIgFFDQIMAAsLQQEhAgsgAgs2AQF/QQAhAgJAIAFFDQACQANAIAAtAAANASAAQQFqIQAgAUF/aiIBRQ0CDAALC0EBIQILIAIL",fo=null;function YI(){if(fo)return fo;let A=atob(H3),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);fo=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=fo.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),fo}function fF(A,r){return YI().exports.reduce_any_f64(A,r)}function mF(A,r){return YI().exports.reduce_any_f32(A,r)}function uE(A,r){return YI().exports.reduce_any_i64(A,r)}function cE(A,r){return YI().exports.reduce_any_i32(A,r)}function DE(A,r){return YI().exports.reduce_any_i16(A,r)}function fE(A,r){return YI().exports.reduce_any_i8(A,r)}var _3=64,Y3={float64:fF,float32:mF,int64:uE,uint64:uE,int32:cE,uint32:cE,int16:DE,uint16:DE,int8:fE,uint8:fE},v3={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function yF(A){if(!A.isCContiguous)return null;let r=A.size;if(r<_3*Y.thresholdMultiplier)return null;let I=A.dtype,e=Y3[I],t=v3[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return e(i,r)}var X3="AGFzbQEAAAABBwFgAn9/AX8CDwEDZW52Bm1lbW9yeQIAEAMHBgAAAAAAAAYJAX8BQYCAwAALB2YGDnJlZHVjZV9hbGxfZjY0AAAOcmVkdWNlX2FsbF9mMzIAAQ5yZWR1Y2VfYWxsX2k2NAACDnJlZHVjZV9hbGxfaTMyAAMOcmVkdWNlX2FsbF9pMTYABA1yZWR1Y2VfYWxsX2k4AAUK5gIGQAEBf0EBIQICQCABRQ0AAkADQCAAKwMARAAAAAAAAAAAYQ0BIABBCGohACABQX9qIgFFDQIMAAsLQQAhAgsgAgs8AQF/QQEhAgJAIAFFDQACQANAIAAqAgBDAAAAAFsNASAAQQRqIQAgAUF/aiIBRQ0CDAALC0EAIQILIAILNwEBf0EBIQICQCABRQ0AAkADQCAAKQMAUA0BIABBCGohACABQX9qIgFFDQIMAAsLQQAhAgsgAgs3AQF/QQEhAgJAIAFFDQACQANAIAAoAgBFDQEgAEEEaiEAIAFBf2oiAUUNAgwACwtBACECCyACCzcBAX9BASECAkAgAUUNAAJAA0AgAC8BAEUNASAAQQJqIQAgAUF/aiIBRQ0CDAALC0EAIQILIAILPgEBfwJAAkAgAQ0AQQEhAgwBCwJAA0AgAC0AAEUNAUEBIQIgAEEBaiEAIAFBf2oiAUUNAgwACwtBAA8LIAIL",mo=null;function vI(){if(mo)return mo;let A=atob(X3),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);mo=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=mo.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),mo}function lF(A,r){return vI().exports.reduce_all_f64(A,r)}function hF(A,r){return vI().exports.reduce_all_f32(A,r)}function mE(A,r){return vI().exports.reduce_all_i64(A,r)}function yE(A,r){return vI().exports.reduce_all_i32(A,r)}function lE(A,r){return vI().exports.reduce_all_i16(A,r)}function hE(A,r){return vI().exports.reduce_all_i8(A,r)}var T3=64,P3={float64:lF,float32:hF,int64:mE,uint64:mE,int32:yE,uint32:yE,int16:lE,uint16:lE,int8:hE,uint8:hE},K3={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function dF(A){if(!A.isCContiguous)return null;let r=A.size;if(r<T3*Y.thresholdMultiplier)return null;let I=A.dtype,e=P3[I],t=K3[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return e(i,r)}var DA=new Float32Array(2);function bF(A){switch(A){case"int8":case"int16":case"int32":return"int64";case"uint8":case"uint16":case"uint32":return"uint64";default:return A}}function V3(A){switch(A){case"int8":case"int16":case"int32":case"uint8":case"uint16":case"uint32":case"int64":case"uint64":return"float64";default:return A}}function LA(A,r,I){let e=d.zeros(Array(r).fill(1),I);return e.iset(0,A),e}function BI(A,r,I=!1){let e=A.dtype,t=A.shape,o=t.length,n=A.size,g=A.data,i=A.offset,Q=A.strides,a=A.isCContiguous;if(r===void 0){let y=Pp(A);if(y!==null)return y;if(k(e)){let l=0,h=0;if(a){let b=g;for(let p=0;p<n;p++)l+=b[(i+p)*2],h+=b[(i+p)*2+1]}else for(let b=0;b<n;b++){let p=A.iget(b);l+=p.re,h+=p.im}return new T(l,h)}else if(L(e)){let l=BigInt(0);if(a){let h=g;for(let b=0;b<n;b++)l+=h[i+b]}else for(let h=0;h<n;h++)l+=A.iget(h);return Number(l)}else if(e==="float32"){if(DA[0]=0,a)for(let l=0;l<n;l++)DA[0]+=Number(g[i+l]);else for(let l=0;l<n;l++)DA[0]+=Number(A.iget(l));return DA[0]}else{let l=0;if(a)if(i===0)for(let h=0;h<n;h++)l+=Number(g[h]);else for(let h=0;h<n;h++)l+=Number(g[i+h]);else for(let h=0;h<n;h++)l+=Number(A.iget(h));return l}}let B=r;if(B<0&&(B=o+B),B<0||B>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let s=bF(e),C=Array.from(t).filter((y,l)=>l!==B);if(C.length===0){let y=BI(A);if(!I)return y;let l=d.zeros(Array(o).fill(1),s);return l.iset(0,y),l}let E=d.zeros(C,s),u=E.data,f=t[B],m=C.reduce((y,l)=>y*l,1);if(a&&!k(e)){let y=t.slice(0,B).reduce((b,p)=>b*p,1),l=t.slice(B+1).reduce((b,p)=>b*p,1),h=Kp(A,y,f,l);if(h){let b=I?t.map((w,N)=>N===B?1:w):C;if(s==="float64")return d.fromData(h.data,b,s);if(s==="float32"){let w=new Float32Array(h.data.length),N=h.data;for(let F=0;F<N.length;F++)w[F]=N[F];return d.fromData(w,b,s)}let p=h.data;for(let w=0;w<p.length;w++)u[w]=u instanceof BigInt64Array||u instanceof BigUint64Array?BigInt(Math.round(p[w])):p[w];return I?d.fromData(u,b,s):E}}let{baseOffsets:c,axisStride:D}=gA(t,Q,i,B,m);if(k(e)){let y=g,l=u;if(e==="complex64")for(let h=0;h<m;h++){DA[0]=0,DA[1]=0;let b=c[h];for(let p=0;p<f;p++)DA[0]+=y[b*2],DA[1]+=y[b*2+1],b+=D;l[h*2]=DA[0],l[h*2+1]=DA[1]}else for(let h=0;h<m;h++){let b=0,p=0,w=c[h];for(let N=0;N<f;N++)b+=y[w*2],p+=y[w*2+1],w+=D;l[h*2]=b,l[h*2+1]=p}}else if(L(e)){let y=g,l=u;for(let h=0;h<m;h++){let b=BigInt(0),p=c[h];for(let w=0;w<f;w++)b+=y[p],p+=D;l[h]=b}}else if(L(s)){let y=u;for(let l=0;l<m;l++){let h=0,b=c[l];for(let p=0;p<f;p++)h+=Number(g[b]),b+=D;y[l]=BigInt(Math.round(h))}}else if(e==="float32")for(let y=0;y<m;y++){DA[0]=0;let l=c[y];for(let h=0;h<f;h++)DA[0]+=Number(g[l]),l+=D;u[y]=DA[0]}else for(let y=0;y<m;y++){let l=0,h=c[y];for(let b=0;b<f;b++)l+=Number(g[h]),h+=D;u[y]=l}if(I){let y=[...t];return y[B]=1,d.fromData(u,y,s)}return E}function TI(A,r,I=!1){let e=A.dtype,t=A.shape;if(r===void 0){let C=pN(A);if(C!==null)return C;let E=BI(A);return E instanceof T?new T(E.re/A.size,E.im/A.size):E/A.size}let o=r;if(o<0&&(o=t.length+o),o<0||o>=t.length)throw new Error(`axis ${r} is out of bounds for array of dimension ${t.length}`);if(A.isCContiguous&&!k(e)){let C=t[o],E=I?t.map((c,D)=>D===o?1:c):Array.from(t).filter((c,D)=>D!==o),u=t.slice(0,o).reduce((c,D)=>c*D,1),f=t.slice(o+1).reduce((c,D)=>c*D,1),m=wN(A,u,C,f);if(m)return d.fromData(m.data,E,"float64")}let n=BI(A,r,I);if(typeof n=="number")return n/t[o];if(n instanceof T)return new T(n.re/t[o],n.im/t[o]);let g=t[o],i=V3(e),Q=d.zeros(Array.from(n.shape),i),a=Q.data,B=n.data,s=n.dtype;if(k(e)){let C=B,E=a,u=n.size;for(let f=0;f<u;f++)E[f*2]=C[f*2]/g,E[f*2+1]=C[f*2+1]/g}else if(L(s)){let C=B;for(let E=0;E<a.length;E++)a[E]=Number(C[E])/g}else for(let C=0;C<a.length;C++)a[C]=Number(B[C])/g;return Q}function rI(A,r,I=!1){let e=A.dtype,t=A.shape,o=t.length,n=A.size,g=A.data,i=A.offset,Q=A.strides;if(k(e)){let c=g;if(r===void 0){if(n===0)throw new Error("max of empty array");let F=c[i*2],S=c[i*2+1];for(let x=1;x<n;x++){let H=c[(i+x)*2],X=c[(i+x)*2+1];if(isNaN(H)||isNaN(X))return new T(NaN,NaN);(H>F||H===F&&X>S)&&(F=H,S=X)}return isNaN(F)||isNaN(S)?new T(NaN,NaN):new T(F,S)}let D=r;if(D<0&&(D=o+D),D<0||D>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let y=Array.from(t).filter((F,S)=>S!==D);if(y.length===0){let F=rI(A);return I?LA(F,o,e):F}let l=d.zeros(y,e),h=l.data,b=t[D],p=y.reduce((F,S)=>F*S,1),{baseOffsets:w,axisStride:N}=gA(t,Q,i,D,p);for(let F=0;F<p;F++){let S=w[F],x=c[S*2],H=c[S*2+1];S+=N;for(let X=1;X<b;X++){let P=c[S*2],Z=c[S*2+1];if(S+=N,isNaN(P)||isNaN(Z)){x=NaN,H=NaN;break}(P>x||P===x&&Z>H)&&(x=P,H=Z)}h[F*2]=x,h[F*2+1]=H}if(I){let F=[...t];return F[D]=1,d.fromData(h,F,e)}return l}if(r===void 0){let c=Cw(A);if(c!==null)return c;if(n===0)throw new Error("max of empty array");if(A.isCContiguous){let D=g[i];if(i===0)for(let y=1;y<n;y++)g[y]>D&&(D=g[y]);else for(let y=1;y<n;y++)g[i+y]>D&&(D=g[i+y]);return Number(D)}else{let D=A.iget(0);for(let y=1;y<n;y++){let l=A.iget(y);l>D&&(D=l)}return Number(D)}}let a=r;if(a<0&&(a=o+a),a<0||a>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let B=Array.from(t).filter((c,D)=>D!==a);if(B.length===0){let c=rI(A);return I?LA(c,o,e):c}let s=d.zeros(B,e),C=s.data,E=t[a],u=B.reduce((c,D)=>c*D,1);if(A.isCContiguous&&!k(e)){let c=t.slice(0,a).reduce((l,h)=>l*h,1),D=t.slice(a+1).reduce((l,h)=>l*h,1),y=Ew(A,c,E,D);if(y){let l=I?t.map((h,b)=>b===a?1:h):B;return d.fromData(y.data,l,e)}}let{baseOffsets:f,axisStride:m}=gA(t,Q,i,a,u);if(L(e)){let c=g,D=C;for(let y=0;y<u;y++){let l=f[y],h=c[l];l+=m;for(let b=1;b<E;b++){let p=c[l];p>h&&(h=p),l+=m}D[y]=h}}else for(let c=0;c<u;c++){let D=-1/0,y=f[c];for(let l=0;l<E;l++){let h=Number(g[y]);h>D&&(D=h),y+=m}C[c]=D}if(I){let c=[...t];return c[a]=1,d.fromData(C,c,e)}return s}function ho(A,r,I=!1){let e=A.dtype,t=A.shape,o=t.length,n=A.size,g=A.data,i=A.offset,Q=A.strides,a=A.isCContiguous;if(r===void 0){let y=EF(A);if(y!==null)return y;if(k(e)){let l=1,h=0;if(a){let b=g;for(let p=0;p<n;p++){let w=b[(i+p)*2],N=b[(i+p)*2+1],F=l*w-h*N,S=l*N+h*w;l=F,h=S}}else for(let b=0;b<n;b++){let p=A.iget(b),w=p.re,N=p.im,F=l*w-h*N,S=l*N+h*w;l=F,h=S}return new T(l,h)}else if(L(e)){let l=BigInt(1);if(a){let h=g;for(let b=0;b<n;b++)l*=h[i+b]}else for(let h=0;h<n;h++)l*=A.iget(h);return Number(l)}else if(e==="float32"){if(DA[0]=1,a)for(let l=0;l<n;l++)DA[0]*=Number(g[i+l]);else for(let l=0;l<n;l++)DA[0]*=Number(A.iget(l));return DA[0]}else{let l=1;if(a)if(i===0)for(let h=0;h<n;h++)l*=Number(g[h]);else for(let h=0;h<n;h++)l*=Number(g[i+h]);else for(let h=0;h<n;h++)l*=Number(A.iget(h));return l}}let B=r;if(B<0&&(B=o+B),B<0||B>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let s=bF(e),C=Array.from(t).filter((y,l)=>l!==B);if(C.length===0){let y=ho(A);return I?LA(y,o,s):y}let E=d.zeros(C,s),u=E.data,f=t[B],m=C.reduce((y,l)=>y*l,1);if(a&&!k(e)){let y=t.slice(0,B).reduce((b,p)=>b*p,1),l=t.slice(B+1).reduce((b,p)=>b*p,1),h=uF(A,y,f,l);if(h){let b=I?t.map((p,w)=>w===B?1:p):C;return d.fromData(h.data,b,s)}}let{baseOffsets:c,axisStride:D}=gA(t,Q,i,B,m);if(k(e)){let y=g,l=u;if(e==="complex64")for(let h=0;h<m;h++){DA[0]=1,DA[1]=0;let b=c[h];for(let p=0;p<f;p++){let w=y[b*2],N=y[b*2+1],F=DA[0],S=DA[1];DA[0]=F*w-S*N,DA[1]=F*N+S*w,b+=D}l[h*2]=DA[0],l[h*2+1]=DA[1]}else for(let h=0;h<m;h++){let b=1,p=0,w=c[h];for(let N=0;N<f;N++){let F=y[w*2],S=y[w*2+1],x=b*F-p*S,H=b*S+p*F;b=x,p=H,w+=D}l[h*2]=b,l[h*2+1]=p}}else if(L(e)){let y=g,l=u;for(let h=0;h<m;h++){let b=BigInt(1),p=c[h];for(let w=0;w<f;w++)b*=y[p],p+=D;l[h]=b}}else if(L(s)){let y=u;for(let l=0;l<m;l++){let h=BigInt(1),b=c[l];for(let p=0;p<f;p++)h*=BigInt(Number(g[b])),b+=D;y[l]=h}}else if(e==="float32")for(let y=0;y<m;y++){DA[0]=1;let l=c[y];for(let h=0;h<f;h++)DA[0]*=Number(g[l]),l+=D;u[y]=DA[0]}else for(let y=0;y<m;y++){let l=1,h=c[y];for(let b=0;b<f;b++)l*=Number(g[h]),h+=D;u[y]=l}if(I){let y=[...t];return y[B]=1,d.fromData(u,y,s)}return E}function II(A,r,I=!1){let e=A.dtype,t=A.shape,o=t.length,n=A.size,g=A.data,i=A.offset,Q=A.strides;if(k(e)){let c=g;if(r===void 0){if(n===0)throw new Error("min of empty array");let F=c[i*2],S=c[i*2+1];for(let x=1;x<n;x++){let H=c[(i+x)*2],X=c[(i+x)*2+1];if(isNaN(H)||isNaN(X))return new T(NaN,NaN);(H<F||H===F&&X<S)&&(F=H,S=X)}return isNaN(F)||isNaN(S)?new T(NaN,NaN):new T(F,S)}let D=r;if(D<0&&(D=o+D),D<0||D>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let y=Array.from(t).filter((F,S)=>S!==D);if(y.length===0){let F=II(A);return I?LA(F,o,e):F}let l=d.zeros(y,e),h=l.data,b=t[D],p=y.reduce((F,S)=>F*S,1),{baseOffsets:w,axisStride:N}=gA(t,Q,i,D,p);for(let F=0;F<p;F++){let S=w[F],x=c[S*2],H=c[S*2+1];S+=N;for(let X=1;X<b;X++){let P=c[S*2],Z=c[S*2+1];if(S+=N,isNaN(P)||isNaN(Z)){x=NaN,H=NaN;break}(P<x||P===x&&Z<H)&&(x=P,H=Z)}h[F*2]=x,h[F*2+1]=H}if(I){let F=[...t];return F[D]=1,d.fromData(h,F,e)}return l}if(r===void 0){let c=xw(A);if(c!==null)return c;if(n===0)throw new Error("min of empty array");if(A.isCContiguous){let D=g[i];if(i===0)for(let y=1;y<n;y++)g[y]<D&&(D=g[y]);else for(let y=1;y<n;y++)g[i+y]<D&&(D=g[i+y]);return Number(D)}else{let D=A.iget(0);for(let y=1;y<n;y++){let l=A.iget(y);l<D&&(D=l)}return Number(D)}}let a=r;if(a<0&&(a=o+a),a<0||a>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let B=Array.from(t).filter((c,D)=>D!==a);if(B.length===0){let c=II(A);return I?LA(c,o,e):c}let s=d.zeros(B,e),C=s.data,E=t[a],u=B.reduce((c,D)=>c*D,1);if(A.isCContiguous&&!k(e)){let c=t.slice(0,a).reduce((l,h)=>l*h,1),D=t.slice(a+1).reduce((l,h)=>l*h,1),y=Jw(A,c,E,D);if(y){let l=I?t.map((h,b)=>b===a?1:h):B;return d.fromData(y.data,l,e)}}let{baseOffsets:f,axisStride:m}=gA(t,Q,i,a,u);if(L(e)){let c=g,D=C;for(let y=0;y<u;y++){let l=f[y],h=c[l];l+=m;for(let b=1;b<E;b++){let p=c[l];p<h&&(h=p),l+=m}D[y]=h}}else for(let c=0;c<u;c++){let D=1/0,y=f[c];for(let l=0;l<E;l++){let h=Number(g[y]);h<D&&(D=h),y+=m}C[c]=D}if(I){let c=[...t];return c[a]=1,d.fromData(C,c,e)}return s}function gr(A,r,I,e){return A<I?-1:A>I?1:r<e?-1:r>e?1:0}function Lg(A,r){let I=A.dtype,e=k(I),t=A.shape,o=t.length,n=A.size,g=A.data,i=A.offset,Q=A.strides,a=A.isCContiguous;if(r===void 0){let D=IN(A);if(D!==null)return D;if(n===0)throw new Error("argmin of empty array");if(e)if(a){let y=g,l=y[i*2],h=y[i*2+1],b=0;for(let p=1;p<n;p++){let w=y[(i+p)*2],N=y[(i+p)*2+1];gr(w,N,l,h)<0&&(l=w,h=N,b=p)}return b}else{let y=A.iget(0),l=y.re,h=y.im,b=0;for(let p=1;p<n;p++){let w=A.iget(p);gr(w.re,w.im,l,h)<0&&(l=w.re,h=w.im,b=p)}return b}if(a){let y=g[i],l=0;if(i===0)for(let h=1;h<n;h++)g[h]<y&&(y=g[h],l=h);else for(let h=1;h<n;h++)g[i+h]<y&&(y=g[i+h],l=h);return l}else{let y=A.iget(0),l=0;for(let h=1;h<n;h++){let b=A.iget(h);b<y&&(y=b,l=h)}return l}}let B=r;if(B<0&&(B=o+B),B<0||B>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let s=Array.from(t).filter((D,y)=>y!==B);if(s.length===0)return Lg(A);let C=d.zeros(s,"int32"),E=C.data,u=t[B],f=s.reduce((D,y)=>D*y,1),{baseOffsets:m,axisStride:c}=gA(t,Q,i,B,f);if(e){let D=g;for(let y=0;y<f;y++){let l=m[y],h=D[l*2],b=D[l*2+1],p=0;l+=c;for(let w=1;w<u;w++){let N=D[l*2],F=D[l*2+1];gr(N,F,h,b)<0&&(h=N,b=F,p=w),l+=c}E[y]=p}}else if(L(I)){let D=g;for(let y=0;y<f;y++){let l=m[y],h=D[l],b=0;l+=c;for(let p=1;p<u;p++){let w=D[l];w<h&&(h=w,b=p),l+=c}E[y]=b}}else for(let D=0;D<f;D++){let y=1/0,l=0,h=m[D];for(let b=0;b<u;b++){let p=Number(g[h]);p<y&&(y=p,l=b),h+=c}E[D]=l}return C}function Hg(A,r){let I=A.dtype,e=k(I),t=A.shape,o=t.length,n=A.size,g=A.data,i=A.offset,Q=A.strides,a=A.isCContiguous;if(r===void 0){let D=Kw(A);if(D!==null)return D;if(n===0)throw new Error("argmax of empty array");if(e)if(a){let y=g,l=y[i*2],h=y[i*2+1],b=0;for(let p=1;p<n;p++){let w=y[(i+p)*2],N=y[(i+p)*2+1];gr(w,N,l,h)>0&&(l=w,h=N,b=p)}return b}else{let y=A.iget(0),l=y.re,h=y.im,b=0;for(let p=1;p<n;p++){let w=A.iget(p);gr(w.re,w.im,l,h)>0&&(l=w.re,h=w.im,b=p)}return b}if(a){let y=g[i],l=0;for(let h=1;h<n;h++)g[i+h]>y&&(y=g[i+h],l=h);return l}else{let y=A.iget(0),l=0;for(let h=1;h<n;h++){let b=A.iget(h);b>y&&(y=b,l=h)}return l}}let B=r;if(B<0&&(B=o+B),B<0||B>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let s=Array.from(t).filter((D,y)=>y!==B);if(s.length===0)return Hg(A);let C=d.zeros(s,"int32"),E=C.data,u=t[B],f=s.reduce((D,y)=>D*y,1),{baseOffsets:m,axisStride:c}=gA(t,Q,i,B,f);if(e){let D=g;for(let y=0;y<f;y++){let l=m[y],h=D[l*2],b=D[l*2+1],p=0;l+=c;for(let w=1;w<u;w++){let N=D[l*2],F=D[l*2+1];gr(N,F,h,b)>0&&(h=N,b=F,p=w),l+=c}E[y]=p}}else if(L(I)){let D=g;for(let y=0;y<f;y++){let l=m[y],h=D[l],b=0;l+=c;for(let p=1;p<u;p++){let w=D[l];w>h&&(h=w,b=p),l+=c}E[y]=b}}else for(let D=0;D<f;D++){let y=-1/0,l=0,h=m[D];for(let b=0;b<u;b++){let p=Number(g[h]);p>y&&(y=p,l=b),h+=c}E[D]=l}return C}function bo(A,r,I=0,e=!1){let t=A.dtype,o=A.shape,n=o.length,g=A.size,i=A.data,Q=A.offset,a=A.strides,B=TI(A,r,e),s=A.isCContiguous;if(r===void 0){let b=UN(A);if(b!==null)return b;if(k(t)){let N=B,F=0;if(s){let S=i;for(let x=0;x<g;x++){let H=S[(Q+x)*2],X=S[(Q+x)*2+1],P=H-N.re,Z=X-N.im;F+=P*P+Z*Z}}else for(let S=0;S<g;S++){let x=A.iget(S),H=x.re-N.re,X=x.im-N.im;F+=H*H+X*X}return F/(g-I)}let p=B,w=0;if(s)for(let N=0;N<g;N++){let F=Number(i[Q+N])-p;w+=F*F}else for(let N=0;N<g;N++){let F=Number(A.iget(N))-p;w+=F*F}return w/(g-I)}let C=r;if(C<0&&(C=n+C),C<0||C>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);let E=o[C],u=B,f=u.data,m=e?u.shape:Array.from(o).filter((b,p)=>p!==C),c=d.zeros(Array.from(m),"float64"),D=c.data,y=m.reduce((b,p)=>b*p,1),{baseOffsets:l,axisStride:h}=gA(o,a,Q,C,y);if(k(t)){let b=i,p=f;for(let w=0;w<y;w++){let N=0,F=p[w*2],S=p[w*2+1],x=l[w];for(let H=0;H<E;H++){let X=b[x*2],P=b[x*2+1],Z=X-F,V=P-S;N+=Z*Z+V*V,x+=h}D[w]=N/(E-I)}}else for(let b=0;b<y;b++){let p=0,w=Number(f[b]),N=l[b];for(let F=0;F<E;F++){let S=Number(i[N])-w;p+=S*S,N+=h}D[b]=p/(E-I)}return c}function dE(A,r,I=0,e=!1){let t=bo(A,r,I,e);if(typeof t=="number")return Math.sqrt(t);let o=d.zeros(Array.from(t.shape),"float64"),n=t.data,g=o.data;for(let i=0;i<n.length;i++)g[i]=Math.sqrt(Number(n[i]));return o}function _g(A,r,I=!1){let e=A.shape,t=e.length,o=A.size,n=A.data,g=A.offset,i=A.strides,Q=A.isCContiguous;if(r===void 0){let c=dF(A);if(c!==null)return c===1;if(Q){for(let D=0;D<o;D++)if(!n[g+D])return!1}else for(let D=0;D<o;D++)if(!A.iget(D))return!1;return!0}let a=r;if(a<0&&(a=t+a),a<0||a>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let B=Array.from(e).filter((c,D)=>D!==a);if(B.length===0){let c=_g(A);if(!I)return c;let D=d.zeros(Array(t).fill(1),"bool");return D.iset(0,c?1:0),D}let s=d.zeros(B,"bool"),C=s.data,E=e[a],u=B.reduce((c,D)=>c*D,1),{baseOffsets:f,axisStride:m}=gA(e,i,g,a,u);for(let c=0;c<u;c++){let D=!0,y=f[c];for(let l=0;l<E;l++){if(!n[y]){D=!1;break}y+=m}C[c]=D?1:0}if(I){let c=[...e];return c[a]=1,d.fromData(C,c,"bool")}return s}function Yg(A,r,I=!1){let e=A.shape,t=e.length,o=A.size,n=A.data,g=A.offset,i=A.strides,Q=A.isCContiguous;if(r===void 0){let c=yF(A);if(c!==null)return c===1;if(Q){for(let D=0;D<o;D++)if(n[g+D])return!0}else for(let D=0;D<o;D++)if(A.iget(D))return!0;return!1}let a=r;if(a<0&&(a=t+a),a<0||a>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let B=Array.from(e).filter((c,D)=>D!==a);if(B.length===0){let c=Yg(A);if(!I)return c;let D=d.zeros(Array(t).fill(1),"bool");return D.iset(0,c?1:0),D}let s=d.zeros(B,"bool"),C=s.data,E=e[a],u=B.reduce((c,D)=>c*D,1),{baseOffsets:f,axisStride:m}=gA(e,i,g,a,u);for(let c=0;c<u;c++){let D=!1,y=f[c];for(let l=0;l<E;l++){if(n[y]){D=!0;break}y+=m}C[c]=D?1:0}if(I){let c=[...e];return c[a]=1,d.fromData(C,c,"bool")}return s}function bE(A,r){let I=A.dtype,e=A.shape,t=e.length,o=A.data,n=A.offset,g=A.strides,i=A.isCContiguous;if(k(I)){let D=o,y=A.size;if(r===void 0){let P=d.zeros([y],I),Z=P.data,V=0,$=0;if(i)for(let O=0;O<y;O++)V+=D[(n+O)*2],$+=D[(n+O)*2+1],Z[O*2]=V,Z[O*2+1]=$;else for(let O=0;O<y;O++){let z=A.iget(O);V+=z.re,$+=z.im,Z[O*2]=V,Z[O*2+1]=$}return P}let l=r;if(l<0&&(l=t+l),l<0||l>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let h=d.zeros([...e],I),b=h.data,p=e[l],w=Array.from(e).filter((P,Z)=>Z!==l),N=w.length===0?1:w.reduce((P,Z)=>P*Z,1),{baseOffsets:F,axisStride:S}=gA(e,g,n,l,N),x=pr(e),{baseOffsets:H,axisStride:X}=gA(e,x,0,l,N);for(let P=0;P<N;P++){let Z=F[P],V=H[P],$=0,O=0;for(let z=0;z<p;z++)$+=D[Z*2],O+=D[Z*2+1],b[V*2]=$,b[V*2+1]=O,Z+=S,V+=X}return h}if(r===void 0){let D=A.size,y=new Float64Array(D),l=0;if(i)for(let h=0;h<D;h++)l+=Number(o[n+h]),y[h]=l;else for(let h=0;h<D;h++)l+=Number(A.iget(h)),y[h]=l;return d.fromData(y,[D],"float64")}let Q=r;if(Q<0&&(Q=t+Q),Q<0||Q>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let a=new Float64Array(A.size),B=e[Q],s=Array.from(e).filter((D,y)=>y!==Q),C=s.length===0?1:s.reduce((D,y)=>D*y,1),{baseOffsets:E,axisStride:u}=gA(e,g,n,Q,C),f=pr(e),{baseOffsets:m,axisStride:c}=gA(e,f,0,Q,C);for(let D=0;D<C;D++){let y=E[D],l=m[D],h=0;for(let b=0;b<B;b++)h+=Number(o[y]),a[l]=h,y+=u,l+=c}return d.fromData(a,[...e],"float64")}function pE(A,r){let I=A.dtype,e=A.shape,t=e.length,o=A.data,n=A.offset,g=A.strides,i=A.isCContiguous;if(k(I)){let D=o,y=A.size;if(r===void 0){let P=d.zeros([y],I),Z=P.data,V=1,$=0;if(i)for(let O=0;O<y;O++){let z=D[(n+O)*2],rA=D[(n+O)*2+1],oA=V*z-$*rA,iA=V*rA+$*z;V=oA,$=iA,Z[O*2]=V,Z[O*2+1]=$}else for(let O=0;O<y;O++){let z=A.iget(O),rA=z.re,oA=z.im,iA=V*rA-$*oA,CA=V*oA+$*rA;V=iA,$=CA,Z[O*2]=V,Z[O*2+1]=$}return P}let l=r;if(l<0&&(l=t+l),l<0||l>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let h=d.zeros([...e],I),b=h.data,p=e[l],w=Array.from(e).filter((P,Z)=>Z!==l),N=w.length===0?1:w.reduce((P,Z)=>P*Z,1),{baseOffsets:F,axisStride:S}=gA(e,g,n,l,N),x=pr(e),{baseOffsets:H,axisStride:X}=gA(e,x,0,l,N);for(let P=0;P<N;P++){let Z=F[P],V=H[P],$=1,O=0;for(let z=0;z<p;z++){let rA=D[Z*2],oA=D[Z*2+1],iA=$*rA-O*oA,CA=$*oA+O*rA;$=iA,O=CA,b[V*2]=$,b[V*2+1]=O,Z+=S,V+=X}}return h}if(r===void 0){let D=A.size,y=new Float64Array(D),l=1;if(i)for(let h=0;h<D;h++)l*=Number(o[n+h]),y[h]=l;else for(let h=0;h<D;h++)l*=Number(A.iget(h)),y[h]=l;return d.fromData(y,[D],"float64")}let Q=r;if(Q<0&&(Q=t+Q),Q<0||Q>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let a=new Float64Array(A.size),B=e[Q],s=Array.from(e).filter((D,y)=>y!==Q),C=s.length===0?1:s.reduce((D,y)=>D*y,1),{baseOffsets:E,axisStride:u}=gA(e,g,n,Q,C),f=pr(e),{baseOffsets:m,axisStride:c}=gA(e,f,0,Q,C);for(let D=0;D<C;D++){let y=E[D],l=m[D],h=1;for(let b=0;b<B;b++)h*=Number(o[y]),a[l]=h,y+=u,l+=c}return d.fromData(a,[...e],"float64")}function pF(A,r,I=!1){let e=A.dtype;if(k(e)){let s=rI(A,r,I),C=II(A,r,I);if(s instanceof T&&C instanceof T)return new T(s.re-C.re,s.im-C.im);let E=s,u=C,f=E.data,m=u.data,c=new Float64Array(E.size*2);for(let D=0;D<E.size;D++)c[D*2]=f[D*2]-m[D*2],c[D*2+1]=f[D*2+1]-m[D*2+1];return d.fromData(c,[...E.shape],e)}let t=rI(A,r,I),o=II(A,r,I);if(typeof t=="number"&&typeof o=="number"){let s=t-o;if(e==="int8"||e==="int16"||e==="int32"||e==="uint8"||e==="uint16"||e==="uint32"){let C=d.zeros([1],e);return C.iset(0,s),Number(C.iget(0))}return s}let n=t,g=o,i=n.data,Q=g.data,a=d.zeros([...n.shape],e),B=a.data;for(let s=0;s<n.size;s++)B[s]=Number(i[s])-Number(Q[s]);return a}function vg(A,r,I=!1){return PI(A,.5,r,I)}function wF(A,r,I,e=!1){return PI(A,r/100,I,e)}function PI(A,r,I,e=!1){if(eA(A.dtype,"quantile","Complex numbers are not orderable."),r<0||r>1)throw new Error("Quantile must be between 0 and 1");let t=A.shape,o=t.length,n=A.data,g=A.offset,i=A.strides;if(I===void 0){let m=DF(A,r);if(m!==null)return m;let c=[];if(A.isCContiguous)for(let w=0;w<A.size;w++)c.push(Number(n[g+w]));else for(let w=0;w<A.size;w++)c.push(Number(A.iget(w)));c.sort((w,N)=>w-N);let y=c.length,l=r*(y-1),h=Math.floor(l),b=Math.ceil(l);if(h===b)return c[h];let p=l-h;return c[h]*(1-p)+c[b]*p}let Q=I;if(Q<0&&(Q=o+Q),Q<0||Q>=o)throw new Error(`axis ${I} is out of bounds for array of dimension ${o}`);let a=Array.from(t).filter((m,c)=>c!==Q);if(a.length===0){let m=PI(A,r);if(!e)return m;let c=d.zeros(Array(o).fill(1),"float64");return c.iset(0,m),c}let B=a.reduce((m,c)=>m*c,1),s=t[Q],C=new Float64Array(B),{baseOffsets:E,axisStride:u}=gA(t,i,g,Q,B);for(let m=0;m<B;m++){let c=[],D=E[m];for(let p=0;p<s;p++)c.push(Number(n[D])),D+=u;c.sort((p,w)=>p-w);let y=c.length,l=r*(y-1),h=Math.floor(l),b=Math.ceil(l);if(h===b)C[m]=c[h];else{let p=l-h;C[m]=c[h]*(1-p)+c[b]*p}}let f=d.fromData(C,a,"float64");if(e){let m=[...t];return m[Q]=1,d.fromData(C,m,"float64")}return f}function xg(A,r,I,e=!1){let t=A.dtype,o=A.shape,n=o.length,g=A.data,i=A.offset,Q=A.strides;if(I===void 0)return TI(A,r,e);if(k(t)){let y=g,l=I.data,h=I.offset;if(r===void 0){let X=0,P=0,Z=0;if(A.isCContiguous)for(let $=0;$<A.size;$++){let O=Number(l[h+$%I.size]),z=y[(i+$)*2],rA=y[(i+$)*2+1];X+=z*O,P+=rA*O,Z+=O}else for(let $=0;$<A.size;$++){let O=Number(l[h+$%I.size]),z=A.iget($);X+=z.re*O,P+=z.im*O,Z+=O}return Z===0?new T(NaN,NaN):new T(X/Z,P/Z)}let b=r;if(b<0&&(b=n+b),b<0||b>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);let p=Array.from(o).filter((X,P)=>P!==b);if(p.length===0){let X=xg(A,void 0,I);return e?LA(X,n,t):X}let w=p.reduce((X,P)=>X*P,1),N=o[b],F=d.zeros(p,t),S=F.data,{baseOffsets:x,axisStride:H}=gA(o,Q,i,b,w);for(let X=0;X<w;X++){let P=0,Z=0,V=0,$=x[X];for(let O=0;O<N;O++){let z=Number(l[h+O%I.size]),rA=y[$*2],oA=y[$*2+1];P+=rA*z,Z+=oA*z,V+=z,$+=H}V===0?(S[X*2]=NaN,S[X*2+1]=NaN):(S[X*2]=P/V,S[X*2+1]=Z/V)}if(e){let X=[...o];return X[b]=1,d.fromData(S,X,t)}return F}let a=I.offset;if(r===void 0){let y=0,l=0,h=I.data;if(A.isCContiguous)for(let p=0;p<A.size;p++){let w=Number(h[a+p%I.size]);y+=Number(g[i+p])*w,l+=w}else for(let p=0;p<A.size;p++){let w=Number(h[a+p%I.size]);y+=Number(A.iget(p))*w,l+=w}return l===0?NaN:y/l}let B=r;if(B<0&&(B=n+B),B<0||B>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);let s=Array.from(o).filter((y,l)=>l!==B);if(s.length===0){let y=xg(A,void 0,I);return e?LA(y,n,"float64"):y}let C=s.reduce((y,l)=>y*l,1),E=o[B],u=I.data,f=new Float64Array(C),{baseOffsets:m,axisStride:c}=gA(o,Q,i,B,C);for(let y=0;y<C;y++){let l=0,h=0,b=m[y];for(let p=0;p<E;p++){let w=Number(u[a+p%I.size]);l+=Number(g[b])*w,h+=w,b+=c}f[y]=h===0?NaN:l/h}let D=d.fromData(f,s,"float64");if(e){let y=[...o];return y[B]=1,d.fromData(f,y,"float64")}return D}function cA(A,r){return isNaN(A)||isNaN(r)}function Xg(A,r,I=!1){let e=A.dtype,t=k(e),o=A.shape,n=o.length,g=A.data,i=A.offset,Q=A.strides;if(!t&&!fA(e))return BI(A,r,I);if(r===void 0){let c=YN(A);if(c!==null)return c;if(t){let l=g,h=0,b=0;if(A.isCContiguous)for(let w=0;w<A.size;w++){let N=l[(i+w)*2],F=l[(i+w)*2+1];cA(N,F)||(h+=N,b+=F)}else for(let w=0;w<A.size;w++){let N=A.iget(w),F=N.re,S=N.im;cA(F,S)||(h+=F,b+=S)}return new T(h,b)}let D=0;if(A.isCContiguous)for(let l=0;l<A.size;l++){let h=Number(g[i+l]);isNaN(h)||(D+=h)}else for(let l=0;l<A.size;l++){let h=Number(A.iget(l));isNaN(h)||(D+=h)}return D}let a=r;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);let B=Array.from(o).filter((c,D)=>D!==a);if(B.length===0){let c=Xg(A);return I?LA(c,n,e):c}let s=B.reduce((c,D)=>c*D,1),C=o[a],{baseOffsets:E,axisStride:u}=gA(o,Q,i,a,s);if(t){let c=g,D=new Float64Array(s*2);for(let y=0;y<s;y++){let l=0,h=0,b=E[y];for(let p=0;p<C;p++){let w=c[b*2],N=c[b*2+1];cA(w,N)||(l+=w,h+=N),b+=u}D[y*2]=l,D[y*2+1]=h}if(I){let y=[...o];return y[a]=1,d.fromData(D,y,e)}return d.fromData(D,B,e)}let f=new Float64Array(s);for(let c=0;c<s;c++){let D=0,y=E[c];for(let l=0;l<C;l++){let h=Number(g[y]);isNaN(h)||(D+=h),y+=u}f[c]=D}let m=d.fromData(f,B,"float64");if(I){let c=[...o];return c[a]=1,d.fromData(f,c,"float64")}return m}function Tg(A,r,I=!1){let e=A.dtype,t=k(e);if(!t&&!fA(e))return ho(A,r,I);let o=A.shape,n=o.length,g=A.data,i=A.offset,Q=A.strides;if(r===void 0){if(t){let y=g,l=1,h=0;if(A.isCContiguous)for(let p=0;p<A.size;p++){let w=y[(i+p)*2],N=y[(i+p)*2+1];if(!cA(w,N)){let F=l*w-h*N,S=l*N+h*w;l=F,h=S}}else for(let p=0;p<A.size;p++){let w=A.iget(p),N=w.re,F=w.im;if(!cA(N,F)){let S=l*N-h*F,x=l*F+h*N;l=S,h=x}}return new T(l,h)}let c=1;if(A.isCContiguous)for(let y=0;y<A.size;y++){let l=Number(g[i+y]);isNaN(l)||(c*=l)}else for(let y=0;y<A.size;y++){let l=Number(A.iget(y));isNaN(l)||(c*=l)}return c}let a=r;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);let B=Array.from(o).filter((c,D)=>D!==a);if(B.length===0){let c=Tg(A);return I?LA(c,n,e):c}let s=B.reduce((c,D)=>c*D,1),C=o[a],{baseOffsets:E,axisStride:u}=gA(o,Q,i,a,s);if(t){let c=g,D=new Float64Array(s*2);for(let y=0;y<s;y++){let l=1,h=0,b=E[y];for(let p=0;p<C;p++){let w=c[b*2],N=c[b*2+1];if(!cA(w,N)){let F=l*w-h*N,S=l*N+h*w;l=F,h=S}b+=u}D[y*2]=l,D[y*2+1]=h}if(I){let y=[...o];return y[a]=1,d.fromData(D,y,e)}return d.fromData(D,B,e)}let f=new Float64Array(s);for(let c=0;c<s;c++){let D=1,y=E[c];for(let l=0;l<C;l++){let h=Number(g[y]);isNaN(h)||(D*=h),y+=u}f[c]=D}let m=d.fromData(f,B,"float64");if(I){let c=[...o];return c[a]=1,d.fromData(f,c,"float64")}return m}function Pg(A,r,I=!1){let e=A.dtype,t=k(e);if(!t&&!fA(e))return TI(A,r,I);let o=A.shape,n=o.length,g=A.data,i=A.offset,Q=A.strides;if(r===void 0){if(t){let l=g,h=0,b=0,p=0;if(A.isCContiguous)for(let N=0;N<A.size;N++){let F=l[(i+N)*2],S=l[(i+N)*2+1];cA(F,S)||(h+=F,b+=S,p++)}else for(let N=0;N<A.size;N++){let F=A.iget(N),S=F.re,x=F.im;cA(S,x)||(h+=S,b+=x,p++)}return p===0?new T(NaN,NaN):new T(h/p,b/p)}let c=0,D=0;if(A.isCContiguous)for(let l=0;l<A.size;l++){let h=Number(g[i+l]);isNaN(h)||(c+=h,D++)}else for(let l=0;l<A.size;l++){let h=Number(A.iget(l));isNaN(h)||(c+=h,D++)}return D===0?NaN:c/D}let a=r;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);let B=Array.from(o).filter((c,D)=>D!==a);if(B.length===0){let c=Pg(A);return I?LA(c,n,e):c}let s=B.reduce((c,D)=>c*D,1),C=o[a],{baseOffsets:E,axisStride:u}=gA(o,Q,i,a,s);if(t){let c=g,D=new Float64Array(s*2);for(let y=0;y<s;y++){let l=0,h=0,b=0,p=E[y];for(let w=0;w<C;w++){let N=c[p*2],F=c[p*2+1];cA(N,F)||(l+=N,h+=F,b++),p+=u}b===0?(D[y*2]=NaN,D[y*2+1]=NaN):(D[y*2]=l/b,D[y*2+1]=h/b)}if(I){let y=[...o];return y[a]=1,d.fromData(D,y,e)}return d.fromData(D,B,e)}let f=new Float64Array(s);for(let c=0;c<s;c++){let D=0,y=0,l=E[c];for(let h=0;h<C;h++){let b=Number(g[l]);isNaN(b)||(D+=b,y++),l+=u}f[c]=y===0?NaN:D/y}let m=d.fromData(f,B,"float64");if(I){let c=[...o];return c[a]=1,d.fromData(f,c,"float64")}return m}function XI(A,r,I=0,e=!1){let t=A.dtype;if(!k(t)&&!fA(t))return bo(A,r,I,e);let o=A.shape,n=o.length,g=A.data,i=A.offset,Q=A.strides;if(k(t)){let c=g;if(r===void 0){let F=0,S=0,x=0,H=A.isCContiguous;if(H)for(let V=0;V<A.size;V++){let $=c[(i+V)*2],O=c[(i+V)*2+1];cA($,O)||(F+=$,S+=O,x++)}else for(let V=0;V<A.size;V++){let $=A.iget(V),O=$.re,z=$.im;cA(O,z)||(F+=O,S+=z,x++)}if(x-I<=0)return NaN;let X=F/x,P=S/x,Z=0;if(H)for(let V=0;V<A.size;V++){let $=c[(i+V)*2],O=c[(i+V)*2+1];if(!cA($,O)){let z=$-X,rA=O-P;Z+=z*z+rA*rA}}else for(let V=0;V<A.size;V++){let $=A.iget(V),O=$.re,z=$.im;if(!cA(O,z)){let rA=O-X,oA=z-P;Z+=rA*rA+oA*oA}}return Z/(x-I)}let D=r;if(D<0&&(D=n+D),D<0||D>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);let y=Array.from(o).filter((F,S)=>S!==D);if(y.length===0){let F=XI(A,void 0,I);return e?LA(F,n,"float64"):F}let l=y.reduce((F,S)=>F*S,1),h=o[D],b=new Float64Array(l),{baseOffsets:p,axisStride:w}=gA(o,Q,i,D,l);for(let F=0;F<l;F++){let S=0,x=0,H=0,X=p[F];for(let $=0;$<h;$++){let O=c[X*2],z=c[X*2+1];cA(O,z)||(S+=O,x+=z,H++),X+=w}if(H-I<=0){b[F]=NaN;continue}let P=S/H,Z=x/H,V=0;X=p[F];for(let $=0;$<h;$++){let O=c[X*2],z=c[X*2+1];if(!cA(O,z)){let rA=O-P,oA=z-Z;V+=rA*rA+oA*oA}X+=w}b[F]=V/(H-I)}let N=d.fromData(b,y,"float64");if(e){let F=[...o];return F[D]=1,d.fromData(b,F,"float64")}return N}if(r===void 0){let c=0,D=0,y=A.isCContiguous;if(y)for(let b=0;b<A.size;b++){let p=Number(g[i+b]);isNaN(p)||(c+=p,D++)}else for(let b=0;b<A.size;b++){let p=Number(A.iget(b));isNaN(p)||(c+=p,D++)}if(D-I<=0)return NaN;let l=c/D,h=0;if(y)for(let b=0;b<A.size;b++){let p=Number(g[i+b]);isNaN(p)||(h+=(p-l)**2)}else for(let b=0;b<A.size;b++){let p=Number(A.iget(b));isNaN(p)||(h+=(p-l)**2)}return h/(D-I)}let a=r;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);let B=Array.from(o).filter((c,D)=>D!==a);if(B.length===0){let c=XI(A,void 0,I);return e?LA(c,n,"float64"):c}let s=B.reduce((c,D)=>c*D,1),C=o[a],E=new Float64Array(s),{baseOffsets:u,axisStride:f}=gA(o,Q,i,a,s);for(let c=0;c<s;c++){let D=0,y=0,l=u[c];for(let p=0;p<C;p++){let w=Number(g[l]);isNaN(w)||(D+=w,y++),l+=f}if(y-I<=0){E[c]=NaN;continue}let h=D/y,b=0;l=u[c];for(let p=0;p<C;p++){let w=Number(g[l]);isNaN(w)||(b+=(w-h)**2),l+=f}E[c]=b/(y-I)}let m=d.fromData(E,B,"float64");if(e){let c=[...o];return c[a]=1,d.fromData(E,c,"float64")}return m}function wE(A,r,I=0,e=!1){let t=XI(A,r,I,e);if(typeof t=="number")return Math.sqrt(t);let o=t,n=new Float64Array(o.size);for(let g=0;g<o.size;g++)n[g]=Math.sqrt(Number(o.data[g]));return d.fromData(n,[...o.shape],"float64")}function yo(A,r,I=!1){let e=A.dtype,t=A.shape,o=t.length,n=A.data,g=A.offset,i=A.strides;if(!k(e)&&!fA(e))return II(A,r,I);if(k(e)){let m=n;if(r===void 0){let N=1/0,F=1/0,S=!1;if(A.isCContiguous)for(let H=0;H<A.size;H++){let X=m[(g+H)*2],P=m[(g+H)*2+1];isNaN(X)||isNaN(P)||(S?(X<N||X===N&&P<F)&&(N=X,F=P):(N=X,F=P,S=!0))}else for(let H=0;H<A.size;H++){let X=A.iget(H),P=X.re,Z=X.im;isNaN(P)||isNaN(Z)||(S?(P<N||P===N&&Z<F)&&(N=P,F=Z):(N=P,F=Z,S=!0))}return S?new T(N,F):new T(NaN,NaN)}let c=r;if(c<0&&(c=o+c),c<0||c>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let D=Array.from(t).filter((N,F)=>F!==c);if(D.length===0){let N=yo(A);return I?LA(N,o,e):N}let y=D.reduce((N,F)=>N*F,1),l=t[c],h=new Float64Array(y*2),{baseOffsets:b,axisStride:p}=gA(t,i,g,c,y);for(let N=0;N<y;N++){let F=1/0,S=1/0,x=!1,H=b[N];for(let X=0;X<l;X++){let P=m[H*2],Z=m[H*2+1];H+=p,!(isNaN(P)||isNaN(Z))&&(x?(P<F||P===F&&Z<S)&&(F=P,S=Z):(F=P,S=Z,x=!0))}h[N*2]=x?F:NaN,h[N*2+1]=x?S:NaN}let w=d.fromData(h,D,e);if(I){let N=[...t];return N[c]=1,d.fromData(h,N,e)}return w}if(r===void 0){let m=PN(A);if(m!==null)return m;let c=1/0;if(A.isCContiguous)for(let y=0;y<A.size;y++){let l=Number(n[g+y]);!isNaN(l)&&l<c&&(c=l)}else for(let y=0;y<A.size;y++){let l=Number(A.iget(y));!isNaN(l)&&l<c&&(c=l)}return c===1/0?NaN:c}let Q=r;if(Q<0&&(Q=o+Q),Q<0||Q>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let a=Array.from(t).filter((m,c)=>c!==Q);if(a.length===0){let m=yo(A);return I?LA(m,o,"float64"):m}let B=a.reduce((m,c)=>m*c,1),s=t[Q],C=new Float64Array(B),{baseOffsets:E,axisStride:u}=gA(t,i,g,Q,B);for(let m=0;m<B;m++){let c=1/0,D=E[m];for(let y=0;y<s;y++){let l=Number(n[D]);!isNaN(l)&&l<c&&(c=l),D+=u}C[m]=c===1/0?NaN:c}let f=d.fromData(C,a,"float64");if(I){let m=[...t];return m[Q]=1,d.fromData(C,m,"float64")}return f}function lo(A,r,I=!1){let e=A.dtype,t=A.shape,o=t.length,n=A.data,g=A.offset,i=A.strides;if(!k(e)&&!fA(e))return rI(A,r,I);if(k(e)){let m=n;if(r===void 0){let N=-1/0,F=-1/0,S=!1;if(A.isCContiguous)for(let H=0;H<A.size;H++){let X=m[(g+H)*2],P=m[(g+H)*2+1];isNaN(X)||isNaN(P)||(S?(X>N||X===N&&P>F)&&(N=X,F=P):(N=X,F=P,S=!0))}else for(let H=0;H<A.size;H++){let X=A.iget(H),P=X.re,Z=X.im;isNaN(P)||isNaN(Z)||(S?(P>N||P===N&&Z>F)&&(N=P,F=Z):(N=P,F=Z,S=!0))}return S?new T(N,F):new T(NaN,NaN)}let c=r;if(c<0&&(c=o+c),c<0||c>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let D=Array.from(t).filter((N,F)=>F!==c);if(D.length===0){let N=lo(A);return I?LA(N,o,e):N}let y=D.reduce((N,F)=>N*F,1),l=t[c],h=new Float64Array(y*2),{baseOffsets:b,axisStride:p}=gA(t,i,g,c,y);for(let N=0;N<y;N++){let F=-1/0,S=-1/0,x=!1,H=b[N];for(let X=0;X<l;X++){let P=m[H*2],Z=m[H*2+1];H+=p,!(isNaN(P)||isNaN(Z))&&(x?(P>F||P===F&&Z>S)&&(F=P,S=Z):(F=P,S=Z,x=!0))}h[N*2]=x?F:NaN,h[N*2+1]=x?S:NaN}let w=d.fromData(h,D,e);if(I){let N=[...t];return N[c]=1,d.fromData(h,N,e)}return w}if(r===void 0){let m=ON(A);if(m!==null)return m;let c=-1/0;if(A.isCContiguous)for(let y=0;y<A.size;y++){let l=Number(n[g+y]);!isNaN(l)&&l>c&&(c=l)}else for(let y=0;y<A.size;y++){let l=Number(A.iget(y));!isNaN(l)&&l>c&&(c=l)}return c===-1/0?NaN:c}let Q=r;if(Q<0&&(Q=o+Q),Q<0||Q>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let a=Array.from(t).filter((m,c)=>c!==Q);if(a.length===0){let m=lo(A);return I?LA(m,o,"float64"):m}let B=a.reduce((m,c)=>m*c,1),s=t[Q],C=new Float64Array(B),{baseOffsets:E,axisStride:u}=gA(t,i,g,Q,B);for(let m=0;m<B;m++){let c=-1/0,D=E[m];for(let y=0;y<s;y++){let l=Number(n[D]);!isNaN(l)&&l>c&&(c=l),D+=u}C[m]=c===-1/0?NaN:c}let f=d.fromData(C,a,"float64");if(I){let m=[...t];return m[Q]=1,d.fromData(C,m,"float64")}return f}function Jg(A,r){let I=A.dtype;if(!k(I)&&!fA(I))return Lg(A,r);let e=A.shape,t=e.length,o=A.data,n=A.offset,g=A.strides;if(k(I)){let u=o;if(r===void 0){let b=1/0,p=1/0,w=-1;if(A.isCContiguous)for(let F=0;F<A.size;F++){let S=u[(n+F)*2],x=u[(n+F)*2+1];!cA(S,x)&&gr(S,x,b,p)<0&&(b=S,p=x,w=F)}else for(let F=0;F<A.size;F++){let S=A.iget(F),x=S.re,H=S.im;!cA(x,H)&&gr(x,H,b,p)<0&&(b=x,p=H,w=F)}return w}let f=r;if(f<0&&(f=t+f),f<0||f>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let m=Array.from(e).filter((b,p)=>p!==f);if(m.length===0)return Jg(A);let c=m.reduce((b,p)=>b*p,1),D=e[f],y=new Int32Array(c),{baseOffsets:l,axisStride:h}=gA(e,g,n,f,c);for(let b=0;b<c;b++){let p=1/0,w=1/0,N=0,F=l[b];for(let S=0;S<D;S++){let x=u[F*2],H=u[F*2+1];!cA(x,H)&&gr(x,H,p,w)<0&&(p=x,w=H,N=S),F+=h}y[b]=N}return d.fromData(y,m,"int32")}if(r===void 0){let u=1/0,f=-1;if(A.isCContiguous)for(let c=0;c<A.size;c++){let D=Number(o[n+c]);!isNaN(D)&&D<u&&(u=D,f=c)}else for(let c=0;c<A.size;c++){let D=Number(A.iget(c));!isNaN(D)&&D<u&&(u=D,f=c)}return f}let i=r;if(i<0&&(i=t+i),i<0||i>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let Q=Array.from(e).filter((u,f)=>f!==i);if(Q.length===0)return Jg(A);let a=Q.reduce((u,f)=>u*f,1),B=e[i],s=new Int32Array(a),{baseOffsets:C,axisStride:E}=gA(e,g,n,i,a);for(let u=0;u<a;u++){let f=1/0,m=0,c=C[u];for(let D=0;D<B;D++){let y=Number(o[c]);!isNaN(y)&&y<f&&(f=y,m=D),c+=E}s[u]=m}return d.fromData(s,Q,"int32")}function Ug(A,r){let I=A.dtype;if(!k(I)&&!fA(I))return Hg(A,r);let e=A.shape,t=e.length,o=A.data,n=A.offset,g=A.strides;if(k(I)){let u=o;if(r===void 0){let b=-1/0,p=-1/0,w=-1;if(A.isCContiguous)for(let F=0;F<A.size;F++){let S=u[(n+F)*2],x=u[(n+F)*2+1];!cA(S,x)&&gr(S,x,b,p)>0&&(b=S,p=x,w=F)}else for(let F=0;F<A.size;F++){let S=A.iget(F),x=S.re,H=S.im;!cA(x,H)&&gr(x,H,b,p)>0&&(b=x,p=H,w=F)}return w}let f=r;if(f<0&&(f=t+f),f<0||f>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let m=Array.from(e).filter((b,p)=>p!==f);if(m.length===0)return Ug(A);let c=m.reduce((b,p)=>b*p,1),D=e[f],y=new Int32Array(c),{baseOffsets:l,axisStride:h}=gA(e,g,n,f,c);for(let b=0;b<c;b++){let p=-1/0,w=-1/0,N=0,F=l[b];for(let S=0;S<D;S++){let x=u[F*2],H=u[F*2+1];!cA(x,H)&&gr(x,H,p,w)>0&&(p=x,w=H,N=S),F+=h}y[b]=N}return d.fromData(y,m,"int32")}if(r===void 0){let u=-1/0,f=-1;if(A.isCContiguous)for(let c=0;c<A.size;c++){let D=Number(o[n+c]);!isNaN(D)&&D>u&&(u=D,f=c)}else for(let c=0;c<A.size;c++){let D=Number(A.iget(c));!isNaN(D)&&D>u&&(u=D,f=c)}return f}let i=r;if(i<0&&(i=t+i),i<0||i>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let Q=Array.from(e).filter((u,f)=>f!==i);if(Q.length===0)return Ug(A);let a=Q.reduce((u,f)=>u*f,1),B=e[i],s=new Int32Array(a),{baseOffsets:C,axisStride:E}=gA(e,g,n,i,a);for(let u=0;u<a;u++){let f=-1/0,m=0,c=C[u];for(let D=0;D<B;D++){let y=Number(o[c]);!isNaN(y)&&y>f&&(f=y,m=D),c+=E}s[u]=m}return d.fromData(s,Q,"int32")}function NF(A,r){let I=A.dtype;if(!k(I)&&!fA(I))return bE(A,r);let e=A.shape,t=e.length,o=A.data,n=A.offset;if(k(I)){let u=o,f=A.size;if(r===void 0){let N=d.zeros([f],I),F=N.data,S=0,x=0;if(A.isCContiguous)for(let X=0;X<f;X++){let P=u[(n+X)*2],Z=u[(n+X)*2+1];cA(P,Z)||(S+=P,x+=Z),F[X*2]=S,F[X*2+1]=x}else for(let X=0;X<f;X++){let P=A.iget(X),Z=P.re,V=P.im;cA(Z,V)||(S+=Z,x+=V),F[X*2]=S,F[X*2+1]=x}return N}let m=r;if(m<0&&(m=t+m),m<0||m>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let c=d.zeros([...e],I),D=c.data,y=e[m],l=[],h=1;for(let N=t-1;N>=0;N--)l.unshift(h),h*=e[N];let b=A.size,p=l[m];if(A.isCContiguous)for(let N=0;N<b;N++){let F=u[(n+N)*2],S=u[(n+N)*2+1],x=Math.floor(N/p)%y,H=cA(F,S);x===0?(D[N*2]=H?0:F,D[N*2+1]=H?0:S):(D[N*2]=D[(N-p)*2]+(H?0:F),D[N*2+1]=D[(N-p)*2+1]+(H?0:S))}else for(let N=0;N<b;N++){let F=A.iget(N),S=F.re,x=F.im,H=Math.floor(N/p)%y,X=cA(S,x);H===0?(D[N*2]=X?0:S,D[N*2+1]=X?0:x):(D[N*2]=D[(N-p)*2]+(X?0:S),D[N*2+1]=D[(N-p)*2+1]+(X?0:x))}return c}if(r===void 0){let u=A.size,f=new Float64Array(u),m=0;if(A.isCContiguous)for(let D=0;D<u;D++){let y=Number(o[n+D]);isNaN(y)||(m+=y),f[D]=m}else for(let D=0;D<u;D++){let y=Number(A.iget(D));isNaN(y)||(m+=y),f[D]=m}return d.fromData(f,[u],"float64")}let g=r;if(g<0&&(g=t+g),g<0||g>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let i=new Float64Array(A.size),Q=e[g],a=[],B=1;for(let u=t-1;u>=0;u--)a.unshift(B),B*=e[u];let s=A.size,C=a[g];if(A.isCContiguous)for(let u=0;u<s;u++){let f=Number(o[n+u]);Math.floor(u/C)%Q===0?i[u]=isNaN(f)?0:f:i[u]=i[u-C]+(isNaN(f)?0:f)}else for(let u=0;u<s;u++){let f=Number(A.iget(u));Math.floor(u/C)%Q===0?i[u]=isNaN(f)?0:f:i[u]=i[u-C]+(isNaN(f)?0:f)}return d.fromData(i,[...e],"float64")}function FF(A,r){let I=A.dtype;if(!k(I)&&!fA(I))return pE(A,r);let e=A.shape,t=e.length,o=A.data,n=A.offset;if(k(I)){let u=o,f=A.size;if(r===void 0){let N=d.zeros([f],I),F=N.data,S=1,x=0;if(A.isCContiguous)for(let X=0;X<f;X++){let P=u[(n+X)*2],Z=u[(n+X)*2+1];if(!cA(P,Z)){let V=S*P-x*Z,$=S*Z+x*P;S=V,x=$}F[X*2]=S,F[X*2+1]=x}else for(let X=0;X<f;X++){let P=A.iget(X),Z=P.re,V=P.im;if(!cA(Z,V)){let $=S*Z-x*V,O=S*V+x*Z;S=$,x=O}F[X*2]=S,F[X*2+1]=x}return N}let m=r;if(m<0&&(m=t+m),m<0||m>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let c=d.zeros([...e],I),D=c.data,y=e[m],l=[],h=1;for(let N=t-1;N>=0;N--)l.unshift(h),h*=e[N];let b=A.size,p=l[m];if(A.isCContiguous)for(let N=0;N<b;N++){let F=u[(n+N)*2],S=u[(n+N)*2+1],x=Math.floor(N/p)%y,H=cA(F,S);if(x===0)D[N*2]=H?1:F,D[N*2+1]=H?0:S;else{let X=D[(N-p)*2],P=D[(N-p)*2+1];H?(D[N*2]=X,D[N*2+1]=P):(D[N*2]=X*F-P*S,D[N*2+1]=X*S+P*F)}}else for(let N=0;N<b;N++){let F=A.iget(N),S=F.re,x=F.im,H=Math.floor(N/p)%y,X=cA(S,x);if(H===0)D[N*2]=X?1:S,D[N*2+1]=X?0:x;else{let P=D[(N-p)*2],Z=D[(N-p)*2+1];X?(D[N*2]=P,D[N*2+1]=Z):(D[N*2]=P*S-Z*x,D[N*2+1]=P*x+Z*S)}}return c}if(r===void 0){let u=A.size,f=new Float64Array(u),m=1;if(A.isCContiguous)for(let D=0;D<u;D++){let y=Number(o[n+D]);isNaN(y)||(m*=y),f[D]=m}else for(let D=0;D<u;D++){let y=Number(A.iget(D));isNaN(y)||(m*=y),f[D]=m}return d.fromData(f,[u],"float64")}let g=r;if(g<0&&(g=t+g),g<0||g>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let i=new Float64Array(A.size),Q=e[g],a=[],B=1;for(let u=t-1;u>=0;u--)a.unshift(B),B*=e[u];let s=A.size,C=a[g];if(A.isCContiguous)for(let u=0;u<s;u++){let f=Number(o[n+u]);Math.floor(u/C)%Q===0?i[u]=isNaN(f)?1:f:i[u]=i[u-C]*(isNaN(f)?1:f)}else for(let u=0;u<s;u++){let f=Number(A.iget(u));Math.floor(u/C)%Q===0?i[u]=isNaN(f)?1:f:i[u]=i[u-C]*(isNaN(f)?1:f)}return d.fromData(i,[...e],"float64")}function NE(A,r,I=!1){if(eA(A.dtype,"nanmedian","Complex numbers are not orderable."),!fA(A.dtype))return vg(A,r,I);let e=A.shape,t=e.length,o=A.data,n=A.offset,g=A.strides;if(r===void 0){let f=[];if(A.isCContiguous)for(let y=0;y<A.size;y++){let l=Number(o[n+y]);isNaN(l)||f.push(l)}else for(let y=0;y<A.size;y++){let l=Number(A.iget(y));isNaN(l)||f.push(l)}if(f.length===0)return NaN;f.sort((y,l)=>y-l);let c=f.length,D=Math.floor(c/2);return c%2===0?(f[D-1]+f[D])/2:f[D]}let i=r;if(i<0&&(i=t+i),i<0||i>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let Q=Array.from(e).filter((f,m)=>m!==i);if(Q.length===0){let f=NE(A);return I?LA(f,t,"float64"):f}let a=Q.reduce((f,m)=>f*m,1),B=e[i],s=new Float64Array(a),{baseOffsets:C,axisStride:E}=gA(e,g,n,i,a);for(let f=0;f<a;f++){let m=[],c=C[f];for(let l=0;l<B;l++){let h=Number(o[c]);isNaN(h)||m.push(h),c+=E}if(m.length===0){s[f]=NaN;continue}m.sort((l,h)=>l-h);let D=m.length,y=Math.floor(D/2);D%2===0?s[f]=(m[y-1]+m[y])/2:s[f]=m[y]}let u=d.fromData(s,Q,"float64");if(I){let f=[...e];return f[i]=1,d.fromData(s,f,"float64")}return u}function Kg(A,r,I,e=!1){if(eA(A.dtype,"nanquantile","Complex numbers are not orderable."),!fA(A.dtype))return PI(A,r,I,e);if(r<0||r>1)throw new Error("Quantile must be between 0 and 1");let t=A.shape,o=t.length,n=A.data,g=A.offset,i=A.strides;if(I===void 0){let m=[];if(A.isCContiguous)for(let p=0;p<A.size;p++){let w=Number(n[g+p]);isNaN(w)||m.push(w)}else for(let p=0;p<A.size;p++){let w=Number(A.iget(p));isNaN(w)||m.push(w)}if(m.length===0)return NaN;m.sort((p,w)=>p-w);let D=m.length,y=r*(D-1),l=Math.floor(y),h=Math.ceil(y);if(l===h)return m[l];let b=y-l;return m[l]*(1-b)+m[h]*b}let Q=I;if(Q<0&&(Q=o+Q),Q<0||Q>=o)throw new Error(`axis ${I} is out of bounds for array of dimension ${o}`);let a=Array.from(t).filter((m,c)=>c!==Q);if(a.length===0){let m=Kg(A,r);return e?LA(m,o,"float64"):m}let B=a.reduce((m,c)=>m*c,1),s=t[Q],C=new Float64Array(B),{baseOffsets:E,axisStride:u}=gA(t,i,g,Q,B);for(let m=0;m<B;m++){let c=[],D=E[m];for(let p=0;p<s;p++){let w=Number(n[D]);isNaN(w)||c.push(w),D+=u}if(c.length===0){C[m]=NaN;continue}c.sort((p,w)=>p-w);let y=c.length,l=r*(y-1),h=Math.floor(l),b=Math.ceil(l);if(h===b)C[m]=c[h];else{let p=l-h;C[m]=c[h]*(1-p)+c[b]*p}}let f=d.fromData(C,a,"float64");if(e){let m=[...t];return m[Q]=1,d.fromData(C,m,"float64")}return f}function GF(A,r,I,e=!1){return Kg(A,r/100,I,e)}function _A(A,r,I,e){let t=G(A).ndim,o=r.map(Q=>Q<0?t+Q:Q),n=[...o].sort((Q,a)=>a-Q),g=[...o].sort((Q,a)=>Q-a),i=G(A);for(let Q of n){let a=e(i,Q,!1);if(!(a instanceof d)){if(I){let B=Array(t).fill(1),s=d.zeros(B,i.dtype);return s.iset(0,a),R(s)}return a}i=a}if(I)for(let Q of g)i=iI(i,Q);return R(i)}function po(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>BI(t,o,n));let e=BI(G(A),r,I);return typeof e=="number"||typeof e=="bigint"||e instanceof T?e:R(e)}function wo(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>TI(t,o,n));let e=TI(G(A),r,I);return typeof e=="number"||e instanceof T?e:R(e)}function No(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>ho(t,o,n));let e=ho(G(A),r,I);return typeof e=="number"||typeof e=="bigint"||e instanceof T?e:R(e)}function Fo(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>rI(t,o,n));let e=rI(G(A),r,I);return typeof e=="number"||e instanceof T?e:R(e)}var Go=Fo;function So(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>II(t,o,n));let e=II(G(A),r,I);return typeof e=="number"||e instanceof T?e:R(e)}var Ro=So;function ko(A,r,I){let e=pF(G(A),r,I);return typeof e=="number"||e instanceof T?e:R(e)}function qo(A,r){let I=Lg(G(A),r);return typeof I=="number"?I:R(I)}function Mo(A,r){let I=Hg(G(A),r);return typeof I=="number"?I:R(I)}function sI(A,r,I,e){if(Array.isArray(r))return _A(A,r,e??!1,(o,n,g)=>bo(o,n,I,g));let t=bo(G(A),r,I,e);return typeof t=="number"?t:R(t)}var Vg=sI;function xo(A,r,I,e){if(Array.isArray(r))return _A(A,r,e??!1,(o,n,g)=>dE(o,n,I,g));let t=dE(G(A),r,I,e);return typeof t=="number"?t:R(t)}function Jo(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>vg(t,o,n));let e=vg(G(A),r,I);return typeof e=="number"?e:R(e)}function Uo(A,r,I,e){let t=wF(G(A),r,I,e);return typeof t=="number"?t:R(t)}function Lo(A,r,I,e){let t=PI(G(A),r,I,e);return typeof t=="number"?t:R(t)}function Ho(A,r,I,e){let t=I?G(I):void 0,o=xg(G(A),r,t,e);return typeof o=="number"||o instanceof T?o:R(o)}function _o(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>_g(t,o,n));let e=_g(G(A),r,I);return typeof e=="boolean"?e:R(e)}function Yo(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>Yg(t,o,n));let e=Yg(G(A),r,I);return typeof e=="boolean"?e:R(e)}function vo(A,r){return R(bE(G(A),r))}function Xo(A,r){return R(pE(G(A),r))}function To(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>Xg(t,o,n));let e=Xg(G(A),r,I);return typeof e=="number"||e instanceof T?e:R(e)}function Po(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>Tg(t,o,n));let e=Tg(G(A),r,I);return typeof e=="number"||e instanceof T?e:R(e)}function Ko(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>Pg(t,o,n));let e=Pg(G(A),r,I);return typeof e=="number"||e instanceof T?e:R(e)}function Vo(A,r,I,e){if(Array.isArray(r))return _A(A,r,e??!1,(o,n,g)=>XI(o,n,I,g));let t=XI(G(A),r,I,e);return typeof t=="number"?t:R(t)}function Wo(A,r,I,e){if(Array.isArray(r))return _A(A,r,e??!1,(o,n,g)=>wE(o,n,I,g));let t=wE(G(A),r,I,e);return typeof t=="number"?t:R(t)}function Oo(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>yo(t,o,n));let e=yo(G(A),r,I);return typeof e=="number"||e instanceof T?e:R(e)}function Zo(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>lo(t,o,n));let e=lo(G(A),r,I);return typeof e=="number"||e instanceof T?e:R(e)}function zo(A,r){let I=Jg(G(A),r);return typeof I=="number"?I:R(I)}function jo(A,r){let I=Ug(G(A),r);return typeof I=="number"?I:R(I)}function $o(A,r){return R(NF(G(A),r))}function An(A,r){return R(FF(G(A),r))}function rn(A,r,I){let e=NE(G(A),r,I);return typeof e=="number"?e:R(e)}function In(A,r,I,e){let t=Kg(G(A),r,I,e);return typeof t=="number"?t:R(t)}function en(A,r,I,e){let t=GF(G(A),r,I,e);return typeof t=="number"?t:R(t)}var O3="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",tn=null;function Qr(){if(tn)return tn;let A=atob(O3),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);tn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=tn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),tn}function SF(A,r,I,e){Qr().exports.logical_and_f64(A,r,I,e)}function RF(A,r,I,e){Qr().exports.logical_and_scalar_f64(A,r,I,e)}function kF(A,r,I,e){Qr().exports.logical_and_f32(A,r,I,e)}function qF(A,r,I,e){Qr().exports.logical_and_scalar_f32(A,r,I,e)}function FE(A,r,I,e){Qr().exports.logical_and_i64(A,r,I,e)}function GE(A,r,I,e){Qr().exports.logical_and_scalar_i64(A,r,I,BigInt(Math.round(e)))}function SE(A,r,I,e){Qr().exports.logical_and_i32(A,r,I,e)}function RE(A,r,I,e){Qr().exports.logical_and_scalar_i32(A,r,I,e)}function kE(A,r,I,e){Qr().exports.logical_and_i16(A,r,I,e)}function qE(A,r,I,e){Qr().exports.logical_and_scalar_i16(A,r,I,e)}function ME(A,r,I,e){Qr().exports.logical_and_i8(A,r,I,e)}function xE(A,r,I,e){Qr().exports.logical_and_scalar_i8(A,r,I,e)}var MF=64,Z3={float64:SF,float32:kF,int64:FE,uint64:FE,int32:SE,uint32:SE,int16:kE,uint16:kE,int8:ME,uint8:ME},z3={float64:RF,float32:qF,int64:GE,uint64:GE,int32:RE,uint32:RE,int16:qE,uint16:qE,int8:xE,uint8:xE},xF={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function JF(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<MF*Y.thresholdMultiplier)return null;let e=A.dtype,t=Z3[e],o=xF[e];if(!t||!o||r.dtype!==e)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n,Q=I;J(g+i+Q),U();let a=q(A.data.subarray(A.offset,A.offset+I)),B=q(r.data.subarray(r.offset,r.offset+I)),s=_(Q);t(a,B,s,I);let C=v(s,I,Uint8Array);return d.fromData(C,Array.from(A.shape),"bool")}function JE(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<MF*Y.thresholdMultiplier)return null;let e=A.dtype,t=z3[e],o=xF[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I;J(g+i),U();let Q=q(A.data.subarray(A.offset,A.offset+I)),a=_(i);t(Q,a,I,r);let B=v(a,I,Uint8Array);return d.fromData(B,Array.from(A.shape),"bool")}var j3="AGFzbQEAAAABHQRgBH9/f38AYAR/f398AGAEf39/fQBgBH9/f34AAg8BA2VudgZtZW1vcnkCABADDQwAAQACAAMAAAAAAAAGCQF/AUGAgMAACwf1AQwObG9naWNhbF9vcl9mNjQAABVsb2dpY2FsX29yX3NjYWxhcl9mNjQAAQ5sb2dpY2FsX29yX2YzMgACFWxvZ2ljYWxfb3Jfc2NhbGFyX2YzMgADDmxvZ2ljYWxfb3JfaTY0AAQVbG9naWNhbF9vcl9zY2FsYXJfaTY0AAUObG9naWNhbF9vcl9pMzIABhVsb2dpY2FsX29yX3NjYWxhcl9pMzIABw5sb2dpY2FsX29yX2kxNgAIFWxvZ2ljYWxfb3Jfc2NhbGFyX2kxNgAJDWxvZ2ljYWxfb3JfaTgAChRsb2dpY2FsX29yX3NjYWxhcl9pOAALCrsiDIYCAQd/AkAgA0UNACADQQFxIQRBACEFAkAgA0EBRg0AIANBfnEhBkEAIQUgASEHIAAhAwNAQQEhCEEBIQkCQCADKwMARAAAAAAAAAAAYg0AIAcrAwBEAAAAAAAAAABiIQkLIAIgBWoiCiAJOgAAAkAgA0EIaisDAEQAAAAAAAAAAGINACAHQQhqKwMARAAAAAAAAAAAYiEICyAKQQFqIAg6AAAgB0EQaiEHIANBEGohAyAGIAVBAmoiBUcNAAsLIARFDQAgAiAFaiEHQQEhAwJAIAAgBUEDdCIFaisDAEQAAAAAAAAAAGINACABIAVqKwMARAAAAAAAAAAAYiEDCyAHIAM6AAALC70DAgR/AXsCQAJAIANEAAAAAAAAAABiDQAgAkUNAUEAIQQCQCACQQhJDQACQCABIAAgAkEDdGpPDQAgACABIAJqSQ0BCyACQX5xIgQhBSAAIQYgASEHA0AgByAG/QADAP0MAAAAAAAAAAAAAAAAAAAAAP1IIAj9DQAIAAAAAAAAAAAAAAAAAAD9DAEBAQEBAQEBAQEBAQEBAQH9Tv1ZAAAAIAZBEGohBiAHQQJqIQcgBUF+aiIFDQALIAIgBEYNAgsgBCEHAkAgAiAEa0EDcSIFRQ0AIAAgBEEDdGohBiAEIQcDQCABIAdqIAYrAwBEAAAAAAAAAABiOgAAIAZBCGohBiAHQQFqIQcgBUF/aiIFDQALCyAEIAJrQXxLDQEgACAHQQN0aiEGA0AgASAHaiIFIAYrAwBEAAAAAAAAAABiOgAAIAVBAWogBkEIaisDAEQAAAAAAAAAAGI6AAAgBUECaiAGQRBqKwMARAAAAAAAAAAAYjoAACAFQQNqIAZBGGorAwBEAAAAAAAAAABiOgAAIAFBBGohASAGQSBqIQYgByACQXxqIgJHDQAMAgsLIAJFDQAgAUEBIAL8CwALC+4BAQd/AkAgA0UNACADQQFxIQRBACEFAkAgA0EBRg0AIANBfnEhBkEAIQUgASEHIAAhAwNAQQEhCEEBIQkCQCADKgIAQwAAAABcDQAgByoCAEMAAAAAXCEJCyACIAVqIgogCToAAAJAIANBBGoqAgBDAAAAAFwNACAHQQRqKgIAQwAAAABcIQgLIApBAWogCDoAACAHQQhqIQcgA0EIaiEDIAYgBUECaiIFRw0ACwsgBEUNACACIAVqIQdBASEDAkAgACAFQQJ0IgVqKgIAQwAAAABcDQAgASAFaioCAEMAAAAAXCEDCyAHIAM6AAALC6IDAgR/AXsCQAJAIANDAAAAAFwNACACRQ0BQQAhBAJAIAJBCEkNAAJAIAEgACACQQJ0ak8NACAAIAEgAmpJDQELIAJBfHEiBCEFIAAhBiABIQcDQCAHIAb9AAIA/QwAAAAAAAAAAAAAAAAAAAAA/UIgCP0NAAQIDAAAAAAAAAAAAAAAAP0MAQEBAQEBAQEBAQEBAQEBAf1O/VoAAAAgBkEQaiEGIAdBBGohByAFQXxqIgUNAAsgAiAERg0CCyAEIQcCQCACQQNxIgVFDQAgACAEQQJ0aiEGIAQhBwNAIAEgB2ogBioCAEMAAAAAXDoAACAGQQRqIQYgB0EBaiEHIAVBf2oiBQ0ACwsgBCACa0F8Sw0BIAAgB0ECdGohBgNAIAEgB2oiBSAGKgIAQwAAAABcOgAAIAVBAWogBkEEaioCAEMAAAAAXDoAACAFQQJqIAZBCGoqAgBDAAAAAFw6AAAgBUEDaiAGQQxqKgIAQwAAAABcOgAAIAFBBGohASAGQRBqIQYgByACQXxqIgJHDQAMAgsLIAJFDQAgAUEBIAL8CwALC9sBAQd/AkAgA0UNACADQQFxIQRBACEFAkAgA0EBRg0AIANBfnEhBkEAIQUgASEHIAAhAwNAQQEhCEEBIQkCQCADKQMAUEUNACAHKQMAQgBSIQkLIAIgBWoiCiAJOgAAAkAgA0EIaikDAEIAUg0AIAdBCGopAwBCAFIhCAsgCkEBaiAIOgAAIAdBEGohByADQRBqIQMgBiAFQQJqIgVHDQALCyAERQ0AIAIgBWohB0EBIQMCQCAAIAVBA3QiBWopAwBCAFINACABIAVqKQMAQgBSIQMLIAcgAzoAAAsLlAMCBH8BewJAAkAgA0IAUg0AIAJFDQFBACEEAkAgAkEISQ0AAkAgASAAIAJBA3RqTw0AIAAgASACakkNAQsgAkF+cSIEIQUgACEGIAEhBwNAIAcgBv0AAwD9DAAAAAAAAAAAAAAAAAAAAAD91wEgCP0NAAgAAAAAAAAAAAAAAAAAAP0MAQEBAQEBAQEBAQEBAQEBAf1O/VkAAAAgBkEQaiEGIAdBAmohByAFQX5qIgUNAAsgAiAERg0CCyAEIQcCQCACIARrQQNxIgVFDQAgACAEQQN0aiEGIAQhBwNAIAEgB2ogBikDAEIAUjoAACAGQQhqIQYgB0EBaiEHIAVBf2oiBQ0ACwsgBCACa0F8Sw0BIAAgB0EDdGohBgNAIAEgB2oiBSAGKQMAQgBSOgAAIAVBAWogBkEIaikDAEIAUjoAACAFQQJqIAZBEGopAwBCAFI6AAAgBUEDaiAGQRhqKQMAQgBSOgAAIAFBBGohASAGQSBqIQYgByACQXxqIgJHDQAMAgsLIAJFDQAgAUEBIAL8CwALC9MBAQd/AkAgA0UNACADQQFxIQRBACEFAkAgA0EBRg0AIANBfnEhBiABIQcgACEDQQAhBQNAQQEhCEEBIQkCQCADKAIADQAgBygCAEEARyEJCyACIAVqIgogCToAAAJAIANBBGooAgANACAHQQRqKAIAQQBHIQgLIApBAWogCDoAACAHQQhqIQcgA0EIaiEDIAYgBUECaiIFRw0ACwsgBEUNACACIAVqIQdBASEDAkAgACAFQQJ0IgVqKAIADQAgASAFaigCAEEARyEDCyAHIAM6AAALC40DAgN/AXsCQAJAIAMNACACRQ0BQQAhBAJAIAJBCEkNAAJAIAEgACACQQJ0ak8NACAAIAEgAmpJDQELIAJBfHEiBCEFIAAhAyABIQYDQCAGIAP9AAIA/QwAAAAAAAAAAAAAAAAAAAAA/TggB/0NAAQIDAAAAAAAAAAAAAAAAP0MAQEBAQEBAQEBAQEBAQEBAf1O/VoAAAAgA0EQaiEDIAZBBGohBiAFQXxqIgUNAAsgAiAERg0CCyAEIQYCQCACQQNxIgVFDQAgACAEQQJ0aiEDIAQhBgNAIAEgBmogAygCAEEARzoAACADQQRqIQMgBkEBaiEGIAVBf2oiBQ0ACwsgBCACa0F8Sw0BIAAgBkECdGohAwNAIAEgBmoiBSADKAIAQQBHOgAAIAVBAWogA0EEaigCAEEARzoAACAFQQJqIANBCGooAgBBAEc6AAAgBUEDaiADQQxqKAIAQQBHOgAAIAFBBGohASADQRBqIQMgBiACQXxqIgJHDQAMAgsLIAJFDQAgAUEBIAL8CwALC9QBAQd/AkAgA0UNACADQQFxIQRBACEFAkAgA0EBRg0AIANBfnEhBiABIQcgACEDQQAhBQNAQQEhCEEBIQkCQCADLwEADQAgBy8BAEEARyEJCyACIAVqIgogCToAAAJAIANBAmovAQANACAHQQJqLwEAQQBHIQgLIApBAWogCDoAACAHQQRqIQcgA0EEaiEDIAYgBUECaiIFRw0ACwsgBEUNACACIAVqIQdBASEDAkAgACAFQQF0ai8BAA0AIAEgBUEBdGovAQBBAEchAwsgByADOgAACwuNAwIDfwF7AkACQCADDQAgAkUNAUEAIQQCQCACQQhJDQACQCABIAAgAkEBdGpPDQAgACABIAJqSQ0BCyACQXhxIgQhBSAAIQMgASEGA0AgBiAD/QABAP0MAAAAAAAAAAAAAAAAAAAAAP0uIAf9DQACBAYICgwOAAAAAAAAAAD9DAEBAQEBAQEBAQEBAQEBAQH9Tv1bAAAAIANBEGohAyAGQQhqIQYgBUF4aiIFDQALIAIgBEYNAgsgBCEGAkAgAkEDcSIFRQ0AIAAgBEEBdGohAyAEIQYDQCABIAZqIAMvAQBBAEc6AAAgA0ECaiEDIAZBAWohBiAFQX9qIgUNAAsLIAQgAmtBfEsNASAAIAZBAXRqIQMDQCABIAZqIgUgAy8BAEEARzoAACAFQQFqIANBAmovAQBBAEc6AAAgBUECaiADQQRqLwEAQQBHOgAAIAVBA2ogA0EGai8BAEEARzoAACABQQRqIQEgA0EIaiEDIAYgAkF8aiICRw0ADAILCyACRQ0AIAFBASAC/AsACwv2AwIGfwJ7AkACQCADQXBxIgQNAEEAIQQMAQsCQAJAIARBf2oiBUEPRw0AQQAhBAwBCyAFQQR2QQFqQf7///8BcSEGQQAhBANAIAIgBGoiByABIARqIgj9AAAAIAAgBGoiCf0AAAD9UP0MAAAAAAAAAAAAAAAAAAAAACIK/ST9DAEBAQEBAQEBAQEBAQEBAQEiC/1O/QsAACAHQRBqIAhBEGr9AAAAIAlBEGr9AAAA/VAgCv0kIAv9Tv0LAAAgBEEgaiEEIAZBfmoiBg0ACwsgBUEQcQ0AIAIgBGogASAEav0AAAAgACAEav0AAAD9UP0MAAAAAAAAAAAAAAAAAAAAAP0k/QwBAQEBAQEBAQEBAQEBAQEB/U79CwAAIARBEGohBAsCQCADIARNDQBBASEHIARBAWohBgJAIAMgBGtBAXFFDQAgAiAEaiEIAkAgACAEai0AAA0AIAEgBGotAABBAEchBwsgCCAHOgAAIARBAWohBAsgAyAGRg0AA0BBASEGAkAgACAEaiIHLQAADQAgASAEai0AAEEARyEGCyACIARqIgggBjoAAEEBIQYCQCAHQQFqLQAADQAgASAEakEBai0AAEEARyEGCyAIQQFqIAY6AAAgAkECaiECIABBAmohACABQQJqIQEgBCADQX5qIgNHDQALCwupBQMEfwJ7AX8CQAJAIANFDQAgAkUNASABQQEgAvwLAA8LAkACQCACQXBxIgMNAEEAIQMMAQsgA0F/akEEdkEBaiIEQQNxIQUCQAJAIANBMU8NAEEAIQMMAQsgBEH8////AXEhBkEAIQMDQCABIANqIgQgACADaiIH/QAAAP0MAAAAAAAAAAAAAAAAAAAAACII/ST9DAEBAQEBAQEBAQEBAQEBAQEiCf1O/QsAACAEQRBqIAdBEGr9AAAAIAj9JCAJ/U79CwAAIARBIGogB0Egav0AAAAgCP0kIAn9Tv0LAAAgBEEwaiAHQTBq/QAAACAI/SQgCf1O/QsAACADQcAAaiEDIAZBfGoiBg0ACwsgBUUNAANAIAEgA2ogACADav0AAAD9DAAAAAAAAAAAAAAAAAAAAAD9JP0MAQEBAQEBAQEBAQEBAQEBAf1O/QsAACADQRBqIQMgBUF/aiIFDQALCyACIANNDQACQCACIANrIgZBEEkNACABIABrQRBJDQAgACADaiEEIAEgA2ohByADIAZBcHEiCmohAyAKIQUDQCAHIAT9AAAA/QwAAAAAAAAAAAAAAAAAAAAA/ST9DAEBAQEBAQEBAQEBAQEBAQH9Tv0LAAAgBEEQaiEEIAdBEGohByAFQXBqIgUNAAsgBiAKRg0BCyADIQQCQCACIANrQQNxIgdFDQAgAyEEA0AgASAEaiAAIARqLQAAQQBHOgAAIARBAWohBCAHQX9qIgcNAAsLIAMgAmtBfEsNAANAIAEgBGoiAyAAIARqIgctAABBAEc6AAAgA0EBaiAHQQFqLQAAQQBHOgAAIANBAmogB0ECai0AAEEARzoAACADQQNqIAdBA2otAABBAEc6AAAgAUEEaiEBIABBBGohACAEIAJBfGoiAkcNAAsLCw==",on=null;function ar(){if(on)return on;let A=atob(j3),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);on=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=on.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),on}function UF(A,r,I,e){ar().exports.logical_or_f64(A,r,I,e)}function LF(A,r,I,e){ar().exports.logical_or_scalar_f64(A,r,I,e)}function HF(A,r,I,e){ar().exports.logical_or_f32(A,r,I,e)}function _F(A,r,I,e){ar().exports.logical_or_scalar_f32(A,r,I,e)}function UE(A,r,I,e){ar().exports.logical_or_i64(A,r,I,e)}function LE(A,r,I,e){ar().exports.logical_or_scalar_i64(A,r,I,BigInt(Math.round(e)))}function HE(A,r,I,e){ar().exports.logical_or_i32(A,r,I,e)}function _E(A,r,I,e){ar().exports.logical_or_scalar_i32(A,r,I,e)}function YE(A,r,I,e){ar().exports.logical_or_i16(A,r,I,e)}function vE(A,r,I,e){ar().exports.logical_or_scalar_i16(A,r,I,e)}function XE(A,r,I,e){ar().exports.logical_or_i8(A,r,I,e)}function TE(A,r,I,e){ar().exports.logical_or_scalar_i8(A,r,I,e)}var YF=64,$3={float64:UF,float32:HF,int64:UE,uint64:UE,int32:HE,uint32:HE,int16:YE,uint16:YE,int8:XE,uint8:XE},Av={float64:LF,float32:_F,int64:LE,uint64:LE,int32:_E,uint32:_E,int16:vE,uint16:vE,int8:TE,uint8:TE},vF={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function XF(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<YF*Y.thresholdMultiplier)return null;let e=A.dtype,t=$3[e],o=vF[e];if(!t||!o||r.dtype!==e)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n,Q=I;J(g+i+Q),U();let a=q(A.data.subarray(A.offset,A.offset+I)),B=q(r.data.subarray(r.offset,r.offset+I)),s=_(Q);t(a,B,s,I);let C=v(s,I,Uint8Array);return d.fromData(C,Array.from(A.shape),"bool")}function PE(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<YF*Y.thresholdMultiplier)return null;let e=A.dtype,t=Av[e],o=vF[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I;J(g+i),U();let Q=q(A.data.subarray(A.offset,A.offset+I)),a=_(i);t(Q,a,I,r);let B=v(a,I,Uint8Array);return d.fromData(B,Array.from(A.shape),"bool")}var rv="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",nn=null;function Br(){if(nn)return nn;let A=atob(rv),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);nn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=nn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),nn}function TF(A,r,I,e){Br().exports.logical_xor_f64(A,r,I,e)}function PF(A,r,I,e){Br().exports.logical_xor_scalar_f64(A,r,I,e)}function KF(A,r,I,e){Br().exports.logical_xor_f32(A,r,I,e)}function VF(A,r,I,e){Br().exports.logical_xor_scalar_f32(A,r,I,e)}function KE(A,r,I,e){Br().exports.logical_xor_i64(A,r,I,e)}function VE(A,r,I,e){Br().exports.logical_xor_scalar_i64(A,r,I,BigInt(Math.round(e)))}function WE(A,r,I,e){Br().exports.logical_xor_i32(A,r,I,e)}function OE(A,r,I,e){Br().exports.logical_xor_scalar_i32(A,r,I,e)}function ZE(A,r,I,e){Br().exports.logical_xor_i16(A,r,I,e)}function zE(A,r,I,e){Br().exports.logical_xor_scalar_i16(A,r,I,e)}function jE(A,r,I,e){Br().exports.logical_xor_i8(A,r,I,e)}function $E(A,r,I,e){Br().exports.logical_xor_scalar_i8(A,r,I,e)}var WF=64,Iv={float64:TF,float32:KF,int64:KE,uint64:KE,int32:WE,uint32:WE,int16:ZE,uint16:ZE,int8:jE,uint8:jE},ev={float64:PF,float32:VF,int64:VE,uint64:VE,int32:OE,uint32:OE,int16:zE,uint16:zE,int8:$E,uint8:$E},OF={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function ZF(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<WF*Y.thresholdMultiplier)return null;let e=A.dtype,t=Iv[e],o=OF[e];if(!t||!o||r.dtype!==e)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n,Q=I;J(g+i+Q),U();let a=q(A.data.subarray(A.offset,A.offset+I)),B=q(r.data.subarray(r.offset,r.offset+I)),s=_(Q);t(a,B,s,I);let C=v(s,I,Uint8Array);return d.fromData(C,Array.from(A.shape),"bool")}function Au(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<WF*Y.thresholdMultiplier)return null;let e=A.dtype,t=ev[e],o=OF[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I;J(g+i),U();let Q=q(A.data.subarray(A.offset,A.offset+I)),a=_(i);t(Q,a,I,r);let B=v(a,I,Uint8Array);return d.fromData(B,Array.from(A.shape),"bool")}var tv="AGFzbQEAAAABHQRgBH9/f38AYAR/f398AGAEf39/fQBgBH9/f34AAg8BA2VudgZtZW1vcnkCABADFRQAAAAAAAAAAAAAAQIDAQABAAEAAQYJAX8BQYCAwAALB+8CFAxjb3B5c2lnbl9mNjQAAAxjb3B5c2lnbl9mMzIAAQxjb3B5c2lnbl9pNjQAAgxjb3B5c2lnbl91NjQAAwxjb3B5c2lnbl9pMzIABAxjb3B5c2lnbl91MzIABQxjb3B5c2lnbl9pMTYABgxjb3B5c2lnbl91MTYABwtjb3B5c2lnbl9pOAAIC2NvcHlzaWduX3U4AAkTY29weXNpZ25fc2NhbGFyX2Y2NAAKE2NvcHlzaWduX3NjYWxhcl9mMzIACxNjb3B5c2lnbl9zY2FsYXJfaTY0AAwTY29weXNpZ25fc2NhbGFyX3U2NAANE2NvcHlzaWduX3NjYWxhcl9pMzIADhNjb3B5c2lnbl9zY2FsYXJfdTMyAA8TY29weXNpZ25fc2NhbGFyX2kxNgAQE2NvcHlzaWduX3NjYWxhcl91MTYAERJjb3B5c2lnbl9zY2FsYXJfaTgAEhJjb3B5c2lnbl9zY2FsYXJfdTgAEwqTRhTdBQMGfwJ7AX8CQAJAIANBfnEiBA0AQQAhBQwBCwJAAkAgBEF/aiIGQQFHDQBBACEFDAELIAZBAXZBAWpBfnEiB0EBdCEFIAIhBCABIQggACEJA0AgBCAI/QADAP0MAAAAAAAAAIAAAAAAAAAAgCIK/U4gCf0AAwD9DP////////9//////////38iC/1O/VD9CwMAIARBEGogCEEQav0AAwAgCv1OIAlBEGr9AAMAIAv9Tv1Q/QsDACAEQSBqIQQgCEEgaiEIIAlBIGohCSAHQX5qIgcNAAsLIAZBAnENACACIAVBA3QiBGogASAEav0AAwD9DAAAAAAAAACAAAAAAAAAAID9TiAAIARq/QADAP0M/////////3//////////f/1O/VD9CwMAIAVBAmohBQsCQCADIAVNDQACQCADIAVrIgZBBkkNACACIABrQRBJDQAgAiABa0EQSQ0AIAIgBUEDdCIJaiEEIAEgCWohCCAAIAlqIQkgBSAGQX5xIgxqIQUgDCEHA0AgBCAI/QADAP0MAAAAAAAAAIAAAAAAAAAAgP1OIAn9AAMA/Qz/////////f/////////9//U79UP0LAwAgBEEQaiEEIAhBEGohCCAJQRBqIQkgB0F+aiIHDQALIAYgDEYNAQsgBUEBaiEEAkAgAyAFa0EBcUUNACACIAVBA3QiCGogASAIaikDAEKAgICAgICAgIB/gyAAIAhqKQMAQv///////////wCDhDcDACAEIQULIAMgBEYNACADIAVrIQcgACAFQQN0IglqIQQgASAJaiEIIAIgCWohCQNAIAkgCCkDAEKAgICAgICAgIB/gyAEKQMAQv///////////wCDhDcDACAJQQhqIAhBCGopAwBCgICAgICAgICAf4MgBEEIaikDAEL///////////8Ag4Q3AwAgBEEQaiEEIAhBEGohCCAJQRBqIQkgB0F+aiIHDQALCwueAwEFfwJAIANFDQBBACEEAkAgA0EKSQ0AIAIgACADQQJ0IgVqSSAAIAIgA0EDdGoiBklxDQAgAiABIAVqSSABIAZJcQ0AIANBfnEiBCEHIAIhBSABIQYgACEIA0AgBSAG/V0CAP0MAAAAgAAAAIAAAACAAAAAgP1OIAj9XQIA/Qz///9/////f////3////9//U79UP1f/QsDACAFQRBqIQUgBkEIaiEGIAhBCGohCCAHQX5qIgcNAAsgAyAERg0BCyAEQQFyIQUCQCADQQFxRQ0AIAIgBEEDdGogASAEQQJ0IgZqKAIAQYCAgIB4cSAAIAZqKAIAQf////8HcXK+uzkDACAFIQQLIAMgBUYNACADIARrIQcgACAEQQJ0IgZqIQUgASAGaiEGIAIgBEEDdGohCANAIAggBigCAEGAgICAeHEgBSgCAEH/////B3Fyvrs5AwAgCEEIaiAGQQRqKAIAQYCAgIB4cSAFQQRqKAIAQf////8HcXK+uzkDACAFQQhqIQUgBkEIaiEGIAhBEGohCCAHQX5qIgcNAAsLC40EAwV/AnsBfgJAIANFDQBBACEEAkAgA0EESQ0AIAIgAGtBEEkNACACIAFrQRBJDQAgA0F+cSIEIQUgAiEGIAEhByAAIQgDQCAGIAj9AAMAIgn9HQC5/RQgCf0dAbn9IgH97AH9DAAAAAAAAPA/AAAAAAAA8D/9DAAAAAAAAAAAAAAAAAAAAAD9DAAAAAAAAPC/AAAAAAAA8L8gB/0AAwAiCf0MAAAAAAAAAAAAAAAAAAAAACIK/dYB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GzkDACAAQQJqIQAgAUECaiEBIAVBEGohBSAEIANBfmoiA0cNAAsLC44FBAJ/AXsEfwF7AkACQCACQX5xIgQNAEEAIQUMAQsgA71CgICAgICAgICAf4P9EiEGIARBf2pBAXZBAWoiB0EDcSEIAkACQCAEQQdPDQBBACEFDAELIAdBfHEiCUEBdCEFQQAhBANAIAEgBGoiByAAIARqIgr9AAMA/Qz/////////f/////////9/Igv9TiAG/VD9CwMAIAdBEGogCkEQav0AAwAgC/1OIAb9UP0LAwAgB0EgaiAKQSBq/QADACAL/U4gBv1Q/QsDACAHQTBqIApBMGr9AAMAIAv9TiAG/VD9CwMAIARBwABqIQQgCUF8aiIJDQALCyAIRQ0AIAUgCEEBdGohCiAAIAVBA3QiB2ohBCABIAdqIQcDQCAHIAT9AAMA/Qz/////////f/////////9//U4gBv1Q/QsDACAEQRBqIQQgB0EQaiEHIAhBf2oiCA0ACyAKIQULAkAgAiAFTQ0AAkAgAiAFayIIQQRJDQAgASAAa0EQSQ0AIAEgBUEDdCIHaiEEIAAgB2ohByAFIAhBfnEiCWohBSAD/RQhBiAJIQoDQCAEIAf9AAMA/Qz/////////f/////////9//U4gBv0MAAAAAAAAAIAAAAAAAAAAgP1O/VD9CwMAIARBEGohBCAHQRBqIQcgCkF+aiIKDQALIAggCUYNAQsgBUEBaiEEAkAgAiAFa0EBcUUNACABIAVBA3QiB2ogACAHaisDACADpjkDACAEIQULIAIgBEYNACACIAVrIQogACAFQQN0IgdqIQQgASAHaiEHA0AgByAEKwMAIAOmOQMAIAdBCGogBEEIaisDACADpjkDACAEQRBqIQQgB0EQaiEHIApBfmoiCg0ACwsLuwIDAX8BewN/AkAgAkUNAEEAIQQCQCACQQhJDQACQCABIAAgAkECdGpPDQAgACABIAJBA3RqSQ0BCyAD/RMhBSACQX5xIgQhBiABIQcgACEIA0AgByAI/V0CAP0M////f////3////9/////f/1OIAX9DAAAAIAAAACAAAAAgAAAAID9Tv1Q/V/9CwMAIAdBEGohByAIQQhqIQggBkF+aiIGDQALIAIgBEYNAQsgBEEBciEHAkAgAkEBcUUNACABIARBA3RqIAAgBEECdGoqAgAgA5i7OQMAIAchBAsgAiAHRg0AIAIgBGshBiAAIARBAnRqIQcgASAEQQN0aiEIA0AgCCAHKgIAIAOYuzkDACAIQQhqIAdBBGoqAgAgA5i7OQMAIAdBCGohByAIQRBqIQggBkF+aiIGDQALCwu/AgUBfAF/AXsDfwF7RAAAAAAAAPA/RAAAAAAAAPC/RAAAAAAAAAAAIANCAFMbIANCAFUbIQRBACEFAkACQAJAIAIOAgIBAAsgASAAa0EQSQ0AIAT9FCEGIAJBfnEiBSEHIAAhCCABIQkDQCAJIAYgCP0AAwAiCv0dALn9FCAK/R0Buf0iAf3sAf3yAf0LAwAgCEEQaiEIIAlBEGohCSAHQX5qIgcNAAsgAiAFRg0BCyAFQQFyIQgCQCACQQFxRQ0AIAEgBUEDdCIJaiAEIAAgCWopAwC5maI5AwAgCCEFCyACIAhGDQAgAiAFayEHIAEgBUEDdCIJaiEIIAAgCWohCQNAIAggBCAJKQMAuZmiOQMAIAhBCGogBCAJQQhqKQMAuZmiOQMAIAhBEGohCCAJQRBqIQkgB0F+aiIHDQALCwvlAwUBfwF7A38BewF/AkAgAkUNAEQAAAAAAADwP0QAAAAAAADwv0QAAAAAAAAAACADRAAAAAAAAAAAYxsgA0QAAAAAAAAAAGQbIQNBACEEAkAgAkEESQ0AIAEgAGtBEEkNACAD/RQhBSACQX5xIgQhBiAAIQcgASEIA0AgCCAFIAf9AAMAIgn9DP////8AAAAA/////wAAAAD9Tv0MAAAAAAAAMEMAAAAAAAAwQ/1QIAlBIP3NAf0MAAAAAAAAMEUAAAAAAAAwRf1Q/QwAABAAAAAwRQAAEAAAADBF/fEB/fAB/fIB/QsDACAHQRBqIQcgCEEQaiEIIAZBfmoiBg0ACyACIARGDQELIAQhCgJAIAIgBGtBA3EiBkUNACAEIAZqIQogASAEQQN0IghqIQcgACAIaiEIA0AgByADIAgpAwC6ojkDACAHQQhqIQcgCEEIaiEIIAZBf2oiBg0ACwsgBCACa0F8Sw0AIApBA3QhBiACIAprIQIDQCABIAZqIgcgAyAAIAZqIggpAwC6ojkDACAHQQhqIAMgCEEIaikDALqiOQMAIAdBEGogAyAIQRBqKQMAuqI5AwAgB0EYaiADIAhBGGopAwC6ojkDACABQSBqIQEgAEEgaiEAIAJBfGoiAg0ACwsLxgIEAX8BfAF7An8CQCACRQ0AQQAhBEQAAAAAAADwP0QAAAAAAADwv0QAAAAAAAAAACADQQBIGyADQQBKGyEFAkAgAkEISQ0AAkAgASAAIAJBAnRqTw0AIAAgASACQQN0akkNAQsgBf0UIQYgAkF+cSIEIQcgACEDIAEhCANAIAggBiAD/V0CAP3+Af3sAf3yAf0LAwAgA0EIaiEDIAhBEGohCCAHQX5qIgcNAAsgAiAERg0BCyAEQQFyIQMCQCACQQFxRQ0AIAEgBEEDdGogBSAAIARBAnRqKAIAt5miOQMAIAMhBAsgAiADRg0AIAIgBGshByABIARBA3RqIQMgACAEQQJ0aiEIA0AgAyAFIAgoAgC3maI5AwAgA0EIaiAFIAhBBGooAgC3maI5AwAgA0EQaiEDIAhBCGohCCAHQX5qIgcNAAsLC54DAwF/AXsEfwJAIAJFDQBEAAAAAAAA8D9EAAAAAAAA8L9EAAAAAAAAAAAgA0QAAAAAAAAAAGMbIANEAAAAAAAAAABkGyEDQQAhBAJAIAJBCEkNAAJAIAEgACACQQJ0ak8NACAAIAEgAkEDdGpJDQELIAP9FCEFIAJBfnEiBCEGIAAhByABIQgDQCAIIAUgB/1dAgD9/wH98gH9CwMAIAdBCGohByAIQRBqIQggBkF+aiIGDQALIAIgBEYNAQsgBCEJAkAgAiAEa0EDcSIGRQ0AIAQgBmohCSABIARBA3RqIQcgACAEQQJ0aiEIA0AgByADIAgoAgC4ojkDACAHQQhqIQcgCEEEaiEIIAZBf2oiBg0ACwsgBCACa0F8Sw0AIAIgCWshBiABIAlBA3RqIQcgACAJQQJ0aiEIA0AgByADIAgoAgC4ojkDACAHQQhqIAMgCEEEaigCALiiOQMAIAdBEGogAyAIQQhqKAIAuKI5AwAgB0EYaiADIAhBDGooAgC4ojkDACAHQSBqIQcgCEEQaiEIIAZBfGoiBg0ACwsLyQIEAX8BfAF7An8CQCACRQ0AQQAhBEQAAAAAAADwP0QAAAAAAADwv0QAAAAAAAAAACADQQBIGyADQQBKGyEFAkAgAkEISQ0AAkAgASAAIAJBAXRqTw0AIAAgASACQQN0akkNAQsgBf0UIQYgAkF+cSIEIQcgACEDIAEhCANAIAggBiAD/VwBAP2nAf3+Af3sAf3yAf0LAwAgA0EEaiEDIAhBEGohCCAHQX5qIgcNAAsgAiAERg0BCyAEQQFyIQMCQCACQQFxRQ0AIAEgBEEDdGogBSAAIARBAXRqLgEAt5miOQMAIAMhBAsgAiADRg0AIAIgBGshByABIARBA3RqIQMgACAEQQF0aiEIA0AgAyAFIAguAQC3maI5AwAgA0EIaiAFIAhBAmouAQC3maI5AwAgA0EQaiEDIAhBBGohCCAHQX5qIgcNAAsLC6EDAwF/AXsEfwJAIAJFDQBEAAAAAAAA8D9EAAAAAAAA8L9EAAAAAAAAAAAgA0QAAAAAAAAAAGMbIANEAAAAAAAAAABkGyEDQQAhBAJAIAJBCEkNAAJAIAEgACACQQF0ak8NACAAIAEgAkEDdGpJDQELIAP9FCEFIAJBfnEiBCEGIAAhByABIQgDQCAIIAUgB/1cAQD9qQH9/wH98gH9CwMAIAdBBGohByAIQRBqIQggBkF+aiIGDQALIAIgBEYNAQsgBCEJAkAgAiAEa0EDcSIGRQ0AIAQgBmohCSABIARBA3RqIQcgACAEQQF0aiEIA0AgByADIAgvAQC4ojkDACAHQQhqIQcgCEECaiEIIAZBf2oiBg0ACwsgBCACa0F8Sw0AIAIgCWshBiABIAlBA3RqIQcgACAJQQF0aiEIA0AgByADIAgvAQC4ojkDACAHQQhqIAMgCEECai8BALiiOQMAIAdBEGogAyAIQQRqLwEAuKI5AwAgB0EYaiADIAhBBmovAQC4ojkDACAHQSBqIQcgCEEIaiEIIAZBfGoiBg0ACwsLxAIEAX8BfAF7An8CQCACRQ0AQQAhBEQAAAAAAADwP0QAAAAAAADwv0QAAAAAAAAAACADQQBIGyADQQBKGyEFAkAgAkEGSQ0AAkAgASAAIAJqTw0AIAAgASACQQN0akkNAQsgBf0UIQYgAkF+cSIEIQcgACEDIAEhCANAIAggBiADLwAA/RD9hwH9pwH9/gH97AH98gH9CwMAIANBAmohAyAIQRBqIQggB0F+aiIHDQALIAIgBEYNAQsgBEEBciEDAkAgAkEBcUUNACABIARBA3RqIAUgACAEaiwAALeZojkDACADIQQLIAIgA0YNACAAIARqIQMgAiAEayEHIAEgBEEDdGohCANAIAggBSADLAAAt5miOQMAIAhBCGogBSADQQFqLAAAt5miOQMAIAhBEGohCCADQQJqIQMgB0F+aiIHDQALCwuPAwMBfwF7A38CQCACRQ0ARAAAAAAAAPA/RAAAAAAAAPC/RAAAAAAAAAAAIANEAAAAAAAAAABjGyADRAAAAAAAAAAAZBshA0EAIQQCQCACQQhJDQACQCABIAAgAmpPDQAgACABIAJBA3RqSQ0BCyAD/RQhBSACQX5xIgQhBiAAIQcgASEIA0AgCCAFIAcvAAD9EP2JAf2pAf3/Af3yAf0LAwAgB0ECaiEHIAhBEGohCCAGQX5qIgYNAAsgAiAERg0BCyAEIQgCQCACIARrQQNxIgZFDQAgASAEQQN0aiEHIAQhCANAIAcgAyAAIAhqLQAAuKI5AwAgB0EIaiEHIAhBAWohCCAGQX9qIgYNAAsLIAQgAmtBfEsNACABIAhBA3RqIQcDQCAHIAMgACAIaiIGLQAAuKI5AwAgB0EIaiADIAZBAWotAAC4ojkDACAHQRBqIAMgBkECai0AALiiOQMAIAdBGGogAyAGQQNqLQAAuKI5AwAgB0EgaiEHIABBBGohACAIIAJBfGoiAkcNAAsLCw==",gn=null;function RA(){if(gn)return gn;let A=atob(tv),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);gn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=gn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),gn}function zF(A,r,I,e){RA().exports.copysign_f64(A,r,I,e)}function jF(A,r,I,e){RA().exports.copysign_f32(A,r,I,e)}function $F(A,r,I,e){RA().exports.copysign_i64(A,r,I,e)}function AG(A,r,I,e){RA().exports.copysign_u64(A,r,I,e)}function rG(A,r,I,e){RA().exports.copysign_i32(A,r,I,e)}function IG(A,r,I,e){RA().exports.copysign_u32(A,r,I,e)}function eG(A,r,I,e){RA().exports.copysign_i16(A,r,I,e)}function tG(A,r,I,e){RA().exports.copysign_u16(A,r,I,e)}function oG(A,r,I,e){RA().exports.copysign_i8(A,r,I,e)}function nG(A,r,I,e){RA().exports.copysign_u8(A,r,I,e)}function iG(A,r,I,e){RA().exports.copysign_scalar_f64(A,r,I,e)}function gG(A,r,I,e){RA().exports.copysign_scalar_f32(A,r,I,e)}function QG(A,r,I,e){RA().exports.copysign_scalar_i64(A,r,I,BigInt(Math.round(e)))}function aG(A,r,I,e){RA().exports.copysign_scalar_u64(A,r,I,e)}function BG(A,r,I,e){RA().exports.copysign_scalar_i32(A,r,I,e)}function sG(A,r,I,e){RA().exports.copysign_scalar_u32(A,r,I,e)}function CG(A,r,I,e){RA().exports.copysign_scalar_i16(A,r,I,e)}function EG(A,r,I,e){RA().exports.copysign_scalar_u16(A,r,I,e)}function uG(A,r,I,e){RA().exports.copysign_scalar_i8(A,r,I,e)}function cG(A,r,I,e){RA().exports.copysign_scalar_u8(A,r,I,e)}var DG=64,ov={float64:zF,float32:jF,int64:$F,uint64:AG,int32:rG,uint32:IG,int16:eG,uint16:tG,int8:oG,uint8:nG},nv={float64:iG,float32:gG,int64:QG,uint64:aG,int32:BG,uint32:sG,int16:CG,uint16:EG,int8:uG,uint8:cG},fG={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function mG(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<DG*Y.thresholdMultiplier)return null;let e=A.dtype,t=ov[e],o=fG[e];if(!t||!o||r.dtype!==e)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*8;J(g*2+i),U();let Q=q(A.data.subarray(A.offset,A.offset+I)),a=q(r.data.subarray(r.offset,r.offset+I)),B=_(i);t(Q,a,B,I);let s=v(B,I,Float64Array);return d.fromData(s,Array.from(A.shape),"float64")}function ru(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<DG*Y.thresholdMultiplier)return null;let e=A.dtype,t=nv[e],o=fG[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*8;J(g+i),U();let Q=q(A.data.subarray(A.offset,A.offset+I)),a=_(i);t(Q,a,I,r);let B=v(a,I,Float64Array);return d.fromData(B,Array.from(A.shape),"float64")}var iv="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",Qn=null;function KI(){if(Qn)return Qn;let A=atob(iv),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Qn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Qn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Qn}function yG(A,r,I){KI().exports.logical_not_f64(A,r,I)}function lG(A,r,I){KI().exports.logical_not_f32(A,r,I)}function Iu(A,r,I){KI().exports.logical_not_i64(A,r,I)}function eu(A,r,I){KI().exports.logical_not_i32(A,r,I)}function tu(A,r,I){KI().exports.logical_not_i16(A,r,I)}function ou(A,r,I){KI().exports.logical_not_i8(A,r,I)}var gv=64,Qv={float64:yG,float32:lG,int64:Iu,uint64:Iu,int32:eu,uint32:eu,int16:tu,uint16:tu,int8:ou,uint8:ou},av={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function hG(A){if(!A.isCContiguous)return null;let r=A.size;if(r<gv*Y.thresholdMultiplier)return null;let I=A.dtype,e=Qv[I],t=av[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT,n=r*o,g=r;J(n+g),U();let i=q(A.data.subarray(A.offset,A.offset+r)),Q=_(g);e(i,Q,r);let a=v(Q,r,Uint8Array);return d.fromData(a,Array.from(A.shape),"bool")}function WI(A){return A!==0&&A!==0n}function Nr(A,r){let I=A[r*2],e=A[r*2+1];return I!==0||e!==0}function an(A,r){return A.isCContiguous&&r.isCContiguous&&A.shape.length===r.shape.length&&A.shape.every((I,e)=>I===r.shape[e])}function NG(A,r){if(typeof r=="number"){let I=JE(A,r);return I||dG(A,r)}if(r.size===1&&!k(r.dtype)){let I=Number(r.iget(0)),e=JE(A,I);return e||dG(A,I)}if(an(A,r)){let I=JF(A,r);return I||Bv(A,r)}return tr(A,r,(I,e)=>WI(I)&&WI(e))}function Bv(A,r){let I=new Uint8Array(A.size),e=A.data,t=r.data,o=A.offset,n=r.offset,g=A.size,i=L(A.dtype),Q=L(r.dtype),a=k(A.dtype),B=k(r.dtype);if(a||B)for(let s=0;s<g;s++){let C=a?Nr(e,o+s):e[o+s]!==0,E=B?Nr(t,n+s):t[n+s]!==0;I[s]=C&&E?1:0}else if(i||Q)for(let s=0;s<g;s++){let C=i?e[o+s]!==0n:e[o+s]!==0,E=Q?t[n+s]!==0n:t[n+s]!==0;I[s]=C&&E?1:0}else for(let s=0;s<g;s++)I[s]=e[o+s]!==0&&t[n+s]!==0?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function dG(A,r){let I=new Uint8Array(A.size),e=r!==0,t=A.size;if(A.isCContiguous){let o=A.data,n=A.offset;if(k(A.dtype)){let g=o;for(let i=0;i<t;i++)I[i]=Nr(g,n+i)&&e?1:0}else if(L(A.dtype)){let g=o;for(let i=0;i<t;i++)I[i]=g[n+i]!==0n&&e?1:0}else if(n===0)for(let g=0;g<t;g++)I[g]=o[g]!==0&&e?1:0;else for(let g=0;g<t;g++)I[g]=o[n+g]!==0&&e?1:0}else if(k(A.dtype))for(let o=0;o<t;o++){let n=A.iget(o);I[o]=(n.re!==0||n.im!==0)&&e?1:0}else if(L(A.dtype))for(let o=0;o<t;o++)I[o]=A.iget(o)!==0n&&e?1:0;else for(let o=0;o<t;o++)I[o]=Number(A.iget(o))!==0&&e?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function FG(A,r){if(typeof r=="number"){let I=PE(A,r);return I||bG(A,r)}if(r.size===1&&!k(r.dtype)){let I=Number(r.iget(0)),e=PE(A,I);return e||bG(A,I)}if(an(A,r)){let I=XF(A,r);return I||sv(A,r)}return tr(A,r,(I,e)=>WI(I)||WI(e))}function sv(A,r){let I=new Uint8Array(A.size),e=A.data,t=r.data,o=A.offset,n=r.offset,g=A.size,i=L(A.dtype),Q=L(r.dtype),a=k(A.dtype),B=k(r.dtype);if(a||B)for(let s=0;s<g;s++){let C=a?Nr(e,o+s):e[o+s]!==0,E=B?Nr(t,n+s):t[n+s]!==0;I[s]=C||E?1:0}else if(i||Q)for(let s=0;s<g;s++){let C=i?e[o+s]!==0n:e[o+s]!==0,E=Q?t[n+s]!==0n:t[n+s]!==0;I[s]=C||E?1:0}else for(let s=0;s<g;s++)I[s]=e[o+s]!==0||t[n+s]!==0?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function bG(A,r){let I=new Uint8Array(A.size),e=r!==0,t=A.size;if(A.isCContiguous){let o=A.data,n=A.offset;if(k(A.dtype)){let g=o;for(let i=0;i<t;i++)I[i]=Nr(g,n+i)||e?1:0}else if(L(A.dtype)){let g=o;for(let i=0;i<t;i++)I[i]=g[n+i]!==0n||e?1:0}else if(n===0)for(let g=0;g<t;g++)I[g]=o[g]!==0||e?1:0;else for(let g=0;g<t;g++)I[g]=o[n+g]!==0||e?1:0}else if(k(A.dtype))for(let o=0;o<t;o++){let n=A.iget(o);I[o]=n.re!==0||n.im!==0||e?1:0}else if(L(A.dtype))for(let o=0;o<t;o++)I[o]=A.iget(o)!==0n||e?1:0;else for(let o=0;o<t;o++)I[o]=Number(A.iget(o))!==0||e?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function GG(A){let r=hG(A);if(r)return r;let I=new Uint8Array(A.size),e=A.size;if(A.isCContiguous){let t=A.data,o=A.offset;if(k(A.dtype)){let n=t;for(let g=0;g<e;g++)I[g]=Nr(n,o+g)?0:1}else if(L(A.dtype)){let n=t;for(let g=0;g<e;g++)I[g]=n[o+g]===0n?1:0}else if(o===0)for(let n=0;n<e;n++)I[n]=t[n]===0?1:0;else for(let n=0;n<e;n++)I[n]=t[o+n]===0?1:0}else if(k(A.dtype))for(let t=0;t<e;t++){let o=A.iget(t);I[t]=o.re===0&&o.im===0?1:0}else if(L(A.dtype))for(let t=0;t<e;t++)I[t]=A.iget(t)===0n?1:0;else for(let t=0;t<e;t++)I[t]=Number(A.iget(t))===0?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function SG(A,r){if(typeof r=="number"){let I=Au(A,r);return I||pG(A,r)}if(r.size===1&&!k(r.dtype)){let I=Number(r.iget(0)),e=Au(A,I);return e||pG(A,I)}if(an(A,r)){let I=ZF(A,r);return I||Cv(A,r)}return tr(A,r,(I,e)=>WI(I)!==WI(e))}function Cv(A,r){let I=new Uint8Array(A.size),e=A.data,t=r.data,o=A.offset,n=r.offset,g=A.size,i=L(A.dtype),Q=L(r.dtype),a=k(A.dtype),B=k(r.dtype);if(a||B)for(let s=0;s<g;s++){let C=a?Nr(e,o+s):e[o+s]!==0,E=B?Nr(t,n+s):t[n+s]!==0;I[s]=C!==E?1:0}else if(i||Q)for(let s=0;s<g;s++){let C=i?e[o+s]!==0n:e[o+s]!==0,E=Q?t[n+s]!==0n:t[n+s]!==0;I[s]=C!==E?1:0}else for(let s=0;s<g;s++){let C=e[o+s]!==0,E=t[n+s]!==0;I[s]=C!==E?1:0}return d.fromData(I,Array.from(A.shape),"bool")}function pG(A,r){let I=new Uint8Array(A.size),e=r!==0,t=A.size;if(A.isCContiguous){let o=A.data,n=A.offset;if(k(A.dtype)){let g=o;for(let i=0;i<t;i++){let Q=Nr(g,n+i);I[i]=Q!==e?1:0}}else if(L(A.dtype)){let g=o;for(let i=0;i<t;i++){let Q=g[n+i]!==0n;I[i]=Q!==e?1:0}}else if(n===0)for(let g=0;g<t;g++){let i=o[g]!==0;I[g]=i!==e?1:0}else for(let g=0;g<t;g++){let i=o[n+g]!==0;I[g]=i!==e?1:0}}else if(k(A.dtype))for(let o=0;o<t;o++){let n=A.iget(o),g=n.re!==0||n.im!==0;I[o]=g!==e?1:0}else if(L(A.dtype))for(let o=0;o<t;o++){let n=A.iget(o)!==0n;I[o]=n!==e?1:0}else for(let o=0;o<t;o++){let n=Number(A.iget(o))!==0;I[o]=n!==e?1:0}return d.fromData(I,Array.from(A.shape),"bool")}function RG(A){let r=new Uint8Array(A.size),I=A.size;if(A.isCContiguous){let e=A.data,t=A.offset;if(k(A.dtype)){let o=e;for(let n=0;n<I;n++){let g=o[(t+n)*2],i=o[(t+n)*2+1];r[n]=Number.isFinite(g)&&Number.isFinite(i)?1:0}}else if(L(A.dtype)||pA(A.dtype))r.fill(1);else if(t===0)for(let o=0;o<I;o++)r[o]=Number.isFinite(e[o])?1:0;else for(let o=0;o<I;o++){let n=e[t+o];r[o]=Number.isFinite(n)?1:0}}else if(k(A.dtype))for(let e=0;e<I;e++){let t=A.iget(e);r[e]=Number.isFinite(t.re)&&Number.isFinite(t.im)?1:0}else if(L(A.dtype)||pA(A.dtype))r.fill(1);else for(let e=0;e<I;e++)r[e]=Number.isFinite(Number(A.iget(e)))?1:0;return d.fromData(r,Array.from(A.shape),"bool")}function kG(A){let r=new Uint8Array(A.size),I=A.size;if(A.isCContiguous){let e=A.data,t=A.offset;if(k(A.dtype)){let o=e;for(let n=0;n<I;n++){let g=o[(t+n)*2],i=o[(t+n)*2+1],Q=!Number.isFinite(g)&&!Number.isNaN(g),a=!Number.isFinite(i)&&!Number.isNaN(i);r[n]=Q||a?1:0}}else if(!(L(A.dtype)||pA(A.dtype)))if(t===0)for(let o=0;o<I;o++){let n=e[o];r[o]=!Number.isFinite(n)&&!Number.isNaN(n)?1:0}else for(let o=0;o<I;o++){let n=e[t+o];r[o]=!Number.isFinite(n)&&!Number.isNaN(n)?1:0}}else if(k(A.dtype))for(let e=0;e<I;e++){let t=A.iget(e),o=!Number.isFinite(t.re)&&!Number.isNaN(t.re),n=!Number.isFinite(t.im)&&!Number.isNaN(t.im);r[e]=o||n?1:0}else if(!(L(A.dtype)||pA(A.dtype)))for(let e=0;e<I;e++){let t=Number(A.iget(e));r[e]=!Number.isFinite(t)&&!Number.isNaN(t)?1:0}return d.fromData(r,Array.from(A.shape),"bool")}function qG(A){let r=new Uint8Array(A.size),I=A.size;if(A.isCContiguous){let e=A.data,t=A.offset;if(k(A.dtype)){let o=e;for(let n=0;n<I;n++){let g=o[(t+n)*2],i=o[(t+n)*2+1];r[n]=Number.isNaN(g)||Number.isNaN(i)?1:0}}else if(!(L(A.dtype)||pA(A.dtype)))for(let o=0;o<I;o++)r[o]=Number.isNaN(e[t+o])?1:0}else if(k(A.dtype))for(let e=0;e<I;e++){let t=A.iget(e);r[e]=Number.isNaN(t.re)||Number.isNaN(t.im)?1:0}else if(!(L(A.dtype)||pA(A.dtype)))for(let e=0;e<I;e++)r[e]=Number.isNaN(Number(A.iget(e)))?1:0;return d.fromData(r,Array.from(A.shape),"bool")}function MG(A){let r=new Uint8Array(A.size);return d.fromData(r,Array.from(A.shape),"bool")}function xG(A,r){if(eA(A.dtype,"copysign","copysign is only defined for real numbers."),typeof r!="number"&&eA(r.dtype,"copysign","copysign is only defined for real numbers."),typeof r=="number"){let i=ru(A,r);return i||wG(A,r)}if(r.size===1&&!k(r.dtype)){let i=Number(r.iget(0)),Q=ru(A,i);return Q||wG(A,i)}if(an(A,r)){let i=mG(A,r);return i||Ev(A,r)}let I=Yr(A.shape,r.shape),e=I.reduce((i,Q)=>i*Q,1),t=d.zeros(I,"float64"),o=t.data,n=Wg(A,I),g=Wg(r,I);for(let i=0;i<e;i++){let Q=Number(n.iget(i)),a=Number(g.iget(i));o[i]=Math.sign(a)*Math.abs(Q)}return t}function Ev(A,r){let I=d.zeros(Array.from(A.shape),"float64"),e=I.data,t=A.size,o=A.data,n=r.data,g=A.offset,i=r.offset,Q=L(A.dtype),a=L(r.dtype);for(let B=0;B<t;B++){let s=Q?Number(o[g+B]):o[g+B],C=a?Number(n[i+B]):n[i+B];e[B]=Math.sign(C)*Math.abs(s)}return I}function wG(A,r){let I=d.zeros(Array.from(A.shape),"float64"),e=I.data,t=A.size,o=Math.sign(r);if(!A.isCContiguous){for(let i=0;i<t;i++)e[i]=o*Math.abs(Number(A.iget(i)));return I}let n=A.data,g=A.offset;if(L(A.dtype)){let i=n;for(let Q=0;Q<t;Q++)e[Q]=o*Math.abs(Number(i[g+Q]))}else if(g===0)for(let i=0;i<t;i++)e[i]=o*Math.abs(n[i]);else for(let i=0;i<t;i++)e[i]=o*Math.abs(n[g+i]);return I}function JG(A){eA(A.dtype,"signbit","signbit is only defined for real numbers.");let r=new Uint8Array(A.size),I=A.size;if(A.isCContiguous){let e=A.data,t=A.offset;if(L(A.dtype)){let o=e;for(let n=0;n<I;n++)r[n]=o[t+n]<0n?1:0}else for(let o=0;o<I;o++){let n=e[t+o];r[o]=n<0||Object.is(n,-0)?1:0}}else if(L(A.dtype))for(let e=0;e<I;e++)r[e]=A.iget(e)<0n?1:0;else for(let e=0;e<I;e++){let t=Number(A.iget(e));r[e]=t<0||Object.is(t,-0)?1:0}return d.fromData(r,Array.from(A.shape),"bool")}function UG(A,r){if(eA(A.dtype,"nextafter","nextafter is only defined for real numbers."),typeof r!="number"&&eA(r.dtype,"nextafter","nextafter is only defined for real numbers."),typeof r=="number")return cv(A,r);if(an(A,r))return uv(A,r);let I=Yr(A.shape,r.shape),e=I.reduce((i,Q)=>i*Q,1),t=d.zeros(I,"float64"),o=t.data,n=Wg(A,I),g=Wg(r,I);for(let i=0;i<e;i++){let Q=Number(n.iget(i)),a=Number(g.iget(i));o[i]=VI(Q,a)}return t}function uv(A,r){let I=d.zeros(Array.from(A.shape),"float64"),e=I.data,t=A.size,o=A.data,n=r.data,g=A.offset,i=r.offset,Q=L(A.dtype),a=L(r.dtype);for(let B=0;B<t;B++){let s=Q?Number(o[g+B]):o[g+B],C=a?Number(n[i+B]):n[i+B];e[B]=VI(s,C)}return I}function cv(A,r){let I=d.zeros(Array.from(A.shape),"float64"),e=I.data,t=A.size;if(A.isCContiguous){let o=A.data,n=A.offset;if(L(A.dtype)){let g=o;for(let i=0;i<t;i++)e[i]=VI(Number(g[n+i]),r)}else for(let g=0;g<t;g++)e[g]=VI(o[n+g],r)}else for(let o=0;o<t;o++)e[o]=VI(Number(A.iget(o)),r);return I}function VI(A,r){if(Number.isNaN(A)||Number.isNaN(r))return NaN;if(A===r)return r;if(A===0)return r>0?Number.MIN_VALUE:-Number.MIN_VALUE;let I=new ArrayBuffer(8),e=new Float64Array(I),t=new BigInt64Array(I);e[0]=A;let o=t[0];return(A>0?r>A:r<A)?o=o+1n:o=o-1n,t[0]=o,e[0]}function LG(A){eA(A.dtype,"spacing","spacing is only defined for real numbers.");let r=d.zeros(Array.from(A.shape),"float64"),I=r.data,e=A.size;if(A.isCContiguous){let t=A.data,o=A.offset;if(L(A.dtype)){let n=t;for(let g=0;g<e;g++)I[g]=nu(Number(n[o+g]))}else for(let n=0;n<e;n++)I[n]=nu(t[o+n])}else for(let t=0;t<e;t++)I[t]=nu(Number(A.iget(t)));return r}function nu(A){if(Number.isNaN(A))return NaN;if(!Number.isFinite(A))return NaN;if(Math.abs(A)===0)return Number.MIN_VALUE;let I=VI(A,1/0);return Math.abs(I-A)}function Wg(A,r){let I=A.shape.length,e=r.length,t=new Array(e).fill(0);for(let o=0;o<I;o++){let n=e-I+o,g=A.shape[o],i=r[n];if(g===i)t[n]=A.strides[o];else if(g===1)t[n]=0;else throw new Error("Invalid broadcast")}return d.fromData(A.data,Array.from(r),A.dtype,t,A.offset)}function HG(A){let r=A.dtype,I=A.size,e=new Uint8Array(I);if(k(r))if(A.isCContiguous){let t=A.offset,o=A.data;for(let n=0;n<I;n++)e[n]=o[(t+n)*2+1]!==0?1:0}else for(let t=0;t<I;t++){let o=A.iget(t);e[t]=o.im!==0?1:0}return d.fromData(e,Array.from(A.shape),"bool")}function _G(A){return k(A.dtype)}function YG(A){let r=A.dtype,I=A.size,e=new Uint8Array(I);if(k(r))if(A.isCContiguous){let t=A.offset,o=A.data;for(let n=0;n<I;n++)e[n]=o[(t+n)*2+1]===0?1:0}else for(let t=0;t<I;t++){let o=A.iget(t);e[t]=o.im===0?1:0}else e.fill(1);return d.fromData(e,Array.from(A.shape),"bool")}function vG(A){return!k(A.dtype)}function XG(A){eA(A.dtype,"isneginf","This operation is not supported for complex values because it would be ambiguous.");let r=new Uint8Array(A.size),I=A.size;if(!(L(A.dtype)||pA(A.dtype)))if(A.isCContiguous){let e=A.data,t=A.offset;for(let o=0;o<I;o++){let n=e[t+o];r[o]=n===-1/0?1:0}}else for(let e=0;e<I;e++)r[e]=Number(A.iget(e))===-1/0?1:0;return d.fromData(r,Array.from(A.shape),"bool")}function TG(A){eA(A.dtype,"isposinf","This operation is not supported for complex values because it would be ambiguous.");let r=new Uint8Array(A.size),I=A.size;if(!(L(A.dtype)||pA(A.dtype)))if(A.isCContiguous){let e=A.data,t=A.offset;for(let o=0;o<I;o++){let n=e[t+o];r[o]=n===1/0?1:0}}else for(let e=0;e<I;e++)r[e]=Number(A.iget(e))===1/0?1:0;return d.fromData(r,Array.from(A.shape),"bool")}function PG(A){return A.isFContiguous}function KG(A,r=100){let I=A.dtype;if(k(I)){let e=A.size,o=r*(I==="complex64"?11920929e-14:2220446049250313e-31);if(A.isCContiguous){let n=A.data,g=A.offset,i=!0;for(let Q=0;Q<e;Q++){let a=n[(g+Q)*2+1];if(Math.abs(a)>o){i=!1;break}}if(i){let Q=I==="complex64"?"float32":"float64",a=d.zeros(Array.from(A.shape),Q),B=a.data;for(let s=0;s<e;s++)B[s]=n[(g+s)*2];return a}}else{let n=!0;for(let g=0;g<e;g++){let i=A.iget(g);if(Math.abs(i.im)>o){n=!1;break}}if(n){let g=I==="complex64"?"float32":"float64",i=d.zeros(Array.from(A.shape),g),Q=i.data;for(let a=0;a<e;a++){let B=A.iget(a);Q[a]=B.re}return i}}return A.copy()}return A.copy()}function VG(A){return typeof A=="number"||typeof A=="bigint"||typeof A=="boolean"||typeof A=="string"}function WG(A){return A==null?!1:typeof A[Symbol.iterator]=="function"}function OG(A,r){let e={b:["bool"],i:["int8","int16","int32","int64"],u:["uint8","uint16","uint32","uint64"],f:["float32","float64"]}[r];return e?e.includes(A):!1}function ZG(A,r){let I=["float64","float32","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"],e=I.indexOf(A),t=I.indexOf(r);return e<=t?A:r}function Fr(A){if(A.length===0)return[];if(A.length===1)return Array.from(A[0]);let r=Math.max(...A.map(e=>e.length)),I=new Array(r);for(let e=0;e<r;e++){let t=1;for(let o of A){let n=o.length-r+e,g=n<0?1:o[n];if(g!==1){if(t===1)t=g;else if(t!==g)return null}}I[e]=t}return I}function fv(A,r,I){let e=A.length,t=I.length,o=new Array(t).fill(0);for(let n=0;n<e;n++){let g=t-e+n,i=A[n],Q=I[g];if(i===Q)o[g]=r[n];else if(i===1)o[g]=0;else throw new Error("Invalid broadcast")}return o}function sr(A,r){let I=fv(A.shape,A.strides,r);return d.fromData(A.data,Array.from(r),A.dtype,I,A.offset)}function CI(A,r){return[A[r*2],A[r*2+1]]}function zG(A,r){if(k(A.dtype))return CI(A.data,r);let I=A.iget(r);return I instanceof T?[I.re,I.im]:[Number(I),0]}function OI(A,r,I){let e=Fr([Array.from(A.shape),Array.from(r.shape)]);if(!e)throw new Error("Cannot broadcast arrays together");let t=sr(A,e),o=sr(r,e),n=e.reduce((i,Q)=>i*Q,1),g=new Uint8Array(n);for(let i=0;i<n;i++){let[Q,a]=zG(t,i),[B,s]=zG(o,i);g[i]=I(Q,a,B,s)?1:0}return d.fromData(g,e,"bool")}function jG(A,r){return typeof r=="number"?mv(A,r):k(A.dtype)||k(r.dtype)?OI(A,r,(I,e,t,o)=>I!==t?I>t:e>o):tr(A,r,(I,e)=>I>e)}function $G(A,r){return typeof r=="number"?yv(A,r):k(A.dtype)||k(r.dtype)?OI(A,r,(I,e,t,o)=>I!==t?I>=t:e>=o):tr(A,r,(I,e)=>I>=e)}function AS(A,r){return typeof r=="number"?lv(A,r):k(A.dtype)||k(r.dtype)?OI(A,r,(I,e,t,o)=>I!==t?I<t:e<o):tr(A,r,(I,e)=>I<e)}function rS(A,r){return typeof r=="number"?hv(A,r):k(A.dtype)||k(r.dtype)?OI(A,r,(I,e,t,o)=>I!==t?I<=t:e<=o):tr(A,r,(I,e)=>I<=e)}function IS(A,r){return typeof r=="number"?dv(A,r):k(A.dtype)||k(r.dtype)?OI(A,r,(I,e,t,o)=>I===t&&e===o):tr(A,r,(I,e)=>I===e)}function eS(A,r){return typeof r=="number"?bv(A,r):k(A.dtype)||k(r.dtype)?OI(A,r,(I,e,t,o)=>I!==t||e!==o):tr(A,r,(I,e)=>I!==e)}function iu(A,r,I=1e-5,e=1e-8){return typeof r=="number"?pv(A,r,I,e):tr(A,r,(t,o)=>{let n=Math.abs(t-o),g=e+I*Math.abs(o);return n<=g})}function tS(A,r,I=1e-5,e=1e-8){let t=iu(A,r,I,e),o=t.data;for(let n=0;n<t.size;n++)if(o[n]===0)return!1;return!0}function oS(A,r){let I=[Array.from(A.shape),Array.from(r.shape)],e=Fr(I);if(e===null)return!1;let t=sr(A,e),o=sr(r,e),n=e.length,g=e.reduce((a,B)=>a*B,1),i=L(t.dtype),Q=L(o.dtype);for(let a=0;a<g;a++){let B=a,s=new Array(n);for(let u=n-1;u>=0;u--)s[u]=B%e[u],B=Math.floor(B/e[u]);let C=t.get(...s),E=o.get(...s);if(i||Q){let u=typeof C=="bigint"?C:BigInt(Number(C)),f=typeof E=="bigint"?E:BigInt(Number(E));if(u!==f)return!1}else if(C!==E)return!1}return!0}function mv(A,r){let I=new Uint8Array(A.size),e=A.size,t=A.isCContiguous;if(k(A.dtype))if(t){let o=A.data,n=A.offset;for(let g=0;g<e;g++){let[i,Q]=CI(o,n+g);I[g]=(i!==r?i>r:Q>0)?1:0}}else for(let o=0;o<e;o++){let n=A.iget(o);I[o]=(n.re!==r?n.re>r:n.im>0)?1:0}else if(t){let o=A.data,n=A.offset;for(let g=0;g<e;g++)I[g]=o[n+g]>r?1:0}else for(let o=0;o<e;o++)I[o]=Number(A.iget(o))>r?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function yv(A,r){let I=new Uint8Array(A.size),e=A.size,t=A.isCContiguous;if(k(A.dtype))if(t){let o=A.data,n=A.offset;for(let g=0;g<e;g++){let[i,Q]=CI(o,n+g);I[g]=(i!==r?i>=r:Q>=0)?1:0}}else for(let o=0;o<e;o++){let n=A.iget(o);I[o]=(n.re!==r?n.re>=r:n.im>=0)?1:0}else if(t){let o=A.data,n=A.offset;for(let g=0;g<e;g++)I[g]=o[n+g]>=r?1:0}else for(let o=0;o<e;o++)I[o]=Number(A.iget(o))>=r?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function lv(A,r){let I=new Uint8Array(A.size),e=A.size,t=A.isCContiguous;if(k(A.dtype))if(t){let o=A.data,n=A.offset;for(let g=0;g<e;g++){let[i,Q]=CI(o,n+g);I[g]=(i!==r?i<r:Q<0)?1:0}}else for(let o=0;o<e;o++){let n=A.iget(o);I[o]=(n.re!==r?n.re<r:n.im<0)?1:0}else if(t){let o=A.data,n=A.offset;for(let g=0;g<e;g++)I[g]=o[n+g]<r?1:0}else for(let o=0;o<e;o++)I[o]=Number(A.iget(o))<r?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function hv(A,r){let I=new Uint8Array(A.size),e=A.size,t=A.isCContiguous;if(k(A.dtype))if(t){let o=A.data,n=A.offset;for(let g=0;g<e;g++){let[i,Q]=CI(o,n+g);I[g]=(i!==r?i<=r:Q<=0)?1:0}}else for(let o=0;o<e;o++){let n=A.iget(o);I[o]=(n.re!==r?n.re<=r:n.im<=0)?1:0}else if(t){let o=A.data,n=A.offset;for(let g=0;g<e;g++)I[g]=o[n+g]<=r?1:0}else for(let o=0;o<e;o++)I[o]=Number(A.iget(o))<=r?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function dv(A,r){let I=new Uint8Array(A.size),e=A.size,t=A.dtype,o=A.isCContiguous;if(k(t))if(o){let n=A.data,g=A.offset;for(let i=0;i<e;i++){let[Q,a]=CI(n,g+i);I[i]=Q===r&&a===0?1:0}}else for(let n=0;n<e;n++){let g=A.iget(n);I[n]=g.re===r&&g.im===0?1:0}else if(L(t)){let n=BigInt(Math.round(r));if(o){let g=A.data,i=A.offset;for(let Q=0;Q<e;Q++)I[Q]=g[i+Q]===n?1:0}else for(let g=0;g<e;g++)I[g]=A.iget(g)===n?1:0}else if(o){let n=A.data,g=A.offset;for(let i=0;i<e;i++)I[i]=n[g+i]===r?1:0}else for(let n=0;n<e;n++)I[n]=Number(A.iget(n))===r?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function bv(A,r){let I=new Uint8Array(A.size),e=A.size,t=A.dtype,o=A.isCContiguous;if(k(t))if(o){let n=A.data,g=A.offset;for(let i=0;i<e;i++){let[Q,a]=CI(n,g+i);I[i]=Q!==r||a!==0?1:0}}else for(let n=0;n<e;n++){let g=A.iget(n);I[n]=g.re!==r||g.im!==0?1:0}else if(o){let n=A.data,g=A.offset;for(let i=0;i<e;i++)I[i]=n[g+i]!==r?1:0}else for(let n=0;n<e;n++)I[n]=Number(A.iget(n))!==r?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function pv(A,r,I,e){let t=new Uint8Array(A.size),o=A.size,n=e+I*Math.abs(r);if(A.isCContiguous){let g=A.data,i=A.offset;for(let Q=0;Q<o;Q++){let a=Math.abs(Number(g[i+Q])-r);t[Q]=a<=n?1:0}}else for(let g=0;g<o;g++){let i=Math.abs(Number(A.iget(g))-r);t[g]=i<=n?1:0}return d.fromData(t,Array.from(A.shape),"bool")}function Bn(A,r){let I=typeof r=="number"?r:G(r);return R(NG(G(A),I))}function sn(A,r){let I=typeof r=="number"?r:G(r);return R(FG(G(A),I))}function Cn(A){return R(GG(G(A)))}function En(A,r){let I=typeof r=="number"?r:G(r);return R(SG(G(A),I))}function un(A){return R(RG(G(A)))}function cn(A){return R(kG(G(A)))}function Dn(A){return R(qG(G(A)))}function fn(A){return R(MG(G(A)))}function gu(A){return R(XG(G(A)))}function Qu(A){return R(TG(G(A)))}function au(A){return R(HG(G(A)))}function Og(A){return _G(G(A))}function Bu(A){return R(YG(G(A)))}function Zg(A){return vG(G(A))}function su(A,r){return R(KG(G(A),r))}function zg(A){return PG(G(A))}function jg(A){return VG(A)}function $g(A){return WG(A)}function AQ(A,r){return OG(A,r)}function rQ(A,r){return ZG(A,r)}function mn(A,r){let I=typeof r=="number"?r:G(r);return R(xG(G(A),I))}function yn(A){return R(JG(G(A)))}function ln(A,r){let I=typeof r=="number"?r:G(r);return R(UG(G(A),I))}function hn(A){return R(LG(G(A)))}function dn(A,r){return R(jG(G(A),typeof r=="number"?r:G(r)))}function bn(A,r){return R($G(G(A),typeof r=="number"?r:G(r)))}function pn(A,r){return R(AS(G(A),typeof r=="number"?r:G(r)))}function wn(A,r){return R(rS(G(A),typeof r=="number"?r:G(r)))}function Nn(A,r){return R(IS(G(A),typeof r=="number"?r:G(r)))}function Fn(A,r){return R(eS(G(A),typeof r=="number"?r:G(r)))}function Gn(A,r,I=1e-5,e=1e-8){return R(iu(G(A),typeof r=="number"?r:G(r),I,e))}function ZI(A,r,I=1e-5,e=1e-8){return tS(G(A),typeof r=="number"?r:G(r),I,e)}var wv="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",Sn=null;function zI(){if(Sn)return Sn;let A=atob(wv),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Sn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Sn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Sn}function iS(A,r){return zI().exports.reduce_count_nz_f64(A,r)}function gS(A,r){return zI().exports.reduce_count_nz_f32(A,r)}function Cu(A,r){return zI().exports.reduce_count_nz_i64(A,r)}function Eu(A,r){return zI().exports.reduce_count_nz_i32(A,r)}function uu(A,r){return zI().exports.reduce_count_nz_i16(A,r)}function cu(A,r){return zI().exports.reduce_count_nz_i8(A,r)}var Nv=64,Fv={float64:iS,float32:gS,int64:Cu,uint64:Cu,int32:Eu,uint32:Eu,int16:uu,uint16:uu,int8:cu,uint8:cu},Gv={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function QS(A){if(!A.isCContiguous)return null;let r=A.size;if(r<Nv*Y.thresholdMultiplier)return null;let I=A.dtype,e=Fv[I],t=Gv[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var Sv="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",Rn=null;function lA(){if(Rn)return Rn;let A=atob(Sv),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Rn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Rn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Rn}function aS(A,r){lA().exports.sort_f64(A,r)}function BS(A,r){lA().exports.sort_f32(A,r)}function sS(A,r){lA().exports.sort_i64(A,r)}function CS(A,r){lA().exports.sort_u64(A,r)}function ES(A,r){lA().exports.sort_i32(A,r)}function uS(A,r){lA().exports.sort_u32(A,r)}function cS(A,r){lA().exports.sort_i16(A,r)}function DS(A,r){lA().exports.sort_u16(A,r)}function fS(A,r){lA().exports.sort_i8(A,r)}function mS(A,r){lA().exports.sort_u8(A,r)}function yS(A,r,I){lA().exports.sort_slices_f64(A,r,I)}function lS(A,r,I){lA().exports.sort_slices_f32(A,r,I)}function hS(A,r,I){lA().exports.sort_slices_i64(A,r,I)}function dS(A,r,I){lA().exports.sort_slices_u64(A,r,I)}function bS(A,r,I){lA().exports.sort_slices_i32(A,r,I)}function pS(A,r,I){lA().exports.sort_slices_u32(A,r,I)}function wS(A,r,I){lA().exports.sort_slices_i16(A,r,I)}function NS(A,r,I){lA().exports.sort_slices_u16(A,r,I)}function FS(A,r,I){lA().exports.sort_slices_i8(A,r,I)}function GS(A,r,I){lA().exports.sort_slices_u8(A,r,I)}function SS(A,r){lA().exports.sort_c128(A,r)}function RS(A,r){lA().exports.sort_c64(A,r)}function kS(A,r,I){lA().exports.sort_slices_c128(A,r,I)}function qS(A,r,I){lA().exports.sort_slices_c64(A,r,I)}var Rv=64,MS={float64:aS,float32:BS,int64:sS,uint64:CS,int32:ES,uint32:uS,int16:cS,uint16:DS,int8:fS,uint8:mS,complex128:SS,complex64:RS},kv={float64:yS,float32:lS,int64:hS,uint64:dS,int32:bS,uint32:pS,int16:wS,uint16:NS,int8:FS,uint8:GS,complex128:kS,complex64:qS},Du={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array,complex128:Float64Array,complex64:Float32Array};function xS(A,r,I,e,t){if(I<2)return!0;let o=kv[t];if(o&&r[0]===0&&e>1&&r[1]===I){let E=Du[t];if(!E)return!1;let u=E.BYTES_PER_ELEMENT,f=A.length*u;J(f),U();let m=q(A);o(m,I,e);let c=K();return new Uint8Array(A.buffer,A.byteOffset,A.byteLength).set(new Uint8Array(c.buffer,m,A.byteLength)),!0}let n=MS[t],g=Du[t];if(!n||!g)return!1;let i=t==="complex128"||t==="complex64",Q=g.BYTES_PER_ELEMENT,a=i?Q*2:Q,B=A.length*Q;J(B),U();let s=q(A);for(let E=0;E<e;E++)n(s+r[E]*a,I);let C=K();return new Uint8Array(A.buffer,A.byteOffset,A.byteLength).set(new Uint8Array(C.buffer,s,A.byteLength)),!0}function JS(A){if(!A.isCContiguous)return null;let r=A.size;if(r<Rv*Y.thresholdMultiplier)return null;let I=A.dtype,e=MS[I],t=Du[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT,n=r*o;J(n),U();let g=A.offset,Q=I==="complex128"||I==="complex64"?r*2:r,a=A.data.subarray(g,g+Q),B=q(a);e(B,r);let s=v(B,Q,t);return d.fromData(s,Array.from(A.shape),I)}var qv="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",kn=null;function hA(){if(kn)return kn;let A=atob(qv),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);kn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=kn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),kn}function US(A,r,I){hA().exports.argsort_f64(A,r,I)}function LS(A,r,I){hA().exports.argsort_f32(A,r,I)}function HS(A,r,I){hA().exports.argsort_i64(A,r,I)}function _S(A,r,I){hA().exports.argsort_u64(A,r,I)}function YS(A,r,I){hA().exports.argsort_i32(A,r,I)}function vS(A,r,I){hA().exports.argsort_u32(A,r,I)}function XS(A,r,I){hA().exports.argsort_i16(A,r,I)}function TS(A,r,I){hA().exports.argsort_u16(A,r,I)}function PS(A,r,I){hA().exports.argsort_i8(A,r,I)}function KS(A,r,I){hA().exports.argsort_u8(A,r,I)}function VS(A,r,I,e){hA().exports.argsort_slices_f64(A,r,I,e)}function WS(A,r,I,e){hA().exports.argsort_slices_f32(A,r,I,e)}function OS(A,r,I,e){hA().exports.argsort_slices_i64(A,r,I,e)}function ZS(A,r,I,e){hA().exports.argsort_slices_u64(A,r,I,e)}function zS(A,r,I,e){hA().exports.argsort_slices_i32(A,r,I,e)}function jS(A,r,I,e){hA().exports.argsort_slices_u32(A,r,I,e)}function $S(A,r,I,e){hA().exports.argsort_slices_i16(A,r,I,e)}function AR(A,r,I,e){hA().exports.argsort_slices_u16(A,r,I,e)}function rR(A,r,I,e){hA().exports.argsort_slices_i8(A,r,I,e)}function IR(A,r,I,e){hA().exports.argsort_slices_u8(A,r,I,e)}function eR(A,r,I){hA().exports.argsort_c128(A,r,I)}function tR(A,r,I){hA().exports.argsort_c64(A,r,I)}function oR(A,r,I,e){hA().exports.argsort_slices_c128(A,r,I,e)}function nR(A,r,I,e){hA().exports.argsort_slices_c64(A,r,I,e)}var Mv=64,iR={float64:US,float32:LS,int64:HS,uint64:_S,int32:YS,uint32:vS,int16:XS,uint16:TS,int8:PS,uint8:KS,complex128:eR,complex64:tR},xv={float64:VS,float32:WS,int64:OS,uint64:ZS,int32:zS,uint32:jS,int16:$S,uint16:AR,int8:rR,uint8:IR,complex128:oR,complex64:nR},fu={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array,complex128:Float64Array,complex64:Float32Array};function gR(A,r,I,e,t,o,n){if(t<2)return!1;let g=n==="complex128"||n==="complex64",i=xv[n];if(i&&I[0]===0&&o>1&&I[1]===t&&e[0]===0&&e[1]===t){let c=fu[n];if(!c)return!1;let D=c.BYTES_PER_ELEMENT,y=A.length*D,l=r.length*4;J(y+l),U();let h=q(A),b=_(l);i(h,b,t,o);let p=K();return new Uint8Array(r.buffer,r.byteOffset,r.byteLength).set(new Uint8Array(p.buffer,b,r.byteLength)),!0}let Q=iR[n],a=fu[n];if(!Q||!a)return!1;let B=a.BYTES_PER_ELEMENT,s=g?B*2:B,C=A.length*B,E=r.length*4;J(C+E),U();let u=q(A),f=_(E);for(let c=0;c<o;c++)Q(u+I[c]*s,f+e[c]*4,t);let m=K();return new Uint8Array(r.buffer,r.byteOffset,r.byteLength).set(new Uint8Array(m.buffer,f,r.byteLength)),!0}function QR(A){if(!A.isCContiguous)return null;let r=A.size;if(r<Mv*Y.thresholdMultiplier)return null;let I=A.dtype,e=iR[I],t=fu[I];if(!e||!t)return null;let o=I==="complex128"||I==="complex64",n=t.BYTES_PER_ELEMENT,g=o?r*2:r,i=g*n,Q=r*4;J(i+Q),U();let a=A.offset,B=A.data.subarray(a,a+g),s=q(B),C=_(Q);e(s,C,r);let E=v(C,r,Int32Array);return d.fromData(E,Array.from(A.shape),"int32")}var Jv="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",qn=null;function kA(){if(qn)return qn;let A=atob(Jv),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);qn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=qn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),qn}function aR(A,r,I){kA().exports.partition_f64(A,r,I)}function BR(A,r,I){kA().exports.partition_f32(A,r,I)}function sR(A,r,I){kA().exports.partition_i64(A,r,I)}function CR(A,r,I){kA().exports.partition_u64(A,r,I)}function ER(A,r,I){kA().exports.partition_i32(A,r,I)}function uR(A,r,I){kA().exports.partition_u32(A,r,I)}function cR(A,r,I){kA().exports.partition_i16(A,r,I)}function DR(A,r,I){kA().exports.partition_u16(A,r,I)}function fR(A,r,I){kA().exports.partition_i8(A,r,I)}function mR(A,r,I){kA().exports.partition_u8(A,r,I)}function yR(A,r,I,e){kA().exports.partition_slices_f64(A,r,I,e)}function lR(A,r,I,e){kA().exports.partition_slices_f32(A,r,I,e)}function hR(A,r,I,e){kA().exports.partition_slices_i64(A,r,I,e)}function dR(A,r,I,e){kA().exports.partition_slices_u64(A,r,I,e)}function bR(A,r,I,e){kA().exports.partition_slices_i32(A,r,I,e)}function pR(A,r,I,e){kA().exports.partition_slices_u32(A,r,I,e)}function wR(A,r,I,e){kA().exports.partition_slices_i16(A,r,I,e)}function NR(A,r,I,e){kA().exports.partition_slices_u16(A,r,I,e)}function FR(A,r,I,e){kA().exports.partition_slices_i8(A,r,I,e)}function GR(A,r,I,e){kA().exports.partition_slices_u8(A,r,I,e)}var Uv=64,SR={float64:aR,float32:BR,int64:sR,uint64:CR,int32:ER,uint32:uR,int16:cR,uint16:DR,int8:fR,uint8:mR},Lv={float64:yR,float32:lR,int64:hR,uint64:dR,int32:bR,uint32:pR,int16:wR,uint16:NR,int8:FR,uint8:GR},mu={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function RR(A,r,I,e,t,o){if(I<2)return!0;let n=Lv[o];if(n&&r[0]===0&&e>1&&r[1]===I){let C=mu[o];if(!C)return!1;let E=C.BYTES_PER_ELEMENT,u=A.length*E;J(u),U();let f=q(A);n(f,I,e,t);let m=K();return new Uint8Array(A.buffer,A.byteOffset,A.byteLength).set(new Uint8Array(m.buffer,f,A.byteLength)),!0}let g=SR[o],i=mu[o];if(!g||!i)return!1;let Q=i.BYTES_PER_ELEMENT,a=A.length*Q;J(a),U();let B=q(A);for(let C=0;C<e;C++)g(B+r[C]*Q,I,t);let s=K();return new Uint8Array(A.buffer,A.byteOffset,A.byteLength).set(new Uint8Array(s.buffer,B,A.byteLength)),!0}function kR(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<Uv*Y.thresholdMultiplier)return null;let e=A.dtype,t=SR[e],o=mu[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n;J(g),U();let i=A.offset,Q=A.data.subarray(i,i+I),a=q(Q);t(a,I,r);let B=v(a,I,o);return d.fromData(B,Array.from(A.shape),e)}var Hv="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",Mn=null;function qA(){if(Mn)return Mn;let A=atob(Hv),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Mn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Mn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Mn}function qR(A,r,I,e){qA().exports.argpartition_f64(A,r,I,e)}function MR(A,r,I,e){qA().exports.argpartition_f32(A,r,I,e)}function xR(A,r,I,e){qA().exports.argpartition_i64(A,r,I,e)}function JR(A,r,I,e){qA().exports.argpartition_u64(A,r,I,e)}function UR(A,r,I,e){qA().exports.argpartition_i32(A,r,I,e)}function LR(A,r,I,e){qA().exports.argpartition_u32(A,r,I,e)}function HR(A,r,I,e){qA().exports.argpartition_i16(A,r,I,e)}function _R(A,r,I,e){qA().exports.argpartition_u16(A,r,I,e)}function YR(A,r,I,e){qA().exports.argpartition_i8(A,r,I,e)}function vR(A,r,I,e){qA().exports.argpartition_u8(A,r,I,e)}function XR(A,r,I,e,t){qA().exports.argpartition_slices_f64(A,r,I,e,t)}function TR(A,r,I,e,t){qA().exports.argpartition_slices_f32(A,r,I,e,t)}function PR(A,r,I,e,t){qA().exports.argpartition_slices_i64(A,r,I,e,t)}function KR(A,r,I,e,t){qA().exports.argpartition_slices_u64(A,r,I,e,t)}function VR(A,r,I,e,t){qA().exports.argpartition_slices_i32(A,r,I,e,t)}function WR(A,r,I,e,t){qA().exports.argpartition_slices_u32(A,r,I,e,t)}function OR(A,r,I,e,t){qA().exports.argpartition_slices_i16(A,r,I,e,t)}function ZR(A,r,I,e,t){qA().exports.argpartition_slices_u16(A,r,I,e,t)}function zR(A,r,I,e,t){qA().exports.argpartition_slices_i8(A,r,I,e,t)}function jR(A,r,I,e,t){qA().exports.argpartition_slices_u8(A,r,I,e,t)}var _v=64,$R={float64:qR,float32:MR,int64:xR,uint64:JR,int32:UR,uint32:LR,int16:HR,uint16:_R,int8:YR,uint8:vR},Yv={float64:XR,float32:TR,int64:PR,uint64:KR,int32:VR,uint32:WR,int16:OR,uint16:ZR,int8:zR,uint8:jR},yu={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Ak(A,r,I,e,t,o,n,g){if(t<2)return!1;let i=Yv[g];if(i&&I[0]===0&&o>1&&I[1]===t&&e[0]===0&&e[1]===t){let m=yu[g];if(!m)return!1;let c=m.BYTES_PER_ELEMENT,D=A.length*c,y=r.length*4;J(D+y),U();let l=q(A),h=_(y);i(l,h,t,o,n);let b=K();return new Uint8Array(r.buffer,r.byteOffset,r.byteLength).set(new Uint8Array(b.buffer,h,r.byteLength)),!0}let Q=$R[g],a=yu[g];if(!Q||!a)return!1;let B=a.BYTES_PER_ELEMENT,s=A.length*B,C=r.length*4;J(s+C),U();let E=q(A),u=_(C);for(let m=0;m<o;m++)Q(E+I[m]*B,u+e[m]*4,t,n);let f=K();return new Uint8Array(r.buffer,r.byteOffset,r.byteLength).set(new Uint8Array(f.buffer,u,r.byteLength)),!0}function rk(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<_v*Y.thresholdMultiplier)return null;let e=A.dtype,t=$R[e],o=yu[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*4;J(g+i),U();let Q=A.offset,a=A.data.subarray(Q,Q+I),B=q(a),s=_(i);t(B,s,I,r);let C=v(s,I,Int32Array);return d.fromData(C,Array.from(A.shape),"int32")}var vv="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",xn=null;function MA(){if(xn)return xn;let A=atob(vv),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);xn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=xn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),xn}function Ik(A,r,I,e,t){MA().exports.searchsorted_left_f64(A,r,I,e,t)}function ek(A,r,I,e,t){MA().exports.searchsorted_left_f32(A,r,I,e,t)}function tk(A,r,I,e,t){MA().exports.searchsorted_left_i64(A,r,I,e,t)}function ok(A,r,I,e,t){MA().exports.searchsorted_left_u64(A,r,I,e,t)}function nk(A,r,I,e,t){MA().exports.searchsorted_left_i32(A,r,I,e,t)}function ik(A,r,I,e,t){MA().exports.searchsorted_left_u32(A,r,I,e,t)}function gk(A,r,I,e,t){MA().exports.searchsorted_left_i16(A,r,I,e,t)}function Qk(A,r,I,e,t){MA().exports.searchsorted_left_u16(A,r,I,e,t)}function ak(A,r,I,e,t){MA().exports.searchsorted_left_i8(A,r,I,e,t)}function Bk(A,r,I,e,t){MA().exports.searchsorted_left_u8(A,r,I,e,t)}function sk(A,r,I,e,t){MA().exports.searchsorted_right_f64(A,r,I,e,t)}function Ck(A,r,I,e,t){MA().exports.searchsorted_right_f32(A,r,I,e,t)}function Ek(A,r,I,e,t){MA().exports.searchsorted_right_i64(A,r,I,e,t)}function uk(A,r,I,e,t){MA().exports.searchsorted_right_u64(A,r,I,e,t)}function ck(A,r,I,e,t){MA().exports.searchsorted_right_i32(A,r,I,e,t)}function Dk(A,r,I,e,t){MA().exports.searchsorted_right_u32(A,r,I,e,t)}function fk(A,r,I,e,t){MA().exports.searchsorted_right_i16(A,r,I,e,t)}function mk(A,r,I,e,t){MA().exports.searchsorted_right_u16(A,r,I,e,t)}function yk(A,r,I,e,t){MA().exports.searchsorted_right_i8(A,r,I,e,t)}function lk(A,r,I,e,t){MA().exports.searchsorted_right_u8(A,r,I,e,t)}var Xv=64,Tv={float64:Ik,float32:ek,int64:tk,uint64:ok,int32:nk,uint32:ik,int16:gk,uint16:Qk,int8:ak,uint8:Bk},Pv={float64:sk,float32:Ck,int64:Ek,uint64:uk,int32:ck,uint32:Dk,int16:fk,uint16:mk,int8:yk,uint8:lk},Kv={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function hk(A,r,I){if(!A.isCContiguous||!r.isCContiguous)return null;let e=A.size,t=r.size;if(t<Xv*Y.thresholdMultiplier)return null;let o=A.dtype,g=(I==="left"?Tv:Pv)[o],i=Kv[o];if(!g||!i||r.dtype!==o)return null;let Q=i.BYTES_PER_ELEMENT,a=e*Q,B=t*Q,s=t*4;J(a+B+s),U();let C=A.offset,E=A.data.subarray(C,C+e),u=q(E),f=r.offset,m=r.data.subarray(f,f+t),c=q(m),D=_(s);g(u,e,c,D,t);let y=v(D,t,Int32Array);return d.fromData(y,Array.from(r.shape),"int32")}var Vv="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",Jn=null;function Gr(){if(Jn)return Jn;let A=atob(Vv),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Jn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Jn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Jn}function dk(A,r,I,e){Gr().exports.lexsort_f64(A,r,I,e)}function bk(A,r,I,e){Gr().exports.lexsort_f32(A,r,I,e)}function pk(A,r,I,e){Gr().exports.lexsort_i64(A,r,I,e)}function wk(A,r,I,e){Gr().exports.lexsort_u64(A,r,I,e)}function Nk(A,r,I,e){Gr().exports.lexsort_i32(A,r,I,e)}function Fk(A,r,I,e){Gr().exports.lexsort_u32(A,r,I,e)}function Gk(A,r,I,e){Gr().exports.lexsort_i16(A,r,I,e)}function Sk(A,r,I,e){Gr().exports.lexsort_u16(A,r,I,e)}function Rk(A,r,I,e){Gr().exports.lexsort_i8(A,r,I,e)}function kk(A,r,I,e){Gr().exports.lexsort_u8(A,r,I,e)}var Wv=64,Ov={float64:dk,float32:bk,int64:pk,uint64:wk,int32:Nk,uint32:Fk,int16:Gk,uint16:Sk,int8:Rk,uint8:kk},Zv={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function qk(A){if(A.length===0)return null;let r=A[0].size;if(r<Wv*Y.thresholdMultiplier)return null;let I=A[0].dtype;for(let C of A)if(C.dtype!==I||!C.isCContiguous||C.ndim!==1||C.size!==r)return null;let e=Ov[I],t=Zv[I];if(!e||!t)return null;let o=A.length,n=t.BYTES_PER_ELEMENT,g=o*r*n,i=r*4;J(g+i),U();let Q=_(g),a=K();for(let C=0;C<o;C++){let E=A[C],u=E.offset,f=E.data.subarray(u,u+r),m=Q+C*r*n;new Uint8Array(a.buffer,m,r*n).set(new Uint8Array(f.buffer,f.byteOffset,f.byteLength))}let B=_(i);e(Q,o,r,B);let s=v(B,r,Int32Array);return d.fromData(s,[r],"int32")}var zv="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",Un=null;function uA(){if(Un)return Un;let A=atob(zv),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Un=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Un.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Un}function Mk(A,r,I,e){return uA().exports.extract_f64(A,r,I,e)}function xk(A,r,I,e){return uA().exports.extract_f32(A,r,I,e)}function Jk(A,r,I,e){return uA().exports.extract_i64(A,r,I,e)}function Uk(A,r,I,e){return uA().exports.extract_u64(A,r,I,e)}function Lk(A,r,I,e){return uA().exports.extract_i32(A,r,I,e)}function Hk(A,r,I,e){return uA().exports.extract_u32(A,r,I,e)}function _k(A,r,I,e){return uA().exports.extract_i16(A,r,I,e)}function Yk(A,r,I,e){return uA().exports.extract_u16(A,r,I,e)}function vk(A,r,I,e){return uA().exports.extract_i8(A,r,I,e)}function Xk(A,r,I,e){return uA().exports.extract_u8(A,r,I,e)}function Tk(A,r,I,e,t){uA().exports.take_axis0_2d_f64(A,r,I,e,t)}function Pk(A,r,I,e,t){uA().exports.take_axis0_2d_f32(A,r,I,e,t)}function Kk(A,r,I,e,t){uA().exports.take_axis0_2d_i64(A,r,I,e,t)}function Vk(A,r,I,e,t){uA().exports.take_axis0_2d_u64(A,r,I,e,t)}function Wk(A,r,I,e,t){uA().exports.take_axis0_2d_i32(A,r,I,e,t)}function Ok(A,r,I,e,t){uA().exports.take_axis0_2d_u32(A,r,I,e,t)}function Zk(A,r,I,e,t){uA().exports.take_axis0_2d_i16(A,r,I,e,t)}function zk(A,r,I,e,t){uA().exports.take_axis0_2d_u16(A,r,I,e,t)}function jk(A,r,I,e,t){uA().exports.take_axis0_2d_i8(A,r,I,e,t)}function $k(A,r,I,e,t){uA().exports.take_axis0_2d_u8(A,r,I,e,t)}function Aq(A,r,I,e,t){uA().exports.where_f64(A,r,I,e,t)}function rq(A,r,I,e,t){uA().exports.where_f32(A,r,I,e,t)}function Iq(A,r,I,e,t){uA().exports.where_i64(A,r,I,e,t)}function eq(A,r,I,e,t){uA().exports.where_u64(A,r,I,e,t)}function tq(A,r,I,e,t){uA().exports.where_i32(A,r,I,e,t)}function oq(A,r,I,e,t){uA().exports.where_u32(A,r,I,e,t)}function nq(A,r,I,e,t){uA().exports.where_i16(A,r,I,e,t)}function iq(A,r,I,e,t){uA().exports.where_u16(A,r,I,e,t)}function gq(A,r,I,e,t){uA().exports.where_i8(A,r,I,e,t)}function Qq(A,r,I,e,t){uA().exports.where_u8(A,r,I,e,t)}var lu=64,jv={float64:Mk,float32:xk,int64:Jk,uint64:Uk,int32:Lk,uint32:Hk,int16:_k,uint16:Yk,int8:vk,uint8:Xk},$v={float64:Tk,float32:Pk,int64:Kk,uint64:Vk,int32:Wk,uint32:Ok,int16:Zk,uint16:zk,int8:jk,uint8:$k},hu={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function aq(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=Math.min(A.size,r.size);if(I<lu*Y.thresholdMultiplier)return null;let e=r.dtype,t=jv[e],o=hu[e];if(!t||!o)return null;let n=A.dtype;if(n!=="int32"&&n!=="float64"&&n!=="int8"&&n!=="uint8"&&n!=="int16"&&n!=="uint16"&&n!=="float32"&&n!=="uint32")return null;let g=o.BYTES_PER_ELEMENT,i=A.offset,Q=A.data,a=new Int32Array(I);for(let l=0;l<I;l++)a[l]=Q[i+l]?1:0;let B=I*4,s=I*g,C=I*g;J(B+s+C),U();let E=q(a),u=r.offset,f=r.data.subarray(u,u+I),m=q(f),c=_(C),D=t(E,m,c,I),y=v(c,D,o);return d.fromData(y,[D],e)}function Bq(A,r,I){if(I!==0||A.ndim!==2||r.ndim!==2||!A.isCContiguous||!r.isCContiguous)return null;let[e,t]=A.shape,o=e*t;if(o<lu*Y.thresholdMultiplier)return null;let n=A.dtype,g=$v[n],i=hu[n];if(!g||!i)return null;let Q=i.BYTES_PER_ELEMENT,a=o*Q,B=o*4,s=o*Q;J(a+B+s),U();let C=A.offset,E=A.data.subarray(C,C+o),u=q(E),f=r.offset,m=r.data,c=new Int32Array(o);for(let h=0;h<o;h++)c[h]=Number(m[f+h]);let D=q(c),y=_(s);g(u,D,y,e,t);let l=v(y,o,i);return d.fromData(l,Array.from(r.shape),n)}var A8={float64:Aq,float32:rq,int64:Iq,uint64:eq,int32:tq,uint32:oq,int16:nq,uint16:iq,int8:gq,uint8:Qq};function sq(A,r,I){if(!A.isCContiguous||!r.isCContiguous||!I.isCContiguous)return null;let e=A.size;if(e!==r.size||e!==I.size||e<lu*Y.thresholdMultiplier)return null;let t=r.dtype;if(t!==I.dtype)return null;let o=A8[t],n=hu[t];if(!o||!n)return null;let g=n.BYTES_PER_ELEMENT,i=e*4,Q=e*g;J(i+Q*2+Q),U();let a=A.offset,B=A.data,s=new Int32Array(e);for(let h=0;h<e;h++)s[h]=B[a+h]?1:0;let C=q(s),E=r.offset,u=r.data.subarray(E,E+e),f=q(u),m=I.offset,c=I.data.subarray(m,m+e),D=q(c),y=_(Q);o(C,f,D,y,e);let l=v(y,e,n);return d.fromData(l,Array.from(r.shape),t)}function Cr(A,r,I){if(I){let e=A[r*2],t=A[r*2+1];return e!==0||t!==0}return!!A[r]}function EI(A,r,I,e){let t=isNaN(A)||isNaN(r),o=isNaN(I)||isNaN(e);return t&&o?0:t?1:o||A<I?-1:A>I?1:r<e?-1:r>e?1:0}function Cq(A,r=-1){let I=A.shape,e=I.length,t=A.dtype,o=A.data,n=A.offset,g=A.strides;if(e===0)return A.copy();let i=r;if(i<0&&(i=e+i),i<0||i>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);let Q=A.copy(),a=Q.data,B=I[i],s=Array.from(I).filter((D,y)=>y!==i),C=s.length===0?1:s.reduce((D,y)=>D*y,1),{baseOffsets:E,axisStride:u}=gA(I,g,n,i,C),f=pr(I),{baseOffsets:m,axisStride:c}=gA(I,f,0,i,C);if(e===1&&Q.isCContiguous){let D=JS(Q);if(D)return D}if(c===1&&xS(a,m,B,C,t))return Q;if(k(t)){let D=o,y=a;for(let l=0;l<C;l++){let h=[],b=E[l];for(let w=0;w<B;w++)h.push({re:D[b*2],im:D[b*2+1],idx:w}),b+=u;h.sort((w,N)=>EI(w.re,w.im,N.re,N.im));let p=m[l];for(let w=0;w<B;w++)y[p*2]=h[w].re,y[p*2+1]=h[w].im,p+=c}}else if(L(t)){let D=o,y=a;for(let l=0;l<C;l++){let h=[],b=E[l];for(let w=0;w<B;w++)h.push({value:D[b],idx:w}),b+=u;h.sort((w,N)=>w.value<N.value?-1:w.value>N.value?1:0);let p=m[l];for(let w=0;w<B;w++)y[p]=h[w].value,p+=c}}else for(let D=0;D<C;D++){let y=[],l=E[D];for(let b=0;b<B;b++)y.push(Number(o[l])),l+=u;y.sort((b,p)=>isNaN(b)&&isNaN(p)?0:isNaN(b)?1:isNaN(p)?-1:b-p);let h=m[D];for(let b=0;b<B;b++)a[h]=y[b],h+=c}return Q}function Eq(A,r=-1){let I=A.shape,e=I.length,t=A.dtype,o=A.data,n=A.offset,g=A.strides;if(e===0)return d.zeros([0],"int32");let i=r;if(i<0&&(i=e+i),i<0||i>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);let Q=d.zeros(Array.from(I),"int32"),a=Q.data,B=I[i],s=Array.from(I).filter((D,y)=>y!==i),C=s.length===0?1:s.reduce((D,y)=>D*y,1),{baseOffsets:E,axisStride:u}=gA(I,g,n,i,C),f=pr(I),{baseOffsets:m,axisStride:c}=gA(I,f,0,i,C);if(e===1&&A.isCContiguous){let D=QR(A);if(D)return D}if(c===1&&u===1&&gR(o,a,E,m,B,C,t))return Q;if(k(t)){let D=o;for(let y=0;y<C;y++){let l=[],h=E[y];for(let p=0;p<B;p++)l.push({re:D[h*2],im:D[h*2+1],idx:p}),h+=u;l.sort((p,w)=>EI(p.re,p.im,w.re,w.im));let b=m[y];for(let p=0;p<B;p++)a[b]=l[p].idx,b+=c}}else if(L(t)){let D=o;for(let y=0;y<C;y++){let l=[],h=E[y];for(let p=0;p<B;p++)l.push({value:D[h],idx:p}),h+=u;l.sort((p,w)=>p.value<w.value?-1:p.value>w.value?1:0);let b=m[y];for(let p=0;p<B;p++)a[b]=l[p].idx,b+=c}}else for(let D=0;D<C;D++){let y=[],l=E[D];for(let b=0;b<B;b++)y.push({value:Number(o[l]),idx:b}),l+=u;y.sort((b,p)=>isNaN(b.value)&&isNaN(p.value)?0:isNaN(b.value)?1:isNaN(p.value)?-1:b.value-p.value);let h=m[D];for(let b=0;b<B;b++)a[h]=y[b].idx,h+=c}return Q}function uq(A){if(A.length===0)return d.zeros([0],"int32");let I=A[0].size;for(let B of A){if(B.ndim!==1)throw new Error("keys must be 1D arrays");if(B.size!==I)throw new Error("all keys must have the same length")}let e=qk(A);if(e)return e;let t=[];for(let B=0;B<I;B++)t.push(B);let o=A.map(B=>k(B.dtype)),n=A.map(B=>B.isCContiguous),g=A.map(B=>B.data),i=A.map(B=>B.offset);t.sort((B,s)=>{for(let C=A.length-1;C>=0;C--)if(o[C]){let E,u,f,m;if(n[C]){let c=g[C],D=i[C];E=c[(D+B)*2],u=c[(D+B)*2+1],f=c[(D+s)*2],m=c[(D+s)*2+1]}else{let c=A[C].iget(B),D=A[C].iget(s);E=c.re,u=c.im,f=D.re,m=D.im}if(E<f)return-1;if(E>f)return 1;if(u<m)return-1;if(u>m)return 1}else{let E,u;if(n[C]){let f=g[C],m=i[C];E=Number(f[m+B]),u=Number(f[m+s])}else E=Number(A[C].iget(B)),u=Number(A[C].iget(s));if(isNaN(E)&&isNaN(u))continue;if(isNaN(E))return 1;if(isNaN(u)||E<u)return-1;if(E>u)return 1}return 0});let Q=d.zeros([I],"int32"),a=Q.data;for(let B=0;B<I;B++)a[B]=t[B];return Q}function r8(A,r){let I=0,e=A.length-1;for(;I<e;){let t=Math.floor((I+e)/2),o=A[I],n=A[t],g=A[e],i;o<=n&&n<=g||g<=n&&n<=o?i=t:n<=o&&o<=g||g<=o&&o<=n?i=I:i=e;let Q=A[i];[A[i],A[e]]=[A[e],A[i]];let a=I;for(let B=I;B<e;B++){let s=A[B],C=isNaN(s),E=isNaN(Q);!C&&(E||s<=Q)&&([A[a],A[B]]=[A[B],A[a]],a++)}if([A[a],A[e]]=[A[e],A[a]],a===r)return;a<r?I=a+1:e=a-1}}function I8(A,r){let I=0,e=A.length-1;for(;I<e;){let t=Math.floor((I+e)/2),o=A[I],n=A[t],g=A[e],i;o<=n&&n<=g||g<=n&&n<=o?i=t:n<=o&&o<=g||g<=o&&o<=n?i=I:i=e;let Q=A[i];[A[i],A[e]]=[A[e],A[i]];let a=I;for(let B=I;B<e;B++)A[B]<=Q&&([A[a],A[B]]=[A[B],A[a]],a++);if([A[a],A[e]]=[A[e],A[a]],a===r)return;a<r?I=a+1:e=a-1}}function e8(A,r){let I=0,e=A.length-1;for(;I<e;){let t=Math.floor((I+e)/2),o=A[I].value,n=A[t].value,g=A[e].value,i;o<=n&&n<=g||g<=n&&n<=o?i=t:n<=o&&o<=g||g<=o&&o<=n?i=I:i=e;let Q=A[i].value;[A[i],A[e]]=[A[e],A[i]];let a=I;for(let B=I;B<e;B++){let s=A[B].value,C=isNaN(s),E=isNaN(Q);!C&&(E||s<=Q)&&([A[a],A[B]]=[A[B],A[a]],a++)}if([A[a],A[e]]=[A[e],A[a]],a===r)return;a<r?I=a+1:e=a-1}}function t8(A,r){let I=0,e=A.length-1;for(;I<e;){let t=Math.floor((I+e)/2),o=A[I].value,n=A[t].value,g=A[e].value,i;o<=n&&n<=g||g<=n&&n<=o?i=t:n<=o&&o<=g||g<=o&&o<=n?i=I:i=e;let Q=A[i].value;[A[i],A[e]]=[A[e],A[i]];let a=I;for(let B=I;B<e;B++)A[B].value<=Q&&([A[a],A[B]]=[A[B],A[a]],a++);if([A[a],A[e]]=[A[e],A[a]],a===r)return;a<r?I=a+1:e=a-1}}function cq(A,r,I=-1){let e=A.shape,t=e.length,o=A.dtype;if(t===0)return A.copy();let n=I;if(n<0&&(n=t+n),n<0||n>=t)throw new Error(`axis ${I} is out of bounds for array of dimension ${t}`);let g=e[n],i=r;if(i<0&&(i=g+i),i<0||i>=g)throw new Error(`kth(=${r}) out of bounds (${g})`);if(t===1&&A.isCContiguous&&!k(o)){let f=A.copy(),m=kR(f,i);if(m)return m}let Q=A.copy(),a=Q.data,B=Array.from(e).filter((f,m)=>m!==n),s=B.length===0?1:B.reduce((f,m)=>f*m,1),C=pr(e),{baseOffsets:E,axisStride:u}=gA(e,C,0,n,s);if(u===1&&!k(o)&&RR(a,E,g,s,i,o))return Q;if(L(o)){let f=a;for(let m=0;m<s;m++){let c=[],D=E[m];for(let y=0;y<g;y++)c.push(f[D]),D+=u;I8(c,i),D=E[m];for(let y=0;y<g;y++)f[D]=c[y],D+=u}}else for(let f=0;f<s;f++){let m=[],c=E[f];for(let D=0;D<g;D++)m.push(Number(a[c])),c+=u;r8(m,i),c=E[f];for(let D=0;D<g;D++)a[c]=m[D],c+=u}return Q}function Dq(A,r,I=-1){let e=A.shape,t=e.length,o=A.dtype,n=A.data,g=A.offset,i=A.strides;if(t===0)return d.zeros([0],"int32");let Q=I;if(Q<0&&(Q=t+Q),Q<0||Q>=t)throw new Error(`axis ${I} is out of bounds for array of dimension ${t}`);let a=e[Q],B=r;if(B<0&&(B=a+B),B<0||B>=a)throw new Error(`kth(=${r}) out of bounds (${a})`);if(t===1&&A.isCContiguous&&!k(o)){let l=rk(A,B);if(l)return l}let s=d.zeros(Array.from(e),"int32"),C=s.data,E=Array.from(e).filter((l,h)=>h!==Q),u=E.length===0?1:E.reduce((l,h)=>l*h,1),{baseOffsets:f,axisStride:m}=gA(e,i,g,Q,u),c=pr(e),{baseOffsets:D,axisStride:y}=gA(e,c,0,Q,u);if(y===1&&m===1&&!k(o)&&Ak(n,C,f,D,a,u,B,o))return s;if(L(o)){let l=n;for(let h=0;h<u;h++){let b=[],p=f[h];for(let N=0;N<a;N++)b.push({value:l[p],idx:N}),p+=m;t8(b,B);let w=D[h];for(let N=0;N<a;N++)C[w]=b[N].idx,w+=y}}else for(let l=0;l<u;l++){let h=[],b=f[l];for(let w=0;w<a;w++)h.push({value:Number(n[b]),idx:w}),b+=m;e8(h,B);let p=D[l];for(let w=0;w<a;w++)C[p]=h[w].idx,p+=y}return s}function fq(A){let r=A.dtype,I=A.size,e=A.isCContiguous,t=A.data,o=A.offset;if(k(r)){let n=[];if(e){let Q=t;for(let a=0;a<I;a++)n.push({re:Q[(o+a)*2],im:Q[(o+a)*2+1]})}else for(let Q=0;Q<I;Q++){let a=A.iget(Q);n.push({re:a.re,im:a.im})}n.sort((Q,a)=>EI(Q.re,Q.im,a.re,a.im));let g=d.zeros([I],"complex128"),i=g.data;for(let Q=0;Q<I;Q++)i[Q*2]=n[Q].re,i[Q*2+1]=n[Q].im;return g}else{let n=[];if(e)for(let Q=0;Q<I;Q++)n.push(Number(t[o+Q]));else for(let Q=0;Q<I;Q++)n.push(Number(A.iget(Q)));n.sort((Q,a)=>isNaN(Q)&&isNaN(a)?0:isNaN(Q)?1:isNaN(a)?-1:Q-a);let g=d.zeros([I],"complex128"),i=g.data;for(let Q=0;Q<I;Q++)i[Q*2]=n[Q],i[Q*2+1]=0;return g}}function du(A){let r=A.shape,I=r.length,e=A.size,t=k(A.dtype),o=A.isCContiguous,n=A.data,g=A.offset,i=[];for(let C=0;C<I;C++)i.push([]);let Q=[],a=1;for(let C=I-1;C>=0;C--)Q.unshift(a),a*=r[C];if(o&&!t&&I>=1){let C=[];for(let f=0;f<I;f++)C.push(new Int32Array(e));let E=0;for(let f=0;f<e;f++)if(n[g+f]){let m=f;for(let c=0;c<I;c++)C[c][E]=m/Q[c]|0,m-=C[c][E]*Q[c];E++}let u=[];for(let f=0;f<I;f++){let m=d.zeros([E],"int32");m.data.set(C[f].subarray(0,E)),u.push(m)}return u}if(o){for(let C=0;C<e;C++)if(Cr(n,g+C,t)){let E=C;for(let u=0;u<I;u++){let f=Math.floor(E/Q[u]);E=E%Q[u],i[u].push(f)}}}else for(let C=0;C<e;C++){let E=A.iget(C);if(t?E.re!==0||E.im!==0:!!E){let f=C;for(let m=0;m<I;m++){let c=Math.floor(f/Q[m]);f=f%Q[m],i[m].push(c)}}}let B=i[0]?.length??0,s=[];for(let C=0;C<I;C++){let E=d.zeros([B],"int32"),u=E.data;for(let f=0;f<B;f++)u[f]=i[C][f];s.push(E)}return s}function mq(A){let r=A.shape,I=r.length,e=A.size,t=k(A.dtype),o=A.isCContiguous,n=A.data,g=A.offset,i=[],Q=[],a=1;for(let u=I-1;u>=0;u--)Q.unshift(a),a*=r[u];if(o){for(let u=0;u<e;u++)if(Cr(n,g+u,t)){let f=[],m=u;for(let c=0;c<I;c++){let D=Math.floor(m/Q[c]);m=m%Q[c],f.push(D)}i.push(f)}}else for(let u=0;u<e;u++){let f=A.iget(u);if(t?f.re!==0||f.im!==0:!!f){let c=[],D=u;for(let y=0;y<I;y++){let l=Math.floor(D/Q[y]);D=D%Q[y],c.push(l)}i.push(c)}}let B=i.length,s=I===0?[B,1]:[B,I],C=d.zeros(s,"int32"),E=C.data;for(let u=0;u<B;u++){let f=i[u];for(let m=0;m<(I===0?1:I);m++)E[u*(I===0?1:I)+m]=f[m]??0}return C}function yq(A){let r=A.size,I=k(A.dtype),e=A.isCContiguous,t=A.data,o=A.offset;if(e&&!I){let Q=new Int32Array(r),a=0;for(let s=0;s<r;s++)t[o+s]&&(Q[a++]=s);let B=d.zeros([a],"int32");return B.data.set(Q.subarray(0,a)),B}let n=[];if(e)for(let Q=0;Q<r;Q++)Cr(t,o+Q,I)&&n.push(Q);else for(let Q=0;Q<r;Q++){let a=A.iget(Q);(I?a.re!==0||a.im!==0:a)&&n.push(Q)}let g=d.zeros([n.length],"int32"),i=g.data;for(let Q=0;Q<n.length;Q++)i[Q]=n[Q];return g}function lq(A,r,I){if(r===void 0&&I===void 0)return du(A);if(r===void 0||I===void 0)throw new Error("either both or neither of x and y should be given");if(A.size===r.size&&r.size===I.size&&r.dtype===I.dtype&&A.shape.length===r.shape.length&&A.shape.every((V,$)=>V===r.shape[$])&&r.shape.every((V,$)=>V===I.shape[$])){let V=sq(A,r,I);if(V)return V}let e=A.shape,t=r.shape,o=I.shape,n=Math.max(e.length,t.length,o.length),g=V=>{let $=Array(n).fill(1);for(let O=0;O<V.length;O++)$[n-V.length+O]=V[O];return $},i=g(e),Q=g(t),a=g(o),B=[];for(let V=0;V<n;V++){let $=[i[V],Q[V],a[V]],O=Math.max(...$);for(let z of $)if(z!==1&&z!==O)throw new Error("operands could not be broadcast together");B.push(O)}let s=r.dtype,C=d.zeros(B,s),E=C.data,u=(V,$)=>{let O=[],z=1;for(let rA=V.length-1;rA>=0;rA--)O.unshift(z),z*=V[rA];for(;O.length<$.length;)O.unshift(0);for(let rA=0;rA<$.length;rA++)$[rA]===1&&B[rA]!==1&&(O[rA]=0);return O},f=u(e,i),m=u(t,Q),c=u(o,a),D=[],y=1;for(let V=B.length-1;V>=0;V--)D.unshift(y),y*=B[V];let l=B.reduce((V,$)=>V*$,1),h=k(A.dtype),b=k(s),p=A.isCContiguous,w=A.data,N=A.offset,F=r.isCContiguous,S=r.data,x=r.offset,H=I.isCContiguous,X=I.data,P=I.offset;if(e.length===B.length&&t.length===B.length&&o.length===B.length&&e.every((V,$)=>V===B[$])&&t.every((V,$)=>V===B[$])&&o.every((V,$)=>V===B[$])&&p&&F&&H)if(b){let V=E,$=S,O=X;if(h)for(let z=0;z<l;z++)Cr(w,N+z,!0)?(V[z*2]=$[(x+z)*2],V[z*2+1]=$[(x+z)*2+1]):(V[z*2]=O[(P+z)*2],V[z*2+1]=O[(P+z)*2+1]);else for(let z=0;z<l;z++)w[N+z]?(V[z*2]=$[(x+z)*2],V[z*2+1]=$[(x+z)*2+1]):(V[z*2]=O[(P+z)*2],V[z*2+1]=O[(P+z)*2+1])}else if(L(s)){let V=E,$=S,O=X;for(let z=0;z<l;z++)w[N+z]?V[z]=$[x+z]:V[z]=O[P+z]}else for(let V=0;V<l;V++)w[N+V]?E[V]=S[x+V]:E[V]=X[P+V];else for(let V=0;V<l;V++){let $=V,O=0,z=0,rA=0;for(let iA=0;iA<n;iA++){let CA=Math.floor($/D[iA]);$=$%D[iA],O+=CA*f[iA],z+=CA*m[iA],rA+=CA*c[iA]}let oA;if(p)oA=Cr(w,N+O,h);else{let iA=A.iget(O);oA=h?iA.re!==0||iA.im!==0:!!iA}if(oA)if(b)if(F){let iA=S;E[V*2]=iA[(x+z)*2],E[V*2+1]=iA[(x+z)*2+1]}else{let iA=r.iget(z);E[V*2]=iA.re,E[V*2+1]=iA.im}else F?E[V]=S[x+z]:E[V]=r.iget(z);else if(b)if(H){let iA=X;E[V*2]=iA[(P+rA)*2],E[V*2+1]=iA[(P+rA)*2+1]}else{let iA=I.iget(rA);E[V*2]=iA.re,E[V*2+1]=iA.im}else H?E[V]=X[P+rA]:E[V]=I.iget(rA)}return C}function hq(A,r,I="left"){if(A.ndim!==1)throw new Error("storage must be 1D");let e=A.size,t=r.size,o=k(A.dtype),n=A.isCContiguous,g=A.data,i=A.offset,Q=r.isCContiguous,a=r.data,B=r.offset;if(!o){let E=hk(A,r,I);if(E)return E}let s=d.zeros([t],"int32"),C=s.data;if(o)if(n&&Q){let E=g,u=a;for(let f=0;f<t;f++){let m=u[(B+f)*2],c=u[(B+f)*2+1],D=0,y=e;if(I==="left")for(;D<y;){let l=Math.floor((D+y)/2),h=E[(i+l)*2],b=E[(i+l)*2+1];EI(h,b,m,c)<0?D=l+1:y=l}else for(;D<y;){let l=Math.floor((D+y)/2),h=E[(i+l)*2],b=E[(i+l)*2+1];EI(h,b,m,c)<=0?D=l+1:y=l}C[f]=D}}else for(let E=0;E<t;E++){let u=r.iget(E),f=u.re,m=u.im,c=0,D=e;if(I==="left")for(;c<D;){let y=Math.floor((c+D)/2),l=A.iget(y);EI(l.re,l.im,f,m)<0?c=y+1:D=y}else for(;c<D;){let y=Math.floor((c+D)/2),l=A.iget(y);EI(l.re,l.im,f,m)<=0?c=y+1:D=y}C[E]=c}else if(n&&Q)for(let E=0;E<t;E++){let u=Number(a[B+E]),f=0,m=e;if(I==="left")for(;f<m;){let c=Math.floor((f+m)/2);Number(g[i+c])<u?f=c+1:m=c}else for(;f<m;){let c=Math.floor((f+m)/2);Number(g[i+c])<=u?f=c+1:m=c}C[E]=f}else for(let E=0;E<t;E++){let u=Number(r.iget(E)),f=0,m=e;if(I==="left")for(;f<m;){let c=Math.floor((f+m)/2);Number(A.iget(c))<u?f=c+1:m=c}else for(;f<m;){let c=Math.floor((f+m)/2);Number(A.iget(c))<=u?f=c+1:m=c}C[E]=f}return s}function dq(A,r){let I=aq(A,r);if(I)return I;let e=r.dtype,t=k(A.dtype),o=k(e),n=Math.min(A.size,r.size),g=A.isCContiguous,i=A.data,Q=A.offset,a=r.isCContiguous,B=r.data,s=r.offset,C=0;if(g)for(let m=0;m<n;m++)Cr(i,Q+m,t)&&C++;else for(let m=0;m<n;m++){let c=A.iget(m);(t?c.re!==0||c.im!==0:c)&&C++}let E=d.zeros([C],e),u=E.data,f=0;if(g&&a)if(L(e)){let m=u,c=B;for(let D=0;D<n;D++)Cr(i,Q+D,t)&&(m[f++]=c[s+D])}else if(o){let m=u,c=B;for(let D=0;D<n;D++)Cr(i,Q+D,t)&&(m[f*2]=c[(s+D)*2],m[f*2+1]=c[(s+D)*2+1],f++)}else for(let m=0;m<n;m++)Cr(i,Q+m,t)&&(u[f++]=B[s+m]);else{let m=g?c=>Cr(i,Q+c,t):c=>{let D=A.iget(c);if(t){let y=D;return y.re!==0||y.im!==0}return!!D};if(L(e)){let c=u;for(let D=0;D<n;D++)m(D)&&(c[f++]=r.iget(D))}else if(o){let c=u;for(let D=0;D<n;D++)if(m(D)){let y=r.iget(D);c[f*2]=y.re,c[f*2+1]=y.im,f++}}else for(let c=0;c<n;c++)m(c)&&(u[f++]=r.iget(c))}return E}function IQ(A,r){let I=A.shape,e=I.length,t=A.data,o=A.size,n=A.offset,g=A.strides,i=k(A.dtype),Q=A.isCContiguous;if(r===void 0){let c=QS(A);if(c!==null)return c;let D=0;if(Q)for(let y=0;y<o;y++)Cr(t,n+y,i)&&D++;else for(let y=0;y<o;y++){let l=A.iget(y);if(i){let h=l;(h.re!==0||h.im!==0)&&D++}else l!==0&&l!==BigInt(0)&&D++}return D}let a=r;if(a<0&&(a=e+a),a<0||a>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);let B=Array.from(I).filter((c,D)=>D!==a);if(B.length===0)return IQ(A);let s=d.zeros(B,"int32"),C=s.data,E=I[a],u=B.reduce((c,D)=>c*D,1),{baseOffsets:f,axisStride:m}=gA(I,g,n,a,u);for(let c=0;c<u;c++){let D=0,y=f[c];for(let l=0;l<E;l++)Cr(t,y,i)&&D++,y+=m;C[c]=D}return s}function Ln(A,r=-1){return R(Cq(G(A),r))}function Hn(A,r=-1){return R(Eq(G(A),r))}function bu(A){return R(uq(A.map(r=>G(r))))}function _n(A,r,I=-1){return R(cq(G(A),r,I))}function Yn(A,r,I=-1){return R(Dq(G(A),r,I))}function pu(A){return R(fq(G(A)))}function vn(A){return dr(du(G(A)))}function Xn(A){return R(mq(G(A)))}function wu(A){return R(yq(G(A)))}function eQ(A,r,I){let e=lq(G(A),r?G(r):void 0,I?G(I):void 0);return Array.isArray(e)?dr(e):R(e)}function jI(A,r,I="left"){return R(hq(G(A),G(r),I))}function Nu(A,r){return R(dq(G(A),G(r)))}function tQ(A,r){if(Array.isArray(r)){let e=G(A).ndim,o=[...r.map(g=>g<0?e+g:g)].sort((g,i)=>i-g),n=G(A);for(let g of o){let i=IQ(n,g);if(typeof i=="number")return i;n=i}return R(n)}let I=IQ(G(A),r);return typeof I=="number"?I:R(I)}var n8="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",Tn=null;function oQ(){if(Tn)return Tn;let A=atob(n8),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Tn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Tn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Tn}function Fu(A,r,I,e){oQ().exports.bitwise_and_i64(A,r,I,e)}function Gu(A,r,I,e){oQ().exports.bitwise_and_i32(A,r,I,e)}function Su(A,r,I,e){oQ().exports.bitwise_and_i16(A,r,I,e)}function Ru(A,r,I,e){oQ().exports.bitwise_and_i8(A,r,I,e)}var i8=64,g8={int64:Fu,uint64:Fu,int32:Gu,uint32:Gu,int16:Su,uint16:Su,int8:Ru,uint8:Ru},Q8={int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function bq(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<i8*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=g8[e],o=Q8[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n,Q=I*n;J(g+i+Q),U();let a=A.offset,B=r.offset,s=A.data.subarray(a,a+I),C=r.data.subarray(B,B+I),E=q(s),u=q(C),f=_(Q);t(E,u,f,I);let m=v(f,I,o);return d.fromData(m,Array.from(A.shape),e)}var a8="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",Pn=null;function nQ(){if(Pn)return Pn;let A=atob(a8),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Pn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Pn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Pn}function ku(A,r,I,e){nQ().exports.bitwise_or_i64(A,r,I,e)}function qu(A,r,I,e){nQ().exports.bitwise_or_i32(A,r,I,e)}function Mu(A,r,I,e){nQ().exports.bitwise_or_i16(A,r,I,e)}function xu(A,r,I,e){nQ().exports.bitwise_or_i8(A,r,I,e)}var B8=64,s8={int64:ku,uint64:ku,int32:qu,uint32:qu,int16:Mu,uint16:Mu,int8:xu,uint8:xu},C8={int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function pq(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<B8*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=s8[e],o=C8[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n,Q=I*n;J(g+i+Q),U();let a=A.offset,B=r.offset,s=A.data.subarray(a,a+I),C=r.data.subarray(B,B+I),E=q(s),u=q(C),f=_(Q);t(E,u,f,I);let m=v(f,I,o);return d.fromData(m,Array.from(A.shape),e)}var E8="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",Kn=null;function iQ(){if(Kn)return Kn;let A=atob(E8),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Kn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Kn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Kn}function Ju(A,r,I,e){iQ().exports.bitwise_xor_i64(A,r,I,e)}function Uu(A,r,I,e){iQ().exports.bitwise_xor_i32(A,r,I,e)}function Lu(A,r,I,e){iQ().exports.bitwise_xor_i16(A,r,I,e)}function Hu(A,r,I,e){iQ().exports.bitwise_xor_i8(A,r,I,e)}var u8=64,c8={int64:Ju,uint64:Ju,int32:Uu,uint32:Uu,int16:Lu,uint16:Lu,int8:Hu,uint8:Hu},D8={int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function wq(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<u8*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=c8[e],o=D8[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n,Q=I*n;J(g+i+Q),U();let a=A.offset,B=r.offset,s=A.data.subarray(a,a+I),C=r.data.subarray(B,B+I),E=q(s),u=q(C),f=_(Q);t(E,u,f,I);let m=v(f,I,o);return d.fromData(m,Array.from(A.shape),e)}var f8="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",Vn=null;function gQ(){if(Vn)return Vn;let A=atob(f8),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Vn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Vn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Vn}function _u(A,r,I){gQ().exports.bitwise_not_i64(A,r,I)}function Yu(A,r,I){gQ().exports.bitwise_not_i32(A,r,I)}function vu(A,r,I){gQ().exports.bitwise_not_i16(A,r,I)}function Xu(A,r,I){gQ().exports.bitwise_not_i8(A,r,I)}var m8=64,y8={int64:_u,uint64:_u,int32:Yu,uint32:Yu,int16:vu,uint16:vu,int8:Xu,uint8:Xu},l8={int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Nq(A){if(!A.isCContiguous)return null;let r=A.size;if(r<m8*Y.thresholdMultiplier)return null;let I=A.dtype,e=y8[I],t=l8[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT,n=r*o,g=r*o;J(n+g),U();let i=A.offset,Q=A.data.subarray(i,i+r),a=q(Q),B=_(g);e(a,B,r);let s=v(B,r,t);return d.fromData(s,Array.from(A.shape),I)}var h8="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",Wn=null;function eI(){if(Wn)return Wn;let A=atob(h8),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Wn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Wn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Wn}function Tu(A,r,I,e){eI().exports.left_shift_i64(A,r,I,e)}function Pu(A,r,I,e){eI().exports.left_shift_scalar_i64(A,r,I,BigInt(Math.round(e)))}function Ku(A,r,I,e){eI().exports.left_shift_i32(A,r,I,e)}function Vu(A,r,I,e){eI().exports.left_shift_scalar_i32(A,r,I,e)}function Wu(A,r,I,e){eI().exports.left_shift_i16(A,r,I,e)}function Ou(A,r,I,e){eI().exports.left_shift_scalar_i16(A,r,I,e)}function Zu(A,r,I,e){eI().exports.left_shift_i8(A,r,I,e)}function zu(A,r,I,e){eI().exports.left_shift_scalar_i8(A,r,I,e)}var Fq=64,d8={int64:Tu,uint64:Tu,int32:Ku,uint32:Ku,int16:Wu,uint16:Wu,int8:Zu,uint8:Zu},b8={int64:Pu,uint64:Pu,int32:Vu,uint32:Vu,int16:Ou,uint16:Ou,int8:zu,uint8:zu},Gq={int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Sq(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<Fq*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=d8[e],o=Gq[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n,Q=I*n;J(g+i+Q),U();let a=A.offset,B=r.offset,s=A.data.subarray(a,a+I),C=r.data.subarray(B,B+I),E=q(s),u=q(C),f=_(Q);t(E,u,f,I);let m=v(f,I,o);return d.fromData(m,Array.from(A.shape),e)}function Rq(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<Fq*Y.thresholdMultiplier)return null;let e=A.dtype,t=b8[e],o=Gq[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n;J(g+i),U();let Q=A.offset,a=A.data.subarray(Q,Q+I),B=q(a),s=_(i);t(B,s,I,r);let C=v(s,I,o);return d.fromData(C,Array.from(A.shape),e)}var p8="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",On=null;function TA(){if(On)return On;let A=atob(p8),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);On=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=On.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),On}function kq(A,r,I,e){TA().exports.right_shift_i64(A,r,I,e)}function qq(A,r,I,e){TA().exports.right_shift_scalar_i64(A,r,I,BigInt(Math.round(e)))}function Mq(A,r,I,e){TA().exports.right_shift_i32(A,r,I,e)}function xq(A,r,I,e){TA().exports.right_shift_scalar_i32(A,r,I,e)}function Jq(A,r,I,e){TA().exports.right_shift_i16(A,r,I,e)}function Uq(A,r,I,e){TA().exports.right_shift_scalar_i16(A,r,I,e)}function Lq(A,r,I,e){TA().exports.right_shift_i8(A,r,I,e)}function Hq(A,r,I,e){TA().exports.right_shift_scalar_i8(A,r,I,e)}function _q(A,r,I,e){TA().exports.right_shift_u64(A,r,I,e)}function Yq(A,r,I,e){TA().exports.right_shift_scalar_u64(A,r,I,BigInt(Math.round(e)))}function vq(A,r,I,e){TA().exports.right_shift_u32(A,r,I,e)}function Xq(A,r,I,e){TA().exports.right_shift_scalar_u32(A,r,I,e)}function Tq(A,r,I,e){TA().exports.right_shift_u16(A,r,I,e)}function Pq(A,r,I,e){TA().exports.right_shift_scalar_u16(A,r,I,e)}function Kq(A,r,I,e){TA().exports.right_shift_u8(A,r,I,e)}function Vq(A,r,I,e){TA().exports.right_shift_scalar_u8(A,r,I,e)}var Wq=64,w8={int64:kq,uint64:_q,int32:Mq,uint32:vq,int16:Jq,uint16:Tq,int8:Lq,uint8:Kq},N8={int64:qq,uint64:Yq,int32:xq,uint32:Xq,int16:Uq,uint16:Pq,int8:Hq,uint8:Vq},Oq={int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Zq(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<Wq*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=w8[e],o=Oq[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n,Q=I*n;J(g+i+Q),U();let a=A.offset,B=r.offset,s=A.data.subarray(a,a+I),C=r.data.subarray(B,B+I),E=q(s),u=q(C),f=_(Q);t(E,u,f,I);let m=v(f,I,o);return d.fromData(m,Array.from(A.shape),e)}function zq(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<Wq*Y.thresholdMultiplier)return null;let e=A.dtype,t=N8[e],o=Oq[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n;J(g+i),U();let Q=A.offset,a=A.data.subarray(Q,Q+I),B=q(a),s=_(i);t(B,s,I,r);let C=v(s,I,o);return d.fromData(C,Array.from(A.shape),e)}var F8="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",Zn=null;function tI(){if(Zn)return Zn;let A=atob(F8),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Zn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Zn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Zn}function jq(A,r,I){tI().exports.bitwise_count_i64(A,r,I)}function $q(A,r,I){tI().exports.bitwise_count_u64(A,r,I)}function AM(A,r,I){tI().exports.bitwise_count_i32(A,r,I)}function rM(A,r,I){tI().exports.bitwise_count_u32(A,r,I)}function IM(A,r,I){tI().exports.bitwise_count_i16(A,r,I)}function eM(A,r,I){tI().exports.bitwise_count_u16(A,r,I)}function tM(A,r,I){tI().exports.bitwise_count_i8(A,r,I)}function oM(A,r,I){tI().exports.bitwise_count_u8(A,r,I)}var G8=64,S8={int64:jq,uint64:$q,int32:AM,uint32:rM,int16:IM,uint16:eM,int8:tM,uint8:oM},R8={int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function nM(A){if(!A.isCContiguous)return null;let r=A.size;if(r<G8*Y.thresholdMultiplier)return null;let I=A.dtype,e=S8[I],t=R8[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT,n=r*o,g=r;J(n+g),U();let i=A.offset,Q=A.data.subarray(i,i+r),a=q(Q),B=_(g);e(a,B,r);let s=v(B,r,Uint8Array);return d.fromData(s,Array.from(A.shape),"uint8")}function Er(A,r){if(!pA(A)&&A!=="bool")throw new TypeError(`ufunc '${r}' not supported for the input types, and the inputs could not be safely coerced to any supported types`)}function zn(A,r){return A.isCContiguous&&r.isCContiguous&&A.shape.length===r.shape.length&&A.shape.every((I,e)=>I===r.shape[e])}function QM(A,r){if(Er(A.dtype,"bitwise_and"),typeof r=="number")return q8(A,r);if(Er(r.dtype,"bitwise_and"),zn(A,r)){let I=bq(A,r);return I||k8(A,r)}return yA(A,r,(I,e)=>I&e,"bitwise_and")}function k8(A,r){let I=IA(A.dtype,r.dtype),e=d.zeros(Array.from(A.shape),I),t=A.size,o=A.data,n=r.data,g=A.offset,i=r.offset,Q=e.data;if(L(I)){let a=Q;if(!L(A.dtype)||!L(r.dtype))for(let s=0;s<t;s++){let C=typeof o[g+s]=="bigint"?o[g+s]:BigInt(Math.round(Number(o[g+s]))),E=typeof n[i+s]=="bigint"?n[i+s]:BigInt(Math.round(Number(n[i+s])));a[s]=C&E}else{let s=o,C=n;for(let E=0;E<t;E++)a[E]=s[g+E]&C[i+E]}}else for(let a=0;a<t;a++)Q[a]=o[g+a]&n[i+a];return e}function q8(A,r){let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.offset,n=A.size,g=A.isCContiguous,i=d.zeros(e,I),Q=i.data;if(L(I)){let a=Q,B=BigInt(Math.round(r));if(g){let s=t;if(o===0)for(let C=0;C<n;C++)a[C]=s[C]&B;else for(let C=0;C<n;C++)a[C]=s[o+C]&B}else for(let s=0;s<n;s++)a[s]=A.iget(s)&B}else if(g)if(o===0)for(let a=0;a<n;a++)Q[a]=t[a]&r;else for(let a=0;a<n;a++)Q[a]=t[o+a]&r;else for(let a=0;a<n;a++)Q[a]=Number(A.iget(a))&r;return i}function aM(A,r){if(Er(A.dtype,"bitwise_or"),typeof r=="number")return x8(A,r);if(Er(r.dtype,"bitwise_or"),zn(A,r)){let I=pq(A,r);return I||M8(A,r)}return yA(A,r,(I,e)=>I|e,"bitwise_or")}function M8(A,r){let I=IA(A.dtype,r.dtype),e=d.zeros(Array.from(A.shape),I),t=A.size,o=A.data,n=r.data,g=A.offset,i=r.offset,Q=e.data;if(L(I)){let a=Q;if(!L(A.dtype)||!L(r.dtype))for(let s=0;s<t;s++){let C=typeof o[g+s]=="bigint"?o[g+s]:BigInt(Math.round(Number(o[g+s]))),E=typeof n[i+s]=="bigint"?n[i+s]:BigInt(Math.round(Number(n[i+s])));a[s]=C|E}else{let s=o,C=n;for(let E=0;E<t;E++)a[E]=s[g+E]|C[i+E]}}else for(let a=0;a<t;a++)Q[a]=o[g+a]|n[i+a];return e}function x8(A,r){let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.offset,n=A.size,g=A.isCContiguous,i=d.zeros(e,I),Q=i.data;if(L(I)){let a=Q,B=BigInt(Math.round(r));if(g){let s=t;if(o===0)for(let C=0;C<n;C++)a[C]=s[C]|B;else for(let C=0;C<n;C++)a[C]=s[o+C]|B}else for(let s=0;s<n;s++)a[s]=A.iget(s)|B}else if(g)if(o===0)for(let a=0;a<n;a++)Q[a]=t[a]|r;else for(let a=0;a<n;a++)Q[a]=t[o+a]|r;else for(let a=0;a<n;a++)Q[a]=Number(A.iget(a))|r;return i}function BM(A,r){if(Er(A.dtype,"bitwise_xor"),typeof r=="number")return U8(A,r);if(Er(r.dtype,"bitwise_xor"),zn(A,r)){let I=wq(A,r);return I||J8(A,r)}return yA(A,r,(I,e)=>I^e,"bitwise_xor")}function J8(A,r){let I=IA(A.dtype,r.dtype),e=d.zeros(Array.from(A.shape),I),t=A.size,o=A.data,n=r.data,g=A.offset,i=r.offset,Q=e.data;if(L(I)){let a=Q;if(!L(A.dtype)||!L(r.dtype))for(let s=0;s<t;s++){let C=typeof o[g+s]=="bigint"?o[g+s]:BigInt(Math.round(Number(o[g+s]))),E=typeof n[i+s]=="bigint"?n[i+s]:BigInt(Math.round(Number(n[i+s])));a[s]=C^E}else{let s=o,C=n;for(let E=0;E<t;E++)a[E]=s[g+E]^C[i+E]}}else for(let a=0;a<t;a++)Q[a]=o[g+a]^n[i+a];return e}function U8(A,r){let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.offset,n=A.size,g=A.isCContiguous,i=d.zeros(e,I),Q=i.data;if(L(I)){let a=Q,B=BigInt(Math.round(r));if(g){let s=t;if(o===0)for(let C=0;C<n;C++)a[C]=s[C]^B;else for(let C=0;C<n;C++)a[C]=s[o+C]^B}else for(let s=0;s<n;s++)a[s]=A.iget(s)^B}else if(g)if(o===0)for(let a=0;a<n;a++)Q[a]=t[a]^r;else for(let a=0;a<n;a++)Q[a]=t[o+a]^r;else for(let a=0;a<n;a++)Q[a]=Number(A.iget(a))^r;return i}function $u(A){Er(A.dtype,"bitwise_not");let r=Nq(A);if(r)return r;let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.offset,n=A.size,g=A.isCContiguous,i=d.zeros(e,I),Q=i.data;if(L(I)){let a=Q;if(g){let B=t;if(o===0)for(let s=0;s<n;s++)a[s]=~B[s];else for(let s=0;s<n;s++)a[s]=~B[o+s]}else for(let B=0;B<n;B++)a[B]=~A.iget(B)}else if(g)if(o===0)for(let a=0;a<n;a++)Q[a]=~t[a];else for(let a=0;a<n;a++)Q[a]=~t[o+a];else for(let a=0;a<n;a++)Q[a]=~Number(A.iget(a));return i}function sM(A){return $u(A)}function CM(A,r){if(Er(A.dtype,"left_shift"),typeof r=="number")return iM(A,r);if(Er(r.dtype,"left_shift"),r.size===1||r.ndim===1&&r.shape[0]===1){let I=Number(r.iget(0)),e=Rq(A,I);return e||iM(A,I)}if(zn(A,r)){let I=Sq(A,r);return I||L8(A,r)}return yA(A,r,(I,e)=>I<<e,"left_shift")}function L8(A,r){let I=IA(A.dtype,r.dtype),e=d.zeros(Array.from(A.shape),I),t=A.size,o=A.data,n=r.data,g=A.offset,i=r.offset,Q=e.data;if(L(I)){let a=Q;for(let B=0;B<t;B++){let s=typeof o[g+B]=="bigint"?o[g+B]:BigInt(Math.round(Number(o[g+B]))),C=typeof n[i+B]=="bigint"?n[i+B]:BigInt(Math.round(Number(n[i+B])));a[B]=s<<C}}else for(let a=0;a<t;a++)Q[a]=o[g+a]<<n[i+a];return e}function iM(A,r){let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.offset,n=A.size,g=A.isCContiguous,i=d.zeros(e,I),Q=i.data;if(L(I)){let a=Q,B=BigInt(Math.round(r));if(g){let s=t;if(o===0)for(let C=0;C<n;C++)a[C]=s[C]<<B;else for(let C=0;C<n;C++)a[C]=s[o+C]<<B}else for(let s=0;s<n;s++)a[s]=A.iget(s)<<B}else if(g)if(o===0)for(let a=0;a<n;a++)Q[a]=t[a]<<r;else for(let a=0;a<n;a++)Q[a]=t[o+a]<<r;else for(let a=0;a<n;a++)Q[a]=Number(A.iget(a))<<r;return i}function EM(A,r){if(Er(A.dtype,"right_shift"),typeof r=="number")return gM(A,r);if(Er(r.dtype,"right_shift"),r.size===1||r.ndim===1&&r.shape[0]===1){let I=Number(r.iget(0)),e=zq(A,I);return e||gM(A,I)}if(zn(A,r)){let I=Zq(A,r);return I||H8(A,r)}return yA(A,r,(I,e)=>I>>e,"right_shift")}function H8(A,r){let I=IA(A.dtype,r.dtype),e=d.zeros(Array.from(A.shape),I),t=A.size,o=A.data,n=r.data,g=A.offset,i=r.offset,Q=e.data;if(L(I)){let a=Q;for(let B=0;B<t;B++){let s=typeof o[g+B]=="bigint"?o[g+B]:BigInt(Math.round(Number(o[g+B]))),C=typeof n[i+B]=="bigint"?n[i+B]:BigInt(Math.round(Number(n[i+B])));a[B]=s>>C}}else for(let a=0;a<t;a++)Q[a]=o[g+a]>>n[i+a];return e}function gM(A,r){let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.offset,n=A.size,g=A.isCContiguous,i=d.zeros(e,I),Q=i.data;if(L(I)){let a=Q,B=BigInt(Math.round(r));if(g){let s=t;if(o===0)for(let C=0;C<n;C++)a[C]=s[C]>>B;else for(let C=0;C<n;C++)a[C]=s[o+C]>>B}else for(let s=0;s<n;s++)a[s]=A.iget(s)>>B}else if(g)if(o===0)for(let a=0;a<n;a++)Q[a]=t[a]>>r;else for(let a=0;a<n;a++)Q[a]=t[o+a]>>r;else for(let a=0;a<n;a++)Q[a]=Number(A.iget(a))>>r;return i}function uM(A,r=-1,I="big"){let e=Array.from(A.shape),t=e.length;if(r<0&&(r=t+r),r<0||r>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let o=e[r],n=Math.ceil(o/8),g=[...e];g[r]=n;let i=d.zeros(g,"uint8"),Q=i.data,a=A.offset,B=A.isCContiguous;if(t===1){for(let c=0;c<n;c++){let D=0;for(let y=0;y<8;y++){let l=c*8+y;if(l<o){let h=B?Number(A.data[a+l])!==0?1:0:Number(A.iget(l))!==0?1:0;I==="big"?D|=h<<7-y:D|=h<<y}}Q[c]=D}return i}let s=e.slice(0,r),C=e.slice(r+1),E=s.reduce((c,D)=>c*D,1),u=C.reduce((c,D)=>c*D,1),f=QQ(e),m=QQ(g);for(let c=0;c<E;c++)for(let D=0;D<u;D++)for(let y=0;y<n;y++){let l=0;for(let w=0;w<8;w++){let N=y*8+w;if(N<o){let F=0,S=c;for(let X=0;X<r;X++){let P=X<r-1?s.slice(X+1).reduce((V,$)=>V*$,1):1,Z=Math.floor(S/P);S%=P,F+=Z*f[X]}F+=N*f[r];let x=D;for(let X=r+1;X<t;X++){let P=X<t-1?C.slice(X-r).reduce((V,$)=>V*$,1):1,Z=Math.floor(x/P);x%=P,F+=Z*f[X]}let H=B?Number(A.data[a+F])!==0?1:0:Number(A.iget(F))!==0?1:0;I==="big"?l|=H<<7-w:l|=H<<w}}let h=0,b=c;for(let w=0;w<r;w++){let N=w<r-1?s.slice(w+1).reduce((S,x)=>S*x,1):1,F=Math.floor(b/N);b%=N,h+=F*m[w]}h+=y*m[r];let p=D;for(let w=r+1;w<t;w++){let N=w<t-1?C.slice(w-r).reduce((S,x)=>S*x,1):1,F=Math.floor(p/N);p%=N,h+=F*m[w]}Q[h]=l}return i}function cM(A,r=-1,I=-1,e="big"){if(A.dtype!=="uint8")throw new TypeError("Expected an input array of unsigned byte data type");let t=Array.from(A.shape),o=t.length;if(r<0&&(r=o+r),r<0||r>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let n=t[r],g=n*8;I>=0&&(g=I);let i=[...t];i[r]=g;let Q=d.zeros(i,"uint8"),a=Q.data,B=A.offset,s=A.isCContiguous;if(o===1){for(let D=0;D<n;D++){let y=Number(s?A.data[B+D]:A.iget(D));for(let l=0;l<8;l++){let h=D*8+l;if(h>=g)break;e==="big"?a[h]=y>>7-l&1:a[h]=y>>l&1}}return Q}let C=t.slice(0,r),E=t.slice(r+1),u=C.reduce((D,y)=>D*y,1),f=E.reduce((D,y)=>D*y,1),m=QQ(t),c=QQ(i);for(let D=0;D<u;D++)for(let y=0;y<f;y++)for(let l=0;l<n;l++){let h=0,b=D;for(let N=0;N<r;N++){let F=N<r-1?C.slice(N+1).reduce((x,H)=>x*H,1):1,S=Math.floor(b/F);b%=F,h+=S*m[N]}h+=l*m[r];let p=y;for(let N=r+1;N<o;N++){let F=N<o-1?E.slice(N-r).reduce((x,H)=>x*H,1):1,S=Math.floor(p/F);p%=F,h+=S*m[N]}let w=Number(s?A.data[B+h]:A.iget(h));for(let N=0;N<8;N++){let F=l*8+N;if(F>=g)break;let S=0;b=D;for(let x=0;x<r;x++){let H=x<r-1?C.slice(x+1).reduce((P,Z)=>P*Z,1):1,X=Math.floor(b/H);b%=H,S+=X*c[x]}S+=F*c[r],p=y;for(let x=r+1;x<o;x++){let H=x<o-1?E.slice(x-r).reduce((P,Z)=>P*Z,1):1,X=Math.floor(p/H);p%=H,S+=X*c[x]}e==="big"?a[S]=w>>7-N&1:a[S]=w>>N&1}}return Q}function QQ(A){let r=A.length,I=new Array(r),e=1;for(let t=r-1;t>=0;t--)I[t]=e,e*=A[t];return I}function DM(A){let r=A.dtype;Er(r,"bitwise_count");let I=nM(A);if(I)return I;let e=Array.from(A.shape),t=A.data,o=A.offset,n=A.size,g=A.isCContiguous,i=d.zeros(e,"uint8"),Q=i.data,a=r==="int8"||r==="int16"||r==="int32"||r==="int64";if(L(r))if(g){let B=t;if(o===0)for(let s=0;s<n;s++){let C=B[s];Q[s]=ju(a&&C<0n?-C:C)}else for(let s=0;s<n;s++){let C=B[o+s];Q[s]=ju(a&&C<0n?-C:C)}}else for(let B=0;B<n;B++){let s=A.iget(B);Q[B]=ju(a&&s<0n?-s:s)}else if(a)if(g)if(o===0)for(let B=0;B<n;B++)Q[B]=$I(Math.abs(t[B]));else for(let B=0;B<n;B++)Q[B]=$I(Math.abs(t[o+B]));else for(let B=0;B<n;B++)Q[B]=$I(Math.abs(Number(A.iget(B))));else{let B=r==="uint8"?255:r==="uint16"?65535:4294967295;if(g)if(o===0)for(let s=0;s<n;s++)Q[s]=$I(t[s]&B);else for(let s=0;s<n;s++)Q[s]=$I(t[o+s]&B);else for(let s=0;s<n;s++)Q[s]=$I(Number(A.iget(s))&B)}return i}function $I(A){A=A>>>0;let r=0;for(;A!==0;)A=A&A-1,r++;return r}function ju(A){A<0n&&(A=BigInt.asUintN(64,A));let r=0;for(;A!==0n;)A=A&A-1n,r++;return r}function jn(A,r){let I=typeof r=="number"?r:G(r);return R(QM(G(A),I))}function $n(A,r){let I=typeof r=="number"?r:G(r);return R(aM(G(A),I))}function Ai(A,r){let I=typeof r=="number"?r:G(r);return R(BM(G(A),I))}function ri(A){return R($u(G(A)))}function Ii(A){return R(sM(G(A)))}function ei(A,r){let I=typeof r=="number"?r:G(r);return R(CM(G(A),I))}function ti(A,r){let I=typeof r=="number"?r:G(r);return R(EM(G(A),I))}function Ac(A,r,I){return R(uM(G(A),r,I))}function rc(A,r,I,e){return R(cM(G(A),r,I,e))}function Ic(A){return R(DM(G(A)))}function aQ(A){if(!isFinite(A))return A;let r=Math.floor(A),I=A-r;return Math.abs(I-.5)<1e-10?r%2===0?r:r+1:Math.round(A)}function fM(A,r=0){eA(A.dtype,"around","Rounding is not defined for complex numbers.");let I=A.dtype,e=Array.from(A.shape),t=A.size,o=I==="float32"?"float32":"float64",n=d.zeros(e,o),g=n.data,i=Math.pow(10,r);if(A.isCContiguous){let Q=A.data,a=A.offset;for(let B=0;B<t;B++){let s=Number(Q[a+B]);g[B]=aQ(s*i)/i}}else for(let Q=0;Q<t;Q++){let a=Number(A.iget(Q));g[Q]=aQ(a*i)/i}return n}function mM(A){eA(A.dtype,"ceil","Rounding is not defined for complex numbers.");let r=A.dtype,I=Array.from(A.shape),e=A.size,t=r==="float32"?"float32":"float64",o=d.zeros(I,t),n=o.data;if(A.isCContiguous){let g=A.data,i=A.offset;for(let Q=0;Q<e;Q++)n[Q]=Math.ceil(Number(g[i+Q]))}else for(let g=0;g<e;g++)n[g]=Math.ceil(Number(A.iget(g)));return o}function yM(A){eA(A.dtype,"fix","Rounding is not defined for complex numbers.");let r=A.dtype,I=Array.from(A.shape),e=A.size,t=r==="float32"?"float32":"float64",o=d.zeros(I,t),n=o.data;if(A.isCContiguous){let g=A.data,i=A.offset;for(let Q=0;Q<e;Q++)n[Q]=Math.trunc(Number(g[i+Q]))}else for(let g=0;g<e;g++)n[g]=Math.trunc(Number(A.iget(g)));return o}function lM(A){eA(A.dtype,"floor","Rounding is not defined for complex numbers.");let r=A.dtype,I=Array.from(A.shape),e=A.size,t=r==="float32"?"float32":"float64",o=d.zeros(I,t),n=o.data;if(A.isCContiguous){let g=A.data,i=A.offset;for(let Q=0;Q<e;Q++)n[Q]=Math.floor(Number(g[i+Q]))}else for(let g=0;g<e;g++)n[g]=Math.floor(Number(A.iget(g)));return o}function hM(A){eA(A.dtype,"rint","Rounding is not defined for complex numbers.");let r=A.dtype,I=Array.from(A.shape),e=A.size,t=r==="float32"?"float32":"float64",o=d.zeros(I,t),n=o.data;if(A.isCContiguous){let g=A.data,i=A.offset;for(let Q=0;Q<e;Q++)n[Q]=aQ(Number(g[i+Q]))}else for(let g=0;g<e;g++)n[g]=aQ(Number(A.iget(g)));return o}function dM(A){eA(A.dtype,"trunc","Rounding is not defined for complex numbers.");let r=A.dtype,I=Array.from(A.shape),e=A.size,t=r==="float32"?"float32":"float64",o=d.zeros(I,t),n=o.data;if(A.isCContiguous){let g=A.data,i=A.offset;for(let Q=0;Q<e;Q++)n[Q]=Math.trunc(Number(g[i+Q]))}else for(let g=0;g<e;g++)n[g]=Math.trunc(Number(A.iget(g)));return o}function Ae(A,r=0){return R(fM(G(A),r))}var BQ=Ae;function oi(A){return R(mM(G(A)))}function ni(A){return R(yM(G(A)))}function ii(A){return R(lM(G(A)))}function gi(A){return R(hM(G(A)))}function Qi(A){return R(dM(G(A)))}function ec(A,r,I,e){let t=isNaN(A)||isNaN(r),o=isNaN(I)||isNaN(e);return t&&o?0:t?1:o||A<I?-1:A>I?1:r<e?-1:r>e?1:0}function v8(A,r,I,e){let t=isNaN(A)||isNaN(r),o=isNaN(I)||isNaN(e);return t&&o?!0:t||o?!1:A===I&&r===e}function rr(A,r=!1,I=!1,e=!1,t){if(t!==void 0){let h=Array.from(A.shape),b=h.length,p=t<0?b+t:t;if(p<0||p>=b)throw new Error(`unique: axis ${t} out of bounds for array of dimension ${b}`);let w=h[p],N=[];for(let P=0;P<w;P++){let Z=[],V=h.filter((O,z)=>z!==p),$=V.reduce((O,z)=>O*z,1);for(let O=0;O<$;O++){let z=O,rA=new Array(V.length);for(let CA=V.length-1;CA>=0;CA--)rA[CA]=z%V[CA],z=Math.floor(z/V[CA]);let oA=[],iA=0;for(let CA=0;CA<b;CA++)oA.push(CA===p?P:rA[iA++]);Z.push(Number(A.get(...oA)))}N.push(Z.join(","))}let F=N.map((P,Z)=>({key:P,i:Z}));F.sort((P,Z)=>P.key<Z.key?-1:P.key>Z.key?1:0);let S=[],x;for(let{key:P,i:Z}of F)P!==x&&(S.push(Z),x=P);let H=h.map((P,Z)=>Z===p?S.length:P),X=d.zeros(H,A.dtype);for(let P=0;P<S.length;P++){let Z=S[P],V=h.filter((O,z)=>z!==p),$=V.reduce((O,z)=>O*z,1);for(let O=0;O<$;O++){let z=O,rA=new Array(V.length);for(let dA=V.length-1;dA>=0;dA--)rA[dA]=z%V[dA],z=Math.floor(z/V[dA]);let oA=[],iA=[],CA=0;for(let dA=0;dA<b;dA++)oA.push(dA===p?Z:rA[CA]),iA.push(dA===p?P:rA[CA]),dA!==p&&CA++;X.set(iA,Number(A.get(...oA)))}}return X}let o=A.dtype,n=A.size,g=A.data,i=A.offset;if(k(o)){let h=g,b=[];for(let O=0;O<n;O++)b.push({re:h[(i+O)*2],im:h[(i+O)*2+1],index:O});b.sort((O,z)=>ec(O.re,O.im,z.re,z.im));let p=[],w=[],N=new Array(n),F=[],S,x,H=0;for(let O=0;O<b.length;O++){let{re:z,im:rA,index:oA}=b[O];S===void 0||!v8(z,rA,S,x)?(S!==void 0&&F.push(H),p.push({re:z,im:rA}),w.push(oA),H=1,S=z,x=rA):H++}H>0&&F.push(H);let X=new Map,P=-1;for(let O=0;O<p.length;O++){let{re:z,im:rA}=p[O];isNaN(z)||isNaN(rA)?P=O:X.set(`${z},${rA}`,O)}for(let O=0;O<n;O++){let z=h[(i+O)*2],rA=h[(i+O)*2+1];isNaN(z)||isNaN(rA)?N[O]=P:N[O]=X.get(`${z},${rA}`)}let Z=d.zeros([p.length],o),V=Z.data;for(let O=0;O<p.length;O++)V[O*2]=p[O].re,V[O*2+1]=p[O].im;if(!r&&!I&&!e)return Z;let $={values:Z};if(r){let O=d.zeros([w.length],"int32"),z=O.data;for(let rA=0;rA<w.length;rA++)z[rA]=w[rA];$.indices=O}if(I){let O=d.zeros([N.length],"int32"),z=O.data;for(let rA=0;rA<N.length;rA++)z[rA]=N[rA];$.inverse=O}if(e){let O=d.zeros([F.length],"int32"),z=O.data;for(let rA=0;rA<F.length;rA++)z[rA]=F[rA];$.counts=O}return $}let Q=[];for(let h=0;h<n;h++)Q.push({value:Number(g[i+h]),index:h});Q.sort((h,b)=>isNaN(h.value)&&isNaN(b.value)?0:isNaN(h.value)?1:isNaN(b.value)?-1:h.value-b.value);let a=[],B=[],s=new Array(n),C=[],E,u=0;for(let h=0;h<Q.length;h++){let{value:b,index:p}=Q[h];E===void 0||isNaN(b)&&!isNaN(E)||!isNaN(b)&&isNaN(E)||!isNaN(b)&&!isNaN(E)&&b!==E?(E!==void 0&&C.push(u),a.push(b),B.push(p),u=1,E=b):u++}u>0&&C.push(u);let f=new Map,m=-1;for(let h=0;h<a.length;h++){let b=a[h];isNaN(b)?m=h:f.set(b,h)}for(let h=0;h<n;h++){let b=Number(g[i+h]);isNaN(b)?s[h]=m:s[h]=f.get(b)}let c=d.zeros([a.length],o),D=c.data,y=D instanceof BigInt64Array||D instanceof BigUint64Array;for(let h=0;h<a.length;h++)D[h]=y?BigInt(a[h]):a[h];if(!r&&!I&&!e)return c;let l={values:c};if(r){let h=d.zeros([B.length],"int32"),b=h.data;for(let p=0;p<B.length;p++)b[p]=B[p];l.indices=h}if(I){let h=d.zeros([s.length],"int32"),b=h.data;for(let p=0;p<s.length;p++)b[p]=s[p];l.inverse=h}if(e){let h=d.zeros([C.length],"int32"),b=h.data;for(let p=0;p<C.length;p++)b[p]=C[p];l.counts=h}return l}function Sr(A,r,I,e=0){if(I){let t=Number(A[(e+r)*2]),o=Number(A[(e+r)*2+1]);return`${t},${o}`}return String(Number(A[e+r]))}function bM(A,r){return tc(A,r)}function pM(A,r){let I=A.dtype,e=k(I),t=rr(A),o=rr(r),n=new Set;for(let a=0;a<o.size;a++)n.add(Sr(o.data,a,e));let g=[];for(let a=0;a<t.size;a++){let B=Sr(t.data,a,e);n.has(B)&&g.push(a)}if(e){let a=d.zeros([g.length],I),B=a.data,s=t.data;for(let C=0;C<g.length;C++){let E=g[C];B[C*2]=s[E*2],B[C*2+1]=s[E*2+1]}return a}let i=d.zeros([g.length],I),Q=i.data;for(let a=0;a<g.length;a++)Q[a]=t.data[g[a]];return i}function tc(A,r){let I=Array.from(A.shape),e=A.size,t=k(A.dtype),o=new Set;for(let i=0;i<r.size;i++)o.add(Sr(r.data,i,t,r.offset));let n=d.zeros(I,"bool"),g=n.data;for(let i=0;i<e;i++){let Q=Sr(A.data,i,t,A.offset);g[i]=o.has(Q)?1:0}return n}function wM(A,r){let I=A.dtype,e=k(I),t=rr(A),o=new Set;for(let Q=0;Q<r.size;Q++)o.add(Sr(r.data,Q,e,r.offset));let n=[];for(let Q=0;Q<t.size;Q++){let a=Sr(t.data,Q,e);o.has(a)||n.push(Q)}if(e){let Q=d.zeros([n.length],I),a=Q.data,B=t.data;for(let s=0;s<n.length;s++){let C=n[s];a[s*2]=B[C*2],a[s*2+1]=B[C*2+1]}return Q}let g=d.zeros([n.length],I),i=g.data;for(let Q=0;Q<n.length;Q++)i[Q]=t.data[n[Q]];return g}function NM(A,r){let I=A.dtype,e=k(I),t=rr(A),o=rr(r),n=new Set,g=new Set;for(let C=0;C<t.size;C++)n.add(Sr(t.data,C,e));for(let C=0;C<o.size;C++)g.add(Sr(o.data,C,e));let i=[],Q=[];for(let C=0;C<t.size;C++){let E=Sr(t.data,C,e);g.has(E)||i.push(C)}for(let C=0;C<o.size;C++){let E=Sr(o.data,C,e);n.has(E)||Q.push(C)}if(e){let C=[],E=t.data,u=o.data;for(let c of i)C.push({re:E[c*2],im:E[c*2+1]});for(let c of Q)C.push({re:u[c*2],im:u[c*2+1]});C.sort((c,D)=>ec(c.re,c.im,D.re,D.im));let f=d.zeros([C.length],I),m=f.data;for(let c=0;c<C.length;c++)m[c*2]=C[c].re,m[c*2+1]=C[c].im;return f}let a=[];for(let C of i)a.push(Number(t.data[C]));for(let C of Q)a.push(Number(o.data[C]));a.sort((C,E)=>isNaN(C)&&isNaN(E)?0:isNaN(C)?1:isNaN(E)?-1:C-E);let B=d.zeros([a.length],I),s=B.data;for(let C=0;C<a.length;C++)s[C]=a[C];return B}function FM(A,r){let I=A.dtype,e=k(I),t=rr(A),o=rr(r),n=new Set,g=[];if(e){let B=t.data,s=o.data;for(let u=0;u<t.size;u++){let f=B[u*2],m=B[u*2+1],c=`${f},${m}`;n.has(c)||(n.add(c),g.push({re:f,im:m}))}for(let u=0;u<o.size;u++){let f=s[u*2],m=s[u*2+1],c=`${f},${m}`;n.has(c)||(n.add(c),g.push({re:f,im:m}))}g.sort((u,f)=>ec(u.re,u.im,f.re,f.im));let C=d.zeros([g.length],I),E=C.data;for(let u=0;u<g.length;u++)E[u*2]=g[u].re,E[u*2+1]=g[u].im;return C}let i=[];for(let B=0;B<t.size;B++){let s=Number(t.data[B]),C=String(s);n.has(C)||(n.add(C),i.push(s))}for(let B=0;B<o.size;B++){let s=Number(o.data[B]),C=String(s);n.has(C)||(n.add(C),i.push(s))}i.sort((B,s)=>isNaN(B)&&isNaN(s)?0:isNaN(B)?1:isNaN(s)?-1:B-s);let Q=d.zeros([i.length],I),a=Q.data;for(let B=0;B<i.length;B++)a[B]=i[B];return Q}function GM(A,r="fb"){let I=A.dtype,e=A.data,t=A.size,o=A.offset,n=k(I);if(t===0)return d.zeros([0],I);let g=C=>{if(n){let E=e[(o+C)*2],u=e[(o+C)*2+1];return E===0&&u===0}return Number(e[o+C])===0},i=0;if(r==="f"||r==="fb")for(;i<t&&g(i);)i++;let Q=t-1;if(r==="b"||r==="fb")for(;Q>=i&&g(Q);)Q--;if(i>Q)return d.zeros([0],I);let a=Q-i+1;if(n){let C=d.zeros([a],I),E=C.data;for(let u=0;u<a;u++)E[u*2]=e[(o+i+u)*2],E[u*2+1]=e[(o+i+u)*2+1];return C}let B=d.zeros([a],I),s=B.data;for(let C=0;C<a;C++)s[C]=e[o+i+C];return B}function SM(A){let I=rr(A,!0,!0,!0);return{values:I.values,indices:I.indices,inverse_indices:I.inverse,counts:I.counts}}function RM(A){let I=rr(A,!1,!1,!0);return{values:I.values,counts:I.counts}}function kM(A){let I=rr(A,!1,!0,!1);return{values:I.values,inverse_indices:I.inverse}}function qM(A){return rr(A)}function sQ(A,r=!1,I=!1,e=!1,t){let o=rr(G(A),r,I,e,t);return"values"in o?{values:R(o.values),indices:o.indices?R(o.indices):void 0,inverse:o.inverse?R(o.inverse):void 0,counts:o.counts?R(o.counts):void 0}:R(o)}function oc(A,r){return R(bM(G(A),G(r)))}function nc(A,r){return R(pM(G(A),G(r)))}function ic(A,r){return R(tc(G(A),G(r)))}function gc(A,r){return R(wM(G(A),G(r)))}function Qc(A,r){return R(NM(G(A),G(r)))}function ac(A,r){return R(FM(G(A),G(r)))}function Bc(A,r){return R(GM(G(A),r))}function CQ(A){let r=SM(G(A));return{values:R(r.values),indices:R(r.indices),inverse_indices:R(r.inverse_indices),counts:R(r.counts)}}function EQ(A){let r=RM(G(A));return{values:R(r.values),counts:R(r.counts)}}function uQ(A){let r=kM(G(A));return{values:R(r.values),inverse_indices:R(r.inverse_indices)}}function sc(A){return R(qM(G(A)))}var T8="AGFzbQEAAAABCgFgBn9/f39/fwACDwEDZW52Bm1lbW9yeQIAEAMDAgAABgkBfwFBgIDAAAsHIQINY29ycmVsYXRlX2Y2NAAADWNvcnJlbGF0ZV9mMzIAAQqtCgKOBQQIfwJ7A38BfAJAIANBf2oiBiABaiIHRQ0AIANBA3QgAmoiA0F4aiEIIANBCGohCSAAIQpBACELA0ACQAJAQQAgCyIMIAZrIgMgAyAMSxsiA0EEaiAMQQFqIgsgASAMIAFJGyINTQ0A/QwAAAAAAAAAAAAAAAAAAAAAIg4hDwwBCyAMIAwgBiAMIAZJGyIDayEQIAkgA0EDdCIDayECIAogA2shEf0MAAAAAAAAAAAAAAAAAAAAACIPIQ4DQCAOIBFBEGr9AAMAIAL9AAMA/fIB/fABIQ4gDyAR/QADACACQXBq/QADAP3yAf3wASEPIBBBCGohEiACQSBqIQIgEUEgaiERIBBBBGoiAyEQIBIgDU0NAAsLAkACQCADQQJqIA1NDQAgAyESDAELIAggA0EDdCIRaiECIAAgEWohEQNAIA8gEf0AAwAgAv0AAwD98gH98AEhDyADQQRqIRAgAkEQaiECIBFBEGohESADQQJqIhIhAyAQIA1NDQALCyAOIA/98AEiD/0hACAP/SEBoCETAkAgEiANTw0AAkACQCANIBJrQQNxIhENACASIQIMAQsgEkEDdCEDIBIhAgNAIBMgACADaisDACAIIANqKwMAoqAhEyADQQhqIQMgAkEBaiECIBFBf2oiEQ0ACwsgEiANa0F8Sw0AIAJBA3QhAyANIAJrIRADQCATIAAgA2oiAisDACAIIANqIhErAwCioCACQQhqKwMAIBFBCGorAwCioCACQRBqKwMAIBFBEGorAwCioCACQRhqKwMAIBFBGGorAwCioCETIANBIGohAyAQQXxqIhANAAsLIAQgDEEDdGogEzkDACAIQXhqIQggCkEIaiEKIAsgB0cNAAsLC5oFBAh/AnsDfwF9AkAgA0F/aiIGIAFqIgdFDQAgA0ECdCACaiIDQXxqIQggA0EMaiEJIAAhCkEAIQsDQAJAAkBBACALIgwgBmsiAyADIAxLGyIDQQhqIAxBAWoiCyABIAwgAUkbIg1NDQD9DAAAAAAAAAAAAAAAAAAAAAAiDiEPDAELIAwgDCAGIAwgBkkbIgNrIRAgCSADQQJ0IgNrIQIgCiADayER/QwAAAAAAAAAAAAAAAAAAAAAIg8hDgNAIA4gEUEQav0AAgAgAv0AAgD95gH95AEhDiAPIBH9AAIAIAJBcGr9AAIA/eYB/eQBIQ8gEEEQaiESIAJBIGohAiARQSBqIREgEEEIaiIDIRAgEiANTQ0ACwsCQAJAIANBBGogDU0NACADIRIMAQsgCCADQQJ0IhFqIQIgACARaiERA0AgDyAR/QACACAC/QACAP3mAf3kASEPIANBCGohECACQRBqIQIgEUEQaiERIANBBGoiEiEDIBAgDU0NAAsLIA4gD/3kASIP/R8DIA/9HwIgD/0fACAP/R8BkpKSIRMCQCASIA1PDQACQAJAIA0gEmtBA3EiEQ0AIBIhAgwBCyASQQJ0IQMgEiECA0AgEyAAIANqKgIAIAggA2oqAgCUkiETIANBBGohAyACQQFqIQIgEUF/aiIRDQALCyASIA1rQXxLDQAgAkECdCEDIA0gAmshEANAIBMgACADaiICKgIAIAggA2oiESoCAJSSIAJBBGoqAgAgEUEEaioCAJSSIAJBCGoqAgAgEUEIaioCAJSSIAJBDGoqAgAgEUEMaioCAJSSIRMgA0EQaiEDIBBBfGoiEA0ACwsgBCAMQQJ0aiATOAIAIAhBfGohCCAKQQRqIQogCyAHRw0ACwsL",ai=null;function MM(){if(ai)return ai;let A=atob(T8),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ai=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ai.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ai}function xM(A,r,I,e,t,o){MM().exports.correlate_f64(A,r,I,e,t,o)}function JM(A,r,I,e,t,o){MM().exports.correlate_f32(A,r,I,e,t,o)}var P8=32,K8={float64:xM,float32:JM},V8={float64:Float64Array,float32:Float32Array};function UM(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size,e=r.size,t=I+e-1;if(t<P8*Y.thresholdMultiplier)return null;let o=A.dtype==="float32"&&r.dtype==="float32"?"float32":"float64",n=K8[o],g=V8[o];if(!n||!g)return null;let i=g.BYTES_PER_ELEMENT,Q=I*i,a=e*i,B=t*i;J(Q+a+B),U();let s=A.offset,C=r.offset,E,u;if(A.dtype===o)E=A.data.subarray(s,s+I);else{let y=new g(I),l=A.data;for(let h=0;h<I;h++)y[h]=Number(l[s+h]);E=y}if(r.dtype===o)u=r.data.subarray(C,C+e);else{let y=new g(e),l=r.data;for(let h=0;h<e;h++)y[h]=Number(l[C+h]);u=y}let f=q(E),m=q(u),c=_(B);n(f,I,m,e,c,t);let D=v(c,t,g);return d.fromData(D,[t],o)}var W8="AGFzbQEAAAABCgFgBn9/f39/fwACDwEDZW52Bm1lbW9yeQIAEAMDAgAABgkBfwFBgIDAAAsHHwIMY29udm9sdmVfZjY0AAAMY29udm9sdmVfZjMyAAEKiQMCxgEDA38BfAR/AkAgA0F/aiIGIAFqIgdFDQBBACEIA0BEAAAAAAAAAAAhCQJAQQAgCCAGayIDIAMgCEsbIgogCEEBaiILIAEgCCABSRsiDE8NACAAIAggBiAIIAZJG0EDdCINayEDIAIgDWohDUQAAAAAAAAAACEJA0AgCSADKwMAIA0rAwCioCEJIANBCGohAyANQXhqIQ0gCkEBaiIKIAxJDQALCyAEIAhBA3RqIAk5AwAgAEEIaiEAIAshCCALIAdHDQALCwu+AQMDfwF9BH8CQCADQX9qIgYgAWoiB0UNAEEAIQgDQEMAAAAAIQkCQEEAIAggBmsiAyADIAhLGyIKIAhBAWoiCyABIAggAUkbIgxPDQAgACAIIAYgCCAGSRtBAnQiDWshAyACIA1qIQ1DAAAAACEJA0AgCSADKgIAIA0qAgCUkiEJIANBBGohAyANQXxqIQ0gCkEBaiIKIAxJDQALCyAEIAhBAnRqIAk4AgAgAEEEaiEAIAshCCALIAdHDQALCws=",Bi=null;function LM(){if(Bi)return Bi;let A=atob(W8),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Bi=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Bi.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Bi}function HM(A,r,I,e,t,o){LM().exports.convolve_f64(A,r,I,e,t,o)}function _M(A,r,I,e,t,o){LM().exports.convolve_f32(A,r,I,e,t,o)}var O8=32,Z8={float64:HM,float32:_M},z8={float64:Float64Array,float32:Float32Array};function YM(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size,e=r.size,t=I+e-1;if(t<O8*Y.thresholdMultiplier)return null;let o=A.dtype==="float32"&&r.dtype==="float32"?"float32":"float64",n=Z8[o],g=z8[o];if(!n||!g)return null;let i=g.BYTES_PER_ELEMENT,Q=I*i,a=e*i,B=t*i;J(Q+a+B),U();let s=A.offset,C=r.offset,E,u;if(A.dtype===o)E=A.data.subarray(s,s+I);else{let y=new g(I),l=A.data;for(let h=0;h<I;h++)y[h]=Number(l[s+h]);E=y}if(r.dtype===o)u=r.data.subarray(C,C+e);else{let y=new g(e),l=r.data;for(let h=0;h<e;h++)y[h]=Number(l[C+h]);u=y}let f=q(E),m=q(u),c=_(B);n(f,I,m,e,c,t);let D=v(c,t,g);return d.fromData(D,[t],o)}function vM(A,r,I=0){eA(A.dtype,"bincount","bincount requires integer input.");let e=A.data,t=A.size,o=0;for(let g=0;g<t;g++){let i=Number(e[g]);if(i<0||!Number.isInteger(i))throw new Error("'x' argument must contain non-negative integers");i>o&&(o=i)}let n=Math.max(o+1,I);if(r!==void 0){if(r.size!==t)throw new Error("weights array must have same length as x");let g=r.data,i=new Float64Array(n);for(let Q=0;Q<t;Q++){let a=Number(e[Q]);i[a]+=Number(g[Q])}return d.fromData(i,[n],"float64")}else{let g=new Float64Array(n);for(let i=0;i<t;i++){let Q=Number(e[i]);g[Q]++}return d.fromData(g,[n],"float64")}}function XM(A,r,I=!1){eA(A.dtype,"digitize","digitize requires real numbers."),eA(r.dtype,"digitize","digitize requires real numbers.");let e=A.data,t=r.data,o=A.size,n=r.size,g=new Float64Array(o),i=!0;n>1&&(i=Number(t[1])>=Number(t[0]));for(let Q=0;Q<o;Q++){let a=Number(e[Q]),B;if(i)I?B=j8(t,n,a):B=si(t,n,a);else if(I)for(B=0;B<n&&Number(t[B])>=a;)B++;else for(B=0;B<n&&Number(t[B])>a;)B++;g[Q]=B}return d.fromData(g,[...A.shape],"float64")}function j8(A,r,I){let e=0,t=r;for(;e<t;){let o=e+t>>>1;Number(A[o])<I?e=o+1:t=o}return e}function si(A,r,I){let e=0,t=r;for(;e<t;){let o=e+t>>>1;Number(A[o])<=I?e=o+1:t=o}return e}function TM(A,r=10,I,e=!1,t){eA(A.dtype,"histogram","histogram requires real numbers."),typeof r!="number"&&eA(r.dtype,"histogram","histogram requires real numbers.");let o=A.data,n=A.size,g;if(typeof r=="number"){let B,s;if(I)[B,s]=I;else{B=1/0,s=-1/0;for(let E=0;E<n;E++){let u=Number(o[E]);u<B&&(B=u),u>s&&(s=u)}B===s&&(B=B-.5,s=s+.5)}g=[];let C=(s-B)/r;for(let E=0;E<=r;E++)g.push(B+E*C)}else{let B=r.data;g=[];for(let s=0;s<r.size;s++)g.push(Number(B[s]))}let i=g.length-1,Q=new Float64Array(i),a=t?.data;for(let B=0;B<n;B++){let s=Number(o[B]),C=a?Number(a[B]):1,E=si(g,g.length,s)-1;if(!(E<0)){if(E>=i)if(s===g[i])E=i-1;else continue;Q[E]+=C}}if(e){let B=0;for(let s=0;s<i;s++)B+=Q[s];for(let s=0;s<i;s++){let C=g[s+1]-g[s];Q[s]=Q[s]/(B*C)}}return{hist:d.fromData(Q,[i],"float64"),bin_edges:d.fromData(new Float64Array(g),[g.length],"float64")}}function PM(A,r,I=10,e,t=!1,o){eA(A.dtype,"histogram2d","histogram2d requires real numbers."),eA(r.dtype,"histogram2d","histogram2d requires real numbers.");let n=A.data,g=r.data,i=A.size;if(r.size!==i)throw new Error("x and y must have the same length");let Q,a,B,s;if(typeof I=="number"?(B=I,s=I):Array.isArray(I)&&I.length===2?(I[0],B=I[0],s=I[1]):(B=10,s=10),typeof B=="number"){let m,c;if(e)[m,c]=e[0];else{m=1/0,c=-1/0;for(let y=0;y<i;y++){let l=Number(n[y]);l<m&&(m=l),l>c&&(c=l)}m===c&&(m-=.5,c+=.5)}Q=[];let D=(c-m)/B;for(let y=0;y<=B;y++)Q.push(m+y*D)}else{let m=B.data;Q=[];for(let c=0;c<B.size;c++)Q.push(Number(m[c]))}if(typeof s=="number"){let m,c;if(e)[m,c]=e[1];else{m=1/0,c=-1/0;for(let y=0;y<i;y++){let l=Number(g[y]);l<m&&(m=l),l>c&&(c=l)}m===c&&(m-=.5,c+=.5)}a=[];let D=(c-m)/s;for(let y=0;y<=s;y++)a.push(m+y*D)}else{let m=s.data;a=[];for(let c=0;c<s.size;c++)a.push(Number(m[c]))}let C=Q.length-1,E=a.length-1,u=new Float64Array(C*E),f=o?.data;for(let m=0;m<i;m++){let c=Number(n[m]),D=Number(g[m]),y=f?Number(f[m]):1,l=si(Q,Q.length,c)-1,h=si(a,a.length,D)-1;if(l<0||l>=C)if(c===Q[C]&&l===C)l=C-1;else continue;if(h<0||h>=E)if(D===a[E]&&h===E)h=E-1;else continue;u[l*E+h]+=y}if(t){let m=0;for(let c=0;c<u.length;c++)m+=u[c];for(let c=0;c<C;c++)for(let D=0;D<E;D++){let y=Q[c+1]-Q[c],l=a[D+1]-a[D],h=y*l;u[c*E+D]=u[c*E+D]/(m*h)}}return{hist:d.fromData(u,[C,E],"float64"),x_edges:d.fromData(new Float64Array(Q),[Q.length],"float64"),y_edges:d.fromData(new Float64Array(a),[a.length],"float64")}}function KM(A,r=10,I,e=!1,t){eA(A.dtype,"histogramdd","histogramdd requires real numbers.");let o=A.shape,n=A.data,g,i;if(o.length===1)g=o[0],i=1;else if(o.length===2)g=o[0],i=o[1];else throw new Error("sample must be 1D or 2D array");let Q;if(typeof r=="number")Q=new Array(i).fill(r);else if(Q=r,Q.length!==i)throw new Error("bins array length must match number of dimensions");let a=[];for(let m=0;m<i;m++){let c,D;if(I&&I[m])[c,D]=I[m];else{c=1/0,D=-1/0;for(let b=0;b<g;b++){let p=Number(i===1?n[b]:n[b*i+m]);p<c&&(c=p),p>D&&(D=p)}c===D&&(c-=.5,D+=.5)}let y=Q[m],l=[],h=(D-c)/y;for(let b=0;b<=y;b++)l.push(c+b*h);a.push(l)}let B=Q.slice(),s=B.reduce((m,c)=>m*c,1),C=new Float64Array(s),E=new Array(i);E[i-1]=1;for(let m=i-2;m>=0;m--)E[m]=E[m+1]*Q[m+1];let u=t?.data;for(let m=0;m<g;m++){let c=u?Number(u[m]):1,D=0,y=!1;for(let l=0;l<i;l++){let h=Number(i===1?n[m]:n[m*i+l]),b=a[l],p=Q[l],w=si(b,b.length,h)-1;if(w<0||w>=p)if(h===b[p]&&w===p)w=p-1;else{y=!0;break}D+=w*E[l]}y||(C[D]+=c)}if(e){let m=0;for(let D=0;D<s;D++)m+=C[D];let c=new Float64Array(s);for(let D=0;D<s;D++){let y=1,l=D;for(let h=0;h<i;h++){let b=Math.floor(l/E[h])%Q[h],p=a[h];y*=p[b+1]-p[b]}c[D]=y}for(let D=0;D<s;D++)C[D]=C[D]/(m*c[D])}let f=a.map(m=>d.fromData(new Float64Array(m),[m.length],"float64"));return{hist:d.fromData(C,B,"float64"),edges:f}}function Ec(A,r,I="full"){let e=A.data,t=r.data,o=A.size,n=r.size,g=k(A.dtype)||k(r.dtype),i=o+n-1;if(g){let B=new Float64Array(i),s=new Float64Array(i),C=k(A.dtype),E=k(r.dtype);for(let f=0;f<i;f++){let m=0,c=0,D=f-n+1;for(let y=0;y<o;y++){let l=y-D;if(l>=0&&l<n){let h,b,p,w;C?(h=e[y*2],b=e[y*2+1]):(h=Number(e[y]),b=0),E?(p=t[l*2],w=t[l*2+1]):(p=Number(t[l]),w=0),m+=h*p+b*w,c+=b*p-h*w}}B[f]=m,s[f]=c}let u=(f,m,c,D=0)=>{let y=new Float64Array(c*2);for(let l=0;l<c;l++)y[l*2]=f[D+l],y[l*2+1]=m[D+l];return d.fromData(y,[c],"complex128")};if(I==="full")return u(B,s,i);if(I==="same"){let f=Math.floor((i-o)/2);return u(B,s,o,f)}else{let f=Math.max(o,n)-Math.min(o,n)+1,m=Math.min(o,n)-1;return u(B,s,f,m)}}let Q=UM(A,r);if(Q){if(I==="full")return Q;let B=Q.data;if(I==="same"){let s=Math.floor((i-o)/2),C=new Float64Array(o);for(let E=0;E<o;E++)C[E]=B[s+E];return d.fromData(C,[o],Q.dtype)}else{let s=Math.max(o,n)-Math.min(o,n)+1,C=Math.min(o,n)-1,E=new Float64Array(s);for(let u=0;u<s;u++)E[u]=B[C+u];return d.fromData(E,[s],Q.dtype)}}let a=new Float64Array(i);for(let B=0;B<i;B++){let s=0,C=B-n+1;for(let E=0;E<o;E++){let u=E-C;u>=0&&u<n&&(s+=Number(e[E])*Number(t[u]))}a[B]=s}if(I==="full")return d.fromData(a,[i],"float64");if(I==="same"){let B=Math.floor((i-o)/2),s=new Float64Array(o);for(let C=0;C<o;C++)s[C]=a[B+C];return d.fromData(s,[o],"float64")}else{let B=Math.max(o,n)-Math.min(o,n)+1,s=Math.min(o,n)-1,C=new Float64Array(B);for(let E=0;E<B;E++)C[E]=a[s+E];return d.fromData(C,[B],"float64")}}function VM(A,r,I="full"){let e=r.size,t=A.size,o=k(r.dtype);if(!o&&!k(A.dtype)){let i=YM(A,r);if(i){let Q=t+e-1;if(I==="full")return i;let a=i.data;if(I==="same"){let B=Math.floor((Q-t)/2),s=new Float64Array(t);for(let C=0;C<t;C++)s[C]=a[B+C];return d.fromData(s,[t],i.dtype)}else{let B=Math.max(t,e)-Math.min(t,e)+1,s=Math.min(t,e)-1,C=new Float64Array(B);for(let E=0;E<B;E++)C[E]=a[s+E];return d.fromData(C,[B],i.dtype)}}}let n=r.data,g;if(o){let i=new Float64Array(e*2);for(let Q=0;Q<e;Q++){let a=e-1-Q;i[Q*2]=n[a*2],i[Q*2+1]=n[a*2+1]}g=d.fromData(i,[e],r.dtype)}else{let i=new Float64Array(e);for(let Q=0;Q<e;Q++)i[Q]=Number(n[e-1-Q]);g=d.fromData(i,[e],"float64")}if(o){let i=g.data;for(let Q=0;Q<e;Q++)i[Q*2+1]=-i[Q*2+1]}return Ec(A,g,I)}function uc(A,r,I=!0,e=!1,t){let o=A.shape,n=A.data,g=k(A.dtype)||r!==void 0&&k(r.dtype),i;if(t!==void 0?i=t:i=e?0:1,o.length===1)if(r!==void 0){let u=r.data,f=A.size,m=k(A.dtype),c=k(r.dtype);if(r.size!==f)throw new Error("m and y must have same length");if(g){let w=0,N=0,F=0,S=0;for(let oA=0;oA<f;oA++)m?(w+=n[oA*2],N+=n[oA*2+1]):w+=Number(n[oA]),c?(F+=u[oA*2],S+=u[oA*2+1]):F+=Number(u[oA]);w/=f,N/=f,F/=f,S/=f;let x=0,H=0,X=0,P=0,Z=0,V=0,$=0,O=0;for(let oA=0;oA<f;oA++){let iA,CA,dA,hr;m?(iA=n[oA*2]-w,CA=n[oA*2+1]-N):(iA=Number(n[oA])-w,CA=0),c?(dA=u[oA*2]-F,hr=u[oA*2+1]-S):(dA=Number(u[oA])-F,hr=0),x+=iA*iA+CA*CA,X+=dA*dA+hr*hr,Z+=iA*dA+CA*hr,V+=CA*dA-iA*hr,$+=dA*iA+hr*CA,O+=hr*iA-dA*CA}let z=f-i;if(z<=0){let oA=new Float64Array(8);return oA.fill(NaN),d.fromData(oA,[2,2],"complex128")}x/=z,X/=z,Z/=z,V/=z,$/=z,O/=z;let rA=new Float64Array(8);return rA[0]=x,rA[1]=H,rA[2]=Z,rA[3]=V,rA[4]=$,rA[5]=O,rA[6]=X,rA[7]=P,d.fromData(rA,[2,2],"complex128")}let D=0,y=0;for(let w=0;w<f;w++)D+=Number(n[w]),y+=Number(u[w]);D/=f,y/=f;let l=0,h=0,b=0;for(let w=0;w<f;w++){let N=Number(n[w])-D,F=Number(u[w])-y;l+=N*N,h+=F*F,b+=N*F}let p=f-i;return p<=0?d.fromData(new Float64Array([NaN,NaN,NaN,NaN]),[2,2],"float64"):(l/=p,h/=p,b/=p,d.fromData(new Float64Array([l,b,b,h]),[2,2],"float64"))}else{let u=A.size;if(g){let D=0,y=0;for(let b=0;b<u;b++)D+=n[b*2],y+=n[b*2+1];D/=u,y/=u;let l=0;for(let b=0;b<u;b++){let p=n[b*2]-D,w=n[b*2+1]-y;l+=p*p+w*w}let h=u-i;return h<=0?d.fromData(new Float64Array([NaN,0]),[],"complex128"):(l/=h,d.fromData(new Float64Array([l,0]),[],"complex128"))}let f=0;for(let D=0;D<u;D++)f+=Number(n[D]);f/=u;let m=0;for(let D=0;D<u;D++){let y=Number(n[D])-f;m+=y*y}let c=u-i;return c<=0?d.fromData(new Float64Array([NaN]),[],"float64"):(m/=c,d.fromData(new Float64Array([m]),[],"float64"))}let Q,a;I?(Q=o[0],a=o[1]):(Q=o[1],a=o[0]);let B=a-i;if(g){let u=new Float64Array(Q),f=new Float64Array(Q);for(let c=0;c<Q;c++){let D=0,y=0;for(let l=0;l<a;l++){let h=I?c*a+l:l*Q+c;D+=n[h*2],y+=n[h*2+1]}u[c]=D/a,f[c]=y/a}let m=new Float64Array(Q*Q*2);if(B<=0)return m.fill(NaN),d.fromData(m,[Q,Q],"complex128");for(let c=0;c<Q;c++)for(let D=0;D<Q;D++){let y=0,l=0;for(let b=0;b<a;b++){let p=I?c*a+b:b*Q+c,w=I?D*a+b:b*Q+D,N=n[p*2]-u[c],F=n[p*2+1]-f[c],S=n[w*2]-u[D],x=n[w*2+1]-f[D];y+=N*S+F*x,l+=F*S-N*x}let h=(c*Q+D)*2;m[h]=y/B,m[h+1]=l/B}return d.fromData(m,[Q,Q],"complex128")}let s=new Float64Array(Q*a);for(let u=0;u<Q;u++){let f=0;for(let D=0;D<a;D++){let y=I?u*a+D:D*Q+u;f+=Number(n[y])}let m=f/a,c=u*a;for(let D=0;D<a;D++){let y=I?u*a+D:D*Q+u;s[c+D]=Number(n[y])-m}}let C=new Float64Array(Q*Q);if(B<=0)return C.fill(NaN),d.fromData(C,[Q,Q],"float64");let E=1/B;for(let u=0;u<Q;u++){let f=u*a;for(let m=u;m<Q;m++){let c=m*a,D=0;for(let l=0;l<a;l++)D+=s[f+l]*s[c+l];let y=D*E;C[u*Q+m]=y,C[m*Q+u]=y}}return d.fromData(C,[Q,Q],"float64")}function WM(A,r,I=!0){let e=k(A.dtype)||r!==void 0&&k(r.dtype);if(A.shape.length===1&&r===void 0)return e?d.fromData(new Float64Array([1,0]),[],"complex128"):d.fromData(new Float64Array([1]),[],"float64");let t=uc(A,r,I,!1),o=t.data,g=t.shape[0];if(e){let B=new Float64Array(g*g*2);for(let s=0;s<g;s++)for(let C=0;C<g;C++){let E=o[(s*g+C)*2],u=o[(s*g+C)*2+1],f=o[(s*g+s)*2],m=o[(C*g+C)*2],c=(s*g+C)*2;if(f<=0||m<=0)B[c]=NaN,B[c+1]=NaN;else{let D=Math.sqrt(f*m);B[c]=E/D,B[c+1]=u/D}}return d.fromData(B,[g,g],"complex128")}let i=new Float64Array(g*g),Q=o,a=new Float64Array(g);for(let B=0;B<g;B++){let s=Q[B*g+B];a[B]=s>0?1/Math.sqrt(s):NaN}for(let B=0;B<g;B++)for(let s=B;s<g;s++){let C=Q[B*g+s]*a[B]*a[s];i[B*g+s]=C,i[s*g+B]=C}return d.fromData(i,[g,g],"float64")}function OM(A,r=10,I,e){eA(A.dtype,"histogram_bin_edges","histogram_bin_edges requires real numbers.");let t=A.data,o=A.size,n,g;if(I)[n,g]=I;else{n=1/0,g=-1/0;for(let B=0;B<o;B++){let s=Number(t[B]);isNaN(s)||(s<n&&(n=s),s>g&&(g=s))}!isFinite(n)||!isFinite(g)?(n=0,g=1):n===g&&(n=n-.5,g=g+.5)}let i;typeof r=="number"?i=r:i=Cc(t,o,n,g,r),i=Math.max(1,Math.round(i));let Q=new Float64Array(i+1),a=(g-n)/i;for(let B=0;B<=i;B++)Q[B]=n+B*a;return d.fromData(Q,[i+1],"float64")}function Cc(A,r,I,e,t){if(r===0)return 1;let o=e-I;if(o===0)return 1;let n=[],g=0;for(let u=0;u<r;u++){let f=Number(A[u]);isNaN(f)||(n.push(f),g+=f)}let i=n.length;if(i===0)return 1;let Q=g/i,a=0;for(let u=0;u<i;u++){let f=n[u]-Q;a+=f*f}let B=Math.sqrt(a/i);n.sort((u,f)=>u-f);let s=n[Math.floor(i*.25)]??0,E=(n[Math.floor(i*.75)]??0)-s;switch(t){case"sqrt":return Math.ceil(Math.sqrt(i));case"sturges":return Math.ceil(Math.log2(i)+1);case"rice":return Math.ceil(2*Math.pow(i,1/3));case"scott":{if(B===0)return 1;let u=3.5*B/Math.pow(i,1/3);return Math.ceil(o/u)}case"fd":{if(E===0)return Cc(A,r,I,e,"sturges");let u=2*E/Math.pow(i,1/3);return Math.ceil(o/u)}case"doane":{let u=$8(n,Q,B),f=Math.sqrt(6*(i-2)/((i+1)*(i+3)));return Math.ceil(1+Math.log2(i)+Math.log2(1+Math.abs(u)/f))}case"stone":return Cc(A,r,I,e,"sturges");default:{let u=Math.ceil(Math.log2(i)+1),f=E===0?u:Math.ceil(o/(2*E/Math.pow(i,1/3)));return Math.max(u,f)}}}function $8(A,r,I){if(I===0)return 0;let e=A.length,t=0;for(let o=0;o<e;o++)t+=Math.pow((A[o]-r)/I,3);return t/e}function ZM(A,r,I=1,e=-1){eA(A.dtype,"trapezoid","trapezoid requires real numbers."),r!==void 0&&eA(r.dtype,"trapezoid","trapezoid requires real numbers.");let t=Array.from(A.shape),o=t.length;if(e<0&&(e=o+e),e<0||e>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let n=t[e];if(n<2)throw new Error("trapezoid requires at least 2 samples along axis");let g;if(r!==void 0){if(r.size!==n)throw new Error(`x array size (${r.size}) must match y axis size (${n})`);let u=r.data;g=new Float64Array(n);for(let f=0;f<n;f++)g[f]=Number(u[f])}else{g=new Float64Array(n);for(let u=0;u<n;u++)g[u]=u*I}let i=[...t];if(i.splice(e,1),o===1){let u=A.data,f=0;for(let m=0;m<n-1;m++){let c=Number(u[m]),D=Number(u[m+1]),y=g[m+1]-g[m];f+=.5*(c+D)*y}return f}let Q=i.reduce((u,f)=>u*f,1),a=new Float64Array(Q),B=new Array(o),s=1;for(let u=o-1;u>=0;u--)B[u]=s,s*=t[u];let C=new Array(i.length);s=1;for(let u=i.length-1;u>=0;u--)C[u]=s,s*=i[u];let E=A.data;for(let u=0;u<Q;u++){let f=[],m=u;for(let l=0;l<i.length;l++){let h=Math.floor(m/C[l]);m%=C[l],f.push(h)}let c=[],D=0;for(let l=0;l<o;l++)l===e?c.push(0):(c.push(f[D]),D++);let y=0;for(let l=0;l<n-1;l++){c[e]=l;let h=0;for(let F=0;F<o;F++)h+=c[F]*B[F];c[e]=l+1;let b=0;for(let F=0;F<o;F++)b+=c[F]*B[F];let p=Number(E[h]),w=Number(E[b]),N=g[l+1]-g[l];y+=.5*(p+w)*N}a[u]=y}return i.length===0?a[0]:d.fromData(a,i,"float64")}function cc(A,r,I){let e=r?G(r):void 0;return R(vM(G(A),e,I))}function Dc(A,r,I){return R(XM(G(A),G(r),I))}function cQ(A,r,I,e,t){let o=r instanceof AA?G(r):r,n=t?G(t):void 0,g=TM(G(A),o,I,e,n);return[R(g.hist),R(g.bin_edges)]}function DQ(A,r,I,e,t,o){let n;if(Array.isArray(I)&&I.length===2){let Q=I[0]instanceof AA?G(I[0]):I[0],a=I[1]instanceof AA?G(I[1]):I[1];n=[Q,a]}else n=I;let g=o?G(o):void 0,i=PM(G(A),G(r),n,e,t,g);return[R(i.hist),R(i.x_edges),R(i.y_edges)]}function fQ(A,r,I,e,t){let o=t?G(t):void 0,n=KM(G(A),r,I,e,o);return[R(n.hist),n.edges.map(g=>R(g))]}function fc(A,r,I){return R(Ec(G(A),G(r),I))}function mc(A,r,I){return R(VM(G(A),G(r),I))}function yc(A,r,I,e,t){return R(uc(G(A),r?G(r):void 0,I,e,t))}function lc(A,r,I){return R(WM(G(A),r?G(r):void 0,I))}function mQ(A,r,I,e){return R(OM(G(A),r,I,e?G(e):void 0))}function hc(A,r,I,e){let t=ZM(G(A),r?G(r):void 0,I,e);return typeof t=="number"?t:R(t)}var rX="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",Ci=null;function ur(){if(Ci)return Ci;let A=atob(rX),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Ci=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Ci.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ci}function zM(A,r,I){ur().exports.diff_f64(A,r,I)}function jM(A,r,I){ur().exports.diff_f32(A,r,I)}function dc(A,r,I){ur().exports.diff_i64(A,r,I)}function bc(A,r,I){ur().exports.diff_i32(A,r,I)}function pc(A,r,I){ur().exports.diff_i16(A,r,I)}function wc(A,r,I){ur().exports.diff_i8(A,r,I)}function $M(A,r,I,e){ur().exports.diff_2d_f64(A,r,I,e)}function Ax(A,r,I,e){ur().exports.diff_2d_f32(A,r,I,e)}function Nc(A,r,I,e){ur().exports.diff_2d_i64(A,r,I,e)}function Fc(A,r,I,e){ur().exports.diff_2d_i32(A,r,I,e)}function Gc(A,r,I,e){ur().exports.diff_2d_i16(A,r,I,e)}function Sc(A,r,I,e){ur().exports.diff_2d_i8(A,r,I,e)}var IX=64,eX={float64:zM,float32:jM,int64:dc,uint64:dc,int32:bc,uint32:bc,int16:pc,uint16:pc,int8:wc,uint8:wc},tX={float64:$M,float32:Ax,int64:Nc,uint64:Nc,int32:Fc,uint32:Fc,int16:Gc,uint16:Gc,int8:Sc,uint8:Sc},oX={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function rx(A,r){if(!A.isCContiguous)return null;let I=A.shape,e=I.length,t=r<0?e+r:r;if(t!==e-1)return null;let o=A.size;if(o<IX*Y.thresholdMultiplier)return null;let n=A.dtype,g=oX[n];if(!g)return null;let i=I[t],Q=i-1;if(Q<=0)return null;let a=g.BYTES_PER_ELEMENT,B=o/i,s=B*Q,C=o*a,E=s*a;J(C+E),U();let u=A.offset,f=A.data.subarray(u,u+o),m=q(f),c=_(E),D=Array.from(I);if(D[t]=Q,e===1){let l=eX[n];if(!l)return null;l(m,c,Q)}else{let l=tX[n];if(!l)return null;l(m,c,B,i)}let y=v(c,s,g);return d.fromData(y,D,n)}var nX="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",Ei=null;function Rr(){if(Ei)return Ei;let A=atob(nX),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Ei=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Ei.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ei}function Ix(A,r,I,e){Rr().exports.gradient_f64(A,r,I,e)}function ex(A,r,I,e){Rr().exports.gradient_f32(A,r,I,e)}function tx(A,r,I,e){Rr().exports.gradient_i64(A,r,I,e)}function ox(A,r,I,e){Rr().exports.gradient_u64(A,r,I,e)}function nx(A,r,I,e){Rr().exports.gradient_i32(A,r,I,e)}function ix(A,r,I,e){Rr().exports.gradient_u32(A,r,I,e)}function gx(A,r,I,e){Rr().exports.gradient_i16(A,r,I,e)}function Qx(A,r,I,e){Rr().exports.gradient_u16(A,r,I,e)}function ax(A,r,I,e){Rr().exports.gradient_i8(A,r,I,e)}function Bx(A,r,I,e){Rr().exports.gradient_u8(A,r,I,e)}var iX=64,gX={float64:Ix,float32:ex,int64:tx,uint64:ox,int32:nx,uint32:ix,int16:gx,uint16:Qx,int8:ax,uint8:Bx},QX={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},aX={float64:Float64Array,float32:Float32Array,int64:Float64Array,uint64:Float64Array,int32:Float64Array,uint32:Float64Array,int16:Float64Array,uint16:Float64Array,int8:Float64Array,uint8:Float64Array},BX={float64:"float64",float32:"float32",int64:"float64",uint64:"float64",int32:"float64",uint32:"float64",int16:"float64",uint16:"float64",int8:"float64",uint8:"float64"};function sx(A,r){if(!A.isCContiguous||A.shape.length!==1)return null;let I=A.size;if(I<iX*Y.thresholdMultiplier||I<2)return null;let e=A.dtype,t=gX[e],o=QX[e],n=aX[e],g=BX[e];if(!t||!o||!n||!g)return null;let i=o.BYTES_PER_ELEMENT,Q=n.BYTES_PER_ELEMENT,a=I*i,B=I*Q;J(a+B),U();let s=A.offset,C=A.data.subarray(s,s+I),E=q(C),u=_(B);t(E,u,I,r);let f=v(u,I,n);return d.fromData(f,[I],g)}function Cx(A,r=1,I=-1){if(r<0)throw new Error(`order must be non-negative but got ${r}`);if(r===0)return A.copy();let e=Array.from(A.shape),t=e.length,o=I<0?t+I:I;if(o<0||o>=t)throw new Error(`axis ${I} is out of bounds for array of dimension ${t}`);if(e[o]<r+1)throw new Error(`diff requires at least ${r+1} elements along axis ${I}, but got ${e[o]}`);if(r===1&&!k(A.dtype)){let g=rx(A,o);if(g)return g}let n=A;for(let g=0;g<r;g++)n=sX(n,o);return n}function sX(A,r){let I=Array.from(A.shape),e=I.length,t=I[r],o=[...I];o[r]=t-1;let n=A.dtype,g=k(n),i=L(n)?"float64":n,Q=d.zeros(o,i),a=Q.data,B=A.strides,s=Q.size,C=A.offset;for(let E=0;E<s;E++){let u=E,f=new Array(e);for(let l=e-1;l>=0;l--)f[l]=u%o[l],u=Math.floor(u/o[l]);let m=[...f],c=[...f];c[r]=m[r]+1;let D=0,y=0;for(let l=0;l<e;l++)D+=m[l]*B[l],y+=c[l]*B[l];if(g){let l=A.data,h=l[(C+D)*2],b=l[(C+D)*2+1],p=l[(C+y)*2],w=l[(C+y)*2+1];a[E*2]=p-h,a[E*2+1]=w-b}else{let l=(L(n),Number(A.data[C+D])),h=(L(n),Number(A.data[C+y]));a[E]=h-l}}return Q}function Ex(A,r=null,I=null){let e=A.size,t=A.dtype,o=k(t),n=L(t)?"float64":t,g=Math.max(0,e-1),i=I?I.length:0,Q=r?r.length:0,a=i+g+Q,B=d.zeros([a],n),s=B.data,C=0;if(I)if(o)for(let E of I)s[C*2]=E,s[C*2+1]=0,C++;else for(let E of I)s[C++]=E;if(o)for(let E=0;E<g;E++){let u=A.iget(E),f=A.iget(E+1);s[C*2]=f.re-u.re,s[C*2+1]=f.im-u.im,C++}else for(let E=0;E<g;E++){let u=(L(t),Number(A.iget(E))),f=(L(t),Number(A.iget(E+1)));s[C++]=f-u}if(r)if(o)for(let E of r)s[C*2]=E,s[C*2+1]=0,C++;else for(let E of r)s[C++]=E;return B}function ux(A,r=1,I=null){let t=Array.from(A.shape).length,o;if(I===null)o=Array.from({length:t},(i,Q)=>Q);else if(typeof I=="number"){let i=I<0?t+I:I;if(i<0||i>=t)throw new Error(`axis ${I} is out of bounds for array of dimension ${t}`);o=[i]}else o=I.map(i=>{let Q=i<0?t+i:i;if(Q<0||Q>=t)throw new Error(`axis ${i} is out of bounds for array of dimension ${t}`);return Q});let n;if(typeof r=="number")n=o.map(()=>r);else{if(r.length!==o.length)throw new Error("Number of spacings must match number of axes");n=r}if(o.length===1&&A.shape.length===1&&!k(A.dtype)&&typeof r=="number"){let i=sx(A,n[0]);if(i)return i}let g=[];for(let i=0;i<o.length;i++)g.push(CX(A,o[i],n[i]));return g.length===1?g[0]:g}function CX(A,r,I){let e=Array.from(A.shape),t=e.length,o=e[r];if(o<2)throw new Error(`Shape of array along axis ${r} must be at least 2, but got ${o}`);let n=A.dtype,g=k(n),i=L(n)?"float64":n==="float32"?"float32":g?n:"float64",Q=d.zeros(e,i),a=Q.data,B=A.strides,s=I,C=2*s,E=A.size,u=A.offset;for(let f=0;f<E;f++){let m=f,c=new Array(t);for(let l=t-1;l>=0;l--)c[l]=m%e[l],m=Math.floor(m/e[l]);let D=u;for(let l=0;l<t;l++)D+=c[l]*B[l];let y=c[r];if(g){let l=A.data,h=a,b,p;if(y===0){let w=[...c];w[r]=1;let N=0;for(let X=0;X<t;X++)N+=w[X]*B[X];let F=l[D*2],S=l[D*2+1],x=l[(u+N)*2],H=l[(u+N)*2+1];b=(x-F)/s,p=(H-S)/s}else if(y===o-1){let w=[...c];w[r]=o-2;let N=0;for(let X=0;X<t;X++)N+=w[X]*B[X];let F=l[D*2],S=l[D*2+1],x=l[(u+N)*2],H=l[(u+N)*2+1];b=(F-x)/s,p=(S-H)/s}else{let w=[...c],N=[...c];w[r]=y+1,N[r]=y-1;let F=0,S=0;for(let Z=0;Z<t;Z++)F+=w[Z]*B[Z],S+=N[Z]*B[Z];let x=l[(u+F)*2],H=l[(u+F)*2+1],X=l[(u+S)*2],P=l[(u+S)*2+1];b=(x-X)/C,p=(H-P)/C}h[f*2]=b,h[f*2+1]=p}else{let l;if(y===0){let h=[...c];h[r]=1;let b=0;for(let N=0;N<t;N++)b+=h[N]*B[N];let p=(L(n),Number(A.data[D]));l=((L(n),Number(A.data[u+b]))-p)/s}else if(y===o-1){let h=[...c];h[r]=o-2;let b=0;for(let N=0;N<t;N++)b+=h[N]*B[N];let p=(L(n),Number(A.data[D])),w=(L(n),Number(A.data[u+b]));l=(p-w)/s}else{let h=[...c],b=[...c];h[r]=y+1,b[r]=y-1;let p=0,w=0;for(let S=0;S<t;S++)p+=h[S]*B[S],w+=b[S]*B[S];let N=(L(n),Number(A.data[u+p])),F=(L(n),Number(A.data[u+w]));l=(N-F)/C}a[f]=l}}return Q}function ui(A,r,I){return R(Cx(G(A),r,I))}function Rc(A,r,I){return R(Ex(G(A),r??null,I??null))}function yQ(A,r,I){let e=ux(G(A),r,I);return Array.isArray(e)?dr(e):R(e)}function cx(A){let r=A.dtype,I=Array.from(A.shape),e=A.size;if(k(r)){let t=ne(r),o=d.zeros(I,t),n=o.data,g=A.data;for(let i=0;i<e;i++)n[i]=g[i*2];return o}return A.copy()}function Dx(A){let r=A.dtype,I=Array.from(A.shape),e=A.size;if(k(r)){let o=ne(r),n=d.zeros(I,o),g=n.data,i=A.data;for(let Q=0;Q<e;Q++)g[Q]=i[Q*2+1];return n}let t=r==="float32"?"float32":"float64";return d.zeros(I,t)}function fx(A){let r=A.dtype,I=Array.from(A.shape),e=A.size;if(k(r)){let t=nA(r),o=e*2,n=new t(o),g=A.data;for(let i=0;i<e;i++)n[i*2]=g[i*2],n[i*2+1]=-g[i*2+1];return d.fromData(n,I,r)}return A.copy()}function mx(A,r=!1){let I=A.dtype,e=Array.from(A.shape),t=A.size,o=d.zeros(e,"float64"),n=o.data;if(k(I)){let g=A.data;for(let i=0;i<t;i++){let Q=g[i*2],a=g[i*2+1],B=Math.atan2(a,Q);r&&(B=B*180/Math.PI),n[i]=B}}else for(let g=0;g<t;g++){let i=A.iget(g),a=(i instanceof T?i.re:Number(i))>=0?0:Math.PI;r&&(a=a*180/Math.PI),n[g]=a}return o}function kc(A){return R(cx(G(A)))}function qc(A){return R(Dx(G(A)))}function ci(A){return R(fx(G(A)))}function Mc(A,r){return R(mx(G(A),r))}var cX="AGFzbQEAAAABDgJgA39/fwBgBH9/f38AAg8BA2VudgZtZW1vcnkCABADAwIAAQYJAX8BQYCAwAALBxsCCmluZGljZXNfMmQAAAppbmRpY2VzXzNkAAEKsQQCwwMDAX8CewN/AkAgAiABbCIDRQ0AQQAhAQJAAkAgA0EESQ0AIAL9ESEE/QwAAAAAAQAAAAIAAAADAAAAIQUgA0F8cSIBIQYgACEHA0AgByAF/RsAIAT9GwBu/REgBf0bASAE/RsBbv0cASAF/RsCIAT9GwJu/RwCIAX9GwMgBP0bA279HAP9CwIAIAdBEGohByAF/QwEAAAABAAAAAQAAAAEAAAA/a4BIQUgBkF8aiIGDQALIAMgAUYNAQsgACABQQJ0aiEHA0AgByABIAJuNgIAIAdBBGohByADIAFBAWoiAUcNAAsLIANBAnQhCEEAIQECQCADQQRJDQAgACAIaiEHIAL9ESEE/QwAAAAAAQAAAAIAAAADAAAAIQUgA0F8cSIBIQYDQCAHIAX9GwAgBP0bAHD9ESAF/RsBIAT9GwFw/RwBIAX9GwIgBP0bAnD9HAIgBf0bAyAE/RsDcP0cA/0LAgAgB0EQaiEHIAX9DAQAAAAEAAAABAAAAAQAAAD9rgEhBSAGQXxqIgYNAAsgAyABRg0BCyAAIAggAUECdGpqIQcDQCAHIAEgAnA2AgAgB0EEaiEHIAMgAUEBaiIBRw0ACwsLagEFfwJAIAMgAmwiBCABbCIFRQ0AIAVBA3QhBiAFQQJ0IQdBACEBA0AgACABIARuNgIAIAAgB2ogASADbiIIIAJwNgIAIAAgBmogASAIIANsazYCACAAQQRqIQAgBSABQQFqIgFHDQALCws=",Di=null;function yx(){if(Di)return Di;let A=atob(cX),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Di=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Di.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Di}function lx(A,r,I){yx().exports.indices_2d(A,r,I)}function hx(A,r,I,e){yx().exports.indices_3d(A,r,I,e)}var DX=64;function dx(A,r){if(r!=="int32")return null;let I=A.length;if(I<2||I>3)return null;let e=A.reduce((i,Q)=>i*Q,1);if(e<DX*Y.thresholdMultiplier)return null;let t=I*e,o=t*4;J(o),U();let n=_(o);I===2?lx(n,A[0],A[1]):hx(n,A[0],A[1],A[2]);let g=v(n,t,Int32Array);return d.fromData(g,[I,...A],"int32")}function xc(A,r){let I=A.shape,e=I.length,t=r.length;if(t<e)throw new Error("input operand has more dimensions than allowed by the axis remapping");let o=Fr([Array.from(I),r]);if(o===null)throw new Error(`operands could not be broadcast together with shape (${I.join(",")}) (${r.join(",")})`);for(let n=0;n<t;n++)if(o[n]!==r[n])throw new Error(`operands could not be broadcast together with shape (${I.join(",")}) (${r.join(",")})`);return sr(A,r)}function bx(A){if(A.length===0)return[];if(A.length===1)return[A[0]];let r=A.map(e=>Array.from(e.shape)),I=Fr(r);if(I===null)throw new Error(`operands could not be broadcast together with shapes ${r.map(e=>`(${e.join(",")})`).join(" ")}`);return A.map(e=>sr(e,I))}function px(A,r,I){let e=A.shape,t=e.length,o=A.dtype;if(I===void 0){let E=A.size;for(let c of r){let D=c<0?E+c:c;if(D<0||D>=E)throw new Error(`index ${c} is out of bounds for axis 0 with size ${E}`)}let u=r.length,f=nA(o);if(!f)throw new Error(`Cannot take from array with dtype ${o}`);let m=new f(u);for(let c=0;c<u;c++){let D=r[c];D<0&&(D=E+D);let y=A.iget(D);L(o),m[c]=y}return d.fromData(m,[u],o)}let n=I<0?t+I:I;if(n<0||n>=t)throw new Error(`axis ${I} is out of bounds for array of dimension ${t}`);let g=e[n];for(let E of r){let u=E<0?g+E:E;if(u<0||u>=g)throw new Error(`index ${E} is out of bounds for axis ${n} with size ${g}`)}let i=Array.from(e);i[n]=r.length;let Q=i.reduce((E,u)=>E*u,1),a=nA(o);if(!a)throw new Error(`Cannot take from array with dtype ${o}`);let B=new a(Q),s=HA(i),C=new Array(t).fill(0);for(let E=0;E<Q;E++){let u=[...C],f=C[n],m=r[f];m<0&&(m=g+m),u[n]=m;let c=A.get(...u),D=0;for(let y=0;y<t;y++)D+=C[y]*s[y];L(o),B[D]=c;for(let y=t-1;y>=0&&(C[y]++,!(C[y]<i[y]));y--)C[y]=0}return d.fromData(B,i,o)}function wx(A,r,I){let e=A.size,t=A.dtype,o;if(typeof I=="number"||typeof I=="bigint")o=new Array(r.length).fill(I);else{o=[];for(let n=0;n<I.size;n++){let g=I.iget(n);o.push(g instanceof T?g.re:g)}if(o.length===1)o=new Array(r.length).fill(o[0]);else if(o.length!==r.length){let n=[...o];o=[];for(let g=0;g<r.length;g++)o.push(n[g%n.length])}}for(let n=0;n<r.length;n++){let g=r[n];if(g<0&&(g=e+g),g<0||g>=e)throw new Error(`index ${r[n]} is out of bounds for axis 0 with size ${e}`);let i=o[n];L(t)?typeof i!="bigint"&&(i=BigInt(Math.round(Number(i)))):typeof i=="bigint"&&(i=Number(i)),A.iset(g,i)}}function Nx(A,r){if(r.length===0)throw new Error("choices cannot be empty");let I=A.shape,e=r.length,t=r[0].dtype,o=r.map(s=>Array.from(s.shape));o.unshift(Array.from(I));let n=Fr(o);if(n===null)throw new Error("operands could not be broadcast together");let g=sr(A,n),i=r.map(s=>sr(s,n)),Q=n.reduce((s,C)=>s*C,1),a=nA(t);if(!a)throw new Error(`Cannot choose with dtype ${t}`);let B=new a(Q);for(let s=0;s<Q;s++){let C=Number(g.iget(s));if(C<0||C>=e)throw new Error(`index ${C} is out of bounds for axis 0 with size ${e}`);let E=i[C].iget(s);L(t),B[s]=E}return d.fromData(B,n,t)}function Fx(A,r,I=!1){if(A.ndim!==r.ndim)return!1;for(let t=0;t<A.ndim;t++)if(A.shape[t]!==r.shape[t])return!1;let e=A.size;for(let t=0;t<e;t++){let o=A.iget(t),n=r.iget(t);if(I){let g=typeof o=="number"&&Number.isNaN(o),i=typeof n=="number"&&Number.isNaN(n);if(g&&i)continue}if(o!==n)return!1}return!0}function Gx(A,r,I){let e=Bq(A,r,I);if(e)return e;let t=A.shape,o=t.length,n=A.dtype,g=I<0?o+I:I;if(g<0||g>=o)throw new Error(`axis ${I} is out of bounds for array of dimension ${o}`);let i=r.shape;if(i.length!==o)throw new Error(`indices and arr must have the same number of dimensions, got ${i.length} vs ${o}`);for(let w=0;w<o;w++)if(w!==g&&i[w]!==t[w]&&i[w]!==1&&t[w]!==1)throw new Error(`index ${i[w]} is out of bounds for size ${t[w]} in dimension ${w}`);let Q=Array.from(i),a=Q.reduce((w,N)=>w*N,1),B=nA(n);if(!B)throw new Error(`Cannot take_along_axis with dtype ${n}`);let s=new B(a),C=HA(t),E=HA(i),u=t[g],f=HA(Q),m=new Array(o),c=L(n),D=A.isCContiguous,y=r.isCContiguous,l=A.data,h=A.offset,b=r.data,p=r.offset;for(let w=0;w<a;w++){let N=w;for(let H=0;H<o;H++)m[H]=N/f[H]|0,N-=m[H]*f[H];let F=0;for(let H=0;H<o;H++){let X=i[H]===1?0:m[H];F+=X*E[H]}let S=Number(y?b[p+F]:r.iget(F));S<0&&(S=u+S);let x=0;for(let H=0;H<o;H++){let X=H===g?S:t[H]===1?0:m[H];x+=X*C[H]}if(D)s[w]=l[h+x];else{let H=A.iget(x);s[w]=H}}return d.fromData(s,Q,n)}function Sx(A,r,I,e){let t=A.shape,o=t.length,n=A.dtype,g=e<0?o+e:e;if(g<0||g>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=r.shape,Q=I.shape;if(i.length!==o||Q.length!==o)throw new Error("indices, arr, and values must have same ndim");let a=t[g],B=HA(t),s=HA(i),C=HA(Q),E=i.reduce((u,f)=>u*f,1);for(let u=0;u<E;u++){let f=new Array(o),m=u;for(let p=o-1;p>=0;p--)f[p]=m%i[p],m=Math.floor(m/i[p]);let c=0;for(let p=0;p<o;p++)c+=f[p]*s[p];let D=Number(r.iget(c));if(D<0&&(D=a+D),D<0||D>=a)throw new Error(`index ${D} is out of bounds for axis ${g} with size ${a}`);let y=0;for(let p=0;p<o;p++){let w=Q[p]===1?0:f[p];y+=w*C[p]}let l=I.iget(y),h=[...f];h[g]=D;let b=0;for(let p=0;p<o;p++)b+=h[p]*B[p];L(n)?typeof l!="bigint"&&(l=BigInt(Math.round(Number(l)))):typeof l=="bigint"&&(l=Number(l)),A.iset(b,l)}}function Rx(A,r,I){let e=A.size,t=A.dtype,o;if(typeof I=="number"||typeof I=="bigint")o=[I];else{o=[];for(let g=0;g<I.size;g++){let i=I.iget(g);o.push(i instanceof T?i.re:i)}}let n=0;for(let g=0;g<e;g++)if(r.iget(g)){let Q=o[n%o.length];L(t)?typeof Q!="bigint"&&(Q=BigInt(Math.round(Number(Q)))):typeof Q=="bigint"&&(Q=Number(Q)),A.iset(g,Q),n++}}function kx(A,r,I){let e=r.shape,t=e.length,o=r.dtype,n=L(o);if(I===void 0){let b=Math.min(A.size,r.size),p=A.isCContiguous,w=A.data,N=A.offset,F=0;if(p)for(let P=0;P<b;P++)w[N+P]&&F++;else for(let P=0;P<b;P++)A.iget(P)&&F++;let S=nA(o);if(!S)throw new Error(`Cannot compress with dtype ${o}`);let x=new S(F),H=0,X=r.isCContiguous;if(p&&X){let P=r.data,Z=r.offset;if(n){let V=x,$=P;for(let O=0;O<b;O++)w[N+O]&&(V[H++]=$[Z+O])}else{let V=x,$=P;for(let O=0;O<b;O++)w[N+O]&&(V[H++]=$[Z+O])}}else for(let P=0;P<b;P++)(p?w[N+P]:A.iget(P))&&(x[H]=r.iget(P),H++);return d.fromData(x,[F],o)}let g=I<0?t+I:I;if(g<0||g>=t)throw new Error(`axis ${I} is out of bounds for array of dimension ${t}`);let i=e[g],Q=Math.min(A.size,i),a=[],B=A.isCContiguous,s=A.data,C=A.offset;for(let b=0;b<Q;b++)(B?s[C+b]:A.iget(b))&&a.push(b);let E=a.length,u=[...e];u[g]=E;let f=u.reduce((b,p)=>b*p,1),m=nA(o);if(!m)throw new Error(`Cannot compress with dtype ${o}`);let c=new m(f),D=e.slice(g+1).reduce((b,p)=>b*p,1),y=e.slice(0,g).reduce((b,p)=>b*p,1),l=0;if(r.isCContiguous){let b=r.data,p=r.offset;for(let w=0;w<y;w++){let N=p+w*i*D;for(let F=0;F<E;F++){let S=N+a[F]*D;c.set(b.subarray(S,S+D),l),l+=D}}}else for(let b=0;b<y;b++)for(let p=0;p<E;p++){let w=a[p];for(let N=0;N<D;N++){let F=b*i*D+w*D+N;c[l++]=r.iget(F)}}return d.fromData(c,u,o)}function qx(A,r,I=0){if(A.length!==r.length)throw new Error("condlist and choicelist must have same length");if(A.length===0)throw new Error("condlist and choicelist cannot be empty");let e=[...A.map(s=>Array.from(s.shape)),...r.map(s=>Array.from(s.shape))],t=Fr(e);if(t===null)throw new Error("condlist and choicelist arrays could not be broadcast together");let o=r[0].dtype,n=t.reduce((s,C)=>s*C,1),g=nA(o);if(!g)throw new Error(`Cannot select with dtype ${o}`);let i=I;L(o)?i=typeof I=="bigint"?I:BigInt(I):i=typeof I=="bigint"?Number(I):I;let Q=new g(n);for(let s=0;s<n;s++)L(o),Q[s]=i;let a=A.map(s=>sr(s,t)),B=r.map(s=>sr(s,t));for(let s=0;s<n;s++)for(let C=0;C<A.length;C++)if(a[C].iget(s)){let E=B[C].iget(s);L(o),Q[s]=E;break}return d.fromData(Q,t,o)}function Mx(A,r,I){let e=A.size,t=A.dtype,o=[];for(let g=0;g<I.size;g++){let i=I.iget(g);o.push(i instanceof T?i.re:i)}if(o.length===0)return;let n=0;for(let g=0;g<e;g++)if(r.iget(g)){let Q=o[n%o.length];L(t)?typeof Q!="bigint"&&(Q=BigInt(Math.round(Number(Q)))):typeof Q=="bigint"&&(Q=Number(Q)),A.iset(g,Q),n++}}function Jc(A,r=2){if(r<1)throw new Error("ndim must be at least 1");let I=new Int32Array(A);for(let t=0;t<A;t++)I[t]=t;let e=[];for(let t=0;t<r;t++)e.push(d.fromData(new Int32Array(I),[A],"int32"));return e}function xx(A){let r=A.shape,I=r.length;if(I<2)throw new Error("array must be at least 2-D");let e=r[0];for(let t=1;t<I;t++)if(r[t]!==e)throw new Error("All dimensions of input must be equal");return Jc(e,I)}function Uc(A,r=0,I){let e=I??A,t=[],o=[];for(let n=0;n<A;n++)for(let g=0;g<=Math.min(n+r,e-1);g++)g>=0&&(t.push(n),o.push(g));return[d.fromData(new Int32Array(t),[t.length],"int32"),d.fromData(new Int32Array(o),[o.length],"int32")]}function Jx(A,r=0){let I=A.shape;if(I.length!==2)throw new Error("array must be 2-D");return Uc(I[0],r,I[1])}function Lc(A,r=0,I){let e=I??A,t=[],o=[];for(let n=0;n<A;n++)for(let g=Math.max(n+r,0);g<e;g++)t.push(n),o.push(g);return[d.fromData(new Int32Array(t),[t.length],"int32"),d.fromData(new Int32Array(o),[o.length],"int32")]}function Ux(A,r=0){let I=A.shape;if(I.length!==2)throw new Error("array must be 2-D");return Lc(I[0],r,I[1])}function Lx(A,r,I=0){let e=r(A,I),t=e.shape;if(t.length!==2||t[0]!==A||t[1]!==A)throw new Error("mask_func must return n x n array");let o=[],n=[];for(let g=0;g<A;g++)for(let i=0;i<A;i++)e.get(g,i)&&(o.push(g),n.push(i));return[d.fromData(new Int32Array(o),[o.length],"int32"),d.fromData(new Int32Array(n),[n.length],"int32")]}function Hx(A,r="int32"){let I=dx(A,r);if(I)return I;let e=A.length,t=[e,...A],o=t.reduce((a,B)=>a*B,1),n=nA(r);if(!n)throw new Error(`Cannot create indices with dtype ${r}`);let g=new n(o),i=A.reduce((a,B)=>a*B,1),Q=new Array(e);Q[e-1]=1;for(let a=e-2;a>=0;a--)Q[a]=Q[a+1]*A[a+1];for(let a=0;a<e;a++){let B=a*i,s=A[a],C=Q[a];if(r==="int64"){let E=g;for(let u=0;u<i;u++)E[B+u]=BigInt(Math.floor(u/C)%s)}else{let E=g;for(let u=0;u<i;u++)E[B+u]=Math.floor(u/C)%s}}return d.fromData(g,t,r)}function _x(...A){let r=A.length,I=[];for(let e=0;e<r;e++){let t=A[e],o=t.size,n=t.dtype,g=new Array(r).fill(1);g[e]=o;let i=nA(n);if(!i)throw new Error(`Cannot create ix_ with dtype ${n}`);let Q=new i(o);for(let a=0;a<o;a++){let B=t.iget(a);L(n),Q[a]=B}I.push(d.fromData(Q,g,n))}return I}function Yx(A,r,I="raise"){if(A.length!==r.length)throw new Error("multi_index length must equal dims length");if(A.length===0)throw new Error("multi_index cannot be empty");let e=A[0].size,t=r.length,o=new Int32Array(e),n=new Array(t),g=1;for(let i=t-1;i>=0;i--)n[i]=g,g*=r[i];for(let i=0;i<e;i++){let Q=0;for(let a=0;a<t;a++){let B=Number(A[a].iget(i)),s=r[a];if(I==="wrap")B=(B%s+s)%s;else if(I==="clip")B=Math.max(0,Math.min(B,s-1));else if(B<0||B>=s)throw new Error(`index ${B} is out of bounds for axis ${a} with size ${s}`);Q+=B*n[a]}o[i]=Q}return d.fromData(o,[e],"int32")}function vx(A,r,I="C"){let e=r.length,t,o;if(typeof A=="number")t=[A],o=[];else{t=[];for(let a=0;a<A.size;a++)t.push(Number(A.iget(a)));o=Array.from(A.shape)}let n=t.length,g=r.reduce((a,B)=>a*B,1),i=new Array(e);if(I==="C"){let a=1;for(let B=e-1;B>=0;B--)i[B]=a,a*=r[B]}else{let a=1;for(let B=0;B<e;B++)i[B]=a,a*=r[B]}let Q=[];for(let a=0;a<e;a++){let B=new Int32Array(n);Q.push(d.fromData(B,o.length?o:[1],"int32"))}for(let a=0;a<n;a++){let B=t[a];if(B<0||B>=g)throw new Error(`index ${B} is out of bounds for array with size ${g}`);if(I==="C")for(let s=0;s<e;s++){let C=Math.floor(B/i[s]);B=B%i[s],Q[s].data[a]=C%r[s]}else for(let s=e-1;s>=0;s--){let C=Math.floor(B/i[s]);B=B%i[s],Q[s].data[a]=C%r[s]}}return typeof A=="number"?Q.map(a=>{let B=a.iget(0);return d.fromData(new Int32Array([Number(B)]),[],"int32")}):Q}function Xx(A,r,I=!1){let e=A.shape,t=e.length;if(t<2)throw new Error("array must be at least 2-d");let o;if(t===2)o=e[1]+1;else{o=1;for(let Q=1;Q<t;Q++){let a=1;for(let B=Q;B<t;B++)a*=e[B];o+=a}}let n=A.size,g=Math.min(...e);I&&t===2&&(g=Math.max(e[0],e[1]));let i=A.isCContiguous;if(typeof r=="number")if(i){let Q=A.data,a=A.offset;if(L(A.dtype)){let B=Q,s=BigInt(Math.round(r));for(let C=0;C<g;C++){let E=C*o;if(E>=n)break;B[a+E]=s}}else for(let B=0;B<g;B++){let s=B*o;if(s>=n)break;Q[a+s]=r}}else for(let Q=0;Q<g&&Q*o<n;Q++)A.iset(Q*o,r);else{let Q=r.size;if(i&&r.isCContiguous){let a=A.data,B=A.offset,s=r.data,C=r.offset;if(L(A.dtype)){let E=a,u=s;for(let f=0;f<g;f++){let m=f*o;if(m>=n)break;E[B+m]=u[C+f%Q]}}else{let E=a,u=s;for(let f=0;f<g;f++){let m=f*o;if(m>=n)break;E[B+m]=u[C+f%Q]}}}else for(let a=0;a<g&&a*o<n;a++)A.iset(a*o,r.iget(a%Q))}}function Tx(A,r,I){let e=Array.from(A.shape),t=e.length;if(r<0&&(r+=t),r<0||r>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let o=[];for(let s=0;s<t;s++)s!==r&&o.push(e[s]);if(o.length===0){let s=I(A);if(typeof s=="number"){let C=d.zeros([1],A.dtype);return C.data[0]=s,C}return s}if(t===2){let[s,C]=e;if(r===0){let E=[];for(let f=0;f<C;f++){let m=new Float64Array(s);for(let D=0;D<s;D++)m[D]=Number(A.get(D,f));let c=d.fromData(m,[s],"float64");E.push(I(c))}let u=E[0];if(u===void 0)return d.zeros([0],"float64");if(typeof u=="number"){let f=d.zeros([C],"float64");for(let m=0;m<C;m++)f.data[m]=E[m];return f}else{let f=[u.size,C],m=d.zeros(f,"float64");for(let c=0;c<C;c++){let D=E[c];for(let y=0;y<D.size;y++)m.data[y*C+c]=Number(D.iget(y))}return m}}else{let E=[];for(let f=0;f<s;f++){let m=new Float64Array(C);for(let D=0;D<C;D++)m[D]=Number(A.get(f,D));let c=d.fromData(m,[C],"float64");E.push(I(c))}let u=E[0];if(u===void 0)return d.zeros([0],"float64");if(typeof u=="number"){let f=d.zeros([s],"float64");for(let m=0;m<s;m++)f.data[m]=E[m];return f}else{let f=[s,u.size],m=d.zeros(f,"float64");for(let c=0;c<s;c++){let D=E[c];for(let y=0;y<D.size;y++)m.data[c*D.size+y]=Number(D.iget(y))}return m}}}if(t===1){let s=I(A);if(typeof s=="number"){let C=d.zeros([1],"float64");return C.data[0]=s,C}return s}let n=e[r],g=o.reduce((s,C)=>s*C,1);function i(s){let C=new Array(o.length),E=s;for(let u=o.length-1;u>=0;u--)C[u]=E%o[u],E=Math.floor(E/o[u]);return C}function Q(s,C){let E=[],u=0;for(let f=0;f<t;f++)E.push(f===r?C:s[u++]);return Number(A.get(...E))}let a=[];for(let s=0;s<g;s++){let C=i(s),E=new Float64Array(n);for(let f=0;f<n;f++)E[f]=Q(C,f);let u=d.fromData(E,[n],"float64");a.push(I(u))}let B=a[0];if(B===void 0)return d.zeros([0],"float64");if(typeof B=="number"){let s=d.zeros(o,"float64");for(let C=0;C<g;C++)s.data[C]=a[C];return s}else{let s=[...o,...Array.from(B.shape)],C=d.zeros(s,"float64"),E=B.size;for(let u=0;u<g;u++){let f=a[u];for(let m=0;m<E;m++)C.data[u*E+m]=Number(f.iget(m))}return C}}function Px(A,r,I){let e=A,t=A.shape.length;for(let o of I){let n=o<0?o+t:o;if(n<0||n>=t)throw new Error(`axis ${o} is out of bounds for array of dimension ${t}`);if(e=r(e,n),e.shape.length<t){let g=Array.from(e.shape);g.splice(n,0,1);let i=HA(g);e=new d(e.data,g,i,0,e.dtype)}}return e}function Hc(A,r){return A.data.buffer===r.data.buffer}function Kx(A,r){return Hc(A,r)}var Jr={divide:"warn",over:"warn",under:"ignore",invalid:"warn"};function _c(){return{...Jr}}function Vx(A,r,I,e,t){let o=_c();return A!==void 0&&(Jr.divide=A,Jr.over=A,Jr.under=A,Jr.invalid=A),r!==void 0&&(Jr.divide=r),I!==void 0&&(Jr.over=I),e!==void 0&&(Jr.under=e),t!==void 0&&(Jr.invalid=t),o}function fi(A,r){return $A(xc(G(A),r),A)}function lQ(...A){let r=A.map(G);return bx(r).map(I=>R(I))}function hQ(...A){if(A.length===0)return[];if(A.length===1)return[...A[0]];let r=[...A[0]];for(let I=1;I<A.length;I++){let e=A[I],t=Math.max(r.length,e.length),o=[];for(let n=0;n<t;n++){let g=n<r.length?r[r.length-1-n]:1,i=n<e.length?e[e.length-1-n]:1;if(g===i)o.unshift(g);else if(g===1)o.unshift(i);else if(i===1)o.unshift(g);else throw new Error(`Cannot broadcast shapes: dimensions ${g} and ${i} are incompatible`)}r=o}return r}function re(A,r,I){return R(px(G(A),r,I))}function Ie(A,r,I){let e=Array.isArray(I)?G(QA(I)):G(I);wx(G(A),r,e)}function Yc(A,r,I){return R(Gx(G(A),G(r),I))}function dQ(A,r,I,e){Sx(G(A),G(r),G(I),e)}function mi(A,r){let I=r.map(G);return R(Nx(G(A),I))}function uI(A,r,I){return R(kx(G(A),G(r),I))}function vc(A,r,I=0){let e;return r instanceof AA?e=Array.from(r.data):Array.isArray(r[0])?e=r.flat():e=r,re(A,e,I)}function Xc(A,r,I){return uI(r,A,I)}function Tc(A,r,I=0){let e=A.map(G),t=r.map(G);return R(qx(e,t,I))}function bQ(A,r,I){Mx(G(A),G(r),G(I))}function pQ(A,r,I){Rx(G(A),G(r),G(I))}function wQ(A,r){let I=G(A),e=A.shape,t=A.size,o=A.dtype;if(typeof r=="number"||typeof r=="bigint"){A.fill(r);return}let n=G(r),g=r.shape,i=Fr([g,e]);if(!i)throw new Error(`could not broadcast input array from shape (${g.join(",")}) into shape (${e.join(",")})`);if(i.length!==e.length||!i.every((a,B)=>a===e[B]))throw new Error(`could not broadcast input array from shape (${g.join(",")}) into shape (${e.join(",")})`);let Q=xc(n,e);if(L(o))for(let a=0;a<t;a++){let B=Q.iget(a),s=typeof B=="bigint"?B:BigInt(Math.round(Number(B)));I.iset(a,s)}else if(o==="bool")for(let a=0;a<t;a++){let B=Q.iget(a);I.iset(a,B?1:0)}else for(let a=0;a<t;a++){let B=Q.iget(a);I.iset(a,Number(B))}}function Pc(A,r="int32"){return R(Hx(A,r))}function NQ(...A){let r=A.map(G);return _x(...r).map(I=>R(I))}function Kc(A,r,I="raise"){let e=A.map(G);return R(Yx(e,r,I))}function Vc(A,r){let I=typeof A=="number"?G(QA([A])):G(A);return vx(I,r).map(e=>R(e))}function Wc(A,r=2){return Jc(A,r).map(I=>R(I))}function Oc(A){return xx(G(A)).map(r=>R(r))}function FQ(A,r,I=!1){Xx(G(A),r,I)}function Zc(A,r=0,I){return Uc(A,r,I).map(e=>R(e))}function zc(A,r=0){return Jx(G(A),r).map(I=>R(I))}function jc(A,r=0,I){return Lc(A,r,I).map(e=>R(e))}function $c(A,r=0){return Ux(G(A),r).map(I=>R(I))}function AD(A,r,I=0){return Lx(A,(t,o)=>G(r(t,o)),I).map(t=>R(t))}function GQ(A,r,I=!1){return Fx(G(A),G(r),I)}function SQ(A,r){return oS(G(A),G(r))}function rD(A,r,I){let e=t=>{let o=A(R(t));return typeof o=="number"?o:G(o)};return R(Tx(G(I),r,e))}function ID(A,r,I){let e=(t,o)=>G(A(R(t),o));return R(Px(G(r),e,I))}function RQ(A,r){return Hc(G(A),G(r))}function kQ(A,r){return Kx(G(A),G(r))}var qQ=_c,MQ=Vx;var xQ=rm,JQ=Im,UQ=em,LQ=Ee,HQ=Ce,_Q=tm,YQ=om;function vQ(A,r){return _i(G(A),r?.max_line_width??null,r?.precision??null,r?.suppress_small??null,r?.separator??" ",r?.prefix??"",r?.suffix??"",r?.threshold??null,r?.edgeitems??null,r?.floatmode??null,r?.sign??null)}function XQ(A,r,I,e){return nm(G(A),r,I,e)}function ee(A,r,I){return Yi(G(A),r,I)}function TQ(A){if(A instanceof AA)return A.ndim;if(typeof A=="number"||typeof A=="bigint"||typeof A=="boolean")return 0;if(Array.isArray(A)){let r=0,I=A;for(;Array.isArray(I)&&I.length>0;)r++,I=I[0];return r}return 0}function yi(A){if(A instanceof AA)return A.shape;if(typeof A=="number"||typeof A=="bigint"||typeof A=="boolean")return[];if(Array.isArray(A)){let r=[],I=A;for(;Array.isArray(I)&&I.length>0;)r.push(I.length),I=I[0];return r}return[]}function PQ(A){return A instanceof AA?A.size:typeof A=="number"||typeof A=="bigint"||typeof A=="boolean"?1:Array.isArray(A)?yi(A).reduce((I,e)=>I*e,1):1}function KQ(A,...r){let I=A.storage,e=A.shape;if(r.length===0){if(A.size!==1)throw new Error("can only convert an array of size 1 to a scalar");return I.isCContiguous?I.data[I.offset]:I.iget(0)}if(r.length===1)return I.isCContiguous?I.data[I.offset+r[0]]:I.iget(r[0]);if(r.length!==e.length)throw new Error("incorrect number of indices for array");return I.get(...r)}function VQ(A){let r=A.shape,I=A.storage,e=r.length;if(e===0)return I.iget(0);if(I.isCContiguous){let a=function(B,s){let C=r[s],E=i[s];if(s===e-1){let f=new Array(C);for(let m=0;m<C;m++)f[m]=n[g+B+m];return f}let u=new Array(C);for(let f=0;f<C;f++)u[f]=a(B+f*E,s+1);return u};var o=a;let n=I.data,g=I.offset;if(e===1){let B=r[0],s=new Array(B);for(let C=0;C<B;C++)s[C]=n[g+C];return s}let i=new Array(e),Q=1;for(let B=e-1;B>=0;B--)i[B]=Q,Q*=r[B];return a(0,0)}if(e===1){let n=[];for(let g=0;g<r[0];g++)n.push(I.iget(g));return n}function t(n,g){if(g===e)return I.get(...n);let i=[];for(let Q=0;Q<r[g];Q++)n[g]=Q,i.push(t(n,g+1));return i}return t(new Array(e),0)}function WQ(A,r="C"){let I=A.storage;r==="F"&&console.warn('tobytes with order="F" not fully implemented, returning C-order');let e=I.data,t=e.BYTES_PER_ELEMENT;if(I.isCContiguous){let g=e.byteOffset+I.offset*t,i=A.size*t;return new Uint8Array(e.buffer,g,i)}let n=A.copy().data;return new Uint8Array(n.buffer,n.byteOffset,A.size*t)}function OQ(A,r=!1){let e=A.data.BYTES_PER_ELEMENT;if(e===1)return r?A:A.copy();let t=r?A:A.copy(),o=t.data,n=new Uint8Array(o.buffer,o.byteOffset,o.byteLength);for(let g=0;g<o.length;g++){let i=g*e;for(let Q=0;Q<e/2;Q++){let a=n[i+Q];n[i+Q]=n[i+e-1-Q],n[i+e-1-Q]=a}}return t}function ZQ(A,r){if(!r||r===A.dtype)return A.copy();throw new Error("view with different dtype not fully implemented")}function zQ(A,r,I="",e=""){throw new Error("tofile requires Node.js file system access. Use serializeNpy for portable serialization.")}function jQ(A,r){let I=A.storage,e=A.dtype,t=A.size;if(r instanceof T){if(!(e==="complex64"||e==="complex128"))throw new Error("Cannot fill non-complex array with complex value");if(I.isCContiguous){let n=I.data,g=I.offset;for(let i=0;i<t;i++)n[(g+i)*2]=r.re,n[(g+i)*2+1]=r.im}else for(let n=0;n<t;n++)I.iset(n,r)}else if(typeof r=="bigint")if(I.isCContiguous)I.data.fill(r,I.offset,I.offset+t);else for(let o=0;o<t;o++)I.iset(o,r);else{let o=typeof r=="boolean"?r?1:0:r;if(I.isCContiguous)I.data.fill(o,I.offset,I.offset+t);else for(let n=0;n<t;n++)I.iset(n,o)}}var mX="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",li=null;function te(){if(li)return li;let A=atob(mX),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);li=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=li.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),li}function Wx(A,r,I,e,t){te().exports.pad_2d_f64(A,r,I,e,t)}function Ox(A,r,I,e,t){te().exports.pad_2d_f32(A,r,I,e,t)}function eD(A,r,I,e,t){te().exports.pad_2d_i64(A,r,I,e,t)}function tD(A,r,I,e,t){te().exports.pad_2d_i32(A,r,I,e,t)}function oD(A,r,I,e,t){te().exports.pad_2d_i16(A,r,I,e,t)}function nD(A,r,I,e,t){te().exports.pad_2d_i8(A,r,I,e,t)}var yX=64,lX={float64:Wx,float32:Ox,int64:eD,uint64:eD,int32:tD,uint32:tD,int16:oD,uint16:oD,int8:nD,uint8:nD},hX={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Zx(A,r){if(!A.isCContiguous||A.shape.length!==2)return null;let I=A.size;if(I<yX*Y.thresholdMultiplier)return null;let e=A.dtype,t=lX[e],o=hX[e];if(!t||!o)return null;let n=A.shape[0],g=A.shape[1],i=n+2*r,Q=g+2*r,a=i*Q,B=o.BYTES_PER_ELEMENT,s=I*B,C=a*B;J(s+C),U();let E=A.offset,u=A.data.subarray(E,E+I),f=q(u),m=_(C);t(f,m,n,g,r);let c=v(m,a,o);return d.fromData(c,[i,Q],e)}function iD(A,r,I){let e=r instanceof AA?r:QA(Array.isArray(r)?r:[r]);if(I===void 0){let t=yr(A),o=yr(e);return _I([t,o],0)}return _I([A,e],I)}function $Q(A,r,I){let e=Array.isArray(r)?r:[r],t=[...A.shape],o=A.storage;if(I===void 0){let m=yr(A),c=m.storage,D=[],y=new Set(e.map(l=>l<0?m.size+l:l));for(let l=0;l<m.size;l++)y.has(l)||D.push(c.iget(l));return QA(D,A.dtype)}let n=I<0?t.length+I:I,g=t[n],i=new Set(e.map(m=>m<0?g+m:m)),Q=g-i.size,a=[...t];a[n]=Q;let B=er(a,A.dtype),s=B.storage,C=[],E=1;for(let m=t.length-1;m>=0;m--)C.unshift(E),E*=t[m];let u=[];E=1;for(let m=a.length-1;m>=0;m--)u.unshift(E),E*=a[m];let f=t.reduce((m,c)=>m*c,1);for(let m=0;m<f;m++){let c=[],D=m;for(let b=0;b<t.length;b++)c.push(Math.floor(D/C[b])),D=D%C[b];if(i.has(c[n]))continue;let y=0;for(let b of i)b<c[n]&&y++;let l=[...c];l[n]-=y;let h=0;for(let b=0;b<a.length;b++)h+=l[b]*u[b];s.iset(h,o.iget(m))}return B}function gD(A,r,I,e){let t=Array.isArray(r)?r:[r],o=I instanceof AA?I:QA(Array.isArray(I)?I:[I]);if(e===void 0){let n=yr(A),g=yr(o),i=n.data,Q=g.data,a=Array.from(i);if(t.length===1){let B=t[0],s=B<0?n.size+B:B,C=Array.from(Q);a.splice(s,0,...C)}else{let B=t.map((s,C)=>({idx:s<0?n.size+s:s,valIdx:C})).sort((s,C)=>s.idx-C.idx);for(let s=0;s<B.length;s++){let{idx:C,valIdx:E}=B[s],u=Q[E%Q.length];a.splice(C+s,0,u)}}return QA(a,A.dtype)}throw new Error("insert along axis not fully implemented in standalone")}function QD(A,r,I="constant",e=0){let t=[...A.shape],o=t.length,n;typeof r=="number"?n=Array(o).fill([r,r]):Array.isArray(r)&&typeof r[0]=="number"?n=Array(o).fill(r):n=r;let g=t.map((u,f)=>u+n[f][0]+n[f][1]);if(I==="constant"&&e===0&&o===2&&typeof r=="number"){let u=Zx(A.storage,r);if(u)return new AA(u)}if(I!=="constant")throw new Error(`pad mode '${I}' not fully implemented in standalone`);let i=er(g,A.dtype),Q=i.storage;if(e!==0)for(let u=0;u<i.size;u++)Q.iset(u,e);let a=A.storage,B=[],s=1;for(let u=t.length-1;u>=0;u--)B.unshift(s),s*=t[u];let C=[];s=1;for(let u=g.length-1;u>=0;u--)C.unshift(s),s*=g[u];let E=t.reduce((u,f)=>u*f,1);for(let u=0;u<E;u++){let f=[],m=u;for(let D=0;D<t.length;D++)f.push(Math.floor(m/B[D])),m=m%B[D];let c=0;for(let D=0;D<g.length;D++)c+=(f[D]+n[D][0])*C[D];Q.iset(c,a.iget(u))}return i}var sD=["int8","int16","int32","int64"],CD=["uint8","uint16","uint32","uint64"],jx=[...sD,...CD],aD=["float32","float64"],BD=["complex64","complex128"],dX=[...jx,...aD,...BD],zx={bool:0,int8:1,uint8:2,int16:3,uint16:4,int32:5,uint32:6,int64:7,uint64:8,float32:9,float64:10,complex64:11,complex128:12};function hi(A,r,I="safe"){let e=A instanceof AA?A.dtype:A;if(I==="no"||I==="equiv")return e===r;if(I==="unsafe")return!0;let t=zx[e]??-1,o=zx[r]??-1;if(I==="safe"){if(pA(e)&&fA(r)){let n={int8:8,int16:16,int32:32,int64:64,uint8:8,uint16:16,uint32:32,uint64:64,bool:1,float32:0,float64:0,complex64:0,complex128:0},g={float32:24,float64:53,int8:0,int16:0,int32:0,int64:0,uint8:0,uint16:0,uint32:0,uint64:0,bool:0,complex64:24,complex128:53},i=n[e]??64,Q=g[r]??0;return i<=Q}return!!(pA(e)&&k(r)||fA(e)&&k(r)||t<=o)}return I==="same_kind"?!!(pA(e)&&pA(r)||fA(e)&&fA(r)||k(e)&&k(r)||e==="bool"&&pA(r)||e==="bool"&&r==="bool"||fA(e)&&k(r)):!1}function Aa(...A){if(A.length===0)return"float64";let r=!1,I=!1;for(let e of A){let t=e.dtype;k(t)?(r=!0,t==="complex128"&&(I=!0)):fA(t)?t==="float64"&&(I=!0):pA(t)&&(t==="int64"||t==="uint64"||t==="int32"||t==="uint32")&&(I=!0)}return r?I?"complex128":"complex64":I?"float64":"float32"}function ra(...A){if(A.length===0)return"float64";let r=A.map(o=>o instanceof AA?o.dtype:o),I=r.some(k),e=r.some(fA),t=r.some(pA);if(I){let o=r.some(i=>i==="float64"),n=r.some(i=>i==="complex128"),g=r.some(i=>i==="int64"||i==="uint64"||i==="int32"||i==="uint32");return n||o||g?"complex128":"complex64"}if(e){let o=r.some(n=>n==="float64");return t&&(r.some(g=>g==="int32"||g==="uint32"||g==="int64"||g==="uint64")||o)||o?"float64":"float32"}if(t){let o=r.some(Q=>sD.includes(Q)),n=r.some(Q=>CD.includes(Q)),g={bool:8,int8:8,uint8:8,int16:16,uint16:16,int32:32,uint32:32,int64:64,uint64:64,float32:0,float64:0,complex64:0,complex128:0},i=Math.max(...r.map(Q=>g[Q]??0));return o&&n?i>=32?"int64":i>=16?"int32":"int16":o?i>=64?"int64":i>=32?"int32":i>=16?"int16":"int8":i>=64?"uint64":i>=32?"uint32":i>=16?"uint16":"uint8"}return"bool"}function Ia(A){return typeof A=="boolean"?"bool":typeof A=="bigint"?A>=0n?A<=255n?"uint8":A<=65535n?"uint16":A<=4294967295n?"uint32":"uint64":A>=-128n&&A<=127n?"int8":A>=-32768n&&A<=32767n?"int16":A>=-2147483648n&&A<=2147483647n?"int32":"int64":Number.isInteger(A)?A>=0?A<=255?"uint8":A<=65535?"uint16":A<=4294967295?"uint32":"int64":A>=-128&&A<=127?"int8":A>=-32768&&A<=32767?"int16":A>=-2147483648&&A<=2147483647?"int32":"int64":"float64"}function ea(A,r){let I=A instanceof AA?A.dtype:A;if(typeof r=="string")switch(r){case"number":case"numeric":return dX.includes(I);case"integer":case"int":return jx.includes(I);case"signedinteger":return sD.includes(I);case"unsignedinteger":return CD.includes(I);case"floating":case"float":return aD.includes(I);case"complexfloating":case"complex":return BD.includes(I);case"inexact":return aD.includes(I)||BD.includes(I);default:return I===r}return I===r}function ta(A){return A}function oa(A,r="GDFgdf",I="d"){let e={b:"int8",B:"uint8",h:"int16",H:"uint16",i:"int32",I:"uint32",l:"int64",L:"uint64",f:"float32",d:"float64",F:"complex64",D:"complex128",g:"float64",G:"complex128"},t={b:0,B:1,h:2,H:3,i:4,I:5,l:6,L:7,f:8,g:9.1,d:9,F:10,G:11.1,D:11};if(A.length===0)return I;let o=[];for(let i of A){let Q=e[i];Q&&o.push(Q)}if(o.length===0)return I;let n=I,g=1/0;for(let i of r){let Q=e[i];if(!Q)continue;let a=t[i]??1/0,B=!0;for(let s of o)if(!hi(s,Q,"safe")){B=!1;break}B&&a<g&&(g=a,n=i)}return n}function Ir(A){return A instanceof AA?A:QA(A)}function ED(A){let r=Ir(A),I=r.data,e=r.size;if(e===0)return QA([1]);let t=[1];for(let o=0;o<e;o++){let n=I[o],g=new Array(t.length+1).fill(0);for(let i=0;i<t.length;i++)g[i]+=t[i],g[i+1]-=t[i]*n;t=g}return QA(t)}function uD(A,r){let I=Ir(A),e=Ir(r),t=I.data,o=e.data,n=Math.max(I.size,e.size),g=new Array(n).fill(0);for(let Q=0;Q<I.size;Q++)g[n-I.size+Q]+=t[Q];for(let Q=0;Q<e.size;Q++)g[n-e.size+Q]+=o[Q];let i=0;for(;i<g.length-1&&g[i]===0;)i++;return QA(g.slice(i))}function cD(A,r=1){let I=Ir(A);for(let e=0;e<r;e++){let t=I.data,o=I.size;if(o<=1)return QA([0]);let n=[];for(let g=0;g<o-1;g++){let i=o-1-g;n.push(t[g]*i)}I=QA(n)}return I}function DD(A,r){let I=[...Ir(A).data],e=[...Ir(r).data];if(e.length===0||e.length===1&&e[0]===0)throw new Error("Division by zero polynomial");for(;I.length>1&&I[0]===0;)I.shift();for(;e.length>1&&e[0]===0;)e.shift();if(I.length<e.length)return[QA([0]),QA(I)];let t=[],o=[...I];for(;o.length>=e.length;){let n=o[0]/e[0];t.push(n);for(let g=0;g<e.length;g++)o[g]-=n*e[g];o.shift()}for(;o.length>1&&Math.abs(o[0])<1e-15;)o.shift();return[QA(t.length>0?t:[0]),QA(o.length>0?o:[0])]}function fD(A,r,I){let e=A.data,t=r.data,o=A.size;if(I>=o)throw new Error("polyfit: degree must be less than number of points");let n=[];for(let s=0;s<o;s++){let C=[];for(let E=I;E>=0;E--)C.push(Math.pow(e[s],E));n.push(C)}let g=[],i=[];for(let s=0;s<=I;s++){g.push([]);for(let E=0;E<=I;E++){let u=0;for(let f=0;f<o;f++)u+=n[f][s]*n[f][E];g[s].push(u)}let C=0;for(let E=0;E<o;E++)C+=n[E][s]*t[E];i.push(C)}let Q=I+1,a=g.map((s,C)=>[...s,i[C]]);for(let s=0;s<Q;s++){let C=s;for(let E=s+1;E<Q;E++)Math.abs(a[E][s])>Math.abs(a[C][s])&&(C=E);[a[s],a[C]]=[a[C],a[s]];for(let E=s+1;E<Q;E++){let u=a[E][s]/a[s][s];for(let f=s;f<=Q;f++)a[E][f]-=u*a[s][f]}}let B=new Array(Q).fill(0);for(let s=Q-1;s>=0;s--){let C=a[s][Q];for(let E=s+1;E<Q;E++)C-=a[s][E]*B[E];B[s]=C/a[s][s]}return QA(B)}function mD(A,r=1,I=0){let e=Ir(A),t=Array.isArray(I)?I:[I];for(let o=0;o<r;o++){let n=e.data,g=e.size,i=[];for(let a=0;a<g;a++){let B=g-a;i.push(n[a]/B)}let Q=o<t.length?t[o]:0;i.push(Q),e=QA(i)}return e}function yD(A,r){let I=Ir(A),e=Ir(r),t=I.data,o=e.data,n=I.size+e.size-1,g=new Array(n).fill(0);for(let i=0;i<I.size;i++)for(let Q=0;Q<e.size;Q++)g[i+Q]+=t[i]*o[Q];return QA(g)}function lD(A,r){let I=Ir(A),e=Ir(r),t=I.data,o=e.data,n=Math.max(I.size,e.size),g=new Array(n).fill(0);for(let Q=0;Q<I.size;Q++)g[n-I.size+Q]+=t[Q];for(let Q=0;Q<e.size;Q++)g[n-e.size+Q]-=o[Q];let i=0;for(;i<g.length-1&&g[i]===0;)i++;return QA(g.slice(i))}function hD(A,r){let I=Ir(A),e=I.data;if(typeof r=="number"){let Q=e[0];for(let a=1;a<I.size;a++)Q=Q*r+e[a];return Q}let t=r instanceof AA?r:QA(r),o=t.data,n=t.size,g=I.size,i=new Float64Array(n);for(let Q=0;Q<n;Q++){let a=Number(o[Q]),B=Number(e[0]);for(let s=1;s<g;s++)B=B*a+Number(e[s]);i[Q]=B}return new AA(d.fromData(i,Array.from(t.shape),"float64"))}function dD(A){let I=[...Ir(A).data];for(;I.length>1&&I[0]===0;)I.shift();let e=0;for(;I.length>1&&I[I.length-1]===0;)I.pop(),e++;let t=I.length-1;if(t+e===0)return $x([],[]);let n=[],g=[];if(t===1)n.push(-I[1]/I[0]),g.push(0);else if(t===2){let B=I[0],s=I[1],C=I[2],E=s*s-4*B*C;if(E>=0){let u=Math.sqrt(E);n.push((-s+u)/(2*B),(-s-u)/(2*B)),g.push(0,0)}else{let u=Math.sqrt(-E);n.push(-s/(2*B),-s/(2*B)),g.push(u/(2*B),-u/(2*B))}}else if(t>=3){let B=bX(I,t);for(let s of B)n.push(s.re),g.push(s.im)}for(let B=0;B<e;B++)n.push(0),g.push(0);let i=n.map((B,s)=>s);i.sort((B,s)=>{let C=Math.sqrt(n[B]**2+g[B]**2),E=Math.sqrt(n[s]**2+g[s]**2);return Math.abs(C-E)>1e-10?E-C:Math.abs(n[B]-n[s])>1e-10?n[s]-n[B]:g[s]-g[B]});let Q=i.map(B=>n[B]),a=i.map(B=>g[B]);return $x(Q,a)}function $x(A,r){let I=A.length,e=new Float64Array(2*I);for(let o=0;o<I;o++)e[2*o]=A[o],e[2*o+1]=r[o];let t=d.fromData(e,[I],"complex128");return new AA(t)}function bX(A,r){let I=Array.from({length:r},()=>new Array(r).fill(0)),e=A[0];for(let t=0;t<r;t++)I[0][t]=-A[t+1]/e;for(let t=1;t<r;t++)I[t][t-1]=1;return pX(I,r)}function pX(A,r){let I=[],t=r,o=0,n=100*r,g=r,i=0;for(;t>0&&o<n;){if(o++,t===g?i++:(i=0,g=t),t===1){I.push({re:A[0][0],im:0}),t=0;break}if(t===2){I.push(...AJ(A[0][0],A[0][1],A[1][0],A[1][1])),t=0;break}let Q=t-1;for(;Q>0;){let E=Math.abs(A[Q-1][Q-1])+Math.abs(A[Q][Q]),u=222e-18*(E===0?1:E);if(Math.abs(A[Q][Q-1])<=u){A[Q][Q-1]=0;break}Q--}let a=t-Q;if(a===1){I.push({re:A[t-1][t-1],im:0}),t--;continue}if(a===2){I.push(...AJ(A[t-2][t-2],A[t-2][t-1],A[t-1][t-2],A[t-1][t-1])),t-=2;continue}let B;if(i>0&&i%10===0)B=Math.abs(A[t-1][t-2])+Math.abs(A[t-2][t-3]);else{let E=A[t-2][t-2],u=A[t-2][t-1],f=A[t-1][t-2],m=A[t-1][t-1],c=E+m,D=E*m-u*f,y=c*c-4*D;if(y>=0){let l=Math.sqrt(y),h=(c+l)/2,b=(c-l)/2;B=Math.abs(h-m)<Math.abs(b-m)?h:b}else B=m}for(let E=Q;E<t;E++)A[E][E]=A[E][E]-B;let s=[],C=[];for(let E=Q;E<t-1;E++){let u=Math.hypot(A[E][E],A[E+1][E]),f=u===0?1:A[E][E]/u,m=u===0?0:A[E+1][E]/u;s.push(f),C.push(m);for(let c=E;c<t;c++){let D=A[E][c],y=A[E+1][c];A[E][c]=f*D+m*y,A[E+1][c]=-m*D+f*y}}for(let E=0;E<s.length;E++){let u=Q+E,f=s[E],m=C[E],c=Math.min(u+2,t-1);for(let D=Q;D<=c;D++){let y=A[D][u],l=A[D][u+1];A[D][u]=f*y+m*l,A[D][u+1]=-m*y+f*l}}for(let E=Q;E<t;E++)A[E][E]=A[E][E]+B}if(t>0)for(let Q=0;Q<t;Q++)I.push({re:A[Q][Q],im:0});return I}function AJ(A,r,I,e){let t=A+e,o=A*e-r*I,n=t*t-4*o;if(n>=0){let g=Math.sqrt(n);return[{re:(t+g)/2,im:0},{re:(t-g)/2,im:0}]}else{let g=Math.sqrt(-n);return[{re:t/2,im:g/2},{re:t/2,im:-g/2}]}}var di=new Uint8Array([147,78,85,77,80,89]),bD=["float64","float32","complex128","complex64","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"];function pD(){let A=new ArrayBuffer(2);return new DataView(A).setInt16(0,256,!0),new Int16Array(A)[0]===256}var wX={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"},na={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"},rJ={S:"byte strings",U:"Unicode strings",O:"Python objects",V:"structured arrays (void)",M:"datetime64",m:"timedelta64"};function IJ(A){if(A.startsWith("[")||A.startsWith("("))throw new Ur(`Structured/compound dtypes are not supported: ${A}`);let r="",I=A;(A[0]==="<"||A[0]===">"||A[0]==="="||A[0]==="|")&&(r=A[0],I=A.slice(1));let e=I[0];if(e&&e in rJ)throw new Ur(`Unsupported dtype: ${rJ[e]} (${A}). Use the 'force' parameter to skip arrays with unsupported dtypes.`);let t=wX[I];if(!t)throw new Ur(`Unknown or unsupported dtype descriptor: ${A}. Supported types: ${bD.join(", ")}. Use the 'force' parameter to skip arrays with unsupported dtypes.`);let o=pD(),n=r==="<"||r==="|"||r==="="&&o,g=r===">"||r==="="&&!o,i=parseInt(I.slice(1),10),Q=i>1&&(g&&o||n&&!o);return{dtype:t,needsByteSwap:Q,itemsize:i}}var Ur=class extends Error{constructor(r){super(r),this.name="UnsupportedDTypeError"}},jA=class extends Error{constructor(r){super(r),this.name="InvalidNpyError"}};function ia(A){let r=A instanceof ArrayBuffer?new Uint8Array(A):A,I=wD(r);return ND(r,I)}function wD(A){if(A.length<10)throw new jA("File too small to be a valid NPY file");for(let Q=0;Q<di.length;Q++)if(A[Q]!==di[Q])throw new jA("Invalid NPY magic number");let r=A[6],I=A[7];if(r!==1&&r!==2&&r!==3)throw new jA(`Unsupported NPY version: ${r}.${I}`);let e,t;r===1?(e=A[8]|A[9]<<8,t=10):(e=A[8]|A[9]<<8|A[10]<<16|A[11]<<24,t=12);let o=t+e;if(A.length<o)throw new jA("File truncated: header extends beyond file");let n=A.slice(t,o),g=new TextDecoder("utf-8").decode(n).trim(),i=NX(g);return{version:{major:r,minor:I},header:i,dataOffset:o}}function ND(A,r){let{header:I,dataOffset:e}=r,{dtype:t,needsByteSwap:o,itemsize:n}=IJ(I.descr),g=I.shape.reduce((u,f)=>u*f,1),i=g*n,Q=A.length-e;if(Q<i)throw new jA(`File truncated: expected ${i} bytes of data, got ${Q}`);let a=new ArrayBuffer(i);new Uint8Array(a).set(A.subarray(e,e+i));let s=FX(a,t,g,o,n),C=I.shape,E;if(I.fortran_order&&C.length>1){let u=[...C].reverse(),f=d.fromData(s,u,t);E=GX(f,u),C=I.shape}else E=d.fromData(s,[...C],t);return new AA(E)}function NX(A){let r=A.match(/'descr'\s*:\s*'([^']+)'/),I=A.match(/'fortran_order'\s*:\s*(True|False)/),e=A.match(/'shape'\s*:\s*\(([^)]*)\)/);if(!r||!I||!e)throw new jA(`Failed to parse NPY header: ${A}`);let t=r[1],o=I[1]==="True",n=e[1].trim(),g;return n===""?g=[]:g=n.split(",").map(i=>i.trim()).filter(i=>i!=="").map(i=>{let Q=parseInt(i,10);if(isNaN(Q))throw new jA(`Invalid shape value: ${i}`);return Q}),{descr:t,fortran_order:o,shape:g}}function FX(A,r,I,e,t){let o=nA(r);if(!o)throw new jA(`Cannot create array for dtype: ${r}`);let n=k(r),g=n?I*2:I;if(!e)return new o(A,0,g);let i=new Uint8Array(A),Q=new Uint8Array(A.byteLength);if(n){let a=t/2;for(let B=0;B<I*2;B++){let s=B*a;for(let C=0;C<a;C++)Q[s+C]=i[s+a-1-C]}}else for(let a=0;a<I;a++){let B=a*t;for(let s=0;s<t;s++)Q[B+s]=i[B+t-1-s]}return new o(Q.buffer,0,g)}function GX(A,r){let I=r.length,e=A.size,t=A.dtype,o=nA(t);if(!o)throw new jA(`Cannot create array for dtype: ${t}`);let n=new o(e),g=[...r].reverse(),i=eJ(r),Q=eJ(g),a=new Array(I).fill(0);for(let B=0;B<e;B++){let s=B;for(let E=0;E<I;E++){let u=i[E];a[E]=Math.floor(s/u),s=s%u}let C=0;for(let E=0;E<I;E++)C+=a[I-1-E]*Q[E];L(t),n[C]=A.iget(B)}return d.fromData(n,g,t)}function eJ(A){let r=new Array(A.length),I=1;for(let e=A.length-1;e>=0;e--)r[e]=I,I*=A[e];return r}function bi(A){let r=A.shape,I=A.dtype,e=na[I],t=r.length===0?"()":r.length===1?`(${r[0]},)`:`(${r.join(", ")})`,o=`{'descr': '${e}', 'fortran_order': False, 'shape': ${t}, }`,n=12,i=(64-(n+o.length+1)%64)%64;o=o+" ".repeat(i)+`
|
|
6
|
+
`;let Q=new TextEncoder().encode(o),a=Q.length,B=A.size,s=Hr(I),C=B*s,E=n+a+C,u=new Uint8Array(E);u.set(di,0),u[6]=3,u[7]=0,u[8]=a&255,u[9]=a>>8&255,u[10]=a>>16&255,u[11]=a>>24&255,u.set(Q,n);let f=n+a;return SX(A,u.subarray(f),s),u}function SX(A,r,I){let e=A.dtype,t=A.size,o=pD(),n=L(e),g=k(e),i=A.storage;if(i.isCContiguous&&i.offset===0&&o){let a=i.data,B=new Uint8Array(a.buffer,a.byteOffset,t*I);r.set(B)}else{let a=new DataView(r.buffer,r.byteOffset,r.byteLength);for(let B=0;B<t;B++){let s=i.iget(B),C=B*I;n?RX(a,C,s,e==="uint64"):g?kX(a,C,s,e):qX(a,C,s,e)}}}function RX(A,r,I,e){e?A.setBigUint64(r,I,!0):A.setBigInt64(r,I,!0)}function kX(A,r,I,e){e==="complex128"?(A.setFloat64(r,I.re,!0),A.setFloat64(r+8,I.im,!0)):(A.setFloat32(r,I.re,!0),A.setFloat32(r+4,I.im,!0))}function qX(A,r,I,e){switch(e){case"float64":A.setFloat64(r,I,!0);break;case"float32":A.setFloat32(r,I,!0);break;case"int32":A.setInt32(r,I,!0);break;case"int16":A.setInt16(r,I,!0);break;case"int8":A.setInt8(r,I);break;case"uint32":A.setUint32(r,I,!0);break;case"uint16":A.setUint16(r,I,!0);break;case"uint8":case"bool":A.setUint8(r,I);break;default:throw new Error(`Unsupported dtype for serialization: ${e}`)}}var oI=(()=>{let A=[],r=new Uint32Array(256);for(let I=0;I<256;I++){let e=I;for(let t=0;t<8;t++)e=e&1?3988292384^e>>>1:e>>>1;r[I]=e}A.push(r);for(let I=1;I<8;I++){let e=new Uint32Array(256);for(let t=0;t<256;t++)e[t]=A[I-1][t]>>>8^r[A[I-1][t]&255];A.push(e)}return A})();function FD(A){let r=oI[0],I=oI[1],e=oI[2],t=oI[3],o=oI[4],n=oI[5],g=oI[6],i=oI[7],Q=A.length,a=4294967295,B=0,s=Q-7;for(;B<s;){let C=(a^(A[B]|A[B+1]<<8|A[B+2]<<16|A[B+3]<<24))>>>0,E=A[B+4]|A[B+5]<<8|A[B+6]<<16|A[B+7]<<24;a=i[C&255]^g[C>>>8&255]^n[C>>>16&255]^o[C>>>24&255]^t[E&255]^e[E>>>8&255]^I[E>>>16&255]^r[E>>>24&255],B+=8}for(;B<Q;)a=r[(a^A[B])&255]^a>>>8,B++;return(a^4294967295)>>>0}async function nJ(A){let r=gJ(A),I=new Map;for(let e of r){let t=await MX(e);I.set(e.name,t)}return I}function iJ(A){let r=gJ(A),I=new Map;for(let e of r){if(e.compressionMethod!==0)throw new Error(`Cannot read compressed entry synchronously: ${e.name}. Use readZip() (async) for DEFLATE-compressed files.`);I.set(e.name,e.compressedData)}return I}function gJ(A){let r=A instanceof ArrayBuffer?new Uint8Array(A):A,I=new DataView(r.buffer,r.byteOffset,r.byteLength),e=[],t=-1;for(let Q=r.length-22;Q>=0;Q--)if(I.getUint32(Q,!0)===101010256){t=Q;break}if(t===-1)throw new Error("Invalid ZIP file: end of central directory not found");let o=I.getUint32(t+16,!0),n=I.getUint16(t+10,!0),g=[],i=o;for(let Q=0;Q<n&&I.getUint32(i,!0)===33639248;Q++){let B=I.getUint16(i+10,!0),s=I.getUint32(i+16,!0),C=I.getUint32(i+20,!0),E=I.getUint32(i+24,!0),u=I.getUint16(i+28,!0),f=I.getUint16(i+30,!0),m=I.getUint16(i+32,!0),c=I.getUint32(i+42,!0),D=r.slice(i+46,i+46+u),y=new TextDecoder("utf-8").decode(D);g.push({name:y,compressionMethod:B,crc32:s,compressedSize:C,uncompressedSize:E,localHeaderOffset:c}),i=i+46+u+f+m}for(let Q of g){let a=Q.localHeaderOffset;if(I.getUint32(a,!0)!==67324752)throw new Error(`Invalid local file header at offset ${a}`);let s=I.getUint16(a+26,!0),C=I.getUint16(a+28,!0),E=a+30+s+C,u=r.slice(E,E+Q.compressedSize);e.push({name:Q.name,compressedData:u,compressionMethod:Q.compressionMethod,crc32:Q.crc32,compressedSize:Q.compressedSize,uncompressedSize:Q.uncompressedSize})}return e}async function MX(A){if(A.compressionMethod===0)return A.compressedData;if(A.compressionMethod===8)return await xX(A.compressedData);throw new Error(`Unsupported compression method: ${A.compressionMethod}`)}async function xX(A){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 r=new DecompressionStream("deflate-raw"),I=new Uint8Array(A.length);I.set(A);let e=r.writable.getWriter();e.write(I),e.close();let t=r.readable.getReader(),o=[];for(;;){let{done:Q,value:a}=await t.read();if(Q)break;o.push(a)}let n=o.reduce((Q,a)=>Q+a.length,0),g=new Uint8Array(n),i=0;for(let Q of o)g.set(Q,i),i+=Q.length;return g}async function GD(A,r={}){let I=r.force??!1,e=await nJ(A);return QJ(e,I)}function SD(A,r={}){let I=r.force??!1,e=iJ(A);return QJ(e,I)}function QJ(A,r){let I=new Map,e=[],t=new Map;for(let[o,n]of A){if(!o.endsWith(".npy"))continue;let g=o.slice(0,-4);try{let i=ia(n);I.set(g,i)}catch(i){if(i instanceof Ur&&r)e.push(g),t.set(g,i.message);else throw i}}return{arrays:I,skipped:e,errors:t}}async function aJ(A,r={}){let I=await GD(A,r);return Object.fromEntries(I.arrays)}function BJ(A,r={}){let I=SD(A,r);return Object.fromEntries(I.arrays)}async function sJ(A,r={}){let I=r.compress??!1,e=[],t=new TextEncoder;for(let[E,u]of A){let f=FD(u),m,c;I?(m=await UX(u),m.length<u.length?c=8:(m=u,c=0)):(m=u,c=0),e.push({name:E,data:u,compressedData:m,crc:f,compressionMethod:c,offset:0})}let o=new Map;for(let E of e)o.set(E.name,t.encode(E.name));let n=0;for(let E of e)n+=30+o.get(E.name).length+E.compressedData.length;let g=0;for(let E of e)g+=46+o.get(E.name).length;let Q=n+g+22,a=new Uint8Array(Q),B=new DataView(a.buffer),s=0;for(let E of e)E.offset=s,s=EJ(a,B,s,E,o.get(E.name));let C=s;for(let E of e)s=uJ(a,B,s,E,o.get(E.name));return cJ(B,s,e.length,g,C),a}function CJ(A){let r=[],I=new TextEncoder;for(let[s,C]of A){let E=FD(C);r.push({name:s,data:C,compressedData:C,crc:E,compressionMethod:0,offset:0})}let e=new Map;for(let s of r)e.set(s.name,I.encode(s.name));let t=0;for(let s of r)t+=30+e.get(s.name).length+s.compressedData.length;let o=0;for(let s of r)o+=46+e.get(s.name).length;let g=t+o+22,i=new Uint8Array(g),Q=new DataView(i.buffer),a=0;for(let s of r)s.offset=a,a=EJ(i,Q,a,s,e.get(s.name));let B=a;for(let s of r)a=uJ(i,Q,a,s,e.get(s.name));return cJ(Q,a,r.length,o,B),i}function EJ(A,r,I,e,t){return r.setUint32(I,67324752,!0),I+=4,r.setUint16(I,e.compressionMethod===8?20:10,!0),I+=2,r.setUint16(I,0,!0),I+=2,r.setUint16(I,e.compressionMethod,!0),I+=2,r.setUint16(I,0,!0),I+=2,r.setUint16(I,33,!0),I+=2,r.setUint32(I,e.crc,!0),I+=4,r.setUint32(I,e.compressedData.length,!0),I+=4,r.setUint32(I,e.data.length,!0),I+=4,r.setUint16(I,t.length,!0),I+=2,r.setUint16(I,0,!0),I+=2,A.set(t,I),I+=t.length,A.set(e.compressedData,I),I+=e.compressedData.length,I}function uJ(A,r,I,e,t){return r.setUint32(I,33639248,!0),I+=4,r.setUint16(I,20,!0),I+=2,r.setUint16(I,e.compressionMethod===8?20:10,!0),I+=2,r.setUint16(I,0,!0),I+=2,r.setUint16(I,e.compressionMethod,!0),I+=2,r.setUint16(I,0,!0),I+=2,r.setUint16(I,33,!0),I+=2,r.setUint32(I,e.crc,!0),I+=4,r.setUint32(I,e.compressedData.length,!0),I+=4,r.setUint32(I,e.data.length,!0),I+=4,r.setUint16(I,t.length,!0),I+=2,r.setUint16(I,0,!0),I+=2,r.setUint16(I,0,!0),I+=2,r.setUint16(I,0,!0),I+=2,r.setUint16(I,0,!0),I+=2,r.setUint32(I,0,!0),I+=4,r.setUint32(I,e.offset,!0),I+=4,A.set(t,I),I+=t.length,I}function cJ(A,r,I,e,t){A.setUint32(r,101010256,!0),r+=4,A.setUint16(r,0,!0),r+=2,A.setUint16(r,0,!0),r+=2,A.setUint16(r,I,!0),r+=2,A.setUint16(r,I,!0),r+=2,A.setUint32(r,e,!0),r+=4,A.setUint32(r,t,!0),r+=4,A.setUint16(r,0,!0)}async function UX(A){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 r=new CompressionStream("deflate-raw"),I=new Uint8Array(A.length);I.set(A);let e=r.writable.getWriter();e.write(I),e.close();let t=r.readable.getReader(),o=[];for(;;){let{done:Q,value:a}=await t.read();if(Q)break;o.push(a)}let n=o.reduce((Q,a)=>Q+a.length,0),g=new Uint8Array(n),i=0;for(let Q of o)g.set(Q,i),i+=Q.length;return g}async function DJ(A,r={}){let I=mJ(A);return sJ(I,{compress:r.compress??!1})}function fJ(A){let r=mJ(A);return CJ(r)}function mJ(A){let r=new Map;if(Array.isArray(A)){for(let e=0;e<A.length;e++){let t=A[e],o=bi(t);r.set(`arr_${e}.npy`,o)}return r}let I=A instanceof Map?A.entries():Object.entries(A);for(let[e,t]of I){if(typeof e!="string"||e.length===0)throw new Error("Array names must be non-empty strings");let o=bi(t),n=e.endsWith(".npy")?e:`${e}.npy`;r.set(n,o)}return r}function RD(A,r={}){let{delimiter:I,comments:e="#",skiprows:t=0,usecols:o,max_rows:n,dtype:g="float64",missing_values:i,filling_values:Q}=r,a=A.split(/\r?\n/);if(t>0&&(a=a.slice(t)),a=a.filter(u=>{let f=u.trim();return!(f===""||e&&f.startsWith(e))}),n!==void 0&&n>0&&(a=a.slice(0,n)),a.length===0)return QA([],g);let B=[],s=new Set(i?Array.isArray(i)?i:[i]:[]),C=Q!==void 0?Q:g.includes("int")||g==="bool"?0:NaN;for(let u of a){let f;I===void 0?f=u.trim().split(/\s+/):f=u.split(I),o!==void 0&&(f=(Array.isArray(o)?o:[o]).map(D=>(D<0&&(D=f.length+D),f[D]??"")));let m=f.map(c=>{let D=c.trim();if(s.has(D)||D==="")return C;let y=parseFloat(D);return isNaN(y)?C:y});B.push(m)}let E=B[0]?.length??0;for(let u=1;u<B.length;u++)if(B[u].length!==E)throw new Error(`Inconsistent number of columns: row 0 has ${E} columns, row ${u} has ${B[u].length} columns`);return E===1?QA(B.map(u=>u[0]),g):QA(B,g)}function yJ(A,r={}){let I={...r,missing_values:r.missing_values??["","nan","NaN","NA","N/A","-"],filling_values:r.filling_values??NaN};return RD(A,I)}function lJ(A,r,I="float64"){let e=typeof r=="string"?new RegExp(r,"gm"):new RegExp(r.source,"gm"),t=[],o;for(;(o=e.exec(A))!==null;)if(o.length>1){let n=o.slice(1).map(g=>{let i=parseFloat(g);return isNaN(i)?0:i});t.push(n)}return t.length===0?QA([],I):t[0].length===1?QA(t.map(n=>n[0]),I):QA(t,I)}function hJ(A,r){let I=typeof A=="bigint"?Number(A):A,e=r.match(/^%([+-]?)(\d*)(?:\.(\d+))?([dfeEgGs])$/);if(!e)return String(I);let[,t,o,n,g]=e,i=n!==void 0?parseInt(n,10):void 0,Q;switch(g){case"d":Q=Math.round(I).toString();break;case"f":Q=I.toFixed(i??6);break;case"e":Q=I.toExponential(i??6).replace(/e([+-])(\d)$/,"e$10$2");break;case"E":Q=I.toExponential(i??6).toUpperCase().replace(/E([+-])(\d)$/,"E$10$2");break;case"g":case"G":{let a=i??6,B=Math.floor(Math.log10(Math.abs(I)));B>=-4&&B<a?(Q=I.toPrecision(a),Q.includes(".")&&(Q=Q.replace(/\.?0+$/,""))):Q=I.toExponential(a-1),g==="G"&&(Q=Q.toUpperCase());break}case"s":Q=String(I);break;default:Q=String(I)}if(o){let a=parseInt(o,10);if(Q.length<a){let B=" ".repeat(a-Q.length);t==="-"?Q=Q+B:Q=B+Q}}return t==="+"&&I>=0&&!Q.startsWith("-")&&(Q="+"+Q),Q}function dJ(A,r={}){let{fmt:I="%.18e",delimiter:e=" ",newline:t=`
|
|
7
|
+
`,header:o,footer:n,comments:g="# "}=r;if(A.ndim>2)throw new Error("savetxt: array must be 1D or 2D");let i=[];if(o!==void 0){let a=o.split(/\r?\n/);for(let B of a)B.startsWith(g.trimEnd())?i.push(B):i.push(g+B)}let Q=A.toArray();if(A.ndim===1)for(let a of Q)i.push(hJ(a,I));else for(let a of Q){let B=a.map(s=>hJ(s,I));i.push(B.join(e))}if(n!==void 0){let a=n.split(/\r?\n/);for(let B of a)B.startsWith(g.trimEnd())?i.push(B):i.push(g+B)}return i.join(t)+t}var j=A=>{if(A instanceof sA)return A;let r=A.base?j(A.base):void 0;return sA.fromStorage(A.storage,r)},sA=class A extends AA{constructor(r,I){super(r,I),this._base=I}static fromStorage(r,I){return new A(r,I)}get base(){return this._base??null}get T(){return this.transpose()}get itemsize(){return Hr(this._storage.dtype)}get nbytes(){return this.size*this.itemsize}fill(r){let I=this._storage.dtype,e=this.size;if(L(I)){let t=typeof r=="bigint"?r:BigInt(Math.round(Number(r)));for(let o=0;o<e;o++)this._storage.iset(o,t)}else if(I==="bool"){let t=r?1:0;for(let o=0;o<e;o++)this._storage.iset(o,t)}else{let t=Number(r);for(let o=0;o<e;o++)this._storage.iset(o,t)}}*[Symbol.iterator](){if(this.ndim===0)yield this._storage.iget(0);else if(this.ndim===1)for(let r=0;r<this.shape[0];r++)yield this._storage.iget(r);else for(let r=0;r<this.shape[0];r++)yield this.slice(String(r))}get(r){if(r.length!==this.ndim)throw new Error(`Index has ${r.length} dimensions, but array has ${this.ndim} dimensions`);let I=r.map((e,t)=>{let o=e;if(o<0&&(o=this.shape[t]+o),o<0||o>=this.shape[t])throw new Error(`Index ${e} is out of bounds for axis ${t} with size ${this.shape[t]}`);return o});return this._storage.get(...I)}set(r,I){if(r.length!==this.ndim)throw new Error(`Index has ${r.length} dimensions, but array has ${this.ndim} dimensions`);let e=r.map((o,n)=>{let g=o;if(g<0&&(g=this.shape[n]+g),g<0||g>=this.shape[n])throw new Error(`Index ${o} is out of bounds for axis ${n} with size ${this.shape[n]}`);return g}),t=this.dtype;if(k(t))this._storage.set(e,I);else if(L(t)){let o=I instanceof T?I.re:Number(I),n=typeof I=="bigint"?I:BigInt(Math.round(o));this._storage.set(e,n)}else if(t==="bool"){let n=(I instanceof T?I.re:Number(I))?1:0;this._storage.set(e,n)}else{let o=I instanceof T?I.re:Number(I);this._storage.set(e,o)}}copy(){return new A(this._storage.copy())}astype(r,I=!0){let e=super.astype(r,I);return e instanceof A?e:new A(e._storage)}row(r){if(this.ndim<2)throw new Error("row() requires at least 2 dimensions");return this.slice(String(r),":")}col(r){if(this.ndim<2)throw new Error("col() requires at least 2 dimensions");return this.slice(":",String(r))}rows(r,I){if(this.ndim<2)throw new Error("rows() requires at least 2 dimensions");return this.slice(`${r}:${I}`,":")}cols(r,I){if(this.ndim<2)throw new Error("cols() requires at least 2 dimensions");return this.slice(":",`${r}:${I}`)}reshape(...r){let I=r.length===1&&Array.isArray(r[0])?r[0]:r,e=zt(this,I).storage,o=e.data===this.data?this._base??this:void 0;return A.fromStorage(e,o)}ravel(){let r=jt(this).storage,e=r.data===this.data?this._base??this:void 0;return A.fromStorage(r,e)}put(r,I){let e=I instanceof A?I._storage:I;Ie(this,r,e)}compress(r,I){let e=r instanceof A?r:A.fromStorage(d.fromData(new Uint8Array(r.map(t=>t?1:0)),[r.length],"bool"));return j(uI(e,this,I))}choose(r){return j(mi(this,r))}clip(r,I){return j(Bt(this,r,I))}iindex(r,I=0){let e;if(r instanceof A){e=[];for(let t=0;t<r.size;t++){let o=r.storage.iget(t),n=typeof o=="bigint"?Number(o):o instanceof T?o.re:o;e.push(n)}}else Array.isArray(r)&&r.length>0&&Array.isArray(r[0])?e=r.flat():e=r;return this.take(e,I)}bindex(r,I){return j(uI(r,this,I))}toString(){return ee(this)}toArray(){if(this.ndim===0)return this._storage.iget(0);let r=this.shape,I=r.length,e=(t,o)=>{if(o===I)return this._storage.get(...t);let n=[];for(let g=0;g<r[o];g++)t[o]=g,n.push(e(t,o+1));return n};return e(new Array(I),0)}tolist(){return this.toArray()}tobytes(){if(this._storage.isCContiguous){let e=this._storage.data,t=e.BYTES_PER_ELEMENT,o=this._storage.offset*t,n=this.size*t;return e.buffer.slice(o,o+n)}let I=this.copy()._storage.data;return I.buffer.slice(0,this.size*I.BYTES_PER_ELEMENT)}item(...r){if(r.length===0){if(this.size!==1)throw new Error("can only convert an array of size 1 to a Python scalar");return this._storage.iget(0)}if(r.length===1){let I=r[0];if(I<0||I>=this.size)throw new Error(`index ${I} is out of bounds for size ${this.size}`);return this._storage.iget(I)}return this.get(r)}byteswap(r=!1){let I=r?this:this.copy(),e=I._storage.data,t=e.BYTES_PER_ELEMENT;if(t===1)return I;let o=e.buffer,n=new DataView(o);for(let g=0;g<e.length;g++){let i=g*t;if(t===2){let Q=n.getUint8(i),a=n.getUint8(i+1);n.setUint8(i,a),n.setUint8(i+1,Q)}else if(t===4){let Q=n.getUint8(i),a=n.getUint8(i+1),B=n.getUint8(i+2),s=n.getUint8(i+3);n.setUint8(i,s),n.setUint8(i+1,B),n.setUint8(i+2,a),n.setUint8(i+3,Q)}else if(t===8){let Q=n.getUint8(i),a=n.getUint8(i+1),B=n.getUint8(i+2),s=n.getUint8(i+3),C=n.getUint8(i+4),E=n.getUint8(i+5),u=n.getUint8(i+6),f=n.getUint8(i+7);n.setUint8(i,f),n.setUint8(i+1,u),n.setUint8(i+2,E),n.setUint8(i+3,C),n.setUint8(i+4,s),n.setUint8(i+5,B),n.setUint8(i+6,a),n.setUint8(i+7,Q)}}return I}view(r){if(!r||r===this.dtype)return A.fromStorage(this._storage,this._base??this);let I=Hr(this.dtype),e=Hr(r);if(I!==e)throw new Error("When changing to a larger dtype, its size must be a divisor of the total size in bytes of the last axis of the array.");let t=nA(r);if(!t)throw new Error(`Unsupported dtype: ${r}`);let o=this._storage.data,n=o.byteOffset+this._storage.offset*I,g=new t(o.buffer,n,this.size),i=d.fromData(g,[...this.shape],r,[...this._storage.strides],0);return A.fromStorage(i,this._base??this)}tofile(r,I="",e=""){throw new Error('tofile() requires file system access. Use the node module: import { save } from "numpy-ts/node"')}round(r=0){return this.around(r)}conjugate(){return this.conj()}around(r=0){return j(Ae(this,r))}allclose(r,I=1e-5,e=1e-8){return ZI(this,r,I,e)}isclose(r,I=1e-5,e=1e-8){return j(Gn(this,r,I,e))}average(r,I){let e=Ho(this,I,r);return e instanceof AA?j(e):e}dot(r){let I=qI(this,r);return I instanceof AA?j(I):I}trace(){let r=MI(this);return r instanceof AA?j(r):r}inner(r){let I=UI(this,r);return I instanceof AA?j(I):I}tensordot(r,I=2){let e=HI(this,r,I);return e instanceof AA?j(e):e}divmod(r){let I=it(this,r);return[j(I[0]),j(I[1])]}searchsorted(r,I="left"){return j(jI(this,r,I))}sqrt(){return j(Ye(this))}exp(){return j(Xe(this))}exp2(){return j(Te(this))}expm1(){return j(Pe(this))}log(){return j(Ke(this))}log2(){return j(Ve(this))}log10(){return j(We(this))}log1p(){return j(Oe(this))}absolute(){return j(je(this))}negative(){return j($e(this))}sign(){return j(At(this))}positive(){return j(et(this))}reciprocal(){return j(tt(this))}ceil(){return j(oi(this))}fix(){return j(ni(this))}floor(){return j(ii(this))}rint(){return j(gi(this))}trunc(){return j(Qi(this))}sin(){return j(lt(this))}cos(){return j(ht(this))}tan(){return j(dt(this))}arcsin(){return j(bt(this))}arccos(){return j(pt(this))}arctan(){return j(wt(this))}degrees(){return j(Gt(this))}radians(){return j(St(this))}sinh(){return j(Rt(this))}cosh(){return j(kt(this))}tanh(){return j(qt(this))}arcsinh(){return j(Mt(this))}arccosh(){return j(xt(this))}arctanh(){return j(Jt(this))}bitwise_not(){return j(ri(this))}invert(){return j(Ii(this))}logical_not(){return j(Cn(this))}isfinite(){return j(un(this))}isinf(){return j(cn(this))}isnan(){return j(Dn(this))}isnat(){return j(fn(this))}signbit(){return j(yn(this))}spacing(){return j(hn(this))}cbrt(){return j(ot(this))}fabs(){return j(nt(this))}square(){return j(gt(this))}conj(){return j(ci(this))}flatten(){return j(yr(this))}argwhere(){return j(Xn(this))}add(r){return j(Le(this,r))}subtract(r){return j(He(this,r))}multiply(r){return j(_e(this,r))}divide(r){return j(SI(this,r))}mod(r){return j(rt(this,r))}floor_divide(r){return j(It(this,r))}power(r){return j(ve(this,r))}logaddexp(r){return j(Ze(this,r))}logaddexp2(r){return j(ze(this,r))}arctan2(r){return j(Nt(this,r))}hypot(r){return j(Ft(this,r))}greater(r){return j(dn(this,r))}greater_equal(r){return j(bn(this,r))}less(r){return j(pn(this,r))}less_equal(r){return j(wn(this,r))}equal(r){return j(Nn(this,r))}not_equal(r){return j(Fn(this,r))}bitwise_and(r){return j(jn(this,r))}bitwise_or(r){return j($n(this,r))}bitwise_xor(r){return j(Ai(this,r))}left_shift(r){return j(ei(this,r))}right_shift(r){return j(ti(this,r))}logical_and(r){return j(Bn(this,r))}logical_or(r){return j(sn(this,r))}logical_xor(r){return j(En(this,r))}copysign(r){return j(mn(this,r))}nextafter(r){return j(ln(this,r))}remainder(r){return j(Qt(this,r))}heaviside(r){return j(at(this,r))}matmul(r){return j(Zt(this,r))}outer(r){return j(LI(this,r))}sum(r,I=!1){let e=po(this,r,I);return e instanceof AA?j(e):e}mean(r,I=!1){let e=wo(this,r,I);return e instanceof AA?j(e):e}prod(r,I=!1){let e=No(this,r,I);return e instanceof AA?j(e):e}max(r,I=!1){let e=Fo(this,r,I);return e instanceof AA?j(e):e}min(r,I=!1){let e=So(this,r,I);return e instanceof AA?j(e):e}ptp(r,I=!1){let e=ko(this,r,I);return e instanceof AA?j(e):e}nansum(r,I=!1){let e=To(this,r,I);return e instanceof AA?j(e):e}nanprod(r,I=!1){let e=Po(this,r,I);return e instanceof AA?j(e):e}nanmean(r,I=!1){let e=Ko(this,r,I);return e instanceof AA?j(e):e}nanmin(r,I=!1){let e=Oo(this,r,I);return e instanceof AA?j(e):e}nanmax(r,I=!1){let e=Zo(this,r,I);return e instanceof AA?j(e):e}argmin(r){let I=qo(this,r);return I instanceof AA?j(I):I}argmax(r){let I=Mo(this,r);return I instanceof AA?j(I):I}nanargmin(r){let I=zo(this,r);return I instanceof AA?j(I):I}nanargmax(r){let I=jo(this,r);return I instanceof AA?j(I):I}var(r,I=0,e=!1){let t=sI(this,r,I,e);return t instanceof AA?j(t):t}std(r,I=0,e=!1){let t=xo(this,r,I,e);return t instanceof AA?j(t):t}nanvar(r,I=0,e=!1){let t=Vo(this,r,I,e);return t instanceof AA?j(t):t}nanstd(r,I=0,e=!1){let t=Wo(this,r,I,e);return t instanceof AA?j(t):t}all(r,I=!1){let e=_o(this,r,I);return e instanceof AA?j(e):e}any(r,I=!1){let e=Yo(this,r,I);return e instanceof AA?j(e):e}median(r,I=!1){let e=Jo(this,r,I);return e instanceof AA?j(e):e}nanmedian(r,I=!1){let e=rn(this,r,I);return e instanceof AA?j(e):e}percentile(r,I,e=!1){let t=Uo(this,r,I,e);return t instanceof AA?j(t):t}quantile(r,I,e=!1){let t=Lo(this,r,I,e);return t instanceof AA?j(t):t}nanquantile(r,I,e=!1){let t=In(this,r,I,e);return t instanceof AA?j(t):t}nanpercentile(r,I,e=!1){let t=en(this,r,I,e);return t instanceof AA?j(t):t}cumsum(r){return j(vo(this,r))}cumprod(r){return j(Xo(this,r))}nancumsum(r){return j($o(this,r))}nancumprod(r){return j(An(this,r))}sort(r=-1){return j(Ln(this,r))}argsort(r=-1){return j(Hn(this,r))}partition(r,I=-1){return j(_n(this,r,I))}argpartition(r,I=-1){return j(Yn(this,r,I))}diagonal(r=0,I=0,e=1){return j(xI(this,r,I,e))}resize(r){return j(oo(this,r))}diff(r=1,I=-1){return j(ui(this,r,I))}take(r,I){return j(re(this,r,I))}repeat(r,I){return j(eo(this,r,I))}transpose(r){return j(JI(this,r))}squeeze(r){return j($t(this,r))}expand_dims(r){return j(Ao(this,r))}swapaxes(r,I){return j(ro(this,r,I))}moveaxis(r,I){return j(Io(this,r,I))}nonzero(){return vn(this).map(j)}};function kD(...A){let r=[],I="xy";for(let g of A)g instanceof sA?r.push(g):typeof g=="object"&&"indexing"in g&&(I=g.indexing||"xy");if(r.length===0)return[];if(r.length===1)return[r[0].copy()];let e=r.map(g=>g.size);I==="xy"&&r.length>=2&&(r=[r[1],r[0],...r.slice(2)],[e[0],e[1]]=[e[1],e[0]]);let t=e,o=t.length,n=[];for(let g=0;g<r.length;g++){let i=r[g],Q=i.size,a=new Array(o).fill(1);a[g]=Q;let B=i.reshape(...a),s=fi(B,t),C=sA.fromStorage(s.storage.copy());n.push(C)}return I==="xy"&&n.length>=2&&([n[0],n[1]]=[n[1],n[0]]),n}var M=A=>{if(A instanceof sA)return A;let r=A.base?M(A.base):void 0;return sA.fromStorage(A.storage,r)};function bJ(A,r){return M(fi(A,r))}function pJ(A,r,I){return M(re(A,r,I))}function wJ(A,r,I){return M(Yc(A,r,I))}function NJ(A,r){return M(mi(A,r))}function FJ(A,r,I){return M(uI(A,r,I))}function GJ(A,r,I=0){return M(vc(A,r,I))}function SJ(A,r,I){return M(Xc(A,r,I))}function RJ(A,r,I=0){return M(Tc(A,r,I))}function kJ(A,r="int32"){return M(Pc(A,r))}function qJ(A,r,I="raise"){return M(Kc(A,r,I))}function MJ(A,r){return Vc(A,r).map(M)}function xJ(A,r=2){return Wc(A,r).map(M)}function JJ(A){return Oc(A).map(M)}function UJ(A,r=0,I){return Zc(A,r,I).map(M)}function LJ(A,r=0){return zc(A,r).map(M)}function HJ(A,r=0,I){return jc(A,r,I).map(M)}function _J(A,r=0){return $c(A,r).map(M)}function YJ(A,r,I=0){return AD(A,r,I).map(M)}function vJ(A,r,I){return M(rD(t=>A(M(t)),r,I))}function XJ(A,r,I){return M(ID((t,o)=>A(M(t),o),r,I))}function TJ(A,r){return M(Le(A,r))}function PJ(A,r){return M(He(A,r))}function KJ(A,r){return M(_e(A,r))}function VJ(A){return M(Ye(A))}function qD(A,r){return M(ve(A,r))}function WJ(A){return M(Xe(A))}function OJ(A){return M(Te(A))}function ZJ(A){return M(Pe(A))}function zJ(A){return M(Ke(A))}function jJ(A){return M(Ve(A))}function $J(A){return M(We(A))}function AU(A){return M(Oe(A))}function rU(A,r){return M(Ze(A,r))}function IU(A,r){return M(ze(A,r))}function MD(A){return M(je(A))}function eU(A){return M($e(A))}function tU(A){return M(At(A))}function oU(A,r){return M(rt(A,r))}function nU(A,r){return M(SI(A,r))}function iU(A,r){return M(It(A,r))}function gU(A){return M(et(A))}function QU(A){return M(tt(A))}function aU(A){return M(ot(A))}function BU(A){return M(nt(A))}function sU(A,r){let I=it(A,r);return[M(I[0]),M(I[1])]}function CU(A){return M(gt(A))}function EU(A,r){return M(Qt(A,r))}function uU(A,r){return M(at(A,r))}function cU(A,r){return M(ys(A,r))}function DU(A,r){return M(ls(A,r))}function fU(A){let r=hs(A);return[M(r[0]),M(r[1])]}function mU(A,r){return M(ds(A,r))}function yU(A,r){return M(bs(A,r))}function lU(A,r){return M(ps(A,r))}function hU(A){let r=ws(A);return[M(r[0]),M(r[1])]}function dU(A,r,I){return M(Bt(A,r,I))}function bU(A,r){return M(Ns(A,r))}function pU(A,r){return M(Fs(A,r))}function wU(A,r){return M(Gs(A,r))}function NU(A,r){return M(Ss(A,r))}function FU(A,r=0,I,e){return M(Rs(A,r,I,e))}function GU(A,r,I,e,t){return M(ks(A,r,I,e,t))}function SU(A,r=Math.PI,I=-1,e=2*Math.PI){return M(qs(A,r,I,e))}function RU(A){return M(Ms(A))}function kU(A){return M(xs(A))}function qU(A,r){return M(jn(A,r))}function MU(A,r){return M($n(A,r))}function xU(A,r){return M(Ai(A,r))}function xD(A){return M(ri(A))}function JU(A){return M(Ii(A))}function JD(A,r){return M(ei(A,r))}function UD(A,r){return M(ti(A,r))}function UU(A,r,I){return M(Ac(A,r,I))}function LU(A,r,I,e){return M(rc(A,r,I,e))}function HU(A){return M(Ic(A))}function _U(A){return M(kc(A))}function YU(A){return M(qc(A))}function LD(A){return M(ci(A))}function vU(A,r){return M(Mc(A,r))}function XU(A,r=BA){return M(er(A,r))}function TU(A,r=BA){return M(Xi(A,r))}function PU(A,r=BA){return M(Ti(A,r))}function KU(A,r,I){return M(Pi(A,r,I))}function VU(A,r){return M(QA(A,r))}function WU(A,r,I=1,e=BA){return M(Ka(A,r,I,e))}function OU(A,r,I=50,e=BA){return M(Va(A,r,I,e))}function ZU(A,r,I=50,e=10,t=BA){return M(Wa(A,r,I,e,t))}function zU(A,r,I=50,e=BA){return M(Oa(A,r,I,e))}function jU(A,r,I=0,e=BA){return M(Ki(A,r,I,e))}function $U(A,r=BA){return M(Za(A,r))}function A2(A,r){return M(QI(A,r))}function r2(A,r){return M(za(A,r))}function I2(A,r){return M(ja(A,r))}function e2(A,r){return M($a(A,r))}function t2(A,r,I){return M(AB(A,r,I))}function o2(A){return M(rB(A))}function n2(A,r){return M(IB(A,r))}function i2(A,r){return M(eB(A,r))}function g2(A,r){return M(tB(A,r))}function Q2(A,r){return M(oB(A,r))}function a2(A,r,I){return M(nB(A,r,I))}function B2(A,r=0){return M(Vi(A,r))}function s2(A,r=0){return M(iB(A,r))}function C2(A,r,I=0,e=BA){return M(gB(A,r,I,e))}function E2(A,r=0){return M(QB(A,r))}function u2(A,r=0){return M(aB(A,r))}function c2(A,r,I=!1){return M(BB(A,r,I))}function D2(A,r=BA,I=-1,e=0){return M(sB(A,r,I,e))}function f2(A,r,I=BA){return M(CB(A,r,I))}function m2(A,r=BA,I=-1){return M(EB(A,r,I))}function y2(A,r=BA,I=-1,e){return M(uB(A,r,I,e))}function l2(A,r=BA,I=-1,e=""){return M(cB(A,r,I,e))}function h2(A,r,I){return M(ui(A,r,I))}function d2(A,r,I){return M(Rc(A,r,I))}function b2(A,r){let I=qI(A,r);return I instanceof AA?M(I):I}function p2(A,r=0,I=0,e=1){let t=MI(A,r,I,e);return t instanceof AA?M(t):t}function w2(A,r=0,I=0,e=1){return M(xI(A,r,I,e))}function N2(A,r){return M(ZC(A,r))}function F2(A,r){return M(JI(A,r))}function G2(A,r){let I=UI(A,r);return I instanceof AA?M(I):I}function S2(A,r){return M(LI(A,r))}function R2(A,r,I=2){let e=HI(A,r,I);return e instanceof AA?M(e):e}function k2(A,r,I=-1){let e=yg(A,r,I);return e instanceof AA?M(e):e}function q2(A){return M(lg(A))}function M2(A,r){return M(hg(A,r))}function x2(A,r){return M(zC(A,r))}function J2(A,r){return M(jC(A,r))}function U2(A,r,I=-1,e=-1,t=-1,o){let n=dg(A,r,I,e,t,o),g=IA(A.dtype,r.dtype);if(n instanceof T){let Q=nA(g==="complex64"?"float32":"float64"),a=new Q(2);return a[0]=n.re,a[1]=n.im,sA.fromStorage(d.fromData(a,[],g))}if(typeof n=="number"||typeof n=="bigint"){if(k(g)){let B=nA(g==="complex64"?"float32":"float64"),s=new B(2);return s[0]=Number(n),s[1]=0,sA.fromStorage(d.fromData(s,[],g))}let i=nA(g),Q=new i(1);return Q[0]=n,sA.fromStorage(d.fromData(Q,[],g))}return M(n)}function L2(A,r){return M(Zt(A,r))}function H2(A,r){return M(Bn(A,r))}function _2(A,r){return M(sn(A,r))}function Y2(A){return M(Cn(A))}function v2(A,r){return M(En(A,r))}function X2(A){return M(un(A))}function T2(A){return M(cn(A))}function P2(A){return M(Dn(A))}function K2(A){return M(fn(A))}function V2(A){return M(gu(A))}function W2(A){return M(Qu(A))}function O2(A){return M(au(A))}function Z2(A){return M(Bu(A))}function z2(A,r){return M(su(A,r))}function j2(A,r){return M(mn(A,r))}function $2(A){return M(yn(A))}function AL(A,r){return M(ln(A,r))}function rL(A){return M(hn(A))}function IL(A,r){return M(dn(A,r))}function eL(A,r){return M(bn(A,r))}function tL(A,r){return M(pn(A,r))}function oL(A,r){return M(wn(A,r))}function nL(A,r){return M(Nn(A,r))}function iL(A,r){return M(Fn(A,r))}function gL(A,r,I=1e-5,e=1e-8){return M(Gn(A,r,I,e))}function QL(A){return M(ED(A))}function aL(A,r){return M(uD(A,r))}function BL(A,r=1){return M(cD(A,r))}function sL(A,r){let I=DD(A,r);return[M(I[0]),M(I[1])]}function CL(A,r,I){return M(fD(A,r,I))}function EL(A,r=1,I=0){return M(mD(A,r,I))}function uL(A,r){return M(yD(A,r))}function cL(A,r){return M(lD(A,r))}function DL(A,r){let I=hD(A,r);return I instanceof AA?M(I):I}function fL(A){return M(dD(A))}function mL(A,r,I){let e=po(A,r,I);return e instanceof AA?M(e):e}function yL(A,r,I){let e=wo(A,r,I);return e instanceof AA?M(e):e}function lL(A,r,I){let e=No(A,r,I);return e instanceof AA?M(e):e}function hL(A,r,I){let e=ko(A,r,I);return e instanceof AA?M(e):e}function dL(A,r){let I=qo(A,r);return I instanceof AA?M(I):I}function bL(A,r){let I=Mo(A,r);return I instanceof AA?M(I):I}function pL(A,r,I,e){let t=sI(A,r,I,e);return t instanceof AA?M(t):t}function wL(A,r,I,e){let t=xo(A,r,I,e);return t instanceof AA?M(t):t}function NL(A,r,I){let e=Jo(A,r,I);return e instanceof AA?M(e):e}function FL(A,r,I,e){let t=Uo(A,r,I,e);return t instanceof AA?M(t):t}function GL(A,r,I,e){let t=Lo(A,r,I,e);return t instanceof AA?M(t):t}function SL(A,r,I,e){let t=Ho(A,r,I,e);return t instanceof AA?M(t):t}function RL(A,r,I){let e=_o(A,r,I);return e instanceof AA?M(e):e}function kL(A,r,I){let e=Yo(A,r,I);return e instanceof AA?M(e):e}function HD(A,r){return M(vo(A,r))}function _D(A,r){return M(Xo(A,r))}function qL(A,r,I){let e=To(A,r,I);return e instanceof AA?M(e):e}function ML(A,r,I){let e=Po(A,r,I);return e instanceof AA?M(e):e}function xL(A,r,I){let e=Ko(A,r,I);return e instanceof AA?M(e):e}function JL(A,r,I,e){let t=Vo(A,r,I,e);return t instanceof AA?M(t):t}function UL(A,r,I,e){let t=Wo(A,r,I,e);return t instanceof AA?M(t):t}function LL(A,r,I){let e=Oo(A,r,I);return e instanceof AA?M(e):e}function HL(A,r,I){let e=Zo(A,r,I);return e instanceof AA?M(e):e}function _L(A,r){let I=zo(A,r);return I instanceof AA?M(I):I}function YL(A,r){let I=jo(A,r);return I instanceof AA?M(I):I}function vL(A,r){return M($o(A,r))}function XL(A,r){return M(An(A,r))}function TL(A,r,I){let e=rn(A,r,I);return e instanceof AA?M(e):e}function PL(A,r,I,e){let t=In(A,r,I,e);return t instanceof AA?M(t):t}function KL(A,r,I,e){let t=en(A,r,I,e);return t instanceof AA?M(t):t}function YD(A,r=0){return M(Ae(A,r))}function VL(A){return M(oi(A))}function WL(A){return M(ni(A))}function OL(A){return M(ii(A))}function ZL(A){return M(gi(A))}function zL(A){return M(Qi(A))}function jL(A,r){return M(oc(A,r))}function $L(A,r){return M(nc(A,r))}function AH(A,r){return M(ic(A,r))}function rH(A,r){return M(gc(A,r))}function IH(A,r){return M(Qc(A,r))}function eH(A,r){return M(ac(A,r))}function tH(A,r){return M(Bc(A,r))}function oH(A){return M(sc(A))}function nH(A,r,I){return M(iD(A,r,I))}function vD(A,r,I){return M($Q(A,r,I))}function iH(A,r,I,e){return M(gD(A,r,I,e))}function gH(A,r,I="constant",e=0){return M(QD(A,r,I,e))}function QH(A,r){return M(zt(A,r))}function aH(A){return M(yr(A))}function BH(A){return M(jt(A))}function sH(A,r){return M($t(A,r))}function CH(A,r){return M(Ao(A,r))}function EH(A,r,I){return M(ro(A,r,I))}function uH(A,r,I){return M(Io(A,r,I))}function cH(A,r,I=0){return M($C(A,r,I))}function XD(A,r=0){return M(_I(A,r))}function DH(A,r=0){return M(AE(A,r))}function fH(A){return M(pg(A))}function mH(A){return M(rE(A))}function yH(A){return M(IE(A))}function lH(A){return M(eE(A))}function hH(A){return M(tE(A))}function dH(A,r=0){return oE(A,r).map(M)}function bH(A,r){return M(nE(A,r))}function pH(A,r,I){return M(eo(A,r,I))}function wH(A,r){return M(to(A,r))}function NH(A){return M(iE(A))}function FH(A){return M(gE(A))}function GH(A,r=1,I=[0,1]){return M(QE(A,r,I))}function SH(A,r,I){return M(aE(A,r,I))}function RH(A,r){return M(oo(A,r))}function kH(A,r=-1){return M(Ln(A,r))}function qH(A,r=-1){return M(Hn(A,r))}function MH(A){return M(bu(A))}function xH(A,r,I=-1){return M(_n(A,r,I))}function JH(A,r,I=-1){return M(Yn(A,r,I))}function UH(A){return M(pu(A))}function LH(A){return vn(A).map(M)}function HH(A){return M(Xn(A))}function _H(A){return M(wu(A))}function YH(A,r){return M(Nu(A,r))}function vH(A,r,I){return M(cc(A,r,I))}function XH(A,r,I){return M(Dc(A,r,I))}function TH(A,r,I){return M(fc(A,r,I))}function PH(A,r,I){return M(mc(A,r,I))}function KH(A,r,I,e,t){return M(yc(A,r,I,e,t))}function VH(A,r,I){return M(lc(A,r,I))}function WH(A,r,I,e){let t=hc(A,r,I,e);return t instanceof AA?M(t):t}function OH(A){return M(lt(A))}function ZH(A){return M(ht(A))}function zH(A){return M(dt(A))}function TD(A){return M(bt(A))}function PD(A){return M(pt(A))}function KD(A){return M(wt(A))}function VD(A,r){return M(Nt(A,r))}function jH(A,r){return M(Ft(A,r))}function $H(A){return M(Gt(A))}function A9(A){return M(St(A))}function r9(A){return M(AC(A))}function I9(A){return M(rC(A))}function e9(A){return M(Rt(A))}function t9(A){return M(kt(A))}function o9(A){return M(qt(A))}function WD(A){return M(Mt(A))}function OD(A){return M(xt(A))}function ZD(A){return M(Jt(A))}var lr=624,Qa=397,IT=2567483615,zD=2147483648,jD=2147483647,cr={mt:new Uint32Array(lr),mti:lr+1};function i9(A){let r=cr.mt;r[0]=A>>>0;for(let I=1;I<lr;I++){let e=r[I-1]^r[I-1]>>>30;r[I]=Math.imul(1812433253,e)+I>>>0}cr.mti=lr}function rf(){let A=cr.mt,r,I=[0,IT];if(cr.mti>=lr){let e;for(cr.mti===lr+1&&i9(5489),e=0;e<lr-Qa;e++)r=A[e]&zD|A[e+1]&jD,A[e]=A[e+Qa]^r>>>1^I[r&1];for(;e<lr-1;e++)r=A[e]&zD|A[e+1]&jD,A[e]=A[e+(Qa-lr)]^r>>>1^I[r&1];r=A[lr-1]&zD|A[0]&jD,A[lr-1]=A[Qa-1]^r>>>1^I[r&1],cr.mti=0}return r=A[cr.mti++],r^=r>>>11,r^=r<<7&2636928640,r^=r<<15&4022730752,r^=r>>>18,r>>>0}function tA(){let A=rf()>>>5,r=rf()>>>6;return(A*67108864+r)/9007199254740992}var eT=2468251765,tT=1492356589,oT=1135663077,nT=2337405405,iT=3389127133,gT=1232336661,tf=16,aa=4;function KA(A){return A>>>0}function $D(A,r){return A=KA(KA(A)^r.val),r.val=KA(Math.imul(r.val,eT)),A=KA(Math.imul(A,r.val)),A=KA(A^A>>>tf),A}function QT(A,r){let I=KA(KA(Math.imul(iT,KA(A)))-KA(Math.imul(gT,KA(r))));return I=KA(I^I>>>tf),I}function aT(A){let r=[0,0,0,0],I=[A>>>0],e={val:oT};for(let t=0;t<aa;t++)t<I.length?r[t]=$D(I[t],e):r[t]=$D(0,e);for(let t=0;t<aa;t++)for(let o=0;o<aa;o++)if(t!==o){let n=$D(r[t],e);r[o]=QT(r[o],n)}return r}function BT(A,r){let I=[],e=nT;for(let t=0;t<r;t++){let o=A[t%aa],n=KA(o^e);e=KA(Math.imul(e,tT)),n=KA(Math.imul(n,e)),n=KA(n^n>>>tf),I.push(n)}return I}var sT=BigInt("4865540595714422341"),CT=BigInt("2549297995355413924"),ET=CT<<BigInt(64)|sT,Af=BigInt("0xffffffffffffffff"),If=(BigInt(1)<<BigInt(128))-BigInt(1);function uT(A){let r=A>>BigInt(64),I=A&Af,e=(r^I)&Af,t=Number(A>>BigInt(122));return(e>>BigInt(t)|e<<BigInt(64-t))&Af}function ef(A,r){return A*ET+r&If}function n9(A){let r=aT(A),I=BT(r,8),e=BigInt(I[0])|BigInt(I[1])<<BigInt(32),t=BigInt(I[2])|BigInt(I[3])<<BigInt(32),o=BigInt(I[4])|BigInt(I[5])<<BigInt(32),n=BigInt(I[6])|BigInt(I[7])<<BigInt(32),g=e<<BigInt(64)|t,i=(o<<BigInt(64)|n)<<BigInt(1);i=(i|BigInt(1))&If;let Q=BigInt(0);return Q=ef(Q,i),Q=Q+g&If,Q=ef(Q,i),{state:Q,inc:i}}function cT(A){return A.state=ef(A.state,A.inc),uT(A.state)}function DT(A){let I=cT(A)>>BigInt(11);return Number(I)/9007199254740992}var wi=class{constructor(r){if(r!==void 0)this._pcgState=n9(r);else{let I=Math.floor(Math.random()*4294967296);this._pcgState=n9(I)}}_randomFloat(){return DT(this._pcgState)}random(r){if(r===void 0)return this._randomFloat();let I=Array.isArray(r)?r:[r],e=I.reduce((n,g)=>n*g,1),t=d.zeros(I,"float64"),o=t.data;for(let n=0;n<e;n++)o[n]=this._randomFloat();return t}integers(r,I,e){if(I===void 0&&(I=r,r=0),e===void 0)return Math.floor(this._randomFloat()*(I-r))+r;let t=Array.isArray(e)?e:[e],o=t.reduce((Q,a)=>Q*a,1),n=d.zeros(t,"int64"),g=n.data,i=I-r;for(let Q=0;Q<o;Q++)g[Q]=BigInt(Math.floor(this._randomFloat()*i)+r);return n}standard_normal(r){if(r===void 0)return Dr(this._randomFloat.bind(this));let I=Array.isArray(r)?r:[r],e=I.reduce((n,g)=>n*g,1),t=d.zeros(I,"float64"),o=t.data;for(let n=0;n<e;n+=2){let[g,i]=Ni(this._randomFloat.bind(this));o[n]=g,n+1<e&&(o[n+1]=i)}return t}normal(r=0,I=1,e){if(e===void 0)return Dr(this._randomFloat.bind(this))*I+r;let t=Array.isArray(e)?e:[e],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"float64"),g=n.data;for(let i=0;i<o;i+=2){let[Q,a]=Ni(this._randomFloat.bind(this));g[i]=Q*I+r,i+1<o&&(g[i+1]=a*I+r)}return n}uniform(r=0,I=1,e){if(e===void 0)return this._randomFloat()*(I-r)+r;let t=Array.isArray(e)?e:[e],o=t.reduce((Q,a)=>Q*a,1),n=d.zeros(t,"float64"),g=n.data,i=I-r;for(let Q=0;Q<o;Q++)g[Q]=this._randomFloat()*i+r;return n}choice(r,I,e=!0,t){return m9(r,I,e,t,this._randomFloat.bind(this))}permutation(r){return l9(r,this._randomFloat.bind(this))}shuffle(r){d9(r,this._randomFloat.bind(this))}exponential(r=1,I){if(I===void 0)return-Math.log(1-this._randomFloat())*r;let e=Array.isArray(I)?I:[I],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"float64"),n=o.data;for(let g=0;g<t;g++)n[g]=-Math.log(1-this._randomFloat())*r;return o}poisson(r=1,I){if(I===void 0)return cI(r,this._randomFloat.bind(this));let e=Array.isArray(I)?I:[I],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"int64"),n=o.data;for(let g=0;g<t;g++)n[g]=BigInt(cI(r,this._randomFloat.bind(this)));return o}binomial(r,I,e){if(e===void 0)return Fi(r,I,this._randomFloat.bind(this));let t=Array.isArray(e)?e:[e],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"int64"),g=n.data;for(let i=0;i<o;i++)g[i]=BigInt(Fi(r,I,this._randomFloat.bind(this)));return n}};function g9(A){return new wi(A)}function Q9(A){A==null&&(A=Math.floor(Date.now()^Math.random()*4294967296)),i9(A>>>0)}function a9(){return{mt:Array.from(cr.mt),mti:cr.mti}}function B9(A){cr.mt=new Uint32Array(A.mt),cr.mti=A.mti}function Dr(A){let r,I;do r=A(),I=A();while(r===0);return Math.sqrt(-2*Math.log(r))*Math.cos(2*Math.PI*I)}function Ni(A){let r,I;do r=A(),I=A();while(r===0);let e=Math.sqrt(-2*Math.log(r)),t=2*Math.PI*I;return[e*Math.cos(t),e*Math.sin(t)]}function cI(A,r){if(A<30){let I=Math.exp(-A),e=0,t=1;do e++,t*=r();while(t>I);return e-1}else{let I=Dr(r);return Math.max(0,Math.round(A+Math.sqrt(A)*I))}}function Fi(A,r,I){if(A*r<10&&A*(1-r)<10){let e=0;for(let t=0;t<A;t++)I()<r&&e++;return e}else{let e=A*r,t=Math.sqrt(A*r*(1-r)),o=Dr(I);return Math.max(0,Math.min(A,Math.round(e+t*o)))}}function Gi(A){if(A===void 0)return tA();let r=Array.isArray(A)?A:[A],I=r.reduce((o,n)=>o*n,1),e=d.zeros(r,"float64"),t=e.data;for(let o=0;o<I;o++)t[o]=tA();return e}function s9(...A){if(A.length===0)return tA();let r=A.reduce((t,o)=>t*o,1),I=d.zeros(A,"float64"),e=I.data;for(let t=0;t<r;t++)e[t]=tA();return I}function C9(...A){if(A.length===0)return Dr(tA);let r=A.reduce((t,o)=>t*o,1),I=d.zeros(A,"float64"),e=I.data;for(let t=0;t<r;t+=2){let[o,n]=Ni(tA);e[t]=o,t+1<r&&(e[t+1]=n)}return I}function of(A,r,I,e="int64"){r==null&&(r=A,A=0);let t=r-A;if(I===void 0)return Math.floor(tA()*t)+A;let o=Array.isArray(I)?I:[I],n=o.reduce((Q,a)=>Q*a,1),g=d.zeros(o,e),i=g.data;if(L(e)){let Q=i;for(let a=0;a<n;a++)Q[a]=BigInt(Math.floor(tA()*t)+A)}else{let Q=i;for(let a=0;a<n;a++)Q[a]=Math.floor(tA()*t)+A}return g}function E9(A=0,r=1,I){if(I===void 0)return tA()*(r-A)+A;let e=Array.isArray(I)?I:[I],t=e.reduce((i,Q)=>i*Q,1),o=d.zeros(e,"float64"),n=o.data,g=r-A;for(let i=0;i<t;i++)n[i]=tA()*g+A;return o}function u9(A=0,r=1,I){if(I===void 0)return Dr(tA)*r+A;let e=Array.isArray(I)?I:[I],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"float64"),n=o.data;for(let g=0;g<t;g+=2){let[i,Q]=Ni(tA);n[g]=i*r+A,g+1<t&&(n[g+1]=Q*r+A)}return o}function c9(A){if(A===void 0)return Dr(tA);let r=Array.isArray(A)?A:[A],I=r.reduce((o,n)=>o*n,1),e=d.zeros(r,"float64"),t=e.data;for(let o=0;o<I;o+=2){let[n,g]=Ni(tA);t[o]=n,o+1<I&&(t[o+1]=g)}return e}function nf(A=1,r){if(r===void 0)return-Math.log(1-tA())*A;let I=Array.isArray(r)?r:[r],e=I.reduce((n,g)=>n*g,1),t=d.zeros(I,"float64"),o=t.data;for(let n=0;n<e;n++)o[n]=-Math.log(1-tA())*A;return t}function D9(A=1,r){if(r===void 0)return cI(A,tA);let I=Array.isArray(r)?r:[r],e=I.reduce((n,g)=>n*g,1),t=d.zeros(I,"int64"),o=t.data;for(let n=0;n<e;n++)o[n]=BigInt(cI(A,tA));return t}function f9(A,r,I){if(I===void 0)return Fi(A,r,tA);let e=Array.isArray(I)?I:[I],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"int64"),n=o.data;for(let g=0;g<t;g++)n[g]=BigInt(Fi(A,r,tA));return o}function m9(A,r,I=!0,e,t=tA){let o;if(typeof A=="number")o=Array.from({length:A},(s,C)=>C);else{let s=A.size;o=[];for(let C=0;C<s;C++)o.push(Number(A.iget(C)))}let n=o.length;if(n===0)throw new Error("cannot take a sample from an empty sequence");let g;if(e!==void 0){if(Array.isArray(e))g=e;else{let C=e.size;g=[];for(let E=0;E<C;E++)g.push(Number(e.iget(E)))}if(g.length!==n)throw new Error("p and a must have the same size");let s=g.reduce((C,E)=>C+E,0);Math.abs(s-1)>1e-10&&(g=g.map(C=>C/s))}if(r===void 0){if(g){let s=t(),C=0;for(let E=0;E<n;E++)if(C+=g[E],s<C)return o[E];return o[n-1]}return o[Math.floor(t()*n)]}let i=Array.isArray(r)?r:[r],Q=i.reduce((s,C)=>s*C,1);if(!I&&Q>n)throw new Error("cannot take a larger sample than population when replace=false");let a=d.zeros(i,"float64"),B=a.data;if(I)if(g){let s=new Array(n);s[0]=g[0];for(let C=1;C<n;C++)s[C]=s[C-1]+g[C];for(let C=0;C<Q;C++){let E=t(),u=0;for(;u<n-1&&E>=s[u];)u++;B[C]=o[u]}}else for(let s=0;s<Q;s++)B[s]=o[Math.floor(t()*n)];else{let s=[...o],C=g?[...g]:void 0;for(let E=0;E<Q;E++){let u;if(C){let f=C.reduce((D,y)=>D+y,0),m=t()*f,c=0;u=0;for(let D=0;D<s.length;D++)if(c+=C[D],m<c){u=D;break}u===0&&m>=c&&(u=s.length-1)}else u=Math.floor(t()*s.length);B[E]=s[u],s.splice(u,1),C&&C.splice(u,1)}}return a}function y9(A,r,I=!0,e){return m9(A,r,I,e,tA)}function l9(A,r=tA){let I;if(typeof A=="number"){let t=new Float64Array(A);for(let o=0;o<A;o++)t[o]=o;I=d.fromData(t,[A],"float64")}else I=A.copy();let e=I.size;for(let t=e-1;t>0;t--){let o=Math.floor(r()*(t+1)),n=I.iget(t);I.iset(t,I.iget(o)),I.iset(o,n)}return I}function h9(A){return l9(A,tA)}function d9(A,r=tA){let I=A.size;for(let e=I-1;e>0;e--){let t=Math.floor(r()*(e+1)),o=A.iget(e);A.iset(e,A.iget(t)),A.iset(t,o)}}function b9(A){d9(A,tA)}function p9(A){return Gi(A)}function w9(A){return Gi(A)}function N9(A){return Gi(A)}function F9(A,r,I){return r===void 0&&(r=A,A=1),of(A,r+1,I)}function G9(A){let r=new Uint8Array(A);for(let I=0;I<A;I++)r[I]=rf()&255;return r}var S9={name:"MT19937",state:cr};function R9(){return S9}function k9(A){S9=A}function q9(A){return nf(1,A)}function M9(A,r){if(A<=0)throw new Error("shape must be positive");return Ba(A,1,r)}function x9(A){if(A===void 0)return Math.tan(Math.PI*(tA()-.5));let r=Array.isArray(A)?A:[A],I=r.reduce((o,n)=>o*n,1),e=d.zeros(r,"float64"),t=e.data;for(let o=0;o<I;o++)t[o]=Math.tan(Math.PI*(tA()-.5));return e}function J9(A,r){if(A<=0)throw new Error("df must be positive");let I=g=>{let i=Dr(g),Q=VA(A/2,2,g);return i/Math.sqrt(Q/A)};if(r===void 0)return I(tA);let e=Array.isArray(r)?r:[r],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"float64"),n=o.data;for(let g=0;g<t;g++)n[g]=I(tA);return o}function VA(A,r,I){if(A<1){let o=I();return VA(1+A,r,I)*Math.pow(o,1/A)}let e=A-1/3,t=1/Math.sqrt(9*e);for(;;){let o,n;do o=Dr(I),n=1+t*o;while(n<=0);n=n*n*n;let g=I(),i=o*o;if(g<1-.0331*i*i||Math.log(g)<.5*i+e*(1-n+Math.log(n)))return e*n*r}}function Ba(A,r=1,I){if(A<=0)throw new Error("shape must be positive");if(r<=0)throw new Error("scale must be positive");if(I===void 0)return VA(A,r,tA);let e=Array.isArray(I)?I:[I],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"float64"),n=o.data;for(let g=0;g<t;g++)n[g]=VA(A,r,tA);return o}function U9(A,r,I){if(A<=0||r<=0)throw new Error("a and b must be positive");let e=i=>{let Q=VA(A,1,i),a=VA(r,1,i);return Q/(Q+a)};if(I===void 0)return e(tA);let t=Array.isArray(I)?I:[I],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"float64"),g=n.data;for(let i=0;i<o;i++)g[i]=e(tA);return n}function L9(A=0,r=1,I){if(r<=0)throw new Error("scale must be positive");let e=i=>{let Q=i()-.5;return A-r*Math.sign(Q)*Math.log(1-2*Math.abs(Q))};if(I===void 0)return e(tA);let t=Array.isArray(I)?I:[I],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"float64"),g=n.data;for(let i=0;i<o;i++)g[i]=e(tA);return n}function H9(A=0,r=1,I){if(r<=0)throw new Error("scale must be positive");let e=i=>{let Q=i();return A+r*Math.log(Q/(1-Q))};if(I===void 0)return e(tA);let t=Array.isArray(I)?I:[I],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"float64"),g=n.data;for(let i=0;i<o;i++)g[i]=e(tA);return n}function _9(A=0,r=1,I){if(r<=0)throw new Error("sigma must be positive");let e=i=>Math.exp(A+r*Dr(i));if(I===void 0)return e(tA);let t=Array.isArray(I)?I:[I],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"float64"),g=n.data;for(let i=0;i<o;i++)g[i]=e(tA);return n}function Y9(A=0,r=1,I){if(r<=0)throw new Error("scale must be positive");let e=i=>{let Q=i();return A-r*Math.log(-Math.log(Q))};if(I===void 0)return e(tA);let t=Array.isArray(I)?I:[I],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"float64"),g=n.data;for(let i=0;i<o;i++)g[i]=e(tA);return n}function v9(A,r){if(A<=0)throw new Error("a must be positive");let I=g=>{let i=g();return Math.pow(1-i,-1/A)-1};if(r===void 0)return I(tA);let e=Array.isArray(r)?r:[r],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"float64"),n=o.data;for(let g=0;g<t;g++)n[g]=I(tA);return o}function X9(A,r){if(A<=0)throw new Error("a must be positive");let I=g=>{let i=g();return Math.pow(i,1/A)};if(r===void 0)return I(tA);let e=Array.isArray(r)?r:[r],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"float64"),n=o.data;for(let g=0;g<t;g++)n[g]=I(tA);return o}function T9(A=1,r){if(A<=0)throw new Error("scale must be positive");let I=g=>{let i=g();return A*Math.sqrt(-2*Math.log(i))};if(r===void 0)return I(tA);let e=Array.isArray(r)?r:[r],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"float64"),n=o.data;for(let g=0;g<t;g++)n[g]=I(tA);return o}function P9(A,r,I,e){if(A>r||r>I||A===I)throw new Error("must have left <= mode <= right and left < right");let t=Q=>{let a=Q(),B=(r-A)/(I-A);return a<B?A+Math.sqrt(a*(I-A)*(r-A)):I-Math.sqrt((1-a)*(I-A)*(I-r))};if(e===void 0)return t(tA);let o=Array.isArray(e)?e:[e],n=o.reduce((Q,a)=>Q*a,1),g=d.zeros(o,"float64"),i=g.data;for(let Q=0;Q<n;Q++)i[Q]=t(tA);return g}function K9(A,r,I){if(A<=0)throw new Error("mean must be positive");if(r<=0)throw new Error("scale must be positive");let e=i=>{let Q=Dr(i),a=Q*Q,B=A/(2*r),s=A+B*(A*a-Math.sqrt(4*A*r*a+A*A*a*a));return i()<=A/(A+s)?s:A*A/s};if(I===void 0)return e(tA);let t=Array.isArray(I)?I:[I],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"float64"),g=n.data;for(let i=0;i<o;i++)g[i]=e(tA);return n}function V9(A,r){if(A<=0)throw new Error("a must be positive");let I=g=>{let i=g();return Math.pow(-Math.log(1-i),1/A)};if(r===void 0)return I(tA);let e=Array.isArray(r)?r:[r],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"float64"),n=o.data;for(let g=0;g<t;g++)n[g]=I(tA);return o}function W9(A,r){if(A<=0)throw new Error("df must be positive");return Ba(A/2,2,r)}function O9(A,r,I){if(A<=0)throw new Error("df must be positive");if(r<0)throw new Error("nonc must be non-negative");let e=i=>{if(r===0)return VA(A/2,2,i);let Q=cI(r/2,i);return VA(A/2+Q,2,i)};if(I===void 0)return e(tA);let t=Array.isArray(I)?I:[I],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"float64"),g=n.data;for(let i=0;i<o;i++)g[i]=e(tA);return n}function Z9(A,r,I){if(A<=0)throw new Error("dfnum must be positive");if(r<=0)throw new Error("dfden must be positive");let e=i=>{let Q=VA(A/2,2,i),a=VA(r/2,2,i);return Q/A/(a/r)};if(I===void 0)return e(tA);let t=Array.isArray(I)?I:[I],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"float64"),g=n.data;for(let i=0;i<o;i++)g[i]=e(tA);return n}function z9(A,r,I,e){if(A<=0)throw new Error("dfnum must be positive");if(r<=0)throw new Error("dfden must be positive");if(I<0)throw new Error("nonc must be non-negative");let t=Q=>{let a=VA(I===0?A/2:A/2+cI(I/2,Q),2,Q),B=VA(r/2,2,Q);return a/A/(B/r)};if(e===void 0)return t(tA);let o=Array.isArray(e)?e:[e],n=o.reduce((Q,a)=>Q*a,1),g=d.zeros(o,"float64"),i=g.data;for(let Q=0;Q<n;Q++)i[Q]=t(tA);return g}function j9(A,r){if(A<=0||A>1)throw new Error("p must be in (0, 1]");let I=g=>{if(A===1)return 1;let i=g();return Math.floor(Math.log(i)/Math.log(1-A))+1};if(r===void 0)return I(tA);let e=Array.isArray(r)?r:[r],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"int64"),n=o.data;for(let g=0;g<t;g++)n[g]=BigInt(I(tA));return o}function $9(A,r,I,e){if(A<0)throw new Error("ngood must be non-negative");if(r<0)throw new Error("nbad must be non-negative");if(I<0)throw new Error("nsample must be non-negative");if(I>A+r)throw new Error("nsample must be <= ngood + nbad");let t=Q=>{let a=A,B=r,s=0,C=I;for(;C>0;){let E=a+B;if(E===0)break;Q()<a/E?(s++,a--):B--,C--}return s};if(e===void 0)return t(tA);let o=Array.isArray(e)?e:[e],n=o.reduce((Q,a)=>Q*a,1),g=d.zeros(o,"int64"),i=g.data;for(let Q=0;Q<n;Q++)i[Q]=BigInt(t(tA));return g}function A_(A,r){if(A<=0||A>=1)throw new Error("p must be in (0, 1)");let I=Math.log(1-A),e=i=>{let Q=i(),a=i(),B=1-Math.exp(I*Q);if(a>=B||a===0)return 1;let s=Math.log(a),C=Math.log(B);return s>=C?1:s>=2*C?2:Math.floor(1+s/C)};if(r===void 0)return e(tA);let t=Array.isArray(r)?r:[r],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"int64"),g=n.data;for(let i=0;i<o;i++)g[i]=BigInt(e(tA));return n}function r_(A,r,I){if(A<=0)throw new Error("n must be positive");if(r<=0||r>1)throw new Error("p must be in (0, 1]");let e=i=>{if(r===1)return 0;let Q=VA(A,(1-r)/r,i);return cI(Q,i)};if(I===void 0)return e(tA);let t=Array.isArray(I)?I:[I],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"int64"),g=n.data;for(let i=0;i<o;i++)g[i]=BigInt(e(tA));return n}function I_(A,r){if(A<=1)throw new Error("a must be > 1");let I=A-1,e=Math.pow(2,I),t=Q=>{for(;;){let a=1-Q(),B=Q(),s=Math.floor(Math.pow(a,-1/I)),C=Math.pow(1+1/s,I);if(B*s*(C-1)/(e-1)<=C/e)return s}};if(r===void 0)return t(tA);let o=Array.isArray(r)?r:[r],n=o.reduce((Q,a)=>Q*a,1),g=d.zeros(o,"int64"),i=g.data;for(let Q=0;Q<n;Q++)i[Q]=BigInt(t(tA));return g}function e_(A,r,I){let e=Array.isArray(r)?r:Array.from({length:r.size},(C,E)=>Number(r.iget(E))),t=e.length;if(t===0)throw new Error("pvals must have at least one element");let o=e.reduce((C,E)=>C+E,0),n=e.map(C=>C/o),g=C=>{let E=new Array(t).fill(0),u=A,f=1;for(let m=0;m<t-1&&u>0;m++){let c=n[m]/f,D=Fi(u,Math.min(1,Math.max(0,c)),C);E[m]=D,u-=D,f-=n[m]}return E[t-1]=u,E};if(I===void 0){let C=g(tA),E=d.zeros([t],"int64"),u=E.data;for(let f=0;f<t;f++)u[f]=BigInt(C[f]);return E}let i=Array.isArray(I)?I:[I],Q=i.reduce((C,E)=>C*E,1),a=[...i,t],B=d.zeros(a,"int64"),s=B.data;for(let C=0;C<Q;C++){let E=g(tA);for(let u=0;u<t;u++)s[C*t+u]=BigInt(E[u])}return B}function t_(A,r,I,e="warn",t=1e-8){let o=Array.isArray(A)?A:Array.from({length:A.size},(u,f)=>Number(A.iget(f))),n=o.length,g;if(Array.isArray(r))g=r;else{g=[];for(let u=0;u<n;u++){g.push([]);for(let f=0;f<n;f++)g[u].push(Number(r.iget(u*n+f)))}}let i=Array(n).fill(0).map(()=>Array(n).fill(0));for(let u=0;u<n;u++)for(let f=0;f<=u;f++){let m=g[u][f];for(let c=0;c<f;c++)m-=i[u][c]*i[f][c];if(u===f){if(m<-t){if(e==="raise")throw new Error("covariance matrix is not positive semi-definite");e==="warn"&&console.warn("covariance matrix is not positive semi-definite"),m=0}i[u][f]=Math.sqrt(Math.max(0,m))}else i[u][f]=i[f][f]!==0?m/i[f][f]:0}let Q=u=>{let f=[];for(let c=0;c<n;c++)f.push(Dr(u));let m=[];for(let c=0;c<n;c++){let D=o[c];for(let y=0;y<=c;y++)D+=i[c][y]*f[y];m.push(D)}return m};if(I===void 0){let u=Q(tA),f=d.zeros([n],"float64"),m=f.data;for(let c=0;c<n;c++)m[c]=u[c];return f}let a=Array.isArray(I)?I:[I],B=a.reduce((u,f)=>u*f,1),s=[...a,n],C=d.zeros(s,"float64"),E=C.data;for(let u=0;u<B;u++){let f=Q(tA);for(let m=0;m<n;m++)E[u*n+m]=f[m]}return C}function o_(A,r){let I=Array.isArray(A)?A:Array.from({length:A.size},(a,B)=>Number(A.iget(B))),e=I.length;if(e<2)throw new Error("alpha must have at least 2 elements");for(let a of I)if(a<=0)throw new Error("all alpha values must be positive");let t=a=>{let B=[],s=0;for(let C=0;C<e;C++){let E=VA(I[C],1,a);B.push(E),s+=E}return B.map(C=>C/s)};if(r===void 0){let a=t(tA),B=d.zeros([e],"float64"),s=B.data;for(let C=0;C<e;C++)s[C]=a[C];return B}let o=Array.isArray(r)?r:[r],n=o.reduce((a,B)=>a*B,1),g=[...o,e],i=d.zeros(g,"float64"),Q=i.data;for(let a=0;a<n;a++){let B=t(tA);for(let s=0;s<e;s++)Q[a*e+s]=B[s]}return i}function n_(A,r,I){if(r<0)throw new Error("kappa must be non-negative");let e=i=>{if(r===0)return 2*Math.PI*i()-Math.PI;let Q=1+Math.sqrt(1+4*r*r),a=(Q-Math.sqrt(2*Q))/(2*r),B=(1+a*a)/(2*a);for(;;){let s=i(),C=Math.cos(Math.PI*s),E=(1+B*C)/(B+C),u=r*(B-E),f=i();if(u*(2-u)>f||Math.log(u/f)+1-u>=0)return((i()>.5?Math.acos(E):-Math.acos(E))+A+Math.PI)%(2*Math.PI)-Math.PI}};if(I===void 0)return e(tA);let t=Array.isArray(I)?I:[I],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"float64"),g=n.data;for(let i=0;i<o;i++)g[i]=e(tA);return n}var mT="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",Si=null;function kr(){if(Si)return Si;let A=atob(mT),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Si=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Si.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Si}function gf(A){return kr().exports.fft_scratch_size(A)}function Qf(A,r,I,e,t){kr().exports.fft_batch_c128(A,r,I,e,t)}function af(A,r,I,e,t){kr().exports.ifft_batch_c128(A,r,I,e,t)}function i_(A,r,I,e,t){kr().exports.fft2_c128(A,r,I,e,t)}function g_(A,r,I,e,t){kr().exports.ifft2_c128(A,r,I,e,t)}function Q_(A,r){return kr().exports.fft2_scratch_size(A,r)}function a_(A,r,I,e,t){kr().exports.rfft2_f64(A,r,I,e,t)}function B_(A,r){return kr().exports.rfft2_scratch_size(A,r)}function s_(A,r,I,e,t,o){kr().exports.irfft2_f64(A,r,I,e,t,o)}function C_(A,r){return kr().exports.irfft2_scratch_size(A,r)}function yT(A,r,I){let e=A.length;e!==0&&e!==1&&((e&e-1)===0?sa(A,r,I):hT(A,r,I))}var Ri=new Map;function lT(A,r){let I=`${A}_${r}`,e=Ri.get(I);if(e)return e;let t=new Float64Array(A/2),o=new Float64Array(A/2),n=r?1:-1;for(let g=0;g<A/2;g++){let i=n*2*Math.PI*g/A;t[g]=Math.cos(i),o[g]=Math.sin(i)}if(e={cos:t,sin:o},Ri.set(I,e),Ri.size>100){let g=Ri.keys().next().value;Ri.delete(g)}return e}function sa(A,r,I){let e=A.length,t=0;for(let g=0;g<e-1;g++){if(g<t){let Q=A[g];A[g]=A[t],A[t]=Q,Q=r[g],r[g]=r[t],r[t]=Q}let i=e>>1;for(;i<=t;)t-=i,i>>=1;t+=i}let{cos:o,sin:n}=lT(e,I);for(let g=2;g<=e;g*=2){let i=g>>1,Q=e/g;for(let a=0;a<e;a+=g)for(let B=0,s=0;B<i;B++,s+=Q){let C=o[s],E=n[s],u=a+B,f=a+B+i,m=A[u],c=r[u],D=A[f],y=r[f],l=C*D-E*y,h=C*y+E*D;A[u]=m+l,r[u]=c+h,A[f]=m-l,r[f]=c-h}}if(I){let g=1/e;for(let i=0;i<e;i++)A[i]=A[i]*g,r[i]=r[i]*g}}function hT(A,r,I){let e=A.length,t=1;for(;t<2*e-1;)t*=2;let o=I?1:-1,n=new Float64Array(e),g=new Float64Array(e);for(let s=0;s<e;s++){let C=o*Math.PI*s*s/e;n[s]=Math.cos(C),g[s]=Math.sin(C)}let i=new Float64Array(t),Q=new Float64Array(t);for(let s=0;s<e;s++){let C=n[s],E=g[s];i[s]=A[s]*C-r[s]*E,Q[s]=r[s]*C+A[s]*E}let a=new Float64Array(t),B=new Float64Array(t);a[0]=n[0],B[0]=-g[0];for(let s=1;s<e;s++)a[s]=n[s],B[s]=-g[s],a[t-s]=n[s],B[t-s]=-g[s];sa(i,Q,!1),sa(a,B,!1);for(let s=0;s<t;s++){let C=i[s],E=Q[s],u=a[s],f=B[s];i[s]=C*u-E*f,Q[s]=C*f+E*u}sa(i,Q,!0);for(let s=0;s<e;s++){let C=i[s],E=Q[s],u=n[s],f=g[s];A[s]=C*u-E*f,r[s]=E*u+C*f}if(I)for(let s=0;s<e;s++)A[s]=A[s]/e,r[s]=r[s]/e}function Ea(A,r,I=-1,e="backward"){return oe(A,r!==void 0?[r]:void 0,[I],e,!1)}function ki(A,r,I=-1,e="backward"){return oe(A,r!==void 0?[r]:void 0,[I],e,!0)}function Bf(A,r,I=[-2,-1],e="backward"){return oe(A,r,I,e,!1)}function E_(A,r,I=[-2,-1],e="backward"){return oe(A,r,I,e,!0)}function u_(A,r,I,e="backward"){return oe(A,r,I,e,!1)}function c_(A,r,I,e="backward"){return oe(A,r,I,e,!0)}function oe(A,r,I,e="backward",t=!1){let o=Array.from(A.shape),n=o.length;if(A.size===0)return d.zeros(o,"complex128");if(n===0){let a=d.zeros([1],"complex128"),B=A.iget(0),s=B instanceof T?B.re:Number(B),C=B instanceof T?B.im:0,E=a.data;return E[0]=s,E[1]=C,d.fromData(a.data,[],"complex128")}let g;if(I===void 0)if(r===void 0)g=Array.from({length:n},(a,B)=>B);else{g=[];for(let a=0;a<r.length;a++)g.push(n-r.length+a)}else g=I.map(a=>a<0?n+a:a);let i=[...o];if(r!==void 0)for(let a=0;a<r.length;a++){let B=g[a];i[B]=r[a]}let Q=qi(A);if(r!==void 0&&(Q=dT(Q,i,g)),g.length===2&&Q.ndim===2&&e==="backward"&&Q.isCContiguous){let a=Q.shape[g[0]],B=Q.shape[g[1]];if(g[0]===0&&g[1]===1&&a>=nI*Y.thresholdMultiplier&&B>=nI*Y.thresholdMultiplier){let C=a*B*2,E=Q_(a,B),u=C*8,f=E*8;J(u*2+f),U();let m=Q.data,c=q(m.subarray(0,C)),D=_(u),y=_(f);(t?g_:i_)(c,D,y,a,B);let h=v(D,C,Float64Array);return d.fromData(h,[a,B],"complex128")}}for(let a of g)Q=pT(Q,a,t,e);return Q}function qi(A){let r=A.dtype,I=Array.from(A.shape),e=A.size;if(r==="complex128"||r==="complex64"){let g=d.zeros(I,"complex128"),i=g.data,Q=A.data;for(let a=0;a<e*2;a++)i[a]=Q[a];return g}let t=d.zeros(I,"complex128"),o=t.data,n=A.data;if(r==="float64"){let g=n;for(let i=0;i<e;i++)o[i*2]=g[i]}else if(r==="float32"){let g=n;for(let i=0;i<e;i++)o[i*2]=g[i]}else if(r==="int32"){let g=n;for(let i=0;i<e;i++)o[i*2]=g[i]}else if(r==="int16"){let g=n;for(let i=0;i<e;i++)o[i*2]=g[i]}else if(r==="int8"){let g=n;for(let i=0;i<e;i++)o[i*2]=g[i]}else if(r==="uint32"){let g=n;for(let i=0;i<e;i++)o[i*2]=g[i]}else if(r==="uint16"){let g=n;for(let i=0;i<e;i++)o[i*2]=g[i]}else if(r==="uint8"){let g=n;for(let i=0;i<e;i++)o[i*2]=g[i]}else if(r==="int64"||r==="uint64"){let g=n;for(let i=0;i<e;i++)o[i*2]=Number(g[i])}else for(let g=0;g<e;g++)o[g*2]=Number(n[g]);return t}function dT(A,r,I){let e=Array.from(A.shape),t=A;for(let o of I){let n=e[o],g=r[o];n!==g&&(g>n?t=bT(t,o,g):t=sf(t,o,g),e[o]=g)}return t}function bT(A,r,I){let e=Array.from(A.shape),t=e[r];e[r]=I;let o=d.zeros(e,"complex128"),n=o.data,g=A.data,i=e.slice(0,r).reduce((a,B)=>a*B,1),Q=e.slice(r+1).reduce((a,B)=>a*B,1);for(let a=0;a<i;a++)for(let B=0;B<t;B++)for(let s=0;s<Q;s++){let C=(a*t+B)*Q+s,E=(a*I+B)*Q+s;n[E*2]=g[C*2],n[E*2+1]=g[C*2+1]}return o}function sf(A,r,I){let e=Array.from(A.shape),t=e[r];e[r]=I;let o=d.zeros(e,"complex128"),n=o.data,g=A.data,i=e.slice(0,r).reduce((a,B)=>a*B,1),Q=e.slice(r+1).reduce((a,B)=>a*B,1);for(let a=0;a<i;a++)for(let B=0;B<I;B++)for(let s=0;s<Q;s++){let C=(a*t+B)*Q+s,E=(a*I+B)*Q+s;n[E*2]=g[C*2],n[E*2+1]=g[C*2+1]}return o}var nI=32;function pT(A,r,I,e){let t=Array.from(A.shape),o=t[r];if(o===0)return A;let n=d.zeros(t,"complex128"),g=n.data,i=A.data,Q=t.slice(0,r).reduce((C,E)=>C*E,1),a=t.slice(r+1).reduce((C,E)=>C*E,1);if(a===1&&o>=nI*Y.thresholdMultiplier){let C=Q*o*2,E=gf(o),u=C*8,f=E*8;J(u*2+f),U();let m=i.subarray(0,C),c=q(m),D=_(u),y=_(f);(I?af:Qf)(c,D,y,o,Q);let h=v(D,C,Float64Array);if(g.set(h),e==="ortho"){let b=I?Math.sqrt(o):1/Math.sqrt(o);for(let p=0;p<C;p++)g[p]=g[p]*b}else if(e==="forward"&&!I){let b=1/o;for(let p=0;p<C;p++)g[p]=g[p]*b}else if(e==="forward"&&I)for(let b=0;b<C;b++)g[b]=g[b]*o;return n}if(a>1&&o>=nI*Y.thresholdMultiplier){let C=Q*a,E=C*o*2,u=gf(o),f=E*8,m=u*8;J(f*2+m),U();let c=new Float64Array(E),D=0;for(let N=0;N<Q;N++)for(let F=0;F<a;F++){let S=D*o*2;for(let x=0;x<o;x++){let H=((N*o+x)*a+F)*2;c[S+x*2]=i[H],c[S+x*2+1]=i[H+1]}D++}let y=q(c),l=_(f),h=_(m);(I?af:Qf)(y,l,h,o,C);let p=v(l,E,Float64Array);D=0;for(let N=0;N<Q;N++)for(let F=0;F<a;F++){let S=D*o*2;for(let x=0;x<o;x++){let H=((N*o+x)*a+F)*2;g[H]=p[S+x*2],g[H+1]=p[S+x*2+1]}D++}let w=Q*o*a*2;if(e==="ortho"){let N=I?Math.sqrt(o):1/Math.sqrt(o);for(let F=0;F<w;F++)g[F]=g[F]*N}else if(e==="forward"&&!I){let N=1/o;for(let F=0;F<w;F++)g[F]=g[F]*N}else if(e==="forward"&&I)for(let N=0;N<w;N++)g[N]=g[N]*o;return n}let B=new Float64Array(o),s=new Float64Array(o);for(let C=0;C<Q;C++)for(let E=0;E<a;E++){for(let u=0;u<o;u++){let f=(C*o+u)*a+E;B[u]=i[f*2],s[u]=i[f*2+1]}if(yT(B,s,I),e==="ortho"){let u=1/Math.sqrt(o);if(I){let f=Math.sqrt(o);for(let m=0;m<o;m++)B[m]=B[m]*f,s[m]=s[m]*f}else for(let f=0;f<o;f++)B[f]=B[f]*u,s[f]=s[f]*u}else if(e==="forward"&&!I){let u=1/o;for(let f=0;f<o;f++)B[f]=B[f]*u,s[f]=s[f]*u}else if(!(e==="backward"&&I)){if(e==="forward"&&I)for(let u=0;u<o;u++)B[u]=B[u]*o,s[u]=s[u]*o}for(let u=0;u<o;u++){let f=(C*o+u)*a+E;g[f*2]=B[u],g[f*2+1]=s[u]}}return n}function ua(A,r,I=-1,e="backward"){let t=Array.from(A.shape),o=t.length,n=I<0?o+I:I,g=r??t[n],i=Ea(A,g,I,e),Q=Math.floor(g/2)+1;return sf(i,n,Q)}function Mi(A,r,I=-1,e="backward"){let t=Array.from(A.shape),o=t.length,n=I<0?o+I:I,g=t[n],i=r??(g-1)*2,Q=[...t];Q[n]=i;let a=d.zeros(Q,"complex128"),B=a.data,s=qi(A).data,C=t.slice(0,n).reduce((f,m)=>f*m,1),E=t.slice(n+1).reduce((f,m)=>f*m,1);for(let f=0;f<C;f++)for(let m=0;m<E;m++){for(let c=0;c<g;c++){let D=(f*g+c)*E+m,y=(f*i+c)*E+m;B[y*2]=s[D*2],B[y*2+1]=s[D*2+1]}for(let c=g;c<i;c++){let D=i-c,y=(f*g+D)*E+m,l=(f*i+c)*E+m;B[l*2]=s[y*2],B[l*2+1]=-s[y*2+1]}}let u=ki(a,i,I,e);return Ca(u)}function D_(A,r,I=[-2,-1],e="backward"){let t=Array.from(A.shape),o=t.length,n=I[0]<0?o+I[0]:I[0],g=I[1]<0?o+I[1]:I[1];if(o===2&&n===0&&g===1&&e==="backward"&&!r&&A.isCContiguous&&!k(A.dtype)){let B=t[0],s=t[1];if(B>=nI*Y.thresholdMultiplier&&s>=nI*Y.thresholdMultiplier){let C=Math.floor(s/2)+1,E=B_(B,s),u=B*s*8,f=B*C*2*8,m=E*8;J(u+f+m),U();let c=A.dtype==="float64"?A.data.subarray(A.offset,A.offset+B*s):Float64Array.from(A.data.subarray(A.offset,A.offset+B*s)),D=q(c),y=_(f),l=_(m);a_(D,y,l,B,s);let h=v(y,B*C*2,Float64Array);return d.fromData(h,[B,C],"complex128")}}let i=Bf(A,r,I,e),Q=r?r[1]:t[g],a=Math.floor(Q/2)+1;return sf(i,g,a)}function f_(A,r,I=[-2,-1],e="backward"){let t=Array.from(A.shape),o=t.length,n=I[0]<0?o+I[0]:I[0],g=I[1]<0?o+I[1]:I[1],i=t[g],Q=r?r[1]:(i-1)*2,a=r?r[0]:t[n];if(o===2&&n===0&&g===1&&e==="backward"&&!r&&A.isCContiguous&&k(A.dtype)){let s=t[0],C=t[1];if(s>=nI*Y.thresholdMultiplier&&Q>=nI*Y.thresholdMultiplier){let E=C_(s,Q),u=s*C*2*8,f=s*Q*8,m=E*8;J(u+f+m),U();let c=A.data.subarray(A.offset,A.offset+s*C*2),D=q(c),y=_(f),l=_(m);s_(D,y,l,s,C,Q);let h=v(y,s*Q,Float64Array);return d.fromData(h,[s,Q],"float64")}}let B=Mi(A,Q,g,e);return B=ki(B,a,n,e),Ca(B)}function m_(A,r,I,e="backward"){let o=Array.from(A.shape).length,n;if(I===void 0?n=Array.from({length:o},(a,B)=>B):n=I.map(a=>a<0?o+a:a),n.length===0)return qi(A);let g=A;for(let a=0;a<n.length-1;a++){let B=n[a],s=r?r[a]:void 0;g=Ea(g,s,B,e)}let i=n[n.length-1],Q=r?r[n.length-1]:void 0;return ua(g,Q,i,e)}function y_(A,r,I,e="backward"){let t=Array.from(A.shape),o=t.length,n;if(I===void 0?n=Array.from({length:o},(B,s)=>s):n=I.map(B=>B<0?o+B:B),n.length===0)return Ca(qi(A));let g=n[n.length-1],i=t[g],Q=r?[...r]:n.map((B,s)=>s===n.length-1?(i-1)*2:t[B]),a=Mi(A,Q[n.length-1],g,e);for(let B=n.length-2;B>=0;B--){let s=n[B];a=ki(a,Q[B],s,e)}return Ca(a)}function l_(A,r,I=-1,e="backward"){let t=Array.from(A.shape),o=t.length,n=I<0?o+I:I,g=t[n],i=r??(g-1)*2,Q=d_(qi(A)),a=Mi(Q,i,I,e),B=a.data;for(let s=0;s<a.size;s++)B[s]=B[s]*i;return a}function h_(A,r,I=-1,e="backward"){let t=Array.from(A.shape),o=t.length,n=I<0?o+I:I,g=r??t[n],i=ua(A,g,I,e),Q=d_(i),a=Q.data;for(let B=0;B<Q.size*2;B++)a[B]=a[B]/g;return Q}function d_(A){let r=Array.from(A.shape),I=A.size,e=d.zeros(r,"complex128"),t=e.data,o=A.data;for(let n=0;n<I;n++)t[n*2]=o[n*2],t[n*2+1]=-o[n*2+1];return e}function Ca(A){let r=Array.from(A.shape),I=A.size,e=d.zeros(r,"float64"),t=e.data,o=A.data;for(let n=0;n<I;n++)t[n]=o[n*2];return e}function b_(A,r=1){let I=d.zeros([A],"float64"),e=I.data,t=Math.floor((A-1)/2)+1;for(let o=0;o<t;o++)e[o]=o/(A*r);for(let o=t;o<A;o++)e[o]=(o-A)/(A*r);return I}function p_(A,r=1){let I=Math.floor(A/2)+1,e=d.zeros([I],"float64"),t=e.data;for(let o=0;o<I;o++)t[o]=o/(A*r);return e}function w_(A,r){let I=Array.from(A.shape),e=I.length,t;r===void 0?t=Array.from({length:e},(n,g)=>g):typeof r=="number"?t=[r<0?e+r:r]:t=r.map(n=>n<0?e+n:n);let o=I.map((n,g)=>t.includes(g)?Math.floor(I[g]/2):0);return F_(A,o)}function N_(A,r){let I=Array.from(A.shape),e=I.length,t;r===void 0?t=Array.from({length:e},(n,g)=>g):typeof r=="number"?t=[r<0?e+r:r]:t=r.map(n=>n<0?e+n:n);let o=I.map((n,g)=>t.includes(g)?-Math.floor(I[g]/2):0);return F_(A,o)}function F_(A,r){let I=Array.from(A.shape),e=A.dtype,t=A.size,o=d.zeros(I,e),n=e==="complex128"||e==="complex64",g=new Array(I.length);g[I.length-1]=1;for(let i=I.length-2;i>=0;i--)g[i]=g[i+1]*I[i+1];for(let i=0;i<t;i++){let Q=new Array(I.length),a=i;for(let C=0;C<I.length;C++)Q[C]=Math.floor(a/g[C]),a=a%g[C];let B=Q.map((C,E)=>{let u=C+r[E],f=I[E];return u=(u%f+f)%f,u}),s=0;for(let C=0;C<I.length;C++)s+=B[C]*g[C];if(n){let C=A.data,E=o.data;E[s*2]=C[i*2],E[s*2+1]=C[i*2+1]}else{let C=A.iget(i);o.iset(s,C)}}return o}function Lr(A){return sA.fromStorage(A.storage)}function NT(A){return Lr(ia(A))}var FT=wD;function GT(A,r){return Lr(ND(A,r))}async function ST(A,r={}){let I=await GD(A,r),e=new Map;for(let[t,o]of I.arrays)e.set(t,Lr(o));return{arrays:e,skipped:I.skipped,errors:I.errors}}function RT(A,r={}){let I=SD(A,r),e=new Map;for(let[t,o]of I.arrays)e.set(t,Lr(o));return{arrays:e,skipped:I.skipped,errors:I.errors}}async function kT(A,r={}){let I=await aJ(A,r),e={};for(let[t,o]of Object.entries(I))e[t]=Lr(o);return e}function qT(A,r={}){let I=BJ(A,r),e={};for(let[t,o]of Object.entries(I))e[t]=Lr(o);return e}function MT(A,r={}){return Lr(RD(A,r))}function xT(A,r={}){return Lr(yJ(A,r))}function JT(A,r,I="float64"){return Lr(lJ(A,r,I))}function aA(A){return A&&typeof A=="object"&&"_data"in A&&"_shape"in A?sA.fromStorage(A):A}var UT={seed:Q9,get_state:a9,set_state:B9,get_bit_generator:R9,set_bit_generator:k9,default_rng:g9,Generator:wi,random:A=>aA(Gi(A)),rand:(...A)=>aA(s9(...A)),randn:(...A)=>aA(C9(...A)),randint:(A,r,I,e)=>aA(of(A,r,I,e)),random_sample:A=>aA(p9(A)),ranf:A=>aA(w9(A)),sample:A=>aA(N9(A)),random_integers:(A,r,I)=>aA(F9(A,r,I)),bytes:G9,uniform:(A,r,I)=>aA(E9(A,r,I)),normal:(A,r,I)=>aA(u9(A,r,I)),standard_normal:A=>aA(c9(A)),exponential:(A,r)=>aA(nf(A,r)),standard_exponential:A=>aA(q9(A)),gamma:(A,r,I)=>aA(Ba(A,r,I)),standard_gamma:(A,r)=>aA(M9(A,r)),beta:(A,r,I)=>aA(U9(A,r,I)),chisquare:(A,r)=>aA(W9(A,r)),noncentral_chisquare:(A,r,I)=>aA(O9(A,r,I)),f:(A,r,I)=>aA(Z9(A,r,I)),noncentral_f:(A,r,I,e)=>aA(z9(A,r,I,e)),standard_cauchy:A=>aA(x9(A)),standard_t:(A,r)=>aA(J9(A,r)),laplace:(A,r,I)=>aA(L9(A,r,I)),logistic:(A,r,I)=>aA(H9(A,r,I)),lognormal:(A,r,I)=>aA(_9(A,r,I)),gumbel:(A,r,I)=>aA(Y9(A,r,I)),pareto:(A,r)=>aA(v9(A,r)),power:(A,r)=>aA(X9(A,r)),rayleigh:(A,r)=>aA(T9(A,r)),triangular:(A,r,I,e)=>aA(P9(A,r,I,e)),wald:(A,r,I)=>aA(K9(A,r,I)),weibull:(A,r)=>aA(V9(A,r)),poisson:(A,r)=>aA(D9(A,r)),binomial:(A,r,I)=>aA(f9(A,r,I)),geometric:(A,r)=>aA(j9(A,r)),hypergeometric:(A,r,I,e)=>aA($9(A,r,I,e)),logseries:(A,r)=>aA(A_(A,r)),negative_binomial:(A,r,I)=>aA(r_(A,r,I)),zipf:(A,r)=>aA(I_(A,r)),multinomial:(A,r,I)=>aA(e_(A,r,I)),multivariate_normal:(A,r,I,e,t)=>aA(t_(A,r,I,e,t)),dirichlet:(A,r)=>aA(o_(A,r)),vonmises:(A,r,I)=>aA(n_(A,r,I)),choice:(A,r,I,e)=>aA(y9(A,r,I,e)),permutation:A=>aA(h9(A)),shuffle:b9};function PA(A){return A instanceof sA||A instanceof AA?A.storage:A}var LT={fft:(A,r,I,e)=>sA.fromStorage(Ea(PA(A),r,I,e)),ifft:(A,r,I,e)=>sA.fromStorage(ki(PA(A),r,I,e)),fft2:(A,r,I,e)=>sA.fromStorage(Bf(PA(A),r,I,e)),ifft2:(A,r,I,e)=>sA.fromStorage(E_(PA(A),r,I,e)),fftn:(A,r,I,e)=>sA.fromStorage(u_(PA(A),r,I,e)),ifftn:(A,r,I,e)=>sA.fromStorage(c_(PA(A),r,I,e)),rfft:(A,r,I,e)=>sA.fromStorage(ua(PA(A),r,I,e)),irfft:(A,r,I,e)=>sA.fromStorage(Mi(PA(A),r,I,e)),rfft2:(A,r,I,e)=>sA.fromStorage(D_(PA(A),r,I,e)),irfft2:(A,r,I,e)=>sA.fromStorage(f_(PA(A),r,I,e)),rfftn:(A,r,I,e)=>sA.fromStorage(m_(PA(A),r,I,e)),irfftn:(A,r,I,e)=>sA.fromStorage(y_(PA(A),r,I,e)),hfft:(A,r,I,e)=>sA.fromStorage(l_(PA(A),r,I,e)),ihfft:(A,r,I,e)=>sA.fromStorage(h_(PA(A),r,I,e)),fftfreq:(A,r)=>sA.fromStorage(b_(A,r)),rfftfreq:(A,r)=>sA.fromStorage(p_(A,r)),fftshift:(A,r)=>sA.fromStorage(w_(PA(A),r)),ifftshift:(A,r)=>sA.fromStorage(N_(PA(A),r))},HT="1.1.0";0&&(module.exports={Complex,DTYPE_TO_DESCR,InvalidNpyError,NDArray,NDArrayCore,SUPPORTED_DTYPES,UnsupportedDTypeError,__version__,abs,absolute,acos,acosh,add,all,allclose,amax,amin,angle,any,append,apply_along_axis,apply_over_axes,arange,arccos,arccosh,arcsin,arcsinh,arctan,arctan2,arctanh,argmax,argmin,argpartition,argsort,argwhere,around,array,array2string,array_equal,array_equiv,array_repr,array_split,array_str,asanyarray,asarray,asarray_chkfinite,ascontiguousarray,asfortranarray,asin,asinh,atan,atan2,atanh,atleast_1d,atleast_2d,atleast_3d,average,base_repr,binary_repr,bincount,bindex,bitwise_and,bitwise_count,bitwise_invert,bitwise_left_shift,bitwise_not,bitwise_or,bitwise_right_shift,bitwise_xor,block,broadcast_arrays,broadcast_shapes,broadcast_to,byteswap,can_cast,cbrt,ceil,choose,clip,column_stack,common_type,compress,concat,concatenate,conj,conjugate,convolve,copy,copysign,copyto,corrcoef,correlate,cos,cosh,count_nonzero,cov,cross,cumprod,cumsum,cumulative_prod,cumulative_sum,deg2rad,degrees,delete:null,delete_,diag,diag_indices,diag_indices_from,diagflat,diagonal,diff,digitize,divide,divmod,dot,dsplit,dstack,ediff1d,einsum,einsum_path,empty,empty_like,equal,exp,exp2,expand_dims,expm1,extract,eye,fabs,fft,fill,fill_diagonal,fix,flatnonzero,flatten,flip,fliplr,flipud,float_power,floor,floor_divide,fmax,fmin,fmod,format_float_positional,format_float_scientific,frexp,frombuffer,fromfile,fromfunction,fromiter,fromregex,fromstring,full,full_like,gcd,genfromtxt,geomspace,get_printoptions,geterr,gradient,greater,greater_equal,heaviside,histogram,histogram2d,histogram_bin_edges,histogramdd,hsplit,hstack,hypot,i0,identity,iindex,imag,in1d,indices,inner,insert,interp,intersect1d,invert,isclose,iscomplex,iscomplexobj,isdtype,isfinite,isfortran,isin,isinf,isnan,isnat,isneginf,isposinf,isreal,isrealobj,isscalar,issubdtype,item,iterable,ix_,kron,lcm,ldexp,left_shift,less,less_equal,lexsort,linalg,linspace,loadNpz,loadNpzSync,log,log10,log1p,log2,logaddexp,logaddexp2,logical_and,logical_not,logical_or,logical_xor,logspace,mask_indices,matmul,matrix_transpose,matvec,max,maximum,may_share_memory,mean,median,meshgrid,min,min_scalar_type,minimum,mintypecode,mod,modf,moveaxis,multiply,nan_to_num,nanargmax,nanargmin,nancumprod,nancumsum,nanmax,nanmean,nanmedian,nanmin,nanpercentile,nanprod,nanquantile,nanstd,nansum,nanvar,ndim,negative,nextafter,nonzero,not_equal,ones,ones_like,outer,packbits,pad,parseNpy,parseNpyData,parseNpyHeader,parseNpz,parseNpzSync,parseTxt,partition,percentile,permute_dims,place,poly,polyadd,polyder,polydiv,polyfit,polyint,polymul,polysub,polyval,positive,pow,power,printoptions,prod,promote_types,ptp,put,put_along_axis,putmask,quantile,rad2deg,radians,random,ravel,ravel_multi_index,real,real_if_close,reciprocal,remainder,repeat,require,reshape,resize,result_type,right_shift,rint,roll,rollaxis,roots,rot90,round,round_,row_stack,searchsorted,select,serializeNpy,serializeNpz,serializeNpzSync,serializeTxt,set_printoptions,setdiff1d,seterr,setxor1d,shape,shares_memory,sign,signbit,sin,sinc,sinh,size,sort,sort_complex,spacing,split,sqrt,square,squeeze,stack,std,subtract,sum,swapaxes,take,take_along_axis,tan,tanh,tensordot,tile,tobytes,tofile,tolist,trace,transpose,trapezoid,tri,tril,tril_indices,tril_indices_from,trim_zeros,triu,triu_indices,triu_indices_from,true_divide,trunc,typename,union1d,unique,unique_all,unique_counts,unique_inverse,unique_values,unpackbits,unravel_index,unstack,unwrap,vander,var:null,variance,vdot,vecdot,vecmat,view,vsplit,vstack,wasmConfig,where,zeros,zeros_like});
|
|
8
8
|
//# sourceMappingURL=numpy-ts.node.cjs.map
|