?? fir3.c
字號:
#include <ops/custom_defs.h>
#define NROF_SAMPLES 400
void
initialize( char *a, char *b )
{
int i;
for(i = 0; i < 8; i++)
b[i] = i - 4;
for(i = 0; i < 8; i++)
a[i] = 0; /* Prepend zeros */
for(i = 8; i < NROF_SAMPLES; i++)
a[i] = i - 24; /* Actual data */
for(i = NROF_SAMPLES; i < NROF_SAMPLES + 8; i++)
a[i] = 0; /* Append zeros */
}
/*
* Implementation with restricted pointers
*/
restrict_direct_convolution(
char * restrict a,
char * restrict b,
int * restrict c )
{
int k, j;
for(k = 0; k < NROF_SAMPLES; k += 4) {
c[0] = b[0]*a[0] + b[1]*a[-1] + b[2]*a[-2] + b[3]*a[-3]
+ b[4]*a[-4] + b[5]*a[-5] + b[6]*a[-6] + b[7]*a[-7];
c[1] = b[0]*a[1] + b[1]*a[0] + b[2]*a[-1] + b[3]*a[-2]
+ b[4]*a[-3] + b[5]*a[-4] + b[6]*a[-5] + b[7]*a[-6];
c[2] = b[0]*a[2] + b[1]*a[1] + b[2]*a[0] + b[3]*a[-1]
+ b[4]*a[-2] + b[5]*a[-3] + b[6]*a[-4] + b[7]*a[-5];
c[3] = b[0]*a[3] + b[1]*a[2] + b[2]*a[1] + b[3]*a[0]
+ b[4]*a[-1] + b[5]*a[-2] + b[6]*a[-3] + b[7]*a[-4];
a += 4;
c += 4;
}
}
int
main( void )
{
char a[8+NROF_SAMPLES], b[8];
int c[NROF_SAMPLES];
initialize( a, b );
restrict_direct_convolution( a + 8, b, c );
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -