62 lines
2.6 KiB
C++
Executable File
62 lines
2.6 KiB
C++
Executable File
#pragma once
|
|
|
|
#include <iostream>
|
|
#include "admm.hpp"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
int tiny_setup(TinySolver** solverp,
|
|
tinyMatrix Adyn, tinyMatrix Bdyn, tinyMatrix fdyn, tinyMatrix Q, tinyMatrix R,
|
|
tinytype rho, int nx, int nu, int N, int verbose);
|
|
int tiny_set_bound_constraints(TinySolver* solver,
|
|
tinyMatrix x_min, tinyMatrix x_max,
|
|
tinyMatrix u_min, tinyMatrix u_max);
|
|
int tiny_set_cone_constraints(TinySolver* solver,
|
|
VectorXi Acu, VectorXi qcu, tinyVector cu,
|
|
VectorXi Acx, VectorXi qcx, tinyVector cx);
|
|
int tiny_set_linear_constraints(TinySolver* solver,
|
|
tinyMatrix Alin_x, tinyVector blin_x,
|
|
tinyMatrix Alin_u, tinyVector blin_u);
|
|
int tiny_precompute_and_set_cache(TinyCache *cache,
|
|
tinyMatrix Adyn, tinyMatrix Bdyn, tinyMatrix fdyn, tinyMatrix Q, tinyMatrix R,
|
|
int nx, int nu, tinytype rho, int verbose);
|
|
|
|
void compute_sensitivity_matrices(TinyCache *cache,
|
|
tinyMatrix Adyn, tinyMatrix Bdyn, tinyMatrix Q, tinyMatrix R,
|
|
int nx, int nu, tinytype rho, int verbose);
|
|
|
|
int tiny_update_matrices_with_derivatives(TinyCache *cache, tinytype delta_rho);
|
|
int tiny_solve(TinySolver *solver);
|
|
|
|
int tiny_update_settings(TinySettings* settings,
|
|
tinytype abs_pri_tol, tinytype abs_dua_tol,
|
|
int max_iter, int check_termination,
|
|
int en_state_bound, int en_input_bound,
|
|
int en_state_soc, int en_input_soc,
|
|
int en_state_linear, int en_input_linear);
|
|
int tiny_set_default_settings(TinySettings* settings);
|
|
|
|
int tiny_set_x0(TinySolver* solver, tinyVector x0);
|
|
int tiny_set_x_ref(TinySolver* solver, tinyMatrix x_ref);
|
|
int tiny_set_u_ref(TinySolver* solver, tinyMatrix u_ref);
|
|
|
|
/**
|
|
* Initialize sensitivity matrices for adaptive rho
|
|
*
|
|
* @param solver Pointer to solver
|
|
*/
|
|
void tiny_initialize_sensitivity_matrices(TinySolver *solver);
|
|
|
|
int tiny_setup_state_soc_constraints(TinySolver *solver,
|
|
tinyVector Acx, tinyVector qcx, tinyVector cx,
|
|
int numStateCones);
|
|
|
|
int tiny_setup_input_soc_constraints(TinySolver *solver,
|
|
tinyVector Acu, tinyVector qcu, tinyVector cu,
|
|
int numInputCones);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif |