code: def derivative(self, point):
          r
          point = self.domain.element(point)
          diff = point - self.vector
          dist = self.vector.dist(point)
          if dist == 0:
              raise ValueError('not differentiable at the reference vector {!r}'
                               ''.format(self.vector))
  
          return InnerProductOperator(diff / dist)
docs: r"""The derivative operator.
  
              ``DistOperator(y).derivative(z)(x) ==
              ((y - z) / y.dist(z)).inner(x)``
  
          This is only applicable in inner product spaces.
  
          Parameters
          ----------
          x : `domain` `element-like`
              Point in which to take the derivative.
  
          Returns
          -------
          derivative : `InnerProductOperator`
  
          Raises
          ------
          ValueError
              If ``point == self.vector``, in which case the derivative is not
              well defined in the Frechet sense.
  
          Notes
          -----
          The derivative cannot be written in a general sense except in Hilbert
          spaces, in which case it is given by
  
          .. math::
              (D d(\cdot, y))(z)(x) = \langle (y-z) / d(y, z), x \rangle
  
          Examples
          --------
          >>> r2 = odl.rn(2)
          >>> x = r2.element([1, 1])
          >>> op = DistOperator(x)
          >>> derivative = op.derivative([2, 1])
          >>> derivative([1, 0])
          1.0