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

user_is_feasible

int user_is_feasible(void *user, double lpetol, int varnum, int
                     *indices, double *values, int *feasible, 
                     double *objval)

Description:

User tests the feasibility of the solution to the current LP relaxation. There is no post-processing. Possible defaults are testing integrality (TEST_INTEGRALITY) and testing whether the solution is binary (TEST_ZERO_ONE).

Arguments:

void *user INOUT 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.
     
int *feasible OUT Feasibility status of the solution (NOT_FEASIBLE, or FEASIBLE).
double *objval OUT The user can return the ``true'' objective function value of the solution in the case it is feasible, i.e., eliminating the round-off error.

Return values:

USER_ERROR Error. Solution is considered to be not feasible.
USER_SUCCESS User checked IP feasibility.
USER_DEFAULT Regulated by the parameter is_feasible_default, but set to TEST_INTEGRALITY unless overridden by the user.
TEST_INTEGRALITY Test integrality of the given solution.
TEST_ZERO_ONE Tests whether the solution is binary.

Wrapper invoked from:
select_branching_object() after pre-solving the LP relaxation of a child corresponding to a candidate and from fathom_branch() after solving an LP relaxation.




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