3#include <initializer_list>
45 double a_linearization_floor = 1.0e-10);
54 double a_linearization_floor = 1.0e-10);
62 std::size_t symmetric_num_stationary_max,
66 const std::vector<Objective> &
objectives() const noexcept {
return objectives_; }
67 const std::vector<double> &
a_linearization() const noexcept {
return a_linearization_; }
68 std::size_t
idx_s_start() const noexcept {
return idx_s_start_; }
69 std::size_t
idx_s_final() const noexcept {
return idx_s_final_; }
74 std::size_t
s_len() const noexcept {
return a_linearization_.size(); }
77 Robot *robot_ =
nullptr;
78 std::vector<Objective> objectives_;
79 std::vector<double> a_linearization_;
80 std::size_t idx_s_start_ = 0;
81 std::size_t idx_s_final_ = 0;
85 double a_linearization_floor_ = 1.0e-10;
Small C++17 expected-like result used by no-throw overloads.
Robot facade backed by Rust Robot<CppRobotModel>.
Non-owning view of a contiguous one-dimensional array.
COPP3-SOCP problem descriptor.
StationaryBounds num_stationary_max() const noexcept
std::size_t idx_s_start() const noexcept
Problem(Robot &robot, std::initializer_list< Objective > objectives, Span< const double > a_linearization, std::size_t idx_s_start=0, Boundary3 boundary={}, StationaryBounds num_stationary_max={}, double a_linearization_floor=1.0e-10)
const std::vector< double > & a_linearization() const noexcept
const std::vector< Objective > & objectives() const noexcept
Robot & robot() const noexcept
std::size_t s_len() const noexcept
Problem(Robot &robot, std::vector< Objective > objectives, Span< const double > a_linearization, std::size_t idx_s_start=0, Boundary3 boundary={}, StationaryBounds num_stationary_max={}, double a_linearization_floor=1.0e-10)
Problem(Robot &robot, std::vector< Objective > objectives, Span< const double > a_linearization, std::size_t idx_s_start, Boundary3 boundary, std::size_t symmetric_num_stationary_max, double a_linearization_floor=1.0e-10)
double a_linearization_floor() const noexcept
std::size_t idx_s_final() const noexcept
Boundary3 boundary() const noexcept
StationaryBounds num_stationary() const noexcept
auto expected_from(Fn &&fn) -> Expected< typename std::decay< decltype(fn())>::type >
Third-order convex-objective Clarabel SOCP backend with COPP objective support and expert objective/s...
COPP_API Result solve_expert(const Problem &problem, const clarabel::Options &options={})
Solve COPP3-SOCP and always return Clarabel diagnostics.
copp::solver::topp3::Result Result
copp::solver::topp3::StationaryBounds StationaryBounds
COPP_API Profile3rd solve(const Problem &problem, const clarabel::Options &options={})
Solve COPP3-SOCP and return an accepted third-order profile.
Third-order endpoint boundary values.
Tag object selecting no-throw overloads.
Owned third-order TOPP/COPP profile.
Shared Clarabel options for COPP/TOPP SOCP-style solvers.
Expert third-order Clarabel result.
User-supplied upper bound for stationary boundary intervals.