Here, we describe what has changed between releases of the [[NLopt]] package. You can also refer to the <code>NEWS</code> file in the Meep package (or the <code>ChangeLog</code> file for a more detailed listing).

Here, we describe what has changed between releases of the [[NLopt]] package. You can also refer to the <code>NEWS</code> file in the Meep package (or the <code>ChangeLog</code> file for a more detailed listing).

NLopt 2.2.1

6 September 2010

If you compile nlopt.h with the NLOPT_DLL_EXPORT symbol #defined, it now uses the dllexport directive (under Windows), useful for compiling an NLopt DLL under Microsoft compilers; thanks to Benoit Scherrer for the suggestion.

Handle case where copysign function is missing, e.g. on Windows; thanks to Benoit Scherrer for the bug report.

Remove C99-style mixed declaration and code in a couple files, so that code compiles in C89; thanks to Benoit Scherrer for the bug report.

Removed a few compiler warnings under Microsoft compilers; thanks to Benoit Scherrer for the bug report.

Export nlopt_get_algorithm_name function on Windows; thanks to Ofek Shilon for the bug report.

Don't use dllimport directive with lcc on Windows (which doesn't support it); thanks to Laurent Vanbeylen for the bug report.

Update Nodedal README file to indicate that Nocedal's LBFGS code is now available under the GPL, and therefore may be distributed with a future NLopt version (although Luksan's LBFGS code already works well).

Bug fix in set/get_xtol_abs; thanks to David Rivest-Henault for the report.

NLopt 2.2

Added SLSQP algorithm for gradient-based local optimization with nonlinear constraints via sequential quadratic programming, based on the implementation by Dieter Kraft that was adapted for SciPy.

Modified BOBYQA and COBYLA algorithms to support unequal initial step sizes in different directions; thanks to Tom Fiddaman for pointing out the need for this in the case where different directions have very different scales.

NLopt 2.0.1

NLopt 2.0

15 June 2010

New C API, that works by creating an nlopt_opt "object" and then calling functions to set the optimization parameters -- much more extensible than the old API (which is preserved for backwards compatibility). (Updated Fortran, Matlab, and GNU Octave wrappers as well.)

Allow COBYLA to increase the trust-region radius if the predicted improvement was approximately right and the simplex is OK, following a suggestion in the SAS manual for PROC NLP that seems to improve convergence speed.

Added nlopt_force_stop function to force a (graceful) halt to the optimization, and corresponding NLOPT_FORCED_STOP return code.

Improved thread-safety in random-number generation: thread-local storage is used for random-number state, on compilers that support it (e.g. gcc, Intel, Microsoft), to make the generation thread-safe. In this case, the random-number seed must be set per-thread.

Return an error in global-search algorithms if the domain is not finite.

Use stdcall convention on Windows; thanks to Alan Young for the suggestion.

NLopt 1.1

12 November 2009

configure script detects whether --enable-shared is required in order to compile Matlab and Octave plugins (as is the case on x86_64), and disables compilation of those plugins if --enable-shared is not used.