convex update