Class Newton#

Inheritance Relationships#

Base Type#

Class Documentation#

class Newton : public pele::GradientOptimizer#

Public Functions

Newton(
std::shared_ptr<BasePotential> potential,
const pele::Array<double> &x0,
double tol = 1e-6,
double threshold = std::numeric_limits<double>::epsilon(),
bool use_rattler_mask = false
)#

Newton method that ignores singular while calculating the inverse.

Uses a backtracking linesearch. If the hessian has singular values uses the minimum norm solution for solving the inverse.

Parameters:
  • potential – potential to minimize

  • x0 – initial guess

  • tol – stopping tolerance

  • threshold – threshold for the singular values of the hessian

  • max_iter – maximum number of iterations

inline virtual ~Newton()#

Destructor.

virtual void one_iteration()#

Do one iteration of the Newton method.

double compute_step()#
double compute_trust_region_step()#
Array<double> solve_subproblem()#
double ev(Eigen::MatrixXd, Array<double>)#
double get_rho_k(Array<double> p_k)#
inline virtual int get_nhev() const#

Reset the optimizer to start a new minimization from x0.

inline Eigen::VectorXd get_step() const#
void reset(Array<double> x)#
inline void get_rattler_details(Array<uint8_t> &not_rattlers, bool &jammed)#
inline bool is_jammed()#
virtual void compute_func_gradient(
Array<double> x,
double &func,
Array<double> gradient
)#

functions for LineSearch

Public Members

double delta_k#
double eta = 0.1#
Array<double> p_k#
Array<double> x_k#
double delta_max = 0.1#
double prev_e#