[Numpy-discussion] numpy ndarray questions

David Cournapeau david@ar.media.kyoto-u.ac...
Mon Jan 26 21:49:17 CST 2009

Jochen wrote:
> Hi all,
> I just wrote ctypes bindings to fftw3 (see
> http://projects.scipy.org/pipermail/scipy-user/2009-January/019557.html
> for the post to scipy). 
> Now I have a couple of numpy related questions:
> In order to be able to use simd instructions I 
> create an ndarray subclass, which uses fftw_malloc to allocate the
> memory and fftw_free to free the memory when the array is deleted. This
> works fine for inplace operations however if someone does something like
> this:
> a = fftw3.AlignedArray(1024,complex)
> a = a+1
> a.ctypes.data points to a different memory location (this is actually an
> even bigger problem when executing fftw plans), however 
> type(a) still gives me <class 'fftw3.planning.AlignedArray'>.

I can't comment about subclassing ndarrays, but I can give you a hint
about aligned allocator problem: you could maintain two list of cached
plans, automatically detect whether your arrays are aligned or not, and
use the appropriate list of plans; one list is for aligned arrays, one
for unaligned. Before removing support for fftw, I played with some C++
code to do exactly that. You can tell fftw to create plans for unaligned
arrays by using FFTW_UNALIGNED flag:




More information about the Numpy-discussion mailing list