class_docstr: A base class for operators that are composed of other operators.
  
  Args:
      operands: (tuple[~.operation.Operator]): a tuple of operators which will be combined.
  
  Keyword Args:
      id (str or None): id for the operator. Default is None.
  
  The child composite operator should define the `_op_symbol` property
  during initialization and define any relevant representations, such as
  :meth:`~.operation.Operator.matrix` and :meth:`~.operation.Operator.decomposition`.
docstr: Return the eigendecomposition of the matrix specified by the operator.
  
  This method uses pre-stored eigenvalues for standard observables where
  possible and stores the corresponding eigenvectors from the eigendecomposition.
  
  It transforms the input operator according to the wires specified.
  
  Returns:
      dict[str, array]: dictionary containing the eigenvalues and the
          eigenvectors of the operator.
docstr_tok: ["Return","the","eigendecomposition","of","the","matrix","specified","by","the","operator",".","This","method","uses","pre-stored","eigenvalues","for","standard","observables","where","possible","and","stores","the","corresponding","eigenvectors","from","the","eigendecomposition",".","It","transforms","the","input","operator","according","to","the","wires","specified",".","Returns",":","dict","[","str",",","array","]",":","dictionary","containing","the","eigenvalues","and","the","eigenvectors","of","the","operator","."]
code: def eigendecomposition(self):
      r"""Return the eigendecomposition of the matrix specified by the operator.
  
      This method uses pre-stored eigenvalues for standard observables where
      possible and stores the corresponding eigenvectors from the eigendecomposition.
  
      It transforms the input operator according to the wires specified.
  
      Returns:
          dict[str, array]: dictionary containing the eigenvalues and the
              eigenvectors of the operator.
      """
      eigen_func = (
          np.linalg.eigh if self.is_hermitian else np.linalg.eig
      )
  
      if self.hash not in self._eigs:
          mat = self.matrix()
          mat = math.to_numpy(mat)
          w, U = eigen_func(mat)
          self._eigs[self.hash] = {"eigvec": U, "eigval": w}
  
      return self._eigs[self.hash]
  
imports: import abc
  from typing import Callable, List
  import copy
  import numpy
  import pennylane
  from pennylane import math
  from pennylane.operation import Operator, convert_to_opmath, _UNSET_BATCH_SIZE
  from pennylane.wires import Wires
label_desc: Use image node_id 21 for calling the CompositeOp obj's underlying member method code with example usage: obj.eigendecomposition() and returns: self