§
    fŠtjÛ(  ã                   ó¾   — 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     úS/var/www/html/CA-Chatbot/venv/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   r0   r5   r1   r2   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   r:   Ú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          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   ø€ ˜˜TŸXšX a¨¡c¨1Ñ-Ô-Ñ-€ r   r   )rD   ÚxpxÚapply_wherer    r3   rA   s   `   r   ÚcdfzWilcoxonDistribution.cdf+   sV   ø€ Ø—Z’Z ‘]”]‰
ˆˆ2ˆsÝŒØ�ŠG�a˜œ�[ØŒ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   ø€ ˜˜TŸYšY q¨¡s¨AÑ.Ô.Ñ.€ r   r   )rD   rI   rJ   r    r7   rA   s   `   r   ÚsfzWilcoxonDistribution.sf2   sV   ø€ Ø—Z’Z ‘]”]‰
ˆˆ2ˆsÝŒØ�ŠG�a˜œ�[ØŒ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˜¨4°BÐ7Ñ7Ô7�D€A€qåŒ:�dÑÔ˜BÔ€DØ*€GÝŒ=˜œ¥R¤ZÑ0Ô0ð "°D´IÀ²N°NÝ˜Ñ!Ô!Ð!Ýˆt‰9Œ9€DàL€GÝ�˜K¨Ñ.Ô.ÐIµ"´-Ô2I€Ið(Øˆ9ØˆAˆAå$ a¨ V°$¸2Ð>Ñ>Ô>‰DˆAˆqØ�A‘ˆAØ�KŠK˜˜4 Ñ$Ô$ˆˆøØð (ð (ð (Øˆi˜Ñ Ô  aÐ'øøøøð(øøøð D€GØ€}˜œ œ¨!¬'°$¬-Ò7Ð7Ý˜Ñ!Ô!Ð!àL€GØ�:Š:�a”g˜Ñ/Ô/ð "Ý˜Ñ!Ô!Ð!å�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ð
 ×Ò˜a 1šf¨4ÐÑ0Ô0€FØ�ÒÐ˜AœG BœK¨"Ò,Ð,Øˆàˆk˜: {°F¸DÀ(ÈFÐTVÐ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^  € ØŒG€EØ�AŠv€Gà�hÒÐõ
 ŒF�1‰IŒI�gÔ×"Ò" 2¤6°Ð"Ñ5Ô5ˆà�HŠH�Q‰KŒK€EØ×Ò˜U¨ÐÑ,Ô,€EØ�IŠI�a”g˜b”k EÑ)¨5Ñ1Ô1€Eå�R—V’V˜A‘Y”Y 	°tÀÐCÑCÔC�D€A€qØ�9Š9�Q˜ Eˆ9Ñ*Ô*¨B¯IªI°a¸ÀU¨IÑ,KÔ,K€q€Aà�VŠV�B—I’I˜a !še UÑ+Ô+¨aÑ/°bˆVÑ9Ô9€FØ�fŠf�R—Y’Y˜q 1šu eÑ,Ô,¨qÑ0°rˆfÑ:Ô:€Gà�vŠv�a˜1’f‰~Œ~€Hà�hÒÐð —6’6˜"Ÿ)š) G¨UÑ3Ô3°aÑ7¸b�6ÑAÔAÀAÑEˆÝ”˜‘” Ô$×(Ò(¨Ñ2Ô2ˆÝ”&˜‘/”/ #Ô&×*Ò*¨8Ñ4Ô4ˆà	�%˜"‘*Ñ	 Ñ	$€BØ	�%˜"‘*Ñ	  e¡¨b¡Ñ	1€Bà�gÒÑð —’˜2×+Ò+¨G¸"Ð+Ñ=Ô=¸uÑEÔEˆÝŒV�B‰ZŒZ˜Œ_×%Ò% f°¸±Ñ&<¸tÑ&CÑDÔDˆÝŒV�B‰ZŒZ˜Œ_×%Ò% f°¸±Ñ&<ÀÀVÁÈbÑ@PÑ&QÑRÔRˆð
 —M’M 'Ñ*Ô*ˆ	Ý”F˜9Ñ%Ô% fÔ-×1Ò1°"·&²&¸Àr°&Ñ2JÔ2JÑKÔKˆ	ÝŒF�1‰IŒI�iÔ ×$Ò$ RÑ(Ô(ˆà—&’&˜˜A™ ™¨�&Ñ+Ô+€KØ	�Š�"�{ 1‘}Ñ$¨Ñ*Ñ	+Ô	+€Bð Ð'Ð'Ð'Ø�b‰[˜BÑˆˆàŒFˆà�7˜B  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à�wŠw�q‰zŒzÐ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ÔNÈqÔ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  øøø€ õ ˜˜1˜k¨:°{ÀFÈDÑQÔQ€DØRVÑO€A€{�J ¨V°T¸8ÀVÈRåˆq�z„z�Q‚€Ý�q˜RÐ Ñ Ô ˆÝÔ'°#¸cÐBÑBÔBˆØ�\Ò!Ð!Ø ˆCŒNØˆ
å.AØ	ˆ6�; 2ð/ñ /ô /Ñ+€FˆG�R˜˜E 8ð �ÒÐØð 	"˜F QšJ˜JØˆFˆFØŒW�RŒ[˜BÒÐõ
 Ô,Ñ.Ô.ˆFˆFð "ˆFà�ÒÐØð 	9Ý# A {°rÐ:Ñ:Ô:ˆDÝ”�q‘	”	˜#”×'Ò'¨¨s©
°R©Ñ8Ô8ˆAÝ˜�=™?œ?¨K¸BÐ?Ñ?Ô?ˆ‰Ø	�7Ò	Ñ	Ý# EÑ*Ô*ˆõ ”J˜vÑ&Ô&ˆ	Ø˜&Ò Ð Ø—’�œ Ñ+Ô+Ñ,Ô,ˆAˆAØ˜IÒ%Ð%Ø—’�œ Ñ+Ô+Ñ,Ô,ˆAˆAà•B”J˜tŸwšw¥r¤x°	Ñ':Ô':Ñ;Ô;Ø#Ÿxšx­¬°	Ñ(:Ô(:Ñ;Ô;ñ=ô =ñ =ˆAå”˜˜1˜aÑ Ô ˆAØ�JŠJ�q ¤ˆJÑ(Ô(ˆˆåÔ"ØˆDÐQÐQÐQÐQÐQÐQð.ð .à&ð.à*0¯.ª.Ñ*:Ô*:ð.ð $¨"ð.ð .ð .ð .ô /5ð 	
ð 0;¸KÒ/GÐ/G�—
’
˜6 7Ñ+Ô+Ð+ÈV€IØ" kÒ1Ð1°fÀÒ6LÐ6Lˆ�Š�‰Œˆ
ˆ
ÐST€Aà!*¤°1Ò!4Ð!4�	˜"”�¸)€IØ”˜1’�ˆˆ"Œˆ !€AÝ
Ô
#¨iÀÐ
BÑ
BÔ
B€CØð 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ð *4ðZ>Wð >Wð >WðB>3ð >3ð >3ð >3ðBð ð ð >BØ>?ðKð Kð Kð Kð Kð Kr   