|
|
| Indexer (global::System.IntPtr cPtr, bool cMemoryOwn) |
| |
|
void | Dispose () |
| |
| | Indexer (VectorXu64 shape, VectorXu64 stride, VectorXu64 layout) |
| |
| | Indexer (VectorXu64 shape, VectorXu64 stride, MemoryLayout standardLayout) |
| |
| | Indexer (VectorXu64 shape, VectorXu64 layout) |
| |
| | Indexer (VectorXu64 shape, MemoryLayout standardLayout) |
| |
| | Indexer (VectorXu64 shape) |
| |
| | Indexer (VectorXu64 shape, DataType dtype) |
| | Constructor with shape and datatype, using default layout and stride.
|
| |
| | Indexer (VectorXu64 shape, DataType dtype, MemoryLayout standardLayout) |
| | Constructor with shape, datatype and standard layout, using default stride.
|
| |
| | Indexer (VectorXu64 shape, DataType dtype, VectorXu64 byteStride) |
| | Constructor with shape, datatype and byte stride, using default layout.
|
| |
| | Indexer (VectorXu64 shape, DataType dtype, VectorXu64 byteStride, VectorXu64 layout) |
| | Constructor with shape, datatype, byte stride and layout.
|
| |
|
| Indexer (Indexer other) |
| |
|
uint | DimensionCount () |
| | The number of dimensions managed by this indexer.
|
| |
|
VectorXu64 | Shape () |
| | Return the shape.
|
| |
|
DataType | Dtype () |
| | - Returns
- the data type of this Indexer.
|
| |
| VectorXu64 | Stride () |
| |
|
VectorXu64 | ByteStride () |
| | - Returns
- the stride in bytes of this Indexer.
|
| |
|
VectorXu64 | Layout () |
| | Return the layout dimension order.
|
| |
| uint | Shape (uint index) |
| |
| uint | Stride (uint index) |
| |
|
uint | ByteStride (uint index) |
| | - Returns
- the stride in bytes for the given dimension.
|
| |
| uint | Layout (uint index) |
| |
|
uint | ElementCount () |
| | Returns the number of elements managed by this Indexer.
|
| |
| uint | ByteCount () |
| | Get the total number of bytes needed to adress this indexer, taking the padding into account.
|
| |
| uint | Offset (VectorXu64 index) |
| |
| uint | ByteOffset (VectorXu64 index) |
| | Computes the offset in bytes to the given index.
|
| |
| bool | IsContinuous () |
| | Checks if the indexed elements are contiguous.
|
| |
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.
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.
- Parameters
-
| 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: Deprecated in 1.8, will be dropped in 2.0, you should use a constructor that specifies the data type instead. e.g. Indexer(const VectorXu64& shape, DataType dtype, const VectorXu64& byteStride, const VectorXu64& layout)
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.
- Parameters
-
| 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. |
- Exceptions
-
| Error | When the layout is unsupported |
Deprecated: Deprecated in 1.8, will be dropped in 2.0, you should use a constructor that specifies the data type instead. e.g. Indexer(const VectorXu64& shape, DataType dtype, const VectorXu64& byteStride, const VectorXu64& layout)