Releases: denehoffman/ganesh
Releases · denehoffman/ganesh
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
v0.5.0
This release is fairly large, but the main differences will go unnoticed except for those who have implemented their own algorithms.
Added
- Generics have been changed and the
Field
trait was removed. The generics now cover minimal traits required to run each method, along with aFrom<f32>
bound which does the majority of what theField
trait did anyway. - Most types that were
&[F]
are now&DVector<F>
. The exceptions are in algorithmnew
functions, which are more ergonomic if slices are used. In the actual implementations,DVector
s are much more convenient than all theVec
iterations I was doing previously. - Added some line search algorithms to make the
GradientDescent
method more functional. This will also be used in the next update, which will hopefully provide the BFGS algorithm family.
Fixed
- Some fields in the
Newton
andGradientDescent
algorithm initializers were set wrong, making these algorithms function strangely or not at all. This has been fixed.
v0.4.0
Other
- undo changes to previous version, lifetimes make things more difficult to work with for end-users. Removed NelderMeadMessage.