124 const double * x_min,
const double *x_max);
133 const double *A,
size_t lda,
134 const double *b_min,
const double *b_max );
142 const double *Q_values,
int *Q_cols,
int *Q_row_ptr );
153 typedef struct aa_opt_cx*
156 const double *A,
size_t ldA,
157 const double *b_lower,
const double *b_upper,
159 const double *x_lower,
const double *x_upper
170 const double *A,
size_t ldA,
171 const double *b_lower,
const double *b_upper,
173 const double *x_lower,
const double *x_upper
186 const double *A,
size_t ldA,
187 const double *b_lower,
const double *b_upper,
189 const double *x_lower,
const double *x_upper
198 const double *A,
size_t ldA,
199 const double *b_lower,
const double *b_upper,
201 const double *x_lower,
const double *x_upper
209 const double *A,
size_t ldA,
210 const double *b_lower,
const double *b_upper,
212 const double *x_lower,
const double *x_upper
220 const double *A_values,
int *A_cols,
int *A_row_ptr,
221 const double *b_lower,
const double *b_upper,
223 const double *x_lower,
const double *x_upper );
231 const double *A_values,
int *A_cols,
int *A_row_ptr,
232 const double *b_lower,
const double *b_upper,
234 const double *x_lower,
const double *x_upper );
242 const double *A_values,
int *A_cols,
int *A_row_ptr,
243 const double *b_lower,
const double *b_upper,
245 const double *x_lower,
const double *x_upper );
#define AA_API
calling and name mangling convention for functions
AA_API int aa_opt_set_type(struct aa_opt_cx *cx, size_t i, enum aa_opt_type type)
Set the optimization variable type.
AA_API int aa_opt_solve(struct aa_opt_cx *cx, size_t n, double *x)
Solve the optimization problem.
AA_API struct aa_opt_cx * aa_opt_clp_crscreate(size_t m, size_t n, const double *A_values, int *A_cols, int *A_row_ptr, const double *b_lower, const double *b_upper, const double *c, const double *x_lower, const double *x_upper)
Create an optimization context for CLP.
aa_opt_lp_solver
Available lp solver backends.
@ AA_OPT_LP_SOLVER_DEFAULT
A sane default.
@ AA_OPT_LP_SOLVER_GLPK
GNU Linear Programming Kit.
@ AA_OPT_LP_SOLVER_LPSOLVE
LPSolve.
@ AA_OPT_LP_SOLVER_CLP
COIN-OR LP Solver.
aa_opt_type
Type of optiziation variable.
@ AA_OPT_CONTINUOUS
continuous (float) variable
@ AA_OPT_INTEGER
integer variable
@ AA_OPT_BINARY
binary variable
AA_API struct aa_opt_cx * aa_opt_clp_gmcreate(size_t m, size_t n, const double *A, size_t ldA, const double *b_lower, const double *b_upper, const double *c, const double *x_lower, const double *x_upper)
Create an optimization context for CLP.
AA_API struct aa_opt_cx * aa_opt_gmcreate(enum aa_opt_lp_solver solver, size_t m, size_t n, const double *A, size_t ldA, const double *b_lower, const double *b_upper, const double *c, const double *x_lower, const double *x_upper)
Create an optimization context using named plugin.
AA_API int aa_opt_set_obj(struct aa_opt_cx *cx, size_t n, const double *c)
Set the linear objective function.
AA_API int aa_opt_set_quad_obj_crs(struct aa_opt_cx *cx, size_t n, const double *Q_values, int *Q_cols, int *Q_row_ptr)
Set the quadratic objective function via compressed-row-storage format.
AA_API struct aa_opt_cx * aa_opt_glpk_gmcreate(size_t m, size_t n, const double *A, size_t ldA, const double *b_lower, const double *b_upper, const double *c, const double *x_lower, const double *x_upper)
Create an optimization context for GLPK.
AA_API int aa_opt_set_direction(struct aa_opt_cx *cx, enum aa_opt_direction)
Set the optimization direction.
struct aa_opt_cx * aa_opt_gmcreate_fun(size_t m, size_t n, const double *A, size_t ldA, const double *b_lower, const double *b_upper, const double *c, const double *x_lower, const double *x_upper)
Optimization context constructor from general matrix format.
AA_API int aa_opt_destroy(struct aa_opt_cx *cx)
Destroy the optimization context.
AA_API struct aa_opt_cx * aa_opt_glpk_crscreate(size_t m, size_t n, const double *A_values, int *A_cols, int *A_row_ptr, const double *b_lower, const double *b_upper, const double *c, const double *x_lower, const double *x_upper)
Create an optimization context for GLPK.
AA_API int aa_opt_set_cstr_gm(struct aa_opt_cx *cx, size_t m, size_t n, const double *A, size_t lda, const double *b_min, const double *b_max)
Set the constraint matrix.
aa_opt_rel_type
Optimization constraint type.
@ AA_OPT_REL_GEQ
Greater-than or equal constraint.
@ AA_OPT_REL_LEQ
Less-than or equal constraint.
@ AA_OPT_REL_EQ
equality constraint
AA_API int aa_opt_set_bnd(struct aa_opt_cx *cx, size_t n, const double *x_min, const double *x_max)
Set the bounds on the optimization variables.
AA_API struct aa_opt_cx * aa_opt_lpsolve_gmcreate(size_t m, size_t n, const double *A, size_t ldA, const double *b_lower, const double *b_upper, const double *c, const double *x_lower, const double *x_upper)
Solver-specific functions.
AA_API struct aa_opt_cx * aa_opt_lpsolve_crscreate(size_t m, size_t n, const double *A_values, int *A_cols, int *A_row_ptr, const double *b_lower, const double *b_upper, const double *c, const double *x_lower, const double *x_upper)
Create an optimization context for LP-Solve.
aa_opt_direction
Optimization direction.
@ AA_OPT_MINIMIZE
minimize objective function
@ AA_OPT_MAXIMIZE
maximize objective function