+
    ‹°³jÉ' ã                  óü  a € 0 t $ R t^ RIHt ^ RIHtHtHtHt ^ RI	H
t
Ht ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIHt ^ RIHt ^ RIHt ^ RI H!t!H"t"H#t# ^ RI$H%t% ^ RI&H't'H(t(H)t) ^ RI*H+t+ ^ RI,H-t-H.t.H/t/ ^ RI0H1t1 ^ RI2H3t3H4t4 ^ RI5H6t6H7t7H8t8H9t9H:t:H;t;H<t<H=t= ^ RI>H?t? ^ RI@HAtA ^ RIBHCtCHDtDHEtEHFtFHGtGHHtHHItIHJtJHKtKHLtLHMtMHNtNHOtO ^ RIPHQtQHRtR ^ RISHTtTHUtUHVtVHWtWHXtXHYtYHZtZH[t[H\t\H]t] ^ RI^H_t_ ^ RI`HataHbtb ^ RIcHdtdHeteHftfHgtgHhthHitiHjtjHktkHltl ^ RImHntn ^RIoHptp ^ R IqHrtr ^ R!IsHttt ^ R"IuHvtvHwtwHxtxHyty ^ R#IzH{t{ ^ R$I|H}t} ^ R%I~Ht ^ R&I€H�t�H‚t‚HƒtƒH„t„ ^ R'I…H†t† ^ R(I‡Hˆtˆ ] ! R) R*]
4      4       t‰] ! R+ R,]‰]
4      4       tŠ] ! R- R.]Š4      4       t‹] ! R/ R0]‰4      4       tŒ] ! R1 R2]Š4      4       t�] ! R3 R4]Š4      4       tŽ] ! R5 R6]‰4      4       t�] ! R7 R8]‰4      4       t�] ! R9 R:]‰4      4       t‘] ! R; R<]‰4      4       t’] ! R= R>]Š]
4      4       t“] ! R? R@]“4      4       t”] ! RA RB]“4      4       t•] ! RC RD]“4      4       t–] ! RE RF]“4      4       t—] ! RG RH]“4      4       t˜] ! RI RJ]“4      4       t™] ! RK RL]Š]
4      4       tš] ! RM RN]š4      4       t›] ! RO RP]š4      4       tœ] ! RQ RR]Š4      4       t�] ! RS RT]Š4      4       tž] ! RU RV]Š4      4       tŸ] ! RW RX]Š4      4       t ] ! RY RZ]Š4      4       t¡] ! R[ R\]Š4      4       t¢] ! R] R^]Š4      4       t£] ! R_ R`]‰4      4       t¤] ! Ra Rb]‰4      4       t¥] ! Rc Rd]Š4      4       t¦] ! Re Rf]‰4      4       t§] ! Rg Rh]§4      4       t¨] ! Ri Rj]‰4      4       t©] ! Rk Rl]‰4      4       tª] ! Rm Rn]Š4      4       t«] ! Ro Rp]‰4      4       t¬] ! Rq Rr]Š4      4       t­] ! Rs Rt]Š]
4      4       t®] ! Ru Rv]®4      4       t¯] ! Rw Rx]®4      4       t°] ! Ry Rz]®4      4       t±] ! R{ R|]®4      4       t²] ! R} R~]®4      4       t³] ! R R€]®4      4       t´] ! R� R‚]®4      4       tµ] ! Rƒ R„]®4      4       t¶] ! R… R†]Š]
4      4       t·] ! R‡ Rˆ]·4      4       t¸] ! R‰ RŠ]·4      4       t¹] ! R‹ RŒ]·4      4       tº] ! R� RŽ]·4      4       t»] ! R� R�]·4      4       t¼] ! R‘ R’]·4      4       t½] ! R“ R”]Š4      4       t¾] ! R• R–]Š4      4       t¿] ! R— R˜]Š4      4       tÀ] ! R™ Rš]Š4      4       tÁ] ! R› Rœ]Š4      4       tÂ] ! R� Rž]Š4      4       tÃ] ! RŸ R ]Š4      4       tÄ ! R¡ R¢]4      tÅR£ tÆR¤ tÇ]L]K]J]M]N]O3tÈR¥ tÉR¦ tÊR§ tËR¨ tÌR© tÍRª tÎR« tÏR¬ tÐR­ tÑ. tÒR®]ÓR¯&   . tÔ]-! R°4      tÕR± tÖR² R³ lt×R´ Rµ ltØRüR¶ R· lltÙR¸ tÚR¹ Rº ltÛR» R¼ ltÜR½ tÝR¾ tÞR¿ RÀ ltßRÁ tàRÂ RÃ ltáRüRÄ RÅ lltâRÆ RÇ ltã]RÈ 4       tä]RÉ 4       tå]RÊ 4       tæ]RË 4       tç]RÌ 4       tèRÍ téRÎ tê]é! RÏ 4      të]ê! RÐ 4      tì]é! RÑ 4      tí]ê! RÒ 4      tî]é! RÓ 4      tï]ê! RÔ 4      tð]é! RÕ 4      tñ]ê! RÖ 4      tò]é! R× 4      tó]ê! RØ 4      tô]é! RÙ 4      tõ]ê! RÚ 4      tö]é! RÛ 4      t÷]ê! RÜ 4      tø]é! RÝ 4      tù]ê! RÞ 4      túRß tûRà tüRá týRâ tþRã tÿRä Et Rå EtRæ Rç lEtRè Et]Ê! Ré Rê 4      Et]Ê! Rë Rì 4      Et]Ê! Rí Rî 4      Et]Ê! Rï Rð 4      EtRñ EtRò Et	Ró Et
/ EtRô]ÓRõ&   ]! E]4      EtRö]ÓR÷&   ]-! Rø4      EtRù EtRú EtRû# )ýa/  Integration method that emulates by-hand techniques.

This module also provides functionality to get the steps used to evaluate a
particular integral, in the ``integral_steps`` function. This will return
nested ``Rule`` s representing the integration rules used.

Each ``Rule`` class represents a (maybe parametrized) integration rule, e.g.
``SinRule`` for integrating ``sin(x)`` and ``ReciprocalSqrtQuadraticRule``
for integrating ``1/sqrt(a+b*x+c*x**2)``. The ``eval`` method returns the
integration result.

The ``manualintegrate`` function computes the integral by calling ``eval``
on the rule returned by ``integral_steps``.

The integrator can be extended with new heuristics and evaluation
techniques. To do so, extend the ``Rule`` class, implement ``eval`` method,
then write a function that accepts an ``IntegralInfo`` object and returns
either a ``Rule`` instance or ``None``. If the new technique requires a new
match, add the key and call to the antiderivative function to integral_steps.
To enable simple substitutions, add the match to find_substitutions.

)Úannotations)Ú
NamedTupleÚTypeÚCallableÚSequence)ÚABCÚabstractmethod)Ú	dataclass)Údefaultdict)ÚMapping)ÚAdd)Úcacheit)ÚDict)ÚExpr)Ú
Derivative)Ú	fuzzy_not)ÚMul)ÚIntegerÚNumberÚE)ÚPow)ÚEqÚNeÚBoolean)ÚS)ÚDummyÚSymbolÚWild)ÚAbs)ÚexpÚlog)ÚHyperbolicFunctionÚcschÚcoshÚcothÚsechÚsinhÚtanhÚasinh)Úsqrt)Ú	Piecewise)ÚTrigonometricFunctionÚcosÚsinÚtanÚcotÚcscÚsecÚacosÚasinÚatanÚacotÚacscÚasec)Ú	HeavisideÚ
DiracDelta)
ÚerfÚerfiÚfresnelcÚfresnelsÚCiÚChiÚSiÚShiÚEiÚli)Ú
uppergamma)Ú
elliptic_eÚ
elliptic_f)	Ú
chebyshevtÚ
chebyshevuÚlegendreÚhermiteÚlaguerreÚassoc_laguerreÚ
gegenbauerÚjacobiÚOrthogonalPolynomial)Úpolylog)ÚIntegral)ÚAnd)Úprimefactors)ÚdegreeÚlcm_listÚgcd_listÚPoly)Úfraction)Úsimplify)Úsolve)ÚswitchÚdo_oneÚ	null_safeÚ	condition)Úiterable)Údebugc                  óX   € ] tR t^Ht$ R]R&   R]R&   ]R R l4       t]R R l4       tR	tR
# )ÚRuler   Ú	integrandr   Úvariablec               ó   € V ^8„  d   QhRR/# ©é   Úreturnr   © )Úformats   "Ú`/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/integrals/manualintegrate.pyÚ__annotate__ÚRule.__annotate__N   s   € ÷ ñ �dñ ó    c                	ó   € R # ©Nri   ©Úselfs   &rk   ÚevalÚ	Rule.evalM   ó   € árn   c               ó   € V ^8„  d   QhRR/# ©rg   rh   Úboolri   )rj   s   "rk   rl   rm   R   s   € ÷ ñ  Dñ rn   c                	ó   € R # rp   ri   rq   s   &rk   Úcontains_dont_knowÚRule.contains_dont_knowQ   ru   rn   ri   N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__r   rs   rz   Ú__static_attributes__ri   rn   rk   rb   rb   H   s3   ‡ àƒOØÓàôó ðð ôó ôrn   rb   c                  ó&   € ] tR t^VtRtR R ltRtR# )Ú
AtomicRulez1A simple rule that does not depend on other rulesc               ó   € V ^8„  d   QhRR/# rw   ri   )rj   s   "rk   rl   ÚAtomicRule.__annotate__Y   s   € ÷ ñ  Dñ rn   c                	ó   € R # )Fri   rq   s   &rk   rz   ÚAtomicRule.contains_dont_knowY   s   € Ùrn   ri   N)r|   r}   r~   r   Ú__doc__rz   r�   ri   rn   rk   rƒ   rƒ   V   s   † á;÷ñ rn   rƒ   c                  ó&   € ] tR t^]tRtR R ltRtR# )ÚConstantRulezintegrate(a, x)  ->  a*xc               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚConstantRule.__annotate__`   s   € ÷ .ñ .�dñ .rn   c                	ó<   € V P                   V P                  ,          # rp   )rc   rd   rq   s   &rk   rs   ÚConstantRule.eval`   s   € Ø�~‰~ §¡Õ-Ð-rn   ri   N©r|   r}   r~   r   rˆ   rs   r�   ri   rn   rk   rŠ   rŠ   ]   s   † á"÷.ñ .rn   rŠ   c                  óR   € ] tR t^dt$ RtR]R&   R]R&   R]R&   R R ltR	 R
 ltRtR# )ÚConstantTimesRulez.integrate(a*f(x), x)  ->  a*integrate(f(x), x)r   ÚconstantÚotherrb   Úsubstepc               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚConstantTimesRule.__annotate__k   s   € ÷ 3ñ 3�dñ 3rn   c                	óX   € V P                   V P                  P                  4       ,          # rp   )r’   r”   rs   rq   s   &rk   rs   ÚConstantTimesRule.evalk   s   € Ø�}‰}˜tŸ|™|×0Ñ0Ó2Õ2Ð2rn   c               ó   € V ^8„  d   QhRR/# rw   ri   )rj   s   "rk   rl   r–   n   ó   € ÷ 1ñ 1 Dñ 1rn   c                	ó6   € V P                   P                  4       # rp   ©r”   rz   rq   s   &rk   rz   Ú$ConstantTimesRule.contains_dont_known   ó   € Ø�|‰|×.Ñ.Ó0Ð0rn   ri   N©	r|   r}   r~   r   rˆ   r€   rs   rz   r�   ri   rn   rk   r‘   r‘   d   s#   ‡ á8ØƒNØƒKØƒMõ3÷1ñ 1rn   r‘   c                  ó<   € ] tR t^rt$ RtR]R&   R]R&   R R ltRtR# )	Ú	PowerRulezintegrate(x**a, x)r   Úbaser   c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚPowerRule.__annotate__x   s   € ÷ 
ñ 
�dñ 
rn   c                	óä   € \        V P                  V P                  ^,           ,          V P                  ^,           ,          \        V P                  R4      3\	        V P                  4      R34      # ©é   Téÿÿÿÿ)r*   r¢   r   r   r    rq   s   &rk   rs   ÚPowerRule.evalx   sP   € ÜØ�i‰i˜$Ÿ(™( Q�,Õ'¨$¯(©(°Q­,Õ7¼¸D¿H¹HÀbÓ9IÐJÜ�—‘‹^˜TÐ"ó
ð 	
rn   ri   N©r|   r}   r~   r   rˆ   r€   rs   r�   ri   rn   rk   r¡   r¡   r   s   ‡ áØ
ƒJØ	ƒI÷
ñ 
rn   r¡   c                  ó<   € ] tR t^t$ RtR]R&   R]R&   R R ltRtR# )	ÚNestedPowRulezintegrate((x**a)**b, x)r   r¢   r   c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚNestedPowRule.__annotate__…   s   € ÷ 5ñ 5�dñ 5rn   c                	óæ   € V P                   V P                  ,          p\        WP                  ^,           ,          \	        V P                  R4      3V\        V P                   4      ,          R34      # r¦   )r¢   rc   r*   r   r   r    )rr   Úms   & rk   rs   ÚNestedPowRule.eval…   sS   € Ø�I‰I˜Ÿ™Õ&ˆÜ˜!Ÿx™x¨!�|Õ,¬b°·±¸2Ó.>Ð?Øœc $§)¡)›nÕ,¨dÐ3ó5ð 	5rn   ri   Nrª   ri   rn   rk   r¬   r¬      s   ‡ á!Ø
ƒJØ	ƒI÷5ñ 5rn   r¬   c                  ó>   € ] tR t^‹t$ RtR]R&   R R ltR R ltRtR	# )
ÚAddRulezDintegrate(f(x) + g(x), x) -> integrate(f(x), x) + integrate(g(x), x)ú
list[Rule]Úsubstepsc               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚAddRule.__annotate__�   s   € ÷ Cñ C�dñ Crn   c                	ó6   € \        R  V P                   4       !  # )c              3  ó@   "  € T F  qP                  4       x € K  	  R # 5irp   )rs   ©Ú.0r”   s   & rk   Ú	<genexpr>ÚAddRule.eval.<locals>.<genexpr>‘   s   é € ÐA±=¨—\‘\—^�^³=ùó   ‚)r   rµ   rq   s   &rk   rs   ÚAddRule.eval�   s   € ÜÑA°4·=²=ÓAÑBÐBrn   c               ó   € V ^8„  d   QhRR/# rw   ri   )rj   s   "rk   rl   r·   “   s   € ÷ Nñ N Dñ Nrn   c                	ó’   € \         ;QJ d&    R  V P                   4       F  '       g   K   R# 	  R# ! R  V P                   4       4      # )c              3  ó@   "  € T F  qP                  4       x € K  	  R # 5irp   ©rz   rº   s   & rk   r¼   Ú-AddRule.contains_dont_know.<locals>.<genexpr>”   s   é € ÐM¹}°G×-Ñ-×/Ð/»}ùr¾   TF)Úanyrµ   rq   s   &rk   rz   ÚAddRule.contains_dont_know“   s3   € ß‹sÑM¸t¿}º}ÓM�sŒsÐMŠsÐMˆsÑM¸t¿}º}ÓMÓMÐMrn   ri   NrŸ   ri   rn   rk   r³   r³   ‹   s   ‡ áNØÓõC÷Nñ Nrn   r³   c                  óR   € ] tR t^—t$ RtR]R&   R]R&   R]R&   R R	 ltR
 R ltRtR# )ÚURulez;integrate(f(g(x))*g'(x), x) -> integrate(f(u), u), u = g(x)r   Úu_varr   Úu_funcrb   r”   c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚURule.__annotate__ž   s   € ÷ 4ñ 4�dñ 4rn   c                	ó^  € V P                   P                  4       pV P                  P                  '       dS   V P                  P	                  4       w  r#VR8X  d0   VP                  \        V P                  4      \        V4      ) 4      pVP                  V P                  V P                  4      # ©r§   r¨   )r”   rs   rÊ   Úis_PowÚas_base_expÚsubsr    rÉ   )rr   Úresultr¢   Úexp_s   &   rk   rs   Ú
URule.evalž   sv   € Ø—‘×"Ñ"Ó$ˆØ�;‰;××ÐØŸ™×0Ñ0Ó2‰JˆDØ�rŒzàŸ™¤S¨¯©£_´s¸4³y°jÓA�Ø�{‰{˜4Ÿ:™: t§{¡{Ó3Ð3rn   c               ó   € V ^8„  d   QhRR/# rw   ri   )rj   s   "rk   rl   rÌ   §   rš   rn   c                	ó6   € V P                   P                  4       # rp   rœ   rq   s   &rk   rz   ÚURule.contains_dont_know§   rž   rn   ri   NrŸ   ri   rn   rk   rÈ   rÈ   —   s#   ‡ áEØƒMØƒLØƒMõ4÷1ñ 1rn   rÈ   c                  ó\   € ] tR t^«t$ RtR]R&   R]R&   R]R&   R]R	&   R
 R ltR R ltRtR# )Ú	PartsRulez@integrate(u(x)*v'(x), x) -> u(x)*v(x) - integrate(u'(x)*v(x), x)r   Úur   Údvrb   Úv_stepúRule | NoneÚsecond_stepc               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚPartsRule.__annotate__³   s   € ÷ 4ñ 4�dñ 4rn   c                	óº   € V P                   f   Q hV P                  P                  4       pV P                  V,          V P                   P                  4       ,
          # rp   )rÞ   rÜ   rs   rÚ   )rr   Úvs   & rk   rs   ÚPartsRule.eval³   sH   € Ø×ÑÒ+Ð+Ð+Ø�K‰K×ÑÓˆØ�v‰v˜�z˜D×,Ñ,×1Ñ1Ó3Õ3Ð3rn   c               ó   € V ^8„  d   QhRR/# rw   ri   )rj   s   "rk   rl   rà   ¸   s   € ÷ Tñ T Dñ Trn   c                	ó¦   € V P                   P                  4       ;'       g1    V P                  R J;'       d    V P                  P                  4       # rp   )rÜ   rz   rÞ   rq   s   &rk   rz   ÚPartsRule.contains_dont_know¸   sI   € Ø�{‰{×-Ñ-Ó/÷ Tð TØ×Ñ DÐ(×RÐR¨T×-=Ñ-=×-PÑ-PÓ-Rð	Trn   ri   NrŸ   ri   rn   rk   rÙ   rÙ   «   s+   ‡ áJØƒIØƒHØƒLØÓõ4÷
Tñ Trn   rÙ   c                  óH   € ] tR t^½t$ RtR]R&   R]R&   R R ltR R	 ltR
tR# )ÚCyclicPartsRulez9Apply PartsRule multiple times to integrate exp(x)*sin(x)zlist[PartsRule]Úparts_rulesr   Úcoefficientc               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚCyclicPartsRule.__annotate__Ã   s   € ÷ 5ñ 5�dñ 5rn   c                	ó  € . p^pV P                    FL  pVP                  W#P                  ,          VP                  P	                  4       ,          4       VR,          pKN  	  \        V!  ^V P                  ,
          ,          # rÎ   )ré   ÚappendrÚ   rÜ   rs   r   rê   )rr   rÒ   ÚsignÚrules   &   rk   rs   ÚCyclicPartsRule.evalÃ   se   € ØˆØˆØ×$Ô$ˆDØ�M‰M˜$§¡�-¨$¯+©+×*:Ñ*:Ó*<Õ<Ô=Ø�B�JŠDñ %ô �F‰|˜q 4×#3Ñ#3Õ3Õ4Ð4rn   c               ó   € V ^8„  d   QhRR/# rw   ri   )rj   s   "rk   rl   rì   Ë   s   € ÷ Qñ Q Dñ Qrn   c                	ó’   € \         ;QJ d&    R  V P                   4       F  '       g   K   R# 	  R# ! R  V P                   4       4      # )c              3  ó@   "  € T F  qP                  4       x € K  	  R # 5irp   rÃ   rº   s   & rk   r¼   Ú5CyclicPartsRule.contains_dont_know.<locals>.<genexpr>Ì   s   é € ÐPÑ?O°G×-Ñ-×/Ð/Ó?Oùr¾   TF)rÅ   ré   rq   s   &rk   rz   Ú"CyclicPartsRule.contains_dont_knowË   s7   € ß‹sÑP¸t×?OÒ?OÓP�sŒsÐPŠsÐPˆsÑP¸t×?OÒ?OÓPÓPÐPrn   ri   NrŸ   ri   rn   rk   rè   rè   ½   s"   ‡ áCØ Ó ØÓõ5÷Qñ Qrn   rè   c                  ó   € ] tR t^ÏtRtR# )ÚTrigRuleri   N©r|   r}   r~   r   r�   ri   rn   rk   rø   rø   Ï   ó   † ãrn   rø   c                  ó&   € ] tR t^ÔtRtR R ltRtR# )ÚSinRulezintegrate(sin(x), x) -> -cos(x)c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚSinRule.__annotate__×   ó   € ÷ #ñ #�dñ #rn   c                	ó.   € \        V P                  4      ) # rp   )r,   rd   rq   s   &rk   rs   ÚSinRule.eval×   ó   € Ü�D—M‘MÓ"Ð"Ð"rn   ri   Nr�   ri   rn   rk   rü   rü   Ô   s   † á)÷#ñ #rn   rü   c                  ó&   € ] tR t^ÛtRtR R ltRtR# )ÚCosRulezintegrate(cos(x), x) -> sin(x)c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚCosRule.__annotate__Þ   ó   € ÷ "ñ "�dñ "rn   c                	ó,   € \        V P                  4      # rp   )r-   rd   rq   s   &rk   rs   ÚCosRule.evalÞ   ó   € Ü�4—=‘=Ó!Ð!rn   ri   Nr�   ri   rn   rk   r  r  Û   s   † á(÷"ñ "rn   r  c                  ó&   € ] tR t^âtRtR R ltRtR# )Ú
SecTanRulez%integrate(sec(x)*tan(x), x) -> sec(x)c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚSecTanRule.__annotate__å   r  rn   c                	ó,   € \        V P                  4      # rp   )r1   rd   rq   s   &rk   rs   ÚSecTanRule.evalå   r
  rn   ri   Nr�   ri   rn   rk   r  r  â   s   † á/÷"ñ "rn   r  c                  ó&   € ] tR t^étRtR R ltRtR# )Ú
CscCotRulez&integrate(csc(x)*cot(x), x) -> -csc(x)c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚCscCotRule.__annotate__ì   rÿ   rn   c                	ó.   € \        V P                  4      ) # rp   )r0   rd   rq   s   &rk   rs   ÚCscCotRule.evalì   r  rn   ri   Nr�   ri   rn   rk   r  r  é   s   † á0÷#ñ #rn   r  c                  ó&   € ] tR t^ðtRtR R ltRtR# )ÚSec2Rulez!integrate(sec(x)**2, x) -> tan(x)c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚSec2Rule.__annotate__ó   r  rn   c                	ó,   € \        V P                  4      # rp   )r.   rd   rq   s   &rk   rs   ÚSec2Rule.evaló   r
  rn   ri   Nr�   ri   rn   rk   r  r  ð   s   † á+÷"ñ "rn   r  c                  ó&   € ] tR t^÷tRtR R ltRtR# )ÚCsc2Rulez"integrate(csc(x)**2, x) -> -cot(x)c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚCsc2Rule.__annotate__ú   rÿ   rn   c                	ó.   € \        V P                  4      ) # rp   )r/   rd   rq   s   &rk   rs   ÚCsc2Rule.evalú   r  rn   ri   Nr�   ri   rn   rk   r  r  ÷   s   † á,÷#ñ #rn   r  c                  ó   € ] tR t^þtRtR# )ÚHyperbolicRuleri   Nrù   ri   rn   rk   r$  r$  þ   rú   rn   r$  c                  ó&   € ] tR tRtRtR R ltRtR# )ÚSinhRulei  z integrate(sinh(x), x) -> cosh(x)c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚSinhRule.__annotate__  rÿ   rn   c                	ó,   € \        V P                  4      # rp   )r#   rd   rq   s   &rk   rs   ÚSinhRule.eval  ó   € Ü�D—M‘MÓ"Ð"rn   ri   Nr�   ri   rn   rk   r&  r&    s   † á*÷#ñ #rn   r&  c                  ó    € ] tR tRtRtR tRtR# )ÚCoshRulei
  z integrate(cosh(x), x) -> sinh(x)c                	ó,   € \        V P                  4      # rp   )r&   rd   rq   s   &rk   rs   ÚCoshRule.eval  r+  rn   ri   Nr�   ri   rn   rk   r-  r-  
  s
   † á*ö#rn   r-  c                  ó<   € ] tR tRt$ RtR]R&   R]R&   R R ltRtR	# )
ÚExpRulei  z integrate(a**x, x) -> a**x/ln(a)r   r¢   r   c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚExpRule.__annotate__  s   € ÷ /ñ /�dñ /rn   c                	óN   € V P                   \        V P                  4      ,          # rp   )rc   r    r¢   rq   s   &rk   rs   ÚExpRule.eval  s   € Ø�~‰~¤ D§I¡I£Õ.Ð.rn   ri   Nrª   ri   rn   rk   r1  r1    s   ‡ á*Ø
ƒJØ	ƒI÷/ñ /rn   r1  c                  ó2   € ] tR tRt$ RtR]R&   R R ltRtR# )	ÚReciprocalRulei  zintegrate(1/x, x) -> ln(x)r   r¢   c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚReciprocalRule.__annotate__   s   € ÷ ñ �dñ rn   c                	ó,   € \        V P                  4      # rp   )r    r¢   rq   s   &rk   rs   ÚReciprocalRule.eval   s   € Ü�4—9‘9‹~Ðrn   ri   Nrª   ri   rn   rk   r7  r7    s   ‡ á$Ø
ƒJ÷ñ rn   r7  c                  ó&   € ] tR tRtRtR R ltRtR# )Ú
ArcsinRulei$  z'integrate(1/sqrt(1-x**2), x) -> asin(x)c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚArcsinRule.__annotate__'  rÿ   rn   c                	ó,   € \        V P                  4      # rp   )r3   rd   rq   s   &rk   rs   ÚArcsinRule.eval'  r+  rn   ri   Nr�   ri   rn   rk   r=  r=  $  s   † á1÷#ñ #rn   r=  c                  ó&   € ] tR tRtRtR R ltRtR# )ÚArcsinhRulei+  z'integrate(1/sqrt(1+x**2), x) -> asin(x)c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚArcsinhRule.__annotate__.  s   € ÷ $ñ $�dñ $rn   c                	ó,   € \        V P                  4      # rp   )r(   rd   rq   s   &rk   rs   ÚArcsinhRule.eval.  s   € Ü�T—]‘]Ó#Ð#rn   ri   Nr�   ri   rn   rk   rC  rC  +  s   † á1÷$ñ $rn   rC  c                  óF   € ] tR tRt$ RtR]R&   R]R&   R]R&   R R ltR	tR
# )ÚReciprocalSqrtQuadraticRulei2  zWintegrate(1/sqrt(a+b*x+c*x**2), x) -> log(2*sqrt(c)*sqrt(a+b*x+c*x**2)+b+2*c*x)/sqrt(c)r   ÚaÚbÚcc               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   Ú(ReciprocalSqrtQuadraticRule.__annotate__9  s   € ÷ Añ A�dñ Arn   c           	     	óT  € V P                   V P                  V P                  V P                  3w  rr4\	        ^\        V4      ,          \        WV,          ,           W4^,          ,          ,           4      ,          V,           ^V,          V,          ,           4      \        V4      ,          # ©rg   )rJ  rK  rL  rd   r    r)   ©rr   rJ  rK  rL  Úxs   &    rk   rs   Ú ReciprocalSqrtQuadraticRule.eval9  sl   € Ø—V‘V˜TŸV™V T§V¡V¨T¯]©]Ð:‰
ˆˆaÜ�1”T˜!“W•9œT ! a¥C¥%¨¨Q­$­¥,Ó/Õ/°Õ1°!°Aµ#°aµ%Õ7Ó8¼¸a»Õ@Ð@rn   ri   Nrª   ri   rn   rk   rI  rI  2  s    ‡ áaØƒGØƒGØƒG÷Añ Arn   rI  c                  óP   € ] tR tRt$ RtR]R&   R]R&   R]R&   R]R&   R	 R
 ltRtR# )ÚSqrtQuadraticDenomRulei>  z(integrate(poly(x)/sqrt(a+b*x+c*x**2), x)r   rJ  rK  rL  z
list[Expr]Úcoeffsc               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   Ú#SqrtQuadraticDenomRule.__annotate__F  s   € ÷ Fñ F�dñ Frn   c           	     	ó  aaa€ V P                   V P                  V P                  V P                  P	                  4       V P
                  3w  rpoo. oSP	                  4       o\        \        S4      ^,
          4       F³  p\        S4      ^,
          V,
          pSV,          W5,          ,          pSP                  V4       SV^,           ;;,          ^V,          ^,
          V,          ^,          V,          ,          uu&   SV^,           ;;,          V^,
          V,          V,          ,          uu&   Kµ  	  SR,          SR,          r‡\        WS,          ,           VS^,          ,          ,           4      p	WrV,          ^V,          ,          ,
          p
V
^ 8X  d   ^ pM4\        \        ^V	,          S4      RR7      pW¬P                  4       ,          p\        . VVV3R l\        \        S4      4       4       OWƒ,          N5!  V	,          V,           # )rg   F©Ú
degeneratec              3  ó€   <"  € T F3  pSV,          S\        S4      ^,
          V,
          ,          ,          x € K5  	  R# 5i©rg   N)Úlen)r»   ÚirV  Úresult_coeffsrR  s   & €€€rk   r¼   Ú.SqrtQuadraticDenomRule.eval.<locals>.<genexpr>^  s6   øé € ð 9Ù7˜ð # 1Õ% a¬#¨f«+°a­-¸­/Õ&:×:Ò:Û7ùs   ƒ;>r¨   éþÿÿÿ)rJ  rK  rL  rV  Úcopyrd   Úranger^  rî   r)   Úinverse_trig_ruleÚIntegralInfors   r   )rr   rJ  rK  rL  r_  ÚnÚcoeffÚdÚeÚsr’   ÚI0ÚsteprV  r`  rR  s   &            @@@rk   rs   ÚSqrtQuadraticDenomRule.evalF  sŒ  ú€ Ø!ŸV™V T§V¡V¨T¯V©V°T·[±[×5EÑ5EÓ5GÈÏÉÐVÑˆˆa�˜ð ˆØ—‘“ˆÜ”s˜6“{ 1•}Ö%ˆAÜ�F“˜A•˜a•ˆAØ˜1•I˜q�s•OˆEØ× Ñ  Ô'Ø�1�Q•3�K˜A˜a�C �E 1�9 Q�; uÕ,Õ,‹KØ�1�Q•3�K˜A˜a�C �7 5�=Õ(�Kñ &ð �b�z˜6 "�:ˆ1Ü��Q•3•�q˜˜A�•v•ÓˆØ�q•S˜!˜A�#•Y•;ˆØ�qŒ=Ø‰Bä$¤\°!°Aµ#°qÓ%9ÀeÔLˆDØŸ)™)›+Õ%ˆBÜð ?ö 9Ü#¤C¨Ó$6Ô7ó9ð ?Ø:;½#ó?Ø?@õAØCEõFð 	Frn   ri   Nrª   ri   rn   rk   rU  rU  >  s&   ‡ á2ØƒGØƒGØƒGØÓ÷Fñ Frn   rU  c                  óF   € ] tR tRt$ RtR]R&   R]R&   R]R&   R R ltR	tR
# )ÚSqrtQuadraticRuleib  z integrate(sqrt(a+b*x+c*x**2), x)r   rJ  rK  rL  c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚSqrtQuadraticRule.__annotate__i  s   € ÷ ñ �dñ rn   c                	óx   € \        \        V P                  V P                  4      R R7      pVP	                  4       # )FrZ  )Úsqrt_quadratic_rulerf  rc   rd   rs   )rr   rm  s   & rk   rs   ÚSqrtQuadraticRule.evali  s*   € Ü"¤<°·±ÀÇÁÓ#NÐ[`ÔaˆØ�y‰y‹{Ðrn   ri   Nrª   ri   rn   rk   rp  rp  b  s   ‡ á*ØƒGØƒGØƒG÷ñ rn   rp  c                  ó>   € ] tR tRt$ RtR]R&   R R ltR R ltR	tR
# )ÚAlternativeRulein  z Multiple ways to do integration.r´   Úalternativesc               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚAlternativeRule.__annotate__s  s   € ÷ +ñ +�dñ +rn   c                	óD   € V P                   ^ ,          P                  4       # ©é    )rx  rs   rq   s   &rk   rs   ÚAlternativeRule.evals  s   € Ø× Ñ  Õ#×(Ñ(Ó*Ð*rn   c               ó   € V ^8„  d   QhRR/# rw   ri   )rj   s   "rk   rl   rz  v  s   € ÷ Rñ R Dñ Rrn   c                	ó’   € \         ;QJ d&    R  V P                   4       F  '       g   K   R# 	  R# ! R  V P                   4       4      # )c              3  ó@   "  € T F  qP                  4       x € K  	  R # 5irp   rÃ   rº   s   & rk   r¼   Ú5AlternativeRule.contains_dont_know.<locals>.<genexpr>w  s   é € ÐQÑ?P°G×-Ñ-×/Ð/Ó?Pùr¾   TF)rÅ   rx  rq   s   &rk   rz   Ú"AlternativeRule.contains_dont_knowv  s7   € ß‹sÑQ¸t×?PÒ?PÓQ�sŒsÐQŠsÐQˆsÑQ¸t×?PÒ?PÓQÓQÐQrn   ri   NrŸ   ri   rn   rk   rw  rw  n  s   ‡ á*ØÓõ+÷Rñ Rrn   rw  c                  ó2   € ] tR tRtRtR R ltR R ltRtR# )	ÚDontKnowRuleiz  zLeave the integral as is.c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚDontKnowRule.__annotate__}  s   € ÷ 7ñ 7�dñ 7rn   c                	óB   € \        V P                  V P                  4      # rp   )rQ   rc   rd   rq   s   &rk   rs   ÚDontKnowRule.eval}  s   € Ü˜Ÿ™¨¯©Ó6Ð6rn   c               ó   € V ^8„  d   QhRR/# rw   ri   )rj   s   "rk   rl   r‡  €  s   € ÷ ñ  Dñ rn   c                	ó   € R # ©Tri   rq   s   &rk   rz   ÚDontKnowRule.contains_dont_know€  s   € Ùrn   ri   N)r|   r}   r~   r   rˆ   rs   rz   r�   ri   rn   rk   r…  r…  z  s   † á#õ7÷ñ rn   r…  c                  ó&   € ] tR tRtRtR R ltRtR# )ÚDerivativeRulei„  zintegrate(f'(x), x) -> f(x)c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚDerivativeRule.__annotate__‡  s   € ÷ @ñ @�dñ @rn   c                	ó0  € \        V P                  \        4      '       g   Q h\        V P                  P                  4      p\        V4       F&  w  pw  r4W0P                  8X  g   K  W4^,
          3W&    M	  \        V P                  P                  .VO5!  # ©r§   )Ú
isinstancerc   r   ÚlistÚvariable_countÚ	enumeraterd   Úexpr)rr   r–  r_  ÚvarÚcounts   &    rk   rs   ÚDerivativeRule.eval‡  sz   € Ü˜$Ÿ.™.¬*×5Ò5Ð5Ð5Ü˜dŸn™n×;Ñ;Ó<ˆÜ(¨Ö8‰OˆA‰|�Ø—m‘mÖ#Ø%(°!­)Ð$4�Ñ!Ùñ  9ô ˜$Ÿ.™.×-Ñ-Ð?°Ó?Ð?rn   ri   Nr�   ri   rn   rk   r�  r�  „  s   † á%÷@ñ @rn   r�  c                  óH   € ] tR tRt$ RtR]R&   R]R&   R R ltR	 R
 ltRtR# )ÚRewriteRulei‘  z;Rewrite integrand to another form that is easier to handle.r   Ú	rewrittenrb   r”   c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚRewriteRule.__annotate__—  rÿ   rn   c                	ó6   € V P                   P                  4       # rp   )r”   rs   rq   s   &rk   rs   ÚRewriteRule.eval—  s   € Ø�|‰|× Ñ Ó"Ð"rn   c               ó   € V ^8„  d   QhRR/# rw   ri   )rj   s   "rk   rl   r   š  rš   rn   c                	ó6   € V P                   P                  4       # rp   rœ   rq   s   &rk   rz   ÚRewriteRule.contains_dont_knowš  rž   rn   ri   NrŸ   ri   rn   rk   r�  r�  ‘  s   ‡ áEØƒOØƒMõ#÷1ñ 1rn   r�  c                  ó   € ] tR tRtRtRtR# )ÚCompleteSquareRuleiž  z7Rewrite a+b*x+c*x**2 to a-b**2/(4*c) + c*(x+b/(2*c))**2ri   N)r|   r}   r~   r   rˆ   r�   ri   rn   rk   r§  r§  ž  s   † áAÛrn   r§  c                  ó:   € ] tR tRt$ R]R&   R R ltR R ltRtR	# )
ÚPiecewiseRulei¤  z%Sequence[tuple[Rule, bool | Boolean]]Úsubfunctionsc               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚPiecewiseRule.__annotate__¨  s   € ÷ Dñ D�dñ Drn   c                	ó|   € \        V P                   UUu. uF  w  rVP                  4       V3NK  	  upp!  # u uppi rp   )r*   rª  rs   )rr   r”   Úconds   &  rk   rs   ÚPiecewiseRule.eval¨  sG   € ÜØ04×0AÒ0AôCÙ0A™}˜wð $ŸL™L›N¨DÓ1Ù0AòCñ Dð 	Dùó Cs   •8
c               ó   € V ^8„  d   QhRR/# rw   ri   )rj   s   "rk   rl   r¬  ¬  s   € ÷ Uñ U Dñ Urn   c                	ó’   € \         ;QJ d&    R  V P                   4       F  '       g   K   R# 	  R# ! R  V P                   4       4      # )c              3  óF   "  € T F  w  rVP                  4       x € K  	  R # 5irp   rÃ   )r»   r”   Ú_s   &  rk   r¼   Ú3PiecewiseRule.contains_dont_know.<locals>.<genexpr>­  s    é € ÐTÑBS±J°G�7×-Ñ-×/Ð/ÓBSùs   ‚!TF)rÅ   rª  rq   s   &rk   rz   Ú PiecewiseRule.contains_dont_know¬  s7   € ß‹sÑTÀ$×BSÒBSÓT�sŒsÐTŠsÐTˆsÑTÀ$×BSÒBSÓTÓTÐTrn   ri   N©r|   r}   r~   r   r€   rs   rz   r�   ri   rn   rk   r©  r©  ¤  s   ‡ à7Ó7õD÷Uñ Urn   r©  c                  óN   € ] tR tRt$ R]R&   R]R&   R]R&   R R ltR	 R
 ltRtR# )ÚHeavisideRulei°  r   ÚhargÚibndrb   r”   c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚHeavisideRule.__annotate__¶  s   € ÷ Wñ W�dñ Wrn   c                	óÂ   € V P                   P                  4       p\        V P                  4      WP	                  V P
                  V P                  4      ,
          ,          # rp   )r”   rs   r8   r¹  rÑ   rd   rº  )rr   rÒ   s   & rk   rs   ÚHeavisideRule.eval¶  s@   € ð
 —‘×"Ñ"Ó$ˆÜ˜Ÿ™Ó# v·±¸D¿M¹MÈ4Ï9É9Ó0UÕ'UÕVÐVrn   c               ó   € V ^8„  d   QhRR/# rw   ri   )rj   s   "rk   rl   r¼  ¾  rš   rn   c                	ó6   € V P                   P                  4       # rp   rœ   rq   s   &rk   rz   Ú HeavisideRule.contains_dont_know¾  rž   rn   ri   Nr¶  ri   rn   rk   r¸  r¸  °  s!   ‡ à
ƒJØ
ƒJØƒMõW÷1ñ 1rn   r¸  c                  óB   € ] tR tRt$ R]R&   R]R&   R]R&   R R ltRtR	# )
ÚDiracDeltaRuleiÂ  r   rg  rJ  rK  c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚDiracDeltaRule.__annotate__È  s   € ÷ (ñ (�dñ (rn   c                	óþ   € V P                   V P                  V P                  V P                  3w  rr4V^ 8X  d    \	        W#V,          ,           4      V,          # \        W#V,          ,           V^,
          4      V,          # r|  )rg  rJ  rK  rd   r8   r9   ©rr   rg  rJ  rK  rR  s   &    rk   rs   ÚDiracDeltaRule.evalÈ  s]   € Ø—V‘V˜TŸV™V T§V¡V¨T¯]©]Ð:‰
ˆˆaØ�Œ6Ü˜Q �s�UÓ# AÕ%Ð%Ü˜!˜a�C�%  1¥Ó% aÕ'Ð'rn   ri   N©r|   r}   r~   r   r€   rs   r�   ri   rn   rk   rÃ  rÃ  Â  s   ‡ àƒGØƒGØƒG÷(ñ (rn   rÃ  c                  ób   € ] tR tRt$ R]R&   R]R&   R]R&   R]R&   R]R	&   R
 R ltR R ltRtR# )ÚTrigSubstitutionRuleiÏ  r   ÚthetaÚfuncrž  rb   r”   zbool | BooleanÚrestrictionc               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   Ú!TrigSubstitutionRule.__annotate__×  s   € ÷ %
ñ %
�dñ %
rn   c                	óØ  € V P                   V P                  V P                  r2pVP                  \	        V4      ^\        V4      ,          4      pVP                  \        V4      ^\        V4      ,          4      pVP                  \        V4      ^\        V4      ,          4      p\        VP                  \        4      4      p\        V4      ^8X  g   Q hV^ ,          p\        W2,
          V4      p\        V4      ^8X  g   Q h\        V^ ,          4      w  rg\!        V\        4      '       d8   TpTp	\#        V^,          V^,          ,
          4      p
\%        V^ ,          4      pMƒ\!        V\
        4      '       d8   Tp
Tp	\#        V^,          V^,          ,
          4      p\'        V^ ,          4      pM6TpTp
\#        V^,          V^,          ,           4      p	\)        V^ ,          4      p\        V4      W‰,          3\        V4      W©,          3\        V4      WŠ,          3W3.p\+        V P,                  P/                  4       P                  V4      P1                  4       V P2                  34      # r“  )rÌ  rÍ  rd   rÑ   r1   r,   r0   r-   r/   r.   r•  Úfindr+   r^  rZ   rX   r”  r)   r3   r2   r4   r*   r”   rs   ÚtrigsimprÎ  )rr   rÌ  rÍ  rR  Útrig_functionÚrelationÚnumerÚdenomÚoppositeÚ
hypotenuseÚadjacentÚinverseÚsubstitutions   &            rk   rs   ÚTrigSubstitutionRule.eval×  sï  € ØŸ™ T§Y¡Y°·±�QˆØ�y‰yœ˜U› Q¤s¨5£z¥\Ó2ˆØ�y‰yœ˜U› Q¤s¨5£z¥\Ó2ˆØ�y‰yœ˜U› Q¤s¨5£z¥\Ó2ˆä˜TŸY™YÔ'<Ó=Ó>ˆÜ�=Ó! QÔ&Ð&Ð&Ø% aÕ(ˆÜ˜� =Ó1ˆÜ�8‹} Ô!Ð!Ð!Ü ¨¥Ó,‰ˆä�m¤S×)Ò)ØˆHØˆJÜ˜E 1�H u¨a¥xÕ/Ó0ˆHÜ˜8 A�;Ó'‰GÜ˜¤s×+Ò+ØˆHØˆJÜ˜E 1�H u¨a¥xÕ/Ó0ˆHÜ˜8 A�;Ó'‰GàˆHØˆHÜ˜e Q�h¨°­Õ1Ó2ˆJÜ˜8 A�;Ó'ˆGô �‹Z˜Õ,Ð-Ü�‹Z˜Õ,Ð-Ü�‹Z˜Õ*Ð+ØÐð	
ˆô Ø—‘×"Ñ"Ó$×)Ñ)¨,Ó7×@Ñ@ÓBÀD×DTÑDTÐUó
ð 	
rn   c               ó   € V ^8„  d   QhRR/# rw   ri   )rj   s   "rk   rl   rÐ  þ  rš   rn   c                	ó6   € V P                   P                  4       # rp   rœ   rq   s   &rk   rz   Ú'TrigSubstitutionRule.contains_dont_knowþ  rž   rn   ri   Nr¶  ri   rn   rk   rË  rË  Ï  s,   ‡ àƒKØ
ƒJØƒOØƒMØÓõ%
÷N1ñ 1rn   rË  c                  óF   € ] tR tRt$ RtR]R&   R]R&   R]R&   R R ltR	tR
# )Ú
ArctanRulei  zAintegrate(a/(b*x**2+c), x) -> a/b / sqrt(c/b) * atan(x/sqrt(c/b))r   rJ  rK  rL  c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚArctanRule.__annotate__	  ó   € ÷ 3ñ 3�dñ 3rn   c                	óì   € V P                   V P                  V P                  V P                  3w  rr4W,          \	        W2,          4      ,          \        V\	        W2,          4      ,          4      ,          # rp   )rJ  rK  rL  rd   r)   r4   rQ  s   &    rk   rs   ÚArctanRule.eval	  sJ   € Ø—V‘V˜TŸV™V T§V¡V¨T¯]©]Ð:‰
ˆˆaØ�s”T˜!�#“Y�¤ a¬¨Q­S«	¥kÓ!2Õ2Ð2rn   ri   Nrª   ri   rn   rk   râ  râ    s   ‡ áKØƒGØƒGØƒG÷3ñ 3rn   râ  c                  ó"   € ] tR tRt$ R]R&   RtR# )ÚOrthogonalPolyRulei  r   rg  ri   N©r|   r}   r~   r   r€   r�   ri   rn   rk   ré  ré    s   ‡ à‡Grn   ré  c                  ó8   € ] tR tRt$ R]R&   R]R&   R R ltRtR# )	Ú
JacobiRulei  r   rJ  rK  c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚJacobiRule.__annotate__  s   € ÷ :ñ :�dñ :rn   c           	     	óÒ  € V P                   V P                  V P                  V P                  3w  rr4\	        ^\        V^,           V^,
          V^,
          V4      ,          W,           V,           ,          \        W,           V,           ^ 4      3V\        V^ 4      3W#,           ^,           V^,          ,          ^,          W#,
          V,          ^,          ,           \        V^4      34      # rP  )rg  rJ  rK  rd   r*   rN   r   r   rÇ  s   &    rk   rs   ÚJacobiRule.eval  s«   € Ø—V‘V˜TŸV™V T§V¡V¨T¯]©]Ð:‰
ˆˆaÜØŒv�a˜!•e˜Q �U A¨¥E¨1Ó-Õ-¨q­u°q­yÕ9¼2¸a½eÀa½iÈÓ;KÐLØ”�1�a“ˆMØ�e�a�i˜˜A�Õ˜aÕ 1¥5¨!¥)¨A¥+Õ-¬r°!°Q«xÐ8ó:ð 	:rn   ri   NrÉ  ri   rn   rk   rì  rì    s   ‡ àƒGØƒG÷:ñ :rn   rì  c                  ó.   € ] tR tRt$ R]R&   R R ltRtR# )ÚGegenbauerRulei   r   rJ  c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚGegenbauerRule.__annotate__$  ó   € ÷ ñ �dñ rn   c                	óL  € V P                   V P                  V P                  r2p\        \	        V^,           V^,
          V4      ^V^,
          ,          ,          \        V^4      3\        V^,           V4      V^,           ,          \        VR4      3\        P                  R34      # r¦   )	rg  rJ  rd   r*   rM   r   rG   r   ÚZero)rr   rg  rJ  rR  s   &   rk   rs   ÚGegenbauerRule.eval$  s   € Ø—&‘&˜$Ÿ&™& $§-¡-ˆaˆÜÜ˜˜A�˜q 1�u aÓ(¨!¨Q°­U­)Õ4´b¸¸A³hÐ?Ü˜˜A�˜qÓ! 1 q¥5Õ)¬2¨a°«9Ð5Ü�V‰V�TˆNóð 	rn   ri   NrÉ  ri   rn   rk   rò  rò     s   ‡ àƒG÷ñ rn   rò  c                  ó"   € ] tR tRtR R ltRtR# )ÚChebyshevTRulei,  c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚChebyshevTRule.__annotate__.  rõ  rn   c                	ó*  € V P                   V P                  r!\        \        V^,           V4      V^,           ,          \        V^,
          V4      V^,
          ,          ,
          ^,          \	        \        V4      ^4      3V^,          ^,          R34      # )r§   T)rg  rd   r*   rG   r   r   ©rr   rg  rR  s   &  rk   rs   ÚChebyshevTRule.eval.  sz   € Ø�v‰v�t—}‘}ˆ1ÜÜ˜˜Q� Ó" A¨¥EÕ*Ü˜˜Q� Ó" A¨¥EÕ*õ+Ø,-õ.Ü/1´#°a³&¸!«}ð>à��T�!�V�TˆNóð 	rn   ri   N©r|   r}   r~   r   rs   r�   ri   rn   rk   rú  rú  ,  s   † ÷ñ rn   rú  c                  ó"   € ] tR tRtR R ltRtR# )ÚChebyshevURulei6  c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚChebyshevURule.__annotate__8  s   € ÷ ñ �dñ rn   c                	ó¾   € V P                   V P                  r!\        \        V^,           V4      V^,           ,          \	        VR4      3\
        P                  R34      # r¦   )rg  rd   r*   rG   r   r   r÷  rþ  s   &  rk   rs   ÚChebyshevURule.eval8  sK   € Ø�v‰v�t—}‘}ˆ1ÜÜ˜˜A�˜qÓ! 1 q¥5Õ)¬2¨a°«9Ð5Ü�V‰V�TˆNóð 	rn   ri   Nr   ri   rn   rk   r  r  6  s   † ÷ñ rn   r  c                  ó"   € ] tR tRtR R ltRtR# )ÚLegendreRulei?  c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚLegendreRule.__annotate__A  s   € ÷ Bñ B�dñ Brn   c                	ó°   € V P                   V P                  r!\        V^,           V4      \        V^,
          V4      ,
          ^V,          ^,           ,          # r“  )rg  rd   rI   rþ  s   &  rk   rs   ÚLegendreRule.evalA  s?   € Ø�v‰v�t—}‘}ˆ1Ü˜˜A�˜qÓ!¤H¨Q°­U°AÓ$6Õ6¸¸1½¸q½ÕAÐArn   ri   Nr   ri   rn   rk   r  r  ?  s   † ÷Bñ Brn   r  c                  ó"   € ] tR tRtR R ltRtR# )ÚHermiteRuleiF  c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚHermiteRule.__annotate__H  s   € ÷ -ñ -�dñ -rn   c                	ó€   € V P                   V P                  r!\        V^,           V4      ^V^,           ,          ,          # r“  )rg  rd   rJ   rþ  s   &  rk   rs   ÚHermiteRule.evalH  s/   € Ø�v‰v�t—}‘}ˆ1Ü�q˜1•u˜aÓ  ! Q¨¥U¥)Õ,Ð,rn   ri   Nr   ri   rn   rk   r  r  F  s   † ÷-ñ -rn   r  c                  ó"   € ] tR tRtR R ltRtR# )ÚLaguerreRuleiM  c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚLaguerreRule.__annotate__O  rå  rn   c                	óv   € V P                   V P                  r!\        W4      \        V^,           V4      ,
          # r“  )rg  rd   rK   rþ  s   &  rk   rs   ÚLaguerreRule.evalO  s+   € Ø�v‰v�t—}‘}ˆ1Ü˜‹~¤¨¨Q­°Ó 2Õ2Ð2rn   ri   Nr   ri   rn   rk   r  r  M  ó   † ÷3ñ 3rn   r  c                  ó.   € ] tR tRt$ R]R&   R R ltRtR# )ÚAssocLaguerreRuleiT  r   rJ  c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚAssocLaguerreRule.__annotate__X  s   € ÷ Fñ F�dñ Frn   c                	óv   € \        V P                  ^,           V P                  ^,
          V P                  4      ) # r“  )rL   rg  rJ  rd   rq   s   &rk   rs   ÚAssocLaguerreRule.evalX  s(   € Ü˜tŸv™v¨�z¨4¯6©6°A­:°t·}±}ÓEÐEÐErn   ri   NrÉ  ri   rn   rk   r  r  T  s   ‡ àƒG÷Fñ Frn   r  c                  ó,   € ] tR tRt$ R]R&   R]R&   RtR# )ÚIRulei\  r   rJ  rK  ri   Nrê  ri   rn   rk   r!  r!  \  s   ‡ àƒGØ‡Grn   r!  c                  ó"   € ] tR tRtR R ltRtR# )ÚCiRuleib  c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚCiRule.__annotate__d  ó   € ÷ /ñ /�dñ /rn   c                	óÖ   € V P                   V P                  V P                  r2p\        V4      \	        W,          4      ,          \        V4      \        W,          4      ,          ,
          # rp   )rJ  rK  rd   r,   r>   r-   r@   ©rr   rJ  rK  rR  s   &   rk   rs   ÚCiRule.evald  ó@   € Ø—&‘&˜$Ÿ&™& $§-¡-ˆaˆÜ�1‹v”b˜�“g�~¤ A£¤r¨!­#£w¥Õ.Ð.rn   ri   Nr   ri   rn   rk   r#  r#  b  ó   † ÷/ñ /rn   r#  c                  ó"   € ] tR tRtR R ltRtR# )ÚChiRuleii  c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚChiRule.__annotate__k  rå  rn   c                	óÖ   € V P                   V P                  V P                  r2p\        V4      \	        W,          4      ,          \        V4      \        W,          4      ,          ,           # rp   )rJ  rK  rd   r#   r?   r&   rA   r(  s   &   rk   rs   ÚChiRule.evalk  óB   € Ø—&‘&˜$Ÿ&™& $§-¡-ˆaˆÜ�A‹w”s˜1�3“xÕ¤$ q£'¬#¨a­c«(Õ"2Õ2Ð2rn   ri   Nr   ri   rn   rk   r-  r-  i  r  rn   r-  c                  ó"   € ] tR tRtR R ltRtR# )ÚEiRuleip  c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚEiRule.__annotate__r  s   € ÷ ñ �dñ rn   c                	óŠ   € V P                   V P                  V P                  r2p\        V4      \	        W,          4      ,          # rp   )rJ  rK  rd   r   rB   r(  s   &   rk   rs   ÚEiRule.evalr  s-   € Ø—&‘&˜$Ÿ&™& $§-¡-ˆaˆÜ�1‹v”b˜�“g�~Ðrn   ri   Nr   ri   rn   rk   r4  r4  p  s   † ÷ñ rn   r4  c                  ó"   € ] tR tRtR R ltRtR# )ÚSiRuleiw  c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚSiRule.__annotate__y  r&  rn   c                	óÖ   € V P                   V P                  V P                  r2p\        V4      \	        W,          4      ,          \        V4      \        W,          4      ,          ,           # rp   )rJ  rK  rd   r-   r>   r,   r@   r(  s   &   rk   rs   ÚSiRule.evaly  r*  rn   ri   Nr   ri   rn   rk   r:  r:  w  r+  rn   r:  c                  ó"   € ] tR tRtR R ltRtR# )ÚShiRulei~  c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚShiRule.__annotate__€  rå  rn   c                	óÖ   € V P                   V P                  V P                  r2p\        V4      \	        W,          4      ,          \        V4      \        W,          4      ,          ,           # rp   )rJ  rK  rd   r&   r?   r#   rA   r(  s   &   rk   rs   ÚShiRule.eval€  r2  rn   ri   Nr   ri   rn   rk   r@  r@  ~  r  rn   r@  c                  ó"   € ] tR tRtR R ltRtR# )ÚLiRulei…  c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚLiRule.__annotate__‡  s   € ÷ ñ �dñ rn   c                	ó†   € V P                   V P                  V P                  r2p\        W,          V,           4      V,          # rp   )rJ  rK  rd   rC   r(  s   &   rk   rs   ÚLiRule.eval‡  s-   € Ø—&‘&˜$Ÿ&™& $§-¡-ˆaˆÜ�!•#˜•'‹{˜1�}Ðrn   ri   Nr   ri   rn   rk   rF  rF  …  s   † ÷ñ rn   rF  c                  óB   € ] tR tRt$ R]R&   R]R&   R]R&   R R ltRtR	# )
ÚErfRuleiŒ  r   rJ  rK  rL  c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚErfRule.__annotate__’  s   € ÷ 	.ñ 	.�dñ 	.rn   c                	ó6  € V P                   V P                  V P                  V P                  3w  rr4VP                  '       Ed@   \        \        \        P                  4      \        V) 4      ,          ^,          \        W2^,          ^V,          ,          ,
          4      ,          \        RV,          V,          V,
          ^\        V) 4      ,          ,          4      ,          V^ 8  3\        \        P                  4      \        V4      ,          ^,          \        W2^,          ^V,          ,          ,
          4      ,          \        ^V,          V,          V,           ^\        V4      ,          ,          4      ,          R34      # \        \        P                  4      \        V4      ,          ^,          \        W2^,          ^V,          ,          ,
          4      ,          \        ^V,          V,          V,           ^\        V4      ,          ,          4      ,          # )rg   Trb  )rJ  rK  rL  rd   Úis_extended_realr*   r)   r   ÚPir   r:   r;   rQ  s   &    rk   rs   ÚErfRule.eval’  sa  € Ø—V‘V˜TŸV™V T§V¡V¨T¯]©]Ð:‰
ˆˆaØ××ÑÜÜ”a—d‘d“œD ! ›HÕ$ QÕ&¬¨Q°Aµ°q¸µsµ­^Ó)<Õ<Ü˜˜A�˜a� !� a¬¨a¨R«¥jÕ1Ó2õ3Ø45¸±Eð;ä”a—d‘d“œD ›GÕ# AÕ%¬¨A°1µ°a¸µcµ
­NÓ(;Õ;Ü˜!˜A�#˜a�% !�) a¬¨Q«¥iÕ0Ó1õ2Ø37ð9ó:ð :ô
 ”A—D‘D‹zœ$˜q›'Õ! !Õ#¤c¨!°­d°A°aµC­j­.Ó&9Õ9Ü�a˜•c˜!•e˜a•i !¤D¨£G¥)Õ,Ó-õ.ð 	.rn   ri   NrÉ  ri   rn   rk   rL  rL  Œ  s   ‡ àƒGØƒGØƒG÷	.ñ 	.rn   rL  c                  óB   € ] tR tRt$ R]R&   R]R&   R]R&   R R ltRtR	# )
ÚFresnelCRuleiž  r   rJ  rK  rL  c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚFresnelCRule.__annotate__¤  ó   € ÷ Fñ F�dñ Frn   c           
     	ó¸  € V P                   V P                  V P                  V P                  3w  rr4\	        \
        P                  4      \	        ^V,          4      ,          \        V^,          ^V,          ,          V,
          4      \        ^V,          V,          V,           \	        ^V,          \
        P                  ,          4      ,          4      ,          \        V^,          ^V,          ,          V,
          4      \        ^V,          V,          V,           \	        ^V,          \
        P                  ,          4      ,          4      ,          ,           ,          # rP  )rJ  rK  rL  rd   r)   r   rQ  r,   r<   r-   r=   rQ  s   &    rk   rs   ÚFresnelCRule.eval¤  óÔ   € Ø—V‘V˜TŸV™V T§V¡V¨T¯]©]Ð:‰
ˆˆaÜ”A—D‘D‹zœ$˜q �s›)Õ#Ü��1•�a˜•c•
˜Q•Ó¤¨!¨A­#¨a­%°!­)´T¸!¸A½#¼a¿d¹d½(³^Õ)CÓ DÕDÜ��1•�a˜•c•
˜Q•Ó¤¨!¨A­#¨a­%°!­)´T¸!¸A½#¼a¿d¹d½(³^Õ)CÓ DÕDõEõFð 	Frn   ri   NrÉ  ri   rn   rk   rT  rT  ž  ó   ‡ àƒGØƒGØƒG÷Fñ Frn   rT  c                  óB   € ] tR tRt$ R]R&   R]R&   R]R&   R R ltRtR	# )
ÚFresnelSRulei«  r   rJ  rK  rL  c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚFresnelSRule.__annotate__±  rW  rn   c           
     	ó¸  € V P                   V P                  V P                  V P                  3w  rr4\	        \
        P                  4      \	        ^V,          4      ,          \        V^,          ^V,          ,          V,
          4      \        ^V,          V,          V,           \	        ^V,          \
        P                  ,          4      ,          4      ,          \        V^,          ^V,          ,          V,
          4      \        ^V,          V,          V,           \	        ^V,          \
        P                  ,          4      ,          4      ,          ,
          ,          # rP  )rJ  rK  rL  rd   r)   r   rQ  r,   r=   r-   r<   rQ  s   &    rk   rs   ÚFresnelSRule.eval±  rZ  rn   ri   NrÉ  ri   rn   rk   r]  r]  «  r[  rn   r]  c                  ó8   € ] tR tRt$ R]R&   R]R&   R R ltRtR# )	ÚPolylogRulei¸  r   rJ  rK  c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚPolylogRule.__annotate__½  s   € ÷ ;ñ ;�dñ ;rn   c                	ór   € \        V P                  ^,           V P                  V P                  ,          4      # r“  )rP   rK  rJ  rd   rq   s   &rk   rs   ÚPolylogRule.eval½  s$   € Ü�t—v‘v •z 4§6¡6¨D¯M©MÕ#9Ó:Ð:rn   ri   NrÉ  ri   rn   rk   rc  rc  ¸  s   ‡ àƒGØƒG÷;ñ ;rn   rc  c                  ó8   € ] tR tRt$ R]R&   R]R&   R R ltRtR# )	ÚUpperGammaRuleiÁ  r   rJ  rj  c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚUpperGammaRule.__annotate__Æ  s   € ÷ ?ñ ?�dñ ?rn   c                	óÔ   € V P                   V P                  V P                  r2pW2,          V) V,          V) ,          ,          \        V^,           V) V,          4      ,          V,          # r“  )rJ  rj  rd   rD   )rr   rJ  rj  rR  s   &   rk   rs   ÚUpperGammaRule.evalÆ  sM   € Ø—&‘&˜$Ÿ&™& $§-¡-ˆaˆØ�t˜�r˜!•t ˜r•lÕ"¤Z°°Aµ¸°r¸!µtÓ%<Õ<¸QÕ>Ð>rn   ri   NrÉ  ri   rn   rk   ri  ri  Á  s   ‡ àƒGØƒG÷?ñ ?rn   ri  c                  ó8   € ] tR tRt$ R]R&   R]R&   R R ltRtR# )	ÚEllipticFRuleiË  r   rJ  ri  c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚEllipticFRule.__annotate__Ð  ó   € ÷ Eñ E�dñ Ern   c                	ó˜   € \        V P                  V P                  V P                  ,          4      \	        V P                  4      ,          # rp   )rF   rd   ri  rJ  r)   rq   s   &rk   rs   ÚEllipticFRule.evalÐ  ó,   € Ü˜$Ÿ-™-¨¯©°·±­Ó7¼¸T¿V¹V»ÕDÐDrn   ri   NrÉ  ri   rn   rk   ro  ro  Ë  ó   ‡ àƒGØƒG÷Eñ Ern   ro  c                  ó8   € ] tR tRt$ R]R&   R]R&   R R ltRtR# )	ÚEllipticERuleiÔ  r   rJ  ri  c               ó   € V ^8„  d   QhRR/# rf   ri   )rj   s   "rk   rl   ÚEllipticERule.__annotate__Ù  rr  rn   c                	ó˜   € \        V P                  V P                  V P                  ,          4      \	        V P                  4      ,          # rp   )rE   rd   ri  rJ  r)   rq   s   &rk   rs   ÚEllipticERule.evalÙ  ru  rn   ri   NrÉ  ri   rn   rk   rx  rx  Ô  rv  rn   rx  c                  ó,   € ] tR tRt$ R]R&   R]R&   RtR# )rf  iÝ  r   rc   r   Úsymbolri   Nrê  ri   rn   rk   rf  rf  Ý  s   ‡ ØƒOØ‡Nrn   rf  c                ó  a€ V P                   '       Edá   V P                   ^ ,          p\        V \        4      '       d)   VP                  S4      \	        V4      ^,          ,          # \        V \
        4      '       d*   VP                  S4      ) \        V4      ^,          ,          # \        V \        4      '       d2   VP                  S4      \	        V4      ,          \        V4      ,          # \        V \        4      '       d3   VP                  S4      ) \        V4      ,          \        V4      ,          # \        V \        4      '       d    \        V3R lV P                    4       4      # \        V \        4      '       dw   \        V P                   4      ^8X  d]   \        V P                   ^ ,          \        4      '       d6   V P                   ^ ,          \        V P                   ^,          S4      ,          # V P                  S4      # )a	  Derivative of f in form expected by find_substitutions

SymPy's derivatives for some trig functions (like cot) are not in a form
that works well with finding substitutions; this replaces the
derivatives for those particular forms with something that works better.

c              3  ó<   <"  € T F  p\        VS4      x € K  	  R # 5irp   )Úmanual_diff©r»   Úargr~  s   & €rk   r¼   Úmanual_diff.<locals>.<genexpr>õ  s   øé € ÐB¹6°C”{ 3¨×/Ð/»6ùó   ƒ)Úargsr”  r.   Údiffr1   r/   r0   r   Úsumr   r^  r   r�  )Úfr~  rƒ  s   &f rk   r�  r�  â  sR  ø€ ð 	‡v‡v�vØ�f‰f�Q�iˆÜ�aœ×ÒØ—8‘8˜FÓ#¤c¨#£h°¥kÕ1Ð1Ü˜œ3×ÒØ—H‘H˜VÓ$Ð$¤s¨3£x°¥{Õ2Ð2Ü˜œ3×ÒØ—8‘8˜FÓ#¤c¨#£hÕ.´°S³Õ9Ð9Ü˜œ3×ÒØ—H‘H˜VÓ$Ð$¤s¨3£xÕ/´#°c³(Õ:Ð:Ü˜œ3×ÒÜÔB¸1¿6º6ÓBÓBÐBÜ˜œ3×ÒÜ�1—6‘6‹{˜aÔ¤J¨q¯v©v°a­y¼&×$AÒ$AØ—v‘v˜a•y¤;¨q¯v©v°a­y¸&Ó#AÕAÐAØ�6‰6�&‹>Ðrn   c                ó*  aa€ \        V4      ^8X  dT   V^ ,          p\        V\        \        34      '       d   VP	                  4       pM<\        V4      '       g   \        R4      hM\        V4      ^8X  d   V.pM\        R4      h. pV Fg  w  po\        V\        4      '       g   K  VP                  ^ ,          oV P                  V3R lV3R l4      p VP                  S\        S4      34       Ki  	  V P                  \        V4      V,           4      # )zb
A wrapper for `expr.subs(*args)` with additional logic for substitution
of invertible functions.
z(Expected an iterable of (old, new) pairsz$subs accepts either 1 or 2 argumentsc                óJ   <€ V P                   ;'       d    V P                  S8H  # rp   )rÏ   r¢   )rR  Úx0s   &€rk   Ú<lambda>Úmanual_subs.<locals>.<lambda>  s   ø€ ¨!¯(©(×*CÐ*C°q·v±vÀ±|Ð*Crn   c                ó<   <€ \        V P                   S,          4      # rp   )r   )rR  Únews   &€rk   r�  rŽ    s   ø€ œ#˜aŸe™e C�iœ.rn   )r^  r”  r   r   Úitemsr_   Ú
ValueErrorr    r†  Úreplacerî   r   rÑ   r•  )r˜  r†  ÚsequenceÚnew_subsÚoldr�  rŒ  s   &*   @@rk   Úmanual_subsr—  û  sá   ù€ ô
 ˆ4ƒy�A„~Ø˜•7ˆÜ�h¤¤w ×0Ò0Ø—~‘~Ó'‰HÜ˜(×#Ò#ÜÐGÓHÐHð $ä	ˆT‹�aŒØ�6‰äÐ?Ó@Ð@à€HÛ‰ˆˆSÜ�cœ3×Ôð
 —‘˜!•ˆBØ—<‘<Ô CÜ(ó*ˆDà�O‰O˜R¤ S£˜NÖ+ñ ð �9‰9”T˜(“^ hÕ.Ó/Ð/rn   c                óp  a aaa€ . pV VV3R  lpR V3R llpVV3R lo\        \        P                  S! S 4      V! S 4      ,           4      4       Fb  pVS8X  d   K  \        VS4      pV! Wg4      pVRJg   K(  Vw  r˜VS P	                  SS4      8X  d   KE  WiV3p
W£9  g   KQ  VP                  V
4       Kd  	  V# )c                óâ  <€ V^ 8X  d   R# SV,          p\        RP                  W S4      4       \        W S4      P                  4       pVP	                  S4      '       d   R# SP                  S4      '       df   VP                  S4      '       dO   \        V3R lSP                  4        4       4      p\        V3R lVP                  4        4       4      pWC8”  d   R# VP                  SRR7      # )r}  Fz!substituted: {}, u: {}, u_var: {}c              3  ó<   <"  € T F  p\        VS4      x € K  	  R # 5irp   ©rT   )r»   Útr~  s   & €rk   r¼   Ú;find_substitutions.<locals>.test_subterm.<locals>.<genexpr>-  s   øé € ÐSÑ8R°1œV A v×.Ð.Ó8Rùr…  c              3  ó<   <"  € T F  p\        VS4      x € K  	  R # 5irp   r›  )r»   rœ  rÉ   s   & €rk   r¼   r�  .  s   øé € ÐSÑ6R°œF 1 e×,Ð,Ó6Rùr…  )Úas_Add)	r`   rj   r—  ÚcancelÚhas_freeÚis_rational_functionÚmaxÚas_numer_denomÚas_independent)rÚ   Úu_diffÚsubstitutedÚ
deg_beforeÚ	deg_afterrc   r~  rÉ   s   &&   €€€rk   Útest_subtermÚ(find_substitutions.<locals>.test_subterm"  sÉ   ø€ Ø�QŒ;ÙØ &Õ(ˆÜÐ1×8Ñ8¸ÈÓOÔPÜ! +°%Ó8×?Ñ?ÓAˆà×Ñ ×'Ò'Ùà×)Ñ)¨&×1Ò1°k×6VÑ6VÐW\×6]Ò6]ÜÔS¸	×8PÑ8PÔ8RÓSÓSˆJÜÔS°k×6PÑ6PÔ6RÓSÓSˆIØÔ%ÙØ×)Ñ)¨%¸Ð)Ó>Ð>rn   c               ó   € V ^8„  d   QhRR/# )rg   Útermr   ri   )rj   s   "rk   rl   Ú(find_substitutions.<locals>.__annotate__3  s   € ÷ ñ ˜4ñ rn   c                óª  <€ . p. p\        R R .R7      pV P                  \        4       Fs  pVP                  ^ ,          pSVP                  9  d   K)  VP                  VS,          4      pV'       d   VP                  Wc,          4       Kb  VP                  V4       Ku  	  V'       d+   VP                  \        \        V4      S,          4      4       V# )rg  c                ó   € V P                   # rp   )Ú
is_Integer©rg  s   &rk   r�  Ú:find_substitutions.<locals>.exp_subterms.<locals>.<lambda>6  s   € ¨A¯LªLrn   ©Ú
properties)r   rÒ  r   r†  Úfree_symbolsÚmatchrî   rV   )r­  Úlinear_coeffsÚtermsrg  rÓ   rƒ  r·  r~  s   &      €rk   Úexp_subtermsÚ(find_substitutions.<locals>.exp_subterms3  s£   ø€ ØˆØˆÜ�Ñ"8Ð!9Ô:ˆØ—I‘Iœc–NˆDØ—)‘)˜A•,ˆCØ˜S×-Ñ-Ô-ÙØ—I‘I˜a �hÓ'ˆEßØ×$Ñ$ U¥XÖ.à—‘˜TÖ"ñ #÷ Ø�L‰LœœX mÓ4°VÕ;Ó<Ô=Øˆrn   c           
     ó¸  <€ \        V \        \        .\        O\        N\
        N\        N54      '       d   V P                  ^ ,          .# \        V \        \        \        \        \        34      '       d   V P                  ^,          .# \        V \        \        34      '       d   V P                  ^,          .# \        V \        4      '       d   V P                  ^,          .# \        V \         4      '       d@   . pV P                   F+  pVP#                  V4       VP%                  S! V4      4       K-  	  V# \        V \&        4      '       Ed'   V P                   Uu. uF  q3P)                  S4      '       g   K  VNK  	  ppV P                  P*                  '       dÖ   TP%                  \-        V P                  4       Uu. uFE  p^Tu;8  d$   \/        V P                  ^,          4      8  g   K.  M K2  V P0                  V,          NKG  	  up4       V P0                  P2                  '       dF   TP%                  S! V P0                  4       Uu. uF  pVP4                  '       g   K  VNK  	  up4       V# \        V \6        4      '       d@   . pV P                   F+  pVP#                  V4       VP%                  S! V4      4       K-  	  V# . # u upi u upi u upi r|  )r”  r+   r!   Úinverse_trig_functionsr   r    r8   r†  rG   rH   rI   rJ   rK   rM   rL   rN   r   rî   Úextendr   Úhasr±  rS   Úabsr¢   Úis_AddrÏ   r   )r­  ÚrrÚ   rƒ  ri  rœ  Úpossible_subtermsr~  s   &     €€rk   rÃ  Ú-find_substitutions.<locals>.possible_subtermsD  sC  ø€ Ü�dÔ2Ô4Fð 2Ü4ð2ä ð2ä"%ð2ä'0ñ2÷ 3ò 3ð —I‘I˜a•L�>Ð!Ü˜œz¬:Ü ¤'¬8ð5÷ 6ò 6à—I‘I˜a•L�>Ð!Ü˜œz¬>Ð:×;Ò;Ø—I‘I˜a•L�>Ð!Ü˜œf×%Ò%Ø—I‘I˜a•L�>Ð!Ü˜œc×"Ò"ØˆAØ—Y”Y�Ø—‘˜”Ø—‘Ñ*¨1Ó-Ö.ñ ð ˆHÜ˜œc×"Ó"Ø $§	¢	Ó=¡	˜¯W©W°V¯_—�¡	ˆAÐ=Ø�x‰x×"×"Ð"Ø—‘´¸T¿X¹XÔ0Fó 2Ñ0F¨1Ø˜1Ö0œs 4§9¡9¨Q¥<Ó0Ñ0ô 'Ù0ñ '˜$Ÿ)™) QŸ,˜,Ñ0Fñ 2ô 3à—9‘9×#×#Ð#Ø—H‘HÑ):¸4¿9¹9Ô)Eó %Ñ)E AØŸ8�8÷  ˜aÑ)Eñ %ô &àˆHÜ˜œc×"Ò"ØˆAØ—y”y�Ø—‘˜”Ø—‘Ñ*¨3Ó/Ö0ñ !ð ˆHØˆ	ùò >ùò2ùò%s*   ÅKÅ;KÇ+KÇ1KÇ5KÉKÉ'KF)r•  ÚdictÚfromkeysr�  rÑ   rî   )rc   r~  rÉ   Úresultsrª  rº  rÚ   r¦  Únew_integrandr’   rÜ  rÃ  s   fff        @rk   Úfind_substitutionsrÉ    s±   û€ Ø€G÷?÷"ð ö"!ôF ”$—-‘-Ñ 1°)Ó <¹|ÈIÓ?VÕ VÓWÖXˆØ�Œ;ÙÜ˜Q Ó'ˆÙ$ QÓ/ˆØ Õ%Ø&3Ñ#ˆHØ 	§¡¨v°uÓ =Ô=ÙØ¨Ð7ˆLØÖ*Ø—‘˜|Ö,ñ Yð €Nrn   c                ó   a a€ V V3R lpV# )z$Strategy that rewrites an integrand.c                óî   <€ V w  r\        R P                  VSV4      4       S! V !  '       dH   S! V !  pW18w  d:   \        W24      p\        V\        4      '       g   V'       d   \        WW44      # R# R# R# R# )z/Integral: {} is rewritten with {} on symbol: {}N)r`   rj   Úintegral_stepsr”  r…  r�  )Úintegralrc   r~  rž  r”   r^   Úrewrites   &    €€rk   Ú	_rewriterÚrewriter.<locals>._rewriterx  sy   ø€ Ø$Ñˆ	ÜÐ?×FÑFÀyÐRYÐ[aÓbÔcÙ�h×ÐÙ Ñ*ˆIØÔ%Ü(¨Ó;�Ü! '¬<×8Ò8¿WÜ& y¸)ÓMÐMñ >EÑ8ñ &ñ  rn   ri   )r^   rÎ  rÏ  s   ff rk   ÚrewriterrÑ  v  s   ù€ öNð Ðrn   c                ó   a a€ V V3R lpV# )zAStrategy that rewrites an integrand based on some other criteria.c           	     óÔ   <€ V w  rVw  r#\        R P                  VSW04      4       V \        V4      ,           pS! V!  '       d%   S! V!  pWR8w  d   \        W#V\	        WS4      4      # R# R# )z@Integral: {} is rewritten with {} on symbol: {} and criteria: {}N)r`   rj   r•  r�  rÌ  )ÚcriteriarÍ  rc   r~  r†  rž  r^   rÎ  s   &     €€rk   Ú_proxy_rewriterÚ'proxy_rewriter.<locals>._proxy_rewriter…  su   ø€ Ø%ÑˆØ$Ñˆ	ÜÐP×WÑWÐXaÐcjÐlrÓ}Ô~Øœ$˜x›.Õ(ˆÙ�d×ÐÙ ™ˆIØÔ%Ü" 9°iÄÐPYÓAbÓcÐcñ &ñ rn   ri   )r^   rÎ  rÕ  s   ff rk   Úproxy_rewriterr×  ƒ  s   ù€ ödð Ðrn   c                ó   a € V 3R lpV# )z4Apply the rule that matches the condition, else Nonec                ój   <€ SP                  4        F  w  rV! V 4      '       g   K  V! V 4      u # 	  R # rp   )r‘  )r˜  Úkeyrð   Ú
conditionss   &  €rk   Úmultiplexer_rlÚ#multiplexer.<locals>.multiplexer_rl’  s+   ø€ Ø#×)Ñ)Ö+‰IˆCÙ�4�yŒyÙ˜D“zÒ!ó ,rn   ri   )rÛ  rÜ  s   f rk   ÚmultiplexerrÞ  �  s   ø€ õ"ð Ðrn   c                 ó   a € V 3R lpV# )zHStrategy that makes an AlternativeRule out of multiple possible results.c                óø  <€ . p^ p\        R4       S Fq  pV^,           p\        RP                  W#4      4       V! V 4      pV'       g   K8  \        V\        4      '       d   KP  W@8w  g   KX  WA9  g   K`  VP	                  V4       Ks  	  \        V4      ^8X  d
   V^ ,          # V'       dM   V Uu. uF  q3P                  4       '       d   K  VNK  	  ppV'       d   \        . V OVN5!  # \        . V OVN5!  # R# u upi )r}  zList of Alternative RulesúRule {}: {}N)r`   rj   r”  r…  rî   r^  rz   rw  )rÍ  Úaltsrš  rð   rÒ   ÚdoableÚruless   &     €rk   Ú_alternativesÚ#alternatives.<locals>._alternativesš  sÖ   ø€ ØˆØˆÜÐ)Ô*ÛˆDØ˜A•IˆEÜ�-×&Ñ& uÓ3Ô4á˜(“^ˆFß‘œz¨&´,×?Ô?ØÖ" vÖ'9Ø—‘˜FÖ#ñ ô ˆt‹9˜Œ>Ø˜•7ˆNßÙ'+ÓM¡t˜t×3JÑ3J×3L—d�d¡tˆFÐMßÜ&Ð9¨Ð9°&Ó9Ð9ä&Ð7¨Ð7°$Ó7Ð7ñ ùÚMs   Â-C7Ã	C7ri   )rä  rå  s   j rk   rx  rx  ˜  s   ø€ õ8ð( Ðrn   c                ó   € \        V !  # rp   )rŠ   ©rÍ  s   &rk   Úconstant_ruleré  °  ó   € Ü˜Ñ"Ð"rn   c           
     ó<  € V w  rVP                  4       w  r4W$P                  9  dF   \        V\        4      '       d0   \	        V^,           4      ^ 8X  d   \        WV4      # \        WW44      # W#P                  9  d¡   \        V\        4      '       d‰   \        WW44      p\        \        V4      P                  4      '       d   V# \        V4      P                  '       d   \        ^V4      # \        WV\        \        V4      ^ 4      3\        ^V4      R3.4      # R# R# )r§   TN)rÐ   r¶  r”  r   rY   r7  r¡   r1  r   r    Úis_zerorŠ   r©  r   )rÍ  rc   r~  r¢   Úexptrð   s   &     rk   Ú
power_rulerî  ³  s÷   € Ø Ñ€IØ×&Ñ&Ó(�J€Dà×&Ñ&Ô&¬:°d¼F×+CÒ+CÜ�D˜1•HÓ Ô"Ü! )°TÓ:Ð:Ü˜¨DÓ7Ð7Ø	×(Ñ(Ô	(¬Z¸¼f×-EÒ-EÜ�y¨$Ó5ˆä”S˜“Y×&Ñ&×'Ò'ØˆKÜ�‹Y××ÐÜ  6Ó*Ð*ä˜YØ”2”c˜$“i Ó#Ð$Ü˜!˜VÓ$ dÐ+ð1
ó ð 	ñ .FÑ	(rn   c                ó    € V w  r\        VP                  ^ ,          \        4      '       d#   \        W\        VP                  ^ ,          4      # R# ©r}  N)r”  r†  r   r1  r   ©rÍ  rc   r~  s   &  rk   Úexp_rulerò  È  s=   € Ø Ñ€IÜ�)—.‘. Õ#¤V×,Ò,Ü�y¬!¨Y¯^©^¸AÕ->Ó?Ð?ñ -rn   c                ó`  a€ \         \        \        \        \        \
        \        \        \        \        \        \        \        \        \        \        /p\         ^\        ^\        ^/pV w  poV F»  p\!        W44      '       g   K  VP#                  V^4      pVP$                  V,          SJ g   KA  \&        ;QJ d,    V3R lVP$                  RV  4       F  '       g   K   RM!	  RM! V3R lVP$                  RV  4       4      '       d   K�  W,          ! VS.VP$                  RV O5!  u # 	  R# )é   c              3  óD   <"  € T F  qP                  S4      x € K  	  R # 5irp   ©r¿  )r»   râ   r~  s   & €rk   r¼   Ú'orthogonal_poly_rule.<locals>.<genexpr>ã  s   øé € ÐFÑ+E a—E‘E˜&—M�MÓ+Eùs   ƒ NTF)rN   rì  rM   rò  rG   rú  rH   r  rI   r  rJ   r  rK   r  rL   r  r”  Úgetr†  rÅ   )rÍ  Úorthogonal_poly_classesÚorthogonal_poly_var_indexrc   ÚklassÚ	var_indexr~  s   &     @rk   Úorthogonal_poly_rulerý  Î  sê   ø€ ä”
Ü”NÜ”NÜ”NÜ”,Ü”Ü”,ÜÔ)ð	
Ðô 	�Ü�AÜ˜ð!
Ðð
 !Ñ€IˆvÛ(ˆÜ�i×'Ô'Ø1×5Ñ5°e¸QÓ?ˆIØ—‘˜yÕ)¨VÕ3ß“ÔF¨9¯>©>¸*¸9Ñ+EÓF——’ÔF¨9¯>©>¸*¸9Ñ+EÓF×FÔFØ2Ö9¸)ÀVÐiÈiÏnÉnÐ]gÐ^gÐNhÓiÒió )rn   z/list[tuple[Type, Expr, Callable | None, tuple]]Ú_special_function_patternsrR  c                ó  a€ V w  r\         '       EgÆ   \        R \        .R .R7      p\        R\        .R7      p\        R\        .R7      p\        R\        .R .R7      p\        R\        .R	 .R7      p\        P	                  W4WVV34       V\        ,          V,           pV\        ^,          ,          V\        ,          ,           V,           p	\         P	                  \
        \        VR
R7      \        ,          R\        3\
        \        VR
R7      \        ,          R\        3\
        \        VR
R7      \        ,          R\        3\
        \        VR
R7      \        ,          R\        3\
        \        VR
R7      \        ,          R\        3\         ^\#        VR
R7      ,          R\$        3\        \        V	R
R7      R\&        3\        \        V	R
R7      R\(        3\        \        V	R
R7      R\*        3\
        \        V,          \        V\        ,          R
R7      ,          R\,        3\
        \/        WC\        ,          R
R7      \        ,          R\0        3\         ^\3        W6\        \        R
R7      ^,          ,          ,
          4      ,          R \4        3\         \3        W6\        \        R
R7      ^,          ,          ,
          4      R \6        334       VP9                  V\        4      p
\          FŠ  w  r¼rÞ\;        W«4      '       g   K  V
P=                  V4      oS'       g   K4  \>        ;QJ d    . V3R l\         4       F  NK  	  5M! V3R l\         4       4      pVe   V! V!  '       g   K€  V! W.VO5!  u # 	  R# )rJ  c                ó$   € V P                   '       * # rp   ©rì  ©rR  s   &rk   r�  Ú'special_function_rule.<locals>.<lambda>ï  ó
   € À1Ç9Á9½}rn   ©Úexcluderµ  rK  ©r  rL  ri  c                ó$   € V P                   '       * # rp   r  r  s   &rk   r�  r  ò  r  rn   rj  c                óL   € V P                   ;'       d    V P                  '       * # rp   )Úis_nonnegativeÚ
is_integerr  s   &rk   r�  r  ô  s   € ˜1×+Ñ+×<Ð<°·±Õ=rn   F©ÚevaluateNc                ó
   € W8g  # rp   ri   ©rJ  ri  s   &&rk   r�  r    ó   € ˜QšVrn   c                ó
   € W8g  # rp   ri   r  s   &&rk   r�  r  
  r  rn   c              3  óp   <"  € T F+  pSP                  V4      f   K  SP                  V4      x € K-  	  R # 5irp   )rø  )r»   Úwr·  s   & €rk   r¼   Ú(special_function_rule.<locals>.<genexpr>  s-   øé € ð "?¹°1Ø%*§Y¡Y¨q£\ô #/ %§)¡)¨A§, ,»ùs   ƒ6�6) rþ  r   Ú_symbolÚ_wildsr¾  r   r   r4  r,   r#  r#   r-  r-   r:  r&   r@  r   r    rF  rL  r]  rT  ri  rP   rc  r)   ro  rx  rÑ   r”  r·  Útuple)rÍ  rc   r~  rJ  rK  rL  ri  rj  Úlinear_patternÚquadratic_patternÚ
_integrandÚtype_ÚpatternÚ
constraintrð   Ú	wild_valsr·  s   &               @rk   Úspecial_function_ruler  ì  s¥  ø€ Ø Ñ€Iß%Ô%Ü�œw˜iÑ5LÐ4MÔNˆÜ�œw˜iÔ(ˆÜ�œw˜iÔ(ˆÜ�œw˜iÑ5LÐ4MÔNˆÜ�œw˜iÙ=ð5?ô @ˆä�‰�q˜Q 1�oÔ&ð œ7� Q�ˆØœg q�j�L¨1¬W­9Õ4°qÕ8ÐÜ"×)Ñ)Ü”#�n¨uÔ5´gÕ=¸tÄVÐLÜ”#�n¨uÔ5´gÕ=¸tÄVÐLÜ”$�~°Ô6´wÕ>ÀÄgÐNÜ”#�n¨uÔ5´gÕ=¸tÄVÐLÜ”$�~°Ô6´wÕ>ÀÄgÐNÜ�!”C˜°Ô7Õ7¸¼vÐFÜ”#Ð'°%Ô8¸$ÄÐHÜ”#Ð'°%Ô8¸$ÄÐMÜ”#Ð'°%Ô8¸$ÄÐMÜ”'˜1•*œS ¤7¥°UÔ;Õ;¸TÄ>ÐRÜ”'˜!œw�Y°Ô7¼Õ?ÀÄ{ÐSÜ�!”D˜œs¤7°UÔ;¸QÕ>Õ>Õ>Ó?Õ?Ù#¤]ð4ä”$�qœS¤°5Ô9¸1Õ<Õ<Õ<Ó=Ù#¤]ð4ð+
ô 	ð" —‘ ¬Ó0€Jß,FÑ(ˆ˜
Ü�j×(Ô(Ø×$Ñ$ WÓ-ˆEß‰uß!œEô "?½ó "?ŸE™Eô "?½ó "?ó ?�	àÒ%©°Y×)?Ò)?Ù 	Ð>°IÓ>Ò>ó -Grn   c               ó$   € V ^8„  d   QhRRRRRR/# )rg   Úgeneric_steprb   Údegenerate_steprÝ   rh   ri   )rj   s   "rk   rl   rl     s'   € ÷ Vñ V°Tð VÈKð VÐ\`ñ Vrn   c                ó�  € Vf   V# \        V\        4      '       d7   VP                   UUu. uF  w  r4W4V ,          P                  4       3NK  	  pppMW3.p\        V\        4      '       d   WRP                  ,          pM!VP	                  V\
        P                  34       \        VP                  VP                  V4      # u uppi rp   )	r”  r©  rª  rY   rî   r   Útruerc   rd   )Úgeneric_condr!  r"  r”   r®  rª  s   &&&   rk   Ú_add_degenerate_stepr&    s¸   € ØÒØÐÜ�,¤×.Ò.à-9×-FÒ-FôHÙ-F™M˜Gð !¨,Õ#6×"@Ñ"@Ó"BÓCÙ-Fð 	ñ Hˆð &Ð4Ð5ˆÜ�/¤=×1Ò1Ø×4Ñ4Õ4‰à×Ñ˜_¬a¯f©fÐ5Ô6Ü˜×/Ñ/°×1FÑ1FÈÓUÐUùóHs   ¬#Cc               ó   € V ^8„  d   QhRR/# ©rg   rÍ  rf  ri   )rj   s   "rk   rl   rl   &  s   € ÷ 2Mñ 2M˜lñ 2Mrn   c                óš  aaaa	a
aa€ V w  po\        R S.R7      o\        RS^ .R7      o	SS	S,          ,           o\        P                  o
 ! R R\        4      oR VVVV	V
VV3R llo S! V4      w  r#S
\        P                  J d   RpM\	        TP                  S^ 4      S4      p\        TSY#4      p\        S
YT4      #   S d     R# i ; i)rJ  r  rK  c                  ó   € ] tR tRtRtR# )Ú nested_pow_rule.<locals>.NoMatchi/  ri   Nrù   ri   rn   rk   ÚNoMatchr+  /  s   † Ûrn   r,  c               ó    € V ^8„  d   QhRRRR/# )rg   r˜  r   rh   ztuple[Expr, Expr]ri   )rj   s   "rk   rl   Ú%nested_pow_rule.<locals>.__annotate__2  s   € ÷ ñ ˜Dð Ð%6ñ rn   c                óx  <€ V P                  S4      '       g!   \        P                  \        P                  3# V P                  '       d¸   V P                  4       w  rV'       g!   \        P                  \        P                  3# V Uu. uF  pS! V4      NK  	  ppV UUu0 uF  w  rQVkK	  	  pppVP                  \        P                  4       \        V4      ^8X  d!   VP                  4       \        R V 4       !  3# ShV P                  '       dE   V P                  V P                  ruVP                  S4      '       d   ShS! V4      w  r‰W‰V,          3# V P                  S4      p
V
'       d?   V
S,          V
S,          r[SWµ,          ,           p\        V^ 4      oV\        P                  3# Shu upi u uppi )r§   c              3  ó*   "  € T F	  w  rVx € K  	  R # 5irp   ri   )r»   r³  rj  s   &  rk   r¼   Ú9nested_pow_rule.<locals>._get_base_exp.<locals>.<genexpr>=  s   é € Ð)@¹±°­!»ùs   ‚)r¡  r   ÚOner÷  Úis_MulÚas_coeff_mulÚdiscardr^  Úpopr   rÏ   r¢   r   r·  r   )r˜  r³  r¹  r­  rÇ  rK  Úbasesrj  Úbase_Úsub_expr·  rJ  r,  Ú_get_base_expÚa_Úb_r%  r  rR  s   &           €€€€€€€rk   r:  Ú&nested_pow_rule.<locals>._get_base_exp2  sQ  ø€ Ø�}‰}˜Q×ÒÜ—5‘5œ!Ÿ&™&�=Ð Ø�;�;ˆ;Ø×(Ñ(Ó*‰HˆAßÜ—u‘uœaŸf™f�}Ð$Ù7<Ó=±u¨t‘} TÖ*±uˆGÐ=Ù#*Ô+¡7™4˜1“Q¡7ˆEÑ+Ø�M‰Mœ!Ÿ%™%Ô Ü�5‹z˜QŒØ—y‘y“{¤CÑ)@¹Ó)@Ñ$AÐAÐAØˆMØ�;�;ˆ;Ø—9‘9˜dŸh™hˆqØ�z‰z˜!�}Š}Ø�Ù*¨1Ó-‰NˆEØ A�+Ð%Ð%Ø—
‘
˜7Ó#ˆßØ˜•9˜e B�iˆqØ˜�•GˆEä˜a ›8ˆLØœ!Ÿ%™%�<ÐØˆùò' >ùÛ+s   Â	F1Â!F6N)r   r   r$  Ú	ExceptionrŠ   rÑ   r¬   r&  )rÍ  rc   r¢   rÓ   r"  r!  r,  r:  r;  r<  r%  r  rR  s   &     @@@@@@@rk   Únested_pow_ruler?  &  sÂ   þ€ à�L€Iˆqä	ˆc˜A˜3Ô	€BÜ	ˆc˜A˜q˜6Ô	"€BØ��A•�g€GÜ—6‘6€Lô”)ô ÷ö ð8Ù" 9Ó-‰
ˆð ”q—v‘vÓØ‰ô ' y§~¡~°a¸Ó';¸QÓ?ˆÜ  ¨A¨tÓ:€LÜ ¨lÓLÐLøð ô Úðús   Á)
B? Â?C
Ã	C
c               ó   € V ^8„  d   QhRR/# r(  ri   )rj   s   "rk   rl   rl   [  s   € ÷ IIñ II ñ IIrn   c                óÊ  aa€ V w  ooSP                  4       w  r#\        RS.R7      p\        RS.R7      p\        RS^ .R7      pVP                  WES,          ,           VS^,          ,          ,           4      pV'       g   R# R VV3R llpWEV3 U	u. uF"  q—P                  V	\        P
                  4      NK$  	  up	w  rEp\        V^ 4      p
V'       d   V
\        P                  J d   RpMNVP                  '       d   \        WC,          S4      pM)\        \        WES,          ,           V,          S4      4      p\        ^V,          ^,           4      ^ 8X  Ed×   V) ^V,          ,          WE^,          ^V,          ,          ,
          rÜ\        V^ 4      pRpV\        P                  JdI   \        ^\        VSV,
          ^,          ,          4      ,          SSV,
          \        P                  4      pV\        P                   J d   V# \#        SSWEV4      p\%        VVV4      pVP&                  '       dð   VP&                  '       dÞ   . p\(        V^V) RV3\+        V^ 8„  V^ 8  4      3\,        V^V^V3\+        V^ 8„  V^ 8„  4      33 FO  w  ppV\        P                  J d	   V! V!  u # V\        P                   Jg   K8  VP/                  V! V!  V34       KQ  	  V'       dB   VP0                  '       g"   VP/                  V\        P                  34       \3        SSV4      pMTp\%        V
VV4      # V\        P4                  8X  d   \7        SSWEV4      p\%        V
VV4      # R# u up	i )	za
Set degenerate=False on recursive call where coefficient of quadratic term
is assumed non-zero.
rJ  r  rK  rL  Nc               ó   € V ^8„  d   QhRR/# )rg   rh   rb   ri   )rj   s   "rk   rl   Ú'inverse_trig_rule.<locals>.__annotate__j  s   € ÷ ñ Àñ rn   c                óê  <€ \        R 4      p^\        W!,          WC,          SV,
          ^,          ,          ,           4      ,          p\        W1,          4      SV,
          ,          p^\        V4      ,          p	Rp
VSJd   Tp
Tp^\        W$V^,          ,          ,           4      ,          pV ! W¸4      pV	^8w  d   \        W›,          SW›V4      pV
e   \        VSWjV4      pV^ 8w  d   \	        SSW|4      pV# )rÚ   N)r   r)   r‘   rÈ   r§  )Ú	RuleClassrJ  Úsign_arL  Úsign_cÚhrÉ   rž  Úquadratic_baser’   rÊ   Ústandard_formr”   rc   r~  s   &&&&&&       €€rk   Úmake_inverse_trigÚ,inverse_trig_rule.<locals>.make_inverse_trigj  sÚ   ø€ Ü�c“
ˆØ”d˜6�8 f¥h°°qµ¸1­}Õ&<Õ<Ó=Õ=ˆ	Ü˜a�c› F¨1¥HÕ-ˆØ”T˜!“W•9ˆØˆØ Ó'Ø#ˆFØ"ˆNØœ$˜v¨~¸qÕ/@Õ(@Õ@ÓAÕAˆÙ˜MÓ:ˆØ�qŒ=Ü'¨Õ(>ÀÈÐahÓiˆGØÒÜ˜I v¨u¸gÓFˆGØ�Œ6Ü(¨°F¸IÓOˆGØˆrn   r¨   )rÐ   r   r·  rø  r   r÷  r   r$  rì  rŠ   Úsqrt_linear_rulerf  rY   r¬   r)   ÚNegativeOneÚfalserI  r&  Úis_realr=  rR   rC  rî   Úis_positiver©  ÚHalfrp  )rÍ  r[  r¢   r   rJ  rK  rL  r·  rK  r_  r%  r"  rH  ÚkÚnon_square_condÚsquare_stepr!  rm  rä  r†  r®  rc   r~  s   &&                   @@rk   re  re  [  sÐ  ù€ ð
 !Ñ€IˆvØ×%Ñ%Ó'�I€DÜˆS˜6˜(Ô#€AÜˆS˜6˜(Ô#€AÜˆS˜6 1˜+Ô&€AØ�J‰J�q˜V�8•| a¨°­	¥kÕ1Ó2€EçÙ÷ñ ð& /0°A©YÓ7©Y¨�y‰y˜œAŸF™FÖ#©YÑ7�G€Aˆ!Ü�a˜“8€Lß˜¬¯©Ó/Ø‰Ø	
��ˆÜ& q¥x°Ó8‰ä*¬<¸À½Z½ÈCÕ8OÐQWÓ+XÓYˆä��#•˜•	Ó˜aÕØˆr�1�Q•3�x˜ �T 1 Q¥3�Z�ˆ1Ü˜Q ›(ˆØˆØ¤!§&¡&Ó(Ü'¨¬$¨q°&¸µ(¸Qµ­Ó*?Õ(?ÀÈÐPQÍÔST×S`ÑS`ÓaˆKØœaŸg™gÓ%ØÐÜ2°9¸fÀaÈAÓNˆÜ# O°\À;ÓOˆØ�9�9ˆ9˜ŸŸ˜àˆEä˜a  Q B¨¨AÐ.´°A¸±E¸1¸q¹5Ó0AÐBÜ˜q ! Q¨¨1Ð-¬s°1°q±5¸!¸a¹%Ó/@ÐAó‘
��dð œ1Ÿ6™6“>Ù,¨dÑ3Ò3ØœqŸw™wÕ&Ø—L‘LÑ"3°TÑ":¸DÐ!AÖBñ÷ Ø—}—}�}Ø—L‘L ,´·±Ð!7Ô8Ü$ Y°¸Ó>‘à#�Ü# L°$¸ÓHÐHØ
Œa�f‰f„}Ü  ¨F°A¸!Ó<ˆÜ# L°$¸ÓHÐHñ ùòK 8s   Â(M c                óŽ   € V w  rVP                  4        Uu. uF  p\        W24      NK  	  ppR V9   d   R # \        WV4      # u upi rp   )Úas_ordered_termsrÌ  r³   )rÍ  rc   r~  ÚgrÇ  s   &    rk   Úadd_rulerY  §  sU   € Ø Ñ€Ià ×1Ñ1Ô3ó5Ù3�!ô ˜aÖ(Ù3ð ð 5à˜7”?ˆ4ÐK¬°	À7Ó(KÐKùò5s   —Ac               ó   € V ^8„  d   QhRR/# r(  ri   )rj   s   "rk   rl   rl   ®  s   € ÷ Mñ M�|ñ Mrn   c                ó~   € V w  rVP                  V4      w  r4V^8w  d   \        WB4      pVe   \        WW4V4      # R# R# ©r§   N)r¥  rÌ  r‘   )rÍ  rc   r~  rh  r‰  Ú	next_steps   &     rk   Úmul_ruler^  ®  sN   € Ø Ñ€Ið ×'Ñ'¨Ó/�H€EØ�„zÜ" 1Ó-ˆ	ØÒ Ü$ Y¸À)ÓLÐLñ !ñ rn   c               ó   € V ^8„  d   QhRR/# )rg   rh   z*tuple[Expr, Expr, Expr, Expr, Rule] | Noneri   )rj   s   "rk   rl   rl   ¹  s   € ÷ \ñ \Ð&Pñ \rn   c                ó*  a€ V3R  lpR R lpV! \         4      V! \         W#! \        \        4      V! \        4      .p\        R4      p\        V \         .\        O54      '       d	   WP,          p \        V4       EF”  w  rgV! V 4      pV'       g   K  Vw  ršSV	P                  9  d   V	P                  V4      '       g    R# V	P                  V^4      p	V
P                  V^4      p
Wr8X  d   V	P                  S4      '       g    R# \        V	\         4      '       d5   ^V
,          pVP                  S4      '       d   \        VS4      ^8X  d    R# Wr8X  d‘   V
P                  '       g2   V
P                  \        4      '       g   \        V
\        4      '       dN   \!        V
S4      pVP#                  4       '       d    R# V	P%                  S4      pVP'                  4       pWšWíV3u # RpV^8  d   RpM¿Wr8X  dd   V
P(                  '       dR   \*        ;QJ d&    R V
P(                   4       F  '       d   K   RM	  RM! R V
P(                   4       4      '       d   RpMVWF^,           R  FG  pV! V 4      pV'       g   K  V^ ,          P                  V^4      P-                  V
4      '       g   KE  Rp M	  V'       g   EKA  V	P%                  S4      p\!        \/        V
4      S4      pVP#                  4       '       d   EK€  VP'                  4       pWšWíV3u # 	  R# )c                ó^  <€ V P                  4       P                  4       p \        V \        4      '       g   V P                  '       g   . M3V P
                   Uu. uF  qP                  S4      '       g   K  VNK  	  uppV'       d#   \        V!  pW,          P                  4       pW43# R # u upi rp   )r   Útogetherr”  r*   r3  r†  Úis_algebraic_exprr   )rc   rƒ  Ú	algebraicrÚ   rÛ   r~  s   &    €rk   Úpull_out_algebraicÚ'_parts_rule.<locals>.pull_out_algebraic¼  sŠ   ø€ Ø×$Ñ$Ó&×/Ñ/Ó1ˆ	ä% i´×;Ò;À9×CS×CSÐCS‘RØ!*§¢ÓQ¡˜#×3HÑ3HÈ×3P—#�#¡ÑQð 	çÜ�Y‘ˆAØ•-×'Ñ'Ó)ˆBØ�5ˆLñ ùò Rs   ÁB*Á5B*c               ó   € V ^8„  d   QhRR/# )rg   rh   z*Callable[[Expr], tuple[Expr, Expr] | None]ri   )rj   s   "rk   rl   Ú!_parts_rule.<locals>.__annotate__Æ  s   € ÷ ñ Ð"Lñ rn   c                 ó   a € R  V 3R llpV# )c               ó    € V ^8„  d   QhRRRR/# )rg   rc   r   rh   ztuple[Expr, Expr] | Noneri   )rj   s   "rk   rl   Ú5_parts_rule.<locals>.pull_out_u.<locals>.__annotate__Ç  s   € ÷ 	ñ 	 Tð 	Ð.Fñ 	rn   c                óŒ  <a a€ \         ;QJ d    V 3R  lS 4       F  '       g   K   RM	  RM! V 3R  lS 4       4      '       d|   S P                   Uau. uFG  o\         ;QJ d    V3R lS 4       F  '       g   K   RM	  RM! V3R lS 4       4      '       g   KE  SNKI  	  ppV'       d   \        V!  pS V,          pW43# R# u upi )c              3  óF   <"  € T F  pSP                  V4      x € K  	  R # 5irp   rö  ©r»   r‰  rc   s   & €rk   r¼   ÚI_parts_rule.<locals>.pull_out_u.<locals>.pull_out_u_rl.<locals>.<genexpr>È  s   øé € Ð7©Y¨�9—=‘= ×#Ð#«Yùó   ƒ!TFc              3  ó<   <"  € T F  p\        SV4      x € K  	  R # 5irp   )r”  )r»   Úclsrƒ  s   & €rk   r¼   ro  Ê  s   øé € ÐI¹y¸œz¨#¨s×3Ð3»yùr…  N)rÅ   r†  r   )rc   rƒ  r†  rÚ   rÛ   Ú	functionss   f`   €rk   Úpull_out_u_rlÚ6_parts_rule.<locals>.pull_out_u.<locals>.pull_out_u_rlÇ  sŠ   ú€ ß‹sÔ7©YÓ7�s�sŠsÔ7©YÓ7×7Ò7Ø'0§~¢~ô K¡~ ß›3ÔI¹yÓIŸ3Ÿ3š3ÔI¹yÓI×I÷ ˜¡~�ð KçÜ˜T™
�AØ" Q��BØ˜5�LÙùòKs   ÁCÁ#CÁ:CÂCri   )rs  rt  s   j rk   Ú
pull_out_uÚ_parts_rule.<locals>.pull_out_uÆ  s   ø€ ÷	ð 	ð Ðrn   Ú	temporaryNFTc              3  óX   "  € T F   p\        V\        \        \        34      x € K"  	  R # 5irp   )r”  r-   r,   r   )r»   rJ  s   & rk   r¼   Ú_parts_rule.<locals>.<genexpr>  s'   é € ð "Ù �Aô ˜q¤3¬¬S /×2Ð2Û ùs   ‚(*)r    r½  r-   r,   r   r   r”  r—  r¶  r¿  rÑ   Úis_polynomialrT   Úis_Derivativer+   rO   rÌ  rz   r‡  rs   r†  ÚallÚequalsrY   )rc   r~  re  rv  Úliate_rulesÚdummyÚindexrð   rÒ   rÚ   rÛ   Úrec_dvrÜ   Údurâ   ÚacceptÚlrulerÂ  s   &f                rk   Ú_parts_ruler†  ¹  sƒ  ø€ õõñ œc“?¡JÔ0FÐ$GØ% z´#´sÓ';Ùœc“?ð$€Kô
 �+Ó€Eä�)œcÐ;Ô$:Ñ;×<Ò<ØÕ%ˆ	ä  ×-‰ˆÙ�i“ˆç‰6Ø‰EˆAð ˜QŸ^™^Ô+°A·E±E¸%·L²LÚà—‘�u˜aÓ ˆAØ—‘˜ Ó"ˆBð Ô)°!·/±/À&×2IÒ2IÚä˜!œS×!Ò!Ø˜2��Ø×(Ñ(¨×0Ò0Ü˜6 6Ó*¨aÔ/Úð Ô)Ø×#×#Ð# r§v¡vÔ.C×'DÒ'DÜ" 2Ô';×<Ò<Ü+¨B°Ó7�FØ×0Ñ0×2Ò2Ú#àŸV™V F›^˜Ø"ŸK™K›M˜Ø  a¨VÐ3Ò3ð ˆFØ�qŒyØ‘ØÔ,°··°ß“ñ "ØŸšó"——’ñ "ØŸšó"÷ "ò "à!‘Fà(°­¨Ó4�EÙ˜iÓ(�Aß‘q˜Q˜q�TŸY™Y u¨aÓ0×7Ñ7¸×;Ô;Ø!%˜Ùñ	 5÷ ŠvØ—V‘V˜F“^�Ü'¬°«°fÓ=�Ø×0Ñ0×2Õ2ØŸ™›�AØ !¨Ð/Ò/ño .ñp rn   c                ó  aa€ V w  poVP                  4       w  r!\        VS4      p. pV'       Edî   Vw  rVrxp	\        R P                  WVWxV	4      4       VP	                  V4       \        V\        4      '       d   R# \        V\        \        \        \        \        34      '       dE   VP                  S\        /4      p
\        V
,          ^8”  d   R# \        V
;;,          ^,          uu&   \        ^4       EF#  p\        RP                  W·W�4      4       Wx,          V,          P!                  4       pV^8X  d    MãSVP"                  9  dv   \%        TSV UUUUU	u. uF  w  rVrxp	\'        RRWVV	R4      NK  	  up	ppppR\)        V4      ,          V,          4      pV^8w  d   V'       d   \+        W!,          SW!V4      pVu # Wx,          P                  4       w  rï\        VS4      pV'       d.   Vw  rVrxp	W^,          pWŽ,          pVP	                  WVWxV	34       EK$   M	  VV3R loV'       dV   V^ ,          w  rVrxp	\'        VSWVV	S! VR,          Wx,          4      4      pV^8w  d   V'       d   \+        W!,          SW!V4      pV# R# u up	ppppi )z,u : {}, dv : {}, v : {}, du : {}, v_step: {}Nz7Cyclic integration {} with v: {}, du: {}, integrand: {}c                óŒ   <€ V '       d1   V ^ ,          w  r#rEp\        VSW#VS! V R,          WE,          4      4      # \        VS4      # )r}  ºr§   NN)rÙ   rÌ  )	Ústepsrc   rÚ   rÛ   râ   rƒ  rÜ   Úmake_second_stepr~  s	   &&     €€rk   r‹  Ú$parts_rule.<locals>.make_second_stepI  sI   ø€ ßØ#(¨¥8Ñ ˆA�1˜&Ü˜Y¨°°vÑ?OÐPUÐVXÕPYÐ[\Õ[aÓ?bÓcÐcÜ˜i¨Ó0Ð0rn   r‰  r¨   )Úas_coeff_Mulr†  r`   rj   rî   r”  rQ   r-   r,   r   r&   r#   ÚxreplaceÚ_cache_dummyÚ_parts_u_cacherd  r   r¶  rè   rÙ   r^  r‘   )rÍ  rc   r’   rÒ   rŠ  rÚ   rÛ   râ   rƒ  rÜ   Úcachekeyr³  rê   rð   Únext_constantÚnext_integrandr‹  r~  s   &               @@rk   Ú
parts_ruler”    sI  ù€ Ø Ñ€IˆvØ#×0Ñ0Ó2Ñ€Hä˜ FÓ+€Fà€Eß€vØ%Ñˆˆq�fÜÐ<×CÑCÀAÈ1ÐRXÓYÔZØ�‰�VÔä�aœ×"Ò"Ùô �aœ#œs¤C¬¬tÐ4×5Ò5Ø—z‘z 6¬<Ð"8Ó9ˆHÜ˜hÕ'¨!Ô+ÙÜ˜8×$¨Õ)Ó$ô �q—ˆAÜÐK×RÑRÐSTÐY[ÓgÔhØ�F iÕ/×7Ñ7Ó9ˆKØ˜aÔÙØ˜[×5Ñ5Ô5Ü& y°&á38÷:Ù38Ñ/˜! ¨ô ˜t T¨1°&¸$Ö?Ù38õ:àœC ›JÕ&¨Õ4ó6�ð  ”M§tÜ,¨XÕ-AÀ6È8Ð`dÓe�DØ’ð ./­V×,AÑ,AÓ,CÑ)ˆMÜ  °Ó8ˆFçØ'-Ñ$��q˜fØÕ"�ØÕ#�Ø—‘˜a Q¨FÐ3×4áñ1 ö41÷ Ø$ Q�xÑˆˆq�fÜ˜ F¨A°6Ñ;KÈEÐRTÍIÐWXÕW]Ó;^Ó_ˆØ˜ŒMŸtÜ$ XÕ%9¸6À8ÐX\Ó]ˆDØˆñ ùö3:s   ÅJc           	     ó(  € V w  rV\        V4      8X  d   \        W4      # V\        V4      8X  d   \        W4      # V\	        V4      ^,          8X  d   \        W4      # V\        V4      ^,          8X  d   \        W4      # \        V\        4      '       d.   \        VP                  !  \        VP                  !  ,          pEM<\        V\        4      '       d-   \        VP                  !  \        VP                  !  ,          pMú\        V\        4      '       dg   VP                  ^ ,          p\	        V4      ^,          \        V4      \	        V4      ,          ,           \	        V4      \        V4      ,           ,          pM~\        V\        4      '       dg   VP                  ^ ,          p\        V4      ^,          \        V4      \        V4      ,          ,           \        V4      \        V4      ,           ,          pMR# \        WV\        W24      4      # r]  )r-   rü   r,   r  r1   r  r0   r  r”  r.   r†  r/   r�  rÌ  )rÍ  rc   r~  rž  rƒ  s   &    rk   Ú	trig_ruler–  W  sw  € Ø Ñ€IØ”C˜“KÔÜ�yÓ)Ð)Ø”C˜“KÔÜ�yÓ)Ð)Ø”C˜“K •NÔ"Ü˜	Ó*Ð*Ø”C˜“K •NÔ"Ü˜	Ó*Ð*ä�)œS×!Ò!Ü˜Ÿ™Ñ(¬3°	·±Ñ+?Õ?Š	Ü	�Iœs×	#Ò	#Ü˜Ÿ™Ñ(¬3°	·±Ñ+?Õ?‰	Ü	�Iœs×	#Ò	#Ø�n‰n˜QÕˆÜ˜#“h •k¤C¨£H¬s°3«xÕ$7Õ7Ü˜#“h¤ S£Õ)õ+‰	ä	�Iœs×	#Ò	#Ø�n‰n˜QÕˆÜ˜#“h •k¤C¨£H¬s°3«xÕ$7Õ7Ü˜#“h¤ S£Õ)õ+‰	ñ 	ä�y¨)´^ÀIÓ5VÓWÐWrn   c               ó   € V ^8„  d   QhRR/# r(  ri   )rj   s   "rk   rl   rl   s  s   € ÷ -ñ - ñ -rn   c                óº   € V w  rV\        V4      \        V4      ,          8X  d   \        W4      # V\        V4      \	        V4      ,          8X  d   \        W4      # R # rp   )r1   r.   r  r0   r/   r  rñ  s   &  rk   Útrig_product_ruler™  s  sO   € Ø Ñ€IØ”C˜“K¤# f£+Õ-Ô-Ü˜)Ó,Ð,Ø”C˜“K¤# f£+Õ-Ô-Ü˜)Ó,Ð,ñ .rn   c                ój	  € V w  r\        R V.R7      p\        RV.R7      p\        RV.R7      pVP                  W4V^,          ,          V,           ,          4      pV'       Ed½   Wc,          Wd,          We,          rTp\        WW4V4      pVP                  '       Ed:   VP                  '       Ed'   WT,          ^ 8„  pV\        P
                  J d   V# V^\        V) 4      ,          \        V4      ,          ,          p	\        V) V,          4      p
^W*,
          ,          p^W*,           ,          p\        W²W*,
          4      \        V) VRV\        WÂW*,           4      4      .pW¼,
          ;rï\        WòV4      pV	^8w  d   \        WŸRR7      p\        WâWŸV4      p\        WVV4      pV\        P                  J d   V# \        WWx3V\        P
                  3.4      # \        WVR4      pV^8w  d   \        W^V,          VR,          V4      p\        WV\        V^ 4      3VR3.4      # \        RV.R7      pVP                  W4V^,          ,          WR,          ,           V,           ,          4      pV'       d“   VV,          VV,          rTVP                   '       d   R# \#        R	4      pW%^V,          ,          ,           pVP%                  VVV^V,          ,          ,
          4      p\'        VV4      pV'       d   \)        VVVVV4      # R# \        R
V.R7      pVP                  W2,          V,           WR^,          ,          VV,          ,           V,           ,          4      pV'       EdU   VV,          VV,          VV,          VV,          VV,          3w  r4pppVP                   '       d   R# WR^,          ,          VV,          ,           V,           pV^V,          ,          p^V,          V,          V,           pV) V,          V,           p\#        R	4      p\)        WVV\'        VR,          V4      4      pV^8w  d%   \        VV,          V,          VVVV,          V4      pVP                   '       d   V# \'        VV,          V4      p\        WVV.4      p VV,          V,          VV,          ,           p!\        WV!V 4      # R# )rJ  r  rK  rL  Fr  Tri  NrÚ   rj  r¨   rb  )r   r·  râ  rP  r   r$  r)   r7  r‘   r³   r   r�  rO  r©  r¡   r   rì  r   rÑ   rÌ  rÈ   )"rÍ  rc   r~  rJ  rK  rL  r·  Úgeneral_ruleÚpositive_condrh  r’   Úr1Úr2Ú	log_stepsrž  ÚsubÚnegative_stepÚpowerri  Úmatch2rÚ   rÊ   Ú
integrand2r]  rj  Úmatch3ÚdenominatorÚconstÚnumer1Únumer2Ústep1Ústep2rµ   Úrewritens"   &                                 rk   Úquadratic_denom_ruler­  {  sý  € Ø Ñ€IÜˆS˜6˜(Ô#€AÜˆS˜6˜(Ô#€AÜˆS˜6˜(Ô#€Aà�O‰O˜A V¨q¥[¥°1Õ!4Õ5Ó6€Eç€uØ•(˜E�H e¥hˆaˆÜ! )°Q¸1Ó=ˆØ××Ñ !×"4×"4Ñ"4Ø�C !™GˆMØ¤§¡Ó&Ø#Ð#Ø�qœ˜q˜b›•z¤$ q£'Õ)Õ*ˆEÜ˜Q˜B˜q�D“zˆHØ�F•OÕ$ˆBØ�F•OÕ$ˆBÜ'¨°FµOÓDÜ*¨B¨3°¸¸BÄÈrÐ[aÕ[jÓ@kÓlðnˆIà �gÐ%ˆIÜ# C°Ó;ˆMØ˜ŒzÜ °UÔ;�	Ü 1°)ÀUÐQ^Ó _�Ü'¨	¸9ÀmÓTˆMØ¤§¡Ó'Ø$Ð$Ü  °lÐ5RÐUbÔde×djÑdjÐTkÐ4lÓmÐmä˜)¨V°RÓ8ˆØ�Œ6Ü% i¸¸1½¸fÀb½jÈ%ÓPˆEä˜Y°,ÄÀ1ÀaÃÐ1IÈEÐSWÈ=Ð0YÓZÐZäˆS˜6˜(Ô#€AØ�_‰_˜Q f°¥k¥/°AµJÕ">ÀÕ"BÕCÓD€FßØ�q•	˜6 !�9ˆ1Ø�9�9ˆ9ÙÜ�#‹JˆØ˜Q˜q�S�'Õ!ˆØ—^‘^ F¨A°°Q°qµSµ	­MÓ:ˆ
Ü" :¨qÓ1ˆ	ßÜ˜ V¨Q°¸	ÓBÐBáÜˆS˜6˜(Ô#€AØ�_‰_˜a�i¨!�m°¸aµKµÀ!ÀfÅ*Õ0LÈqÕ0PÕQÓR€Fß€vØ˜q�	 6¨!¥9¨f°Q­i¸À½ÀFÈ1ÅIÐM‰ˆˆa��AØ�9�9ˆ9ÙØ !�)•m a¨&¥jÕ0°1Õ4ˆØ�A�a•C•ˆØ�Q•3�v•:˜a•<ˆØ�˜•˜Q•ˆÜ�#‹JˆÜ�iØ˜¤n°Q¸µW¸aÓ&@óBˆà�AŒ:Ü% e¨F¥l°;Õ&>ÀØ&+¨V°KÕ-?ÀóHˆEà�>�>ˆ>ØˆLÜ˜v kÕ1°6Ó:ˆÜ˜9¨u°e¨nÓ=ˆØ˜•< Õ+¨F°;Õ,>Õ>ˆÜ˜9¨h¸ÓAÐAá
rn   c               ó   € V ^8„  d   QhRR/# r(  ri   )rj   s   "rk   rl   rl   È  s   € ÷ )ñ )˜|ñ )rn   c                ó,  € V w  r\        RV.R7      p\        RV^ .R7      p^ ;rV. . . r˜pVP                  \        4       EF  p
V
P                  V
P                  rËVP
                  '       g   W+P                  9  d   K?  VP                  '       g    R# VP                  W4V,          ,           4      pV'       g   K|  WÓ,          WÔ,          rþW_,          Wæ,          8w  g   Wo,          P                  '       g    R# V^ 8X  g   Wo,          ^8„  \        P                  J d   YïreVP                  V4       V	P                  V4       VP                  VP                  4       EK  	  V^ 8X  d   R# \        V4      pWVV,          ,           ^V,          ,          p\        R4      pTP!                  \#        WyV4       UUUu/ uF\  w  r´pV\        P$                  V,          ,          WF,          \        P$                  V,          ,          VVV,          ,          ,          bK^  	  uppp4      P!                  VVV,          V,
          V,          4      p\'        VVV^,
          ,          ,          V,          V,          V4      pVP)                  4       '       g‚   \+        WVVV4      p\-        V^ 4      pV\        P                  JdR   VP!                  \.        P1                  V	^ 4      4      p\'        VV4      p\3        WVV3V\        P                  3.4      pV# R# u upppi )z"
Substitute common (a+b*x)**(1/n)
rJ  r  rK  NrÚ   )r   rÒ  r   r¢   r   r±  r¶  Úis_Rationalr·  r
  r   r$  rî   ÚqrU   r   rÑ   Úzipr2  rÌ  rz   rÈ   r   rÅ  rÆ  r©  )rÍ  rc   rR  rJ  rK  Úa0Úb0r7  ÚqsÚbsÚpow_r¢   rÓ   r·  Úa1Úb1Úq0Úu_xrÚ   r±  r§  r”   rm  r%  Ú
simplifiedr"  s   &                         rk   rM  rM  È  so  € ð �L€IÜˆS˜1˜#Ô€AÜˆS˜1˜a˜&Ô!€AØ€K€BØ˜˜Bˆr€EØ—‘œs×#ˆØ—Y‘Y §¡ˆdØ�?�?ˆ?˜a×'8Ñ'8Ô8ÙØ××ÐÚØ—
‘
˜1˜q�S�5Ó!ˆßÙØ•˜5�8ˆBØ�5�B•EŒ> "¥%×!7×!7Ð!7ÚØ�Œ7�r•u˜q‘y¤Q§V¡VÓ+Ø�Ø�‰�TÔØ
�	‰	�"ŒØ
�	‰	�$—&‘&×ñ! $ð" 
ˆQ„wÙÜ˜2“,€BØ�1•�9˜˜"�Õ
€CÜˆc‹
€AØ—.‘.Ü47¸À2Ô4Fõ"HÙ4F¡j d¨qð #'¬¯©¨q­¥/°AµD¼A¿E¹EÀ!½GÕ3DÀQÈÈAÍÅYÕ3NÒ"NÙ4Fó"Hó IßIMÉÈaÐRSÐUWÕRWÐXZÕRZÐ\^ÕQ^ÓI_ð ä˜[¨¨R°­T­Õ2°2Õ5°bÕ8¸!Ó<€GØ×%Ñ%×'Ò'Ü˜9¨¨C°Ó9ˆÜ˜"˜a“yˆØœqŸv™vÓ%Ø"Ÿ™¬¯©°b¸!Ó(<Ó=ˆJÜ,¨Z¸Ó;ˆOÜ  °°|Ð0DÀÔXY×X^ÑX^ÐF_Ð/`ÓaˆDØˆñ (ùô"Hs   Æ7A"Lc               ó   € V ^8„  d   QhRR/# r(  ri   )rj   s   "rk   rl   rl   ô  s   € ÷ @Mñ @M ,ñ @Mrn   c           
     óœ  aaaa€ V w  po\        R S.R7      o\        RS.R7      o\        RS^ .R7      o\        R4      p\        RR .R7      pVP                  V\        SSS,          ,           SS^,          ,          ,           4      V,          ,          4      pV'       g   R# VS,          VS,          VS,          WS,          WT,          3w  ooor4VP                  S4      pVf   R# \	        S^ 4      pV'       d   V\
        P                  J d   RpMpSP                  '       d%   \        V\        S4      V,          ,          S4      pM:\        \        V\        SSS,          ,           4      V,          ,          S4      4      pR	 VVVV3R
 llp	V^ 8”  d›   VSSS,          ,           SS^,          ,          ,           V^,           ^,          ,          ,          p
V
P                  4       \        SSS,          ,           SS^,          ,          ,           4      ,          pV	! W«4      p\        VSW¼4      pMVR8X  d
   V	! Wb4      pMR# \        W}V4      # )rJ  r  rK  rL  r‰  rg  c                óB   € V P                   ;'       d    V P                  # rp   )r±  Úis_oddr²  s   &rk   r�  Ú%sqrt_quadratic_rule.<locals>.<lambda>ú  s   € ¨¯©×(AÐ(A¸¿¹Ð(Arn   r´  Nc               ó    € V ^8„  d   QhRRRR/# )rg   Ú
numer_polyrW   rc   r   ri   )rj   s   "rk   rl   Ú)sqrt_quadratic_rule.<locals>.__annotate__  s   € ÷ ñ ¨dð ¸tñ rn   c                ó  <€ \        SSS,          ,           SS^,          ,          ,           4      pV P                  4       pV^8:  Ed£   V^8X  d   V P                  4       M\        P                  V P                  4       3w  rEV^S,          ,          pWVS,          ,
          p^S,          S,          S,           V,          pRp	Rp
V^ 8w  d…   \        R4      p\        ^\        V4      ,          W»\        P                  ) 4      p\        VSVSSS,          ,           SS^,          ,          ,           V4      p
V^8w  d   \        Wh,          SWhV
4      p
V^ 8w  dB   \        \        ^V,          S4      RR7      p	V^8w  d   \        Wr,          SV^V,          V	4      p	V
'       d?   V	'       d7   \        Wh,          Wr,          RR7      p\        VSV\        VSW©.4      4      pV# T
;'       g    T	p V# V P                  4       p\!        VSSSSV4      pV# )rg   NrÚ   FrZ  r  )r)   rT   Ú
all_coeffsr   r÷  Úas_exprr   r¡   rR  rÈ   r‘   re  rf  r   r�  r³   rU  )rÃ  rc   r×  Údegrj  ri  ÚAÚBÚpre_substituteÚconstant_stepÚlinear_steprÚ   Úpow_ruleÚaddrm  rV  rJ  rK  rL  rR  s   &&              €€€€rk   Úsqrt_quadratic_denom_ruleÚ6sqrt_quadratic_rule.<locals>.sqrt_quadratic_denom_rule  s¾  ø€ Ü�Q�q˜•s•U˜1˜Q �T�6•\Ó"ˆØ×ÑÓ!ˆØ�!�8à.1°Q¬h�:×(Ñ(Ô*¼Q¿V¹VÀZ×EWÑEWÓEYÐ<Z‰DˆAà�1�Q•3•ˆAØ�A•#•ˆAØ �c !�e A�g u�_ˆNØ)-ˆMØ'+ˆKØ�AŒvÜ˜#“J�Ü$ Q¤t¨A£w¥Y°´q·v±v°gÓ>�Ü# N°A°q¸!¸A¸a½C½%ÀÀ!ÀQÅ$Å½,ÈÓQ�Ø˜”6Ü"3°AÕ4DÀaÈÐ\gÓ"h�KØ�AŒvÜ 1´,¸qÀ½wÈÓ2JÐW\Ô ]�Ø˜”6Ü$5°aµg¸qÀ!ÀQÀuÅWÈmÓ$\�MßŸ}Ü˜!Õ*¨A­G¸eÔD�Ü$/°	¸1¸cÄ7È3ÐPQÐT_ÐSoÓCpÓ$q�ð ˆð	 #×3Ð3 m‘ð ˆð  ×*Ñ*Ó,ˆFÜ)¨)°Q¸¸1¸aÀÓHˆDØˆrn   r¨   )r   r·  r)   Úas_polyr   r   r$  rì  rÌ  rM  rf  rÇ  r�  r&  )rÍ  r[  rc   r‰  rg  r·  Úf_polyr%  r"  rÐ  rÃ  rž  r”   r!  rJ  rK  rL  rR  s   &&            @@@@rk   rt  rt  ô  sÎ  û€ Ø�L€IˆqÜˆS˜1˜#Ô€AÜˆS˜1˜#Ô€AÜˆS˜1˜a˜&Ô!€AÜˆS‹	€AÜˆSÑAÐBÔC€AØ�O‰O˜Aœd 1 Q q¥S¥5¨¨1¨a­4­¥<Ó0°!Õ3Õ3Ó4€EßÙØ˜!•H˜e A�h¨¨a­°%µ(¸E½HÐD�M€A€qˆ!ˆQØ�Y‰Y�q‹\€FØ‚~Ùä�a˜“8€Lß˜¬¯©Ó/Ø‰Ø	
��ˆÜ(¨¬4°«7°A­:­°qÓ9‰ä*¬<¸¼$¸qÀÀ1Å½u»+Àq½.Õ8HÈ!Ó+LÓMˆ÷ó ð@ 	ˆ1„uØ˜q  1¥�u Q q¨!¥t¥V�|°°!µ°Q­wÕ7Õ7ˆ
Ø×&Ñ&Ó(¬¨a°°!µ­e°A°a¸µdµF­lÓ);Õ;ˆ	Ù+¨JÓBˆÜ" 9¨a°ÓD‰Ø	
ˆbŒÙ0°ÓC‰áÜ ¸OÓLÐLrn   c               ó   € V ^8„  d   QhRR/# )rg   rÍ  ztuple[Expr, Symbol]ri   )rj   s   "rk   rl   rl   7  s   € ÷ 3ñ 3Ð1ñ 3rn   c                ój  € V w  r\        V\        4      '       Ed   VP                  ^ ,          V8X  Edý   VP                  \        8X  d   \        W4      # VP                  \        8X  d   \        W4      # \        R4      pVP                  \        8X  dO   \	        V4      \        V4      ,          p\        WV\        WBV\        V4      \        ^V,          W34      4      4      # VP                  \        8X  dO   \        V4      \	        V4      ,          p\        WV\        WBV\	        V4      \        ^V,          W34      4      4      # VP                  \        4      pVP                  \        8X  dq   \        WV\        WBV\        V^,          4      \!        ^V^,          ^,           ,          V\#        ^4      \"        P$                  \"        P$                  4      4      4      # VP                  \&        8X  d;   \        WV\        WBV\        V^,          4      \        ^V,          W34      4      4      # R# R# R# )r}  rÚ   N)r”  r!   r†  rÍ  r&   r&  r#   r-  r   r'   r�  rÈ   r7  r$   rÎ  r%   râ  r   r2  r"   )rÍ  rc   r~  rÚ   rž  s   &    rk   Úhyperbolic_rulerÖ  7  s¾  € Ø Ñ€IÜ�)Ô/×0Ó0°Y·^±^ÀAÕ5FÈ&Õ5PØ�>‰>œTÔ!Ü˜IÓ.Ð.Ø�>‰>œTÔ!Ü˜IÓ.Ð.Ü�#‹JˆØ�>‰>œTÔ!Ü˜V›¤T¨&£\Õ1ˆIÜ˜y°)Ü˜¨A¬t°F«|¼^ÈAÈaÍCÐQRÓ=VÓWóYð Yà�>‰>œTÔ!Ü˜V›¤T¨&£\Õ1ˆIÜ˜y°)Ü˜¨A¬t°F«|¼^ÈAÈaÍCÐQRÓ=VÓWóYð Yð "×)Ñ)¬$Ó/ˆIØ�~‰~¤Ô%Ü" 9°iÜ˜Y°´4¸¸q½³>Ü! ! Q¨¥T¨A¥X¥,°´1°Q³4¼¿¹ÄÇÁÓFóHóIð Ið �~‰~¤Ô%Ü" 9°iÜ˜Y°´4¸¸q½³>Ü% a¨¥c¨1Ó0ó2ó3ð 3ñ &ñ) 6QÑ0rn   c                ó†   € \        R V .R7      p\        RV .R7      p\        RV .R .R7      p\        RV .R .R7      pWW43# )rJ  r  rK  r°   c                ó"   € \        V \        4      # rp   ©r”  r   r²  s   &rk   r�  Úmake_wilds.<locals>.<lambda>V  ó   € ¼*ÀQÌÔ:Prn   r  rg  c                ó"   € \        V \        4      # rp   rÙ  r²  s   &rk   r�  rÚ  W  rÛ  rn   )r   )r~  rJ  rK  r°   rg  s   &    rk   Ú
make_wildsrÝ  R  sP   € äˆS˜6˜(Ô#€AÜˆS˜6˜(Ô#€AÜˆS˜6˜(Ñ0PÐ/QÔR€AÜˆS˜6˜(Ñ0PÐ/QÔR€Aà�ˆ:Ðrn   c                ó’   € \        V 4      w  rr4\        W,          4      V,          \        W ,          4      V,          ,          pWQW#V3# rp   )rÝ  r-   r,   ©r~  rJ  rK  r°   rg  r  s   &     rk   Úsincos_patternrà  [  ó=   € ä˜FÓ#�J€Aˆ!Ü�!•(‹m˜QÕ¤ Q¥X£°Õ!1Õ1€Gà�q˜QÐÐrn   c                ó’   € \        V 4      w  rr4\        W,          4      V,          \        W ,          4      V,          ,          pWQW#V3# rp   )rÝ  r.   r1   rß  s   &     rk   Útansec_patternrã  b  rá  rn   c                ó’   € \        V 4      w  rr4\        W,          4      V,          \        W ,          4      V,          ,          pWQW#V3# rp   )rÝ  r/   r0   rß  s   &     rk   Úcotcsc_patternrå  i  rá  rn   c                ó–   € \        R V .R7      p\        RV .R7      p\        R4      p\        W,          V,           4      V,          pWAW#3# )r°   r  rK  rX  )r   r8   )r~  r°   rK  rX  r  s   &    rk   Úheaviside_patternrç  p  sG   € äˆS˜6˜(Ô#€AÜˆS˜6˜(Ô#€AÜˆS‹	€AÜ˜� 1�Ó%¨Õ)€Gà�qÐÐrn   c                ó   a € V 3R  lpV# )c                ó   <€ S! V !  # rp   ri   )r†  rÍ  s   &€rk   Ú
uncurry_rlÚuncurry.<locals>.uncurry_rlz  s   ø€ Ù�T‰{Ðrn   ri   )rÍ  rê  s   f rk   Úuncurryrì  y  s   ø€ õàÐrn   c                ó   a € V 3R  lpV# )c           	     ó`   <€ V w  rr4rVS! WW4WV4      pWu8w  d   \        WVV\        Wv4      4      # R # rp   )r�  rÌ  )	r†  rJ  rK  r°   rg  rc   r~  rž  rÎ  s	   &       €rk   Útrig_rewriter_rlÚ'trig_rewriter.<locals>.trig_rewriter_rl  s<   ø€ Ø(,Ñ%ˆˆa�IÙ˜A !¨	Ó:ˆ	ØÔ!Ü˜y°)¼^ÈIÓ=^Ó_Ð_ñ "rn   ri   )rÎ  rï  s   f rk   Útrig_rewriterrñ  ~  s   ø€ õ`ð
 Ðrn   c                ó’   € VP                   ;'       d5    VP                   ;'       d!    VP                  ;'       d    VP                  # rp   )Úis_evenr
  ©rJ  rK  r°   rg  r_  rk  s   &&&&&&rk   r�  r�  ‡  sC   € ˜QŸY™Y÷ *ð *¨1¯9©9÷ *ð *Ø×Ñ÷*ð *Ø×)Ñ)ð*rn   c                óà   € ^\        ^V ,          V,          4      ,
          ^,          V^,          ,          ^\        ^V,          V,          4      ,           ^,          V^,          ,          ,          # r“  )r,   ©rJ  rK  r°   rg  r_  r~  s   &&&&&&rk   r�  r�  ‹  sK   €  q¬3¨q°­s°6­z«?Õ':¸aÕ&?ÀQÈÅUÕ%KØ'(¬3¨q°­s°6­z«?Õ':¸aÕ&?ÀQÈÅUÕ%Kö%Mrn   c                ó4   € VP                   ;'       d    V^8¬  # ©rô  ©rÀ  rô  s   &&&&&&rk   r�  r�  Ž  ó   € ¸1¿8¹8×;NÐ;NÈÈQÉÐ;Nrn   c                óÐ   € ^\        W,          4      ^,          ,
          V^,
          ^,          ,          \        W,          4      ,          \        W,          4      V,          ,          # r“  )r,   r-   rö  s   &&&&&&rk   r�  r�  ‘  óB   €  Q¬¨Q­X«¸Õ)9Õ%9¸aÀ!½eÀq½[Õ$IÜ$'¨­£Mõ%2ä$'¨­£M°QÕ$6ö%7rn   c                ó4   € VP                   ;'       d    V^8¬  # rø  rù  rô  s   &&&&&&rk   r�  r�  •  rú  rn   c                óÐ   € ^\        W,          4      ^,          ,
          V^,
          ^,          ,          \        W,          4      ,          \        W,          4      V,          ,          # r“  )r-   r,   rö  s   &&&&&&rk   r�  r�  ˜  rü  rn   c                ó4   € VP                   ;'       d    V^8¬  # ©é   ©ró  rô  s   &&&&&&rk   r�  r�  œ  ó   € ¸A¿I¹I×<PÐ<PÈ!ÈqÉ&Ð<Prn   c                óÞ   € ^\        W,          4      ^,          ,           V^,          ^,
          ,          \        W,          4      ^,          ,          \        W,          4      V,          ,          # r“  )r.   r1   rö  s   &&&&&&rk   r�  r�  ž  óG   €  Q¬¨Q­X«¸Õ)9Õ%9¸qÀ½sÀQ½wÕ$GÜ$'¨­£M°1Õ$4õ%5ä$'¨­£M°QÕ$6ö%7rn   c                ó   € VP                   # rp   rù  rô  s   &&&&&&rk   r�  r�  ¢  ó   € ¸1¿8º8rn   c                óÐ   € \        W,          4      ^,          ^,
          V^,
          ^,          ,          \        W,          4      ,          \        W,          4      V,          ,          # rP  )r1   r.   rö  s   &&&&&&rk   r�  r�  ¤  sB   € ¤S¨­£]°AÕ%5¸Õ%9ÀÀAÅÈ½{Õ$KÜ%(¨­£]õ%3ä%(¨­£]°aÕ%7ö%8rn   c                ó&   € V^8H  ;'       d    V^ 8H  # rP  ri   rô  s   &&&&&&rk   r�  r�  ¨  s   € ¸AÀ¹F×<MÐ<MÀqÈAÁvÐ<Mrn   c                ó@   € \        W,          4      ^,          ^,
          # rP  )r1   rö  s   &&&&&&rk   r�  r�  ª  s   € ¤C¨­£M°1Õ$4°qÖ$8rn   c                ó4   € VP                   ;'       d    V^8¬  # r   r  rô  s   &&&&&&rk   r�  r�  ¬  r  rn   c                óÞ   € ^\        W,          4      ^,          ,           V^,          ^,
          ,          \        W,          4      ^,          ,          \        W,          4      V,          ,          # r“  )r/   r0   rö  s   &&&&&&rk   r�  r�  ®  r  rn   c                ó   € VP                   # rp   rù  rô  s   &&&&&&rk   r�  r�  ²  r  rn   c                óÐ   € \        W,          4      ^,          ^,
          V^,
          ^,          ,          \        W,          4      ,          \        W,          4      V,          ,          # rP  )r0   r/   rö  s   &&&&&&rk   r�  r�  ´  sB   € ¤S¨­£]°AÕ%5¸Õ%9ÀÀAÅÈ½{Õ$KÜ$'¨­£Mõ%2ä$'¨­£M°QÕ$6ö%7rn   c                óø  a	€ V w  o	p\         ;QJ d)    V	3R  l\        \        3 4       F  '       g   K   RM	  RM! V	3R  l\        \        3 4       4      '       d›   \        V4      w  r#rEpS	P	                  V4      pV'       g   R# \        \        \        \        \        \        \        /4      ! \        W4WV3 Uu. uF"  q‡P                  V\        P                  4      NK$  	  upS	V.,           4      4      # R# u upi )c              3  óF   <"  € T F  pSP                  V4      x € K  	  R # 5irp   rö  rn  s   & €rk   r¼   Ú#trig_sincos_rule.<locals>.<genexpr>»  ó   øé € Ð
0¡Z ˆ9�=‰=˜×Ð£Zùrp  TFN)rÅ   r-   r,   rà  r·  rÞ  Úsincos_botheven_conditionÚsincos_bothevenÚsincos_sinodd_conditionÚsincos_sinoddÚsincos_cosodd_conditionÚsincos_cosoddr  rø  r   r÷  ©
rÍ  r~  r  rJ  rK  r°   rg  r·  r_  rc   s
   &        @rk   Útrig_sincos_ruler  ¸  sÅ   ø€ Ø Ñ€Iˆvç
ƒsÔ
0¤c¬3¡ZÓ
0‡s‡s‚sÔ
0¤c¬3¡ZÓ
0×0Ò0Ü,¨VÓ4Ñˆ�A˜!Ø—‘ Ó(ˆßÙäÜ%¤Ü#¤]Ü#¤]ð
ô ô Ø,-°!©<Ó8©< a�Y‰Y�qœ!Ÿ&™&Ö!©<Ñ8Ø˜Ðõ ó!ó	"ð 	"ñ 1ùò 9s   Â9(C7c                óP  a	€ V w  o	pS	P                  ^\        V4      ,          \        V4      /4      o	\        ;QJ d)    V	3R l\        \        3 4       F  '       g   K   RM	  RM! V	3R l\        \        3 4       4      '       d›   \        V4      w  r#rEpS	P                  V4      pV'       g   R# \        \        \        \        \        \        \        /4      ! \        W4WV3 Uu. uF"  q‡P                  V\         P"                  4      NK$  	  upS	V.,           4      4      # R# u upi )r§   c              3  óF   <"  € T F  pSP                  V4      x € K  	  R # 5irp   rö  rn  s   & €rk   r¼   Ú#trig_tansec_rule.<locals>.<genexpr>Ð  r  rp  TFN)rÑ   r,   r1   rÅ   r.   rã  r·  rÞ  Útansec_tanodd_conditionÚtansec_tanoddÚtansec_seceven_conditionÚtansec_secevenÚtan_tansquared_conditionÚtan_tansquaredr  rø  r   r÷  r  s
   &        @rk   Útrig_tansec_ruler$  É  së   ø€ Ø Ñ€Iˆvà—‘Ø	ŒC�‹K�œ˜V›ð ó €I÷ ƒsÔ
0¤c¬3¡ZÓ
0‡s‡s‚sÔ
0¤c¬3¡ZÓ
0×0Ò0Ü,¨VÓ4Ñˆ�A˜!Ø—‘ Ó(ˆßÙäÜ#¤]Ü$¤nÜ$¤nð
ô ô Ø,-°!©<Ó8©< a�Y‰Y�qœ!Ÿ&™&Ö!©<Ñ8Ø˜Ðõ ó!ó	"ð 	"ñ 1ùò 9s   Ã%(D#c                óº  a	€ V w  o	pS	P                  ^\        V4      ,          \        V4      ^\        V4      ,          \	        V4      \        V4      \        V4      ,          \	        V4      /4      o	\        ;QJ d)    V	3R l\        \        3 4       F  '       g   K   RM	  RM! V	3R l\        \        3 4       4      '       d‘   \        V4      w  r#rEpS	P                  V4      pV'       g   R# \        \        \        \        \        /4      ! \        W4WV3 Uu. uF"  q‡P                  V\         P"                  4      NK$  	  upS	V.,           4      4      # R# u upi )r§   c              3  óF   <"  € T F  pSP                  V4      x € K  	  R # 5irp   rö  rn  s   & €rk   r¼   Ú#trig_cotcsc_rule.<locals>.<genexpr>æ  r  rp  TFN)rÑ   r-   r0   r.   r/   r,   rÅ   rå  r·  rÞ  Úcotcsc_cotodd_conditionÚcotcsc_cotoddÚcotcsc_csceven_conditionÚcotcsc_cscevenr  rø  r   r÷  r  s
   &        @rk   Útrig_cotcsc_ruler,  Þ  s  ø€ Ø Ñ€IˆvØ—‘Ø	ŒC�‹K�œ˜V›Ø	ŒC�‹K�œ˜V›ÜˆF‹”c˜&“kÕ!¤3 v£;ð ó €I÷ ƒsÔ
0¤c¬3¡ZÓ
0‡s‡s‚sÔ
0¤c¬3¡ZÓ
0×0Ò0Ü,¨VÓ4Ñˆ�A˜!Ø—‘ Ó(ˆßÙäÜ#¤]Ü$¤nð
ô ô Ø,-°!©<Ó8©< a�Y‰Y�qœ!Ÿ&™&Ö!©<Ñ8Ø˜Ðõ ó!ó"ð 	"ñ 1ùò 9s   Ä(Ec                ó@  € V w  r\        R \        ^V,          4      .R7      pVP                  \        ^V,          4      V,          4      pV'       dL   ^\        V4      ,          \        V4      ,          \        ^V,          4      ,          p\	        W,          V4      # R# )rJ  r  N)r   r-   r·  r,   rÌ  )rÍ  rc   r~  rJ  r·  Ú
sin_doubles   &     rk   Útrig_sindouble_ruler/  ó  su   € Ø Ñ€IÜˆSœ3˜q �x›=˜/Ô*€AØ�O‰OœC  &¥›M¨!�OÓ,€EßØ”s˜6“{•]¤3 v£;Õ.¬s°1°Vµ8«}Õ<ˆ
Ü˜iÕ4°fÓ=Ð=ñ rn   c                ó’   € \        \        \        4      \        \        4      \        \        4      \        \
        4      4      ! V 4      # rp   )r\   r]   r  r$  r,  r/  rè  s   &rk   Útrig_powers_products_ruler1  û  s<   € Ü”)Ô,Ó-ÜÔ,Ó-ÜÔ,Ó-ÜÔ/Ó0ô2ð 3;ó<ð <rn   c           
     ór  € V w  r\        R ^ V.R7      p\        R^ V.R7      p\        R4      pW4V^,          ,          ,           pVP                  V4      pV EF[  pVP                  V4      p	V	P	                  V\
        P                  4      p
V	P	                  V\
        P                  4      pV
P                  ;'       d    V
^ 8„  ;'       g    V
P                  pVP                  ;'       d    V^ 8„  ;'       g    VP                  pV
P                  ;'       d    V
^ 8  ;'       g    V
P                  pVP                  ;'       d    V^ 8  ;'       g    VP                  pRpV'       d7   V'       d/   \        V
4      \        V4      ,          \        V4      ,          pRpM£V'       dK   V'       dC   \        V
4      \        V) 4      ,          pV\        V4      ,          p\        VV) 8„  VV8  4      pMQV'       dJ   V'       dB   \        V
) 4      \        V4      ,          pV\        V4      ,          p\        VV) 8„  VV8  4      pV'       g   EK÷  / p\        \        \        \        \         \"        3 FL  pV! V4      V\        V! V4      ^,          4      &   ^V! V4      ,          V\        V! V4      R,          4      &   KN  	  VP%                  VV4      P'                  4       p\)        VV4      pVP+                  V4      '       d   EK¯  V\-        VV4      ,          pVP'                  4       pVP                  ^\        V4      ,          4      pV'       d-   VP/                  ^\        V4      ,          \        V4      /4      p\1        VV4      pVP3                  4       '       d   EKL  \5        WVVVVX4      u # 	  R# )rJ  r  rK  rÌ  NTrb  )r   r   rÒ  r·  rø  r   r÷  Ú	is_numberrQ  Úis_negativer)   r.   r-   rR   r1   r,   r0   r/   rÑ   rÓ  r—  r¿  r�  rŽ  rÌ  rz   rË  )rÍ  rc   r~  rÉ  rÊ  rÌ  Útarget_patternÚmatchesr˜  r·  rJ  rK  Ú
a_positiveÚ
b_positiveÚ
a_negativeÚ
b_negativeÚx_funcrÎ  r’   Úsubstitutionsr‰  ÚreplacedÚsecantsr”   s   &                       rk   Útrig_substitution_ruler?    së  € Ø Ñ€IÜˆS˜1˜f˜+Ô&€AÜˆS˜1˜f˜+Ô&€AÜ�'‹N€EØ˜6 1�9�•_€Nà�n‰n˜^Ó,€GÜˆØ—
‘
˜>Ó*ˆØ�I‰I�aœŸ™Ó ˆØ�I‰I�aœŸ™Ó ˆà—{‘{×,Ð, q¨1¡u×>Ð>°·±ˆ
Ø—{‘{×,Ð, q¨1¡u×>Ð>°·±ˆ
Ø—{‘{×,Ð, q¨1¡u×>Ð>°·±ˆ
Ø—{‘{×,Ð, q¨1¡u×>Ð>°·±ˆ
ØˆßŸ*ä˜1“gœd 1›g•o¬¨U«Õ3ˆFð ‰KßŸJä˜A“wœt Q B›xÕ'ˆHØ¤ E£
Õ*ˆFÜ˜f¨ yÑ0°&¸8Ñ2CÓD‰KßŸJä˜Q˜B“x¤ Q£Õ'ˆHØ¤ E£
Õ*ˆFÜ˜f¨ yÑ0°&¸8Ñ2CÓDˆKßŠ6ð ˆMÜœ3¤Üœ3¤ó%�á34°U³8�œd¡1 U£8¨Q¥;Ó/Ñ0Ø67¹¸%»µj�œd¡1 U£8¨b¥>Ó2Ó3ñ%ð
 !—~‘~ f¨fÓ5×>Ñ>Ó@ˆHÜ" 8¨]Ó;ˆHØ—<‘< ×'Õ'ØœK¨°Ó6Õ6�Ø#×,Ñ,Ó.�Ø"Ÿ-™-¨¬#¨e«*­Ó5�ßØ'×0Ñ0Øœ#˜e›*�¤c¨%£jð2ó  �Hô )¨°5Ó9�Ø×1Ñ1×3Õ3Ü/°	Ø˜v x°¸+óGò Góc rn   c                ó  € V w  r\        V4      w  r4rVVP                  V4      pV'       dT   ^ Wv,          8w  dE   \        Wv,          V4      pWt,          Wu,          rT\        WWB,          V,           V) V,          V4      # R# R# rð  )rç  r·  rÌ  r¸  )	rÍ  rc   r~  r  r°   rK  rX  r·  r”   s	   &        rk   Úheaviside_rulerA  =  so   € Ø Ñ€IÜ(¨Ó0Ñ€G�Ø�O‰O˜GÓ$€Eß��e•h”ä  ¥¨6Ó2ˆØ�x˜�ˆ1Ü˜Y°µ¸1µ¸q¸bÀ½dÀGÓLÐLñ	 �urn   c               ó   € V ^8„  d   QhRR/# r(  ri   )rj   s   "rk   rl   rl   H  s   € ÷ Mñ M˜|ñ Mrn   c                ó&  € V w  r\        VP                  4      ^8X  d   \        P                  pMVP                  ^,          pVP                  '       d   V^ 8  d   R# \        RV.R7      \        RV^ .R7      rTVP                  ^ ,          P                  WEV,          ,           4      pV'       g   R# Wd,          We,          rT\        V^ 4      pV\        P                  J d   RpM\        \        WC4      V4      p\        WW4V4      p	\        WyV4      # )r§   NrJ  r  rK  )r^  r†  r   r÷  r±  r   r·  r   r$  rŠ   r9   rÃ  r&  )
rÍ  rc   rR  rg  rJ  rK  r·  r%  r"  r!  s
   &         rk   Údirac_delta_rulerD  H  sÖ   € Ø�L€IÜ
ˆ9�>‰>Ó˜aÔÜ�F‰F‰à�N‰N˜1ÕˆØ�<�<ˆ<˜1˜qœ5ÙÜ�˜a˜SÔ!¤4¨°a¸°VÔ#<€qØ�N‰N˜1Õ×#Ñ# A¨¥c¥EÓ*€EßÙØ�8�U•X€qÜ�a˜“8€LØ”q—v‘vÓØ‰ä&¤z°!Ó'7¸Ó;ˆÜ! )°°aÓ8€LÜ ¸OÓLÐLrn   c           
     óÊ  € V w  r\        R 4      p\        WV4      p^ pV'       Ed½   \        R4       . pV EFy  w  rxp	\        W“4      p
V^,           p\        RP	                  WZ4      4       V
P                  4       '       d   KM  \        V^,
          4      ^ 8w  dú   VP                  4       w  r¼V
'       d   \        W‰,          W8Wš4      p
VP                  '       d»   . p. p\        V\        4      '       d   VP                  pMVP                  V4       V F]  p\        VP                  4      '       d   K   \        \!        W^ 4      V4      pV'       g   K@  VP                  V\#        V^ 4      34       K_  	  VP                  V
R34       \%        W’V4      p
VP                  \'        WW7V
4      4       EK|  	  \)        V4      ^8”  d   \+        WV4      # V'       d
   V^ ,          # R# R# )rÚ   zList of Substitution Rulesrá  TN)r   rÉ  r`   rÌ  rj   rz   rY   r¤  r‘   r¶  r”  r   r†  rî   r   rì  r—  r   r©  rÈ   r^  rw  )rÍ  rc   r~  rÉ   r<  rš  ÚwaysrÊ   rL  r§  Úsubruler³  r×  Ú	piecewiseÚcould_be_zeror˜  r”   s   &                rk   Úsubstitution_rulerJ  ^  s¥  € Ø Ñ€Iä�#‹J€EÜ& y¸%Ó@€MØ€Eß€}ÜÐ*Ô+ØˆÜ&3Ñ"ˆF�{Ü$ [Ó8ˆGØ˜A•IˆEÜ�-×&Ñ& uÓ6Ô7à×)Ñ)×+Ò+Ùä˜˜A�‹ !Ô#Ø×+Ñ+Ó-‘�ßÜ/°µÀÈ;Ó`�Gà×%×%Ð%Ø "�IØ$&�Mä! %¬×-Ò-Ø(-¯
©
™à%×,Ñ,¨UÔ3ã -˜Ü(¨¯©×6Ô6Ü&4´[ÀÐRSÓ5TÐV\Ó&]˜Gç&™wØ )× 0Ñ 0Ø$+Ü$& t¨Q£Kð2"ö !#ñ !.ð ×$Ñ$ g¨t _Ô5Ü+¨KÀÓK�Gà�K‰Kœ˜i°ÀÓH×IñE '4ôH ˆt‹9�qŒ=Ü" 9°dÓ;Ð;ßØ˜•7ˆNñ ñS rn   c                ó"   € V P                  4       # rp   )r¢  ©rc   r~  s   &&rk   r�  r�  ’  s   € ˜i×<Ñ<Ô>rn   c                ó$   € V P                  V4      # rp   )ÚapartrL  s   &&rk   r�  r�  “  s   € ˜iŸo™o¨fÔ5rn   c                ó   € R # rŒ  ri   rL  s   &&rk   r�  r�  ˜  s   € ™drn   c                ó"   € V P                  4       # rp   )r   rL  s   &&rk   r�  r�  ™  ó   € ˜i×.Ñ.Ô0rn   c                óÜ   a€ \        V \        \        34      ;'       gO    \        ;QJ d)    V3R  lV P                   4       F  '       d   K   R# 	  R# ! V3R  lV P                   4       4      # )c              3  ól   <"  € T F)  qP                   ;'       g    VP                  S4      x € K+  	  R # 5irp   )rÏ   r{  r‚  s   & €rk   r¼   Ú<lambda>.<locals>.<genexpr>�  s-   øé € Ð0sÑdrÐ]`·±×1XÐ1X¸s×?PÑ?PÐQWÓ?XÔ1XÓdrùs   ƒ4š4FT)r”  r   r   r}  r†  rL  s   &frk   r�  r�  œ  sM   ø€ Ü�9œs¤C˜jÓ)×sÐs¯S«SÔ0sÐdm×drÒdrÓ0s¯S¬SÐsªSÐs¨SÔ0sÐdm×drÒdrÓ0sÓ-sÐsrn   c                ó"   € V P                  4       # rp   ©ÚexpandrL  s   &&rk   r�  r�  ž  rQ  rn   c                óŽ   € \        V P                  \        4       Uu0 uF  q"P                  ^ ,          kK  	  up4      ^8„  # u upi r|  )r^  Úatomsr+   r†  )rc   r~  rJ  s   && rk   r�  r�  ¢  s5   € Ü 	§¡Ô0EÔ FÓGÑ F˜1�V‰V�A�YˆYÑ FÑGÓHÈ1ÒLùÒGs   �Ac                ó&   € V P                  R R7      # )T)ÚtrigrV  rL  s   &&rk   r�  r�  ¤  s   € ˜i×.Ñ.°DÐ.Ô9rn   c                óî   € V ^ ,          pVP                   pVP                  pVP                  pV P                  V9   d0   V P                  V9   d
   \	        V !  # \        WP                  4      # \        V !  # r|  )Ú	variablesr˜  r¶  r~  r�  r…  rŠ   )rÍ  rc   Údiff_variablesÚundifferentiated_functionÚintegrand_variabless   &    rk   Úderivative_rulera  ¦  sj   € Ø˜•€IØ×(Ñ(€NØ )§¡ÐØ3×@Ñ@Ðà‡�Ð-Ô-Ø�?‰?˜nÔ,Ü! 8Ñ,Ð,ä 	¯?©?Ó;Ð;ä˜XÑ&Ð&rn   c           	     óÞ   € V w  rVP                  ^\        V4      ,          4      '       dB   VP                  ^\        V4      ,          \        V4      4      p\	        WV\        W24      4      # R# r\  )r·  r,   rÑ   r1   r�  rÌ  )rÍ  rc   r~  rž  s   &   rk   Úrewrites_rulerc  ´  sV   € Ø Ñ€Ià‡��qœ˜V›•}×%Ò%Ø—N‘N 1¤S¨£[¥=´#°f³+Ó>ˆ	Ü˜9¨i¼È	Ó9ZÓ[Ð[ñ &rn   c                ó   € \        V !  # rp   )r…  rè  s   &rk   Úfallback_rulere  »  rê  rn   zdict[Expr, Expr | None]Ú_integral_cachezdict[Expr, int]r�  Úzc                óˆ  aa€ V P                  S\        /4      pV\        9   d?   \        V,          f   \        V S4      # \        V,          P                  \        S4      S3# R\        V&   \	        V S4      pV3R loV3R lp\        \        \        4      \        \        S\        \        \        \        4      \        \        4      \        \        4      \        \        4      4      \        \        \        \         \"        \$        \&        \        \        \(        4      \        \*        4      \        \,        4      \        \        4      \        \        4      \        \.        4      4      \0        \2        \4        \6        \8        \,        \:        \<        \>        \@        \B        \D        /4      4      \        \        \6        4      \        \F        4      \        \I        \J        \L        \O        V! \&        \        4      \P        4      \O        V! \&        \        4      \R        4      \O        V! \&        \T        .\V        O5!  \X        4      \O        V! \&        \        4      \Z        4      \\        \^        4      4      \        \O        V! \&        \        4      \`        4      4      \        \b        4      4      \d        4      ! V4      p\        V V# )a  Returns the steps needed to compute an integral.

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

This function attempts to mirror what a student would do by hand as
closely as possible.

SymPy Gamma uses this to provide a step-by-step explanation of an
integral. The code it uses to format the results of this function can be
found at
https://github.com/sympy/sympy_gamma/blob/master/app/logic/intsteps.py.

Examples
========

>>> from sympy import exp, sin
>>> from sympy.integrals.manualintegrate import integral_steps
>>> from sympy.abc import x
>>> print(repr(integral_steps(exp(x) / (1 + exp(2 * x)), x)))     # doctest: +NORMALIZE_WHITESPACE
URule(integrand=exp(x)/(exp(2*x) + 1), variable=x, u_var=_u, u_func=exp(x),
substep=ArctanRule(integrand=1/(_u**2 + 1), variable=_u, a=1, b=1, c=1))
>>> print(repr(integral_steps(sin(x), x)))     # doctest: +NORMALIZE_WHITESPACE
SinRule(integrand=sin(x), variable=x)
>>> print(repr(integral_steps((x**2 + 3)**2, x)))     # doctest: +NORMALIZE_WHITESPACE
RewriteRule(integrand=(x**2 + 3)**2, variable=x, rewritten=x**4 + 6*x**2 + 9,
substep=AddRule(integrand=x**4 + 6*x**2 + 9, variable=x,
substeps=[PowerRule(integrand=x**4, variable=x, base=x, exp=4),
ConstantTimesRule(integrand=6*x**2, variable=x, constant=6, other=x**2,
substep=PowerRule(integrand=x**2, variable=x, base=x, exp=2)),
ConstantRule(integrand=9, variable=x)]))

Returns
=======

rule : Rule
    The first step; most rules have substeps that must also be
    considered. These substeps can be evaluated using ``manualintegrate``
    to obtain a result.

Nc                óº   <€ V P                   pSVP                  9  d   \        # \        \        \
        3 F  p\        W4      '       g   K  Vu # 	  \        V4      # rp   )rc   r¶  r   r   r+   rO   r”  Útype)rÍ  rc   rr  r~  s   &  €rk   rÚ  Úintegral_steps.<locals>.key  sQ   ø€ Ø×&Ñ&ˆ	à˜×/Ñ/Ô/ÜˆMÜÔ1Ô3GÓHˆCÜ˜)×)Ô)Ø’
ñ Iô �I‹Ðrn   c                 ó   <a € VV 3R  lpV# )c                ó@   <€ S! V 4      pT;'       d    \        VS4      # rp   )Ú
issubclass)rÍ  rS  rÚ  Úklassess   & €€rk   Ú_integral_is_subclassÚKintegral_steps.<locals>.integral_is_subclass.<locals>._integral_is_subclass  s!   ø€ Ù�H“ˆAØ×/Ð/œ A wÓ/Ð/rn   ri   )ro  rp  rÚ  s   j €rk   Úintegral_is_subclassÚ,integral_steps.<locals>.integral_is_subclass  s   ù€ ö	0ð %Ð$rn   )3rŽ  r�  rf  r…  rf  r\   r]   r  r[   r   rî  re  rM  r­  r   r   rò  r   rY  r   r^  r™  rA  rt  r   ra  r+   r–  r8   r9   rD  rO   rý  r   ré  rÖ  rx  rc  rJ  r^   Úpartial_fractions_ruleÚcancel_ruler    r½  r”  Údistribute_expand_ruler1  Útrig_expand_ruler?  r?  re  )rc   r~  Úoptionsr‘  rÍ  rr  rÒ   rÚ  s   &f,    @rk   rÌ  rÌ  Å  s$  ù€ ðZ ×!Ñ! 6¬<Ð"8Ó9€HØ”?Ô"Ü˜8Õ$Ò,ä 	¨6Ó2Ð2ô $ HÕ-×6Ñ6´|ÀVÓLØðð ð %)Œ˜Ñ!ä˜I vÓ.€Hõõ%ô ÜÔ'Ó(Ü”&˜Ü”œ	¤*Ó-¬yÔ9JÓ/KÜ!Ô"2Ó3Ü!Ô"6Ó7ó9ô ”JÜ”Ü”Ü”œ	¤(Ó+¬YÔ7HÓ-IÜ!¤.Ó1´9Ô=QÓ3RÜ!Ô"2Ó3Ü!Ô"5Ó6ó8ô œÜ!¤9Ü”~ÜÔ(Ü Ô"6Ü”Mð!
ó ó 	ô$ 	Ü”iÓ Ü”oÓ&Ü”lÜÜ!ÜÙ(¬¬cÓ2Ü*ó,ô Ù(¬¬cÓ2Üó!ô Ù(¬¬cð -Ü+ó-äó ô Ù(¬¬cÓ2Ü*ó,ô *Ü ó#ó ô& ”iÑ 4´S¼#Ó >ÄÓPÓQÜÔ,Ó-ó/	
ô2 	ô[-ðZ  ó[-!€Fô\ 	˜Ð!Ø€Mrn   c                ó  € \        W4      P                  4       p\        P                  4        \	        V\
        4      '       dÁ   \        VP                  4      ^8X  d§   VP                  ^ ,          ^,          p\	        V\        4      '       dw   VP                  ^,          ^,          R8X  dX   VP                  VP                  ^,          ^ ,          \        VP                  !  3VP                  ^ ,          ^ ,          R34      pV# )a„  manualintegrate(f, var)

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

Compute indefinite integral of a single variable using an algorithm that
resembles what a student would do by hand.

Unlike :func:`~.integrate`, var can only be a single symbol.

Examples
========

>>> from sympy import sin, cos, tan, exp, log, integrate
>>> from sympy.integrals.manualintegrate import manualintegrate
>>> from sympy.abc import x
>>> manualintegrate(1 / x, x)
log(x)
>>> integrate(1/x)
log(x)
>>> manualintegrate(log(x), x)
x*log(x) - x
>>> integrate(log(x))
x*log(x) - x
>>> manualintegrate(exp(x) / (1 + exp(2 * x)), x)
atan(exp(x))
>>> integrate(exp(x) / (1 + exp(2 * x)))
RootSum(4*_z**2 + 1, Lambda(_i, _i*log(2*_i + exp(x))))
>>> manualintegrate(cos(x)**4 * sin(x), x)
-cos(x)**5/5
>>> integrate(cos(x)**4 * sin(x), x)
-cos(x)**5/5
>>> manualintegrate(cos(x)**4 * sin(x)**3, x)
cos(x)**7/7 - cos(x)**5/5
>>> integrate(cos(x)**4 * sin(x)**3, x)
cos(x)**7/7 - cos(x)**5/5
>>> manualintegrate(tan(x), x)
-log(cos(x))
>>> integrate(tan(x), x)
-log(cos(x))

See Also
========

sympy.integrals.integrals.integrate
sympy.integrals.integrals.Integral.doit
sympy.integrals.integrals.Integral
T)rÌ  rs   r�  Úclearr”  r*   r^  r†  r   rÍ  r   )r‰  r™  rÒ   r®  s   &&  rk   Úmanualintegrater{  C  s»   € ôb ˜AÓ#×(Ñ(Ó*€Fä×ÑÔä�&œ)×$Ò$¬¨V¯[©[Ó)9¸QÔ)>Ø�{‰{˜1�~˜aÕ ˆÜ�dœB×Ò F§K¡K°¥N°1Õ$5¸Ô$=Ø—[‘[Ø—‘˜Q• Õ"¤B¨¯	©	¡NÐ3Ø—‘˜Q• Õ" DÐ)ó+ˆFð €Mrn   NrŒ  (  Ú__conditional_annotations__rˆ   Ú
__future__r   Útypingr   r   r   r   Úabcr   r   Údataclassesr	   Úcollectionsr
   Úcollections.abcr   Úsympy.core.addr   Úsympy.core.cacher   Úsympy.core.containersr   Úsympy.core.exprr   Úsympy.core.functionr   Úsympy.core.logicr   Úsympy.core.mulr   Úsympy.core.numbersr   r   r   Úsympy.core.powerr   Úsympy.core.relationalr   r   r   Úsympy.core.singletonr   Úsympy.core.symbolr   r   r   Ú$sympy.functions.elementary.complexesr   Ú&sympy.functions.elementary.exponentialr   r    Ú%sympy.functions.elementary.hyperbolicr!   r"   r#   r$   r%   r&   r'   r(   Ú(sympy.functions.elementary.miscellaneousr)   Ú$sympy.functions.elementary.piecewiser*   Ú(sympy.functions.elementary.trigonometricr+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   Ú'sympy.functions.special.delta_functionsr8   r9   Ú'sympy.functions.special.error_functionsr:   r;   r<   r=   r>   r?   r@   rA   rB   rC   Ú'sympy.functions.special.gamma_functionsrD   Ú*sympy.functions.special.elliptic_integralsrE   rF   Ú#sympy.functions.special.polynomialsrG   rH   rI   rJ   rK   rL   rM   rN   rO   Ú&sympy.functions.special.zeta_functionsrP   Ú	integralsrQ   Úsympy.logic.boolalgrR   Úsympy.ntheory.factor_rS   Úsympy.polys.polytoolsrT   rU   rV   rW   Úsympy.simplify.radsimprX   Úsympy.simplify.simplifyrY   Úsympy.solvers.solversrZ   Úsympy.strategies.corer[   r\   r]   r^   Úsympy.utilities.iterablesr_   Úsympy.utilities.miscr`   rb   rƒ   rŠ   r‘   r¡   r¬   r³   rÈ   rÙ   rè   rø   rü   r  r  r  r  r  r$  r&  r-  r1  r7  r=  rC  rI  rU  rp  rw  r…  r�  r�  r§  r©  r¸  rÃ  rË  râ  ré  rì  rò  rú  r  r  r  r  r  r!  r#  r-  r4  r:  r@  rF  rL  rT  r]  rc  ri  ro  rx  rf  r�  r—  r½  rÉ  rÑ  r×  rÞ  rx  ré  rî  rò  rý  rþ  r€   r  r  r  r&  r?  re  rY  r^  r†  r”  r–  r™  r­  rM  rt  rÖ  rÝ  rà  rã  rå  rç  rì  rñ  r  r  r  r  r  r  r   r!  r  r  r"  r#  r*  r+  r(  r)  r  r$  r,  r/  r1  r?  rA  rD  rJ  rt  ru  rv  rw  ra  rc  re  rf  Úintr�  r�  rÌ  r{  )r|  s   @rk   Ú<module>r¦     sZ
  øðôõ. #ß 7Ó 7ß #Ý !Ý #Ý #å Ý $Ý &Ý  Ý *Ý &Ý ß 1Ñ 1Ý  ß 1Ñ 1Ý "ß 1Ñ 1Ý 4ß ;÷)÷ )ó )å 9Ý :÷F÷ F÷ Fõ Fç I÷(÷ (÷ (å >ß M÷÷ õ õ ;Ý Ý #Ý .ß BÓ BÝ +Ý ,Ý 'ß FÓ FÝ .Ý &ð ô
ˆ3ó 
ó ð
ð ô��só ó ðð ô.�:ó .ó ð.ð ô
1˜ó 
1ó ð
1ð ô	
�
ó 	
ó ð	
ð ô5�Jó 5ó ð5ð ôNˆdó Nó ðNð ô1ˆDó 1ó ð1ð& ôT�ó Tó ðTð" ôQ�dó Qó ðQð" ô	ˆz˜3ó 	ó ð	ð ô#ˆhó #ó ð#ð ô"ˆhó "ó ð"ð ô"�ó "ó ð"ð ô#�ó #ó ð#ð ô"ˆxó "ó ð"ð ô#ˆxó #ó ð#ð ô	�Z ó 	ó ð	ð ô#ˆ~ó #ó ð#ð ô#ˆ~ó #ó ð#ð ô/ˆjó /ó ð/ð ô�Zó ó ðð ô#�ó #ó ð#ð ô$�*ó $ó ð$ð ôA *ó Aó ðAð ô F˜Zó  Fó ð FðF ô˜
ó ó ðð ôR�dó Ró ðRð ô�4ó ó ðð ô	@�Zó 	@ó ð	@ð ô	1�$ó 	1ó ð	1ð ô	˜ó 	ó ð	ð
 ôU�Dó Uó ðUð ô1�Dó 1ó ð1ð" ô	(�Zó 	(ó ð	(ð ô/1˜4ó /1ó ð/1ðd ô3�ó 3ó ð3ð ô˜ Só ó ðð ô	:Ð#ó 	:ó ð	:ð ôÐ'ó ó ðð ôÐ'ó ó ðð ôÐ'ó ó ðð ôBÐ%ó Bó ðBð ô-Ð$ó -ó ð-ð ô3Ð%ó 3ó ð3ð ôFÐ*ó Fó ðFð ôˆJ˜ó ó ðð
 ô/ˆUó /ó ð/ð ô3ˆeó 3ó ð3ð ôˆUó ó ðð ô/ˆUó /ó ð/ð ô3ˆeó 3ó ð3ð ôˆUó ó ðð ô.ˆjó .ó ð.ð" ô	F�:ó 	Fó ð	Fð ô	F�:ó 	Fó ð	Fð ô;�*ó ;ó ð;ð ô?�Zó ?ó ð?ð ôE�Jó Eó ðEð ôE�Jó Eó ðEô�:ô ò
ò20ðB   d¨D°$¸Ð=Ð òUònòòòò0#òò*@òjð2 OQÐ ÐKÓ PØ	€Ù
�‹*€ò(?õVVõ2M÷jIIòXLõMõ\ò~<ò~Xõ8-òJõZ)÷X@MõF3ð6 	ñó 	ðð 	ñó 	ðð 	ñó 	ðð 	ñó 	ðð 	ñó 	ðòò
ñ $ñ*ó+Ð ñ  ñOóP€ñ "Ñ"NÓOÐ áñ8ó9€ñ
 "Ñ"NÓOÐ áñ8ó9€ñ
 #Ñ#PÓQÐ Ùñ9ó:€ñ
 "Ñ"CÓDÐ Ùñ:ó;€ñ
 #Ñ#MÓNÐ ÙÙ9ó;€ñ #Ñ#PÓQÐ Ùñ9ó:€ñ
 "Ñ"CÓDÐ Ùñ9ó:€ò
"ò""ò*"ò*>ò<ó:GóxMöMó,0ñf "Ù>Ù5ó7Ñ ñ ñ #Ù0ó	2�ñ "ñuá0ó2Ñ ñ
 ñNá9ó	;Ñ ó'ó\ó#ð ,.�Ð(Ó -Ù"-©cÓ"2��Ó 2Ù�S‹z�ó{õ|;rn   