The SolverCapability enumeration describes a set of flags with possible solver capabilities.
enum SolverCapability { CAPAB_SOS1_INT = 0x00000001, CAPAB_SOS1_CONT = 0x00000002, CAPAB_SOS2_INT = 0x00000008, CAPAB_SOS2_CONT = 0x00000010, CAPAB_FORT_CONV = 0x00000040, CAPAB_IIS_FIND = 0x00000080, CAPAB_RANGED_ROWS = 0x00000100, CAPAB_OBJ_SENSE = 0x00000200, CAPAB_RHS_SENSE = 0x00000400, CAPAB_UPDATES = 0x00000800, CAPAB_OBJ_SPARSE = 0x00001000, CAPAB_SOLUTION = 0x00002000, CAPAB_SEMI_CONT = 0x00004000, CAPAB_SEMI_CONT_INT = 0x00008000, CAPAB_OBJ_ROW_REDUC = 0x00010000, CAPAB_MATRIX_MANIP = 0x00020000, CAPAB_THREAD_SAFE = 0x00040000, CAPAB_QP_NOT_SPEC = 0x00080000, CAPAB_COMPL_BOUNDS = 0x00100000, CAPAB_NO_EMPTY_JAC = 0x00200000, CAPAB_PROGRESS_INF = 0x00400000, CAPAB_EVAL_LIN_PART = 0x00800000, CAPAB_IP_CROSS_ITER = 0x01000000, CAPAB_USE_HESSIAN = 0x02000000, CAPAB_CHG_QUAD_ROW = 0x04000000, CAPAB_CALLBACK_CUTS = 0x08000000, CAPAB_POSTSOLVE = 0x10000000, CAPAB_GLOBAL_OPT = 0x20000000, CAPAB_MULTI_PROB = 0x40000000, CAPAB_RENUMBER_DEL = 0x80000000 };
Members |
Description |
CAPAB_SOS1_INT = 0x00000001 |
Can handle SOS1 (integer variables). |
CAPAB_SOS1_CONT = 0x00000002 |
Can handle SOS1 (continuous variables). |
CAPAB_SOS2_INT = 0x00000008 |
Can handle SOS2 (integer variables). |
CAPAB_SOS2_CONT = 0x00000010 |
Can handle SOS2 (continuous variables). |
CAPAB_FORT_CONV = 0x00000040 |
Solver uses Fortran numbering, i.e., array indices start at 1 instead of 0. |
CAPAB_IIS_FIND = 0x00000080 |
Can construct an irreducibly inconsistent set (IIS) set. |
CAPAB_RANGED_ROWS = 0x00000100 |
Can handle ranged rows, i.e., rows with a finite right-hand side and left-hand side. |
CAPAB_OBJ_SENSE = 0x00000200 |
Can provide objective coefficients sensitivity range. |
CAPAB_RHS_SENSE = 0x00000400 |
Can provide right-hand side sensitivity range. |
CAPAB_UPDATES = 0x00000800 |
Can handle matrix updates. |
CAPAB_OBJ_SPARSE = 0x00001000 |
Uses sparse storage for objective coefficients. |
CAPAB_SOLUTION = 0x00002000 |
Intermediate solutions available (e.g., by incumbent callback). |
CAPAB_SEMI_CONT = 0x00004000 |
Can handle semi-continuous variables. |
CAPAB_SEMI_CONT_INT = 0x00008000 |
Can handle semi-continuous integer variables. |
CAPAB_OBJ_ROW_REDUC = 0x00010000 |
Can handle objective row reduction. |
CAPAB_MATRIX_MANIP = 0x00020000 |
The AIMMS-solver interface provides support for GMP modifications. |
CAPAB_THREAD_SAFE = 0x00040000 |
Solver is thread-safe. |
CAPAB_QP_NOT_SPEC = 0x00080000 |
Solver deals with QP models in same way as with other models. |
CAPAB_COMPL_BOUNDS = 0x00100000 |
This flag is deprecated. |
CAPAB_NO_EMPTY_JAC = 0x00200000 |
If set, AIMMS will not empty the Jacobian before calculating it using method EvaluateDiffRow. |
CAPAB_PROGRESS_INF = 0x00400000 |
Solver provides progress info for infeasibilities during LP solve or during LP phase of MIP solve. |
CAPAB_EVAL_LIN_PART = 0x00800000 |
If set, AIMMS should also evaluate the linear part of a row when using method EvaluateRow or EvaluateDiffRow. |
CAPAB_IP_CROSS_ITER = 0x01000000 |
If set, solver provides additional iteration info in barrier crossover phase. |
CAPAB_USE_HESSIAN = 0x02000000 |
Can use second order derivatives (NLP/MINLP only). |
CAPAB_CHG_QUAD_ROW = 0x04000000 |
This flag is deprecated. |
CAPAB_CALLBACK_CUTS = 0x08000000 |
Solver supports callback for adding cutting planes (MIP only). |
CAPAB_POSTSOLVE = 0x10000000 |
The AIMMS-solver interface can handle a postsolve initiated by AIMMS. |
CAPAB_GLOBAL_OPT = 0x20000000 |
Solver solves nonlinear problems (NLP, MINLP or MPCC) to global optimality. |
CAPAB_MULTI_PROB = 0x40000000 |
Solver can have more than one problem in memory. |
CAPAB_RENUMBER_DEL = 0x80000000 |
Solver changes numbering of columns and rows immediately after deleting a column or row. |
The solver capabilities are specified as flags in the IntegerSolverInfo::IINFO_CAPAB_FLAGS parameter in the info_int argument of the GetInitialInfo method.
The SolverCapability2 enumeration shows a second set of solver capability flags. These are specified as flags in the IntegerSolverInfo::IINFO_CAPAB2_FLAGS parameter.