Releases: jvdd/argminmax
v0.6.2
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_INDEX
onarm
/aarch64
for 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
stdsimd
feature; addstdarch_x86_avx512
by @lazyky in #62 - chore: remove unused
get_lane_size
function fromSIMDInstructionSet
by @jvdd in #64 - enh: remove
simd_nightly
feature flag foraarch64
by @jvdd in #63
New Contributors
Full Changelog: v0.6.1...v0.6.2
v0.6.1
v0.6.0
What's Changed
- π add argmin & argmax by @jvdd in #42
- perf: tune scalar argmin & argmax by @jvdd in #43
- feat: optimize + add
f16
scalar implementations by @jvdd in #44 - π₯ impl argmin & argmax in public traits by @jvdd in #45
- chore: comply with breaking api change in arrow
v36
by @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
v0.5.0
This release adds nan-handling to the argminmax
project π
ArgMinMax
itsargminmax
ignores nans (= backwards compatible)NanArgMinMax
(only implemented for floats) itsnanargminmax
propagates 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
v0.4.0
This release improves the underlying implementation by replacing ndarray::ArrayView1
with 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 ArgMinMax
trait adds the .argminmax
function to:
- slice (
&[T]
) Vec
Using optional features, the .argminmax
function 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
v0.3.1
This is the latest release that uses ndarray::ArrayView1
as underlying and mandatory interface. In future releases, we will switch to using slices internally and offer optional compatibility with other data types, including ndarray::ArrayView1
P.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::ArrayView1
implementation, which corresponds to v0.3.1
of the Rust crate.