batmat main
Batched linear algebra routines
Loading...
Searching...
No Matches
trsm.hpp
Go to the documentation of this file.
1#pragma once
2
5#include <batmat/micro-kernels/trsm/export.h>
7
9
10struct BATMAT_LINALG_TRSM_EXPORT KernelConfig {
12 index_t rotate_B = 0;
13};
14
15template <class T, class Abi, KernelConfig Conf, index_t RowsReg, index_t ColsReg, StorageOrder OA,
18 uview<T, Abi, OD> D, index_t k) noexcept;
19
20template <class T, class Abi, KernelConfig Conf, StorageOrder OA, StorageOrder OB, StorageOrder OD>
21BATMAT_LINALG_TRSM_EXPORT void
23
24// Square block sizes greatly simplify handling of triangular matrices.
25using gemm::RowsReg;
26template <class T, class Abi>
27constexpr index_t ColsReg = RowsReg<T, Abi>;
28
29} // namespace batmat::linalg::micro_kernels::trsm
constexpr index_t RowsReg
Register block size of the matrix-matrix multiplication micro-kernels.
Definition avx-512.hpp:13
void trsm_copy_microkernel(uview< const T, Abi, OA > A, uview< const T, Abi, OB > B, uview< T, Abi, OD > D, index_t k) noexcept
Definition trsm.tpp:28
constexpr index_t RowsReg
Register block size of the matrix-matrix multiplication micro-kernels.
Definition avx-512.hpp:13
void trsm_copy_register(view< const T, Abi, OA > A, view< const T, Abi, OB > B, view< T, Abi, OD > D) noexcept
Triangular solve D = (A⁽ᵀ⁾)⁻¹ B⁽ᵀ⁾ where A⁽ᵀ⁾ is lower triangular.
Definition trsm.tpp:92
simd_view_types< std::remove_const_t< T >, Abi >::template view< T, Order > view
Definition uview.hpp:70