
    (ph[                        S r SSKrSSKrSSKJrJr  SSKrSSKJ	r
  SSKJrJrJr  SSKJrJrJrJrJr   SSKr " S S5      r " S	 S
5      r " S S5      rS rS rS rS/S jrS rS/S jrS r \RB                  RD                  \" \S5       " S S5      5       5       r#/ SQr$\RB                  RK                  S\$\$ V s/ s H  o S   PM	     sn S9S 5       r&S r'S r(S r)S r*\RB                  RK                  S/ S Q/ S!Q/ S"Q/ S#Q/ S$Q/ S%Q/ S&Q/ S'Q/ S(Q/ S)Q/ S*Q/ S+Q/5      S, 5       r+ " S- S.5      r,g! \ a    \" S5      r GNf = fs  sn f )0z
Test cdflib functions versus mpmath, if available.

The following functions still need tests:

- ncfdtri
- ncfdtridfn
- ncfdtridfd
- ncfdtrinc
- nbdtrik
- nbdtrin
- pdtrik
- nctdtrit
- nctdtridf
- nctdtrinc

    N)assert_equalassert_allclose)MissingModulecheck_versionFuncData)ArgIntArgget_args	mpf2floatassert_mpmath_equalmpmathc                   $    \ rS rSrSrS rS rSrg)ProbArg$   z*Generate a set of probabilities on [0, 1].c                      SU l         SU l        g )Nr      abselfs    R/var/www/html/venv/lib/python3.13/site-packages/scipy/special/tests/test_cdflib.py__init__ProbArg.__init__'   s        c                 f   [        SUS-  5      n[        R                  " S[        R                  " S5      U5      n[        R                  " SSUS-   SS9SS nS[        R                  " [        R                  " S5      S	U5      -
  n[        R
                  X4U4   n[        R                  " U5      $ )
z3Return an array containing approximately n numbers.r      i333333?gffffff?F)endpointNi)maxnplogspacelog10linspacer_unique)r   nmv1v2v3vs          r   valuesProbArg.values,   s    1a4L[[bhhsmQ/[[c1q559!"=RXXc]C33EE""*yy|r   r   N)__name__
__module____qualname____firstlineno____doc__r   r-   __static_attributes__ r   r   r   r   $   s    4
r   r   c                        \ rS rSrS rS rSrg)EndpointFilter6   c                 4    Xl         X l        X0l        X@l        g N)r   r   rtolatol)r   r   r   r;   r<   s        r   r   EndpointFilter.__init__7   s    		r   c                    [         R                  " XR                  -
  5      U R                  [         R                  " U R                  5      -  U R                  -   :  n[         R                  " XR
                  -
  5      U R                  [         R                  " U R
                  5      -  U R                  -   :  n[         R                  " X#-  SS5      $ )NFT)r!   absr   r;   r<   r   where)r   xmask1mask2s       r   __call__EndpointFilter.__call__=   s    q66z"TYYrvvdff~%=		%IIq66z"TYYrvvdff~%=		%IIxxud33r   )r   r<   r   r;   N)r/   r0   r1   r2   r   rD   r4   r5   r   r   r7   r7   6   s    4r   r7   c                   6    \ rS rSr   SS jrS rS rS rSrg)	_CDFDataC   Nc                    Xl         X l        X0l        X@l        XPl        X`l        Xpl        Xl        Xl        [        U[        5      (       d  S U l        S U l        g U
c  Ubu  [        U
[        5      (       a  Xl        OU
/[        U R                  5      -  U l        [        U[        5      (       a  Xl        g U/[        U R                  5      -  U l        g S U l        S U l        g r:   )spfuncmpfuncindexargspecspfunc_firstdpsr'   r;   r<   
isinstancelist
endpt_rtol
endpt_atollen)r   rJ   rK   rL   rM   rN   rO   r'   r;   r<   rR   rS   s               r   r   _CDFData.__init__D   s     
(		'4(("DO"DO#z'=*d++",#-,s4<</@"@*d++",#-,s4<</@"@"DO"DOr   c                    U R                   (       a  U R                  " U6 n[        R                  " U5      (       a  [        R                  $ [        U5      nX!U R                  '   [        R                  " U R                  5         U R                  " [        U5      6 n[        UR                  5      nS S S 5        U$ [        R                  " U R                  5         U R                  " U6 n[        UR                  5      nS S S 5        [        U5      nWXR                  '   U R                  " [        U5      6 nU$ ! , (       d  f       U$ = f! , (       d  f       NS= fr:   )rN   rJ   r!   isnannanrQ   rL   r   workdpsrO   rK   tupler   real)r   argsress      r   idmap_CDFData.idmapa   s    ++t$Cxx}}vv:D")kk5;/) * 
 )kk4() * :D"D++uT{+C
 *) 
 *)s   .D=%E=
E
Ec           	      R   U R                   c  U R                  c  g / n[        U R                   U R                  U R                  5       HZ  u  p#nUc  Uc  UR	                  S 5        M  Uc  SnOUc  SnUR	                  [        UR                  UR                  X#5      5        M\     U$ )N        )rR   rS   ziprM   appendr7   r   r   )r   filtersr;   r<   specs        r   get_param_filter_CDFData.get_param_filteru   s    ??"t'> #DOOT__dll SD|t$NN>$&&$&&$EF !T r   c                    [        U R                  U R                  5      nU R                  5       n[	        [        UR                  S   5      5      nUR                  S   n[        R                  " XS S 2U R                  4   R                  UR                  S   S5      45      n[        U R                  UX4U R                  U R                  SUS9R                  5         g )Nr   r   F)param_columnsresult_columnsr;   r<   
vectorizedparam_filter)r
   rM   r'   rf   rZ   rangeshaper!   hstackrL   reshaper   r^   r;   r<   check)r   r\   rl   ri   rj   s        r   rq   _CDFData.check   s    dff-,,.eDJJqM23Ayy$Q

] 3 ; ;DJJqM1 MNOT,iidiiE*	, -2EGr   )rM   r<   rO   rS   rR   rL   rK   r'   r;   rJ   rN   )T   i  NNNN)	r/   r0   r1   r2   r   r^   rf   rq   r4   r5   r   r   rG   rG   C   s    DH15-1#:("
4r   rG   c                  :    [        U 0 UD6nUR                  5         g r:   )rG   rq   )r   kwds      r   _assert_invertsrw      s    !rAGGIr   c                 V   [         R                  " U 5      [         R                  " U5      [         R                  " U5      p!n U S::  a  [         R                  " S5      $ X:  a  [         R                  " S5      $ [         R                  " SUSS9n[         R                  " X-
  U S-   USS9$ )Nr   r   T)exactx2regularized)r   mpffsubbetainc)kr'   ponemps       r   _binomial_cdfr      sz    jjmVZZ]FJJqM!AAvzz!}	
zz!}KK1D)E>>!%Q5dCCr   c                    US:  a  [         R                  " S5      $ [         R                  " U 5      [         R                  " U5      [         R                  " U5      p!n X-  X-  U-   -  n[         R                  " U S-  US-  USS9nU$ )Nr      Trz   )r   r}   r   )dfndfdrA   ubr]   s        r   _f_cdfr      sm    1uzz!}**S/6::c?FJJqMaC		B
..QA"$
?CJr   c                    Uc  [         R                  R                  n[         R                  " U5         [         R                  " U 5      [         R                  " U5      p[         R
                  " SSU S-   -  SUS-  * U -  5      nX1[         R                  " SU S-   -  5      -  -  nU[         R                  " [         R                  U -  5      [         R                  " SU -  5      -  -  nSU-   sS S S 5        $ ! , (       d  f       g = f)N      ?r         ?r   )	r   mprO   rY   r}   hyp2f1gammasqrtpi)dftrO   facs       r   _student_t_cdfr      s    
{iimm		

2

1AmmCb1fsQTE"H=c26l+++v{{699R<(c"f)===Sy 
		s   B;C99
Dc                     [         R                  " US-  S-
  [         R                  " X -  5      5      nU[         R                  " X-   * S-  5      X-  US-  S-
  -  -  S-  -  nU$ )Nr   r      r   )r   besselir   exp)r   r   ncr]   s       r   _noncentral_chi_pdfr      s^    
..A6;;rt#4
5C6::ik"ADBqD3J#7799CJr   c                 h  ^^ Uc  [         R                  R                  n[         R                  " U 5      [         R                  " T5      [         R                  " T5      sn mm[         R                  " U5         [         R
                  " UU4S jSU /5      nUsS S S 5        $ ! , (       d  f       g = f)Nc                    > [        U TT5      $ r:   )r   )r   r   r   s    r   <lambda>%_noncentral_chi_cdf.<locals>.<lambda>   s    $72r$Br   r   )r   r   rO   r}   rY   quad)rA   r   r   rO   r]   s    ``  r   _noncentral_chi_cdfr      sl    
{iimm

1vzz"~vzz"~IAr2		kkBQFK 
		s   9 B##
B1c                 "    X-  SU -
  U-  -
  U-  $ )Nr   r5   )r   lmbdas     r   _tukey_lmbda_quantiler      s    HA~%u,,r   z0.19c                   $   \ rS rSr\R
                  R                  SS9S 5       rS rS r	S r
\R
                  R                  SS9S 5       rS	 rS
 rS rS rS rS r\R
                  R                  SS9S 5       rS rS r\R
                  R                  SS9S 5       r\R
                  R                  SS9S 5       rS rS rS r\R
                  R                  SS9S 5       r\R
                  R7                  S/ SQ5      S 5       rSrg)
TestCDFlib   F)runc           
      |    [        [        R                  [        S[	        5       [        SS5      [	        5       /SS9  g )Nr   r     -C6?r;   )rw   spbdtrikr   r   r	   r   s    r   test_bdtrikTestCDFlib.test_bdtrik   s-    II	6!T?GI6		r   c           	          [        [        R                  [        S[	        SS5      [        5       [        5       /S/ SQS9  g )Nr   r   r   )NNư>r;   rS   )rw   r   bdtrinr   r	   r   r   s    r   test_bdtrinTestCDFlib.test_bdtrin   s0    IIq$GI6"4		6r   c                 x    [        [        R                  S S[        5       [	        SSSS9[	        SSSSS9/SS	9  g )
Nc                 .    [         R                  " XUSS9$ NTrz   r   r   r   r   rA   s      r   r   )TestCDFlib.test_btdtria.<locals>.<lambda>       FNN1A4Hr   r         Y@Finclusive_ar   r   inclusive_br   r   )rw   r   btdtriar   r   r   s    r   test_btdtriaTestCDFlib.test_btdtria   s=    JJH	3q#59Aqe?A	r   c                 ~    [        [        R                  S S[        SSSS9[	        5       [        SSSSS9/S/ S	QS
9  g )Nc                 .    [         R                  " XUSS9$ r   r   r   s      r   r   )TestCDFlib.test_btdtrib.<locals>.<lambda>   r   r   r   r   r   Fr   r   Hz>)NgC]r2<V瞯<r   )rw   r   btdtribr   r   r   s    r   test_btdtribTestCDFlib.test_btdtrib   s@    JJHCU+WYA5e<>+	-r   c                 ~    [        [        R                  [        S[	        SS5      [        5       [        SSSS9/SS9  g )Nr   d   r   Fr   r   r   )rw   r   fdtridfdr   r	   r   r   r   s    r   test_fdtridfdTestCDFlib.test_fdtridfd   s5    KKAs^WYAs(FG	r   c                 |    [        [        R                  S S[        5       [	        SSSS9[	        SSSS9/S/ SQS	9  g )
Nc                 2    [         R                  " XU-  SS9$ NTr   r|   r   gammaincr   s      r   r   (TestCDFlib.test_gdtria.<locals>.<lambda>       FOOA1$Gr   r        @@Fr   g     @r   Nr   绽|=r   )rw   r   gdtriar   r   r   s    r   test_gdtriaTestCDFlib.test_gdtria   s>    IIGYAs6CU+-*	,r   c                 v    [        [        R                  S S[        SSSS9[	        5       [        SSSS9/SS	9  g )
Nc                 2    [         R                  " XU-  SS9$ r   r   r   s      r   r   (TestCDFlib.test_gdtrib.<locals>.<lambda>  r   r   r   r   r   Fr   r   h㈵>r   )rw   r   gdtribr   r   r   s    r   test_gdtribTestCDFlib.test_gdtrib  s;    IIGCU+WYCU+-	r   c                 |    [        [        R                  S S[        SSSS9[        SSSS9[	        5       /S/ SQS	9  g )
Nc                 2    [         R                  " XU-  SS9$ r   r   r   s      r   r   (TestCDFlib.test_gdtrix.<locals>.<lambda>  r   r   r   r   r   Fr   r   r   r   )rw   r   gdtrixr   r   r   s    r   test_gdtrixTestCDFlib.test_gdtrix  s>    IIGCU+SCU-KY*	,r   c                     [        [        R                  S S[        5       [	        S[
        R                  SSS9[	        SS5      /SS	9  g )
Nc                 0    [         R                  " X U5      $ r:   r   ncdfrA   yzs      r   r   *TestCDFlib.test_nrdtrimn.<locals>.<lambda>!      FKKa0r   r   皙?Fr   g    _g    _Br   r   )rw   r   nrdtrimnr   r   r!   infr   s    r   test_nrdtrimnTestCDFlib.test_nrdtrimn  sB    KK0Ybff%UC 	r   c                     [        [        R                  S S[        [        R
                  * SSSS9[        5       [        SS5      /SS9  g )	Nc                 0    [         R                  " X U5      $ r:   r   r   s      r   r   *TestCDFlib.test_nrdtrisd.<locals>.<lambda>+  r   r   r   
   Fr   g}Ô%ITr   r   )rw   r   nrdtrisdr   r!   r   r   r   s    r   test_nrdtrisdTestCDFlib.test_nrdtrisd(  sC    KK0"&&"%UCYU^ 	r   c           	          [        [        R                  [        [	        SS5      [        S[        R                  5      /SS9  g )Nr   r   r   r   r   )r   r   stdtrr   r	   r   r!   r   r   s    r   
test_stdtrTestCDFlib.test_stdtr2  s/    HHAs^S/0t	=r   c                 f    [        [        R                  [        S[	        5       [        5       /SS9  g )Nr   r   r   )rw   r   stdtridfr   r   r   r   s    r   test_stdtridfTestCDFlib.test_stdtridf9  s$    KK	35!	.r   c           	      p    [        [        R                  [        S[	        SS5      [        5       /SS S/S9  g )Nr   r   r   r   r   )rw   r   stdtritr   r	   r   r   s    r   test_stdtritTestCDFlib.test_stdtrit@  s/    JJq#	*e}		&r   c           
      d    [        [        R                  S S[        5       [	        SS5      /SS9  g )Nc                 :    [         R                  " U S-  US-  SS9$ )Nr   Tr   r   )r,   rA   s     r   r   )TestCDFlib.test_chdtriv.<locals>.<lambda>J  s    1!Fr   r   r   r   r   r   )rw   r   chdtrivr   r	   r   s    r   test_chdtrivTestCDFlib.test_chdtrivG  s(    JJF	6!S>*	7r   c                     [        [        R                  [        S[	        SSSS9[        5       [	        SSSS9/SSSS	9  g )
Nr   r   r   Fr   r   r   r   r'   r;   r<   )rw   r   	chndtridfr   r   r   r   s    r   test_chndtridfTestCDFlib.test_chndtridfM  s@     	LLAs.	As.0E	+r   c                     [        [        R                  [        S[	        SSSS9[        SS5      [        5       /SSS	S
9  g )Nr   r   r   Fr   r   r   r   r   r  )rw   r   	chndtrincr   r   r	   r   r   s    r   test_chndtrincTestCDFlib.test_chndtrincW  s:     	LLAs.q#	JE		+r   c                     [        [        R                  [        S[	        5       [        SS5      [        SSSS9/SSS/ S	QS
9  g )Nr   r   r   Fr   r   r   r   )r   NN)r'   r;   r<   rS   )rw   r   chndtrixr   r   r	   r   r   s    r   test_chndtrixTestCDFlib.test_chndtrix`  s;    KK	6!S>3q#5+IJE)	+r   c                 f   ^ [         R                  " S5      m[        S U4S j[        5       /SS9  g )Nr   c                 0    [         R                  " U S5      $ )Nr   )r   tklmbdarA   s    r   r   4TestCDFlib.test_tklmbda_zero_shape.<locals>.<lambda>m  s    bjjA&r   c                 >   > T[         R                  " U * 5      T-   -  $ r:   )r   r   )rA   ones    r   r   r&  n  s    c6::qb>C/0r   r   r   )r   r}   r   r   )r   r(  s    @r   test_tklmbda_zero_shape"TestCDFlib.test_tklmbda_zero_shapei  s'    jjm&0UG$	 r   c                 p    [        [        R                  [        S[	        5       [        SSSS9/SSSS/S9  g )Nr   iF)r   r   g&.>)rN   r;   rS   rw   r   r$  r   r   r   r   s    r   test_tklmbda_neg_shape!TestCDFlib.test_tklmbda_neg_shapeq  s5    JJ!	3sA59:Td|	%r   c                 j    [        [        R                  [        S[	        5       [        SSSS9/SSS9  g )Nr   r   Fr   r   )rN   r;   r,  r   s    r   test_tklmbda_pos_shape!TestCDFlib.test_tklmbda_pos_shapey  s.    JJ!	3q#59:T		+r   r   )r         ?g       @c                 Z    SU-  n[        [        R                  " U* U/U5      SS/5        g )Nr   ra   r2  )r   r   r$  )r   r   bounds      r   test_tklmbda_lmbda1TestCDFlib.test_tklmbda_lmbda1  s*    %RZZ%7#sDr   r5   N)r/   r0   r1   r2   pytestmarkxfailr   r   r   r   r   r   r   r   r   r  r  r	  r  r  r  r  r   r)  r-  r0  parametrizer5  r4   r5   r   r   r   r      sS    [[5! "6	- [[5! ",, = [[5!. ".&7 [[5!+ "+ [[5!+ "++ % [[5!+ "+ [[Wo6E 7Er   r   ))r   r   )r   r   )r   r   )r   r   )r  r   )chndtrr   )r  r   )r  r   )r  r   )r   r   )ncfdtrr   )ncfdtrir   )
ncfdtridfnr   )
ncfdtridfdr   )	ncfdtrincr   )r   r   )r   r   )r   r   )nbdtrikr   )nbdtrinr   )r   r   )r   r   )pdtrikr   )r  r   )r  r   )r  r   )nctdtrr   )nctdtritr   )	nctdtridfr   )	nctdtrincr   )r$  r   zfunc,numargs)idsc                    [         R                  R                  S5      n[        [        U 5      n UR                  U5       Vs/ s H=  n[        U5      [         R                  [         R                  [         R                  * 4PM?     nn[        R                  " U6  H;  nU " U6 n[        S U 5       5      (       a  [        U[         R                  5        M;  M=     g s  snf )Nl   7'}?J-0 c              3   N   #    U  H  n[         R                  " U5      v   M     g 7fr:   )r!   rW   ).0rA   s     r   	<genexpr>!test_nonfinite.<locals>.<genexpr>  s     )Dqrxx{{Ds   #%)r!   randomdefault_rnggetattrr   floatrX   r   	itertoolsproductanyr   )funcnumargsrngrA   args_choicesr\   r]   s          r   test_nonfiniterY    s     ))

 0
1C2tDADGATUATAU1Xrvvrvvw7ATLU!!<0Dk)D)))bff%  1 Vs   ACc                      [         R                  " SS[        R                  " S5      S-   5      n / SQn[	        X5        g )Ng!?r         4@r   )gyY;@gA@gʾC@g-E@g-oG@gNCEI@g0_{J@gY-L@gjrM@gZǧ9N@g-]fP@gmj#P@ggAQ@gl@Q@gndhR@g$܂R@g@FTxS@gēT@g]gϖT@gc$U@)r   r  r!   aranger   )r]   res_exps     r   test_chndtrix_gh2158r^    s2    
++h299S>$#6
7C5G C!r   c                  h    / SQn / SQn/ SQn/ SQn[         R                  " XU5      n[        XCSSS9  g )N)
MbP?\(\?皙#@b     i'  rc  rb  ra  r`  )
r`  r   r   皙?+?r`  r   r   re  rf  )
~jtX?333333?r      ,  rg  rh  r   ri  rj  )
K ˸@gtI?x9" @g.$Bt+@gO,oq@rk  gZc^?rl  g@gjgdy=ra   r;   r<   )r   rG  r   )dfarrparrtarrdesiredactuals        r   test_nctdtrinc_gh19896rs    s9     EEEDCD#G \\%t,FF%c:r   c                     [         R                  " [         R                  " [        R                  " [         R
                  * [         R
                  * SSS[         R
                  /5      5      5      (       d   e[         R                  " [         R                  " [        R                  " [         R
                  * / SQ5      5      5      (       d   eg )N      ra   r2  )ra   g      ?r   g      ?r2  )r!   allrW   r   r  r   r  r5   r   r   test_stdtr_stdtrit_neg_infrw    sv    66"((288RVVGrvvgtS#rvv-NOPQQQQ66"((2::rvvg/JKLMMMMr   c                     [         R                  " [         R                  [         R                  * SSSSSSSS[         R                  /5      n U S S 2S 4   n [         R                  " [         R                  [         R                  * SSSSSS[         R                  /	5      n[         R
                  " [         R                  " [        R                  " U [         R                  U5      5      5      (       d   e[         R
                  " [         R                  " [        R                  " U [         R                  U5      5      5      (       d   eg )	Ng      $ru  ra   r   r   gH.?r2        $@)
r!   arrayrX   r   
atleast_2drv  rW   r   r   rA  )r   r   s     r   test_bdtrik_nbdtrik_infr|    s    
	tS&"fc4P	RA	!D&	A
	"&&%sFBRVVD	FA66"((299Q23444466"((2::a345555r   zdfn,dfd,nc,f,expected)r   r   r   r   g,]?)r   r   {Gz?r   gsCr:)r   r}  r   r}  gnhUg?)ry  r}  r2  r   g%g{E?)r   r   r}  r}  g 	
1)r2  r   r   r   gڞ^)k;)r2  r}  r   ry  glB?)r2  r}  ry  r}  g)Dt^\,?)ry  r2  r   r   g|?)r   r   r2  r2  g?)r   r   r   ry  r2  )r2  r   r   ry  g*}?c                 F    [        [        R                  " XX#5      USSS9  g )NvIh%<=r   rm  )r   r   r<  )r   r   r   fexpecteds        r   test_ncfdtrr    s    t BIIc.u1Mr   c                   N   \ rS rSr\R
                  R                  S/ SPSPSPSPSPSPS	PS
PSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPS PS!PS"PS#PS$PS%PS&PS'PS(PS)PS*PS+PS,PS-PS.PS/PS0PS1PS2PS3PS4PS5PS6PS7PS8PS9PS:PS;PS<PS=PS>PS?PS@P\R                  " SASBSCSD\R
                  R                  SESF9SG9PSHP5      SI 5       r	SJ r
\R
                  R                  SK/ SLQ/ SMQ/ SNQ/ SOQSPSP\R                  SPSQ/SPSP\R                  * SQSQ//5      SR 5       rSSrgT)U
TestNctdtri+  zdf, nc, x, expected)ra  ffffffrg  gD i?)ra  r  rh  g?)ra  r  r   g7?)ra  r  ri  gU?)ra  RQ?rg  g?)ra  r  rh  gx$p?)ra  r  r   g7?)ra  r  ri  g]ŧe?)ra  ffffff@rg  g樼?)ra  r  rh  g:GF ?)ra  r  r   gpa?)ra  r  ri  gfO!t?)ra  &   rg  g    )ra  r  rh  gQb] )ra  r  r   gy+)ra  r  ri  guQRm?)rb  r  rg  g/C*i?)rb  r  rh  g.b?)rb  r  r   gI'v?)rb  r  ri  g?)rb  r  rg  g?)rb  r  rh  gD-?)rb  r  r   gy0 ?)rb  r  ri  gC?)rb  r  rg  g?)rb  r  rh  g:e!?)rb  r  r   gh?)rb  r  ri  g?)rb  r  rg  g+    )rb  r  rh  gPDp   )rb  r  r   gM)rb  r  ri  ggS>^X#>)rc  r  rg  gNG0i?)rc  r  rh  g%Wح?)rc  r  r   g?)rc  r  ri  r2  )rc  r  rg  g aYҏ?)rc  r  rh  gpku+?)rc  r  r   gZVq?)rc  r  ri  r2  )rc  r  rg  g_a?)rc  r  rh  g+,!?)rc  r  r   gqgb?)rc  r  ri  g?)rc  r  rg  gQ    )rc  r  rh  g%Q   )rc  r  r   gTh-1)rc  r  ri  g¤5)rd  r  rg  geK0i?)rd  r  rh  g?)rd  r  r   gjS?)rd  r  ri  r2  )rd  r  rg  g|S׏?)rd  r  rh  gfG-?)rd  r  r   g^"?)rd  r  ri  r2  )rd  r  rg  gm?)rd  r  rh  g|q]/!?)rd  r  r   g+%αs?)rd  r  ri  r2  )rd  r  rg  gn    )rd  r  rh  gm   rd  r  r   gDdz+Bug in underlying Boost math implementation)reason)marks)rd  r  ri  g>H*c                 H    [         R                  " XU5      n[        XTSSS9  g )Nr  grm  )r   rD  r   )r   r   r   rA   r  results         r   test_gh19896TestNctdtr.test_gh19896S  s!    R 21%u6Br   c                 R    Su  pnSn[        [        R                  " XU5      USS9  g )N)i  r   r   g-^?g+=r   r   r   rD  )r   r   r   rA   r  s        r   test_nctdtr_gh8344TestNctdtr.test_nctdtr_gh8344  s'     	(		"!,hUCr   zdf, nc, x, expected, rtol)g      @g      @g       gG>g:0y5>)r   ry  r2  g'$ <r  )r   g      g       @gjx?r  )ry  r[  rh  ge*mt-r  r2  ra   c                 B    [        [        R                  " XU5      XES9  g )Nr   r  )r   r   r   rA   r  r;   s         r   test_accuracyTestNctdtr.test_accuracy  s     			"!,hBr   r5   N)r/   r0   r1   r2   r7  r8  r:  paramr9  r  r  r!   r   r  r4   r5   r   r   r  r  +  s   P [[2 C50C5.C5 	.C5 	-	C5
 	/C5 	0C5 	-C5 	-C5 	2C5 	2C5 	/C5 	,C5 	,C5 	1C5 	/C5  	-!C5" 	0#C5$ 	.%C5& 	-'C5( 	,)C5* 	0+C5, 	/-C5. 	-/C50 	,1C52 	23C54 	15C56 	.7C58 	*9C5: 	+;C5< 	,=C5> 	0?C5@ 	-AC5B 	/CC5D 	-EC5F 	,GC5H 	IC5J 	0KC5L 	.MC5N 	,OC5P 	QC5R 	1SC5T 	/UC5V 	-WC5X 	*YC5Z 	*[C5\ 	*]C5^ 	/_C5` 	-aC5b 	0cC5d 	.eC5f 	-gC5h 	iC5j 	0kC5l 	.mC5n 	-oC5p 	qC5r 	2sC5t 	1uC5v 	.wC5x 	yC5z 	*{C5| 	+}C5~ 	S"c#:!;;,,L - N	OC5D 	.EC5 CHCICHCD [[#	4	8	3	7
b"&&#s	#
b266'3	$	
	C	Cr   r  r:   )-r3   rR  numpyr!   numpy.testingr   r   r7  scipy.specialspecialr   scipy.special._testutilsr   r   r   scipy.special._mptestutilsr   r	   r
   r   r   r   ImportErrorr   r7   rG   rw   r   r   r   r   r   r   r8  slowr   funcsr:  rY  r^  rs  rw  r|  r  r  r%  s   0r   <module>r     s  "   7  , ,; ;%
 $
4 
4M4 M4`
D-
 vvxE xE  xEv 	F 54I5aqT54IJ K$"$;N6 263175310-#13+N+N\EC ECW  %8$F%V 5Js   D5 ?E
5EE