26 #include <Eigen/Dense>
Implementation of Armijo approximate line search algorithm.
function< int(const VectorXd &x, double &v, VectorXd &g)> ValGradFunc
Value and Gradient Computation Function.
StopReason optimize()
Perform optimization.
int noopCallback(const VectorXd &x, double value, const VectorXd &grad, size_t iter)
Callback that does nothing.
function< int(const VectorXd &x, VectorXd &g)> GradFunc
Gradient Only Computation Function.
function< int(const VectorXd &x, double &v)> ValFunc
Value Only Computation Function.
double opt_ls_sigma
Theshold for stopping linesearch.
double opt_ls_beta
How quickly to reduce linesearch distance. Power function base, values closer to 0 will decrease step...
double opt_ls_s
Maximum step during line search.
BFGSOpt(size_t dim, const ValFunc &valfunc, const GradFunc &gradfunc, const CallBackFunc &callback=noopCallback)
function< int(const VectorXd &x, double v, const VectorXd &g, size_t iter)> CallBackFunc
Callback function.