XSLPloadxvs
PurposeLoad a set of extended variable arrays (XVs) into an SLP problemSynopsisint XPRS_CC XSLPloadxvs(XSLPprob Prob, int nSLPXV, int *XVStart, int Parsed, int *Type, double *Value);Arguments
Prob The current SLP problem. nSLPXV Number of XVs to be loaded. XVStart Integer array of length nSLPXV+1 holding the start position in the arrays Type and Value of the formula or value data for the XVs. XVStart[nSLPXV] should be set to one after the end of the last XV. 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 XV item. Value Array of values corresponding to the types in Type.ExampleThe following example loads two XVs into the current problem. The first XV contains two items: columns 3 and 6, named "Temperature" and "Pressure" respectively. The second XV has four items: column 1, the constant 1.42, the square of column 3, and column 2.int n, CType, TempIndex, PressIndex, XVStart[3], Type[10]; double Value[10]; XSLPgetintcontrol(Prob,XSLP_CTYPE,CType); n = 0; XSLPsetstring(Prob,&TempIndex,"Temperature"); XSLPsetstring(Prob,&PressIndex,"Pressure"); XVStart[0] = n; Type[n] = XSLP_XVVARTYPE; Value[n++] = XSLP_VAR; Type[n] = XSLP_XVVARINDEX; Value[n++] = 3 + CType; Type[n] = XSLP_XVINTINDEX; Value[n++] = TempIndex; Type[n++] = XSLP_EOF; Type[n] = XSLP_XVVARTYPE; Value[n++] = XSLP_VAR; Type[n] = XSLP_XVVARINDEX; Value[n++] = 6 + CType; Type[n] = XSLP_XVINTINDEX; Value[n++] = TempIndex; Type[n++] = XSLP_EOF; XVStart[1] = n; Type[n] = XSLP_XVVARTYPE; Value[n++] = XSLP_VAR; Type[n] = XSLP_XVVARINDEX; Value[n++] = 1 + CType; Type[n++] = XSLP_EOF; Type[n] = XSLP_CON; Value[n++] = 1.42; Type[n++] = XSLP_EOF; Type[n] = XSLP_VAR; Value[n++] = 3 + CType; Type[n] = XSLP_CON; Value[n++] = 2; Type[n] = XSLP_OP; Value[n++] = XSLP_EXPONENT; Type[n++] = XSLP_EOF; Type[n] = XSLP_VAR; Value[n++] = 2 + CType; Type[n++] = XSLP_EOF; XVStart[2] = n; XSLPloadxvs(Prob, 2, XVStart, 1, Type, Value);When a variable is used directly as an item in an XV, it is described by two tokens: XSLP_XVVARTYPE and XSLP_VARINDEX. When used in a formula, it appears as XSLP_VAR or XSLP_COL.
Note that XSLP_COL cannot be used in an XSLP_XVVARINDEX; instead, use the setting of XPRS_CTYPE to convert it to a value which counts from 1, and use XSLP_VAR.
Because Parsed is set to 1, the formulae are written in internal parsed (reverse Polish) form.
Further informationThe token type and value arrays Type and Value are formatted in a similar way to the unparsed internal format function stack. For possible token types and values see the chapter on "Formula Parsing". Each formula must be terminated by an XSLP_EOF token.
The XSLPload... functions load items into the SLP problem. Any existing items of the same type are deleted first. The corresponding XSLPadd... functions add or replace items leaving other items of the same type unchanged.
Related topics
If you have any comments or suggestions about these pages, please send mail to docs@dashoptimization.com.