#pragma once /** * \file Solver.h * \brief Contient la définition du solutionneur */ #include "Vect.h" /** * \class Solver * \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 * \return L'espace vectoriel correspondant */ Vect Image() const; /** * \brief Calcule le noyau de la matrice d'entrée * \return L'espace vectoriel correspondant */ Vect Kernel() 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] * \return L'espace affine associé */ VectAffine TriangularSystem() const; /** * \brief Calcule le rang de la matrice * \note Ceci équivaut à \code Image().GetCardinal() \endcode */ std::size_t Rank() const; };