From 2b60d55c919e7588f5aff15936e83c300b3660bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Tue, 22 Mar 2005 20:58:25 +0000 Subject: zexy-2.0: - use of abstractions for objects that allow it - some objects are build both as externals and abstractions (as slower fallbacks) - code-layout is now 1:1 c-file<->object (this should allow for building of zexy as a collection of externals instead as a big library) - matrix-objects have moved to iemmatrix !! svn path=/trunk/externals/zexy/; revision=2641 --- src/z_stat.c | 168 ----------------------------------------------------------- 1 file changed, 168 deletions(-) delete mode 100644 src/z_stat.c (limited to 'src/z_stat.c') diff --git a/src/z_stat.c b/src/z_stat.c deleted file mode 100644 index d667a5a..0000000 --- a/src/z_stat.c +++ /dev/null @@ -1,168 +0,0 @@ -#include "zexy.h" -#include - -#ifdef NT -#pragma warning( disable : 4244 ) -#pragma warning( disable : 4305 ) -#define sqrtf sqrt -#endif - -#ifdef MACOSX -#define sqrtf sqrt -#endif - -/* mean :: the mean of a list of floats */ - -static t_class *mean_class; - -typedef struct _mean -{ - t_object x_obj; -} t_mean; - -static void mean_list(t_mean *x, t_symbol *s, int argc, t_atom *argv) -{ - t_float factor = 1./argc; - t_float sum = 0; - - while(argc--)sum+=atom_getfloat(argv++); - - outlet_float(x->x_obj.ob_outlet,sum*factor); -} - -static void *mean_new(void) -{ - t_mean *x = (t_mean *)pd_new(mean_class); - - outlet_new(&x->x_obj, gensym("float")); - - return (x); -} - -static void mean_help(void) -{ - post("mean\t:: calculate the mean of a list of floats"); -} - -static void mean_setup(void) -{ - mean_class = class_new(gensym("mean"), (t_newmethod)mean_new, 0, - sizeof(t_mean), 0, A_DEFFLOAT, 0); - - class_addlist(mean_class, (t_method)mean_list); - class_addmethod(mean_class, (t_method)mean_help, gensym("help"), 0); - - class_sethelpsymbol(mean_class, gensym("zexy/mean")); -} - -/* minmax :: get minimum and maximum of a list */ - -static t_class *minmax_class; - -typedef struct _minmax -{ - t_object x_obj; - t_float min; - t_float max; - - t_outlet *mino, *maxo; -} t_minmax; - -static void minmax_bang(t_minmax *x) -{ - outlet_float(x->maxo,x->max); - outlet_float(x->mino,x->min); -} - -static void minmax_list(t_minmax *x, t_symbol *s, int argc, t_atom *argv) -{ - t_float min = atom_getfloat(argv++); - t_float max=min; - argc--; - - while(argc--){ - t_float f = atom_getfloat(argv++); - if (fmax)max=f; - } - - x->min=min; - x->max=max; - - minmax_bang(x); -} - -static void *minmax_new(void) -{ - t_minmax *x = (t_minmax *)pd_new(minmax_class); - - x->mino=outlet_new(&x->x_obj, gensym("float")); - x->maxo=outlet_new(&x->x_obj, gensym("float")); - - x->min = x->max = 0; - - return (x); -} - -static void minmax_help(void) -{ - post("minmax\t:: get minimum and maximum of a list of floats"); -} - -static void minmax_setup(void) -{ - minmax_class = class_new(gensym("minmax"), (t_newmethod)minmax_new, 0, - sizeof(t_minmax), 0, A_DEFFLOAT, 0); - - class_addlist(minmax_class, (t_method)minmax_list); - class_addbang(minmax_class, (t_method)minmax_bang); - class_addmethod(minmax_class, (t_method)minmax_help, gensym("help"), 0); - - class_sethelpsymbol(minmax_class, gensym("zexy/minmax")); -} - -/* length :: get minimum and maximum of a list */ - -static t_class *length_class; - -typedef struct _length -{ - t_object x_obj; -} t_length; - -static void length_list(t_length *x, t_symbol *s, int argc, t_atom *argv) -{ - outlet_float(x->x_obj.ob_outlet, (t_float)argc); -} -static void length_any(t_length *x, t_symbol *s, int argc, t_atom *argv) -{ - outlet_float(x->x_obj.ob_outlet, (t_float)argc+1); -} - -static void *length_new(void) -{ - t_length *x = (t_length *)pd_new(length_class); - outlet_new(&x->x_obj, gensym("float")); - return (x); -} - -static void length_setup(void) -{ - length_class = class_new(gensym("length"), (t_newmethod)length_new, 0, - sizeof(t_length), 0, A_DEFFLOAT, 0); - - class_addlist(length_class, (t_method)length_list); - class_addanything(length_class, (t_method)length_any); - // class_addbang(length_class, (t_method)length_bang); - - class_sethelpsymbol(length_class, gensym("zexy/length")); -} - -/* global setup routine */ - -void z_stat_setup(void) -{ - mean_setup(); - minmax_setup(); - length_setup(); -} -- cgit v1.2.1