
    \ci(                         d dl Zd dlmZ ddlmZmZmZ ddlm	Z	 ddl
mZ ddlmZ d dlmZ d d	lmZmZmZ d dlmc mZ  G d
 d          Zd ZddZd Z	 	 ddZdS )    N)stats   )_get_pvalue	_rankdata_SimpleNormal)
_morestats)_broadcast_arrays_get_wilcoxon_distr)_get_nan)array_namespace
xp_promotexp_sizec                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )WilcoxonDistributionc                     t          j        |                              t          d          }|| _        d t          j        |          D             | _        d S )NFcopyc                 .    i | ]}|t          |          S  r
   ).0nis     e/var/www/html/mdtn/previsions/meteo_cartes/venv/lib/python3.11/site-packages/scipy/stats/_wilcoxon.py
<dictcomp>z1WilcoxonDistribution.__init__.<locals>.<dictcomp>   s#    JJJrr.r22JJJ    )npasarrayastypeintnunique_dists)selfr    s     r   __init__zWilcoxonDistribution.__init__   sJ    JqMM  5 11JJRYq\\JJJr   c                 Z    | j         |         }|d |dz                                            S Nr   r"   sumr#   kr    pmfss       r   _cdf1zWilcoxonDistribution._cdf1   s+    {1~FQUF|!!!r   c                 X     t          j        | j        t          g          ||          S N)otypes)r   	vectorizer,   floatr#   r*   r    s      r   _cdfzWilcoxonDistribution._cdf   s'    7r|DJw7771===r   c                 T    | j         |         }||d                                          S )Nr'   r)   s       r   _sf1zWilcoxonDistribution._sf1   s#    {1~ABBx||~~r   c                 X     t          j        | j        t          g          ||          S r.   )r   r0   r5   r1   r2   s      r   _sfzWilcoxonDistribution._sf   s'    6r|DIug666q!<<<r   c                 ,    | j         | j         dz   z  dz  S )Nr      )r    )r#   s    r   meanzWilcoxonDistribution.mean"   s    v!$q((r   c                     t          j        |                              t          d          }|                                 }t          j        |j        t           j                  }|||fS )NFr   dtype)r   r   r   r   r:   emptyshapefloat64r#   r*   mnouts       r   _prepzWilcoxonDistribution._prep%   sS    JqMM  5 11YY[[hqwbj111"czr   c                                            |          \  }}}t          j        ||k    | j        f j         fd          d         S )Nc                 <    d                     | dz   |          z
  S r&   )r7   r*   r    r#   s     r   <lambda>z*WilcoxonDistribution.cdf.<locals>.<lambda>0   s    TXXac1--- r   r   )rD   xpxapply_wherer    r3   rA   s   `   r   cdfzWilcoxonDistribution.cdf+   sV    ZZ]]
2sGa[I----/ / 023 	3r   c                                            |          \  }}}t          j        ||k    | j        f j         fd          d         S )Nc                 <    d                     | dz
  |          z
  S r&   )r3   rG   s     r   rH   z)WilcoxonDistribution.sf.<locals>.<lambda>7   s    TYYqsA... r   r   )rD   rI   rJ   r    r7   rA   s   `   r   sfzWilcoxonDistribution.sf2   sV    ZZ]]
2sGa[H....0 0 134 	4r   N)__name__
__module____qualname__r$   r,   r3   r5   r7   r:   rD   rK   rN   r   r   r   r   r      s        K K K
" " "> > >  = = =) ) )  3 3 34 4 4 4 4r   r   c           	          t          | |          }t          | |d|          \  } }t          j        |          d         }d}t          j        |j        t          j                  r|j        dk    rt          |          t          |          }d}t          t          dd           pt          j        j        }		 || }
nt          | |f||          \  } }| |z
  }
|                    |
|d	          }
n# |	$ r} |	|          |d }~ww xY wd
}|+| j        |         |j        |         k    rt          |          d}|                    |
j        d          st          |          t#          |                                          }h d}d| d}||vrt          |          ddh}d| d}||vrt          |          t#          |                                          }h d}d| d}||vrt          |          t'          |t(          j                  sh d}d| d}||vrt          |          |dk    rdnd}|                    |
dk    d           }|dk    r|
j        d	         dk    rd}|
||||||||f	S )NT)force_floatingxpr   z`axis` must be an integer.r   z<`axis` must be compatible with the shape(s) of `x` (and `y`)	AxisError)axisrT   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`.ra   rV   r_   2   )r   r   r   r   
issubdtyper=   integerndim
ValueErrorr   getattr
exceptionsrU   r	   moveaxisr?   isdtypestrlower
isinstancer   PermutationMethodcount_nonzero)xyzero_method
correctionalternativemethodrV   rT   messagerU   dezero_methodscorrectionsalternativesmethodsoutput_zn_zeros                     r   _wilcoxon_ivr   :   s   	A		Ba4B777DAq:dBD*G=RZ00 "DINN!!!t99DLGK..I"-2II(9AA$aV$2>>>DAqAAKK4$$ ( ( (i  a'( DG}!'$-77!!!LG::ag// "!!!k""((**K000L=l===G,&&!!!-K;[;;;G$$!!!k""((**K333L=l===G,&&!!!fe566 &111?g ? ? ?  W%%%--tt5H
 a1f400FAGBK",,k:{FD(FTVVVs   :8C3 3D	8DD	rY   c                4   | j         }| dk    }|dk    r4t          j        |           |                             |j        d          } |                    |           }|                    |d          }|                    | j        d         |z
  |          }t          |
                    |           dd|          \  }	}
|                    |	|d	          |                    |
|d	          }
}	|                    |                    | dk    |          |	z  d          }|                    |                    | dk     |          |	z  d          }|                    |
dk              }|d
k    r|                    |                    ||          |	z  d          dz  }t          j        |          d                             |          }t          j        |          d                             |          }||dz   z  dz  }||dz   z  d|z  dz   z  }|dk    r!|                    |                    |d          |          }t          j        |          d                             ||dz   z  dz            }t          j        |          d                             ||dz   z  d|z  dz   z            }|                    |          }t          j        |          d                             |                    |d                    }t          j        |
          |                             d          }
|                    |
dz  |
z
  d          }|                    ||dz  z
  dz            }|dv r	||z
  |z  }n|j        }||||||fS )Nr   rY   Tr   rW   rb   average)return_tiesrT   FrZ      .g      ?g      ?g       @rX   ).r   g              )ra   r_   )r=   rI   atsetnanisnanrp   r   r?   r   absr(   anyaddsubtract
zeros_likesqrt)rx   rv   rs   rT   r=   i_zerosi_nann_nancountrtr_plusr_minushas_tiesr_zero_2rB   ser   	t_i_zerostie_correctzs                        r   _wilcoxon_statisticr   {   s^   GEAvGh
 F1IIg""26"55HHQKKEU,,EIIagbkE)511ERVVAYY	tCCCDAq99QE9**BIIaUI,K,KqAVVBIIa!eU++a/bV99FffRYYq1ue,,q0rf::Gvva1f~~Hh 66"))GU33a7b6AAAE$((22&//#&**844	%"*		$B	%"*	eb	1Bg 2++G"+==uEEVBZZ_%%f&<t&CDDVBZZ_%%f&<Vb@P&QRR
 MM'**	F9%%f-11"&&r&2J2JKK	F1IIi $$R((&&A&++K	"{1}$*	+	+B '''b[BF7B5(22r   c                 L    |dk    rdS |dk    rdS |                     |           S )Nr]   r   r\   rW   )sign)r   ru   rT   s      r   _correction_signr      s2    iq			rwwqzzr   Tr^   r_   c           	      @   t          | ||||          }|\	  }}}}}	}
t          |          dk    r6t          |          }t          j        ||          }dk    r||_        |S t          |          \  }}}}}}dk    r2|s	|
dk    sdn'|j        d         dk    rt          j	                    nddk    rh|rEt          ||          }t          j        |          d	                             |d
z  |z            }t          |t                      |          }nRdk    rt!          |          }t#          j        |          }|dk    r(|                    t#          j        |                    }n|dk    r(|                    t#          j        |                    }nxdt#          j        |                    t#          j        |                    |                    t#          j        |                              z  }t#          j        |dd          }                    ||j                  }n7t          j        |ffdfddi                                |ddj        }|dk    r                    ||          n|}|dk    rdk    r                    |           n|}|j        dk    r|d         n|}|j        dk    r|d         n|}t          j        ||          }|	r|j        dk    r|d         n||_        |S )Nr   rT   )	statisticpvaluera   r_   r`   rW      .g      ?r\   r]   r   r   r<   c                 6    t          |           d         S )Nr   r   )r   )rx   rv   rT   rs   s    r   rH   z_wilcoxon_nd.<locals>.<lambda>  s    /6;2NNNqQ r   permutation_typesamples)ru   rV   r^   r   )r   r   r   r   WilcoxonResult
zstatisticr   r?   r   ro   r   rI   r   r   r   r   r   r   r   rK   ceilrN   floorminimumclipr=   permutation_test_asdictr   r   rf   )rq   rr   rs   rt   ru   rv   rV   temprx   r~   r   NaNresr   r   r   r   r   r   r   pdist	r_plus_npr   rT   s     `  `                  @r   _wilcoxon_ndr      st    1k:{FDQQDRVOA{JVT8VRqzzQqR   '#cBBB\!! CN
.A	6;2/ / /+FGRE8  	"FQJJFFWR[B
 ,..FF "F 	9#A{r:::Dq		#''s
R88A=??KB???	7		#E** Jv&&	&  ++,,AAI%%++,,AABJtwwrx	':':;;#xx	(:(:;;= = =A1a  AJJqJ(("DQQQQQQ. .&.*0..*:*:. $". . . . /5 	
 0;K/G/G

67+++VI"k11f6L6L

STA!*1!4!4	")I1"!A

#i
B
B
BC 5"#&A++21Jr   )rY   )NrY   Tr^   r_   r   )numpyr   scipyr   	_stats_pyr   r   r    r   _axis_nan_policyr	   
_hypotestsr   scipy._lib._utilr   scipy._lib._array_apir   r   r   scipy._lib.array_api_extra_libarray_api_extrarI   r   r   r   r   r   r   r   r   <module>r      sO             < < < < < < < < < <       / / / / / / + + + + + + % % % % % % F F F F F F F F F F ( ( ( ( ( ( ( ( (*4 *4 *4 *4 *4 *4 *4 *4Z>W >W >WB>3 >3 >3 >3B   >B>?K K K K K Kr   