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

user_same_cuts

int user_same_cuts (void *user, cut_data *cut1, cut_data *cut2, 
                    int *same_cuts)

Description:

Determine whether the two cuts are comparable (the normals of the half-spaces corresponding to the cuts point in the same direction) and if yes, which one is stronger. The default is to declare the cuts comparable only if the type, sense and coef fields of the two cuts are the same byte by byte; and if this is the case to compare the right hand sides to decide which cut is stronger.

Arguments:

void *user IN Pointer to the user-defined LP data structure.
     
cut_data *cut1 IN The first cut.
cut_data *cut2 IN The second cut.
int *same_cuts OUT Possible values: SAME, FIRST_CUT_BETTER, SECOND_CUT_BETTER and DIFFERENT (i.e., not comparable).

Return values:

USER_ERROR Error. DEFAULT is used.
USER_SUCCESS User did the comparison, filled out *same_cuts.
USER_DEFAULT Compare byte by byte (see above).

Wrapper invoked from:
process_message() when a PACKED_CUT arrives.

Note:

This function is used to check whether a newly arrived cut is already in the local pool. If so, or if it is weaker than a cut in the local pool, then the new cut is discarded; if it is stronger then a cut in the local pool, then the new cut replaces the old one and if the new is different from all the old ones, then it is added to the local pool.


next up previous contents
Next: user_unpack_cuts Up: User-written functions of the Previous: user_add_to_desc
Ted Ralphs
2003-10-16