Skip to main content

Crate oxicuda_cs

Crate oxicuda_cs 

Source
Expand description

oxicuda-cs — Compressed Sensing, Sparse Recovery, and Low-Rank Matrix Completion for OxiCUDA.

§Architecture

oxicuda-cs
├── greedy/             — OMP, StOMP, ROMP, CoSaMP, Subspace Pursuit
├── thresholding/       — IHT, NIHT, HTP, Accelerated IHT
├── amp/                — AMP, VAMP, Empirical-Bayes AMP
├── basis_pursuit/      — Basis Pursuit (ADMM), BPDN, Dantzig Selector
├── lasso/              — Coord descent (Friedman et al.), LARS, FISTA-LASSO,
│                         group/fused LASSO, Elastic Net
├── tv/                 — 1D/2D Chambolle Total Variation denoising
├── matrix_completion/  — SVT, Nuclear-norm minimisation, ADMM matrix completion
├── robust_pca/         — Principal Component Pursuit (PCP), GoDec
├── sparse_pca/         — Witten-Tibshirani-Hastie penalised matrix decomposition
├── sbl/                — Sparse Bayesian Learning, Fast Marginal Likelihood
├── dictionary/         — K-SVD, MOD, Online dictionary learning
├── measurement/        — Gaussian, Bernoulli, Partial Fourier matrices, RIP estimator
├── linalg/             — Private: Jacobi SVD, Householder QR, Cholesky, LSQR, normal equations
└── metrics/            — sparsity, recovery error, support recovery rate, MSE, PSNR, SNR

All algorithms are implemented in pure Rust with no external linear-algebra dependencies. Random sampling uses the workspace LcgRng (MMIX LCG with bit-32 boolean trick).

Re-exports§

pub use error::CsError;
pub use error::CsResult;
pub use handle::CsHandle;
pub use handle::LcgRng;
pub use handle::SmVersion;
pub use greedy::Lista;
pub use greedy::ListaConfig;
pub use lasso::Slope;
pub use lasso::SlopeConfig;
pub use lasso::sorted_l1_prox;
pub use robust_pca::RpcaGd;
pub use robust_pca::RpcaGdConfig;
pub use dictionary::CoupledDictionary;
pub use dictionary::CoupledDlConfig;
pub use dictionary::couple_code;
pub use dictionary::coupled_dl;
pub use dictionary::coupled_dl;
pub use measurement::CodedDiffraction;
pub use measurement::MaskKind;
pub use measurement::WirtingerConfig;
pub use measurement::phase_aligned_error;
pub use sbl::Rvm;
pub use sbl::RvmConfig;
pub use sbl::RvmFit;
pub use sbl::RvmKernel;
pub use sbl::rvm_fit_design;
pub use sbl::SmcCs;
pub use sbl::SmcCsConfig;
pub use ptx_advanced::TileConfig;
pub use ptx_advanced::correlate_fp8_ptx;
pub use ptx_advanced::correlate_tma_ptx;
pub use ptx_advanced::iht_step_cp_async_ptx;
pub use ptx_advanced::svt_threshold_warpshuffle_ptx;

Modules§

amp
Approximate Message Passing family: AMP, VAMP, EB-AMP.
basis_pursuit
Linear-programming based sparse recovery: Basis Pursuit and Dantzig Selector.
dictionary
Dictionary learning: K-SVD, MOD, and online dictionary updates.
error
Error types for oxicuda-cs.
greedy
Greedy sparse recovery algorithms (OMP, StOMP, ROMP, CoSaMP, SP, SOMP, Block-OMP, LISTA).
handle
Handle and RNG primitives for oxicuda-cs.
lasso
LASSO and its variants: coordinate descent, LARS, FISTA, group/fused/elastic-net, SLOPE, Dantzig.
linalg
Private linear-algebra helpers for compressed sensing.
matrix_completion
Low-rank matrix completion methods: SVT, nuclear-norm, ADMM.
measurement
Compressed-sensing measurement (sensing) matrices and RIP estimator.
metrics
Compressed-sensing recovery metrics.
ptx_advanced
Architecture-specialised PTX kernel variants for compressed-sensing operations.
ptx_kernels
GPU PTX kernels for compressed-sensing operations.
robust_pca
Robust PCA: decompose M = L + S into low-rank L and sparse S.
sbl
Sparse Bayesian Learning algorithms.
sparse_pca
Sparse Principal Component Analysis.
thresholding
Hard-thresholding-based recovery: IHT, NIHT, HTP, AIHT.
tv
Total Variation denoising in 1D and 2D.