XSLPaddformulas, XPRSnlpaddformulas
Purpose
Add non-linear formulas to the SLP problem.
Topic area
Synopsis
int XPRS_CC XSLPaddformulas(XSLPprob prob, int ncoefs, const int[] rowind, const int[] formulastart, int parsed, const int[] type, const double[] value);
Arguments
|
prob
|
The current SLP problem.
|
|
ncoefs
|
Number of non-linear coefficients to be added.
|
|
rowind
|
Integer array holding index of row for the coefficient.
|
|
formulastart
|
Integer array of length
ncoefs+1 holding the start position in the arrays
type and
value of the formula for the coefficients. The last element should be set to the next position after the end of the last formula. |
|
parsed
|
Integer indicating 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 formula for each coefficient.
|
|
value
|
Array of values corresponding to the types in
type.
|
Example
Assume that the rows and columns of
prob are named
Row0,
Row1 ...,
Col0,
Col1 ... The following example adds nonlinear formulas representing:
Col2 * Col3 * Col6 ˆ2 into Row1 and
Col2 * Col3 ˆ 2 into Row3.
Col2 * Col3 * Col6 ˆ2 into Row1 and
Col2 * Col3 ˆ 2 into Row3.
int rowind[3], formulastart[4], type[8]; int n, ncoefs; double value[8]; rowind[0] = 1; rowind[1] = 1; rowind[2] = 3; n = ncoefs = 0; formulastart[ncoefs++] = n; type[n] = XSLP_COL; value[n++] = 3; type[n++] = XSLP_EOF; formulastart[ncoefs++] = n; type[n] = XSLP_COL; value[n++] = 2; type[n] = XSLP_COL; value[n++] = 3; type[n] = XSLP_OP; value[n++] = XSLP_MULTIPLY; type[n] = XSLP_COL; value[n++] = 6; type[n] = XSLP_CON; value[n++] = 2; type[n] = XSLP_OP; value[n++] = XSLP_EXPONENT; type[n] = XSLP_OP; value[n++] = XSLP_MULTIPLY; type[n++] = XSLP_EOF; formulastart[ncoefs++] = n; type[n] = XSLP_COL; value[n++] = 2; type[n] = XSLP_COL; value[n++] = 3; type[n] = XSLP_CON; value[n++] = 2; type[n] = XSLP_OP; value[n++] = XSLP_EXPONENT; type[n] = XSLP_OP; value[n++] = XSLP_MULTIPLY; type[n++] = XSLP_EOF; formulastart[ncoefs] = n; XSLPaddformulas(prob, ncoefs, rowind, formulastart, 1 /* reversed Polish */, type, value);
Further information
1. The formula is made up of a list of tokens in
type and
value starting at
formulastart[j]. The tokens follow the rules for parsed or unparsed formulae as indicated by the setting of
parsed. The formula must be terminated with an
XSLP_EOF token. If several rows share the same nonlinear expression, they can have the same value in
formulastart. For possible token types and values see
Xpress NonLinear Formulae.
2. The
add functions load additional items into the SLP problem. The corresponding load functions delete any existing items first.
3. The behaviour for existing formulas is additive: the formula defined in the parameters are added to any existing nonlinear expressions in the row. However, due to performance considerations, such duplications should be avoided when possible.
Related topics
XPRSnlpgetformulastr,
XSLPaddformulas,
XPRSnlpchgformulastr,
XSLPchgformula,
XSLPloadformulas,
XSLPgetformularows,
XSLPgetformula,
XSLPdelformulas
© 2001-2026 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.
