开方运算的DSP实现

(2014-04-07 10:59:36)
标签:

c

dsp

分类:DSP
  1. //===============================================

  2. //函数名:VSqrt3

  3. //功能: 实现对32位定点数的开方

  4. //性能: 60M主频28015硬件下运行时间小于10us

  5. //转自:http://read.pudn.com/downloads180/sourcecode/mpi/840129/sqrt.c__.htm

  6. unsigned longVSqrt3(unsigned longx )

  7. {

  8. unsigned longx1;

  9. ints=1;

  10. unsigned longg0,g1;

  11. if(x<=1) returnx;

  12. x1=x-1;

  13. if(x1>65535)

  14. {

  15. s+=8;

  16. x1>>=16;

  17. }

  18. if(x1>255)

  19. {

  20. s+=4;

  21. x1>>=8;

  22. }

  23. if(x1>15)

  24. {

  25. s+=2;

  26. x1>>=4;

  27. }

  28. if(x1>3)

  29. {

  30. s+=1;

  31. }

  32. g0=1;

  33. g0=g0<<s;

  34. g1 =(g0 +(x>>s))>>1;

  35. while(g1

  36. {

  37. g0=g1;

  38. g1=(g0+x/g0)>>1;

  39. }

  40. returng0;

  41. }

  42. //===============================================