§
    µ³Ùg¦$  ã                   óœ   — 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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)Ú
_lazywhereÚ_get_nanc                   ó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     úK/granary/edev/quantum/lib/python3.11/site-packages/scipy/stats/_wilcoxon.pyú
<dictcomp>z1WilcoxonDistribution.__init__.<locals>.<dictcomp>   s#   € ÐJÐJÐJ°r�rÕ.¨rÑ2Ô2ÐJÐJÐJó    )ÚnpÚasarrayÚastypeÚintÚnÚuniqueÚ_dists)Úselfr   s     r   Ú__init__zWilcoxonDistribution.__init__   sJ   € ÝŒJ�q‰MŒM× Ò ¥¨5Ð Ñ1Ô1ˆØˆŒØJÐJ½R¼YÀq¹\¼\ÐJÑJÔJˆŒˆˆr   c                 óZ   — | j         |         }|d |dz   …                              ¦   «         S ©Nr   ©r    Úsum©r!   Úkr   Úpmfss       r   Ú_cdf1zWilcoxonDistribution._cdf1   s+   € ØŒ{˜1Œ~ˆØ�F�Q˜‘U�FŒ|×ÒÑ!Ô!Ð!r   c                 óX   —  t          j        | j        t          g¬¦  «        ||¦  «        S ©N)Úotypes)r   Ú	vectorizer*   Úfloat©r!   r(   r   s      r   Ú_cdfzWilcoxonDistribution._cdf   s'   € Ø7�rŒ|˜DœJµ¨wÐ7Ñ7Ô7¸¸1Ñ=Ô=Ð=r   c                 óT   — | j         |         }||d …                              ¦   «         S )Nr%   r'   s       r   Ú_sf1zWilcoxonDistribution._sf1   s#   € ØŒ{˜1Œ~ˆØ�A�B�BŒx�|Š|‰~Œ~Ðr   c                 óX   —  t          j        | j        t          g¬¦  «        ||¦  «        S r,   )r   r.   r3   r/   r0   s      r   Ú_sfzWilcoxonDistribution._sf   s'   € Ø6�rŒ|˜DœI­u¨gÐ6Ñ6Ô6°q¸!Ñ<Ô<Ð<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   r8   ÚemptyÚshapeÚfloat64©r!   r(   ÚmnÚouts       r   Ú_prepzWilcoxonDistribution._prep#   sS   € ÝŒJ�q‰MŒM× Ò ¥¨5Ð Ñ1Ô1ˆØ�YŠY‰[Œ[ˆÝŒh�q”w¥b¤jÐ1Ñ1Ô1ˆØ�"�cˆzÐr   c                 óŽ   ‡ — ‰                       |¦  «        \  }}}t          ||k    |‰ j        f‰ j        ˆ fd„¬¦  «        d         S )Nc                 ó<   •— d‰                      | dz   |¦  «        z
  S r$   )r5   ©r(   r   r!   s     €r   ú<lambda>z*WilcoxonDistribution.cdf.<locals>.<lambda>,   s   ø€ ¨!¨d¯hªh°q¸±s¸AÑ.>Ô.>Ñ*>€ r   ©Úf2r   )rA   r   r   r1   r>   s   `   r   ÚcdfzWilcoxonDistribution.cdf)   sZ   ø€ Ø—Z’Z ‘]”]‰
ˆˆ2ˆsÝ˜!˜rš' A t¤v ;°´	Ø>Ð>Ð>Ð>ð@ñ @ô @Ø@BôDð 	Dr   c                 óŽ   ‡ — ‰                       |¦  «        \  }}}t          ||k    |‰ j        f‰ j        ˆ fd„¬¦  «        d         S )Nc                 ó<   •— d‰                      | dz
  |¦  «        z
  S r$   )r1   rD   s     €r   rE   z)WilcoxonDistribution.sf.<locals>.<lambda>1   s   ø€ ¨!¨d¯iªi¸¸!¹¸QÑ.?Ô.?Ñ*?€ r   rF   r   )rA   r   r   r5   r>   s   `   r   ÚsfzWilcoxonDistribution.sf.   sZ   ø€ Ø—Z’Z ‘]”]‰
ˆˆ2ˆsÝ˜!˜rš' A t¤v ;°´Ø?Ð?Ð?Ð?ðAñ Aô AØACôEð 	Er   N)Ú__name__Ú
__module__Ú__qualname__r"   r*   r1   r3   r5   r8   rA   rH   rK   r   r   r   r   r      s¦   € € € € € ðKð Kð Kð
"ð "ð "ð>ð >ð >ðð ð ð=ð =ð =ð)ð )ð )ðð ð ðDð Dð Dð
Eð Eð Eð Eð Er   r   c                 ó  — t          j        |¦  «        d         }d}t          j        |j        t           j        ¦  «        r|j        dk    rt          |¦  «        ‚d}	 |€t          j        | ¦  «        } | }nt          | |f|¬¦  «        \  } }| |z
  }t          j        ||d¦  «        }n'# t           j	        $ r}	t          |¦  «        |	‚d }	~	ww xY wd}|�+| j
        |         |j
        |         k    rt          |¦  «        ‚d}t          j        |j        t           j        ¦  «        r|                     t           j        ¦  «        }t          j        |j        t           j        ¦  «        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}t          j        |dk    ¦  «        }|dk    r|j
        d         dk    rd}||||||||fS )Nr   z`axis` must be an integer.r   z<`axis` must be compatible with the shape(s) of `x` (and `y`)©Úaxiséÿÿÿÿz3`x` and `y` must have the same length along `axis`.z<`x` (and `y`, if provided) must be an array of real numbers.>   ÚprattÚwilcoxÚzsplitz`zero_method` must be one of ú.TFz`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`.r\   rZ   é2   )r   r   Ú
issubdtyper:   ÚintegerÚndimÚ
ValueErrorr	   ÚmoveaxisÚ	AxisErrorr<   r   r=   ÚfloatingÚstrÚlowerÚ
isinstancer   ÚPermutationMethodr&   )ÚxÚyÚzero_methodÚ
correctionÚalternativeÚmethodrQ   ÚmessageÚdÚeÚzero_methodsÚcorrectionsÚalternativesÚmethodsÚoutput_zÚn_zeros                   r   Ú_wilcoxon_ivrx   4   sØ  € åŒ:�dÑÔ˜BÔ€DØ*€GÝŒ=˜œ¥R¤ZÑ0Ô0ð "°D´IÀ²N°NÝ˜Ñ!Ô!Ð!àL€Gð	)Øˆ9Ý”
˜1‘”ˆAØˆAˆAå$ a¨ V°$Ð7Ñ7Ô7‰DˆAˆqØ�A‘ˆAÝŒK˜˜4 Ñ$Ô$ˆˆøÝŒ<ð )ð )ð )Ý˜Ñ!Ô! qÐ(øøøøð)øøøð D€GØ€}˜œ œ¨!¬'°$¬-Ò7Ð7Ý˜Ñ!Ô!Ð!àL€GÝ	„}�Q”W�bœjÑ)Ô)ð !Ø�HŠH•R”ZÑ Ô ˆÝŒ=˜œ¥"¤+Ñ.Ô.ð "Ý˜Ñ!Ô!Ð!å�kÑ"Ô"×(Ò(Ñ*Ô*€KØ0Ð0Ð0€LØ=¨lÐ=Ð=Ð=€GØ˜,Ð&Ð&Ý˜Ñ!Ô!Ð!à˜�-€KØ;¨[Ð;Ð;Ð;€GØ˜Ð$Ð$Ý˜Ñ!Ô!Ð!å�kÑ"Ô"×(Ò(Ñ*Ô*€KØ3Ð3Ð3€LØ=¨lÐ=Ð=Ð=€GØ˜,Ð&Ð&Ý˜Ñ!Ô!Ð!å�f�eÔ5Ñ6Ô6ð &Ø1Ð1Ð1ˆð?¨gð ?ð ?ð ?ˆà˜Ð Ð Ý˜WÑ%Ô%Ð%Ø Ò-Ð-ˆtˆt°5€Hõ
 ŒV�A˜’F‰^Œ^€FØ�ÒÐ˜AœG BœK¨"Ò,Ð,Øˆàˆk˜: {°F¸DÀ(ÈFÐRÐRs   ÁA
B) Â)CÂ8CÃCrT   c                 óÐ  — | dk    }|dk    r0| j         d         s|                      ¦   «         } t          j        | |<   t          j        | ¦  «        }t          j        |d¬¦  «        }| j        d         |z
  }t          t          | ¦  «        dd¬¦  «        \  }}t          j        | dk    |z  d¬¦  «        }	t          j        | dk     |z  d¬¦  «        }
|dk     	                    ¦   «         }|d	k    r&t          j        ||z  d¬¦  «        d
z  }|	|z  }	|
|z  }
||dz   z  dz  }||dz   z  d|z  dz   z  }|dk    rS|                     d¬¦  «        }|||dz   z  dz  z  }|||dz   z  d|z  dz   z  z  }d|| 	                    d¬¦  «        df<   |dz  |z
                       d¬¦  «        }||d
z  z  }t          j
        |dz  ¦  «        }|dv r	|	|z
  |z  }nt          j        }|	|
||||fS )Nr   rT   Ú	WRITEABLErR   rP   ÚaverageT)Úreturn_tiesrU   é   g      ð?g      Ð?g       @rS   é   é   )r\   rZ   )Úflagsr   r   ÚnanÚisnanr&   r<   r   ÚabsÚanyÚsqrt)rp   rn   rk   Úi_zerosÚi_nanÚn_nanÚcountÚrÚtÚr_plusÚr_minusÚhas_tiesÚr_zero_2r?   Úserw   Útie_correctÚzs                     r   Ú_wilcoxon_statisticr“   t   s/  € à�AŠv€Gà�hÒÐð Œw�{Ô#ð 	Ø—’‘”ˆAÝ”Vˆˆ'‰
åŒH�Q‰KŒK€EÝŒF�5˜rÐ"Ñ"Ô"€EØŒG�BŒK˜%Ñ€Eå•S˜‘V”V˜Y°DÐ9Ñ9Ô9�D€A€qåŒV�Q˜’U˜a‘K bÐ)Ñ)Ô)€FÝŒf�a˜!’e˜q‘[ rÐ*Ñ*Ô*€Gà�Q’�|Š|‰~Œ~€Hà�hÒÐõ ”6˜' A™+¨BÐ/Ñ/Ô/°!Ñ3ˆØ�(ÑˆØ�8Ñˆà	�%˜"‘*Ñ	 Ñ	$€BØ	�%˜"‘*Ñ	  e¡¨b¡Ñ	1€Bà�gÒÐð —’ "�Ñ%Ô%ˆØ
ˆf˜ ™Ñ$ tÑ+Ñ+ˆØ
ˆf˜ ™Ñ$¨¨V©°bÑ(8Ñ9Ñ9ˆð &'ˆˆ'�+Š+˜2ˆ+Ñ
Ô
 Ð
!Ñ"à�a‘4˜!‘8—.’. b�.Ñ)Ô)€KØˆ+�a‰-Ñ€BÝ	Œ��b‘Ñ	Ô	€Bð Ð'Ð'Ð'Ø�b‰[˜BÑˆˆåŒFˆà�7˜B  5¨(Ð2Ð2r   c                 óJ   — |dk    rdS |dk    rdS t          j        | ¦  «        S )NrX   r   rW   rR   )r   Úsign)r’   rm   s     r   Ú_correction_signr–   ³   s0   € Ø�iÒÐØˆqØ	˜Ò	Ð	ØˆråŒw�q‰zŒzÐr   TrY   rZ   c           	      ó  ‡‡— t          | |‰||‰|¦  «        }|\  }Š}}Š}}	}
|j        dk    r4t          |¦  «        }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    rC|rt          ||¦  «        }||dz  |z  z  }t          |t          ¦   «         |t          ¬	¦  «        }�n ‰dk    rät          |¦  «        }|d
k    r(|                     t          j        |¦  «        ¦  «        }nÝ|dk    r(|                     t          j        |¦  «        ¦  «        }n¯dt          j        |                     t          j        |¦  «        ¦  «        |                     t          j        |¦  «        ¦  «        ¦  «        z  }t          j        |dd¦  «        }n6t          j        |fˆˆfd„fddi‰                     ¦   «         ¤|ddœ¤Žj        }|dk    rt          j        ||¦  «        n|}|dk    r‰dk    rt          j        |¦  «         n|}t          j        ||d         ¬¦  «        }|	r|d         |_        |S )Nr   )Ú	statisticÚpvaluer\   rZ   r[   rR   é   g      à?)ÚxprW   rX   r}   r   c                 ó2   •— t          | ‰‰¦  «        d         S )Nr   )r“   )rp   rn   rk   s    €€r   rE   z_wilcoxon_nd.<locals>.<lambda>ø   s   ø€ Õ/°°6¸;ÑGÔGÈÔJ€ r   Úpermutation_typeÚsamples)rm   rQ   rY   r   )rx   Úsizer   r   ÚWilcoxonResultÚ
zstatisticr“   r<   r   rh   r–   r   r   r   r   rH   ÚceilrK   ÚfloorÚminimumÚclipÚpermutation_testÚ_asdictr™   rƒ   )ri   rj   rk   rl   rm   rn   rQ   Útemprp   rv   rw   ÚNaNÚresrŒ   r�   r�   r’   r‰   rŽ   r•   ÚpÚdistr˜   s     `  `                 r   Ú_wilcoxon_ndr­   ¼   sÚ  øø€ õ ˜˜1˜k¨:°{ÀFÈDÑQÔQ€DØNRÑK€A€{�J ¨V°T¸8ÀVà„v�‚{€{Ý�q‰kŒkˆÝÔ'°#¸cÐBÑBÔBˆØ�\Ò!Ð!Ø ˆCŒNØˆ
å.AØ	ˆ6�;ñ/ô /Ñ+€FˆG�R˜˜E 8ð �ÒÐØð 	"˜F QšJ˜JØˆFˆFØŒW�RŒ[˜BÒÐõ
 Ô,Ñ.Ô.ˆFˆFð "ˆFà�ÒÐØð 	!Ý# A {Ñ3Ô3ˆDØ�˜‘˜b‘Ñ ˆAÝ˜�=™?œ?¨K½BÐ?Ñ?Ô?ˆ‰Ø	�7Ò	Ð	Ý# EÑ*Ô*ˆð ˜&Ò Ð Ø—’�œ ™œÑ)Ô)ˆAˆAØ˜IÒ%Ð%Ø—’�œ Ñ(Ô(Ñ)Ô)ˆAˆAà•B”J˜tŸwšw¥r¤x°Ñ'7Ô'7Ñ8Ô8Ø#Ÿxšx­¬°©¬Ñ8Ô8ñ:ô :ñ :ˆAå”˜˜1˜aÑ Ô ˆAˆAåÔ"ØˆDÐJÐJÐJÐJÐJð.ð .à&ð.à*0¯.ª.Ñ*:Ô*:ð.ð $¨"ð.ð .ð .ð .ô /5ð 	
ð 0;¸KÒ/GÐ/G•”
˜6 7Ñ+Ô+Ð+ÈV€IØ" kÒ1Ð1°fÀÒ6LÐ6L�Œ�‰Œˆ
ˆ
ÐST€Aå
Ô
#¨iÀÀ"ÄÐ
FÑ
FÔ
F€CØð Ø˜2œˆŒØ€Jr   )rT   )NrT   TrY   rZ   r   )Únumpyr   Úscipyr   Ú	_stats_pyr   r   r   Ú r   Ú_axis_nan_policyr	   Ú
_hypotestsr   Úscipy._lib._utilr   r   r   rx   r“   r–   r­   r   r   r   ú<module>rµ      s$  ðØ Ð Ð Ð à Ð Ð Ð Ð Ð Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø Ð Ð Ð Ð Ð Ø /Ð /Ð /Ð /Ð /Ð /Ø +Ð +Ð +Ð +Ð +Ð +Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1ð&Eð &Eð &Eð &Eð &Eñ &Eô &Eð &EðR=Sð =Sð =Sð@<3ð <3ð <3ð <3ð~ð ð ð >BØ>?ðGð Gð Gð Gð Gð Gr   