10#ifndef TLAPACK_STARPU_HERK_HH
11#define TLAPACK_STARPU_HERK_HH
21template <
class TA,
class TC,
class alpha_t,
class beta_t>
56 for (idx_t ix = 0; ix < nx; ++ix) {
59 beta,
C.tile(ix, ix));
60 for (idx_t iy = 1; iy < ny; ++iy)
61 starpu::insert_task_herk<TA, TC>(
65 auto Ai =
A.get_const_tiles(ix, 0, 1, ny);
66 auto Bi =
A.get_const_tiles(ix + 1, 0, nx - ix - 1, ny);
68 auto Ci =
C.get_tiles(ix, ix + 1, 1, nx - ix - 1);
72 auto Ci =
C.get_tiles(ix + 1, ix, nx - ix - 1, 1);
78 for (idx_t ix = 0; ix < nx; ++ix) {
81 beta,
C.tile(ix, ix));
82 for (idx_t iy = 1; iy < ny; ++iy)
83 starpu::insert_task_herk<TA, TC>(
87 auto Ai =
A.get_const_tiles(0, ix, ny, 1);
88 auto Bi =
A.get_const_tiles(0, ix + 1, ny, nx - ix - 1);
90 auto Ci =
C.get_tiles(ix, ix + 1, 1, nx - ix - 1);
94 auto Ci =
C.get_tiles(ix + 1, ix, nx - ix - 1, 1);
Class for representing a matrix in StarPU that is split into tiles.
Definition Matrix.hpp:134
void herk(Uplo uplo, Op trans, const alpha_t &alpha, const matrixA_t &A, const beta_t &beta, matrixC_t &C)
Hermitian rank-k update:
Definition herk.hpp:68
void gemm(Op transA, Op transB, const alpha_t &alpha, const matrixA_t &A, const matrixB_t &B, const beta_t &beta, matrixC_t &C)
General matrix-matrix multiply:
Definition gemm.hpp:61
#define tlapack_check_false(cond)
Throw an error if cond is true.
Definition exceptionHandling.hpp:113
Sort the numbers in D in increasing order (if ID = 'I') or in decreasing order (if ID = 'D' ).
Definition arrayTraits.hpp:15
typename traits::real_type_traits< Types..., int >::type real_type
The common real type of the list of types.
Definition scalar_type_traits.hpp:113
Op
Definition types.hpp:227
@ ConjTrans
conjugate transpose
constexpr internal::ConjTranspose CONJ_TRANS
conjugate transpose
Definition types.hpp:264
Uplo
Definition types.hpp:50
@ General
0 <= i <= m, 0 <= j <= n.
@ Upper
0 <= i <= j, 0 <= j <= n.
@ Lower
0 <= i <= m, 0 <= j <= i.
constexpr internal::NoTranspose NO_TRANS
no transpose
Definition types.hpp:260
Task insertion functions.