[PD-dev] t_sample vs t_float in PDa vs vanilla

Hans-Christoph Steiner hans at at.or.at
Fri Jan 1 21:33:28 CET 2010


On Jan 1, 2010, at 3:21 PM, IOhannes m zmölnig wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hans-Christoph Steiner wrote:
>>
>>
>> Here's the code in question, from PDa:
>
> ah which reminds me of the thing i forgot in my last email: please add
> line numbers when you refer to a sepcific line in a file.
> <snip>
> d_arithhmetic.c:
>   t_float g = *(t_float *)(w[2]);
> </snip>
> is a bit vague for my taste (ever tried to grep for "int i" :-))
>
>
>
>> So based on your comments, it would go something like this, which  
>> seems
>> needlessly verbose and wasteful of CPU cycles:
> [...]
>>        out[0] = f0 + ftofix(g); out[1] = f1 + ftofix(g); out[2] =  
>> f2 +
>> ftofix(g); out[3] = f3 + ftofix(g);
>
> i guess you are not trying to be nasty on purpose :-)
> i can't see how your interpretation makes the code more readable.
>
>
> i was trying to say something along:
> <code>
>
> t_int *scalarplus_perf8(t_int *w)
> {
>    t_sample *in = (t_sample *)(w[1]);
>    t_float g_f = *(t_float *)(w[2]);
>    t_sample g = ftofix(g_f);
> [...]
>        out[0] = f0+g; out[1] = f1+g; out[2] = f2+g; out[3] = f3+g;
> </code>
>
> this would take as much cycles as
> t_sample g = ftofix(*(t_float *)(w[2]));
> but separate the code for getting the value and making it a sample.

This would obviously work better that my code, but I still don't see  
the point of using a t_float there.  All three lines are casting  
t_ints from w into values that then get added together to be a  
t_sample so why use anything the middle?  On PDa that means casting a  
t_int to a t_float then to an int (i.e. t_sample) for no reason.

.hc



----------------------------------------------------------------------------

Mistrust authority - promote decentralization.  - the hacker ethic






More information about the Pd-dev mailing list