ECOSolveR

R-CMD-check CRAN_Status_Badge Coverage Status CRAN downloads

Embedded Conic Solver in R. This is an R wrapper around the ecos project on GitHub which describes ECOS as below.

ECOS is a numerical software for solving convex second-order cone programs (SOCPs) of type

\[ \text{Minimize } \mathbf{c}^\top\mathbf{x} \text{ such that } \mathbf{A}\mathbf{x} = \mathbf{b} \text{ and } \mathbf{G}\mathbf{x} \leq_{\mathbf{K}} \mathbf{h} \]

where the last inequality is generalized, that is, \(\mathbf{h} - \mathbf{G}\mathbf{x}\) belongs to the cone \(\mathbf{K}\).

ECOS supports the positive orthant \(\mathbf{R}_+\), second-order cones \(\mathbf{Q}_n\) defined as

\[ \mathbf{Q}_n = \bigl\lbrace (t, \mathbf{x}) \mid t \geq \lVert \mathbf{x} \rVert_2 \bigr\rbrace \]

with \(t\) a scalar and \(\mathbf{x} \in \mathbf{R}^{n-1}\), and the exponential cone \(\mathbf{K}_e\) defined as

\[ \mathbf{K}_e = \text{closure} \bigl\lbrace (x, y, z) \mid \exp(x/z) \leq y/z,\ z > 0 \bigr\rbrace, \]

where \((x, y, z) \in \mathbf{R}^3\).

The cone \(\mathbf{K}\) is therefore a direct product of the positive orthant, second-order, and exponential cones:

\[ \mathbf{K} = \mathbf{R}_+ \times \mathbf{Q}_{n_1} \times \cdots \times \mathbf{Q}_{n_N} \times \mathbf{K}_e \times \cdots \times \mathbf{K}_e. \]

Further Details

Note that the ECOS C language sources are included here. Changes to the original source are clearly delineated for easy reference.