uncouple_timing.c
上传用户:aoeyumen
上传日期:2007-01-06
资源大小:3329k
文件大小:1k
源码类别:

DVD

开发平台:

Unix_Linux

  1. /* 
  2.  *  uncouple_timing.c
  3.  *
  4.  * Aaron Holtzman - May 1999
  5.  *
  6.  */
  7. #define HAVE_TSC
  8. #include <stdio.h>
  9. #include "ac3.h"
  10. #include "decode.h"
  11. #include "bitstream.h"
  12. #include "imdct.h"
  13. #include "timing.h"
  14. void convert_to_float(uint_16 exp, uint_16 mant, uint_32 *dest);
  15. uint_64 correction;
  16. void main(int argc,char *argv[])
  17. {
  18. int i;
  19. float foo;
  20. double time;
  21. double time_acc;
  22. uint_64 start,end,elapsed,correction;
  23. uint_32 iters = 100000;
  24. uint_16 exp;
  25. uint_16 mant;
  26. double mean = 0;
  27. double variance = 0;
  28. correction = timing_init();
  29. printf("nCorrection Factor = %lldn",correction);
  30. printf("Timing convert_to_float %d timesn",iters);
  31. for (i = 0; i < iters; i++)
  32. {
  33. mant =  rand();
  34. exp = rand() % 24;
  35. start = get_time();
  36. convert_to_float(exp ,mant,&foo);
  37. end = get_time();
  38. //printf("Iteration %d - %lld nsecn",i,end - start);
  39. if(i>0)
  40. {
  41. elapsed = end - start - correction;
  42. mean += elapsed;
  43. variance += elapsed * elapsed;
  44. }
  45. }
  46. mean /= iters;
  47. variance /= iters;
  48. variance -= mean * mean;
  49. printf("mean = %fn",mean);
  50. printf("variance= %fn",variance);
  51. }