underling  0.3.2
List of all members | Public Attributes
underling_extents Struct Reference

A transparent type storing the local sizes, strides, and storage when the data is long in a particular direction n0, n1, or n2. More...

Detailed Description

A transparent type storing the local sizes, strides, and storage when the data is long in a particular direction n0, n1, or n2.

The global data stored locally in direction i in {0,1,2,3} is [start[i],start[i] + size[i]) where the lower index is inclusive and the upper index exclusive. If both indices are the same then no data is stored locally in the given direction.

Indices {0,1,2} correspond to information about directions n{0,1,2}, respectively. Index 3 gives information regarding the interleaved data fields whose number is determined by the howmany parameter to underling_problem_create.

Public Attributes

int start [4]
 The inclusive global data starting offset in directions n{0,1,2}. More...
 
int size [4]
 The amount of global data stored locally in directions n{0,1,2}. More...
 
int stride [4]
 The stride between adjacent elements in directions n{0,1,2}. More...
 
int order [4]
 The storage order from the fastest index to the slowest. More...
 
size_t extent
 The total extent of all local information, excluding communication buffers, in units of underling_real. More...
 

Member Data Documentation

◆ extent

size_t underling_extents::extent

The total extent of all local information, excluding communication buffers, in units of underling_real.

Computation over all data when long in a direction, e.g. uniform scaling, should use this size.

It is technically redundant to store this information separately since extent == size[0] * size[1] * size[2] * size[3]. However, is very convenient to have the result handy.

◆ order

int underling_extents::order[4]

The storage order from the fastest index to the slowest.

That is, order[0] gives the index in {0,1,2,3} of the fastest direction, order[1] gives the index of the next fastest direction, etc. Useful in generic algorithms which are independent of which direction is long but in which you need to walk memory optimally.

◆ size

int underling_extents::size[4]

The amount of global data stored locally in directions n{0,1,2}.

Index 3 gives information on the interleaved data fields and is always equal to the howmany parameter provided to underling_problem_create.

◆ start

int underling_extents::start[4]

The inclusive global data starting offset in directions n{0,1,2}.

Index 3 gives information on the interleaved data fields and is always equal to zero.

◆ stride

int underling_extents::stride[4]

The stride between adjacent elements in directions n{0,1,2}.

Index 3 gives information on the interleaved data fields.


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

Generated on Wed Jul 1 2026 13:22:58 for underling by  doxygen 1.8.17