# FunctionalLeftVectorMult¶

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

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
functional`Operator`

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

vector`functional.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.])
```