Ë
    7^(h5H  ã                   óž   — d dl mZmZmZmZ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 d dlmZmZ d dlmZmZ d„ Zd	„ Z G d
„ de«      Zy)é    )ÚFunctionÚSÚMulÚPowÚAdd)ÚorderedÚdefault_sort_key)Úexpand_func)ÚDummy)ÚgammaÚsqrtÚsin)ÚfactorÚcancel)ÚsiftÚuniqc                 ó˜  — | j                  t        «      } | j                  t        «      }|D �ch c]  }t	        |t        «      sŒ|’Œ }}|s| S ||z  }|| j                  «       j                  t        «      z  }|r³t        t        |«      D ��cg c]?  }t        «       | |j                  |j                  D �cg c]  }t        |d¬«      ‘Œ c}Ž f‘ŒA c}}Ž \  }}}| j                  t        t        ||«      «      «      }	t        |	d¬«      j                  t        t        ||«      «      «      S t        | d¬«      S c c}w c c}w c c}}w )a	  
    Simplify expressions with gamma functions.

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

    This function takes as input an expression containing gamma
    functions or functions that can be rewritten in terms of gamma
    functions and tries to minimize the number of those functions and
    reduce the size of their arguments.

    The algorithm works by rewriting all gamma functions as expressions
    involving rising factorials (Pochhammer symbols) and applies
    recurrence relations and other transformations applicable to rising
    factorials, to reduce their arguments, possibly letting the resulting
    rising factorial to cancel. Rising factorials with the second argument
    being an integer are expanded into polynomial forms and finally all
    other rising factorial are rewritten in terms of gamma functions.

    Then the following two steps are performed.

    1. Reduce the number of gammas by applying the reflection theorem
       gamma(x)*gamma(1-x) == pi/sin(pi*x).
    2. Reduce the number of gammas by applying the multiplication theorem
       gamma(x)*gamma(x+1/n)*...*gamma(x+(n-1)/n) == C*gamma(n*x).

    It then reduces the number of prefactors by absorbing them into gammas
    where possible and expands gammas with rational argument.

    All transformation rules can be found (or were derived from) here:

    .. [1] https://functions.wolfram.com/GammaBetaErf/Pochhammer/17/01/02/
    .. [2] https://functions.wolfram.com/GammaBetaErf/Pochhammer/27/01/0005/

    Examples
    ========

    >>> from sympy.simplify import gammasimp
    >>> from sympy import gamma, Symbol
    >>> from sympy.abc import x
    >>> n = Symbol('n', integer = True)

    >>> gammasimp(gamma(x)/gamma(x - 3))
    (x - 3)*(x - 2)*(x - 1)
    >>> gammasimp(gamma(n + 3))
    gamma(n + 3)

    F)Úas_comb)Úrewriter   Úatomsr   Ú
isinstanceÚas_dummyÚzipr   r   ÚfuncÚargsÚ
_gammasimpÚxreplaceÚdict)
ÚexprÚfÚiÚgammasÚfiÚaÚdumÚfunÚsimpÚds
             úV/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/simplify/gammasimp.pyÚ	gammasimpr*   
   s,  € ðd �<‰<œÓ€Dð
 	�
‰
”8Ó€AàÖ3�Aœj¨¬EÕ2ŠaÐ3€FÐ3ÙØˆØˆ�K€Aà	ˆD�M‰M‹O×!Ñ!¤(Ó+Ñ+€AÙÜô ˜a“j÷"ð ô ‹W�b˜'˜"Ÿ'™'Ø68·g±gö$?Ø12”
˜1 eÖ,ò$?ð @ò Aó"ð #‰ˆˆS�$ð �M‰Mœ$œs 3¨›}Ó-Ó.ˆÜ˜! UÔ+×4Ñ4´T¼#¸cÀ4».Ó5IÓJÐJä�d EÔ*Ð*ùò 4ùò$?ùó"s#   ¯D<ÁD<Â)E
Â8EÃE
ÅE
c                 ó  ‡‡— | j                  t        d„ «      } ‰r| j                  t        d„ «      } n| j                  t        d„ «      } dˆˆfd„	Št        | «      } ‰|«      } | |k7  rt        | «      } | j                  t        d„ «      } | S )a;  
    Helper function for gammasimp and combsimp.

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

    Simplifies expressions written in terms of gamma function. If
    as_comb is True, it tries to preserve integer arguments. See
    docstring of gammasimp for more information. This was part of
    combsimp() in combsimp.py.
    c                 ó<   — t        d| dz
  j                  «       «      S ©Né   )Ú_rfÚexpand©Úns    r)   ú<lambda>z_gammasimp.<locals>.<lambda>a   s   € ”#�a˜!˜a™%Ÿ™Ó)Ó*€ ó    c                 ó   — t        |dz   «      S r-   ©r   ©r$   Úbs     r)   r3   z_gammasimp.<locals>.<lambda>e   s   € œ˜q 1™u›€ r4   c                 ó6   — t        | |z   «      t        | «      z  S ©Nr6   r7   s     r)   r3   z_gammasimp.<locals>.<lambda>h   s   € œ˜q 1™u›¤e¨A£hÑ.€ r4   c                 ó‚  •‡(‡)‡*‡+‡,‡-— | j                   r| S d„ }ˆ+fd„Š+|dk(  r6 | j                  | j                  D �cg c]  } ‰/||dz   «      ‘Œ c}Ž } |dz  }| j                  s| S |dk(  rS| j	                  «       \  }}|s| S |r5 ‰/t        j                  |«      |dz   «      t        j                  |«      z  S |dz  }|dk(  �r;t        | j                  ‰+d¬«      \  }}t        |Ž }t        |Ž }	|	j                  «       \  }
}t        d«      D ]Ä  }t        t        t        j                  |
«      «      «      }t        |«      D ]r  \  }}|j                  sŒt        |j                  D �cg c]  } ‰/ |||z  «      |dz   «      ‘Œ c}Ž j                  «       \  }}|||<   |j!                  t"        «      rŒr n t        |Ž }
|dk(  r
 ‰+|
«      s n||
}}
ŒÆ ||
z  |z  } | j                  r ‰+|«      s
 ‰+|
«      s| S |dz  }|dk(  r	 | } ‰/| d	«      } | |k(  r| S Œg }g }g }g }d
„ }t        t        | j                  «      «      }|rŒ|j%                  «       j                  «       \  }}	 ||«      \  }}|r|j'                  |«       n|du r|j'                  |«        ||	«      \  }}|r|j'                  |«       n|du r|j'                  |«       |rŒŒ‰.�su|||f|||ffD �]*  \  }}}g }|�r|j%                  «       Š*‰*j(                  r|j+                  ‰*«       Œ1t        |«      D ]È  \  }}‰*|z   dz
  }|j,                  sŒ|j+                  t.        j0                  «       |j+                  t3        t.        j0                  ‰*z  «      «       |j%                  |«       |dkD  r$|j'                  ˆ*fd„t        |«      D «       «       n)|dk  r$|j'                  ˆ*fd„t        | «      D «       «        n |j+                  ‰*«       |r�Œ||dd �Œ- ||||f||||ffD �]  \  }} }!}"	 |D ]!  }| D ]  Š-|d‰-z  z
  }|j,                  sŒ n Œ! n Œ1|j5                  |«       | j5                  ‰-«       |dkD  r$|!j'                  ˆ-fd„t        |«      D «       «       n)|dk  r$|"j'                  ˆ-fd„t        | «      D «       «       |j+                  ‰-t.        j6                  z   «       |!j+                  dd‰-z  dz
  z  «       |"j+                  t9        t.        j0                  «      «       �Œ d„ Š(ˆ(fd„}#|||f|||ffD ]  \  }}} |#|||«       Œ |dk\  �rˆ)ˆ,fd„}$i Š,ˆ,fd„Š)ˆ)ˆ,fd„}%||z   |z   |z   D ]
  }  |%| «       Œ |||f|||ffD ]Ö  \  }}}g }|rÇ|j%                  «       }&d}'|'rŸd}' |$||&«      Š-‰-�<|j5                  ‰-«       ‰-|&k7  r|j+                  ‰-|&z  «        |%‰-|&z  «       |&dz  }&d}' |$||&dz
  «      Š-‰-�E|j5                  ‰-«       ‰-|&dz
  k7  r%|j+                  |&dz
  ‰-z  «        |%|&dz
  ‰-z  «       |&dz  }&d}'|'rŒŸ|j+                  |&«       |rŒÇ||dd ŒØ t        |D �&cg c]  }&t#        |&«      ‘Œ c}&Ž t        |D �&cg c]  }&t#        |&«      ‘Œ c}&Ž z  t        |Ž z  t        |Ž z  S c c}w c c}w c c}&w c c}&w )z/ Simplify products of gamma functions further. c                 ó’   — | j                  t        «      }| j                  t        d„ «      }|j                  t        «      |k  r|} | S )Nc                 óf   — t        d| dz
  j                  «       «      j                  t         d„ «      S )Nr.   c                 ó6   — t        | |z   «      t        | «      z  S r:   r6   r7   s     r)   r3   zU_gammasimp.<locals>.rule_gamma.<locals>.gamma_rat.<locals>.<lambda>.<locals>.<lambda>t   s   € ¬E°!°a±%«L¼¸q»Ñ,A€ r4   )r/   r0   Úreplacer1   s    r)   r3   zC_gammasimp.<locals>.rule_gamma.<locals>.gamma_rat.<locals>.<lambda>s   s*   € ¬C°°A¸±E·>±>Ó3Có -ß‘'œ#ÑAÓBð r4   )Úcountr   r?   )ÚxÚwasÚxxs      r)   Ú	gamma_ratz1_gammasimp.<locals>.rule_gamma.<locals>.gamma_ratp   s@   € à—'‘'œ%“.ˆCØ—‘œ5ñ #Có DˆBà�x‰xœ‹ Ò$Ø�ØˆHr4   c                 ó(  •— t        | t        «      ry| j                  s| j                  rt	        ˆfd„| j
                  D «       «      S | j                  r>| j                  j                  s| j                  j                  r ‰| j                  «      S y)NTc              3   ó.   •K  — | ]  } ‰|«      –— Œ y ­wr:   © )Ú.0ÚxiÚgamma_factors     €r)   ú	<genexpr>zG_gammasimp.<locals>.rule_gamma.<locals>.gamma_factor.<locals>.<genexpr>~   s   øè ø€ Ò=°™<¨×+Ñ=ùó   ƒF)r   r   Úis_AddÚis_MulÚanyr   Úis_PowÚexpÚ
is_integerÚbaseÚis_positive)rA   rJ   s    €r)   rJ   z4_gammasimp.<locals>.rule_gamma.<locals>.gamma_factory   sc   ø€ ä˜!œUÔ#ØØ�xŠx˜1Ÿ8š8ÜÓ=°a·f±fÔ=Ó=Ð=Ø�xŠx˜QŸU™U×-Ò-°·±×1CÒ1CÙ# A§F¡FÓ+Ð+Ør4   r   r.   é   T)Úbinaryé   é   c                 óÐ   — | t         j                  u rd g fS | j                  «       \  }}|j                  r-t	        |t
        «      rd|j                  d   g|z  fS d|g|z  fS d| gfS )NTr   F)r   ÚOneÚas_base_expÚ
is_Integerr   r   r   )Úpr8   Úes      r)   Ú	explicatez1_gammasimp.<locals>.rule_gamma.<locals>.explicateº   sk   € Ø”A—E‘E‰zØ˜R�x�Ø—=‘=“?‰DˆAˆqØ�|Š|Ü˜a¤Ô'Ø !§&¡&¨¡) ¨Q¡Ð.Ð.à  1 # a¡%˜<Ð'à˜q˜c�zÐ!r4   Fc              3   ó.   •K  — | ]  }d ‰z
  |z   –— Œ y­w)r.   NrG   ©rH   ÚkÚg1s     €r)   rK   z1_gammasimp.<locals>.rule_gamma.<locals>.<genexpr>ê   s   øè ø€ Ò(F¸¨¨R©°!­Ñ(FùrL   c              3   ó*   •K  — | ]
  }‰ |z
  –— Œ y ­wr:   rG   ra   s     €r)   rK   z1_gammasimp.<locals>.rule_gamma.<locals>.<genexpr>ì   s   øè ø€ Ò(D°Q¨"¨¨q­Ñ(Dùs   ƒNc              3   ó.   •K  — | ]  }d ‰z  |z   –— Œ y­w)rU   NrG   ©rH   rb   Úys     €r)   rK   z1_gammasimp.<locals>.rule_gamma.<locals>.<genexpr>  s   øè ø€ Ò!<¨a ! A¡#¨¥'Ñ!<ùrL   c              3   ó4   •K  — | ]  }d ‰z  dz
  |z
  –— Œ y­w)rU   r.   NrG   rf   s     €r)   rK   z1_gammasimp.<locals>.rule_gamma.<locals>.<genexpr>  s   øè ø€ Ò!A°! ! A¡#¨¡'¨A¥+Ñ!Aùs   ƒc                 óŠ  — t        t        | «      «      }t        t        |«      «      D �]  }t        |dz   t        |«      «      D �cg c]  }||   ||   z
  dz  |f‘Œ }}|D ]×  \  }}|j                  dk(  sŒ|j
                  dk7  sŒ&|j
                  }|g}t        t        d|«      «      }|D ]B  \  }	}||	z  }
|
j                  sŒ|
|v sŒ|j                  |
«       |j                  |«       |rŒB n Œ’t        |«      D ]   \  }}||   }| j                  |«       |||<   Œ" |j
                  |d   |dd  fc c S  �Œ y c c}w )Nr.   r   )
Úlistr   ÚrangeÚlenr]   Úqr\   ÚremoveÚappendÚ	enumerate)ÚcoeffsÚur!   ÚjÚdjÚoner2   ÚgotÚgetr(   ÚmÚcs               r)   Ú_runz,_gammasimp.<locals>.rule_gamma.<locals>._run"  sH  € ô œ˜f›Ó&�Üœs 1›v›ó :�AÜ;@ÀÀQÁÌÈAËÓ;OÖP°a˜Q˜q™T A a¡D™[¨AÑ-¨qÒ1ÐP�BÐPØ"$ò :™˜˜QØŸ5™5 A›:¨#¯%©%°1«*Ø #§¡˜AØ#$ #˜CÜ"&¤u¨Q°£{Ó"3˜CØ(*ò )¡  1Ø$% a¡C Ø#$§<£<°A¸²HØ$'§J¡J¨q¤MØ$'§J¡J¨q¤MÚ+.Ù(-ð)ð !)Ü(1°#«ò +¡  1Ø$% a¡D Ø &§¡¨aÔ 0Ø)*  A¢ð+ð $'§5¡5¨#¨a©&°#°a°b°'Ð#9Ô9ò%:ñ:ùÚPs   ÁE c                 ó¤  •— i }| D ]6  }|j                  «       \  }}|j                  |g «      j                  |«       Œ8 t        |t        ¬«      }|D ]á  }t        ||   «      }g }		  ‰|«      }
|
€nª|
\  }}}|D ]:  }||z   dz
  }t        t        ||z
  «      «      D ]  }|j                  ||z
  «       Œ Œ< |||z   z  }|j                  dt        j                  z  t        |dz
  «      dz  z  |t        j                  |z
  z  z  «       |	j                  |«       Œµ|D �cg c]  }||z   ‘Œ	 c}|	z   ||<   Œã g }|D ]
  }|||   z  }Œ || d d  y c c}w )N)Úkeyr.   rU   )
Úas_coeff_AddÚ
setdefaultro   Úsortedr	   rk   Úintr   ÚPiÚHalf)r"   ÚnumerÚdenomÚratsÚgry   ÚresidÚkeysrq   ÚnewÚrunr2   ÚuiÚotherrr   Úconrb   rz   s                    €r)   Ú	_mult_thmz1_gammasimp.<locals>.rule_gamma.<locals>._mult_thm<  s“  ø€ ð
 �Øò 9�AØ Ÿ~™~Ó/‘H�A�uØ—O‘O E¨2Ó.×5Ñ5°aÕ8ð9ô
 ˜dÔ(8Ô9�Ø!ò D�EÜ# D¨¡KÓ0�FØ�CØÙ" 6›l˜Ø˜;Ø!ð (+™˜˜2˜uð "'ò 6˜AØ"'¨!¡)¨a¡-˜CÜ%*¬3¨q°2©v«;Ó%7ò 6 Ø %§¡¨S°1©WÕ 5ñ6ð6ð
   ¨¡™n˜ð Ÿ™ a¬¯©¡f´°!°a±%³¸±
Ñ%;Ø%&¬¯©°#©Ñ%6ñ&7ô 8ð Ÿ
™
 3œð3 ð8 7=Ö"=° 5¨1£9Ò"=ÀÑ"C�D˜’Kð?DðD �Ø!ò %�EØ˜˜e™Ñ$‘Að%ð �‘q‘	ùò #>s   ÄEc                 ó`  •— | sy  ‰
|«      \  }}| D ]š  }‰|   \  }}||k7  s+|j                  |«      s|t        «       k7  s|t        «       k7  rŒ<t        t        ||z  «      j                  «      }t        |j                  «      }t        |j                  «      }	|dk(  sŒ�|dkD  s|	dkD  sŒ˜|c S  y )Nr   )ÚintersectionÚsetrl   r   Úfree_symbols)ÚlrA   ÚS1ÚT1rg   ÚS2ÚT2r$   r8   ry   Ú
compute_STÚinvs             €€r)   Ú
find_fuzzyz2_gammasimp.<locals>.rule_gamma.<locals>.find_fuzzy{  s¦   ø€ ÙØÙ# A›‘��BØò !�AØ  ™V‘F�B˜Ø˜R’x¨¯©¸Ô(;Ø%'¬3«5¢[°B¼#»%²KØ ô œF 1 Q¡3›K×4Ñ4Ó5�AÜ˜AŸN™NÓ+�AÜ˜AŸN™NÓ+�Aà˜A“v 1 q¢5¨A°«EØ šñ!r4   c                 óÖ   •— | ‰v r‰|    S | j                   | j                  t        «      j                  | j                  t        «      D �ch c]  }|j
                  ’Œ c}«      fS c c}w r:   )r’   r   r   Úunionr   rQ   )r   r^   r™   s     €r)   r˜   z2_gammasimp.<locals>.rule_gamma.<locals>.compute_ST•  sZ   ø€ Ø˜3‘;Ø˜t™9Ð$Ø×)Ñ)¨4¯:©:´hÓ+?×+EÑ+EØ(,¯
©
´3«Ö8 1˜Ÿ›Ò8ó,:ð ;ð ;ùÚ8s   ÁA&
c                 ó   •—  ‰| «      ‰| <   y r:   rG   )r   r˜   r™   s    €€r)   Ú	update_STz1_gammasimp.<locals>.rule_gamma.<locals>.update_ST›  s   ø€ Ù& tÓ,��D’	r4   )Úis_Atomr   r   rN   Úargs_cncr   Ú
_from_argsr   Úas_numer_denomrk   rj   r   Ú	make_argsrp   rM   r   Úhasr   ÚpopÚextendrR   ro   r\   r   r�   r   rn   r‚   r   )0r   ÚlevelrD   rA   r   ÚncÚTÚFÚ	gamma_indr(   ÚndÚddÚipassr!   Únir$   rB   Únumer_gammasÚdenom_gammasÚnumer_othersÚdenom_othersr_   Únewargsr2   Úisgr“   r"   rƒ   r„   r‰   Úg2ÚngÚdgÚnoÚdorŽ   rš   rž   r†   Úcontrz   r˜   rc   rJ   r™   rg   r   Ú
rule_gammas0                                           @@@@@@€€r)   r¼   z_gammasimp.<locals>.rule_gammaj   s$  þ€ ð �<Š<ØˆKò	ô	ð �AŠ:Ø�4—9‘9ÀÇÁÖK¸A™z¨!¨U°Q©YÕ7ÒKÐLˆDØ�Q‰JˆEà�{Š{ØˆKð �AŠ:Ø—}‘}“‰HˆD�"ÙØ�ÙÙ!¤#§.¡.°Ó"6¸À¹	ÓBÄ3Ç>Á>ÐRTÓCUÑUÐUØ�Q‰JˆEð �A‹:Ü˜Ÿ	™	 <¸Ô=‰DˆAˆqÜ˜Q˜ˆIÜ�Q�ˆAà×%Ñ%Ó'‰FˆB�Ü˜q›ò  �ÜœG¤C§M¡M°"Ó$5Ó6Ó7�Ü& t›_ò "‘E�A�rØ—y“yÜ!$ØLNÏGÉGö'UØGH™J¡y°°2±£¸À¹	ÕBò'Uð "ç,™nÓ.ñ ˜˜Bð #%˜˜Q™Ø!Ÿv™v¤e�}Ù!ð"ô ˜$�Z�Ø˜Q’;¡|°BÔ'7ÙØ˜R�B‘ð ð ˜R‘< ‘?ˆDØ—K’K¡\°"Ô%5¹ÀbÔ9IØ�Ø�Q‰JˆEð �AŠ:ØØ�Ù! $¨Ó*�Ø˜3’;Ø�Kð	 ð ˆØˆØˆØˆò
	"ô ”w˜tŸy™yÓ)Ó*ˆÙØ—;‘;“=×/Ñ/Ó1‰DˆAˆqÙ˜q“\‰FˆC�ÙØ×#Ñ# AÕ&Ø˜‘Ø×#Ñ# AÔ&Ù˜q“\‰FˆC�ÙØ×#Ñ# AÕ&Ø˜‘Ø×#Ñ# AÔ&ò ò ð ˜l¨Lð*:à! <°Ð>ð)@ó  Ñ$�˜˜uð �ÚØŸ™›�BØ—}’}ØŸ
™
 2œØ Ü!*¨6Ó!2ò '™˜˜2Ø ™G a™K˜Ø Ÿ|š|Ø$ØŸ™¤Q§T¡TÔ*ØŸ™¤S¬¯©¨b©£\Ô2ØŸ
™
 1œØ˜qš5Ø!ŸL™LÓ(F¼UÀ1»XÔ(FÕFØ šUØ!ŸL™LÓ(D¼%ÀÀ»)Ô(DÔDÙð'ð Ÿ
™
 2œó% ð(  �‘q’	ð1 ð> %1°,ÀØ$0ð$2à$0°,ÀØ$0ð$2ð#3ó *‘��B˜˜Bð
 Øò 	˜Ø!#ò %˜AØ ! A a¡C¡˜AØ Ÿ|›|Ù %ð%ð
 %Ùð	ð Ø—I‘I˜a”LØ—I‘I˜a”LØ˜1’uØŸ	™	Ó!<´5¸³8Ô!<Õ<Ø˜QšØŸ	™	Ó!A´u¸a¸R³yÔ!AÔAØ—I‘I˜a¤!§&¡&™jÔ)Ø—I‘I˜a ! A¡#¨¡'™lÔ+Ø—I‘Iœd¤1§4¡4›jÔ)ñ' ð*òT:ô42ðh &2°<ÀÐ$NØ%1°<ÀÐ$Nð$Pò +‘��5˜%á˜!˜U EÕ*ð+ð �A‹:õ
!ð0 ˆCô;õ-à$ |Ñ3°lÑBÀ\ÑQò  �Ù˜$•ð ð ˜l¨Lð*:à! <°Ð>ð)@ò  Ñ$�˜˜uð �ÙØŸ
™
›�AØ�DÙØ$˜Ù& u¨aÓ0˜Ø˜=Ø!ŸL™L¨œOØ  AšvØ %§¡¨Q¨q©SÔ 1Ù )¨!¨A©#¤Ø ™F˜AØ#'˜DÙ& u¨a°!©eÓ4˜Ø˜=Ø!ŸL™L¨œOØ  A¨¡EšzØ %§¡¨a°!©e°Q©YÔ 7Ù )¨1¨q©5°!©)Ô 4Ø ™F˜AØ#'˜Dò# ð$ —J‘J˜q”Mò+ ð.  �‘q‘	ð7 ô>  |Ö4 !”U˜1•XÒ4Ð5Ü lÖ3 ”E˜!•HÒ3Ð4ñ5ä�<Ð ñ!ä#&¨Ð#5ñ6ð 	6ùòu	 Lùò4'Uùò@	 5ùÚ3s   ½Z-Å)Z2Ù%Z7ÚZ<
c                 óX   — | j                   rt        t        | «      «      S t        | «      S r:   )Úis_Rationalr
   r   r1   s    r)   r3   z_gammasimp.<locals>.<lambda>Ê  s   € ¨1¯=ª=”+œe A›hÓ'€ ¼eÀA»h€ r4   )r   )r?   r   r/   r   )r   r   rB   r¼   s    ` @r)   r   r   T   s‹   ù€ ð �<‰<œÙ*ó,€Dñ Ø�|‰|œCÙ%ó'‰ð �|‰|œCÙ.ó0ˆöW6ôr
 �‹,€Cá�c‹?€DØˆs‚{Ü�d‹|ˆà�<‰<œÙFóH€Dð €Kr4   c                   ó   — e Zd Zed„ «       Zy)r/   c                 ó  — |j                   rt|st        j                  S t        |«      }|dkD  r"t	        t        |«      D �cg c]  }||z   ‘Œ	 c}Ž S |dk  r*dt	        t        d| dz   «      D �cg c]  }||z
  ‘Œ	 c}Ž z  S y |j                  re|j                  «       \  }}|j                   rF|dkD  rt        ||«      t        ||z   |«      z  S |dk  r t        ||«      t        ||z   |z   | «      z  S |j                  r…|j                  «       \  }}|j                   re|dkD  r)t        ||«      t        ||z   |«      z  t        ||«      z  S |dk  r1t        ||«      t        ||z   | «      z  t        ||z   |z   | «      z  S y y y c c}w c c}w )Nr   r.   )	r\   r   rZ   r€   r   rk   rM   r}   r/   )Úclsr$   r8   r2   r!   ry   Ú_bÚ_as           r)   Úevalz_rf.evalÐ  s‚  € à�<Š<ÙÜ—u‘u�ä�A“ˆAà�1ŠuÜ¬E°!«HÖ5 q˜Q ›UÒ5Ð6Ð6Ø�Q’Øœ¬e°A¸°r¸A±vÓ.>Ö?¨˜q 1›uÒ?Ð@Ñ@Ð@ð ð �xŠxØŸ™Ó(‘��2à—<’<Ø˜1’uÜ" 1 b›z¬#¨a°"©f°a«.Ñ8Ð8Ø˜QšÜ" 1 b›z¬#¨a°"©f°q©j¸1¸"Ó*=Ñ=Ð=à�xŠxØŸ™Ó(‘��2à—<’<Ø˜1’uÜ" 2 q›z¬#¨b°1©f°a«.Ñ8¼¸RÀ»ÑCÐCØ˜QšÜ" 2 q›z¬#¨b°1©f°q°b«/Ñ9¼#¸bÀ1¹fÀq¹jÈ1È"Ó:MÑMÐMð ð  ð ùò 6ùâ?s   ÁFÁ.F	
N)Ú__name__Ú
__module__Ú__qualname__ÚclassmethodrÄ   rG   r4   r)   r/   r/   Ï  s   „ ØñNó ñNr4   r/   N)Ú
sympy.corer   r   r   r   r   Úsympy.core.sortingr   r	   Úsympy.core.functionr
   Úsympy.core.symbolr   Úsympy.functionsr   r   r   Úsympy.polysr   r   Úsympy.utilities.iterablesr   r   r*   r   r/   rG   r4   r)   ú<module>rÐ      s<   ðß 1Õ 1ß 8Ý +Ý #ß ,Ñ ,ß &ß 0òG+òTxôvNˆ(õ Nr4   