- Программа разработана на языке C++ стандарта C++17 с использованием компилятора gcc
- Есть доступ к приватным полям через accessor и mutator. При увеличении размера - матрица дополняется нулевыми элементами, при уменьшении - лишнее просто отбрасывается
- Программа оформлена как статическая библиотека
- Есть полное покрытие unit-тестами функций библиотеки c помощью библиотеки GTest
- Реализованы следующие операции над матрицами:
| Операция | Описание |
|---|---|
bool EqMatrix(const S21Matrix& other) |
Проверяет матрицы на равенство между собой |
void SumMatrix(const S21Matrix& other) |
Прибавляет вторую матрицы к текущей |
void SubMatrix(const S21Matrix& other) |
Вычитает из текущей матрицы другую |
void MulNumber(const double num) |
Умножает текущую матрицу на число |
void MulMatrix(const S21Matrix& other) |
Умножает текущую матрицу на вторую |
S21Matrix Transpose() |
Создает новую транспонированную матрицу из текущей и возвращает ее |
S21Matrix CalcComplements() |
Вычисляет матрицу алгебраических дополнений текущей матрицы и возвращает ее |
double Determinant() |
Вычисляет и возвращает определитель текущей матрицы |
S21Matrix InverseMatrix() |
Вычисляет и возвращает обратную матрицу |
- А также реализованы конструкторы и деструкторы:
| Метод | Описание |
|---|---|
S21Matrix() |
Базовый конструктор, инициализирующий матрицу некоторой заранее заданной размерностью |
S21Matrix(int rows, int cols) |
Параметризированный конструктор с количеством строк и столбцов |
S21Matrix(const S21Matrix& other) |
Конструктор копирования |
S21Matrix(S21Matrix&& other) |
Конструктор переноса |
~S21Matrix() |
Деструктор |
- Перегружены операторы:
| Оператор | Описание |
|---|---|
+ |
Сложение двух матриц |
- |
Вычитание одной матрицы из другой |
* |
Умножение матриц и умножение матрицы на число |
== |
Проверка на равенство матриц (EqMatrix) |
= |
Присвоение матрице значений другой матрицы |
+= |
Присвоение сложения (SumMatrix) |
-= |
Присвоение разности (SubMatrix) |
*= |
Присвоение умножения (MulMatrix/MulNumber) |
(int i, int j) |
Индексация по элементам матрицы (строка, колонка) |
make - формирование s21_matrix_oop.a
make clean - удаление лишних файлов
make test - запуск тестов