[問題] 請問這情況要如何處理?
小弟現在做個訊號處理的計算,問題如下。
有個function 會被呼叫n次(n~ pow(10,7) ),n為一訊號的點數
而function裡用到一些coefficient 會用到(快速)傅立業求得
#define real double
typedef struct Complex
{
real Re;
real Im;
}complex;
int main(void)
{
:
for(int i =0;i<n;i++){
// some procedure
ConvolutionGaussian(L,fs,fw);
}//for
:
:
}//main
void ConvolutionGaussian(L,*fs, *fw)
{
static real *Coeff = GauCoeff(L);
for(int i = 0;i< L;i++)
{
//Convolution procedure :
// fw = Sum (GauCoeff*fs)
}//i
}//ConvolutionGaussian
GauCeoff()這函式裡面用到(快速)傅立業 而對整個在main中的回圈(做n次)而言
這些Coeff全都一樣,所以把這變數設為static
現在問題是...
若外面的main 做這種處理超過一次(也就是不只一個forloop,好比處理兩條訊號)
這樣Coeff會不同,但在ConvolutionGaussian中Coeff已被設為static ..
那請問怎樣處理呢?
若不把Coeff設為 static ,則每做一個點就要做一次傅立業,計算量會過度
旁大。。
有牛人可幫解一下嗎 ,謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.167.78.235
→
04/04 00:16, , 1F
04/04 00:16, 1F
→
04/04 00:18, , 2F
04/04 00:18, 2F
推
04/04 01:10, , 3F
04/04 01:10, 3F
→
04/04 02:04, , 4F
04/04 02:04, 4F
→
04/04 02:05, , 5F
04/04 02:05, 5F
→
04/04 02:20, , 6F
04/04 02:20, 6F
→
04/04 02:20, , 7F
04/04 02:20, 7F
→
04/04 02:21, , 8F
04/04 02:21, 8F
→
04/04 16:21, , 9F
04/04 16:21, 9F
→
04/04 16:25, , 10F
04/04 16:25, 10F
→
04/04 16:27, , 11F
04/04 16:27, 11F
※ 編輯: Carbontube 來自: 218.167.78.235 (04/04 19:51)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章