XSLPchgccoef
XSLPchgccoef |
Purpose
Add or change a single matrix coefficient using a character string for the formula
Synopsis
int XPRS_CC XSLPchgccoef(XSLPprob Prob, int RowIndex, int ColIndex, double *Factor, char *Formula);
Arguments
Prob
|
The current SLP problem.
|
RowIndex
|
The index of the matrix row for the coefficient.
|
ColIndex
|
The index of the matrix column for the coefficient.
|
Factor
|
Address of a double precision variable holding the constant multiplier for the formula. If
Factor is
NULL, a value of 1.0 will be used.
|
Formula
|
Character string holding the formula with the tokens separated by spaces.
|
Example
Assuming that the columns of the matrix are named
Col1,
Col2, etc, the following example puts the formula
2.5*sin(Col1) into the coefficient in row 1, column 3.
char *Formula="sin ( Col1 )"; double Factor; Factor = 2.5; XSLPchgccoef(Prob, 1, 3, &Factor, Formula);
Note that all the tokens in the formula (including mathematical operators and separators) are separated by one or more spaces.
Further information
If the coefficient already exists as a constant or formula, it will be changed into the new coefficient. If it does not exist, it will be added to the problem.
A coefficient is made up of two parts: Factor and Formula. Factor is a constant multiplier which can be provided in the Factor variable. If Xpress NonLinear can identify a constant factor in the Formula, then it will use that as well, to minimize the size of the formula which has to be calculated.
This function can only be used if all the operands in the formula can be correctly identified as constants, existing columns, character variables or functions. Therefore, if a formula refers to a new column, that new item must be added to the Xpress NonLinear problem first.
Related topics