Репозиторий содержит 2 класса:
-
S21Matrix - полная реализация класса по работе с матрицами
-
SimpleMatrix - пример использования правила 3.5 и правила 4.5 при реализации специальных методов класса.
Реализация библиотеки для работы с матрицами, используя объектно-ориентированный подход. Объектно-ориентированный подход позволяет реализовать библиотеку для работы с матрицами в виде отдельного класса, над объектами которого определены операции, представленные как методами, так и стандартными операторами +, -, * и т.д.
Ниже представлено краткое описание реализованных операций над матрицами.
Операция | Описание | Исключительные ситуации |
---|---|---|
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() |
Вычисляет и возвращает обратную матрицу | определитель матрицы равен 0 |
Помимо реализации данных операций, реализованы конструкторы и деструкторы:
Метод | Описание |
---|---|
S21Matrix() |
Базовый конструктор, инициализирующий матрицу некоторой заранее заданной размерностью |
S21Matrix(int rows, int cols) |
Параметризированный конструктор с количеством строк и столбцов |
S21Matrix(const S21Matrix& other) |
Конструктор копирования |
S21Matrix(S21Matrix&& other) |
Конструктор переноса |
~S21Matrix() |
Деструктор |
А также перегружены следующие операторы, частично соответствующие операциям выше:
Оператор | Описание | Исключительные ситуации |
---|---|---|
+ |
Сложение двух матриц | различная размерность матриц |
- |
Вычитание одной матрицы из другой | различная размерность матриц |
* |
Умножение матриц и умножение матрицы на число | число столбцов первой матрицы не равно числу строк второй матрицы |
== |
Проверка на равенство матриц (EqMatrix ) |
|
= |
Присвоение матрице значений другой матрицы | |
+= |
Присвоение сложения (SumMatrix ) |
различная размерность матриц |
-= |
Присвоение разности (SubMatrix ) |
различная размерность матриц |
*= |
Присвоение умножения (MulMatrix /MulNumber ) |
число столбцов первой матрицы не равно числу строк второй матрицы |
(int i, int j) |
Индексация по элементам матрицы (строка, колонка) | индекс за пределами матрицы |
$ git clone git@github.com:HubertFurr/s21_matrix_plus.git
$ cd s21_matrix_plus/src
$ make
Unit-тесты реализованы при помощи googletest, отчет о покрытии при помощи LCOV
$ git clone git@github.com:HubertFurr/s21_matrix_plus.git
$ cd s21_matrix_plus/src
$ make test
Отчет о покрытии:
$ git clone git@github.com:HubertFurr/s21_matrix_plus.git
$ cd s21_matrix_plus/src
$ make gcov_report