clarabel
Clarabel.rs: Interior-point solver for convex conic optimisation problems in Rust.
Science Score: 62.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
3 of 11 committers (27.3%) from academic institutions -
✓Institutional organization owner
Organization oxfordcontrol has institutional domain (www.eng.ox.ac.uk) -
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.5%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
Clarabel.rs: Interior-point solver for convex conic optimisation problems in Rust.
Basic Info
Statistics
- Stars: 458
- Watchers: 12
- Forks: 36
- Open Issues: 15
- Releases: 17
Topics
Metadata Files
README.md
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
rust
[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.
Owner
- Name: University of Oxford Control Group
- Login: oxfordcontrol
- Kind: organization
- Location: Oxford, UK
- Website: http://www.eng.ox.ac.uk/control
- Repositories: 12
- Profile: https://github.com/oxfordcontrol
Citation (CITATION.bib)
@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}
}
GitHub Events
Total
- Create event: 41
- Release event: 2
- Issues event: 35
- Watch event: 126
- Delete event: 29
- Issue comment event: 109
- Push event: 190
- Pull request review comment event: 7
- Pull request review event: 10
- Pull request event: 83
- Fork event: 8
Last Year
- Create event: 41
- Release event: 2
- Issues event: 35
- Watch event: 126
- Delete event: 29
- Issue comment event: 109
- Push event: 190
- Pull request review comment event: 7
- Pull request review event: 10
- Pull request event: 83
- Fork event: 8
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| goulart-paul | p****t@e****k | 465 |
| Nikitas Rontsis | n****s@g****m | 7 |
| dependabot[bot] | 4****] | 5 |
| Yuwen Chen | a****n@g****m | 4 |
| Thomas Schmelzer | t****r@g****m | 4 |
| Mikkel Paltorp | m****c@d****k | 2 |
| Balasubramanian Narasimhan | b****s@g****m | 2 |
| wuciting | w****g@m****n | 1 |
| Nunzio Onorati | 3****o | 1 |
| Chris Bowen | 4****n | 1 |
| Alex Rice | a****9@h****k | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 52
- Total pull requests: 172
- Average time to close issues: 3 months
- Average time to close pull requests: 12 days
- Total issue authors: 34
- Total pull request authors: 13
- Average comments per issue: 2.94
- Average comments per pull request: 0.86
- Merged pull requests: 147
- Bot issues: 0
- Bot pull requests: 9
Past Year
- Issues: 18
- Pull requests: 84
- Average time to close issues: about 1 month
- Average time to close pull requests: 12 days
- Issue authors: 14
- Pull request authors: 7
- Average comments per issue: 1.89
- Average comments per pull request: 0.83
- Merged pull requests: 70
- Bot issues: 0
- Bot pull requests: 3
Top Authors
Issue Authors
- goulart-paul (8)
- mipals (4)
- stephane-caron (3)
- RussTedrake (2)
- yan-zaretskiy (2)
- tschm (2)
- schmidt73 (2)
- Lishen1 (2)
- geoeo (2)
- sdrap (1)
- wjzhou-ep (1)
- lovasoa (1)
- ericcvdh (1)
- SPC-code (1)
- hoodmane (1)
Pull Request Authors
- goulart-paul (163)
- dependabot[bot] (14)
- tschm (9)
- nrontsis (3)
- bnaras (3)
- a-n-n-a-l-e-e (2)
- nunzioono (2)
- wuciting (2)
- DominikPeters (2)
- alexarice (2)
- mipals (2)
- cbbowen (2)
- fe-franco (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 4
-
Total downloads:
- cargo 233,748 total
- pypi 1,833,094 last-month
- Total docker downloads: 424
-
Total dependent packages: 13
(may contain duplicates) -
Total dependent repositories: 2
(may contain duplicates) - Total versions: 65
- Total maintainers: 2
proxy.golang.org: github.com/oxfordcontrol/clarabel.rs
- Documentation: https://pkg.go.dev/github.com/oxfordcontrol/clarabel.rs#section-documentation
- License: apache-2.0
-
Latest release: v0.11.1
published 7 months ago
Rankings
proxy.golang.org: github.com/oxfordcontrol/Clarabel.rs
- Documentation: https://pkg.go.dev/github.com/oxfordcontrol/Clarabel.rs#section-documentation
- License: apache-2.0
-
Latest release: v0.11.1
published 7 months ago
Rankings
pypi.org: clarabel
Clarabel Conic Interior Point Solver for Rust / Python
- Documentation: https://clarabel.readthedocs.io/
- License: Apache-2.0
-
Latest release: 0.11.1
published 7 months ago
Rankings
Maintainers (1)
crates.io: clarabel
Clarabel Conic Interior Point Solver for Rust / Python
- Documentation: https://docs.rs/clarabel/
- License: Apache-2.0
-
Latest release: 0.11.1
published 7 months ago
Rankings
Maintainers (1)
Dependencies
- actions-rs/tarpaulin v0.1 composite
- actions/checkout v3 composite
- codecov/codecov-action v3 composite
- actions-rs/toolchain v1 composite
- actions/checkout v3 composite
- actions/download-artifact v2 composite
- actions/setup-python v4 composite
- actions/setup-python v2 composite
- actions/upload-artifact v2 composite
- messense/maturin-action v1 composite
- numpy *
- scipy *