Features • Installation • License • Documentation
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:
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.jl Documentation (stable | dev).
- Versatile: Clarabel.jl solves linear programs (LPs), quadratic programs (QPs), second-order cone programs (SOCPs) and semidefinite programs (SDPs). Future versions will provide support for problems involving exponential and power cones.
- Quadratic objectives: Unlike interior point solvers based on the standard homogeneous self-dual embedding (HSDE), Clarabel.jl handles quadratic objective 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 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, e.g. 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 Licence
- Clarabel.jl can be added via the Julia package manager (type
]
):pkg> add Clarabel
This project is licensed under the Apache License - see the LICENSE.md file for details.