-
大小: 140KB文件類型: .xz金幣: 1下載: 0 次發(fā)布日期: 2021-06-06
- 語(yǔ)言: C/C++
- 標(biāo)簽: CPU??浮點(diǎn)運(yùn)算??
資源簡(jiǎn)介
經(jīng)典super pi源碼,c語(yǔ)言實(shí)現(xiàn)的FFT算法,用于測(cè)試cpu浮點(diǎn)計(jì)算性能。
Super PI是利用CPU的浮點(diǎn)運(yùn)算能力來計(jì)算出π(圓周率),所以目前普遍被超頻玩家用做測(cè)試系統(tǒng)穩(wěn)定性和測(cè)試,CPU計(jì)算完后特定位數(shù)圓周率所需的時(shí)間。
make #如果是64位,請(qǐng)把 -march=i686 去掉;
./pi_css5 $((1<<20)) # 小數(shù)點(diǎn)后2^20次方的小數(shù)點(diǎn)位數(shù)
代碼片段和文件信息
/*
Fast?Fourier/Cosine/Sine?Transform
????dimension???:one
????data?length?:power?of?2
????decimation??:frequency
????radix???????:split-radix
????data????????:inplace
????table???????:not?use
functions
????cdft:?Complex?Discrete?Fourier?Transform
????rdft:?Real?Discrete?Fourier?Transform
????ddct:?Discrete?Cosine?Transform
????ddst:?Discrete?Sine?Transform
????dfct:?Cosine?Transform?of?RDFT?(Real?Symmetric?DFT)
????dfst:?Sine?Transform?of?RDFT?(Real?Anti-symmetric?DFT)
function?prototypes
????void?cdft(int?int?double?*);
????void?rdft(int?int?double?*);
????void?ddct(int?int?double?*);
????void?ddst(int?int?double?*);
????void?dfct(int?double?*);
????void?dfst(int?double?*);
--------?Complex?DFT?(Discrete?Fourier?Transform)?--------
????[definition]
????????
????????????X[k]?=?sum_j=0^n-1?x[j]*exp(2*pi*i*j*k/n)?0<=k ????????
????????????X[k]?=?sum_j=0^n-1?x[j]*exp(-2*pi*i*j*k/n)?0<=k ????????(notes:?sum_j=0^n-1?is?a?summation?from?j=0?to?n-1)
????[usage]
????????
????????????cdft(2*n?1?a);
????????
????????????cdft(2*n?-1?a);
????[parameters]
????????2*n????????????:data?length?(int)
????????????????????????n?>=?1?n?=?power?of?2
????????a[0...2*n-1]???:input/output?data?(double?*)
????????????????????????input?data
????????????????????????????a[2*j]?=?Re(x[j])?
????????????????????????????a[2*j+1]?=?Im(x[j])?0<=j ????????????????????????output?data
????????????????????????????a[2*k]?=?Re(X[k])?
????????????????????????????a[2*k+1]?=?Im(X[k])?0<=k ????[remark]
????????Inverse?of?
????????????cdft(2*n?-1?a);
????????is?
????????????cdft(2*n?1?a);
????????????for?(j?=?0;?j?<=?2?*?n?-?1;?j++)?{
????????????????a[j]?*=?1.0?/?n;
????????????}
????????.
--------?Real?DFT?/?Inverse?of?Real?DFT?--------
????[definition]
?????????RDFT
????????????R[k]?=?sum_j=0^n-1?a[j]*cos(2*pi*j*k/n)?0<=k<=n/2
????????????I[k]?=?sum_j=0^n-1?a[j]*sin(2*pi*j*k/n)?0 ?????????IRDFT?(excluding?scale)
????????????a[k]?=?(R[0]?+?R[n/2]*cos(pi*k))/2?+?
???????????????????sum_j=1^n/2-1?R[j]*cos(2*pi*j*k/n)?+?
???????????????????sum_j=1^n/2-1?I[j]*sin(2*pi*j*k/n)?0<=k ????[usage]
????????
????????????rdft(n?1?a);
????????
????????????rdft(n?-1?a);
????[parameters]
????????n??????????????:data?length?(int)
????????????????????????n?>=?2?n?=?power?of?2
????????a[0...n-1]?????:input/output?data?(double?*)
????????????????????????
????????????????????????????output?data
????????????????????????????????a[2*k]?=?R[k]?0<=k ????????????????????????????????a[2*k+1]?=?I[k]?0 ????????????????????????????????a[1]?=?R[n/2]
????????????????????????
????????????????????????????input?data
????????????????????????????????a[2*j]?=?R[j]?0<=j ????????????????????????????????a[2*j+1]?=?I[j]?0 ????????????????????????????????a[1]?=?R[n/2]
????[remark]
????????Inverse?of?
????????????rdft(n?1?a);
????????is?
????????????rdft(n?-1?a);
????????????for?(j?=
評(píng)論
共有 條評(píng)論