### 10 releases (6 breaking)

0.7.1 | Mar 1, 2024 |
---|---|

0.6.0 | Sep 20, 2023 |

0.5.1 | Jun 2, 2023 |

0.4.1 | Mar 8, 2023 |

0.2.0 | Jul 31, 2022 |

#**163** in Math

**7,733** downloads per month

Used in good_lp

**Apache-2.0**

505KB

13K
SLoC

# Interior Point Conic Optimization for Rust and Python

Features • Installation • License • Documentation

**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.

**For more information see the Clarabel Documentation (stable | dev).**

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, power cone and generalized 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.**Open Source**: Our code is available on GitHub and distributed under the Apache 2.0 License

# Installation

Clarabel can be imported to Cargo based Rust projects by adding

`[`dependencies`]`
clarabel `=` `"`0`"`

to the project's

file. To install from source, see the Rust Installation Documentation.`Cargo .toml`

To use the Python interface to the solver:

`pip install clarabel
`

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

## License 🔍

This project is licensed under the Apache License 2.0 - see the LICENSE.md file for details.

#### Dependencies

~1–25MB

~265K SLoC