code: def dot(*values: Union[float, complex, np.ndarray]
          ) -> Union[float, complex, np.ndarray]:
      
      if len(values) == 1:
          if isinstance(values[0], np.ndarray):
              return np.array(values[0])
          return values[0]
      return np.linalg.multi_dot(values)
docs: Computes the dot/matrix product of a sequence of values.
  
      A *args version of np.linalg.multi_dot.
  
      Args:
          *values: The values to combine with the dot/matrix product.
  
      Returns:
          The resulting value or matrix.