This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
#include <algorithm>
|
||||
#include <cassert>
|
||||
#include <cmath>
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
@@ -39,10 +40,6 @@ Matrix Matrix::operator*(const Matrix& other) const {
|
||||
return result;
|
||||
}
|
||||
|
||||
static bool IsEqualZero(long double var) {
|
||||
return std::abs(var) < std::pow(10, -5);
|
||||
}
|
||||
|
||||
void Matrix::Print() const {
|
||||
for (size_t i = 0; i < m_Lignes; ++i) {
|
||||
std::cout << "[ ";
|
||||
@@ -101,12 +98,14 @@ void Matrix::Load(const std::string& filename) {
|
||||
}
|
||||
}
|
||||
|
||||
void Matrix::Transpose() {
|
||||
Matrix Matrix::Transpose() const {
|
||||
Matrix result{m_Colonnes, m_Lignes};
|
||||
for (std::size_t i = 0; i < m_Lignes; i++) {
|
||||
for (std::size_t j = i; j < m_Colonnes; j++) {
|
||||
std::swap(at(i, j), at(j, i));
|
||||
result.at(j, i) = at(i, j);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
void Matrix::Identity() {
|
||||
@@ -224,4 +223,25 @@ long double& Matrix::at(std::size_t ligne, std::size_t colonne) {
|
||||
|
||||
long double Matrix::at(std::size_t ligne, std::size_t colonne) const {
|
||||
return m_Data[ligne * m_Lignes + colonne];
|
||||
}
|
||||
|
||||
std::size_t Matrix::GetRawCount() const {
|
||||
return m_Lignes;
|
||||
}
|
||||
|
||||
std::size_t Matrix::GetColumnCount() const {
|
||||
return m_Colonnes;
|
||||
}
|
||||
|
||||
Matrix Matrix::SubMatrix(std::size_t origine_ligne, std::size_t origine_colonne, std::size_t ligne, std::size_t colonne) const {
|
||||
assert(m_Lignes >= ligne && m_Colonnes >= colonne);
|
||||
Matrix result{ligne, colonne};
|
||||
|
||||
for (std::size_t i = 0; i < ligne; i++) {
|
||||
for (std::size_t j = 0; j < colonne; j++) {
|
||||
result.at(i, j) = at(i + origine_ligne, j + origine_colonne);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
Reference in New Issue
Block a user