|
akreon-linalg
Fixed-size linear algebra and numerical methods in C++26.
|
Hessian as a linear operator. More...
#include <hessian.hpp>
Public Types | |
| using | OperatorBase = Endomorphism< Mat, Hessian< Mat, Type > > |
| alias from base class | |
| using | Vec = linalg::Vector< T, N > |
| alias to bring in vec | |
| using | T = matrix_scalar_t< Mat > |
| alias helpers for types | |
Public Types inherited from linalg::Endomorphism< Mat, Derived > | |
| using | T = matrix_scalar_t< Mat > |
| alias helpers for types | |
| using | ScalarT = real_type_t< T > |
| using | ComplexT = std::complex< ScalarT > |
Public Member Functions | |
| constexpr | Hessian (const Mat &A) |
| CTOR. | |
| constexpr auto | operator() (std::size_t i, std::size_t j) const |
| get element at (i,j) | |
| template<MatrixContainer MatX> requires (N == mat_rows_v<MatX>) | |
| constexpr auto | apply (const MatX &X) const |
| apply | |
| constexpr auto | apply (const Vec &x) const |
| apply | |
| constexpr auto | apply (const T &a) const |
| apply | |
| constexpr bool | is_pullback () const |
| is pullback | |
Public Member Functions inherited from linalg::Endomorphism< Mat, Derived > | |
| constexpr const T & | operator() (std::size_t i, std::size_t j) const |
| get element at (i,j) index | |
| constexpr T & | operator() (std::size_t i, std::size_t j) |
| get element at (i,j) index | |
| constexpr Derived & | self () |
| self | |
| constexpr const Derived & | self () const |
| self | |
Public Attributes | |
| Mat | H |
| member variables | |
Static Public Attributes | |
| static constexpr std::size_t | N |
| helper from base to get num rows | |
Static Public Attributes inherited from linalg::Endomorphism< Mat, Derived > | |
| static constexpr std::size_t | N = mat_rows_v<Mat> |
| helper to extract N | |
Hessian as a linear operator.
forward declaration of hessian
pushforward H: A(X) -> B, acts as a push-forward operator mapping primal / tangent vectors onto a change of gradient (i.e., F''(w)x -> s)
pullback H^{-1}: B(x) -> A, (i.e., F''(w)^{-1} s -> x) acts as a pull-back operator mapping gradient space vectors back to tangent / primal direction
Definition at line 25 of file hessian.hpp.
| using linalg::Hessian< Mat, Type >::OperatorBase = Endomorphism<Mat, Hessian<Mat, Type> > |
alias from base class
Definition at line 27 of file hessian.hpp.
| using linalg::Endomorphism< Mat, Derived >::T = matrix_scalar_t<Mat> |
alias helpers for types
Definition at line 18 of file endomorphism.hpp.
| using linalg::Hessian< Mat, Type >::Vec = linalg::Vector<T, N> |
alias to bring in vec
Definition at line 34 of file hessian.hpp.
|
inlineexplicitconstexpr |
|
inlineconstexpr |
apply
H : A(X) -> B H^{-1} : B(X) -> A
| Mat | X |
Definition at line 64 of file hessian.hpp.
References linalg::Hessian< Mat, Type >::H, and linalg::mat_rows_v.
|
inlineconstexpr |
apply
H : H(a) = aH (same for inv)
| a | scalar |
Definition at line 89 of file hessian.hpp.
References linalg::Hessian< Mat, Type >::H, and linalg::mat_rows_v.
|
inlineconstexpr |
apply
H : A(x) -> b H^{-1} : A^{-1}(b) = x
| Vec | x |
Definition at line 78 of file hessian.hpp.
References linalg::Hessian< Mat, Type >::H.
|
inlineconstexpr |
is pullback
Definition at line 96 of file hessian.hpp.
References linalg::mat_rows_v, and linalg::PULLBACK.
|
inlineconstexpr |
get element at (i,j)
Definition at line 48 of file hessian.hpp.
References linalg::Hessian< Mat, Type >::H, and linalg::mat_rows_v.
| Mat linalg::Hessian< Mat, Type >::H |
member variables
hessian mat
Definition at line 101 of file hessian.hpp.
Referenced by linalg::Hessian< Mat, Type >::apply(), linalg::Hessian< Mat, Type >::apply(), linalg::Hessian< Mat, Type >::apply(), and linalg::Hessian< Mat, Type >::operator()().
|
staticconstexpr |
helper from base to get num rows
Definition at line 23 of file endomorphism.hpp.