import math


def PowellSum(x, lb=-1., ub=1.):
    """
    Description:
    -----------
    Dimensions: d

    Input Domain:
    ------------
    xi ∈ [-1, 1], i = 1, ..., d

    Global Minimum:
    --------------
    f(x) = 0, x = (0, ..., 0)
    """
    y = 0.
    for i in range(len(x)):
        y = y + math.fabs(x[i]) ** (i + 2)
    return y, lb, ub