18 Interface changes

The section shows interface-specific changes to the MOSEK Optimizer API for C in version 10.1 compared to version 9. See the release notes for general changes and new features of the MOSEK Optimization Suite.

18.1 Important changes compared to version 9

  • Parameters. Users who set parameters to tune the performance and numerical properties of the solver (termination criteria, tolerances, solving primal or dual, presolve etc.) are recommended to reevaluate such tuning. It may be that other, or default, parameter settings will be more beneficial in the current version. The hints in Sec. 8 (Debugging Tutorials) may be useful for some cases.

  • Multithreading. In the interior-point optimizer it is posible to set the number of threads with MSK_IPAR_NUM_THREADS before each optimization, and not just once per process. The parameter MSK_IPAR_INTPNT_MULTI_THREAD and the function MSK_setupthreads are no longer relevant and were removed.

  • Sparse Cholesky. In the function MSK_computesparsecholesky the argument previously indicating whether to use multiple threads or not is now an integer denoting the number of threads to use, with 0 meaning that MOSEK makes the choice.

  • Solve with basis. The function MSK_solvewithbasis changed interface: it separates the input and output number of nonzeros.

  • Surplus. Remover the surplus argument from all MSK_get functions using it.

  • OptServer. The arguments used in remote calls from the MOSEK API change from (server, port) to (addr, accesstoken), where addr is the full URL such as http://server:port or https://server:port. See the documentation of the relevant functions.

  • MIO initial solution. In order for the mixed-integer solver to utilize a partial integer solution the parameter MSK_IPAR_MIO_CONSTRUCT_SOL must be set. See Sec. 6.8.2 (Specifying an initial solution) for details. In version 9 this action happened by default.

  • Conic constraints. The interface introduces affine conic constraints (ACC) as a way of writing directly

    \[Fx+g\in\D\]

    where \(\D\) is a conic domain, without having to introduce a slack variable \(Fx+g-y=0,\ y\in\D\). See Sec. 6.2 (From Linear to Conic Optimization) for a tutorial. The current interface through variable cones is still supported but deprecated.

18.2 Changes compared to version 9

18.2.1 Functions compared to version 9

Added

Removed

  • MSK_makeenvalloc

  • MSK_setupthreads

  • MSK_callbackcodetostr

  • MSK_strdupdbgtask

  • MSK_strduptask

18.2.2 Parameters compared to version 9

Added

Removed

  • MSK_IPAR_CHECK_CONVEXITY

  • MSK_IPAR_INTPNT_MULTI_THREAD

  • MSK_IPAR_LOG_CHECK_CONVEXITY

  • MSK_IPAR_READ_LP_DROP_NEW_VARS_IN_BOU

  • MSK_IPAR_READ_LP_QUOTED_NAMES

  • MSK_IPAR_WRITE_LP_QUOTED_NAMES

  • MSK_IPAR_WRITE_LP_STRICT_FORMAT

  • MSK_IPAR_WRITE_LP_TERMS_PER_LINE

  • MSK_IPAR_WRITE_PRECISION

  • MSK_SPAR_REMOTE_ACCESS_TOKEN

  • MSK_SPAR_STAT_FILE_NAME

18.2.3 Constants compared to version 9

Added

Removed

  • MSK_CALLBACKCODE_BEGIN_FULL_CONVEXITY_CHECK

  • MSK_CALLBACKCODE_END_FULL_CONVEXITY_CHECK

  • MSK_CALLBACKCODE_IM_FULL_CONVEXITY_CHECK

  • MSK_DINFITEM_MIO_IMPLIED_BOUND_TIME

  • MSK_DINFITEM_MIO_ROOT_CUTGEN_TIME

  • MSK_DINFITEM_RD_TIME

  • MSK_IINFITEM_MIO_NUM_CLIQUE_CUTS

  • MSK_IINFITEM_MIO_NUM_CMIR_CUTS

  • MSK_IINFITEM_MIO_NUM_GOMORY_CUTS

  • MSK_IINFITEM_MIO_NUM_IMPLIED_BOUND_CUTS

  • MSK_IINFITEM_MIO_NUM_KNAPSACK_COVER_CUTS

  • MSK_IINFITEM_MIO_TOTAL_NUM_CUTS

  • MSK_SCALINGTYPE_AGGRESSIVE

  • MSK_SCALINGTYPE_MODERATE

  • MSK_STARTPOINTTYPE_SATISFY_BOUNDS

18.2.4 Response Codes compared to version 9

Added

Removed

  • MSK_RES_ERR_LP_DUP_SLACK_NAME

  • MSK_RES_ERR_LP_FORMAT

  • MSK_RES_ERR_LP_FREE_CONSTRAINT

  • MSK_RES_ERR_LP_INCOMPATIBLE

  • MSK_RES_ERR_LP_INVALID_CON_NAME

  • MSK_RES_ERR_LP_WRITE_CONIC_PROBLEM

  • MSK_RES_ERR_LP_WRITE_GECO_PROBLEM

  • MSK_RES_ERR_MPS_INV_BOUND_KEY

  • MSK_RES_ERR_MPS_INV_CON_KEY

  • MSK_RES_ERR_MPS_INV_SEC_NAME

  • MSK_RES_ERR_OPF_FORMAT

  • MSK_RES_ERR_OPF_NEW_VARIABLE

  • MSK_RES_ERR_READ_LP_NONEXISTING_NAME

  • MSK_RES_ERR_WRITE_LP_FORMAT

  • MSK_RES_ERR_WRITE_LP_NON_UNIQUE_NAME

  • MSK_RES_WRN_EXP_CONES_WITH_VARIABLES_FIXED_AT_ZERO

  • MSK_RES_WRN_POW_CONES_WITH_ROOT_FIXED_AT_ZERO

  • MSK_RES_WRN_QUAD_CONES_WITH_ROOT_FIXED_AT_ZERO

  • MSK_RES_WRN_RQUAD_CONES_WITH_ROOT_FIXED_AT_ZERO