Initializing help system before first use

XPRSaddcols, XPRSaddcols64

XPRSaddcols, XPRSaddcols64


Purpose
Allows columns to be added to the matrix after passing it to the Optimizer using the input routines.
Synopsis
int XPRS_CC XPRSaddcols(XPRSprob prob, int newcol, int newnz, const double objx[], const int mstart[], const int mrwind[], const double dmatval[], const double bdl[], const double bdu[]);

int XPRS_CC XPRSaddcols64(XPRSprob prob, int newcol, XPRSint64 newnz, const double objx[], const XPRSint64 mstart[], const int mrwind[], const double dmatval[], const double bdl[], const double bdu[]);
Arguments
prob 
The current problem.
newcol 
Number of new columns.
newnz 
Number of new nonzeros in the added columns.
objx 
Double array of length newcol containing the objective function coefficients of the new columns.
mstart 
Integer array of length newcol containing the offsets in the mrwind and dmatval arrays of the start of the elements for each column.
mrwind 
Integer array of length newnz containing the row indices for the elements in each column.
dmatval 
Double array of length newnz containing the element values.
bdl 
Double array of length newcol containing the lower bounds on the added columns.
bdu 
Double array of length newcol containing the upper bounds on the added columns.
Related controls
Integer
Number of extra columns to be allowed for.
Number of extra matrix elements to be allowed for.
Number of extra global entities to be allowed for.

Double
Tolerance on matrix elements.

Example
In this example, we consider the two problems:

(a) maximize: 2x + y    (b) maximize: 2x + y + 3z
subject to: x + 4y 24    subject to: x + 4y + 2z 24
y 5    y + z 5
3x + y 20    3x + y 20
x + y 9    x + y + 3z 9
   z 12


Using XPRSaddcols, the following transforms (a) into (b) and then names the new variable using XPRSaddnames:
obj[0] = 3;
mstart[] = {0};
mrwind[] = {0, 1, 3};
matval[] = {2.0, 1.0, 3.0};
bdl[0] = XPRS_MINUSINFINITY; bdu[0] = 12.0;
...
XPRSaddcols(prob,1,3,obj,mstart,mrwind,matval,bdl,bdu);
XPRSaddnames(prob,2,"z",2,2);
Further information
1. The double constants XPRS_PLUSINFINITY and XPRS_MINUSINFINITY defined in the library header file can be used to represent plus and minus infinity respectively in the bound arrays.
2. If the columns are added to a MIP problem then they will be continuous variables. Use XPRSchgcoltype to impose integrality conditions on such new columns.
Related topics

© 2001-2020 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.