IndicatorBox

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

Bases: odl.solvers.functional.functional.Functional

Indicator on some box shaped domain.

Notes

The indicator F with lower bound a and upper bound b is defined as:

F(x) = \begin{cases}
    0 & \text{if } a \leq x \leq b \text{ everywhere}, \\
    \infty & \text{else}
    \end{cases}

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.

proximal

Return the proximal factory of the functional.

range

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

Methods

_call(self, x)

Apply the functional to the given point.

bregman(self, point, subgrad)

Return the Bregman distance functional.

derivative(self, point)

Return the derivative operator in the given point.

norm(self[, estimate])

Return the operator norm of this operator.

translated(self, shift)

Return a translation of the functional.

__init__(self, space, lower=None, upper=None)[source]

Initialize an instance.

Parameters
spaceLinearSpace

Domain of the functional.

lowerspace.field element or space element-like, optional

The lower bound. Default: None, interpreted as -infinity

upperspace.field element or space element-like, optional

The upper bound. Default: None, interpreted as +infinity

Examples

>>> space = odl.rn(3)
>>> func = IndicatorBox(space, 0, 2)
>>> func([0, 1, 2])  # all points inside
0
>>> func([0, 1, 3])  # one point outside
inf