+
    nDjӈ                     
   R t ^ RIt^ RIt^ RIHtHtHt ^ RIt^ RI	H
t ^ RIHtHtHt ^ RIHtHtHtHtHt  ^ RIt ! R R4      t ! R R	4      t ! R
 R4      tR tR tR tR7R ltR tR7R lt R t!]PD                  PF                  ]! ]R4       ! R R4      4       4       t$. R8NR9NR:NR;NR<NR=NR>NR?NR@NRANRBNRCNRDNRENRFNRGNRHNRINRJNRKNRLNRMNRNNRONRPNRQNRRNRSNRTNRUNRVNt%]PD                  PM                  R]%]% U u. uF  q ^ ,          NK  	  up R7      R 4       t'R t(R t)R t*R t+]PD                  PM                  R. RWO. RXO. RYO. RZO. R[O. R\O. R]O. R^O. R_O. R`O. RaO. RbO. RcO.4      R 4       t,]PD                  PM                  R . ReO4      R! 4       t- ! R" R#4      t. ! R$ R%4      t/ ! R& R'4      t0]PD                  PM                  R(R^d.4      R) 4       t1 ! R* R+4      t2]PD                  PM                  R,^ ^ ^ ]Pf                  3^ ^ ^]Pf                  3^ ]Ph                  ^ ]Pf                  3^ ]Ph                  ^]Pf                  3]Ph                  ^ ^ ]Pf                  3]Ph                  ^ ^]Pf                  3]Ph                  ]Ph                  ^ ]Pf                  3]Ph                  ]Ph                  ^]Pf                  3.4      R- 4       t5]PD                  PM                  R.^ ^ ^ ]Pf                  3^ ^ ]Ph                  ]Pf                  3^ ^^ ]Pf                  3^ ^]Ph                  ^ 3]Ph                  ^ ^ ]Pf                  3]Ph                  ^ ]Ph                  ]Pf                  3]Ph                  ^^ ]Pf                  3]Ph                  ^]Ph                  ]Pf                  3.4      R/ 4       t6]PD                  PM                  R0. RfO4      R1 4       t7]PD                  PM                  R2^ R^ ]Pf                  3R]Ph                  ^]Ph                  3R^]Ph                  ]Ph                  3R^]Ph                  ) ]Ph                  ) 3R]Ph                  ]Ph                  ]Ph                  3RR]Ph                  ]Ph                  3R^]Ph                  ) ]Ph                  ) 3R3Rd^]Pf                  3.4      R4 4       t8]PD                  PM                  R5^ ^ ^ ]Pf                  3^ ^^ ]Pf                  3^ ^]Ph                  ]Pf                  3R^^]Pf                  3RR]Ph                  ]Ph                  ) 3RR]Ph                  ) ]Ph                  3.4      R6 4       t9R#   ] d    ]! R4      t EL'i ; iu up i )gz
Test cdflib functions versus mpmath, if available.

The following functions still need tests:

- ncfdtridfn
- ncfdtridfd
- ncfdtrinc
- nctdtridf
- nctdtrinc

N)assert_equalassert_allcloseassert_array_equal)MissingModulecheck_versionFuncData)ArgIntArgget_args	mpf2floatassert_mpmath_equalmpmathc                   0   a  ] tR t^t o RtR tR tRtV tR# )ProbArgz*Generate a set of probabilities on [0, 1].c                "    ^ V n         ^V n        R# )    Nabselfs   &Y/data/cameron/venvs/s3viz/lib/python3.14/site-packages/scipy/special/tests/test_cdflib.py__init__ProbArg.__init__"   s        c                   \        ^V^,          4      p\        P                  ! R\        P                  ! R4      V4      p\        P                  ! RRV^,           RR7      R,          p^\        P                  ! \        P                  ! R4      RV4      ,
          p\        P
                  W4V3,          p\        P                  ! V4      # )z3Return an array containing approximately n numbers.333333?gffffff?F)endpoint:   NNii)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____classdictcell____classdict__s   @r   r   r      s     4
 r   r   c                   ,   a  ] tR t^1t o R tR tRtV tR# )EndpointFilterc                6    Wn         W n        W0n        W@n        R # N)r   r   rtolatol)r   r   r   r;   r<   s   &&&&&r   r   EndpointFilter.__init__2   s    		r   c                   \         P                  ! WP                  ,
          4      V P                  \         P                  ! V P                  4      ,          V P                  ,           8  p\         P                  ! WP
                  ,
          4      V P                  \         P                  ! V P
                  4      ,          V P                  ,           8  p\         P                  ! W#,          R R4      # )FT)r    absr   r;   r<   r   where)r   xmask1mask2s   &&  r   __call__EndpointFilter.__call__8   s    q66z"TYYrvvdff~%=		%IIq66z"TYYrvvdff~%=		%IIxxud33r   )r   r<   r   r;   N)r.   r/   r0   r1   r   rD   r3   r4   r5   s   @r   r8   r8   1   s     4 4r   r8   c                   <   a  ] tR t^>t o RR ltR tR tR tRtV t	R# )_CDFDataNc                   Wn         W n        W0n        W@n        WPn        W`n        Wpn        Wn        Wn        \        V\        4      '       g   R V n        R V n        R # V
f   Ve   \        V
\        4      '       d   Wn        M"V
.\        V P                  4      ,          V n        \        V\        4      '       d	   Wn        R # V.\        V P                  4      ,          V n        R # R V n        R V n        R # r:   )spfuncmpfuncindexargspecspfunc_firstdpsr&   r;   r<   
isinstancelist
endpt_rtol
endpt_atollen)r   rI   rJ   rK   rL   rM   rN   r&   r;   r<   rQ   rR   s   &&&&&&&&&&&&r   r   _CDFData.__init__?   s     
(		'4(("DO"DO#z'=*d++",#-,s4<</@"@*d++",#-,s4<</@"@"DO"DOr   c                   V P                   '       d   V P                  ! V!  p\        P                  ! V4      '       d   \        P                  # \        V4      pW!V P                  &   \        P                  ! V P                  4      ;_uu_ 4        V P                  ! \        V4      !  p\        VP                  4      pR R R 4       V# \        P                  ! V P                  4      ;_uu_ 4        V P                  ! V!  p\        VP                  4      pR R R 4       \        V4      pXWP                  &   V P                  ! \        V4      !  pV#   + '       g   i     T# ; i  + '       g   i     LX; ir:   )rM   rI   r    isnannanrP   rK   r   workdpsrN   rJ   tupler   real)r   argsress   &* r   idmap_CDFData.idmap\   s   ++t$Cxx}}vv:D"))kk5;/) * 
 ))kk4() * :D"D++uT{+C
 *) 
 *)s   /E1&E'E$	'E7	c           	     `   V P                   f   V P                  f   R # . p\        V P                   V P                  V P                  4       F^  w  r#pVf   Vf   VP	                  R 4       K!  Vf   RpMVf   RpVP	                  \        VP                  VP                  W#4      4       K`  	  V# )N        )rQ   rR   ziprL   appendr8   r   r   )r   filtersr;   r<   specs   &    r   get_param_filter_CDFData.get_param_filterp   s    ??"t'> #DOOT__dll SD|t$NN>$&&$&&$EF !T r   c                   \        V P                  V P                  4      pV P                  4       p\	        \        VP                  ^,          4      4      pVP                  ^,          p\        P                  ! WRV P                  3,          P                  VP                  ^ ,          ^4      34      p\        V P                  VW4V P                  V P                  RVR7      P                  4        R# )r   NNNF)param_columnsresult_columnsr;   r<   
vectorizedparam_filterN)r
   rL   r&   re   rY   rangeshaper    hstackrK   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   )rL   r<   rN   rR   rQ   rK   rJ   r&   r;   rI   rM   )T   i  NNNN)
r.   r/   r0   r1   r   r]   re   rq   r3   r4   r5   s   @r   rG   rG   >   s     #:("
4 
4r   rG   c                  <    \        V / VB pVP                  4        R # r:   )rG   rq   )r   kwds   *, r   _assert_invertsrw      s    !rAGGIr   c                 v   \         P                  ! V 4      \         P                  ! V4      \         P                  ! V4      r!p V ^ 8:  d   \         P                  ! ^ 4      # W8  d   \         P                  ! ^4      # \         P                  ! ^VRR7      p\         P                  ! W,
          V ^,           VRR7      # )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                 J   V^ 8  d   \         P                  ! ^ 4      # \         P                  ! V 4      \         P                  ! V4      \         P                  ! V4      r!p W,          W,          V,           ,          p\         P                  ! V ^,          V^,          VRR7      pV# )r   Trz   )r   r}   r   )dfndfdrA   ubr\   s   &&&  r   _f_cdfr      sm    1uzz!}**S/6::c?FJJqMaC		B
..QA"$
?CJr   c           	         Vf   \         P                  P                  p\         P                  ! V4      ;_uu_ 4        \         P                  ! V 4      \         P                  ! V4      r\         P
                  ! RRV ^,           ,          RV^,          ) V ,          4      pW1\         P                  ! RV ^,           ,          4      ,          ,          pV\         P                  ! \         P                  V ,          4      \         P                  ! RV ,          4      ,          ,          pRV,           uuR R R 4       #   + '       g   i     R # ; i)N      ?      ?)	r   mprN   rX   r}   hyp2f1gammasqrtpi)dftrN   facs   &&& r   _student_t_cdfr      s    
{iimm			

2

1AmmCb1fsQTE"H=c26l+++v{{699R<(c"f)===Sy 
			s   C/D77E	c                 ,   \         P                  ! V^,          ^,
          \         P                  ! W ,          4      4      pV\         P                  ! W,           ) ^,          4      W,          V^,          R,
          ,          ,          ^,          ,          pV# )   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                   aa Vf   \         P                  P                  p\         P                  ! V 4      \         P                  ! S4      \         P                  ! S4      up oo\         P                  ! V4      ;_uu_ 4        \         P
                  ! VV3R l^ V .4      pVuuR R R 4       #   + '       g   i     R # ; i)Nc                    < \        V SS4      # r:   )r   )r   r   r   s   &r   <lambda>%_noncentral_chi_cdf.<locals>.<lambda>   s    $72r$Br   )r   r   rN   r}   rX   quad)rA   r   r   rN   r\   s   &ff& r   _noncentral_chi_cdfr      sr    
{iimm

1vzz"~vzz"~IAr2			kkBQFK 
			s    B--B>	c                 J    W,          ^V ,
          V,          ,
          V,          # )r    )r   lmbdas   &&r   _tukey_lmbda_quantiler      s    HA~%u,,r   z0.19c                     a  ] tR t^t o R tR tR t]P                  P                  RR7      R 4       t
R tR tR	 tR
 tR tR t]P                  P                  RR7      R 4       tR tR t]P                  P                  RR7      R 4       t]P                  P                  RR7      R 4       tR tR tR t]P                  P                  RR7      R 4       t]P                  P5                  R. RO4      R 4       tRtV tR# )
TestCDFlibc           	         \        \        P                  \        ^\	        ^R4      \        4       \        4       .R. ROR7       R# )r     -q=Nr;   rR   )NNư>)rw   spbdtrinr   r	   r   r   s   &r   test_bdtrinTestCDFlib.test_bdtrin   s0    IIq$GI6#5		7r   c                    \        \        P                  R  ^ \        4       \	        ^ RRR7      \	        ^ ^RRR7      .RR7       R# )c                 4    \         P                  ! WVR R7      # Trz   r   r   r   r   rA   s   &&&r   r   )TestCDFlib.test_btdtria.<locals>.<lambda>       FNN1A4Hr        r@Finclusive_ar   inclusive_br   r;   N)rw   r   btdtriar   r   r   s   &r   test_btdtriaTestCDFlib.test_btdtria   s=    JJH	3q#59Aqe?A	r   c                    \        \        P                  R  ^\        ^ RRR7      \	        4       \        ^ ^RRR7      .R. ROR7       R# )	c                 4    \         P                  ! WVR R7      # r   r   r   s   &&&r   r   )TestCDFlib.test_btdtrib.<locals>.<lambda>   r   r         Y@Fr   r   Hz>Nr   )NgC]r2<V瞯<)rw   r   btdtribr   r   r   s   &r   test_btdtribTestCDFlib.test_btdtrib   s@    JJHCU+WYA5e<>+	-r   F)runc                    \        \        P                  \        ^\	        ^^d4      \        4       \        ^ ^dRR7      .RR7       R# )r   Fr   r   r   N)rw   r   fdtridfdr   r	   r   r   r   s   &r   test_fdtridfdTestCDFlib.test_fdtridfd   s5    KKAs^WYAs(FG	r   c                    \        \        P                  R  ^ \        4       \	        ^ RRR7      \	        ^ RRR7      .R. ROR7       R# )	c                 @    \         P                  ! WV,          R R7      # Tr   r|   r   gammaincr   s   &&&r   r   (TestCDFlib.test_gdtria.<locals>.<lambda>       FOOA1$Gr        @@Fr   g     @r   Nr   Nr   绽|=)rw   r   gdtriar   r   r   s   &r   test_gdtriaTestCDFlib.test_gdtria   s>    IIGYAs6CU+-*	,r   c                    \        \        P                  R  ^\        ^ RRR7      \	        4       \        ^ RRR7      .RR7       R# )c                 @    \         P                  ! WV,          R R7      # r   r   r   s   &&&r   r   (TestCDFlib.test_gdtrib.<locals>.<lambda>   r   r   r   Fr   r   h㈵>r   N)rw   r   gdtribr   r   r   s   &r   test_gdtribTestCDFlib.test_gdtrib   s;    IIGCU+WYCU+-	r   c                    \        \        P                  R  ^\        ^ RRR7      \        ^ RRR7      \	        4       .R. ROR7       R# )c                 @    \         P                  ! WV,          R R7      # r   r   r   s   &&&r   r   (TestCDFlib.test_gdtrix.<locals>.<lambda>  r   r   r   Fr   r   Nr   r   )rw   r   gdtrixr   r   r   s   &r   test_gdtrixTestCDFlib.test_gdtrix  s>    IIGCU+SCU-KY*	,r   c                    \        \        P                  R  ^ \        4       \	        R\
        P                  RRR7      \	        RR4      .RR7       R# )	c                 0    \         P                  ! W V4      # r:   r   ncdfrA   yzs   &&&r   r   *TestCDFlib.test_nrdtrimn.<locals>.<lambda>      FKKa0r   皙?Fr   g    _Br   r   Ng    _)rw   r   nrdtrimnr   r   r    infr   s   &r   test_nrdtrimnTestCDFlib.test_nrdtrimn  sB    KK0Ybff%UC 	r   c                    \        \        P                  R  ^\        \        P
                  ) ^
RRR7      \        4       \        ^
R4      .RR7       R# )c                 0    \         P                  ! W V4      # r:   r   r   s   &&&r   r   *TestCDFlib.test_nrdtrisd.<locals>.<lambda>  r   r   Fr   }Ô%ITr   r   N)rw   r   nrdtrisdr   r    r   r   r   s   &r   test_nrdtrisdTestCDFlib.test_nrdtrisd  sC    KK0"&&"%UCYU^ 	r   c           	         \        \        P                  \        \	        ^^d4      \        R\        P                  4      .RR7       R# )r   r   r   r   N)r   r   stdtrr   r	   r   r    r   r   s   &r   
test_stdtrTestCDFlib.test_stdtr%  s/    HHAs^S/0t	=r   c                n    \        \        P                  \        ^ \	        4       \        4       .RR7       R# )r   r   r   N)rw   r   stdtridfr   r   r   r   s   &r   test_stdtridfTestCDFlib.test_stdtridf,  s$    KK	35!	.r   c           	     x    \        \        P                  \        ^\	        ^^d4      \        4       .RRR.R7       R# )r   r   Nr   r   )rw   r   stdtritr   r	   r   r   s   &r   test_stdtritTestCDFlib.test_stdtrit3  s/    JJq#	*e}		&r   c           
     l    \        \        P                  R  ^ \        4       \	        ^^d4      .RR7       R# )c                 P    \         P                  ! V ^,          V^,          RR7      # )r   Tr   r   )r+   rA   s   &&r   r   )TestCDFlib.test_chdtriv.<locals>.<lambda>=  s    1!Fr   -C6?r   N)rw   r   chdtrivr   r	   r   s   &r   test_chdtrivTestCDFlib.test_chdtriv:  s(    JJF	6!S>*	7r   c                    \        \        P                  \        ^\	        ^ ^dRR7      \        4       \	        ^ ^dRR7      .RRRR7       R# )r   Fr     r  r   r&   r;   r<   N)rw   r   	chndtridfr   r   r   r   s   &r   test_chndtridfTestCDFlib.test_chndtridfA  s@     	LLAs.	As.0E	+r   c                    \        \        P                  \        ^\	        ^ ^dRR7      \        ^^d4      \        4       .RRRR7       R# )r   Fr   r  r  r   r  N)rw   r   	chndtrincr   r   r	   r   r   s   &r   test_chndtrincTestCDFlib.test_chndtrincK  s:     	LLAs.q#	JE		+r   c                    \        \        P                  \        ^ \	        4       \        ^^d4      \        ^ ^dRR7      .RRR. ROR7       R# )	r   Fr   r  r  r   N)r&   r;   r<   rR   )r   NN)rw   r   chndtrixr   r   r	   r   r   s   &r   test_chndtrixTestCDFlib.test_chndtrixT  s;    KK	6!S>3q#5+IJE)	+r   c                n   a \         P                  ! ^4      o\        R V3R l\        4       .RR7       R# )r   c                 0    \         P                  ! V ^ 4      # )r   )r   tklmbdarA   s   &r   r   4TestCDFlib.test_tklmbda_zero_shape.<locals>.<lambda>a  s    bjjA&r   c                 N   < S\         P                  ! V ) 4      S,           ,          # r:   )r   r   )rA   ones   &r   r   r#  b  s    c6::qb>C/0r   r   r   N)r   r}   r   r   )r   r%  s   &@r   test_tklmbda_zero_shape"TestCDFlib.test_tklmbda_zero_shape]  s'    jjm&0UG$	 r   c                ~    \        \        P                  \        ^ \	        4       \        R^ RR7      .RRRR.R7       R# )r   F)r   r   &.>)rM   r;   rR   Nirw   r   r!  r   r   r   r   s   &r   test_tklmbda_neg_shape!TestCDFlib.test_tklmbda_neg_shapee  s5    JJ!	3sA59:Td|	%r   c                x    \        \        P                  \        ^ \	        4       \        ^ ^dRR7      .RRR7       R# )r   Fr   r   )rM   r;   Nr*  r   s   &r   test_tklmbda_pos_shape!TestCDFlib.test_tklmbda_pos_shapem  s.    JJ!	3q#59:T		+r   r   c                d    ^V,          p\        \        P                  ! V) V.V4      RR.4       R# )r   r`         ?N)r   r   r!  )r   r   bounds   && r   test_tklmbda_lmbda1TestCDFlib.test_tklmbda_lmbda1v  s*    %RZZ%7#sDr   r   N)r   r1         @)r.   r/   r0   r1   r   r   r   pytestmarkxfailr   r   r   r   r   r   r   r  r  r  r  r  r  r&  r+  r.  parametrizer3  r3   r4   r5   s   @r   r   r      s0    7	- [[5! ",, = [[5!. ".&7 [[5!+ "+ [[5!+ "++ % [[5!+ "+ [[Wo6E 7Er   r   zfunc,numargs)idsc                    \         P                  P                  R 4      p\        \        V 4      p VP                  V4       Uu. uF=  p\        V4      \         P                  \         P                  \         P                  ) 3NK?  	  pp\        P                  ! V!   F_  pV ! V!  p\        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       d   \        V\         P                  4       K_  Ka  	  R# u upi )l   7'}?J-0 c              3   N   "   T F  p\         P                  ! V4      x  K  	  R # 5ir:   r    rV   ).0rA   s   & r   	<genexpr>!test_nonfinite.<locals>.<genexpr>  s     )Dqrxx{{Ds   #%TFN)r    randomdefault_rnggetattrr   floatrW   r   	itertoolsproductanyr   )funcnumargsrngrA   args_choicesr[   r\   s   &&     r   test_nonfiniterL    s     ))

 0
1C2tDADGATUATAU1Xrvvrvvw7ATLU!!<0Dk3)D)333)D)))bff%  1 Vs   ADc                      \         P                  ! R ^\        P                  ! R4      R,           4      p . ROp\	        W4       R# )g!?      4@r   N)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_gh2158rQ    s2    
++h299S>$#6
7C5G C!r   c                  p    . ROp . ROp. ROp. ROp\         P                  ! WV4      p\        WCRRR7       R# )	MbP?dy=r`   r;   r<   N)
rS  \(\?皙#@b     i'  rX  rW  rV  rS  )
rS  r   r   皙?+?rS  r   r   rZ  r[  )
~jtX?333333?r      ,  r\  r]  r   r^  r_  )
K ˸@gtI?x9" @g.$Bt+@gO,oq@r`  gZc^?ra  g@gj)r   	nctdtrincr   )dfarrparrtarrdesiredactuals        r   test_nctdtrinc_gh19896rh    s9     EEEDCD#G \\%t,FF%c:r   c                     \         P                  ! \         P                  ! \        P                  ! \         P
                  ) \         P
                  ) RRR \         P
                  .4      4      4      '       g   Q h\         P                  ! \         P                  ! \        P                  ! \         P
                  ) . RO4      4      4      '       g   Q hR# )r1  r`   N      )r`         ?r   g      ?r1  )r    allrV   r   r   r   r  r   r   r   test_stdtr_stdtrit_neg_infrm    sv    66"((288RVVGrvvgtS#rvv-NOPQQQQ66"((2::rvvg/JKLMMMMr   c                     \         P                  ! \         P                  \         P                  ) RRRRRRRR \         P                  .4      p V R	,          p \         P                  ! \         P                  \         P                  ) RRRRRR\         P                  .	4      p\         P
                  ! \         P                  ! \        P                  ! V \         P                  V4      4      4      '       g   Q h\         P
                  ! \         P                  ! \        P                  ! V \         P                  V4      4      4      '       g   Q hR# )
      $@r1  r`   r   r   gH.?Ng      $rj  )rh   N)
r    arrayrW   r   
atleast_2drl  rV   r   bdtriknbdtrik)r   r   s     r   test_bdtrik_nbdtrik_infrt    s    
	tS&"fc4P	RA	&	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_cdfr   c                     \        \        P                  ! WW#4      VR ^ R7       ^ Tu;8  d   ^8  d*   M R# \        \        P                  ! WW$4      VRR7       R# R# )vIh%<=rU  g|=r   N)r   r   ncfdtrncfdtri)r   r   r   fexpected_cdfs   &&&&&r   test_ncfdtr_ncfdtrir{    sL    x BIIc.5qQ 	<!

3R>N r   r[   c           	      :   \         P                  ! R R7      ;_uu_ 4        \        P                  ! \         P                  RR7      ;_uu_ 4        \         P
                  ! V !   RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; iraise)domainr  )matchN)r   errstater6  raisesSpecialFunctionErrorrx  )r[   s   &r   test_ncfdtri_domain_errorr  $  sW     
G	$	$]]222(CCJJ D 
%	$CC 
%	$	$#   /B	A6	$B	6BB		B	c                   R  a  ] tR tRt o ]P
                  P                  R. RNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%NR&NR'NR(NR)NR*NR+NR,NR-NR.NR/NR0NR1NR2NR3NR4NR5NR6NR7NR8NR9NR:NR;NR<NR=NR>NR?NR@NRANRBNRCNRDNRENRFNRGNRHNRINRJNRKN4      R 4       tR tR t	]P
                  P                  R. RLO. RMO. RNO. ROORR]
P                  RR.RR]
P                  ) RR..4      R	 4       t]P
                  P                  R. RPO4      R
 4       tRtV tR# )QTestNoncentralTFunctionsi1  zdf, nc, x, expected_cdfr1  c                P    \         P                  ! WV4      p\        WTR RR7       R# )rv  grU  N)r   nctdtrr   )r   r   r   rA   rz  nctdtr_results   &&&&& r   test_gh19896%TestNoncentralTFunctions.test_gh19896Y  s!    L 		"!,%fMr   c                N    \        \        P                  ! R ^&R4      RRR7       R# )rY  r   gDd:0yE>r   Nr   r   r  r   s   &r   test_gh19896_loose_tolerance5TestNoncentralTFunctions.test_gh19896_loose_tolerance  s    		#r3/1HtTr   c                Z    R ^Rr2pRp\        \        P                  ! WV4      VRR7       R# )r   r   -^?+=r   Nr  )r   r   r   rA   expecteds   &    r   test_nctdtr_gh8344+TestNoncentralTFunctions.test_nctdtr_gh8344  s)    !S(		"!,hUCr   zdf, nc, x, expected, rtolr`   c                J    \        \        P                  ! WV4      WER 7       R# )r   Nr  )r   r   r   rA   r  r;   s   &&&&&&r   test_nctdtr_accuracy-TestNoncentralTFunctions.test_nctdtr_accuracy  s     			"!,hBr   c                L    \        \        P                  ! WV4      VR R7       R# )r   r   N)r   r   nctdtrit)r   r   r   rA   rz  s   &&&&&r   test_nctdtrit&TestNoncentralTFunctions.test_nctdtrit  s     	BL915Ir   r   N)rV  ffffffr\  gD i?)rV  r  r]  g?)rV  r  r   g7?rV  r  r^  gU?)rV  RQ?r\  g?)rV  r  r]  gx$p?)rV  r  r   g7?)rV  r  r^  g]ŧe?)rV  ffffff@r\  g樼?)rV  r  r]  g:GF ?)rV  r  r   gpa?)rV  r  r^  gfO!t?)rV  &   r\  g    )rV  r  r]  gQb] rV  r  r   gy+)rV  r  r^  guQRm?)rW  r  r\  g/C*i?)rW  r  r]  g.b?)rW  r  r   gI'v?)rW  r  r^  g?)rW  r  r\  g?)rW  r  r]  gD-?)rW  r  r   gy0 ?)rW  r  r^  gC?)rW  r  r\  g?)rW  r  r]  g:e!?)rW  r  r   gh?)rW  r  r^  g?)rW  r  r\  g+    )rW  r  r]  gPDp   )rW  r  r   gMrW  r  r^  ggS>^X#>)rX  r  r\  gNG0i?)rX  r  r]  g%Wح?)rX  r  r   g?)rX  r  r^  r1  )rX  r  r\  g aYҏ?)rX  r  r]  gpku+?)rX  r  r   gZVq?)rX  r  r^  r1  )rX  r  r\  g_a?)rX  r  r]  g+,!?)rX  r  r   gqgb?)rX  r  r^  g?)rX  r  r\  gQ    )rX  r  r]  g%Q   )rX  r  r   gTh-1)rX  r  r^  g¤5)rY  r  r\  geK0i?)rY  r  r]  g?)rY  r  r   gjS?)rY  r  r^  r1  )rY  r  r\  g|S׏?)rY  r  r]  gfG-?)rY  r  r   g^"?)rY  r  r^  r1  )rY  r  r\  gm?)rY  r  r]  g|q]/!?)rY  r  r   g+%αs?)rY  r  r^  r1  )rY  r  r\  gn    )rY  r  r]  gm   )rY  r  r^  g>H*)      @g      @g       gG>g:0yU>)r   ro  r1  g'$ <rv  )r   g             @gjx?rv  )ro  rN  r]  ge*mt-rv  )r  )r      r   r  r  r  )r.   r/   r0   r1   r6  r7  r9  r  r  r  r    r   r  r  r3   r4   r5   s   @r   r  r  1  s    P [[6 @90@9.@9 	.@9 	-	@9
 	/@9 	0@9 	-@9 	-@9 	2@9 	2@9 	/@9 	,@9 	,@9 	1@9 	/@9  	-!@9" 	0#@9$ 	.%@9& 	-'@9( 	,)@9* 	0+@9, 	/-@9. 	-/@90 	,1@92 	23@94 	15@96 	.7@98 	*9@9: 	+;@9< 	,=@9> 	0?@9@ 	-A@9B 	/C@9D 	-E@9F 	,G@9H 	I@9J 	0K@9L 	.M@9N 	,O@9P 	Q@9R 	1S@9T 	/U@9V 	-W@9X 	*Y@9Z 	*[@9\ 	*]@9^ 	/_@9` 	-a@9b 	0c@9d 	.e@9f 	-g@9h 	i@9j 	0k@9l 	.m@9n 	-o@9p 	q@9r 	2s@9t 	1u@9v 	.w@9x 	y@9z 	*{@9| 	+}@9~ 	.@9 @BNC@BNUD [[#	4	8	3	7
b"&&#s	#
b266'3	$	
	C	C [[6 9 JJr   r  c                     a  ] tR tRt o ]P
                  P                  R]P                  ]P                  .4      ]P
                  P                  R]
P                  ^^3^]
P                  ^3^^]
P                  3]
P                  ]
P                  ^3]
P                  ^]
P                  3^]
P                  ]
P                  3]
P                  ]
P                  ]
P                  3.4      R 4       4       t]P
                  P                  R. RO4      R 4       t]P
                  P                  R. RO4      R 4       t]P
                  P                  R. RO4      R 4       tR	tV tR
# )TestNegativeBinomialFunctionsi  functionr[   c                J    \         P                  ! V! V!  4      '       g   Q hR # r:   r=  )r   r  r[   s   &&&r   test_nan_propagation2TestNegativeBinomialFunctions.test_nan_propagation  s     xx$((((r   c           	     :   \         P                  ! R R7      ;_uu_ 4        \        P                  ! \         P                  RR7      ;_uu_ 4        \         P
                  ! V!   RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; ir}  )r   r  r6  r  r  nbdtrinr   r[   s   &&r   test_domain_error_nbdtrin7TestNegativeBinomialFunctions.test_domain_error_nbdtrin  W     [[((r66hGG

D! H )(GG )((r  c           	     :   \         P                  ! R R7      ;_uu_ 4        \        P                  ! \         P                  RR7      ;_uu_ 4        \         P
                  ! V!   RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; ir}  )r   r  r6  r  r  rs  r  s   &&r   test_domain_error_nbdtrik7TestNegativeBinomialFunctions.test_domain_error_nbdtrik  r  r  zk, y, p, n, rtolc                    \        \        P                  ! WV4      WE4       \        \        P                  ! W$V4      W4       R # r:   )r   r   r  rs  )r   r   r   r   r&   r;   s   &&&&&&r   test_inverses+TestNegativeBinomialFunctions.test_inverses  s.    " 	

1+Q5

1+Q5r   r   N)	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  ))   g    ?rk  r  V瞯<)
   gq51r]  d   r   )r  gC8{7?r]  r  r  )r   g΋gל0rS     g+<)r   gj?r[  r^  r   )  g_?r   r^  r  )r   g|=r   r  r  )r.   r/   r0   r1   r6  r7  r9  r   r  rs  r    rW   r  r  r  r  r3   r4   r5   s   @r   r  r    sB    [[Z"**bjj)AB[[V
&&!Q!RVVQ!Q
&&"&&!	rvvq"&&1Arvvrvv3F
&&"&&"&&	!	#
) C) [[V	'
"
"
 [[V	
"
"
 [[/	67
67
6r   r  c                     a  ] tR tRt o R t]P                  P                  R. RO4      R 4       t]P                  P                  RRR^]	P                  3]	P                  ^3.4      R 4       t]P                  P                  R]P                  ]P                  ]P                  ]P                   .4      ]P                  P                  R. RO4      R	 4       4       t]P                  P                  R]P                  ]P                  ]P                  ]P                   .4      ]P                  P                  R]	P$                  ^^3^]	P$                  ^3^^]	P$                  3]	P$                  ]	P$                  ^3]	P$                  ^]	P$                  3^]	P$                  ]	P$                  3]	P$                  ]	P$                  ]	P$                  3.4      R
 4       4       t]P                  P                  R^^ ^]	P$                  3^^ ]	P                  ]	P$                  3^]	P                  ^]	P$                  3^]	P                  ]	P                  ^ 3^^]	P                  ^ 3]	P                  ^ ^]	P$                  3]	P                  ^]	P                  ]	P$                  3]	P                  ^^^3]	P                  ]	P                  ]	P                  ]	P$                  3.	4      R 4       tRtV tR# )!TestNoncentralChiSquaredFunctionsi  c                   \         P                  ! . RO. RO. RO. RO. R	O. R
O. RO. RO. RO. RO. RO. RO. RO.4      p\        P                  ! VR,          VR,          VR,          4      p\	        W!R,          RR7       \        P
                  ! VR,          VR,          VR,          4      p\	        VRR VRR1^ 3,          RR7       \        P                  ! VR,          VR,          VR,          4      p\	        VRR VRR1^3,          RR7       \        P                  ! VR,          VR,          VR,          4      p\	        VRR VRR1^3,          RR7       R# )      9@rv  r   Nr  )r  rN    gL94)r  r5     g7Fh9)rS  r5        D@ggåc;){Gz?r5  r  g	;)rN  r  k   g8x@x>)g     6@r  r  gg1\>>)r  r  r  g`>)r  r  r1  gp!P?)g     u@r   ro  g j
?)r         +@ro  g]?)g     @rN  r  g4ۙ?)g     b@r  ro  g?)g      d@r  ro  r1  )rh   r   )rh   r   )rh   r   )rh   r  )r    rp  r   chndtrr   r  r  r  )r   r,   cdfrA   r   r   s   &     r   .test_chndtr_and_inverses_against_wolfram_alphaPTestNoncentralChiSquaredFunctions.test_chndtr_and_inverses_against_wolfram_alpha  s"    999:999666666
  iitfTlF4LAD\6 KKtfTlF4LA#2ssAvT:\\&,tfTlC3BQd;\\&,tfTlC3BQd;r   z+x, df, nc, expected_cdf, rtol_cdf, rtol_invc                   \         P                  ! WV4      p\        WtVR 7       \        \         P                  ! WBV4      WR 7       \        \         P                  ! WV4      W&R 7       \        \         P
                  ! WV4      W6R 7       \        \         P                  ! WrV4      WR 7       \        \         P                  ! WV4      VRR 7       \        \         P
                  ! WV4      VRR 7       R# )r   r   r   N)r   r  r   r  r  r  )r   rA   r   r   rz  rtol_cdfrtol_invchndtr_results   &&&&&&& r   
test_tails,TestNoncentralChiSquaredFunctions.test_tails.  s     		!,(CLb91LQb92MQL92M 	Mr:AMQr:BTJQM:BTJr   zx, dfc                t    \        \        P                  ! W^ 4      \        P                  ! W!4      RR7       R# )r   r   r   N)r   r   r  chdtr)r   rA   r   s   &&&r   %test_chndtr_with_nc_zero_equals_chdtrGTestNoncentralChiSquaredFunctions.test_chndtr_with_nc_zero_equals_chdtrE  s#     			!+RXXb_5Ir   funr[   c           	        \         P                  ! R R7      ;_uu_ 4        \        P                  ! \         P                  RR7      ;_uu_ 4        V! V!   RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; ir}  )r   r  r6  r  r  )r   r[   r  s   &&&r   test_domain_error3TestNoncentralChiSquaredFunctions.test_domain_errorK  sR     [[((r66hGGT
 H )(GG )((s#   /A;A(	A;(A83A;;B	c                J    \         P                  ! V! V!  4      '       g   Q hR # r:   r=  )r   r  r[   s   &&&r   r  6TestNoncentralChiSquaredFunctions.test_nan_propagationW  s     xxT
####r   zx, df, nc, expectedc                L    \        \        P                  ! WV4      VR R7       R# r   r   N)r   r   r  )r   rA   r   r   r  s   &&&&&r   test_chndtr_edge_cases8TestNoncentralChiSquaredFunctions.test_chndtr_edge_casesb  s     			!,hUCr   r   N))r      2   g
8DLrv  rv  )r   rs   r  g"rv  rv  )r   r  r  ggI˘rv  rv  )g     @g     j@r   grd\\"rT  rT  )   r  r   gk?-a=r  )r  r_  r   g;?rv  r   )ix  r  r   g.?rv  r)  )r  r  r  g#%?rv  dy=)r   r  )r   r   )r  r  r  r  r  r  r  )r.   r/   r0   r1   r  r6  r7  r9  r  r    r   r  r   r  r  r  r  r  rW   r  r  r3   r4   r5   s   @r   r  r    s    <h [[5	;

K

K [[W	!RVVrvvqk2JJ [[U	BKKr||< [[V	1	
 [[U	BKKr||< [[V
&&!Q!RVVQ!Q
&&"&&!	rvvq"&&1Arvvrvv3F
&&"&&"&&	!	#
$$ [[
Q266	
Q	
RVVQ	
RVVRVVQ	
Q	
&&!Q	
&&!RVVRVV	$
&&!Q	
&&"&&"&&"&&	)	+DDr   r  rA   c                 B    \         P                  ! ^V 4      ^ 8X  g   Q hR# r   N)r   r  r"  s   &r   !test_chdtriv_p_equals_1_returns_0r  r  s    ::aq   r   c                      a  ] tR tRt o ]P
                  P                  RRR.4      R 4       t]P
                  P                  RR4      R 4       tR t	R t
]P
                  P                  R. RO4      R	 4       tR
tV tR# )
TestPdtrikiw  zp, m, expectedc                @    \         P                  ! W4      V8X  g   Q hR # r:   )r   pdtrik)r   r   r'   r  s   &&&&r   test_edge_casesTestPdtrik.test_edge_casesx  s     yy(***r   r'   c                l    \         P                  ! \        P                  ! ^V4      4      '       g   Q hR# r  )r    rV   r   r  )r   r'   s   &&r   test_p_equals_1_returns_nan&TestPdtrik.test_p_equals_1_returns_nan~  s!    xx		!Q((((r   c                    \         P                  ! ^ .R.R... RO4      p\        V\        P                  ! R4      4       R# )r   rk  gffffff?N)r   g#B;r   )r  r  )r   r  r   r    zeros)r   r   s   & r   test_small_probabilities#TestPdtrik.test_small_probabilities  s3    IIsTFTF+-=>1bhhv./r   c                    . ROp^p\         P                  ! W!4      p\        \         P                  ! W14      VRR7       R# )r  r   r   N)r  r  r  )r   pdtrr   r  )r   r'   r   r   s   &   r   test_roundtrip_against_pdtr&TestPdtrik.test_roundtrip_against_pdtr  s-    GGAM		!7r   zp, m, kc                J    \        \        P                  ! W4      VR R7       R# r  )r   r   r  )r   r   r'   r   s   &&&&r   test_accuracyTestPdtrik.test_accuracy  s     			!7r   r   N)r   r   r   )r   r   r   )r   r   r  ))gG:Ї7r  r   )g;(&?r  c   )gkͧ1r  r  )g-i i_ )r.   r/   r0   r1   r6  r7  r9  r  r  r  r  r	  r3   r4   r5   s   @r   r  r  w  s     [[-))+,+,+ [[S,/) 0)0
8 [[YIJ
8J
8r   r  za, b, p, refc                 H    \        \        P                  ! WV4      V4       R # r:   )r   r   r   )r   r   r   refs   &&&&r   test_gdtrix_edge_casesr         1#S)r   zp, b, x, refc                 H    \        \        P                  ! WV4      V4       R # r:   )r   r   r   )r   r   rA   r  s   &&&&r   test_gdtria_edge_casesr    r  r   z
y, n, p, kc                 L    \        \        P                  ! WV4      VR R7       R# )r  r   N)r   r   rr  )r   r&   r   r   s   &&&&r   test_bdtrikr    s     BIIaA&6r   zp, std, x, refr   c                 H    \        \        P                  ! WV4      V4       R # r:   )r   r   r   )r   stdrA   r  s   &&&&r   test_nrdtrimn_edge_casesr    s     QQ'-r   zmn, p, x, refc                 H    \        \        P                  ! WV4      V4       R # r:   )r   r   r   )mnr   rA   r  s   &&&&r   test_nrdtrisd_edge_casesr    s     RA&,r   r:   )r   r  )r   r  )rr  r  )r   r  )r  r   )r  r  )r  r  )r  r  )r  r  )r   r  )rw     )rx  r  )
ncfdtridfnr  )
ncfdtridfdr  )	ncfdtrincr  )r   r  )r   r  )r   r  )rs  r  )r  r  )r   r  )r   r  )r  r   )r   r   )r  r   )r  r   )r  r  )r  r  )	nctdtridfr  )rb  r  )r!  r   )r   r   r   r   g,]?)r   r   r  r   gsCr:)r   r  r   r  gnhUg?)ro  r  r1  r   g%g{E?)r   r   r  r  g 	
1)r1  r   r   r   gڞ^)k;)r1  r  r   ro  glB?)r1  r  ro  r  g)Dt^\,?)ro  r1  r   r   g|?)r   r   r1  r1  g?)r   r   r   ro  r1  )r1  r   r   ro  g*}?)g0.++r  r   r   g0J?r  ))rj  r   r   r   )r   rj  r   r   )r   r   rj  r   )r   r   r   r  )r   r   r   r  ))ga/r  r  r  )gUr  r  r  )gcR?r  r   iD  )gW"K?r  r  r  ):r2   rE  numpyr    numpy.testingr   r   r   r6  scipy.specialspecialr   scipy.special._testutilsr   r   r   scipy.special._mptestutilsr   r	   r
   r   r   r   ImportErrorr   r8   rG   rw   r   r   r   r   r   r   r7  slowr   funcsr9  rL  rQ  rh  rm  rt  r{  r  r  r  r  r  r  rW   r   r  r  r  r  r  r"  s   0r   <module>r(     sg     K K  , ,; ;%
 $
4 
4M4 M4`
D-
 vvqE qE  qEh 	 	 	  	 	 	
  	  	  	  	  	  	  	  	  	  	  	  ! 	" # 	$ % 	& ' 	( ) 	* + 	, - 	. / 	0 1 	2 3 	4 5 	6 7 	8 9 	: ; 	< = 	> ? 	F 54I5aqTT54IJ K$"$;N6 263175310-#1/"/O#"/Ob 

PJ PJf16 16hwD wDt sCj)! *!8 8@ 1bff1bff266266VVQ266VVQ266VVRVVQVVRVVQ	* 	*	* 1bff2662661bff2661VVQ266VVQVVQ266VVQ	* 	*	*  ( 77 )Q"&&!RVV!RVVRVV!bffWrvvg"&&"&&"&&!#rvvrvv!bffWrvvg"a	, 	.	. 1bff1bff266266!Q#rvvw#w+ --q  %8$F%H 5Js   U =U'U$#U$