
    MZdρ              
       f   d dl mZ d dlmZ d dlmZmZmZmZ d dl	m
Z
mZmZ d dlmZ d dlmZ d dlmZmZmZ d dlmZmZ d d	lmZmZmZmZmZmZmZ d d
l m!Z! d dl"m#Z# d dl$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 d dl1m2Z2m3Z3 d dl4m5Z5m6Z6 d dl7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZA d dlBmCZC d dlDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZL d dlMmNZN d dlOmPZPmQZQ d dlRmSZS d dlTmUZUmVZVmWZWmXZXmYZY d dlZm[Z[m\Z\  ed      \
  Z]Z^Z_Z`ZaZbZcZdZeZf ed      ZgdedefdZhd Zid Zjd Zkd Zld Zme\d         Zne\d!        Zod" Zpd# Zqd$ Zrd% Zsd& Ztd' Zud( Zve\d)        Zwd* Zxd+ Zyd, Zzd- Z{e\d.        Z|d/ Z}d0 Z~e\d1        Ze\d2        Zd3 Zd4 Zd5 Ze\d6        Zd7 Ze\d8        Zd9 Zd: Ze\d;        Zd< Zd= Zd> Zd? Zd@ ZdA ZdB ZdC ZyD)E    )Expr)Mul)
DerivativeFunctiondiffexpand)IRationalpi)Ne)S)DummySymbolsymbols)explog)asinhcschcoshcothsechsinhtanh)sqrt)	Piecewise)acosacotacscasecasinatancoscotcscsecsintan)	Heaviside
DiracDelta)
elliptic_e
elliptic_f)
ChiCiEiShiSierferfifresnelcfresnelsli)
uppergamma)assoc_laguerre
chebyshevt
chebyshevu
gegenbauerhermitejacobilaguerrelegendre)polylog)Integral	integrate)And)manualintegratefind_substitutions_parts_ruleintegral_stepsmanual_subs)raisesslowzx y z u n a b c d efFc                 z    t        | t              |k(  sJ |j                  t              j                  |       sJ y N)rC   xr   equalsrJ   rK   s     C/usr/lib/python3/dist-packages/sympy/integrals/tests/test_manual.pyassert_is_integral_ofrR      s3    1a A%%%66!9A    c                  D   t        t        t              dz  dz   dz  t        t              dz  z  t        t              dz  z  t        t              t        t              dt        dz   dt        dz  z  z
  t        dz  z
  fgk(  sJ t        t        t              dz  t        t              t        t              z  z   t        t              t        t              z   z  t        t              t        t              t        t              z   ddt        z  fgk(  sJ t        dz   t        dd      t        t              ft        t        t        t        dz         z  t        t              v sJ t        t        t        t              t              dz  t        t              rJ y )N            )rD   r#   rN   r$   ur%   r'   r
   r   r   rJ    rS   rQ   test_find_substitutionsr\   "   s@   s1vqy1}q0Q:3q619DaK
a&!adUQq!tV^ad*	+,- - -s1vqy3q6CF?:s1vAO$),Q#a&!QqS(A'BC C CTE8B?CF+/A!c1a4%j.RSUV/WWWW!*QqT1"5q"8!Q????rS   c                     t        t        t              t        t        z  k(  sJ t        t        d      t              t        t        d      z  k(  sJ t        t        dz  t              t        dz  dz  k(  sJ t        dt        dz  z  dt        dz  z  z   t              t        dz  t        dz  z   k(  sJ t        t        dz   dz  t              t        dz   dz  dz  k(  sJ t        dt        z  dz   dz  t              dt        z  dz   dz  dz  k(  sJ t        t        dz   dz  t              t        dz   dz  dz  k(  sJ t        dt        z  dz   dz  t              dt        z  dz   dz  dz  k(  sJ y )NrU      rX   	   )rC   yrN   r   rZ   r[   rS   rQ    test_manualintegrate_polynomialsra   +   sI   1a AaC'''3q61%SV3331a4#q!tax///1q!t8a!Q$h.2adQTkAAAAEA:q)a!eaZ!^;;;AaC!Ga<+!a!|a/????AEA:q)a!eaZ!^;;;AaC!Ga<+!a!|a/????rS   c                     t        t        dt        z        t              t        dt        z        dz  k(  sJ t        dt        z  t              dt        z  t        d      z  k(  sJ t	        dt        dt        dt        z        z
        z  t        t        dt        dt        z        z
        dz
        dz  t        t        dt        dt        z        z
        dz         dz  z
         t        dt        z  t              t        t              k(  sJ t        ddt        z  dz   z  t              t        dt        z  dz         dz  k(  sJ t        t        t              dz  t        z  t              t        t              dz  dz  k(  sJ t	        t        t        z  t        t              dz   z  t        t        z         y )NrU   rV   r^   )rC   r   rN   r   rR   r   r[   rS   rQ   !test_manualintegrate_exponentialsrc   8   sX   3qs8Q'3qs8a<7771a4#Q#a&'8888!D3qs8,,d1s1Q3x<0145a7#d1s1Q3x<>PST>T:UVW:WWY 1q5!$A...1!a=!,AaC!Gq0@@@@3q619q=!,A	A===!Q$Aq/1a40rS   c                  |   t        t        t              t        t              z  t              t        t              t        t              z  dz  t        t              t	        t              z  dz  z
  k(  sJ t        dt        z  t	        t              z  t              dt        z  t        t              z  dt	        t              z  z   k(  sJ t        t        t        t              z  t              t        dz  t        t              z  dz  t        dz  dz  z
  k(  sJ t        t        t              t              t        t        t              z  t        z
  k(  sJ t        dt        dz  z  dz   t        t              z  t              dt        dz  z  t        t              z  dt        z  t        t              z  z
  dt        t              z  z   k(  sJ t        t        t              t              t        t        t              z  t        t        dz  dz         dz  z
  k(  sJ t        t	        t              t              d k(  sJ t        t        t              t              d k(  sJ t        t        dz  t              d k(  sJ t        t        t              t              } | d   t        t              k(  r| d   dk(  sJ y )	NrU   rX   r^      rW      rV   r   )rC   r   rN   r&   r"   r   r!   rE   )results    rQ   test_manualintegrate_partsrh   E   s   3q6CF?A.	Q#a&AQ#a&A 556 6 61Q3s1v:q)QqSQZ!CF(-BBBB1s1v:q)QT#a&[]QT!V-CCCC3q61%SVa777AadFQJ#a&0!4	!Q$s1v!CF
"RAY./ / /47A&!DG)c!Q$(mAo*EEEE s1vq!T)))s1vq!T)))q!tQ4'''a!$F!9QF1IN22NrS   c            	      6   t        t        t              t              t        t               k(  sJ t        t	        t              t              t        t        t                     k(  sJ t        t        t              t              t        t        t              t	        t              z         k(  sJ t        t        t              t              t        t        t              t        t              z          k(  sJ t        t        t              t        t              z  t              t        t              dz  dz  t        t              dz   dz  fv sJ t        t        t               t	        t              z  t              t        t               k(  sJ t        t        t              t        t              z  t              t        t               k(  sJ t        t        t              dz  t              t	        t              k(  sJ t        t        t              dz  t              t        t               k(  sJ t        t        t        t        dz        z  t              t        t	        t        dz        t        t        dz        z         dz  k(  sJ t        t        t              t        t        t                    z  t              t        t        t        t                    t        t        t                    z          k(  sJ t        t        dt        z        t        t              z  t              t         t        dt        z        z   k(  sJ t        t        dt        z        t        t              z  t              dt        t        t                    z  dt        t        t              dz        z  z   dt        t              dz  z  z
  k(  sJ t        t        dt        z        t        dt        z        dz         t        t        t        t        dz        z  t        t        dz        dz         t        t        t              t        t        t                           t        t        t              t        t        t                           t        t              dt        t        t        dz              z  }} t        | t              |k(  sJ |j!                  t              | z
  j#                  t$              j'                         dk(  sJ t)        t              t        t        t        dz              }} t        | t              |k(  sJ |j!                  t              | z
  j#                  t$              j'                         dk(  sJ y )NrU   r^   r   )rC   r&   rN   r"   r'   r   r%   r$   r#   rR   r   r   r   r   r   r!   r   rewriter   simplifyr   rP   s     rQ   !test_manualintegrate_trigonometryrm   X   s   3q61%#a&0003q61%#c!f+5553q61%SVc!f_)====3q61%#c!fs1vo*>)>>>>3q6CF?A.3q6Q;?SVQYJQRN2SSSSCF7SV+Q/CF7:::3q6CF?A.3q6'9993q619a(CF2223q619a(SVG3331s1a4y=!,C1IAqD	4I0J10LLLL3q6#c!f+-q1c#c!f+CPQF:S6T5TTTT3qs8CF?A.1"s1Q3x-???3qs8CF?A.
3s1v;3s1vqy>))Ac!faiK78 8 8 $qs)T!A#Yq[1!DAJ,QT
15$q'3tAw<0$q'3tAw<07Ad4!9o%qA1a A%%%FF1IM""3'002a7777CQqS	NqA1a A%%%FF1IM""3'002a777rS   c                     t        t        t              dz  t        t              z  t              t        t              dz  dz  k(  sJ t        t        t              dz  t        t              dz  z  t              t        dz  t        dt        z        dz  z
  k(  sJ t        t        t              t        t              dz  z  t              t        t              dz   dz  k(  sJ t        t        t              dz  t        t              dz  z  t              t        t              dz  dz  t        t              dz  dz  z
  k(  sJ t        t	        t              dz  t        t              z  t              t        t              dz  dz  t        t              z
  k(  sJ t        t	        t              t        t              dz  z  t              t        t              dz  dz  k(  sJ t        t        t              dz  t        t              z  t              t        t              dz   dz  dt        t              dz  z  dz  z   t        t              z
  k(  sJ t        t        t              dz  t        t              dz  z  t              t        t              dz   dz  dt        t              dz  z  dz  z
  t        t              dz  dz  z
  k(  sJ y )	NrU   r^      rX       re   rW      )rC   r&   rN   r"   r'   r%   r#   r$   r[   rS   rQ   test_manualintegrate_trigpowersrr   w   s)   3q619s1v-q1SVQY]BBB3q619s1vz115	AAaC2  3q6CFAI-q1c!faiZ!^CCC3q619s1vqy0!4A	AA	A%& & & 3q619s1v-q1SVQYq[3q65IIII3q6CFQJ.2c!faikAAA3q619s1v-q1	Q
1qQ{1}$s1v-. . .3q619s1vqy0!4	Q
1qQ{1}$s1vqy{23 3 3rS   c                  F,   t        t        t              dt        dt        z        z   z  t              t        t        t                    k(  sJ t        dddt        dz  z  z   z  t              t        dt        z  dz        dz  k(  sJ t        dddt        dz  z  z   z  t              t        t              dz  k(  sJ t        ddt        dz  z   z  t              t        t        dz        dz  k(  sJ t        dddt        dz  z  z   z  t              t        dt        z        dz  k(  sJ t	        dd	
      } t	        dd	
      }t        d| |t        dz  z  z   z  t              t        t        t        t        | |z        z        |t        | |z        z  z  | |z  dkD  ft        t        t        |  |z        z
        t        t        t        |  |z        z         z
  dt        |      z  t        |        z  z  d	f      k(  sJ t        dd|t        dz  z  z   z  t              t        t        t        dt        d|z        z  z        d|z  t        d|z        z  z  d|z  dkD  ft         t        t        dt        d|z        z  z
        t        t        dt        d|z        z  z         z
  z  dt        |      z  z  d	f      k(  sJ t        d| dt        dz  z  z   z  t              t        t        dt        z  t        |       z        dt        |       z  z  | dkD  ft        t        t        |        dz  z
        t        t        t        |        dz  z         z
  dt        |        z  z  d	f      k(  sJ t        dddt        dz  z  z   z  t              t        t              dz  k(  sJ t        dt        t        t        dz  z  z   z  t              t        t        t        t        t        z        z        t        t        t        t        z        z  z  k(  sJ t        dt        dt        dz  z
        z  t              t        t              k(  sJ t        dt        ddt        dz  z  z
        z  t              t        t              dz  k(  sJ t        dt        ddt        dz  z  z
        z  t              t        dt        z        k(  sJ t        dt        ddt        dz  z  z
        z  t              t        t        t        dd      z        dz  k(  sJ t        dt        t        dz  dz         z  t              t        t              k(  sJ t        dt        t        dz  dz         z  t              t        t        dz        k(  sJ t        dt        dt        dz  z  dz         z  t              t        t              dz  k(  sJ t        dt        dt        dz  z  dz         z  t              t        dt        z        dz  k(  sJ t        dt        | t        dz  z  dz         z  t              t        t        t        t        |        z        t        |        z  | dk  ft        t        |       t        z        t        |       z  | dkD  ft        d	f      k(  sJ t        dt        | t        dz  z         z  t              t        t        t        t        d| z        z        | dkD  ft        dt        z  dt        | t        dz  z         z  z         d	f      k(  sJ t        dt        t        dz  dz
        z  t              t        dt        z  dt        t        dz  dz
        z  z         k(  sJ t        dt        t        dz  dz
        z  t              t        dt        z  dt        t        dz  dz
        z  z         k(  sJ t        dt        dt        dz  z  dz
        z  t              t        dt        z  dt        dt        dz  z  dz
        z  z         dz  k(  sJ t        dt        dt        dz  z  dz
        z  t              t        dt        z  dt        dt        dz  z  dz
        z  z         dz  k(  sJ t        dt        | t        dz  z  dz
        z  t              t        t        dt        |       z  t        | t        dz  z  dz
        z  d| z  t        z  z         t        |       z  t        | d      ft         t        z  dz  d	f      k(  sJ t        dt        |  dt        dz  z  z         z  t              t        t        dt        z  t        d| z        z        dz  | dk  ft        dt        z  dt        |  dt        dz  z  z         z  z         dz  d	f      k(  sJ t        t        t              t              t        t        t              z  t        dt        dz  z
        z   k(  sJ t        t        t        t        z        t              t        t        t        z  t        t        t        z        z  t        t        dz   t        dz  z  dz         z   t        z  t        t        d      fd      k(  sJ t        t        t        t        t        z        z  t              t         t        t         t        t        dz   t        dz  z  dz         z  dt        dz  z  z  t        dt        dz  z  t        z  dt        t        dz         z  t        t        dz   t        dz  z  dz         z  z         dt        dz  z  t        t        dz         z  z  z   t        t        dz  d      ft        dz  dz  d	f      z  dz  t        dz  t        t        t        z        z  dz  z   k(  sJ t        t        t              t              t        t        t              z  t        dt        dz  z
        z
  k(  sJ t        t        t        t        z        t              t        t        t        z  t        t        t        z        z  t        t        dz   t        dz  z  dz         z
  t        z  t        t        d      ft         t        z  dz  d	f      k(  sJ t        t        t        t        t        z        z  t              t        t        t         t        t        dz   t        dz  z  dz         z  dt        dz  z  z  t        dt        dz  z  t        z  dt        t        dz         z  t        t        dz   t        dz  z  dz         z  z         dt        dz  z  t        t        dz         z  z  z   t        t        dz  d      ft        dz  dz  d	f      z  dz  t        dz  t        t        t        z        z  dz  z   k(  sJ t        t        t              t              t        t        t              z  t        t        dz  dz         dz  z
  k(  sJ t        t        t        t        z        t              t        t        t        z  t        t        t        z        z  t        t        dz  t        dz  z  dz         dz  z
  t        z  t        t        d      fd      k(  sJ t        t        t        t        t        z        z  t              t         t        t        dz  z  t        t        t        t        dz        z        t        dz  t        t        dz        z  z  z
  z  dz  t        dz  t        t        t        z        z  dz  z   k(  sJ t        t#        t              t              t        t#        t              z  t%        dt        t        ddt        dz  z  z
        z  z  t              z   k(  sJ t        t#        t        t        z        t              t        t#        t        t        z        z  t%        dt        t        ddt        dz  t        dz  z  z  z
        z  z  t              t        z  z   k(  sJ t        t        t#        t        t        z        z  t              t        dz  t#        t        t        z        z  dz  t%        dt        ddt        dz  t        dz  z  z  z
        z  t              dt        z  z  z   k(  sJ t        t'        t              t              t        t'        t              z  t%        dt        t        ddt        dz  z  z
        z  z  t              z
  k(  sJ t        t'        t        t        z        t              t        t'        t        t        z        z  t%        dt        t        ddt        dz  t        dz  z  z  z
        z  z  t              t        z  z
  k(  sJ t        t        t'        t        t        z        z  t              t        dz  t'        t        t        z        z  dz  t%        dt        ddt        dz  t        dz  z  z  z
        z  t              dt        z  z  z
  k(  sJ t        t)        t              t              t        t)        t              z  t        t        dz  dz         dz  z   k(  sJ t        t)        t        t        z        t              t        t        t        z  t)        t        t        z        z  t        t        dz  t        dz  z  dz         dz  z   t        z  t        t        d      ft         t        z  dz  d	f      k(  sJ t        t        t)        t        t        z        z  t              t        t        t        dz  z  t        t        t        t        dz        z        t        dz  t        t        dz        z  z  z
  z  dz  t        dz  t)        t        t        z        z  dz  z   k(  sJ t        dt        | |t        dz  z  z
        z  t              t        t        t        t        || z        z        t        |      z  t+        | dk  | dkD        ft        t        t        | | z        z        t        |       z  t+        | dkD  | dkD        ft        d|z  t        z  dt        |       z  t        | |t        dz  z  z
        z  z         t        |       z  t        |d      ft        t        |       z  d	f      k(  sJ t        dt        | |t        dz  z  z         z  t              t        t        t        t        | | z        z        t        |       z  t+        | dkD  |dk        ft        t        t        || z        z        t        |      z  t+        | dkD  |dkD        ft        dt        |      z  t        | |t        dz  z  z         z  d|z  t        z  z         t        |      z  t        |d      ft        t        |       z  d	f      k(  sJ y )NrV   rU   rX   r_   r^   rW      aTrealbr   rY   ro      )r   T)rC   r   rN   r!   r   r   r   r   r	   ru   rx   r    r
   r   r   r   r   r   r@   r   r   rB   )rarbs     rQ    test_manualintegrate_inversetrigr}      s    3q6QQqS\2A6$s1v,FFF1A1H-q1T!a%']Q5FFFF1R!Q$Y/3tAw|CCC1AqD>1-a!eq@@@1A1H-q1T!A#Y]BBB	$	B	$	B1b2ad7l+Q/4$r"u+&42;7BCD"RL()CD"RL0@,AAAd2hJtUWTWyDXY[_`	bb b b 1a"QT'k?A.41T!B$Z<()1R4QrT
?;QrTAXF2s1qbe},-A$r"u+4E0FFG4PR8TVZ[	]] ] ] 1b1QT6k?A.4!DH%qbz2BF;D"IaK(3q49Q;+??!D"I+NPTU	WW W W 1a!AqD&j>1-a1<<<1a!AqD&j>1-aQqS	k1BAd1Q3iK1PPPP 1T!AqD&\>1-a8881T!AadF(^+Q/4719<<<1T!AadF(^+Q/4!9<<<1T!AadF(^+Q/4(1a.8H3I!3KKKK 1T!Q$(^+Q/a  1T!Q$(^+Q/ac
  1T!AqD&1*--q1a
  1T!AqD&1*--q1ac
1  1T"QT'A+..24$s)$T2#Y.Q7%R
:KDQSH:TVX[\V\9]`acg_hij j j1T"q!t)_,a054":&Q/#acAd219o<M6M2NPT1UVW W W 1T!Q$(^+Q/3qsQtAqD1H~=M7M3NNNN1T!Q$(^+Q/3qsQtAqD1H~=M7M3NNNN1T!AqD&1*--q1S1qa1fqjAQ?Q9Q5RST5TTTT1T!AqD&1*--q1SA$qAvPQzBR@R9R5STU5UUUU1T"QT'A+..2c!DH*T"QT'A+%662a?@bI2bRS9UYZXZ[\X\]^X^`dWefg g g1T2#!Q$,//351T"R%[)!+R!V4s1Q34aPQSTPTfCUAU;U7VWX7XZ^6_`a a a
 47A&!DG)d1q!t8n*DDDD4!9a(I!D1IaQRdUSTVWSWZZ[^H\8\^_7_acdeghai6jlu,vvvv1T!A#Y;*2i!D!Q$q!ta00!AqD&9R1WQY4A;tQTE!Q$JN7K)KKLaPQSTPTfUY[\^_[_Z_U`N`abcefgijfjlmcnpAa( (()*,-qDacN1,<== = =
 47A&!DG)d1q!t8n*DDDD4!9a(I!D1IaQRdUSTVWSWZZ[^H\8\^_7_acdeghai6jmopqmqrsmsuylz,{{{{1T!A#Y;*Y4Aad
Q//1a48Bq!tGAI$1u+dAqD5A:>6J(JJKQqRStVTXZ[]^Z^Y^T_M_`abdefhieiklbmo1Q~' ''()+,a4QqS	>!+;<< < <
 47A&!DG)c!Q$(mAo*EEEE4!9a(I!D1IAqDQRTUQUIXYMHZ[\H\8\^_7_acdeghai6jlu,vvvv1T!A#Y;*qb!AqD&4$q2w-;PRSUVRVW[\]`b\cWdRd;e2e.fgh.hklnokoptuvwxuxpykyz{k{.{{{{47A&!DG)hq!DQqRStVDTBT?UWX6Y*YYYY4!9a(Ad1Q3iK(1aQQRTUWXTXYZ\]Y]T]Q^M^H_F_C`bc:def:f,ffff1T!A#Y;*ad4!9nQ.>!DQRUVXY[\X\]^`a]aXaUbQbLcJcefAgijklilAm.mmmm47A&!DG)hq!DQqRStVDTBT?UWX6Y*YYYY4!9a(Ad1Q3iK(1aQQRTUWXTXYZ\]Y]T]Q^M^H_F_C`bc:def:f,ffff1T!A#Y;*ad4!9nQ.>!DQRUVXY[\X\]^`a]aXaUbQbLcJcefAgijklilAm.mmmm47A&!DG)c!Q$(mAo*EEEE4!9a(I!D1IAqDQRTUQUIXYMHZ[\H\8\^_7_acdeghai6jmopqmqrsmsuylz,{{{{1T!A#Y;*a1a4$qa"g:OQRTUQUVZ[\_a[bVcQc:d1d.efg.gjkmnjnostuvwtwoxjxyzjz.zzzz 1T"R1W*--q14$r"u+&tBx/bS1Wb1f1EF4B<(rc2Caa4HIr"uQw49T"r!Q$w,-?!??@rcJBrSTIVT"X:t$	&& & &
 1T"r!Q$w,//34$s2v,'bS	13rAvrAv3FG42;'R0#b1fb1f2EFqbz$rBq!tG|"44qtAv=>tBxGBPQST"X:t$	&& & &rS   c                     t        t        dt        dz  z  dz
        t        z  t              t        t        dt        dz  z  dz
        dt	        ddt        z  z        z  z
  t        t        t        dd      k  t        t        dd      kD        f      k(  sJ t        dt        dz  t        dt        dz  z
        z  z  t              t        t        t        dz   dz  dz          d	t        z  z  t        dz   dz  dz   dt        j                  z  z  d
t        dz  z  z  z
  t        t        dk  t        dkD        f      k(  sJ t        t        dz  dt        dz  z  dz   dt        j                  z  z  z  t              dt        dz  z  dz   dt        j                  z  z  dz  dt        dz  z  dz   dt        j                  z  z  dz  z
  dt        dt        dz  z  dz         z  dz  z   ddt        dt        dz  z  dz         z  z  z   k(  sJ y )Nrt   rU   r_   r^   rX   rj   rV      }      re   rq   1   iѷiW )	rC   r   rN   r   r   rB   r
   r   Halfr[   rS   rQ   &test_manualintegrate_trig_substitutionr      s   41a4!,Q.241a4!$qa1g6q8Aq>)1xA+>?A 	BB B B 1adT"QT']23Q7D!Q$rA&&A.TE"HqLAaffH-r!Q$w789<QUAF9KM 	NN N N 1a4AqD1AFF
 ;;Q?
QT'A+166	"8	+
QT'A+166	"7	*
+	
41a4!	W	$
%'('$r!Q$w{2C*C'D
EF F FrS   c                     t        t        t              t        t               z
  t        z  t              t        t                t        t              z   k(  sJ t	        d      } t         | t               | t               z
  t        z  t              t         | t               t        z  t               t         | t              t        z  t              z   k(  sJ y )NrJ   )rC   r   rN   r.   r   r@   rJ   s    rQ   )test_manualintegrate_trivial_substitutionr      s    CFS!W,a/3A2wAFFFAAaD1aR5L!+Q/	!QB%'1	1a 334 4 4rS   c                  2   t        ddt        dz  z
  z  t              t        t        dz
         dz  t        t        dz         dz  z   k(  sJ t        ddt        dz  z   z  t              t        t        dz
        dz  t        t        dz         dz  z
  k(  sJ y )NrV   rX   rU   rY   )rC   rN   r   r[   rS   rQ   test_manualintegrate_rationalr      s    1a!Q$h<+AE
{1}s1q5z!|/KKKK1b1a4i=!,AE
1s1q5z!|0KKKKrS   c            
      *   dt        t        dz   dz        z  dt        d      z  t        t              z  t	        t        d      t        z  dz        z  }} t        | |       dt        dt        dz  z        z  dt        t              z  t        dt        z        z  dz  }} t        | |       t        t        dd      z  t        t         dz        z  dt        t        dd      t        dz        z  }} t        | |       t        dt        z        t        z  t        dt        z        }} t        | |       t        ddt        z  z   t        dz  z
        t        t              t        d      z  t	        t        dz
        z  dz  }} t        | |       t        t        dz  dt        z  z   dz         } t        d      t        t              z  t        d       t        t        d      dt        z  dz   z  dt        t              z  z        z  t        d      t        t        d      dt        z  dz   z  dt        t              z  z        z  z   z  dz  }t        | |       t        dt        dz  z        t        d      t        t              z  t        dt        d      z  t        z  t        t              z        z  dz  }} t        | |       t        dt        z  dz         t        z  t        d      t        dt        z        z  t        d      t        dt        z        z  z   }} t        | |       t!        dt        z  dz
        t        z  t!        d       t#        dt        z        z  t%        d      t'        dt        z        z  z   }} t        | |       dt        dt        z  dz
        z  t        z  dt        d      z  t        dt        z        z  dt        d      z  t        dt        z        z  z   }} t        | |       t%        t        dz        t        z  t#        t        dz        }} t        | |       t        t        dz        t        z  t        t        dz        dz  }} t        | |       dt)        dt        z  dz         z  t+        dt        z  dz         dz  }} t        | |       t-        ddt        z        t        z  t-        ddt        z        }} t        | |       dt        ddt        t              dz  z  z
        z  dt        d      z  t/        t        t        dd            z  dz  }} t        | |       t        ddt        t              dz  z  z         dt1        t        t        d	d            z  }} t        | |       y )
NrX   rU   r^   rV   ro   ire   r_   i)r   rN   r   r   r1   rR   r2   r
   r6   r.   r&   r3   r"   r4   r-   r0   r   r,   r   r/   r   r5   r?   r+   r*   rP   s     rQ   test_manualintegrate_specialr     sT   S!Q$q\>1T!W9T"X-c$q'!)A+.>>qA!QS1a4[=!DH*T!A#Y.q0qA!Qhq!nS!AY&Jx1~qs,K(KqA!Qqs8A:r!A#wqA!Qq1Q3wA~RQAE
 :1 <qA!QAqD1Q3JNA	ab	CF78DGQqS1W,=qbz,J#KKAxQ1q)1T"X:6778 
99:
;A!QqAv;QR(!DG)A+d2h2F)GGIqA!QqsQw<>3q6"QqS'>CF2ac7N:qA!Q!a=?T!WHS1X-QAaC0@@qA!QS1q\>!Qs1vXb1g-#a&AaC0@@qA!Q!9Q;AaCqA!Qq!t9Q;1a4
qA!QS1q\>2acAg;q=qA!Q1ac?1ga1oqA!QT!aA	k/""Ad1gIjHQN.K$KA$MqA!QAc!faiK !Jq(2q/$B"BqA!QrS   c            	      8   t        t        t        t        dz  dt        z  z   dz         z  t              t        t        dz  dt        z  z   dz   z  k(  sJ t        t        t        dz  dt        z  z   dz   t              t              t        t        t        dz  dt        z  z   dz   t                    k(  sJ t        t        t        t              t        t        t        t              t              t        t        t              t        t        t              k(  sJ y )NrU   r^   )rC   r   r   rN   r`   r@   r&   r[   rS   rQ   test_manualintegrate_derivativer   (  s    2
1a4!A#:> ::A>
adQqSj1n  :adQqSj1na8!<AqD1Q3JNA./0 0 0:c!faAq91=3q61a#$ $ $rS   c            	         t        t        dt        z  dz         t        dt        z  dz         dz         t        t        dt        z  d      t        dt        z        dz         t	        t        t
        t        t        z  z   d      t              t        t        t
        t        t        z  z         t        z  t        t        d      ft        t        t
        d      z  df      k(  sJ t        t        t        dz  dz
  d      dt        t        dz  dz
  d      z         t	        t        t              t              t        t        t              z  k(  sJ t	        t        t        d      z  t              t        dz  dz  k(  sJ t	        t        t        d      z  t              dk(  sJ t	        t        t        t              z  t              t        dz  t        t              z  dz  k(  sJ t	        t        t        t               z  t              t        dz  t        t               z  dz  k(  sJ t	        t        dt        z  dz         t              t        dz   t        dt        z  dz         z  k(  sJ t	        t        t        t              z  t              t        dz  t        t              z  dz  k(  sJ t	        t        t        dz         t        dt        z
        z  t        dz  z  t              t        dz  dz  t        dd      z   t        t        dz         z  t        dd      z
  t        t         dz         z  k(  sJ t        d      } t	        t        d	t        z         t        dt        z  d	z
        z  t              t        t        d	z          t        t        d
d            z   t        dt        z  t        d	      z
        z  k(  sJ t	        t        | t        z         t        dt        z  | z
        z  t              t        | t        dd      z        t        t        | z         z
  t        dt        z  | z
        z  k(  sJ y )Nr^   rU   r   rV   Trz   rX   r`   rq      )rR   r)   rN   r(   rC   ru   rx   r   r   r
   r   r&   r"   r   )r`   s    rQ   test_manualintegrate_Heavisider   1  sf   *QqSU+Yqs1u-=a-?@*QqS!,i!nQ.>?:a!eQ/3:a!A#g&q("Q(3a
1a8H6H$5OPQ Q Q*QqSUA.*QqSUA2F0FG9Q<+q1~===1Yq\>1-Aa7771Yr]?A.!3331Y]?A.!Q$y!}2DQ2FFFF1Yr]?A.!Q$y!}2DQ2FFFF9QqS1W-q1ac9QqS1W;M5MMMM1Yq\>1-Ail1B11DDDD9QU+Ia!e,<<QTA1E
Q$q&8Aq>
!9QU#3	3hq!n	DiQRPRUVPVFWWX X X 	sA3q1u:i!a&88!<1q5z\CQ00)AaC!A$J2GGH H H 3q1u:i!a&88!<8Aq>!"SQZ/1Q371CCD D DrS   c                  (   t        d      } dt        dd      }}t        | ||t              t	        | |t              t        | t              t        | t              t        | t              t        | t              t        | t              t        | |t              g}|D ]e  }t        |t              }dD ]P  }	 |j                  | |      }|j                  | |      j                  t              |z
  j                         dk(  rPJ  t        |j                  t        dt        z  dz         z  }t        |t              }d	D ]M  }|j                  | |      j                  t              |j                  | |      z
  j                         dk(  rMJ  t        d
      }	t!        t#        |j$                        dz
        D ]E  }
t'        |j$                        }|	||
<   t)        t         |j*                  | |	      t,              rEJ  h y # t        $ r Y `w xY w)Nnrq   re   r^   )rz   rY   r   rV   r^   re   ro   r   rU   rV   )rU   rX   rq   t)r   r
   r<   rN   r:   r8   r9   r>   r;   r=   r7   rC   subs
ValueErrorr   r   rangelenargslist
isinstancefuncr@   )r   ru   rx   polyspintegraldegp_subbedqr   inew_argss               rQ   $test_manualintegrate_orthogonal_polyr   I  s   Ahq!nqAAq!QAq!!4jA6F1a(1a.'!Q-!Qq!Q!E  O"1a(* 	LC66!S> MM!S)..q1H<DDF!KKK	L affQ!a  "1a( 	RCMM!S)..q1AFF1cNBJJLPQQQQ	R CLs166{Q' 	OAAFF|HHQKofaffh.?CXNNN	O%O  s   4H	HHc                  6   t        t        dj                               \  } }}t        ddd      }t        |||z
  z        t        ||z        z  }|t         t        f}t        ||      ||z  dz  t        d|z  |z        dz  z   t        ||z        z  t        ||z        t        ||z        dz  z  dz  z
  |z  k(  sJ | t        ||      j                         z  t        z  | t        ||z        z  k(  sJ t        ||      j                  t              rJ y )Nzr x phir   T)integerpositiverU   rX   )mapr   splitr"   r   rC   r&   rA   trigsimphasr   )rrN   phir   	integrandlimitss         rQ   test_issue_6799r   g  s   FIOO-.IAq#sD40AQ#YAaC(I"b\F9a(
A#a%#ac!e*Q,
AcE
	*S3ZAaC!-CA-E	EqHI I IyF+4466;q3q3w<?OOOOF+//6666rS   c                      t        t        t        z  t              t        t        t        dz   z  t        dz   z  t	        t        d      ft        t              df      k(  sJ y )NrV   rY   T)rC   rN   r`   r   r   r   r[   rS   rQ   test_issue_12251r   t  sO    1a4#y	
QUQU	R2Y'#a&$(9 9 9 9rS   c            	      \   t        t        t        t        t        dz  z               t              t        t        t        dz  z         k(  sJ t	        t        t        t        dz        z  t        d      t
         t        t              z  t        t
        t        dz  z        z  dz  k(  sJ y )NrU   rX   F)risch)	rC   r   r   rN   rA   r	   r   r   r1   r[   rS   rQ   test_issue_3796r   y  sw    4A1H.2c!ad(mCCCQQT]AU3r$r({3qAv;7Nq7PPPPrS   c                     t        t        t              t        t              z  t        d      t        t              t        t              z  dz  t        t              t	        t              z  dz  z
  k(  sJ t        t        t              t	        t              z  t        d      t        t              dz  dz  t	        t              dz   dz  fv sJ y )NTmanualrU   )rA   r   rN   r&   r"   r[   rS   rQ   test_manual_truer   ~  s    SVc!f_a5	Q#a&AQ#a&A 556 6 6SVc!f_a5	Q1q3q619*q.)* * *rS   c                  	   t        d      } t        d      }t        | t        z  t              t        | t        z  t	        |       z  t        t	        |       d      ft        df      k(  sJ t        | |t        z  z  t              t        t        | |t        z  z  t	        |       z  t        t	        |       d      f|t        z  df      |z  t        |d      ft        df      k(  sJ t        t        |t        z        t              t        t        |t        z        |z  t        |d      ft        df      k(  sJ t        dd      } t        | dz   t        z  t              | dz   t        z  t	        | dz         z  k(  sJ t        dd      } t        | dz   t        z  t              t        k(  sJ t        d      } t        dd      }t        | |t        z  z  t              t        | |t        z  z  t	        |       z  t        t	        |       d      f|t        z  df      |z  k(  sJ t        dd      } t        | dz   |t        z  z  t              | dz   |t        z  z  |t	        | dz         z  z  k(  sJ t        d	d
      }t        d      }t        d||t        dz  z  z   z  t              t        t        t        ||z        z        |t        ||z        z  z  k(  sJ t        dd
      }t        d||t        dz  z  z   z  t              t        t        t        |       t        d|z        z  z        |t        |       z  t        d|z        z  z  k(  sJ t        dt        |z  | |z  z   dz   t        |t        dz  z  dz         z  z  t              | | z  t        t        | z  | | z  t        |t        dz  z  dz         z  t        | z  t        |t        dz  z  dz         z  z   dt        | z  z  | | z  z  t        |t        dz  z  dz         z  z   z  t              z  k(  sJ t        dt        dz  dz   t        dt        dz  z  dz         z  z  t              t        dt        dz  dz   t        dt        dz  z  dz         z  z  t              k(  sJ t        dt        |t        z  z
  t        |dz  z  z   z  t              t        d|t        z   |dz  t        z  z   t        z   z  t              k(  sJ y )Nr`   r   r   T)r   rV   )zero)nonzeroru   )negativerx   rU   rY   rX   )
r   rC   rN   r   r   r   r   r!   r   r@   )r`   r   ru   rx   s       rQ   test_issue_6746r     s   sAsA1a4#y	
Ac!fbQm$q$i(1 1 1 11qs8Q'9	1Xc!f_bQm,qS$K

 
 1X	 
D	,    3qs8Q'9	QqS!R1XD	,+ + + + 	sT"AAEA:q)a!eaZAE
-BBBBsAAEA:q)Q...sAsD!A1qs8Q'9	
QqS#a&"SVQ-(1Q3+,778,9 9 9 9sT"AAEQqS>1-	
Q!A##a!e*%& & &sT"AsA1a!AqD&j>1-aQqS	k1BAd1Q3iK1PPPPsT"A1a!AqD&j>1-QaRbd#$%qqbz$r!t*'<=> > >1q!tad{QQq!tVaZ0@@A1E	QBaR!qb'$qAvz*:":	QBQq!tVaZ  #!#$Q!W9Q!W#4T!AqD&1*5E#E#F GHIK 	KK K K 1q!taxa1fqj)99:A>QTAXtAadFQJ//0!45 5 51a!Q$h1a4/0!4QTEAqDFNQ&'+, , ,rS   c                     t        t        t              t        t              z  t              t         t        t              z  t	        t        dz   dz         z
  t        t        t              z  t	        t        dz   dz         z   t        t              z  z   t        t	        t        dz   dz         t        z  t              z
  k(  sJ t        t        t              t        t              z  t              t         t        t              z  t	        t        dz   dz         z   t        t        t              z  t	        t        dz   dz         z
  t        t              z  z   t        t	        t        dz   dz         t        z  t              z   k(  sJ t        t        t              t        t              z  t              t         t        t              z  t        t        t              z  t        t        dz  dz         dz  z
  t        t              z  z   t        t        dz  dz         dz  z   t        t        t        dz  dz         t        z  t              dz  z   k(  sJ y )NrU   rV   )rC   r    rN   r   r   r@   r   r!   r[   rS   rQ   test_issue_2850r     s   473q6>1-!DGdAqD519o1May4A	?*CF2235=dAqD519oa>OQR5S2T T T T473q6>1-!DGdAqD519o1M	
47T1a4%!)_	$c!f,2-/7adUQY8I1/M2N N N N473q6>1-!DGqay1qM!O@ V?$ 2$&)!Q$(mAo268@QTAXqRS8TUV8V2W W W WrS   c            
         t        t        dt        z        t        t              z  t              t        t              t        dt        z        z  dz  dt        t              z  t	        dt        z        z  dz  z
  k(  sJ t        t        dt        z        t        t              z  t              j                         rJ t        t        dz
  t        dz  dt        z  z
  dz   dz  z  t              t        t        t        dz  dt        dz  z  z
  dt        dz  z  z   dt        z  z
  dz   z  t              dt        dt        dz  dt        dz  z  z
  dt        dz  z  z   dt        z  z
  dz   z  t              z  z
  k(  sJ y )NrU   re   r^   rX   ro   rV   )rC   r&   rN   r   r"   rF   contains_dont_knowr@   r[   rS   rQ   test_issue_9462r     sA   3qs8CF?A.#a&QqS/!2CaAhsSTUVSVxFWXYFY2YYYYc!A#hs1voq1DDFFFAEadQqSj1nq%88!<#Aq!ta1f}qAv'=!'Ca'G$H!Lx1a4!AqD&=1QT6+AAaC+G!+K(LaPPQQ Q QrS   c                  D   t        t              t        t        dz        z  } dt        t        dz        z  t        t              z  dz  dt        t        dz        z  t        t              z  dz  z   }t	        | t              |k(  r|j                  t              | k(  sJ t        t        t              z  t        t        dz        z  } t        dt        t        dz        z  t        t              z  dz  dt        t        dz        z  t        t              z  dz  z   z  dt        t        dz        z  t        t              z  dz  z
  dt        t        dz        z  t        t              z  dz  z   }t	        | t              |k(  r|j                  t              | k(  sJ y )NrX   rt         !     )r"   rN   r   r&   rC   r   rP   s     rQ   test_cyclic_partsr     s>   As1Q3xA
3qs8CF2#ac(
3q6 1" 44A1a A%!&&)q.88	#a&QqSA	
Bs1Q3xKAr!Ac!A#hJs1v$5b$88	9C!HSVC
 "%c!A#h,s1v"5c"9
:A1a A%!&&)q.88.rS   c                     t        dt        dz  z  dt        dz  z  z   dt        dz  z  z   dt        z  z   dz   t        dz  dt        dz  z  z   dt        dz  z  z   dt        dz  z  z   dt        dz  z  z   dt        z  z   d	z   z  t              dt        z  t        dz  d	z   z  dt        t              z  z   d	t        dz  d	z   z  z
  dt        d	z   z  z
  k(  sJ y )
NrX   r^   rt   rU      ro   rW   re   rV   )rC   rN   r!   r[   rS   rQ   test_issue_10847_slowr     s    AadFQq!tVObAg51<q@dQq!tVma1f4qAv=!Q$F1LqPRSTVQ31q>Ad1gI51a4!8Dq!a%yPQ Q QrS   c                     t        t        dz  t        dz  t        z
  z  t              t        t        t        t	        t               z        z  t	        t               z  t        z   k(  sJ t        dd      } t        t        dz  t        dz  | z
  z  t              | t        t        t        t	        |        z        t	        |        z  | dk  ft        t	        |        t        z         t        t	        |       t        z         z
  dt	        |       z  z  df      z  t        z   k(  sJ t        t	        t        t        z
        t        t        t        z        z  t              dt        t        dd      z  z  t        t	        t        t        z
        t	        t              z        z  dz  dt        z  t	        t        t        z
        z  dz  z
  dt        t        z
  t        dd      z  z  t        t        t        z        z  dz  z   dt        t        z
  t        dd      z  z  dz  z   k(  sJ t        d	d      }t        d
d      }t        t	        t        |z
        t        |t        z        z  t              d|dz  z  t        t        t	        t        |z
        t	        |      z        t	        |      z  |dkD  ft        t	        |        t	        t        |z
        z         t        t	        |       t	        t        |z
        z         z
  dt	        |       z  z  df      z  dz  d|z  t	        t        |z
        z  dz  z
  dt        |z
  t        dd      z  z  t        |t        z        z  dz  z   dt        |z
  t        dd      z  z  dz  z   k(  sJ t        t	        t              t        t              z  t              dt        t        dd      z  z  t        t              z  dz  dt        t        dd      z  z  dz  z
  k(  sJ t        t	        t        t        z  t        z         t        z  t              t        dt        z  t        t	        t        t        z  t        z         t	        t               z        z  t	        t               z  dt	        t        t        z  t        z         z  z   t        t        d      ft	        t              t        t              z  df      k(  sJ t        dd      }t        dd      }t        t	        |t        z  |z         t        z  t              t        d|z  t        t        t	        |t        z  |z         t	        |       z         t	        |       z  |dk  ft         t        t	        |       t	        |t        z  |z         z         t        t	        |      t	        |t        z  |z         z         z
  z  dt	        |       z  z  df      z  dt	        |t        z  |z         z  z   t        |d      ft	        |      t        t              z  df      k(  sJ t        t        t	        |t        z  |z         t        | z   z  t                    t        d|z  | z  t        t        t	        |t        z  |z         t	        || z  |z
        z        t	        || z  |z
        z  || z  |z
  dkD  ft        t	        | | z  |z          t	        |t        z  |z         z         dt	        | | z  |z         z  z  t        t	        | | z  |z         t	        |t        z  |z         z         dt	        | | z  |z         z  z  z
  df      z  d|z  t        t        t	        |t        z  |z         t	        || z  |z
        z        t	        || z  |z
        z  || z  |z
  dkD  ft        t	        | | z  |z          t	        |t        z  |z         z         dt	        | | z  |z         z  z  t        t	        | | z  |z         t	        |t        z  |z         z         dt	        | | z  |z         z  z  z
  df      z  z   dt	        |t        z  |z         z  z   t        |d      ft	        |      t        | t        z         z  df      k(  sJ t        t	        dt        z  dz         t        dz   z  t              dt	        dt        z  dz         z  t        t	        dt        z  dz         dz         z
  t        t	        dt        z  dz         dz
        z   k(  sJ t        t	        dt        z  dz         dz  t        z  t              dt        z  dz   t        dd      z  dz  dt        z  dz   t        dd      z  dz  z
  k(  sJ t        t        t        dd      z  t        t              z  t              dt        t        dd      z  z  t        t              z  dz  dt        t        dd      z  z  dz  z
  k(  sJ t        t        dz  t        t              z  t              t        t               dt        dz  z  z  ddt        dz  z  z  z
  k(  sJ t        t        t              t        dz  ddt        z  z
  z  z  t              t        t              t        ddt        z  z         z  t!        t        ddt        z  z         t        z  t              z
  k(  sJ y )NrU   cTrv   r   rX   r^   r_   r`   zru   rx   rz   rV   re      r   rj   rY   )rC   rN   r   r!   r   r   r   r   r`   r   r
   ru   rx   r   r	   r   r@   )rcryrzr{   r|   s        rQ   test_issue_10847r     s
    1a41a4!8,a0Ad1T1"X:6F4FtQBx4ORS4SSSS	$	B1a41a4"9-q1
9d1T2#Y;'bS	126:DH9q=)CR1,==$r(
KTRT 	TVW	XX X X 4A;QU3Q7	!Xa^
Da!eT!W!455a7!A#d1q5k/!:KK	1q58Aq>
!!#ac(*1,	-/0!a%(1a.1H/H/J	KK K K 
$	B	$	B4B<#b1f+5q9	"a%	4QVT"X 56tBx?aHbS	zDRL89CbS	DQRUWQWL@X<YY\]^bdfcf^g\ghjnoq 	qqr	sR4QV,Q.	/12AFXa^3K1KCPRSTPTI1UVW1W	X a"fx1~55a7	88 8 8 47SV+Q/1QA5F3Fs1v3Ma3ORSTUW_`acdWeTeRefgRg3gggg4!a=1,a01Q3tD1qM$r(233D!H<qacAgNPRSTVWPXY\`ab\cdghidj\jlp[qrs s s	$	B	$	B41r	?Q.2U9tBqD2ItRCy011$s);R!VDS$r(T"Q$)_45DHtBqDSUI<V8WWXZ[\`bdad\eZefhlmo o tBqD2I !#2q	+ "Xc!f_d#	%% % % /$r!tby/QV"<a@AbeBhy$tBqD2ItBrEBJ?O/O*PQUVXY[V[^`V`Qa*acefhchkmcmpqcq)r(+T2#b&2+->,>bdRi,P(QSTUY[]Z]^`Z`ceZeUfSf(g(+D"R",=RTBY,O(PRSTXZ\Y\]_Y_bdYdTeRe(f)ghl(n o o d9d41r	?42
;K+K&LTRTUWRWZ\R\M]&]_abd_dgi_ilm_m%n%($s2v{*;);d2a4"9o)M%NPQRVXZWZ[]W]`bWbRcPc%d%(rc"frk):T"Q$)_)L%MqQUWYVYZ\V\_aVaQbOb%c&dei%kl ll RTBY'( *,B4 7;2hs26{6JD5QSS S S 4!a=AE2A6!D1qM/CPTUVWXUX[\U\P]`aPaLb:behimnopqnqtunuivyzize{:{{{{4!a=1,q0!41q8Aq>8QRT8TXYZ[X[^_X_bjklnobpWpqrWr8rrrr1hqm+c!f4a8Aa!A>N<NsSTv<UVW<WZ[\]_ghijk_l\lZlmoZo<oooo1r7SV+Q/CF7AadF3Ca1a4j3PPPP3q61a4QqS>2A6As2!8}xB1Ha;;< < <rS   c            	         t        t        t        t              j	                  t              t              t        t        t        t        t              t              t              k(  sJ t        t        t        t              j	                  t              j	                  t              t              t        t        t        t              t              k(  sJ y rM   )rC   rJ   rN   r`   r   r@   r   r[   rS   rQ   test_issue_12899r     st    1Qq6;;q>!,AaF19Ma0PPPP1Qq6;;q>..q1!4
1Qq6!8LLLLrS   c                      t        t        t        t        ddf      t              t        t        t        t        ddf      z  k(  sJ y )NrV   rU   )rC   r@   r`   rN   r[   rS   rQ   #test_constant_independent_of_symbolr     s=    8A1ay115	(1q!Qi
  ! ! !rS   c                      t        t        dt        z        t              t        dt        z         dz  k(  sJ t        t        t              t        dt        z        z  t              dt        t              dz  z  dz  k(  sJ t        t        dt        z        t        t              z  dt        t              z   z  t              dt	        t        t              dz         z  t        t              dz  z
  dt        t              z  z   k(  sJ y )NrU   rz   r^   rV   )rC   r&   rN   r"   r   r[   rS   rQ   test_issue_12641r     s    3qs8Q'C!H9Q;6663q6#ac(?A."SVQY,q.@@@C!HSVOa#a&j91=
3s1vz?SVQY&3q612 2 2rS   c                      t        t        t              t        t              dz  z  t              t        t              dz   dz  k(  sJ y )Nre   rW   )rC   r&   rN   r"   r[   rS   rQ   test_issue_13297r     s6    3q6CFAI-q1c!faiZ!^CCCrS   c            
          t        dt        t        t        dz         z  z  t        t        t        dz         dz
        t        t        t        dz         dz         z
         y )NrV   )rR   rN   r   r   r[   rS   rQ   test_issue_14470r     sF    !QtAE{]+Sa!eq-ACQQRUVWDX-XYrS   c                     t        t        t              t        t        t                    z  t              t	        t        t                    k(  sJ t        t        dt        z        t        t        t                    z  t              t        t              t	        t        t                    z  t        t        t                    z   k(  sJ t        t        dt        z        t	        t        t                    z  t              } | j                  t              rJ | j                  t              t        dt        z        t	        t        t                    z  k(  sJ t        t        t        dd      D cg c]  }t        t        |t        z        z   c}      t              t        t        dt        z        z  dz  t        t        dt        z        z  dz  z   t        t        dt        z        z  dz  z   t        t        dt        z        z  dz  z   t        t        d	t        z        z  d	z  z   t        t        dt        z        z  dz  z   t        t        t              z  z   t        dt        z        d
z  z
  t        dt        z        dz  z
  t        dt        z        dz  z
  t        dt        z        dz  z
  t        d	t        z        dz  z
  t        dt        z        dz  z
  t        t              z
  k(  sJ y c c}w )NrU   
   rV   ro   rq   rW   re   rX   r^   r   $   r   rt   r_   )
rC   r   rN   r"   r&   r   r@   r   sumr   )resks     rQ   test_issue_9858r     s6   3q6#c!f+-q1SQ[@@@3qs8CAK/3As3q6{SQ[() ) )
#bd)CAK/
3Cwwx   88A;#bd)CAK////3E!QK@q#ac(
@A1E	#ac(
1qQqSz!|#aAaCjl2Qs1Q3xZ\A	#ac(
1	QqSz!|	$&'Ah	/14QqS"	=>A!A#hrk	JAaC	!A#hrk	"$'!HQJ	/14QqS!	<>A!f	EF F F@s   : Lc                     t        t        t        dz  dz   z  t              t        t        dz        dz  k(  sJ t        t        dz  t        dz  dz   z  t              t        t        dz  dz        dz  k(  sJ t        d	t        dz  z  dz   dz  z  } t        | t              j                  t              j	                         | k(  sJ y )
NrX   rV   rU   rW   r   r^   re   r   r_   )rC   rN   r!   r   factorr   s    rQ   test_issue_8520r   ,  s    1adQh<+tAqDz!|;;;1a4A+Q/41Q<?BBB	1QT6A:/A1a %%a(//1Q666rS   c                  T    t        d      \  t              t              z    t         t                    t        t                    z   k(  sJ t         t                    t              z   k(  sJ t	        t
         fd       t	        t
         fd       y )Nzx yc                      t               S rM   )rG   )exprrN   s   rQ   <lambda>z"test_manual_subs.<locals>.<lambda>;  s    {43 rS   c                  2    t         t                    S rM   )rG   r   r   rN   r`   s   rQ   r   z"test_manual_subs.<locals>.<lambda><  s    {4QA> rS   )r   r   r   rG   rH   r   r   s   @@@rQ   test_manual_subsr   3  s    5>DAqq6CF?DtSVQ'1s3q6{?:::tSVQ'3q6A:555
:34
:>?rS   c                  J   t        t              t        t        t                    z  t        t        dd      z  z  } dt        t        dd      z  z  t	        t        t                    z  dz  dt        t        dd      z  z  t        t        t                    z  dz  z   dt        t        dd      z  z  t	        t        t                    z  dz  dt        t        dd      z  z  t        t        t                    z  dz  z   t        t              z  z   }t        | |       y )	Nr^   rX   irV   r   r   rt   r   )r   rN   r"   r
   r&   rR   rP   s     rQ   test_issue_15471r   ?  sJ   As3q6{1hq!n,,AQAs3q6{*3.QA5F1Fs3q6{1RSV1VVZ\]^`hijlm`n]nZnorsvwxsyozZz{}Z}  AB  CD  FN  OP  RS  FT  CT  AT  UX  Y\  ]^  Y_  U`  A`  ac  Ac  [c  eh  ij  ek  Zk  	kA!QrS   c                     dt         z  dz   dt         dz  z  dt         z  z
  dz   z  } t        | t               dt        dt         dz  z  dt         z  z
  dz         z  dz  dt        d      z  t	        dt        d      z  t         t        dd      z
  z  dz        z  d	z  z   k(  sJ ddt         dz  z  dt         z  z   dz   z  }t        |t               dt        d
t         z  dz         z  dt        d
t         z  d
z         z  z
  k(  sJ y )Nre   rU   r^   ro   rW   rf      rV   E   rX   )rN   rC   r   r   r!   r
   )rJ   gs     rQ   test_quadratic_denomr   F  s    	
1q1QT6AaC<!#$A1a Ac!AqD&1Q3,*:&;$;A$=48DQRSWXZS[Q[]^aijkmnao]oQpqsQsLt@tuw@w$wwww	1QT6AaC<!A1a Ac!A#'lNQs1Q37|^$CCCCrS   c                  p    t        t        t              t              t        t        t              z  k(  sJ y rM   )rC   r&   rN   r`   r[   rS   rQ   test_issue_22757r   L  s#    3q61%SV333rS   c                      t        t        t              t              } | j                  j                  }|j                  |j
                  |j                  z  k(  sJ y rM   )rF   r'   rN   substepr   constantother)stepsconstant_times_steps     rQ   test_issue_23348r   P  sI    3q61%E--//((,?,H,HK^KdKd,ddddrS   c                  
   t        dt        t        dz  dz
        z  t        ddf      j                  d      } | t	        ddt        d      z  z
         t	        d      z   k(  sJ t        | j                               d	k(  sJ y )
NrV   rU   rz   rY   Tr   rX   r^   z1.31695789692482)r@   r   rN   doitr   strr   )r   s    rQ   test_issue_23566r  V  sw    41q>!Ar2;/44D4AAQ47]##c!f,,,,qssu:++++rS   c            
         t        t        t        dz        t        t        t        dz        z  dz         t        t        t        t        d      dz  z        dt        z  t        t        t        d      dz  z        z  dz         t        dt        t        dz        z  t        t	        t              z  t        t        dz        z         t        t        t        t        dz        z  t        dz  t        t        dz        z  t	        t              z         t
        t        t        t        z  z   t        z  z  t        z  } t
        t        t        t        z  z   t        z  z  t        z  t        t        z  t        z   z  t        t        z  dz   z  }t
        t        t        t        z  z   t        z  z  t        z  t        t        z  t        z   z  t	        t        t        z  t        z         z  }t        | t              t        t        |t        t        t        z  d      f|d	f      t        t        d
      ft        t        t        z  t
        z  t        z  z  d	f      k(  sJ |j                  t              j                  |       sJ |j                  t              j                  t        t        z  d      j                  |       sJ y )NrU   re   r^   rW   rf   rV   rY   Tr   )rR   r   rN   r   r   r   ru   rx   derC   r   r   r   rO   r   )rJ   F1F2s      rQ   test_nested_powr  \  s   $q!t*aQT
l1n5$q1Q46{+QqSa!A$q&k1B-B2-EF!DAJ,#a&ad(;<!DRM/1a4QU+;CF+BC	
AacEA:A
Q1WqL.1	acAg	&!a	0B
Q1WqL.1	acAg	&s1Q37|	3B1a 9b"QqS"+.T
;R1XFAqDQRFUV;X\H]^_ _ _771:Q771:??1Q3#**1---rS   c                  T	   t        dt        dz  z  dz   t        ddt        z  z         z  ddt        z  dz   t        d      dz  z  z  dz  ddt        z  dz   t        d      dz  z  z  dz  z
  d	dt        z  dz   t        d      dz  z  z  d
z  z   dt        dt        z  dz         z  d
z  z          t	        t        t        t
        t        t        z  z         dz  z  t              t        t        dt        dz  t
        t        t
        t        t        z  z         z  t        t
        t        t        z  z         z         t        t        d      ft        dz  dt
        t        d      dz  z  z  z  df      k(  sJ t        t        dt        z  dz         dz   dt        z  dz   dt        d      z  z  dz   z  dt        d      z  dt        z  dz   t        d      dz  z  z  dz  dt        d      z  dt        z  dz   t        d      dz  z  z  dz  z
  dt        d      z  dt        z  dz   t        j                  dz  z  z  dz  z
  ddt        z  dz   t        d      dz  z  z  dz  z   ddt        z  dz   t        j                  dz  z  z  dz  z
  t        d      t        dt        z  dz         z  dz  z   dt        dt        z  dz   t        j                  dz  z  dz         z  dz  z   dt        d      z  t        dt        z  dz   t        j                  dz  z        z  dz  z          t        t        t        t        t              z         dt        t        t              t        z         z  t        t              dz  t        dz  z   t        d      dz  z
  z  t        dt        t              z  dt        t        t              t        z         z  z   dz         dz  z          t        t        dt        z  dz   t        dt        z  dz         z         dz  t        dt        z  t        dt        z  dz         z   dz         dt        z  dz  ddt        z  dz   t        d      dz  z  z  d	z  z   t        dt        z  dz         d	z  z   dt        z  dz   dz  dz  z   t        d      dz  z   z  dz         y )Nre   r^   rX   rU   r   rq   i7     (   Q      rz   r   TrV   rW      r   ro   r_   rf   )rR   rN   r   r   rC   ru   rx   r   r   r   Oner   r!   r[   rS   rQ    test_manualintegrate_sqrt_linearr  j  sj   1QT6!8T!AaC%[0acAg1a004q!A#'QqT!V9L7LR7OOacAg1a003469$qsQw-6G6JKL 1T!AaC%[!^+Q/3q!R%4AaC=4AaC=!@A2a8LqRStUVWX[\]^[_`a[aWbUbOceiNjkl l l4!A;q=AaCEQqtV+<Q+>?DG)QqS1W!Q$77:QtAwY!aSTUVSWXYSYGZ=Z[]=]]DG)QqS1Wa$88:;=>!a1Q4PQ6?R=RST=TUWXZ[\]Z]`aZaefejejklelYmWmnoWopq'$qsQw-/1245c1Q37aeeAg:NQR:R6S4STU4UV DG)D!A#'QUU1W)=$>>q@AB
 $qay/Da1--tAwrzAaC/?!A$q&/HICPQRVWXRYPY\]^bcghicjmncn^o\oPorsPsLtuvLvvx$qs1uT!A#a%[0114qsT!A#']2Q67Q3r6B!a1Q46':$:2$==QqS1Wb@PPTUVWTWZ[T[^_S_`bSbbefgiejkmemmoopqrrS   c                     t        dt        t        t        z
  dz  dz
        z  t	        dt        z  dt        t        dz  dt        z  t        z  z
  dz
        z  z   dt        z  z
               t        dt        dt        dz  z  dt        z  z   dz         z  t        d      t        dt        d      z  t        t        d      dz  z   z  dz        z  dz         t        dt        dt        dz  z  dt        z  z   dz         z  t        d      t        dt        d      z  t        t        d      dz  z
  z  dz        z  dz         t        dt        dt        dz  z  dt        z  z   dz
        z  t        d      t	        d	t        z  dt        d      z  t        dt        dz  z  dt        z  z   dz
        z  z   dz         z  dz         t        dt        dt        dz  z  dt        z  z
  dz         z  t        t        j                  z
  t	        t        t        j                  z
        z  dt        t        t        j                  z
  dz        z  z         t        dt        t        t        t        z  z   t        t        dz  z  z         z  t              t        t	        t        dt        t              z  t        t        t        t        z  z   t        t        dz  z  z         z  z   dt        z  t        z  z         t        t              z  t        t        d
      t        t        t        dz  dt        z  z  z
  d
      z  ft        dt        z  z  t        z   t	        t        dt        z  z  t        z         z  t        t        t        dt        z  z  t        z   dz  z        z  t        t        d
      fdt        t        t        t        z  z         z  t        z  t        t        d
      ft        t        t              z  df      k(  sJ t        dt        z  d	z   t        dt        dz  z  dt        z  z   dz         z  dt        dt        dz  z  dt        z  z   dz         z  dz  dt        d      z  t        dt        d      z  t        t        d      dz  z   z  dz        z  dz  z          t        dt        z  d	z   t        dt        dz  z  dt        z  z   dz         z  dt        dt        dz  z  dt        z  z   dz         z  dz  dt        d      z  t        dt        d      z  t        t        d      dz  z
  z  dz        z  dz  z          t        dt        z  d	z   t        dt        dz  z  dt        z  z   dz
        z  dt        dt        dz  z  dt        z  z   dz
        z  dz  dt        d      z  t	        d	t        z  dt        d      z  t        dt        dz  z  dt        z  z   dz
        z  z   dz         z  dz  z          t        t        t         t        z  z   t        t        t        t        z  z   t        t        dz  z  z         z  t              t        t         t         z  dt        z  z  t        z   t        t	        t        dt        t              z  t        t        t        t        z  z   t        t        dz  z  z         z  z   dt        z  t        z  z         t        t              z  t        t        t        dz  dt        z  z  z
  d
      ft        dt        z  z  t        z   t	        t        dt        z  z  t        z         z  t        t        t        dt        z  z  t        z   dz  z        z  df      z  t         t        t        t        t        z  z   t        t        dz  z  z         z  t        z  z   t        t        d
      fdt        z  t        t        t        t        z  z         z  dt         z  t         t        t        t        t        z  z         z  t        t        t        z  z   t        d      dz  z  dz  z   z  t        z  z   t        z  t        t        d
      ft        t        z  t         t        dz  z  dz  z   t        t              z  df      k(  sJ t        dt        dz  z  t        dz  z
  dt        z  z   dz
  t        t        dz  dt        z  z
  dz         z  t              t        t        dz  dt        z  z
  dz         t        dz  dt        z  dz  z   t        d      dz  z   z  dt	        dt        z  dt        t        dz  dt        z  z
  dz         z  z   dz
        z  dz  z   k(  sJ t        t        dt        dz  z  dt        z  z
  dz         t        dz  t        d      dz  z
  t        dt        dz  z  dt        z  z
  dz         z  dt        d      z  t        dt        z  dz  t        d      dz  z
        z  dz  z          t        t        t        t        t        dz  z  z         t              t        t        t        t	        dt        t              z  t        t        t        t        dz  z  z         z  dt        z  t        z  z         t        t              z  t        t        d
      ft        t	        t              z  t        t        t        dz  z        z  df      z  dz  t        t        t        t        t        dz  z  z         z  dz  z   t        t        d
      ft        t              t        z  df      k(  sJ t        t        t        t        t        z  z   t        t        dz  z  z         t              t        t        dz  t        dz  dt        z  z  z
  t        t	        t        dt        t              z  t        t        t        t        z  z   t        t        dz  z  z         z  z   dt        z  t        z  z         t        t              z  t        t        t        dz  dt        z  z  z
  d
      ft        dt        z  z  t        z   t	        t        dt        z  z  t        z         z  t        t        t        dt        z  z  t        z   dz  z        z  df      z  t        dt        z  z  t        dz  z   t        t        t        t        z  z   t        t        dz  z  z         z  z   t        t        d
      fdt        t        t        z  z   t        d      dz  z  z  dt        z  z  t        t        d
      ft        t              t        z  df      k(  sJ t        t        t        t        dz  dt        z  z   dz         z  t        dz  dz  t        d	z  z   t        d      d	z  z   t        t        dz  dt        z  z   dz         z  dt        t        d      t        dz   z  dz        z  dz  z
         y )NrV   rU   r^   rX   re   rf   rj      rW   r   Trq   r_   irp      e   ro      rt   i  i iY  i+A  iiQ  iC)  ir+  i  i:C)rR   r   rN   r	   r   r   r   r    r   rC   ru   rx   r   r   r   r  r  r[   rS   rQ   #test_manualintegrate_sqrt_quadraticr  |  s   !D!a%!A..AaC!DA!APQAQ<R:R4RUVWXUX4X0YZ!D1a4!A..QaRj!aPQdSTf*>UVX>X8Y0YZ[0[\!DAqD1Q//aaRj!aPQdSTf*>UVX>X9Y1YZ[1[\!D1a4!A..QAaC!DG)DQRSTVWSWQWZ[\]Z]Q]`aQaLbBb<bef<f8g0ghi0ij!D1a4!A..QVVSQVV_0LaPTVWZ[Z`Z`V`cdUdPeNe0fg1T!AaC%!Q$,//33q1T!W9T!ac'AadF*:%;;;ac!eCDT!WLbQRTUhY[\]`acd`dfghifi`j\jlmYnNnoqsGaKQ!Wq[!11$q!QqS'A+9I7I2JJBqRSHUT!ac']?1$bAh/!DG)T1B	DD D D
 1Q3q5$qAvacz!|"44D1a4!A#!12214qayqbzSTWXYZW[\]W]S]G^_aGaAb7bcd7ddf1Q3q5$r!Q$wqs{1}"55T"QT'AaC-!"344Q6DGD4PR8UVYZ[\Y]^_Y_U_I`acIcDd9def9ffh1Q3q5$qAvacz!|"44D1a4!A#!12214qayQqS1TRSW9UYZ[\]_`\`Z`cdefcfZfijZjUkKkEknoEoAp7pqr7rrtAacE4!A#a1f#55q9QBqD!A#JNc!aQiQ1WqAv5E0F&F"F1Q"NOPTUVPWWY[\]`acd`dfghifi`j\jlmYno !A#w{C1Q3!,<<T!Q!Wq[STDTBT=UUW[\^^ T!ac'AadF*++A-. 02!Qx9 aCQ1W%!aRQ1W-=QqSAaDQRF@STU@U-U(VWX(XXZ[[]_`acd]efaC!AqD&(NDG+T2	44 4 4 AadF1a4K!OA-tAqD1HQJ/??CQTAaCZ!^adRT!VmafQh67#c!A#$qRStVWXYVYz\]~J^H^B^abBb>c:cdf:ffg g g $uQTz%'1%78Q35%/eAqDj576JU6R1SS#DJ.uU1WU]QuXd]5R/SST^^_` 4!AqD&>1-1YAd1gId1qAv:.>$>1Q$F GQ OQSTUWXQYZ !#a&a1f 5t<> >>?@BCDQqRStVDTBTUVBVWXZ[\^_X`b719d#	%% % % 4!A#a1f-q1AaC!Q$!*$c!aQiQ1WqAv5E0F&F"F1Q"NOPTUVPWWY[\]`acd`dfghifi`j\jlmYno !A#w{C1Q3!,<<T!Q!Wq[STDTBT=UUW[\^^ qsGacM4AaC!AqD&(8#99: <>a8E a!A#g1a((!A#.1a9719d#	%% % % !DAac!,,a46AaC<!A$q&0$q!taczA~2FF5QUVWQXZ[^_Z_Q`abQbKcIcdeIeegrS   c            
         t        t        t        t              z  t        t              z  t        t        t              z  t	        t        t              t        t              z         z
         t        t        t        t              dz  z  t        t        t              z  t	        t        t                    z          t        t        dz  t        t        t              t        df      z  t        dz  t        t        t              t        df      z  dt        dz  z  t        t        t              t        df      z  z
  dt        z  t        t        t              t              z  z   dt        t              z  z
         y )NrU   r^   rX   rW   )rR   rN   r%   r'   r   r"   r   rJ   r[   rS   rQ   test_mul_pow_derivativer    s    !CF(3q6/1SV8c#a&3q6/6J+JK!CFAI+qQx#c!f+'=>!Q$z!A$A77Q$z!A$A77!AqD&AaDSTVWRXAY:YYA#j1q11245adF;<rS   N)sympy.core.exprr   sympy.core.mulr   sympy.core.functionr   r   r   r   sympy.core.numbersr	   r
   r   sympy.core.relationalr   sympy.core.singletonr   sympy.core.symbolr   r   r   &sympy.functions.elementary.exponentialr   r   %sympy.functions.elementary.hyperbolicr   r   r   r   r   r   r   (sympy.functions.elementary.miscellaneousr   $sympy.functions.elementary.piecewiser   (sympy.functions.elementary.trigonometricr   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   'sympy.functions.special.delta_functionsr(   r)   *sympy.functions.special.elliptic_integralsr*   r+   'sympy.functions.special.error_functionsr,   r-   r.   r/   r0   r1   r2   r3   r4   r5   'sympy.functions.special.gamma_functionsr6   #sympy.functions.special.polynomialsr7   r8   r9   r:   r;   r<   r=   r>   &sympy.functions.special.zeta_functionsr?   sympy.integrals.integralsr@   rA   sympy.logic.boolalgrB   sympy.integrals.manualintegraterC   rD   rE   rF   rG   sympy.testing.pytestrH   rI   rN   r`   r   rZ   r   ru   rx   r   r  r  rJ   rR   r\   ra   rc   rh   rm   rr   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   r   r   r  r  r  r  r  r[   rS   rQ   <module>r2     s)      D D 0 0 $ " 6 6 = ] ] ] 9 : w w w w I O m m m > J  J  J : ; #. . -&'<= 1aAq!Q1SMT d 
@
@
13&8> 3 3" ^& ^&B
F4L
" J$D0O< 	7 	79
Q
*%,P W WQ9 Q Q /< /<dM
!
2 D DZ F F7	@    D4e,.r$,g^<rS   