6 Semidefinite programming mode 39
7 Geometric programming mode 41
7.1 Top-level rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
7.2 Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
7.3 Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
8 Solvers 45
8.1 Supported solvers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
8.2 Selecting a solver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
8.3 Controlling screen output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
8.4 Interpreting the results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
8.5 Controlling precision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
8.6 Advanced solver settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
9 Reference guide 53
9.1 Arithmetic operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
9.2 Built-in functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
9.3 New functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
9.4 Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
9.5 Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
10 Support 63
10.1 The CVX Forum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
10.2 Bug reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
10.3 What is a bug? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
10.4 Handling numerical issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
10.5 CVX Professional support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
11 Advanced topics 67
11.1 Eliminating quadratic forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
11.2 Indexed dual variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
11.3 The successive approximation method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
11.4 Power functions and p-norms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
11.5 Overdetermined problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
11.6 Log convexity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
11.7 Adding new functions to the atom library . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
12 License 79
12.1 CVX Professional License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
12.2 CVX Standard License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
12.3 The Free Solver Clause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
12.4 Bundled solvers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
12.5 Example library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
12.6 No Warranty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
13 Citing CVX 83
14 Credits and Acknowledgements 85
ii