6 个稳定版本

2.3.0 2023年8月12日
2.2.0 2022年6月24日
2.1.0 2021年4月21日
1.1.0 2021年4月1日
1.0.0 2021年3月31日

#536算法


2 个crate中使用(通过 disktest-lib

MIT/Apache

32KB
534

movavg - 泛型移动平均计算

项目主页

Git 仓库

Github 仓库

整数类型的泛型 移动平均 计算

  • i8, i16, i32, i64, i128, isize
  • u8, u16, u32, u64, u128, usize

和浮点类型

  • f32, f64

示例 Cargo.toml 依赖项

将以下内容添加到您的 Cargo.toml 中

[dependencies]
movavg = "2"

示例用法

// Integers
let mut avg: MovAvg<i32, i32, 3> = MovAvg::new(); // window size = 3
assert_eq!(avg.feed(10), 10);
assert_eq!(avg.feed(20), 15);
assert_eq!(avg.feed(30), 20);
assert_eq!(avg.feed(40), 30);
assert_eq!(avg.get(), 30);

// Floats
let mut avg: MovAvg<f64, f64, 3> = MovAvg::new();
assert_eq!(avg.feed(10.0), 10.0);
assert_eq!(avg.feed(20.0), 15.0);
assert_eq!(avg.feed(30.0), 20.0);
assert_eq!(avg.feed(40.0), 30.0);
assert_eq!(avg.get(), 30.0);

// Bigger accumulator
let mut avg: MovAvg<i8, i32, 3> = MovAvg::new();
assert_eq!(avg.feed(100), 100);
assert_eq!(avg.feed(100), 100); // This would overflow an i8 accumulator

Cargo 功能选择

no_std

如果您想在无需 [std]{.title-ref} 库(通常称为 [no_std]{.title-ref})的情况下使用 movavg,则可以使用以下 Cargo.toml 依赖项来禁用 [std]{.title-ref} 功能

[dependencies]
movavg = { version = "2", default-features = false }

目前,[no_std]{.title-ref} 变体支持默认 [std]{.title-ref} 变体支持的所有功能。但这可能会在未来发生变化。

fastfloat

可以使用 [fastfloat]{.title-ref} 功能来启用更快的、但精度较低的浮点数计算。启用此功能会导致更大的浮点数舍入和舍入误差。

[dependencies]
movavg = { version = "2", features = ["fastfloat"] }

此功能还可以与禁用的 [std]{.title-ref} 功能一起使用(见 [no_std]{.title-ref})。

Rust 编译器版本

需要 Rust 编译器版本 1.61 或更高版本。

许可证

版权所有 (c) 2021-2023 Michael Büsch <[email protected]>

根据您的选择,许可协议为 Apache 许可协议版本 2.0 或 MIT 许可协议。

依赖项

~150KB