int user_find_cuts(void *user, int varnum, int iter_num, int level, int index, double objval, int *indices, double *values, double ub, double lpetol, int *cutnum)
The user can generate cuts based on the current LP solution stored in
soln. Cuts found need to be sent back to the LP by calling the
cg_send_cut(cut_data *new_cut) function.
The argument of this function is a pointer to the cut to be sent. See
Section
2.2 for a description of this data structure. If the
user wants the cut to be added to the cut pool in case it proves to be
effective in the LP, then new_cut->name should be set to CUT__SEND_TO_CP. Otherwise, it should be set to CUT__DO_NOT_SEND_TO_CP.
The only output of this function is the number of cuts generated and this
value is returned in the last argument.
void *user | IN | Pointer to the user-defined data structure. |
int iter_num | IN | The iteration number of the current LP solution. |
int level | IN | The level in the tree on which the current LP solution was generated. |
index | IN | The index of the node in which LP solution was generated. |
objval | IN | The objective function value of the current LP solution. |
int varnum | IN | The number of nonzeros in the current LP solution. |
indices | IN | The column indices of the nonzero variables in the current LP solution. |
values | IN | The values of the nonzero variables listed in indices. |
double ub | IN | The current global upper bound. |
double lpetol | IN | The current error tolerance in the LP. |
int *cutnum | OUT | Pointer to the number of cuts generated and sent to the LP. |
ERROR | Ignored. |
USER_NO_PP | The user function exited properly. |