'max compares two values numerically and returns the maximum.
If either operand is a NaN then the general rules apply.
Otherwise, the operands are compared as though by the compare
operation.  If they are numerically equal then the left-hand operand
is chosen as the result.  Otherwise the maximum (closer to positive
infinity) of the two operands is chosen as the result.
>>> ExtendedContext.max(Decimal(\'3\'), Decimal(\'2\'))
Decimal(\'3\')
>>> ExtendedContext.max(Decimal(\'-10\'), Decimal(\'3\'))
Decimal(\'3\')
>>> ExtendedContext.max(Decimal(\'1.0\'), Decimal(\'1\'))
Decimal(\'1\')
>>> ExtendedContext.max(Decimal(\'7\'), Decimal(\'NaN\'))
Decimal(\'7\')
>>> ExtendedContext.max(1, 2)
Decimal(\'2\')
>>> ExtendedContext.max(Decimal(1), 2)
Decimal(\'2\')
>>> ExtendedContext.max(1, Decimal(2))
Decimal(\'2\')'

def max(self, a, b):

    a = _convert_other(a, raiseit=True)
    return a.max(b, context=self)
