Qapply

Logic for applying operators to states.

Todo: * Sometimes the final result needs to be expanded, we should do this by hand.

sympy.physics.quantum.qapply.qapply(e, **options)[source]

Apply operators to states in a quantum expression.

Parameters:

e : Expr

The expression containing operators and states. This expression tree will be walked to find operators acting on states symbolically.

options : dict

A dict of key/value pairs that determine how the operator actions are carried out.

The following options are valid:

  • dagger: try to apply Dagger operators to the left (default: False).

  • ip_doit: call .doit() in inner products when they are encountered (default: True).

Returns:

e : Expr

The original expression, but with the operators applied to states.

Examples

>>> from sympy.physics.quantum import qapply, Ket, Bra
>>> b = Bra('b')
>>> k = Ket('k')
>>> A = k * b
>>> A
|k><b|
>>> qapply(A * b.dual / (b * b.dual))
|k>
>>> qapply(k.dual * A / (k.dual * k), dagger=True)
<b|
>>> qapply(k.dual * A / (k.dual * k))
<k|*|k><b|/<k|k>