| Overview | Group | Index | Concepts | 
This is an advanced routine. Advanced routines typically demand a thorough understanding of the algorithms used by ILOG CPLEX. Thus they incur a higher risk of incorrect behavior in your application, behavior that can be difficult to debug. Therefore, ILOG encourages you to consider carefully whether you can accomplish the same task by means of other Callable Library routines instead.
The routine CPXgetcallbacknodeub is used to get the upper
 bound values for the subproblem at the current node during MIP optimization
 from within a user-written callback. The upper bounds are tightened after
 a new incumbent is found, so the values returned by
 CPXgetcallbacknodex may violate these bounds at nodes where
 new incumbents have been found. The values are from the original
 problem if CPX_PARAM_MIPCBREDLP is set to CPX_OFF;
 otherwise, they are from the presolved problem. 
This routine may be called only when the value of the
 wherefrom argument is one of the following: 
CPX_CALLBACK_MIP,
 CPX_CALLBACK_MIP_BRANCH,
 CPX_CALLBACK_MIP_INCUMBENT, 
 CPX_CALLBACK_MIP_NODE,
 CPX_CALLBACK_MIP_HEURISTIC,
 CPX_CALLBACK_MIP_SOLVE, or
 CPX_CALLBACK_MIP_CUT.
 Example
 status = CPXgetcallbacknodeub (env, cbdata, wherefrom,
                                ub, 0, cols-1);| env | A pointer to the CPLEX environment, as returned by   | 
| cbdata | The pointer passed to the user-written callback. This parameter must be the value of   | 
| wherefrom | An integer value indicating from where the user-written callback was called. The parameter must be the value of   | 
| ub | An array to receive the values of the upper bound values. This array must be of length at least (  | 
| begin | An integer indicating the beginning of the range of upper bound values to be returned.  | 
| end | An integer indicating the end of the range of upper bound values to be returned.  |