class_docstr: Single excitation rotation with negative phase-shift outside the rotation subspace.
  
  .. math:: U_-(\phi) = \begin{bmatrix}
              e^{-i\phi/2} & 0 & 0 & 0 \\
              0 & \cos(\phi/2) & -\sin(\phi/2) & 0 \\
              0 & \sin(\phi/2) & \cos(\phi/2) & 0 \\
              0 & 0 & 0 & e^{-i\phi/2}
          \end{bmatrix}.
  
  **Details:**
  
  * Number of wires: 2
  * Number of parameters: 1
  * Number of dimensions per parameter: (0,)
  * Gradient recipe: :math:`\frac{d}{d\phi}f(U_-(\phi)) = \frac{1}{2}\left[f(U_-(\phi+\pi/2)) - f(U_-(\phi-\pi/2))\right]`
    where :math:`f` is an expectation value depending on :math:`U_-(\phi)`.
  
  Args:
      phi (float): rotation angle :math:`\phi`
      wires (Sequence[int] or int): the wires the operation acts on
      id (str or None): String representing the operation (optional)
class_docstr_tok: ["Single","excitation","rotation","with","negative","phase-shift","outside","the","rotation","subspace",".","..","math",":",":","U_-","(","\\phi",")","=","\\begin","{","bmatrix","}","e^","{","-i\\phi\/2","}","&","0","&","0","&","0","\\\\","0","&","\\cos","(","\\phi\/2",")","&","-\\sin","(","\\phi\/2",")","&","0","\\\\","0","&","\\sin","(","\\phi\/2",")","&","\\cos","(","\\phi\/2",")","&","0","\\\\","0","&","0","&","0","&","e^","{","-i\\phi\/2","}","\\end","{","bmatrix","}",".","*","*","Details",":","*","*","*","Number","of","wires",":","2","*","Number","of","parameters",":","1","*","Number","of","dimensions","per","parameter",":","(","0",",",")","*","Gradient","recipe",":",":","math",":","`","\\frac","{","d","}","{","d\\phi","}","f","(","U_-","(","\\phi",")",")","=","\\frac","{","1","}","{","2","}","\\left","[","f","(","U_-","(","\\phi+\\pi\/2",")",")","-","f","(","U_-","(","\\phi-\\pi\/2",")",")","\\right","]","`","where",":","math",":","`","f","`","is","an","expectation","value","depending","on",":","math",":","`","U_-","(","\\phi",")","`",".","Args",":","phi","(","float",")",":","rotation","angle",":","math",":","`","\\phi","`","wires","(","Sequence","[","int","]","or","int",")",":","the","wires","the","operation","acts","on","id","(","str","or","None",")",":","String","representing","the","operation","(","optional",")"]
docstr: Representation of the operator as a product of other operators (static method). :
  
  .. math:: O = O_1 O_2 \dots O_n.
  
  
  .. seealso:: :meth:`~.SingleExcitationMinus.decomposition`.
  
  Args:
      phi (float): rotation angle :math:`\phi`
      wires (Iterable, Wires): wires that the operator acts on
  
  Returns:
      list[Operator]: decomposition into lower level operations
  
  **Example:**
  
  >>> qml.SingleExcitationMinus.compute_decomposition(1.23, wires=(0,1))
  [PauliX(wires=[0]),
  PauliX(wires=[1]),
  ControlledPhaseShift(-0.615, wires=[1, 0]),
  PauliX(wires=[0]),
  PauliX(wires=[1]),
  ControlledPhaseShift(-0.615, wires=[0, 1]),
  CNOT(wires=[0, 1]),
  CRY(1.23, wires=[1, 0]),
  CNOT(wires=[0, 1])]
docstr_tok: ["Representation","of","the","operator","as","a","product","of","other","operators","(","static","method",")",".",":","..","math",":",":","O","=","O_1","O_2","\\dots","O_n",".","..","seealso",":",":",":","meth",":","`","~.SingleExcitationMinus.decomposition","`",".","Args",":","phi","(","float",")",":","rotation","angle",":","math",":","`","\\phi","`","wires","(","Iterable",",","Wires",")",":","wires","that","the","operator","acts","on","Returns",":","list","[","Operator","]",":","decomposition","into","lower","level","operations","*","*","Example",":","*","*",">",">",">","qml.SingleExcitationMinus.compute_decomposition","(","1.23",",","wires=","(","0,1",")",")","[","PauliX","(","wires=","[","0","]",")",",","PauliX","(","wires=","[","1","]",")",",","ControlledPhaseShift","(","-0.615",",","wires=","[","1",",","0","]",")",",","PauliX","(","wires=","[","0","]",")",",","PauliX","(","wires=","[","1","]",")",",","ControlledPhaseShift","(","-0.615",",","wires=","[","0",",","1","]",")",",","CNOT","(","wires=","[","0",",","1","]",")",",","CRY","(","1.23",",","wires=","[","1",",","0","]",")",",","CNOT","(","wires=","[","0",",","1","]",")","]"]
code: def compute_decomposition(phi, wires):
      r"""Representation of the operator as a product of other operators (static method). :
  
      .. math:: O = O_1 O_2 \dots O_n.
  
  
      .. seealso:: :meth:`~.SingleExcitationMinus.decomposition`.
  
      Args:
          phi (float): rotation angle :math:`\phi`
          wires (Iterable, Wires): wires that the operator acts on
  
      Returns:
          list[Operator]: decomposition into lower level operations
  
      **Example:**
  
      >>> qml.SingleExcitationMinus.compute_decomposition(1.23, wires=(0,1))
      [PauliX(wires=[0]),
      PauliX(wires=[1]),
      ControlledPhaseShift(-0.615, wires=[1, 0]),
      PauliX(wires=[0]),
      PauliX(wires=[1]),
      ControlledPhaseShift(-0.615, wires=[0, 1]),
      CNOT(wires=[0, 1]),
      CRY(1.23, wires=[1, 0]),
      CNOT(wires=[0, 1])]
  
      """
      decomp_ops = [
          qml.PauliX(wires=wires[0]),
          qml.PauliX(wires=wires[1]),
          qml.ControlledPhaseShift(
              -phi / 2, wires=[wires[1], wires[0]]
          ),
          qml.PauliX(wires=wires[0]),
          qml.PauliX(wires=wires[1]),
          qml.ControlledPhaseShift(
              -phi / 2, wires=[wires[0], wires[1]]
          ),
          qml.CNOT(wires=[wires[0], wires[1]]),
          qml.CRY(phi, wires=[wires[1], wires[0]]),
          qml.CNOT(wires=[wires[0], wires[1]]),
      ]
      return decomp_ops
  
imports: import functools
  import numpy
  from scipy.sparse import csr_matrix
  import pennylane
  from pennylane.operation import Operation
label_desc: Use image node_id 4 for calling the SingleExcitationMinus obj's underlying member method code with example usage: obj.compute_decomposition(phi, wires) and returns: decomp_ops