Patches item #2638371, was opened at 2009-02-25 15:41 Message generated for change (Comment added) made by eighthave You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=478072&aid=2638371...
Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: puredata Group: None
Status: Closed Resolution: Fixed
Priority: 5 Private: No Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: exp~ broken/fixed
Initial Comment: exp~ just copies it's input to it's output. this is because exp_tilde_perform in d_math.c does this:
t_int *exp_tilde_perform(t_int *w) { t_sample *in1 = (t_sample *)(w[1]); t_sample *out = (t_sample *)(w[2]); int n = (int)(w[3]); while (n--) *out = exp(*in1); // out and in1 are never incremented return (w+4); }
instead it should do this:
t_int *exp_tilde_perform(t_int *w) { t_sample *in1 = (t_sample *)(w[1]); t_sample *out = (t_sample *)(w[2]); int n = (int)(w[3]); while (n--) { *out = exp(*in1); out++; in1++; } return (w+4); }
please apply the attached patch to d_math.c
-- karl yerkes
----------------------------------------------------------------------
Comment By: Hans-Christoph Steiner (eighthave)
Date: 2010-07-15 19:30
Message: fixed like this:
t_int *exp_tilde_perform(t_int *w) { t_sample *in1 = (t_sample *)(w[1]); t_sample *out = (t_sample *)(w[2]); int n = (int)(w[3]); while (n--) *out++ = exp(*in1++); return (w+4); }
----------------------------------------------------------------------
Comment By: Frank Barknecht (fbar) Date: 2009-03-29 10:48
Message: It seem, abs~ has a very similar issue. Attached patch fixes it, too (and exp~)
----------------------------------------------------------------------
You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=478072&aid=2638371...