XSLPchgcoef
XSLPchgcoef |
int XPRS_CC XSLPchgcoef(XSLPprob Prob, int RowIndex, int ColIndex, double *Factor, int Parsed, int *Type, double *Value);
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.
|
Parsed
|
Integer indicating the whether the token arrays are formatted as internal unparsed (
Parsed=0) or internal parsed reverse Polish (
Parsed=1).
|
Type
|
Array of token types providing the description and formula for each item.
|
Value
|
Array of values corresponding to the types in
Type.
|
int n, iSin, Type[4]; double Value[4]; double Factor; XSLPgetindex(Prob, XSLP_INTERNALFUNCNAMESNOCASE, "sin", &iSin); n = 0; Type[n] = XSLP_IFUN; Value[n++] = iSin; Type[n] = XSLP_VAR; Value[n++] = 1; Type[n++] = XSLP_RB; Type[n++] = XSLP_EOF; Factor = 2.5; XSLPchgcoef(Prob, 1, 3, &Factor, 0, Type, Value);
XSLPgetindex is used to retrieve the index for the internal function sin. The "nocase" version matches the function name regardless of the (upper or lower) case of the name.
Token type XSLP_VAR always counts from 1, so Col1 is always 1.
The formula is written in unparsed form (Parsed = 0) and so it is provided as tokens in the same order as they would appear if the formula were written in character form.
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.