13
13
from sympy.physics.quantum.density import Density
14
14
from sympy.physics.quantum.qubit import Qubit
15
15
from sympy.physics.quantum.gate import UGate
16
from sympy.physics.quantum.boson import BosonOp, BosonFockKet, BosonFockBra
17
from sympy.physics.quantum.tensorproduct import TensorProduct
17
20
j, jp, m, mp = symbols("j j' m m'")
81
84
assert qapply(e).doit() == -hbar**2*mo
87
def test_tensorproduct():
90
ket1 = TensorProduct(BosonFockKet(1), BosonFockKet(2))
91
ket2 = TensorProduct(BosonFockKet(0), BosonFockKet(0))
92
ket3 = TensorProduct(BosonFockKet(0), BosonFockKet(2))
93
bra1 = TensorProduct(BosonFockBra(0), BosonFockBra(0))
94
bra2 = TensorProduct(BosonFockBra(1), BosonFockBra(2))
95
assert qapply(TensorProduct(a, b ** 2) * ket1) == sqrt(2) * ket2
96
assert qapply(TensorProduct(a, Dagger(b) * b) * ket1) == 2 * ket3
97
assert qapply(bra1 * TensorProduct(a, b * b),
98
dagger=True) == sqrt(2) * bra2
99
assert qapply(bra2 * ket1).doit() == TensorProduct(1, 1)
100
assert qapply(TensorProduct(a, b * b) * ket1) == sqrt(2) * ket2
101
assert qapply(Dagger(TensorProduct(a, b * b) * ket1),
102
dagger=True) == sqrt(2) * Dagger(ket2)
84
105
def test_dagger():
85
106
lhs = Dagger(Qubit(0))*Dagger(H(0))
86
107
rhs = Dagger(Qubit(1))/sqrt(2) + Dagger(Qubit(0))/sqrt(2)
87
108
assert qapply(lhs, dagger=True) == rhs
111
def test_issue_6073():
91
112
x, y = symbols('x y', commutative=False)