qml.operation.gen_is_multi_term_hamiltonian

gen_is_multi_term_hamiltonian = BooleanFn(gen_is_multi_term_hamiltonian)[source]

Returns True if an operator has a generator defined and it is a Hamiltonian with more than one term.

Warning

Deprecated: Use the following code instead:

def gen_is_multi_term_hamiltonian(obj):
    if not isinstance(obj, Operator) or not obj.has_generator:
        return False
    try:
        generator = obj.generator()
        _, ops = generator.terms()
        return len(ops) > 1
    except TermsUndefinedError:
        return False