def METHOD_NAME(input_gate, method):
    r""" An input 1-qubit gate is expressed as a product of rotation matrices
    :math:`\textrm{R}_i` and :math:`\textrm{R}_j` or as a product of rotation
    matrices :math:`\textrm{R}_i` and :math:`\textrm{R}_j` and a
    Pauli :math:`\sigma_k`.
    Here, :math:`i \neq j` and :math:`i, j, k \in {x, y, z}`.
    Based on Lemma 4.1 and Lemma 4.3 of
    https://arxiv.org/abs/quant-ph/9503016v1 respectively.
    .. math::
        U = \begin{bmatrix}
            a       & b \\
            -b^*       & a^*  \\
            \end{bmatrix} = \textrm{R}_i(\alpha)  \textrm{R}_j(\theta) \textrm{R}_i(\beta) = \textrm{A} \sigma_k \textrm{B} \sigma_k \textrm{C}
    Here,
    * :math:`\textrm{A} = \textrm{R}_i(\alpha) \textrm{R}_j\left(\frac{\theta}{2} \right)`
    * :math:`\textrm{B} = \textrm{R}_j \left(\frac{-\theta}{2} \right)\textrm{R}_i \left(\frac{- \left(\alpha + \beta \right)}{2} \right)`
    * :math:`\textrm{C} = \textrm{R}_i \left(\frac{\left(-\alpha + \beta\right)}{2} \right)`
    Parameters
    ----------
    input_gate : :class:`qutip.Qobj`
        The matrix to be decomposed.
    method : string
        Name of the preferred decomposition method
        .. list-table::
            :widths: auto
            :header-rows: 1
            * - Method Key
              - Method
            * - ZYZ
              - :math:`\textrm{R}_z(\alpha)  \textrm{R}_y(\theta) \textrm{R}_z(\beta)`
            * - ZXZ
              - :math:`\textrm{R}_z(\alpha)  \textrm{R}_x(\theta) \textrm{R}_z(\beta)`
            * - ZYZ_PauliX
              - :math:`\textrm{A} \sigma_k \textrm{B} \sigma_k \textrm{C}` :math:`\forall k =x, i =z, j=y`
        .. note::
            This function is under construction. As more combinations are
            added, above table will be updated with their respective keys.
    Returns
    -------
    tuple
        The gates in the decomposition are returned as a tuple of :class:`Gate`
        objects.
        When the input gate is decomposed to product of rotation matrices -
        tuple will contain 4 elements per each :math:`1 \times 1`
        qubit gate - :math:`\textrm{R}_i(\alpha)`, :math:`\textrm{R}_j(\theta)`
        , :math:`\textrm{R}_i(\beta)`, and some global phase gate.
        When the input gate is decomposed to product of rotation matrices and
        Pauli - tuple will contain 6 elements per each :math:`1 \times 1`
        qubit gate - 2 gates forming :math:`\textrm{A}`, 2 gates forming
        :math:`\textrm{B}`, 1 gates forming :math:`\textrm{C}`, and some global
        phase gate.
    """
    check_gate(input_gate, num_qubits=1)
    f = _single_decompositions_dictionary.get(method, None)
    if f is None:
        raise MethodError(f"Invalid decomposition method: {method!r}")
    return f(input_gate)