def himmelblaus_function(x):
    """
    The Himmelblau Function is a multi-modal function, with one local maximum
    four local minima.
    :param x: 2D rowvector (a column of rows can be passed)
    :type x: Numpy array
    :return: Function values of x
    :rtype: Numpy array
    """

    y = (x[:, 0] ** 2 + x[:, 1] - 11) ** 2 + (x[:, 0] + x[:, 1] ** 2 - 7) ** 2

    return y