'In-place operation on row ``i`` using two-arg functor whose args are
interpreted as ``(self[i, j], self[k, j])``.
Examples
>>> from sympy.matrices import eye
>>> M = eye(3)
>>> M.zip_row_op(1, 0, lambda v, u: v + 2*u); M
Matrix([
[1, 0, 0],
[2, 1, 0],
[0, 0, 1]])
See Also
row
row_op
col_op'

def zip_row_op(self, i, k, f):

    i0 = (i * self.cols)
    k0 = (k * self.cols)
    ri = self._mat[i0:(i0 + self.cols)]
    rk = self._mat[k0:(k0 + self.cols)]
    self._mat[i0:(i0 + self.cols)] = [f(x, y) for (x, y) in zip(ri, rk)]
