batmat 0.0.18
Batched linear algebra routines
Loading...
Searching...
No Matches
gemm-diag.hpp File Reference
#include <batmat/linalg/structure.hpp>
#include <batmat/linalg/uview.hpp>
#include <batmat/micro-kernels/gemm-diag/export.h>
#include <batmat/platform/platform.hpp>
#include <optional>
#include <type_traits>
#include <utility>

Go to the source code of this file.

Classes

struct  batmat::linalg::micro_kernels::gemm_diag::KernelConfig

Namespaces

namespace  batmat
namespace  batmat::linalg
namespace  batmat::linalg::micro_kernels
namespace  batmat::linalg::micro_kernels::gemm_diag

Functions

template<class T, class Abi, KernelConfig Conf, index_t RowsReg, index_t ColsReg, StorageOrder OA, StorageOrder OB, StorageOrder OC, StorageOrder OD>
std::conditional_t< Conf.track_zeros, std::pair< index_t, index_t >, void > batmat::linalg::micro_kernels::gemm_diag::gemm_diag_copy_microkernel (const uview< const T, Abi, OA > A, const uview< const T, Abi, OB > B, const std::optional< uview< const T, Abi, OC > > C, const uview< T, Abi, OD > D, const uview_vec< const T, Abi > d, const index_t k) noexcept
 Generalized matrix multiplication D = C ± A⁽ᵀ⁾ diag(d) B⁽ᵀ⁾. Single register block.
template<class T, class Abi, KernelConfig Conf, StorageOrder OA, StorageOrder OB, StorageOrder OC, StorageOrder OD>
void batmat::linalg::micro_kernels::gemm_diag::gemm_diag_copy_register (const view< const T, Abi, OA > A, const view< const T, Abi, OB > B, const std::optional< view< const T, Abi, OC > > C, const view< T, Abi, OD > D, view< const T, Abi > d) noexcept
 Generalized matrix multiplication D = C ± A⁽ᵀ⁾ diag(d) B⁽ᵀ⁾. Using register blocking.

Variables

template<class T, class Abi>
constexpr index_t batmat::linalg::micro_kernels::gemm_diag::ColsReg = RowsReg<T, Abi>
template<class T, class Abi>
constexpr index_t batmat::linalg::micro_kernels::gemm_diag::RowsReg
 Register block size of the matrix-matrix multiplication micro-kernels.

Class Documentation

◆ batmat::linalg::micro_kernels::gemm_diag::KernelConfig

struct batmat::linalg::micro_kernels::gemm_diag::KernelConfig
Class Members
bool negate = false
bool track_zeros = false
MatrixStructure struc_C = MatrixStructure::General