§
    OŠtjRh  ã                  ó¦  — U d dl mZ d dlmZ d dlmZ d dlmZ d dl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 d d
l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 d dl m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z' d dl m(Z(m)Z)m*Z*m+Z+m,Z,m-Z- d dl m.Z.m/Z/m0Z0m1Z1m2Z2 d dl m3Z3m4Z4m5Z5m6Z6 d dl m7Z7m8Z8m9Z9m:Z: d dl;m<Z<m=Z=m>Z>m?Z?m@Z@ d dlAmBZB d dlCmDZDmEZE d dlFmGZG d dlHmIZImJZJ d dlKmLZL d dlMmNZNmOZO d dlPmQZQ d dlRmSZSmTZTmUZUmVZVmWZWmXZX d dlYmZZZ d dl[m\Z\ d dl]m^Z^ d d l_m`Z` d d!lambZb d d"lcmdZd d#„ Zei Zfd$egd%<   d&„ Zh	 	 	 d0d*„Zi G d+„ d,¦  «        Zjd(ak G d-„ d.¦  «        Zl	 	 	 d0d/„Zmd(S )1é    )Úannotations)Údefaultdict)Úreduce©Úpermutations)ÚAdd)ÚBasic)ÚMul)ÚWildÚDummyÚSymbol)Úsympify)ÚRationalÚpiÚI)ÚEqÚNe)ÚS©Úordered)Úiterfreeargs)ÚexpÚsinÚcosÚtanÚcotÚasinÚatan)ÚlogÚsinhÚcoshÚtanhÚcothÚasinh)ÚsqrtÚerfÚerfiÚliÚEi)ÚbesseljÚbesselyÚbesseliÚbesselk)Úhankel1Úhankel2ÚjnÚyn)ÚAbsÚreÚimÚsignÚarg)ÚLambertW)ÚfloorÚceiling)Ú	Piecewise)Ú	HeavisideÚ
DiracDelta)Úcollect)ÚAndÚOr)Úuniq)ÚquoÚgcdÚlcmÚfactor_listÚcancelÚPolynomialError)Úitermonomials)Úroot_factors)ÚPolyRing)Úsolve_lin_sys)Úconstruct_domain)Ú	integratec                óf  — t          ¦   «         }|                      |¦  «        �r| j        r| j        r|                     | ¦  «         nè| j        s| j        r3| j        D ]}|t          ||¦  «        z  }Œ|                     | ¦  «         n§| j	        rƒ|t          | j
        |¦  «        z  }| j        j        s^| j        j        r6|                     | j
        t          d| j        j        ¦  «        z  ¦  «         n:|t          | j        |¦  «        | hz  z  }n| j        D ]}|t          ||¦  «        z  }Œ|S )aò  
    Returns a set of all functional components of the given expression
    which includes symbols, function applications and compositions and
    non-integer powers. Fractional powers are collected with
    minimal, positive exponents.

    Examples
    ========

    >>> from sympy import cos, sin
    >>> from sympy.abc import x
    >>> from sympy.integrals.heurisch import components

    >>> components(sin(x)*cos(x)**2, x)
    {x, sin(x), cos(x)}

    See Also
    ========

    heurisch
    é   )ÚsetÚhas_freeÚ	is_symbolÚis_commutativeÚaddÚis_FunctionÚis_DerivativeÚargsÚ
componentsÚis_PowÚbaser   Ú
is_IntegerÚis_Rationalr   Úq)ÚfÚxÚresultÚgs       úV/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/integrals/heurisch.pyrW   rW   -   s=  € õ, ‰UŒU€Fà‡z‚z�!�}„}ñ +ØŒ;ð 	+˜1Ô+ð 	+Ø�JŠJ�q‰MŒMˆMˆMØŒ]ð 	+˜aœoð 	+Ø”Vð +ð +�Ø�* Q¨Ñ*Ô*Ñ*��à�JŠJ�q‰MŒMˆMˆMØŒXð 
	+Ø•j ¤¨Ñ+Ô+Ñ+ˆFà”5Ô#ð 9Ø”5Ô$ð 9Ø—J’J˜qœv¥x°°1´5´7Ñ';Ô';Ñ;Ñ<Ô<Ð<Ð<à�j¨¬°Ñ2Ô2°a°SÑ8Ñ8�Føà”Vð +ð +�Ø�* Q¨Ñ*Ô*Ñ*��à€Mó    zdict[str, list[Dummy]]Ú_symbols_cachec           	     ó   — 	 t           |          }n# t          $ r g }|t           | <   Y nw xY wt          |¦  «        |k     rG|                     t	          d| t          |¦  «        fz  ¦  «        ¦  «         t          |¦  «        |k     °G|d|…         S )z*get vector of symbols local to this modulez%s%iN)rc   ÚKeyErrorÚlenÚappendr   )ÚnameÚnÚlsymss      ra   Ú_symbolsrk   `   sŸ   € ð%Ý˜tÔ$ˆˆøÝð %ð %ð %ØˆØ$��tÑÐÐð%øøøõ ˆe‰*Œ*�qŠ.ˆ.Ø�Š•e˜F d­C°©J¬JÐ%7Ñ7Ñ8Ô8Ñ:Ô:Ð:õ ˆe‰*Œ*�qŠ.ˆ.ð ��!�Œ9Ðs   ‚ �)¨)FNé   c	                ó  ‡— ddl m}	m}
 t          | ¦  «        } |                      |¦  «        s| |z  S t          | ||||||||¦	  «	        }t          |t          ¦  «        s|S g }t           |
|¦  «        ¦  «        D ]&}	 | |	|gd|f¬¦  «        z  }Œ# t          $ r Y Œ#w xY w|s|S t          t          |¦  «        ¦  «        }g Š |
| ¦  «        D ]&}	 ‰ |	|gd|f¬¦  «        z  ŠŒ# t          $ r Y Œ#w xY wˆfd„|D ¦   «         }|s|S t          |¦  «        dk    rJg }|D ]3}|                     d„ |                     ¦   «         D ¦   «         ¦  «         Œ4 |	|d|f¬¦  «        |z   }g }|D ]²}t          |                      |¦  «        ||||||||¦	  «	        }t!          d„ |                     ¦   «         D ¦   «         Ž }t#          d	„ |                     ¦   «         D ¦   «         Ž }|€#t%          |                      |¦  «        |¦  «        }|                     ||f¦  «         Œ³t          |¦  «        dk    r*t          | ||||||||¦	  «	        |f|d         d         dfg}n,|                     t          | ||||||||¦	  «	        df¦  «         t)          |Ž S )
a�  
    A wrapper around the heurisch integration algorithm.

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

    This method takes the result from heurisch and checks for poles in the
    denominator. For each of these poles, the integral is reevaluated, and
    the final integration result is given in terms of a Piecewise.

    Examples
    ========

    >>> from sympy import cos, symbols
    >>> from sympy.integrals.heurisch import heurisch, heurisch_wrapper
    >>> n, x = symbols('n x')
    >>> heurisch(cos(n*x), x)
    sin(n*x)/n
    >>> heurisch_wrapper(cos(n*x), x)
    Piecewise((sin(n*x)/n, Ne(n, 0)), (x, True))

    See Also
    ========

    heurisch
    r   )ÚsolveÚdenomsT)ÚdictÚexcludec                ó   •— g | ]}|‰v¯|‘Œ	S © rs   )Ú.0ÚsÚslns0s     €ra   ú
<listcomp>z$heurisch_wrapper.<locals>.<listcomp>¬   s   ø€ Ð.Ð.Ð.�!˜q¨˜~˜~ˆA˜~˜~˜~rb   rN   c                ó4   — g | ]\  }}t          ||¦  «        ‘ŒS rs   ©r   ©rt   ÚkeyÚvalues      ra   rw   z$heurisch_wrapper.<locals>.<listcomp>²   s$   € ÐJÐJÐJ©:¨3°�˜3 ™œÐJÐJÐJrb   c                ó4   — g | ]\  }}t          ||¦  «        ‘ŒS rs   ry   rz   s      ra   rw   z$heurisch_wrapper.<locals>.<listcomp>º   s$   € ÐGÐGÐG©
¨¨U•R˜˜U‘^”^ÐGÐGÐGrb   c                ó4   — g | ]\  }}t          ||¦  «        ‘ŒS rs   )r   rz   s      ra   rw   z$heurisch_wrapper.<locals>.<listcomp>»   s$   € ÐIÐIÐI©*¨#¨u•r˜#˜u‘~”~ÐIÐIÐIrb   )Úsympy.solvers.solversrn   ro   r   rP   ÚheurischÚ
isinstancer	   r   ÚNotImplementedErrorÚlistr@   rf   ÚextendÚitemsÚsubsr>   r?   rL   rg   r:   )r]   r^   ÚrewriteÚhintsÚmappingsÚretriesÚdegree_offsetÚunnecessary_permutationsÚ_try_heurischrn   ro   ÚresÚslnsÚdÚeqsÚsub_dictÚpairsÚexprÚcondÚgenericrv   s                       @ra   Úheurisch_wrapperr—   n   sm  ø€ ð: 4Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ý�‰
Œ
€AØ�:Š:�a‰=Œ=ð Ø�‰sˆ
å
�1�a˜ %¨°7¸MØ+¨]ñ<ô <€Cå�c�5Ñ!Ô!ð Øˆ
ð €DÝ�V�V˜C‘[”[Ñ!Ô!ð ð ˆð	Ø�E�E˜1˜# D°1°$Ð7Ñ7Ô7Ñ7ˆDˆDøÝ"ð 	ð 	ð 	ØˆDð	øøøàð Øˆ
Ý•�T‘
”
ÑÔ€Dà€EØˆV�A‰YŒYð ð ˆð	Ø�U�U˜A˜3 T°A°4Ð8Ñ8Ô8Ñ8ˆEˆEøÝ"ð 	ð 	ð 	ØˆDð	øøøà.Ð.Ð.Ð.�tÐ.Ñ.Ô.€DØð Øˆ
Ý
ˆ4�y„y�1‚}€}ØˆØð 	Lð 	LˆHØ�JŠJÐJÐJ¸¿ºÑ9IÔ9IÐJÑJÔJÑKÔKÐKÐKØˆu�S˜t¨a¨TÐ2Ñ2Ô2°TÑ9ˆà€EØð #ð #ˆÝ˜Ÿš˜xÑ(Ô(¨!¨W°e¸XÀwØ%Ð'?Ø%ñ'ô 'ˆõ ÐGÐG°h·n²nÑ6FÔ6FÐGÑGÔGÐHˆÝÐIÐI¸¿ºÑ8HÔ8HÐIÑIÔIÐJˆØˆ<Ý˜QŸVšV HÑ-Ô-¨aÑ0Ô0ˆDØ�Š�d˜D�\Ñ"Ô"Ð"Ð"õ ˆ5�z„z�Q‚€Ý˜1˜a ¨%°¸7Ø+Ð-EØ+ñ-ô -ð &ð'ð ˜”(˜1”+˜tÐ$ð	&ˆˆð 	�Š•h˜q ! W¨e°X¸wØ+Ð-EØ+ñ-ô -ð #ð$ñ 	%ô 	%ð 	%õ �eÐÐs$   Á>BÂ
BÂBÃC&Ã&
C3Ã2C3c                  ó*   — e Zd ZdZd„ Zd„ Zd„ Zd„ ZdS )ÚBesselTablez~
    Derivatives of Bessel functions of orders n and n-1
    in terms of each other.

    See the docstring of DiffCache.
    c                óŒ   — i | _         t          d¦  «        | _        t          d¦  «        | _        |                      ¦   «          d S )Nri   Úz)Útabler   ri   r›   Ú_create_table)Úselfs    ra   Ú__init__zBesselTable.__init__Ö   s;   € ØˆŒ
Ý�s‘”ˆŒÝ�s‘”ˆŒØ×ÒÑÔÐÐÐrb   c                ó   — | j         | j        | j        }}}t          t          t
          t          fD ]L} ||dz
  |¦  «        | |||¦  «        z  |z  z
  |dz
   ||dz
  |¦  «        z  |z   |||¦  «        z
  f||<   ŒMt          } ||dz
  |¦  «        | |||¦  «        z  |z  z
  |dz
   ||dz
  |¦  «        z  |z   |||¦  «        z   f||<   t          } ||dz
  |¦  «         | |||¦  «        z  |z  z
  |dz
   ||dz
  |¦  «        z  |z   |||¦  «        z
  f||<   t          t          fD ]O} ||dz
  |¦  «        |dz    |||¦  «        z  |z  z
  |dz
   ||dz
  |¦  «        z  |z   |||¦  «        z
  f||<   ŒPd S )NrN   )rœ   ri   r›   r*   r+   r.   r/   r,   r-   r0   r1   )Útrœ   ri   r›   r]   s        ra   r�   zBesselTable._create_tableÜ   sâ  € Ø”g˜qœs A¤C�!ˆqˆÝ�7¥G­WÐ5ð 	5ð 	5ˆAØ˜˜!˜A™#˜q™	œ	 A a a¨¨1¡g¤g¡I¨a¡KÑ/Ø˜1™˜a˜a  !¡ Q™iœi™¨Ñ)¨A¨A¨a°©G¬GÑ3ð5ˆE�!‰HˆHõ ˆØ�A�a˜‘c˜1‘I”I  ! ! A q¡'¤'¡	¨!¡Ñ+Ø�q‘S˜!˜!˜A˜a™C ™)œ)‘O AÑ%¨¨¨!¨Q©¬Ñ/ð1ˆˆa‰åˆØ�Q�q˜‘s˜A‘Y”Y�J  1 1 Q¨¡7¤7¡¨1¡Ñ,Ø�q‘S˜!˜!˜A˜a™C ™)œ)‘O AÑ%¨¨¨!¨Q©¬Ñ/ð1ˆˆa‰õ •b�ð 	5ð 	5ˆAØ˜˜!˜A™#˜q™	œ	 Q q¡S¨!¨!¨A¨q©'¬'¡M°!¡OÑ3Ø˜1™˜a˜a  !¡ Q™iœi™¨Ñ)¨A¨A¨a°©G¬GÑ3ð5ˆE�!‰HˆHð	5ð 	5rb   c                ó°   — || j         v rL| j         |         \  }}| j        |f| j        |fg}|                     |¦  «        |                     |¦  «        fS d S ©N)rœ   ri   r›   r†   )r¡   r]   ri   r›   Údiff0Údiff1Úrepls          ra   ÚdiffszBesselTable.diffsí   s\   € Ø�”ˆ<ˆ<Øœ7 1œ:‰LˆE�5Ø”S˜!�H˜qœs A˜hÐ'ˆDØ—J’J˜tÑ$Ô$ e§j¢j°Ñ&6Ô&6Ð7Ð7ð ˆ<rb   c                ó   — || j         v S r£   )rœ   )r¡   r]   s     ra   ÚhaszBesselTable.hasó   s   € Ø�A”Gˆ|Ðrb   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rŸ   r�   r§   r©   rs   rb   ra   r™   r™   Î   sZ   € € € € € ðð ðð ð ð5ð 5ð 5ð"8ð 8ð 8ðð ð ð ð rb   r™   c                  ó   — e Zd ZdZd„ Zd„ ZdS )Ú	DiffCacheau  
    Store for derivatives of expressions.

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

    The standard form of the derivative of a Bessel function of order n
    contains two Bessel functions of orders n-1 and n+1, respectively.
    Such forms cannot be used in parallel Risch algorithm, because
    there is a linear recurrence relation between the three functions
    while the algorithm expects that functions and derivatives are
    represented in terms of algebraically independent transcendentals.

    The solution is to take two of the functions, e.g., those of orders
    n and n-1, and to express the derivatives in terms of the pair.
    To guarantee that the proper form is used the two derivatives are
    cached as soon as one is encountered.

    Derivatives of other functions are also cached at no extra cost.
    All derivatives are with respect to the same variable `x`.
    c                óP   — i | _         || _        t          st          ¦   «         ad S d S r£   )Úcacher^   Ú_bessel_tabler™   )rž   r^   s     ra   rŸ   zDiffCache.__init__  s1   € ØˆŒ
ØˆŒõ ð 	*Ý'™MœMˆMˆMˆMð	*ð 	*rb   c                ó²  — | j         }||v rnÄt          |d¦  «        rt                               |j        ¦  «        s+t          |                     | j        ¦  «        ¦  «        ||<   nj|j        \  }}t           	                    |j        ||¦  «        \  }}|  
                    |¦  «        }||z  ||<   ||z  ||                     |dz
  |¦  «        <   ||         S )NÚfuncrN   )r±   Úhasattrr²   r©   r´   rE   Údiffr^   rV   r§   Úget_diff)rž   r]   r±   ri   r›   Úd0Úd1Údzs           ra   r·   zDiffCache.get_diff  sË   € Ø”
ˆà�ˆ:ˆ:ØÝ˜!˜VÑ$Ô$ð 	*Ý×!Ò! !¤&Ñ)Ô)ð	*å˜aŸfšf T¤V™nœnÑ-Ô-ˆE�!‰HˆHà”6‰DˆAˆqÝ"×(Ò(¨¬°°AÑ6Ô6‰FˆB�Ø—’˜qÑ!Ô!ˆBØ˜"‘uˆE�!‰HØ$& r¡EˆE�!—&’&˜˜1™˜a‘.”.Ñ!à�QŒxˆrb   N)rª   r«   r¬   r­   rŸ   r·   rs   rb   ra   r¯   r¯   ø   s<   € € € € € ðð ð,*ð *ð *ðð ð ð ð rb   r¯   c	                ór  ‡‡0‡1‡2‡3‡4‡5‡6‡7‡8‡9‡:‡;‡<‡=‡>‡?— t          | ¦  «        } |durL|                      t          t          t          t
          t          t          t          t          t          ¦	  «	        rdS |                      ‰¦  «        s| ‰z  S | j        s|                      ‰¦  «        \  }	} nt          j        }	t           t"          t$          ft&          t(          t*          t,          ft.          i}
|r1|
                     ¦   «         D ]\  }}|                      ||¦  «        } Œn%|
                     ¦   «         D ]} | j        |Ž r nŒd}t7          | ‰¦  «        }t9          ‰¦  «        Š7|��4|�st;          d‰g¬¦  «        }t;          d‰g¬¦  «        }t;          d‰g¬¦  «        }t=          |¦  «        D �]×}|j        �rOtA          |tB          ¦  «        rÅ|j"        d          #                    |‰|z  z  ¦  «        }|�œ| $                    ‰tC          ||         ‰||         z  z  ¦  «        ||         ‰||         z  z  d||         z  z  tK          ||         d	z   tM          ||         ‰||         z  z  ¦  «        z  ||         z  ¦  «        z  z
  z  ¦  «         ŒåtA          |tN          ¦  «        �r]|j"        d          #                    |‰d
z  z  ¦  «        }|�||         j(        r9| $                    tS          tU          ||         ¦  «        ‰z  ¦  «        ¦  «         n9| $                    tW          tU          ||          ¦  «        ‰z  ¦  «        ¦  «         |j"        d          #                    |‰d
z  z  |‰z  z   |z   ¦  «        }|��q||         j(        r«| $                    tU          tX          dz  ||          z  ¦  «        tO          ||         ||         d
z  d||         z  z  z
  ¦  «        z  tS          tU          ||         ¦  «        ‰z  ||         d
tU          ||         ¦  «        z  z  z   ¦  «        z  ¦  «         n¹||         j-        r¬| $                    tU          tX          dz  ||          z  ¦  «        tO          ||         ||         d
z  d||         z  z  z
  ¦  «        z  tW          tU          ||          ¦  «        ‰z  ||         d
tU          ||          ¦  «        z  z  z
  ¦  «        z  ¦  «         |j"        d          #                    |tM          ‰¦  «        d
z  z  ¦  «        }|�Þ||         j(        ra| $                    tS          tU          ||         ¦  «        tM          ‰¦  «        z  d	d
tU          ||         ¦  «        z  z  z   ¦  «        ¦  «         ||         j-        rc| $                    tW          tU          ||          ¦  «        tM          ‰¦  «        z  d	d
tU          ||          ¦  «        z  z  z
  ¦  «        ¦  «         �ŒZ|j.        �ru|j'        j/        �rh|j'        j0        d
k    �rW|j1         #                    |‰d
z  z  |z   ¦  «        }|�«||         j(        rž||         j(        rB| $                    te          tU          ||         ||         z  ¦  «        ‰z  ¦  «        ¦  «         nO||         j-        rB| $                    tg          tU          ||          ||         z  ¦  «        ‰z  ¦  «        ¦  «         |j1         #                    |‰d
z  z  |z
  ¦  «        }|��a||         j(        �rS||         j(        r·d	tU          ||         ‰d
z  z  ||         z
  ¦  «        z  }tM          d
tU          ||         ¦  «        z  tU          ||         ‰d
z  z  ||         z
  ¦  «        z  d
||         z  ‰z  z   ¦  «        tU          ||         ¦  «        z  Š0|‰7j4        ‰0<   | $                    ‰0¦  «         �ŒH||         j-        r‚| $                    ||          d
z  tU          ||          ¦  «        z  tk          tU          ||          ¦  «        ‰z  tU          ||         ‰d
z  z  ||         z
  ¦  «        z  ¦  «        z  ¦  «         �ŒÙn|t=          |¦  «        z  }t=          |¦  «        D ](}|t7          ‰7 6                    |¦  «        ‰¦  «        z  }Œ)to          dtq          |¦  «        ¦  «        Š1ts          tu          ts          tw          ty          ˆfd„tw          |‰1¦  «        D ¦   «         ¦  «        Ž ¦  «        d	         ¦  «        ¦  «        Š9d„ ‰9D ¦   «         }|€Ž‰9d         d         ‰k    sJ ‚‰9 =                    d¦  «        g}t}          tr          ¦  «        Š?‰9D ]/}|\  }}‰?t          |¦  «                  @                    |¦  «         Œ0ˆ?fd„‰?D ¦   «         Š9ˆ9fd„} |¦   «         }n|pg }ˆ9fd„Š6|D ]tŠ9ts          ‰9¦  «        Š9‰9|z   Š9ˆ6ˆ7fd„|D ¦   «         }d„ |D ¦   «         }tƒ          ˆ1fd„|D ¦   «         ¦  «        r(  ‰6| ¦  «        jB        ‰1Ž rt‡          ˆ1fd„|¦  «        Š8 n Œu|st‰          | ‰d||¬¦  «        }|�|	|z  S dS ˆ8fd„|D ¦   «         Š:ˆ1ˆ:fd„Š3ˆ1ˆ2ˆ3fd„Š2ˆ1ˆ3ˆ5fd„Š5i }|D ]Ž}|j        r…tA          |t&          ¦  «        rd|d	 ‰6|¦  «        d
z  z   <   Œ3tA          |t.          ¦  «        r#d|d	 ‰6|¦  «        z   <   d|d	 ‰6|¦  «        z
  <   ŒktA          |tŠ          ¦  «        rd| ‰6|¦  «        <   Œ� ‰6| ¦  «        Š0‰0 F                    ¦   «         \  }} ‰5‰8¦  «        }  ‰5|¦  «        }!t=          ts          |!¦  «        | d         gz   ts          |                     ¦   «         ¦  «        z   ¦  «        }"| d         t�          d„ |                     ¦   «         D ¦   «         Ž z  }#ˆ1fd„|#||fD ¦   «         }$d|$v rdS d„ |$D ¦   «         \  }}}|#|!d         z   ‰2|!d	         ¦  «        z   H                    ¦   «         Š<ˆ4fd„Š4 ‰4| ¦  «        |t“          ||¦  «        z   }&}%|%d	k    r:|&d	k    r4t•          ty          t—          ‰1|%|&z   d	z
  |z   ¦  «        ¦  «        ¦  «        }'n0t•          ty          t—          ‰1|%|&z   |z   ¦  «        ¦  «        ¦  «        }'to          d tq          |'¦  «        ¦  «        Š;t™          ˆ;fd!„t›          |'¦  «        D ¦   «         Ž Š=t=          ¦   «         Š>ty          |"¦  «        D ]F}(t�          |(g‰1¢R Ž \  })}*‰> $                    |)¦  «         ‰> O                    d"„ |*D ¦   «         ¦  «         ŒGd(ˆ0ˆ1ˆ3ˆ8ˆ;ˆ<ˆ=ˆ>fd#„	}+tƒ          d$„ ‰1D ¦   «         ¦  «        r‰0jP        t=          ‰1¦  «        z
  },n[‰0 Q                    ¦   «         }-|- R                    t§          tw          ‰1d%„ ‰1D ¦   «         ¦  «        ¦  «        ¦  «        jP        |-jP        z  },|,s |+d&¦  «        }.|.€
 |+¦   «         }.n
 |+¦   «         }.|.�]|. T                    |¦  «        }/t«          |/¦  «         V                    ¦   «         }/|/j        r|/                     ‰¦  «        d	         }/|	|/z  S |dk    r t‰          | ‰||||d	z
  |¬'¦  «        }|�|	|z  S dS ))a-
  
    Compute indefinite integral using heuristic Risch algorithm.

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

    This is a heuristic approach to indefinite integration in finite
    terms using the extended heuristic (parallel) Risch algorithm, based
    on Manuel Bronstein's "Poor Man's Integrator".

    The algorithm supports various classes of functions including
    transcendental elementary or special functions like Airy,
    Bessel, Whittaker and Lambert.

    Note that this algorithm is not a decision procedure. If it isn't
    able to compute the antiderivative for a given function, then this is
    not a proof that such a functions does not exist.  One should use
    recursive Risch algorithm in such case.  It's an open question if
    this algorithm can be made a full decision procedure.

    This is an internal integrator procedure. You should use top level
    'integrate' function in most cases, as this procedure needs some
    preprocessing steps and otherwise may fail.

    Specification
    =============

     heurisch(f, x, rewrite=False, hints=None)

       where
         f : expression
         x : symbol

         rewrite -> force rewrite 'f' in terms of 'tan' and 'tanh'
         hints   -> a list of functions that may appear in anti-derivate

          - hints = None          --> no suggestions at all
          - hints = [ ]           --> try to figure out
          - hints = [f1, ..., fn] --> we know better

    Examples
    ========

    >>> from sympy import tan
    >>> from sympy.integrals.heurisch import heurisch
    >>> from sympy.abc import x, y

    >>> heurisch(y*tan(x), x)
    y*log(tan(x)**2 + 1)/2

    See Manuel Bronstein's "Poor Man's Integrator":

    References
    ==========

    .. [1] https://www-sop.inria.fr/cafe/Manuel.Bronstein/pmint/index.html

    For more information on the implemented algorithm refer to:

    .. [2] K. Geddes, L. Stefanus, On the Risch-Norman Integration
       Method and its Implementation in Maple, Proceedings of
       ISSAC'89, ACM Press, 212-217.

    .. [3] J. H. Davenport, On the Parallel Risch Algorithm (I),
       Proceedings of EUROCAM'82, LNCS 144, Springer, 144-157.

    .. [4] J. H. Davenport, On the Parallel Risch Algorithm (III):
       Use of Tangents, SIGSAM Bulletin 16 (1982), 3-6.

    .. [5] J. H. Davenport, B. M. Trager, On the Parallel Risch
       Algorithm (II), ACM Transactions on Mathematical
       Software 11 (1985), 356-362.

    See Also
    ========

    sympy.integrals.integrals.Integral.doit
    sympy.integrals.integrals.Integral
    sympy.integrals.heurisch.components
    TNÚa)rq   ÚbÚcr   éÿÿÿÿrN   é   é   r^   c                óV   •— g | ]%}|d                                ‰¦  «        d         |f‘Œ&S )r   rN   )Úas_independent)rt   r¼   r^   s     €ra   rw   zheurisch.<locals>.<listcomp>õ  s5   ø€ Ð?Ð?Ð?¨Aˆ!ˆAŒ$×
Ò
˜aÑ
 Ô
  Ô
# QÐ	'Ð?Ð?Ð?rb   c                ó   — i | ]\  }}||“Œ	S rs   rs   ©rt   ÚkÚvs      ra   ú
<dictcomp>zheurisch.<locals>.<dictcomp>ö  s   € Ð,Ð,Ð,™D˜A˜q�1�aÐ,Ð,Ð,rb   c                ó    •— g | ]
}‰|         ‘ŒS rs   rs   )rt   ÚiÚtypess     €ra   rw   zheurisch.<locals>.<listcomp>   s   ø€ Ð+Ð+Ð+ �5˜”8Ð+Ð+Ð+rb   c               3  óL   •K  — t          ‰¦  «        D ]} d„ | D ¦   «         V — Œd S )Nc                ó6   — g | ]}t          |¦  «        D ]}|‘ŒŒS rs   r   )rt   rÊ   Újs      ra   rw   z4heurisch.<locals>._iter_mappings.<locals>.<listcomp>  s+   € Ð8Ð8Ð8˜Q­W°Q©Z¬ZÐ8Ð8¨�qÐ8Ð8Ð8Ð8rb   r   )rÊ   Úmappings    €ra   Ú_iter_mappingsz heurisch.<locals>._iter_mappings  sE   øè è € Ý! 'Ñ*Ô*ð 9ð 9�à8Ð8 !Ð8Ñ8Ô8Ð8Ð8Ð8Ð8ð9ð 9rb   c                ó.   •— |                       ‰¦  «        S r£   )r†   )r”   rÏ   s    €ra   Ú_substitutezheurisch.<locals>._substitute	  s   ø€ Ø�yŠy˜Ñ!Ô!Ð!rb   c                óL   •— g | ] } ‰‰                      |¦  «        ¦  «        ‘Œ!S rs   )r·   )rt   r`   rÒ   Údcaches     €€ra   rw   zheurisch.<locals>.<listcomp>  s/   ø€ ÐBÐBÐB°a�+�+˜fŸošo¨aÑ0Ô0Ñ1Ô1ÐBÐBÐBrb   c                óB   — g | ]}|                      ¦   «         d          ‘ŒS )rN   )Úas_numer_denom)rt   r`   s     ra   rw   zheurisch.<locals>.<listcomp>  s)   € Ð9Ð9Ð9¨Q�1×#Ò#Ñ%Ô% aÔ(Ð9Ð9Ð9rb   c              3  ó,   •K  — | ]} |j         ‰Ž V — Œd S r£   )Úis_polynomial)rt   ÚhÚVs     €ra   ú	<genexpr>zheurisch.<locals>.<genexpr>  s,   øè è € Ð3Ð3 qˆˆqŒ Ð"Ð3Ð3Ð3Ð3Ð3Ð3rb   c                ó    •— t          | |g‰¢R Ž S r£   )rC   )Úpr\   rÚ   s     €ra   ú<lambda>zheurisch.<locals>.<lambda>  s   ø€ ­¨A¨q¨°1¨¨¨€ rb   )r‡   rˆ   rŒ   c                ó4   •— g | ]}t          ‰|z  ¦  «        ‘ŒS rs   )rE   )rt   r`   Údenoms     €ra   rw   zheurisch.<locals>.<listcomp>  s#   ø€ Ð/Ð/Ð/ 1�v�e˜A‘g‰ŒÐ/Ð/Ð/rb   c                óL   •‡ — t          ˆ fd„t          ‰‰¦  «        D ¦   «         Ž S )Nc                óF   •— g | ]\  }}|‰                      |¦  «        z  ‘ŒS rs   )r¶   )rt   r�   rÇ   rÙ   s      €ra   rw   z1heurisch.<locals>._derivation.<locals>.<listcomp>  s+   ø€ Ð@Ð@Ð@©¨¨1�a˜!Ÿ&š& ™)œ)‘mÐ@Ð@Ð@rb   )r   Úzip)rÙ   rÚ   Únumerss   `€€ra   Ú_derivationzheurisch.<locals>._derivation  s,   øø€ ÝÐ@Ð@Ð@Ð@µ°F¸A±´Ð@Ñ@Ô@ÐAÐArb   c                óF  •— ‰D ]œ}|                       |¦  «        sŒ ‰| ¦  «        t          j        urm|                      |¦  «                             ¦   «         \  }} ‰|¦  «        t          ||                     |¦  «        ¦  «                             ¦   «         z  c S Œ�| S r£   )r©   r   ÚZeroÚas_polyÚ	primitiverB   r¶   Úas_expr)rÝ   Úyr¾   r\   rÚ   Ú
_deflationrå   s       €€€ra   rì   zheurisch.<locals>._deflation!  s¢   ø€ Øð 	Að 	AˆAØ—5’5˜‘8”8ð Øàˆ{˜1‰~Œ~¥Q¤VÐ+Ð+Ø—y’y ‘|”|×-Ò-Ñ/Ô/‘��1Ø!�z !‘}”}¥S¨¨A¯FªF°1©I¬IÑ%6Ô%6×%>Ò%>Ñ%@Ô%@Ñ@Ð@Ð@Ð@ð ,ð ˆrb   c           
     óº  •— ‰D �]I}|                       |¦  «        sŒ ‰	|¦  «        t          j        u�r|                      |¦  «                             ¦   «         \  }}|                     ¦   «         }t          | ‰	|¦  «        |¦  «        }t          |t          ||                     |¦  «        |¦  «        |¦  «        } ‰
|¦  «        }|                     |¦  «         	                    ¦   «         dk    r|d         ||d         z  fc S  ‰
t          ||z  ¦  «        ¦  «        }|d         |d         z  |z  |d         |d         z  fc S �ŒKt          j        | fS )Nr   rN   )r©   r   rç   rè   ré   rê   rB   rA   r¶   ÚdegreerE   ÚOne)rÝ   rë   r¾   r\   rÙ   ru   Úc_splitÚq_splitrÚ   rå   Ú	_splitters           €€€ra   rò   zheurisch.<locals>._splitter,  sQ  ø€ Øð 	Hñ 	HˆAØ—5’5˜‘8”8ð Øàˆ{˜1‰~Œ~¥Q¤VÐ+Ñ+Ø—y’y ‘|”|×-Ò-Ñ/Ô/‘��1à—I’I‘K”K�å˜˜;˜; q™>œ>¨1Ñ-Ô-�Ý˜�3˜q !§&¢&¨¡)¤)¨QÑ/Ô/°Ñ3Ô3�à#˜) A™,œ,�à—9’9˜Q‘<”<×&Ò&Ñ(Ô(¨AÒ-Ð-Ø# AœJ¨¨G°A¬J©Ð7Ð7Ð7Ð7à#˜)¥F¨1¨q©5¡M¤MÑ2Ô2�à œ
 7¨1¤:Ñ-¨aÑ/°¸´¸GÀA¼JÑ1FÐGÐGÐGÐGñ ,õ" ”�qˆzÐrb   Fc                ó   — g | ]	\  }}|¯|‘Œ
S rs   rs   rÅ   s      ra   rw   zheurisch.<locals>.<listcomp>Y  s!   € Ð@Ð@Ð@¡$ ! Q¸QÐ@˜AÐ@Ð@Ð@rb   c                ó$   •— g | ]} |j         ‰Ž ‘ŒS rs   )rè   )rt   rÝ   rÚ   s     €ra   rw   zheurisch.<locals>.<listcomp>Z  s!   ø€ Ð3Ð3Ð3 1��”˜A�Ð3Ð3Ð3rb   c                ó6   — g | ]}|                      ¦   «         ‘ŒS rs   )Útotal_degree)rt   rÝ   s     ra   rw   zheurisch.<locals>.<listcomp>`  s"   € Ð4Ð4Ð4 Q�—’Ñ Ô Ð4Ð4Ð4rb   c                óR  •— | j         rp| j        j        rb| j        j        dk    rR| j        j        dk    r| j        j        | j        j        z   dz
  S t          | j        j        | j        j        z   ¦  «        S dS | j        s'| j        r t          ˆfd„| j        D ¦   «         ¦  «        S dS )NrN   r   c              3  ó.   •K  — | ]} ‰|¦  «        V — Œd S r£   rs   )rt   rÙ   Ú	_exponents     €ra   rÛ   z.heurisch.<locals>._exponent.<locals>.<genexpr>n  s+   øè è € Ð4Ð4¨�y�y ‘|”|Ð4Ð4Ð4Ð4Ð4Ð4rb   )	rX   r   r[   r\   rÝ   ÚabsÚis_AtomrV   Úmax)r`   rù   s    €ra   rù   zheurisch.<locals>._exponentd  s¨   ø€ ØŒ8ð 	ØŒuÔ ð  Q¤U¤W°¢\ \Ø”5”7˜Q’;�;Øœ5œ7 Q¤U¤WÑ,¨qÑ0Ð0å˜qœuœw¨¬¬Ñ0Ñ1Ô1Ð1à�qØ”ð 	˜qœvð 	ÝÐ4Ð4Ð4Ð4¨Q¬VÐ4Ñ4Ô4Ñ4Ô4Ð4à�1rb   ÚAc                ó,   •— g | ]\  }}‰|         |z  ‘ŒS rs   rs   )rt   rÊ   ÚmonomialÚpoly_coeffss      €ra   rw   zheurisch.<locals>.<listcomp>{  s6   ø€ ð /ð /ð /ÙˆAˆxð # 1”~ hÑ.ð /ð /ð /rb   c              3  ó    K  — | ]	\  }}|V — Œ
d S r£   rs   )rt   ÚfactÚmuls      ra   rÛ   zheurisch.<locals>.<genexpr>ƒ  s&   è è € Ð8Ð8¡9 4¨˜$Ð8Ð8Ð8Ð8Ð8Ð8rb   c                óô	  •‡‡‡— t          ¦   «         }t          ¦   «         }| dk    rt          ‰%¦  «        }n„t          ‰¦  «        }t          ¦   «         }t          ‰%¦  «        D ]W}|t          t          |¦  «        ¦  «        z  }t          |¦  «        D ]&}t          t          ||| ¬¦  «        ¦  «        }||z  } ŒXg g }
}	t          |¦  «        D ]Ë}t	          |t
          d¬¦  «        }|                     t
          t          j        ¦  «        }|r‹|                     t          j	        t          j        ¦  «        }| 
                    t
          ¦  «        s| 
                    t
          ¦  «        rŒŸ|                     ||f¦  «         |                     |¦  «         ŒÌ|r³|                     ¦   «         \  }}|| f|v rs|                     || f¦  «         |                     ¦   «         r| }|                     ||z  ||z  z   ¦  «         |                     t          ||z  ¦  «        ¦  «         n |                     |t
          |z  z   ¦  «         |°³t!          dt#          |¦  «        ¦  «        }t!          dt#          |¦  «        ¦  «        }t%          t'          t)          t          |¦  «        |¦  «        ¦  «        ¦  «        D ]I\  }} |j
        ‰Ž r:‰"                     |¦  «         |	                     |t-          |¦  «        z  ¦  «         ŒJt%          t'          t)          t          |¦  «        |¦  «        ¦  «        ¦  «        D ]<\  }} |j
        ‰Ž r-‰"                     |¦  «         |
                     ||z  ¦  «         Œ=‰$‰#z  t/          |	Ž z   t/          |
Ž z   }‰ ‰ |¦  «        ‰!z  z
  }|                     ¦   «         d         }t          ‰"¦  «        t          ‰¦  «        z  Št          ¦   «         Šˆˆˆfd„Š	  ‰|¦  «         t3          ‰d	¬
¦  «        \  }}n# t4          $ r Y d S w xY wt7          ‰"|¦  «        }t7          ‰|¦  «        }	 |                     |¦  «        }n# t:          $ r t4          ‚w xY wt=          |                     ¦   «         |d¬¦  «        }|€d S |                      |¦  «                              tC          t)          ‰"t          j        gt#          ‰"¦  «        z  ¦  «        ¦  «        ¦  «        S )NÚQ)ÚfilterF)ÚevaluateÚBÚCr   c                óò   •— | j         s| j        rd S | ‰v rd S  | j        ‰Ž s‰                     | ¦  «         d S | j        s| j        s| j        r$t          t          ‰| j	        ¦  «        ¦  «         d S t          ‚r£   )rZ   r[   rP   rS   Úis_AddÚis_MulrX   rƒ   ÚmaprV   rF   )r”   Úfind_non_symsÚnon_symsÚsymss    €€€ra   r  z3heurisch.<locals>._integrate.<locals>.find_non_symsÌ  s—   ø€ ØŒð & $Ô"2ð &Ø�Ø˜��Ø�Ø"�T”] DÐ)ð &Ø—’˜TÑ"Ô"Ð"Ð"Ð"Ø”ð & ¤ð &¨t¬{ð &Ý•S˜¨¬	Ñ2Ô2Ñ3Ô3Ð3Ð3Ð3õ &Ð%rb   T)Úfield)Ú_raw)"rO   r   r   rH   r=   r   Úgetr   rç   rï   r©   rS   ÚremoveÚpopÚcould_extract_minus_signr   rk   rf   Úreversedrƒ   rã   rg   r   r   rÖ   rK   rF   rI   Ú	from_exprÚ
ValueErrorrJ   ÚcoeffsÚxreplacerp   )&r  Úatansr“   ÚirreduciblesÚsetVÚpolyÚzVr›   ru   Úlog_partÚ	atan_partÚmrë   r^   r  r	  r½   r¾   Ú	candidaterÙ   Ú	raw_numerÚgroundÚ_Ú
coeff_ringÚringÚnumerÚsolutionr  r  r  ÚFrÚ   rå   rà   r   Ú
poly_denomÚ	poly_partÚ
reducibless&                              @@@€€€€€€€€ra   Ú
_integratezheurisch.<locals>._integrate…  sø  øøøø€ Ý‘”ˆÝ‘”ˆà�CŠ<ˆ<Ý˜z™?œ?ˆLˆLå�q‘6”6ˆDÝ™5œ5ˆLÝ 
Ñ+Ô+ð ð �Ø�C¥¨TÑ 2Ô 2Ñ3Ô3Ñ3�Ý  ™œð ð �AÝ�L¨¨q¸Ð?Ñ?Ô?Ñ@Ô@�AØ  AÑ%�LØøà  "�)ˆå˜LÑ)Ô)ð 	*ð 	*ˆDÝ˜�a¨%Ð0Ñ0Ô0ˆAØ—’•a�œÑ Ô ˆAØð *Ø—E’E�!œ%¥¤Ñ(Ô(�Ø—5’5�‘8”8ð ˜qŸušu¥Q™xœxð ØØ—	’	˜1˜a˜&Ñ!Ô!Ð!Ø×#Ò# DÑ)Ô)Ð)øàð 
	*Ø—9’9‘;”;‰DˆAˆqØ�A�2ˆw˜%ÐÐØ—’˜a ! ˜WÑ%Ô%Ð%à×-Ò-Ñ/Ô/ð Ø˜�AØ× Ò   1¡ q¨¡s¡Ñ+Ô+Ð+Ø—	’	�$˜q ™s™)œ)Ñ$Ô$Ð$Ð$à× Ò  ¥Q q¡S¡Ñ)Ô)Ð)ð ð 
	*õ �S�#˜lÑ+Ô+Ñ,Ô,ˆÝ�S�#˜e™*œ*Ñ%Ô%ˆõ  ¥¥S­°Ñ)>Ô)>ÀÑ%BÔ%BÑ CÔ CÑDÔDð 	/ð 	/‰GˆD�!ØˆtŒx˜ˆ|ð /Ø×"Ò" 1Ñ%Ô%Ð%Ø—’ ¥C¨¡I¤I¡Ñ.Ô.Ð.øå¥¥S­°©¬¸Ñ%;Ô%;Ñ <Ô <Ñ=Ô=ð 	+ð 	+‰GˆD�!ØˆtŒx˜ˆ|ð +Ø×"Ò" 1Ñ%Ô%Ð%Ø× Ò   T¡Ñ*Ô*Ð*øð ˜jÑ(­3°¨>Ñ9½CÀ¸OÑKˆ	Ø��˜IÑ&Ô&¨Ñ.Ñ.ˆØ×$Ò$Ñ&Ô& qÔ)ˆ	õ �;ÑÔ¥# a¡&¤&Ñ(ˆÝ‘5”5ˆð	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð	?ØˆM˜)Ñ$Ô$Ð$õ )¨¸Ð>Ñ>Ô>‰IˆF�A�Aøõ ð 	ð 	ð 	Ø�4�4ð	øøøõ
 ˜k¨6Ñ2Ô2ˆ
Ý˜˜:Ñ&Ô&ˆð	"Ø—N’N 9Ñ-Ô-ˆEˆEøÝð 	"ð 	"ð 	"Ý!Ð!ð	"øøøå  §¢¡¤°À%ÐHÑHÔHˆàÐØ�4à×%Ò% hÑ/Ô/×8Ò8Ý•S˜¥q¤v h­s°;Ñ/?Ô/?Ñ&?Ñ@Ô@ÑAÔAñCô Cð Cs   Ï7P Ð
P%Ð$P%Ñ	Q ÑQ1c              3  ó@   K  — | ]}t          |t          ¦  «        V — Œd S r£   )r�   r   ©rt   r'  s     ra   rÛ   zheurisch.<locals>.<genexpr>ï  s,   è è € Ð
,Ð
, Q�:�a�Ñ Ô Ð
,Ð
,Ð
,Ð
,Ð
,Ð
,rb   c              3  ó2   K  — | ]}t          ¦   «         V — Œd S r£   )r   r2  s     ra   rÛ   zheurisch.<locals>.<genexpr>ó  s&   è è € Ð,@Ð,@¸­U©W¬WÐ,@Ð,@Ð,@Ð,@Ð,@Ð,@rb   r  )r‰   r‡   rˆ   rŠ   rŒ   r£   )Wr   r©   r2   r3   r4   r5   r;   r<   r8   r9   r6   rP   r  rÃ   r   rï   r   r   r   r   r    r!   r#   r"   r…   r‡   ÚkeysrW   r¯   r   rO   rT   r�   r(   rV   ÚmatchrS   r)   r   r   Úis_positiver'   r%   r&   r   Úis_negativerX   r[   r\   rY   r$   r   r±   r   r·   rk   rf   rƒ   r  rã   r   r  r   Útyperg   ÚallÚis_rational_functionr   r€   r7   rÖ   r
   rê   rü   ÚtuplerG   r   Ú	enumeraterD   ÚupdateÚfree_symbolsÚas_dummyr  rp   r†   rE   Úexpand)@r]   r^   r‡   rˆ   r‰   rŠ   r‹   rŒ   r�   ÚindepÚrewritablesÚ
candidatesÚruleÚtermsr¼   r½   r¾   r`   ÚMÚdFÚrev_mappingrÊ   Úer'  rÐ   r§   ro   r_   ÚspecialÚtermÚPr  Úu_splitÚv_splitÚpolysru   Úpolifiedrý   r  Úmonomsr  ÚcoeffÚfactorsr0  Ú	more_freeÚFdr+  Ú	antiderivr,  rÚ   rì   rå   rù   rò   rÒ   rÔ   rà   rÏ   rä   r   r-  r.  r/  rË   s@    `                                              @@@@@@@@@@@@@@@@ra   r€   r€   (  s/  øøøøøøøøøøøøøøøøø€ õf 	�‰
Œ
€Að
 ˜DÐ Ð Ø�5Š5••b�"�d¥I­z½5Å'Í3ÑOÔOð 	ØˆFà�:Š:�a‰=Œ=ð Ø�‰sˆ
àŒ8ð Ø×#Ò# AÑ&Ô&‰ˆˆqˆqå”ˆõ 
�c•3ˆ�Ý	�t•TÐ�Dð€Kð
 ð Ø +× 1Ò 1Ñ 3Ô 3ð 	,ð 	,ÑˆJ˜Ø—	’	˜* dÑ+Ô+ˆAˆAð	,ð &×*Ò*Ñ,Ô,ð 	ð 	ˆJØˆqŒu�jÐ!ð Ø�ðð ˆGå�q˜!ÑÔ€EÝ�q‰\Œ\€FàÑØñ B	 Ý�S 1 #Ð&Ñ&Ô&ˆAÝ�S 1 #Ð&Ñ&Ô&ˆAÝ�S 1 #Ð&Ñ&Ô&ˆAå˜‘Z”Zð :Wñ :W�Ø”=ñ 9WÝ! !¥RÑ(Ô(ð "WØœF 1œIŸOšO¨A¨a°©d©FÑ3Ô3˜à˜=Ø!ŸIšI q­"¨Q¨q¬T°!°Q°q´T±'©\Ñ*:Ô*:¸aÀ¼dÀ1ÀaÈÄdÁ7¹lÈbÐQRÐSTÔQUÉgÑ=VÕWYÐ[\Ð]^Ô[_Ð`aÑ[aÕcfÐghÐijÔgkÐlmÐopÐqrÔosÑlsÑgsÑctÔctÑZtÐuvÐwxÔuyÑZyÑWzÔWzÑ=zÑ*zÑ'{Ñ}Ô}Ð}øõ
 $ A¥sÑ+Ô+ñ WØœF 1œIŸOšO¨A¨a°©d©FÑ3Ô3˜à˜=Ø  œtÔ/ð >Ø %§	¢	­$­t°A°a´D©z¬z¸!©|Ñ*<Ô*<Ñ =Ô =Ð =Ð =à %§	¢	­#­d°A°a´D°5©k¬k¸!©mÑ*<Ô*<Ñ =Ô =Ð =àœF 1œIŸOšO¨A¨a°©d©F°Q°q±S©L¸1Ñ,<Ñ=Ô=˜à™=Ø  œtÔ/ð UØ %§	¢	­$­r°!©t°a¸´d°U©|Ñ*<Ô*<½SÀÀ1ÄÈÈ!ÌÈaÉÐQRÐSTÐUVÔSWÑQWÑHXÑAXÑ=YÔ=YÑ*YÝ*.­t°A°a´D©z¬z¸!©|¸aÀ¼dÀAÅdÈ1ÈQÌ4ÁjÄjÁLÑ>QÑ/QÑ*RÔ*Rñ+Sñ !Tô !Tð !Tð !Tà!" 1¤Ô!1ð UØ %§	¢	­$­r°!©t°a¸´d°U©|Ñ*<Ô*<½SÀÀ1ÄÈÈ!ÌÈaÉÐQRÐSTÐUVÔSWÑQWÑHXÑAXÑ=YÔ=YÑ*YÝ*-­d°A°a´D°5©k¬k¸!©m¸aÀ¼dÀAÅdÈAÈaÌDÈ5ÁkÄkÁMÑ>RÑ.RÑ*SÔ*Sñ+Tñ !Uô !Uð !Uð œF 1œIŸOšO¨A­c°!©f¬f°a©i©KÑ8Ô8˜à˜=Ø  œtÔ/ð VØ %§	¢	­$­t°A°a´D©z¬z½#¸a¹&¼&Ñ/@À1ÀaÍÈQÈqÌTÉ
Ì
ÁlÑCSÑ/SÑ*TÔ*TÑ UÔ UÐ UØ  œtÔ/ð WØ %§	¢	­#­d°A°a´D°5©k¬k½#¸a¹&¼&Ñ.@À1ÀaÍÈaÐPQÌdÈUÉÌÁmÑCTÑ.TÑ*UÔ*UÑ VÔ VÐ Vùà”Xñ WØ”uÔ(ñ W¨Q¬U¬W¸ª\©\ØœFŸLšL¨¨1¨a©4©°!©Ñ4Ô4˜à˜=¨Q¨q¬TÔ-=˜=Ø  œtÔ/ð DØ %§	¢	­%µ°Q°q´T¸!¸A¼$±Y±´ÀÑ0AÑ*BÔ*BÑ CÔ CÐ CÐ CØ!" 1¤Ô!1ð DØ %§	¢	­$­t°Q°q´T°E¸!¸A¼$±JÑ/?Ô/?ÀÑ/AÑ*BÔ*BÑ CÔ CÐ CàœFŸLšL¨¨1¨a©4©°!©Ñ4Ô4˜à™=¨Q¨q¬TÔ-=™=Ø  œtÔ/ð WØ%&¥t¨A¨a¬D°°A±©I¸¸!¼Ñ,<Ñ'=Ô'=Ñ%= Ý$'¨­$¨q°¬t©*¬*©µT¸!¸A¼$¸qÀ!¹t¹)ÀaÈÄdÑ:JÑ5KÔ5KÑ(KÈaÐPQÐRSÔPTÉfÐUVÉhÑ(VÑ$WÔ$WÕX\Ð]^Ð_`Ô]aÑXbÔXbÑ$b Ø24 ¤¨Q¡Ø %§	¢	¨!¡¤ ¡Ø!" 1¤Ô!1ð WØ %§	¢	¨1¨Q¬4¨%°©'µ$¸¸!¼°u±+´+Ñ*=Ý+/µ°a¸´d°U±´¸A±½dÀ1ÀQÄ4ÈÈ1ÉÁ9ÈqÐQRÌtÑCSÑ>TÔ>TÑ0TÑ+UÔ+Uñ+Vñ !Wô !Wð !Wùðs:Wðz •S˜‘Z”ZÑˆEå�‰ZŒZð 3ð 3ˆØ•˜FŸOšO¨AÑ.Ô.°Ñ2Ô2Ñ2ˆˆõ 	�•c˜%‘j”jÑ!Ô!€Aõ •8�D¥¥gØ?Ð?Ð?Ð?µ°U¸A±´Ð?Ñ?Ô?ñ'Aô 'Að "Bñ Cô CØCDôFñ Gô Gñ Hô H€Gà,Ð, GÐ,Ñ,Ô,€KØÐà�rŒ{˜1Œ~ Ò"Ð"Ð"Ð"Ø$+§K¢K°¡O¤OÐ#4Ð å�DÑ!Ô!ˆØð 	%ð 	%ˆAØ‰DˆAˆqØ•$�q‘'”'ŒN×!Ò! !Ñ$Ô$Ð$Ð$Ø+Ð+Ð+Ð+ UÐ+Ñ+Ô+ˆð	9ð 	9ð 	9ð 	9ð 	9ð "�>Ñ#Ô#ˆˆà#;Ð#A¸rÐ ð"ð "ð "ð "ð "ð ð ð ˆÝ�w‘-”-ˆØÐ4Ñ4ˆØBÐBÐBÐBÐB¸5ÐBÑBÔBˆØ9Ð9°%Ð9Ñ9Ô9ˆÝÐ3Ð3Ð3Ð3¨FÐ3Ñ3Ô3Ñ3Ô3ð 	Ð8[¸¸ÀA¹¼Ô8[Ð]^Ð8_ð 	ÝÐ5Ð5Ð5Ð5°vÑ>Ô>ˆEØˆEøàð 	$Ý˜a ¨D¸Ø)AðCñ Cô CˆFð Ð!Ø˜V‘|Ð#Øˆtà/Ð/Ð/Ð/¨Ð/Ñ/Ô/€FðBð Bð Bð Bð Bð Bð	ð 	ð 	ð 	ð 	ð 	ð 	ðð ð ð ð ð ð ð0 €Gàð 2ð 2ˆØÔð 	2Ý˜$¥Ñ$Ô$ð 2Ø49�˜˜K˜K¨Ñ-Ô-¨qÑ0Ñ0Ñ1Ð1Ý˜D¥$Ñ'Ô'ð 2Ø16�˜˜K˜K¨Ñ-Ô-Ñ-Ñ.Ø16�˜˜K˜K¨Ñ-Ô-Ñ-Ñ.Ð.Ý˜D¥(Ñ+Ô+ð 2Ø-1�˜˜ DÑ)Ô)Ñ*øàˆ�A‰Œ€Aà×ÒÑÔ�D€A€qàˆi˜ÑÔ€GØˆi˜‰lŒl€Gå•�W‘” '¨!¤* Ñ.µ°g·l²l±n´nÑ1EÔ1EÑEÑFÔF€Eà�Œ
•SÐ@Ð@¨'¯-ª-©/¬/Ð@Ñ@Ô@ÐAÑA€AØ3Ð3Ð3Ð3¨¨A¨q¨	Ð3Ñ3Ô3€HàˆxÐÐØˆtð 5Ð4¨(Ð4Ñ4Ô4�G€A€qˆ!à�g˜a”j‘. : :¨g°a¬jÑ#9Ô#9Ñ9×BÒBÑDÔD€Jðð ð ð ð ð ˆ9�Q‰<Œ<˜�S  A™YœY™€q€Aàˆ1‚u€u��Q’�Ý•w�}¨Q°°A±¸±	¸MÑ0IÑJÔJÑKÔKÑLÔLˆˆå•w�}¨Q°°A±¸Ñ0EÑFÔFÑGÔGÑHÔHˆå˜3¥ F¡¤Ñ,Ô,€Kåð /ð /ð /ð /Ý$ VÑ,Ô,ð/ñ /ô /ð 0€Iõ ‘”€Jå˜‘”ð 9ð 9ˆÝ$ TÐ.¨AÐ.Ð.Ð.‰ˆˆwØ�Š�uÑÔÐØ×ÒÐ8Ð8°Ð8Ñ8Ô8Ñ8Ô8Ð8Ð8ðhCð hCð hCð hCð hCð hCð hCð hCð hCð hCð hCð hCð hCõT Ð
,Ð
,¨!Ð
,Ñ
,Ô
,Ñ,Ô,ð -Ø”N¥S¨¡V¤VÑ+ˆ	ˆ	à�ZŠZ‰\Œ\ˆØ—K’K¥¥S¨Ð,@Ð,@¸aÐ,@Ñ,@Ô,@Ñ%AÔ%AÑ BÔ Bñ ô Ü˜Rœ_ñ-ˆ	àð  à�:˜c‘?”?ˆàÐØ!�z‘|”|ˆHøà�:‘<”<ˆàÐØ—M’M +Ñ.Ô.ˆ	Ý˜9Ñ%Ô%×,Ò,Ñ.Ô.ˆ	àÔð 	7Ø!×0Ò0°Ñ3Ô3°AÔ6ˆIà�Y‰Ðà�aŠ<ˆ<Ý˜a ¨X¸wÈeÐ]dÐghÑ]hð  D\ð  ]ñ  ]ô  ]ˆFàÐ!Ø˜V‘|Ð#àˆtrb   )FNNrl   r   NN)nÚ
__future__r   Úcollectionsr   Ú	functoolsr   Ú	itertoolsr   Úsympy.core.addr   Úsympy.core.basicr	   Úsympy.core.mulr
   Úsympy.core.symbolr   r   r   r   Úsympy.core.numbersr   r   r   Úsympy.core.relationalr   r   Úsympy.core.singletonr   Úsympy.core.sortingr   Úsympy.core.traversalr   Úsympy.functionsr   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   Ú$sympy.functions.elementary.complexesr2   r3   r4   r5   r6   Ú&sympy.functions.elementary.exponentialr7   Ú#sympy.functions.elementary.integersr8   r9   Ú$sympy.functions.elementary.piecewiser:   Ú'sympy.functions.special.delta_functionsr;   r<   Úsympy.simplify.radsimpr=   Úsympy.logic.boolalgr>   r?   Úsympy.utilities.iterablesr@   Úsympy.polysrA   rB   rC   rD   rE   rF   Úsympy.polys.monomialsrG   Úsympy.polys.polyrootsrH   Úsympy.polys.ringsrI   Úsympy.polys.solversrJ   Úsympy.polys.constructorrK   Úsympy.integrals.integralsrL   rW   rc   Ú__annotations__rk   r—   r™   r²   r¯   r€   rs   rb   ra   ú<module>ru     s2  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "à #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø $Ð $Ð $Ð $Ð $Ð $Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø "Ð "Ð "Ð "Ð "Ð "Ø &Ð &Ð &Ð &Ð &Ð &Ø -Ð -Ð -Ð -Ð -Ð -à ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GØ ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø :Ð :Ð :Ð :Ð :Ð :Ø IÐ IÐ IÐ IÐ IÐ IÐ IÐ Ià *Ð *Ð *Ð *Ð *Ð *à 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø *Ð *Ð *Ð *Ð *Ð *à KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KØ /Ð /Ð /Ð /Ð /Ð /Ø .Ð .Ð .Ð .Ð .Ð .à &Ð &Ð &Ð &Ð &Ð &Ø -Ð -Ð -Ð -Ð -Ð -Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4à /Ð /Ð /Ð /Ð /Ð /ð,ð ,ð ,ð^ *,€Ð +Ð +Ð +Ñ +ðð ð ð NOØ?CØ#'ð^ð ^ð ^ð ^ð@&ð &ð &ð &ð &ñ &ô &ð &ðP €ð.ð .ð .ð .ð .ñ .ô .ð .ð` FGØ7;Øðeð eð eð eð eð erb   