@modifies
    def zero_rows(self, rows, diag_val=1.0):
        base._trace.evaluate(set([self]), set([self]))
        rows = rows.indices if isinstance(rows, Subset) else rows
        for row in rows:
            s = self.sparsity._rowptr[row]
            e = self.sparsity._rowptr[row + 1]
            diag = np.where(self.sparsity._colidx[s:e] == row)[0]
            self._csrdata[s:e].fill(0)
            if len(diag) == 1:
                diag += s       # offset from row start
                self._csrdata[diag:diag + 1].fill(diag_val)
Zeroes the specified rows of the matrix, with the exception of the
dataset/ETHPy150Open OP2/PyOP2/pyop2/cuda.py/Mat.zero_rows