int user_check_cut(void *user, double lpetol, int varnum, int *indices, double *values, cut_data *cut, int *is_violated, double *quality)
The user has to determine whether a given cut is violated by the given LP solution (see Section 6.3.2 for a description of the cut_data data data structure). Also, the user can assign a number to the cut called the quality. This number is used in deciding which cuts to check and purge. See the section on Cut Pool Parameters for more information.
void *user | INOUT | The user defined part of p. |
double lpetol | IN | The tolerance in the LP module. |
int varnum | IN | Same as the previous function. |
int *indices | IN | Same as the previous function. |
double *values | IN | Same as the previous function. |
cut_data *cut | IN | Pointer to the cut to be tested. |
int *is_violated | OUT | TRUE/FALSE based on whether the cut is violated or not. |
double *quality | OUT | a number representing the relative strength of the cut. |
USER_ERROR | Cut is not sent to the LP, regardless of the value of *is_violated. |
USER_SUCCESS | The user function exited properly. |
USER_DEFAULT | Same as error. |
The same note applies to number, indices and values as in the previous function.