class_docstr: Single-qubit generalized amplitude damping error channel.
  
  This channel models the exchange of energy between a qubit and its environment
  at finite temperatures, with the following Kraus matrices:
  
  .. math::
      K_0 = \sqrt{p} \begin{bmatrix}
              1 & 0 \\
              0 & \sqrt{1-\gamma}
              \end{bmatrix}
  
  .. math::
      K_1 = \sqrt{p}\begin{bmatrix}
              0 & \sqrt{\gamma}  \\
              0 & 0
              \end{bmatrix}
  
  .. math::
      K_2 = \sqrt{1-p}\begin{bmatrix}
              \sqrt{1-\gamma} & 0 \\
              0 & 1
              \end{bmatrix}
  
  .. math::
      K_3 = \sqrt{1-p}\begin{bmatrix}
              0 & 0 \\
              \sqrt{\gamma} & 0
              \end{bmatrix}
  
  where :math:`\gamma \in [0, 1]` is the probability of damping and :math:`p \in [0, 1]`
  is the probability of the system being excited by the environment.
  
  **Details:**
  
  * Number of wires: 1
  * Number of parameters: 2
  
  Args:
      gamma (float): amplitude damping probability
      p (float): excitation probability
      wires (Sequence[int] or int): the wire the channel acts on
      id (str or None): String representing the operation (optional)
class_docstr_tok: ["Single-qubit","generalized","amplitude","damping","error","channel",".","This","channel","models","the","exchange","of","energy","between","a","qubit","and","its","environment","at","finite","temperatures",",","with","the","following","Kraus","matrices",":","..","math",":",":","K_0","=","\\sqrt","{","p","}","\\begin","{","bmatrix","}","1","&","0","\\\\","0","&","\\sqrt","{","1-\\gamma","}","\\end","{","bmatrix","}","..","math",":",":","K_1","=","\\sqrt","{","p","}","\\begin","{","bmatrix","}","0","&","\\sqrt","{","\\gamma","}","\\\\","0","&","0","\\end","{","bmatrix","}","..","math",":",":","K_2","=","\\sqrt","{","1-p","}","\\begin","{","bmatrix","}","\\sqrt","{","1-\\gamma","}","&","0","\\\\","0","&","1","\\end","{","bmatrix","}","..","math",":",":","K_3","=","\\sqrt","{","1-p","}","\\begin","{","bmatrix","}","0","&","0","\\\\","\\sqrt","{","\\gamma","}","&","0","\\end","{","bmatrix","}","where",":","math",":","`","\\gamma","\\in","[","0",",","1","]","`","is","the","probability","of","damping","and",":","math",":","`","p","\\in","[","0",",","1","]","`","is","the","probability","of","the","system","being","excited","by","the","environment",".","*","*","Details",":","*","*","*","Number","of","wires",":","1","*","Number","of","parameters",":","2","Args",":","gamma","(","float",")",":","amplitude","damping","probability","p","(","float",")",":","excitation","probability","wires","(","Sequence","[","int","]","or","int",")",":","the","wire","the","channel","acts","on","id","(","str","or","None",")",":","String","representing","the","operation","(","optional",")"]
docstr: Kraus matrices representing the GeneralizedAmplitudeDamping channel.
  
  Args:
      gamma (float): amplitude damping probability
      p (float): excitation probability
  
  Returns:
      list (array): list of Kraus matrices
  
  **Example**
  
  >>> qml.GeneralizedAmplitudeDamping.compute_kraus_matrices(0.3, 0.6)
  [array([[0.77459667, 0.        ], [0.        , 0.64807407]]),
   array([[0.        , 0.42426407], [0.        , 0.        ]]),
   array([[0.52915026, 0.        ], [0.        , 0.63245553]]),
   array([[0.        , 0.        ], [0.34641016, 0.        ]])]
code: def compute_kraus_matrices(
      gamma, p
  ):  # pylint:disable=arguments-differ
      """Kraus matrices representing the GeneralizedAmplitudeDamping channel.
  
      Args:
          gamma (float): amplitude damping probability
          p (float): excitation probability
  
      Returns:
          list (array): list of Kraus matrices
  
      **Example**
  
      >>> qml.GeneralizedAmplitudeDamping.compute_kraus_matrices(0.3, 0.6)
      [array([[0.77459667, 0.        ], [0.        , 0.64807407]]),
       array([[0.        , 0.42426407], [0.        , 0.        ]]),
       array([[0.52915026, 0.        ], [0.        , 0.63245553]]),
       array([[0.        , 0.        ], [0.34641016, 0.        ]])]
      """
      if not np.is_abstract(gamma) and not 0.0 <= gamma <= 1.0:
          raise ValueError("gamma must be in the interval [0,1].")
  
      if not np.is_abstract(p) and not 0.0 <= p <= 1.0:
          raise ValueError("p must be in the interval [0,1].")
  
      K0 = np.sqrt(p + np.eps) * np.diag(
          [1, np.sqrt(1 - gamma + np.eps)]
      )
      K1 = (
          np.sqrt(p + np.eps)
          * np.sqrt(gamma)
          * np.convert_like(
              np.cast_like(np.array([[0, 1], [0, 0]]), gamma), gamma
          )
      )
      K2 = np.sqrt(1 - p + np.eps) * np.diag(
          [np.sqrt(1 - gamma + np.eps), 1]
      )
      K3 = (
          np.sqrt(1 - p + np.eps)
          * np.sqrt(gamma)
          * np.convert_like(
              np.cast_like(np.array([[0, 0], [1, 0]]), gamma), gamma
          )
      )
      return [K0, K1, K2, K3]
  
imports: import warnings
  import pennylane.math
  from pennylane.operation import AnyWires, Channel
label_desc: Use image node_id 2 for calling the GeneralizedAmplitudeDamping obj's underlying member method code with example usage: obj.compute_kraus_matrices(gamma, p) and returns: list