
    oVh                     (   d Z ddlmZ ddlmZ ddlmZmZ ddlm	Z	 ddl
mZmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddl m!Z!m"Z" ddl#m$Z$ ddl%m&Z& ddl'm(Z( ddl)m*Z* ddl+m,Z,m-Z- ddl.m/Z/m0Z0 ddl1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7  e2d      Z8 e3d      Z9 e4d      Z: e4d      Z; e4d      Z< e4d      Z= e5d      Z> e5d      Z? e6d      Z@ e7d      ZA ed       ZB ed!      ZC ed"      ZD ed#d$%      ZE ed&d$d$'      ZF e*d(      ZG e*d)d*d+gi,      ZH e&e8eAd"d-.      ZI e&e9eAd"d-.      ZJ e&eAeAd"d-.      ZK e&e@eAd"d-.      ZL e&e=eAd"d-.      ZM e&e?eAd"d-.      ZNd/ ZOd0 ZPd1 ZQd2 ZRd3 ZSd4 ZTd5 ZUd6 ZVy7)8zTests for sho1d.py    )Sum)oo)IInteger)S)Symbolsymbols)	factorial)exp)sqrt)Abs)KroneckerDelta)Dagger)hbar)
Commutator)qapply)InnerProduct)XPx)ComplexSpace)	represent)simplify)import_module)IndexedBaseIdx)skipraises)	RaisingOp
LoweringOpSHOKetSHOBraHamiltonianNumberOpak      bHNomegam   pTintegerq)nonnegativer0   numpyscipyfromlistsparse)import_kwargssympybasisndimformatc                     t        t              t        k(  sJ t        t        t              j	                         t        d      k(  sJ t        t        t              j	                         t        d      t        z  k(  sJ t        t        t        z        t        t        j                  dz         t        t        j                  dz         z  j                         k(  sJ t        t        t        z        t        t        j                  dz         t        t        j                  dz         z  j                         k(  sJ t        t        t        z        t        t        j                  dz         t        t        j                  dz         z  j                         k(  sJ t        j                  d      j	                         t        d      t        t        d      t         z  t"        z  t$        z        z  t        d      t&        z  t(        z  t"        t$        z  t*        z  z   z  k(  sJ t        j,                  t/        t0        j2                        k(  sJ t5        t6        dz
        D ]!  } t8        | dz   | f   t        | dz         k(  r!J  t:        st=        d       t?        t        t        dd      }t5        t6        dz
        D ]&  } || dz   | f   tA        t        | dz               k(  r&J  t:        st=        d       tB        st=        d	       t?        t        t        dd
d      }t5        t6        dz
        D ]&  } || dz   | f   tA        t        | dz               k(  r&J  |jD                  dk(  sJ |jD                  dk(  sJ y )Nr&   xp   znumpy not installed.r-   r3   r9   zscipy not installed.zscipy.sparselil)r:   r;   r<   spmatrixfloat64)#r   adr$   r   doitr   r*   r   r%   r   nr    expandkzkfrewriter   r,   r+   r   r   r   hilbert_spacer   r   Infinityranger;   ad_rep_sympynpr   r   floatr4   dtype)iad_rep_numpyad_rep_scipys      V/home/dcms/DCMS/lib/python3.12/site-packages/sympy/physics/quantum/tests/test_sho1d.pytest_RaisingOprV   9   s   ":??b!!!#wr{222b!!!#wr{2~555"Q$<DqM&q/9AACCCC"R%=T"$$(^F244!8,<<DDFFFF"R%=T"$$(^F244!8,<<DDFFFF::d  "	DD*501	1GBKM"4Dqwqy4PQR R R|AJJ77774!8_ 4AE!G$QU3334 #$RqqAL4!8_ ;AE!G$d1q5k(::::; #$#$RqqRWXL4!8_ ;AE!G$d1q5k(::::; ******    c                  2   t        t              t        k(  sJ t        t        t              j	                         t        d      k(  sJ t        t        t              j	                         t        k(  sJ t        t        t        z        t        t        j                        t        t        j                  t        d      z
        z  j                         k(  sJ t        t        t        z        t        d      k(  sJ t        t        t        z        t        t        j                        t        t        j                  t        d      z
        z  j                         k(  sJ t        j                  d      j	                         t        d      t        t        d      t         z  t"        z  t$        z        z  t&        t(        z  t"        t$        z  t*        z  z   z  k(  sJ t-        t.        dz
        D ]!  } t0        | | dz   f   t        | dz         k(  r!J  y )Nr&   r   r?   r@   )r   r$   rD   r   rE   r   r*   r   r%   r   rF   r    rG   rH   rI   rJ   r   r,   r+   r   r   r   rM   r;   a_reprR   s    rU   test_LoweringOpr[   Y   s~   !9??a!!#wqz111a  "a'''!A#;49VACC
N%;;CCEEEE!B$<71:%%%!B$<DJvbdd71:o'>>FFHHHH99T?!	DD*501	1AbD1U7194DEF F F4!8_ -Qq1uW~a!e,,,-rW   c                  :   t        t        t              j                         t        k(  sJ t        t        t              j                         t        d      t        z  k(  sJ t        t        t              j                         t        d      k(  sJ t        t        t        z        t        j                  t        z  j                         k(  sJ t        j                  d      j                         t        t        z  k(  sJ t        j                  d      j                         t        d      t        d      t        z  t        z  t        z  z  t        dz  t        t        z  t         z  dz  z   z  t        d      t        d      z  z
  k(  sJ t        j                  d      j                         t        t        t        z  z  t        d      t        d      z  z
  k(  sJ t#        t$              D ]  } t&        | | f   | k(  rJ  t&        t(        t*        z  k(  sJ y )Nr>   r   r$   r?   r&   r@   r)   )r   r*   rD   rE   r$   r   r)   r   r%   rF   rG   rJ   r,   r   r+   r   r   rM   r;   N_reprN   rY   rZ   s    rU   test_NumberOpr^   e   s   a!!#r)))a  "gbk!m333a  "gaj000!A#;133q5..****99S> BqD(((99T?!gaj'!*Q,t2CE2I&J
A5Q& ")!*WQZ"7&8 8 8 899S> AtEzNWQZ
5J$JJJJ4[ QqSzQL&&&&rW   c                     t        t        t              j                         t	        d      k(  sJ t        t        t        z        t        t        z  t        j                  t	        d      t	        d      z  z   z  t        z  j                         k(  sJ t        j                  d      j                         t        t        z  t        t        z  t	        d      t	        d      z  z   z  k(  sJ t        j                  d      j                         t	        d      t	        d      t        z  z  t        dz  t        t        z  t         z  dz  z   z  k(  sJ t        j                  d      j                         t        t        z  t        t	        d      t	        d      z  z   z  k(  sJ t#        t$              D ]8  } t&        | | f   t        t        z  | t	        d      t	        d      z  z   z  k(  r8J  y )Nr   r&   r@   r$   r?   r*   )r   r)   r*   rE   r   r   r%   r   r+   rF   rG   rJ   rD   r$   r,   r   r   rM   r;   H_reprZ   s    rU   test_Hamiltonianra   r   sv   a  "gaj000!A#;DJgaj.C(CDaGOOQQQQ99S> DJ1wqz'!*7L0L$MMMM99T?!	WQZ\	"RUagai!^%;<= = =99S> DJGAJwqz4I0I$JJJJ4[ DQqSzT%ZWQZ
-B)BCCCCDrW   c                     t        d      j                         t        k(  sJ t        d      j                         t         k(  sJ t        t        t
              j                         t        t
        j                  t        j                        k(  sJ t
        j                  t        t        j                        k(  sJ t        t        j                  df   t        d      k(  sJ t         dt"        j                  f   t        d      k(  sJ y )Nr%   r(   r   r&   )r    
dual_classr!   r   r(   r%   rE   r   rF   rK   r   r   rL   k3_repk3r   b3_repb3 rW   rU   test_SHOKetri   |   s    #;!!#v---#;!!#v---!!!#~acc133'??????l1::6666"$$'?gaj(((!RTT'?gaj(((rW   c            
         t        t        t              t        t              z  t        ddf      } | j	                         t        d      t        d      z  t        d      t        d      z  z   k(  sJ t        t        t        t              t        t              z  t        dt        f      t        t              z  d      t        t              k(  sJ t        d      }t        dt              }t        t        t              t        ||   t        |      z  |dt        f      z  d      }||t           k(  sJ t        t        t              t        t        t              t        t              z  t        dt        f      z  t        ||   t        |      z  |dt        f      z  d      }||t           k(  sJ t        t              5  t        t        t              t        t        t              t        t              z  t        dt        f      z  t        |t           t        t              z  t        dt        f      z  d      }d d d        y # 1 sw Y   y xY w)Nr   r&   Tsum_doitr$   rF   )cls)r   r    r.   r!   rE   r   r   r1   r   r	   r   r   
ValueError)e1r$   rF   results       rU   test_sho_sumsrq      s   	VAYvay 1a)	,B779q	&)+fQiq	.AAAAA F1IfQi!Q,VAY6 
   	CAAF1Ic!A$vay.1Qr(;;dKFQqT>> q	#fQiq	)Aq":66s1Q4q	>AaPR87TTF QqT>>	
	 
1Ic&)F1I-1bz::3qtF1I~PQRSTVx;XX

 
 
s   
A?IIc            	      v   t        dd      } t        t        |       dz   t        d      z        t	        | t
        z  t        t        t
                    z  t        t
              z  t
        dt        f      z  }t        t        t              |z  d      t        t        |       dz   t        d      z        | t        z  z  t        t        t                    z  k(  sJ t        t        t        t              t        z  |z  d            t        t        t        t              | z  |z  d            k(  sJ y )NalphaT)
is_complexr@   r   rk   )r   r   r   r   r   r.   r   r
   r    r   r   r!   r1   r   r$   )rs   cstates     rU   test_sho_coherant_staterv      s    7t,E#e*a-!$%cE1Hd9Q<6H+H&QR)*SVWXYZ\U]&^^F&)F"T2c3u:q=.1:M6NuVWx6WX\]fgh]iXj6jjjjF6!9Q;v-=>(6RXYZR[\aRabhRhswKxByyyyrW   c                  p   t        ddd      } t        dd      }t        ddd      }t        ddd      }t        | d	| z   z  |z  t        |      z  t        |      z  |d
t        f      }t        t        |      |z  t        |      z  d      }t        |      | | d	z   z  |z  t        ||      z  k(  sJ y )NnbarT)realr2   rF   r/   rR   )r0   r2   jr&   r   rk   )r   r   r    r!   r   r   r   r   )rx   rF   rR   rz   rhorp   s         rU   test_issue_26495r|      s    &t6DsD!AsDd3AsDd3A
tQtV}q *6!94q2h
?CF1IcM&)+d;FFd1f1.12EEEEErW   N)W__doc__sympy.concreter   
sympy.corer   sympy.core.numbersr   r   sympy.core.singletonr   sympy.core.symbolr   r	   (sympy.functions.combinatorial.factorialsr
   &sympy.functions.elementary.exponentialr   (sympy.functions.elementary.miscellaneousr   $sympy.functions.elementary.complexesr   (sympy.functions.special.tensor_functionsr   sympy.physics.quantumr   sympy.physics.quantum.constantsr   r   sympy.physics.quantum.qapplyr   "sympy.physics.quantum.innerproductr   sympy.physics.quantum.cartesianr   r   sympy.physics.quantum.hilbertr   sympy.physics.quantum.representr   sympy.simplifyr   sympy.externalr   sympy.tensorr   r   sympy.testing.pytestr   r   sympy.physics.quantum.sho1dr   r   r    r!   r"   r#   rD   r$   r%   rH   rI   re   r(   rg   r)   r*   r+   r,   r;   r.   r1   rO   r4   rN   rY   r]   r`   rd   rf   rV   r[   r^   ra   ri   rq   rv   r|   rh   rW   rU   <module>r      s      + " - > 6 9 4 C ( 0 , / ; 1 6 5 # ( ) -? ? s^sO
3KAYAYAY
3KAYSMw
3Kqz
3
3D$/ 7gj8*-EF11W=!11W5!11W5!11W5	2QQw	7	2QQw	7+@
-'D)
:zFrW   