Hi Tim,
Use "PD_BIGORSMALL" instead (I thought PD_BADFLOAT wouldn't be the right name for a thing that was getting close to denormal. The new PD_BIGORSMALL zeros anything whose exponent falls out of the range (-64,64) -- assuming I've coded it right. This fixes underflow problems with delay loops, for instance, and also protects agains unstable loops overflowing.
Duh, I forgot to mention this in the "release notes", sorry.
cheers Miller
On Fri, Jul 23, 2004 at 11:38:51AM +0200, Tim Blechmann wrote:
hi miller, hi list,
i was looking at the diffs between 0.37-1 and 0.37-2.
you still have the PD_BADFLOAT script like this: #define PD_BADFLOAT(f) ((((*(unsigned int*)&(f))&0x7f800000)==0) ||
(((*(unsigned int*)&(f))&0x7f800000)==0x7f800000))if you would use this: #define PD_BADFLOAT(f) ((((*(unsigned int*)&(f))&0x7f800000) < 0x08000000) || \ (((*(unsigned int*)&(f))&0x7f800000)==0x7f800000))
almost denormal numbers would be flushed to zero, too...
i had severe problems with denormals before adding this to the cvs, so i'd ask you, if you could apply this, too...
cheers ... tim
-- mailto:TimBlechmann@gmx.de ICQ: 96771783
After one look at this planet any visitor from outer space would say "I want to see the manager." William S. Burroughs