#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 39 of file steihaugcg.hpp.
Collaboration diagram for SteihaugCG< Conf >: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 42 of file steihaugcg.hpp.
|
default |
|
inline |
Definition at line 46 of file steihaugcg.hpp.
|
inline |
Definition at line 59 of file steihaugcg.hpp.
Here is the call graph for this function:
Here is the caller graph for this function:
|
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 146 of file steihaugcg.hpp.
Here is the caller graph for this function:| Params params |
Definition at line 43 of file steihaugcg.hpp.
|
mutable |
Definition at line 48 of file steihaugcg.hpp.
| vec r |
Definition at line 48 of file steihaugcg.hpp.
| vec d |
Definition at line 48 of file steihaugcg.hpp.
| vec Bd |
Definition at line 48 of file steihaugcg.hpp.
| vec work_eval |
Definition at line 48 of file steihaugcg.hpp.