Ë
    âQ(h¿  ã                   óv  — d dl Z d dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZmZ ej                  dej                  dej                  dej                   diZd„ Zg Zej)                  «       D ]Q  Zg Z ee«      rej.                  j0                  gZej3                   ej4                  eeej6                  ¬	«      «       ŒS  ee«      Zed fd
„Zd„ Zdd„Z ej.                  jC                  dejD                  eef«      ej.                  jC                  de«      ej.                  jC                  dd«      ej.                  jC                  dd«      d„ «       «       «       «       Z#ej.                  jH                  ej.                  jC                  de«      ej.                  jC                  dd«      d„ «       «       «       Z%ej.                  jC                  dd«      ej.                  jC                  dedd «      d„ «       «       Z&ej.                  j0                  ej.                  jO                  «       d„ «       «       Z(y)é    N)Úassert_allclose)Úraises)Ú_svdp)Ú	csr_arrayÚ	csc_arrayg-Cëâ6?g:Œ0âŽyE>c                 óF   — t        j                  | «      j                  dk(  S )NÚc)ÚnpÚdtypeÚkind)r   s    úd/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/sparse/linalg/tests/test_propack.pyÚis_complex_typer      s   € Ü�8‰8�E‹?×Ñ 3Ñ&Ð&ó    )ÚmarksÚidc                 óh  — t         j                  j                  |«      }t        |«      rAdd|j	                  ||«      z  z   dz
  d|j	                  ||«      z  z   j                  |«      }n'dd|j	                  ||«      z  z   j                  |«      }d||j                  d|z  dz
  kD  <    | |fi |¤ŽS )zGenerate a random sparse arrayéûÿÿÿé
   y              @y              $@r   é   )r
   ÚrandomÚRandomStater   ÚrandÚastypeÚreal)	ÚconstructorÚnÚmÚfr   ÚrseedÚkwargsÚrngÚMs	            r   Úgenerate_matrixr#   "   sµ   € ô �)‰)×
Ñ
 Ó
&€CÜ�uÔØ�2˜Ÿ™  A›Ñ&Ñ&ØñØ˜#Ÿ(™( 1 a›.Ñ(ñ)ß*0©&°«-ñ 	
ð �"�s—x‘x  1“~Ñ%Ñ%×-Ñ-¨eÓ4ˆØ€A€a‡f�fˆr�A‰v˜‰zÑÑÙ�qÑ#˜FÑ#Ð#r   c                 óì   — t        t        j                  | j                  «       j                  |«      «      }t        |t        j                  | j                  d   |j                  d   «      ||¬«       y)z7Check that the first k rows of u1 and u2 are orthogonalé   ©ÚrtolÚatolN)Úabsr
   ÚdotÚconjÚTr   ÚeyeÚshape)Úu1Úu2r'   r(   ÚAs        r   Úassert_orthogonalr2   /   sJ   € äŒB�F‰F�2—7‘7“9—;‘; Ó#Ó$€AÜ�A”r—v‘v˜bŸh™h q™k¨2¯8©8°A©;Ó7¸dÈÖNr   c           
      óF  — t         |   }t        t        j                  | |||«      }	 ||	«      }
t        j                  j                  |	d¬«      \  }}}t        |
||||t        j                  j                  d«      ¬«      \  }}}}|j                  «       dk(  rDt        j                  ||d«      }t        j                  ||d«      }t        j                  ||«      }t        |d | |||¬«       t        ||||¬«       t        |j                  |j                  ||¬«       y )NF)Úfull_matricesr   )ÚkÚwhichÚirl_modeÚtolr!   ÚSMr%   r&   )ÚTOLSr#   r
   ÚasarrayÚlinalgÚsvdr   r   Údefault_rngÚupperÚrollr   r2   r,   )r   r   r   r   r5   r7   r6   r   r8   r"   ÚMspr/   Úsigma1Úvt1r0   Úsigma2Úvt2Ú_s                     r   Ú
check_svdprG   5   sö   € Ü
ˆu‰+€CäœŸ
™
 A q¨!¨UÓ3€AÙ
�a‹.€Cä—i‘i—m‘m A°U�mÓ;�O€Bˆ�Ü˜s a¨u¸xØ#&¬B¯I©I×,AÑ,AÀ!Ó,DôFÑ€Bˆ��Qð ‡{�{ƒ}˜ÒÜ�W‰W�R˜˜AÓˆÜ�g‰g�c˜1˜aÓ ˆÜ—‘˜ Ó#ˆô �F˜2˜A�J ¨S°sÕ;ô �b˜" 3¨SÕ1Ü�c—e‘e˜SŸU™U¨°3Ö7r   Úctorr   Úirl)TFr6   )ÚLMr9   c           
      óò   — t         j                  j                  d«       d\  }}}|dk(  r0|s.d}t        t        |¬«      5  t        ||| ||||«       d d d «       y t        ||| ||||«       y # 1 sw Y   y xY w)Nr   )r   é   é   r9   z#`which`='SM' requires irl_mode=True)Úmatch)r
   r   ÚseedÚassert_raisesÚ
ValueErrorrG   )rH   r   rI   r6   r   r   r5   Úmessages           r   Ú	test_svdprS   M   s{   € ô
 ‡I�I‡N�N�1ÔØ�G€A€qˆ!Ø�‚}™SØ7ˆÜœ:¨WÔ5ñ 	9Ü�q˜!˜T 5¨!¨S°%Ô8÷	9ð 	9ô 	�1�a˜˜u a¨¨eÕ4÷	9ð 	9ús   Á A-Á-A6)FTc                 óP  — t         j                  dt         j                  dt         j                  dt         j                  di|    }t
        j                  j                  t        «      }d}t
        j                  j                  ||«      }t        j                  |d¬«      5 }t        | «      r#|d   j                  «       j                  | «      }n"|d   j                  «       j                  | «      }d d d «       d	}t        ||t         j                  j!                  d
«      ¬«      \  }	}
}}t        | «      rdn|}|	d d …d |…f   }	|d |…d d …f   }|
d | }
t#        t        j$                  |	j&                  d   «      |	j)                  «       j*                  |	z  |¬«       t#        t        j$                  |j&                  d
   «      ||j)                  «       j*                  z  |¬«       t         j,                  j/                  |j1                  «       «      \  }}}|d d …d |…f   }|d | }|d |…d d …f   }|t        j2                  |«      z  |z  }|	t        j2                  |
«      z  |z  }t#        t         j,                  j5                  ||z
  «      d
|¬«       y # 1 sw Y   �ŒªxY w)NgCÅ8
!?g•Ö&è.>gü©ñÒMbP?zpropack_test_data.npzT)Úallow_pickleÚ	A_complexÚA_realéÈ   r   )r7   r!   é   r%   )r(   )r
   Úfloat32Úfloat64Ú	complex64Ú
complex128ÚosÚpathÚdirnameÚ__file__ÚjoinÚloadr   Úitemr   r   r   r>   r   r-   r.   r+   r,   r<   r=   ÚtodenseÚdiagÚnorm)r   rI   r(   Úpath_prefixÚrelative_pathÚfilenameÚdatar1   r5   ÚuÚsÚvhrF   Úsv_checkÚu3Ús3Úvh3ÚA3Úrecons                      r   Útest_examplesru   \   s.  € ô 	�
‰
�FÜ
�
‰
�DÜ
�‰�dÜ
�‰�tð	ð
 ñ€Dô —'‘'—/‘/¤(Ó+€Kð ,€MÜ�w‰w�|‰|˜K¨Ó7€HÜ	�‰�¨Ô	-ð 4°Ü˜5Ô!Ø�[Ñ!×&Ñ&Ó(×/Ñ/°Ó6‰Aà�X‘×#Ñ#Ó%×,Ñ,¨UÓ3ˆA÷	4ð 	€AÜ˜˜1 s´·	±	×0EÑ0EÀaÓ0HÔI�K€A€qˆ"ˆaô % UÔ+‰r°€HØ	Š!ˆYˆhˆYˆ,‰€AØ	ˆIˆXˆI’qˆLÑ	€BØ	ˆ)ˆ8ˆ€Aô ”B—F‘F˜1Ÿ7™7 1™:Ó&¨¯©«¯
©
°Q©¸TÕBÜ”B—F‘F˜2Ÿ8™8 A™;Ó'¨¨b¯g©g«i¯k©kÑ)9ÀÕEô —)‘)—-‘- §	¡	£Ó,�K€BˆˆCØ	ŠAˆy�ˆyˆLÑ	€BØ	ˆIˆXˆ€BØ
ˆiˆxˆišˆlÑ
€CØ	Œb�g‰g�b‹kÑ	˜CÑ	€BØ”—‘˜“
‰N˜RÑ€EÜ”B—I‘I—N‘N 2¨¡:Ó.°¸Ö=÷94ñ 4ús   Â"AJÊJ%Úshifts)Niöÿÿÿr   r%   r   éF   é   c           	      óX  — t         j                  j                  d«      }d\  }}|j                  ||f«      }| �Q| dk  s|t        |dz
  | z
  |«      kD  r7t	        j
                  t        «      5  t        ||| d|z  d|¬«       d d d «       y t        ||| d|z  d|¬«       y # 1 sw Y   y xY w)Nr   ©rw   r   r%   r   T)rv   Úkmaxr7   r!   )r
   r   r>   ÚminÚpytestr   rQ   r   )rv   r   r!   r   r5   r1   s         r   Útest_shiftsr~   Ž   s®   € ô �)‰)×
Ñ
 Ó
"€CØ�D€A€qØ�
‰
�A�q�6Ó€AØÐ ¨¢
°´C¸¸!¹¸F¹
ÀAÓ4FÒ0FÜ�]‰]œ:Ó&ñ 	IÜ�!�Q˜v¨A¨a©C¸$ÀCÕH÷	Ið 	Iô 	ˆa�˜6¨¨!©°dÀÖD÷	Ið 	Iús   Á-B Â B)c                  ó  — t         j                  j                  d«      } d\  }}| j                  ||f«      j                  t         j                  «      }t        ||d dd| ¬«      \  }}}}t        ||ddd| ¬«      \  }}	}
}t        ||	«       y )Nr   rz   r9   T)rv   r6   r7   r!   é    )r
   r   r>   r   r[   r   r   )r!   r   r5   r1   r/   Ús1rC   rF   r0   Ús2rE   s              r   Útest_shifts_accuracyrƒ   ›   s†   € ô �)‰)×
Ñ
 Ó
"€CØ�D€A€qØ�
‰
�A�q�6Ó×!Ñ!¤"§*¡*Ó-€AÜ˜1˜a¨°DÀ4ÈSÔQ�N€BˆˆC�Ü˜1˜a¨°$ÀÈ3ÔO�N€BˆˆC�ô �B˜Õr   )gš™™™™™é?))r^   r}   Únumpyr
   Únumpy.testingr   r   rP   Úscipy.sparse.linalg._svdpr   Úscipy.sparser   r   rZ   r[   r\   r]   r:   r   Ú_dtypesÚkeysÚdtype_flavourr   ÚmarkÚslowÚappendÚparamÚ__name__ÚtupleÚfloatr#   r2   rG   ÚparametrizeÚarrayrS   Úxslowru   r~   Úxfailrƒ   © r   r   ú<module>r—      s  ðÛ 	Û ã Ý )Ý *Ý +ß -ð
 ‡J�J�Ø‡J�J�Ø‡L�L�$Ø‡M�M�4ð	€ò'ð €Ø—Y‘Y“[ò <€MØ€EÙ�}Ô%Ø—‘×!Ñ!Ð"ˆØ‡N�N�<�6—<‘< °UØ#0×#9Ñ#9ô;õ <ð	<ñ �‹.€ð   qó
$òOó8ð0 ‡�×Ñ˜ "§(¡(¨I°yÐ!AÓBØ‡�×Ñ˜ 'Ó*Ø‡�×Ñ˜ Ó.Ø‡�×Ñ˜ ,Ó/ñ5ó 0ó /ó +ó Cð5ð ‡�×ÑØ‡�×Ñ˜ 'Ó*Ø‡�×Ñ˜ Ó.ñ,>ó /ó +ó ð,>ð^ ‡�×Ñ˜Ð#<Ó=Ø‡�×Ñ˜ '¨"¨1 +Ó.ñEó /ó >ðEð ‡�×ÑØ‡�×ÑÓñó ó ñr   