XPRBendcb
XPRBendcb |
Purpose
Synopsis
int XPRBendcb(XPRBprob bprob);
Argument
bprob
|
Reference to a BCL problem.
|
Return value
0 if function executed successfully, 1 otherwise.
Example
The example shows how to set up the MIP solution callback to use BCL to display the results.
XPRBprob bprob; XPRBvar x; void XPRS_CC printsol(XPRSprob oprob,void *my_object){ int num; XPRSgetintattrib(oprob, XPRS_MIPSOLS, &num); /* Get number of the solution */ XPRBbegincb(bprob, oprob); /* Use local Optimizer problem */ XPRBsync(bprob, XPRB_XPRS_SOL); /* Update BCL solution values */ XPRBprintf(bprob, "Solution %d: Objective value: %g\n", num, XPRBgetobjval(bprob)); XPRBprintf(bprob, "%s: %g\n", XPRBgetvarname(x), XPRBgetsol(x)); XPRBendcb(bprob); /* Reset BCL to main problem */ } int main(int argc, char **argv) { XPRSprob oprob; bprob = XPRBnewprob("cbexample"); ... /* Define the problem */ oprob = XPRBgetXPRSprob(bprob); /* Get Optimizer problem */ XPRSsetcbintsol(oprob, printsol, NULL); /* Set the callback */ XPRBmipoptimize(bprob, ""); /* Solve the MIP problem */ }
Further information
This function switches back to the original optimizer problem for all BCL accesses to Xpress Optimizer. A call to this function terminates a block of calls to BCL functions in an optimizer callback that is preceded by
XPRBbegincb. The call to
XPRBendcb releases the BCL problem (access to the BCL problem is locked to the particular thread between the two function calls).
Related topics