[PD-cvs] externals/iem/iemmatrix/src mtx_minmax.c,1.1,1.2
Franz Zotter
fzotter at users.sourceforge.net
Tue Sep 20 15:26:50 CEST 2005
Update of /cvsroot/pure-data/externals/iem/iemmatrix/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18925
Modified Files:
mtx_minmax.c
Log Message:
changed the formerly called "dimension" to "mode".
Now following modes are available: "col"/"column", "row" or anything else, e.g. "whole". This should be done for mtx_cumsum and mtx_sort too. perhaps this could be a more unifying definition for "row-wise" and "column-wise" operation modes.
Index: mtx_minmax.c
===================================================================
RCS file: /cvsroot/pure-data/externals/iem/iemmatrix/src/mtx_minmax.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** mtx_minmax.c 19 Sep 2005 14:47:49 -0000 1.1
--- mtx_minmax.c 20 Sep 2005 13:26:48 -0000 1.2
***************
*** 17,20 ****
--- 17,23 ----
static t_class *mtx_minmax_class;
+ static t_symbol *row_sym;
+ static t_symbol *col_sym;
+ static t_symbol *col_sym2;
typedef struct _MTXminmax_ MTXminmax;
***************
*** 24,30 ****
int size;
int outsize;
! int minmax_dimension;
! int minmax_direction;
! int operator_minimum; // 1 if we are [mtx_min], 0 if we are [mtx_max]
t_outlet *list_outlet;
--- 27,32 ----
int size;
int outsize;
! t_symbol *minmax_mode;
! int operator_minimum; // 1 if we are [mtx_min], 0 if we are [mtx_max]
t_outlet *list_outlet;
***************
*** 40,57 ****
}
! static void mTXSetMinMaxDirection (MTXminmax *mtx_minmax_obj, t_float c_dir)
! {
! int direction = (int) c_dir;
! if ((direction != -1) && (direction != 1))
! direction = 1;
! mtx_minmax_obj->minmax_direction = direction;
! }
!
! static void mTXSetMinMaxDimension (MTXminmax *mtx_minmax_obj, t_float c_dim)
{
! int dimension = (int) c_dim;
! dimension = (dimension > 0)?dimension:0;
! dimension = (dimension < 3)?dimension:3;
! mtx_minmax_obj->minmax_dimension = dimension;
}
--- 42,48 ----
}
! static void mTXSetMinMaxMode (MTXminmax *mtx_minmax_obj, t_symbol *m_sym)
{
! mtx_minmax_obj->minmax_mode = m_sym;
}
***************
*** 59,74 ****
{
MTXminmax *mtx_minmax_obj = (MTXminmax *) pd_new (mtx_minmax_class);
! int c_dim = 1;
! int c_dir = 1;
! switch ((argc>2)?2:argc) {
! case 2:
! c_dir = atom_getint(argv+1);
case 1:
! c_dim = atom_getint(argv);
}
mtx_minmax_obj->operator_minimum = 1;
! mTXSetMinMaxDimension (mtx_minmax_obj, (t_float) c_dim);
! mTXSetMinMaxDirection (mtx_minmax_obj, (t_float) c_dir);
mtx_minmax_obj->list_outlet = outlet_new (&mtx_minmax_obj->x_obj, gensym("matrix"));
--- 50,61 ----
{
MTXminmax *mtx_minmax_obj = (MTXminmax *) pd_new (mtx_minmax_class);
! t_symbol *c_mode = 0;
! switch ((argc>1)?1:argc) {
case 1:
! c_mode = atom_getsymbol (argv);
}
mtx_minmax_obj->operator_minimum = 1;
! mTXSetMinMaxMode (mtx_minmax_obj, c_mode);
mtx_minmax_obj->list_outlet = outlet_new (&mtx_minmax_obj->x_obj, gensym("matrix"));
***************
*** 78,93 ****
{
MTXminmax *mtx_minmax_obj = (MTXminmax *) pd_new (mtx_minmax_class);
! int c_dim = 1;
! int c_dir = 1;
! switch ((argc>2)?2:argc) {
! case 2:
! c_dir = atom_getint(argv+1);
case 1:
! c_dim = atom_getint(argv);
}
mtx_minmax_obj->operator_minimum = 0;
! mTXSetMinMaxDimension (mtx_minmax_obj, (t_float) c_dim);
! mTXSetMinMaxDirection (mtx_minmax_obj, (t_float) c_dir);
mtx_minmax_obj->list_outlet = outlet_new (&mtx_minmax_obj->x_obj, gensym("matrix"));
--- 65,76 ----
{
MTXminmax *mtx_minmax_obj = (MTXminmax *) pd_new (mtx_minmax_class);
! t_symbol *c_mode = 0;
! switch ((argc>1)?1:argc) {
case 1:
! c_mode = atom_getsymbol (argv);
}
mtx_minmax_obj->operator_minimum = 0;
! mTXSetMinMaxMode (mtx_minmax_obj, c_mode);
mtx_minmax_obj->list_outlet = outlet_new (&mtx_minmax_obj->x_obj, gensym("matrix"));
***************
*** 228,241 ****
list_out += 2;
//copyList (size, argv, list_out);
! switch (mtx_minmax_obj->minmax_dimension) {
! case 0:
! columns_out = 1;
! rows_out = 1;
! if (mtx_minmax_obj->operator_minimum)
! minListRows (1, size, list_in, list_out);
! else
! maxListRows (1, size, list_in, list_out);
! break;
! case 1:
rows_out = rows;
columns_out = 1;
--- 211,215 ----
list_out += 2;
//copyList (size, argv, list_out);
! if (mtx_minmax_obj->minmax_mode == row_sym) {
rows_out = rows;
columns_out = 1;
***************
*** 244,249 ****
else
maxListRows (rows, columns, list_in, list_out);
! break;
! case 2:
rows_out = 1;
columns_out = columns;
--- 218,224 ----
else
maxListRows (rows, columns, list_in, list_out);
! }
! else if ((mtx_minmax_obj->minmax_mode == col_sym) ||
! (mtx_minmax_obj->minmax_mode == col_sym2)) {
rows_out = 1;
columns_out = columns;
***************
*** 252,256 ****
else
maxListColumns (rows, columns, list_in, list_out);
! break;
}
mtx_minmax_obj->outsize = columns_out * rows_out;
--- 227,238 ----
else
maxListColumns (rows, columns, list_in, list_out);
! }
! else {
! columns_out = 1;
! rows_out = 1;
! if (mtx_minmax_obj->operator_minimum)
! minListRows (1, size, list_in, list_out);
! else
! maxListRows (1, size, list_in, list_out);
}
mtx_minmax_obj->outsize = columns_out * rows_out;
***************
*** 274,281 ****
class_addbang (mtx_minmax_class, (t_method) mTXMinMaxBang);
class_addmethod (mtx_minmax_class, (t_method) mTXMinMaxMatrix, gensym("matrix"), A_GIMME,0);
! class_addmethod (mtx_minmax_class, (t_method) mTXSetMinMaxDimension, gensym("dimension"), A_DEFFLOAT,0);
! class_addmethod (mtx_minmax_class, (t_method) mTXSetMinMaxDirection, gensym("direction"), A_DEFFLOAT,0);
class_addcreator ((t_newmethod) newMTXMax, gensym("mtx_max"), A_GIMME,0);
class_sethelpsymbol (mtx_minmax_class, gensym("iemmatrix/mtx_minmax"));
}
--- 256,266 ----
class_addbang (mtx_minmax_class, (t_method) mTXMinMaxBang);
class_addmethod (mtx_minmax_class, (t_method) mTXMinMaxMatrix, gensym("matrix"), A_GIMME,0);
! // class_addmethod (mtx_minmax_class, (t_method) mTXSetMinMaxDimension, gensym("dimension"), A_DEFFLOAT,0);
! class_addmethod (mtx_minmax_class, (t_method) mTXSetMinMaxMode, gensym("mode"), A_DEFSYMBOL ,0);
class_addcreator ((t_newmethod) newMTXMax, gensym("mtx_max"), A_GIMME,0);
class_sethelpsymbol (mtx_minmax_class, gensym("iemmatrix/mtx_minmax"));
+ row_sym = gensym("row");
+ col_sym = gensym("col");
+ col_sym2 = gensym("column");
}
More information about the Pd-cvs
mailing list