10#ifndef TLAPACK_LU_MULT_HH
11#define TLAPACK_LU_MULT_HH
39template <TLAPACK_SMATRIX matrix_t>
47 const idx_t m = nrows(
A);
48 const idx_t n = ncols(
A);
55 if (n <= (idx_t)
opts.nx) {
56 for (idx_t
i2 = n;
i2 > 0; --
i2) {
58 for (idx_t
j2 = n;
j2 > 0; --
j2) {
61 for (idx_t
k = 0;
k <= min(i, j); ++
k) {
73 const idx_t
n0 = n / 2;
void lu_mult(matrix_t &A, const LuMultOpts &opts={})
in-place multiplication of lower triangular matrix L and upper triangular matrix U.
Definition lu_mult.hpp:40
void trmm(Side side, Uplo uplo, Op trans, Diag diag, const alpha_t &alpha, const matrixA_t &A, matrixB_t &B)
Triangular matrix-matrix multiply:
Definition trmm.hpp:72
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(cond)
Throw an error if cond is false.
Definition exceptionHandling.hpp:98
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
constexpr internal::LowerTriangle LOWER_TRIANGLE
Lower Triangle access.
Definition types.hpp:188
constexpr internal::UpperTriangle UPPER_TRIANGLE
Upper Triangle access.
Definition types.hpp:186
constexpr internal::RightSide RIGHT_SIDE
right side
Definition types.hpp:296
constexpr internal::UnitDiagonal UNIT_DIAG
The main diagonal is assumed to consist of 1's.
Definition types.hpp:222
constexpr internal::NonUnitDiagonal NON_UNIT_DIAG
The main diagonal is not assumed to consist of 1's.
Definition types.hpp:220
constexpr internal::NoTranspose NO_TRANS
no transpose
Definition types.hpp:260
constexpr internal::LeftSide LEFT_SIDE
left side
Definition types.hpp:294
Options struct for lu_mult()
Definition lu_mult.hpp:19
size_t nx
Optimization parameter.
Definition lu_mult.hpp:22