|
MADNESS 0.10.1
|
Optimization via quasi-Newton (BFGS or SR1 update) More...


Public Member Functions | |
| QuasiNewton (const std::shared_ptr< OptimizationTargetInterface > &target, double tol=1e-6, double value_precision=1e-12, double gradient_precision=1e-12) | |
| bool | converged () const |
| double | gradient_norm () const |
| bool | optimize (Tensor< double > &x) |
| void | set_update (const string &method) |
| double | value () const |
Public Member Functions inherited from madness::OptimizerInterface | |
| virtual | ~OptimizerInterface () |
Private Member Functions | |
| void | hessian_update_bfgs (const Tensor< double > &dx, const Tensor< double > &dg) |
| void | hessian_update_sr1 (const Tensor< double > &s, const Tensor< double > &y) |
| double | line_search (double a1, double f0, double dxgrad, const Tensor< double > &x, const Tensor< double > &dx) |
| Tensor< double > | new_search_direction (const Tensor< double > &g) |
Private Attributes | |
| double | f |
| double | gnorm |
| const double | gradient_precision |
| Tensor< double > | h |
| int | n |
| std::shared_ptr< OptimizationTargetInterface > | target |
| const double | tol |
| string | update |
| const double | value_precision |
Optimization via quasi-Newton (BFGS or SR1 update)
|
inline |
References target.
|
inlinevirtual |
|
inlinevirtual |
Implements madness::OptimizerInterface.
References gnorm.
|
inlineprivate |
References madness::abs(), h, madness::inner(), and n.
Referenced by optimize().
|
inlineprivate |
References madness::abs(), e(), h, madness::inner(), madness::outer(), q(), and madness::Tensor< T >::scale().
Referenced by optimize().
|
inlineprivate |
References a1, a2, madness::abs(), f1, madness::print(), target, and value_precision.
Referenced by optimize().
References madness::abs(), e(), madness::g, gradient_precision, h, madness::inner(), n, madness::syev(), tol, and v.
Referenced by optimize().
|
inlinevirtual |
Implements madness::OptimizerInterface.
References converged(), madness::BaseTensor::dim(), f, madness::g, gnorm, h, hessian_update_bfgs(), hessian_update_sr1(), line_search(), n, new_search_direction(), madness::Tensor< T >::normf(), madness::print(), madness::Tensor< T >::scale(), madness::BaseTensor::size(), target, update, and value_precision.
Referenced by main().
|
inline |
|
inlinevirtual |
Implements madness::OptimizerInterface.
References f.
|
private |
Referenced by optimize(), and value().
|
private |
Referenced by converged(), gradient_norm(), and optimize().
|
private |
Referenced by new_search_direction().
|
private |
Referenced by hessian_update_bfgs(), hessian_update_sr1(), new_search_direction(), and optimize().
|
private |
Referenced by hessian_update_bfgs(), new_search_direction(), and optimize().
|
private |
Referenced by QuasiNewton(), line_search(), and optimize().
|
private |
Referenced by converged(), and new_search_direction().
|
private |
Referenced by optimize(), and set_update().
|
private |
Referenced by line_search(), and optimize().