PIP 5.5.3
Platform-Independent Primitives
Открытые члены | Открытые статические члены | Полный список членов класса
Шаблон класса PIMathMatrix< Type >

Класс для работы с матрицами динамического размера и фиксированного типа. Подробнее...

#include <pimathmatrix.h>

Граф наследования:PIMathMatrix< Type >:
Inheritance graph
[см. легенду]

Открытые члены

 PIMathMatrix (const uint cols=0, const uint rows=0, const Type &f=Type())
 Конструктор класса PIMathMatrix, который создает матрицу. Подробнее...
 
 PIMathMatrix (const uint cols, const uint rows, const PIVector< Type > &val)
 Конструктор класса PIMathMatrix, который создает матрицу. Подробнее...
 
 PIMathMatrix (const PIVector< PIVector< Type > > &val)
 Конструктор класса PIMathMatrix, который создает матрицу. Подробнее...
 
 PIMathMatrix (const PIVector2D< Type > &val)
 Конструктор класса PIMathMatrix, который создает матрицу. Подробнее...
 
PIMathMatrix< Type > & setCol (uint index, const PIMathVector< Type > &v)
 Определить выбранный столбец матрицы. Подробнее...
 
PIMathMatrix< Type > & setRow (uint index, const PIMathVector< Type > &v)
 Определить выбранную строку матрицы. Подробнее...
 
PIMathMatrix< Type > & swapCols (uint r0, uint r1)
 Метод меняющий местами выбранные строки в матрице. Подробнее...
 
PIMathMatrix< Type > & swapRows (uint c0, uint c1)
 Метод меняющий местами выбранные строки в матрице. Подробнее...
 
PIMathMatrix< Type > & fill (const Type &v)
 Метод заполняющий матрицу выбранным значением. Подробнее...
 
bool isSquare () const
 Метод, проверющий является ли матрица квадратной. Подробнее...
 
bool isIdentity () const
 Метод, проверяющий содержит ли главная диагональ единицы и все остальные поля нули. Подробнее...
 
bool isNull () const
 Метод, являются ли все элементы матрицы нулями. Подробнее...
 
bool isValid () const
 Метод, который проверяет является ли матрица пустой. Подробнее...
 
void operator+= (const PIMathMatrix< Type > &sm)
 Сложение с присваиванием с матрицей sm. Подробнее...
 
void operator-= (const PIMathMatrix< Type > &sm)
 Вычитание с присваиванием с матрицей sm. Подробнее...
 
void operator*= (const Type &v)
 Умножение с присваиванием с матрицей v. Подробнее...
 
void operator/= (const Type &v)
 Деление с присваиванием с матрицей v. Подробнее...
 
PIMathMatrix< Type > operator- () const
 Операция отрицания Подробнее...
 
PIMathMatrix< Type > operator+ (const PIMathMatrix< Type > &sm) const
 Матричное сложение. Подробнее...
 
PIMathMatrix< Type > operator- (const PIMathMatrix< Type > &sm) const
 Матричная разность. Подробнее...
 
PIMathMatrix< Type > operator* (const Type &v) const
 Матричное произведение. Подробнее...
 
PIMathMatrix< Type > operator/ (const Type &v) const
 Матричное деление. Подробнее...
 
Type determinant (bool *ok=0) const
 Вычислить определитель матрицы. Подробнее...
 
Type trace () const
 Вычислить след матрицы. Подробнее...
 
PIMathMatrix< Type > & toUpperTriangular (bool *ok=0)
 Преобразование матрицы в верхнетреугольную. Подробнее...
 
PIMathMatrix< Type > & invert (bool *ok=0, PIMathVector< Type > *sv=0)
 Операция обращения матрицы. Подробнее...
 
PIMathMatrix< Type > inverted (bool *ok=0) const
 Операция обращения матрицы. Подробнее...
 
PIMathMatrix< Type > transposed () const
 Транспонирование матрицы. Подробнее...
 

Открытые статические члены

static PIMathMatrix< Type > identity (const uint cols, const uint rows)
 Создает матрицу, главная диагональ которой заполнена, а оставшиеся элементы - нулями. Подробнее...
 
static PIMathMatrix< Type > matrixRow (const PIMathVector< Type > &val)
 Создает матрицу-строку, каждый элемент которой равен каждому элементу вектора Подробнее...
 
static PIMathMatrix< Type > matrixCol (const PIMathVector< Type > &val)
 Создает матрицу-столбец, каждый элемент которой равен каждому элементу вектора Подробнее...
 

Подробное описание

template<typename Type>
class PIMathMatrix< Type >

Класс для работы с матрицами динамического размера и фиксированного типа.

Параметры шаблона
`Type`Здесь можеть быть базовый тип данных C++ или различные классы, где реализованы арифметические операторы(=, +=, -=, *=, /=, ==, !=, +, -, *, /) языка C++.

Конструктор(ы)

◆ PIMathMatrix() [1/4]

template<typename Type >
PIMathMatrix< Type >::PIMathMatrix ( const uint  cols = 0,
const uint  rows = 0,
const Type &  f = Type() 
)
inline

Конструктор класса PIMathMatrix, который создает матрицу.

Аргументы
colsколичество столбов матрицы типа uint.
rowsколичество строк матрицы типа uint.
fтип элементов матрицы.

◆ PIMathMatrix() [2/4]

template<typename Type >
PIMathMatrix< Type >::PIMathMatrix ( const uint  cols,
const uint  rows,
const PIVector< Type > &  val 
)
inline

Конструктор класса PIMathMatrix, который создает матрицу.

Аргументы
colsколичество столбов матрицы типа uint.
rowsколичество строк матрицы типа uint.
valтип PIVector<Type> элементов матрицы.

◆ PIMathMatrix() [3/4]

template<typename Type >
PIMathMatrix< Type >::PIMathMatrix ( const PIVector< PIVector< Type > > &  val)
inline

Конструктор класса PIMathMatrix, который создает матрицу.

Аргументы
valтип PIVector<Type>, который создает матрицу.

◆ PIMathMatrix() [4/4]

template<typename Type >
PIMathMatrix< Type >::PIMathMatrix ( const PIVector2D< Type > &  val)
inline

Конструктор класса PIMathMatrix, который создает матрицу.

Аргументы
valтип PIVector2D<Type>, который создает матрицу.

Методы

◆ identity()

template<typename Type >
static PIMathMatrix< Type > PIMathMatrix< Type >::identity ( const uint  cols,
const uint  rows 
)
inlinestatic

Создает матрицу, главная диагональ которой заполнена, а оставшиеся элементы - нулями.

Аргументы
colsколичество столбов матрицы типа uint.
rowsколичество строк матрицы типа uint.
Возвращает
единичная матрица matrix(cols, rows)

◆ matrixRow()

template<typename Type >
static PIMathMatrix< Type > PIMathMatrix< Type >::matrixRow ( const PIMathVector< Type > &  val)
inlinestatic

Создает матрицу-строку, каждый элемент которой равен каждому элементу вектора

Аргументы
valвектор типа PIMathVector
Возвращает
матрица-строка, каждый элемент которой равен каждому элементу вектора

◆ matrixCol()

template<typename Type >
static PIMathMatrix< Type > PIMathMatrix< Type >::matrixCol ( const PIMathVector< Type > &  val)
inlinestatic

Создает матрицу-столбец, каждый элемент которой равен каждому элементу вектора

Аргументы
valвектор типа PIMathVector
Возвращает
матрица-столбец, каждый элемент которой равен каждому элементу вектора

◆ setCol()

template<typename Type >
PIMathMatrix< Type > & PIMathMatrix< Type >::setCol ( uint  index,
const PIMathVector< Type > &  v 
)
inline

Определить выбранный столбец матрицы.

Если элементов в векторе больше, чем элементов в столбце матрицы или индекс больше количества стобцов, то поведение не определено ("undefined behavior").

Аргументы
indexномер выбранного столбца.
vвектор типа PIMathVector<Type>, которым нужно заполнить столбец.
Возвращает
матрица типа PIMathMatrix<Type>.

◆ setRow()

template<typename Type >
PIMathMatrix< Type > & PIMathMatrix< Type >::setRow ( uint  index,
const PIMathVector< Type > &  v 
)
inline

Определить выбранную строку матрицы.

Если элементов в векторе больше, чем элементов в строке матрицы или индекс больше количества стобцов, то поведение не определено ("undefined behavior").

Аргументы
indexномер выбранной строки.
vвектор типа PIMathVector<Type>, которым нужно заполнить строку.
Возвращает
матрица типа PIMathMatrix<Type>.

◆ swapCols()

template<typename Type >
PIMathMatrix< Type > & PIMathMatrix< Type >::swapCols ( uint  r0,
uint  r1 
)
inline

Метод меняющий местами выбранные строки в матрице.

Вы не можете использовать индекс, который больше количества столбцов, иначе будет неопределенное повередение ("undefined behavior").

Аргументы
r0номер первой выбранного стобца.
r1номер второй выбранного столбца.
Возвращает
матрица типа PIMathMatrix<Type>.

◆ swapRows()

template<typename Type >
PIMathMatrix< Type > & PIMathMatrix< Type >::swapRows ( uint  c0,
uint  c1 
)
inline

Метод меняющий местами выбранные строки в матрице.

Вы не можете использовать индекс, который больше количества строк, иначе будет неопределенное повередение ("undefined behavior").

Аргументы
с0номер первой выбранной строки.
с1номер второй выбранной строки.
Возвращает
матрица типа PIMathMatrix<Type>.

◆ fill()

template<typename Type >
PIMathMatrix< Type > & PIMathMatrix< Type >::fill ( const Type &  v)
inline

Метод заполняющий матрицу выбранным значением.

Аргументы
vпараметр выбранного типа и значения, которым будет заполнена матрица.
Возвращает
заполненная матрица типа PIMathMatrix<Type>.

◆ isSquare()

template<typename Type >
bool PIMathMatrix< Type >::isSquare ( ) const
inline

Метод, проверющий является ли матрица квадратной.

Возвращает
true если матрица квадратная, иначе false.

◆ isIdentity()

template<typename Type >
bool PIMathMatrix< Type >::isIdentity ( ) const
inline

Метод, проверяющий содержит ли главная диагональ единицы и все остальные поля нули.

Возвращает
true если матрица единичная, иначе false.

◆ isNull()

template<typename Type >
bool PIMathMatrix< Type >::isNull ( ) const
inline

Метод, являются ли все элементы матрицы нулями.

Возвращает
true если матрица нулевая, иначе false.

◆ isValid()

template<typename Type >
bool PIMathMatrix< Type >::isValid ( ) const
inline

Метод, который проверяет является ли матрица пустой.

Возвращает
true если матрица действительна, иначе false.

◆ operator+=()

template<typename Type >
void PIMathMatrix< Type >::operator+= ( const PIMathMatrix< Type > &  sm)
inline

Сложение с присваиванием с матрицей sm.

Аргументы
smматрица для сложения с присваиванием.

◆ operator-=()

template<typename Type >
void PIMathMatrix< Type >::operator-= ( const PIMathMatrix< Type > &  sm)
inline

Вычитание с присваиванием с матрицей sm.

Аргументы
smматрица для вычитания с присваиванием.

◆ operator*=()

template<typename Type >
void PIMathMatrix< Type >::operator*= ( const Type &  v)
inline

Умножение с присваиванием с матрицей v.

Аргументы
smматрица для умножения с присваиванием.

◆ operator/=()

template<typename Type >
void PIMathMatrix< Type >::operator/= ( const Type &  v)
inline

Деление с присваиванием с матрицей v.

Аргументы
smматрица для деления с присваиванием.

◆ operator-() [1/2]

template<typename Type >
PIMathMatrix< Type > PIMathMatrix< Type >::operator- ( ) const
inline

Операция отрицания

Возвращает
копия отрицательной матрицы

◆ operator+()

template<typename Type >
PIMathMatrix< Type > PIMathMatrix< Type >::operator+ ( const PIMathMatrix< Type > &  sm) const
inline

Матричное сложение.

Аргументы
smматричное слагаемое.
Возвращает
результат матричного сложения.

◆ operator-() [2/2]

template<typename Type >
PIMathMatrix< Type > PIMathMatrix< Type >::operator- ( const PIMathMatrix< Type > &  sm) const
inline

Матричная разность.

Аргументы
smматричное вычитаемое.
Возвращает
результат матричной разности.

◆ operator*()

template<typename Type >
PIMathMatrix< Type > PIMathMatrix< Type >::operator* ( const Type &  v) const
inline

Матричное произведение.

Аргументы
vмножитель.
Возвращает
результат произведения.

◆ operator/()

template<typename Type >
PIMathMatrix< Type > PIMathMatrix< Type >::operator/ ( const Type &  v) const
inline

Матричное деление.

Аргументы
vделитель.
Возвращает
результат деления.

◆ determinant()

template<typename Type >
Type PIMathMatrix< Type >::determinant ( bool *  ok = 0) const
inline

Вычислить определитель матрицы.

Работает только с квадратными, ненулевыми и обратимыми матрицами.

Аргументы
okэто параметр, с помощью которого мы можем узнать, правильно ли сработал метод.
Возвращает
опеределитель матрицы.

◆ trace()

template<typename Type >
Type PIMathMatrix< Type >::trace ( ) const
inline

Вычислить след матрицы.

Работает только с квадратными матрицами.

Возвращает
след матрицы.

◆ toUpperTriangular()

template<typename Type >
PIMathMatrix< Type > & PIMathMatrix< Type >::toUpperTriangular ( bool *  ok = 0)
inline

Преобразование матрицы в верхнетреугольную.

Работает только с квадратными, ненулевыми и обратимыми матрицами.

Аргументы
okэто параметр, с помощью которого мы можем узнать, правильно ли сработал метод.
Возвращает
копия преобразованной верхнетреугольной матрицы.

◆ invert()

template<typename Type >
PIMathMatrix< Type > & PIMathMatrix< Type >::invert ( bool *  ok = 0,
PIMathVector< Type > *  sv = 0 
)
inline

Операция обращения матрицы.

Работает только с квадратными, ненулевыми и обратимыми матрицами.

Аргументы
okэто параметр, с помощью которого мы можем узнать, правильно ли сработал метод.
Возвращает
обратная матрица.

◆ inverted()

template<typename Type >
PIMathMatrix< Type > PIMathMatrix< Type >::inverted ( bool *  ok = 0) const
inline

Операция обращения матрицы.

Работает только с квадратными, ненулевыми и обратимыми матрицами.

Аргументы
okэто параметр, с помощью которого мы можем узнать, правильно ли сработал метод.
Возвращает
копия обратной матрицы.

◆ transposed()

template<typename Type >
PIMathMatrix< Type > PIMathMatrix< Type >::transposed ( ) const
inline

Транспонирование матрицы.

Работает только с квадратными матрицами.

Возвращает
копия транспонированной матрицы.