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

[dennou-ruby:001839] NArrayMiss trouble



西澤様

NArrayMiss 改訂のお願いです。
NArray で破壊的でないメソッドは、NArrayMiss でも非破壊にしてくだ
さい。具体的には、-@, abs, ~@, not です。現在の cvs 版に対する
パッチを送ります。コミットしてよければします。

すみません、変更がたまってると思いますんで、バージョンアップして
くださいませ。インストールスクリプトもお願いします。(cvs add
してないだけ? あと、ChangeLog ファイルは作ってませんか)

堀之内

--- narray_miss.rb~     Wed Aug 11 11:18:01 2004
+++ narray_miss.rb      Thu Aug 12 16:43:50 2004
@@ -377,8 +377,9 @@
 =end
 
   def -@
-    @array[@mask] = -@array[@mask]
-    self
+    array = @array.dup
+    array[@mask] = -@array[@mask]
+    NArrayMiss.to_nam_no_dup(array, @mask.dup)
   end
   for operator in ["+","-","*","/","%","**"]
     dummy = {"+"=>0,"-"=>0,"*"=>1,"/"=>1,"%"=>1,"**"=>1}[operator]
@@ -396,8 +397,9 @@
     EOL
   end
   def abs
-    @array[@mask] = @array[@mask].abs
-    self
+    array = @array.dup
+    array[@mask] = @array[@mask].abs
+    NArrayMiss.to_nam_no_dup(array, @mask.dup)
   end
 
   for operator in ["add!","sbt!","mul!","div!","mod!"]
@@ -428,8 +430,7 @@
 =end
 
   def ~@
-    @array = ~@array
-    self
+    NArrayMiss.to_nam_no_dup(~@array, @mask.dup)
   end
   for operator in ["&","|","^"]
     dummy = {"&"=>1,"|"=>0,"^"=>1}[operator]
@@ -491,8 +492,7 @@
     EOL
   end
   def not
-    @array = @array.not
-    return self
+    NArrayMiss.to_nam_no_dup(@array.not, @mask.dup)
   end
 
 #  def ==(arg)