I think I have found the problem.
Both ifft_radix2_twiddle and ifft_radix2_twiddle don't guard against entry
with n = 0. I changed the first part of both routines according to the
template:
if (n < 2)
{
mp_size_t tw1, tw2;
tw1 = r*c;
tw2 = tw1 + rs*c;
if(n)
{
ifft_butterfly_twiddle(*t1, *t2, ii[0], ii[is], limbs, tw1*ws,
tw2*ws);
SWAP_PTRS(ii[0], *t1);
SWAP_PTRS(ii[is], *t2);
}
return;
}
and all tests now pass.
I noticed that the routine fft_radix2_twiddle is tail recursive so we can
reduce its memory footprint and maybe gain some speed by eliminating the
tail call.
Brian
--
You received this message because you are subscribed to the Google Groups
"mpir-devel" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/mpir-devel/-/TQnb2K3MiKgJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/mpir-devel?hl=en.