60 const idx_t m = nrows(
A);
61 const idx_t n = ncols(
A);
70 if (m == 0 || n == 0)
return real_t(0);
76 if (
diag == Diag::NonUnit) {
77 if (
uplo == Uplo::Upper) {
78 for (idx_t j = 0; j < n; ++j) {
79 for (idx_t i = 0; i <= min(j, m - 1); ++i) {
91 for (idx_t j = 0; j < n; ++j) {
92 for (idx_t i = j; i < m; ++i) {
106 if (
uplo == Uplo::Upper) {
107 for (idx_t j = 0; j < n; ++j) {
108 for (idx_t i = 0; i < min(j, m); ++i) {
120 for (idx_t j = 0; j < n; ++j) {
121 for (idx_t i = j + 1; i < m; ++i) {
135 if (
uplo == Uplo::Upper) {
136 for (idx_t i = 0; i < m; ++i) {
138 if (
diag == Diag::NonUnit)
139 for (idx_t j = i; j < n; ++j)
143 for (idx_t j = i + 1; j < n; ++j)
155 for (idx_t i = 0; i < m; ++i) {
157 if (
diag == Diag::NonUnit || i >= n)
158 for (idx_t j = 0; j <= min(i, n - 1); ++j)
162 for (idx_t j = 0; j < i; ++j)
175 if (
uplo == Uplo::Upper) {
176 for (idx_t j = 0; j < n; ++j) {
178 if (
diag == Diag::NonUnit || j >= m)
179 for (idx_t i = 0; i <= min(j, m - 1); ++i)
183 for (idx_t i = 0; i < j; ++i)
195 for (idx_t j = 0; j < n; ++j) {
197 if (
diag == Diag::NonUnit)
198 for (idx_t i = j; i < m; ++i)
202 for (idx_t i = j + 1; i < m; ++i)
217 if (
uplo == Uplo::Upper) {
218 if (
diag == Diag::NonUnit) {
219 for (idx_t j = 0; j < n; ++j)
224 for (idx_t j = 1; j < n; ++j)
229 if (
diag == Diag::NonUnit) {
230 for (idx_t j = 0; j < min(m, n); ++j)
235 for (idx_t j = 0; j < min(m - 1, n); ++j)
void lassq(const vector_t &x, real_type< type_t< vector_t > > &scale, real_type< type_t< vector_t > > &sumsq, abs_f absF)
Updates a sum of squares represented in scaled form.
Definition lassq.hpp:49
auto lantr(norm_t normType, uplo_t uplo, diag_t diag, const matrix_t &A)
Calculates the norm of a symmetric matrix.
Definition lantr.hpp:52
#define tlapack_check_false(cond)
Throw an error if cond is true.
Definition exceptionHandling.hpp:113
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