#!/usr/bin/env python3 """ rosenbrock - compute the value of the rosenbrock function for a given X and Y Usage: rosenbrock --x= --y= """ from docopt import docopt import time import random def rosenbrock(x, y): """ This R^2 -> R^1 function should be compatible with algopy. http://en.wikipedia.org/wiki/Rosenbrock_function A generalized implementation is available as the scipy.optimize.rosen function """ a = 1. - x b = y - x * x return a * a + b * b * 100. def main(): arguments = docopt(__doc__) time.sleep(random.random() * 10) print(rosenbrock(float(arguments['--x']), float(arguments['--y']))) if __name__ == '__main__': main()