Этот репозиторий содержит реализацию класса Matrix, который представляет собой шаблонную реализацию матрицы через матрицу векторов. Данный класс предоставляет базовые операции над матрицами, включая арифметические операции, транспонирование и вычисление следа.
Класс Matrix реализован с использованием вектора векторов для хранения элементов матрицы. Поддерживается работа с различными типами данных, а также предоставляются методы для выполнения базовых операций над матрицами, таких как сложение, вычитание, умножение на число и транспонирование.
-
Шаблонный класс:
- Класс поддерживает произвольные типы данных, указанные при создании объекта (по умолчанию используется
int64_t).
- Класс поддерживает произвольные типы данных, указанные при создании объекта (по умолчанию используется
-
Поддержка операций:
- Операции сложения, вычитания и умножения матриц.
- Умножение матрицы на скалярное значение.
- Транспонирование матрицы.
- Вычисление следа для квадратных матриц.
-
Методы доступа:
- Индексация для доступа к элементам матрицы.
- Перегруженные операторы для удобства использования (например,
operator+,operator-,operator*).
-
Шаблонная реализация:
- Класс
Matrixподдерживает шаблонные параметры для задания размеров матрицы (NиM), а также типа данных (T), что делает его универсальным для различных задач.
- Класс
-
Гибкость в инициализации:
- Возможность инициализировать матрицу с нуля, заданным значением или вектором векторов для максимальной гибкости при создании объектов.
-
Поддержка транспонирования:
- Метод
Transposed()позволяет получить транспонированную версию матрицы.
- Метод
-
Арифметические операции:
- Поддерживаются основные операции сложения, вычитания и умножения как между матрицами, так и на скалярное значение.
-
След матрицы:
- Для квадратных матриц доступен метод
Trace(), который вычисляет сумму диагональных элементов матрицы.
- Для квадратных матриц доступен метод