Skip to content

Releases: coin-or/Ipopt

3.14.19

30 Jul 10:34
Compare
Choose a tag to compare
  • Fixed call to getenv_s on Windows, introduced with 3.14.17.
    An invalid use of this call made the Pardiso interfaces unusable on Windows.

The attached Windows builds include the interface to Pardiso from Intel MKL again.
In the debug builds (-mdd), ASL is no longer build in debug mode to work around an exception from a possibly invalid _control87 call (#838).
The archive with the debug builds (-mdd) now includes .pdb files with debug information for Ipopt and Mumps.

3.14.18

28 Jul 15:31
Compare
Choose a tag to compare
  • Restricted workaround for using Pardiso to Intel MKL 2025.0.x. Intel MKL 2025.1.0 has the corresponding issue fixed. [#799]
  • Fixed that Jipopt::finalize_solution did not store final objective value correctly [#820, by Kevin Kofler].
    Instead, the value of the last iterate evaluation was returned, which was often the same.
  • Added IpoptApplication::Version() (C++ interface), GetIpoptVersion (C interface), and Ipopt::GetVersion() (Java interface) to retrieve version of Ipopt library [#824].
  • Fixed possible missing initialization of delta_x and delta_s in PDPerturbationHandler in case ConsiderNewSystem failed [#834].
  • Undefine max if defined after include of windows.h in IpUtils.cpp [#834].
  • Added missing initialization of Filter Acceptor in case restoration phase is called when the fallback mechanism of BacktrackingLinearSearch has been activated [#834,#837].
    If this happened in the first iteration, it led to the use of uninitialized values.
  • Added missing return if symbolic factorization with MA57 (ma57ad, ma57as) failed [#834].
  • Fixed application of scaling when computing violations of inequality constraints in TNLP::get_curr_violations(). Added OrigIpoptNLP::d_space().
  • Fixed signature of call to MKL's Pardiso: the DPARM argument does not exist in this version of Pardiso.

The attached Windows builds do not include the interface to MKL's Pardiso due to an issue introduced with 3.14.17. This will be fixed with the next release and the interface be enabled again.

3.14.17

14 Dec 15:03
Compare
Choose a tag to compare
  • Added Ipopt::RegisterInterruptHandler() and Ipopt::UnregisterInterruptHandler() to IpUtils.hpp to wrap handling of interrupt signals.
    Added parameter checkinterrupt (default false) to AmplTNLP constructor to enable check for interrupt signal in intermediate_callback.
  • The ipopt and ipopt_sens executables and scalable problems C++ examples can now be interrupted by SIGINT/SIGHUP (systems with sigaction()) or SIGINT/SIGTERM/SIGABRT (Windows systems).
  • New option mumps_mpi_communicator to specify the MPI communicator when using an MPI-enabled build of MUMPS [#790, by Alex Tyler Chapman].
  • Updated build system to current autotools versions; initial support for icx/ifx and flang.
  • Removed use of vsprintf and sprintf. Added IpoptData::Append_info_string(std::string,double).
  • Removed use of strcpy, strncpy, strdup, and sscanf.
  • Using fopen_s and getenv_s instead of fopen and getenv, respectively, if available.
  • Added workaround for using Pardiso from Intel MKL 2025.0.1 [#799].
    This requires checking the MKL version at runtime and can be disabled by defining IPOPT_NO_MKLVERSIONCHECK.

3.14.16

22 Apr 12:48
43a6341
Compare
Choose a tag to compare
  • Fixed load of linear solver libraries at runtime on Windows, which was broken for relative paths in 3.14.15 [#759, #760].

3.14.15

10 Apr 13:12
Compare
Choose a tag to compare
  • Fixed include guard of IpGenAugSystemSolver.hpp [#756, by Christopher Wellons].
  • Improved finding dependencies of linear solver libraries loaded at runtime on Windows [#755, by Yue Yang].

3.14.14

18 Jan 03:59
Compare
Choose a tag to compare
  • Fixed build of MA57 interface when FUNNY_MA57_FINT is defined (MA57 with long integers).
  • Fixed that initial dual values for fixed variables (z_L, z_U) were ignored when doing a warm start with fixed_variable_treatment = make_constraint [#728].
  • Fixed that the last argument when calling MA27C[D] in MA27 interface was wrong [#738].

3.14.13

08 Nov 10:43
Compare
Choose a tag to compare
  • Reduced priority for making Spral the default value for option linear_solver [#677].
  • Adapted to change of integer types in Spral interface. Minimal required Spral version is now v2023.03.29.
  • Fixed that return code from TNLP::eval_jac_g() was ignored at first call [#697, by Christoph Hansknecht].
  • Print additional messages when reallocation of MA27 working space failed [#671, by Daniel Oliveira].
  • Added option file_append to specify whether to append to output_file instead of truncating it.
    Added default argument file_append to Journalist::AddFileJournal(), added default argument fappend to FileJournal::Open(), and added default argument file_append to IpoptApplication::OpenOutputFile(). [#720]

3.14.12

05 Apr 09:21
Compare
Choose a tag to compare
  • Fix that a source file was installed and install more header files. [#641, #642, by Joao Sousa Pinto]
  • Fixed crash of GetIpoptCurrentIterate() and GetIpoptCurrentViolations() in C interface when called before or after IpoptSolve(). [#644, #645, by Robbybp]
  • Updated HSL_MA97 header file to the one from HSL MA97 2.8.0 [#646, by Jari Fowkes].
  • Fixed crash when trying to solve problem without variables and constraints. [#648]
  • Added optional argument to AlgorithmBuilder constructor to provide name of custom solver. [#618]
  • Changed handling of dual solution for square problems: When solving a problem with as many equations as variables, Ipopt used to ignore the violation of dual feasibility and complementarity in the convergence check and computed a final dual solution via a least-square estimate. If this failed, Ipopt would claim a square problem to be solved to optimality without providing a solution that satisfies optimality conditions. With this version, the behavior has been changed so that dual feasibility is no longer ignored by the convergence check, the least-square estimate is only computed if optimality is not proven already, and the normal Ipopt algorithm continues if the least-square estimate does not satisfy optimality conditions.
  • Updated HSL_MC86 header file to the one from HSL MC68 3.3.3 [#653, by Jari Fowkes].

3.14.11

07 Feb 04:12
Compare
Choose a tag to compare
  • Added IpoptData::TimingStats() const [#611]
  • Assume DLL library extension in linear solver library loader on Windows also when building with other compiler than MSVC/Intel [#628].
  • Updated buildsystem files after upgrading to most recent versions of autotools.
  • Install some additional header files [#637].

3.14.10

11 Oct 08:16
Compare
Choose a tag to compare
  • Added option grad_f_constant to specify that objective function is linear. If set, the gradient of the objective will be requested by Ipopt only once. [#597]
  • Added OrigIpoptNLP::orig_d_L() and OrigIpoptNLP::orig_d_U() to get original constraint sides (before relaxation due to bound_relax_factor > 0).
  • TNLP::get_curr_violations() now returns the constraint violation and complementarity with respect to the original (non-relaxed) constraint sides. [#603]