
    sg              
       p   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#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/m0Z0m1Z1 d dl2m3Z3m4Z4 d dl5m6Z6m7Z7 d dl8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZB d dlCmDZD d dlEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZM d dlNmOZO d dlPmQZQmRZR d dlSmTZT d dlUmVZVmWZWmXZXmYZYmZZZ d dl[m\Z\m]Z]  ed      \
  Z^Z_Z`ZaZbZcZdZeZfZg ed      ZhdedefdZid Zjd Zkd Zld Zmd Zne]d         Zoe]d!        Zpd" Zqd# Zrd$ Zsd% Ztd& Zud' Zvd( Zwe]d)        Zxd* Zyd+ Zzd, Z{d- Z|e]d.        Z}d/ Z~d0 Ze]d1        Ze]d2        Zd3 Zd4 Zd5 Ze]d6        Zd7 Ze]d8        Zd9 Zd: Ze]d;        Zd< Zd= Zd> Zd? Zd@ ZdA ZdB ZdC ZdD ZyE)F    )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piecewise_fold)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)rD   xr   equalsrK   rL   s     T/var/www/html/venv/lib/python3.12/site-packages/sympy/integrals/tests/test_manual.pyassert_is_integral_ofrS      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            )rE   r$   rO   r%   ur&   r(   r
   r   r   rK    rT   rR   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????rT   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 )NrV      rY   	   )rD   yrO   r   r[   r\   rT   rR    test_manualintegrate_polynomialsrb   +   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/????rT   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 )NrV   rW   r_   )rD   r   rO   r   rS   r   r\   rT   rR   !test_manualintegrate_exponentialsrd   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0rT   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 )	NrV   rY   r_      rX      rW   r   )rD   r   rO   r'   r#   r   r"   rF   )results    rR   test_manualintegrate_partsri   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2NrT   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 )NrV   r_   r   )rD   r'   rO   r#   r(   r   r&   r%   r$   rS   r   r   r   r   r   r"   r   rewriter   simplifyr   rQ   s     rR   !test_manualintegrate_trigonometryrn   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7rT   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 )	NrV   r_      rY       rf   rX      )rD   r'   rO   r#   r(   r&   r$   r%   r\   rT   rR   test_manualintegrate_trigpowersrs   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 3rT   c                  ,   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        t        z        z        t        t        t        t        z        z  z  t        t        d      fdt        t        z  z  d	f      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 )NrW   rV   rY   r`   r_   rX      aTrealbr   rZ   rp      )r   T)rD   r   rO   r"   r   r   r   r   r	   rv   ry   r   r!   r
   r   r   r   r   rA   r    r   rC   )rarbs     rR    test_manualintegrate_inversetrigr~      s0    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-D4!9<MqQUVWXYVYQZ{<[]_`acd]e;f<>!Hd;K2M M M M 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$	&& & &rT   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 )Nru   rV   r`   r_   rY   rk   rW      }      rf   rr   1   iѷiW )	rD   r   rO   r   r   rC   r
   r   Halfr\   rT   rR   &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rT   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 )NrK   )rD   r   rO   r/   r   rA   rK   s    rR   )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 4rT   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 )NrW   rY   rV   rZ   )rD   rO   r   r\   rT   rR   test_manualintegrate_rationalr      s    1a!Q$h<+AE
{1}s1q5z!|/KKKK1b1a4i=!,AE
1s1q5z!|0KKKKrT   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 )
NrY   rV   r_   rW   rp   irf   r`   i)r   rO   r   r   r2   rS   r3   r
   r7   r/   r'   r4   r#   r5   r.   r1   r   r-   r   r0   r   r6   r@   r,   r+   rQ   s     rR   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rT   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 )NrV   r_   )rD   r   r   rO   ra   rA   r'   r\   rT   rR   test_manualintegrate_derivativer   )  s    2
1a4!A#:> ::A>
adQqSj1n  :adQqSj1na8!<AqD1Q3JNA./0 0 0:c!faAq91=3q61a#$ $ $rT   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_   rV   r   rW   Tr{   rY   ra   rr      )rS   r*   rO   r)   rD   rv   ry   r   r   r
   r   r'   r#   r   )ra   s    rR   test_manualintegrate_Heavisider   2  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rT   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nrr   rf   r_   )r{   rZ   r   rW   r_   rf   rp   r   rV   rW   )rV   rY   rr   t)r   r
   r=   rO   r;   r9   r:   r?   r<   r>   r8   rD   subs
ValueErrorr   r   rangelenargslist
isinstancefuncrA   )r   rv   ry   polyspintegraldegp_subbedqr   inew_argss               rR   $test_manualintegrate_orthogonal_polyr   J  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positiverV   rY   )mapr   splitr#   r   rD   r'   rB   trigsimphasr   )rrO   phir   	integrandlimitss         rR   test_issue_6799r   h  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6rT   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 )NrW   rZ   T)rD   rO   ra   r   r   r   r\   rT   rR   test_issue_12251r   u  sO    1a4#y	
QUQU	R2Y'#a&$(9 9 9 9rT   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 )NrV   rY   F)risch)	rD   r   r   rO   rB   r	   r   r   r2   r\   rT   rR   test_issue_3796r   z  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PrT   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manualrV   )rB   r   rO   r'   r#   r\   rT   rR   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.)* * *rT   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 )Nra   r   r   Tr   rW   )zero)nonzerorv   negativery   rV   rZ   rY   )
r   rD   rO   r   r   r   r   r"   r   rA   )ra   r   rv   ry   s       rR   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&'+, , ,rT   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 )NrV   rW   )rD   r!   rO   r   r   rA   r   r"   r\   rT   rR   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rT   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 )NrV   rf   r_   rY   rp   rW   )rD   r'   rO   r   r#   rG   contains_dont_knowrA   r\   rT   rR   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rT   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 )NrY   ru         !     )r#   rO   r   r'   rD   r   rQ   s     rR   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.rT   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 )
NrY   r_   ru   rV      rp   rX   rf   rW   )rD   rO   r"   r\   rT   rR   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rT   c                  @   t        t        dz  t        dz  t        z
  z  t              t        t        t	        t        t        t               z        t        t               z  t        t        d      fdt        z  df      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        dz  z  t        t	        t        t        t        z
        t        t              z        t        t              z  t        t        d      fdt        t        t        z
        z  df      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        t        z  t        z         t        t               z         t        t               z  t        t        d      fdt        t        t        z  t        z         z  df      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        |      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      t        t        d      z  fdt        z  t        t        t        z  t        z         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 )NrV   r   rZ   Tcrw   rY   r_   r`   ra   zr{   rW   rv   ry   rf      r   rk   )rD   rO   r   r   r"   r   r   r   r   ra   r   r
   rv   ry   r   r	   r   rA   )rcryrzrh   r|   r}   s         rR   test_issue_10847r     sp    1a41a4!8,a0	)T!D!H*%dA2h.1a9BqD$<
HH1LM M M 
$	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	!Q$y$tAE{4723DG;R1XFT!a%[.$/1 	112	356qSa!e_Q5F	G	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T!A#']Q.2FY1Y
tAaC!G}T1"X%
&	&tQBx	/Aq:	
4!a=$&! !!#$T!A#']?!346q!H > 
aQ        &!Y	
1T$qsQw-aR()	)$r(	2QtAaC!G}_	DbAhQSTUWXQYFYZ	Ad1Q37m	aQqS1Wo	-r!Qx8	aQ&       
 
$	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;;< < <rT   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 rN   )rD   rK   rO   ra   r   rA   r   r\   rT   rR   test_issue_12899r     st    1Qq6;;q>!,AaF19Ma0PPPP1Qq6;;q>..q1!4
1Qq6!8LLLLrT   c                      t        t        t        t        ddf      t              t        t        t        t        ddf      z  k(  sJ y )NrW   rV   )rD   rA   ra   rO   r\   rT   rR   #test_constant_independent_of_symbolr     s=    8A1ay115	(1q!Qi
  ! ! !rT   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 )NrV   r{   r_   rW   )rD   r'   rO   r#   r   r\   rT   rR   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 2rT   c                      t        t        t              t        t              dz  z  t              t        t              dz   dz  k(  sJ y )Nrf   rX   )rD   r'   rO   r#   r\   rT   rR   test_issue_13297r      s6    3q6CFAI-q1c!faiZ!^CCCrT   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 )NrW   )rS   rO   r   r   r\   rT   rR   test_issue_14470r   %  sF    !QtAE{]+Sa!eq-ACQQRUVWDX-XYrT   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        d t        dd      D              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 )NrV   
   c              3   N   K   | ]  }t         t        |t         z        z    y wrN   )rO   r   ).0ks     rR   	<genexpr>z"test_issue_9858.<locals>.<genexpr>2  s     ?aqQqSz?s   #%rW   rp   rr   rX   rf   rY   r_   r   $   r   ru   r`   )
rD   r   rO   r#   r'   r   rA   r   sumr   )ress    rR   test_issue_9858r   )  s"   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////3?5A;??C	#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rT   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 )
NrY   rW   rV   rX   r   r_   rf   r   r`   )rD   rO   r"   r   factorr   s    rR   test_issue_8520r   8  s    1adQh<+tAqDz!|;;;1a4A+Q/41Q<?BBB	1QT6A:/A1a %%a(//1Q666rT   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 rN   )rH   )exprrO   s   rR   <lambda>z"test_manual_subs.<locals>.<lambda>G  s    {43 rT   c                  2    t         t                    S rN   )rH   r   r   rO   ra   s   rR   r   z"test_manual_subs.<locals>.<lambda>H  s    {4QA> rT   )r   r   r   rH   rI   r   r   s   @@@rR   test_manual_subsr   ?  s    5>DAqq6CF?DtSVQ'1s3q6{?:::tSVQ'3q6A:555
:34
:>?rT   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_   rY   irW   r   r   ru   r   )r   rO   r#   r
   r'   rS   rQ   s     rR   test_issue_15471r   K  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rT   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 )Nrf   rV   r_   rp   rX   rg      rW   E   rY   )rO   rD   r   r   r"   r
   )rK   gs     rR   test_quadratic_denomr   R  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CrT   c                  p    t        t        t              t              t        t        t              z  k(  sJ y rN   )rD   r'   rO   ra   r\   rT   rR   test_issue_22757r   X  s#    3q61%SV333rT   c                      t        t        t              t              } | j                  j                  }|j                  |j
                  |j                  z  k(  sJ y rN   )rG   r(   rO   substepr   constantother)stepsconstant_times_steps     rR   test_issue_23348r  \  sI    3q61%E--//((,?,H,HK^KdKd,ddddrT   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 )
NrW   rV   r{   rZ   Tr   rY   r_   z1.31695789692482)rA   r   rO   doitr   strr   )r   s    rR   test_issue_23566r
  b  sw    41q>!Ar2;/44D4AAQ47]##c!f,,,,qssu:++++rT   c            
         t        dd      } t        dd      }t        t        t        t        dz  z  t
        z         t              t        t              t        t
              z  t        t        t              t        z        z  dt        t              z  z  k(  sJ t        t        | t        dz  z  t
        z         t              t        t              t        t
              z  t        t        |       t        z        z  dt        |       z  z  k(  sJ t        t        |t        dz  z  t
        z         t              t        t               t        t
              z  t        |t        z  t        |       z        z  dt        |       z  z  k(  sJ t        t        t        t        dz  z  t
        z         t              t        d      t        t              z  t        t
              t        t        d      t        t              z  t        z  t        t              z        z  t        t
              t        t        d      t        t              z  t        z  t        t              z        z  z   z  dt        t              z  z  k(  sJ t        t        t        t        dz  z  t
        z         t              t        d      t        t              z  t        t
               t        t        d      t        t              z  t        z  t        t              z        z  t        t
              t        t        d      t        t              z  t        z  t        t              z        z  z   z  dt        t              z  z  k(  sJ y )NapTr   anr   rV   )r   rD   r   rv   rO   ry   r   r   r3   r2   r'   r4   r#   r5   )r  r  s     rR   test_issue_25093r  h  s   	t	$B	t	$B3qAvz?A.$r(3q6/$tAwqy/2QSTUYZ[U\S\2]]]]3r!Q$w{+Q/48CF?4RQR
CS3SUVW[\^W_U_3````3r!Q$w{+Q/DH9SV3CC1TSURUYDW3WYZ[_ac`c[dYd3eeee3qAvz?A.QR#a&$q'$q'/!*;DH*D!EE
a&$q'$q'/!+DH45
56 	789$q'		CD D D 3qAvz?A.QR3q6'(4747?1+<T"X+E"FF
a&$q'$q'/!+DH45
56 	789$q'		CD D DrT   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 )NrV   rf   r_   rX   rg   rW   rZ   Tr   )rS   r   rO   r   r   r   rv   ry   derD   r   r   r   rP   r   )rK   F1F2s      rR   test_nested_powr  v  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---rT   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 )Nrf   r_   rY   rV   r   rr   i7     (   Q      r{   r   TrW   rX      r   rp   r`   rg   )rS   rO   r   r   rD   rv   ry   r   r   r   Oner   r"   r\   rT   rR    test_manualintegrate_sqrt_linearr    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rT   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 )NrW   rV   r_   rY   rf   rg   rk      rX   r   Trr   r`   irq      e   rp      ru   i  i iY  i+A  iiQ  iC)  ir+  i  i:C)rS   r   rO   r	   r   r   r   r!   r   rD   rv   ry   r   r   r   r  r  r\   rT   rR   #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rT   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 )NrV   r_   rY   rX   )rS   rO   r&   r(   r   r#   r   rK   r\   rT   rR   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;<rT   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   r   (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/   r0   r1   r2   r3   r4   r5   r6   'sympy.functions.special.gamma_functionsr7   #sympy.functions.special.polynomialsr8   r9   r:   r;   r<   r=   r>   r?   &sympy.functions.special.zeta_functionsr@   sympy.integrals.integralsrA   rB   sympy.logic.boolalgrC   sympy.integrals.manualintegraterD   rE   rF   rG   rH   sympy.testing.pytestrI   rJ   rO   ra   r   r[   r   rv   ry   r   r  r  rK   rS   r]   rb   rd   ri   rn   rs   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%  r\   rT   rR   <module>r<     s/      D D 0 0 $ " 6 6 = ] ] ] 9 J w w w w I O m m m > J  J  J : ; #. . -&'<= 1aAq!Q1SMT d 
@
@
13&8> 3 3" _& _&D
F4L
" J$D0O< 	7 	79
Q
*%,P W WQ9 Q Q :< :<zM
!
2 D DZ F F7	@    D4e,D.r$,g^<rT   