def METHOD_NAME(basis_state, wires):  # pylint: disable=arguments-differ
    r"""Representation of the operator as a product of other operators.
    .. math:: O = O_1 O_2 \dots O_n.
    .. seealso:: :meth:`~.BasisStatePreparation.decomposition`.
    Args:
        basis_state (array): Input array of shape ``(len(wires),)``
        wires (Any or Iterable[Any]): wires that the operator acts on
    Returns:
        list[.Operator]: decomposition of the operator
    **Example**
    >>> qml.BasisStatePreparation.compute_decomposition(basis_state=[1, 1], wires=["a", "b"])
    [PauliX(wires=['a']),
    PauliX(wires=['b'])]
    """
    if not qml.math.is_abstract(basis_state):
        op_list = []
        for wire, state in zip(wires, basis_state):
            if state == 1:
                op_list.append(qml.PauliX(wire))
        return op_list
    op_list = []
    for wire, state in zip(wires, basis_state):
        op_list.append(qml.PhaseShift(state * np.pi / 2, wire))
        op_list.append(qml.RX(state * np.pi, wire))
        op_list.append(qml.PhaseShift(state * np.pi / 2, wire))
    return op_list