From: gotoken@... (GOTO Kentaro) Date: 1999-07-05T10:04:22+09:00 Subject: [ruby-list:15227] Re: LAPACK へのインターフェース ごとけんです In message "[ruby-list:15225] Re: LAPACK へのインターフェース" on 99/07/05, Takashi Nishimoto writes: >Ruby の2次元配列 (要素は全部浮動小数点数) から C の配列に変換するとき >(逆も)には、 浮動小数点数をすべて「コピー」するのですか? どちらを主にするかによりますね。もし常に Matrix もしくは Array で作ってから、C の配列に変換することを考えるとそうなり ます。Ruby主体で汎用にするとそうならざるを得ないのですが、場 合によっては行列の生成自体が理論式で行われるので行列生成器を C で書いてしまうという手もあると思います。 大抵の数値計算では DoubleMatrix とかいう double** な実体をも つクラスを C で実装して CLAPACK で定義されてるようなよく使わ れる操作は C レベルで回すのがいいんではないでしょうか?? 要 素を参照するときだけ Ruby オブジェクトにしてしまうという考え 方です。あ伊藤さん作の mdarray も参考にされるとよいやも知れ ません。 >研究では 600x600 等の巨大な行列を扱ったりするので、このオーバーヘッド >が気になります。大したことなければちょっとずつ実装に踏み切ろうと思って >います。 >だから現状では、行列の要素が「数値」の場合は Octave を、その他の場合は >Ruby を研究で使っています。 うう、爪の垢を少し下さい。僕はちょっと問題がデカくなるとあま り考えずにCで書いてしまいます。 -- gotoken