⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dtest.c

📁 FEC Optimized viterbi code
💻 C
字号:
/* Test dot-product function */#include <stdio.h>#include <stdlib.h>#include <memory.h>#include <math.h>#include "config.h"#ifdef HAVE_GETOPT_H#include <getopt.h>#endif#include "fec.h"#if HAVE_GETOPT_LONGstruct option Options[] = {  {"force-altivec",0,NULL,'a'},  {"force-port",0,NULL,'p'},  {"force-mmx",0,NULL,'m'},  {"force-sse",0,NULL,'s'},  {"force-sse2",0,NULL,'t'},  {"trials",0,NULL,'n'},  {NULL},};#endifint main(int argc,char *argv[]){  short coeffs[512];  short input[2048];  int trials=1000,d;  int errors = 0;#if HAVE_GETOPT_LONG  while((d = getopt_long(argc,argv,"apmstn:",Options,NULL)) != EOF){#else  while((d = getopt(argc,argv,"apmstn:")) != EOF){#endif    switch(d){    case 'a':      Cpu_mode = ALTIVEC;      break;    case 'p':      Cpu_mode = PORT;      break;    case 'm':      Cpu_mode = MMX;      break;    case 's':      Cpu_mode = SSE;      break;    case 't':      Cpu_mode = SSE2;      break;    case 'n':      trials = atoi(optarg);      break;    }  }  while(trials--){    long port_result;    long simd_result;    int ntaps;    int i;    int csum = 0;    int offset;    void *dp_simd,*dp_port;    /* Generate set of coefficients     * limit sum of absolute values to 32767 to avoid overflow     */    memset(coeffs,0,sizeof(coeffs));    for(i=0;i<512;i++){      double gv;      gv = normal_rand(0.,100.);      if(csum + fabs(gv) > 32767)	break;      coeffs[i] = gv;      csum += fabs(gv);    }    ntaps = i;    /* Compare results to portable C version for a bunch of random data buffers and offsets */    dp_simd = initdp(coeffs,ntaps);    dp_port = initdp_port(coeffs,ntaps);        for(i=0;i<2048;i++)      input[i] = random();        offset = random() & 511;    simd_result = dotprod(dp_simd,input+offset);    port_result = dotprod_port(dp_port,input+offset);    if(simd_result != port_result){      errors++;    }  }  printf("dtest: %d errors\n",errors);  exit(0);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -