§
    fŠtjŒ«  ã                   ó*  — d Z ddlZddlZddlZddlZddlmZmZmZ ddl	m
Z
mZmZmZmZ ddlZddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z  ddlm!Z! ddl"m#Z# ddl$m%Z% ddl&Zdd	lm'Z' dd
l(m)Z) d„ Z* G d„ d¦  «        Z+ G d„ d¦  «        Z, G d„ d¦  «        Z- G d„ d¦  «        Z. G d„ d¦  «        Z/ G d„ d¦  «        Z0d„ Z1d„ Z2d„ Z3 G d„ d¦  «        Z4 G d„ d¦  «        Z5ej6         7                    deeeg¦  «        d „ ¦   «         Z8d!„ Z9dS )"z, Test functions for linalg.matfuncs module

é    N)ÚarrayÚidentityÚsqrt)Úassert_array_almost_equalÚassert_allcloseÚassert_Úassert_array_lessÚassert_array_equal)ÚfunmÚsignmÚlogmÚsqrtmÚfractional_matrix_powerÚexpmÚexpm_frechetÚ	expm_condÚnormÚ
khatri_raoÚcosmÚsinmÚtanmÚcoshmÚsinhmÚtanhm)Ú_matfuncs_inv_ssq)Úpick_pade_structure)ÚLogmExactlySingularWarning)ÚLinAlgWarning)Úminimizec                  óT   — t          j        g d¢g d¢g d¢g d¢gt          ¬¦  «        } | S )aW  
    Return the test matrix from Experiment (1) of [1]_.

    References
    ----------
    .. [1] Awad H. Al-Mohy and Nicholas J. Higham (2012)
           "Improved Inverse Scaling and Squaring Algorithms
           for the Matrix Logarithm."
           SIAM Journal on Scientific Computing, 34 (4). C152-C169.
           ISSN 1095-7197

    )g3d’‘³Ô?ç     LÝ@r!   r!   )r   gRal!ÈAÓ?r!   r!   )r   r   g“©‚QI�Ô?r!   )r   r   r   gÝ^Ò­Ó?©Údtype)Únpr   Úfloat)ÚAs    ú^/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/linalg/tests/test_matfuncs.pyÚ%_get_al_mohy_higham_2012_experiment_1r(      sO   € õ 	ŒØ"Ð"Ð"Ø Ð Ð ØÐÐØÐÐð	õ &+ð		,ñ 	,ô 	,€Að
 €Hó    c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )Ú	TestSignMc                 ó¼   — t          g d¢g d¢g d¢g d¢g d¢g¦  «        }t          g d¢g d¢g d¢g d	¢g d
¢g¦  «        }t          |¦  «        }t          ||¦  «         d S )N©g333333=@g3333338Àg     `Q@gfffffæH@g      @©gffffff"ÀgÍÌÌÌÌÌ@ç      2ÀgÍÌÌÌÌÌ0Àç       À©g      $Àg      @g      4Àr/   r0   ©g333333#Àg333333#@g     €9ÀgÍÌÌÌÌÌ.Àr0   ©gš™™™™™#@g333333Àg      2@g3333332@ç       @)gŸ´ªæ'@çÀ'RqöÀgÂ�¤ƒy¢.@g�¼eÚ@§5@r5   )g@¢èÈ½Àç˜UÐ›'êß?gëò9¹×\Àgçœ+Œ%¿Àr6   )gR¸…ëQÀçìQ¸…ëá?g®Gáz®ÀgffffffÀr7   )g¥×¨#Àç´w?Ã®ð?gÀk#àeÀgC,î�NÀr8   )gà®ý¡@ç4Õ2ì
à¿gÆF(£@gcÔsÚ@@r9   )r   r   r   )ÚselfÚaÚcrÚrs       r'   Ú	test_nilszTestSignM.test_nils4   s¬   € ÝÐ0Ð0Ð0Ø0Ð0Ð0Ø.Ð.Ð.Ø1Ð1Ð1Ø-Ð-Ð-ð	/ñ 0ô 0ˆõ
 ÐQÐQÐQØOÐOÐOØ0Ð0Ð0ØOÐOÐOØNÐNÐNð	Pñ Qô Qˆõ
 �!‰HŒHˆÝ! ! BÑ'Ô'Ð'Ð'Ð'r)   c                 óZ   — t          g d¢g d¢g d¢g d¢g¦  «        }t          |¦  «         d S )N)ç        é   r   r   )rA   r   rA   r   ©r   r   r   rA   )r   r   rA   r   ©r   r   ©r:   r;   s     r'   Útest_defective1zTestSignM.test_defective1B   s7   € Ý�;�;�;˜y˜y˜y¨¨¨°9°9°9Ð=Ñ>Ô>ˆÝˆa‰Œˆˆˆr)   c                 ó`   — t          g d¢g d¢g d¢g d¢g d¢f¦  «        }t          |¦  «         d S )Nr-   r.   r1   r2   r3   rC   rD   s     r'   Útest_defective2zTestSignM.test_defective2G   sT   € ÝØ&Ð&Ð&Ø'Ð'Ð'Ø(Ð(Ð(Ø'Ð'Ð'Ø$Ð$Ð$ð&ñ 'ô 'ˆõ 	ˆa‰Œˆˆˆr)   c           
      ól   — t          g d¢g d¢g d¢g d¢g d¢g d¢g d¢g¦  «        }t          |¦  «         d S )N©r0   ç      9@r@   r@   r@   r@   r@   ©r@   ç      Àç      $@ç      @rN   rN   r@   ©r@   r@   r4   ç      .@rN   rN   r@   ©r@   r@   r@   r@   rP   rN   r@   ©r@   r@   r@   r@   rN   rM   r@   ©r@   r@   r@   r@   r@   r0   rJ   ©r@   r@   r@   r@   r@   r@   rL   rC   rD   s     r'   Útest_defective3zTestSignM.test_defective3Q   sf   € ÝÐ1Ð1Ð1Ø1Ð1Ð1Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø1Ð1Ð1Ø0Ð0Ð0ð2ñ 3ô 3ˆõ 	ˆa‰Œˆˆˆr)   N)Ú__name__Ú
__module__Ú__qualname__r>   rE   rG   rU   © r)   r'   r+   r+   2   sP   € € € € € ð(ð (ð (ðð ð ð
ð ð ðð ð ð ð r)   r+   c            	       óä  — e Zd Zej                             d¦  «        d„ ¦   «         Zej                             d¦  «        d„ ¦   «         Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zej                             d¬¦  «        ej                             deeej        eej        g¦  «        d„ ¦   «         ¦   «         Zej                             deeej        eej        g¦  «        d„ ¦   «         ZdS )ÚTestLogMz$ignore:.*inaccurate.*:RuntimeWarningc           
      óœ   — t          g d¢g d¢g d¢g d¢g d¢g d¢g d¢g¦  «        }t          d¦  «        d	z  d
z   |z
  }t          |¦  «         d S )NrI   rK   rO   rQ   rR   rS   rT   é   gÍÌÌÌÌÌ@y                )r   r   r   )r:   r;   Úms      r'   r>   zTestLogM.test_nils^   s   € åÐ1Ð1Ð1Ø1Ð1Ð1Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø1Ð1Ð1Ø0Ð0Ð0ð2ñ 3ô 3ˆõ �a‰[Œ[˜‰_˜RÑ Ñ"ˆÝˆQ‰Œˆˆˆr)   c                 ó„   — t          ¦   «         }t          |¦  «        }t          |¦  «        }t          ||dd¬¦  «         d S )Ng-Cëâ6
?ç›+¡†›„=©ÚrtolÚatol)r(   r   r   r   )r:   r&   ÚA_logmÚA_round_trips       r'   Ú*test_al_mohy_higham_2012_experiment_1_logmz3TestLogM.test_al_mohy_higham_2012_experiment_1_logmk   sB   € õ 2Ñ3Ô3ˆÝ�a‘”ˆÝ˜F‘|”|ˆÝ˜ a¨d¸Ð?Ñ?Ô?Ð?Ð?Ð?r)   c                 óÀ   — t          ¦   «         }t          |t          j        ¦  «        }t	          |¦  «        }t          t          j        ||dd¬¦  «         ¦  «         d S )Nçñhãˆµøä>r`   ra   )r(   r   r$   Úlogr   r   Úallclose)r:   r&   Ú
A_funm_logre   s       r'   Ú.test_al_mohy_higham_2012_experiment_1_funm_logz7TestLogM.test_al_mohy_higham_2012_experiment_1_funm_logt   sU   € õ 2Ñ3Ô3ˆÝ˜!�RœV‘_”_ˆ
Ý˜JÑ'Ô'ˆÝ•B”K ¨a°dÀÐGÑGÔGÐGÑHÔHÐHÐHÐHr)   c                 óV  — t           j                             d¦  «        }t          dd¦  «        D ]ø}|                     ||f¬¦  «        }t          j        ddd¦  «        D ]Ç}||z  }t           j                             |¦  «        }d|› d	|› �}t          |¦  «        }||z  }	t          |	|¦  «         t          j        ¦   «         5  t          j        d
t          ¦  «         t          |¦  «        }
t          |
¦  «        }t          |||¬¦  «         d d d ¦  «         n# 1 swxY w Y   ŒÈŒùd S )Nì   >gO*31 rA   é   ©Úsizeéüÿÿÿé   é	   zM:z eivals:Úignore)Úerr_msg)r$   ÚrandomÚdefault_rngÚrangeÚuniformÚlogspaceÚlinalgÚeigvalsr   r   ÚwarningsÚcatch_warningsÚsimplefilterÚRuntimeWarningr   r   )r:   ÚrngÚnÚ
M_unscaledÚscaleÚMÚWrv   ÚM_sqrtmÚM_sqrtm_round_tripÚM_logmÚM_logm_round_trips               r'   Útest_round_trip_random_floatz%TestLogM.test_round_trip_random_float|   s�  € ÝŒi×#Ò#Ð$4Ñ5Ô5ˆÝ�q˜!‘”ð 	Kð 	KˆAØŸš¨1¨a¨&˜Ñ1Ô1ˆJÝœ R¨¨AÑ.Ô.ð Kð K�Ø Ñ&�õ ”I×%Ò% aÑ(Ô(�Ø-˜qÐ-Ð-¨!Ð-Ð-�õ   ™(œ(�Ø%,¨wÑ%6Ð"ÝÐ 2°AÑ6Ô6Ð6õ Ô,Ñ.Ô.ð Kð KÝÔ)¨(µNÑCÔCÐCå! !™WœW�FÝ(,¨V©¬Ð%Ý#Ð$5°qÀ'ÐJÑJÔJÐJðKð Kð Kñ Kô Kð Kð Kð Kð Kð Kð Køøøð Kð Kð Kð KøðKð	Kð 	Ks   ÃADÄD Ä#D c                 óf  — t           j                             d¦  «        }t          dd¦  «        D ]€}|                     ||f¦  «        d|                     ||f¦  «        z  z   }t          j        ddd¦  «        D ]5}||z  }t          |¦  «        }t          |¦  «        }t          ||¦  «         Œ6Œ�d S )Nrn   rA   ro   ù              ð?rr   rs   rt   )	r$   rw   rx   ry   Ústandard_normalr{   r   r   r   )r:   r‚   rƒ   r„   r…   r†   rŠ   ÚM_round_trips           r'   Útest_round_trip_random_complexz'TestLogM.test_round_trip_random_complex”   sÄ   € ÝŒi×#Ò#Ð$4Ñ5Ô5ˆÝ�q˜!‘”ð 	1ð 	1ˆAØ×-Ò-¨q°!¨fÑ5Ô5Ø˜S×0Ò0°!°Q°Ñ8Ô8Ñ8ñ9ˆJåœ R¨¨AÑ.Ô.ð 1ð 1�Ø Ñ&�Ý˜a™œ�Ý# F™|œ|�Ý ¨aÑ0Ô0Ð0Ð0ð	1ð	1ð 	1r)   c                 ó|  — d}ddgddggddgddggddgddggddgddggfD �]}t           j                             |¦  «        }t          t	          d„ |D ¦   «         ¦  «         ¦  «         t          j        |t          ¬¦  «        }t          |¦  «        }t          |j	        j
        |v¦  «         t          j        |t          ¬¦  «        }t          |¦  «        }t          |j	        j
        |v ¦  «         t          j        |t          ¬¦  «         }t          |¦  «        }t          |j	        j
        |v ¦  «         �Œd S )N©ÚFÚDÚGrA   r   é   é   c              3   ó:   K  — | ]}|j         p
|j        d k     V — ŒdS ©r   N©ÚimagÚreal©Ú.0Úws     r'   ú	<genexpr>zFTestLogM.test_logm_type_preservation_and_conversion.<locals>.<genexpr>¬   ó/   è è € Ð<Ð<°Q˜AœFÐ0 a¤f¨q¢jÐ<Ð<Ð<Ð<Ð<Ð<r)   r"   )Úscipyr|   r}   r   Úanyr$   r   r%   r   r#   ÚcharÚcomplex)r:   Úcomplex_dtype_charsÚmatrix_as_listr‡   r&   rd   s         r'   Ú*test_logm_type_preservation_and_conversionz3TestLogM.test_logm_type_preservation_and_conversionŸ   sX  € ð .Ðà�Q�˜!˜Q˜Ð Ø�Q�˜!˜Q˜Ð Ø�Q�˜!˜Q˜Ð Ø�Q�˜!˜Q˜Ð ð	"ð 	>ñ 	>ˆNõ ”×$Ò$ ^Ñ4Ô4ˆAÝ�Ð<Ð<¸!Ð<Ñ<Ô<Ñ<Ô<Ð<Ñ=Ô=Ð=õ ”˜­uÐ5Ñ5Ô5ˆAÝ˜!‘W”WˆFÝ�F”LÔ%Ð-@Ð@ÑAÔAÐAõ ”˜­wÐ7Ñ7Ô7ˆAÝ˜!‘W”WˆFÝ�F”LÔ%Ð)<Ð<Ñ=Ô=Ð=õ ”˜.µÐ6Ñ6Ô6Ð6ˆAÝ˜!‘W”WˆFÝ�F”LÔ%Ð)<Ð<Ñ=Ô=Ð=Ñ=ð/	>ð 	>r)   c                 óÚ  — g d¢g d¢g d¢g}t           t          fD ]Ð}t          j        ||¬¦  «        }t          j                             |¦  «        }t          dt          j        |j	        ¦  «         
                    ¦   «         k     ¦  «         t          |¦  «        }t          t          j        |j        t          j        ¦  «        ¦  «         t          t!          |¦  «        |¦  «         ŒÑd S )N)rA   rA   r—   )r—   rA   rA   )rA   r—   rA   r"   ç{®Gáz„?)r%   r¦   r$   r   r£   r|   r}   r   Úabsoluterœ   Úsumr   Ú
issubdtyper#   Úinexactr   r   )r:   r†   ÚdtÚXr    ÚYs         r'   Útest_complex_spectrum_real_logmz(TestLogM.test_complex_spectrum_real_logm½   sÏ   € ð ˆYˆY˜	˜	˜	 9 9 9Ð-ˆÝ��.ð 	(ð 	(ˆBÝ”˜ "Ð%Ñ%Ô%ˆAÝ”×$Ò$ QÑ'Ô'ˆAÝ�D�2œ; q¤vÑ.Ô.×2Ò2Ñ4Ô4Ò4Ñ5Ô5Ð5Ý�Q‘”ˆAÝ•B”M !¤'­2¬:Ñ6Ô6Ñ7Ô7Ð7Ý�D ™GœG QÑ'Ô'Ð'Ð'ð	(ð 	(r)   c                 ó   — ddgddggddgddggfD ]l}t           t          fD ][}t          j        ||¬¦  «        }t	          |¦  «        \  }}t          t          j        |j        t          j        ¦  «        ¦  «         Œ\Œmd S )NrA   r   éÿÿÿÿr"   )	r%   r¦   r$   r   r   r   r®   r#   Úcomplexfloating)r:   r†   r°   r&   rd   Úinfos         r'   Útest_real_mixed_sign_spectrumz&TestLogM.test_real_mixed_sign_spectrumÉ   s¥   € ð �Q�˜!˜R˜Ð!Ø�Q�˜!˜Q˜Ð ð"ð 	Ið 	IˆAõ �W�nð Ið I�Ý”H˜Q bÐ)Ñ)Ô)�Ý# A™wœw‘�˜Ý�œ f¤lµBÔ4FÑGÔGÑHÔHÐHÐHðIð	Ið 	Ir)   c                 ó`  — t          j        ddgddgg¦  «        }t          j        ddgddgg¦  «        }||j        ||j        fD ]h}t	          j        t          j        ¦  «        5  t          |¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |¦  «        }t          ||d¬¦  «         Œid S )Nr   rŽ   rA   r`   ©rc   )r$   r   ÚasarrayÚTÚpytestÚwarnsr   r   r   r   r   )r:   r&   ÚBr†   ÚLÚEs         r'   Útest_exactly_singularzTestLogM.test_exactly_singularÔ   sö   € ÝŒH�q˜!�f˜r 2˜hÐ'Ñ(Ô(ˆÝŒJ˜˜A˜  A Ð'Ñ(Ô(ˆØ�A”C˜˜AœC�ð 	.ð 	.ˆAÝ”Õ/ÔJÑKÔKð ð Ý˜‘G”G�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å�Q‘”ˆAÝ˜A˜q uÐ-Ñ-Ô-Ð-Ð-ð		.ð 	.s   Á%BÂB	ÂB	c                 óþ   — t          j        dgg¦  «        }t          j        t          j        ¦  «        5  t          |¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |¦  «        }t          ||d¬¦  «         d S )Ng0Žä.ÿ++r`   rº   )	r$   r   r½   r¾   r   ÚLogmNearlySingularWarningr   r   r   )r:   r†   rÀ   rÁ   s       r'   Útest_nearly_singularzTestLogM.test_nearly_singularÝ   s¯   € ÝŒH�v�h�ZÑ Ô ˆÝŒ\Õ+ÔEÑFÔFð 	ð 	Ý�Q‘”ˆAð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	å�‰GŒGˆÝ˜˜1 5Ð)Ñ)Ô)Ð)Ð)Ð)s   µAÁAÁAc                 óª  — ddgddgg}dt           j        dz  gt           j         dz  dgg}t          t          |¦  «        |d¬¦  «         t          t	          |¦  «        |d¬¦  «         ddgdd	gg}dt           j        z  dz  d
t           j        z  gdd	t           j        z  dz  gg}t          t          |¦  «        |d¬¦  «         t          t	          |¦  «        |d¬¦  «         ddgdd	gg}dt           j        z  dz  dgdd	t           j        z  dz  gg}t          t          |¦  «        |d¬¦  «         t          t	          |¦  «        |d¬¦  «         d S )Nr   rA   rµ   ç      à?r`   rº   rŽ   rs   ù       €      ð¿r—   )r$   Úpir   r   r   )r:   rÁ   rÀ   s      r'   Ú&test_opposite_sign_complex_eigenvaluesz/TestLogM.test_opposite_sign_complex_eigenvaluesä   sV  € à�ˆV�b˜!�WÐˆØ•”�s‘ˆ^�rœu˜f S™j¨!˜_Ð-ˆÝ�˜Q™œ ¨Ð/Ñ/Ô/Ð/Ý�˜Q™œ ¨Ð/Ñ/Ô/Ð/Ø�!ˆW�q˜#�hÐˆØ•”‰h�s‰l˜A�bœe™GÐ$ q¨#­b¬e©)°C©-Ð&8Ð9ˆÝ�˜Q™œ ¨Ð/Ñ/Ô/Ð/Ý�˜Q™œ ¨Ð/Ñ/Ô/Ð/Ø�!ˆW�q˜#�hÐˆØ•”‰h�s‰l˜AÐ  C­¬¡I¨c¡MÐ 2Ð3ˆÝ�˜Q™œ ¨Ð/Ñ/Ô/Ð/Ý�˜Q™œ ¨Ð/Ñ/Ô/Ð/Ð/Ð/r)   c                 ó–   — d}t          j        ||f¦  «        t          j        |¦  «        z   }d|j        _        t          |¦  «         d S )Né   F)r$   Úonesr   ÚflagsÚ	writeabler   ©r:   rƒ   r;   s      r'   Útest_readonlyzTestLogM.test_readonlyó   s>   € ØˆÝŒG�Q˜�F‰OŒO�bœk¨!™nœnÑ,ˆØ!ˆŒÔÝˆQ‰Œˆˆˆr)   z6ValueError: attempt to get argmax of an empty sequence©Úreasonr°   c                 óØ   — t          j        d|¬¦  «        }t          |¦  «        }t          j        d|¬¦  «        }t          |¦  «        }|j        dk    sJ ‚|j        |j        k    sJ ‚d S ©N©r   r   r"   r—   )r$   Úemptyr   ÚeyeÚshaper#   )r:   r°   r;   Úlog_aÚa0Úlog_a0s         r'   Ú
test_emptyzTestLogM.test_emptyù   sp   € õ ŒH�V 2Ð&Ñ&Ô&ˆÝ�Q‘”ˆÝŒV�A˜RÐ Ñ Ô ˆÝ�b‘”ˆàŒ{˜fÒ$Ð$Ð$Ð$ØŒ{˜fœlÒ*Ð*Ð*Ð*Ð*Ð*r)   r#   c                 ó  — t          j        t          d¬¦  «        5  t          j        t          ¦  «        5  t	          t          j        d|¬¦  «        ¦  «         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 )Nzlogm result may be inaccurate)Úmatch©r—   r—   r"   )r½   r¾   r�   r   r   r$   Úzeros)r:   r#   s     r'   Útest_no_ZeroDivisionErrorz"TestLogM.test_no_ZeroDivisionError  s  € õ
 Œl�>Ð1PÐQÑQÔQð 	0ð 	0ÝŒlÕ5Ñ6Ô6ð	0ð 	0å•”˜&¨Ð.Ñ.Ô.Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð 	0ð 	0s4   œA>¶$A&ÁA>Á&A*	Á*A>Á-A*	Á.A>Á>BÂBN)rV   rW   rX   r½   ÚmarkÚfilterwarningsr>   rf   rl   rŒ   r‘   r©   r³   r¸   rÂ   rÅ   rÊ   rÑ   ÚxfailÚparametrizeÚintr%   r$   Úfloat32r¦   Ú	complex64rÝ   râ   rY   r)   r'   r[   r[   ]   s¬  € € € € € Ø„[×ÒÐ FÑGÔGð	ð 	ñ HÔGð	ð „[×ÒÐ FÑGÔGð@ð @ñ HÔGð@ðIð Ið IðKð Kð Kð0	1ð 	1ð 	1ð>ð >ð >ð<
(ð 
(ð 
(ð	Ið 	Ið 	Ið.ð .ð .ð*ð *ð *ð0ð 0ð 0ðð ð ð „[×ÒÐVÐÑWÔWØ„[×Ò˜T C¨°´
¸GÀRÄ\Ð#RÑSÔSð+ð +ñ TÔSñ XÔWð+ð „[×Ò˜W s¨E°2´:¸wÈÌÐ&UÑVÔVð0ð 0ñ WÔVð0ð 0ð 0r)   r[   c                   óú   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z		 d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej                             deeej        eej        g¦  «        d„ ¦   «         Zd„ Z d„ Z!d„ Z"dS )Ú	TestSqrtMc                 ó<  — t           j                             d¦  «        }t          dd¦  «        D ]k}|                     ||f¦  «        }t          j        ddd¦  «        D ];}||z  }t          |¦  «        }|                     |¦  «        }t          ||¦  «         Œ<Œld S )Nl   ¿&Û\31 rA   ro   rr   rs   rt   ©	r$   rw   rx   ry   r�   r{   r   Údotr   ©r:   r‚   rƒ   r„   r…   r†   rˆ   r‰   s           r'   rŒ   z&TestSqrtM.test_round_trip_random_float  s­   € ÝŒi×#Ò#Ð$4Ñ5Ô5ˆÝ�q˜!‘”ð 	7ð 	7ˆAØ×,Ò,¨a°¨VÑ4Ô4ˆJÝœ R¨¨AÑ.Ô.ð 7ð 7�Ø Ñ&�Ý ™(œ(�Ø%,§[¢[°Ñ%9Ô%9Ð"ÝÐ 2°AÑ6Ô6Ð6Ð6ð	7ð	7ð 	7r)   c                 ór  — t           j                             d¦  «        }t          dd¦  «        D ]†}|                     ||f¦  «        d|                     ||f¦  «        z  z   }t          j        ddd¦  «        D ];}||z  }t          |¦  «        }|                     |¦  «        }t          ||¦  «         Œ<Œ‡d S )Nl   À&Û\31 rA   ro   rŽ   rr   rs   rt   rí   rï   s           r'   r‘   z(TestSqrtM.test_round_trip_random_complex  sÌ   € ÝŒi×#Ò#Ð$4Ñ5Ô5ˆÝ�q˜!‘”ð 	7ð 	7ˆAØ×-Ò-¨q°!¨fÑ5Ô5Ø˜s×2Ò2°A°q°6Ñ:Ô:Ñ:ñ;ˆJåœ R¨¨AÑ.Ô.ð 7ð 7�Ø Ñ&�Ý ™(œ(�Ø%,§[¢[°Ñ%9Ô%9Ð"ÝÐ 2°AÑ6Ô6Ð6Ð6ð	7ð	7ð 	7r)   c                 ó  — d}t          |¦  «        }t          g d¢d|ddgdd|dgg d¢g¦  «        }t          g d¢d|ddgdd|dgg d¢g¦  «        }t          ||z  |¦  «         t          |¦  «        }t          ||z  |¦  «         d S )Ng       ?)ç      ð?r   r   rA   r   rB   )rA   r   r   rÇ   )r   r   r   r   )r:   ÚeÚser;   ÚsaÚesas         r'   Útest_badzTestSqrtM.test_bad%  s½   € àˆÝ�!‰WŒWˆÝ�;�;�;Ø�a˜˜!�9Ø�a˜˜!�9Ø�9�9ðñ ô ˆõ �K�K�KØ�r˜!˜A�JØ�q˜˜A�JØ�I�Iðñ  ô  ˆõ 	" " r¡'¨1Ñ-Ô-Ð-å�A‰hŒhˆÝ! #¨¡)¨QÑ/Ô/Ð/Ð/Ð/r)   c                 ó  — d}ddgddggddgddggddgddggddgddggddgddggfD �]^}t           j                             |¦  «        }t          t	          d„ |D ¦   «         ¦  «         ¦  «         t          j        ¦   «         5  t          j        dt          ¦  «         t          j
        |t          ¬¦  «        }t          |¦  «        }t          |j        j        |v¦  «         t          j
        |t          ¬¦  «        }t          |¦  «        }t          |j        j        |v ¦  «         t          j
        |t          ¬¦  «         }t          |¦  «        }t          |j        j        |v ¦  «         d d d ¦  «         n# 1 swxY w Y   �Œ`d S )	Nr“   rA   r   r—   r˜   c              3   ó:   K  — | ]}|j         p
|j        d k     V — ŒdS rš   r›   rž   s     r'   r¡   zHTestSqrtM.test_sqrtm_type_preservation_and_conversion.<locals>.<genexpr>D  r¢   r)   ru   r"   )r£   r|   r}   r   r¤   r~   r   r€   r   r$   r   r%   r   r#   r¥   r¦   ©r:   r§   r¨   r‡   r&   ÚA_sqrtms         r'   Ú+test_sqrtm_type_preservation_and_conversionz5TestSqrtM.test_sqrtm_type_preservation_and_conversion6  sô  € ð .Ðà�Q�˜!˜Q˜Ð Ø�Q�˜!˜Q˜Ð Ø�Q�˜!˜Q˜Ð Ø�Q�˜!˜Q˜Ð Ø�Q�˜!˜Q˜Ð ð"ð 	Cñ 	CˆNõ ”×$Ò$ ^Ñ4Ô4ˆAÝ�Ð<Ð<¸!Ð<Ñ<Ô<Ñ<Ô<Ð<Ñ=Ô=Ð=õ Ô(Ñ*Ô*ð Cð CÝÔ% hµÑ>Ô>Ð>õ ”H˜^µ5Ð9Ñ9Ô9�Ý ™(œ(�Ý˜œÔ*Ð2EÐEÑFÔFÐFõ ”H˜^µ7Ð;Ñ;Ô;�Ý ™(œ(�Ý˜œÔ*Ð.AÐAÑBÔBÐBõ ”X˜nµEÐ:Ñ:Ô:Ð:�Ý ™(œ(�Ý˜œÔ*Ð.AÐAÑBÔBÐBð!Cð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cùð	Cð 	Cs   ÂC+E;Å;E?	ÆE?	c                 óâ  — d}ddgddggddgddggg d¢g d¢g d¢gfD ]Ñ}t           j                             |¦  «        }t          t	          d„ |D ¦   «         ¦  «        ¦  «         t          j        |t          ¬	¦  «        }t          |¦  «        }t          |j	        j
        |v ¦  «         t          j        |t          ¬	¦  «        }t          |¦  «        }t          |j	        j
        |v ¦  «         ŒÒd S )
Nr“   rA   r   rµ   ©r   rA   r   )r   r   rµ   ©rA   r   r   c              3   ó:   K  — | ]}|j         p
|j        d k     V — ŒdS rš   r›   rž   s     r'   r¡   zVTestSqrtM.test_sqrtm_type_conversion_mixed_sign_or_complex_spectrum.<locals>.<genexpr>b  ó/   è è € Ð8Ð8°˜œÐ, !¤&¨1¢*Ð8Ð8Ð8Ð8Ð8Ð8r)   r"   )r£   r|   r}   r   r¤   r$   r   r¦   r   r#   r¥   r%   rú   s         r'   Ú9test_sqrtm_type_conversion_mixed_sign_or_complex_spectrumzCTestSqrtM.test_sqrtm_type_conversion_mixed_sign_or_complex_spectrumY  s  € Ø-Ðà�Q�˜!˜R˜Ð!Ø�Q�˜!˜Q˜Ð Ø��˜J˜J˜J¨	¨	¨	Ð2ð4ð 	?ð 	?ˆNõ ”×$Ò$ ^Ñ4Ô4ˆAÝ•CÐ8Ð8°aÐ8Ñ8Ô8Ñ8Ô8Ñ9Ô9Ð9õ ”˜­wÐ7Ñ7Ô7ˆAÝ˜A‘h”hˆGÝ�G”MÔ&Ð*=Ð=Ñ>Ô>Ð>õ ”˜­uÐ5Ñ5Ô5ˆAÝ˜A‘h”hˆGÝ�G”MÔ&Ð*=Ð=Ñ>Ô>Ð>Ð>ð#	?ð 	?r)   c                 óÖ   — t          ¦   «         }t          |¦  «        }||z  }t          ||d¬¦  «         t          t          j        |¦  «        t          j        |¦  «        ¦  «         d S )Nrh   ©rb   )r(   r   r   r$   Útril)r:   r&   rû   re   s       r'   Ú%test_al_mohy_higham_2012_experiment_1z/TestSqrtM.test_al_mohy_higham_2012_experiment_1n  s_   € å1Ñ3Ô3ˆÝ˜‘(”(ˆØ Ñ(ˆÝ˜ a¨dÐ3Ñ3Ô3Ð3Ý�œ Ñ-Ô-­r¬w°q©z¬zÑ:Ô:Ð:Ð:Ð:r)   c                 ó  — t           t          fD ]ý}t          j        g d¢g d¢g d¢g d¢g|¬¦  «        }t	          j        ¦   «         5  t	          j        dt          ¦  «         t          |¦  «        }t          t          j
        |¦  «        t          j        d¦  «        ¦  «         t          j        |¦  «                             ¦   «         sJ ‚t          j        |¦  «                             ¦   «         sJ ‚	 d d d ¦  «         n# 1 swxY w Y   Œþd S )N)r   r˜   r   r   )r   r   r˜   r   )r   r   r   r˜   ©r   r   r   r   r"   ru   )rs   rs   )rç   r%   r$   r   r~   r   r€   r   r   r   r  rá   Úisnanr¤   Úisinf)r:   r°   r&   rû   s       r'   Útest_strict_upper_triangularz&TestSqrtM.test_strict_upper_triangularv  sM  € õ •u�*ð 	/ð 	/ˆBÝ”Ø��Ø��Ø��Ø��ð	ð &(ð	)ñ )ô )ˆAõ
 Ô(Ñ*Ô*ð /ð /ÝÔ% hµÑ>Ô>Ð>å ™(œ(�Ý¥¤¨Ñ 0Ô 0µ"´(¸6Ñ2BÔ2BÑCÔCÐCÝ”x Ñ(Ô(×,Ò,Ñ.Ô.Ð.Ð.Ð.Ý”x Ñ(Ô(×,Ò,Ñ.Ô.Ð.Ð.Ð.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /øð	/ð 	/s   ÁB.DÄD	ÄD	c                 ó®   — ddgddgg}ddgddgg}t          t          j        ||¦  «        |d¬	¦  «         t          t          |¦  «        |d¬	¦  «         d S )
Nù               @rs   r   ù       €       Àù      ð?      ð?r—   ù      ð?      ð¿r`   rº   )r   r$   rî   r   ©r:   r†   ÚRs      r'   rÊ   z0TestSqrtM.test_opposite_sign_complex_eigenvaluesž  sf   € Ø�!ˆW�q˜#�hÐˆØ�AˆY˜˜D˜	Ð"ˆÝ�œ˜q !™œ a¨eÐ4Ñ4Ô4Ð4Ý�˜a™œ !¨%Ð0Ñ0Ô0Ð0Ð0Ð0r)   c                 óê  — t          j        g d¢g d¢g d¢g d¢g¦  «        }t          j        t          d¦  «        ddt          d¦  «        gg d¢g d¢t          d¦  «        ddt          d¦  «        gg¦  «        }t          ||z  |d¬¦  «         t	          j        ¦   «         5  t	          j        dt          ¦  «         t          t          |¦  «        |d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)rA   r   r   rA   r  rÇ   r   r`   rº   ru   )	r$   r   r   r   r~   r   r€   r   r   r  s      r'   Útest_gh4866zTestSqrtM.test_gh4866¤  sD  € ÝŒH�l�l�lØ"�l�lØ"�l�lØ"�l�lð$ñ %ô %ˆõ ŒH•t˜C‘y”y ! Q­¨S©	¬	Ð2Ø"�l�lØ"�l�lÝ˜C‘y”y ! Q­¨S©	¬	Ð2ð4ñ 5ô 5ˆõ 	˜˜A™˜q uÐ-Ñ-Ô-Ð-ÝÔ$Ñ&Ô&ð 	5ð 	5ÝÔ! (­MÑ:Ô:Ð:å�E !™HœH a¨eÐ4Ñ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð 	5ð 	5s   Â!:C(Ã(C,Ã/C,c                 óp  — t          j        g d¢¦  «        }t          j        t          d¦  «        ddg¦  «        }t          ||z  |d¬¦  «         t	          j        ¦   «         5  t	          j        dt          ¬¦  «         t          t          |¦  «        |d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	N)r—   rA   r   r—   rA   r   r`   rº   ru   ©Úcategory)	r$   Údiagr   r   r~   r   rä   r   r   r  s      r'   Útest_gh5336zTestSqrtM.test_gh5336³  sí   € ÝŒG�I�I�IÑÔˆÝŒG•T˜!‘W”W˜a �OÑ$Ô$ˆÝ˜˜A™˜q uÐ-Ñ-Ô-Ð-ÝÔ$Ñ&Ô&ð 	5ð 	5ÝÔ# Hµ}ÐEÑEÔEÐEÝ�E !™HœH a¨eÐ4Ñ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð 	5ð 	5s   Á#;B+Â+B/Â2B/c                 ó"  — t          j        d¦  «        }t          j        d¦  «        }t          j        ¦   «         5  t          j        dt
          ¬¦  «         t          t          |¦  «        |d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrà   ru   r  r`   rº   )r$   rá   r~   r   rä   r   r   r   r  s      r'   Útest_gh7839zTestSqrtM.test_gh7839»  sÄ   € ÝŒH�VÑÔˆÝŒH�VÑÔˆåÔ$Ñ&Ô&ð 	5ð 	5ÝÔ# Hµ}ÐEÑEÔEÐEå�E !™HœH a¨eÐ4Ñ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð 	5ð 	5s   ¼;BÂBÂBc                 óÈ   — t          j        d¦  «        }|                     d¦  «         t          j        |d¦  «         t          j        t          |¦  «        ¦  «        sJ ‚d S )N)é   r  g®Gázî?rA   )r$   r×   ÚfillÚfill_diagonalÚ	isrealobjr   ©r:   r†   s     r'   Útest_gh17918zTestSqrtM.test_gh17918Ä  sU   € ÝŒH�XÑÔˆØ	�Šˆt‰ŒˆÝ
Ô˜˜AÑÔÐÝŒ|�E !™HœHÑ%Ô%Ð%Ð%Ð%Ð%Ð%r)   c                 ó
  — t          j        g d¢g d¢g d¢g¦  «        }t          |¦  «        }t          ||z  |d¬¦  «         t          |                     t           j        ¦  «        ¦  «        }t          ||z  |d¬¦  «         d S )N)rò   r@   r@   )r   rA   rÈ   )r   rŽ   r—   r`   rº   g�íµ ÷Æ°>)r$   r   r   r   Úastyperé   )r:   r†   Úsqs      r'   Útest_gh23278zTestSqrtM.test_gh23278Ê  s‚   € ÝŒH�l�l�l K K K°°°Ð<Ñ=Ô=ˆÝ�1‰XŒXˆÝ˜˜R™ ¨Ð/Ñ/Ô/Ð/Ý�1—8’8�BœLÑ)Ô)Ñ*Ô*ˆÝ˜˜R™ ¨Ð.Ñ.Ô.Ð.Ð.Ð.r)   c                 ó&  — t          j        dt           j        ¬¦  «        }t          |¦  «        j        t           j        k    sJ ‚t          j        dt           j        ¬¦  «        }t          |¦  «        j        t           j        k    sJ ‚t          j        dt           j        ¬¦  «        }t          |¦  «        j        t           j        k    sJ ‚t          j        dt           j        ¬¦  «        }t          |¦  «        j        t           j        k    sJ ‚d S ©Né
   r"   )	r$   rØ   Úuint8r   r#   Úfloat64Úuint16Úuint32Úuint64r!  s     r'   Ú-test_data_size_preservation_uint_in_float_outz7TestSqrtM.test_data_size_preservation_uint_in_float_outÑ  sÌ   € ÝŒF�2�RœXÐ&Ñ&Ô&ˆÝ�Q‰xŒxŒ~¥¤Ò+Ð+Ð+Ð+ÝŒF�2�RœYÐ'Ñ'Ô'ˆÝ�Q‰xŒxŒ~¥¤Ò+Ð+Ð+Ð+ÝŒF�2�RœYÐ'Ñ'Ô'ˆÝ�Q‰xŒxŒ~¥¤Ò+Ð+Ð+Ð+ÝŒF�2�RœYÐ'Ñ'Ô'ˆÝ�Q‰xŒxŒ~¥¤Ò+Ð+Ð+Ð+Ð+Ð+r)   c                 ó&  — t          j        dt           j        ¬¦  «        }t          |¦  «        j        t           j        k    sJ ‚t          j        dt           j        ¬¦  «        }t          |¦  «        j        t           j        k    sJ ‚t          j        dt           j        ¬¦  «        }t          |¦  «        j        t           j        k    sJ ‚t          j        dt           j        ¬¦  «        }t          |¦  «        j        t           j        k    sJ ‚d S r(  )	r$   rØ   Úint8r   r#   r+  Úint16Úint32Úint64r!  s     r'   Ú,test_data_size_preservation_int_in_float_outz6TestSqrtM.test_data_size_preservation_int_in_float_outÛ  sÌ   € ÝŒF�2�RœWÐ%Ñ%Ô%ˆÝ�Q‰xŒxŒ~¥¤Ò+Ð+Ð+Ð+ÝŒF�2�RœXÐ&Ñ&Ô&ˆÝ�Q‰xŒxŒ~¥¤Ò+Ð+Ð+Ð+ÝŒF�2�RœXÐ&Ñ&Ô&ˆÝ�Q‰xŒxŒ~¥¤Ò+Ð+Ð+Ð+ÝŒF�2�RœXÐ&Ñ&Ô&ˆÝ�Q‰xŒxŒ~¥¤Ò+Ð+Ð+Ð+Ð+Ð+r)   c                 óV  — t          j        ddgddggt           j        ¬¦  «        }t          |¦  «        j        t           j        k    sJ ‚t          j        ddgddggt           j        ¬¦  «        }t          |¦  «        j        t           j        k    sJ ‚t          j        ddgddggt           j        ¬¦  «        }t          |¦  «        j        t           j        k    sJ ‚t          j        ddgddggt           j        ¬¦  «        }t          |¦  «        j        t           j        k    sJ ‚d S )Nr—   rs   r   éþÿÿÿr"   )	r$   r   r1  r   r#   Ú
complex128r2  r3  r4  r!  s     r'   Ú+test_data_size_preservation_int_in_comp_outz5TestSqrtM.test_data_size_preservation_int_in_comp_outå  s   € ÝŒH�q˜!�f˜q "˜gÐ&­b¬gÐ6Ñ6Ô6ˆÝ�Q‰xŒxŒ~¥¤Ò.Ð.Ð.Ð.ÝŒH�q˜!�f˜q "˜gÐ&­b¬hÐ7Ñ7Ô7ˆÝ�Q‰xŒxŒ~¥¤Ò.Ð.Ð.Ð.ÝŒH�q˜!�f˜q "˜gÐ&­b¬hÐ7Ñ7Ô7ˆÝ�Q‰xŒxŒ~¥¤Ò.Ð.Ð.Ð.ÝŒH�q˜!�f˜q "˜gÐ&­b¬hÐ7Ñ7Ô7ˆÝ�Q‰xŒxŒ~¥¤Ò.Ð.Ð.Ð.Ð.Ð.r)   c                 óT  — t          j        dt           j        ¬¦  «        }t          |¦  «        j        t           j        k    sJ ‚t          j        dt           j        ¬¦  «        }t          |¦  «        j        t           j        k    sJ ‚t          j        dt           j        ¬¦  «        }t          |¦  «        j        t           j        k    sJ ‚t          t           d¦  «        rDt          j        dt           j        ¬¦  «        }t          |¦  «        j        t           j        k    sJ ‚d S d S )Nr)  r"   Úfloat128)	r$   rØ   Úfloat16r   r#   rè   r+  Úhasattrr;  r!  s     r'   Ú.test_data_size_preservation_float_in_float_outz8TestSqrtM.test_data_size_preservation_float_in_float_outï  sè   € ÝŒF�2�RœZÐ(Ñ(Ô(ˆÝ�Q‰xŒxŒ~¥¤Ò+Ð+Ð+Ð+ÝŒF�2�RœZÐ(Ñ(Ô(ˆÝ�Q‰xŒxŒ~¥¤Ò+Ð+Ð+Ð+ÝŒF�2�RœZÐ(Ñ(Ô(ˆÝ�Q‰xŒxŒ~¥¤Ò+Ð+Ð+Ð+Ý•2�zÑ"Ô"ð 	0Ý”�r¥¤Ð-Ñ-Ô-ˆAÝ˜‘8”8”>¥R¤ZÒ/Ð/Ð/Ð/ð	0ð 	0à/Ð/r)   c                 ó²  — t          j        ddgddggt           j        ¬¦  «        }t          |¦  «        j        t           j        k    sJ ‚t          j        ddgddggt           j        ¬¦  «        }t          |¦  «        j        t           j        k    sJ ‚t          j        ddgddggt           j        ¬¦  «        }t          |¦  «        j        t           j        k    sJ ‚t          t           d¦  «        r_t          t           d¦  «        rLt          j        ddgddggt           j
        ¬¦  «        }t          |¦  «        j        t           j        k    sJ ‚d S d S d S )Nr—   rs   r   r7  r"   r;  Ú
complex256)r$   r   r<  r   r#   ré   rè   r+  r8  r=  r;  r!  s     r'   Ú-test_data_size_preservation_float_in_comp_outz7TestSqrtM.test_data_size_preservation_float_in_comp_outú  s7  € ÝŒH�q˜!�f˜q "˜gÐ&­b¬jÐ9Ñ9Ô9ˆÝ�Q‰xŒxŒ~¥¤Ò-Ð-Ð-Ð-ÝŒH�q˜!�f˜q "˜gÐ&­b¬jÐ9Ñ9Ô9ˆÝ�Q‰xŒxŒ~¥¤Ò-Ð-Ð-Ð-ÝŒH�q˜!�f˜q "˜gÐ&­b¬jÐ9Ñ9Ô9ˆÝ�Q‰xŒxŒ~¥¤Ò.Ð.Ð.Ð.Ý•2�zÑ"Ô"ð 	3¥w­r°<Ñ'@Ô'@ð 	3Ý”˜1˜a˜& 1 b 'Ð*µ"´+Ð>Ñ>Ô>ˆAÝ˜‘8”8”>¥R¤]Ò2Ð2Ð2Ð2ð	3ð 	3ð 	3ð 	3à2Ð2r)   c                 óð  — t          j        ddgddggt           j        ¬¦  «        }t          |¦  «        j        t           j        k    sJ ‚t          j        ddgddggt           j        ¬¦  «        }t          |¦  «        j        t           j        k    sJ ‚t          t           d¦  «        rJt          j        ddgddggt           j        ¬¦  «        }t          |¦  «        j        t           j        k    sJ ‚d S d S )Nr  rs   r   r  r"   r@  )r$   r   ré   r   r#   r8  r=  r@  r!  s     r'   Ú,test_data_size_preservation_comp_in_comp_outz6TestSqrtM.test_data_size_preservation_comp_in_comp_out  sÞ   € ÝŒH�r˜1�g  3˜xÐ(µ´Ð=Ñ=Ô=ˆÝ�Q‰xŒxŒ~¥¤Ò-Ð-Ð-Ð-ÝŒH�r˜1�g  3˜xÐ(µ´Ð>Ñ>Ô>ˆÝ�Q‰xŒxŒ~¥¤Ò.Ð.Ð.Ð.Ý•2�|Ñ$Ô$ð 	3Ý”˜2˜q˜' A s 8Ð,µB´MÐBÑBÔBˆAÝ˜‘8”8”>¥R¤]Ò2Ð2Ð2Ð2ð	3ð 	3à2Ð2r)   r°   c                 óØ   — t          j        d|¬¦  «        }t          |¦  «        }t          j        d|¬¦  «        }t          |¦  «        }|j        dk    sJ ‚|j        |j        k    sJ ‚d S rÕ   )r$   r×   r   rØ   rÙ   r#   )r:   r°   r;   ÚsrÛ   Ús0s         r'   rÝ   zTestSqrtM.test_empty  sn   € åŒH�V 2Ð&Ñ&Ô&ˆÝ�!‰HŒHˆÝŒV�A˜RÐ Ñ Ô ˆÝ�2‰YŒYˆàŒw˜&Ò Ð Ð Ð ØŒw˜"œ(Ò"Ð"Ð"Ð"Ð"Ð"r)   c           
      óp  — t           j                             d¦  «        }d}|                     dd|z  d|z  f¬¦  «        }t          j        |d¬¦  «        t          j        d|z  ¦  «        z   t          j        |¦  «        }}||z  }|d d …d d d…d d d…f         }t          j        |¦  «        d d …dd d…dd d…f         }t          t          |d d …d d d…d d d…f         ¦  «        t          |¦  «        ¦  «         t          t          |d d …dd d…dd d…f         ¦  «        t          |¦  «        ¦  «         d S )	Nl   Á&Û\31 é   r˜   r—   rp   rµ   )ÚkrA   )
r$   rw   rx   rz   r  rØ   ÚtriuÚasfortranarrayr   r   )r:   r‚   rƒ   r&   rÀ   ÚUÚA_noncontig_cÚA_noncontig_fs           r'   Útest_cf_noncontig_nd_inputsz%TestSqrtM.test_cf_noncontig_nd_inputs  s?  € õ Œi×#Ò#Ð$4Ñ5Ô5ˆØˆØ�KŠK˜a  1¡ a¨¡c˜]ˆKÑ+Ô+ˆÝŒw�q˜BÐÑÔ¥"¤&¨¨1©¡+¤+Ñ-­r¬w°q©z¬zˆ1ˆØ�‰Eˆà˜!˜!˜!˜S˜S˜q˜S # # A #˜+œˆÝÔ)¨!Ñ,Ô,¨Q¨Q¨Q°°°1°°a°d¸°d¨]Ô;ˆÝ�˜a    3 3 Q 3¨¨¨!¨ œnÑ-Ô-­u°]Ñ/CÔ/CÑDÔDÐDÝ�˜a    1 4 a 4¨¨¨A¨ Ô.Ñ/Ô/µ°}Ñ1EÔ1EÑFÔFÐFÐFÐFr)   c                 óz   — t          j        g d¢t          ¬¦  «        }t          t	          |¦  «        |¦  «         d S )N)rs   r   rÌ   rÌ   )rÙ   r#   )r$   r×   r%   r
   r   )r:   r&   s     r'   Útest_empty_sizeszTestSqrtM.test_empty_sizes&  s6   € ÝŒH˜<˜<˜<­uÐ5Ñ5Ô5ˆÝ�5 ™8œ8 QÑ'Ô'Ð'Ð'Ð'r)   c                 ó´  — t           j                             d¦  «        }|                     d¬¦  «        }|d d …d d d…d d d…f         }|d d …d d d…d d d…f                              ¦   «         }t          t          |¦  «        t          |¦  «        ¦  «         |d d …d d …d d d…f         }|d d …d d …d d d…f                              ¦   «         }t          t          |¦  «        t          |¦  «        ¦  «         |d d …d d d…d d …f         }|d d …d d d…d d …f                              ¦   «         }t          t          |¦  «        t          |¦  «        ¦  «         d S )Nl   Â&Û\31 )r˜   rÌ   rÌ   rp   rµ   )r$   rw   rx   rz   Úcopyr   r   )	r:   r‚   r&   ÚA_negneg_origÚA_negneg_copyÚA_posneg_origÚA_posneg_copyÚA_negpos_origÚA_negpos_copys	            r'   Útest_negative_strideszTestSqrtM.test_negative_strides*  si  € ÝŒi×#Ò#Ð$4Ñ5Ô5ˆØ�KŠK˜YˆKÑ'Ô'ˆØ˜!˜!˜!˜T˜T˜r˜T 4 4 R 4˜-Ô(ˆØ˜!˜!˜!˜T˜T˜r˜T 4 4 R 4˜-Ô(×-Ò-Ñ/Ô/ˆÝ�˜mÑ,Ô,­e°MÑ.BÔ.BÑCÔCÐCà˜!˜!˜!˜Q˜Q˜Q   " ˜*œˆØ˜!˜!˜!˜Q˜Q˜Q   " ˜*œ×*Ò*Ñ,Ô,ˆÝ�˜mÑ,Ô,­e°MÑ.BÔ.BÑCÔCÐCà˜!˜!˜!˜T˜T˜r˜T 1 1 1˜*œˆØ˜!˜!˜!˜T˜T˜r˜T 1 1 1˜*œ×*Ò*Ñ,Ô,ˆÝ�˜mÑ,Ô,­e°MÑ.BÔ.BÑCÔCÐCÐCÐCr)   N)#rV   rW   rX   rŒ   r‘   r÷   rü   r  r  r  rÊ   r  r  r  r"  r&  r/  r5  r9  r>  rA  rC  r½   rã   ræ   rç   r%   r$   rè   r¦   ré   rÝ   rO  rQ  rZ  rY   r)   r'   rë   rë     s­  € € € € € ð7ð 7ð 7ð	7ð 	7ð 	7ð0ð 0ð 0ð"!Cð !Cð !CðF?ð ?ð ?ð*;ð ;ð ;ð/ð /ð /ð*ð&1ð 1ð 1ð5ð 5ð 5ð5ð 5ð 5ð5ð 5ð 5ð&ð &ð &ð/ð /ð /ð,ð ,ð ,ð,ð ,ð ,ð/ð /ð /ð	0ð 	0ð 	0ð	3ð 	3ð 	3ð3ð 3ð 3ð „[×Ò˜T C¨°´
¸GÀRÄ\Ð#RÑSÔSð#ð #ñ TÔSð#ðGð Gð Gð(ð (ð (ðDð Dð Dð Dð Dr)   rë   c                   óŒ   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
ej                             d	¬
¦  «        d„ ¦   «         Zd„ ZdS )ÚTestFractionalMatrixPowerc                 ó¶  — t           j                             d¦  «        }t          dd¦  «        D ]¨}t          dd¦  «        D ]•}|                     ||f¦  «        d|                     ||f¦  «        z  z   }t          j        ddd¦  «        D ]J}||z  }t          |d|z  ¦  «        }t           j                             ||¦  «        }t          ||¦  «         ŒKŒ–Œ©d S )NéÒ  rA   rÌ   rŽ   rr   rs   rt   ©
r$   rw   rx   ry   r�   r{   r   r|   Úmatrix_powerr   ©	r:   r‚   Úprƒ   r„   r…   r†   ÚM_rootr�   s	            r'   r‘   z8TestFractionalMatrixPower.test_round_trip_random_complex;  só   € ÝŒi×#Ò# DÑ)Ô)ˆÝ�q˜!‘”ð 	5ð 	5ˆAÝ˜1˜a‘[”[ð 5ð 5�Ø!×1Ò1°1°a°&Ñ9Ô9Ø  3×#6Ò#6¸¸1°vÑ#>Ô#>Ñ>ñ?�
åœ[¨¨Q°Ñ2Ô2ð 5ð 5�EØ" UÑ*�AÝ4°Q¸¸!¹Ñ<Ô<�FÝ#%¤9×#9Ò#9¸&À!Ñ#DÔ#D�LÝ# L°!Ñ4Ô4Ð4Ð4ð	5ð5ð	5ð 	5r)   c                 ó€  — t           j                             d¦  «        }t          dd¦  «        D ]�}t          dd¦  «        D ]z}|                     ||f¦  «        }t          j        ddd¦  «        D ]J}||z  }t          |d|z  ¦  «        }t           j                             ||¦  «        }t          ||¦  «         ŒKŒ{ŒŽd S )Nr^  rA   rÌ   rr   rs   rt   r_  ra  s	            r'   rŒ   z6TestFractionalMatrixPower.test_round_trip_random_floatG  sÖ   € õ
 Œi×#Ò# DÑ)Ô)ˆÝ�q˜!‘”ð 	5ð 	5ˆAÝ˜1˜a‘[”[ð 5ð 5�Ø ×0Ò0°!°Q°Ñ8Ô8�
Ýœ[¨¨Q°Ñ2Ô2ð 5ð 5�EØ" UÑ*�AÝ4°Q¸¸!¹Ñ<Ô<�FÝ#%¤9×#9Ò#9¸&À!Ñ#DÔ#D�LÝ# L°!Ñ4Ô4Ð4Ð4ð	5ð5ð	5ð 	5r)   c                 óZ  — t           j                             d¦  «        }dD �]}t          d¦  «        D ]ô}|                     ||f¦  «        d|                     ||f¦  «        z  z   }t          |d¦  «        }t           j                             |d¦  «        }t          ||¦  «         t          |d¦  «        }t           j                             |d¦  «        }t          ||¦  «         t          |d	¦  «        }t           j                             |d
¦  «        }t          ||¦  «         Œõ�Œ	d S )Nr^  )r—   r˜   rÌ   r)  rŽ   çš™™™™™É?rÌ   gš™™™™™Àiåÿÿÿgffffff@r  )	r$   rw   rx   ry   r�   r   r|   r`  r   )	r:   r‚   rƒ   Úir†   ÚM_one_fifthr�   r±   r²   s	            r'   Ú(test_larger_abs_fractional_matrix_powerszBTestFractionalMatrixPower.test_larger_abs_fractional_matrix_powersV  s"  € ÝŒi×#Ò# DÑ)Ô)ˆØð 	&ñ 	&ˆAÝ˜2‘Y”Yð &ð &�Ø×'Ò'¨¨A¨Ñ/Ô/°"°s×7JÒ7JÈAÈqÈ6Ñ7RÔ7RÑ2RÑR�Ý5°a¸Ñ=Ô=�å!œy×5Ò5°kÀ1ÑEÔE�Ý  <Ñ0Ô0Ð0å+¨A¨tÑ4Ô4�Ý”I×*Ò*¨;¸Ñ<Ô<�Ý  1Ñ%Ô%Ð%å+¨A¨sÑ3Ô3�Ý”I×*Ò*¨;¸Ñ;Ô;�Ý  1Ñ%Ô%Ð%Ð%ñ&ð	&ð 	&r)   c                 óB  — t           j                             d¦  «        }d}t          |¦  «        D ]í}|                     dd¦  «        }|                     ¦   «         }t          j        |                     dd¦  «        ¦  «        }|                     ||g¬¦  «        }ddg|                     d	¦  «                 r|d
|                     ||g¬¦  «        z  z   }||z  }t          ||¦  «        }t          |¦  «        }	t          |	|z  ¦  «        }
t          ||
¦  «         Œîd S )Nl   ½fmø1 é   rA   rÌ   rr   rp   TFr—   rŽ   )r$   rw   rx   ry   ÚintegersÚexpÚchoicer   r   r   r   )r:   r‚   Únsamplesrg  rƒ   rb  Úmatrix_scaler&   ÚA_powerrd   ÚA_power_expm_logms              r'   Útest_random_matrices_and_powersz9TestFractionalMatrixPower.test_random_matrices_and_powersh  s  € õ Œi×#Ò#Ð$4Ñ5Ô5ˆØˆÝ�x‘”ð 	8ð 	8ˆAà—’˜Q Ñ"Ô"ˆAØ—
’
‘”ˆAõ œ6 #§,¢,¨r°1Ñ"5Ô"5Ñ6Ô6ˆLØ—
’
  A �
Ñ'Ô'ˆAØ�eˆ}˜SŸZšZ¨™]œ]Ô+ð 5Ø˜˜SŸZšZ¨a°¨V˜ZÑ4Ô4Ñ4Ñ4�Ø�LÑ ˆAõ
 .¨a°Ñ3Ô3ˆGÝ˜!‘W”WˆFÝ $ V¨a¡ZÑ 0Ô 0ÐÝ˜GÐ%6Ñ7Ô7Ð7Ð7ð%	8ð 	8r)   c                 ó  — t          ¦   «         }t          |t          j        ¦  «        }t	          |¦  «        }t          j        |d¦  «        }t          |d¦  «        }t          ||d¬¦  «         t          ||¦  «         t          ||¦  «         dD ]m}t          ||¦  «        }t          |d|z  ¦  «        }t          ||d¬¦  «         t          t          j	        |d¦  «        t          j	        |d¦  «        ¦  «         Œnd S )NrÇ   g•dyáý¥=r  )rÇ   g«ªªªªªú?rA   r«   )
r(   r   r$   r   r   r   Ú_remainder_matrix_powerr   r   r  )r:   r&   ÚA_funm_sqrtrû   ÚA_rem_powerrq  rb  re   s           r'   r  z?TestFractionalMatrixPower.test_al_mohy_higham_2012_experiment_1�  s   € å1Ñ3Ô3ˆõ ˜1�bœgÑ&Ô&ˆÝ˜‘(”(ˆÝ'Ô?ÀÀ3ÑGÔGˆÝ)¨!¨SÑ1Ô1ˆÝ˜ W°5Ð9Ñ9Ô9Ð9Ý˜ Ñ)Ô)Ð)Ý˜ Ñ-Ô-Ð-ð ð 	Eð 	EˆAÝ-¨a°Ñ3Ô3ˆGÝ2°7¸A¸a¹CÑ@Ô@ˆLÝ˜L¨!°$Ð7Ñ7Ô7Ð7Ý�BœG L°!Ñ4Ô4µb´g¸aÀ±m´mÑDÔDÐDÐDð		Eð 	Er)   c                 óJ  — t           j                             d¦  «        }|                     d¦  «        d|                     d¦  «        z  z   D ]T}t	          d¦  «        D ]B}t          j        ||¦  «        }|t          j        | ¦  «        z  dz
  }t          ||¦  «         ŒCŒUd S )Nr^  r)  rŽ   rÌ   rA   )	r$   rw   rx   r�   ry   r   Ú_briggs_helper_functionÚexp2r   )r:   r‚   r;   rI  Ú
x_observedÚ
x_expecteds         r'   Útest_briggs_helper_functionz5TestFractionalMatrixPower.test_briggs_helper_function•  s®   € ÝŒi×#Ò# DÑ)Ô)ˆØ×$Ò$ RÑ(Ô(¨2°×0CÒ0CÀBÑ0GÔ0GÑ+GÑGð 	8ð 	8ˆAÝ˜1‘X”Xð 8ð 8�Ý.ÔFÀqÈ!ÑLÔL�
Ø¥"¤'¨1¨"¡+¤+Ñ-°Ñ1�
Ý 
¨JÑ7Ô7Ð7Ð7ð8ð	8ð 	8r)   c                 óŒ  — d}ddgddggddgddggddgddggddgddggfD �]!}t           j                             |¦  «        }t          t	          d„ |D ¦   «         ¦  «         ¦  «         dD ]Õ}t          j        |t          ¬¦  «        }t          ||¦  «        }t          |j	        j
        |v¦  «         t          j        |t          ¬¦  «        }t          ||¦  «        }t          |j	        j
        |v ¦  «         t          j        |t          ¬¦  «         }t          ||¦  «        }t          |j	        j
        |v ¦  «         ŒÖ�Œ#d S )	Nr“   rA   r   r—   r˜   c              3   ó:   K  — | ]}|j         p
|j        d k     V — ŒdS rš   r›   rž   s     r'   r¡   zRTestFractionalMatrixPower.test_type_preservation_and_conversion.<locals>.<genexpr>«  r¢   r)   ©ç333333ÀçÍÌÌÌÌÌì¿rf  gffffff
@r"   )r£   r|   r}   r   r¤   r$   r   r%   r   r#   r¥   r¦   ©r:   r§   r¨   r‡   rb  r&   rq  s          r'   Ú%test_type_preservation_and_conversionz?TestFractionalMatrixPower.test_type_preservation_and_conversion�  s�  € ð
 .Ðà�Q�˜!˜Q˜Ð Ø�Q�˜!˜Q˜Ð Ø�Q�˜!˜Q˜Ð Ø�Q�˜!˜Q˜Ð ð	"ð 	Cñ 	CˆNõ ”×$Ò$ ^Ñ4Ô4ˆAÝ�Ð<Ð<¸!Ð<Ñ<Ô<Ñ<Ô<Ð<Ñ=Ô=Ð=ð ,ð Cð C�õ ”H˜^µ5Ð9Ñ9Ô9�Ý1°!°QÑ7Ô7�Ý˜œÔ*Ð2EÐEÑFÔFÐFõ ”H˜^µ7Ð;Ñ;Ô;�Ý1°!°QÑ7Ô7�Ý˜œÔ*Ð.AÐAÑBÔBÐBõ ”X˜nµEÐ:Ñ:Ô:Ð:�Ý1°!°QÑ7Ô7�Ý˜œÔ*Ð.AÐAÑBÔBÐBÐBñCð	Cð 	Cr)   c                 óð  — d}ddgddggddgddggg d¢g d¢g d¢gfD ]Ø}t           j                             |¦  «        }t          t	          d„ |D ¦   «         ¦  «        ¦  «         d	D ]Ž}t          j        |t          ¬
¦  «        }t          ||¦  «        }t          |j	        j
        |v ¦  «         t          j        |t          ¬
¦  «        }t          ||¦  «        }t          |j	        j
        |v ¦  «         Œ�ŒÙd S )Nr“   rA   r   rµ   rþ   )r   r   rA   rÿ   c              3   ó:   K  — | ]}|j         p
|j        d k     V — ŒdS rš   r›   rž   s     r'   r¡   z`TestFractionalMatrixPower.test_type_conversion_mixed_sign_or_complex_spectrum.<locals>.<genexpr>É  r  r)   r€  r"   )r£   r|   r}   r   r¤   r$   r   r¦   r   r#   r¥   r%   rƒ  s          r'   Ú3test_type_conversion_mixed_sign_or_complex_spectrumzMTestFractionalMatrixPower.test_type_conversion_mixed_sign_or_complex_spectrumÀ  s1  € Ø-Ðà�Q�˜!˜R˜Ð!Ø�Q�˜!˜Q˜Ð Ø��˜I˜I˜I y y yÐ1ð3ð 	Cð 	CˆNõ ”×$Ò$ ^Ñ4Ô4ˆAÝ•CÐ8Ð8°aÐ8Ñ8Ô8Ñ8Ô8Ñ9Ô9Ð9ð ,ð 
Cð 
C�õ ”H˜^µ7Ð;Ñ;Ô;�Ý1°!°QÑ7Ô7�Ý˜œÔ*Ð.AÐAÑBÔBÐBõ ”H˜^µ5Ð9Ñ9Ô9�Ý1°!°QÑ7Ô7�Ý˜œÔ*Ð.AÐAÑBÔBÐBÐBð
Cð	Cð 	Cr)   zToo unstable across LAPACKs.rÒ   c                 óœ  — ddgddggddgddggddgddggg d¢g d¢g d¢gfD ]©}t           t          fD ]˜}t          j        ||¬	¦  «        }d
D ]E}t	          ||¦  «        }t          t          j        |¦  «                             ¦   «         ¦  «         ŒFdD ]5}t	          ||¦  «        }t	          |d|z  ¦  «        }t          ||¦  «         Œ6Œ™Œªd S )Nr   rA   r—   r˜   ro   )r   r   r   )r   rA   rA   )r   rµ   rA   r"   )gffffffæ¿r‚  r�  gÍÌÌÌÌÌô¿)rf  gáz®Gáö?)	r%   r¦   r$   r   r   r   r	  Úallr   )r:   r¨   Únewtyper&   rb  rq  re   s          r'   Útest_singularz'TestFractionalMatrixPower.test_singularÙ  s"  € ð �Q�˜!˜Q˜Ð Ø�Q�˜!˜Q˜Ð Ø�Q�˜!˜Q˜Ð Ø��˜I˜I˜I z z zÐ2ð	4ð 	5ð 	5ˆNõ "¥7Ð+ð 5ð 5�Ý”H˜^°7Ð;Ñ;Ô;�Ø1ð 5ð 5�AÝ5°a¸Ñ;Ô;�GÝ�BœH WÑ-Ô-×1Ò1Ñ3Ô3Ñ4Ô4Ð4Ð4Ø$ð 5ð 5�AÝ5°a¸Ñ;Ô;�GÝ#:¸7ÀAÀaÁCÑ#HÔ#H�LÝ# L°!Ñ4Ô4Ð4Ð4ð5ð5ð	5ð 	5r)   c                 ó°   — ddgddgg}ddgddgg}t          t          j        ||¦  «        |d¬	¦  «         t          t          |d
¦  «        |d¬	¦  «         d S )Nr  rs   r   r  r  r—   r  r`   rº   rÇ   )r   r$   rî   r   r  s      r'   rÊ   z@TestFractionalMatrixPower.test_opposite_sign_complex_eigenvaluesí  sk   € Ø�!ˆW�q˜#�hÐˆØ�AˆY˜˜D˜	Ð"ˆÝ�œ˜q !™œ a¨eÐ4Ñ4Ô4Ð4ÝÕ/°°3Ñ7Ô7¸ÀÐGÑGÔGÐGÐGÐGr)   N)rV   rW   rX   r‘   rŒ   ri  rs  r  r}  r„  r‡  r½   rã   rå   r‹  rÊ   rY   r)   r'   r\  r\  :  sÚ   € € € € € ð
5ð 
5ð 
5ð5ð 5ð 5ð&ð &ð &ð$8ð 8ð 8ð2Eð Eð Eð(8ð 8ð 8ð!Cð !Cð !CðFCð Cð Cð2 „[×ÒÐ<ÐÑ=Ô=ð5ð 5ñ >Ô=ð5ð&Hð Hð Hð Hð Hr)   r\  c            
       ón  — e Zd Zd„ Zd„ Zej                             dee	e
eeeeg¦  «        ej                             deeej        eej        g¦  «        ej                             dddg¦  «        d„ ¦   «         ¦   «         ¦   «         Zd	„ Zd
„ Zd„ Zej                             d¦  «        d„ ¦   «         ZdS )ÚTestExpMc                 óv   — t          ddgddgg¦  «        }t          t          |¦  «        ddgddgg¦  «         d S )Nr@   r   rA   )r   r   r   rD   s     r'   Ú	test_zerozTestExpM.test_zeroõ  sC   € Ý�B�q�6˜1˜Q˜%�.Ñ!Ô!ˆÝ!¥$ q¡'¤'¨A¨a¨5°!°A°¨-Ñ8Ô8Ð8Ð8Ð8r)   c                 ó€   — t          d¦  «        }t          |t          j        t          j        gg¦  «        ¦  «         d S )NrA   )r   r   r$   r   ró   )r:   Úelts     r'   Útest_single_eltzTestExpM.test_single_eltù  s3   € Ý�1‰gŒgˆÝ˜�RœX­¬ v hÑ/Ô/Ñ0Ô0Ð0Ð0Ð0r)   Úfuncr°   rÙ   rÖ   ©rA   rA   c                 óÈ   — t          j        ||¬¦  «        }t          j        d|¬¦  «        } ||¦  «        } ||¦  «        }|j        |k    sJ ‚|j        |j        k    sJ ‚d S )Nr"   )r)  r)  )r$   rá   rÙ   r#   )r:   r”  r°   rÙ   r&   ÚA0ÚresultÚresult0s           r'   Útest_small_empty_matrix_inputz&TestExpM.test_small_empty_matrix_inputý  st   € õ ŒH�U "Ð%Ñ%Ô%ˆÝŒX�h bÐ)Ñ)Ô)ˆØ��a‘”ˆØ�$�r‘(”(ˆØŒ|˜uÒ$Ð$Ð$Ð$ØŒ|˜wœ}Ò,Ð,Ð,Ð,Ð,Ð,r)   c                 óÐ  — t           j        }t          ddgddgg¦  «        }|dz  dz   d|z  z  }|dz  dz
  |z  }t          t	          |¦  «        t          ||g|dz  |gg¦  «        ¦  «         t	          |                     t           j        ¦  «        ¦  «        j        j        dk    sJ ‚t	          |                     t           j	        ¦  «        ¦  «        j        j        dk    sJ ‚d S )NrA   rs   r—   r”   Úf)
r$   ró   r   r   r   r$  ré   r#   r¥   rè   )r:   rÁ   r;   ÚaaÚbbs        r'   Útest_2x2_inputzTestExpM.test_2x2_input
  sÙ   € ÝŒDˆÝ�A�q�6˜A˜q˜6Ð"Ñ#Ô#ˆØ�‰d�Q‰h˜˜1™ÑˆØ�‰d�Q‰h˜‰\ˆÝ�˜Q™œ¥¨¨R¨°2°a±4¸°*Ð'=Ñ!>Ô!>Ñ?Ô?Ð?Ý�A—H’H�Rœ\Ñ*Ô*Ñ+Ô+Ô1Ô6¸#Ò=Ð=Ð=Ð=Ý�A—H’H�RœZÑ(Ô(Ñ)Ô)Ô/Ô4¸Ò;Ð;Ð;Ð;Ð;Ð;r)   c                 óÒ  — t           j        }t          j        ddgddggddgddggddgddggddgddggddgddgggd¬	¦  «        }t          j        |dz  dz   d
|z  z  |dz  dz
  |z  g|dz  dz
  dz  |z  |dz  dz   d
|z  z  ggdd|d
z  z  z  d|d
z  z  dz  z   d|d
z  z  dz  dd|d
z  z  z  z
  g|d
z  dz  dd|d
z  z  z  z
  dd|d
z  z  z  |d
z  dz  z   ggdd|z  z  |dz  dz  z   dd|z  z  d|dz  z  dz  z   gdd
|z  z  |dz  d
z  z   dd|z  z  d|dz  z  dz  z   ggdd|d
z  z  z  d|dz  z  dz  z   dd|d
z  z  z  d|dz  z  dz  z   gdd|d
z  z  z  d|dz  z  dz  z   dd|d
z  z  z  d|dz  z  dz  z   ggdd
|z  z  d|z  d
z  z   dd
|z  z  d|z  d
z  z   gdd
|z  z  d|z  d
z  z
  dd
|z  z  d|z  d
z  z
  ggg¦  «        }t          t	          |¦  «        |¦  «         d S )NrA   rs   r˜   rµ   rÌ   éýÿÿÿrr   r”   )Úorderr—   r]   é   ro   éûÿÿÿ)r$   ró   r   r   r   )r:   rÁ   r;   Úa_ress       r'   Útest_nx2x2_inputzTestExpM.test_nx2x2_input  sâ  € ÝŒDˆåŒH˜˜1�v  1˜vÐ&Ø˜1�v  2˜wÐ'Ø˜1�v  1˜vÐ&Ø˜1�v  1˜vÐ&Ø˜1�v  B˜xÐ(ð	*ð 25ð	6ñ 6ô 6ˆõ ”Ø ™T !™V a¨¡c™N¨Q°©T°!©V°Q©JÐ7Ø ™T !™V Q™J q™L¨1¨a©4°©6°A°a±C©.Ð9ð;à˜q  A¡™v™J¨¨!¨Q©$©°¡zÑ1°A°a¸±d±F¸A±:¸aÀÀ1ÀaÁ4Á¹jÑ3HÐIØ˜q™D ™F 1 a¨¨1©¡f¡:Ñ-¨q°!°A°q±D±&©z¸!¸Q¹$¸q¹&Ñ/@ÐAðCà˜q ™s™G A q¡D¨¡F™N¨B°°!±©H°a¸¸1¹±f¸a±ZÑ,?Ð@Ø  !¡™H Q¨¡T¨!¡V™O¨Q°°!±©W°a¸¸1¹±f¸a±ZÑ-?Ð@ðBà˜q  A¡™v™J¨¨!¨Q©$©°¡zÑ1°2°q¸¸A¹±v±;ÀÀ!ÀQÁ$ÁÈ¹zÑ3IÐJØ  ! Q¡$¡™K¨¨1¨a©4©°©
Ñ2°A°q¸¸A¹±v±JÀÀ!ÀQÁ$ÁÈ¹zÑ4IÐJðLà  !¡™H a¨¡c¨1¡WÑ,¨b°!°A±#©h¸¸!¹¸Q±wÑ.>Ð?Ø˜q ™s™G Q q¡S¨!¡G™O¨Q°°!±©W°a¸±c¸1±W©_Ð=ð?ðñ ô ˆõ 	�˜Q™œ Ñ'Ô'Ð'Ð'Ð'r)   c                 ól   — d}t          j        ||f¦  «        }d|j        _        t	          |¦  «         d S )Nr]   F)r$   rÍ   rÎ   rÏ   r   rÐ   s      r'   rÑ   zTestExpM.test_readonly*  s1   € ØˆÝŒG�Q˜�F‰OŒOˆØ!ˆŒÔÝˆQ‰Œˆˆˆr)   rÌ   c                 óœ  — t          j        dt          ¬¦  «        }t           j                             d¦  «        }|                     ddd¦  «        }|                     ddd¦  «        }|                     d¦  «        |||f<   t          j        dt          ¬¦  «        }|                     ¦   «         |d<   t          |¦  «        \  }}|dk    sJ ‚t          |¦  «        }t           j
                             t          |¦  «        |¦  «         t          d	¦  «        D ]1}t          |¦  «        }	t           j
                             ||	¦  «         Œ2d S )
N)é�  r©  r"   éd   r   i�  iô  )rÌ   r©  r©  rt   rÌ   )r$   rá   r%   rw   rx   rl  r×   rS  r   r   Útestingr   r   ry   )
r:   r&   r‚   rg  ÚjÚAmr^   rE  Ú	first_resÚnext_ress
             r'   Útest_gh18086zTestExpM.test_gh180860  s!  € åŒH�Z¥uÐ-Ñ-Ô-ˆÝŒi×#Ò# CÑ(Ô(ˆØ�LŠL˜˜C Ñ%Ô%ˆØ�LŠL˜˜C Ñ%Ô%ˆØ—*’*˜S‘/”/ˆˆ!ˆQˆ$‰åŒX�m­5Ð1Ñ1Ô1ˆØ—’‘”ˆˆ1‰Ý" 2Ñ&Ô&‰ˆˆ1Ø�AŠvˆvˆvˆvå˜‘G”Gˆ	Ý
Œ
×,Ò,­T°)©_¬_¸aÑ@Ô@Ð@å�q‘”ð 	Fð 	FˆAÝ˜A‘w”wˆHÝŒJ×0Ò0°¸HÑEÔEÐEÐEð	Fð 	Fr)   N)rV   rW   rX   r�  r“  r½   rã   ræ   r   r   r   r   r   r   r   rç   r%   r$   rè   r¦   ré   rš  rŸ  r¦  rÑ   Ú	fail_slowr°  rY   r)   r'   rŽ  rŽ  ô  s  € € € € € ð9ð 9ð 9ð1ð 1ð 1ð „[×Ò˜V d¨D°$¸¸eÀUÈEÐ%RÑSÔSØ„[×Ò˜T 3¨¨r¬z¸7ÀBÄLÐ"QÑRÔRØ„[×Ò˜W v¨vÐ&6Ñ7Ô7ð-ð -ñ 8Ô7ñ SÔRñ TÔSð-ð<ð <ð <ð(ð (ð (ð.ð ð ð „[×Ò˜1ÑÔðFð Fñ ÔðFð Fð Fr)   rŽ  c                   ó’   — e Zd Zd„ Zd„ Zd„ Zd„ Zej        j	        ej         
                    d¬¦  «        d„ ¦   «         ¦   «         ZdS )	ÚTestExpmFrechetc                 óæ  — t          j        g d¢g d¢g d¢g d¢gt          ¬¦  «        }t          j        ddgdd	ggt          ¬¦  «        }t          j        d
dgddggt          ¬¦  «        }t          j                             |¦  «        }t          j                             |¦  «        d d…dd …f         }i ddiddifD ]3}t          ||fi |¤Ž\  }}t          ||¦  «         t          ||¦  «         Œ4d S )N©rA   r—   r˜   rs   ©rÌ   ro   r]   r£  ©r   r   rA   r—   ©r   r   rÌ   ro   r"   rA   r—   rÌ   ro   r˜   rs   r]   r£  ÚmethodÚSPSÚblockEnlarge)r$   r   r%   r£   r|   r   r   r   )	r:   r†   r&   rÁ   Úexpected_expmÚexpected_frechetÚkwargsÚobserved_expmÚobserved_frechets	            r'   Útest_expm_frechetz!TestExpmFrechet.test_expm_frechetG  sL  € åŒHØˆLˆLØˆLˆLØˆLˆLØˆLˆLð	õ
 ðñ ô ˆõ ŒHØ�ˆFØ�ˆFðõ ðñ ô ˆõ ŒHØ�ˆFØ�ˆFðõ ðñ ô ˆõ œ×)Ò)¨!Ñ,Ô,ˆÝ œ<×,Ò,¨QÑ/Ô/°°°°A°B°B°Ô7ÐØ˜H UÐ+¨h°~Ð-FÐGð 	@ð 	@ˆFÝ.:¸1¸aÐ.JÐ.JÀ6Ð.JÐ.JÑ+ˆMÐ+Ý˜M¨=Ñ9Ô9Ð9ÝÐ,Ð.>Ñ?Ô?Ð?Ð?ð	@ð 	@r)   c                 ó  — t          j        g d¢g d¢g d¢g d¢gt          ¬¦  «        }t          j        ddgdd	ggt          ¬¦  «        }t          j        d
dgddggt          ¬¦  «        }t          j                             |d¦  «        }g d¢}t          |d d…         |dd …         ¦  «        }|D ]Ö\  }}t          j        j        j        |         }	t          j        j        j        |         }
d|	|
z   z  }||z  }||z  }||z  }||z  }t          j         	                    |¦  «        }t          j         	                    |¦  «        d d…dd …f         }t          ||¦  «        \  }}t          ||¦  «         t          ||¦  «         Œ×d S )Nrµ  r¶  r·  r¸  r"   rA   r—   rÌ   ro   r˜   rs   r]   r£  )rA   r˜   rÌ   r]   rt   é   rH  é   rµ   rÇ   )r$   r   r%   r£   r|   r   ÚzipÚ_expm_frechetÚell_table_61r   r   r   )r:   Ú
M_originalÚ
A_originalÚ
E_originalÚA_original_norm_1Úselected_m_listÚm_neighbor_pairsÚmaÚmbÚell_aÚell_bÚtarget_norm_1r…   r†   r&   rÁ   r¼  r½  r¿  rÀ  s                       r'   Útest_small_norm_expm_frechetz,TestExpmFrechet.test_small_norm_expm_frechet^  s×  € å”XØˆLˆLØˆLˆLØˆLˆLØˆLˆLð	õ
 ðñ ô ˆ
õ ”XØ�ˆFØ�ˆFðõ ðñ ô ˆ
õ ”XØ�ˆFØ�ˆFðõ ðñ ô ˆ
õ "œL×-Ò-¨j¸!Ñ<Ô<ÐØ5Ð5Ð5ˆÝ˜¨s°¨sÔ3°_ÀQÀRÀRÔ5HÑIÔIÐØ&ð 	@ð 	@‰FˆB�Ý”LÔ.Ô;¸BÔ?ˆEÝ”LÔ.Ô;¸BÔ?ˆEØ 5¨5¡=Ñ1ˆMØ!Ð$5Ñ5ˆEØ˜
Ñ"ˆAØ˜
Ñ"ˆAØ˜
Ñ"ˆAÝ!œL×-Ò-¨aÑ0Ô0ˆMÝ$œ|×0Ò0°Ñ3Ô3°B°Q°B¸¸¸°FÔ;ÐÝ.:¸1¸aÑ.@Ô.@Ñ+ˆMÐ+Ý˜M¨=Ñ9Ô9Ð9ÝÐ,Ð.>Ñ?Ô?Ð?Ð?ð	@ð 	@r)   c           	      óf  — t           j                             d¦  «        }|j        |j        |j        |j        f}d}t          |¦  «        D �]d}||                     d¦  «                 }|                     ¦   «         }| 	                    dd¦  «        } |||f¬¦  «        } |||f¬¦  «        }	t          j                             |d¦  «        }
||
z  }||z  }||	z  }t          j        t          j        ||g¦  «        t          j        t          j        |¦  «        |g¦  «        g¦  «        }t          j                             |¦  «        }t          j                             |¦  «        d |…|d …f         }t#          ||¦  «        \  }}t%          ||d¬	¦  «         t%          ||d
¬	¦  «         �Œfd S )Nl   ñ]±"ù1 rª  rs   r—   é   rp   rA   gH¯¼šò×j>rº   gH¯¼šò×z>)r$   rw   rx   rz   ÚnormalÚstandard_cauchyÚexponentialry   rn  rl  r£   r|   r   ÚvstackÚhstackÚ
zeros_liker   r   r   )r:   r‚   ÚrfuncsÚntestsrg  ÚrfuncrÒ  rƒ   rÉ  rÊ  rË  r…   r&   rÁ   r†   r¼  r½  r¿  rÀ  s                      r'   Ú	test_fuzzzTestExpmFrechet.test_fuzz  s¾  € ÝŒi×#Ò#Ð$4Ñ5Ô5ˆð ”Ø”
ØÔ#Ø”ð	!ˆð
 ˆÝ�v‘”ð 	Kñ 	KˆAØ˜3Ÿ:š: a™=œ=Ô)ˆEØŸOšOÑ-Ô-ˆMØ—’˜Q Ñ#Ô#ˆAØ˜ Q q EÐ*Ñ*Ô*ˆJØ˜ Q q EÐ*Ñ*Ô*ˆJÝ %¤× 1Ò 1°*¸aÑ @Ô @ÐØ!Ð$5Ñ5ˆEØ˜
Ñ"ˆAØ˜
Ñ"ˆAÝ”	Ý”	˜1˜a˜&Ñ!Ô!Ý”	�2œ=¨Ñ+Ô+¨QÐ/Ñ0Ô0ð2ñ 3ô 3ˆAõ "œL×-Ò-¨aÑ0Ô0ˆMÝ$œ|×0Ò0°Ñ3Ô3°B°Q°B¸¸¸°FÔ;ÐÝ.:¸1¸aÑ.@Ô.@Ñ+ˆMÐ+Ý˜M¨=¸tÐDÑDÔDÐDÝÐ,Ð.>ÀTÐJÑJÔJÐJÑJð#	Kð 	Kr)   c                 ó^  — t          j        ddgddggt          ¬¦  «        }t          j        ddgdd	ggt          ¬¦  «        }t          j                             |d
¦  «         t          ||d¬¦  «        \  }}t          ||d¬¦  «        \  }}t          ||¦  «         t          ||¦  «         d S )Ng]±Ø‰?ø?gîvÿP÷þ?g¯¾^Ú?guÃ�¨øÎ?r"   gîðS,éþ?g�¶·|� @gJ»Ùtõ?g~3µ•Œå?rA   rº  ©r¹  r»  )r$   r   r%   r£   r|   r   r   r   )r:   r&   rÁ   Úsps_expmÚsps_frechetÚblockEnlarge_expmÚblockEnlarge_frechets          r'   Útest_problematic_matrixz'TestExpmFrechet.test_problematic_matrix›  sè   € åŒHØ˜ZÐ(Ø˜ZÐ(ðõ ð ñ  ô  ˆõ ŒHØ˜ZÐ(Ø˜ZÐ(ðõ ð ñ  ô  ˆõ 	Œ×Ò˜!˜QÑÔÐÝ ,Ø�1˜Uð!$ñ !$ô !$Ñˆ�+å2>Ø�1˜^ð3-ñ 3-ô 3-Ñ/ÐÐ/å˜Ð"3Ñ4Ô4Ð4Ý˜Ð%9Ñ:Ô:Ð:Ð:Ð:r)   zthis test is deliberately slowrÒ   c                 ó<  — d}t           j                             d¦  «        }|                     ||f¬¦  «        }|                     ||f¬¦  «        }t	          ||d¬¦  «        \  }}t	          ||d¬¦  «        \  }}t          ||¦  «         t          ||¦  «         d S )Niè  r^  rp   rº  rá  r»  )r$   rw   rx   rØ  r   r   )	r:   rƒ   r‚   r&   rÁ   râ  rã  rä  rå  s	            r'   Útest_medium_matrixz"TestExpmFrechet.test_medium_matrix­  s¶   € ð ˆÝŒi×#Ò# DÑ)Ô)ˆØ�OŠO ! Q ˆOÑ(Ô(ˆØ�OŠO ! Q ˆOÑ(Ô(ˆÝ ,Ø�1˜Uð!$ñ !$ô !$Ñˆ�+å2>Ø�1˜^ð3-ñ 3-ô 3-Ñ/ÐÐ/å˜Ð"3Ñ4Ô4Ð4Ý˜Ð%9Ñ:Ô:Ð:Ð:Ð:r)   N)rV   rW   rX   rÁ  rÓ  rß  ræ  r½   rã   ÚslowÚskiprè  rY   r)   r'   r³  r³  E  sš   € € € € € ð@ð @ð @ð.@ð @ð @ðBKð Kð Kð8;ð ;ð ;ð$ „[ÔØ„[×ÒÐ=ÐÑ>Ô>ð;ð ;ñ ?Ô>ñ Ôð;ð ;ð ;r)   r³  c                 óÄ   — t          j        || j        ¦  «        }t          |¦  «        }||z  ||z  z  }t	          | |z   ¦  «        }t          ||z
  ¦  «        ||z  z  }	|	 S ©N)r$   ÚreshaperÙ   r   r   )
r&   ÚA_normr±   ÚX_normÚepsrb  Úp_normÚperturbationÚX_primeÚscaled_relative_errors
             r'   Ú_help_expm_cond_searchrõ  ½  sh   € Ý
Œ
�1�a”gÑÔ€AÝ�!‰WŒW€FØ˜‘7˜f v™oÑ.€LÝ�1�|Ñ#Ñ$Ô$€GÝ  ¨1¡Ñ-Ô-°¸#±Ñ>ÐØ!Ð!Ð!r)   c                 ó†   — | t           j                             |¦  «        t           j                             | ¦  «        z  z  S rì  )r£   r|   r   )r&   r¿   s     r'   Ú_normalized_liker÷  Æ  s2   € Ø•”×!Ò! !Ñ$Ô$¥u¤|×'8Ò'8¸Ñ';Ô';Ñ;Ñ<Ð<r)   c                 óx   —  | |¦  «        } | ||z   ¦  «        }t          ||z
  ¦  «        t          |¦  «        z  S rì  )r   )rœ  r&   rò  r±   ró  s        r'   Ú_relative_errorrù  Ê  s@   € Ø	ˆˆ!‰Œ€AØˆa��LÑ Ñ!Ô!€GÝ�˜!‘ÑÔ�t A™wœwÑ&Ð&r)   c                   óJ   — e Zd Zd„ Zd„ Zd„ Zej        j        d„ ¦   «         Z	dS )ÚTestExpmConditionNumberc                 óÖ   — t           j                             d¦  «        }t          dd¦  «        D ]8}|                     ||f¦  «        }t          |¦  «        }t          d|¦  «         Œ9d S )Nr^  rA   rs   r   )r$   rw   rx   ry   r�   r   r	   )r:   r‚   rƒ   r&   Úkappas        r'   Útest_expm_cond_smokez,TestExpmConditionNumber.test_expm_cond_smokeÑ  sm   € ÝŒi×#Ò# DÑ)Ô)ˆÝ�q˜!‘”ð 	(ð 	(ˆAØ×#Ò# Q¨ FÑ+Ô+ˆAÝ˜a‘L”LˆEÝ˜a Ñ'Ô'Ð'Ð'ð	(ð 	(r)   c                 ó„   — t          j        g d¢g d¢g d¢g d¢g¦  «        }t          |¦  «        }t          d|¦  «         d S )N)göá(’ò¿gÙ™BgÝx÷@g  °=ÛðÁg ¾Zd ðB)r   gzNÑV7ó¿gðŠà¯…÷@g  2pñÁ)r   r   gá™¥¤T ò¿g?W[±ÎE÷@)r   r   r   gT–†!ßò¿gã yÏùhG)r$   r   r   r	   )r:   r&   rý  s      r'   Útest_expm_bad_condition_numberz6TestExpmConditionNumber.test_expm_bad_condition_numberØ  s_   € ÝŒHØIÐIÐIØ<Ð<Ð<Ø/Ð/Ð/Ø#Ð#Ð#ð	ñ ô ˆõ ˜!‘”ˆÝ˜$ Ñ&Ô&Ð&Ð&Ð&r)   c                 ód  — t           j                             d¦  «        }t          j        ddd¬¦  «        D ]B}t          j        |gg¦  «        }t          t          |¦  «        t          |¦  «        ¦  «         ŒCt          j        ddd¬¦  «        D ]B}t          j        |gg¦  «        }t          t          |¦  «        t          |¦  «        ¦  «         ŒCt          d¦  «        D ]L}| 
                    d	¦  «        }t          t          |¦  «        t          j        |¦  «        d
         ¦  «         ŒMd S )Nr^  r¤  rÌ   rÃ  )Únumr7  r—   r)  r•  rÖ   )r$   rw   rx   Úlinspacer   r   r   Úabsr{   ry   r�   r¬   )r:   r‚   Úxr&   rg  s        r'   Útest_univariatez'TestExpmConditionNumber.test_univariateâ  s  € ÝŒi×#Ò# DÑ)Ô)ˆÝ”˜R ¨Ð+Ñ+Ô+ð 	2ð 	2ˆAÝ”˜1˜#˜‘”ˆAÝ�I a™LœL­#¨a©&¬&Ñ1Ô1Ð1Ð1Ý”˜R ¨Ð+Ñ+Ô+ð 	2ð 	2ˆAÝ”˜1˜#˜‘”ˆAÝ�I a™LœL­#¨a©&¬&Ñ1Ô1Ð1Ð1Ý�r‘”ð 	@ð 	@ˆAØ×#Ò# FÑ+Ô+ˆAÝ�I a™LœL­"¬+°a©.¬.¸Ô*>Ñ?Ô?Ð?Ð?ð	@ð 	@r)   c           	      ó  — t           j                             d¦  «        }d}d}t          |¦  «        D �]×}|                     dd¦  «        }|                     ||¦  «        }t          j                             |¦  «        }t          |¦  «        }t          j                             |¦  «        }	t          |¦  «        }
t          j        t          ||||	|¦  «        }t          j        ||z  ¦  «        }t          ||d¬¦  «        }|j        } ||¦  «        }|t#          t          j        ||j        ¦  «        |¦  «        z  }t)          t          ||¦  «        }t+          || |z  ¦  «         t          d¦  «        D ]r}|t#           |j        |j        Ž |¦  «        z  }t+          t          |¦  «        t          |¦  «        ¦  «         t)          t          ||¦  «        }t-          ||¦  «         Œst-          |dd|z  z   |z  |
z  ¦  «         �ŒÙd S )	Ni90  rh   r)  r—   rÌ   zL-BFGS-Brá  rA   )r$   rw   ÚRandomStatery   ÚrandintÚrandnr£   r|   r   r   r   Ú	functoolsÚpartialrõ  rÍ   r   r  r÷  rí  rÙ   rù  r   r	   )r:   r‚   rð  ro  rg  rƒ   r&   rî  r±   rï  rý  rœ  ÚguessÚoutÚxoptÚyoptÚp_bestÚp_best_relerrr¬  Úp_randÚp_rand_relerrs                        r'   Útest_expm_cond_fuzzz+TestExpmConditionNumber.test_expm_cond_fuzzî  sí  € åŒi×#Ò# EÑ*Ô*ˆØˆØˆÝ�x‘”ð 	Hñ 	HˆAØ—’˜A˜qÑ!Ô!ˆAØ—	’	˜!˜Q‘”ˆAÝ”\×&Ò& qÑ)Ô)ˆFÝ�Q‘”ˆAÝ”\×&Ò& qÑ)Ô)ˆFÝ˜a‘L”LˆEõ Ô!Õ"8Ø�v˜q &¨#ñ/ô /ˆAå”G˜A˜a™C‘L”LˆEÝ˜1˜e¨JÐ7Ñ7Ô7ˆCØ”5ˆDØ�1�T‘7”7ˆDØÕ+­B¬J°t¸Q¼WÑ,EÔ,EÀqÑIÔIÑIˆFÝ+­D°!°VÑ<Ô<ˆMÝ˜M¨D¨5°3©;Ñ7Ô7Ð7õ ˜1‘X”Xð @ð @�ØÕ/°	°´	¸1¼7Ð0CÀQÑGÔGÑG�Ý¥ V¡¤­d°6©l¬lÑ;Ô;Ð;Ý /µ°a¸Ñ @Ô @�Ý! -°Ñ?Ô?Ð?Ð?õ
 ˜m¨a°!°C±%©i¸3Ñ->ÀÑ-FÑGÔGÐGÑGð?	Hð 	Hr)   N)
rV   rW   rX   rþ  r   r  r½   rã   ré  r  rY   r)   r'   rû  rû  Ð  sj   € € € € € ð(ð (ð (ð'ð 'ð 'ð
@ð 
@ð 
@ð „[Ôð#Hð #Hñ Ôð#Hð #Hð #Hr)   rû  c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestKhatriRaoc           
      ó^  — t          t          ddgddgg¦  «        t          ddgddgg¦  «        ¦  «        }t          |t          dd	gdd
gddgddgg¦  «        ¦  «         t          t          j        ddg¦  «        t          j        ddg¦  «        ¦  «        }t          |j        d¦  «         d S )NrA   r—   r˜   rs   rÌ   ro   r]   r£  é   rÕ  rÄ  é   é   é    )rs   r—   )r   r   r
   r$   r×   rÙ   ©r:   r;   Úbs      r'   Ú
test_basiczTestKhatriRao.test_basic  sÇ   € Ý•u˜q !˜f q¨! fÐ-Ñ.Ô.Ý˜q !˜f q¨! fÐ-Ñ.Ô.ñ0ô 0ˆõ 	˜1�e a¨ WØ&'¨ WØ&(¨" XØ&(¨" Xð%/ñ 0ô 0ñ 	1ô 	1ð 	1õ
 •r”x  A Ñ'Ô'­¬°1°a°&Ñ)9Ô)9Ñ:Ô:ˆÝ˜1œ7 FÑ+Ô+Ð+Ð+Ð+r)   c                 óÞ   — t          j        t          ¦  «        5  t          g d¢g d¢g¦  «        }t          ddgddgg¦  «        }t	          ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N©rA   r—   r˜   ©rs   rÌ   ro   rA   r—   r˜   rs   ©r½   ÚraisesÚ
ValueErrorr   r   r  s      r'   Útest_number_of_columns_equalityz-TestKhatriRao.test_number_of_columns_equality#  sÈ   € ÝŒ]�:Ñ&Ô&ð 	ð 	Ý�y�y�yØ �y�yð"ñ #ô #ˆAå˜˜1�vØ˜1�vðñ  ô  ˆAå�q˜!ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   š;A"Á"A&Á)A&c                 ój  — t          j        t          ¦  «        5  t          g d¢¦  «        }t          g d¢¦  «        }t	          ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          g d¢¦  «        }t          g d¢g d¢g¦  «        }t	          ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          g d¢g d¢g¦  «        }t          g d¢¦  «        }t	          ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr!  r"  )r]   r£  rt   r#  r  s      r'   Útest_to_assure_2d_arrayz%TestKhatriRao.test_to_assure_2d_array+  s   € ÝŒ]�:Ñ&Ô&ð 	ð 	å�i�i�iÑ Ô ˆAÝ�i�i�iÑ Ô ˆAÝ�q˜!ÑÔÐð		ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Œ]�:Ñ&Ô&ð 	ð 	å�i�i�iÑ Ô ˆAÝØ�	�	Ø�	�	ðñ ô ˆAõ �q˜!ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Œ]�:Ñ&Ô&ð 	ð 	åØ�	�	Ø�	�	ðñ ô ˆAõ �i�i�iÑ Ô ˆAÝ�q˜!ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s5   š3AÁAÁ AÁ=7C Ã CÃCÃ$7D(Ä(D,Ä/D,c                 ó  ‡‡— t          ddgddgg¦  «        Št          ddgddgg¦  «        Št          ‰‰¦  «        }t          j        ˆˆfd	„t	          ‰j        d         ¦  «        D ¦   «         ¦  «        j        }t          ||¦  «         d S )
NrA   r—   r˜   rs   rÌ   ro   r]   r£  c                 ób   •— g | ]+}t          j        ‰d d …|f         ‰d d …|f         ¦  «        ‘Œ,S rì  )r$   Úkron)rŸ   rI  r;   r  s     €€r'   ú
<listcomp>z@TestKhatriRao.test_equality_of_two_equations.<locals>.<listcomp>I  sM   ø€ ð 6ð 6ð 6Øõ œ' ! A A A q D¤'¨1¨Q¨Q¨Q°¨T¬7Ñ3Ô3ð 6ð 6ð 6r)   )r   r   r$   rÙ  ry   rÙ   r¼   r
   )r:   Úres1Úres2r;   r  s      @@r'   Útest_equality_of_two_equationsz,TestKhatriRao.test_equality_of_two_equationsD  s¯   øø€ Ý�A�q�6˜A˜q˜6Ð"Ñ#Ô#ˆÝ�A�q�6˜A˜q˜6Ð"Ñ#Ô#ˆå˜!˜QÑÔˆÝŒyð 6ð 6ð 6ð 6ð 6Ý#(¨¬°¬Ñ#4Ô#4ð6ñ 6ô 6ñ 7ô 7Ü78ð 	õ 	˜4 Ñ&Ô&Ð&Ð&Ð&r)   c                 ón  — t          j        d¦  «        }t          j        d¦  «        }t          ||¦  «        }t          |t          j        d¦  «        ¦  «         t          j        d¦  «        }t          j        d¦  «        }t          ||¦  «        }t          |t          j        d¦  «        ¦  «         d S )N)r   r—   )r˜   r—   )r˜   r   )rÌ   r   )rÄ  r   )r$   r×   r   r   )r:   r;   r  Úress       r'   rÝ   zTestKhatriRao.test_emptyN  s–   € ÝŒH�VÑÔˆÝŒH�VÑÔˆÝ˜˜AÑÔˆÝ˜�RœX fÑ-Ô-Ñ.Ô.Ð.åŒH�VÑÔˆÝŒH�VÑÔˆÝ˜˜AÑÔˆÝ˜�RœX gÑ.Ô.Ñ/Ô/Ð/Ð/Ð/r)   N)rV   rW   rX   r  r&  r(  r/  rÝ   rY   r)   r'   r  r    s_   € € € € € ð
,ð 
,ð 
,ðð ð ðð ð ð2'ð 'ð 'ð	0ð 	0ð 	0ð 	0ð 	0r)   r  r”  c                 óœ   — t          j        ¦   «         5   | t          j        d¦  «        d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr—   F)Údisp)r½   Údeprecated_callr$   rØ   )r”  s    r'   Útest_disp_depr5  Y  s”   € õ 
Ô	Ñ	!Ô	!ð $ð $Øˆ�RŒV�A‰YŒY˜UÐ#Ñ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð $ð $s   ” AÁAÁAc                  ó¤   — t          j        ¦   «         5  t          t          j        d¦  «        d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr—   r)  )Ú	blocksize)r½   r4  r   r$   rØ   rY   r)   r'   Útest_blocksize_depr8  _  s�   € Ý	Ô	Ñ	!Ô	!ð 'ð 'Ý�bŒf�Q‰iŒi 2Ð&Ñ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 's   ”$AÁA	ÁA	):Ú__doc__r  r½   r~   Únumpyr$   r   r   r   Únumpy.testingr   r   r   r	   r
   Úscipy.linalgr£   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Úscipy.linalg._matfuncsr   Úscipy.linalg._matfuncs_inv_ssqr   Úscipy.linalg._expm_frechetr   Úscipy.optimizer   r(   r+   r[   rë   r\  rŽ  r³  rõ  r÷  rù  rû  r  rã   ræ   r5  r8  rY   r)   r'   ú<module>rA     s,  ððð ð Ð Ð Ð Ø €€€Ø €€€à Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'ðBð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Ð Ð Ð ðAð Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að Að +Ð *Ð *Ð *Ð *Ð *Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø EÐ EÐ EÐ EÐ EÐ EØ !Ð !Ð !Ð !Ø &Ð &Ð &Ð &Ð &Ð &Ø #Ð #Ð #Ð #Ð #Ð #ðð ð ð*'ð 'ð 'ð 'ð 'ñ 'ô 'ð 'ðVn0ð n0ð n0ð n0ð n0ñ n0ô n0ð n0ðbiDð iDð iDð iDð iDñ iDô iDð iDðX	wHð wHð wHð wHð wHñ wHô wHð wHðtNFð NFð NFð NFð NFñ NFô NFð NFðbu;ð u;ð u;ð u;ð u;ñ u;ô u;ð u;ðp"ð "ð "ð=ð =ð =ð'ð 'ð 'ðBHð BHð BHð BHð BHñ BHô BHð BHðJB0ð B0ð B0ð B0ð B0ñ B0ô B0ð B0ðH „×Ò˜Ø  uÐ-ñ/ô /ð$ð $ñ/ô /ð$ð'ð 'ð 'ð 'ð 'r)   