code: def inverse(self):
          
          if self.domain.is_real:
              # Real domain
              # Optimizations for simple cases.
              if self.scalar.real == self.scalar:
                  return (1 / self.scalar.real) * RealPart(self.range)
              elif 1j * self.scalar.imag == self.scalar:
                  return (1 / self.scalar.imag) * ImagPart(self.range)
              else:
                  # General case
                  inv_scalar = (1 / self.scalar).conjugate()
                  return ((inv_scalar.real) * RealPart(self.range) +
                          (inv_scalar.imag) * ImagPart(self.range))
          else:
              # Complex domain
              return ComplexEmbedding(self.range, self.scalar.conjugate())
docs: Return the (left) inverse.
  
          If the domain is a real space, this is not a true inverse,
          only a (left) inverse.
  
          Examples
          --------
          >>> r3 = odl.rn(3)
          >>> op = ComplexEmbedding(r3, scalar=1)
          >>> op.inverse(op([1, 2, 4]))
          rn(3).element([ 1.,  2.,  4.])