
    Cpj+                         S SK rS SKJr  SSKJrJrJr  SSKJ	r	  SSK
Jr  SSKJr  S SKJr  S S	KJrJrJrJrJrJr  S SKJs  Jr   " S
 S5      rS rSS jrS r  SS jrg)    N)stats   )_get_pvalue	_rankdata_SimpleNormal)
_morestats)_broadcast_arrays)_get_wilcoxon_distr)_get_nan)array_namespace
xp_promotexp_sizeis_jax	is_marray_count_nonmaskedc                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)WilcoxonDistribution   c                     [         R                  " U5      R                  [        SS9nXl        [         R
                  " U5       Vs0 s H  o"[        U5      _M     snU l        g s  snf )NFcopy)npasarrayastypeintnuniquer
   _dists)selfr   nis      Q/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/scipy/stats/_wilcoxon.py__init__WilcoxonDistribution.__init__   sN    JJqM  5 1=?YYq\J\r.r22\JJs   A%c                 L    U R                   U   nUS US-    R                  5       $ Nr   r   sumr   kr   pmfss       r!   _cdf1WilcoxonDistribution._cdf1   s(    {{1~FQU|!!    c                 V    [         R                  " U R                  [        /S9" X5      $ N)otypes)r   	vectorizer+   floatr   r)   r   s      r!   _cdfWilcoxonDistribution._cdf   s    ||DJJw7==r-   c                 D    U R                   U   nX1S  R                  5       $ )Nr&   r(   s       r!   _sf1WilcoxonDistribution._sf1   s    {{1~Bx||~r-   c                 V    [         R                  " U R                  [        /S9" X5      $ r/   )r   r1   r7   r2   r3   s      r!   _sfWilcoxonDistribution._sf    s    ||DIIug6q<<r-   c                 @    U R                   U R                   S-   -  S-  $ )Nr      )r   )r   s    r!   meanWilcoxonDistribution.mean#   s    vv!$q((r-   c                     [         R                  " U5      R                  [        SS9nU R	                  5       n[         R
                  " UR                  [         R                  S9nXU4$ )NFr   dtype)r   r   r   r   r>   emptyshapefloat64r   r)   mnouts       r!   _prepWilcoxonDistribution._prep&   sL    JJqM  5 1YY[hhqwwbjj1czr-   c                    ^  T R                  U5      u  pn[        R                  " X:*  UT R                  4T R                  U 4S j5      S   $ )Nc                 4   > STR                  U S-   U5      -
  $ r%   )r:   r)   r   r   s     r!   <lambda>*WilcoxonDistribution.cdf.<locals>.<lambda>1   s    TXXac1--r-    )rI   xpxapply_wherer   r4   rF   s   `   r!   cdfWilcoxonDistribution.cdf,   sH    ZZ]
sGa[II-/ 023 	3r-   c                    ^  T R                  U5      u  pn[        R                  " X:*  UT R                  4T R                  U 4S j5      S   $ )Nc                 4   > STR                  U S-
  U5      -
  $ r%   )r4   rM   s     r!   rN   )WilcoxonDistribution.sf.<locals>.<lambda>8   s    TYYqsA..r-   rP   )rI   rQ   rR   r   r:   rF   s   `   r!   sfWilcoxonDistribution.sf3   sH    ZZ]
sGa[HH.0 134 	4r-   )r   r   N)__name__
__module____qualname____firstlineno__r"   r+   r4   r7   r:   r>   rI   rS   rX   __static_attributes__rP   r-   r!   r   r      s0    K
">=)34r-   r   c           	      ^   [        X5      n[        XSUS9u  p[        R                  " U5      S   nSn[        R                  " UR
                  [        R                  5      (       a  UR                  S:w  a  [        U5      e[        U5      nSn[        [        SS 5      =(       d    [        R                  R                  n	 Uc  U n
O[        X4XgS9u  pX-
  n
UR                  XS	5      n
S
nUb+  U R                  U   UR                  U   :w  a  [        U5      eSnUR!                  U
R
                  S5      (       d  [        U5      e[#        U5      R%                  5       n1 SknSU S3nX,;  a  [        U5      eSS1nSU S3nX=;  a  [        U5      e[#        U5      R%                  5       n1 SknSU S3nXN;  a  [        U5      e['        U[(        R*                  5      (       d  1 SknSU S3nX_;  a  [        U5      eUS:X  a  SOSn[-        U5      (       a  [#        U5      S;   a  Sn[        U5      e[/        U5      (       a  US:w  d  US:w  a  Sn[        U5      eUR1                  U
S:H  S S9nUS:X  a  U
R                  S	   S:  a  SnXX4XVUUU4	$ ! U	 a  nU	" U5      UeS nAff = f)NT)force_floatingxprP   z`axis` must be an integer.r   z<`axis` must be compatible with the shape(s) of `x` (and `y`)	AxisError)axisra   z3`x` and `y` must have the same length along `axis`.z<`x` (and `y`, if provided) must be an array of real numbers.zreal floating>   prattwilcoxzsplitz`zero_method` must be one of .Fz`correction` must be one of >   lessgreater	two-sidedz`alternative` must be one of >   autoexact
asymptoticz`method` must be one of z- or an instance of `stats.PermutationMethod`.rn   >   rl   rm   zWhen using `wilcoxon` with `jax.numpy` arrays, `method` must be either 'asymptotic' or an instance of `stats.PermutationMethod`.rg   zMOnly `method='asymptotic'`/`zero_method='zsplit'` is compatible with MArrays.rc   rl   2   )r   r   r   r   
issubdtyperB   integerndim
ValueErrorr   getattr
exceptionsrb   r	   moveaxisrD   isdtypestrlower
isinstancer   PermutationMethodr   r   count_nonzero)xyzero_method
correctionalternativemethodrc   ra   messagerb   dezero_methodscorrectionsalternativesmethodsoutput_zn_zeros                     r!   _wilcoxon_ivr   ;   s   		Ba4B7DA::dBD*G==RZZ00DIIN!!t9DLGK.I"--2I2II(9A$aV$>DAAKK$ DG}!''$-7!!LG::agg//!!k"((*K0L-l^1=G&!!-K,[M;G$!!k"((*K3L-l^1=G&!!fe55661-gY 7? ? W%%-t5Hbzzc&k%66V!!}}&L0K84K#!!
 a1f40FAGGBK",:F(FTVVVk  ( a'(s   )J J,	J''J,c                   U R                   nU S:H  nUS:X  a1  [        R                  " U 5      U   R                  UR                  SS9n UR                  U 5      nUR                  UR                  USS9U5      n[        U SS9U-
  n[        UR                  U 5      SSUS9u  pnUR                  XS	S9UR                  XS	S9pUR                  UR                  U S:  U5      U	-  SS9nUR                  UR                  U S:  U5      U	-  SS9nUR                  US:H  5      nUS
:X  au  UR                  UR                  XT5      U	-  SS9S-  n[        R                  " U5      S   R                  U5      n[        R                  " U5      S   R                  U5      nXS-   -  S-  nXS-   -  SU-  S-   -  nUS:X  a  UR                  UR                  USS9U5      n[        R                  " U5      S   R                  UUS-   -  S-  5      n[        R                  " U5      S   R                  UUS-   -  SU-  S-   -  5      nUR                  U5      n[        R                  " U5      S   R                  UR                  USS95      n[        R                  " U5      U   R                  S5      nUR                  US-  U-
  SS9nUR!                  UUS-  -
  S-  5      nUS;   a	  UU-
  U-  nOUR                  nXUUX4$ )Nr   rf   Tr   rd   ro   average)return_tiesra   Frg      .g      ?g      ?g       @re   ).r   g              )rn   rl   )rB   rQ   atsetnanisnanr   r}   r   r   absr'   anyaddsubtract
zeros_likesqrt)r   r   r   ra   rB   i_zerosi_nann_nancountr_tr_plusr_minushas_tiesr_zero_2rG   ser   	t_i_zerostie_correctzs                         r!   _wilcoxon_statisticr      s   GGEAvGh
 FF1Ig""266"5HHQKEIIb&&u2&6>EQR(50Eq	9$2FGA!99QE9*BIIaUI,KqVVBIIa!eU+a/bV9FffRYYq1ue,q0rf:Gvva1f~Hh 66"))G3a7b6AAE$((2&&/#&**84	"*		$B	"*	eb	1Bg 2++G"+=uEVVBZ_%%f&<t&CDVVBZ_%%f&<Vb@P&QR
 MM'*	FF9%f-11"&&r&2JK	FF1Ii $$R(&&A&+K	"{1}$*	+B ''b[BFFB522r-   c                 @    US:X  a  gUS:X  a  gUR                  U 5      $ )Nrj   r   ri   rd   )sign)r   r   ra   s      r!   _correction_signr      s&    i		wwqzr-   c           	        ^^^ [        XTX4TU5      nUu	  nmp4mpin
m[        U5      S:X  a,  [        UTS9n[        R                  " XS9nTS:X  a  Xl        U$ [        UTTTS9u  pnnnnTS:X  a;  U(       d	  U
S:  d  SmO+UR                  S   S::  a  [        R                  " 5       mOSmTS:X  aV  U(       a9  [        UUTS9n[        R                  " U5      S	   R                  US
-  U-  5      n[        U[        5       UTS9nGOQTS:X  Ga  [!        U5      n["        R$                  " U5      nUS:X  a&  UR'                  ["        R(                  " U5      5      nOUS:X  a&  UR+                  ["        R,                  " U5      5      nOxS["        R.                  " UR+                  ["        R,                  " U5      5      UR'                  ["        R(                  " U5      5      5      -  n["        R0                  " USS5      nTR%                  UUR2                  S9nO>[        R4                  " U4UUU4S j4SS0TR7                  5       DUSS.D6R8                  nUS:X  a  TR/                  X5      OUnUS:X  a  TS:X  a  TR;                  U5      * OUnUR<                  S:X  a  US   OUnUR<                  S:X  a  US   OUn[        R                  " UUS9nU	(       a  UR<                  S:X  a  US   OUUl        U$ )Nr   ra   )	statisticpvaluern   rl   rm   rd      .g      ?ri   rj   r   r   rA   c                 "   > [        U TTTS9S   $ )Nr   r   )r   )r   rc   r   ra   r   s     r!   rN   _wilcoxon_nd.<locals>.<lambda>  s    "5aQS"TUV"Wr-   permutation_typesamples)r   rc   rk   rP   )r   r   r   r   WilcoxonResult
zstatisticr   rD   r   r|   r   rQ   r   r   r   r   r   r   r   rS   ceilrX   floorminimumcliprB   permutation_test_asdictr   r   rs   )r~   r   r   r   r   r   rc   tempr   r   r   NaNresr   r   r   r   r   r   r   pdist	r_plus_npr   ra   s     `  `                  @r!   _wilcoxon_ndr      s    k:FDQDRVOA{JVTVRqzQqR ''#B\! N
.A	6;2/+FRE8 FQJFWWR[B
 ,,.F "F#A{r:Dq	#''s
R8A=?KB?	7	#E* JJv&	& +,AI%+,ABJJtwwrxx	':;#xx	(:;= =A1a AJJqJ(""DW. '. +1..*:. $"	. /5f	 	
 0;K/G

6+VI"k1f6L
STA!*1!4	")I1"!A

#
#i
BC"#&&A+21Jr-   )rf   )Nrf   Trk   rl   r   ) numpyr   scipyr   	_stats_pyr   r   r    r   _axis_nan_policyr	   
_hypotestsr
   scipy._lib._utilr   scipy._lib._array_apir   r   r   r   r   r   scipy._external.array_api_extra	_externalarray_api_extrarQ   r   r   r   r   r   rP   r-   r!   <module>r      s\      < <  / + %@ @ - -*4 *4ZHWV>3B >B>?Lr-   