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

[dennou-ruby:000126] Re: reading binary files



堀之内です

>> 現在多次元配列は each や [] で各要素にアクセス出来るような形
>> 態が好まれているようですが、実際問題として、実装物は内部にC
>> の多次元配列を持たせて、限られた演算メソッドでのみ配列にアク
>> セスする方が効率が良いです。つまり僕が必要だと思っているのは、
>> 個々の要素をオブジェクトとして持たないような多次元配列です。
>> ただしこれは各要素へのアクセスを不可能にするという意味ではな
>> く、必要があれば個々の要素をオブジェクト化するようなメソッド
>> も用意しておくべきでしょう。
>> 
>> もちろんこのようなことは何らかの拡張ライブラリを書かねば出来
>> ませんが、多次元配列の抽象化と言う観点からみてもこのようなこ
>> とは必要かと思います。

そうですね。Cで浮動小数点ベタ並び配列が欲しいと言うのが、その具
体化に対応すると認識しています。配列処理の基本は出来る限り要素に
アクセスしないで済ますことですね。(ところで[]は、要素へのアクセ
スと言うよりサブセット -- つまり配列 -- を指定するメソッドだと認
識しています。たまたまそのサブセットが要素一つからなることもある
かもしれませんが、each的な使い方は極力避けたい。)

>> たとえば、スカラー倍や同じサイズの多次元配列どうしの 
>> element-wise な四則演算などは「個々の要素をオブジェクトに持
>> たなくても」出来ます。

ですね。

>> 一方関数適用は予め内部で関数ポインタを
>> 渡せるようにRubyのProcとは違う形で提供する必要があると思って
>> います(Procは内部でオペランドをオブジェクト化する必要がある
>> ため)。

すみません、あとで Proc とは何か勉強しておきます
(今科研費書類の追い込みなので^^;)

>> またこのような多次元配列の抽象化は後回し
>> にした方が良いのでしょうか??

後回ししちゃいけないです。外見としての抽象化は私の NMDArray でも
してると思いますが(a+bでelement-wise足算)、実際には dcl とかのイ
ンターフェースを作る場合、沼口さんが既に始めているように早めの段
階で浮動小数点ベタ並びがあると便利ですね。

堀之内 武                 horinout@xxxxxx
京都大学超高層電波研究センター    611-0011 宇治市五ヶ庄
phone:0774-38-3812                     fax:0774-31-8463