Skip to main content

Clarabel Conic Interior Point Solver for Rust / Python

Project description

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

[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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

clarabel-0.9.0.tar.gz (199.4 kB view details)

Uploaded Source

Built Distributions

clarabel-0.9.0-cp37-abi3-win_amd64.whl (736.4 kB view details)

Uploaded CPython 3.7+ Windows x86-64

clarabel-0.9.0-cp37-abi3-win32.whl (699.7 kB view details)

Uploaded CPython 3.7+ Windows x86

clarabel-0.9.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.7+ manylinux: glibc 2.17+ x86-64

clarabel-0.9.0-cp37-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (1.8 MB view details)

Uploaded CPython 3.7+ manylinux: glibc 2.17+ i686

clarabel-0.9.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.7+ manylinux: glibc 2.17+ ARM64

clarabel-0.9.0-cp37-abi3-macosx_10_12_x86_64.whl (890.2 kB view details)

Uploaded CPython 3.7+ macOS 10.12+ x86-64

clarabel-0.9.0-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (1.7 MB view details)

Uploaded CPython 3.7+ macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64

File details

Details for the file clarabel-0.9.0.tar.gz.

File metadata

  • Download URL: clarabel-0.9.0.tar.gz
  • Upload date:
  • Size: 199.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.17

File hashes

Hashes for clarabel-0.9.0.tar.gz
Algorithm Hash digest
SHA256 0d6d3fe8800be5b4b5d40a8e14bd492667b3e46cc5dbe37677ce5ed25f0719d4
MD5 c360058aee010c8c81d6c00a78a25ff7
BLAKE2b-256 bb93fb4b178a6697d04690c392289bb504032116eaf9f46c501fb23eb42a069d

See more details on using hashes here.

File details

Details for the file clarabel-0.9.0-cp37-abi3-win_amd64.whl.

File metadata

  • Download URL: clarabel-0.9.0-cp37-abi3-win_amd64.whl
  • Upload date:
  • Size: 736.4 kB
  • Tags: CPython 3.7+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.17

File hashes

Hashes for clarabel-0.9.0-cp37-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 d24e4ed1b686eb2fe2a1b6e77935af6ad62a2c044131e70801ec1d3ef3d33280
MD5 dc97e8447e53ca74de04525f6e68fd4e
BLAKE2b-256 36be110fe7ca190e024e3185d6351645346b785da6933ce3fb382d4811215f8c

See more details on using hashes here.

File details

Details for the file clarabel-0.9.0-cp37-abi3-win32.whl.

File metadata

  • Download URL: clarabel-0.9.0-cp37-abi3-win32.whl
  • Upload date:
  • Size: 699.7 kB
  • Tags: CPython 3.7+, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.17

File hashes

Hashes for clarabel-0.9.0-cp37-abi3-win32.whl
Algorithm Hash digest
SHA256 759c2fa0ccc61ae1a02691c43753638a0ae793bf1de81c6f6763c346789a7e25
MD5 f0bfbdff4efab431dc4b9850254151f1
BLAKE2b-256 2e1fce55955a7ad5946cacd1f0aa76233ee354d4c357669ce81f1e5dc69be971

See more details on using hashes here.

File details

Details for the file clarabel-0.9.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

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

See more details on using hashes here.

File details

Details for the file clarabel-0.9.0-cp37-abi3-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

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

See more details on using hashes here.

File details

Details for the file clarabel-0.9.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

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

See more details on using hashes here.

File details

Details for the file clarabel-0.9.0-cp37-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for clarabel-0.9.0-cp37-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8ea616757b460153ead375b3dd3ce763d46fc3717248077bbfa7b2c844b1775f
MD5 5250e92d265e44dc9f3da62e5a0af595
BLAKE2b-256 6575b4f2b5f4a0af6975c463efe9ef580debff98ade6795e6e885babf7527586

See more details on using hashes here.

File details

Details for the file clarabel-0.9.0-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

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

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page