15.9 Function Types¶
- MSKcallbackfunc¶
typedef MSKint32t (MSKAPI * MSKcallbackfunc)( MSKtask_t task, MSKuserhandle_t usrptr, MSKcallbackcodee caller, const MSKrealt* douinf, const MSKint32t* intinf, const MSKint64t* lintinf);
The progress callback function is a user-defined function which will be called by MOSEK occasionally during the optimization process. In particular, the callback function is called at the beginning of each iteration in the interior-point optimizer. For the simplex optimizers
MSK_IPAR_LOG_SIM_FREQcontrols how frequently the callback is called. The callback provides an code denoting the point in the solver from which the call happened, and a set of arrays containing information items related to the current state of the solver. Typically the user-defined callback function displays information about the solution process. The callback function can also be used to terminate the optimization process by returning a non-zero value.The user must not call any MOSEK function directly or indirectly from the callback function. The only exception is the possibility to retrieve a current best integer solution from the mixed-integer optimizer, see Section Progress and data callback.
- Parameters:
task(MSKtask_t) – An optimization task. (input)usrptr(MSKuserhandle_t) – A pointer to a user-defined structure. (input/output)caller(MSKcallbackcodee) – The caller key indicating the current progress of the solver. (input)douinf(MSKrealt*) – An array of double information items. The elements correspond to the definitions inMSKdinfiteme. (input)intinf(MSKint32t*) – An array of integer information items. The elements correspond to the definitions inMSKiinfiteme. (input)lintinf(MSKint64t*) – An array of long information items. The elements correspond to the definitions inMSKliinfiteme. (input)
- Return:
(
MSKint32t) – If the return value is non-zero, MOSEK terminates whatever it is doing and returns control to the calling application.
- MSKexitfunc¶
typedef void (MSKAPI * MSKexitfunc)( MSKuserhandle_t usrptr, const char * file, MSKint32t line, const char * msg);
A user-defined exit function which is called in case of fatal errors to handle an error message and terminate the program. The function should never return.
- Parameters:
usrptr(MSKuserhandle_t) – A pointer to a user-defined structure. (input/output)file(char*) – The name of the file where the fatal error occurred. (input)line(MSKint32t) – The line number in the file where the fatal error occurred. (input)msg(char*) – A message about the error. (input)
- Return:
(
void)
- MSKhreadfunc¶
typedef size_t (MSKAPI * MSKhreadfunc)( MSKuserhandle_t handle, void * dest, size_t count);
Behaves similarly to system read function. Returns the number of bytes read.
- Parameters:
handle(MSKuserhandle_t) – A pointer to a user-defined data structure (or a null pointer). (input/output)dest(void*) – Read into this destination (output)count(size_t) – Number of bytes to read. (input)
- Return:
(
size_t) – The number of bytes read.
- MSKhwritefunc¶
typedef size_t (MSKAPI * MSKhwritefunc)( MSKuserhandle_t handle, const void * src, size_t count);
Behaves similarly to system write function. Returns the number of bytes written.
- Parameters:
handle(MSKuserhandle_t) – A pointer to a user-defined data structure (or a null pointer). (input/output)src(void*) – Write from this location (input)count(size_t) – Number of bytes to write. (input)
- Return:
(
size_t) – The number of bytes written.
- MSKresponsefunc¶
typedef MSKrescodee (MSKAPI * MSKresponsefunc)( MSKuserhandle_t handle, MSKrescodee r, const char * msg);
Whenever MOSEK generates a warning or an error this function is called. The argument
rcontains the code of the error/warning and the argumentmsgcontains the corresponding error/warning message. This function should always returnMSK_RES_OK.- Parameters:
handle(MSKuserhandle_t) – A pointer to a user-defined data structure (or a null pointer). (input/output)r(MSKrescodee) – The response code corresponding to the exception. (input)msg(char*) – A string containing the exception message. (input)
- Return:
(
MSKrescodee) – The function response code.
- MSKstreamfunc¶
typedef void (MSKAPI * MSKstreamfunc)( MSKuserhandle_t handle, const char * str);
The message-stream callback function is a user-defined function which can be linked to any of the MOSEK streams. Doing so, the function is called whenever MOSEK sends a message to the stream.
The user must not call any MOSEK function directly or indirectly from the callback function.
- Parameters:
handle(MSKuserhandle_t) – A pointer to a user-defined data structure (or a null pointer). (input/output)str(char*) – A string containing a message to a stream. (input)
- Return:
(
void)