12#ifndef TLAPACK_HETRF_BLOCKED_HH
13#define TLAPACK_HETRF_BLOCKED_HH
33template <
class T, TLAPACK_SMATRIX matrix_t>
63 const idx_t n = nrows(
A);
64 const idx_t nb =
opts.nb;
73 if (
uplo == Uplo::Upper) {
76 int jn = min((
int)nb, j);
89 else if (
uplo == Uplo::Lower) {
92 int jn = min((
int)(nb), (
int)(n)-j);
99 if (
ipivj[
jn - 1] >= ((
int)(n)-j)) {
102 for (
int k = 0;
k <
step; ++
k) {
114 if (
ipiv[n - 1] >= 0)
ipiv[n - 1] = n - 1;
123template <TLAPACK_UPLO uplo_t, TLAPACK_SMATRIX matrix_t, TLAPACK_VECTOR ipiv_t>
136 std::vector<T>
work_;
142template <TLAPACK_UPLO uplo_t, TLAPACK_SMATRIX matrix_t, TLAPACK_VECTOR ipiv_t>
#define TLAPACK_UPLO
Macro for tlapack::concepts::Uplo compatible with C++17.
Definition concepts.hpp:942
#define TLAPACK_SMATRIX
Macro for tlapack::concepts::SliceableMatrix compatible with C++17.
Definition concepts.hpp:899
#define TLAPACK_WORKSPACE
Macro for tlapack::concepts::Workspace compatible with C++17.
Definition concepts.hpp:912
#define TLAPACK_VECTOR
Macro for tlapack::concepts::Vector compatible with C++17.
Definition concepts.hpp:906
int hetrf_blocked(uplo_t uplo, matrix_t &A, ipiv_t &ipiv, const BlockedLDLOpts &opts)
Computes the Bunch-Kaufman factorization of a symmetric or Hermitian matrix A.
Definition hetrf_blocked.hpp:124
int hetf3(uplo_t uplo, matrix_t &A, ipiv_t &ipiv, work_t &work, const BlockedLDLOpts &opts)
Computes the partial factorization of a symmetric or Hermitian matrix A using the Bunch-Kaufman diago...
Definition hetf3.hpp:58
int hetrf_blocked_work(uplo_t uplo, matrix_t &A, ipiv_t &ipiv, work_t &work, const BlockedLDLOpts &opts)
Computes the Bunch-Kaufman factorization of a symmetric or Hermitian matrix A. Workspace is provide...
Definition hetrf_blocked.hpp:51
#define tlapack_check(cond)
Throw an error if cond is false.
Definition exceptionHandling.hpp:98
constexpr WorkInfo hetrf_blocked_worksize(const matrix_t &A, const BlockedLDLOpts &opts)
Worspace query of hetrf_blocked()
Definition hetrf_blocked.hpp:34
Computes a partial factorization of a symmetric or Hermitian matrix A using the Bunch-Kaufman diagona...
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
Options struct for hetrf_blocked()
Definition hetf3.hpp:27
Output information in the workspace query.
Definition workspace.hpp:16