o
    ×tBhÌc  ã                	   @   sê  d dl Zd dlZd dlmZ d dl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 d dlmZ e ¡ Zg d	¢Zej d
e¡ej dedejjd ƒ¡dd„ ƒƒZdd„ Zej dddg¡ej de¡dd„ ƒƒZej d
ddg¡dd„ ƒZejjdej d ¡  dd¡ej!dddd dd  gd d!gd"ej d
e¡d#d$„ ƒƒZ"ej d
ddg¡d%d&„ ƒZ#ej d
e¡d'd(„ ƒZ$ej d
e¡d)d*„ ƒZ%ej d
e¡d+d,„ ƒZ&ej d
g d-¢¡ej d.ddg¡d/d0„ ƒƒZ'ej d1e (g d2¢g d3¢g¡e (g d2¢g d3¢g¡j)g¡ej d4g d5¢¡d6d7„ ƒƒZ*ej d8d9e+ejjƒfde+ejjƒd fde+ejjƒfg¡ej d1ejejj)g¡d:d;„ ƒƒZ,ej d
d<d9g¡d=d>„ ƒZ-ej d
ddg¡d?d@„ ƒZ.dAdB„ Z/dCdD„ Z0dEdF„ Z1dGdH„ Z2ej dIejdJdKfejdLdfej d ¡ 3dMdN¡dOdKfg¡dPdQ„ ƒZ4ej d
e¡dRdS„ ƒZ5dTdU„ Z6ej d
e¡dVdW„ ƒZ7ej d
ddg¡dXdY„ ƒZ8ej d
d9dg¡dZd[„ ƒZ9ej d\ej d ¡j:d]d^dOd9fej d ¡j:d_d^dMd9fej d ¡j:d]d^d`d9fej d ¡j:d]d^dadfg¡dbdc„ ƒZ;ej d
e¡ddde„ ƒZ<dfdg„ Z=ej d
e¡dhdi„ ƒZ>ej d
e¡djdk„ ƒZ?dldm„ Z@dndo„ ZAdpdq„ ZBdrds„ ZCdtdu„ ZDdvdw„ ZEdxdy„ ZFdzd{„ ZGd|d}„ ZHd~d„ ZIej d€dd ieJd‚fddƒieKd„fg¡d…d†„ ƒZLd‡dˆ„ ZMej dddg¡d‰dŠ„ ƒZNdS )‹é    N)Úassert_array_equal)Úassert_allclose)Údatasets)ÚPCA)Ú	load_iris©Ú_assess_dimension)Ú_infer_dimension)ÚfullÚarpackÚ
randomizedÚautoÚ
svd_solverÚn_componentsé   c                 C   s’   t j}t|| d}| |¡ |¡}|jd |ksJ ‚| |¡}t||ƒ | |¡}t||ƒ | ¡ }| 	¡ }tt
 ||¡t
 |jd ¡dd d S )N©r   r   r   çê-™—q=©Úatol)ÚirisÚdatar   ÚfitÚ	transformÚshapeÚfit_transformr   Úget_covarianceÚget_precisionÚnpÚdotÚeye)r   r   ÚXÚpcaÚX_rÚX_r2ÚcovÚ	precision© r&   ú{/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/sklearn/decomposition/tests/test_pca.pyÚtest_pca   s   



&r(   c                  C   sp   d} | d }t jjdd| |fd}t| d}t ¡  t dt¡ | |¡ W d   ƒ d S 1 s1w   Y  d S )Né
   é   éÿÿÿÿr   ©Úsize©r   Úerror)	r   ÚrandomÚuniformr   ÚwarningsÚcatch_warningsÚsimplefilterÚRuntimeWarningr   )r   Ú
n_featuresr    r!   r&   r&   r'   Útest_no_empty_slice_warning*   s   

"þr7   ÚcopyTFÚsolverc                 C   s„  t j d¡}d}d}d}d}t  | ||¡t  t  t  dd|¡¡| ||¡¡¡}|d d …d d…f  d9  < |j||fks?J ‚|jdd	 ¡ d
ksKJ ‚| 	¡ }t
|d|| ddd}	|	 | 	¡ ¡}
|
j||fksiJ ‚|	 |¡}t|
|dd t|
jdddt  |¡ƒ t|
jdd	t  |¡dd | 	¡ }t
|d|| d | 	¡ ¡}	|	 |¡}|j||fks¯J ‚|jdd	 ¡ tjdddksÀJ ‚d S )Nr   éd   éP   é   é2   g      $@ç      ð?é   ©ÚaxisgfffffæE@Té   )r   Úwhitenr8   r   Úrandom_stateÚiterated_powergü©ñÒMb@?©Úrtolr   ©ÚddofrA   r   r   F)r   rC   r8   r   gfffff†R@çš™™™™™¹?)Úrel)r   r0   ÚRandomStater   ÚrandnÚdiagÚlinspacer   Ústdr8   r   r   r   r   ÚonesÚmeanÚzerosr   ÚpytestÚapprox)r9   r8   ÚrngÚ	n_samplesr6   r   Úrankr    ÚX_r!   Ú
X_whitenedÚX_whitened2ÚX_unwhitenedr&   r&   r'   Útest_whitening5   sH   
"þú	
ÿ
þ
&r]   r   r   c                 C   sv   t j d¡}d\}}| ||¡}tddd}td| dd}| |¡ | |¡ t|j|jdd t|j|jdd d S )	Nr   ©r:   r;   r*   r
   r   ©r   r   rD   çš™™™™™©?rF   )	r   r0   rL   rM   r   r   r   Úexplained_variance_Úexplained_variance_ratio_©r   rV   rW   r6   r    Úpca_fullÚ	pca_otherr&   r&   r'   Ú.test_pca_explained_variance_equivalence_solverl   s   


ÿ
ýrf   r    r:   r;   éN   )Ún_informativerD   zrandom-datazcorrelated-data)Úidsc                 C   sr   t d|dd}| | ¡}t|jtj|dddƒ tj tj| dd¡d }t	|dd	d d… }t|j|d
d d S )Nr*   r   r_   r   rH   F)ÚrowvarT)Úreverseç{®Gázt?rF   )
r   r   r   ra   r   ÚvarÚlinalgÚeigr$   Úsorted)r    r   r!   ÚX_pcaÚexpected_resultr&   r&   r'   Ú%test_pca_explained_variance_empirical‚   s   

rs   c                 C   sf   t j d¡}d\}}| ||¡}tdd|d}td| |d}| |¡ | |¡ t|j|jdd d S )Nr   r^   r*   r
   r_   rl   rF   )r   r0   rL   rM   r   r   r   Úsingular_values_rc   r&   r&   r'   Ú$test_pca_singular_values_consistency•   s   

ru   c                 C   s   t j d¡}d\}}| ||¡}td| |d}| |¡}tt  |jd ¡t j	 
|d¡d ƒ t|jt  t j|d dd¡ƒ d\}}| ||¡}td| |d}| |¡}|t  t j|d dd¡ }|d d …df  d	9  < |d d …d
f  d9  < t  ||j¡}| |¡ t|jg d¢ƒ d S )Nr   r^   r*   r_   Úfror@   )r:   én   r?   ç‰A`åÐ"	@r   çX9´Èv¾@)rx   ry   r>   )r   r0   rL   rM   r   r   r   Úsumrt   rn   ÚnormÚsqrtr   Úcomponents_r   )r   rV   rW   r6   r    r!   ÚX_transÚX_hatr&   r&   r'   Útest_pca_singular_values¤   s&   
ÿ 

r€   c                 C   s®   t j d¡}d\}}| ||¡d }|d d…  t  g d¢¡7  < d| d|¡ t  g d¢¡ }td| d |¡ |¡}|t  |d  	¡ ¡ }t
t  |d d ¡d	d
d d S )Nr   ©r:   r?   rJ   r)   ©r?   é   é   r   r*   r   r>   rl   rF   )r   r0   rL   rM   Úarrayr   r   r   r|   rz   r   Úabs)r   rV   ÚnÚpr    ÚXtÚYtr&   r&   r'   Útest_pca_check_projectionÂ   s    r‹   c                 C   s^   ddgddgg}t d| dd}| |¡}|jsJ dƒ‚t| ¡ ddd t| ¡ d	d
d d S )Nr>   g        r   r   r_   )r*   r   r   r   g¸…ëQ¸æ?rl   rF   )r   r   r   r   rR   rP   )r   r    r!   r~   r&   r&   r'   Útest_pca_check_projection_listÑ   s   
rŒ   )r
   r   r   rC   c           	      C   s~   t j d¡}d\}}| ||¡}|d d …df  d9  < |g d¢7 }td| |d |¡}| |¡}| |¡}t||dd	 d S )
Nr   )r=   r?   r   gñhãˆµøä>)r„   rƒ   r?   r*   )r   r   rC   çñhãˆµøÔ>rF   )	r   r0   rL   rM   r   r   r   Úinverse_transformr   )	r   rC   rV   r‡   rˆ   r    r!   ÚYÚ	Y_inverser&   r&   r'   Útest_pca_inverseÜ   s   

r‘   r   )r   r   r   )r   r   r   z!svd_solver, n_components, err_msg))r   r   ú2must be between 1 and min\(n_samples, n_features\))r   r   r’   )r   r*   zmust be strictly less than min)r   r+   úcn_components={}L? must be between {}L? and min\(n_samples, n_features\)={}L? with svd_solver=\'{}\')r   r?   r“   )r   r>   zmust be of type intc                 C   sÜ   d}dddddœ}t || d}| dkrdn| }| |||  ||¡}tjt|d | |¡ W d   ƒ n1 s8w   Y  | d	krl|}d
 ||¡}tjt|d t || d |¡ W d   ƒ d S 1 sew   Y  d S d S )Nr*   r   r   )r   r   r
   r   ©r   r   r
   ©Úmatchr   zgn_components={}L? must be strictly less than min\(n_samples, n_features\)={}L? with svd_solver='arpack')r   ÚformatrT   ÚraisesÚ
ValueErrorr   )r   r   r   Úerr_msgÚ
smallest_dÚlower_limitÚ
pca_fittedÚsolver_reportedr&   r&   r'   Útest_pca_validationî   s&   !ÿÿý"ÿørŸ   zsolver, n_components_r
   c                 C   s&   t |d}| | ¡ |j|ksJ ‚d S )Nr”   )r   r   Ún_components_)r   r9   r    r!   r&   r&   r'   Útest_n_components_none'  s   


r¡   r   c                 C   sH   t j d¡}d\}}| ||¡}td| d}| |¡ |jdks"J ‚d S )Nr   ©iX  r)   Úmler   r   )r   r0   rL   rM   r   r   r    )r   rV   rW   r6   r    r!   r&   r&   r'   Útest_n_components_mle6  s   
r¤   c                 C   st   t j d¡}d\}}| ||¡}td| d}d | ¡}tjt|d | 	|¡ W d   ƒ d S 1 s3w   Y  d S )Nr   r¢   r£   r   z:n_components='mle' cannot be a string with svd_solver='{}'r•   )
r   r0   rL   rM   r   r—   rT   r˜   r™   r   )r   rV   rW   r6   r    r!   rš   r&   r&   r'   Útest_n_components_mle_errorA  s   ÿ"ÿr¥   c                  C   st   t j d¡} d\}}|  ||¡d }|d d…  t  g d¢¡7  < tddd |¡}|jdks1J ‚|jd	ks8J ‚d S )
Nr   ©r:   r„   rJ   r)   ©r?   rƒ   r„   r   r*   r£   r
   r   r   )	r   r0   rL   rM   r…   r   r   r   r    )rV   r‡   rˆ   r    r!   r&   r&   r'   Útest_pca_dimP  s   r¨   c                     s¨   d\‰ } t j d¡}| ˆ | ¡d | ˆ d¡t  g d¢¡  t  g d¢¡ }t| dd}| |¡ |j‰t  ‡ ‡fd	d
„td| ƒD ƒ¡}|d | 	¡ dˆ   ksRJ ‚d S )N©éè  r„   r   rJ   r   r§   )r   r   rB   rƒ   é   r
   r   c                    s   g | ]}t ˆ|ˆ ƒ‘qS r&   r   )Ú.0Úk©r‡   Úspectr&   r'   Ú
<listcomp>h  s    z$test_infer_dim_1.<locals>.<listcomp>ç{®Gáz„?)
r   r0   rL   rM   r…   r   r   ra   ÚrangeÚmax)rˆ   rV   r    r!   Úllr&   r®   r'   Útest_infer_dim_1[  s   ÿþÿ
  rµ   c                  C   s’   d\} }t j d¡}| | |¡d }|d d…  t  g d¢¡7  < |dd…  t  g d¢¡7  < t|dd	}| |¡ |j}t|| ƒd
ksGJ ‚d S )Nr©   r   rJ   r)   r§   é   ©r«   r   rB   r*   r+   r
   r   r   ©	r   r0   rL   rM   r…   r   r   ra   r	   ©r‡   rˆ   rV   r    r!   r¯   r&   r&   r'   Útest_infer_dim_2l  s   
rº   c                  C   s´   d\} }t j d¡}| | |¡d }|d d…  t  g d¢¡7  < |dd…  t  g d¢¡7  < |dd	…  d
t  g d¢¡ 7  < t|dd}| |¡ |j}t|| ƒd
ksXJ ‚d S )Nr¦   r   rJ   r)   r§   r¶   r·   r<   é(   r*   )r+   r   r+   r   r+   r
   r   r¸   r¹   r&   r&   r'   Útest_infer_dim_3z  s   "
r¼   z'X, n_components, n_components_validatedgffffffî?r*   r±   r„   r¶   g      à?c                 C   s<   t |dd}| | ¡ |jt |¡ksJ ‚|j|ksJ ‚d S )Nr
   r   )r   r   r   rT   rU   r    )r    r   Ún_components_validatedr!   r&   r&   r'   Ú$test_infer_dim_by_explained_variance‡  s   	
r¾   c           	      C   sì   d\}}t j d¡}| ||¡d t  g d¢¡ }td| d}| |¡ | |¡}dt  dt j	 t  
d¡ d	 ¡ | }t|| dd
d | | ||¡d t  g d¢¡ ¡}||ks]J ‚tdd| d}| |¡ | |¡}||kstJ ‚d S )N)rª   r?   r   rJ   r‚   r*   r   g      à¿r   g|®Gáz„?r`   rF   gš™™™™™É?T)r   rC   r   )r   r0   rL   rM   r…   r   r   ÚscoreÚlogÚpiÚexpr   )	r   r‡   rˆ   rV   r    r!   Úll1ÚhÚll2r&   r&   r'   Útest_pca_score–  s   

&$

rÆ   c                  C   sÌ   d\} }t j d¡}| | |¡| | d¡t  g d¢¡  t  g d¢¡ }| | |¡| | d¡t  g d¢¡  t  g d¢¡ }t  |¡}t|ƒD ]}t|dd}| |¡ | 	|¡||< qG| 
¡ dksdJ ‚d S )N)éÈ   r?   r   r   r‚   )r   r   rB   r
   r   )r   r0   rL   rM   r…   rS   r²   r   r   r¿   Úargmax)r‡   rˆ   rV   ÚXlr‰   r´   r­   r!   r&   r&   r'   Útest_pca_score3¬  s   44

rÊ   c                 C   sF   t jdd\}}td| dd}| |¡ t |j|j dk¡s!J ‚d S )NT©Ú
return_X_yr<   r   r_   )r   Úload_digitsr   r   r   Úallra   Únoise_variance_)r   r    Ú_r!   r&   r&   r'   Útest_pca_sanity_noise_variance»  s   
rÑ   c                 C   s^   t jdd\}}tdddd}td| dd}| |¡ | |¡ t| |¡| |¡dd d S )	NTrË   r<   r
   r   r_   r   rF   )r   rÍ   r   r   r   r¿   )r   r    rÐ   rd   re   r&   r&   r'   Ú"test_pca_score_consistency_solversÇ  s   

rÒ   c                 C   sŠ   d\}}t j d¡}| ||¡d t  g d¢¡ }t|| d}| |¡ |jdks+J ‚| |¡ | |j	¡ |jdks=J ‚| |j	¡ d S )Nr   r   rJ   r‚   r   )
r   r0   rL   rM   r…   r   r   rÏ   r¿   ÚT)r   r‡   rˆ   rV   r    r!   r&   r&   r'   Ú'test_pca_zero_noise_variance_edge_casesÓ  s   

rÔ   z#data, n_components, expected_solver)rª   r=   r,   )r)   r=   r=   r)   c                 C   s@   t |dd}t ||dd}| | ¡ | | ¡ t|j|jƒ d S )Nr   )r   rD   r_   )r   r   r   r}   )r   r   Úexpected_solverÚpca_autoÚpca_testr&   r&   r'   Útest_pca_svd_solver_autoé  s   ÿ

rØ   c                 C   sv   t j d¡ dd¡}tj |¡}tj |¡sJ ‚td| d}t	 
t¡ | |¡ W d   ƒ d S 1 s4w   Y  d S )Nr   r„   rƒ   r?   r   )r   r0   rL   ÚrandÚspÚsparseÚ
csr_matrixÚissparser   rT   r˜   Ú	TypeErrorr   )r   r    r!   r&   r&   r'   Útest_pca_sparse_inputÿ  s   "ÿrß   c                  C   sZ   t j d¡ dd¡} tddd}t t¡ | | ¡ W d   ƒ d S 1 s&w   Y  d S )Nr   r„   rƒ   r?   Úbad_argumentr   )	r   r0   rL   rÙ   r   rT   r˜   r™   r   )r    r!   r&   r&   r'   Útest_pca_bad_solver
  s
   "ÿrá   c                 C   s‚   t j d¡}| dd¡}t  d¡}tdƒD ]}td| |d}| |¡d ||d d …f< qt|t  	|dd d …f d¡ 
dd¡ƒ d S )Nr   r)   )r¶   r*   r¶   r*   r_   )r   r0   rL   rÙ   rS   r²   r   r   r   ÚtileÚreshape)r   rV   r    Útransformed_XÚir!   r&   r&   r'   Útest_pca_deterministic_output  s   
*ræ   c                 C   s   t | ƒ t| ƒ d S )N)Ú"check_pca_float_dtype_preservationÚ$check_pca_int_dtype_upcast_to_doubler”   r&   r&   r'   Útest_pca_dtype_preservation  s   ré   c                 C   sº   t j d¡ dd¡jt jdd}| t j¡}td| dd |¡}td| dd |¡}|j	j
t jks3J ‚|j	j
t jks<J ‚| |¡j
t jksGJ ‚| |¡j
t jksRJ ‚t|j	|j	dd	 d S )
Nr   rª   rƒ   F©r8   r?   r_   g-Cëâ6*?rF   )r   r0   rL   rÙ   ÚastypeÚfloat64Úfloat32r   r   r}   Údtyper   r   )r   ÚX_64ÚX_32Úpca_64Úpca_32r&   r&   r'   rç   #  s    rç   c                 C   sÄ   t j d¡ ddd¡}|jt jdd}|jt jdd}td| dd |¡}td| dd |¡}|j	j
t jks8J ‚|j	j
t jksAJ ‚| |¡j
t jksLJ ‚| |¡j
t jksWJ ‚t|j	|j	dd	 d S )
Nr   rª   )rª   rƒ   Frê   r?   r_   g-Cëâ6?rF   )r   r0   rL   Úrandintrë   Úint64Úint32r   r   r}   rî   rì   r   r   )r   ÚX_i64ÚX_i32rñ   rò   r&   r&   r'   rè   6  s   rè   c                  C   sT   t dd\} }tƒ  | |¡}|j ¡ d }t|d | |¡}|j| jd ks(J ‚d S )NTrË   éþÿÿÿr.   r   )r   r   r   rb   Úcumsumr    r   )r    ÚyÚpca1r   Úpca2r&   r&   r'   Ú5test_pca_n_components_mostly_explained_variance_ratioG  s
   rý   c               	   C   sZ   t  g d¢¡} d}dD ]}tjtdd t| ||ƒ W d   ƒ n1 s%w   Y  qd S )N©r   ç ÂëþKH´9rÿ   rÿ   r)   )r   r„   z"should be in \[1, n_features - 1\]r•   )r   r…   rT   r˜   r™   r   )ÚspectrumrW   rX   r&   r&   r'   Útest_assess_dimension_bad_rankS  s   ÿ€ÿr  c                  C   s`   t  g d¢¡} t| dddt j ksJ ‚dD ]}t| |dƒt j ks$J ‚qt| dƒdks.J ‚d S )Nrþ   r   r)   ©rX   rW   )r*   r?   )r   r…   r   Úinfr	   )r   rX   r&   r&   r'   Útest_small_eigenvalues_mle\  s
   r  c                  C   s<   t jddddddd\} }tdd | ¡}|jdksJ ‚d S )Nr¶   r   é   é*   )r6   rh   Ú
n_repeatedÚn_redundantÚn_clusters_per_classrD   r£   r.   )r   Úmake_classificationr   r   r    ©r    rÐ   r!   r&   r&   r'   Útest_mle_redundant_datai  s   
úr  c                  C   s^   t jdddd\} }tddd}tjtdd	 | | ¡ W d   ƒ d S 1 s(w   Y  d S )
Nr¶   é   r  )rW   r6   rD   r£   r
   r   z?n_components='mle' is only supported if n_samples >= n_featuresr•   )r   r
  r   rT   r˜   r™   r   r  r&   r&   r'   Útest_fit_mle_too_few_samplesx  s   þ"ür  c                  C   sr   d\} }t j d¡ | |¡}t j|d d …d d…f dd|d d …df< tddd}| |¡ |j|d ks7J ‚d S )	N)rª   r)   r   r+   r@   r£   r
   r”   r   )r   r0   rL   rM   rR   r   r   r    )rW   Ún_dimr    Úpca_sklr&   r&   r'   Útest_mle_simple_case…  s   *
r  c                  C   s   d\} }t  | |f¡}t jj|dd\}}}t|dd … t  |d ¡dd t  t|d| d¡s2J ‚td|ƒD ]}t||| ƒt j	 ksEJ ‚q7d S )	N)é	   r«   T)Úfull_matricesr   r   r   r  r*   )
r   rQ   rn   Úsvdr   rS   Úisfiniter   r²   r  )rW   r6   r    rÐ   ÚsrX   r&   r&   r'   Útest_assess_dimesion_rank_one  s    ÿr  c                  C   s   t j d¡} d}|  d|¡}tdd|dd |¡}tddd |¡}tdd	dd
 |¡}tt  |j¡t  |j¡ƒ tt  |j¡t  |j¡ƒ dS )zßCheck that exposing and setting `n_oversamples` will provide accurate results
    even when `X` as a large number of features.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/20589
    r   r:   rª   r   r   )r   r   Ún_oversamplesrD   r
   r   r   r_   N)	r   r0   rL   rM   r   r   r   r†   r}   )rV   r6   r    Úpca_randomizedrd   Ú
pca_arpackr&   r&   r'   Ú%test_pca_randomized_svd_n_oversamples  s   üûr  zparams, err_type, err_msgr  z!n_oversamples == 0, must be >= 1.g      ø?z(n_oversamples must be an instance of intc                 C   s`   t j d¡}| dd¡}tj||d tdi | ¤Ž |¡ W d  ƒ dS 1 s)w   Y  dS )z)Check the parameters validation in `PCA`.r   r:   r¶   r•   Nr&   )r   r0   rL   rM   rT   r˜   r   r   )ÚparamsÚerr_typerš   rV   r    r&   r&   r'   Útest_pca_params_validation·  s
   "ÿr  c                  C   s6   t dd tj¡} |  ¡ }tdd„ tdƒD ƒ|ƒ dS )z Check feature names out for PCA.r*   r.   c                 S   s   g | ]}d |› ‘qS )r!   r&   )r¬   rå   r&   r&   r'   r°   Ó  s    z*test_feature_names_out.<locals>.<listcomp>N)r   r   r   r   Úget_feature_names_outr   r²   )r!   Únamesr&   r&   r'   Útest_feature_names_outÎ  s   r!  c                 C   sV   t j d¡}| dd¡}tƒ  |¡}|j|j }t j|ddd 	¡ }t j
 ||¡ dS )z9Check the accuracy of PCA's internal variance calculationr   rª   rÇ   r   rH   N)r   r0   rL   rM   r   r   ra   rb   rm   rz   Útestingr   )r8   rV   r    r!   Úpca_varÚtrue_varr&   r&   r'   Útest_variance_correctnessÖ  s   r%  )OÚnumpyr   ÚscipyrÚ   Únumpy.testingr   rT   r2   Úsklearn.utils._testingr   Úsklearnr   Úsklearn.decompositionr   Úsklearn.datasetsr   Úsklearn.decomposition._pcar   r	   r   ÚPCA_SOLVERSÚmarkÚparametrizer²   r   r   r(   r7   r]   rf   r0   rL   rM   r
  rs   ru   r€   r‹   rŒ   r‘   r…   rÓ   rŸ   Úminr¡   r¤   r¥   r¨   rµ   rº   r¼   rÙ   r¾   rÆ   rÊ   rÑ   rÒ   rÔ   r1   rØ   rß   rá   ræ   ré   rç   rè   rý   r  r  r  r  r  r  r  r™   rÞ   r  r!  r%  r&   r&   r&   r'   Ú<module>   sü    5
þú





.ÿþýþ




ýþ




ùþ





	ýýúþ
