|
EllAlgo 1.6.13
|
Oracle for Linear Matrix Inequality. More...
#include <lmi_old_oracle.hpp>
Public Member Functions | |
| LmiOldOracle (size_t ndim, const std::vector< Mat > &F, Mat B) | |
| Construct a new lmi oracle object. | |
| auto | assess_feas (const Arr036 &x) -> Cut * |
| Assess the feasibility of a given point via LDLT factorization. | |
| auto | operator() (const Arr036 &x) -> Cut * |
| Call operator wrapping assess_feas. | |
Additional Inherited Members | |
Protected Types inherited from LmiOracleBase< Arr036, Mat > | |
| using | Cut = std::pair< Arr036, double > |
Protected Member Functions inherited from LmiOracleBase< Arr036, Mat > | |
| template<typename LDLT , typename Fn > | |
| auto | assess_impl (LDLT &mgr, const std::vector< Mat > &F, const int sign, const Arr036 &x, Fn &&getA) -> Cut * |
| Shared assess_feas skeleton: factor, witness, sym_quad, pack cut. | |
Protected Attributes inherited from LmiOracleBase< Arr036, Mat > | |
| std::unique_ptr< Cut > | cut = std::make_unique<Cut>() |
| Storage for the cut returned by assess_feas. | |
Oracle for Linear Matrix Inequality.
This oracle solves the following feasibility problem:
find x s.t. (B - F * x) >= 0
A = B - Σ F_k x_k eagerly and feeds a lambda accessor with a positive sym_quad sign to the shared LmiOracleBase::assess_impl skeleton. Behaviorally identical to LmiOracle, which uses lazy evaluation instead of a pre-built matrix.
|
inline |
Construct a new lmi oracle object.
| [in] | ndim | |
| [in] | F | |
| [in] | B |
|
inline |
Assess the feasibility of a given point via LDLT factorization.
| [in] | x | The point to assess feasibility |
|
inline |
Call operator wrapping assess_feas.
| [in] | x | The point to assess feasibility |