![]() |
![]() ![]() ![]() ![]() |
![]() |
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.
:: Главная :: ::
реклама |