FunctionalLeftVectorMult

class odl.operator.operator.FunctionalLeftVectorMult(*args, **kwargs)[source]

Bases: odl.operator.operator.Operator

Expression type for the functional left vector multiplication.

A functional is an Operator whose Operator.range is a Field. It is multiplied from left with a LinearSpaceElement, resulting in an operator mapping from the Operator.domain to the element’s LinearSpaceElement.space.

FunctionalLeftVectorMult(op, y)(x) == y * op(x)

Attributes
adjoint

Adjoint of this operator.

domain

Set of objects on which this operator can be evaluated.

functional

The functional part of this multiplication.

inverse

Return the operator inverse.

is_functional

True if this operator’s range is a Field.

is_linear

True if this operator is linear.

range

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

vector

The element part of this multiplication.

Methods

_call(self, x[, out])

Implement self(x[, out]).

derivative(self, x)

Return the derivative at x.

norm(self[, estimate])

Return the operator norm of this operator.

__init__(self, functional, vector)[source]

Initialize a new instance.

Parameters
functionalOperator

Functional in the vector multiplication. Its range must be a Field.

vectorfunctional.range element-like

The element to multiply with. Its space’s LinearSpace.field must be the same as functional.range.

Examples

Create the operator (y * y^T)(x) = y * <x, y>

>>> space = odl.rn(3)
>>> y = space.element([1, 2, 3])
>>> functional = odl.InnerProductOperator(y)
>>> left_mul_op = FunctionalLeftVectorMult(functional, y)
>>> left_mul_op([1, 2, 3])
rn(3).element([ 14.,  28.,  42.])