InfimalConvolution

class odl.solvers.functional.functional.InfimalConvolution(*args, **kwargs)[source]

Bases: Functional

Functional representing h(x) = inf_y f(x-y) + g(y).

Attributes:
adjoint

Adjoint of this operator (abstract).

convex_conj

Convex conjugate functional of the functional.

domain

Set of objects on which this operator can be evaluated.

grad_lipschitz

Lipschitz constant for the gradient of the functional.

gradient

Gradient operator of the functional.

inverse

Return the operator inverse.

is_functional

True if this operator's range is a Field.

is_linear

True if this operator is linear.

left

Left functional.

proximal

Proximal factory of the functional.

range

Set in which the result of an evaluation of this operator lies.

right

Right functional.

Methods

__call__(x[, out])

Return self(x[, out, **kwargs]).

bregman(point, subgrad)

Return the Bregman distance functional.

derivative(point)

Return the derivative operator in the given point.

norm([estimate])

Return the operator norm of this operator.

translated(shift)

Return a translation of the functional.

__init__(left, right)[source]

Initialize a new instance.

Parameters:
leftFunctional

Function corresponding to f.

rightFunctional

Function corresponding to g.

Examples

>>> space = odl.rn(3)
>>> l1 = odl.solvers.L1Norm(space)
>>> l2 = odl.solvers.L2Norm(space)
>>> f = odl.solvers.InfimalConvolution(l1.convex_conj, l2.convex_conj)
>>> x = f.domain.one()
>>> f.convex_conj(x) - (l1(x) + l2(x))
0.0