9#include <guanaqo/trace.hpp>
14template <
class T,
class Abi, micro_kernels::trtri::KernelConfig Conf,
StorageOrder OA,
22 const index_t M = D.rows(), N = D.cols();
26 if (M == 0 || N == 0) [[unlikely]]
39template <simdifiable VA, simdifiable VD>
49template <simdifiable VA, simdifiable VD>
57template <simdifiable VD>
65template <simdifiable VD>
constexpr FlopCount trtri(index_t m)
Triangular inversion of an m×m matrix.
void trtri(Structured< VA, MatrixStructure::LowerTriangular > A, Structured< VD, MatrixStructure::LowerTriangular > D)
D = A⁻¹ with A, D lower triangular.
#define GUANAQO_TRACE_LINALG(name, gflops)
void trtri(view< const T, Abi, OA > A, view< T, Abi, OD > D)
void trtri_copy_register(view< const T, Abi, OA > A, view< T, Abi, OD > D) noexcept
typename detail::simdified_abi< V >::type simdified_abi_t
constexpr bool simdify_compatible
constexpr auto simdify(simdifiable auto &&a) -> simdified_view_t< decltype(a)>
simd_view_types< std::remove_const_t< T >, Abi >::template view< T, Order > view
Light-weight wrapper class used for overload resolution of triangular and symmetric matrices.
constexpr auto transposed() const &