#include <alpaqa/accelerators/steihaugcg.hpp>
Steihaug conjugate gradients procedure based on https://github.com/scipy/scipy/blob/583e70a50573169fc352b5dc6d94588a97c7389a/scipy/optimize/_trustregion_ncg.py#L44.
Definition at line 20 of file steihaugcg.hpp.
Public Types | |
using | Params = SteihaugCGParams< config_t > |
Public Member Functions | |
SteihaugCG ()=default | |
SteihaugCG (const Params ¶ms) | |
void | resize (length_t n) |
template<class HessFun > | |
real_t | solve (const auto &grad, const HessFun &hess_prod, real_t trust_radius, rvec step) const |
Static Public Member Functions | |
static auto | get_boundaries_intersections (crvec z, crvec d, real_t trust_radius) |
Solve the scalar quadratic equation ||z + t d|| == trust_radius. | |
Public Attributes | |
Params | params |
vec | z |
vec | r |
vec | d |
vec | Bd |
vec | work_eval |
using Params = SteihaugCGParams<config_t> |
Definition at line 23 of file steihaugcg.hpp.
|
default |
|
inline |
Definition at line 27 of file steihaugcg.hpp.
|
inline |
Definition at line 40 of file steihaugcg.hpp.
|
inlinestatic |
Solve the scalar quadratic equation ||z + t d|| == trust_radius.
This is like a line-sphere intersection. Return the two values of t, sorted from low to high.
Definition at line 122 of file steihaugcg.hpp.
Params params |
Definition at line 24 of file steihaugcg.hpp.
|
mutable |
Definition at line 29 of file steihaugcg.hpp.
vec r |
Definition at line 29 of file steihaugcg.hpp.
vec d |
Definition at line 29 of file steihaugcg.hpp.
vec Bd |
Definition at line 29 of file steihaugcg.hpp.
vec work_eval |
Definition at line 29 of file steihaugcg.hpp.