Beispiel #1
0
def pauli_represent_x_y(e):
    """
    Traverse an expression and change all instances of SigmaMinus and SigmaPlus
    to the corresponding expressions using SigmaX and SigmaY.
    """
    # XXX: todo, make sure that new operators inherit labels
    return expression_tree_transform(
        e, [(lambda e: isinstance(e, SigmaMinus),
             lambda e: SigmaX() / 2 - I * SigmaY() / 2),
            (lambda e: isinstance(e, SigmaPlus),
             lambda e: SigmaX() / 2 + I * SigmaY() / 2)])
Beispiel #2
0
    represent,
)
from sympy.physics.quantum.pauli import (
    SigmaOpBase,
    SigmaX,
    SigmaY,
    SigmaZ,
    SigmaMinus,
    SigmaPlus,
    qsimplify_pauli,
)
from sympy.physics.quantum.pauli import SigmaZKet, SigmaZBra
from sympy.testing.pytest import raises


sx, sy, sz = SigmaX(), SigmaY(), SigmaZ()
sx1, sy1, sz1 = SigmaX(1), SigmaY(1), SigmaZ(1)
sx2, sy2, sz2 = SigmaX(2), SigmaY(2), SigmaZ(2)

sm, sp = SigmaMinus(), SigmaPlus()
sm1, sp1 = SigmaMinus(1), SigmaPlus(1)
A, B = Operator("A"), Operator("B")


def test_pauli_operators_types():

    assert isinstance(sx, SigmaOpBase) and isinstance(sx, SigmaX)
    assert isinstance(sy, SigmaOpBase) and isinstance(sy, SigmaY)
    assert isinstance(sz, SigmaOpBase) and isinstance(sz, SigmaZ)
    assert isinstance(sm, SigmaOpBase) and isinstance(sm, SigmaMinus)
    assert isinstance(sp, SigmaOpBase) and isinstance(sp, SigmaPlus)