Brick Library 0.1
Performance-portable stencil datalayout & codegen
Classes
Accessing brick elements using []

Classes

struct  _BrickAccessor<... >
 Generic base template for Accessing brick elements using []. More...
 
struct  _BrickAccessor< T, Dim< D >, Dim< F >, bool >
 Last dimension Accessing brick elements using []. More...
 
struct  _BrickAccessor< T, Dim< D, BDims... >, Dim< F, Folds... >, bool >
 When the number of Brick dimensions and Fold dimensions are the same Accessing brick elements using []. More...
 
struct  _BrickAccessor< T, Dim< D, BDims... >, Dim< Folds... >, void >
 When the number of Brick dimensions and Fold dimensions are not the same \(1 + BDims > Folds\) Accessing brick elements using []. More...
 

Detailed Description

It can be fully unrolled and offers very little overhead. However, vectorization is tricky without using codegen.

For example, the following code produces types:

Brick<Dim<8,8,8>, Dim<2,4>> bIn(&bInfo, bStorage, 0);
// bIn[0]: _BrickAccessor<bElem, Dim<8,8,8>, Dim<2,4>, void>
// bIn[0][1]: _BrickAccessor<bElem, Dim<8,8>, Dim<2,4>, bool>
// bIn[0][1][1][1]: bElem
Generic base template, see Brick< Dim< BDims... >, Dim< Folds... > >
Definition: brick.h:335
Empty template to specify an n-D list.
Definition: brick.h:126