
    gN                     z   d dl 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 d dlmZ d dlmZmZ d dlmZmZ d dlmZmZmZ d d	lmZmZ d d
lmZ d dlmZ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+ d dl,m-Z-m.Z. d dl/m0Z0 d dl1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl m7Z7m8Z8m9Z9m:Z:m;Z; d dl<m=Z>m?Z@mAZBmCZC d dlDmEZE d dlFmGZGmHZH d dlImJZJmKZKmLZLmMZM  eC            ZNd ZOd ZPd ZQd ZRd ZSd ZTd ZUd ZVd ZWd  ZXd! ZYd" ZZd# Z[eHd$             Z\d% Z]d& Z^d' Z_d( Z`d) Zad:d+Zbd, Zcd- Zdd. Zed/ Zfd0 Zgd1 Zhd2 Zid3 Zjd4 Zkd5 Zld6 Zmd7 Znd8 Zod9S );    )product)Sum)diffexpand_func)IRationaloopi)S)Symbolsymbols)	conjugate
polar_lift)exp	exp_polarlog)coshsinh)sqrt)cossin)besselibesseljbesselkbesselyhankel1hankel2hn1hn2jnjn_zerosyn)gamma
uppergamma)hyper)Integral)O)series)airyaiairybiairyaiprimeairybiprimemarcumq)random_complex_numberverify_numericallytest_derivative_numerically_randint)
besselsimp)raisesslow)znkxc            	      ^   t           t          t          t          t          t
          fD ]4} t           | t                      t                    t                    sJ 5t          t          t          t          fD ]6} t           | t          dd          t                    t                    sJ 7d S )Ni
   )r   r   r   r   r   r   tdrandcplxr5   r    r"   r   r   randintfs    e/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/functions/special/tests/test_bessel.pytest_bessel_randrA   !   s    w'7C ' '!!HJJ""A&&&&&&"c3 - -!!GC$$a((!,,,,,,- -    c                       t           t          t          t          t          t
          t          t          fD ]2 t          t           fd           t          t           fd           3d S )Nc                        d          S )N    r>   s   r@   <lambda>z'test_bessel_twoinputs.<locals>.<lambda>+   s    !!A$$ rB   c                        ddd          S )NrE         rF   r>   s   r@   rG   z'test_bessel_twoinputs.<locals>.<lambda>,   s    !!Aq!** rB   )
r   r   r   r   r   r   r    r"   r3   	TypeErrorr>   s   @r@   test_bessel_twoinputsrL   )   s`    w'7BK . .y,,,,'''y,,,,----. .rB   c                  |   t          dt                                        t                    dk    sJ t          dt          t                                                  t                    t          dz  k    sJ t          ddt	          t                    z                                t                    t	          t                    k    sJ t          t
          t                    t          t
          z  z                      t                    ddt
          z  t          t
          dz             z  z  k    sJ d S Nr   rE   rI   )r   r8   as_leading_termr   r   r5   r#   rF   rB   r@   test_besselj_leading_termrP   /   s    1a==((++q00001c!ff--a00AaC77771aQi  0033tAww>>>> AqMM!Q$//22aAeAEll9J6KKKKKKKrB   c                  L   t          dt                                        t                    dt          t                    z  dt          d          z  z
  dt          j        z  z   t          z  k    sJ t          dt          t                                                  t                    dt          t          z  z  k    sJ t          ddt          t                    z                                t                    dt          t          t                    z  z  k    sJ d S )Nr   rI   rE   )	r   r8   rO   r   r   
EulerGammar
   r   r   rF   rB   r@   test_bessely_leading_termrU   8   s    1a==((++#a&&1SVV80Can0TVX/XXXXX1c!ff--a00B1I====1aQi  0033r2d1gg:FFFFFFrB   c                     t          dt                                        t                    dk    sJ t          dt          t                                                  t                    t          dz  k    sJ t          ddt	          t                    z                                t                    t	          t                    k    sJ d S rN   )r   r8   rO   r   r   rF   rB   r@   test_besseli_leading_termrW   >   s    1a==((++q00001c!ff--a00AaC77771aQi  0033tAww>>>>>>rB   c                     t          dt                                        t                    t          t                     t          j        z
  t          d          z   k    sJ t          dt          t                                                  t                    dt          z  k    sJ t          ddt          t                    z                                t                    ddt          t                    z  z  k    sJ d S )Nr   rI   rE   )r   r8   rO   r   r   rT   r   r   rF   rB   r@   test_besselk_leading_termrY   D   s    1a==((++Aw/EA/NNNNN1c!ff--a00AaC77771aQi  0033q!DGG)}DDDDDDrB   c                  
   t          dt                                        t                    dt          dz  dz  z
  t          dz  dz  z   t          t          dz            z   k    sJ t          dt          dz                                t                    dt          dz  dz  z   t          d	z  dz  z
  t          t          dz            z   k    sJ t          dt          dz  t          z                                 t                    dt          dz  dz  z
  t          d
z  dz  z
  dt          dz  z  dz  z
  t          dz  dz  z   t          t          dz            z   k    sJ t          dt	          t                    t          z                                 t          d          dt          dz  z
  dt          dz  z  dz  z
  dt          d
z  z  dz  z   t          t          d
d          z  dz  z
  t          t          dd          z  dz  z   dt          t          dd          z  z  dz  z   t          t          dz            z   k    sJ t          dt          dt          z
  z                                t                    dt          dz  dz  z
  t          d
z  dz  z
  dt          dz  z  dz  z
  dt          dz  z  dz  z
  t          t          dz            z   k    sJ t          dt          dt          z                                           t                    dt          dz  dz  z
  t          d
z  dz  z   dt          dz  z  dz  z
  dt          dz  z  dz  z   t          t          dz            z   k    sJ t          dt          t                                                  t                    t          dz  dt          d
z  z  dz  z
  dt          dz  z  dz  z   t          t          dz            z   k    sJ t          ddt	          t                    z                                t                    t	          t                    t          t          d
d          z  dz  z
  t          t          dd          z  dz  z   t          t          dd          z  dz  z
  t          t          dd          z  dz  z   t          t          d d          z  d!z  z
  t          t          dz            z   k    sJ t          d"t          t                                                  t          d          t          dt          t                                                  t          d          k    sJ d S )#Nr   rE   rI      @      皙?皙@皙@rJ            r6       	          /   )         `   0   I           	   @     Q rR   )r   r8   r(   r'   r   r   r   r   rF   rB   r@   test_besselj_seriesrx   J   s   1a==""a!Q$q&j1a47&:Qq!tWW&DDDDD1a#h&&q))QC]QVAX-E!Q$-OOOOO1adQh&&q))QAaZ!Q$q&-@
QT'"*.!tBw.!"1a4.) ) ) ) )1d1ggk""))!q)11Q1Wr!Q$wrz5I
ad(4-6Xa^^+A-6.018Aq>>0A"0D6E
QA
s
"6#%&q!tWW6- - - - - 1aQi  ''**a!Q$q&j1a46.ABq!tGBJ.N
QT'"*/Aww/    1c!a%jj!!((++q1a46zAqDF/B
QT'#+01a4
0#%&q!tWW0- - - - -1c!ff$$Q''1Q31a4?R1WT\+IAaQRdGG+SSSSS1aQi  ''**d1gg8Aq>>8I!8K.K
Xa^^
B
/!"HQNN!23!6/79:HQNN9J49O/P
Xb!__
U
"/#%&q!tWW/- - - - - 2s1vv%%a1%--CFF1C1C1J1J1PQ1J1R1RRRRRRRrB   c                     dt           j        z  t          z  dt          d          z  t          z  z
  dt          t                    z  t          z  z   } t          dt                                        t          d          | t          dz  t          t                     dt          z  z  ddt           j        z  z
  dt          z  z  z   t          d          dt          z  z  z   z  z   t          t          dz  t          t                    z            z   k    sJ t          dt                                        t          d          dt          t          z  z  t          t          t                    t          z  t          d          t          z  z
  ddt           j        z  z
  dt          z  z  z
  z  z   t          dz  t          t                     dt          z  z  t          d	          dz  dt           j        z  z
  d
t          z  z  z   t          d          dt          z  z  z   z  z   t          t          dz  t          t                    z            z   k    sJ t          dt                                        t          d          dt          t          dz  z  z  dt          z  z
  t          dz  t          t                    dt          z  z  t          d          dt          z  z  z
  t          d          dz  dt           j        z  z
  dt          z  z  z
  z  z   t          t          dz  t          t                    z            z   k    sJ t          dt                                        t          d          dt          t          dz  z  z  dt          t          z  z  z
  t          dt          z  z  z
  t          dz  t          t                    dt          z  z  t          d          dt          z  z  z
  t          d          dz  dt           j        z  z
  dt          z  z  z
  z  z   t          t          dz  t          t                    z            z   k    sJ t          dt          dz                                t          d          dt           j        z  t          z  dt          d          z  t          z  z
  dt          t                    z  t          z  z   t          dz  dt          t                    z  t          z  ddt           j        z  z
  dt          z  z  z   t          d          dt          z  z  z   z  z   t          t          dz  t          t                    z            z   k    sJ t          dt          dz  t          z                                 t          d          | ddt           j        z  z
  t          dz   dt          z  z  t          dz  dt          z  z  z
  z  z
  dt          z  t          z  z   t          dz  t          t                     dt          z  z  dt          z  z
  t          d          dt          z  z  z   z  z   t          dz  t          t                     t          z  ddt          z  z  z   t          d          t          z  z   z  z   t          t          dz  t          t                    z            z   k    sJ t          dt          dt          z
  z                                t          d          | dt          z  t          z  z   t          dz  t          t                     dt          z  z  ddt           j        z  z
  dt          z  z  z   t          d          dt          z  z  z   dt          z  z   z  z   t          t          dz  t          t                    z            z   k    sJ t          dt          dt          z                                           t          d          | t          t          z  z
  t          dz  t          t                     dt          z  z  ddt           j        z  z
  dt          z  z  z   t          d          dt          z  z  z   d	dt          z  z  z   z  z   t          t          dz  t          t                    z            z   k    sJ t          dt          t                                                  t          d          dt          t          dz   dz  t          dz  z   z  z  ddt           j        z  z
  t          dz   dz  t          dz  z   z  t          z  z
  t          t          t                    t          z  t          d          t          z  z
  z  z   t          dz  dt          t                    z  dt          z  z  ddt          z  z  z
  t          d	          dz  dt           j        z  z
  d
t          z  z  z   dt          d          z  dt          z  z  z   z  z   t          t          dz  t          t                    z            z   k    sJ t          ddt          t                    z                                t          d          dt          t          t                    z  z  t          t                    t          t                    t          z  ddt           j        z  z
  t          z  z
  z  z   t          t          d          dz  z  t          t                     dt          z  z  t          d	          dz  dt           j        z  z
  dt          z  z  z   z  z   t          t          d	          dz  z  t          t                    dt          z  z  t          d          dz  dt           j        z  z
  dt          z  z  z
  z  z   t          t          dz  t          t                    z            z   k    sJ t          dt          t                                                  t          d          t          dt          t                                                  t          d          k    sJ d S )NrI   r   r[   rd   rE   rR   rJ      rb   rc   i   rv   r]   ro   r^   r`   grr   rS   rh   r:   )
r   rT   r
   r   r8   r   r(   r'   r   r   consts    r@   test_bessely_seriesr   ]   s	   alN2#a&&+aAhrk9E1a==Q''51a4#a&&!B$q~"
%:&(+A":6 47 ,79:1a4A;,H H H H H1a==Q''2r!t9q#a&&)c!ffRi:O	
Qq|^	ad#;$ 8% ,%'(!tc!ffWad^	
1a!AL.	 2b5).*,/FFAbDM.: (;,;=>q!tCFF{^^,L L L L L 1a==Q''2r!Q$w<!B$+>As1vvqQSt}A"H1a!AL.01R48H9 B: ,:<=ad3q66kNN,K K K K K1a==Q''31a4=1bd8+C	1R4,a4QB#a&&"R%.8	
2q1Q\>	!BrE*+ ,,,./1SVVnn,= = = = = 1a#h&&qA&..!AL.2C
CFF(2+3CFF
23&()3c!ffRq~"
%1&(+A"16 )7379:1a4A;3H H H H H 1adQh&&qA&..Qq|^#q!teQrTlQT1R4[&@AAAaCFJ
Q$Q22%A"5
6	7
Q$Q
Q"X%Ar	1
2	356q!tCFF{^^	DD D D D 1aQi  ''Q'//5
A#b&4a4#a&&!B$1q~+="*EE
a&&!B$-B$  4 "#AqDQK..41 1 1 1 1 1c!a%jj!!((a(00E
B$5AAw"~Qq|^);ad(CC
a&&!B$-RU)$ %5%'(Ac!ff~~56 6 6 6 6 1c!ff$$Q!$,,BAb1Q34G0H	
Qq|^	q!teBh1n-b01134c!ffRi#a&&)6K3L1M	1bQiB!QrT(*add1fq~.E2-NN	#a&&"R% 	1 ad3q66kNN1+ + + + + 1aQi  ''Q'//2r$q''z?QQa!AL.0"4454689AaDDFc!ffWaPRd^	
1a!AL.	 1R4(F) 9*4*,-!QKQB	
2q1Q\>	!BrE*:+ -,4, /01SVVnn4= = = = = 2s1vv%%a1%--CFF1C1C1J1J1PQ1J1R1RRRRRRRrB   c                  
   t          dt                                        t                    dt          dz  dz  z   t          dz  dz  z   t          t          dz            z   k    sJ t          dt          dz                                t                    dt          dz  dz  z   t          d	z  dz  z   t          t          dz            z   k    sJ t          dt          dz  t          z                                 t                    dt          dz  dz  z   t          d
z  dz  z   dt          dz  z  dz  z   t          dz  dz  z   t          t          dz            z   k    sJ t          dt	          t                    t          z                                 t          d          dt          dz  z   dt          dz  z  dz  z   dt          d
z  z  dz  z   t          t          d
          dz  z  dz  z   t          t          d          dz  z  dz  z   dt          t          d          dz  z  z  dz  z   t          t          dz            z   k    sJ t          dt          dt          z
  z                                t                    dt          dz  dz  z   t          d
z  dz  z   dt          dz  z  dz  z   dt          dz  z  dz  z   t          t          dz            z   k    sJ t          dt          dt          z                                           t                    dt          dz  dz  z   t          d
z  dz  z
  dt          dz  z  dz  z   dt          dz  z  dz  z
  t          t          dz            z   k    sJ t          dt          t                                                  t                    t          dz  t          d
z  dz  z
  dt          dz  z  dz  z
  t          t          dz            z   k    sJ t          ddt	          t                    z                                t                    t	          t                    t          t          d
          dz  z  dz  z   t          t          d          dz  z  dz  z   t          t          d          dz  z  dz  z   t          t          d          dz  z  dz  z   t          t          d          dz  z  d z  z   t          t          dz            z   k    sJ t          d!t          t                                                  t          d          t          dt          t                                                  t          d          k    sJ d S )"Nr   rE   rI   r[   r\   r]   r^   r_   r`   rJ   rm   rb   rc   rd      rf      rh   ri   1   rj   rl   rg   rn   ro   rq   rr   rs   rt   ru   rv   rw   rR   )r   r8   r(   r'   r   r   r   r   rF   rB   r@   test_besseli_seriesr      s   1a==""a!Q$q&j1a47&:Qq!tWW&DDDDD1a#h&&q))QC]QVAX-E!Q$-OOOOO1adQh&&q))QAaZ!Q$q&-@2ad72:-M	1R.AqD''.    1d1ggk""))!q)11Q1Wr!Q$wrz5IAqD6AaDDFA6&()AaDDFB679;A!QK9K6LNOPQSTPTgg6V V V V V1aQi  ''**a!Q$q&j1a46.ABq!tGBJ.N
1a4
/q!tWW/    1c!a%jj!!((++q1a46zAqDF/BR1WS[/P
1a4
0q!tWW0    1c!ff$$Q''1Q3Ab=2ad74<+G!AqD''+QQQQQ1aQi  ''**d1ggAaDDFA.EAaDDQRFTV.V	AaDDFC/add1f+d*/+-.2q\%-?/@BCAqD''/J J J J J2s1vv%%a1%--CFF1C1C1J1J1PQ1J1R1RRRRRRRrB   c                  `   t          d          t          j        z
  t          t                    z
  } t	          dt                                        t          d          | t          dz  t          t                     dz  t          j        dz  z
  t          d          dz  z   t          d          dz  z   z  z   t          t          dz  t          t                    z            z   k    sJ t	          dt                                        t          d          dt          z  t          t          t                    dz  t          d          dz  z
  t          d          dz  z
  t          j        dz  z   z  z   t          dz  t          t                    dz  t          d          d	z  z
  t          d          dz  z
  t          j        dz  z   z  z   t          t          dz  t          t                    z            z   k    sJ t	          dt                                        t          d          dt          dz  z  t          d          dz  z
  t          dz  t          t                     d
z  t          j        d
z  z
  t          d          d
z  z   t          d          dz  z   z  z   t          t          dz  t          t                    z            z   k    sJ t	          dt          dz                                t          d          t          d          t          j        z
  dt          t                    z  z
  t          dz  dt          t                    z  t          j        dz  z
  t          d          dz  z   t          d          dz  z   z  z   t          t          dz  t          t                    z            z   k    sJ t	          dt          dz  t          z                                 t          d          | ddt          j        z  z
  t          dz  dz  t          dz  d
z  z   z  z   t          z
  t          dz  t          t                     dz  t          d          dz  z   t          d          dz  z   z  z   t          dz  t          t                     dz  t          d          dz  z
  t          d          dz  z   z  z   t          t          dz  t          t                    z            z   k    sJ t	          dt          dt          z
  z                                t          d          | t          z
  t          dz  t          t                     dz  t          d          dz  z
  t          j        dz  z
  t          d          dz  z   z  z   t          t          dz  t          t                    z            z   k    sJ t	          dt          dt          z                                           t          d          | t          dz  z   t          dz  t          t                     dz  t          j        dz  z
  t          d          dz  z   t          d          dz  z   z  z   t          t          dz  t          t                    z            z   k    sJ t	          ddt          t                    z                                t          d          ddt          t                    z  z  t          t                    t          t                    dz  t          d          dz  z
  t          j        z   z  z   t          t          d          dz  z  t          t                    dz  t          d          d
z  z
  t          j        dz  z   z  z   t          t          d          dz  z  t          t                    dz  t          d          dz  z
  t          j        dz  z   z  z   t          t          dz  t          t                    z            z   k    sJ t	          dt          t                                                  t          d          t	          dt          t                                                  t          d          k    sJ d S )NrI   r   r[   rd   rE   rJ   rc   rb   r\   rz       r^   r`   gѿrh   rr   r|   $   rR   )	r   r   rT   r8   r   r(   r'   r   r   r~   s    r@   test_besselk_seriesr      s$   FFQ\!CFF*E1a==Q''5	1s1vvgai!,q.(3q66!83add1f<=,>@A!Q$s1vv+,O O O O O1a==Q''1Q3CFF1Hs1vvax4G	!Q5a5  2! ,!#$a4QQqTT"W)<s1vvby)H	R* $,QT#a&&[>>,* * * * * 1a==Q''1QT6AaDDF?QTCFF719	QDQD"$%aDDGD, >- ,-/0Ac!ff~~,> > > > >1a#h&&qA&..#a&&1<2GCFF
3VVCFF]Q\!^;AqQ446 3q!tCFF{^^3, , , , , 1adQh&&qA&..%	
Qq|^	ad1fq!tAvo.3/123356TCFF719Aq<Q446< 63TCFF719qttBw#6Q#AB3CEFq!tCPQFF{^^3T T T T T 1aQi  ''Q'//519q!tc!ffWQY	!QFaF "%a&&(F+ @, 4,./1SVVnn4= = = = =1c!a%jj!!((a(00EAaCK	1s1vvgai!,q.(1Q4472SVVAX=>5?AB1a4A;5P P P P P1aQi  ''Q'//1aQi=QQAaDDF"Q\1243561a[#a&&(QqTTRSVBS	QC 64add1f+s1vvby1Q447':Q\"_'LM4NPQRSUVRVWZ[\W]W]R]P^P^4_ _ _ _ _ 2s1vv%%a1%--CFF1C1C1J1J1PQ1J1R1RRRRRRRrB   c                     t          t          t                                        t                    t          t          dz
  t                    dz  t          t          dz   t                    dz  z
  k    sJ t	          t          t                                        t                    t	          t          dz
  t                    dz  t	          t          dz   t                    dz  z
  k    sJ t          t          t                                        t                    t          t          dz
  t                    dz  t          t          dz   t                    dz  z   k    sJ t          t          t                                        t                    t          t          dz
  t                     dz  t          t          dz   t                    dz  z
  k    sJ t          t          t                                        t                    t          t          dz
  t                    dz  t          t          dz   t                    dz  z
  k    sJ t          t          t                                        t                    t          t          dz
  t                    dz  t          t          dz   t                    dz  z
  k    sJ d S )NrE   rI   )	r   r6   r5   r   r   r   r   r   r   rF   rB   r@   	test_diffr      s   1a==a  GAE1$5$5a$7'!a%:K:KA:M$MMMMM1a==a  GAE1$5$5a$7'!a%:K:KA:M$MMMMM1a==a  GAE1$5$5a$7'!a%:K:KA:M$MMMMM1a==a  WQUA%6%6$6q$871q5!;L;LQ;N$NNNNN1a==a  GAE1$5$5a$7'!a%:K:KA:M$MMMMM1a==a  GAE1$5$5a$7'!a%:K:KA:M$MMMMMMMrB   c                     t          t          t                                        t                    t          dt          z  t          z            t	          t          t          j        z
  t                    z  k    sJ t          t          t                                        t                    t          dt          z  t          z            t          t          t          j        z
  t                    z  k    sJ t          t          t                                        t                     t          t           t          z  t          z  dz            t          t          t          t                    t          z            z  k    sJ t          t          t                                        t                    t          t          t          z  t          z  dz            t          t          t          t                     t          z            z  k    sJ t                      } t!          t          | t                    t          | t                                        t                    t                    sJ t!          t          | t                    t          | t                                        t                    t                    sJ t!          t          | t                    t          | t                                        t                     t                    sJ t!          t          | t                    t          | t                                        t                    t                    sJ t!          t          | t                    t          | t                                        t                     t                    sJ t!          t          | t                    t          | t                                        t                    t                    sJ t!          t#          | t                    t#          | t                                        t                     t                    sJ t!          t#          | t                    t#          | t                                        t                    t                    sJ t!          t#          | t                    t#          | t                                        t                    t                    sJ t          | t                    t          | t                                        t                    k    sJ t%          | t                    t%          | t                                        t                    k    sJ t'          | t                    t'          | t                                        t                    k    sJ t	          | t                    t	          | t                                        t                    k    sJ t%          | t                    t%          | t                                        t                    k    sJ t'          | t                    t'          | t                                        t                    k    sJ | }t           t          fD ]}t%          |t                    t%          |t                                        |          k    sJ t'          |t                    t'          |t                                        |          k    sJ t	          |t                                        t                     t          d          t          t                    z  t          dt          z            z  t          |t          j        z   t                    z  dz  k    sJ t	          |t                                        t                    d| z  t          d          z  t          t                    z  t          dt          z            z  t          | t          j        z
  t                    z  dz  k    sJ t)          dd          }t+          dd          }||fD ]}t           t          fD ]}t          |t                    t          |t                                        |          k    sJ t	          |t                    t	          |t                                        |          k    sJ t%          |t                    t%          |t                                        |          k    sJ t'          |t                    t'          |t                                        |          k    sJ 	t-          t          t          t$          t&          ft          t          t           t          f          D ]N\  }}t!           ||t                     ||t                                        |          t                    sJ Od S )	NrI   rE   rS   r6   Tintegerr:   )r   r6   r5   rewriter    r   r
   r   Halfr   r"   r   r   r   r   r<   tnr   r   r   r   r=   r   )nuorderr?   Nrifuncrefuncs          r@   test_rewriter      s>   1a==  $$QqSVRAF
A5F5F(FFFFF1a==  $$QqSVRAF
A5F5F(FFFFF1a==  ))QBqDGAIwq*Q--/2223 3 3 31a==  ))AaCF1HgaQB!12223 3 3 3 
Bgb!nngb!nn44W==qAAAAAgb!nngb!nn44W==qAAAAAgb!nngb!nn44W==qAAAAAgb!nngb!nn44W==qAAAAAgb!nngb!nn44W==qAAAAAgb!nngb!nn44W==qAAAAAgb!nngb!nn44W==qAAAAAgb!nngb!nn44W==qAAAAAgb!nngb!nn44W==qAAAAA b!992q		))"------r1::R++B//////r1::R++B//////b!992q		))"------r1::R++B//////r1::R++B////// Ew 9 95!}}E1 5 5a 8 888885!}}E1 5 5a 8 888888eQ<<((DGGDHH,<T!A#YY,FwuWXW]~_`GaGa,abc,ccccceQ<<((R"HT!WW,<T"XX,Ed1Q3ii,OPWY^X^abagXgijPkPk,klm,mmmmm 	sD!!!A	b		Ba = =7# 	= 	=AeQ<<2eQ<<#7#7#:#:::::eQ<<2eQ<<#7#7#:#:::::ua==CqMM$9$9!$<$<<<<<ua==CqMM$9$9!$<$<<<<<<		=  Rc 2!#R' :< < ? ?f$$r1++ttB{{226::A>>>>>>? ?rB   c            
         t          t          t          j        t                                        t                              t          d          t          t                    z  t          t                    t          t                    z  z  k    sJ t          t          t          j        t                                        t                              t          d           t          t                    z  t          t                    t          t                    z  z  k    sJ t          t          t          j        t                              t          d          t          t                    z  t          t                    t          t                    z  z  k    sJ t          t          t          dd          t                              t          d          t          t                    z  t          t                    t          t                    z  z  k    sJ t          t          t          dd          t                              t          d           t          dz  t          t                    z  dt          z  t          t                    z  z   dt          t                    z  z
  z  t          t                    t          t          dd          z  z  z  k    sJ t          t          t          dd          t                              t          d           t          dz  t          t                    z  dt          z  t          t                    z  z
  dt          t                    z  z
  z  t          t                    t          t          dd          z  z  z  k    sJ t          t          t          j        t                              t          d          t          t                    z   t          t                    t          t                    z  z  k    sJ t          t          t          dd          t                              t          d          t          t                    z  t          t                    t          t                    z  z  k    sJ t          t          t          dd          t                              t          d          t          dz  t          t                    z  dt          z  t          t                    z  z
  dt          t                    z  z
  z  t          t                    t          t          dd          z  z  z  k    sJ t          t          t          dd          t                              t          d           t          dz  t          t                    z  dt          z  t          t                    z  z   dt          t                    z  z
  z  t          t                    t          t          dd          z  z  z  k    sJ t          t          t          j        t                              t          d          t!          t                    z  t          t                    t          t                    z  z  k    sJ t          t          t          dd          t                              t          d          t#          t                    z  t          t                    t          t                    z  z  k    sJ t          t          t          dd          t                              t          d          t          dz  t!          t                    z  dt          z  t#          t                    z  z
  dt!          t                    z  z   z  t          t                    t          t          dd          z  z  z  k    sJ t          t          t          dd          t                              t          d          t          dz  t#          t                    z  dt          z  t!          t                    z  z
  dt#          t                    z  z   z  t          t                    t          t          dd          z  z  z  k    sJ t          t%          t          j        t                              t          t%          t          dd          t                              cxk    rSt          t                    t'          t                     z  t          d          t          t                    z  z  k    sn J t          t%          t          dd          t                              t          t%          t          dd          t                              cxk    rst          d          t          t                    z  t          dz  dt          z  z   dz   z  t'          t                     z  dt          t          dd          z  z  z  k    sn J t)          ddd          } t          t          | dz   t                              t          | t                    d	| z  dz
  d	| z  t          | t                    z  t          z  t          | d
z
  t                    z   z  t          z  z   k    sJ t          t          | dz   t                              t          | t                     d| z  dz   d| z  t          | t                    z  t          z  t          | d
z
  t                    z
  z  t          z  z   k    sJ t          t%          | dz   t                              t%          | t                    d| z  dz   d| z  t%          | t                    z  t          z  t%          | d
z
  t                    z   z  t          z  z   k    sJ t          t          | dz   t                              t          | t                     d| z  dz   d| z  t          | t                    z  t          z  t          | d
z
  t                    z
  z  t          z  z   k    sJ t          t          | t          j        z   t                                        t                              t          d          t          t                    z  t'          t*           t          z  | t          j        z   z  dz            z  t-          t*          t          z  dz            z  t          | t          t-          t*          t          z  dz            z            z  t          t                    z  k    sJ t          t          | t          j        z   t                                        t                              t          d          t          t                    z  t          | t                    z  t          t                    z  k    sJ t)          dd          }t)          dd          }t)          dd          }t          t          t          t$          fD ]L} |||          j        du sJ  ||t0                    j        J  |t0          t                    j        J Mt          t          fD ]} |||          j        du sJ t          t$          fD ]} |||          j        J t          t          t          t$          fD ]}t           |t2          t0                               |t2          t0          d          k    sJ t           |t2           t0                               |t2           t0          d          k    sJ d S )NrI   rS   rb   rJ   r6   T)r   positiverR   rE   r[   rrealpr   ir   Fevaluate)r   r   r   r   r5   r   r    r   r   r
   r   r"   r   r2   r   r   r   r   r   r   r   r   r   is_extended_realr8   r	   )r6   r   r   r   besselxs        r@   test_expandr      s\   wqvq))11"5566QARa()* * * *wqvq))11"5566	aQb$q'')*+ + + +
 gafa(())T!WWSVV^T"XXd1gg=M-NNNNNghr1ooq1122d1ggc!ffnd2hhtTUwwFV6WWWWWghq!nna0011	a!Q$s1vv+!CFF
*Qs1vvX56RHQPQNNAR8RST T T Tghr1ooq1122	a!Q$s1vv+!CFF
*Qs1vvX56RHQPQNNAR8RST T T T gafa(())
q''#a&&.488DGG+,- - - -ghr1ooq1122d1ggc!ffnd2hhtTUwwFV6WWWWWghq!nna0011QAc!ffqs3q66z)Ac!ffH45tBxx8Aq>>@Q7QRS S S Sghr1ooq1122	a!Q$s1vv+!CFF
*Qs1vvX56RHQPQNNAR8RST T T T gafa(())T!WWT!WW_d2hhtAww>N-OOOOOghr1ooq1122QQb$q'')*+ + + +ghq!nna0011QAd1gg!DGG+aQi78$r((1hqRSnnCT:TUV V V Vghr1ooq1122QAd1gg!DGG+aQi78$r((1hqRSnnCT:TUV V V V gafa(())78B??A..//V V V V3788CGG3CT!WWTRSWW_3UV V V V V Vghq!nna001178B??A..//H H H HQR!Q$1*q.)#qb''11QA5F3FGH H H H H H 	sD4000Awq1ua(())1ABqDA$6q$871q5!;L;L$LMaOOP P P Pwq1ua(())	A!A#'AaC1$5a$7'!a%:K:K$KLQNNO O O Owq1ua(())11q1Q3wq!}}#4Q#6Q9J9J#JKAMMN N N Nwq1ua(())	A!A#'AaC1$5a$7'!a%:K:K$KLQNNO O O O wq16z1--55b99::	aaaRUAJ/122	2	1R46		
a9QrT!V#4#4!455
66:2hh
?@ @ @ @ wq16z1--55b99::QQ1a b)* * * * 	sAsT"""AsD!!!AWgw7 6 6wq!}}-5555wq!}}-555wq!}}-5555W% 6 6wq!}}-55555W% 6 6wq!}}-5555Wgw7 O O772q>>**ggb!e.L.L.LLLLL77B3??++wwsA/N/N/NNNNNNO OrB   c            	      :   d } t          dddd          }t          t          t          t          fD ]e}t          dt          dd          z  dz             dz  }t          t           ||t                               ||t                              sJ f | t          t          |t                              t          |dz
  t                    d|dz
  z  t          |dz
  t                    z  t          z  z
            sJ  | t          t          | t                              t          | dz   t                    d| dz   z  t          | dz   t                    z  t          z  z             sJ  | t          t          |t                              t          |dz
  t                     d|dz
  z  t          |dz
  t                    z  t          z  z             sJ  | t          t          | t                              t          | dz   t                     d| dz   z  t          | dz   t                    z  t          z  z             sJ  | t          t	          |t                              t	          |dz
  t                    d|dz
  z  t	          |dz
  t                    z  t          z  z             sJ  | t          t	          | t                              t	          | dz   t                    d| dz   z  t	          | dz   t                    z  t          z  z
            sJ  | t          t          |t                              t          |dz
  t                     d|dz
  z  t          |dz
  t                    z  t          z  z             sJ  | t          t          | t                              t          | dz   t                     d| dz   z  t          | dz   t                    z  t          z  z             sJ d S )Nc                 .    t          | |          o| |k    S N)r   )eqanss     r@   checkztest_slow_expand.<locals>.check;  s    "c{{(rSy(rB   rE   r   rI   )abdcr   r:   )r<   r   r   r   r   r   r=   r   r2   r5   r   r8   )r   rnr   r   s       r@   test_slow_expandr   9  s2   ) ) ) 
Aa1	%	%	%BWgw7 > >qb!!!A%&&**WWR^^,,ggb!nn======5WR^^,,a##aaja1C1C&CA&EEG G G G G5WbS!__--"q!$$q2#'{7B37A3F3F'Fq'HHJ J J J J 5WR^^,,"q&!$$$q"q&z'"q&!2D2D'DQ'FFH H H H H5WbS!__--2#'1%%%B37GRC!GQ4G4G(G(IIK K K K K 5WR^^,,a##aaja1C1C&CA&EEG G G G G5WbS!__--"q!$$q2#'{7B37A3F3F'Fq'HHJ J J J J 5WR^^,,"q&!$$$q"q&z'"q&!2D2D'DQ'FFH H H H H5WbS!__--2#'1%%%B37GRC!GQ4G4G(G(IIK K K K K K KrB   c                 <    t          t          | |                    S r   )r   r    r6   r5   s     r@   mjnr   Y      r!Qxx   rB   c                 <    t          t          | |                    S r   )r   r"   r   s     r@   mynr   ]  r   rB   c                  >   t          d          } t          dd          dk    sJ t          dd          dk    sJ t          dd          t          j        k    sJ t          | d          t          | dd          k    sJ t          dt                    dk    sJ t          dt                     dk    sJ t          d|           t          |           | z  k    sJ t          d|           t          |           | dz  z  t          |           | z  z
  k    sJ t          d|           d| dz  z  d| z  z
  t          |           z  d| dz  z  t          |           z  z
  k    sJ t          d|           d	| d
z  z  d| dz  z  z
  t          |           z  d| z  d	| dz  z  z
  t          |           z  z   k    sJ t          d
|           d| z  d| dz  z  z   d| dz  z  z
  t          |           z  d| d
z  z  d| dz  z  z   t          |           z  z   k    sJ t          d|           d| dz  z  d| d
z  z  z
  d	| dz  z  z   t          |           z  d| z  d| dz  z  z
  d| dz  z  z   t          |           z  z   k    sJ t          d|           d| z  d| dz  z  z   d| dz  z  z
  d| dz  z  z   t          |           z  d| dz  z  d| d
z  z  z   d| dz  z  z
  t          |           z  z   k    sJ t          t          t          |                     t          t          |           k    sJ t          dd          
                                t          dd          k    sJ t          t          dd          
                    d          gddt          z  z
  g          sJ d S )Nr5   r   rE   rS   Fr   rI   rJ   ra   r[   r]   i   rb   -   ir:   i  i  i(  rh   iu     iei            @      @@333333?gMs?gM?)r   r    r   ComplexInfinityr	   r   r   r   r   r6   evalfr   r   r5   s    r@   test_jnr   a  s   Aa88q====a88q====b!99)))))a88r!Q///////a99>>>>a"::????q!99Aq    q!99Aq!tc!ffQh.....q!991a4!A#s1vv-1a43q660AAAAAAq!99AqD1QT6)3q661QqS2ad7]CFF4JJJJJJq!991s1a4x"QT'13q669	adR1W	c!ff$% % % % %q!99QTC1H,r!Q$w6A>	AAqD3q!t8	#SVV+, , , , ,q!99Aad
*T!Q$Y6QTA3q66I	1tAqDy	 2ad7	*CFF23 3 3 3 3 r!Qxx  Bq!HH,,,, dH##%%D(););;;;;r!X$$R(()}Q./1 1 1 1 1 1 1rB   c                     t          d          } t          d|           t          |            | z  k    sJ t          d|           t          |            | dz  z  t          |           | z  z
  k    sJ t          d|           d| dz  z  d| z  z
  t          |           z  d| dz  z  t          |           z  z    k    sJ t	          t          t          |                     t          t          |           k    sJ t          dd                                          t          dd          k    sJ t          t          dd                              d          gd	d
t          z  z   g          sJ d S )Nr5   r   rE   rI   rJ   r   r   r:   g=;H?gLs?)
r   r   r   r   r   r"   r6   r   r   r   r   s    r@   test_ynr   ~  sd   Aq!99Q	!!!!q!99Q1s1vvax/////q!991QT6AaC<Q/1QT63q66/ABBBBBr!Qxx  Bq!HH,,,, dH##%%D(););;;;;r!X$$R(()]1_,-/ / / / / / /rB   c                      t          d          t          dt                                                    v sJ t          dt                    dt          dz  z  dt          dz  z  z
  k    sJ d S )Nra   rJ   r[   r]   rI   )r   r   r
   atomsrF   rB   r@   test_sympify_ynr     sa    R55C2JJ$$&&&&&&q"::BEAb!eG+++++++rB   ư>c                 d    t          | |          D ]\  }}t          ||z
            |k     s dS dS )NFT)zipabs)r   r   toluvs        r@   r   r     sC    Aq		  1AE

S  55 !4rB   c                  Z   t          t          dd          g d          sJ t          t          dd          g d          sJ t          t          dd          g d          sJ t          t          dd          g d	          sJ t          t          dd          g d
          sJ d S )Nr   r[   )gz !	@gަ?!@g/^|"@gަ?!)@rE   )gP5z5@@g2@g@%@gr!,@rI   )gX32@g@#H0"@g#EdX(@g^z/@rJ   )g:r@gW%}$@g,IEce+@gmr0@)gx] @geqh'@g7N.@g4M2@)r   r!   rF   rB   r@   test_jn_zerosr     s    hq!nnGGGHHHHHhq!nnHHHIIIIIhq!nnHHHIIIIIhq!nnIIIJJJJJhq!nnIIIJJJJJJJrB   c                  &   t          dd          t          d          t          ddd          }}} t          t          fD ]Z} |dd          t          j        u sJ  |d	d          t          j        u sJ  |d
d          t          j        u sJ  |dd          t          j        u sJ  |ddt          z  z   d          t          j        u sJ  |d
t          z   d          t          j        u sJ  |dt          z  d          t          j        u sJ  || d          t          j        k    r || d          t          j        k    sJ  ||d          t          j        k    r ||d          t          j        k    sJ  ||d          t          j        u sJ \t          dd          t          j
        u sJ t          dd          t          j        u sJ t          t          fD ]C} |dt          z   d          t          j        u sJ  |t          d          t          j        u sJ Dt          t          fD ]J} ||t          j                  t          j        u sJ  ||t          j
                  t          j        u sJ Kt          t          fD ]Z} ||t          t          j        z            t          j        u sJ  ||t          t          j
        z            t          j        u sJ [t          t          fD ]} |dt                     |dt                    k    sJ  |d
t                     |dt                    k    sJ  ||  t                     || t                    k    sJ  || t                     ||t                    k    sJ t          t          fD ]} |dt                     |dt                    k    sJ  |d
t                     |dt                     k    sJ  ||  t                    d| z   || t                    z  k    sJ  || t                    d|z   ||t                    z  k    sJ t          t          fD ]A} ||t                     t           |z  t          | z  z   ||t                    z  k    sJ Bt          dt                     t          dt                    k    sJ t          dt                     t          dt                     k    sJ t          dt                     t          dt                    k    sJ t          dt                     t          dt                     k    sJ t          dt          t          z            t          dt                    k    sJ t          dt          t          z            t          t          dt                    z  k    sJ t          dt          t          z            t           t          dt                    z  k    sJ d S )Nr6   Tr   mr7   F)r   zeror   g @gffffff$rE   rJ   rR   r{   r[   rS   rI   )r   r   r   r   OneZeror   r   NaNr   NegativeInfinityr   Infinityr5   )r6   r   r7   r?   s       r@   test_bessel_evalr     s   S$'''fS$UZ6[6[6[!qAw 
! 
!qAww!%qayyAF""""qQxx16!!!!q{{a/////qQqS!}}&&&&qa||q00000qAqzzQU""""qAww!%AAaGGqv$5$5$5$5qAww!%AAaGGqv$5$5$5$5qAww!&     1a==A.....1a==AJ&&&&w    qQ{{a/////qAww!%w 2 2qAJ16))))qA&''1611111w 4 4qAajL!!QV++++qAa(())QV33333w # #qQxx11Q77""""qQxx11Q77""""q!Qxx11Q77""""q!Qxx11Q77"""""w + +qQxx11Q77""""qQxxAAaGG8####q!QxxB711Q77?****q!QxxB711Q77?*****w 3 3qQBxxQB71r7?11Q772222221qb>>WQ]]****1qb>>gamm^++++1qb>>WQ]]****1qb>>gamm^++++1ac??gamm++++1ac??a1o----1ac??qbA.......rB   c                      t           t          t          t          t          t
          t          t          fD ]4}  | dt          j	                   | dt          j	        d          k    sJ 5d S )NrE   Fr   )
r   r   r   r   r   r   r"   r    r   r   r>   s    r@   test_bessel_nanr     s_    w'7BK : :qAE{{aa15599999999: :rB   c                  T	   t          dt                                        t          d          dk    sJ t          dt                                        t          d          dk    sJ t          dt                                        t          t                    dk    sJ t          t	          d          dz  t                                        t          d          dk    sJ t          t	          d          dz  t                                        t          d          dk    sJ t          t	          d          dz  t                                        t          t                    dk    sJ t          t          dt          z                                t          d          dk    sJ t          dt                                        t          d          dk    sJ t          dt                                        t          d          dk    sJ t          dt                                        t          d          dk    sJ t          dt                                        t          d          dk    sJ t          dt                                        t          d          dk    sJ t          dt                                        t          d          dk    sJ t          dt                                        t          d          dk    sJ t          dt          dz  dt          z  z                                 t          d          dk    sJ t          dt                                        t          d          dk    sJ t          dd                              t          d	          dk    sJ t          d
dt          dz  z  dz                                 t          d          dk    sJ t          ddt          z                                t          d          dk    sJ t          d	dt          z  dz                                 t          d          dk    sJ t          dt          dz  dz                                 t          d
          dk    sJ d S )NrI   rE   Tr   FrJ   rv   r[   rb   r]   rh   rt   rz   )r   r8   is_meromorphicr	   r   r   r   r   r   r   r   r   r    r"   rF   rB   r@   test_meromorphicr     s   1a==''1--55551a==''1--55551a==''2..%77771Q4461,,Q22d::::1Q4461,,Q22e;;;;1Q4461,,Q33u<<<<1ac??))!Q//588881a==''1--55551a==''1--55551a==''1--55551a==''1--55551a==''1--55551a==''1--66661a==''1--55551adQqSj!!00A66$>>>>1a==''1--66662q>>((A..$6666q!AqD&1*,,Q22d::::q!A#;;%%a++t3333a1q>>((A..$6666aA**1a00D888888rB   c            
         t          d          } t          dd          }t          dd          }t          dd          }t          d	d
          }t          t          t          t          t
          t          fD ]} || d                                           |t          |           d          k    sJ  || |                                           |t          |           |          k    sJ  || |                                           |t          |           |          k    sJ t          d          }t          t          t          t          fD ]} || dt          z                                              |t          |           dt          z
            k    sJ  || d                                           |t          |           d          k    sJ  || d                                           |t          |           d          k    sJ  || |                                           |t          |           t          |                    k    sJ  || |                                           |t          |           |          k    sJ t           || |                                           |t          |           t          |                              sJ t          | dt          z                                             t          t          |           dt          z
            k    sJ t          | d                                          t          t          |           d          k    sJ t          | d                                          t          t          |           d          k    sJ t          | |                                          t          t          |           |          k    sJ t          | |                                          t          t          |           t          |                    k    sJ t          t          | |                                          t          t          |           t          |                              sJ t          | dt          z                                             t          t          |           dt          z
            k    sJ t          | d                                          t          t          |           d          k    sJ t          | d                                          t          t          |           d          k    sJ t          | |                                          t          t          |           |          k    sJ t          | |                                          t          t          |           t          |                    k    sJ t          t          | |                                          t          t          |           t          |                              sJ d S )Nr6   r5   F)extended_realr8   Tyr   tnegativerS   g      ?)r   rE   r   )r   r   r   r   r   r   r   r   r<   r   r   )r6   r5   r8   r   r   r?   rzs          r@   test_conjugater     sp   sAs%(((As$'''AsT"""AsT"""Aw'7C 9 9qBxx!!##qq1r':':::::qAww  ""aa	!a&8&88888qAww  ""aa	!a&8&888888	CBw1 H HqAE{{$$&&!!IaLL!a%*@*@@@@@qAww  ""aa	!a&8&88888qAww  ""aa	!a&8&88888qAww  ""aa	!ill&C&CCCCCqAww  ""aa	!a&8&88888!!Ar(($$&&)A,,	"(F(FGGGGGG1a!e&&((GIaLL!a%,H,HHHHH1a==""$$	!a(@(@@@@@1a==""$$	!a(@(@@@@@1a==""$$	!a(@(@@@@@1a==""$$	!ill(K(KKKKKgann&&((')A,,	"*N*NOOOOO1a!e&&((GIaLL!a%,H,HHHHH1a==""$$	!a(@(@@@@@1a==""$$	!a(@(@@@@@1a==""$$	!a(@(@@@@@1a==""$$	!ill(K(KKKKKgann&&((')A,,	"*N*NOOOOOOOrB   c                  T   t          t          t                    t                    t          t          t                    k    sJ t	          t          t                    t                    t	          t          t                    k    sJ t          dd          } t          | t          dt          z  t          z            t          z            t          | t                    k    sJ t          | t          t                              t          | t                    k    sJ t	          | t          dt          z  t          z            t          z            t	          | t                    k    sJ t	          | t          t                              t	          | t                    k    sJ d }t          d          }t          |t          dt          z  t          z            t          z            t          dt          z  t          z  |z            t          |t                    z  k    sJ t	          |t          dt          z  t          z            t          z            t          dt          z  t          z  |z            t	          |t                    z  k    sJ  |t           d          sJ  |t           t                    sJ  |t           t                    sJ  |t          d          sJ  |t          t                    sJ  |t          t                    sJ d S )Nr6   Tr   rI   c           	         ddl m}  |dd          } | ||t          t          t          z            z             | ||t          t           t          z            z            z
  }d} | ||z   | |t          z  z              | ||z   | |t          z  z
            z
  }t          |                                |                                z
                                            dk     S )Nr   )uniformrE   rb   gV瞯<g|=)sympy.core.randomr   r   r   r
   r   r6   )r   sr   r   exprepsexpr2s          r@   r   ztest_branching.<locals>.tn$  s    ------GAqMMtAq1R4())DDAi26F6F4F,G,GGQWqb3q5j))DDS1"s1u*,E,EE46688eggii'((**,,u44rB   r   )
r   r   r7   r8   r   r   r   r
   r   r   )r6   r   r   s      r@   test_branchingr     sl   :a==!$$15555:a==!$$15555sD!!!A1i"Q'')**gamm;;;;1jmm$$155551i"Q'')**gamm;;;;1jmm$$155555 5 5 
B2y2a((*++s1R46"9~~gb!nn/LLLLL2y2a((*++s1R46"9~~gb!nn/LLLLL2gq>>2gr??2gq>>2gq>>2gr??2gq>>rB   c            	      b   t          d          } t          dd          }t          dd          }t          t          |                     t          t          |                     k    sJ t          |          j        sJ t          |t          |z  z                                             t          |t          |z  z
            dz  t          |t          |z  z             dz  z   t          t          |t          |z  z
            t          |t          |z  z             z
  z  dz  fk    sJ d S )Nr5   r8   Tr   r   rI   )r   r   r)   r   r   as_real_imag)r5   r8   r   s      r@   test_airy_baser   7  s   sAsAsAVAYY6)A,,#7#77777!99%%%%!AaC%==%%''1qs7OOAq1Q3w 11va!A#gAaC01!3,5 5 5 5 5 5 5rB   c                  j   t          dd          } t          dd          }t          dd          }t          t          |           t                    sJ t          d	          d
t          dd
          z  d
t	          t          dd
                    z  z  k    sJ t          t
                    d	k    sJ t          t
                     d	k    sJ t          t          |           |           t          |           k    sJ t          t          |           | d	d
          d
t          dd          z  t	          t          dd
                    z  dt          z  z  d
t          dd          z  | z  t	          t          dd
                    z  dt          z  z  z
  t          | d
z            z   k    sJ t          |                               t                    d
t          dd
          z   | z  t          dt          dd
          f| d
z  dz            z  d
t	          t          dd
                    z  z  d
t          dd
          z  t          dt          dd
          f| d
z  dz            z  d
t	          t          dd
                    z  z  z   k    sJ t          t          |                               t                    t                    sJ t          |                              t                    t          |           t          t          dd
          d| t          d
d          z  z  d
z            t          t          dd
          d| t          d
d          z  z  d
z            z   z  d
z  k    sJ t          |                               t                    |  t          t          dd
          d| t          d
d          z  z  d
z            z  d
| t          d
d          z  t          dd
          z  z  z  | t          d
d          z  t          dd
          z  t          t          dd
          d| t          d
d          z  z  d
z            z  d
z  z   k    sJ t          |                              t                    t          |          t          t          dd
          d|t          d
d          z  z  d
z            t          t          dd
          d|t          d
d          z  z  d
z            z
  z  d
z  k    sJ t!          t          dd
| dz  z  t          dd
          z  z                      t          d
           d| dz  t          dd
          z  | t          dd
          z  z  z   z  t#          dd
t          dd
          z  z  | t          dd
          z  z            z  dz  d| dz  t          dd
          z  | t          dd
          z  z  z   t          dd
t          dd
          z  z  | t          dd
          z  z            z  dz  z   k    sJ d S )Nr5   Fr   r   Tr   r   r   r   rJ   rE   rI   rb   r]   rF   r[   rt   rS   )r   
isinstancer)   r   r#   r	   r   r+   r(   r
   r'   r   r%   r   r   r   r   r*   r5   r   r   s      r@   test_airyair   D  s   sAsT"""AsT"""AfQii(((((!998Aq>>)1U8Aq>>-B-B+BCCCCC"::????2#;;!q		1Q////&))Q1%%	8Aq>>%A///26HQNN9J19LUS[\]_`SaSaMbMb9bdefhdh9iilmnoqrnrlslssu u u u !99U##	
HQNN	1U2A'8!Q$q&AAA1U8TUWX>>EZEZCZ[	
HQNN	5hq!nn%61Q??	?5RSUVCXCXAX	Y	Z[ [ [ [ fQii''00&99999!99W%%aR'(2q//1qb8Aq>>-A+A!+CDD(1a..!aR(1a..,@*@*BCCD 	EEF	GH H H H !99W%%	
78Aq>>1QA%6#6q#89991a!Q>ORZ[\^_R`R`=`;`a
Xa^^
hq!nn	,WXb!__a8TUWX>>HYFYZ[F[-\-\	\]^	^	_` ` ` ` !99W%%Q"a!Ax1~~,=*=a*?@@!Q1hq!nn+<)<Q)>??@ 	AAB	CD D D D va1a4(1a.. 8899::	a"1x1~~-a!Q.???@!XVWYZ^^J[H[\]_ghikl_m_m\mHmAnAnnopp
q!thq!nn$QA%66
6qHQPQNNAR?RSTV^_`bcVdVdSd?d8e8e	efg	g	hi i i i i irB   c                     t          dd          } t          dd          }t          dd          }t          t          |           t                    sJ t          d	          d
t          dd          z  d
t	          t          dd
                    z  z  k    sJ t          t
                    t
          u sJ t          t
                     d	k    sJ t          t          |           |           t          |           k    sJ t          t          |           | d	d
          d
t          dd
          z  t	          t          dd
                    z  dt          z  z  d
t          dd
          z  | z  t	          t          dd
                    z  dt          z  z  z   t          | d
z            z   k    sJ t          |                               t                    d
t          dd          z  | z  t          dt          dd
          f| d
z  dz            z  t	          t          dd
                    z  d
t          dd          z  t          dt          dd
          f| d
z  dz            z  d
t	          t          dd
                    z  z  z   k    sJ t          t          |                               t                    t                    sJ t          |                              t                    t          |           t          t          dd
          d| t          d
d          z  z  d
z            t          t          dd
          d| t          d
d          z  z  d
z            z   z  d
z  k    sJ t          |                               t                     t          d
          | t!          t          dd
          d| t          d
d          z  z  d
z            z  | t          d
d          z  t          dd
          z  z  | t          d
d          z  t          dd
          z  t!          t          dd
          d| t          d
d          z  z  d
z            z  z   z  d
z  k    sJ t          |                              t                     t          d
          t          |          z  t!          t          dd
          d|t          d
d          z  z  d
z            t!          t          dd
          d|t          d
d          z  z  d
z            z   z  d
z  k    sJ t#          t          dd
| dz  z  t          dd
          z  z                      t          d
          d| dz  t          dd
          z  | t          dd
          z  z  z
  z  t          dd
t          dd
          z  z  | t          dd
          z  z            z  dz  d| dz  t          dd
          z  | t          dd
          z  z  z   t          dd
t          dd
          z  z  | t          dd
          z  z            z  dz  z   k    sJ d S )Nr5   Fr   r   Tr   r   r   r   rJ   rb   r]   rI   rE   rF   r[   rt   rS   )r   r   r*   r   r#   r	   r   r,   r(   r
   r'   r   r%   r   r)   r   r   r   r   s      r@   test_airybir   h  s!   sAsT"""AsT"""AfQii(((((!998Aq>>)1U8Aq>>-B-B+BCCCCC"::2#;;!q		1Q////&))Q1%%	8Aq>>%A///26HQNN9J19LUS[\]_`SaSaMbMb9bdefhdh9iilmnoqrnrlslssu u u u !99U##	8Aq>>!E"x1~~&7Aa@@@xPQST~~AVAVV	8Aq>>%Xa^^$5q!tAv>>>%QRTUBWBW@WX	YZ Z Z Z fQii''00&99999!99W%%aR'(2q//1qb8Aq>>-A+A!+CDD(1a..!aR(1a..,@*@*BCCD 	EEF	GH H H H !99W%%Q78Aq>>1QA->+>q+@AAA1hqRSnnCTW_`acdWeWeBeeXa^^#hq!nn4WXb!__aPQS[\]_`SaSaPaNabcNc5d5dde 	ffg	hi i i i !99W%%QQ"a!Ax1~~4E2Ea2GHH !Q1hq!nn3D1DQ1FGGH 	IIJ	KL L L L va1a4(1a.. 8899::QadXa^^+Ax1~~,===>va8TUWX>>HYFYZ[]efgij]k]kZkFk?l?llmnn	
adXa^^#Ax1~~$55	5va8Aq>>@Q>QRSU]^_abUcUcRc>c7d7ddeff	gh h h h h hrB   c                     t          dd          } t          dd          }t          dd          }t          t          |           t                    sJ t          d	          d
t          dd
          z   d
t	          t          dd
                    z  z  k    sJ t          t
                    d	k    sJ t          t          |           |           | t          |           z  k    sJ t          t          |           | d	d
          d
t          dd
          z   d
t	          t          dd
                    z  z  d
t          dd
          z  | dz  z  dt	          t          dd
                    z  z  z   t          | d
z            z   k    sJ t          |           
                    t                    d
t          dd
          z  | dz  z  t          dt          dd
          f| d
z  dz            z  dt	          t          dd
                    z  z  d
t          dd
          z  t          dt          dd
          f| d
z  dz            z  d
t	          t          dd
                    z  z  z
  k    sJ t          t          |           
                    t                    t                    sJ t          |          
                    t                    t          |           t          t          dd
          d| t          d
d          z  z  d
z            t          t          dd
          d| t          d
d          z  z  d
z            z   z  d
z  k    sJ t          |           
                    t                    | dz  t          t          dd
          d| t          d
d          z  z  d
z            z  d
| t          d
d          z  t          dd
          z  z  z  | t          d
d          z  t          dd
          z  t          t          dd
          d| t          d
d          z  z  d
z            z  d
z  z
  k    sJ t          |          
                    t                    |t          t          dd
          d|t          d
d          z  z  d
z             t          t          dd
          d|t          d
d          z  z  d
z            z   z  d
z  k    sJ t          t          dd
| dz  z  t          dd
          z  z                      t          d
          | t          dd
          z  | dz  t          dd
          z  z  dz
  z  t!          dd
t          dd
          z  z  | t          dd
          z  z            z  dz  | t          dd
          z  | dz  t          dd
          z  z  dz   t          dd
t          dd
          z  z  | t          dd
          z  z            z  dz  z   k    sJ d S )Nr5   Fr   r   Tr   r   r   r   rJ   rI   rE   r]   rF   rb   rt   rS   rR   )r   r   r+   r   r#   r	   r   r)   r(   r'   r   r%   r   r   r   r   r,   r   s      r@   test_airyaiprimer     s   sAsT"""AsT"""Ak!nnk22222q>>a!Q//5!Q3H3H1HIIIIIr??aA""aq		k1111+a..!Q**	
HQNN	AeHQNN3334q(1a..7HA7MqQVW_`acdWeWeQfQfOf7ggjklmoplpjqjqqs s s s q>>!!%((	8Aq>>!Q$uR(1a..):AqDFCCCQuXVWYZ^^G\G\E\]	8Aq>>%Xa^^$5q!tAv>>>%QRTUBWBW@WX	YZ Z Z Z k!nn,,W55{CCCCC!99W%%aR'(2q//1qb8Aq>>-A+A!+CDD(1a..!aR(1a..,@*@*BCCD 	EEF	GH H H H q>>!!'**	1WXa^^Qq(1a..'8%8%:;;;Q8Aq>>@QT\]^`aTbTb?b=bc	
HQNN	Xa^^+GHROOQq(STVW..GXEXYZEZ,[,[[\]]	^_ _ _ _ q>>!!'**	GHROOQq(1a..'8%8%:;;;ghqRSnnVWXY[cdegh[i[iXiVijkVk>l>llmnooq q q q {1a1fx1~~%=#=>>??QHQNN"AqD8Aq>>#99A=>{1QPXYZ\]P^P^M^K^_`bjklnobpbp_pKp?q?qqrss	
HQNN	AqD8Aq>>1	1A	5{1QQRTUEVCVWXZbcdfgZhZhWhCh7i7iijkk	lm m m m m mrB   c                  p   t          dd          } t          dd          }t          dd          }t          t          |           t                    sJ t          d	          d
t          dd          z  t	          t          dd
                    z  k    sJ t          t
                    t
          u sJ t          t
                     d	k    sJ t          t          |           |           | t          |           z  k    sJ t          t          |           | d	d
          d
t          dd          z  t	          t          dd
                    z  d
t          dd          z  | dz  z  dt	          t          dd
                    z  z  z   t          | d
z            z   k    sJ t          |           
                    t                    d
t          dd          z  | dz  z  t          dt          dd
          f| d
z  dz            z  dt	          t          dd
                    z  z  d
t          dd          z  t          dt          dd
          f| d
z  dz            z  t	          t          dd
                    z  z   k    sJ t          t          |           
                    t                    t                    sJ t          |          
                    t                    t          |           t          t          dd
          d| t          d
d          z  z  d
z            t          t          dd
          d| t          d
d          z  z  d
z            z   z  d
z  k    sJ t          |           
                    t                    t          d
          | dz  t          t          dd
          d| t          d
d          z  z  d
z            z  | t          d
d          z  t          dd
          z  z  | t          d
d          z  t          dd
          z  t          t          dd
          d| t          d
d          z  z  d
z            z  z   z  d
z  k    sJ t          |          
                    t                    t          d
          |z  t          t          dd
          d|t          d
d          z  z  d
z            t          t          dd
          d|t          d
d          z  z  d
z            z   z  d
z  k    sJ t!          t          dd
| dz  z  t          dd
          z  z                      t          d
          | t          dd
          z  | dz  t          dd
          z  z  dz
  z  t#          dd
t          dd
          z  z  | t          dd
          z  z            z  dz  | t          dd
          z  | dz  t          dd
          z  z  dz   t          dd
t          dd
          z  z  | t          dd
          z  z            z  dz  z   k    sJ d S )Nr5   Fr   r   Tr   r   r   r   rJ   rE   r]   rb   rI   rF   rt   rS   rR   )r   r   r,   r   r#   r	   r   r*   r(   r'   r   r%   r   r)   r   r   r   r+   r   s      r@   test_airybiprimer     s   sAsT"""AsT"""Ak!nnk22222q>>QA.uXa^^/D/DDDDDDr??b    sq    A""aq		k1111+a..!Q**	8Aq>>%A///!Xa^^2CAqD2H!ERZ[\^_R`R`LaLaJa2bbefghjkgkelelln n n n q>>!!%((	8Aq>>!Q$uR(1a..):AqDFCCCQuXVWYZ^^G\G\E\]	8Aq>>%Xa^^$5q!tAv>>>uXaQR^^?T?TT	UV V V V k!nn,,W55{CCCCC!99W%%aR'(2q//1qb8Aq>>-A+A!+CDD(1a..!aR(1a..,@*@*BCCD 	EEF	GH H H H q>>!!'**QAghq!nna8Aq>>0A.A!.CDDDaRSUVFWZbcdfgZhZhEhhXa^^#hq!nn4WXb!__aPQS[\]_`SaSaPaNabcNc5d5dde 	ffg	hi i i i q>>!!'**Q	78B??Aa!Q.?,?,ABBWXVWYZ^^]^_`bjklnobpbp_p]pqr]rEsEsstuvvx x x x {1a1fx1~~%=#=>>??QHQNN"AqD8Aq>>#99A=>{1QPXYZ\]P^P^M^K^_`bjklnobpbp_pKp?q?qqrss	
HQNN	AqD8Aq>>1	1A	5{1QQRTUEVCVWXZbcdfgZhZhWhCh7i7iijkk	lm m m m m mrB   c                  @   t          d          } t          d          }t          d          }t          ddd          dk    sJ t          | d|          t          | |dz  dz            t          |           z  k    sJ t          ddd          dt	          t          dd                    z  dz  k    sJ t          d|d          d	t	          |dz   dz            z
  k    sJ t          dt          d          d	t	          t          dz   dz            z
  k    sJ t          d	||          t          j        t	          |dz             t          d|dz            z  dz  z   k    sJ t          d||          t          j        t	          |dz             t          d|dz            z  dz  z   t	          |dz             t          d	|dz            z  z   k    sJ t          t          d	|d
          |          |t          d	|d
           t          d|d
          z   z  k    sJ t          t          dd
|          |          |dz   t	          |dz   dz  t          dd          z
            z  t          d	d
|z            z  d
z  k    sJ t          d          }t          dd
d                              t          |          t          |dz  t	          |dz   dz  t          dd          z
            z  t          d	d
|z            z  |dt          f          d
z  k    sJ t          t          ddd
                              t                                        d          gdg          sJ t          d          }t          ddd                              t           |          t	          d          t!          t          dd          |z  t          |d          z  |dt          f          z  k    sJ t          t          d	d
d	                              t                                         d          gdg          sJ t          d	||d                              t                    t          j        t	          |dz             t          d|dz            z  dz  z   k    sJ t          d||d                              t                    t          j        t	          |dz             t          d|dz            z  dz  z   t	          |dz             t          d	|dz            z  z   k    sJ t          d
||                              t                    t          d	|dz            t          d|dz            z   t	          |dz             z  t          j        z   t	          |dz             t          d|dz            z  dz  z   k    sJ t          ddd                              t                    t	          d          t          dd          z  dz  t          dd          t          d
d          z   t          dd          z   t          d	d          z   t	          d          z  z   t          j        z   k    sJ t          | ||                              t                    t          | ||          k    sJ t          dd !          }t          |||                              t                    t          |||          k    sJ d S )"Nr   r   r   r   rI   rb      irE   rJ   rt   r8   r[   r8   rR   r:   gZphL?r7   r   r   r}   )r7   irh   #   gyhH?Fr   rz   ir\   Tr   )r   r-   r$   r#   r   r   r
   r   r   r   r   r   r&   r	   r   r   r   )r   r   r   r8   r7   s        r@   test_marcumqr    s   sAsAsA1aq    1az!QT!V44U1XX=====1ar#hsA&6&6"7"77999991aq31uQw<</////1b!CQqMM 111111aqvQTE

71ad3C3C(CA(EEEEEE1aqvQTE

71ad3C3C(CA(EEQPQTE

SZ[\^_ab^bScScHcccccc1a  !$$GAq!,<,<+<wq!Q?O?O+O(PPPPP1a  !$$Ac1a4%'HQNN2J.K.K(KGTUWXYZWZOO([\](]]]]]sA1a##H#22AqDadU1Wx1~~5666wq!A#FAr
SSTUUV V V Vwq"a  ((2288<<=n     	sA2r2&&sa&00s88C!Q!+GArNN:Q2JGGGH H H Hwq!Q'',,222667n     1aU+++33G<<aQRdUT[\]_`bc_cTdTdIdefIf@fffff1aU+++33G<<aQRdUT[\]_`bc_cTdTdIdefIf@f1u::gaA&&&A' ' ' ' '1a##G,,AqD1A1AGAqRStDTDT1TVY[\^_[_Z_V`V`0`61AJJwq!Q$///112 2 2 2 21a##G,,CB0G0IArNNWQ^^+gann<wq"~~MsSVxxW1XZ[Z`1a a a a a1a##G,,1a0@0@@@@@sD!!!A1a##G,,1a0@0@@@@@@@rB   c                  T   t          d          } t          ddd                              t          |                               t          | dz  t          | dz   dz  t          dd          z
            z  t          dd| z            z  | dt          f          dz            sJ d S )Nr8   rI   rJ   r[   r  rt   rE   )	r   r-   r   r&   dummy_eqr   r   r   r	   r  s    r@   test_issue_26134r    s    sA1a##H#22;;Ac1a4%'HQNN2333GAqsOOCaBZPPQRRT T T T T T TrB   N)r   )p	itertoolsr   sympy.concrete.summationsr   sympy.core.functionr   r   sympy.core.numbersr   r   r	   r
   sympy.core.singletonr   sympy.core.symbolr   r   $sympy.functions.elementary.complexesr   r   &sympy.functions.elementary.exponentialr   r   r   %sympy.functions.elementary.hyperbolicr   r   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr   r   sympy.functions.special.besselr   r   r   r   r   r   r   r   r    r!   r"   'sympy.functions.special.gamma_functionsr#   r$   sympy.functions.special.hyperr%   sympy.integrals.integralsr&   sympy.series.orderr'   sympy.series.seriesr(   r)   r*   r+   r,   r-   r   r.   r<   r/   r   r0   r;   r1   sympy.simplifyr2   sympy.testing.pytestr3   r4   	sympy.abcr5   r6   r7   r8   r=   rA   rL   rP   rU   rW   rY   rx   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  rF   rB   r@   <module>r     s         ) ) ) ) ) ) 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 " " " " " " / / / / / / / / H H H H H H H H H H H H H H H H H H > > > > > > > > 9 9 9 9 9 9 ? ? ? ? ? ? ? ? } } } } } } } } } } } } } } } } } } } } } } } } } } G G G G G G G G / / / / / / . . . . . .             & & & & & &O O O O O O O O O O O O O O0 0 0 0 0 0 0 0 0 0 0 0 & % % % % % - - - - - - - -                        
(**- - -. . .L L LG G G? ? ?E E ES S S&!S !S !SHS S S"S S S2N N N8? 8? 8?vFO FO FOT K K K>! ! !! ! !1 1 1:/ / /, , ,
   K K K4/ 4/ 4/n: : :9 9 90"P "P "PJ  :
5 
5 
5!i !i !iH!h !h !hHm m mD m  m  mF&A &A &ART T T T TrB   