int user_purge_waiting_rows(void *user, int rownum,
                            waiting_row **rows, char *delete_rows)


The local pool is purged from time to time to control its size. In this function the user has the power to decide which cuts to purge from this pool if desired. To mark the i$ ^{\tt th}$ waiting row (an element of the pre-pool) for removal she has to set delete_rows[i] to be TRUE (delete_rows is allocated before the function is called and its elements are set to FALSE by default).

Post-processing consists of actually deleting those entries from the waiting row list and compressing the list. The default is to discard the least violated waiting rows and keep no more than what can be added in the next iteration (this is determined by the max_cut_num_per_iter parameter).


void *user IN Pointer to the user-defined LP data structure.
int rownum IN The number of waiting rows.
waiting_row **rows IN The array of waiting rows.
char *delete_rows OUT An array of indicators showing which waiting rows are to be deleted.

Return values:

USER_ERROR Purge every single waiting row.
USER_SUCCESS The user marked in delete the rows to be deleted.
USER_DEFAULT Described above.


The marked rows are deleted.

Wrapper invoked from:
receive_cuts() after cuts have been added.

Ted Ralphs