NumericAL
A header-only C++20 lexer built on REAL
Loading...
Searching...
No Matches
Static Public Member Functions | List of all members
numerical::detail::b_transposed Struct Reference

B given as Bᵀ: row-major, n × k, its rows ldb apart (C = A·Bᵀᵀ, no copy of the transpose). More...

#include <gemm.hpp>

Static Public Member Functions

template<std::size_t Nr, typename T >
static void pack (const T *bt, std::size_t ldbt, std::size_t p0, std::size_t j0, std::size_t kc, std::size_t cols, T *out)
 The kc × cols block of B from row p0 and column j0 (Bᵀ's rows from j0, its columns from p0) into slivers of Nr columns.
 
template<typename Kernel >
static constexpr bool in_place (std::size_t) noexcept
 Never in place: a sliver's columns lie apart.
 
template<typename T >
static const T * rows_of (const T *x, std::size_t ld, std::size_t rows, std::size_t cols, buffer< T > &scratch, std::size_t &ld_out)
 The rows × cols operand row-major for the plain loop, copied from its transpose x (ld apart) into scratch.
 
template<typename T >
static const T & at (const T *bt, std::size_t ldbt, std::size_t p, std::size_t j) noexcept
 B's element in row p and column j: Bᵀ's in row j and column p.
 

Detailed Description

B given as Bᵀ: row-major, n × k, its rows ldb apart (C = A·Bᵀᵀ, no copy of the transpose).

Definition at line 828 of file gemm.hpp.

Member Function Documentation

◆ at()

template<typename T >
static const T & numerical::detail::b_transposed::at ( const T *  bt,
std::size_t  ldbt,
std::size_t  p,
std::size_t  j 
)
inlinestaticnoexcept

B's element in row p and column j: Bᵀ's in row j and column p.

Definition at line 867 of file gemm.hpp.

◆ in_place()

template<typename Kernel >
static constexpr bool numerical::detail::b_transposed::in_place ( std::size_t  )
inlinestaticconstexprnoexcept

Never in place: a sliver's columns lie apart.

Definition at line 847 of file gemm.hpp.

◆ pack()

template<std::size_t Nr, typename T >
static void numerical::detail::b_transposed::pack ( const T *  bt,
std::size_t  ldbt,
std::size_t  p0,
std::size_t  j0,
std::size_t  kc,
std::size_t  cols,
T *  out 
)
inlinestatic

The kc × cols block of B from row p0 and column j0 (Bᵀ's rows from j0, its columns from p0) into slivers of Nr columns.

Definition at line 834 of file gemm.hpp.

◆ rows_of()

template<typename T >
static const T * numerical::detail::b_transposed::rows_of ( const T *  x,
std::size_t  ld,
std::size_t  rows,
std::size_t  cols,
buffer< T > &  scratch,
std::size_t &  ld_out 
)
inlinestatic

The rows × cols operand row-major for the plain loop, copied from its transpose x (ld apart) into scratch.

Definition at line 855 of file gemm.hpp.


The documentation for this struct was generated from the following file: