Purpose
Parse a formula written as an unparsed array of tokens into internal parsed
(reverse Polish) format
Synopsis
int XPRS_CC XSLPparseformula(XSLPprob Prob, int *inType,
double *inValue, int *nToken, int *Type, double *Value);
Arguments
|
Prob
|
The current SLP problem.
|
|
inType
|
Array of token types providing the unparsed formula.
|
|
inValue
|
Array of values corresponding to the types in inType.
|
|
nToken
|
Address of an integer to receive the number of tokens in the parsed
formula (not counting the terminating XSLP_EOF token). May be NULL
if not required.
|
|
Type
|
Array of token types providing the parsed formula.
|
|
Value
|
Array of values corresponding to the types in Type.
|
Example
Assuming that x and y are already defined as columns
with index iX and iY respectively, the following example converts the
formula "sin(x+y)" into internal parsed format, and then writes it out as a sequence of
tokens.
int n, iSin, iX, iY;
int inType[7], Type[20];
double inValue[7], Value[20];
n = 0;
XSLPgetindex(Prob, XSLP_INTERNALFUNCNAMESNOCASE,
"SIN", &iSin);
Type[n] = XSLP_IFUN; Value[n++] = iSin;
Type[n++] = XSLP_LB;
Type[n] = XSLP_COL; Value[n++] = iX;
Type[n] = XSLP_OP; Value[n++] = XSLP_PLUS;
Type[n] = XSLP_COL; Value[n++] = iY;
Type[n++] = XSLP_RB;
Type[n++] = XSLP_EOF;
XSLPparseformula(Prob, inType, inValue,
NULL, Type, Value);
printf("\n");
for (n=0;Type[n] != XSLP_EOF;n++) {
XSLPitemname(Prob, Type[n], Value[n], Buffer);
printf(" %s", Buffer);
}
Further information
For possible token types and values see the chapter on "Formula Parsing".
Related topics
If you have any comments or suggestions about these pages,
please send mail to docs@dashoptimization.com.