るびきちです。

NArrayを使っていてかなりひっかかるところがありました。
次のスクリプトです

#!/usr/bin/env ruby
require 'narray'

v = NArray[1,2,3]
p v
p v == v                        # true ?
p v == NArray[0,0,2]            # false ?

これを実行すると、

cd /home/takashi/src/blastest/
/home/takashi/src/blastest/nmatrix-test.rb
NArray.int(3): 
[ 1, 2, 3 ]
NArray.byte(3): 
[ 1, 1, 1 ]
NArray.byte(3): 
[ 0, 0, 0 ]

Interpretation finished at Mon Jun 25 11:44:26

となってしまいます。
要素ごとの比較を行うという仕様から考えればこれは仕様でしょうけど、

assert_equal(NArray[1,2], NArray[3,4])

が通ってしまうという悲しい結果になってしまいます。
今ごろ気付いてはまりました。
((*配列として*))「等しさ」を検証するべきかと思いました。

今、NArrayにBLAS/LAPACKのルーチンを適用するプログラムを書いているところです。


るびきち☆
http://voo.to/ruby/ ←Ruby大衆化計画(笑)