clarabel

Clarabel.rs: Interior-point solver for convex conic optimisation problems in Rust.

https://github.com/oxfordcontrol/clarabel.rs

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

conic-optimization conic-programs convex-optimization interior-point-method linear-programming optimization optimization-algorithms quadratic-programming rust-lang semidefinite-programming

Keywords from Contributors

investing mesh interpretability sequences projection interactive hacking network-simulation
Last synced: 4 months ago · JSON representation ·

Repository

Clarabel.rs: Interior-point solver for convex conic optimisation problems in Rust.

Basic Info
  • Host: GitHub
  • Owner: oxfordcontrol
  • License: apache-2.0
  • Language: Rust
  • Default Branch: main
  • Homepage:
  • Size: 1.52 MB
Statistics
  • Stars: 458
  • Watchers: 12
  • Forks: 36
  • Open Issues: 15
  • Releases: 17
Topics
conic-optimization conic-programs convex-optimization interior-point-method linear-programming optimization optimization-algorithms quadratic-programming rust-lang semidefinite-programming
Created over 3 years ago · Last pushed 5 months ago
Metadata Files
Readme Changelog License Citation

README.md

Clarabel.jl logo

Interior Point Conic Optimization for Rust and Python

FeaturesInstallationLicenseDocumentation

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

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

All Time
  • Total Commits: 493
  • Total Committers: 11
  • Avg Commits per committer: 44.818
  • Development Distribution Score (DDS): 0.057
Past Year
  • Commits: 157
  • Committers: 8
  • Avg Commits per committer: 19.625
  • Development Distribution Score (DDS): 0.057
Top Committers
Name Email 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
dependencies (18) github_actions (2)

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
  • Versions: 16
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 6.5%
Average: 6.7%
Dependent repos count: 6.9%
Last synced: 4 months ago
proxy.golang.org: github.com/oxfordcontrol/Clarabel.rs
  • Versions: 16
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 6.5%
Average: 6.7%
Dependent repos count: 6.9%
Last synced: 4 months ago
pypi.org: clarabel

Clarabel Conic Interior Point Solver for Rust / Python

  • Versions: 16
  • Dependent Packages: 11
  • Dependent Repositories: 1
  • Downloads: 1,833,094 Last month
  • Docker Downloads: 107
Rankings
Dependent packages count: 1.6%
Downloads: 2.7%
Stargazers count: 5.9%
Average: 8.4%
Forks count: 9.6%
Dependent repos count: 22.2%
Maintainers (1)
Last synced: 4 months ago
crates.io: clarabel

Clarabel Conic Interior Point Solver for Rust / Python

  • Versions: 17
  • Dependent Packages: 2
  • Dependent Repositories: 1
  • Downloads: 233,748 Total
  • Docker Downloads: 317
Rankings
Stargazers count: 12.2%
Forks count: 13.8%
Dependent repos count: 17.1%
Average: 20.7%
Downloads: 28.9%
Dependent packages count: 31.2%
Maintainers (1)
Last synced: 4 months ago

Dependencies

.github/workflows/ci.yml actions
  • actions-rs/tarpaulin v0.1 composite
  • actions/checkout v3 composite
  • codecov/codecov-action v3 composite
.github/workflows/pypi.yaml actions
  • 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
Cargo.toml cargo
pyproject.toml pypi
  • numpy *
  • scipy *