'multiply multiplies two operands.
If either operand is a special value then the general rules apply.
Otherwise, the operands are multiplied together
(\'long multiplication\'), resulting in a number which may be as long as
the sum of the lengths of the two operands.
>>> ExtendedContext.multiply(Decimal(\'1.20\'), Decimal(\'3\'))
Decimal(\'3.60\')
>>> ExtendedContext.multiply(Decimal(\'7\'), Decimal(\'3\'))
Decimal(\'21\')
>>> ExtendedContext.multiply(Decimal(\'0.9\'), Decimal(\'0.8\'))
Decimal(\'0.72\')
>>> ExtendedContext.multiply(Decimal(\'0.9\'), Decimal(\'-0\'))
Decimal(\'-0.0\')
>>> ExtendedContext.multiply(Decimal(\'654321\'), Decimal(\'654321\'))
Decimal(\'4.28135971E+11\')
>>> ExtendedContext.multiply(7, 7)
Decimal(\'49\')
>>> ExtendedContext.multiply(Decimal(7), 7)
Decimal(\'49\')
>>> ExtendedContext.multiply(7, Decimal(7))
Decimal(\'49\')'

def multiply(self, a, b):

    a = _convert_other(a, raiseit=True)
    r = a.__mul__(b, context=self)
    if (r is NotImplemented):
        raise TypeError(('Unable    to    convert    %s    to    Decimal' % b))
    else:
        return r
