From c3addc6fc099e7b8c6afef9fc6faf4548cbb6a64 Mon Sep 17 00:00:00 2001 From: Franz Zotter Date: Wed, 23 Aug 2006 16:51:34 +0000 Subject: mtx_conv should work properly now, I tested it. svn path=/trunk/externals/iem/iemmatrix/; revision=5721 --- src/mtx_conv.c | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/src/mtx_conv.c b/src/mtx_conv.c index df3eed7..5614da7 100644 --- a/src/mtx_conv.c +++ b/src/mtx_conv.c @@ -183,28 +183,25 @@ static void mTXConvKernelMatrix (MTXConv *mtx_conv_obj, t_symbol *s, int argc, readMatrixFromList (rows_k, columns_k, argv, mtx_conv_obj->k); } -static void convolveRow (int columns, int columns_c, t_float *x, t_float *c, t_float *y) -{ - int n,k,count; - for (k = 0; k < columns_c; k++) - for (n = k, count = columns; count--; n++) - y[n] += x[n-k] * c[k]; -} - static void convolveMtx (int rows, int columns, int rows_h, int columns_h, t_float **x, t_float **h, t_float **y) { int n,m,k,l; int rows_y=rows+rows_h-1; int cols_y=columns+columns_h-1; + int n_max, m_max; zeroTFloatMatrix (y, rows_y, cols_y); - for (n=0; nx); - //post("4"); + convolveMtx (rows, columns, rows_k, columns_k, mtx_conv_obj->x, mtx_conv_obj->k, mtx_conv_obj->y); - //post("5"); + writeMatrixIntoList (rows_y, columns_y, list_ptr+2, mtx_conv_obj->y); - //post("6"); SETSYMBOL(list_ptr, gensym("matrix")); SETFLOAT(list_ptr, rows_y); SETFLOAT(&list_ptr[1], columns_y); -- cgit v1.2.1