Шаблонный класс triangular_matrix<T, F1, F2, A>
является базовым адаптером-контейнером для треугольных матриц. Для (n
x n)-размерной нижней треугольной матрицы и 0 <= i <
n,0 <= j < n, элементы ti, j
= 0 , если i > j. Если к тому же содержащиеся
ti, i= 1, то матрица называется единичной нижней
треугольной. Для (n x n)-размерной верхней треугольной
матрицы и 0 <= i < n,0 <= j < n
элементы ti, j = 0 , если i < j.
Если к тому же содержащиеся элементы i, i= 1, то
матрица называется единичной верхней треугольной. Содержимое
треугольных матриц сжато.
#include <boost/numeric/ublas/triangular.hpp> #include <boost/numeric/ublas/io.hpp> int main() { using namespace boost::numeric::ublas; triangular_matrix<double,lower> ml (3, 3); for (unsigned i = 0; i < ml.size1(); ++ i) for (unsigned j = 0; j <= i; ++ j) ml (i, j) = 3 * i + j; std::cout << ml << std::endl; triangular_matrix<double,upper> mu (3, 3); for (unsigned i = 0; i < mu.size1(); ++ i) for (unsigned j = i; j < mu.size2 (); ++ j) mu (i, j) = 3 * i + j; std::cout << mu << std::endl; } }
Будет выведено на экран:
[3,3]((0,0,0),(3,4,0),(6,7,8)) [3,3]((0,1,2),(0,4,5),(0,0,8))
Определено в заголовочном файле triangular.hpp.
Параметр |
Описание |
Значение по умолчанию |
---|---|---|
|
Тип объектов, размещаемых в матрице. |
|
|
Функциональный элемент, описывающий тип треугольной матрицы. [1] |
|
|
Функция, определяющая организацию хранения. [2] |
|
|
Тип адаптированного (присоединенного) массива. [3] |
|
Функции-члены |
Описание |
---|---|
|
Создает пустую |
|
Размещает в памяти пустую |
|
Конструктор копирования. |
|
Расширенный конструктор копирования. |
|
Изменение размера |
|
Возвращает число строк. |
|
Возвращает число столбцов. |
|
Возвращает |
|
Возвращает ссылку на элемент в |
|
Оператор присваивания. |
|
Устанавливает временную матрицу. Может изменять матрицу |
|
Расширенный оператор присваивания. |
|
Задает матричное выражение для треугольной матрицы. Левая и правая части присваивания должны быть независимыми. |
|
Вычисленный оператор присваивания. Добавляет матричное выражение к треугольной матрице. |
|
Добавляет матричное выражение к треугольной матрице. Левая и правая части присваивания должны быть независимыми. |
|
Вычисленный оператор присваивания. Вычитает матричное выражение из треугольной матрицы. |
|
Вычитает матричное выражение из треугольной матрицы. Левая и правая части присваивания должны быть независимыми. |
|
Вычисленный оператор присваивания. Умножает треугольную матрицу на число. |
|
Вычисленный оператор присваивания. Делит треугольную матрицу на число. |
|
Обменивает содержимое треугольных матриц. |
|
Вставляет значение |
|
Удаляет значение |
|
Очищает матрицу. |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
[1] Поддерживаемые параметры
типов треугольных матриц: lower
, unit_lower
,
upper
и unit_upper
.
[2] Поддерживаемые параметры
организации хранения: row_major
и column_major
.
[3] Поддерживаемые параметры
адаптированных массивов: unbounded_array<T>
,
bounded_array<T>
и std::vector<T>
.
Шаблонный класс triangular_adaptor<M, F>
является треугольным матричным адаптером для других матриц.
#include <boost/numeric/ublas/triangular.hpp> #include <boost/numeric/ublas/io.hpp> int main () { using namespace boost::numeric::ublas; matrix<double> m (3, 3); triangular_adaptor<matrix<double>, lower> tal (m); for (unsigned i = 0; i < tal.size1 (); ++ i) for (unsigned j = 0; j <= i; ++ j) tal (i, j) = 3 * i + j; std::cout << tal << std::endl; triangular_adaptor<matrix<double>, upper> tau (m); for (unsigned i = 0; i < tau.size1 (); ++ i) for (unsigned j = i; j < tau.size2 (); ++ j) tau (i, j) = 3 * i + j; std::cout << tau << std::endl; }
Будет выведено на экран:
[3,3]((0,0,0),(3,4,0),(6,7,8)) [3,3]((0,1,2),(0,4,5),(0,0,8))
Определена в заголовочном файле triangular.hpp.
Параметр |
Описание |
Значение по умолчанию |
---|---|---|
|
Тип адаптированной (присоединенной) матрицы. |
|
|
Функциональный элемент, описывающий тип треугольного адаптера. [1] |
|
Функция-член |
Описание |
---|---|
|
Создает |
|
Конструктор копирования. |
|
Расширенный конструктор копирования. |
|
Возвращает число строк. |
|
Возвращает число столбцов. |
|
Возвращает |
|
Возвращает ссылку на элемент в |
|
Оператор присваивания. |
|
Устанавливает временный адаптер. Может изменять треугольный
адаптер |
|
Расширенный оператор присваивания. |
|
Задает матричное выражение для треугольного адаптера. Левая и правая части присваивания должны быть независимыми. |
|
Вычисленный оператор присваивания. Добавляет матричное выражение к треугольному адаптеру. |
|
Добавляет матричное выражение к треугольному адаптеру. Левая и правая части присваивания должны быть независимыми. |
|
Вычисленный оператор присваивания. Вычитает матричное выражение из треугольного адаптера. |
|
Вычитает матричное выражение из треугольного адаптера. Левая и правая части присваивания должны быть независимыми. |
|
Вычисленный оператор присваивания. Умножает треугольный адаптер на скаляр. |
|
Вычисленный оператор присваивания. Делит треугольный адаптер на скаляр. |
|
Обменивает содержимое треугольных адаптеров. |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
[1] Поддерживаемые параметры
типов треугольных адаптеров: lower
, unit_lower
,
upper
и unit_upper
.
Copyright (©) 2000-2002 Joerg Walter, Mathias Koch
Permission
to copy, use, modify, sell and distribute this document is granted
provided this copyright notice appears in all copies. This document
is provided ``as is'' without express or implied warranty, and with
no claim as to its suitability for any purpose.
Перевод с оригинала: Кулиш. В. И. 2006 год.