# Dual Values¶

Picos typically reformulates optimization problems as conic programs of the form

where each is a linear map from to a linear space containing the cone , and the generalized conic inequality means for a cone . For the sake of compactness, we allow generalized inequalities over the trivial cone , such that represents an equality constraint .

The dual conic problem can be written as follows:

where denotes the adjoint operator of and denotes the the dual cone of (see the note below for a list of cones that are supported in PICOS, together with their dual).

After an optimization problem has been solved, we can query the optimal dual variable
of a conic constraint `con`

over the cone with its
`dual`

attribute, i.e., `con.dual`

.

When an optimization problem `P`

can be reformulated to a conic program `C`

of the above form by PICOS,
we can use its `dual`

attribute to
return a `Problem`

object `D=P.dual`

which contains the
dual conic program of `C`

. It is also possible to solve `P`

via its dual
by using the dualize option:
This passes problem `D`

to the solver,
and the optimal primal and dual variables of `P`

will be retrieved from the
optimal solution of `D`

.

## Supported cones and their dual¶

PICOS can provide dual information for problems involving the following cones:

### Trivial cone¶

The trivial cone , whose dual cone is the entire space . This means that the dual variable for an equality constraint is unconstrained.

### Nonnegative Orthant¶

The nonnegative orthant is self dual: . Therefore the dual variable for a set of linear inequalities is a vector .

### Lorentz Cone¶

The Lorentz cone , which is used to model second-order cone inequalities, is self-dual: . This means that the dual variable for a second order cone inequality of the form

is a vector of the form such that .

### Rotated Second-order Cone¶

The (widened or narrowed) rotated second order cone is

for some , and its dual cone is . In particular, is self-dual for . For example, the dual variable for the constraint with and , i.e.,

is a vector of the form such that ;

### Positive Semi-definite Cone¶

The positive semidefinite cone is self dual: . This means that the dual variable for a linear matrix inequality is a positive semidefinite matrix ;

### Exponential Cone¶

PICOS can also reformulate several constraints using the *exponential cone*
`ExponentialCone`

, as it is the case for example
for `KullbackLeiblerConstraint`

.
PICOS provides dual values for `ExpConeConstraint`

,
as computed by the solver, but dualization of those constraints
is not yet supported.