XPRSgetcpcuts, XPRSgetcpcuts64
Purpose
Returns cuts from the
cut pool. A list of cut pointers in the array
rowind must be passed to the routine. The columns and elements of the cut will be returned in the regions pointed to by the colind and
cutcoef 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
start parameter.
Synopsis
int XPRS_CC XPRSgetcpcuts(XPRSprob prob, const XPRScut rowind[], int ncuts, int maxcoefs, int cuttype[], char rowtype[], int start[], int colind[], double cutcoef[], double rhs[]);
int XPRS_CC XPRSgetcpcuts64(XPRSprob prob, const XPRScut rowind[], int ncuts, XPRSint64 maxcoefs, int cuttype[], char rowtype[], XPRSint64 start[], int colind[], double cutcoef[], double rhs[]);
Arguments
|
prob
|
The current problem.
|
|
rowind
|
Array of length
ncuts containing the pointers to the cuts.
|
|
ncuts
|
Number of cuts to be returned.
|
|
maxcoefs
|
Maximum number of column indices of the cuts to be returned.
|
|
cuttype
|
Integer array of length at least
ncuts where the cut types will be returned. May be NULL if not required. |
|
rowtype
|
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.
|
|
start
|
Integer array of length at least
ncuts+1 containing the offsets into the
colind and
cutcoef arrays. The last element indicates where cut
ncuts+1 would start. May be NULL if not required.
|
|
colind
|
Integer array of length
maxcoefs where the column indices of the cuts will be returned. May be NULL if not required. |
|
cutcoef
|
Double array of length
maxcoefs where the matrix values will be returned. May be NULL if not required. |
|
rhs
|
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 cuttype[2], start[3];
int *colind;
int rowind[] = { 0, 1 };
double rhs[2];
double *cutcoef;
char * rowtype;
...
XPRSgetcpcuts(prob,rowind,2,0,NULL,NULL,start,NULL,NULL,NULL);
colind = (int*) malloc(start[2]*sizeof(int));
cutcoef = (double*) malloc(start[2]*sizeof(double));
XPRSgetcpcuts(prob,rowind,2,0,cuttype,rowtype,start,colind,cutcoef,rhs);
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 start equaling
NULL and checking the value of
start[ncuts]. In this case,
maxcoefs must be set to
0 to indicate that the length of arrays passed is
0.
Related topics
© 2001-2021 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation ("FICO"). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.
