Skip to main content

embedded_dsp/
lib.rs

1#![no_std]
2#![allow(missing_docs)]
3
4//! # embedded-dsp
5//!
6//! A `#![no_std]` Rust digital signal processing library for microcontrollers, embedded systems, and real-time signal processing applications.
7//!
8//! ## Overview
9//!
10//! `embedded-dsp` provides zero-allocation digital signal processing algorithms:
11//!
12//! - **Basic Math**: Elementwise addition, subtraction, multiplication, dot product, scale, shift, clip, logic ops.
13//! - **Complex Math**: Complex vector addition, multiplication, magnitude, magnitude squared, conjugate, dot product.
14//! - **Fast Math**: Trigonometric (sin, cos, atan2), square root, division, log, exp.
15//! - **Statistics**: Mean, variance, standard deviation, RMS, power, min/max, entropy, Kullback-Leibler, LogSumExp.
16//! - **Support**: Vector copy, fill, type conversions (Q7, Q15, Q31, F32), sort, barycenter, weighted sum.
17//! - **Matrix**: Matrix addition, subtraction, multiplication, scale, transpose, Gauss-Jordan inverse.
18//! - **Filtering**: FIR, Biquad IIR Direct Form I, LMS adaptive filters, Convolution, Correlation.
19//! - **Filter Design**: Biquad Lowpass, Highpass, Bandpass, Notch, Peaking EQ, Allpass, and Butterworth design.
20//! - **Resampling & Multi-rate**: CIC Decimator & Interpolator, linear fractional resampler.
21//! - **Kalman Filtering**: 1D/2D helpers, const-generic linear `KalmanFilter<N, M>`, and trait-based `ExtendedKalmanFilter` (EKF).
22//! - **Const Generics**: Compile-time fixed-size `FirFilter<N>`, `BiquadCascade<N>`, and `Matrix<R, C>`.
23//! - **Transform**: In-place Complex FFT (CFFT), Real FFT (RFFT), DCT-IV, Bit reversal, Fixed-point FFT (Q15/Q31).
24//! - **Controller**: PID motor controller, Clarke transform, Park transform, Inverse Clarke/Park.
25//! - **Interpolation**: Linear, Bilinear, Cubic spline interpolation.
26//! - **Quaternion**: Norm, normalization, product, conjugate, inverse, rotation matrix conversion.
27//! - **Window**: Hanning, Hamming, Blackman, Bartlett, Welch, Flat-top window generators.
28//! - **Distance**: Euclidean, Cosine, Chebyshev, Manhattan, Minkowski, Jaccard, Hamming, Canberra, Bray-Curtis.
29
30#[cfg(feature = "std")]
31extern crate std;
32
33pub mod basic_math;
34pub mod complex_math;
35pub mod const_generics;
36pub mod controller;
37pub mod distance;
38pub mod fast_math;
39#[cfg(any(feature = "std", feature = "libm"))]
40pub mod filter_design;
41pub mod filtering;
42pub mod interpolation;
43pub mod kalman;
44pub mod math;
45pub mod matrix;
46pub mod quaternion;
47pub mod resampling;
48pub mod statistics;
49pub mod support;
50pub mod transform;
51pub mod types;
52pub mod window;
53
54pub use basic_math::*;
55pub use complex_math::*;
56pub use const_generics::*;
57pub use controller::*;
58pub use distance::*;
59pub use fast_math::*;
60#[cfg(any(feature = "std", feature = "libm"))]
61pub use filter_design::*;
62pub use filtering::*;
63pub use interpolation::*;
64pub use kalman::*;
65pub use math::*;
66pub use matrix::*;
67pub use quaternion::*;
68pub use resampling::*;
69pub use statistics::*;
70pub use support::*;
71pub use transform::*;
72pub use types::*;
73pub use window::*;