numpy-ts 1.0.0 → 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 +4 -3
- 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 +37 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ArrayStorage as
|
|
1
|
+
import{ArrayStorage as z}from"../storage";import{isComplexDType as U}from"../dtype";function H(r,l,n,u){const o=isNaN(r)||isNaN(l),c=isNaN(n)||isNaN(u);return o&&c?0:o?1:c||r<n?-1:r>n?1:l<u?-1:l>u?1:0}function O(r,l,n,u){const o=isNaN(r)||isNaN(l),c=isNaN(n)||isNaN(u);return o&&c?!0:o||c?!1:r===n&&l===u}function $(r,l=!1,n=!1,u=!1,o){if(o!==void 0){const s=Array.from(r.shape),m=s.length;let A=o<0?m+o:o;if(A<0||A>=m)throw new Error(`unique: axis ${o} out of bounds for array of dimension ${m}`);const B=s[A],C=[];for(let x=0;x<B;x++){const D=[],q=s.filter((t,h)=>h!==A),j=q.reduce((t,h)=>t*h,1);for(let t=0;t<j;t++){let h=t;const N=new Array(q.length);for(let I=q.length-1;I>=0;I--)N[I]=h%q[I],h=Math.floor(h/q[I]);const M=[];let E=0;for(let I=0;I<m;I++)M.push(I===A?x:N[E++]);D.push(Number(r.get(...M)))}C.push(D.join(","))}const V=C.map((x,D)=>({key:x,i:D}));V.sort((x,D)=>x.key<D.key?-1:x.key>D.key?1:0);const T=[];let L;for(const{key:x,i:D}of V)x!==L&&(T.push(D),L=x);const K=s.map((x,D)=>D===A?T.length:x),Z=z.zeros(K,r.dtype);for(let x=0;x<T.length;x++){const D=T[x],q=s.filter((t,h)=>h!==A),j=q.reduce((t,h)=>t*h,1);for(let t=0;t<j;t++){let h=t;const N=new Array(q.length);for(let k=q.length-1;k>=0;k--)N[k]=h%q[k],h=Math.floor(h/q[k]);const M=[],E=[];let I=0;for(let k=0;k<m;k++)M.push(k===A?D:N[I]),E.push(k===A?x:N[I]),k!==A&&I++;Z.set(E,Number(r.get(...M)))}}return Z}const c=r.dtype,g=r.size,S=r.data,i=r.offset;if(U(c)){const s=S,m=[];for(let t=0;t<g;t++)m.push({re:s[(i+t)*2],im:s[(i+t)*2+1],index:t});m.sort((t,h)=>H(t.re,t.im,h.re,h.im));const A=[],B=[],C=new Array(g),V=[];let T,L,K=0;for(let t=0;t<m.length;t++){const{re:h,im:N,index:M}=m[t];T===void 0||!O(h,N,T,L)?(T!==void 0&&V.push(K),A.push({re:h,im:N}),B.push(M),K=1,T=h,L=N):K++}K>0&&V.push(K);const Z=new Map;let x=-1;for(let t=0;t<A.length;t++){const{re:h,im:N}=A[t];isNaN(h)||isNaN(N)?x=t:Z.set(`${h},${N}`,t)}for(let t=0;t<g;t++){const h=s[(i+t)*2],N=s[(i+t)*2+1];isNaN(h)||isNaN(N)?C[t]=x:C[t]=Z.get(`${h},${N}`)}const D=z.zeros([A.length],c),q=D.data;for(let t=0;t<A.length;t++)q[t*2]=A[t].re,q[t*2+1]=A[t].im;if(!l&&!n&&!u)return D;const j={values:D};if(l){const t=z.zeros([B.length],"int32"),h=t.data;for(let N=0;N<B.length;N++)h[N]=B[N];j.indices=t}if(n){const t=z.zeros([C.length],"int32"),h=t.data;for(let N=0;N<C.length;N++)h[N]=C[N];j.inverse=t}if(u){const t=z.zeros([V.length],"int32"),h=t.data;for(let N=0;N<V.length;N++)h[N]=V[N];j.counts=t}return j}const f=[];for(let s=0;s<g;s++)f.push({value:Number(S[i+s]),index:s});f.sort((s,m)=>isNaN(s.value)&&isNaN(m.value)?0:isNaN(s.value)?1:isNaN(m.value)?-1:s.value-m.value);const a=[],d=[],p=new Array(g),e=[];let b,y=0;for(let s=0;s<f.length;s++){const{value:m,index:A}=f[s];b===void 0||isNaN(m)&&!isNaN(b)||!isNaN(m)&&isNaN(b)||!isNaN(m)&&!isNaN(b)&&m!==b?(b!==void 0&&e.push(y),a.push(m),d.push(A),y=1,b=m):y++}y>0&&e.push(y);const F=new Map;let w=-1;for(let s=0;s<a.length;s++){const m=a[s];isNaN(m)?w=s:F.set(m,s)}for(let s=0;s<g;s++){const m=Number(S[i+s]);isNaN(m)?p[s]=w:p[s]=F.get(m)}const v=z.zeros([a.length],c),R=v.data,J=R instanceof BigInt64Array||R instanceof BigUint64Array;for(let s=0;s<a.length;s++)R[s]=J?BigInt(a[s]):a[s];if(!l&&!n&&!u)return v;const G={values:v};if(l){const s=z.zeros([d.length],"int32"),m=s.data;for(let A=0;A<d.length;A++)m[A]=d[A];G.indices=s}if(n){const s=z.zeros([p.length],"int32"),m=s.data;for(let A=0;A<p.length;A++)m[A]=p[A];G.inverse=s}if(u){const s=z.zeros([e.length],"int32"),m=s.data;for(let A=0;A<e.length;A++)m[A]=e[A];G.counts=s}return G}function _(r,l,n,u=0){if(n){const o=Number(r[(u+l)*2]),c=Number(r[(u+l)*2+1]);return`${o},${c}`}return String(Number(r[u+l]))}function X(r,l){return P(r,l)}function Y(r,l){const n=r.dtype,u=U(n),o=$(r),c=$(l),g=new Set;for(let a=0;a<c.size;a++)g.add(_(c.data,a,u));const S=[];for(let a=0;a<o.size;a++){const d=_(o.data,a,u);g.has(d)&&S.push(a)}if(u){const a=z.zeros([S.length],n),d=a.data,p=o.data;for(let e=0;e<S.length;e++){const b=S[e];d[e*2]=p[b*2],d[e*2+1]=p[b*2+1]}return a}const i=z.zeros([S.length],n),f=i.data;for(let a=0;a<S.length;a++)f[a]=o.data[S[a]];return i}function P(r,l){const n=Array.from(r.shape),u=r.size,o=U(r.dtype),c=new Set;for(let i=0;i<l.size;i++)c.add(_(l.data,i,o,l.offset));const g=z.zeros(n,"bool"),S=g.data;for(let i=0;i<u;i++){const f=_(r.data,i,o,r.offset);S[i]=c.has(f)?1:0}return g}function ee(r,l){const n=r.dtype,u=U(n),o=$(r),c=new Set;for(let f=0;f<l.size;f++)c.add(_(l.data,f,u,l.offset));const g=[];for(let f=0;f<o.size;f++){const a=_(o.data,f,u);c.has(a)||g.push(f)}if(u){const f=z.zeros([g.length],n),a=f.data,d=o.data;for(let p=0;p<g.length;p++){const e=g[p];a[p*2]=d[e*2],a[p*2+1]=d[e*2+1]}return f}const S=z.zeros([g.length],n),i=S.data;for(let f=0;f<g.length;f++)i[f]=o.data[g[f]];return S}function te(r,l){const n=r.dtype,u=U(n),o=$(r),c=$(l),g=new Set,S=new Set;for(let e=0;e<o.size;e++)g.add(_(o.data,e,u));for(let e=0;e<c.size;e++)S.add(_(c.data,e,u));const i=[],f=[];for(let e=0;e<o.size;e++){const b=_(o.data,e,u);S.has(b)||i.push(e)}for(let e=0;e<c.size;e++){const b=_(c.data,e,u);g.has(b)||f.push(e)}if(u){const e=[],b=o.data,y=c.data;for(const v of i)e.push({re:b[v*2],im:b[v*2+1]});for(const v of f)e.push({re:y[v*2],im:y[v*2+1]});e.sort((v,R)=>H(v.re,v.im,R.re,R.im));const F=z.zeros([e.length],n),w=F.data;for(let v=0;v<e.length;v++)w[v*2]=e[v].re,w[v*2+1]=e[v].im;return F}const a=[];for(const e of i)a.push(Number(o.data[e]));for(const e of f)a.push(Number(c.data[e]));a.sort((e,b)=>isNaN(e)&&isNaN(b)?0:isNaN(e)?1:isNaN(b)?-1:e-b);const d=z.zeros([a.length],n),p=d.data;for(let e=0;e<a.length;e++)p[e]=a[e];return d}function re(r,l){const n=r.dtype,u=U(n),o=$(r),c=$(l),g=new Set,S=[];if(u){const d=o.data,p=c.data;for(let y=0;y<o.size;y++){const F=d[y*2],w=d[y*2+1],v=`${F},${w}`;g.has(v)||(g.add(v),S.push({re:F,im:w}))}for(let y=0;y<c.size;y++){const F=p[y*2],w=p[y*2+1],v=`${F},${w}`;g.has(v)||(g.add(v),S.push({re:F,im:w}))}S.sort((y,F)=>H(y.re,y.im,F.re,F.im));const e=z.zeros([S.length],n),b=e.data;for(let y=0;y<S.length;y++)b[y*2]=S[y].re,b[y*2+1]=S[y].im;return e}const i=[];for(let d=0;d<o.size;d++){const p=Number(o.data[d]),e=String(p);g.has(e)||(g.add(e),i.push(p))}for(let d=0;d<c.size;d++){const p=Number(c.data[d]),e=String(p);g.has(e)||(g.add(e),i.push(p))}i.sort((d,p)=>isNaN(d)&&isNaN(p)?0:isNaN(d)?1:isNaN(p)?-1:d-p);const f=z.zeros([i.length],n),a=f.data;for(let d=0;d<i.length;d++)a[d]=i[d];return f}function se(r,l="fb"){const n=r.dtype,u=r.data,o=r.size,c=r.offset,g=U(n);if(o===0)return z.zeros([0],n);const S=e=>{if(g){const b=u[(c+e)*2],y=u[(c+e)*2+1];return b===0&&y===0}return Number(u[c+e])===0};let i=0;if(l==="f"||l==="fb")for(;i<o&&S(i);)i++;let f=o-1;if(l==="b"||l==="fb")for(;f>=i&&S(f);)f--;if(i>f)return z.zeros([0],n);const a=f-i+1;if(g){const e=z.zeros([a],n),b=e.data;for(let y=0;y<a;y++)b[y*2]=u[(c+i+y)*2],b[y*2+1]=u[(c+i+y)*2+1];return e}const d=z.zeros([a],n),p=d.data;for(let e=0;e<a;e++)p[e]=u[c+i+e];return d}function ne(r){const n=$(r,!0,!0,!0);return{values:n.values,indices:n.indices,inverse_indices:n.inverse,counts:n.counts}}function ae(r){const n=$(r,!1,!1,!0);return{values:n.values,counts:n.counts}}function oe(r){const n=$(r,!1,!0,!1);return{values:n.values,inverse_indices:n.inverse}}function ie(r){return $(r)}export{X as in1d,Y as intersect1d,P as isin,ee as setdiff1d,te as setxor1d,se as trim_zeros,re as union1d,$ as unique,ne as unique_all,ae as unique_counts,oe as unique_inverse,ie as unique_values};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ArrayStorage as x,computeStrides as T}from"../storage";import{getTypedArrayConstructor as U,isBigIntDType as R}from"../dtype";function C(r,t){const n=r.size,e=r.dtype,o=t.indexOf(-1);let s;if(o!==-1){const i=t.reduce((l,m,y)=>y===o?l:l*m,1),p=n/i;if(!Number.isInteger(p))throw new Error(`cannot reshape array of size ${n} into shape ${JSON.stringify(t)}`);s=t.map((l,m)=>m===o?p:l)}else s=t;if(s.reduce((i,p)=>i*p,1)!==n)throw new Error(`cannot reshape array of size ${n} into shape ${JSON.stringify(s)}`);if(r.isCContiguous){const i=r.data;return x.fromData(i,s,e,T(s),0)}const u=r.copy().data;return x.fromData(u,s,e,T(s),0)}function q(r){const t=r.size,n=r.dtype,e=U(n);if(!e)throw new Error(`Cannot flatten array with dtype ${n}`);if(r.isCContiguous){const a=r.data.slice(r.offset,r.offset+t);return x.fromData(a,[t],n,[1],0)}const o=new e(t),s=R(n);for(let c=0;c<t;c++){const a=r.iget(c);o[c]=a}return x.fromData(o,[t],n,[1],0)}function L(r){const t=r.size,n=r.dtype;if(r.isCContiguous){const e=r.data;return x.fromData(e,[t],n,[1],0)}return q(r)}function N(r,t){const n=r.shape,e=n.length,o=r.strides,s=r.data,c=r.dtype;let a;if(t===void 0)a=Array.from({length:e},(l,m)=>e-1-m);else{if(t.length!==e)throw new Error(`axes must have length ${e}, got ${t.length}`);const l=new Set;for(const m of t){const y=m<0?e+m:m;if(y<0||y>=e)throw new Error(`axis ${m} is out of bounds for array of dimension ${e}`);if(l.has(y))throw new Error("repeated axis in transpose");l.add(y)}a=t.map(m=>m<0?e+m:m)}const u=a.map(l=>n[l]),i=Array.from(o),p=a.map(l=>i[l]);return x.fromData(s,u,c,p,r.offset)}function _(r,t){const n=r.shape,e=n.length,o=r.strides,s=r.data,c=r.dtype;if(t===void 0){const a=[],u=[];for(let i=0;i<e;i++)n[i]!==1&&(a.push(n[i]),u.push(o[i]));return a.length===0&&(a.push(1),u.push(1)),x.fromData(s,a,c,u,r.offset)}else{const a=t<0?e+t:t;if(a<0||a>=e)throw new Error(`axis ${t} is out of bounds for array of dimension ${e}`);if(n[a]!==1)throw new Error(`cannot select an axis which has size not equal to one (axis ${t} has size ${n[a]})`);const u=[],i=[];for(let p=0;p<e;p++)p!==a&&(u.push(n[p]),i.push(o[p]));return x.fromData(s,u,c,i,r.offset)}}function k(r,t){const n=r.shape,e=n.length,o=r.strides,s=r.data,c=r.dtype;let a=t;if(a<0&&(a=e+t+1),a<0||a>e)throw new Error(`axis ${t} is out of bounds for array of dimension ${e+1}`);const u=[...Array.from(n)];u.splice(a,0,1);const i=[...Array.from(o)],p=a<e?o[a]*(n[a]||1):1;return i.splice(a,0,p),x.fromData(s,u,c,i,r.offset)}function Q(r,t,n){const e=r.shape,o=e.length,s=r.strides,c=r.data,a=r.dtype;let u=t<0?o+t:t,i=n<0?o+n:n;if(u<0||u>=o)throw new Error(`axis1 ${t} is out of bounds for array of dimension ${o}`);if(i<0||i>=o)throw new Error(`axis2 ${n} is out of bounds for array of dimension ${o}`);if(u===i)return x.fromData(c,Array.from(e),a,Array.from(s),r.offset);const p=Array.from(e),l=Array.from(s);return[p[u],p[i]]=[p[i],p[u]],[l[u],l[i]]=[l[i],l[u]],x.fromData(c,p,a,l,r.offset)}function F(r,t,n){const e=r.ndim,o=Array.isArray(t)?t:[t],s=Array.isArray(n)?n:[n];if(o.length!==s.length)throw new Error("source and destination must have the same number of elements");const c=o.map(i=>{const p=i<0?e+i:i;if(p<0||p>=e)throw new Error(`source axis ${i} is out of bounds for array of dimension ${e}`);return p}),a=s.map(i=>{const p=i<0?e+i:i;if(p<0||p>=e)throw new Error(`destination axis ${i} is out of bounds for array of dimension ${e}`);return p});if(new Set(c).size!==c.length)throw new Error("repeated axis in source");if(new Set(a).size!==a.length)throw new Error("repeated axis in destination");const u=[];for(let i=0;i<e;i++)c.includes(i)||u.push(i);for(let i=0;i<c.length;i++){const p=a[i];u.splice(p,0,c[i])}return N(r,u)}function v(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();const n=r[0],e=n.ndim,o=n.dtype,s=t<0?e+t:t;if(s<0||s>=e)throw new Error(`axis ${t} is out of bounds for array of dimension ${e}`);for(let y=1;y<r.length;y++){const h=r[y];if(h.ndim!==e)throw new Error("all the input arrays must have same number of dimensions");for(let A=0;A<e;A++)if(A!==s&&h.shape[A]!==n.shape[A])throw new Error("all the input array dimensions except for the concatenation axis must match exactly")}const c=Array.from(n.shape);let a=n.shape[s];for(let y=1;y<r.length;y++)a+=r[y].shape[s];c[s]=a;const u=c.reduce((y,h)=>y*h,1),i=U(o);if(!i)throw new Error(`Cannot concatenate arrays with dtype ${o}`);const p=new i(u),l=T(c);let m=0;for(const y of r){const h=y.shape[s];J(y,p,c,l,s,m,o),m+=h}return x.fromData(p,c,o)}function J(r,t,n,e,o,s,c){const a=r.shape,u=a.length,i=r.size,p=c==="int64"||c==="uint64";if(o===0&&r.isCContiguous&&u>0){const y=s*e[0],h=r.data,A=r.offset,w=A+i;t.set(h.subarray(A,w),y);return}if(o===1&&u===2&&r.isCContiguous){const y=a[0],h=a[1],A=n[1],w=r.data,I=r.offset;for(let f=0;f<y;f++){const d=I+f*h,E=f*A+s;t.set(w.subarray(d,d+h),E)}return}const l=new Array(u).fill(0),m=s*e[o];for(let y=0;y<i;y++){const h=r.iget(y);let A=m;for(let w=0;w<u;w++)A+=l[w]*e[w];t[A]=h;for(let w=u-1;w>=0&&(l[w]++,!(l[w]<a[w]));w--)l[w]=0}}function V(r,t=0){if(r.length===0)throw new Error("need at least one array to stack");const n=r[0],e=n.shape,o=n.ndim,s=t<0?o+1+t:t;if(s<0||s>o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o+1}`);for(let a=1;a<r.length;a++){const u=r[a];if(u.ndim!==o)throw new Error("all input arrays must have the same shape");for(let i=0;i<o;i++)if(u.shape[i]!==e[i])throw new Error("all input arrays must have the same shape")}const c=r.map(a=>k(a,s));return v(c,s)}function j(r){if(r.length===0)throw new Error("need at least one array to stack");const t=r.map(n=>n.ndim===1?C(n,[1,n.shape[0]]):n);return v(t,0)}function P(r){if(r.length===0)throw new Error("need at least one array to stack");return r.every(n=>n.ndim===1)?v(r,0):v(r,1)}function W(r){if(r.length===0)throw new Error("need at least one array to stack");const t=r.map(n=>n.ndim===1?C(k(C(n,[1,n.shape[0]]),2),[1,n.shape[0],1]):n.ndim===2?k(n,2):n);return v(t,2)}function X(r,t,n=0){const e=r.shape,o=e.length,s=n<0?o+n:n;if(s<0||s>=o)throw new Error(`axis ${n} is out of bounds for array of dimension ${o}`);const c=e[s];let a;if(typeof t=="number"){if(c%t!==0)throw new Error("array split does not result in an equal division");const u=c/t;a=[];for(let i=1;i<t;i++)a.push(i*u)}else a=t;return M(r,a,s)}function O(r,t,n=0){const e=r.shape,o=e.length,s=n<0?o+n:n;if(s<0||s>=o)throw new Error(`axis ${n} is out of bounds for array of dimension ${o}`);const c=e[s];let a;if(typeof t=="number"){const u=t,i=Math.floor(c/u),p=c%u;a=[];let l=0;for(let m=0;m<u-1;m++)l+=i+(m<p?1:0),a.push(l)}else a=t;return M(r,a,s)}function M(r,t,n){const e=r.shape,o=e[n],s=[0,...t,o],c=[];for(let a=0;a<s.length-1;a++){const u=s[a],i=s[a+1];if(u>i)throw new Error("split indices must be in ascending order");const p=Array.from(e);p[n]=i-u;const l=r.offset+u*r.strides[n];c.push(x.fromData(r.data,p,r.dtype,Array.from(r.strides),l))}return c}function Y(r,t){if(r.ndim<2)throw new Error("vsplit only works on arrays of 2 or more dimensions");return O(r,t,0)}function Z(r,t){if(r.ndim<1)throw new Error("hsplit only works on arrays of 1 or more dimensions");const n=r.ndim===1?0:1;return O(r,t,n)}function rr(r,t){const n=r.shape,e=n.length,o=r.dtype,s=Array.isArray(t)?t:[t],c=Math.max(e,s.length),a=new Array(c).fill(1),u=new Array(c).fill(1);for(let f=0;f<e;f++)a[c-e+f]=n[f];for(let f=0;f<s.length;f++)u[c-s.length+f]=s[f];const i=a.map((f,d)=>f*u[d]),p=i.reduce((f,d)=>f*d,1),l=U(o);if(!l)throw new Error(`Cannot tile array with dtype ${o}`);const m=new l(p),y=T(i);let h=r;e<c&&(h=C(r,a));const A=o==="int64"||o==="uint64",w=h.strides,I=new Array(c).fill(0);for(let f=0;f<p;f++){let d=h.offset;for(let g=0;g<c;g++){const b=I[g]%a[g];d+=b*w[g]}const E=h.data[d];let z=0;for(let g=0;g<c;g++)z+=I[g]*y[g];m[z]=E;for(let g=c-1;g>=0&&(I[g]++,!(I[g]<i[g]));g--)I[g]=0}return x.fromData(m,i,o)}function tr(r,t,n){const e=r.shape,o=e.length,s=r.dtype,c=r.size;if(n===void 0){const f=c,d=Array.isArray(t)?t:new Array(f).fill(t);if(d.length!==f)throw new Error(`operands could not be broadcast together with shape (${f},) (${d.length},)`);const E=d.reduce((B,S)=>B+S,0),z=U(s);if(!z)throw new Error(`Cannot repeat array with dtype ${s}`);const g=new z(E);let b=0;for(let B=0;B<f;B++){const S=r.iget(B),$=d[B];for(let D=0;D<$;D++)g[b++]=S}return x.fromData(g,[E],s)}const a=n<0?o+n:n;if(a<0||a>=o)throw new Error(`axis ${n} is out of bounds for array of dimension ${o}`);const u=e[a],i=Array.isArray(t)?t:new Array(u).fill(t);if(i.length!==u)throw new Error(`operands could not be broadcast together with shape (${u},) (${i.length},)`);const p=Array.from(e);p[a]=i.reduce((f,d)=>f+d,0);const l=p.reduce((f,d)=>f*d,1),m=U(s);if(!m)throw new Error(`Cannot repeat array with dtype ${s}`);const y=new m(l),h=T(p),A=new Array(o).fill(0),w=s==="int64"||s==="uint64",I=[0];for(let f=0;f<u;f++)I.push(I[f]+i[f]);for(let f=0;f<c;f++){const d=r.iget(f),E=A[a],z=i[E];let g=0;for(let S=0;S<o;S++)S!==a&&(g+=A[S]*h[S]);const b=h[a],B=I[E];for(let S=0;S<z;S++){const $=g+(B+S)*b;y[$]=d}for(let S=o-1;S>=0&&(A[S]++,!(A[S]<e[S]));S--)A[S]=0}return x.fromData(y,p,s)}function nr(r,t){const n=r.shape,e=n.length,o=r.dtype,s=r.size;let c;if(t===void 0)c=new Set(Array.from({length:e},(m,y)=>y));else if(typeof t=="number"){const m=t<0?e+t:t;if(m<0||m>=e)throw new Error(`axis ${t} is out of bounds for array of dimension ${e}`);c=new Set([m])}else c=new Set(t.map(m=>{const y=m<0?e+m:m;if(y<0||y>=e)throw new Error(`axis ${m} is out of bounds for array of dimension ${e}`);return y}));const a=U(o);if(!a)throw new Error(`Cannot flip array with dtype ${o}`);const u=new a(s),i=R(o);if(e===1&&r.isCContiguous){const m=r.data,y=r.offset;for(let h=0;h<s;h++)u[h]=m[y+s-1-h];return x.fromData(u,[...n],o)}if(e===2&&r.isCContiguous){const m=n[0],y=n[1],h=r.data,A=r.offset;if(c.size===2){for(let w=0;w<s;w++)u[w]=h[A+s-1-w];return x.fromData(u,[...n],o)}if(c.size===1){if(c.has(0)){for(let w=0;w<m;w++){const I=A+(m-1-w)*y,f=w*y;for(let d=0;d<y;d++)u[f+d]=h[I+d]}return x.fromData(u,[...n],o)}else if(c.has(1)){for(let w=0;w<m;w++){const I=A+w*y,f=w*y;for(let d=0;d<y;d++)u[f+d]=h[I+y-1-d]}return x.fromData(u,[...n],o)}}}const p=new Array(e),l=new Array(e).fill(0);for(let m=0;m<s;m++){for(let A=0;A<e;A++)p[A]=c.has(A)?n[A]-1-l[A]:l[A];let y=r.offset;for(let A=0;A<e;A++)y+=p[A]*r.strides[A];const h=r.data[y];u[m]=h;for(let A=e-1;A>=0&&(l[A]++,!(l[A]<n[A]));A--)l[A]=0}return x.fromData(u,[...n],o)}function er(r,t=1,n=[0,1]){const e=r.shape,o=e.length,s=r.dtype;if(o<2)throw new Error("Input must be at least 2-D");const c=n[0]<0?o+n[0]:n[0],a=n[1]<0?o+n[1]:n[1];if(c<0||c>=o||a<0||a>=o)throw new Error(`Axes are out of bounds for array of dimension ${o}`);if(c===a)throw new Error("Axes must be different");if(t=(t%4+4)%4,t===0)return r.copy();const u=U(s);if(!u)throw new Error(`Cannot rotate array with dtype ${s}`);const i=[...e];(t===1||t===3)&&([i[c],i[a]]=[i[a],i[c]]);const p=i.reduce((f,d)=>f*d,1),l=new u(p),m=R(s),y=r.data;if(o===2&&c===0&&a===1){const f=e[0],d=e[1];if(t===1){const E=d,z=f;if(m){const g=y,b=l;for(let B=0;B<E;B++){const S=B*z,$=d-1-B;for(let D=0;D<z;D++)b[S+D]=g[D*d+$]}}else{const g=y,b=l;for(let B=0;B<E;B++){const S=B*z,$=d-1-B;for(let D=0;D<z;D++)b[S+D]=g[D*d+$]}}}else if(t===2)if(m){const E=y,z=l;for(let g=0;g<f;g++){const b=g*d,B=(f-1-g)*d;for(let S=0;S<d;S++)z[b+S]=E[B+(d-1-S)]}}else{const E=y,z=l;for(let g=0;g<f;g++){const b=g*d,B=(f-1-g)*d;for(let S=0;S<d;S++)z[b+S]=E[B+(d-1-S)]}}else{const E=d,z=f;if(m){const g=y,b=l;for(let B=0;B<E;B++){const S=B*z;for(let $=0;$<z;$++)b[S+$]=g[(f-1-$)*d+B]}}else{const g=y,b=l;for(let B=0;B<E;B++){const S=B*z;for(let $=0;$<z;$++)b[S+$]=g[(f-1-$)*d+B]}}}return x.fromData(l,i,s)}const h=T(i),A=T(e),w=new Array(o).fill(0),I=new Array(o);for(let f=0;f<r.size;f++){for(let b=0;b<o;b++)I[b]=w[b];let d,E;t===1?(d=e[a]-1-w[a],E=w[c]):t===2?(d=e[c]-1-w[c],E=e[a]-1-w[a],I[c]=d,I[a]=E):(d=w[a],E=e[c]-1-w[c]),t!==2&&(I[c]=d,I[a]=E);let z=0;for(let b=0;b<o;b++)z+=I[b]*h[b];let g=0;for(let b=0;b<o;b++)g+=w[b]*A[b];if(m){const b=y,B=l;B[z]=b[g]}else{const b=y,B=l;B[z]=b[g]}for(let b=o-1;b>=0&&(w[b]++,!(w[b]<e[b]));b--)w[b]=0}return x.fromData(l,i,s)}function or(r,t,n){const e=r.shape,o=e.length,s=r.dtype,c=r.size;if(n===void 0){const h=Array.isArray(t)?t.reduce((d,E)=>d+E,0):t,A=q(r),w=U(s);if(!w)throw new Error(`Cannot roll array with dtype ${s}`);const I=new w(c),f=R(s);for(let d=0;d<c;d++){const E=((d-h)%c+c)%c,z=A.iget(E);I[d]=z}return x.fromData(I,[...e],s)}const a=Array.isArray(t)?t:[t],u=Array.isArray(n)?n:[n];if(a.length!==u.length)throw new Error("shift and axis must have the same length");const i=u.map(h=>{const A=h<0?o+h:h;if(A<0||A>=o)throw new Error(`axis ${h} is out of bounds for array of dimension ${o}`);return A}),p=U(s);if(!p)throw new Error(`Cannot roll array with dtype ${s}`);const l=new p(c),m=R(s),y=new Array(o).fill(0);for(let h=0;h<c;h++){const A=[...y];for(let f=0;f<i.length;f++){const d=i[f],E=e[d],z=a[f];A[d]=((A[d]-z)%E+E)%E}let w=r.offset;for(let f=0;f<o;f++)w+=A[f]*r.strides[f];const I=r.data[w];l[h]=I;for(let f=o-1;f>=0&&(y[f]++,!(y[f]<e[f]));f--)y[f]=0}return x.fromData(l,[...e],s)}function ar(r,t,n=0){const e=r.ndim;let o=t<0?e+t:t;if(o<0||o>=e)throw new Error(`axis ${t} is out of bounds for array of dimension ${e}`);let s=n<0?e+n:n;if(s<0||s>e)throw new Error(`start ${n} is out of bounds`);return o<s&&s--,o===s?x.fromData(r.data,Array.from(r.shape),r.dtype,Array.from(r.strides),r.offset):F(r,o,s)}function sr(r,t){if(r.ndim<3)throw new Error("dsplit only works on arrays of 3 or more dimensions");return O(r,t,2)}function ir(r){if(r.length===0)throw new Error("need at least one array to stack");const t=r.map(n=>n.ndim===1?C(n,[n.shape[0],1]):n);return P(t)}const cr=j;function ur(r,t){const n=r.dtype,e=t.reduce((u,i)=>u*i,1),o=r.size,s=U(n);if(!s)throw new Error(`Cannot resize array with dtype ${n}`);const c=new s(e),a=R(n);for(let u=0;u<e;u++){const i=u%o,p=r.iget(i);c[u]=p}return x.fromData(c,t,n)}function fr(r){return r.map(t=>t.ndim===0?C(t,[1]):t)}function dr(r){return r.map(t=>t.ndim===0?C(t,[1,1]):t.ndim===1?C(t,[1,t.shape[0]]):t)}function yr(r){return r.map(t=>t.ndim===0?C(t,[1,1,1]):t.ndim===1?C(t,[1,t.shape[0],1]):t.ndim===2?C(t,[t.shape[0],t.shape[1],1]):t)}function lr(r,t=0){return v(r,t)}function pr(r,t=0){const n=r.shape,e=n.length,o=t<0?e+t:t;if(o<0||o>=e)throw new Error(`axis ${t} is out of bounds for array of dimension ${e}`);const s=n[o],c=[];for(let a=0;a<s;a++){const u=[];for(let l=0;l<e;l++)l===o?u.push({start:a,stop:a+1,step:1}):u.push({start:0,stop:n[l],step:1});const i=G(r,u),p=_(i,o);c.push(p)}return c}function mr(r,t=1){if(r.length===0)throw new Error("need at least one array to block");return r.length===1?r[0].copy():v(r,-1)}function G(r,t){const n=r.shape,e=r.strides;let o=r.offset;const s=r.dtype,c=r.data,a=[],u=[];for(let i=0;i<n.length;i++){const p=t[i],{start:l,stop:m,step:y}=p,h=Math.ceil((m-l)/y);a.push(h),u.push(e[i]*y),o+=l*e[i]}return x.fromData(c,a,s,u,o)}export{O as arraySplit,fr as atleast1d,dr as atleast2d,yr as atleast3d,mr as block,ir as columnStack,lr as concat,v as concatenate,sr as dsplit,W as dstack,k as expandDims,q as flatten,nr as flip,Z as hsplit,P as hstack,F as moveaxis,L as ravel,tr as repeat,C as reshape,ur as resize,or as roll,ar as rollaxis,er as rot90,cr as rowStack,X as split,_ as squeeze,V as stack,Q as swapaxes,rr as tile,N as transpose,pr as unstack,Y as vsplit,j as vstack};
|
|
1
|
+
import{ArrayStorage as z,computeStrides as T}from"../storage";import{getTypedArrayConstructor as U,isBigIntDType as v,isComplexDType as F}from"../dtype";import{wasmFlip as M}from"../wasm/flip";import{wasmTile2D as q}from"../wasm/tile";import{wasmRoll as j}from"../wasm/roll";import{wasmRot90 as K}from"../wasm/rot90";import{wasmRepeat as P}from"../wasm/repeat";import{parseSlice as N,normalizeSlice as _}from"../slicing";function sr(r,...t){if(t.length===0)return r;if(t.length>r.ndim)throw new Error(`Too many indices for array: array is ${r.ndim}-dimensional, but ${t.length} were indexed`);const n=t.map((f,a)=>{const u=N(f);return _(u,r.shape[a])});for(;n.length<r.ndim;)n.push({start:0,stop:r.shape[n.length],step:1,isIndex:!1});const e=[],s=[];let i=r.offset;for(let f=0;f<n.length;f++){const a=n[f];if(i+=a.start*r.strides[f],a.isIndex)continue;const u=Math.max(0,Math.ceil((a.stop-a.start)/a.step));e.push(u),s.push(r.strides[f]*a.step)}return z.fromData(r.data,e,r.dtype,s,i)}function fr(r,...t){if(t.length===0)return r;if(t.length>r.ndim)throw new Error(`Too many indices for array: array is ${r.ndim}-dimensional, but ${t.length} were indexed`);const n=t.map((f,a)=>{const u=N(f);return _(u,r.shape[a])});for(;n.length<r.ndim;)n.push({start:0,stop:r.shape[n.length],step:1,isIndex:!1});const e=[],s=[];let i=r.offset;for(let f=0;f<n.length;f++){const a=n[f];i+=a.start*r.strides[f];const u=a.isIndex?1:Math.max(0,Math.ceil((a.stop-a.start)/a.step));e.push(u),s.push(r.strides[f]*a.step)}return z.fromData(r.data,e,r.dtype,s,i)}function D(r,t){const n=r.size,e=r.dtype,s=t.indexOf(-1);let i;if(s!==-1){const o=t.reduce((h,y,l)=>l===s?h:h*y,1),m=n/o;if(!Number.isInteger(m))throw new Error(`cannot reshape array of size ${n} into shape ${JSON.stringify(t)}`);i=t.map((h,y)=>y===s?m:h)}else i=t;if(i.reduce((o,m)=>o*m,1)!==n)throw new Error(`cannot reshape array of size ${n} into shape ${JSON.stringify(i)}`);if(r.isCContiguous){const o=r.data;return z.fromData(o,i,e,T(i),0)}const u=r.copy().data;return z.fromData(u,i,e,T(i),0)}function J(r){const t=r.size,n=r.dtype,e=U(n);if(!e)throw new Error(`Cannot flatten array with dtype ${n}`);const s=F(n),i=s?t*2:t;if(r.isCContiguous){const u=r.data,o=s?r.offset*2:r.offset,m=u.slice(o,o+i);return z.fromData(m,[t],n,[1],0)}const f=new e(i),a=v(n);if(s)for(let u=0;u<t;u++){const o=r.iget(u);f[u*2]=o.re,f[u*2+1]=o.im}else for(let u=0;u<t;u++){const o=r.iget(u);f[u]=o}return z.fromData(f,[t],n,[1],0)}function ur(r){const t=r.size,n=r.dtype;if(r.isCContiguous){const e=r.data;return z.fromData(e,[t],n,[1],0)}return J(r)}function G(r,t){const n=r.shape,e=n.length,s=r.strides,i=r.data,f=r.dtype;let a;if(t===void 0)a=Array.from({length:e},(h,y)=>e-1-y);else{if(t.length!==e)throw new Error(`axes must have length ${e}, got ${t.length}`);const h=new Set;for(const y of t){const l=y<0?e+y:y;if(l<0||l>=e)throw new Error(`axis ${y} is out of bounds for array of dimension ${e}`);if(h.has(l))throw new Error("repeated axis in transpose");h.add(l)}a=t.map(y=>y<0?e+y:y)}const u=a.map(h=>n[h]),o=Array.from(s),m=a.map(h=>o[h]);return z.fromData(i,u,f,m,r.offset)}function cr(r,t){const n=r.shape,e=n.length,s=r.strides,i=r.data,f=r.dtype;if(t===void 0){const a=[],u=[];for(let o=0;o<e;o++)n[o]!==1&&(a.push(n[o]),u.push(s[o]));return z.fromData(i,a,f,u,r.offset)}else{const a=t<0?e+t:t;if(a<0||a>=e)throw new Error(`axis ${t} is out of bounds for array of dimension ${e}`);if(n[a]!==1)throw new Error(`cannot select an axis which has size not equal to one (axis ${t} has size ${n[a]})`);const u=[],o=[];for(let m=0;m<e;m++)m!==a&&(u.push(n[m]),o.push(s[m]));return z.fromData(i,u,f,o,r.offset)}}function O(r,t){const n=r.shape,e=n.length,s=r.strides,i=r.data,f=r.dtype;let a=t;if(a<0&&(a=e+t+1),a<0||a>e)throw new Error(`axis ${t} is out of bounds for array of dimension ${e+1}`);const u=[...Array.from(n)];u.splice(a,0,1);const o=[...Array.from(s)],m=a<e?s[a]*(n[a]||1):1;return o.splice(a,0,m),z.fromData(i,u,f,o,r.offset)}function dr(r,t,n){const e=r.shape,s=e.length,i=r.strides,f=r.data,a=r.dtype;let u=t<0?s+t:t,o=n<0?s+n:n;if(u<0||u>=s)throw new Error(`axis1 ${t} is out of bounds for array of dimension ${s}`);if(o<0||o>=s)throw new Error(`axis2 ${n} is out of bounds for array of dimension ${s}`);if(u===o)return z.fromData(f,Array.from(e),a,Array.from(i),r.offset);const m=Array.from(e),h=Array.from(i);return[m[u],m[o]]=[m[o],m[u]],[h[u],h[o]]=[h[o],h[u]],z.fromData(f,m,a,h,r.offset)}function H(r,t,n){const e=r.ndim,s=Array.isArray(t)?t:[t],i=Array.isArray(n)?n:[n];if(s.length!==i.length)throw new Error("source and destination must have the same number of elements");const f=s.map(o=>{const m=o<0?e+o:o;if(m<0||m>=e)throw new Error(`source axis ${o} is out of bounds for array of dimension ${e}`);return m}),a=i.map(o=>{const m=o<0?e+o:o;if(m<0||m>=e)throw new Error(`destination axis ${o} is out of bounds for array of dimension ${e}`);return m});if(new Set(f).size!==f.length)throw new Error("repeated axis in source");if(new Set(a).size!==a.length)throw new Error("repeated axis in destination");const u=[];for(let o=0;o<e;o++)f.includes(o)||u.push(o);for(let o=0;o<f.length;o++){const m=a[o];u.splice(m,0,f[o])}return G(r,u)}function R(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();const n=r[0],e=n.ndim,s=n.dtype,i=t<0?e+t:t;if(i<0||i>=e)throw new Error(`axis ${t} is out of bounds for array of dimension ${e}`);for(let l=1;l<r.length;l++){const p=r[l];if(p.ndim!==e)throw new Error("all the input arrays must have same number of dimensions");for(let A=0;A<e;A++)if(A!==i&&p.shape[A]!==n.shape[A])throw new Error("all the input array dimensions except for the concatenation axis must match exactly")}const f=Array.from(n.shape);let a=n.shape[i];for(let l=1;l<r.length;l++)a+=r[l].shape[i];f[i]=a;const u=f.reduce((l,p)=>l*p,1),o=U(s);if(!o)throw new Error(`Cannot concatenate arrays with dtype ${s}`);const m=new o(u),h=T(f);let y=0;for(const l of r){const p=l.shape[i];Q(l,m,f,h,i,y,s),y+=p}return z.fromData(m,f,s)}function Q(r,t,n,e,s,i,f){const a=r.shape,u=a.length,o=r.size,m=f==="int64"||f==="uint64";if(s===0&&r.isCContiguous&&u>0){const l=i*e[0],p=r.data,A=r.offset,w=A+o;t.set(p.subarray(A,w),l);return}if(s===1&&u===2&&r.isCContiguous){const l=a[0],p=a[1],A=n[1],w=r.data,E=r.offset;for(let c=0;c<l;c++){const d=E+c*p,x=c*A+i;t.set(w.subarray(d,d+p),x)}return}const h=new Array(u).fill(0),y=i*e[s];for(let l=0;l<o;l++){const p=r.iget(l);let A=y;for(let w=0;w<u;w++)A+=h[w]*e[w];t[A]=p;for(let w=u-1;w>=0&&(h[w]++,!(h[w]<a[w]));w--)h[w]=0}}function lr(r,t=0){if(r.length===0)throw new Error("need at least one array to stack");const n=r[0],e=n.shape,s=n.ndim,i=t<0?s+1+t:t;if(i<0||i>s)throw new Error(`axis ${t} is out of bounds for array of dimension ${s+1}`);for(let a=1;a<r.length;a++){const u=r[a];if(u.ndim!==s)throw new Error("all input arrays must have the same shape");for(let o=0;o<s;o++)if(u.shape[o]!==e[o])throw new Error("all input arrays must have the same shape")}const f=r.map(a=>O(a,i));return R(f,i)}function V(r){if(r.length===0)throw new Error("need at least one array to stack");const t=r.map(n=>n.ndim===1?D(n,[1,n.shape[0]]):n);return R(t,0)}function W(r){if(r.length===0)throw new Error("need at least one array to stack");return r.every(n=>n.ndim===1)?R(r,0):R(r,1)}function yr(r){if(r.length===0)throw new Error("need at least one array to stack");const t=r.map(n=>n.ndim===1?D(O(D(n,[1,n.shape[0]]),2),[1,n.shape[0],1]):n.ndim===2?O(n,2):n);return R(t,2)}function pr(r,t,n=0){const e=r.shape,s=e.length,i=n<0?s+n:n;if(i<0||i>=s)throw new Error(`axis ${n} is out of bounds for array of dimension ${s}`);const f=e[i];let a;if(typeof t=="number"){if(f%t!==0)throw new Error("array split does not result in an equal division");const u=f/t;a=[];for(let o=1;o<t;o++)a.push(o*u)}else a=t;return L(r,a,i)}function k(r,t,n=0){const e=r.shape,s=e.length,i=n<0?s+n:n;if(i<0||i>=s)throw new Error(`axis ${n} is out of bounds for array of dimension ${s}`);const f=e[i];let a;if(typeof t=="number"){const u=t,o=Math.floor(f/u),m=f%u;a=[];let h=0;for(let y=0;y<u-1;y++)h+=o+(y<m?1:0),a.push(h)}else a=t;return L(r,a,i)}function L(r,t,n){const e=r.shape,s=e[n],i=[0,...t,s],f=[];for(let a=0;a<i.length-1;a++){const u=i[a],o=i[a+1];if(u>o)throw new Error("split indices must be in ascending order");const m=Array.from(e);m[n]=o-u;const h=r.offset+u*r.strides[n];f.push(z.fromData(r.data,m,r.dtype,Array.from(r.strides),h))}return f}function mr(r,t){if(r.ndim<2)throw new Error("vsplit only works on arrays of 2 or more dimensions");return k(r,t,0)}function hr(r,t){if(r.ndim<1)throw new Error("hsplit only works on arrays of 1 or more dimensions");const n=r.ndim===1?0:1;return k(r,t,n)}function Ar(r,t){const n=r.shape,e=n.length,s=r.dtype,i=Array.isArray(t)?t:[t];if(e===2&&i.length===2&&r.isCContiguous){const c=q(r,i[0],i[1]);if(c)return c}if(e===1&&i.length===1&&r.isCContiguous){const c=q(r,1,i[0]);if(c)return z.fromData(c.data,[r.size*i[0]],r.dtype)}const f=Math.max(e,i.length),a=new Array(f).fill(1),u=new Array(f).fill(1);for(let c=0;c<e;c++)a[f-e+c]=n[c];for(let c=0;c<i.length;c++)u[f-i.length+c]=i[c];const o=a.map((c,d)=>c*u[d]),m=o.reduce((c,d)=>c*d,1),h=U(s);if(!h)throw new Error(`Cannot tile array with dtype ${s}`);const y=new h(m),l=T(o);let p=r;e<f&&(p=D(r,a));const A=s==="int64"||s==="uint64",w=p.strides,E=new Array(f).fill(0);for(let c=0;c<m;c++){let d=p.offset;for(let b=0;b<f;b++){const S=E[b]%a[b];d+=S*w[b]}const x=p.data[d];let I=0;for(let b=0;b<f;b++)I+=E[b]*l[b];y[I]=x;for(let b=f-1;b>=0&&(E[b]++,!(E[b]<o[b]));b--)E[b]=0}return z.fromData(y,o,s)}function wr(r,t,n){const e=r.shape,s=e.length,i=r.dtype,f=r.size;if(n===void 0){if(typeof t=="number"&&r.isCContiguous){const g=P(r,t);if(g)return g}const c=f,d=Array.isArray(t)?t:new Array(c).fill(t);if(d.length!==c)throw new Error(`operands could not be broadcast together with shape (${c},) (${d.length},)`);const x=d.reduce((g,B)=>g+B,0),I=U(i);if(!I)throw new Error(`Cannot repeat array with dtype ${i}`);const b=new I(x);let S=0;for(let g=0;g<c;g++){const B=r.iget(g),C=d[g];for(let $=0;$<C;$++)b[S++]=B}return z.fromData(b,[x],i)}const a=n<0?s+n:n;if(a<0||a>=s)throw new Error(`axis ${n} is out of bounds for array of dimension ${s}`);const u=e[a],o=Array.isArray(t)?t:new Array(u).fill(t);if(o.length!==u)throw new Error(`operands could not be broadcast together with shape (${u},) (${o.length},)`);const m=Array.from(e);m[a]=o.reduce((c,d)=>c+d,0);const h=m.reduce((c,d)=>c*d,1),y=U(i);if(!y)throw new Error(`Cannot repeat array with dtype ${i}`);const l=new y(h),p=T(m),A=new Array(s).fill(0),w=i==="int64"||i==="uint64",E=[0];for(let c=0;c<u;c++)E.push(E[c]+o[c]);for(let c=0;c<f;c++){const d=r.iget(c),x=A[a],I=o[x];let b=0;for(let B=0;B<s;B++)B!==a&&(b+=A[B]*p[B]);const S=p[a],g=E[x];for(let B=0;B<I;B++){const C=b+(g+B)*S;l[C]=d}for(let B=s-1;B>=0&&(A[B]++,!(A[B]<e[B]));B--)A[B]=0}return z.fromData(l,m,i)}function br(r,t){const n=r.shape,e=n.length,s=r.dtype,i=r.size;let f;if(t===void 0)f=new Set(Array.from({length:e},(y,l)=>l));else if(typeof t=="number"){const y=t<0?e+t:t;if(y<0||y>=e)throw new Error(`axis ${t} is out of bounds for array of dimension ${e}`);f=new Set([y])}else f=new Set(t.map(y=>{const l=y<0?e+y:y;if(l<0||l>=e)throw new Error(`axis ${y} is out of bounds for array of dimension ${e}`);return l}));const a=U(s);if(!a)throw new Error(`Cannot flip array with dtype ${s}`);const u=v(s);if(f.size===e&&r.isCContiguous&&!F(s)){const y=M(r);if(y)return y}const o=new a(i);if(e===1&&r.isCContiguous){const y=r.data,l=r.offset;for(let p=0;p<i;p++)o[p]=y[l+i-1-p];return z.fromData(o,[...n],s)}if(e===2&&r.isCContiguous){const y=n[0],l=n[1],p=r.data,A=r.offset;if(f.size===2){for(let w=0;w<i;w++)o[w]=p[A+i-1-w];return z.fromData(o,[...n],s)}if(f.size===1){if(f.has(0)){for(let w=0;w<y;w++){const E=A+(y-1-w)*l,c=w*l;for(let d=0;d<l;d++)o[c+d]=p[E+d]}return z.fromData(o,[...n],s)}else if(f.has(1)){for(let w=0;w<y;w++){const E=A+w*l,c=w*l;for(let d=0;d<l;d++)o[c+d]=p[E+l-1-d]}return z.fromData(o,[...n],s)}}}const m=new Array(e),h=new Array(e).fill(0);for(let y=0;y<i;y++){for(let A=0;A<e;A++)m[A]=f.has(A)?n[A]-1-h[A]:h[A];let l=r.offset;for(let A=0;A<e;A++)l+=m[A]*r.strides[A];const p=r.data[l];o[y]=p;for(let A=e-1;A>=0&&(h[A]++,!(h[A]<n[A]));A--)h[A]=0}return z.fromData(o,[...n],s)}function Sr(r,t=1,n=[0,1]){const e=r.shape,s=e.length,i=r.dtype;if(s<2)throw new Error("Input must be at least 2-D");const f=n[0]<0?s+n[0]:n[0],a=n[1]<0?s+n[1]:n[1];if(f<0||f>=s||a<0||a>=s)throw new Error(`Axes are out of bounds for array of dimension ${s}`);if(f===a)throw new Error("Axes must be different");if(t=(t%4+4)%4,t===0)return r.copy();if(s===2&&f===0&&a===1&&r.isCContiguous){if(t===1){const c=K(r);if(c)return c}else if(t===2){const c=M(r);if(c)return c}}const u=U(i);if(!u)throw new Error(`Cannot rotate array with dtype ${i}`);const o=[...e];(t===1||t===3)&&([o[f],o[a]]=[o[a],o[f]]);const m=o.reduce((c,d)=>c*d,1),h=new u(m),y=v(i),l=r.data;if(s===2&&f===0&&a===1){const c=e[0],d=e[1];if(t===1){const x=d,I=c;if(y){const b=l,S=h;for(let g=0;g<x;g++){const B=g*I,C=d-1-g;for(let $=0;$<I;$++)S[B+$]=b[$*d+C]}}else{const b=l,S=h;for(let g=0;g<x;g++){const B=g*I,C=d-1-g;for(let $=0;$<I;$++)S[B+$]=b[$*d+C]}}}else if(t===2)if(y){const x=l,I=h;for(let b=0;b<c;b++){const S=b*d,g=(c-1-b)*d;for(let B=0;B<d;B++)I[S+B]=x[g+(d-1-B)]}}else{const x=l,I=h;for(let b=0;b<c;b++){const S=b*d,g=(c-1-b)*d;for(let B=0;B<d;B++)I[S+B]=x[g+(d-1-B)]}}else{const x=d,I=c;if(y){const b=l,S=h;for(let g=0;g<x;g++){const B=g*I;for(let C=0;C<I;C++)S[B+C]=b[(c-1-C)*d+g]}}else{const b=l,S=h;for(let g=0;g<x;g++){const B=g*I;for(let C=0;C<I;C++)S[B+C]=b[(c-1-C)*d+g]}}}return z.fromData(h,o,i)}const p=T(o),A=T(e),w=new Array(s).fill(0),E=new Array(s);for(let c=0;c<r.size;c++){for(let S=0;S<s;S++)E[S]=w[S];let d,x;t===1?(d=e[a]-1-w[a],x=w[f]):t===2?(d=e[f]-1-w[f],x=e[a]-1-w[a],E[f]=d,E[a]=x):(d=w[a],x=e[f]-1-w[f]),t!==2&&(E[f]=d,E[a]=x);let I=0;for(let S=0;S<s;S++)I+=E[S]*p[S];let b=0;for(let S=0;S<s;S++)b+=w[S]*A[S];if(y){const S=l,g=h;g[I]=S[b]}else{const S=l,g=h;g[I]=S[b]}for(let S=s-1;S>=0&&(w[S]++,!(w[S]<e[S]));S--)w[S]=0}return z.fromData(h,o,i)}function gr(r,t,n){const e=r.shape,s=e.length,i=r.dtype,f=r.size;if(n===void 0){const p=Array.isArray(t)?t.reduce((d,x)=>d+x,0):t;if(r.isCContiguous){const d=j(r,p);if(d)return d}const A=J(r),w=U(i);if(!w)throw new Error(`Cannot roll array with dtype ${i}`);const E=new w(f),c=v(i);for(let d=0;d<f;d++){const x=((d-p)%f+f)%f,I=A.iget(x);E[d]=I}return z.fromData(E,[...e],i)}const a=Array.isArray(t)?t:[t],u=Array.isArray(n)?n:[n];if(a.length!==u.length)throw new Error("shift and axis must have the same length");const o=u.map(p=>{const A=p<0?s+p:p;if(A<0||A>=s)throw new Error(`axis ${p} is out of bounds for array of dimension ${s}`);return A}),m=U(i);if(!m)throw new Error(`Cannot roll array with dtype ${i}`);const h=new m(f),y=v(i),l=new Array(s).fill(0);for(let p=0;p<f;p++){const A=[...l];for(let c=0;c<o.length;c++){const d=o[c],x=e[d],I=a[c];A[d]=((A[d]-I)%x+x)%x}let w=r.offset;for(let c=0;c<s;c++)w+=A[c]*r.strides[c];const E=r.data[w];h[p]=E;for(let c=s-1;c>=0&&(l[c]++,!(l[c]<e[c]));c--)l[c]=0}return z.fromData(h,[...e],i)}function Br(r,t,n=0){const e=r.ndim;let s=t<0?e+t:t;if(s<0||s>=e)throw new Error(`axis ${t} is out of bounds for array of dimension ${e}`);let i=n<0?e+n:n;if(i<0||i>e)throw new Error(`start ${n} is out of bounds`);return s<i&&i--,s===i?z.fromData(r.data,Array.from(r.shape),r.dtype,Array.from(r.strides),r.offset):H(r,s,i)}function xr(r,t){if(r.ndim<3)throw new Error("dsplit only works on arrays of 3 or more dimensions");return k(r,t,2)}function Er(r){if(r.length===0)throw new Error("need at least one array to stack");const t=r.map(n=>n.ndim===1?D(n,[n.shape[0],1]):n);return W(t)}const Ir=V;function zr(r,t){const n=r.dtype,e=t.reduce((u,o)=>u*o,1),s=r.size,i=U(n);if(!i)throw new Error(`Cannot resize array with dtype ${n}`);const f=new i(e),a=v(n);for(let u=0;u<e;u++){const o=u%s,m=r.iget(o);f[u]=m}return z.fromData(f,t,n)}function Cr(r){return r.map(t=>t.ndim===0?D(t,[1]):t)}function $r(r){return r.map(t=>t.ndim===0?D(t,[1,1]):t.ndim===1?D(t,[1,t.shape[0]]):t)}function Dr(r){return r.map(t=>t.ndim===0?D(t,[1,1,1]):t.ndim===1?D(t,[1,t.shape[0],1]):t.ndim===2?D(t,[t.shape[0],t.shape[1],1]):t)}function Ur(r,t=0){return R(r,t)}function Tr(r,t=0){const n=r.shape,e=n.length,s=t<0?e+t:t;if(s<0||s>=e)throw new Error(`axis ${t} is out of bounds for array of dimension ${e}`);const i=n[s],f=new Array(i),a=r.data,u=r.dtype,o=r.strides,m=r.offset,h=[],y=[];for(let p=0;p<e;p++)p!==s&&(h.push(n[p]),y.push(o[p]));const l=o[s];for(let p=0;p<i;p++)f[p]=z.fromData(a,h,u,y,m+p*l);return f}function Rr(r,t=1){if(r.length===0)throw new Error("need at least one array to block");return r.length===1?r[0].copy():R(r,-1)}export{k as arraySplit,Cr as atleast1d,$r as atleast2d,Dr as atleast3d,Rr as block,Er as columnStack,Ur as concat,R as concatenate,xr as dsplit,yr as dstack,O as expandDims,J as flatten,br as flip,hr as hsplit,W as hstack,H as moveaxis,ur as ravel,wr as repeat,D as reshape,zr as resize,gr as roll,Br as rollaxis,Sr as rot90,Ir as rowStack,sr as slice,fr as sliceKeepDim,pr as split,cr as squeeze,lr as stack,dr as swapaxes,Ar as tile,G as transpose,Tr as unstack,mr as vsplit,V as vstack};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ArrayStorage as w}from"../storage";import{isBigIntDType as L,isComplexDType as T}from"../dtype";import{outerIndexToMultiIndex as F,multiIndexToLinear as M,multiIndexToBuffer as E}from"../internal/indexing";function B(t,y,s){if(s){const i=t[y*2],b=t[y*2+1];return i!==0||b!==0}return!!t[y]}function j(t,y,s,i){const b=isNaN(t)||isNaN(y),m=isNaN(s)||isNaN(i);return b&&m?0:b?1:m||t<s?-1:t>s?1:y<i?-1:y>i?1:0}function at(t,y=-1){const s=t.shape,i=s.length,b=t.dtype,m=t.data,f=t.offset,x=t.strides;if(i===0)return t.copy();let u=y;if(u<0&&(u=i+u),u<0||u>=i)throw new Error(`axis ${y} is out of bounds for array of dimension ${i}`);const c=t.copy(),r=c.data,d=s[u],I=Array.from(s).filter((a,l)=>l!==u),p=I.length===0?1:I.reduce((a,l)=>a*l,1);if(T(b)){const a=m,l=r;for(let e=0;e<p;e++){const n=[];for(let o=0;o<d;o++){const h=F(e,u,o,s),g=E(h,x,f);n.push({re:a[g*2],im:a[g*2+1],idx:o})}n.sort((o,h)=>j(o.re,o.im,h.re,h.im));for(let o=0;o<d;o++){const h=F(e,u,o,s),g=M(h,s);l[g*2]=n[o].re,l[g*2+1]=n[o].im}}}else if(L(b)){const a=m,l=r;for(let e=0;e<p;e++){const n=[];for(let o=0;o<d;o++){const h=F(e,u,o,s),g=E(h,x,f);n.push({value:a[g],idx:o})}n.sort((o,h)=>o.value<h.value?-1:o.value>h.value?1:0);for(let o=0;o<d;o++){const h=F(e,u,o,s),g=M(h,s);l[g]=n[o].value}}}else for(let a=0;a<p;a++){const l=[];for(let e=0;e<d;e++){const n=F(a,u,e,s),o=E(n,x,f);l.push(Number(m[o]))}l.sort((e,n)=>isNaN(e)&&isNaN(n)?0:isNaN(e)?1:isNaN(n)?-1:e-n);for(let e=0;e<d;e++){const n=F(a,u,e,s),o=M(n,s);r[o]=l[e]}}return c}function lt(t,y=-1){const s=t.shape,i=s.length,b=t.dtype,m=t.data,f=t.offset,x=t.strides;if(i===0)return w.zeros([0],"int32");let u=y;if(u<0&&(u=i+u),u<0||u>=i)throw new Error(`axis ${y} is out of bounds for array of dimension ${i}`);const c=w.zeros(Array.from(s),"int32"),r=c.data,d=s[u],I=Array.from(s).filter((a,l)=>l!==u),p=I.length===0?1:I.reduce((a,l)=>a*l,1);if(T(b)){const a=m;for(let l=0;l<p;l++){const e=[];for(let n=0;n<d;n++){const o=F(l,u,n,s),h=E(o,x,f);e.push({re:a[h*2],im:a[h*2+1],idx:n})}e.sort((n,o)=>j(n.re,n.im,o.re,o.im));for(let n=0;n<d;n++){const o=F(l,u,n,s),h=M(o,s);r[h]=e[n].idx}}}else if(L(b)){const a=m;for(let l=0;l<p;l++){const e=[];for(let n=0;n<d;n++){const o=F(l,u,n,s),h=E(o,x,f);e.push({value:a[h],idx:n})}e.sort((n,o)=>n.value<o.value?-1:n.value>o.value?1:0);for(let n=0;n<d;n++){const o=F(l,u,n,s),h=M(o,s);r[h]=e[n].idx}}}else for(let a=0;a<p;a++){const l=[];for(let e=0;e<d;e++){const n=F(a,u,e,s),o=E(n,x,f);l.push({value:Number(m[o]),idx:e})}l.sort((e,n)=>isNaN(e.value)&&isNaN(n.value)?0:isNaN(e.value)?1:isNaN(n.value)?-1:e.value-n.value);for(let e=0;e<d;e++){const n=F(a,u,e,s),o=M(n,s);r[o]=l[e].idx}}return c}function ut(t){if(t.length===0)return w.zeros([0],"int32");const s=t[0].size;for(const r of t){if(r.ndim!==1)throw new Error("keys must be 1D arrays");if(r.size!==s)throw new Error("all keys must have the same length")}const i=[];for(let r=0;r<s;r++)i.push(r);const b=t.map(r=>T(r.dtype)),m=t.map(r=>r.isCContiguous),f=t.map(r=>r.data),x=t.map(r=>r.offset);i.sort((r,d)=>{for(let I=t.length-1;I>=0;I--)if(b[I]){let p,a,l,e;if(m[I]){const n=f[I],o=x[I];p=n[(o+r)*2],a=n[(o+r)*2+1],l=n[(o+d)*2],e=n[(o+d)*2+1]}else{const n=t[I].iget(r),o=t[I].iget(d);p=n.re,a=n.im,l=o.re,e=o.im}if(p<l)return-1;if(p>l)return 1;if(a<e)return-1;if(a>e)return 1}else{let p,a;if(m[I]){const l=f[I],e=x[I];p=Number(l[e+r]),a=Number(l[e+d])}else p=Number(t[I].iget(r)),a=Number(t[I].iget(d));if(isNaN(p)&&isNaN(a))continue;if(isNaN(p))return 1;if(isNaN(a)||p<a)return-1;if(p>a)return 1}return 0});const u=w.zeros([s],"int32"),c=u.data;for(let r=0;r<s;r++)c[r]=i[r];return u}function J(t,y){let s=0,i=t.length-1;for(;s<i;){const b=Math.floor((s+i)/2),m=t[s],f=t[b],x=t[i];let u;m<=f&&f<=x||x<=f&&f<=m?u=b:f<=m&&m<=x||x<=m&&m<=f?u=s:u=i;const c=t[u];[t[u],t[i]]=[t[i],t[u]];let r=s;for(let d=s;d<i;d++){const I=t[d],p=isNaN(I),a=isNaN(c);!p&&(a||I<=c)&&([t[r],t[d]]=[t[d],t[r]],r++)}if([t[r],t[i]]=[t[i],t[r]],r===y)return;r<y?s=r+1:i=r-1}}function P(t,y){let s=0,i=t.length-1;for(;s<i;){const b=Math.floor((s+i)/2),m=t[s],f=t[b],x=t[i];let u;m<=f&&f<=x||x<=f&&f<=m?u=b:f<=m&&m<=x||x<=m&&m<=f?u=s:u=i;const c=t[u];[t[u],t[i]]=[t[i],t[u]];let r=s;for(let d=s;d<i;d++)t[d]<=c&&([t[r],t[d]]=[t[d],t[r]],r++);if([t[r],t[i]]=[t[i],t[r]],r===y)return;r<y?s=r+1:i=r-1}}function Q(t,y){let s=0,i=t.length-1;for(;s<i;){const b=Math.floor((s+i)/2),m=t[s].value,f=t[b].value,x=t[i].value;let u;m<=f&&f<=x||x<=f&&f<=m?u=b:f<=m&&m<=x||x<=m&&m<=f?u=s:u=i;const c=t[u].value;[t[u],t[i]]=[t[i],t[u]];let r=s;for(let d=s;d<i;d++){const I=t[d].value,p=isNaN(I),a=isNaN(c);!p&&(a||I<=c)&&([t[r],t[d]]=[t[d],t[r]],r++)}if([t[r],t[i]]=[t[i],t[r]],r===y)return;r<y?s=r+1:i=r-1}}function W(t,y){let s=0,i=t.length-1;for(;s<i;){const b=Math.floor((s+i)/2),m=t[s].value,f=t[b].value,x=t[i].value;let u;m<=f&&f<=x||x<=f&&f<=m?u=b:f<=m&&m<=x||x<=m&&m<=f?u=s:u=i;const c=t[u].value;[t[u],t[i]]=[t[i],t[u]];let r=s;for(let d=s;d<i;d++)t[d].value<=c&&([t[r],t[d]]=[t[d],t[r]],r++);if([t[r],t[i]]=[t[i],t[r]],r===y)return;r<y?s=r+1:i=r-1}}function ct(t,y,s=-1){const i=t.shape,b=i.length,m=t.dtype;if(b===0)return t.copy();let f=s;if(f<0&&(f=b+f),f<0||f>=b)throw new Error(`axis ${s} is out of bounds for array of dimension ${b}`);const x=i[f];let u=y;if(u<0&&(u=x+u),u<0||u>=x)throw new Error(`kth(=${y}) out of bounds (${x})`);const c=t.copy(),r=c.data,d=Array.from(i).filter((p,a)=>a!==f),I=d.length===0?1:d.reduce((p,a)=>p*a,1);if(L(m)){const p=r;for(let a=0;a<I;a++){const l=[];for(let e=0;e<x;e++){const n=F(a,f,e,i),o=M(n,i);l.push(p[o])}P(l,u);for(let e=0;e<x;e++){const n=F(a,f,e,i),o=M(n,i);p[o]=l[e]}}}else for(let p=0;p<I;p++){const a=[];for(let l=0;l<x;l++){const e=F(p,f,l,i),n=M(e,i);a.push(Number(r[n]))}J(a,u);for(let l=0;l<x;l++){const e=F(p,f,l,i),n=M(e,i);r[n]=a[l]}}return c}function ft(t,y,s=-1){const i=t.shape,b=i.length,m=t.dtype,f=t.data,x=t.offset,u=t.strides;if(b===0)return w.zeros([0],"int32");let c=s;if(c<0&&(c=b+c),c<0||c>=b)throw new Error(`axis ${s} is out of bounds for array of dimension ${b}`);const r=i[c];let d=y;if(d<0&&(d=r+d),d<0||d>=r)throw new Error(`kth(=${y}) out of bounds (${r})`);const I=w.zeros(Array.from(i),"int32"),p=I.data,a=Array.from(i).filter((e,n)=>n!==c),l=a.length===0?1:a.reduce((e,n)=>e*n,1);if(L(m)){const e=f;for(let n=0;n<l;n++){const o=[];for(let h=0;h<r;h++){const g=F(n,c,h,i),z=E(g,u,x);o.push({value:e[z],idx:h})}W(o,d);for(let h=0;h<r;h++){const g=F(n,c,h,i),z=M(g,i);p[z]=o[h].idx}}}else for(let e=0;e<l;e++){const n=[];for(let o=0;o<r;o++){const h=F(e,c,o,i),g=E(h,u,x);n.push({value:Number(f[g]),idx:o})}Q(n,d);for(let o=0;o<r;o++){const h=F(e,c,o,i),g=M(h,i);p[g]=n[o].idx}}return I}function dt(t){const y=t.dtype,s=t.size,i=t.isCContiguous,b=t.data,m=t.offset;if(T(y)){const f=[];if(i){const c=b;for(let r=0;r<s;r++)f.push({re:c[(m+r)*2],im:c[(m+r)*2+1]})}else for(let c=0;c<s;c++){const r=t.iget(c);f.push({re:r.re,im:r.im})}f.sort((c,r)=>j(c.re,c.im,r.re,r.im));const x=w.zeros([s],"complex128"),u=x.data;for(let c=0;c<s;c++)u[c*2]=f[c].re,u[c*2+1]=f[c].im;return x}else{const f=[];if(i)for(let c=0;c<s;c++)f.push(Number(b[m+c]));else for(let c=0;c<s;c++)f.push(Number(t.iget(c)));f.sort((c,r)=>isNaN(c)&&isNaN(r)?0:isNaN(c)?1:isNaN(r)?-1:c-r);const x=w.zeros([s],"complex128"),u=x.data;for(let c=0;c<s;c++)u[c*2]=f[c],u[c*2+1]=0;return x}}function k(t){const y=t.shape,s=y.length,i=t.size,b=T(t.dtype),m=t.isCContiguous,f=t.data,x=t.offset,u=[];for(let p=0;p<s;p++)u.push([]);const c=[];let r=1;for(let p=s-1;p>=0;p--)c.unshift(r),r*=y[p];if(m){for(let p=0;p<i;p++)if(B(f,x+p,b)){let a=p;for(let l=0;l<s;l++){const e=Math.floor(a/c[l]);a=a%c[l],u[l].push(e)}}}else for(let p=0;p<i;p++){const a=t.iget(p);if(b?a.re!==0||a.im!==0:!!a){let e=p;for(let n=0;n<s;n++){const o=Math.floor(e/c[n]);e=e%c[n],u[n].push(o)}}}const d=u[0]?.length??0,I=[];for(let p=0;p<s;p++){const a=w.zeros([d],"int32"),l=a.data;for(let e=0;e<d;e++)l[e]=u[p][e];I.push(a)}return I}function mt(t){const y=t.shape,s=y.length,i=t.size,b=T(t.dtype),m=t.isCContiguous,f=t.data,x=t.offset,u=[],c=[];let r=1;for(let l=s-1;l>=0;l--)c.unshift(r),r*=y[l];if(m){for(let l=0;l<i;l++)if(B(f,x+l,b)){const e=[];let n=l;for(let o=0;o<s;o++){const h=Math.floor(n/c[o]);n=n%c[o],e.push(h)}u.push(e)}}else for(let l=0;l<i;l++){const e=t.iget(l);if(b?e.re!==0||e.im!==0:!!e){const o=[];let h=l;for(let g=0;g<s;g++){const z=Math.floor(h/c[g]);h=h%c[g],o.push(z)}u.push(o)}}const d=u.length,I=s===0?[d,1]:[d,s],p=w.zeros(I,"int32"),a=p.data;for(let l=0;l<d;l++){const e=u[l];for(let n=0;n<(s===0?1:s);n++)a[l*(s===0?1:s)+n]=e[n]??0}return p}function pt(t){const y=t.size,s=T(t.dtype),i=t.isCContiguous,b=t.data,m=t.offset,f=[];if(i)for(let c=0;c<y;c++)B(b,m+c,s)&&f.push(c);else for(let c=0;c<y;c++){const r=t.iget(c);(s?r.re!==0||r.im!==0:r)&&f.push(c)}const x=w.zeros([f.length],"int32"),u=x.data;for(let c=0;c<f.length;c++)u[c]=f[c];return x}function yt(t,y,s){if(y===void 0&&s===void 0)return k(t);if(y===void 0||s===void 0)throw new Error("either both or neither of x and y should be given");const i=t.shape,b=y.shape,m=s.shape,f=Math.max(i.length,b.length,m.length),x=A=>{const N=Array(f).fill(1);for(let C=0;C<A.length;C++)N[f-A.length+C]=A[C];return N},u=x(i),c=x(b),r=x(m),d=[];for(let A=0;A<f;A++){const N=[u[A],c[A],r[A]],C=Math.max(...N);for(const v of N)if(v!==1&&v!==C)throw new Error("operands could not be broadcast together");d.push(C)}const I=y.dtype,p=w.zeros(d,I),a=p.data,l=(A,N)=>{const C=[];let v=1;for(let D=A.length-1;D>=0;D--)C.unshift(v),v*=A[D];for(;C.length<N.length;)C.unshift(0);for(let D=0;D<N.length;D++)N[D]===1&&d[D]!==1&&(C[D]=0);return C},e=l(i,u),n=l(b,c),o=l(m,r),h=[];let g=1;for(let A=d.length-1;A>=0;A--)h.unshift(g),g*=d[A];const z=d.reduce((A,N)=>A*N,1),$=T(t.dtype),U=T(I),H=t.isCContiguous,V=t.data,R=t.offset,X=y.isCContiguous,q=y.data,O=y.offset,Y=s.isCContiguous,K=s.data,_=s.offset;if(i.length===d.length&&b.length===d.length&&m.length===d.length&&i.every((A,N)=>A===d[N])&&b.every((A,N)=>A===d[N])&&m.every((A,N)=>A===d[N])&&H&&X&&Y)if(U){const A=a,N=q,C=K;for(let v=0;v<z;v++)B(V,R+v,$)?(A[v*2]=N[(O+v)*2],A[v*2+1]=N[(O+v)*2+1]):(A[v*2]=C[(_+v)*2],A[v*2+1]=C[(_+v)*2+1])}else if(L(I)){const A=a,N=q,C=K;for(let v=0;v<z;v++)B(V,R+v,$)?A[v]=N[O+v]:A[v]=C[_+v]}else for(let A=0;A<z;A++)B(V,R+A,$)?a[A]=q[O+A]:a[A]=K[_+A];else for(let A=0;A<z;A++){let N=A,C=0,v=0,D=0;for(let S=0;S<f;S++){const G=Math.floor(N/h[S]);N=N%h[S],C+=G*e[S],v+=G*n[S],D+=G*o[S]}let Z;if(H)Z=B(V,R+C,$);else{const S=t.iget(C);Z=$?S.re!==0||S.im!==0:!!S}if(Z)if(U)if(X){const S=q;a[A*2]=S[(O+v)*2],a[A*2+1]=S[(O+v)*2+1]}else{const S=y.iget(v);a[A*2]=S.re,a[A*2+1]=S.im}else X?a[A]=q[O+v]:a[A]=y.iget(v);else if(U)if(Y){const S=K;a[A*2]=S[(_+D)*2],a[A*2+1]=S[(_+D)*2+1]}else{const S=s.iget(D);a[A*2]=S.re,a[A*2+1]=S.im}else Y?a[A]=K[_+D]:a[A]=s.iget(D)}return p}function ht(t,y,s="left"){if(t.ndim!==1)throw new Error("storage must be 1D");const i=t.size,b=y.size,m=T(t.dtype),f=t.isCContiguous,x=t.data,u=t.offset,c=y.isCContiguous,r=y.data,d=y.offset,I=w.zeros([b],"int32"),p=I.data;if(m)if(f&&c){const a=x,l=r;for(let e=0;e<b;e++){const n=l[(d+e)*2],o=l[(d+e)*2+1];let h=0,g=i;if(s==="left")for(;h<g;){const z=Math.floor((h+g)/2),$=a[(u+z)*2],U=a[(u+z)*2+1];j($,U,n,o)<0?h=z+1:g=z}else for(;h<g;){const z=Math.floor((h+g)/2),$=a[(u+z)*2],U=a[(u+z)*2+1];j($,U,n,o)<=0?h=z+1:g=z}p[e]=h}}else for(let a=0;a<b;a++){const l=y.iget(a),e=l.re,n=l.im;let o=0,h=i;if(s==="left")for(;o<h;){const g=Math.floor((o+h)/2),z=t.iget(g);j(z.re,z.im,e,n)<0?o=g+1:h=g}else for(;o<h;){const g=Math.floor((o+h)/2),z=t.iget(g);j(z.re,z.im,e,n)<=0?o=g+1:h=g}p[a]=o}else if(f&&c)for(let a=0;a<b;a++){const l=Number(r[d+a]);let e=0,n=i;if(s==="left")for(;e<n;){const o=Math.floor((e+n)/2);Number(x[u+o])<l?e=o+1:n=o}else for(;e<n;){const o=Math.floor((e+n)/2);Number(x[u+o])<=l?e=o+1:n=o}p[a]=e}else for(let a=0;a<b;a++){const l=Number(y.iget(a));let e=0,n=i;if(s==="left")for(;e<n;){const o=Math.floor((e+n)/2);Number(t.iget(o))<l?e=o+1:n=o}else for(;e<n;){const o=Math.floor((e+n)/2);Number(t.iget(o))<=l?e=o+1:n=o}p[a]=e}return I}function xt(t,y){const s=y.dtype,i=T(t.dtype),b=T(s),m=Math.min(t.size,y.size),f=t.isCContiguous,x=t.data,u=t.offset,c=y.isCContiguous,r=y.data,d=y.offset;let I=0;if(f)for(let e=0;e<m;e++)B(x,u+e,i)&&I++;else for(let e=0;e<m;e++){const n=t.iget(e);(i?n.re!==0||n.im!==0:n)&&I++}const p=w.zeros([I],s),a=p.data;let l=0;if(f&&c)if(L(s)){const e=a,n=r;for(let o=0;o<m;o++)B(x,u+o,i)&&(e[l++]=n[d+o])}else if(b){const e=a,n=r;for(let o=0;o<m;o++)B(x,u+o,i)&&(e[l*2]=n[(d+o)*2],e[l*2+1]=n[(d+o)*2+1],l++)}else for(let e=0;e<m;e++)B(x,u+e,i)&&(a[l++]=r[d+e]);else{const e=f?n=>B(x,u+n,i):n=>{const o=t.iget(n);if(i){const h=o;return h.re!==0||h.im!==0}return!!o};if(L(s)){const n=a;for(let o=0;o<m;o++)e(o)&&(n[l++]=y.iget(o))}else if(b){const n=a;for(let o=0;o<m;o++)if(e(o)){const h=y.iget(o);n[l*2]=h.re,n[l*2+1]=h.im,l++}}else for(let n=0;n<m;n++)e(n)&&(a[l++]=y.iget(n))}return p}function tt(t,y){const s=t.shape,i=s.length,b=t.data,m=t.size,f=t.offset,x=t.strides,u=T(t.dtype),c=t.isCContiguous;if(y===void 0){let e=0;if(c)for(let n=0;n<m;n++)B(b,f+n,u)&&e++;else for(let n=0;n<m;n++){const o=t.iget(n);if(u){const h=o;(h.re!==0||h.im!==0)&&e++}else o!==0&&o!==BigInt(0)&&e++}return e}let r=y;if(r<0&&(r=i+r),r<0||r>=i)throw new Error(`axis ${y} is out of bounds for array of dimension ${i}`);const d=Array.from(s).filter((e,n)=>n!==r);if(d.length===0)return tt(t);const I=w.zeros(d,"int32"),p=I.data,a=s[r],l=d.reduce((e,n)=>e*n,1);for(let e=0;e<l;e++){let n=0;for(let o=0;o<a;o++){const h=F(e,r,o,s),g=E(h,x,f);B(b,g,u)&&n++}p[e]=n}return I}export{ft as argpartition,lt as argsort,mt as argwhere,tt as count_nonzero,xt as extract,pt as flatnonzero,ut as lexsort,k as nonzero,ct as partition,ht as searchsorted,at as sort,dt as sort_complex,yt as where};
|
|
1
|
+
import{ArrayStorage as M}from"../storage";import{isBigIntDType as L,isComplexDType as $}from"../dtype";import{computeStrides as V,precomputeAxisOffsets as _}from"../internal/indexing";import{wasmReduceCountNz as Z}from"../wasm/reduce_count_nz";import{wasmSort as G,wasmSortSlices as H}from"../wasm/sort";import{wasmArgsort as J,wasmArgsortSlices as Q}from"../wasm/argsort";import{wasmPartition as k,wasmPartitionSlices as tt}from"../wasm/partition";import{wasmArgpartition as et,wasmArgpartitionSlices as rt}from"../wasm/argpartition";import{wasmSearchsorted as ot}from"../wasm/searchsorted";import{wasmLexsort as st}from"../wasm/lexsort";import{wasmExtract as nt,wasmWhere as it}from"../wasm/gather";function E(t,p,e){if(e){const n=t[p*2],x=t[p*2+1];return n!==0||x!==0}return!!t[p]}function j(t,p,e,n){const x=isNaN(t)||isNaN(p),b=isNaN(e)||isNaN(n);return x&&b?0:x?1:b||t<e?-1:t>e?1:p<n?-1:p>n?1:0}function Ct(t,p=-1){const e=t.shape,n=e.length,x=t.dtype,b=t.data,m=t.offset,I=t.strides;if(n===0)return t.copy();let u=p;if(u<0&&(u=n+u),u<0||u>=n)throw new Error(`axis ${p} is out of bounds for array of dimension ${n}`);const o=t.copy(),i=o.data,s=e[u],v=Array.from(e).filter((r,y)=>y!==u),h=v.length===0?1:v.reduce((r,y)=>r*y,1),{baseOffsets:c,axisStride:d}=_(e,I,m,u,h),f=V(e),{baseOffsets:l,axisStride:a}=_(e,f,0,u,h);if(n===1&&o.isCContiguous){const r=G(o);if(r)return r}if(a===1&&H(i,l,s,h,x))return o;if($(x)){const r=b,y=i;for(let A=0;A<h;A++){const N=[];let S=c[A];for(let w=0;w<s;w++)N.push({re:r[S*2],im:r[S*2+1],idx:w}),S+=d;N.sort((w,T)=>j(w.re,w.im,T.re,T.im));let z=l[A];for(let w=0;w<s;w++)y[z*2]=N[w].re,y[z*2+1]=N[w].im,z+=a}}else if(L(x)){const r=b,y=i;for(let A=0;A<h;A++){const N=[];let S=c[A];for(let w=0;w<s;w++)N.push({value:r[S],idx:w}),S+=d;N.sort((w,T)=>w.value<T.value?-1:w.value>T.value?1:0);let z=l[A];for(let w=0;w<s;w++)y[z]=N[w].value,z+=a}}else for(let r=0;r<h;r++){const y=[];let A=c[r];for(let S=0;S<s;S++)y.push(Number(b[A])),A+=d;y.sort((S,z)=>isNaN(S)&&isNaN(z)?0:isNaN(S)?1:isNaN(z)?-1:S-z);let N=l[r];for(let S=0;S<s;S++)i[N]=y[S],N+=a}return o}function Ft(t,p=-1){const e=t.shape,n=e.length,x=t.dtype,b=t.data,m=t.offset,I=t.strides;if(n===0)return M.zeros([0],"int32");let u=p;if(u<0&&(u=n+u),u<0||u>=n)throw new Error(`axis ${p} is out of bounds for array of dimension ${n}`);const o=M.zeros(Array.from(e),"int32"),i=o.data,s=e[u],v=Array.from(e).filter((r,y)=>y!==u),h=v.length===0?1:v.reduce((r,y)=>r*y,1),{baseOffsets:c,axisStride:d}=_(e,I,m,u,h),f=V(e),{baseOffsets:l,axisStride:a}=_(e,f,0,u,h);if(n===1&&t.isCContiguous){const r=J(t);if(r)return r}if(a===1&&d===1&&Q(b,i,c,l,s,h,x))return o;if($(x)){const r=b;for(let y=0;y<h;y++){const A=[];let N=c[y];for(let z=0;z<s;z++)A.push({re:r[N*2],im:r[N*2+1],idx:z}),N+=d;A.sort((z,w)=>j(z.re,z.im,w.re,w.im));let S=l[y];for(let z=0;z<s;z++)i[S]=A[z].idx,S+=a}}else if(L(x)){const r=b;for(let y=0;y<h;y++){const A=[];let N=c[y];for(let z=0;z<s;z++)A.push({value:r[N],idx:z}),N+=d;A.sort((z,w)=>z.value<w.value?-1:z.value>w.value?1:0);let S=l[y];for(let z=0;z<s;z++)i[S]=A[z].idx,S+=a}}else for(let r=0;r<h;r++){const y=[];let A=c[r];for(let S=0;S<s;S++)y.push({value:Number(b[A]),idx:S}),A+=d;y.sort((S,z)=>isNaN(S.value)&&isNaN(z.value)?0:isNaN(S.value)?1:isNaN(z.value)?-1:S.value-z.value);let N=l[r];for(let S=0;S<s;S++)i[N]=y[S].idx,N+=a}return o}function Dt(t){if(t.length===0)return M.zeros([0],"int32");const e=t[0].size;for(const s of t){if(s.ndim!==1)throw new Error("keys must be 1D arrays");if(s.size!==e)throw new Error("all keys must have the same length")}const n=st(t);if(n)return n;const x=[];for(let s=0;s<e;s++)x.push(s);const b=t.map(s=>$(s.dtype)),m=t.map(s=>s.isCContiguous),I=t.map(s=>s.data),u=t.map(s=>s.offset);x.sort((s,v)=>{for(let h=t.length-1;h>=0;h--)if(b[h]){let c,d,f,l;if(m[h]){const a=I[h],r=u[h];c=a[(r+s)*2],d=a[(r+s)*2+1],f=a[(r+v)*2],l=a[(r+v)*2+1]}else{const a=t[h].iget(s),r=t[h].iget(v);c=a.re,d=a.im,f=r.re,l=r.im}if(c<f)return-1;if(c>f)return 1;if(d<l)return-1;if(d>l)return 1}else{let c,d;if(m[h]){const f=I[h],l=u[h];c=Number(f[l+s]),d=Number(f[l+v])}else c=Number(t[h].iget(s)),d=Number(t[h].iget(v));if(isNaN(c)&&isNaN(d))continue;if(isNaN(c))return 1;if(isNaN(d)||c<d)return-1;if(c>d)return 1}return 0});const o=M.zeros([e],"int32"),i=o.data;for(let s=0;s<e;s++)i[s]=x[s];return o}function at(t,p){let e=0,n=t.length-1;for(;e<n;){const x=Math.floor((e+n)/2),b=t[e],m=t[x],I=t[n];let u;b<=m&&m<=I||I<=m&&m<=b?u=x:m<=b&&b<=I||I<=b&&b<=m?u=e:u=n;const o=t[u];[t[u],t[n]]=[t[n],t[u]];let i=e;for(let s=e;s<n;s++){const v=t[s],h=isNaN(v),c=isNaN(o);!h&&(c||v<=o)&&([t[i],t[s]]=[t[s],t[i]],i++)}if([t[i],t[n]]=[t[n],t[i]],i===p)return;i<p?e=i+1:n=i-1}}function lt(t,p){let e=0,n=t.length-1;for(;e<n;){const x=Math.floor((e+n)/2),b=t[e],m=t[x],I=t[n];let u;b<=m&&m<=I||I<=m&&m<=b?u=x:m<=b&&b<=I||I<=b&&b<=m?u=e:u=n;const o=t[u];[t[u],t[n]]=[t[n],t[u]];let i=e;for(let s=e;s<n;s++)t[s]<=o&&([t[i],t[s]]=[t[s],t[i]],i++);if([t[i],t[n]]=[t[n],t[i]],i===p)return;i<p?e=i+1:n=i-1}}function ut(t,p){let e=0,n=t.length-1;for(;e<n;){const x=Math.floor((e+n)/2),b=t[e].value,m=t[x].value,I=t[n].value;let u;b<=m&&m<=I||I<=m&&m<=b?u=x:m<=b&&b<=I||I<=b&&b<=m?u=e:u=n;const o=t[u].value;[t[u],t[n]]=[t[n],t[u]];let i=e;for(let s=e;s<n;s++){const v=t[s].value,h=isNaN(v),c=isNaN(o);!h&&(c||v<=o)&&([t[i],t[s]]=[t[s],t[i]],i++)}if([t[i],t[n]]=[t[n],t[i]],i===p)return;i<p?e=i+1:n=i-1}}function ft(t,p){let e=0,n=t.length-1;for(;e<n;){const x=Math.floor((e+n)/2),b=t[e].value,m=t[x].value,I=t[n].value;let u;b<=m&&m<=I||I<=m&&m<=b?u=x:m<=b&&b<=I||I<=b&&b<=m?u=e:u=n;const o=t[u].value;[t[u],t[n]]=[t[n],t[u]];let i=e;for(let s=e;s<n;s++)t[s].value<=o&&([t[i],t[s]]=[t[s],t[i]],i++);if([t[i],t[n]]=[t[n],t[i]],i===p)return;i<p?e=i+1:n=i-1}}function Bt(t,p,e=-1){const n=t.shape,x=n.length,b=t.dtype;if(x===0)return t.copy();let m=e;if(m<0&&(m=x+m),m<0||m>=x)throw new Error(`axis ${e} is out of bounds for array of dimension ${x}`);const I=n[m];let u=p;if(u<0&&(u=I+u),u<0||u>=I)throw new Error(`kth(=${p}) out of bounds (${I})`);if(x===1&&t.isCContiguous&&!$(b)){const f=t.copy(),l=k(f,u);if(l)return l}const o=t.copy(),i=o.data,s=Array.from(n).filter((f,l)=>l!==m),v=s.length===0?1:s.reduce((f,l)=>f*l,1),h=V(n),{baseOffsets:c,axisStride:d}=_(n,h,0,m,v);if(d===1&&!$(b)&&tt(i,c,I,v,u,b))return o;if(L(b)){const f=i;for(let l=0;l<v;l++){const a=[];let r=c[l];for(let y=0;y<I;y++)a.push(f[r]),r+=d;lt(a,u),r=c[l];for(let y=0;y<I;y++)f[r]=a[y],r+=d}}else for(let f=0;f<v;f++){const l=[];let a=c[f];for(let r=0;r<I;r++)l.push(Number(i[a])),a+=d;at(l,u),a=c[f];for(let r=0;r<I;r++)i[a]=l[r],a+=d}return o}function Tt(t,p,e=-1){const n=t.shape,x=n.length,b=t.dtype,m=t.data,I=t.offset,u=t.strides;if(x===0)return M.zeros([0],"int32");let o=e;if(o<0&&(o=x+o),o<0||o>=x)throw new Error(`axis ${e} is out of bounds for array of dimension ${x}`);const i=n[o];let s=p;if(s<0&&(s=i+s),s<0||s>=i)throw new Error(`kth(=${p}) out of bounds (${i})`);if(x===1&&t.isCContiguous&&!$(b)){const A=et(t,s);if(A)return A}const v=M.zeros(Array.from(n),"int32"),h=v.data,c=Array.from(n).filter((A,N)=>N!==o),d=c.length===0?1:c.reduce((A,N)=>A*N,1),{baseOffsets:f,axisStride:l}=_(n,u,I,o,d),a=V(n),{baseOffsets:r,axisStride:y}=_(n,a,0,o,d);if(y===1&&l===1&&!$(b)&&rt(m,h,f,r,i,d,s,b))return v;if(L(b)){const A=m;for(let N=0;N<d;N++){const S=[];let z=f[N];for(let T=0;T<i;T++)S.push({value:A[z],idx:T}),z+=l;ft(S,s);let w=r[N];for(let T=0;T<i;T++)h[w]=S[T].idx,w+=y}}else for(let A=0;A<d;A++){const N=[];let S=f[A];for(let w=0;w<i;w++)N.push({value:Number(m[S]),idx:w}),S+=l;ut(N,s);let z=r[A];for(let w=0;w<i;w++)h[z]=N[w].idx,z+=y}return v}function Ot(t){const p=t.dtype,e=t.size,n=t.isCContiguous,x=t.data,b=t.offset;if($(p)){const m=[];if(n){const o=x;for(let i=0;i<e;i++)m.push({re:o[(b+i)*2],im:o[(b+i)*2+1]})}else for(let o=0;o<e;o++){const i=t.iget(o);m.push({re:i.re,im:i.im})}m.sort((o,i)=>j(o.re,o.im,i.re,i.im));const I=M.zeros([e],"complex128"),u=I.data;for(let o=0;o<e;o++)u[o*2]=m[o].re,u[o*2+1]=m[o].im;return I}else{const m=[];if(n)for(let o=0;o<e;o++)m.push(Number(x[b+o]));else for(let o=0;o<e;o++)m.push(Number(t.iget(o)));m.sort((o,i)=>isNaN(o)&&isNaN(i)?0:isNaN(o)?1:isNaN(i)?-1:o-i);const I=M.zeros([e],"complex128"),u=I.data;for(let o=0;o<e;o++)u[o*2]=m[o],u[o*2+1]=0;return I}}function ct(t){const p=t.shape,e=p.length,n=t.size,x=$(t.dtype),b=t.isCContiguous,m=t.data,I=t.offset,u=[];for(let h=0;h<e;h++)u.push([]);const o=[];let i=1;for(let h=e-1;h>=0;h--)o.unshift(i),i*=p[h];if(b&&!x&&e>=1){const h=[];for(let f=0;f<e;f++)h.push(new Int32Array(n));let c=0;for(let f=0;f<n;f++)if(m[I+f]){let l=f;for(let a=0;a<e;a++)h[a][c]=l/o[a]|0,l-=h[a][c]*o[a];c++}const d=[];for(let f=0;f<e;f++){const l=M.zeros([c],"int32");l.data.set(h[f].subarray(0,c)),d.push(l)}return d}if(b){for(let h=0;h<n;h++)if(E(m,I+h,x)){let c=h;for(let d=0;d<e;d++){const f=Math.floor(c/o[d]);c=c%o[d],u[d].push(f)}}}else for(let h=0;h<n;h++){const c=t.iget(h);if(x?c.re!==0||c.im!==0:!!c){let f=h;for(let l=0;l<e;l++){const a=Math.floor(f/o[l]);f=f%o[l],u[l].push(a)}}}const s=u[0]?.length??0,v=[];for(let h=0;h<e;h++){const c=M.zeros([s],"int32"),d=c.data;for(let f=0;f<s;f++)d[f]=u[h][f];v.push(c)}return v}function Mt(t){const p=t.shape,e=p.length,n=t.size,x=$(t.dtype),b=t.isCContiguous,m=t.data,I=t.offset,u=[],o=[];let i=1;for(let d=e-1;d>=0;d--)o.unshift(i),i*=p[d];if(b){for(let d=0;d<n;d++)if(E(m,I+d,x)){const f=[];let l=d;for(let a=0;a<e;a++){const r=Math.floor(l/o[a]);l=l%o[a],f.push(r)}u.push(f)}}else for(let d=0;d<n;d++){const f=t.iget(d);if(x?f.re!==0||f.im!==0:!!f){const a=[];let r=d;for(let y=0;y<e;y++){const A=Math.floor(r/o[y]);r=r%o[y],a.push(A)}u.push(a)}}const s=u.length,v=e===0?[s,1]:[s,e],h=M.zeros(v,"int32"),c=h.data;for(let d=0;d<s;d++){const f=u[d];for(let l=0;l<(e===0?1:e);l++)c[d*(e===0?1:e)+l]=f[l]??0}return h}function $t(t){const p=t.size,e=$(t.dtype),n=t.isCContiguous,x=t.data,b=t.offset;if(n&&!e){const o=new Int32Array(p);let i=0;for(let v=0;v<p;v++)x[b+v]&&(o[i++]=v);const s=M.zeros([i],"int32");return s.data.set(o.subarray(0,i)),s}const m=[];if(n)for(let o=0;o<p;o++)E(x,b+o,e)&&m.push(o);else for(let o=0;o<p;o++){const i=t.iget(o);(e?i.re!==0||i.im!==0:i)&&m.push(o)}const I=M.zeros([m.length],"int32"),u=I.data;for(let o=0;o<m.length;o++)u[o]=m[o];return I}function Et(t,p,e){if(p===void 0&&e===void 0)return ct(t);if(p===void 0||e===void 0)throw new Error("either both or neither of x and y should be given");if(t.size===p.size&&p.size===e.size&&p.dtype===e.dtype&&t.shape.length===p.shape.length&&t.shape.every((g,F)=>g===p.shape[F])&&p.shape.every((g,F)=>g===e.shape[F])){const g=it(t,p,e);if(g)return g}const n=t.shape,x=p.shape,b=e.shape,m=Math.max(n.length,x.length,b.length),I=g=>{const F=Array(m).fill(1);for(let D=0;D<g.length;D++)F[m-g.length+D]=g[D];return F},u=I(n),o=I(x),i=I(b),s=[];for(let g=0;g<m;g++){const F=[u[g],o[g],i[g]],D=Math.max(...F);for(const C of F)if(C!==1&&C!==D)throw new Error("operands could not be broadcast together");s.push(D)}const v=p.dtype,h=M.zeros(s,v),c=h.data,d=(g,F)=>{const D=[];let C=1;for(let O=g.length-1;O>=0;O--)D.unshift(C),C*=g[O];for(;D.length<F.length;)D.unshift(0);for(let O=0;O<F.length;O++)F[O]===1&&s[O]!==1&&(D[O]=0);return D},f=d(n,u),l=d(x,o),a=d(b,i),r=[];let y=1;for(let g=s.length-1;g>=0;g--)r.unshift(y),y*=s[g];const A=s.reduce((g,F)=>g*F,1),N=$(t.dtype),S=$(v),z=t.isCContiguous,w=t.data,T=t.offset,P=p.isCContiguous,q=p.data,R=p.offset,W=e.isCContiguous,K=e.data,U=e.offset;if(n.length===s.length&&x.length===s.length&&b.length===s.length&&n.every((g,F)=>g===s[F])&&x.every((g,F)=>g===s[F])&&b.every((g,F)=>g===s[F])&&z&&P&&W)if(S){const g=c,F=q,D=K;if(N)for(let C=0;C<A;C++)E(w,T+C,!0)?(g[C*2]=F[(R+C)*2],g[C*2+1]=F[(R+C)*2+1]):(g[C*2]=D[(U+C)*2],g[C*2+1]=D[(U+C)*2+1]);else for(let C=0;C<A;C++)w[T+C]?(g[C*2]=F[(R+C)*2],g[C*2+1]=F[(R+C)*2+1]):(g[C*2]=D[(U+C)*2],g[C*2+1]=D[(U+C)*2+1])}else if(L(v)){const g=c,F=q,D=K;for(let C=0;C<A;C++)w[T+C]?g[C]=F[R+C]:g[C]=D[U+C]}else for(let g=0;g<A;g++)w[T+g]?c[g]=q[R+g]:c[g]=K[U+g];else for(let g=0;g<A;g++){let F=g,D=0,C=0,O=0;for(let B=0;B<m;B++){const Y=Math.floor(F/r[B]);F=F%r[B],D+=Y*f[B],C+=Y*l[B],O+=Y*a[B]}let X;if(z)X=E(w,T+D,N);else{const B=t.iget(D);X=N?B.re!==0||B.im!==0:!!B}if(X)if(S)if(P){const B=q;c[g*2]=B[(R+C)*2],c[g*2+1]=B[(R+C)*2+1]}else{const B=p.iget(C);c[g*2]=B.re,c[g*2+1]=B.im}else P?c[g]=q[R+C]:c[g]=p.iget(C);else if(S)if(W){const B=K;c[g*2]=B[(U+O)*2],c[g*2+1]=B[(U+O)*2+1]}else{const B=e.iget(O);c[g*2]=B.re,c[g*2+1]=B.im}else W?c[g]=K[U+O]:c[g]=e.iget(O)}return h}function Rt(t,p,e="left"){if(t.ndim!==1)throw new Error("storage must be 1D");const n=t.size,x=p.size,b=$(t.dtype),m=t.isCContiguous,I=t.data,u=t.offset,o=p.isCContiguous,i=p.data,s=p.offset;if(!b){const c=ot(t,p,e);if(c)return c}const v=M.zeros([x],"int32"),h=v.data;if(b)if(m&&o){const c=I,d=i;for(let f=0;f<x;f++){const l=d[(s+f)*2],a=d[(s+f)*2+1];let r=0,y=n;if(e==="left")for(;r<y;){const A=Math.floor((r+y)/2),N=c[(u+A)*2],S=c[(u+A)*2+1];j(N,S,l,a)<0?r=A+1:y=A}else for(;r<y;){const A=Math.floor((r+y)/2),N=c[(u+A)*2],S=c[(u+A)*2+1];j(N,S,l,a)<=0?r=A+1:y=A}h[f]=r}}else for(let c=0;c<x;c++){const d=p.iget(c),f=d.re,l=d.im;let a=0,r=n;if(e==="left")for(;a<r;){const y=Math.floor((a+r)/2),A=t.iget(y);j(A.re,A.im,f,l)<0?a=y+1:r=y}else for(;a<r;){const y=Math.floor((a+r)/2),A=t.iget(y);j(A.re,A.im,f,l)<=0?a=y+1:r=y}h[c]=a}else if(m&&o)for(let c=0;c<x;c++){const d=Number(i[s+c]);let f=0,l=n;if(e==="left")for(;f<l;){const a=Math.floor((f+l)/2);Number(I[u+a])<d?f=a+1:l=a}else for(;f<l;){const a=Math.floor((f+l)/2);Number(I[u+a])<=d?f=a+1:l=a}h[c]=f}else for(let c=0;c<x;c++){const d=Number(p.iget(c));let f=0,l=n;if(e==="left")for(;f<l;){const a=Math.floor((f+l)/2);Number(t.iget(a))<d?f=a+1:l=a}else for(;f<l;){const a=Math.floor((f+l)/2);Number(t.iget(a))<=d?f=a+1:l=a}h[c]=f}return v}function Ut(t,p){const e=nt(t,p);if(e)return e;const n=p.dtype,x=$(t.dtype),b=$(n),m=Math.min(t.size,p.size),I=t.isCContiguous,u=t.data,o=t.offset,i=p.isCContiguous,s=p.data,v=p.offset;let h=0;if(I)for(let l=0;l<m;l++)E(u,o+l,x)&&h++;else for(let l=0;l<m;l++){const a=t.iget(l);(x?a.re!==0||a.im!==0:a)&&h++}const c=M.zeros([h],n),d=c.data;let f=0;if(I&&i)if(L(n)){const l=d,a=s;for(let r=0;r<m;r++)E(u,o+r,x)&&(l[f++]=a[v+r])}else if(b){const l=d,a=s;for(let r=0;r<m;r++)E(u,o+r,x)&&(l[f*2]=a[(v+r)*2],l[f*2+1]=a[(v+r)*2+1],f++)}else for(let l=0;l<m;l++)E(u,o+l,x)&&(d[f++]=s[v+l]);else{const l=I?a=>E(u,o+a,x):a=>{const r=t.iget(a);if(x){const y=r;return y.re!==0||y.im!==0}return!!r};if(L(n)){const a=d;for(let r=0;r<m;r++)l(r)&&(a[f++]=p.iget(r))}else if(b){const a=d;for(let r=0;r<m;r++)if(l(r)){const y=p.iget(r);a[f*2]=y.re,a[f*2+1]=y.im,f++}}else for(let a=0;a<m;a++)l(a)&&(d[f++]=p.iget(a))}return c}function mt(t,p){const e=t.shape,n=e.length,x=t.data,b=t.size,m=t.offset,I=t.strides,u=$(t.dtype),o=t.isCContiguous;if(p===void 0){const a=Z(t);if(a!==null)return a;let r=0;if(o)for(let y=0;y<b;y++)E(x,m+y,u)&&r++;else for(let y=0;y<b;y++){const A=t.iget(y);if(u){const N=A;(N.re!==0||N.im!==0)&&r++}else A!==0&&A!==BigInt(0)&&r++}return r}let i=p;if(i<0&&(i=n+i),i<0||i>=n)throw new Error(`axis ${p} is out of bounds for array of dimension ${n}`);const s=Array.from(e).filter((a,r)=>r!==i);if(s.length===0)return mt(t);const v=M.zeros(s,"int32"),h=v.data,c=e[i],d=s.reduce((a,r)=>a*r,1),{baseOffsets:f,axisStride:l}=_(e,I,m,i,d);for(let a=0;a<d;a++){let r=0,y=f[a];for(let A=0;A<c;A++)E(x,y,u)&&r++,y+=l;h[a]=r}return v}export{Tt as argpartition,Ft as argsort,Mt as argwhere,mt as count_nonzero,Ut as extract,$t as flatnonzero,Dt as lexsort,ct as nonzero,Bt as partition,Rt as searchsorted,Ct as sort,Ot as sort_complex,Et as where};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ArrayStorage as S}from"../storage";import{isComplexDType as R,throwIfComplex as q}from"../dtype";function te(A,d,N=0){q(A.dtype,"bincount","bincount requires integer input.");const p=A.data,g=A.size;let f=0;for(let n=0;n<g;n++){const e=Number(p[n]);if(e<0||!Number.isInteger(e))throw new Error("'x' argument must contain non-negative integers");e>f&&(f=e)}const s=Math.max(f+1,N);if(d!==void 0){if(d.size!==g)throw new Error("weights array must have same length as x");const n=d.data,e=new Float64Array(s);for(let r=0;r<g;r++){const u=Number(p[r]);e[u]+=Number(n[r])}return S.fromData(e,[s],"float64")}else{const n=new Float64Array(s);for(let e=0;e<g;e++){const r=Number(p[e]);n[r]++}return S.fromData(n,[s],"float64")}}function re(A,d,N=!1){q(A.dtype,"digitize","digitize requires real numbers."),q(d.dtype,"digitize","digitize requires real numbers.");const p=A.data,g=d.data,f=A.size,s=d.size,n=new Float64Array(f);let e=!0;s>1&&(e=Number(g[1])>=Number(g[0]));for(let r=0;r<f;r++){const u=Number(p[r]);let l;if(e)N?l=K(g,s,u):l=Y(g,s,u);else if(N)for(l=0;l<s&&Number(g[l])>=u;)l++;else for(l=0;l<s&&Number(g[l])>u;)l++;n[r]=l}return S.fromData(n,[...A.shape],"float64")}function K(A,d,N){let p=0,g=d;for(;p<g;){const f=p+g>>>1;Number(A[f])<N?p=f+1:g=f}return p}function Y(A,d,N){let p=0,g=d;for(;p<g;){const f=p+g>>>1;Number(A[f])<=N?p=f+1:g=f}return p}function ae(A,d=10,N,p=!1,g){q(A.dtype,"histogram","histogram requires real numbers."),typeof d!="number"&&q(d.dtype,"histogram","histogram requires real numbers.");const f=A.data,s=A.size;let n;if(typeof d=="number"){let l,m;if(N)[l,m]=N;else{l=1/0,m=-1/0;for(let i=0;i<s;i++){const t=Number(f[i]);t<l&&(l=t),t>m&&(m=t)}l===m&&(l=l-.5,m=m+.5)}n=[];const F=(m-l)/d;for(let i=0;i<=d;i++)n.push(l+i*F)}else{const l=d.data;n=[];for(let m=0;m<d.size;m++)n.push(Number(l[m]))}const e=n.length-1,r=new Float64Array(e),u=g?.data;for(let l=0;l<s;l++){const m=Number(f[l]),F=u?Number(u[l]):1;let i=Y(n,n.length,m)-1;if(!(i<0)){if(i>=e)if(m===n[e])i=e-1;else continue;r[i]+=F}}if(p){let l=0;for(let m=0;m<e;m++)l+=r[m];for(let m=0;m<e;m++){const F=n[m+1]-n[m];r[m]=r[m]/(l*F)}}return{hist:S.fromData(r,[e],"float64"),bin_edges:S.fromData(new Float64Array(n),[n.length],"float64")}}function oe(A,d,N=10,p,g=!1,f){q(A.dtype,"histogram2d","histogram2d requires real numbers."),q(d.dtype,"histogram2d","histogram2d requires real numbers.");const s=A.data,n=d.data,e=A.size;if(d.size!==e)throw new Error("x and y must have the same length");let r,u,l,m;if(typeof N=="number"?(l=N,m=N):Array.isArray(N)&&N.length===2?(N[0],l=N[0],m=N[1]):(l=10,m=10),typeof l=="number"){let a,o;if(p)[a,o]=p[0];else{a=1/0,o=-1/0;for(let b=0;b<e;b++){const y=Number(s[b]);y<a&&(a=y),y>o&&(o=y)}a===o&&(a-=.5,o+=.5)}r=[];const c=(o-a)/l;for(let b=0;b<=l;b++)r.push(a+b*c)}else{const a=l.data;r=[];for(let o=0;o<l.size;o++)r.push(Number(a[o]))}if(typeof m=="number"){let a,o;if(p)[a,o]=p[1];else{a=1/0,o=-1/0;for(let b=0;b<e;b++){const y=Number(n[b]);y<a&&(a=y),y>o&&(o=y)}a===o&&(a-=.5,o+=.5)}u=[];const c=(o-a)/m;for(let b=0;b<=m;b++)u.push(a+b*c)}else{const a=m.data;u=[];for(let o=0;o<m.size;o++)u.push(Number(a[o]))}const F=r.length-1,i=u.length-1,t=new Float64Array(F*i),h=f?.data;for(let a=0;a<e;a++){const o=Number(s[a]),c=Number(n[a]),b=h?Number(h[a]):1;let y=Y(r,r.length,o)-1,w=Y(u,u.length,c)-1;if(y<0||y>=F)if(o===r[F]&&y===F)y=F-1;else continue;if(w<0||w>=i)if(c===u[i]&&w===i)w=i-1;else continue;t[y*i+w]+=b}if(g){let a=0;for(let o=0;o<t.length;o++)a+=t[o];for(let o=0;o<F;o++)for(let c=0;c<i;c++){const b=r[o+1]-r[o],y=u[c+1]-u[c],w=b*y;t[o*i+c]=t[o*i+c]/(a*w)}}return{hist:S.fromData(t,[F,i],"float64"),x_edges:S.fromData(new Float64Array(r),[r.length],"float64"),y_edges:S.fromData(new Float64Array(u),[u.length],"float64")}}function ne(A,d=10,N,p=!1,g){q(A.dtype,"histogramdd","histogramdd requires real numbers.");const f=A.shape,s=A.data;let n,e;if(f.length===1)n=f[0],e=1;else if(f.length===2)n=f[0],e=f[1];else throw new Error("sample must be 1D or 2D array");let r;if(typeof d=="number")r=new Array(e).fill(d);else if(r=d,r.length!==e)throw new Error("bins array length must match number of dimensions");const u=[];for(let a=0;a<e;a++){let o,c;if(N&&N[a])[o,c]=N[a];else{o=1/0,c=-1/0;for(let x=0;x<n;x++){const D=Number(e===1?s[x]:s[x*e+a]);D<o&&(o=D),D>c&&(c=D)}o===c&&(o-=.5,c+=.5)}const b=r[a],y=[],w=(c-o)/b;for(let x=0;x<=b;x++)y.push(o+x*w);u.push(y)}const l=r.slice(),m=l.reduce((a,o)=>a*o,1),F=new Float64Array(m),i=new Array(e);i[e-1]=1;for(let a=e-2;a>=0;a--)i[a]=i[a+1]*r[a+1];const t=g?.data;for(let a=0;a<n;a++){const o=t?Number(t[a]):1;let c=0,b=!1;for(let y=0;y<e;y++){const w=Number(e===1?s[a]:s[a*e+y]),x=u[y],D=r[y];let v=Y(x,x.length,w)-1;if(v<0||v>=D)if(w===x[D]&&v===D)v=D-1;else{b=!0;break}c+=v*i[y]}b||(F[c]+=o)}if(p){let a=0;for(let c=0;c<m;c++)a+=F[c];const o=new Float64Array(m);for(let c=0;c<m;c++){let b=1,y=c;for(let w=0;w<e;w++){const x=Math.floor(y/i[w])%r[w],D=u[w];b*=D[x+1]-D[x]}o[c]=b}for(let c=0;c<m;c++)F[c]=F[c]/(a*o[c])}const h=u.map(a=>S.fromData(new Float64Array(a),[a.length],"float64"));return{hist:S.fromData(F,l,"float64"),edges:h}}function P(A,d,N="full"){const p=A.data,g=d.data,f=A.size,s=d.size,n=R(A.dtype)||R(d.dtype),e=f+s-1;if(n){const u=new Float64Array(e),l=new Float64Array(e),m=R(A.dtype),F=R(d.dtype);for(let t=0;t<e;t++){let h=0,a=0;const o=t-s+1;for(let c=0;c<f;c++){const b=c-o;if(b>=0&&b<s){let y,w,x,D;m?(y=p[c*2],w=p[c*2+1]):(y=Number(p[c]),w=0),F?(x=g[b*2],D=g[b*2+1]):(x=Number(g[b]),D=0),h+=y*x+w*D,a+=w*x-y*D}}u[t]=h,l[t]=a}const i=(t,h,a,o=0)=>{const c=new Float64Array(a*2);for(let b=0;b<a;b++)c[b*2]=t[o+b],c[b*2+1]=h[o+b];return S.fromData(c,[a],"complex128")};if(N==="full")return i(u,l,e);if(N==="same"){const t=Math.floor((e-f)/2);return i(u,l,f,t)}else{const t=Math.max(f,s)-Math.min(f,s)+1,h=Math.min(f,s)-1;return i(u,l,t,h)}}const r=new Float64Array(e);for(let u=0;u<e;u++){let l=0;const m=u-s+1;for(let F=0;F<f;F++){const i=F-m;i>=0&&i<s&&(l+=Number(p[F])*Number(g[i]))}r[u]=l}if(N==="full")return S.fromData(r,[e],"float64");if(N==="same"){const u=Math.floor((e-f)/2),l=new Float64Array(f);for(let m=0;m<f;m++)l[m]=r[u+m];return S.fromData(l,[f],"float64")}else{const u=Math.max(f,s)-Math.min(f,s)+1,l=Math.min(f,s)-1,m=new Float64Array(u);for(let F=0;F<u;F++)m[F]=r[l+F];return S.fromData(m,[u],"float64")}}function se(A,d,N="full"){const p=d.data,g=d.size,f=R(d.dtype);let s;if(f){const n=new Float64Array(g*2);for(let e=0;e<g;e++){const r=g-1-e;n[e*2]=p[r*2],n[e*2+1]=p[r*2+1]}s=S.fromData(n,[g],d.dtype)}else{const n=new Float64Array(g);for(let e=0;e<g;e++)n[e]=Number(p[g-1-e]);s=S.fromData(n,[g],"float64")}if(f){const n=s.data;for(let e=0;e<g;e++)n[e*2+1]=-n[e*2+1]}return P(A,s,N)}function Q(A,d,N=!0,p=!1,g){const f=A.shape,s=A.data,n=R(A.dtype)||d!==void 0&&R(d.dtype);let e;if(g!==void 0?e=g:e=p?0:1,f.length===1)if(d!==void 0){const i=d.data,t=A.size,h=R(A.dtype),a=R(d.dtype);if(d.size!==t)throw new Error("m and y must have same length");if(n){let D=0,v=0,z=0,I=0;for(let M=0;M<t;M++)h?(D+=s[M*2],v+=s[M*2+1]):D+=Number(s[M]),a?(z+=i[M*2],I+=i[M*2+1]):z+=Number(i[M]);D/=t,v/=t,z/=t,I/=t;let W=0,G=0,k=0,H=0,J=0,L=0,T=0,$=0;for(let M=0;M<t;M++){let _,E,C,j;h?(_=s[M*2]-D,E=s[M*2+1]-v):(_=Number(s[M])-D,E=0),a?(C=i[M*2]-z,j=i[M*2+1]-I):(C=Number(i[M])-z,j=0),W+=_*_+E*E,k+=C*C+j*j,J+=_*C+E*j,L+=E*C-_*j,T+=C*_+j*E,$+=j*_-C*E}const V=t-e;if(V<=0){const M=new Float64Array(8);return M.fill(NaN),S.fromData(M,[2,2],"complex128")}W/=V,k/=V,J/=V,L/=V,T/=V,$/=V;const B=new Float64Array(8);return B[0]=W,B[1]=G,B[2]=J,B[3]=L,B[4]=T,B[5]=$,B[6]=k,B[7]=H,S.fromData(B,[2,2],"complex128")}let o=0,c=0;for(let D=0;D<t;D++)o+=Number(s[D]),c+=Number(i[D]);o/=t,c/=t;let b=0,y=0,w=0;for(let D=0;D<t;D++){const v=Number(s[D])-o,z=Number(i[D])-c;b+=v*v,y+=z*z,w+=v*z}const x=t-e;return x<=0?S.fromData(new Float64Array([NaN,NaN,NaN,NaN]),[2,2],"float64"):(b/=x,y/=x,w/=x,S.fromData(new Float64Array([b,w,w,y]),[2,2],"float64"))}else{const i=A.size;if(n){let o=0,c=0;for(let w=0;w<i;w++)o+=s[w*2],c+=s[w*2+1];o/=i,c/=i;let b=0;for(let w=0;w<i;w++){const x=s[w*2]-o,D=s[w*2+1]-c;b+=x*x+D*D}const y=i-e;return y<=0?S.fromData(new Float64Array([NaN,0]),[],"complex128"):(b/=y,S.fromData(new Float64Array([b,0]),[],"complex128"))}let t=0;for(let o=0;o<i;o++)t+=Number(s[o]);t/=i;let h=0;for(let o=0;o<i;o++){const c=Number(s[o])-t;h+=c*c}const a=i-e;return a<=0?S.fromData(new Float64Array([NaN]),[],"float64"):(h/=a,S.fromData(new Float64Array([h]),[],"float64"))}let r,u;N?(r=f[0],u=f[1]):(r=f[1],u=f[0]);const l=u-e;if(n){const i=new Float64Array(r),t=new Float64Array(r);for(let a=0;a<r;a++){let o=0,c=0;for(let b=0;b<u;b++){const y=N?a*u+b:b*r+a;o+=s[y*2],c+=s[y*2+1]}i[a]=o/u,t[a]=c/u}const h=new Float64Array(r*r*2);if(l<=0)return h.fill(NaN),S.fromData(h,[r,r],"complex128");for(let a=0;a<r;a++)for(let o=0;o<r;o++){let c=0,b=0;for(let w=0;w<u;w++){const x=N?a*u+w:w*r+a,D=N?o*u+w:w*r+o,v=s[x*2]-i[a],z=s[x*2+1]-t[a],I=s[D*2]-i[o],W=s[D*2+1]-t[o];c+=v*I+z*W,b+=z*I-v*W}const y=(a*r+o)*2;h[y]=c/l,h[y+1]=b/l}return S.fromData(h,[r,r],"complex128")}const m=new Float64Array(r);for(let i=0;i<r;i++){let t=0;for(let h=0;h<u;h++){const a=N?i*u+h:h*r+i;t+=Number(s[a])}m[i]=t/u}const F=new Float64Array(r*r);if(l<=0)return F.fill(NaN),S.fromData(F,[r,r],"float64");for(let i=0;i<r;i++)for(let t=i;t<r;t++){let h=0;for(let o=0;o<u;o++){const c=N?i*u+o:o*r+i,b=N?t*u+o:o*r+t,y=Number(s[c])-m[i],w=Number(s[b])-m[t];h+=y*w}const a=h/l;F[i*r+t]=a,F[t*r+i]=a}return S.fromData(F,[r,r],"float64")}function le(A,d,N=!0){const p=R(A.dtype)||d!==void 0&&R(d.dtype);if(A.shape.length===1&&d===void 0)return p?S.fromData(new Float64Array([1,0]),[],"complex128"):S.fromData(new Float64Array([1]),[],"float64");const g=Q(A,d,N,!1),f=g.data,n=g.shape[0];if(p){const r=new Float64Array(n*n*2);for(let u=0;u<n;u++)for(let l=0;l<n;l++){const m=f[(u*n+l)*2],F=f[(u*n+l)*2+1],i=f[(u*n+u)*2],t=f[(l*n+l)*2],h=(u*n+l)*2;if(i<=0||t<=0)r[h]=NaN,r[h+1]=NaN;else{const a=Math.sqrt(i*t);r[h]=m/a,r[h+1]=F/a}}return S.fromData(r,[n,n],"complex128")}const e=new Float64Array(n*n);for(let r=0;r<n;r++)for(let u=0;u<n;u++){const l=Number(f[r*n+u]),m=Number(f[r*n+r]),F=Number(f[u*n+u]);m<=0||F<=0?e[r*n+u]=NaN:e[r*n+u]=l/Math.sqrt(m*F)}return S.fromData(e,[n,n],"float64")}function ie(A,d=10,N,p){q(A.dtype,"histogram_bin_edges","histogram_bin_edges requires real numbers.");const g=A.data,f=A.size;let s,n;if(N)[s,n]=N;else{s=1/0,n=-1/0;for(let l=0;l<f;l++){const m=Number(g[l]);isNaN(m)||(m<s&&(s=m),m>n&&(n=m))}!isFinite(s)||!isFinite(n)?(s=0,n=1):s===n&&(s=s-.5,n=n+.5)}let e;typeof d=="number"?e=d:e=O(g,f,s,n,d),e=Math.max(1,Math.round(e));const r=new Float64Array(e+1),u=(n-s)/e;for(let l=0;l<=e;l++)r[l]=s+l*u;return S.fromData(r,[e+1],"float64")}function O(A,d,N,p,g){if(d===0)return 1;const f=p-N;if(f===0)return 1;const s=[];let n=0;for(let t=0;t<d;t++){const h=Number(A[t]);isNaN(h)||(s.push(h),n+=h)}const e=s.length;if(e===0)return 1;const r=n/e;let u=0;for(let t=0;t<e;t++){const h=s[t]-r;u+=h*h}const l=Math.sqrt(u/e);s.sort((t,h)=>t-h);const m=s[Math.floor(e*.25)]??0,i=(s[Math.floor(e*.75)]??0)-m;switch(g){case"sqrt":return Math.ceil(Math.sqrt(e));case"sturges":return Math.ceil(Math.log2(e)+1);case"rice":return Math.ceil(2*Math.pow(e,1/3));case"scott":{if(l===0)return 1;const t=3.5*l/Math.pow(e,1/3);return Math.ceil(f/t)}case"fd":{if(i===0)return O(A,d,N,p,"sturges");const t=2*i/Math.pow(e,1/3);return Math.ceil(f/t)}case"doane":{const t=U(s,r,l),h=Math.sqrt(6*(e-2)/((e+1)*(e+3)));return Math.ceil(1+Math.log2(e)+Math.log2(1+Math.abs(t)/h))}case"stone":return O(A,d,N,p,"sturges");default:{const t=Math.ceil(Math.log2(e)+1),h=i===0?t:Math.ceil(f/(2*i/Math.pow(e,1/3)));return Math.max(t,h)}}}function U(A,d,N){if(N===0)return 0;const p=A.length;let g=0;for(let f=0;f<p;f++)g+=Math.pow((A[f]-d)/N,3);return g/p}function ue(A,d,N=1,p=-1){q(A.dtype,"trapezoid","trapezoid requires real numbers."),d!==void 0&&q(d.dtype,"trapezoid","trapezoid requires real numbers.");const g=Array.from(A.shape),f=g.length;if(p<0&&(p=f+p),p<0||p>=f)throw new Error(`axis ${p} is out of bounds for array of dimension ${f}`);const s=g[p];if(s<2)throw new Error("trapezoid requires at least 2 samples along axis");let n;if(d!==void 0){if(d.size!==s)throw new Error(`x array size (${d.size}) must match y axis size (${s})`);const t=d.data;n=new Float64Array(s);for(let h=0;h<s;h++)n[h]=Number(t[h])}else{n=new Float64Array(s);for(let t=0;t<s;t++)n[t]=t*N}const e=[...g];if(e.splice(p,1),f===1){const t=A.data;let h=0;for(let a=0;a<s-1;a++){const o=Number(t[a]),c=Number(t[a+1]),b=n[a+1]-n[a];h+=.5*(o+c)*b}return h}const r=e.reduce((t,h)=>t*h,1),u=new Float64Array(r),l=new Array(f);let m=1;for(let t=f-1;t>=0;t--)l[t]=m,m*=g[t];const F=new Array(e.length);m=1;for(let t=e.length-1;t>=0;t--)F[t]=m,m*=e[t];const i=A.data;for(let t=0;t<r;t++){const h=[];let a=t;for(let y=0;y<e.length;y++){const w=Math.floor(a/F[y]);a%=F[y],h.push(w)}const o=[];let c=0;for(let y=0;y<f;y++)y===p?o.push(0):(o.push(h[c]),c++);let b=0;for(let y=0;y<s-1;y++){o[p]=y;let w=0;for(let I=0;I<f;I++)w+=o[I]*l[I];o[p]=y+1;let x=0;for(let I=0;I<f;I++)x+=o[I]*l[I];const D=Number(i[w]),v=Number(i[x]),z=n[y+1]-n[y];b+=.5*(D+v)*z}u[t]=b}return e.length===0?u[0]:S.fromData(u,e,"float64")}export{te as bincount,se as convolve,le as corrcoef,P as correlate,Q as cov,re as digitize,ae as histogram,oe as histogram2d,ie as histogram_bin_edges,ne as histogramdd,ue as trapezoid};
|
|
1
|
+
import{ArrayStorage as x}from"../storage";import{isComplexDType as R,throwIfComplex as q}from"../dtype";import{wasmCorrelate as P}from"../wasm/correlate";import{wasmConvolve as Q}from"../wasm/convolve";function st(p,y,w=0){q(p.dtype,"bincount","bincount requires integer input.");const b=p.data,F=p.size;let f=0;for(let u=0;u<F;u++){const t=Number(b[u]);if(t<0||!Number.isInteger(t))throw new Error("'x' argument must contain non-negative integers");t>f&&(f=t)}const l=Math.max(f+1,w);if(y!==void 0){if(y.size!==F)throw new Error("weights array must have same length as x");const u=y.data,t=new Float64Array(l);for(let a=0;a<F;a++){const c=Number(b[a]);t[c]+=Number(u[a])}return x.fromData(t,[l],"float64")}else{const u=new Float64Array(l);for(let t=0;t<F;t++){const a=Number(b[t]);u[a]++}return x.fromData(u,[l],"float64")}}function lt(p,y,w=!1){q(p.dtype,"digitize","digitize requires real numbers."),q(y.dtype,"digitize","digitize requires real numbers.");const b=p.data,F=y.data,f=p.size,l=y.size,u=new Float64Array(f);let t=!0;l>1&&(t=Number(F[1])>=Number(F[0]));for(let a=0;a<f;a++){const c=Number(b[a]);let r;if(t)w?r=U(F,l,c):r=Y(F,l,c);else if(w)for(r=0;r<l&&Number(F[r])>=c;)r++;else for(r=0;r<l&&Number(F[r])>c;)r++;u[a]=r}return x.fromData(u,[...p.shape],"float64")}function U(p,y,w){let b=0,F=y;for(;b<F;){const f=b+F>>>1;Number(p[f])<w?b=f+1:F=f}return b}function Y(p,y,w){let b=0,F=y;for(;b<F;){const f=b+F>>>1;Number(p[f])<=w?b=f+1:F=f}return b}function it(p,y=10,w,b=!1,F){q(p.dtype,"histogram","histogram requires real numbers."),typeof y!="number"&&q(y.dtype,"histogram","histogram requires real numbers.");const f=p.data,l=p.size;let u;if(typeof y=="number"){let r,o;if(w)[r,o]=w;else{r=1/0,o=-1/0;for(let A=0;A<l;A++){const e=Number(f[A]);e<r&&(r=e),e>o&&(o=e)}r===o&&(r=r-.5,o=o+.5)}u=[];const g=(o-r)/y;for(let A=0;A<=y;A++)u.push(r+A*g)}else{const r=y.data;u=[];for(let o=0;o<y.size;o++)u.push(Number(r[o]))}const t=u.length-1,a=new Float64Array(t),c=F?.data;for(let r=0;r<l;r++){const o=Number(f[r]),g=c?Number(c[r]):1;let A=Y(u,u.length,o)-1;if(!(A<0)){if(A>=t)if(o===u[t])A=t-1;else continue;a[A]+=g}}if(b){let r=0;for(let o=0;o<t;o++)r+=a[o];for(let o=0;o<t;o++){const g=u[o+1]-u[o];a[o]=a[o]/(r*g)}}return{hist:x.fromData(a,[t],"float64"),bin_edges:x.fromData(new Float64Array(u),[u.length],"float64")}}function ut(p,y,w=10,b,F=!1,f){q(p.dtype,"histogram2d","histogram2d requires real numbers."),q(y.dtype,"histogram2d","histogram2d requires real numbers.");const l=p.data,u=y.data,t=p.size;if(y.size!==t)throw new Error("x and y must have the same length");let a,c,r,o;if(typeof w=="number"?(r=w,o=w):Array.isArray(w)&&w.length===2?(w[0],r=w[0],o=w[1]):(r=10,o=10),typeof r=="number"){let s,n;if(b)[s,n]=b[0];else{s=1/0,n=-1/0;for(let h=0;h<t;h++){const m=Number(l[h]);m<s&&(s=m),m>n&&(n=m)}s===n&&(s-=.5,n+=.5)}a=[];const i=(n-s)/r;for(let h=0;h<=r;h++)a.push(s+h*i)}else{const s=r.data;a=[];for(let n=0;n<r.size;n++)a.push(Number(s[n]))}if(typeof o=="number"){let s,n;if(b)[s,n]=b[1];else{s=1/0,n=-1/0;for(let h=0;h<t;h++){const m=Number(u[h]);m<s&&(s=m),m>n&&(n=m)}s===n&&(s-=.5,n+=.5)}c=[];const i=(n-s)/o;for(let h=0;h<=o;h++)c.push(s+h*i)}else{const s=o.data;c=[];for(let n=0;n<o.size;n++)c.push(Number(s[n]))}const g=a.length-1,A=c.length-1,e=new Float64Array(g*A),d=f?.data;for(let s=0;s<t;s++){const n=Number(l[s]),i=Number(u[s]),h=d?Number(d[s]):1;let m=Y(a,a.length,n)-1,D=Y(c,c.length,i)-1;if(m<0||m>=g)if(n===a[g]&&m===g)m=g-1;else continue;if(D<0||D>=A)if(i===c[A]&&D===A)D=A-1;else continue;e[m*A+D]+=h}if(F){let s=0;for(let n=0;n<e.length;n++)s+=e[n];for(let n=0;n<g;n++)for(let i=0;i<A;i++){const h=a[n+1]-a[n],m=c[i+1]-c[i],D=h*m;e[n*A+i]=e[n*A+i]/(s*D)}}return{hist:x.fromData(e,[g,A],"float64"),x_edges:x.fromData(new Float64Array(a),[a.length],"float64"),y_edges:x.fromData(new Float64Array(c),[c.length],"float64")}}function ft(p,y=10,w,b=!1,F){q(p.dtype,"histogramdd","histogramdd requires real numbers.");const f=p.shape,l=p.data;let u,t;if(f.length===1)u=f[0],t=1;else if(f.length===2)u=f[0],t=f[1];else throw new Error("sample must be 1D or 2D array");let a;if(typeof y=="number")a=new Array(t).fill(y);else if(a=y,a.length!==t)throw new Error("bins array length must match number of dimensions");const c=[];for(let s=0;s<t;s++){let n,i;if(w&&w[s])[n,i]=w[s];else{n=1/0,i=-1/0;for(let N=0;N<u;N++){const S=Number(t===1?l[N]:l[N*t+s]);S<n&&(n=S),S>i&&(i=S)}n===i&&(n-=.5,i+=.5)}const h=a[s],m=[],D=(i-n)/h;for(let N=0;N<=h;N++)m.push(n+N*D);c.push(m)}const r=a.slice(),o=r.reduce((s,n)=>s*n,1),g=new Float64Array(o),A=new Array(t);A[t-1]=1;for(let s=t-2;s>=0;s--)A[s]=A[s+1]*a[s+1];const e=F?.data;for(let s=0;s<u;s++){const n=e?Number(e[s]):1;let i=0,h=!1;for(let m=0;m<t;m++){const D=Number(t===1?l[s]:l[s*t+m]),N=c[m],S=a[m];let M=Y(N,N.length,D)-1;if(M<0||M>=S)if(D===N[S]&&M===S)M=S-1;else{h=!0;break}i+=M*A[m]}h||(g[i]+=n)}if(b){let s=0;for(let i=0;i<o;i++)s+=g[i];const n=new Float64Array(o);for(let i=0;i<o;i++){let h=1,m=i;for(let D=0;D<t;D++){const N=Math.floor(m/A[D])%a[D],S=c[D];h*=S[N+1]-S[N]}n[i]=h}for(let i=0;i<o;i++)g[i]=g[i]/(s*n[i])}const d=c.map(s=>x.fromData(new Float64Array(s),[s.length],"float64"));return{hist:x.fromData(g,r,"float64"),edges:d}}function X(p,y,w="full"){const b=p.data,F=y.data,f=p.size,l=y.size,u=R(p.dtype)||R(y.dtype),t=f+l-1;if(u){const r=new Float64Array(t),o=new Float64Array(t),g=R(p.dtype),A=R(y.dtype);for(let d=0;d<t;d++){let s=0,n=0;const i=d-l+1;for(let h=0;h<f;h++){const m=h-i;if(m>=0&&m<l){let D,N,S,M;g?(D=b[h*2],N=b[h*2+1]):(D=Number(b[h]),N=0),A?(S=F[m*2],M=F[m*2+1]):(S=Number(F[m]),M=0),s+=D*S+N*M,n+=N*S-D*M}}r[d]=s,o[d]=n}const e=(d,s,n,i=0)=>{const h=new Float64Array(n*2);for(let m=0;m<n;m++)h[m*2]=d[i+m],h[m*2+1]=s[i+m];return x.fromData(h,[n],"complex128")};if(w==="full")return e(r,o,t);if(w==="same"){const d=Math.floor((t-f)/2);return e(r,o,f,d)}else{const d=Math.max(f,l)-Math.min(f,l)+1,s=Math.min(f,l)-1;return e(r,o,d,s)}}const a=P(p,y);if(a){if(w==="full")return a;const r=a.data;if(w==="same"){const o=Math.floor((t-f)/2),g=new Float64Array(f);for(let A=0;A<f;A++)g[A]=r[o+A];return x.fromData(g,[f],a.dtype)}else{const o=Math.max(f,l)-Math.min(f,l)+1,g=Math.min(f,l)-1,A=new Float64Array(o);for(let e=0;e<o;e++)A[e]=r[g+e];return x.fromData(A,[o],a.dtype)}}const c=new Float64Array(t);for(let r=0;r<t;r++){let o=0;const g=r-l+1;for(let A=0;A<f;A++){const e=A-g;e>=0&&e<l&&(o+=Number(b[A])*Number(F[e]))}c[r]=o}if(w==="full")return x.fromData(c,[t],"float64");if(w==="same"){const r=Math.floor((t-f)/2),o=new Float64Array(f);for(let g=0;g<f;g++)o[g]=c[r+g];return x.fromData(o,[f],"float64")}else{const r=Math.max(f,l)-Math.min(f,l)+1,o=Math.min(f,l)-1,g=new Float64Array(r);for(let A=0;A<r;A++)g[A]=c[o+A];return x.fromData(g,[r],"float64")}}function mt(p,y,w="full"){const b=y.size,F=p.size,f=R(y.dtype);if(!f&&!R(p.dtype)){const t=Q(p,y);if(t){const a=F+b-1;if(w==="full")return t;const c=t.data;if(w==="same"){const r=Math.floor((a-F)/2),o=new Float64Array(F);for(let g=0;g<F;g++)o[g]=c[r+g];return x.fromData(o,[F],t.dtype)}else{const r=Math.max(F,b)-Math.min(F,b)+1,o=Math.min(F,b)-1,g=new Float64Array(r);for(let A=0;A<r;A++)g[A]=c[o+A];return x.fromData(g,[r],t.dtype)}}}const l=y.data;let u;if(f){const t=new Float64Array(b*2);for(let a=0;a<b;a++){const c=b-1-a;t[a*2]=l[c*2],t[a*2+1]=l[c*2+1]}u=x.fromData(t,[b],y.dtype)}else{const t=new Float64Array(b);for(let a=0;a<b;a++)t[a]=Number(l[b-1-a]);u=x.fromData(t,[b],"float64")}if(f){const t=u.data;for(let a=0;a<b;a++)t[a*2+1]=-t[a*2+1]}return X(p,u,w)}function Z(p,y,w=!0,b=!1,F){const f=p.shape,l=p.data,u=R(p.dtype)||y!==void 0&&R(y.dtype);let t;if(F!==void 0?t=F:t=b?0:1,f.length===1)if(y!==void 0){const e=y.data,d=p.size,s=R(p.dtype),n=R(y.dtype);if(y.size!==d)throw new Error("m and y must have same length");if(u){let M=0,z=0,v=0,V=0;for(let I=0;I<d;I++)s?(M+=l[I*2],z+=l[I*2+1]):M+=Number(l[I]),n?(v+=e[I*2],V+=e[I*2+1]):v+=Number(e[I]);M/=d,z/=d,v/=d,V/=d;let W=0,H=0,k=0,K=0,J=0,T=0,$=0,O=0;for(let I=0;I<d;I++){let C,_,E,j;s?(C=l[I*2]-M,_=l[I*2+1]-z):(C=Number(l[I])-M,_=0),n?(E=e[I*2]-v,j=e[I*2+1]-V):(E=Number(e[I])-v,j=0),W+=C*C+_*_,k+=E*E+j*j,J+=C*E+_*j,T+=_*E-C*j,$+=E*C+j*_,O+=j*C-E*_}const L=d-t;if(L<=0){const I=new Float64Array(8);return I.fill(NaN),x.fromData(I,[2,2],"complex128")}W/=L,k/=L,J/=L,T/=L,$/=L,O/=L;const B=new Float64Array(8);return B[0]=W,B[1]=H,B[2]=J,B[3]=T,B[4]=$,B[5]=O,B[6]=k,B[7]=K,x.fromData(B,[2,2],"complex128")}let i=0,h=0;for(let M=0;M<d;M++)i+=Number(l[M]),h+=Number(e[M]);i/=d,h/=d;let m=0,D=0,N=0;for(let M=0;M<d;M++){const z=Number(l[M])-i,v=Number(e[M])-h;m+=z*z,D+=v*v,N+=z*v}const S=d-t;return S<=0?x.fromData(new Float64Array([NaN,NaN,NaN,NaN]),[2,2],"float64"):(m/=S,D/=S,N/=S,x.fromData(new Float64Array([m,N,N,D]),[2,2],"float64"))}else{const e=p.size;if(u){let i=0,h=0;for(let N=0;N<e;N++)i+=l[N*2],h+=l[N*2+1];i/=e,h/=e;let m=0;for(let N=0;N<e;N++){const S=l[N*2]-i,M=l[N*2+1]-h;m+=S*S+M*M}const D=e-t;return D<=0?x.fromData(new Float64Array([NaN,0]),[],"complex128"):(m/=D,x.fromData(new Float64Array([m,0]),[],"complex128"))}let d=0;for(let i=0;i<e;i++)d+=Number(l[i]);d/=e;let s=0;for(let i=0;i<e;i++){const h=Number(l[i])-d;s+=h*h}const n=e-t;return n<=0?x.fromData(new Float64Array([NaN]),[],"float64"):(s/=n,x.fromData(new Float64Array([s]),[],"float64"))}let a,c;w?(a=f[0],c=f[1]):(a=f[1],c=f[0]);const r=c-t;if(u){const e=new Float64Array(a),d=new Float64Array(a);for(let n=0;n<a;n++){let i=0,h=0;for(let m=0;m<c;m++){const D=w?n*c+m:m*a+n;i+=l[D*2],h+=l[D*2+1]}e[n]=i/c,d[n]=h/c}const s=new Float64Array(a*a*2);if(r<=0)return s.fill(NaN),x.fromData(s,[a,a],"complex128");for(let n=0;n<a;n++)for(let i=0;i<a;i++){let h=0,m=0;for(let N=0;N<c;N++){const S=w?n*c+N:N*a+n,M=w?i*c+N:N*a+i,z=l[S*2]-e[n],v=l[S*2+1]-d[n],V=l[M*2]-e[i],W=l[M*2+1]-d[i];h+=z*V+v*W,m+=v*V-z*W}const D=(n*a+i)*2;s[D]=h/r,s[D+1]=m/r}return x.fromData(s,[a,a],"complex128")}const o=new Float64Array(a*c);for(let e=0;e<a;e++){let d=0;for(let i=0;i<c;i++){const h=w?e*c+i:i*a+e;d+=Number(l[h])}const s=d/c,n=e*c;for(let i=0;i<c;i++){const h=w?e*c+i:i*a+e;o[n+i]=Number(l[h])-s}}const g=new Float64Array(a*a);if(r<=0)return g.fill(NaN),x.fromData(g,[a,a],"float64");const A=1/r;for(let e=0;e<a;e++){const d=e*c;for(let s=e;s<a;s++){const n=s*c;let i=0;for(let m=0;m<c;m++)i+=o[d+m]*o[n+m];const h=i*A;g[e*a+s]=h,g[s*a+e]=h}}return x.fromData(g,[a,a],"float64")}function ct(p,y,w=!0){const b=R(p.dtype)||y!==void 0&&R(y.dtype);if(p.shape.length===1&&y===void 0)return b?x.fromData(new Float64Array([1,0]),[],"complex128"):x.fromData(new Float64Array([1]),[],"float64");const F=Z(p,y,w,!1),f=F.data,u=F.shape[0];if(b){const r=new Float64Array(u*u*2);for(let o=0;o<u;o++)for(let g=0;g<u;g++){const A=f[(o*u+g)*2],e=f[(o*u+g)*2+1],d=f[(o*u+o)*2],s=f[(g*u+g)*2],n=(o*u+g)*2;if(d<=0||s<=0)r[n]=NaN,r[n+1]=NaN;else{const i=Math.sqrt(d*s);r[n]=A/i,r[n+1]=e/i}}return x.fromData(r,[u,u],"complex128")}const t=new Float64Array(u*u),a=f,c=new Float64Array(u);for(let r=0;r<u;r++){const o=a[r*u+r];c[r]=o>0?1/Math.sqrt(o):NaN}for(let r=0;r<u;r++)for(let o=r;o<u;o++){const g=a[r*u+o]*c[r]*c[o];t[r*u+o]=g,t[o*u+r]=g}return x.fromData(t,[u,u],"float64")}function dt(p,y=10,w,b){q(p.dtype,"histogram_bin_edges","histogram_bin_edges requires real numbers.");const F=p.data,f=p.size;let l,u;if(w)[l,u]=w;else{l=1/0,u=-1/0;for(let r=0;r<f;r++){const o=Number(F[r]);isNaN(o)||(o<l&&(l=o),o>u&&(u=o))}!isFinite(l)||!isFinite(u)?(l=0,u=1):l===u&&(l=l-.5,u=u+.5)}let t;typeof y=="number"?t=y:t=G(F,f,l,u,y),t=Math.max(1,Math.round(t));const a=new Float64Array(t+1),c=(u-l)/t;for(let r=0;r<=t;r++)a[r]=l+r*c;return x.fromData(a,[t+1],"float64")}function G(p,y,w,b,F){if(y===0)return 1;const f=b-w;if(f===0)return 1;const l=[];let u=0;for(let e=0;e<y;e++){const d=Number(p[e]);isNaN(d)||(l.push(d),u+=d)}const t=l.length;if(t===0)return 1;const a=u/t;let c=0;for(let e=0;e<t;e++){const d=l[e]-a;c+=d*d}const r=Math.sqrt(c/t);l.sort((e,d)=>e-d);const o=l[Math.floor(t*.25)]??0,A=(l[Math.floor(t*.75)]??0)-o;switch(F){case"sqrt":return Math.ceil(Math.sqrt(t));case"sturges":return Math.ceil(Math.log2(t)+1);case"rice":return Math.ceil(2*Math.pow(t,1/3));case"scott":{if(r===0)return 1;const e=3.5*r/Math.pow(t,1/3);return Math.ceil(f/e)}case"fd":{if(A===0)return G(p,y,w,b,"sturges");const e=2*A/Math.pow(t,1/3);return Math.ceil(f/e)}case"doane":{const e=tt(l,a,r),d=Math.sqrt(6*(t-2)/((t+1)*(t+3)));return Math.ceil(1+Math.log2(t)+Math.log2(1+Math.abs(e)/d))}case"stone":return G(p,y,w,b,"sturges");default:{const e=Math.ceil(Math.log2(t)+1),d=A===0?e:Math.ceil(f/(2*A/Math.pow(t,1/3)));return Math.max(e,d)}}}function tt(p,y,w){if(w===0)return 0;const b=p.length;let F=0;for(let f=0;f<b;f++)F+=Math.pow((p[f]-y)/w,3);return F/b}function yt(p,y,w=1,b=-1){q(p.dtype,"trapezoid","trapezoid requires real numbers."),y!==void 0&&q(y.dtype,"trapezoid","trapezoid requires real numbers.");const F=Array.from(p.shape),f=F.length;if(b<0&&(b=f+b),b<0||b>=f)throw new Error(`axis ${b} is out of bounds for array of dimension ${f}`);const l=F[b];if(l<2)throw new Error("trapezoid requires at least 2 samples along axis");let u;if(y!==void 0){if(y.size!==l)throw new Error(`x array size (${y.size}) must match y axis size (${l})`);const e=y.data;u=new Float64Array(l);for(let d=0;d<l;d++)u[d]=Number(e[d])}else{u=new Float64Array(l);for(let e=0;e<l;e++)u[e]=e*w}const t=[...F];if(t.splice(b,1),f===1){const e=p.data;let d=0;for(let s=0;s<l-1;s++){const n=Number(e[s]),i=Number(e[s+1]),h=u[s+1]-u[s];d+=.5*(n+i)*h}return d}const a=t.reduce((e,d)=>e*d,1),c=new Float64Array(a),r=new Array(f);let o=1;for(let e=f-1;e>=0;e--)r[e]=o,o*=F[e];const g=new Array(t.length);o=1;for(let e=t.length-1;e>=0;e--)g[e]=o,o*=t[e];const A=p.data;for(let e=0;e<a;e++){const d=[];let s=e;for(let m=0;m<t.length;m++){const D=Math.floor(s/g[m]);s%=g[m],d.push(D)}const n=[];let i=0;for(let m=0;m<f;m++)m===b?n.push(0):(n.push(d[i]),i++);let h=0;for(let m=0;m<l-1;m++){n[b]=m;let D=0;for(let v=0;v<f;v++)D+=n[v]*r[v];n[b]=m+1;let N=0;for(let v=0;v<f;v++)N+=n[v]*r[v];const S=Number(A[D]),M=Number(A[N]),z=u[m+1]-u[m];h+=.5*(S+M)*z}c[e]=h}return t.length===0?c[0]:x.fromData(c,t,"float64")}export{st as bincount,mt as convolve,ct as corrcoef,X as correlate,Z as cov,lt as digitize,it as histogram,ut as histogram2d,dt as histogram_bin_edges,ft as histogramdd,yt as trapezoid};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ArrayStorage as h}from"../storage";import{elementwiseUnaryOp as g}from"../internal/compute";import{isBigIntDType as C,isComplexDType as
|
|
1
|
+
import{ArrayStorage as h}from"../storage";import{elementwiseUnaryOp as g}from"../internal/compute";import{isBigIntDType as C,isComplexDType as M,throwIfComplex as b}from"../dtype";import{wasmCos as R}from"../wasm/cos";import{wasmTan as v}from"../wasm/tan";import{wasmArcsin as F}from"../wasm/arcsin";import{wasmArccos as N}from"../wasm/arccos";import{wasmArctan as q}from"../wasm/arctan";import{wasmHypot as w,wasmHypotScalar as T}from"../wasm/hypot";function Y(t){const r=t.dtype;if(M(r)){const l=Array.from(t.shape),m=t.size,u=t.isCContiguous,y=h.zeros(l,r),i=y.data;if(u){const c=t.data,s=t.offset;for(let e=0;e<m;e++){const o=c[(s+e)*2],a=c[(s+e)*2+1];i[e*2]=Math.sin(o)*Math.cosh(a),i[e*2+1]=Math.cos(o)*Math.sinh(a)}}else for(let c=0;c<m;c++){const s=t.iget(c),e=s.re,o=s.im;i[c*2]=Math.sin(e)*Math.cosh(o),i[c*2+1]=Math.cos(e)*Math.sinh(o)}return y}return g(t,Math.sin,!1)}function _(t){const r=t.dtype;if(M(r)){const m=Array.from(t.shape),u=t.size,y=t.isCContiguous,i=h.zeros(m,r),c=i.data;if(y){const s=t.data,e=t.offset;for(let o=0;o<u;o++){const a=s[(e+o)*2],n=s[(e+o)*2+1];c[o*2]=Math.cos(a)*Math.cosh(n),c[o*2+1]=-Math.sin(a)*Math.sinh(n)}}else for(let s=0;s<u;s++){const e=t.iget(s),o=e.re,a=e.im;c[s*2]=Math.cos(o)*Math.cosh(a),c[s*2+1]=-Math.sin(o)*Math.sinh(a)}return i}const l=R(t);return l||g(t,Math.cos,!1)}function $(t){const r=t.dtype;if(M(r)){const m=Array.from(t.shape),u=t.size,y=t.isCContiguous,i=h.zeros(m,r),c=i.data;if(y){const s=t.data,e=t.offset;for(let o=0;o<u;o++){const a=s[(e+o)*2],n=s[(e+o)*2+1],f=Math.cos(2*a)+Math.cosh(2*n);c[o*2]=Math.sin(2*a)/f,c[o*2+1]=Math.sinh(2*n)/f}}else for(let s=0;s<u;s++){const e=t.iget(s),o=e.re,a=e.im,n=Math.cos(2*o)+Math.cosh(2*a);c[s*2]=Math.sin(2*o)/n,c[s*2+1]=Math.sinh(2*a)/n}return i}const l=v(t);return l||g(t,Math.tan,!1)}function x(t){const r=t.dtype;if(M(r)){const m=Array.from(t.shape),u=t.size,y=t.isCContiguous,i=h.zeros(m,r),c=i.data;if(y){const s=t.data,e=t.offset;for(let o=0;o<u;o++){const a=s[(e+o)*2],n=s[(e+o)*2+1],[f,p]=D(a,n);c[o*2]=f,c[o*2+1]=p}}else for(let s=0;s<u;s++){const e=t.iget(s),[o,a]=D(e.re,e.im);c[s*2]=o,c[s*2+1]=a}return i}const l=F(t);return l||g(t,Math.asin,!1)}function D(t,r){const l=-r,m=t,u=t*t-r*r,y=2*t*r,i=1-u,c=-y,s=Math.sqrt(i*i+c*c),e=Math.sqrt((s+i)/2),o=(c>=0?1:-1)*Math.sqrt((s-i)/2),a=l+e,n=m+o,f=Math.sqrt(a*a+n*n),p=Math.log(f);let S=Math.atan2(n,a),A=-p;return Math.abs(r)<1e-15&&t>1&&(A=-A),[S,A]}function tt(t){const r=t.dtype;if(M(r)){const m=Array.from(t.shape),u=t.size,y=t.isCContiguous,i=h.zeros(m,r),c=i.data;if(y){const s=t.data,e=t.offset;for(let o=0;o<u;o++){const a=s[(e+o)*2],n=s[(e+o)*2+1],[f,p]=z(a,n);c[o*2]=f,c[o*2+1]=p}}else for(let s=0;s<u;s++){const e=t.iget(s),[o,a]=z(e.re,e.im);c[s*2]=o,c[s*2+1]=a}return i}const l=N(t);return l||g(t,Math.acos,!1)}function z(t,r){const l=t*t-r*r,m=2*t*r,u=1-l,y=-m,i=Math.sqrt(u*u+y*y),c=Math.sqrt((i+u)/2),e=-((y>=0?1:-1)*Math.sqrt((i-u)/2)),o=c,a=t+e,n=r+o,f=Math.sqrt(a*a+n*n),p=Math.log(f);let S=Math.atan2(n,a),A=-p;return Math.abs(r)<1e-15&&t>1&&(A=-A),[S,A]}function ot(t){const r=t.dtype;if(M(r)){const m=Array.from(t.shape),u=t.size,y=t.isCContiguous,i=h.zeros(m,r),c=i.data;if(y){const s=t.data,e=t.offset;for(let o=0;o<u;o++){const a=s[(e+o)*2],n=s[(e+o)*2+1],[f,p]=I(a,n);c[o*2]=f,c[o*2+1]=p}}else for(let s=0;s<u;s++){const e=t.iget(s),[o,a]=I(e.re,e.im);c[s*2]=o,c[s*2+1]=a}return i}const l=q(t);return l||g(t,Math.atan,!1)}function I(t,r){const l=-r,m=t,u=1-l,y=-m,i=1+l,c=m,s=i*i+c*c,e=(u*i+y*c)/s,o=(y*i-u*c)/s,a=Math.sqrt(e*e+o*o),n=Math.log(a);return[-Math.atan2(o,e)/2,n/2]}function rt(t,r){return b(t.dtype,"arctan2","arctan2 is only defined for real numbers."),typeof r!="number"&&b(r.dtype,"arctan2","arctan2 is only defined for real numbers."),typeof r=="number"?Z(t,r):O(t,r)}function O(t,r){const l=Array.from(t.shape),m=t.size,u=t.dtype,y=r.dtype,i=u==="float32"&&y==="float32"?"float32":"float64",c=h.zeros(l,i),s=c.data,e=t.isCContiguous,o=r.isCContiguous;if(e&&o){const a=t.offset,n=r.offset;for(let f=0;f<m;f++){const p=Number(t.data[a+f]),d=Number(r.data[n+f]);s[f]=Math.atan2(p,d)}}else if(e){const a=t.offset;for(let n=0;n<m;n++){const f=Number(t.data[a+n]),p=Number(r.iget(n));s[n]=Math.atan2(f,p)}}else if(o){const a=r.offset;for(let n=0;n<m;n++){const f=Number(t.iget(n)),p=Number(r.data[a+n]);s[n]=Math.atan2(f,p)}}else for(let a=0;a<m;a++){const n=Number(t.iget(a)),f=Number(r.iget(a));s[a]=Math.atan2(n,f)}return c}function Z(t,r){const l=t.dtype,m=Array.from(t.shape),u=t.size,y=l==="float32"?"float32":"float64",i=h.zeros(m,y),c=i.data;if(t.isCContiguous){const e=t.data,o=t.offset;if(C(l))for(let a=0;a<u;a++)c[a]=Math.atan2(Number(e[o+a]),r);else for(let a=0;a<u;a++)c[a]=Math.atan2(Number(e[o+a]),r)}else for(let e=0;e<u;e++)c[e]=Math.atan2(Number(t.iget(e)),r);return i}function st(t,r){return b(t.dtype,"hypot","hypot is only defined for real numbers."),typeof r!="number"&&b(r.dtype,"hypot","hypot is only defined for real numbers."),typeof r=="number"?P(t,r):H(t,r)}function H(t,r){const l=w(t,r);if(l)return l;const m=Array.from(t.shape),u=t.size,y=t.dtype,i=r.dtype,c=y==="float32"&&i==="float32"?"float32":"float64",s=h.zeros(m,c),e=s.data,o=t.isCContiguous,a=r.isCContiguous;if(o&&a){const n=t.offset,f=r.offset;for(let p=0;p<u;p++){const d=Number(t.data[n+p]),S=Number(r.data[f+p]);e[p]=Math.hypot(d,S)}}else if(o){const n=t.offset;for(let f=0;f<u;f++){const p=Number(t.data[n+f]),d=Number(r.iget(f));e[f]=Math.hypot(p,d)}}else if(a){const n=r.offset;for(let f=0;f<u;f++){const p=Number(t.iget(f)),d=Number(r.data[n+f]);e[f]=Math.hypot(p,d)}}else for(let n=0;n<u;n++){const f=Number(t.iget(n)),p=Number(r.iget(n));e[n]=Math.hypot(f,p)}return s}function P(t,r){const l=T(t,r);if(l)return l;const m=t.dtype,u=Array.from(t.shape),y=t.size,i=m==="float32"?"float32":"float64",c=h.zeros(u,i),s=c.data;if(t.isCContiguous){const o=t.data,a=t.offset;if(C(m))for(let n=0;n<y;n++)s[n]=Math.hypot(Number(o[a+n]),r);else for(let n=0;n<y;n++)s[n]=Math.hypot(Number(o[a+n]),r)}else for(let o=0;o<y;o++)s[o]=Math.hypot(Number(t.iget(o)),r);return c}function B(t){b(t.dtype,"degrees","degrees is only defined for real numbers.");const r=180/Math.PI;return g(t,l=>l*r,!1)}function U(t){b(t.dtype,"radians","radians is only defined for real numbers.");const r=Math.PI/180;return g(t,l=>l*r,!1)}function et(t){return U(t)}function at(t){return B(t)}export{tt as arccos,x as arcsin,ot as arctan,rt as arctan2,_ as cos,et as deg2rad,B as degrees,st as hypot,at as rad2deg,U as radians,Y as sin,$ as tan};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{DEFAULT_DTYPE as
|
|
1
|
+
import{DEFAULT_DTYPE as _,getTypedArrayConstructor as b,isBigIntDType as g,isComplexDType as m}from"./dtype";import{Complex as c}from"./complex";const h=64;class d{constructor(s,t,r,e,i){this._isCContiguous=-1;this._data=s,this._shape=t,this._strides=r,this._offset=e,this._dtype=i}get shape(){return this._shape}get ndim(){return this._shape.length}get size(){return this._shape.reduce((s,t)=>s*t,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;const s=this._shape,t=this._strides,r=s.length;let e;if(r===0)e=!0;else if(r===1)e=t[0]===1;else{e=!0;let i=1;for(let u=r-1;u>=0;u--){if(t[u]!==i){e=!1;break}i*=s[u]}}return this._isCContiguous=e?1:0,e}get isFContiguous(){const s=this._shape,t=this._strides,r=s.length;if(r===0)return!0;if(r===1)return t[0]===1;let e=1;for(let i=0;i<r;i++){if(t[i]!==e)return!1;e*=s[i]}return!0}iget(s){const t=this._shape,r=this._strides,e=t.length,i=m(this._dtype);let u;if(e===0)u=this._offset;else{let o=s;u=this._offset;for(let a=0;a<e;a++){let n=1;for(let f=a+1;f<e;f++)n*=t[f];const l=Math.floor(o/n);o=o%n,u+=l*r[a]}}if(i){const o=u*2,a=this._data[o],n=this._data[o+1];return new c(a,n)}return this._data[u]}iset(s,t){const r=this._shape,e=this._strides,i=r.length,u=m(this._dtype);let o;if(i===0)o=this._offset;else{let a=s;o=this._offset;for(let n=0;n<i;n++){let l=1;for(let p=n+1;p<i;p++)l*=r[p];const f=Math.floor(a/l);a=a%l,o+=f*e[n]}}if(u){const a=o*2;let n,l;t instanceof c?(n=t.re,l=t.im):typeof t=="object"&&t!==null&&"re"in t?(n=t.re,l=t.im??0):(n=Number(t),l=0),this._data[a]=n,this._data[a+1]=l}else this._data[o]=t}get(...s){const t=this._strides;let r=this._offset;for(let e=0;e<s.length;e++)r+=s[e]*t[e];if(m(this._dtype)){const e=r*2,i=this._data[e],u=this._data[e+1];return new c(i,u)}return this._data[r]}set(s,t){const r=this._strides;let e=this._offset;for(let i=0;i<s.length;i++)e+=s[i]*r[i];if(m(this._dtype)){const i=e*2;let u,o;t instanceof c?(u=t.re,o=t.im):typeof t=="object"&&t!==null&&"re"in t?(u=t.re,o=t.im??0):(u=Number(t),o=0),this._data[i]=u,this._data[i+1]=o}else this._data[e]=t}copy(){const s=Array.from(this._shape),t=this._dtype,r=this.size,e=m(t),i=b(t);if(!i)throw new Error(`Cannot copy array with dtype ${t}`);const u=e?r*2:r,o=new i(u);if(this.isCContiguous&&this._offset===0)o.set(this._data.subarray(0,u));else if(g(t)){const a=o;for(let n=0;n<r;n++)a[n]=this.iget(n)}else if(e){const a=o;for(let n=0;n<r;n++){const l=this.iget(n);a[n*2]=l.re,a[n*2+1]=l.im}}else for(let a=0;a<r;a++)o[a]=this.iget(a);return new d(o,s,d._computeStrides(s),0,t)}static fromData(s,t,r,e,i){if(t.length>h)throw new Error(`maximum supported dimension for an ndarray is currently ${h}, found ${t.length}`);const u=e??d._computeStrides(t),o=i??0;return new d(s,t,u,o,r)}static zeros(s,t=_){if(s.length>h)throw new Error(`maximum supported dimension for an ndarray is currently ${h}, found ${s.length}`);const r=s.reduce((a,n)=>a*n,1),e=m(t),i=b(t);if(!i)throw new Error(`Cannot create array with dtype ${t}`);const u=e?r*2:r,o=new i(u);return new d(o,s,d._computeStrides(s),0,t)}static ones(s,t=_){const r=s.reduce((a,n)=>a*n,1),e=m(t),i=b(t);if(!i)throw new Error(`Cannot create array with dtype ${t}`);const u=e?r*2:r,o=new i(u);if(g(t))o.fill(BigInt(1));else if(e){const a=o;for(let n=0;n<r;n++)a[n*2]=1,a[n*2+1]=0}else o.fill(1);return new d(o,s,d._computeStrides(s),0,t)}static _computeStrides(s){const t=new Array(s.length);let r=1;for(let e=s.length-1;e>=0;e--)t[e]=r,r*=s[e];return t}}function w(y){const s=new Array(y.length);let t=1;for(let r=y.length-1;r>=0;r--)s[r]=t,t*=y[r];return s}export{d as ArrayStorage,h as MAX_NDIM,w as computeStrides};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{abs_f64 as E,abs_f32 as _,abs_i64 as g,abs_i32 as w,abs_i16 as B,abs_i8 as D}from"./bins/abs.wasm";import{ensureMemory as P,resetAllocator as C,copyIn as S,alloc as h,copyOut as U}from"./runtime";import{ArrayStorage as f}from"../storage";import{wasmConfig as k}from"./config";const I=64,M={float64:E,float32:_,int64:g,int32:w,int16:B,int8:D},p={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function N(r){if(!r.isCContiguous)return null;const n=r.size;if(n<I*k.thresholdMultiplier)return null;const t=r.dtype;if(t==="uint8"||t==="uint16"||t==="uint32"||t==="uint64"){const b=p[t],u=r.offset,d=r.data.subarray(u,u+n),T=new b(d);return f.fromData(T,Array.from(r.shape),t)}const o=M[t],a=p[t];if(!o||!a)return null;const e=a.BYTES_PER_ELEMENT,c=n*e,y=n*e;P(c+y),C();const s=r.offset,A=r.data.subarray(s,s+n),l=S(A),i=h(y);o(l,i,n);const m=U(i,n,a);return f.fromData(m,Array.from(r.shape),t)}export{N as wasmAbs};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{add_f64 as z,add_f32 as U,add_i64 as b,add_i32 as E,add_i16 as T,add_i8 as P,add_c128 as Y,add_c64 as v,add_scalar_f64 as H,add_scalar_f32 as K,add_scalar_i64 as B,add_scalar_i32 as g,add_scalar_i16 as S,add_scalar_i8 as D,add_scalar_c128 as j,add_scalar_c64 as q}from"./bins/add.wasm";import{ensureMemory as x,resetAllocator as C,copyIn as A,alloc as w,copyOut as h}from"./runtime";import{ArrayStorage as F}from"../storage";import{promoteDTypes as G}from"../dtype";import{wasmConfig as R}from"./config";const M=64,J={float64:z,float32:U,int64:b,uint64:b,int32:E,uint32:E,int16:T,uint16:T,int8:P,uint8:P,complex128:Y,complex64:v},Q={float64:H,float32:K,int64:B,uint64:B,int32:g,uint32:g,int16:S,uint16:S,int8:D,uint8:D,complex128:j,complex64:q},O={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},k={complex128:2,complex64:2};function tt(t,e){if(!t.isCContiguous||!e.isCContiguous)return null;const n=t.size;if(n<M*R.thresholdMultiplier)return null;const a=G(t.dtype,e.dtype),u=J[a],o=O[a];if(!u||!o)return null;const s=k[a]??1,c=o.BYTES_PER_ELEMENT,r=n*s,p=r*c,y=r*c,i=r*c;x(p+y+i),C();const l=t.offset*s,d=e.offset*s,f=t.data.subarray(l,l+r),m=e.data.subarray(d,d+r),N=A(f),I=A(m),_=w(i);u(N,I,_,n);const L=h(_,r,o);return F.fromData(L,Array.from(t.shape),a)}function rt(t,e){if(!t.isCContiguous)return null;const n=t.size;if(n<M*R.thresholdMultiplier)return null;const a=t.dtype,u=Q[a],o=O[a];if(!u||!o)return null;const s=k[a]??1,c=o.BYTES_PER_ELEMENT,r=n*s,p=r*c,y=r*c;x(p+y),C();const i=t.offset*s,l=t.data.subarray(i,i+r),d=A(l),f=w(y);u(d,f,n,e);const m=h(f,r,o);return F.fromData(m,Array.from(t.shape),a)}export{tt as wasmAdd,rt as wasmAddScalar};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{arccos_f64 as g,arccos_f32 as k,arccos_i64 as B,arccos_u64 as C}from"./bins/arccos.wasm";import{ensureMemory as y,resetAllocator as c,copyIn as l,alloc as i,copyOut as m}from"./runtime";import{ArrayStorage as p}from"../storage";import{isComplexDType as S,isBigIntDType as _}from"../dtype";import{wasmConfig as v}from"./config";const x=64,z={float64:g,float32:k};function R(o){if(!o.isCContiguous)return null;const r=o.size;if(r<x*v.thresholdMultiplier)return null;const e=o.dtype;if(S(e))return null;const A=z[e];if(A){const t=e==="float32",n=t?4:8,f=t?Float32Array:Float64Array;y(r*n*2),c();const a=o.offset,u=o.data.subarray(a,a+r),F=l(u),w=i(r*n);A(F,w,r);const O=m(w,r,f);return p.fromData(O,Array.from(o.shape),e)}if(e==="int64"||e==="uint64"){y(r*16),c();const t=o.offset,n=o.data.subarray(t,t+r),f=l(n),a=i(r*8);(e==="int64"?B:C)(f,a,r);const u=m(a,r,Float64Array);return p.fromData(u,Array.from(o.shape),"float64")}const b=8;y(r*b*2),c();const d=o.offset,D=o.data,s=new Float64Array(r);if(_(e))for(let t=0;t<r;t++)s[t]=Number(D[d+t]);else for(let t=0;t<r;t++)s[t]=D[d+t];const P=l(s),T=i(r*b);g(P,T,r);const h=m(T,r,Float64Array);return p.fromData(h,Array.from(o.shape),"float64")}export{R as wasmArccos};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{arcsin_f64 as g,arcsin_f32 as k,arcsin_i64 as B,arcsin_u64 as C}from"./bins/arcsin.wasm";import{ensureMemory as y,resetAllocator as c,copyIn as i,alloc as l,copyOut as m}from"./runtime";import{ArrayStorage as p}from"../storage";import{isComplexDType as S,isBigIntDType as _}from"../dtype";import{wasmConfig as v}from"./config";const x=64,z={float64:g,float32:k};function R(n){if(!n.isCContiguous)return null;const r=n.size;if(r<x*v.thresholdMultiplier)return null;const o=n.dtype;if(S(o))return null;const A=z[o];if(A){const t=o==="float32",a=t?4:8,f=t?Float32Array:Float64Array;y(r*a*2),c();const e=n.offset,u=n.data.subarray(e,e+r),F=i(u),w=l(r*a);A(F,w,r);const O=m(w,r,f);return p.fromData(O,Array.from(n.shape),o)}if(o==="int64"||o==="uint64"){y(r*16),c();const t=n.offset,a=n.data.subarray(t,t+r),f=i(a),e=l(r*8);(o==="int64"?B:C)(f,e,r);const u=m(e,r,Float64Array);return p.fromData(u,Array.from(n.shape),"float64")}const b=8;y(r*b*2),c();const d=n.offset,D=n.data,s=new Float64Array(r);if(_(o))for(let t=0;t<r;t++)s[t]=Number(D[d+t]);else for(let t=0;t<r;t++)s[t]=D[d+t];const P=i(s),T=l(r*b);g(P,T,r);const h=m(T,r,Float64Array);return p.fromData(h,Array.from(n.shape),"float64")}export{R as wasmArcsin};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{arctan_f64 as g,arctan_f32 as k,arctan_i64 as B,arctan_u64 as C}from"./bins/arctan.wasm";import{ensureMemory as y,resetAllocator as c,copyIn as l,alloc as i,copyOut as m}from"./runtime";import{ArrayStorage as p}from"../storage";import{isComplexDType as S,isBigIntDType as _}from"../dtype";import{wasmConfig as v}from"./config";const x=64,z={float64:g,float32:k};function R(a){if(!a.isCContiguous)return null;const r=a.size;if(r<x*v.thresholdMultiplier)return null;const n=a.dtype;if(S(n))return null;const A=z[n];if(A){const t=n==="float32",e=t?4:8,f=t?Float32Array:Float64Array;y(r*e*2),c();const o=a.offset,u=a.data.subarray(o,o+r),F=l(u),w=i(r*e);A(F,w,r);const O=m(w,r,f);return p.fromData(O,Array.from(a.shape),n)}if(n==="int64"||n==="uint64"){y(r*16),c();const t=a.offset,e=a.data.subarray(t,t+r),f=l(e),o=i(r*8);(n==="int64"?B:C)(f,o,r);const u=m(o,r,Float64Array);return p.fromData(u,Array.from(a.shape),"float64")}const b=8;y(r*b*2),c();const d=a.offset,D=a.data,s=new Float64Array(r);if(_(n))for(let t=0;t<r;t++)s[t]=Number(D[d+t]);else for(let t=0;t<r;t++)s[t]=D[d+t];const P=l(s),T=i(r*b);g(P,T,r);const h=m(T,r,Float64Array);return p.fromData(h,Array.from(a.shape),"float64")}export{R as wasmArctan};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{argpartition_f64 as C,argpartition_f32 as U,argpartition_i64 as N,argpartition_u64 as S,argpartition_i32 as F,argpartition_u32 as Y,argpartition_i16 as v,argpartition_u16 as H,argpartition_i8 as K,argpartition_u8 as O,argpartition_slices_f64 as j,argpartition_slices_f32 as q,argpartition_slices_i64 as G,argpartition_slices_u64 as J,argpartition_slices_i32 as Q,argpartition_slices_u32 as V,argpartition_slices_i16 as W,argpartition_slices_u16 as X,argpartition_slices_i8 as Z,argpartition_slices_u8 as $}from"./bins/argpartition.wasm";import{ensureMemory as m,resetAllocator as _,copyIn as A,alloc as b,copyOut as x,getSharedMemory as B}from"./runtime";import{ArrayStorage as z}from"../storage";import{wasmConfig as D}from"./config";const rr=64,h={float64:C,float32:U,int64:N,uint64:S,int32:F,uint32:Y,int16:v,uint16:H,int8:K,uint8:O},tr={float64:j,float32:q,int64:G,uint64:J,int32:Q,uint32:V,int16:W,uint16:X,int8:Z,uint8:$},E={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function ar(t,r,n,o,i,a,p,s){if(i<2)return!1;const u=tr[s];if(u&&n[0]===0&&a>1&&n[1]===i&&o[0]===0&&o[1]===i){const e=E[s];if(!e)return!1;const I=e.BYTES_PER_ELEMENT,M=t.length*I,P=r.length*4;m(M+P),_();const R=A(t),d=b(P);u(R,d,i,a,p);const k=B();return new Uint8Array(r.buffer,r.byteOffset,r.byteLength).set(new Uint8Array(k.buffer,d,r.byteLength)),!0}const y=h[s],c=E[s];if(!y||!c)return!1;const l=c.BYTES_PER_ELEMENT,f=t.length*l,g=r.length*4;m(f+g),_();const w=A(t),T=b(g);for(let e=0;e<a;e++)y(w+n[e]*l,T+o[e]*4,i,p);const L=B();return new Uint8Array(r.buffer,r.byteOffset,r.byteLength).set(new Uint8Array(L.buffer,T,r.byteLength)),!0}function sr(t,r){if(!t.isCContiguous)return null;const n=t.size;if(n<rr*D.thresholdMultiplier)return null;const o=t.dtype,i=h[o],a=E[o];if(!i||!a)return null;const p=a.BYTES_PER_ELEMENT,s=n*p,u=n*4;m(s+u),_();const y=t.offset,c=t.data.subarray(y,y+n),l=A(c),f=b(u);i(l,f,n,r);const g=x(f,n,Int32Array);return z.fromData(g,Array.from(t.shape),"int32")}export{sr as wasmArgpartition,ar as wasmArgpartitionSlices};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{argsort_f64 as F,argsort_f32 as U,argsort_i64 as k,argsort_u64 as N,argsort_i32 as S,argsort_u32 as Y,argsort_i16 as v,argsort_u16 as H,argsort_i8 as K,argsort_u8 as O,argsort_slices_f64 as j,argsort_slices_f32 as q,argsort_slices_i64 as G,argsort_slices_u64 as J,argsort_slices_i32 as Q,argsort_slices_u32 as V,argsort_slices_i16 as W,argsort_slices_u16 as X,argsort_slices_i8 as Z,argsort_slices_u8 as $,argsort_c128 as z,argsort_c64 as D,argsort_slices_c128 as rr,argsort_slices_c64 as tr}from"./bins/argsort.wasm";import{ensureMemory as A,resetAllocator as p,copyIn as b,alloc as E,copyOut as nr,getSharedMemory as h}from"./runtime";import{ArrayStorage as or}from"../storage";import{wasmConfig as er}from"./config";const sr=64,w={float64:F,float32:U,int64:k,uint64:N,int32:S,uint32:Y,int16:v,uint16:H,int8:K,uint8:O,complex128:z,complex64:D},ar={float64:j,float32:q,int64:G,uint64:J,int32:Q,uint32:V,int16:W,uint16:X,int8:Z,uint8:$,complex128:rr,complex64:tr},T={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 lr(t,r,n,a,o,i,e){if(o<2)return!1;const l=e==="complex128"||e==="complex64",m=ar[e];if(m&&n[0]===0&&i>1&&n[1]===o&&a[0]===0&&a[1]===o){const s=T[e];if(!s)return!1;const C=s.BYTES_PER_ELEMENT,I=t.length*C,B=r.length*4;A(I+B),p();const M=b(t),d=E(B);m(M,d,o,i);const R=h();return new Uint8Array(r.buffer,r.byteOffset,r.byteLength).set(new Uint8Array(R.buffer,d,r.byteLength)),!0}const c=w[e],y=T[e];if(!c||!y)return!1;const u=y.BYTES_PER_ELEMENT,f=l?u*2:u,_=t.length*u,g=r.length*4;A(_+g),p();const L=b(t),P=E(g);for(let s=0;s<i;s++)c(L+n[s]*f,P+a[s]*4,o);const x=h();return new Uint8Array(r.buffer,r.byteOffset,r.byteLength).set(new Uint8Array(x.buffer,P,r.byteLength)),!0}function mr(t){if(!t.isCContiguous)return null;const r=t.size;if(r<sr*er.thresholdMultiplier)return null;const n=t.dtype,a=w[n],o=T[n];if(!a||!o)return null;const i=n==="complex128"||n==="complex64",e=o.BYTES_PER_ELEMENT,l=i?r*2:r,m=l*e,c=r*4;A(m+c),p();const y=t.offset,u=t.data.subarray(y,y+l),f=b(u),_=E(c);a(f,_,r);const g=nr(_,r,Int32Array);return or.fromData(g,Array.from(t.shape),"int32")}export{mr as wasmArgsort,lr as wasmArgsortSlices};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{getSharedMemory as C,setHeapBase as i}from"../runtime";const a="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";let E=null;function g(){if(E)return E;const A=atob(a),Q=new Uint8Array(A.length);for(let B=0;B<A.length;B++)Q[B]=A.charCodeAt(B);E=new WebAssembly.Instance(new WebAssembly.Module(Q),{env:{memory:C()}});const I=E.exports.__heap_base;return I&&typeof I.value=="number"&&i(I.value),E}function o(A,Q,I){g().exports.abs_f64(A,Q,I)}function s(A,Q,I){g().exports.abs_f32(A,Q,I)}function e(A,Q,I){g().exports.abs_i64(A,Q,I)}function n(A,Q,I){g().exports.abs_i32(A,Q,I)}function G(A,Q,I){g().exports.abs_i16(A,Q,I)}function F(A,Q,I){g().exports.abs_i8(A,Q,I)}export{s as abs_f32,o as abs_f64,G as abs_i16,n as abs_i32,e as abs_i64,F as abs_i8};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{getSharedMemory as i,setHeapBase as a}from"../runtime";const o="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";let E=null;function C(){if(E)return E;const I=atob(o),B=new Uint8Array(I.length);for(let A=0;A<I.length;A++)B[A]=I.charCodeAt(A);E=new WebAssembly.Instance(new WebAssembly.Module(B),{env:{memory:i()}});const Q=E.exports.__heap_base;return Q&&typeof Q.value=="number"&&a(Q.value),E}function D(I,B,Q,A){C().exports.add_f64(I,B,Q,A)}function r(I,B,Q,A){C().exports.add_scalar_f64(I,B,Q,A)}function G(I,B,Q,A){C().exports.add_f32(I,B,Q,A)}function F(I,B,Q,A){C().exports.add_scalar_f32(I,B,Q,A)}function h(I,B,Q,A){C().exports.add_c128(I,B,Q,A)}function q(I,B,Q,A){C().exports.add_scalar_c128(I,B,Q,A)}function n(I,B,Q,A){C().exports.add_c64(I,B,Q,A)}function d(I,B,Q,A){C().exports.add_scalar_c64(I,B,Q,A)}function k(I,B,Q,A){C().exports.add_i64(I,B,Q,A)}function e(I,B,Q,A){C().exports.add_scalar_i64(I,B,Q,BigInt(Math.round(A)))}function w(I,B,Q,A){C().exports.add_i32(I,B,Q,A)}function c(I,B,Q,A){C().exports.add_scalar_i32(I,B,Q,A)}function J(I,B,Q,A){C().exports.add_i16(I,B,Q,A)}function m(I,B,Q,A){C().exports.add_scalar_i16(I,B,Q,A)}function H(I,B,Q,A){C().exports.add_i8(I,B,Q,A)}function N(I,B,Q,A){C().exports.add_scalar_i8(I,B,Q,A)}export{h as add_c128,n as add_c64,G as add_f32,D as add_f64,J as add_i16,w as add_i32,k as add_i64,H as add_i8,q as add_scalar_c128,d as add_scalar_c64,F as add_scalar_f32,r as add_scalar_f64,m as add_scalar_i16,c as add_scalar_i32,e as add_scalar_i64,N as add_scalar_i8};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{getSharedMemory as Q,setHeapBase as i}from"../runtime";const n="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";let o=null;function s(){if(o)return o;const A=atob(n),e=new Uint8Array(A.length);for(let g=0;g<A.length;g++)e[g]=A.charCodeAt(g);o=new WebAssembly.Instance(new WebAssembly.Module(e),{env:{memory:Q()}});const I=o.exports.__heap_base;return I&&typeof I.value=="number"&&i(I.value),o}function r(A,e,I){s().exports.arccos_f64(A,e,I)}function C(A,e,I){s().exports.arccos_f32(A,e,I)}function t(A,e,I){s().exports.arccos_i64(A,e,I)}function f(A,e,I){s().exports.arccos_u64(A,e,I)}export{C as arccos_f32,r as arccos_f64,t as arccos_i64,f as arccos_u64};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{getSharedMemory as I,setHeapBase as o}from"../runtime";const C="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";let n=null;function s(){if(n)return n;const A=atob(C),g=new Uint8Array(A.length);for(let i=0;i<A.length;i++)g[i]=A.charCodeAt(i);n=new WebAssembly.Instance(new WebAssembly.Module(g),{env:{memory:I()}});const e=n.exports.__heap_base;return e&&typeof e.value=="number"&&o(e.value),n}function r(A,g,e){s().exports.arcsin_f64(A,g,e)}function B(A,g,e){s().exports.arcsin_f32(A,g,e)}function t(A,g,e){s().exports.arcsin_i64(A,g,e)}function a(A,g,e){s().exports.arcsin_u64(A,g,e)}export{B as arcsin_f32,r as arcsin_f64,t as arcsin_i64,a as arcsin_u64};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{getSharedMemory as n,setHeapBase as o}from"../runtime";const r="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";let e=null;function Q(){if(e)return e;const A=atob(r),g=new Uint8Array(A.length);for(let I=0;I<A.length;I++)g[I]=A.charCodeAt(I);e=new WebAssembly.Instance(new WebAssembly.Module(g),{env:{memory:n()}});const C=e.exports.__heap_base;return C&&typeof C.value=="number"&&o(C.value),e}function i(A,g,C){Q().exports.arctan_f64(A,g,C)}function t(A,g,C){Q().exports.arctan_f32(A,g,C)}function s(A,g,C){Q().exports.arctan_i64(A,g,C)}function E(A,g,C){Q().exports.arctan_u64(A,g,C)}export{t as arctan_f32,i as arctan_f64,s as arctan_i64,E as arctan_u64};
|