next up previous contents Back to SYMPHONY Home Page
Next: User-written functions of the Up: User-written functions of the Previous: user_print_stat_on_cuts_added

user_purge_waiting_rows

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

Description:

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[i] to be TRUE (delete 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).

Arguments:

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 OUT An array of indicators (each of them is one char) showing which waiting rows are to be deleted.

Return values:

ERROR Purge every single waiting row.
USER_AND_PP The user removed the unwanted waiting rows and compressed the remaining list.
USER_NO_PP The user marked in delete the rows to be deleted.
DEFAULT Described above.

Post-processing:

Delete the appropriate rows.

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




next up previous contents
Next: User-written functions of the Up: User-written functions of the Previous: user_print_stat_on_cuts_added
Ted Ralphs
2000-09-08