use nalgebra::{Const, OMatrix, OVector};
pub const CONSTR_TOL: f32 = 1e-4;
pub(crate) const MIN_DIAG_CLAMP: f32 = 1e-6;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(u8)]
pub enum ExitCode {
Success = 0,
IterLimit = 1,
NanFoundQ = 4,
NanFoundUs = 5,
}
#[derive(Debug, Clone, Copy)]
pub struct SolverStats {
pub exit_code: ExitCode,
pub iterations: usize,
pub n_free: usize,
}
pub type MatA<const NC: usize, const NU: usize> = OMatrix<f32, Const<NC>, Const<NU>>;
pub type VecN<const N: usize> = OVector<f32, Const<N>>;