argminmax
ArgMinMax (argmin & argmax in 1 function) with SIMD for floats and integers
0.6.3
14M downloads/mo
#2627 most downloaded on crates.io
jvdd/argminmax
What this package is like to depend on
Last release 1 years ago
07 May 2025
Ships unpredictably
gaps range from 8 days to 1.2 years
Some releases are documented
notes for 7 of 12 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
12 releases · first in 2022
0 releases in the last 12 months
see the full history below
Release timeline
12 releases · Oct 2022 to May 2025Releases
latest 12-
0.6.307 May 2025Release notes
Open source →What's Changed
- chore: update dependencies by @jvdd in #66
- ci: update codspeed-criterion dependency by @jvdd in #67
- fix: add full copy of half to dev dep with rand_distr feature by @jvdd in #68
- chore: update dependencies by @jvdd in #69
- chore: update codspeed-criterion by @jvdd in #70
- fix build error on nightly-2025-04-25 by @JosiahWhite in #73
- chore: update dependencies by @jvdd in #72
New Contributors
- @JosiahWhite made their first contribution in #73
Full Changelog: v0.6.2...v0.6.3
-
0.6.204 Mar 2024Release notes
Open source →What's Changed
- ci: test target build on stable by @jvdd in #53
- feat: add 64-bit aarch64 SIMD implementation by @jvdd in #52
- perf: use uint
MAX_INDEXonarm/aarch64for uint SIMD by @jvdd in #54 - refactor: remove unnecessary repetition operator from macros by @jvdd in #57
- test: include argmin and argmax in integration tests by @jvdd in #58
- test: use full range for floats uniform by @jvdd in #60
- fix: remove
stdsimdfeature; addstdarch_x86_avx512by @lazyky in #62 - chore: remove unused
get_lane_sizefunction fromSIMDInstructionSetby @jvdd in #64 - enh: remove
simd_nightlyfeature flag foraarch64by @jvdd in #63
New Contributors
Full Changelog: v0.6.1...v0.6.2
-
0.6.114 Apr 2023 -
0.6.010 Apr 2023Release notes
Open source →What's Changed
- 🚀 add argmin & argmax by @jvdd in #42
- perf: tune scalar argmin & argmax by @jvdd in #43
- feat: optimize + add
f16scalar implementations by @jvdd in #44 - 🔥 impl argmin & argmax in public traits by @jvdd in #45
- chore: comply with breaking api change in arrow
v36by @jvdd in #47 - 🎉 add f16 simd support for ignore nan by @jvdd in #46
- 🎉 add optional arrow2 support by @jvdd in #48
Full Changelog: v0.5.0...v0.6.0
-
0.5.023 Mar 2023Release notes
Open source →This release adds nan-handling to the
argminmaxproject 🚀ArgMinMaxitsargminmaxignores nans (= backwards compatible)NanArgMinMax(only implemented for floats) itsnanargminmaxpropagates nans (return idx of first nan)
Other changes in this release:
- feature-gate floats with the (default)
"float"feature - add proper docs 📚
- refactoring of tests, benchmarks & internal traits (making code more flexible, limiting duplicate code)
P.S.: Since CodSpeedHQ/codspeed-rust#1 is resolved, we removed "half" from the default-features.
What's Changed
- ♻️ major refactoring by @jvdd in #23
- 🥧 update NEON SIMD by @jvdd in #25
- ♻️ change nan default handling behavior to SkipNa by @jvdd in #28
- Add MacOS stuff to .gitignore by @varon in #29
- 🚀 float NaN handling by @jvdd & @varon in #21
- ♻️ parameterize tests by @jvdd in #31
- fix(test): clip shift size to 31 bits on arm by @jvdd in #32
- docs: describe transformation for uints by @jvdd in #33
- chore(bench): rename benches by @jvdd in #34
- refactor: architecture - use type-state pattern by @jvdd in #35
- refactor(test): pass struct to tests instead of method by @jvdd in #36
- ci: upgrade codspeed & make half non-default feature by @jvdd in #37
- feat: add new default float feature by @jvdd in #38
- refactor: add nanargminmax to NanArgMinMax trait by @jvdd in #39
- fix: allow double update in scalar ignore nan implementation by @jvdd in #40
- docs: add proper documentation 🎉 by @jvdd in #41
Full Changelog: v0.4.0...v0.5.0
-
0.4.013 Feb 2023Release notes
Open source →This release improves the underlying implementation by replacing
ndarray::ArrayView1with the more flexible (and zero-dependency)&[T]slice. This new implementation enhances the library's interoperability with other array-like data types and crates.As of now importing the
ArgMinMaxtrait adds the.argminmaxfunction to:- slice (
&[T]) Vec
Using optional features, the
.argminmaxfunction can be added to:- "ndarray" feature:
ndarray::ArrayView1&ndarray::Array1(allows backwards compatibility) - "arrow" feature:
arrow::array::PrimitiveArray
P.S.: To include the amazing @CodSpeedHQ continuous performance monitoring in our CI we had to add the "half" feature as default-feature (see CodSpeedHQ/codspeed-rust#1). As soon as this issue is resolved we plan to remove again "half" from the default-features.
What's Changed
- 🐰 add codspeed benchmarking to ci/cd by @jvdd in #15
- 🍵 use slice internally + implement for various types by @jvdd in #13
- QOL improvements by @varon in #17
New Contributors
Full Changelog: v0.3.1...v0.4.0
- slice (
-
0.3.104 Jan 2023Release notes
Open source →This is the latest release that uses
ndarray::ArrayView1as underlying and mandatory interface. In future releases, we will switch to using slices internally and offer optional compatibility with other data types, includingndarray::ArrayView1P.S.: This release and tag were created after we had already implemented slices as the internal interface. The tag references the latest commit that includes the
ndarray::ArrayView1implementation, which corresponds tov0.3.1of the Rust crate. -
0.3.013 Dec 2022Nothing published for this version
-
0.2.128 Nov 2022Nothing published for this version
-
0.2.020 Nov 2022Nothing published for this version
-
0.1.102 Oct 2022Nothing published for this version
-
0.1.001 Oct 2022Nothing published for this version