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