Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Types Overview

Boost , ,

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Overview of Matrix- and Vector-Types

Contents:
Vectors
Vector Proxies
Matrices
Matrix Proxies
Special Storage Layouts

Notation

<T> Это тип данных. Для операций общей линейной алгебры это будет реальный тип.<double>, ...
<F> Ориентационный тип (функтор)<row_major>или<column_major>
<A, IA, TA> Это тип хранилища массивов, например.<std::vector, bounded_array, unbounded_array, ...>
<TRI> Является треугольным функтором:<lower, unit_lower, strict_lower, upper, unit_upper, strict_upper>
<M, N> Неподписанные целочисленные размеры<std::size_t>
<IB> Индексная база (<std::size_t>)
<VEC> Любой векторный тип
<MAT> любой тип матрицы
<[...]> обозначают необязательные аргументы - для получения более подробной информации смотрите раздел "макет хранения".

Vectors

Definition Description
<vector<T [, A]>
   v(size);
>
Плотный вектор значений типа<T>переменного размера. Можно указать тип хранилища<A>, который по умолчанию<unbounded_array>. Элементы построены по<A>, которые не нуждаются в инициализации их стоимости.
<bounded_vector<T, N>
   v;
>
Плотный вектор значений типа<T>переменного размера, но с максимальным<N>. Строитель по умолчанию создает<v>с размером<N>. Элементы строятся по типу хранилища<bounded_array>, который не нуждается в инициализации их значения.
<c_vector<T, M>
   v(size);
>
Плотный вектор значений типа<T>с заданным размером. Данные хранятся как обычный массив C++<T data_[M]>.
<zero_vector<T>
   v(size);
>
нулевой вектор типа<T>с заданным размером.
<unit_vector<T>
   v(size, index);
>
Единичный вектор типа<T>с заданным размером. Вектор равен нулю, то есть одному заданному элементу.
<index>должно быть меньше<size>.
<mapped_vector<T [, S]>
   v(size);
>
Разреженный вектор значений типа<T>переменного размера. Разреженный тип хранения<S>может быть<std::map<size_t, T>>или<map_array<size_t, T>>.
<compressed_vector<T [,IB, IA, TA]>
   v(size);
>
Разреженный вектор значений типа<T>переменного размера. Ненулевые значения хранятся как два отдельных массива — индексный массив и массив значений. Массив индексов всегда сортируется, и для каждого индекса есть максимум одна запись.
<coordinate_vector<T [,IB, IA, TA]>
   v(size);
>
Разреженный вектор значений типа<T>переменного размера. Ненулевые значения хранятся как два отдельных массива — индексный массив и массив значений. Массивы могут быть не в порядке с несколькими входами для каждого векторного элемента. Если для одного и того же индекса существует несколько значений, сумма этих значений является реальной величиной.

Примечание:типы по умолчанию определены в<boost/numeric/ublas/fwd.hpp>.

Vector Proxies

Definition Description
<vector_range<VEC>
   vr(v, range);
>
вектор, ссылающийся на непрерывный субвектор элементов вектора<v>, содержащий все элементы, указанные в<range>.
<vector_slice<VEC>
   vs(v, slice);
>
вектор, ссылающийся на не непрерывный субвектор элементов вектора<v>, содержащий все элементы, указанные в<slice>.
<matrix_row<MAT>
   vr(m, index);
>
вектор, ссылающийся на<index>-й ряд матрицы<m>
<matrix_column<MAT>
   vc(m, index);
>
вектор, ссылающийся на<index>- столбец матрицы<m>

Matrices

Definition Description
<matrix<T [, F, A]>
   m(size1, size2);
>
плотная матрица значений типа<T>переменного размера. Можно указать тип хранилища<A>, который по умолчанию соответствует<unbounded_array>. Ориентационный функтор<F>по умолчанию равен<row_major>. Элементы построены по<A>, которые не нуждаются в инициализации их значения.
<bounded_matrix<T, M, N [, F]>
   m;
>
Плотная матрица типа<T>с переменным размером с максимумом<M>— на —<N>. Показатель<F>—<row_major>. Строитель по умолчанию создает<m>с размером<M>по<N>. Элементы строятся по типу хранилища<bounded_array>, который не нуждается в инициализации их значения.
<c_matrix<T, M, N>
   m(size1, size2);
>
плотная матрица значений типа<T>с заданным размером. Данные хранятся как обычный массив C++<T data_[N][M]>.
<vector_of_vector<T [, F, A]>
   m(size1, size2);
>
Плотная матрица значений типа<T>с заданным размером. Данные хранятся как вектор векторов.<F>,<row_major>, [скрыто], [скрыто]. Тип хранилища<S>по умолчанию<unbounded_array<unbounded_array<T> >>
<zero_matrix<T>
   m(size1, size2);
>
Нулевая матрица типа<T>с заданным размером.
<identity_matrix<T>
   m(size1, size2);
>
матрица идентификации типа<T>с заданным размером. Значения<v(i,j) = (i==j)?T(1):T()>.
<scalar_matrix<T>
   m(size1, size2, value);
>
Матрица типа<T>с заданным размером, которая имеет значение<value>везде.
<triangular_matrix<T [, TRI, F, A]>
   m(size);
>
Треугольная матрица значений типа<T>переменного размера. Только ненулевые элементы хранятся в заданном порядке<F>. Треугольный тип<F>по умолчанию<lower>, тип ориентации<F>по умолчанию<row_major>.
<banded_matrix<T [, F, A]>
   m(size1, size2, n_lower, n_upper);
>
Полосатая матрица значений типа<T>переменного размера с<n_lower>субдиагональю и<n_upper>супердиагональю. Только ненулевые элементы хранятся в заданном порядке<F>.
<symmetric_matrix<T [, TRI, F, A]>
   m(size);
>
симметричная матрица значений типа<T>переменного размера. Только заданная треугольная матрица хранится в заданном порядке<F>.
<hermitian_matrix<T [, TRI, F, A]>
   m(size);
>
а отшельническая матрица значений типа<T>переменного размера. Только заданная треугольная матрица сохраняется с помощью порядка<F>.
<mapped_matrix<T, [F, S]>
   m(size1, size2 [, non_zeros]);
>
Разреженная матрица значений типа<T>переменного размера. Разреженный тип хранения<S>может быть либо<std::map<size_t, std::map<size_t, T> >>, либо<map_array<size_t, map_array<size_t, T> >>.
<sparse_vector_of_sparse_vector<T, [F, C]>
   m(size1, size2 [, non_zeros]);
>
Разреженная матрица значений типа<T>переменного размера.
<compressed_matrix<T, [F, IB, IA, TA]>
   m(size1, size2 [, non_zeros]);
>
Разреженная матрица значений типа<T>переменного размера. Значения хранятся в сжатой строке / колонке хранения.
<coordinate_matrix<T, [F, IB, IA, TA]>
   m(size1, size2 [, non_zeros]);
>
Разреженная матрица значений типа<T>переменного размера. Значения хранятся в 3 параллельных массивах как тройки (i, j, значение). Для каждой пары индексов возможно более одного значения, реальное значение — сумма всех.
<generalized_vector_of_vector<T, F, A>
   m(size1, size2 [, non_zeros]);
>
Разреженная матрица значений типа<T>переменного размера. Значения хранятся как вектор разреженных векторов, например<generalized_vector_of_vector<double, row_major, unbounded_array<coordinate_vector<double> > >>.

Примечание:типы по умолчанию определены в<boost/numeric/ublas/fwd.hpp>.

Matrix Proxies

Definition Description
<triangular_adaptor<MAT, TRI>
   ta(m);
>
Треугольная матрица, ссылающаяся на выбор элементов матрицы<m>.
<symmetric_adaptor<MAT, TRI>
   sa(m);
>
симметричная матрица, относящаяся к выбору элементов матрицы<m>.
<hermitian_adaptor<MAT, TRI>
   ha(m);
>
a отшельническая матрица, относящаяся к выбору элементов матрицы<m>.
<banded_adaptor<MAT>
   ba(m, n_lower, n_upper);
>
- полосатая матрица, относящаяся к выбору элементов матрицы<m>.
<matrix_range<MAT, TRI>
   mr(m, range1, range2);
>
матрица, ссылающаяся на подматрицу элементов в матрице<m>.
<matrix_slice<MAT, TRI>
   ms(m, slice1, slice2);
>
матрица, ссылающаяся на непродолжающуюся подматрицу элементов в матрице<m>.

Special Storage Layouts

Библиотека поддерживает обычные плотные, упакованные и базовые разреженные векторные и матричные макеты хранения. Далее следует описание наиболее распространенных конструкций векторов и матриц.

Construction Comment
<vector<T,
 std::vector<T> >
  v (size)
>
плотный вектор, хранение обеспечивается стандартным вектором.
Макет хранилища обычно соответствует BLAS.
<vector<T,
 unbounded_array<T> >
  v (size)
>
плотный вектор, хранение обеспечивается массивом на основе кучи.
Макет хранилища обычно соответствует BLAS.
<vector<T,
 bounded_array<T, N> >
  v (size)
>
плотный вектор, хранение обеспечивается массивом на основе стека.
Планировка хранилища обычно соответствует BLAS.
<mapped_vector<T,
 std::map<std::size_t, T> >
  v (size, non_zeros)
>
Разреженный вектор, хранение обеспечивается стандартной картой.
<mapped_vector<T,
 map_array<std::size_t, T> >
  v (size, non_zeros)
>
редкий вектор, хранение обеспечивается массивом карт.
<matrix<T,
 row_major,
 std::vector<T> >
  m (size1, size2)
>
плотная матрица, ориентация является основной строкой, хранение обеспечивается стандартным вектором.
<matrix<T,
 column_major,
 std::vector<T> >
  m (size1, size2)
>
плотная матрица, ориентация — столбцовая, хранение обеспечивается стандартным вектором.
Макет хранения обычно соответствует BLAS.
<matrix<T,
 row_major,
 unbounded_array<T> >
  m (size1, size2)
>
плотная матрица, ориентация является основной строкой, хранение обеспечивается массивом на основе кучи.
<matrix<T,
 column_major,
 unbounded_array<T> >
  m (size1, size2)
>
плотная матрица, ориентация является основной колонкой, хранение обеспечивается массивом на основе кучи.
Макет хранения обычно соответствует BLAS.
<matrix<T,
 row_major,
 bounded_array<T, N1 * N2> >
  m (size1, size2)
>
плотная матрица, ориентация является основной строкой, хранение обеспечивается массивом на основе стека.
<matrix<T,
 column_major,
 bounded_array<T, N1 * N2> >
  m (size1, size2)
>
плотная матрица, ориентация является основной колонкой, хранение обеспечивается массивом на основе стека.
Схема хранения обычно соответствует BLAS.
<triangular_matrix<T,
 row_major, F, A>
  m (size)
>
Упакованная треугольная матрица, ориентация является основной строкой.
<triangular_matrix<T,
 column_major, F, A>
  m (size)
>
Упакованная треугольная матрица, ориентация является основной колонкой.
Макет хранилища обычно соответствует BLAS.
<banded_matrix<T,
 row_major, A>
  m (size1, size2, lower, upper)
>
упакованная полосатая матрица, ориентация — строка мажор.
<banded_matrix<T,
 column_major, A>
  m (size1, size2, lower, upper)
>
упакованная полосатая матрица, ориентация - столбец майор.
Макет хранилища обычно соответствует BLAS.
<symmetric_matrix<T,
 row_major, F, A>
  m (size)
>
Упакованная симметричная матрица, ориентация является основной строкой.
<symmetric_matrix<T,
 column_major, F, A>
  m (size)
>
Упакованная симметричная матрица, ориентация является основной колонкой.
Планировка хранилища обычно соответствует BLAS.
<hermitian_matrix<T,
 row_major, F, A>
  m (size)
>
упакованная отшельническая матрица, ориентация - главная строка.
<hermitian_matrix<T,
 column_major, F, A>
  m (size)
>
упакованная отшельническая матрица, ориентация - колонна майора.
Макет хранилища обычно соответствует BLAS.
<mapped_matrix<T,
 row_major,
 std::map<std::size_t, T> >
  m (size1, size2, non_zeros)
>
разреженная матрица, ориентация — строковая, хранение обеспечивается стандартной картой.
<mapped_matrix<T,
 column_major,
 std::map<std::size_t, T> >
  m (size1, size2, non_zeros)
>
разреженная матрица, ориентация — столбец майор, хранение обеспечивается стандартной картой.
<mapped_matrix<T,
 row_major,
 map_array<std::size_t, T> >
  m (size1, size2, non_zeros)
>
разреженная матрица, ориентация является основной строкой, хранение обеспечивается массивом карт.
<mapped_matrix<T,
 column_major,
 map_array<std::size_t, T> >
  m (size1, size2, non_zeros)
>
разреженная матрица, ориентация является основной колонкой, хранение обеспечивается массивом карт.
<compressed_matrix<T,
 row_major>
  m (size1, size2, non_zeros)
>
сжатая матрица, ориентация является основной строкой.
Планировка хранилища обычно соответствует BLAS.
<compressed_matrix<T,
 column_major>
  m (size1, size2, non_zeros)
>
сжатая матрица, ориентация является основной колонкой.
Макет хранилища обычно соответствует BLAS.
<coordinate_matrix<T,
 row_major>
  m (size1, size2, non_zeros)
>
координатная матрица, ориентация является основной строкой.
Макет хранилища обычно соответствует BLAS.
<coordinate_matrix<T,
 column_major>
  m (size1, size2, non_zeros)
>
координатная матрица, ориентация является основной колонкой.
Планировка хранилища обычно соответствует BLAS.

Авторское право (©) 2000-2004 Джорг Уолтер, Матиас Кох, Гюнтер Уинклер, Майкл Стивенс
На использование, модификацию и распространение распространяется лицензия Boost Software License, Version 1.0. (См. сопроводительный файл LICENSE_1_0.txt или копию по адресу) http://www.boost.org/LICENSE_1_0.txt.

Статья Types Overview раздела может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 00:28:36/0.027307987213135/1