|
| template<simdifiable VA, simdifiable VB, simdifiable VD, shift_opt... Opts> |
| void | batmat::linalg::gemm (VA &&A, VB &&B, VD &&D, TilingOptions packing={}, Opts... opts) |
| | D = A B.
|
| template<simdifiable VA, simdifiable VB, simdifiable VD, shift_opt... Opts> |
| void | batmat::linalg::gemm_neg (VA &&A, VB &&B, VD &&D, TilingOptions packing={}, Opts... opts) |
| | D = -A B.
|
| template<simdifiable VA, simdifiable VB, simdifiable VC, simdifiable VD, shift_opt... Opts> |
| void | batmat::linalg::gemm_add (VA &&A, VB &&B, VC &&C, VD &&D, TilingOptions packing={}, Opts... opts) |
| | D = C + A B.
|
| template<simdifiable VA, simdifiable VB, simdifiable VD, shift_opt... Opts> |
| void | batmat::linalg::gemm_add (VA &&A, VB &&B, VD &&D, TilingOptions packing={}, Opts... opts) |
| | D += A B.
|
| template<simdifiable VA, simdifiable VB, simdifiable VC, simdifiable VD, shift_opt... Opts> |
| void | batmat::linalg::gemm_sub (VA &&A, VB &&B, VC &&C, VD &&D, TilingOptions packing={}, Opts... opts) |
| | D = C - A B.
|
| template<simdifiable VA, simdifiable VB, simdifiable VD, shift_opt... Opts> |
| void | batmat::linalg::gemm_sub (VA &&A, VB &&B, VD &&D, TilingOptions packing={}, Opts... opts) |
| | D -= A B.
|
|
| template<MatrixStructure SA, MatrixStructure SD, simdifiable VA, simdifiable VD, shift_opt... Opts> |
| void | batmat::linalg::syrk (Structured< VA, SA > A, Structured< VD, SD > D, Opts... opts) |
| | D = A Aᵀ with D symmetric.
|
| template<MatrixStructure SD, class TA, simdifiable VD, shift_opt... Opts> |
| void | batmat::linalg::syrk (TA &&A, Structured< VD, SD > D, Opts... opts) |
| | D = A Aᵀ with D symmetric.
|
| template<MatrixStructure SD, simdifiable VD, shift_opt... Opts> |
| void | batmat::linalg::syrk (Structured< VD, SD > D, Opts... opts) |
| | D = D Dᵀ with D triangular on input and symmetric on output.
|
| template<MatrixStructure SA, MatrixStructure SD, simdifiable VA, simdifiable VD, shift_opt... Opts> |
| void | batmat::linalg::syrk_neg (Structured< VA, SA > A, Structured< VD, SD > D, Opts... opts) |
| | D = -A Aᵀ with D symmetric.
|
| template<MatrixStructure SD, class TA, simdifiable VD, shift_opt... Opts> |
| void | batmat::linalg::syrk_neg (TA &&A, Structured< VD, SD > D, Opts... opts) |
| | D = A Aᵀ with D symmetric.
|
| template<MatrixStructure SD, simdifiable VD, shift_opt... Opts> |
| void | batmat::linalg::syrk_neg (Structured< VD, SD > D, Opts... opts) |
| | D = -D Dᵀ with D triangular on input and symmetric on output.
|
| template<MatrixStructure SD, simdifiable VA, simdifiable VC, simdifiable VD, shift_opt... Opts> |
| void | batmat::linalg::syrk_add (VA &&A, Structured< VC, SD > C, Structured< VD, SD > D, Opts... opts) |
| | D = C + A Aᵀ with C, D symmetric.
|
| template<MatrixStructure SD, simdifiable VA, simdifiable VD, shift_opt... Opts> |
| void | batmat::linalg::syrk_add (VA &&A, Structured< VD, SD > D, Opts... opts) |
| | D += A Aᵀ with D symmetric.
|
| template<MatrixStructure SD, simdifiable VA, simdifiable VC, simdifiable VD, shift_opt... Opts> |
| void | batmat::linalg::syrk_sub (VA &&A, Structured< VC, SD > C, Structured< VD, SD > D, Opts... opts) |
| | D = C - A Aᵀ with C, D symmetric.
|
| template<MatrixStructure SD, simdifiable VA, simdifiable VD, shift_opt... Opts> |
| void | batmat::linalg::syrk_sub (VA &&A, Structured< VD, SD > D, Opts... opts) |
| | D -= A Aᵀ with D symmetric.
|
|
| template<MatrixStructure SA, MatrixStructure SB, MatrixStructure SD, simdifiable VA, simdifiable VB, simdifiable VD, shift_opt... Opts> |
| void | batmat::linalg::trmm (Structured< VA, SA > A, Structured< VB, SB > B, Structured< VD, SD > D, Opts... opts) |
| | D = A B with A and/or B triangular.
|
| template<class TA, class TB, class TD, shift_opt... Opts> |
| void | batmat::linalg::trmm (TA &&A, TB &&B, TD &&D, Opts... opts) |
| | D = A B with A and/or B triangular.
|
| template<MatrixStructure SA, simdifiable VA, simdifiable VD, shift_opt... Opts> |
| void | batmat::linalg::trmm (Structured< VA, SA > A, VD &&D, Opts... opts) |
| | D = A D with A triangular.
|
| template<MatrixStructure SB, simdifiable VB, simdifiable VD, shift_opt... Opts> |
| void | batmat::linalg::trmm (VD &&D, Structured< VB, SB > B, Opts... opts) |
| | D = D B with B triangular.
|
| template<MatrixStructure SA, MatrixStructure SB, MatrixStructure SD, simdifiable VA, simdifiable VB, simdifiable VD, shift_opt... Opts> |
| void | batmat::linalg::trmm_neg (Structured< VA, SA > A, Structured< VB, SB > B, Structured< VD, SD > D, Opts... opts) |
| | D = -A B with A and/or B triangular.
|
| template<class TA, class TB, class TD, shift_opt... Opts> |
| void | batmat::linalg::trmm_neg (TA &&A, TB &&B, TD &&D, Opts... opts) |
| | D = -A B with A and/or B triangular.
|
| template<MatrixStructure SA, MatrixStructure SB, MatrixStructure SD, simdifiable VA, simdifiable VB, simdifiable VC, simdifiable VD, shift_opt... Opts> |
| void | batmat::linalg::trmm_add (Structured< VA, SA > A, Structured< VB, SB > B, Structured< VC, SD > C, Structured< VD, SD > D, Opts... opts) |
| | D = C + A B with A and/or B triangular.
|
| template<class TA, class TB, class TC, class TD, shift_opt... Opts> |
| void | batmat::linalg::trmm_add (TA &&A, TB &&B, TC &&C, TD &&D, Opts... opts) |
| | D = C + A B with A and/or B triangular.
|
| template<MatrixStructure SA, MatrixStructure SB, MatrixStructure SD, simdifiable VA, simdifiable VB, simdifiable VC, simdifiable VD, shift_opt... Opts> |
| void | batmat::linalg::trmm_sub (Structured< VA, SA > A, Structured< VB, SB > B, Structured< VC, SD > C, Structured< VD, SD > D, Opts... opts) |
| | D = C - A B with A and/or B triangular.
|
| template<class TA, class TB, class TC, class TD, shift_opt... Opts> |
| void | batmat::linalg::trmm_sub (TA &&A, TB &&B, TC &&C, TD &&D, Opts... opts) |
| | D = C - A B with A and/or B triangular.
|
|
| template<class T, class Abi, micro_kernels::gemm::KernelConfig Conf = {}, StorageOrder OA, StorageOrder OB, StorageOrder OC, StorageOrder OD> |
| void | batmat::linalg::detail::gemm (view< const T, Abi, OA > A, view< const T, Abi, OB > B, std::optional< view< const T, Abi, OC > > C, view< T, Abi, OD > D, TilingOptions packing={}) |
| template<class T, class Abi, micro_kernels::gemm::KernelConfig Conf = {}, StorageOrder OA, StorageOrder OB, StorageOrder OC, StorageOrder OD> |
| void | batmat::linalg::detail::gemmt (view< const T, Abi, OA > A, view< const T, Abi, OB > B, std::optional< view< const T, Abi, OC > > C, view< T, Abi, OD > D) |
| template<class T, class Abi, micro_kernels::gemm::KernelConfig Conf = {}, StorageOrder OA, StorageOrder OB, StorageOrder OC, StorageOrder OD> |
| void | batmat::linalg::detail::trmm (view< const T, Abi, OA > A, view< const T, Abi, OB > B, std::optional< view< const T, Abi, OC > > C, view< T, Abi, OD > D) |
| template<shift_opt... Opts> |
| constexpr micro_kernels::gemm::KernelConfig | batmat::linalg::detail::apply_gemm_options (micro_kernels::gemm::KernelConfig conf, Opts...) |