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 $ \epsilon$ 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.

Return values:

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.

Invoked from:
Whenever a cut needs to be checked.


The same note applies to number, indices and values as in the previous function.

Ted Ralphs