[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:000876] Re: numfft



高橋和人@北大です。

=begin
先日、林先生に「返事しないと作業がストップしていると受け取られる」
と叱られ、あせりつつ報告します。
=end

まずは、NumArray を止めて NArray に変更する件、
了解です。
既に NArray パッケージをインストールし、NArray のソースを見ながら 
fft プログラムをのろのろと書き換えている最中です。
10月あたまくらいに fftpackのみ簡易版2をリリースできたらいいな、
と思っております。
# そろそろドキュメントも書き始めなきゃ。

NumArray 版のときのバグの件。
まだどう言うことなのかよく分かってません。
少なくとも、
        na.fft(1,2,5)
の様な引数を複数わたす方法を許容しろ、と言うことと、
        na.fft("文字列")
の様なトンチキな引数の場合にきちんとエラーをレイズしろ、
と言う事は理解しました。
# 理解しましたが、どういう風にコーディングするかがまた頭痛の種。

そして、ふたつ質問です。

まず一つ目は、NumArray のサポートは止めますが、
NumComplex はそのまま継続でサポートしますか?

二つ目の質問です。
ある一つの次元に対して、fft を掛ける時は、
多次元配列の shape は変わらないですが、
複数の次元に fft をかました時です。

例えば、
        na = NArray.new(Float,5,4,3)
として、
        na.rfft(0)
とした時、長さ5の一次元配列を4*3=12回、fft するわけですよね。
この時は、長さ5の fft された配列が12本、5*4*3の空間に収まりますが、
複数の次元に fft したいときは、もうこれ以上スペースが無いわけですから、
配列の形を新しく設定しなければならない。
そこで、
        na.rfft
の出力の多次元配列の形は、
        na[ 5,4,3,3 ]
一般的に書くと、
        na[ shape[0] , shape[1] , ... , shape[rank-1] , rank ]
のように、最後にもう一つ次元を追加して、
na の n 次元目に fft かました結果が na[x,x, ... ,n] に格納される、
という形式に使用と考えてますが、これでよいでしょうか?

また、上記のような方法をとった場合、
        na.rfft(0,2)
のように全ての次元には fft しない時に、
出力結果の na[x,x,x,1] には、

・すべてゼロを入れる。
・fft してない na を入れる。
・最後の次元の shape は、fft した次元の個数だけにする。
  (上の例だと、shape[3]=2 )

のどれが良いでしょうか?

ちなみに numfft-0.0.1a では、何も考えずに全次元をもとの形の配列に
ぶちこんで、上書きしてしまっているという致命的な状態です。

以上です。では。

=begin
一人で作業してると、ついダラダラとしてしまって良くないッスね。
やはりケツ叩かれてた方がサクサク作業できるのかしら?
=end
↑↑↓↓←→←→BA
北海道大学 理学部 地球科学科 地球物理学専攻 4 年
高橋 和人 --- TAKAHASHI , Kazuto
email: kazto@xxxxxx
今日の一枚 : 月光蟲 / 筋肉少女帯