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.