# File lib/backports/1.9.2/stdlib/matrix.rb, line 866 def -(m) case m when Numeric Matrix.Raise ErrOperationNotDefined, "-", self.class, m.class when Vector m = self.class.column_vector(m) when Matrix else return apply_through_coercion(m, __method__) end Matrix.Raise ErrDimensionMismatch unless row_size == m.row_size and column_size == m.column_size rows = Array.new(row_size) {|i| Array.new(column_size) {|j| self[i, j] - m[i, j] } } new_matrix rows, column_size end