'Returns the smaller value.
Like min(self, other) except if one is not a number, returns
NaN (and signals if one is sNaN).  Also rounds.'

def min(self, other, context=None):

    other = _convert_other(other, raiseit=True)
    if (context is None):
        context = getcontext()
    if (self._is_special or other._is_special):
        sn = self._isnan()
        on = other._isnan()
        if (sn or on):
            if ((on == 1) and (sn == 0)):
                return self._fix(context)
            if ((sn == 1) and (on == 0)):
                return other._fix(context)
            return self._check_nans(other, context)
    c = self._cmp(other)
    if (c == 0):
        c = self.compare_total(other)
    if (c == (-1)):
        ans = self
    else:
        ans = other
    return ans._fix(context)
