Python API Reference#
Parallel quadratic programming solver for optimal control.
- class cyqlone.CyQPALMBackendSettings(*args, **kwargs)#
- Attributes:
changing_constr_factor(self) -> float
detailed_timings(self) -> bool
max_update_count(self) -> int
print_precision(self) -> int
print_residuals(self) -> bool
processors(self) -> int
spin_count(self) -> int
strategy(self) -> cyqlone._common.WarmStartingStrategy
tricyqle_params(self) -> cyqlone._common.TricyqleParams
- __init__#
- property changing_constr_factor#
(self) -> float
- property detailed_timings#
(self) -> bool
- property max_update_count#
(self) -> int
- property print_precision#
(self) -> int
- property print_residuals#
(self) -> bool
- property processors#
(self) -> int
- property spin_count#
(self) -> int
- property strategy#
(self) -> cyqlone._common.WarmStartingStrategy
- property tricyqle_params#
(self) -> cyqlone._common.TricyqleParams
- class cyqlone.CyqloneOCP(*args, **kwargs)#
- Attributes:
N_horiz(self) -> int
data_F(self) -> numpy.ndarray[dtype=float64, shape=(*, *, *), device=’cpu’]
data_G(self) -> numpy.ndarray[dtype=float64, shape=(*, *, *), device=’cpu’]
data_G0N(self) -> numpy.ndarray[dtype=float64, shape=(*, *, *), device=’cpu’]
data_H(self) -> numpy.ndarray[dtype=float64, shape=(*, *, *), device=’cpu’]
data_c(self) -> numpy.ndarray[dtype=float64, shape=(*, *, *), device=’cpu’]
data_lb(self) -> numpy.ndarray[dtype=float64, shape=(*, *, *), device=’cpu’]
data_lb0N(self) -> numpy.ndarray[dtype=float64, shape=(*, *, *), device=’cpu’]
data_rq(self) -> numpy.ndarray[dtype=float64, shape=(*, *, *), device=’cpu’]
data_ub(self) -> numpy.ndarray[dtype=float64, shape=(*, *, *), device=’cpu’]
data_ub0N(self) -> numpy.ndarray[dtype=float64, shape=(*, *, *), device=’cpu’]
indices_G0(self) -> numpy.ndarray[dtype=int32, shape=(*), order=’A’, device=’cpu’]
nu(self) -> int
nx(self) -> int
ny(self) -> int
ny_0(self) -> int
ny_N(self) -> int
Methods
- property N_horiz#
(self) -> int
- __init__#
- compute_kkt_error#
- property indices_G0#
(self) -> numpy.ndarray[dtype=int32, shape=(*), order=’A’, device=’cpu’]
- property nu#
(self) -> int
- property nx#
(self) -> int
- property ny#
(self) -> int
- property ny_0#
(self) -> int
- property ny_N#
(self) -> int
- reconstruct_ineq_multipliers#
- reconstruct_solution#
- update#
- class cyqlone.DefaultTimings(*args, **kwargs)#
- Attributes:
num_invocations(self) -> int
wall_time(self) -> datetime.timedelta
- __init__#
- property num_invocations#
(self) -> int
- property wall_time#
(self) -> datetime.timedelta
- class cyqlone.DetailedStats#
- Attributes:
entries(self) -> list[cyqlone._common.DetailedStats.Entry]
Methods
Entry
ExitReason
- class Entry#
- Attributes:
eq_constr_viol(self) -> float
exit_reason(self) -> cyqlone._common.DetailedStats.ExitReason
ineq_constr_viol(self) -> float
inner_iter(self) -> int
linesearch_breakpoint_index(self) -> int
linesearch_step_size(self) -> float
num_active_constr(self) -> int
num_changing_constr(self) -> int
outer_iter(self) -> int
stationarity(self) -> float
- __init__(*args, **kwargs)#
- property eq_constr_viol#
(self) -> float
- property exit_reason#
(self) -> cyqlone._common.DetailedStats.ExitReason
- property ineq_constr_viol#
(self) -> float
- property inner_iter#
(self) -> int
- property linesearch_breakpoint_index#
(self) -> int
- property linesearch_step_size#
(self) -> float
- property num_active_constr#
(self) -> int
- property num_changing_constr#
(self) -> int
- property outer_iter#
(self) -> int
- property stationarity#
(self) -> float
- __init__(*args, **kwargs)#
- property entries#
(self) -> list[cyqlone._common.DetailedStats.Entry]
- class cyqlone.KKTError#
- Attributes:
complementarity(self) -> float
equality_residual(self) -> float
inequality_residual(self) -> float
stationarity(self) -> float
- __init__(*args, **kwargs)#
- property complementarity#
(self) -> float
- property equality_residual#
(self) -> float
- property inequality_residual#
(self) -> float
- property stationarity#
(self) -> float
- class cyqlone.LinearOCPSparseQP(*args, **kwargs)#
- Attributes:
Methods
- property A#
Constraint Jacobian matrix in sparse CSC format
- property Q#
Cost Hessian matrix in sparse CSC format (lower triangular part only)
- __init__#
- build_kkt_matrix#
- class cyqlone.OCP(*args, **kwargs)#
- Attributes:
N_horiz(self) -> int
dim(self) -> tuple[int, int, int, int, int]
nu(self) -> int
nx(self) -> int
ny(self) -> int
ny_N(self) -> int
qr(self) -> numpy.ndarray[dtype=float64, shape=(*), order=’A’, device=’cpu’]
rhs_eq(self) -> numpy.ndarray[dtype=float64, shape=(*), order=’A’, device=’cpu’]
rhs_lb(self) -> numpy.ndarray[dtype=float64, shape=(*), order=’A’, device=’cpu’]
rhs_ub(self) -> numpy.ndarray[dtype=float64, shape=(*), order=’A’, device=’cpu’]
x0(self) -> numpy.ndarray[dtype=float64, shape=(*), order=’A’, device=’cpu’]
Methods
- A#
- AB#
- B#
- C#
- CD#
- D#
- H#
- property N_horiz#
(self) -> int
- Q#
- R#
- S#
- __init__#
- b#
- property dim#
(self) -> tuple[int, int, int, int, int]
- dump_mat#
- load_mat#
- property nu#
(self) -> int
- property nx#
(self) -> int
- property ny#
(self) -> int
- property ny_N#
(self) -> int
- q#
- property qr#
(self) -> numpy.ndarray[dtype=float64, shape=(*), order=’A’, device=’cpu’]
- r#
- property rhs_eq#
(self) -> numpy.ndarray[dtype=float64, shape=(*), order=’A’, device=’cpu’]
- property rhs_lb#
(self) -> numpy.ndarray[dtype=float64, shape=(*), order=’A’, device=’cpu’]
- property rhs_ub#
(self) -> numpy.ndarray[dtype=float64, shape=(*), order=’A’, device=’cpu’]
- property x0#
(self) -> numpy.ndarray[dtype=float64, shape=(*), order=’A’, device=’cpu’]
- class cyqlone.PlatooningParams(*args, **kwargs)#
- Attributes:
- property F_max#
(self) -> float
- property N_horiz#
(self) -> int
- property T_horiz#
(self) -> float
- __init__#
- property dist_init#
(self) -> float
- property dist_min#
(self) -> float
- property friction#
(self) -> float
- property masses#
(self) -> list[float]
- property p_target#
(self) -> float
- property scale_cost#
(self) -> float
- property v_max#
(self) -> float
- class cyqlone.Settings(*args, **kwargs)#
- Attributes:
boost_penalty_x(self) -> float
detailed_stats(self) -> bool
dual_tolerance(self) -> float
eq_constr_tolerance(self) -> float
force_linesearch_if_dir_deriv_pos(self) -> bool
force_linesearch_if_no_set_change(self) -> bool
initial_inner_tolerance(self) -> float
initial_penalty_x(self) -> float
initial_penalty_y(self) -> float
linesearch_include_multipliers(self) -> bool
max_inner_iter(self) -> int
max_no_changes_active_set(self) -> int
max_outer_iter(self) -> int
max_penalty_x(self) -> float
max_penalty_y(self) -> float
max_time(self) -> datetime.timedelta
max_total_inner_iter(self) -> int
print_directional_deriv(self) -> bool
print_linesearch_inputs(self) -> bool
proximal(self) -> bool
recompute(self) -> bool
recompute_eq_res(self) -> bool
recompute_inner(self) -> bool
scale_newton_step(self) -> bool
tolerance(self) -> float
verbose(self) -> bool
Δx(self) -> float
Δy(self) -> float
Δy_always(self) -> float
θ(self) -> float
ρ(self) -> float
- __init__#
- property boost_penalty_x#
(self) -> float
- property detailed_stats#
(self) -> bool
- property dual_tolerance#
(self) -> float
- property eq_constr_tolerance#
(self) -> float
- property force_linesearch_if_dir_deriv_pos#
(self) -> bool
- property force_linesearch_if_no_set_change#
(self) -> bool
- property initial_inner_tolerance#
(self) -> float
- property initial_penalty_x#
(self) -> float
- property initial_penalty_y#
(self) -> float
- property linesearch_include_multipliers#
(self) -> bool
- property max_inner_iter#
(self) -> int
- property max_no_changes_active_set#
(self) -> int
- property max_outer_iter#
(self) -> int
- property max_penalty_x#
(self) -> float
- property max_penalty_y#
(self) -> float
- property max_time#
(self) -> datetime.timedelta
- property max_total_inner_iter#
(self) -> int
- property print_directional_deriv#
(self) -> bool
- property print_linesearch_inputs#
(self) -> bool
- property proximal#
(self) -> bool
- property recompute#
(self) -> bool
- property recompute_eq_res#
(self) -> bool
- property recompute_inner#
(self) -> bool
- property scale_newton_step#
(self) -> bool
- property tolerance#
(self) -> float
- property verbose#
(self) -> bool
- property Δx#
(self) -> float
- property Δy#
(self) -> float
- property Δy_always#
(self) -> float
- property θ#
(self) -> float
- property ρ#
(self) -> float
- class cyqlone.Solution#
- Attributes:
equality_multipliers(self) -> numpy.ndarray[dtype=float64, shape=(*), order=’A’, device=’cpu’]
inequality_multipliers(self) -> numpy.ndarray[dtype=float64, shape=(*), order=’A’, device=’cpu’]
solution(self) -> numpy.ndarray[dtype=float64, shape=(*), order=’A’, device=’cpu’]
- __init__(*args, **kwargs)#
- property equality_multipliers#
(self) -> numpy.ndarray[dtype=float64, shape=(*), order=’A’, device=’cpu’]
- property inequality_multipliers#
(self) -> numpy.ndarray[dtype=float64, shape=(*), order=’A’, device=’cpu’]
- property solution#
(self) -> numpy.ndarray[dtype=float64, shape=(*), order=’A’, device=’cpu’]
- class cyqlone.SolverStats(*args, **kwargs)#
- Attributes:
detail(self) -> cyqlone._common.DetailedStats | None
inner_iter(self) -> int
max_penalty(self) -> float
outer_iter(self) -> int
primal_residual_norm(self) -> float
stationarity(self) -> float
timings(self) -> cyqlone._common.SolverTimings
- __init__#
- property detail#
(self) -> cyqlone._common.DetailedStats | None
- property inner_iter#
(self) -> int
- property max_penalty#
(self) -> float
- property outer_iter#
(self) -> int
- property primal_residual_norm#
(self) -> float
- property stationarity#
(self) -> float
- property timings#
(self) -> cyqlone._common.SolverTimings
- class cyqlone.SolverStatus(*values)#
- Busy = 0#
- Converged = 1#
- MaxTime = 2#
- MaxIter = 3#
- NotFinite = 4#
- NoProgress = 5#
- Interrupted = 6#
- Exception = 7#
- class cyqlone.SolverTimings(*args, **kwargs)#
- Attributes:
active_set_change(self) -> cyqlone._common.DefaultTimings
backend(self) -> dict[str, cyqlone._common.DefaultTimings]
boost_regularization(self) -> cyqlone._common.DefaultTimings
line_search(self) -> cyqlone._common.DefaultTimings
mat_vec_A(self) -> cyqlone._common.DefaultTimings
mat_vec_AT(self) -> cyqlone._common.DefaultTimings
mat_vec_M(self) -> cyqlone._common.DefaultTimings
mat_vec_MT(self) -> cyqlone._common.DefaultTimings
mat_vec_Q(self) -> cyqlone._common.DefaultTimings
recompute_inner(self) -> cyqlone._common.DefaultTimings
recompute_outer(self) -> cyqlone._common.DefaultTimings
scaling(self) -> cyqlone._common.DefaultTimings
solve(self) -> cyqlone._common.DefaultTimings
total(self) -> cyqlone._common.DefaultTimings
update_penalty(self) -> cyqlone._common.DefaultTimings
update_regularization(self) -> cyqlone._common.DefaultTimings
- __init__#
- property active_set_change#
(self) -> cyqlone._common.DefaultTimings
- property backend#
(self) -> dict[str, cyqlone._common.DefaultTimings]
- property boost_regularization#
(self) -> cyqlone._common.DefaultTimings
- property line_search#
(self) -> cyqlone._common.DefaultTimings
- property mat_vec_A#
(self) -> cyqlone._common.DefaultTimings
- property mat_vec_AT#
(self) -> cyqlone._common.DefaultTimings
- property mat_vec_M#
(self) -> cyqlone._common.DefaultTimings
- property mat_vec_MT#
(self) -> cyqlone._common.DefaultTimings
- property mat_vec_Q#
(self) -> cyqlone._common.DefaultTimings
- property recompute_inner#
(self) -> cyqlone._common.DefaultTimings
- property recompute_outer#
(self) -> cyqlone._common.DefaultTimings
- property scaling#
(self) -> cyqlone._common.DefaultTimings
- property solve#
(self) -> cyqlone._common.DefaultTimings
- property total#
(self) -> cyqlone._common.DefaultTimings
- property update_penalty#
(self) -> cyqlone._common.DefaultTimings
- property update_regularization#
(self) -> cyqlone._common.DefaultTimings
- class cyqlone.SpringMassParams(*args, **kwargs)#
- Attributes:
F_max(self) -> float
N_horiz(self) -> int
T_horiz(self) -> float
actuator_placement(self) -> cyqlone._common.SpringMassParams.ActuatorPlacement
friction(self) -> float
k_spring(self) -> float
masses(self) -> list[float]
n_actuators(self) -> int
p_max(self) -> float
p_max_f(self) -> float
p_min(self) -> float
p_min_f(self) -> float
q_pos(self) -> float
q_pos_f(self) -> float
q_vel(self) -> float
q_vel_f(self) -> float
r_act(self) -> float
seed(self) -> int
v_max(self) -> float
v_max_f(self) -> float
width(self) -> float
Methods
ActuatorPlacement
- class ActuatorPlacement(*values)#
- IndividualActuators = 0#
- RandomActuators = 1#
- RandomPairsOfActuators = 2#
- WangBoydActuators = 3#
- property F_max#
(self) -> float
- IndividualActuators = 0#
- property N_horiz#
(self) -> int
- RandomActuators = 1#
- RandomPairsOfActuators = 2#
- property T_horiz#
(self) -> float
- WangBoydActuators = 3#
- __init__#
- property actuator_placement#
(self) -> cyqlone._common.SpringMassParams.ActuatorPlacement
- domahidi_2012 = <nanobind.nb_func object>#
- property friction#
(self) -> float
- property k_spring#
(self) -> float
- property masses#
(self) -> list[float]
- property n_actuators#
(self) -> int
- property p_max#
(self) -> float
- property p_max_f#
(self) -> float
- property p_min#
(self) -> float
- property p_min_f#
(self) -> float
- property q_pos#
(self) -> float
- property q_pos_f#
(self) -> float
- property q_vel#
(self) -> float
- property q_vel_f#
(self) -> float
- property r_act#
(self) -> float
- property seed#
(self) -> int
- property v_max#
(self) -> float
- property v_max_f#
(self) -> float
- wang_boyd_2008 = <nanobind.nb_func object>#
- property width#
(self) -> float
- class cyqlone.TricyqleParams(*args, **kwargs)#
- Attributes:
cr_max_update_fraction_Y0(self) -> float
enable_prefetching(self) -> bool
parallel_factor_pcr_threshold(self) -> int
parallel_solve_cr_threshold(self) -> int
pcg_max_iter(self) -> int
pcg_print_resid(self) -> bool
pcg_tolerance(self) -> float
pcr_max_update_fraction(self) -> float
solve_method(self) -> cyqlone::SolveMethod
- __init__#
- property cr_max_update_fraction_Y0#
(self) -> float
- property enable_prefetching#
(self) -> bool
- property parallel_factor_pcr_threshold#
(self) -> int
- property parallel_solve_cr_threshold#
(self) -> int
- property pcg_max_iter#
(self) -> int
- property pcg_print_resid#
(self) -> bool
- property pcg_tolerance#
(self) -> float
- property pcr_max_update_fraction#
(self) -> float
- property solve_method#
(self) -> cyqlone::SolveMethod
- class cyqlone.simd4.CyqloneSolver(*args, **kwargs)#
- Attributes:
num_dynamics_constraints(self) -> int
num_general_constraints(self) -> int
num_variables(self) -> int
params(self) -> cyqlone._common.TricyqleParams
params_string(self) -> str
Methods
- __init__#
- build_rhs#
- build_sparse#
- build_sparse_diag#
- build_sparse_factor#
- factor#
- factor_solve#
- initialize_bounds#
- initialize_gradient#
- initialize_rhs#
- property num_dynamics_constraints#
(self) -> int
- property num_general_constraints#
(self) -> int
- property num_variables#
(self) -> int
- pack_constraints#
- pack_dynamics#
- pack_variables#
- property params#
(self) -> cyqlone._common.TricyqleParams
- property params_string#
(self) -> str
- residual_dynamics_constr#
- set_barrier_spin_count#
- solve_forward#
- solve_reverse#
- transposed_dynamics_constr#
- unpack_constraints#
- unpack_dynamics#
- unpack_variables#
- update#
- class cyqlone.simd4.QPALM_Cyqlone(*args, **kwargs)#
- Attributes:
equality_multipliers(self) -> list[float]
inequality_multipliers(self) -> list[float]
solution(self) -> list[float]
stats(self) -> cyqlone._common.SolverStats | None
Methods
- __call__#
- __init__#
- property equality_multipliers#
(self) -> list[float]
- get_initial_guess#
- property inequality_multipliers#
(self) -> list[float]
- set_b_eq#
- set_b_lb#
- set_b_ub#
- set_initial_guess#
- property solution#
(self) -> list[float]
- property stats#
(self) -> cyqlone._common.SolverStats | None
- update_data#
- warm_start_solution#