12#ifndef TLAPACK_TREVC3_BACKSOLVE_HH
13#define TLAPACK_TREVC3_BACKSOLVE_HH
45 const idx_t n = nrows(T);
62 for (idx_t
k = 0;
k <
nk;) {
128 if (T(
bs,
bs - 1) !=
TT(0)) {
138 for (idx_t
k = 0;
k <
nk;) {
142 if (T(
ks +
k + 1,
ks +
k) !=
TT(0)) {
152 for (idx_t
ii = 0;
ii < nb;) {
153 idx_t i = nb - 1 -
ii;
158 if (
T_ii(i, i - 1) !=
TT(0)) {
209 for (idx_t j = 0; j + 1 < i; ++j) {
236 for (idx_t j = 0; j < i; ++j) {
254 for (idx_t
ii = 0;
ii < nb; ++
ii) {
255 idx_t i = nb - 1 -
ii;
259 for (idx_t j = 0; j < i; ++j) {
268 for (idx_t
ii = 0;
ii < nb;) {
269 idx_t i = nb - 1 -
ii;
272 if (
T_ii(i, i - 1) !=
TT(0)) {
296 for (idx_t j = 0; j + 1 < i; ++j) {
307 for (idx_t j = 0; j < i; ++j) {
#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
#define TLAPACK_MATRIX
Macro for tlapack::concepts::Matrix compatible with C++17.
Definition concepts.hpp:896
void laset(uplo_t uplo, const type_t< matrix_t > &alpha, const type_t< matrix_t > &beta, matrix_t &A)
Initializes a matrix to diagonal and off-diagonal values.
Definition laset.hpp:38
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
void trevc_backsolve_double(const matrix_T_t &T, vector_v_t &v_r, vector_v_t &v_i, const size_type< matrix_T_t > k, const vector_colN_t &colN)
Calculate the k-th right eigenvector pair of T using backsubstitution.
Definition trevc_backsolve.hpp:415
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
void trevc3_backsolve(const matrix_T_t &T, matrix_X_t &X, vector_colN_t &colN, work_t &work, size_type< matrix_T_t > ks, size_type< matrix_T_t > ke, size_type< matrix_T_t > blocksize)
Calculate the ks-th through ke-th (not inclusive) right eigenvector of T using a blocked backsubstitu...
Definition trevc3_backsolve.hpp:32
@ General
0 <= i <= m, 0 <= j <= n.
void trevc_backsolve_single(const matrix_T_t &T, vector_v_t &v, const size_type< matrix_T_t > k, const vector_colN_t &colN)
Calculate the k-th right eigenvector of T using backsubstitution.
Definition trevc_backsolve.hpp:79