
    sg@#                         d dl 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 d dlmZ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mZmZmZmZmZ d d
lmZ d Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'y)    )IpiRational)S)symbols)exp)sqrt)cossin)Ynm)Matrix)
clebsch_gordan	wigner_9j	wigner_6jgaunt
real_gauntracahdot_rot_grad_Ynm	wigner_3jwigner_d_smallwigner_d)raisesc            
         t        t        dd      t        j                  dt        dd      t        j                  d      dk(  sJ t        t        dd      t        j                  dt        dd      t        dd      d      t	        d      dz  k(  sJ t        t        dd      t        j                  dt        dd      t        j                  d      t	        d       dz  k(  sJ y )N         r   )r   r   r   Halfr	        Z/var/www/html/venv/lib/python3.12/site-packages/sympy/physics/tests/test_clebsch_gordan.pytest_clebsch_gordan_docsr"      s    (1a.!&&!Xa^QVVQOSTTTT(1a.!&&!Xa^XbRS_VWX\`ab\cde\eeee(1a.!&&!Xb!_affaPUYZ[U\T\]^T^^^^r    c            
      z   t         j                  } t         j                  }t        dd      }t        dd      }t        dd      }t        dd      }t	        ||d||d      dk(  sJ t	        ||d||d      dk(  sJ t	        ||d||d      dk(  sJ t	        ||d||d      t        d      dz  k(  sJ t	        ||d||d      t        d      dz  k(  sJ t	        ||d||d      t        d      dz  k(  sJ t	        ||d||d      t        d       dz  k(  sJ t	        | ||d||      dk(  sJ t	        | ||d||      dt        d      z  k(  sJ t	        | ||d||      t        d      t        d      z  k(  sJ t	        | ||d||      dt        d      z  k(  sJ t	        | ||d||      t        d      t        d      z  k(  sJ t	        | | t        d      ddt        d            dk(  sJ t	        | | t        d      ddd      dt        d      z  k(  sJ t	        | | t        d      ddd      dt        d      z  k(  sJ t	        | | dddd      dt        d      z  k(  sJ t	        | | dddd      dt        d      z  k(  sJ t	        ||t        d      ||t        d            dk(  sJ t	        ||t        d      ||t        d            dt        d      z  k(  sJ t	        ||t        d      ||t        d            dt        d      z  k(  sJ t	        t        d      t        d      t        d      t        d      t        d      t        d            dk(  sJ t	        t        d      t        d      t        d      t        d      dt        d            dt        d      z  k(  sJ t	        t        d      t        d      t        d      ddt        d            dk(  sJ t	        || ||d|      dk(  sJ t	        || ||d|      t        d      t        d      z  k(  sJ t	        || ||d|      dt        d	      z  k(  sJ y )
Nr   r   r         r   r         )r   Oner   r   r   r	   )hklinps         r!   test_clebsch_gordanr/      s.    	
A	AAAQAAAAA!Q1a+q000!Q1a+q000!Q1a,111!Q1a+tAwqy888!Q1a+tAwqy888!Q1a+tAwqy888!Q1a+Qxz999!Q1a+q000!Q1a+qay888!Q1a+tAwtAw>>>!Q1a+r$q'z999!Q1a+tAwtAw>>>!Q!aAaD1Q666!Q!aA.!DG);;;!Q!aA.!DG);;;!Q1a+qay888!Q1a+r$q'z999!Q!aAaD1Q666!Q!aAaD1QtAwY>>>!Q!aAaD1QtAwY>>>!A$!adAaD!A$!=BBB!A$!adAaD!QqT:aQiGGG!A$!adAq!A$71<<<!Q1a+q000!Q1a+tAwtAw>>>!Q1a+qbz999r    c                  $   d }  | t        dddddddddd
      t        dd            sJ t        ddddddddd	      d	t        d
      z  dt        d      z  z  ddt        d
      z  t        d      z  z  z
  k(  sJ t        dddddd      t        dd      k(  sJ  | t        ddddddd      t        dd            sJ t        j
                  }t        dddd||d||	      |k(  sJ t        dddd|z  d|z  dd|z  d|z  d	      t        t        dd             k(  sJ t        dddd|z  dd|z  d|z  dd|z  	      t        t        dd             k(  sJ t        dd|z  d|z  ddddd|z  d|z  	      t        t        dd             k(  sJ y )Nc                 B    | |z
  j                  d      t        d      k  S N@   z1e-64r-   r   abs     r!   tnztest_wigner.<locals>.tn;       Ayy}qz))r    r   r   r3   prec   r   r   i  F   i i   im  i  r%   4      iEi r&   r$   	   ii  iHDi  iAi  l   0 Y )r   r   r	   r   r   r   )r8   halfs     r!   test_wignerrC   :   s   *i1aAq!Q;Xa_MMMQ1aAq!Q/4
9 4DI4!$d48mDI&=!>4? ? ? ?Q1aA&(1b/999i1aAqr2HVV4LMMM66DQ1atQd;tCCCaA$hD!$hD!- Xc9-../ 0 / aA$h1t8$h1t8- XdI.//0 1 0 aT1t8AT1t8- XdJ/001 2 1r    c                     d } t        dddddd      ddt        t              z  z  k(  sJ t        t        dddddd      j                  d   t
              sJ t        t        dddddd      j                  d   t
              sJ  | t        ddddd	d
d      t        dd      t        d      z  t        t              z        sJ d }d}d	}d}t        |dz         D ]  }t        |dz         D ]  }t        |dz         D ]  }t        | |dz         D ]  }t        | |dz         D ]v  }	t        | |dz         D ]a  }
|||||	|
f}t        | } || }t        ||z
        |k  sJ ||	z   |
z   dk7  rt        |      |k  sJ ||z   |z   dz  sRt        |      |k  raJ  x     t        dddddd      t        j                  u sJ y )Nc                 B    | |z
  j                  d      t        d      k  S r2   r4   r5   s     r!   r8   ztest_gaunt.<locals>.tnT   r9   r    r   r   r   r   
      rA   r   ir3   r:   iiO  i  c           	          t        d| z  dz   d|z  dz   z  d|z  dz   z  dt        z  z        t        | ||ddd      z  t        | |||||      z  S )Nr   r   r&   r   )r	   r   r   )l1l2l3m1m2m3s         r!   	gaunt_refztest_gaunt.<locals>.gaunt_ref\   sh    !b&1*R!,B
;q2vFGb"b!Q*+b"b"b"-.	
r    g|=   )
r   r	   r   
isinstanceargsr   rangeabsr   Zero)r8   rO   	thresholdl_maxl3_maxrI   rJ   rK   rL   rM   rN   rS   gg0s                 r!   
test_gauntr\   S   s    *Aq!Q#r1T"X:666eAq!RA.33A6AAAeAq!QA.33A6AAAe
BAq#B(*23*>$t*)LTRTX)UW W W
 IEFEAI :	" 	:BFQJ' :R!V, 
:B#RCa0 	:"'R!V"4 :B#%r2r2r#9D!&A!*D!1B#&q2v;#::#:!Bw|q0'*1v	'9 9'9 "R"1'*1v	'9 9'9:	:
::	:: Aq!Q#qvv---r    c            
         t        d      D ]?  } t        |  | dz         D ]*  }t        d| | d||      ddt        t              z  z  k(  r*J  A t        dddddd      t        d      dt        t              z  z  k(  sJ t        dddddd      t        d       dt        t              z  z  k(  sJ t        dddddd      t        d      dt        t              z  z  k(  sJ t        dddddd      t        d       dt        t              z  z  k(  sJ t        dddddd      t        d       dt        t              z  z  k(  sJ t        dddd	dd	      t        d
      dt        t              z  z  k(  sJ t        dddddd      t        d
      dt        t              z  z  k(  sJ t        dddddd      t        d
      dt        t              z  z  k(  sJ t        dddd	dd      t        d
       dt        t              z  z  k(  sJ t        dddd	d	d      t        d
       dt        t              z  z  k(  sJ t        dddddd      t        d      dt        t              z  z  k(  sJ t        dddddd      t        d
      dt        t              z  z  k(  sJ t        dddd	d	d      t        d
       dt        t              z  z  k(  sJ t        dddddd      t        j
                  u sJ t        dddddd      t        j
                  u sJ t        dd	dd	d	d      t        j
                  u sJ t        dddddd      t        j
                  u sJ t        dd	dd	d	d	      t        j
                  u sJ t        dd      }dgdz  t        t                    D ]  }||<   t        t        fd       d|<   ! y )Nr   r   r   r   r%   rF   r$   rQ   r   r'      xT)integer   c                      t          S )N)r   )vs   r!   <lambda>z test_realgaunt.<locals>.<lambda>   s    :q> r    )
rT   r   r	   r   r   rV   r   lenr   
ValueError)r+   mr_   r,   rc   s       @r!   test_realgauntrh   v   s   1X Br1Q3 	BAaAq!Q/1aRj>AAA	BB aAq!Q'47Ad2hJ+????aAq!Q'DG8RR[+AAAAaAq!Q'47Ad2hJ+????aAq!Q'DG8QtBxZ+@@@@aAr2q)d1gXqbz-BBBBaAr1b)T"Xr$r({-CCCCaAq!Q'48RR[+AAAAaAq!Q'48RR[+AAAAaAr1b)d2hY48-DDDDaAr2q)d2hY48-DDDDaAq!Q'47BtBxK+@@@@aAq!Q'48RR[+AAAAaAr2q)d2hY48-DDDDb"b"b!,666b!Q1a(AFF222b"b"b!,666b"b"b"-777b"b"b"-777T"A	
AA3q6] !z12!r    c                  \   t        dddddd      t        dd      k(  sJ t        dddddd      t        dd      k(  sJ t        dddd	ddd
      j                  sJ t        dddddd      dt        d      z  dz  k(  sJ t	        t        ddddddd
      dz
        t        d      k  sJ y )Nr   r   r^   r   r=   r$   r@   r   r&   r:   g      @g      @g      #@g      @rA   i1iV  i g6
rz1e-4)r   r   is_Floatr	   rU   r   r   r    r!   
test_racahrl      s    1Qq1"R0001Qq1"R0001Qq11%....SS1%d3i)????uSSQqq1X>?!F)KKKr    c            	         t        d      \  } }t        dddddd      t        d      t        dddd      z  dt        t              z  z  k7  sJ t        dddddd      j                         t        d      t        dddd      z  dt        t              z  z  k(  sJ t        dddddd      dk7  sJ t        dddddd      j                         dk(  sJ t        dddd| |      j                         d	t        d
      z  t        dd| |      z  dt        t              z  z  k(  sJ t        dddd| |      j                         t        d      t        dd| |      z  t        t              z  k(  sJ t        dddd| |      j                         dt        d      z  t        dd| |      z  dt        t              z  z  k(  sJ t        dddd| |      j                         j                         t        d       t        dd| |      z  dt        t              z  z  dt        d      z  t        dd| |      z  dt        t              z  z  z   k(  sJ y )N	theta phir   r      r   rF   r%   r   r'   i  ra      r&   7      r=   -      )r   r   r	   r   r   doitexpand)thetaphis     r!   test_dot_rota_grad_SHry      sf   %JE3Aq!Q1-RQ1a "T"X+./ / /Aq!Q1-224RQ1a "T"X+./ / /Aq!Q1-	
 
 
Aq!Q1-224	
 
 
Aq!Qs388:
4:c!Qs++Sb\:; ; ;Aq!Qs388:QAq%%%d2h./ / /Aq!Qs388:	$r(
3q!UC(("T"X+67 7 7Aq!Qs388:AAC	b	#aE3''DH5
49SAuc**CRL9	:: : :r    c                  H   t        d      dz  } t        | d      t        ddgddgg      k(  sJ t        | t        dz        t        ddgddgg      t	        d      z  k(  sJ t        | t              t        ddgddgg      k(  sJ t        dd      \  }}}t        | |||      }|d   t        t        |z  dz        t        t        |z  dz        z  t        |dz        z  k(  sJ |d	   t        t        |z  dz        t        t         |z  dz        z  t        |dz        z  k(  sJ |d
   t        t         |z  dz         t        t        |z  dz        z  t        |dz        z  k(  sJ |d   t        t         |z  dz        t        t         |z  dz        z  t        |dz        z  k(  sJ t        dd      \  }}t        t        ddd      D cg c]  }t        d|||       c}      }t        dt         dz  t        dz  t         dz        |j                  |t        dz  |t        i      z  }	|j                  |t        dz  |t        dz  i      }
|	j                  d      j                         |
j                  d      j                         k(  sJ y c c}w )Nr   r   r   r   zalpha, beta, gammaT)real)r   r   )r   r   )r   r   )r   r   rn   rQ   r&   )func)r   r   r   r   r	   r   r   r   r   r
   r   rT   r   subsrv   as_real_imag)rB   alphabetagammaDrw   rx   mjrc   ww_s              r!   test_wigner_dr      s   Q46D$"fq!fq!f-=&>>>>$1%!Q"a0A)B47)JJJJ$#v1vAw.?'@@@@ !5DAE4udE*AT7c!E'!)nS5^3CQK????T7c!E'!)nS!E!_4Sa[@@@@T7sA2e8A:&s1U719~5c$q&kAAAAT7c1"U(1*oc1"U(1*o5c$q&kAAAA 40JE3q"b1AB2Ar5#&BCARCE2a4"Q'r!tS"/E(FFA	
1c2a4(	)B888++-1E1R1R1TTTT Cs   JN)(sympy.core.numbersr   r   r   sympy.core.singletonr   sympy.core.symbolr   &sympy.functions.elementary.exponentialr   (sympy.functions.elementary.miscellaneousr	   (sympy.functions.elementary.trigonometricr
   r   +sympy.functions.special.spherical_harmonicsr   sympy.matrices.denser   sympy.physics.wignerr   r   r   r   r   r   r   r   r   r   sympy.testing.pytestr   r"   r/   rC   r\   rh   rl   ry   r   r   r    r!   <module>r      sc    0 0 " % 6 9 ? ; 'R R R '_":J22 .FBL:*Ur    