§
    ¨éUg¼¢  ã                   óX  — 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
mZ d dlmZ d dlmZmZmZ d dlmZ d dlmZmZ d dlmZmZmZ d d	lmZ d d
lmZmZ d dl m!Z!m"Z" d dl#m$Z$m%Z%  ej        ¦   «         Z&g d¢Z'd\  Z(Z) e*e(e)¦  «        Z+dzd„Z,ej-         .                    de'¦  «        ej-         .                    d e/de&j0        j1        d         ¦  «        ¦  «        d„ ¦   «         ¦   «         Z2ej-         .                    dg d¢¦  «        ej-         .                    dg d¢¦  «        ej-         .                    de%e$z   ¦  «        ej-         .                    dddg¦  «        ej-         .                    dg d¢¦  «        d„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Z3ej-         .                    de%e$z   ¦  «        d„ ¦   «         Z4ej-         .                    dd d!g¦  «        ej-         .                    de%e$z   ¦  «        d"„ ¦   «         ¦   «         Z5ej-         .                    de%e$z   ¦  «        d#„ ¦   «         Z6d$„ Z7ej-         .                    d%d&d'g¦  «        ej-         .                    d(e'¦  «        d)„ ¦   «         ¦   «         Z8ej-         .                    d* e9 e: e;e'¦  «        d!d+hz
  ¦  «        ¦  «        ¦  «        ej-         .                    d,d-d.g¦  «        ej-         .                    d/d'd&g¦  «        ej-         .                    d0d'd&g¦  «        d1„ ¦   «         ¦   «         ¦   «         ¦   «         Z<ej-         .                    d2ej=         >                    d ¦  «         ?                    d3d4¦  «         ej        d3d4d5d ¬6¦  «        d          ej=         >                    d ¦  «         ?                    d7d3¦  «        gg d8¢¬9¦  «        ej-         .                    de'¦  «        d:„ ¦   «         ¦   «         Z@ej-         .                    ddd g¦  «        d;„ ¦   «         ZAej-         .                    de'¦  «        d<„ ¦   «         ZBej-         .                    de'¦  «        d=„ ¦   «         ZCej-         .                    de'¦  «        d>„ ¦   «         ZDej-         .                    dg d?¢¦  «        ej-         .                    d0d'd&g¦  «        d@„ ¦   «         ¦   «         ZEej-         .                    dA ejF        g dB¢g dC¢g¦  «         ejF        g dB¢g dC¢g¦  «        jG        g¦  «        ej-         .                    dDg dE¢¦  «        dF„ ¦   «         ¦   «         ZHej-         .                    dGd! e*e&j0        j1        ¦  «        fd e*e&j0        j1        ¦  «        dz
  fd  e*e&j0        j1        ¦  «        fg¦  «        ej-         .                    dAe&j0        e&j0        jG        g¦  «        dH„ ¦   «         ¦   «         ZIej-         .                    dd+d!g¦  «        dI„ ¦   «         ZJej-         .                    ddd g¦  «        dJ„ ¦   «         ZKdK„ ZLdL„ ZMdM„ ZNdN„ ZOej-         .                    dOe&j0        dPdQfe&j0        dRdfej=         >                    d ¦  «         P                    dSdT¦  «        dUdQfg¦  «        dV„ ¦   «         ZQej-         .                    de'¦  «        dW„ ¦   «         ZRdX„ ZSej-         .                    de'¦  «        dY„ ¦   «         ZTej-         .                    ddd g¦  «        dZ„ ¦   «         ZUej-         .                    dd!d g¦  «        d[„ ¦   «         ZVej-         .                    d\g d]¢¦  «        d^„ ¦   «         ZWej-         .                    de'¦  «        d_„ ¦   «         ZXej-         .                    de'¦  «        d`„ ¦   «         ZYda„ ZZdb„ Z[dc„ Z\dd„ Z]de„ Z^df„ Z_dg„ Z`dh„ Zadi„ Zbdj„ Zcdk„ Zdej-         .                    d%d&d'g¦  «        dl„ ¦   «         Zedm„ Zfej-         .                    dn e¦   «         ¦  «        ej-         .                    doe"efge!¬9¦  «        ej-         .                    dp edQd!¬q¦  «         edQd!d&¬r¦  «         edsd!d&¬r¦  «         edQd¬q¦  «         edQdd&¬r¦  «         edQd dtd ¬u¦  «        ge!¬9¦  «        dv„ ¦   «         ¦   «         ¦   «         Zgej-         .                    dn e¦   «         ¦  «        ej-         .                    doefge!¬9¦  «        ej-         .                    dp edwd!¬q¦  «        ge!¬9¦  «        dx„ ¦   «         ¦   «         ¦   «         Zhdy„ ZidS ){é    N)Úassert_array_equal)Úconfig_contextÚdatasets)Úclone)Ú	load_irisÚmake_classificationÚmake_low_rank_matrix)ÚPCA)Ú_assess_dimensionÚ_infer_dimension)Ú_atol_for_typeÚ_convert_to_numpyÚ)yield_namespace_device_dtype_combinations©Údevice)Ú_array_api_for_testsÚassert_allclose)Ú_get_check_estimator_idsÚ check_array_api_input_and_values)ÚCSC_CONTAINERSÚCSR_CONTAINERS)ÚfullÚcovariance_eighÚarpackÚ
randomizedÚauto)éè  i,  çH¯¼šò×z>çê-�™—q=c                 ó”  — t          | j        |j        ||¬¦  «         t          | j        |j        ||¬¦  «         t          | j        |j        ||¬¦  «         t          | j        |j        ||¬¦  «         t          | j        |j        ||¬¦  «         | j        |j        k    sJ ‚| j        |j        k    sJ ‚| j        |j        k    sJ ‚d S )N©ÚrtolÚatol)	r   Úcomponents_Úexplained_variance_Úsingular_values_Úmean_Únoise_variance_Ún_components_Ú
n_samples_Ún_features_in_)Úpca1Úpca2r"   r#   s       úc/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/decomposition/tests/test_pca.pyÚ_check_fitted_pca_closer/   %   sç   € Ý�DÔ$ dÔ&6¸TÈÐMÑMÔMÐMÝØÔ  $Ô":ÀÈDðñ ô ð õ �DÔ)¨4Ô+@ÀtÐRVÐWÑWÔWÐWÝ�D”J ¤
°¸DÐAÑAÔAÐAÝ�DÔ(¨$Ô*>ÀTÐPTÐUÑUÔUÐUàÔ Ô!3Ò3Ð3Ð3Ð3ØŒ?˜dœoÒ-Ð-Ð-Ð-ØÔ $Ô"5Ò5Ð5Ð5Ð5Ð5Ð5ó    Ú
svd_solverÚn_componentsé   c                 ó  — t           j        }t          || ¬¦  «        }|                     |¦  «                             |¦  «        }|j        d         |k    sJ ‚|                     |¦  «        }t          ||¦  «         |                     |¦  «        }t          ||¦  «         |                     ¦   «         }| 	                    ¦   «         }t          t          j        ||¦  «        t          j        |j        d         ¦  «        d¬¦  «         d S )N©r2   r1   r3   r   ©r#   )ÚirisÚdatar
   ÚfitÚ	transformÚshapeÚfit_transformr   Úget_covarianceÚget_precisionÚnpÚdotÚeye)r1   r2   ÚXÚpcaÚX_rÚX_r2ÚcovÚ	precisions           r.   Útest_pcarH   3   sô   € õ 	Œ	€AÝ
˜<°JÐ
?Ñ
?Ô
?€Cð �'Š'�!‰*Œ*×
Ò
˜qÑ
!Ô
!€CØŒ9�QŒ<˜<Ò'Ð'Ð'Ð'ð ×Ò˜QÑÔ€DÝ�C˜ÑÔÐØ
�-Š-˜Ñ
Ô
€CÝ�C˜ÑÔÐð ×
Ò
Ñ
Ô
€CØ×!Ò!Ñ#Ô#€IÝ•B”F˜3 	Ñ*Ô*­B¬F°1´7¸1´:Ñ,>Ô,>ÀUÐKÑKÔKÐKÐKÐKr0   Údensity)ç{®Gáz„?çš™™™™™¹?g333333Ó?)r3   é   é
   Úsparse_containerr   r   Úscale)r3   rM   éd   c                 ó„  — d}d}t           j                             | ¦  «        } |t          j                             t
          t          ||¬¦  «        ¦  «        }	|                     |	j        d         ¦  «        |z  }
|	                     |
¦  «        }	t          ||| ¬¦  «        }| 
                    |	¦  «         |	                     ¦   «         }t          ||| ¬¦  «        }| 
                    |¦  «         t          |||¬¦  «          |t          j                             t
          t          ||¬¦  «        ¦  «        }|                     ¦   «         }t          |                     |¦  «        |                     |¦  «        |¬¦  «         t          |                     |¦  «        |                     |¦  «        |¬¦  «         dS )z?Check that the results are the same for sparse and dense input.r   ç»½×Ùß|Û=©Úrandom_staterI   r3   ©r2   r1   rT   r6   N)r?   ÚrandomÚdefault_rngÚspÚsparseÚSPARSE_MÚSPARSE_Nr;   Úmultiplyr
   r9   Útoarrayr/   r   r:   )Úglobal_random_seedr1   rN   r2   rI   rO   r#   Útransform_atolrT   rB   Úscale_vectorrC   ÚXdÚpcadÚX2ÚX2ds                   r.   Útest_pca_sparsere   I   s¶  € ð €DØ€Nå”9×(Ò(Ð);Ñ<Ô<€LØÐÝ
Œ	×ÒÝÝØ%Øð	 	ñ 	
ô 	
ñ	ô 	€Að  ×&Ò& q¤w¨q¤zÑ2Ô2°UÑ:€LØ	�
Š
�<Ñ Ô €Aå
Ø!ØØ'ðñ ô €Cð
 ‡G‚GˆA�J„J€Jà	
�Š‰Œ€BÝØ!ØØ'ðñ ô €Dð
 	‡H‚HˆR�L„L€Lõ ˜C ¨DÐ1Ñ1Ô1Ð1ð 
Ð	Ý
Œ	×ÒÝÝØ%Øð	 	ñ 	
ô 	
ñ
ô 
€Bð �*Š*‰,Œ,€Cå�C—M’M "Ñ%Ô% s§}¢}°SÑ'9Ô'9ÀÐOÑOÔOÐOÝ�C—M’M "Ñ%Ô% t§~¢~°cÑ':Ô':ÀÐPÑPÔPÐPÐPÐPr0   c                 óÐ  — t           j                             | ¦  «        } |t          j                             t
          t          |d¬¦  «        ¦  «        } |t          j                             t
          t          |d¬¦  «        ¦  «        }t          dd| ¬¦  «        }t          dd| ¬¦  «        }|                     |¦  «         | 	                    |¦  «        }t          ||¦  «         t          ||                     |¦  «        ¦  «         t          ||                     |¦  «        ¦  «         t          |                     |¦  «        |                     |¦  «        ¦  «         d S )NrJ   rS   rM   r   rU   )r?   rV   rW   rX   rY   rZ   r[   r
   r9   r<   r/   r   r:   )r^   rN   rT   rB   rc   Úpca_fitÚpca_fit_transformÚtransformed_Xs           r.   Útest_pca_sparse_fit_transformrj   †   sc  € å”9×(Ò(Ð);Ñ<Ô<€LØÐÝ
Œ	×ÒÝÝØ%Øð	 	ñ 	
ô 	
ñ	ô 	€Að 
Ð	Ý
Œ	×ÒÝÝØ%Øð	 	ñ 	
ô 	
ñ
ô 
€Bõ ˜r¨hÐEWÐXÑXÔX€GÝØ HÐ;Mðñ ô Ðð ‡K‚K��N„N€NØ%×3Ò3°AÑ6Ô6€Må˜GÐ%6Ñ7Ô7Ð7Ý�MÐ#4×#>Ò#>¸qÑ#AÔ#AÑBÔBÐBÝ�M 7×#4Ò#4°QÑ#7Ô#7Ñ8Ô8Ð8Ý�G×%Ò% bÑ)Ô)Ð+<×+FÒ+FÀrÑ+JÔ+JÑKÔKÐKÐKÐKr0   r   r   c                 ón  — t           j                             | ¦  «        } |t          j                             t
          t          |¬¦  «        ¦  «        }t          d|¬¦  «        }d|› d�}t          j	        t          |¬¦  «        5  |                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N©rT   é   r5   zWPCA only support sparse inputs with the "arpack" and "covariance_eigh" solvers, while "z" was passed©Úmatch)r?   rV   ÚRandomStaterX   rY   rZ   r[   r
   ÚpytestÚraisesÚ	TypeErrorr9   )r^   r1   rN   rT   rB   rC   Úerror_msg_patterns          r.   Útest_sparse_pca_solver_errorru   ¨   s
  € õ ”9×(Ò(Ð);Ñ<Ô<€LØÐÝ
Œ	×ÒÝÝØ%ð 	ñ 	
ô 	
ñ	ô 	€Aõ ˜2¨*Ð
5Ñ
5Ô
5€Cð	5Ø&ð	5ð 	5ð 	5ð õ 
Œ•yÐ(9Ð	:Ñ	:Ô	:ð ð Ø�Š�‰
Œ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÂB*Â*B.Â1B.c                 óv  — t           j                             | ¦  «        } |t          j                             t
          t          |¬¦  «        ¦  «        }t          dd¬¦  «                             |¦  «        }t          dd¬¦  «                             |¦  «        }t          |j
        |j
        d¬¦  «         dS )	zHCheck that "auto" and "arpack" solvers are equivalent for sparse inputs.rl   rM   r   r5   r   ç{®Gázt?©r"   N)r?   rV   rp   rX   rY   rZ   r[   r
   r9   r   r&   )r^   rN   rT   rB   Ú
pca_arpackÚpca_autos         r.   Ú7test_sparse_pca_auto_arpack_singluar_values_consistencyr{   ¼   s³   € õ
 ”9×(Ò(Ð);Ñ<Ô<€LØÐÝ
Œ	×ÒÝÝØ%ð 	ñ 	
ô 	
ñ	ô 	€Aõ  "°Ð:Ñ:Ô:×>Ò>¸qÑAÔA€JÝ ¨vÐ6Ñ6Ô6×:Ò:¸1Ñ=Ô=€HÝ�JÔ/°Ô1JÐQUÐVÑVÔVÐVÐVÐVr0   c                  ó2  — d} | dz   }t           j                             dd| |f¬¦  «        }t          | ¬¦  «        }t	          j        ¦   «         5  t	          j        dt          ¦  «         |                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrM   rL   éÿÿÿÿr3   ©Úsize©r2   Úerror)	r?   rV   Úuniformr
   ÚwarningsÚcatch_warningsÚsimplefilterÚRuntimeWarningr9   )r2   Ú
n_featuresrB   rC   s       r.   Útest_no_empty_slice_warningrˆ   Î   s×   € à€LØ Ñ!€JÝ
Œ	×Ò˜"˜a |°ZÐ&@ÐÑAÔA€AÝ
˜<Ð
(Ñ
(Ô
(€CÝ	Ô	 Ñ	"Ô	"ð ð ÝÔ˜g¥~Ñ6Ô6Ð6Ø�Š�‰
Œ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á0BÂBÂBÚcopyTFÚsolverc                 ó4  — t           j                             d¦  «        }d}d}d}d}t          j        |                     ||¦  «        t          j        t          j        t          j        dd|¦  «        ¦  «        |                     ||¦  «        ¦  «        ¦  «        }|d d …d d…fxx         dz  cc<   |j        ||fk    sJ ‚|                     d¬	¦  «                             ¦   «         d
k    sJ ‚| 	                    ¦   «         }t          |d|| dd¬¦  «        }	|	                     | 	                    ¦   «         ¦  «        }
|
j        ||fk    sJ ‚|	                     |¦  «        }t          |
|d¬¦  «         t          |
                     dd¬¦  «        t          j        |¦  «        ¦  «         t          |
                     d¬	¦  «        t          j        |¦  «        d¬¦  «         | 	                    ¦   «         }t          |d|| ¬¦  «                             | 	                    ¦   «         ¦  «        }	|	                     |¦  «        }|j        ||fk    sJ ‚|                     d¬	¦  «                             ¦   «         t%          j        dd¬¦  «        k    sJ ‚d S )Nr   rP   éP   rm   é2   g      $@ç      ð?é   ©ÚaxisgfffffæE@Té   )r2   Úwhitenr‰   r1   rT   Úiterated_powergü©ñÒMb@?rx   r3   ©Úddofr‘   r   r6   F)r2   r“   r‰   r1   gfffff†R@rK   )Úrel)r?   rV   rp   r@   ÚrandnÚdiagÚlinspacer;   Ústdr‰   r
   r<   r:   r   ÚonesÚmeanÚzerosr9   rq   Úapprox)rŠ   r‰   ÚrngÚ	n_samplesr‡   r2   ÚrankrB   ÚX_rC   Ú
X_whitenedÚX_whitened2ÚX_unwhiteneds                r.   Útest_whiteningr§   Ù   s…  € õ Œ)×
Ò
 Ñ
"Ô
"€CØ€IØ€JØ€LØ€Dõ 	ŒØ�	Š	�)˜TÑ"Ô"Ý
Œ�rŒw•r”{ 4¨¨dÑ3Ô3Ñ4Ô4°c·i²iÀÀjÑ6QÔ6QÑRÔRñ	ô 	€Að €a€a€aˆˆ"ˆ€f€I€I„I��N€I€I�IàŒ7�y *Ð-Ò-Ð-Ð-Ð-ð �5Š5�aˆ5‰=Œ=×ÒÑÔ Ò%Ð%Ð%Ð%ð 
�Š‰Œ€BÝ
Ø!ØØØØØðñ ô €Cð ×"Ò" 2§7¢7¡9¤9Ñ-Ô-€JØÔ 	¨<Ð8Ò8Ð8Ð8Ð8Ø—-’- Ñ#Ô#€KÝ�J °$Ð7Ñ7Ô7Ð7å�J—N’N¨°�NÑ2Ô2µB´G¸LÑ4IÔ4IÑJÔJÐJÝ�J—O’O¨�OÑ+Ô+­R¬X°lÑ-CÔ-CÈ%ÐPÑPÔPÐPà	
�Š‰Œ€BÝ
Ø!¨%°dÀvðñ ô ç	‚cˆ"�'Š'‰)Œ)�n„nð ð —=’= Ñ$Ô$€LØÔ )¨\Ð!:Ò:Ð:Ð:Ð:ð ×Ò ÐÑ#Ô#×'Ò'Ñ)Ô)­V¬]¸4ÀTÐ-JÑ-JÔ-JÒJÐJÐJÐJÐJÐJr0   Úother_svd_solverr   Ú
data_shapeÚtallÚwideÚrank_deficientr“   c                 ó.
  — |dk    rd\  }}nd\  }}d}|rgt           j                             |¦  «        }	t          ||¦  «        dz  }
|	                     ||z   |
f¬¦  «        |	                     |
|f¬¦  «        z  }n&t          ||z   |d|¬¦  «        }t          ||¦  «        }
|                     |d	¬
¦  «        }|d |…         ||d …         }}|t           j        k    rt          dd¬¦  «        }d}nt          dd¬¦  «        }d}i }| dk    rd}ddi}n!| dk    rt          j	        ||¦  «        dz
  }nd }t          |d|¬¦  «        }t          d|| ||dœ|¤Ž}|                     |¦  «        }t          j        |¦  «                             ¦   «         sJ ‚|j        |k    sJ ‚|                     |¦  «        }t          j        |¦  «                             ¦   «         sJ ‚|j        |k    sJ ‚|j        dk                         ¦   «         sJ ‚t!          |j        |j        fi |¤Ž t!          |j        |j        fi |¤Ž |j        }t          j        |¦  «                             ¦   «         sJ ‚|j        }t          j        |¦  «                             ¦   «         sJ ‚|j        |k    }|                     ¦   «         dk    sJ ‚t!          ||         ||         fi |¤Ž t!          |d d …|f         |d d …|f         fi |¤Ž |                     |¦  «        }t          j        |¦  «                             ¦   «         sJ ‚|j        |k    sJ ‚|                     |¦  «        }t          j        |¦  «                             ¦   «         sJ ‚|j        |k    sJ ‚t!          |d d …|f         |d d …|f         fi |¤Ž |                     |¦  «        }t          j        |¦  «                             ¦   «         sJ ‚|j        |k    sJ ‚|                     |¦  «        }t          j        |¦  «                             ¦   «         sJ ‚|j        |k    sJ ‚|j        j        d         |j        j        d         k    rt!          ||fi |¤Ž t!          ||fi |¤Ž d S |j        j        d         |
k     r/|j                             ¦   «         |k    sJ ‚t!          ||fi |¤Ž d S t!          |                     |¦  «        d d …|f         |                     |¦  «        d d …|f         fi |¤Ž d S )Nrª   )rP   rm   )rm   rP   rM   rL   r~   ç      à?)r¡   r‡   Útail_strengthrT   F©r‰   g¸…ëQ¸ž?çñhãˆµøä>)r#   r"   rR   r   r   r”   r�   r   r3   r   ©r2   r1   r“   )r2   r1   r“   rT   r   © )r?   rV   rW   ÚminÚstandard_normalr	   ÚastypeÚfloat32ÚdictÚminimumr
   r<   ÚisfiniteÚallÚdtyper%   r   Úexplained_variance_ratio_r$   Úsumr:   Úinverse_transformr;   )r¨   r©   r¬   r“   r^   Úglobal_dtyper¡   r‡   Ún_samples_testr    r¢   rB   ÚX_trainÚX_testÚtolsÚvariance_thresholdÚextra_other_kwargsr2   Úpca_fullÚ	pca_otherÚX_trans_full_trainÚX_trans_other_trainÚreference_componentsÚother_componentsÚstableÚX_trans_full_testÚX_trans_other_testÚX_recons_full_testÚX_recons_other_tests                                r.   Útest_pca_solver_equivalencerÒ     sP  € ð �VÒÐØ 'Ñˆ	�:�:à 'Ñˆ	�:Ø€Nàð *ÝŒi×#Ò#Ð$6Ñ7Ô7ˆÝ�9˜jÑ)Ô)¨QÑ.ˆØ×ÒØ˜nÑ,¨dÐ3ð  ñ 
ô 
à×Ò d¨JÐ%7ÐÑ8Ô8ñ9ˆˆõ !Ø .Ñ0Ø!ØØ+ð	
ñ 
ô 
ˆõ �9˜jÑ)Ô)ˆà	�Š� EˆÑ*Ô*€AØ˜
˜˜
”m Q y z z¤]ˆV€Gà•r”zÒ!Ð!Ý˜ DÐ)Ñ)Ô)ˆØ!ÐÐå˜ UÐ+Ñ+Ô+ˆØ"ÐàÐØ˜<Ò'Ð'ð ˆØ.°Ð3ÐÐØ	˜XÒ	%Ð	%õ ”z )¨ZÑ8Ô8¸1Ñ<ˆˆð ˆå ¸ÈÐOÑOÔO€HÝð Ø!Ø#ØØ'ð	ð ð
 ðð €Ið "×/Ò/°Ñ8Ô8ÐÝŒ;Ð)Ñ*Ô*×.Ò.Ñ0Ô0Ð0Ð0Ð0ØÔ# |Ò3Ð3Ð3Ð3Ø#×1Ò1°'Ñ:Ô:ÐÝŒ;Ð*Ñ+Ô+×/Ò/Ñ1Ô1Ð1Ð1Ð1ØÔ$¨Ò4Ð4Ð4Ð4àÔ(¨AÒ-×2Ò2Ñ4Ô4Ð4Ð4Ð4Ý�HÔ0°)Ô2OÐXÐXÐSWÐXÐXÐXÝØÔ*ØÔ+ðð ð ðð ð ð
 $Ô/ÐÝŒ;Ð+Ñ,Ô,×0Ò0Ñ2Ô2Ð2Ð2Ð2Ø Ô,ÐÝŒ;Ð'Ñ(Ô(×,Ò,Ñ.Ô.Ð.Ð.Ð.ð Ô)Ð,>Ò>€FØ�:Š:‰<Œ<˜!ÒÐÐÐÝÐ(¨Ô0Ð2BÀ6Ô2JÐSÐSÈdÐSÐSÐSõ Ø˜A˜A˜A˜v˜IÔ&Ð(:¸1¸1¸1¸f¸9Ô(Eðð ØIMðð ð ð !×*Ò*¨6Ñ2Ô2ÐÝŒ;Ð(Ñ)Ô)×-Ò-Ñ/Ô/Ð/Ð/Ð/ØÔ" lÒ2Ð2Ð2Ð2Ø"×,Ò,¨VÑ4Ô4ÐÝŒ;Ð)Ñ*Ô*×.Ò.Ñ0Ô0Ð0Ð0Ð0ØÔ# |Ò3Ð3Ð3Ð3ÝÐ& q q q¨& yÔ1Ð3DÀQÀQÀQÈÀYÔ3OÐXÐXÐSWÐXÐXÐXð "×3Ò3Ð4EÑFÔFÐÝŒ;Ð)Ñ*Ô*×.Ò.Ñ0Ô0Ð0Ð0Ð0ØÔ# |Ò3Ð3Ð3Ð3Ø#×5Ò5Ð6HÑIÔIÐÝŒ;Ð*Ñ+Ô+×/Ò/Ñ1Ô1Ð1Ð1Ð1ØÔ$¨Ò4Ð4Ð4Ð4àÔÔ! !Ô$¨Ô(<Ô(BÀ1Ô(EÒEÐEõ 	Ð*¨FÐ;Ð;°dÐ;Ð;Ð;ÝÐ+¨VÐ<Ð<°tÐ<Ð<Ð<Ð<Ð<Ø	Ô	Ô	# AÔ	&¨Ò	-Ð	-ð Ô+×/Ò/Ñ1Ô1Ð4FÒFÐFÐFÐFÝÐ*Ð,?ÐHÐHÀ4ÐHÐHÐHÐHÐHõ 	Ø×ÒÐ1Ñ2Ô2°1°1°1°f°9Ô=Ø×ÒÐ 3Ñ4Ô4°Q°Q°Q¸°YÔ?ð	
ð 	
ð ð	
ð 	
ð 	
ð 	
ð 	
r0   rB   rP   rŒ   éN   )Ún_informativerT   rM   )zrandom-tallzcorrelated-tallzrandom-wide)Úidsc                 óz  — t          d|d¬¦  «        }|                     | ¦  «        }t          |j        t	          j        |dd¬¦  «        ¦  «         t          j                             t	          j        | d¬¦  «        ¦  «        d         }t          |d¬	¦  «        d d…         }t          |j        |d
¬¦  «         d S )NrL   r   rU   r3   r•   F)ÚrowvarT)Úreverserw   rx   )
r
   r<   r   r%   r?   ÚvarÚlinalgÚeigrF   Úsorted)rB   r1   rC   ÚX_pcaÚexpected_results        r.   Ú%test_pca_explained_variance_empiricalrß   œ  s¯   € õ ˜1¨À!Ð
DÑ
DÔ
D€CØ×Ò˜aÑ Ô €EÝ�CÔ+­R¬V°EÀÈÐ-JÑ-JÔ-JÑKÔKÐKå”i—m’m¥B¤F¨1°UÐ$;Ñ$;Ô$;Ñ<Ô<¸QÔ?€OÝ˜_°dÐ;Ñ;Ô;¸B¸Q¸BÔ?€OÝ�CÔ+¨_À4ÐHÑHÔHÐHÐHÐHr0   c                 óN  — t           j                             d¦  «        }d\  }}|                     ||¦  «        }t	          dd|¬¦  «        }t	          d| |¬¦  «        }|                     |¦  «         |                     |¦  «         t          |j        |j        d¬¦  «         d S )Nr   ©rP   rŒ   rL   r   rU   rw   rx   )r?   rV   rp   r˜   r
   r9   r   r&   )r1   r    r¡   r‡   rB   rÇ   rÈ   s          r.   Ú$test_pca_singular_values_consistencyrâ   °  sŸ   € å
Œ)×
Ò
 Ñ
"Ô
"€CØ#Ñ€IˆzØ�	Š	�)˜ZÑ(Ô(€Aå ¨fÀ3ÐGÑGÔG€HÝ ¨zÈÐLÑLÔL€Ià‡L‚L��O„O€OØ‡M‚M�!ÑÔÐå�HÔ-¨yÔ/IÐPTÐUÑUÔUÐUÐUÐUr0   c           	      ó–  — t           j                             d¦  «        }d\  }}|                     ||¦  «        }t	          d| |¬¦  «        }|                     |¦  «        }t          t          j        |j        dz  ¦  «        t           j	         
                    |d¦  «        dz  ¦  «         t          |j        t          j        t          j        |dz  d¬¦  «        ¦  «        ¦  «         d\  }}|                     ||¦  «        }t	          d| |¬¦  «        }|                     |¦  «        }|t          j        t          j        |dz  d¬¦  «        ¦  «        z  }|d d …dfxx         d	z  cc<   |d d …d
fxx         dz  cc<   t          j        ||j        ¦  «        }|                     |¦  «         t          |j        g d¢¦  «         d S )Nr   rá   rL   rU   Úfror�   )rP   én   r�   ç‰A`åÐ"	@r3   çX9´Èv¾@)ræ   rç   rŽ   )r?   rV   rp   r˜   r
   r<   r   r¾   r&   rÚ   ÚnormÚsqrtr@   r$   r9   )r1   r    r¡   r‡   rB   rC   ÚX_transÚX_hats           r.   Útest_pca_singular_valuesrì   ¿  s¸  € å
Œ)×
Ò
 Ñ
"Ô
"€CØ#Ñ€IˆzØ�	Š	�)˜ZÑ(Ô(€Aå
˜1¨À#Ð
FÑ
FÔ
F€CØ×Ò Ñ"Ô"€Gõ Ý
ŒˆsÔ# QÑ&Ñ'Ô'­¬¯ª¸ÀÑ)GÔ)GÈ1Ñ)Lñô ð õ �CÔ(­"¬'µ"´&¸À!¹È!Ð2LÑ2LÔ2LÑ*MÔ*MÑNÔNÐNð %Ñ€IˆzØ�	Š	�)˜ZÑ(Ô(€Aå
˜1¨À#Ð
FÑ
FÔ
F€CØ×Ò Ñ"Ô"€GØ�rŒw•r”v˜g q™j¨qÐ1Ñ1Ô1Ñ2Ô2Ñ2€GØˆAˆAˆAˆqˆD€M€M„M�UÑ€M€M�MØˆAˆAˆAˆqˆD€M€M„M�UÑ€M€M�MÝŒF�7˜CœOÑ,Ô,€EØ‡G‚GˆE�N„N€NÝ�CÔ(Ð*=Ð*=Ð*=Ñ>Ô>Ð>Ð>Ð>r0   c                 óR  — t           j                             d¦  «        }d\  }}|                     ||¦  «        dz  }|d d…xx         t          j        g d¢¦  «        z  cc<   d|                     d|¦  «        z  t          j        g d¢¦  «        z   }t          d| ¬¦  «                             |¦  «                             |¦  «        }|t          j        |dz   	                    ¦   «         ¦  «        z  }t          t          j        |d         d         ¦  «        d	d
¬¦  «         d S )Nr   ©rP   r�   rK   rM   ©r�   é   é   r3   rL   r5   rŽ   rw   rx   )r?   rV   rp   r˜   Úarrayr
   r9   r:   ré   r¾   r   Úabs)r1   r    ÚnÚprB   ÚXtÚYts          r.   Útest_pca_check_projectionrø   Ý  s  € õ Œ)×
Ò
 Ñ
"Ô
"€CØ�D€A€qØ�	Š	�!�Q‰Œ˜#Ñ€AØ€c€r€c€F€F„F�bŒh�y�y�yÑ!Ô!Ñ!€F€F�FØ	ˆs�yŠy˜˜A‰ŒÑ	¥¤¨)¨)¨)Ñ!4Ô!4Ñ	4€Bå	˜!¨
Ð	3Ñ	3Ô	3×	7Ò	7¸Ñ	:Ô	:×	DÒ	DÀRÑ	HÔ	H€BØ�"Œ'�2�q‘5—+’+‘-”-Ñ
 Ô
 Ñ €Bå•B”F˜2˜aœ5 œ8Ñ$Ô$ c°Ð5Ñ5Ô5Ð5Ð5Ð5r0   c                 ó  — ddgddgg}t          d| d¬¦  «        }|                     |¦  «        }|j        s
J d¦   «         ‚t          |                     ¦   «         dd¬¦  «         t          |                     ¦   «         d	d
¬¦  «         d S )NrŽ   g        r3   r   rU   )rL   r3   r   r6   g¸…ëQ¸æ?rw   rx   )r
   r<   r;   r   r�   r›   )r1   rB   rC   rê   s       r.   Útest_pca_check_projection_listrú   ì  s“   € ð ˆsˆ�c˜3�ZÐ €AÝ
˜1¨À!Ð
DÑ
DÔ
D€CØ×Ò Ñ"Ô"€GØŒ=Ð Ð ˜&Ñ Ô Ð Ý�G—L’L‘N”N D¨uÐ5Ñ5Ô5Ð5Ý�G—K’K‘M”M 4¨dÐ3Ñ3Ô3Ð3Ð3Ð3r0   )r   r   r   c                 ór  — t           j                             d¦  «        }d\  }}|                     ||¦  «        }|d d …dfxx         dz  cc<   |g d¢z  }t	          d| |¬¦  «                             |¦  «        }|                     |¦  «        }|                     |¦  «        }t          ||d¬	¦  «         d S )
Nr   )r�   r�   r3   r±   )rñ   rð   r�   rL   r²   çñhãˆµøÔ>rx   )	r?   rV   rp   r˜   r
   r9   r:   r¿   r   )	r1   r“   r    rô   rõ   rB   rC   ÚYÚ	Y_inverses	            r.   Útest_pca_inverserÿ   ÷  sÁ   € õ Œ)×
Ò
 Ñ
"Ô
"€CØ�D€A€qØ�	Š	�!�Q‰Œ€AØ€a€a€aˆ€d€G€G„GˆwÑ€G€G�GØˆˆˆ�N€Aõ ˜1¨¸FÐ
CÑ
CÔ
C×
GÒ
GÈÑ
JÔ
J€CØ�Š�aÑÔ€AØ×%Ò% aÑ(Ô(€IÝ�A�y tÐ,Ñ,Ô,Ð,Ð,Ð,r0   r8   )r   r3   r   )r3   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   rL   zmust be strictly less than min)r   r�   zZn_components=3 must be between 0 and min\(n_samples, n_features\)=2 with svd_solver='full'c                 ó¬  — d}t          || ¬¦  «        }t          j        t          |¬¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   | dk    rr|}d                     ||¦  «        }t          j        t          |¬¦  «        5  t          || ¬¦  «                             |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S d S )NrL   ©r1   rn   r   zgn_components={}L? must be strictly less than min\(n_samples, n_features\)={}L? with svd_solver='arpack')r
   rq   rr   Ú
ValueErrorr9   Úformat)r1   r8   r2   Úerr_msgÚ
smallest_dÚ
pca_fitteds         r.   Útest_pca_validationr  	  sf  € ð, €JÝ�\¨jÐ9Ñ9Ô9€Jå	Œ•z¨Ð	1Ñ	1Ô	1ð ð Ø�Š�tÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð �XÒÐØ!ˆð"ç"(¢&¨°zÑ"BÔ"Bð 	õ
 Œ]�:¨WÐ5Ñ5Ô5ð 	?ð 	?Ý�¨Ð4Ñ4Ô4×8Ò8¸Ñ>Ô>Ð>ð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð Ðs#   ¯AÁAÁAÂ%CÃCÃCzsolver, n_components_c                 ój   — t          |¬¦  «        }|                     | ¦  «         |j        |k    sJ ‚d S )Nr  )r
   r9   r)   )r8   rŠ   r)   rC   s       r.   Útest_n_components_noner
  2  s=   € õ ˜Ð
 Ñ
 Ô
 €CØ‡G‚GˆD�M„M€MØÔ Ò-Ð-Ð-Ð-Ð-Ð-r0   c                 óà   — t           j                             d¦  «        }d\  }}|                     ||¦  «        }t	          d| ¬¦  «        }|                     |¦  «         |j        dk    sJ ‚d S )Nr   ©iX  rM   Úmler5   r3   )r?   rV   rp   r˜   r
   r9   r)   )r1   r    r¡   r‡   rB   rC   s         r.   Útest_n_components_mler  A  sq   € õ Œ)×
Ò
 Ñ
"Ô
"€CØ#Ñ€IˆzØ�	Š	�)˜ZÑ(Ô(€AÝ
˜5¨ZÐ
8Ñ
8Ô
8€CØ‡G‚GˆA�J„J€JØÔ Ò!Ð!Ð!Ð!Ð!Ð!r0   c                 óX  — t           j                             d¦  «        }d\  }}|                     ||¦  «        }t	          d| ¬¦  «        }d                     | ¦  «        }t          j        t          |¬¦  «        5  | 	                    |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r  r  r5   z:n_components='mle' cannot be a string with svd_solver='{}'rn   )
r?   rV   rp   r˜   r
   r  rq   rr   r  r9   )r1   r    r¡   r‡   rB   rC   r  s          r.   Útest_n_components_mle_errorr  L  sê   € õ Œ)×
Ò
 Ñ
"Ô
"€CØ#Ñ€IˆzØ�	Š	�)˜ZÑ(Ô(€AÝ
˜5¨ZÐ
8Ñ
8Ô
8€CØJ×QÒQØñô €Gõ 
Œ•z¨Ð	1Ñ	1Ô	1ð ð Ø�Š�‰
Œ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á<BÂB#Â&B#c                  óH  — t           j                             d¦  «        } d\  }}|                      ||¦  «        dz  }|d d…xx         t          j        g d¢¦  «        z  cc<   t          dd¬¦  «                             |¦  «        }|j        dk    sJ ‚|j        d	k    sJ ‚d S )
Nr   ©rP   rñ   rK   rM   ©r�   rð   rñ   r3   rL   r  r   r5   r3   )	r?   rV   rp   r˜   rò   r
   r9   r2   r)   )r    rô   rõ   rB   rC   s        r.   Útest_pca_dimr  [  s¬   € å
Œ)×
Ò
 Ñ
"Ô
"€CØ�D€A€qØ�	Š	�!�Q‰Œ˜#Ñ€AØ€c€r€c€F€F„F�bŒh���Ñ'Ô'Ñ'€F€F�FÝ
˜5¨VÐ
4Ñ
4Ô
4×
8Ò
8¸Ñ
;Ô
;€CØÔ˜uÒ$Ð$Ð$Ð$ØÔ Ò!Ð!Ð!Ð!Ð!Ð!r0   c                  ó  ‡‡— d\  Š} t           j                             d¦  «        }|                     ‰| ¦  «        dz  |                     ‰d¦  «        t          j        g d¢¦  «        z  z   t          j        g d¢¦  «        z   }t          | d¬¦  «        }|                     |¦  «         |j        Št          j        ˆˆfd	„t          d| ¦  «        D ¦   «         ¦  «        }|d         | 	                    ¦   «         d
‰z  z
  k    sJ ‚d S )N©r   rñ   r   rK   r3   r  )r3   r   r’   rð   é   r   r5   c                 ó2   •— g | ]}t          ‰|‰¦  «        ‘ŒS r³   )r   )Ú.0Úkrô   Úspects     €€r.   ú
<listcomp>z$test_infer_dim_1.<locals>.<listcomp>s  s&   ø€ ÐGÐGÐG°aÕ$ U¨A¨qÑ1Ô1ÐGÐGÐGr0   rJ   )
r?   rV   rp   r˜   rò   r
   r9   r%   ÚrangeÚmax)rõ   r    rB   rC   Úllrô   r  s        @@r.   Útest_infer_dim_1r   f  s   øø€ ð �D€A€qÝ
Œ)×
Ò
 Ñ
"Ô
"€Cà�	Š	�!�Q‰Œ˜#ÑØ
�)Š)�A�q‰/Œ/�BœH _ _ _Ñ5Ô5Ñ
5ñ	6å
Œ(�?�?�?Ñ
#Ô
#ñ	$ð õ
 ˜1¨Ð
0Ñ
0Ô
0€CØ‡G‚GˆA�J„J€JØÔ#€EÝ	ŒÐGÐGÐGÐGÐG½5ÀÀA¹;¼;ÐGÑGÔGÑ	HÔ	H€BØˆaŒ5�2—6’6‘8”8˜d Q™hÑ&Ò&Ð&Ð&Ð&Ð&Ð&r0   c                  óž  — d\  } }t           j                             d¦  «        }|                     | |¦  «        dz  }|d d…xx         t          j        g d¢¦  «        z  cc<   |dd…xx         t          j        g d¢¦  «        z  cc<   t          |d¬	¦  «        }|                     |¦  «         |j        }t          || ¦  «        d
k    sJ ‚d S )Nr  r   rK   rM   r  é   ©r  r   r’   rL   r}   r   r5   r3   ©	r?   rV   rp   r˜   rò   r
   r9   r%   r   ©rô   rõ   r    rB   rC   r  s         r.   Útest_infer_dim_2r&  w  sÕ   € ð �D€A€qÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ�	Š	�!�Q‰Œ˜#Ñ€AØ€c€r€c€F€F„F�bŒh���Ñ'Ô'Ñ'€F€F�FØ€bˆ€e€H€H„H•”Ð)Ð)Ð)Ñ*Ô*Ñ*€H€H�HÝ
˜1¨Ð
0Ñ
0Ô
0€CØ‡G‚GˆA�J„J€JØÔ#€EÝ˜E 1Ñ%Ô%¨Ò)Ð)Ð)Ð)Ð)Ð)r0   c                  óð  — d\  } }t           j                             d¦  «        }|                     | |¦  «        dz  }|d d…xx         t          j        g d¢¦  «        z  cc<   |dd…xx         t          j        g d¢¦  «        z  cc<   |dd	…xx         d
t          j        g d¢¦  «        z  z  cc<   t          |d¬¦  «        }|                     |¦  «         |j        }t          || ¦  «        d
k    sJ ‚d S )Nr  r   rK   rM   r  r"  r#  rm   é(   rL   )r}   r3   r}   r3   r}   r   r5   r$  r%  s         r.   Útest_infer_dim_3r)  …  s  € Ø�D€A€qÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ�	Š	�!�Q‰Œ˜#Ñ€AØ€c€r€c€F€F„F�bŒh���Ñ'Ô'Ñ'€F€F�FØ€bˆ€e€H€H„H•”Ð)Ð)Ð)Ñ*Ô*Ñ*€H€H�HØ€bˆ€e€H€H„H�•B”HÐ/Ð/Ð/Ñ0Ô0Ñ0Ñ0€H€H�HÝ
˜1¨Ð
0Ñ
0Ô
0€CØ‡G‚GˆA�J„J€JØÔ#€EÝ˜E 1Ñ%Ô%¨Ò)Ð)Ð)Ð)Ð)Ð)r0   z'X, n_components, n_components_validatedgffffffî?rL   rJ   rñ   r"  r®   c                 óª   — t          |d¬¦  «        }|                     | ¦  «         |j        t          j        |¦  «        k    sJ ‚|j        |k    sJ ‚d S )Nr   r5   )r
   r9   r2   rq   rŸ   r)   )rB   r2   Ún_components_validatedrC   s       r.   Ú$test_infer_dim_by_explained_variancer,  ’  s^   € õ ˜<°FÐ
;Ñ
;Ô
;€CØ‡G‚GˆA�J„J€JØÔ�vœ}¨\Ñ:Ô:Ò:Ð:Ð:Ð:ØÔÐ 6Ò6Ð6Ð6Ð6Ð6Ð6r0   c                 óê  — d\  }}t           j                             d¦  «        }|                     ||¦  «        dz  t          j        g d¢¦  «        z   }t          d| ¬¦  «        }|                     |¦  «         |                     |¦  «        }dt          j        dt           j	        z  t          j
        d¦  «        z  d	z  ¦  «        z  |z  }t          ||z  dd
¬¦  «         |                     |                     ||¦  «        dz  t          j        g d¢¦  «        z   ¦  «        }||k    sJ ‚t          dd| ¬¦  «        }|                     |¦  «         |                     |¦  «        }||k    sJ ‚d S )N)r   r�   r   rK   rï   rL   r5   g      à¿r3   g|®Gáz„?gš™™™™™©?rx   gš™™™™™É?T)r2   r“   r1   )r?   rV   rp   r˜   rò   r
   r9   ÚscoreÚlogÚpiÚexpr   )	r1   rô   rõ   r    rB   rC   Úll1ÚhÚll2s	            r.   Útest_pca_scorer5  ¡  sJ  € ð �D€A€qÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ�	Š	�!�Q‰Œ˜#Ñ¥¤¨¨¨Ñ 3Ô 3Ñ3€AÝ
˜1¨Ð
4Ñ
4Ô
4€CØ‡G‚GˆA�J„J€Jà
�)Š)�A‰,Œ,€CØ�rŒv�a�"œ%‘i¥"¤&¨¡)¤)Ñ+¨fÑ4Ñ5Ô5Ñ5¸Ñ9€AÝ�C˜!‘G˜Q TÐ*Ñ*Ô*Ð*à
�)Š)�C—I’I˜a ‘O”O cÑ)­B¬H°Y°Y°YÑ,?Ô,?Ñ?Ñ
@Ô
@€CØ�Š9ˆ9ˆ9ˆ9å
˜1 T°jÐ
AÑ
AÔ
A€CØ‡G‚GˆA�J„J€JØ
�)Š)�A‰,Œ,€CØ�Š9ˆ9ˆ9ˆ9ˆ9ˆ9r0   c                  ó¶  — d\  } }t           j                             d¦  «        }|                     | |¦  «        |                     | d¦  «        t          j        g d¢¦  «        z  z   t          j        g d¢¦  «        z   }|                     | |¦  «        |                     | d¦  «        t          j        g d¢¦  «        z  z   t          j        g d¢¦  «        z   }t          j        |¦  «        }t          |¦  «        D ]@}t          |d¬¦  «        }|                     |¦  «         | 	                    |¦  «        ||<   ŒA| 
                    ¦   «         dk    sJ ‚d S )N)éÈ   r�   r   r3   rï   )r3   r   r’   r   r5   )r?   rV   rp   r˜   rò   rž   r  r
   r9   r.  Úargmax)rô   rõ   r    ÚXlrö   r  r  rC   s           r.   Útest_pca_score3r:  ·  s'  € à�D€A€qÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ	�Š�1�a‰Œ˜3Ÿ9š9 Q¨™?œ?­R¬X°i°i°iÑ-@Ô-@Ñ@Ñ	@Å2Ä8ÈIÈIÈIÑCVÔCVÑ	V€BØ	�Š�1�a‰Œ˜3Ÿ9š9 Q¨™?œ?­R¬X°i°i°iÑ-@Ô-@Ñ@Ñ	@Å2Ä8ÈIÈIÈIÑCVÔCVÑ	V€BÝ	Œ�!‰Œ€BÝ�1‰XŒXð ð ˆÝ˜q¨VÐ4Ñ4Ô4ˆØ�Š�‰ŒˆØ—	’	˜"‘”ˆˆ1‰ˆà�9Š9‰;Œ;˜!ÒÐÐÐÐÐr0   c                 óÒ   — t          j        d¬¦  «        \  }}t          d| d¬¦  «        }|                     |¦  «         t	          j        |j        |j        z
  dk    ¦  «        sJ ‚d S )NT©Ú
return_X_yrm   r   rU   )r   Úload_digitsr
   r9   r?   r»   r%   r(   )r1   rB   Ú_rC   s       r.   Útest_pca_sanity_noise_variancer@  Æ  sj   € õ Ô¨4Ð0Ñ0Ô0�D€A€qÝ
˜2¨*À1Ð
EÑ
EÔ
E€CØ‡G‚GˆA�J„J€JÝŒ6�3Ô*¨SÔ-@Ñ@ÀQÒFÑGÔGÐGÐGÐGÐGÐGr0   c                 óB  — t          j        d¬¦  «        \  }}t          ddd¬¦  «        }t          d| d¬¦  «        }|                     |¦  «         |                     |¦  «         t	          |                     |¦  «        |                     |¦  «        d¬¦  «         d S )	NTr<  rm   r   r   rU   rü   rx   )r   r>  r
   r9   r   r.  )r1   rB   r?  rÇ   rÈ   s        r.   Ú"test_pca_score_consistency_solversrB  Ò  s—   € õ Ô¨4Ð0Ñ0Ô0�D€A€qÝ ¨vÀAÐFÑFÔF€HÝ °
ÈÐKÑKÔK€IØ‡L‚L��O„O€OØ‡M‚M�!ÑÔÐÝ�H—N’N 1Ñ%Ô% y§¢°qÑ'9Ô'9ÀÐEÑEÔEÐEÐEÐEr0   c                 óÀ  — d\  }}t           j                             d¦  «        }|                     ||¦  «        dz  t          j        g d¢¦  «        z   }t          || ¬¦  «        }|                     |¦  «         |j        dk    sJ ‚|                     |¦  «         |                     |j	        ¦  «         |j        dk    sJ ‚|                     |j	        ¦  «         d S )Nrî   r   rK   rï   r5   )
r?   rV   rp   r˜   rò   r
   r9   r(   r.  ÚT)r1   rô   rõ   r    rB   rC   s         r.   Ú'test_pca_zero_noise_variance_edge_casesrE  Þ  sÍ   € ð �D€A€qÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ�	Š	�!�Q‰Œ˜#Ñ¥¤¨¨¨Ñ 3Ô 3Ñ3€Aå
˜1¨Ð
4Ñ
4Ô
4€CØ‡G‚GˆA�J„J€JØÔ !Ò#Ð#Ð#Ð#ð ‡I‚Iˆa�L„L€Là‡G‚GˆAŒC�L„L€LØÔ !Ò#Ð#Ð#Ð#ð ‡I‚IˆaŒc�N„N€N€N€Nr0   z4n_samples, n_features, n_components, expected_solver))rM   r�   rñ   r   )r   r�   r�   r   )r   éô  i�  r   )r   rF  rM   r   )r   rF  r®   r   c                 óX  — t           j                             d¦  «                             | |f¬¦  «        }t	          |d¬¦  «        }t	          ||d¬¦  «        }|                     |¦  «         |j        |k    sJ ‚|                     |¦  «         t          |j        |j        ¦  «         d S )Nr   r~   )r2   rT   rU   )	r?   rV   rp   r‚   r
   r9   Ú_fit_svd_solverr   r$   )r¡   r‡   r2   Úexpected_solverr8   rz   Úpca_tests          r.   Útest_pca_svd_solver_autorK  ô  s²   € õ  Œ9× Ò  Ñ#Ô#×+Ò+°)¸ZÐ1HÐ+ÑIÔI€DÝ ¸1Ð=Ñ=Ô=€HÝØ!¨oÈAðñ ô €Hð ‡L‚L�ÑÔÐØÔ# Ò6Ð6Ð6Ð6Ø‡L‚L�ÑÔÐÝ�HÔ(¨(Ô*>Ñ?Ô?Ð?Ð?Ð?r0   c           	      ó¦  — t           j                             d¦  «        }|                     dd¦  «        }t          j        d¦  «        }t          d¦  «        D ]6}t          d| |¬¦  «        }|                     |¦  «        d         ||d d …f<   Œ7t          |t          j	        |dd d …f         d¦  «         
                    dd¦  «        ¦  «         d S )Nr   rM   )r"  rL   r"  rL   rU   )r?   rV   rp   Úrandrž   r  r
   r<   r   ÚtileÚreshape)r1   r    rB   ri   ÚirC   s         r.   Útest_pca_deterministic_outputrQ    sÊ   € å
Œ)×
Ò
 Ñ
"Ô
"€CØ�Š��RÑÔ€Aå”H˜WÑ%Ô%€MÝ�2‰YŒYð 6ð 6ˆÝ˜q¨ZÀcÐJÑJÔJˆØ!×/Ò/°Ñ2Ô2°1Ô5ˆ�a˜˜˜�dÑÐÝ�M¥2¤7¨=¸¸A¸A¸A¸Ô+>ÀÑ#CÔ#C×#KÒ#KÈBÐPQÑ#RÔ#RÑSÔSÐSÐSÐSr0   c                 óD   — t          | |¦  «         t          | ¦  «         d S )N)Ú"check_pca_float_dtype_preservationÚ$check_pca_int_dtype_upcast_to_double)r1   r^   s     r.   Útest_pca_dtype_preservationrU    s'   € å& zÐ3EÑFÔFÐFÝ(¨Ñ4Ô4Ð4Ð4Ð4r0   c                 óÒ  — t           j                             |¦  «                             dd¦  «        }|                     t           j        d¬¦  «        }|                     t           j        ¦  «        }t          d| |¬¦  «                             |¦  «        }t          d| |¬¦  «                             |¦  «        }|j	        j
        t           j        k    sJ ‚|j	        j
        t           j        k    sJ ‚|                     |¦  «        j
        t           j        k    sJ ‚|                     |¦  «        j
        t           j        k    sJ ‚t          |j	        |j	        dd¬¦  «         d S )	Nr   rð   Fr°   r�   rU   gü©ñÒMbP?r!   )r?   rV   rp   rM  r¶   Úfloat64r·   r
   r9   r$   r¼   r:   r   )r1   ÚseedrB   Ú	X_float64Ú	X_float32Úpca_64Úpca_32s          r.   rS  rS  !  sB  € å
Œ	×Ò˜dÑ#Ô#×(Ò(¨¨qÑ1Ô1€AØ—’�œ¨%�Ñ0Ô0€IØ—’�œÑ$Ô$€Iå˜a¨JÀTÐJÑJÔJ×NÒNØñô €Fõ ˜a¨JÀTÐJÑJÔJ×NÒNØñô €Fð ÔÔ#¥r¤zÒ1Ð1Ð1Ð1ØÔÔ#¥r¤zÒ1Ð1Ð1Ð1Ø×Ò˜IÑ&Ô&Ô,µ´
Ò:Ð:Ð:Ð:Ø×Ò˜IÑ&Ô&Ô,µ´
Ò:Ð:Ð:Ð:õ
 �FÔ&¨Ô(:ÀÈDÐQÑQÔQÐQÐQÐQr0   c                 óÖ  — t           j                             d¦  «                             ddd¦  «        }|                     t           j        d¬¦  «        }|                     t           j        d¬¦  «        }t          d| d¬¦  «                             |¦  «        }t          d| d¬¦  «                             |¦  «        }|j	        j
        t           j        k    sJ ‚|j	        j
        t           j        k    sJ ‚|                     |¦  «        j
        t           j        k    sJ ‚|                     |¦  «        j
        t           j        k    sJ ‚t          |j	        |j	        d¬	¦  «         d S )
Nr   r   )r   rð   Fr°   r�   rU   g-Cëâ6?rx   )r?   rV   rp   Úrandintr¶   Úint64Úint32r
   r9   r$   r¼   rW  r:   r   )r1   ÚX_i64ÚX_i32r[  r\  s        r.   rT  rT  9  s6  € åŒI×!Ò! !Ñ$Ô$×,Ò,¨Q°°iÑ@Ô@€EØ�LŠL�œ¨ˆLÑ.Ô.€EØ�LŠL�œ¨ˆLÑ.Ô.€Eå˜a¨JÀQÐGÑGÔG×KÒKÈEÑRÔR€FÝ˜a¨JÀQÐGÑGÔG×KÒKÈEÑRÔR€FàÔÔ#¥r¤zÒ1Ð1Ð1Ð1ØÔÔ#¥r¤zÒ1Ð1Ð1Ð1Ø×Ò˜EÑ"Ô"Ô(­B¬JÒ6Ð6Ð6Ð6Ø×Ò˜EÑ"Ô"Ô(­B¬JÒ6Ð6Ð6Ð6å�FÔ&¨Ô(:ÀÐFÑFÔFÐFÐFÐFr0   c                  ó&  — t          d¬¦  «        \  } }t          ¦   «                              | |¦  «        }|j                             ¦   «         d         }t          |¬¦  «                             | |¦  «        }|j        | j        d         k    sJ ‚d S )NTr<  éþÿÿÿr€   r3   )r   r
   r9   r½   Úcumsumr)   r;   )rB   Úyr,   r2   r-   s        r.   Ú5test_pca_n_components_mostly_explained_variance_ratiorg  J  s†   € õ  Ð%Ñ%Ô%�D€A€qÝ‰5Œ5�9Š9�Q˜‰?Œ?€DàÔ1×8Ò8Ñ:Ô:¸2Ô>€LÝ˜LÐ)Ñ)Ô)×-Ò-¨a°Ñ3Ô3€DØÔ ¤¨¤Ò+Ð+Ð+Ð+Ð+Ð+r0   c                  óÈ   — t          j        g d¢¦  «        } d}dD ]F}t          j        t          d¬¦  «        5  t          | ||¦  «         d d d ¦  «         n# 1 swxY w Y   ŒGd S )N©r3   ç ÂëþKH´9rj  rj  rM   )r   rñ   z"should be in \[1, n_features - 1\]rn   )r?   rò   rq   rr   r  r   )Úspectrumr¡   r¢   s      r.   Útest_assess_dimension_bad_rankrl  V  s´   € åŒxÐ0Ð0Ð0Ñ1Ô1€HØ€IØð 9ð 9ˆÝŒ]�:Ð-RÐSÑSÔSð 	9ð 	9Ý˜h¨¨iÑ8Ô8Ð8ð	9ð 	9ð 	9ñ 	9ô 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9øøøð 	9ð 	9ð 	9ð 	9øð9ð 9s   ¸AÁA	ÁA	c                  óò   — t          j        g d¢¦  «        } t          | dd¬¦  «        t           j         k    sJ ‚dD ]$}t          | |d¦  «        t           j         k    sJ ‚Œ%t	          | d¦  «        dk    sJ ‚d S )Nri  r3   rM   ©r¢   r¡   )rL   r�   )r?   rò   r   Úinfr   )rk  r¢   s     r.   Útest_small_eigenvalues_mlerp  _  s”   € õ ŒxÐ0Ð0Ð0Ñ1Ô1€Hå˜X¨A¸Ð<Ñ<Ô<ÅÄ¸wÒFÐFÐFÐFàð @ð @ˆÝ  ¨4°Ñ4Ô4½¼¸Ò?Ð?Ð?Ð?Ð?å˜H bÑ)Ô)¨QÒ.Ð.Ð.Ð.Ð.Ð.r0   c                  ó    — t          j        dddddd¬¦  «        \  } }t          d¬¦  «                             | ¦  «        }|j        dk    sJ ‚d S )Nr"  r3   é   é*   )r‡   rÔ   Ú
n_repeatedÚn_redundantÚn_clusters_per_classrT   r  r€   )r   r   r
   r9   r)   ©rB   r?  rC   s      r.   Útest_mle_redundant_datarx  l  sk   € õ Ô'ØØØØØØðñ ô �D€A€qõ ˜5Ð
!Ñ
!Ô
!×
%Ò
% aÑ
(Ô
(€CØÔ Ò!Ð!Ð!Ð!Ð!Ð!r0   c                  óî   — t          j        ddd¬¦  «        \  } }t          dd¬¦  «        }t          j        t
          d¬	¦  «        5  |                     | ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
Nr"  é   rs  )r¡   r‡   rT   r  r   r5   z?n_components='mle' is only supported if n_samples >= n_featuresrn   )r   r   r
   rq   rr   r  r9   rw  s      r.   Útest_fit_mle_too_few_samplesr{  {  sÄ   € õ Ô'°"ÀÐRTÐUÑUÔU�D€A€qå
˜5¨VÐ
4Ñ
4Ô
4€CÝ	ŒÝØOð
ñ 
ô 
ð ð ð 	�Š�‰
Œ
ˆ
ð	ð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÁA*Á*A.Á1A.c                  ó4  — d\  } }t           j                             d¦  «                             | |¦  «        }t          j        |d d …d d…f         d¬¦  «        |d d …df<   t          dd¬¦  «        }|                     |¦  «         |j        |dz
  k    sJ ‚d S )	N)r   rM   r   r}   r�   r  r   r  r3   )r?   rV   rp   r˜   r�   r
   r9   r)   )r¡   Ún_dimrB   Úpca_skls       r.   Útest_mle_simple_caser  ˆ  s¢   € ð  Ñ€IˆuÝ
Œ	×Ò˜aÑ Ô ×&Ò& y°%Ñ8Ô8€AÝŒw�q˜˜˜˜C˜R˜C˜”y rÐ*Ñ*Ô*€A€a€a€aˆ€e�HÝ�% FÐ+Ñ+Ô+€GØ‡K‚K��N„N€NØÔ  E¨A¡IÒ-Ð-Ð-Ð-Ð-Ð-r0   c                  óš  — d\  } }t          j        | |f¦  «        }t           j                             |d¬¦  «        \  }}}t	          |dd …         t          j        |dz
  ¦  «        d¬¦  «         t          j        t          |d| ¬¦  «        ¦  «        sJ ‚t          d|¦  «        D ]$}t          ||| ¦  «        t           j	         k    sJ ‚Œ%d S )	N)é	   r  T)Úfull_matricesr3   r   r6   rn  rL   )
r?   rœ   rÚ   Úsvdr   rž   rº   r   r  ro  )r¡   r‡   rB   r?  Úsr¢   s         r.   Útest_assess_dimesion_rank_oner…  “  sÙ   € à Ñ€IˆzÝ
Œ�˜JÐ'Ñ(Ô(€AÝŒi�mŠm˜A¨TˆmÑ2Ô2�G€A€qˆ!å�A�a�b�b”E�2œ8 J°¡NÑ3Ô3¸%Ð@Ñ@Ô@Ð@åŒ;Õ(¨°¸iÐHÑHÔHÑIÔIÐIÐIÐIÝ�a˜Ñ$Ô$ð @ð @ˆÝ   D¨)Ñ4Ô4½¼¸Ò?Ð?Ð?Ð?Ð?ð@ð @r0   c                  óJ  — t           j                             d¦  «        } d}|                      d|¦  «        }t	          dd|d¬¦  «                             |¦  «        }t	          dd¬¦  «                             |¦  «        }t	          dd	d¬
¦  «                             |¦  «        }t          t          j        |j        ¦  «        t          j        |j        ¦  «        ¦  «         t          t          j        |j        ¦  «        t          j        |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   rP   r   r3   r   )r2   r1   Ún_oversamplesrT   r   r5   r   rU   N)	r?   rV   rp   r˜   r
   r9   r   ró   r$   )r    r‡   rB   Úpca_randomizedrÇ   ry   s         r.   Ú%test_pca_randomized_svd_n_oversamplesr‰     s  € õ Œ)×
Ò
 Ñ
"Ô
"€CØ€JØ�	Š	�%˜Ñ$Ô$€Aõ ØØØ Øð	ñ ô ÷
 
‚cˆ!�f„fð õ  ¨fÐ5Ñ5Ô5×9Ò9¸!Ñ<Ô<€HÝ !°ÀqÐIÑIÔI×MÒMÈaÑPÔP€Jå•B”F˜8Ô/Ñ0Ô0µ"´&¸Ô9OÑ2PÔ2PÑQÔQÐQÝ•B”F˜>Ô5Ñ6Ô6½¼¸zÔ?UÑ8VÔ8VÑWÔWÐWÐWÐWr0   c                  óÖ   — t          d¬¦  «                             t          j        ¦  «        } |                      ¦   «         }t          d„ t          d¦  «        D ¦   «         |¦  «         dS )z Check feature names out for PCA.rL   r€   c                 ó   — g | ]}d |› �‘ŒS )rC   r³   )r  rP  s     r.   r  z*test_feature_names_out.<locals>.<listcomp>¿  s   € Ð4Ð4Ð4 a˜	˜a˜	˜	Ð4Ð4Ð4r0   N)r
   r9   r7   r8   Úget_feature_names_outr   r  )rC   Únamess     r.   Útest_feature_names_outrŽ  º  s^   € å
˜1Ð
Ñ
Ô
×
!Ò
!¥$¤)Ñ
,Ô
,€Cà×%Ò%Ñ'Ô'€EÝÐ4Ð4­5°©8¬8Ð4Ñ4Ô4°eÑ<Ô<Ð<Ð<Ð<r0   c                 ób  — t           j                             d¦  «        }|                     dd¦  «        }t	          ¦   «                              |¦  «        }|j        |j        z  }t          j        |dd¬¦  «         	                    ¦   «         }t           j
                             ||¦  «         dS )z9Check the accuracy of PCA's internal variance calculationr   r   r7  r3   r•   N)r?   rV   rp   r˜   r
   r9   r%   r½   rÙ   r¾   Útestingr   )r‰   r    rB   rC   Úpca_varÚtrue_vars         r.   Útest_variance_correctnessr“  Â  s�   € õ Œ)×
Ò
 Ñ
"Ô
"€CØ�	Š	�$˜ÑÔ€AÝ
‰%Œ%�)Š)�A‰,Œ,€CØÔ%¨Ô(EÑE€GÝŒv�a˜a aÐ(Ñ(Ô(×,Ò,Ñ.Ô.€HÝ„J×Ò˜w¨Ñ1Ô1Ð1Ð1Ð1r0   c           	      óH  — t          ||¦  «        }t          j                             |¦  «        }|                     ||¬¦  «        }|                     |¦  «         |                     ¦   «         }|                     ¦   «         }	|j        dk    rdnd}
t          d¬¦  «        5  t          |¦  «                             |¦  «        }|                     ¦   «         }|j        dk    sJ ‚|j        |j        k    sJ ‚t          t          ||¬¦  «        ||
t          |¦  «        ¬	¦  «         |                     ¦   «         }|j        dk    sJ ‚|j        |j        k    sJ ‚t          t          ||¬¦  «        |	|
t          |¦  «        ¬	¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
Nr   r·   g-Cëâ6*?gH¯¼šò×Š>T©Úarray_api_dispatch)rð   rð   ©Úxpr!   )r   r7   r8   r¶   Úasarrayr9   r>   r=   r¼   r   r   r;   r   r   r   )ÚnameÚ	estimatorÚarray_namespacer   Ú
dtype_namer˜  Úiris_npÚiris_xpÚprecision_npÚcovariance_npr"   Úestimator_xpÚprecision_xpÚcovariance_xps                 r.   Úcheck_array_api_get_precisionr¥  Í  sü  € Ý	˜o¨vÑ	6Ô	6€BÝŒi×Ò˜zÑ*Ô*€GØ�jŠj˜¨ˆjÑ0Ô0€Gà‡M‚M�'ÑÔÐØ×*Ò*Ñ,Ô,€LØ×,Ò,Ñ.Ô.€Mà”= IÒ-Ð-ˆ4ˆ4°4€DÝ	¨4Ð	0Ñ	0Ô	0ð 
ð 
Ý˜YÑ'Ô'×+Ò+¨GÑ4Ô4ˆØ#×1Ò1Ñ3Ô3ˆØÔ! VÒ+Ð+Ð+Ð+ØÔ! W¤]Ò2Ð2Ð2Ð2åÝ˜l¨rÐ2Ñ2Ô2ØØÝ 
Ñ+Ô+ð		
ñ 	
ô 	
ð 	
ð %×3Ò3Ñ5Ô5ˆØÔ" fÒ,Ð,Ð,Ð,ØÔ" g¤mÒ3Ð3Ð3Ð3åÝ˜m°Ð3Ñ3Ô3ØØÝ 
Ñ+Ô+ð		
ñ 	
ô 	
ð 	
ð!
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   Â#C'FÆFÆFz#array_namespace, device, dtype_nameÚcheckr›  r5   r²   rK   ÚQR)r2   r1   Úpower_iteration_normalizerrT   c                 ó>   — | j         j        } ||| |||¬¦  «         d S )N©r   r�  )Ú	__class__Ú__name__)r›  r¦  rœ  r   r�  rš  s         r.   Útest_pca_array_api_compliancer­  ï  s0   € ð8 ÔÔ'€DØ	€Eˆ$�	˜?°6ÀjÐQÑQÔQÐQÐQÐQr0   r  c                 óN  — | j         j        } ||| |||¬¦  «         t          ||¦  «        }t          d¬¦  «        \  }}|                     |d¬¦  «        }t          |j        ¦  «        }	t          | ¦  «        }
|                     ||¬¦  «        }|                     ||¬¦  «        }|
 	                    ||¦  «         |
j
        }|
j        }t          |
¦  «        }t          d¬¦  «        5  | 	                    ||¦  «         |j
        }t          |¦  «        t          |¦  «        k    sJ ‚t          ||¬	¦  «        }|j        }t          |¦  «        t          |¦  «        k    sJ ‚t          ||¬	¦  «        }d d d ¦  «         n# 1 swxY w Y   |j        |j        k    sJ ‚|j        d
         |j        d
         k    sJ ‚|j        |j        k    sJ ‚t!          |j        d         |j        d         ¦  «        }t#          |d |…         |d |…         |	¬¦  «         |j        d         |j        d         k    rp|d         }||d …         }||d …         }t%          t'          j        ||z
  ¦  «        |	k     ¦  «        sJ ‚t%          t'          j        ||z
  ¦  «        |	k     ¦  «        sJ ‚d S d S )Nrª  rs  rl   Fr°   r   Tr•  r—  r3   r   r6   r}   )r«  r¬  r   r   r¶   r   r¼   r   r™  r9   r$   r%   r   Úarray_devicer   r;   r´   r   r»   r?   ró   )r›  r¦  rœ  r   r�  rš  r˜  rB   rf  r#   ÚestÚX_xpÚy_xpÚcomponents_npÚexplained_variance_npÚest_xpÚcomponents_xpÚcomponents_xp_npÚexplained_variance_xpÚexplained_variance_xp_npÚmin_componentsÚreference_varianceÚextra_variance_npÚextra_variance_xp_nps                           r.   Ú!test_pca_mle_array_api_compliancer¾    s-  € ð. ÔÔ'€DØ	€Eˆ$�	˜?°6ÀjÐQÑQÔQÐQõ 
˜o¨vÑ	6Ô	6€Bå¨BÐ/Ñ/Ô/�D€A€qØ	�Š� %ˆÑ(Ô(€AÝ˜!œ'Ñ"Ô"€Då
�	Ñ
Ô
€Cà�:Š:�a ˆ:Ñ'Ô'€DØ�:Š:�a ˆ:Ñ'Ô'€Dà‡G‚GˆAˆq�M„M€Mà”O€MØÔ3Ðå�3‰ZŒZ€FÝ	¨4Ð	0Ñ	0Ô	0ð Sð SØ�
Š
�4˜ÑÔÐØÔ*ˆÝ˜MÑ*Ô*­l¸4Ñ.@Ô.@Ò@Ð@Ð@Ð@Ý,¨]¸rÐBÑBÔBÐà &Ô :ÐÝÐ1Ñ2Ô2µlÀ4Ñ6HÔ6HÒHÐHÐHÐHÝ#4Ð5JÈrÐ#RÑ#RÔ#RÐ ðSð Sð Sñ Sô Sð Sð Sð Sð Sð Sð Søøøð Sð Sð Sð Sð Ô! ]Ô%8Ò8Ð8Ð8Ð8ØÔ! !Ô$¨Ô(;¸AÔ(>Ò>Ð>Ð>Ð>Ø#Ô)Ð-BÔ-HÒHÐHÐHÐHõ Ð)Ô/°Ô2°MÔ4GÈÔ4JÑKÔK€NÝØ   . Ô1Ø˜o˜~˜oÔ.Øðñ ô ð ð Ô˜aÔ  MÔ$7¸Ô$:Ò:Ð:Ø2°2Ô6ÐØ1°.°/°/ÔBÐØ7¸¸¸ÔHÐÝ•2”6Ð+Ð.@Ñ@ÑAÔAÀDÒHÑIÔIÐIÐIÐIÝ•2”6Ð.Ð1CÑCÑDÔDÀtÒKÑLÔLÐLÐLÐLð ;Ð:ð
 	MÐLs   Ã+BFÆFÆ	Fc                  ó.  — t          j        d¦  «         t          j        d¦  «        } |                      t          j        ¦  «        }t          ddd¬¦  «        }t          j        d¦  «        }t          j        t          |¬¦  «        5  t          d	¬
¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |                     dd¬¦  «         t          j        d¦  «        }t          j        t          |¬¦  «        5  t          d	¬
¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |                     dd¬¦  «         t          j        d¦  «        }t          j        t          |¬¦  «        5  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 )NÚarray_api_compatÚarray_api_strictrL   r   r   rU   zCPCA with svd_solver='arpack' is not supported for Array API inputs.rn   Tr•  r   ÚLU)r1   r¨  z[Array API does not support LU factorization. Set `power_iteration_normalizer='QR'` instead.r   z’Array API does not support LU factorization, falling back to QR instead. Set `power_iteration_normalizer='QR'` explicitly to silence this warning.)rq   Úimportorskipr™  r7   r8   r
   ÚreÚescaperr   r  r   r9   Ú
set_paramsÚwarnsÚUserWarning)r˜  rŸ  rC   Úexpected_msgs       r.   Ú7test_array_api_error_and_warnings_on_unsupported_paramsrÊ  ]  sx  € Ý
ÔÐ*Ñ+Ô+Ð+Ý	Ô	Ð/Ñ	0Ô	0€BØ�jŠj�œÑ#Ô#€Gå
˜1¨ÀÐ
BÑ
BÔ
B€CÝ”9ØMñô €Lõ 
Œ•z¨Ð	6Ñ	6Ô	6ð ð Ý¨tÐ4Ñ4Ô4ð 	ð 	Ø�GŠG�GÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ‡N‚N˜lÀt€NÑLÔLÐLÝ”9ð	6ñô €Lõ 
Œ•z¨Ð	6Ñ	6Ô	6ð ð Ý¨tÐ4Ñ4Ô4ð 	ð 	Ø�GŠG�GÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ‡N‚N˜lÀv€NÑNÔNÐNÝ”9ð	Qñô €Lõ 
Œ•k¨Ð	6Ñ	6Ô	6ð ð Ý¨tÐ4Ñ4Ô4ð 	ð 	Ø�GŠG�GÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s¢   Â	CÂB<Â0CÂ<C 	Ã CÃC 	ÃCÃCÃCÄ$E.Ä5EÅE.ÅE	ÅE.ÅE	ÅE.Å.E2Å5E2Æ?H
ÇG2Ç&H
Ç2G6	Ç6H
Ç9G6	Ç:H
È
HÈH)r   r   )jrÄ  rƒ   Únumpyr?   rq   ÚscipyrX   Únumpy.testingr   Úsklearnr   r   Úsklearn.baser   Úsklearn.datasetsr   r   r	   Úsklearn.decompositionr
   Úsklearn.decomposition._pcar   r   Úsklearn.utils._array_apir   r   r   r   r¯  Úsklearn.utils._testingr   r   Úsklearn.utils.estimator_checksr   r   Úsklearn.utils.fixesr   r   r7   ÚPCA_SOLVERSrZ   r[   r´   ÚSPARSE_MAX_COMPONENTSr/   ÚmarkÚparametrizer  r8   r;   rH   re   rj   ru   r{   rˆ   r§   rÜ   ÚlistÚsetrÒ   rV   rp   r˜   rß   râ   rì   rø   rú   rÿ   rò   rD  r  r
  r  r  r  r   r&  r)  rM  r,  r5  r:  r@  rB  rE  rK  rQ  rU  rS  rT  rg  rl  rp  rx  r{  r  r…  r‰  rŽ  r“  r¥  r­  r¾  rÊ  r³   r0   r.   ú<module>rÝ     s�  ðØ 	€	€	€	Ø €€€à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,à ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø Ð Ð Ð Ð Ð Ø QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QØ %Ð %Ð %Ð %Ð %Ð %Ø JÐ JÐ JÐ JÐ JÐ JÐ JÐ Jðð ð ð ð ð ð ð ð ð ð
 <Ð ;Ð ;Ð ;Ð ;Ð ;Ø HÐ HÐ HÐ HÐ HÐ HÐ HÐ Hðð ð ð ð ð ð ð ð ?Ð >Ð >Ð >Ð >Ð >Ð >Ð >à€xÔÑÔ€ØIÐIÐI€ð
 Ñ €ˆ(Ø˜˜H hÑ/Ô/Ð ð6ð 6ð 6ð 6ð „×Ò˜ {Ñ3Ô3Ø„×Ò˜¨¨¨q°$´)´/À!Ô2DÑ)EÔ)EÑFÔFðLð Lñ GÔFñ 4Ô3ðLð( „×Ò˜Ð$5Ð$5Ð$5Ñ6Ô6Ø„×Ò˜¨¨¨Ñ4Ô4Ø„×ÒÐ+¨^¸nÑ-LÑMÔMØ„×Ò˜¨Ð2CÐ'DÑEÔEØ„×Ò˜ , , ,Ñ/Ô/ð5Qð 5Qñ 0Ô/ñ FÔEñ NÔMñ 5Ô4ñ 7Ô6ð
5Qðp „×ÒÐ+¨^¸nÑ-LÑMÔMðLð Lñ NÔMðLðB „×Ò˜¨°fÐ'=Ñ>Ô>Ø„×ÒÐ+¨^¸nÑ-LÑMÔMðð ñ NÔMñ ?Ô>ðð$ „×ÒÐ+¨^¸nÑ-LÑMÔMðWð Wñ NÔMðWð"ð ð ð „×Ò˜ $¨ Ñ/Ô/Ø„×Ò˜ ;Ñ/Ô/ð1Kð 1Kñ 0Ô/ñ 0Ô/ð1Kðj „×ÒØ˜˜˜t˜t C C¨Ñ$4Ô$4¸ÀÐ7GÑ$GÑHÔHÑIÔIñô ð „×Ò˜¨°Ð'7Ñ8Ô8Ø„×ÒÐ)¨E°4¨=Ñ9Ô9Ø„×Ò˜ E¨4 =Ñ1Ô1ðC
ð C
ñ 2Ô1ñ :Ô9ñ 9Ô8ñô ðC
ðL „×ÒØà
Œ	×Ò˜aÑ Ô ×&Ò& s¨BÑ/Ô/Ø$ˆÔ$ S¨"¸BÈQÐOÑOÔOÐPQÔRØ
Œ	×Ò˜aÑ Ô ×&Ò& r¨3Ñ/Ô/ðð
 	:Ð9Ð9ð ñ ô ð „×Ò˜ {Ñ3Ô3ðIð Iñ 4Ô3ñô ðIð „×Ò˜¨°,Ð'?Ñ@Ô@ðVð Vñ AÔ@ðVð „×Ò˜ {Ñ3Ô3ð?ð ?ñ 4Ô3ð?ð: „×Ò˜ {Ñ3Ô3ð6ð 6ñ 4Ô3ð6ð „×Ò˜ {Ñ3Ô3ð4ð 4ñ 4Ô3ð4ð „×Ò˜Ð'GÐ'GÐ'GÑHÔHØ„×Ò˜ E¨4 =Ñ1Ô1ð-ð -ñ 2Ô1ñ IÔHð-ð  „×ÒØ
ˆXˆRŒX�y�y�y ) ) )Ð,Ñ-Ô-¨x¨r¬x¸¸¸ÀIÀIÀIÐ8NÑ/OÔ/OÔ/QÐRñô ð „×ÒØ'ðð ð ñô ð ?ð ?ñ!ô ñô ð&?ð, „×ÒØà	���T”Y”_Ñ%Ô%Ð&Ø	�3�3�t”y”Ñ'Ô'¨!Ñ+Ð,Ø	�s�s˜4œ9œ?Ñ+Ô+Ð,ðñô ð „×Ò˜ $¤)¨T¬Y¬[Ð!9Ñ:Ô:ð.ð .ñ ;Ô:ñô ð.ð „×Ò˜¨°Ð'7Ñ8Ô8ð"ð "ñ 9Ô8ð"ð „×Ò˜¨°,Ð'?Ñ@Ô@ðð ñ AÔ@ðð"ð "ð "ð'ð 'ð 'ð"*ð *ð *ð
*ð 
*ð 
*ð „×ÒØ-à	Œ�D˜!ÐØ	Œ�D˜!ÐØ	Œ×	Ò	˜qÑ	!Ô	!×	&Ò	& q¨"Ñ	-Ô	-¨s°AÐ6ðñô ð7ð 7ñô ð7ð „×Ò˜ {Ñ3Ô3ðð ñ 4Ô3ðð*ð ð ð „×Ò˜ {Ñ3Ô3ðHð Hñ 4Ô3ðHð „×Ò˜¨°,Ð'?Ñ@Ô@ðFð Fñ AÔ@ðFð „×Ò˜¨°Ð'=Ñ>Ô>ðð ñ ?Ô>ðð* „×ÒØ:ðð ð ñô ð	@ð 	@ñô ð	@ð „×Ò˜ {Ñ3Ô3ðTð Tñ 4Ô3ðTð „×Ò˜ {Ñ3Ô3ð5ð 5ñ 4Ô3ð5ð
Rð Rð Rð0Gð Gð Gð"	,ð 	,ð 	,ð9ð 9ð 9ð
/ð 
/ð 
/ð"ð "ð "ð
ð 
ð 
ð.ð .ð .ð
@ð 
@ð 
@ðXð Xð Xð4=ð =ð =ð „×Ò˜ $¨ Ñ/Ô/ð2ð 2ñ 0Ô/ð2ð
ð 
ð 
ðD „×ÒØ)Ð+TÐ+TÑ+VÔ+Vñô ð „×ÒØØ%Ð'DÐEØ ð ñ ô ð
 „×ÒØàˆ˜ vÐ.Ñ.Ô.Øˆ˜ v°dÐ;Ñ;Ô;Øˆ˜¨¸Ð=Ñ=Ô=Øˆ˜Ð'8Ð9Ñ9Ô9Øˆ˜Ð'8ÀÐFÑFÔFØˆØØ#Ø'+Øð		
ñ 	
ô 	
ðð 	!ð ñ ô ð"Rð Rñ#ô ñô ñô ð2Rð „×ÒØ)Ð+TÐ+TÑ+VÔ+Vñô ð „×ÒØØ"Ð#Ø ð ñ ô ð
 „×ÒØð 	ˆ˜¨6Ð2Ñ2Ô2ðð 	!ð ñ ô ð7Mð 7Mñô ñô ñô ð(7Mðtð ð ð ð r0   