From: gotoken / math.sci.hokudai.ac.jp (GOTO Kentaro) Subject: [ruby-list:15227] Re: LAPACK へのインターフェース Date: Mon, 5 Jul 1999 10:04:22 +0900 > ごとけんです フォローありがとうございます。 > 合によっては行列の生成自体が理論式で行われるので行列生成器を > C で書いてしまうという手もあると思います。 そうですね。確かにデカイ行列の生成はランダムにやっているから、 C で書 いた方がよいですね。 > 方です。あ伊藤さん作の mdarray も参考にされるとよいやも知れ > ません。 おお、これは役に立ちそうです。 > >研究では 600x600 等の巨大な行列を扱ったりするので、このオーバーヘッド > >が気になります。大したことなければちょっとずつ実装に踏み切ろうと思って > >います。 > <snip> > >だから現状では、行列の要素が「数値」の場合は Octave を、その他の場合は > >Ruby を研究で使っています。 > > うう、爪の垢を少し下さい。僕はちょっと問題がデカくなるとあま > り考えずにCで書いてしまいます。 今、 「ruby の書き易さ」と 「C で書かれたライブラリの高速性」を両立さ せることに非常に興味を持っています。 僕の場合、数値計算用の第一言語を ruby に移行しようかと思っています。 今では二股かけているところですが、、、 Octave は好きですが、致命的な欠点があります。Octave だと、要素がすべて 数値の行列の計算は (インタプリタよりは遙に) 速いです。Octave を使うと、 意識をせずに LAPACK を呼んでくれるからです。しかし、 Octave には今のと ころ operator overloading が出来ないみたいなので、数値計算の第一言語と して使うにはちょっと辛いものがあります。行列の要素に「区間」などの非数 値が来ると Octave ではお手あげです。 ruby だと簡単に OO ができるので、かなり嬉しいです。 MATLAB もそうらし いですが、簡単にデータ型 (たとえば区間演算型) を定義して operator overloading (正確には method ですが) できるからです。 matrix.rb がありますが、あれは遅いかわりに「非数値」の要素を入れてもちゃ んと計算してくれます。ただ、数値行列の場合、 LAPACK という高速なライブ ラリが存在するので、いかにしてそれを使おうかと考えているわけです。 -- Takashi Nishimoto: g96p0935 / mse.waseda.ac.jp I love Emacs, zsh, and Linux!! See ftp://ftp.misao.gr.jp/pub/tak/README Key fingerprint = EE D7 1D 18 A9 42 C0 8A 63 E7 F2 AC 4D C7 83 6B