ComplexEmbedding.adjoint

property ComplexEmbedding.adjoint

Return the (right) adjoint.

Notes

Due to technicalities of operators from a real space into a complex space, this does not satisfy the usual adjoint equation:

\langle Ax, y \rangle = \langle x, A^*y \rangle

Instead it is an adjoint in a weaker sense as follows:

\langle A^*Ax, y \rangle = \langle Ax, Ay \rangle

Examples

The adjoint satisfies the adjoint equation for complex spaces

>>> c3 = odl.cn(3)
>>> op = ComplexEmbedding(c3, scalar=1j)
>>> x = c3.element([1 + 1j, 2 + 2j, 3 + 3j])
>>> y = c3.element([3 + 1j, 2 + 2j, 3 + 1j])
>>> Axy = op(x).inner(y)
>>> xAty = x.inner(op.adjoint(y))
>>> Axy == xAty
True

For real domains, it only satisfies the (right) adjoint equation

>>> r3 = odl.rn(3)
>>> op = ComplexEmbedding(r3, scalar=1j)
>>> x = r3.element([1, 2, 3])
>>> y = r3.element([3, 2, 3])
>>> AtAxy = op.adjoint(op(x)).inner(y)
>>> AxAy = op(x).inner(op(y))
>>> AtAxy == AxAy
True