allow sparse matrices, use condest instead of cond