batmat 0.0.13
Batched linear algebra routines
Loading...
Searching...
No Matches
syomv.hpp
Go to the documentation of this file.
1#pragma once
2
5#include <batmat/lut.hpp>
7
9
14
15template <class T, class Abi, KernelConfig Conf, index_t RowsReg, StorageOrder OA, StorageOrder OB,
16 StorageOrder OD>
18 index_t l0, index_t k) noexcept;
19
20template <class T, class Abi, KernelConfig Conf, StorageOrder OA, StorageOrder OB, StorageOrder OD>
22 view<T, Abi, OD> D) noexcept;
23
24// Square block sizes greatly simplify handling of triangular matrices.
25using gemm::RowsReg;
26
27template <class T, class Abi, KernelConfig Conf, StorageOrder OA, StorageOrder OB, StorageOrder OD>
28inline const constinit auto syomv_lut =
31 });
32
33} // namespace batmat::linalg::micro_kernels::syomv
consteval auto make_1d_lut(F f)
Returns an array of the form:
Definition lut.hpp:39
constexpr index_t RowsReg
Register block size of the matrix-matrix multiplication micro-kernels.
Definition avx-512.hpp:13
const constinit auto syomv_lut
Definition syomv.hpp:28
constexpr index_t RowsReg
Register block size of the matrix-matrix multiplication micro-kernels.
Definition avx-512.hpp:13
void syomv_microkernel(uview< const T, Abi, OA > A, uview< const T, Abi, OB > B, uview< T, Abi, OD > D, index_t l0, index_t k) noexcept
Symmetric off-diagonal block multiply. Single register block.
Definition syomv.tpp:17
void syomv_register(view< const T, Abi, OA > A, view< const T, Abi, OB > B, view< T, Abi, OD > D) noexcept
Generalized matrix multiplication D = C ± A⁽ᵀ⁾ B⁽ᵀ⁾. Using register blocking.
Definition syomv.tpp:56
simd_view_types< std::remove_const_t< T >, Abi >::template view< T, Order > view
Definition uview.hpp:70
std::integral_constant< index_t, I > index_constant
Definition lut.hpp:10