1#ifndef COPP_FORMULATION_H
2#define COPP_FORMULATION_H
Core status, memory, matrix, and shared solver option types.
struct CoppRobot CoppRobot
Opaque C handle for a library-owned robot and constraint buffer.
Robot handles, path sampling, derivative input, constraints, and limits.
Borrowed value descriptor for a COPP2 problem solved from C.
double a_final
Boundary value a(idx_s_final) = (ds/dt)^2.
size_t idx_s_start
Closed start station index.
const struct CoppRobot * robot
Robot handle that owns the station-indexed constraint storage.
double a_start
Boundary value a(idx_s_start) = (ds/dt)^2.
size_t idx_s_final
Closed final station index.
const struct CoppObjective * objectives
Objective descriptor array.
size_t num_objectives
Number of objective descriptors.
Borrowed value descriptor for a COPP3 problem solved from C.
size_t num_objectives
Number of objective descriptors.
size_t idx_s_start
Start station index.
const struct CoppObjective * objectives
Objective descriptor array.
double a_final
Boundary value a(idx_s_final) = dot{s}^2.
double b_final
Boundary value b(idx_s_final) = ddot{s}.
struct CoppRobot * robot
Mutable robot handle that owns station-indexed constraint storage.
double a_start
Boundary value a(idx_s_start) = dot{s}^2.
double b_start
Boundary value b(idx_s_start) = ddot{s}.
double a_linearization_floor
Denominator floor used when linearizing third-order constraints.
struct CoppSliceF64 a_linearization
Reference profile a[k] used to linearize third-order constraints.
size_t num_stationary_max_end
User-input stationary upper bound at the end.
size_t num_stationary_max_start
User-input stationary upper bound at the start.
Borrowed objective descriptor for COPP solvers.
struct CoppSliceF64 beta
Linear objective coefficient for variable b.
struct CoppSliceF64 normalize
Torque objective normalization vector.
double weight
Objective weight.
enum CoppObjectiveKind kind
Objective kind.
struct CoppSliceF64 alpha
Linear objective coefficient for variable a.
Owned third-order profile returned by TOPP3/COPP3 C ABI solvers.
struct CoppVecF64 b
Node-based profile b[k] = ddot{s}_k.
size_t num_stationary_end
Effective stationary interval count at the end.
struct CoppVecF64 a
Node-based profile a[k] = dot{s}_k^2.
size_t num_stationary_start
Effective stationary interval count at the start.
Borrowed immutable f64 slice passed from C to COPP.
Library-owned f64 vector returned to C.
Borrowed value descriptor for a TOPP2 problem solved from C.
const struct CoppRobot * robot
Robot handle that owns the station-indexed constraint storage.
double a_final
Boundary value a(idx_s_final) = (ds/dt)^2.
size_t idx_s_final
Closed final station index.
size_t idx_s_start
Closed start station index.
double a_start
Boundary value a(idx_s_start) = (ds/dt)^2.
Borrowed value descriptor for a TOPP3 problem solved from C.
double a_start
Boundary value a(idx_s_start) = dot{s}^2.
double a_linearization_floor
Denominator floor used when linearizing third-order constraints.
struct CoppSliceF64 a_linearization
Reference profile a[k] used to linearize third-order constraints.
double b_start
Boundary value b(idx_s_start) = ddot{s}.
double a_final
Boundary value a(idx_s_final) = dot{s}^2.
size_t num_stationary_max_end
User-input stationary upper bound at the end.
struct CoppRobot * robot
Mutable robot handle that owns station-indexed constraint storage.
size_t num_stationary_max_start
User-input stationary upper bound at the start.
double b_final
Boundary value b(idx_s_final) = ddot{s}.
size_t idx_s_start
Start station index.