petal_decomposition/
lib.rs

1//! petal-decomposition provides matrix decomposition algorithms including PCA
2//! (principal component analysis) and ICA (independent component analysis).
3
4#[cfg(any(feature = "intel-mkl-static", feature = "intel-mkl-system"))]
5extern crate intel_mkl_src as _src;
6
7#[cfg(any(feature = "netlib-static", feature = "netlib-system"))]
8extern crate netlib_src as _src;
9
10#[cfg(any(feature = "openblas-static", feature = "openblas-system"))]
11extern crate openblas_src as _src;
12
13mod ica;
14mod linalg;
15mod pca;
16
17pub use ica::{FastIca, FastIcaBuilder};
18pub use pca::{Pca, PcaBuilder, RandomizedPca, RandomizedPcaBuilder};
19use thiserror::Error;
20
21/// The error type for PCA operations.
22#[derive(Debug, Error)]
23pub enum DecompositionError {
24    #[error("invalid matrix: {0}")]
25    InvalidInput(String),
26    #[error("linear algerba operation failed: {0}")]
27    LinalgError(String),
28}