<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/oxfordcontrol/ClarabelDocs/blob/main/docs/src/assets/logo-banner-dark-rs.png" width=60%>
<source media="(prefers-color-scheme: light)" srcset="https://github.com/oxfordcontrol/ClarabelDocs/blob/main/docs/src/assets/logo-banner-light-rs.png" width=60%>
<img alt="Clarabel.jl logo" src="https://github.com/oxfordcontrol/ClarabelDocs/blob/main/docs/src/assets/logo-banner-light-rs.png" height="25">
</picture>
<h1 align="center" margin=0px>
Interior Point Conic Optimization for Rust and Python
</h1>
<p align="center">
<a href="https://github.com/oxfordcontrol/Clarabel.rs/actions"><img src="https://github.com/oxfordcontrol/Clarabel.rs/workflows/ci/badge.svg?branch=main"></a>
<a href="https://codecov.io/gh/oxfordcontrol/Clarabel.rs"><img src="https://codecov.io/gh/oxfordcontrol/Clarabel.rs/branch/main/graph/badge.svg"></a>
<a href="https://clarabel.org"><img src="https://img.shields.io/badge/Documentation-stable-purple.svg"></a>
<a href="https://opensource.org/licenses/Apache-2.0"><img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg"></a>
<a href="https://github.com/oxfordcontrol/Clarabel.rs/releases"><img src="https://img.shields.io/badge/Release-v0.9.0-blue.svg"></a>
</p>
<p align="center">
<a href="#features">Features</a> •
<a href="#installation">Installation</a> •
<a href="#license-">License</a> •
<a href="https://clarabel.org">Documentation</a>
</p>
__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](https://clarabel.org) | [dev](https://clarabel.org/dev)).__
Clarabel is also available in a Julia implementation. See [here](https://github.com/oxfordcontrol/Clarabel.jl).
## 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](https://github.com/oxfordcontrol/Clarabel.rs) and distributed under the Apache 2.0 License
# Installation
Clarabel can be imported to Cargo based Rust projects by adding
```rust
[dependencies]
clarabel = "0"
```
to the project's `Cargo.toml` file. To install from source, see the [Rust Installation Documentation](https://oxfordcontrol.github.io/ClarabelDocs/stable/rust/installation_rs/).
To use the Python interface to the solver:
```
pip install clarabel
```
To install the Python interface from source, see the [Python Installation Documentation](https://oxfordcontrol.github.io/ClarabelDocs/stable/python/installation_py/).
## 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](LICENSE.md) file for details.
Raw data
{
"_id": null,
"home_page": null,
"name": "clarabel",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "convex, optimization, conic, solver, linear-programming",
"author": "Paul Goulart <paul.goulart@eng.ox.ac.uk>",
"author_email": "Paul Goulart <paul.goulart@eng.ox.ac.uk>",
"download_url": "https://files.pythonhosted.org/packages/bb/93/fb4b178a6697d04690c392289bb504032116eaf9f46c501fb23eb42a069d/clarabel-0.9.0.tar.gz",
"platform": null,
"description": "<p align=\"center\">\n<picture>\n <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://github.com/oxfordcontrol/ClarabelDocs/blob/main/docs/src/assets/logo-banner-dark-rs.png\" width=60%>\n <source media=\"(prefers-color-scheme: light)\" srcset=\"https://github.com/oxfordcontrol/ClarabelDocs/blob/main/docs/src/assets/logo-banner-light-rs.png\" width=60%>\n <img alt=\"Clarabel.jl logo\" src=\"https://github.com/oxfordcontrol/ClarabelDocs/blob/main/docs/src/assets/logo-banner-light-rs.png\" height=\"25\">\n</picture>\n<h1 align=\"center\" margin=0px>\nInterior Point Conic Optimization for Rust and Python\n</h1>\n<p align=\"center\">\n <a href=\"https://github.com/oxfordcontrol/Clarabel.rs/actions\"><img src=\"https://github.com/oxfordcontrol/Clarabel.rs/workflows/ci/badge.svg?branch=main\"></a>\n <a href=\"https://codecov.io/gh/oxfordcontrol/Clarabel.rs\"><img src=\"https://codecov.io/gh/oxfordcontrol/Clarabel.rs/branch/main/graph/badge.svg\"></a>\n <a href=\"https://clarabel.org\"><img src=\"https://img.shields.io/badge/Documentation-stable-purple.svg\"></a>\n <a href=\"https://opensource.org/licenses/Apache-2.0\"><img src=\"https://img.shields.io/badge/License-Apache%202.0-blue.svg\"></a>\n <a href=\"https://github.com/oxfordcontrol/Clarabel.rs/releases\"><img src=\"https://img.shields.io/badge/Release-v0.9.0-blue.svg\"></a>\n</p>\n\n<p align=\"center\">\n <a href=\"#features\">Features</a> \u2022\n <a href=\"#installation\">Installation</a> \u2022\n <a href=\"#license-\">License</a> \u2022\n <a href=\"https://clarabel.org\">Documentation</a>\n</p>\n\n__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:\n\n$$\n\\begin{array}{r}\n\\text{minimize} & \\frac{1}{2}x^T P x + q^T x\\\\\\\\[2ex]\n \\text{subject to} & Ax + s = b \\\\\\\\[1ex]\n & s \\in \\mathcal{K}\n \\end{array}\n$$\n\nwith decision variables\n$x \\in \\mathbb{R}^n$,\n$s \\in \\mathbb{R}^m$\nand data matrices\n$P=P^\\top \\succeq 0$,\n$q \\in \\mathbb{R}^n$,\n$A \\in \\mathbb{R}^{m \\times n}$, and\n$b \\in \\mathbb{R}^m$.\nThe convex set $\\mathcal{K}$ is a composition of convex cones.\n\n__For more information see the Clarabel Documentation ([stable](https://clarabel.org) | [dev](https://clarabel.org/dev)).__\n\nClarabel is also available in a Julia implementation. See [here](https://github.com/oxfordcontrol/Clarabel.jl).\n \n\n## Features\n\n* __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.\n* __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.\n* __Infeasibility detection__: Infeasible problems are detected using a homogeneous embedding technique.\n* __Open Source__: Our code is available on [GitHub](https://github.com/oxfordcontrol/Clarabel.rs) and distributed under the Apache 2.0 License\n\n# Installation\n\nClarabel can be imported to Cargo based Rust projects by adding\n```rust\n[dependencies]\nclarabel = \"0\" \n```\nto the project's `Cargo.toml` file. To install from source, see the [Rust Installation Documentation](https://oxfordcontrol.github.io/ClarabelDocs/stable/rust/installation_rs/).\n\nTo use the Python interface to the solver:\n```\npip install clarabel\n```\n\nTo install the Python interface from source, see the [Python Installation Documentation](https://oxfordcontrol.github.io/ClarabelDocs/stable/python/installation_py/).\n\n## Citing\n```\n@misc{Clarabel_2024,\n title={Clarabel: An interior-point solver for conic programs with quadratic objectives}, \n author={Paul J. Goulart and Yuwen Chen},\n year={2024},\n eprint={2405.12762},\n archivePrefix={arXiv},\n primaryClass={math.OC}\n}\n```\n\n## License \ud83d\udd0d\nThis project is licensed under the Apache License 2.0 - see the [LICENSE.md](LICENSE.md) file for details.\n\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Clarabel Conic Interior Point Solver for Rust / Python",
"version": "0.9.0",
"project_urls": {
"Source Code": "https://github.com/oxfordcontrol/Clarabel.rs"
},
"split_keywords": [
"convex",
" optimization",
" conic",
" solver",
" linear-programming"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "8bb9e41f5316a2d4261c340d9fa6aa1694dd57d12cc45f1e5dfc5773d2b53d39",
"md5": "d142cede7ae531ac687ef35a2e647ecf",
"sha256": "702cc4666c0ccf893c936f9f1f55cbb3233ae2d5fa05f67b370ac3e7ec50f222"
},
"downloads": -1,
"filename": "clarabel-0.9.0-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
"has_sig": false,
"md5_digest": "d142cede7ae531ac687ef35a2e647ecf",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.7",
"size": 1713421,
"upload_time": "2024-06-01T17:00:44",
"upload_time_iso_8601": "2024-06-01T17:00:44.707594Z",
"url": "https://files.pythonhosted.org/packages/8b/b9/e41f5316a2d4261c340d9fa6aa1694dd57d12cc45f1e5dfc5773d2b53d39/clarabel-0.9.0-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6575b4f2b5f4a0af6975c463efe9ef580debff98ade6795e6e885babf7527586",
"md5": "5250e92d265e44dc9f3da62e5a0af595",
"sha256": "8ea616757b460153ead375b3dd3ce763d46fc3717248077bbfa7b2c844b1775f"
},
"downloads": -1,
"filename": "clarabel-0.9.0-cp37-abi3-macosx_10_12_x86_64.whl",
"has_sig": false,
"md5_digest": "5250e92d265e44dc9f3da62e5a0af595",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.7",
"size": 890154,
"upload_time": "2024-06-01T17:00:47",
"upload_time_iso_8601": "2024-06-01T17:00:47.024546Z",
"url": "https://files.pythonhosted.org/packages/65/75/b4f2b5f4a0af6975c463efe9ef580debff98ade6795e6e885babf7527586/clarabel-0.9.0-cp37-abi3-macosx_10_12_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a52e096e0bc32ffa7eadb69f6e768fbbc58acf0b0e4003db4bd70c79b1856c47",
"md5": "7482071af22957859e9f31e8880e6c4b",
"sha256": "2b5ae16d7dd87aabf72260cf9590ba0d037c52d48555bcf3a86b1f0d9cf88dd4"
},
"downloads": -1,
"filename": "clarabel-0.9.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "7482071af22957859e9f31e8880e6c4b",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.7",
"size": 1761144,
"upload_time": "2024-06-01T17:00:48",
"upload_time_iso_8601": "2024-06-01T17:00:48.797716Z",
"url": "https://files.pythonhosted.org/packages/a5/2e/096e0bc32ffa7eadb69f6e768fbbc58acf0b0e4003db4bd70c79b1856c47/clarabel-0.9.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d91a4319fa902c9c3e350d134d78d79baa61c6e2e5e51050861ecc147c73f6a7",
"md5": "9d6cd7b13c4adb7f43d304aa0c150368",
"sha256": "85cb560a5c4cdfb079e3437e21f0b62b69ba766ae082aeb96ced0b5763214077"
},
"downloads": -1,
"filename": "clarabel-0.9.0-cp37-abi3-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "9d6cd7b13c4adb7f43d304aa0c150368",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.7",
"size": 1831888,
"upload_time": "2024-06-01T17:00:50",
"upload_time_iso_8601": "2024-06-01T17:00:50.647629Z",
"url": "https://files.pythonhosted.org/packages/d9/1a/4319fa902c9c3e350d134d78d79baa61c6e2e5e51050861ecc147c73f6a7/clarabel-0.9.0-cp37-abi3-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8c12e92ba69884f84e0f16a9fb5093522924502995348f0269cc42ed062f2edc",
"md5": "e37e968f210f7cc5bbe6376fb419f895",
"sha256": "0eaeb3fbb5a90b598700d5435c7f102592a1a79ee25df5a097e0af575838786b"
},
"downloads": -1,
"filename": "clarabel-0.9.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "e37e968f210f7cc5bbe6376fb419f895",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.7",
"size": 1784994,
"upload_time": "2024-06-01T17:00:52",
"upload_time_iso_8601": "2024-06-01T17:00:52.717319Z",
"url": "https://files.pythonhosted.org/packages/8c/12/e92ba69884f84e0f16a9fb5093522924502995348f0269cc42ed062f2edc/clarabel-0.9.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2e1fce55955a7ad5946cacd1f0aa76233ee354d4c357669ce81f1e5dc69be971",
"md5": "f0bfbdff4efab431dc4b9850254151f1",
"sha256": "759c2fa0ccc61ae1a02691c43753638a0ae793bf1de81c6f6763c346789a7e25"
},
"downloads": -1,
"filename": "clarabel-0.9.0-cp37-abi3-win32.whl",
"has_sig": false,
"md5_digest": "f0bfbdff4efab431dc4b9850254151f1",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.7",
"size": 699668,
"upload_time": "2024-06-01T17:00:54",
"upload_time_iso_8601": "2024-06-01T17:00:54.308976Z",
"url": "https://files.pythonhosted.org/packages/2e/1f/ce55955a7ad5946cacd1f0aa76233ee354d4c357669ce81f1e5dc69be971/clarabel-0.9.0-cp37-abi3-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "36be110fe7ca190e024e3185d6351645346b785da6933ce3fb382d4811215f8c",
"md5": "dc97e8447e53ca74de04525f6e68fd4e",
"sha256": "d24e4ed1b686eb2fe2a1b6e77935af6ad62a2c044131e70801ec1d3ef3d33280"
},
"downloads": -1,
"filename": "clarabel-0.9.0-cp37-abi3-win_amd64.whl",
"has_sig": false,
"md5_digest": "dc97e8447e53ca74de04525f6e68fd4e",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.7",
"size": 736436,
"upload_time": "2024-06-01T17:00:55",
"upload_time_iso_8601": "2024-06-01T17:00:55.573002Z",
"url": "https://files.pythonhosted.org/packages/36/be/110fe7ca190e024e3185d6351645346b785da6933ce3fb382d4811215f8c/clarabel-0.9.0-cp37-abi3-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "bb93fb4b178a6697d04690c392289bb504032116eaf9f46c501fb23eb42a069d",
"md5": "c360058aee010c8c81d6c00a78a25ff7",
"sha256": "0d6d3fe8800be5b4b5d40a8e14bd492667b3e46cc5dbe37677ce5ed25f0719d4"
},
"downloads": -1,
"filename": "clarabel-0.9.0.tar.gz",
"has_sig": false,
"md5_digest": "c360058aee010c8c81d6c00a78a25ff7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 199359,
"upload_time": "2024-06-01T17:00:57",
"upload_time_iso_8601": "2024-06-01T17:00:57.472140Z",
"url": "https://files.pythonhosted.org/packages/bb/93/fb4b178a6697d04690c392289bb504032116eaf9f46c501fb23eb42a069d/clarabel-0.9.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-01 17:00:57",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "oxfordcontrol",
"github_project": "Clarabel.rs",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "clarabel"
}