code: def derivative(self, displacement):
          
          # To implement the complex case we need to be able to embed the real
          # vector field space into the range of the gradient. Issue #59.
          if not self.range.is_real:
              raise NotImplementedError('derivative not implemented for complex '
                                        'spaces.')
  
          displacement = self.domain.element(displacement)
  
          # TODO: allow users to select what method to use here.
          grad = Gradient(domain=self.range, method='central',
                          pad_mode='symmetric')
          grad_templ = grad(self.template)
          def_grad = self.domain.element(
              [linear_deform(gf, displacement) for gf in grad_templ])
  
          return PointwiseInner(self.domain, def_grad)
docs: Derivative of the operator at ``displacement``.
  
          Parameters
          ----------
          displacement : `domain` `element-like`
              Point at which the derivative is computed.
  
          Returns
          -------
          derivative : `PointwiseInner`
              The derivative evaluated at ``displacement``.