
    Ed                     b    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	dS )	zZ
This module implements the Residue function and related tools for working
with residues.
    )Mul)S)sympify)timethisresiduec                 Z   ddl m} ddlm} t	          |           } |dk    r|                     |||z             } dD ]H}|                     ||          }|                    |          r|                                dk    r nI ||	                                |          }|j
        r|j        }n|g}t          j        }|D ]f}	|	                    |          \  }
}t          | }|t          j        |fv s%|j        r|j        j        st)          d|z            |d|z  k    r||
z  }g|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               5lib/python3.11/site-packages/sympy/series/residues.pyr   r      sp   N )(((((......4==D	Qw $yyAF##$  LLaL  uuU|| 	qvvxx1} 	E			QAx vs
&C  ""1GaeQZ 	IAH 	I1A 	I%&Ca&GHHH!8 	1HCJ    N)
__doc__sympy.core.mulr   sympy.core.singletonr   sympy.core.sympifyr   sympy.utilities.timeutilsr   r    r+   r*   <module>r2      s    
       " " " " " " & & & & & & . . . . . . 
)< < < < <r+   