moving_median

Crates.iomoving_median
lib.rsmoving_median
version
sourcesrc
created_at2024-09-12 20:54:22.791867+00
updated_at2025-01-26 14:40:20.393343+00
descriptionA no-std moving median filter
homepage
repositoryhttps://github.com/1-rafael-1/moving_median
max_upload_size
id1373139
Cargo.toml error:TOML parse error at line 18, column 1 | 18 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include`
size0
rafael (1-rafael-1)

documentation

https://docs.rs/moving_median

README

ci

moving median

A simple no-std moving median filter implementation with a fixed-size buffer. The buffer is used to store the last N measurements, where N is the size of the buffer. The median is calculated by sorting the values in the buffer and taking the middle value. If the number of values is even, the median is the average of the two middle values. If the number of values is odd, the median is the middle value.

This implementation supports both f32 and f64 types.

Example

use moving_median::MovingMedian;

// f32
let mut filter_f32 = MovingMedian::<f32, 3>::new();
filter_f32.add_value(42.0);
filter_f32.add_value(43.0);
filter_f32.add_value(41.0);
assert_eq!(filter_f32.median(), 42.0);

// f64
let mut filter_f64 = MovingMedian::<f64, 3>::new();
filter_f64.add_value(42.0);
filter_f64.add_value(43.0);
filter_f64.add_value(41.0);
assert_eq!(filter_f64.median(), 42.0);

// clearing existing data
let mut filter_f64 = MovingMedian::<f64, 3>::new();
filter_f64.add_value(42.0);
filter_f64.add_value(43.0);
filter_f64.add_value(41.0);
filter.clear();
assert_eq!(filter.median(), 0.0);
Commit count: 8

cargo fmt