3 Here we list changes of Ipopt since the release of version 2.2.0.
4 More detailed information about incremental changes can be found in the
5 [commit history](https://github.com/coin-or/Ipopt/commits).
10 ### 3.14.12 (2023-04-05)
12 - Fix that a source file was installed and install more header files.
13 [#641, #642, by Joao Sousa Pinto]
14 - Fixed crash of GetIpoptCurrentIterate() and GetIpoptCurrentViolations() in
15 C interface when called before or after IpoptSolve(). [#644, #645, by Robbybp]
16 - Fixed crash when trying to solve problem without variables and constraints. [#648]
17 - Added optional argument to `AlgorithmBuilder` constructor to provide name of custom solver. [#618]
18 - Changed handling of dual solution for square problems: When solving a problem
19 with as many equations as variables, Ipopt used to ignore the violation of
20 dual feasibility and complementarity in the convergence check and computed
21 a final dual solution via a least-square estimate. If this failed, Ipopt would
22 claim a square problem to be solved to optimality without providing a solution
23 that satisfies optimality conditions. With this version, the behavior has
24 been changed so that dual feasibility is no longer ignored by the convergence
25 check, the least-square estimate is only computed if optimality is not proven
26 already, and the normal Ipopt algorithm continues if the least-square estimate
27 does not satisfy optimality conditions.
28 - Updated HSL_MC86 header file to the one from HSL MC68 3.3.3 [#653, by Jari Fowkes].
30 ### 3.14.11 (2023-02-07)
32 - Added `IpoptData::TimingStats() const` [#611]
33 - Assume DLL library extension in linear solver library loader on Windows
34 also when building with other compiler than MSVC/Intel [#628].
35 - Updated buildsystem files after upgrading to most recent versions of autotools.
36 - Install some additional header files [#637].
38 ### 3.14.10 (2022-10-11)
40 - Added option `grad_f_constant` to specify that objective function is linear.
41 If set, the gradient of the objective will be requested by Ipopt only once. [#597]
42 - Added `OrigIpoptNLP::orig_d_L()` and `OrigIpoptNLP::orig_d_U()` to get
43 original constraint sides (before relaxation due to bound_relax_factor > 0).
44 - `TNLP::get_curr_violations()` now returns the constraint violation and
45 complementarity w.r.t. the original (non-relaxed) constraint sides. [#603]
47 ### 3.14.9 (2022-07-21)
49 - Fixed mapping of meta data for variable bounds, e.g., variable names,
50 from TNLP to Ipopts internal NLP [#590].
52 ### 3.14.8 (2022-07-13)
54 - Added options ma27_print_level, ma57_print_level, and mumps_print_level
55 to enable output from these linear solvers.
57 ### 3.14.7 (2022-06-24)
59 - Fixed that ComputeSensitivityMatrix() of sIpopt assumed that there are
60 no more than two parameters [#578, by Andrea Vescovini].
61 - For completeness, added option `gradient_approximation` to enable approximation
62 of gradient of objective function by finite differences. Do not use. [#573]
63 - Added function `IPSETPROBLEMSCALING` to Fortran interface to set problem
64 scaling [#577, by Steven R. Hall]
66 ### 3.14.6 (2022-05-02)
68 - Fixed mapping of meta data for inequalities, e.g., constraint names,
69 from TNLP to Ipopts internal NLP [#570, by Daniel Oliveira].
70 - Fixed that MC68 ordering time was not accounted in symbolic factorization
71 time of HSL MA86 [#571].
72 - Include more header files in IpIpoptCalculatedQuantities.hpp for setups
73 where forward declarations are not sufficients [#572].
75 ### 3.14.5 (2022-02-09)
77 - Tried to fix recognition of JNI headers on macOS >= 11 [#516].
78 - Fixed that only primal variable values where passed to `finalize_solution()`
79 when a timelimit was reached [#552].
81 ### 3.14.4 (2021-09-20)
83 - Skip build of Java interface if either java or jar is not found [#510].
84 Only give warning if javac and jar are found, but no java or javadoc.
85 - Fixed that `--with-lapack-lflags` was ignored if `--with-lapack` was not
86 specified explicitly [#512,#515].
88 ### 3.14.3 (2021-09-03)
90 - Fixed timing for iterate initialization if initialization fails due to
92 - Fixed possible integer overflow when reserving space for indices of Jacobian
93 belonging to fixed variables (introduced with 3.14.0) and reduced memory
94 usage for indices of Jacobian belonging to fixed variables.
96 ### 3.14.2 (2021-07-21)
98 - Added `OptionsList::UnsetValue()` to remove an option setting.
99 - Added missing translation of some Ipopt status codes into AMPL solve result codes.
100 - If using the MPI-parallel version of MUMPS: Moved calls to
101 `MPI_Init()`/`MPI_Finalize()` in MUMPS interface into global constructor/destructor
102 of Ipopt library (if building with GCC/clang). Use configure flag
103 `--disable-mpiinit` to disable. [#500]
105 ### 3.14.1 (2021-06-25)
107 - Fixed invalidation of cached Hessians when reoptimizing with same structure.
108 - Added `OptionsList::SetBoolValue()` and `OptionsList::SetBoolValueIfUnset()`. [#492]
109 - Skip check for and link against libdl if linear solver loader is disabled.
110 - Fixed missing initialization of `BacktrackingLineSearch::in_watchdog_`.
111 - Fixed a problem with the current solution not being reset when
112 initialization of a NLP fails in reoptimization.
113 - Fixed that C++11 capability was not correctly identified with MS/Intel compilers.
115 ### 3.14.0 (2021-06-15)
119 - Due to a contribution by Mitchell Clement [#428], it is now possible
120 to build Ipopt in a variant that uses single-precision floating
121 point arithmetic instead of the default double-precision.
122 This can be enabled by specifying the configure flag `--with-precision=single`.
123 Doing so has a number of consequences on Ipopt interfaces and Ipopt dependencies.
124 See the Ipopt installation instructions for more details.
125 - The name of all functions in `IpBlas.hpp` and `IpLapack.hpp` has been
126 changed to drop the precision-specifier "D" in the name.
127 Wrapper using the old names are available, but their use is deprecated.
128 - It is now possible to build Ipopt in a variant that uses 64-bit
129 integers for its `Index` type. This can be enabled by specifying
130 the configure flag `--with-intsize=64`. Doing so has a number of
131 consequences on Ipopt interfaces and Ipopt dependencies. See
132 the Ipopt installation instructions for more details. [#259]
133 - Added new header `IpTypes.h` that defines Ipopt types for integer
134 and real numbers for C users.
135 - Deprecated almost never used type `Ipopt::Int`, use `int` instead.
136 - Deprecated `Number`, `Index`, and `Int` (on global namespace) in
137 `IpStdCInterface.h`, use `ipnumber`, `ipindex`, and `int` instead, respectively.
138 - Deprecated `Bool` in `IpStdCInterface.h` and replaced it by `bool`
139 from `stdbool.h`. Note, that `Bool` was defined to be `int`, but `bool`
140 is likely a shorter type, e.g., `signed char`. Deprecated `TRUE` and
141 `FALSE`, use `true` and `false` instead.
142 - Deprecated `IPOPT_EXPORT` macro and introduced `IPOPT_CALLCONV`.
143 - Deprecated `IPOPT_FORTRAN_INTEGER_TYPE` and `ipfint`. These were
144 always assumed to be `int`. Use `ipindex` or `ipopt::Index` instead.
146 #### Linear Solver Interfaces
148 - Due to a contribution by Byron Tasseff [#446], it is now possible to use
149 the linear solver [SPRAL](https://github.com/ralna/spral) (Sparse Parallel
150 Robust Algorithms Library) with Ipopt.
151 SPRAL is open-source and can, optionally, make use of NVIDIA GPUs.
152 If Ipopt has been build with SPRAL, then option `linear_solver` can be
153 set to `spral` to enable use of SPRAL.
154 See the installation instructions on how to build the Ipopt/SPRAL interface
155 and the options documentation for new options that are available for
156 the Ipopt/SPRAL interface.
157 - Added `IpoptLinearSolvers.h` with function `IpoptGetAvailableLinearSolvers()`
158 to retrieve information which linear solvers are available for Ipopt
159 (linked in or loaded at runtime). Options `linear_solver` and
160 `linear_system_scaling` can now only be set to values which corresponding
161 code is available (linked in or for load at runtime).
162 - Revised and streamlined implementation of feature that loads libraries
163 with HSL or Pardiso routines at runtime. Added options `hsllib` and `pardisolib`
164 to specify name of of HSL and Pardiso libraries, respectively.
165 - Separated interfaces for Pardiso from [pardiso-project.org](https://pardiso-project.org)
166 and Pardiso from Intel MKL and allow to have both Pardiso versions available
167 with the same Ipopt libraries.
168 - Pardiso from pardiso-project.org can be selected via `linear_solver=pardiso`.
169 configure option <b>`--with-pardiso` should now specify only a Pardiso
170 library to be loaded at runtime</b> (the value for `--with-pardiso` decides
171 the default value for option `pardisolib`).
172 To avoid conflicts with Pardiso from MKL, it is **no longer possible to
173 link against Pardiso from pardiso-project.org**.
174 - Pardiso from MKL can be selected via <b>`linear_solver=pardisomkl`</b>.
175 - Options that influence Pardiso from MKL are named <b>`pardisomkl_msglvl`, `pardisomkl_order`, etc.</b>
176 - configure option `--disable-pardisomkl` can be used to disable the check
177 for MKL Pardiso. [#454]
178 - Fixed that return code (`info%flag`) of `ma97_solve()` was not checked
179 in `Ma97SolverInterface::MultiSolve()`.
180 - Calls into MUMPS are now protected by a mutex if compiling for C++11 or higher.
181 This prevents Ipopt from calling MUMPS concurrently from several threads.
182 - An insufficient memory return status is now also given if the memory
183 required for a working space array of a linear solver exceeds the maximal
184 value for the working space length variable, e.g., if MA27 requires a
185 working space array of length higher than 2^31.
186 - Avoid floating point overflow when computing memory increase in interfaces
191 - Changed treatment of NLPs with all variables fixed and `fixed_variable_treatment`
192 set to `make_parameter`:
193 Ipopt will still terminate early, but initialize its data structures
194 first and print a solve summary (49a0d3a56).
195 Changed treatment of NLPs with inconsistent variable bounds or constraint
196 sides: These will now result in an invalid problem definition error (-11)
198 As a consequence, solve statistics should now always be available if the
199 return status from `(Re)Optimize()` is larger than -10.
200 - Bound multipliers are now computed for fixed variables if
201 `fixed_variable_treatment` is set to `make_parameter` (the default).
202 This can trigger a reevaluating of the gradient of the objective
203 function or the Jacobian of the constraint functions. If this
204 is not desired, then option `fixed_variable_treatment` can be set
205 to the new value `make_parameter_nodual`. [#308]
206 - Changed default for `honor_original_bounds` to no.
207 Variable bounds (see option `bound_relax_factor`) are now relaxed
208 by at most the value of `constr_viol_tol`.
209 The solve summary now reports the violation of original bounds
210 and `SolveStatistics::(Scaled)Infeasibilities()` has been extended
211 to report the violation of original variable bounds. [#312]
212 - If Ipopt hits a time or iteration limit during watchdog phase,
213 the iterate from before the watchdog phase is now restored and
214 passed to `finalize_solution`. Note that this does not apply if
215 Ipopt is stopped due to a user-interrupt (`intermediate_callback`).
217 - When `BacktrackingLinesearch` could not find a trial point that
218 provided sufficient progress, it may resort to call the feasibility
219 restoration phase. If, however, the current (scaled) constraint
220 violation was below tol/100, this would result in the infamous
221 "Restoration phase is called at almost feasible point..." abort
222 with status code `Restoration_Failure`. Now, this message has been
223 changed to "Linesearch failed, but no restoration phase or other
224 fall back is available." and the status code to `Error_In_Step_Computation`
225 to better reflect that the linesearch failed and not the restoration
226 phase. Further, the unscaled constraint violation tolerance now
227 needs to be below `constr_viol_tol/10` as well in order to trigger
229 - When a square problem is solved and the restoration phase only succeeded to
230 find a point that is feasible w.r.t. constr_viol_tol, but not w.r.t. tol,
231 then status Feasible_Point_Found is returned now.
233 #### Ipopt interfaces
235 - Added `TNLP::get_curr_iterate()` and `TNLP::get_curr_violations()`
236 to request the current iterate (primal and dual variable values)
237 and primal and dual infeasibility w.r.t. the TNLP. The methods
238 are meant to be called during `intermediate_callback` to inspect
239 the current iterate. The C, Fortran, and Java interfaces have
240 been extended by corresponding functions, too. The hs071 examples
241 have been extended to show use of the new functions. Added test
242 `getcurr` to test new functions. [#382, #451]
243 - Extended the Java interface by the possibility to specify an `intermediate_callback`.
244 - Added flag to `TNLPAdapter::ResortX()` to specify how to handle fixed variables.
245 Added flag to `TNLPAdapter::ResortG()` to specify whether to correct by
246 right-hand-side of equality constraints.
247 Added `TNLPAdapter::ResortBoundMultipliers()` to generate correct duals
248 for fixed variables if `fixed_variable_treatment` is `make_constraint`.
249 Added `TNLPAdapter::GetFullDimensions()`, `TNLPAdapter::GetFixedVariables()`,
250 `TNLPAdapter::GetPermutationMatrices()`, and `TNLPAdapter::GetC_Rhs()`
251 to retrieve more information of the transformation in a `TNLPAdapter`.
252 - Added `TNLPAdapter::ResortBounds()` and deprecated `TNLPAdapter::ResortBnds()`.
253 - `AmplTNLP` constructor and `AmplTNLP::get_options()` now expect to
254 receive a pointer to a `RegisteredOptions` object as well.
255 Previous versions of these methods are still available but deprecated.
256 Using a NULL pointer for the `RegisteredOptions` argument is
258 - `std::overflow_error` exceptions are now caught by Ipopt even if rethrowing
259 of non-Ipopt exceptions is enabled.
263 - Added option `max_wall_time` to specify a wallclock time limit.
264 Added `SolverReturn` code `WALLTIME_EXCEEDED` and `ApplicationReturnStatus`
265 code `Maximum_WallTime_Exceeded`.
266 - Changed default for `max_cpu_time` to 1e20 to indicate no CPU timelimit.
267 - Detailed timing statistics are no longer collected by default.
268 To reenable, set the new option `timing_statistics` to yes or set the
269 option `print_timing_statistics` to yes [#299].
270 - Removed `IpoptData::ResetCpuStartTime()`. Deprecated `IpoptData::cpu_time_start()`,
271 use `IpoptData::TimingStats()::OverallAlgorithm()::StartCpuTime()` instead.
272 - Deprecated `SolveStatistics::TotalCPUTime()`, use `SolveStatistics::TotalCpuTime()`
277 - All Ipopt options are now also available via the AMPL interface,
278 that is, can be set in AMPL via an option `ipopt_options "..."` statement.
279 - Added flag "advanced" for `RegisteredOption` to store whether an
280 option is rather meant for expert users.
281 - Added class `RegisteredCategory` to store information on category
282 of registered option. Next to the name, this is a priority, which
283 determines the order in which categories are printed. As a
284 consequence, methods `RegisteredOption::RegisteringCategory()` and
285 `RegisteredOptions::RegisteringCategory()` now return a
286 `RegisteredCategory` object instead of a string. Further,
287 `RegisteredOption::SetRegisteringCategory()` has been removed.
288 - Deprecated existing `RegisteredOptions::OutputXyz()` methods and
289 added new variant of `RegisteredOptions::OutputOptionDocumentation()`.
290 Added parameter `print_advanced_options` to indicate whether to
291 print documentation for advanced options, too.
292 - Added previously undocumented advanced options to options reference.
296 - Updated buildsystem, including improved checks for dependencies,
297 use of current autotools, and skipping the build of intermediate
298 non-distributed libraries.
299 - Fixed missing initialization of `IpoptApplication::smart_jnlst` in
300 second `IpoptApplication` constructor, if `ipopt verbosity > 0`.
301 - Add GCC format attribute to `Journalist::Printf` functions to enable
302 `printf`-formatter check.
303 - Fixed `DenseVector::SumLogsImpl()` such that it returns 0.0 for
304 a vector of dimension 0. Returned `nan` for homogeneous 0-vector
305 of dimension 0 before, which may have caused the restoration phase to
306 fail for problems with only equality or only inequality constraints.
307 Also other `DenseVector` methods now skip calculations when dimension
308 is 0 to avoid (probably harmless) divisions by zero.
309 - Fixed a problem where moving slack away from 0 did not succeed
310 when mu was very small. [#212]
311 - Fixed a problem where moving slacks away from 0 resulted in `nan`
312 if multipliers were zero. Added `Vector::ElementWiseSelect()`.
313 - Various tiny bugfixes and improvements in performance and code style
314 by following suggestions of `cppcheck`.
315 - Added documentation on some available C preprocessor flags for expert users.
316 - Fixed static build of sIpopt without GCC. Fixed that installed sIpopt
317 headers were not usable (`SIPOPTLIB_EXPORT` not defined).
318 - Fixed wrong gradient of objective function and Lagrangian Hessian in
319 restoration problem [#478, by Nai-Yuan Chiang].
320 - If Ipopt is compiled for checklevel 2 or higher and the GLIBC extension `feenableexcept()`
321 is available, then floating-pointing exceptions divbyzero, overflow, and
322 invalid are raised while `IpoptAlgorithm::Optimize()` is running.
323 - Fixed that norm on unscaled complementarity or scaled complementarity tolerance
324 were negative when maximizing (by using a negative scaling factor for the
326 - Changed formula for relative error in derivative checker. The absolute
327 error is now scaled up if the approximate derivative value is between
328 derivative_test_tol and 1. [#487].
329 - The second-order derivative checker now uses values for obj_factor and
330 lambda that are different from 1.
335 ### 3.13.4 (2021-02-24)
337 - Fixed a linking issue for `ipopt_sens` [#418]
338 - Fixed Makefile for Java example regarding location of jar file
339 - Fixed build of R interface if using `-fvisibility=hidden`.
341 ### 3.13.3 (2020-10-16)
343 - Members of `AmplTNLP` class are now protected instead of private.
344 - Updated Eclipse Public License from 1.0 to 2.0.
345 - Fixed dangling pointer problems with Journalist used for debugging
346 (`--with-ipopt-verbosity > 0`) when more than one `IpoptApplication`
347 is used. [#393, thanks to Brad Bell]
348 - Fixed build problem when using HSL library that does not include
349 MA27, MA57, or MC19. [#395]
350 - Added example `recursive_nlp` that uses Ipopt to solves an
351 optimization problem for the evaluation of the objective function.
352 [contributed by Brad Bell]
353 - Fixed build of linear-solver loader on Windows [#408]
355 ### 3.13.2 (2020-04-30)
357 - The C-preprocessor defines `COIN_IPOPT_CHECKLEVEL`,
358 `COIN_IPOPT_VERBOSITY`, and `FORTRAN_INTEGER_TYPE`, which are defined
359 by `IpoptConfig.h`, have been renamed to `IPOPT_CHECKLEVEL`,
360 `IPOPT_VERBOSITY`, and `IPOPT_FORTRAN_INTEGER_TYPE`, respectively.
361 They are still available under their previous name, but these
362 will be removed in Ipopt 3.14.
363 - Changed dependencies as used by coinbrew to use new versions (2.1)
364 of ThirdParty/HSL and ThirdParty/MUMPS and dropped ThirdParty/Metis.
365 The new versions of the HSL and MUMPS build scripts now look
366 for a Metis library in the system and should work with both
368 - Changed location where Java interface jar gets installed from
369 `$libdir` to `$datadir/java/`.
370 - minor fixes to buildsystem
372 ### 3.13.1 (2020-03-11)
374 - Added asserts that check whether sparsity pattern of Jacobian
375 and Hessian as returned by TNLP are within range w.r.t. number
376 of variables and constraints. [#350]
377 - `TNLPAdapter::ResortBnds` now initializes complete output arrays
378 with 0.0 before filling in values for non-fixed variables. Use
379 new argument `clearorig` to turn this off. [#352]
380 - bring back configure variables `ADD_{C,CXX,F}FLAGS`
381 - added configure option `--enable-relocatable` to make prefix in
382 pkg-config files relative to pcfiledir (assuming that `--libdir`
384 - bring back `configall_system.h` for build without config header
385 - minor fixes to buildsystem
387 ### 3.13.0 (2019-10-19)
389 This major release comes with a larger renovation of the build
390 system and a changed directory structure (eliminated top directory),
391 which is the result of a long and still on-going effort to use
392 recent autotools versions for various COIN-OR projects, reduce
393 future maintenance efforts, and adapting behaviors of standard
394 autotools-based projects.
395 As a consequence, a monolithic build of Ipopt, which builds Ipopt
396 with all its dependencies in one run of configure and make is no
397 longer possible. Dependencies should now be build and installed
398 before building Ipopt.
399 Additionally, support for some outdated versions of dependencies
400 and unmaintained components of Ipopt has been dropped and some
401 improvements that may require changes on the users side have been
404 A more detailed, probably incomplete, list of changes follows:
405 - Removed git submodules. Dependencies (HSL, Mumps, ASL, etc) now
406 need to be build and installed in advance, either manually or
408 - Dropped support for HSL < 2013.
409 - Dropped support for MA28 in the linear solver loader.
410 - Dropped support for Pardiso < 4.0 from pardiso-project.org.
411 - Added support for Mumps 5.2.x, though initial experiments on
412 CUTEst indicated that, on average, performance is worse than
413 when using Mumps 4.10.0.
414 - Dropped CUTEr interface, the successor CUTEst includes an
416 - Dropped Matlab interface as it is unmaintained and it was
417 reported that it stopped functioning.
418 Use https://github.com/ebertolazzi/mexIPOPT instead.
419 - Dropped MSVS project files as unmaintained and not functioning
420 with current Ipopt anymore.
421 - Integrated Java interface into the main Ipopt library, that is,
422 it is handled equivalently to the C and Fortran interfaces:
423 - The source moved into `src/Interfaces`.
424 - The JNI functions are now included in the main Ipopt library,
425 thus an extra jipopt library is no longer build or necessary.
426 - The Java class and `org.coinor.ipopt.jar` package are build and
427 installed as part of the main Ipopt build.
428 - The examples moved into `examples/*_java`.
429 - A Java interface test is executed by `make test`.
430 - To build javadoc, run `make javadoc` in the main build directory.
431 - The configure flag `--disable-java` can be used to disable the
432 check for Java and build of the Java interface.
433 - `DLLPATH` and `DLLNAME` have been removed from the Ipopt class and
434 constructors that works without arguments and with only one
435 argument (specifying the Ipopt library namestem) have been added.
436 - Method `Ipopt::finalize` has been marked as deprecated and will
437 be removed in some future Ipopt version. Users must call
438 `dispose()` explicitly.
439 - Integrated sIpopt into the main Ipopt build, that is, it is now
440 build together with Ipopt, but installed as separate library
441 and executable. Use `--disable-sipopt` to disable building sIpopt.
442 - `IPOPT_THREAD_LOCAL` now uses C++11's `thread_local` keyword if C++11
444 - When using a GCC-compatible compiler, Ipopt and sIpopt interface
445 functions are now declared with `visibility(default)`-attribute,
446 thus building Ipopt with `-fvisibility=hidden` still produces a
448 - When using a MSVC-compatible compiler, Ipopt and sIpopt interface
449 functions are now declared with `dllimport`-attribute, so that an
450 Ipopt C++ DLL can be used.
451 - Under Windows/Msys2, DLLs are now build by default.
452 - Cygwin and MSys1 are not supported.
453 - pkg-config is now mandatory to use dependencies like ASL or HSL.
454 On Windows, make sure to use a pkg-config version that produces
456 - Script "`compile`" is now used to wrap around calls of cl/icl/ifort
457 and translate GCC-style compiler flags to MSVC style.
458 - "Addlibs" files have been removed, pkg-config should be used instead.
459 - Header files are now installed in the better named
460 `$prefix/include/coin-or` instead of `$prefix/include/coin`.
461 - The default for `--prefix` is no longer the build directory, but
462 the autotools-default, probably `/usr/local`.
463 - The check for a Fortran compiler can be disabled via `--disable-f77`
464 and Ipopt can easier be build without a Fortran compiler.
465 - Lapack is no longer optional, but required. The separate check
466 for Blas and the `--with-blas` flags have been removed.
467 - `--enable-debug` does not imply `--disable-shared` anymore.
468 - Removed `--enable-debug-ipopt`, use `--enable-debug` instead.
469 - Removed configure variables `{ADD,OPT,DBG}_{C,CXX,F77}FLAGS`.
470 Use `{C,CXX,F77}FLAGS` instead.
471 - Silent build output is now enabled by default, use configure
472 flag `--disable-silent-rules` or call make with `V=1` to disable.
473 - Also for static builds, PIC objects are now generated by default,
474 use `--without-pic` to disable.
475 - The `--with-*-incdir` and `--with-*-lib` configure flags have been
476 replaced by corresponding `--with-*-cflags` and `--with-*-lflags`
477 flags. Note that the include directories need to be specified
478 via `-I<dir>` in `--with-*-cflags`.
479 - Fixed handling of `ma77_default_control` in `LSL_setMA77()`.
480 - Fixed calculation of quality function when setting option
481 `quality_function_centrality` to `reciprocal`.
482 - Fixed compiler warnings, in particular when using `-Wunused-parameter`.
483 - Changed default for `ma97_print_level` to -1. This avoids messages
484 about numerical singular systems written to stdout by default.
488 ### 3.12.13 (2019-04-08)
490 - fixed Pardiso settings when using Pardiso from Pardiso project
491 website (by Olaf Schenk): the new settings should provide much
492 better performance; the default for option `pardiso_order` changed
493 from `five` to `metis`.
494 - changed distinction of MKL and Basel Pardiso in configure: to
495 use MKL Pardiso, only specify MKL for Blas; to use Basel Pardiso,
498 ### 3.12.12 (2018-11-17)
500 - allow for `--without-matlab-home` to disable check for Matlab [r2748]
501 - add `dppsv` to `v8-ifort` [r2746]
502 - disable error in `LibraryHandler.c` if `snprintf` detection failed [r2751]
504 ### 3.12.11 (2018-09-16)
506 - fill MUMPS struct with zeros when allocating in MUMPS interface [r2724]
507 - minor fix in build-system of ThirdParty/ASL
509 ### 3.12.10 (2018-06-02)
511 - fixed setting for parallel solve when using MKL Pardiso
512 (by t1393988511) [r2711]: parallel solve was disabled (which
513 is not the default); note, that the setting for parallel
514 factorization was not affected
515 - fixed invalid read in AMPL interface for problems without
516 objective function [r2715, #305]
517 - updated ThirdParty/ASL to retrieve updated ASL (20180528) [#305]
518 - name JIpopt library `libjipopt.dylib` on Mac OS X [r2718, #275]
520 ### 3.12.9 (2018-01-15)
522 - fixed memory leak in MA86 interface (by mhahn) [r2700,#283]
523 - fixed handling of time limit when reoptimizing: CPU time spend
524 was accumulated when reoptimizing, while it should have been
525 reset for each solve (by paul-scott) [r2702,r2703]
526 - fixed sign in Jacobian finite-difference approximation when point
527 was close to variable upper bounds (by Enrico Bertolazzi) [r2704]
529 ### 3.12.8 (2017-06-12)
531 - add define for `FORTRAN_INTEGER_TYPE` to `config_ipopt_default.h`
532 - `IpoptApplication::RethrowNonIpoptException()` now returns whether
533 non-ipopt exceptions were rethrown before the method was called.
535 ### 3.12.7 (2017-02-25)
537 - removed compiler flag `-pedantic-errors` to avoid problems with some
538 configure tests when using recent GCC versions
539 - fixed rare bug in handling variable/constraint names in `AmplTNLP`
540 (by G. Hackebeil) [r2673]
541 - the `get.Mumps` script in ThirdParty/Mumps now renames `libseq/mpi.h`
542 to `libseq/mumps_mpi.h` to avoid conflicts when building in a MPI
543 environment (by T. Ralphs); note that if updating an existing
544 checkout/download of Ipopt, you may have to rerun get.Mumps
546 ### 3.12.6 (2016-07-20)
548 - better support for custom algorithm development [r2659] (by Gabriel Hackebeil):
549 "Reorganization of the `AlgorithmBuilder` class to allow easier
550 customization of the Ipopt algorithm. In particular, we wanted to
551 make use of the code that creates the `SymLinearSolver` object to
552 implement our own `SymLinearSolver` without copy-pasting everything
554 `AlgorithmBuilder::BuildBasicAlgorithm` now consists of 8 method calls
555 that build the core components passed into the arguments of the
556 `IpoptAlgorithm` class. These calls are ordered based on any dependencies
557 they might have. In addition, all code for creating the `PDSystemSolver`,
558 `AugSystemSolver`, and `SymLinearSolver` has been moved into separate factory
560 Also, included is a change to install a few more header files with Ipopt.
561 Some of these are required to subclass AlgorithmBuilder, and the others
562 are simply some matrix types that we require."
563 - extend build system to work without Fortran compiler [r2660,r2661]:
564 If no Fortran compiler is available (`F77=unavailable`), then
565 the build system checks for functions in Blas, Lapack, and
566 Pardiso via C linkage. This seems to work when using the Intel MKL,
567 thus allowing to build Ipopt with C/C++ compilers and MKL only.
568 The linear solver loader and the CuteR interface are disabled when
569 no Fortran compiler is available. A user may have to adjust the
570 definition of `F77_FUNC` in `Ipopt/src/Common/IpoptConfig.h`.
572 ### 3.12.5 (2016-04-30)
574 - changed `fptr` from `long` to `void*`: the Fortran side needs to
575 make sure that it uses a big enough integer type to store a
576 C pointer, thus `void*` can be used on the C side [r2599]
577 - added additional second-order-correction method, which can be
578 selected by setting the new option `soc_method` to 1 (by Wei Wan)
580 - added parameter `allow_clobber` with default value false to
581 `IpoptApplication::Initialize()` and `OptionsList::ReadFromStream()`
583 ### 3.12.4 (2015-08-09)
585 - option to use regularized Hessian when doing a curvature test
586 without inertia information (`neg_curv_test_tol` > 0), new
587 option `neg_curv_test_reg` to switch back to original behavior
588 (by N.-Y. Chiang and V. Zavala Tejeda) [r2579]
589 - sIpopt: Added access to sensitivity directional derivative
590 vector (`ds/dp*(p-p0)` Eq. 14 sIpopt implementation paper). Also,
591 added an option to compute the sensitivity matrix and provide
592 access to it. Finally, added an example that shows how to
593 access the new information. (by R. Lopez-Negrete)
594 - use workaround for failing check for random number generator
595 with any gcc 4.8.x, x >= 2
597 ### 3.12.3 and 3.11.11 (2015-04-15)
599 - fixed bug in MA97 interface that lead to conversion issues
600 (by J. Hogg) [r2566, #260]
602 ### 3.12.2 (2015-04-04)
604 - revised integration of doxygen-generated documentation into build system
607 ### 3.12.1 (2015-02-13)
609 - fixes to build system for dependency linking and library versioning
610 - Ipopt will now report an NLP with inconsistent variable bounds
611 or inconsistent constraints sides as infeasible instead of
612 throwing an invalid TNLP exception (by T. Kelman) [r2548]
614 ### 3.12.0 (2015-01-23)
616 - Library dependencies are now recorded in shared library builds,
617 which is intended to simplify linking against the Ipopt library.
618 However, the pkg-config and `ipopt_addlibs` files do not reflect
619 this change yet (it is rather experimental, imho). To restore
620 the previous behavior, use `--disable-dependency-linking` as
622 - If linking against Intel MKL for Blas/lapack, use of Pardiso
623 from MKL is now automatically enabled. Note, that this will
624 change the default solver on Ipopt builds without any of the
625 linear solvers MA27, MA57, MA97, and MA86 (these take preference
626 over Pardiso). [#216]
627 - dropped support for old HSL sources (<2013; ThirdParty/HSLold)
628 - updated ASL sources, now downloaded from AMPL-MP (github)
629 - some internal changes to data structures (improved use of compound
630 component spaces) and addition of `IpLapackDppsv` (by Gabe Hackebeil)
634 ### 3.11.10 (2015-01-18)
636 - fix a memory allocation in Java interface in cases where `jint`
637 has a different size than `int` [r2513]
638 - the buildsystem now tries the `Accelerate` framework instead of
639 `vecLib` for finding Blas/Lapack on MacOS X
641 ### 3.11.9 (2014-08-16)
643 - fix compilation issue of Java interface on systems where `Index`
644 and `jint` have different size [r2498, #241]
645 - work around failing check for random number generator with gcc
647 - readded `IpTaggedObject.cpp` to list of sources to compile in
648 MSVS `v8-ifort` project file [r2492]
649 - work around missing support for thread-local storage with gcc < 4.5
650 on MacOS X [r2491, #243]
651 - fix call to MKL Pardiso init function [r2489]
652 - speed up Triplet to CSR converter [r2487, #234]
653 - fixed a bug in equilibration scaling where average values were
654 computed incorrectly (by V. Zverovich) [r2483]
656 ### 3.11.8 (2014-04-08)
658 - fixed a bug, introduced with Ipopt 3.11.0, where the tag in the
659 Ipopt's caching mechanism was not unique over time, which lead
660 to failures of Ipopt that were difficult to debug or recognize
661 (e.g., Ipopt may have stopped with an restoration failure for
662 instances that solved fine with Ipopt 3.10) [r2472, r2473]
663 I'm very thankful to Gabriel Hackebeil and Kurt Majewski for
664 their debugging effort on this issue.
665 - building Mumps with pthreads is now disabled by default [#229]
666 - fixed setting of `LD` on Windows (now set to link only iff using
667 MS/Intel compilers) [#230]
668 - fixed download link for Gnumex [r2471]
669 - for some messages about too-few-degrees-of-freedom and restoration
670 failure, the message level changed from error to strong-warning
672 - revised calls to `MPI_Init` and `MPI_Finalize` in MUMPS interface [r2467]
673 (`MPI_Init` is now called only if function `MPI_Initialized` is available
674 and MPI has not been initialized already; `MPI_Finalize` is only called
675 if Ipopt also called `MPI_Init`; ...)
677 ### 3.11.7 (2013-12-18)
679 - adapted PARDISO parameters when using MKL PARDISO to be close
680 to using Basel PARDISO
681 - added options `pardiso_max_iterative_refinement_steps` and
682 `pardiso_order`; the former defaults to 1 in case of MKL PARDISO,
683 which may help on instances that otherwise fail due to numerical issues
684 - removed duplicate code in `IpQualityFunctionMuOracle.cpp` [#225, r2445]
685 - fixed bug in triplet to csr converter [#226, r2446]
686 - minor changes in buildsystem
688 ### 3.11.6 (2013-11-16)
690 - updates to Matlab Interface build system (by T. Kelman)
691 - fix to updates of R Interface [r2416, #223]
692 - fixed `SHAREDLIBEXT` in `v8-ifort`'s `config.h` [r2426, #224]
693 - minor fixes to the buildsystem
695 ### 3.11.5 (2013-10-26)
697 - added method `IpoptApplication::RethrowNonIpoptException()` to enable
698 rethrowing of non-ipopt and non-`bad_alloc` exceptions catched in
699 the `*Optimize()` and `Initialization()` methods; default is still to
700 return with `NonIpopt_Exception_Thrown` status
701 - minor fixes to the buildsystem [#215, #222]
703 ### 3.11.4 (2013-09-12)
705 - hopefully fixed non-working linear solver loader in DLLs build with
706 MSVS/`v8-ifort` project files [r2365]
707 - allow MC19 to be loaded via linear solver loader (by J. Currie) [r2366]
708 - fixed new point flag when running dependency detector [r2368]
709 - experimental: adapt Pardiso interface to work with MKL Pardiso
710 (by J. Currie, T. Kelman) [r2369, #216]:
711 - in a few tests it has been found that Pardiso from Intel MKL nowadays
712 seems to work fine with Ipopt
713 - to use Intel MKL with Ipopt 3.11, one has to specify the MKL libs via
714 `--with-pardiso` and add `-DHAVE_PARDISO_MKL -DHAVE_PARDISO_PARALLEL`
715 to the compiler flags
716 - note that this is still an experimental feature (and thus not enabled
718 - updated Ipopt/R interface to version 0.8.4 [r2373]
719 - additional variables have been included in the object returned from `ipoptr`:
720 - `z_L`: final values for the lower bound multipliers
721 - `z_U`: final values for the upper bound multipliers
722 - `constraints`: final values for the constraints
723 - `lambda`: final values for the Lagrange multipliers
724 - removed `ipoptr_environment` as argument in `ipoptr` (see also r2372)
725 - fixed bug in penalty term for centrality in quality function (not used by
726 default) [#219, r2374]
727 - minor bugfixes in AMPL interface, debug print statements, and compound matrix
728 (by G. Hackebeil) [#218, r2371, r2377, r2378, r2379]
729 - download scripts for ASL, Blas, and Lapack now first try to download tarball
730 copies from the COIN-OR server
732 ### 3.11.3 (2013-08-08)
734 - `get.*` scripts for ThirdParty/{ASL,Blas,Lapack} now work around broken
735 ftp access to www.netlib.org.
737 ### 3.11.2 (2013-07-01)
739 - changed default for option `option_file_name` to `ipopt.opt`; specifying an
740 empty string for this option now disables reading of an option file [r2339]
741 - missing initial values are now set to 0.0, projected onto variable bounds,
742 in AMPL interface [r2340, #205]
743 - fixed missing variable initialization in MA97 interface [r2341, #206]
745 ### 3.11.1 (2013-06-14)
747 - the setup for the `v8-ifort` MSVS project changed to use dynamic runtime
748 DLLs instead of static linking, which caused crashes in debug mode
749 (by M. Roelofs) [r2301]
750 - fixed memory leaks in Java Interface (by javier) [#200, r2312]
751 - updates and fixes to MA77 and MA87 interfaces, adding support of
752 HSL 2013 codes (by J. Hogg);
753 HSL 2012 still supported when compiled with Ipopt, but the linear solver
754 loader to dynamically load a HSL library at runtime now assumes HSL 2013
755 - added option `ma97_solve_blas3` (by J. Hogg) [r2329]
756 - changed default for option `ma27_meminc_factor` from 10.0 to 2.0 [r2330]
757 - fixed bug in `ipopt_auxdata` of MATLAB Interface related to `iterfunc` [r2325]
759 ### 3.11.0 (2013-05-07)
763 - update and extension of Ipopt documentation
764 - updated build of doxygen-generated documentation to comply with other
766 - localized global variables in `TaggedObject` and `RegisteredOption`,
767 so that Ipopt should now be threadsafe as long as Ipopt objects
768 (esp. `SmartPtr`'s) are not shared between threads and a threadsafe
769 linear solver is used (e.g., MA27) [#167]
770 - no more need for whitespace character at end of options file
771 - added options `print_frequency_iter` and `print_frequency_time` to regulate
772 which iteration summary lines should be printed [#161]
773 - function evaluation timings are now available in `OrigIpoptNLP` [#86]
774 - some fixes to uncommon issues with the Ipopt `SmartPtr` [#162]
776 #### Linear Solver Interfaces
778 - new build system for Harwell codes (ThirdParty/HSL), which requires
779 the coin-hsl archives from http://www.hsl.rl.ac.uk/ipopt/;
780 previously downloaded HSL sources can still be used by placing them
781 into ThirdParty/HSLold, but this option will be removed in a future
783 - new interfaces for Harwell codes HSL_MA77, HSL_MA86, and HSL_MA97;
784 see http://www.hsl.rl.ac.uk/ipopt/ about help on when to use which solver;
785 especially MA57 and HSL_MA97 should be considered as replacement for MA27;
786 however, MA27 is still the default for now
787 - changed default of `ma57_automatic_scaling` to `no` (faster in general,
788 but for higher reliability, you may want to set this option to yes)
790 #### Ipopt Interfaces
792 - major improvements for building the MATLAB interface (see documentation)
793 - MATLAB interface now returns number of function evaluations, too
794 - the MA57 interface can now be used with the MA57 library that comes with
795 MATLAB (configure option `--enable-matlab-ma57`; cannot use Metis)
796 - `auxdata` is now handled by a wrapper function `ipopt_auxdata.m` instead
797 of internally within the MEX code (replace Matlab call to `ipopt` with
798 `ipopt_auxdata` if using auxiliary data in any callbacks) [r2282]
799 - exposed more intermediate Ipopt information to `iterfunc` callback [r2283]
801 - fixes to JIpopt buildsystem (now may work on windows and uses libtool)
802 - JIpopt now reads options file `ipopt.opt` by default, if present
803 - removed predefined `KEY_` strings in JIpopt
804 - renamed API functions that retrieve solution values in JIpopt
806 - simplified installation of R interface
810 ### 3.10.4 (2013-05-05)
812 - fixed sign of dual values in AMPL solution again (with help of Gabe)
813 [r2169, r2170, r2184, #183]
814 - fixed bugs with reoptimizing a TNLP with all variables fixed [r2172, r2173, #179]
815 - fixed more issues with sparse data structures and non-double numbers
816 in Matlab interface (by T. Kelman) [r2191]
817 - added missing `final int` for Ipopt return code `Maximum_CpuTime_Exceeded`
818 in Java interface [r2216]
819 - fixed bug when trying to warmstart Ipopt in Java interface [r2253]
820 - fixed wrong use of `SmartPtr`'s in Java interface [r2255, r2263]
821 - fixed bug in returning final solution in Java interface [r2258]
822 - included patch in ThirdParty/Mumps to work around bugs in Mumps
823 matrix ordering routines AMF and QAMD (now give preference to AMD and METIS)
825 ### 3.10.3 (2012-11-19)
827 - minor fixes in MA86 interface (by Jonathan Hogg) [r2069, r2086]
828 - fix in `IpTripletToCSRConverter` for CSR forms with
829 extra entries (by Jonathan Hogg) [r2087]
830 - workaround problems with Mac OS X Lion's blas library
831 (by Frederic Hetch) [r2102, #181]
832 - the C interface now catches also Ipopt exceptions thrown
833 within the `OptimizeTNLP` call and returns `Ipopt::Unrecoverable_Exception`
834 as status [r2094, #144]
835 - fixed segmentation fault in adaptive barrier parameter update rule
836 when using the mehrotra option on unconstrained problems [r2114, #114]
837 - fixed segmentation fault in case no iterate is available in case of
838 catastrophic failure in restoration phase [r2115]
839 - fixed default for `mumps_dep_tol` to work with current Mumps versions [r2116]
840 - fixed sign of dual values in AMPL solution [r2123, #183]
841 - fixed issue with sparse gradients in Matlab interface
842 (by T. Kelman) [r2133, #187]
843 - sIPOPT (by H. Pirnay):
844 - starting values in C++ version of parametric example now
845 match AMPL version [r2098]
846 - numerical values in parametric example now match publication [r2099]
847 - added options `n_sens_steps` and `sens_boundcheck` as AMPL options [r2099]
848 - any non-zero suffix value is now accepted for `sens_init_constr` [r2100]
849 - fix typo in AMPL interface (by Weifeng Chen) [r2110]
850 - fix bug when compiling without AMPL interface [r2113]
852 - updated instruction on using nowadays HSL sources (by T. Kelman)
853 - fixed issue with libdir being `<prefix>/lib64`
856 ### 3.10.2 (2012-02-12)
858 - updates to HSL interface (by Jonathan Hogg):
859 - MC68 can now be loaded dynamically, too
860 - MA86 exploits built-in scaling
861 - MA86 can choose best ordering from AMD and Metis
862 - fix for return code of MA86 for singular matrices
863 - corrected computation of Upsilon (norm of step SQUARED)
864 - updates to MSVS `v8-ifort` project files and addition of vc10
865 project files (using vc8-generated `IpoptFSS.dll`) (by Marcel Roelofs)
866 - minor bugfixes, include updates in BuildTools
868 ### 3.10.1 (2011-09-20)
870 - include updates in BuildTools, including new ThirdParty/Metis
871 (fix for URL to download Metis 4.0.3 release)
872 - linear solver loader prints error code when failing to load
873 library under Windows
874 - message on failure when reallocating memory in Mumps now includes
875 size of memory that was tried to be allocated
876 - added missing include of `cstdio/stdio.h` in `IpJournalist.hpp`
877 - minor fixes to build system
879 ### 3.10.0 (2011-06-20)
881 - move to new COIN-OR configuration and installation convention
882 - primal infeasibility output is now true infeasibility in original
887 ### 3.9.3 (2011-04-07)
889 - include updates in BuildTools, including new ThirdParty/Metis
890 (required to work with current metis release)
892 ### 3.9.2 (2010-12-22)
894 - converted from Common Public License to Eclipse Public License
895 - some bugfixes from BuildTools
897 ### 3.9.1 (2010-11-26)
899 - improved Hessian update for restoration phase
900 - added intermediate callback feature to C and Fortran interface
902 ### 3.9.0 (2010-11-05)
904 - switching to new BuildTools system
905 - added R interface (contributed by Jelmer Ypma)
906 - updates in AsNMPC (by Hans Pirnay)
910 ### 3.8.3 (2010-06-29)
912 - restated `SolveStatistics::TotalCPUTime` method for backward
915 ### 3.8.2 (2010-06-16)
917 - uses MUMPS version 4.9 and Lapack version 3.2.1
918 - added AsNMPC contribution made by Hans Pirnay
919 - enhanced MA57 options
920 - several bug fixes and minor additions
922 ### 3.8.1 (2009-10-30)
924 - Bugfix in NLP function evaluation timing measurement. The
925 time for the objective function gradient had been forgotten.
927 ### 3.8.0 (2009-10-30)
929 - Added MSVC solution with Intel Fortran compiler to generate DLLs
930 (contributed by Marcel Roelofs). To make this work, a lot of methods
931 in exported headers have been made virtual
932 - changed default convergence tolerance in restoration phase (now same
933 as regular tolerance)
934 - output is flushed after each iteration
938 ### 3.7.1 (2009-10-06)
940 - bugfix for square problems
941 - correct timing information (obj gradient was forgotten)
942 - flush output buffer after each iteration
943 - first code for iterative WSMP version (experimental and undocumented)
945 ### 3.7.0 (2009-07-16)
947 - a number of fixes (including those from 2009 COIN-OR Bug Squashing Party)
948 - changes in some exposed header files to provide access to internal
949 data structures for specific applications
953 ### 3.6.1 (2009-05-01)
955 - minor corrections in tutorial files
957 ### 3.6.0 (2009-04-29)
959 - new Matlab interface
960 - added new option to limit cpu time: `max_cpu_time`
961 - added ThirdParty directory for Metis to be used with MUMPS or MA57
962 - updated CUTEr Makefile to make it work with CUTEr2
963 - added files for a tutorial (including coding exercise)
967 ### 3.5.5 (2009-01-13)
969 - minor fixes regarding compilation
970 - undocumented version of inexact method
972 ### 3.5.4 (2008-09-29)
974 - changed to MUMPS version 4.8.3 in externals (Mumps developers
975 seem to have removed 4.8.1).
977 ### 3.5.3 (2008-09-19)
979 - changed back to MUMPS version 4.8.1 since there seem to be issues
982 ### 3.5.2 (2008-09-18)
984 - changed to latest version of MUMPS (4.8.2)
985 - some bugfixes (linear algebra objects, automatic problem scaling)
986 - made sure the subversion revision number is correct in all files
987 - allowed general additional data and cq in `IpData` and `IpCq`
989 ### 3.5.1 (2008-08-26)
991 - changed to latest version of MUMPS (4.8.1)
993 ### 3.5.0 (2008-08-25)
995 - added `ComputeRowAMax` and `ComputeColAMax` methods to Matrix base class
996 - changed externals for MUMPS to stable/1.1
997 - call `finalize_solution` in more failure cases
998 (this means that AMPL writes .sol file in more situations)
999 - added `IpTNLPReducer` as simple way to exclude constraints from problem
1000 - several fixes, also from COIN-OR Bug Squashing Party 2008
1004 ### 3.4.2 (2008-07-18)
1007 - added wallclock time routine
1008 - penalty function version does no longer crash if it
1009 wants to go to restoration phase (not that this really helps
1012 ### 3.4.1 (2008-05-30)
1015 - deleted `v9` MSVC files again (since `v8` works fine for `v9`)
1016 - print Ipopt version in default print level
1017 - added option that allows to change name of options file
1018 (`option_file_name`)
1020 ### 3.4.0 (2008-04-25)
1022 - added support to dynamically load HSL or Pardiso:
1023 If Ipopt has been compiled without some HSL or Pardiso solver,
1024 it can now load those solvers from a shared library at runtime
1025 without recompilation. This will make distribution of binaries
1026 easier. Does not work on all platforms yet.
1028 - ensured compilation of MSVS project files (`v8` and `v9`)
1029 - new special return code for square problems
1030 (`Feasible_Point_Found` returned if dual inf not small)
1031 - new initialization option for bound multipliers
1032 (see option `bound_mult_init_method`)
1033 - added simple penalty function line search option
1034 (`line_search_method=penalty`) - not guaranteed to converge, see
1035 Ipopt implementation paper (in MathProg)
1036 - some very basic method to approximate constraint Jacobian by
1037 finite differences (not efficient, but will hopefully be extended)
1041 ### 3.3.5 (2008-02-28)
1043 - corrected links for Ipopt mailing list
1044 - added missing `Makefile.in` for Matlab interface
1045 - the `addlibs*` files are now installed in `share/doc/coin/Ipopt`
1047 - updates in Matlab interface
1048 - bugfix for ticket #56
1050 ### 3.3.4 (2007-12-27)
1052 - headers are now installed in `include/coin` (no longer in `include/ipopt`)
1053 - default for `dual_inf_tol` is now 1 (instead of 1e-4)
1054 - In matlab interface, here the text from Peter Carbonetto:
1055 There have been several significant changes made to the MATLAB interface
1056 since the last release. The most important two changes are:
1057 1. Following the "warm start" feature of IPOPT, you may pass in initial
1058 estimates for the Lagrange multipliers.
1059 2. Callback routines for computing the objective, gradient (etc.) are now
1060 specified using function handles instead of strings.
1061 (Thanks to Marcus Brubaker at the University of Toronto for the initial suggestion.)
1063 ### 3.3.3 (2007-09-25)
1065 - minor changes, bug fixes
1067 ### 3.3.1 (2007-06-20)
1069 Synchronized with all changes in trunk; probably more than to be
1070 remembered. In the following a few:
1071 - support for Mumps linear solver (contributed by Damian Hocking)
1072 - `--print-options` flag for ipopt ASL solver executable to see all
1073 Ipopt options (available through `ipopt.opt` file)
1074 - added Matlab interface (contributed by Peter Carbonetto)
1075 - added support for `f2c` compiler to compiler Fortran code with
1077 - new MSVS support (now within MSVS project and also with `f2c`)
1078 - a number of small changes/bug fixes/improvements
1079 - small change in interface (e.g., `FinalizeSolution` method)
1083 ### 3.2.4 (2007-04-24)
1085 - updated download script for Blas to fit netlib's recent changes
1086 - using a more recent version of BuildTools
1088 ### 3.2.3 (2006-11-29)
1090 - updated download script for Lapack to fit to netlib's recent changes
1092 ### 3.2 r795 (2006-10-11)
1094 - Bugfix in L-BFGS update
1095 - fix in configure with detection of `sizeof(int*)` on Cygwin
1097 ### 3.2.1 (2006-07-14) - dev release number 764
1099 - Bugfix in least square multiplier estimate.
1100 It mainly showed up in LBFGS with restoration phase as seg fault
1102 ### 3.2.0 (2006-07-07) - dev release number 757
1104 - changed installation procedure and directory structure to
1105 conform with new COIN-OR convention
1109 ### 3.1.0 (2006-04-08) - dev release number 714
1111 Several bug-fixes, improvements and additions. In particular:
1112 - new quasi-Newton approximation using L-BFGS
1113 - interfaces to linear solver MA57, WSMP, Pardiso
1114 (MUMPS and TAUCS not yet completed)
1115 - derivative checker
1117 - configure supports compilation under Cygwin with native Windows compilers
1119 - user call-back method in TNLP
1123 ### 3.0.1 (2005-12-04)
1125 - Several corrections to Windows files
1126 - Fix termination if number of iterations is exceeded in restoration phase
1128 ### 3.0.0 (2005-08-26) - dev release number 510
1130 - First official release of the new C++ implementation of Ipopt.
1134 ### no new release (2005-08-19)
1136 - corrected detection of BLAS libraries for SUN (make sure the example Makefiles work)
1137 - upgrade LICENSE file to CPL version 1.0 as retrieved from www.opensource.org
1139 ### 2.2.1e (2005-05-30)
1141 - fixed sign of multipliers returned to AMPL
1142 (bug reported by Rhoda Baker and Karsten Theissen)
1143 - switched to automake 1.9.5
1145 ### no new release (2005-01-07)
1147 - bugfix for the limited memory BFGS in case of square problems
1148 (bug reported by Wanhe Zhang and Ned Nedialkov)
1150 ### 2.2.1d (2004-10-05)
1152 - Added `outlev` as an option to the AMPL solver as a synonym for `iprint`
1153 - For `iprint` = 0, the output lines per iteration are now suppressed
1154 - corrected two bugs in `configure` script (test for size of `long` etc
1155 before Fortran libraries as added to `LIBS`; prevent cycling in
1157 - internally renamed subroutine `ERROR` to `OPTERROR` (`ERROR` had a
1158 name clash for some Fortran compiler)
1159 - avoid uninitialized variable in `update_b_lm.f`
1160 - minor correction in computation of residual in `get_step_full.F`
1161 - minor change for slack correction in `filter.F`
1163 ### 2.2.1c (2004-07-20)
1165 - corrected bug leading to very small `QTAU` in rare circumstances
1167 ### 2.2.1b (2004-05-21)
1169 - Make `DFILLINFACT` option available through AMPL interface
1170 - Now, later increase of memory requirement for Harwell solvers is also
1171 based on `DFILLINFACT`, instead of using a fixed values of 10.
1173 ### 2.2.1a (2004-05-13)
1175 - fix in `IPOPT/ipopt/mainloop.F`:
1176 The multipliers were not scaled back for low printlevel.
1178 ### no new release (2004-04-28)
1180 - fix in `IPOPT/AMPL_interface/ipoptAMPL.c`:
1181 Now the mulitpliers for the constraints are passed back to AMPL.
1182 - Added download scripts using `wget` to get ASL, BLAS, and LAPACK more easily.
1183 Thanks to Frank Wuebbeling for the hint.
1185 ### 2.2.1 (2004-04-25)
1187 - AMPL solver executable is now called `ipopt` (instead of `ipoptAMPL`).
1188 This fixed also problem with assigning IPOPT options from within
1189 AMPL. (reported by Karsten Theissen)
1190 - default value for number of iterations is now 10000 (instead of 1000)
1191 - new option: `IMAXCPUSEC` to be set to the maximum number of CPU seconds
1192 after which the algorithm should stop. The check is performed only at
1193 certain points in the algorithm, so that the executable might run longer
1195 The algorithm also stops (as before) when the file "STOP" is detected in
1196 the current directory. Finally, a call to `USER_REQUESTED_STOP` has
1197 been added if the preprocessor macro `USE_USER_REQUESTED_STOP` has been
1198 defined. If this `LOGICAL` function returns `.TRUE.`, the algorithm also
1199 stops. This feature was requested by David Ternet.
1200 - if IPOPT is run several time in a row, the counting of function
1201 evaluations is restarted after every new call of IPOPT.
1202 - in `get_step_full`, now check if the number of negative eigenvalues is LESS
1203 than then number constraints. If so, increase the pivot tolerance,
1204 and if that doesn't help, pretend that the system is singular.
1205 (this fixed a problem reported by Hans Mittelmann)
1206 - decrease default values for `DPIVTOLMAX`
1207 - suppress superflous leading zeros in iteration output. For long output
1208 (`ioutput=1`) include CPU time
1209 - a few changes regarding the inertia correction (`get_step_full.F`).
1210 This decreases CPU time significantly in a few cases.
1211 - corrected problem in C-files related to names for `struct`'s (some GNU
1212 compiler complained)
1213 - changed default options for GNU compilers (now `-O3 -funroll-loops`,
1214 no longer `-O2` and `-mieee-fp`)
1215 - no reference to MC35 in `resto_tron` if `HAVE_MC35` is not defined
1216 - `#error` preprocessor directive removed from `*.F` files, since not all
1217 compilers understand it (reported by Hans Mittelmann)
1218 - switch to automake 1.8.3
1220 ### 2.2.0 (2004-03-10)
1222 Many things have changed since the last official release.
1223 Here a few highlights:
1224 - easier installation procedure with autoconf
1225 - algorithm made more robust and efficient
1226 - new restoration phase for filter method (TRON no longer needed for
1227 full-space option anymore)