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 functionalsf
andg
.- 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 aField
.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, right
Functional
Functionals in the product. Need to have matching domains.
- left, right
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