## clarabel

Clarabel Conic Interior Point Solver for Rust / Python

### 6 releases(breaking)

 0.5.0 Apr 26, 2023 Mar 8, 2023 Feb 26, 2023 Sep 13, 2022 Jul 30, 2022

#400 in Math

Apache-2.0

440KB
11K SLoC

#  Interior Point Conic Optimization for Rust and Python

Clarabel.rs is a Rust implementation of an interior point numerical solver for convex optimization problems using a novel homogeneous embedding. Clarabel.rs solves the following problem:

$$\begin{array}{r} \text{minimize} & \frac{1}{2}x^T P x + q^T x\\[2ex] \text{subject to} & Ax + s = b \\[1ex] & s \in \mathcal{K} \end{array}$$

with decision variables $x \in \mathbb{R}^n$, $s \in \mathbb{R}^m$ and data matrices $P=P^\top \succeq 0$, $q \in \mathbb{R}^n$, $A \in \mathbb{R}^{m \times n}$, and $b \in \mathbb{R}^m$. The convex set $\mathcal{K}$ is a composition of convex cones.

Clarabel is also available in a Julia implementation. See here.

## Features

• Versatile: Clarabel.rs solves linear programs (LPs), quadratic programs (QPs), second-order cone programs (SOCPs) and semidefinite programs (SDPs). It also solves problems with exponential and power cone constraints.
• Quadratic objectives: Unlike interior point solvers based on the standard homogeneous self-dual embedding (HSDE), Clarabel.rs handles quadratic objectives without requiring any epigraphical reformulation of the objective. It can therefore be significantly faster than other HSDE-based solvers for problems with quadratic objective functions.
• Infeasibility detection: Infeasible problems are detected using a homogeneous embedding technique.

# Installation

Clarabel can be imported to Cargo based Rust projects by adding

[dependencies]
clarabel = "0"


to the project's Cargo.toml file. To install from source, see the Rust Installation Documentation.

To use the Python interface to the solver:

pip install clarabel


To install the Python interface from source, see the Python Installation Documentation.