diff --git a/matrix.hpp b/matrix.hpp index b8eb88c..bdf8ba3 100644 --- a/matrix.hpp +++ b/matrix.hpp @@ -145,10 +145,6 @@ public: } return result; } - const bool is_unitary() const{ - matrix m = this->hermitian_conjugate(); - return (*this * m == this->I()); - } // FIXME: This is very dumb const vector get_eigenvalues() const { if (this->is_diagonal()) @@ -163,6 +159,11 @@ public: return false; return *this == this->hermitian_conjugate(); } + const bool is_invertible() const { return this->determinant() != 0; } + const bool is_unitary() const { + matrix m = this->hermitian_conjugate(); + return (*this * m == this->I()); + } friend std::ostream &operator<<(std::ostream &os, const matrix &m) { char last = '\0'; int longest = 0;