From d91d35a3af060f5eba28fa2d60f5c7894b115c55 Mon Sep 17 00:00:00 2001 From: Persson-dev Date: Wed, 14 Feb 2024 20:29:25 +0100 Subject: [PATCH] implement Vect --- src/Vect.cpp | 28 ++++++++++++++++++++-------- src/Vect.h | 9 ++++++--- 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/src/Vect.cpp b/src/Vect.cpp index f4be1ea..d49695c 100644 --- a/src/Vect.cpp +++ b/src/Vect.cpp @@ -1,20 +1,32 @@ #include "Vect.h" +#include -Vect::Vect(const Matrix& mat) { - for (std::size_t i = 0; i < mat.GetColumnCount(); i++) { - std::size_t j; - for (j = 0; j < mat.GetRawCount(); j++) { - if(!IsEqualZero(mat.at(i, j))) +Vect::Vect(const Matrix& mat) : m_Data(mat) { + Simplify(); +} + +void Vect::Simplify() { + Matrix mat = m_Data; + for (std::size_t j = 0; j < mat.GetColumnCount(); j++) { + std::size_t i; + for (i = 0; i < mat.GetRawCount(); i++) { + if (!IsEqualZero(mat.at(i, j))) break; } - if (j == mat.GetRawCount()) { + if (i == mat.GetRawCount()) { m_Data = mat.SubMatrix(0, 0, mat.GetRawCount(), j); + return; } } m_Data = mat; } -// TODO void Vect::Print() const { - + std::cout << "Espace vectoriel de dimension " << m_Data.GetColumnCount() << " de base :\n\n"; + for (std::size_t i = 0; i < m_Data.GetRawCount(); i++) { + for (std::size_t j = 0; j < m_Data.GetColumnCount(); j++) { + printf("[ %.3f ]\t", static_cast(m_Data.at(i, j))); + } + std::cout << "\n"; + } } \ No newline at end of file diff --git a/src/Vect.h b/src/Vect.h index 2cad493..0a5782d 100644 --- a/src/Vect.h +++ b/src/Vect.h @@ -5,7 +5,7 @@ // espace vectoriel class Vect { private: - Matrix m_Data{0, 0}; + Matrix m_Data; public: /** @@ -16,7 +16,10 @@ class Vect { Vect(const Matrix& mat); /** - * \brief Affiche la base de l'espace vectoriel dans la console - */ + * \brief Affiche la base de l'espace vectoriel dans la console + */ void Print() const; + + private: + void Simplify(); }; \ No newline at end of file