chiark / gitweb /
converted NEWS to markdown format
authorSteven G. Johnson <stevenj@alum.mit.edu>
Thu, 26 Jul 2018 16:06:25 +0000 (12:06 -0400)
committerSteven G. Johnson <stevenj@alum.mit.edu>
Thu, 26 Jul 2018 16:06:25 +0000 (12:06 -0400)
NEWS.md [moved from NEWS with 64% similarity]

diff --git a/NEWS b/NEWS.md
similarity index 64%
rename from NEWS
rename to NEWS.md
index 6a9dfc3f46a42e3dab59e55a727e054174eba268..e78516eb56239f94544aff16f55ed7ce00643e4e 100644 (file)
--- a/NEWS
+++ b/NEWS.md
@@ -1,24 +1,32 @@
-NLopt 2.4.2 (20 May 2014)
+# NLopt Release Notes
 
-* Fix CRS for empty dimensions (where lower == upper bound) (issue #13).
+## NLopt 2.4.2
 
-* Improvements to CMake (thanks to @xantares) and Windows builds (issue #12).
+20 May 2014
 
-* Fix guile2 compatibility (issue #21).
+* Fix CRS for empty dimensions (where lower `==` upper bound) (issue [#13]).
 
-NLopt 2.4.1 (19 November 2013)
+* Improvements to CMake (thanks to @xantares) and Windows builds (issue [#12]).
 
-* Use cdecl calling convention instead of stdcall on Win32, to
+* Fix guile2 compatibility (issue [#21]).
+
+## NLopt 2.4.1
+
+19 November 2013
+
+* Use `cdecl` calling convention instead of stdcall on Win32, to
   simplify shared-library usage and for consistency with Win64.
 
-NLopt 2.4 (2 November 2013)
+## NLopt 2.4
+
+2 November 2013
 
 * New genetic algorithm ESCH, thanks to Carlos Henrique da Silva Santos.
 
-* Fix swig dir for VPATH builds, thanks to Sandro Vitenti for the bug report.
+* Fix swig dir for `VPATH` builds, thanks to Sandro Vitenti for the bug report.
 
-* Use python-config program in the configure script to find the include
-  directories for Python, if possible (may be overridden by PYTHON_CONFIG
+* Use `python-config` program in the `configure` script to find the include
+  directories for Python, if possible (may be overridden by `PYTHON_CONFIG`
   environment variable).
 
 * Bugfix in copy constructor for C++ and Python interfaces.
@@ -27,14 +35,16 @@ NLopt 2.4 (2 November 2013)
 
 * Handle negative rescalings in COBYLA and BOBYQA.
 
-* Plugin installation honors the configure --prefix, if any
+* Plugin installation honors the `configure --prefix`, if any
   (thanks to xantares@github).
 
 * Various compilation fixes for compatibility with recent software.
 
-NLopt 2.3.1 (16 September 2012)
+## NLopt 2.3.1
+
+16 September 2012
 
-* Bug fix: COBLYA should return ROUNDOFF_LIMITED rather than XTOL_REACHED
+* Bug fix: COBLYA should return `ROUNDOFF_LIMITED` rather than `XTOL_REACHED`
   if the trust-region radius underflows to zero; thanks to David Liu.
 
 * Bug fix: incorrect return value from set min/max objective.
@@ -42,19 +52,21 @@ NLopt 2.3.1 (16 September 2012)
 * Handle case of negative rescalings (from negative dx) in COBYLA and BOBYQA;
   thanks to Alexander Law for the bug report
 
-NLopt 2.3 (20 July 2012)
+## NLopt 2.3
+
+20 July 2012
 
 * In Matlab/Octave interface, make returning NaN from the objective
-  equivalent to nlopt_force_stop; thanks to Norman Violet for the suggestion.
+  equivalent to `nlopt_force_stop`; thanks to Norman Violet for the suggestion.
 
-* Added CCSA-quadratic (NLOPT_LD_CCSAQ), similar to MMA.
+* Added CCSA-quadratic (`NLOPT_LD_CCSAQ`), similar to MMA.
 
 * Added interface for supplying a preconditioner (approximate Hessian);
   currently only supported in CCSAQ.
 
-* When adding mconstraints, allow tol==NULL as synonym for zero tolerances.
+* When adding mconstraints, allow `tol==NULL` as synonym for zero tolerances.
 
-* Added missing NLOPT_LD_SLSQP constant in Matlab/Octave.
+* Added missing `NLOPT_LD_SLSQP` constant in Matlab/Octave.
 
 * Lower tolerance for dual optimization in MMA/CCSAQ; thanks to
   Christophe Leruste for the problem report
@@ -63,55 +75,63 @@ NLopt 2.3 (20 July 2012)
 
 * Bug fix to convergence test in sbplx; thanks to Douglas Bates.
 
-NLopt 2.2.4 (9 June 2011)
+## NLopt 2.2.4
+
+9 June 2011
 
 * Fixed linking problem for C++ and Python shared libraries on MacOS X;
   thanks to Volker Lorrmann for the bug report.
 
-NLopt 2.2.3 (8 June 2011)
+## NLopt 2.2.3
+
+8 June 2011
 
 * Fixed additional re-entrancy problem in Luksan algorithms missed
   in the previous version; thanks to Gert Wollny for the bug report.
 
-* Fixed set/get vector_storage in Fortran interface for Fortran
+* Fixed set/get `vector_storage` in Fortran interface for Fortran
   compilers with all-uppercase linkage.
 
-NLopt 2.2.2 (26 May 2011)
+## NLopt 2.2.2
+
+26 May 2011
 
-* Added set_vector_storage API to modify the memory usage and the 
+* Added `set_vector_storage` API to modify the memory usage and the
   subspace dimension for low-storage quasi-Newton methods.
 
 * Fixed missing support for maxtime stopping criteria in Luksan and
-  ORIG_DIRECT algorithms; thanks to Jurgen Werner for the bug report.
+  `ORIG_DIRECT` algorithms; thanks to Jurgen Werner for the bug report.
 
 * Fixed algorithms to support the case where the lower and upper bounds
   are equal for some variables (which effectively eliminates those
   variables from optimization).
 
-* Added missing xtol check to SLSQP, which caused erroneous ROUNDOFF_LIMITED
+* Added missing xtol check to SLSQP, which caused erroneous `ROUNDOFF_LIMITED`
   error codes to be returned; thanks to Alexander Riess for the bug report.
 
 * Fixed slight overcounting of function evaluations for maxeval check
   in SLSQP.
 
-* Fixed deprecated API to support xtol_abs == NULL for backward
+* Fixed deprecated API to support `xtol_abs == NULL` for backward
   compatibility (thanks to Francesco Biscani for the bug report).
 
 * Made Luksan algorithms (e.g. LBFGS and other quasi-Newton methods)
   re-entrant; thanks to Gert Wollny for the bug report.  (Fixes
   Gentoo bug #368685.)
 
-* Fixed bug in DIRECT (not ORIG_DIRECT), where a typo caused suboptimal
+* Fixed bug in DIRECT (not `ORIG_DIRECT`), where a typo caused suboptimal
   convergence in some cases; thanks to Sinisa Hristov for the bug report.
 
-NLopt 2.2.1 (6 September 2010)
+## NLopt 2.2.1
 
-* If you compile nlopt.h with the NLOPT_DLL_EXPORT symbol #defined,
-  it now uses the dllexport directive (under Windows), useful for
+6 September 2010
+
+* If you compile `nlopt.h` with the `NLOPT_DLL_EXPOR`T 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;
+* 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
@@ -120,19 +140,21 @@ NLopt 2.2.1 (6 September 2010)
 * 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
+* 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
+* 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 directory 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.
+* Bug fix in `set`/`get_xtol_abs`; thanks to David Rivest-Henault for the report.
+
+## NLopt 2.2
 
-NLopt 2.2 (15 July 2010)
+15 July 2010
 
 * Added SLSQP algorithm for gradient-based local optimization with
   nonlinear constraints via sequential quadratic programming, based
@@ -145,24 +167,26 @@ NLopt 2.2 (15 July 2010)
 
 * Added Python module docstring; thanks to Sebastian Walter for the suggestion.
 
-* Added GUILE_INSTALL_DIR variable to allow the user to change the
+* Added `GUILE_INSTALL_DIR` variable to allow the user to change the
   Guile installation directory.
 
 * Added Fortran interface for vector-valued constraints.
 
-* Throw correct exceptions in Python for the add_*constraint functions;
+* Throw correct exceptions in Python for the `add_*constraint` functions;
   thanks to Dmitrey Kroshko for the bug report.
 
-* Support forced stop and exceptions in ORIG_DIRECT algorithm.
+* Support forced stop and exceptions in `ORIG_DIRECT` algorithm.
 
-* Remove arbitrary 1e20 upper bound on function values from ORIG_DIRECT
+* Remove arbitrary `1e20` upper bound on function values from `ORIG_DIRECT`
   code.
 
 * Bugfix in C++ interface (and some other language front-ends) when
   deallocating the nlopt_opt object in cases like MLSL where
   local_optimizer is used; thanks to Jurgen Werner for the bug report.
 
-NLopt 2.1.2 (8 July 2010)
+## NLopt 2.1.2
+
+8 July 2010
 
 * The Python mconstraint (vector-valued constraint) functions
   now pass a 2-dimensional array for the gradient argument, rather
@@ -172,60 +196,70 @@ NLopt 2.1.2 (8 July 2010)
   optimization, making sure that no constraints are evaluated after
   the stop.
 
-* Return an NLOPT_INVALID_ARGS error if more than n equality constraints
+* Return an `NLOPT_INVALID_ARGS` error if more than n equality constraints
   are added in an n-dimensional problem.
 
-* Fix bug that could cause spurious NLOPT_INVALID_ARGS errors when
+* Fix bug that could cause spurious `NLOPT_INVALID_ARGS` errors when
   adding constraints under rare circumstances.
 
 * Eliminate a few small memory leaks that could occur under error conditions.
 
-NLopt 2.1.1 (7 July 2010)
+## NLopt 2.1.1
+
+7 July 2010
 
 * More robust configure check for Python include directories, via
-  distutils.sysconfig.get_python_inc() and numpy.get_include().
+  `distutils.sysconfig.get_python_inc()` and `numpy.get_include()`.
   Thanks to Nathaniel Smith for the tip.
 
 * Bug fix in Guile interface: added missing prefix to nlopt-version-major
   etcetera.
 
-NLopt 2.1 (6 July 2010)
+## NLopt 2.1
+
+6 July 2010
 
 * New vector-valued constraint feature; thanks to Dmitrey Kroshko of OpenOpt
   for the suggestion.
 
 * COBYLA now accepts equality constraints.
 
-* Guard against multiple inclusion in nlopt.hpp; thanks to Saul
+* Guard against multiple inclusion in `nlopt.hpp`; thanks to Saul
   Thurrowgood for the suggestion.
 
-NLopt 2.0.2 (17 June 2010)
+## NLopt 2.0.2
+
+17 June 2010
 
 * Fixed compilation failure in Microsoft Visual Studio, due to
-  incorrect usage of __stdcall keyword; thanks to Dave Katz for the
+  incorrect usage of `__stdcall` keyword; thanks to Dave Katz for the
   bug report.
 
-NLopt 2.0.1 (16 June 2010)
+## NLopt 2.0.1
+
+16 June 2010
 
-* Bug fix in Fortran API (for nlo_get_ functions returning arrays).
+* Bug fix in Fortran API (for `nlo_get_` functions returning arrays).
 
 * Fixed buggy compilation with MinGW.
 
-NLopt 2.0 (15 June 2010)
+## NLopt 2.0
 
-* New C API, that works by creating an nlopt_opt "object" and then calling
-  functions to set the optimization parameters -- much more extensible
+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.)
 
-* C++ nlopt.hpp wrapper around C API, allowing namespaces, object
-  constructors/destructors, std::vector<double>, and exceptions
+* C++ `nlopt.hpp` wrapper around C API, allowing namespaces, object
+  constructors/destructors, `std::vector<double>`, and exceptions
   to be exploited.
 
 * New nlopt wrappers callable from Python and GNU Guile, generated
   with the help of SWIG.
 
-* New 'man nlopt' manual page documenting new API.
+* New `man nlopt` manual page documenting new API.
 
 * New AUGLAG algorithm(s) implementing an augmented-Lagrangian method
   proposed by Birgin and Martinez (2008), which supports nonlinear
@@ -235,7 +269,7 @@ NLopt 2.0 (15 June 2010)
 * Added API for nonlinear equality constraints (currently only
   supported by AUGLAG and ISRES algorithms).
 
-* Support inequality constraints directly in ORIG_DIRECT algorithms
+* Support inequality constraints directly in `ORIG_DIRECT` algorithms
   (no need to return NaN when constraint is violated).
 
 * Inequality/equality constraints now have optional tolerances that
@@ -250,8 +284,8 @@ NLopt 2.0 (15 June 2010)
   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.
+* 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
@@ -260,20 +294,22 @@ NLopt 2.0 (15 June 2010)
 
 * 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.
+* Use `stdcall` convention on Windows; thanks to Alan Young for the suggestion.
 
 * Added missing absolute-tolerance criteria in Luksan algorithms; thanks
   to Greg Nicholas for the bug report.
 
 * Fixed compilation under C++, and use C++ compiler for everything in
-  --with-cxx mode; thanks to Greg Nicholas for the bug report.
+  `--with-cxx` mode; thanks to Greg Nicholas for the bug report.
 
 * In MMA, only stop at minf_max/stopval if the point is feasible.
 
-* Fix Matlab mex file to not include unnecessary nlopt-util.h file,
+* Fix Matlab mex file to not include unnecessary `nlopt-util.h` file,
   simplifying Windows compilation.
 
-NLopt 1.2 (18 November 2009)
+## NLopt 1.2
+
+18 November 2009
 
 * Added Powell's BOBYQA algorithm for box-constrained optimization
   without derivatives, an improvement on NEWUOA.
@@ -281,38 +317,40 @@ NLopt 1.2 (18 November 2009)
 * Added ISRES genetic algorithm, supporting nonlinearly constrained
   global optimization.
 
-* New functions nlopt_{set/get}_stochastic_population to provide
+* New functions `nlopt_{set/get}_stochastic_population` to provide
   optional greater control over the random "population" sizes in
   stochastic algorithms (although it still has a sensible default).
 
-* Bug fix: remove extraneous text accidentally included in nlopt.f Fortran
+* Bug fix: remove extraneous text accidentally included in `nlopt.f` Fortran
   include file.
 
-* Bug fix: configure script now correctly handles Matlab installation
-  when MEX_INSTALL_DIR is specified manually by the user.
+* Bug fix: `configure` script now correctly handles Matlab installation
+  when `MEX_INSTALL_DIR` is specified manually by the user.
+
+## NLopt 1.1
 
-NLopt 1.1 (12 November 2009)
+12 November 2009
 
-* configure script detects whether --enable-shared is required
+* `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.
+  `--enable-shared` is not used.
 
-* Added --without-octave and --without-matlab configure options to
+* Added `--without-octave` and `--without-matlab` configure options to
   disable Octave and Matlab plugins, respectively.
 
 * Modified COBYLA algorithm to have better support for bound
   constraints.
 
-* Added new NLOPT_ROUNDOFF_LIMITED failure code to indicate
+* Added new `NLOPT_ROUNDOFF_LIMITED` failure code to indicate
   cases in which optimization breaks down due to roundoff errors,
   in which case it is possible that useful results were obtained.
 
 * Experimental support for nonlinear equality constraints via
   augmented-Lagrangian method.
 
-* Support for compiling under Windows (ideally with MinGW) as a 
-  DLL, although you have to manually add #define NLOPT_DLL
+* Support for compiling under Windows (ideally with MinGW) as a
+  DLL, although you have to manually add `#define NLOPT_DLL`
   to nlopt.h *after* installing (after compiling NLopt).
 
 * Added several checks for roundoff-related breakdown to NEWUOA code.
@@ -320,11 +358,11 @@ NLopt 1.1 (12 November 2009)
 * When only a relative error tolerance is specified, no longer
   fails to halt when exact convergence to zero is obtained.
 
-* Workaround for incompatible qsort_r functions in BSD and GNU libc
+* Workaround for incompatible `qsort_r` functions in BSD and GNU libc
   by always using my own version; thanks to Wendy Vandoolaeghe
   and Philippe Preux for the bug report and explanation.
 
-* Workaround for gcc 3.4.x conflict with HUGE_VAL definition in Solaris
+* Workaround for gcc 3.4.x conflict with `HUGE_VAL` definition in Solaris
   (gcc bug 19933).
 
 * Better identification of Matlab-plugin installation directory.
@@ -332,16 +370,20 @@ NLopt 1.1 (12 November 2009)
 * Fixed identification of Octave-plugin installation directory for
   recent Octave versions.
 
-NLopt 1.0.1 (13 Nov. 2008)
+## NLopt 1.0.1
+
+13 Nov. 2008
 
 * Allow user to override Matlab-plugin installation directory with
-  MEX_INSTALL_DIR.
+  `MEX_INSTALL_DIR`.
 
 * Bug fix in my DIRECT code that prevented convergence (DIRECT-L unaffected).
 
-* MLSL needs a nonzero default ftol_rel and/or xtol_rel to ensure that
+* MLSL needs a nonzero default `ftol_rel` and/or `xtol_rel` to ensure that
   its local searches terminate; use roughly machine precision as defaults.
 
-NLopt 1.0 (11 Nov. 2008)
+## NLopt 1.0
+
+11 Nov. 2008
 
 * Initial public release.