§
    OŠtj¿§  ã                   ó   — d dl mZ d dlmZmZmZ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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 dl#m$Z$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/m0Z0m1Z1m2Z2 d dl3m4Z4 d dl5m6Z6m7Z7 d dl8m9Z9 d„ Z: G d„ de
¦  «        Z; G d„ de
¦  «        Z< G d„ de
¦  «        Z= G d„ de
¦  «        Z> G d„ de
¦  «        Z? G d„ d e
¦  «        Z@ G d!„ d"e
¦  «        ZA G d#„ d$e
¦  «        ZBd%S )&é    )Úprod)ÚAddÚSÚDummyÚexpand_func)ÚExpr)ÚDefinedFunctionÚArgumentIndexErrorÚ	PoleError)Ú	fuzzy_andÚ	fuzzy_not)ÚRationalÚpiÚooÚI©ÚPow©Úzeta)ÚerfÚerfcÚEi)ÚreÚ
unpolarify)ÚexpÚlog)ÚceilingÚfloor)Úsqrt)ÚsinÚcosÚcot)Ú	bernoulliÚharmonic)Ú	factorialÚrfÚRisingFactorial)Úas_int)ÚmpÚworkprec)Úprec_to_dpsc                 óL   — 	 t          | d¬¦  «         dS # t          $ r Y dS w xY w)NF)ÚstrictT)r(   Ú
ValueError©Úns    úe/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/functions/special/gamma_functions.pyÚintliker2      sA   € ðÝˆq˜ÐÑÔÐØˆtøÝð ð ð Øˆuˆuðøøøs   ‚ •
#¢#c                   ó‚   ‡ — e Zd ZdZdZej        fZdd„Ze	d„ ¦   «         Z
d„ Zd„ Zd„ Zd	„ Zdd„Zd„ Zdˆ fd„	Zd„ Zˆ xZS )Úgammaañ  
    The gamma function

    .. math::
        \Gamma(x) := \int^{\infty}_{0} t^{x-1} e^{-t} \mathrm{d}t.

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

    The ``gamma`` function implements the function which passes through the
    values of the factorial function (i.e., $\Gamma(n) = (n - 1)!$ when n is
    an integer). More generally, $\Gamma(z)$ is defined in the whole complex
    plane except at the negative integers where there are simple poles.

    Examples
    ========

    >>> from sympy import S, I, pi, gamma
    >>> from sympy.abc import x

    Several special values are known:

    >>> gamma(1)
    1
    >>> gamma(4)
    6
    >>> gamma(S(3)/2)
    sqrt(pi)/2

    The ``gamma`` function obeys the mirror symmetry:

    >>> from sympy import conjugate
    >>> conjugate(gamma(x))
    gamma(conjugate(x))

    Differentiation with respect to $x$ is supported:

    >>> from sympy import diff
    >>> diff(gamma(x), x)
    gamma(x)*polygamma(0, x)

    Series expansion is also supported:

    >>> from sympy import series
    >>> series(gamma(x), x, 0, 3)
    1/x - EulerGamma + x*(EulerGamma**2/2 + pi**2/12) + x**2*(-EulerGamma*pi**2/12 - zeta(3)/3 - EulerGamma**3/6) + O(x**3)

    We can numerically evaluate the ``gamma`` function to arbitrary precision
    on the whole complex plane:

    >>> gamma(pi).evalf(40)
    2.288037795340032417959588909060233922890
    >>> gamma(1+I).evalf(20)
    0.49801566811835604271 - 0.15494982830181068512*I

    See Also
    ========

    lowergamma: Lower incomplete gamma function.
    uppergamma: Upper incomplete gamma function.
    polygamma: Polygamma function.
    loggamma: Log Gamma function.
    digamma: Digamma function.
    trigamma: Trigamma function.
    sympy.functions.special.beta_functions.beta: Euler Beta function.

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Gamma_function
    .. [2] https://dlmf.nist.gov/5
    .. [3] https://mathworld.wolfram.com/GammaFunction.html
    .. [4] https://functions.wolfram.com/GammaBetaErf/Gamma/

    Té   c                 ó¦   — |dk    r<|                       | j        d         ¦  «        t          d| j        d         ¦  «        z  S t          | |¦  «        ‚©Nr5   r   )ÚfuncÚargsÚ	polygammar
   ©ÚselfÚargindexs     r1   Úfdiffzgamma.fdiffr   sH   € Ø�qŠ=ˆ=Ø—9’9˜TœY qœ\Ñ*Ô*­9°Q¸¼	À!¼Ñ+EÔ+EÑEÐEå$ T¨8Ñ4Ô4Ð4ó    c                 ó~  — |j         �r0|t          j        u rt          j        S |t          u rt          S t	          |¦  «        r%|j        rt          |dz
  ¦  «        S t          j        S |j        rÍ|j	        dk    rÄt          |j        ¦  «        |j	        z  }|j        r|t          j        }}n)|dz   x}}|dz  dk    rt          j        }nt          j        }|t          t          dd|z  d¦  «        ¦  «        z  }|j        r|t!          t"          ¦  «        z  d|z  z  S d|z  t!          t"          ¦  «        z  |z  S d S d S d S )Nr5   é   r   é   )Ú	is_Numberr   ÚNaNr   r2   Úis_positiver%   ÚComplexInfinityÚis_RationalÚqÚabsÚpÚOneÚNegativeOner   Úranger   r   )ÚclsÚargr0   ÚkÚcoeffs        r1   Úevalz
gamma.evalx   s@  € àŒ=ñ 	5Ø•a”eˆ|ˆ|Ý”u�Ø���Ý�	Ý˜‘”ð 5Ø”?ð -Ý$ S¨1¡WÑ-Ô-Ð-åÔ,Ð,Ø”ð 5Ø”5˜A’:�:Ý˜CœE™
œ
 c¤eÑ+�Aà”ð 2Ø#$¥a¤e˜5˜˜à ! A¡˜˜˜Aà˜q™5 Aš:˜:Ý$%¤E˜E˜Eå$%¤M˜Eà�T¥%¨¨1¨Q©3°Ñ"2Ô"2Ñ3Ô3Ñ3�Eà”ð 5Ø$¥T­"¡X¤X™~°°1±Ñ4Ð4à  !™t¥D­¡H¤H™}¨uÑ4Ð4ð;	5ð 	5ð5ð 5Ø�:r?   c                 ót  — | j         d         }|j        ržt          |j        ¦  «        |j        k    r�t          d¦  «        }|j        |j        z  }|j        ||j        z  z
  }|                      ||z   ¦  «                             ¦   «                              |t          ||j        ¦  «        ¦  «        S |j
        rq|                     ¦   «         \  }}|r%|j        dk    rt          |¦  «        }||z
  f|z   }|} |j        |ddiŽ}|                      |¦  «        t          ||¦  «        z  S  | j        | j         Ž S )Nr   Úxr5   ÚreevalF)r9   rG   rI   rJ   rH   r   r8   Ú_eval_expand_funcÚsubsr   Úis_AddÚas_coeff_addr   Ú_new_rawargsr'   )	r<   ÚhintsrO   rT   r0   rJ   rQ   ÚtailÚintparts	            r1   rV   zgamma._eval_expand_func™   s0  € ØŒi˜ŒlˆØŒ?ð 	XÝ�3”5‰zŒz˜CœEÒ!Ð!Ý˜#‘J”J�Ø”E˜SœU‘N�Ø”E˜A˜cœe™G‘O�Ø—y’y  Q¡Ñ'Ô'×9Ò9Ñ;Ô;×@Ò@ÀÅHÈQÐPSÔPUÑDVÔDVÑWÔWÐWàŒ:ð 	@Ø×*Ò*Ñ,Ô,‰KˆE�4Øð  ˜œ Aš˜Ý ™,œ,�Ø ™Ð)¨DÑ0�Ø�Ø#�3Ô# TÐ8°%Ð8Ð8ˆDØ—9’9˜T‘?”?¥?°4¸Ñ#?Ô#?Ñ?Ð?àˆtŒy˜$œ)Ð$Ð$r?   c                 óf   — |                       | j        d                              ¦   «         ¦  «        S ©Nr   )r8   r9   Ú	conjugate©r<   s    r1   Ú_eval_conjugatezgamma._eval_conjugate­   s&   € Ø�yŠy˜œ 1œ×/Ò/Ñ1Ô1Ñ2Ô2Ð2r?   c                 óŽ   — | j         d         }|j        r	|j        rdS t          |¦  «        r|dk    rdS |j        s|j        rdS d S )Nr   FT)r9   Úis_nonpositiveÚ
is_integerr2   rE   Úis_noninteger©r<   rT   s     r1   Ú_eval_is_realzgamma._eval_is_real°   sc   € ØŒI�aŒLˆØÔð 	 ¤ð 	Ø�5Ý�1‰:Œ:ð 	˜!˜qš&˜&Ø�5ØŒ=ð 	˜AœOð 	Ø�4ð	ð 	r?   c                 óh   — | j         d         }|j        rdS |j        rt          |¦  «        j        S d S )Nr   T)r9   rE   rf   r   Úis_evenrg   s     r1   Ú_eval_is_positivezgamma._eval_is_positive¹   s?   € ØŒI�aŒLˆØŒ=ð 	$Ø�4ØŒ_ð 	$Ý˜‘8”8Ô#Ð#ð	$ð 	$r?   Nc                 ó:   — t          t          |¦  «        ¦  «        S ©N)r   Úloggamma)r<   ÚzÚlimitvarÚkwargss       r1   Ú_eval_rewrite_as_tractablez gamma._eval_rewrite_as_tractableÀ   s   € Ý•8˜A‘;”;ÑÔÐr?   c                 ó&   — t          |dz
  ¦  «        S ©Nr5   ©r%   ©r<   ro   rq   s      r1   Ú_eval_rewrite_as_factorialz gamma._eval_rewrite_as_factorialÃ   s   € Ý˜˜Q™ÑÔÐr?   r   c                 ó`  •— | j         d                              |d¦  «        }|j        r|dk    s#t          ¦   «                              |||¦  «        S | j         d         |z
  }|                      |dz   ¦  «        t          | j         d         | dz   ¦  «        z                       |||¦  «        S ©Nr   r5   )r9   ÚlimitÚ
is_IntegerÚsuperÚ_eval_nseriesr8   r&   )r<   rT   r0   ÚlogxÚcdirÚx0ÚtÚ	__class__s          €r1   r}   zgamma._eval_nseriesÆ   s    ø€ ØŒY�qŒ\×Ò  1Ñ%Ô%ˆØ”ð 	5 "¨¢' 'Ý‘7”7×(Ò(¨¨A¨tÑ4Ô4Ð4ØŒI�aŒL˜2ÑˆØ—	’	˜!˜a™%Ñ Ô ¥ D¤I¨a¤L°2°#¸±'Ñ!:Ô!:Ñ:×IÒIÈ!ÈQÐPTÑUÔUÐUr?   c                 óD  — | j         d         }|                     |d¦  «        }|j        rM|j        rF| }t          j        |z  |                      |dz   ¦  «        z  }|||z                        |¦  «        z  S |j        s|                      |¦  «        S t          ¦   «         ‚ry   )
r9   rW   re   rd   r   rL   r8   Úas_leading_termÚis_infiniter   )r<   rT   r~   r   rO   r€   r0   Úress           r1   Ú_eval_as_leading_termzgamma._eval_as_leading_termÍ   s›   € ØŒi˜ŒlˆØ�XŠX�a˜‰^Œ^ˆàŒ=ð 	!˜RÔ.ð 	!Ø�ˆAÝ”- Ñ" 4§9¢9¨Q°©UÑ#3Ô#3Ñ3ˆCØ˜˜a™×0Ò0°Ñ3Ô3Ñ3Ð3Ø”ð 	!Ø—9’9˜R‘=”=Ð Ý‰kŒkÐr?   ©r5   rm   )r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú
unbranchedr   rF   Ú_singularitiesr>   ÚclassmethodrR   rV   rb   rh   rk   rr   rw   r}   r‡   Ú__classcell__©r‚   s   @r1   r4   r4   "   s   ø€ € € € € ðJð JðX €JØÔ'Ð)€Nð5ð 5ð 5ð 5ð ð5ð 5ñ „[ð5ð@%ð %ð %ð(3ð 3ð 3ðð ð ð$ð $ð $ð ð  ð  ð  ð ð  ð  ðVð Vð Vð Vð Vð Vð
ð 
ð 
ð 
ð 
ð 
ð 
r?   r4   c                   ód   ‡ — e Zd ZdZdd„Zed„ ¦   «         Zd„ Zd„ Zd„ Z	ˆ fd„Z
d	„ Zd
„ Zd„ Zˆ xZS )Ú
lowergammaañ  
    The lower incomplete gamma function.

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

    It can be defined as the meromorphic continuation of

    .. math::
        \gamma(s, x) := \int_0^x t^{s-1} e^{-t} \mathrm{d}t = \Gamma(s) - \Gamma(s, x).

    This can be shown to be the same as

    .. math::
        \gamma(s, x) = \frac{x^s}{s} {}_1F_1\left({s \atop s+1} \middle| -x\right),

    where ${}_1F_1$ is the (confluent) hypergeometric function.

    Examples
    ========

    >>> from sympy import lowergamma, S
    >>> from sympy.abc import s, x
    >>> lowergamma(s, x)
    lowergamma(s, x)
    >>> lowergamma(3, x)
    -2*(x**2/2 + x + 1)*exp(-x) + 2
    >>> lowergamma(-S(1)/2, x)
    -2*sqrt(pi)*erf(sqrt(x)) - 2*exp(-x)/sqrt(x)

    See Also
    ========

    gamma: Gamma function.
    uppergamma: Upper incomplete gamma function.
    polygamma: Polygamma function.
    loggamma: Log Gamma function.
    digamma: Digamma function.
    trigamma: Trigamma function.
    sympy.functions.special.beta_functions.beta: Euler Beta function.

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Incomplete_gamma_function#Lower_incomplete_gamma_function
    .. [2] Abramowitz, Milton; Stegun, Irene A., eds. (1965), Chapter 6,
           Section 5, Handbook of Mathematical Functions with Formulas, Graphs,
           and Mathematical Tables
    .. [3] https://dlmf.nist.gov/8
    .. [4] https://functions.wolfram.com/GammaBetaErf/Gamma2/
    .. [5] https://functions.wolfram.com/GammaBetaErf/Gamma3/

    rA   c                 ód  — ddl m} |dk    r0| j        \  }}t          t	          |¦  «         ¦  «        ||dz
  z  z  S |dk    r_| j        \  }}t          |¦  «        t          |¦  «        z  t          |¦  «        t          ||¦  «        z  z
   |g ddgdd|gg |¦  «        z
  S t          | |¦  «        ‚©Nr   )ÚmeijergrA   r5   )
Úsympy.functions.special.hyperr–   r9   r   r   r4   Údigammar   Ú
uppergammar
   ©r<   r=   r–   Úaro   s        r1   r>   zlowergamma.fdiff  sÈ   € Ø9Ð9Ð9Ð9Ð9Ð9Ø�qŠ=ˆ=Ø”9‰DˆAˆqÝ�
 1™œ�~Ñ&Ô& q¨1¨q©5¡zÑ1Ð1Ø˜Š]ˆ]Ø”9‰DˆAˆqÝ˜‘8”8�G A™JœJÑ&­¨Q©¬µ
¸1¸aÑ0@Ô0@Ñ)@Ñ@Ø�'˜"˜q !˜f q¨!¨Q i°°QÑ7Ô7ñ8ð 8õ % T¨8Ñ4Ô4Ð4r?   c                 óF  ‡‡— ‰t           j        u rt           j        S ‰                     ¦   «         \  }}‰j        r-‰j        r&t          ‰¦  «        }|‰k    rt          ‰|¦  «        S n™‰j        rV‰j        rO|dk    rHdt          z  t          z  |z  t           j
        ‰ z  z  t          ‰ ¦  «        z  t          ‰|¦  «        z   S n<|dk    r6t          dt          z  t          z  |z  ‰z  ¦  «        t          ‰|¦  «        z  S ‰j        �r‰t           j        u rt           j        t          ‰ ¦  «        z
  S ‰t           j        u r1t!          t          ¦  «        t#          t!          ‰¦  «        ¦  «        z  S ‰j        sd‰z  j        �r‰‰dz
  }|j        rÛ‰j        rSt          |¦  «        t          ‰ ¦  «        t          |¦  «        z  t'          ˆfd„t)          ‰¦  «        D ¦   «         Ž z  z
  S t+          ‰¦  «        t          t           j        ‰¦  «        t!          t          ¦  «        z  t          ‰ ¦  «        t'          ˆfd„t)          d‰t           j        z   ¦  «        D ¦   «         Ž z  z
  z  S ‰j        s›t           j
        t           j        ‰z
  z  t          z  t#          t!          ‰¦  «        ¦  «        z  t+          d‰z
  ¦  «        z  t          ‰ ¦  «        t'          ˆˆfd„t)          dt-          dd¦  «        ‰z
  ¦  «        D ¦   «         Ž z  z   S ‰j        rt           j        S d S )Nr   rA   r5   c                 ó:   •— g | ]}‰|z  t          |¦  «        z  ‘ŒS © ru   ©Ú.0rP   rT   s     €r1   ú
<listcomp>z#lowergamma.eval.<locals>.<listcomp>K  s.   ø€ ÐLuÐLuÐLuÐghÈQÐRSÉVÕV_Ð`aÑVbÔVbÑMbÐLuÐLuÐLur?   c                 ón   •— g | ]1}‰|t           j        z
  z  t          t           j        |z   ¦  «        z  ‘Œ2S rž   )r   ÚHalfr4   rŸ   s     €r1   r¡   z#lowergamma.eval.<locals>.<listcomp>M  sZ   ø€ ð  XYð  XYð  XYÐ~ÐXYÐ\]Õ`aÔ`fÑ\fÑXgÕhmÕnoÔntÐwxÑnxÑhyÔhyÑXyð  XYð  XYð  XYr?   c                 ól   •— g | ]0}‰|‰z   d z
  z  t          ‰¦  «        z  t          ‰|z   ¦  «        z  ‘Œ1S rˆ   ©r4   )r    rP   r›   rT   s     €€r1   r¡   z#lowergamma.eval.<locals>.<listcomp>P  s‰   ø€ ð  dpð  dpð  dpð  NOÐdeÐhiÐlmÑhmÐpqÑhqÑdrÕsxÐyzÑs{Ôs{Ñd{õ  }Bð  CDð  GHñ  CHñ  }Iô  }Iñ  eIð  dpð  dpð  dpr?   rB   )r   ÚZeroÚextract_branch_factorre   rE   r   r“   rd   r   r   rL   r%   r   rC   rK   r£   r   r   r{   r   rM   r4   r   Úis_zero)rN   r›   rT   Únxr0   Úbs    ``   r1   rR   zlowergamma.eval#  s›  øø€ ð" •”ˆ;ˆ;Ý”6ˆMØ×'Ò'Ñ)Ô)‰ˆˆAØŒ<ð 	5˜AœMð 	5Ý˜A‘”ˆBØ�QŠwˆwÝ! ! RÑ(Ô(Ð(ð àŒ\ð 	5˜aÔ.ð 	5Ø�AŠvˆvØ�‘t�A‘v˜a‘x¥¤°°Ñ 3Ñ3µI¸q¸b±M´MÑAÅJÈqÐRTÑDUÔDUÑUÐUð à�!ŠVˆVÝ�q�‘t�A‘v˜a‘x ‘z‘?”?¥:¨a°Ñ#4Ô#4Ñ4Ð4ð Œ;ñ 	qØ•A”EˆzˆzÝ”u�s A 2™wœw‘Ð&Ø•a”f��Ý�B‘x”x¥¥D¨¡G¤G¡¤Ñ,Ð,Ø”ð 	q ! A¡#Ô!1ñ 	qØ˜‘E�Ø”=ð [Ø”|ð [Ý(¨™|œ|­c°1°"©g¬g½	À!¹¼Ñ.DÅsÐLuÐLuÐLuÐLuÕlqÐrsÑltÔltÐLuÑLuÔLuÐGvÑ.vÑvÐvå$ Q™xœx­µA´F¸AÑ)>Ô)>½tÅB¹x¼xÑ)GÍ#ÈqÈbÉ'Ì'ÕRUð  XYð  XYð  XYð  XYõ  DIð  JKð  MNõ  QRô  QWñ  MWñ  DXô  DXð  XYñ  XYô  XYð  SZñ  KZñ  *Zñ   [ð  [à”|ð qÝœ=­1¬6°A©:Ñ6µrÑ9½#½dÀ1¹g¼g¹,¼,ÑFÅuÈQÐQRÉUÁ|Ä|ÑSÕVYÐ[\ÐZ\ÑV]ÔV]Õ^að  dpð  dpð  dpð  dpð  dpõ  SXð  YZõ  \dð  efð  hiñ  \jô  \jð  mnñ  \nñ  Soô  Soð  dpñ  dpô  dpð  _qñ  Wqñ  qð  qàŒ9ð 	Ý”6ˆMð	ð 	r?   c                 óf  — t          d„ | j        D ¦   «         ¦  «        r’| j        d                              |¦  «        }| j        d                              |¦  «        }t          |¦  «        5  t	          j        |d|¦  «        }d d d ¦  «         n# 1 swxY w Y   t          j        ||¦  «        S | S )Nc              3   ó$   K  — | ]}|j         V — Œd S rm   ©Ú	is_number©r    rT   s     r1   ú	<genexpr>z)lowergamma._eval_evalf.<locals>.<genexpr>V  ó$   è è € Ð.Ð.˜qˆqŒ{Ð.Ð.Ð.Ð.Ð.Ð.r?   r   r5   )Úallr9   Ú
_to_mpmathr*   r)   Úgammaincr   Ú_from_mpmath©r<   Úprecr›   ro   r†   s        r1   Ú_eval_evalfzlowergamma._eval_evalfU  sá   € ÝÐ.Ð. D¤IÐ.Ñ.Ô.Ñ.Ô.ð 	Ø”	˜!”×'Ò'¨Ñ-Ô-ˆAØ”	˜!”×'Ò'¨Ñ-Ô-ˆAÝ˜$‘”ð +ð +Ý”k ! Q¨Ñ*Ô*�ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +åÔ$ S¨$Ñ/Ô/Ð/àˆKs   Á.BÂBÂBc                 óÞ   — | j         d         }|t          j        t          j        fvrE|                      | j         d                              ¦   «         |                     ¦   «         ¦  «        S d S r7   ©r9   r   r¦   ÚNegativeInfinityr8   r`   rg   s     r1   rb   zlowergamma._eval_conjugate_  óX   € ØŒI�aŒLˆØ•Q”V�QÔ/Ð0Ð0Ð0Ø—9’9˜TœY qœ\×3Ò3Ñ5Ô5°q·{²{±}´}ÑEÔEÐEð 1Ð0r?   c                 óˆ  — | j         \  }}t          |                     ||¦  «        |                     ||¦  «        g¦  «        }|s|S |                     ||¦  «        }|j        rt          |j        |j        g¦  «        S |                     ||¦  «        }t          |j        |j        t          |j        ¦  «        g¦  «        S rm   )	r9   r   Ú_eval_is_meromorphicrW   re   rE   Ú	is_finiter   r¨   )r<   rT   r›   Úsro   Ú
args_meromÚz0Ús0s           r1   r¾   zlowergamma._eval_is_meromorphicd  s¼   € ð Œy‰ˆˆ1Ý × 6Ò 6°q¸!Ñ <Ô <Ø×"Ò" 1 aÑ(Ô(ð *ñ +ô +ˆ
àð 	ØÐØ�VŠV�A�q‰\Œ\ˆØŒ<ð 	<Ý˜aœm¨R¬\Ð:Ñ;Ô;Ð;Ø�VŠV�A�q‰\Œ\ˆÝ˜"œ,¨¬µiÀÄ
Ñ6KÔ6KÐLÑMÔMÐMr?   c                 óv  •‡	‡
— ddl m} | j        \  Š	Š
|d         t          u rt‰
                     |¦  «        s_‰
‰	z  t          ‰
 ¦  «        z  }t          ˆ	ˆ
fd„t          |dz
  ¦  «        D ¦   «         ¦  «        } |‰
‰	z  ‰	| z  z  ¦  «        }||z  |z   S t          ¦   «          	                    ||||¦  «        S )Nr   )ÚOc              3   óJ   •K  — | ]}‰|z  t          ‰|d z   ¦  «        z  V — ŒdS )r5   N)r&   )r    rP   rÀ   ro   s     €€r1   r°   z+lowergamma._eval_aseries.<locals>.<genexpr>z  s8   øè è € ÐCÐC°˜1˜a™4¥ 1 a¨!¡e¡¤Ñ,ÐCÐCÐCÐCÐCÐCr?   r5   )
Úsympy.series.orderrÅ   r9   r   Úhasr   ÚsumrM   r|   Ú_eval_aseries)r<   r0   Úargs0rT   r~   rÅ   rQ   Úsum_exprÚorÀ   ro   r‚   s            @@€r1   rÊ   zlowergamma._eval_aseriesu  sÉ   øøø€ Ø(Ð(Ð(Ð(Ð(Ð(ØŒy‰ˆˆ1Ø�Œ8•rˆ>ˆ> !§%¢%¨¡(¤(ˆ>Ø�q‘D�˜a˜R™œ‘LˆEÝÐCÐCÐCÐCÐCµe¸AÀ¹E±l´lÐCÑCÔCÑCÔCˆHØ��!�Q‘$�q˜A˜2‘w‘,‘”ˆAØ˜‘> AÑ%Ð%Ý‰wŒw×$Ò$ Q¨¨q°$Ñ7Ô7Ð7r?   c                 óB   — t          |¦  «        t          ||¦  «        z
  S rm   )r4   r™   ©r<   rÀ   rT   rq   s       r1   Ú_eval_rewrite_as_uppergammaz&lowergamma._eval_rewrite_as_uppergamma  ó   € Ý�Q‰xŒx�* Q¨Ñ*Ô*Ñ*Ð*r?   c                 óˆ   — ddl m} |j        r	|j        r| S |                      t
          ¦  «                             |¦  «        S )Nr   ©Úexpint)Ú'sympy.functions.special.error_functionsrÔ   re   rd   Úrewriter™   ©r<   rÀ   rT   rq   rÔ   s        r1   Ú_eval_rewrite_as_expintz"lowergamma._eval_rewrite_as_expint‚  sM   € ØBÐBÐBÐBÐBÐBØŒ<ð 	˜AÔ,ð 	ØˆKØ�|Š|�JÑ'Ô'×/Ò/°Ñ7Ô7Ð7r?   c                 ó2   — | j         d         }|j        rdS d S )Nr5   T)r9   r¨   rg   s     r1   Ú_eval_is_zerozlowergamma._eval_is_zeroˆ  s&   € ØŒI�aŒLˆØŒ9ð 	Ø�4ð	ð 	r?   ©rA   )r‰   rŠ   r‹   rŒ   r>   r�   rR   r¸   rb   r¾   rÊ   rÐ   rØ   rÚ   r�   r‘   s   @r1   r“   r“   Þ   sÓ   ø€ € € € € ð4ð 4ðn5ð 5ð 5ð 5ð ð/ð /ñ „[ð/ðbð ð ðFð Fð Fð
Nð Nð Nð"8ð 8ð 8ð 8ð 8ð+ð +ð +ð8ð 8ð 8ðð ð ð ð ð ð r?   r“   c                   óT   — e Zd ZdZdd„Zd„ Zed„ ¦   «         Zd„ Zd„ Z	d„ Z
d	„ Zd
„ ZdS )r™   aË  
    The upper incomplete gamma function.

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

    It can be defined as the meromorphic continuation of

    .. math::
        \Gamma(s, x) := \int_x^\infty t^{s-1} e^{-t} \mathrm{d}t = \Gamma(s) - \gamma(s, x).

    where $\gamma(s, x)$ is the lower incomplete gamma function,
    :class:`lowergamma`. This can be shown to be the same as

    .. math::
        \Gamma(s, x) = \Gamma(s) - \frac{x^s}{s} {}_1F_1\left({s \atop s+1} \middle| -x\right),

    where ${}_1F_1$ is the (confluent) hypergeometric function.

    The upper incomplete gamma function is also essentially equivalent to the
    generalized exponential integral:

    .. math::
        \operatorname{E}_{n}(x) = \int_{1}^{\infty}{\frac{e^{-xt}}{t^n} \, dt} = x^{n-1}\Gamma(1-n,x).

    Examples
    ========

    >>> from sympy import uppergamma, S
    >>> from sympy.abc import s, x
    >>> uppergamma(s, x)
    uppergamma(s, x)
    >>> uppergamma(3, x)
    2*(x**2/2 + x + 1)*exp(-x)
    >>> uppergamma(-S(1)/2, x)
    -2*sqrt(pi)*erfc(sqrt(x)) + 2*exp(-x)/sqrt(x)
    >>> uppergamma(-2, x)
    expint(3, x)/x**2

    See Also
    ========

    gamma: Gamma function.
    lowergamma: Lower incomplete gamma function.
    polygamma: Polygamma function.
    loggamma: Log Gamma function.
    digamma: Digamma function.
    trigamma: Trigamma function.
    sympy.functions.special.beta_functions.beta: Euler Beta function.

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Incomplete_gamma_function#Upper_incomplete_gamma_function
    .. [2] Abramowitz, Milton; Stegun, Irene A., eds. (1965), Chapter 6,
           Section 5, Handbook of Mathematical Functions with Formulas, Graphs,
           and Mathematical Tables
    .. [3] https://dlmf.nist.gov/8
    .. [4] https://functions.wolfram.com/GammaBetaErf/Gamma2/
    .. [5] https://functions.wolfram.com/GammaBetaErf/Gamma3/
    .. [6] https://en.wikipedia.org/wiki/Exponential_integral#Relation_with_other_functions

    rA   c                 ó&  — ddl m} |dk    r1| j        \  }}t          t	          |¦  «         ¦  «         ||dz
  z  z  S |dk    r?| j        \  }}t          ||¦  «        t          |¦  «        z   |g ddgdd|gg |¦  «        z   S t          | |¦  «        ‚r•   )r—   r–   r9   r   r   r™   r   r
   rš   s        r1   r>   zuppergamma.fdiffÐ  s¯   € Ø9Ð9Ð9Ð9Ð9Ð9Ø�qŠ=ˆ=Ø”9‰DˆAˆqÝ� A™œ˜Ñ'Ô'Ð'¨¨A°©E©
Ñ2Ð2Ø˜Š]ˆ]Ø”9‰DˆAˆqÝ˜a Ñ#Ô#¥C¨¡F¤FÑ*¨W¨W°R¸!¸Q¸À!ÀQÈÀÈBÐPQÑ-RÔ-RÑRÐRå$ T¨8Ñ4Ô4Ð4r?   c                 óz  — t          d„ | j        D ¦   «         ¦  «        rœ| j        d                              |¦  «        }| j        d                              |¦  «        }t          |¦  «        5  t	          j        ||t          j        ¦  «        }d d d ¦  «         n# 1 swxY w Y   t          j        ||¦  «        S | S )Nc              3   ó$   K  — | ]}|j         V — Œd S rm   r­   r¯   s     r1   r°   z)uppergamma._eval_evalf.<locals>.<genexpr>Ü  r±   r?   r   r5   )	r²   r9   r³   r*   r)   r´   Úinfr   rµ   r¶   s        r1   r¸   zuppergamma._eval_evalfÛ  sã   € ÝÐ.Ð. D¤IÐ.Ñ.Ô.Ñ.Ô.ð 	0Ø”	˜!”×'Ò'¨Ñ-Ô-ˆAØ”	˜!”×'Ò'¨Ñ-Ô-ˆAÝ˜$‘”ð 0ð 0Ý”k ! Q­¬Ñ/Ô/�ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0åÔ$ S¨$Ñ/Ô/Ð/Øˆs   Á.!BÂBÂ"Bc           	      óh  ‡‡— ddl m} ‰j        rY‰t          j        u rt          j        S ‰t
          u rt          j        S ‰j        r#t          ‰¦  «        j	        rt          ‰¦  «        S ‰                     ¦   «         \  }}‰j        r-‰j	        r&t          ‰¦  «        }‰|k    rt          ‰|¦  «        S nÒ‰j        rV‰j        rO|dk    rHdt           z  t"          z  |z  t          j        ‰ z  z  t'          ‰ ¦  «        z  t          ‰|¦  «        z   S nu|dk    rot          ‰¦  «        dt)          dt           z  t"          z  |z  ‰z  ¦  «        z
  z  t)          dt           z  t"          z  |z  ‰z  ¦  «        t          ‰|¦  «        z  z   S ‰j        �rY‰t          j        u r‰j	        rt+          ‰ ¦  «         S ‰t          j        u rt)          ‰ ¦  «        S ‰t          j        u r1t1          t           ¦  «        t3          t1          ‰¦  «        ¦  «        z  S ‰j        sd‰z  j        �rÄ‰dz
  }|j	        rë‰j        rCt)          ‰ ¦  «        t'          |¦  «        z  t7          ˆfd„t9          ‰¦  «        D ¦   «         Ž z  S t          ‰¦  «        t3          t1          ‰¦  «        ¦  «        z  t          j        ‰t          d¦  «        dz  z
  z  t)          ‰ ¦  «        z  t1          ‰¦  «        z  t7          ˆˆfd„t9          ‰t          j        z
  ¦  «        D ¦   «         Ž z  z   S |j        r# || ‰¦  «        t          ‰¦  «        |dz   z  z  S ‰j        sœt          j        t          j        ‰z
  z  t           z  t3          t1          ‰¦  «        ¦  «        z  t          d‰z
  ¦  «        z  ‰‰z  t)          ‰ ¦  «        z  t7          ˆˆfd	„t9          t          j        ‰z
  ¦  «        D ¦   «         Ž z  z
  S ‰j        r‰j	        rt+          ‰ ¦  «         S ‰j        r#t          ‰¦  «        j	        rt          ‰¦  «        S d S d S )
Nr   rÓ   éþÿÿÿr5   rA   c                 ó:   •— g | ]}‰|z  t          |¦  «        z  ‘ŒS rž   ru   ©r    rP   ro   s     €r1   r¡   z#uppergamma.eval.<locals>.<listcomp>  s?   ø€ ð >Qð >Qð >QØBCð ?@À¹dÅYÈqÁ\Ä\Ñ>Qð >Qð >Qð >Qr?   rB   c                 ó~   •— g | ]9}t          t          j         |z
  ¦  «        ‰ |z  z  t          d ‰z
  ¦  «        z  ‘Œ:S rˆ   )r4   r   r£   ©r    rP   r›   ro   s     €€r1   r¡   z#uppergamma.eval.<locals>.<listcomp>  sY   ø€ ð (Dð (Dð (DØ,-õ ).­q¬v¨g¸©kÑ(:Ô(:¸q¸bÀ1¹WÑ(DÅuÈQÈqÉSÁzÄzÑ(Qð (Dð (Dð (Dr?   c                 óf   •— g | ]-}‰|z  t          ‰¦  «        z  t          ‰|z   d z   ¦  «        z  ‘Œ.S rˆ   r¥   ræ   s     €€r1   r¡   z#uppergamma.eval.<locals>.<listcomp>  sQ   ø€ ð 5Qð 5Qð 5QØ9:ð 67¸±T½EÀ!¹H¼H±_ÅuÈQÈqÉSÐQRÉUÁ|Ä|Ñ5Sð 5Qð 5Qð 5Qr?   )rÕ   rÔ   rC   r   rD   r   r¦   r¨   r   rE   r4   r§   re   r   r™   rd   r   r   rL   r%   r   r   rK   r£   r   r   r{   r   rM   )rN   r›   ro   rÔ   r©   r0   rª   s    ``    r1   rR   zuppergamma.evalä  sk  øø€ àBÐBÐBÐBÐBÐBØŒ;ð 	$Ø•A”EˆzˆzÝ”u�Ø•b��Ý”v�Ø”ð $Ý�a‘5”5Ô$ð $Ý  ™8œ8�Oð ×'Ò'Ñ)Ô)‰ˆˆAØŒ<ð 	V˜AœMð 	VÝ˜A‘”ˆBØ�BŠwˆwÝ! ! RÑ(Ô(Ð(ð àŒ\ð 	V˜aÔ.ð 	VØ�AŠvˆvØ�"‘u�Q‘w˜q‘y¥¤°!°Ñ!4Ñ4µYÀ¸r±]´]ÑBÅZÐPQÐSUÑEVÔEVÑVÐVð à�!ŠVˆVÝ˜‘8”8˜Q¥ Q¥r¡T­!¡V¨A¡X¨a¡Z¡¤Ñ0Ñ1µC¸½"¹½Q¹¸q¹À¹
±O´OÅJÈqÐRTÑDUÔDUÑ4UÑUÐUð Œ;ñ 	SØ•A”Fˆ{ˆ{˜qœ}ˆ{Ý˜A˜2™œ�w�Ø•a”e��Ý˜A˜2‘w”w�Ø•a”f��Ý�B‘x”x¥¥T¨!¡W¤W¡¤Ñ-Ð-Ø”ð S ! A¡#Ô!1ñ SØ˜‘E�Ø”=ð 
@Ø”|ð FÝ" A 2™wœw­°1©¬Ñ5½ð >Qð >Qð >Qð >QÝGLÈQÁxÄxð>Qñ >Qô >Qð 9Rñ  Rð Rõ !& a¡¤­4µ°Q±´©=¬=Ñ 8Ý !¤°µA°a±D´D¸±F±
Ñ ;½cÀ1À"¹g¼gÑ EÍÈQÉÌÑ OÝ"%ð (Dð (Dð (Dð (Dð (DÝ16°q½1¼6±zÑ1BÔ1Bð(Dñ (Dô (Dð #Eñ!Eñ!Eð Fð ”\ð @Ø!˜6 1 " a™=œ=­°A©¬¸¸Q¹Ñ)?Ñ?Ð?à”|ð SÝœM­A¬F°Q©JÑ7½"Ñ<½TÅ$ÀqÁ'Ä'¹]¼]ÑJÍ5ÐQRÐSTÑQTÉ:Ì:ÑUØ ™d¥S¨!¨¡W¤W™n­sð 5Qð 5Qð 5Qð 5Qð 5QÝ>CÅAÄFÈQÁJÑ>OÔ>Oð5Qñ 5Qô 5Qð 0Rñ RñRð Sð Œ9ð 	˜œð 	Ý˜�r‘F”F�7ˆNàŒ9ð 	�˜A™œÔ*ð 	Ý˜‘8”8ˆOð	ð 	ð 	ð 	r?   c                 óÞ   — | j         d         }|t          j        t          j        fvrE|                      | j         d                              ¦   «         |                     ¦   «         ¦  «        S d S r7   rº   ©r<   ro   s     r1   rb   zuppergamma._eval_conjugate  r¼   r?   c                 ó:   — t                                | ||¦  «        S rm   )r“   r¾   )r<   rT   r›   s      r1   r¾   zuppergamma._eval_is_meromorphic"  s   € Ý×.Ò.¨t°Q¸Ñ:Ô:Ð:r?   c                 óB   — t          |¦  «        t          ||¦  «        z
  S rm   )r4   r“   rÏ   s       r1   Ú_eval_rewrite_as_lowergammaz&uppergamma._eval_rewrite_as_lowergamma%  rÑ   r?   c                 ó\   — t          t          |¦  «        ¦  «        t          ||¦  «        z
  S rm   )r   rn   r“   rÏ   s       r1   rr   z%uppergamma._eval_rewrite_as_tractable(  s%   € Ý•8˜A‘;”;ÑÔ¥*¨Q°Ñ"2Ô"2Ñ2Ð2r?   c                 ó8   — ddl m}  |d|z
  |¦  «        ||z  z  S )Nr   rÓ   r5   )rÕ   rÔ   r×   s        r1   rØ   z"uppergamma._eval_rewrite_as_expint+  s3   € ØBÐBÐBÐBÐBÐBØˆv�a˜!‘e˜QÑÔ  1¡Ñ$Ð$r?   NrÛ   )r‰   rŠ   r‹   rŒ   r>   r¸   r�   rR   rb   r¾   rì   rr   rØ   rž   r?   r1   r™   r™   Ž  s¬   € € € € € ð>ð >ðB	5ð 	5ð 	5ð 	5ðð ð ð ð6ð 6ñ „[ð6ðpFð Fð Fð
;ð ;ð ;ð+ð +ð +ð3ð 3ð 3ð%ð %ð %ð %ð %r?   r™   c                   óv   ‡ — e Zd ZdZed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zdd„Zˆ fd„Zd„ Zˆ xZS )r:   a¯  
    The function ``polygamma(n, z)`` returns ``log(gamma(z)).diff(n + 1)``.

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

    It is a meromorphic function on $\mathbb{C}$ and defined as the $(n+1)$-th
    derivative of the logarithm of the gamma function:

    .. math::
        \psi^{(n)} (z) := \frac{\mathrm{d}^{n+1}}{\mathrm{d} z^{n+1}} \log\Gamma(z).

    For `n` not a nonnegative integer the generalization by Espinosa and Moll [5]_
    is used:

    .. math:: \psi(s,z) = \frac{\zeta'(s+1, z) + (\gamma + \psi(-s)) \zeta(s+1, z)}
        {\Gamma(-s)}

    Examples
    ========

    Several special values are known:

    >>> from sympy import S, polygamma
    >>> polygamma(0, 1)
    -EulerGamma
    >>> polygamma(0, 1/S(2))
    -2*log(2) - EulerGamma
    >>> polygamma(0, 1/S(3))
    -log(3) - sqrt(3)*pi/6 - EulerGamma - log(sqrt(3))
    >>> polygamma(0, 1/S(4))
    -pi/2 - log(4) - log(2) - EulerGamma
    >>> polygamma(0, 2)
    1 - EulerGamma
    >>> polygamma(0, 23)
    19093197/5173168 - EulerGamma

    >>> from sympy import oo, I
    >>> polygamma(0, oo)
    oo
    >>> polygamma(0, -oo)
    oo
    >>> polygamma(0, I*oo)
    oo
    >>> polygamma(0, -I*oo)
    oo

    Differentiation with respect to $x$ is supported:

    >>> from sympy import Symbol, diff
    >>> x = Symbol("x")
    >>> diff(polygamma(0, x), x)
    polygamma(1, x)
    >>> diff(polygamma(0, x), x, 2)
    polygamma(2, x)
    >>> diff(polygamma(0, x), x, 3)
    polygamma(3, x)
    >>> diff(polygamma(1, x), x)
    polygamma(2, x)
    >>> diff(polygamma(1, x), x, 2)
    polygamma(3, x)
    >>> diff(polygamma(2, x), x)
    polygamma(3, x)
    >>> diff(polygamma(2, x), x, 2)
    polygamma(4, x)

    >>> n = Symbol("n")
    >>> diff(polygamma(n, x), x)
    polygamma(n + 1, x)
    >>> diff(polygamma(n, x), x, 2)
    polygamma(n + 2, x)

    We can rewrite ``polygamma`` functions in terms of harmonic numbers:

    >>> from sympy import harmonic
    >>> polygamma(0, x).rewrite(harmonic)
    harmonic(x - 1) - EulerGamma
    >>> polygamma(2, x).rewrite(harmonic)
    2*harmonic(x - 1, 3) - 2*zeta(3)
    >>> ni = Symbol("n", integer=True)
    >>> polygamma(ni, x).rewrite(harmonic)
    (-1)**(n + 1)*(-harmonic(x - 1, n + 1) + zeta(n + 1))*factorial(n)

    See Also
    ========

    gamma: Gamma function.
    lowergamma: Lower incomplete gamma function.
    uppergamma: Upper incomplete gamma function.
    loggamma: Log Gamma function.
    digamma: Digamma function.
    trigamma: Trigamma function.
    sympy.functions.special.beta_functions.beta: Euler Beta function.

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Polygamma_function
    .. [2] https://mathworld.wolfram.com/PolygammaFunction.html
    .. [3] https://functions.wolfram.com/GammaBetaErf/PolyGamma/
    .. [4] https://functions.wolfram.com/GammaBetaErf/PolyGamma2/
    .. [5] O. Espinosa and V. Moll, "A generalized polygamma function",
           *Integral Transforms and Special Functions* (2004), 101-115.

    c                 ó6  — |t           j        u s|t           j        u rt           j        S |t          u r|j        rt          nt           j        S |j        r|j        rt           j        S |t           j        u r*t          |¦  «        t          dt          z  ¦  «        dz  z
  S |j        r±|t           u s)|                     t          ¦  «        t          t           fv rt          S |j        rt          |dz
  ¦  «        t           j        z
  S |j        rF|                     ¦   «         \  }}|dk    r+t%          t'          t           j        |d¬¦  «        ¦  «        S d S d S |j        r¸|j        r³t-          |¦  «        }||k    rt'          ||¦  «        S |j        r6t           j        |dz   z  t/          |¦  «        z  t1          |dz   |¦  «        z  S |t           j        u rEt           j        |dz   z  t/          |¦  «        z  d|dz   z  dz
  z  t1          |dz   ¦  «        z  S d S d S d S )NrA   r5   é   F)Úevaluate)r   rD   r   r¨   r¦   r{   rd   rF   rL   rn   r   r   Úextract_multiplicativelyr   r$   Ú
EulerGammarG   Úas_numer_denomr   r:   re   Úis_nonnegativer   r%   r   r£   )rN   r0   ro   rJ   rH   Únzs         r1   rR   zpolygamma.evalŸ  s  € à•”ˆ:ˆ:˜�aœe˜˜Ý”5ˆLØ•"ˆWˆWØœÐ.•2�2­¬Ð.ØŒ\ð 	V˜aÔ.ð 	VÝÔ$Ð$Ø•!”-ÐÐÝ˜A‘;”;¥ Q¥r¡T¡¤¨Q¡Ñ.Ð.ØŒYð 	VØ•R�Cˆxˆx˜1×5Ò5µaÑ8Ô8½RÅ"À¸IÐEÐEÝ�	Ø”ð MÝ  !¡‘}”}¥q¤|Ñ3Ð3Ø”ð Mà×'Ò'Ñ)Ô)‘��1à˜’6�6Ý&¥yµ´¸ÀUÐ'KÑ'KÔ'KÑLÔLÐLðMð Mð �6àŒ\ð 	V˜aÔ.ð 	VÝ˜A‘”ˆBØ�BŠwˆwÝ   BÑ'Ô'Ð'ØŒ|ð VÝ”} q¨¡sÑ+­i¸©l¬lÑ:½TÀ!ÀAÁ#Àq¹\¼\ÑIÐIØ•a”f��Ý”} q¨¡sÑ+­i¸©l¬lÑ:¸aÀ!ÀAÁ#¹hÀq¹jÑIÍDÐQRÐSTÑQTÉIÌIÑUÐUð	Vð 	Vð 	Vð 	Vð �r?   c                 óV   — | j         d         j        r| j         d         j        rdS d S d S )Nr   r5   T)r9   rE   ra   s    r1   rh   zpolygamma._eval_is_real½  s<   € ØŒ9�QŒ<Ô#ð 	¨¬	°!¬Ô(@ð 	Ø�4ð	ð 	ð 	ð 	r?   c                 ó˜   — | j         d         }t          |j        |j        g¦  «        }t          |j        t          |¦  «        g¦  «        S rt   )r9   r   Úis_negativere   Ú
is_complexr   )r<   ro   Úis_negative_integers      r1   Ú_eval_is_complexzpolygamma._eval_is_complexÁ  sB   € ØŒI�aŒLˆÝ'¨¬¸¼Ð(EÑFÔFÐÝ˜!œ,­	Ð2EÑ(FÔ(FÐGÑHÔHÐHr?   c                 óp   — | j         \  }}|j        r |j        r	|j        rdS |j        r|j        rdS d S d S d S ©NTF)r9   rE   Úis_oddÚis_realrj   ©r<   r0   ro   s      r1   rk   zpolygamma._eval_is_positiveÆ  se   € ØŒy‰ˆˆ1ØŒ=ð 	ØŒxð ˜AœIð Ø�tØŒyð ˜Qœ]ð Ø�uð		ð 	ðð ð ð r?   c                 óp   — | j         \  }}|j        r |j        r	|j        rdS |j        r|j        rdS d S d S d S rÿ   )r9   rE   rj   r   r  r  s      r1   Ú_eval_is_negativezpolygamma._eval_is_negativeÎ  se   € ØŒy‰ˆˆ1ØŒ=ð 	ØŒyð ˜Qœ]ð Ø�tØŒxð ˜AœIð Ø�uð		ð 	ðð ð ð r?   c           	      óÊ  ‡‡‡‡	‡
‡‡— | j         \  ŠŠ‰j        �r\‰j        �rT‰j        r¾‰j         d         Š‰j        r©‰dz    Š‰dk    r5t	          ˆˆfd„t          dt          ‰¦  «        dz   ¦  «        D ¦   «         Ž }n2t	          ˆˆfd„t          t          ‰ ¦  «        ¦  «        D ¦   «         Ž  }t          ‰‰‰z
  ¦  «        t          j	        ‰z  t          ‰¦  «        z  |z  z   S n�‰j        rˆ‰                     ¦   «         \  ŠŠ‰j        re‰j        r^ˆˆˆfd„t          t          ‰¦  «        ¦  «        D ¦   «         }‰dk    rt	          |Ž ‰z  t          ‰¦  «        z   S t	          |Ž ‰‰dz   z  z  S ‰‰z  Š‰dk    �r‰j        �r ‰                     ¦   «         \  Š	Š
t          j         t$          t'          ‰	t$          z  ‰
z  ¦  «        z  dz  z
  t          ‰
¦  «        z
  t	          ˆ	ˆ
fd„t          d‰
¦  «        D ¦   «         Ž z   }‰dk    r9t)          ‰¦  «        Š‰‰z
  Š|t	          ˆfd„t          ‰¦  «        D ¦   «         Ž z   S ‰dk     r<t)          d‰z
  ¦  «        Š‰‰z   Š|t	          ˆfd	„t          ‰¦  «        D ¦   «         Ž z
  S ‰d
k    r*t+          ‰¦  «        t          dt$          z  ¦  «        dz  z
  S ‰j        du s	‰j        du rŽt/          d¦  «        }t1          |‰¦  «                             |¦  «                             |‰dz   ¦  «        }|t          j        t7          ‰ ¦  «        z   t1          ‰dz   ‰¦  «        z  z   t9          ‰ ¦  «        z  S t          ‰‰¦  «        S )Nr   r5   c                 ó6   •— g | ]}t          ‰|z
  ‰¦  «        ‘ŒS rž   r   ©r    ÚiÚero   s     €€r1   r¡   z/polygamma._eval_expand_func.<locals>.<listcomp>ß  sB   ø€ ð %Ið %Ið %IØ*+õ &)Ø ™E 1ñ&&ô &&ð %Ið %Ið %Ir?   c                 ó6   •— g | ]}t          ‰|z   ‰¦  «        ‘ŒS rž   r   r  s     €€r1   r¡   z/polygamma._eval_expand_func.<locals>.<listcomp>â  sB   ø€ ð &Cð &Cð &CØ*+õ '*Ø ™E 1ñ'&ô '&ð &Cð &Cð &Cr?   c           
      óR   •— g | ]#}t          ‰‰t          |‰¦  «        z   ¦  «        ‘Œ$S rž   )r:   r   )r    r  rQ   r0   ro   s     €€€r1   r¡   z/polygamma._eval_expand_func.<locals>.<listcomp>é  sM   ø€ ð ?ð ?ð ?Ø'(õ & a¨­XØ˜5ñ."ô ."ñ *"ñ #ô #ð ?ð ?ð ?r?   rA   c           
      ó¦   •— g | ]M}t          d |z  t          z  ‰z  ‰z  ¦  «        t          d t          |t          z  ‰z  ¦  «        z  ¦  «        z  ‘ŒNS rÛ   )r!   r   r   r    )r    rP   rJ   rH   s     €€r1   r¡   z/polygamma._eval_expand_func.<locals>.<listcomp>÷  sR   ø€ ÐZÐZÐZÈ•#�a˜!‘e�b‘j 1‘n qÑ(Ñ)Ô)­C°µC¸½B¹À¹
±O´OÑ0CÑ,DÔ,DÑDÐZÐZÐZr?   c                 ó    •— g | ]
}d ‰|z   z  ‘ŒS rˆ   rž   ©r    rP   rÂ   s     €r1   r¡   z/polygamma._eval_expand_func.<locals>.<listcomp>ü  s!   ø€ Ð%EÐ%EÐ%E°q a¨2°©6¡lÐ%EÐ%EÐ%Er?   c                 ó&   •— g | ]}d ‰d z
  |z
  z  ‘ŒS rˆ   rž   r  s     €r1   r¡   z/polygamma._eval_expand_func.<locals>.<listcomp>   s&   ø€ Ð%IÐ%IÐ%I¸1 a¨2°©6°A©:Ñ&6Ð%IÐ%IÐ%Ir?   éÿÿÿÿFrÀ   )r9   r{   rö   rX   r   rM   Úintr:   r   rL   r%   Úis_MulÚas_two_termsrE   r   rG   rõ   rô   r   r"   r   rn   re   r   r   ÚdiffrW   r˜   r4   )r<   r[   r\   Úpart_1rÀ   ÚdztrQ   r	  r0   rJ   rH   ro   rÂ   s         @@@@@@@r1   rV   zpolygamma._eval_expand_funcÖ  s×  øøøøøøø€ ØŒy‰ˆˆ1àŒ<ñ 	˜AÔ,ñ 	ØŒxð Øœ˜qœ	�ØÔ#ð XØ˜a™%˜�AØ˜q’y�yÝ"ð %Ið %Ið %Ið %Ið %IÝ/4°Q½¸E¹
¼
ÀQ¹Ñ/GÔ/Gð%Iñ %Iô %Ið  J˜˜õ !$ð &Cð &Cð &Cð &Cð &CÝ/4µS¸%¸±[´[Ñ/AÔ/Að&Cñ &Cô &Cð !Dð  D˜å$ Q¨¨E©	Ñ2Ô2µQ´]ÀAÑ5EÅiÐPQÁlÄlÑ5RÐSWÑ5WÑWÐWðXð ”ð 	ØŸ>š>Ñ+Ô+‘��qØÔ#ð 9¨Ô(9ð 9ð?ð ?ð ?ð ?ð ?ð ?Ý,1µ#°e±*´*Ñ,=Ô,=ð?ñ ?ô ?�Dà˜A’v�vÝ" D˜z¨%Ñ/µ#°e±*´*Ñ<Ð<å" D˜z¨%°!°a±%©.Ñ8Ð8Ø�U‘
�à�Š6‰6�a”m‰6Ø×#Ò#Ñ%Ô%‰DˆAˆqõ ”l�]¥R­#¨aµ"©f°q©j©/¬/Ñ%9¸AÑ%=Ñ=ÅÀAÁÄÑFÍØZÐZÐZÐZÐZÍeÐTUÐWXÉkÌkÐZÑZÔZðJ\ñ \ˆFð �1ŠuˆuÝ˜!‘H”H�Ø˜‘U�Ø¥Ð%EÐ%EÐ%EÐ%E½EÀ!¹H¼HÐ%EÑ%EÔ%EÐ FÑFÐFØ�Q’�Ý˜!˜a™%‘L”L�Ø˜‘U�Ø¥Ð%IÐ%IÐ%IÐ%IÅÀaÁÄÐ%IÑ%IÔ%IÐ JÑJÐJà�Š7ˆ7Ý˜A‘;”;¥ Q¥r¡T¡¤¨Q¡Ñ.Ð.ØŒ<˜5Ð Ð  AÔ$4¸Ð$=Ð$=Ý�c‘
”
ˆAÝ�q˜!‘*”*—/’/ !Ñ$Ô$×)Ò)¨!¨Q¨q©SÑ1Ô1ˆCØ�1œ<­'°1°"©+¬+Ñ5½¸aÀ¹cÀ1¹¼ÑEÑEÍÐPQÈrÉÌÑRÐRå˜˜A‰ŒÐr?   c                 ó’   — |j         r=|j        r8t          j        |dz   z  t	          |¦  «        z  t          |dz   |¦  «        z  S d S d S rt   )re   rE   r   rL   r%   r   ©r<   r0   ro   rq   s       r1   Ú_eval_rewrite_as_zetazpolygamma._eval_rewrite_as_zeta  s\   € ØŒ<ð 	F˜AœMð 	FÝ”= 1 q¡5Ñ)­)°A©,¬,Ñ6µt¸AÀ¹EÀ1±~´~ÑEÐEð	Fð 	Fð 	Fð 	Fr?   c                 óø   — |j         rr|j        rt          |dz
  ¦  «        t          j        z
  S t          j        |dz   z  t          |¦  «        z  t          |dz   ¦  «        t          |dz
  |dz   ¦  «        z
  z  S d S rt   )re   r¨   r$   r   rô   rL   r%   r   r  s       r1   Ú_eval_rewrite_as_harmonicz#polygamma._eval_rewrite_as_harmonic  sƒ   € ØŒ<ð 	^ØŒyð ^Ý  A¡‘”­¬Ñ5Ð5å”} q¨¡sÑ+­i¸©l¬lÑ:½dÀ1ÀQÁ3¹i¼iÍ(ÐSTÐUVÑSVÐXYÐZ[ÑX[ÑJ\ÔJ\Ñ>\Ñ]Ð]ð		^ð 	^r?   c                 ó  ‡— ddl m} ˆfd„| j        D ¦   «         \  }} ||‰¦  «        }|dk    rB|                     d‰z  ¦  «        r*|€t	          ‰¦  «        n|}|                     ¦   «         |z  S |                      ||¦  «        S )Nr   ©ÚOrderc                 ó:   •— g | ]}|                      ‰¦  «        ‘ŒS rž   )r„   )r    r›   rT   s     €r1   r¡   z3polygamma._eval_as_leading_term.<locals>.<listcomp>  s'   ø€ Ð8Ð8Ð8¨�×!Ò! !Ñ$Ô$Ð8Ð8Ð8r?   r5   )rÇ   r  r9   Úcontainsr   Úgetnr8   )r<   rT   r~   r   r  r0   ro   rÍ   s    `      r1   r‡   zpolygamma._eval_as_leading_term  s•   ø€ Ø,Ð,Ð,Ð,Ð,Ð,Ø8Ð8Ð8Ð8¨d¬iÐ8Ñ8Ô8‰ˆˆ1ØˆE�!�Q‰KŒKˆØ�Š6ˆ6�a—j’j  1¡‘o”oˆ6Ø!˜\•3�q‘6”6�6¨tˆDØ—6’6‘8”8˜d‘?Ð"à—9’9˜Q ‘?”?Ð"r?   rA   c                 óx   — |dk    r%| j         d d…         \  }}t          |dz   |¦  «        S t          | |¦  «        ‚©NrA   r5   )r9   r:   r
   )r<   r=   r0   ro   s       r1   r>   zpolygamma.fdiff   sB   € Ø�qŠ=ˆ=Ø”9˜R˜a˜R”=‰DˆAˆqÝ˜Q ™U AÑ&Ô&Ð&å$ T¨8Ñ4Ô4Ð4r?   c                 óT  •‡— ddl m} |d         t          k    s$| j        d         j        r| j        d         j        s$t          ¦   «                              ||||¦  «        S | j        d         Š| j        d         }|dk    r™t          ‰¦  «        dd‰z  z  z
  }d }|dk     r |d‰z  |¦  «        }nOt          |dz   dz  ¦  «        }	ˆfd„t          d|	¦  «        D ¦   «         }
|t          |
Ž z  } |d‰|z  z  |¦  «        }|                     |||¦  «        |z   S t          |¦  «        }|||z  d‰z  z  z   }t          |dz   dz  ¦  «        }	t          d|	¦  «        D ]L}|d|z  |z   dz
  z  d|z  |z   dz
  z  d|z  d|z  dz
  z  z  }|t          d|z  ¦  «        |z  ‰d|z  z  z  z  }ŒM |d‰d|	z  z  z  |¦  «        }|dk    r |d‰z  |¦  «        }n|dk    r |d‰dz  z  |¦  «        }|                     ‰||¦  «        |z   }dd‰z  |z  z  |z                       |||¦  «        S )Nr   r  r5   rA   c                 óR   •— g | ]#}t          d |z  ¦  «        d |z  ‰d |z  z  z  z  ‘Œ$S rÛ   ©r#   rä   s     €r1   r¡   z+polygamma._eval_aseries.<locals>.<listcomp>8  s8   ø€ ÐJÐJÐJ¸•Y˜q ™s‘^”^ q¨¡s¨1¨q°©s©8¡|Ñ4ÐJÐJÐJr?   r  )rÇ   r  r   r9   r{   rö   r|   rÊ   r   r   rM   r   r}   r4   r#   )r<   r0   rË   rT   r~   r  ÚNÚrrÍ   ÚmÚlÚfacÚe0rP   ro   r‚   s                 @€r1   rÊ   zpolygamma._eval_aseries'  s‹  øø€ Ø,Ð,Ð,Ð,Ð,Ð,Ø�Œ8•rŠ>ˆ>Ø”˜1”Ô(ð Ø-1¬Y°q¬\Ô-Hð å‘7”7×(Ò(¨¨E°1°dÑ;Ô;Ð;ØŒI�aŒLˆØŒI�aŒLˆà�Š6ˆ6õ �A‘”˜˜A˜a™C™Ñ ˆAØˆAØ�1ŠuˆuØ�E˜!˜A™#˜q‘M”M��å˜Q ™U Q™JÑ'Ô'�ØJÐJÐJÐJ½eÀAÀq¹k¼kÐJÑJÔJ�Ø•S˜!�W‘�Ø�E˜!˜A˜q™D™& !Ñ$Ô$�Ø—?’? 1 a¨Ñ.Ô.°Ñ2Ð2õ ˜‘(”(ˆCØ�q˜‘u˜a ™c‘{Ñ"ˆBÝ˜˜Q™ ™
Ñ#Ô#ˆAÝ˜1˜a‘[”[ð 2ð 2�Ø˜1˜Q™3 ™7 Q™;Ñ'¨¨1©¨q©°1©Ñ5¸!¸A¹#ÀÀ!ÁÀaÁ¹ÑI�Ø•i  !¡‘n”n SÑ(¨¨Q¨q©S©Ñ1Ñ1��Ø��a˜˜A˜a™C™‘j !Ñ$Ô$ˆAØ�AŠvˆvØ�E˜!˜A™#˜q‘M”M��Ø�a’�Ø�E˜!˜A˜q™D™& !Ñ$Ô$�Ø× Ò   A tÑ,Ô,¨qÑ0ˆAØ˜"˜Q™$ ™‘N QÑ&×5Ò5°a¸¸DÑAÔAÐAr?   c                 óÖ  — t          d„ | j        D ¦   «         ¦  «        sd S | j        d                              |dz   ¦  «        }| j        d                              |dz   ¦  «        }t          j        |¦  «        r|dk    rt
          j        S t          |dz   ¦  «        5  t          j        |¦  «        r|dk    rt          j        ||¦  «        }not          j	        |dz   |¦  «        }t          j	        |dz   |d¦  «        }|t          j
        t          j        | ¦  «        z   |z  z   t          j        | ¦  «        z  }d d d ¦  «         n# 1 swxY w Y   t          j        ||¦  «        S )Nc              3   ó$   K  — | ]}|j         V — Œd S rm   r­   )r    r  s     r1   r°   z(polygamma._eval_evalf.<locals>.<genexpr>Q  s$   è è € Ð2Ð2 1�1”;Ð2Ð2Ð2Ð2Ð2Ð2r?   r   é   r5   )r²   r9   r³   r)   Úisintr   rF   r*   r:   r   Úeulerr˜   Úrgammar   rµ   )r<   r·   rÀ   ro   r†   Úztr  s          r1   r¸   zpolygamma._eval_evalfP  s•  € ÝÐ2Ð2¨¬	Ð2Ñ2Ô2Ñ2Ô2ð 	ØˆFØŒI�aŒL×#Ò# D¨¡GÑ,Ô,ˆØŒI�aŒL×#Ò# D¨¡GÑ,Ô,ˆÝŒ8�A‰;Œ;ð 	%˜1 š6˜6ÝÔ$Ð$Ý�d˜2‘gÑÔð 	Oð 	OÝŒx˜‰{Œ{ð O˜q Ašv˜vÝ”l 1 aÑ(Ô(��å”W˜Q˜q™S !‘_”_�Ý”g˜a ™c 1 aÑ(Ô(�Ø�bœh­¬°Q°B©¬Ñ7¸2Ñ=Ñ=ÅÄÈAÈ2ÁÄÑN�ð	Oð 	Oð 	Oñ 	Oô 	Oð 	Oð 	Oð 	Oð 	Oð 	Oð 	Oøøøð 	Oð 	Oð 	Oð 	Oõ Ô   dÑ+Ô+Ð+s   ÂB EÅEÅErÛ   )r‰   rŠ   r‹   rŒ   r�   rR   rh   rý   rk   r  rV   r  r  r‡   r>   rÊ   r¸   r�   r‘   s   @r1   r:   r:   4  s  ø€ € € € € ðhð hðT ðVð Vñ „[ðVð:ð ð ðIð Ið Ið
ð ð ðð ð ð3ð 3ð 3ðjFð Fð Fð^ð ^ð ^ð#ð #ð #ð5ð 5ð 5ð 5ð'Bð 'Bð 'Bð 'Bð 'BðR,ð ,ð ,ð ,ð ,ð ,ð ,r?   r:   c                   ód   ‡ — e Zd ZdZed„ ¦   «         Zd„ Zdˆ fd„	Zˆ fd„Zd„ Z	d	„ Z
d
„ Zdd„Zˆ xZS )rn   aõ
  
    The ``loggamma`` function implements the logarithm of the
    gamma function (i.e., $\log\Gamma(x)$).

    Examples
    ========

    Several special values are known. For numerical integral
    arguments we have:

    >>> from sympy import loggamma
    >>> loggamma(-2)
    oo
    >>> loggamma(0)
    oo
    >>> loggamma(1)
    0
    >>> loggamma(2)
    0
    >>> loggamma(3)
    log(2)

    And for symbolic values:

    >>> from sympy import Symbol
    >>> n = Symbol("n", integer=True, positive=True)
    >>> loggamma(n)
    log(gamma(n))
    >>> loggamma(-n)
    oo

    For half-integral values:

    >>> from sympy import S
    >>> loggamma(S(5)/2)
    log(3*sqrt(pi)/4)
    >>> loggamma(n/2)
    log(2**(1 - n)*sqrt(pi)*gamma(n)/gamma(n/2 + 1/2))

    And general rational arguments:

    >>> from sympy import expand_func
    >>> L = loggamma(S(16)/3)
    >>> expand_func(L).doit()
    -5*log(3) + loggamma(1/3) + log(4) + log(7) + log(10) + log(13)
    >>> L = loggamma(S(19)/4)
    >>> expand_func(L).doit()
    -4*log(4) + loggamma(3/4) + log(3) + log(7) + log(11) + log(15)
    >>> L = loggamma(S(23)/7)
    >>> expand_func(L).doit()
    -3*log(7) + log(2) + loggamma(2/7) + log(9) + log(16)

    The ``loggamma`` function has the following limits towards infinity:

    >>> from sympy import oo
    >>> loggamma(oo)
    oo
    >>> loggamma(-oo)
    zoo

    The ``loggamma`` function obeys the mirror symmetry
    if $x \in \mathbb{C} \setminus \{-\infty, 0\}$:

    >>> from sympy.abc import x
    >>> from sympy import conjugate
    >>> conjugate(loggamma(x))
    loggamma(conjugate(x))

    Differentiation with respect to $x$ is supported:

    >>> from sympy import diff
    >>> diff(loggamma(x), x)
    polygamma(0, x)

    Series expansion is also supported:

    >>> from sympy import series
    >>> series(loggamma(x), x, 0, 4).cancel()
    -log(x) - EulerGamma*x + pi**2*x**2/12 - x**3*zeta(3)/3 + O(x**4)

    We can numerically evaluate the ``loggamma`` function
    to arbitrary precision on the whole complex plane:

    >>> from sympy import I
    >>> loggamma(5).evalf(30)
    3.17805383034794561964694160130
    >>> loggamma(I).evalf(20)
    -0.65092319930185633889 - 1.8724366472624298171*I

    See Also
    ========

    gamma: Gamma function.
    lowergamma: Lower incomplete gamma function.
    uppergamma: Upper incomplete gamma function.
    polygamma: Polygamma function.
    digamma: Digamma function.
    trigamma: Trigamma function.
    sympy.functions.special.beta_functions.beta: Euler Beta function.

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Gamma_function
    .. [2] https://dlmf.nist.gov/5
    .. [3] https://mathworld.wolfram.com/LogGammaFunction.html
    .. [4] https://functions.wolfram.com/GammaBetaErf/LogGamma/

    c                 ó  — |j         r2|j        rt          S |j        rt	          t          |¦  «        ¦  «        S n…|j        r~|                     ¦   «         \  }}|j        r`|dk    rZt	          t          t          ¦  «        dd|z
  z  z  t          |¦  «        z  t          |dz   t          j        z  ¦  «        z  ¦  «        S |t          u rt          S t          |¦  «        t          u rt          j        S |t          j        u rt          j        S d S r#  )re   rd   r   rE   r   r4   Úis_rationalrõ   r   r   r   r£   rI   rF   rD   )rN   ro   rJ   rH   s       r1   rR   zloggamma.evalÏ  só   € àŒ<ð 		UØÔð %Ý�	Ø”ð %Ý�5 ™8œ8‘}”}Ð$ð%àŒ]ð 	UØ×#Ò#Ñ%Ô%‰DˆAˆqàŒ}ð U  a¢ Ý�4¥™8œ8 a¨!¨a©%¡jÑ0µ5¸±8´8Ñ;½eÀQÈÁUÍAÌFÁNÑ>SÔ>SÑSÑTÔTÐTà•ˆ7ˆ7ÝˆIÝ�‰VŒV•rˆ\ˆ\ÝÔ$Ð$Ø•”ˆ:ˆ:Ý”5ˆLð ˆ:r?   c                 óf  — ddl m} | j        d         }|j        �r|                     ¦   «         \  }}||z  }|||z  z
  }|j        rê|j        rã||k     rÝt          d¦  «        }|j        rKt          ||z  ¦  «        |t          |¦  «        z  z
   |t          |dz
  |z  |z   ¦  «        |d|f¦  «        z   S |j	        r\t          ||z  ¦  «        |t          |¦  «        z  z
  t          t          z  |z  z    |t          ||z  |z
  ¦  «        |d| f¦  «        z
  S |j        rt          ||z  ¦  «        S | S )Nr   ©ÚSumrP   r5   )Úsympy.concrete.summationsr9  r9   rG   rõ   rE   r   rn   r   rú   r   r   r¨   )r<   r[   r9  ro   rJ   rH   r0   rP   s           r1   rV   zloggamma._eval_expand_funcã  sU  € Ø1Ð1Ð1Ð1Ð1Ð1ØŒI�aŒLˆàŒ=ñ 	+Ø×#Ò#Ñ%Ô%‰DˆAˆqð �Q‘ˆAØ�A�a‘C‘ˆAØŒ}ð + ¤ð +°1°q²5°5Ý˜#‘J”J�Ø”=ð +Ý# A¨¡E™?œ?¨Q­s°1©v¬v©XÑ5¸¸½CÀÀQÁÈÁ	ÈAÁÑ<NÔ<NÐQRÐTUÐWXÐPYÑ8ZÔ8ZÑZÐZØ”]ð +Ý# A¨¡E™?œ?¨Q­s°1©v¬v©XÑ5½½1¹¸Q¹Ñ>ÀÀÅSÈÈ1ÉÈqÉÁ\Ä\ÐTUÐWXÐ[\ÐZ\ÐS]ÑA^ÔA^Ñ^Ð^Ø”Yð +Ý# A¨¡E™?œ?Ð*àˆr?   Nr   c                 óæ   •— | j         d                              |d¦  «        }|j        r& | j        | j         Ž }|                     |||¦  «        S t          ¦   «                              |||¦  «        S r_   )r9   rz   r¨   Ú_eval_rewrite_as_intractabler}   r|   )r<   rT   r0   r~   r   r€   Úfr‚   s          €r1   r}   zloggamma._eval_nseriesø  sk   ø€ ØŒY�qŒ\×Ò  1Ñ%Ô%ˆØŒ:ð 	/Ø1�Ô1°4´9Ð=ˆAØ—?’? 1 a¨Ñ.Ô.Ð.Ý‰wŒw×$Ò$ Q¨¨4Ñ0Ô0Ð0r?   c                 óÞ  •‡	— ddl m} |d         t          k    r$t          ¦   «                              ||||¦  «        S | j        d         Š	t          ‰	¦  «        ‰	t          j        z
  z  ‰	z
  t          dt          z  ¦  «        dz  z   }ˆ	fd„t          d|¦  «        D ¦   «         }d }|dk    r |d|¦  «        }n |d‰	|z  z  |¦  «        }|t          |Ž z                        |||¦  «        |z   S )Nr   r  rA   c                 ój   •— g | ]/}t          d |z  ¦  «        d |z  d |z  dz
  z  ‰d |z  dz
  z  z  z  ‘Œ0S )rA   r5   r&  rä   s     €r1   r¡   z*loggamma._eval_aseries.<locals>.<listcomp>  sI   ø€ ÐPÐPÐP¸q�Y�q˜‘s‰^Œ^˜q ™s A a¡C¨!¡G™}¨Q°°1±°q±©\Ñ9Ñ:ÐPÐPÐPr?   r5   )rÇ   r  r   r|   rÊ   r9   r   r   r£   r   rM   r   r}   )r<   r0   rË   rT   r~   r  r(  r*  rÍ   ro   r‚   s            @€r1   rÊ   zloggamma._eval_aseriesÿ  sø   øø€ Ø,Ð,Ð,Ð,Ð,Ð,Ø�Œ8•rŠ>ˆ>Ý‘7”7×(Ò(¨¨E°1°dÑ;Ô;Ð;ØŒI�aŒLˆÝ�‰FŒF�A�œ‘JÑ !Ñ#¥c¨!­B©$¡i¤i°¡kÑ1ˆØPÐPÐPÐPÅEÈ!ÈQÁKÄKÐPÑPÔPˆØˆØ�Š6ˆ6Ø��a˜‘”ˆAˆAà��a˜˜1™‘f˜aÑ Ô ˆAà•C˜�G‘×*Ò*¨1¨a°Ñ6Ô6¸Ñ:Ð:r?   c                 ó:   — t          t          |¦  «        ¦  «        S rm   )r   r4   rv   s      r1   r<  z%loggamma._eval_rewrite_as_intractable  s   € Ý•5˜‘8”8‰}Œ}Ðr?   c                 óD   — | j         d         }|j        rdS |j        rdS d S )Nr   TF)r9   rE   rd   ré   s     r1   rh   zloggamma._eval_is_real  s6   € ØŒI�aŒLˆØŒ=ð 	Ø�4ØÔð 	Ø�5ð	ð 	r?   c                 ó¢   — | j         d         }|t          j        t          j        fvr'|                      |                     ¦   «         ¦  «        S d S r_   rº   ré   s     r1   rb   zloggamma._eval_conjugate  sD   € ØŒI�aŒLˆØ•Q”V�QÔ/Ð0Ð0Ð0Ø—9’9˜QŸ[š[™]œ]Ñ+Ô+Ð+ð 1Ð0r?   r5   c                 ód   — |dk    rt          d| j        d         ¦  «        S t          | |¦  «        ‚r7   )r:   r9   r
   r;   s     r1   r>   zloggamma.fdiff  s1   € Ø�qŠ=ˆ=Ý˜Q ¤	¨!¤Ñ-Ô-Ð-å$ T¨8Ñ4Ô4Ð4r?   r_   rˆ   )r‰   rŠ   r‹   rŒ   r�   rR   rV   r}   rÊ   r<  rh   rb   r>   r�   r‘   s   @r1   rn   rn   a  sÎ   ø€ € € € € ðlð lðZ ðð ñ „[ðð&ð ð ð*1ð 1ð 1ð 1ð 1ð 1ð;ð ;ð ;ð ;ð ;ðð ð ðð ð ð,ð ,ð ,ð
5ð 5ð 5ð 5ð 5ð 5ð 5ð 5r?   rn   c                   óf   — e Zd ZdZd„ Zdd„Zd„ Zd„ Zd„ Zd„ Z	e
d	„ ¦   «         Zd
„ Zd„ Zd„ Zd„ ZdS )r˜   at  
    The ``digamma`` function is the first derivative of the ``loggamma``
    function

    .. math::
        \psi(x) := \frac{\mathrm{d}}{\mathrm{d} z} \log\Gamma(z)
                = \frac{\Gamma'(z)}{\Gamma(z) }.

    In this case, ``digamma(z) = polygamma(0, z)``.

    Examples
    ========

    >>> from sympy import digamma
    >>> digamma(0)
    zoo
    >>> from sympy import Symbol
    >>> z = Symbol('z')
    >>> digamma(z)
    polygamma(0, z)

    To retain ``digamma`` as it is:

    >>> digamma(0, evaluate=False)
    digamma(0)
    >>> digamma(z, evaluate=False)
    digamma(z)

    See Also
    ========

    gamma: Gamma function.
    lowergamma: Lower incomplete gamma function.
    uppergamma: Upper incomplete gamma function.
    polygamma: Polygamma function.
    loggamma: Log Gamma function.
    trigamma: Trigamma function.
    sympy.functions.special.beta_functions.beta: Euler Beta function.

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Digamma_function
    .. [2] https://mathworld.wolfram.com/DigammaFunction.html
    .. [3] https://functions.wolfram.com/GammaBetaErf/PolyGamma2/

    c                 ó‚   — | j         d         }t          |¦  «        }t          d|¦  «                             |¬¦  «        S )Nr   r/   ©r9   r+   r:   Úevalf©r<   r·   ro   Únprecs       r1   r¸   zdigamma._eval_evalfT  ó9   € ØŒI�aŒLˆÝ˜DÑ!Ô!ˆÝ˜˜A‰Œ×$Ò$ uÐ$Ñ-Ô-Ð-r?   r5   c                 ó`   — | j         d         }t          d|¦  «                             ¦   «         S r_   ©r9   r:   r>   ©r<   r=   ro   s      r1   r>   zdigamma.fdiffY  ó'   € ØŒI�aŒLˆÝ˜˜A‰Œ×$Ò$Ñ&Ô&Ð&r?   c                 óF   — | j         d         }t          d|¦  «        j        S r_   ©r9   r:   r  ré   s     r1   rh   zdigamma._eval_is_real]  ó   € ØŒI�aŒLˆÝ˜˜A‰ŒÔ&Ð&r?   c                 óF   — | j         d         }t          d|¦  «        j        S r_   ©r9   r:   rE   ré   s     r1   rk   zdigamma._eval_is_positivea  ó   € ØŒI�aŒLˆÝ˜˜A‰ŒÔ*Ð*r?   c                 óF   — | j         d         }t          d|¦  «        j        S r_   ©r9   r:   rú   ré   s     r1   r  zdigamma._eval_is_negativee  rT  r?   c                 ó†   — |                       t          ¦  «        }t          j        g|z   }|                     ||||¦  «        S rm   )rÖ   r:   r   r¦   rÊ   ©r<   r0   rË   rT   r~   Úas_polygammas         r1   rÊ   zdigamma._eval_aseriesi  s;   € Ø—|’|¥IÑ.Ô.ˆÝ”�	˜EÑ!ˆØ×)Ò)¨!¨U°A°tÑ<Ô<Ð<r?   c                 ó"   — t          d|¦  «        S r_   ©r:   ©rN   ro   s     r1   rR   zdigamma.evaln  ó   € å˜˜A‰ŒÐr?   c                 ód   — | j         d         }t          d|¦  «                             d¬¦  «        S )Nr   T©r8   ©r9   r:   Úexpand©r<   r[   ro   s      r1   rV   zdigamma._eval_expand_funcr  ó,   € ØŒI�aŒLˆÝ˜˜A‰Œ×%Ò%¨4Ð%Ñ0Ô0Ð0r?   c                 ó@   — t          |dz
  ¦  «        t          j        z
  S rt   )r$   r   rô   rv   s      r1   r  z!digamma._eval_rewrite_as_harmonicv  s   € Ý˜˜A™‰Œ¥¤Ñ-Ð-r?   c                 ó"   — t          d|¦  «        S r_   r[  rv   s      r1   Ú_eval_rewrite_as_polygammaz"digamma._eval_rewrite_as_polygammay  ó   € Ý˜˜A‰ŒÐr?   c                 ób   — | j         d         }t          d|¦  «                             |¦  «        S r_   ©r9   r:   r„   ©r<   rT   r~   r   ro   s        r1   r‡   zdigamma._eval_as_leading_term|  ó)   € ØŒI�aŒLˆÝ˜˜A‰Œ×.Ò.¨qÑ1Ô1Ð1r?   Nrˆ   )r‰   rŠ   r‹   rŒ   r¸   r>   rh   rk   r  rÊ   r�   rR   rV   r  rf  r‡   rž   r?   r1   r˜   r˜   $  sÕ   € € € € € ð.ð .ð^.ð .ð .ð
'ð 'ð 'ð 'ð'ð 'ð 'ð+ð +ð +ð+ð +ð +ð=ð =ð =ð
 ðð ñ „[ðð1ð 1ð 1ð.ð .ð .ðð ð ð2ð 2ð 2ð 2ð 2r?   r˜   c                   ól   — e Zd ZdZd„ Zdd„Zd„ Zd„ Zd„ Zd„ Z	e
d	„ ¦   «         Zd
„ Zd„ Zd„ Zd„ Zd„ ZdS )Útrigammaa^  
    The ``trigamma`` function is the second derivative of the ``loggamma``
    function

    .. math::
        \psi^{(1)}(z) := \frac{\mathrm{d}^{2}}{\mathrm{d} z^{2}} \log\Gamma(z).

    In this case, ``trigamma(z) = polygamma(1, z)``.

    Examples
    ========

    >>> from sympy import trigamma
    >>> trigamma(0)
    zoo
    >>> from sympy import Symbol
    >>> z = Symbol('z')
    >>> trigamma(z)
    polygamma(1, z)

    To retain ``trigamma`` as it is:

    >>> trigamma(0, evaluate=False)
    trigamma(0)
    >>> trigamma(z, evaluate=False)
    trigamma(z)


    See Also
    ========

    gamma: Gamma function.
    lowergamma: Lower incomplete gamma function.
    uppergamma: Upper incomplete gamma function.
    polygamma: Polygamma function.
    loggamma: Log Gamma function.
    digamma: Digamma function.
    sympy.functions.special.beta_functions.beta: Euler Beta function.

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Trigamma_function
    .. [2] https://mathworld.wolfram.com/TrigammaFunction.html
    .. [3] https://functions.wolfram.com/GammaBetaErf/PolyGamma2/

    c                 ó‚   — | j         d         }t          |¦  «        }t          d|¦  «                             |¬¦  «        S )Nr   r5   r/   rF  rH  s       r1   r¸   ztrigamma._eval_evalf²  rJ  r?   r5   c                 ó`   — | j         d         }t          d|¦  «                             ¦   «         S ry   rL  rM  s      r1   r>   ztrigamma.fdiff·  rN  r?   c                 óF   — | j         d         }t          d|¦  «        j        S ry   rP  ré   s     r1   rh   ztrigamma._eval_is_real»  rQ  r?   c                 óF   — | j         d         }t          d|¦  «        j        S ry   rS  ré   s     r1   rk   ztrigamma._eval_is_positive¿  rT  r?   c                 óF   — | j         d         }t          d|¦  «        j        S ry   rV  ré   s     r1   r  ztrigamma._eval_is_negativeÃ  rT  r?   c                 ó†   — |                       t          ¦  «        }t          j        g|z   }|                     ||||¦  «        S rm   )rÖ   r:   r   rK   rÊ   rX  s         r1   rÊ   ztrigamma._eval_aseriesÇ  s;   € Ø—|’|¥IÑ.Ô.ˆÝ”�˜5Ñ ˆØ×)Ò)¨!¨U°A°tÑ<Ô<Ð<r?   c                 ó"   — t          d|¦  «        S rt   r[  r\  s     r1   rR   ztrigamma.evalÌ  r]  r?   c                 ód   — | j         d         }t          d|¦  «                             d¬¦  «        S )Nr   r5   Tr_  r`  rb  s      r1   rV   ztrigamma._eval_expand_funcÐ  rc  r?   c                 ó"   — t          d|¦  «        S )NrA   r   rv   s      r1   r  ztrigamma._eval_rewrite_as_zetaÔ  s   € Ý�A�q‰zŒzÐr?   c                 ó"   — t          d|¦  «        S rt   r[  rv   s      r1   rf  z#trigamma._eval_rewrite_as_polygamma×  rg  r?   c                 óF   — t          |dz
  d¦  «         t          dz  dz  z   S )Nr5   rA   rñ   )r$   r   rv   s      r1   r  z"trigamma._eval_rewrite_as_harmonicÚ  s&   € Ý˜˜Q™ Ñ"Ô"Ð"¥R¨¡U¨Q¡YÑ.Ð.r?   c                 ób   — | j         d         }t          d|¦  «                             |¦  «        S ry   ri  rj  s        r1   r‡   ztrigamma._eval_as_leading_termÝ  rk  r?   Nrˆ   )r‰   rŠ   r‹   rŒ   r¸   r>   rh   rk   r  rÊ   r�   rR   rV   r  rf  r  r‡   rž   r?   r1   rm  rm  ‚  sä   € € € € € ð.ð .ð^.ð .ð .ð
'ð 'ð 'ð 'ð'ð 'ð 'ð+ð +ð +ð+ð +ð +ð=ð =ð =ð
 ðð ñ „[ðð1ð 1ð 1ðð ð ðð ð ð/ð /ð /ð2ð 2ð 2ð 2ð 2r?   rm  c                   ó@   — e Zd ZdZdZd	d„Zed„ ¦   «         Zd„ Zd„ Z	dS )
Ú
multigammaaÓ  
    The multivariate gamma function is a generalization of the gamma function

    .. math::
        \Gamma_p(z) = \pi^{p(p-1)/4}\prod_{k=1}^p \Gamma[z + (1 - k)/2].

    In a special case, ``multigamma(x, 1) = gamma(x)``.

    Examples
    ========

    >>> from sympy import S, multigamma
    >>> from sympy import Symbol
    >>> x = Symbol('x')
    >>> p = Symbol('p', positive=True, integer=True)

    >>> multigamma(x, p)
    pi**(p*(p - 1)/4)*Product(gamma(-_k/2 + x + 1/2), (_k, 1, p))

    Several special values are known:

    >>> multigamma(1, 1)
    1
    >>> multigamma(4, 1)
    6
    >>> multigamma(S(3)/2, 1)
    sqrt(pi)/2

    Writing ``multigamma`` in terms of the ``gamma`` function:

    >>> multigamma(x, 1)
    gamma(x)

    >>> multigamma(x, 2)
    sqrt(pi)*gamma(x)*gamma(x - 1/2)

    >>> multigamma(x, 3)
    pi**(3/2)*gamma(x)*gamma(x - 1)*gamma(x - 1/2)

    Parameters
    ==========

    p : order or dimension of the multivariate gamma function

    See Also
    ========

    gamma, lowergamma, uppergamma, polygamma, loggamma, digamma, trigamma,
    sympy.functions.special.beta_functions.beta

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Multivariate_gamma_function

    TrA   c           	      óæ   — ddl m} |dk    rV| j        \  }}t          d¦  «        }|                      ||¦  «         |t          d|d|z
  dz  z   ¦  «        |d|f¦  «        z  S t          | |¦  «        ‚)Nr   r8  rA   rP   r5   )r:  r9  r9   r   r8   r:   r
   )r<   r=   r9  rT   rJ   rP   s         r1   r>   zmultigamma.fdiff"  s‚   € Ø1Ð1Ð1Ð1Ð1Ð1Ø�qŠ=ˆ=Ø”9‰DˆAˆqÝ�c‘
”
ˆAØ—9’9˜Q ‘?”? 3 3¥y°°A¸¸Q¹À¹	±MÑ'BÔ'BÀQÈÈ1ÀIÑ#NÔ#NÑNÐNå$ T¨8Ñ4Ô4Ð4r?   c                 ó  — ddl m} |j        du s	|j        du rt	          d¦  «        ‚t          d¦  «        }t          ||dz
  z  dz  z   |t          |d|z
  dz  z   ¦  «        |d|f¦  «        z                       ¦   «         S )	Nr   )ÚProductFz+Order parameter p must be positive integer.rP   r5   é   rA   )	Úsympy.concrete.productsr~  rE   re   r.   r   r   r4   Údoit)rN   rT   rJ   r~  rP   s        r1   rR   zmultigamma.eval+  s›   € à3Ð3Ð3Ð3Ð3Ð3ØŒ=˜EÐ!Ð! Q¤\°UÐ%:Ð%:ÝÐJÑKÔKÐKÝ�#‰JŒJˆÝ�Q˜˜A™‘Y˜q‘[Ñ! ' '­%°°Q¸±U¸A±I±Ñ*>Ô*>Ø+,¨a°¨)ñ#5ô #5ñ 5ß6:²d±f´fð	=r?   c                 óf   — | j         \  }}|                      |                     ¦   «         |¦  «        S rm   )r9   r8   r`   )r<   rT   rJ   s      r1   rb   zmultigamma._eval_conjugate4  s)   € ØŒy‰ˆˆ1Ø�yŠy˜Ÿš™œ¨Ñ*Ô*Ð*r?   c                 ó¤   — | j         \  }}d|z  }|j        r||dz
  k    du rdS t          |¦  «        r||dz
  k    rdS ||dz
  k    s|j        rdS d S )NrA   r5   TF)r9   re   r2   rf   )r<   rT   rJ   Úys       r1   rh   zmultigamma._eval_is_real8  su   € ØŒy‰ˆˆ1Øˆa‰CˆØŒ<ð 	˜Q 1 q¡5š\¨dÐ2Ð2Ø�5Ý�1‰:Œ:ð 	˜1  Q¡š<˜<Ø�5Ø��A‘Š;ˆ;˜!œ/ˆ;Ø�4ð ˆ;r?   NrÛ   )
r‰   rŠ   r‹   rŒ   r�   r>   r�   rR   rb   rh   rž   r?   r1   r{  r{  ç  ss   € € € € € ð7ð 7ðp €Jð5ð 5ð 5ð 5ð ð=ð =ñ „[ð=ð+ð +ð +ðð ð ð ð r?   r{  N)CÚmathr   Ú
sympy.corer   r   r   r   Úsympy.core.exprr   Úsympy.core.functionr	   r
   r   Úsympy.core.logicr   r   Úsympy.core.numbersr   r   r   r   Úsympy.core.powerr   Ú&sympy.functions.special.zeta_functionsr   rÕ   r   r   r   Ú$sympy.functions.elementary.complexesr   r   Ú&sympy.functions.elementary.exponentialr   r   Ú#sympy.functions.elementary.integersr   r   Ú(sympy.functions.elementary.miscellaneousr   Ú(sympy.functions.elementary.trigonometricr    r!   r"   Ú%sympy.functions.combinatorial.numbersr#   r$   Ú(sympy.functions.combinatorial.factorialsr%   r&   r'   Úsympy.utilities.miscr(   Úmpmathr)   r*   Úmpmath.libmp.libmpfr+   r2   r4   r“   r™   r:   rn   r˜   rm  r{  rž   r?   r1   ú<module>r—     s…  ðØ Ð Ð Ð Ð Ð à 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø  Ð  Ð  Ð  Ð  Ð  Ø NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NØ 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø  Ð  Ð  Ð  Ð  Ð  Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AØ ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EØ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SØ 'Ð 'Ð 'Ð 'Ð 'Ð 'à Ð Ð Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +ðð ð ðuð uð uð uð uˆOñ uô uð uðxmð mð mð mð m�ñ mô mð mð`_%ð _%ð _%ð _%ð _%�ñ _%ô _%ð _%ðLj,ð j,ð j,ð j,ð j,�ñ j,ô j,ð j,ðZ	@5ð @5ð @5ð @5ð @5ˆñ @5ô @5ð @5ðFZ2ð Z2ð Z2ð Z2ð Z2ˆoñ Z2ô Z2ð Z2ð|]2ð ]2ð ]2ð ]2ð ]2ˆñ ]2ô ]2ð ]2ðJYð Yð Yð Yð Y�ñ Yô Yð Yð Yð Yr?   