XPRSaddcuts


Purpose
Adds cuts directly to the matrix at the current node. Any cuts added to the matrix at the current node and not deleted at the current node will be automatically added to the cut pool. The cuts added to the cut pool will be automatically restored at descendant nodes.
Synopsis
int XPRS_CC XPRSaddcuts(XPRSprob prob, int ncuts, const int mtype[], const char qrtype[], const double drhs[], const int mstart[], const int mcols[], const double dmatval[]);
Arguments
prob 
The current problem.
ncuts 
Number of cuts to add.
mtype 
Integer array of length ncuts containing the cut types. The cut types can be any positive integer chosen by the user, and are used to identify the cuts in other cut manager routines using user supplied parameters. The cut type can be interpreted as an integer or a bitmap - see XPRSdelcuts.
qrtype 
Character array of length ncuts containing the row types:
indicates a Maths/leq.png row;
indicates Maths/geq.png row;
indicates an = row.
drhs 
Double array of length ncuts containing the right hand side elements for the cuts.
mstart 
Integer array containing offset into the mcols and dmatval arrays indicating the start of each cut. This array is of length ncuts+1 with the last element, mstart[ncuts], being where cut ncuts+1 would start.
mcols 
Integer array of length mstart[ncuts] containing the column indices in the cuts.
dmatval 
Double array of length mstart[ncuts] containing the matrix values for the cuts.
Related Controls
Double
Zero tolerance on matrix elements.

Further information
1. The columns and elements of the cuts must be stored contiguously in the mcols and dmatval arrays passed to XPRSaddcuts. The starting point of each cut must be stored in the mstart array. To determine the length of the final cut, the mstart array must be of length ncuts+1 with the last element of this array containing the position in mcols and dmatval where the cut ncuts+1 would start. mstart[ncuts] denotes the number of nonzeros in the added cuts.
2. The cuts added to the matrix are always added at the end of the matrix and the number of rows is always set to the original number of cuts added. If ncuts have been added, then the rows 0,...,ROWS-ncuts-1 are the original rows, whilst the rows ROWS-ncuts,...,ROWS-1 are the added cuts. The number of cuts can be found by consulting the CUTS problem attribute.
Related topics
XPRSaddrows, XPRSdelcpcuts, XPRSdelcuts, XPRSgetcpcutlist, XPRSgetcutlist, XPRSloadcuts, XPRSstorecuts, Working with the Cut Manager.


If you have any comments or suggestions about these pages, please send mail to docs@dashoptimization.com.