Clarabel Conic Interior Point Solver for Rust / Python
Project description
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) and second-order cone programs (SOCPs). Future versions will provide support for problems involving positive semidefinite, exponential and power cones.
- 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 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.
License 🔍
This project is licensed under the Apache License - see the LICENSE.md file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Hashes for clarabel-0.2.0-cp37-abi3-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c64778b39665e6feac9ea5291bfadad23a144dacd5fd4893e6585e8966149cad |
|
MD5 | d93d0f2f94e731da83d4c0b6d591570d |
|
BLAKE2b-256 | caa0065d705bae9de8644c1ba326de048e8970aefd34e584108dea7842131276 |
Hashes for clarabel-0.2.0-cp37-abi3-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c83da44578f8ba56b568ff516e8ff1903e040e95ccba71fb0afc79ec4ecca46b |
|
MD5 | 4d855c59d8b0ce11421ea3fdbd1b0696 |
|
BLAKE2b-256 | 5c7a6693ade317b9a66ea6ab4294f7808a7301623c24394c2cf17ad126dd07b0 |
Hashes for clarabel-0.2.0-cp37-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dbcf4682829f54f1af1fea52315df9c32ddd04e96dee856e644b7edb044ef018 |
|
MD5 | 71272037c6ef383759515b30fc95093b |
|
BLAKE2b-256 | f1c56fd116fe55375cf8c22f6325ff8deedfe5d895a2c25f01cfe4c390783dfc |
Hashes for clarabel-0.2.0-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 99b65863f567d54f5f5cb37e830f3ffa1e0fcad9ea659f81d10fc731f41f29ae |
|
MD5 | 6f2a60faf4a9288bdd7e4159e9b22800 |
|
BLAKE2b-256 | 2529a82d882ec0516d726230ad373e5a23393af6f8a06dbdb1172bd76d3750cf |
Hashes for clarabel-0.2.0-cp37-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d01d0a9a83cda3d075cee7a5087d3a222e8440eb6053e92fe599561327ef371 |
|
MD5 | 0909ce3b38de9802b0b2f944fa77f5d6 |
|
BLAKE2b-256 | 6b701a64438018663c30c869da0f7de8adfbb7eacadee537b31643d1d7a33f76 |
Hashes for clarabel-0.2.0-cp37-abi3-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cab3a158a0d3f455b12b968e235e46070962ee1ab8881928da197eeddde32af2 |
|
MD5 | 84fcfb3a61dcd706a31172bc56a17d0a |
|
BLAKE2b-256 | 73bf1e3fb7d58b32312c6b2ed8e7a0d66aee4bae6d63fb3d8e06caaa0546c682 |