Skip to content

Releases: jvdd/argminmax

v0.6.2

04 Mar 09:03
Compare
Choose a tag to compare

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 on arm / 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; add stdarch_x86_avx512 by @lazyky in #62
  • chore: remove unused get_lane_size function from SIMDInstructionSet by @jvdd in #64
  • enh: remove simd_nightly feature flag for aarch64 by @jvdd in #63

New Contributors

Full Changelog: v0.6.1...v0.6.2

v0.6.1

14 Apr 11:06
Compare
Choose a tag to compare

What's Changed

  • feat: add "nightly_simd" feature to allow stable build by @jvdd in #50

Full Changelog: v0.6.0...v0.6.1

v0.6.0

10 Apr 09:44
Compare
Choose a tag to compare

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

23 Mar 12:16
Compare
Choose a tag to compare

This release adds nan-handling to the argminmax project πŸš€

  • ArgMinMax its argminmax ignores nans (= backwards compatible)
  • NanArgMinMax (only implemented for floats) its nanargminmax 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

13 Feb 19:54
Compare
Choose a tag to compare

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:

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

  • @varon made their first contribution in #17

Full Changelog: v0.3.1...v0.4.0

v0.3.1

05 Feb 09:54
Compare
Choose a tag to compare

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.