SLIP  1.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Static Public Attributes | Friends | List of all members
slip::GenericMultiComponent4d< Block > Class Template Reference

This is a GenericMultiComponent4d class. This container statisfies the BidirectionnalContainer concepts of the STL. It is also an 4d extension of the RandomAccessContainer concept. That is to say the bracket element access is replaced by the triple bracket element access. Data are stored using a Matrix4d of Block. This class can be used to define 4d Multicomponent structures. More...

#include <GenericMultiComponent4d.hpp>

Inheritance diagram for slip::GenericMultiComponent4d< Block >:
Inheritance graph

Public Types

typedef Block value_type
 
typedef
GenericMultiComponent4d< Block > 
self
 
typedef const
GenericMultiComponent4d< Block > 
const_self
 
typedef value_typepointer
 
typedef value_type const * const_pointer
 
typedef value_typereference
 
typedef value_type const & const_reference
 
typedef ptrdiff_t difference_type
 
typedef std::size_t size_type
 
typedef pointer iterator
 
typedef const_pointer const_iterator
 
typedef std::reverse_iterator
< iterator
reverse_iterator
 
typedef std::reverse_iterator
< const_iterator
const_reverse_iterator
 
typedef slip::stride_iterator
< pointer
slab_iterator
 
typedef slip::stride_iterator
< const_pointer
const_slab_iterator
 
typedef slip::stride_iterator
< pointer
slice_iterator
 
typedef slip::stride_iterator
< const_pointer
const_slice_iterator
 
typedef pointer row_iterator
 
typedef const_pointer const_row_iterator
 
typedef slip::stride_iterator
< pointer
col_iterator
 
typedef slip::stride_iterator
< const_pointer
const_col_iterator
 
typedef slip::stride_iterator
< slab_iterator
slab_range_iterator
 
typedef slip::stride_iterator
< const_slab_iterator
const_slab_range_iterator
 
typedef slip::stride_iterator
< slice_iterator
slice_range_iterator
 
typedef slip::stride_iterator
< const_slice_iterator
const_slice_range_iterator
 
typedef slip::stride_iterator
< pointer
row_range_iterator
 
typedef slip::stride_iterator
< const_pointer
const_row_range_iterator
 
typedef slip::stride_iterator
< col_iterator
col_range_iterator
 
typedef slip::stride_iterator
< const_col_iterator
const_col_range_iterator
 
typedef std::reverse_iterator
< slab_iterator
reverse_slab_iterator
 
typedef std::reverse_iterator
< const_slab_iterator
const_reverse_slab_iterator
 
typedef std::reverse_iterator
< slice_iterator
reverse_slice_iterator
 
typedef std::reverse_iterator
< const_slice_iterator
const_reverse_slice_iterator
 
typedef std::reverse_iterator
< iterator
reverse_row_iterator
 
typedef std::reverse_iterator
< const_iterator
const_reverse_row_iterator
 
typedef std::reverse_iterator
< col_iterator
reverse_col_iterator
 
typedef std::reverse_iterator
< const_col_iterator
const_reverse_col_iterator
 
typedef std::reverse_iterator
< slab_range_iterator
reverse_slab_range_iterator
 
typedef std::reverse_iterator
< const_slab_range_iterator
const_reverse_slab_range_iterator
 
typedef std::reverse_iterator
< slice_range_iterator
reverse_slice_range_iterator
 
typedef std::reverse_iterator
< const_slice_range_iterator
const_reverse_slice_range_iterator
 
typedef std::reverse_iterator
< row_range_iterator
reverse_row_range_iterator
 
typedef std::reverse_iterator
< const_row_range_iterator
const_reverse_row_range_iterator
 
typedef std::reverse_iterator
< col_range_iterator
reverse_col_range_iterator
 
typedef std::reverse_iterator
< const_col_range_iterator
const_reverse_col_range_iterator
 
typedef Block::value_type block_value_type
 
typedef block_value_typeblock_pointer
 
typedef const block_value_typeconst_block_pointer
 
typedef block_value_typeblock_reference
 
typedef const block_value_type const_block_reference
 
typedef slip::kstride_iterator
< typename Block::pointer,
Block::SIZE > 
component_iterator
 
typedef slip::kstride_iterator
< typename
Block::const_pointer,
Block::SIZE > 
const_component_iterator
 
typedef std::reverse_iterator
< component_iterator
reverse_component_iterator
 
typedef std::reverse_iterator
< const_component_iterator
const_reverse_component_iterator
 
typedef slip::stride_iterator
< block_pointer
component_slab_iterator
 
typedef slip::stride_iterator
< const_block_pointer
const_component_slab_iterator
 
typedef slip::stride_iterator
< block_pointer
component_slice_iterator
 
typedef slip::stride_iterator
< const_block_pointer
const_component_slice_iterator
 
typedef component_iterator component_row_iterator
 
typedef const_component_iterator const_component_row_iterator
 
typedef slip::stride_iterator
< block_pointer
component_col_iterator
 
typedef slip::stride_iterator
< const_block_pointer
const_component_col_iterator
 
typedef slip::stride_iterator
< block_pointer
component_slab_range_iterator
 
typedef slip::stride_iterator
< const_block_pointer
const_component_slab_range_iterator
 
typedef slip::stride_iterator
< block_pointer
component_slice_range_iterator
 
typedef slip::stride_iterator
< const_block_pointer
const_component_slice_range_iterator
 
typedef slip::stride_iterator
< block_pointer
component_row_range_iterator
 
typedef slip::stride_iterator
< const_block_pointer
const_component_row_range_iterator
 
typedef slip::stride_iterator
< block_pointer
component_col_range_iterator
 
typedef slip::stride_iterator
< const_block_pointer
const_component_col_range_iterator
 
typedef std::reverse_iterator
< component_slab_iterator
reverse_component_slab_iterator
 
typedef std::reverse_iterator
< const_component_slab_iterator
const_reverse_component_slab_iterator
 
typedef std::reverse_iterator
< component_slice_iterator
reverse_component_slice_iterator
 
typedef std::reverse_iterator
< const_component_slice_iterator
const_reverse_component_slice_iterator
 
typedef std::reverse_iterator
< component_row_iterator
reverse_component_row_iterator
 
typedef std::reverse_iterator
< const_component_row_iterator
const_reverse_component_row_iterator
 
typedef std::reverse_iterator
< component_col_iterator
reverse_component_col_iterator
 
typedef std::reverse_iterator
< const_component_col_iterator
const_reverse_component_col_iterator
 
typedef std::reverse_iterator
< component_slab_range_iterator
reverse_component_slab_range_iterator
 
typedef std::reverse_iterator
< const_component_slab_range_iterator
const_reverse_component_slab_range_iterator
 
typedef std::reverse_iterator
< component_slice_range_iterator
reverse_component_slice_range_iterator
 
typedef std::reverse_iterator
< const_component_slice_range_iterator
const_reverse_component_slice_range_iterator
 
typedef std::reverse_iterator
< component_row_range_iterator
reverse_component_row_range_iterator
 
typedef std::reverse_iterator
< const_component_row_range_iterator
const_reverse_component_row_range_iterator
 
typedef std::reverse_iterator
< component_col_range_iterator
reverse_component_col_range_iterator
 
typedef std::reverse_iterator
< const_component_col_range_iterator
const_reverse_component_col_range_iterator
 
typedef Array4d< Block >
::iterator4d 
iterator4d
 
typedef Array4d< Block >
::const_iterator4d 
const_iterator4d
 
typedef Array4d< Block >
::iterator4d_range 
iterator4d_range
 
typedef Array4d< Block >
::const_iterator4d_range 
const_iterator4d_range
 
typedef std::reverse_iterator
< iterator4d
reverse_iterator4d
 
typedef std::reverse_iterator
< const_iterator4d
const_reverse_iterator4d
 
typedef std::reverse_iterator
< iterator4d_range
reverse_iterator4d_range
 
typedef std::reverse_iterator
< const_iterator4d_range
const_reverse_iterator4d_range
 
typedef
component_iterator4d_box< self,
Block::SIZE > 
component_iterator4d
 
typedef
const_component_iterator4d_box
< const_self, Block::SIZE > 
const_component_iterator4d
 
typedef
slip::component_iterator4d_range
< self, Block::SIZE > 
component_iterator4d_range
 
typedef
slip::const_component_iterator4d_range
< const_self, Block::SIZE > 
const_component_iterator4d_range
 
typedef std::reverse_iterator
< component_iterator4d
reverse_component_iterator4d
 
typedef std::reverse_iterator
< const_component_iterator4d
const_reverse_component_iterator4d
 
typedef std::reverse_iterator
< component_iterator4d_range
reverse_component_iterator4d_range
 
typedef std::reverse_iterator
< const_component_iterator4d_range
const_reverse_component_iterator4d_range
 
typedef iterator4d default_iterator
 
typedef const_iterator4d const_default_iterator
 

Public Member Functions

void resize (const size_type slabs, const size_type slices, const size_type rows, const size_type cols, const Block &val=Block())
 Resizes a GenericMultiComponent4d. More...
 
size_type dim1 () const
 Returns the number of slabs (first dimension size) in the GenericMultiComponent4d. More...
 
size_type slabs () const
 Returns the number of slabs (first dimension size) in the GenericMultiComponent4d. More...
 
size_type dim2 () const
 Returns the number of slices (second dimension size) in the GenericMultiComponent4d. More...
 
size_type slices () const
 Returns the number of slices (second dimension size) in the GenericMultiComponent4d. More...
 
size_type dim3 () const
 Returns the number of rows (third dimension size) in the GenericMultiComponent4d. More...
 
size_type rows () const
 Returns the number of rows (third dimension size) in the GenericMultiComponent4d. More...
 
size_type dim4 () const
 Returns the number of columns (fourth dimension size) in the GenericMultiComponent4d. More...
 
size_type columns () const
 Returns the number of columns (fourth dimension size) in the GenericMultiComponent4d. More...
 
size_type cols () const
 Returns the number of columns (fourth dimension size) in the GenericMultiComponent4d. More...
 
size_type size () const
 Returns the number of elements in the GenericMultiComponent4d. More...
 
size_type max_size () const
 Returns the maximal size (number of elements) in the GenericMultiComponent4d. More...
 
bool empty () const
 Returns true if the GenericMultiComponent4d is empty. (Thus size() == 0) More...
 
void swap (self &M)
 Swaps data with another GenericMultiComponent4d. More...
 
Block min () const
 Returns the min elements of the GenericMultiComponent4d according to the operator <. More...
 
Block max () const
 Returns the max elements of the GenericMultiComponent4d according to the operator <. More...
 
GenericMultiComponent4d< Block > & apply (Block(*fun)(Block))
 Returns the sums of the elements of the GenericMultiComponent4d. More...
 
GenericMultiComponent4d< Block > & apply (Block(*fun)(const Block &))
 Applys the one-parameter C-function fun to each element of the GenericMultiComponent4d. More...
 
template<typename Block>
 GenericMultiComponent4d (const GenericMultiComponent4d< Block >::size_type slabs, const GenericMultiComponent4d< Block >::size_type slices, const GenericMultiComponent4d< Block >::size_type rows, const GenericMultiComponent4d< Block >::size_type cols)
 
template<typename Block>
 GenericMultiComponent4d (const GenericMultiComponent4d< Block >::size_type slabs, const GenericMultiComponent4d< Block >::size_type slices, const GenericMultiComponent4d< Block >::size_type rows, const GenericMultiComponent4d< Block >::size_type cols, const Block &val)
 
template<typename Block>
 GenericMultiComponent4d (const GenericMultiComponent4d< Block >::size_type slabs, const GenericMultiComponent4d< Block >::size_type slices, const GenericMultiComponent4d< Block >::size_type rows, const GenericMultiComponent4d< Block >::size_type cols, typename Block::const_pointer val)
 
template<typename Block>
 GenericMultiComponent4d (const GenericMultiComponent4d< Block >::size_type slabs, const GenericMultiComponent4d< Block >::size_type slices, const GenericMultiComponent4d< Block >::size_type rows, const GenericMultiComponent4d< Block >::size_type cols, const Block *val)
 
Constructors & Destructors
 GenericMultiComponent4d ()
 Constructs a GenericMultiComponent4d. More...
 
 GenericMultiComponent4d (const size_type slabs, const size_type slices, const size_type rows, const size_type cols)
 Constructs a GenericMultiComponent4d. More...
 
 GenericMultiComponent4d (const size_type slabs, const size_type slices, const size_type rows, const size_type cols, const Block &val)
 Constructs a GenericMultiComponent4d initialized by the scalar value val. More...
 
 GenericMultiComponent4d (const size_type slabs, const size_type slices, const size_type rows, const size_type cols, typename Block::const_pointer val)
 Constructs a GenericMultiComponent4d initialized by an array val. More...
 
 GenericMultiComponent4d (const size_type slabs, const size_type slices, const size_type rows, const size_type cols, const Block *val)
 Constructs a GenericMultiComponent4d initialized by an array val. More...
 
template<typename InputIterator >
 GenericMultiComponent4d (const size_type slabs, const size_type slices, const size_type rows, const size_type cols, InputIterator first, InputIterator last)
 Contructs a GenericMultiComponent4d from a range. More...
 
template<typename InputIterator >
 GenericMultiComponent4d (const size_type slabs, const size_type slices, const size_type rows, const size_type cols, std::vector< InputIterator > first_iterators_list, InputIterator last)
 Contructs a GenericMultiComponent4d from a 3 ranges. More...
 
 GenericMultiComponent4d (const self &rhs)
 Constructs a copy of the GenericMultiComponent4d rhs. More...
 
virtual ~GenericMultiComponent4d ()
 Destructor of the GenericMultiComponent4d. More...
 
One dimensional global iterators
iterator begin ()
 Returns a read/write iterator that points to the first element in the GenericMultiComponent4d. Iteration is done in ordinary element order. More...
 
const_iterator begin () const
 Returns a read-only (constant) iterator that points to the first element in the GenericMultiComponent4d. Iteration is done in ordinary element order. More...
 
iterator end ()
 Returns a read/write iterator that points one past the last element in the GenericMultiComponent4d. Iteration is done in ordinary element order. More...
 
const_iterator end () const
 Returns a read-only (constant) iterator that points one past the last element in the GenericMultiComponent4d. Iteration is done in ordinary element order. More...
 
reverse_iterator rbegin ()
 Returns a read/write reverse iterator that points to the last element in the GenericMultiComponent4d. Iteration is done in reverse element order. More...
 
const_reverse_iterator rbegin () const
 Returns a read-only (constant) reverse iterator that points to the last element in the GenericMultiComponent4d. Iteration is done in reverse element order. More...
 
reverse_iterator rend ()
 Returns a read/write reverse iterator that points to one before the first element in the GenericMultiComponent4d. Iteration is done in reverse element order. More...
 
const_reverse_iterator rend () const
 Returns a read-only (constant) reverse iterator that points to one before the first element in the GenericMultiComponent4d. Iteration is done in reverse element order. More...
 
One dimensional slab iterators
slab_iterator slab_begin (const size_type slice, const size_type row, const size_type col)
 Returns a read/write iterator that points to the first element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slab number). More...
 
const_slab_iterator slab_begin (const size_type slice, const size_type row, const size_type col) const
 Returns a read-only (constant) iterator that points to the first element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slab number). More...
 
slab_iterator slab_end (const size_type slice, const size_type row, const size_type col)
 Returns a read/write iterator that points to the one past the end element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slab number). More...
 
const_slab_iterator slab_end (const size_type slice, const size_type row, const size_type col) const
 Returns a read-only (constant) iterator that points to the one past the end element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slab number). More...
 
reverse_slab_iterator slab_rbegin (const size_type slice, const size_type row, const size_type col)
 Returns a read/write iterator that points to the last element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slab number). More...
 
const_reverse_slab_iterator slab_rbegin (const size_type slice, const size_type row, const size_type col) const
 Returns a read-only (constant) iterator that points to the last element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slab number). More...
 
reverse_slab_iterator slab_rend (const size_type slice, const size_type row, const size_type col)
 Returns a read/write iterator that points to the one before the first element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slab number). More...
 
const_reverse_slab_iterator slab_rend (const size_type slice, const size_type row, const size_type col) const
 Returns a read (constant) iterator that points to the one before the first element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slab number). More...
 
One dimensional slice iterators
slice_iterator slice_begin (const size_type slab, const size_type row, const size_type col)
 Returns a read/write iterator that points to the first element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slice number). More...
 
const_slice_iterator slice_begin (const size_type slab, const size_type row, const size_type col) const
 Returns a read-only (constant) iterator that points to the first element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slice number). More...
 
slice_iterator slice_end (const size_type slab, const size_type row, const size_type col)
 Returns a read/write iterator that points to the one past the end element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slice number). More...
 
const_slice_iterator slice_end (const size_type slab, const size_type row, const size_type col) const
 Returns a read-only (constant) iterator that points to the one past the end element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slice number). More...
 
reverse_slice_iterator slice_rbegin (const size_type slab, const size_type row, const size_type col)
 Returns a read/write iterator that points to the last element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slice number). More...
 
const_reverse_slice_iterator slice_rbegin (const size_type slab, const size_type row, const size_type col) const
 Returns a read-only (constant) iterator that points to the last element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slice number). More...
 
reverse_slice_iterator slice_rend (const size_type slab, const size_type row, const size_type col)
 Returns a read/write iterator that points to the one before the first element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slice number). More...
 
const_reverse_slice_iterator slice_rend (const size_type slab, const size_type row, const size_type col) const
 Returns a read (constant) iterator that points to the one before the first element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slice number). More...
 
One dimensional row iterators
row_iterator row_begin (const size_type slab, const size_type slice, const size_type row)
 Returns a read/write iterator that points to the first element of the row row of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done in ordinary element order. More...
 
const_row_iterator row_begin (const size_type slab, const size_type slice, const size_type row) const
 Returns a read_only iterator that points to the first element of the row row of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done in ordinary element order. More...
 
row_iterator row_end (const size_type slab, const size_type slice, const size_type row)
 Returns a read/write iterator that points to the past-the-end element of the row row of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done in ordinary element order. More...
 
const_row_iterator row_end (const size_type slab, const size_type slice, const size_type row) const
 Returns a read_only iterator that points to the past-the-end element of the row row of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done in ordinary element order. More...
 
reverse_row_iterator row_rbegin (const size_type slab, const size_type slice, const size_type row)
 Returns a read/write reverse iterator that points to the last element of the row row of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done in reverse element order. More...
 
const_reverse_row_iterator row_rbegin (const size_type slab, const size_type slice, const size_type row) const
 Returns a read_only reverse iterator that points to the last element of the row row of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done in reverse element order. More...
 
reverse_row_iterator row_rend (const size_type slab, const size_type slice, const size_type row)
 Returns a read/write reverse iterator that points to the first element of the row row of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done in reverse element order. More...
 
const_reverse_row_iterator row_rend (const size_type slab, const size_type slice, const size_type row) const
 Returns a read_only reverse iterator that points to the first element of the row row of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done in reverse element order. More...
 
One dimensional col iterators
col_iterator col_begin (const size_type slab, const size_type slice, const size_type col)
 Returns a read/write iterator that points to the first element of the column column of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done modulo the number of columns. More...
 
const_col_iterator col_begin (const size_type slab, const size_type slice, const size_type col) const
 Returns a read_only iterator that points to the first element of the column column of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done modulo the number of columns. More...
 
col_iterator col_end (const size_type slab, const size_type slice, const size_type col)
 Returns a read/write iterator that points to the past-the-end element of the column column of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done modulo the number of columns. More...
 
const_col_iterator col_end (const size_type slab, const size_type slice, const size_type col) const
 Returns a read_only iterator that points to the past-the-end element of the column column of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done modulo the number of columns. More...
 
reverse_col_iterator col_rbegin (const size_type slab, const size_type slice, const size_type col)
 Returns a read/write reverse iterator that points to the last element of the column column of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done modulo the number of columns. More...
 
const_reverse_col_iterator col_rbegin (const size_type slab, const size_type slice, const size_type col) const
 Returns a read_only reverse iterator that points to the last element of the column column of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done modulo the number of columns. More...
 
reverse_col_iterator col_rend (const size_type slab, const size_type slice, const size_type col)
 Returns a read/write reverse iterator that points to the first element of the column column of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done modulo the number of columns. More...
 
const_reverse_col_iterator col_rend (const size_type slab, const size_type slice, const size_type col) const
 Returns a read_only reverse iterator that points to the first element of the column column of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done modulo the number of columns. More...
 
One dimensional slab range iterators
slab_range_iterator slab_begin (const size_type slice, const size_type row, const size_type col, const slip::Range< int > &range)
 Returns a read/write iterator that points to the first element of the Range range of the line defined by ( slice , row , col ) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
slab_range_iterator slab_end (const size_type slice, const size_type row, const size_type col, const slip::Range< int > &range)
 Returns a read/write iterator that points one past the end element of the Range range of the line defined by ( slice , row , col ) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
const_slab_range_iterator slab_begin (const size_type slice, const size_type row, const size_type col, const slip::Range< int > &range) const
 Returns a read only (constant) iterator that points to the first element of the Range range of the line defined by ( slice , row , col ) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
const_slab_range_iterator slab_end (const size_type slice, const size_type row, const size_type col, const slip::Range< int > &range) const
 Returns a read_only iterator that points one past the last element of the Range range of the line defined by ( slice , row , col ) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
reverse_slab_range_iterator slab_rbegin (const size_type slice, const size_type row, const size_type col, const slip::Range< int > &range)
 Returns a read/write iterator that points to the last element of the Range range of the line defined by ( slice , row , col ) through the slabs in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range. More...
 
reverse_slab_range_iterator slab_rend (const size_type slice, const size_type row, const size_type col, const slip::Range< int > &range)
 Returns a read/write iterator that points to the first element of the Range range of the line defined by ( slice , row , col ) through the slabs in the GenericMultiComponent4d. Iteration is done in reverse element order according to the Range. More...
 
const_reverse_slab_range_iterator slab_rbegin (const size_type slice, const size_type row, const size_type col, const slip::Range< int > &range) const
 Returns a read only (constant) iterator that points to the last element of the Range range of the line defined by ( slice , row , col ) through the slabs in the GenericMultiComponent4d. Iteration is done in reverse element order according to the Range. More...
 
const_reverse_slab_range_iterator slab_rend (const size_type slice, const size_type row, const size_type col, const slip::Range< int > &range) const
 Returns a read_only iterator that points one past the lastto the first element of the Range range of the line defined by ( slice , row , col ) through the slabs in the GenericMultiComponent4d. Iteration is done in reverse element order according to the Range. More...
 
One dimensional slice range iterators
slice_range_iterator slice_begin (const size_type slab, const size_type row, const size_type col, const slip::Range< int > &range)
 Returns a read/write iterator that points to the first element of the Range range of the line defined by ( slab , row , col ) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
slice_range_iterator slice_end (const size_type slab, const size_type row, const size_type col, const slip::Range< int > &range)
 Returns a read/write iterator that points one past the end element of the Range range of the line defined by ( slab , row , col ) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
const_slice_range_iterator slice_begin (const size_type slab, const size_type row, const size_type col, const slip::Range< int > &range) const
 Returns a read only (constant) iterator that points to the first element of the Range range of the line defined by ( slab , row , col ) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
const_slice_range_iterator slice_end (const size_type slab, const size_type row, const size_type col, const slip::Range< int > &range) const
 Returns a read_only iterator that points one past the last element of the Range range of the line defined by ( slab , row , col ) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
reverse_slice_range_iterator slice_rbegin (const size_type slab, const size_type row, const size_type col, const slip::Range< int > &range)
 Returns a read/write iterator that points to the last element of the Range range of the line defined by ( slab , row , col ) through the slices in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range. More...
 
reverse_slice_range_iterator slice_rend (const size_type slab, const size_type row, const size_type col, const slip::Range< int > &range)
 Returns a read/write iterator that points to the first element of the Range range of the line defined by ( slab , row , col ) through the slices in the GenericMultiComponent4d. Iteration is done in reverse element order according to the Range. More...
 
const_reverse_slice_range_iterator slice_rbegin (const size_type slab, const size_type row, const size_type col, const slip::Range< int > &range) const
 Returns a read only (constant) iterator that points to the last element of the Range range of the line defined by ( slab , row , col ) through the slices in the GenericMultiComponent4d. Iteration is done in reverse element order according to the Range. More...
 
const_reverse_slice_range_iterator slice_rend (const size_type slab, const size_type row, const size_type col, const slip::Range< int > &range) const
 Returns a read_only iterator that points one past the lastto the first element of the Range range of the line defined by ( slab , row , col ) through the slices in the GenericMultiComponent4d. Iteration is done in reverse element order according to the Range. More...
 
One dimensional row range iterators
row_range_iterator row_begin (const size_type slab, const size_type slice, const size_type row, const slip::Range< int > &range)
 Returns a read/write iterator that points to the first element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
row_range_iterator row_end (const size_type slab, const size_type slice, const size_type row, const slip::Range< int > &range)
 Returns a read/write iterator that points one past the end element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
const_row_range_iterator row_begin (const size_type slab, const size_type slice, const size_type row, const slip::Range< int > &range) const
 Returns a read-only iterator that points to the first element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
const_row_range_iterator row_end (const size_type slab, const size_type slice, const size_type row, const slip::Range< int > &range) const
 Returns a read_only iterator that points one past the last element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
reverse_row_range_iterator row_rbegin (const size_type slab, const size_type slice, const size_type row, const slip::Range< int > &range)
 Returns a read-write iterator that points to the last element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range. More...
 
reverse_row_range_iterator row_rend (const size_type slab, const size_type slice, const size_type row, const slip::Range< int > &range)
 Returns a read-write iterator that points one before the first element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range. More...
 
const_reverse_row_range_iterator row_rbegin (const size_type slab, const size_type slice, const size_type row, const slip::Range< int > &range) const
 Returns a read-only iterator that points to the last element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range. More...
 
const_reverse_row_range_iterator row_rend (const size_type slab, const size_type slice, const size_type row, const slip::Range< int > &range) const
 Returns a read-only iterator that points one before the first element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range. More...
 
One dimensional col range iterators
col_range_iterator col_begin (const size_type slab, const size_type slice, const size_type col, const slip::Range< int > &range)
 Returns a read-write iterator that points to the first element of the Range range of the col col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
col_range_iterator col_end (const size_type slab, const size_type slice, const size_type col, const slip::Range< int > &range)
 Returns a read-write iterator that points to the past the end element of the Range range of the col col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
const_col_range_iterator col_begin (const size_type slab, const size_type slice, const size_type col, const slip::Range< int > &range) const
 Returns a read-only iterator that points to the first element of the Range range of the col col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
const_col_range_iterator col_end (const size_type slab, const size_type slice, const size_type col, const slip::Range< int > &range) const
 Returns a read-only iterator that points to the past the end element of the Range range of the col col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
reverse_col_range_iterator col_rbegin (const size_type slab, const size_type slice, const size_type col, const slip::Range< int > &range)
 Returns a read-write iterator that points to the last element of the Range range of the col col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range. More...
 
reverse_col_range_iterator col_rend (const size_type slab, const size_type slice, const size_type col, const slip::Range< int > &range)
 Returns a read-write iterator that points to one before the first element of the Range range of the col col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range. More...
 
const_reverse_col_range_iterator col_rbegin (const size_type slab, const size_type slice, const size_type col, const slip::Range< int > &range) const
 Returns a read_only iterator that points to the last element of the Range & range of the col col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range. More...
 
const_reverse_col_range_iterator col_rend (const size_type slab, const size_type slice, const size_type col, const slip::Range< int > &range) const
 Returns a read-only iterator that points to the first element of the Range range of the col col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range. More...
 
Four dimensional iterators : Global iterators
iterator4d first_front_upper_left ()
 Returns a read/write iterator4d that points to the first element of the GenericMultiComponent4d. It points to the first front upper left element of the GenericMultiComponent4d. More...
 
iterator4d last_back_bottom_right ()
 Returns a read/write iterator4d that points to the past the end element of the GenericMultiComponent4d. It points to past the end element of the last back bottom right element of the GenericMultiComponent4d. More...
 
const_iterator4d first_front_upper_left () const
 Returns a read-only iterator4d that points to the first element of the GenericMultiComponent4d. It points to the first front upper left element of the GenericMultiComponent4d. More...
 
const_iterator4d last_back_bottom_right () const
 Returns a read-only iterator4d that points to the past the end element of the GenericMultiComponent4d. It points to past the end element of the last back bottom right element of the GenericMultiComponent4d. More...
 
reverse_iterator4d rfirst_front_upper_left ()
 Returns a read/write reverse iterator4d. It points to the last back bottom right element of the GenericMultiComponent4d. Iteration is done within the GenericMultiComponent4d in the reverse order. More...
 
reverse_iterator4d rlast_back_bottom_right ()
 Returns a read/write reverse iterator4d. It points to past the first front upper left element of the GenericMultiComponent4d. Iteration is done in the reverse order. More...
 
const_reverse_iterator4d rfirst_front_upper_left () const
 Returns a read only reverse iterator4d that points. It points to the last back bottom right element of the GenericMultiComponent4d. Iteration is done within the GenericMultiComponent4d in the reverse order. More...
 
const_reverse_iterator4d rlast_back_bottom_right () const
 Returns a read only reverse iterator4d. It points to past the first front upper left element of the GenericMultiComponent4d. Iteration is done in the reverse order. More...
 
four dimensional iterators : Box iterators
iterator4d first_front_upper_left (const Box4d< int > &box)
 Returns a read/write iterator4d that points to the first element of the GenericMultiComponent4d. It points to the first front upper left element of the Box4d associated to the GenericMultiComponent4d. More...
 
iterator4d last_back_bottom_right (const Box4d< int > &box)
 Returns a read/write iterator4d that points to the past the end element of the GenericMultiComponent4d. It points to past the end element of the last back bottom right element of the Box4d associated to the GenericMultiComponent4d. More...
 
const_iterator4d first_front_upper_left (const Box4d< int > &box) const
 Returns a read only iterator4d that points to the first element of the GenericMultiComponent4d. It points to the first front upper left element of the Box4d associated to the GenericMultiComponent4d. More...
 
const_iterator4d last_back_bottom_right (const Box4d< int > &box) const
 Returns a read only iterator4d that points to the past the end element of the GenericMultiComponent4d. It points to past the end element of the last back bottom right element of the Box4d associated to the GenericMultiComponent4d. More...
 
reverse_iterator4d rfirst_front_upper_left (const Box4d< int > &box)
 Returns a read/write reverse iterator4d. It points to the last back bottom right element of the Box4d associated to the GenericMultiComponent4d. Iteration is done in the reverse order. More...
 
reverse_iterator4d rlast_back_bottom_right (const Box4d< int > &box)
 Returns a read/write reverse iterator4d. It points to one before the first front upper left element of the Box4d box associated to the GenericMultiComponent4d. More...
 
const_reverse_iterator4d rfirst_front_upper_left (const Box4d< int > &box) const
 Returns a read only reverse iterator4d. It points to the last back bottom right element of the Box4d box associated to the GenericMultiComponent4d. Iteration is done in the reverse order. More...
 
const_reverse_iterator4d rlast_back_bottom_right (const Box4d< int > &box) const
 Returns a read-only reverse iterator4d. It points to one before the first front upper left element of the Box4d box associated to the GenericMultiComponent4d. More...
 
four dimensional iterators : Range iterators
iterator4d_range first_front_upper_left (const slip::Range< int > &slab_range, const slip::Range< int > &slice_range, const slip::Range< int > &row_range, const slip::Range< int > &col_range)
 Returns a read/write iterator4d_range that points to the first front upper left element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d. More...
 
iterator4d_range last_back_bottom_right (const slip::Range< int > &slab_range, const slip::Range< int > &slice_range, const slip::Range< int > &row_range, const slip::Range< int > &col_range)
 Returns a read/write iterator4d_range that points to the past the end last back bottom right element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d. More...
 
const_iterator4d_range first_front_upper_left (const slip::Range< int > &slab_range, const slip::Range< int > &slice_range, const slip::Range< int > &row_range, const slip::Range< int > &col_range) const
 Returns a read-only iterator4d_range that points to the to the first front upper left element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d. More...
 
const_iterator4d_range last_back_bottom_right (const slip::Range< int > &slab_range, const slip::Range< int > &slice_range, const slip::Range< int > &row_range, const slip::Range< int > &col_range) const
 Returns a read-only iterator4d_range that points to the past the end last back bottom right element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d. More...
 
reverse_iterator4d_range rfirst_front_upper_left (const slip::Range< int > &slab_range, const slip::Range< int > &slice_range, const slip::Range< int > &row_range, const slip::Range< int > &col_range)
 Returns a read/write reverse_iterator4d_range that points to the past the last back bottom right element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d. Iteration is done in the reverse order. More...
 
reverse_iterator4d_range rlast_back_bottom_right (const slip::Range< int > &slab_range, const slip::Range< int > &slice_range, const slip::Range< int > &row_range, const slip::Range< int > &col_range)
 Returns a read/write reverse_iterator4d_range that points to one before the first front upper left element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d. Iteration is done in the reverse order. More...
 
const_reverse_iterator4d_range rfirst_front_upper_left (const slip::Range< int > &slab_range, const slip::Range< int > &slice_range, const slip::Range< int > &row_range, const slip::Range< int > &col_range) const
 Returns a read-only reverse_iterator4d_range that points to the past the last back bottom right element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d. Iteration is done in the reverse order. More...
 
const_reverse_iterator4d_range rlast_back_bottom_right (const slip::Range< int > &slab_range, const slip::Range< int > &slice_range, const slip::Range< int > &row_range, const slip::Range< int > &col_range) const
 Returns a read-only reverse_iterator4d_range that points to one before the first front upper left element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d. Iteration is done in the reverse order. More...
 
One dimensional component global iterators
component_iterator begin (const std::size_t component)
 Returns a read/write iterator that points to the first element in the GenericMultiComponent4d. Iteration is done in ordinary element order. More...
 
const_component_iterator begin (const std::size_t component) const
 Returns a read-only (constant) iterator that points to the first element in the GenericMultiComponent4d. Iteration is done in ordinary element order. More...
 
component_iterator end (const std::size_t component)
 Returns a read/write iterator that points one past the last element in the GenericMultiComponent4d. Iteration is done in ordinary element order. More...
 
const_component_iterator end (const std::size_t component) const
 Returns a read-only (constant) iterator that points one past the last element in the GenericMultiComponent4d. Iteration is done in ordinary element order. More...
 
reverse_component_iterator rbegin (const std::size_t component)
 Returns a read/write iterator that points to the first element in the GenericMultiComponent4d. Iteration is done in ordinary element order. More...
 
const_reverse_component_iterator rbegin (const std::size_t component) const
 Returns a read-only (constant) iterator that points to the first element in the GenericMultiComponent4d. Iteration is done in ordinary element order. More...
 
reverse_component_iterator rend (const std::size_t component)
 Returns a read/write iterator that points one past the last element in the GenericMultiComponent4d. Iteration is done in ordinary element order. More...
 
const_reverse_component_iterator rend (const std::size_t component) const
 Returns a read-only (constant) iterator that points one past the last element in the GenericMultiComponent4d. Iteration is done in ordinary element order. More...
 
One dimensional component slab iterators
component_slab_iterator slab_begin (const std::size_t component, const size_type slice, const size_type row, const size_type col)
 Returns a read/write iterator that points to the component component of the first element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slab number). More...
 
const_component_slab_iterator slab_begin (const std::size_t component, const size_type slice, const size_type row, const size_type col) const
 Returns a read-only (constant) iterator that points to the component component of the first element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slab number). More...
 
component_slab_iterator slab_end (const std::size_t component, const size_type slice, const size_type row, const size_type col)
 Returns a read/write iterator that points to the component component of the past the end element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slab number). More...
 
const_component_slab_iterator slab_end (const std::size_t component, const size_type slice, const size_type row, const size_type col) const
 Returns a read-only (constant) iterator that points to the component component of the past the end element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slab number). More...
 
reverse_component_slab_iterator slab_rbegin (const std::size_t component, const size_type slice, const size_type row, const size_type col)
 Returns a read/write iterator that points to the component component of the last element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slab number). More...
 
const_reverse_component_slab_iterator slab_rbegin (const std::size_t component, const size_type slice, const size_type row, const size_type col) const
 Returns a read-only (constant) iterator that points to the component component of the last element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slab number). More...
 
reverse_component_slab_iterator slab_rend (const std::size_t component, const size_type slice, const size_type row, const size_type col)
 Returns a read/write iterator that points to the component component of the before the first element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slab number). More...
 
const_reverse_component_slab_iterator slab_rend (const std::size_t component, const size_type slice, const size_type row, const size_type col) const
 Returns a read (constant) iterator that points to the component component of the before the first element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slab number). More...
 
One dimensional component slice iterators
component_slice_iterator slice_begin (const std::size_t component, const size_type slab, const size_type row, const size_type col)
 Returns a read/write iterator that points to the component component of the first element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slice number). More...
 
const_component_slice_iterator slice_begin (const std::size_t component, const size_type slab, const size_type row, const size_type col) const
 Returns a read-only (constant) iterator that points to the component component of the first element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slice number). More...
 
component_slice_iterator slice_end (const std::size_t component, const size_type slab, const size_type row, const size_type col)
 Returns a read/write iterator that points to the component component of the one past the end element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slice number). More...
 
const_component_slice_iterator slice_end (const std::size_t component, const size_type slab, const size_type row, const size_type col) const
 Returns a read-only (constant) iterator that points to the component component of the one past the end element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slice number). More...
 
reverse_component_slice_iterator slice_rbegin (const std::size_t component, const size_type slab, const size_type row, const size_type col)
 Returns a read/write iterator that points to the component component of the last element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slice number). More...
 
const_reverse_component_slice_iterator slice_rbegin (const std::size_t component, const size_type slab, const size_type row, const size_type col) const
 Returns a read-only (constant) iterator that points to the component component of the last element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slice number). More...
 
reverse_component_slice_iterator slice_rend (const std::size_t component, const size_type slab, const size_type row, const size_type col)
 Returns a read/write iterator that points to the component component of the before the first element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slice number). More...
 
const_reverse_component_slice_iterator slice_rend (const std::size_t component, const size_type slab, const size_type row, const size_type col) const
 Returns a read (constant) iterator that points to the component component of the before the first element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slice number). More...
 
One dimensional component row iterators
component_row_iterator row_begin (const std::size_t component, const size_type slab, const size_type slice, const size_type row)
 Returns a read/write iterator that points to the component component of the first element of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order. More...
 
const_component_row_iterator row_begin (const std::size_t component, const size_type slab, const size_type slice, const size_type row) const
 Returns a read_only iterator that points to the component component of the first element of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order. More...
 
component_row_iterator row_end (const std::size_t component, const size_type slab, const size_type slice, const size_type row)
 Returns a read/write iterator that points to the component component of the past-the-end element of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order. More...
 
const_component_row_iterator row_end (const std::size_t component, const size_type slab, const size_type slice, const size_type row) const
 Returns a read_only iterator that points to the component component of the past-the-end element of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order. More...
 
reverse_component_row_iterator row_rbegin (const std::size_t component, const size_type slab, const size_type slice, const size_type row)
 Returns a read/write reverse iterator that points to the component component of the last element of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in reverse element order. More...
 
const_reverse_component_row_iterator row_rbegin (const std::size_t component, const size_type slab, const size_type slice, const size_type row) const
 Returns a read_only reverse iterator that points to the component component of the last element of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in reverse element order. More...
 
reverse_component_row_iterator row_rend (const std::size_t component, const size_type slab, const size_type slice, const size_type row)
 Returns a read/write reverse iterator that points to the component component of the before the first element of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in reverse element order. More...
 
const_reverse_component_row_iterator row_rend (const std::size_t component, const size_type slab, const size_type slice, const size_type row) const
 Returns a read_only reverse iterator that points to the component component of the before the first element of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in reverse element order. More...
 
One dimensional component col iterators
component_col_iterator col_begin (const std::size_t component, const size_type slab, const size_type slice, const size_type col)
 Returns a read/write iterator that points to the component component of the first element of the column column of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done modulo the number of columns. More...
 
const_component_col_iterator col_begin (const std::size_t component, const size_type slab, const size_type slice, const size_type col) const
 Returns a read_only iterator that points to the component component of the first element of the column column of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done modulo the number of columns. More...
 
component_col_iterator col_end (const std::size_t component, const size_type slab, const size_type slice, const size_type col)
 Returns a read/write iterator that points to the component component of the past-the-end element of the column column of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done modulo the number of columns. More...
 
const_component_col_iterator col_end (const std::size_t component, const size_type slab, const size_type slice, const size_type col) const
 Returns a read_only iterator that points to the component component of the past-the-end element of the column column of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done modulo the number of columns. More...
 
reverse_component_col_iterator col_rbegin (const std::size_t component, const size_type slab, const size_type slice, const size_type col)
 Returns a read/write reverse iterator that points to the component component of the last element of the column column of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done modulo the number of columns. More...
 
const_reverse_component_col_iterator col_rbegin (const std::size_t component, const size_type slab, const size_type slice, const size_type col) const
 Returns a read_only reverse iterator that points to the component component of the last element of the column column of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done modulo the number of columns. More...
 
reverse_component_col_iterator col_rend (const std::size_t component, const size_type slab, const size_type slice, const size_type col)
 Returns a read/write reverse iterator that points to the component component of the before the first element of the column column of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done modulo the number of columns. More...
 
const_reverse_component_col_iterator col_rend (const std::size_t component, const size_type slab, const size_type slice, const size_type col) const
 Returns a read_only reverse iterator that points to the component component of the before the first element of the column column of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done modulo the number of columns. More...
 
One dimensional component slab range iterators
component_slab_range_iterator slab_begin (const std::size_t component, const size_type slice, const size_type row, const size_type col, const slip::Range< int > &range)
 Returns a read/write iterator that points to the component component of the first element of the Range range of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
component_slab_range_iterator slab_end (const std::size_t component, const size_type slice, const size_type row, const size_type col, const slip::Range< int > &range)
 Returns a read/write iterator that points to the component component of the past the end element of the Range range of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
const_component_slab_range_iterator slab_begin (const std::size_t component, const size_type slice, const size_type row, const size_type col, const slip::Range< int > &range) const
 Returns a read only (constant) iterator that points to the component component of the first element of the Range range of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
const_component_slab_range_iterator slab_end (const std::size_t component, const size_type slice, const size_type row, const size_type col, const slip::Range< int > &range) const
 Returns a read_only iterator that points to the component component of the past the end element of the Range range of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
reverse_component_slab_range_iterator slab_rbegin (const std::size_t component, const size_type slice, const size_type row, const size_type col, const slip::Range< int > &range)
 Returns a read/write iterator that points to the component component of the last element of the Range range of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range. More...
 
reverse_component_slab_range_iterator slab_rend (const std::size_t component, const size_type slice, const size_type row, const size_type col, const slip::Range< int > &range)
 Returns a read/write iterator that points to the component component of the before the first element of the Range range of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in reverse element order according to the Range. More...
 
const_reverse_component_slab_range_iterator slab_rbegin (const std::size_t component, const size_type slice, const size_type row, const size_type col, const slip::Range< int > &range) const
 Returns a read only (constant) iterator that points to the component component of the last element of the Range range of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in reverse element order according to the Range. More...
 
const_reverse_component_slab_range_iterator slab_rend (const std::size_t component, const size_type slice, const size_type row, const size_type col, const slip::Range< int > &range) const
 Returns a read_only iterator that points to the component component of the before the first element of the Range range of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in reverse element order according to the Range. More...
 
One dimensional component slice range iterators
component_slice_range_iterator slice_begin (const std::size_t component, const size_type slab, const size_type row, const size_type col, const slip::Range< int > &range)
 Returns a read/write iterator that points to the component component of the first element of the Range range of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
component_slice_range_iterator slice_end (const std::size_t component, const size_type slab, const size_type row, const size_type col, const slip::Range< int > &range)
 Returns a read/write iterator that points to the component component of the past the end element of the Range range of the of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
const_component_slice_range_iterator slice_begin (const std::size_t component, const size_type slab, const size_type row, const size_type col, const slip::Range< int > &range) const
 Returns a read only (constant) iterator that points to the component component of the first element of the Range range of the of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
const_component_slice_range_iterator slice_end (const std::size_t component, const size_type slab, const size_type row, const size_type col, const slip::Range< int > &range) const
 Returns a read_only iterator that points to the component component of the past the last element of the Range range of the of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
reverse_component_slice_range_iterator slice_rbegin (const std::size_t component, const size_type slab, const size_type row, const size_type col, const slip::Range< int > &range)
 Returns a read/write iterator that points to the component component of the last element of the Range range of the of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range. More...
 
reverse_component_slice_range_iterator slice_rend (const std::size_t component, const size_type slab, const size_type row, const size_type col, const slip::Range< int > &range)
 Returns a read/write iterator that points to the component component of the before the first element of the Range range of the of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in reverse element order according to the Range. More...
 
const_reverse_component_slice_range_iterator slice_rbegin (const std::size_t component, const size_type slab, const size_type row, const size_type col, const slip::Range< int > &range) const
 Returns a read only (constant) iterator that points to the component component of the last element of the Range range of the of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in reverse element order according to the Range. More...
 
const_reverse_component_slice_range_iterator slice_rend (const std::size_t component, const size_type slab, const size_type row, const size_type col, const slip::Range< int > &range) const
 Returns a read_only iterator that points to the component component of the before the first element of the Range range of the of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in reverse element order according to the Range. More...
 
One dimensional component row range iterators
component_row_range_iterator row_begin (const std::size_t component, const size_type slab, const size_type slice, const size_type row, const slip::Range< int > &range)
 Returns a read/write iterator that points to the component component of the first element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
component_row_range_iterator row_end (const std::size_t component, const size_type slab, const size_type slice, const size_type row, const slip::Range< int > &range)
 Returns a read/write iterator that points to the component component of the past the end element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
const_component_row_range_iterator row_begin (const std::size_t component, const size_type slab, const size_type slice, const size_type row, const slip::Range< int > &range) const
 Returns a read-only iterator that points to the component component of the first element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
const_component_row_range_iterator row_end (const std::size_t component, const size_type slab, const size_type slice, const size_type row, const slip::Range< int > &range) const
 Returns a read_only iterator that points to the component component of the past the last element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
reverse_component_row_range_iterator row_rbegin (const std::size_t component, const size_type slab, const size_type slice, const size_type row, const slip::Range< int > &range)
 Returns a read-write iterator that points to the component component of the last element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range. More...
 
reverse_component_row_range_iterator row_rend (const std::size_t component, const size_type slab, const size_type slice, const size_type row, const slip::Range< int > &range)
 Returns a read-write iterator that points to the component component of the before the first element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range. More...
 
const_reverse_component_row_range_iterator row_rbegin (const std::size_t component, const size_type slab, const size_type slice, const size_type row, const slip::Range< int > &range) const
 Returns a read-only iterator that points to the component component of the last element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range. More...
 
const_reverse_component_row_range_iterator row_rend (const std::size_t component, const size_type slab, const size_type slice, const size_type row, const slip::Range< int > &range) const
 Returns a read-only iterator that points to the component component of the before the first element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range. More...
 
One dimensional component col range iterators
component_col_range_iterator col_begin (const std::size_t component, const size_type slab, const size_type slice, const size_type col, const slip::Range< int > &range)
 Returns a read-write iterator that points to the component component of the first element of the Range range of the col col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
component_col_range_iterator col_end (const std::size_t component, const size_type slab, const size_type slice, const size_type col, const slip::Range< int > &range)
 Returns a read-write iterator that points to the component component of the past the end element of the Range range of the col col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
const_component_col_range_iterator col_begin (const std::size_t component, const size_type slab, const size_type slice, const size_type col, const slip::Range< int > &range) const
 Returns a read-only iterator that points to the component component of the first element of the Range range of the col col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
const_component_col_range_iterator col_end (const std::size_t component, const size_type slab, const size_type slice, const size_type col, const slip::Range< int > &range) const
 Returns a read-only iterator that points to the component component of the past the end element of the Range range of the col col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range. More...
 
reverse_component_col_range_iterator col_rbegin (const std::size_t component, const size_type slab, const size_type slice, const size_type col, const slip::Range< int > &range)
 Returns a read-write iterator that points to the component component of the last element of the Range range of the col of a slice col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range. More...
 
reverse_component_col_range_iterator col_rend (const std::size_t component, const size_type slab, const size_type slice, const size_type col, const slip::Range< int > &range)
 Returns a read-write iterator that points to the component component of the before the first element of the Range range of the col of a slice col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range. More...
 
const_reverse_component_col_range_iterator col_rbegin (const std::size_t component, const size_type slab, const size_type slice, const size_type col, const slip::Range< int > &range) const
 Returns a read_only iterator that points to the component component of the last element of the Range & range of the col of a slice col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range. More...
 
const_reverse_component_col_range_iterator col_rend (const std::size_t component, const size_type slab, const size_type slice, const size_type col, const slip::Range< int > &range) const
 Returns a read-only iterator that points to the component component of the first element of the Range range of the col of a slice col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range. More...
 
Four dimensional component iterators : Global component iterators
component_iterator4d first_front_upper_left (const std::size_t component)
 Returns a read/write component_iterator4d that points to the first element of the GenericMultiComponent4d. It points to the first front upper left element of the GenericMultiComponent4d. More...
 
component_iterator4d last_back_bottom_right (const std::size_t component)
 Returns a read/write component_iterator4d that points to the past the end element of the GenericMultiComponent4d. It points to past the end element of the last back bottom right element of the GenericMultiComponent4d. More...
 
const_component_iterator4d first_front_upper_left (const std::size_t component) const
 Returns a read only const_component_iterator4d that points to the first element of the GenericMultiComponent4d. It points to the first front upper left element of the GenericMultiComponent4d. More...
 
const_component_iterator4d last_back_bottom_right (const std::size_t component) const
 Returns a read only const_component_iterator4d that points to the past the end element of the GenericMultiComponent4d. It points to past the end element of the last back bottom right element of the GenericMultiComponent4d. More...
 
reverse_component_iterator4d rfirst_front_upper_left (const std::size_t component)
 Returns a read/write reverse component iterator4d. It points to the last back bottom right element of the GenericMultiComponent4d. Iteration is done within the GenericMultiComponent4d in the reverse order. More...
 
reverse_component_iterator4d rlast_back_bottom_right (const std::size_t component)
 Returns a read/write reverse component iterator4d. It points to past the first front upper left element of the GenericMultiComponent4d. Iteration is done in the reverse order. More...
 
const_reverse_component_iterator4d rfirst_front_upper_left (const std::size_t component) const
 Returns a read only reverse component iterator4d that points. It points to the last back bottom right element of the GenericMultiComponent4d. Iteration is done within the GenericMultiComponent4d in the reverse order. More...
 
const_reverse_component_iterator4d rlast_back_bottom_right (const std::size_t component) const
 Returns a read only reverse component iterator4d. It points to past the first front upper left element of the GenericMultiComponent4d. Iteration is done in the reverse order. More...
 
component_iterator4d first_front_upper_left (const std::size_t component, const Box4d< int > &box)
 Returns a read/write component iterator4d that points to the first element of the GenericMultiComponent4d. It points to the first front upper left element of the Box4d associated to the GenericMultiComponent4d. More...
 
component_iterator4d last_back_bottom_right (const std::size_t component, const Box4d< int > &box)
 Returns a read/write component iterator4d that points to the past the end element of the GenericMultiComponent4d. It points to past the end element of the last back bottom right element of the Box4d associated to the GenericMultiComponent4d. More...
 
const_component_iterator4d first_front_upper_left (const std::size_t component, const Box4d< int > &box) const
 Returns a read only component iterator4d that points to the first element of the GenericMultiComponent4d. It points to the first front upper left element of the Box4d associated to the GenericMultiComponent4d. More...
 
const_component_iterator4d last_back_bottom_right (const std::size_t component, const Box4d< int > &box) const
 Returns a read only component iterator4d that points to the past the end element of the GenericMultiComponent4d. It points to past the end element of the last back bottom right element of the Box4d associated to the GenericMultiComponent4d. More...
 
reverse_component_iterator4d rfirst_front_upper_left (const std::size_t component, const Box4d< int > &box)
 Returns a read/write reverse component iterator4d. It points to the last back bottom right element of the Box4d associated to the GenericMultiComponent4d. Iteration is done in the reverse order. More...
 
reverse_component_iterator4d rlast_back_bottom_right (const std::size_t component, const Box4d< int > &box)
 Returns a read/write reverse component iterator4d. It points to one before the first front upper left element of the Box4d box associated to the GenericMultiComponent4d. More...
 
const_reverse_component_iterator4d rfirst_front_upper_left (const std::size_t component, const Box4d< int > &box) const
 Returns a read only reverse component iterator4d. It points to the last back bottom right element of the Box4d box associated to the GenericMultiComponent4d. Iteration is done in the reverse order. More...
 
const_reverse_component_iterator4d rlast_back_bottom_right (const std::size_t component, const Box4d< int > &box) const
 Returns a read-only reverse component iterator4d. It points to one before the first front upper left element of the Box4d box associated to the GenericMultiComponent4d. More...
 
component_iterator4d_range first_front_upper_left (const std::size_t component, const slip::Range< int > &slab_range, const slip::Range< int > &slice_range, const slip::Range< int > &row_range, const slip::Range< int > &col_range)
 Returns a read/write component_iterator4d_range that points to the first front upper left element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d. More...
 
component_iterator4d_range last_back_bottom_right (const std::size_t component, const slip::Range< int > &slab_range, const slip::Range< int > &slice_range, const slip::Range< int > &row_range, const slip::Range< int > &col_range)
 Returns a read/write component_iterator4d_range that points to the past the end last back bottom right element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d. More...
 
const_component_iterator4d_range first_front_upper_left (const std::size_t component, const slip::Range< int > &slab_range, const slip::Range< int > &slice_range, const slip::Range< int > &row_range, const slip::Range< int > &col_range) const
 Returns a read/write component_const_iterator4d_range that points to the first front upper left element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d. More...
 
const_component_iterator4d_range last_back_bottom_right (const std::size_t component, const slip::Range< int > &slab_range, const slip::Range< int > &slice_range, const slip::Range< int > &row_range, const slip::Range< int > &col_range) const
 Returns a read/write const_component iterator4d_range that points to the past the end last back bottom right element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d. More...
 
reverse_component_iterator4d_range rfirst_front_upper_left (const std::size_t component, const slip::Range< int > &slab_range, const slip::Range< int > &slice_range, const slip::Range< int > &row_range, const slip::Range< int > &col_range)
 Returns a read/write reverse_component_iterator4d_range. It points to the last back bottom right element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d. More...
 
reverse_component_iterator4d_range rlast_back_bottom_right (const std::size_t component, const slip::Range< int > &slab_range, const slip::Range< int > &slice_range, const slip::Range< int > &row_range, const slip::Range< int > &col_range)
 Returns a read/write reverse_component_iterator4d_range. It points to one before the first front upper left element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d. More...
 
const_reverse_component_iterator4d_range rfirst_front_upper_left (const std::size_t component, const slip::Range< int > &slab_range, const slip::Range< int > &slice_range, const slip::Range< int > &row_range, const slip::Range< int > &col_range) const
 Returns a read/write reverse_const_component_iterator4d_range. It points to the last back bottom right element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d. More...
 
const_reverse_component_iterator4d_range rlast_back_bottom_right (const std::size_t component, const slip::Range< int > &slab_range, const slip::Range< int > &slice_range, const slip::Range< int > &row_range, const slip::Range< int > &col_range) const
 Returns a read/write reverse_const_component_iterator4d_range. It points to one before the first front upper left element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d. More...
 
Assignment operators and methods
selfoperator= (const self &rhs)
 Assign a GenericMultiComponent4d. Assign elements from the GenericMultiComponent4d rhs. More...
 
selfoperator= (const Block &val)
 Affects all the element of the GenericMultiComponent4d by val. More...
 
selfoperator= (const typename Block::value_type &val)
 Affects all the element of the GenericMultiComponent4d by val. More...
 
void fill (const Block &value)
 Fills the container range [begin(),begin()+size()) with copies of value. More...
 
void fill (const typename Block::pointer value)
 Fills the container range [begin(),begin()+size()) with a copy of the value array. More...
 
void fill (const Block *value)
 Fills the container range [begin(),begin()+size()) with a copy of the value array. More...
 
template<typename InputIterator >
void fill (InputIterator first, InputIterator last)
 Fills the container range [begin(),begin()+size()) with a copy of the range [first,last) More...
 
template<typename InputIterator >
void fill (std::vector< InputIterator > first_iterators_list, InputIterator last)
 Fills the container range [begin(),begin()+size()) with a copy of the range [first,last) More...
 
template<typename InputIterator >
void fill (std::size_t component, InputIterator first, InputIterator last)
 Fills the container range [begin(),begin()+size()) with a copy of the range [first,last) More...
 
Element access operators

Less than comparison operator (GenericMultiComponent4d ordering relation)

Parameters
xA GenericMultiComponent4d
yA GenericMultiComponent4d of the same type of x
Returns
true iff x is lexicographically less than y
Precondition
x.size() == y.size()

More than comparison operator

Parameters
xA GenericMultiComponent4d
yA GenericMultiComponent4d of the same type of x
Returns
true iff y > x
Precondition
x.size() == y.size()

Less than equal comparison operator

Parameters
xA GenericMultiComponent4d
yA GenericMultiComponent4d of the same type of x
Returns
true iff !(y > x)
Precondition
x.size() == y.size()

More than equal comparison operator

Parameters
xA GenericMultiComponent4d
yA GenericMultiComponent4d of the same type of x
Returns
true iff !(x < y)
Precondition
x.size() == y.size()
pointer ** operator[] (const size_type t)
 Subscript access to the slice datas contained in the GenericMultiComponent4d. More...
 
const_pointer *const * operator[] (const size_type t) const
 Subscript access to the slice datas contained in the GenericMultiComponent4d. More...
 
reference operator() (const size_type t, const size_type k, const size_type i, const size_type j)
 Subscript access to the data contained in the GenericMultiComponent4d. More...
 
const_reference operator() (const size_type t, const size_type k, const size_type i, const size_type j) const
 Subscript access to the data contained in the GenericMultiComponent4d. More...
 

Static Public Attributes

static const std::size_t DIM = 4
 
static const std::size_t COMPONENTS = Block::SIZE
 

Friends

class boost::serialization::access
 
i/o operators
std::ostream & operator<< (std::ostream &out, const self &a)
 Write the GenericMultiComponent4d to the ouput stream. More...
 
Comparison operators
bool operator== (const GenericMultiComponent4d< Block > &x, const GenericMultiComponent4d< Block > &y)
 GenericMultiComponent4d equality comparison. More...
 
bool operator!= (const GenericMultiComponent4d< Block > &x, const GenericMultiComponent4d< Block > &y)
 GenericMultiComponent4d inequality comparison. More...
 

Detailed Description

template<typename Block>
class slip::GenericMultiComponent4d< Block >

This is a GenericMultiComponent4d class. This container statisfies the BidirectionnalContainer concepts of the STL. It is also an 4d extension of the RandomAccessContainer concept. That is to say the bracket element access is replaced by the triple bracket element access. Data are stored using a Matrix4d of Block. This class can be used to define 4d Multicomponent structures.

Version
Fluex 1.0
Date
2013/08/20
Version
0.0.2
Date
2014/04/05
Author
Denis Arrivault <denis.arrivault_AT_inria.fr>
Denis Arrivault <denis.arrivault_AT_inria.fr>
Version
Fluex 1.0
Date
2013/08/20
Parameters
BlockType of object in the GenericMultiComponent4d Must be a static block
Axis conventions:
iterator4d_conventions.jpg
axis and notation conventions

Definition at line 121 of file GenericMultiComponent4d.hpp.

Member Typedef Documentation

template<typename Block>
typedef block_value_type* slip::GenericMultiComponent4d< Block >::block_pointer

Definition at line 250 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef block_value_type& slip::GenericMultiComponent4d< Block >::block_reference

Definition at line 252 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef Block::value_type slip::GenericMultiComponent4d< Block >::block_value_type

Definition at line 249 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef slip::stride_iterator<pointer> slip::GenericMultiComponent4d< Block >::col_iterator

Definition at line 218 of file GenericMultiComponent4d.hpp.

Definition at line 227 of file GenericMultiComponent4d.hpp.

Definition at line 267 of file GenericMultiComponent4d.hpp.

Definition at line 276 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef slip::kstride_iterator<typename Block::pointer,Block::SIZE> slip::GenericMultiComponent4d< Block >::component_iterator

Definition at line 254 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef component_iterator4d_box<self,Block::SIZE> slip::GenericMultiComponent4d< Block >::component_iterator4d

Definition at line 310 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef slip::component_iterator4d_range<self,Block::SIZE> slip::GenericMultiComponent4d< Block >::component_iterator4d_range

Definition at line 312 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef component_iterator slip::GenericMultiComponent4d< Block >::component_row_iterator

Definition at line 265 of file GenericMultiComponent4d.hpp.

Definition at line 274 of file GenericMultiComponent4d.hpp.

Definition at line 261 of file GenericMultiComponent4d.hpp.

Definition at line 270 of file GenericMultiComponent4d.hpp.

Definition at line 263 of file GenericMultiComponent4d.hpp.

Definition at line 272 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef const block_value_type* slip::GenericMultiComponent4d< Block >::const_block_pointer

Definition at line 251 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef const block_value_type slip::GenericMultiComponent4d< Block >::const_block_reference

Definition at line 253 of file GenericMultiComponent4d.hpp.

Definition at line 219 of file GenericMultiComponent4d.hpp.

Definition at line 228 of file GenericMultiComponent4d.hpp.

Definition at line 268 of file GenericMultiComponent4d.hpp.

Definition at line 277 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef slip::kstride_iterator<typename Block::const_pointer,Block::SIZE> slip::GenericMultiComponent4d< Block >::const_component_iterator

Definition at line 255 of file GenericMultiComponent4d.hpp.

Definition at line 311 of file GenericMultiComponent4d.hpp.

Definition at line 313 of file GenericMultiComponent4d.hpp.

Definition at line 266 of file GenericMultiComponent4d.hpp.

Definition at line 275 of file GenericMultiComponent4d.hpp.

Definition at line 262 of file GenericMultiComponent4d.hpp.

Definition at line 271 of file GenericMultiComponent4d.hpp.

Definition at line 264 of file GenericMultiComponent4d.hpp.

Definition at line 273 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef const_iterator4d slip::GenericMultiComponent4d< Block >::const_default_iterator

Definition at line 323 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef const_pointer slip::GenericMultiComponent4d< Block >::const_iterator

Definition at line 206 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef Array4d<Block>::const_iterator4d slip::GenericMultiComponent4d< Block >::const_iterator4d

Definition at line 299 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef Array4d<Block>::const_iterator4d_range slip::GenericMultiComponent4d< Block >::const_iterator4d_range

Definition at line 301 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef value_type const* slip::GenericMultiComponent4d< Block >::const_pointer

Definition at line 198 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef value_type const& slip::GenericMultiComponent4d< Block >::const_reference

Definition at line 200 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<const_col_iterator> slip::GenericMultiComponent4d< Block >::const_reverse_col_iterator

Definition at line 237 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<const_col_range_iterator> slip::GenericMultiComponent4d< Block >::const_reverse_col_range_iterator

Definition at line 246 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<const_component_col_iterator> slip::GenericMultiComponent4d< Block >::const_reverse_component_col_iterator

Definition at line 286 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<const_component_col_range_iterator> slip::GenericMultiComponent4d< Block >::const_reverse_component_col_range_iterator

Definition at line 295 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<const_component_iterator> slip::GenericMultiComponent4d< Block >::const_reverse_component_iterator

Definition at line 258 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<const_component_iterator4d> slip::GenericMultiComponent4d< Block >::const_reverse_component_iterator4d

Definition at line 316 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<const_component_iterator4d_range> slip::GenericMultiComponent4d< Block >::const_reverse_component_iterator4d_range

Definition at line 318 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<const_component_row_iterator> slip::GenericMultiComponent4d< Block >::const_reverse_component_row_iterator

Definition at line 284 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<const_component_row_range_iterator> slip::GenericMultiComponent4d< Block >::const_reverse_component_row_range_iterator

Definition at line 293 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<const_component_slab_iterator> slip::GenericMultiComponent4d< Block >::const_reverse_component_slab_iterator

Definition at line 280 of file GenericMultiComponent4d.hpp.

Definition at line 289 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<const_component_slice_iterator> slip::GenericMultiComponent4d< Block >::const_reverse_component_slice_iterator

Definition at line 282 of file GenericMultiComponent4d.hpp.

Definition at line 291 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<const_iterator> slip::GenericMultiComponent4d< Block >::const_reverse_iterator

Definition at line 209 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<const_iterator4d> slip::GenericMultiComponent4d< Block >::const_reverse_iterator4d

Definition at line 304 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<const_iterator4d_range> slip::GenericMultiComponent4d< Block >::const_reverse_iterator4d_range

Definition at line 306 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<const_iterator> slip::GenericMultiComponent4d< Block >::const_reverse_row_iterator

Definition at line 235 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<const_row_range_iterator> slip::GenericMultiComponent4d< Block >::const_reverse_row_range_iterator

Definition at line 244 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<const_slab_iterator> slip::GenericMultiComponent4d< Block >::const_reverse_slab_iterator

Definition at line 231 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<const_slab_range_iterator> slip::GenericMultiComponent4d< Block >::const_reverse_slab_range_iterator

Definition at line 240 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<const_slice_iterator> slip::GenericMultiComponent4d< Block >::const_reverse_slice_iterator

Definition at line 233 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<const_slice_range_iterator> slip::GenericMultiComponent4d< Block >::const_reverse_slice_range_iterator

Definition at line 242 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef const_pointer slip::GenericMultiComponent4d< Block >::const_row_iterator

Definition at line 217 of file GenericMultiComponent4d.hpp.

Definition at line 226 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef const GenericMultiComponent4d<Block> slip::GenericMultiComponent4d< Block >::const_self

Definition at line 196 of file GenericMultiComponent4d.hpp.

Definition at line 213 of file GenericMultiComponent4d.hpp.

Definition at line 222 of file GenericMultiComponent4d.hpp.

Definition at line 215 of file GenericMultiComponent4d.hpp.

Definition at line 224 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef iterator4d slip::GenericMultiComponent4d< Block >::default_iterator

Definition at line 322 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef ptrdiff_t slip::GenericMultiComponent4d< Block >::difference_type

Definition at line 202 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef pointer slip::GenericMultiComponent4d< Block >::iterator

Definition at line 205 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef Array4d<Block>::iterator4d slip::GenericMultiComponent4d< Block >::iterator4d

Definition at line 298 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef Array4d<Block>::iterator4d_range slip::GenericMultiComponent4d< Block >::iterator4d_range

Definition at line 300 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef value_type* slip::GenericMultiComponent4d< Block >::pointer

Definition at line 197 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef value_type& slip::GenericMultiComponent4d< Block >::reference

Definition at line 199 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<col_iterator> slip::GenericMultiComponent4d< Block >::reverse_col_iterator

Definition at line 236 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<col_range_iterator> slip::GenericMultiComponent4d< Block >::reverse_col_range_iterator

Definition at line 245 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<component_col_iterator> slip::GenericMultiComponent4d< Block >::reverse_component_col_iterator

Definition at line 285 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<component_col_range_iterator> slip::GenericMultiComponent4d< Block >::reverse_component_col_range_iterator

Definition at line 294 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<component_iterator> slip::GenericMultiComponent4d< Block >::reverse_component_iterator

Definition at line 257 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<component_iterator4d> slip::GenericMultiComponent4d< Block >::reverse_component_iterator4d

Definition at line 315 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<component_iterator4d_range> slip::GenericMultiComponent4d< Block >::reverse_component_iterator4d_range

Definition at line 317 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<component_row_iterator> slip::GenericMultiComponent4d< Block >::reverse_component_row_iterator

Definition at line 283 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<component_row_range_iterator> slip::GenericMultiComponent4d< Block >::reverse_component_row_range_iterator

Definition at line 292 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<component_slab_iterator> slip::GenericMultiComponent4d< Block >::reverse_component_slab_iterator

Definition at line 279 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<component_slab_range_iterator> slip::GenericMultiComponent4d< Block >::reverse_component_slab_range_iterator

Definition at line 288 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<component_slice_iterator> slip::GenericMultiComponent4d< Block >::reverse_component_slice_iterator

Definition at line 281 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<component_slice_range_iterator> slip::GenericMultiComponent4d< Block >::reverse_component_slice_range_iterator

Definition at line 290 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<iterator> slip::GenericMultiComponent4d< Block >::reverse_iterator

Definition at line 208 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<iterator4d> slip::GenericMultiComponent4d< Block >::reverse_iterator4d

Definition at line 303 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<iterator4d_range> slip::GenericMultiComponent4d< Block >::reverse_iterator4d_range

Definition at line 305 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<iterator> slip::GenericMultiComponent4d< Block >::reverse_row_iterator

Definition at line 234 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<row_range_iterator> slip::GenericMultiComponent4d< Block >::reverse_row_range_iterator

Definition at line 243 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<slab_iterator> slip::GenericMultiComponent4d< Block >::reverse_slab_iterator

Definition at line 230 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<slab_range_iterator> slip::GenericMultiComponent4d< Block >::reverse_slab_range_iterator

Definition at line 239 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<slice_iterator> slip::GenericMultiComponent4d< Block >::reverse_slice_iterator

Definition at line 232 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::reverse_iterator<slice_range_iterator> slip::GenericMultiComponent4d< Block >::reverse_slice_range_iterator

Definition at line 241 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef pointer slip::GenericMultiComponent4d< Block >::row_iterator

Definition at line 216 of file GenericMultiComponent4d.hpp.

Definition at line 225 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef GenericMultiComponent4d<Block> slip::GenericMultiComponent4d< Block >::self

Definition at line 195 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef std::size_t slip::GenericMultiComponent4d< Block >::size_type

Definition at line 203 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef slip::stride_iterator<pointer> slip::GenericMultiComponent4d< Block >::slab_iterator

Definition at line 212 of file GenericMultiComponent4d.hpp.

Definition at line 221 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef slip::stride_iterator<pointer> slip::GenericMultiComponent4d< Block >::slice_iterator

Definition at line 214 of file GenericMultiComponent4d.hpp.

Definition at line 223 of file GenericMultiComponent4d.hpp.

template<typename Block>
typedef Block slip::GenericMultiComponent4d< Block >::value_type

Definition at line 194 of file GenericMultiComponent4d.hpp.

Constructor & Destructor Documentation

template<typename Block >
slip::GenericMultiComponent4d< Block >::GenericMultiComponent4d ( )
inline

Constructs a GenericMultiComponent4d.

Definition at line 5417 of file GenericMultiComponent4d.hpp.

template<typename Block>
slip::GenericMultiComponent4d< Block >::GenericMultiComponent4d ( const size_type  slabs,
const size_type  slices,
const size_type  rows,
const size_type  cols 
)

Constructs a GenericMultiComponent4d.

Parameters
slabsfirst dimension of the GenericMultiComponent4d
slicessecond dimension of the GenericMultiComponent4d
rowsthird dimension of the GenericMultiComponent4d
colsfourth dimension of the GenericMultiComponent4d
template<typename Block>
slip::GenericMultiComponent4d< Block >::GenericMultiComponent4d ( const size_type  slabs,
const size_type  slices,
const size_type  rows,
const size_type  cols,
const Block &  val 
)

Constructs a GenericMultiComponent4d initialized by the scalar value val.

Parameters
slabsfirst dimension of the GenericMultiComponent4d
slicessecond dimension of the GenericMultiComponent4d
rowsthird dimension of the GenericMultiComponent4d
colsfourth dimension of the GenericMultiComponent4d
valinitialization value of the elements
template<typename Block>
slip::GenericMultiComponent4d< Block >::GenericMultiComponent4d ( const size_type  slabs,
const size_type  slices,
const size_type  rows,
const size_type  cols,
typename Block::const_pointer  val 
)

Constructs a GenericMultiComponent4d initialized by an array val.

Parameters
slabsfirst dimension of the GenericMultiComponent4d
slicessecond dimension of the GenericMultiComponent4d
rowsthird dimension of the GenericMultiComponent4d
colsfourth dimension of the GenericMultiComponent4d
valinitialization linear array value of the elements
template<typename Block>
slip::GenericMultiComponent4d< Block >::GenericMultiComponent4d ( const size_type  slabs,
const size_type  slices,
const size_type  rows,
const size_type  cols,
const Block *  val 
)

Constructs a GenericMultiComponent4d initialized by an array val.

Parameters
slabsfirst dimension of the GenericMultiComponent4d
slicessecond dimension of the GenericMultiComponent4d
rowsthird dimension of the GenericMultiComponent4d
colsfourth dimension of the GenericMultiComponent4d
valinitialization array value of the elements
template<typename Block>
template<typename InputIterator >
slip::GenericMultiComponent4d< Block >::GenericMultiComponent4d ( const size_type  slabs,
const size_type  slices,
const size_type  rows,
const size_type  cols,
InputIterator  first,
InputIterator  last 
)
inline

Contructs a GenericMultiComponent4d from a range.

Parameters
slabsfirst dimension of the GenericMultiComponent4d
slicessecond dimension of the GenericMultiComponent4d
rowsthird dimension of the GenericMultiComponent4d
colsfourth dimension of the GenericMultiComponent4d
firstAn input iterator.
lastAn input iterator.

Create a GenericMultiComponent4d consisting of copies of the elements from [first,last).

Definition at line 404 of file GenericMultiComponent4d.hpp.

template<typename Block>
template<typename InputIterator >
slip::GenericMultiComponent4d< Block >::GenericMultiComponent4d ( const size_type  slabs,
const size_type  slices,
const size_type  rows,
const size_type  cols,
std::vector< InputIterator >  first_iterators_list,
InputIterator  last 
)
inline

Contructs a GenericMultiComponent4d from a 3 ranges.

Parameters
slabsfirst dimension of the GenericMultiComponent4d
slicessecond dimension of the GenericMultiComponent4d
rowsthird dimension of the GenericMultiComponent4d
colsfourth dimension of the GenericMultiComponent4d
first_iterators_listA std::vector of the first input iterators.
lastAn input iterator.

Create a GenericMultiComponent4d consisting of copies of the elements from [first_iterators_list[0],last), [first_iterators_list[1],first_iterators_list[1] + (last - first_iterators_list[0]), ...

Definition at line 429 of file GenericMultiComponent4d.hpp.

template<typename Block>
slip::GenericMultiComponent4d< Block >::GenericMultiComponent4d ( const self rhs)
inline

Constructs a copy of the GenericMultiComponent4d rhs.

Definition at line 5461 of file GenericMultiComponent4d.hpp.

template<typename Block >
slip::GenericMultiComponent4d< Block >::~GenericMultiComponent4d ( )
inlinevirtual

Destructor of the GenericMultiComponent4d.

Definition at line 5466 of file GenericMultiComponent4d.hpp.

template<typename Block>
template<typename Block>
slip::GenericMultiComponent4d< Block >::GenericMultiComponent4d ( const GenericMultiComponent4d< Block >::size_type  slabs,
const GenericMultiComponent4d< Block >::size_type  slices,
const GenericMultiComponent4d< Block >::size_type  rows,
const GenericMultiComponent4d< Block >::size_type  cols 
)
inline

Definition at line 5422 of file GenericMultiComponent4d.hpp.

template<typename Block>
template<typename Block>
slip::GenericMultiComponent4d< Block >::GenericMultiComponent4d ( const GenericMultiComponent4d< Block >::size_type  slabs,
const GenericMultiComponent4d< Block >::size_type  slices,
const GenericMultiComponent4d< Block >::size_type  rows,
const GenericMultiComponent4d< Block >::size_type  cols,
const Block &  val 
)
inline

Definition at line 5429 of file GenericMultiComponent4d.hpp.

template<typename Block>
template<typename Block>
slip::GenericMultiComponent4d< Block >::GenericMultiComponent4d ( const GenericMultiComponent4d< Block >::size_type  slabs,
const GenericMultiComponent4d< Block >::size_type  slices,
const GenericMultiComponent4d< Block >::size_type  rows,
const GenericMultiComponent4d< Block >::size_type  cols,
typename Block::const_pointer  val 
)
inline

Definition at line 5436 of file GenericMultiComponent4d.hpp.

template<typename Block>
template<typename Block>
slip::GenericMultiComponent4d< Block >::GenericMultiComponent4d ( const GenericMultiComponent4d< Block >::size_type  slabs,
const GenericMultiComponent4d< Block >::size_type  slices,
const GenericMultiComponent4d< Block >::size_type  rows,
const GenericMultiComponent4d< Block >::size_type  cols,
const Block *  val 
)
inline

Definition at line 5454 of file GenericMultiComponent4d.hpp.

Member Function Documentation

template<typename Block>
GenericMultiComponent4d< Block > & slip::GenericMultiComponent4d< Block >::apply ( Block(*)(Block)  fun)
inline

Returns the sums of the elements of the GenericMultiComponent4d.

Precondition
size() != 0

Applys the one-parameter C-function fun to each element of the GenericMultiComponent4d

Parameters
funThe one-parameter C function
Returns
the resulting GenericMultiComponent4d

Definition at line 7519 of file GenericMultiComponent4d.hpp.

template<typename Block>
GenericMultiComponent4d< Block > & slip::GenericMultiComponent4d< Block >::apply ( Block(*)(const Block &)  fun)
inline

Applys the one-parameter C-function fun to each element of the GenericMultiComponent4d.

Parameters
funThe one-const-parameter C function
Returns
the resulting GenericMultiComponent4d

Definition at line 7527 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::iterator slip::GenericMultiComponent4d< Block >::begin ( )
inline

Returns a read/write iterator that points to the first element in the GenericMultiComponent4d. Iteration is done in ordinary element order.

Returns
begin iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:

Definition at line 5491 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_iterator slip::GenericMultiComponent4d< Block >::begin ( ) const
inline

Returns a read-only (constant) iterator that points to the first element in the GenericMultiComponent4d. Iteration is done in ordinary element order.

Returns
const begin iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:

Definition at line 5498 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::component_iterator slip::GenericMultiComponent4d< Block >::begin ( const std::size_t  component)
inline

Returns a read/write iterator that points to the first element in the GenericMultiComponent4d. Iteration is done in ordinary element order.

Parameters
componentThe component number.
Returns
begin component_iterator value

Definition at line 6419 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_component_iterator slip::GenericMultiComponent4d< Block >::begin ( const std::size_t  component) const
inline

Returns a read-only (constant) iterator that points to the first element in the GenericMultiComponent4d. Iteration is done in ordinary element order.

Parameters
componentThe component number.
Returns
const begin component_iterator value

Definition at line 6426 of file GenericMultiComponent4d.hpp.

template<typename Block>
col_iterator slip::GenericMultiComponent4d< Block >::col_begin ( const size_type  slab,
const size_type  slice,
const size_type  col 
)

Returns a read/write iterator that points to the first element of the column column of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done modulo the number of columns.

Parameters
slabslab coordinate of the line
sliceThe index of the slice.
colThe index of the column
Returns
begin col_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
template<typename Block>
const_col_iterator slip::GenericMultiComponent4d< Block >::col_begin ( const size_type  slab,
const size_type  slice,
const size_type  col 
) const

Returns a read_only iterator that points to the first element of the column column of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done modulo the number of columns.

Parameters
slabslab coordinate of the line
sliceThe index of the slice.
colThe index of the column
Returns
begin const_col_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
template<typename Block>
col_range_iterator slip::GenericMultiComponent4d< Block >::col_begin ( const size_type  slab,
const size_type  slice,
const size_type  col,
const slip::Range< int > &  range 
)

Returns a read-write iterator that points to the first element of the Range range of the col col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
slabthe index of the slab containing the row to iterate.
sliceThe index of the slice.
colThe index of the column to iterate.
rangeRange of the column to iterate
Returns
begin col_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
col must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the 3rd column of the 5th slab
//and the 4th slice of A1 in S.
std::copy(A1.col_begin(5,4,3,range),A1.col_end(5,4,3,range),S.begin());
template<typename Block>
const_col_range_iterator slip::GenericMultiComponent4d< Block >::col_begin ( const size_type  slab,
const size_type  slice,
const size_type  col,
const slip::Range< int > &  range 
) const

Returns a read-only iterator that points to the first element of the Range range of the col col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
slabthe index of the slab containing the row to iterate.
sliceThe index of the slice.
colThe index of the column to iterate.
rangeRange of the column to iterate.
Returns
begin const_col_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
col must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the 3rd column of the 5th slab
//and the 4th slice of A1 in S.
std::copy(A1.col_begin(5,4,3,range),A1.col_end(5,4,3,range),S.begin());
template<typename Block>
component_col_iterator slip::GenericMultiComponent4d< Block >::col_begin ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  col 
)

Returns a read/write iterator that points to the component component of the first element of the column column of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done modulo the number of columns.

Parameters
componentThe component number.
slabthe index of the slab.
slicethe index of the slice.
colthe index of the column.
Returns
begin component_col_iterator value
template<typename Block>
const_component_col_iterator slip::GenericMultiComponent4d< Block >::col_begin ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  col 
) const

Returns a read_only iterator that points to the component component of the first element of the column column of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done modulo the number of columns.

Parameters
componentThe component number.
slabthe index of the slab.
slicethe index of the slice.
colthe index of the column.
Returns
begin const_component_col_iterator value
template<typename Block>
component_col_range_iterator slip::GenericMultiComponent4d< Block >::col_begin ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  col,
const slip::Range< int > &  range 
)

Returns a read-write iterator that points to the component component of the first element of the Range range of the col col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
componentThe component number.
slabThe index of the slab.
sliceThe index of the slice.
colThe index of the column to iterate.
rangeRange of the column to iterate
Returns
begin component_col_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
col must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the 3rd
//column of the 4th slab and the 3rd slice of A1 in S.
std::copy(A1.col_begin(0,4,3,3,range),A1.col_end(0,4,3,3,range),S.begin());
template<typename Block>
const_component_col_range_iterator slip::GenericMultiComponent4d< Block >::col_begin ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  col,
const slip::Range< int > &  range 
) const

Returns a read-only iterator that points to the component component of the first element of the Range range of the col col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
componentThe component number.
slabThe index of the slab.
sliceThe index of the slice.
colThe index of the column to iterate.
rangeRange of the column to iterate.
Returns
begin const_component_col_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
col must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the 3rd
//column of the 4th slab and the 3rd slice of A1 in S.
std::copy(A1.col_begin(0,4,3,3,range),A1.col_end(0,4,3,3,range),S.begin());
template<typename Block>
col_iterator slip::GenericMultiComponent4d< Block >::col_end ( const size_type  slab,
const size_type  slice,
const size_type  col 
)

Returns a read/write iterator that points to the past-the-end element of the column column of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done modulo the number of columns.

Parameters
slabslab coordinate of the line
sliceThe index of the slice.
colThe index of the column
Returns
end col_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
template<typename Block>
const_col_iterator slip::GenericMultiComponent4d< Block >::col_end ( const size_type  slab,
const size_type  slice,
const size_type  col 
) const

Returns a read_only iterator that points to the past-the-end element of the column column of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done modulo the number of columns.

Parameters
slabslab coordinate of the line
sliceThe index of the slice.
colThe index of the column
Returns
end const_col_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
template<typename Block>
col_range_iterator slip::GenericMultiComponent4d< Block >::col_end ( const size_type  slab,
const size_type  slice,
const size_type  col,
const slip::Range< int > &  range 
)

Returns a read-write iterator that points to the past the end element of the Range range of the col col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
slabthe index of the slab containing the row to iterate.
sliceThe index of the slice.
colThe index of the column to iterate.
rangeRange of the column to iterate.
Returns
begin col_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
col must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the 3rd column of the 5th slab
//and the 4th slice of A1 in S.
std::copy(A1.col_begin(5,4,3,range),A1.col_end(5,4,3,range),S.begin());
template<typename Block>
const_col_range_iterator slip::GenericMultiComponent4d< Block >::col_end ( const size_type  slab,
const size_type  slice,
const size_type  col,
const slip::Range< int > &  range 
) const

Returns a read-only iterator that points to the past the end element of the Range range of the col col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
slabthe index of the slab containing the row to iterate.
sliceThe index of the slice.
colThe index of the column to iterate.
rangeRange of the column to iterate
Returns
begin const_col_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
col must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the 3rd column of the 5th slab
//and the 4th slice of A1 in S.
std::copy(A1.col_begin(5,4,3,range),A1.col_end(5,4,3,range),S.begin());
template<typename Block>
component_col_iterator slip::GenericMultiComponent4d< Block >::col_end ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  col 
)

Returns a read/write iterator that points to the component component of the past-the-end element of the column column of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done modulo the number of columns.

Parameters
componentThe component number.
slabthe index of the slab.
slicethe index of the slice.
colthe index of the column.
Returns
end component_col_iterator value
template<typename Block>
const_component_col_iterator slip::GenericMultiComponent4d< Block >::col_end ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  col 
) const

Returns a read_only iterator that points to the component component of the past-the-end element of the column column of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done modulo the number of columns.

Parameters
componentThe component number.
slabthe index of the slab.
slicethe index of the slice.
colthe index of the column.
Returns
end const_component_col_iterator value
template<typename Block>
component_col_range_iterator slip::GenericMultiComponent4d< Block >::col_end ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  col,
const slip::Range< int > &  range 
)

Returns a read-write iterator that points to the component component of the past the end element of the Range range of the col col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
componentThe component number.
slabThe index of the slab.
sliceThe index of the slice.
colThe index of the column to iterate.
rangeRange of the column to iterate.
Returns
begin component_col_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
col must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the 3rd
//column of the 4th slab and the 3rd slice of A1 in S.
std::copy(A1.col_begin(0,4,3,3,range),A1.col_end(0,4,3,3,range),S.begin());
template<typename Block>
const_component_col_range_iterator slip::GenericMultiComponent4d< Block >::col_end ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  col,
const slip::Range< int > &  range 
) const

Returns a read-only iterator that points to the component component of the past the end element of the Range range of the col col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
componentThe component number.
slabThe index of the slab.
sliceThe index of the slice.
colThe index of the column to iterate.
rangeRange of the column to iterate.
Returns
begin const_component_col_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
col must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the 3rd
//column of the 4th slab and the 3rd slice of A1 in S.
std::copy(A1.col_begin(0,4,3,3,range),A1.col_end(0,4,3,3,range),S.begin());
template<typename Block>
reverse_col_iterator slip::GenericMultiComponent4d< Block >::col_rbegin ( const size_type  slab,
const size_type  slice,
const size_type  col 
)

Returns a read/write reverse iterator that points to the last element of the column column of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done modulo the number of columns.

Parameters
slabslab coordinate of the line
sliceThe index of the slice.
colThe index of the column
Returns
begin reverse_col_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
template<typename Block>
const_reverse_col_iterator slip::GenericMultiComponent4d< Block >::col_rbegin ( const size_type  slab,
const size_type  slice,
const size_type  col 
) const

Returns a read_only reverse iterator that points to the last element of the column column of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done modulo the number of columns.

Parameters
slabslab coordinate of the line
sliceThe index of the slice.
colThe index of the column
Returns
begin const_reverse_col_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
template<typename Block>
reverse_col_range_iterator slip::GenericMultiComponent4d< Block >::col_rbegin ( const size_type  slab,
const size_type  slice,
const size_type  col,
const slip::Range< int > &  range 
)

Returns a read-write iterator that points to the last element of the Range range of the col col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range.

Parameters
slabthe index of the slab containing the row to iterate.
sliceThe index of the slice.
colThe index of the column to iterate.
rangeRange of the column to iterate.
Returns
begin reverse_col_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
col must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the 3rd column of the 5th slab
//and the 4th slice of A1 in S in reverse order.
std::copy(A1.col_rbegin(5,4,3,range),A1.col_rend(5,4,3,range),S.begin());
template<typename Block>
const_reverse_col_range_iterator slip::GenericMultiComponent4d< Block >::col_rbegin ( const size_type  slab,
const size_type  slice,
const size_type  col,
const slip::Range< int > &  range 
) const

Returns a read_only iterator that points to the last element of the Range & range of the col col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range.

Parameters
slabthe index of the slab containing the row to iterate.
sliceThe index of the slice.
colThe index of the column to iterate.
rangeRange of the column to iterate.
Returns
begin const_reverse_col_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
col must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the 3rd column of the 5th slab
//and the 4th slice of A1 in S.
std::copy(A1.col_begin(5,4,3,range),A1.col_end(5,4,3,range),S.begin());
template<typename Block>
reverse_component_col_iterator slip::GenericMultiComponent4d< Block >::col_rbegin ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  col 
)

Returns a read/write reverse iterator that points to the component component of the last element of the column column of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done modulo the number of columns.

Parameters
componentThe component number.
slabthe index of the slab.
slicethe index of the slice.
colthe index of the column.
Returns
begin reverse_component_col_iterator value
template<typename Block>
const_reverse_component_col_iterator slip::GenericMultiComponent4d< Block >::col_rbegin ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  col 
) const

Returns a read_only reverse iterator that points to the component component of the last element of the column column of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done modulo the number of columns.

Parameters
componentThe component number.
slabthe index of the slab.
slicethe index of the slice.
colthe index of the column.
Returns
begin const_reverse_component_col_iterator value
template<typename Block>
reverse_component_col_range_iterator slip::GenericMultiComponent4d< Block >::col_rbegin ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  col,
const slip::Range< int > &  range 
)

Returns a read-write iterator that points to the component component of the last element of the Range range of the col of a slice col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range.

Parameters
componentThe component number.
slabThe index of the slab.
sliceThe index of the slice.
colThe index of the column to iterate.
rangeRange of the column to iterate.
Returns
begin reverse_component_col_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
col must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the 3rd
//column of the 4th slab and the 3rd slice of A1 in S in reverse order.
std::copy(A1.col_rbegin(0,4,3,3,range),A1.col_rend(0,4,3,3,range),S.begin());
template<typename Block>
const_reverse_component_col_range_iterator slip::GenericMultiComponent4d< Block >::col_rbegin ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  col,
const slip::Range< int > &  range 
) const

Returns a read_only iterator that points to the component component of the last element of the Range & range of the col of a slice col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range.

Parameters
componentThe component number.
slabThe index of the slab.
sliceThe index of the slice.
colThe index of the column to iterate.
rangeRange of the column to iterate.
Returns
begin const_reverse_component_col_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
col must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the 3rd
//column of the 4th slab and the 3rd slice of A1 in S in reverse order.
std::copy(A1.col_rbegin(0,4,3,3,range),A1.col_rend(0,4,3,3,range),S.begin());
template<typename Block>
reverse_col_iterator slip::GenericMultiComponent4d< Block >::col_rend ( const size_type  slab,
const size_type  slice,
const size_type  col 
)

Returns a read/write reverse iterator that points to the first element of the column column of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done modulo the number of columns.

Parameters
slabslab coordinate of the line
sliceThe index of the slice.
colThe index of the column
Returns
end reverse_col_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
template<typename Block>
const_reverse_col_iterator slip::GenericMultiComponent4d< Block >::col_rend ( const size_type  slab,
const size_type  slice,
const size_type  col 
) const

Returns a read_only reverse iterator that points to the first element of the column column of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done modulo the number of columns.

Parameters
slabslab coordinate of the line
sliceThe index of the slice.
colThe index of the column
Returns
end const_reverse_col_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
template<typename Block>
reverse_col_range_iterator slip::GenericMultiComponent4d< Block >::col_rend ( const size_type  slab,
const size_type  slice,
const size_type  col,
const slip::Range< int > &  range 
)

Returns a read-write iterator that points to one before the first element of the Range range of the col col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range.

Parameters
slabthe index of the slab containing the row to iterate.
sliceThe index of the slice.
colThe index of the column to iterate.
rangeRange of the column to iterate.
Returns
reverse_col_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
col must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the 3rd column of the 5th slab
//and the 4th slice of A1 in S in reverse order.
std::copy(A1.col_rbegin(5,4,3,range),A1.col_rend(5,4,3,range),S.begin());
template<typename Block>
const_reverse_col_range_iterator slip::GenericMultiComponent4d< Block >::col_rend ( const size_type  slab,
const size_type  slice,
const size_type  col,
const slip::Range< int > &  range 
) const

Returns a read-only iterator that points to the first element of the Range range of the col col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range.

Parameters
slabthe index of the slab containing the row to iterate.
sliceThe index of the slice.
colThe index of the column to iterate.
rangeRange of the column to iterate.
Returns
const_reverse_col_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
col must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the 3rd column of the 5th slab
//and the 4th slice of A1 in S.
std::copy(A1.col_begin(5,4,3,range),A1.col_end(5,4,3,range),S.begin());
template<typename Block>
reverse_component_col_iterator slip::GenericMultiComponent4d< Block >::col_rend ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  col 
)

Returns a read/write reverse iterator that points to the component component of the before the first element of the column column of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done modulo the number of columns.

Parameters
componentThe component number.
slabthe index of the slab.
slicethe index of the slice.
colthe index of the column.
Returns
end reverse_component_col_iterator value
template<typename Block>
const_reverse_component_col_iterator slip::GenericMultiComponent4d< Block >::col_rend ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  col 
) const

Returns a read_only reverse iterator that points to the component component of the before the first element of the column column of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done modulo the number of columns.

Parameters
componentThe component number.
slabthe index of the slab.
slicethe index of the slice.
colthe index of the column.
Returns
end const_reverse_component_col_iterator value
template<typename Block>
reverse_component_col_range_iterator slip::GenericMultiComponent4d< Block >::col_rend ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  col,
const slip::Range< int > &  range 
)

Returns a read-write iterator that points to the component component of the before the first element of the Range range of the col of a slice col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range.

Parameters
componentThe component number.
slabThe index of the slab.
sliceThe index of the slice.
colThe index of the column to iterate.
rangeRange of the column to iterate.
Returns
reverse_ccomponent_ol_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
col must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the 3rd
//column of the 4th slab and the 3rd slice of A1 in S in reverse order.
std::copy(A1.col_rbegin(0,4,3,3,range),A1.col_rend(0,4,3,3,range),S.begin());
template<typename Block>
const_reverse_component_col_range_iterator slip::GenericMultiComponent4d< Block >::col_rend ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  col,
const slip::Range< int > &  range 
) const

Returns a read-only iterator that points to the component component of the first element of the Range range of the col of a slice col of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range.

Parameters
componentThe component number.
slabThe index of the slab.
sliceThe index of the slice.
colThe index of the column to iterate.
rangeRange of the column to iterate.
Returns
const_reverse_component_col_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
col must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the 3rd
//column of the 4th slab and the 3rd slice of A1 in S in reverse order.
std::copy(A1.col_rbegin(0,4,3,3,range),A1.col_rend(0,4,3,3,range),S.begin());
template<typename Block >
GenericMultiComponent4d< Block >::size_type slip::GenericMultiComponent4d< Block >::cols ( ) const
inline

Returns the number of columns (fourth dimension size) in the GenericMultiComponent4d.

Definition at line 7458 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::size_type slip::GenericMultiComponent4d< Block >::columns ( ) const
inline

Returns the number of columns (fourth dimension size) in the GenericMultiComponent4d.

Definition at line 7451 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::size_type slip::GenericMultiComponent4d< Block >::dim1 ( ) const
inline

Returns the number of slabs (first dimension size) in the GenericMultiComponent4d.

Definition at line 7402 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::size_type slip::GenericMultiComponent4d< Block >::dim2 ( ) const
inline

Returns the number of slices (second dimension size) in the GenericMultiComponent4d.

Definition at line 7416 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::size_type slip::GenericMultiComponent4d< Block >::dim3 ( ) const
inline

Returns the number of rows (third dimension size) in the GenericMultiComponent4d.

Definition at line 7430 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::size_type slip::GenericMultiComponent4d< Block >::dim4 ( ) const
inline

Returns the number of columns (fourth dimension size) in the GenericMultiComponent4d.

Definition at line 7444 of file GenericMultiComponent4d.hpp.

template<typename Block >
bool slip::GenericMultiComponent4d< Block >::empty ( ) const
inline

Returns true if the GenericMultiComponent4d is empty. (Thus size() == 0)

Definition at line 7479 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::iterator slip::GenericMultiComponent4d< Block >::end ( )
inline

Returns a read/write iterator that points one past the last element in the GenericMultiComponent4d. Iteration is done in ordinary element order.

Returns
end iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:

Definition at line 5506 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_iterator slip::GenericMultiComponent4d< Block >::end ( ) const
inline

Returns a read-only (constant) iterator that points one past the last element in the GenericMultiComponent4d. Iteration is done in ordinary element order.

Returns
const end iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:

Definition at line 5513 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::component_iterator slip::GenericMultiComponent4d< Block >::end ( const std::size_t  component)
inline

Returns a read/write iterator that points one past the last element in the GenericMultiComponent4d. Iteration is done in ordinary element order.

Parameters
componentThe component number.
Returns
end component_iterator value

Definition at line 6433 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_component_iterator slip::GenericMultiComponent4d< Block >::end ( const std::size_t  component) const
inline

Returns a read-only (constant) iterator that points one past the last element in the GenericMultiComponent4d. Iteration is done in ordinary element order.

Parameters
componentThe component number.
Returns
const end component_iterator value

Definition at line 6440 of file GenericMultiComponent4d.hpp.

template<typename Block>
void slip::GenericMultiComponent4d< Block >::fill ( const Block &  value)
inline

Fills the container range [begin(),begin()+size()) with copies of value.

Parameters
valueA reference-to-const of arbitrary type.

Definition at line 5043 of file GenericMultiComponent4d.hpp.

template<typename Block>
void slip::GenericMultiComponent4d< Block >::fill ( const typename Block::pointer  value)
inline

Fills the container range [begin(),begin()+size()) with a copy of the value array.

Parameters
valueA pointer of arbitrary type.

Definition at line 5054 of file GenericMultiComponent4d.hpp.

template<typename Block>
void slip::GenericMultiComponent4d< Block >::fill ( const Block *  value)
inline

Fills the container range [begin(),begin()+size()) with a copy of the value array.

Parameters
valueA pointer of arbitrary type.

Definition at line 5065 of file GenericMultiComponent4d.hpp.

template<typename Block>
template<typename InputIterator >
void slip::GenericMultiComponent4d< Block >::fill ( InputIterator  first,
InputIterator  last 
)
inline

Fills the container range [begin(),begin()+size()) with a copy of the range [first,last)

Parameters
firstAn input iterator.
lastAn input iterator.

Definition at line 5079 of file GenericMultiComponent4d.hpp.

template<typename Block>
template<typename InputIterator >
void slip::GenericMultiComponent4d< Block >::fill ( std::vector< InputIterator >  first_iterators_list,
InputIterator  last 
)
inline

Fills the container range [begin(),begin()+size()) with a copy of the range [first,last)

Parameters
first_iterators_listAn input iterator list.
lastAn input iterator.

Definition at line 5094 of file GenericMultiComponent4d.hpp.

template<typename Block>
template<typename InputIterator >
void slip::GenericMultiComponent4d< Block >::fill ( std::size_t  component,
InputIterator  first,
InputIterator  last 
)
inline

Fills the container range [begin(),begin()+size()) with a copy of the range [first,last)

Parameters
componentThe component number.
firstAn input iterator.
lastAn input iterator.

Definition at line 5128 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::iterator4d slip::GenericMultiComponent4d< Block >::first_front_upper_left ( )
inline

Returns a read/write iterator4d that points to the first element of the GenericMultiComponent4d. It points to the first front upper left element of the GenericMultiComponent4d.

Returns
begin iterator4d value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Example
//Print M
std::copy(M.first_front_upper_left(),M.last_back_bottom_right(),
std::ostream_iterator<slip::color<double> >(std::cout," "));

Definition at line 6211 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_iterator4d slip::GenericMultiComponent4d< Block >::first_front_upper_left ( ) const
inline

Returns a read-only iterator4d that points to the first element of the GenericMultiComponent4d. It points to the first front upper left element of the GenericMultiComponent4d.

Returns
begin const iterator4d value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Example
//Print M
std::copy(M.first_front_upper_left(),M.last_back_bottom_right(),
std::ostream_iterator<slip::color<double> >(std::cout," "));

Definition at line 6225 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::iterator4d slip::GenericMultiComponent4d< Block >::first_front_upper_left ( const Box4d< int > &  box)
inline

Returns a read/write iterator4d that points to the first element of the GenericMultiComponent4d. It points to the first front upper left element of the Box4d associated to the GenericMultiComponent4d.

Parameters
boxA Box4d defining the range of indices to iterate within the GenericMultiComponent4d.
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Returns
end iterator4d value
Precondition
The box indices must be inside the range of the GenericMultiComponent4d ones.
Example
slip::Box4d<int> b(1,1,1,1,2,2,3,3);
//Print M within a box
std::copy(M.first_front_upper_left(b),M.last_back_bottom_right(b),
std::ostream_iterator<slip::color<double> >(std::cout," "));

Definition at line 6273 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_iterator4d slip::GenericMultiComponent4d< Block >::first_front_upper_left ( const Box4d< int > &  box) const
inline

Returns a read only iterator4d that points to the first element of the GenericMultiComponent4d. It points to the first front upper left element of the Box4d associated to the GenericMultiComponent4d.

Parameters
boxa Box4d defining the range of indices to iterate within the GenericMultiComponent4d.
Returns
end const iterator4d value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Precondition
The box indices must be inside the range of the GenericMultiComponent4d ones.
Example
slip::Box4d<int> b(1,1,1,1,2,2,3,3);
//Print M within a box
std::copy(M.first_front_upper_left(b),M.last_back_bottom_right(b),
std::ostream_iterator<slip::color<double> >(std::cout," "));

Definition at line 6287 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::iterator4d_range slip::GenericMultiComponent4d< Block >::first_front_upper_left ( const slip::Range< int > &  slab_range,
const slip::Range< int > &  slice_range,
const slip::Range< int > &  row_range,
const slip::Range< int > &  col_range 
)
inline

Returns a read/write iterator4d_range that points to the first front upper left element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d.

Parameters
slab_rangeThe range of the slabs.
slice_rangeThe range of the slices.
row_rangeThe range of the rows.
col_rangeThe range of the columns.
Precondition
slab_range, slice_range, row_range and col_range must be valid.
The ranges indices must be inside the ranges of the GenericMultiComponent4d ones.
Returns
iterator4d_range value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Example
slip::Range<int> fr(0,2,2);
slip::Range<int> sr(0,2,2);
slip::Range<int> rr(0,3,2);
slip::Range<int> cr(0,4,2);
//Print M within a range
std::copy(M.first_front_upper_left(fr,sr,rr,cr),M.last_back_bottom_right(fr,sr,rr,cr),
std::ostream_iterator<slip::color<double> >(std::cout," "));

Definition at line 6335 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_iterator4d_range slip::GenericMultiComponent4d< Block >::first_front_upper_left ( const slip::Range< int > &  slab_range,
const slip::Range< int > &  slice_range,
const slip::Range< int > &  row_range,
const slip::Range< int > &  col_range 
) const
inline

Returns a read-only iterator4d_range that points to the to the first front upper left element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d.

Parameters
slab_rangeThe range of the slabs.
slice_rangeThe range of the slices.
row_rangeThe range of the rows.
col_rangeThe range of the columns.
Precondition
slab_range, slice_range, row_range and col_range must be valid.
The ranges indices must be inside the ranges of the GenericMultiComponent4d ones.
Returns
const_iterator4d_range value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Example
slip::Range<int> fr(0,2,2);
slip::Range<int> sr(0,2,2);
slip::Range<int> rr(0,3,2);
slip::Range<int> cr(0,4,2);
//Print M within a range
std::copy(M.first_front_upper_left(fr,sr,rr,cr),M.last_back_bottom_right(fr,sr,rr,cr),
std::ostream_iterator<slip::color<double> >(std::cout," "));

Definition at line 6353 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::component_iterator4d slip::GenericMultiComponent4d< Block >::first_front_upper_left ( const std::size_t  component)
inline

Returns a read/write component_iterator4d that points to the first element of the GenericMultiComponent4d. It points to the first front upper left element of the GenericMultiComponent4d.

Parameters
componentThe component number.
Returns
the component_iterator4d value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Example :
//copy the first component of the elements of A1 in A2
std::copy(A1.first_front_upper_left(0),A1.last_back_bottom_right(0),A2.first_front_upper_left(0));

Definition at line 7079 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_component_iterator4d slip::GenericMultiComponent4d< Block >::first_front_upper_left ( const std::size_t  component) const
inline

Returns a read only const_component_iterator4d that points to the first element of the GenericMultiComponent4d. It points to the first front upper left element of the GenericMultiComponent4d.

Parameters
componentThe component number.
Returns
the const_component_iterator4d value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Example :
//copy the first component of the elements of A1 in A2
std::copy(A1.first_front_upper_left(0),A1.last_back_bottom_right(0),A2.first_front_upper_left(0));

Definition at line 7097 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::component_iterator4d slip::GenericMultiComponent4d< Block >::first_front_upper_left ( const std::size_t  component,
const Box4d< int > &  box 
)
inline

Returns a read/write component iterator4d that points to the first element of the GenericMultiComponent4d. It points to the first front upper left element of the Box4d associated to the GenericMultiComponent4d.

Parameters
componentThe component number.
boxA Box4d defining the range of indices to iterate within the GenericMultiComponent4d.
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Returns
the component_iterator4d value
Precondition
The box indices must be inside the range of the GenericMultiComponent4d ones.

Definition at line 7151 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_component_iterator4d slip::GenericMultiComponent4d< Block >::first_front_upper_left ( const std::size_t  component,
const Box4d< int > &  box 
) const
inline

Returns a read only component iterator4d that points to the first element of the GenericMultiComponent4d. It points to the first front upper left element of the Box4d associated to the GenericMultiComponent4d.

Parameters
componentThe component number.
boxa Box4d defining the range of indices to iterate within the GenericMultiComponent4d.
Returns
the const_component_iterator4d value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Precondition
The box indices must be inside the range of the GenericMultiComponent4d ones.

Definition at line 7169 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::component_iterator4d_range slip::GenericMultiComponent4d< Block >::first_front_upper_left ( const std::size_t  component,
const slip::Range< int > &  slab_range,
const slip::Range< int > &  slice_range,
const slip::Range< int > &  row_range,
const slip::Range< int > &  col_range 
)
inline

Returns a read/write component_iterator4d_range that points to the first front upper left element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d.

Parameters
componentThe component number.
slab_rangeThe range of the slabs.
slice_rangeThe range of the slices.
row_rangeThe range of the rows.
col_rangeThe range of the columns.
Precondition
slab_range, slice_range, row_range and col_range must be valid.
The ranges indices must be inside the ranges of the GenericMultiComponent4d ones.
Returns
the component_iterator4d_range value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.

Definition at line 7227 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_component_iterator4d_range slip::GenericMultiComponent4d< Block >::first_front_upper_left ( const std::size_t  component,
const slip::Range< int > &  slab_range,
const slip::Range< int > &  slice_range,
const slip::Range< int > &  row_range,
const slip::Range< int > &  col_range 
) const
inline

Returns a read/write component_const_iterator4d_range that points to the first front upper left element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d.

Parameters
componentThe component number.
slab_rangeThe range of the slabs.
slice_rangeThe range of the slices.
row_rangeThe range of the rows.
col_rangeThe range of the columns.
Precondition
slab_range, slice_range, row_range and col_range must be valid.
The ranges indices must be inside the ranges of the GenericMultiComponent4d ones.
Returns
the const_component_iterator4d_range value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.

Definition at line 7248 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::iterator4d slip::GenericMultiComponent4d< Block >::last_back_bottom_right ( )
inline

Returns a read/write iterator4d that points to the past the end element of the GenericMultiComponent4d. It points to past the end element of the last back bottom right element of the GenericMultiComponent4d.

Returns
begin iterator4d value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Example
//Print M
std::copy(M.first_front_upper_left(),M.last_back_bottom_right(),
std::ostream_iterator<slip::color<double> >(std::cout," "));

Definition at line 6218 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_iterator4d slip::GenericMultiComponent4d< Block >::last_back_bottom_right ( ) const
inline

Returns a read-only iterator4d that points to the past the end element of the GenericMultiComponent4d. It points to past the end element of the last back bottom right element of the GenericMultiComponent4d.

Returns
begin const iterator4d value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Example
//Print M
std::copy(M.first_front_upper_left(),M.last_back_bottom_right(),
std::ostream_iterator<slip::color<double> >(std::cout," "));

Definition at line 6233 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::iterator4d slip::GenericMultiComponent4d< Block >::last_back_bottom_right ( const Box4d< int > &  box)
inline

Returns a read/write iterator4d that points to the past the end element of the GenericMultiComponent4d. It points to past the end element of the last back bottom right element of the Box4d associated to the GenericMultiComponent4d.

Parameters
boxa Box4d defining the range of indices to iterate within the GenericMultiComponent4d.
Returns
end iterator4d value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Precondition
The box indices must be inside the range of the GenericMultiComponent4d ones.
Example
slip::Box4d<int> b(1,1,1,1,2,2,3,3);
//Print M within a box
std::copy(M.first_front_upper_left(b),M.last_back_bottom_right(b),
std::ostream_iterator<slip::color<double> >(std::cout," "));

Definition at line 6280 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_iterator4d slip::GenericMultiComponent4d< Block >::last_back_bottom_right ( const Box4d< int > &  box) const
inline

Returns a read only iterator4d that points to the past the end element of the GenericMultiComponent4d. It points to past the end element of the last back bottom right element of the Box4d associated to the GenericMultiComponent4d.

Parameters
boxa Box4d defining the range of indices to iterate within the GenericMultiComponent4d.
Returns
end const iterator4d value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Precondition
The box indices must be inside the range of the GenericMultiComponent4d ones.
Example
slip::Box4d<int> b(1,1,1,1,2,2,3,3);
//Print M within a box
std::copy(M.first_front_upper_left(b),M.last_back_bottom_right(b),
std::ostream_iterator<slip::color<double> >(std::cout," "));

Definition at line 6295 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::iterator4d_range slip::GenericMultiComponent4d< Block >::last_back_bottom_right ( const slip::Range< int > &  slab_range,
const slip::Range< int > &  slice_range,
const slip::Range< int > &  row_range,
const slip::Range< int > &  col_range 
)
inline

Returns a read/write iterator4d_range that points to the past the end last back bottom right element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d.

Parameters
slab_rangeThe range of the slabs.
slice_rangeThe range of the slices.
row_rangeThe range of the rows.
col_rangeThe range of the columns.
Precondition
slab_range, slice_range, row_range and col_range must be valid.
The ranges indices must be inside the ranges of the GenericMultiComponent4d ones.
Returns
iterator4d_range value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Example
slip::Range<int> fr(0,2,2);
slip::Range<int> sr(0,2,2);
slip::Range<int> rr(0,3,2);
slip::Range<int> cr(0,4,2);
//Print M within a range
std::copy(M.first_front_upper_left(fr,sr,rr,cr),M.last_back_bottom_right(fr,sr,rr,cr),
std::ostream_iterator<slip::color<double> >(std::cout," "));

Definition at line 6344 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_iterator4d_range slip::GenericMultiComponent4d< Block >::last_back_bottom_right ( const slip::Range< int > &  slab_range,
const slip::Range< int > &  slice_range,
const slip::Range< int > &  row_range,
const slip::Range< int > &  col_range 
) const
inline

Returns a read-only iterator4d_range that points to the past the end last back bottom right element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d.

Parameters
slab_rangeThe range of the slabs.
slice_rangeThe range of the slices.
row_rangeThe range of the rows.
col_rangeThe range of the columns.
Precondition
slab_range, slice_range, row_range and col_range must be valid.
The ranges indices must be inside the ranges of the GenericMultiComponent4d ones.
Returns
const_iterator4d_range value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Example
slip::Range<int> fr(0,2,2);
slip::Range<int> sr(0,2,2);
slip::Range<int> rr(0,3,2);
slip::Range<int> cr(0,4,2);
//Print M within a range
std::copy(M.first_front_upper_left(fr,sr,rr,cr),M.last_back_bottom_right(fr,sr,rr,cr),
std::ostream_iterator<slip::color<double> >(std::cout," "));

Definition at line 6363 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::component_iterator4d slip::GenericMultiComponent4d< Block >::last_back_bottom_right ( const std::size_t  component)
inline

Returns a read/write component_iterator4d that points to the past the end element of the GenericMultiComponent4d. It points to past the end element of the last back bottom right element of the GenericMultiComponent4d.

Parameters
componentThe component number.
Returns
the component_iterator4d value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Example :
//copy the first component of the elements of A1 in A2
std::copy(A1.first_front_upper_left(0),A1.last_back_bottom_right(0),A2.first_front_upper_left(0));

Definition at line 7087 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_component_iterator4d slip::GenericMultiComponent4d< Block >::last_back_bottom_right ( const std::size_t  component) const
inline

Returns a read only const_component_iterator4d that points to the past the end element of the GenericMultiComponent4d. It points to past the end element of the last back bottom right element of the GenericMultiComponent4d.

Parameters
componentThe component number.
Returns
the const_component_iterator4d value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Example :
//copy the first component of the elements of A1 in A2
std::copy(A1.first_front_upper_left(0),A1.last_back_bottom_right(0),A2.first_front_upper_left(0));

Definition at line 7105 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::component_iterator4d slip::GenericMultiComponent4d< Block >::last_back_bottom_right ( const std::size_t  component,
const Box4d< int > &  box 
)
inline

Returns a read/write component iterator4d that points to the past the end element of the GenericMultiComponent4d. It points to past the end element of the last back bottom right element of the Box4d associated to the GenericMultiComponent4d.

Parameters
componentThe component number.
boxa Box4d defining the range of indices to iterate within the GenericMultiComponent4d.
Returns
the component_iterator4d value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Precondition
The box indices must be inside the range of the GenericMultiComponent4d ones.

Definition at line 7159 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_component_iterator4d slip::GenericMultiComponent4d< Block >::last_back_bottom_right ( const std::size_t  component,
const Box4d< int > &  box 
) const
inline

Returns a read only component iterator4d that points to the past the end element of the GenericMultiComponent4d. It points to past the end element of the last back bottom right element of the Box4d associated to the GenericMultiComponent4d.

Parameters
componentThe component number.
boxa Box4d defining the range of indices to iterate within the GenericMultiComponent4d.
Returns
the const_component_iterator4d value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Precondition
The box indices must be inside the range of the GenericMultiComponent4d ones.

Definition at line 7177 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::component_iterator4d_range slip::GenericMultiComponent4d< Block >::last_back_bottom_right ( const std::size_t  component,
const slip::Range< int > &  slab_range,
const slip::Range< int > &  slice_range,
const slip::Range< int > &  row_range,
const slip::Range< int > &  col_range 
)
inline

Returns a read/write component_iterator4d_range that points to the past the end last back bottom right element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d.

Parameters
componentThe component number.
slab_rangeThe range of the slabs.
slice_rangeThe range of the slices.
row_rangeThe range of the rows.
col_rangeThe range of the columns.
Precondition
slab_range, slice_range, row_range and col_range must be valid.
The ranges indices must be inside the ranges of the GenericMultiComponent4d ones.
Returns
the component_iterator4d_range value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.

Definition at line 7237 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_component_iterator4d_range slip::GenericMultiComponent4d< Block >::last_back_bottom_right ( const std::size_t  component,
const slip::Range< int > &  slab_range,
const slip::Range< int > &  slice_range,
const slip::Range< int > &  row_range,
const slip::Range< int > &  col_range 
) const
inline

Returns a read/write const_component iterator4d_range that points to the past the end last back bottom right element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d.

Parameters
componentThe component number.
slab_rangeThe range of the slabs.
slice_rangeThe range of the slices.
row_rangeThe range of the rows.
col_rangeThe range of the columns.
Precondition
slab_range, slice_range, row_range and col_range must be valid.
The ranges indices must be inside the ranges of the GenericMultiComponent4d ones.
Returns
the const_component_iterator4d_range value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.

Definition at line 7258 of file GenericMultiComponent4d.hpp.

template<typename Block >
Block slip::GenericMultiComponent4d< Block >::max ( ) const
inline

Returns the max elements of the GenericMultiComponent4d according to the operator <.

Precondition
size() != 0

Definition at line 7506 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::size_type slip::GenericMultiComponent4d< Block >::max_size ( ) const
inline

Returns the maximal size (number of elements) in the GenericMultiComponent4d.

Definition at line 7472 of file GenericMultiComponent4d.hpp.

template<typename Block >
Block slip::GenericMultiComponent4d< Block >::min ( ) const
inline

Returns the min elements of the GenericMultiComponent4d according to the operator <.

Precondition
size() != 0

Definition at line 7493 of file GenericMultiComponent4d.hpp.

template<typename Block>
reference slip::GenericMultiComponent4d< Block >::operator() ( const size_type  t,
const size_type  k,
const size_type  i,
const size_type  j 
)

Subscript access to the data contained in the GenericMultiComponent4d.

Parameters
tThe index of the slab for which the data should be accessed.
kThe index of the slice for which the data should be accessed.
iThe index of the row for which the data should be accessed.
jThe index of the column for which the data should be accessed.
Returns
Read/Write reference to data.
Precondition
t < slabs()
k < slices()
i < rows()
j < cols() This operator allows for easy, 4d array-style, data access. Note that data access with this operator is unchecked and out_of_range lookups are not defined.
template<typename Block>
const_reference slip::GenericMultiComponent4d< Block >::operator() ( const size_type  t,
const size_type  k,
const size_type  i,
const size_type  j 
) const

Subscript access to the data contained in the GenericMultiComponent4d.

Parameters
tThe index of the slab for which the data should be accessed.
kThe index of the slice for which the data should be accessed.
iThe index of the row for which the data should be accessed.
jThe index of the column for which the data should be accessed.
Returns
Read_only (constant) reference to data.
Precondition
t < slabs()
k < slices()
i < rows()
j < cols() This operator allows for easy, 4d array-style, data access. Note that data access with this operator is unchecked and out_of_range lookups are not defined.
template<typename Block >
GenericMultiComponent4d< Block > & slip::GenericMultiComponent4d< Block >::operator= ( const self rhs)
inline

Assign a GenericMultiComponent4d. Assign elements from the GenericMultiComponent4d rhs.

Parameters
rhsGenericMultiComponent4d to get the values from.
Returns
reference to corresponding GenericMultiComponent4d

Definition at line 7322 of file GenericMultiComponent4d.hpp.

template<typename Block>
GenericMultiComponent4d< Block > & slip::GenericMultiComponent4d< Block >::operator= ( const Block &  val)
inline

Affects all the element of the GenericMultiComponent4d by val.

Parameters
valaffectation value
Returns
reference to corresponding GenericMultiComponent4d

Definition at line 7333 of file GenericMultiComponent4d.hpp.

template<typename Block>
GenericMultiComponent4d< Block > & slip::GenericMultiComponent4d< Block >::operator= ( const typename Block::value_type &  val)
inline

Affects all the element of the GenericMultiComponent4d by val.

Parameters
valaffectation value
Returns
reference to corresponding GenericMultiComponent4d

Definition at line 7341 of file GenericMultiComponent4d.hpp.

template<typename Block>
pointer** slip::GenericMultiComponent4d< Block >::operator[] ( const size_type  t)

Subscript access to the slice datas contained in the GenericMultiComponent4d.

Parameters
tThe index of the slab for which data should be accessed.
Returns
Read/write pointer to the slab data.
Precondition
k < slabs()

This operator allows for easy, 4d array-style, data access. Note that data access with this operator is unchecked and out_of_range lookups are not defined.

template<typename Block>
const_pointer* const* slip::GenericMultiComponent4d< Block >::operator[] ( const size_type  t) const

Subscript access to the slice datas contained in the GenericMultiComponent4d.

Parameters
tThe index of the slab for which data should be accessed.
Returns
Read-only (constant) pointer* to the slab data.
Precondition
t < slabs()

This operator allows for easy, 4d array-style, data access. Note that data access with this operator is unchecked and out_of_range lookups are not defined.

template<typename Block >
GenericMultiComponent4d< Block >::reverse_iterator slip::GenericMultiComponent4d< Block >::rbegin ( )
inline

Returns a read/write reverse iterator that points to the last element in the GenericMultiComponent4d. Iteration is done in reverse element order.

Returns
reverse begin iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:

Definition at line 5521 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_reverse_iterator slip::GenericMultiComponent4d< Block >::rbegin ( ) const
inline

Returns a read-only (constant) reverse iterator that points to the last element in the GenericMultiComponent4d. Iteration is done in reverse element order.

Returns
const reverse begin iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:

Definition at line 5528 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::reverse_component_iterator slip::GenericMultiComponent4d< Block >::rbegin ( const std::size_t  component)
inline

Returns a read/write iterator that points to the first element in the GenericMultiComponent4d. Iteration is done in ordinary element order.

Parameters
componentThe component number.
Returns
begin reverse_component_iterator value

Definition at line 6447 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_reverse_component_iterator slip::GenericMultiComponent4d< Block >::rbegin ( const std::size_t  component) const
inline

Returns a read-only (constant) iterator that points to the first element in the GenericMultiComponent4d. Iteration is done in ordinary element order.

Parameters
componentThe component number.
Returns
const begin reverse_component_iterator value

Definition at line 6454 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::reverse_iterator slip::GenericMultiComponent4d< Block >::rend ( )
inline

Returns a read/write reverse iterator that points to one before the first element in the GenericMultiComponent4d. Iteration is done in reverse element order.

Returns
reverse end iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:

Definition at line 5535 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_reverse_iterator slip::GenericMultiComponent4d< Block >::rend ( ) const
inline

Returns a read-only (constant) reverse iterator that points to one before the first element in the GenericMultiComponent4d. Iteration is done in reverse element order.

Returns
const reverse end iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:

Definition at line 5542 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::reverse_component_iterator slip::GenericMultiComponent4d< Block >::rend ( const std::size_t  component)
inline

Returns a read/write iterator that points one past the last element in the GenericMultiComponent4d. Iteration is done in ordinary element order.

Parameters
componentThe component number.
Returns
end reverse_component_iterator value

Definition at line 6461 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_reverse_component_iterator slip::GenericMultiComponent4d< Block >::rend ( const std::size_t  component) const
inline

Returns a read-only (constant) iterator that points one past the last element in the GenericMultiComponent4d. Iteration is done in ordinary element order.

Parameters
componentThe component number.
Returns
const end reverse_component_iterator value

Definition at line 6468 of file GenericMultiComponent4d.hpp.

template<typename Block>
void slip::GenericMultiComponent4d< Block >::resize ( const size_type  slabs,
const size_type  slices,
const size_type  rows,
const size_type  cols,
const Block &  val = Block() 
)
inline

Resizes a GenericMultiComponent4d.

Parameters
slabsfirst dimension of the GenericMultiComponent4d
slicessecond dimension of the GenericMultiComponent4d
rowsthird dimension of the GenericMultiComponent4d
colsfourth dimension of the GenericMultiComponent4d
valnew value for all the elements

Definition at line 5472 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::reverse_iterator4d slip::GenericMultiComponent4d< Block >::rfirst_front_upper_left ( )
inline

Returns a read/write reverse iterator4d. It points to the last back bottom right element of the GenericMultiComponent4d. Iteration is done within the GenericMultiComponent4d in the reverse order.

Returns
reverse_iterator4d value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Example
//Print M in reverse order
std::copy(M.rfirst_front_upper_left(),M.rlast_back_bottom_right(),
std::ostream_iterator<slip::color<double> >(std::cout," "));

Definition at line 6241 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_reverse_iterator4d slip::GenericMultiComponent4d< Block >::rfirst_front_upper_left ( ) const
inline

Returns a read only reverse iterator4d that points. It points to the last back bottom right element of the GenericMultiComponent4d. Iteration is done within the GenericMultiComponent4d in the reverse order.

Returns
const_reverse_iterator4d value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Example
//Print M in reverse order
std::copy(M.rfirst_front_upper_left(),M.rlast_back_bottom_right(),
std::ostream_iterator<slip::color<double> >(std::cout," "));

Definition at line 6255 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::reverse_iterator4d slip::GenericMultiComponent4d< Block >::rfirst_front_upper_left ( const Box4d< int > &  box)
inline

Returns a read/write reverse iterator4d. It points to the last back bottom right element of the Box4d associated to the GenericMultiComponent4d. Iteration is done in the reverse order.

Parameters
boxa Box4d defining the range of indices to iterate within the GenericMultiComponent4d.
Precondition
The box indices must be inside the range of the GenericMultiComponent4d ones.
Returns
reverse iterator4d value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Example
slip::Box4d<int> b(1,1,1,1,2,2,3,3);
//Print M within a box in reverse order
std::copy(M.rfirst_front_upper_left(b),M.rlast_back_bottom_right(b),
std::ostream_iterator<slip::color<double> >(std::cout," "));

Definition at line 6303 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_reverse_iterator4d slip::GenericMultiComponent4d< Block >::rfirst_front_upper_left ( const Box4d< int > &  box) const
inline

Returns a read only reverse iterator4d. It points to the last back bottom right element of the Box4d box associated to the GenericMultiComponent4d. Iteration is done in the reverse order.

Parameters
boxA Box4d defining the range of indices to iterate within the GenericMultiComponent4d.
Precondition
The box indices must be inside the range of the GenericMultiComponent4d ones.
Returns
const reverse iterator4d value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Example
slip::Box4d<int> b(1,1,1,1,2,2,3,3);
//Print M within a box in reverse order
std::copy(M.rfirst_front_upper_left(b),M.rlast_back_bottom_right(b),
std::ostream_iterator<slip::color<double> >(std::cout," "));

Definition at line 6317 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::reverse_iterator4d_range slip::GenericMultiComponent4d< Block >::rfirst_front_upper_left ( const slip::Range< int > &  slab_range,
const slip::Range< int > &  slice_range,
const slip::Range< int > &  row_range,
const slip::Range< int > &  col_range 
)
inline

Returns a read/write reverse_iterator4d_range that points to the past the last back bottom right element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d. Iteration is done in the reverse order.

Parameters
slab_rangeThe range of the slabs.
slice_rangeThe range of the slices.
row_rangeThe range of the rows.
col_rangeThe range of the columns.
Precondition
slab_range, slice_range, row_range and col_range must be valid.
The ranges indices must be inside the ranges of the GenericMultiComponent4d ones.
Returns
reverse_iterator4d_range value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Example
slip::Range<int> fr(0,2,2);
slip::Range<int> sr(0,2,2);
slip::Range<int> rr(0,3,2);
slip::Range<int> cr(0,4,2);
//Print M within a range in reverse order
std::copy(M.rfirst_front_upper_left(fr,sr,rr,cr),M.rlast_back_bottom_right(fr,sr,rr,cr),
std::ostream_iterator<slip::color<double> >(std::cout," "));

Definition at line 6373 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_reverse_iterator4d_range slip::GenericMultiComponent4d< Block >::rfirst_front_upper_left ( const slip::Range< int > &  slab_range,
const slip::Range< int > &  slice_range,
const slip::Range< int > &  row_range,
const slip::Range< int > &  col_range 
) const
inline

Returns a read-only reverse_iterator4d_range that points to the past the last back bottom right element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d. Iteration is done in the reverse order.

Parameters
slab_rangeThe range of the slabs.
slice_rangeThe range of the slices.
row_rangeThe range of the rows.
col_rangeThe range of the columns.
Precondition
slab_range, slice_range, row_range and col_range must be valid.
The ranges indices must be inside the ranges of the GenericMultiComponent4d ones.
Returns
const_reverse_iterator4d_range value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Example
slip::Range<int> fr(0,2,2);
slip::Range<int> sr(0,2,2);
slip::Range<int> rr(0,3,2);
slip::Range<int> cr(0,4,2);
//Print M within a range in reverse order
std::copy(M.rfirst_front_upper_left(fr,sr,rr,cr),M.rlast_back_bottom_right(fr,sr,rr,cr),
std::ostream_iterator<slip::color<double> >(std::cout," "));

Definition at line 6391 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::reverse_component_iterator4d slip::GenericMultiComponent4d< Block >::rfirst_front_upper_left ( const std::size_t  component)
inline

Returns a read/write reverse component iterator4d. It points to the last back bottom right element of the GenericMultiComponent4d. Iteration is done within the GenericMultiComponent4d in the reverse order.

Parameters
componentThe component number.
Returns
the reverse_component_iterator4d value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Example :
//copy the first component of the elements of A1 in A2 in reverse order
std::copy(A1.rfirst_front_upper_left(0),A1.rlast_back_bottom_right(0),A2.rfirst_front_upper_left(0));

Definition at line 7115 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_reverse_component_iterator4d slip::GenericMultiComponent4d< Block >::rfirst_front_upper_left ( const std::size_t  component) const
inline

Returns a read only reverse component iterator4d that points. It points to the last back bottom right element of the GenericMultiComponent4d. Iteration is done within the GenericMultiComponent4d in the reverse order.

Parameters
componentThe component number.
Returns
the const_reverse_component_iterator4d value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Example :
//copy the first component of the elements of A1 in A2 in reverse order
std::copy(A1.rfirst_front_upper_left(0),A1.rlast_back_bottom_right(0),A2.rfirst_front_upper_left(0));

Definition at line 7132 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::reverse_component_iterator4d slip::GenericMultiComponent4d< Block >::rfirst_front_upper_left ( const std::size_t  component,
const Box4d< int > &  box 
)
inline

Returns a read/write reverse component iterator4d. It points to the last back bottom right element of the Box4d associated to the GenericMultiComponent4d. Iteration is done in the reverse order.

Parameters
componentThe component number.
boxa Box4d defining the range of indices to iterate within the GenericMultiComponent4d.
Precondition
The box indices must be inside the range of the GenericMultiComponent4d ones.
Returns
the reverse_component_iterator4d value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.

Definition at line 7187 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_reverse_component_iterator4d slip::GenericMultiComponent4d< Block >::rfirst_front_upper_left ( const std::size_t  component,
const Box4d< int > &  box 
) const
inline

Returns a read only reverse component iterator4d. It points to the last back bottom right element of the Box4d box associated to the GenericMultiComponent4d. Iteration is done in the reverse order.

Parameters
componentThe component number.
boxA Box4d defining the range of indices to iterate within the GenericMultiComponent4d.
Precondition
The box indices must be inside the range of the GenericMultiComponent4d ones.
Returns
the const_reverse_component_iterator4d value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.

Definition at line 7206 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::reverse_component_iterator4d_range slip::GenericMultiComponent4d< Block >::rfirst_front_upper_left ( const std::size_t  component,
const slip::Range< int > &  slab_range,
const slip::Range< int > &  slice_range,
const slip::Range< int > &  row_range,
const slip::Range< int > &  col_range 
)
inline

Returns a read/write reverse_component_iterator4d_range. It points to the last back bottom right element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d.

Parameters
componentThe component number.
slab_rangeThe range of the slabs.
slice_rangeThe range of the slices.
row_rangeThe range of the rows.
col_rangeThe range of the columns.
Precondition
slab_range, slice_range, row_range and col_range must be valid.
The ranges indices must be inside the ranges of the GenericMultiComponent4d ones.
Returns
the reverse_component_iterator4d_range value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.

Definition at line 7269 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_reverse_component_iterator4d_range slip::GenericMultiComponent4d< Block >::rfirst_front_upper_left ( const std::size_t  component,
const slip::Range< int > &  slab_range,
const slip::Range< int > &  slice_range,
const slip::Range< int > &  row_range,
const slip::Range< int > &  col_range 
) const
inline

Returns a read/write reverse_const_component_iterator4d_range. It points to the last back bottom right element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d.

Parameters
componentThe component number.
slab_rangeThe range of the slabs.
slice_rangeThe range of the slices.
row_rangeThe range of the rows.
col_rangeThe range of the columns.
Precondition
slab_range, slice_range, row_range and col_range must be valid.
The ranges indices must be inside the ranges of the GenericMultiComponent4d ones.
Returns
the const_reverse_component_iterator4d_range value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.

Definition at line 7290 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::reverse_iterator4d slip::GenericMultiComponent4d< Block >::rlast_back_bottom_right ( )
inline

Returns a read/write reverse iterator4d. It points to past the first front upper left element of the GenericMultiComponent4d. Iteration is done in the reverse order.

Returns
reverse iterator4d value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Example
//Print M in reverse order
std::copy(M.rfirst_front_upper_left(),M.rlast_back_bottom_right(),
std::ostream_iterator<slip::color<double> >(std::cout," "));

Definition at line 6248 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_reverse_iterator4d slip::GenericMultiComponent4d< Block >::rlast_back_bottom_right ( ) const
inline

Returns a read only reverse iterator4d. It points to past the first front upper left element of the GenericMultiComponent4d. Iteration is done in the reverse order.

Returns
const reverse iterator4d value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Example
//Print M in reverse order
std::copy(M.rfirst_front_upper_left(),M.rlast_back_bottom_right(),
std::ostream_iterator<slip::color<double> >(std::cout," "));

Definition at line 6263 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::reverse_iterator4d slip::GenericMultiComponent4d< Block >::rlast_back_bottom_right ( const Box4d< int > &  box)
inline

Returns a read/write reverse iterator4d. It points to one before the first front upper left element of the Box4d box associated to the GenericMultiComponent4d.

Parameters
boxA Box4d defining the range of indices to iterate within the GenericMultiComponent4d.
Precondition
The box indices must be inside the range of the GenericMultiComponent4d ones.
Returns
reverse iterator4d value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Example
slip::Box4d<int> b(1,1,1,1,2,2,3,3);
//Print M within a box in reverse order
std::copy(M.rfirst_front_upper_left(b),M.rlast_back_bottom_right(b),
std::ostream_iterator<slip::color<double> >(std::cout," "));

Definition at line 6310 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_reverse_iterator4d slip::GenericMultiComponent4d< Block >::rlast_back_bottom_right ( const Box4d< int > &  box) const
inline

Returns a read-only reverse iterator4d. It points to one before the first front upper left element of the Box4d box associated to the GenericMultiComponent4d.

Parameters
boxA Box4d defining the range of indices to iterate within the GenericMultiComponent4d.
Precondition
The box indices must be inside the range of the GenericMultiComponent4d ones.
Returns
const reverse iterator4d value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Example
slip::Box4d<int> b(1,1,1,1,2,2,3,3);
//Print M within a box in reverse order
std::copy(M.rfirst_front_upper_left(b),M.rlast_back_bottom_right(b),
std::ostream_iterator<slip::color<double> >(std::cout," "));

Definition at line 6325 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::reverse_iterator4d_range slip::GenericMultiComponent4d< Block >::rlast_back_bottom_right ( const slip::Range< int > &  slab_range,
const slip::Range< int > &  slice_range,
const slip::Range< int > &  row_range,
const slip::Range< int > &  col_range 
)
inline

Returns a read/write reverse_iterator4d_range that points to one before the first front upper left element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d. Iteration is done in the reverse order.

Parameters
slab_rangeThe range of the slabs.
slice_rangeThe range of the slices.
row_rangeThe range of the rows.
col_rangeThe range of the columns.
Precondition
slab_range, slice_range, row_range and col_range must be valid.
The ranges indices must be inside the ranges of the GenericMultiComponent4d ones.
Returns
reverse_iterator4d_range value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Example
slip::Range<int> fr(0,2,2);
slip::Range<int> sr(0,2,2);
slip::Range<int> rr(0,3,2);
slip::Range<int> cr(0,4,2);
//Print M within a range in reverse order
std::copy(M.rfirst_front_upper_left(fr,sr,rr,cr),M.rlast_back_bottom_right(fr,sr,rr,cr),
std::ostream_iterator<slip::color<double> >(std::cout," "));

Definition at line 6382 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_reverse_iterator4d_range slip::GenericMultiComponent4d< Block >::rlast_back_bottom_right ( const slip::Range< int > &  slab_range,
const slip::Range< int > &  slice_range,
const slip::Range< int > &  row_range,
const slip::Range< int > &  col_range 
) const
inline

Returns a read-only reverse_iterator4d_range that points to one before the first front upper left element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d. Iteration is done in the reverse order.

Parameters
slab_rangeThe range of the slabs.
slice_rangeThe range of the slices.
row_rangeThe range of the rows.
col_rangeThe range of the columns.
Precondition
slab_range, slice_range, row_range and col_range must be valid.
The ranges indices must be inside the ranges of the GenericMultiComponent4d ones.
Returns
const_reverse_iterator4d_range value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Example
slip::Range<int> fr(0,2,2);
slip::Range<int> sr(0,2,2);
slip::Range<int> rr(0,3,2);
slip::Range<int> cr(0,4,2);
//Print M within a range in reverse order
std::copy(M.rfirst_front_upper_left(fr,sr,rr,cr),M.rlast_back_bottom_right(fr,sr,rr,cr),
std::ostream_iterator<slip::color<double> >(std::cout," "));

Definition at line 6401 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::reverse_component_iterator4d slip::GenericMultiComponent4d< Block >::rlast_back_bottom_right ( const std::size_t  component)
inline

Returns a read/write reverse component iterator4d. It points to past the first front upper left element of the GenericMultiComponent4d. Iteration is done in the reverse order.

Parameters
componentThe component number.
Returns
the reverse_component_iterator4d value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Example :
//copy the first component of the elements of A1 in A2 in reverse order
std::copy(A1.rfirst_front_upper_left(0),A1.rlast_back_bottom_right(0),A2.rfirst_front_upper_left(0));

Definition at line 7124 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_reverse_component_iterator4d slip::GenericMultiComponent4d< Block >::rlast_back_bottom_right ( const std::size_t  component) const
inline

Returns a read only reverse component iterator4d. It points to past the first front upper left element of the GenericMultiComponent4d. Iteration is done in the reverse order.

Parameters
componentThe component number.
Returns
the const_reverse_component_iterator4d value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.
Example :
//copy the first component of the elements of A1 in A2 in reverse order
std::copy(A1.rfirst_front_upper_left(0),A1.rlast_back_bottom_right(0),A2.rfirst_front_upper_left(0));

Definition at line 7141 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::reverse_component_iterator4d slip::GenericMultiComponent4d< Block >::rlast_back_bottom_right ( const std::size_t  component,
const Box4d< int > &  box 
)
inline

Returns a read/write reverse component iterator4d. It points to one before the first front upper left element of the Box4d box associated to the GenericMultiComponent4d.

Parameters
componentThe component number.
boxA Box4d defining the range of indices to iterate within the GenericMultiComponent4d.
Precondition
The box indices must be inside the range of the GenericMultiComponent4d ones.
Returns
the reverse_component_iterator4d value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.

Definition at line 7197 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_reverse_component_iterator4d slip::GenericMultiComponent4d< Block >::rlast_back_bottom_right ( const std::size_t  component,
const Box4d< int > &  box 
) const
inline

Returns a read-only reverse component iterator4d. It points to one before the first front upper left element of the Box4d box associated to the GenericMultiComponent4d.

Parameters
componentThe component number.
boxA Box4d defining the range of indices to iterate within the GenericMultiComponent4d.
Precondition
The box indices must be inside the range of the GenericMultiComponent4d ones.
Returns
the const_reverse_component_iterator4d value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.

Definition at line 7216 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::reverse_component_iterator4d_range slip::GenericMultiComponent4d< Block >::rlast_back_bottom_right ( const std::size_t  component,
const slip::Range< int > &  slab_range,
const slip::Range< int > &  slice_range,
const slip::Range< int > &  row_range,
const slip::Range< int > &  col_range 
)
inline

Returns a read/write reverse_component_iterator4d_range. It points to one before the first front upper left element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d.

Parameters
componentThe component number.
slab_rangeThe range of the slabs.
slice_rangeThe range of the slices.
row_rangeThe range of the rows.
col_rangeThe range of the columns.
Precondition
slab_range, slice_range, row_range and col_range must be valid.
The ranges indices must be inside the ranges of the GenericMultiComponent4d ones.
Returns
the reverse_component_iterator4d_range value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.

Definition at line 7280 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::const_reverse_component_iterator4d_range slip::GenericMultiComponent4d< Block >::rlast_back_bottom_right ( const std::size_t  component,
const slip::Range< int > &  slab_range,
const slip::Range< int > &  slice_range,
const slip::Range< int > &  row_range,
const slip::Range< int > &  col_range 
) const
inline

Returns a read/write reverse_const_component_iterator4d_range. It points to one before the first front upper left element of the ranges slab_range, slice_range, row_range and col_range associated to the GenericMultiComponent4d.

Parameters
componentThe component number.
slab_rangeThe range of the slabs.
slice_rangeThe range of the slices.
row_rangeThe range of the rows.
col_rangeThe range of the columns.
Precondition
slab_range, slice_range, row_range and col_range must be valid.
The ranges indices must be inside the ranges of the GenericMultiComponent4d ones.
Returns
the const_reverse_component_iterator4d_range value
Remarks
This iterator is compatible with BidirectionalIterator algorithms.

Definition at line 7301 of file GenericMultiComponent4d.hpp.

template<typename Block>
row_iterator slip::GenericMultiComponent4d< Block >::row_begin ( const size_type  slab,
const size_type  slice,
const size_type  row 
)

Returns a read/write iterator that points to the first element of the row row of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done in ordinary element order.

Parameters
slabslab coordinate of the line
sliceThe index of the slice.
rowThe index of the row.
Returns
begin row_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
template<typename Block>
const_row_iterator slip::GenericMultiComponent4d< Block >::row_begin ( const size_type  slab,
const size_type  slice,
const size_type  row 
) const

Returns a read_only iterator that points to the first element of the row row of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done in ordinary element order.

Parameters
slabslab coordinate of the line
sliceThe index of the slice.
rowThe index of the row.
Returns
begin const_row_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
template<typename Block>
row_range_iterator slip::GenericMultiComponent4d< Block >::row_begin ( const size_type  slab,
const size_type  slice,
const size_type  row,
const slip::Range< int > &  range 
)

Returns a read/write iterator that points to the first element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
slabthe index of the slab containing the row to iterate.
slicethe index of the slice containing the row to iterate.
rowthe index of the row to iterate.
rangeRange of the row to iterate.
Returns
begin row_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
row must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the 3rd row of the 5th slab
//and the 4th slice of A1 in S.
std::copy(A1.row_begin(5,4,3,range),A1.row_end(5,4,3,range),S.begin());
template<typename Block>
const_row_range_iterator slip::GenericMultiComponent4d< Block >::row_begin ( const size_type  slab,
const size_type  slice,
const size_type  row,
const slip::Range< int > &  range 
) const

Returns a read-only iterator that points to the first element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
slabthe index of the slab containing the row to iterate.
slicethe index of the slice containing the row to iterate.
rowthe index of the row to iterate.
rangeRange of the row to iterate.
Returns
begin const_row_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
row must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the 3rd row of the 5th slab
//and the 4th slice of A1 in S.
std::copy(A1.row_begin(5,4,3,range),A1.row_end(5,4,3,range),S.begin());
template<typename Block>
component_row_iterator slip::GenericMultiComponent4d< Block >::row_begin ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  row 
)

Returns a read/write iterator that points to the component component of the first element of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order.

Parameters
componentThe component number.
slabthe index of the slab.
slicethe index of the slice.
rowthe index of the row.
Returns
begin component_component_row_iterator value
template<typename Block>
const_component_row_iterator slip::GenericMultiComponent4d< Block >::row_begin ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  row 
) const

Returns a read_only iterator that points to the component component of the first element of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order.

Parameters
componentThe component number.
slabthe index of the slab.
slicethe index of the slice.
rowthe index of the row.
Returns
begin const_component_row_iterator value
template<typename Block>
component_row_range_iterator slip::GenericMultiComponent4d< Block >::row_begin ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  row,
const slip::Range< int > &  range 
)

Returns a read/write iterator that points to the component component of the first element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
componentThe component number.
slabThe index of the slab.
sliceThe index of the slice.
rowThe index of the row to iterate.
rangeRange of the row to iterate.
Returns
begin component_row_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
row must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the 3rd
//row of the 4th slab and the 3rd slice of A1 in S.
std::copy(A1.row_begin(0,4,3,3,range),A1.row_end(0,4,3,3,range),S.begin());
template<typename Block>
const_component_row_range_iterator slip::GenericMultiComponent4d< Block >::row_begin ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  row,
const slip::Range< int > &  range 
) const

Returns a read-only iterator that points to the component component of the first element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
componentThe component number.
slabThe index of the slab.
sliceThe index of the slice.
rowThe index of the row to iterate.
rangeRange of the row to iterate.
Returns
begin const_component_row_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
row must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the 3rd
//row of the 4th slab and the 3rd slice of A1 in S.
std::copy(A1.row_begin(0,4,3,3,range),A1.row_end(0,4,3,3,range),S.begin());
template<typename Block>
row_iterator slip::GenericMultiComponent4d< Block >::row_end ( const size_type  slab,
const size_type  slice,
const size_type  row 
)

Returns a read/write iterator that points to the past-the-end element of the row row of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done in ordinary element order.

Parameters
slabslab coordinate of the line
sliceThe index of the slice.
rowThe index of the row.
Returns
end row_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
template<typename Block>
const_row_iterator slip::GenericMultiComponent4d< Block >::row_end ( const size_type  slab,
const size_type  slice,
const size_type  row 
) const

Returns a read_only iterator that points to the past-the-end element of the row row of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done in ordinary element order.

Parameters
slabslab coordinate of the line
sliceThe index of the slice.
rowThe index of the row.
Returns
end const_row_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
template<typename Block>
row_range_iterator slip::GenericMultiComponent4d< Block >::row_end ( const size_type  slab,
const size_type  slice,
const size_type  row,
const slip::Range< int > &  range 
)

Returns a read/write iterator that points one past the end element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
slabthe index of the slab containing the row to iterate.
slicethe index of the slice containing the row to iterate.
rowthe index of the row to iterate.
rangeRange of the row to iterate.
Returns
end row_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
row must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the 3rd row of the 5th slab
//and the 4th slice of A1 in S.
std::copy(A1.row_begin(5,4,3,range),A1.row_end(5,4,3,range),S.begin());
template<typename Block>
const_row_range_iterator slip::GenericMultiComponent4d< Block >::row_end ( const size_type  slab,
const size_type  slice,
const size_type  row,
const slip::Range< int > &  range 
) const

Returns a read_only iterator that points one past the last element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
slabthe index of the slab containing the row to iterate.
slicethe index of the slice containing the row to iterate.
rowthe index of the row to iterate.
rangeRange of the row to iterate.
Returns
begin const_row_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
row must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the 3rd row of the 5th slab
//and the 4th slice of A1 in S.
std::copy(A1.row_begin(5,4,3,range),A1.row_end(5,4,3,range),S.begin());
template<typename Block>
component_row_iterator slip::GenericMultiComponent4d< Block >::row_end ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  row 
)

Returns a read/write iterator that points to the component component of the past-the-end element of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order.

Parameters
componentThe component number.
slabthe index of the slab.
slicethe index of the slice.
rowthe index of the row.
Returns
end component_row_iterator value
template<typename Block>
const_component_row_iterator slip::GenericMultiComponent4d< Block >::row_end ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  row 
) const

Returns a read_only iterator that points to the component component of the past-the-end element of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order.

Parameters
componentThe component number.
slabthe index of the slab.
slicethe index of the slice.
rowthe index of the row.
componentThe component number.
Returns
end const_component_row_iterator value
template<typename Block>
component_row_range_iterator slip::GenericMultiComponent4d< Block >::row_end ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  row,
const slip::Range< int > &  range 
)

Returns a read/write iterator that points to the component component of the past the end element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
componentThe component number.
slabThe index of the slab.
sliceThe index of the slice.
rowThe index of the row to iterate.
rangeRange of the row to iterate.
Returns
end component_row_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
row must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the 3rd
//row of the 4th slab and the 3rd slice of A1 in S.
std::copy(A1.row_begin(0,4,3,3,range),A1.row_end(0,4,3,3,range),S.begin());
template<typename Block>
const_component_row_range_iterator slip::GenericMultiComponent4d< Block >::row_end ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  row,
const slip::Range< int > &  range 
) const

Returns a read_only iterator that points to the component component of the past the last element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
componentThe component number.
slabThe index of the slab.
sliceThe index of the slice.
rowRow to iterate.
rangeRange of the row to iterate
Returns
begin const_component_row_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
row must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the 3rd
//row of the 4th slab and the 3rd slice of A1 in S.
std::copy(A1.row_begin(0,4,3,3,range),A1.row_end(0,4,3,3,range),S.begin());
template<typename Block>
reverse_row_iterator slip::GenericMultiComponent4d< Block >::row_rbegin ( const size_type  slab,
const size_type  slice,
const size_type  row 
)

Returns a read/write reverse iterator that points to the last element of the row row of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done in reverse element order.

Parameters
slabslab coordinate of the line
sliceThe index of the slice.
rowThe index of the row.
Returns
begin reverse_row_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
template<typename Block>
const_reverse_row_iterator slip::GenericMultiComponent4d< Block >::row_rbegin ( const size_type  slab,
const size_type  slice,
const size_type  row 
) const

Returns a read_only reverse iterator that points to the last element of the row row of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done in reverse element order.

Parameters
slabslab coordinate of the line
sliceThe index of the slice.
rowThe index of the row.
Returns
begin const_reverse_row_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
template<typename Block>
reverse_row_range_iterator slip::GenericMultiComponent4d< Block >::row_rbegin ( const size_type  slab,
const size_type  slice,
const size_type  row,
const slip::Range< int > &  range 
)

Returns a read-write iterator that points to the last element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range.

Parameters
slabthe index of the slab containing the row to iterate.
slicethe index of the slice containing the row to iterate.
rowthe index of the row to iterate.
rangeRange of the row to iterate.
Returns
reverse_row_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
row must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the 3rd row of the 5th slab
//and the 4th slice of A1 in S in reverse order.
std::copy(A1.row_rbegin(5,4,3,range),A1.row_rend(5,4,3,range),S.begin());
template<typename Block>
const_reverse_row_range_iterator slip::GenericMultiComponent4d< Block >::row_rbegin ( const size_type  slab,
const size_type  slice,
const size_type  row,
const slip::Range< int > &  range 
) const

Returns a read-only iterator that points to the last element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range.

Parameters
slabthe index of the slab containing the row to iterate.
slicethe index of the slice containing the row to iterate.
rowthe index of the row to iterate.
rangeRange of the row to iterate.
Returns
begin const_reverse_row_range_iterator value
Precondition
row must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the 3rd row of the 5th slab
//and the 4th slice of A1 in S in reverse order.
std::copy(A1.row_rbegin(5,4,3,range),A1.row_rend(5,4,3,range),S.begin());
template<typename Block>
reverse_component_row_iterator slip::GenericMultiComponent4d< Block >::row_rbegin ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  row 
)

Returns a read/write reverse iterator that points to the component component of the last element of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in reverse element order.

Parameters
componentThe component number.
slabthe index of the slab.
slicethe index of the slice.
rowthe index of the row.
Returns
begin reverse_component_row_iterator value
template<typename Block>
const_reverse_component_row_iterator slip::GenericMultiComponent4d< Block >::row_rbegin ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  row 
) const

Returns a read_only reverse iterator that points to the component component of the last element of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in reverse element order.

Parameters
componentThe component number.
slabthe index of the slab.
slicethe index of the slice.
rowthe index of the row.
Returns
begin const_reverse_component_row_iterator value
template<typename Block>
reverse_component_row_range_iterator slip::GenericMultiComponent4d< Block >::row_rbegin ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  row,
const slip::Range< int > &  range 
)

Returns a read-write iterator that points to the component component of the last element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range.

Parameters
componentThe component number.
slabThe index of the slab.
sliceThe index of the slice.
rowThe index of the row to iterate.
rangeRange of the row to iterate.
Returns
reverse_component_row_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
row must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the 3rd
//row of the 4th slab and the 3rd slice of A1 in S in reverse order.
std::copy(A1.row_rbegin(0,4,3,3,range),A1.row_rend(0,4,3,3,range),S.begin());
template<typename Block>
const_reverse_component_row_range_iterator slip::GenericMultiComponent4d< Block >::row_rbegin ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  row,
const slip::Range< int > &  range 
) const

Returns a read-only iterator that points to the component component of the last element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range.

Parameters
componentThe component number.
slabThe index of the slab.
sliceThe index of the slice.
rowThe index of the row to iterate.
rangeRange of the row to iterate
Returns
begin const_reverse_component_row_range_iterator value
Precondition
row must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the 3rd
//row of the 4th slab and the 3rd slice of A1 in S in reverse order.
std::copy(A1.row_rbegin(0,4,3,3,range),A1.row_rend(0,4,3,3,range),S.begin());
template<typename Block>
reverse_row_iterator slip::GenericMultiComponent4d< Block >::row_rend ( const size_type  slab,
const size_type  slice,
const size_type  row 
)

Returns a read/write reverse iterator that points to the first element of the row row of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done in reverse element order.

Parameters
slabslab coordinate of the line
sliceThe index of the slice.
rowThe index of the row.
Returns
end reverse_row_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
template<typename Block>
const_reverse_row_iterator slip::GenericMultiComponent4d< Block >::row_rend ( const size_type  slab,
const size_type  slice,
const size_type  row 
) const

Returns a read_only reverse iterator that points to the first element of the row row of the slice slice and of the slab slab in the GenericMultiComponent4d. Iteration is done in reverse element order.

Parameters
slabslab coordinate of the line
sliceThe index of the slice.
rowThe index of the row.
Returns
end const_reverse_row_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
template<typename Block>
reverse_row_range_iterator slip::GenericMultiComponent4d< Block >::row_rend ( const size_type  slab,
const size_type  slice,
const size_type  row,
const slip::Range< int > &  range 
)

Returns a read-write iterator that points one before the first element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range.

Parameters
slabthe index of the slab containing the row to iterate.
slicethe index of the slice containing the row to iterate.
rowthe index of the row to iterate.
rangeRange of the row to iterate.
Returns
reverse_row_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
row must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the 3rd row of the 5th slab
//and the 4th slice of A1 in S in reverse order.
std::copy(A1.row_rbegin(5,4,3,range),A1.row_rend(5,4,3,range),S.begin());
template<typename Block>
const_reverse_row_range_iterator slip::GenericMultiComponent4d< Block >::row_rend ( const size_type  slab,
const size_type  slice,
const size_type  row,
const slip::Range< int > &  range 
) const

Returns a read-only iterator that points one before the first element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range.

Parameters
slabthe index of the slab containing the row to iterate.
slicethe index of the slice containing the row to iterate.
rowthe index of the row to iterate.
rangeRange of the row to iterate.
Returns
const_reverse_row_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
row must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the 3rd row of the 5th slab
//and the 4th slice of A1 in S in reverse order.
std::copy(A1.row_rbegin(5,4,3,range),A1.row_rend(5,4,3,range),S.begin());
template<typename Block>
reverse_component_row_iterator slip::GenericMultiComponent4d< Block >::row_rend ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  row 
)

Returns a read/write reverse iterator that points to the component component of the before the first element of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in reverse element order.

Parameters
componentThe component number.
slabthe index of the slab.
slicethe index of the slice.
rowthe index of the row.
Returns
end reverse_component_row_iterator value
template<typename Block>
const_reverse_component_row_iterator slip::GenericMultiComponent4d< Block >::row_rend ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  row 
) const

Returns a read_only reverse iterator that points to the component component of the before the first element of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in reverse element order.

Parameters
componentThe component number.
slabthe index of the slab.
slicethe index of the slice.
rowthe index of the row.
Returns
end const_reverse_component_row_iterator value
template<typename Block>
reverse_component_row_range_iterator slip::GenericMultiComponent4d< Block >::row_rend ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  row,
const slip::Range< int > &  range 
)

Returns a read-write iterator that points to the component component of the before the first element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range.

Parameters
componentThe component number.
slabThe index of the slab.
sliceThe index of the slice.
rowThe index of the row to iterate.
rangeRange of the row to iterate.
Returns
reverse_component_row_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
row must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the 3rd
//row of the 4th slab and the 3rd slice of A1 in S in reverse order.
std::copy(A1.row_rbegin(0,4,3,3,range),A1.row_rend(0,4,3,3,range),S.begin());
template<typename Block>
const_reverse_component_row_range_iterator slip::GenericMultiComponent4d< Block >::row_rend ( const std::size_t  component,
const size_type  slab,
const size_type  slice,
const size_type  row,
const slip::Range< int > &  range 
) const

Returns a read-only iterator that points to the component component of the before the first element of the Range range of the row row of the slab slab and the slice slice in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range.

Parameters
componentThe component number.
slabThe index of the slab.
sliceThe index of the slice.
rowThe index of the row to iterate.
rangeRange of the row to iterate
Returns
const_reverse_component_row_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
row must be compatible with the range of the GenericMultiComponent4d.
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the 3rd
//row of the 4th slab and the 3rd slice of A1 in S in reverse order.
std::copy(A1.row_rbegin(0,4,3,3,range),A1.row_rend(0,4,3,3,range),S.begin());
template<typename Block >
GenericMultiComponent4d< Block >::size_type slip::GenericMultiComponent4d< Block >::rows ( ) const
inline

Returns the number of rows (third dimension size) in the GenericMultiComponent4d.

Definition at line 7437 of file GenericMultiComponent4d.hpp.

template<typename Block >
GenericMultiComponent4d< Block >::size_type slip::GenericMultiComponent4d< Block >::size ( ) const
inline

Returns the number of elements in the GenericMultiComponent4d.

Definition at line 7465 of file GenericMultiComponent4d.hpp.

template<typename Block>
slab_iterator slip::GenericMultiComponent4d< Block >::slab_begin ( const size_type  slice,
const size_type  row,
const size_type  col 
)

Returns a read/write iterator that points to the first element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slab number).

Parameters
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
slab_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:
//copy the line defined by the 4th slice, the 3rd row and the 3rd column of A1 in S
std::copy(A1.slab_begin(4,3,3),A1.slab_end(4,3,3),S.begin());
template<typename Block>
const_slab_iterator slip::GenericMultiComponent4d< Block >::slab_begin ( const size_type  slice,
const size_type  row,
const size_type  col 
) const

Returns a read-only (constant) iterator that points to the first element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slab number).

Parameters
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
const_slab_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:
//copy the line defined by the 4th slice, the 3rd row and the 3rd column of A1 in S
std::copy(A1.slab_begin(4,3,3),A1.slab_end(4,3,3),S.begin());
template<typename Block>
slab_range_iterator slip::GenericMultiComponent4d< Block >::slab_begin ( const size_type  slice,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
)

Returns a read/write iterator that points to the first element of the Range range of the line defined by ( slice , row , col ) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
begin slab_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slab dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the line defined by the 4th slice,
//the 3rd row and the 3rd column of A1 in S.
std::copy(A1.slab_begin(4,3,3,range),A1.slab_end(4,3,3,range),S.begin());
template<typename Block>
const_slab_range_iterator slip::GenericMultiComponent4d< Block >::slab_begin ( const size_type  slice,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
) const

Returns a read only (constant) iterator that points to the first element of the Range range of the line defined by ( slice , row , col ) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
begin const_slab_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slab dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the line defined by the 4th slice,
//the 3rd row and the 3rd column of A1 in S.
std::copy(A1.slab_begin(4,3,3,range),A1.slab_end(4,3,3,range),S.begin());
template<typename Block>
component_slab_iterator slip::GenericMultiComponent4d< Block >::slab_begin ( const std::size_t  component,
const size_type  slice,
const size_type  row,
const size_type  col 
)

Returns a read/write iterator that points to the component component of the first element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slab number).

Parameters
componentThe component number.
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
component_slab_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:
//copy the first component of the line defined by the 4th slice,
//the 3rd row and the 3rd column of A1 in S
std::copy(A1.slab_begin(0,4,3,3),A1.slab_end(0,4,3,3),S.begin());
template<typename Block>
const_component_slab_iterator slip::GenericMultiComponent4d< Block >::slab_begin ( const std::size_t  component,
const size_type  slice,
const size_type  row,
const size_type  col 
) const

Returns a read-only (constant) iterator that points to the component component of the first element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slab number).

Parameters
componentThe component number.
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
const_component_slab_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:
//copy the first component of the line defined by the 4th slice,
//the 3rd row and the 3rd column of A1 in S
std::copy(A1.slab_begin(0,4,3,3),A1.slab_end(0,4,3,3),S.begin());
template<typename Block>
component_slab_range_iterator slip::GenericMultiComponent4d< Block >::slab_begin ( const std::size_t  component,
const size_type  slice,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
)

Returns a read/write iterator that points to the component component of the first element of the Range range of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
componentThe component number.
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
begin component_slab_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slab dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the line
//defined by the 4th slice, the 3rd row and the 3rd column of A1 in S.
std::copy(A1.slab_begin(0,4,3,3,range),A1.slab_end(0,4,3,3,range),S.begin());
template<typename Block>
const_component_slab_range_iterator slip::GenericMultiComponent4d< Block >::slab_begin ( const std::size_t  component,
const size_type  slice,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
) const

Returns a read only (constant) iterator that points to the component component of the first element of the Range range of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
componentThe component number.
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
begin const_component_slab_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slab dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the line
//defined by the 4th slice, the 3rd row and the 3rd column of A1 in S.
std::copy(A1.slab_begin(0,4,3,3,range),A1.slab_end(0,4,3,3,range),S.begin());
template<typename Block>
slab_iterator slip::GenericMultiComponent4d< Block >::slab_end ( const size_type  slice,
const size_type  row,
const size_type  col 
)

Returns a read/write iterator that points to the one past the end element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slab number).

Parameters
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
slab_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:
//copy the line defined by the 4th slice, the 3rd row and the 3rd column of A1 in S
std::copy(A1.slab_begin(4,3,3),A1.slab_end(4,3,3),S.begin());
template<typename Block>
const_slab_iterator slip::GenericMultiComponent4d< Block >::slab_end ( const size_type  slice,
const size_type  row,
const size_type  col 
) const

Returns a read-only (constant) iterator that points to the one past the end element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slab number).

Parameters
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
const_slab_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:
//copy the line defined by the 4th slice, the 3rd row and the 3rd column of A1 in S
std::copy(A1.slab_begin(4,3,3),A1.slab_end(4,3,3),S.begin());
template<typename Block>
slab_range_iterator slip::GenericMultiComponent4d< Block >::slab_end ( const size_type  slice,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
)

Returns a read/write iterator that points one past the end element of the Range range of the line defined by ( slice , row , col ) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
end slab_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slab dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the line defined by the 4th slice,
//the 3rd row and the 3rd column of A1 in S.
std::copy(A1.slab_begin(4,3,3,range),A1.slab_end(4,3,3,range),S.begin());
template<typename Block>
const_slab_range_iterator slip::GenericMultiComponent4d< Block >::slab_end ( const size_type  slice,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
) const

Returns a read_only iterator that points one past the last element of the Range range of the line defined by ( slice , row , col ) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
end const_slab_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slab dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the line defined by the 4th slice,
//the 3rd row and the 3rd column of A1 in S.
std::copy(A1.slab_begin(4,3,3,range),A1.slab_end(4,3,3,range),S.begin());
template<typename Block>
component_slab_iterator slip::GenericMultiComponent4d< Block >::slab_end ( const std::size_t  component,
const size_type  slice,
const size_type  row,
const size_type  col 
)

Returns a read/write iterator that points to the component component of the past the end element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slab number).

Parameters
componentThe component number.
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
component_slab_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:
//copy the first component of the line defined by the 4th slice,
//the 3rd row and the 3rd column of A1 in S
std::copy(A1.slab_begin(0,4,3,3),A1.slab_end(0,4,3,3),S.begin());
template<typename Block>
const_component_slab_iterator slip::GenericMultiComponent4d< Block >::slab_end ( const std::size_t  component,
const size_type  slice,
const size_type  row,
const size_type  col 
) const

Returns a read-only (constant) iterator that points to the component component of the past the end element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slab number).

Parameters
componentThe component number.
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
const_component_slab_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:
//copy the first component of the line defined by the 4th slice,
//the 3rd row and the 3rd column of A1 in S
std::copy(A1.slab_begin(0,4,3,3),A1.slab_end(0,4,3,3),S.begin());
template<typename Block>
component_slab_range_iterator slip::GenericMultiComponent4d< Block >::slab_end ( const std::size_t  component,
const size_type  slice,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
)

Returns a read/write iterator that points to the component component of the past the end element of the Range range of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
componentThe component number.
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
end component_slab_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slab dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the line
//defined by the 4th slice, the 3rd row and the 3rd column of A1 in S.
std::copy(A1.slab_begin(0,4,3,3,range),A1.slab_end(0,4,3,3,range),S.begin());
template<typename Block>
const_component_slab_range_iterator slip::GenericMultiComponent4d< Block >::slab_end ( const std::size_t  component,
const size_type  slice,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
) const

Returns a read_only iterator that points to the component component of the past the end element of the Range range of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
componentThe component number.
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
end const_component_slab_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slab dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the line
//defined by the 4th slice, the 3rd row and the 3rd column of A1 in S.
std::copy(A1.slab_begin(0,4,3,3,range),A1.slab_end(0,4,3,3,range),S.begin());
template<typename Block>
reverse_slab_iterator slip::GenericMultiComponent4d< Block >::slab_rbegin ( const size_type  slice,
const size_type  row,
const size_type  col 
)

Returns a read/write iterator that points to the last element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slab number).

Parameters
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
reverse_slab_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:
//copy the line defined by the 4th slice, the 3rd row and the 3rd column of A1
//in S in reverse order
std::copy(A1.slab_rbegin(4,3,3),A1.slab_rend(4,3,3),S.begin());
template<typename Block>
const_reverse_slab_iterator slip::GenericMultiComponent4d< Block >::slab_rbegin ( const size_type  slice,
const size_type  row,
const size_type  col 
) const

Returns a read-only (constant) iterator that points to the last element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slab number).

Parameters
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
const_reverse_slab_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:
//copy the line defined by the 4th slice, the 3rd row and the 3rd column of A1
//in S in reverse order
std::copy(A1.slab_rbegin(4,3,3),A1.slab_rend(4,3,3),S.begin());
template<typename Block>
reverse_slab_range_iterator slip::GenericMultiComponent4d< Block >::slab_rbegin ( const size_type  slice,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
)

Returns a read/write iterator that points to the last element of the Range range of the line defined by ( slice , row , col ) through the slabs in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range.

Parameters
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
begin reverse_slab_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slab dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the line defined by the 4th slice,
//the 3rd row and the 3rd column of A1 in S in reverse order.
std::copy(A1.slab_rbegin(4,3,3,range),A1.slab_rend(4,3,3,range),S.begin());
template<typename Block>
const_reverse_slab_range_iterator slip::GenericMultiComponent4d< Block >::slab_rbegin ( const size_type  slice,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
) const

Returns a read only (constant) iterator that points to the last element of the Range range of the line defined by ( slice , row , col ) through the slabs in the GenericMultiComponent4d. Iteration is done in reverse element order according to the Range.

Parameters
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
begin const_reverse_slab_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slab dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the line defined by the 4th slice,
//the 3rd row and the 3rd column of A1 in S in reverse order.
std::copy(A1.slab_rbegin(4,3,3,range),A1.slab_rend(4,3,3,range),S.begin());
template<typename Block>
reverse_component_slab_iterator slip::GenericMultiComponent4d< Block >::slab_rbegin ( const std::size_t  component,
const size_type  slice,
const size_type  row,
const size_type  col 
)

Returns a read/write iterator that points to the component component of the last element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slab number).

Parameters
componentThe component number.
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
reverse_component_slab_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:
//copy the first component of the line defined by the 4th slice,
//the 3rd row and the 3rd column of A1 in S in reverse order.
std::copy(A1.slab_rbegin(0,4,3,3),A1.slab_rend(0,4,3,3),S.begin());
template<typename Block>
const_reverse_component_slab_iterator slip::GenericMultiComponent4d< Block >::slab_rbegin ( const std::size_t  component,
const size_type  slice,
const size_type  row,
const size_type  col 
) const

Returns a read-only (constant) iterator that points to the component component of the last element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slab number).

Parameters
componentThe component number.
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
const_reverse_component_slab_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:
//copy the first component of the line defined by the 4th slice,
//the 3rd row and the 3rd column of A1 in S in reverse order.
std::copy(A1.slab_rbegin(0,4,3,3),A1.slab_rend(0,4,3,3),S.begin());
template<typename Block>
reverse_component_slab_range_iterator slip::GenericMultiComponent4d< Block >::slab_rbegin ( const std::size_t  component,
const size_type  slice,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
)

Returns a read/write iterator that points to the component component of the last element of the Range range of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range.

Parameters
componentThe component number.
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
begin reverse_component_slab_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slab dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the line
//defined by the 4th slice, the 3rd row and the 3rd column of A1 in S in reverse order.
std::copy(A1.slab_rbegin(0,4,3,3,range),A1.slab_rend(0,4,3,3,range),S.begin());
template<typename Block>
const_reverse_component_slab_range_iterator slip::GenericMultiComponent4d< Block >::slab_rbegin ( const std::size_t  component,
const size_type  slice,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
) const

Returns a read only (constant) iterator that points to the component component of the last element of the Range range of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in reverse element order according to the Range.

Parameters
componentThe component number.
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
begin const_reverse_component_slab_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slab dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the line
//defined by the 4th slice, the 3rd row and the 3rd column of A1 in S in reverse order.
std::copy(A1.slab_rbegin(0,4,3,3,range),A1.slab_rend(0,4,3,3,range),S.begin());
template<typename Block>
reverse_slab_iterator slip::GenericMultiComponent4d< Block >::slab_rend ( const size_type  slice,
const size_type  row,
const size_type  col 
)

Returns a read/write iterator that points to the one before the first element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slab number).

Parameters
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
reverse_slab_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:
//copy the line defined by the 4th slice, the 3rd row and the 3rd column of A1
//in S in reverse order
std::copy(A1.slab_rbegin(4,3,3),A1.slab_rend(4,3,3),S.begin());
template<typename Block>
const_reverse_slab_iterator slip::GenericMultiComponent4d< Block >::slab_rend ( const size_type  slice,
const size_type  row,
const size_type  col 
) const

Returns a read (constant) iterator that points to the one before the first element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slab number).

Parameters
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
const_reverse_slab_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:
//copy the line defined by the 4th slice, the 3rd row and the 3rd column of A1
//in S in reverse order
std::copy(A1.slab_rbegin(4,3,3),A1.slab_rend(4,3,3),S.begin());
template<typename Block>
reverse_slab_range_iterator slip::GenericMultiComponent4d< Block >::slab_rend ( const size_type  slice,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
)

Returns a read/write iterator that points to the first element of the Range range of the line defined by ( slice , row , col ) through the slabs in the GenericMultiComponent4d. Iteration is done in reverse element order according to the Range.

Parameters
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
end reverse_slab_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slab dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the line defined by the 4th slice,
//the 3rd row and the 3rd column of A1 in S in reverse order.
std::copy(A1.slab_rbegin(4,3,3,range),A1.slab_rend(4,3,3,range),S.begin());
template<typename Block>
const_reverse_slab_range_iterator slip::GenericMultiComponent4d< Block >::slab_rend ( const size_type  slice,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
) const

Returns a read_only iterator that points one past the lastto the first element of the Range range of the line defined by ( slice , row , col ) through the slabs in the GenericMultiComponent4d. Iteration is done in reverse element order according to the Range.

Parameters
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
end const_reverse_slab_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slab dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the line defined by the 4th slice,
//the 3rd row and the 3rd column of A1 in S in reverse order.
std::copy(A1.slab_rbegin(4,3,3,range),A1.slab_rend(4,3,3,range),S.begin());
template<typename Block>
reverse_component_slab_iterator slip::GenericMultiComponent4d< Block >::slab_rend ( const std::size_t  component,
const size_type  slice,
const size_type  row,
const size_type  col 
)

Returns a read/write iterator that points to the component component of the before the first element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slab number).

Parameters
componentThe component number.
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
reverse_component_slab_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:
//copy the first component of the line defined by the 4th slice,
//the 3rd row and the 3rd column of A1 in S in reverse order.
std::copy(A1.slab_rbegin(0,4,3,3),A1.slab_rend(0,4,3,3),S.begin());
template<typename Block>
const_reverse_component_slab_iterator slip::GenericMultiComponent4d< Block >::slab_rend ( const std::size_t  component,
const size_type  slice,
const size_type  row,
const size_type  col 
) const

Returns a read (constant) iterator that points to the component component of the before the first element of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slab number).

Parameters
componentThe component number.
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
const_reverse_component_slab_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:
//copy the first component of the line defined by the 4th slice,
//the 3rd row and the 3rd column of A1 in S in reverse order.
std::copy(A1.slab_rbegin(0,4,3,3),A1.slab_rend(0,4,3,3),S.begin());
template<typename Block>
reverse_component_slab_range_iterator slip::GenericMultiComponent4d< Block >::slab_rend ( const std::size_t  component,
const size_type  slice,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
)

Returns a read/write iterator that points to the component component of the before the first element of the Range range of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in reverse element order according to the Range.

Parameters
componentThe component number.
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
end reverse_component_slab_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slab dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the line
//defined by the 4th slice, the 3rd row and the 3rd column of A1 in S in reverse order.
std::copy(A1.slab_rbegin(0,4,3,3,range),A1.slab_rend(0,4,3,3,range),S.begin());
template<typename Block>
const_reverse_component_slab_range_iterator slip::GenericMultiComponent4d< Block >::slab_rend ( const std::size_t  component,
const size_type  slice,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
) const

Returns a read_only iterator that points to the component component of the before the first element of the Range range of the line (slice,row,col) through the slabs in the GenericMultiComponent4d. Iteration is done in reverse element order according to the Range.

Parameters
componentThe component number.
sliceslice coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
end const_reverse_component_slab_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slab dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the line
//defined by the 4th slice, the 3rd row and the 3rd column of A1 in S in reverse order.
std::copy(A1.slab_rbegin(0,4,3,3,range),A1.slab_rend(0,4,3,3,range),S.begin());
template<typename Block >
GenericMultiComponent4d< Block >::size_type slip::GenericMultiComponent4d< Block >::slabs ( ) const
inline

Returns the number of slabs (first dimension size) in the GenericMultiComponent4d.

Definition at line 7409 of file GenericMultiComponent4d.hpp.

template<typename Block>
slice_iterator slip::GenericMultiComponent4d< Block >::slice_begin ( const size_type  slab,
const size_type  row,
const size_type  col 
)

Returns a read/write iterator that points to the first element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slice number).

Parameters
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
slice_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:
//copy the line defined by the 4th slab, the 3rd row and the 3rd column of A1
//in S
std::copy(A1.slice_begin(4,3,3),A1.slice_end(4,3,3),S.begin());
template<typename Block>
const_slice_iterator slip::GenericMultiComponent4d< Block >::slice_begin ( const size_type  slab,
const size_type  row,
const size_type  col 
) const

Returns a read-only (constant) iterator that points to the first element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slice number).

Parameters
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
const_slice_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:
//copy the line defined by the 4th slab, the 3rd row and the 3rd column of A1
//in S
std::copy(A1.slice_begin(4,3,3),A1.slice_end(4,3,3),S.begin());
template<typename Block>
slice_range_iterator slip::GenericMultiComponent4d< Block >::slice_begin ( const size_type  slab,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
)

Returns a read/write iterator that points to the first element of the Range range of the line defined by ( slab , row , col ) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
begin slice_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slice dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the line defined by the 4th slab,
//the 3rd row and the 3rd column of A1 in S.
std::copy(A1.slice_begin(4,3,3,range),A1.slice_end(4,3,3,range),S.begin());
template<typename Block>
const_slice_range_iterator slip::GenericMultiComponent4d< Block >::slice_begin ( const size_type  slab,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
) const

Returns a read only (constant) iterator that points to the first element of the Range range of the line defined by ( slab , row , col ) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
begin const_slice_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slice dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the line defined by the 4th slab,
//the 3rd row and the 3rd column of A1 in S.
std::copy(A1.slice_begin(4,3,3,range),A1.slice_end(4,3,3,range),S.begin());
template<typename Block>
component_slice_iterator slip::GenericMultiComponent4d< Block >::slice_begin ( const std::size_t  component,
const size_type  slab,
const size_type  row,
const size_type  col 
)

Returns a read/write iterator that points to the component component of the first element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slice number).

Parameters
componentThe component number.
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
component_slice_iterator value
template<typename Block>
const_component_slice_iterator slip::GenericMultiComponent4d< Block >::slice_begin ( const std::size_t  component,
const size_type  slab,
const size_type  row,
const size_type  col 
) const

Returns a read-only (constant) iterator that points to the component component of the first element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slice number).

Parameters
componentThe component number.
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
const_component_slice_iterator value
template<typename Block>
component_slice_range_iterator slip::GenericMultiComponent4d< Block >::slice_begin ( const std::size_t  component,
const size_type  slab,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
)

Returns a read/write iterator that points to the component component of the first element of the Range range of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
componentThe component number.
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
begin component_slice_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slice dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the line
//defined by the 4th slab, the 3rd row and the 3rd column of A1 in S.
std::copy(A1.slice_begin(0,4,3,3,range),A1.slice_end(0,4,3,3,range),S.begin());
template<typename Block>
const_component_slice_range_iterator slip::GenericMultiComponent4d< Block >::slice_begin ( const std::size_t  component,
const size_type  slab,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
) const

Returns a read only (constant) iterator that points to the component component of the first element of the Range range of the of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
componentThe component number.
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
begin const_component_slice_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slice dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the line
//defined by the 4th slab, the 3rd row and the 3rd column of A1 in S.
std::copy(A1.slice_begin(0,4,3,3,range),A1.slice_end(0,4,3,3,range),S.begin());
template<typename Block>
slice_iterator slip::GenericMultiComponent4d< Block >::slice_end ( const size_type  slab,
const size_type  row,
const size_type  col 
)

Returns a read/write iterator that points to the one past the end element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slice number).

Parameters
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
slice_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:
//copy the line defined by the 4th slab, the 3rd row and the 3rd column of A1
//in S
std::copy(A1.slice_begin(4,3,3),A1.slice_end(4,3,3),S.begin());
template<typename Block>
const_slice_iterator slip::GenericMultiComponent4d< Block >::slice_end ( const size_type  slab,
const size_type  row,
const size_type  col 
) const

Returns a read-only (constant) iterator that points to the one past the end element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slice number).

Parameters
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
const_slice_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:
//copy the line defined by the 4th slab, the 3rd row and the 3rd column of A1
//in S
std::copy(A1.slice_begin(4,3,3),A1.slice_end(4,3,3),S.begin());
template<typename Block>
slice_range_iterator slip::GenericMultiComponent4d< Block >::slice_end ( const size_type  slab,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
)

Returns a read/write iterator that points one past the end element of the Range range of the line defined by ( slab , row , col ) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
end slice_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slice dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the line defined by the 4th slab,
//the 3rd row and the 3rd column of A1 in S.
std::copy(A1.slice_begin(4,3,3,range),A1.slice_end(4,3,3,range),S.begin());
template<typename Block>
const_slice_range_iterator slip::GenericMultiComponent4d< Block >::slice_end ( const size_type  slab,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
) const

Returns a read_only iterator that points one past the last element of the Range range of the line defined by ( slab , row , col ) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
end const_slice_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slice dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the line defined by the 4th slab,
//the 3rd row and the 3rd column of A1 in S.
std::copy(A1.slice_begin(4,3,3,range),A1.slice_end(4,3,3,range),S.begin());
template<typename Block>
component_slice_iterator slip::GenericMultiComponent4d< Block >::slice_end ( const std::size_t  component,
const size_type  slab,
const size_type  row,
const size_type  col 
)

Returns a read/write iterator that points to the component component of the one past the end element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slice number).

Parameters
componentThe component number.
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
component_slice_iterator value
template<typename Block>
const_component_slice_iterator slip::GenericMultiComponent4d< Block >::slice_end ( const std::size_t  component,
const size_type  slab,
const size_type  row,
const size_type  col 
) const

Returns a read-only (constant) iterator that points to the component component of the one past the end element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order (increasing slice number).

Parameters
componentThe component number.
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
const_component_slice_iterator value
template<typename Block>
component_slice_range_iterator slip::GenericMultiComponent4d< Block >::slice_end ( const std::size_t  component,
const size_type  slab,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
)

Returns a read/write iterator that points to the component component of the past the end element of the Range range of the of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
componentThe component number.
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
end component_slice_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slice dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the line
//defined by the 4th slab, the 3rd row and the 3rd column of A1 in S.
std::copy(A1.slice_begin(0,4,3,3,range),A1.slice_end(0,4,3,3,range),S.begin());
template<typename Block>
const_component_slice_range_iterator slip::GenericMultiComponent4d< Block >::slice_end ( const std::size_t  component,
const size_type  slab,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
) const

Returns a read_only iterator that points to the component component of the past the last element of the Range range of the of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in ordinary element order according to the Range.

Parameters
componentThe component number.
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
end const_component_slice_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slice dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the line
//defined by the 4th slab, the 3rd row and the 3rd column of A1 in S.
std::copy(A1.slice_begin(0,4,3,3,range),A1.slice_end(0,4,3,3,range),S.begin());
template<typename Block>
reverse_slice_iterator slip::GenericMultiComponent4d< Block >::slice_rbegin ( const size_type  slab,
const size_type  row,
const size_type  col 
)

Returns a read/write iterator that points to the last element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slice number).

Parameters
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
reverse_slice_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:
//copy the line defined by the 4th slab, the 3rd row and the 3rd column of A1
//in S in reverse order
std::copy(A1.slice_rbegin(4,3,3),A1.slice_rend(4,3,3),S.begin());
template<typename Block>
const_reverse_slice_iterator slip::GenericMultiComponent4d< Block >::slice_rbegin ( const size_type  slab,
const size_type  row,
const size_type  col 
) const

Returns a read-only (constant) iterator that points to the last element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slice number).

Parameters
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
const_reverse_slice_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:
//copy the line defined by the 4th slab, the 3rd row and the 3rd column of A1
//in S in reverse order
std::copy(A1.slice_rbegin(4,3,3),A1.slice_rend(4,3,3),S.begin());
template<typename Block>
reverse_slice_range_iterator slip::GenericMultiComponent4d< Block >::slice_rbegin ( const size_type  slab,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
)

Returns a read/write iterator that points to the last element of the Range range of the line defined by ( slab , row , col ) through the slices in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range.

Parameters
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
begin reverse_slice_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slice dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the line defined by the 4th slab,
//the 3rd row and the 3rd column of A1 in S in reverse order.
std::copy(A1.slice_rbegin(4,3,3,range),A1.slice_rend(4,3,3,range),S.begin());
template<typename Block>
const_reverse_slice_range_iterator slip::GenericMultiComponent4d< Block >::slice_rbegin ( const size_type  slab,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
) const

Returns a read only (constant) iterator that points to the last element of the Range range of the line defined by ( slab , row , col ) through the slices in the GenericMultiComponent4d. Iteration is done in reverse element order according to the Range.

Parameters
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
begin const_reverse_slice_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slice dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the line defined by the 4th slab,
//the 3rd row and the 3rd column of A1 in S in reverse order.
std::copy(A1.slice_rbegin(4,3,3,range),A1.slice_rend(4,3,3,range),S.begin());
template<typename Block>
reverse_component_slice_iterator slip::GenericMultiComponent4d< Block >::slice_rbegin ( const std::size_t  component,
const size_type  slab,
const size_type  row,
const size_type  col 
)

Returns a read/write iterator that points to the component component of the last element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slice number).

Parameters
componentThe component number.
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
reverse_component_slice_iterator value
template<typename Block>
const_reverse_component_slice_iterator slip::GenericMultiComponent4d< Block >::slice_rbegin ( const std::size_t  component,
const size_type  slab,
const size_type  row,
const size_type  col 
) const

Returns a read-only (constant) iterator that points to the component component of the last element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slice number).

Parameters
componentThe component number.
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
const_reverse_component_slice_iterator value
template<typename Block>
reverse_component_slice_range_iterator slip::GenericMultiComponent4d< Block >::slice_rbegin ( const std::size_t  component,
const size_type  slab,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
)

Returns a read/write iterator that points to the component component of the last element of the Range range of the of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in the reverse element order according to the Range.

Parameters
componentThe component number.
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
begin reverse_component_slice_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slice dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the line
//defined by the 4th slab, the 3rd row and the 3rd column of A1 in S in reverse order.
std::copy(A1.slice_rbegin(0,4,3,3,range),A1.slice_rend(0,4,3,3,range),S.begin());
template<typename Block>
const_reverse_component_slice_range_iterator slip::GenericMultiComponent4d< Block >::slice_rbegin ( const std::size_t  component,
const size_type  slab,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
) const

Returns a read only (constant) iterator that points to the component component of the last element of the Range range of the of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in reverse element order according to the Range.

Parameters
componentThe component number.
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
begin const_reverse_component_slice_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slice dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the line
//defined by the 4th slab, the 3rd row and the 3rd column of A1 in S in reverse order.
std::copy(A1.slice_rbegin(0,4,3,3,range),A1.slice_rend(0,4,3,3,range),S.begin());
template<typename Block>
reverse_slice_iterator slip::GenericMultiComponent4d< Block >::slice_rend ( const size_type  slab,
const size_type  row,
const size_type  col 
)

Returns a read/write iterator that points to the one before the first element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slice number).

Parameters
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
reverse_slice_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:
//copy the line defined by the 4th slab, the 3rd row and the 3rd column of A1
//in S in reverse order
std::copy(A1.slice_rbegin(4,3,3),A1.slice_rend(4,3,3),S.begin());
template<typename Block>
const_reverse_slice_iterator slip::GenericMultiComponent4d< Block >::slice_rend ( const size_type  slab,
const size_type  row,
const size_type  col 
) const

Returns a read (constant) iterator that points to the one before the first element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slice number).

Parameters
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
const_reverse_slice_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Example:
//copy the line defined by the 4th slab, the 3rd row and the 3rd column of A1
//in S in reverse order
std::copy(A1.slice_rbegin(4,3,3),A1.slice_rend(4,3,3),S.begin());
template<typename Block>
reverse_slice_range_iterator slip::GenericMultiComponent4d< Block >::slice_rend ( const size_type  slab,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
)

Returns a read/write iterator that points to the first element of the Range range of the line defined by ( slab , row , col ) through the slices in the GenericMultiComponent4d. Iteration is done in reverse element order according to the Range.

Parameters
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
end reverse_slice_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slice dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the line defined by the 4th slab,
//the 3rd row and the 3rd column of A1 in S in reverse order.
std::copy(A1.slice_rbegin(4,3,3,range),A1.slice_rend(4,3,3,range),S.begin());
template<typename Block>
const_reverse_slice_range_iterator slip::GenericMultiComponent4d< Block >::slice_rend ( const size_type  slab,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
) const

Returns a read_only iterator that points one past the lastto the first element of the Range range of the line defined by ( slab , row , col ) through the slices in the GenericMultiComponent4d. Iteration is done in reverse element order according to the Range.

Parameters
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
end const_reverse_slice_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slice dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example:
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the line defined by the 4th slab,
//the 3rd row and the 3rd column of A1 in S in reverse order.
std::copy(A1.slice_rbegin(4,3,3,range),A1.slice_rend(4,3,3,range),S.begin());
template<typename Block>
reverse_component_slice_iterator slip::GenericMultiComponent4d< Block >::slice_rend ( const std::size_t  component,
const size_type  slab,
const size_type  row,
const size_type  col 
)

Returns a read/write iterator that points to the component component of the before the first element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slice number).

Parameters
componentThe component number.
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
reverse_component_slice_iterator value
template<typename Block>
const_reverse_component_slice_iterator slip::GenericMultiComponent4d< Block >::slice_rend ( const std::size_t  component,
const size_type  slab,
const size_type  row,
const size_type  col 
) const

Returns a read (constant) iterator that points to the component component of the before the first element of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in reverse element order (decreasing slice number).

Parameters
componentThe component number.
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
Returns
const_reverse_component_slice_iterator value
template<typename Block>
reverse_component_slice_range_iterator slip::GenericMultiComponent4d< Block >::slice_rend ( const std::size_t  component,
const size_type  slab,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
)

Returns a read/write iterator that points to the component component of the before the first element of the Range range of the of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in reverse element order according to the Range.

Parameters
componentThe component number.
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
end reverse_component_slice_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slice dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the line
//defined by the 4th slab, the 3rd row and the 3rd column of A1 in S in reverse order.
std::copy(A1.slice_rbegin(0,4,3,3,range),A1.slice_rend(0,4,3,3,range),S.begin());
template<typename Block>
const_reverse_component_slice_range_iterator slip::GenericMultiComponent4d< Block >::slice_rend ( const std::size_t  component,
const size_type  slab,
const size_type  row,
const size_type  col,
const slip::Range< int > &  range 
) const

Returns a read_only iterator that points to the component component of the before the first element of the Range range of the of the line (slab,row,col) through the slices in the GenericMultiComponent4d. Iteration is done in reverse element order according to the Range.

Parameters
componentThe component number.
slabslab coordinate of the line
rowrow coordinate of the line
colcol coordinate of the line
rangeRange of the line to iterate.
Returns
end const_reverse_component_slice_range_iterator value
Remarks
This iterator is compatible with RandomAccessIterator algorithms.
Precondition
the range must be compatible with the slice dimensions
The range must be inside the whole range of the GenericMultiComponent4d.
Example :
slip::Range<int> range(3,7,1);
//copy five elements (from the 3rd to the 7th) of the first component of the line
//defined by the 4th slab, the 3rd row and the 3rd column of A1 in S in reverse order.
std::copy(A1.slice_rbegin(0,4,3,3,range),A1.slice_rend(0,4,3,3,range),S.begin());
template<typename Block >
GenericMultiComponent4d< Block >::size_type slip::GenericMultiComponent4d< Block >::slices ( ) const
inline

Returns the number of slices (second dimension size) in the GenericMultiComponent4d.

Definition at line 7423 of file GenericMultiComponent4d.hpp.

template<typename Block >
void slip::GenericMultiComponent4d< Block >::swap ( self M)
inline

Swaps data with another GenericMultiComponent4d.

Parameters
MA GenericMultiComponent4d of the same element type

Definition at line 7486 of file GenericMultiComponent4d.hpp.

Friends And Related Function Documentation

template<typename Block>
friend class boost::serialization::access
friend

Definition at line 5394 of file GenericMultiComponent4d.hpp.

template<typename Block>
bool operator!= ( const GenericMultiComponent4d< Block > &  x,
const GenericMultiComponent4d< Block > &  y 
)
friend

GenericMultiComponent4d inequality comparison.

Parameters
xA GenericMultiComponent4d
yA GenericMultiComponent4d of the same type of x
Returns
true if !(x == y)
Precondition
x.size() == y.size()

Definition at line 7357 of file GenericMultiComponent4d.hpp.

template<typename Block>
std::ostream& operator<< ( std::ostream &  out,
const self a 
)
friend

Write the GenericMultiComponent4d to the ouput stream.

Parameters
outoutput stream
aGenericMultiComponent4d to write to the output stream

Definition at line 7312 of file GenericMultiComponent4d.hpp.

template<typename Block>
bool operator== ( const GenericMultiComponent4d< Block > &  x,
const GenericMultiComponent4d< Block > &  y 
)
friend

GenericMultiComponent4d equality comparison.

Parameters
xA GenericMultiComponent4d
yA GenericMultiComponent4d of the same type of x
Returns
true iff the size and the elements of the Arrays are equal
Precondition
x.size() == y.size()

Definition at line 7349 of file GenericMultiComponent4d.hpp.

Member Data Documentation

template<typename Block>
const std::size_t slip::GenericMultiComponent4d< Block >::COMPONENTS = Block::SIZE
static

Definition at line 327 of file GenericMultiComponent4d.hpp.

template<typename Block>
const std::size_t slip::GenericMultiComponent4d< Block >::DIM = 4
static

Definition at line 326 of file GenericMultiComponent4d.hpp.


The documentation for this class was generated from the following file: