


/*




* SSE Convolution




* Copyright (C) 2012, 2013 Thomas Tsou <tom@tsou.cc>




*




* This library is free software; you can redistribute it and/or




* modify it under the terms of the GNU Lesser General Public




* License as published by the Free Software Foundation; either




* version 2.1 of the License, or (at your option) any later version.




*




* This library is distributed in the hope that it will be useful,




* but WITHOUT ANY WARRANTY; without even the implied warranty of




* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU




* Lesser General Public License for more details.




*/








#pragma once








/* 4tap SSE complexreal convolution */




void sse_conv_real4(const float *x, int x_len,




const float *h, int h_len,




float *y, int y_len,




int start, int len);








/* 8tap SSE complexreal convolution */




void sse_conv_real8(const float *x, int x_len,




const float *h, int h_len,




float *y, int y_len,




int start, int len);








/* 12tap SSE complexreal convolution */




void sse_conv_real12(const float *x, int x_len,




const float *h, int h_len,




float *y, int y_len,




int start, int len);








/* 16tap SSE complexreal convolution */




void sse_conv_real16(const float *x, int x_len,




const float *h, int h_len,




float *y, int y_len,




int start, int len);








/* 20tap SSE complexreal convolution */




void sse_conv_real20(const float *x, int x_len,




const float *h, int h_len,




float *y, int y_len,




int start, int len);








/* 4*Ntap SSE complexreal convolution */




void sse_conv_real4n(const float *x, int x_len,




const float *h, int h_len,




float *y, int y_len,




int start, int len);








/* 4*Ntap SSE complexcomplex convolution */




void sse_conv_cmplx_4n(const float *x, int x_len,




const float *h, int h_len,




float *y, int y_len,




int start, int len);








/* 8*Ntap SSE complexcomplex convolution */




void sse_conv_cmplx_8n(const float *x, int x_len,




const float *h, int h_len,




float *y, int y_len,




int start, int len);
