def himmelblau(xy):
x, y = xy<EOL>r1 = x*x + y<EOL>r2 = y*y + x<EOL>return np.array([r1, r2])<EOL>
Himmelblau's function, as a set of residuals (cost = sum(residuals**2))

The standard Himmelbau's function is with data as [11, 7], and four
minimum at (3.0, 2.0), ~(-2.8, 3.1), ~(-3.8, -3.3), ~(3.6, -1.8).
Himmelblau's function is a quadratic model in both x and y. Its data-
space dimension (2) is equal to its model-space dimension (2), so
there is only parameter-effect curvature.

Parameters
----------
    - xy : 2-element list-like
        The x,y parameters of the model.

Returns
-------
    2-element list-like
        The residuals of the model.
Notes
------
https://en.wikipedia.org/wiki/Himmelblau%27s_function