Ejemplo n.º 1
0
    # Warning: This is inefficient for large groups!
    paulis = list(map(pc.ensure_pauli, paulis))
    
    return PauliMembershipPredicate(pc.from_generators(paulis), ignore_phase=True)
        
## TEST ##

if __name__ == "__main__":
    p = Predicate(lambda x: x > 0)
    q = Predicate(lambda x: x < 3)
    
    p_and_q = p & q
    p_or_q  = p | q
    not_p   = ~p
    
    for test in [2, 4, -1]:
        print(test, p(test), q(test), p_and_q(test), p_or_q(test), not_p(test))
        
    print(list(filter(p_and_q, list(range(-4,5)))))
    
    S = set([1, 2, 3])
    in_S = SetMembershipPredicate(S)
    
    print(list(map(in_S, list(range(-1, 5)))))
    
    print(list(filter(
        commutes_with('XX', 'ZZ') & ~in_group_generated_by('XX'),
        pc.pauli_group(2)
        )))
    
Ejemplo n.º 2
0
    return PauliMembershipPredicate(pc.from_generators(paulis),
                                    ignore_phase=True)


## TEST ##

if __name__ == "__main__":
    p = Predicate(lambda x: x > 0)
    q = Predicate(lambda x: x < 3)

    p_and_q = p & q
    p_or_q = p | q
    not_p = ~p

    for test in [2, 4, -1]:
        print(test, p(test), q(test), p_and_q(test), p_or_q(test), not_p(test))

    print(list(filter(p_and_q, list(range(-4, 5)))))

    S = set([1, 2, 3])
    in_S = SetMembershipPredicate(S)

    print(list(map(in_S, list(range(-1, 5)))))

    print(
        list(
            filter(
                commutes_with('XX', 'ZZ') & ~in_group_generated_by('XX'),
                pc.pauli_group(2))))
Ejemplo n.º 3
0
    Returns a predicate that selects Pauli operators in the group generated by
    a given list of generators.
    """
    # Warning: This is inefficient for large groups!
    paulis = map(pc.ensure_pauli, paulis)

    return PauliMembershipPredicate(pc.from_generators(paulis), ignore_phase=True)


## TEST ##

if __name__ == "__main__":
    p = Predicate(lambda x: x > 0)
    q = Predicate(lambda x: x < 3)

    p_and_q = p & q
    p_or_q = p | q
    not_p = ~p

    for test in [2, 4, -1]:
        print test, p(test), q(test), p_and_q(test), p_or_q(test), not_p(test)

    print filter(p_and_q, range(-4, 5))

    S = set([1, 2, 3])
    in_S = SetMembershipPredicate(S)

    print map(in_S, range(-1, 5))

    print filter(commutes_with("XX", "ZZ") & ~in_group_generated_by("XX"), pc.pauli_group(2))