https://machinelearningmastery.com/2d-test-functions-for-function-optimization/