IPOPT (Interior Point Optimizer, pronounced ``Eye-Pea-Opt'') is an open source software package for large-scale nonlinear optimization. It can be used to solve general nonlinear programming problems of the form
$\displaystyle \min_{x\in\mathbb{R}^n}$   $\displaystyle f(x)$ (1)
s.t.$\displaystyle \;$   $\displaystyle g^L \leq g(x) \leq g^U$ (2)
    $\displaystyle x^L \leq x \leq x^U,$ (3)

where $ x \in \mathbb{R}^n$ are the optimization variables (possibly with lower and upper bounds, $ x^L\in(\mathbb{R}\cup\{-\infty\})^n$ and $ x^U\in(\mathbb{R}\cup\{+\infty\})^n$), $ f:\mathbb{R}^n\longrightarrow\mathbb{R}$ is the objective function, and $ g:\mathbb{R}^n\longrightarrow \mathbb{R}^m$ are the general nonlinear constraints. The functions $ f(x)$ and $ g(x)$ can be linear or nonlinear and convex or non-convex (but should be twice continuously differentiable). The constraints, $ g(x)$, have lower and upper bounds, $ g^L\in(\mathbb{R}\cup\{-\infty\})^m$ and $ g^U\in(\mathbb{R}\cup\{+\infty\})^m$. Note that equality constraints of the form $ g_i(x)=\bar g_i$ can be specified by setting $ g^L_{i}=g^U_{i}=\bar g_i$.