Python
=

<!-- language: lang-python -->

    def pow(x, y):
        if y == 0:
            return 1
        elif y >= 1:
            return x * pow(x, y - 1)
        elif y > 0:
            y *= 2
            if y >= 1:
                return sqrt(x) * sqrt(pow(x, y % 1))
            else:
                return sqrt(pow(x, y % 1))
        else:
            return 1.0 / pow(x, -y)