According to John W. Eaton <address@hidden> (on 02/16/04):
In the new FFTW code, you have
char in_align = ((int) in) & 0xF;
char out_align = ((int) out) & 0xF;
with in and out declared as double*. I think this will produce a
warning on Alphas and other systems where sizeof (double*) != sizeof (int).
So probably this should use long instead? But even then, it is a bit
of a kluge. Is there any guarantee that a pointer will fit in a long?
Is there any better way to check the alignment?
All of this is a kludge since I can't see a way of getting the Array
class to always have 16 byte alignment of its pointer *data. If I
could, all of this alignment checking code would disappear and we'd
also get SIMD accelerated FFTs on many platforms.
Given that we can't get the correct data alignment, we do need to check the
alignment for the plans. So we need the cast to int or long? Is
char in_align = in & 0xF;
char out_align = out & 0xF;
alright? Will it be correct for all platforms?