def METHOD_NAME(tape):
    op_wires = [op.wires for op in tape.operations]
    all_wires = qml.wires.Wires.all_wires(op_wires).tolist()
    unique_wires = qml.wires.Wires.unique_wires(op_wires).tolist()
    if len(all_wires) != len(unique_wires):
        warnings.warn(
            "For multiple operations, the eigenvalues will be computed numerically. "
            "This may be computationally intensive for a large number of wires.",
            UserWarning,
        )
        return qml.math.linalg.eigvals(qml.matrix(tape))
    # TODO: take into account wire ordering, by reordering eigenvalues
    # as per operator wires/wire ordering, and by inserting implicit identity
    # matrices (eigenvalues [1, 1]) at missing locations.
    ev = [eigvals(op) for op in tape.operations]
    if len(ev) == 1:
        return ev[0]
    return reduce(qml.math.kron, ev)