33template <
typename Arr036,
typename Mat = Arr036>
class LMIProblem {
34 using Vec = std::valarray<double>;
64 -> std::tuple<Arr036, size_t> {
78 -> std::tuple<Arr036, size_t> {
94template <
typename Arr036,
typename Mat = Arr036>
96 return {ndim, std::move(
F), std::move(
B)};
Ellipsoid Search Space (stable strategy)
Definition ell_stable.hpp:24
LMI feasibility problem facade.
Definition lmi_problem.hpp:33
auto solve_feas(double alpha, Arr036 xc, const Options &options=Options()) -> std::tuple< Arr036, size_t >
Solve the LMI feasibility problem (alpha-scaled initial space).
Definition lmi_problem.hpp:77
auto solve_feas(const Vec &radii, Arr036 xc, const Options &options=Options()) -> std::tuple< Arr036, size_t >
Solve the LMI feasibility problem.
Definition lmi_problem.hpp:63
LMIProblem(size_t ndim, std::vector< Mat > F, Mat B)
Construct a new LMIProblem object.
Definition lmi_problem.hpp:49
Oracle for Linear Matrix Inequality.
Definition lmi_oracle.hpp:28
Cutting-plane methods for convex feasibility and optimization.
auto invalid_value() -> T
Return an invalid/sentinel value for type T.
Definition cutting_plane.hpp:27
auto cutting_plane_feas(O &omega, S &space, const Options &options=Options()) -> std::tuple< CuttingPlaneArrayType< S >, size_t >
Find a point in a convex set (defined through a cutting-plane oracle).
Definition cutting_plane.hpp:105
Numerically stable ellipsoid search space (LDL^T strategy)
Oracle for Linear Matrix Inequality feasibility (lazy matrix form)
auto make_lmi_problem(size_t ndim, std::vector< Mat > F, Mat B) -> LMIProblem< Arr036, Mat >
Create an LMIProblem facade.
Definition lmi_problem.hpp:95
Configuration options for the ellipsoid algorithm.
Definition ell_config.hpp:19