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

Scalar Schur complement wrapper for 1x1 equality case. More...

#include <equality_coupling.hpp>

Public Member Functions

constexpr ScalarEqualityCoupling (const EqMat &A_in, const Scalar &s_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
 
Scalar s {}
 scalar for S
 

Detailed Description

template<linalg::MatrixContainer EqMat, linalg::Field Scalar, linalg::VectorContainer Var, linalg::VectorContainer NuVar>
struct convex::ScalarEqualityCoupling< EqMat, Scalar, Var, NuVar >

Scalar Schur complement wrapper for 1x1 equality case.

Definition at line 103 of file equality_coupling.hpp.

Constructor & Destructor Documentation

◆ ScalarEqualityCoupling()

template<linalg::MatrixContainer EqMat, linalg::Field Scalar, linalg::VectorContainer Var, linalg::VectorContainer NuVar>
constexpr convex::ScalarEqualityCoupling< EqMat, Scalar, Var, NuVar >::ScalarEqualityCoupling ( const EqMat &  A_in,
const Scalar &  s_in 
)
inlineexplicitconstexpr

CTOR.

Parameters
A(equality matrix)
s(scalar)

Definition at line 110 of file equality_coupling.hpp.

Member Function Documentation

◆ solve_step()

template<linalg::MatrixContainer EqMat, linalg::Field Scalar, linalg::VectorContainer Var, linalg::VectorContainer NuVar>
constexpr auto convex::ScalarEqualityCoupling< EqMat, Scalar, 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 128 of file equality_coupling.hpp.

References convex::ScalarEqualityCoupling< EqMat, Scalar, Var, NuVar >::A, convex::dom_size_v, and convex::ScalarEqualityCoupling< EqMat, Scalar, Var, NuVar >::s.

Member Data Documentation

◆ A

template<linalg::MatrixContainer EqMat, linalg::Field Scalar, linalg::VectorContainer Var, linalg::VectorContainer NuVar>
EqMat convex::ScalarEqualityCoupling< EqMat, Scalar, Var, NuVar >::A {}

member vars

Equality matrix

Definition at line 147 of file equality_coupling.hpp.

Referenced by convex::ScalarEqualityCoupling< EqMat, Scalar, Var, NuVar >::solve_step().

◆ s

template<linalg::MatrixContainer EqMat, linalg::Field Scalar, linalg::VectorContainer Var, linalg::VectorContainer NuVar>
Scalar convex::ScalarEqualityCoupling< EqMat, Scalar, Var, NuVar >::s {}

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