Conic Optimization

1. Introduction

This note introduces some central ideas behind the implementation of efficient interior-point methods for solving conic programs. A large portion of the theory section is based on the papers for the conic solvers Clarabel11 You can play around with a few examples using a Wasm-compiled Clarabel here. [1] and CVXOPT [2]. What this note adds is some essential implementation details that were left out of the original two papers (e.g. iterative refinement, matrix equilibration, and handling of the structure of the scaling matrices).

2. Primal and dual problems

We will in this text consider optimization problems where the objective function is at most quadratic and the constraints are conic (including the zero cone in order to model equality constraints). The general form of such (primal) problems is the following

minimize12๐‘ฅโŠค๐‘ƒ๐‘ฅ+๐‘žโŠค๐‘ฅsubject to๐ด๐‘ฅ+๐‘ =๐‘๐‘ โˆˆ๐’ฆ๏ธ€,

(1)

where ๐‘ฅโˆˆโ„๐‘› is the decision variable, ๐‘ โˆˆโ„๐‘š is the slack variable, and ๐‘ƒ=๐‘ƒโŠคโชฐ0โˆˆโ„๐‘›ร—๐‘›, ๐‘žโˆˆโ„๐‘›, ๐ดโˆˆโ„๐‘šร—๐‘›, ๐‘โˆˆโ„๐‘š. Furthermore, ๐’ฆ๏ธ€ is a composite i.e. the Cartesian product of ๐พ cones (๐’ฆ๏ธ€=๐’ฆ๏ธ€1ร—โ€ฆร—๐’ฆ๏ธ€๐พ) with each of the cones ๐’ฆ๏ธ€๐‘˜ of dimension ๐‘™๐‘˜ being of the following types

where smat(๐‘ฅ) creates a symmetric matrix from the vector ๐‘ฅ. This can be done in a plethora of ways, but we will use the definition from Clarabel, which fills the lower triangle row by row

smat(๐‘ฅ)=[๐‘ฅ1๐‘ฅ2/2โ‹ฏ๐‘ฅ๐‘›(๐‘›โˆ’1)/2+1/2๐‘ฅ2/2๐‘ฅ3โ‹ฏ๐‘ฅ๐‘›(๐‘›โˆ’1)/2+2/2โ‹ฎโ‹ฎโ‹ฑโ‹ฎ๐‘ฅ๐‘›(๐‘›โˆ’1)/2+1/2๐‘ฅ๐‘›(๐‘›โˆ’1)/2+2/2โ‹ฏ๐‘ฅ๐‘›(๐‘›+1)/2].

(2)

where the scaling of 2 have been introduced on the off-diagonal elements in order to preserve the inner product, i.e. ๐‘ฅโŠค๐‘ฆ=tr(smat(๐‘ฅ)smat(๐‘ฆ)). Furthermore, we denote the inverse operation by svec(๐‘‹), i.e. an operation that creates a vector from a symmetric matrix ๐‘‹. The nonnegative, second-order, and positive semidefinite cones are examples of symmetric cones which are a special class of cones that have a lot of nice properties. The exponential and power cones are examples of nonsymmetric cones which do not have the same nice properties as symmetric cones, but are still very useful in practice. The zero cone is a special case that is used to model equality constraints.

2.1. The dual problem

The primal optimization problem of interest can equivalently be written as

Primal Problem:{minimize12๐‘ฅโŠค๐‘ƒ๐‘ฅ+๐‘žโŠค๐‘ฅ,subject to๐‘ =๐‘โˆ’๐ด๐‘ฅโˆˆ๐’ฆ๏ธ€.

(3)

where the conic constraint ๐‘โˆ’๐ด๐‘ฅโˆˆ๐’ฆ๏ธ€ can be understood as a generalized inequality, i.e.

0โชฏ๐’ฆ๏ธ€๐‘ =๐‘โˆ’๐ด๐‘ฅ.

(4)

However, the standard form (similar to LPs) requires that the inequality is turned the other way. As such we negate the expression, resulting in

๐ด๐‘ฅโˆ’๐‘โชฏ๐’ฆ๏ธ€0.

(5)

We now write up the Lagrangian as

๐ฟ(๐‘ฅ,๐‘ง)=12๐‘ฅโŠค๐‘ƒ๐‘ฅ+๐‘žโŠค๐‘ฅ+๐‘งโŠค(๐ด๐‘ฅโˆ’๐‘)

(6)

Since โˆ’(๐ด๐‘ฅโˆ’๐‘)โˆˆ๐’ฆ๏ธ€ we must have that ๐‘ง is in the dual cone ๐’ฆ๏ธ€โˆ— in order for the Lagrangian to be a lower bound for any feasible ๐‘ฅ. This comes directly from the definition of the dual cone, i.e.

๐’ฆ๏ธ€โˆ—={๐‘งโˆˆโ„๐‘š|๐‘งโŠค๐‘ โ‰ฅ0,โˆ€๐‘ โˆˆ๐’ฆ๏ธ€},

(7)

so that, in particular, ๐‘งโŠค(๐ด๐‘ฅโˆ’๐‘)โ‰ค0 for every ๐‘ฅ with ๐‘โˆ’๐ด๐‘ฅโˆˆ๐’ฆ๏ธ€.

Now since we want to find a stationary point we compute the gradient of the Lagrangian and set it to zero

โˆ‡๐‘ฅ๐ฟ(๐‘ฅ,๐‘ง)=๐‘ƒ๐‘ฅ+๐‘ž+๐ดโŠค๐‘ง=0.

(8)

Now notice that the Lagrangian can be written as

๐‘ฅโŠค(12๐‘ƒ๐‘ฅ+๐‘ž+๐ดโŠค๐‘ง)โˆ’๐‘โŠค๐‘ง

(9)

The thing inside the parentheses, is almost equal to the zero constraint on the gradient. By performing the mathematicianโ€™s favorite magic trick of adding zero followed by rearranging the expressions we end up with

๐‘ฅโŠค(12๐‘ƒ๐‘ฅ+๐‘ž+๐ดโŠค๐‘ง)+(12๐‘ฅโŠค๐‘ƒ๐‘ฅโˆ’12๐‘ฅโŠค๐‘ƒ๐‘ฅโŸ=0)โˆ’๐‘โŠค๐‘ง=๐‘ฅโŠค(๐‘ƒ๐‘ฅ+๐‘ž+๐ดโŠค๐‘ง)โŸโˆ‡๐‘ฅ๐ฟ(๐‘ฅ,๐‘ง)=0โˆ’๐‘โŠค๐‘งโˆ’12๐‘ฅโŠค๐‘ƒ๐‘ฅ.

(10)

As such the dual formulation of the problem becomes

Dual Problem:{maximizeโˆ’12๐‘ฅโŠค๐‘ƒ๐‘ฅโˆ’๐‘โŠค๐‘ง,subject to๐‘ƒ๐‘ฅ+๐‘ž+๐ดโŠค๐‘ง=0,๐‘งโˆˆ๐’ฆ๏ธ€โˆ—

(11)

2.2. Homogeneous embedding

The standard KKT conditions for the primal problem are

๐ด๐‘ฅ+๐‘ =๐‘๐‘ƒ๐‘ฅ+๐ดโŠค๐‘ง=โˆ’๐‘ž๐‘ โŠค๐‘ง=0(๐‘ ,๐‘ง)โˆˆ๐’ฆ๏ธ€ร—๐’ฆ๏ธ€โˆ—.

(12)

However, we can take a different path in order to solve the same problem. First we define the duality gap ๐›พ as the difference between the primal and dual objectives

๐›พ:=(12๐‘ฅโŠค๐‘ƒ๐‘ฅ+๐‘žโŠค๐‘ฅ)โˆ’(โˆ’12๐‘ฅโŠค๐‘ƒ๐‘ฅโˆ’๐‘โŠค๐‘ง)=๐‘ฅโŠค๐‘ƒ๐‘ฅ+๐‘žโŠค๐‘ฅ+๐‘โŠค๐‘ง=๐‘ โŠค๐‘ง

(13)

where we used that ๐‘ž=โˆ’๐‘ƒ๐‘ฅโˆ’๐ดโŠค๐‘ง (from the gradient constraint) and ๐‘ =๐‘โˆ’๐ด๐‘ฅ (from the definition of the equality constraints). Because (๐‘ ,๐‘ง)โˆˆ(๐’ฆ๏ธ€,๐’ฆ๏ธ€โˆ—) the duality gap is always nonnegative for any feasible point, and is zero at the optimal point (๐‘ฅโˆ—,๐‘ โˆ—,๐‘งโˆ—) when strong duality holds. We can therefore come up with a different optimization problem by combining the constraints of the primal and dual problem and with an objective to minimize the duality gap

minimize๐‘ฅ,๐‘ ,๐‘ง๐‘ โŠค๐‘ง,subject to๐‘ƒ๐‘ฅ+๐ดโŠค๐‘ง+๐‘ž=0,๐ด๐‘ฅ+๐‘ โˆ’๐‘=0,๐‘ฅโŠค๐‘ƒ๐‘ฅ+๐‘žโŠค๐‘ฅ+๐‘โŠค๐‘ง=0,(๐‘ ,๐‘ง)โˆˆ๐’ฆ๏ธ€ร—๐’ฆ๏ธ€โˆ—.

(14)

An issue with the above is that the duality gap is explicitly set to zero in the third equality constraint. This condition can be relaxed after a change of variables ๐‘ฅโ†’๐‘ฅ๐œ,๐‘งโ†’๐‘ง๐œ, and ๐‘ โ†’๐‘ ๐œ and instead solve

Homogeneous embedding:{minimize๐‘ฅ,๐‘ ,๐‘ง,๐œ,๐œ…๐‘ โŠค๐‘ง+๐œ๐œ…subject to๐‘ƒ๐‘ฅ+๐ดโŠค๐‘ง+๐‘ž๐œ=0,๐ด๐‘ฅ+๐‘ โˆ’๐‘๐œ=0,๐œโˆ’1๐‘ฅโŠค๐‘ƒ๐‘ฅ+๐‘žโŠค๐‘ฅ+๐‘โŠค๐‘ง+๐œ…=0,(๐‘ ,๐‘ง,๐œ,๐œ…)โˆˆ๐’ฆ๏ธ€ร—๐’ฆ๏ธ€โˆ—ร—โ„+ร—โ„+.

(15)

In [1] they go on to show the existence of solutions and infeasibility detection. This will be skipped here.

3. Barrier functions

Barrier functions are functions that are defined only inside of the feasible region (i.e. when ๐‘ =๐‘โˆ’๐ด๐‘ฅโˆˆ๐’ฆ๏ธ€) and tend towards infinity when we move towards the boundary of the feasible set. They are useful as they can be used to approximate the constrained problem by an unconstrained problem

{minimize12๐‘ฅโŠค๐‘ƒ๐‘ฅ+๐‘žโŠค๐‘ฅsubject to๐ด๐‘ฅ+๐‘ =๐‘๐‘ โˆˆ๐’ฆ๏ธ€,โ‰ˆminimize12๐‘ฅโŠค๐‘ƒ๐‘ฅ+๐‘žโŠค๐‘ฅ+๐œ‡๐‘“(๐‘โˆ’๐ด๐‘ฅ).

(16)

As ๐œ‡โ†’0 the solution to the unconstrained problem tends towards the solution of the constrained problem. A naive approach would simply be to pick ๐œ‡ to be a small value in order to get a good approximation of the original problem. However, this is not a good idea as the resulting optimization problem is very ill-conditioned and hard to solve. Instead, interior-point methods start with a large value of ๐œ‡ and then track the solution of the unconstrained problem as ๐œ‡ decreases until we are reasonably close to the optimal solution of the original problem. Methods that rely on this strategy of solving a series of simpler problems are known as homotopy methods. As an example we will now describe the properties of the logarithmic barrier functions for the three symmetric cones22 That is the nonnegative, second-order, and positive semidefinite cone., but later we will also discuss the barrier functions for the exponential and power cones.

3.1. The logarithmic barrier function for the three symmetric cones

For a composite cone ๐’ฆ๏ธ€=๐’ฆ๏ธ€1ร—๐’ฆ๏ธ€2ร—โ€ฆร—๐’ฆ๏ธ€๐พ where each component is one of the three symmetric cones we have that the logarithmic barrier function is given by

๐‘“(๐‘ )=โˆ‘๐‘˜=1๐พ๐‘“๐‘˜(๐‘ ๐‘˜),๐‘“๐‘˜(๐‘ )={โˆ’โˆ‘๐‘—=1๐‘›log(๐‘ ๐‘—)๐’ฆ๏ธ€๐‘˜=โ„+๐‘™๐‘˜โˆ’12log(๐‘ โŠค๐ฝ๐‘ )๐’ฆ๏ธ€๐‘˜=๐’ฌ๏ธ€๐‘™๐‘˜โˆ’logdetsmat(๐‘ )๐’ฆ๏ธ€๐‘˜=๐’ฎ๏ธ€๐‘™๐‘˜,

(17)

where ๐‘ =[๐‘ 1๐‘ 2โ€ฆ๐‘ ๐พ]โŠค with ๐‘ ๐‘˜โˆˆ๐’ฆ๏ธ€๐‘˜ and

๐ฝ=[100โˆ’๐ผ๐‘™๐‘˜โˆ’1],

(18)

meaning that ๐‘ ๐‘˜โŠค๐ฝ๐‘ ๐‘˜=๐‘ 12โˆ’โ€–๐‘ 2โ€–2โ‰ฅ033 The notation here is a little sloppy as we use that ๐‘ ๐‘˜=(๐‘ 1,๐‘ 2)โˆˆโ„ร—โ„๐‘™๐‘˜โˆ’1. for all ๐‘ ๐‘˜โˆˆ๐’ฌ๏ธ€๐‘™๐‘˜. Furthermore, the logarithmic barrier function satisfies the relation ๐‘“(๐‘ก๐‘ )=๐‘“(๐‘ )โˆ’๐‘šlog(๐‘ก) for ๐‘ก>0 where

๐‘š=๐‘š1+โ€ฆ+๐‘š๐พ,๐‘š๐‘˜={๐‘™๐‘˜๐’ฆ๏ธ€๐‘˜=โ„+๐‘™๐‘˜1๐’ฆ๏ธ€๐‘˜=๐’ฌ๏ธ€๐‘™๐‘˜๐‘™๐‘˜๐’ฆ๏ธ€๐‘˜=๐’ฎ๏ธ€๐‘™๐‘˜.

(19)

We refer to ๐‘š๐‘˜ as the degree of the ๐‘˜th cone, so that ๐‘š is the degree of the composite cone ๐’ฆ๏ธ€.

3.2. Gradients of the barrier function for the three symmetric cones

By linearity the gradient of the logarithmic barrier function is given by the sum of gradients of the individual barrier functions for each symmetric cone given by

โˆ‡๐‘“๐‘˜(๐‘ ๐‘˜)={โˆ’diag(๐‘ ๐‘˜)โˆ’11๐‘™๐‘˜๐’ฆ๏ธ€๐‘˜=โ„+๐‘™๐‘˜โˆ’(๐‘ ๐‘˜โŠค๐ฝ๐‘ ๐‘˜)โˆ’1๐ฝ๐‘ ๐‘˜๐’ฆ๏ธ€๐‘˜=๐’ฌ๏ธ€๐‘™๐‘˜โˆ’svec(smat(๐‘ ๐‘˜)โˆ’1)๐’ฆ๏ธ€๐‘˜=๐’ฎ๏ธ€๐‘™๐‘˜,

(20)

where 1๐‘™ is a ๐‘™-vector of ones. It can be shown that โˆ’โˆ‡๐‘“(๐‘ )โˆˆ๐’ฆ๏ธ€ and that ๐‘ โŠคโˆ‡๐‘“(๐‘ )=โˆ’๐‘š for ๐‘ โˆˆ๐’ฆ๏ธ€.

3.3. Hessians of the barrier function for the three symmetric cones

We denote the Hessian of ๐‘“ and ๐‘“๐‘˜ as ๐ป(๐‘ )=โˆ‡2๐‘“(๐‘ ) and ๐ป๐‘˜(๐‘ ๐‘˜)=โˆ‡2๐‘“๐‘˜(๐‘ ๐‘˜):

๐ป๐‘˜(๐‘ ๐‘˜)={diag(๐‘ ๐‘˜)โˆ’2๐’ฆ๏ธ€๐‘˜=โ„+๐‘™(๐‘ ๐‘˜โŠค๐ฝ๐‘ ๐‘˜)โˆ’2(2๐ฝ๐‘ ๐‘˜๐‘ ๐‘˜โŠค๐ฝโˆ’(๐‘ ๐‘˜โŠค๐ฝ๐‘ ๐‘˜)๐ฝ)๐’ฆ๏ธ€๐‘˜=๐’ฌ๏ธ€๐‘™smat(๐‘ ๐‘˜)โˆ’1โŠ—๐‘ smat(๐‘ ๐‘˜)โˆ’1๐’ฆ๏ธ€๐‘˜=๐’ฎ๏ธ€๐‘™,

(21)

where โŠ—๐‘  is the symmetric Kronecker product, defined in the section on semidefinite cones at the end of the post. For the scaling matrices below, we also need ๐‘…๐‘˜=๐ฟ1๐‘‰ฮ›๐‘˜โˆ’1/2=๐ฟ2โˆ’โŠค๐‘ˆฮ›๐‘˜1/2, which depends on both ๐‘ ๐‘˜ and ๐‘ง๐‘˜, with

smat(๐‘ ๐‘˜)=๐ฟ1๐ฟ1โŠค,smat(๐‘ง๐‘˜)=๐ฟ2๐ฟ2โŠค,๐ฟ2โŠค๐ฟ1=๐‘ˆฮ›๐‘˜๐‘‰โŠค.

(22)

In addition, we have that

๐ป๐‘˜(๐‘ ๐‘˜)โˆ’1={diag(๐‘ ๐‘˜)2๐’ฆ๏ธ€๐‘˜=โ„+๐‘™2๐‘ ๐‘˜๐‘ ๐‘˜โŠคโˆ’(๐‘ ๐‘˜โŠค๐ฝ๐‘ ๐‘˜)๐ฝ๐’ฆ๏ธ€๐‘˜=๐’ฌ๏ธ€๐‘™smat(๐‘ ๐‘˜)โŠ—๐‘ smat(๐‘ ๐‘˜)๐’ฆ๏ธ€๐‘˜=๐’ฎ๏ธ€๐‘™.

(23)

Further properties of the Hessian of the logarithmic barrier function are

๐ป(๐‘ )โˆ’1=๐ป(๐‘ โˆ’1),๐ป(๐‘ )1/2=๐ป(๐‘ 1/2)๐ป(๐‘ )๐‘ =๐‘ โˆ’1,๐ป(๐‘ 1/2)๐‘ =๐‘’,(๐ป(๐‘ )๐‘ฃ)โˆ’1=๐ป(๐‘ )โˆ’1๐‘ฃโˆ’1.

(24)

3.4. The Jordan product for the three symmetric cones

The Jordan products for the three symmetric cones are given by

๐‘ โšฌ๐‘ง={[๐‘ 1๐‘ง1๐‘ 2๐‘ง2โ€ฆ๐‘ ๐‘™๐‘ง๐‘™]โŠค๐’ฆ๏ธ€๐‘˜=โ„+๐‘™๐‘˜[๐‘ โŠค๐‘ง๐‘ 1๐‘ง2โŠค+๐‘ 2โŠค๐‘ง1]โŠค๐’ฆ๏ธ€๐‘˜=๐’ฌ๏ธ€๐‘™๐‘˜12svec(smat(๐‘ )smat(๐‘ง)+smat(๐‘ง)smat(๐‘ ))๐’ฆ๏ธ€๐‘˜=๐’ฎ๏ธ€๐‘™๐‘˜,

(25)

where ๐‘’ is the idempotent for the cones given by

๐‘’๐‘˜={[11โ€ฆ1]โŠค๐’ฆ๏ธ€๐‘˜=โ„+๐‘™๐‘˜[10โ€ฆ0]โŠค๐’ฆ๏ธ€๐‘˜=๐’ฌ๏ธ€๐‘™๐‘˜svec(๐ผ๐‘™๐‘˜)๐’ฆ๏ธ€๐‘˜=๐’ฎ๏ธ€๐‘™๐‘˜.

(26)

Note that ๐‘’โŠค(๐‘งโšฌ๐‘ )=๐‘งโŠค๐‘  and ๐‘’โŠค๐‘’=๐‘š. In addition, the inverse, square, and square root are defined by the relations ๐‘ โˆ’1โšฌ๐‘ =๐‘’, ๐‘ 2=๐‘ โšฌ๐‘ , and ๐‘ 12โšฌ๐‘ 12=๐‘ .

3.5. Logarithmically homogeneous self-concordant barrier

The ideas of the logarithmic barrier functions can be extended to the nonsymmetric cones as well. We often refer to the general class of logarithmically homogeneous self-concordant barrier functions, which are a special class of barrier functions that have nice properties that can be exploited in the design of interior-point methods as follows: A function ๐‘“:๐’ฆ๏ธ€โ†’โ„ is called a logarithmically homogeneous self-concordant barrier with degree ๐‘šโ‰ฅ1 (๐‘š-LHSCB)44 The logarithmic barrier functions from the previous section are all ๐‘š-LHSCB functions. for the convex cone ๐’ฆ๏ธ€ if it satisfies the following properties

|โˆ‡3๐‘“(๐‘ฅ)[๐‘Ÿ,๐‘Ÿ,๐‘Ÿ]|โ‰ค2(โˆ‡2๐‘“(๐‘ฅ)[๐‘Ÿ,๐‘Ÿ])3/2โˆ€๐‘ฅโˆˆint(๐’ฆ๏ธ€),๐‘Ÿโˆˆโ„๐‘‘,๐‘“(๐‘ก๐‘ฅ)=๐‘“(๐‘ฅ)โˆ’๐‘šlog(๐‘ก),โˆ€๐‘ฅโˆˆ๐’ฆ๏ธ€,๐‘ก>0.

(27)

The conjugate barrier function ๐‘“โˆ—:๐’ฆ๏ธ€โˆ—โ†’โ„ is defined as 55 This is not to be confused with the convex conjugate of a function, which is denoted by ๐‘“โˆ—(๐‘ฆ)=sup{๐‘ฆโŠค๐‘ฅโˆ’๐‘“(๐‘ฅ),๐‘ฅโˆˆint(๐’ฆ๏ธ€)}. The relation between the two conjugates are ๐‘“โˆ—(๐‘ฆ)=๐‘“โˆ—(โˆ’๐‘ฆ) and โˆ‡๐‘“โˆ—(๐‘ฆ)=โˆ’โˆ‡๐‘“โˆ—(โˆ’๐‘ฆ).

๐‘“โˆ—(๐‘ฆ):=sup๐‘ฅโˆˆint(๐’ฆ๏ธ€){โˆ’๐‘ฆโŠค๐‘ฅโˆ’๐‘“(๐‘ฅ)}.

(28)

The function ๐‘“โˆ— is ๐‘š-LHSCB for ๐’ฆ๏ธ€โˆ— if the associated ๐‘“ is. The primal gradient โˆ‡๐‘“ satisfies

๐‘ฅโŠคโˆ‡๐‘“(๐‘ฅ)=โˆ’๐‘š,โˆ€๐‘ฅโˆˆint(๐’ฆ๏ธ€).

(29)

In cases where the conjugate barrier function is known only through the definition (i.e. rather than a closed-form representation) we can compute its gradient as the solution to

โˆ‡๐‘“โˆ—(๐‘ฆ):=โˆ’argsup๐‘ฅโˆˆint(๐’ฆ๏ธ€){โˆ’๐‘ฆโŠค๐‘ฅโˆ’๐‘“(๐‘ฅ)}.

(30)

4. The central path

As described previously, the idea of interior-point methods is to track the solution of an approximate unconstrained problem as ๐œ‡ decreases until we are reasonably close to the optimal solution of the original constrained problem. The central path denotes this path. In order to describe the central path mathematically we define the function ๐บ representing the equality constraints of the homogeneous embedding

๐บ(๐‘ฅ,๐‘ง,๐‘ ,๐œ,๐œ…):=[0๐‘ ๐œ…]โˆ’[๐‘ƒ๐ดโŠค๐‘žโˆ’๐ด0๐‘โˆ’๐‘žโŠคโˆ’๐‘โŠค0][๐‘ฅ๐‘ง๐œ]+[00๐œโˆ’1๐‘ฅโŠค๐‘ƒ๐‘ฅ].

(31)

Now assume that ๐‘“:๐’ฆ๏ธ€โ†’โ„ is an ๐‘š-LHSCB function on ๐’ฆ๏ธ€ with conjugate barrier ๐‘“โˆ— for some ๐‘šโ‰ฅ1. Given any initial ๐‘ฃ0, we define the central path of ๐‘ฃโˆ—(๐œ‡) as the unique solution to

๐บ(๐‘ฃ)=๐œ‡๐บ(๐‘ฃ0)๐‘ =โˆ’๐œ‡โˆ‡๐‘“โˆ—(๐‘ง),๐‘ง=โˆ’๐œ‡โˆ‡๐‘“(๐‘ ),๐œ๐œ…=๐œ‡

(32)

Now inserting the definition of ๐‘ง while using that ๐‘ โŠคโˆ‡๐‘“(๐‘ )=โˆ’๐‘š it follows that

๐‘ โŠค๐‘ง๐‘š=๐‘ โŠคโˆ’๐œ‡โˆ‡๐‘“(๐‘ )๐‘š=๐œ‡๐‘š๐‘š=๐œ‡.

(33)

If the cone ๐’ฆ๏ธ€ is symmetric, then we can replace the condition with a simpler condition defined in terms of the Jordan product on ๐’ฆ๏ธ€, i.e.

๐‘ โšฌ๐‘ง=๐œ‡๐‘’,

(34)

where ๐‘’ is the idempotent for each of the symmetric cones.

Interactive figureย 1: A central path in two dimensions

Interactive figure 1 (A central path in two dimensions)ย ย  Consider ๐‘ฅโˆˆโ„2, the objective ๐‘žโŠค๐‘ฅ, and the composite cone ๐’ฆ๏ธ€=โ„+ร—๐’ฌ๏ธ€3ร—๐’ฆ๏ธ€exp with

๐‘ =๐‘โˆ’๐ด๐‘ฅ=[1.2200โˆ’0.511.5]โˆ’[0โˆ’100โˆ’100โˆ’1โˆ’10000โˆ’1][๐‘ฅ1๐‘ฅ2]=[๐‘ฅ2+1.22๐‘ฅ1๐‘ฅ2๐‘ฅ1โˆ’0.51๐‘ฅ2+1.5]โˆˆ๐’ฆ๏ธ€.

(35)

The three cones give, respectively, the half-plane ๐‘ฅ2โ‰ฅโˆ’1.2, the disk โ€–๐‘ฅโ€–2โ‰ค2, and the region ๐‘ฅ1โ‰ค0.5+log(๐‘ฅ2+1.5), and the barrier is

๐‘“(๐‘ )=โˆ’log(๐‘ 1)โˆ’log(๐‘ 22โˆ’๐‘ 32โˆ’๐‘ 42)โˆ’log(๐‘ 6log(๐‘ 7/๐‘ 6)โˆ’๐‘ 5)โˆ’log(๐‘ 6)โˆ’log(๐‘ 7),

(36)

of degree ๐‘š=1+2+3=6 (here the second-order cone uses โˆ’log(๐‘ โŠค๐ฝ๐‘ ), twice the barrier of the previous section, so it contributes degree 2). The central path is the curve of minimizers ๐‘ฅ(๐œ‡) of ๐‘žโŠค๐‘ฅ+๐œ‡๐‘“(๐‘โˆ’๐ด๐‘ฅ) and along it ๐‘ง=โˆ’๐œ‡โˆ‡๐‘“(๐‘ ). For large ๐œ‡ the barrier dominates, and ๐‘ฅ(๐œ‡) lies close to the analytic center, well inside the feasible region. As ๐œ‡ decreases the linear term takes over, and the level sets are pushed against the boundary, where they follow its shape.

4.1. Scaling matrices

We now introduce the idea of a scaling matrix ๐ป. The choice of scaling matrix ๐ป depends on which way we linearize the central path. For symmetric cones the most common choice is the Nesterov-Todd scaling. For nonsymmetric cones the central path is defined by the set of points satisfying (32). For the zero cone we set ๐ป=0.

4.1.1. Symmetric cones

For symmetric cones the central path described with (34) is linearized. The Nesterov-Todd scaling exploits the self-scaled property of symmetric cones to compute a unique scaling point ๐‘คโˆˆ๐’ฆ๏ธ€ satisfying

๐ป(๐‘ค)๐‘ =๐‘ง.

(37)

We can factorize ๐ป(๐‘ค) as ๐ปโˆ’1(๐‘ค)=๐‘ŠโŠค๐‘Š.

4.1.2. Nonsymmetric cones

As nonsymmetric cones are not self-scaled, we cannot use (34) to describe the central path and must instead linearize (32). A general primal-dual scaling strategy suitable for nonsymmetric cones was proposed in [3], and used later in [4], which relies on the satisfaction of the two secant equations

๐ป๐‘ง=๐‘ ,๐ปโˆ‡๐‘“(๐‘ )=โˆ‡๐‘“โˆ—(๐‘ง).

(38)

We now define shadow iterates as

๐‘งฬƒ:=โˆ’โˆ‡๐‘“(๐‘ ),๐‘ ฬƒ:=โˆ’โˆ‡๐‘“โˆ—(๐‘ง),

(39)

with

๐œ‡ฬƒ=๐‘ ฬƒโŠค๐‘งฬƒ/๐‘š

(40)

A scaling matrix ๐ป can be obtained from the rank-4 Broyden-Fletcher-Goldfarb-Shanno (BFGS) update, which is commonly used in quasi-Newton methods,

๐ป:=๐ปBFGS:=๐‘†(๐‘†โŠค๐‘)โˆ’1๐‘†โŠค+๐ป๐‘Žโˆ’๐ป๐‘Ž๐‘(๐‘โŠค๐ป๐‘Ž๐‘)โˆ’1๐‘โŠค๐ป๐‘Ž,

(41)

where ๐‘:=[๐‘ง,๐‘งฬƒ], ๐‘†:=[๐‘ ,๐‘ ฬƒ], and ๐ป๐‘Žโ‰ป0 is an approximation of the Hessian. In our implementation we choose ๐ป๐‘Ž=๐œ‡โˆ‡2๐‘“โˆ—(๐‘ง) following [4]. Putting things together means that the computation of ๐ปBFGS reduces to a rank-3-update as

๐ปBFGS=๐œ‡โˆ‡2๐‘“โˆ—(๐‘ง)+(2๐œ‡๐‘š)โˆ’1๐›ฟ๐‘ (๐‘ +๐œ‡๐‘ ฬƒ+(๐œ‡๐œ‡ฬƒโˆ’1)โˆ’1๐›ฟ๐‘ )โŠค+(2๐œ‡๐‘š)โˆ’1(๐‘ +๐œ‡๐‘ ฬƒ+(๐œ‡๐œ‡ฬƒโˆ’1)โˆ’1๐›ฟ๐‘ )๐›ฟ๐‘ โŠคโˆ’๐œ‡(โˆ‡2๐‘“โˆ—(๐‘ง)๐‘งฬƒโˆ’๐œ‡ฬƒ๐‘ ฬƒ)(โˆ‡2๐‘“โˆ—(๐‘ง)๐‘งฬƒโˆ’๐œ‡ฬƒ๐‘ ฬƒ)โŠคโŸจ๐‘งฬƒ,โˆ‡2๐‘“โˆ—(๐‘ง)๐‘งฬƒโŸฉโˆ’๐‘š๐œ‡ฬƒ2,

(42)

where ๐œ‡=๐‘ โŠค๐‘ง/๐‘š and ๐›ฟ๐‘ โ‰”๐‘ โˆ’๐œ‡๐‘ ฬƒ. A more detailed description can be found in [4].

The above is defined in terms of the conjugate barrier function ๐‘“โˆ—(๐‘ง). This is in contrast to [4], which defines it in terms of the standard barrier function.

5. Computing step directions

The overall aim is to find the optimal solution to the homogeneous embedding. This amounts to solving the nonlinear system of equations ๐บ(๐‘ฃ)=0 with the additional constraint ๐œ…๐œ=๐œ‡. The aim of most interior-point methods is to track the central path for ๐œ‡โ†’0 until reasonably close to the optimum. In order to solve the non-linear system Newtonโ€™s method is applied. This requires a linearization of the central path which can be seen below,

[0ฮ”๐‘ ฮ”๐œ…]โˆ’[๐‘ƒ๐ดโŠค๐‘žโˆ’๐ด0๐‘โˆ’(๐‘ž+2๐‘ƒ๐œ‰)โŠคโˆ’๐‘โŠค๐œ‰โŠค๐‘ƒ๐œ‰][ฮ”๐‘ฅฮ”๐‘งฮ”๐œ]=โˆ’[๐‘‘๐‘ฅ๐‘‘๐‘ง๐‘‘๐œ]๐ปฮ”๐‘ง+ฮ”๐‘ =โˆ’๐‘‘๐‘ ,๐œ…ฮ”๐œ+๐œฮ”๐œ…=โˆ’๐‘‘๐œ…,

(43)

where ๐‘‘=(๐‘‘๐‘ฅ,๐‘‘๐‘ง,๐‘‘๐œ,๐‘‘๐‘ ,๐‘‘๐œ…) is the vector of residuals, while ๐œ‰=๐‘ฅ๐œ and ๐ปโˆˆโ„๐‘šร—๐‘š is a positive semidefinite block-diagonal matrix (zero on zero-cone blocks) with blocks equal to the scaling matrices 66 Ignoring the sparse form of the scaling matrices that are usually required in practice. This will be explained in a later section.. Note that in order to allow for nonsymmetric cones we use ๐ป, which is in contrast to [2] that uses ๐œ†โšฌ(๐‘Šฮ”๐‘ง+๐‘Šโˆ’โŠคฮ”๐‘ )=๐‘‘๐‘  with ๐ป=๐‘ŠโŠค๐‘Š.

We now eliminate (ฮ”๐‘ ,ฮ”๐œ…) from the system resulting in

โˆ’[๐‘ƒ๐ดโŠค๐‘žโˆ’๐ด๐ป๐‘โˆ’(๐‘ž+2๐‘ƒ๐œ‰)โŠคโˆ’๐‘โŠค๐œ‰โŠค๐‘ƒ๐œ‰+๐œ…๐œโˆ’1][ฮ”๐‘ฅฮ”๐‘งฮ”๐œ]=โˆ’[๐‘‘๐‘ฅ๐‘‘๐‘งโˆ’๐‘‘๐‘ ๐‘‘๐œโˆ’๐‘‘๐œ…๐œโˆ’1]ฮ”๐‘ =โˆ’๐‘‘๐‘ โˆ’๐ปฮ”๐‘ง,ฮ”๐œ…=โˆ’(๐‘‘๐œ…+๐œ…ฮ”๐œ)๐œโˆ’1.

(44)

The above system can be solved by a pair of linear systems with a common coefficient matrix, meaning that it only has to be factorized once

[๐‘ƒ๐ดโŠค๐ดโˆ’๐ป][ฮ”๐‘ฅ1ฮ”๐‘ฅ2ฮ”๐‘ง1ฮ”๐‘ง2]=[๐‘‘๐‘ฅโˆ’๐‘žโˆ’(๐‘‘๐‘งโˆ’๐‘‘๐‘ )๐‘]

(45)

From the above solution we can recover the search direction (ฮ”๐‘ฅ,ฮ”๐‘ง,ฮ”๐‘ ,ฮ”๐œ,ฮ”๐œ…) as follows

ฮ”๐‘ฅ=ฮ”๐‘ฅ1+ฮ”๐œโ‹…ฮ”๐‘ฅ2,ฮ”๐‘ง=ฮ”๐‘ง1+ฮ”๐œโ‹…ฮ”๐‘ง2ฮ”๐‘ =โˆ’๐‘‘๐‘ โˆ’๐ปฮ”๐‘ง,ฮ”๐œ=๐‘‘๐œโˆ’๐‘‘๐œ…๐œโˆ’1+(2๐‘ƒ๐œ‰+๐‘ž)โŠคฮ”๐‘ฅ1+๐‘โŠคฮ”๐‘ง1๐œ…๐œโˆ’1+๐œ‰โŠค๐‘ƒ๐œ‰โˆ’(2๐‘ƒ๐œ‰+๐‘ž)โŠคฮ”๐‘ฅ2โˆ’๐‘โŠคฮ”๐‘ง2=๐‘‘๐œโˆ’๐‘‘๐œ…๐œโˆ’1+๐‘žโŠคฮ”๐‘ฅ1+๐‘โŠคฮ”๐‘ง1+2๐œ‰โŠค๐‘ƒฮ”๐‘ฅ1๐œ…๐œโˆ’1+โ€–ฮ”๐‘ฅ2โˆ’๐œ‰โ€–๐‘ƒ2โˆ’โ€–ฮ”๐‘ฅ2โ€–๐‘ƒ2โˆ’๐‘žโŠคฮ”๐‘ฅ2โˆ’๐‘โŠคฮ”๐‘ง2ฮ”๐œ…=โˆ’(๐‘‘๐œ…+๐œ…ฮ”๐œ)๐œโˆ’1.

(46)

The actual step is then obtained by computing the maximal step size ๐›ผ that ensures that the new update is still in the interior of the conic constraints.

Interactive figureย 2: The largest step inside the cones

Interactive figure 2 (The largest step inside the cones)ย ย  The feasible region of the central path example, with an iterate ๐‘ฅ and a search direction ฮ”๐‘ฅ, both of which can be dragged. Following ฮ”๐‘ฅ from ๐‘ฅ, the first cone boundary is reached at the step ๐›ผmax (dashed). Clarabel moves only a fraction of the way, ๐‘ฅ+๐›ผฮ”๐‘ฅ with ๐›ผ=0.99min(1,๐›ผmax), so that the iterate stays strictly inside the cones.

5.1. The affine and centering directions

At every interior-point iteration we solve the KKT system for two sets of right-hand sides each, corresponding to the so-called affine and centering directions. In short this means solving (45) twice, however since the system matrix stays the same and the right-hand side (โˆ’๐‘ž,๐‘) stays the same the computation requires only a single numerical factorization 77 As the sparsity pattern does not change the symbolic factorization can be reused and three solves.

The two sets of right-hand sides correspond to a predictor step and a corrector step. The steps are also known as the affine step and the centering step. In our case the affine step has the right-hand side of

๐‘‘๐‘ฅ=๐‘Ÿ๐‘ฅ,๐‘‘๐‘ง=๐‘Ÿ๐‘ง,๐‘‘๐œ=๐‘Ÿ๐œ,๐‘‘๐‘ =๐‘ ,๐‘‘๐œ…=๐œ…๐œ,

(47)

where (๐‘Ÿ๐‘ฅ,๐‘Ÿ๐‘ง,๐‘Ÿ๐œ) are the three components of the residual ๐บ(๐‘ฃ) at the current iterate ๐‘ฃ, while the corrector step has the right-hand side of

๐‘‘๐‘ฅ=(1โˆ’๐œŽ)๐‘Ÿ๐‘ฅ,๐‘‘๐‘ง=(1โˆ’๐œŽ)๐‘Ÿ๐‘ง,๐‘‘๐œ=(1โˆ’๐œŽ)๐‘Ÿ๐œ,๐‘‘๐œ…=๐œ…๐œ+ฮ”๐œ…ฮ”๐œโˆ’๐œŽ๐œ‡,๐‘‘๐‘ ={๐‘ŠโŠค(๐œ†โ‹„(๐œ†โšฌ๐œ†โˆ’๐œŽ๐œ‡๐‘’+๐œ‚))(symmetric)๐‘ +๐œŽ๐œ‡โˆ‡๐‘“โˆ—(๐‘ง)+๐œ‚(nonsymmetric),

(48)

where โ‹„ denotes the inverse operator of โšฌ. Computation of a higher-order correction term ๐œ‚ is a heuristic technique that is known to accelerate the convergence of IPMs significantly. The choice of this term varies depending on the choice of the scaling matrix ๐ป and whether a given constraint is symmetric or not. For symmetric cones we use the Mehrotra correction ๐œ‚=(๐‘Šโˆ’โŠคฮ”๐‘ )โšฌ(๐‘Šฮ”๐‘ง), while for nonsymmetric cones we compute ๐œ‚ using the 3rd-order correction from [4], i.e.

๐œ‚=โˆ’12โˆ‡3๐‘“โˆ—(๐‘ง)[ฮ”๐‘ง,โˆ‡2๐‘“โˆ—(๐‘ง)โˆ’1ฮ”๐‘ ].

(49)

We set ๐œŽ=(1โˆ’๐›ผaff)3 where ๐›ผaff is the step size of the affine step.

Interactive figureย 3: Affine and centering directions

Interactive figure 3 (Affine and centering directions)ย ย  A primal-only version on the central path example, with the dual variable tied to the iterate by ๐‘ง=โˆ’๐œ‡โˆ‡๐‘“(๐‘ ), so that the step towards the central path for a target ๐œ‡ is the Newton step ฮ”๐‘ฅ=โˆ’โˆ‡2๐น(๐‘ฅ)โˆ’1(๐‘ž/๐œ‡+โˆ‡๐น(๐‘ฅ)), where ๐น(๐‘ฅ)=๐‘“(๐‘โˆ’๐ด๐‘ฅ). From ๐‘ฅ(๐œ‡), the affine step (dashed, target ๐œ‡=0) is taken a fraction ๐›ผ/๐›ผmax of the way to the boundary, which leaves the central path and reduces ๐œ‡ to ๐œ‡+=(1โˆ’๐›ผ)๐œ‡. The centering step (dotted) is one damped Newton step for ๐œ‡+.88 The next iteration starts where the centering step ends, near but not on the central path. Only the number ๐œ‡+ enters this step; ๐‘ฅ(๐œ‡+) is unknown to the method and drawn for reference only. This is the classical predictor-corrector pair; Clarabel combines the two steps into one through ๐œŽ.

5.2. Solver initialization

An essential consideration is how to choose the initial point ๐‘ฃ0. The initialization strategies depend on whether the objective is linear or quadratic and whether the cones are symmetric or not. However, in all cases the initial scalar values are set as ๐œ0=๐œ…0=1.

5.2.1. Symmetric cones

The initialization strategies below can be thought of as projections of the equality constraints onto cones in the direction of the idempotent ๐‘’ for each symmetric cone.

Quadratic objective. If ๐‘ƒโ‰ 0 the initialization happens by solving the following linear system

[๐‘ƒ๐ดโŠค๐ดโˆ’๐ผ๐ธ][๐‘ฅ๐‘ง]=[โˆ’๐‘ž๐‘]

(50)

with ๐ผ๐ธ=๐ผโˆ’๐ธ with ๐ธ being a matrix with ones on the diagonal corresponding to zero cones (i.e. equality constraints) but otherwise zero. The above linear system corresponds to solving the following optimization problem

minimize12๐‘ฅโŠค๐‘ƒ๐‘ฅ+๐‘žโŠค๐‘ฅ+12โ€–๐ด๐‘ฅโˆ’๐‘โ€–22subject to๐ธ๐ด๐‘ฅ=๐ธ๐‘,

(51)

From this solution we project ๐‘ง and ๐‘  back to the interior of the cone

๐‘ฅ0=๐‘ฅ,๐‘ 0={โˆ’๐‘ง,๐›ผp<โˆ’๐œ–โˆ’๐‘ง+(๐œ–+๐›ผp)๐‘’,otherwise,๐‘ง0={๐‘ง,๐›ผd<โˆ’๐œ–๐‘ง+(๐œ–+๐›ผd)๐‘’,otherwise.

(52)

where ๐›ผp=inf{๐›ผ|โˆ’๐‘ง+๐›ผ๐‘’โˆˆ๐’ฆ๏ธ€} and ๐›ผd=inf{๐›ผ|โˆ’๐‘ +๐›ผ๐‘’โˆˆ๐’ฆ๏ธ€}.

Linear objective. In the case of ๐‘ƒ=0 we instead solve two linear systems

[0๐ดโŠค๐ดโˆ’๐ผ๐ธ][๐‘ฅ๐‘ก๐‘ ๐‘ง]=[0โˆ’๐‘ž๐‘0].

(53)

From this we set

๐‘ฅ0=๐‘ฅ,๐‘ 0={โˆ’๐‘ ,๐›ผp<โˆ’๐œ–โˆ’๐‘ +(๐œ–+๐›ผp)๐‘’,otherwise,๐‘ง0={๐‘ง,๐›ผd<โˆ’๐œ–๐‘ง+(๐œ–+๐›ผd)๐‘’,otherwise,

(54)

where ๐›ผp=inf{๐›ผ|โˆ’๐‘ +๐›ผ๐‘’โˆˆ๐’ฆ๏ธ€} and ๐›ผd=inf{๐›ผ|๐‘ง+๐›ผ๐‘’โˆˆ๐’ฆ๏ธ€}.

5.2.2. Nonsymmetric cones

When the composite cone ๐’ฆ๏ธ€ contains any nonsymmetric cone both primal and dual variables are set as ๐‘ง=๐‘ =โˆ’โˆ‡๐‘“โˆ—(๐‘ง) (corresponding to ๐œ‡0=1). This is equivalent to solving the unconstrained optimization problem

minimize๐‘ง12โ€–๐‘งโ€–22+๐‘“โˆ—(๐‘ง),

(55)

which is strictly convex and has a unique solution. It yields ๐‘ sym0=๐‘งsym0=๐‘’ for symmetric cones, and

๐‘ exp0=๐‘งexp0โ‰ˆ(โˆ’1.051383,0.556409,1.258967),

(56)

for exponential cones, and

๐‘ pow0=๐‘งpow0โ‰ˆ(1+๐›ผ,2โˆ’๐›ผ,0),

(57)

for power cones with parameter ๐›ผ.

5.3. Termination criteria

All termination criteria are based on unscaled problem data and iterates, i.e. after the Ruiz scaling has been reverted.

5.3.1. Feasibility checks

For checks of primal and dual feasibility we introduce the normalized variables ๐‘ฅฬ‚=๐‘ฅ/๐œ, ๐‘ ฬ‚=๐‘ /๐œ, ๐‘งฬ‚=๐‘ง/๐œ and define the primal and dual residual as follows

๐‘Ÿ๐‘:=๐ด๐‘ฅฬ‚+๐‘ ฬ‚โˆ’๐‘(primal residual)๐‘Ÿ๐‘‘:=๐‘ƒ๐‘ฅฬ‚+๐ดโŠค๐‘งฬ‚+๐‘ž(dual residual).

(58)

Likewise, we define the primal and dual objectives as

๐‘”๐‘:=12๐‘ฅฬ‚โŠค๐‘ƒ๐‘ฅฬ‚+๐‘žโŠค๐‘ฅฬ‚(primal objective)๐‘”๐‘‘:=โˆ’12๐‘ฅฬ‚โŠค๐‘ƒ๐‘ฅฬ‚โˆ’๐‘โŠค๐‘งฬ‚(dual objective).

(59)

Using the above definitions we can declare convergence if all three of the following hold:

โ€–๐‘Ÿ๐‘โ€–<๐œ–๐‘“โ‹…max{1,โ€–๐‘โ€–โˆž+โ€–๐‘ฅฬ‚โ€–+โ€–๐‘ ฬ‚โ€–}(primal convergence)โ€–๐‘Ÿ๐‘‘โ€–<๐œ–๐‘“โ‹…max{1,โ€–๐‘žโ€–โˆž+โ€–๐‘ฅฬ‚โ€–+โ€–๐‘งฬ‚โ€–}(dual convergence)|๐‘”๐‘โˆ’๐‘”๐‘‘|<๐œ–๐‘“โ‹…max{1,min{|๐‘”๐‘|,|๐‘”๐‘‘|}}(gap convergence)

(60)

We specify a default value of ๐œ–๐‘“=10โˆ’8 as well as a weaker threshold of ๐œ–๐‘“=10โˆ’5 when testing for โ€œnear optimalityโ€ in cases of early termination (e.g. lack of progress, timeout, iterations limit, etc.).

5.3.2. Infeasibility checks

When testing for infeasibility we do not normalize iterates, but rather work directly with the unscaled variables since infeasibility corresponds to the case where ๐œโ†’0. We declare primal infeasibility if the following holds

โ€–๐ดโŠค๐‘งโ€–<โˆ’๐œ–๐‘–,๐‘Ÿโ‹…max{1,โ€–๐‘ฅโ€–+โ€–๐‘งโ€–}โ‹…(๐‘โŠค๐‘ง)(primal infeasibility)๐‘โŠค๐‘ง<โˆ’๐œ–๐‘–,๐‘Ž(primal infeasibility).

(61)

Similarly, we define dual infeasibility if the following hold

โ€–๐‘ƒ๐‘ฅโ€–<โˆ’๐œ–๐‘–,๐‘Ÿโ‹…max{1,โ€–๐‘ฅโ€–}โ‹…(๐‘žโŠค๐‘ฅ)(dual infeasibility)โ€–๐ด๐‘ฅ+๐‘ โ€–<โˆ’๐œ–๐‘–,๐‘Ÿโ‹…max{1,โ€–๐‘ฅโ€–+โ€–๐‘ โ€–}โ‹…(๐‘žโŠค๐‘ฅ)(dual infeasibility)๐‘žโŠค๐‘ฅ<โˆ’๐œ–๐‘–,๐‘Ž(dual infeasibility)

(62)

We set the relative and absolute tolerances as ๐œ–๐‘–,๐‘Ÿ=๐œ–๐‘–,๐‘Ž=10โˆ’8 and allow for weaker thresholds to declare โ€œnear infeasibilityโ€ certificates in cases of early termination.

6. Implementation details

6.1. Solving the KKT system

The main computational effort in the interior-point method is to solve the Karush-Kuhn-Tucker (KKT) system of the form

[๐‘ƒ๐ดโŠค๐ดโˆ’๐ป]โŸ๐พ[๐‘ฅ๐‘ง]โŸ๐‘ฆ=[๐‘๐‘ฅ๐‘๐‘ง]โŸ๐‘,

(63)

The scaling matrix, however, has the unfortunate property that it becomes ill-conditioned when the iterates are close to the boundary. As such one instead solves the regularized problem

[๐‘ƒ+๐œ–๐ผ๐ดโŠค๐ดโˆ’(๐ป+๐œ–๐ผ)]โŸ๐พ+๐ท[๐‘ฅ๐‘ง]โŸ๐‘ฆ=[๐‘๐‘ฅ๐‘๐‘ง]โŸ๐‘,

(64)

where ๐ท denotes the added diagonal part. Note that while solving (64) is more numerically stable, it is not the system that we actually aim to solve i.e. (63). The regularization ๐œ– is computed as

๐œ–=๐œ–constant+๐œ–proportionโ€–diag(๐พ)โ€–โˆž.

(65)

6.2. Regularized iterative refinement

As described in [5], the regularization term can be removed by solving a sequence of systems of the form

(๐พ+๐ท)ฮ”๐‘ฅ๐‘š=๐‘โˆ’๐พ๐‘ฅ๐‘š,๐‘ฅ๐‘š+1=๐‘ฅ๐‘š+ฮ”๐‘ฅ๐‘š.

(66)

The sequence {๐‘ฅ๐‘š} converges to the true solution of ๐พ๐‘ฅ=๐‘, provided that it exists. To show this first notice that we can rewrite (66) as

(๐พ+๐ท)๐‘ฅ๐‘š+1โˆ’๐ท๐‘ฅ๐‘š=๐‘.

(67)

Now assume that ๐‘ฅ0 is the solution to the equation ๐พ๐‘ฅ0=๐‘ (which is the equation we aim to solve). Now we perform the mathematicianโ€™s favorite trick of adding 0 (in this case ๐ท๐‘ฅ0โˆ’๐ท๐‘ฅ0), it follows that

(๐พ+๐ท)๐‘ฅ0โˆ’๐ท๐‘ฅ0=๐‘.

(68)

We now subtract (68) from (67)

(๐พ+๐ท)(๐‘ฅ๐‘š+1โˆ’๐‘ฅ0)โˆ’๐ท(๐‘ฅ๐‘šโˆ’๐‘ฅ0)=0.

(69)

Rewriting the above gives us

๐‘ฅ๐‘š+1โˆ’๐‘ฅ0=(๐พ+๐ท)โˆ’1๐ท(๐‘ฅ๐‘šโˆ’๐‘ฅ0).

(70)

The final step is to take norms on both sides resulting in

โ€–๐‘ฅ๐‘š+1โˆ’๐‘ฅ0โ€–โ‰คโ€–(๐พ+๐ท)โˆ’1๐ทโ€–โ€–๐‘ฅ๐‘šโˆ’๐‘ฅ0โ€–.

(71)

Thus, if โ€–(๐พ+๐ท)โˆ’1๐ทโ€–<1 we have that ๐‘ฅ๐‘šโ†’๐‘ฅ0 for ๐‘šโ†’โˆž (more precisely, it suffices that the spectral radius of (๐พ+๐ท)โˆ’1๐ท is less than one).

6.3. Matrix equilibration

The equilibration in Clarabel is a modified version of Ruiz scaling [6], [7], similar as to what is done in the OSQP package [5]. The equilibration is based on the scaling of the constant part of the KKT system (i.e. the part excluding the primal-dual scaling matrices) as shown below

๐‘€=[๐‘ƒ๐ดโŠค๐ด0].

(72)

The aim is to find a diagonal scaling matrix ๐‘† such that

๐‘†๐‘€๐‘†=[๐ท00๐ธ][๐‘ƒ๐ดโŠค๐ด0][๐ท00๐ธ]=[๐ท๐‘ƒ๐ท๐ท๐ดโŠค๐ธ๐ธ๐ด๐ท0],

(73)

is better conditioned. The above can be seen as a transformation of input data to a conic optimization problem

minimize12๐‘ฅฬ„โŠค๐‘ƒฬ„๐‘ฅฬ„+๐‘žฬ„โŠค๐‘ฅฬ„subject to๐ดฬ„๐‘ฅฬ„+๐‘ ฬ„=๐‘ฬ„๐‘ ฬ„โˆˆ๐’ฆ๏ธ€,

(74)

where ๐‘ฅฬ„=๐ทโˆ’1๐‘ฅ, ๐‘ ฬ„=๐ธ๐‘ , ๐‘ƒฬ„=๐‘๐ท๐‘ƒ๐ท, ๐‘žฬ„=๐‘๐ท๐‘ž, ๐ดฬ„=๐ธ๐ด๐ท, ๐‘ฬ„=๐ธ๐‘, with ๐‘>0 a cost scaling and ๐ธ chosen such that ๐ธ๐’ฆ๏ธ€=๐’ฆ๏ธ€.

The main idea of the equilibration procedure is to scale the rows (and columns) for the matrix ๐‘€ so that they have equal โ„“๐‘-norm. An efficient approximate solution to this problem is the so-called Modified Ruiz scaling described in [5] based on the Ruiz scaling described in [6].

7. Sparse solvers

More often than not the main computational time in an interior-point method is solving (64). Luckily, the linear system is often sparse leading to fast factorization algorithms. As such it is important to use an efficient implementation of a direct sparse solver if one wants the interior-point solver to be computationally efficient. In Clarabel it is possible to utilize the following sparse solvers

7.1. Sparsity exploitation

7.1.1. Augmented sparsity

In numerical computations one often meets a matrix of the form sparse-plus-low-rank. The general form of this is the following

๐ป:=๐‘†โˆ’โˆ‘๐‘–=1๐‘›๐‘‰๐‘ฃ๐‘–๐‘ฃ๐‘–โŠค+โˆ‘๐‘–=1๐‘›๐‘ˆ๐‘ข๐‘–๐‘ข๐‘–โŠค=๐‘†โˆ’๐‘‰๐‘‰โŠค+๐‘ˆ๐‘ˆโŠค,

(75)

where ๐‘† is sparse and ๐‘‰=[๐‘ฃ1โ€ฆ๐‘ฃ๐‘›๐‘‰] and ๐‘ˆ=[๐‘ข1โ€ฆ๐‘ข๐‘›๐‘ˆ] with ๐‘›๐‘ˆ,๐‘›๐‘‰โ‰ช๐‘›. The problem with the above matrix is that forming the outer products (i.e. assembling the plus-low-rank part) will ruin the sparsity of ๐‘† and ๐ป in turn will be a dense matrix. Given that our aim is to solve a system of the form ๐ป๐‘ฅ=๐‘ lets look at the structure of ๐ป๐‘ฅ by performing the product

๐ป๐‘ฅ=๐‘†๐‘ฅโˆ’๐‘‰(๐‘‰โŠค๐‘ฅโŸโˆ’๐‘ก๐‘‰)+๐‘ˆ(๐‘ˆโŠค๐‘ฅโŸ๐‘ก๐‘ˆ)=๐‘†๐‘ฅ+๐‘‰๐‘ก๐‘‰+๐‘ˆ๐‘ก๐‘ˆ.

(76)

The above together with the constraints ๐‘‰โŠค๐‘ฅ+๐‘ก๐‘‰=0 and ๐‘ˆโŠค๐‘ฅโˆ’๐‘ก๐‘ˆ=0 we can solve ๐ป๐‘ฅ=๐‘ by solving the following equivalent system

[๐‘†๐‘‰๐‘ˆ๐‘‰โŠค๐ผ๐‘›๐‘‰0๐‘ˆโŠค0โˆ’๐ผ๐‘›๐‘ˆ]โŸ๐ปaug[๐‘ฅ๐‘ก๐‘‰๐‘ก๐‘ˆ]=[๐‘00].

(77)

Note that while ๐ปaug is sparse it is larger. An important property of the augmented system is that if ๐‘†โˆ’๐‘‰๐‘‰โŠคโ‰ป0 (and hence ๐‘†โ‰ป0) then ๐ปaug is Quasi-Definite and therefore strongly factorizable, meaning that for every permutation ๐‘ƒ one can find ๐ฟ and ๐ท so that ๐‘ƒ๐ปaug๐‘ƒโŠค=๐ฟ๐ท๐ฟโŠค [9].

7.2. Second-order cones

7.2.1. The Clarabel approach

Clarabel uses the same approach as in ECOS [10]. In short, they utilize that the structure of ๐‘Š๐‘˜โŠค๐‘Š๐‘˜ for a second-order cone is augmented-sparse, meaning that it can be split as follows

๐‘Š๐‘˜โŠค๐‘Š๐‘˜=๐‘†๐‘˜โˆ’๐‘ฃ๐‘˜๐‘ฃ๐‘˜โŠค+๐‘ข๐‘˜๐‘ข๐‘˜โŠค,

(78)

where ๐‘†๐‘˜โˆ’๐‘ฃ๐‘˜๐‘ฃ๐‘˜โŠคโ‰ป0. We can generalize the above for all second-order cones by defining

๐‘†=blkdiag(๐‘†1,๐‘†2,โ€ฆ,๐‘†๐‘›),๐‘‰=blkdiag(๐‘ฃ1,๐‘ฃ2,โ€ฆ,๐‘ฃ๐‘›),๐‘ˆ=blkdiag(๐‘ข1,๐‘ข2,โ€ฆ,๐‘ข๐‘›),

(79)

meaning that

๐‘ŠโŠค๐‘Š=๐‘†โˆ’๐‘‰๐‘‰โŠค+๐‘ˆ๐‘ˆโŠค.

(80)

As such the KKT of the form

[๐‘ƒ๐ดโŠค๐ดโˆ’๐‘ŠโŠค๐‘Š][๐‘ฅ๐‘ง]=[๐‘๐‘ฅ๐‘๐‘ง]

(81)

can equivalently be solved by solving

[๐‘ƒ๐ดโŠค00๐ดโˆ’๐‘†โˆ’๐‘‰โˆ’๐‘ˆ0โˆ’๐‘‰โŠคโˆ’๐ผ00โˆ’๐‘ˆโŠค0๐ผ][๐‘ฅ๐‘ง๐‘ก๐‘‰๐‘ก๐‘ˆ]=[๐‘๐‘ฅ๐‘๐‘ง00],

(82)

The approach is simple as it leaves ๐ด intact and does not scale ๐‘ง. However, one has to deal with computing ๐‘‰ and ๐‘ˆ, which is not unique. In fact Clarabel and ECOS apply different approaches when calculating ๐‘‰ and ๐‘ˆ. A detail here is that one wants to compute ๐‘‰ and ๐‘ˆ in a way for which ๐‘†โˆ’๐‘‰๐‘‰โŠคโ‰ป0 so that the system remains quasi-definite (and therefore strongly factorizable).

7.2.2. The CVXOPT approach

Another approach is that of CVXOPT. Here the diagonal-plus-low-rank structure of the scaling matrix of a second-order cone (and its inverse) is used, i.e. that

๐‘Š๐‘˜=๐ท๐‘˜+๐‘ข๐‘˜๐‘ข๐‘˜โŠค,๐‘Š๐‘˜โˆ’1=๐ธ๐‘˜+๐‘ฃ๐‘˜๐‘ฃ๐‘˜โŠค,

(83)

where the ๐ท๐‘˜ and ๐ธ๐‘˜ are diagonal. We can again bunch all the scaling matrices together by defining

๐ท=blkdiag(๐ท1,๐ท2,โ€ฆ,๐ท๐‘›),๐ธ=blkdiag(๐ธ1,๐ธ2,โ€ฆ,๐ธ๐‘›),

(84)

so that

๐‘Š=๐ท+๐‘ˆ๐‘ˆโŠค,๐‘Šโˆ’1=๐ธ+๐‘‰๐‘‰โŠค.

(85)

Note that ๐‘ˆ and ๐‘‰ are defined as before, but are different since the ๐‘ข๐‘˜ and ๐‘ฃ๐‘˜ come from (83) rather than (78). We now show how the rank-update and the known inverse can be used explicitly in order to preserve sparsity. The KKT system of interest using Nesterov-Todd scaling is the following

[๐‘ƒ๐ดโŠค๐ดโˆ’๐‘ŠโŠค๐‘Š][๐‘ฅ๐‘ง]=[๐‘๐‘ฅ๐‘๐‘ง]

(86)

By scaling the ๐‘ง-variable and multiplying the last row with ๐‘Šโˆ’1 one finds that

[๐‘ƒ๐ดโŠค(๐ธ+๐‘‰๐‘‰โŠค)(๐ธ+๐‘‰๐‘‰โŠค)๐ดโˆ’๐ผ][๐‘ฅ๐‘Š๐‘ง]=[๐‘๐‘ฅ๐‘Šโˆ’1๐‘๐‘ง].

(87)

For simplicity, we now define ๐‘†=๐ดโŠค๐‘‰

[๐‘ƒ๐ดโŠค๐ธ+๐‘†๐‘‰โŠค๐ธ๐ด+๐‘‰๐‘†โŠคโˆ’๐ผ][๐‘ฅ๐‘Š๐‘ง]=[๐‘๐‘ฅ๐‘Šโˆ’1๐‘๐‘ง].

(88)

We can now introduce new variables ๐›ผ,๐›ฝโˆˆโ„๐‘›๐‘‰ resulting in

[๐‘ƒ๐ดโŠค๐ธ๐‘†0๐ธโŠค๐ดโˆ’๐ผ0๐‘‰๐‘†โŠค00โˆ’๐ผ0๐‘‰โŠคโˆ’๐ผ0][๐‘ฅ๐‘Š๐‘ง๐›ผ๐›ฝ]=[๐‘๐‘ฅ๐‘Šโˆ’1๐‘๐‘ง00].

(89)

Where we have used that ๐ธ=๐ธโŠค to show why the system is also symmetric. Now the above preserves sparsity. For SOCs, ๐ธ๐‘˜=โˆ’๐›พ๐‘˜โˆ’1๐ฝ for a scalar ๐›พ๐‘˜>0 (in CVXOPT, ๐‘Š๐‘˜=๐›พ๐‘˜(2๐‘ค๐‘˜๐‘ค๐‘˜โŠคโˆ’๐ฝ) for a vector ๐‘ค๐‘˜), so ๐ธ๐ธ is diagonal with blocks ๐›พ๐‘˜โˆ’2๐ผ. If the scaling is normalized so that ๐›พ๐‘˜=1, then ๐ธ๐ธ=๐ผ, and we can reduce the above as

[๐‘ƒ๐ดโŠค๐‘†0๐ดโˆ’๐ผ0๐ธ๐‘‰๐‘†โŠค00โˆ’๐ผ0๐‘‰โŠค๐ธโŠคโˆ’๐ผ0][๐‘ฅ๐ธ๐‘Š๐‘ง๐›ผ๐›ฝ]=[๐‘๐‘ฅ๐ธ๐‘Šโˆ’1๐‘๐‘ง00].

(90)

7.3. Rotated second-order cones

By rotating the rotated second-order cone back to the second-order cone form we can exploit the sparsity similarly to the regular second-order cone. This rotation can be done by applying the following transformation

๐‘…=[12120โ‹ฏ012โˆ’120โ‹ฏ0โ‹ฎโ‹ฎโ‹ฑโ‹ฎ000โ‹ฏ1].

(91)

7.4. Power cones

The conjugate barrier for certain power cones has a Hessian that, similar to that of second-order cones, can be represented using augmented sparsity [11]. The intuition here is that e.g. the generalized power cone reduces to a second-order cone when ๐‘‘1=1. Given that the augmented sparsity is only available for the conjugate barrier the following is only relevant in the case of dual scaling.

The generalized power cone is parametrized by ๐›ผโˆˆโ„++๐‘‘1 such that

โˆ‘๐‘–โˆˆ[๐‘‘1]๐›ผ๐‘–=1

(92)

and is defined as

๐’ฆ๏ธ€gpow(๐›ผ,๐‘‘1,๐‘‘2)={(๐‘ข,๐‘ค)โˆˆโ„+๐‘‘1ร—โ„๐‘‘2|โˆ๐‘–=1,โ€ฆ,๐‘‘1๐‘ข๐‘–๐›ผ๐‘–โ‰ฅโ€–๐‘คโ€–}

(93)

with dual cone

๐’ฆ๏ธ€gpowโˆ—(๐›ผ,๐‘‘1,๐‘‘2)={(๐‘ข,๐‘ค)โˆˆโ„+๐‘‘1ร—โ„๐‘‘2|โˆ๐‘–=1,โ€ฆ,๐‘‘1(๐‘ข๐‘–๐›ผ๐‘–)๐›ผ๐‘–โ‰ฅโ€–๐‘คโ€–}

(94)

The power mean cone is parametrized by ๐›ผโˆˆโ„++๐‘‘1 such that

โˆ‘๐‘–โˆˆ[๐‘‘1]๐›ผ๐‘–=1

(95)

and is defined as

๐’ฆ๏ธ€powm(๐›ผ,๐‘‘1)={(๐‘ข,๐‘ค)โˆˆโ„+๐‘‘1ร—โ„|โˆ๐‘–=1,โ€ฆ,๐‘‘1๐‘ข๐‘–๐›ผ๐‘–โ‰ฅ๐‘ค}

(96)

with dual cone

๐’ฆ๏ธ€powmโˆ—(๐›ผ,๐‘‘1)={(๐‘ข,๐‘ค)โˆˆโ„+๐‘‘1ร—โ„โˆ’|โˆ๐‘–=1,โ€ฆ,๐‘‘1(๐‘ข๐‘–๐›ผ๐‘–)๐›ผ๐‘–โ‰ฅโˆ’๐‘ค}

(97)

The relative entropy cone is defined as

๐’ฆ๏ธ€rel(๐‘‘)=cl{(๐‘ข,๐‘ฃ,๐‘ค)โˆˆโ„ร—โ„++๐‘‘ร—โ„++๐‘‘|๐‘ขโ‰ฅโˆ‘๐‘–=1,โ€ฆ,๐‘‘๐‘ค๐‘–ln(๐‘ค๐‘–๐‘ฃ๐‘–)}

(98)

with dual cone

๐’ฆ๏ธ€relโˆ—(๐‘‘)=cl{(๐‘ข,๐‘ฃ,๐‘ค)โˆˆโ„++ร—โ„++๐‘‘ร—โ„๐‘‘|๐‘ค๐‘–โ‰ฅ๐‘ข(ln(๐‘ข๐‘ฃ๐‘–)โˆ’1)โˆ€๐‘–=1,โ€ฆ,๐‘‘}

(99)

7.5. Generalized power cones

As shown in [11] the Hessian of the conjugate barrier for the generalized power cones is augmented sparse with ๐‘›๐‘ข=1 and ๐‘›๐‘ฃ=2, i.e. that

๐ปโˆ—(๐‘ง)=๐ท+๐‘๐‘โŠคโˆ’๐‘ž๐‘žโŠคโˆ’๐‘Ÿ๐‘ŸโŠค.

(100)

where ๐‘งโ‰”(๐‘ข,๐‘ค) and ๐ทโˆ’๐‘ž๐‘žโŠคโˆ’๐‘Ÿ๐‘ŸโŠคโ‰ป0 with

๐ท=[โ‹ฑ๐œ๐‘–๐œ™๐‘ข๐‘–๐œ+1โˆ’๐›ผ๐‘–๐‘ข๐‘–2โ‹ฑ2๐œ๐ผ๐‘‘2],๐‘=[๐‘0๐œ๐œ๐‘1๐‘ค๐œ],๐‘ž=[๐‘ž0๐œ๐œ0],๐‘Ÿ=[0๐‘Ÿ1๐‘ค๐œ],

(101)

where

๐‘0=๐œ™(๐œ™+โ€–๐‘คโ€–2)2,๐‘1=โˆ’22๐œ™๐œ™+โ€–๐‘คโ€–2๐‘ž0=๐œ™๐œ2,๐‘Ÿ1=2๐œ๐œ™+โ€–๐‘คโ€–2

(102)

and ๐œ™=โˆ๐‘–โˆˆ[๐‘‘1](๐‘ข๐‘–๐›ผ๐‘–)2๐›ผ๐‘–, ๐œ๐‘–=2๐›ผ๐‘–๐‘ข๐‘– and ๐œ=๐œ™โˆ’โ€–๐‘คโ€–2.

7.6. Power mean cone

For the power mean cone it is shown in [11] that the Hessian of the conjugate barrier is augmented sparse with ๐‘›๐‘ข=1 and ๐‘›๐‘ฃ=2, i.e. that

๐ปโˆ—(๐‘ง)=๐ท+๐‘๐‘โŠคโˆ’๐‘ž๐‘žโŠคโˆ’๐‘Ÿ๐‘ŸโŠค.

(103)

where ๐‘งโ‰”(๐‘ข,๐‘ค) and ๐ทโˆ’๐‘ž๐‘žโŠคโˆ’๐‘Ÿ๐‘ŸโŠคโ‰ป0 with

๐ท=[โ‹ฑ๐œ๐‘–๐œ™๐‘ข๐‘–+1โˆ’๐›ผ๐‘–๐‘ข๐‘–2โ‹ฑ๐œƒ],๐‘=[๐‘0๐œ๐‘11๐œ],๐‘ž=[๐‘ž0๐œ0],๐‘Ÿ=[0๐‘Ÿ11๐œ],

(104)

where

๐œƒ=1+๐‘คโˆ’2,๐‘0=๐œ™,๐‘1=1,๐‘ž0=๐œ๐œ™,๐‘Ÿ1=๐œ

(105)

and

๐œ™=โˆ๐‘–โˆˆ[๐‘‘1](๐‘ข๐‘–๐›ผ๐‘–)๐›ผ๐‘–, ๐œ=๐œ™+๐‘ค and ๐œ๐‘–=๐›ผ๐‘–๐‘ข๐‘–๐œ,๐‘–=1,โ€ฆ,๐‘‘.

7.7. Relative entropy cone

For the relative entropy cone it is shown in [11] that the Hessian of the conjugate barrier is sparse with the following structure

๐ปโˆ—(๐‘ง)=[โˆ‡๐‘ข,๐‘ข2๐‘“โˆ—โˆ‡๐‘ข,๐‘ฃ2๐‘“โˆ—โˆ‡๐‘ข,๐‘ค2๐‘“โˆ—โˆ‡๐‘ฃ,๐‘ข2๐‘“โˆ—๐ท๐‘ฃ,๐‘ฃ๐ท๐‘ฃ,๐‘คโˆ‡๐‘ค,๐‘ข2๐‘“โˆ—๐ท๐‘ค,๐‘ฃ๐ท๐‘ค,๐‘ค]

(106)

where ๐‘งโ‰”(๐‘ข,๐‘ฃ,๐‘ค) and ๐ปโˆ—(๐‘ง)โ‰ป0

๐ท๐‘ฃ,๐‘ฃ=diag([๐‘ข(๐›พ1+๐‘ข)๐›พ12๐‘ฃ12+1๐‘ฃ12โ€ฆ๐‘ข(๐›พ๐‘‘+๐‘ข)๐›พ๐‘‘2๐‘ฃ๐‘‘2+1๐‘ฃ๐‘‘2])๐ท๐‘ค,๐‘ค=diag([๐›พ1โˆ’2โ€ฆ๐›พ๐‘‘โˆ’2])๐ท๐‘ฃ,๐‘ค=๐ท๐‘ค,๐‘ฃ=diag([๐‘ข(๐›พ12๐‘ฃ1)โˆ’1โ€ฆ๐‘ข(๐›พ๐‘‘2๐‘ฃ๐‘‘)โˆ’1]),

(107)

with ๐›พ๐‘–=๐‘ค๐‘–โˆ’๐‘ข(ln(๐‘ข๐‘ฃ๐‘–)โˆ’1)>0,๐‘–=1,โ€ฆ,๐‘‘.

7.8. Semidefinite cones

We start by introducing the vectorization of a symmetric matrix ๐‘€ defined below

svec(๐‘€):=[๐‘€1,1,2๐‘€2,1,๐‘€2,2,2๐‘€3,1,โ€ฆ,2๐‘€๐‘›,๐‘›โˆ’2,2๐‘€๐‘›,๐‘›โˆ’1,๐‘€๐‘›,๐‘›]โŠค.

(108)

Note that the scaling of 2 is in order to preserve inner-products i.e. that tr(๐ฟโŠค๐‘€)=svec(๐ฟ)โŠคsvec(๐‘€). We equivalently introduce the matrization of a vector (and denote it by smat) which unsurprisingly has the property ๐‘€=smat(svec(๐‘€)) as

smat(๐‘š):=[๐‘š1๐‘š2/2โ€ฆ๐‘š๐‘›(๐‘›โˆ’1)/2+1/2๐‘š2/2๐‘š3โ€ฆ๐‘š๐‘›(๐‘›โˆ’1)/2+2/2โ‹ฎโ‹ฎโ‹ฑโ‹ฎ๐‘š๐‘›(๐‘›โˆ’1)/2+1/2๐‘š๐‘›(๐‘›โˆ’1)/2+2/2โ€ฆ๐‘š๐‘›(๐‘›+1)/2].

(109)

Note that the scaling ensures that we preserve inner-products i.e. that ๐‘ขโŠค๐‘ฃ=tr(smat(๐‘ข)smat(๐‘ฃ)).

7.8.1. Computing dense ๐‘Š๐‘˜โŠค๐‘Š๐‘˜

In CVXOPT the Nesterov-Todd scaling of a semidefinite cone is described by the product

๐‘Š๐‘˜svec(๐‘‰)=svec(๐‘…๐‘˜โŠค๐‘‰๐‘…๐‘˜),

(110)

However, stating it like this gives no insights into the structure of ๐‘Š๐‘˜, which is needed when assembling the KKT system (to be precise ๐‘Š๐‘˜โŠค๐‘Š๐‘˜ is needed for the KKT assembly). It turns out that the structure comes from the symmetric Kronecker product given by

(๐บโŠ—๐‘ ๐ป)svec(๐‘‰)=12svec(๐ป๐‘‰๐บโŠค+๐บ๐‘‰๐ปโŠค).

(111)

Using the above we can see that this means that the Nesterov-Todd scaling of the semidefinite cone is

(๐‘…โŠคโŠ—๐‘ ๐‘…โŠค)svec(๐‘‰)=svec(๐‘…โŠค๐‘‰๐‘…),

(112)

from which it becomes clear that ๐‘Š๐‘˜=(๐‘…๐‘˜โŠคโŠ—๐‘ ๐‘…๐‘˜โŠค). Weโ€™re now almost ready to describe ๐‘Š๐‘˜โŠค๐‘Š๐‘˜, but first we need to introduce the following property of the symmetric Kronecker product [12]

(๐ดโŠ—๐‘ ๐ต)(๐ถโŠ—๐‘ ๐ท)=12(๐ด๐ถโŠ—๐‘ ๐ต๐ท+๐ด๐ทโŠ—๐‘ ๐ต๐ถ).

(113)

Using the above it follows that

๐‘Š๐‘˜โŠค๐‘Š๐‘˜=(๐‘…๐‘˜โŠ—๐‘ ๐‘…๐‘˜)(๐‘…๐‘˜โŠคโŠ—๐‘ ๐‘…๐‘˜โŠค)=๐‘…๐‘˜๐‘…๐‘˜โŠคโŠ—๐‘ ๐‘…๐‘˜๐‘…๐‘˜โŠค

(114)

Now how do we write the symmetric Kronecker product as an explicit matrix? First we need to introduce a mapping ๐‘„ that works as follows

๐‘„vec(๐‘†)=svec(๐‘†),๐‘„โŠคsvec(๐‘†)=vec(๐‘†)

(115)

Using ๐‘„ it is now possible to describe the symmetric Kronecker product as

๐บโŠ—๐‘ ๐ป=12๐‘„(๐บโŠ—๐ป+๐ปโŠ—๐บ)๐‘„โŠค

(116)

This definition intuitively makes sense. The ๐‘„โŠค on the right is applied first and lifts a svec to vec i.e. from a symmetric vector to a regular vector. We then apply the sum of regular Kronecker products (the sum makes it map symmetric matrices to symmetric matrices) and then pull the product down back to svec using ๐‘„. Note that in general ๐บโŠ—๐‘ ๐ป is not symmetric. Instead, it represents a single half of an otherwise symmetric product. In the case where ๐ป=๐บ, as is the case of NT-scaling, the product is symmetric and in fact

๐‘Š๐‘˜โŠค๐‘Š๐‘˜=๐‘…๐‘˜๐‘…๐‘˜โŠคโŠ—๐‘ ๐‘…๐‘˜๐‘…๐‘˜โŠค=๐‘„(๐‘…๐‘˜๐‘…๐‘˜โŠคโŠ—๐‘…๐‘˜๐‘…๐‘˜โŠค)๐‘„โŠค

(117)

Cite this post

bibtex
@misc{paltorp2026conicoptimization,
author = {Paltorp, Mikkel},
title = {{Conic Optimization}},
year = {2026},
month = jan,
url = {https://mipals.github.io/pdf/2026/01-04-conic-optimization/conic-optimization.pdf},
note = {Blog post}
}

Bibliography