#[derive(Debug, Clone)]
pub struct CsConfig {
pub sparsity: usize,
pub max_iter: usize,
pub tol: f64,
}
impl Default for CsConfig {
fn default() -> Self {
Self {
sparsity: 5,
max_iter: 100,
tol: 1e-6,
}
}
}
#[derive(Debug, Clone)]
pub struct Measurement {
pub indices: Vec<usize>,
pub values: Vec<f64>,
}
#[derive(Debug, Clone)]
pub struct CsResult {
pub recovered: Vec<f64>,
pub iterations: usize,
pub residual: f64,
}
#[non_exhaustive]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum RecoveryMethod {
Omp,
Ista,
Admm,
CoSaMP,
}