| 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 CPXmdleave assumes that there is a resident
 optimal simplex basis, and a resident LU-factorization associated with this
 basis. It takes as input a list of basic variables as specified by
 goodlist[] and goodlen, and returns values
 commonly known as Driebeek penalties in the two arrays
 downratio[] and upratio[].
For a given j = goodlist[i], downratio[i] has the following meaning. Let
 xj be the name of the basic variable with index j, and
 suppose that xj is fixed to some value t' < t. In a
 subsequent call to CPXdualopt, the leaving variable in the
 first iteration of this call is uniquely determined: It must be xj.
 
There are then two possibilities. Either an entering variable is
 determined, or it is concluded (in the first iteration) that the changed
 model is dual unbounded (primal infeasible). In the latter case,
 downratio[i] is set equal to a large positive value (this
 number is system dependent, but is usually 1.0E+75). In the former
 case, where r is the value of the objective function after this one
 iteration, downratio[i] is determined by |r| = (t - t') *
 downratio[i].
| env | A pointer to the CPLEX environment, as returned by   | 
| lp | A pointer to a CPLEX LP problem object, as returned by  | 
| goodlist | An array of integers that must be of length at least   | 
| goodlen | An integer indicating the number of entries in   | 
| downratio | An array of type   | 
| upratio | An array of type   |