BARON Changelog


  • Updated to baron 24.05.08, that includes improvements in convexity identification, facilities for handling quadratic programs, scaling numerically challenging problems, and range reduction via Fourier-Motzkin elimination

  • Added option seed to specify the seed for BARON’s random number generator. Changing the value of this option is likely to change the outcome of BARON’s randomized search steps, including starting points and solutions obtained from local search heuristics.


  • Updated to baron 24.01.30; In addition to bug fixes, this version comes with a large number of improved algorithms for NLPs, MIQPs, and MINLPs, including local search, reformulations, relaxations, cutting planes, and presolve.


  • Fixed baron bundle packaging


  • Updated to baron version 20230311; In addition to bug fixes, this version comes with significant improvements in BARON’s CPLEX, CBC and IPOPT interfaces, better treatment of convex and quadratic problems, improved cutting, reduction and branching strategies, and much improved continuous and integer presolve algorithms.


  • Update to find xpress version 39.01.02


  • Fixed bug that was causing threads option to fail.


  • Fixed a problem where with iisfind > 1 IIS were found but not communicated back to AMPL.


  • Relinked with ASL 20211109, which allows the use of functions with output arguments in the AMPL session.


  • Possible problem in the licencing routines for computer with many MAC addresses.


  • Relinked with Baron 21.01.13, which includes some bug fixes

  • [Linux] Upped minimum requirement to glibc 2.17 due to constraint in the baron library


  • Update to Baron 21.01.07, which includes some bug fixes and performance improvements.

  • Update to find xpress version 37.01.01


  • Update to Baron 20.10.16; which inlcudes some bug fixes and performance improvements

  • [Linux] update to find xpress version 36.01.11


  • [MacOS] Added support for older version of MacOS


  • [Linux] update to correctly find version 36 of xpress library.


  • Update to Baron 20.04.14

  • Fixed a bug with iisfind, where the infeasible subset was not returned due to changes in how Baron passes the information back to AMPL

  • Fixed a problem with rpath of the OSX shared library.

  • Added value Both for the iis suffix, to identify variables and inequality constraints whose lower or upper bounds are in the IIS.


Minor tweaks to -= output.


  • Update to Baron 19.12.07, which has performance improvements on large-scale problems and mised-integer QPs.


  • Relink to ignore any LOGWAIT keywords in the ampl.lic or ampl.netlic file.


  • Update to Baron 19.7.13 to fix a fault seen in the MS Windows binary.


  • Update to Baron 19.7.9, which has various improvements and bug fixes.


  • Update to Baron 19.3.22, which has various improvements and a new keyword, firstloc. See the updated README.baron or “baron -=” output. The 32-bit binaries remain at version 18.5.8 and do not have the new keyword.


  • Fix a bug with unary minus applied to a sum or difference. The resulting nonlinear evaluations were wrong.

  • New keywords deltaa, deltar, deltat, deltaterm and associated new solve_result_num = 150. See the updated README.baron or “baron -=” output.


  • Fix a glitch with “maxtime=1000”. Other maxtime values were unaffected.


  • Update to Baron 18.11.12, which has a more robust treatment of cutting planes and better optimality-based range reductions.

  • Ignore HEARTBEAT lines in the ampl.lic file.


  • Add keywords iisfind, iisint, iisorder related to finding an irreducible infeasible set of constraints and variable bounds for infeasible problems. Baron often reports that the sets it finds may not be irreducible. See the “baron -=” output for more details. New solve_result_num values:

201 → infeasible, IIS found
202 → infeasible, IS found, possibly not irreducible
203 → infeasible, IIS sought but not found


  • Recreate the MacOSX64 bundle so libbaron-osx64.dylib knows to look in the directory containing baron for libiomp5.dylib. This does not matter for some systems.


  • Update to Baron 18.8.23, which has some bug fixes and improvements and is only available for 64-bit versions of Linux, MacOSX, and MS Windows. No further updates to 32-bit binaries are expected.


  • Fix some trouble with numsol=n for n >= 2: only one solution file was produced, likely not for the best solution found.


  • Update to Baron 18.5.8, which has various improvements and bug fixes.


  • Arrange for lpsolver=cplex and lpsolver=xpress to work with more recent versions of cplex and xpress, respectively. For MS Windows, currently cplex1280.dll, cplex1271.dll, cplex1270.dll and cplex1263.dll are explicitly recognized. Copying another cplex*.dll to cplex.dll may work if not too old. For example, cplex124.dll is too old.


  • Update to Baron 17.10.13 to fix a glitch – undesired output – under MS Windows.


  • Update to Baron 17.10.10, which has some bug fixes.


  • Update to Baron 17.8.7, which has bug fixes, performance improvements, and another builtin local nonlinear solver (FilterSQP). New keyword “nlpsol”; see the “baron -=” output for details.

  • Keyword “filter” is now deprecated (replaced by suitable nlpsol assignments).


  • Update to Baron 17.6.24, which has bug fixes and performance improvements.



  • New keyword “version” (no value) causes version, platform, and license to be reported.


  • Update to Baron 17.4.1, which has some bug fixes and performance improvements.


  • Update libbaron-osx64.dylib (MacOSX only) to look in the directory containing baron (as well as standard places) for libiomp5.dylib.


  • Update so lpsolver=cplex and lpsolver=xpress work with current versions of cplex and xpress. This was already true for MacOSX (version 20170116).


  • Fix a glitch with multiple objectives: the objective used was not transmitted (via the .sol file) to the AMPL session.

  • In the binary for 32-bit MS Windows, fix trouble with “lpsolver=xpress”.


  • Update to Baron 17.1.2, which has some bug fixes and performance improvements.

  • Specifying “lpsolver=xpress” (when permitted by licensing) now works except for 32-bit MS Windows.


  • Update to Baron 16.12.7, which has some bug fixes and performance improvements.


  • Fix a bug that sometimes caused baron to go into an infinite loop after solving a problem with defined variables.


  • Fix a bug with temporary or time-limited cplex or xpress licenses in conjunction with lpsolver=cplex or lpsolver=xpress. The bug led to a “license not found” message.


  • Add “No value is expected.” to the description of objbound in the “baron -=” output.


  • Fix glitches with keyword lpsolver. If given a bad value, the error message involved some erroneous text. If lpsolver appeared in $baron_options and other settings followed, lpsolver was incorrectly diagnosed as having an incorrect value.

  • New keyword “objbound” requests return of suffixes .obj_lb and .obj_ub on the problem and objective for Baron’s final lower and upper bounds on the objective value.


  • Update to BARON 16.7.29, which has various bug fixes and improvements. No changes to $baron_options.


  • Relink MacOSX version so libbaron-osx64.dylib will look for libiomp5.dylib in the directory containing “baron”.


  • Update to BARON 16.4.4, which has some bug fixes and improvements. Dual variable values are now returned.


  • Update to BARON 16.3.16, which has various bug fixes and improvements. No changes to $baron_options.


  • Adjust to work when one uses “option presolve 0” (a bad idea) and the problem has some empty constraints.


  • Linux 64-bit binary relinked so as not to require GLIBC 2.14.


  • Fix a bug affecting “baron … lpsolver=…” that could cause some licenses not to be returned.

  • Update to CPLEX 12.6.3, which affects “lpsolver=cplex”.


  • For Linux binaries, add the directory containing the binary to the library search rules.


  • Update driver to deal with complementarity constraints.


  • Update to BARON 15.9.22, to fix a fault that was possible under some conditions.

  • New keyword “lpsolver” to specify the choice of LP solver, which matters mainly when there are integer variables: possible values are cbc (default), cplex, or xpress. The last two must be suitably licensed to be used.


  • Fix a bug that sometimes affected keyword lsolver under MS Windows.


  • Update to version 15.8.26, which has many bug fixes and small performance improvements.


  • Add possible solve_result_num value 100 for “numerical difficulties but possibly optimal”.

  • Adjust MacOSX version so __ZNKSt5ctypeIcE13_M_widen_initEv is not required. It is missing in the C++ run-time libraries on some MacOSX systems.


  • Fix some possible trouble with a single-use license.


  • Update to BARON 15.6.5, which has various bug fixes.


  • Fix a typo in the baron.doc* bundles and add an “INSTALLING” section.

  • Relink the 64-bit Linux version to not require GLIBC 2.14.


  • Fix a rarely seen licensing glitch.


  • Add keywords maxiter and maxtime; expand description of optfile in the “baron -=” output. Recognize comment lines in optfile (starting with #).


  • Improved handling of keyword “numsol”; values > 1 now imply keepsol.