Xpress Updates 9.4.5 is now available on the client area for Windows, Linux, and MacOS on x86-64, and Linux and MacOS on AArch64, from
https://clientarea.xpress.fico.com/download_patch.php#945
This is the latest updates for the Xpress 9.4 release branch, respectively, and require matching licenses. Please note that these archives must be extracted over a prior installation of FICO Xpress 9.4, respectively.
Release Notes for 9.4.5
Xpress Optimizer 43.01.06
https://clientarea.xpress.fico.com/download_patch.php#945
This is the latest updates for the Xpress 9.4 release branch, respectively, and require matching licenses. Please note that these archives must be extracted over a prior installation of FICO Xpress 9.4, respectively.
Release Notes for 9.4.5
Xpress Optimizer 43.01.06
- Fixed an issue with mixed integer Gomory cuts for problems with semi-continuous variables, which could result in invalid cuts being created.
- Fixed an issue which could cause significant performance degradation of the barrier algorithm on very large problems.
- New control BARKEEPLASTSOL that can be used for turning off the automatic saving of the final Barrier solution.
- Improved how numerical issues are handled during an automatic restart of an MIQP solve.
- Fixed issues with XPRSchgcoef and XPRSgetcoef that could set or return wrong coefficients when the original problem is scaled.
- Fixed a problem which meant XPRS_bo_getlasterror never returned the last error.
- Fixed an uninitialized memory read in XPRSwritedirs().
- Fixed a crash in XPRSsave().
- When reading multi-objective MPS files, neutral rows without objective attributes are no longer treated as objectives.
- Fixed an issue where in a rare situation a column could be fixed to the wrong bound
- Fixed a crash when solving after restoring from a save file which contains multistart jobs.
- Fixed an issue where nonlinear information was sometimes not restored from a save file.
- Fixed an issue where XSLP_CONTROL was set incorrectly after restoring from a save file.
- Fixed an issue where a lot of memory was used when loading many nonlinear coefficients for the same row/column.
- Fixed an issue where the nonlinear API was used when solving any problem with Insight Compute, even when the problem contained no nonlinearities, which caused unnecessary data to be transferred from the compute server after the solve.
- Fixed a problem where setting HEUREMPHASIS=0 would not disable the 'E' heuristic for problems with quadratic rows.
- Fixed a problem where constant objective functions were not properly written to LP files.
- Fixed a problem when reading MPS files with more than INT_MAX nonzeros. This used to give an OOM with negative size. It now works correctly.
- Fixed a potential wrong answer bug that could show up in particular with parallel heuristics at the root node.
- Fixed an integer overflow for models that have more than INT_MAX nonzeros.
- Fixed a crash occurring on models with indicator constraints in rare circumstances.
- MIPstatus and LPstatus are now reset upon problem changes so that XPRSoptimize will return correct solvestatus and solstatus even if a timelimit is hit before the actual optimization commences.
- Fixed an issue in the linearization of binary QPs that could lead to incorrect solutions.
- Fixed an integer overflow in cut lifting.
- Fixed problems when reading/writing compressed files with certain external tools on Windows.
- Fixed an issue in the quadratic primal simplex algorithm which could result in incorrect solutions.
- Fixed an issue with general constraints where the same column appears multiple times as an input.
- Fixed an issue with postsolving in SLP-MIP-SLP and MIP-in-SLP.
- Fixed an issue with the original problem not being correctly reset during postsolve for problems with nonlinear coefficients.
- Fixed an issue that could lead to variable bounds on binary variables being ignored when solving an MINLP with Knitro.
- Fixed an issue potentially leading to a crash in heuristics.
- Fixed a crash when all indicator constraints could be removed during nonlinear presolve.
- Fixed numerical issues in bound reduction for bilinear, quotient, and logarithm terms.
- Fixed an issue in bound reduction that could result in reporting infeasibility.
- Fixed an issue that could result in a crash during the reformulation phase.
- Fixed an issue that could lead to an invalid relaxation of a MINLP.
- Fixed an issue arising in reformulation with linear constraints.
- Python
- Fixed a memory leak when handling quadratic objectives.
- Fixed a crash that sometimes occurred when calling problem.getSolution() or problem.getslpsol() after a nonlinear solve.
- Fixed an issue where certain nonlinear sums produced an invalid expression that could lead to a crash.
- Fixed a SystemError when accessing an unknown control or attribute.
- Fixed an error when creating a problem with no rows and providing an empty list for the row names.
- Fixed a TypeError when slicing a Pandas data frame containing xpress.expression objects.
- Fixed a problem where using xpress.init() as a context manager would not call xpress.free() if an exception was raised.
- Improved performance of problem.addrows, problem.addcols and problem.loadproblem, when names are provided. (Previously stated as fixed in 9.4.4, incorrectly.)
- Fixed an issue where after reading a problem from an MPS or LP file, the Python objects representing special ordered sets were inconsistent with the Optimizer problem.
- Removed internal controls and attributes that should not have been exposed in the Python interface.
- Added missing class attributes xpress.linterm, xpress.quadterm and xpress.nonlin.
- Fixed a problem where problem.addVariable did not fully revert the new variables if an error occurred while adding them to the problem.
- Fixed a problem where problem.addSOS did not set the names of the sets.
- Fixed a memory corruption issue in problem.addVariables.
- When restoring into an empty or linked problem, problem.restore() now recreates all variable/constraint/sos objects to match the dimensions of the restored problem. For unlinked problems, the legacy behaviour of keeping the existing model objects is preserved.
- Matlab:
- On Linux, MEX files are now created in a way so that Xpress libraries can be found without setting LD_LIBRARY_PATH.
Updated 1 year ago
Version 3.0FICO
Community Manager
Joined July 21, 2025
FICO® Xpress Optimization Blog
Follow this blog board to get notified when there's new activity