CPXcopylpwnames


Description

The routine CPXcopylpwnames() copies LP data into a CPLEX problem object in the same way as the routine CPXcopylp(), but using some additional arguments to specify the names of constraints and variables in the CPLEX problem object. The arguments to CPXcopylpwnames() define an objective function, constraint matrix, variable bounds, right-hand side constraint senses, and range values. Unlike the routine CPXcopylp(), CPXcopylpwnames() also copies names. This routine is used in the same manner as CPXcopylp().

Return Value

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

Synopsis

  int CPXcopylpwnames (CPXCENVptr env,
                       CPXLPptr lp,
                       int numcols,
                       int numrows,
                       int objsen,
                       const double *obj,
                       const double *rhs,
                       const char *sense,
                       const int *matbeg,
                       const int *matcnt,
                       const int *matind,
                       const double *matval,
                       const double *lb,
                       const double *ub,
                       const double *rngval,
                       char **colname,
                       char **rowname);

Arguments

CPXCENVptr env

The pointer to the CPLEX environment as returned by CPXopenCPLEX().

CPXLPptr lp

A pointer to a CPLEX problem object as returned by CPXcreateprob().

int numcols

An integer that indicates the number of columns in the constraint matrix, or equivalently, the number of variables in the problem object.

int numrows

An integer that indicates the number of rows in the constraint matrix, not including the objective function or bounds on the variables.

int objsen

An integer that indicates whether the problem is a minimization or maximization problem.

objsen 
= 1 
(CPX_MIN) minimize 
objsen 
= -1 
(CPX_MAX) maximize 

const double *obj

An array of length at least numcols containing the objective function coefficients.

const double *rhs

An array of length at least numrows containing the right-hand side value for each constraint in the constraint matrix.

const char *sense

An array of at least length at least numrows containing the sense of each constraint in the constraint matrix.

sense[i] 
= 'L'  
constraint 
sense[i] 
= 'E' 
= constraint 
sense[i] 
= 'G' 
constraint 
sense[i] 
= 'R' 
ranged constraint 

const int *matbeg

const int *matcnt

const int *matind

const double *matval

Arrays that describe the constraint matrix. CPLEX needs to know only the nonzero coefficients. These are grouped by column in the array matval. The nonzero elements of every column must be stored in sequential locations in this array with matbeg[j] containing the index of the beginning of column j and matcnt[j] containing the number of entries in column j. The components of matbeg must be in ascending order. For each k, matind[k] indicates the row number of the corresponding coefficient, matval[k].

These arrays are accessed as follows. Suppose that CPLEX wants to access the entries in some column j. These are assumed to be given by the array entries:

  matval[matbeg[j]],.., matval[matbeg[j]+matcnt[j]-1]

The corresponding row indices are:

  matind[matbeg[j]],.., matind[matbeg[j]+matcnt[j]-1]

Entries in matind are not required to be in row order. Duplicate entries in matind and matval within a single column are not allowed. The length of the arrays matbeg and matind should be of at least numcols. The length of arrays matind and matval should be of at least matbeg[numcols-1]+matcnt[numcols-1].

const double *lb

An array of at least length numcols containing the lower bound on each of the variables. Any lower bound that is set to a value less than or equal to that of the constant -CPX_INFBOUND is treated as negative . CPX_INFBOUND is defined in the header file cplex.h.

const double *ub

An array of at least length numcols containing the upper bound on each of the variables. Any upper bound that is set to a value greater than or equal to that of the constant CPX_INFBOUND is treated as . CPX_INFBOUND is defined in the header file cplex.h.

const double *rngval

An array of at least length numrows containing the range value of each ranged constraint. Ranged rows are those designated by R in the sense array. If the row is not ranged, the rngval array entry is ignored. If rngval[i] > 0, then row i activity is in [rhs[i],rhs[i]+rngval[i]], and if rngval[i] 0, then row i activity is in [rhs[i]+rngval[i],rhs[i]].

This parameter may be NULL.

char **colname

An array of length at least numcols containing pointers to character strings, each string terminated with the NULL character '\0'. These strings represent the names of the matrix columns or, equivalently, the variable names. May be NULL if no names are associated with the variables.

char **rowname

An array of length at least numrows containing pointers to character strings, each string terminated with the NULL character '\0'. These strings represent the names of the matrix rows or, equivalently, the constraint names. May be NULL if no names are associated with the constraints.

Example

  status = CPXcopylpwnames (env, lp, numcols, numrows, objsen, obj,
                            rhs, sense, matbeg, matcnt, matind,
                            matval, lb, ub, rngval, colname,
                            int *matind, rowname);


Previous Page: CPXcopylp Return to Top Next Page: CPXcopymipstart