Please don't go backwards. We know what to do and the fix is
straightforward, I think:

```
    def submatrix(self, keys):
        rlo, rhi, clo, chi = self.key2bounds(keys)
        r, c = rhi - rlo, chi - clo
        if r*c < len(self._smat):
            # the subregion is smaller than the number of elements in self
            if r == 1:
                getter = lambda i, j: self[rlo, j + clo]
            elif c == 1:
                getter = lambda i, j: self[i + rlo, clo]
            else:
                getter = lambda i, j: self[i + rlo, j + clo]
            return self._new(r, c, getter)
        else:
            # the number of non-zero elements is smaller than the subregion
            smat = {}
            for rk, ck in self._smat:
                if rlo <= rk <= rhi and clo <= ck <= chi:
                    smat[k] = self._smat[k]
            return self._new(r, c, smat)
```

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sympy+unsubscr...@googlegroups.com.
To post to this group, send email to sympy@googlegroups.com.
Visit this group at http://groups.google.com/group/sympy?hl=en-US.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to