Skip to content

Releases: jlogan03/strobe

v0.2.0

10 Dec 14:09
bd09e4f
Compare
Choose a tag to compare

Changes

Improve error handling, parametrize storage, and add operations (#8)

  • Replace assert! and panic! error handling with propagation of Result
    • <10% throughput hit at any benchmarked condition, and improvements for some
    • Make inner functions for operations (potentially) fallible
      • Supports explicitly checking slice lengths to eliminate panic branches
      • Supports user-defined operations that are fallible
  • Make intermediate storage customizable to better support both application-level and embedded usages
    • Add const generic parametrization of the size of storage
    • Add compile-time customizable alignment for storage
  • Add new logical operations
    • min, max (for strictly Ord types, not float), fmin, fmax (floating-point NaN-handling min and max), lt, le, gt, ge, eq, ne
    • Logical operations return T::one() or T::zero() instead of boolean
  • Update benchmarks to allocate separate arrays for all inputs
    • This helps to more-fairly test the Vec based methods, which otherwise derive a distinct and unrealistic advantage from only operating on a single input array for a many-step expression
    • This has a much smaller effect on strobe, as its main feature is to reduce dependence on the locality of the input data
    • Benchmarks now show strobe out-performing simple vectorization recipes for realistic expressions of depth 2 and higher (was 3 and higher)

v0.1.3

23 Sep 14:14
4188f19
Compare
Choose a tag to compare

Other

  • Use criterion for benchmarks (#6)

v0.1.2

20 Sep 04:18
83ac2db
Compare
Choose a tag to compare

Other

  • Add iterator input (#4)

v0.1.1

17 Sep 23:52
4a00162
Compare
Choose a tag to compare

Other

  • Merge pull request #3 from jlogan03/jlogan/readme
  • Populate readme with lib root docs and add readme field to Cargo.toml

v0.1.0

17 Sep 22:46
Compare
Choose a tag to compare
canonicalize license expression