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


user_send_feasible_solution

int user_send_feasible_solution(void *user, double lpetol,
                                int varnum, int *indices, double *values)

Description:

This function is only used for parallel computation. The user can send a feasible solution in custom format to the master module if desired. However, the default routine suffices in most situations. The solution is sent using the communication functions described in Section 4.2.4 in whatever logical format the user wants to use. The default is to pack the user indices and values of variables at non-zero level. If the user packs the solution herself then the same data must be packed here that will be received in the user_receive_feasible_solution() function in the master module. See the description of that function for details. This function will only be called when either the LP or tree manager are running as a separate executable. Otherwise, the solution gets stored within the LP user data structure.

Arguments:

void *user IN Pointer to the user-defined LP data structure.
     
double lpetol IN The $\epsilon$ tolerance of the LP solver.
int varnum IN The length of the indices and values arrays.
int *indices IN User indices of variables at nonzero level in the current solution.
double *values IN Values of the variables listed in indices.

Return values:

USER_ERROR Error. Do the default.
USER_SUCCESS User packed the solution.
USER_DEFAULT Regulated by the parameter pack_feasible_solution_default, but set to SEND_NONZEROS unless overridden by the user.
SEND_NONZEROS Pack the nonzero values and their indices.

Wrapper invoked:
as soon as feasibility is detected anywhere.




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