#smoothing #time-series #visualization

asap-rs

Rust implementation of Automatic Smoothing for Attention Prioritization for Time Series

1 unstable release

0.1.0 Sep 4, 2024

#847 in Algorithms

MIT license

17KB
369 lines

asap-rs

License

A Rust implementation of ASAP (Automatic Smoothing for Attention Prioritization), based on the paper "ASAP: Prioritizing Attention via Time Series Smoothing" learn more: source paper & js code:

This project provides a high-performance Rust implementation of the ASAP algorithm for time series smoothing. It aims to efficiently reduce noise in time series data while preserving significant trends, optimized for visualization purposes.

Usage

use asap_rs::smooth;
fn main() {
    // Example data
    let data = [1.0, 3.2, 2.0, 3.0, 4.0, 5.0, 4.0, 3.0, 2.0, 1.0];
    let resolution = 2;
    let smoothed_data = smooth(&data, resolution);
}

Rust vs JS Performance

- Rust: 1.4776ms
+ JS: 8.96ms
  Data size: 500000
  Smoothed size: 25
  Original mean: 2499.97
  Smoothed mean: 2499.97

Dependencies

~315KB