batmat develop
Batched linear algebra routines
Loading...
Searching...
No Matches
small-potrf.hpp
Go to the documentation of this file.
1#pragma once
2
5#include <batmat/micro-kernels/small-potrf/export.h>
7
9
10struct BATMAT_LINALG_SMALL_POTRF_EXPORT KernelConfig {
11 bool negate_A = false; ///< Whether to compute chol(C - AAᵀ) instead of chol(C + AAᵀ)
12};
13
14template <class T>
16
17template <class T, index_t NC> // number of columns to handle at once
19
20template <class T, index_t RowsReg, index_t ColsReg>
22 scalar_view<T> L22) noexcept;
23
24template <class T, index_t RowsReg = 4>
25BATMAT_LINALG_SMALL_POTRF_EXPORT void small_potrf(view<const T, datapar::scalar_abi<T>> A,
27 index_t n = -1) noexcept;
28
29template <class T, KernelConfig Conf, index_t NC, index_t NR>
30BATMAT_LINALG_SMALL_POTRF_EXPORT void
32 scalar_view<const T> L21, scalar_view<const T> A22,
33 scalar_view<T> L22) noexcept;
34
35template <class T, KernelConfig Conf, index_t RowsReg = 4, index_t S = 8>
36BATMAT_LINALG_SMALL_POTRF_EXPORT void small_potrf_left(view<const T, datapar::scalar_abi<T>> A,
37 view<const T, datapar::scalar_abi<T>> C,
38 view<T, datapar::scalar_abi<T>> D) noexcept;
39
40} // namespace batmat::linalg::micro_kernels::small_potrf
deduced_abi< Tp, 1 > scalar_abi
Definition simd.hpp:239
uview< T, datapar::scalar_abi< std::remove_const_t< T > >, StorageOrder::ColMajor > scalar_view
void small_potrf_left(view< const T, datapar::scalar_abi< T > > A, view< const T, datapar::scalar_abi< T > > C, view< T, datapar::scalar_abi< T > > D) noexcept
void potrf_syrk_microkernel(index_t k, scalar_view< const T > L21, scalar_view< const T > A22, scalar_view< T > L22) noexcept
Outer product for updating the bottom right tail during Cholesky factorization.
void potrf_trsm_microkernel(index_t k, scalar_view< const T > A, scalar_view< T > L) noexcept
bool negate_A
Whether to compute chol(C - AAᵀ) instead of chol(C + AAᵀ).
void small_potrf(view< const T, datapar::scalar_abi< T > > A, view< T, datapar::scalar_abi< T > > L, index_t n=-1) noexcept
void syrk_potrf_trsm_microkernel(index_t m, index_t k0, scalar_view< const T > L20, index_t k, scalar_view< const T > L21, scalar_view< const T > A22, scalar_view< T > L22) noexcept
Left-looking variant of small_potrf, which updates the current block with the outer product of the pr...
simd_view_types< std::remove_const_t< T >, Abi >::template view< T, Order > view
Definition uview.hpp:70
int index_t
Definition config.hpp:13