ó
¡¼™\c           @   sm  d  Z  d d l m Z d d l m Z m Z m Z m Z d d l m	 Z	 d d l
 m Z d d l m Z d d l m Z m Z m Z m Z m Z d d l m Z m Z m Z m Z d d	 l m Z d d
 l m Z m Z m Z d d l m  Z  d d l! m" Z" m# Z# d d l$ m% Z% m& Z& m' Z' m( Z( m) Z) m* Z* m+ Z+ m, Z, d d l- m. Z. m/ Z/ m0 Z0 m1 Z1 d d l2 m3 Z3 d d l4 m5 Z5 d d l6 m7 Z7 m8 Z8 m9 Z9 m: Z: m; Z; m< Z< m= Z= m> Z> m? Z? d d l@ mA ZA d d lB mC ZC d d l
 mD ZD d d l mE ZE mF ZF mG ZG d d l$ mH ZH mI ZI d d l6 mJ ZJ mK ZK mL ZL mM ZM mN ZN mO ZO mP ZP d d lQ mR ZR d d lS mT ZU d d lV mW ZW d d l@ mX ZY e: ZZ i  Z[ eA d e[ ƒ d „  Z\ d „  ZT d „  Z] d  „  Z^ d! „  Z_ d" „  Z` d# „  Za d$ „  Zb eC d% „  ƒ Zc d& „  Zd d' „  Ze d( „  Zf d) „  Zg d* „  Zh d+ „  Zi d, „  Zj d- „  Zk d. „  Zl d/ „  Zm d0 „  Zn d1 S(2   s5   
TODO:
* Address Issue 2251, printing of spin states
iÿÿÿÿ(   t   AntiCommutator(   t   CGt   Wigner3jt   Wigner6jt   Wigner9j(   t
   Commutator(   t   hbar(   t   Dagger(   t   CGatet   CNotGatet   IdentityGatet   UGatet   XGate(   t   ComplexSpacet	   FockSpacet   HilbertSpacet   L2(   t   InnerProduct(   t   Operatort   OuterProductt   DifferentialOperator(   t   QExpr(   t   Qubitt   IntQubit(   t   Jzt   J2t   JzBrat   JzBraCoupledt   JzKett   JzKetCoupledt   Rotationt   WignerD(   t   Brat   Kett
   TimeDepBrat
   TimeDepKet(   t   TensorProduct(   t	   RaisingOp(	   t
   Derivativet   Functiont   Intervalt   Matrixt   Powt   St   symbolst   Symbolt   oo(   t   exec_(   t   XFAIL(   t   HBar(   t   DirectSumHilbertSpacet   TensorProductHilbertSpacet   TensorPowerHilbertSpace(   t   JzOpt   J2Op(   t   Addt   Integert   Mult   Rationalt   Tuplet   truet   false(   t   srepr(   t   pretty(   t   latex(   t   u_decodes   from sympy import *c         C   s4   t  |  ƒ | k s t ‚ t | ƒ |  k s0 t ‚ d S(   sD   
    sT := sreprTest
    from sympy/printing/tests/test_repr.py
    N(   R>   t   AssertionErrort   eval(   t   exprt   string(    (    sH   lib/python2.7/site-packages/sympy/physics/quantum/tests/test_printing.pyt   sT,   s    c         C   s   t  |  d t d t ƒS(   s   ASCII pretty-printingt   use_unicodet	   wrap_line(   t   xprettyt   False(   RD   (    (    sH   lib/python2.7/site-packages/sympy/physics/quantum/tests/test_printing.pyR?   5   s    c         C   s   t  |  d t d t ƒS(   s   Unicode pretty-printingRG   RH   (   RI   t   TrueRJ   (   RD   (    (    sH   lib/python2.7/site-packages/sympy/physics/quantum/tests/test_printing.pyt   upretty:   s    c          C   s*  t  d ƒ }  t  d ƒ } t |  | ƒ } t |  d | ƒ } t | ƒ d k sR t ‚ t | ƒ d k sj t ‚ t | ƒ d k s‚ t ‚ t | ƒ d k sš t ‚ t | d ƒ t | ƒ d k s¿ t ‚ d	 } t d
 ƒ } t | ƒ | k sé t ‚ t | ƒ | k st ‚ t | ƒ d k st ‚ t | d ƒ d  S(   Nt   At   Bi   s   {A,B}u   {A,B}s   \left\{A,B\right\}s;   AntiCommutator(Operator(Symbol('A')),Operator(Symbol('B')))s   {A**2,B}s   / 2  \
<A ,B>
\    /s    âŽ§ 2  âŽ«
âŽ¨A ,BâŽ¬
âŽ©    âŽ­s   \left\{A^{2},B\right\}sL   AntiCommutator(Pow(Operator(Symbol('A')), Integer(2)),Operator(Symbol('B')))(	   R   R    t   strRB   R?   RL   R@   RF   t   u(   RM   RN   t   act   ac_tallt	   ascii_strt	   ucode_str(    (    sH   lib/python2.7/site-packages/sympy/physics/quantum/tests/test_printing.pyt   test_anticommutator?   s"    	c       
   C   su  t  d d d d d d ƒ }  t d d d d d d ƒ } t d d d d d d ƒ } t d d d d d d d d d	 ƒ	 } t |  ƒ d
 k s t ‚ d } t d ƒ } t |  ƒ | k s· t ‚ t |  ƒ | k sÏ t ‚ t	 |  ƒ d k sç t ‚ t
 |  d ƒ t | ƒ d k st ‚ d } t d ƒ } t | ƒ | k s6t ‚ t | ƒ | k sNt ‚ t	 | ƒ d k sft ‚ t
 | d ƒ t | ƒ d k s‹t ‚ d } t d ƒ } t | ƒ | k sµt ‚ t | ƒ | k sÍt ‚ t	 | ƒ d k såt ‚ t
 | d ƒ t | ƒ d k s
t ‚ d } t d ƒ } t | ƒ | k s4t ‚ t | ƒ | k sLt ‚ t	 | ƒ d k sdt ‚ t
 | d ƒ d  S(   Ni   i   i   i   i   i   i   i   i	   s   CG(1, 2, 3, 4, 5, 6)s    5,6    
C       
 1,2,3,4s   C^{5,6}_{1,2,3,4}sJ   CG(Integer(1), Integer(2), Integer(3), Integer(4), Integer(5), Integer(6))s   Wigner3j(1, 2, 3, 4, 5, 6)s   /1  3  5\
|       |
\2  4  6/s)   âŽ›1  3  5âŽž
âŽœ       âŽŸ
âŽ2  4  6âŽ sB   \left(\begin{array}{ccc} 1 & 3 & 5 \\ 2 & 4 & 6 \end{array}\right)sP   Wigner3j(Integer(1), Integer(2), Integer(3), Integer(4), Integer(5), Integer(6))s   Wigner6j(1, 2, 3, 4, 5, 6)s   /1  2  3\
<       >
\4  5  6/s)   âŽ§1  2  3âŽ«
âŽ¨       âŽ¬
âŽ©4  5  6âŽ­sD   \left\{\begin{array}{ccc} 1 & 2 & 3 \\ 4 & 5 & 6 \end{array}\right\}sP   Wigner6j(Integer(1), Integer(2), Integer(3), Integer(4), Integer(5), Integer(6))s#   Wigner9j(1, 2, 3, 4, 5, 6, 7, 8, 9)s1   /1  2  3\
|       |
<4  5  6>
|       |
\7  8  9/sE   âŽ§1  2  3âŽ«
âŽª       âŽª
âŽ¨4  5  6âŽ¬
âŽª       âŽª
âŽ©7  8  9âŽ­sQ   \left\{\begin{array}{ccc} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{array}\right\}st   Wigner9j(Integer(1), Integer(2), Integer(3), Integer(4), Integer(5), Integer(6), Integer(7), Integer(8), Integer(9))(   R   R   R   R   RO   RB   RP   R?   RL   R@   RF   (   t   cgt   wigner3jt   wigner6jt   wigner9jRS   RT   (    (    sH   lib/python2.7/site-packages/sympy/physics/quantum/tests/test_printing.pyt   test_cg\   sN    $							c          C   s*  t  d ƒ }  t  d ƒ } t |  | ƒ } t |  d | ƒ } t | ƒ d k sR t ‚ t | ƒ d k sj t ‚ t | ƒ d k s‚ t ‚ t | ƒ d k sš t ‚ t | d ƒ t | ƒ d k s¿ t ‚ d	 } t d
 ƒ } t | ƒ | k sé t ‚ t | ƒ | k st ‚ t | ƒ d k st ‚ t | d ƒ d  S(   NRM   RN   i   s   [A,B]u   [A,B]s   \left[A,B\right]s7   Commutator(Operator(Symbol('A')),Operator(Symbol('B')))s   [A**2,B]s   [ 2  ]
[A ,B]s   âŽ¡ 2  âŽ¤
âŽ£A ,BâŽ¦s   \left[A^{2},B\right]sH   Commutator(Pow(Operator(Symbol('A')), Integer(2)),Operator(Symbol('B')))(	   R   R   RO   RB   R?   RL   R@   RF   RP   (   RM   RN   t   ct   c_tallRS   RT   (    (    sH   lib/python2.7/site-packages/sympy/physics/quantum/tests/test_printing.pyt   test_commutator®   s"    	c           C   sq   t  t ƒ d k s t ‚ t t ƒ d k s0 t ‚ t t ƒ d k sH t ‚ t t ƒ d k s` t ‚ t t d ƒ d  S(   NR   u   â„s   \hbars   HBar()(   RO   R   RB   R?   RL   R@   RF   (    (    (    sH   lib/python2.7/site-packages/sympy/physics/quantum/tests/test_printing.pyt   test_constantsÉ   s
    c          C   s›   t  d ƒ }  t |  ƒ } t | ƒ d k s0 t ‚ d } t d ƒ } t | ƒ | k sZ t ‚ t | ƒ | k sr t ‚ t | ƒ d k sŠ t ‚ t | d ƒ d  S(   Nt   xs	   Dagger(x)s    +
x s    â€ 
x s   x^{\dagger}s   Dagger(Symbol('x'))(	   R,   R   RO   RB   RP   R?   RL   R@   RF   (   R_   RD   RS   RT   (    (    sH   lib/python2.7/site-packages/sympy/physics/quantum/tests/test_printing.pyt   test_daggerÑ   s    	c          C   sa   t  d ƒ \ }  } } } t |  | g | | g g ƒ } t d | ƒ } t | ƒ d k s] t ‚ d  S(   Ns   a,b,c,di    s   U(0)(   i    (   R,   R)   R   RO   RB   (   t   at   bR[   t   dt   uMatt   g(    (    sH   lib/python2.7/site-packages/sympy/physics/quantum/tests/test_printing.pyt   test_gate_failingå   s    c          C   s  t  d ƒ \ }  } } } t |  | g | | g g ƒ } t d d d d d ƒ } t d ƒ } t d t d ƒ ƒ } t d d ƒ } t d | ƒ }	 t | ƒ d k s¥ t	 ‚ t
 | ƒ d k s½ t	 ‚ t | ƒ d k sÕ t	 ‚ t | ƒ d	 k sí t	 ‚ t | d
 ƒ t | | ƒ d k st	 ‚ d }
 t d ƒ } t
 | | ƒ |
 k sDt	 ‚ t | | ƒ | k s`t	 ‚ t | | ƒ d k s|t	 ‚ t | | d ƒ t | ƒ d k s¥t	 ‚ d }
 t d ƒ } t
 | ƒ |
 k sÏt	 ‚ t | ƒ | k sçt	 ‚ t | ƒ d k sÿt	 ‚ t | d ƒ t | ƒ d k s$t	 ‚ d }
 t d ƒ } t
 | ƒ |
 k sNt	 ‚ t | ƒ | k sft	 ‚ t | ƒ d k s~t	 ‚ t | d ƒ d }
 t d ƒ } t |	 ƒ d k sµt	 ‚ t
 |	 ƒ |
 k sÍt	 ‚ t |	 ƒ | k såt	 ‚ t |	 ƒ d k sýt	 ‚ t |	 d ƒ d  S(   Ns   a,b,c,di   i    i   i   s   1(2)s   1 
 2u   1 
 2s   1_{2}s   IdentityGate(Integer(2))s   1(2)*|10101>s   1 *|10101>
 2        s   1 â‹…â˜10101âŸ©
 2        s!   1_{2} {\left|10101\right\rangle }s\   Mul(IdentityGate(Integer(2)), Qubit(Integer(1),Integer(0),Integer(1),Integer(0),Integer(1)))s   C((3,0),X(1))s   C   /X \
 3,0\ 1/s   C   âŽ›X âŽž
 3,0âŽ 1âŽ s   C_{3,0}{\left(X_{1}\right)}s6   CGate(Tuple(Integer(3), Integer(0)),XGate(Integer(1)))s	   CNOT(1,0)s   CNOT   
    1,0s
   CNOT_{1,0}s   CNotGate(Integer(1),Integer(0))s   U 
 0s!   U((0,),Matrix([
[a, b],
[c, d]]))s   U_{0}se   UGate(Tuple(Integer(0)),MutableDenseMatrix([[Symbol('a'), Symbol('b')], [Symbol('c'), Symbol('d')]]))(   i   i    (   i    (   R,   R)   R   R
   R   R   R	   R   RO   RB   R?   RL   R@   RF   RP   (   Ra   Rb   R[   Rc   Rd   t   qt   g1t   g2t   g3t   g4RS   RT   (    (    sH   lib/python2.7/site-packages/sympy/physics/quantum/tests/test_printing.pyt	   test_gateí   sZ    					c          C   s¼  t  ƒ  }  t d ƒ } t ƒ  } t t d t ƒ ƒ } t |  ƒ d k sK t ‚ t |  ƒ d k sc t ‚ t	 |  ƒ d k s{ t ‚ t
 |  ƒ d k s“ t ‚ t |  d ƒ t | ƒ d k s¸ t ‚ d } t d ƒ } t | ƒ | k sâ t ‚ t	 | ƒ | k sú t ‚ t
 | ƒ d	 k st ‚ t | d
 ƒ t | ƒ d k s7t ‚ t | ƒ d k sOt ‚ t	 | ƒ d k sgt ‚ t
 | ƒ d k st ‚ t | d ƒ t | ƒ d k s¤t ‚ d } t d ƒ } t | ƒ | k sÎt ‚ t	 | ƒ | k sæt ‚ t
 | ƒ d k sþt ‚ t | d ƒ t |  | ƒ d k s't ‚ d } t d ƒ } t |  | ƒ | k sUt ‚ t	 |  | ƒ | k sqt ‚ t
 |  | ƒ s‡t ‚ t |  | d ƒ t |  | ƒ d k s´t ‚ d } t d ƒ } t |  | ƒ | k sât ‚ t	 |  | ƒ | k sþt ‚ t
 |  | ƒ st ‚ t |  | d ƒ t |  d ƒ d k sAt ‚ d } t d ƒ } t |  d ƒ | k sot ‚ t	 |  d ƒ | k s‹t ‚ t
 |  d ƒ d k s§t ‚ t |  d d ƒ d  S(    Ni   i    t   Hu   Hs   \mathcal{H}s   HilbertSpace()s   C(2)s    2
C s   \mathcal{C}^{2}s   ComplexSpace(Integer(2))t   Fu   Fs   \mathcal{F}s   FockSpace()s   L2(Interval(0, oo))s    2
L s4   {\mathcal{L}^2}\left( \left[0, \infty\right) \right)s)   L2(Interval(Integer(0), oo, false, true))s   H+C(2)s        2
H + C s        2
H âŠ• C s>   DirectSumHilbertSpace(HilbertSpace(),ComplexSpace(Integer(2)))s   H*C(2)s        2
H x C s        2
H â¨‚ C sB   TensorProductHilbertSpace(HilbertSpace(),ComplexSpace(Integer(2)))s   H**2s    x2
H  s	    â¨‚2
H  s   {\mathcal{H}}^{\otimes 2}s2   TensorPowerHilbertSpace(HilbertSpace(),Integer(2))(   R   R   R   R   R(   R.   RO   RB   R?   RL   R@   RF   RP   (   t   h1t   h2t   h3t   h4RS   RT   (    (    sH   lib/python2.7/site-packages/sympy/physics/quantum/tests/test_printing.pyt   test_hilbert=  sn    						
	c    
      C   s  t  d ƒ }  t t ƒ  t ƒ  ƒ } t t ƒ  t ƒ  ƒ } t t d d ƒ t d d ƒ ƒ } t t d d d# ƒ t	 d d d$ ƒ ƒ } t t |  d ƒ t |  d ƒ ƒ } t t |  ƒ t |  d ƒ ƒ } t t |  d ƒ t |  ƒ ƒ } t
 | ƒ d k s÷ t ‚ t | ƒ d k st ‚ t | ƒ d k s't ‚ t | ƒ d k s?t ‚ t | d ƒ t
 | ƒ d k sdt ‚ t | ƒ d k s|t ‚ t | ƒ d	 k s”t ‚ t | ƒ d
 k s¬t ‚ t | d ƒ t
 | ƒ d k sÑt ‚ t | ƒ d k sét ‚ t | ƒ d k st ‚ t | ƒ d k st ‚ t | d ƒ t
 | ƒ d k s>t ‚ t | ƒ d k sVt ‚ t | ƒ d k snt ‚ t | ƒ d k s†t ‚ t | d ƒ t
 | ƒ d k s«t ‚ d } t d ƒ }	 t | ƒ | k sÕt ‚ t | ƒ |	 k sít ‚ t | ƒ d k st ‚ t | d ƒ t
 | ƒ d k s*t ‚ d } t d ƒ }	 t | ƒ | k sTt ‚ t | ƒ |	 k slt ‚ t | ƒ d k s„t ‚ t | d ƒ t
 | ƒ d k s©t ‚ d } t d  ƒ }	 t | ƒ | k sÓt ‚ t | ƒ |	 k sët ‚ t | ƒ d! k st ‚ t | d" ƒ d  S(%   NR_   i   i   s	   <psi|psi>u   âŸ¨Ïˆâ˜ÏˆâŸ©s4   \left\langle \psi \right. {\left|\psi\right\rangle }s3   InnerProduct(Bra(Symbol('psi')),Ket(Symbol('psi')))s   <psi;t|psi;t>u   âŸ¨Ïˆ;tâ˜Ïˆ;tâŸ©s8   \left\langle \psi;t \right. {\left|\psi;t\right\rangle }sY   InnerProduct(TimeDepBra(Symbol('psi'),Symbol('t')),TimeDepKet(Symbol('psi'),Symbol('t')))s	   <1,1|1,1>u   âŸ¨1,1â˜1,1âŸ©s2   \left\langle 1,1 \right. {\left|1,1\right\rangle }sG   InnerProduct(JzBra(Integer(1),Integer(1)),JzKet(Integer(1),Integer(1)))s   <1,1,j1=1,j2=1|1,1,j1=1,j2=1>u+   âŸ¨1,1,jâ‚=1,jâ‚‚=1â˜1,1,jâ‚=1,jâ‚‚=1âŸ©sR   \left\langle 1,1,j_{1}=1,j_{2}=1 \right. {\left|1,1,j_{1}=1,j_{2}=1\right\rangle }só   InnerProduct(JzBraCoupled(Integer(1),Integer(1),Tuple(Integer(1), Integer(1)),Tuple(Tuple(Integer(1), Integer(2), Integer(1)))),JzKetCoupled(Integer(1),Integer(1),Tuple(Integer(1), Integer(1)),Tuple(Tuple(Integer(1), Integer(2), Integer(1)))))s	   <x/2|x/2>s    / | \ 
/ x|x \
\ -|- /
 \2|2/ s;    â•± â”‚ â•² 
â•± xâ”‚x â•²
â•² â”€â”‚â”€ â•±
 â•²2â”‚2â•± sB   \left\langle \frac{x}{2} \right. {\left|\frac{x}{2}\right\rangle }sY   InnerProduct(Bra(Mul(Rational(1, 2), Symbol('x'))),Ket(Mul(Rational(1, 2), Symbol('x'))))s   <x|x/2>s    / | \ 
/  |x \
\ x|- /
 \ |2/ s9    â•± â”‚ â•² 
â•±  â”‚x â•²
â•² xâ”‚â”€ â•±
 â•² â”‚2â•± s8   \left\langle x \right. {\left|\frac{x}{2}\right\rangle }sD   InnerProduct(Bra(Symbol('x')),Ket(Mul(Rational(1, 2), Symbol('x'))))s   <x/2|x>s    / | \ 
/ x|  \
\ -|x /
 \2| / s9    â•± â”‚ â•² 
â•± xâ”‚  â•²
â•² â”€â”‚x â•±
 â•²2â”‚ â•± s8   \left\langle \frac{x}{2} \right. {\left|x\right\rangle }sD   InnerProduct(Bra(Mul(Rational(1, 2), Symbol('x'))),Ket(Symbol('x')))(   i   i   (   i   i   (   R,   R   R    R!   R"   R#   R   R   R   R   RO   RB   R?   RL   R@   RF   RP   (
   R_   t   ip1t   ip2t   ip3t   ip4t   ip_tall1t   ip_tall2t   ip_tall3RS   RT   (    (    sH   lib/python2.7/site-packages/sympy/physics/quantum/tests/test_printing.pyt   test_innerproductš  sx    !'#								c    	      C   sÔ  t  d ƒ }  t  d t d ƒ t d ƒ d ƒ } |  j ƒ  } t d ƒ } t d ƒ } t t | | ƒ | ƒ | | ƒ ƒ } t t	 ƒ  t
 ƒ  ƒ } t |  ƒ d k s£ t ‚ t |  ƒ d k s» t ‚ t |  ƒ d k sÓ t ‚ t |  ƒ d k së t ‚ t |  d	 ƒ t | ƒ d
 k st ‚ d } t d ƒ } t | ƒ | k s:t ‚ t | ƒ | k sRt ‚ t | ƒ d k sjt ‚ t | d ƒ t | ƒ d k st ‚ d } t d ƒ } t | ƒ | k s¹t ‚ t | ƒ | k sÑt ‚ t | ƒ d k sét ‚ t | d ƒ t | ƒ d k st ‚ t | ƒ d k s&t ‚ t | ƒ d k s>t ‚ t | ƒ d k sVt ‚ t | d ƒ t | ƒ d k s{t ‚ t | ƒ d k s“t ‚ t | ƒ d k s«t ‚ t | ƒ d k sÃt ‚ t | d ƒ d  S(   NRM   RN   t   ti   i   t   fR_   u   As   Operator(Symbol('A'))s   A**(-1)s    -1
A  s   A^{-1}s'   Pow(Operator(Symbol('A')), Integer(-1))s.   DifferentialOperator(Derivative(f(x), x),f(x))sk                       /d            \
DifferentialOperator|--(f(x)),f(x)|
                    \dx           /s{                       âŽ›d            âŽž
DifferentialOperatorâŽœâ”€â”€(f(x)),f(x)âŽŸ
                    âŽdx           âŽ sT   DifferentialOperator\left(\frac{d}{d x} f{\left(x \right)},f{\left(x \right)}\right)sw   DifferentialOperator(Derivative(Function('f')(Symbol('x')), Tuple(Symbol('x'), Integer(1))),Function('f')(Symbol('x')))s   Operator(B,t,1/2)u   Operator(B,t,1/2)s$   Operator\left(B,t,\frac{1}{2}\right)s0   Operator(Symbol('B'),Symbol('t'),Rational(1, 2))s
   |psi><psi|u   â˜ÏˆâŸ©âŸ¨Ïˆâ˜s4   {\left|\psi\right\rangle }{\left\langle \psi\right|}s3   OuterProduct(Ket(Symbol('psi')),Bra(Symbol('psi')))(   R   R-   R+   t   invR'   R,   R   R&   R   R!   R    RO   RB   R?   RL   R@   RF   RP   (	   Ra   Rb   R~   R}   R_   Rc   t   opRS   RT   (    (    sH   lib/python2.7/site-packages/sympy/physics/quantum/tests/test_printing.pyt   test_operatorú  sN    "$			c          C   s}   t  d ƒ }  t |  ƒ d k s$ t ‚ t |  ƒ d k s< t ‚ t |  ƒ d k sT t ‚ t |  ƒ d k sl t ‚ t |  d ƒ d  S(   NRg   u   qs   QExpr(Symbol('q'))(   R   RO   RB   R?   RL   R@   RF   (   Rg   (    (    sH   lib/python2.7/site-packages/sympy/physics/quantum/tests/test_printing.pyt
   test_qexpr4  s    c          C   sö   t  d ƒ }  t d ƒ } t |  ƒ d k s0 t ‚ t |  ƒ d k sH t ‚ t |  ƒ d k s` t ‚ t |  ƒ d k sx t ‚ t |  d ƒ t | ƒ d k s t ‚ t | ƒ d k sµ t ‚ t | ƒ d k sÍ t ‚ t | ƒ d	 k så t ‚ t | d
 ƒ d  S(   Nt   0101i   s   |0101>u
   â˜0101âŸ©s   {\left|0101\right\rangle }s2   Qubit(Integer(0),Integer(1),Integer(0),Integer(1))s   |8>u   â˜8âŸ©s   {\left|8\right\rangle }s   IntQubit(8)(   R   R   RO   RB   R?   RL   R@   RF   (   t   q1t   q2(    (    sH   lib/python2.7/site-packages/sympy/physics/quantum/tests/test_printing.pyt
   test_qubit=  s    c          C   s4  t  d ƒ }  t d d ƒ } t d d ƒ } t d d d< ƒ } t d d d= ƒ } t d d d> ƒ } t d d d? ƒ } t d d d ƒ } t d d d d d d ƒ } t d d d d d d ƒ }	 t |  ƒ d	 k sÒ t ‚ d
 }
 t	 d
 ƒ } t
 |  ƒ |
 k sü t ‚ t |  ƒ | k st ‚ t |  ƒ d k s,t ‚ t |  d ƒ t t ƒ d k sQt ‚ d }
 t	 d ƒ } t
 t ƒ |
 k s{t ‚ t t ƒ | k s“t ‚ t t ƒ d k s«t ‚ t t d ƒ t t ƒ d k sÐt ‚ d }
 t	 d ƒ } t
 t ƒ |
 k sút ‚ t t ƒ | k st ‚ t t ƒ d k s*t ‚ t t d ƒ t | ƒ d k sOt ‚ t
 | ƒ d k sgt ‚ t | ƒ d k st ‚ t | ƒ d k s—t ‚ t | d ƒ t | ƒ d k s¼t ‚ t
 | ƒ d k sÔt ‚ t | ƒ d k sìt ‚ t | ƒ d k st ‚ t | d ƒ t | ƒ d k s)t ‚ t
 | ƒ d k sAt ‚ t | ƒ d k sYt ‚ t | ƒ d k sqt ‚ t | d  ƒ t | ƒ d! k s–t ‚ t
 | ƒ d! k s®t ‚ t | ƒ d" k sÆt ‚ t | ƒ d# k sÞt ‚ t | d$ ƒ t | ƒ d% k st ‚ t
 | ƒ d& k st ‚ t | ƒ d' k s3t ‚ t | ƒ d( k sKt ‚ t | d) ƒ t | ƒ d* k spt ‚ t
 | ƒ d+ k sˆt ‚ t | ƒ d, k s t ‚ t | ƒ d- k s¸t ‚ t | d. ƒ t | ƒ d/ k sÝt ‚ t
 | ƒ d0 k sõt ‚ t | ƒ d1 k st ‚ t | ƒ d2 k s%t ‚ t | d3 ƒ t | ƒ d4 k sJt ‚ d5 }
 t	 d5 ƒ } t
 | ƒ |
 k stt ‚ t | ƒ | k sŒt ‚ t | ƒ d6 k s¤t ‚ t | d7 ƒ t |	 ƒ d8 k sÉt ‚ d9 }
 t	 d9 ƒ } t
 |	 ƒ |
 k sót ‚ t |	 ƒ | k st ‚ t |	 ƒ d: k s#t ‚ t |	 d; ƒ d  S(@   Nt   Li   i    i   i   i   i   i   t   Lzs   L 
 zt   L_zs   JzOp(Symbol('L'))R   s    2
J s   J^2s   J2Op(Symbol('J'))R   s   J 
 zt   J_zs   JzOp(Symbol('J'))s   |1,0>u	   â˜1,0âŸ©s   {\left|1,0\right\rangle }s   JzKet(Integer(1),Integer(0))s   <1,0|u	   âŸ¨1,0â˜s   {\left\langle 1,0\right|}s   JzBra(Integer(1),Integer(0))s   |1,0,j1=1,j2=2>u   â˜1,0,jâ‚=1,jâ‚‚=2âŸ©s)   {\left|1,0,j_{1}=1,j_{2}=2\right\rangle }sr   JzKetCoupled(Integer(1),Integer(0),Tuple(Integer(1), Integer(2)),Tuple(Tuple(Integer(1), Integer(2), Integer(1))))s   <1,0,j1=1,j2=2|u   âŸ¨1,0,jâ‚=1,jâ‚‚=2â˜s)   {\left\langle 1,0,j_{1}=1,j_{2}=2\right|}sr   JzBraCoupled(Integer(1),Integer(0),Tuple(Integer(1), Integer(2)),Tuple(Tuple(Integer(1), Integer(2), Integer(1))))s   |1,0,j1=1,j2=2,j3=3,j(1,2)=3>s   |1,0,j1=1,j2=2,j3=3,j1,2=3>u)   â˜1,0,jâ‚=1,jâ‚‚=2,jâ‚ƒ=3,jâ‚,â‚‚=3âŸ©s;   {\left|1,0,j_{1}=1,j_{2}=2,j_{3}=3,j_{1,2}=3\right\rangle }s©   JzKetCoupled(Integer(1),Integer(0),Tuple(Integer(1), Integer(2), Integer(3)),Tuple(Tuple(Integer(1), Integer(2), Integer(3)), Tuple(Integer(1), Integer(3), Integer(1))))s   <1,0,j1=1,j2=2,j3=3,j(1,2)=3|u   <1,0,j1=1,j2=2,j3=3,j1,2=3|u)   âŸ¨1,0,jâ‚=1,jâ‚‚=2,jâ‚ƒ=3,jâ‚,â‚‚=3â˜s;   {\left\langle 1,0,j_{1}=1,j_{2}=2,j_{3}=3,j_{1,2}=3\right|}s©   JzBraCoupled(Integer(1),Integer(0),Tuple(Integer(1), Integer(2), Integer(3)),Tuple(Tuple(Integer(1), Integer(2), Integer(3)), Tuple(Integer(1), Integer(3), Integer(1))))s   R(1,2,3)s	   R (1,2,3)u   â„› (1,2,3)s   \mathcal{R}\left(1,2,3\right)s*   Rotation(Integer(1),Integer(2),Integer(3))s   WignerD(1, 2, 3, 4, 5, 6)s#    1         
D   (4,5,6)
 2,3       s   D^{1}_{2,3}\left(4,5,6\right)sO   WignerD(Integer(1), Integer(2), Integer(3), Integer(4), Integer(5), Integer(6))s   WignerD(1, 2, 3, 0, 4, 0)s    1     
d   (4)
 2,3   s   d^{1}_{2,3}\left(4\right)sO   WignerD(Integer(1), Integer(2), Integer(3), Integer(0), Integer(4), Integer(0))(   i   i   (   i   i   (   i   i   i   (   i   i   i   (   R5   R   R   R   R   R   R   RO   RB   RP   R?   RL   R@   RF   R   R   (   t   lzt   kett   brat   ckett   cbrat   cket_bigt   cbra_bigt   rott   bigdt   smalldRS   RT   (    (    sH   lib/python2.7/site-packages/sympy/physics/quantum/tests/test_printing.pyt	   test_spinL  s®    							c    	      C   s  t  d ƒ }  t ƒ  } t ƒ  } t |  d ƒ } t |  d ƒ } t ƒ  } t ƒ  } t | ƒ d k sh t ‚ t | ƒ d k s€ t ‚ t | ƒ d k s˜ t ‚ t	 | ƒ d k s° t ‚ t
 | d ƒ t | ƒ d k sÕ t ‚ t | ƒ d k sí t ‚ t | ƒ d k st ‚ t	 | ƒ d	 k st ‚ t
 | d
 ƒ t | ƒ d k sBt ‚ d } t d ƒ } t | ƒ | k slt ‚ t | ƒ | k s„t ‚ t	 | ƒ d k sœt ‚ t
 | d ƒ t | ƒ d k sÁt ‚ d } t d ƒ } t | ƒ | k sët ‚ t | ƒ | k st ‚ t	 | ƒ d k st ‚ t
 | d ƒ t | ƒ d k s@t ‚ t | ƒ d k sXt ‚ t | ƒ d k spt ‚ t	 | ƒ d k sˆt ‚ t
 | d ƒ t | ƒ d k s­t ‚ t | ƒ d k sÅt ‚ t | ƒ d k sÝt ‚ t	 | ƒ d k sõt ‚ t
 | d ƒ d  S(   NR_   i   s   <psi|u   âŸ¨Ïˆâ˜s   {\left\langle \psi\right|}s   Bra(Symbol('psi'))s   |psi>u   â˜ÏˆâŸ©s   {\left|\psi\right\rangle }s   Ket(Symbol('psi'))s   <x/2|s    / |
/ x|
\ -|
 \2|s%    â•± â”‚
â•± xâ”‚
â•² â”€â”‚
 â•²2â”‚s!   {\left\langle \frac{x}{2}\right|}s%   Bra(Mul(Rational(1, 2), Symbol('x')))s   |x/2>s   | \ 
|x \
|- /
|2/ s%   â”‚ â•² 
â”‚x â•²
â”‚â”€ â•±
â”‚2â•± s!   {\left|\frac{x}{2}\right\rangle }s%   Ket(Mul(Rational(1, 2), Symbol('x')))s   <psi;t|u   <psi;t|u
   âŸ¨Ïˆ;tâ˜s   {\left\langle \psi;t\right|}s%   TimeDepBra(Symbol('psi'),Symbol('t'))s   |psi;t>u
   â˜Ïˆ;tâŸ©s   {\left|\psi;t\right\rangle }s%   TimeDepKet(Symbol('psi'),Symbol('t'))(   R,   R    R!   R"   R#   RO   RB   R?   RL   R@   RF   RP   (	   R_   RŒ   R‹   t   bra_tallt   ket_tallt   tbrat   tketRS   RT   (    (    sH   lib/python2.7/site-packages/sympy/physics/quantum/tests/test_printing.pyt
   test_stateÏ  sV    						c          C   s’   t  t d d ƒ t d d ƒ ƒ }  t |  ƒ d k s9 t ‚ t |  ƒ d k sQ t ‚ t |  ƒ d k si t ‚ t |  ƒ d k s t ‚ t |  d ƒ d  S(   Ni   i    s   |1,1>x|1,0>s   |1,1>x |1,0>u   â˜1,1âŸ©â¨‚ â˜1,0âŸ©s>   {{\left|1,1\right\rangle }}\otimes {{\left|1,0\right\rangle }}sI   TensorProduct(JzKet(Integer(1),Integer(1)), JzKet(Integer(1),Integer(0)))(   R$   R   RO   RB   R?   RL   R@   RF   (   t   tp(    (    sH   lib/python2.7/site-packages/sympy/physics/quantum/tests/test_printing.pyt   test_tensorproduct  s    !	c          C   s  t  d ƒ }  t d ƒ } t t t d ƒ t d ƒ t t t |  | ƒ | ƒ |  | ƒ ƒ d ƒ ƒ t t	 d t d ƒ t d ƒ ƒ ƒ t
 d d ƒ t
 d d ƒ t d d ƒ t d d	 ƒ } t t	 d t d ƒ t d ƒ ƒ t t t d
 ƒ t d ƒ ƒ t d ƒ j ƒ  d ƒ t t t	 t ƒ ƒ } t d d d d d d ƒ t t t d ƒ t t d ƒ ƒ t d
 ƒ t d ƒ ƒ t	 t ƒ t t t t
 d d ƒ ƒ t
 d d ƒ ƒ ƒ t t d d d$ ƒ t d d d% ƒ t d d	 d& ƒ ƒ } t d ƒ t d ƒ t ƒ  d t t d t ƒ ƒ t ƒ  } t | ƒ d k s0t ‚ d } t d ƒ } t | ƒ | k sZt ‚ t | ƒ | k srt ‚ t | ƒ d k sŠt ‚ t | d ƒ t | ƒ d k s¯t ‚ d } t d ƒ } t | ƒ | k sÙt ‚ t | ƒ | k sñt ‚ t | ƒ d k s	t ‚ t | d ƒ t | ƒ d k s.t ‚ d } t d ƒ } t | ƒ | k sXt ‚ t | ƒ | k spt ‚ t | ƒ d k sˆt ‚ t | d ƒ t | ƒ d k s­t ‚ d  } t d! ƒ } t | ƒ | k s×t ‚ t | ƒ | k sït ‚ t | ƒ d" k st ‚ t | d# ƒ d  S('   NR}   R_   RM   RN   i   i   i   i    iÿÿÿÿt   Ct   Dt   Ei   i   i   s’   (Jz**2)x(Dagger(A) + Dagger(B))*{Dagger(DifferentialOperator(Derivative(f(x), x),f(x)))**3,Dagger(A) + Dagger(B)}*(<1,0| + <1,1|)*(|0,0> + |1,-1>)só                   /                                      3        \                                 
                 |/                                   +\         |                                 
    2  / +    +\ <|                    /d            \ |   +    +>                                 
/J \ x \A  + B /*||DifferentialOperator|--(f(x)),f(x)| | ,A  + B |*(<1,0| + <1,1|)*(|0,0> + |1,-1>)
\ z/             \\                    \dx           / /         /                                 sY                   âŽ§                                      3        âŽ«                                 
                 âŽªâŽ›                                   â€ âŽž         âŽª                                 
    2  âŽ› â€     â€ âŽž âŽ¨âŽœ                    âŽ›d            âŽž âŽŸ   â€     â€ âŽ¬                                 
âŽ›J âŽž â¨‚ âŽA  + B âŽ â‹…âŽªâŽœDifferentialOperatorâŽœâ”€â”€(f(x)),f(x)âŽŸ âŽŸ ,A  + B âŽªâ‹…(âŸ¨1,0â˜ + âŸ¨1,1â˜)â‹…(â˜0,0âŸ© + â˜1,-1âŸ©)
âŽ zâŽ              âŽ©âŽ                    âŽdx           âŽ  âŽ          âŽ­                                 sY  {J_z^{2}}\otimes \left({A^{\dagger} + B^{\dagger}}\right) \left\{\left(DifferentialOperator\left(\frac{d}{d x} f{\left(x \right)},f{\left(x \right)}\right)^{\dagger}\right)^{3},A^{\dagger} + B^{\dagger}\right\} \left({\left\langle 1,0\right|} + {\left\langle 1,1\right|}\right) \left({\left|0,0\right\rangle } + {\left|1,-1\right\rangle }\right)sà  Mul(TensorProduct(Pow(JzOp(Symbol('J')), Integer(2)), Add(Dagger(Operator(Symbol('A'))), Dagger(Operator(Symbol('B'))))), AntiCommutator(Pow(Dagger(DifferentialOperator(Derivative(Function('f')(Symbol('x')), Tuple(Symbol('x'), Integer(1))),Function('f')(Symbol('x')))), Integer(3)),Add(Dagger(Operator(Symbol('A'))), Dagger(Operator(Symbol('B'))))), Add(JzBra(Integer(1),Integer(0)), JzBra(Integer(1),Integer(1))), Add(JzKet(Integer(0),Integer(0)), JzKet(Integer(1),Integer(-1))))s3   [Jz**2,A + B]*{E**(-2),Dagger(D)*Dagger(C)}*[J2,Jz]se   [    2      ] / -2  +  +\ [ 2   ]
[/J \ ,A + B]*<E  ,D *C >*[J ,J ]
[\ z/       ] \         / [    z]s›   âŽ¡    2      âŽ¤ âŽ§ -2  â€   â€ âŽ« âŽ¡ 2   âŽ¤
âŽ¢âŽ›J âŽž ,A + BâŽ¥â‹…âŽ¨E  ,D â‹…C âŽ¬â‹…âŽ¢J ,J âŽ¥
âŽ£âŽ zâŽ        âŽ¦ âŽ©         âŽ­ âŽ£    zâŽ¦s]   \left[J_z^{2},A + B\right] \left\{E^{-2},D^{\dagger} C^{\dagger}\right\} \left[J^2,J_z\right]s  Mul(Commutator(Pow(JzOp(Symbol('J')), Integer(2)),Add(Operator(Symbol('A')), Operator(Symbol('B')))), AntiCommutator(Pow(Operator(Symbol('E')), Integer(-2)),Mul(Dagger(Operator(Symbol('D'))), Dagger(Operator(Symbol('C'))))), Commutator(J2Op(Symbol('J')),JzOp(Symbol('J'))))s{   Wigner3j(1, 2, 3, 4, 5, 6)*[Dagger(B) + A,C + D]x(-J2 + Jz)*|1,0><1,1|*(|1,0,j1=1,j2=1> + |1,1,j1=1,j2=1>)x|1,-1,j1=1,j2=1>s›            [ +          ]  /   2     \                                                                 
/1  3  5\*[B  + A,C + D]x |- J  + J |*|1,0><1,1|*(|1,0,j1=1,j2=1> + |1,1,j1=1,j2=1>)x |1,-1,j1=1,j2=1>
|       |                 \        z/                                                                 
\2  4  6/                                                                                             sç            âŽ¡ â€           âŽ¤  âŽ›   2     âŽž                                                                 
âŽ›1  3  5âŽžâ‹…âŽ£B  + A,C + DâŽ¦â¨‚ âŽœ- J  + J âŽŸâ‹…â˜1,0âŸ©âŸ¨1,1â˜â‹…(â˜1,0,jâ‚=1,jâ‚‚=1âŸ© + â˜1,1,jâ‚=1,jâ‚‚=1âŸ©)â¨‚ â˜1,-1,jâ‚=1,jâ‚‚=1âŸ©
âŽœ       âŽŸ                 âŽ        zâŽ                                                                  
âŽ2  4  6âŽ                                                                                              sU  \left(\begin{array}{ccc} 1 & 3 & 5 \\ 2 & 4 & 6 \end{array}\right) {\left[B^{\dagger} + A,C + D\right]}\otimes \left({- J^2 + J_z}\right) {\left|1,0\right\rangle }{\left\langle 1,1\right|} \left({{\left|1,0,j_{1}=1,j_{2}=1\right\rangle } + {\left|1,1,j_{1}=1,j_{2}=1\right\rangle }}\right)\otimes {{\left|1,-1,j_{1}=1,j_{2}=1\right\rangle }}sÔ  Mul(Wigner3j(Integer(1), Integer(2), Integer(3), Integer(4), Integer(5), Integer(6)), TensorProduct(Commutator(Add(Dagger(Operator(Symbol('B'))), Operator(Symbol('A'))),Add(Operator(Symbol('C')), Operator(Symbol('D')))), Add(Mul(Integer(-1), J2Op(Symbol('J'))), JzOp(Symbol('J')))), OuterProduct(JzKet(Integer(1),Integer(0)),JzBra(Integer(1),Integer(1))), TensorProduct(Add(JzKetCoupled(Integer(1),Integer(0),Tuple(Integer(1), Integer(1)),Tuple(Tuple(Integer(1), Integer(2), Integer(1)))), JzKetCoupled(Integer(1),Integer(1),Tuple(Integer(1), Integer(1)),Tuple(Tuple(Integer(1), Integer(2), Integer(1))))), JzKetCoupled(Integer(1),Integer(-1),Tuple(Integer(1), Integer(1)),Tuple(Tuple(Integer(1), Integer(2), Integer(1))))))s(   (C(1)*C(2)+F**2)*(L2(Interval(0, oo))+H)s9   // 1    2\    x2\   / 2    \
\\C  x C / + F  / x \L  + H/s[   âŽ›âŽ› 1    2âŽž    â¨‚2âŽž   âŽ› 2    âŽž
âŽâŽC  â¨‚ C âŽ  âŠ• F  âŽ  â¨‚ âŽL  âŠ• HâŽ s»   \left(\left(\mathcal{C}^{1}\otimes \mathcal{C}^{2}\right)\oplus {\mathcal{F}}^{\otimes 2}\right)\otimes \left({\mathcal{L}^2}\left( \left[0, \infty\right) \right)\oplus \mathcal{H}\right)s  TensorProductHilbertSpace((DirectSumHilbertSpace(TensorProductHilbertSpace(ComplexSpace(Integer(1)),ComplexSpace(Integer(2))),TensorPowerHilbertSpace(FockSpace(),Integer(2)))),(DirectSumHilbertSpace(L2(Interval(Integer(0), oo, false, true)),HilbertSpace())))(   i   i   (   i   i   (   i   i   (   R'   R,   R   R    R   R*   R   R&   R$   R   R   R   R   R~   R   R   R   R   R   R   R   R(   R.   R   RO   RB   RP   R?   RL   R@   RF   (   R}   R_   t   e1t   e2t   e3t   e4RS   RT   (    (    sH   lib/python2.7/site-packages/sympy/physics/quantum/tests/test_printing.pyt   test_big_expr  sX    ¡i»$									c          C   s@   t  d ƒ }  t |  ƒ d k s$ t ‚ t |  ƒ d k s< t ‚ d  S(   NRa   u    â€ 
a s   a^{\dagger}(   R%   R?   RB   R@   (   t   ad(    (    sH   lib/python2.7/site-packages/sympy/physics/quantum/tests/test_printing.pyt   _test_sho1dt  s    N(o   t   __doc__t$   sympy.physics.quantum.anticommutatorR    t   sympy.physics.quantum.cgR   R   R   R   t    sympy.physics.quantum.commutatorR   t   sympy.physics.quantum.constantsR   t   sympy.physics.quantum.daggerR   t   sympy.physics.quantum.gateR   R	   R
   R   R   t   sympy.physics.quantum.hilbertR   R   R   R   t"   sympy.physics.quantum.innerproductR   t   sympy.physics.quantum.operatorR   R   R   t   sympy.physics.quantum.qexprR   t   sympy.physics.quantum.qubitR   R   t   sympy.physics.quantum.spinR   R   R   R   R   R   R   R   t   sympy.physics.quantum.stateR    R!   R"   R#   t#   sympy.physics.quantum.tensorproductR$   t   sympy.physics.quantum.sho1dR%   t   sympyR&   R'   R(   R)   R*   R+   R,   R-   R.   t   sympy.core.compatibilityR/   t   sympy.utilities.pytestR0   R1   R2   R3   R4   R5   R6   R7   R8   R9   R:   R;   R<   R=   t   sympy.printingR>   t   sympy.printing.prettyR?   RI   t   sympy.printing.latexR@   RA   RP   t   MutableDenseMatrixt   ENVRF   RL   RU   RZ   R]   R^   R`   Rf   Rl   Rs   R{   R€   R   R…   R”   R™   R›   R£   R¥   (    (    (    sH   lib/python2.7/site-packages/sympy/physics/quantum/tests/test_printing.pyt   <module>   sb   "(":"@4						R				P	]	`	:				ƒ	D	
	W