I know how to simulate a 2d array in a linear array using [x + y * width]
as a linear index.
I can extend this to 3d arrays: [x + y * width + z * width * height]
.
Is there a general formula for N-dimensional array?
I'm looking for a language-agnostic answer.
Sure. Just extending your example gives
x + y*width + z*width*height + w*width*height*depth + ...
In other words,
dim1 + dim2*size1 + dim3*size1*size2 + dim4*size1*size2*size3 + ...
Eh, if you want some code... :-) C is language-agnostic enough, ya?
Assume input: location[dimensions]
Assume a table exists maxBound[dimensions] that contains the maximum boundaries of each dimension of the table.
Your index will end up in the index field.
I think this makes sense, but this is just coming out of the top of my head.