Initializing help system before first use

XPRBendcb

XPRBendcb


Purpose
Reset BCL to the original optimizer problem in a callback.
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

© 2001-2019 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation (“FICO”). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.