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). It also solves problems with exponential and power cone constraints. Future versions will provide support for problems involving positive semidefinite 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 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.3.0-cp37-abi3-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b30fac081fc1d747c6d44008711dd4bf3e1d8002dcdd4574474cc3bf198494b5 |
|
MD5 | 734ccd8a9441ab24781b3ec46e83061d |
|
BLAKE2b-256 | c8b7138d4c89684d6fa0245b23e91dd51ae5c2355cf0dd9cfff247af12b30332 |
Hashes for clarabel-0.3.0-cp37-abi3-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6284bf14ed1fc85d4379fc144818f1b300ac3daf00a496b8e15e7199dc30a432 |
|
MD5 | aabe1cf741df0f9109d1ac755fb273ef |
|
BLAKE2b-256 | 77b554f76692e2112db4b5d161287e8302467c8cf3141349f836c24a3f76b8df |
Hashes for clarabel-0.3.0-cp37-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 254fdcedcf3ddcd8b855e57807be5ddec81a3963c4adf7b871dc4ad1e09cd08f |
|
MD5 | 9e3ccbefcb04d8ef162201e3afd13ace |
|
BLAKE2b-256 | b8f72616d21378447f44c0ecdd091afe49216e372a6f16c3be3af8a0ce5124c7 |
Hashes for clarabel-0.3.0-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd41f1cf66e0f0aaf49de5a73cbe1ddbd20d41396f9c1695fcf292fc94d5dbb4 |
|
MD5 | 29b5fb896aaa26958d4f371ea0e5ab38 |
|
BLAKE2b-256 | db99cbaff587744318099172f51f18dedc752cb88022e646849a427d144200bc |
Hashes for clarabel-0.3.0-cp37-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 94611432a8948f69c750318c33f1435bc0f37cb275339b6a9d85ebc7c529a5b5 |
|
MD5 | 38997c681e0cfaa34b1f33b26d97a06b |
|
BLAKE2b-256 | ebedf09efaf8117e7083ce73cb96aa22a2cac9a9dde51a7098daba187657d606 |
Hashes for clarabel-0.3.0-cp37-abi3-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | be434ed02e5d79edb41b883e7cef82235822bdc9a31b708e98112f3f35d8382c |
|
MD5 | 56299af185e1e6f8cabcfdbb8a714125 |
|
BLAKE2b-256 | 05ec0cc6e3549c1d63a99948c2548d9411449febf9688e5f0fb84f6532d97d36 |