'a ** b'

def __rpow__(b, a):

    if ((b._denominator == 1) and (b._numerator >= 0)):
        return (a ** b._numerator)
    if isinstance(a, Rational):
        return (Fraction(a.numerator, a.denominator) ** b)
    if (b._denominator == 1):
        return (a ** b._numerator)
    return (a ** float(b))
