DASH  0.3.0
dash::MultiView< NDim > Class Template Reference

Multidimensional view. More...

#include <MultiView.h>

Detailed Description

template<dim_t NDim>
class dash::MultiView< NDim >

Multidimensional view.

Extends concepts outlined in the TS:

"Multidimensional bounds, index and array_view"

OpenSTD document number M3851 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3851.pdf

For a related implementation in C++14, see:

Terminology:

Multidimensional View Properties

  • ndim: number of dimensions in the view's origin domain
  • rank: number of view dimensions
  • size: total number of elements
  • shape: extents ordered by dimension
  • offset: base indices ordered by dimension
  • bounds: tuples of first and final index in all dimensions d as (offset(d), offset(d) + shape(d))

In each dimension:

  • extent: number of elements in the dimension, consequently same as the size of its range
  • stride: number of elements in a slice of the dimension

Modifying Operations on Multidimensional Views

  • reshape: change extents of rectangular view such that rank and size are unchanged.
  • resize: change size of rectangular view, rank is unchanged
  • sub: create sub-view from index range
  • section: sub-view with same rank
  • slice: sub-view with lower rank
  • intersect: intersection of two or more multidimensional rectangular views; the resulting rectangular view could also be obtained from a sequence of resize operations

Access Operations on Multidimensional Views

C-style access:

slice at offset 2 in first dimension and sub-range [3,5) in second dimension:

nview[2][range(3,5)]
// same as:
sub<0>(2, sub<1>(3,5, nview))

Specifying unchanged dimensions of sub-views:

nview[2]*[4]
// same as:
sub<0>(2, sub<2>(4. nview))

Definition at line 80 of file MultiView.h.


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