#[derive(Clone, Copy, Debug, PartialEq)]
pub struct IlutParams {
pub droptol_abs: f64,
pub droptol_rel: f64,
pub p_l: usize,
pub p_u: usize,
pub early_drop: bool,
pub pivot: PivotPolicy,
pub pivot_tau: f64,
pub reproducible_order: bool,
pub pivoting: Pivoting,
}
impl Default for IlutParams {
fn default() -> Self {
Self {
droptol_abs: 0.0,
droptol_rel: 0.0,
p_l: 0,
p_u: 0,
early_drop: true,
pivot: PivotPolicy::DiagonalPerturbation,
pivot_tau: 1e-12,
reproducible_order: true,
pivoting: Pivoting::None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq)]
pub enum PivotPolicy {
Strict,
Threshold,
DiagonalPerturbation,
}
#[derive(Clone, Copy, Debug, PartialEq)]
pub enum Pivoting {
None,
#[allow(dead_code)]
ILUTP {
band: usize,
tau: f64,
},
}