§
    µ³Ùg¤  ã                   óÊ  — d Z ddlZddlZddlmZmZmZmZ ddlm	Z	m
Z
mZmZmZmZ ddl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
„ 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¦  «        Z5dS )z, Test functions for linalg.matfuncs module

é    N)ÚarrayÚidentityÚdotÚsqrt)Úassert_array_almost_equalÚassert_allcloseÚassert_Úassert_array_lessÚassert_array_equalÚassert_warns)Ú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)Ú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    úV/granary/edev/quantum/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Àr0   r1   ©g333333#Àg333333#@g     €9ÀgÍÌÌÌÌÌ.Àr1   ©gš™™™™™#@g333333Àg      2@g3333332@ç       @)gŸ´ªæ'@çÀ'RqöÀgÂ�¤ƒy¢.@g�¼eÚ@§5@r6   )g@¢èÈ½Àç˜UÐ›'êß?gëò9¹×\Àgçœ+Œ%¿Àr7   )gR¸…ëQÀçìQ¸…ëá?g®Gáz®ÀgffffffÀr8   )g¥×¨#Àç´w?Ã®ð?gÀk#àeÀgC,î�NÀr9   )gà®ý¡@ç4Õ2ì
à¿gÆF(£@gcÔsÚ@@r:   )r   r   r   )ÚselfÚaÚcrÚrs       r(   Ú	test_nilszTestSignM.test_nils2   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                 ó^   — t          g d¢g d¢g d¢g d¢g¦  «        }t          |d¬¦  «         d S )N)ç        é   r   r   )rB   r   rB   r   ©r   r   r   rB   )r   r   rB   r   F©Údisp©r   r   ©r;   r<   s     r(   Útest_defective1zTestSignM.test_defective1@   sA   € Ý�;�;�;˜y˜y˜y¨¨¨°9°9°9Ð=Ñ>Ô>ˆÝˆa�eÐÑÔÐÐÐr*   c                 ód   — t          g d¢g d¢g d¢g d¢g d¢f¦  «        }t          |d¬¦  «         d S )Nr.   r/   r2   r3   r4   FrD   rF   rG   s     r(   Útest_defective2zTestSignM.test_defective2E   s^   € ÝØ&Ð&Ð&Ø'Ð'Ð'Ø(Ð(Ð(Ø'Ð'Ð'Ø$Ð$Ð$ð&ñ 'ô 'ˆõ 	ˆa�eÐÑÔÐÐÐr*   c           
      óp   — t          g d¢g d¢g d¢g d¢g d¢g d¢g d¢g¦  «        }t          |d¬	¦  «         d S )
N©r1   ç      9@rA   rA   rA   rA   rA   ©rA   ç      Àç      $@ç      @rQ   rQ   rA   ©rA   rA   r5   ç      .@rQ   rQ   rA   ©rA   rA   rA   rA   rS   rQ   rA   ©rA   rA   rA   rA   rQ   rP   rA   ©rA   rA   rA   rA   rA   r1   rM   ©rA   rA   rA   rA   rA   rA   rO   FrD   rF   rG   s     r(   Útest_defective3zTestSignM.test_defective3O   sp   € ÝÐ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�eÐÑÔÐÐÐr*   N)Ú__name__Ú
__module__Ú__qualname__r?   rH   rJ   rX   © r*   r(   r,   r,   0   sP   € € € € € ð(ð (ð (ðð ð ð
ð ð ðð ð ð ð 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        j        d	„ ¦   «         Zej        j        d
„ ¦   «         Zd„ Zd„ Zej                             d¬¦  «        ej                             deeej        eej        g¦  «        d„ ¦   «         ¦   «         Zej        j        ej                             deeej        eej        g¦  «        d„ ¦   «         ¦   «         ZdS )ÚTestLogMc           
      ó    — 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¬¦  «         d S )NrL   rN   rR   rT   rU   rV   rW   é   gÍÌÌÌÌÌ@y                FrD   )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�UÐÑÔÐÐÐr*   c                 óŽ   — t          ¦   «         }t          |d¬¦  «        \  }}t          |¦  «        }t          ||dd¬¦  «         d S )NFrD   g-Cëâ6
?ç›+¡†›„=©ÚrtolÚatol)r)   r   r   r   )r;   r'   ÚA_logmÚinfoÚA_round_trips        r(   Ú*test_al_mohy_higham_2012_experiment_1_logmz3TestLogM.test_al_mohy_higham_2012_experiment_1_logmi   sM   € õ 2Ñ3Ô3ˆÝ˜A EÐ*Ñ*Ô*‰ˆ�Ý˜F‘|”|ˆÝ˜ a¨d¸Ð?Ñ?Ô?Ð?Ð?Ð?r*   c                 óÊ   — t          ¦   «         }t          |t          j        d¬¦  «        \  }}t	          |¦  «        }t          t          j        ||dd¬¦  «         ¦  «         d S )NFrD   çñhãˆµøä>rc   rd   )r)   r   r%   Úlogr   r	   Úallclose)r;   r'   Ú
A_funm_logrh   ri   s        r(   Ú.test_al_mohy_higham_2012_experiment_1_funm_logz7TestLogM.test_al_mohy_higham_2012_experiment_1_funm_logq   sa   € õ 2Ñ3Ô3ˆÝ ¥2¤6°Ð6Ñ6Ô6Ñˆ
�DÝ˜JÑ'Ô'ˆÝ•B”K ¨a°dÀÐGÑGÔGÐGÑHÔHÐHÐHÐHr*   c                 ó  — t           j                             d¦  «         t          dd¦  «        D ]Õ}t           j                             ||¦  «        }t          j        ddd¦  «        D ]œ}||z  }t           j                             |¦  «        }d|› d|› �}t          |d	¬
¦  «        \  }}| 	                    |¦  «        }	t          |	|¦  «         t          |d	¬
¦  «        \  }
}t          |
¦  «        }t          |||¬¦  «         Œ�ŒÖd S )NéÒ  rB   é   éüÿÿÿé   é	   zM:z eivals:FrD   )Úerr_msg)r%   ÚrandomÚseedÚrangeÚrandnÚlogspaceÚlinalgÚeigvalsr   r   r   r   r   )r;   ÚnÚ
M_unscaledÚscaleÚMÚWrw   ÚM_sqrtmrh   ÚM_sqrtm_round_tripÚM_logmÚM_logm_round_trips               r(   Útest_round_trip_random_floatz%TestLogM.test_round_trip_random_floaty   s#  € Ý
Œ	�Š�tÑÔÐÝ�q˜!‘”ð 	Gð 	GˆAÝœŸš¨¨AÑ.Ô.ˆJÝœ R¨¨AÑ.Ô.ð Gð G�Ø Ñ&�õ ”I×%Ò% aÑ(Ô(�Ø-˜qÐ-Ð-¨!Ð-Ð-�õ !& a¨eÐ 4Ñ 4Ô 4‘�˜Ø%,§[¢[°Ñ%9Ô%9Ð"ÝÐ 2°AÑ6Ô6Ð6õ  $ A¨EÐ2Ñ2Ô2‘�˜Ý$(¨¡L¤LÐ!ÝÐ 1°1¸gÐFÑFÔFÐFÐFðGð	Gð 	Gr*   c                 ó”  — t           j                             d¦  «         t          dd¦  «        D ]—}t           j                             ||¦  «        dt           j                             ||¦  «        z  z   }t          j        ddd¦  «        D ]:}||z  }t          |d¬	¦  «        \  }}t          |¦  «        }t          ||¦  «         Œ;Œ˜d S ©
Nrr   rB   rs   ù              ð?rt   ru   rv   FrD   )	r%   rx   ry   rz   r{   r|   r   r   r   )r;   r   r€   r�   r‚   r†   rh   ÚM_round_trips           r(   Útest_round_trip_random_complexz'TestLogM.test_round_trip_random_complexŽ   sÆ   € Ý
Œ	�Š�tÑÔÐÝ�q˜!‘”ð 	1ð 	1ˆAÝœŸš¨¨AÑ.Ô.°µb´i·o²oÀaÈÑ6KÔ6KÑ1KÑKˆJÝœ R¨¨AÑ.Ô.ð 1ð 1�Ø Ñ&�Ý# A¨EÐ2Ñ2Ô2‘�˜Ý# 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          |d¬	¦  «        \  }}t          |j	        j
        |v¦  «         t          j        |t          ¬¦  «        }t          |d¬	¦  «        \  }}t          |j	        j
        |v ¦  «         t          j        |t          ¬¦  «         }t          |d¬	¦  «        \  }}t          |j	        j
        |v ¦  «         �Œ*d S )
N©ÚFÚDÚGrB   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#   FrD   )Úscipyr}   r~   r	   Úanyr%   r   r&   r   r$   ÚcharÚcomplex)r;   Úcomplex_dtype_charsÚmatrix_as_listrƒ   r'   rg   rh   s          r(   Ú*test_logm_type_preservation_and_conversionz3TestLogM.test_logm_type_preservation_and_conversion˜   sy  € ð .Ðà�Q�˜!˜Q˜Ð Ø�Q�˜!˜Q˜Ð Ø�Q�˜!˜Q˜Ð Ø�Q�˜!˜Q˜Ð ð	"ð 	>ñ 	>ˆNõ ”×$Ò$ ^Ñ4Ô4ˆAÝ�Ð<Ð<¸!Ð<Ñ<Ô<Ñ<Ô<Ð<Ñ=Ô=Ð=õ ”˜­uÐ5Ñ5Ô5ˆAÝ ¨Ð.Ñ.Ô.‰LˆF�DÝ�F”LÔ%Ð-@Ð@ÑAÔAÐAõ ”˜­wÐ7Ñ7Ô7ˆAÝ ¨Ð.Ñ.Ô.‰LˆF�DÝ�F”LÔ%Ð)<Ð<Ñ=Ô=Ð=õ ”˜.µÐ6Ñ6Ô6Ð6ˆAÝ ¨Ð.Ñ.Ô.‰LˆF�DÝ�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          |d¬¦  «        \  }}t          t          j        |j        t          j        ¦  «        ¦  «         t          t!          |¦  «        |¦  «         ŒÖd S )N)rB   rB   r“   )r“   rB   rB   )rB   r“   rB   r#   ç{®Gáz„?FrD   )r&   r¢   r%   r   rŸ   r}   r~   r	   Úabsoluter˜   Úsumr   Ú
issubdtyper$   Úinexactr   r   )r;   r‚   ÚdtÚXrœ   ÚYrh   s          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Ý˜1 5Ð)Ñ)Ô)‰GˆAˆtÝ•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 ]n}t           t          fD ]]}t          j        ||¬¦  «        }t	          |d¬¦  «        \  }}t          t          j        |j        t          j        ¦  «        ¦  «         Œ^Œod S )NrB   r   éÿÿÿÿr#   FrD   )	r&   r¢   r%   r   r   r	   rª   r$   Úcomplexfloating)r;   r‚   r¬   r'   rg   rh   s         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¨EÐ2Ñ2Ô2‘�˜Ý�œ 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 ]J}t          j        }t          |t          |d¬¦  «        \  }}t          |¦  «        }t          ||d¬¦  «         ŒKd S )Nr   r‹   rB   FrD   rc   ©rf   )
r%   r   ÚasarrayÚTr   r   r   r   r   r   )r;   r'   ÚBr‚   Úexpected_warningÚLrh   ÚEs           r(   Útest_exactly_singularzTestLogM.test_exactly_singularÍ   s¦   € åŒH�q˜!�f˜r 2˜hÐ'Ñ(Ô(ˆÝŒJ˜˜A˜  A Ð'Ñ(Ô(ˆØ�A”C˜˜AœC�ð 	.ð 	.ˆAÝ0ÔKÐÝ"Ð#3µT¸1À5ÐIÑIÔI‰GˆAˆtÝ�Q‘”ˆAÝ˜A˜q uÐ-Ñ-Ô-Ð-Ð-ð		.ð 	.r*   c                 óÂ   — t          j        dgg¦  «        }t          j        }t	          |t
          |d¬¦  «        \  }}t          |¦  «        }t          ||d¬¦  «         d S )Ng0Žä.ÿ++FrD   rc   rµ   )r%   r   r   ÚLogmNearlySingularWarningr   r   r   r   )r;   r‚   r¹   rº   rh   r»   s         r(   Útest_nearly_singularzTestLogM.test_nearly_singular×   s_   € åŒH�v�h�ZÑ Ô ˆÝ,ÔFÐÝÐ/µ°q¸uÐEÑEÔE‰ˆˆ4Ý�‰GŒGˆÝ˜˜1 5Ð)Ñ)Ô)Ð)Ð)Ð)r*   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   rB   r±   ç      à?rc   rµ   r‹   ru   y       €      ð¿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#   )ÚpytestÚwarnsÚRuntimeWarningr   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)rY   rZ   r[   r?   rj   rp   rˆ   r�   r¥   r¯   r³   rÚ   ÚmarkÚthread_unsafer¼   r¿   rÃ   rÊ   ÚxfailÚparametrizeÚintr&   r%   Úfloat32r¢   Ú	complex64rÖ   rÞ   r\   r*   r(   r^   r^   [   s¤  € € € € € ð	ð 	ð 	ð@ð @ð @ðIð Ið IðGð Gð Gð*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                   ó4  — 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ej                             d¬¦  «        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S )Ú	TestSqrtMc                 óD  — t           j                             d¦  «        }t          dd¦  «        D ]o}|                     ||¦  «        }t          j        ddd¦  «        D ]@}||z  }t          |d¬¦  «        \  }}|                     |¦  «        }t          ||¦  «         ŒAŒpd S )	Nrr   rB   rs   rt   ru   rv   FrD   ©	r%   rx   ÚRandomStaterz   r{   r|   r   r   r   ©	r;   Úrngr   r€   r�   r‚   r„   rh   r…   s	            r(   rˆ   z&TestSqrtM.test_round_trip_random_float  s±   € ÝŒi×#Ò# DÑ)Ô)ˆÝ�q˜!‘”ð 	7ð 	7ˆAØŸš 1 a™œˆJÝœ R¨¨AÑ.Ô.ð 7ð 7�Ø Ñ&�Ý % a¨eÐ 4Ñ 4Ô 4‘�˜Ø%,§[¢[°Ñ%9Ô%9Ð"ÝÐ 2°AÑ6Ô6Ð6Ð6ð	7ð	7ð 	7r*   c                 óx  — t           j                             d¦  «        }t          dd¦  «        D ]‰}|                     ||¦  «        d|                     ||¦  «        z  z   }t          j        ddd¦  «        D ]@}||z  }t          |d¬	¦  «        \  }}|                     |¦  «        }t          ||¦  «         ŒAŒŠd S rŠ   ré   rë   s	            r(   r�   z(TestSqrtM.test_round_trip_random_complex  sÇ   € ÝŒi×#Ò# DÑ)Ô)ˆÝ�q˜!‘”ð 	7ð 	7ˆAØŸš 1 a™œ¨2°·	²	¸!¸Q±´Ñ+?Ñ?ˆJÝœ R¨¨AÑ.Ô.ð 7ð 7�Ø Ñ&�Ý % a¨eÐ 4Ñ 4Ô 4‘�˜Ø%,§[¢[°Ñ%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¦  «        }|j        d         }t          t	          ||¦  «        |¦  «         t          |d|¬¦  «        d         }t          t	          ||¦  «        |¦  «         t          |dd¬¦  «        d         }t          t	          ||¦  «        |¦  «         d S )	Ng       ?)g      ð?r   r   rB   r   rC   )rB   r   r   rÁ   F©rE   Ú	blocksizer“   )r   r   rÒ   r   r   r   )r;   ÚeÚser<   Úsar   Ú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ðñ  ô  ˆð ŒG�AŒJˆÝ!¥# b¨¡*¤*¨QÑ/Ô/Ð/å�A˜E¨QÐ/Ñ/Ô/°Ô2ˆÝ!¥# c¨#¡,¤,¨qÑ1Ô1Ð1å�A˜E¨QÐ/Ñ/Ô/°Ô2ˆÝ!¥# c¨#¡,¤,¨qÑ1Ô1Ð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ddgddggfD �](}t           j                             |¦  «        }t          t	          d„ |D ¦   «         ¦  «         ¦  «         t          j        |t          ¬¦  «        }t          |d¬	¦  «        \  }}t          |j	        j
        |v¦  «         t          j        |t          ¬¦  «        }t          |d¬	¦  «        \  }}t          |j	        j
        |v ¦  «         t          j        |t          ¬¦  «         }t          |d¬	¦  «        \  }}t          |j	        j
        |v ¦  «         �Œ*d S )
Nr�   rB   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>B  rž   r*   r#   FrD   )rŸ   r}   r~   r	   r    r%   r   r&   r   r$   r¡   r¢   ©r;   r£   r¤   rƒ   r'   ÚA_sqrtmrh   s          r(   Ú+test_sqrtm_type_preservation_and_conversionz5TestSqrtM.test_sqrtm_type_preservation_and_conversion4  s‰  € ð .Ðà�Q�˜!˜Q˜Ð Ø�Q�˜!˜Q˜Ð Ø�Q�˜!˜Q˜Ð Ø�Q�˜!˜Q˜Ð Ø�Q�˜!˜Q˜Ð ð"ð 	?ñ 	?ˆNõ ”×$Ò$ ^Ñ4Ô4ˆAÝ�Ð<Ð<¸!Ð<Ñ<Ô<Ñ<Ô<Ð<Ñ=Ô=Ð=õ ”˜­uÐ5Ñ5Ô5ˆAÝ! !¨%Ð0Ñ0Ô0‰MˆG�TÝ�G”MÔ&Ð.AÐAÑBÔBÐBõ ”˜­wÐ7Ñ7Ô7ˆAÝ! !¨%Ð0Ñ0Ô0‰MˆG�TÝ�G”MÔ&Ð*=Ð=Ñ>Ô>Ð>õ ”˜.µÐ6Ñ6Ô6Ð6ˆAÝ! !¨%Ð0Ñ0Ô0‰MˆG�TÝ�G”MÔ&Ð*=Ð=Ñ>Ô>Ð>Ñ>ð1	?ð 	?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 ¦   «         ¦  «        ¦  «         t          j        |t          ¬	¦  «        }t          |d
¬¦  «        \  }}t          |j	        j
        |v ¦  «         t          j        |t          ¬	¦  «        }t          |d
¬¦  «        \  }}t          |j	        j
        |v ¦  «         ŒÜd S )Nr�   rB   r   r±   ©r   rB   r   ©r   r   rB   ©rB   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>\  ó/   è è € Ð8Ð8°˜œÐ, !¤&¨1¢*Ð8Ð8Ð8Ð8Ð8Ð8r*   r#   FrD   )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_spectrumS  s"  € Ø-Ðà�Q�˜!˜R˜Ð!Ø�Q�˜!˜Q˜Ð Ø��˜I˜I˜I y y yÐ1ð3ð 	?ð 	?ˆNõ ”×$Ò$ ^Ñ4Ô4ˆAÝ•CÐ8Ð8°aÐ8Ñ8Ô8Ñ8Ô8Ñ9Ô9Ð9õ ”˜­wÐ7Ñ7Ô7ˆAÝ! !¨%Ð0Ñ0Ô0‰MˆG�TÝ�G”MÔ&Ð*=Ð=Ñ>Ô>Ð>õ ”˜­uÐ5Ñ5Ô5ˆAÝ! !¨%Ð0Ñ0Ô0‰MˆG�TÝ�G”MÔ&Ð*=Ð=Ñ>Ô>Ð>Ð>ð#	?ð 	?r*   c                 óè  — t           j                             d¦  «         t          dd¦  «        D ]Á}t           j                             ||¦  «        dt           j                             ||¦  «        z  z   }t          |d|¬¦  «        \  }}t          |t           j         	                    |d¦  «        ¦  «         t          dd¦  «        D ]'}t          |d|¬¦  «        \  }}t          ||¦  «         Œ(ŒÂd S )	Nrr   rB   é   r‹   Frï   r“   é
   )
r%   rx   ry   rz   Úrandr{   r   r   r}   Úmatrix_power)r;   r   r'   ÚA_sqrtm_defaultrh   rð   ÚA_sqrtm_news          r(   Útest_blocksizeszTestSqrtM.test_blocksizesh  sé   € å
Œ	�Š�tÑÔÐÝ�q˜!‘”ð 	>ð 	>ˆAÝ”	—’˜q !Ñ$Ô$ r­"¬)¯/ª/¸!¸QÑ*?Ô*?Ñ'?Ñ?ˆAÝ$)¨!°%À1Ð$EÑ$EÔ$EÑ!ˆO˜TÝ˜A�rœy×5Ò5°oÀqÑIÔIÑJÔJÐJÝ" 1 b™\œ\ð >ð >�	Ý$)¨!°%À9Ð$MÑ$MÔ$MÑ!�˜TÝ °Ñ=Ô=Ð=Ð=ð>ð		>ð 	>r*   c                 ó   — t          ¦   «         }t          |d¬¦  «        \  }}|                     |¦  «        }t          ||d¬¦  «         t          t	          j        |¦  «        t	          j        |¦  «        ¦  «         d S )NFrD   rl   ©re   )r)   r   r   r   r%   Útril)r;   r'   rù   rh   ri   s        r(   Ú%test_al_mohy_higham_2012_experiment_1z/TestSqrtM.test_al_mohy_higham_2012_experiment_1s  sq   € å1Ñ3Ô3ˆÝ˜a eÐ,Ñ,Ô,‰ˆ�Ø—{’{ 7Ñ+Ô+ˆÝ˜ a¨dÐ3Ñ3Ô3Ð3Ý�œ Ñ-Ô-­r¬w°q©z¬zÑ:Ô:Ð:Ð:Ð:r*   c                 óú   — t           t          fD ]k}t          j        g d¢g d¢g d¢g d¢g|¬¦  «        }t	          |d¬¦  «        \  }}t          t          j        |¦  «                             ¦   «         ¦  «         Œld S )N)r   r”   r   r   )r   r   r”   r   )r   r   r   r”   ©r   r   r   r   r#   FrD   )rã   r&   r%   r   r   r	   ÚisnanÚall)r;   r¬   r'   rù   rh   s        r(   Útest_strict_upper_triangularz&TestSqrtM.test_strict_upper_triangular{  sš   € å•u�*ð 	-ð 	-ˆBÝ”Ø��Ø��Ø��Ø��ð	ð &(ð	)ñ )ô )ˆAõ
 " !¨%Ð0Ñ0Ô0‰MˆG�TÝ•B”H˜WÑ%Ô%×)Ò)Ñ+Ô+Ñ,Ô,Ð,Ð,ð	-ð 	-r*   c                 óx  — t           t          fD ]ª}t          j        g d¢g d¢g d¢g|¬¦  «        }t          j        g d¢g d¢g d¢g|¬¦  «        }t	          ||                     |¦  «        ¦  «         t          |d¬¦  «        \  }}t          t          j        |¦  «         	                    ¦   «         ¦  «         Œ«d S )Nrý   ©r   r   r   rü   r#   FrD   )
rã   r&   r%   r   r   r   r   r	   r  r  )r;   r¬   r'   r¸   ÚB_sqrtmrh   s         r(   Útest_weird_matrixzTestSqrtM.test_weird_matrix†  sæ   € å•u�*ð 	-ð 	-ˆBÝ”Ø�	�	Ø�	�	Ø�	�	ðð #%ð&ñ &ô &ˆAõ ”Ø�	�	Ø�	�	Ø�	�	ðð #%ð&ñ &ô &ˆAõ ˜q !§%¢%¨¡(¤(Ñ+Ô+Ð+õ " !¨%Ð0Ñ0Ô0‰MˆG�TÝ•B”H˜WÑ%Ô%×)Ò)Ñ+Ô+Ñ,Ô,Ð,Ð,ð	-ð 	-r*   c                 óì   — t           j                             d¦  «         t           j                             dd¦  «        }t	          |d¬¦  «        }t          |                     |¦  «        |¦  «         d S )Nrr   r”   TrD   )r%   rx   ry   r  r   r   r   )r;   r'   r¸   s      r(   Ú	test_dispzTestSqrtM.test_disp—  s]   € Ý
Œ	�Š�tÑÔÐåŒI�NŠN˜1˜aÑ Ô ˆÝ�!˜$ÐÑÔˆÝ˜Ÿš˜a™œ !Ñ$Ô$Ð$Ð$Ð$r*   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ù               @ru   r   ù       €       Àù      ð?      ð?r“   ù      ð?      ð¿rc   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          t          j        ||¦  «        |d¬¦  «         t          t          |¦  «        |d¬¦  «         d S )N)rB   r   r   rB   r  rÁ   r   rc   rµ   )r%   r   r   r   r   r   r  s      r(   Útest_gh4866zTestSqrtM.test_gh4866¤  sÊ   € ÝŒ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ˆõ 	�œ˜q !™œ a¨eÐ4Ñ4Ô4Ð4Ý�˜a™œ !¨%Ð0Ñ0Ô0Ð0Ð0Ð0r*   c                 ó  — t          j        g d¢¦  «        }t          j        t          d¦  «        ddg¦  «        }t          t          j        ||¦  «        |d¬¦  «         t          t          |¦  «        |d¬¦  «         d S )N)r“   rB   r   r“   rB   r   rc   rµ   )r%   Údiagr   r   r   r   r  s      r(   Útest_gh5336zTestSqrtM.test_gh5336°  sp   € ÝŒG�I�I�IÑÔˆÝŒG•T˜!‘W”W˜a �OÑ$Ô$ˆÝ�œ˜q !™œ a¨eÐ4Ñ4Ô4Ð4Ý�˜a™œ !¨%Ð0Ñ0Ô0Ð0Ð0Ð0r*   c                 óÞ   — t          j        d¦  «        }t          j        d¦  «        }t          t          j        ||¦  «        |d¬¦  «         t          t	          |¦  «        |d¬¦  «         d S )NrÙ   rc   rµ   )r%   rÝ   r   r   r   r  s      r(   Útest_gh7839zTestSqrtM.test_gh7839¶  s`   € ÝŒH�VÑÔˆÝŒH�VÑÔˆÝ�œ˜q !™œ a¨eÐ4Ñ4Ô4Ð4Ý�˜a™œ !¨%Ð0Ñ0Ô0Ð0Ð0Ð0r*   zfailing on macOS after gh-20212rË   c                 óÈ   — t          j        d¦  «        }|                     d¦  «         t          j        |d¦  «         t          j        t          |¦  «        ¦  «        sJ ‚d S )N)é   r(  g®Gázî?rB   )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        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#   )	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Ì   € ÝŒH�X¥R¤XÐ.Ñ.Ô.ˆÝ�Q‰xŒxŒ~¥¤Ò+Ð+Ð+Ð+ÝŒH�X¥R¤YÐ/Ñ/Ô/ˆÝ�Q‰xŒxŒ~¥¤Ò+Ð+Ð+Ð+ÝŒH�X¥R¤YÐ/Ñ/Ô/ˆÝ�Q‰xŒxŒ~¥¤Ò+Ð+Ð+Ð+ÝŒH�X¥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$   r2  Úint16Úint32Úint64r,  s     r(   Ú,test_data_size_preservation_int_in_float_outz6TestSqrtM.test_data_size_preservation_int_in_float_outÍ  sÌ   € ÝŒH�X¥R¤WÐ-Ñ-Ô-ˆÝ�Q‰xŒxŒ~¥¤Ò+Ð+Ð+Ð+ÝŒH�X¥R¤XÐ.Ñ.Ô.ˆÝ�Q‰xŒxŒ~¥¤Ò+Ð+Ð+Ð+ÝŒH�X¥R¤XÐ.Ñ.Ô.ˆÝ�Q‰xŒxŒ~¥¤Ò+Ð+Ð+Ð+ÝŒH�X¥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“   ru   r   éþÿÿÿr#   )	r%   r   r8  r   r$   Ú
complex128r9  r:  r;  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 )Nr0  r#   Úfloat128)	r%   rÝ   Úfloat16r   r$   rä   r2  ÚhasattrrB  r,  s     r(   Ú.test_data_size_preservation_float_in_float_outz8TestSqrtM.test_data_size_preservation_float_in_float_outá  sè   € ÝŒH�X¥R¤ZÐ0Ñ0Ô0ˆÝ�Q‰xŒxŒ~¥¤Ò+Ð+Ð+Ð+ÝŒH�X¥R¤ZÐ0Ñ0Ô0ˆÝ�Q‰xŒxŒ~¥¤Ò+Ð+Ð+Ð+ÝŒH�X¥R¤ZÐ0Ñ0Ô0ˆÝ�Q‰xŒxŒ~¥¤Ò+Ð+Ð+Ð+Ý•2�zÑ"Ô"ð 	0Ý”˜­¬Ð5Ñ5Ô5ˆ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“   ru   r   r>  r#   rB  Ú
complex256)r%   r   rC  r   r$   rå   rä   r2  r?  rD  rB  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  ru   r   r  r#   rG  )r%   r   rå   r   r$   r?  rD  rG  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*   N)#rY   rZ   r[   rˆ   r�   rõ   rú   r  r	  r  r  r  r  rÃ   r!  r$  r&  rÚ   rß   rá   r-  r6  r<  r@  rE  rH  rJ  râ   rã   r&   r%   rä   r¢   rå   rÖ   r\   r*   r(   rç   rç   
  s¯  € € € € € ð7ð 7ð 7ð7ð 7ð 7ð2ð 2ð 2ð*?ð ?ð ?ð>?ð ?ð ?ð*	>ð 	>ð 	>ð;ð ;ð ;ð	-ð 	-ð 	-ð-ð -ð -ð"%ð %ð %ð1ð 1ð 1ð
1ð 
1ð 
1ð1ð 1ð 1ð1ð 1ð 1ð „[×ÒÐ?ÐÑ@Ô@ð&ð &ñ AÔ@ð&ð,ð ,ð ,ð,ð ,ð ,ð/ð /ð /ð	0ð 	0ð 	0ð	3ð 	3ð 	3ð3ð 3ð 3ð „[×Ò˜T C¨°´
¸GÀRÄ\Ð#RÑSÔSð#ð #ñ TÔSð#ð #ð #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 ]§}t           j                             ||¦  «        dt           j                             ||¦  «        z  z   }t          j        ddd¦  «        D ]J}||z  }t          |d|z  ¦  «        }t           j                             ||¦  «        }t          ||¦  «         ŒKŒ¨Œ»d S )Nrr   rB   rÅ   r‹   rt   ru   rv   ©
r%   rx   ry   rz   r{   r|   r   r}   r  r   ©r;   Úpr   r€   r�   r‚   ÚM_rootrŒ   s           r(   r�   z8TestFractionalMatrixPower.test_round_trip_random_complex  së   € Ý
Œ	�Š�tÑÔÐÝ�q˜!‘”ð 	5ð 	5ˆAÝ˜1˜a‘[”[ð 5ð 5�ÝœYŸ_š_¨Q°Ñ2Ô2°R½"¼)¿/º/È!ÈQÑ:OÔ:OÑ5OÑO�
Ýœ[¨¨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 ]ƒ}t           j                             ||¦  «        }t          j        ddd¦  «        D ]J}||z  }t          |d|z  ¦  «        }t           j                             ||¦  «        }t          ||¦  «         ŒKŒ„Œ—d S )Nrr   rB   rÅ   rt   ru   rv   rQ  rR  s           r(   rˆ   z6TestFractionalMatrixPower.test_round_trip_random_float  sÓ   € õ
 	Œ	�Š�tÑÔÐÝ�q˜!‘”ð 	5ð 	5ˆAÝ˜1˜a‘[”[ð 5ð 5�ÝœYŸ_š_¨Q°Ñ2Ô2�
Ýœ[¨¨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¦  «         dD �]}t          d¦  «        D �]}t           j                             ||¦  «        dt           j                             ||¦  «        z  z   }t          |d¦  «        }t           j                             |d¦  «        }t          ||¦  «         t          |d¦  «        }t           j                             |d¦  «        }t          ||¦  «         t          |d	¦  «        }t           j                             |d
¦  «        }t          ||¦  «         �Œ	�Œd S )Nrr   )r“   r”   rÅ   r  r‹   çš™™™™™É?rÅ   gš™™™™™Àiåÿÿÿgffffff@r(  )	r%   rx   ry   rz   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_powers&  s  € Ý
Œ	�Š�tÑÔÐØð 	&ñ 	&ˆAÝ˜2‘Y”Yð &ñ &�Ý”I—O’O A qÑ)Ô)¨Bµ´·²ÀÀAÑ1FÔ1FÑ,FÑF�Ý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                 óL  — 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          |d¬¦  «        \  }	}
t          |	|z  ¦  «        }t          ||¦  «         Œód S )Nl   ½fmø1 é   rB   rÅ   rt   ©ÚsizeTFr“   r‹   rD   )r%   rx   Údefault_rngrz   ÚintegersÚexpÚchoicer   r   r   r   )r;   rì   ÚnsamplesrX  r   rS  Úmatrix_scaler'   ÚA_powerrg   rh   ÚA_power_expm_logms               r(   Útest_random_matrices_and_powersz9TestFractionalMatrixPower.test_random_matrices_and_powers8  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Ý ¨Ð.Ñ.Ô.‰LˆF�DÝ $ V¨a¡ZÑ 0Ô 0ÐÝ˜GÐ%6Ñ7Ô7Ð7Ð7ð%	8ð 	8r*   c                 ó  — t          ¦   «         }t          |t          j        d¬¦  «        \  }}t	          |d¬¦  «        \  }}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 )	NFrD   rÁ   g•dyáý¥=r  )rÁ   g«ªªªªªú?rB   r§   )
r)   r   r%   r   r   r   Ú_remainder_matrix_powerr   r   r  )	r;   r'   ÚA_funm_sqrtrh   rù   ÚA_rem_powerre  rS  ri   s	            r(   r  z?TestFractionalMatrixPower.test_al_mohy_higham_2012_experiment_1Q  s  € å1Ñ3Ô3ˆõ ! ¥B¤G°%Ð8Ñ8Ô8Ñˆ�TÝ˜a eÐ,Ñ,Ô,‰ˆ�Ý'Ô?ÀÀ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                 ór  — t           j                             d¦  «         t           j                             d¦  «        dt           j                             d¦  «        z  z   D ]T}t	          d¦  «        D ]B}t          j        ||¦  «        }|t          j        | ¦  «        z  dz
  }t          ||¦  «         ŒCŒUd S )Nrr   r  r‹   rÅ   rB   )	r%   rx   ry   r{   rz   r   Ú_briggs_helper_functionÚexp2r   )r;   r<   ÚkÚ
x_observedÚ
x_expecteds        r(   Útest_briggs_helper_functionz5TestFractionalMatrixPower.test_briggs_helper_functione  s­   € Ý
Œ	�Š�tÑÔÐÝ”—’ Ñ$Ô$ r­B¬I¯OªO¸BÑ,?Ô,?Ñ'?Ñ?ð 	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�   rB   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ÀçÍÌÌÌÌÌì¿rW  gffffff
@r#   )rŸ   r}   r~   r	   r    r%   r   r&   r   r$   r¡   r¢   ©r;   r£   r¤   rƒ   rS  r'   re  s          r(   Ú%test_type_preservation_and_conversionz?TestFractionalMatrixPower.test_type_preservation_and_conversionm  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�   rB   r   r±   rü   rý   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*   ru  r#   )rŸ   r}   r~   r	   r    r%   r   r¢   r   r$   r¡   r&   rx  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   rB   r“   r”   rs   r  )r   rB   rB   )r   r±   rB   r#   )gffffffæ¿rw  rv  gÍÌÌÌÌÌô¿)rW  gáz®Gáö?)	r&   r¢   r%   r   r   r	   r  r  r   )r;   r¤   Únewtyper'   rS  re  ri   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  ru   r   r  r  r“   r  rc   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)rY   rZ   r[   r�   rˆ   rZ  rg  r  rr  ry  r|  rÚ   rß   rá   r  rÃ   r\   r*   r(   rO  rO    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*   rO  c            
       ó’  — 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        j        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 )NrA   r   rB   )r   r   r   rG   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 )NrB   )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Ï   )rB   rB   c                 óÈ   — t          j        ||¬¦  «        }t          j        d|¬¦  «        } ||¦  «        } ||¦  «        }|j        |k    sJ ‚|j        |j        k    sJ ‚d S )Nr#   r0  )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 )NrB   ru   r“   r�   Úf)
r%   rñ   r   r   r   Úastyperå   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 )NrB   ru   r”   r±   rÅ   éýÿÿÿrt   r�   )Úorderr“   r`   r  rs   éûÿÿÿ)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œ  rv   rÅ   )r%   rÝ   r&   rx   r_  r`  rÐ   Úcopyr   r   Útestingr   r   rz   )
r;   r'   rì   rX  ÚjÚAmra   rL  Ú	first_resÚnext_ress
             r(   Útest_gh18086zTestExpM.test_gh18086   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)rY   rZ   r[   r„  r‡  rÚ   rß   râ   r   r   r   r   r   r   r   rã   r&   r%   rä   r¢   rå   r�  r“  r™  rÊ   rà   Ú	fail_slowr¤  r\   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©rB   r“   r”   ru   ©rÅ   rs   r`   r  ©r   r   rB   r“   ©r   r   rÅ   rs   r#   rB   r“   rÅ   rs   r”   ru   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_frechet  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#   rB   r“   rÅ   rs   r”   ru   r`   r  )rB   r”   rÅ   r`   rv   é   é   é   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           	      ó¶  — t           j                             d¦  «        }t           j        j        t           j        j        t           j        j        t           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�  ru   r“   é   r]  rB   gH¯¼šò×j>rµ   gH¯¼šò×z>)r%   rx   r_  ÚuniformÚnormalÚstandard_cauchyÚexponentialrz   rb  r`  rŸ   r}   r   ÚvstackÚhstackÚ
zeros_liker   r   r   )r;   rì   ÚrfuncsÚntestsrX  ÚrfuncrÇ  r   r¾  r¿  rÀ  r�   r'   r»   r‚   r°  r±  r³  r´  s                      r(   Ú	test_fuzzzTestExpmFrechet.test_fuzzP  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µ•Œå?rB   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_matrixl  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                             ||f¬¦  «        }t           j                             ||f¬¦  «        }t          ||d¬¦  «        \  }}t          ||d¬¦  «        \  }}t	          ||¦  «         t	          ||¦  «         d S )Niè  r]  r®  r×  r¯  )r%   rx   rÎ  r   r   )r;   r   r'   r»   rØ  rÙ  rÚ  rÛ  s           r(   Útest_medium_matrixz"TestExpmFrechet.test_medium_matrix~  s«   € ð ˆÝŒI×!Ò!¨¨1 vÐ!Ñ.Ô.ˆÝŒI×!Ò!¨¨1 vÐ!Ñ.Ô.ˆÝ ,Ø�1˜Uð!$ñ !$ô !$Ñˆ�+å2>Ø�1˜^ð3-ñ 3-ô 3-Ñ/ÐÐ/å˜Ð"3Ñ4Ô4Ð4Ý˜Ð%9Ñ:Ô:Ð:Ð:Ð:r*   N)rY   rZ   r[   rµ  rÈ  rÕ  rÜ  rÚ   rß   ÚslowÚskiprÞ  r\   r*   r(   r§  r§    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ÚepsrS  Ú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 ]A}t           j                             ||¦  «        }t          |¦  «        }t          d|¦  «         ŒBd S )Nrr   rB   ru   r   )r%   rx   ry   rz   r{   r   r
   )r;   r   r'   Úkappas       r(   Útest_expm_cond_smokez,TestExpmConditionNumber.test_expm_cond_smoke¡  sj   € Ý
Œ	�Š�tÑÔÐÝ�q˜!‘”ð 	(ð 	(ˆAÝ”	—’  1Ñ%Ô%ˆ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                 óz  — 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 ]W}t           j         
                    d	d	¦  «        }t          t          |¦  «        t          j        |¦  «        d
         ¦  «         ŒXd S )Né90  r—  rÅ   r·  )Únumr>  r“   r  rB   rÏ   )r%   rx   ry   Úlinspacer   r   r   Úabsr|   rz   r{   r¨   )r;   Úxr'   rX  s       r(   Útest_univariatez'TestExpmConditionNumber.test_univariate²  s  € Ý
Œ	�Š�uÑÔÐÝ”˜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Ý”	—’  1Ñ%Ô%ˆ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 )	Nrø  rl   r  r“   rÅ   zL-BFGS-Br×  rB   )r%   rx   rê   rz   Úrandintr{   rŸ   r}   r   r   r   Ú	functoolsÚpartialrë  rÆ   r    rü  rí  rã  rÒ   rï  r   r
   )r;   rì   ræ  rc  rX  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)
rY   rZ   r[   rô  rö  rý  rÚ   rß   rß  r
  r\   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 )NrB   r“   r”   ru   rÅ   rs   r`   r  é   rÊ  r¹  é   é   é    )ru   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©rB   r“   r”   ©ru   rÅ   rs   rB   r“   r”   ru   ©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  rv   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 )
NrB   r“   r”   ru   rÅ   rs   r`   r  c                 ób   •— g | ]+}t          j        ‰d d …|f         ‰d d …|f         ¦  «        ‘Œ,S râ  )r%   Úkron)r›   ro  r<   r  s     €€r(   ú
<listcomp>z@TestKhatriRao.test_equality_of_two_equations.<locals>.<listcomp>  sM   ø€ ð 6ð 6ð 6Øõ œ' ! A A A q D¤'¨1¨Q¨Q¨Q°¨T¬7Ñ3Ô3ð 6ð 6ð 6r*   )r   r   r%   rÏ  rz   rÒ   r·   r   )r;   Úres1Úres2r<   r  s      @@r(   Útest_equality_of_two_equationsz,TestKhatriRao.test_equality_of_two_equations  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_empty  s–   € ÝŒH�VÑÔˆÝŒH�VÑÔˆÝ˜˜AÑÔˆÝ˜�RœX fÑ-Ô-Ñ.Ô.Ð.åŒH�VÑÔˆÝŒH�VÑÔˆÝ˜˜AÑÔˆÝ˜�RœX gÑ.Ô.Ñ/Ô/Ð/Ð/Ð/r*   N)rY   rZ   r[   r  r  r  r$  rÖ   r\   r*   r(   r  r  å  s_   € € € € € ð
,ð 
,ð 
,ðð ð ðð ð ð2'ð 'ð 'ð	0ð 	0ð 	0ð 	0ð 	0r*   r  )6Ú__doc__r   Únumpyr%   r   r   r   r   Únumpy.testingr   r   r	   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_frechetÚscipy.optimizer    r)   r,   r^   rç   rO  r‚  r§  rë  rí  rï  rñ  r  r\   r*   r(   ú<module>r/     sÏ  ððð ð Ð Ð Ð à Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,ðPð Pð Pð Pð Pð Pð Pð Pð Pð Pð Pð Pð Pð Pð Pð Pà €€€à Ð Ð Ð ð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l0ð l0ð l0ð l0ð l0ñ l0ô l0ð l0ð^~#ð ~#ð ~#ð ~#ð ~#ñ ~#ô ~#ð ~#ðBvHð vHð vHð vHð vHñ vHô vHð vHðrOFð OFð OFð OFð OFñ OFô OFð OFðdt;ð t;ð t;ð t;ð t;ñ t;ô t;ð t;ðn"ð "ð "ð=ð =ð =ð'ð 'ð 'ð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ð B0ð B0r*   