Semidefinite programming generalizes linear programming in that it uses semidefinite matrix variables (for a survey on literature and software see the page Semidefinite Programming). The cone of positive semidefinite matrices offers possibilities to model nonlinear constraints that exceed the possibilities of convex quadratic programming. Applications of semidefinite programming can found in control theory, signal processing, robust optimization, free material design, circuit layout and last but not least in combinatorial optimization.