#include <IpplOperations.h>
|
| KOKKOS_FUNCTION | meta_hess (const E &u, const typename E::Mesh_t::vector_type vectors[], const typename E::Mesh_t::vector_type &hvector) |
| template<typename... Idx> |
| KOKKOS_INLINE_FUNCTION auto | operator() (const Idx... args) const |
| KOKKOS_INLINE_FUNCTION auto | operator[] (size_t i) const |
|
| static constexpr unsigned | dim = E::dim |
|
| template<size_t... row, typename... Idx> |
| KOKKOS_INLINE_FUNCTION constexpr void | computeHessian (const std::index_sequence< row... > &is, matrix_type &hessian, const Idx... args) const |
| template<size_t row, size_t... col, typename... Idx> |
| KOKKOS_INLINE_FUNCTION constexpr int | hessianRow (const std::index_sequence< col... > &, matrix_type &hessian, const Idx... args) const |
| template<size_t row, size_t col, typename... Idx> |
| KOKKOS_INLINE_FUNCTION constexpr vector_type | hessianEntry (const Idx... args) const |
template<typename E>
struct ippl::detail::meta_hess< E >
Meta function of Hessian
Definition at line 518 of file IpplOperations.h.
◆ matrix_type
◆ Mesh_t
◆ vector_type
◆ meta_hess()
template<typename E>
| KOKKOS_FUNCTION ippl::detail::meta_hess< E >::meta_hess |
( |
const E & | u, |
|
|
const typename E::Mesh_t::vector_type | vectors[], |
|
|
const typename E::Mesh_t::vector_type & | hvector ) |
|
inline |
◆ computeHessian()
template<typename E>
template<size_t... row, typename... Idx>
| KOKKOS_INLINE_FUNCTION constexpr void ippl::detail::meta_hess< E >::computeHessian |
( |
const std::index_sequence< row... > & | is, |
|
|
matrix_type & | hessian, |
|
|
const Idx... | args ) const |
|
inlineconstexprprivate |
Utility function for computing the Hessian. Computes the rows of the matrix one by one via fold expression.
- Template Parameters
-
| row... | the row indices (in practice, the sequence 0...Dim - 1) |
| Idx... | the indices at which to access the field view |
- Parameters
-
| is | index sequence (reused for row computation) |
| hessian | matrix in which to store the Hessian |
| args... | the indices |
Definition at line 564 of file IpplOperations.h.
References hessianRow().
Referenced by operator()().
◆ hessianEntry()
template<typename E>
template<size_t row, size_t col, typename... Idx>
Utility function for computing the Hessian. Computes a single entry of the matrix
- Template Parameters
-
| row | the row index |
| col | the column index |
| Idx... | the indices at which to access the field view |
- Parameters
-
- Returns
- The entry of the Hessian at the given row and column
Definition at line 602 of file IpplOperations.h.
References ippl::apply(), dim, hvector_m, u_m, and vectors_m.
Referenced by hessianRow().
◆ hessianRow()
template<typename E>
template<size_t row, size_t... col, typename... Idx>
Utility function for computing the Hessian. Computes the entries in a single row of the matrix via fold expression.
- Template Parameters
-
| row | the row index |
| col... | the column indices (in practice, the sequence 0...Dim - 1) |
| Idx... | the indices at which to access the field view |
- Parameters
-
| hessian | matrix in which to store the hessian |
| args... | the indices |
- Returns
- An unused dummy value (required to allow use of a more performant fold expression)
Definition at line 585 of file IpplOperations.h.
References hessianEntry().
Referenced by computeHessian().
◆ operator()()
template<typename E>
template<typename... Idx>
◆ operator[]()
◆ dim
◆ hvector_m
◆ u_m
◆ vectors_m
The documentation for this struct was generated from the following file: