Skip to content

Commit

Permalink
Merge pull request #1 from oxfordcontrol/v0.3.0-dev
Browse files Browse the repository at this point in the history
v0.3.0 updates
  • Loading branch information
goulart-paul committed Sep 14, 2022
2 parents 0b175d3 + ae77aff commit f358d83
Show file tree
Hide file tree
Showing 7 changed files with 43 additions and 15 deletions.
2 changes: 1 addition & 1 deletion Project.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name = "ClarabelDocs"
uuid = "5bffead5-e986-4d40-a894-38d9eb53c10f"
authors = ["Paul Goulart <paul.goulart@eng.ox.ac.uk>"]
version = "0.2.0"
version = "0.3.0"

[deps]
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
Expand Down
3 changes: 2 additions & 1 deletion docs/pages.jl
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ pages = [
"Citing Clarabel" => "citing.md",
"Contributing" => "contributing.md",
"API Reference" => Any[
"Julia API" => "api_jl.md"
"Solver Settings" => "api_settings.md",
"Julia API" => "api_jl.md",
"Rust API \u29C9" => "api_rs.md"
]
]
3 changes: 3 additions & 0 deletions docs/src/_common/getting_started_constraints.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ Cone Type| Description
`ZeroConeT` | The set ``\{ 0 \}^{dim}`` that contains the origin
`NonnegativeConeT` | The nonnegative orthant ``\{ x \in \mathbb{R}^{dim} : x_i \ge 0, \forall i=1,\dots,\mathrm{dim} \}``
`SecondOrderConeT` | The second-order (Lorenz) cone ``\{ (t,x) \in \mathbb{R}^{dim} : \|x\|_2 \leq t \}``
`ExponentialConeT` | The exponential cone ``\{(x, y, z) : y > 0,~~ ye^{x/y} ≤ z \}``
`PowerConeT` | The power cone ``\{(x, y, z) : x^\alpha y^{(1-\alpha)} \geq \|z\|,~ (x,y) \geq 0 \}`` with ``\alpha \in (0,1)``



Suppose that we have a problem with decision variable ``x \in \mathbb{R}^3`` and our constraints are:
Expand Down
6 changes: 0 additions & 6 deletions docs/src/api_jl.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,6 @@ Clarabel.solve!
Clarabel.SupportedCone
```

## [Settings](@id api-settings)

```@docs
Clarabel.Settings
```

## [Solver Status](@id api-solverstatus)

```@docs
Expand Down
25 changes: 25 additions & 0 deletions docs/src/api_settings.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Clarabel Solver Settings


The Clarabel solver supports a variety of configuration options. The Julia, Rust and Python
and interfaces all support the same set of options with identical field names.

!!! warning
The solver defaults are configured to give good general performance for most problems, but
assume that the problem data is of 64 bit float type. Although the Rust and Julia solvers
will accept 32 bit types instead (i.e. `Float64` in Julia or `f32` in Rust), the solver
is unlikely to perform well unless the tolerances are relaxed.

---

The full set of options follows below.



## [Settings](@id api-settings)

```@docs
Clarabel.Settings
```


2 changes: 1 addition & 1 deletion docs/src/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Clarabel is available in either a native [Julia](https://www.julia.org) or a nat

## Features

* __Versatile__: Clarabel 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.
* __Versatile__: Clarabel solves linear programs (LPs), quadratic programs (QPs), second-order cone programs (SOCPs), and problems with exponential and power cone constraints. The Julia version also solves semidefinite programs (SDPs).
* __Quadratic objectives__: Unlike interior point solvers based on the standard homogeneous self-dual embedding (HSDE) model, Clarabel handles quadratic objective without requiring any epigraphical reformulation of its objective function. 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.
* __Arbitrary precision types__: You can solve problems with any floating point precision, e.g. Float32 or Julia's BigFloat type in Julia and f32 or f64 types in Rust.
Expand Down
17 changes: 11 additions & 6 deletions docs/src/julia/getting_started_jl.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,12 +136,17 @@ Once the solver algorithm terminates you can inspect the solution using the `sol

Status Code | Description
--- | :---
UNSOLVED | Default value, only occurs prior to calling `Clarabel.solve!`
SOLVED | Solution found
PRIMAL_INFEASIBLE | Problem is primal infeasible
DUAL_INFEASIBLE | Problem is dual infeasible
MAX_ITERATIONS | Solver halted after reaching iteration limit
MAX_TIME | Solver halted after reaching time limit
SOLVED | Solver terminated with a solution.
PRIMAL_INFEASIBLE | Problem is primal infeasible. Solution returned is a certificate of primal infeasibility.
DUAL_INFEASIBLE | Problem is dual infeasible. Solution returned is a certificate of dual infeasibility.
ALMOST\_SOLVED | Solver terminated with a solution (reduced accuracy).
ALMOST\_PRIMAL\_INFEASIBLE | Problem is primal infeasible. Solution returned is a certificate of primal infeasibility (reduced accuracy).
ALMOST\_DUAL\_INFEASIBLE | Problem is dual infeasible. Solution returned is a certificate of dual infeasibility (reduced accuracy).
MAX\_ITERATIONS | Iteration limit reached before solution or infeasibility certificate found.
MAX\_TIME | Time limit reached before solution or infeasibility certificate found.
NUMERICAL\_ERROR | Solver terminated with a numerical error.
INSUFFICIENT\_PROGRESS | Solver terminated due to lack of progress.


The total solution time (include combined `setup!` and `solve!` times) is given in `solution.solve_time`. Detailed information about the solve time and memory allocation can be found in the solver's `timer` field.

Expand Down

0 comments on commit f358d83

Please sign in to comment.