On 05. Oktober 2014 20:40:19 MESZ, Jonghyun Kim agitato816@gmail.com wrote:
Thanks for the solution. I can understand the actual problem on 32bit.
You might be confusing things here: Currently pd will always uses single precision floats (which happen to have 32bit on all known platforms), even when run "on" a 64bit system.
But I think still this is a bug.
Yes, in your patch :-) the question is, whether pd should work around system limitations. Eg if you ask it for a tabke with 10 tera-samples and you only have 4gb ram, should it...
|
| +------+ [f] | | | [+ 1] | | | [% 6] | | | [t f f] | | +--+ |
Could you give me the patch again with easily drawing? Sorry I can't recognize your patch drawing...
check it with a monospaced font. (and no, i cannot redraw it on my smartphone).
Many thanks, akntk
On Mon, Oct 6, 2014 at 1:22 AM, zmoelnig@iem.at wrote:
(had to find a real compuer before anwering the actual question)
Quoting Jonghyun Kim agitato816@gmail.com:
Pd 0.45.5 (Vanilla) Mac OS X Mavericks 10.9.5
I don't really know why this bug cause, or only my problem. This bug sometimes appears. I think this is very critical bug. [f] storing bug
[metro 1] | [f 0] | / [+ 1] | [% 6]
respected result: 0, 1, 2, 3, 4, 5 (repeat)
bug: 4, 4, 4, 4, 4 (always 4)
this very much sounds like a problem with floating point precision
overrun.
an [f] object (and actually *any* number within the Pd universe) will
hold
a single precision 32bit floating point number, which can only
represent
*consecutive* integer values up to 16777216. (consecutive means, that [f] can hold representations of both (e.g.) 1000023 and 1000024). if the numbers go higher, singple precision floats will have gaps
bigger
than 1.0 inbetween them (e.g. the next number after 16777216
representable
by [f] is 16777218) - this breaks a counter that increments 1 (since 16777216+1 will be evaulated to ~16777216!)
the solution is actually quite simple: never allow your number to
grow as
big as that.
in your counter this means, that the feeback part, must include the
[% 6]
(so the numbers in the counter will only ever stay in the range
0..6):
| | +------+ [f] | | | [+ 1] | | | [% 6] | | | [t f f] | | +--+ |
btw, you ASCII rendering of the patch did not use [trigger]. you
should
always use it when you want to connect multiple inlets to a single
outlet.
mfgsdr IOhannes
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/ listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
mfg.ugd.fhj IOhannes
-- Sent from my pdp-11