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)
32KB
534 行
movavg - 泛型移动平均计算
整数类型的泛型 移动平均 计算
- 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