pub fn copp3_socp<'a, M: RobotTorque>(
problem: &Copp3Problem<'a, M>,
options: &ClarabelOptions,
) -> Result<(Vec<f64>, Vec<f64>, (usize, usize)), CoppError>Expand description
Strict COPP3-SOCP API for production use.
§Purpose
Use this entry when caller only needs a valid profile (a,b,num_stationary) and treats
non-accepted solver statuses as hard failures.
§Contract
- Internally calls
copp3_socp_expert. - Returns
Ok((a,b,num_stationary))iffoptions.is_allow(solution.status)istrue. - Returns
Err(CoppError::ClarabelSolverStatus(...))when status is not accepted.
§Returns
Returns accepted COPP3 profile (a, b, num_stationary).
§Errors
Returns CoppError on model/solver failures and non-accepted solver status.
§Notes
For workflows requiring low-level diagnostics (status and raw Clarabel solution fields),
prefer copp3_socp_expert.