From 94e98c24576ba2c83fa8f9423ccebb5dcb46fe64 Mon Sep 17 00:00:00 2001 From: Silvan Fuhrer Date: Mon, 27 May 2024 18:10:13 +0200 Subject: [PATCH] matrix: change matrix.print() back to pring all elements, don't assume symmetric matrix Signed-off-by: Silvan Fuhrer --- src/lib/matrix/matrix/Matrix.hpp | 41 +++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/src/lib/matrix/matrix/Matrix.hpp b/src/lib/matrix/matrix/Matrix.hpp index 14400683f0..bc53b21621 100644 --- a/src/lib/matrix/matrix/Matrix.hpp +++ b/src/lib/matrix/matrix/Matrix.hpp @@ -387,7 +387,7 @@ public: } } - void print(float eps = 1e-9) const + void print_symmetric(float eps = 1e-9) const { // print column numbering if (N > 1) { @@ -435,6 +435,45 @@ public: } } + void print(float eps = 1e-9) const + { + // print column numbering + if (N > 1) { + printf(" "); + + for (unsigned i = 0; i < N; i++) { + printf("|%2u ", i); + + } + + printf("\n"); + } + + const Matrix &self = *this; + + for (unsigned i = 0; i < M; i++) { + printf("%2u|", i); // print row numbering + + for (unsigned j = 0; j < N; j++) { + double d = static_cast(self(i, j)); + + // avoid -0.0 for display + if (fabs(d - 0.0) < (double)eps) { + // print fixed width zero + printf(" 0 "); + + } else if ((fabs(d) < 1e-4) || (fabs(d) >= 10.0)) { + printf("% .1e ", d); + + } else { + printf("% 6.5f ", d); + } + } + + printf("\n"); + } + } + Matrix transpose() const { Matrix res;