Purpose
Returns the nonzeros in the constraint
matrix for the
columns in a given range.
Synopsis
int XPRS_CC XPRSgetcols(XPRSprob prob, int mstart[], int mrwind[], double dmatval[], int size, int *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 elements for each column. May be NULL if not required.
|
dmatval
|
Double array of length size which will be filled with the nonzero element values. May be NULL if not required.
|
size
|
Maximum number of elements to be retrieved.
|
nels
|
Pointer to the integer where the number of nonzero elements in the mrwind and dmatval arrays will be returned. If the number of nonzero elements is greater than size, then only size elements will be returned. If nels is smaller than size, then only nels will be returned.
|
first
|
First column in the range.
|
last
|
Last column in the range.
|
Example
int nels, cols, first = 0, last;
...
XPRSgetintattrib(prob,XPRS_COLS,&cols);
last = cols-1;
XPRSgetcols(prob,NULL,NULL,NULL,0,&nels,first,last);
This returns in nels the number of nonzero matrix elements in all columns of the matrix.
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
If you have any comments or suggestions about these pages,
please send mail to docs@dashoptimization.com.