Re: [問題] 如何在編譯期建表
感謝回覆的板友
經過版友提供的關鍵字和 code,我 study 了之後,
感覺必須要有 constexpr 的數學函數才有辦法
因為我的函數雖然只跟索引有關,但很複雜。
小弟數學不佳,不知道如何拆成遞迴
不過 survey 了一下發現 constexpr 數學函數好像沒有編譯器實作出來
手邊的 VC 好像不認識 constexpr
看來短期內這需求是無解了
所以我還是用批次的方式產生了。
總之感謝大家!!
※ 引述《applecool (noOneKnows)》之銘言:
: 小弟需要在編譯期建一張很大的表,需求大概像這樣子,
: 簡化起見,假設長度 N,式子為 Exponential value of (index * alpha)
: 我希望達到這樣的效果:
: static const double alpha = 3.0;
: static const double Table[N] = {
: exp(0*alpha),
: exp(1*alpha),
: exp(2*alpha),
: ...
: exp(i*alpha),
: ...
: exp((N-1)*alpha)
: };
: 我希望一開始就把這個結果 load 到記憶體,就像手動宣告以上程式碼這樣。
: 而不可以做成
: static Table[N];
: Table[0] = exp(0*alpha);
: Table[1] = exp(1*alpha);
: ...
: Table[N-1] = exp((N-1)*alpha);
: 目前沒想到什麼好方法,主要是宣告 array 這塊,還要保證記憶體連續,還有實際上的
: 式子遠比 exp 複雜也希望不要使用數學展開成遞迴。
: 請問有人有好方法嗎?
: 感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.241.67.33
推
10/24 22:17, , 1F
10/24 22:17, 1F
推
10/24 22:20, , 2F
10/24 22:20, 2F
→
10/24 22:35, , 3F
10/24 22:35, 3F
推
10/24 22:48, , 4F
10/24 22:48, 4F
→
10/24 22:50, , 5F
10/24 22:50, 5F
→
10/24 22:55, , 6F
10/24 22:55, 6F
→
10/24 22:59, , 7F
10/24 22:59, 7F
→
10/24 23:00, , 8F
10/24 23:00, 8F
推
10/24 23:00, , 9F
10/24 23:00, 9F
推
10/24 23:53, , 10F
10/24 23:53, 10F
→
10/25 22:59, , 11F
10/25 22:59, 11F
討論串 (同標題文章)