pub struct AdmmSolver { /* private fields */ }Expand description
ADMM solver using Clarabel for subproblems
Implementations§
Source§impl AdmmSolver
impl AdmmSolver
Sourcepub fn with_params(params: AdmmParams) -> Self
pub fn with_params(params: AdmmParams) -> Self
Create ADMM solver with custom parameters
Sourcepub fn solve_qp_admm<F>(
&mut self,
p: &DMatrix<f64>,
q: &DVector<f64>,
a: &DMatrix<f64>,
b: &DMatrix<f64>,
c: &DVector<f64>,
z_update: F,
) -> SolverResult<Solution>
pub fn solve_qp_admm<F>( &mut self, p: &DMatrix<f64>, q: &DVector<f64>, a: &DMatrix<f64>, b: &DMatrix<f64>, c: &DVector<f64>, z_update: F, ) -> SolverResult<Solution>
Solve quadratic programming with equality constraints using ADMM
minimize (1/2) x^T P x + q^T x + g(z) subject to Ax + Bz = c
where g(z) is handled by the z-update (e.g., indicator functions, norms)
Sourcepub fn solve_lasso(
&mut self,
a: &DMatrix<f64>,
b: &DVector<f64>,
lambda: f64,
) -> SolverResult<Solution>
pub fn solve_lasso( &mut self, a: &DMatrix<f64>, b: &DVector<f64>, lambda: f64, ) -> SolverResult<Solution>
Solve LASSO problem: minimize ||Ax - b||² + λ||x||₁
Sourcepub fn solve_basis_pursuit(
&mut self,
a: &DMatrix<f64>,
b: &DVector<f64>,
) -> SolverResult<Solution>
pub fn solve_basis_pursuit( &mut self, a: &DMatrix<f64>, b: &DVector<f64>, ) -> SolverResult<Solution>
Solve basis pursuit: minimize ||x||₁ subject to Ax = b
Trait Implementations§
Source§impl Debug for AdmmSolver
impl Debug for AdmmSolver
Source§impl Default for AdmmSolver
impl Default for AdmmSolver
Source§impl OptimizationProblem for AdmmSolver
impl OptimizationProblem for AdmmSolver
Auto Trait Implementations§
impl Freeze for AdmmSolver
impl RefUnwindSafe for AdmmSolver
impl Send for AdmmSolver
impl Sync for AdmmSolver
impl Unpin for AdmmSolver
impl UnsafeUnpin for AdmmSolver
impl UnwindSafe for AdmmSolver
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.