Clarabel.jl is a Julia implementation of an interior point numerical solver for convex optimization problems using a novel homogeneous embedding. Clarabel.jl 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 Rust implementation with additional language interfaces. See here.
Features
Versatile: Clarabel.jl 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.jl 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.
JuMP / Convex.jl support: We provide an interface to MathOptInterface (MOI), which allows you to describe your problem in JuMP and Convex.jl.
Arbitrary precision types: You can solve problems with any floating point precision, for example, Float32 or Julia's BigFloat type, using either the native interface, or via MathOptInterface / Convex.jl.
Open Source: Our code is available on GitHub and distributed under the Apache 2.0 License
Installation
Clarabel.jl can be added via the Julia package manager (type ]): pkg> add Clarabel
License 🔍
This project is licensed under the Apache License 2.0 - see the LICENSE.md file for details.
Open Source Agenda is not affiliated with "Clarabel.jl" Project. README Source: oxfordcontrol/Clarabel.jl