3#include <initializer_list>
41 const std::vector<Objective> &
objectives() const noexcept {
return objectives_; }
44 std::size_t
s_len() const noexcept {
return s_len_; }
47 const Robot *robot_ =
nullptr;
48 std::vector<Objective> objectives_;
51 std::size_t s_len_ = 0;
63 std::optional<std::vector<double>>
a;
64 std::vector<double>
x;
65 std::vector<double>
z;
66 std::vector<double>
s;
78 bool has_a() const noexcept {
return a.has_value(); }
Small C++17 expected-like result used by no-throw overloads.
Robot facade backed by Rust Robot<CppRobotModel>.
COPP2-SOCP problem descriptor.
IndexInterval idx_s_interval() const noexcept
Boundary2 a_boundary() const noexcept
const Robot & robot() const noexcept
Problem(const Robot &robot, std::vector< Objective > objectives, IndexInterval idx_s_interval, Boundary2 a_boundary={})
Problem(const Robot &robot, std::initializer_list< Objective > objectives, IndexInterval idx_s_interval, Boundary2 a_boundary={})
const std::vector< Objective > & objectives() const noexcept
std::size_t s_len() const noexcept
SolverStatus
Clarabel termination status reported by expert SOCP results.
auto expected_from(Fn &&fn) -> Expected< typename std::decay< decltype(fn())>::type >
Second-order convex-objective Clarabel SOCP backend with normal profile-returning APIs and expert dia...
COPP_API Result solve_expert(const Problem &problem, const clarabel::Options &options={})
Solve COPP2-SOCP and always return Clarabel diagnostics.
COPP_API std::vector< double > solve(const Problem &problem, const clarabel::Options &options={})
Solve COPP2-SOCP and return an accepted node profile a(s).
Second-order endpoint boundary values.
Closed station-index interval used by TOPP/COPP problem descriptors.
Tag object selecting no-throw overloads.
Linear solver metadata captured from Clarabel after a solve.
Shared Clarabel options for COPP/TOPP SOCP-style solvers.
Expert COPP2-SOCP result with raw Clarabel diagnostics.
std::vector< double > objective_terms
bool has_a() const noexcept
clarabel::LinearSolverInfo linsolver
clarabel::SolverStatus solver_status
std::optional< double > objective_value
std::optional< std::vector< double > > a