Hallo, Mathieu Bouchard hat gesagt: // Mathieu Bouchard wrote:
On Sun, 1 Jan 2006, Frank Barknecht wrote:
For example the physical modelling patches I did (as a-*.pd in svn://footils.org/pd/msd/trunk/phys) have to use this kind of recursive operations a lot and the current implementation becomes unstable much faster than pmpd or msd do. I would really like to find out why.
It depends on how you solve the differential equations. In discrete methods, you don't make dx (also known as h) tend towards 0, and so you have to pick a value of dx, and apparently the sign of dx matters in the stability, but I don't remember why.
I'm actually using the same algorithm as pmpd and both my patches and pmpd assume h==1 to simplify calculations (the "real" h or delta-t(ime) actually is specified from outside using a driving [metro]). Still pmpd seems to become unstable much later than my system. It doesn't matter too much, because in practice, one would of course use pmpd and not an abstractions based system for this taks, still it makes me wonder, where the cause of this error is.
Somehow I have the impression, that message-float-computations in Pd aren't as precise as t_float computations in externals. However I cannot prove it yet ...
There is no difference like that. However, in Pd, there's a big difference between the precision of binary floating-point and decimal floating-point, and this affects [print], [netsend], the *.pd format, etc. You may lose 5 or 6 bits by converting to decimal floating-point.
Is filtering out a float from a list with a message as [$1( also such a conversion, that looses precision?
Ciao