detrend

Crates.iodetrend
lib.rsdetrend
version0.1.1
created_at2025-12-10 19:58:16.937306+00
updated_at2025-12-11 11:33:17.061282+00
descriptionSignal detrending
homepagehttps://github.com/awxkee/detrend
repositoryhttps://github.com/awxkee/detrend
max_upload_size
id1978665
size34,761
Radzivon Bartoshyk (awxkee)

documentation

https://github.com/awxkee/detrend

README

🦀 detrend: Signal Detrending for Rust

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.


💡 Example

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(())
}

🧩 Functions

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

  • BSD-3-Clause License (see LICENSE)
  • Apache License, Version 2.0 (see LICENSE)

at your option.

Commit count: 0

cargo fmt