NO FRAMES

CPXmdleave

int CPXPUBLIC CPXmdleave(CPXCENVptr env, CPXLPptr lp, const int * goodlist, int goodlen, double * downratio, double * upratio)
Definition file: cplex.h
Include files: cplex.h
Note

This is an advanced routine. Advanced routines typically demand a profound 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].

Parameters:

env

A pointer to the CPLEX environment, as returned by CPXopenCPLEX.

lp

A pointer to a CPLEX LP problem object, as returned byCPXcreateprob.

goodlist

An array of integers that must be of length at least goodlen. The entries in goodlist[] must all be indices of current basic variables. Moreover, these indices must all be indices of original model variables; that is, they must all take values smaller than the number of columns in the model as returned by CPXgetnumcols. Negative indices and indices bigger than or equal to CPXgetnumcols result in an error.

goodlen

An integer indicating the number of entries in goodlist[]. If goodlen < 0, an error is returned.

downratio

An array of type double that must be of length at least goodlen.

upratio

An array of type double that must be of length at least goodlen.

Returns:

The routine returns zero on success and nonzero if an error occurs.