Error Messages
If the optimization procedure or some other library function encounters an error, then the procedure normally terminates with a nonzero return code and sets an error code. For most functions, the return code is 32 for an error; those functions which can return Optimizer return codes (such as the functions for accessing attributes and controls) will return the Optimizer code in such circumstances.
If an error message is produced, it will normally be output to the message handler; for console-based output, it will appear on the console. The error message and the error code can also be obtained using the function XSLPgetlasterror. This allows the user to retrieve the message number and/or the message text. The format is:
XSLPgetlasterror(Prob, &ErrorCode, &ErrorMessage);The following is a list of the error codes and an explanation of the message. In the list, error numbers are prefixed by E- and warnings by W-. The printed messages are generally prefixed by Xpress-SLP error and Xpress-SLP warning respectively.
- E-12001 invalid parameter number num
This message is produced by the functions which access SLP or Optimizer controls and attributes. The parameter numbers for SLP are given in the header file xslp.h. The parameter is of the wrong type for the function, or cannot be changed by the user.
- E-12002 internal hash error
This is a non-recoverable program error. If this error is encountered, please contact your local Dash support office.
- E-12003 XSLPprob problem pointer is NULL
The problem pointer has not been initialized and contains a zero address. Initialize the problem using XSLPcreateprob.
- E-12004 XSLPprob is corrupted or is not a valid problem
The problem pointer is not the address of a valid problem. The problem pointer has been corrupted, and no longer contains the correct address; or the problem has not been initialized correctly; or the problem has been corrupted in memory. Check that your program is using the correct pointer and is not overwriting part of the memory area.
- E-12005 memory manager error - allocation error
This message normally means that the system has run out of memory when trying to allocate or reallocate arrays. Use XSLPuprintmemory to obtain a list of the arrays and amounts of memory allocated by the system. Ensure that any memory allocated by user programs is freed at the appropriate time.
- E-12006 memory manager error - Array expansion size (num)
0
This may be caused by incorrect setting of the XSLP_EXTRA* control parameters to negative numbers. Use XSLPuprintmemory to obtain a list of the arrays and amounts of memory allocated by the system for the specified array. If the problem persists, please contact your local Dash support office.
- E-12007 memory manager error - object Obj size not defined
This is a non-recoverable program error. If this error is encountered, please contact your local Dash support office.
- E-12008 cannot open file name
This message appears when Xpress-SLP is required to open a file of any type and encounters an error while doing so. Check that the file name is spelt correctly (including the path, directory or folder) and that it is accessible (for example, not locked by another application).
- E-12009 cannot open problem file name
This message is produced by XSLPreadprob if it cannot find name.mat, name.mps or name. Note that "lp" format files are not accepted for SLP input.
- E-12010 internal I/O error
This error is produced by XSLPreadprob if it is unable to read or write intermediate files required for input.
- E-12011 XSLPreadprob unknown record type name
This error is produced by XSLPreadprob if it encounters a record in the file which is not identifiable. It may be out of place (for example, a matrix entry in the BOUNDS section), or it may be a completely invalid record type.
- E-12012 XSLPreadprob invalid function argument type name
This error is produced by XSLPreadprob if it encounters a user function definition with an argument type that is not one of NULL, DOUBLE, INTEGER, CHAR or VARIANT.
- E-12013 XSLPreadprob invalid function linkage type name
This error is produced by XSLPreadprob if it encounters a user function with a linkage type that is not one of DLL, XLS, XLF, MOSEL, VB or COM.
- E-12014 XSLPreadprob unrecognized function name
This error is produced by XSLPreadprob if it encounters a function reference in a formula which is not a pre-defined internal function nor a defined user function. Check the formula and the function name, and define the function if required.
- E-12015 func: item num out of range
This message is produced by the Xpress-SLP function func which is referencing the SLP item (row, column variable, XV, etc). The index provided is out of range (less than 1 unless zero is explicitly allowed, or greater than the current number of items of that type). Remember that most Xpress-SLP items count from 1, and are not sensitive to the setting of XPRS_CSTYLE.
- E-12016 missing left bracket in formula
This message is produced during parsing of formulae provided in character or unparsed internal format. A right bracket is not correctly paired with a corresponding left bracket. Check the formulae.
- E-12017 missing left operand in formula
This message is produced during parsing of formulae provided in character or unparsed internal format. An operator which takes two operands is missing the left hand one (and so immediately follows another operator or a bracket). Check the formulae.
- E-12018 missing right operand in formula
This message is produced during parsing of formulae provided in character or unparsed internal format. An operator is missing the right hand (following) operand (and so is immediately followed by another operator or a bracket). Check the formulae.
- E-12019 missing right bracket in formula
This message is produced during parsing of formulae provided in character or unparsed internal format. A left bracket is not correctly paired with a corresponding right bracket. Check the formulae.
- E-12020 column #n is defined more than once as an SLP variable
This message is produced by XSLPaddvars or XSLPloadvars if the same column appears more than once in the list, or has already been defined as an SLP variable. Although XSLPchgvar is less efficient, it can be used to set the properties of an SLP variable whether or not it has already been declared.
- E-12021 row #num is defined more than once as an SLP delayed constraint
This message is produced by XSLPadddcs or XSLPloaddcs if the same row appears more than once in the list, or has already been defined as a delayed constraint. Although XSLPchgdc is less efficient, it can be used to set the properties of an SLP delayed constraint whether or not it has already been declared.
- E-12022 undefined tolerance type name
This error is produced by XSLPreadprob if it encounters a tolerance which is not one of the 9 defined types (TC, TA, TM, TI, TS, RA, RM, RI, RS). Check the two-character code for the tolerance.
- W-12023 name has been given a tolerance but is not an SLP variable
This error is produced by XSLPreadprob if it encounters a tolerance for a variable which is not an SLP variable (it is not in a coefficient, it does not have a non-constant coefficient and it has not been given an initial value). If the tolerance is required (that is, if the variable is to be monitored for convergence) then give it an initial value so that it becomes an SLP variable. Otherwise, the tolerance will be ignored.
- W-12024 name has been given SLP data of type ty but is not an SLP variable
This error is produced by XSLPreadprob if it encounters SLPDATA for a variable which has not been defined as an SLP variable. Typically, this is because the variable would only appear in coefficients, and the relevant coefficients are missing. The data item will be ignored.
- E-12025 func has the same source and destination problems
This message is produced by XSLPcopycallbacks, XSLPcopycontrols and XSLPcopyprob if the source and destination problems are the same. If they are the same, then there is no point in copying them.
- E-12026 invalid or corrupt SAVE file
This message is produced by XSLPrestore if the SAVE file header is not valid, or if internal consistency checks fail. Check that the file exists and was created by XSLPsave.
- E-12027 SAVE file version is too old
This message is produced by XSLPrestore if the SAVE file was produced by an earlier version of Xpress-SLP. In general, it is not possible to restore a file except with the same version of the program as the one which SAVEd it.
- W-12028 problem already has augmented SLP structure
This message is produced by XSLPconstruct if it is called for a second time for the same problem. The problem can only be augmented once, which must be done after all the variables and coefficients have been loaded. XSLPconstruct is called automatically by XSLPmaxim and XSLPminim if it has not been called earlier.
- E-12029 zero divisor
This message is produced by the formula evaluation routines if an attempt is made to divide by a value less than XSLP_ZERO. A value of +/-XSLP_INFINITY is returned as the result and the calculation continues.
- E-12030 negative number, fractional exponent - truncated to integer
This message is produced by the formula evaluation routines if an attempt is made to raise a negative number to a non-integer exponent. The exponent is truncated to an integer value and the calculation continues.
- E-12031 binary search failed
This is a non-recoverable program error. If this error is encountered, please contact your local Dash support office.
- E-12032 wrong number (num) of arguments to function func
This message is produced by the formula evaluation routines if a formula contains the wrong number of arguments for an internal function (for example, SIN(A,B)). Correct the formula.
- E-12033 argument value out of range in function func
This message is produced by the formula evaluation routines if an internal function is called with an argument outside the allowable range (for example, LOG of a negative number). The function will normally return zero as the result and, if XSLP_STOPOUTOFRANGE is set, will set the function error flag.
- W-12034 terminated following user return code num
This message is produced by XSLPmaxim and XSLPminim if a nonzero value is returned by the callback defined by XSLPsetcbiterend or XSLPsetcbslpend.
- W-12036 the number of items in XV #num cannot be increased
This message is produced by XSLPchgxv if the number of XVitems specified is larger than the current number. XSLPchgxv can only reduce the number of items; use XSLPchgxvitem to add new items.
- E-12037 failed to load library/file/program "name" containing function "func"
This message is produced if a user function is defined to be in a file, but Xpress-SLP cannot the specified file. Check that the correct file name is specified (also check the search paths such as $PATH and %path% if necessary).
This message may also be produced if the specified library exists but is dependent on another library which is missing.- E-12038 function "func" is not correctly defined or is not in the specified location
This message is produced if a user function is defined to be in a file, but Xpress-SLP cannot find it in the file. Check that the number and type of the arguments is correct, and that the (external) name of the user function matches the name by which it is known in the file.
- E-12039 incorrect OLE version
This message is produced if a user function is specified using an OLE linkage (Excel or COM) but the OLE version is not compatible with the version used by Xpress-SLP. If this error is encountered, please contact your local Dash support office.
- E-12040 unable to initialize OLE - code num
This message is produced if the OLE initialization failed. The initialization error code is printed in hexadecimal. Consult the appropriate OLE documentation to establish the cause of the error.
- E-12041 unable to open Excel/COM - code num
This message is printed if the initialization of Excel or COM failed after OLE was initialized successfully. The error code is printed in hexadecimal. Consult the appropriate documentation to establish the cause of the error.
- E-12042 OLE/Excel/COM error: msg
This message is produced if OLE automation produces an error during transfer of data to or from Excel or COM. The message text gives more information about the specific error.
- E-12084 Xpress-SLP has not been initialized
An attempt has been made to use Xpress-SLP functions without a previous call to XSLPinit. Only a very few functions can be called before initialization. Check the sequence of calls to ensure that XSLPinit is called first, and that it completed successfully. This error message normally produces return code 279.
- E-12085 Xpress-SLP has not been licensed for use here
Either Xpress-SLP is not licensed at all (although the Xpress-Optimizer may be licensed), or the particular feature (such as MISLP) is not licensed. Check the license and contact the local Dash sales office if necessary. This error message normally produces return code 352.
- E-12105 Xpress-SLP error: I/O error on file
The message is produced by XSLPsave or XSLPwriteprob if there is an I/O error when writing the output file (usually because there is insufficient space to write the file).
- E-12107 Xpress-SLP error: user function type name not supported on this platform
This message is produced if a user function defined as being of type XLS, XLF, VB or COM and is run on a non-Windows platform.
- E-12111 Xpress-SLP error: unidentified section in REVISE: name
This message is produced by XSLPrevise if it encounters a section other than NAME, ROWS, COLUMNS, RHS, RANGES, BOUNDS, ENDATA, MODIFY, BEFORE or AFTER.
- E-12112 Xpress-SLP error: unidentified row type in REVISE: name
This message is produced by XSLPrevise if it encounters a row type other than L, G, E or N.
- E-12113 Xpress-SLP error: unidentified row in REVISE: name
This message is produced by XSLPrevise if it encounters a row name which is not already in the problem. XSLPrevise cannot add new rows to the problem.
- E-12114 Xpress-SLP error: unidentified bound type in REVISE: name
This message is produced by XSLPrevise if it encounters a bound type that is not LO, UP, FX or FR. It is not possible to change bounds for global variables using XSLPrevise.
- E-12115 Xpress-SLP error: unidentified column in REVISE: name
This message is produced by XSLPrevise if it encounters a column name which is not already in the problem. XSLPrevise cannot add new columns to the problem.
- E-12121 Xpress-SLP error: bad return code num from user function func
This message is produced during evaluation of a complicated user function if it returns a value (-1) indicating that the system should estimate the result from a previous function call, but there has been no previous function call.
- E-12124 Xpress-SLP error: augmented problem not set up
The message is produced by XSLPvalidate if an attempt is made to validate the problem without a preceding call to XSLPconstruct. In fact, unless a solution to the linearized problem is available, XSLPvalidate will not be able to give useful results.
- E-12125 Xpress-SLP error: user function func terminated with errors
This message is produced during evaluation of a user function if it sets the function error flag (see XSLPsetfunctionerror).
- W-12142 Xpress-SLP warning: invalid record: text
This error is produced by XSLPreadprob if it encounters a record in the file which is identifiable but invalid (for example, a BOUNDS record without a bound set name). The record is ignored.
- E-12147 Xpress-SLP error: incompatible arguments in user function func
This message is produced if a user function is called by XSLPcalluserfunc but the function call does not provide the arguments required by the function.
- E-12148 Xpress-SLP error: user function func should return an array not a single value
This message is produced if a user function is defined within Xpress-SLP as returning an array, but the function is returning a single value. This message is produced only when it is possible to identify the type of value being returned by the function (for example, the value from an Excel macro).
- E-12158 Xpress-SLP error: unknown parameter name name
This message is produced if an attempt is made to set or retrieve a value for a control parameter or attribute given by name (XSLPgetparam or XSLPsetparam where the name is incorrect.
- E-12159 Xpress-SLP error: parameter number is not writable
This message is produced if an attempt is made to set a value for an attribute.
- E-12160 Xpress-SLP error: parameter num is not available
This message is produced if an attempt is made to retrieve a value for a control or attribute which is not readable
If you have any comments or suggestions about these pages, please send mail to docs@dashoptimization.com.