def fast_power(x, n):
    if n < 0:
        return fast_power(1 / x, -n)
    if n == 0:
        return 1.0
    half = fast_power(x, n // 2)
    result = half * half
    return result * x if n % 2 else result
