blochの日記

自虐ネタ以外のぐちは書かないようにしましょう

2^16を超えた

別に自分が頑張った(いや、頑張ったなあ)わけでなく、Delphiコンパイラが賢かっただけなのだけれど、ついにFFTのプログラムで131072個のデータ長を扱った。プログラムを直すのは結構やっかいで、他の変数もいろいろLongintに変更したり、データ数で2**Nの指定を出来るようにしたり、今回のデータ形式が、横並びデータのデリミタが「複数スペース」と言う凶悪犯なのでちょっと(かなり)頑張った。
これだけのデータサイズなのにFFT計算は一瞬で、時間がかかるのはデータの読み込みである。Ascii形式で200メガバイト超になる。409598個のデータが入っている。
Pのツールだと標準形式が読めるのだけれど、メモリが足りないのか強制的に7個まとめ縛りされてしまっている。ショイさんは「え〜っ7個じゃ多いよ」とおっしゃっていた。その上、FFTも凶悪的に遅くて、頻繁にクラッシュするので、結局、Pのツールは使わなかった。FFTをかけた16個のデータファイルを平均するのはsma4が頑張ってくれた。

で、気が付いたのが、誰が悪いのか知らないけれど、キャレット記号^(ハット、アクサンシルコムフレックス?)を、プログラムに渡せない。無理に渡すにはダブルコーテーションで囲む必要がある。
と言うわけで、2**N形式にしたのだった。