Developer Guide and Reference

Contents

Constructing an n_container

Description
An N-dimensional (multi-dimensional) container must be constructed before it can be used. The data type to be contained must first be declared as a
SDLT_PRIMITIVE
, then a data layout is chosen, and finally the shape of the container is determined describing the extents of each dimension.
Specifying Data Layout
Rather than defining different containers for different data layouts, the data layout to use is specified as a template parameter to the container.
Available layouts are summarized in table below. Full details can found on the table in the topic n_container.
Layout
Description
layout::soa<>
Structure of Arrays (SOA). Each data member of the Primitive will have its own N-dimensional array.
layout::soa_per_row<>
Structure of Arrays Per Row. Each data member of the Primitive will have its own 1-dimensional array per row. Layout repeats for remaining N-1 dimensions.
layout::aos_by_struct
Array of Structures (AOS) Accessed by Struct. Native AOS layout and data access.
layout::aos_by_stride
Array of Structures Accessed by Stride. Native SOA data access through pointers to the built in types of members using a stride to account for the size of the Primitive.
Numbers and Constants
In order to define shape, integer values can be provided in three different forms, each successively providing less information to compiler. It is advised to use as precise specification as possible. The compiler may optimize better with more information.
Integer Value Specification
Description
fixed<int NumberT>
Known at compi