[PD-cvs] pd/extra/expr~ fts_to_pd.h,1.2,1.3 makefile,1.6,1.7 vexp.c,1.4,1.5 vexp.h,1.3,1.4 vexp_fun.c,1.3,1.4 vexp_if.c,1.4,1.5

Miller Puckette millerpuckette at users.sourceforge.net
Sat Nov 6 17:07:25 CET 2004


Update of /cvsroot/pure-data/pd/extra/expr~
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10939/pd/extra/expr~

Modified Files:
	fts_to_pd.h makefile vexp.c vexp.h vexp_fun.c vexp_if.c 
Log Message:
0.38 test 9 (mostly bug fixes)



Index: vexp.c
===================================================================
RCS file: /cvsroot/pure-data/pd/extra/expr~/vexp.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** vexp.c	6 Sep 2004 20:20:27 -0000	1.4
--- vexp.c	6 Nov 2004 16:07:22 -0000	1.5
***************
*** 29,42 ****
  
  /*
!  * Feb 2002 -	added access to variables
!  *           	multiple expression support
!  *	     	new short hand forms for fexpr~
!  *			now $y or $y1 = $y1[-1] and $y2 = $y2[-1]
!  *		--sdy
   *
   * July 2002
!  * 		fixed bugs introduced in last changes in store and ET_EQ
[...3834 lines suppressed...]
!                                 post("%s", "||");
!                                 break;
!                         case OP_COMMA:
!                                 post("%c", ',');
!                                 break;
!                         case OP_SEMI:
!                                 post("%c", ';');
!                                 break;
!                         default:
!                                 post("expr: ex_print: bad op 0x%lx\n", eptr->ex_op);
!                         }
!                         break;
!                 default:
!                         post("expr: ex_print: bad type 0x%lx\n", eptr->ex_type);
!                 }
!                 eptr++;
!         }
!         post("\n");
  }
  

Index: vexp_fun.c
===================================================================
RCS file: /cvsroot/pure-data/pd/extra/expr~/vexp_fun.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** vexp_fun.c	23 Sep 2003 00:18:13 -0000	1.3
--- vexp_fun.c	6 Nov 2004 16:07:23 -0000	1.4
***************
*** 28,61 ****
   *
   * Nov. 2001 --sdy
!  * 	conversion for expr~
   *
   * Jan, 2002 --sdy
!  * 	added fmod()
   *
   * May  2002
!  * 	added floor and ceil for expr -- Orm Finnendahl
   *
[...2171 lines suppressed...]
!         return (xx);
  }
  FUNC_DEF_UNARY(ex_imodf, imodf, (double), 1);
***************
*** 1229,1235 ****
  fracmodf(double x)
  {
! 	double  xx;
  
! 	return(modf(x, &xx));
  }
  FUNC_DEF_UNARY(ex_modf, fracmodf, (double), 1);
--- 1229,1235 ----
  fracmodf(double x)
  {
!         double  xx;
  
!         return(modf(x, &xx));
  }
  FUNC_DEF_UNARY(ex_modf, fracmodf, (double), 1);

Index: fts_to_pd.h
===================================================================
RCS file: /cvsroot/pure-data/pd/extra/expr~/fts_to_pd.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** fts_to_pd.h	8 Aug 2002 16:42:32 -0000	1.2
--- fts_to_pd.h	6 Nov 2004 16:07:22 -0000	1.3
***************
*** 15,26 ****
  
  #ifdef MSP
! #define	t_atom		Atom
! #define	t_symbol	Symbol
! #define	pd_new(x)	newobject(x);
! #define pd_free(x)	freeobject(x);
! #define t_outlet	void
! #define t_binbuf	void
! typedef t_class		*t_pd;
! typedef float		t_floatarg;
  
  #include <stdlib.h>
--- 15,26 ----
  
  #ifdef MSP
! #define t_atom          Atom
! #define t_symbol        Symbol
! #define pd_new(x)       newobject(x);
! #define pd_free(x)      freeobject(x);
! #define t_outlet        void
! #define t_binbuf        void
! typedef t_class         *t_pd;
! typedef float           t_floatarg;
  
  #include <stdlib.h>

Index: vexp_if.c
===================================================================
RCS file: /cvsroot/pure-data/pd/extra/expr~/vexp_if.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** vexp_if.c	6 Sep 2004 20:20:27 -0000	1.4
--- vexp_if.c	6 Nov 2004 16:07:23 -0000	1.5
***************
*** 31,36 ****
   * Feb 2002 - added access to variables
   *            multiple expression support
!  *	      new short hand forms for fexpr~
!  *		now $y or $y1 = $y1[-1] and $y2 = $y2[-1]
   * --sdy
   */
--- 31,36 ----
   * Feb 2002 - added access to variables
   *            multiple expression support
!  *            new short hand forms for fexpr~
[...2162 lines suppressed...]
!                 optr->ex_int = 0;
!         }
  
!         fts_integer_vector_set_element(tw, argv->ex_int < 0 ? 0 : argv->ex_int % fts_integer_vector_get_size(tw), argv[1].ex_int);
!         *optr = argv[1];
  #endif
  }
***************
*** 1210,1214 ****
      vsprintf(error_string, fmt, ap);
   */ post(fmt, ap);
!  	va_end(ap);
  /* SDY
      fprintf(stderr, "error: %s\n", error_string);
--- 1210,1214 ----
      vsprintf(error_string, fmt, ap);
   */ post(fmt, ap);
!         va_end(ap);
  /* SDY
      fprintf(stderr, "error: %s\n", error_string);

Index: makefile
===================================================================
RCS file: /cvsroot/pure-data/pd/extra/expr~/makefile,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** makefile	6 Sep 2004 20:20:27 -0000	1.6
--- makefile	6 Nov 2004 16:07:22 -0000	1.7
***************
*** 82,86 ****
  LINUXCFLAGS = -DPD -O2 -funroll-loops -fomit-frame-pointer -fPIC \
      -Wall -W -Wshadow -Wstrict-prototypes \
!     -Wno-unused -Wno-parentheses -Wno-switch $(CFLAGS)
  
  LINUXINCLUDE =  -I../../src
--- 82,86 ----
  LINUXCFLAGS = -DPD -O2 -funroll-loops -fomit-frame-pointer -fPIC \
      -Wall -W -Wshadow -Wstrict-prototypes \
!     -Wno-unused -Wno-parentheses -Wno-switch 
  
  LINUXINCLUDE =  -I../../src

Index: vexp.h
===================================================================
RCS file: /cvsroot/pure-data/pd/extra/expr~/vexp.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** vexp.h	23 Sep 2003 00:18:13 -0000	1.3
--- vexp.h	6 Nov 2004 16:07:23 -0000	1.4
***************
*** 44,50 ****
  
  #ifdef MSP
! #define	t_atom	Atom
! #define	t_symbol Symbol
! #define	pd_new(x)	newobject(x);
  #define t_outlet void
  #endif
--- 44,50 ----
  
  #ifdef MSP
! #define t_atom  Atom
! #define t_symbol Symbol
! #define pd_new(x)       newobject(x);
  #define t_outlet void
  #endif
***************
*** 56,61 ****
   */
  
! #define	MAX_VARS	9
! #define	MINODES		10 /* was 200 */
  
  /* terminal defines */
--- 56,61 ----
   */
  
! #define MAX_VARS        9
! #define MINODES         10 /* was 200 */
  
  /* terminal defines */
***************
*** 68,221 ****
   */
  
! #define	OP_SEMI		((long)(1<<16|1))		/* ; */
! #define	OP_COMMA	((long)(2<<16|2))		/* , */
! #define	OP_LOR		((long)(3<<16|3))		/* || */
! #define	OP_LAND		((long)(4<<16|4))		/* && */
! #define	OP_OR		((long)(5<<16|5))		/* | */
! #define	OP_XOR		((long)(6<<16|6))		/* ^ */
! #define	OP_AND		((long)(7<<16|7))		/* & */
! #define	OP_NE		((long)(8<<16|8))		/* != */
! #define	OP_EQ		((long)(8<<16|9))		/* == */
! #define	OP_GE		((long)(9<<16|10))		/* >= */
! #define	OP_GT		((long)(9<<16|11))		/* > */
! #define	OP_LE		((long)(9<<16|12))		/* <= */
! #define	OP_LT		((long)(9<<16|13))		/* < */
! #define	OP_SR		((long)(10<<16|14))		/* >> */
! #define	OP_SL		((long)(10<<16|15))		/* << */
! #define	OP_SUB		((long)(11<<16|16))		/* - */
! #define	OP_ADD		((long)(11<<16|17))		/* + */
! #define	OP_MOD		((long)(12<<16|18))		/* % */
! #define	OP_DIV		((long)(12<<16|19))		/* / */
! #define	OP_MUL		((long)(12<<16|20))		/* * */
! #define	OP_UMINUS	((long)(13<<16|21))		/* - unary minus */
! #define	OP_NEG		((long)(13<<16|22))		/* ~ one complement */
! #define	OP_NOT		((long)(13<<16|23))		/* ! */
! #define	OP_RB		((long)(14<<16|24))		/* ] */
! #define	OP_LB		((long)(14<<16|25))		/* [ */
! #define	OP_RP		((long)(14<<16|26))		/* ) */
! #define	OP_LP		((long)(14<<16|27))		/* ( */
! #define OP_STORE	((long)(15<<16|28))		/* = */
! #define	HI_PRE		((long)(100<<16))	/* infinite precedence */
! #define	PRE_MASK	((long)0xffff0000)	/* precedence level mask */
  
  struct ex_ex;
  
! #define	name_ok(c)	(((c)=='_') || ((c)>='a' && (c)<='z') || \
! 			((c)>='A' && (c)<='Z') || ((c) >= '0' && (c) <= '9'))
! #define unary_op(x)	((x) == OP_NOT || (x) == OP_NEG || (x) == OP_UMINUS)
  
  struct ex_ex {
! 	union {
! 		long v_int;
! 		float v_flt;
! 		t_float *v_vec;		/* this is an for allocated vector */
! 		long op;
! 		char *ptr;
! 	} ex_cont;		/* content */
! #define	ex_int		ex_cont.v_int
! #define	ex_flt		ex_cont.v_flt
! #define	ex_vec		ex_cont.v_vec
! #define	ex_op		ex_cont.op
! #define	ex_ptr		ex_cont.ptr
! 	long ex_type;		/* type of the node */
  };
! #define	exNULL	((struct ex_ex *)0)
  
  /* defines for ex_type */
! #define	ET_INT		1		/* an int */
! #define	ET_FLT		2		/* a float */
! #define ET_OP		3		/* operator */
! #define	ET_STR		4		/* string */
! #define ET_TBL		5		/* a table, the content is a pointer */
! #define	ET_FUNC		6		/* a function */
! #define	ET_SYM		7		/* symbol ("string") */
! #define	ET_VSYM		8		/* variable symbol ("$s?") */
! 				/* we treat parenthesis and brackets */
! 				/* special to keep a pointer to their */
! 				/* match in the content */
! #define	ET_LP		9		/* left parenthesis */
! #define	ET_LB		10		/* left bracket */
! #define	ET_II		11		/* and integer inlet */
! #define	ET_FI		12		/* float inlet */
! #define	ET_SI		13		/* string inlet */
! #define	ET_VI		14		/* signal inlet */
! #define	ET_VEC		15		/* allocated signal vector */
! 				/* special types for fexpr~ */
! #define	ET_YO		16		/* vector output for fexpr~ */
! #define	ET_YOM1		17		/* shorthand for $y?[-1] */
! #define	ET_XI		18		/* vector input for fexpr~ */
! #define	ET_XI0		20		/* shorthand for $x?[0] */
! #define	ET_VAR		21		/* variable */
  
  /* defines for ex_flags */
! #define EF_TYPE_MASK	0x07	/* first three bits define the type of expr */
! #define EF_EXPR		0x01	/* expr  - control in and out */
! #define EF_EXPR_TILDE	0x02	/* expr~ signal and control in, signal out */
! #define EF_FEXPR_TILDE	0x04	/* fexpr~ filter expression */
  
! #define	EF_STOP		0x08	/* is it stopped used for expr~ and fexpr~ */
! #define	EF_VERBOSE	0x10	/* verbose mode */
  
! #define	IS_EXPR(x)	  ((((x)->exp_flags&EF_TYPE_MASK)|EF_EXPR) == EF_EXPR)
! #define	IS_EXPR_TILDE(x)  \
                   ((((x)->exp_flags&EF_TYPE_MASK)|EF_EXPR_TILDE)==EF_EXPR_TILDE)
! #define	IS_FEXPR_TILDE(x) \
                 ((((x)->exp_flags&EF_TYPE_MASK)|EF_FEXPR_TILDE)==EF_FEXPR_TILDE)
  
! #define	SET_EXPR(x)	(x)->exp_flags |= EF_EXPR; \
! 			(x)->exp_flags &= ~EF_EXPR_TILDE;  \
! 			(x)->exp_flags &= ~EF_FEXPR_TILDE; 
  
! #define	SET_EXPR_TILDE(x)	(x)->exp_flags &= ~EF_EXPR; \
! 				(x)->exp_flags |= EF_EXPR_TILDE;  \
! 				(x)->exp_flags &= ~EF_FEXPR_TILDE; 
  
! #define	SET_FEXPR_TILDE(x)	(x)->exp_flags &= ~EF_EXPR; \
! 				(x)->exp_flags &= ~EF_EXPR_TILDE;  \
! 				(x)->exp_flags |= EF_FEXPR_TILDE; 
  
  /*
   * defines for expr_error
   */
! #define	EE_DZ		0x01	/* divide by zero error */
! #define	EE_BI_OUTPUT	0x02	/* Bad output index */
! #define	EE_BI_INPUT	0x04	/* Bad input index */
! #define	EE_NOTABLE	0x08	/* NO TABLE */
! #define	EE_NOVAR	0x10	/* NO VARIABLE */
  
  typedef struct expr {
  #ifdef PD
! 	t_object exp_ob;
  #else /* MSP */
! 	t_pxobject exp_ob;
  #endif
! 	int	exp_flags;		/* are we expr~, fexpr~, or expr */
! 	int	exp_error;		/* reported errors */
! 	int	exp_nexpr;		/* number of expressions */
! 	char	*exp_string;		/* the full expression string */
! 	char	*exp_str;		/* current parsing position */
! 	t_outlet *exp_outlet[MAX_VARS];
  #ifdef PD
! 	struct _exprproxy *exp_proxy;
  #else /* MAX */
! 	void *exp_proxy[MAX_VARS];
! 	long exp_proxy_id;
  #endif
! 	struct ex_ex *exp_stack[MAX_VARS];
! 	struct ex_ex exp_var[MAX_VARS];
! 	struct ex_ex exp_res[MAX_VARS];	/* the evluation result */
! 	t_float *exp_p_var[MAX_VARS];
! 	t_float *exp_p_res[MAX_VARS];	/* the previous evaluation result */
! 	t_float *exp_tmpres[MAX_VARS];		/* temporty result for fexpr~ */
! 	int exp_vsize;			/* the size of the signal vector */
! 	int exp_nivec;			/* # of vector inlets */
! 	float exp_f;   		/* control value to be transformed to signal */
  } t_expr;
  
  typedef struct ex_funcs {
! 	char *f_name;					/* function name */
! 	void (*f_func)(t_expr *, long, struct ex_ex *, struct ex_ex *);
! 	  /* the real function performing the function (void, no return!!!) */
! 	long f_argc;				/* number of arguments */
  } t_ex_func;
  
--- 68,221 ----
   */
  
! #define OP_SEMI         ((long)(1<<16|1))               /* ; */
! #define OP_COMMA        ((long)(2<<16|2))               /* , */
! #define OP_LOR          ((long)(3<<16|3))               /* || */
! #define OP_LAND         ((long)(4<<16|4))               /* && */
! #define OP_OR           ((long)(5<<16|5))               /* | */
! #define OP_XOR          ((long)(6<<16|6))               /* ^ */
! #define OP_AND          ((long)(7<<16|7))               /* & */
! #define OP_NE           ((long)(8<<16|8))               /* != */
! #define OP_EQ           ((long)(8<<16|9))               /* == */
! #define OP_GE           ((long)(9<<16|10))              /* >= */
! #define OP_GT           ((long)(9<<16|11))              /* > */
! #define OP_LE           ((long)(9<<16|12))              /* <= */
! #define OP_LT           ((long)(9<<16|13))              /* < */
! #define OP_SR           ((long)(10<<16|14))             /* >> */
! #define OP_SL           ((long)(10<<16|15))             /* << */
! #define OP_SUB          ((long)(11<<16|16))             /* - */
! #define OP_ADD          ((long)(11<<16|17))             /* + */
! #define OP_MOD          ((long)(12<<16|18))             /* % */
! #define OP_DIV          ((long)(12<<16|19))             /* / */
! #define OP_MUL          ((long)(12<<16|20))             /* * */
! #define OP_UMINUS       ((long)(13<<16|21))             /* - unary minus */
! #define OP_NEG          ((long)(13<<16|22))             /* ~ one complement */
! #define OP_NOT          ((long)(13<<16|23))             /* ! */
! #define OP_RB           ((long)(14<<16|24))             /* ] */
! #define OP_LB           ((long)(14<<16|25))             /* [ */
! #define OP_RP           ((long)(14<<16|26))             /* ) */
! #define OP_LP           ((long)(14<<16|27))             /* ( */
! #define OP_STORE        ((long)(15<<16|28))             /* = */
! #define HI_PRE          ((long)(100<<16))       /* infinite precedence */
! #define PRE_MASK        ((long)0xffff0000)      /* precedence level mask */
  
  struct ex_ex;
  
! #define name_ok(c)      (((c)=='_') || ((c)>='a' && (c)<='z') || \
!                         ((c)>='A' && (c)<='Z') || ((c) >= '0' && (c) <= '9'))
! #define unary_op(x)     ((x) == OP_NOT || (x) == OP_NEG || (x) == OP_UMINUS)
  
  struct ex_ex {
!         union {
!                 long v_int;
!                 float v_flt;
!                 t_float *v_vec;         /* this is an for allocated vector */
!                 long op;
!                 char *ptr;
!         } ex_cont;              /* content */
! #define ex_int          ex_cont.v_int
! #define ex_flt          ex_cont.v_flt
! #define ex_vec          ex_cont.v_vec
! #define ex_op           ex_cont.op
! #define ex_ptr          ex_cont.ptr
!         long ex_type;           /* type of the node */
  };
! #define exNULL  ((struct ex_ex *)0)
  
  /* defines for ex_type */
! #define ET_INT          1               /* an int */
! #define ET_FLT          2               /* a float */
! #define ET_OP           3               /* operator */
! #define ET_STR          4               /* string */
! #define ET_TBL          5               /* a table, the content is a pointer */
! #define ET_FUNC         6               /* a function */
! #define ET_SYM          7               /* symbol ("string") */
! #define ET_VSYM         8               /* variable symbol ("$s?") */
!                                 /* we treat parenthesis and brackets */
!                                 /* special to keep a pointer to their */
!                                 /* match in the content */
! #define ET_LP           9               /* left parenthesis */
! #define ET_LB           10              /* left bracket */
! #define ET_II           11              /* and integer inlet */
! #define ET_FI           12              /* float inlet */
! #define ET_SI           13              /* string inlet */
! #define ET_VI           14              /* signal inlet */
! #define ET_VEC          15              /* allocated signal vector */
!                                 /* special types for fexpr~ */
! #define ET_YO           16              /* vector output for fexpr~ */
! #define ET_YOM1         17              /* shorthand for $y?[-1] */
! #define ET_XI           18              /* vector input for fexpr~ */
! #define ET_XI0          20              /* shorthand for $x?[0] */
! #define ET_VAR          21              /* variable */
  
  /* defines for ex_flags */
! #define EF_TYPE_MASK    0x07    /* first three bits define the type of expr */
! #define EF_EXPR         0x01    /* expr  - control in and out */
! #define EF_EXPR_TILDE   0x02    /* expr~ signal and control in, signal out */
! #define EF_FEXPR_TILDE  0x04    /* fexpr~ filter expression */
  
! #define EF_STOP         0x08    /* is it stopped used for expr~ and fexpr~ */
! #define EF_VERBOSE      0x10    /* verbose mode */
  
! #define IS_EXPR(x)        ((((x)->exp_flags&EF_TYPE_MASK)|EF_EXPR) == EF_EXPR)
! #define IS_EXPR_TILDE(x)  \
                   ((((x)->exp_flags&EF_TYPE_MASK)|EF_EXPR_TILDE)==EF_EXPR_TILDE)
! #define IS_FEXPR_TILDE(x) \
                 ((((x)->exp_flags&EF_TYPE_MASK)|EF_FEXPR_TILDE)==EF_FEXPR_TILDE)
  
! #define SET_EXPR(x)     (x)->exp_flags |= EF_EXPR; \
!                         (x)->exp_flags &= ~EF_EXPR_TILDE;  \
!                         (x)->exp_flags &= ~EF_FEXPR_TILDE; 
  
! #define SET_EXPR_TILDE(x)       (x)->exp_flags &= ~EF_EXPR; \
!                                 (x)->exp_flags |= EF_EXPR_TILDE;  \
!                                 (x)->exp_flags &= ~EF_FEXPR_TILDE; 
  
! #define SET_FEXPR_TILDE(x)      (x)->exp_flags &= ~EF_EXPR; \
!                                 (x)->exp_flags &= ~EF_EXPR_TILDE;  \
!                                 (x)->exp_flags |= EF_FEXPR_TILDE; 
  
  /*
   * defines for expr_error
   */
! #define EE_DZ           0x01    /* divide by zero error */
! #define EE_BI_OUTPUT    0x02    /* Bad output index */
! #define EE_BI_INPUT     0x04    /* Bad input index */
! #define EE_NOTABLE      0x08    /* NO TABLE */
! #define EE_NOVAR        0x10    /* NO VARIABLE */
  
  typedef struct expr {
  #ifdef PD
!         t_object exp_ob;
  #else /* MSP */
!         t_pxobject exp_ob;
  #endif
!         int     exp_flags;              /* are we expr~, fexpr~, or expr */
!         int     exp_error;              /* reported errors */
!         int     exp_nexpr;              /* number of expressions */
!         char    *exp_string;            /* the full expression string */
!         char    *exp_str;               /* current parsing position */
!         t_outlet *exp_outlet[MAX_VARS];
  #ifdef PD
!         struct _exprproxy *exp_proxy;
  #else /* MAX */
!         void *exp_proxy[MAX_VARS];
!         long exp_proxy_id;
  #endif
!         struct ex_ex *exp_stack[MAX_VARS];
!         struct ex_ex exp_var[MAX_VARS];
!         struct ex_ex exp_res[MAX_VARS]; /* the evluation result */
!         t_float *exp_p_var[MAX_VARS];
!         t_float *exp_p_res[MAX_VARS];   /* the previous evaluation result */
!         t_float *exp_tmpres[MAX_VARS];          /* temporty result for fexpr~ */
!         int exp_vsize;                  /* the size of the signal vector */
!         int exp_nivec;                  /* # of vector inlets */
!         float exp_f;            /* control value to be transformed to signal */
  } t_expr;
  
  typedef struct ex_funcs {
!         char *f_name;                                   /* function name */
!         void (*f_func)(t_expr *, long, struct ex_ex *, struct ex_ex *);
!           /* the real function performing the function (void, no return!!!) */
!         long f_argc;                            /* number of arguments */
  } t_ex_func;
  
***************
*** 228,237 ****
  void ex_mkvector(t_float *fp, t_float x, int size);
  extern void ex_size(t_expr *expr, long int argc, struct ex_ex *argv,
! 							struct ex_ex *optr);
! extern void ex_sum(t_expr *expr, long int argc, struct ex_ex *argv,									struct ex_ex *optr);
! extern void ex_Sum(t_expr *expr, long int argc, struct ex_ex *argv,									struct ex_ex *optr);
! extern void ex_avg(t_expr *expr, long int argc, struct ex_ex *argv,									struct ex_ex *optr);
! extern void ex_Avg(t_expr *expr, long int argc, struct ex_ex *argv,									struct ex_ex *optr);
! extern void ex_store(t_expr *expr, long int argc, struct ex_ex *argv,									struct ex_ex *optr);
  
  int value_getonly(t_symbol *s, t_float *f);
--- 228,237 ----
  void ex_mkvector(t_float *fp, t_float x, int size);
  extern void ex_size(t_expr *expr, long int argc, struct ex_ex *argv,
!                                                         struct ex_ex *optr);
! extern void ex_sum(t_expr *expr, long int argc, struct ex_ex *argv,                                                                     struct ex_ex *optr);
! extern void ex_Sum(t_expr *expr, long int argc, struct ex_ex *argv,                                                                     struct ex_ex *optr);
! extern void ex_avg(t_expr *expr, long int argc, struct ex_ex *argv,                                                                     struct ex_ex *optr);
! extern void ex_Avg(t_expr *expr, long int argc, struct ex_ex *argv,                                                                     struct ex_ex *optr);
! extern void ex_store(t_expr *expr, long int argc, struct ex_ex *argv,                                                                   struct ex_ex *optr);
  
  int value_getonly(t_symbol *s, t_float *f);





More information about the Pd-cvs mailing list