![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Matrix ProxiesBoost , ,
|
Parameter | Description | Default |
---|---|---|
<M > |
Тип используемой матрицы. |
Если указанная строка выходит за пределы диапазона индексов строк матрицы, то<matrix_row
>не является хорошо сформированным векторным выражением. То есть доступ к элементу, находящемуся вне матрицы,неопределён.
Нет, кроме тех, которые налагаются требованиямиВекторной экспрессии.
<vector_expression<matrix_row<M> >
>
Member | Description |
---|---|
<matrix_row (matrix_type &data, size_type
i) > |
Построение подвектора. |
<size_type size () const > |
Возвращает размер подвектора. |
<const_reference operator () (size_type i)
const > |
Возвращает значение<i >-го элемента. |
<reference operator () (size_type i) > |
Возвращает ссылку на<i >-й элемент. |
<matrix_row &operator = (const matrix_row
&mr) > |
Оператор назначения. |
<matrix_row &assign_temporary (matrix_row
&mr) > |
Назначает временное. Может изменять строку матрицы<mr >. |
<template<class AE> > |
Оператор расширенного назначения. |
<template<class AE> > |
Назначает векторное выражение на подвектор. Левая и правая стороны задания должны быть независимыми. |
<template<class AE> > |
Вычисленный оператор назначения. Добавляет векторное выражение к подвектору. |
<template<class AE> > |
Добавляет векторное выражение к подвектору. Левая и правая стороны задания должны быть независимыми. |
<template<class AE> > |
Вычисленный оператор назначения. Вычитает векторное выражение из подвектора. |
<template<class AE> > |
Вычитает векторное выражение из подвектора. Левая и правая стороны задания должны быть независимыми. |
<template<class AT> > |
Вычисленный оператор назначения. Умножает суб-вектор на скаляр. |
<template<class AT> > |
Вычисленный оператор назначения. Разделяет подвектор через скаляр. |
<void swap (matrix_row &mr) > |
Перемещает содержимое подвекторов. |
<const_iterator begin () const > |
<const_iterator >Возвращается, указывая на начало<matrix_row >. |
<const_iterator end () const > |
<const_iterator >Возвращается, указывая на конец<matrix_row >. |
<iterator begin () > |
Возвращает<iterator >, указывая на начало<matrix_row >. |
<iterator end () > |
<iterator >Возвращается, указывая на конец<matrix_row >. |
<const_reverse_iterator rbegin () const > |
Возвращает<const_reverse_iterator >, указывая на начало обратного<matrix_row >. |
<const_reverse_iterator rend () const > |
Возвращает<const_reverse_iterator >, указывая на конец обратного<matrix_row >. |
<reverse_iterator rbegin () > |
<reverse_iterator >, что указывает на начало обратного<matrix_row >. |
<reverse_iterator rend () > |
<reverse_iterator >Возвращается, указывая на конец обратного<matrix_row >. |
Свободные<row
>функции поддерживают построение матричных рядов.
template<class M>
matrix_row<M> row (M &data, std::size_t i);
template<class M>
const matrix_row<const M> row (const M &data, std::size_t i);
Определяется в заголовке matrix_proxy.hpp.
M
является модельюМатричного выражения.Линейный в зависимости от размера строки.
#include <boost/numeric/ublas/matrix.hpp> #include <boost/numeric/ublas/matrix_proxy.hpp> #include <boost/numeric/ublas/io.hpp> int main () { using namespace boost::numeric::ublas; matrix<double> m (3, 3); for (unsigned i = 0; i < m.size1 (); ++ i) { for (unsigned j = 0; j < m.size2 (); ++ j) row (m, i) (j) = 3 * i + j; std::cout << row (m, i) << std::endl; } }
Класс шаблонов<matrix_column<M>
>позволяет обращаться к столбцу матрицы.
#include <boost/numeric/ublas/matrix.hpp> #include <boost/numeric/ublas/matrix_proxy.hpp> #include <boost/numeric/ublas/io.hpp> int main () { using namespace boost::numeric::ublas; matrix<double> m (3, 3); for (unsigned j = 0; j < m.size2 (); ++ j) { matrix_column<matrix<double> > mc (m, j); for (unsigned i = 0; i < mc.size (); ++ i) mc (i) = 3 * i + j; std::cout << mc << std::endl; } }
Определяется в заголовке matrix_proxy.hpp.
Parameter | Description | Default |
---|---|---|
<M > |
Тип используемой матрицы. |
Если указанный столбец выходит за пределы диапазона индекса столбца матрицы, то<matrix_column
>не является хорошо сформированным векторным выражением. То есть доступ к элементу, находящемуся вне матрицы,неопределён.
Нет, кроме тех, которые налагаются требованиямиВекторной экспрессии.
<vector_expression<matrix_column<M>
>
>
Member | Description |
---|---|
<matrix_column (matrix_type &data, size_type
j) > |
Построение подвектора. |
<size_type size () const > |
Возвращает размер подвектора. |
<const_reference operator () (size_type i)
const > |
Возвращает значение<i >-го элемента. |
<reference operator () (size_type i) > |
Возвращает ссылку на<i >-й элемент. |
<matrix_column &operator = (const matrix_column
&mc) > |
Оператор назначения. |
<matrix_column &assign_temporary (matrix_column
&mc) > |
Назначает временное. Может изменяться матрица столбца<mc >. |
<template<class AE> > |
Оператор расширенного назначения. |
<template<class AE> > |
Назначает векторное выражение на подвектор. Левая и правая стороны задания должны быть независимыми. |
<template<class AE> > |
Вычисленный оператор назначения. Добавляет векторное выражение к подвектору. |
<template<class AE> > |
Добавляет векторное выражение к подвектору. Левая и правая стороны задания должны быть независимыми. |
<template<class AE> > |
Вычисленный оператор назначения. Вычитает векторное выражение из подвектора. |
<template<class AE> > |
Вычитает векторное выражение из подвектора. Левая и правая стороны задания должны быть независимыми. |
<template<class AT> > |
Вычисленный оператор назначения. Умножает суб-вектор на скаляр. |
<template<class AT> > |
Вычисленный оператор назначения. Разделяет подвектор через скаляр. |
<void swap (matrix_column &mc) > |
Перемещает содержимое подвекторов. |
<const_iterator begin () const > |
<const_iterator >Возвращается, указывая на начало<matrix_column >. |
<const_iterator end () const > |
<const_iterator >Возвращается, указывая на конец<matrix_column >. |
<iterator begin () > |
<iterator >, что указывает на начало<matrix_column >. |
<iterator end () > |
<iterator >Возвращается, указывая на конец<matrix_column >. |
<const_reverse_iterator rbegin () const > |
<const_reverse_iterator >, что указывает на начало обратного<matrix_column >. |
<const_reverse_iterator rend () const > |
<const_reverse_iterator >Возвращается, указывая на конец обратного<matrix_column >. |
<reverse_iterator rbegin () > |
Возвращает<reverse_iterator >, указывая на начало обратного<matrix_column >. |
<reverse_iterator rend () > |
Возвращает<reverse_iterator >, указывая на конец обратного<matrix_column >. |
Свободные<column
>функции поддерживают конструкцию матричных столбцов.
template<class M>
matrix_column<M> column (M &data, std::size_t j);
template<class M>
const matrix_column<const M> column (const M &data, std::size_t j);
Определяется в заголовке matrix_proxy.hpp.
M
является модельюМатричного выражения.Линейный в зависимости от размера колонны.
#include <boost/numeric/ublas/matrix.hpp> #include <boost/numeric/ublas/matrix_proxy.hpp> #include <boost/numeric/ublas/io.hpp> int main () { using namespace boost::numeric::ublas; matrix<double> m (3, 3); for (unsigned j = 0; j < m.size2 (); ++ j) { for (unsigned i = 0; i < m.size1 (); ++ i) column (m, j) (i) = 3 * i + j; std::cout << column (m, j) << std::endl; } }
Класс шаблонов<matrix_vector_range<M>
>позволяет адресовать подвектор матрицы.
#include <boost/numeric/ublas/matrix.hpp> #include <boost/numeric/ublas/matrix_proxy.hpp> #include <boost/numeric/ublas/io.hpp> int main () { using namespace boost::numeric::ublas; matrix<double> m (3, 3); for (unsigned i = 0; i < m.size1 (); ++ i) for (unsigned j = 0; j < m.size2 (); ++ j) m (i, j) = 3 * i + j; matrix_vector_range<matrix<double> > mvr (m, range (0, 3), range (0, 3)); std::cout << mvr << std::endl; }
Определяется в заголовке matrix_proxy.hpp.
Parameter | Description | Default |
---|---|---|
<M > |
Тип используемой матрицы. |
Если указанные диапазоны выходят за пределы индексного диапазона матрицы, то<matrix_vector_range
>не является хорошо сформированной векторной экспрессией. То есть доступ к элементу, находящемуся вне матрицы,неопределён.
Нет, кроме тех, которые налагаются требованиямиВекторной экспрессии.
<vector_expression<matrix_vector_range<M>
>
>
Member | Description |
---|---|
<matrix_vector_range (matrix_type &data, > |
Построение подвектора. |
<size_type size () const > |
Возвращает размер подвектора. |
<const_reference operator () (size_type i)
const > |
Возвращает значение<i >-го элемента. |
<reference operator () (size_type i) > |
Возвращает ссылку на<i >-й элемент. |
<matrix_vector_range &operator = (const
matrix_vector_range &mvr) > |
Оператор назначения. |
<matrix_vector_range &assign_temporary
(matrix_vector_range &mvr) > |
Назначает временное. Может изменять диапазон векторов матрицы<mvr >. |
<template<class AE> > |
Оператор расширенного назначения. |
<template<class AE> > |
Назначает векторное выражение на подвектор. Левая и правая стороны задания должны быть независимыми. |
<template<class AE> > |
Вычисленный оператор назначения. Добавляет векторное выражение к подвектору. |
<template<class AE> > |
Добавляет векторное выражение к подвектору. Левая и правая стороны задания должны быть независимыми. |
<template<class AE> > |
Вычисленный оператор назначения. Вычитает векторное выражение из подвектора. |
<template<class AE> > |
Вычитает векторное выражение из подвектора. Левая и правая стороны задания должны быть независимыми. |
<template<class AT> > |
Вычисленный оператор назначения. Умножает суб-вектор на скаляр. |
<template<class AT> > |
Вычисленный оператор назначения. Разделяет подвектор через скаляр. |
<void swap (matrix_vector_range &mvr) > |
Перемещает содержимое подвекторов. |
<const_iterator begin () const > |
Возвращает<const_iterator >, указывая на начало<matrix_vector_range >. |
<const_iterator end () const > |
Возвращает<const_iterator >, указывая на конец<matrix_vector_range >. |
<iterator begin () > |
<iterator >указывает на начало<matrix_vector_range >. |
<iterator end () > |
144, что указывает на конец<matrix_vector_range >. |
<const_reverse_iterator rbegin () const > |
<const_reverse_iterator >, что указывает на начало<matrix_vector_range >. |
<const_reverse_iterator rend () const > |
Возвращает<const_reverse_iterator >, указывая на конец обратного<matrix_vector_range >. |
<reverse_iterator rbegin () > |
Возвращает<reverse_iterator >, указывая на начало обратного<matrix_vector_range >. |
<reverse_iterator rend () > |
Возвращает<reverse_iterator >, указывая на конец обратного<matrix_vector_range >. |
Класс шаблонов<matrix_vector_slice<M>
>позволяет адресовать нарезанный подвектор матрицы.
#include <boost/numeric/ublas/matrix.hpp> #include <boost/numeric/ublas/matrix_proxy.hpp> #include <boost/numeric/ublas/io.hpp> int main () { using namespace boost::numeric::ublas; matrix<double> m (3, 3); for (unsigned i = 0; i < m.size1 (); ++ i) for (unsigned j = 0; j < m.size2 (); ++ j) m (i, j) = 3 * i + j; matrix_vector_slice<matrix<double> > mvs (m, slice (0, 1, 3), slice (0, 1, 3)); std::cout << mvs << std::endl; }
Определяется в заголовке matrix_proxy.hpp.
Parameter | Description | Default |
---|---|---|
<M > |
Тип используемой матрицы. |
Если указанные срезы выходят за пределы индексного диапазона матрицы, то<matrix_vector_slice
>не является хорошо сформированной векторной экспрессией. То есть доступ к элементу, находящемуся вне матрицы,неопределён.
Нет, кроме тех, которые налагаются требованиямиВекторной экспрессии.
<vector_expression<matrix_vector_slice<M>
>
>
Member | Description |
---|---|
<matrix_vector_slice (matrix_type &data, > |
Построение подвектора. |
<size_type size () const > |
Возвращает размер подвектора. |
<const_reference operator () (size_type i)
const > |
Возвращает значение<i >-го элемента. |
<reference operator () (size_type i) > |
Возвращает ссылку на<i >-й элемент. |
<matrix_vector_slice &operator = (const
matrix_vector_slice &mvs) > |
Оператор назначения. |
<matrix_vector_slice &assign_temporary
(matrix_vector_slice &mvs) > |
Назначает временное. Может изменять вектор матрицы срезом<vs >. |
<template<class AE> > |
Оператор расширенного назначения. |
<template<class AE> > |
Назначает векторное выражение на подвектор. Левая и правая стороны задания должны быть независимыми. |
<template<class AE> > |
Вычисленный оператор назначения. Добавляет векторное выражение к подвектору. |
<template<class AE> > |
Добавляет векторное выражение к подвектору. Левая и правая стороны задания должны быть независимыми. |
<template<class AE> > |
Вычисленный оператор назначения. Вычитает векторное выражение из подвектора. |
<template<class AE> > |
Вычитает векторное выражение из подвектора. Левая и правая стороны задания должны быть независимыми. |
<template<class AT> > |
Вычисленный оператор назначения. Умножает суб-вектор на скаляр. |
<template<class AT> > |
Вычисленный оператор назначения. Разделяет подвектор через скаляр. |
<void swap (matrix_vector_slice &mvs) > |
Перемещает содержимое подвекторов. |
<const_iterator begin () const > |
Возвращает<const_iterator >, указывая на начало<matrix_vector_slice >. |
<const_iterator end () const > |
Возвращает<const_iterator >, указывая на конец<matrix_vector_slice >. |
<iterator begin () > |
<iterator >указывает на начало<matrix_vector_slice >. |
<iterator end () > |
<iterator >, что указывает на конец<matrix_vector_slice >. |
<const_reverse_iterator rbegin () const > |
Возвращает<const_reverse_iterator >, указывая на начало обратного<matrix_vector_slice >. |
<const_reverse_iterator rend () const > |
Возвращает<const_reverse_iterator >, указывая на конец обратного<matrix_vector_slice >. |
<reverse_iterator rbegin () > |
Возвращает<reverse_iterator >, указывая на начало обратного<matrix_vector_slice >. |
<reverse_iterator rend () > |
Возвращает<reverse_iterator >, указывая на конец обратного<matrix_vector_slice >. |
Класс шаблонов<matrix_range<M>
>позволяет обращаться к подматрице матрицы.
#include <boost/numeric/ublas/matrix.hpp> #include <boost/numeric/ublas/matrix_proxy.hpp> #include <boost/numeric/ublas/io.hpp> int main () { using namespace boost::numeric::ublas; matrix<double> m (3, 3); matrix_range<matrix<double> > mr (m, range (0, 3), range (0, 3)); for (unsigned i = 0; i < mr.size1 (); ++ i) for (unsigned j = 0; j < mr.size2 (); ++ j) mr (i, j) = 3 * i + j; std::cout << mr << std::endl; }
Определяется в заголовке matrix_proxy.hpp.
Parameter | Description | Default |
---|---|---|
<M > |
Тип используемой матрицы. |
Если указанные диапазоны выходят за пределы индексного диапазона матрицы, то<matrix_range
>не является хорошо сформированным выражением матрицы. То есть доступ к элементу, который находится вне матрицы,не определен.
Нет, кроме тех, которые налагаются требованиямиМатричного выражения.
<matrix_expression<matrix_range<M> >
>
Member | Description |
---|---|
<matrix_range (matrix_type &data, > |
Построение подматрицы. |
<size_type start1 () const > |
Возвращает индекс первого ряда. |
<size_type size1 () const > |
Возвращает количество строк. |
<size_type start2 () const > |
Возвращает индекс первой колонки. |
<size_type size2 () const > |
Возвращает количество колонок. |
<const_reference operator () (size_type i, size_type j)
const > |
Возвращает значение<j >-го элемента в<i >-го ряда. |
<reference operator () (size_type i, size_type
j) > |
Возвращает ссылку на<j >-й элемент в<i >-й строке. |
<matrix_range &operator = (const matrix_range
&mr) > |
Оператор назначения. |
<matrix_range &assign_temporary (matrix_range
&mr) > |
Назначает временное. Может изменять диапазон матрицы<mr >. |
<template<class AE> > |
Оператор расширенного назначения. |
<template<class AE> > |
Назначает матричную экспрессию на подматрицу. Левая и правая стороны задания должны быть независимыми. |
<template<class AE> > |
Вычисленный оператор назначения. Добавляет выражение матрицы в подматрицу. |
<template<class AE> > |
Добавляет выражение матрицы в подматрицу. Левая и правая стороны задания должны быть независимыми. |
<template<class AE> > |
Вычисленный оператор назначения. Вычитает выражение матрицы из подматрицы. |
<template<class AE> > |
Вычитает выражение матрицы из подматрицы. Левая и правая стороны задания должны быть независимыми. |
<template<class AT> > |
Вычисленный оператор назначения. Умножает подматрицу на скаляр. |
<template<class AT> > |
Вычисленный оператор назначения. Разделяет подматрицу через скаляр. |
<void swap (matrix_range &mr) > |
Изменяет содержание подматриц. |
<const_iterator1 begin1 () const > |
Возвращает<const_iterator1 >, указывая на начало<matrix_range >. |
<const_iterator1 end1 () const > |
<const_iterator1 >, указывающий на конец<matrix_range >. |
<iterator1 begin1 () > |
<iterator1 >указывает на начало<matrix_range >. |
<iterator1 end1 () > |
<iterator1 >, что указывает на конец<matrix_range >. |
<const_iterator2 begin2 () const > |
Возвращает<const_iterator2 >, указывая на начало<matrix_range >. |
<const_iterator2 end2 () const > |
<const_iterator2 >, что указывает на конец<matrix_range >. |
<iterator2 begin2 () > |
<iterator2 >, что указывает на начало<matrix_range >. |
<iterator2 end2 () > |
Возвращает<iterator2 >, указывая на конец<matrix_range >. |
<const_reverse_iterator1 rbegin1 () const > |
Возвращает<const_reverse_iterator1 >, указывая на начало обратного<matrix_range >. |
<const_reverse_iterator1 rend1 () const > |
Возвращает<const_reverse_iterator1 >, указывая на конец обратного<matrix_range >. |
<reverse_iterator1 rbegin1 () > |
Возвращает<reverse_iterator1 >, указывая на начало обратного<matrix_range >. |
<reverse_iterator1 rend1 () > |
Возвращает<reverse_iterator1 >, указывая на конец обратного<matrix_range >. |
<const_reverse_iterator2 rbegin2 () const > |
Возвращает<const_reverse_iterator2 >, указывая на начало обратного<matrix_range >. |
<const_reverse_iterator2 rend2 () const > |
Обратный<const_reverse_iterator2 >указывает на конец обратного<matrix_range >. |
<reverse_iterator2 rbegin2 () > |
Возвращает<reverse_iterator2 >, указывая на начало обратного<matrix_range >. |
<reverse_iterator2 rend2 () > |
Возвращает<reverse_iterator2 >, указывая на конец обратного<matrix_range >. |
Свободные<subrange
>функции поддерживают построение матричных диапазонов.
template<class M>
matrix_range<M> subrange (M &data,
M::size_type start1, M::size_type stop1, M::size_type start2, M::size_type, stop2);
template<class M>
const matrix_range<const M> subrange (const M &data,
M::size_type start1, M::size_type stop1, M::size_type start2, M::size_type, stop2);
Свободные<project
>функции поддерживают построение матричных диапазонов. Существующие<matrix_range
>могут быть составлены с дальнейшими диапазонами. Полученные диапазоны вычисляются с использованием функции<compose
>существующих диапазонов.
template<class M>
matrix_range<M> project (M &data, const range &r1, const range &r2);
template<class M>
const matrix_range<const M> project (const M &data, const range &r1, const range &r2);
template<class M>
matrix_range<M> project (matrix_range<M> &data, const range &r1, const range &r2);
template<class M>
const matrix_range<M> project (const matrix_range<M> &data, const range &r1, const range &r2);
Определяется в заголовке matrix_proxy.hpp.
M
является модельюМатричного выражения.Квадратный в зависимости от размера диапазонов.
#include <boost/numeric/ublas/matrix.hpp> #include <boost/numeric/ublas/matrix_proxy.hpp> #include <boost/numeric/ublas/io.hpp> int main () { using namespace boost::numeric::ublas; matrix<double> m (3, 3); for (unsigned i = 0; i < m.size1 (); ++ i) for (unsigned j = 0; j < m.size2 (); ++ j) project (m, range (0, 3), range (0, 3)) (i, j) = 3 * i + j; std::cout << project (m, range (0, 3), range (0, 3)) << std::endl; }
Класс шаблонов<matrix_slice<M>
>позволяет обращаться к нарезанной подматрице матрицы.
#include <boost/numeric/ublas/matrix.hpp> #include <boost/numeric/ublas/matrix_proxy.hpp> #include <boost/numeric/ublas/io.hpp> int main () { using namespace boost::numeric::ublas; matrix<double> m (3, 3); matrix_slice<matrix<double> > ms (m, slice (0, 1, 3), slice (0, 1, 3)); for (unsigned i = 0; i < ms.size1 (); ++ i) for (unsigned j = 0; j < ms.size2 (); ++ j) ms (i, j) = 3 * i + j; std::cout << ms << std::endl; }
Определяется в заголовке matrix_proxy.hpp.
Parameter | Description | Default |
---|---|---|
<M > |
Тип используемой матрицы. |
Если указанные срезы выходят за пределы индексного диапазона матрицы, то<matrix_slice
>не является хорошо сформированным выражением матрицы. То есть доступ к элементу, находящемуся вне матрицы,неопределён.
Нет, кроме тех, которые налагаются требованиямиМатричного выражения.
<matrix_expression<matrix_slice<M> >
>
Member | Description |
---|---|
<matrix_slice (matrix_type &data, > |
Построение подматрицы. |
<size_type size1 () const > |
Возвращает количество строк. |
<size_type size2 () const > |
Возвращает количество колонок. |
<const_reference operator () (size_type i, size_type j)
const > |
Возвращает значение<j >-го элемента в<i >-го ряда. |
<reference operator () (size_type i, size_type
j) > |
Возвращает ссылку на<j >-й элемент в<i >-й строке. |
<matrix_slice &operator = (const matrix_slice
&ms) > |
Оператор назначения. |
<matrix_slice &assign_temporary (matrix_slice
&ms) > |
Назначает временное. Может изменяться срез матрицы<ms >. |
<template<class AE> > |
Оператор расширенного назначения. |
<template<class AE> > |
Назначает матричную экспрессию на подматрицу. Левая и правая стороны задания должны быть независимыми. |
<template<class AE> > |
Вычисленный оператор назначения. Добавляет выражение матрицы в подматрицу. |
<template<class AE> > |
Добавляет выражение матрицы в подматрицу. Левая и правая стороны задания должны быть независимыми. |
<template<class AE> > |
Вычисленный оператор назначения. Вычитает выражение матрицы из подматрицы. |
<template<class AE> > |
Вычитает выражение матрицы из подматрицы. Левая и правая стороны задания должны быть независимыми. |
<template<class AT> > |
Вычисленный оператор назначения. Умножает подматрицу на скаляр. |
<template<class AT> > |
Вычисленный оператор назначения. Умножает подматрицу через скаляр. |
<void swap (matrix_slice &ms) > |
Изменяет содержание подматриц. |
<const_iterator1 begin1 () const > |
Возвращает<const_iterator1 >, указывая на начало<matrix_slice >. |
<const_iterator1 end1 () const > |
330, что указывает на конец<matrix_slice >. |
<iterator1 begin1 () > |
Возвращает<iterator1 >, указывая на начало<matrix_slice >. |
<iterator1 end1 () > |
Возвращает<iterator1 >, указывая на конец<matrix_slice >. |
<const_iterator2 begin2 () const > |
Возвращает<const_iterator2 >, указывая на начало<matrix_slice >. |
<const_iterator2 end2 () const > |
<const_iterator2 >, что указывает на конец<matrix_slice >. |
<iterator2 begin2 () > |
Возвращает<iterator2 >, указывая на начало<matrix_slice >. |
<iterator2 end2 () > |
Возвращает<iterator2 >, указывая на конец<matrix_slice >. |
<const_reverse_iterator1 rbegin1 () const > |
Возвращает<const_reverse_iterator1 >, указывая на начало обратного<matrix_slice >. |
<const_reverse_iterator1 rend1 () const > |
Возвращает<const_reverse_iterator1 >, указывая на конец обратного<matrix_slice >. |
<reverse_iterator1 rbegin1 () > |
Возвращает<reverse_iterator1 >, указывая на начало обратного<matrix_slice >. |
<reverse_iterator1 rend1 () > |
Возвращает<reverse_iterator1 >, указывая на конец обратного<matrix_slice >. |
<const_reverse_iterator2 rbegin2 () const > |
Возвращает<const_reverse_iterator2 >, указывая на начало обратного<matrix_slice >. |
<const_reverse_iterator2 rend2 () const > |
Возвращает<const_reverse_iterator2 >, указывая на конец обратного<matrix_slice >. |
<reverse_iterator2 rbegin2 () > |
Возвращает<reverse_iterator2 >, указывая на начало обратного<matrix_slice >. |
<reverse_iterator2 rend2 () > |
Возвращает<reverse_iterator2 >, указывая на конец обратного<matrix_slice >. |
Свободные<subslice
>функции поддерживают конструкцию матричных срезов.
template<class M>
matrix_slice<M> subslice (M &data,
M::size_type start1, M::difference_type stride1, M::size_type size1,
M::size_type start2, M::difference_type stride2, M::size_type size2);
template<class M>
const matrix_slice<const M> subslice (const M &data,
M::size_type start1, M::difference_type stride1, M::size_type size1,
M::size_type start2, M::difference_type stride2, M::size_type size2);
Свободные<project
>функции поддерживают конструкцию матричных срезов. Существующие<matrix_slice
>могут быть составлены с дальнейшими диапазонами или срезами. Полученные срезы вычисляются с использованием этой существующей функции срезов<compose
>.
template<class M>
matrix_slice<M> project (M &data, const slice &s1, const slice &s2);
template<class M>
const matrix_slice<const M> project (const M &data, const slice &s1, const slice &s2);
template<class M>
matrix_slice<M> project (matrix_slice<M> &data, const range &r1, const range &r2);
template<class M>
const matrix_slice<M> project (const matrix_slice<M> &data, const range &r1, const range &r2);
template<class M>
matrix_slice<M> project (matrix_slice<M> &data, const slice &s1, const slice &s2);
template<class M>
const matrix_slice<M> project (const matrix_slice<M> &data, const slice &s1, const slice &s2);
Определяется в заголовке matrix_proxy.hpp.
M
является модельюМатричного выражения.Квадратный в зависимости от размера срезов.
#include <boost/numeric/ublas/matrix.hpp> #include <boost/numeric/ublas/matrix_proxy.hpp> #include <boost/numeric/ublas/io.hpp> int main () { using namespace boost::numeric::ublas; matrix<double> m (3, 3); for (unsigned i = 0; i < m.size1 (); ++ i) for (unsigned j = 0; j < m.size2 (); ++ j) project (m, slice (0, 1, 3), slice (0, 1, 3)) (i, j) = 3 * i + j; std::cout << project (m, slice (0, 1, 3), slice (0, 1, 3)) << std::endl; }
Авторское право (©) 2000-2002 Йорг Уолтер, Матиас Кох
На использование, модификацию и распространение распространяется лицензия Boost Software License, Version 1.0. (См. сопроводительный файл LICENSE_1_0.txt или копию по адресу) http://www.boost.org/LICENSE_1_0.txt.
Статья Matrix Proxies раздела может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: ::
реклама |