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(), n, and madness::Tensor< T >::trace().
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, madness::Tensor< T >::trace(), 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().