# mize 0.2.5

Bug fix release.

## Bug fixes

* Removed `LazyData` from the `DESCRIPTION` file.
* Some flaky unit tests where removed.

# mize 0.2.4

Bug fix release.

## Bug fixes.

* If using `line_search = "backtracking"` with a specified `step_down`
parameter, an incorrectly large number of gradient calculations was being 
reported.
* The documentation now specifies that if you *don't* provide a `step_down` 
argument with `line_search = "backtracking"`, interpolation using function
and gradient evaluations is carried out. To get a typical Armijo-style
backtracking line search, specify a value for `step_down` (e.g. 
`step_down = 0.5` to halve the step size), and only function evaluations are
used.

# mize 0.2.3

A patch release to fix an incompatibility with R-devel.

## Bug fixes

* Fixed a bug where `class` was being checked directly and a scalar value was
assumed. The correct behavior is to use `methods::is`.

# mize 0.2.2

A patch release for a bug fix.

## Bug fixes

* Fixed a bug where if the maximum number of function evaluations for the
Schmidt line search is exceeded (controlled by the `ls_max_fn` parameter), a 
`'bracket_step' not found` error could result. Thank you to reporter Charles 
Driver.
* Fixed a couple of vignette links that were missing the "http://" at the front.

# mize 0.2.1

A patch release to fix an incompatibility with R-devel.

## Bug fixes

* Fixed an error with bold driver and back-tracking line search where the
stage was being incorrectly checked.

# mize 0.2.0

## New features

* New method: Truncated Newton (`method = "TN"`). Can be controlled using the
`tn_init` and `tn_exit` options.
* New method: SR1 (`method = "SR1"`), falling back to the BFGS direction if a 
descent direction is not found.
* New option `preconditioner`, which applies to the conjugate gradient and
truncated newton methods. The only value currently available is `preconditioner
= "L-BFGS"` which uses L-BFGS to estimate the inverse Hessian for
preconditioning. The number of updates to store for this preconditioner is
controlled by the `memory` parameter, just as if you were using `method =
"L-BFGS"`.
* BFGS, SR1, L-BFGS methods will now make use of a user-supplied inverse Hessian
function if provided. In the input `fg` list, supply a function `hi`, that takes
the `par` vector as input. The function can return a matrix (obviously not a
great idea for memory use), or a vector, the latter of which is assumed to be
the diagonal of the matrix.
* `ls_max_alpha` (for `line_search = "More-Thuente"` only): sets maximum value
of alpha that can be attained during line search.
* `ls_max_alpha_mult` (for Wolfe-type line search only): sets maximum value that
can be attained by the ratio of the initial guess for alpha for the current line
search, to the final value of alpha of the previous line search. Used to stop
line searches diverging due to very large initial guesses.
* `ls_safe_cubic` (for `line_search = "More-Thuente"` only): if `TRUE`,
use the safe-guarded cubic modification suggested by Xie and Schlick.
* `cg_update = "prfr"`, the "PR-FR" (Polak-Ribiere/Fletcher-Reeves) conjugate 
gradient update suggested by Gilbert and Nocedal.

## Bug fixes

* Error occurred when checking if a step size was finite during line search.
* DBD method didn't use momentum when asked to.
* Fix incorrectly specified conjugate gradient descent methods: 
Hestenes-Stiefel (`cg_udpate = "hs"`), Conjugate Descent (`cg_udpate = "cd"`), 
Dai-Yuan (`cg_udpate = "dy"`) and Liu-Storey (`cg_udpate = "ls"`).

# mize 0.1.1

Initial release.
