§
    fŠtj¨!  ã                   óž  — d dl mc mZ d dlZd dlmZmZm	Z	 d dl
mZ d dl mZ d dlmZmZmZmZ d dlZd dlmZ  ej        ¦   «         d„ ¦   «         Z ej        ¦   «         d„ ¦   «         Z ej        ej        ej        g¬	¦  «        d
„ ¦   «         Z ej        ¦   «         d„ ¦   «         Z ej        ¦   «         d„ ¦   «         Z G d„ d¦  «        ZdS )é    N)ÚhilbertÚsvdvalsÚnorm©Úaslinearoperator)Úinterp_decomp)Úassert_Úassert_allcloseÚassert_equalÚassert_array_equal)Úraisesc               #   ó   K  — dV — d S )Nçê-�™—q=© r   ó    úc/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/linalg/tests/test_interpolative.pyÚepsr   )   s   è è € à
€K€K€K€K€Kr   c               #   óP   K  — t           j                             d¦  «        } | V — d S )Nl   ,b„30k0 )ÚnpÚrandomÚdefault_rng©Úrngs    r   r   r   .   s)   è è € å
Œ)×
Ò
Ð 0Ñ
1Ô
1€CØ
€I€I€I€I€Ir   )Úparamsc              #   ó`   K  — d}t          |¦  «                             | j        ¦  «        V — d S )Ni,  )r   ÚastypeÚparam)ÚrequestÚns     r   ÚAr    4   s5   è è € ð 	€AÝ
�!‰*Œ*×
Ò
˜GœMÑ
*Ô
*Ð*Ð*Ð*Ð*Ð*r   c              #   ó,   K  — t          | ¦  «        V — d S )Nr   )r    s    r   ÚLr"   <   s    è è € å
˜1Ñ
Ô
ÐÐÐÐÐr   c                 óÎ   — t           j                             | d¬¦  «        }	 t          j        ||k     ¦  «        d         d         }n# t          $ r | j        d         }Y nw xY w|S )NF)Ú
compute_uvr   )r   ÚlinalgÚsvdÚnonzeroÚ
IndexErrorÚshape)r    r   ÚSÚranks       r   r+   r+   A   sl   € å
Œ	�Š�a EˆÑ*Ô*€AðÝŒz˜!˜cš'Ñ"Ô" 1Ô% aÔ(ˆˆøÝð ð ð ØŒw�qŒzˆˆˆðøøøà€Ks   £$A ÁA"Á!A"c                   óª  — e Zd Zej                             dg d¢¦  «        d„ ¦   «         Zej                             dg d¢¦  «        d„ ¦   «         Zej                             ddg¦  «        d„ ¦   «         Zej                             dg d¢¦  «        d„ ¦   «         Z	ej                             dg d¢¦  «        d„ ¦   «         Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej                             dej        ej        g¦  «        ej                             dddg¦  «        ej                             dddg¦  «        d„ ¦   «         ¦   «         ¦   «         Zd„ ZdS )ÚTestInterpolativeDecompositionzrand,lin_op)©FF)TF)TTc                 óÀ   — |s|n|}t          j        ||||¬¦  «        \  }}	}
t          j        |d d …|	d |…         f         |	|
¦  «        }t          |||d¬¦  «         d S ©N)Úrandr   ç:Œ0âŽyE>©ÚrtolÚatol©Ú
pymatrixidr   Úreconstruct_matrix_from_idr
   )Úselfr    r"   r   r1   Úlin_opr   ÚA_or_LÚkÚidxÚprojÚBs               r   Útest_real_id_fixed_precisionz;TestInterpolativeDecomposition.test_real_id_fixed_precisionM   sv   € ð
 !Ð'�� aˆå!Ô/°¸À$ÈCÐPÑPÔP‰ˆˆ3�ÝÔ1°!°A°A°A°s¸2¸A¸2´w°J´-ÀÀdÑKÔKˆÝ˜˜1 3¨UÐ3Ñ3Ô3Ð3Ð3Ð3r   c                 óÂ   — |}|s|n|}	t          j        |	|||¬¦  «        \  }
}t          j        |d d …|
d |…         f         |
|¦  «        }t          |||d¬¦  «         d S r0   r6   )r9   r    r"   r   r+   r1   r:   r   r<   r;   r=   r>   r?   s                r   Útest_real_id_fixed_rankz6TestInterpolativeDecomposition.test_real_id_fixed_rankX   sy   € ð ˆØ Ð'�� aˆåÔ,¨V°Q¸TÀsÐKÑKÔK‰	ˆˆTÝÔ1°!°A°A°A°s¸2¸A¸2´w°J´-ÀÀdÑKÔKˆÝ˜˜1 3¨UÐ3Ñ3Ô3Ð3Ð3Ð3r   r.   c                 ó  — |}|s|n|}	t          j        |	|||¬¦  «        \  }
}t          j        |
|¦  «        }t          j        |||
¦  «        }t	          ||d d …|
d |…         f         |d¬¦  «         t	          ||z  ||d¬¦  «         d S r0   )r7   r   Úreconstruct_interp_matrixÚreconstruct_skel_matrixr
   )r9   r    r"   r   r+   r1   r:   r   r<   r;   r=   r>   ÚPr?   s                 r   Ú%test_real_id_skel_and_interp_matriceszDTestInterpolativeDecomposition.test_real_id_skel_and_interp_matricesc   s¦   € ð ˆØ Ð'�� aˆåÔ,¨V°Q¸TÀsÐKÑKÔK‰	ˆˆTÝÔ0°°dÑ;Ô;ˆÝÔ.¨q°!°SÑ9Ô9ˆÝ˜˜1˜Q˜Q˜Q  B Q B¤˜Zœ=¨s¸Ð?Ñ?Ô?Ð?Ý˜˜A™˜q s°Ð7Ñ7Ô7Ð7Ð7Ð7r   c                 ó®   — |s|n|}t          j        ||||¬¦  «        \  }}	}
||	z  |
j                             ¦   «         z  }t	          |||d¬¦  «         d S r0   ©r7   r&   ÚTÚconjr
   )r9   r    r"   r   r1   r:   r   r;   ÚUr*   ÚVr?   s               r   Útest_svd_fixed_precisionz7TestInterpolativeDecomposition.test_svd_fixed_precisiono   se   € ð !Ð'�� aˆå”. ¨°4¸SÐAÑAÔA‰ˆˆ1ˆaØ�‰E�A”C—H’H‘J”JÑˆÝ˜˜1 3¨UÐ3Ñ3Ô3Ð3Ð3Ð3r   c                 ó²   — |}|s|n|}	t          j        |	|||¬¦  «        \  }
}}|
|z  |j                             ¦   «         z  }t	          |||d¬¦  «         d S r0   rI   )r9   r    r"   r   r+   r1   r:   r   r<   r;   rL   r*   rM   r?   s                 r   Útest_svd_fixed_rankz2TestInterpolativeDecomposition.test_svd_fixed_ranky   sj   € ð ˆØ Ð'�� aˆå”. ¨°¸3Ð?Ñ?Ô?‰ˆˆ1ˆaØ�‰E�A”C—H’H‘J”JÑˆÝ˜˜1 3¨UÐ3Ñ3Ô3Ð3Ð3Ð3r   c                 óú   — |}t          j        ||d¬¦  «        \  }}t          j        |d d …|d |…         f         ||¦  «        \  }}}	||z  |	j                             ¦   «         z  }
t          ||
|d¬¦  «         d S )NF©r1   r2   r3   )r7   r   Ú	id_to_svdrJ   rK   r
   )r9   r    r   r+   r<   r=   r>   rL   r*   rM   r?   s              r   Útest_id_to_svdz-TestInterpolativeDecomposition.test_id_to_svd„   s…   € ØˆåÔ,¨Q°¸Ð>Ñ>Ô>‰	ˆˆTÝÔ& q¨¨¨¨C°°°¬G¨¤}°c¸4Ñ@Ô@‰ˆˆ1ˆaØ�‰E�A”C—H’H‘J”JÑˆÝ˜˜1 3¨UÐ3Ñ3Ô3Ð3Ð3Ð3r   c                 ó‚   — t          |¦  «        }t          j        ||¬¦  «        }t          ||d         dd¬¦  «         d S )Nr   r   ç�íµ ÷Æ°>r2   r3   )r   r7   Úestimate_spectral_normr
   )r9   r    r   ÚsÚ
norm_2_ests        r   Útest_estimate_spectral_normz:TestInterpolativeDecomposition.test_estimate_spectral_normŒ   sC   € Ý�A‰JŒJˆÝÔ6°q¸cÐBÑBÔBˆ
Ý˜
 A a¤D¨t¸$Ð?Ñ?Ô?Ð?Ð?Ð?r   c                 óÚ   — |                      ¦   «         }|d d …dfxx         dz  cc<   t          ||z
  ¦  «        }t          j        |||¬¦  «        }t	          ||d         dd¬¦  «         d S )Nr   g333333ó?r   rV   r2   r3   )Úcopyr   r7   Úestimate_spectral_norm_diffr
   )r9   r    r   r?   rX   rY   s         r   Ú test_estimate_spectral_norm_diffz?TestInterpolativeDecomposition.test_estimate_spectral_norm_diff‘   ss   € Ø�FŠF‰HŒHˆØ	ˆ!ˆ!ˆ!ˆQˆ$ˆˆŒ�3‰ˆˆ‰Ý�A˜‘E‰NŒNˆÝÔ;¸A¸qÀcÐJÑJÔJˆ
Ý˜
 A a¤D¨t¸$Ð?Ñ?Ô?Ð?Ð?Ð?r   c                 óB  — t          j        g d¢g d¢g d¢g|j        ¬¦  «        }||fD ]u}d}t           j                             |t          |d¦  «        |z  ¦  «        }t          j        |||¬¦  «        }t          ||k    ¦  «         t          ||dz   k    ¦  «         Œvd S )N©é   ra   r   ©r   r   ra   ©Údtypeç•Ö&è.>é   r   é
   )	r   Úarrayrd   r%   Úmatrix_rankr   r7   Úestimate_rankr	   )r9   r    r   r?   ÚMÚrank_tolÚrank_npÚrank_ests           r   Útest_rank_estimates_arrayz8TestInterpolativeDecomposition.test_rank_estimates_array˜   sµ   € ÝŒH�i�i�i   ¨I¨I¨IÐ6¸a¼gÐFÑFÔFˆà�Q�ð 	.ð 	.ˆAØˆHÝ”i×+Ò+¨A­t°A°q©z¬z¸HÑ/DÑEÔEˆGÝ!Ô/°°8ÀÐEÑEÔEˆHÝ�H Ò'Ñ(Ô(Ð(Ý�H ¨"¡Ò,Ñ-Ô-Ð-Ð-ð	.ð 	.r   c                 óf  — t          j        g d¢g d¢g d¢g|j        ¬¦  «        }||fD ]‡}t          |¦  «        }d}t           j                             |t          |d¦  «        |z  ¦  «        }t          j        |||¬¦  «        }t          ||dz
  k    ¦  «         t          ||dz   k    ¦  «         Œˆd S )Nr`   rb   rc   re   rf   r   é   )
r   rh   rd   r   r%   ri   r   r7   rj   r	   )	r9   r    r   r?   rk   ÚMLrl   rm   rn   s	            r   Útest_rank_estimates_lin_opz9TestInterpolativeDecomposition.test_rank_estimates_lin_op¢   sÆ   € ÝŒH�i�i�i   ¨I¨I¨IÐ6¸a¼gÐFÑFÔFˆà�Q�ð 	-ð 	-ˆAÝ! !Ñ$Ô$ˆBØˆHÝ”i×+Ò+¨A­t°A°q©z¬z¸HÑ/DÑEÔEˆGÝ!Ô/°°HÀ#ÐFÑFÔFˆHÝ�H ¨!¡Ò+Ñ,Ô,Ð,Ý�H ¨!¡Ò+Ñ,Ô,Ð,Ð,ð	-ð 	-r   c                 óæ   — t          d¦  «                             t          j        ¦  «        }t	          t
          ¦  «        5  t          j        |dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Né   rV   FrR   )r   r   r   Úfloat32Úassert_raisesÚ
ValueErrorr7   r   )r9   r    s     r   Útest_badcallz+TestInterpolativeDecomposition.test_badcall­   s§   € Ý�A‰JŒJ×Ò�bœjÑ)Ô)ˆÝ�:Ñ&Ô&ð 	:ð 	:ÝÔ$ Q¨°5Ð9Ñ9Ô9Ð9ð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:ð 	:ð 	:s   ÁA&Á&A*Á-A*c                 ó²   — t          j        d¦  «        }t          t          ¦  «        5  t	          j        |d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)rq   é   rq   )r   Úonesrw   rx   r7   r&   )r9   Úas     r   Útest_rank_too_largez2TestInterpolativeDecomposition.test_rank_too_large²   s“   € åŒG�F‰OŒOˆÝ�:Ñ&Ô&ð 	!ð 	!ÝŒN˜1˜aÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!s   ©AÁAÁAc                 ó  — d}t           j                             d¦  «        }|                     d¦  «        }t          j        ||¦  «        \  }}}t          ||j        d         ¦  «         t          j        ||¦  «        }t          j        |||¦  «        }t          |||z  ¦  «         t          j        ||¦  «        \  }}t          j        ||¦  «        }t          j        |||¦  «        }t          |||z  ¦  «         d S )Nr   iÒ  )é   é   ra   )
r   r   r   r7   r   r   r)   rD   rE   r
   )	r9   r   r   r    r<   r=   r>   rF   r?   s	            r   Útest_full_rankz-TestInterpolativeDecomposition.test_full_rank¸   sí   € ØˆÝŒi×#Ò# DÑ)Ô)ˆà�JŠJ�wÑÔˆÝ!Ô/°°3Ñ7Ô7‰ˆˆ3�Ý�Q˜œ œ
Ñ#Ô#Ð#åÔ0°°dÑ;Ô;ˆÝÔ.¨q°!°SÑ9Ô9ˆÝ˜˜1˜q™5Ñ!Ô!Ð!õ Ô,¨Q°Ñ2Ô2‰	ˆˆTåÔ0°°dÑ;Ô;ˆÝÔ.¨q°!°SÑ9Ô9ˆÝ˜˜1˜q™5Ñ!Ô!Ð!Ð!Ð!r   rd   r1   TFr   ra   gš™™™™™¹?c                 óÈ   — t          j        g d¢g d¢g d¢g d¢g d¢g|d¬¦  «        }|                     ¦   «         }t          |j        ||¬¦  «         t          ||¦  «         d S )	N)éÿÿÿÿr„   r„   r   r   r   )r   r   r   ra   ra   ra   )ra   r   r   ra   r   r   )r   ra   r   r   ra   r   )r   r   ra   r   r   ra   ÚC)rd   ÚorderrR   )r   rh   r\   r   rJ   r   )r9   rd   r1   r   r    r?   s         r   Útest_bug_9793z,TestInterpolativeDecomposition.test_bug_9793Ë   s�   € õ ŒHÐ+Ð+Ð+Ø(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(ð	*ð
 !¨ð-ñ -ô -ˆð �FŠF‰HŒHˆÝ�a”c˜3 TÐ*Ñ*Ô*Ð*Ý˜1˜aÑ Ô Ð Ð Ð r   c                 ó@  — t           j                             d¦  «        }|                     ddg¬¦  «        }t	          |¦  «        }t          j        |d¦  «        \  }}}t          |j        d¦  «         t          |j        d¦  «         t          |j        d¦  «         |                     d	d
g¬¦  «        }t	          |¦  «        }t          j        |d¦  «        \  }}}t          |j        d¦  «         t          |j        d¦  «         t          |j        d¦  «         d S )Nl   Ca£N¿J1 é   ru   )Úsizer{   )r‰   r{   )r{   )ru   r{   rq   é	   rf   )rq   rf   )rf   )r‹   rf   )	r   r   r   Úuniformr   r7   r&   r   r)   )r9   r   ÚxÚxlÚurX   Úvs          r   Ú%test_svd_aslinearoperator_shape_checkzDTestInterpolativeDecomposition.test_svd_aslinearoperator_shape_checkÙ   s   € åŒi×#Ò#Ð$4Ñ5Ô5ˆØ�KŠK˜a ˜VˆKÑ$Ô$ˆÝ˜aÑ Ô ˆÝ”.  QÑ'Ô'‰ˆˆ1ˆaÝ�Q”W˜fÑ%Ô%Ð%Ý�Q”W˜dÑ#Ô#Ð#Ý�Q”W˜fÑ%Ô%Ð%à�KŠK˜a ˜VˆKÑ$Ô$ˆÝ˜aÑ Ô ˆÝ”.  QÑ'Ô'‰ˆˆ1ˆaÝ�Q”W˜fÑ%Ô%Ð%Ý�Q”W˜dÑ#Ô#Ð#Ý�Q”W˜fÑ%Ô%Ð%Ð%Ð%r   N)Ú__name__Ú
__module__Ú__qualname__ÚpytestÚmarkÚparametrizer@   rB   rG   rN   rP   rT   rZ   r^   ro   rs   ry   r~   r‚   r   Úfloat64Ú
complex128r‡   r‘   r   r   r   r-   r-   K   s:  € € € € € à„[×ÒØØ5Ð5Ð5ñ7ô 7ð4ð 4ñ7ô 7ð4ð „[×ÒØØ5Ð5Ð5ñ7ô 7ð4ð 4ñ7ô 7ð4ð „[×Ò˜]¨^Ð,<Ñ=Ô=ð	8ð 	8ñ >Ô=ð	8ð „[×ÒØØ5Ð5Ð5ñ7ô 7ð4ð 4ñ7ô 7ð4ð „[×ÒØØ5Ð5Ð5ñ7ô 7ð4ð 4ñ7ô 7ð4ð4ð 4ð 4ð@ð @ð @ð
@ð @ð @ð.ð .ð .ð	-ð 	-ð 	-ð:ð :ð :ð
!ð !ð !ð"ð "ð "ð& „[×Ò˜W r¤z°2´=Ð&AÑBÔBØ„[×Ò˜V d¨E ]Ñ3Ô3Ø„[×Ò˜U Q¨ HÑ-Ô-ð	!ð 	!ñ .Ô-ñ 4Ô3ñ CÔBð	!ð&ð &ð &ð &ð &r   r-   )Úscipy.linalg.interpolativer%   Úinterpolativer7   Únumpyr   Úscipy.linalgr   r   r   Úscipy.sparse.linalgr   r   Únumpy.testingr	   r
   r   r   r•   r   rw   Úfixturer   r   r˜   r™   r    r"   r+   r-   r   r   r   ú<module>r¡      sÏ  ðð: 0Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø Ð Ð Ð Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4ð/ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /ð /à €€€Ø *Ð *Ð *Ð *Ð *Ð *ð €„ÑÔðð ñ Ôðð €„ÑÔðð ñ Ôðð
 €„˜œ
 B¤MÐ2Ð3Ñ3Ô3ð+ð +ñ 4Ô3ð+ð €„ÑÔðð ñ Ôðð €„ÑÔðð ñ Ôðð]&ð ]&ð ]&ð ]&ð ]&ñ ]&ô ]&ð ]&ð ]&ð ]&r   