Hi Miller, hi all,
i came across a strange thing when testing the Altivec SIMD implementation with my favorite example, namely 04.fft/09.pvoc.pd . It seems that the phase propagation is dependent on the fact that rsqrt~ (0) delivers a valid non-zero value of about 1.e+19. (well, which non-zero value is irrelevant) If rsqrt~ (0) = 0, which would make more sense to me (given the zero checks in /~ ) the example is silent. (what almost drove me nuts, btw. )
Although i already asked before, i'd be interested about the common behaviour of objects that are endangered to deliver NANs. Should these cases always be trapped and bashed to zero? To know that would help me a lot with the proper SIMD implementation.
best greetings, Thomas
In all practical signal processing systems I have seen, overflows saturate to the largest magnitude (and correct sign), while underflows are quietly set to zero. Status bits may be set to indicate these actions, and they can be polled and cleared at will, but the signal processing itself always goes on full speed as best it can. -- jos
On Mon, 29 Dec 2003, Thomas Grill wrote:
Hi Miller, hi all,
i came across a strange thing when testing the Altivec SIMD implementation with my favorite example, namely 04.fft/09.pvoc.pd . It seems that the phase propagation is dependent on the fact that rsqrt~ (0) delivers a valid non-zero value of about 1.e+19. (well, which non-zero value is irrelevant) If rsqrt~ (0) = 0, which would make more sense to me (given the zero checks in /~ ) the example is silent. (what almost drove me nuts, btw. )
Although i already asked before, i'd be interested about the common behaviour of objects that are endangered to deliver NANs. Should these cases always be trapped and bashed to zero? To know that would help me a lot with the proper SIMD implementation.
best greetings, Thomas
PD-dev mailing list PD-dev@iem.at http://iem.at/cgi-bin/mailman/listinfo/pd-dev
Whenever I can detect that something/s about to go NAN, I just put out a zero instead... this is because NAN processing is apparently hundreds of times slower on i86 hardware than processing with well-formed numbers!
This is bad about a "correct" rsqrt~ brealing the phase vocoder. I should be "seeding" the division by adding a tiny number but must have forgotten.
cheers Miller
On Mon, Dec 29, 2003 at 12:53:03AM +0100, Thomas Grill wrote:
Hi Miller, hi all,
i came across a strange thing when testing the Altivec SIMD implementation with my favorite example, namely 04.fft/09.pvoc.pd . It seems that the phase propagation is dependent on the fact that rsqrt~ (0) delivers a valid non-zero value of about 1.e+19. (well, which non-zero value is irrelevant) If rsqrt~ (0) = 0, which would make more sense to me (given the zero checks in /~ ) the example is silent. (what almost drove me nuts, btw. )
Although i already asked before, i'd be interested about the common behaviour of objects that are endangered to deliver NANs. Should these cases always be trapped and bashed to zero? To know that would help me a lot with the proper SIMD implementation.
best greetings, Thomas