'Scalar version of self._binopt, for cases in which no new nonzeros
are added. Produces a new spmatrix in canonical form.'

def _scalar_binopt(self, other, op):

    self.sum_duplicates()
    res = self._with_data(op(self.data, other), copy=True)
    res.eliminate_zeros()
    return res
