XPRSgetcols, XPRSgetcols64
XPRSgetcols, XPRSgetcols64 |
Purpose
Synopsis
int XPRS_CC XPRSgetcols(XPRSprob prob, int mstart[], int mrwind[], double dmatval[], int size, int *nels, int first, int last);
int XPRS_CC XPRSgetcols64(XPRSprob prob, XPRSint64 mstart[], int mrwind[], double dmatval[], XPRSint64 size, XPRSint64 *nels, int first, int last);
Arguments
prob
|
The current problem.
|
mstart
|
Integer array which will be filled with the indices indicating the starting offsets in the
mrwind and
dmatval arrays for each requested column. It must be of length at least
last-first+2. Column
i starts at position
mstart[i] in the
mrwind and
dmatval arrays, and has
mstart[i+1]-mstart[i] elements in it. May be
NULL if not required.
|
mrwind
|
Integer array of length
size which will be filled with the row indices of the nonzero coefficents for each column. May be
NULL if not required.
|
dmatval
|
Double array of length
size which will be filled with the nonzero coefficient values. May be
NULL if not required.
|
size
|
The size of the
mrwind and
dmatval arrays. This is the maximum number of nonzero coefficients that the Optimizer is allowed to return.
|
nels
|
Pointer to an integer where the number of nonzero coefficients in the selected columns will be returned. If
nels exceeds
size, only the
size first nonzero coefficients will be returned.
|
first
|
First column in the range.
|
last
|
Last column in the range.
|
Example
The following examples retrieves the number of nonzero coefficients in all columns of the problem:
int nels, cols, first = 0, last; ... XPRSgetintattrib(prob,XPRS_COLS,&cols); last = cols-1; XPRSgetcols(prob,NULL,NULL,NULL,0,&nels,first,last);
Further information
It is possible to obtain just the number of elements in the range of columns by replacing
mstart,
mrwind and
dmatval by
NULL, as in the example. In this case,
size must be set to
0 to indicate that the length of arrays passed is zero. This is demonstrated in the example above.
Related topics