using QuantumAlgebra
display(scal(3))
display(scal(3//2))
display(scal(3//1))
display(scal(3//3))
display(scal(1//1))
display(scal(1.5*2//3))
display(scal(1.5))
display(param(:g))
display(σx(3))
display(σz(3))
display(σp(1))
display(σz(1)*σy(1))
display(σz(3)*σy(2))
display(a(4)*a(3))
display(a(3)*a(4))
display(a(3)*adag(4)*adag(5)*a(1)*adag(7)*a(2))
display(a(14)*a(12)*a(7))
display(adag(4)*adag(5)*adag(7))
display(a(14)*a(12)*a(7)*adag(4)*a(5)*adag(5)*adag(7))
display(scal(0)*a(2))
display(scal(1)*a(2))
tmp = scal(2)*a(2)
display(tmp)
display(tmp*scal(0))
tmp = tmp*scal(1//2)*scal(3//5)
display(tmp)
display(scal(5//3)*tmp)
display(a(2)*param(:g))
display(a(2)*param(:x,'c'))
display(a(2) + σx(1) + scal(1) + scal(3))
tmp = a(2) + σx(1) + σx(1) + scal(2)
display(tmp)
display(scal(2)*tmp)
display(adjoint(σy(1)))
display(σy(1)')
display(a(5)')
display(adag(3)')
display((adag(1)*a(1))' == adag(1)*a(1))
display(a(1) * (σy(1) * a(1))')
true
OpSumAnalytic(:i, a(:i)*adag(:i))
tmp = OpSumAnalytic(:i,adag(:i)*a(:i))
display(tmp)
display(adag(:n)*tmp)
display(a(:n)*tmp)
display(σz(:n)*tmp)
display(tmp*scal(2))
display(tmp*param(:g,:n))
display(tmp*a(:n))
display(tmp*adag(:n))
display(tmp*(adag(:n)*adag(:n)))
display(tmp*(adag(:n)*a(:n)))
a(1,:i)*a(2,:k)
tmp1 = OpSumAnalytic(:i,σx(:i))*σy(:j)
tmp2 = OpSumAnalytic(:i,σx(:i))*σy(:a)
tmp3 = OpSumAnalytic(:i,σx(:i)*σy(:a))
display(tmp1)
display(tmp2)
display(tmp3)
display(comm(σx(5),σy(3)))
display(comm(σx(5),σx(5)))
display(comm(σx(1),σz(1)))
display(scal(2)*comm(σx(5),σy(5)))
display(comm(σy(5),comm(σx(5),σy(5))))
display(comm(scal(2//5)*param(:h)*σx(5),scal(3)*param(:g)*σy(5)))
display(σx(1)*σy(1))
display(σx(3)*σy(2)*σy(2))
display(σx(5)*σy(5)*σz(5))
display(σx(5)*σy(5)*σx(5))
tmp = param(:g,2)*param(:g,1)*param(:g,'c',3)*param(:b)*param(:a)*param(:d,'c',3)*param(:f,'r',1)
display(tmp)
display(tmp')
σz(1)
a(2)*adag(2)*adag(3)*σy(1)*adag(2)*adag(4)*σz(1)*a(2)*adag(3)
adag(2)*a(2)*adag(2)*σy(1) + scal(2)*param(:g,'c',1)
scal(-1/2) + σp(1) * σm(1)
display(σp(2))
display(σm(2))
display(σp(1)*σm(1))
display(comm(σp(1),σp(1)))
display(comm(σp(1),σm(1)))
display(comm(σm(1),σp(1)))
display(comm(σm(1),σm(1)))
display(comm(σm(1),σp(2)))
comm(σm(1),σz(1))
comm(a(2),adag(1))
display(comm(a(1),adag(1)*a(1)))
display(comm(a(1),adag(1)*a(2)*a(1)))
display(comm(a(1),a(2)*adag(1)*a(1)*adag(2)))
display(σp(1)*σz(1) + σp(1) == scal(0))
true
H = OpSumAnalytic(:i,param(:ω,'r',:i)*adag(:i,:i))
display(H)
a(:k,:k)*H
H = OpSumAnalytic(:i,param(:ω,'r',:i)*adag(:i)*a(:i))
display(H)
a(:k)*H
H = OpSumAnalytic(:i,param(:ω,'r',:i)*adag(:i)*a(:i)) + OpSumAnalytic(:j,scal(1//2)*param(:ωe,'r',:j)*σz(:j)) +
OpSumAnalytic(:i,OpSumAnalytic(:j,param(:g,'r',:i,:j)*(adag(:i)+a(:i))*σx(:j)))
tmp1 = comm(adag(:n)*a(:m),H)
tmp2 = comm(adag(:n)*a(:n),H)
display(tmp1)
display(tmp2)
display(tmp2 - QuantumAlgebra.replace_index(tmp1,:m,:n))
for op in [a(:n),adag(:n),σx(:k),σy(:k),σz(:k)]
display("text/latex",string("\$[",latex(op),",H] = ",latex(comm(op,H)),"\$"))
end
for op in [adag(:n)*σz(:k),a(:n)*σz(:k)]
display("text/latex",string("\$[",latex(op),",H] = ",latex(comm(op,H)),"\$"))
end
Expresses expectation values of operator products in terms of correlators and products of single-operator expectation values
ExpVal(H)
ascorr(H)
display(ascorr(scal(3)))
display(ascorr(a(2)))
display(ascorr(scal(3)*a(2)))
display(ascorr(a(2)*a(2)))
display(ascorr(scal(2)*a(1)*a(2)*a(3)))
display(ascorr(a(1)*a(2)*a(3)*a(4)))
display(ascorr(adag(2)*a(1)*σz(1)))
display(ascorr(param(:g,'r')*adag(3)*a(2)*a(2)))
display(ascorr(scal(-1)*param(:g,'r',1)*σz(1)))
op = adag(:n)*σy(:k)
dop = comm(op,H)
display(ascorr(op))
display(dop)
display(ascorr(dop))
display(vacA(Avac(σp(1)*σm(1))))
display(vacA(Avac(σm(1)*σp(1))))
nphotstate(n,ind) = scal(1/sqrt(factorial(n))) * *((adag(ind) for i=1:n)...)
for i2 = (:n,:m)
stateop = scal(1/√2)*nphotstate(3,:n) + scal(1/√2)*nphotstate(1,i2)
display("text/latex",string("\$|\\psi\\rangle = (",latex(stateop),")|0\\rangle\$"))
for A in [scal(1),adag(:n)*a(:n),adag(:n)*adag(:n)*a(:n)*a(:n)]
display("text/latex",string("\$\\langle\\psi|",latex(A),"|\\psi\\rangle = ",latex(vacExpVal(A,stateop)),"\$"))
end
end