/** * egg_array_float_convolve: * * @data: input array * @kernel: kernel array * Return value: Colvolved array, same length as data * * Convolves an array with a kernel, and returns an array the same size. * THIS FUNCTION IS REALLY SLOW... **/ EggArrayFloat * egg_array_float_convolve (EggArrayFloat *data, EggArrayFloat *kernel) { gint length_data; gint length_kernel; EggArrayFloat *result; gfloat value; gint i; gint j; gint idx; length_data = data->len; length_kernel = kernel->len; result = egg_array_float_new (length_data); /* convolve */ for (i=0;i= length_data) idx = length_data - 1; value += g_array_index (data, gfloat, idx) * g_array_index (kernel, gfloat, j); } g_array_index (result, gfloat, i) = value; } return result; }