Xpress-SLP Matrix Name Generation
Xpress-SLP adds rows and columns to the nonlinear problem in order to create a linear approximation. The new rows and columns are given names derived from the row or column to which they are related as follows:
Row or column type | Control parameter containing format | Default format |
---|---|---|
Update row | XSLP_UPDATEFORMAT | pU_r |
Delta vector | XSLP_DELTAFORMAT | pD_c |
Penalty delta (below step bound) | XSLP_MINUSDELTAFORMAT | pD-c |
Penalty delta (above step bound) | XSLP_PLUSDELTAFORMAT | pD+c |
Penalty error (below RHS) | XSLP_MINUSERRORFORMAT | pE-r |
Penalty error (above RHS) | XSLP_PLUSERRORFORMAT | pE+r |
Row for total of all penalty vectors (error or delta) | XSLP_PENALTYROWFORMAT | pPR_x |
Column for standard penalty cost (error or delta) | XSLP_PENALTYCOLFORMAT | pPC_x |
LO step bound formulated as a row | XSLP_SBLOROWFORMAT | pSB-c |
UP step bound formulated as a row | XSLP_SBUPROWFORMAT | pSB+c |
In the default formats:
- p
- a unique prefix (one or more characters not used as the beginning of any name in the problem).
- r
- the original row name.
- c
- the original column name.
- x
- The penalty row and column vectors are suffixed with "ERR" or "DELT" (for error and delta respectively).
The format of one of these generated names can be changed by setting the corresponding control parameter to a formatting string using standard "C"-style conventions. In these cases, the unique prefix is not available and the only obvious choices, apart from constant names, use "%s" to include the original name — for example:
U_%s would create names like U_abcdefghi
U_%-8s would create names like U_abcdefgh (always truncated to 8 characters).
You can use a part of the name by using the XSLP_*OFFSET control parameters (such as XSLP_UPDATEOFFSET) which will offset the start of the original name by the number of characters indicated (so, setting XSLP_UPDATEOFFSET to 1 would produce the name U_bcdefghi).