XSLPsetcbslpstart
XSLPsetcbslpstart |
Purpose
Set a user callback to be called at the start of the SLP optimization
Synopsis
int XPRS_CC XSLPsetcbslpstart(XSLPprob Prob, int (XPRS_CC *UserFunc) (XSLPprob myProb, void *myObject), void *Object);
Arguments
Prob
|
The current SLP problem.
|
UserFunc
|
The function to be called at the start of the SLP optimization.
UserFunc returns an integer value. If the return value is nonzero, the optimization will not be carried out.
|
myProb
|
The problem passed to the callback function.
|
myObject
|
The user-defined object passed as
Object to
XSLPsetcbslpstart.
|
Object
|
Address of a user-defined object, which can be used for any purpose by the function.
Object is passed to
UserFunc as
myObject.
|
Example
The following example sets up a callback to be executed at the start of the SLP optimization. It allocates memory to a user-defined object to be used during the optimization:
void *ObjData; ObjData = NULL; XSLPsetcbslpstart(Prob, CBSlpStart, &ObjData);
A suitable callback function might resemble this:
int XPRS_CC CBSlpStart(XSLPprob MyProb, void *Obj) { void *ObjData; ObjData = * (void **) Obj; if (ObjData) free(ObjData); * (void **) Obj = malloc(99*sizeof(double)); return 0; }
Further information
This callback can be used at the start of the SLP optimization to carry out any housekeeping before the optimization actually starts. Note that a nonzero return code from the callback will terminate the optimization immediately.
Related topics