XPRSchgmqobj, XPRSchgmqobj64
XPRSchgmqobj, XPRSchgmqobj64 |
Purpose
Used to change multiple
quadratic coefficients in the
objective function. If any of the coefficients does not exist already, new coefficients will be added to the objective function.
Synopsis
int XPRS_CC XPRSchgmqobj(XPRSprob prob, int nels, const int mqcol1[], const int mqcol2[], const double dval[]);
int XPRS_CC XPRSchgmqobj64(XPRSprob prob, XPRSint64 nels, const int mqcol1[], const int mqcol2[], const double dval[]);
Arguments
prob
|
The current problem.
|
nels
|
The number of coefficients to change.
|
mqcol1
|
Integer array of size
ncol containing the column index of the first variable in each quadratic term.
|
mqcol2
|
Integer array of size
ncol containing the column index of the second variable in each quadratic term.
|
dval
|
New values for the coefficients. If an entry in
dval is
0, the corresponding entry will be deleted. These are the coefficients of the quadratic Hessian matrix.
|
Example
The following code results in an objective function with terms:
[6x12 + 3x1x2 + 3x2x1]/2
mqcol1[0] = 0; mqcol2[0] = 0; dval[0] = 6.0; mqcol1[1] = 1; mqcol2[1] = 0; dval[1] = 3.0; XPRSchgmqobj(prob,2,mqcol1,mqcol2,dval);
Further information
1. The columns in the arrays
mqcol1 and
mqcol2 must already exist in the matrix. If the columns do not exist, they must be added with
XPRSaddcols.
2.
XPRSchgmqobj is more efficient than repeated calls to
XPRSchgqobj and should be used in its place when several coefficients are to be changed.
Related topics