v2.10.0 (#194, @astamm).v2.2.0.nlopt>=2.7.0.NLOPT_LD_LBFGS in place of NLOPT_LD_LBFGS_NOCEDAL when the latter is
not available (in nlopt v2.9.x).x0 and eval_f in nloptr (#191, @astamm).This release fixes a breaking bug which affects nloptr and its reverse dependencies and brings some minor tweaks and corrections along the way:
2.9.x (#176, @jaganmn): specifically, the issuses were that (i) nlopt versions 2.9.x had one less algorithm in the enum list, namely NLOPT_LD_LBFGS_NOCEDAL was removed in these versions and put back in 2.10 and (ii) we were using inst/include in which we copied nlopt headers conditionally to build the package (e.g. listing it in PKG_CPPFLAGS) resulting in possible version conflicts.LinkingTo dependencies by (i) unconditionally copying headers to inst/include and (ii) fixing cmake path search (#179, @astamm).if statement inside paste() which works differently than when used inside c() (#180, @astamm).v4 (#174, @eddelbuettel).test-banana (#167, @aadler).test-global-wrapper (#166, @aadler).nloptr.c for compatibility with the R API, efficiency,
and formatting (#169, @aadler).ranseed expects an unsigned long but was passed as an integer, thus
reducing the range of random seeds. It is now passed as a double and converted
to a long (#169, @aadler).This is a patch release to work around a bug in the CRAN checks. Specifically,
one of the unit tests for the isres() algorithm was failing on some CRAN
builds because convergence is stochastic with slightly different results even
with the same fixed seed prior to calling the function.
This release deprecates the default behavior of the inequality equations in any
wrapper function which uses them. Currently, they are calibrated to be >= 0.
This version allows for the equations to be consistent with the main nloptr
function, which requires <= 0. In a future release, the default behavior will
switch to assuming the calibration is <= 0, and eventually, the >= 0 behavior
will be removed. It also includes a large number of safety and efficiency
changes, and an expansion of the unit tests to 100% coverage for all files but
one. The major changes include:
hin and hinjac in the
wrapper functions which use them, bringing them into compliance with the main
nloptr call. This addresses
Issue #148;parallel::detectCores() (contributed by @jeroen in
PR #150);testthat with tinytest (See
Issue #136);is.nloptr to 100%. The only file not completely covered
by unit tests is nloptr.c. The uncovered calls are error messages which get
trapped by tests in R before the call gets to C;C++11;isres or the warning in nl.grad).Please see the commit logs for more detailed descriptions of the changes.
cmake3 binary
on the PATH (#104).cmake
(#119).This is a patch version in which:
nlopt library via nlopt/lib/libnlopt.a instead of
-Lnlopt/lib -lnlopt when building nlopt from included sources to avoid
potential mess where -lnlopt could look for the nlopt library in other
places and possibly link with an existing too old system build of nlopt.Additionally, we contacted Simon Urbanek for updating
the nlopt recipe for macOS users so that it does now match the latest
v2.7.1, which should avoid nlopt to be built on the fly on CRAN machines.
This is a release mainly for increasing direct compatibility with most user cases. In details, here is the list of changes that have been made:
SystemRequirements description to make it clearer which minimal
versions of cmake (>= 3.15.0) and nlopt (>= 2.7.0) are required
(#100,
@HenrikBengtsson).cmake is missing when needed with
clearer message (#103,
@eddelbuettel).cmake in the list of suggestions to
install it when missing.4.0
(#111).cmake3 binary in the current path before cmake for increasing
compatibility with most RHEL/CentOS users
(#104,
@bhogan-mitre,
@HenrikBengtsson).nlopt from included sources on macOS
and on Linux if no system build of NLopt (>= 2.7.0) is found.rwinlib on Windows current release (contributed
by Jeroen Ooms,
#92), or NLopt from Rtools42
on Windows devel (contributed by
Tomas Kalibera).NEWS.md file to track changes to the package.#include <nloptrAPI.h> in several source files.hs071
(#81,
@Tom-python0121).NLOPT_GN_ESCH available from R interface
(contributed by Xiongtao Dai).NLOPT_MAXTIME_REACHED) and
maxtime was not set to a positive number in the options, then nloptr tries a
couple more times to solve the problem. This is a new approach that should
solve the bug that NLopt sometimes exits a problem stating the maximum
available time has been reached, even when no limit on the time has been set.auglag, cobyla,
isres, mma, and slsqp will be switched from >= to <= in a future nloptr
version.donttest around example in mma documentation.auglag, cobyla, isres, mma, and slsqp will be switched
from >= to <= in the next nloptr version. The current version of nloptr shows
a warning when using these functions with inequality constraints. This warning
can be turned off with options('nloptr.show.inequality.warning' = FALSE).configure and configure.ac.nloptr.default.options from a data.frame to a function returning
the data.frame.install.packages to install the tests. The tests can be run after
installation with test_package('nloptr'). The testthat package needs to be
installed and loaded to be able to run the tests.NLOPT_MAXTIME_REACHED without running any iterations with
the default setting. This change solves this.suppressMessages.Makevars to replace some code in NLopt to fix compilation on
Solaris as requested by Brian Ripley.INSTALL.windows.Makevars that replaces some code related to type-casting in
NLopt-2.4/isres/isres.c.src/nloptr.c from CP1252 to UTF-8.-lstdc++ from linker statement.
A file dummy.cpp (with C++ extension) is added to the source directory to
ensure linking with C++. Thanks to Brian Ripley for bringing this up.)check.derivatives examples in two
lines to comply with new package rules.inst/doc to vignettes to comply with new package
rules.apacite in vignette as an update of apacite on CRAN
resulted in errors.CFLAGS, CXXFLAGS from Makevars.print_level = 3. Shows values of controls
(16 April 2012 on R-Forge).Makevars and Makevars.win to link to version 2.3 of NLopt compiled
with --with-cxx option. This makes the StoGo algorithm available.
(31 April 2013 on R-Forge).src/Makevars to LF line endings to
remove a warning from R CMD check.src/Makevars.win in order
for nloptr to work with his new toolchain.src/Makevars to compile on Solaris.src/Makevars to compile on Solaris.src/Makevars to compile on Solaris.src/Makevars to compile a working binary for MacOS.added new options:
nloptr.print.options(option="maxeval").
nloptr.print.options() shows a description of all options if called
without arguments.print_options_doc = TRUE/FALSE).population = 1000).ranseed = 3141). A value of 0 uses a random seed generated by system time.tol_constraints_eq, tol_constraints_ineq).tests/banana_global.R: new test file that uses the algorithms
(CRS, ISRES, MLSL) and options ranseed and population.
src/nloptr.c: capture error codes from setting options.
R/nloptr.print.R: output gives 'optimal value of controls' when status = -4
(some error code), this is changed to 'current value of controls'.