Upgraded to ensmallen 3.10.0: “Unexpected Rain” (2025-09-30)
SGD-like optimizers now all divide the step size by the batch size
so that step sizes don’t need to be tuned in addition to batch sizes. If
you require behavior from ensmallen 2, define the
ENS_OLD_SEPARABLE_STEP_BEHAVIOR macro before including
ensmallen.hpp (#431).
Remove deprecated ParetoFront() and
ParetoSet() from multi-objective optimizers (#435). Instead,
pass objects to the Optimize() function; see the
documentation for each multi-objective optimizer for more details. A
typical transition will change code like:
c++ optimizer.Optimize(objectives, coordinates); arma::cube paretoFront = optimizer.ParetoFront(); arma::cube paretoSet = optimizer.ParetoSet();
to instead gather the Pareto front and set in the call:
c++ arma::cube paretoFront, paretoSet; optimizer.Optimize(objectives, coordinates, paretoFront, paretoSet);
Remove deprecated constructor for Active CMA-ES that takes
lowerBound and upperBound (#435). Instead,
pass an instantiated BoundaryBoxConstraint to the
constructor. A typical transition will change code like:
c++ ActiveCMAES<FullSelection, BoundaryBoxConstraint> opt(lambda, lowerBound, upperBound, ...);
into
c++ ActiveCMAES<FullSelection, BoundaryBoxConstraint> opt(lambda, BoundaryBoxConstraint(lowerBound, upperBound), ...);
Add proximal gradient optimizers for L1-constrained and other
related problems: FBS, FISTA, and
FASTA (#427). See the
documentation for more details.
The Lambda() and Sigma() functions of the
AugLagrangian optimizer, which could be used to retrieve
the Lagrange multipliers and penalty parameter after optimization, are
now deprecated (#439). Instead,
pass a vector and a double to the Optimize() function
directly:
c++ augLag.Optimize(function, coordinates, lambda, sigma)
and these will be filled with the final Lagrange multiplier estimates
and penalty parameters.
Fix include statement in tests/de_test.cpp (#419).
Fix exactObjective output for SGD-like optimizers when
the number of iterations is an even number of epochs (#417).
Added vignette with worked example for linear regression and for
package inclusion.
RcppEnsmallen 0.2.10.0.1
Upgraded to ensmallen 2.10.0: “Fried Chicken” (2019-09-07)
All Optimize() functions now take any matrix type; so,
e.g., arma::fmat or arma::sp_mat can be used
for optimization. See the documentation for (#113). (#119).
Introduce callback support. Callbacks can be appended as the last
arguments of an Optimize() call, and can perform custom
behavior at different points during the optimization. See the
documentation for more details (#119).
Upgraded to ensmallen release 1.14.1 “Difficult Crimp” (2019-03-09)
(#87). (#90). in CNE to
be a normal distribution about the given starting point, which should
accelerate convergence. (#77). (#83).
RcppEnsmallen 0.1.13.0.1
Upgraded to ensmallen release 1.13.0 “Coronavirus Invasion”
(2019-01-14) (#66). (#69).
Fix list of contributors.
Make sure all files end with newlines.
Reordered SPSA parameters to quiet initialization error surfaced
with -Wreorder.
RcppEnsmallen 0.1.12.0.1
Upgraded to ensmallen release 1.12.0 “New Year’s Party” (2018-12-30)
Add link to ensmallen PDF to README.md.
Minor documentation fixes. Remove too-verbose documentation from
source for (#61). (#48). (#42). (#46). (#45). (#60).
Updated citation information
RcppEnsmallen 0.1.11.1.1
Upgraded to ensmallen release 1.11.1 “Jet Lag” (2018-11-28)
Minor documentation fixes.
Add WNGrad optimizer.
Fix header name in documentation samples.
Added citation information
RcppEnsmallen 0.1.10.0.1
New
Support for compiling via R the mathematical optimizers in
the C++ensmallen
library.
Includes ensmallen release 1.10.0 “Corporate Catabolism”
(2018-10-19)
Special Thanks
The crux of this package has largely been developed by Ensmallen
development team that consists of Conrad Sanderson, Ryan Curtin, and the
MLPACK developers