Симметричная матрицаШаблонный класс 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 год.