§
    rŠtjöÙ  ã                   óæ  — d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dl	Z
d dlZd dlmZmZ d dl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 d d
lmZ d dlmZ d dlm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z& d dl'm(Z) d dl'm*Z*m+Z+m,Z, d dl-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3 d dl4m5Z5 g d¢Z6e
j7        fd„Z8 G d„ d¦  «        Z9d„ Z:d„ Z;d„ Z<d„ Z=d„ Z>d„ Z?d„ Z@d„ ZAd„ ZBd„ ZCd„ ZDd „ ZEd!„ ZFejG         H                    d"¦  «        ejG         I                    d#g d$¢¦  «        d%„ ¦   «         ¦   «         ZJd&„ ZKd'„ ZLd(„ ZMd)„ ZNd*„ ZOd+„ ZPd,„ ZQd-„ ZRd.„ ZSejG         H                    d"¦  «        ejG         I                    d/d0¦  «        d1„ ¦   «         ¦   «         ZTejG         H                    d2¦  «        d3„ ¦   «         ZUd4„ ZVd5„ ZWd6„ ZXd7„ ZYejG         I                    d8e6¦  «        d9„ ¦   «         ZZd:„ Z[ejG         H                    d2¦  «        d;„ ¦   «         Z\d<„ Z]ejG         I                    d=g d>¢¦  «        d?„ ¦   «         Z^ejG         I                    d=g d>¢¦  «        d@„ ¦   «         Z_dA„ Z`dB„ Zae
j7        fdC„ZbdD„ ZcejG         I                    dEe6¦  «        dF„ ¦   «         ZddG„ ZedH„ ZfejG         I                    d=dIdJg¦  «        ejG         I                    dEg d¢¦  «        ejG         I                    dK e,¦   «         ¦  «        ejG         I                    dLdMdNg¦  «        dO„ ¦   «         ¦   «         ¦   «         ¦   «         Zge3ejG         I                    d=dPdQg¦  «        ejG         I                    dK e,¦   «         ¦  «        dR„ ¦   «         ¦   «         ¦   «         ZhdS )Sé    N)ÚStringIO)ÚMock)ÚlinalgÚstats)ÚKMeans)ÚEmpiricalCovariance)Úmake_spd_matrix)Ú
make_blobs)ÚConvergenceWarningÚNotFittedError)Úadjusted_rand_score)ÚGaussianMixture)Ú_compute_log_det_choleskyÚ_compute_precision_choleskyÚ#_estimate_gaussian_covariances_diagÚ#_estimate_gaussian_covariances_fullÚ(_estimate_gaussian_covariances_sphericalÚ#_estimate_gaussian_covariances_tiedÚ_estimate_gaussian_parameters©Údevice)Úget_namespaceÚmove_toÚ)yield_namespace_device_dtype_combinations)Ú_array_api_for_testsÚassert_allcloseÚassert_almost_equalÚassert_array_almost_equalÚassert_array_equalÚ'skip_if_array_api_compat_not_configured)Úfast_logdet©ÚfullÚtiedÚdiagÚ	sphericalc                 óR  — t           j                             d¦  «        }g }|dk    r¢t          t	          |||d         ¦  «        ¦  «        D ]}\  }	\  }
}}|                     |                     ||t          j        |¦  «        z  t          t          j	        |
| z  ¦  «        ¦  «        ¦  «         
                    |¦  «        ¦  «         Œ~|dk    rŸt          t	          |||d         ¦  «        ¦  «        D ]z\  }	\  }
}}|                     |                     |t          j        |¦  «        t          t          j	        |
| z  ¦  «        ¦  «        ¦  «         
                    |¦  «        ¦  «         Œ{|dk    r‹t          t	          ||¦  «        ¦  «        D ]m\  }	\  }
}|                     |                     ||d         t          t          j	        |
| z  ¦  «        ¦  «        ¦  «         
                    |¦  «        ¦  «         Œn|dk    r�t          t	          |||d         ¦  «        ¦  «        D ]h\  }	\  }
}}|                     |                     ||t          t          j	        |
| z  ¦  «        ¦  «        ¦  «         
                    |¦  «        ¦  «         Œit          j        |¦  «        }|S )Nr   r&   r%   r$   r#   )ÚnpÚrandomÚRandomStateÚ	enumerateÚzipÚappendÚmultivariate_normalÚeyeÚintÚroundÚastyper%   Úvstack)Ú	n_samplesÚ
n_featuresÚweightsÚmeansÚ
precisionsÚcovariance_typeÚdtypeÚrngÚXÚ_ÚwÚmÚcs                úi/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/mixture/tests/test_gaussian_mixture.pyÚgenerate_datarB   6   sš  € õ Œ)×
Ò
 Ñ
"Ô
"€Cà
€AØ˜+Ò%Ð%Ý%¥c¨'°5¸*À[Ô:QÑ&RÔ&RÑSÔSð 	ð 	‰LˆA‰y��1�aØ�HŠHØ×'Ò'Ø�q�2œ6 *Ñ-Ô-Ñ-­sµ2´8¸AÀ	¹MÑ3JÔ3JÑ/KÔ/Kñô ç’&˜‘-”-ñô ð ð ð
 ˜&Ò Ð Ý%¥c¨'°5¸*ÀVÔ:LÑ&MÔ&MÑNÔNð 	ð 	‰LˆA‰y��1�aØ�HŠHØ×'Ò'Ø•r”w˜q‘z”z¥3¥r¤x°°I±Ñ'>Ô'>Ñ#?Ô#?ñô ç’&˜‘-”-ñô ð ð ð
 ˜&Ò Ð Ý"¥3 w°Ñ#6Ô#6Ñ7Ô7ð 	ð 	‰IˆA‰v��1Ø�HŠHØ×'Ò'Ø�z &Ô)­3­r¬x¸¸I¹Ñ/FÔ/FÑ+GÔ+Gñô ç’&˜‘-”-ñô ð ð ð
 ˜&Ò Ð Ý%¥c¨'°5¸*ÀVÔ:LÑ&MÔ&MÑNÔNð 	ð 	‰LˆA‰y��1�aØ�HŠHØ×'Ò'¨¨1­cµ"´(¸1¸y¹=Ñ2IÔ2IÑ.JÔ.JÑKÔK×RÒRØñô ñô ð ð õ 	Œ	�!‰Œ€AØ€Hó    c                   ó*   — e Zd Zddddej        fd„ZdS )Ú
RandomDataéÈ   é   é2   c           	      ó†  ‡ ‡‡‡‡— ‰‰ _         |‰ _        ‰‰ _        ‰                     |¦  «                             ‰¦  «        ‰ _        ‰ j                             ‰¦  «        ‰ j                             ¦   «         z  ‰ _        ‰                     |‰¦  «                             ‰¦  «        |z  ‰ _        d‰                     |¦  «                             ‰¦  «        z   d‰                     |‰¦  «                             ‰¦  «        z   dz  t          ‰‰¬¦  «                             ‰¦  «        t          j
        ˆˆˆfd„t          |¦  «        D ¦   «         ¦  «        dœ‰ _        d‰ j        d         z  d‰ j        d         z  t          j        ‰ j        d	         ¦  «        t          j
        d
„ ‰ j        d         D ¦   «         ¦  «        dœ‰ _        t!          t#          t$          ˆˆˆˆ fd„t$          D ¦   «         ¦  «        ¦  «        ‰ _        t          j        ˆfd„t+          ‰ j        ¦  «        D ¦   «         ¦  «        ‰ _        d S )Nç      à?rG   ©Úrandom_statec                 ó^   •— g | ])}t          ‰‰¬ ¦  «                             ‰¦  «        dz  ‘Œ*S )rK   rJ   )r	   r2   )Ú.0r=   r:   r5   r;   s     €€€rA   ú
<listcomp>z'RandomData.__init__.<locals>.<listcomp>s   sJ   ø€ ð ð ð àõ $ J¸SÐAÑAÔA×HÒHÈÑOÔOÐRUÑUðð ð rC   ©r&   r%   r$   r#   ç      ð?r&   r%   r$   c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS © ©r   Úinv)rN   Ú
covariances     rA   rO   z'RandomData.__init__.<locals>.<listcomp>~   s"   € ÐSÐSÐS¨J•”˜JÑ'Ô'ÐSÐSÐSrC   r#   c                 óZ   •— g | ]'}t          ‰‰‰j        ‰j        ‰j        |‰¬ ¦  «        ‘Œ(S ©©r:   )rB   r6   r7   Úcovariances)rN   Ú
covar_typer:   r5   r4   Úselfs     €€€€rA   rO   z'RandomData.__init__.<locals>.<listcomp>…   sV   ø€ ð ð ð ð #õ "Ø!Ø"ØœØœ
ØÔ(Ø"Ø#ðñ ô ðð ð rC   c           
      ó’   •— g | ]C\  }}t          j        t          t          j        |‰z  ¦  «        ¦  «        |t          ¬ ¦  «        ‘ŒDS rX   )r(   r#   r0   r1   )rN   Úkr>   r4   s      €rA   rO   z'RandomData.__init__.<locals>.<listcomp>”   sT   ø€ ð ð ð á�A�qõ ”��BœH Q¨¡]Ñ3Ô3Ñ4Ô4°a½sÐCÑCÔCðð ð rC   )r4   Ún_componentsr5   Úrandr2   r6   Úsumr7   r	   r(   ÚarrayÚrangerZ   r   rU   r8   Údictr,   ÚCOVARIANCE_TYPEr<   Úhstackr+   ÚY)r\   r;   r4   r_   r5   Úscaler:   s   ``` ` `rA   Ú__init__zRandomData.__init__^   sb  øøøøø€ ð #ˆŒØ(ˆÔØ$ˆŒà—x’x Ñ-Ô-×4Ò4°UÑ;Ô;ˆŒØ”|×*Ò*¨5Ñ1Ô1°D´L×4DÒ4DÑ4FÔ4FÑFˆŒØ—X’X˜l¨JÑ7Ô7×>Ò>¸uÑEÔEÈÑMˆŒ
à˜sŸxšx¨Ñ5Ô5×<Ò<¸UÑCÔCÑCØ˜3Ÿ8š8 L°*Ñ=Ô=×DÒDÀUÑKÔKÑKÐPQÑQÝ# J¸SÐAÑAÔA×HÒHÈÑOÔOÝ”Hðð ð ð ð ð å" <Ñ0Ô0ðñ ô ñô ð	

ð 

ˆÔð ˜tÔ/°Ô<Ñ<Ø˜$Ô*¨6Ô2Ñ2Ý”J˜tÔ/°Ô7Ñ8Ô8Ý”HØSÐS¸$Ô:JÈ6Ô:RÐSÑSÔSñô ð	
ð 
ˆŒõ ÝÝðð ð ð ð ð ð õ '6ðñ ô ñô ñ
ô 
ˆŒõ" ”ðð ð ð å% d¤lÑ3Ô3ðñ ô ñ
ô 
ˆŒˆˆrC   N)Ú__name__Ú
__module__Ú__qualname__r(   Úfloat64ri   rS   rC   rA   rE   rE   ]   s;   € € € € € ð ØØØØŒjð:
ð :
ð :
ð :
ð :
ð :
rC   rE   c            	      ó’  — t           j                             d¦  «        } |                      dd¦  «        }d\  }}}}}d\  }}t	          |||||||¬¦  «                             |¦  «        }	|	j        |k    sJ ‚|	j        |k    sJ ‚|	j        |k    sJ ‚|	j	        |k    sJ ‚|	j
        |k    sJ ‚|	j        |k    sJ ‚|	j        |k    sJ ‚d S )Nr   é
   rG   )rG   ç-Cëâ6?é   é   çš™™™™™¹?)r#   r)   )r_   ÚtolÚn_initÚmax_iterÚ	reg_covarr9   Úinit_params)r(   r)   r*   r`   r   Úfitr_   r9   rt   rw   rv   ru   rx   )
r;   r<   r_   rt   ru   rv   rw   r9   rx   Úgmms
             rA   Ú test_gaussian_mixture_attributesr{   ›   s	  € å
Œ)×
Ò
 Ñ
"Ô
"€CØ�Š��Q‰Œ€Að 6JÑ2€L�#�v˜x¨Ø#3Ñ €O�[Ý
Ø!ØØØØØ'Øðñ ô ÷ 
‚cˆ!�f„fð ð Ô˜|Ò+Ð+Ð+Ð+ØÔ /Ò1Ð1Ð1Ð1ØŒ7�cŠ>ˆ>ˆ>ˆ>ØŒ=˜IÒ%Ð%Ð%Ð%ØŒ<˜8Ò#Ð#Ð#Ð#ØŒ:˜ÒÐÐÐØŒ?˜kÒ)Ð)Ð)Ð)Ð)Ð)rC   c                  óÔ  — t           j                             d¦  «        } t          | ¦  «        }|j        }|j        d         }t          |¬¦  «        }|                      |d¦  «        }||_        t          j
        d|› d|j        › �¦  «        }t          j        t          |¬¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |¦  «        dz   }||_        t          j
        dt          j        |¦  «        d	›d
t          j        |¦  «        d	›�¦  «        }t          j        t          |¬¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |¦  «        }||                     ¦   «         dz   z  }||_        t          j
        dt          j        |¦  «        d	›�¦  «        }t          j        t          |¬¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |j        }	t          |	|¬¦  «        }|                     |¦  «         t)          |	|j        ¦  «         d S )Nr   r#   ©r_   é   z2The parameter 'weights' should have the shape of (z,), but got ©ÚmatchzIThe parameter 'weights' should be in the range [0, 1], but got max value z.5fz, min value zEThe parameter 'weights' should be normalized, but got sum(weights) = )Úweights_initr_   )r(   r)   r*   rE   r_   r<   r   r`   r�   ÚreÚescapeÚshapeÚpytestÚraisesÚ
ValueErrorry   ÚminÚmaxra   r6   r   )
r;   Ú	rand_datar_   r<   ÚgÚweights_bad_shapeÚmsgÚweights_bad_rangeÚweights_bad_normr6   s
             rA   Útest_check_weightsr�   ¶   s'  € Ý
Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3‘”€IàÔ)€LØŒ�FÔ€Aå \Ð2Ñ2Ô2€Að Ÿš ¨qÑ1Ô1ÐØ&€A„NÝ
Œ)ð	@Øð	@ð 	@Ø&7Ô&=ð	@ð 	@ñô €Cõ 
Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø	�Šˆa‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð Ÿš Ñ.Ô.°Ñ2ÐØ&€A„NÝ
Œ)ð	5Ý”fÐ.Ñ/Ô/Ð7ð	5ð 	5å”VÐ-Ñ.Ô.Ð4ð	5ð 	5ñô €Cõ
 
Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø	�Šˆa‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð —x’x Ñ-Ô-ÐØ'Ð+;×+?Ò+?Ñ+AÔ+AÀAÑ+EÑFÐØ%€A„NÝ
Œ)ð	AÝ"$¤&Ð)9Ñ":Ô":Ð@ð	Að 	Añô €Cõ 
Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø	�Šˆa‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð Ô€GÝ W¸<ÐHÑHÔH€AØ‡E‚Eˆ!�H„H€HÝ�w ¤Ñ/Ô/Ð/Ð/Ð/s6   Â*CÃCÃCÅE3Å3E7Å:E7Ç9HÈHÈ"Hc                  óü  — t           j                             d¦  «        } t          | ¦  «        }|j        |j        }}|j        d         }t          |¬¦  «        }|                      |dz   |¦  «        }||_	        d}t          j        t          |¬¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |j        }||_	        |                     |¦  «         t          ||j	        ¦  «         d S )Nr   r#   r}   r~   z/The parameter 'means' should have the shape of r   )r(   r)   r*   rE   r_   r5   r<   r   r`   Ú
means_initr…   r†   r‡   ry   r7   r   )	r;   rŠ   r_   r5   r<   r‹   Úmeans_bad_shaper�   r7   s	            rA   Útest_check_meansr”   æ   s#  € Ý
Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3‘”€Ià(Ô5°yÔ7K�*€LØŒ�FÔ€Aå \Ð2Ñ2Ô2€Að —h’h˜|¨aÑ/°Ñ<Ô<€OØ"€A„LØ
;€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø	�Šˆa‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ŒO€EØ€A„LØ‡E‚Eˆ!�H„H€HÝ�u˜aœlÑ+Ô+Ð+Ð+Ð+s   ÂB9Â9B=Ã B=c                  ó   — t           j                             d¦  «        } t          | ¦  «        }|j        |j        }}t          j        |dz   ||f¦  «        t          j        |dz   |dz   f¦  «        t          j        |dz   |f¦  «        t          j        |dz   ¦  «        dœ}t          j        |||f¦  «        }t          j        |¦  «        |d<   d|d<   ||d         t          j        ||fd¦  «        t          j        |d¦  «        dœ}dddddœ}t          D �]4}t          | ¦  «        j
        |         }	t          ||| ¬¦  «        }
||         |
_        d	|› d
�}t          j        t          |¬¦  «        5  |
                     |	¦  «         d d d ¦  «         n# 1 swxY w Y   ||         |
_        d|› d||         › �}t          j        t          |¬¦  «        5  |
                     |	¦  «         d d d ¦  «         n# 1 swxY w Y   |j        |         |
_        |
                     |	¦  «         t%          |j        |         |
j        ¦  «         �Œ6d S )Nr   r~   r"   g      ð¿)r   r   r   zsymmetric, positive-definiteÚpositive©r_   r9   rL   zThe parameter 'z$ precision' should have the shape ofr   ú'z precision' should be )r(   r)   r*   rE   r_   r5   Úonesr/   r#   re   r<   r   Úprecisions_initr…   r†   r‡   ry   r8   r   )r;   rŠ   r_   r5   Úprecisions_bad_shapeÚprecisions_not_posÚprecisions_not_positiveÚnot_positive_errorsr[   r<   r‹   r�   s               rA   Útest_check_precisionsrŸ   ý   sõ  € Ý
Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3‘”€Ià(Ô5°yÔ7K�*€Lõ ”˜¨Ñ)¨:°zÐBÑCÔCÝ”˜ a™¨°a©Ð8Ñ9Ô9Ý”˜¨Ñ)¨:Ð6Ñ7Ô7Ý”W˜l¨QÑ.Ñ0Ô0ð	ð Ðõ œ ,°
¸JÐ!GÑHÔHÐÝœF :Ñ.Ô.Ð�qÑØ"&Ð�wÑð #Ø" 1Ô%Ý”˜ zÐ2°DÑ9Ô9Ý”W˜\¨4Ñ0Ô0ð	ð Ðð /Ø.ØØð	ð Ðõ &ð Pñ Pˆ
Ý�s‰OŒOÔ˜jÔ)ˆÝØ%°zÐPSð
ñ 
ô 
ˆð
 1°Ô<ˆÔØP 
ÐPÐPÐPˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	ð 	Ø�EŠE�!‰HŒHˆHð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 4°JÔ?ˆÔØU�*ÐUÐUÐ4GÈ
Ô4SÐUÐUˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	ð 	Ø�EŠE�!‰HŒHˆHð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð &Ô0°Ô<ˆÔØ	�Šˆa‰ŒˆÝ˜9Ô/°
Ô;¸QÔ=NÑOÔOÐOÑOð+Pð Ps$   Å5FÆF	ÆF	ÇG:Ç:G>	ÈG>	c                  óz  — t           j                             d¦  «        } d\  }}|                      ||¦  «        }|                      |d¦  «        }t          j        |¦  «        |z  }t          j        |g¦  «        }t          j        d|f¦  «        }t          ||||d¦  «        }t          d¬¦  «        }	|	 	                    |¦  «         t          |	                     |d         d¬¦  «        d¦  «         t          |	                     |d         d¬¦  «        d¦  «         t          |d	¦  «        }
t          j        d
„ |
D ¦   «         ¦  «        }t          j        d„ |D ¦   «         ¦  «        }t          ||¦  «         t          j        |df¦  «        }t          j        |g¦  «        }|                     d¬¦  «                             d¦  «        }t          ||||d¦  «        }t          d¬¦  «        }	|	 	                    |¦  «         t          |	                     |d         d¬¦  «        d¦  «         t          |	                     |d         d¬¦  «        d¦  «         t          |d	¦  «        }
t          j        d„ |
D ¦   «         ¦  «        }t          j        d„ |D ¦   «         ¦  «        }t          ||¦  «         d S )Nr   ©éô  rG   r~   T)Úassume_centeredÚ	frobenius©ÚnormÚspectralr#   c                 óB   — g | ]}t          j        ||j        ¦  «        ‘ŒS rS   ©r(   ÚdotÚT©rN   Úprecs     rA   rO   z)test_suffstat_sk_full.<locals>.<listcomp>K  ó&   € ÐLÐLÐL°D�2œ6 $¨¬Ñ/Ô/ÐLÐLÐLrC   c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS rS   rT   ©rN   Úcovs     rA   rO   z)test_suffstat_sk_full.<locals>.<listcomp>L  ó    € ÐAÐAÐA¨c�&œ* S™/œ/ÐAÐAÐArC   ©Úaxis)r~   éÿÿÿÿFc                 óB   — g | ]}t          j        ||j        ¦  «        ‘ŒS rS   r©   r¬   s     rA   rO   z)test_suffstat_sk_full.<locals>.<listcomp>[  r®   rC   c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS rS   rT   r°   s     rA   rO   z)test_suffstat_sk_full.<locals>.<listcomp>\  r²   rC   )r(   r)   r*   r`   Úsqrtrb   Úzerosr   r   ry   r   Ú
error_normr   r   r™   ÚmeanÚreshape)r;   r4   r5   r<   ÚrespÚX_respÚnkÚxkÚcovars_predÚecovÚprecs_chol_predÚ
precs_predÚ	precs_ests                rA   Útest_suffstat_sk_fullrÆ   6  s�  € õ Œ)×
Ò
 Ñ
"Ô
"€CØ"Ñ€Iˆzð 	�Š�˜JÑ'Ô'€AØ�8Š8�I˜qÑ!Ô!€DÝŒW�T‰]Œ]˜QÑ€FÝ	Œ�9�+Ñ	Ô	€BÝ	Œ�1�j�/Ñ	"Ô	"€BÝ5°d¸A¸rÀ2ÀqÑIÔI€KÝ¨tÐ4Ñ4Ô4€DØ‡H‚HˆVÑÔÐÝ˜Ÿš¨°A¬¸[˜ÑIÔIÈ1ÑMÔMÐMÝ˜Ÿš¨°A¬¸Z˜ÑHÔHÈ!ÑLÔLÐLõ 2°+¸vÑFÔF€OÝ”ÐLÐL¸OÐLÑLÔLÑMÔM€JÝ”ÐAÐA°[ÐAÑAÔAÑBÔB€IÝ˜i¨Ñ4Ô4Ð4õ Œ7�I˜q�>Ñ"Ô"€DÝ	Œ�9�+Ñ	Ô	€BØ	
�Š�Qˆ‰Œ×	Ò	 Ñ	(Ô	(€BÝ5°d¸A¸rÀ2ÀqÑIÔI€KÝ¨uÐ5Ñ5Ô5€DØ‡H‚HˆQ�K„K€KÝ˜Ÿš¨°A¬¸[˜ÑIÔIÈ1ÑMÔMÐMÝ˜Ÿš¨°A¬¸Z˜ÑHÔHÈ!ÑLÔLÐLõ 2°+¸vÑFÔF€OÝ”ÐLÐL¸OÐLÑLÔLÑMÔM€JÝ”ÐAÐA°[ÐAÑAÔAÑBÔB€IÝ˜i¨Ñ4Ô4Ð4Ð4Ð4rC   c                  óª  — t           j                             d¦  «        } d\  }}}|                      ||¦  «        }||                     d¬¦  «        d d …t           j        f         z  }|                      ||¦  «        }|                     d¬¦  «        }t          j        |j        |¦  «        |d d …t           j        f         z  }t          ||||d¦  «        }t          j        |d d …t           j        t           j        f         |z  d¦  «        |z  }t          ||||d¦  «        }	t          ¦   «         }
||
_        t          |
                     |	d¬¦  «        d¦  «         t          |
                     |	d¬¦  «        d¦  «         t          |	d¦  «        }t          j        ||j        ¦  «        }t          j        |	¦  «        }t#          ||¦  «         d S )	Nr   ©r¢   rG   rG   r~   r³   r¤   r¥   r§   r$   )r(   r)   r*   r`   ra   Únewaxisrª   r«   r   r   r   Úcovariance_r   rº   r   r   rU   r   )r;   r4   r5   r_   r½   r<   r¿   rÀ   Úcovars_pred_fullÚcovars_pred_tiedrÂ   rÃ   rÄ   rÅ   s                 rA   Útest_suffstat_sk_tiedrÍ   `  s¬  € å
Œ)×
Ò
 Ñ
"Ô
"€CØ*3Ñ'€Iˆz˜<à�8Š8�I˜|Ñ,Ô,€DØ�$—(’( �(Ñ"Ô" 1 1 1¥b¤j =Ô1Ñ1€DØ�Š�˜JÑ'Ô'€AØ	�Š�qˆÑ	Ô	€BÝ	Œ�”˜Ñ	Ô	˜R   ¥2¤: Ô.Ñ	.€Bå:¸4ÀÀBÈÈAÑNÔNÐå
Œˆr�!�!�!•R”Z¥¤Ð+Ô,Ð/?Ñ?ÀÑCÔCÀiÑOð õ ;¸4ÀÀBÈÈAÑNÔNÐåÑ Ô €DØ'€DÔÝ˜ŸšÐ(8¸{˜ÑKÔKÈQÑOÔOÐOÝ˜ŸšÐ(8¸z˜ÑJÔJÈAÑNÔNÐNõ 2Ð2BÀFÑKÔK€OÝ”˜¨Ô):Ñ;Ô;€JÝ”
Ð+Ñ,Ô,€IÝ˜i¨Ñ4Ô4Ð4Ð4Ð4rC   c                  ó‚  — t           j                             d¦  «        } d\  }}}|                      ||¦  «        }||                     d¬¦  «        d d …t           j        f         z  }|                      ||¦  «        }|                     d¬¦  «        }t          j        |j        |¦  «        |d d …t           j        f         z  }t          ||||d¦  «        }t          ||||d¦  «        }	t          ¦   «         }
t          ||	¦  «        D ]Ž\  }}t          j        t          j        |¦  «        ¦  «        |
_        t          j        |¦  «        }t          |
                     |d¬¦  «        d¦  «         t          |
                     |d¬¦  «        d¦  «         Œ�t!          |	d¦  «        }t          |	d	|d
z  z  ¦  «         d S )Nr   rÈ   r~   r³   r¤   r¥   r§   r%   rQ   rG   )r(   r)   r*   r`   ra   rÉ   rª   r«   r   r   r   r,   r%   rÊ   r   rº   r   )r;   r4   r5   r_   r½   r<   r¿   rÀ   rË   Úcovars_pred_diagrÂ   Úcov_fullÚcov_diagrÃ   s                 rA   Útest_suffstat_sk_diagrÒ   ~  s¤  € å
Œ)×
Ò
 Ñ
"Ô
"€CØ*3Ñ'€Iˆz˜<à�8Š8�I˜|Ñ,Ô,€DØ�$—(’( �(Ñ"Ô" 1 1 1¥b¤j =Ô1Ñ1€DØ�Š�˜JÑ'Ô'€AØ	�Š�qˆÑ	Ô	€BÝ	Œ�”˜Ñ	Ô	˜R   ¥2¤: Ô.Ñ	.€BÝ:¸4ÀÀBÈÈAÑNÔNÐÝ:¸4ÀÀBÈÈAÑNÔNÐåÑ Ô €DÝ!Ð"2Ð4DÑEÔEð Kð KÑˆ�(Ýœ7¥2¤7¨8Ñ#4Ô#4Ñ5Ô5ˆÔÝ”7˜8Ñ$Ô$ˆÝ˜DŸOšO¨H¸;˜OÑGÔGÈÑKÔKÐKÝ˜DŸOšO¨H¸:˜OÑFÔFÈÑJÔJÐJÐJõ 2Ð2BÀFÑKÔK€OÝÐ(¨#°ÀÑ0BÑ*BÑCÔCÐCÐCÐCrC   c                 ó¢  — t           j                             d¦  «        }d\  }}|                     ||¦  «                             | ¦  «        }||                     ¦   «         z
  }t          j        |df| ¬¦  «        }t          j        |g| ¬¦  «        }|                     ¦   «         }t          ||||d¦  «        }t          j	        | 
                    ¦   «         j        | 
                    ¦   «         ¦  «        ||z  z  }	t          ||	¦  «         |j        | k    sJ ‚t          |d¦  «        }
t          |d|
dz  z  ¦  «         |
j        | k    sJ ‚d S )Nr   r¡   r~   rY   r&   rQ   rG   )r(   r)   r*   r`   r2   r»   r™   rb   r   rª   Úflattenr«   r   r:   r   )Úglobal_dtyper;   r4   r5   r<   r½   r¿   rÀ   Úcovars_pred_sphericalÚcovars_pred_spherical2rÃ   s              rA   Ú#test_gaussian_suffstat_sk_sphericalrØ   —  sH  € õ Œ)×
Ò
 Ñ
"Ô
"€CØ"Ñ€Iˆzà�Š�˜JÑ'Ô'×.Ò.¨|Ñ<Ô<€AØ	ˆA�FŠF‰HŒH‰€AÝŒ7�I˜q�>¨Ð6Ñ6Ô6€DÝ	Œ�9�+ \Ð	2Ñ	2Ô	2€BØ	
�Š‰Œ€BÝDÀTÈ1ÈbÐRTÐVWÑXÔXÐÝœV A§I¢I¡K¤K¤M°1·9²9±;´;Ñ?Ô?Ø�YÑñÐõ Ð-Ð/EÑFÔFÐFØ Ô&¨,Ò6Ð6Ð6Ð6õ 2Ð2GÈÑUÔU€OÝÐ-¨s°_ÀaÑ5GÑ/GÑHÔHÐHØÔ  LÒ0Ð0Ð0Ð0Ð0Ð0rC   c                 ó2  — d}t          t          j                             d¦  «        | ¬¦  «        }t          D ]Þ}|j        |         }|dk    rt          j        d„ |D ¦   «         ¦  «        }nK|dk    rt          j        |¦  «        }n0|dk    rt          j        d„ |D ¦   «         ¦  «        }n|d	k    r||z  }|j	        | k    sJ ‚t          t          ||¦  «        ||¬
¦  «        }t          |dt          j        |¦  «        z  ¦  «         |j	        | k    sJ ‚Œßd S )NrG   r   rY   r#   c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS rS   )r   Údetr°   s     rA   rO   z1test_compute_log_det_cholesky.<locals>.<listcomp>·  s    € Ð%LÐ%LÐ%L¸#¥f¤j°¡o¤oÐ%LÐ%LÐ%LrC   r$   r%   c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS rS   )r(   Úprodr°   s     rA   rO   z1test_compute_log_det_cholesky.<locals>.<listcomp>»  s    € Ð%IÐ%IÐ%I°s¥b¤g¨c¡l¤lÐ%IÐ%IÐ%IrC   r&   )r5   g      à¿)rE   r(   r)   r*   re   rZ   rb   r   rÛ   r:   r   r   r   Úlog)rÕ   r5   rŠ   r[   rV   Úpredected_detÚexpected_dets          rA   Útest_compute_log_det_choleskyrá   ¯  sK  € Ø€JÝ�2œ9×0Ò0°Ñ3Ô3¸<ÐHÑHÔH€Iå%ð 2ð 2ˆ
ØÔ*¨:Ô6ˆ
à˜ÒÐÝœHÐ%LÐ%LÀÐ%LÑ%LÔ%LÑMÔMˆMˆMØ˜6Ò!Ð!Ý"œJ zÑ2Ô2ˆMˆMØ˜6Ò!Ð!ÝœHÐ%IÐ%I¸jÐ%IÑ%IÔ%IÑJÔJˆMˆMØ˜;Ò&Ð&Ø&¨
Ñ2ˆMð Ô <Ò/Ð/Ð/Ð/Ý0Ý'¨
°JÑ?Ô?ØØ!ð
ñ 
ô 
ˆõ
 	" ,°µr´v¸mÑ7LÔ7LÑ0LÑMÔMÐMØÔ! \Ò1Ð1Ð1Ð1Ð1ð)2ð 2rC   c                 óR  — t          j        t          | ¦  «        t          |¦  «        f¦  «        }t          j        |¦  «        }t	          t          ||¦  «        ¦  «        D ]D\  }\  }}t          j                             | ||¦  «         	                    d¬¦  «        |d d …|f<   ŒE|S )Nr~   r³   )
r(   ÚemptyÚlenr¸   r+   r,   r   r¦   Úlogpdfra   )r<   r7   Úcovarsr½   ÚstdsÚir»   Ústds           rA   Ú_naive_lmvnpdf_diagrê   Ê  s—   € ÝŒ8•S˜‘V”V�S ™ZœZÐ(Ñ)Ô)€DÝŒ7�6‰?Œ?€DÝ#¥C¨¨tÑ$4Ô$4Ñ5Ô5ð Að A‰ˆ‰;ˆD�#Ý”Z×&Ò& q¨$°Ñ4Ô4×8Ò8¸aÐ8Ñ@Ô@ˆˆQˆQˆQ�ˆT‰
ˆ
Ø€KrC   c                  ó  ‡— ddl m}  t          j                             d¦  «        }t          |¦  «        }d}|j        Š|j        }|j        }| 	                    |‰¦  «        }| 	                    |‰¦  «        }t          |||¦  «        }t          j        d„ |D ¦   «         ¦  «        }	 | |||	d¦  «        }
t          |
|¦  «         dt          j        |¦  «        z  } | |||d¦  «        }
t          |
|¦  «         t          j        d„ |D ¦   «         ¦  «                             d¬	¦  «        }t          j        t          j        d|z  ¦  «        ¦  «        }t          |||g|z  ¦  «        } | |||d
¦  «        }
t          |
|¦  «         |                     d¬	¦  «        }dt          j        |                     d¬	¦  «        ¦  «        z  }t          ||ˆfd„|D ¦   «         ¦  «        } | |||d¦  «        }
t          |
|¦  «         d S )Nr   )Ú_estimate_log_gaussian_probr¢   c                 ó`   — g | ]+}t          j        d t          j        |¦  «        z  ¦  «        ‘Œ,S )rQ   )r(   r%   r¸   ©rN   Úxs     rA   rO   z;test_gaussian_mixture_log_probabilities.<locals>.<listcomp>â  s/   € ÐJÐJÐJ¸�2œ7 3­¬°©¬Ñ#3Ñ4Ô4ÐJÐJÐJrC   r#   rQ   r%   c                 ó   — g | ]}|‘ŒS rS   rS   rî   s     rA   rO   z;test_gaussian_mixture_log_probabilities.<locals>.<listcomp>í  s   € Ð3Ð3Ð3 !˜AÐ3Ð3Ð3rC   r³   r$   r~   c                 ó   •— g | ]}|g‰z  ‘Œ	S rS   rS   )rN   r^   r5   s     €rA   rO   z;test_gaussian_mixture_log_probabilities.<locals>.<listcomp>ù  s    ø€ Ð>Ð>Ð>¨�A�3˜Ñ#Ð>Ð>Ð>rC   r&   )Ú!sklearn.mixture._gaussian_mixturerì   r(   r)   r*   rE   r5   r_   r7   r`   rê   rb   r   r¸   r»   r%   )rì   r;   rŠ   r4   r_   r7   Úcovars_diagr<   Úlog_prob_naiveÚ
precs_fullÚlog_probÚprecs_chol_diagÚcovars_tiedÚ
precs_tiedÚcovars_sphericalÚprecs_sphericalr5   s                   @rA   Ú'test_gaussian_mixture_log_probabilitiesrü   Ò  s1  ø€ ØMÐMÐMÐMÐMÐMõ Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3‘”€IØ€IØÔ%€JØÔ)€LàŒO€EØ—(’(˜<¨Ñ4Ô4€KØ�Š�˜JÑ'Ô'€AÝ(¨¨E°;Ñ?Ô?€Nõ ”ÐJÐJ¸kÐJÑJÔJÑKÔK€Jà*Ð*¨1¨e°ZÀÑHÔH€HÝ˜h¨Ñ7Ô7Ð7ð �BœG KÑ0Ô0Ñ0€OØ*Ð*¨1¨e°_ÀfÑMÔM€HÝ˜h¨Ñ7Ô7Ð7õ ”(Ð3Ð3 {Ð3Ñ3Ô3Ñ4Ô4×9Ò9¸qÐ9ÑAÔA€KÝ”�œ  {Ñ!2Ñ3Ô3Ñ4Ô4€Jå(¨¨E°K°=À<Ñ3OÑPÔP€NØ*Ð*¨1¨e°ZÀÑHÔH€Hå˜h¨Ñ7Ô7Ð7ð #×'Ò'¨QÐ'Ñ/Ô/ÐØ�BœG K×$4Ò$4¸!Ð$4Ñ$<Ô$<Ñ=Ô=Ñ=€OÝ(Ø	ˆ5Ð>Ð>Ð>Ð>Ð-=Ð>Ñ>Ô>ñô €Nð +Ð*¨1¨e°_ÀkÑRÔR€HÝ˜h¨Ñ7Ô7Ð7Ð7Ð7rC   c            	      ón  — t           j                             d¦  «        } t          | d¬¦  «        }|j        }|j        }|j        }|                      ||¦  «        }t          D ]Ñ}|j	        }|j
        }|j        |         }	t          || |||	|¬¦  «        }
|
                     |¦  «         |
                     |¦  «        }t          |                     d¬¦  «        t          j        |¦  «        ¦  «         t%          |
j        |¦  «         t%          |
j        |¦  «         t%          |
j        |	¦  «         ŒÒd S )Nr   é   ©rh   ©r_   rL   r�   r’   rš   r9   r~   r³   )r(   r)   r*   rE   r4   r5   r_   r`   re   r6   r7   r8   r   ry   Úpredict_probar   ra   r™   r   r�   r’   rš   )r;   rŠ   r4   r5   r_   r<   r[   r6   r7   r8   r‹   r½   s               rA   Ú,test_gaussian_mixture_estimate_log_prob_respr    s3  € å
Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3 aÐ(Ñ(Ô(€IØÔ#€IØÔ%€JØÔ)€Là�Š�˜JÑ'Ô'€AÝ%ð :ð :ˆ
ØÔ#ˆØ”ˆØÔ)¨*Ô5ˆ
ÝØ%ØØ ØØ&Ø&ð
ñ 
ô 
ˆð 	
�Šˆa‰ŒˆØ�Š˜qÑ!Ô!ˆÝ! $§(¢(° (Ñ"2Ô"2µB´G¸IÑ4FÔ4FÑGÔGÐGÝ˜1œ>¨7Ñ3Ô3Ð3Ý˜1œ<¨Ñ/Ô/Ð/Ý˜1Ô,¨jÑ9Ô9Ð9Ð9ð#:ð :rC   c            	      ó†  — t           j                             d¦  «        } t          | ¦  «        }t          D �]	}|j        |         }|j        }t          |j        | |j	        |j
        |j        |         |¬¦  «        }d}t          j        t          |¬¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |                     |¦  «         |                     |¦  «        }|                     |¦  «                             d¬¦  «        }t'          ||¦  «         t)          ||¦  «        dk    sJ ‚�Œd S )Nr   r   úsThis GaussianMixture instance is not fitted yet. Call 'fit' with appropriate arguments before using this estimator.r   r~   r³   çffffffî?)r(   r)   r*   rE   re   r<   rg   r   r_   r6   r7   r8   r…   r†   r   Úpredictry   r  Úargmaxr   r   )	r;   rŠ   r[   r<   rg   r‹   r�   ÚY_predÚY_pred_probas	            rA   Ú+test_gaussian_mixture_predict_predict_probar
    sz  € Ý
Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3‘”€IÝ%ð 5ñ 5ˆ
ØŒK˜
Ô#ˆØŒKˆÝØ"Ô/ØØ"Ô*Ø ”Ø%Ô0°Ô<Ø&ð
ñ 
ô 
ˆðFð 	õ Œ]�>°Ð5Ñ5Ô5ð 	ð 	Ø�IŠI�a‰LŒLˆLð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	
�Šˆa‰ŒˆØ—’˜1‘”ˆØ—’ qÑ)Ô)×0Ò0°aÐ0Ñ8Ô8ˆÝ˜6 <Ñ0Ô0Ð0Ý" 1 fÑ-Ô-°Ò4Ð4Ð4Ð4Ñ4ð15ð 5s   ÂB;Â;B?	ÃB?	zignore:.*did not converge.*zseed, max_iter, tol))r   rG   çH¯¼šò×z>)r~   rG   rs   )rq   é,  r  )é   r  rs   c                 ó^  — t           j                             | ¦  «        }t          ||¬¦  «        }t          D ]ô}|j        |         }|j        }t          |j        ||j	        |j
        |j        |         |||¬¦  «        }	t          j        |	¦  «        }
|
                     |¦  «                             |¦  «        }|	                     |¦  «        }t#          ||¦  «         t%          ||¦  «        dk    sJ ‚|	j        j        |k    sJ ‚|	j        j        |k    sJ ‚|	j        j        |k    sJ ‚Œõd S )NrY   )r_   rL   r�   r’   rš   r9   rv   rt   r  )r(   r)   r*   rE   re   r<   rg   r   r_   r6   r7   r8   ÚcopyÚdeepcopyry   r  Úfit_predictr   r   Úmeans_r:   Úweights_Úprecisions_)Úseedrv   rt   rÕ   r;   rŠ   r[   r<   rg   r‹   ÚfÚY_pred1ÚY_pred2s                rA   Ú!test_gaussian_mixture_fit_predictr  =  sA  € õ Œ)×
Ò
 Ñ
%Ô
%€CÝ˜3 lÐ3Ñ3Ô3€IÝ%ð 3ð 3ˆ
ØŒK˜
Ô#ˆØŒKˆÝØ"Ô/ØØ"Ô*Ø ”Ø%Ô0°Ô<Ø&ØØð	
ñ 	
ô 	
ˆõ ŒM˜!ÑÔˆØ—%’%˜‘(”(×"Ò" 1Ñ%Ô%ˆØ—-’- Ñ"Ô"ˆÝ˜7 GÑ,Ô,Ð,Ý" 1 gÑ.Ô.°Ò5Ð5Ð5Ð5ØŒxŒ~ Ò-Ð-Ð-Ð-ØŒzÔ <Ò/Ð/Ð/Ð/ØŒ}Ô" lÒ2Ð2Ð2Ð2Ð2ð-3ð 3rC   c                  ó  — t           j                             d¦  «                             dd¦  «        } t	          ddd¬¦  «        }|                     | ¦  «        }|                     | ¦  «        }t          ||¦  «         d S )Nr   éè  rþ   )r_   ru   rL   )r(   r)   r*   Úrandnr   r  r  r   )r<   ÚgmÚy_pred1Úy_pred2s       rA   Ú(test_gaussian_mixture_fit_predict_n_initr   c  sq   € å
Œ	×Ò˜aÑ Ô ×&Ò& t¨QÑ/Ô/€AÝ	 a°ÀÐ	BÑ	BÔ	B€BØ�nŠn˜QÑÔ€GØ�jŠj˜‰mŒm€GÝ�w Ñ(Ô(Ð(Ð(Ð(rC   c                 óF  ‡— t           j                             d¦  «        }t          || ¬¦  «        }|j        Š|j        }t          D �]Ø}|j        |         }t          |dd||¬¦  «        }| 	                    |¦  «         t          t          j        |j        ¦  «        t          j        |j        ¦  «        dd¬¦  «         |j        d d …df                              ¦   «         }|j        d d …df                              ¦   «         }t          |j        |         |j        |         dd¬¦  «         |dk    r|j        }	|j        d         }
nð|d	k    rAt          j        |j        g|z  ¦  «        }	t          j        |j        d	         g|z  ¦  «        }
n©|d
k    rQt          j        ˆfd„|j        D ¦   «         ¦  «        }	t          j        ˆfd„|j        d
         D ¦   «         ¦  «        }
nR|dk    rLt          j        d„ |j        D ¦   «         ¦  «        }	t          j        d„ |j        d         D ¦   «         ¦  «        }
t          j        |	dd¬¦  «                             ¦   «         }t          j        |
dd¬¦  «                             ¦   «         }t+          ||¦  «        D ]K\  }}t-          ¦   «         }|
|         |_        t          |                     |	|         ¦  «        dd¬¦  «         ŒL|j        j        | k    sJ ‚|j        j        | k    sJ ‚|j        j        | k    sJ ‚�ŒÚd S )Nr   rY   é   ©r_   ru   rw   rL   r9   rs   g{®Gáz„?©ÚrtolÚatolr#   r$   r&   c                 ó>   •— g | ]}t          j        ‰¦  «        |z  ‘ŒS rS   ©r(   r/   ©rN   r@   r5   s     €rA   rO   z-test_gaussian_mixture_fit.<locals>.<listcomp>�  s(   ø€ Ð!PÐ!PÐ!P¸Q¥"¤&¨Ñ"4Ô"4°qÑ"8Ð!PÐ!PÐ!PrC   c                 ó>   •— g | ]}t          j        ‰¦  «        |z  ‘ŒS rS   r(  r)  s     €rA   rO   z-test_gaussian_mixture_fit.<locals>.<listcomp>’  s(   ø€ ÐSÐSÐS¨A•”˜
Ñ#Ô# aÑ'ÐSÐSÐSrC   r%   c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS rS   ©r(   r%   ©rN   Úds     rA   rO   z-test_gaussian_mixture_fit.<locals>.<listcomp>•  s    € Ð!DÐ!DÐ!D°¥"¤'¨!¡*¤*Ð!DÐ!DÐ!DrC   c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS rS   r,  r-  s     rA   rO   z-test_gaussian_mixture_fit.<locals>.<listcomp>–  s    € Ð!SÐ!SÐ!S°¥"¤'¨!¡*¤*Ð!SÐ!SÐ!SrC   r~   rG   )Úaxis1Úaxis2g333333Ã?)r&  )r(   r)   r*   rE   r5   r_   re   r<   r   ry   r   Úsortr  r6   r  Úargsortr7   r  r8   rb   Útracer,   r   rÊ   rº   r:   Úcovariances_)rÕ   r;   rŠ   r_   r[   r<   r‹   Úarg_idx1Úarg_idx2Ú	prec_predÚ	prec_testr^   ÚhrÂ   r5   s                 @rA   Útest_gaussian_mixture_fitr;  l  sA  ø€ å
Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3 lÐ3Ñ3Ô3€IØÔ%€JØÔ)€Lå%ð /3ñ /3ˆ
ØŒK˜
Ô#ˆÝØ%ØØØØ&ð
ñ 
ô 
ˆð 	
�Šˆa‰Œˆõ 	ÝŒG�A”JÑÔ¥¤¨Ô):Ñ!;Ô!;À#ÈDð	
ñ 	
ô 	
ð 	
ð ”8˜A˜A˜A˜q˜D”>×)Ò)Ñ+Ô+ˆØ”? 1 1 1 a 4Ô(×0Ò0Ñ2Ô2ˆÝØŒH�XÔ 	¤°Ô 9ÀÈ$ð	
ñ 	
ô 	
ð 	
ð ˜ÒÐØœˆIØ!Ô,¨VÔ4ˆIˆIØ˜6Ò!Ð!Ýœ !¤- °<Ñ!?Ñ@Ô@ˆIÝœ )Ô"6°vÔ">Ð!?À,Ñ!NÑOÔOˆIˆIØ˜;Ò&Ð&ÝœÐ!PÐ!PÐ!PÐ!PÀ!Ä-Ð!PÑ!PÔ!PÑQÔQˆIÝœØSÐSÐSÐS°Ô1EÀkÔ1RÐSÑSÔSñô ˆIˆIð ˜6Ò!Ð!ÝœÐ!DÐ!D°a´mÐ!DÑ!DÔ!DÑEÔEˆIÝœÐ!SÐ!S°iÔ6JÈ6Ô6RÐ!SÑ!SÔ!SÑTÔTˆIå”8˜I¨Q°aÐ8Ñ8Ô8×@Ò@ÑBÔBˆÝ”8˜I¨Q°aÐ8Ñ8Ô8×@Ò@ÑBÔBˆÝ˜ (Ñ+Ô+ð 	Ið 	I‰DˆAˆqÝ&Ñ(Ô(ˆDØ(¨œ|ˆDÔå˜DŸOšO¨I°a¬LÑ9Ô9¸1À4ÐHÑHÔHÐHÐHàŒxŒ~ Ò-Ð-Ð-Ð-ØŒ~Ô# |Ò3Ð3Ð3Ð3ØŒ}Ô" lÒ2Ð2Ð2Ð2Ñ2ð_/3ð /3rC   c                  óP  — t           j                             d¦  «        } t          | ¦  «        }|j        }d}t
          D ]æ}|j        |         }t          |dd| |¬¦  «        }g }t          |¦  «        D ]?}| 	                    |¦  «         | 
                    |                     |¦  «        ¦  «         Œ@t          j        |¦  «        }t          ||d| |¬¦  «        }	|	 	                    |¦  «         t          |                     ¦   «         |	                     |¦  «        ¦  «         Œçd S )Nr   ro   r~   r#  )r(   r)   r*   rE   r_   re   r<   r   rc   ry   r-   Úscorerb   r   rˆ   )
r;   rŠ   r_   ru   r[   r<   r‹   Úllr=   Úg_bests
             rA   Ú%test_gaussian_mixture_fit_best_paramsr@  ¥  s'  € Ý
Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3‘”€IØÔ)€LØ€FÝ%ð 7ð 7ˆ
ØŒK˜
Ô#ˆÝØ%ØØØØ&ð
ñ 
ô 
ˆð ˆÝ�v‘”ð 	"ð 	"ˆAØ�EŠE�!‰HŒHˆHØ�IŠI�a—g’g˜a‘j”jÑ!Ô!Ð!Ð!ÝŒX�b‰\Œ\ˆÝ Ø%ØØØØ&ð
ñ 
ô 
ˆð 	�
Š
�1‰ŒˆÝ˜BŸFšF™HœH f§l¢l°1¡o¤oÑ6Ô6Ð6Ð6ð-7ð 7rC   c            	      ód  — t           j                             d¦  «        } t          | d¬¦  «        }|j        }d}t
          D ]n}|j        |         }t          |d|d| |¬¦  «        }d}t          j	        t          |¬¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   Œod S )Nr   r~   rÿ   ©r_   ru   rv   rw   rL   r9   zˆBest performing initialization did not converge. Try different init parameters, or increase max_iter, tol, or check for degenerate data.r   )r(   r)   r*   rE   r_   re   r<   r   r…   Úwarnsr   ry   )r;   rŠ   r_   rv   r[   r<   r‹   r�   s           rA   Ú-test_gaussian_mixture_fit_convergence_warningrD  Ã  s  € Ý
Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3 aÐ(Ñ(Ô(€IØÔ)€LØ€HÝ%ð ð ˆ
ØŒK˜
Ô#ˆÝØ%ØØØØØ&ð
ñ 
ô 
ˆð1ð 	õ
 Œ\Õ,°CÐ8Ñ8Ô8ð 	ð 	Ø�EŠE�!‰HŒHˆHð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	øðð s   ÂB$Â$B(	Â+B(	c                  ó‚  — t           j                             d¦  «        } d\  }}}|                      ||¦  «        }t          D ]{}t          ||d¬¦  «                             |¦  «                             |¦  «        }t          ||dd¬¦  «                             |¦  «                             |¦  «        }||k    sJ ‚Œ|d S )Nr   ©rH   rþ   rG   r—   rþ   ©r_   r9   rL   ru   )r(   r)   r*   r  re   r   ry   r=  )r;   r4   r5   r_   r<   Úcv_typeÚtrain1Útrain2s           rA   Útest_multiple_initrK  Û  sÙ   € å
Œ)×
Ò
 Ñ
"Ô
"€CØ*2Ñ'€Iˆz˜<Ø�	Š	�)˜ZÑ(Ô(€AÝ"ð  ð  ˆåØ)¸7ÐQRðñ ô ÷ ŠS�‰VŒVßŠU�1‰XŒXð 	õ Ø)Ø 'ØØð	ñ ô ÷ ŠS�‰VŒVßŠU�1‰XŒXð 	ð ˜ÒÐÐÐÐð% ð  rC   c                  ó(  — t           j                             d¦  «        } d\  }}}|                      ||¦  «        }dddddœ}t          D ]G}t          ||| ¬¦  «                             |¦  «        }|                     ¦   «         ||         k    sJ ‚ŒHd S )	Nr   rF  é   é   é   é)   rP   r—   )r(   r)   r*   r  re   r   ry   Ú_n_parameters)r;   r4   r5   r_   r<   Ún_paramsrH  r‹   s           rA   Ú"test_gaussian_mixture_n_parametersrS  õ  s®   € å
Œ)×
Ò
 Ñ
"Ô
"€CØ*2Ñ'€Iˆz˜<Ø�	Š	�)˜ZÑ(Ô(€AØ¨°RÀÐDÐD€HÝ"ð 6ð 6ˆÝØ%°wÈSð
ñ 
ô 
ç
Š#ˆa‰&Œ&ð 	
ð �ŠÑ Ô  H¨WÔ$5Ò5Ð5Ð5Ð5Ð5ð	6ð 6rC   c                  ó†  — t           j                             d¦  «        } d\  }}}|                      ||¦  «        }t	          |d| ¬¦  «                             |¦  «                             |¦  «        }dD ]J}t	          ||| ¬¦  «                             |¦  «                             |¦  «        }t          ||¦  «         ŒKd S )Nr   )éd   r~   r~   r#   r—   )r$   r%   r&   )r(   r)   r*   r  r   ry   Úbicr   )r;   r4   Ún_dimr_   r<   Úbic_fullr9   rV  s           rA   Útest_bic_1d_1componentrY    sÖ   € õ Œ)×
Ò
 Ñ
"Ô
"€CØ%.Ñ"€Iˆu�lØ�	Š	�)˜UÑ#Ô#€AåØ%°vÈCð	
ñ 	
ô 	
÷ 
ŠˆQ‰Œß	ŠˆQ‰Œð ð 9ð 
+ð 
+ˆåØ)Ø /Ø ðñ ô ÷
 ŠS�‰VŒVßŠS�‰VŒVð 	õ 	˜H cÑ*Ô*Ð*Ð*ð
+ð 
+rC   c                  óÜ  — t           j                             d¦  «        } d\  }}}|                      ||¦  «        }dt	          t          j        |j        d¬¦  «        ¦  «        |dt          j        dt           j        z  ¦  «        z   z  z   z  }t          D ]Õ}t          ||| d¬¦  «        }|                     |¦  «         d|z  |z  d|                     ¦   «         z  z   }d|z  |z  t          j        |¦  «        |                     ¦   «         z  z   }	|t          j        |¦  «        z  }
|                     |¦  «        |z
  |z  |
k     sJ ‚|                     |¦  «        |	z
  |z  |
k     sJ ‚ŒÖd S )	Nr   )rH   rq   rG   rJ   r~   )ÚbiasrG   rF   )r_   r9   rL   rv   )r(   r)   r*   r  r!   r±   r«   rÞ   Úpire   r   ry   rQ  r¸   ÚaicrV  )r;   r4   r5   r_   r<   ÚsghrH  r‹   r]  rV  Úbounds              rA   Útest_gaussian_mixture_aic_bicr`    st  € å
Œ)×
Ò
 Ñ
"Ô
"€CØ*2Ñ'€Iˆz˜<Ø�	Š	�)˜ZÑ(Ô(€Aà
Ý•B”F˜1œ3 QÐ'Ñ'Ô'Ñ(Ô(¨:¸½R¼VÀAÍÌÁIÑ=NÔ=NÑ9NÑ+OÑOñ€Cõ #ð 4ð 4ˆÝØ%Ø#ØØð	
ñ 
ô 
ˆð 	
�Šˆa‰ŒˆØ�)‰m˜cÑ! A¨¯ªÑ(9Ô(9Ñ$9Ñ9ˆØ�)‰m˜cÑ!¥B¤F¨9Ñ$5Ô$5¸¿ºÑ8IÔ8IÑ$IÑIˆØ�RœW YÑ/Ô/Ñ/ˆØ—’�a‘”˜3‘ )Ñ+¨eÒ3Ð3Ð3Ð3Ø—’�a‘”˜3‘ )Ñ+¨eÒ3Ð3Ð3Ð3Ð3ð4ð 4rC   c            	      óÊ  — t           j                             d¦  «        } t          | ¦  «        }|j        }t
          D ]¥}|j        |         }t          |dd| |d¬¦  «        }t          |dd| |d¬¦  «        }t          j	        }t          ¦   «         t          _	        	 |                     |¦  «         |                     |¦  «         |t          _	        Œ•# |t          _	        w xY wd S )Nr   r~   )r_   ru   rw   rL   r9   ÚverboserG   )r(   r)   r*   rE   r_   re   r<   r   ÚsysÚstdoutr   ry   )r;   rŠ   r_   r[   r<   r‹   r:  Ú
old_stdouts           rA   Útest_gaussian_mixture_verboserf  4  sð   € Ý
Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3‘”€IØÔ)€LÝ%ð $ð $ˆ
ØŒK˜
Ô#ˆÝØ%ØØØØ&Øð
ñ 
ô 
ˆõ Ø%ØØØØ&Øð
ñ 
ô 
ˆõ ”Zˆ
Ý‘Z”Z�Œ
ð	$Ø�EŠE�!‰HŒHˆHØ�EŠE�!‰HŒHˆHà#�CŒJˆJø˜�CŒJÐ#Ð#Ð#Ð#ð1$ð $s   Â*CÃC r  )r   r~   rG   c           	      óz  — | }t           j                             |¦  «        }d\  }}}|                     ||¦  «        }t	          |ddd|d¬¦  «        }t	          |ddd|d¬¦  «        }|                     |¦  «         |                     |¦  «                             |¦  «        }	|                     |¦  «                             |¦  «        }
t          |j        |j        ¦  «         t          |j	        |j	        ¦  «         t          |j
        |j
        ¦  «         |
|	k    sJ ‚t	          |ddd|dd	¬
¦  «        }t	          |ddd|dd	¬
¦  «        }|                     |¦  «         |j        rJ ‚|                     |¦  «         t          d¦  «        D ] }|                     |¦  «         |j        r nŒ!|j        sJ ‚d S )NrÈ   r~   rG   r   F)r_   ru   rv   rw   rL   Ú
warm_startTrþ   ç�íµ ÷Æ°>)r_   ru   rv   rw   rL   rh  rt   r  )r(   r)   r*   r`   r   ry   r=  r   r  r  r  Ú
converged_rc   )r  rL   r;   r4   r5   r_   r<   r‹   r:  Úscore1Úscore2r=   s               rA   Útest_warm_startrm  S  sî  € ð €LÝ
Œ)×
Ò
 Ñ
-Ô
-€CØ*3Ñ'€Iˆz˜<Ø�Š�˜JÑ'Ô'€Aõ 	Ø!ØØØØ!Øð	ñ 	ô 	€Aõ 	Ø!ØØØØ!Øð	ñ 	ô 	€Að ‡E‚Eˆ!�H„H€HØ�UŠU�1‰XŒX�^Š^˜AÑÔ€FØ�UŠU�1‰XŒX�^Š^˜AÑÔ€Få˜œ
 A¤JÑ/Ô/Ð/Ý˜œ !¤(Ñ+Ô+Ð+Ý˜œ q¤}Ñ5Ô5Ð5Ø�FŠ?ˆ?ˆ?ˆ?õ 	Ø!ØØØØ!ØØð	ñ 	ô 	€Aõ 	Ø!ØØØØ!ØØð	ñ 	ô 	€Að ‡E‚Eˆ!�H„H€HØŒ|ÐÐÐà‡E‚Eˆ!�H„H€Hõ �4‰[Œ[ð ð ˆØ	�Šˆa‰ŒˆØŒ<ð 	ØˆEð	àŒ<ÐÐˆ<ÐÐrC   z-ignore::sklearn.exceptions.ConvergenceWarningc                  óF  — t           j                             d¦  «        } t          | ¦  «        }|j        }|j        d         }dD ][}t          |d|| ¬¦  «        }t          d¦  «        D ] }|                     |¦  «         |j	        r nŒ!|j	        sJ ‚||j
        k    sJ ‚Œ\d S )Nr   r#   )r~   rG   rH   T)r_   rh  rv   rL   rU  )r(   r)   r*   rE   r_   r<   r   rc   ry   rj  Ún_iter_)r;   rŠ   r_   r<   rv   rz   r=   s          rA   Ú)test_convergence_detected_with_warm_startrp  ˜  sÎ   € õ Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3‘”€IØÔ)€LØŒ�FÔ€Aàð 'ð 'ˆÝØ%ØØØð	
ñ 
ô 
ˆõ �s‘”ð 	ð 	ˆAØ�GŠG�A‰JŒJˆJØŒ~ð Ø�ðàŒ~ÐÐˆ~Ø˜3œ;Ò&Ð&Ð&Ð&Ð&ð'ð 'rC   c                 óÄ  — d}t           j                             d¦  «        }t          |d| ¬¦  «        }|j        }|j        |         }|j        | k    sJ ‚t          |ddd||¬¦  «        }d}t          j	        t          |¬¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        ¦   «         5  t          j        d	t          ¦  «         |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |j        j        | k    sJ ‚|j        j        | k    sJ ‚|                     |¦  «        }|                     |¦  «                             ¦   «         }	t+          ||	¦  «         |	j        | k    sJ ‚t          |dd||¬
¦  «                             |¦  «        }
|
                     |¦  «        |                     |¦  «        k    sJ ‚d S )Nr#   r   é   ©rh   r:   r~   rB  r  r   Úignorer#  )r(   r)   r*   rE   r_   r<   r:   r   r…   r†   r   r=  ÚwarningsÚcatch_warningsÚsimplefilterr   ry   r  r5  Úscore_samplesr»   r   )rÕ   r[   r;   rŠ   r_   r<   Úgmm1r�   Ú	gmm_scoreÚgmm_score_probaÚgmm2s              rA   Ú
test_scorer}  ¯  sp  € Ø€JÝ
Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3 a¨|Ð<Ñ<Ô<€IØÔ)€LØŒ�JÔ€AØŒ7�lÒ"Ð"Ð"Ð"õ Ø!ØØØØØ"ðñ ô €Dð	=ð õ 
Œ•~¨SÐ	1Ñ	1Ô	1ð ð Ø�
Š
�1‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
Ô	 Ñ	"Ô	"ð ð ÝÔ˜hÕ(:Ñ;Ô;Ð;Ø�Š�‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð Œ;Ô Ò,Ð,Ð,Ð,ØÔÔ" lÒ2Ð2Ð2Ð2à—
’
˜1‘”€IØ×(Ò(¨Ñ+Ô+×0Ò0Ñ2Ô2€OÝ˜	 ?Ñ3Ô3Ð3ØÔ  LÒ0Ð0Ð0Ð0õ Ø!ØØØØ"ðñ ô ÷ 
‚cˆ!�f„fð 	ð �:Š:�a‰=Œ=˜4Ÿ:š: a™=œ=Ò(Ð(Ð(Ð(Ð(Ð(s$   ÂB)Â)B-Â0B-Ã0DÄDÄ
Dc                  óÎ  — d} t           j                             d¦  «        }t          |d¬¦  «        }|j        }|j        |          }t          |dd|| ¬¦  «        }d}t          j        t          |¬¦  «        5  | 
                    |¦  «         d d d ¦  «         n# 1 swxY w Y   |                     |¦  «         
                    |¦  «        }|j        d         |j        k    sJ ‚d S )	Nr#   r   rr  rÿ   r~   r#  r  r   )r(   r)   r*   rE   r_   r<   r   r…   r†   r   rx  ry   r„   r4   )r[   r;   rŠ   r_   r<   rz   r�   Úgmm_score_sampless           rA   Útest_score_samplesr€  ß  s3  € Ø€JÝ
Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3 aÐ(Ñ(Ô(€IØÔ)€LØŒ�JÔ€Aõ Ø!ØØØØ"ðñ ô €Cð	=ð õ 
Œ•~¨SÐ	1Ñ	1Ô	1ð ð Ø×Ò˜!ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð Ÿš ™
œ
×0Ò0°Ñ3Ô3ÐØÔ" 1Ô%¨Ô)<Ò<Ð<Ð<Ð<Ð<Ð<s   Á8BÂBÂ!Bc            
      ó   — t           j                             d¦  «        } t          | d¬¦  «        }|j        }t
          D ]Î}|j        |         }t          ||ddd| d¬¦  «        }t           j         }t          j
        ¦   «         5  t          j        dt          ¦  «         t          d	¦  «        D ]=}|}|                     |¦  «                             |¦  «        }||k    sJ ‚|j        r nŒ>|j        sJ ‚	 d d d ¦  «         n# 1 swxY w Y   ŒÏd S )
Nr   rr  rÿ   Tr~   r  )r_   r9   rw   rh  rv   rL   rt   rt  iX  )r(   r)   r*   rE   r_   re   r<   r   Úinfru  rv  rw  r   rc   ry   r=  rj  )	r;   rŠ   r_   r[   r<   rz   Úcurrent_log_likelihoodr=   Úprev_log_likelihoods	            rA   Útest_monotonic_likelihoodr…  ù  sy  € õ Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3 aÐ(Ñ(Ô(€IØÔ)€Lå%ð "ð "ˆ
ØŒK˜
Ô#ˆÝØ%Ø&ØØØØØð
ñ 
ô 
ˆõ #%¤& ÐÝÔ$Ñ&Ô&ð 	"ð 	"ÝÔ! (Õ,>Ñ?Ô?Ð?õ ˜3‘Z”Zð ð �Ø&<Ð#Ø),¯ª°©¬×)9Ò)9¸!Ñ)<Ô)<Ð&Ø-Ð1DÒDÐDÐDÐDà”>ð Ø�Eðð ”>Ð!Ð!�>Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"øð"ð "s   ÂA1DÄD	Ä	D	c                  ó¤  — t           j                             d¦  «        } d\  }}t          j        t          j        |dz  |f¦  «        t          j        |dz  |f¦  «        f¦  «        }t          D ]ß}t          |d|| ¬¦  «        }t          j	        ¦   «         5  t          j
        dt          ¦  «         t          j        d¦  «        }t          j        t           |¬¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |                     d¬	¦  «                             |¦  «         d d d ¦  «         n# 1 swxY w Y   Œàd S )
Nr   )ro   rþ   rG   )r_   rw   r9   rL   rt  zîFitting the mixture model failed because some components have ill-defined empirical covariance (for instance caused by singleton or collapsed samples). Try to decrease the number of components, increase reg_covar, or scale the input data.r   ri  )rw   )r(   r)   r*   r3   r™   r¹   re   r   ru  rv  rw  ÚRuntimeWarningr‚   rƒ   r…   r†   r‡   ry   Ú
set_params)r;   r4   r5   r<   r[   rz   r�   s          rA   Útest_regularisationr‰    sÍ  € õ Œ)×
Ò
 Ñ
"Ô
"€CØ!Ñ€Iˆzå
Œ	Ý	Œ�)˜q‘. *Ð-Ñ	.Ô	.µ´¸)Àq¹.È*Ð9UÑ0VÔ0VÐWñ	ô 	€Aõ &ð 2ð 2ˆ
ÝØ"ØØ&Øð	
ñ 
ô 
ˆõ Ô$Ñ&Ô&ð 	2ð 	2ÝÔ! (­NÑ;Ô;Ð;Ý”)ðNñô ˆCõ ”�z°Ð5Ñ5Ô5ð ð Ø—’˜‘
”
�
ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð �NŠN TˆNÑ*Ô*×.Ò.¨qÑ1Ô1Ð1ð	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2øøøð 	2ð 	2ð 	2ð 	2øð2ð 2s7   ÂA
EÃ"DÃ8EÄDÄEÄDÄ,EÅE	ÅE	r[   c                 ó^  — t           j                             d¦  «        }t          |d|¬¦  «        }|j        }|j        |          }t          || |d¬¦  «        }|                     |¦  «         |j        j	        |k    sJ ‚|j
        j	        |k    sJ ‚| dk    rDt          |j        |j
        ¦  «        D ]'\  }}t          t          j        |¦  «        |¦  «         Œ(d S | dk    r.t          t          j        |j        ¦  «        |j
        ¦  «         d S t          |j        d|j
        z  ¦  «         d S )	Nr   rr  rs  rþ   rG  r#   r$   rQ   )r(   r)   r*   rE   r_   r<   r   ry   r  r:   r5  r,   r   r   rU   )	r[   rÕ   r;   rŠ   r_   r<   rz   r­   Úcovars	            rA   Ú,test_fitted_precision_covariance_concistencyrŒ  ;  sA  € å
Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3 a¨|Ð<Ñ<Ô<€IØÔ)€LàŒ�JÔ€AÝ
Ø!Ø"ØØð	ñ ô €Cð ‡G‚GˆA�J„J€JØŒ?Ô  LÒ0Ð0Ð0Ð0ØÔÔ! \Ò1Ð1Ð1Ð1Ø�VÒÐÝ˜sœ°Ô0@ÑAÔAð 	?ð 	?‰KˆD�%Ý%¥f¤j°Ñ&6Ô&6¸Ñ>Ô>Ð>Ð>ð	?ð 	?à	�vÒ	Ð	Ý!¥&¤*¨S¬_Ñ"=Ô"=¸sÔ?OÑPÔPÐPÐPÐPå! #¤/°3¸Ô9IÑ3IÑJÔJÐJÐJÐJrC   c                  óì  ‡‡— t           j                             d¦  «        } t          | dd¬¦  «        }|j        |j        }}t          D �]©}|j        |         }t          ||| ¬¦  «        }d}t          j
        t          |¬¦  «        5  |                     d¦  «         d d d ¦  «         n# 1 swxY w Y   |                     |¦  «         d}t          j
        t          |¬¦  «        5  |                     d¦  «         d d d ¦  «         n# 1 swxY w Y   d	}|                     |¦  «        \  ŠŠt          |¦  «        D �]%}	|d
k    r?t!          |j        |	         t          j        ‰‰|	k             j        ¦  «        d¬¦  «         ŒH|dk    r9t!          |j        t          j        ‰‰|	k             j        ¦  «        d¬¦  «         Œ‡|dk    rQt!          |j        |	         t          j        t          j        ‰‰|	k             j        ¦  «        ¦  «        d¬¦  «         ŒÞt!          |j        |	         t          j        ‰‰|	k             |j        |	         z
  ¦  «        d¬¦  «         �Œ't          j        ˆˆfd„t          |¦  «        D ¦   «         ¦  «        }
t!          |j        |
d¬¦  «         ‰j        ||fk    sJ ‚t          dd¦  «        D ])}|                     |¦  «        \  Š}‰j        ||fk    sJ ‚Œ*�Œ«d S )Nr   rr  rq   )rh   r_   r—   z+This GaussianMixture instance is not fittedr   zInvalid value for 'n_samples'i N  r#   r~   )Údecimalr$   r%   c                 óN   •— g | ]!}t          j        ‰‰|k             d ¦  «        ‘Œ"S )r   )r(   r»   )rN   r^   ÚX_sÚy_ss     €€rA   rO   ztest_sample.<locals>.<listcomp>�  s-   ø€ ÐSÐSÐS¸!�BœG C¨¨qª¤M°1Ñ5Ô5ÐSÐSÐSrC   rU  )r(   r)   r*   rE   r5   r_   re   r<   r   r…   r†   r   Úsamplery   r‡   rc   r   r5  r±   r«   r%   Úvarr  rb   r„   )r;   rŠ   r5   r_   r[   r<   rz   r�   r4   r^   Úmeans_sÚsample_sizer=   r�  r‘  s                @@rA   Útest_sampler–  T  s   øø€ Ý
Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3 a°aÐ8Ñ8Ô8€IØ(Ô3°YÔ5K�€Jå%ð 1:ñ 1:ˆ
ØŒK˜
Ô#ˆåØ%°zÐPSð
ñ 
ô 
ˆð <ˆÝŒ]�>°Ð5Ñ5Ô5ð 	ð 	Ø�JŠJ�q‰MŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�Š�‰
Œ
ˆ
à-ˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	ð 	Ø�JŠJ�q‰MŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ˆ	Ø—:’:˜iÑ(Ô(‰ˆˆSå�|Ñ$Ô$ð 	ñ 	ˆAØ˜VÒ#Ð#Ý)ØÔ$ QÔ'­¬°°C¸1²H´´Ñ)@Ô)@È!ðñ ô ð ð ð ˜vÒ%Ð%Ý)ØÔ$¥b¤f¨S°¸²¬]¬_Ñ&=Ô&=Àqðñ ô ð ð ð ˜vÒ%Ð%Ý)ØÔ$ QÔ'­¬µ´¸¸CÀ1ºH¼¼Ñ1HÔ1HÑ)IÔ)IÐSTðñ ô ð ð õ *ØÔ$ QÔ'Ý”F˜3˜s ašxœ=¨3¬:°a¬=Ñ8Ñ9Ô9Øðñ ô ð ñ õ ”(ÐSÐSÐSÐSÐS½uÀ\Ñ?RÔ?RÐSÑSÔSÑTÔTˆÝ! #¤*¨g¸qÐAÑAÔAÐAð Œy˜Y¨
Ð3Ò3Ð3Ð3Ð3å   C™=œ=ð 	:ð 	:ˆKØ—Z’Z Ñ,Ô,‰FˆC�Ø”9 ¨jÐ 9Ò9Ð9Ð9Ð9Ð9ñ	:ð_1:ð 1:s$   ÂB*Â*B.	Â1B.	Ã'D	Ä	D	ÄD	c                  ól  — t          d¦  «        D ]£} t          t          j                             | ¦  «        dd¬¦  «        }|j        }|j        d         }t          |dd| ¬¦  «                             |¦  «        }t          |dd| ¬¦  «                             |¦  «        }|j	        |j	        k    sJ ‚Œ¤d S )Né   rH   r~   )r4   rh   r#   )r_   ru   rv   rL   ro   )
rc   rE   r(   r)   r*   r_   r<   r   ry   Úlower_bound_)rL   rŠ   r_   r<   ry  r|  s         rA   Ú	test_initrš  �  sØ   € õ ˜b™	œ	ð 6ð 6ˆÝÝŒI×!Ò! ,Ñ/Ô/¸2ÀQð
ñ 
ô 
ˆ	ð !Ô-ˆØŒK˜ÔˆåØ%¨a¸!È,ð
ñ 
ô 
ç
Š#ˆa‰&Œ&ð 	õ Ø%¨b¸1È<ð
ñ 
ô 
ç
Š#ˆa‰&Œ&ð 	ð Ô  DÔ$5Ò5Ð5Ð5Ð5Ð5ð6ð 6rC   c            
      óª  — t           j                             d¦  «        } d}|                      |df¬¦  «        }t          j        g d¢g d¢g d¢g d¢g d	¢g d
¢g¦  «        }t          j        g d¢¦  «        }g d¢}t          dd||| t          |¦  «        |d¬¦  «        }|                     |¦  «         |j        rJ ‚dD ]}t          ||¦  «        sJ ‚ŒdS )zÛ`GaussianMixture`'s best_parameters, `n_iter_` and `lower_bound_`
    must be set appropriately in the case of divergence.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/18216
    r   rr   rq   ©Úsize)gß¯ŒÝuå?g³ýºÕÐíÊ?gnÏ,¨€À?)gqz=|¸?gdUX'nâ?g.baË¼í?)g£Úê8à?gà—�ŸŸî?g½Í×�ƒ'¶?)g{á¼ÇÇ?g
 ³á?g(}I�^ÑÈ?)gLœähÝ?gtªã“M„Ö?gŽÈ§@.â?)g»YáŒ8ã?g›ïj4}_é?g$%ˆŸÈÈî?)g§(Ìÿ„.Ag_Sˆÿ„.Ag]°IN�@g¬òÅ•&™i@g’âçî¼/@gYa2¤i]U@)ç¡?rž  ç±?rŸ  ggfffffæ?gŸ™™™™™¹?r&   r~   )r9   rw   r’   r�   rL   r_   rš   rv   )r  r  r5  Úprecisions_cholesky_ro  r™  Úlower_bounds_N)
r(   r)   r*   Úuniformrb   r   rä   ry   rj  Úhasattr)Úrndr4   r<   r’   rš   r�   rz   Úattrs           rA   Ú)test_gaussian_mixture_setting_best_paramsr¦  ¡  sC  € õ Œ)×
Ò
 Ñ
"Ô
"€CØ€IØ�Š˜) Q˜ˆÑ(Ô(€Aõ ”àIÐIÐIØHÐHÐHØIÐIÐIØJÐJÐJØHÐHÐHØGÐGÐGð	
ñ	ô 	€Jõ ”hð	
ð 	
ð 	
ñ	ô 	€Oðð ð €Lõ Ø#ØØØ!ØÝ˜Ñ&Ô&Ø'Øð	ñ 	ô 	€Cð ‡G‚GˆA�J„J€Jð Œ~ÐÐÐðð 	"ð 	"ˆõ �s˜DÑ!Ô!Ð!Ð!Ð!Ð!ð	"ð 	"rC   rx   )r)   Úrandom_from_dataú	k-means++Úkmeansc                 óR  — t           j                             |¦  «        }t          |d¬¦  «        }|j        }|j        d         }t          || |d¬¦  «        }|                     |¦  «         |j        }t          j
        |d¬¦  «        D ]\  }}	t          j        ||	¦  «        rJ ‚Œd S )Nrþ   rÿ   r#   r   )r_   rx   rL   rv   rG   )Úr)r(   r)   r*   rE   r_   r<   r   ry   r  Ú	itertoolsÚcombinationsÚallclose)
rx   Úglobal_random_seedr;   rŠ   r_   r<   rz   r7   Úi_meanÚj_means
             rA   Útest_init_means_not_duplicatedr²  ç  s¾   € õ
 Œ)×
Ò
Ð 2Ñ
3Ô
3€CÝ˜3 aÐ(Ñ(Ô(€IØÔ)€LØŒ�FÔ€Aå
Ø!¨{ÈÐWXðñ ô €Cð ‡G‚GˆA�J„J€JàŒJ€EÝ#Ô0°¸!Ð<Ñ<Ô<ð /ð /‰ˆ�Ý”;˜v vÑ.Ô.Ð.Ð.Ð.Ð.ð/ð /rC   c                 óf  — t           j                             |¦  «        }t          |d|¬¦  «        }|j        }|j        d         }t          || |¬¦  «        }|                     |¦  «         |j        j	        ||j	        d         fk    sJ ‚t          j
        |                     d¬¦  «        |j        k    ¦  «        sJ ‚t          j
        |j        |                     d¬¦  «        k    ¦  «        sJ ‚|j        sJ ‚|j        j        |k    sJ ‚|j        j        |k    sJ ‚|j        j        |k    sJ ‚d S )Nrþ   rs  r#   )r_   rx   rL   r~   r   r³   )r(   r)   r*   rE   r_   r<   r   ry   r  r„   Úallrˆ   r‰   rj  r:   r5  r  )rx   r¯  rÕ   r;   rŠ   r_   r<   rz   s           rA   Útest_means_for_all_initsrµ  û  s7  € õ
 Œ)×
Ò
Ð 2Ñ
3Ô
3€CÝ˜3 a¨|Ð<Ñ<Ô<€IØÔ)€LØŒ�FÔ€Aå
Ø!¨{Èðñ ô €Cð ‡G‚GˆA�J„J€JàŒ:Ô ¨a¬g°a¬jÐ9Ò9Ð9Ð9Ð9ÝŒ6�!—%’%˜Q�%‘-”- 3¤:Ò-Ñ.Ô.Ð.Ð.Ð.ÝŒ6�#”* §¢¨1 ¡¤Ò-Ñ.Ô.Ð.Ð.Ð.ØŒ>ÐÐˆ>ØŒ:Ô˜|Ò+Ð+Ð+Ð+ØÔÔ! \Ò1Ð1Ð1Ð1ØŒ<Ô Ò-Ð-Ð-Ð-Ð-Ð-rC   c                  ó  — t           j                             d¦  «        } t          | d¬¦  «        }|j        }|j        d         }ddgddgg}t          || |dd¬	¦  «        }|                     |¦  «         t          |j	        |¦  «         d S )
Nr   rþ   rÿ   r#   r"  rr   é   ri  )r_   rL   r’   rt   rv   )
r(   r)   r*   rE   r_   r<   r   ry   r   r  )r;   rŠ   r_   r<   r’   rz   s         rA   Útest_max_iter_zeror¸    s�   € õ Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3 aÐ(Ñ(Ô(€IØÔ)€LØŒ�FÔ€AØ�r�(˜R ˜HÐ%€JÝ
Ø!ØØØØðñ ô €Cð ‡G‚GˆA�J„J€Jå�C”J 
Ñ+Ô+Ð+Ð+Ð+rC   c                 ó¨  — d}t           j                             d¦  «        }|                     |d¦  «        t          j        ddg¦  «        z   }t          j        ddgddgg¦  «        }t          j        |                     |d¦  «        |¦  «        }t          j        ||g¦  «                             | ¦  «        }d	\  }}}	}
t          j        |j	        d         |f¦  «                             | ¦  «        }t          |d
|
¬¦  «                             |¦  «        j        }d
|t          j        |j	        d         ¦  «        |f<   t          |||	|¬¦  «        \  }}}|j        | k    sJ ‚d
|z  }t!          |||	||
¬¦  «                             |¦  «        }|j        j        | k    sJ ‚|j        j        | k    sJ ‚|j        j        | k    sJ ‚t!          |||	|
¬¦  «                             |¦  «        }|j        j        | k    sJ ‚|j        j        | k    sJ ‚|j        j        | k    sJ ‚|j        |j        k    sJ ‚t+          |j        |j        ¦  «         dS )aü  Check that we properly initialize `precision_cholesky_` when we manually
    provide the precision matrix.

    In this regard, we check the consistency between estimating the precision
    matrix and providing the same precision matrix as initialization. It should
    lead to the same results with the same number of iterations.

    If the initialization is wrong then the number of iterations will increase.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/16944
    r  r   rG   r"  g        gffffffæ¿g      @gffffffæ?)rG   r%   ri  r   r~   )Ú
n_clustersru   rL   )rw   r9   )r_   r9   rw   rš   rL   )r_   r9   rw   rL   N)r(   r)   r*   r  rb   rª   r3   r2   r¹   r„   r   ry   Úlabels_Úaranger   r:   r   r  r5  r   ro  r   )rÕ   r4   r;   Úshifted_gaussianÚCÚstretched_gaussianr<   r_   r9   rw   rL   r½   Úlabelr=   rV   rš   Úgm_with_initÚgm_without_inits                     rA   Ú*test_gaussian_mixture_precisions_init_diagrÃ  '  s˜  € ð €IÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ—y’y ¨AÑ.Ô.µ´¸2¸r¸(Ñ1CÔ1CÑCÐÝ
Œ�3˜�+  S˜zÐ*Ñ+Ô+€AÝœ §	¢	¨)°QÑ 7Ô 7¸Ñ;Ô;ÐÝ
Œ	Ð#Ð%7Ð8Ñ9Ô9×@Ò@ÀÑNÔN€Að >PÑ:€L�/ 9¨lõ Œ8�Q”W˜Q”Z Ð.Ñ/Ô/×6Ò6°|ÑDÔD€Då˜,¨q¸|ÐLÑLÔLß	ŠˆQ‰ŒÜ	ð 
ð
 *+€D�Œ�1”7˜1”:Ñ	Ô	 Ð	%Ñ&Ý4Ø	ˆ4˜9°oðñ ô Ñ€A€qˆ*ð Ô˜|Ò+Ð+Ð+Ð+Ø˜*‘n€Oå"Ø!Ø'ØØ'Ø!ðñ ô ÷ 
‚cˆ!�f„fð ð ÔÔ$¨Ò4Ð4Ð4Ð4ØÔ$Ô*¨lÒ:Ð:Ð:Ð:ØÔ,Ô2°lÒBÐBÐBÐBå%Ø!Ø'ØØ!ð	ñ ô ÷
 
‚cˆ!�f„fð ð Ô!Ô'¨<Ò7Ð7Ð7Ð7ØÔ'Ô-°Ò=Ð=Ð=Ð=ØÔ/Ô5¸ÒEÐEÐEÐEàÔ" lÔ&:Ò:Ð:Ð:Ð:ÝØÔ)¨?Ô+Oñô ð ð ð rC   c                 óJ  — t           j                             | ¦  «        }|                     ||f¦  «                             |¦  «        }|                     ||f¦  «                             |¦  «        }||                     d¬¦  «        dd…t           j        f         z  }||fS )z/Randomly generate samples and responsibilities.r~   r³   N)r(   r)   r*   Úrandom_sampler2   ra   rÉ   )r  r4   r5   r_   r:   Úrsr<   r½   s           rA   Ú_generate_datarÇ  k  s“   € å	Œ×	Ò	˜tÑ	$Ô	$€BØ
×Ò˜) ZÐ0Ñ1Ô1×8Ò8¸Ñ?Ô?€AØ×Ò˜Y¨Ð5Ñ6Ô6×=Ò=¸eÑDÔD€DØˆD�HŠH˜!ˆHÑÔ˜Q˜Q˜Q¥¤
˜]Ô+Ñ+€DØˆdˆ7€NrC   c                 óÚ   — d}t          | |||¦  «        \  }}}t          ||¦  «        }|j        \  }}	t          |	|¬¦  «        }
||||f}|
                     |¦  «         |
j        |
j        fS )zfCalculate precision matrix of X and its Cholesky decomposition
    for the given covariance type.
    ri  )r_   r9   )r   r   r„   r   Ú_set_parametersr  r   )r<   r½   r9   rw   r6   r7   rZ   Úprecisions_choleskyr=   r_   rz   Úparamss               rA   Ú_calculate_precisionsrÌ  t  sŒ   € ð €IÝ"?Ø	ˆ4�˜Oñ#ô #Ñ€GˆU�Kõ 6°kÀ?ÑSÔSÐà”j�O€A€|õ
  |À_Ð
UÑ
UÔ
U€CØ�u˜kÐ+>Ð?€FØ×Ò˜ÑÔÐØŒ?˜CÔ4Ð4Ð4rC   r9   c                 ó  — t          |ddd|¬¦  «        \  }}t          ||| ¦  «        \  }}|j        |k    sJ ‚|j        |k    sJ ‚t          | |¬¦  «        }|                     ||¦  «         |j        }t          ||¦  «         dS )zNon-regression test for #26415.rU  rq   r  )r  r4   r5   r_   r:   )r9   rš   N)rÇ  rÌ  r:   r   Ú_initializer   r   )	r9   r¯  rÕ   r<   r½   rš   Údesired_precisions_choleskyrz   Úactual_precisions_choleskys	            rA   Ú%test_gaussian_mixture_precisions_initrÑ  ‰  sÄ   € õ ØØØØØðñ ô �G€A€tõ 4IØ	ˆ4�ñ4ô 4Ñ0€OÐ0ð Ô  LÒ0Ð0Ð0Ð0Ø&Ô,°Ò<Ð<Ð<Ð<å
Ø'¸ðñ ô €Cð ‡O‚O�A�tÑÔÐØ!$Ô!9ÐÝÐ.Ð0KÑLÔLÐLÐLÐLrC   c                  ó*  — t           j                             d¦  «        } |                      t          j        d¦  «        t          j        d¦  «        d¬¦  «        }t          d¬¦  «        }|                     |¦  «                             ¦   «          dS )za
    Non-regression test for #23032 ensuring 1-component GM works on only a
    few samples.
    r   rG   rq   rœ  r~   r}   N)	r(   r)   r*   r.   r¹   Úidentityr   ry   r’  )r;   r<   r  s      rA   Ú-test_gaussian_mixture_single_component_stablerÔ  ¥  su   € õ
 Œ)×
Ò
 Ñ
"Ô
"€CØ×Ò¥¤¨¡¤­R¬[¸©^¬^À!ÐÑDÔD€AÝ	 aÐ	(Ñ	(Ô	(€BØ‡F‚Fˆ1�I„I×ÒÑÔÐÐÐrC   c                 ó˜  — t          t          ¬¦  «        }|                      t          j        j        d|¦  «         t          j                             |¦  «        }t          |¦  «        }t          |j        |j        |j        |j        d         |¬¦  «        }|                     |j        d         ¦  «         |j        |j        k    sJ ‚dS )z�When all init parameters are provided, the Gaussian parameters
    are not estimated.

    Non-regression test for gh-26015.
    )Úside_effectr   r#   )r_   r�   r’   rš   rL   N)r   r   ÚsetattrÚsklearnÚmixtureÚ_gaussian_mixturer(   r)   r*   rE   r   r_   r6   r7   r8   ry   r<   Ú
call_countro  )Úmonkeypatchr¯  Úmockr;   rŠ   r  s         rA   ÚDtest_gaussian_mixture_all_init_does_not_estimate_gaussian_parametersrÞ  °  sÈ   € õ Õ9Ð:Ñ:Ô:€DØ×ÒÝŒÔ)Ð+JÈDñô ð õ Œ)×
Ò
Ð 2Ñ
3Ô
3€CÝ˜3‘”€Iå	ØÔ+ØÔ&Ø”?Ø!Ô,¨VÔ4Øð
ñ 
ô 
€Bð ‡F‚Fˆ9Œ;�vÔÑÔÐð Œ?˜bœjÒ(Ð(Ð(Ð(Ð(Ð(rC   r)   r§  z(array_namespace, device_name, dtype_nameÚ#use_gmm_array_constructor_argumentsFTc                 ó~  — t          |||¦  «        \  }}t          j                             d¦  «        }t	          |¦  «        }	|	j        |         }
|
                     |¦  «        }
|rU|	j                             |¦  «        |	j        |                              |¦  «        |	j	                             |¦  «        dœ}ni }t          d|	j        |d| dœ|¤Ž}|                     |
¦  «         |                     |
|¬¦  «        }t          j        d¬¦  «        5  t          j        |¦  «        }|                     ¦   «         D ]-\  }}|                     ||¬¦  «        }t%          |||¦  «         Œ.|                     |¦  «         t'          |j        ¦  «        d         |k    sJ ‚t'          |j        ¦  «        d         |k    sJ ‚t-          |j        ¦  «        t-          |¦  «        k    sJ ‚t-          |j        ¦  «        t-          |¦  «        k    sJ ‚|                     |¦  «        }|                     |¦  «        }|                     |¦  «        }|                     |¦  «        }|                     |¦  «        }|                     |¦  «        }|                     d¦  «        \  }}|||||g}|D ]?}t'          |¦  «        d         |k    sJ ‚t-          |¦  «        t-          |¦  «        k    sJ ‚Œ@|||fD ]}t=          |t>          ¦  «        sJ ‚Œ	 ddd¦  «         n# 1 swxY w Y   |d	k    rd
nd}|d	k    rdnd}|d	k    rdnd}tA          |j        tC          |j        t          d¬¦  «        ¦  «         tA          |j"        tC          |j"        t          d¬¦  «        ¦  «         tA          |j        tC          |j        t          d¬¦  «        ||¬¦  «         tA          |j#        tC          |j#        t          d¬¦  «        ||¬¦  «         tA          |j$        tC          |j$        t          d¬¦  «        ||¬¦  «         tK          |                     |
¦  «        tC          |t          d¬¦  «        ¦  «        dk    sJ ‚tA          |                     |
¦  «        tC          |t          d¬¦  «        ||¬¦  «         tA          |                     |
¦  «        tC          |t          d¬¦  «        |¬¦  «         tA          |                     |
¦  «        ||¬¦  «         tA          |                     |
¦  «        ||¬¦  «         tA          |                     |
¦  «        ||¬¦  «         |                     d¦  «        \  } }!tA          | tC          |t          d¬¦  «        |¬¦  «         tA          |!tC          |t          d¬¦  «        ¦  «         dS )z3Test that array api works in GaussianMixture.fit().r   )r’   rš   r�   )r_   r9   rL   rx   r   T©Úarray_api_dispatchro   NÚfloat32rp   r  gü©ñÒMb@?gü©ñÒMbP?Úcpu)Úxpr   )r&  r%  r  r$  )r%  rS   )&r   r(   r)   r*   rE   r<   r2   r7   r8   r6   r   r_   ry   ÚasarrayrØ  Úconfig_contextÚcloneÚitemsr×  r   r  r5  Úarray_api_devicer  r  rx  r=  r]  rV  r’  Ú
isinstanceÚfloatr   r   r  r   r  r   )"rx   r9   Úarray_namespaceÚdevice_nameÚ
dtype_namerß  rå  r   r;   rŠ   r<   Úadditional_kwargsrz   ÚX_xpÚgmm_xpÚ
param_nameÚparam_valueÚarg_xpÚ
predict_xpÚpredict_proba_xpÚscore_samples_xpÚscore_xpÚaic_xpÚbic_xpÚsample_X_xpÚsample_y_xpÚresultsÚresultr=  Údefault_rtolÚincreased_atolÚincreased_rtolÚsample_XÚsample_ys"                                     rA   Ú*test_gaussian_mixture_array_api_compliancer  Ï  sI  € õ  & o°{ÀJÑOÔO�J€Bˆå
Œ)×
Ò
 Ñ
"Ô
"€CÝ˜3‘”€IØŒ�OÔ$€AØ	�Š�ÑÔ€Aà*ð à#œ/×0Ò0°Ñ<Ô<Ø(Ô3°OÔD×KÒKÈJÑWÔWØ%Ô-×4Ò4°ZÑ@Ô@ð
ð 
ÐÐð Ðå
ð ØÔ+Ø'ØØð	ð ð
 ðð €Cð ‡G‚GˆA�J„J€Jà�:Š:�a ˆ:Ñ'Ô'€Då	Ô	°4Ð	8Ñ	8Ô	8ð !,ð !,Ý”˜sÑ#Ô#ˆØ'8×'>Ò'>Ñ'@Ô'@ð 	0ð 	0Ñ#ˆJ˜Ø—Z’Z °F�ZÑ;Ô;ˆFÝ�F˜J¨Ñ/Ô/Ð/Ð/à�
Š
�4ÑÔÐå˜Vœ]Ñ+Ô+¨AÔ.°"Ò4Ð4Ð4Ð4Ý˜VÔ0Ñ1Ô1°!Ô4¸Ò:Ð:Ð:Ð:Ý ¤Ñ.Ô.Õ2BÀ4Ñ2HÔ2HÒHÐHÐHÐHÝ Ô 3Ñ4Ô4Õ8HÈÑ8NÔ8NÒNÐNÐNÐNà—^’^ DÑ)Ô)ˆ
Ø!×/Ò/°Ñ5Ô5ÐØ!×/Ò/°Ñ5Ô5ÐØ—<’< Ñ%Ô%ˆØ—’˜DÑ!Ô!ˆØ—’˜DÑ!Ô!ˆØ#)§=¢=°Ñ#4Ô#4Ñ ˆ�[ð ØØØØð
ˆð ð 	Fð 	FˆFÝ  Ñ(Ô(¨Ô+¨rÒ1Ð1Ð1Ð1Ý# FÑ+Ô+Õ/?ÀÑ/EÔ/EÒEÐEÐEÐEÐEà ¨Ð/ð 	,ð 	,ˆEÝ˜e¥UÑ+Ô+Ð+Ð+Ð+Ð+ð	,ðA!,ð !,ð !,ñ !,ô !,ð !,ð !,ð !,ð !,ð !,ð !,øøøð !,ð !,ð !,ð !,ðH &¨Ò2Ð2�4�4¸€LØ'¨9Ò4Ð4�T�T¸!€NØ'¨9Ò4Ð4�T�T¸$€Nõ �C”J¥¨¬½"ÀUÐ KÑ KÔ KÑLÔLÐLÝ�C”L¥'¨&¬/½bÈÐ"OÑ"OÔ"OÑPÔPÐPÝØÔÝ�Ô#­°5Ð9Ñ9Ô9ØØð	ñ ô ð õ ØÔ Ý�Ô+µ¸5ÐAÑAÔAØØð	ñ ô ð õ ØŒÝ�Ô"¥r°%Ð8Ñ8Ô8ØØð	ñ ô ð õ 	˜CŸKšK¨™NœN­G°JÅ2ÈeÐ,TÑ,TÔ,TÑUÔUØ
ò	ð 	ð 	ð 	õ Ø×Ò˜!ÑÔÝÐ ¥R°Ð6Ñ6Ô6ØØð	ñ ô ð õ Ø×Ò˜!ÑÔÝÐ ¥R°Ð6Ñ6Ô6Øðñ ô ð õ �C—I’I˜a‘L”L (°Ð>Ñ>Ô>Ð>Ý�C—G’G˜A‘J”J ¨\Ð:Ñ:Ô:Ð:Ý�C—G’G˜A‘J”J ¨\Ð:Ñ:Ô:Ð:ØŸš B™œÑ€HˆhåØ•'˜+­"°UÐ;Ñ;Ô;À,ðñ ô ð õ �H�g kµbÀÐGÑGÔGÑHÔHÐHÐHÐHs   ÄG8LÌLÌ!Lr©  r¨  c                 ó@  — t          ddd¬¦  «        \  }}t          dd| ¬¦  «        }t          j        d¬¦  «        5  t	          j        t          d	¬
¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )NrU  rG   rq   )r4   r5   Úcentersr%   )r_   r9   rx   Trá  z9Allowed `init_params`.+if 'array_api_dispatch' is enabledr   )r
   r   rØ  rç  r…   r†   ÚNotImplementedErrorry   )rx   rí  rî  rï  r<   r=   rz   s          rA   Ú<test_gaussian_mixture_raises_where_array_api_not_implementedr	  T  s?  € õ ØØØðñ ô �D€A€qõ
 Ø¨¸Kðñ ô €Cõ 
Ô	°4Ð	8Ñ	8Ô	8ð ð ÝŒ]ÝØMð
ñ 
ô 
ð 	ð 	ð �GŠG�A‰JŒJˆJð		ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s5   ½BÁA;Á/BÁ;A?	Á?BÂA?	ÂBÂBÂB)ir  r¬  r‚   rc  ru  Úior   Úunittest.mockr   Únumpyr(   r…   Úscipyr   r   rØ  Úsklearn.clusterr   Úsklearn.covariancer   Úsklearn.datasetsr	   Ú#sklearn.datasets._samples_generatorr
   Úsklearn.exceptionsr   r   Úsklearn.metrics.clusterr   Úsklearn.mixturer   rò   r   r   r   r   r   r   r   Úsklearn.utils._array_apir   rê  r   r   r   Úsklearn.utils._testingr   r   r   r   r   r    Úsklearn.utils.extmathr!   re   rm   rB   rE   r{   r�   r”   rŸ   rÆ   rÍ   rÒ   rØ   rá   rê   rü   r  r
  ÚmarkÚfilterwarningsÚparametrizer  r   r;  r@  rD  rK  rS  rY  r`  rf  rm  rp  r}  r€  r…  r‰  rŒ  r–  rš  r¦  r²  rµ  r¸  rÃ  rÇ  rÌ  rÑ  rÔ  rÞ  r  r	  rS   rC   rA   ú<module>r     s§  ðð €€€Ø Ð Ð Ð Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ð Ð à €€€Ø "Ð "Ð "Ð "Ð "Ð "Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø :Ð :Ð :Ð :Ð :Ð :Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ AØ 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø +Ð +Ð +Ð +Ð +Ð +ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð
ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð .Ð -Ð -Ð -Ð -Ð -à7Ð7Ð7€ð OQÌjð$ð $ð $ð $ðN;
ð ;
ð ;
ð ;
ð ;
ñ ;
ô ;
ð ;
ð|*ð *ð *ð6-0ð -0ð -0ð`,ð ,ð ,ð.6Pð 6Pð 6Pðr'5ð '5ð '5ðT5ð 5ð 5ð<Dð Dð Dð21ð 1ð 1ð02ð 2ð 2ð6ð ð ð*8ð *8ð *8ð`:ð :ð :ð:5ð 5ð 5ð< „×ÒÐ9Ñ:Ô:Ø„×ÒØðð ð ñô ð3ð 3ñô ñ ;Ô:ð3ð8)ð )ð )ð63ð 63ð 63ðr7ð 7ð 7ð<ð ð ð0 ð  ð  ð4
6ð 
6ð 
6ð+ð +ð +ð44ð 4ð 4ð0$ð $ð $ð> „×ÒÐ9Ñ:Ô:Ø„×Ò˜ Ñ+Ô+ð@ð @ñ ,Ô+ñ ;Ô:ð@ðF „×ÒÐKÑLÔLð'ð 'ñ MÔLð'ð,-)ð -)ð -)ð`=ð =ð =ð4"ð "ð "ðD2ð 2ð 2ð@ „×Ò˜ Ñ7Ô7ðKð Kñ 8Ô7ðKð06:ð 6:ð 6:ðr „×ÒÐKÑLÔLð6ð 6ñ MÔLð6ð&C"ð C"ð C"ðL „×ÒØÐHÐHÐHñô ð/ð /ñô ð/ð" „×ÒØÐHÐHÐHñô ð.ð .ñô ð.ð*,ð ,ð ,ð(Að Að AðH EGÄJð ð ð ð ð5ð 5ð 5ð* „×ÒÐ*¨OÑ<Ô<ðMð Mñ =Ô<ðMð6ð ð ð)ð )ð )ð> „×Ò˜¨Ð3EÐ(FÑGÔGØ„×ÒÐ*Ð,QÐ,QÐ,QÑRÔRØ„×ÒØ.Ø-Ð-Ñ/Ô/ñô ð „×ÒÐ>ÀÈÀÑNÔNð{Ið {Iñ OÔNñ	ô ñ SÔRñ HÔGð{Ið| )Ø„×Ò˜¨°;Ð(?Ñ@Ô@Ø„×ÒØ.Ø-Ð-Ñ/Ô/ñô ðð ñ	ô ñ AÔ@ñ )Ô(ðð ð rC   