
    wg                     T    d Z ddlmZ ddlmZ ddlmZ ddlmZ  ed      d        Z	y)	zZ
This module implements the Residue function and related tools for working
with residues.
    )Mul)S)sympify)timethisresiduec                 X   ddl m} ddlm} t	        |       } |dk7  r| j                  |||z         } dD ];  }| j                  ||      }|j                  |      r|j                         dk\  s; n  |j                         |      }|j                  r|j                  }n|g}t        j                  }|D ]p  }	|	j                  |      \  }
}t        | }|t        j                   |fv s0|j"                  r|j$                  j&                  st)        d|z        |d|z  k(  sl||
z  }r |S )a  
    Finds the residue of ``expr`` at the point x=x0.

    The residue is defined as the coefficient of ``1/(x-x0)`` in the power series
    expansion about ``x=x0``.

    Examples
    ========

    >>> from sympy import Symbol, residue, sin
    >>> x = Symbol("x")
    >>> residue(1/x, x, 0)
    1
    >>> residue(1/x**2, x, 0)
    0
    >>> residue(2/sin(x), x, 0)
    2

    This function is essential for the Residue Theorem [1].

    References
    ==========

    .. [1] https://en.wikipedia.org/wiki/Residue_theorem
    r   )Order)collect)r                      )nzterm of unexpected form: %sr   )sympy.series.orderr	   sympy.simplify.radsimpr
   r   subsnserieshasgetnremoveOis_Addargsr   Zeroas_coeff_mulr   Oneis_Powexp
is_IntegerNotImplementedError)exprxx0r	   r
   r   sr   resargcms               Z/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/sympy/series/residues.pyr   r      s   N ).4=D	QwyyAF#$ LLaL uuU|qvvx1} 			QAxxvvs
&&C "1GaeeQZAHH1A1A%&Ca&GHH!81HC J    N)
__doc__sympy.core.mulr   sympy.core.singletonr   sympy.core.sympifyr   sympy.utilities.timeutilsr   r    r+   r*   <module>r2      s1   
  " & . 
)< <r+   