Skip to content

Releases: jlogan03/flaw

0.5.0

20 Oct 01:19
2337491

Choose a tag to compare

0.5.0 - 2025-10-19

Using FMA to accelerate and reduce roundoff error in dot products.

Added

  • Add fma feature that enables the use of fused multiply-add for dot products
    • Disabled by default because this causes a severe performance regression unless FMA is enabled for the target

Changed

  • !Add trait bound on MulAdd<Output = T> for numeric types in FIR and IIR filters
  • !Make std a default feature to enable publishing and docs to work properly

v0.4.0

04 Oct 04:01
96aafbe

Choose a tag to compare

0.4.0 - 2025-10-03

Changed

  • !Add bound on Num trait for generic fields
  • Implement Default on all structs
  • Update deps

v0.3.0

01 Sep 17:04
d512593

Choose a tag to compare

0.3.0 - 2025-08-31

Various performance-related improvements.
~20% improvement in speed based on testing on an STM32H7 microcontroller.

Changed

  • !Store filter coeffs and taps in opposite order (most-recent-last) to improve vectorization
  • !Const-unroll compute intensive loops
    • !Limit size of FIR filters to <128 taps
    • !Limit order of polynomial fractional delay filters to <=10
  • Add u value as initial for A*x dot product
    • (Potentially substantially) Improves float error for small values of latest measurement
      u at the expense of slightly worse float error for large u
  • Update flop per eval count to 4N-1
  • Update rust edition to 2024

v0.2.5

25 May 14:59
3d7ba6d

Choose a tag to compare

0.2.5 - 2025-05-25

Changed

  • Make Ring and AlignedArray pub to support read-only access to filter internals

Added

  • Add FIR module with generic number field type
  • Add Lagrange interpolator fractional delay filter construction
  • Add functions for read-only access to IIR filter internals

v0.2.4

07 Feb 03:36
455eb0d

Choose a tag to compare

0.2.4 - 2025-02-06

Changed

  • Change large const arrays to static to avoid inlining excessively large data

v0.2.3

01 Jan 15:36
8da6c93

Choose a tag to compare

0.2.3 - 2025-01-01

Changed

  • Use ring buffer for IIR and median filter state storage
  • Lower align of SisoIirFilter struct, since the internal storage is already aligned

Added

  • Implement N-point median filter for odd N >= 3

v0.2.2

27 Dec 16:29
c840141

Choose a tag to compare

0.2.2 - 2024-12-27

Changed

  • Derive Clone and Copy on SisoIirFilter to allow faster construction of batches of identical filters
  • Make generated module pub to provide access to min/max cutoff ratio bounds for generated filters
  • Loosen version requirement on num_traits dep

0.2.1

27 Dec 01:41
7ca304f

Choose a tag to compare

0.2.1 - 2024-12-26

Changed

  • Lower align of SisoIirFilter struct and internal state arrays to 8

Added

  • Add SisoIirFilter.initialize(u) to set the internal state vector to the steady-state values associated with a given measurement u

v0.2.0

10 Jul 10:56
528ae39

Choose a tag to compare

0.2.0 - 2024-07-10

Changed

  • Implement rescaling of C vector during initialization of interpolated filters to correct gain for interpolation error
  • Tighten tolerance on gain of generated butterworth filters to 0.01% at minimum cutoff ratio
  • Decrease range of validity for generated butterworth filters slightly to meet new tolerance

v0.1.0

07 Apr 12:49
6a15dc3

Choose a tag to compare

chore: Release package flaw version 0.1.0