Initializing help system before first use

XPRSaddcbgloballog

XPRSaddcbgloballog


Purpose
Declares a global log callback function, called each time the global log is printed. This callback function will be called in addition to any callbacks already added by XPRSaddcbgloballog.
Synopsis
int XPRS_CC XPRSaddcbgloballog(XPRSprob prob, int (XPRS_CC *f_globallog)(XPRSprob my_prob, void *my_object), void *object, int priority);
Arguments
prob 
The current problem.
f_globallog 
The callback function which takes two arguments, my_prob and my_object, and has an integer return value. This function is called whenever the global log is printed as determined by the MIPLOG control.
my_prob 
The problem passed to the callback function, f_globallog.
my_object 
The user-defined object passed as object when setting up the callback with XPRSaddcbgloballog.
object 
A user-defined object to be passed to the callback function, f_globallog.
priority 
An integer that determines the order in which multiple global log callbacks will be invoked. The callback added with a higher priority will be called before a callback with a lower priority. Set to 0 if not required.
Related controls
Integer
MIPLOG 
Global print flag.

Example
The following example prints at each node of the global search the node number and its depth:
XPRSsetintcontrol(prob, XPRS_MIPLOG, 3);
XPRSaddcbgloballog(prob, globalLog, NULL, 0);
XPRSmipoptimize(prob,"");
The callback function may resemble:
int XPRS_CC globalLog(XPRSprob prob, void *object)
{
  int node, nodedepth;

  XPRSgetintattrib(prob, XPRS_NODEDEPTH, &nodedepth);
  XPRSgetintattrib(prob, XPRS_CURRENTNODE, &node);
  printf("Node %d with depth %d has just been processed\n",
         node, nodedepth);

  return 0;
}
See the example depthfirst.c in the examples/optimizer/c folder.
Further information
If the callback function returns a nonzero value, the global search will be interrupted.
Related topics