note that it is non-linear convex optimization