|
Boost : |
From: Larry Evans (jcampbell3_at_[hidden])
Date: 2002-01-04 20:22:52
Larry Evans wrote:
>
[snip]
>
> Could someone compare this method for accessing subarrays with the one in:
>
> _An APL Compiler_
> Timothy Budd
> Springer-Verlag(1988)
>
> Budd did a lot of analysis of the speed and memory requirements and
> his methods included very simple ways to do transposes and slices and
> rotations and other transforms. Using some of his ideas might improve
> multi_array and enable it to be better optimized by some compilers.
>
A brief look at the multi_array_impl_base::access_element suggests that
the multi_array "strides" are Budd's "expansion vector" (BTW, I
think "strides" is better). The "Changing An Array's Shape" topic in
doc/index.html corresponds to the general transpose in Budd's book.
I think Budd did this by simply permuting the strides. He did this with something
like an index vector into the stride array. This index vector was simply a
permutation of 0...nDim-1. The normal transpose just reverses the strides.
I think this would be a useful and easy to implement addition to multi_array.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk