XPRSgetrows, XPRSgetrows64
XPRSgetrows, XPRSgetrows64 |
Purpose
Synopsis
int XPRS_CC XPRSgetrows(XPRSprob prob, int mstart[], int mclind[], double dmatval[], int size, int *nels, int first, int last);
int XPRS_CC XPRSgetrows64(XPRSprob prob, XPRSint64 mstart[], int mclind[], 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 row. It must be of length at least
last-first+2. Row
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 arrays of length
size which will be filled with the column indices of the nonzero elements for each row. 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 that
size, then only
size elements will be returned. If
nels is smaller that
size, then only
nels will be returned.
|
first
|
First row in the range.
|
last
|
Last row in the range.
|
Example
The following example returns and displays at most six nonzero matrix entries in the first two rows:
int size=6, nels, mstart[3], mrwind[6]; double dmatval[6]; ... XPRSgetrows(prob,mstart,mrwind,dmatval,size,&nels,0,1); for(i=0;i<nels;i++) printf("\t%2.1f\n",dmtval[i]);
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. In this case,
size must be set to
0 to indicate that the length of arrays passed is
0.
Related topics