|
underling
0.3.2
|
A transparent type storing the local sizes, strides, and storage when the data is long in a particular direction n0, n1, or n2.
More...
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... | |
| 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.
| 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.
| 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.
| 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.
| 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.