
    e!h+                     x   d Z ddlZddlmZmZmZ ddlmZ ddlZddl	Z	ddl
mZ ddlmZ ddlmZmZmZmZ ddlmZmZmZmZmZmZmZmZmZmZ ddlm Z m!Z!m"Z"m#Z#m$Z$m%Z% 	 ddl&Z& ee&d
      d        Z( ee&d      d        Z) ee&d      d        Z* ee&d      d        Z+ ee&d      d        Z, ee&d      d        Z- ee&d      d        Z. ee&d      d        Z/ ee&d      d        Z0 ee&d      ejb                  jd                  d               Z3 ee&d      d        Z4 ee&d      d        Z5 ee&d      d        Z6dZ7 ee&d      d         Z8 ee&d      d!        Z9 ee&d      ejb                  jd                  d"               Z: ee&d      ejb                  jd                  d#               Z; ee&d      d$        Z< ee&d      d%        Z= ee&d      ejb                  jd                  d&               Z> ee&d      ejb                  jd                  d'               Z? ee&d      d(        Z@ ee&d      d)        ZA ee&d      d*        ZBd+ ZCejb                  jd                   ee&d      d,               ZDejb                  jd                   ee&d      d-               ZEejb                  jd                   ee&d      d.               ZFejb                  jd                   ee&d      d/               ZG eHd0d01      ZIejb                  jd                   ee&d2       G d3 d4                    ZJy# e'$ r  ed	      Z&Y w xY w)5z4
Test SciPy functions versus mpmath, if available.

    N)assert_assert_allclosesuppress_warnings)pi)_pep440)MissingModulecheck_versionFuncDataassert_func_equal)
ArgFixedArg
ComplexArgIntArgassert_mpmath_equalnonfunctional_tooslow
trace_argstime_limitedexception_to_nan
inf_to_nan)_sinpi_cospi_lgam1p_lanczos_sum_expg_scaled_log1pmx	_igam_facmpmathz0.10c            
         g } t        j                  ddd      D ]y  }t        j                  ddt         j                  z  d      D ]L  }|t        j                  d|z        z  }| j                  |t        t        j                  |            f       N { t        j                  | t         j                        } t        t        j                  | dd      j                          y )	Ni   
   r                    ?dtype   )nplogspacelinspacer   expappendcomplexr   eiarraycdoubler
   scexpicheck)datasetrpzs       g/var/www/html/diagnosisapp-backend/venv/lib/python3.12/site-packages/scipy/special/tests/test_mpmath.pytest_expi_complexr6   #   s    G[[a$ 7Q"%%, 	7A"&&A,ANNAwvyy|456	77 hhwbjj1GRWWgq!$**,    z0.19c                     g } dD ]m  }t        j                  ddd      D ]Q  }t        j                  d      5  | j	                  ||t        t        j                  ||            f       d d d        S o t        j                  |       } t        t        j                  | ddd	      j                          y # 1 sw Y   xY w)
N)2   3   r         d   r   r$   r   vIh%<=rtol)r%   r&   r   workdpsr)   floatexpintasarrayr
   r.   expnr0   )r1   nxs      r5   test_expn_large_nrI   3   s     G CQ3' 	CA$ C1eFMM!Q,?&@ABC C	CC jj!GRWWgvqu5;;=	C Cs   2B77C c            
      l   g } g d}|D ]i  }|D ]b  }|D ][  }|d|z  z   }t        j                  d      5  t        t        j                  ||            }d d d        | j	                  ||f       ] d k t        j                  |       } t        d | ddd      j                          y # 1 sw Y   XxY w)	N)g     Xg      #            ?g      #@g     X@r!   x   c                 B    t        j                  | j                  |      S Nr.   hyp0f1realvr4   s     r5   <lambda>z$test_hyp0f1_gh5764.<locals>.<lambda>U   s    "))AFFA. r7   r>   r   r?   r@   )	r   rB   r*   rQ   r)   r%   r,   r
   r0   )r1   axisrT   rH   yr4   ress          r5   test_hyp0f1_gh5764rY   D   s     G.D 	, 	,A ,1H ^^C( 7!&--1"56C71c{+,	,	, hhwG.7 7s    B*	*B3c            	         t        j                  ddd      } t        j                  | d      }t        j                  | D cg c]  }t        j                  |d       c}      }t        ||j                  t              d       y c c}w )N         rL   -q=r@   )	r%   r'   r.   rQ   r,   r   r   astyperC   )vvafrT   mfs       r5   test_hyp0f1_gh_1609rc   Y   sd     
S#r	"B	2s	B	"5Q6==C(5	6BB		%(u5 6s   Bz1.1.0c                  `   g } t        j                  dd      D ]  }t        j                  ddd      D ]t  }| }| j                  ||dt	        t        j                  ||d            f       | |z   dz
  }| j                  ||dt	        t        j                  ||d            f       v  dD ]<  }dD ]5  }| j                  ||dt	        t        j                  ||d            f       7 > t        j                  |       } t        t        j                  | dd	d
d      j                          y )N      r   r$   )      %      rK   r   rL   r$   r   )      rK   r   rL   r$         ?r         @r   r$   r      V瞯<-a=rA   atol)r%   aranger'   r)   rC   r   hyperur,   r
   r.   r0   )r1   rG   bas       r5   test_hyperu_around_0rw   f   s   GYYr1 ERB' 	EAANNAq!U6==Aq+A%BCDQ
ANNAq!U6==Aq+A%BCD		EE 0 E5 	EANNAq!U6==Aq+A%BCD	EE hhwGRYYAEFLLNr7   1.0.0c                     ddg} | t        t        j                  g dd            z  } | D cg c]*  \  }}}}||k(  rt        |      |k(  r|dk  r|dk7  r||||f, } }}}}t	        d	      }| D cg c]$  }|t        t        j                  |i |      fz   & }}t        j                  |t        j                  
      }t        t        j                  |ddd      j                          y c c}}}}w c c}w )N)r   rz   ffffff?)r   r|   r{   )r   r$   gffffffr;   )repeatr   r}   T)	eliminater"   r   r$   r   rn   绽|=r@   )list	itertoolsproductrounddictrC   r   hyp2f1r%   r,   float64r
   r.   r0   )ptsrv   ru   crH   kwr3   r1   s           r5   test_hyp2f1_strange_pointsr   }   s     	C 4	!!"5a@AAC'* #Aq!6eAh!mA!u* 
Aq!C  
	B>ABqE&--1b1244BGBhhwbjj1GRYYAE:@@B
 Cs   /C2
5)C:z0.13c            	      f   g d} | D cg c]!  }|t        t        j                  |       fz   # }}t        j                  |t        j
                        }t        j                  d      5  t        t        j                  |ddd      j                          d d d        y c c}w # 1 sw Y   y xY w)	N)r$   r   rn   r   )UUUUUU?gUUUUUU?g?g      ?)      ?rL   g      ?gX<ݚ?)r   r|   rn   )r   r   r|   rn   )r   ri   ri   rn   r   )gx&?rz   re   g333333?)r   r   r   +?)r   r   r   rz   )r   rn   rf   Gz?)rk   rK   rn   r   )r   rl   g      
r   )g*4]92@g|O%@gCu?)  rh   r   )r   r         %@r   )rz   r   r$         ?)rz   r   r$   rj   )r      rf   r   )r   r   rf   rj   )rL   g     prk   gm˟?r"   ignoreinvalidr   r;   r   r@   )
rC   r   r   r%   r,   r   errstater
   r.   r0   )r   r3   r1   s      r5   test_hyp2f1_real_some_pointsr      s    C. 9<<1qE&--+,..<G<hhwbjj1G	X	& GGY>DDFG G =G Gs   &B",-B''B00.14c            	      <   g d} d }| D cg c]4  }t        t        ||            t        t        j                  |       fz   6 }}t        j                  |t
        j                        }t        t        j                  |ddd      j                          y c c}w )N))p   )r:   r   )r   gwJ)r   |r   r   )r   r   rh   r   c                 N    t        | t              rt        | d         | d   z  S | S )Nr   r$   )
isinstancetuplerC   rH   s    r5   fevz&test_hyp2f1_some_points_2.<locals>.fev   s(    a1;1%%Hr7   r"   r   r;   r   r@   )r   maprC   r   r   r%   r,   r   r
   r.   r0   )r   r   r3   r1   s       r5   test_hyp2f1_some_points_2r      s}    C JMMAuSa[!U6==!+<%=$??MGMhhwbjj1GRYYAE:@@B Ns   9Bc                     g } dD ]O  }dD ]H  }dD ]A  }dD ]:  }	 t        t        j                  ||||            }| j	                  |||||f       < C J Q t        j                  | t
        j                        } t        j                  d      5  t        t        j                  | dd	d
d      j                          d d d        y # t        $ r Y w xY w# 1 sw Y   y xY w)N)r   re   g?rf   r   )g      rz   r$   g@)r   r   rf   gffffff4@)r   g)\(Gzr   g333333?gffffff?rk   r   r"   r   r   r   r;   &.>TrA   ignore_inf_sign)rC   r   r   	Exceptionr)   r%   r,   r   r   r
   r.   r0   )r1   rv   ru   r   r4   rT   s         r5   test_hyp2f1_real_somer      s    G( 4# 	4A( 4C 4A!!&--1a";< NNAq!Q?344	44 hhwbjj1G	X	& /GY!%	'',uw/ / % ! !
/ /s   !C	.C		CCC!z0.12c            
      t   d} t        j                  | dft         j                        }t         j                  j	                  d       t         j                  j                  d|       |d d df<   t         j                  j                  d|       |d d df<   t         j                  j                  d|       |d d df<   dt         j                  j                  |       z  dz
  |d d df<   |d d dfxx   d	t         j                  j                  d|       z  z  cc<   |d d dfxx   d	t         j                  j                  d|       z  z  cc<   |d d dfxx   d	t         j                  j                  d|       z  z  cc<   |D ]  }t        j                  d
k  rJt        |d d       j                         t        |d         kD  rt        |d d       j                         |d<   t        t        j                  t        |d d              |d<    t        t         j                  |ddd      j#                          y )N  rf     rk   r   r$   r   rn   rz   r   r;   r   r   r@   )r%   zerosr   randomseedparetorandrandintr   __version__absmaxrC   r   r   r
   r.   r0   )npointsr1   dss      r5   test_hyp2f1_real_randomr      s    Ghh|RZZ0GIINN4II$$S'2GAqDMII$$S'2GAqDMII$$S'2GAqDMbiinnW--1GAqDMAqDMb299,,Q888MAqDMb299,,Q888MAqDMb299,,Q888M 5&2bq6{ 3r!u:-BrF)1fmmU2bq6]3415 RYYqt<BBDr7   c                     t         j                  j                  t         j                  j                  }} 	 dt         j                  _        t	        j
                  t	        j                  ddd      t	        j                  ddd            \  }}t	        j
                  t	        j                  ddd      t	        j                  ddd            \  }}t        j                  |j                         |j                         f   dt        j                  |j                         |j                         f   z  z   }t        t        j                  d	 |d
d       t        t        j                  d |d
d       | |ct         j                  _        t         j                  _        y # | |ct         j                  _        t         j                  _        w xY w)NF   r   r$         ig?r!   c                 >    t        t        j                  |             S rO   )r*   r   erfr   s    r5   rU   z"test_erf_complex.<locals>.<lambda>   s    GFJJqM,B r7   Fr?   
vectorizedrA   c                 >    t        t        j                  |             S rO   )r*   r   erfcr   s    r5   rU   z"test_erf_complex.<locals>.<lambda>  s    WV[[^-D r7   )r   mpdpsprecr%   meshgridr'   r&   r_ravelr   r.   r   r   )old_dpsold_precx1y1x2y2pointss          r5   test_erf_complexr      s/    		vyy~~XG:		R[[a4bkk#q"6MNBR[[b"5r{{3B7OPBrxxz"((*,-255RXXZ9O3P0PP"&&"BF%*	8"''#Df%*	8 )0%		vyy~%		vyy~s   D?F! !-Gz0.15c                  D   g } dD ]{  }| j                  dd|fdd|fdd|fdd|fdd|fdd|fdd|fdd|fdd|fdd	|fd
d|fdd	|fdd|fdd	|fd
d|fdd|fdd|fdd|fd
d|fdd|fdd|fdd|fd
d|fdd|fdd|fdd|fg       } d }| D cg c]  }| ||d   |d   |d         fz    }}t        j                  |t        j                        }d }t        j                  d      5  t        ||dd
dd      j                          d d d        y c c}w # 1 sw Y   y xY w) N)r   gmư>gL7A`?r$   r$   rz   r|   g333333?g333333gr   r   rn      rf   r   re   r   ig @g&@g g&c                 d    |t        |      k(  r|dk(  r|dk(  ryyt        j                  | ||      S Nr$   r   )intr   legenp)numurH   s      r5   mplegenpztest_lpmv.<locals>.mplegenp-  s3    R=Q!VQw}}RQ''r7   r   r   r"   c                 V    t        j                  | j                  t              ||      S rO   )r.   lpmvr_   r   )r   r   rH   s      r5   evfztest_lpmv.<locals>.evf9  s    wwryy~r1--r7   r   r   rm   r   +=rq   )extendr%   r,   r   r   r
   r0   )r   rH   r   r3   r1   r   s         r5   	test_lpmvr     s   
C, 

1IAJAJQKQKaLaLqMAJAJ1IAJAJQKAJQKQKaLQKaLaLqMaLqMqMN5
 	<( ;>>QqHQqT1Q41.00>G>hhwbjj1G. 
X	& KgwEBHHJK K ?K Ks   
D( DDc                     t         j                  j                  d       t         j                  t        j                  ddd      t        j                  ddd      t        j                  ddd      t        j
                  dd	d      t        j
                  dd	d      d
z   dddddf
   } | }t        j                  t        j                  |d d d f   | d d d f               j                  dd      j                  }t        j                  j                  t        j                  j                  }}	 dt        j                  _        t        t        j                   d |ddd       t        t        j"                  d |dd       ||ct        j                  _        t        j                  _        y # ||ct        j                  _        t        j                  _        w xY w)Nr   8r<   r;   r   r   rz   r$   r   rL   gffffffr   g33333Yg3333r     c                 @    t        t        j                  | |            S rO   )rC   r   betarv   ru   s     r5   rU   ztest_beta.<locals>.<lambda>W  s    uV[[A->'? r7   Fr   T)r   rA   r   c           
      x    t        t        j                  t        t        j                  | |                        S rO   )rC   r   logr   r   r   s     r5   rU   ztest_beta.<locals>.<lambda>_  s$    vzz#fkk!Q.?*@AB r7   r   )r%   r   r   r   r&   rs   r,   broadcast_arraysreshapeTr   r   r   r   r   r.   r   betaln)ru   rv   abr   r   s        r5   	test_betar   D  s_   IINN4
bkk$Q'kk#r1%kk"a#iiR#iiR#c)$FH- 	.A 	
A	"%%a$i46;	<	D	DQ	K	M	MB		vyy~~XG:		"''?%*$*.	0 	IIB	 )0%		vyy~%		vyy~s   1AF1 1-Gg?c            	      0   t         t        j                  g d      z   } t        j                  ddt        j                  z  d      }t        j
                  | |      \  } }| t        j                  d|z        z  }t        j                  d|z   d|z   f   j                         }|D cg c]"  }|t        t        j                  |            f$ }}t        j                  |      }t        t        j                  |ddd      j                          y c c}w )	N)gg{Gzr   g{Gz?g?r   r   rg   r!   r$   vIh%,=r@   )LOGGAMMA_TAYLOR_RADIUSr%   r,   r'   r   r   r(   r   flattenr*   r   loggammar
   r.   r0   r2   thetadzr4   z0r1   s         r5   test_loggamma_taylor_transitionr  n  s    
 	*E!FFAKK1RUU7B'E{{1e$HAu	
266"U(	B
a"fa"fn%%'A<=>bGFOOB/01>G>hhwGR[['1ae4::< ?s   ('Dc            	      P   t        j                  dt        j                  t              d      } t        j                  ddt         j
                  z  d      }t        j                  | |      \  } }| t        j                  d|z        z  }t         j                  d|z   d|z   f   j                         }|D cg c]"  }|t        t        j                  |            f$ }}t        j                  |      }t        t        j                  |ddd	      j!                          y c c}w )
Nir   r   r   rg   r!   r$   r   r@   )r%   r&   log10r   r'   r   r   r(   r   r   r*   r   r   r,   r
   r.   r0   r   s         r5   test_loggamma_taylorr    s     	C"892>AKK1RUU7B'E{{1e$HAu	
266"U(	B
a"fa"fn%%'A<=>bGFOOB/01>G>hhwGR[['1ae4::< ?s   8'D#c            
         t         j                  t        j                  ddd       dt        j                  ddd      f   } | j                         }t        j                  | |      \  } }| d|z  z   }t        j
                  ddd      j                  ddd      }|t        j                  |f|j                  z        z   j                         }t        j                  d      5  |D cg c]"  }|t        t        j                  |            f$ }}d d d        t        j                        }t        t         j                  |ddd	
      j#                          y c c}w # 1 sw Y   PxY w)Nrz   rn   r   r!   iVr$   r=   r^   r@   )r%   r   r&   copyr   rs   r   dstacksizer   r   rB   r*   rgammar,   r
   r.   r0   )dxdyr   r   r4   r   r1   s          r5   test_rgamma_zerosr    s(    
BQ''BKKR,CC	DB	B[[R FB	beBIIar"**1a4E	B5+,	,557A		 A>?@Bb 123@@A hhwGRYYAE288: AA As   $E!)'EE!E!!E*c            
         t        j                  t         j                  d      } t        |       g}t        j                  t         j                  d      } |j	                  t        |              t        j                  |      }t
        j                  dt        j                  ddd       dt        j                  ddd      df   }|j                         }t        j                  ||      \  }}|d	|z  z   }|t        j                  |f|j                  z        z   j                         }t        j                  d
      5  |D cg c]"  }|t        t        j                  |            f$ }}d d d        t        j                        }t!        t"        j                  |ddd      j%                          y c c}w # 1 sw Y   PxY w)Nrk   rK   gQοrz   r   r   gQ?r!   r    r$   r   r@   )r   findrootdigammarC   r)   r%   r,   r   r&   r  r   r  r	  r   rB   r*   r
   r.   r0   )rootrootsr  r  r   r4   r   r1   s           r5   test_digamma_rootsr    s]    ??6>>3/D4[ME??6>>40D	LLtHHUOE 
ur{{2sB//BKKR4LdR	SB	B[[R FB	beB	B5+,	,557A		 B?@ABr 234AAB hhwGRZZ!QU399; BB Bs   F>'F9-F>9F>>Gc            
      f   t        t        j                        } t        j                  ddd       }t        j
                  t        j                  ddd       dt        j                  ddd      f   }t        j                  ||      \  }}|d|z  z   j                         }t        j                  d      5  |D cg c]  }|t         | |            f }}d d d        t        j                        }t        t        j                  |dd	d
      j                          y c c}w # 1 sw Y   PxY w)N,  r=   r   r   rf   r!   (   r$   r?   r@   )r   r   r  r%   r&   r   r   r   rB   r*   rE   r
   r.   r0   )r  rH   rW   r4   r   r1   s         r5   test_digamma_negrealr    s     v~~.G	S#s	##A
r{{1b!$$aRA)>>?A;;q!DAq	
RTA		 ;89:"B,-::;jj!GRZZ!QU399; ;; ;s   7D'<D"D'"D''D0c            
         t        j                  ddd       } t        j                  g d      }t        j                  | |      \  } }| d|z  z   j	                         }t        j                  d      5  |D cg c]"  }|t        t        j                  |            f$ }}d d d        t        j                        }t        t        j                  |ddd	
      j                          y c c}w # 1 sw Y   PxY w)Nr  r  r=   )gffffffgg@gffffff@r!   r    r   r$   r?   r@   )r%   r&   r,   r   r   r   rB   r*   r  rE   r
   r.   r0   rH   rW   r4   r   r1   s        r5   test_digamma_boundaryr    s    
 
S#s	##A
'(A;;q!DAq	
RTA		 B?@ABr 234AABjj!GRZZ!QU399; BB Bs   4C19'C, C1,C11C:c                  6   d} t        j                  d| z  d| z  d      }|j                         }t        j                  ||      \  }}|j	                         |j	                         }}t        j                  d      5  t        ||      D cg c])  \  }}||t        t        j                  ||d            f+ }}}d d d        t        j                        }t        t        j                  |ddd	
      j                          y c c}}w # 1 sw Y   QxY w)Nrg   rL   r   r9   r=   Tru   regularizedr>   r^   r@   )r%   r'   r  r   r   r   rB   ziprC   gammaincr,   r
   r.   r0   )smallrv   rH   a0x0r1   s         r5   test_gammainc_boundaryr%    s     E
CIqw+A	A;;q!DAq99;		qA		 ,!$Q,r2 E&//""MNO , ,, hhwGR[['6159??A	,, ,s   >D.D	<D	DDc            	         d } t        j                  dd      }t        j                  ddt        z        }dt        j                  |t        j                  d|z              z   j                         }t        j                  |D cg c]  }| | |      f c}      }t        t        j                  |ddd	      j                          y c c}w )
Nc                 F    t        t        j                  dd| z
              S Nr   r$   )r*   r   polylogr4   s    r5   spencez"test_spence_circle.<locals>.spence  s    v~~aQ/00r7   rL   rk   r   r   r$   r!   r   r@   )r%   r'   r   outerr(   r   rE   r
   r.   r+  r0   )r+  r2   r   r4   r   r1   s         r5   test_spence_circler-    s    1 	CAKK1R4 E	
RXXa5)*	*335AjjQ7r2vbz*78GRYYAE288: 8s   Cc                     t        j                  t              j                  } t         j                  t        j
                  ddd       dt        j
                  ddd      f   }|j                         }t        j                  ||      \  }}|d|z  z   }t        j                  ddd      j                  ddd      }|t        j                  |f|j                  z        z   j                         }t        j                  |D cg c]"  }|t        t        j                   |            f$ c}      }t#        t$        |ddd	| z  
      j'                          y c c}w )Nr   r  rn   r!   r=   r$   rz   r   r@   )r%   finforC   epsr   r&   r  r   rs   r   r  r	  r   rE   r*   r   sinpir
   r   r0   r1  r  r  r   r   r4   r   r1   s           r5   test_sinpi_zerosr4    s   
((5/

C	AsA&&2;;sAq+AA	BB	B[[R FB	beBIIdC#++Aq"5E	B5+,	,557Ajj$%'  wv||B'789 ' (GVWa3/557's   'Ec                     t        j                  t              j                  } t         j                  t        j
                  ddd       dt        j
                  ddd      f   }|j                         }t        j                  ||      \  }}|d|z  z   }t        j                  ddd      dz   j                  ddd	      }|t        j                  |f|j                  z        z   j                         }t        j                  |D cg c]"  }|t        t        j                   |            f$ c}      }t#        t$        |ddd
| z        j'                          y c c}w )Nr   r  rn   r!   r/  r=   r$   rL   rz   r   r@   )r%   r0  rC   r1  r   r&   r  r   rs   r   r  r	  r   rE   r*   r   cospir
   r   r0   r3  s           r5   test_cospi_zerosr7  $  s   
((5/

C	AsA&&2;;sAq+AA	BB	B[[R FB	beBYYtS!$s*33Aq"=E	B5+,	,557Ajj$%'  wv||B'789 ' (G VWa3/557's   'Ec            
         d } d }t        j                  ddd      }t         j                  t        j                  ddd       dt        j                  ddd      f   }g }|D ]G  }t	        t        j                  |            }|D ]"  }||z   }|j                  || |||      f       $ I t        j                  |      }t        | |d	d
d      j                          y )Nc                 4    t        j                  | |      d   S Nr   r.   ellipjums     r5   dnz"test_dn_quarter_period.<locals>.dn9  s    yyAq!!r7   c                 D    t        t        j                  d| |            S Nr@  r=  )rC   r   ellipfunr=  s     r5   	mpmath_dnz)test_dn_quarter_period.<locals>.mpmath_dn<  s    V__TQ!455r7   r   r$   rg   rz   r  r   r>   r   r   r@   )r%   r'   r   r&   rC   r   ellipkr)   rE   r
   r0   )	r@  rD  r?  dur1   m0u0du0r3   s	            r5   test_dn_quarter_periodrJ  7  s    "6 	Aq"A	BR((!R[[b"-EE	FBG 66==$% 	6CSANNAr9Q#345	66
 jj!GR&!%0668r7   c                 `   t        j                  |      5  t        j                  |       } t        j                  | j                  t         j
                  z
  dt         j
                  z  z        }t        j                  t        j                  |       |      }d d d        |S # 1 sw Y   S xY wr:  )r   rB   mpcceilimagr   lambertwr(   )r4   r   unwindrX   s       r5   _mpmath_wrightomegarQ  P  sy    		 5JJqMaffvyy01VYY;?@oofjjmV45 J	5 Js   BB##B-c                  
   t        j                  ddd       } t        j                  t         j                  t         j                        g}t        j                  t         j                  t         j                         g}t        j                  t         j                   t         j                        g}t        j                  t         j                   t         j                         g}t        d      D ]  }|j                  t        j                  |d   t         j                               |j                  t        j                  |d   t         j                                |j                  t        j                  |d   t         j                               |j                  t        j                  |d   t         j                                 t        j                  ||||f      }t        j                  | |      \  } }| d|z  z   j                         }t        j                  |D cg c]  }|t        t        |d            f c}      }	t        t        j                  |	ddd	      j!                          y c c}w )
Nr   r      r9   rz   r!   r$   :0yE>r@   )r%   r&   	nextafterr   infranger)   hstackr   r   rE   r*   rQ  r
   r.   wrightomegar0   )
rH   picut_abovepicut_belownpicut_abovenpicut_belowirW   r4   r   r1   s
             r5   test_wrightomega_branchr_  X  s    
RB	A<<rvv./K<<w/0KLL"%%01LLL"%%"&&12L2Y E2<<B@A2<<B"&&ABBLLb)9266BCBLLb)9BFF7CD	E
 			;\<HIA;;q!DAq	
RTAjj$%'  w':2r'BCD ' (G R^^Wa6<<>'s   .J c                     t        j                  dd      } t        j                  ddt         j                  z        }t        j                  | |      \  } }| d|z  z   j	                         }t        j
                  |D cg c]  }|t        t        |d            f c}      }t        t        j                  |ddd      j                          y c c}w )	Nr|   r$   r   r!   rS  r   ro   r@   r%   r'   r   r   r   rE   r*   rQ  r
   r.   rY  r0   r  s        r5   test_wrightomega_region1rb  o  s     	BA
AqwA;;q!DAq	
RTAjj$%'  w':2r'BCD ' (G R^^Wa7==?'    Cc                     t        j                  dd      } t        j                  dt         j                  z  d      }t        j                  | |      \  } }| d|z  z   j	                         }t        j
                  |D cg c]  }|t        t        |d            f c}      }t        t        j                  |ddd      j                          y c c}w )	Nr|   r$   rz   r!   rS  r   ro   r@   ra  r  s        r5   test_wrightomega_region2re  ~  s     	BA
BruuHb!A;;q!DAq	
RTAjj$%'  w':2r'BCD ' (G R^^Wa7==?'rc  c                     t        j                  ddd      t        j                  ddd      }} t        j                  | |      \  } }| d|z  z   j                         }t        j                  |D cg c]"  }|t        t        j                  |            f$ c}      }t        t        j                  |ddd      j                          y c c}w )Nrz   r$   rS  r!   r   r?   r@   )r%   r'   r   r   rE   r*   r   rO  r
   r.   r0   r  s        r5   test_lambertw_smallzrg    s     ;;r1b!2;;r1b#9qA;;q!DAq	
RTAjj$%'  wvr':;< ' (G R[['1ae4::<'s   1'Cr<   maxprecmaxtermsz0.17c                   v   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej<                  j?                  dd      d        Z d Z!ej<                  j?                  dd      d         Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d' Z)d( Z*d) Z+d* Z,d+ Z-d, Z.d- Z/d. Z0d/ Z1d0 Z2d1 Z3d2 Z4d3 Z5d4 Z6d5 Z7d6 Z8d7 Z9d8 Z:d9 Z;d: Z<d; Z=d< Z>d= Z?d> Z@d? ZAd@ ZBdA ZCdB ZDdC ZEdD ZFdE ZGdF ZHdG ZIdH ZJdI ZKdJ ZLdK ZMdL ZNdM ZOdN ZPej<                  j?                  dO      dP        ZQdQ ZRej<                  j?                  dO      dR        ZSeTdS        ZUdT ZVdU ZWej<                  j?                  ddV      dW        ZXdX ZYdY ZZdZ Z[ej<                  j?                  dO      d[        Z\eTd\        Z]ej<                  j?                  dO      d]        Z^ej<                  j                  d^      d_        Z`d` Zada Zbej<                  j?                  dO      db        Zcdc Zddd Zede ZfeTdf        Zgdg Zhej<                  j                  dh      di        Zidj ZjeTdk        Zkdl Zldm Zmdn Zndo Zoej<                  j?                  ddp      dq        ZpeTdr        Zqds Zrdt Zsej<                  j?                  dO      du        Ztej<                  j?                  ddv      dw        Zudx Zvej<                  j?                  ddy      dz        Zwd{ Zxd| Zyej<                  j?                  d}~      d        Zzd Z{d Z|d Z}d Z~d Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej<                  j?                  dd      d        Zy)TestSystematicc                     t        d t        j                  t        dd      gd       t        d t        j                  t        dd      g       y )	Nc                 2    t        j                  |       d   S Nr   r.   airyr*  s    r5   rU   z,TestSystematic.test_airyai.<locals>.<lambda>      bggajm r7       ח    חAh㈵>r@   c                 2    t        j                  |       d   S ro  rp  r*  s    r5   rU   z,TestSystematic.test_airyai.<locals>.<lambda>  rr  r7        @     @@)r   r   airyair   selfs    r5   test_airyaizTestSystematic.test_airyai  sC    3"MM s^,!%	' 	3"MM s^,	.r7   c                 N    t        d t        j                  t               g       y )Nc                 2    t        j                  |       d   S ro  rp  r*  s    r5   rU   z4TestSystematic.test_airyai_complex.<locals>.<lambda>  rr  r7   )r   r   ry  r   rz  s    r5   test_airyai_complexz"TestSystematic.test_airyai_complex  s    3"MM'\N	,r7   c                 p    t        d d t        dd      gd       t        d d t        d	d
      g       y )Nc                 2    t        j                  |       d   S Nr$   rp  r*  s    r5   rU   z2TestSystematic.test_airyai_prime.<locals>.<lambda>  rr  r7   c                 0    t        j                  | d      S Nr$   )
derivativer   ry  r*  s    r5   rU   z2TestSystematic.test_airyai_prime.<locals>.<lambda>      "MM!: r7   rs  rt  ru  r@   c                 2    t        j                  |       d   S r  rp  r*  s    r5   rU   z2TestSystematic.test_airyai_prime.<locals>.<lambda>  rr  r7   c                 0    t        j                  | d      S r  r  r*  s    r5   rU   z2TestSystematic.test_airyai_prime.<locals>.<lambda>  r  r7   rw  rx  r   r   rz  s    r5   test_airyai_primez TestSystematic.test_airyai_prime  ?    3 6; s^,!%	' 	3 6; s^,	.r7   c                 4    t        d d t               g       y )Nc                 2    t        j                  |       d   S r  rp  r*  s    r5   rU   z:TestSystematic.test_airyai_prime_complex.<locals>.<lambda>  rr  r7   c                 0    t        j                  | d      S r  r  r*  s    r5   rU   z:TestSystematic.test_airyai_prime_complex.<locals>.<lambda>  r  r7   r   r   rz  s    r5   test_airyai_prime_complexz(TestSystematic.test_airyai_prime_complex      3 6;'\N	,r7   c                 p    t        d d t        dd      gd       t        d d t        d	d
      g       y )Nc                 2    t        j                  |       d   S r:  rp  r*  s    r5   rU   z,TestSystematic.test_airybi.<locals>.<lambda>  rr  r7   c                 ,    t        j                  |       S rO   r   airybir*  s    r5   rU   z,TestSystematic.test_airybi.<locals>.<lambda>      "MM!, r7   rs  rt  ru  r@   c                 2    t        j                  |       d   S r:  rp  r*  s    r5   rU   z,TestSystematic.test_airybi.<locals>.<lambda>  rr  r7   c                 ,    t        j                  |       S rO   r  r*  s    r5   rU   z,TestSystematic.test_airybi.<locals>.<lambda>  r  r7   rw  rx  r  rz  s    r5   test_airybizTestSystematic.test_airybi  s?    3 6- s^,!%	' 	3 6- s^,	.r7   c                 4    t        d d t               g       y )Nc                 2    t        j                  |       d   S r:  rp  r*  s    r5   rU   z4TestSystematic.test_airybi_complex.<locals>.<lambda>  rr  r7   c                 ,    t        j                  |       S rO   r  r*  s    r5   rU   z4TestSystematic.test_airybi_complex.<locals>.<lambda>  r  r7   r  rz  s    r5   test_airybi_complexz"TestSystematic.test_airybi_complex  s    3 6-'\N	,r7   c                 p    t        d d t        dd      gd       t        d d t        d	d
      g       y )Nc                 2    t        j                  |       d   S Nrn   rp  r*  s    r5   rU   z2TestSystematic.test_airybi_prime.<locals>.<lambda>  rr  r7   c                 0    t        j                  | d      S r  r  r*  s    r5   rU   z2TestSystematic.test_airybi_prime.<locals>.<lambda>  r  r7   rs  rt  ru  r@   c                 2    t        j                  |       d   S r  rp  r*  s    r5   rU   z2TestSystematic.test_airybi_prime.<locals>.<lambda>  rr  r7   c                 0    t        j                  | d      S r  r  r*  s    r5   rU   z2TestSystematic.test_airybi_prime.<locals>.<lambda>  r  r7   rw  rx  r  rz  s    r5   test_airybi_primez TestSystematic.test_airybi_prime  r  r7   c                 4    t        d d t               g       y )Nc                 2    t        j                  |       d   S r  rp  r*  s    r5   rU   z:TestSystematic.test_airybi_prime_complex.<locals>.<lambda>  rr  r7   c                 0    t        j                  | d      S r  r  r*  s    r5   rU   z:TestSystematic.test_airybi_prime_complex.<locals>.<lambda>  r  r7   r  rz  s    r5   test_airybi_prime_complexz(TestSystematic.test_airybi_prime_complex  r  r7   c                 d    t        t        j                  t        d       t	        dd      g       y )Nc                 8    t        j                  d| fi t        S ro  )r   beiHYPERKWr*  s    r5   rU   z)TestSystematic.test_bei.<locals>.<lambda>      vzz!Q7R'7R r7   rw  rx  )r   r.   r  r   r   rz  s    r5   test_beizTestSystematic.test_bei  %    BFF,-RS s^,	.r7   c                 d    t        t        j                  t        d       t	        dd      g       y )Nc                 8    t        j                  d| fi t        S ro  )r   berr  r*  s    r5   rU   z)TestSystematic.test_ber.<locals>.<lambda>  r  r7   rw  rx  )r   r.   r  r   r   rz  s    r5   test_berzTestSystematic.test_ber  r  r7   c                 >    t        d d t        dd      gdd       y )Nc                 V    t        j                  t        |             t        |          S rO   )r.   	bernoullir   rG   s    r5   rU   z/TestSystematic.test_bernoulli.<locals>.<lambda>  s    bll3q6&:3q6&B r7   c                 P    t        t        j                  t        |                   S rO   )rC   r   r  r   r  s    r5   rU   z/TestSystematic.test_bernoulli.<locals>.<lambda>  s    eF,<,<SV,D&E r7   r   i2  r   rA   rG   )r   r   rz  s    r5   test_bernoullizTestSystematic.test_bernoulli  s"    BE#Au-.!%	0r7   c                 z    t        t        j                  t        d       t	        dd      t	               gd       y )Nc                 8    t        j                  | |fi t        S rO   r   besselir  rS   s     r5   rU   z-TestSystematic.test_besseli.<locals>.<lambda>       &..A*I*I r7   }Ô%I}Ô%ITgJDrr   )r   r.   ivr   r   rz  s    r5   test_besselizTestSystematic.test_besseli  s.    EEIJ'		
r7   c                 \    t        d t        d       t        dd      t               g       y )Nc                 B    t        j                  | j                  |      S rO   )r.   r  rR   rS   s     r5   rU   z5TestSystematic.test_besseli_complex.<locals>.<lambda>      qvvq) r7   c                 8    t        j                  | |fi t        S rO   r  rS   s     r5   rU   z5TestSystematic.test_besseli_complex.<locals>.<lambda>  r  r7   r  r  r   r   r   r   rz  s    r5   test_besseli_complexz#TestSystematic.test_besseli_complex  '    )IJ.	
r7   c           	          t        t        j                  t        d       t	        dd      t	        dd      gd       t        t        j                  t        d       t	        dd      t	        d	d
      gdd       y )Nc                 8    t        j                  | |fi t        S rO   r   besseljr  rS   s     r5   rU   z-TestSystematic.test_besselj.<locals>.<lambda>  r  r7   r  r  rw  rx  Tr   c                 8    t        j                  | |fi t        S rO   r  rS   s     r5   rU   z-TestSystematic.test_besselj.<locals>.<lambda>  r  r7   rs  rt  ru  )r   rA   )r   r.   jvr   r   rz  s    r5   test_besseljzTestSystematic.test_besselj  sg    EEIJT30 		
 	EEIJT30 	
r7   c                 X    t        d t        d       t               t               g       y )Nc                 B    t        j                  | j                  |      S rO   )r.   r  rR   rS   s     r5   rU   z5TestSystematic.test_besselj_complex.<locals>.<lambda>  r  r7   c                 8    t        j                  | |fi t        S rO   r  rS   s     r5   rU   z5TestSystematic.test_besselj_complex.<locals>.<lambda>   r  r7   r  rz  s    r5   test_besselj_complexz#TestSystematic.test_besselj_complex  s"    )IJUJL!	
r7   c           	          t        t        j                  t        j                  t        dd      t        dt        j                        gdd       y Nr   r<   r   Fr^   nan_okrA   )r   r.   kvr   besselkr   r%   rV  rz  s    r5   test_besselkzTestSystematic.test_besselk$  s6    EENNs^SBFF^,	
r7   c           	          t        t        j                  t        j                  t        dd      t        dt        j                        gdd       y r  )	r   r.   knr   r  r   r   r%   rV  rz  s    r5   test_besselk_intzTestSystematic.test_besselk_int-  s7    EENND#Arvv/	
r7   c                 \    t        d t        d       t        dd      t               g       y )Nc                 B    t        j                  | j                  |      S rO   )r.   r  rR   rS   s     r5   rU   z5TestSystematic.test_besselk_complex.<locals>.<lambda>8  r  r7   c                 8    t        j                  | |fi t        S rO   )r   r  r  rS   s     r5   rU   z5TestSystematic.test_besselk_complex.<locals>.<lambda>9  r  r7   r  r  r  rz  s    r5   test_besselk_complexz#TestSystematic.test_besselk_complex6  r  r7   c           	          d }t        t        j                  t        |      t	        dd      t	        dd      gd       y )Nc                     t        t        j                  | |fi t              }t	        |      dkD  r&t
        j                  t        j                  |      z  }t	        |      dk(  r|dk(  rt
        j                  S |S )NقnQ:Br   )	rC   r   besselyr  r   r%   rV  signnanrT   rH   r2   s      r5   	mpbesselyz.TestSystematic.test_bessely.<locals>.mpbessely>  s\    fnnQ5W56A1v~FFRWWQZ'1v{qAvvvHr7   r  r  rs  rt    r  )r   r.   yvr   r   r{  r  s     r5   test_besselyzTestSystematic.test_bessely=  s8    	 	EEY'T30		
r7   c                 `    d }t        d t        |      t               t               gd       y )Nc                    t        t        j                  | |fi t              }t	        |      dkD  rGt        j                  d      5  t
        j                  t        j                  |      z  }d d d        |S |S # 1 sw Y   |S xY w)Nr  r   r   )	r*   r   r  r  r   r%   r   rV  r  r  s      r5   r  z6TestSystematic.test_bessely_complex.<locals>.mpbesselyO  sg    q!7w78A1v~[[2 ,+A,H1H,Hs   	'A<<Bc                 B    t        j                  | j                  |      S rO   )r.   r  rR   rS   s     r5   rU   z5TestSystematic.test_bessely_complex.<locals>.<lambda>W  r  r7   i:  r  r  r  s     r5   test_bessely_complexz#TestSystematic.test_bessely_complexN  s+    	 	)Y'UJL!		
r7   c           	      d    d }t        d t        |      t        dd      t        dd      g       y )Nc                     t        t        j                  | |            }t        |      dk(  r|dk(  rt        j
                  S |S ro  )rC   r   r  r   r%   r  r  s      r5   r  z2TestSystematic.test_bessely_int.<locals>.mpbessely^  s6    fnnQ*+A1v{qAvvvHr7   c                 @    t        j                  t        |       |      S rO   )r.   ynr   rS   s     r5   rU   z1TestSystematic.test_bessely_int.<locals>.<lambda>e  s    s1vq) r7   r}     rs  rt  r   r   r   r   r  s     r5   test_bessely_intzTestSystematic.test_bessely_int]  s1    	 	)Y'E4 #dC.1	
r7   c                     g dfd	t        t        j                  fdt               t               gdd       t        t        j                  t	        j
                        ddd       y )	Nc                     | dk  s|dk  rt         j                  S | dk  s|dk  rTt        t        | |z               dz  dk(  r7|r5j	                  t        |       t        |      f       t         j                  S t        j                  | |      S )Ng   mr   r$   )r%   r  r   rC   r)   r   r   )rv   ru   nonzero
bad_pointss      r5   r   z&TestSystematic.test_beta.<locals>.betam  s{    5yAI vvAQSq1u%6%:q$@ %%uQxq&:;66M;;q!$$r7   c                      | |d      S NT)r   )rv   ru   r   s     r5   rU   z*TestSystematic.test_beta.<locals>.<lambda>~  s    aD1 r7   r   Tr   r   dy=)r   r   rr   F)r   r.   r   r   r%   r,   )r{  r  r   s    @@r5   r   zTestSystematic.test_betaj  s[    
	% 	GG1UCEN 	
 	GGHHZ  	
r7   c                     t        t        j                   t               t	        d             t               t               t               g       y )Nc                 6    t        j                  | |d|d      S )Nr   Tr  r   betaincrv   ru   rH   s      r5   rU   z-TestSystematic.test_betainc.<locals>.<lambda>      FNN1aA4$P r7   )r   r.   r  r   r   r   rz  s    r5   test_betainczTestSystematic.test_betainc  s:    JJLN P
 UCE35!	
r7   c                     t        t        j                   t               t	        d             t               t               t               gd       y )Nc                 6    t        j                  | ||dd      S )Nr$   Tr  r  r  s      r5   rU   z.TestSystematic.test_betaincc.<locals>.<lambda>  r  r7   r   r   )r   r.   betainccr   r   r   rz  s    r5   test_betaincczTestSystematic.test_betaincc  s=    KKLN P
 UCE35!		
r7   c                     g dfd	t        t        j                  fdt               t               gd       t        t        j                  t	        j
                        dd       y )Nc           	      z   t        |      dt        |       dz   z  kD  rt        j                  S | |k  rst        t        | |z
        t        j                  t        | |z
              z
        dk  r7|r5j                  t        |       t        |      f       t        j                  S t        j                  | |      S )Nrt  r$   ro   )r   r%   r  rC   r   r)   r   binomial)rG   kr  r  s      r5   r  z+TestSystematic.test_binom.<locals>.binomial  s    1vSVaZ(( vv1uU1Q3Z"((51:*>>?%G %%uQxq&:;66M??1a((r7   c                      | |d      S r  r  )rG   r  r  s     r5   rU   z+TestSystematic.test_binom.<locals>.<lambda>  s    !Q5 r7   r   r  r   r   rr   r  )r   r.   binomr   r%   r,   )r{  r  r  s    @@r5   
test_binomzTestSystematic.test_binom  sU    
	) 	HH5UCEN		
 	HHHHZ 	
r7   c                 \    t        d t        d       t               t               gd       y )Nc                 @    t        j                  t        |       |      S rO   )r.   eval_chebytr   rG   rH   s     r5   rU   z0TestSystematic.test_chebyt_int.<locals>.<lambda>      A2 r7   c                 8    t        j                  | |fi t        S rO   )r   chebytr  r!  s     r5   rU   z0TestSystematic.test_chebyt_int.<locals>.<lambda>      &--1*H*H r7   r9   r  r  rz  s    r5   test_chebyt_intzTestSystematic.test_chebyt_int  %    2HIXsu		
r7   Fz'some cases in hyp2f1 not fully accurate)runreasonc                 h    t        t        j                  d t        dd      t               gd       y )Nc                 h      t               t        t        j                              | |fi t        S rO   )r   r   r   r$  r  r!  s     r5   rU   z,TestSystematic.test_chebyt.<locals>.<lambda>  2      / r7   e   '  r  )r   r.   r   r   rz  s    r5   test_chebytzTestSystematic.test_chebyt  s+    NN s^SU#	
r7   c                 \    t        d t        d       t               t               gd       y )Nc                 @    t        j                  t        |       |      S rO   )r.   eval_chebyur   r!  s     r5   rU   z0TestSystematic.test_chebyu_int.<locals>.<lambda>  r"  r7   c                 8    t        j                  | |fi t        S rO   )r   chebyur  r!  s     r5   rU   z0TestSystematic.test_chebyu_int.<locals>.<lambda>  r%  r7   r9   r  r  rz  s    r5   test_chebyu_intzTestSystematic.test_chebyu_int  r'  r7   c                 d    t        t        j                  d t        dd      t               g       y )Nc                 h      t               t        t        j                              | |fi t        S rO   )r   r   r   r5  r  r!  s     r5   rU   z,TestSystematic.test_chebyu.<locals>.<lambda>  r,  r7   r-  r.  )r   r.   r3  r   rz  s    r5   test_chebyuzTestSystematic.test_chebyu  s(    NN s^SU#	
r7   c                     d }t        |t        j                  t               g       t        |t        j                  t	        g d      g       y )Nc                 2    t        j                  |       d   S r  r.   shichir   s    r5   chiz$TestSystematic.test_chi.<locals>.chi      99Q<?"r7   gU@X   g   V@)r   r   r>  r   r   r{  r>  s     r5   test_chizTestSystematic.test_chi  4    	#CceW5Ch7Q.R-STr7   c                     d }t        |t        j                  t        t	        t
        j                   d      t	        t
        j                  d            gd       y )Nc                 2    t        j                  |       d   S r  r<  r*  s    r5   r>  z,TestSystematic.test_chi_complex.<locals>.chi  r?  r7   rs  rt  r^   r@   )r   r   r>  r   r*   r%   rV  rB  s     r5   test_chi_complexzTestSystematic.test_chi_complex  C    	# 	JJ.0DEF		
r7   c                 V    d }t        |t        j                  t        dd      g       y )Nc                 2    t        j                  |       d   S r  r.   sicir   s    r5   ciz"TestSystematic.test_ci.<locals>.ci      771:a= r7   rs  rt  )r   r   rM  r   r{  rM  s     r5   test_cizTestSystematic.test_ci  s"    	! 	B		CcN+;<r7   c                     d }t        |t        j                  t        t	        dt
        j                         t	        dt
        j                              gd       y )Nc                 2    t        j                  |       d   S r  rK  r*  s    r5   rM  z*TestSystematic.test_ci_complex.<locals>.ci  rN  r7   rs  rt  rT  r@   )r   r   rM  r   r*   r%   rV  rO  s     r5   test_ci_complexzTestSystematic.test_ci_complex  sC    	! 	IIrvvg.RVV0DEF		
r7   c                     t        j                  t              j                  }t	        t
        t        j                  t               gdd|z         y NFr   r  )	r%   r0  rC   r1  r   r   r   r6  r   r{  r1  s     r5   
test_cospizTestSystematic.test_cospi  s2    hhuo!!FFLL35'%aPSeTr7   c                 Z    t        t        t        j                  t	               gdd       y )NFr?   r  )r   r   r   r6  r   rz  s    r5   test_cospi_complexz!TestSystematic.test_cospi_complex  !    LL\N	
r7   c                     t        t        j                  t        t        j                        t               gdd       y )Nr^   r9   rA   r   )r   r.   r  r   r   r   rz  s    r5   test_digammazTestSystematic.test_digamma  s*    JJV^^,UG	
r7   c                     d }t        t        j                  t        t        j                        t               gdd|       y )Nc                     t        j                  | j                  dk  t        j                  | j                        dk  z  dd      S )Nr   gQ?FT)r%   whererR   r   rN  r*  s    r5   param_filterz9TestSystematic.test_digamma_complex.<locals>.param_filter&  s3    88QVVaZBFF166NT,ABE4PPr7   r?   r  rA   r   ra  )r   r.   r  r   r   r   )r{  ra  s     r5   test_digamma_complexz#TestSystematic.test_digamma_complex#  s5    	Q 	JJV^^,\N%	
r7   c                 l    t        t        j                  t        j                  t               gd       y )Nr   r@   )r   r.   exp1r   e1r   rz  s    r5   test_e1zTestSystematic.test_e12  s"    GGIIUG		
r7   c                    t        t        j                  t        j                  t        t        t        j                   d      t        t        j                  d            gd       t        t        j                  t        j                  t        j                  ddd      d d d f   t        j                  dt        j                  d	d
d      t        j                  d	d
d       f   dz  z   j                         d       t        t        j                  t        j                  t        j                  ddd      dz   d       y )Nrs  rt  r  r@   r9      r   r   r   =   r   r!   ir/  y                )r   r.   re  r   rf  r   r*   r%   rV  r'   r   r&   r   rz  s    r5   test_e1_complexzTestSystematic.test_e1_complex:  s    GGII.0DEF		
 	GGII[[b#&q$w/uuQB2.RB1G0GGHKLMRUW	
 	GGII[[c5)B.		
r7   c                    t        t        j                  d t        t	        j
                  t	        j                  t        j                        j                         t	        j
                  t	        j                  t        j                        j                              g       t        t        j                  d t	        j                  dddddt        j                  g      d	
       t        t	        j                  t        j                  t        j                                     t        t        j                  t        j                         dk(         y )Nc                 f    | dk7  rt        j                  |       | z  S t        j                  d      S Nr   z1.0r   expm1mpfr   s    r5   rU   z,TestSystematic.test_exprel.<locals>.<lambda>U  &    16fll1oa' vzz%7H r7   r   c                 f    | dk7  rt        j                  |       | z  S t        j                  d      S ro  rp  r   s    r5   rU   z,TestSystematic.test_exprel.<locals>.<lambda>[  rs  r7   r^   gW:r   g   mBgyCxDr  r@   )r   r.   exprelr   r%   r   r0  r   r   r,   rV  r   isinfrz  s    r5   test_exprelzTestSystematic.test_exprelR  s    IIHBFF288BJJ/334466"((2::.2235 6	
 	IIHHHeUAtT266:;		
 	266*+,		266'"a'(r7   c                     t        t        j                  t        j                  t	        t        t        j                   d      t        t        j                  d            g       y )N    c    cA)r   r.   rq  r   r   r*   r%   rV  rz  s    r5   test_expm1_complexz!TestSystematic.test_expm1_complexb  s=    HHLL.0DEF	
r7   c                 R    t        t        j                  d t               gd       y )Nc                 2    t        j                  | dz         S r  r   r   r   s    r5   rU   z3TestSystematic.test_log1p_complex.<locals>.<lambda>m  s    fjj1o r7   <   r  )r   r.   log1pr   rz  s    r5   test_log1p_complexz!TestSystematic.test_log1p_complexj  s    HH%\N		
r7   c                 @    t        t        d t               gdd       y )Nc                 8    t        j                  | dz         | z
  S r  r~  r   s    r5   rU   z-TestSystematic.test_log1pmx.<locals>.<lambda>u  s    fjjQ'!+ r7   r  r   )r   rA   )r   r   r   rz  s    r5   test_log1pmxzTestSystematic.test_log1pmxr  s    +UG	
r7   c                 l    t        t        j                  t        j                  t               gd       y )Nr  r@   )r   r.   r/   r   r+   r   rz  s    r5   test_eizTestSystematic.test_ei{  s    BGGVYYeDr7   c                     t        t        j                  t        j                  t        t        t        j                   d      t        t        j                  d            gd       y )Nrs  rt  r   r@   )	r   r.   r/   r   r+   r   r*   r%   rV  rz  s    r5   test_ei_complexzTestSystematic.test_ei_complex~  s@    GGII.0DEF		
r7   c                 l    t        t        j                  t        j                  t	        d      g       y )Nr   ru   )r   r.   elliper   r   rz  s    r5   test_ellipezTestSystematic.test_ellipe  s    BIIv}}sSzlCr7   c                     t        t        j                  t        j                  t        dd      t        d      g       y )Nrw  rx  r   r  r   r.   	ellipeincr   r  r   rz  s    r5   test_ellipeinczTestSystematic.test_ellipeinc  s&    BLL&--#dC.#PS*9UVr7   c                 z    t        t        j                  t        j                  t               t               g       y rO   r  rz  s    r5   test_ellipeinc_largephiz&TestSystematic.test_ellipeinc_largephi      BLL&--#%Hr7   c                 ~    t        t        j                  t        j                  t        dd      t               g       y Nrw  rx  r   r.   	ellipkincr   ellipfr   rz  s    r5   test_ellipfzTestSystematic.test_ellipf  s#    BLL&--#dC.#%9PQr7   c                 z    t        t        j                  t        j                  t               t               g       y rO   r  rz  s    r5   test_ellipf_largephiz#TestSystematic.test_ellipf_largephi  r  r7   c                     t        t        j                  t        j                  t	        d      g       t        t        j
                  d t	        d      gd       y )Nr   r  c                 2    t        j                  d| z
        S r  )r   rE  )r?  s    r5   rU   z,TestSystematic.test_ellipk.<locals>.<lambda>  s    fmmAE* r7   g        )rv   r   r  )r   r.   rE  r   r   ellipkm1rz  s    r5   test_ellipkzTestSystematic.test_ellipk  s:    BIIv}}sSzlCKK*3ZL		
r7   c                 p    d }t        t        j                  |t        dd      t        d      gd       y )Nc                 0    t        j                  d| |      S ro  r   ellippiphir?  s     r5   r  z0TestSystematic.test_ellipkinc.<locals>.ellipkinc      >>!S!,,r7   rw  rx  r   r  Tr  r   r.   r  r   r{  r  s     r5   test_ellipkinczTestSystematic.test_ellipkinc  s.    	-LLs^S3Z( 		
r7   c                 l    d }t        t        j                  |t               t        d      gd       y )Nc                 0    t        j                  d| |      S ro  r  r  s     r5   r  z9TestSystematic.test_ellipkinc_largephi.<locals>.ellipkinc  r  r7   r   r  Tr  r  r  s     r5   test_ellipkinc_largephiz&TestSystematic.test_ellipkinc_largephi  s*    	-LLUC#J 		
r7   c           	      X    d }t        d |t        dd      t        dd      gd	       y )
Nc                 >    | dk(  ryt        j                  d| |      S )Nr   snr=  r   rC  r=  s     r5   r  z+TestSystematic.test_ellipfun_sn.<locals>.sn  s    AvtqA66r7   c                 4    t        j                  | |      d   S ro  r;  r=  s     r5   rU   z1TestSystematic.test_ellipfun_sn.<locals>.<lambda>      1a+ r7       .    .Ar   r$   r   rT  r@   r  )r{  r  s     r5   test_ellipfun_snzTestSystematic.test_ellipfun_sn  s.    	7 	+s^S1]+		
r7   c           	      T    t        d d t        dd      t        dd      gd	       y )
Nc                 4    t        j                  | |      d   S r  r;  r=  s     r5   rU   z1TestSystematic.test_ellipfun_cn.<locals>.<lambda>  r  r7   c                 2    t        j                  d| |      S )Ncnr=  r  r=  s     r5   rU   z1TestSystematic.test_ellipfun_cn.<locals>.<lambda>      a8 r7   r  r  r   r$   r   rT  r@   r  rz  s    r5   test_ellipfun_cnzTestSystematic.test_ellipfun_cn  '    +8s^S1]+		
r7   c           	      T    t        d d t        dd      t        dd      gd	       y )
Nc                 4    t        j                  | |      d   S r:  r;  r=  s     r5   rU   z1TestSystematic.test_ellipfun_dn.<locals>.<lambda>  r  r7   c                 2    t        j                  d| |      S rB  r  r=  s     r5   rU   z1TestSystematic.test_ellipfun_dn.<locals>.<lambda>  r  r7   r  r  r   r$   r   rT  r@   r  rz  s    r5   test_ellipfun_dnzTestSystematic.test_ellipfun_dn  r  r7   c                 N    t        t        j                  d t               g       y )Nc                 ,    t        j                  |       S rO   r   r   r*  s    r5   rU   z)TestSystematic.test_erf.<locals>.<lambda>      fjjm r7   )r   r.   r   r   rz  s    r5   test_erfzTestSystematic.test_erf  s    BFF$;ceWEr7   c                 R    t        t        j                  d t               gd       y )Nc                 ,    t        j                  |       S rO   r  r*  s    r5   rU   z1TestSystematic.test_erf_complex.<locals>.<lambda>  r  r7   r<   r  )r   r.   r   r   rz  s    r5   r   zTestSystematic.test_erf_complex  s    BFF$;jl^sSr7   c                 d    t        t        j                  t        d       t	               gd       y )Nc                 ,    t        j                  |       S rO   r   r   r*  s    r5   rU   z*TestSystematic.test_erfc.<locals>.<lambda>      v{{1~ r7   r?   r@   )r   r.   r   r   r   rz  s    r5   	test_erfczTestSystematic.test_erfc  s$    GG56UG		
r7   c                 d    t        t        j                  t        d       t	               gd       y )Nc                 ,    t        j                  |       S rO   r  r*  s    r5   rU   z2TestSystematic.test_erfc_complex.<locals>.<lambda>  r  r7   r<   r  )r   r.   r   r   r   rz  s    r5   test_erfc_complexz TestSystematic.test_erfc_complex  s$    GG56\N		
r7   c                 l    t        t        j                  t        j                  t	               gd       y Nr<   r  )r   r.   erfir   r   rz  s    r5   	test_erfizTestSystematic.test_erfi  s    BGGV[[35'SAr7   c                 l    t        t        j                  t        j                  t	               gd       y r  )r   r.   r  r   r   rz  s    r5   test_erfi_complexz TestSystematic.test_erfi_complex  s    BGGV[[:<.CHr7   c                 d    t        t        j                  t        d       t	               gd       y )Nc                 ,    t        j                  |       S rO   )r   ncdfr*  s    r5   rU   z*TestSystematic.test_ndtr.<locals>.<lambda>  r  r7   r<   r  )r   r.   ndtrr   r   rz  s    r5   	test_ndtrzTestSystematic.test_ndtr  s$    GG56UG		
r7   c                     t        t        j                  d t        t	        dd      t	        dd            gd       y )Nc                 `    t        j                  |  t        j                  d      z        dz  S Ng       @)r   r   r%   sqrtr*  s    r5   rU   z2TestSystematic.test_ndtr_complex.<locals>.<lambda>  s"    fkk1"RWWR[.1"4 r7   r/  r   r   r  )r   r.   r  r   r*   rz  s    r5   test_ndtr_complexz TestSystematic.test_ndtr_complex  s2    GG4'&&1WUE5JKL		
r7   c                 h    t        t        j                  t        d       t	               gddd       y )Nc                 R    t        j                  t        j                  |             S rO   )r   r   r  r*  s    r5   rU   z.TestSystematic.test_log_ndtr.<locals>.<lambda>  s    vzz&++a.'A r7   iX  r  r?   rG   r   rA   )r   r.   log_ndtrr   r   rz  s    r5   test_log_ndtrzTestSystematic.test_log_ndtr  s'    KKABUGs%	
r7   c                     t        t        j                  t        d       t	        t        dd      t        dd            gdd	       y )
Nc                     t        j                  t        j                  |  t        j                  d      z        dz        S r  )r   r   r   r%   r  r*  s    r5   rU   z6TestSystematic.test_log_ndtr_complex.<locals>.<lambda>  s+    vzz&++qbn2Mb2P'Q r7   r  r/  r/  r=   r   r<   r  rG   r   )r   r.   r  r   r   r*   rz  s    r5   test_log_ndtr_complexz$TestSystematic.test_log_ndtr_complex
  s:    KKQR'&$/75#3FGHs		
r7   c                 V    t        d t        j                  t        dd      gd       y )Nc                 2    t        j                  |       d   S )Nrz   )r.   eulerr  s    r5   rU   z.TestSystematic.test_eulernum.<locals>.<lambda>  s    bhhqk"o r7   r$   r/  r  )r   r   eulernumr   rz  s    r5   test_eulernumzTestSystematic.test_eulernum  s$    %OOAu		
r7   c           	          t        t        j                  t        j                  t        dd      t        dt        j                        gdd       y )Nr   r<   r?      r\  )	r   r.   rF   r   rD   r   r   r%   rV  rz  s    r5   test_expintzTestSystematic.test_expint  s6    GGMMAs^SBFF^,	
r7   c                 R    d }t        |t        j                  t               g       y )Nc                 2    t        j                  |       d   S ro  r.   fresnelr   s    r5   fresnelsz.TestSystematic.test_fresnels.<locals>.fresnels$      ::a=##r7   )r   r   r  r   )r{  r  s     r5   test_fresnelszTestSystematic.test_fresnels#      	$Hfoow?r7   c                 R    d }t        |t        j                  t               g       y )Nc                 2    t        j                  |       d   S r  r  r   s    r5   fresnelcz.TestSystematic.test_fresnelc.<locals>.fresnelc)  r  r7   )r   r   r  r   )r{  r  s     r5   test_fresnelczTestSystematic.test_fresnelc(  r  r7   c                 z    t        t        j                  t        t        j                        t               g       y rO   )r   r.   gammar   r   r   rz  s    r5   
test_gammazTestSystematic.test_gamma-  s     BHH&6v||&DsugNr7   c                 ~    t        t        j                  t        t        j                        t               gd       y Nrp   r@   )r   r.   r  r   r   r   rz  s    r5   test_gamma_complexz!TestSystematic.test_gamma_complex0  s'    HHV\\*\N		
r7   c           	      r    t        t        j                  d t        ddd      t        dd      gdd       y )Nc                 2    t        j                  | |d      S )NTr  r   r!  )r4   ru   s     r5   rU   z.TestSystematic.test_gammainc.<locals>.<lambda><      aTB r7   r        @Finclusive_ar  r  )r   r.   r!  r   rz  s    r5   test_gammainczTestSystematic.test_gammainc8  s1    KKBCU+SC[9	
r7   c           	      r    t        t        j                  d t        ddd      t        dd      gdd       y )Nc                 2    t        j                  | |d      S )NT)rv   r  r  )r4   rv   s     r5   rU   z/TestSystematic.test_gammaincc.<locals>.<lambda>F  r  r7   r   r  Fr	  r  r  )r   r.   	gammainccr   rz  s    r5   test_gammaincczTestSystematic.test_gammainccB  s1    LLBCU+SC[9	
r7   c                 d    d }t        t        j                  t        |      t	               g       y )Nc                 @    t        j                  |       j                  S rO   r   r   rR   r*  s    r5   fz&TestSystematic.test_gammaln.<locals>.fN  s    ??1%***r7   )r   r.   gammalnr   r   )r{  r  s     r5   test_gammalnzTestSystematic.test_gammalnL  s#    	+ 	BJJ(8(;ceWEr7   )r(  c                     t        t        j                  t        t        j
                        t        dd      t               t               g       y r  )r   r.   eval_gegenbauerr   r   
gegenbauerr   rz  s    r5   test_gegenbauerzTestSystematic.test_gegenbauerS  s5    V../s^SUCE*	
r7   c                    d }d }t        |t        |      t        dd      t        dd      t               gdddd	
       t        |t        |      t        dd      t               t	        t        j                  ddd            gdd       y )Nc                    t        |      dkD  rt        j                  S | dk(  rd}n%| dk(  r	d|z  |z  }nt        j                  | ||      }t        |      dk(  r|dk  rt        |      t        t        |            k(  rct        j                  | |t        j                  d      z   |      }t        |      t        j                  d      k  rt        j                  d      }t        |      d	kD  rt        j                  S |S )
Nr  r   r   r$   r   rz   z1e-50z0.0\4@Iw)	r   r%   r  r   r  rC   r   rr  rV  rG   rv   rH   r2   s       r5   r  z6TestSystematic.test_gegenbauer_int.<locals>.gegenbauer]  s     1v~vv AvaaCE%%aA. Qx1}RE!HE!H,E%%aVZZ-@)@!Dq6FJJw//

5)A 1v~vvHr7   c                     t        j                  t        |       ||      }t        |      dkD  rt        j
                  S |S )Nr  )r.   r  r   r   r%   rV  r  s       r5   sc_gegenbauerz9TestSystematic.test_gegenbauer_int.<locals>.sc_gegenbauerx  s3    ""3q61a0A1v~vvHr7   r   r=   g    eg    eAi@  Tr   )rG   r   r   rA   r  r    r  )r   r   r   r   r   r%   r&   )r{  r  r  s      r5   test_gegenbauer_intz"TestSystematic.test_gegenbauer_int[  s    	6	 	Z(As^Ss^SU3d		
 	Z(As^SUHR[[b"-E$FGT		
r7   c                     t        d t        t        j                        t	        dd      t               t               g       y )Nc                 V    t        j                  t        |       |j                  |      S rO   )r.   r  r   rR   rG   rv   rH   s      r5   rU   z8TestSystematic.test_gegenbauer_complex.<locals>.<lambda>  s    B..s1vqvvqA r7   r   r=   )r   r   r   r  r   r   r   rz  s    r5   test_gegenbauer_complexz&TestSystematic.test_gegenbauer_complex  s/    AV../As^SUJL1	
r7   c                     t        d t        t        j                        t	        dd      t	               t               g       y )Nc                 X    t        j                  | j                  |j                  |      S rO   )r.   r  rR   r$  s      r5   rU   z@TestSystematic.test_gegenbauer_complex_general.<locals>.<lambda>  s    B..qvvqvvqA r7   rw  rx  )r   r   r   r  r   r   rz  s    r5   test_gegenbauer_complex_generalz.TestSystematic.test_gegenbauer_complex_general  s/    AV../s^SUJL1	
r7   c                 v    t        t        j                  t        d       t	        dd      t	               g       y )Nc                 8    t        j                  | |fi t        S rO   )r   hankel1r  rT   rH   s     r5   rU   z-TestSystematic.test_hankel1.<locals>.<lambda>  r  r7   @x@xD)r   r.   r+  r   r   rz  s    r5   test_hankel1zTestSystematic.test_hankel1  +    JJIJsu%	
r7   c                 v    t        t        j                  t        d       t	        dd      t	               g       y )Nc                 8    t        j                  | |fi t        S rO   )r   hankel2r  r,  s     r5   rU   z-TestSystematic.test_hankel2.<locals>.<lambda>  r  r7   r-  r.  )r   r.   r3  r   r   rz  s    r5   test_hankel2zTestSystematic.test_hankel2  r0  r7   z%issues at intermediately large ordersc                 v    t        d t        t        j                        t	        dd      t               g       y )Nc                 @    t        j                  t        |       |      S rO   )r.   eval_hermiter   r!  s     r5   rU   z-TestSystematic.test_hermite.<locals>.<lambda>      Q3 r7   r   r/  )r   r   r   hermiter   r   rz  s    r5   test_hermitezTestSystematic.test_hermite  s*    3V^^,Ausu%	
r7   c           	          t        dd      t        t        j                  fdt	        dd      t	        dd      gd	
       y )Nr   i  rh  c                 2    t        j                  | |fi S rO   )r   rQ   )rv   rH   KWs     r5   rU   z,TestSystematic.test_hyp0f1.<locals>.<lambda>  s    q!2r2 r7   ry  rz  r   g     j@r  r  )r   r   r.   rQ   r   )r{  r=  s    @r5   test_hyp0f1zTestSystematic.test_hyp0f1  s8    #-II2s^SC[)		
r7   c                     t        d t        d       t        dd      t        t	        dd      t	        dd            g       y )Nc                 B    t        j                  | j                  |      S rO   rP   )rv   r4   s     r5   rU   z4TestSystematic.test_hyp0f1_complex.<locals>.<lambda>  s    1661- r7   c                 8    t        j                  | |fi t        S rO   )r   rQ   r  rv   rH   s     r5   rU   z4TestSystematic.test_hyp0f1_complex.<locals>.<lambda>  r%  r7   r   r   irM   )r   r   r   r   r*   rz  s    r5   test_hyp0f1_complexz"TestSystematic.test_hyp0f1_complex  s9    -HIb\:gdD&973;LMN	
r7   c           
          d }t        t        j                  |t        dd      t        ddd      t        dd      gdd       y )	Nc                 p    	 t        j                  | ||      S # t        $ r t        j                  cY S w xY wrO   )r   hyp1f1ZeroDivisionErrorr%   rV  r  s      r5   mpmath_hyp1f1z1TestSystematic.test_hyp1f1.<locals>.mpmath_hyp1f1  s2    }}Q1--$ vvs    55ri  r9   r$   Fr	  r   )rG   r  )r   r.   rF  r   )r{  rH  s     r5   test_hyp1f1zTestSystematic.test_hyp1f1  s@    	 	IIb\3q"%8#c2,G	
r7   c           	          t        t        d       t        d       t        dd      t        dd      t	               gd       y )Nc                 X    t        j                  | j                  |j                  |      S rO   )r.   rF  rR   r  s      r5   rU   z4TestSystematic.test_hyp1f1_complex.<locals>.<lambda>  s    ryy'C r7   c                 :    t        j                  | ||fi t        S rO   )r   rF  r  r  s      r5   rU   z4TestSystematic.test_hyp1f1_complex.<locals>.<lambda>      V]]1a-Ng-N r7   rw  rx  i  r  )r   r   r   r   r   rz  s    r5   test_hyp1f1_complexz"TestSystematic.test_hyp1f1_complex  s7    CDNOs^Ss^Z\:		
r7   c           
          t        d t        d       t        dd      t        dd      t        dd      t               gd       y )Nc                 n    t        j                  | j                  |j                  |j                  |      S rO   )r.   r   rR   rv   ru   r   rH   s       r5   rU   z4TestSystematic.test_hyp2f1_complex.<locals>.<lambda>  s!    ryyC r7   c                 <    t        j                  | |||fi t        S rO   )r   r   r  rQ  s       r5   rU   z4TestSystematic.test_hyp2f1_complex.<locals>.<lambda>      aAq0TG0T r7   g      Yg      Y@r   r  r  rz  s    r5   test_hyp2f1_complexz"TestSystematic.test_hyp2f1_complex  s;     	CTUs^Ss^Ss^Z\J		
r7   c                     t        t        j                  t        d       t	               t	               t	               g       y )Nc                 :    t        j                  | ||fi t        S rO   )r   rt   r  r  s      r5   rU   z,TestSystematic.test_hyperu.<locals>.<lambda>  rM  r7   )r   r.   rt   r   r   rz  s    r5   test_hyperuzTestSystematic.test_hyperu  s*    IINOUCE35!	
r7   z:mpmath issue gh-342: unsupported operand mpz, long for powc           	      b    d }t        t        |t        ddd      t        dd      gdd       y )	Nc                     t        j                  ||       t        j                  |       z  t        j                  |       z  S rO   )r   powerr(   r  rB  s     r5   mp_igam_facz1TestSystematic.test_igam_fac.<locals>.mp_igam_fac  s/    <<1%fjj!n4V\\!_DDr7   r   g  ļBFr	  r      r\  )r   r   r   )r{  r[  s     r5   test_igam_faczTestSystematic.test_igam_fac  s5    	E 	De,c!Tl;	
r7   c                     t        t        j                  t        j                  t	        dd      g       t        t        j                  t        j                  t	        dd      gd       y Nrw  rx  rs  rt  ru  r@   )r   r.   j0r   r   rz  s    r5   test_j0zTestSystematic.test_j0  s@     	BEE699s4~.>?BEE699s4~.>TJr7   c                     t        t        j                  t        j                  t	        dd      g       t        t        j                  t        j                  t	        dd      gd       y r_  )r   r.   j1r   r   rz  s    r5   test_j1zTestSystematic.test_j1  s>    BEE699s4~.>?BEE699s4~.>TJr7   c           	         t        t        j                  t        d       t	               t	               t	               t	               g       t        d t        d       t               t	               t	               t	               g       y )Nc                 <    t        j                  | |||fi t        S rO   r   jacobir  rQ  s       r5   rU   z,TestSystematic.test_jacobi.<locals>.<lambda>  rS  r7   c                 D    t        j                  t        |       |||      S rO   r.   eval_jacobir   )rG   ru   r   rH   s       r5   rU   z,TestSystematic.test_jacobi.<locals>.<lambda>      r~~c!faA> r7   c                 <    t        j                  | |||fi t        S rO   rg  rQ  s       r5   rU   z,TestSystematic.test_jacobi.<locals>.<lambda>  rS  r7   )r   r.   rk  r   r   r   rz  s    r5   test_jacobizTestSystematic.test_jacobi  sX    NNTUUCE35#%(	

 	>TUXsuceSU+	
r7   c           	      |    d t        d fdt               t               t               t               gdd       y )Nc                 >    | dk(  ryt        j                  | |||      S )Nr   r   )r   rh  rG   rv   ru   rH   s       r5   rh  z.TestSystematic.test_jacobi_int.<locals>.jacobi#  s!    Av==Aq!,,r7   c                 D    t        j                  t        |       |||      S rO   rj  rq  s       r5   rU   z0TestSystematic.test_jacobi_int.<locals>.<lambda>)  rl  r7   c                 6     t              | |||fi t        S rO   )r   r  )rG   rv   ru   rH   rh  s       r5   rU   z0TestSystematic.test_jacobi_int.<locals>.<lambda>*  s     7/71aNgN r7    N  r9   r  r   r   r   )r{  rh  s    @r5   test_jacobi_intzTestSystematic.test_jacobi_int!  s2    	-
 	>NXsuceSU+	
r7   c                 Z    d }t        t        j                  |t        dd      gd       y )Nc                 j    | dk(  r
t          dz  S  t        t        j                        d| fi t        S )Nr   r;   )r   r   r   keir  r   s    r5   ry  z$TestSystematic.test_kei.<locals>.kei1  s2    Avs1u/#FJJ/1@@@r7   ꌠ9Y>)ꌠ9Y>)Fr  r  )r   r.   ry  r   )r{  ry  s     r5   test_keizTestSystematic.test_kei0  s&    	A
 	BFFC#eT*:);tDr7   c                 h    t        t        j                  t        d       t	        dd      gd       y )Nc                 8    t        j                  d| fi t        S ro  )r   kerr  r   s    r5   rU   z)TestSystematic.test_ker.<locals>.<lambda>;  s    vzz!Q'B''B r7   rz  r{  r  r  )r   r.   r  r   r   rz  s    r5   test_kerzTestSystematic.test_ker8  s*    FFBC		
r7   c                 r    t        t        t        j                        d t	               t	               g       y )Nc                 L     t        t        j                        | |fi t        S rO   r   r   laguerrer  r!  s     r5   rU   z.TestSystematic.test_laguerre.<locals>.<lambda>D      :)&//:1aK7K r7   )r   r   r.   eval_laguerrer   rz  s    r5   test_laguerrezTestSystematic.test_laguerre@  s&    r''(KUCEN	
r7   c                 J    t        d d t               t               gd       y )Nc                 @    t        j                  t        |       |      S rO   )r.   r  r   r!  s     r5   rU   z2TestSystematic.test_laguerre_int.<locals>.<lambda>J      ))#a&!4 r7   c                 L     t        t        j                        | |fi t        S rO   r  r!  s     r5   rU   z2TestSystematic.test_laguerre_int.<locals>.<lambda>K  r  r7   rt  r  ru  rz  s    r5   test_laguerre_intz TestSystematic.test_laguerre_intH  s    4KXsu		
r7   zsee gh-3551 for bad pointsc           	          t        d d t        t        j                   t        j                        t	        dd      gdd       y )Nc                 T    t        j                  | t        |j                              S rO   )r.   rO  r   rR   rH   r  s     r5   rU   z3TestSystematic.test_lambertw_real.<locals>.<lambda>S  s    QAFF4 r7   c                 T    t        j                  | t        |j                              S rO   )r   rO  r   rR   r  s     r5   rU   z3TestSystematic.test_lambertw_real.<locals>.<lambda>T  s    CK8 r7   r   r   r?   FrA   r  )r   r   r%   rV  r   rz  s    r5   test_lambertw_realz!TestSystematic.test_lambertw_realP  s4    48(&B-8u		
r7   c           	          d}t        j                  d      dfd}t        |t        j                  t        d|d      gd	       y )
NgGase@r$   g  E@c                    t        j                  d      5  | z   dz
  z  | dz
  z  }|t         j                  k7  r|t        |       z  }n'| z   dz
  z  d| dz
  z  z  }|t        |       z  }||z  }d d d        |S # 1 sw Y   S xY w)Nr   )overrL   )r%   r   rV  r   )rH   facrX   egs      r5   r  z:TestSystematic.test_lanczos_sum_expg_scaled.<locals>.gamma^  s    (+ AQ!c'2"&&=6q99CECK?c1s7m<C6q99C3JC J Js   AA==Br   Fr	  r?   r@   )r%   r(   r   r   r  r   )r{  maxgammar  r  r  s      @@r5   test_lanczos_sum_expg_scaledz+TestSystematic.test_lanczos_sum_expg_scaledY  sE    &FF1I)		 	LLH%01		
r7   c                 z    t        t        j                  t        j                  t               t               g       y rO   )r   r.   eval_legendrer   legendrer   rz  s    r5   test_legendrezTestSystematic.test_legendrep  s     B,,foosu~Nr7   c                     t        d d t               t               gd       t        d d t               t        t	        j
                  ddd	            g       y )
Nc                 @    t        j                  t        |       |      S rO   r.   r  r   r!  s     r5   rU   z2TestSystematic.test_legendre_int.<locals>.<lambda>v  r  r7   c                 L     t        t        j                        | |fi t        S rO   r   r   r  r  r!  s     r5   rU   z2TestSystematic.test_legendre_int.<locals>.<lambda>w  r  r7   rt  r  c                 @    t        j                  t        |       |      S rO   r  r!  s     r5   rU   z2TestSystematic.test_legendre_int.<locals>.<lambda>~  r  r7   c                 L     t        t        j                        | |fi t        S rO   r  r!  s     r5   rU   z2TestSystematic.test_legendre_int.<locals>.<lambda>  r  r7   r  r   rg   )r   r   r   r   r%   r&   rz  s    r5   test_legendre_intz TestSystematic.test_legendre_intt  sK    4KXsu		
 	4KXxCR 89:	
r7   c           
          d }d }d }t        ||t        dd      t        dd      t               g       t        ||t        dd      t        dd      t        dd      gd	       y )
Nc                 f   	 t               5 }|j                  t               t        j                  || |      d   d   }d d d        t              dkD  r0t        j                  t        j                  |j                        z  }|S # 1 sw Y   IxY w# t
        $ r t        j                  cY S w xY w)Ncategoryr   rz   rz   )#v)r   filterDeprecationWarningr.   lpmn
ValueErrorr%   r  r   rV  r  rR   )rG   r?  r4   suprT   s        r5   lpnmz(TestSystematic.test_legenp.<locals>.lpnm  s    &( 3CJJ(:J;1a(+E2A3
 1v~FFRWWQVV_,H3 3  vvs(   
B 4B B BB B0/B0c                     t        j                  || |      }t        |      dkD  r0t        j                  t        j
                  |j                        z  }|S )Nr  )r.   r   r   r%   rV  r  rR   )rG   r?  r4   rT   s       r5   lpnm_2z*TestSystematic.test_legenp.<locals>.lpnm_2  s>    1a A1v~FFRWWQVV_,Hr7   c                    |dk(  s|dk(  rHt        |       | k(  r:|dk(  r4| dk  r|  dz
  } t        j                  t        j                  |      |       S yt	        |      dk  rt
        j                  S t	        |      dk  rdnd} t        t        j                        | |||      }t	        |      dkD  r0t        j                  t        j                  |j                        z  }|S )	Nr$   rz   r   ro   r   rn   typer  )r   r   rZ  r  r   r%   r  r   r   rV  rR   )rG   r?  r4   typrT   s        r5   r   z*TestSystematic.test_legenp.<locals>.legenp  s    Q!r's1v{ 61uBF!<<A::1v~vv1v{!C/ /1acBA1v~JJQVV!44Hr7   r/  r=   rz   r$   r   r  ru  )r{  r  r  r   s       r5   test_legenpzTestSystematic.test_legenp  sf    
			0 	D&6$+<fT3>OQTQV*WXD#D#B
;		
r7   c           	         d }d }t        j                  g d      }t        j                  g d      }|d d d f   d|d d d f   z  z   j                         }t        ||t	        g d      t	        g d      t	        |      gdd	       y )
Nc                    	 t               5 }|j                  t               t        j                  |j
                  | j
                  |d      d   d   cd d d        S # 1 sw Y   y xY w# t        $ r t        j                  cY S w xY w)Nr  r   r  r   r  	r   r  r  r.   clpmnrR   r  r%   r  rG   r?  r4   r  s       r5   clpnmz3TestSystematic.test_legenp_complex_2.<locals>.clpnm  t    &( ICJJ(:J;88AFFAFFAA>qA%HI I I  vv/   
A+ A	A	A+ A($A+ (A+ +BBc                     t        |      dk  rt        j                  S  t        t        j
                        t        | j                        t        |j                        |d      S Nro   r   r  r   r%   r  r   r   r   r   rR   rG   r?  r4   s      r5   r   z4TestSystematic.test_legenp_complex_2.<locals>.legenp  D    1v~vv2#FMM23qvv;AFFQUVWWr7   	r|   r   rK   r   ru  rL   r   rg   g     @@rw  rK   rL   g?r!   r|   rz   r   r$   r   r   r   r   r  r%   r,   r   r   r   r{  r  r   rH   rW   r4   s         r5   test_legenp_complex_2z$TestSystematic.test_legenp_complex_2      		X HHCDHH+,qvYAd1fI%,,.+,+,a[ 	
r7   c           	         d }d }t        j                  g d      }t        j                  g d      }|d d d f   d|d d d f   z  z   j                         }t        ||t	        g d      t	        g d      t	        |      gdd	       y )
Nc                    	 t               5 }|j                  t               t        j                  |j
                  | j
                  |d      d   d   cd d d        S # 1 sw Y   y xY w# t        $ r t        j                  cY S w xY w)Nr  rn   r  r   r  r  r  s       r5   r  z3TestSystematic.test_legenp_complex_3.<locals>.clpnm  r  r  c                     t        |      dk  rt        j                  S  t        t        j
                        t        | j                        t        |j                        |d      S )Nro   rn   r  r  r  s      r5   r   z4TestSystematic.test_legenp_complex_3.<locals>.legenp  r  r7   r  r  r!   r  r   r   r  r  r  s         r5   test_legenp_complex_3z$TestSystematic.test_legenp_complex_3  r  r7   z*apparently picks wrong function at |z| > 1c           	      h    d }d }t        ||t        dd      t        dd      t               g       y )Nc                 <    t        j                  || |      d   d   S Nr   r  )r.   lqmnr  s      r5   lqnmz(TestSystematic.test_legenq.<locals>.lqnm  s    771a#A&u--r7   c                     t        |      dk  rt        j                  S  t        t        j
                        | ||d      S r  )r   r%   r  r   r   legenqr  s      r5   r  z*TestSystematic.test_legenq.<locals>.legenq  s3    1v~vv2#FMM21aCCr7   r   r=   ru  r{  r  r  s      r5   test_legenqzTestSystematic.test_legenq  s5    	.	D 	As^VAs^SU3	
r7   c           	      l    d }d }t        ||t        dd      t        dd      t               gd       y )Nc                     t        j                  t        |j                        t        | j                        |      d   d   S r  )r.   r  r   rR   r  s      r5   r  z0TestSystematic.test_legenq_complex.<locals>.lqnm  s/    773qvv;AFFQ7:5AAr7   c                     t        |      dk  rt        j                  S  t        t        j
                        t        | j                        t        |j                        |d      S r  )r   r%   r  r   r   r  r   rR   r  s      r5   r  z2TestSystematic.test_legenq_complex.<locals>.legenq
  r  r7   r   r=   r  )r   r   r   r  s      r5   test_legenq_complexz"TestSystematic.test_legenq_complex  s9    	B	X 	As^VAs^Z\:		
r7   c                 L    d }d }t        t        |t               gdd|       y )Nc                 h    t        j                  t        j                  |       | k(  | dk  z  dd      S )Nr   FT)r%   r`  floorr   s    r5   ra  z0TestSystematic.test_lgam1p.<locals>.param_filter  s+    88RXXa[A-!q&95$GGr7   c                 F    t        j                  d| z         j                  S r  r  r*  s    r5   	mp_lgam1pz-TestSystematic.test_lgam1p.<locals>.mp_lgam1p  s    ??1q5)...r7   r?   r=   rb  )r   r   r   )r{  ra  r  s      r5   test_lgam1pzTestSystematic.test_lgam1p  s-    	H	/ 	UG%	
r7   c                 Z    d }t        t        j                  |t               gddd       y )Nc                     	 t        j                  |       }|S # t        $ r, t        t        j
                  t        j
                        }Y |S w xY wrO   )r   r   r  r*   r%   r  )r4   rX   s     r5   mpmath_loggammaz5TestSystematic.test_loggamma.<locals>.mpmath_loggamma*  sF    .ooa( J  .bffbff-J.s    1AAFr   )r  distinguish_nan_and_infrA   )r   r.   r   r   )r{  r  s     r5   test_loggammazTestSystematic.test_loggamma)  s+    	 	KK\N$)	
r7   c                 \    d }t        |t        d       t               t               g       y )Nc                 4    t        j                  | |      d   S ro  )r.   pbdvr,  s     r5   pcfdz&TestSystematic.test_pcfd.<locals>.pcfd<      771a=##r7   c                 8    t        j                  | |fi t        S rO   )r   r  r  r,  s     r5   rU   z*TestSystematic.test_pcfd.<locals>.<lambda>@  s    &++a*Fg*F r7   )r   r   r   )r{  r  s     r5   	test_pcfdzTestSystematic.test_pcfd:  s&    	$FGUCEN	
r7   zHit's not the same as the mpmath function --- maybe different definition?c                 N    d }t        |d t               t               gd       y )Nc                 4    t        j                  | |      d   S ro  )r.   pbvvr,  s     r5   pcfvz&TestSystematic.test_pcfv.<locals>.pcfvG  r  r7   c                 h      t               t        t        j                              | |fi t        S rO   )r   r   r   r  r  r,  s     r5   rU   z*TestSystematic.test_pcfv.<locals>.<lambda>K  s(    F(8(EFq!WwW r7   r  r  r  )r{  r  s     r5   	test_pcfvzTestSystematic.test_pcfvD  s#    	$WUCEN		
r7   c           	          d }d }d }t        |t        j                  t        dd      t        dd      gdd       t        ||t        dd      t        dd      gd	d       y )
Nc                 4    t        j                  | |      d   S ro  r.   pbwarB  s     r5   pcfwz&TestSystematic.test_pcfw.<locals>.pcfwQ  r  r7   c                 4    t        j                  | |      d   S r  r  rB  s     r5   dpcfwz'TestSystematic.test_pcfw.<locals>.dpcfwT  r  r7   c                 P    t        j                  t         j                  | |fd      S )Nr>   )r   diffr  rB  s     r5   mpmath_dpcfwz.TestSystematic.test_pcfw.<locals>.mpmath_dpcfwW  s    ;;v{{QFF;;r7   re   rf   g:0yU>r=   r  g&.!>)r   r   r  r   )r{  r  r  r   s       r5   	test_pcfwzTestSystematic.test_pcfwP  si    	$	$	<
 	KKQZR$	
 	QZR$	
r7   zCissues at large arguments (atol OK, rtol not) and <eps-close to z=0c                     t        t        j                   t               t	        t
        j                              t        dd      t               g       y )Nr   r  )r   r.   	polygammar   r   r   r   r   rz  s    r5   test_polygammazTestSystematic.test_polygammal  s;     	LLLN+F,<,<=>At_ce$	
r7   c                     t        t        j                  t        j                  t	        dt
        j                        gddd       y )Nir  FT)rG   r  r   )r   r.   r
  r   r   r%   rV  rz  s    r5   test_rgammazTestSystematic.test_rgammav  s2    IIMM  	
r7   c                 ~    t        t        j                  t        t        j                        t               gd       y r  )r   r.   r
  r   r   r   rz  s    r5   test_rgamma_complexz"TestSystematic.test_rgamma_complex  s'    IIV]]+\N		
r7   zNsee gh-3551 for bad points on 32 bit systems and gh-8095 for another bad point)r)  c                     t        j                  t        j                        t        j                  d      k\  rt        j
                  }nd }t        t        j                  |t               t               gd       y )Nrx   c                     t        | |z         t        | |z         k(  r7t        | |z         dk  r&t        j                  |       } t        | |z         | z
  }t        j                  | |      S ro  )rC   r   r   rr  rf)rv   r?  s     r5   mppochz&TestSystematic.test_rf.<locals>.mppoch  sY     Q<3q1u:-%A,!2C

1AAE
QAyyA&r7   r   r  )
r   parser   r   Versionr  r   r.   pochr   )r{  r  s     r5   test_rfzTestSystematic.test_rf  sN     ==++,0HHYYF' 	BGGVceSU^Er7   c                     t        j                  t              j                  }t	        t
        t        j                  t               gdd|z         y rU  )	r%   r0  rC   r1  r   r   r   r2  r   rV  s     r5   
test_sinpizTestSystematic.test_sinpi  s8    hhuo!!LLUG3	
r7   c                 Z    t        t        t        j                  t	               gdd       y )NFg+=r  )r   r   r   r2  r   rz  s    r5   test_sinpi_complexz!TestSystematic.test_sinpi_complex  rZ  r7   c                     d }t        |t        j                  t               g       t        |t        j                  t	        g d      g       y )Nc                 2    t        j                  |       d   S ro  r<  r   s    r5   shiz$TestSystematic.test_shi.<locals>.shi  r?  r7   r@  )r   r   r  r   r   r{  r  s     r5   test_shizTestSystematic.test_shi  rD  r7   c                     d }t        |t        j                  t        t	        t
        j                   d      t	        t
        j                  d            gd       y )Nc                 2    t        j                  |       d   S ro  r<  r*  s    r5   r  z,TestSystematic.test_shi_complex.<locals>.shi  r?  r7   rs  rt  r^   r@   )r   r   r  r   r*   r%   rV  r  s     r5   test_shi_complexzTestSystematic.test_shi_complex  rH  r7   c                 R    d }t        |t        j                  t               g       y )Nc                 2    t        j                  |       d   S ro  rK  r   s    r5   siz"TestSystematic.test_si.<locals>.si  rN  r7   )r   r   r  r   r{  r  s     r5   test_sizTestSystematic.test_si  s    	!B		CE73r7   c                     d }t        |t        j                  t        t	        dt
        j                         t	        dt
        j                              gd       y )Nc                 2    t        j                  |       d   S ro  rK  r*  s    r5   r  z*TestSystematic.test_si_complex.<locals>.si  rN  r7   rs  rt  r^   r@   )r   r   r  r   r*   r%   rV  r   s     r5   test_si_complexzTestSystematic.test_si_complex  sC    	! 	IIrvvg.RVV0DEF		
r7   c                     d }t        t        j                  t        |      t	        dt
        j                        gd       y )Nc                 4    t        j                  dd| z
        S r(  r   r)  r   s    r5   dilogz)TestSystematic.test_spence.<locals>.dilog      >>!QU++r7   r   r   r@   )r   r.   r+  r   r   r%   rV  r{  r(  s     r5   test_spencezTestSystematic.test_spence  s3    	, 	IIU#BFF^		
r7   c                 h    d }t        t        j                  t        |      t	               gd       y )Nc                 4    t        j                  dd| z
        S r(  r'  r*  s    r5   r(  z1TestSystematic.test_spence_complex.<locals>.dilog  r)  r7   r   r@   )r   r.   r+  r   r   r*  s     r5   test_spence_complexz"TestSystematic.test_spence_complex  s(    	,IIU#\N		
r7   c                     d }t        |t        j                  t        dd      t        dd      t	        dt
              t	        ddt
        z        gddd	       y )
Nc                     || kD  rt         j                  S t               5 }|j                  t               t        j                  || ||      cd d d        S # 1 sw Y   y xY w)Nr  )r%   r  r   r  r  r.   sph_harm)lr?  r   r  r  s        r5   	spherharmz0TestSystematic.test_spherharm.<locals>.spherharm  sP    1uvv"$ 5

$6
7{{1ae45 5 5s   .AA!r   r=   r   r   rT  ip  r[   )rr   rG   r   )r   r   r3  r   r   r   )r{  r3  s     r5   test_spherharmzTestSystematic.test_spherharm  sO    	5 	As^VAs^S1^S1"=MN	
r7   c           	          t        t        j                  t        t        j
                        t        dd      t        dd      gd       y )N     r  r   &.>r@   )r   r.   struver   r   struvehr   rz  s    r5   test_struvehzTestSystematic.test_struveh  s4    IIV^^,s^SC[)		
r7   c           	          d }t        t        j                  t        |      t	        dd      t	        dd      gdd       y )Nc                 J   | dk  ro||  k  rit        |       dkD  r[t        j                  j                  }	 dt        j                  _        t        j                  | |      |t        j                  _        S t        j                  | |      S # |t        j                  _        w xY w)Nr   r  r   )r   r   r   r   struvel)rT   r4   r   s      r5   
mp_struvelz/TestSystematic.test_struvel.<locals>.mp_struvel  sq    1uaRCFTM ))--,$'FIIM!>>!Q/$+FIIM>>!Q'' %,FIIMs   *B B"r6  r  r   r7  Tr   )r   r.   	modstruver   r   )r{  r>  s     r5   test_struvelzTestSystematic.test_struvel  s:    		( 	LLZ(s^SC[) 	
r7   c                 ^    d }t        t        j                  |t        dd      gddd       y )Nc                 z    t        j                  t        j                  |       t        j                  d            S )Nz-0.5)r   rO  r(   rr  r   s    r5   mpmath_wrightomega_realzETestSystematic.test_wrightomega_real.<locals>.mpmath_wrightomega_real  s$    ??6::a=&**V2DEEr7   r}   gPKDg+<r   F)rA   rr   r  )r   r.   rY  r   )r{  rC  s     r5   test_wrightomega_realz$TestSystematic.test_wrightomega_real  s2    	F 	NN#	
r7   c                 T    t        t        j                  d t               gdd       y )Nc                     t        | d      S )NrS  )rQ  r*  s    r5   rU   z1TestSystematic.test_wrightomega.<locals>.<lambda>%  s    )!R0 r7   r   Fr  )r   r.   rY  r   rz  s    r5   test_wrightomegazTestSystematic.test_wrightomega"  s!    NN0\N	
r7   c           	          t        t        j                  t        t        j                        t        ddd      t        dd      g       y )Nr$       _BF)rv   ru   r
  r   rv   r
  )r   r.   zetar   r   r   rz  s    r5   test_hurwitz_zetaz TestSystematic.test_hurwitz_zeta+  s5    GGV[[)1%0#u2MN	
r7   c                 X    t        t        j                  d t        dd      gdd       y )Nc                 V    | dk7  rt        j                  |       S t         j                  S r  r   rK  rV  r   s    r5   rU   z2TestSystematic.test_riemann_zeta.<locals>.<lambda>5  s    Qfkk!n FJJ r7   r/  r=   Frp   r  )r   r.   rK  r   rz  s    r5   test_riemann_zetaz TestSystematic.test_riemann_zeta2  s&    GG>s^	
r7   c                 Z    t        t        j                  d t        dd      gddd       y )Nc                 \    | dk7  rt        j                  |       dz
  S t         j                  S r  rO  r   s    r5   rU   z+TestSystematic.test_zetac.<locals>.<lambda>>  s!    AFfkk!nq( 

 r7   r/  r=   F-   rp   )r  r   rA   )r   r.   zetacr   rz  s    r5   
test_zetaczTestSystematic.test_zetac;  s)    HHBs^	
r7   c                     d }t        t        j                  t        |      t	        dd      t	               gddd       y )	Nc                    t         j                  j                  |       } t         j                  j                  |      }|dk(  rt         j                  j                  |       S t         j                  j	                  | |      |z  S ro  r   r   rr  r   powm1)rH   lmbdas     r5   	mp_boxcoxz-TestSystematic.test_boxcox.<locals>.mp_boxcoxG  sZ    		a AIIMM%(Ezyy}}Q''yyq%0588r7   r   FrJ  r<   r  r?   r  )r   r.   boxcoxr   r   )r{  r[  s     r5   test_boxcoxzTestSystematic.test_boxcoxE  s:    	9 	IIY'1%(#%0	
r7   c                     d }t        t        j                  t        |      t	        dd      t	               gddd       y )	Nc                 V   t         j                  j                  |       } t         j                  j                  |      }t         j                  j                  d      }|dk(  r"t         j                  j                  || z         S t         j                  j	                  || z   |      |z  S r   rX  )rH   rZ  ones      r5   mp_boxcox1pz1TestSystematic.test_boxcox1p.<locals>.mp_boxcox1pZ  st    		a AIIMM%(E))--"Czyy}}S1W--yysQw6>>r7   rz   FrJ  r<   r  r?   r  )r   r.   boxcox1pr   r   )r{  ra  s     r5   test_boxcox1pzTestSystematic.test_boxcox1pX  s:    	? 	KK[)25)351	
r7   c           	      p    d }t        d t        |      t        dd      t        dd      gdd d f	       y )
Nc                    t        j                  |      }t        j                  | t        j                  d      dz  z   |      t        j                  d|z  t         j
                  z        z  }|j                  dk(  r|j                  S |S Nr$   r   r   r   	mpmathifyr  rr  r  r   rN  rR   rG   r4   argouts       r5   mp_spherical_jnz9TestSystematic.test_spherical_jn.<locals>.mp_spherical_jnm  i    ""1%C>>!fjjmAo"5s;;;quVYY/0Cxx1}xx
r7   c                 @    t        j                  t        |       |      S rO   )r.   spherical_jnr   rG   r4   s     r5   rU   z2TestSystematic.test_spherical_jn.<locals>.<lambda>w  r8  r7   r   r<   rs  rt  r  c                 2    t        j                  |       dkD  S )Ng#B;)r%   r   r*  s    r5   rU   z2TestSystematic.test_spherical_jn.<locals>.<lambda>|  s    "&&)e*; r7   )r   ra  r  r{  rl  s     r5   test_spherical_jnz TestSystematic.test_spherical_jnl  s<    	 	3_-As^Ss^, ;<	
r7   c                 `    d }t        d t        |      t        dd      t               g       y )Nc                    t        j                  |      }t        j                  | t        j                  d      dz  z   |      t        j                  d|z  t         j
                  z        z  }|j                  dk(  r|j                  S |S rf  rg  ri  s       r5   rl  zATestSystematic.test_spherical_jn_complex.<locals>.mp_spherical_jn  rm  r7   c                 T    t        j                  t        | j                        |      S rO   )r.   ro  r   rR   rp  s     r5   rU   z:TestSystematic.test_spherical_jn_complex.<locals>.<lambda>      QVVa8 r7   r   r<   r   r   r   r   rr  s     r5   test_spherical_jn_complexz(TestSystematic.test_spherical_jn_complex  ,    	 	8_-As^Z\*	
r7   c           	      h    d }t        d t        |      t        dd      t        dd      gd       y )	Nc                    t        j                  |      }t        j                  | t        j                  d      dz  z   |      t        j                  d|z  t         j
                  z        z  }|j                  dk(  r|j                  S |S rf  r   rh  r  rr  r  r   rN  rR   ri  s       r5   mp_spherical_ynz9TestSystematic.test_spherical_yn.<locals>.mp_spherical_yn  rm  r7   c                 @    t        j                  t        |       |      S rO   )r.   spherical_ynr   rp  s     r5   rU   z2TestSystematic.test_spherical_yn.<locals>.<lambda>  r8  r7   r   r<   g    _rI  r=   r  r  r{  r~  s     r5   test_spherical_ynz TestSystematic.test_spherical_yn  s4    	 	3_-As^S-.		
r7   c                 `    d }t        d t        |      t        dd      t               g       y )Nc                    t        j                  |      }t        j                  | t        j                  d      dz  z   |      t        j                  d|z  t         j
                  z        z  }|j                  dk(  r|j                  S |S rf  r}  ri  s       r5   r~  zATestSystematic.test_spherical_yn_complex.<locals>.mp_spherical_yn  rm  r7   c                 T    t        j                  t        | j                        |      S rO   )r.   r  r   rR   rp  s     r5   rU   z:TestSystematic.test_spherical_yn_complex.<locals>.<lambda>  rw  r7   r   r<   rx  r  s     r5   test_spherical_yn_complexz(TestSystematic.test_spherical_yn_complex  rz  r7   c                 f    d }t        d t        |      t        dd      t               gdd       y )Nc                    t        j                  |      }t        j                  | t        j                  d      dz  z   |      t        j                  d|z  t         j
                  z        z  }|j                  dk(  r|j                  S |S rf  r   rh  r  rr  r  r   rN  rR   ri  s       r5   mp_spherical_inz9TestSystematic.test_spherical_in.<locals>.mp_spherical_in  rm  r7   c                 @    t        j                  t        |       |      S rO   )r.   spherical_inr   rp  s     r5   rU   z2TestSystematic.test_spherical_in.<locals>.<lambda>  r8  r7   r   r<   g訰6r  r  r{  r  s     r5   test_spherical_inz TestSystematic.test_spherical_in  s2    	 	3_-As^SU#	
r7   c                 `    d }t        d t        |      t        dd      t               g       y )Nc                    t        j                  |      }t        j                  | t        j                  d      dz  z   |      t        j                  d|z  t         j
                  z        z  }|j                  dk(  r|j                  S |S rf  r  ri  s       r5   r  zATestSystematic.test_spherical_in_complex.<locals>.mp_spherical_in  rm  r7   c                 T    t        j                  t        | j                        |      S rO   )r.   r  r   rR   rp  s     r5   rU   z:TestSystematic.test_spherical_in_complex.<locals>.<lambda>  rw  r7   r   r<   rx  r  s     r5   test_spherical_in_complexz(TestSystematic.test_spherical_in_complex  rz  r7   c                 d    d }t        d t        |      t        dd      t               gd       y )Nc                 >   t        j                  |      }t        j                  | t        j                  d      dz  z   |      t        j                  d|z  t         j
                  z        z  }t        j                  |      j                  dk(  r|j                  S |S rf  r   rh  r  rr  r  r   rN  rR   ri  s       r5   mp_spherical_knz9TestSystematic.test_spherical_kn.<locals>.mp_spherical_kn  sw    ""1%C>>!fjjmAo"5s;;;quVYY/0C"''1,xx
r7   c                 @    t        j                  t        |       |      S rO   )r.   spherical_knr   rp  s     r5   rU   z2TestSystematic.test_spherical_kn.<locals>.<lambda>  r8  r7   r   r[   r=   r  r  r{  r  s     r5   test_spherical_knz TestSystematic.test_spherical_kn  s/    	 	3_-As^SU#		
r7   z.Accuracy issues near z = -1 inherited from kv.c                 d    d }t        d t        |      t        dd      t               gd       y )Nc                    t        j                  |      }t        j                  | t        j                  d      dz  z   |      t        j                  d|z  t         j
                  z        z  }|j                  dk(  r|j                  S |S rf  r  ri  s       r5   r  zATestSystematic.test_spherical_kn_complex.<locals>.mp_spherical_kn  rm  r7   c                 T    t        j                  t        | j                        |      S rO   )r.   r  r   rR   rp  s     r5   rU   z:TestSystematic.test_spherical_kn_complex.<locals>.<lambda>  rw  r7   r   r<   r  rx  r  s     r5   test_spherical_kn_complexz(TestSystematic.test_spherical_kn_complex  s/    	 	8_-As^Z\*		
r7   N)__name__
__module____qualname__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&  pytestmarkxfailr0  r6  r9  rC  rG  rP  rS  rW  rY  r]  rc  rg  rl  rw  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r!  r%  r   r(  r/  r4  r:  r>  rC  rI  rN  rT  rW  xfail_on_32bitr]  ra  rd  rn  rv  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r$  r+  r.  r4  r:  r@  rD  rG  rL  rP  rU  r]  rc  rs  ry  r  r  r  r  r  r  r  r7   r5   rl  rl    sn   .,
.,
.,
.,
.
.
0


"




"

!
F	



B
 [[5)RS
 T

 [[5)RS
 T
U	
=	
U




0) 


E
DWIRI



$

FT

BI





@
@
O


F [[5!
 "
0
d [[5!
 "
 
 


 [[5)PQ
 R
	


 [[5!
 "
 
 
 [[5!
 "
 [[ !H I

I

KK
 [[5!

 "


E
 
 

 [[ <=
 >

. O O
3
j
<
< [[5)UV
 W
  
 
"
$
" [[5!
 "
 [[5 *G H
H

8 [[56  7
7


 [[  ' )F)F 

U	
4
	




 

(
 




&
(
&
 
"
 
$
 
" [[5N  P
P
r7   rl  )K__doc__numpyr%   numpy.testingr   r   r   r   r  r   
scipy._libr   scipy.specialspecialr.   scipy.special._testutilsr   r	   r
   r   scipy.special._mptestutilsr   r   r   r   r   r   r   r   r   r   scipy.special._ufuncsr   r   r   r   r   r   r   ImportErrorr6   rI   rY   rc   rw   r   r   r   r   r  slowr   r   r   r   r   r  r  r  r  r  r  r%  r-  r4  r7  rJ  rQ  r_  rb  re  rg  r   r  rl  r  r7   r5   <module>r     se    E E         % vv- - vv	> 	>  vv! !( vv6 6 vwO  O, vwC  C" vvG G> vvC C* vv/ /$ vvE  E8 vv: :* vv0K 0Kn vv: :L   vv= =  vv= =& vv;  ;. vv<  <* vv< <& vv< <( vvB  B& vv;  ;& vv
8 
8 vv8 8$ vv9 90 vv?  ?* vv
@  
@ vv
@  
@" vv=  =. sS
) vvE
 E
  E
i  %8$F%s    L( (L98L9