implement Vect

This commit is contained in:
2024-02-14 20:29:25 +01:00
parent b90195cac1
commit d91d35a3af
2 changed files with 26 additions and 11 deletions

View File

@@ -1,20 +1,32 @@
#include "Vect.h"
#include <iostream>
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++) {
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<float>(m_Data.at(i, j)));
}
std::cout << "\n";
}
}

View File

@@ -5,7 +5,7 @@
// espace vectoriel
class Vect {
private:
Matrix m_Data{0, 0};
Matrix m_Data;
public:
/**
@@ -19,4 +19,7 @@ class Vect {
* \brief Affiche la base de l'espace vectoriel dans la console
*/
void Print() const;
private:
void Simplify();
};