
    oVh                        d dl mZmZmZ d dlmZ d dlmZmZm	Z	m
Z
mZmZmZ d dlmZ d dlmZmZmZ d dlmZmZmZmZ d dlmZmZmZ d dlmZmZ d d	l m!Z! d d
l"m#Z#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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8 d dl9m:Z:m;Z; d dl<m=Z=m>Z> d dl?m@Z@mAZA d dlBmCZC d dlDmEZE d dlFmGZG d dlHmIZI d dl mJZJ d dl&mKZKmLZL d dlMmNZN  ed      \  ZOZPZQ edd      ZR edd      ZS ed      ZTd ZUd ZVd ZWd  ZXd! ZYd" ZZd# Z[d$ Z\d% Z]d& Z^d' Z_d( Z`d) Zad* Zbd+ Zcd;d,Zdd- Zed<d/Zfd0 Zgd1 Zhd2 Zid3 Zjd4 Zkd5 Zld6 Zmd7 Znd8 Zod9 Zpd: Zqy.)=    )diffexpandexpand_func)
EulerGamma)EFloatIRationalnanoopi)S)SymbolsymbolsDummy)	conjugateim
polar_liftre)exp	exp_polarlog)coshsinh)sqrt)cossinsinc)ChiCiE1EiLiShiSierferf2erf2inverfcerfcinverfierfinvexpintfresnelcfresnelsli)gamma
uppergamma)hypermeijerg)Integral	integrate)gruntz)limit)O)	unchanged)ArgumentIndexError)_erfs_eis)raiseszx,y,zwTrealn)integertc                  4   t        t              t        u sJ t        t              dk(  sJ t        t               dk(  sJ t        d      t        j                  u sJ t        t
        t        z        t        t
        z  k(  sJ t        t
         t        z        t         t
        z  k(  sJ t        d      t        d       k(  sJ t        t         t        z        t        t        t        z         k(  sJ t        t         t        z
        t        t        t        z          k(  sJ t        t        t                    t        k(  sJ t        t        t                    dt        z
  k(  sJ t        t        dt                    t        k(  sJ t        t        dt        d            t        k(  sJ t        t        dt        t        dt        t        t                    z
                          t        k(  sJ t        dd	
      } t        |       j                  d	u sJ t        |       j                  d	u sJ t        dd
      } t        |       j                  J t        |       j                  J t        |       j                  J t        |       j                  J t        |       j                   J t        dd	      } t        |       j                  d	u sJ t        dd	      } t        |       j                   d	u sJ t        t
              j                  du sJ t        dd      j                  sJ t        dd      j                  sJ t#        t        t$                    t        t#        t$                    k(  sJ t        t              j'                  t              dt        z  t)        t*              z  k(  sJ t        t        t        z        j'                  t              dt        z  t        z  t)        t*              z  k(  sJ t        t        t        z        t        t              z  j'                  t              t        k(  sJ t        dt        z        j'                  t              t        j,                  k(  sJ t        t$              j/                  d      t)        t$        dz        dt1        t)        t$        dz              z
  z  t$        z  k(  sJ t        t$              j/                  d      t        j,                  t1        t$              z
  k(  sJ t        t$              j/                  d      t
         t3        t
        t$        z        z  k(  sJ t        t$              j/                  d      dt
        z   t5        t$        dt
        z
  z  t)        t*              z        t
        t7        t$        dt
        z
  z  t)        t*              z        z  z
  z  k(  sJ t        t$              j/                  d      dt
        z   t5        t$        dt
        z
  z  t)        t*              z        t
        t7        t$        dt
        z
  z  t)        t*              z        z  z
  z  k(  sJ t        t$              j/                  d      dt$        z  t9        t        j:                  gdt        j:                  z  gt$        dz         z  t)        t*              z  k(  sJ t        t$              j/                  d      t$        t=        t        j:                  gg dgt?        dd      gt$        dz        z  t)        t*              z  k(  sJ t        t$              j/                  d      t)        t$        dz        t$        z  t$        tA        t        j:                  t$        dz        z  t)        t        jB                        z  z
  k(  sJ tE        tG        t              tG        t        dz        z  t        t        dtG        t              z  z         t        t              z
  z  t        t              dt)        t*              z  k(  sJ tE        dt        t$              z
  tG        t$        dz        z  t$        z  t$        t              dt)        t*              z  k(  sJ tE        dt        t              z
  tG        t        dz        z  t)        t*              z  t        z  t        t              dk(  sJ tE        dt        t              z
  tG        t        dz        z  t)        t*              z  t        z  dz
  dz  t        dz  z  t        t              dk(  sJ tE        t        t              t        z  t        d      dt)        t*              z  k(  sJ tE        t        dz  t)        t*              t        t        dz        z  dt        dz  z  z  z
  t        d      t        d      dz  k(  sJ t        t              jI                         t        tK        t              t
        tM        t              z  z
        dz  t        tK        t              t
        tM        t              z  z         dz  z   t
         t        tK        t              t
        tM        t              z  z
         t        tK        t              t
        tM        t              z  z         z   z  dz  fk(  sJ t        t              jI                  d      t        tK        t              t
        tM        t              z  z
        dz  t        tK        t              t
        tM        t              z  z         dz  z   t
         t        tK        t              t
        tM        t              z  z
         t        tK        t              t
        tM        t              z  z         z   z  dz  fk(  sJ t        tN              jI                         t        tN              dfk(  sJ t        tN              jI                  d      t        tN              dfk(  sJ t        t
              jI                         dt
         t        t
              z  fk(  sJ tQ        tR        d        t        t              jU                         t        k(  sJ y )N   r      FevaluatealphaTextended_real)extended_positive)extended_negativer2   r)   r+   r/   r.   r3      r4   r-      deepc                  >    t        t              j                  d      S NrI   )r&   xfdiff     b/home/dcms/DCMS/lib/python3.12/site-packages/sympy/functions/special/tests/test_error_functions.py<lambda>ztest_erf.<locals>.<lambda>j   s    s1v||A r[   )+r&   r   r   r   Zeror	   rX   yr,   r*   r(   r   is_real	is_finiteis_zerois_positiveis_negativer   zas_leading_termr   r   Onerewriter)   r+   r.   r/   r3   Halfr4   r
   r-   Pir8   r   as_real_imagr   r   r?   r>   r;   inverserL   s    r\   test_erfrn      s+	   s8s??r7a<<s8r>>q6QVVqt91r"u:"Qr7s1vgr!t9QqS	!!!rAv;3q1u:+%%%vay>Qwqz?a!e###wq!}"""wq!e,-222wq#ga#fQi.&89:;<AAAG40Eu:%%%u:4'''G51Eu:%%%u:'''u:%%%u:!!)))u:!!)))Gt4Eu:!!T)))Gt4Eu:!!T)))q6>>U"""q5!))))q5!))))SVIaL 1111q6!!!$!DH444qs8##A&!A#a%R.888!HSVO,,Q/1444qs8##A&!%%///q6>>,'41:q4QT
;K7K+LQ+NNNNq6>>&!QUUT!W_444q6>>&!aRQqS	\111q6>>*%!a%(1a!e9T"X;M2N	(1a!e9T"X%
&&3' *( ( ( (q6>>*%!a%(1a!e9T"X;M2N	(1a!e9T"X%
&&3' *( ( ( (q6>>'"ac%1QVV8*q!te*L&LTRTX&UUUUq6>>)$'166(BhrSToEVXY[\X\*](]^bce^f(ffffq6>>(#tAqDz!|aqvvq!t8L6LTRSRVRVZ6W'WWWWQAqD	!3q1SV8|#4s1v#=>2F	$r(
  !c!f*c!Q$i')1b1QtBxZ???!c!f*c!Q$i'R02Ar:a???1s1v:s1a4y(b1!3a7:1a4?BG2MMMQ1a Ad2hJ...R48C1I-1a488!Q?1Q46IIIq6 	RUQr!uW_	a	#bea1go"6q"8	8
c"Q%!BqE'/""SA2a5%99	:1	<	>> > > q6E*	RUQr!uW_	a	#bea1go"6q"8	8
c"Q%!BqE'/""SA2a5%99	:1	<	>> > > q6 SVQK///q6E*s1vqk999q6 Q3q6	N222
67q6>>v%%%r[   c                     t        t              j                  t        dd      dt        z  t        t              z  dt        dz  z  dz  t        t              z  z
  t        dz  dz  t        t              z  z   t        t        dz        z   k(  sJ t        t              j                  t        t              t        t        dz          ddt        dz  z  z  ddt        dz  z  z  z
  dt        z  z   t        t        dz  t        t        f      z   z  t        t              z  dz   k(  sJ t        t        dz        j                  t        t        d	
      ddt        dz  z  z  t        dz  z   t        t        dz  t        t        f      z   t        t        dz         z  t        t              z  dz  dz   k(  sJ t        t        t                    j                  t        t        d
      t        dt        z        dt        z  t        d      dz  z  dz  z
  ddt        z  t        d      dz  z  z  dz  z   t        t        dz  t        t        f      z   t        t               z  t        t              z  dz  dz   k(  sJ y )Nr      rI   rQ         rF      rB   rG   rS   rH   i)	r&   rX   seriesr   r   r9   r   r   r   rZ   r[   r\   test_erf_seriesrx   o   s1   q6==Aq!QqSb\	!Q$qb&qDF48O&,./1g&6 6 6 6 q6==B	adUQ!Q$Z!Qq!tV*,qs2Qq2wB5HHI$r(RUVVW W Wq!t9ArQ'	Qq!tVq2w	1r7QG!4	4c1a4%j@bI"LqPQ Q QtAw<q"*tAaCyAaC1Q46?1;L/L
QqSAaDFO
A
0 !!b'Ar7 30458!W/==A"X/FFH/IKL/M M M Mr[   c                  N    t        t        t        d            dz
        dk  sJ y )N       @g$?:0yE>)absr&   r   rZ   r[   r\   test_erf_evalfr}   {   s"    E#J+-/$666r[   c                  b   t        t              j                  t              dt        t        j
                        z  dt        z  t        t              z  z   k(  sJ t        dt        z        j                  t              t        t        t              z  t        dz  dt        t              z  z  z
  dt        dz  z  dt        t              z  z  z   t        t        dz        z   k(  sJ t        t        t              j                  d      j                  t              j                  d	            t        t              j                  t              k(  sJ t        t              j                  d	      t        t               dz   t        t        dz        z  k(  sJ t        t        d
        y )NrH   rI   rF   rQ   rq   rr   rS   	tractableintractablec                  >    t        t              j                  d      S rW   )r<   re   rY   rZ   r[   r\   r]   ztest__erfs.<locals>.<lambda>   s    uQx~~a'8 r[   )r<   re   r   r   r   rj   rw   r   r9   r   r&   rh   r   r>   r;   rZ   r[   r\   
test__erfsr      s5   8==r$qtt*}qs58|;;;;1:Q	$r(
QT1T"X:&&1a448)<<qAwFG G G #a&..-2215==mLMq6;;q>  8M*Aw{C1I.EEEE
89r[   c                  F   t        t              t        u sJ t        t              t        j                  u sJ t        t               dk(  sJ t        d      dk(  sJ t        t
        t        z        t         t
        z  k(  sJ t        t
         t        z        t        t
        z  k(  sJ t        t               t        d      t        t              z
  k(  sJ t        t        t                    t        k(  sJ t        dd      } t        |       j                  du sJ t        dd      } t        |       j                  J t        t
              j                  du sJ t        dd      j                  sJ t        dd      j                  du sJ t        t        t                    dt        z
  k(  sJ t        t        t                    t        t        t                    k(  sJ t        t              j                  t              t        j                  u sJ t        dt        z        j                  t              t        j                  k(  sJ t        t              j!                  d	      dt#        t              z
  k(  sJ t        t              j!                  d
      dt
        t%        t
        t        z        z  z   k(  sJ t        t              j!                  d      ddt
        z   t'        t        dt
        z
  z  t)        t*              z        t
        t-        t        dt
        z
  z  t)        t*              z        z  z
  z  z
  k(  sJ t        t              j!                  d      ddt
        z   t'        t        dt
        z
  z  t)        t*              z        t
        t-        t        dt
        z
  z  t)        t*              z        z  z
  z  z
  k(  sJ t        t              j!                  d      ddt        z  t/        t        j0                  gdt        j0                  z  gt        dz         z  t)        t*              z  z
  k(  sJ t        t              j!                  d      dt        t3        t        j0                  gg dgt5        dd      gt        dz        z  t)        t*              z  z
  k(  sJ t        t              j!                  d      dt)        t        dz        dt        t)        t        dz              z
  z  t        z  z
  k(  sJ t        t              j!                  d      t        j                  t)        t        dz        t        z  z
  t        t7        t        j0                  t        dz        z  t)        t        j8                        z  z   k(  sJ t        t              j!                  d      t;        t              t=        t        dz         z  k(  sJ t?        t#        t              t        t              z         t        j                  u sJ t        t              jA                         t        tC        t              t
        tE        t              z  z
        dz  t        tC        t              t
        tE        t              z  z         dz  z   t
         t        tC        t              t
        tE        t              z  z
         t        tC        t              t
        tE        t              z  z         z   z  dz  fk(  sJ t        t              jA                  d      t        tC        t              t
        tE        t              z  z
        dz  t        tC        t              t
        tE        t              z  z         dz  z   t
         t        tC        t              t
        tE        t              z  z
         t        tC        t              t
        tE        t              z  z         z   z  dz  fk(  sJ t        tF              jA                         t        tF              dfk(  sJ t        tF              jA                  d      t        tF              dfk(  sJ tI        tJ        d        t        t              jM                         t        k(  sJ y )NrI   r   rF   rL   TrM   FrJ   r&   r+   r/   r.   r3   rQ   r4   rG   r2   r-   r   rT   c                  >    t        t              j                  d      S rW   )r)   rX   rY   rZ   r[   r\   r]   ztest_erfc.<locals>.<lambda>       tAw}}Q'7 r[   )'r)   r   r   r   r^   r	   rX   r*   r   r`   rb   r,   r   re   rf   rg   rh   r&   r+   r.   r   r   r/   r3   ri   r4   r
   r-   rj   r<   r   r   rk   r   r   r?   r>   r;   rl   rm   s    r\   	test_erfcr      sR   98qvv9>>7a<<":"Q2;"Q$8qtd1g~%%%
q   G40E;$&&&G51E;&&&7??e###E"****E"**e333q	?a!e###T!Wil!33337""1%...!9$$Q'1661117??5!QQZ///7??6"a!D1I+o5557??:&!q1ux1q5	$r(@R7S	(1a!e9T"X%
&&8' /( +( ( ( (7??:&!q1ux1q5	$r(@R7S	(1a!e9T"X%
&&8' /( +( ( ( (7??7#q1Q3uaffX!&&zAqD5/Q+QRVWYRZ+Z'ZZZZ7??9%QwxaS8TVXY?J[]^`a]a/b-bcghjck-k)kkkk7??<(AQT
AT!Q$Z@P<P0QRS0S,SSSS7??8$QT
1(<qPQSTPTAU?UVZ[\[_[_V`?`(````7??;'58CAJ+>>>>s1vQ'(AEE1117!	bea1go	q	 41"Q%#8#:	:
d2a51RU7?##d2a51RU7?&;;	<Q	>	@@ @ @ 7U+	bea1go	q	 41"Q%#8#:	:
d2a51RU7?##d2a51RU7?&;;	<Q	>	@@ @ @ 7!d1gq\1117U+Q|;;;
787??'''r[   c                  T   t        t              j                  t        dd      ddt        z  t        t              z  z
  dt        dz  z  dz  t        t              z  z   t        dz  dz  t        t              z  z
  t        t        dz        z   k(  sJ t        t              j                  t        t              ddt        dz  z  z  ddt        dz  z  z  z
  dt        z  z   t        t        dz  t        t        f      z   t        t        dz         z  t        t              z  k(  sJ y )	Nr   rp   rF   rI   rQ   rq   rr   rs   )r)   rX   rw   r   r   r9   r   r   rZ   r[   r\   test_erfc_seriesr      s    7>>!Q"a!A#d2h,&6	!Q$qb'qDF48O',./1g'6 6 6 6 7>>!R !Q$Z!Qq!tV*$qs*Qq2wB-@@#q!te*LTRTXUV V Vr[   c                  N    t        t        t        d            dz
        dk  sJ y )Nrz   gʋ(s?r{   )r|   r)   r   rZ   r[   r\   test_erfc_evalfr      s#    U3Z :-/$666r[   c                     t        t              t        u sJ t        t              t        j                  u sJ t        t               t        j
                  u sJ t        d      t        j                  u sJ t        t        t        z        t        k(  sJ t        t         t        z        t         k(  sJ t        t               t        t               k(  sJ t        t        t        t              z        t        t        z  k(  sJ t        t        t        t              z        t        dt        z
  z  k(  sJ t        t        t        dt              z        t        t        z  k(  sJ t        t        t        dt        d      z        t        t        z  k(  sJ t        t              j                  du sJ t        dd      j                  sJ t        dd      j                  sJ t        t        t                    t        t        t                    k(  sJ t        t              j!                  t              dt        z  t#        t$              z  k(  sJ t        t        t&        z        j!                  t&              dt        z  t&        z  t#        t$              z  k(  sJ t        t        t&        z        t        t&              z  j!                  t&              t        k(  sJ t        dt        z        j!                  t              t        dt        z        k(  sJ t        t              j)                  d      t         t+        t        t        z        z  k(  sJ t        t              j)                  d      t        t-        t        t        z        z  t        z
  k(  sJ t        t              j)                  d      dt        z
  t/        t        dt        z   z  t#        t$              z        t        t1        t        dt        z   z  t#        t$              z        z  z
  z  k(  sJ t        t              j)                  d	      dt        z
  t/        t        dt        z   z  t#        t$              z        t        t1        t        dt        z   z  t#        t$              z        z  z
  z  k(  sJ t        t              j)                  d
      dt        z  t3        t        j4                  gdt        j4                  z  gt        dz        z  t#        t$              z  k(  sJ t        t              j)                  d      t        t7        t        j4                  gg dgt9        dd      gt        dz         z  t#        t$              z  k(  sJ t        t              j)                  d      t#        t        dz         t        z  t;        t        j4                  t        dz         t#        t        j<                        z  t        j>                  z
  z  k(  sJ t        t              j)                  d      t#        t        dz         t        z  t        tA        t        j4                  t        dz         z  t#        t        j<                        z  z
  k(  sJ t        t              j)                  d      t         tC        t        t        z         tE        t        dz        z  dz   z  k(  sJ tG        t        t        t        z              t        t+        t              z  k(  sJ t        t              jI                         t        tK        t              t        tM        t              z  z
        dz  t        tK        t              t        tM        t              z  z         dz  z   t         t        tK        t              t        tM        t              z  z
         t        tK        t              t        tM        t              z  z         z   z  dz  fk(  sJ t        t              jI                  d      t        tK        t              t        tM        t              z  z
        dz  t        tK        t              t        tM        t              z  z         dz  z   t         t        tK        t              t        tM        t              z  z
         t        tK        t              t        tM        t              z  z         z   z  dz  fk(  sJ t        tN              jI                         t        tN              dfk(  sJ t        tN              jI                  d      t        tN              dfk(  sJ tQ        tR        d        y )Nr   rF   FrJ   rI   r&   r)   r/   r.   r3   rQ   r4   rG   r2   r-   r   rT   c                  >    t        t              j                  d      S rW   )r+   rX   rY   rZ   r[   r\   r]   ztest_erfi.<locals>.<lambda>  r   r[   )*r+   r   r   r   InfinityNegativeInfinityr^   r	   rX   r,   r*   r(   r`   rb   r   re   rf   r   r   r_   rh   r&   r)   r.   r/   r3   ri   r4   r
   r2   rj   rg   r-   r<   r   r   rk   r   r   r?   r>   r;   rZ   r[   r\   	test_erfir      s   98qzz!!!9*****7aff":??2;1"8Qx&)!###'!*AE***'!Q- AaC''''!Q//0AaC7777??e###E"****E"****T!Wil!33337""1%1T"X555!9$$Q'1Q3q5b>9991Id1g..q1Q666!9$$Q'4!94447??5!aRAaC[0007??6"aQqS	kAo5557??:&1q58Aq1uId2h<N3O	(1a!e9T"X%
&&4' +( ( ( (7??:&1q58Aq1uId2h<N3O	(1a!e9T"X%
&&4' +( ( ( (7??7#qs5!&&AaffH:q!t+L'LTRTX'UUUU7??9%7AFF8R!xPRTUFWZ[]^Z^Y^+_)_`deg`h)hhhh7??<(T1a4%[]Jqvv	
A=ADDz=EE=" .# $ $ $7??8$adUA&!Q$:O8OPTUVUYUYPZ8Z(ZZZZ7??;'A2ac
{3q!t9/Dq/H+IIIItAaCy!Qs1vX---7!	bea1go	q	 41"Q%#8#:	:
d2a51RU7?##d2a51RU7?&;;	<Q	>	@@ @ @ 7U+	bea1go	q	 41"Q%#8#:	:
d2a51RU7?##d2a51RU7?&;;	<Q	>	@@ @ @ 7!d1gq\1117U+Q|;;;
78r[   c                  Z   t        t              j                  t        dd      dt        z  t        t              z  dt        dz  z  dz  t        t              z  z   t        dz  dz  t        t              z  z   t        t        dz        z   k(  sJ t        t              j                  t        t              ddt        dz  z  z  ddt        dz  z  z  z   dt        z  z   t        t        dz  t        t        f      z   t        t        dz        z  t        t              z  t        z
  k(  sJ y )	Nr   rp   rI   rQ   rq   rr   rF   rs   )	r+   rX   rw   r   r   r9   r   r   r	   rZ   r[   r\   test_erfi_seriesr     s    7>>!Q"ac$r(l	!Q$qb'qDF48O',./1g'6 6 6 6 7>>!R 	
AadFa1a4j	 1Q3	&1r7QG)<	<c!Q$iGRPSTTU U Ur[   c                  N    t        t        t        d            dz
        dk  sJ y )Nrz   gM䖐2@vIh%<=)r|   r+   r   rZ   r[   r\   test_erfi_evalfr     s$    U3Z #335===r[   c                     t        dd      t        j                  u sJ t        t        t              t        j                  u sJ t        t        d      t        u sJ t        t
         t              t        t              dz   k(  sJ t        t
        t              t        t              dz
  k(  sJ t        t        t
              dt        t              z
  k(  sJ t        t        t
               dt        t              z
  k(  sJ t        t        t        t        t                    t        k(  sJ t        t         t               t        t        t               k(  sJ t        t         t              t        t              t        t              z   k(  sJ t        t        t               t        t               t        t              z
  k(  sJ t        t        t              j                  d      t        t              j                  t              t        t              j                  t              z
  k(  sJ t        t        t              j                  d      t        t              j                  t              t        t              j                  t              z
  k(  sJ t        t        t              j                  d      t        t              j                  t              t        t              j                  t              z
  k(  sJ t        t        t              j                  d      t        t              j                  t              t        t              j                  t              z
  k(  sJ t        t        t              j                  d      t        t              j                  t              t        t              j                  t              z
  k(  sJ t        t        t              j                  d	      t        t              j                  t              t        t              j                  t              z
  k(  sJ t        t         d      j"                  d
u sJ t        ddd
      j"                  sJ t        ddd
      j$                  sJ t        t        t        d
      j$                  sJ t        t        t              j$                  J t'        t        t              t        t        t              z         t        t              k(  sJ t)        t        t        t                    t        t)        t              t)        t                    k(  sJ t        t        t              j                  d      t        t              t        t              z
  k(  sJ t        t        t              j                  d      t+        t              t+        t              z
  k(  sJ t        t        t              j                  d      t         t-        t         t        z        t-        t         t        z        z
  z  k(  sJ t        t        t              j/                  t              t        t        t              j1                  d      k(  sJ t        t        t              j/                  t              t        t        t              j1                  d      k(  sJ t        t        t              j/                  t              dt3        t        dz         z  t5        t6              z  k(  sJ t        t        t              j/                  t              dt3        t        dz         z  t5        t6              z  k(  sJ t9        t:        d        t        t        t              j<                  J t?        dd      \  } }t        | |      j<                  du sJ y )Nr   rF   rG   r/   r.   r3   r4   r2   r-   FrJ   r&   r)   r+   rI   rH   c                  H    t        t        t              j                  d      S NrQ   )r'   rX   r_   rY   rZ   r[   r\   r]   ztest_erf2.<locals>.<lambda><  s    tAqz'7'7': r[   zxr yrTrM   ) r'   r   r^   rX   r   r   r_   r&   r(   rh   r/   r.   r3   r4   r2   r-   r	   r`   rb   r   r   r)   r+   r   rY   r   r   r   r>   r;   is_extended_realr   )xryrs     r\   	test_erf2r     s    1:1:Q<3a=SVaZ'''a=SVaZ'''!R=QQZ'''!RC=BQK'''71a=!Q&&&QB<D1I:%%%Q<3q6CF?***QB<CF7SV++++1:j)SV^^H-Ec!fnnU]F^-^^^^1:j)SV^^H-Ec!fnnU]F^-^^^^1:g&#a&..*?Au@U*UUUU1:i(CFNN7,CCFNNSZD[,[[[[1:l+s1v~~j/ICPQFNN[eLf/ffff1:h'3q6>>&+A#a&..QWBX+XXXX1:&&&1u%----1u%----1u%----1:%%%s1vQ
*+s1v555T!QZ D1y|$DDDD1:e$Q#a&8881:f%a47)::::1:f%D1IQqS	,A)BBBB1:??1a!1!1!!44441:??1a!1!1!!44441:??1CAJtBx!77771:??131u:d2h!6666
:;1:&&...WD1FBB<((D000r[   c                     t        d      t        j                  u sJ t        d      t        j                  u sJ t        t              t        j
                  u sJ t        d      t        j                  u sJ t        t        t                    t        k(  sJ t        t        t                     t         k(  sJ t        t              j                         t        t              t        t        t              dz        z  dz  k(  sJ t        t        d        t        t               j#                  d      t%        dt         z
        k(  sJ t        t               j'                         t        k(  sJ y )Nr   rF   rG   rI   c                  >    t        t              j                  d      S rW   )r,   rX   rY   rZ   r[   r\   r]   ztest_erfinv.<locals>.<lambda>M  s    vayq'9 r[   r*   )r,   r   r^   r   r   NaNr   r&   r?   rX   r   r   r   r   r>   r;   re   rh   r*   rl   rZ   r[   r\   test_erfinvr   C  s   !9!9

"""#;!%%":+++++#a&>Q#qb'?qb   !9>>tBxF1IqL(99!;;;;
9:!9Y'71Q3<777!9#%%%r[   c                  N    t        t        t        d            dz
        dk  sJ y )Ng?gP	r7,?r   )r|   r,   r   rZ   r[   r\   test_erfinv_evalfr   S  s$    uSz"%6685@@@r[   c                     t        d      t        j                  u sJ t        d      t        j                  u sJ t        dd      j                  du sJ t        dd      j                  du sJ t        t
              t        j                  u sJ t        t              j                         t        t               t        t        t              dz        z  dz  k(  sJ t        t        d        t        t              j                  d      t!        dt        z
        k(  sJ t        t              j#                         t$        k(  sJ y )	NrF   r   FrJ   TrI   c                  >    t        t              j                  d      S rW   )r*   rX   rY   rZ   r[   r\   r]   ztest_erfcinv.<locals>.<lambda>_  s    wqz'7'7': r[   r,   )r*   r   r^   r   is_infiniter   r   rX   r   r   r   r   r>   r;   re   rh   r,   rl   r)   rZ   r[   r\   test_erfcinvr   W  s    1:1:###1u%11T9991u%11T9993<155   1:??b	#gaj!m*< <Q >>>>
:;1:h'6!A#;6661:4'''r[   c                     t        dd      t        j                  u sJ t        dd      t        j                  u sJ t        dd      t        j                  u sJ t        dt
              t        t
              k(  sJ t        t        t
              t        t
               k(  sJ t        t        d      t        k(  sJ t        t        t              t        t              k(  sJ t        t        d      t        u sJ t        dt              t        u sJ t        t        t
              j                  t              t        t        dz   t        t        t
              dz  z         k(  sJ t        t        t
              j                  t
              t        t              t        t        t        t
              dz        z  dz  k(  sJ t        t         d        y )Nr   rF   rI   c                  H    t        t        t              j                  d      S r   )r(   rX   r_   rY   rZ   r[   r\   r]   ztest_erf2inv.<locals>.<lambda>r  s    wq!}':':1'= r[   )r(   r   r^   r   rg   r_   r,   r   r*   rX   r   r   r   r   r   r>   r;   rZ   r[   r\   test_erf2invr   e  sS   1a=AFF"""1a=AJJ&&&1a=AEE!!!1a=F1I%%%2q>WaR[(((1a=A1b>VAY&&&3?c!!!1c?c!!!1a=a CA1q0@(@$AAAA1a=a DHSA1A-B$B1$DDDD
=>r[   c                     ddl m}m} i }| j                  D ]  }||k7  s	 |       ||<    ||k(  xr*  || j	                  |      |j	                  |      ||      S )Nr   )verify_numericallyrandom_complex_number)d)sympy.core.randomr   r   free_symbolssubs)	expr1expr2expr3rX   r   r   r   r   as	            r\   mytnr   y  sk    KD .6+-DG. E> I0D1A/4zz$/?aI Ir[   c                     ddl m}m} i }| j                  D ]  }||k7  s	 |       ||<    | j	                  |      |k(  xr  || j                  |      |      S )Nr   )test_derivative_numericallyr   )r   r   r   r   r   r   )r   r   rX   r   r   r   r   s          r\   mytdr     s`    D .6+-DG. ::a=E!V&A%**TBRTU&VVr[   Nc                 x    ddl m}  fd} |dd      } ||t        t        t        z        z         ||t        t         t        z        z        z
  }d} || |t        z  z          || |t        z  z
        z
  }t        |j                         |j                         z
        j                         dk  S )Nr   uniformc                 *     |       S  |       S NrZ   )rX   funcss    r\   fnztn_branch.<locals>.fn  s    97NAqzr[   rF   rq   V瞯<绽|=)r   r   r   r	   r   r|   rB   )r   r   r   r   cexprepsr   s   ``      r\   	tn_branchr     s    ) 	1Aa	!B$ 2a	1"R%(8&8#99D
CrCEzNRSU
^+Etvvx%'')#$&&(500r[   c                  X   t        d      t        j                  u sJ t        t              t        j                  u sJ t        t               t        j
                  u sJ t        t               sJ t        t        t              t        t              t        z  t              sJ t        t        t              t        t              j                  t              t        dt        t        d      z         t        t        z  z
  t              sJ t        t        t              t        t              j                  t               t!        dt        t        d      z         t        t        z  z
  t              sJ t        t              j                  t               j                  t               t        t              k(  sJ t        t        t#        dt        z  t        z        z        t        t              dt        z  t        z  z   k(  sJ t        t        t#        dt        z  t        z        z        t        t              dt        z  t        z  z
  k(  sJ t        t        t              t        t              j                  t$              t'        t              t%        t              z   t              sJ t        t        t        t        t              z        t        t        t        t              z        j                  t(              t+        t              t        t)        t              z  z   t        t        z  dz  z   t              sJ t        t-        t                    j                  t.              t/        t              k(  sJ t        dt-        t              z        j                  t.              t/        t        dz        k(  sJ t1        t        t        t        t               z         t        t               z  t        z  t        t              dk(  sJ t        t              j3                  t              t4        t-        t              z   t        z   t        dz  dz  z   t        dz  dz  z   t        dz  d	z  z   t        d
z  dz  z   t7        t        dz        z   k(  sJ t        t              j3                  t        dd      t        d      t8        t        dz
  z  z   t7        t        dz
  dz  t        df      z   k(  sJ t        t              j3                  t        t              dt        d
z  z  dt        dz  z  z   dt        dz  z  z   dt        dz  z  z   dt        z  z   dz   t7        t        dz  t        t        f      z   t        t              z  t        z  k(  sJ t        t              j3                  t        t               dt        d
z  z  dt        dz  z  z   dt        dz  z  z   dt        dz  z  z   dt        z  z   dz   t7        t        dz  t        t         f      z   t        t              z  t        z  k(  sJ t        t               j3                  t        t              dt        d
z  z  dt        dz  z  z   dt        dz  z  z
  dt        dz  z  z   dt        z  z
  dz   t7        t        dz  t        t        f      z   t        t               z  t        z   k(  sJ t;        t        t=        d            j?                  d            dk(  sJ tA        tB        d        y )Nr   rG   rF   rI   rH   rr   rQ      `   rq   X  rS   x      rs   i
   ru   z-0.6760647401c                  >    t        t              j                  d      S rW   )r"   rX   rY   rZ   r[   r\   r]   ztest_ei.<locals>.<lambda>      r!u{{1~ r[   )"r"   r   r   r   r   r^   r   r   rX   r   r   rh   r2   r   r	   r   r-   r   r$   r   r%   r    r   r0   r7   rw   r   r9   r   strr   evalfr>   r;   rZ   r[   r\   test_eir     sO   a5A&&&&&b6QZZrc7affR==1s1vax###1r!u}}Z0AqB/001R47< < <1r!u}}V,1Z^+,,qt3Q8 8 8a5== ((,1555a	!A#b&!!"beac"fn444a	"Q$r'""#r!uqs2v~5551r!u}}S)3q6CF?A>>>1Z]?#R*Q-%8%@%@%D1"Q%!B$q&(!- - - c!f:b!RU***aAh<#r!Q$x///"QsA2wY-QB')1b1Q666a5<<?j3q61A51Q>	1RQ$r'qDH%'(Aw/ / / /a5<<1a BqEAq1uI$51q51*q!f8M$MMMMa5<<2	QTBq!tG	a1f	$qAv	-!	3a	7!AGaW:M	MsSTvUVWWX X Xa5<<B3	QTBq!tG	a1f	$qAv	-!	3a	7!AGa"X:N	NPSTUPVVWXXY Y Yqb6==B19r!Q$w1a4'!AqD&01Q36:Qq2wB=PPRUWXVXRY
YZ[
[\] ] ] r#a&z"%&/999
56r[   c                     t        t        t        t              t        t        t              j	                  t
              t        t        dz
  z  t        dt        z
  t              z  t              sJ t        t        t        t              t        t        dz
  z   t        g ddgdddt        z
  gg t              z  t              sJ t        t        t        t              t        t        dz
  t               t              sJ t        t        dt              t        dt              j	                  t              t        t        t        d      z         t        t        z  z   t              sJ t        dt              t        t               t        z  dt        t               z  t        dz  z  z   dt        t               z  t        dz  z  z   d	t        t               z  t        dz  z  z   d	t        t               z  t        d
z  z  z   k(  sJ t        t        dd      t              t        t               t        z  dt        t               z  dt        dz  z  z  z   dt        t              z  t        t        t                    z  dt        t!        d      z  z  z  z   k(  sJ t#        t        d      sJ t#        t        d      sJ t#        t        d      sJ t#        t        d      sJ t#        t        t              sJ t        t        t        t%        dt        z  t        z        z        t        t        dz
  z  t        dt        z  t        z  t        z        dz
  z  t'        t         dz         z  t        t        t              z   k(  sJ t        t        t        t%        dt        z  t        z        z        t        t        dz
  z  t        dt        z  t        z  t        z        dz
  z  t'        t         dz         z  t        t        t              z   k(  sJ t        dt        t%        dt        z  t        z        z        dt        z  t        z  t        z  t        dt              z   k(  sJ t        dt        t%        dt        z  t        z        z        dt        z  t        z  t        z  t        dt              z   k(  sJ t        dt              j	                  t              j	                  t              t        dt              k(  sJ t        t        t              j	                  t              t        t        t              k(  sJ t        t        t              j	                  t(              t        t        t              k(  sJ t        t+        t              t+        t              j	                  t,              t-        t              t/        t              z
  t              sJ t        t+        t        t              t        z        t+        t        t              t        z        j	                  t0              t)        t               t        t1        t              z  z   t        t        z  dz  z
  t              sJ t        t        dt              t        dt              j	                  t              j	                  t              t         t+        t              z  t        t               z   t              sJ t        t        dt              t        dt              j	                  t              j	                  t              t        dz  t+        t              z  dz  dt        z
  t        t               z  dz  z   t              sJ t        t        dd      t2              j5                  t2              ddt2        z  z   t2        dz  dz  z
  t2        dz  dz  z   t2        dz  dz  z
  t2        d
z  dz  z   dt        t              z  t        t2              z  z
  t7        t2        dz        z   k(  sJ t+        t2              j9                  t2              t:         t=        t2              z
  t2        z   t2        dz  dz  z
  t2        dz  dz  z   t2        dz  dz  z
  t2        d
z  dz  z   t7        t2        dz        z   k(  sJ t        dt2              j9                  t2              t        dd      t2        dz  z
  t2        dz  dz  z   t2        dz  t=        t2              dz  t        dd      z
  t:        dz  z   t        t        z  dz  z
  z  z   t2        dz  d	z  z
  t2        d
z  dz  z   t7        t2        dz        z   k(  sJ t        t>        t              j9                  t        t@        d      t>        t>        dz   z  t        dz  z  t>        t        z  z
  dz   t7        t        dz  t        t@        f      z   t        t               z  t        z  k(  sJ t        t2        t              j9                  t2        dd      t        t               t        z  t2        t        ddt              z  t        z  z
  t7        t2        dz        z   k(  sJ tC        tD        d        tG        dd      } t        |       j	                  t0              t-        |       t/        |       z   t        t        z  z
  k(  sJ y ) NrF   r   rG   rR   rr   rI      rQ   r   rq   rv   z5/2g333333?rH      T   i  rS   r   r   r      $      ru   )rZ   rF   rF   ))r   r   rF   rZ   c                  H    t        t        t              j                  d      S r   )r-   rX   r_   rY   rZ   r[   r\   r]   ztest_expint.<locals>.<lambda>  s    va|'9'9!'< r[   negTnegative)$r   r-   rX   r_   rh   r2   r   r4   r"   r   r	   r   r   r
   r   r)   r   r   r   r1   r    r!   r$   r   r%   re   nseriesr9   rw   r   r   rB   r   r>   r;   r   )r   s    r\   test_expintr     sb   q!fQl22:>AE
:a!eQ//4 4 4q!q1q5zk'"q!fq!QUmR"KKQP P Pq!va!eQ//333q!fQl2226Ajn$%%",a1 1 1 "a=CGAI#qb'	!Q$6CGAqDH
S!W*QT/sA2wJq!tO, , , ,(2q/1%QB	Ac1"gIqAv&&48DaM)A1Q%[=)QQR R R VQVQVQVS!!!VR   !Qy1R(()	AE
C!BqMA%&uaR!V}4va|CD D D!QyAb))*	AE
C1R	NQ&'qb1f5q!DE E E!Qy1R(()QqSVAXq!-DDDD!QyAb))*bd2gai&A,.FFFF!Q<#++F3va|CCC!Q<#va|333!Q<#va|3331r!u}}S)3q6CF?A>>>:a=?#R
1a%8%@%@%DA2a5 1R46)1. . . q!fQl2226>>vF2a53r7"A' ' 'q!fQl2226>>vF1RU
1AsA2wq00!5 5 5 (1a.!$,,Q/	AaC!Q$q&1a47"QT"W,q!tCx7	$r(
47	q!tW	%% % % a5<<?zkCF2Q6	1QAba47#%&T#X.01!Q$8 8 8 8 !Q<q!Xa^ac%9AqDF%B	1c!fQh"b))JqL81R46AB&CEFT"W&M	1S&QT7&    !Q<q"*	
AE1a4!A#		!Aa"g2w$7	7aR@BC C C !Q<q!Q'3r719q"11:6 866788 ,8:;AqD',B B B B
<=

&Cc7??2#c(SX"5""<<<<r[   c                  .   t        t              j                  t              t        t               dt        z  z   k(  sJ t        dt        z        j                  t              t        t        dz  z   dt        dz  z  z   dt        dz  z  z   dt        dz  z  z   t	        t        dz        z   k(  sJ t        t              j                  d      t        t              t        t              z  k(  sJ t        t              j                  d      t        t        t        t                    z  k(  sJ t        t              j                  d	      t        t               t        t              z  k(  sJ t        t        t              j                  d      j                  t              j                  d	            t        t              j                  t              k(  sJ t        t        t              j                  d      j                  t              j                  d	            t        t              j                  t              k(  sJ t        t              j                  t        d
      t        t        t              z   t        t        t               t        z
  dz   z  z   t        dz  t        t              dz  t        dd      z
  t        dz  z   z  z   t	        t        dz  t        t              z        z   k(  sJ t        t        d        y )NrF   rI   rQ   rS   rr   r   rq   r   r   ru   c                  >    t        t              j                  d      S rW   )r=   re   rY   rZ   r[   r\   r]   ztest__eis.<locals>.<lambda>  r   r[   )r=   re   r   rw   r9   r"   rh   r   r0   r   r   r   r
   r>   r;   rZ   r[   r\   	test__eisr     sC   7<<?tAwh1n,,,!9A	AqD1QT6AadF"R1W,qAw67 7 7 a5==%QQ777a5==%4A<7777??=)S!WRU]:::"Q%--,11!4<<]KLa5::a=   "Q%--,11!4<<]KLa5::a=   7>>!q>!Z#a&%81s1vg?? < &Q$Aq8Aq> 9JqL HI&J
AqDQK.&    78r[   c                 >     fd} |t        t        t        z  dz        t        d      xrq  |t        t         t        z  dz        t         d      xrH  |t        t        t        z        dt              xr$  |t        t         t        z        dt               S )Nc                     ddl m}  |dd      } | t        z        j                  t        |      j	                         } ||z  |dz  z         j	                         }t        ||z
        j	                         dk  S )Nr   r   rF   rq   r   r   )r   r   rX   r   rB   r|   )arge1e2r   vv1v2r   s          r\   testztn_arg.<locals>.test  sm    -AqM#a%[a#%%'"Q$E/"$$&27|~~%''r[   rI   rF   rG   )r   r	   r   )r   r   s   ` r\   tn_argr     s    ( 	!B$q&!1a( 'Yr"uQw!Q''Yqt_b!$' 	Yr"urA2&'r[   c            	         t        d      t        dd      } t        dd      }t        dd      }t        d      t        j                  u sJ t        d      t         u sJ t        t              t        u sJ t        t              t              sJ t        t        |       sJ t        t        |      sJ t        t                    dt              z  k(  sJ t        t                    t        t                    k(  sJ t        t        |              t        |        k(  sJ t        t        t        |             sJ t        t        t        |            sJ t              j                  t              t              t        d      z   k(  sJ t              j                  t              t        t                    k(  sJ t              j                  t              t        dt              z         dz  t        t                     z
  t        t                    dz  z   t        dt                     z
  k(  sJ t              j                  t              t        t         t              z         t        dt              z        dz  z
  t        t                    dz  z   t#        t         t              z        z   t%        t                    z   k(  sJ t              j                  t"              t        t         t              z         t        dt              z        dz  z
  t        t                    dz  z   t#        t         t              z        z   t%        t                    z   k(  sJ t              j                  t$              t        dt              z         dz  t        t                    dz  z   t'        t                    z   t%        t                    z
  k(  sJ t              j                  t&              t        dt              z         dz  t        t                    dz  z   t'        t                    z   t%        t                    z
  k(  sJ t              j                  t(              t              t)        d	d
t                    z  t        dt              z        dz  z
  t        t                    dz  z   t*        z   k(  sJ t              j                  t,              t        dt              z         dz  t        t                     z
  t        t                    dz  z   t-        ddt                     z
  k(  sJ t/        dt              z  t              t        j                  u sJ t              j1                        t              dz  dz  t              dz  dz  z   t              dz  dz  z   t              dz  dz  z   t              z   t        t                    z   t*        z   k(  sJ t3        t4        fd       y )Nre   Tr@   )positiver   r   rF   rI   r   )rI   rI   rZ   )rF   ))r   r   rZ   rq   r   rr   r   rQ   r   c                  8    t               j                  d      S rW   )r0   rY   )re   s   r\   r]   ztest_li.<locals>.<lambda>K  s    r!u{{1~ r[   )r   r0   r   r^   r   
isinstancer:   r   r   r   rh   r#   r"   r2   r-   r%   r	   r    r$   r   r3   r   r4   r7   rw   r>   r;   )zrzpznre   s      @r\   test_lir   "  sA   sA	$	B	d	#B	d	#Ba5AFF??a5RC<<b6R<<beR   R"R1q>Qs1vX%%%RUr)A,////RWRC(((YB3(((Y2'''a5==11---a5==3q6
***a5==$#aAh-)9CQL)H),SVQ*79?CF79K*L M M Ma5==#aAh-#aAh-/!A!$SVQ"/13Ac!fH">@CCF"L M M Ma5==#aAh-#aAh-/!A!$SVQ"/13Ac!fH">@CCF"L M M Ma5==3qQx=."2SQ[]"B"%c!f+#.03CF#< = = =a5==3qQx=."2SQ[]"B"%c!f+#.03CF#< = = =a5==3q6%A*G#G#&qQx=?$358Q[]$CEO$P Q Q Qa5==!s1SV8}nQ&6c!fW&ECPQFTU&U&-j,Q&P'Q R R R !BqE'1b!QVV+++a5<<?c!faimc!fail:SVQYr\ICPQFTUIVWKWFQ[!#-. . . .
56r[   c                     t        d      t        j                  u sJ t        t              t        u sJ t	        t        t
              t               sJ t        t        t
              t
              dt        t
              z  k(  sJ t        dt        t
              z  t
        t              t        j                  u sJ t        t
              j                  t              t        t
              t        d      z
  k(  sJ t        t
              j                  t
              t        t
              dz  dz  t        t
              dz  dz  z   t        t
              dz  dz  z   t        t
              dz  dz  z   t        t
              z   t        t        t
                    z   t        d      z
  t        z   k(  sJ t        t        d	        y )
NrI   rF   rq   r   rr   r   rQ   r   c                  >    t        t              j                  d      S rW   )r#   re   rY   rZ   r[   r\   r]   ztest_Li.<locals>.<lambda>Z  r   r[   )r#   r   r^   r   r   re   r   r   r7   rh   r0   rw   r   r>   r;   rZ   r[   r\   test_Lir   N  s>   a5AFF??b6R<<beR   1q>Qs1vX%%%!BqE'1b!QVV+++a5==11---a5<<?A	#A	"$s1vqy|3c!faikACFJSQTUVQW[X[]^_[``cmmn n n
56r[   c                     t        t        t        z        t        t        t              z  k(  sJ t        t        t        z        t        t        t              z  k(  sJ t        t         t        z        t         t        t              z  k(  sJ t        t         t        z        t         t        t              z  k(  sJ t        t               t        t               k(  sJ t        t               t        t               k(  sJ t        t	        dt
        z  t        z        t        z        t        t              k(  sJ t        t	        dt
        z  t        z        t        z        t        t              k(  sJ t        t	        dt
        z  t        z        t        z        t        t              k(  sJ t        t	        dt
        z  t        z        t        z        t        t              k(  sJ t        t              t
        dz  k(  sJ t        t               t
         dz  k(  sJ t        t              t        u sJ t        t               t         u sJ t        t        t              t        t              t        z  t              sJ t        t        t              t        t              t        z  t              sJ t        t        t              t        t              j                  t              t         t        t        t	        t         t
        z  dz        z         dz  t        t        t	        t        t
        z  dz        z        dz  z   t        t
        z  z
  z  t
        dz  z   t              sJ t        t        t              t        t              j                  t              t         t        dt        t	        t         t
        z  dz        z         dz  t        dt        t	        t        t
        z  dz        z        dz  z   z  t
        dz  z   t              sJ t        t        t              t        t              j                  t              t        t              dz  t        t        t	        t        t
        z        z        dz  z
  t        t
        z  dz  z   t              sJ t        t        t              t        t              j                  t              t        dt              dz  t        dt        t	        t        t
        z        z        dz  z
  t        t
        z  dz  z
  t              sJ t        t               sJ t        t              sJ t        t              j                  t        d d      t        k(  sJ t        dt        z        j                  t        d d      dt        z  k(  sJ t        t        t                    j                  t        d d      t        k(  sJ t        t        dz         j                  t        d d      t        d      k(  sJ t        dt        z        j                  t        d d      t        dt        z        j                  t        d d      cxk(  rt        dt        z        k(  sJ  J t        t              j!                  t        d      t        t        dz  dz  z
  t        d	z  d
z  z   t        dz  dz  z
  t#        t        dz        z   k(  sJ t        t              j!                  t        d      t        t        dz  dz  z   t        d	z  d
z  z   t        dz  dz  z   t#        t        dz        z   k(  sJ t        t        t                    j!                  t        d	      t        dt        dz  z  dz  z
  t#        t        d	z        z   k(  sJ t        t              j!                  t        dd      t        d      t        dz
  t        d      z  z   t        dz
  dz  t        d       dz  t%        d      dz  z   z  z   t#        t        dz
  dz  t        df      z   k(  sJ t        t              j'                  t        t              t        t               dt        dz  z  t        dz  z   t#        t        dz  t        t        f      z   z  t%        t              dt        d	z  z  dt        dz  z  z
  dt        z  z   t#        t        dz  t        t        f      z   z  z
  t
        dz  z   k(  sJ t)        dd      } t        t              j                  t*              j-                  t/        t+        |       | dt        f            sJ t1        t        t              t        t2        j4                        t2        j4                  k(  sJ t1        t        t              t        t2        j6                        t2        j6                  k(  sJ y )NrI   rH   rF   rG   rt   ru   rQ   r   rq   r   rp   iЉ  	   rs   rr   r   rD   T)r   r   )r%   r	   rX   r$   r   r   r   r   r   r   r   rh   r"   r-   r   _eval_as_leading_termr   r9   r   rw   r   r   dummy_eqr5   r8   r   r   r   )rD   s    r\   test_sir   ]  s   ac7aAhqs8qAwqbd8r#a&y   r!t92a5   qb6beVr7s1vgi"Q!"be+++i2a "#r!u,,,y2a "#s1v---yBq!!#$A...b6RT>>rc7rc!er7b==s8s??1s1vax###AQ	1%%%1r!u}}R(R)QBrE!G,,--a/Ai"Q''(*+-.rT2 357T:;<> > > 1r!u}}V,VAqA2b57!3344Q61a	!B$q& 112145 68:1=>?A A A AAr*1a"Qy2./11AbDF:A? ? ?AAv.q!Q1Yqt_+<!=a!??!B$q&H!M M M "::#;;a5&&q$2a777ac7((D!4!;;;c!f:++AtQ71<<<a!e9**1dA6"Q%???ac7((D!4
1Q3%%ar2>681g> > > > > a5==a= 	AqDGad3hAe+a1g56 6 6q6>>!q>!	AqDGad3hAe+a1g56 6 6c!f:a1%Qq!tVAX!Q$)????a5==A=#
1QA!a%!c!fWQYQ-A!BBQAPQzTUWXSYEZZ[ [ [ a5<<23q6'2ad7QW+<qR1b'?R+R"SA1a4!AqD& 1Q3&1r7QG)<<=#>@B1#E E E E 	s$Aa5==''a1a)(DEEEQAJJ'1::555QA../13E3EEEEr[   c                     t        t        t        z        } t        t         t        z        }t        t        t        z  dz        }t        t         t        z  dz        }t        | t        z        t        t              t        t        z  z   k(  sJ t        |t        z        t        t              t        t        z  z
  k(  sJ t        |t        z        t        t              t        t        z  dz  z   k(  sJ t        |t        z        t        t              t        t        z  dz  z
  k(  sJ t        | t        z        t        t              t        t        z  z   k(  sJ t        |t        z        t        t              t        t        z  z
  k(  sJ t        |t        z        t        t              t        t        z  dz  z   k(  sJ t        |t        z        t        t              t        t        z  dz  z
  k(  sJ t        t        dt        z  t        z        t        z        t        t              dt        z  t        z  z   k(  sJ t        t        dt        z  t        z        t        z        t        t              dt        z  t        z  z
  k(  sJ t        t        dt        z  t        z        t        z        t        t              dt        z  t        z  z   k(  sJ t        t        dt        z  t        z        t        z        t        t              dt        z  t        z  z
  k(  sJ t        t              t        j                  u sJ t        t               t        t        z  k(  sJ t        t              t        u sJ t        t               t        u sJ t        t        t              t        t              t        z  t              sJ t        t        t              t        t              t        z  t              sJ t        t        t              t        t              j                  t              t        t        t        t         t        z  dz        z        dz  t        t        t        t        t        z  dz        z        dz  z   t              sJ t        t        t              t        t              j                  t              t        t              dz  t        t        t        t        t        z        z        dz  z   t        t        z  dz  z
  t              sJ t        t              sJ t        t
              sJ t        t              j!                  t        d      t"        t%        t              z   t        dz  dz  z
  t'        t        dz        z   k(  sJ t        t              j!                  t        d      t"        t%        t              z   t        dz  dz  z   t'        t        dz        z   k(  sJ t        t              j)                  t        t              t        t               dt        dz  z  t        dz  z   t'        t        dz  t        t        f      z   z  t+        t              dt        dz  z  dt        dz  z  z
  d	t        z  z   t'        t        dz  t        t        f      z   z  z   k(  sJ t        t              j)                  t        t               t        t               dt        dz  z  t        dz  z   t'        t        dz  t        t         f      z   z  t+        t              dt        dz  z  dt        dz  z  z
  d	t        z  z   t'        t        dz  t        t         f      z   z  z   t        t        z  z   k(  sJ t-        t%        t              t        dt        z        z
  t        d
      t%        d       t"        z
  k(  sJ t        t              j                  t.              t1        d	t        t        t         t        z  dz        z         dz  t1        d	t        t        t        t        z  dz        z        dz  z
  k(  sJ t        t              j                  t0              t1        d	t        t        t         t        z  dz        z         dz  t1        d	t        t        t        t        z  dz        z        dz  z
  k(  sJ t3        t4        d        y )NrI   rH   rr   ru   rs   r   rq   rQ   rF   r   c                  >    t        t              j                  d      S rW   )r    rX   rY   rZ   r[   r\   r]   ztest_ci.<locals>.<lambda>  r   r[   )r   r	   r   r    rX   r   r   r   r^   r   r   r   r   rh   r"   r   r   r   r   r9   rw   r   r8   r2   r-   r>   r;   )m1m1_pImIs       r\   test_cir    s   	1R4B
QBrE
C	1R46	B	A2b57	Bbd8r!uqt|###c!e91"$$$bd8s1v"Q&&&bd8s1v"Q&&&r!t9A2%%%s1u:Q!B$&&&r!t91"Q&&&r!t91"Q&&&i!B!"beac"fn444yAb!!#$A1R777y1R "#s1v!B666i1R "#r!uqs2v~555b6QVVrc7ad??r7b==s8r>>1s1vax###AQ	1%%%1r!u}}R(1Yr"uQw''(*R)AbDF2C0C-DQ-FFK K KAAr*1a"Qy2./11AbDF:A? ? ? "::#;;a5==a= SVad1f$qAw./ / /q6>>!q>!SVad1f$qAw./ / / a5<<23q6'2ad7QW+<qR1b'?R+R"SA1a4!AqD& 1Q3&1r7QG)<<=#> > > > a5<<B3CF7Bq!tGa"g,=!b'APRs8@T,T#UA1a4!AqD& 1Q3&1r7QH)==>$?AB2$F F F F Q"QqS'!1a(SVGj,@@@@a5==$1Yr"uQw5G3G)H(H(J(.q!Iad1f4E2E(Fq(H)I I I Ia5== VAqA2b571C/C%D$DQ$F(.q!Iad1f4E2E(Fq(H%I I I I
56r[   c                  !   t        d      t        j                  u sJ t        t              t        j                  u sJ t        t               t        dd      k(  sJ t        t        t        z        t         t        j                  z  k(  sJ t        t         t              sJ t        t               t        t               k(  sJ t        t        t        z        t         t        t              z  k(  sJ t        t         t        z        t        t        t              z  k(  sJ t        t        t                    t        t        t                    k(  sJ t        t              j                  t              t        t        t        dz  z  dz        k(  sJ t        t              j                  t              t        j                  t        z   dz  t        t        j                  t        z   dz  t!        t              z  t        z        t        t        t        j                  t        z
  dz  t!        t              z  t        z        z  z
  z  k(  sJ t        t              j                  t"              t        t        dz  z  dz  t#        t        dd      gt        dd      t        dd      gt        dz   t        dz  z  dz        z  k(  sJ t        t              j%                  t        d	
      t        t        dz  z  dz  t        dz  t        dz  z  dz  z
  t        dz  t        dz  z  dz  z   t'        t        d	z        z   k(  sJ t        t(              j*                  du sJ t        t(              j,                  du sJ t        t              j*                  J t        t              j,                  J t        t              j/                         t        t1        t              t        t3        t              z  z
        dz  t        t1        t              t        t3        t              z  z         dz  z   t         t        t1        t              t        t3        t              z  z
         t        t1        t              t        t3        t              z  z         z   z  dz  fk(  sJ t        t              j/                  d      t        t1        t              t        t3        t              z  z
        dz  t        t1        t              t        t3        t              z  z         dz  z   t         t        t1        t              t        t3        t              z  z
         t        t1        t              t        t3        t              z  z         z   z  dz  fk(  sJ t        t(              j/                         t        t(              dfk(  sJ t        t(              j/                  d      t        t(              dfk(  sJ t        ddt        z  z         j/                         t        ddt        z  z         dz  t        ddt        z  z
        dz  z   t         t        ddt        z  z         t        ddt        z  z
        z
  z  dz  fk(  sJ t5        t7        t        t              t                    t        t        t              z  t9        t        t        dz  z  dz        t        z  z   k(  sJ t        t              j                  t:              t!        d      t        z  t        t        dd      z  z  t;        dt        dd      ft        dd      dfft        dz   t        dz  z  dz        z  dt         t        dd      z  z  t        dz  t        dd      z  z  z  k(  sJ t=        d      t        j                  u sJ t=        t              t        j                  k(  sJ t=        t               t        dd      k(  sJ t=        t        t        z        t        t        j                  z  k(  sJ t        t<        t              sJ t=        t               t=        t               k(  sJ t=        t        t        z        t        t=        t              z  k(  sJ t=        t         t        z        t         t=        t              z  k(  sJ t        t=        t                    t=        t        t                    k(  sJ t=        t              j                  t              t9        t        t        dz  z  dz        k(  sJ t=        t              j                  t              t        j                  t        z
  dz  t        t        j                  t        z   dz  t!        t              z  t        z        t        t        t        j                  t        z
  dz  t!        t              z  t        z        z  z   z  k(  sJ t=        t              j                  t"              t        t#        t        dd      gt        j                  t        dd      gt        dz   t        dz  z  dz        z  k(  sJ t=        t(              j*                  du sJ t=        t              j/                         t=        t1        t              t        t3        t              z  z
        dz  t=        t1        t              t        t3        t              z  z         dz  z   t         t=        t1        t              t        t3        t              z  z
         t=        t1        t              t        t3        t              z  z         z   z  dz  fk(  sJ t=        t              j/                  d      t=        t1        t              t        t3        t              z  z
        dz  t=        t1        t              t        t3        t              z  z         dz  z   t         t=        t1        t              t        t3        t              z  z
         t=        t1        t              t        t3        t              z  z         z   z  dz  fk(  sJ t=        ddt        z  z         j/                         t=        ddt        z  z
        dz  t=        ddt        z  z         dz  z   t         t=        ddt        z  z         t=        ddt        z  z
        z
  z  dz  fk(  sJ t5        t7        t=        t              t                    t        t=        t              z  t        t        t        dz  z  dz        t        z  z
  k(  sJ t=        t              j                  t:              t!        d      t        z  t        t        dd      z  z  t;        dt        dd      ft        dd      dfft        dz   t        dz  z  dz        z  dt         t        dd      z  z  t        dz  t        dd      z  z  z  k(  sJ ddlm }   | t1        t        t                    t        t              j/                         d   t                | t3        t        t                    t        t              j/                         d   t                | t        t              t        t              j                  t"              t                | t        t              t        t              j                  t:              t                | t1        t=        t                    t=        t              j/                         d   t                | t3        t=        t                    t=        t              j/                         d   t                | t=        t              t=        t              j                  t"              t                | t=        t              t=        t              j                  t:              t               tC        tD        d        tC        tD        d        t        tF              jI                  dtF              t        j                  u sJ t=        tF              jI                  dtF              t        j                  u sJ t=        tF              jI                  dtF              t        dz   tF        dz  z  dz  k(  sJ y )Nr   rG   rI   rr   rQ   rS   rp      r   ru   iP  rq   r   i   TFrT   r   r   rF   r   c                  >    t        t              j                  d      S rW   )r/   re   rY   rZ   r[   r\   r]   ztest_fresnel.<locals>.<lambda>9      x{'8'8'; r[   c                  >    t        t              j                  d      S rW   )r.   re   rY   rZ   r[   r\   r]   ztest_fresnel.<locals>.<lambda>:  r	  r[   (   )%r/   r   r^   r   ri   r
   r	   r:   re   r   r   r   r   rh   r&   rg   r   r3   rw   r9   r?   r   ra   rk   r   r   r   r6   r   r4   r.   r   r   r>   r;   rX   taylor_termr  s    r\   test_fresnelr    s   A;!&&   B<166!!!RC=HRO+++AbD>aRY&&&Xq!!!QB<HQK<'''AaC=QBx{N***QBqD>Qx{]***Xa[!Xil%;;;;A;A#bAgai.000A;s#	1}QUUQYM$r("1$%#quuqy!mDH.DQ.F*G(GG(I I I I A;u%
1a4	E8Aq>*Xa^Xa^,LrSTufUVXYUYkZ\n]]^ ^ ^ A;a2&
1a4	BE!Q$JsN"RU1b5[%661b5AB B B A;''4///A;  D(((A;''///A;  (((A;##%(2a51RU7?*CA*ERUQr!uW_-a/+0B"Q%!BqE'/22Xbea1go5NNOPQQ*S S S S A;###/HRUQr!uW_4Ma4ORUQr!uW_-a/50B"Q%!BqE'/22Xbea1go5NNOPQQ4S S S S A;##%(1+q)9999A;###.8A;2BBBBA!G))+Q1Wa(1qs7"3A"55BQqS!HQ1W$556q80   
 y!a01	(1+Bq!tGAIr))* * * A;w'472:a!Q6G+G
hq!n.	!Q!1ufQTk"n	.,./01"x1~1E/Eq!thWXZ[nF\/\,^ ^ ^ ^ A;!&&   B<166!!!RC=HRO+++AbD>QqvvX%%%Xq!!!QB<HQK<'''AaC=AhqkM)))QBqD>aR^+++Xa[!Xil%;;;;A;A#bAgai.000A;s#	1}QUUQYM$r("1$%#quuqy!mDH.DQ.F*G(GG(I I I I A;u%	E8Aq>"QVVXa^$<r1ufQTk"nMMN N N A;''4///A;##%	"Q%!BqE'/	"1	$x1"Q%'@'B	B
hr!uqAw''(2a51RU7?*CC	DQ	F	HH H H A;###/	"Q%!BqE'/	"1	$x1"Q%'@'B	B
hr!uqAw''(2a51RU7?*CC	DQ	F	HH H H A!G))+QqS!hq1Q3w/11
Xa!A#g!ac'!22	3A	50   
 y!a01	(1+Bq!tGAIr))* * * A;w'472:a!Q6G+G
hq!n.	!Q!1ufQTk"n	.,./01"x1~1E/Eq!thWXZ[nF\/\,^ ^ ^ ^ 5r(1+(@(@(B1(EqIr(1+(@(@(B1(EqIx{HQK$7$7$>Bx{HQK$7$7$@!Dr(1+(@(@(B1(EqIr(1+(@(@(B1(EqIx{HQK$7$7$>Bx{HQK$7$7$@!D
;<
;<A;""2q)QVV333A;""2q)QVV333A;""1a(RUF1a4KN:::r[   c                     t        t              j                  t        d      t        t        dz  t        dz  z  dz  z
  t        dz  t        dz  z  dz  z   t        d	z  t        d
z  z  dz  z
  t	        t        dz        z   k(  sJ t
        j                  t        t        t        dz  z  dz        t        dz  t        dz  z  z  z
  dt        t        z  z  dt        dz  t        dz  z  z  z   t        t        t        dz  z  dz        z  z   } t
        j                  t        t        t        dz  z  dz        t        dz  t        dz  z  z  z
  dt        t        z  z  dt        dz  t        dz  z  z  z
  t        t        t        dz  z  dz        z  z   }t        t              j                  t        t              | t	        t        dz  t        t        f      z   k(  sJ t        t              j                  t        t              |t	        t        dz  t        t        f      z   k(  sJ t        t              j                  t        t               | j                  t        t               z   j                         j                  sJ t        t              j                  t        t               |j                  t        t               z   j                         j                  sJ t        dt        z        j                  t              | j                  t        dt        z        z
  j                         j                  sJ t        dt        z        j                  t              |j                  t        dt        z        z
  j                         j                  sJ dt        dt        z        z  j                  t        t              d| j                  t        dt        z        z  z
  j                         j                  sJ dt        dt        z        z  j                  t        t              d|j                  t        dt        z        z  z
  j                         j                  sJ y )Nr   ru   rI   rq   r  rr   r   i  rS      i $	 rQ   rG   rF   rs   )r.   re   rw   r   r9   r   ri   r   r   r/   r   r   r   is_Order)fsfcs     r\   test_fresnel_seriesr  A  s;   A;a2&	BE!Q$JrMBE!Q$JtO+b!eArEk&.@@1QU8KL L L &&3r!Q$wqy>2q5A:.
.r!t9q"a%1*~%s2ad719~
56B
&&3r!Q$wqy>2q5A:.
.bd8aQq!tn$c"QT'!)n
45BA;a$Qq2wB-@(@@@@A;a$Qq2wB-@(@@@@QKq2#&QB7??AJJJJQKq2#&QB7??AJJJJQqSM  #bgga1o5==?HHHHQqSM  #bgga1o5==?HHHHx!}_$$Q+a1Q3.??GGIRRRRx!}_$$Q+a1Q3.??GGIRRRRr[   c            	      .   t        t        t              j                  t              j                  t	        t        t         z  t        t         t        z        z  t        dt        f            sJ t        t              j                  t              j                  t	        t        t              t        dt        f            sJ t        t              j                  t              j                  t        t              t	        dt        t              z
  t        z  t        dt        f      z
  t        z         sJ t        t              j                  t              j                  t	        t!        t"        t        dz  z  dz        t        dt        f            sJ t%        t              j                  t              j                  t	        t        t"        t        dz  z  dz        t        dt        f            sJ t'        t              j                  t              j                  t	        t        t              t        z  t        t         t        f            sJ t        t              j)                  t              t        t              j                  t              j)                  t              k(  sJ t%        t              j)                  t              t%        t              j                  t              j)                  t              k(  sJ y )NrF   r   rI   )r-   rB   rX   rh   r5   r   rD   r   r   r%   r   r    r   r   r   r/   r   r   r.   r"   r   rZ   r[   r\   test_integral_rewritesr  T  s   !Q<)228ArEC1I<MPQSTVXz3Z[[[a5=="++HT!Wq!Qi,HIIIa5=="++CFXq3q6z1nqRSUVi5X,X[e,efffA;x(11(3r!Q$wqy>AqRS92UVVVA;x(11(3r!Q$wqy>AqRS92UVVVa5=="++HSVAXB3{,KLLLA;A(1+"5"5h"?"D"DQ"GGGGA;A(1+"5"5h"?"D"DQ"GGGGr[   )r   r   )rsympy.core.functionr   r   r   
sympy.corer   sympy.core.numbersr   r   r	   r
   r   r   r   sympy.core.singletonr   sympy.core.symbolr   r   r   $sympy.functions.elementary.complexesr   r   r   r   &sympy.functions.elementary.exponentialr   r   r   %sympy.functions.elementary.hyperbolicr   r   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr   r   r   'sympy.functions.special.error_functionsr   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   'sympy.functions.special.gamma_functionsr1   r2   sympy.functions.special.hyperr3   r4   sympy.integrals.integralsr5   r6   sympy.series.gruntzr7   sympy.series.limitsr8   sympy.series.orderr9   sympy.core.exprr:   r;   r<   r=   sympy.testing.pytestr>   rX   r_   re   r?   rB   rD   rn   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  r  rZ   r[   r\   <module>r)     sK   ; ; ! C C C " 6 6 P P H H > 9 E E d  d  d  d  d G : ; & %   % 2 ? '
'
1a
3T
3	#JO&d	M7	:6(rV759pU>,1^& A(?(IW1#7L:=z9.
')7X78Fv37lp;fS&Hr[   