XPRSgetcpcuts, XPRSgetcpcuts64
XPRSgetcpcuts, XPRSgetcpcuts64 |
Purpose
Returns cuts from the
cut pool. A list of cut pointers in the array
mindex must be passed to the routine. The columns and elements of the cut will be returned in the regions pointed to by the
mcols and
dmatval parameters. The columns and elements will be stored contiguously and the starting point of each cut will be returned in the region pointed to by the
mstart parameter.
Synopsis
int XPRS_CC XPRSgetcpcuts(XPRSprob prob, const XPRScut mindex[], int ncuts, int size, int mtype[], char qrtype[], int mstart[], int mcols[], double dmatval[], double drhs[]);
int XPRS_CC XPRSgetcpcuts64(XPRSprob prob, const XPRScut mindex[], int ncuts, XPRSint64 size, int mtype[], char qrtype[], XPRSint64 mstart[], int mcols[], double dmatval[], double drhs[]);
Arguments
prob
|
The current problem.
|
mindex
|
Array of length
ncuts containing the pointers to the cuts.
|
ncuts
|
Number of cuts to be returned.
|
size
|
Maximum number of column indices of the cuts to be returned.
|
mtype
|
Integer array of length at least
ncuts where the cut types will be returned. May be NULL if not required.
|
qrtype
|
Character array of length at least
ncuts where the sense of the cuts (
L,
G, or
E) will be returned. May be NULL if not required.
|
mstart
|
Integer array of length at least
ncuts+1 containing the offsets into the
mcols and
dmatval arrays. The last element indicates where cut
ncuts+1 would start. May be NULL if not required.
|
mcols
|
Integer array of length
size where the column indices of the cuts will be returned. May be NULL if not required.
|
dmatval
|
Double array of length
size where the matrix values will be returned. May be NULL if not required.
|
drhs
|
Double array of length at least
ncuts where the right hand side elements for the cuts will be returned. May be NULL if not required.
|
Example
The following example gets the first two cuts:
int mtype[2], mstart[3]; int *mcols; int mindex[] = { 0, 1 }; double drhs[2]; double *dmatval; char * qrtype; ... XPRSgetcpcuts(prob,mindex,2,0,NULL,NULL,mstart,NULL,NULL,NULL); mcols = (int*) malloc(mstart[2]*sizeof(int)); dmatval = (double*) malloc(mstart[2]*sizeof(double)); XPRSgetcpcuts(prob,mindex,2,0,mtype,qrtype,mstart,mcols,dmatval,drhs);
Further information
It is possible to obtain just the number of nonzeros in the range of queried cuts by calling the functions with all output arays except for mstart equaling
NULL and checking the value of
mstart[ncuts]. In this case,
size must be set to
0 to indicate that the length of arrays passed is
0.
Related topics