ComplexModulusSquared¶
- class odl.operator.default_ops.ComplexModulusSquared(*args, **kwargs)[source]¶
Bases:
Operator
Operator that computes the squared complex modulus (absolute value).
- Attributes:
adjoint
Adjoint of this operator (abstract).
domain
Set of objects on which this operator can be evaluated.
inverse
Return the operator inverse.
is_functional
True
if this operator's range is aField
.is_linear
True
if this operator is linear.range
Set in which the result of an evaluation of this operator lies.
Methods
__call__
(x[, out])Return
self(x[, out, **kwargs])
.derivative
(x)Return the derivative operator in the "C = R^2" sense.
norm
([estimate])Return the operator norm of this operator.
- __init__(space)[source]¶
Initialize a new instance.
- Parameters:
- space
TensorSpace
Space in which the modulus should be taken, needs to implement
space.real_space
.
- space
Examples
Take the squared modulus of a complex vector:
>>> c2 = odl.cn(2) >>> op = odl.ComplexModulusSquared(c2) >>> op([3 + 4j, 2]) rn(2).element([ 25., 4.])
On a real space, this is the same as squaring:
>>> r2 = odl.rn(2) >>> op = odl.ComplexModulusSquared(r2) >>> op([1, -2]) rn(2).element([ 1., 4.])
The operator also works on other
TensorSpace
's such asDiscretizedSpace
:>>> space = odl.uniform_discr(0, 1, 2, dtype=complex) >>> op = odl.ComplexModulusSquared(space) >>> op([3 + 4j, 2]) uniform_discr(0.0, 1.0, 2).element([ 25., 4.])