ILNumerics Ultimate VSSizeGetSeqIndex Method (UInt32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32)ILNumerics Ultimate VS Documentation
ILNumerics - Technical Application Development
Retrieves the sequential index into an array stored according to this size descriptor object based on the provided indices d0 ... d6.

[ILNumerics Core Module]

Namespace: ILNumerics
Assembly: ILNumerics.Core (in ILNumerics.Core.dll) Version: 5.3.0.0 (5.3.7131.2749)
Syntax

public uint GetSeqIndex(
	uint d0,
	uint d1,
	uint d2,
	uint d3,
	uint d4,
	uint d5,
	uint d6
)

Parameters

d0
Type: SystemUInt32
Index into the first dimension.
d1
Type: SystemUInt32
Index into the second dimension.
d2
Type: SystemUInt32
Index into the third dimension.
d3
Type: SystemUInt32
Index into the fourth dimension.
d4
Type: SystemUInt32
Index into the fives dimension.
d5
Type: SystemUInt32
Index into the sixth dimension.
d6
Type: SystemUInt32
Index into the seventh dimension.

Return Value

Type: UInt32
Sequential index into the array when stored as 1D array of arbitrary storage order.
Exceptions

ExceptionCondition
IndexOutOfRangeException if any of the dimension specifiers d0 ... d6 is equal or greater than the length of its corresponding dimension.
Remarks

For arrays of matrix shape d0 references the index of the row and d1 references the index of the column of the sequential index to return.

More general, for n-dimensional arrays the first index corresponds to the position in the first (index: 0) dimension, the second index to the position of the element in the second dimension (index: 1) and so forth ...

If the array addressed by this size has less dimensions than addressed by this function, trailing indices (i.e.: such indices which deal with a dimension whose index is higher than existing in the array) correspond to 'virtual' or singleton dimensions. Those indices must address the 0-th element of the virtual dimension. Hence its value must be 0.

Conversely, if the array addressed by this size stores more dimensions than addressed by this function the last index parameter may exceeds the limit of its corresponding dimension. In this case the sequential index to be returned is computed by subsequently merging trailing dimensions and folding the superflous modulus of the value of the last parameter provided into the next dimension, correspondingly. This process is repeated until either the number of dimensions is reached or the remaining index value reaches 0.

This function recognizes arbitrarily strided objects. It expects all sizes (dimension lengths, strides, the base offset and the number of elements) to fit into MaxValue. Use one of the overloads with Int64 parameters if you are dealing with very big arrays or negative indices.

Performance hint: this function (and all corresponding overloads) are optimized for the case where the number of index parameters provided corresponds to the number of dimensions in the array and all provided index parameters are within the range of their corresponding dimension. The functions, however, handle arbitrary cases, including addressing, merging and ommitting trailing dimensions. Any of those extended features may introduce a performance penalty, though.

[ILNumerics Core Module]

See Also

Reference