Шаблонный класс symmetric_matrix<T, F1, F2, A>
является базовым адаптером-контейнером для симметричных матриц. Для
(n x n)-размерной симметричной матрицы и 0 <= i <
n, 0 <= j < n содержатся элементы si, j
= sj, i. Содержимое симметричных матриц сжато.
#include <boost/numeric/ublas/symmetric.hpp> #include <boost/numeric/ublas/io.hpp> int main () { using namespace boost::numeric::ublas; symmetric_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; symmetric_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,3,6),(3,4,7),(6,7,8)) [3,3]((0,1,2),(1,4,5),(2,5,8))
Определена в заголовочном файле symmetric.hpp.
Параметр |
Описание |
Значение по умолчанию |
---|---|---|
|
Тип объектов, размещаемых в матрице. |
|
|
Функциональный элемент, описывающий тип симметричной матрицы. [1] |
|
|
Функция, определяющая организацию хранения. [2] |
|
|
Тип адаптированного (присоединенного) массива. [3] |
|
Member |
Description |
---|---|
|
Создает пустую |
|
Конструктор копирования. |
|
Расширенный конструктор копирования. |
|
Изменяет размер |
|
Возвращает число строк. |
|
Возвращает число столбцов. |
|
Возвращает |
|
Возвращает ссылку на элемент в i-ой строке и j-ом столбце. |
|
Оператор присваивания. |
|
Устанавливает временную матрицу. Может изменять матрицу |
|
Расширенный оператор присваивания. |
|
Задает матричное выражение для симметричной матрицы. Левая и правая части присваивания должны быть независимыми. |
|
Вычисленный оператор присваивания. Добавляет матричное выражение к симметричной матрице. |
|
Добавляет матричное выражение к симметричной матрице. Левая и правая части присваивания должны быть независимыми. |
|
Вычисленный оператор присваивания. Вычитает матричное выражение из симметричной матрицы. |
|
Вычитает матричное выражение из симметричной матрицы. Левая и правая части присваивания должны быть независимыми. |
|
Вычисленный оператор присваивания. Умножает симметричную матрицу на число. |
|
Вычисленный оператор присваивания. Делит симметричную матрицу на число. |
|
Обменивает содержимое симметричных матриц. |
|
Вставляет значение |
|
Удаляет значение |
|
Очищает матрицу. |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
[1] Поддерживаемые параметры типов треугольных матриц: lower
и upper
.
[2] Поддерживаемые параметры организации хранения: row_major
и column_major
.
[3] Поддерживаемые параметры адаптированных массивов:
.unbounded_array<T>
, bounded_array<T>
и std::vector<T>
Шаблонный класс symmetric_adaptor<M, F>
является адаптером симметричной матрицы для других матриц.
#include <boost/numeric/ublas/symmetric.hpp> #include <boost/numeric/ublas/io.hpp> int main () { using namespace boost::numeric::ublas; matrix<double> m (3, 3); symmetric_adaptor<matrix<double>, lower> sal (m); for (unsigned i = 0; i < sal.size1 (); ++ i) for (unsigned j = 0; j <= i; ++ j) sal (i, j) = 3 * i + j; std::cout << sal << std::endl; symmetric_adaptor<matrix<double>, upper> sau (m); for (unsigned i = 0; i < sau.size1 (); ++ i) for (unsigned j = i; j < sau.size2 (); ++ j) sau (i, j) = 3 * i + j; std::cout << sau << std::endl; }
Будет выведено на экран:
[3,3]((0,3,6),(3,4,7),(6,7,8)) [3,3]((0,1,2),(1,4,5),(2,5,8))
Определен в заголовочном файле symmetric.hpp.
Параметр |
Описание |
Значение по умолчанию |
---|---|---|
|
Тип адаптированной (присоединенной) матрицы. |
|
|
Функциональный элемент, описывающий тип треугольного адаптера. [1] |
|
Функция-член |
Описание |
---|---|
|
Создает |
|
Создает |
|
Конструктор копирования. |
|
Расширенный конструктор копирования. |
|
Возвращает число строк. |
|
Возвращает число столбцов. |
|
Возвращает |
|
Возвращает ссылку на элемент в |
|
Оператор присваивания. |
|
Устанавливает временный адаптер. Может изменять симметричный
адаптер |
|
Расширенный оператор присваивания. |
|
Задает матричное выражение для симметричного адаптера. Левая и правая части присваивания должны быть независимыми. |
|
Вычисленный оператор присваивания. Добавляет матричное выражение к симметричному адаптеру. |
|
Добавляет матричное выражение к симметричному адаптеру. Левая и правая части присваивания должны быть независимыми. |
|
Вычисленный оператор присваивания. Вычитает матричное выражение из симметричного адаптера. |
|
Вычитает матричное выражение из симметричного адаптера. Левая и правая части присваивания должны быть независимыми. |
|
Вычисленный оператор присваивания. Умножает симметричный адаптер на скаляр. |
|
Вычисленный оператор присваивания. Делит симметричный адаптер на скаляр. |
|
Обменивает содержимое симметричных адаптеров. |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
|
Возвращает |
[1] Поддерживаемые параметры типов симметричных адаптеров: lower
и 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 год.