10#ifndef TLAPACK_MULT_LLH
11#define TLAPACK_MULT_LLH
39template <TLAPACK_SMATRIX matrix_t>
47 const idx_t n = nrows(L);
55 for (idx_t j = n; j-- > 0;) {
59 for (idx_t
k = 0;
k < j; ++
k) {
66 for (idx_t i = j; i-- > 0;) {
67 L(j, i) = L(j, i) *
conj(L(i, i));
68 for (idx_t
k = 0;
k < i; ++
k) {
69 L(j, i) += L(j,
k) *
conj(L(i,
k));
78 const idx_t
n0 = n / 2;
void mult_llh(matrix_t &L, const mult_llh_Opts &opts={})
in-place multiplication of lower triangular matrix L and upper triangular matrix L^H.
Definition mult_llh.hpp:40
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 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
#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 real_type< T > real(const T &x) noexcept
Extends std::real() to real datatypes.
Definition utils.hpp:71
constexpr T conj(const T &x) noexcept
Extends std::conj() to real datatypes.
Definition utils.hpp:100
@ NonUnit
The main diagonal is not assumed to consist of 1's.
@ ConjTrans
conjugate transpose
constexpr real_type< T > imag(const T &x) noexcept
Extends std::imag() to real datatypes.
Definition utils.hpp:86
@ Lower
0 <= i <= m, 0 <= j <= i.
Options struct for llh_mult()
Definition mult_llh.hpp:19
size_t nx
Optimization parameter.
Definition mult_llh.hpp:22