def []=(i, j, v=nil)
      if v
        put(i.to_indices, j.to_indices, v)
      else
        put(i.to_indices, j)
      end
    end
def []=(i, j, v=nil)
      if v
        put(i.to_indices, j.to_indices, v)
      else
        put(i.to_indices, j)
      end
    end
Set the entry at _i_, _j_ to _v_.  If _j_ is omitted, linear
 addressing is used (that is, _i_ just enumerates all entries
 going down rows first.)

 As indices you can use numbers, int[] arrays, matrices (non-zero elements
 are taken as indices then), and ranges.