batmat develop
Batched linear algebra routines
Loading...
Searching...
No Matches
geqrf.hpp File Reference
#include <batmat/linalg/structure.hpp>
#include <batmat/linalg/uview.hpp>
#include <batmat/lut.hpp>
#include <batmat/micro-kernels/geqrf/export.h>
#include <batmat/platform/platform.hpp>
#include <batmat/simd.hpp>

Go to the source code of this file.

Classes

struct  batmat::linalg::micro_kernels::geqrf::KernelConfig

Namespaces

namespace  batmat
namespace  batmat::linalg
namespace  batmat::linalg::micro_kernels
namespace  batmat::linalg::micro_kernels::geqrf

Functions

template<class T, class Abi, KernelConfig Conf, index_t R, StorageOrder OA, StorageOrder OD>
void batmat::linalg::micro_kernels::geqrf::geqrf_diag_microkernel (index_t k, triangular_accessor< T, Abi, SizeR< T, Abi > > W, uview< const T, Abi, OA > A, uview< T, Abi, OD > D) noexcept
template<class T, class Abi, KernelConfig Conf, index_t R, StorageOrder OA, StorageOrder OD>
void batmat::linalg::micro_kernels::geqrf::geqrf_full_microkernel (index_t k, uview< const T, Abi, OA > A, uview< T, Abi, OD > D) noexcept
 A (k×R) D (k×R).
template<class T, class Abi, KernelConfig Conf, index_t R, index_t S, StorageOrder OA, StorageOrder OD, StorageOrder OB>
void batmat::linalg::micro_kernels::geqrf::geqrf_tail_microkernel (index_t k, bool transposed, triangular_accessor< const T, Abi, SizeR< T, Abi > > W, uview< const T, Abi, OA > A, uview< T, Abi, OD > D, uview< const T, Abi, OB > B) noexcept
template<class T, class Abi, StorageOrder OA>
constexpr std::pair< index_t, index_tbatmat::linalg::micro_kernels::geqrf::geqrf_W_size (view< T, Abi, OA > A)
template<class T, class Abi, KernelConfig Conf = {}, StorageOrder OA = StorageOrder::ColMajor, StorageOrder OD = StorageOrder::ColMajor>
void batmat::linalg::micro_kernels::geqrf::geqrf_copy_register (const view< const T, Abi, OA > A, const view< T, Abi, OD > D, const view< T, Abi > W) noexcept
 Block hyperbolic Householder factorization update using register blocking.
template<class T, class Abi, KernelConfig Conf, StorageOrder OA, StorageOrder OD, StorageOrder OB>
void batmat::linalg::micro_kernels::geqrf::geqrf_apply_register (const view< const T, Abi, OA > A, const view< T, Abi, OD > D, const view< const T, Abi, OB > B, const view< const T, Abi > W, bool transposed, bool reversed) noexcept
 Apply a block Householder transformation.

Variables

template<class T, class Abi>
constexpr index_t batmat::linalg::micro_kernels::geqrf::SizeR = gemm::RowsReg<T, Abi>
template<class T, class Abi>
constexpr index_t batmat::linalg::micro_kernels::geqrf::SizeS = gemm::RowsReg<T, Abi>

Class Documentation

◆ batmat::linalg::micro_kernels::geqrf::KernelConfig

struct batmat::linalg::micro_kernels::geqrf::KernelConfig