123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- #ifndef CONSTANTS_H
- # define CONSTANTS_H
- # ifdef __cplusplus
- extern "C" {
- # endif // ifdef __cplusplus
- /*******************
- * OSQP Versioning *
- *******************/
- # define OSQP_VERSION ("0.6.0") /* string literals automatically null-terminated
- */
- /******************
- * Solver Status *
- ******************/
- # define OSQP_DUAL_INFEASIBLE_INACCURATE (4)
- # define OSQP_PRIMAL_INFEASIBLE_INACCURATE (3)
- # define OSQP_SOLVED_INACCURATE (2)
- # define OSQP_SOLVED (1)
- # define OSQP_MAX_ITER_REACHED (-2)
- # define OSQP_PRIMAL_INFEASIBLE (-3) /* primal infeasible */
- # define OSQP_DUAL_INFEASIBLE (-4) /* dual infeasible */
- # define OSQP_SIGINT (-5) /* interrupted by user */
- # ifdef PROFILING
- # define OSQP_TIME_LIMIT_REACHED (-6)
- # endif // ifdef PROFILING
- # define OSQP_NON_CVX (-7) /* problem non convex */
- # define OSQP_UNSOLVED (-10) /* Unsolved. Only setup function has been called */
- /*************************
- * Linear System Solvers *
- *************************/
- enum linsys_solver_type { QDLDL_SOLVER, MKL_PARDISO_SOLVER };
- extern const char * LINSYS_SOLVER_NAME[];
- /******************
- * Solver Errors *
- ******************/
- enum osqp_error_type {
- OSQP_DATA_VALIDATION_ERROR = 1, /* Start errors from 1 */
- OSQP_SETTINGS_VALIDATION_ERROR,
- OSQP_LINSYS_SOLVER_LOAD_ERROR,
- OSQP_LINSYS_SOLVER_INIT_ERROR,
- OSQP_NONCVX_ERROR,
- OSQP_MEM_ALLOC_ERROR,
- OSQP_WORKSPACE_NOT_INIT_ERROR,
- };
- extern const char * OSQP_ERROR_MESSAGE[];
- /**********************************
- * Solver Parameters and Settings *
- **********************************/
- # define RHO (0.1)
- # define SIGMA (1E-06)
- # define MAX_ITER (4000)
- # define EPS_ABS (1E-3)
- # define EPS_REL (1E-3)
- # define EPS_PRIM_INF (1E-4)
- # define EPS_DUAL_INF (1E-4)
- # define ALPHA (1.6)
- # define LINSYS_SOLVER (QDLDL_SOLVER)
- # define RHO_MIN (1e-06)
- # define RHO_MAX (1e06)
- # define RHO_EQ_OVER_RHO_INEQ (1e03)
- # define RHO_TOL (1e-04) ///< tolerance for detecting if an inequality is set to equality
- # ifndef EMBEDDED
- # define DELTA (1E-6)
- # define POLISH (0)
- # define POLISH_REFINE_ITER (3)
- # define VERBOSE (1)
- # endif // ifndef EMBEDDED
- # define SCALED_TERMINATION (0)
- # define CHECK_TERMINATION (25)
- # define WARM_START (1)
- # define SCALING (10)
- # define MIN_SCALING (1e-04) ///< minimum scaling value
- # define MAX_SCALING (1e+04) ///< maximum scaling value
- # ifndef OSQP_NULL
- # define OSQP_NULL 0
- # endif /* ifndef OSQP_NULL */
- # ifndef OSQP_NAN
- # define OSQP_NAN ((c_float)0x7fc00000UL) // not a number
- # endif /* ifndef OSQP_NAN */
- # ifndef OSQP_INFTY
- # define OSQP_INFTY ((c_float)1e30) // infinity
- # endif /* ifndef OSQP_INFTY */
- # if EMBEDDED != 1
- # define ADAPTIVE_RHO (1)
- # define ADAPTIVE_RHO_INTERVAL (0)
- # define ADAPTIVE_RHO_FRACTION (0.4) ///< fraction of setup time after which we update rho
- # define ADAPTIVE_RHO_MULTIPLE_TERMINATION (4) ///< multiple of check_termination after which we update rho (if PROFILING disabled)
- # define ADAPTIVE_RHO_FIXED (100) ///< number of iterations after which we update rho if termination_check and PROFILING are disabled
- # define ADAPTIVE_RHO_TOLERANCE (5) ///< tolerance for adopting new rho; minimum ratio between new rho and the current one
- # endif // if EMBEDDED != 1
- # ifdef PROFILING
- # define TIME_LIMIT (0) ///< Disable time limit as default
- # endif // ifdef PROFILING
- /* Printing */
- # define PRINT_INTERVAL 200
- # ifdef __cplusplus
- }
- # endif // ifdef __cplusplus
- #endif // ifndef CONSTANTS_H
|