[vsipl++] [patch] Add byte-swapping support to save/load_view.hpp
Jules Bergmann
jules at codesourcery.com
Fri Jul 18 01:39:33 UTC 2008
Don McCoy wrote:
> There were two problems with the previous version of this patch. First,
> the save_view function was reversing the bytes in the view in-place.
> This has been fixed by forcing it to copy the view so as to avoid this
> problem. Second, complex values were being handled incorrectly, i.e.
> for complex floats, the entire 8-byte quantity was being swapped leading
> to the reversal of the imaginary and real components. The correct
> operation is to perform two, four-bytes swaps.
>
> Regression tests for the above were added.
Don,
This look good, please check it in.
There are a couple of things we could do to further optimize
save_view, on a rainy day:
- in save_view when it is necessary to swap bytes, instead of copying
and then swapping bytes as two steps, it would be more efficient
to perform that as a single step (copy & swap in one step).
- also in save_view, instead of copying the entire view (which requires
a potentially large temporary allocation), you could copy/swap the
view in chunks. The chunk size might be chosen (a) large enough for
fwrite to be efficient and (b) small enough to live on the stack.
-- Jules
--
Jules Bergmann
CodeSourcery
jules at codesourcery.com
(650) 331-3385 x705
More information about the vsipl++
mailing list