[PD] floating-point question

Jonathan Wilkes jancsika at yahoo.com
Mon Feb 20 04:42:39 CET 2012





----- Original Message -----
> From: Mathieu Bouchard <matju at artengine.ca>
> To: Hans-Christoph Steiner <hans at at.or.at>
> Cc: pd-list at iem.at; Mirko Petrovich <mirko.petrovich at gmail.com>
> Sent: Sunday, February 19, 2012 10:12 PM
> Subject: Re: [PD] floating-point question
> 
> Le 2012-02-19 à 21:52:00, Hans-Christoph Steiner a écrit :
>>  On Feb 17, 2012, at 4:27 PM, Mirko Petrovich wrote:
>>>  I'm having a problem with a patch doing some very simple math. The 
> problem is that float 0.1 represents as 0.0999985 in some cases.
>>  That's a problem with floating point calculations on computers, 
> unfortuantely.  Hard to work around that.
> 
> 0.1 is usually represented as exactly
>   13421773/134217728 = 0.100000001490116...
>   where 134217728 = pow(2,27)
> 
> For various reasons, the numerator can be a few units up or down :
>   13421772/134217728 = 0.0999999940395355...
>   13421769/134217728 = 0.0999999716877937...
>   13421776/134217728 = 0.1000000238418580...
> 
> As you can see, 0.0999985 is way off. You get that kind of value with a 
> numerator around 13421571. That's 202 notches off !
> 
> If you sum together a lot of 0.001 values to make a 0.1, the error accumulates. 
> It's more accurate to count using whole numbers, and divide the whole number 
> each time.

With 64-bit floats does this problem practically go away (like getting an index into 
a large table)?

-Jonathan

> 
> It's sometimes important to cut down on accuracy for the benefit of 
> efficiency, but doing audio on today's laptops, you will probably not 
> encounter them. However, tablets and phones often have slow float calculators.
> 
> ______________________________________________________________________
> | Mathieu BOUCHARD ----- téléphone : +1.514.383.3801 ----- Montréal, QC
> _______________________________________________
> Pd-list at iem.at mailing list
> UNSUBSCRIBE and account-management -> 
> http://lists.puredata.info/listinfo/pd-list
> 



More information about the Pd-list mailing list