87 double a_linearization_floor = 1.0e-10,
95 std::size_t symmetric_num_stationary_max,
100 const std::vector<double> &
a_linearization() const noexcept {
return a_linearization_; }
102 const std::vector<double> &
b_linearization() const noexcept {
return b_linearization_; }
109 std::size_t
s_len() const noexcept {
return a_linearization_.size(); }
113 std::vector<double> a_linearization_;
114 std::vector<double> b_linearization_;
115 std::size_t idx_s_start_ = 0;
116 std::size_t idx_s_final_ = 0;
120 double a_linearization_floor_ = 1.0e-10;
136 std::vector<double>
x;
137 std::vector<double>
z;
138 std::vector<double>
s;
Non-owning view of a Rust-backed constraint buffer.
Non-owning view of a contiguous one-dimensional array.
const std::vector< double > & b_linearization() const noexcept
Copied b_linearization; empty when direct linearization is used.
double a_linearization_floor() const noexcept
std::size_t idx_s_start() const noexcept
Boundary3 boundary() const noexcept
StationaryBounds num_stationary_max() const noexcept
std::size_t s_len() const noexcept
Problem(ConstraintsRef constraints, 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, Span< const double > b_linearization={})
Prepare a third-order problem and immediately linearize constraints.
Problem(ConstraintsRef constraints, 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, Span< const double > b_linearization={})
const std::vector< double > & a_linearization() const noexcept
StationaryBounds num_stationary() const noexcept
std::size_t idx_s_final() const noexcept
ConstraintsRef constraints() const noexcept
SolverStatus
Clarabel termination status reported by expert SOCP results.
Shared third-order problem, boundary, stationary-bound, and expert result types used by TOPP3-LP,...
Third-order endpoint boundary values.
Linear solver metadata captured from Clarabel after a solve.
Expert third-order Clarabel result.
std::vector< double > objective_terms
bool has_profile() const noexcept
std::optional< Profile3rd > profile
std::optional< double > objective_value
clarabel::LinearSolverInfo linsolver
clarabel::SolverStatus solver_status
User-supplied upper bound for stationary boundary intervals.
static constexpr StationaryBounds both(std::size_t value) noexcept