https://web.archive.org/web/20111015133833/http://www-staff....
This was used in his shape aware language FiSh, for dealing with multidimensional arrays. Shape compatibilities were statically type checked, if I recall correctly. Shapes were also used to optimize the loops.
[Programming in FISh] https://link.springer.com/article/10.1007/s100090050037
[Towards Dynamic Shaping] https://www.researchgate.net/publication/265975794_Towards_D...
The worst I have had in a while is when I was dealing with a sparse array data type and getting some processing done in a C function to speed things up.
Infuriatingly enough, the index type used to change after initialising the array. It would check if Int32 could accomodate the size of the array. If it could it would downgrade to Int32 at runtime. My C counterpart had no clue.
That was so not fun to debug because the errors were intermittent (depending on the fill factor of the sparse array)
srean•36m ago
Erm... many would disagree. I think what he means is just a multidimensional array.
zserge•30m ago
srean•24m ago
An appropriate tensor can certainly be represented by a multidimensional array but not all multidimensional arrays are tensors, it depends on how that multidimensional array participates with others.
For example, (lat, long) is not a 2d vector although it can be represented as a 2 dimensional array.