[PD-cvs] pd/src builtins_dsp.c,1.1.2.31,1.1.2.32
Mathieu Bouchard
matju at users.sourceforge.net
Thu Oct 4 09:09:37 CEST 2007
Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13304
Modified Files:
Tag: desiredata
builtins_dsp.c
Log Message:
added [>~] [<~]
Index: builtins_dsp.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/builtins_dsp.c,v
retrieving revision 1.1.2.31
retrieving revision 1.1.2.32
diff -C2 -d -r1.1.2.31 -r1.1.2.32
*** builtins_dsp.c 19 Jul 2007 19:57:15 -0000 1.1.2.31
--- builtins_dsp.c 4 Oct 2007 07:09:34 -0000 1.1.2.32
***************
*** 48,57 ****
/* ----------------------------- plus ----------------------------- */
- static t_class *plus_class, *scalarplus_class;
- static t_class *minus_class, *scalarminus_class;
- static t_class *times_class, *scalartimes_class;
- static t_class *over_class, *scalarover_class;
- static t_class *max_class, *scalarmax_class;
- static t_class *min_class, *scalarmin_class;
struct t_dop : t_object {
--- 48,51 ----
***************
*** 60,69 ****
};
! typedef t_dop t_plus, t_scalarplus;
! typedef t_dop t_min, t_scalarmin;
! typedef t_dop t_max, t_scalarmax;
! typedef t_dop t_over, t_scalarover;
! typedef t_dop t_times, t_scalartimes;
! typedef t_dop t_minus, t_scalarminus;
#define DSPNEW(NAME,SYM) \
--- 54,66 ----
};
! #define DSPDECL(NAME) static t_class *NAME##_class, *scalar##NAME##_class; typedef t_dop t_##NAME, t_scalar##NAME;
! DSPDECL(plus)
! DSPDECL(minus)
! DSPDECL(times)
! DSPDECL(over)
! DSPDECL(max)
! DSPDECL(min)
! DSPDECL(lt)
! DSPDECL(gt)
#define DSPNEW(NAME,SYM) \
***************
*** 88,91 ****
--- 85,89 ----
class_sethelpsymbol(scalar##NAME##_class, gensym("sigbinops"));}
+ /* use when simd functions are present */
#define DSPDSP(NAME) \
static void NAME##_dsp(t_minus *x, t_signal **sp) { \
***************
*** 102,105 ****
--- 100,114 ----
else dsp_add(scalar##NAME##_perf8, 4, sp[0]->v, &x->b, sp[1]->v, n);}
+ /* use when simd functions are missing */
+ #define DSPDSP2(NAME) \
+ static void NAME##_dsp(t_minus *x, t_signal **sp) { \
+ const int n = sp[0]->n; \
+ if(n&7) dsp_add(NAME##_perform, 4, sp[0]->v, sp[1]->v, sp[2]->v, n); \
+ else dsp_add(NAME##_perf8, 4, sp[0]->v, sp[1]->v, sp[2]->v, n);} \
+ static void scalar##NAME##_dsp(t_scalarminus *x, t_signal **sp) { \
+ const int n = sp[0]->n;\
+ if(n&7) dsp_add(scalar##NAME##_perform, 4, sp[0]->v, &x->b,sp[1]->v, n);\
+ else dsp_add(scalar##NAME##_perf8, 4, sp[0]->v, &x->b, sp[1]->v, n);}
+
#define PERFORM(NAME,EXPR) \
t_int *NAME##_perform(t_int *w) { \
***************
*** 188,191 ****
--- 197,202 ----
PERFORM(min ,a<b?a:b) DSPDSP(min) DSPNEW(min ,"min~")
PERFORM(max ,a>b?a:b) DSPDSP(max) DSPNEW(max ,"max~")
+ PERFORM(lt ,a<b) DSPDSP2(lt) DSPNEW(lt ,"<~")
+ PERFORM(gt ,a>b) DSPDSP2(gt) DSPNEW(gt ,">~")
t_int *over_perform(t_int *w) {
***************
*** 3762,3765 ****
--- 3773,3778 ----
max_setup();
min_setup();
+ lt_setup();
+ gt_setup();
tab_tilde_setup();
More information about the Pd-cvs
mailing list