![]() |
batmat
0.0.14
Batched linear algebra routines
|
#include <batmat/kib.hpp>#include <batmat/linalg/copy.hpp>#include <batmat/linalg/flops.hpp>#include <batmat/linalg/micro-kernels/gemm-diag.hpp>#include <batmat/linalg/shift.hpp>#include <batmat/linalg/simdify.hpp>#include <batmat/linalg/triangular.hpp>#include <batmat/linalg/uview.hpp>#include <batmat/loop.hpp>#include <batmat/matrix/storage.hpp>#include <guanaqo/trace.hpp>#include <optional>Go to the source code of this file.
Multiplication of batches of matrices with diagonal scaling | |
| template<simdifiable VA, simdifiable VB, simdifiable VD, simdifiable Vd, detail::gemm_diag::track_zeros_opt... Opts> | |
| void | batmat::linalg::gemm_diag (VA &&A, VB &&B, VD &&D, Vd &&d, Opts... opts) |
| D = A diag(d) B. | |
| template<simdifiable VA, simdifiable VB, simdifiable VC, simdifiable VD, simdifiable Vd, detail::gemm_diag::track_zeros_opt... Opts> | |
| void | batmat::linalg::gemm_diag_add (VA &&A, VB &&B, VC &&C, VD &&D, Vd &&d, Opts... opts) |
| D = C + A diag(d) B. | |
| template<simdifiable VA, simdifiable VB, simdifiable VD, simdifiable Vd, detail::gemm_diag::track_zeros_opt... Opts> | |
| void | batmat::linalg::gemm_diag_add (VA &&A, VB &&B, VD &&D, Vd &&d, Opts... opts) |
| D += A diag(d) B. | |
| template<MatrixStructure SC, simdifiable VA, simdifiable VC, simdifiable VD, simdifiable Vd, detail::gemm_diag::track_zeros_opt... Opts> | |
| void | batmat::linalg::syrk_diag_add (VA &&A, Structured< VC, SC > C, Structured< VD, SC > D, Vd &&d, Opts... opts) |
| D = C + A diag(d) Aᵀ with C, D symmetric. | |
| template<MatrixStructure SC, simdifiable VA, simdifiable VD, simdifiable Vd, detail::gemm_diag::track_zeros_opt... Opts> | |
| void | batmat::linalg::syrk_diag_add (VA &&A, Structured< VD, SC > D, Vd &&d, Opts... opts) |
| D += A diag(d) Aᵀ with D symmetric. | |
Classes | |
| struct | batmat::linalg::track_zeros_t< Z > |
Namespaces | |
| namespace | batmat |
| namespace | batmat::linalg |
| namespace | batmat::linalg::detail |
| namespace | batmat::linalg::detail::gemm_diag |
Concepts | |
| concept | batmat::linalg::detail::gemm_diag::track_zeros_opt |
Functions | |
| template<class T, class Abi, micro_kernels::gemm_diag::KernelConfig Conf = {}, StorageOrder OA, StorageOrder OB, StorageOrder OC, StorageOrder OD> | |
| void | batmat::linalg::detail::gemm_diag::gemm_diag (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, view< const T, Abi > d) |
| template<class... Opts> | |
| constexpr micro_kernels::gemm_diag::KernelConfig | batmat::linalg::detail::gemm_diag::apply_options (micro_kernels::gemm_diag::KernelConfig conf, Opts...) |
Variables | |
| template<bool Z = true> | |
| constexpr track_zeros_t< Z > | batmat::linalg::track_zeros |
| template<class...> | |
| constexpr std::optional< bool > | batmat::linalg::detail::gemm_diag::get_track_zeros = std::nullopt |
| template<class T, class... Ts> | |
| constexpr std::optional< bool > | batmat::linalg::detail::gemm_diag::get_track_zeros< T, Ts... > = get_track_zeros<Ts...> |
| template<bool Z, class... Ts> | |
| constexpr std::optional< bool > | batmat::linalg::detail::gemm_diag::get_track_zeros< track_zeros_t< Z >, Ts... > = Z |
| template<class> | |
| constexpr bool | batmat::linalg::detail::gemm_diag::is_track_zeros_opt = false |
| template<bool Z> | |
| constexpr bool | batmat::linalg::detail::gemm_diag::is_track_zeros_opt< track_zeros_t< Z > > = true |