clarabel


Nameclarabel JSON
Version 0.9.0 PyPI version JSON
download
home_pageNone
SummaryClarabel Conic Interior Point Solver for Rust / Python
upload_time2024-06-01 17:00:57
maintainerNone
docs_urlNone
authorPaul Goulart <paul.goulart@eng.ox.ac.uk>
requires_python>=3.7
licenseApache-2.0
keywords convex optimization conic solver linear-programming
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <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"
}
        
Elapsed time: 0.92373s