§
    OŠtj[  ã                   ó   — d 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mZ ddlmZ ddlm Z m!Z!m"Z"m#Z# ddl$m%Z% g d¢Z& G d„ de¦  «        Z' G d„ de'¦  «        Z( G d„ de¦  «        Z) G d„ de¦  «        Z*d„ Z+d„ Z,d„ Z-d„ Z.d„ Z/d „ Z0d(d"„Z1d#„ Z2d$„ Z3d%„ Z4d&„ Z5d'„ Z6d!S ))zClebsch-Gordon Coefficients.é    )ÚSum)ÚAdd)ÚExpr)Úexpand)ÚMul)ÚPow)ÚEq)ÚS)ÚWildÚsymbols)Úsympify)Úsqrt)Ú	Piecewise)Ú
prettyFormÚ
stringPict)ÚKroneckerDelta)Úclebsch_gordanÚ	wigner_3jÚ	wigner_6jÚ	wigner_9j)Ú
PRECEDENCE)ÚCGÚWigner3jÚWigner6jÚWigner9jÚcg_simpc                   óÈ   — e Zd ZdZdZd„ Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z	ed„ ¦   «         Z
ed„ ¦   «         Zed	„ ¦   «         Zed
„ ¦   «         Zd„ Zd„ Zd„ ZdS )r   a¤  Class for the Wigner-3j symbols.

    Explanation
    ===========

    Wigner 3j-symbols are coefficients determined by the coupling of
    two angular momenta. When created, they are expressed as symbolic
    quantities that, for numerical parameters, can be evaluated using the
    ``.doit()`` method [1]_.

    Parameters
    ==========

    j1, m1, j2, m2, j3, m3 : Number, Symbol
        Terms determining the angular momentum of coupled angular momentum
        systems.

    Examples
    ========

    Declare a Wigner-3j coefficient and calculate its value

        >>> from sympy.physics.quantum.cg import Wigner3j
        >>> w3j = Wigner3j(6,0,4,0,2,0)
        >>> w3j
        Wigner3j(6, 0, 4, 0, 2, 0)
        >>> w3j.doit()
        sqrt(715)/143

    See Also
    ========

    CG: Clebsch-Gordan coefficients

    References
    ==========

    .. [1] Varshalovich, D A, Quantum Theory of Angular Momentum. 1988.
    Tc           	      ó\   — t          t          ||||||f¦  «        }t          j        | g|¢R Ž S ©N©Úmapr   r   Ú__new__)ÚclsÚj1Úm1Új2Úm2Új3Úm3Úargss           úV/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/physics/quantum/cg.pyr"   zWigner3j.__new__Q   s6   € Ý•7˜R  R¨¨R°Ð4Ñ5Ô5ˆÝŒ|˜CÐ' $Ð'Ð'Ð'Ð'ó    c                 ó   — | j         d         S ©Nr   ©r*   ©Úselfs    r+   r$   zWigner3j.j1U   ó   € àŒy˜Œ|Ðr,   c                 ó   — | j         d         S ©Né   r/   r0   s    r+   r%   zWigner3j.m1Y   r2   r,   c                 ó   — | j         d         S ©Né   r/   r0   s    r+   r&   zWigner3j.j2]   r2   r,   c                 ó   — | j         d         S ©Né   r/   r0   s    r+   r'   zWigner3j.m2a   r2   r,   c                 ó   — | j         d         S ©Né   r/   r0   s    r+   r(   zWigner3j.j3e   r2   r,   c                 ó   — | j         d         S ©Né   r/   r0   s    r+   r)   zWigner3j.m3i   r2   r,   c                 ó@   — t          d„ | j        D ¦   «         ¦  «         S )Nc              3   ó$   K  — | ]}|j         V — Œd S r   ©Ú	is_number©Ú.0Úargs     r+   ú	<genexpr>z'Wigner3j.is_symbolic.<locals>.<genexpr>o   ó$   è è € Ð:Ð:¨�s”}Ð:Ð:Ð:Ð:Ð:Ð:r,   ©Úallr*   r0   s    r+   Úis_symboliczWigner3j.is_symbolicm   ó$   € åÐ:Ð:°´	Ð:Ñ:Ô:Ñ:Ô:Ð:Ð:r,   c                 ó^  ‡‡— |                      | j        ¦  «        |                      | j        ¦  «        f|                      | j        ¦  «        |                      | j        ¦  «        f|                      | j        ¦  «        |                      | j        ¦  «        ffŠd}d}dgdz  }t          d¦  «        D ].Št          ˆˆfd„t          d¦  «        D ¦   «         ¦  «        |‰<   Œ/d }t          d¦  «        D �]}d }t          d¦  «        D ]µŠ‰‰         |         }	|‰         |	 	                    ¦   «         z
  }
|
dz  }|
|z
  }t          |	                     d|z  ¦  «        Ž }	t          |	                     d|z  ¦  «        Ž }	|€|	}Œzt          |                     d|z  ¦  «        Ž }t          |                     |	¦  «        Ž }Œ¶|€|}ŒÏt          |¦  «        D ]}t          |                     d¦  «        Ž }Œt          |                     |¦  «        Ž }�Œt          |                     ¦   «         Ž }|S )Nr8   r5   éÿÿÿÿr;   c              3   óX   •K  — | ]$}‰‰         |                               ¦   «         V — Œ%d S r   ©Úwidth©rG   ÚiÚjÚms     €€r+   rI   z#Wigner3j._pretty.<locals>.<genexpr>z   ó3   øè è € Ð<Ð<¨a˜!˜Aœ$˜qœ'Ÿ-š-™/œ/Ð<Ð<Ð<Ð<Ð<Ð<r,   ú )Ú_printr$   r%   r&   r'   r(   r)   ÚrangeÚmaxrS   r   ÚrightÚleftÚbelowÚparens©r1   Úprinterr*   ÚhsepÚvsepÚmaxwÚDrU   ÚD_rowÚsÚwdeltaÚwleftÚwrightÚ_rV   rW   s                 @@r+   Ú_prettyzWigner3j._prettyr   s  øø€ Ø�nŠn˜TœWÑ%Ô% w§~¢~°d´gÑ'>Ô'>Ð?Ø�^Š^˜DœGÑ$Ô$ g§n¢n°T´WÑ&=Ô&=Ð>Ø�^Š^˜DœGÑ$Ô$ g§n¢n°T´WÑ&=Ô&=Ð>ð@ˆð ˆØˆØˆt�A‰vˆÝ�q‘”ð 	=ð 	=ˆAÝÐ<Ð<Ð<Ð<Ð<µ5¸±8´8Ð<Ñ<Ô<Ñ<Ô<ˆD�‰GˆGØˆÝ�q‘”ð 	,ñ 	,ˆAØˆEÝ˜1‘X”Xð 4ð 4�Ø�a”D˜”G�Ø˜aœ 1§7¢7¡9¤9Ñ,�Ø ™
�Ø %™�å §¢¨¨F©
Ñ 3Ô 3Ð4�Ý §¢ s¨5¡yÑ 1Ô 1Ð2�à�=Ø�EØÝ" E§K¢K°°D±Ñ$9Ô$9Ð:�Ý" E§K¢K°¡N¤NÐ3��ØˆyØ�ØÝ˜4‘[”[ð .ð .�Ý §¢¨¡¤Ð-��Ý˜AŸGšG E™NœNÐ+ˆA‰AÝ˜Ÿš™
œ
Ð#ˆØˆr,   c           	      ó˜   — t          |j        | j        | j        | j        | j        | j        | j        f¦  «        }dt          |¦  «        z  S )NzH\left(\begin{array}{ccc} %s & %s & %s \\ %s & %s & %s \end{array}\right))	r!   rZ   r$   r&   r(   r%   r'   r)   Útuple©r1   rb   r*   Úlabels       r+   Ú_latexzWigner3j._latex•   sI   € Ý�G”N T¤W¨d¬g°t´wØ”G˜TœW d¤gð%/ñ 0ô 0ˆàZÝ�%‰LŒLñð 	r,   c                 ó’   — | j         rt          d¦  «        ‚t          | j        | j        | j        | j        | j        | j        ¦  «        S ©NzCoefficients must be numerical)	rM   Ú
ValueErrorr   r$   r&   r(   r%   r'   r)   ©r1   Úhintss     r+   ÚdoitzWigner3j.doit›   s@   € ØÔð 	?ÝÐ=Ñ>Ô>Ð>Ý˜œ $¤'¨4¬7°D´G¸T¼WÀdÄgÑNÔNÐNr,   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úis_commutativer"   Úpropertyr$   r%   r&   r'   r(   r)   rM   rm   rr   rx   © r,   r+   r   r   &   s%  € € € € € ð&ð &ðP €Nð(ð (ð (ð ðð ñ „Xðð ðð ñ „Xðð ðð ñ „Xðð ðð ñ „Xðð ðð ñ „Xðð ðð ñ „Xðð ð;ð ;ñ „Xð;ð!ð !ð !ðFð ð ðOð Oð Oð Oð Or,   r   c                   ó:   — e Zd ZdZed         dz
  Zd„ Zd„ Zd„ ZdS )r   a÷  Class for Clebsch-Gordan coefficient.

    Explanation
    ===========

    Clebsch-Gordan coefficients describe the angular momentum coupling between
    two systems. The coefficients give the expansion of a coupled total angular
    momentum state and an uncoupled tensor product state. The Clebsch-Gordan
    coefficients are defined as [1]_:

    .. math ::
        C^{j_3,m_3}_{j_1,m_1,j_2,m_2} = \left\langle j_1,m_1;j_2,m_2 | j_3,m_3\right\rangle

    Parameters
    ==========

    j1, m1, j2, m2 : Number, Symbol
        Angular momenta of states 1 and 2.

    j3, m3: Number, Symbol
        Total angular momentum of the coupled system.

    Examples
    ========

    Define a Clebsch-Gordan coefficient and evaluate its value

        >>> from sympy.physics.quantum.cg import CG
        >>> from sympy import S
        >>> cg = CG(S(3)/2, S(3)/2, S(1)/2, -S(1)/2, 1, 1)
        >>> cg
        CG(3/2, 3/2, 1/2, -1/2, 1, 1)
        >>> cg.doit()
        sqrt(3)/2
        >>> CG(j1=S(1)/2, m1=-S(1)/2, j2=S(1)/2, m2=+S(1)/2, j3=1, m3=0).doit()
        sqrt(2)/2


    Compare [2]_.

    See Also
    ========

    Wigner3j: Wigner-3j symbols

    References
    ==========

    .. [1] Varshalovich, D A, Quantum Theory of Angular Momentum. 1988.
    .. [2] `Clebsch-Gordan Coefficients, Spherical Harmonics, and d Functions
        <https://pdg.lbl.gov/2020/reviews/rpp2020-rev-clebsch-gordan-coefs.pdf>`_
        in P.A. Zyla *et al.* (Particle Data Group), Prog. Theor. Exp. Phys.
        2020, 083C01 (2020).
    r   r5   c                 ó’   — | j         rt          d¦  «        ‚t          | j        | j        | j        | j        | j        | j        ¦  «        S rt   )	rM   ru   r   r$   r&   r(   r%   r'   r)   rv   s     r+   rx   zCG.doitÚ   s@   € ØÔð 	?ÝÐ=Ñ>Ô>Ð>Ý˜dœg t¤w°´¸¼À$Ä'È4Ì7ÑSÔSÐSr,   c                 óL  — |                      | j        | j        | j        | j        fd¬¦  «        }|                      | j        | j        fd¬¦  «        }t          |                     ¦   «         |                     ¦   «         ¦  «        }t          | 
                    d¦  «        Ž }t          | 
                    d¦  «        Ž }||                     ¦   «         k    s4t          |                     d||                     ¦   «         z
  z  ¦  «        Ž }||                     ¦   «         k    s4t          |                     d||                     ¦   «         z
  z  ¦  «        Ž }t          dd|z  z   ¦  «        }t          |                     |¦  «        Ž }t          |                     |¦  «        Ž }|S )Nú,)Ú	delimiterrY   ÚC)Ú
_print_seqr$   r%   r&   r'   r(   r)   r\   rS   r   r^   r]   r   r_   Úabove)r1   rb   r*   ÚbotÚtopÚpadrh   s          r+   rm   z
CG._prettyß   sT  € Ø× Ò ØŒW�d”g˜tœw¨¬Ð0¸Cð !ñ Aô Aˆà× Ò  $¤'¨4¬7Ð!3¸sÐ ÑCÔCˆå�#—)’)‘+”+˜sŸyšy™{œ{Ñ+Ô+ˆÝ˜#Ÿ(š( 3™-œ-Ð(ˆÝ˜#Ÿ(š( 3™-œ-Ð(ˆà�c—i’i‘k”kÒ!Ð!Ý˜cŸiši¨¨S°3·9²9±;´;Ñ->Ñ(?Ñ@Ô@ÐAˆCØ�c—i’i‘k”kÒ!Ð!Ý˜cŸiši¨¨S°3·9²9±;´;Ñ->Ñ(?Ñ@Ô@ÐAˆCÝ�s˜S ™W‘}Ñ%Ô%ˆÝ˜Ÿš ™œÐ%ˆÝ˜Ÿš ™œÐ%ˆØˆr,   c           	      ó˜   — t          |j        | j        | j        | j        | j        | j        | j        f¦  «        }dt          |¦  «        z  S )NzC^{%s,%s}_{%s,%s,%s,%s})	r!   rZ   r(   r)   r$   r%   r&   r'   ro   rp   s       r+   rr   z	CG._latexñ   sD   € Ý�G”N T¤W¨d¬g°t´wØ”G˜TœW d¤gð%/ñ 0ô 0ˆà)­E°%©L¬LÑ8Ð8r,   N)	ry   rz   r{   r|   r   Ú
precedencerx   rm   rr   r   r,   r+   r   r   ¡   s`   € € € € € ð5ð 5ðl ˜EÔ" QÑ&€JðTð Tð Tð
ð ð ð$9ð 9ð 9ð 9ð 9r,   r   c                   óÄ   — e Zd ZdZd„ Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z	ed„ ¦   «         Z
ed„ ¦   «         Zed	„ ¦   «         Zd
„ Zd„ Zd„ ZdS )r   zaClass for the Wigner-6j symbols

    See Also
    ========

    Wigner3j: Wigner-3j symbols

    c           	      ó\   — t          t          ||||||f¦  «        }t          j        | g|¢R Ž S r   r    )r#   r$   r&   Új12r(   rV   Új23r*   s           r+   r"   zWigner6j.__new__   s6   € Ý•7˜R  S¨"¨a°Ð5Ñ6Ô6ˆÝŒ|˜CÐ' $Ð'Ð'Ð'Ð'r,   c                 ó   — | j         d         S r.   r/   r0   s    r+   r$   zWigner6j.j1  r2   r,   c                 ó   — | j         d         S r4   r/   r0   s    r+   r&   zWigner6j.j2  r2   r,   c                 ó   — | j         d         S r7   r/   r0   s    r+   r�   zWigner6j.j12  r2   r,   c                 ó   — | j         d         S r:   r/   r0   s    r+   r(   zWigner6j.j3  r2   r,   c                 ó   — | j         d         S r=   r/   r0   s    r+   rV   z
Wigner6j.j  r2   r,   c                 ó   — | j         d         S r@   r/   r0   s    r+   r�   zWigner6j.j23  r2   r,   c                 ó@   — t          d„ | j        D ¦   «         ¦  «         S )Nc              3   ó$   K  — | ]}|j         V — Œd S r   rD   rF   s     r+   rI   z'Wigner6j.is_symbolic.<locals>.<genexpr>  rJ   r,   rK   r0   s    r+   rM   zWigner6j.is_symbolic  rN   r,   c                 ód  ‡‡— |                      | j        ¦  «        |                      | j        ¦  «        f|                      | j        ¦  «        |                      | j        ¦  «        f|                      | j        ¦  «        |                      | j        ¦  «        ffŠd}d}dgdz  }t          d¦  «        D ].Št          ˆˆfd„t          d¦  «        D ¦   «         ¦  «        |‰<   Œ/d }t          d¦  «        D �]}d }t          d¦  «        D ]µŠ‰‰         |         }	|‰         |	 	                    ¦   «         z
  }
|
dz  }|
|z
  }t          |	                     d|z  ¦  «        Ž }	t          |	                     d|z  ¦  «        Ž }	|€|	}Œzt          |                     d|z  ¦  «        Ž }t          |                     |	¦  «        Ž }Œ¶|€|}ŒÏt          |¦  «        D ]}t          |                     d¦  «        Ž }Œt          |                     |¦  «        Ž }�Œt          |                     dd¬	¦  «        Ž }|S )
Nr8   r5   rP   r;   c              3   óX   •K  — | ]$}‰‰         |                               ¦   «         V — Œ%d S r   rR   rT   s     €€r+   rI   z#Wigner6j._pretty.<locals>.<genexpr>)  rX   r,   rY   Ú{Ú}©r^   r]   )rZ   r$   r(   r&   rV   r�   r�   r[   r\   rS   r   r]   r^   r_   r`   ra   s                 @@r+   rm   zWigner6j._pretty!  s  øø€ Ø�nŠn˜TœWÑ%Ô% w§~¢~°d´gÑ'>Ô'>Ð?Ø�^Š^˜DœGÑ$Ô$ g§n¢n°T´VÑ&<Ô&<Ð=Ø�^Š^˜DœHÑ%Ô% w§~¢~°d´hÑ'?Ô'?Ð@ðBˆð ˆØˆØˆt�A‰vˆÝ�q‘”ð 	=ð 	=ˆAÝÐ<Ð<Ð<Ð<Ð<µ5¸±8´8Ð<Ñ<Ô<Ñ<Ô<ˆD�‰GˆGØˆÝ�q‘”ð 	,ñ 	,ˆAØˆEÝ˜1‘X”Xð 4ð 4�Ø�a”D˜”G�Ø˜aœ 1§7¢7¡9¤9Ñ,�Ø ™
�Ø %™�å §¢¨¨F©
Ñ 3Ô 3Ð4�Ý §¢ s¨5¡yÑ 1Ô 1Ð2�à�=Ø�EØÝ" E§K¢K°°D±Ñ$9Ô$9Ð:�Ý" E§K¢K°¡N¤NÐ3��ØˆyØ�ØÝ˜4‘[”[ð .ð .�Ý §¢¨¡¤Ð-��Ý˜AŸGšG E™NœNÐ+ˆA‰AÝ˜Ÿš c°˜Ñ5Ô5Ð6ˆØˆr,   c           	      ó˜   — t          |j        | j        | j        | j        | j        | j        | j        f¦  «        }dt          |¦  «        z  S )NzJ\left\{\begin{array}{ccc} %s & %s & %s \\ %s & %s & %s \end{array}\right\})	r!   rZ   r$   r&   r�   r(   rV   r�   ro   rp   s       r+   rr   zWigner6j._latexD  sI   € Ý�G”N T¤W¨d¬g°t´xØ”G˜TœV T¤Xð%/ñ 0ô 0ˆà\Ý�%‰LŒLñð 	r,   c                 ó’   — | j         rt          d¦  «        ‚t          | j        | j        | j        | j        | j        | j        ¦  «        S rt   )	rM   ru   r   r$   r&   r�   r(   rV   r�   rv   s     r+   rx   zWigner6j.doitJ  s@   € ØÔð 	?ÝÐ=Ñ>Ô>Ð>Ý˜œ $¤'¨4¬8°T´W¸d¼fÀdÄhÑOÔOÐOr,   N)ry   rz   r{   r|   r"   r~   r$   r&   r�   r(   rV   r�   rM   rm   rr   rx   r   r,   r+   r   r   ÷   s  € € € € € ðð ð(ð (ð (ð ðð ñ „Xðð ðð ñ „Xðð ðð ñ „Xðð ðð ñ „Xðð ðð ñ „Xðð ðð ñ „Xðð ð;ð ;ñ „Xð;ð!ð !ð !ðFð ð ðPð Pð Pð Pð Pr,   r   c                   ó  — e Zd ZdZd„ Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z	ed„ ¦   «         Z
ed„ ¦   «         Zed	„ ¦   «         Zed
„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zd„ Zd„ Zd„ ZdS )r   zaClass for the Wigner-9j symbols

    See Also
    ========

    Wigner3j: Wigner-3j symbols

    c
                 ób   — t          t          |||||||||	f	¦  «        }
t          j        | g|
¢R Ž S r   r    )r#   r$   r&   r�   r(   Új4Új34Új13Új24rV   r*   s              r+   r"   zWigner9j.__new__Y  s<   € Ý•7˜R  S¨"¨b°#°s¸CÀÐCÑDÔDˆÝŒ|˜CÐ' $Ð'Ð'Ð'Ð'r,   c                 ó   — | j         d         S r.   r/   r0   s    r+   r$   zWigner9j.j1]  r2   r,   c                 ó   — | j         d         S r4   r/   r0   s    r+   r&   zWigner9j.j2a  r2   r,   c                 ó   — | j         d         S r7   r/   r0   s    r+   r�   zWigner9j.j12e  r2   r,   c                 ó   — | j         d         S r:   r/   r0   s    r+   r(   zWigner9j.j3i  r2   r,   c                 ó   — | j         d         S r=   r/   r0   s    r+   r¢   zWigner9j.j4m  r2   r,   c                 ó   — | j         d         S r@   r/   r0   s    r+   r£   zWigner9j.j34q  r2   r,   c                 ó   — | j         d         S )Né   r/   r0   s    r+   r¤   zWigner9j.j13u  r2   r,   c                 ó   — | j         d         S )Né   r/   r0   s    r+   r¥   zWigner9j.j24y  r2   r,   c                 ó   — | j         d         S )Né   r/   r0   s    r+   rV   z
Wigner9j.j}  r2   r,   c                 ó@   — t          d„ | j        D ¦   «         ¦  «         S )Nc              3   ó$   K  — | ]}|j         V — Œd S r   rD   rF   s     r+   rI   z'Wigner9j.is_symbolic.<locals>.<genexpr>ƒ  rJ   r,   rK   r0   s    r+   rM   zWigner9j.is_symbolic�  rN   r,   c                 óú  ‡‡— |                      | j        ¦  «        |                      | j        ¦  «        |                      | j        ¦  «        f|                      | j        ¦  «        |                      | j        ¦  «        |                      | j        ¦  «        f|                      | j        ¦  «        |                      | j        ¦  «        |                      | j	        ¦  «        ffŠd}d}dgdz  }t          d¦  «        D ].Št          ˆˆfd„t          d¦  «        D ¦   «         ¦  «        |‰<   Œ/d }t          d¦  «        D �]}d }t          d¦  «        D ]µŠ‰‰         |         }	|‰         |	                     ¦   «         z
  }
|
dz  }|
|z
  }t          |	                     d|z  ¦  «        Ž }	t          |	                     d|z  ¦  «        Ž }	|€|	}Œzt          |                     d|z  ¦  «        Ž }t          |                     |	¦  «        Ž }Œ¶|€|}ŒÏt          |¦  «        D ]}t          |                     d¦  «        Ž }Œt          |                     |¦  «        Ž }�Œt          |                     dd¬	¦  «        Ž }|S )
Nr8   r5   rP   r;   c              3   óX   •K  — | ]$}‰‰         |                               ¦   «         V — Œ%d S r   rR   rT   s     €€r+   rI   z#Wigner9j._pretty.<locals>.<genexpr>‘  rX   r,   rY   r›   rœ   r�   )rZ   r$   r(   r¤   r&   r¢   r¥   r�   r£   rV   r[   r\   rS   r   r]   r^   r_   r`   ra   s                 @@r+   rm   zWigner9j._pretty†  s`  øø€ à�^Š^Ø”ñô Ø!Ÿ.š.¨¬Ñ1Ô1°7·>²>À$Ä(Ñ3KÔ3KðMà�^Š^Ø”ñô Ø!Ÿ.š.¨¬Ñ1Ô1°7·>²>À$Ä(Ñ3KÔ3KðMà�^Š^˜DœHÑ%Ô% w§~¢~°d´hÑ'?Ô'?ÀÇÂÐPTÔPVÑAWÔAWÐXðZˆð ˆØˆØˆt�A‰vˆÝ�q‘”ð 	=ð 	=ˆAÝÐ<Ð<Ð<Ð<Ð<µ5¸±8´8Ð<Ñ<Ô<Ñ<Ô<ˆD�‰GˆGØˆÝ�q‘”ð 	,ñ 	,ˆAØˆEÝ˜1‘X”Xð 4ð 4�Ø�a”D˜”G�Ø˜aœ 1§7¢7¡9¤9Ñ,�Ø ™
�Ø %™�å §¢¨¨F©
Ñ 3Ô 3Ð4�Ý §¢ s¨5¡yÑ 1Ô 1Ð2�à�=Ø�EØÝ" E§K¢K°°D±Ñ$9Ô$9Ð:�Ý" E§K¢K°¡N¤NÐ3��ØˆyØ�ØÝ˜4‘[”[ð .ð .�Ý §¢¨¡¤Ð-��Ý˜AŸGšG E™NœNÐ+ˆA‰AÝ˜Ÿš c°˜Ñ5Ô5Ð6ˆØˆr,   c                 ó¼   — t          |j        | j        | j        | j        | j        | j        | j        | j        | j	        | j
        f	¦  «        }dt          |¦  «        z  S )NzZ\left\{\begin{array}{ccc} %s & %s & %s \\ %s & %s & %s \\ %s & %s & %s \end{array}\right\})r!   rZ   r$   r&   r�   r(   r¢   r£   r¤   r¥   rV   ro   rp   s       r+   rr   zWigner9j._latex¬  sW   € Ý�G”N T¤W¨d¬g°t´xÀÄØ”˜œ 4¤8¨T¬X°t´vð%?ñ @ô @ˆàlÝ�%‰LŒLñð 	r,   c                 ó¶   — | j         rt          d¦  «        ‚t          | j        | j        | j        | j        | j        | j        | j	        | j
        | j        ¦	  «	        S rt   )rM   ru   r   r$   r&   r�   r(   r¢   r£   r¤   r¥   rV   rv   s     r+   rx   zWigner9j.doit²  sR   € ØÔð 	?ÝÐ=Ñ>Ô>Ð>Ý˜œ $¤'¨4¬8°T´W¸d¼gÀtÄxÐQUÔQYÐ[_Ô[cÐeiÔekÑlÔlÐlr,   N)ry   rz   r{   r|   r"   r~   r$   r&   r�   r(   r¢   r£   r¤   r¥   rV   rM   rm   rr   rx   r   r,   r+   r   r   P  sn  € € € € € ðð ð(ð (ð (ð ðð ñ „Xðð ðð ñ „Xðð ðð ñ „Xðð ðð ñ „Xðð ðð ñ „Xðð ðð ñ „Xðð ðð ñ „Xðð ðð ñ „Xðð ðð ñ „Xðð ð;ð ;ñ „Xð;ð$ð $ð $ðLð ð ðmð mð mð mð mr,   r   c                 óh  — t          | t          ¦  «        rt          | ¦  «        S t          | t          ¦  «        rt	          | ¦  «        S t          | t
          ¦  «        rt          d„ | j        D ¦   «         Ž S t          | t          ¦  «        r't          t          | j	        ¦  «        | j
        ¦  «        S | S )aÇ  Simplify and combine CG coefficients.

    Explanation
    ===========

    This function uses various symmetry and properties of sums and
    products of Clebsch-Gordan coefficients to simplify statements
    involving these terms [1]_.

    Examples
    ========

    Simplify the sum over CG(a,alpha,0,0,a,alpha) for all alpha to
    2*a+1

        >>> from sympy.physics.quantum.cg import CG, cg_simp
        >>> a = CG(1,1,0,0,1,1)
        >>> b = CG(1,0,0,0,1,0)
        >>> c = CG(1,-1,0,0,1,-1)
        >>> cg_simp(a+b+c)
        3

    See Also
    ========

    CG: Clebsh-Gordan coefficients

    References
    ==========

    .. [1] Varshalovich, D A, Quantum Theory of Angular Momentum. 1988.
    c                 ó,   — g | ]}t          |¦  «        ‘ŒS r   )r   rF   s     r+   ú
<listcomp>zcg_simp.<locals>.<listcomp>Þ  s   € Ð4Ð4Ð4 c•W˜S‘\”\Ð4Ð4Ð4r,   )Ú
isinstancer   Ú_cg_simp_addr   Ú_cg_simp_sumr   r*   r   r   ÚbaseÚexp©Úes    r+   r   r   ¸  s    € õB �!•SÑÔð 	Ý˜A‰ŒÐÝ	�A•sÑ	Ô	ð Ý˜A‰ŒÐÝ	�A•sÑ	Ô	ð ÝÐ4Ð4¨Q¬VÐ4Ñ4Ô4Ð5Ð5Ý	�A•sÑ	Ô	ð Ý•7˜1œ6‘?”? A¤EÑ*Ô*Ð*àˆr,   c                 ór  — g }g }t          | ¦  «        } | j        D �]}|                     t          ¦  «        rât	          |t
          ¦  «        r#|                     t          |¦  «        ¦  «         ŒUt	          |t          ¦  «        rd}|j        D ]/}t	          |t
          ¦  «        r|t          |¦  «        z  }Œ*||z  }Œ0|                     t          ¦  «        r|                     |¦  «         ŒÓ|                     |¦  «         Œé|                     |¦  «         Œÿ|                     |¦  «         �Œt          |¦  «        \  }}|                     |¦  «         t          |¦  «        \  }}|                     |¦  «         t          |¦  «        \  }}|                     |¦  «         t          |Ž t          |Ž z   S )a¢  Takes a sum of terms involving Clebsch-Gordan coefficients and
    simplifies the terms.

    Explanation
    ===========

    First, we create two lists, cg_part, which is all the terms involving CG
    coefficients, and other_part, which is all other terms. The cg_part list
    is then passed to the simplification methods, which return the new cg_part
    and any additional terms that are added to other_part
    r5   )r   r*   Úhasr   r»   r   Úappendr½   r   Ú_check_varsh_871_1Ú_check_varsh_871_2Ú_check_varsh_872_9r   )rÁ   Úcg_partÚ
other_partrH   ÚtermsÚtermÚothers          r+   r¼   r¼   å  s³  € ð €GØ€Jåˆq‰	Œ	€AØŒvð #ñ #ˆØ�7Š7•2‰;Œ;ð 	#Ý˜#�sÑ#Ô#ð $Ø×!Ò!¥,¨sÑ"3Ô"3Ñ4Ô4Ð4Ð4Ý˜C¥Ñ%Ô%ð $Ø�ØœHð &ð &�DÝ! $­Ñ,Ô,ð &Ø¥¨dÑ!3Ô!3Ñ3˜˜à ™˜˜Ø—9’9�R‘=”=ð -Ø—N’N 5Ñ)Ô)Ð)Ð)à×%Ò% eÑ,Ô,Ð,Ð,à—’˜sÑ#Ô#Ð#Ð#à×Ò˜cÑ"Ô"Ð"Ñ"å'¨Ñ0Ô0�N€GˆUØ×Ò�eÑÔÐÝ'¨Ñ0Ô0�N€GˆUØ×Ò�eÑÔÐÝ'¨Ñ0Ô0�N€GˆUØ×Ò�eÑÔÐÝ�ˆ=�3 
Ð+Ñ+Ð+r,   c                 ó  — t          t          d¦  «        \  }}}}|t          |||d||¦  «        z  }d|z  dz   t          |d¦  «        z  }|t	          |¦  «        z  }d|z  dz   }||z   }	t          ||||| ||||f||f||	¦	  «	        S )N)ÚaÚalphaÚbÚltr   r8   r5   )r!   r   r   r   ÚabsÚ_check_cg_simp)
Ú	term_listrÎ   rÏ   rÐ   rÑ   ÚexprÚsimpÚsignÚ
build_exprÚ
index_exprs
             r+   rÅ   rÅ     s¥   € å�$Ð 9Ñ:Ô:�O€A€uˆa�Ø�b��E˜1˜a  EÑ*Ô*Ñ*€DØˆa‰C�!‰G•^ A qÑ)Ô)Ñ)€DØ�c�"‰gŒg‰:€DØ�1‘�q‘€JØ�U‘€JÝ˜$  d¨B°	¸A¸uÀaÈÐ;LÈqÐRSÈfÐV`ÐblÑmÔmÐmr,   c                 ó<  — t          t          d¦  «        \  }}}}|t          |||| |d¦  «        z  }t          d|z  dz   ¦  «        t	          |d¦  «        z  }d||z
  z  |z  t          |¦  «        z  }d|z  dz   }||z   }	t          ||||| ||||f||f||	¦	  «	        S )N)rÎ   rÏ   ÚcrÑ   r   r8   r5   rP   )r!   r   r   r   r   rÒ   rÓ   )
rÔ   rÎ   rÏ   rÛ   rÑ   rÕ   rÖ   r×   rØ   rÙ   s
             r+   rÆ   rÆ     s¼   € å�$Ð 9Ñ:Ô:�O€A€uˆa�Ø�b��E˜1˜u˜f a¨Ñ+Ô+Ñ+€DÝ��!‘�a‘‰=Œ=�¨¨1Ñ-Ô-Ñ-€DØ�!�e‘)Ñ˜RÑ¥ B¡¤Ñ'€DØ�1‘�q‘€JØ�U‘€JÝ˜$  d¨B°	¸A¸uÀaÈÐ;LÈqÐRSÈfÐV`ÐblÑmÔmÐmr,   c                 ó8  — t          t          d¦  «        \	  }}}}}}}}}	|	t          ||||||¦  «        dz  z  }
t          j        }|	t          |	¦  «        z  }t          ||z
  ¦  «        }t          ||z   ¦  «        }||z   dz   t          |||k    fdt          ||¦  «        f|||k    f¦  «        z
  }||z   |z
  }t          |
|||	| |||||||	f||||f||¦	  «	        \  } }t          ||z
  ¦  «        }||z   }|dz   |z
  ||z   dz   z  }||z
  ||z   z  |z   |z   }t          |
|||	| |||||||	f||||f||¦	  «	        \  } }t          ||||||¦  «        t          ||||||¦  «        z  }
t          ||¦  «        t          ||¦  «        z  }t          j        }t          ||z
  ¦  «        }t          ||z   ¦  «        }||z   dz   t          |||k    fdt          ||¦  «        f|||k    f¦  «        z
  }||z   |z
  }t          |
||t          j        | ||||||||f||||||f||¦	  «	        \  } }t          ||z
  ¦  «        }||z   }|dz   |z
  ||z   dz   z  }||z
  ||z   z  |z   |z   }t          |
||t          j        | ||||||||f||||||f||¦	  «	        \  } }| ||z   |z   fS )N)	rÎ   rÏ   ÚalphaprÐ   ÚbetaÚbetaprÛ   ÚgammarÑ   r8   r5   r   )
r!   r   r   r
   ÚOnerÒ   r   r	   rÓ   r   )rÔ   rÎ   rÏ   rÝ   rÐ   rÞ   rß   rÛ   rà   rÑ   rÕ   rÖ   r×   ÚxÚyrØ   rÙ   Úother1Úother2Úother3Úother4s                        r+   rÇ   rÇ   )  sÏ  € å58½ð @Jñ 6Kô 6KÑ2€A€uˆf�a˜˜u a¨°ð
 �b��E˜1˜d A uÑ-Ô-¨qÑ0Ñ0€DÝŒ5€DØ�c�"‰gŒg‰:€DÝˆA�‰E‰
Œ
€AÝˆE�D‰LÑÔ€AØ�Q‘˜‘�Y¨¨1¨qª5 z°Aµr¸!¸Q±x´x°=À1ÀaÈ!ÂeÀ*ÑMÔMÑM€JØ�Q‘˜‘€JÝ& t¨T°4¸¸YÈÈEÐSTÐVZÐ\]Ð_dÐfhÐHiÐlmÐotÐvwÐy}Ðk~ð  AKð  MWñ  Xô  XÑ€Iˆvõ 	ˆA�‰E‰
Œ
€AØ	ˆA‰€AØ�a‘%˜!‘)˜a !™e a™iÑ(€JØ�a‘%˜!˜a™%‘ 1Ñ$ uÑ,€JÝ& t¨T°4¸¸YÈÈEÐSTÐVZÐ\]Ð_dÐfhÐHiÐlmÐotÐvwÐy}Ðk~ð  AKð  MWñ  Xô  XÑ€Iˆvõ
 ˆa�˜˜4  EÑ*Ô*­2¨a°¸¸EÀ1ÀeÑ+LÔ+LÑL€DÝ˜% Ñ(Ô(­¸¸eÑ)DÔ)DÑD€DÝŒ5€DÝˆA�‰E‰
Œ
€AÝˆE�D‰LÑÔ€AØ�Q‘˜‘�Y¨¨1¨qª5 z°Aµr¸!¸Q±x´x°=À1ÀaÈ!ÂeÀ*ÑMÔMÑM€JØ�Q‘˜‘€JÝ& t¨T°4½¼À	ÈAÈuÐV\Ð^_ÐaeÐglÐnoÐqvÐKwÐz{ð  ~Cð  EKð  MNð  PTð  V[ð  z\ð  ^hð  jtñ  uô  uÑ€Iˆvõ 	ˆA�‰E‰
Œ
€AØ	ˆA‰€AØ�a‘%˜!‘)˜a !™e a™iÑ(€JØ�a‘%˜!˜a™%‘ 1Ñ$ uÑ,€JÝ& t¨T°4½¼À	ÈAÈuÐV\Ð^_ÐaeÐglÐnoÐqvÐKwÐz{ð  ~Cð  EKð  MNð  PTð  V[ð  z\ð  ^hð  jtñ  uô  uÑ€Iˆvà�f˜v‘o¨Ñ.Ð.Ð.r,   c	           
      óØ  ‡‡— d}	d}
|
t          ‰¦  «        k     �rÍt          ‰|
         | t          |¦  «        ¦  «        Š‰€|
dz  }
Œ@|                     ‰¦  «        j        s|
dz  }
Œ`ˆfd„|D ¦   «         }dg|                     ‰¦  «        z  }t	          |
t          ‰¦  «        ¦  «        D �]G}t          ‰|         |                      |¦  «        t          |¦  «        t          |¦  «        z
  |                     ‰¦  «        |                     |¦  «        f¬¦  «        }|€Œw|                     |¦  «                             |¦  «        j        sŒ¥||                      |d¦  «                             |¦  «                             |¦  «        |                     |¦  «        |                     |¦  «                             |¦  «        f||                     |¦  «                             |¦  «        <   �ŒIt          d„ |D ¦   «         ¦  «        sÂt          d„ |D ¦   «         Ž }d„ |D ¦   «         }|                     ¦   «          |                     ¦   «          ˆfd	„|D ¦   «          |D ]K}t          |d
         ¦  «        |k    r0‰ 
                    |d
         ||d         z  z
  |d         z  ¦  «         ŒL|	|||z                       ‰¦  «        z  z  }	n|
dz  }
|
t          ‰¦  «        k     �°Í‰|	fS )a½   Checks for simplifications that can be made, returning a tuple of the
    simplified list of terms and any terms generated by simplification.

    Parameters
    ==========

    expr: expression
        The expression with Wild terms that will be matched to the terms in
        the sum

    simp: expression
        The expression with Wild terms that is substituted in place of the CG
        terms in the case of simplification

    sign: expression
        The expression with Wild terms denoting the sign that is on expr that
        must match

    lt: expression
        The expression with Wild terms that gives the leading term of the
        matched expr

    term_list: list
        A list of all of the terms is the sum to be simplified

    variables: list
        A list of all the variables that appears in expr

    dep_variables: list
        A list of the variables that must match for all the terms in the sum,
        i.e. the dependent variables

    build_index_expr: expression
        Expression with Wild terms giving the number of elements in cg_index

    index_expr: expression
        Expression with Wild terms giving the index terms have when storing
        them to cg_index

    r   Nr5   c                 ó$   •— g | ]}|‰|         f‘ŒS r   r   )rG   râ   Úsub_1s     €r+   rº   z"_check_cg_simp.<locals>.<listcomp>‰  s!   ø€ Ð8Ð8Ð8 Q�A�u˜Q”x�=Ð8Ð8Ð8r,   )r×   c              3   ó   K  — | ]}|d u V — Œ	d S r   r   )rG   rU   s     r+   rI   z!_check_cg_simp.<locals>.<genexpr>’  s&   è è € Ð/Ð/ �1˜�9Ð/Ð/Ð/Ð/Ð/Ð/r,   c                 ó8   — g | ]}t          |d          ¦  «        ‘ŒS )r8   )rÒ   ©rG   rË   s     r+   rº   z"_check_cg_simp.<locals>.<listcomp>“  s"   € Ð?Ð?Ð?¨T�C  Q¤™LœLÐ?Ð?Ð?r,   c                 ó   — g | ]
}|d          ‘ŒS )r   r   rí   s     r+   rº   z"_check_cg_simp.<locals>.<listcomp>”  s   € Ð5Ð5Ð5 D˜˜QœÐ5Ð5Ð5r,   c                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r   )Úpop)rG   rV   rÔ   s     €r+   rº   z"_check_cg_simp.<locals>.<listcomp>—  s%   ø€ Ð1Ð1Ð1 1ˆi�mŠm˜AÑÔÐ1Ð1Ð1r,   r8   r;   )ÚlenÚ	_check_cgÚsubsrE   r[   ÚanyÚminÚsortÚreverserÒ   rÄ   )rÕ   rÖ   r×   rÑ   rÔ   Ú	variablesÚdep_variablesÚbuild_index_exprrÙ   rÉ   rU   Úsub_depÚcg_indexrV   Úsub_2Úmin_ltÚindicesrË   rê   s       `             @r+   rÓ   rÓ   V  sZ  øø€ ðR €JØ	€AØ
�c�)‰nŒnÒ
Ñ
Ý˜) Aœ,¨­c°)©n¬nÑ=Ô=ˆØˆ=Ø�‰FˆAØØ×$Ò$ UÑ+Ô+Ô5ð 	Ø�‰FˆAØØ8Ð8Ð8Ð8¨-Ð8Ñ8Ô8ˆØ�6Ð*×/Ò/°Ñ6Ô6Ñ6ˆÝ�q�#˜i™.œ.Ñ)Ô)ð 	[ñ 	[ˆAÝ˜i¨œl¨D¯IªI°gÑ,>Ô,>ÅÀIÁÄÕQTÐUbÑQcÔQcÑ@cÐko×ktÒktÐuzÑk{Ôk{ð  ~B÷  ~Gò  ~Gð  HOñ  ~Pô  ~Pð  kQð  Rñ  Rô  RˆEØˆ}ØØ—?’? 7Ñ+Ô+×0Ò0°Ñ7Ô7ÔAð ØØ=>ÀÇ	Â	È"ÈaÑ@PÔ@P×@UÒ@UÐV]Ñ@^Ô@^×@cÒ@cÐdiÑ@jÔ@jÐln×lsÒlsÐtyÑlzÔlzð  }A÷  }Fò  }Fð  GNñ  }Oô  }O÷  }Tò  }Tð  UZñ  }[ô  }[ð  >[ˆH�Z—_’_ WÑ-Ô-×2Ò2°5Ñ9Ô9Ñ:Ñ:ÝÐ/Ð/ hÐ/Ñ/Ô/Ñ/Ô/ð 	ÝÐ?Ð?°XÐ?Ñ?Ô?Ð@ˆFØ5Ð5¨HÐ5Ñ5Ô5ˆGØ�LŠL‰NŒNˆNØ�OŠOÑÔÐØ1Ð1Ð1Ð1¨Ð1Ñ1Ô1Ð1Ø ð Kð K�Ý�t˜A”w‘<”< &Ò(Ð(Ø×$Ò$ t¨A¤w°¸¸Q¼±Ñ'?ÀÀaÄÑ&HÑJÔJÐJøØ˜& $ t¡)×!1Ò!1°%Ñ!8Ô!8Ñ8Ñ8ˆJˆJà�‰FˆAð9 �c�)‰nŒnÒ
Ñ
ð: �jÐ Ð r,   Nc                 óü   — |                       |¦  «        }|€dS |�Kt          |t          ¦  «        st          d¦  «        ‚|d         |d                              |¦  «        k    sdS t          |¦  «        |k    r|S dS )z2Checks whether a term matches the given expressionNzsign must be a tupler   r5   )Úmatchr»   ro   Ú	TypeErrorró   rñ   )Úcg_termrÕ   Úlengthr×   Úmatchess        r+   rò   rò   ¡  sˆ   € ð �mŠm˜DÑ!Ô!€GØ€ØˆØÐÝ˜$¥Ñ&Ô&ð 	4ÝÐ2Ñ3Ô3Ð3Ø�AŒw˜4 œ7Ÿ.š.¨Ñ1Ô1Ò1Ð1ØˆFÝ
ˆ7�|„|�vÒÐØˆð Ðr,   c                 ó`   — t          | ¦  «        } t          | ¦  «        } t          | ¦  «        } | S r   )Ú_check_varsh_sum_871_1Ú_check_varsh_sum_871_2Ú_check_varsh_sum_872_4rÀ   s    r+   r½   r½   °  s.   € Ý˜qÑ!Ô!€AÝ˜qÑ!Ô!€AÝ˜qÑ!Ô!€AØ€Hr,   c                 óT  — t          d¦  «        }t          d¦  «        }t          d¦  «        }|                      t          t	          |||d||¦  «        || |f¦  «        ¦  «        }|�?t          |¦  «        dk    r,d|z  dz   t          |d¦  «        z                       |¦  «        S | S )NrÎ   rÏ   rÐ   r   r8   r5   )r   r   r  r   r   rñ   r   ró   )rÁ   rÎ   rÏ   rÐ   r  s        r+   r  r  ·  sž   € ÝˆS‰	Œ	€AÝ�GÑÔ€EÝˆS‰	Œ	€AØ�GŠG•C�˜1˜e Q¨¨1¨eÑ4Ô4°u¸q¸bÀ!°nÑEÔEÑFÔF€EØÐ�S ™ZœZ¨1š_˜_Ø�1‘�q‘�.¨¨AÑ.Ô.Ñ.×4Ò4°UÑ;Ô;Ð;Ø€Hr,   c                 ó‚  — t          d¦  «        }t          d¦  «        }t          d¦  «        }|                      t          d||z
  z  t	          |||| |d¦  «        z  || |f¦  «        ¦  «        }|�Lt          |¦  «        dk    r9t          d|z  dz   ¦  «        t          |d¦  «        z                       |¦  «        S | S )NrÎ   rÏ   rÛ   rP   r   r8   r5   )	r   r   r  r   r   rñ   r   r   ró   )rÁ   rÎ   rÏ   rÛ   r  s        r+   r  r  Á  s»   € ÝˆS‰	Œ	€AÝ�GÑÔ€EÝˆS‰	Œ	€AØ�GŠGÝˆR�1�u‘9Ñ�b  E¨1¨u¨f°a¸Ñ;Ô;Ñ;¸eÀaÀRÈ¸^ÑLÔLñNô N€EàÐ�S ™ZœZ¨1š_˜_Ý�Q�q‘S˜1‘W‘”�n¨Q°Ñ2Ô2Ñ2×8Ò8¸Ñ?Ô?Ð?Ø€Hr,   c           	      óÖ  — t          d¦  «        }t          d¦  «        }t          d¦  «        }t          d¦  «        }t          d¦  «        }t          d¦  «        }t          d¦  «        }t          d¦  «        }t          ||||||¦  «        }	t          ||||||¦  «        }
|                      t	          |	|
z  || |f|| |f¦  «        ¦  «        }|�Gt          |¦  «        d	k    r4t          ||¦  «        t          ||¦  «        z                       |¦  «        S |                      t	          |	d
z  || |f|| |f¦  «        ¦  «        }|�t          |¦  «        dk    rt          j	        S | S )NrÏ   rÞ   rÎ   rÐ   rÛ   Úcprà   Úgammapr­   r8   r>   )
r   r   r   r  r   rñ   r   ró   r
   rá   )rÁ   rÏ   rÞ   rÎ   rÐ   rÛ   r  rà   r  Úcg1Úcg2Úmatch1Úmatch2s                r+   r	  r	  Ì  sQ  € Ý�GÑÔ€EÝ�6‰?Œ?€DÝˆS‰	Œ	€AÝˆS‰	Œ	€AÝˆS‰	Œ	€AÝ	ˆd‰Œ€BÝ�‰MŒM€EÝ�(‰^Œ^€FÝ
ˆQ��q˜$  5Ñ
)Ô
)€CÝ
ˆQ��q˜$  FÑ
+Ô
+€CØ�WŠW•S˜˜S™ 5¨1¨"¨a .°4¸!¸¸Q°-Ñ@Ô@ÑAÔA€FØÐ�c &™kœk¨QÒ.Ð.Ý˜q "Ñ%Ô%¥n°U¸FÑ&CÔ&CÑC×IÒIÈ&ÑQÔQÐQØ�WŠW•S˜˜a™ %¨!¨¨Q °$¸¸¸A°Ñ?Ô?Ñ@Ô@€FØÐ�c &™kœk¨QÒ.Ð.ÝŒuˆØ€Hr,   c                 ó  ‡ ‡— t          ‰ t          ¦  «        r‰ fddfS g Šd}t          ‰ t          t          f¦  «        st	          d¦  «        ‚t          ‰ t          ¦  «        r@‰ j        j        r4‰ j        j        r"ˆˆ fd„t          ‰ j        ¦  «        D ¦   «          n‰ fddfS t          ‰ t          ¦  «        rO‰ j        D ]2}t          |t          ¦  «        r‰ 	                    |¦  «         Œ-||z  }Œ3‰||t          |¦  «        z  fS d S )Nr5   z term must be CG, Add, Mul or Powc                 óD   •— g | ]}‰                      ‰j        ¦  «        ‘ŒS r   )rÄ   r¾   )rG   rl   ÚcgrË   s     €€r+   rº   z_cg_list.<locals>.<listcomp>é  s'   ø€ Ð=Ð=Ð= qˆb�iŠi˜œ	Ñ"Ô"Ð=Ð=Ð=r,   )r»   r   r   r   ÚNotImplementedErrorr¿   rE   r[   r*   rÄ   rÒ   )rË   ÚcoeffrH   r  s   `  @r+   Ú_cg_listr  à  s(  øø€ Ý�$�ÑÔð Øˆw˜˜1ˆ}ÐØ	€BØ€EÝ�d�S¥#˜JÑ'Ô'ð FÝ!Ð"DÑEÔEÐEÝ�$�ÑÔð ! ¤Ô!3ð !ØŒ8Ôð 	!Ø=Ð=Ð=Ð=Ð=­E°$´(©O¬OÐ=Ñ=Ô=Ð=Ð=à�7˜A˜q�=Ð Ý�$�ÑÔð +Ø”9ð 	ð 	ˆCÝ˜#�rÑ"Ô"ð Ø—	’	˜#‘”��à˜‘��Ø�5˜%¥ E¡
¤
Ñ*Ð*Ð*ð+ð +r,   r   )7r|   Úsympy.concrete.summationsr   Úsympy.core.addr   Úsympy.core.exprr   Úsympy.core.functionr   Úsympy.core.mulr   Úsympy.core.powerr   Úsympy.core.relationalr	   Úsympy.core.singletonr
   Úsympy.core.symbolr   r   Úsympy.core.sympifyr   Ú(sympy.functions.elementary.miscellaneousr   Ú$sympy.functions.elementary.piecewiser   Ú sympy.printing.pretty.stringpictr   r   Ú(sympy.functions.special.tensor_functionsr   Úsympy.physics.wignerr   r   r   r   Úsympy.printing.precedencer   Ú__all__r   r   r   r   r   r¼   rÅ   rÆ   rÇ   rÓ   rò   r½   r  r  r	  r  r   r,   r+   ú<module>r*     s  ðð
 #Ð "à )Ð )Ð )Ð )Ð )Ð )Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø $Ð $Ð $Ð $Ð $Ð $Ø "Ð "Ð "Ð "Ð "Ð "Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø &Ð &Ð &Ð &Ð &Ð &Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø :Ð :Ð :Ð :Ð :Ð :Ø CÐ CÐ CÐ CÐ CÐ CÐ CÐ Cà CÐ CÐ CÐ CÐ CÐ CØ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PØ 0Ð 0Ð 0Ð 0Ð 0Ð 0ðð ð €ðxOð xOð xOð xOð xOˆtñ xOô xOð xOðvS9ð S9ð S9ð S9ð S9ˆñ S9ô S9ð S9ðlVPð VPð VPð VPð VPˆtñ VPô VPð VPðremð emð emð emð emˆtñ emô emð emðP*ð *ð *ðZ+,ð +,ð +,ð\nð nð nðnð nð nð*/ð */ð */ðZH!ð H!ð H!ðVð ð ð ðð ð ðð ð ðð ð ðð ð ð(+ð +ð +ð +ð +r,   