akreon-convex
Typed convex modeling, conic canonicalization, and primal-dual optimization in C++26.
Loading...
Searching...
No Matches
convex::SchurEqualityCoupling< EqMat, SchurFactor, Var, NuVar > Struct Template Reference

Equality-coupling wrapper for Schur-complement based solve. More...

#include <equality_coupling.hpp>

Public Member Functions

constexpr SchurEqualityCoupling (const EqMat &A_in, const SchurFactor &S_inv_in)
 CTOR.
 
constexpr auto solve_step (const auto &M_inv, const Var &pz_rhs, const Var &rd, const NuVar &req) const
 solve for pz step
 

Public Attributes

EqMat A {}
 member vars
 
SchurFactor S_inv
 Schur factor S = (A M^{-1} A^T)^{-1}.
 

Detailed Description

template<linalg::MatrixContainer EqMat, typename SchurFactor, linalg::VectorContainer Var, linalg::VectorContainer NuVar>
struct convex::SchurEqualityCoupling< EqMat, SchurFactor, Var, NuVar >

Equality-coupling wrapper for Schur-complement based solve.

2x2 saddle system [ M A^T ] [ pz; pnu] = [ hat{r}_d; req ] [ A 0 ]

M block M = F^T H F

Schur complement S = A M^{-1} A^T

Definition at line 49 of file equality_coupling.hpp.

Constructor & Destructor Documentation

◆ SchurEqualityCoupling()

template<linalg::MatrixContainer EqMat, typename SchurFactor , linalg::VectorContainer Var, linalg::VectorContainer NuVar>
constexpr convex::SchurEqualityCoupling< EqMat, SchurFactor, Var, NuVar >::SchurEqualityCoupling ( const EqMat &  A_in,
const SchurFactor &  S_inv_in 
)
inlineexplicitconstexpr

CTOR.

Parameters
A(eq mat)
S_inv(schur factor)

Definition at line 56 of file equality_coupling.hpp.

Member Function Documentation

◆ solve_step()

template<linalg::MatrixContainer EqMat, typename SchurFactor , linalg::VectorContainer Var, linalg::VectorContainer NuVar>
constexpr auto convex::SchurEqualityCoupling< EqMat, SchurFactor, Var, NuVar >::solve_step ( const auto &  M_inv,
const Var &  pz_rhs,
const Var &  rd,
const NuVar &  req 
) const
inlineconstexpr

solve for pz step

pnu = S^{-1}(A M^{-1} hat{r}_d - req) pz = M^{-1}(hat{r}_d - A^T pnu) where hat{r}_d = pz_rhs + rd

Parameters
M^{-1}(LDL(M))
pz_rhs(rhs to be solved)
rd(dual residual)
req(equality residual)
Returns
(pz, pnu, event)

Definition at line 74 of file equality_coupling.hpp.

References convex::SchurEqualityCoupling< EqMat, SchurFactor, Var, NuVar >::A, convex::dom_size_v, and convex::SchurEqualityCoupling< EqMat, SchurFactor, Var, NuVar >::S_inv.

Member Data Documentation

◆ A

template<linalg::MatrixContainer EqMat, typename SchurFactor , linalg::VectorContainer Var, linalg::VectorContainer NuVar>
EqMat convex::SchurEqualityCoupling< EqMat, SchurFactor, Var, NuVar >::A {}

member vars

Equality mat

Definition at line 94 of file equality_coupling.hpp.

Referenced by convex::SchurEqualityCoupling< EqMat, SchurFactor, Var, NuVar >::solve_step().

◆ S_inv

template<linalg::MatrixContainer EqMat, typename SchurFactor , linalg::VectorContainer Var, linalg::VectorContainer NuVar>
SchurFactor convex::SchurEqualityCoupling< EqMat, SchurFactor, Var, NuVar >::S_inv

Schur factor S = (A M^{-1} A^T)^{-1}.

Definition at line 95 of file equality_coupling.hpp.

Referenced by convex::SchurEqualityCoupling< EqMat, SchurFactor, Var, NuVar >::solve_step().


The documentation for this struct was generated from the following file: