• Stars
    star
    192
  • Rank 200,890 (Top 4 %)
  • Language
    Rust
  • License
    Apache License 2.0
  • Created over 2 years ago
  • Updated 11 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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


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 and 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.

License 🔍

This project is licensed under the Apache License 2.0 - see the LICENSE.md file for details.

More Repositories

1

COSMO.jl

COSMO: Accelerated ADMM-based solver for convex conic optimisation problems (LP, QP, SOCP, SDP, ExpCP, PowCP). Automatic chordal decomposition of sparse semidefinite programs.
Julia
280
star
2

Clarabel.jl

Clarabel.jl: Interior-point solver for convex conic optimisation problems in Julia.
Julia
165
star
3

CDCS

An open-source MATLAB® ADMM solver for partially decomposable conic optimization programs.
MATLAB
63
star
4

SOSTOOLS

A free MATLAB toolbox for formulating and solving sums of squares (SOS) optimization programs
MATLAB
54
star
5

Bayesian-Optimization

Reference implementation of Optimistic Expected Improvement.
Python
45
star
6

Clarabel.cpp

Clarabel.cpp: C/C++ interface to the Clarabel Interior-point solver for convex conic optimisation problems.
C++
23
star
7

TRS.jl

Solving the Trust Region Subproblem as an Eigenproblem in Julia
Julia
19
star
8

QDLDL.jl

A free LDL factorisation routine (Julia implementation)
Julia
18
star
9

OMD

A Matlab package for computing the optimal mode decomposition (OMD) or dynamic mode decomposition (DMD).
MATLAB
12
star
10

SwitchTimeOpt.jl

SwitchTimeOpt.jl - Switching Time Optimization in Julia
Julia
12
star
11

cosmo-python

Python interface for COSMO.jl convex optimisation solver.
Python
11
star
12

SOSADMM

An open source first-order MATLAB solver for conic programs with row sparsity.
MATLAB
10
star
13

clarabel-r

Interior Point Conic Optimization Solver
R
9
star
14

qpip

Matlab interior point solver for quadratic programs
MATLAB
8
star
15

CDCS.jl

Julia wrapper for CDCS (https://github.com/oxfordcontrol/CDCS/)
Julia
6
star
16

ClarabelDocs

Documentation for the Clarabel interior point conic solver
Julia
5
star
17

COSMOAccelerators.jl

Accelerators for fixed-point methods, used in the conic solver COSMO.jl
Julia
5
star
18

GeneralQP.jl

An active set solver for general (definite/indefinite) dense Quadratic Programs
Julia
3
star
19

QPnorm.jl

Solving Nonconvex Quadratic Problems with a norm constraint
Julia
2
star
20

ClarabelBenchmarks

Benchmark tests for Clarabel solver
Julia
2
star
21

DoublyStochastic.jl

Doubly Stochastic Approximation of a Matrix in the Frobenius norm.
Julia
1
star
22

osqp-recipes

OSQP Python Conda recipes builder
1
star
23

osqp-wheels

OSQP Python wheels builder
Shell
1
star