| Crates.io | detrend |
| lib.rs | detrend |
| version | 0.1.1 |
| created_at | 2025-12-10 19:58:16.937306+00 |
| updated_at | 2025-12-11 11:33:17.061282+00 |
| description | Signal detrending |
| homepage | https://github.com/awxkee/detrend |
| repository | https://github.com/awxkee/detrend |
| max_upload_size | |
| id | 1978665 |
| size | 34,761 |
A lightweight and efficient Rust crate for removing underlying trends and baseline drift from signals (time series data). This is essential in signal processing and data analysis to isolate meaningful fluctuations from long-term bias.
use detrend::{detrend_f64, DetrendingMethod, DetrendError};
fn main() -> Result<(), DetrendError> {
// A signal with a clear upward trend: y = 0.5 * x + 1.0
let signal = vec![1.0, 1.5, 2.0, 2.5, 3.0];
// Remove the linear trend using Least Squares
let detrended_ls = detrend_f64(&signal, DetrendingMethod::LeastSquares)?;
Ok(())
}
The crate provides type-specific functions for precision and performance:
detrend_f32(signal: &[f32], method: DetrendingMethod)detrend_f64(signal: &[f64], method: DetrendingMethod)Both functions return a Result<Vec<T>, DetrendError>, primarily for handling potential DetrendError::AllocationError in low-memory environments.
This project is licensed under either of
at your option.