Matrix: print full matrix already if only one element is not symmetric

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
This commit is contained in:
Silvan Fuhrer
2024-06-11 21:14:13 -04:00
committed by Daniel Agar
parent 8ad93464c7
commit 5dd76332ba
+4 -1
View File
@@ -402,6 +402,7 @@ public:
}
const Matrix<Type, M, N> &self = *this;
bool is_prev_symmetric = true; // assume symmetric until one element is not
for (unsigned i = 0; i < M; i++) {
printf("%2u|", i); // print row numbering
@@ -410,7 +411,7 @@ public:
double d = static_cast<double>(self(i, j));
// if symmetric don't print upper triangular elements
if ((M == N) && (j > i) && (i < N) && (j < M)
if (is_prev_symmetric && (M == N) && (j > i) && (i < N) && (j < M)
&& (fabs(d - static_cast<double>(self(j, i))) < (double)eps)
) {
// print empty space
@@ -428,6 +429,8 @@ public:
} else {
printf("% 6.5f ", d);
}
is_prev_symmetric = false; // not symmetric if once inside here
}
}