Releases: denehoffman/ganesh
Releases · denehoffman/ganesh
v0.9.0
Added
- add errors to all algorithms
- add Hessian evaluation to
Function
trait - kickstart BFGS with H-inverse scaling
- switch to using nalgebra data structures by default
Fixed
- simplify L-BFGS algorithm and ensure the first few steps are computed correctly
- left and right matrices were switched by accident
- make terminator epsilon fields public for BFGS methods, set default f tolerance to epsilon rather than its cube root
v0.8.5
Added
- reboot L-BFGS-B on invalid line searches
Fixed
- follow strong Wolfe condition a bit more carefully
- make bounds inclusive
- ensure sufficient decrease is met before marking line search as valid
- make
g_eval
increment gradient evaluations rather than function evaluations - use trait to implement ordering on float-like generics
Other
- remove unused import
- remove comment
v0.8.4
Fixed
- use absolute value for absolute tolerance
Other
- reverse some dot products with the wrong dimensions
v0.8.3
Fixed
- switch sign on function termination condition
v0.8.2
Added
- add function value terminators for BFGS algorithms
- add function value terminators for BFGS algorithms
v0.8.1
Added
- add gradient tolerance to L-BFGS-B
Other
- Merge branch 'main' into development
- export BFGS methods in mod
v0.8.0
Added
- add L-BFGS-B algorithm
- update line search to take a
max_step
optional argument and return a bool flag of validity rather than anOption
- add
LineSearch
trait and implementations of BFGS and L-BFGS algorithms - update
NelderMead
to count gradient evals and use bounded interface - add bounded evaluation shortcuts to
Function
trait and count gradient evaluations inStatus
Fixed
- simplify logic by removing internal
m
- change to inequality to ensure a proper status message if the max iterations are passed
Other
- fix brackets in readme and update main lib docs
- update readme
- remove unused collections module
v0.7.1
Other
- fix doctests
- make minimize return
Result<(), E>
and storeStatus
in theMinimizer
struct
v0.7.0
Added
- add useful assert warning for trying to construct a
NelderMead
Simplex
with fewer than 2 points - add check to make sure starting position is within bounds
- add display method, methods for getting
lower
andupper
bounds, andcontains
method forBounds
- add
Debug
s toNelderMead
- add preliminary implementation of BFGS algorithm
- add method to return the gradient and inverse of Hessian matrix
Fixed
- remove tracking
main.rs
, which I use for quick demos - adaptive Nelder-Mead now requires inputting the dimension
- remove out-of-bounds issue
- step direction should be opposite the gradient
p
is-grad_f
so this was right all along- allow expect in Hessian inverse function
- update BFGS algorithm to recent changes with ganesh
- change
learning_rate
to anOption
in gradient descent
Other
- adds documentation to all parts of crate, additionally makes some
Algorithm
methods returnResult
s now - fix typo in example
- update dependencies
- update licensing
- switch license to MIT
- add Bounds section to TOC
- correct statements about
Function
trait in readme - typo in readme
- update README.md
- major rewrite of library, adds experimental bounds to Nelder Mead
- qualify path to
abs
function - Merge remote-tracking branch 'origin/bfgs' into development
- change slice to
DVector
in documentation - update docs and fix links/footnotes
v0.6.0
Added
- reduces the
Field
trait to usenum
traits rather thannalgebra
'sRealField
Fixed
- ensure all methods use the
Field
trait rather than justFloat
for better compatibility - re-export
nalgebra::DVector
Other
- fix some of the documentation to reflect recent changes to the crate