![]() |
IOLink C# 1.11.0
|
This class is used to index a classic array into a multi dimensional array. More...
Public Member Functions | |
| Indexer (global::System.IntPtr cPtr, bool cMemoryOwn) | |
| void | Dispose () |
| Indexer (VectorXu64 shape, VectorXu64 stride, VectorXu64 layout) | |
| Create an indexer by giving all its informations. | |
| Indexer (VectorXu64 shape, VectorXu64 stride, MemoryLayout standardLayout) | |
| Create an indexer by giving all its informations. | |
| Indexer (VectorXu64 shape, VectorXu64 layout) | |
| Initialize the indexer using a custom memory layout. | |
| Indexer (VectorXu64 shape, MemoryLayout standardLayout) | |
| Auto compute the Indexer's strides from shape and standard layout. | |
| Indexer (VectorXu64 shape) | |
| Simpliest way to initialize an indexer from a shape. | |
| Indexer (VectorXu64 shape, DataType dtype) | |
| The default byte stride being computed from the shape and data type. The default layout being the Fortran array layout. | |
| Indexer (VectorXu64 shape, DataType dtype, MemoryLayout standardLayout) | |
| The default byte stride being computed from the shape, datatype, and standard layout. | |
| Indexer (VectorXu64 shape, DataType dtype, VectorXu64 byteStride) | |
| The default layout being the Fortran array layout. | |
| Indexer (VectorXu64 shape, DataType dtype, VectorXu64 byteStride, VectorXu64 layout) | |
| Indexer (Indexer other) | |
| uint | DimensionCount () |
| The number of dimensions managed by this indexer. | |
| VectorXu64 | Shape () |
| Return the shape. | |
| DataType | Dtype () |
| |
| VectorXu64 | Stride () |
| Return the stride. | |
| VectorXu64 | ByteStride () |
| |
| VectorXu64 | Layout () |
| Return the layout dimension order. | |
| uint | Shape (uint index) |
| Return the current size for given dimension. | |
| uint | Stride (uint index) |
| Return the current stride for given dimension. | |
| uint | ByteStride (uint index) |
| |
| uint | Layout (uint index) |
| Return the dimension index of the nth one in order. | |
| uint | ElementCount () |
| Returns the number of elements managed by this Indexer. | |
| uint | ByteCount () |
| uint | Offset (VectorXu64 index) |
| Return the computed 1D offset corresponding to indexed sample in multi dimensional array. | |
| uint | ByteOffset (VectorXu64 index) |
| bool | IsContinuous () |
| Elements are considered contiguous if they follow each other without any padding. | |
Static Public Member Functions | |
| static global::System.Runtime.InteropServices.HandleRef | getCPtr (Indexer obj) |
| static global::System.Runtime.InteropServices.HandleRef | swigRelease (Indexer obj) |
Protected Member Functions | |
| virtual void | Dispose (bool disposing) |
Protected Attributes | |
| bool | swigCMemOwn |
This class is used to index a classic array into a multi dimensional array.
Its main use is to convert a multi-dimensional index into the corresponding offset in the flat array used for storage. An indexer contains all the needed tools and describes how the data is really stored. The three main elements are: the shape, the stride, and the layout.
The shape is simply the size of the indexed array in each dimension, for example an array with two columns and two rows will have a shape of {2, 2}.
The stride contains the offset between each iteration of a dimension, in elements. For example, our {2, 2} array will usually have a stride of {1, 2}, as each column element is adjacent (hence the stride of one), and when iterating element on a line, you must skip one element on the underlying array (hence the stride of 2). The stride dimension are in the same order as the shape, but they do not have to be in ascendent order. Actually, reverse order arrays (C convention) will have inversed strides, for example, {2, 1} in our {2, 2} array case.
The layout describes in wich order each dimension is ordered internally, and can be used to enhance performance. The usual IOLink layout is {0, 1, ..., n - 1, n}. As we use the Fortran convention in IOLink, indexing a C array would use an inverted layout {n, n-1, ..., 1, 0}. This field enables user to easily know how data is organised without analysing the strides directly.
|
inline |
Create an indexer by giving all its informations.
Here all the arguments are given, and are not checked, so if they are not consistant, they will give an undefined behavior.
| shape | The shape of the array to index. |
| stride | The stride of each dimension, the offset in elements between each increment in this dimension. |
| layout | The internal order of dimensions, {0, 1} is row-major and {1, 0} is col-major for example. |
<>Deprecated in 1.8, will be dropped in 2.0, you should use a constructor that specify the data type instead. </>
|
inline |
Create an indexer by giving all its informations.
Here all the arguments are given, and are not checked, so if they are not consistant, they will give an undefined behavior.
| shape | The shape of the array to index. |
| stride | The stride of each dimension, the offset in elements between each increment in this dimension. |
| standardLayout | A standard layout for the array. |
| Error | When the layout is unsupported |
<>Deprecated in 1.8, will be dropped in 2.0, you should use a constructor that specify the data type instead. </>
|
inline |
Initialize the indexer using a custom memory layout.
| shape | The shape of the indexed array |
| layout | The internal order of dimensions, {0, 1} is row-major and {1, 0} is col-major for example. |
<>Deprecated in 1.8, will be dropped in 2.0, you should use a constructor that specify the data type instead. </>
|
inline |
Auto compute the Indexer's strides from shape and standard layout.
| shape | The narray sizes in each dimension |
| standardLayout | A standard layout for the array. |
| Error | When the layout is unsupported |
<>Deprecated in 1.8, will be dropped in 2.0, you should use a constructor that specify the data type instead. </>
|
inline |
Simpliest way to initialize an indexer from a shape.
The layout here is Fortran one, and the strides are computed according to it.
| shape | The desired shape of the multi dimensional array. |
<>Deprecated in 1.8, will be dropped in 2.0, you should use a constructor that specify the data type instead. </>
|
inline |
The default byte stride being computed from the shape and data type. The default layout being the Fortran array layout.
Constructor with shape and datatype, using default layout and stride.
| shape | The shape of the indexed array. |
| dtype | The data type of the indexed array. |
|
inline |
The default byte stride being computed from the shape, datatype, and standard layout.
Constructor with shape, datatype and standard layout, using default stride.
| shape | The shape of the indexed array. |
| dtype | The data type of the indexed array. |
| standardLayout | A standard layout for the array. |
|
inline |
The default layout being the Fortran array layout.
Constructor with shape, datatype and byte stride, using default layout.
| shape | The shape of the indexed array. |
| dtype | The data type of the indexed array. |
| byteStride | The stride in bytes of the indexed array. |
|
inline |
Constructor with shape, datatype, byte stride and layout.
| shape | The shape of the indexed array. |
| dtype | The data type of the indexed array. |
| byteStride | The stride in bytes of the indexed array. |
| layout | The layout of the indexed array. |
|
inline |
Get the total number of bytes needed to adress this indexer, taking the padding into account.
|
inline |
Computes the offset in bytes to the given index.
| index | The index of the element for which the offset must be computed. |
| InvalidArgument | If the index is invalid. |
|
inline |
Elements are considered contiguous if they follow each other without any padding.
Checks if the indexed elements are contiguous.
|
inline |
Return the dimension index of the nth one in order.
| index | Index of the order dimension index. |
|
inline |
Return the computed 1D offset corresponding to indexed sample in multi dimensional array.
| index | The element's position for which offset must be computed. |
<>Deprecated in 1.8, will be dropped in 2.0, you should use the byteOffset method instead. </>
|
inline |
Return the current size for given dimension.
| index | Index of the dimension to consider |
|
inline |
Return the stride.
<>Deprecated in 1.8, will be dropped in 2.0, you should use the byteStride method instead. </>
|
inline |
Return the current stride for given dimension.
| index | Index of the dimension to consider |
<>Deprecated in 1.8, will be dropped in 2.0, you should use the byteStride method instead. </>