[PD] another newbie question
Mathieu Bouchard
matju at sympatico.ca
Fri Mar 5 20:26:10 CET 2004
On Fri, 5 Mar 2004, [koi8-r] "Yury[koi8-r] " wrote:
> I've noticed an unusual behavior of "select" object on my computer:
> see "para.pd" for details. This object doesn't recognize some numbers
> (though they are set in its argument...) and pass them through its
> right outlet.
>
> For example, when counting regularly every 0.01 and routing the sum
> numbers through "sel" object, it passes number 0.05 out the right
> outlet (though its argument is set to 0.05) as if coming numbers were
> not themselves...
>
> Could anyone tell me what am i doing wrong ..
Only fractions with power-of-two denominators (2, 4, 8, 16, ...) are
actual float values. The others only get approximated. 0.05's closest
approximation is:
0.0500000007450580596923828125
which is also
13421773 / 2^28
However sometimes the value gets rounded otherwise, so there's really a
big problem with using [==], [select], and the like, on number that can be
imprecise.
Instead of [== 0.05] you would have to do something like:
[- 0.05]
|
[abs]
|
[< 0.000001]
Or something like that. Note that the error margin you can expect may vary
alot depending on what computations you are performing, and how big the
number is. Note that Pd's floats are 32=23+8+1 bits, so you get an error
of about 2^-23 times the value itself, plus computational error.
________________________________________________________________
Mathieu Bouchard http://artengine.ca/matju
More information about the Pd-list
mailing list