[vsipl++] [patch] support for non-contiguous rows or columns with Cell FFTM
Stefan Seefeld
stefan at codesourcery.com
Wed Mar 7 18:32:25 UTC 2007
Don McCoy wrote:
> Index: src/vsip/opt/cbe/ppu/fft.cpp
> ===================================================================
> --- src/vsip/opt/cbe/ppu/fft.cpp (revision 165069)
> +++ src/vsip/opt/cbe/ppu/fft.cpp (working copy)
> @@ -306,7 +306,20 @@
> length_type, length_type)
> {
> }
> -
> + virtual void query_layout(Rt_layout<2> &rtl_inout)
> + {
> + // must have unit stride, but does not have to be dense
> + rtl_inout.pack = stride_unit;
> + rtl_inout.order = tuple<0, 1, 2>();
Since we want unit-stride in the direction in which the FFT is taken,
we need to take the axis parameter 'A' into account.
So, for example:
if (A == 0) rtl_inout.order = tuple<0, 1, 2>();
else rtl_inout.order = tuple<1, 0, 2>();
> + rtl_inout.complex = cmplx_inter_fmt;
> + }
> + virtual void query_layout(Rt_layout<2> &rtl_in, Rt_layout<2> &rtl_out)
> + {
> + // must have unit stride, but does not have to be dense
> + rtl_in.pack = rtl_out.pack = stride_unit;
> + rtl_in.order = rtl_out.order = tuple<0, 1, 2>();
Same here.
> + rtl_in.complex = rtl_out.complex = cmplx_inter_fmt;
> + }
> private:
> rtype scale_;
> length_type fft_length_;
Regards,
Stefan
--
Stefan Seefeld
CodeSourcery
stefan at codesourcery.com
(650) 331-3385 x718
More information about the vsipl++
mailing list