code: def inner(self, x1, x2):
          
          if self.exponent != 2.0:
              raise NotImplementedError('no inner product defined for '
                                        'exponent != 2 (got {})'
                                        ''.format(self.exponent))
  
          inners = np.fromiter(
              (x1i.inner(x2i) for x1i, x2i in zip(x1, x2)),
              dtype=x1[0].space.dtype, count=len(x1))
  
          inner = self.const * np.sum(inners)
          return x1.space.field.element(inner)
docs: Calculate the constant-weighted inner product of two elements.
  
          Parameters
          ----------
          x1, x2 : `ProductSpaceElement`
              Elements whose inner product is calculated.
  
          Returns
          -------
          inner : float or complex
              The inner product of the two provided elements.