val _ = let val start = [(Base 1.0), (Base 1.0)] fun f x1 y1 x2 y2 = ((sqr x1)+(sqr y1))-((sqr x2)+(sqr y2)) val [x1_star, y1_star] = multivariate_argmin (fn [x1, y1] => multivariate_max (fn [x2, y2] => f x1 y1 x2 y2) start) start val [x2_star, y2_star] = multivariate_argmax (fn [x2, y2] => f x1_star y1_star x2 y2) start in [[(write x1_star), (write y1_star)], [(write x2_star), (write y2_star)]] end