solver rework + refactor

This commit is contained in:
2024-03-06 21:24:15 +01:00
parent 259750a794
commit 99624d1b00
10 changed files with 191 additions and 163 deletions

View File

@@ -12,40 +12,33 @@
* \brief Permet d'obtenir différentes propriétés d'une matrice comme l'image ou le noyau
*/
class Solver {
private:
Matrix m_Matrix;
public:
/**
* \brief Initialise le resolveur
* \param mat La matrice d'entrée
*/
Solver(const Matrix& mat);
~Solver() {}
/**
* \brief Calcule l'image de la matrice d'entrée
* \brief Calcule l'image d'une matrice
* \param a_Matrix La matrice à traiter
* \return L'espace vectoriel correspondant
*/
Vect Image() const;
Vect Image(const Matrix& a_Matrix) const;
/**
* \brief Calcule le noyau de la matrice d'entrée
* \brief Calcule le noyau d'une matrice
* \param a_Matrix La matrice à traiter
* \return L'espace vectoriel correspondant
*/
Vect Kernel() const;
Vect Kernel(const Matrix& a_Matrix) const;
/**
* \brief Résout le système triangulaire de la forme AX=B, avec X et B, des vecteurs colonne.
* La matrice d'entrée est considéré comme étant la matrice augmenté [A|B]
* \brief Résout le système rectangulaire de la forme AX=B, avec X et B, des vecteurs colonne.
* \param a_MatrixA La matrice jouant le rôle de A
* \param a_VectorB La matrice colonne jouant le rôle de B
* \return L'espace affine associé
*/
VectAffine TriangularSystem() const;
VectAffine RectangularSystem(const Matrix& a_MatrixA, const Matrix& a_VectorB) const;
/**
* \brief Calcule le rang de la matrice
* \note Ceci équivaut à \code Image().GetCardinal() \endcode
* \brief Calcule le rang d'une matrice
* \param a_Matrix La matrice à traiter
* \note Ceci équivaut à \code Image(a_Matrix).GetCardinal() \endcode
*/
std::size_t Rank() const;
std::size_t Rank(const Matrix& a_Matrix) const;
};