§
    PŠtj5H  ã                   ó¦   — 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dS )é    )ÚFunctionÚSÚMulÚPowÚAdd)ÚorderedÚdefault_sort_key)Úexpand_func)ÚDummy)ÚgammaÚsqrtÚsin)ÚfactorÚcancel)ÚsiftÚuniqc                 ó>  — |                       t          ¦  «        } |                      t          ¦  «        }d„ |D ¦   «         }|s| S ||z  }||                      ¦   «                              t          ¦  «        z  }|r“t          d„ t          |¦  «        D ¦   «         Ž \  }}}|                      t          t          ||¦  «        ¦  «        ¦  «        }t          |d¬¦  «                             t          t          ||¦  «        ¦  «        ¦  «        S t          | d¬¦  «        S )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)

    c                 ó<   — h | ]}t          |t          ¦  «        ¯|’ŒS © )Ú
isinstancer   )Ú.0Úis     úV/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/simplify/gammasimp.pyú	<setcomp>zgammasimp.<locals>.<setcomp>C   s'   € Ð3Ð3Ð3�A�j¨­EÑ2Ô2Ð3ˆaÐ3Ð3Ð3ó    c                 ó^   — g | ]*}t          ¦   «         | |j        d „ |j        D ¦   «         Ž f‘Œ+S )c                 ó0   — g | ]}t          |d ¬¦  «        ‘ŒS )F©Úas_comb)Ú
_gammasimp)r   Úas     r   ú
<listcomp>z(gammasimp.<locals>.<listcomp>.<listcomp>K   s2   € ð $?ð $?ð $?Ø12•
˜1 eÐ,Ñ,Ô,ð$?ð $?ð $?r   )r   ÚfuncÚargs)r   Úfis     r   r"   zgammasimp.<locals>.<listcomp>J   s`   € ð "ð "ð "ð õ ‰WŒW�b˜'˜"œ'ð $?ð $?Ø68´gð$?ñ $?ô $?ð @ð Að"ð "ð "r   Fr   )
Úrewriter   Úatomsr   Úas_dummyÚzipr   ÚxreplaceÚdictr    )ÚexprÚfÚgammasÚdumÚfunÚsimpÚds          r   Ú	gammasimpr3   
   s  € ðd �<Š<�ÑÔ€Dð
 	�
Š
•8ÑÔ€Aà3Ð3˜Ð3Ñ3Ô3€FØð ØˆØˆ�K€Aà	ˆD�MŠM‰OŒO×!Ò!¥(Ñ+Ô+Ñ+€AØð KÝð "ð "õ ˜a‘j”jð"ñ "ô "ð #‰ˆˆS�$ð �MŠM�$�s 3¨™}œ}Ñ-Ô-Ñ.Ô.ˆÝ˜! UÐ+Ñ+Ô+×4Ò4µT½#¸cÀ4¹.¼.Ñ5IÔ5IÑJÔJÐJå�d EÐ*Ñ*Ô*Ð*r   c                 ó\  ‡‡— |                       t          d„ ¦  «        } ‰r|                       t          d„ ¦  «        } n|                       t          d„ ¦  «        } dˆˆfd„	Št          | ¦  «        } ‰|¦  «        } | |k    rt          | ¦  «        } |                       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                 óL   — t          d| dz
                       ¦   «         ¦  «        S ©Né   )Ú_rfÚexpand©Úns    r   ú<lambda>z_gammasimp.<locals>.<lambda>a   s   € •#�a˜!˜a™%ŸšÑ)Ô)Ñ*Ô*€ r   c                 ó&   — t          |dz   ¦  «        S r6   ©r   ©r!   Úbs     r   r<   z_gammasimp.<locals>.<lambda>e   s   € �˜q 1™u™œ€ r   c                 óF   — t          | |z   ¦  «        t          | ¦  «        z  S ©Nr>   r?   s     r   r<   z_gammasimp.<locals>.<lambda>h   s   € �˜q 1™u™œ¥e¨A¡h¤hÑ.€ r   r   c                 ó,  •‡‡%‡&‡'‡(‡)‡*‡+‡,— | j         r| S d„ Š*ˆ)fd„Š)‰dk    r! | j        ˆˆ.fd„| j        D ¦   «         Ž } ‰dz  Š| j        s| S ‰dk    rX|                      ¦   «         \  }}|s| S |r6 ‰.t          j        |¦  «        ‰dz   ¦  «        t          j        |¦  «        z  S ‰dz  Š‰dk    �r?t          | j        ‰)d¬¦  «        \  }}t          |Ž }t          |Ž }|                     ¦   «         \  }Š't          d¦  «        D ]À}	t          t          t          j        |¦  «        ¦  «        ¦  «        }t          |¦  «        D ]_\  }
}|j        rSt          ˆ'ˆ*ˆˆ.fd	„|j        D ¦   «         Ž                      ¦   «         \  }Š'|||
<   ‰'                     t"          ¦  «        s nŒ`t          |Ž }|	dk    r ‰)|¦  «        s n‰'|c}Š'ŒÁ||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©|                     ¦   «                              ¦   «         \  }} ||¦  «        \  }}|r|                     |¦  «         n|du r|                     |¦  «          ||¦  «        \  }}|r|                     |¦  «         n|du r|                     |¦  «         |°©‰-�s¹|||f|||ffD �]O\  }}}g }|�r<|                     ¦   «         Š(‰(j        r|                     ‰(¦  «         Œ4t          |¦  «        D ]ã\  }
}‰(|z   dz
  }|j        sŒ|                     t.          j        ¦  «         |                     t3          t.          j        ‰(z  ¦  «        ¦  «         |                     |
¦  «         |dk    r/|                     ˆ(fd„t          |¦  «        D ¦   «         ¦  «         n5|dk     r/|                     ˆ(fd„t          | ¦  «        D ¦   «         ¦  «          n|                     ‰(¦  «         |�°<||dd…<   �ŒQ||||f||||ffD �]*\  }}}}	 |D ]}|D ]Š,|d‰,z  z
  }|j        r nŒŒ n�n|                     |¦  «         |                     ‰,¦  «         |dk    r/|                     ˆ,fd„t          |¦  «        D ¦   «         ¦  «         n5|dk     r/|                     ˆ,fd„t          | ¦  «        D ¦   «         ¦  «         |                     ‰,t.          j        z   ¦  «         |                     dd‰,z  dz
  z  ¦  «         |                     t9          t.          j        ¦  «        ¦  «         �Œ!�Œ,d„ Š%ˆ%fd„} |||f|||ffD ]\  }}} | |||¦  «         Œ‰dk    �r3ˆ&ˆ+fd„}!i Š+ˆ+fd„Š&ˆ&ˆ+fd„}"||z   |z   |z   D ]}  |"| ¦  «         Œ|||f|||ffD ]ü\  }}}g }|rë|                     ¦   «         }#d}$|$r¼d}$ |!||#¦  «        Š,‰,�H|                     ‰,¦  «         ‰,|#k    r&|                     ‰,|#z  ¦  «          |"‰,|#z  ¦  «         |#dz  }#d}$ |!||#dz
  ¦  «        Š,‰,�Q|                     ‰,¦  «         ‰,|#dz
  k    r,|                     |#dz
  ‰,z  ¦  «          |"|#dz
  ‰,z  ¦  «         |#dz  }#d}$|$°¼|                     |#¦  «         |°ë||dd…<   Œýt          d„ |D ¦   «         Ž t          d„ |D ¦   «         Ž z  t          |Ž z  t          |Ž z  S )z/ Simplify products of gamma functions further. c                 ó²   — |                       t          ¦  «        }|                      t          d„ ¦  «        }|                      t          ¦  «        |k     r|} | S )Nc                 ó€   — t          d| dz
                       ¦   «         ¦  «                             t           d„ ¦  «        S )Nr7   c                 óF   — t          | |z   ¦  «        t          | ¦  «        z  S rB   r>   r?   s     r   r<   zU_gammasimp.<locals>.rule_gamma.<locals>.gamma_rat.<locals>.<lambda>.<locals>.<lambda>t   s   € ­E°!°a±%©L¬L½¸q¹¼Ñ,A€ r   )r8   r9   Úreplacer:   s    r   r<   zC_gammasimp.<locals>.rule_gamma.<locals>.gamma_rat.<locals>.<lambda>s   s8   € ­C°°A¸±E·>²>Ñ3CÔ3Cñ -ô -ß’'�#ÐAÐAÑBÔBð r   )Úcountr   rG   )ÚxÚwasÚxxs      r   Ú	gamma_ratz1_gammasimp.<locals>.rule_gamma.<locals>.gamma_ratp   sS   € à—'’'�%‘.”.ˆCØ—’�5ð #Cð #Cñ Dô DˆBà�xŠx�‰Œ Ò$Ð$Ø�ØˆHr   c                 óð   •— t          | t          ¦  «        rdS | j        s| j        r t	          ˆfd„| j        D ¦   «         ¦  «        S | j        r(| j        j        s| j	        j
        r ‰| j	        ¦  «        S dS )NTc              3   ó.   •K  — | ]} ‰|¦  «        V — Œd S rB   r   )r   ÚxiÚgamma_factors     €r   ú	<genexpr>zG_gammasimp.<locals>.rule_gamma.<locals>.gamma_factor.<locals>.<genexpr>~   s-   øè è € Ð=Ð=°˜<˜<¨Ñ+Ô+Ð=Ð=Ð=Ð=Ð=Ð=r   F)r   r   Úis_AddÚis_MulÚanyr$   Úis_PowÚexpÚ
is_integerÚbaseÚis_positive)rI   rP   s    €r   rP   z4_gammasimp.<locals>.rule_gamma.<locals>.gamma_factory   s‹   ø€ å˜!�UÑ#Ô#ð Ø�tØŒxð >˜1œ8ð >ÝÐ=Ð=Ð=Ð=°a´fÐ=Ñ=Ô=Ñ=Ô=Ð=ØŒxð ,˜QœUÔ-ð ,°´Ô1Cð ,Ø#�| A¤FÑ+Ô+Ð+Ø�5r   r   c                 ó.   •— g | ]} ‰|‰d z   ¦  «        ‘ŒS ©r7   r   )r   rI   ÚlevelÚ
rule_gammas     €€r   r"   z2_gammasimp.<locals>.rule_gamma.<locals>.<listcomp>…   s)   ø€ ÐKÐKÐK¸A˜z˜z¨!¨U°Q©YÑ7Ô7ÐKÐKÐKr   r7   é   T)Úbinaryc                 óF   •— g | ]} ‰ ‰|‰z  ¦  «        ‰d z   ¦  «        ‘ŒS r[   r   )r   r!   ÚddrL   r\   r]   s     €€€€r   r"   z2_gammasimp.<locals>.rule_gamma.<locals>.<listcomp>Ÿ   sH   ø€ ð 'Uð 'Uð 'UØGH˜J˜J y y°°2±¡¤¸À¹	ÑBÔBð'Uð 'Uð 'Ur   é   é   c                 óÌ   — | t           j        u rd g fS |                      ¦   «         \  }}|j        r0t	          |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$   )Úpr@   Úes      r   Ú	explicatez1_gammasimp.<locals>.rule_gamma.<locals>.explicateº   sv   € Ø•A”EˆzˆzØ˜R�x�Ø—=’=‘?”?‰DˆAˆqØŒ|ð "Ý˜a¥Ñ'Ô'ð (Ø !¤&¨¤) ¨Q¡Ð.Ð.à  1 # a¡%˜<Ð'à˜q˜c�zÐ!r   Fc              3   ó(   •K  — | ]}d ‰z
  |z   V — ŒdS )r7   Nr   ©r   ÚkÚg1s     €r   rQ   z1_gammasimp.<locals>.rule_gamma.<locals>.<genexpr>ê   s+   øè è € Ð(FÐ(F¸¨¨R©°!©Ð(FÐ(FÐ(FÐ(FÐ(FÐ(Fr   c              3   ó$   •K  — | ]
}‰ |z
  V — Œd S rB   r   rl   s     €r   rQ   z1_gammasimp.<locals>.rule_gamma.<locals>.<genexpr>ì   s)   øè è € Ð(DÐ(D°Q¨"¨¨q©Ð(DÐ(DÐ(DÐ(DÐ(DÐ(Dr   Nc              3   ó(   •K  — | ]}d ‰z  |z   V — ŒdS )r^   Nr   ©r   rm   Úys     €r   rQ   z1_gammasimp.<locals>.rule_gamma.<locals>.<genexpr>  s+   øè è € Ð!<Ð!<¨a ! A¡#¨¡'Ð!<Ð!<Ð!<Ð!<Ð!<Ð!<r   c              3   ó.   •K  — | ]}d ‰z  dz
  |z
  V — ŒdS )r^   r7   Nr   rq   s     €r   rQ   z1_gammasimp.<locals>.rule_gamma.<locals>.<genexpr>  s/   øè è € Ð!AÐ!A°! ! A¡#¨¡'¨A¡+Ð!AÐ!AÐ!AÐ!AÐ!AÐ!Ar   c                 óœ  ‡
‡— t          t          | ¦  «        ¦  «        Št          t          ‰¦  «        ¦  «        D �]Š
ˆ
ˆfd„t          ‰
dz   t          ‰¦  «        ¦  «        D ¦   «         }|D ]Ü\  }}|j        dk    rÌ|j        dk    rÁ|j        }‰
g}t          t          d|¦  «        ¦  «        }|D ]C\  }}||z  }|j        r2||v r.|                     |¦  «         |                     |¦  «         |s nŒDŒ‰t          |¦  «        D ]'\  Š
}‰|         }	|                      |	¦  «         |	|‰
<   Œ(|j        |d         |dd …         fc c S ŒÝ�Œd S )Nc                 ó<   •— g | ]}‰|         ‰‰         z
  d z  |f‘ŒS r[   r   )r   Újr   Úus     €€r   r"   z@_gammasimp.<locals>.rule_gamma.<locals>._run.<locals>.<listcomp>'  s/   ø€ ÐPÐPÐP°a˜Q˜qœT A a¤D™[¨AÑ-¨qÐ1ÐPÐPÐPr   r7   r   )
Úlistr   ÚrangeÚlenrh   Úqrg   ÚremoveÚappendÚ	enumerate)ÚcoeffsÚdjÚonerv   r;   ÚgotÚgetr2   ÚmÚcr   rw   s             @@r   Ú_runz,_gammasimp.<locals>.rule_gamma.<locals>._run"  s‚  øø€ õ �˜f™œÑ&Ô&�Ý�s 1™vœv™œð :ñ :�AØPÐPÐPÐPÐP½5ÀÀQÁÍÈAÉÌÑ;OÔ;OÐPÑPÔP�BØ"$ð :ð :™˜˜QØœ5 Aš:˜:¨#¬%°1ª*¨*Ø #¤˜AØ#$ #˜CÝ"&¥u¨Q°¡{¤{Ñ"3Ô"3˜CØ(*ð )ð )¡  1Ø$% a¡C Ø#$¤<ð !.°A¸°H°HØ$'§J¢J¨q¡M¤M MØ$'§J¢J¨q¡M¤M MØ+.ð %.Ø(-¨øà (Ý(1°#©¬ð +ð +¡  1Ø$% a¤D Ø &§¢¨aÑ 0Ô 0Ð 0Ø)*  A¡ Ø#&¤5¨#¨a¬&°#°a°b°b´'Ð#9Ð9Ð9Ð9Ð9Ð9øñ%:ð:ð :r   c                 óà  •‡— i }| D ]B}|                      ¦   «         \  }Š|                     ‰g ¦  «                             |¦  «         ŒCt          |t          ¬¦  «        }|D ]òŠt          |‰         ¦  «        }g }	  ‰|¦  «        }	|	€n¶|	\  }
}}|D ]D}‰|z   dz
  }t          t          ||z
  ¦  «        ¦  «        D ]}|                     ||z
  ¦  «         ŒŒE|
‰|z   z  }|                     dt          j        z  t          |
dz
  ¦  «        dz  z  |
t          j	        |z
  z  z  ¦  «         |                     |¦  «         ŒÄˆfd„|D ¦   «         |z   |‰<   Œóg }|D ]Š||‰         z  }Œ|| d d …<   d S )N)ÚkeyTr7   r^   c                 ó   •— g | ]}‰|z   ‘ŒS r   r   )r   r…   Úresids     €r   r"   zE_gammasimp.<locals>.rule_gamma.<locals>._mult_thm.<locals>.<listcomp>g  s   ø€ Ð"=Ð"=Ð"=° 5¨1¡9Ð"=Ð"=Ð"=r   )
Úas_coeff_AddÚ
setdefaultr}   Úsortedr	   ry   Úintr   ÚPiÚHalf)r.   ÚnumerÚdenomÚratsÚgr…   Úkeysr   ÚnewÚrunr;   ÚuiÚotherrw   Úconrm   rŠ   r†   s                   @€r   Ú	_mult_thmz1_gammasimp.<locals>.rule_gamma.<locals>._mult_thm<  sÚ  øø€ ð
 �Øð 9ð 9�AØ Ÿ~š~Ñ/Ô/‘H�A�uØ—O’O E¨2Ñ.Ô.×5Ò5°aÑ8Ô8Ð8Ð8õ ˜dÕ(8Ð9Ñ9Ô9�Ø!ð Dð D�EÝ# D¨¤KÑ0Ô0�FØ�Cð(Ø"˜d 6™lœl˜Ø˜;Ø!ð (+™˜˜2˜uð "'ð 6ð 6˜AØ"'¨!¡)¨a¡-˜CÝ%*­3¨q°2©v©;¬;Ñ%7Ô%7ð 6ð 6 Ø %§¢¨S°1©WÑ 5Ô 5Ð 5Ð 5ð6ð   ¨¡™n˜ð Ÿš a­¬¡fµ°!°a±%±´¸±
Ñ%;Ø%&­¬°#©Ñ%6ñ&7ñ 8ô 8ð 8ð Ÿ
š
 3™œ˜ð3(ð8 #>Ð"=Ð"=Ð"=°fÐ"=Ñ"=Ô"=ÀÑ"C�D˜‘K�Kð �Ø!ð %ð %�EØ˜˜eœÑ$�A�Aà��q�q�q‘	�	�	r   c                 ó�  •— | sd S  ‰
|¦  «        \  }}| D ]¯}‰|         \  }}||k    s9|                      |¦  «        s%|t          ¦   «         k    s|t          ¦   «         k    rŒMt          t          ||z  ¦  «        j        ¦  «        }t          |j        ¦  «        }t          |j        ¦  «        }	|dk    r|dk    s|	dk    r|c S Œ°d S )Nr   )ÚintersectionÚsetrz   r   Úfree_symbols)ÚlrI   ÚS1ÚT1rr   ÚS2ÚT2r!   r@   r…   Ú
compute_STÚinvs             €€r   Ú
find_fuzzyz2_gammasimp.<locals>.rule_gamma.<locals>.find_fuzzy{  sÙ   ø€ Øð Ø�FØ#˜ A™œ‘��BØð !ð !�AØ  œV‘F�B˜Ø˜R’x�x¨¯ª¸Ñ(;Ô(;�xØ%'­3©5¬5¢[ [°B½#¹%¼%²K°KØ õ �F 1 Q¡3™KœKÔ4Ñ5Ô5�AÝ˜AœNÑ+Ô+�AÝ˜AœNÑ+Ô+�Aà˜A’v�v 1 q¢5 5¨A°ªE¨EØ ˜˜˜øð!ð !r   c                 óÈ   •— | ‰v r‰|          S | j         |                      t          ¦  «                             d„ |                      t          ¦  «        D ¦   «         ¦  «        fS )Nc                 ó   — h | ]	}|j         ’Œ
S r   )rV   )r   ri   s     r   r   zE_gammasimp.<locals>.rule_gamma.<locals>.compute_ST.<locals>.<setcomp>™  s   € Ð8Ð8Ð8 1˜œÐ8Ð8Ð8r   )rŸ   r'   r   Úunionr   )r,   r¦   s    €r   r¥   z2_gammasimp.<locals>.rule_gamma.<locals>.compute_ST•  s_   ø€ Ø˜3�;�;Ø˜tœ9Ð$ØÔ)¨4¯:ª:µhÑ+?Ô+?×+EÒ+EØ8Ð8¨¯
ª
µ3©¬Ð8Ñ8Ô8ñ,:ô ,:ð ;ð ;r   c                 ó$   •—  ‰| ¦  «        ‰| <   d S rB   r   )r,   r¥   r¦   s    €€r   Ú	update_STz1_gammasimp.<locals>.rule_gamma.<locals>.update_ST›  s   ø€ Ø&˜J tÑ,Ô,��D‘	�	�	r   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r   r>   ©r   r”   s     r   r"   z2_gammasimp.<locals>.rule_gamma.<locals>.<listcomp>¿  s   € Ð4Ð4Ð4 !•U˜1‘X”XÐ4Ð4Ð4r   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r   r>   r®   s     r   r"   z2_gammasimp.<locals>.rule_gamma.<locals>.<listcomp>À  s   € Ð3Ð3Ð3 •E˜!‘H”HÐ3Ð3Ð3r   )Úis_Atomr#   r$   rS   Úargs_cncr   Ú
_from_argsr   Úas_numer_denomry   rx   r   Ú	make_argsr~   rR   r   Úhasr   ÚpopÚextendrW   r}   rg   r   r�   r   r|   r�   r   )/r,   r\   r$   ÚncÚTÚFÚ	gamma_indr2   ÚndÚipassr   ÚnirJ   Únumer_gammasÚdenom_gammasÚnumer_othersÚdenom_othersrj   Únewargsr;   Úisgr    r.   r‘   r’   r–   Úg2ÚngÚdgÚnoÚdorI   r›   r§   r¬   r”   Úcontr†   r¥   ra   rn   rP   rL   r¦   rr   r   r]   s/    `                                   @@@@@@@@€€r   r]   z_gammasimp.<locals>.rule_gammaj   s˜	  øøøøøøøøøø€ ð Œ<ð 	ØˆKð	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð �AŠ:ˆ:Ø�4”9ÐKÐKÐKÐKÐKÀÄÐKÑKÔKÐLˆDØ�Q‰JˆEàŒ{ð 	ØˆKð �AŠ:ˆ:Ø—}’}‘”‰HˆD�"Øð Ø�Øð VØ!�z¥#¤.°Ñ"6Ô"6¸À¹	ÑBÔBÅ3Ä>ÐRTÑCUÔCUÑUÐUØ�Q‰JˆEð �AŠ:‰:Ý˜œ	 <¸Ð=Ñ=Ô=‰DˆAˆqÝ˜Q˜ˆIÝ�Q�ˆAà×%Ò%Ñ'Ô'‰FˆB�Ý˜q™œð  ð  �Ý�G¥C¤M°"Ñ$5Ô$5Ñ6Ô6Ñ7Ô7�Ý& t™_œ_ð "ð "‘E�A�rØ”yð "Ý!$ð 'Uð 'Uð 'Uð 'Uð 'Uð 'Uð 'UØLNÌGð'Uñ 'Uô 'Uð "ç,šnÑ.Ô.ñ ˜˜Bð #%˜˜Q™Ø!Ÿvšv¥e™}œ}ð "Ø!˜EøÝ˜$�Z�Ø˜Q’;�; | |°BÑ'7Ô'7�;Ø�EØ˜R���B�BØ˜R‘< ‘?ˆDØ”Kð  \ \°"Ñ%5Ô%5ð ¸¸ÀbÑ9IÔ9Ið Ø�Ø�Q‰JˆEð �AŠ:ˆ:ð Ø�Ø!�z $¨Ñ*Ô*�Ø˜3’;�;Ø�Kð	 ð ˆØˆØˆØˆð
	"ð 
	"ð 
	"õ •w˜tœyÑ)Ô)Ñ*Ô*ˆØð 	'Ø—;’;‘=”=×/Ò/Ñ1Ô1‰DˆAˆqØ�Y˜q‘\”\‰FˆC�Øð 'Ø×#Ò# AÑ&Ô&Ð&Ð&Ø˜��Ø×#Ò# AÑ&Ô&Ð&Ø�Y˜q‘\”\‰FˆC�Øð 'Ø×#Ò# AÑ&Ô&Ð&Ð&Ø˜��Ø×#Ò# AÑ&Ô&Ð&ð ð 	'ð ñ \	+ð ˜l¨Lð*:à! <°Ð>ð)@ð  ñ  Ñ$�˜˜uð �Øñ 'ØŸš™œ�BØ”}ð !ØŸ
š
 2™œ˜Ø Ý!*¨6Ñ!2Ô!2ð 'ð '™˜˜2Ø ™G a™K˜Ø œ|ð %Ø$ØŸš¥Q¤TÑ*Ô*Ð*ØŸš¥S­¬¨b©¡\¤\Ñ2Ô2Ð2ØŸ
š
 1™œ˜Ø˜qš5˜5Ø!ŸLšLÐ(FÐ(FÐ(FÐ(F½UÀ1¹X¼XÐ(FÑ(FÔ(FÑFÔFÐFÐFØ šU˜UØ!ŸLšLÐ(DÐ(DÐ(DÐ(D½%ÀÀ¹)¼)Ð(DÑ(DÔ(DÑDÔDÐDØ˜àŸ
š
 2™œ˜ð% ñ 'ð(  ��q�q�q‘	‘	ð %1°,ÀØ$0ð$2à$0°,ÀØ$0ð$2ð#3ð *ñ *‘��B˜˜Bð
*Øð 	ð 	˜Ø!#ð %ð %˜AØ ! A a¡C¡˜AØ œ|ð &Ø % ð&ð %Ø˜áØ—I’I˜a‘L”L�LØ—I’I˜a‘L”L�LØ˜1’u�uØŸ	š	Ð!<Ð!<Ð!<Ð!<µ5¸±8´8Ð!<Ñ!<Ô!<Ñ<Ô<Ð<Ð<Ø˜Qš˜ØŸ	š	Ð!AÐ!AÐ!AÐ!Aµu¸a¸R±y´yÐ!AÑ!AÔ!AÑAÔAÐAØ—I’I˜a¥!¤&™jÑ)Ô)Ð)Ø—I’I˜a ! A¡#¨¡'™lÑ+Ô+Ð+Ø—I’I�d¥1¤4™jœjÑ)Ô)Ð)ñ'*ñ ð6:ð :ð :ð42ð 2ð 2ð 2ð 2ðh &2°<ÀÐ$NØ%1°<ÀÐ$Nð$Pð +ð +‘��5˜%à�	˜!˜U EÑ*Ô*Ð*Ð*ð �AŠ:‰:ð
!ð !ð !ð !ð !ð !ð0 ˆCð;ð ;ð ;ð ;ð ;ð-ð -ð -ð -ð -ð -à$ |Ñ3°lÑBÀ\ÑQð  ð  �Ø�	˜$‘”��ð ˜l¨Lð*:à! <°Ð>ð)@ð  ð  Ñ$�˜˜uð �Øð "ØŸ
š
™œ�AØ�DØð (Ø$˜Ø&˜J u¨aÑ0Ô0˜Ø˜=Ø!ŸLšL¨™OœO˜OØ  Ašv˜vØ %§¢¨Q¨q©SÑ 1Ô 1Ð 1Ø ) 	¨!¨A©#¡¤ Ø ™F˜AØ#'˜DØ&˜J u¨a°!©eÑ4Ô4˜Ø˜=Ø!ŸLšL¨™OœO˜OØ  A¨¡Ešz˜zØ %§¢¨a°!©e°Q©YÑ 7Ô 7Ð 7Ø ) 	¨1¨q©5°!©)Ñ 4Ô 4Ð 4Ø ™F˜AØ#'˜Dð# ð (ð$ —J’J˜q‘M”M�Mð+ ð "ð.  ��q�q�q‘	�	õ Ð4Ð4 |Ð4Ñ4Ô4Ð5ÝÐ3Ð3 lÐ3Ñ3Ô3Ð4ñ5å�<Ð ñ!å#&¨Ð#5ñ6ð 	6r   c                 óf   — | j         rt          t          | ¦  «        ¦  «        nt          | ¦  «        S rB   )Úis_Rationalr
   r   r:   s    r   r<   z_gammasimp.<locals>.<lambda>Ê  s&   € ¨1¬=ÐF•+�e A™hœhÑ'Ô'Ð'½eÀA¹h¼h€ r   )r   )rG   r   r8   r   )r,   r   rJ   r]   s    ` @r   r    r    T   sâ   øø€ ð �<Š<�Ø*Ð*ñ,ô ,€Dð ð 0Ø�|Š|�CØ%Ð%ñ'ô 'ˆˆð �|Š|�CØ.Ð.ñ0ô 0ˆðW6ð W6ð W6ð W6ð W6ð W6ð W6õr
 �‰,Œ,€Càˆ:�c‰?Œ?€DØˆs‚{€{Ý�d‰|Œ|ˆà�<Š<�ØFÐFñHô H€Dð €Kr   c                   ó$   — e Zd Zed„ ¦   «         ZdS )r8   c           	      óL  ‡— |j         rw|st          j        S t          |¦  «        }|dk    r"t	          ˆfd„t          |¦  «        D ¦   «         Ž S |dk     r*dt	          ˆfd„t          d| dz   ¦  «        D ¦   «         Ž z  S d S |j        rv|                     ¦   «         \  }}|j         rX|dk    r$t          ‰|¦  «        t          ‰|z   |¦  «        z  S |dk     r(t          ‰|¦  «        t          ‰|z   |z   | ¦  «        z  S ‰j        rœ‰                     ¦   «         \  }}|j         r€|dk    r5t          ||¦  «        t          ||z   |¦  «        z  t          ||¦  «        z  S |dk     rAt          ||¦  «        t          ||z   | ¦  «        z  t          ||z   |z   | ¦  «        z  S d S d S d S )Nr   c                 ó   •— g | ]}‰|z   ‘ŒS r   r   ©r   r   r!   s     €r   r"   z_rf.eval.<locals>.<listcomp>Ù  s   ø€ Ð5Ð5Ð5 q˜Q ™UÐ5Ð5Ð5r   r7   c                 ó   •— g | ]}‰|z
  ‘ŒS r   r   rÐ   s     €r   r"   z_rf.eval.<locals>.<listcomp>Û  s   ø€ Ð?Ð?Ð?¨˜q 1™uÐ?Ð?Ð?r   )	rg   r   re   rŽ   r   ry   rR   r‹   r8   )Úclsr!   r@   r;   r…   Ú_bÚ_as    `     r   Úevalz_rf.evalÐ  sÝ  ø€ àŒ<ð 	NØð Ý”u�å�A‘”ˆAà�1ŠuˆuÝÐ5Ð5Ð5Ð5­E°!©H¬HÐ5Ñ5Ô5Ð6Ð6Ø�Q’�Ø�Ð?Ð?Ð?Ð?­e°A¸°r¸A±vÑ.>Ô.>Ð?Ñ?Ô?Ð@Ñ@Ð@ð �ð Œxð >ØŸšÑ(Ô(‘��2à”<ð >Ø˜1’u�uÝ" 1 b™zœz­#¨a°"©f°a©.¬.Ñ8Ð8Ø˜Qš˜Ý" 1 b™zœz­#¨a°"©f°q©j¸1¸"Ñ*=Ô*=Ñ=Ð=àŒxð NØŸšÑ(Ô(‘��2à”<ð NØ˜1’u�uÝ" 2 q™zœz­#¨b°1©f°a©.¬.Ñ8½¸RÀ¹¼ÑCÐCØ˜Qš˜Ý" 2 q™zœz­#¨b°1©f°q°b©/¬/Ñ9½#¸bÀ1¹fÀq¹jÈ1È"Ñ:MÔ:MÑMÐMðNð NðNð Nð ˜r   N)Ú__name__Ú
__module__Ú__qualname__ÚclassmethodrÕ   r   r   r   r8   r8   Ï  s2   € € € € € ØðNð Nñ „[ðNð Nð Nr   r8   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   r3   r    r8   r   r   r   ú<module>rá      s  ðØ 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø +Ð +Ð +Ð +Ð +Ð +Ø #Ð #Ð #Ð #Ð #Ð #Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0ðG+ð G+ð G+ðTxð xð xðvNð Nð Nð Nð Nˆ(ñ Nô Nð Nð Nð Nr   