FunctionalProduct

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

Bases: odl.solvers.functional.functional.Functional, odl.operator.operator.OperatorPointwiseProduct

Product p(x) = f(x) * g(x) of two functionals f and g.

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

The left/first part of this multiplication.

proximal

Proximal factory of the functional.

range

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

right

The left/second part of this multiplication.

Methods

_call(self, x[, out])

Implement self(x[, out]).

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, left, right)[source]

Initialize a new instance.

Parameters
left, rightFunctional

Functionals in the product. Need to have matching domains.

Examples

Construct the functional || . ||_2^2 * 3

>>> space = odl.rn(2)
>>> func1 = odl.solvers.L2NormSquared(space)
>>> func2 = odl.solvers.ConstantFunctional(space, 3)
>>> prod = odl.solvers.FunctionalProduct(func1, func2)
>>> prod([2, 3])  # expect (2**2 + 3**2) * 3 = 39
39.0