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), 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 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.
Citing
@misc{Clarabel_2024,
title={Clarabel: An interior-point solver for conic programs with quadratic objectives},
author={Paul J. Goulart and Yuwen Chen},
year={2024},
eprint={2405.12762},
archivePrefix={arXiv},
primaryClass={math.OC}
}
License 🔍
This project is licensed under the Apache License 2.0 - 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 Distribution
Built Distributions
Hashes for clarabel-0.9.0-cp37-abi3-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d24e4ed1b686eb2fe2a1b6e77935af6ad62a2c044131e70801ec1d3ef3d33280 |
|
MD5 | dc97e8447e53ca74de04525f6e68fd4e |
|
BLAKE2b-256 | 36be110fe7ca190e024e3185d6351645346b785da6933ce3fb382d4811215f8c |
Hashes for clarabel-0.9.0-cp37-abi3-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 759c2fa0ccc61ae1a02691c43753638a0ae793bf1de81c6f6763c346789a7e25 |
|
MD5 | f0bfbdff4efab431dc4b9850254151f1 |
|
BLAKE2b-256 | 2e1fce55955a7ad5946cacd1f0aa76233ee354d4c357669ce81f1e5dc69be971 |
Hashes for clarabel-0.9.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0eaeb3fbb5a90b598700d5435c7f102592a1a79ee25df5a097e0af575838786b |
|
MD5 | e37e968f210f7cc5bbe6376fb419f895 |
|
BLAKE2b-256 | 8c12e92ba69884f84e0f16a9fb5093522924502995348f0269cc42ed062f2edc |
Hashes for clarabel-0.9.0-cp37-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 85cb560a5c4cdfb079e3437e21f0b62b69ba766ae082aeb96ced0b5763214077 |
|
MD5 | 9d6cd7b13c4adb7f43d304aa0c150368 |
|
BLAKE2b-256 | d91a4319fa902c9c3e350d134d78d79baa61c6e2e5e51050861ecc147c73f6a7 |
Hashes for clarabel-0.9.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2b5ae16d7dd87aabf72260cf9590ba0d037c52d48555bcf3a86b1f0d9cf88dd4 |
|
MD5 | 7482071af22957859e9f31e8880e6c4b |
|
BLAKE2b-256 | a52e096e0bc32ffa7eadb69f6e768fbbc58acf0b0e4003db4bd70c79b1856c47 |
Hashes for clarabel-0.9.0-cp37-abi3-macosx_10_12_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ea616757b460153ead375b3dd3ce763d46fc3717248077bbfa7b2c844b1775f |
|
MD5 | 5250e92d265e44dc9f3da62e5a0af595 |
|
BLAKE2b-256 | 6575b4f2b5f4a0af6975c463efe9ef580debff98ade6795e6e885babf7527586 |
Hashes for clarabel-0.9.0-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 702cc4666c0ccf893c936f9f1f55cbb3233ae2d5fa05f67b370ac3e7ec50f222 |
|
MD5 | d142cede7ae531ac687ef35a2e647ecf |
|
BLAKE2b-256 | 8bb9e41f5316a2d4261c340d9fa6aa1694dd57d12cc45f1e5dfc5773d2b53d39 |