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

[dennou-ruby:001293] Re: initialize mathod



堀之内です。なんどもすみません。

>  def mlt(a, b)  # あとで演算子 * に割り当て
>    mask = a.mask | b.mask
>    ac,bc = b.coerce(a)
>    data = ac.data.dup    # data は中身のデータを dup せずに返すとする
>    data[mask] = ac.data[mask] * bc.data[mask]
>    NArrayMiss.new(data, mask)
>  end

というか、こう?  

  def mlt(a, b)  # あとで演算子 * に割り当て
    mask = a.mask | b.mask
    ac,bc = b.coerce(a)
    if(ac.is_a?(NArrayMiss))
      data = ac.data.dup    # data は中身のデータを dup せずに返すとする
      data[mask] = ac.data[mask] * bc.data[mask]
      NArrayMiss.new(data, mask)
    else
      ac * bc
    end
  end

(長いこと2項演算の定義をしてないもんで、これも怪しいかも)