embedded-dsp 0.2.0

A no_std Rust digital signal processing library for microcontrollers, embedded systems, and real-time signals.
Documentation
#![no_std]
#![allow(missing_docs)]

//! # embedded-dsp
//!
//! A `#![no_std]` Rust digital signal processing library for microcontrollers, embedded systems, and real-time signal processing applications.
//!
//! ## Overview
//!
//! `embedded-dsp` provides zero-allocation digital signal processing algorithms:
//!
//! - **Basic Math**: Elementwise addition, subtraction, multiplication, dot product, scale, shift, clip, logic ops.
//! - **Complex Math**: Complex vector addition, multiplication, magnitude, magnitude squared, conjugate, dot product.
//! - **Fast Math**: Trigonometric (sin, cos, atan2), square root, division, log, exp.
//! - **Statistics**: Mean, variance, standard deviation, RMS, power, min/max, entropy, Kullback-Leibler, LogSumExp.
//! - **Support**: Vector copy, fill, type conversions (Q7, Q15, Q31, F32), sort, barycenter, weighted sum.
//! - **Matrix**: Matrix addition, subtraction, multiplication, scale, transpose, Gauss-Jordan inverse.
//! - **Filtering**: FIR, Biquad IIR Direct Form I, LMS adaptive filters, Convolution, Correlation.
//! - **Transform**: In-place Complex FFT (CFFT), Real FFT (RFFT), DCT-IV, Bit reversal.
//! - **Controller**: PID motor controller, Clarke transform, Park transform, Inverse Clarke/Park.
//! - **Interpolation**: Linear, Bilinear, Cubic spline interpolation.
//! - **Quaternion**: Norm, normalization, product, conjugate, inverse, rotation matrix conversion.
//! - **Window**: Hanning, Hamming, Blackman, Bartlett, Welch, Flat-top window generators.
//! - **Distance**: Euclidean, Cosine, Chebyshev, Manhattan, Minkowski, Jaccard, Hamming, Canberra, Bray-Curtis.
//! - **Bayes**: Gaussian Naive Bayes classifier.
//! - **SVM**: Support Vector Machine classifier with Linear, Polynomial, RBF, and Sigmoid kernels.

#[cfg(feature = "std")]
extern crate std;

#[cfg(feature = "basic-math")]
pub mod basic_math;
#[cfg(feature = "bayes")]
pub mod bayes;
#[cfg(feature = "complex-math")]
pub mod complex_math;
#[cfg(feature = "controller")]
pub mod controller;
#[cfg(feature = "distance")]
pub mod distance;
#[cfg(feature = "fast-math")]
pub mod fast_math;
#[cfg(feature = "filtering")]
pub mod filtering;
#[cfg(feature = "fixed-point")]
pub mod fixed_point;
#[cfg(feature = "interpolation")]
pub mod interpolation;
#[cfg(feature = "lut")]
pub mod lut;
pub mod math;
#[cfg(feature = "matrix")]
pub mod matrix;
#[cfg(feature = "quaternion")]
pub mod quaternion;
#[cfg(feature = "statistics")]
pub mod statistics;
#[cfg(feature = "support")]
pub mod support;
#[cfg(feature = "svm")]
pub mod svm;
#[cfg(feature = "transform")]
pub mod transform;
pub mod types;
#[cfg(feature = "window")]
pub mod window;

#[cfg(feature = "basic-math")]
pub use basic_math::*;
#[cfg(feature = "bayes")]
pub use bayes::*;
#[cfg(feature = "complex-math")]
pub use complex_math::*;
#[cfg(feature = "controller")]
pub use controller::*;
#[cfg(feature = "distance")]
pub use distance::*;
#[cfg(feature = "fast-math")]
pub use fast_math::*;
#[cfg(feature = "filtering")]
pub use filtering::*;
#[cfg(feature = "fixed-point")]
pub use fixed_point::*;
#[cfg(feature = "interpolation")]
pub use interpolation::*;
pub use math::*;
#[cfg(feature = "matrix")]
pub use matrix::*;
#[cfg(feature = "quaternion")]
pub use quaternion::*;
#[cfg(feature = "statistics")]
pub use statistics::*;
#[cfg(feature = "support")]
pub use support::*;
#[cfg(feature = "svm")]
pub use svm::*;
#[cfg(feature = "transform")]
pub use transform::*;
pub use types::*;
#[cfg(feature = "window")]
pub use window::*;