+
    /i                        R t ^ RIt^ RIt^ RIt^ RIt^ RIHtHtHt ^ RI	H
t
HtHtHtHt ^ RIt^ RIHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtH t  ^ RIH!t! ^ RI"H#t# ^ RI$H%t% ^ RI&t^ RIH't' ^ R	I(H)t) R
 t* ! R R4      t+ ! R R4      t, ! R R4      t- ! R R4      t. ! R R4      t/ ! R R4      t0R t1R t2R t3 ! R R4      t4 ! R R4      t5]Pl                  Po                  R]]].4      R 4       t8R  t9R# )!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                 V    \         P                  ! . RO. RO. RO. RO.\        R7      p V # )a3  
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

dtype)g3d?     L@r"   r"   )    gRal!A?r"   r"   )r#   r#   gQI?r"   )r#   r#   r#   g^?)npr   float)As    ^/var/www/html/photoedit/myenv/lib/python3.14/site-packages/scipy/linalg/tests/test_matfuncs.py%_get_al_mohy_higham_2012_experiment_1r(      s/     	" 	 &+		,A
 H    c                   8   a  ] tR t^2t o R tR tR tR tRtV t	R# )	TestSignMc                    \        . RO. RO. RO. RO. RO.4      p\        . RO. RO. R	O. R
O. RO.4      p\        V4      p\        W24       R# )333333=@Nr-   g3333338g     `Q@gfffffH@g      @gffffff"g@      2g0       g      $g      @g      4r0   r1   g333333#g333333#@g     9g.r1   g#@g333333g      2@g3333332@       @)g'@'Rqgy.@ge@5@r6   )g@ȽUЛ'?g9\g+%r7   )gRQQ?gGzgffffffr8   )gר#w?î?gk#egC,Nr9   )g@42
gF(@gcs@@r:   )r   r   r   )selfacrrs   &   r'   	test_nilsTestSignM.test_nils4   sU    00.1-	/ 0
 QO0ON	P Q
 !H!!'r)   c                J    \        . RO. RO. RO. RO.4      p\        V4       R# )        N)rB      r#   r#   )rC   r#   rC   r#   r#   r#   r#   rC   )r#   r#   rC   r#   r   r   r;   r<   s   & r'   test_defective1TestSignM.test_defective1B   s    ;y9=>ar)   c                P    \        . RO. RO. RO. RO. RO34      p\        V4       R# )r-   Nr.   r/   r2   r3   r4   rE   rF   s   & r'   test_defective2TestSignM.test_defective2G   s)    &'('$& ' 	ar)   c           
     \    \        . RO. RO. RO. RO. RO. RO. RO.4      p\        V4       R# )	r5   Nr1         9@rB   rB   rB   rB   rB   rB               $@      @rR   rR   rB   rB   rB   r5         .@rR   rR   rB   rB   rB   rB   rB   rT   rR   rB   rB   rB   rB   rB   rR   rQ   rB   rB   rB   rB   rB   rB   r1   rN   rB   rB   rB   rB   rB   rB   rP   rE   rF   s   & r'   test_defective3TestSignM.test_defective3Q   s/    11000102 3 	ar)    N)
__name__
__module____qualname____firstlineno__r?   rG   rJ   rY   __static_attributes____classdictcell____classdict__s   @r'   r+   r+   2   s     (
 r)   r+   c            	       
  a  ] tR t^]t o ]P
                  P                  R4      R 4       t]P
                  P                  R4      R 4       tR t	R t
R tR tR tR	 tR
 tR tR tR t]P
                  P'                  RR7      ]P
                  P)                  R]]]P0                  ]]P4                  .4      R 4       4       t]P
                  P)                  R]]]P0                  ]]P4                  .4      R 4       tRtV tR# )TestLogMz$ignore:.*inaccurate.*:RuntimeWarningc           
         \        . RO. RO. RO. RO. RO. R	O. R
O.4      p\        ^4      R,          R,           V,
          p\        V4       R# )r5   g@y                NrM   rO   rS   rU   rV   rW   rX   )r   r   r   )r;   r<   ms   &  r'   r?   TestLogM.test_nils^   sF    11000102 3 a[_R"Qr)   c                b    \        4       p\        V4      p\        V4      p\        W1R RR7       R# )g-C6
?+=rtolatolN)r(   r   r   r   )r;   r&   A_logmA_round_trips   &   r'   *test_al_mohy_higham_2012_experiment_1_logm3TestLogM.test_al_mohy_higham_2012_experiment_1_logmk   s*     23aF|d?r)   c           	         \        4       p\        V\        P                  4      p\	        V4      p\        \        P                  ! W1R RR7      '       * 4       R# )h㈵>rj   rk   N)r(   r
   r$   logr   r   allclose)r;   r&   
A_funm_logro   s   &   r'   .test_al_mohy_higham_2012_experiment_1_funm_log7TestLogM.test_al_mohy_higham_2012_experiment_1_funm_logt   s=     23!RVV_
J'BKKdGGHr)   c           
     X   \         P                  P                  R 4      p\        ^^4       F  pVP	                  W"3R7      p\         P
                  ! R^^	4       F  pW4,          p\         P                  P                  V4      pRV RV 2p\        V4      pW,          p	\        W4       \        P                  ! 4       ;_uu_ 4        \        P                  ! R\        4       \        V4      p
\        V
4      p\        WVR7       RRR4       K  	  K  	  R#   + '       g   i     K  ; i)   >gO*31 sizezM:z eivals:ignore)err_msgN)r$   randomdefault_rngrangeuniformlogspacelinalgeigvalsr   r   warningscatch_warningssimplefilterRuntimeWarningr   r   )r;   rngn
M_unscaledscaleMWr~   M_sqrtmM_sqrtm_round_tripM_logmM_logm_round_trips   &           r'   test_round_trip_random_float%TestLogM.test_round_trip_random_float|   s    ii##$45q!A1&1JRA.& II%%a(qc!-  (%,%6" 26 ,,..))(NC!!WF(,V%#$5'J /. /  /..s   ?D	D)c                Z   \         P                  P                  R 4      p\        ^^4       F{  pVP	                  W"34      RVP	                  W"34      ,          ,           p\         P
                  ! R^^	4       F,  pW4,          p\        V4      p\        V4      p\        Wu4       K.  	  K}  	  R# )rz                 ?Nr   )	r$   r   r   r   standard_normalr   r   r   r   )r;   r   r   r   r   r   r   M_round_trips   &       r'   test_round_trip_random_complex'TestLogM.test_round_trip_random_complex   s    ii##$45q!A--qf5S00!889JRA.&a#F|0	 / r)   c                   Rp^^ .^ ^..^^ .^^..^^.^^..^^.^^..3 EFA  p\         P                  P                  V4      p\        \        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       * 4       \
        P                  ! V\        R7      p\        V4      p\        VP                  P                  V9  4       \
        P                  ! V\        R7      p\        V4      p\        VP                  P                  V9   4       \
        P                  ! V\        R7      ) p\        V4      p\        VP                  P                  V9   4       EKD  	  R# )Fc              3   f   "   T F'  qP                   ;'       g    VP                  ^ 8  x  K)  	  R# 5ir#   Nimagreal.0ws   & r'   	<genexpr>FTestLogM.test_logm_type_preservation_and_conversion.<locals>.<genexpr>   %     <!QFF00affqj0!   11TFr    Nr   DG)scipyr   r   r   anyr$   r   r%   r   r!   charcomplex)r;   complex_dtype_charsmatrix_as_listr   r&   rn   s   &     r'   *test_logm_type_preservation_and_conversion3TestLogM.test_logm_type_preservation_and_conversion   s.    .Q!Q Q!Q Q!Q Q!Q 	"N $$^4A<!<<!<<<= u5A!WFFLL%%-@@A w7A!WFFLL%%)<<= .66A!WFFLL%%)<<=/"r)   c                   . RO. RO. RO.p\         \        3 F  p\        P                  ! WR7      p\        P
                  P                  V4      p\        R\        P                  ! VP                  4      P                  4       8  4       \        V4      p\        \        P                  ! VP                  \        P                  4      4       \        \!        V4      V4       K  	  R# )rC   r    {Gz?N)rC   rC      )r   rC   rC   )rC   r   rC   )r%   r   r$   r   r   r   r   r   absoluter   sumr   
issubdtyper!   inexactr   r   )r;   r   dtXr   Ys   &     r'   test_complex_spectrum_real_logm(TestLogM.test_complex_spectrum_real_logm   s     	9-.B%A$$Q'AD2;;qvv.22445QABMM!''2::67DGQ' !r)   c                   ^^ .^ R..^ ^.^^ ..3 Fr  p\         \        3 F_  p\        P                  ! WR7      p\	        V4      w  rE\        \        P                  ! VP                  \        P                  4      4       Ka  	  Kt  	  R# )rC   r    N)	r%   r   r$   r   r   r   r   r!   complexfloating)r;   r   r   r&   rn   infos   &     r'   test_real_mixed_sign_spectrum&TestLogM.test_real_mixed_sign_spectrum   sv     Q!R!Q!Q "A WnHHQ)#AwfllB4F4FGH %"r)   c                   \         P                  ! ^ ^ .RR..4      p\         P                  ! ^^.^ ^ ..4      pWP                  W"P                  3 F[  p\        P
                  ! \        P                  4      ;_uu_ 4        \        V4      pRRR4       \        X4      p\        WSRR7       K]  	  R#   + '       g   i     L.; i)r#   r   Nrj   rm   )r$   r   asarrayTpytestwarnsr   r   r   r   r   )r;   r&   Br   LEs   &     r'   test_exactly_singularTestLogM.test_exactly_singular   s    HHq!fr2h'(JJAA'(CCCCA/JJKKG LQAAu-	  KKs    B22Cc                   \         P                  ! R ..4      p\        P                  ! \        P
                  4      ;_uu_ 4        \        V4      pRRR4       \        X4      p\        W1RR7       R#   + '       g   i     L*; i)g0.++Nrj   r   )	r$   r   r   r   r   LogmNearlySingularWarningr   r   r   )r;   r   r   r   s   &   r'   test_nearly_singularTestLogM.test_nearly_singular   sV    HHvhZ \\+EEFFQA GG5) GFs   A33B	c                   ^ ^.R^ ..p^ \         P                  R,          .\         P                  ) R,          ^ ..p\        \        V4      VRR7       \        \	        V4      VRR7       R^.^ R..pR\         P                  ,          R,          ^\         P                  ,          .^ R\         P                  ,          R,          ..p\        \        V4      VRR7       \        \	        V4      VRR7       R^ .^ R..pR\         P                  ,          R,          ^ .^ R\         P                  ,          R,          ..p\        \        V4      VRR7       \        \	        V4      VRR7       R# )r#         ?rj   r   r   Nr                )r$   pir   r   r   )r;   r   r   s   &  r'   &test_opposite_sign_complex_eigenvalues/TestLogM.test_opposite_sign_complex_eigenvalues   s   Vb!Ws^ruufSj!_-Q/Q/!Wq#hhslAbeeG$q#bee)C-&89Q/Q/!Wq#hhslACIcM 23Q/Q/r)   c                    ^p\         P                  ! W34      \         P                  ! V4      ,           pRVP                  n        \        V4       R# )   FN)r$   onesr   flags	writeabler   r;   r   r<   s   &  r'   test_readonlyTestLogM.test_readonly   s6    GGQFObkk!n,!Qr)   z6ValueError: attempt to get argmax of an empty sequencereasonr   c                    \         P                  ! RVR7      p\        V4      p\         P                  ! ^VR7      p\        V4      pVP                  R8X  g   Q hVP
                  VP
                  8X  g   Q hR# r#   r    Nr#   r#   )r$   emptyr   eyeshaper!   )r;   r   r<   log_aa0log_a0s   &&    r'   
test_emptyTestLogM.test_empty   s^     HHV2&QVVAR b{{f$$${{fll***r)   r!   c                F   \         P                  ! \        R R7      ;_uu_ 4        \         P                  ! \        4      ;_uu_ 4        \	        \
        P                  ! RVR7      4       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)zlogm result may be inaccurate)matchr    Nr   r   )r   r   r   r   r   r$   zeros)r;   r!   s   &&r'   test_no_ZeroDivisionError"TestLogM.test_no_ZeroDivisionError  s[    
 ll>1PQQll566&./ 7 RQ66 RQQs#   #B"A<	*B<BBB 	r[   N)r\   r]   r^   r_   r   markfilterwarningsr?   rp   rw   r   r   r   r   r   r   r   r   r   xfailparametrizeintr%   r$   float32r   	complex64r   r   r`   ra   rb   s   @r'   re   re   ]   s    [[ FG	 H	 [[ FG@ H@IK0	1><
(	I.*0 [[VW[[TC

GR\\#RS+ T X+ [[WsE2::w&UV0 W0r)   re   c                     a  ] tR tRt o R tR tR tR tR tR t	R t
 R	 tR
 tR tR tR tR tR tR tR tR tR tR t]P0                  P3                  R]]]P:                  ]]P>                  .4      R 4       t R t!R t"R t#Rt$V t%R# )	TestSqrtMi  c                *   \         P                  P                  R 4      p\        ^^4       Fc  pVP	                  W"34      p\         P
                  ! R^^	4       F2  pW4,          p\        V4      pVP                  V4      p\        Wu4       K4  	  Ke  	  R# )l   &\31 Nr   	r$   r   r   r   r   r   r   dotr   r;   r   r   r   r   r   r   r   s   &       r'   r   &TestSqrtM.test_round_trip_random_float  sy    ii##$45q!A,,aV4JRA.&(%,[[%9" 26	 / r)   c                f   \         P                  P                  R 4      p\        ^^4       F  pVP	                  W"34      RVP	                  W"34      ,          ,           p\         P
                  ! R^^	4       F2  pW4,          p\        V4      pVP                  V4      p\        Wu4       K4  	  K  	  R# )l   &\31 r   Nr   r  r  s   &       r'   r   (TestSqrtM.test_round_trip_random_complex  s    ii##$45q!A--qf5s22A6::;JRA.&(%,[[%9" 26	 / r)   c                    Rp\        V4      p\        . RO^ V^ ^ .^ ^ V^ .. RO.4      p\        . RO^ V^ ^ .^ ^ V^ .. RO.4      p\        WD,          V4       \        V4      p\        WU,          V4       R# )r   Ng      ?)      ?r#   r#   rC   rD   )rC   r#   r#   r   )r   r   r   r   )r;   eser<   saesas   &     r'   test_badTestSqrtM.test_bad%  s    !W;a!9a!9  Kr!AJqAJ   	""'1-Ah!#)Q/r)   c                   Rp^^ .^ ^..^^ .^^..^^.^^..^^.^^..^^.^^..3 EF  p\         P                  P                  V4      p\        \        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       * 4       \
        P                  ! 4       ;_uu_ 4        \
        P                  ! R\        4       \        P                  ! V\        R7      p\        V4      p\        VP                  P                  V9  4       \        P                  ! V\        R7      p\        V4      p\        VP                  P                  V9   4       \        P                  ! V\        R7      ) p\        V4      p\        VP                  P                  V9   4       RRR4       EK  	  R#   + '       g   i     EK  ; i)r   c              3   f   "   T F'  qP                   ;'       g    VP                  ^ 8  x  K)  	  R# 5ir   r   r   s   & r'   r   HTestSqrtM.test_sqrtm_type_preservation_and_conversion.<locals>.<genexpr>D  r   r   TFr}   r    Nr   )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_conversion5TestSqrtM.test_sqrtm_type_preservation_and_conversion6  ss    .Q!Q Q!Q Q!Q Q!Q Q!Q "N $$^4A<!<<!<<<= ((**%%h> HH^59(**2EEF HH^7;(**.AAB XXnE::(**.AAB! +*" +**s   *C8F11Gc                (   Rp^^ .^ R..^ ^.^^ ... RO. R	O. R
O.3 F  p\         P                  P                  V4      p\        \        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      4       \
        P                  ! V\        R7      p\        V4      p\        VP                  P                  V9   4       \
        P                  ! V\        R7      p\        V4      p\        VP                  P                  V9   4       K  	  R# )r   c              3   f   "   T F'  qP                   ;'       g    VP                  ^ 8  x  K)  	  R# 5ir   r   r   s   & r'   r   VTestSqrtM.test_sqrtm_type_conversion_mixed_sign_or_complex_spectrum.<locals>.<genexpr>b  %     8a,,!&&1*,ar   TFr    Nr   r   r#   rC   r#   )r#   r#   r   rC   r#   r#   )r   r   r   r   r   r$   r   r   r   r!   r   r%   r  s   &     r'   9test_sqrtm_type_conversion_mixed_sign_or_complex_spectrumCTestSqrtM.test_sqrtm_type_conversion_mixed_sign_or_complex_spectrumY  s    -Q!R!Q!Q J	24N $$^4ACC8a8CCC8a889 w7AAhGGMM&&*==> u5AAhGGMM&&*==>#4r)   c                    \        4       p\        V4      pW",          p\        W1R R7       \        \        P                  ! V4      \        P                  ! V4      4       R# )rs   rl   N)r(   r   r   r$   tril)r;   r&   r  ro   s   &   r'   %test_al_mohy_higham_2012_experiment_1/TestSqrtM.test_al_mohy_higham_2012_experiment_1n  s@    13((d3-rwwqz:r)   c           	     T   \         \        3 EF  p\        P                  ! . RO. RO. RO. RO.VR7      p\        P
                  ! 4       ;_uu_ 4        \        P                  ! R\        4       \        V4      p\        \        P                  ! V4      \        P                  ! R4      4       \        P                  ! V4      P                  4       '       g   Q h\        P                  ! V4      P                  4       '       g   Q h RRR4       EK  	  R#   + '       g   i     EK  ; i)	r#   r    r}   N)r#      r#   r#   )r#   r#   r%  r#   )r#   r#   r#   r%  r#   r#   r#   r#   )   r'  )r   r%   r$   r   r   r   r   r   r   r   r!  r   isnanr   isinf)r;   r   r&   r  s   &   r'   test_strict_upper_triangular&TestSqrtM.test_strict_upper_triangularv  s     u*B	 &(	)A
 ((**%%h>( 0"((62BCxx(,,....xx(,,.... +*  +**s   B0DDD'c                    R ^.^ R..pR^.^ R..p\        \        P                  ! W"4      VRR7       \        \        V4      VRR7       R# )               @rj   r   N                    ?      ?      ?      )r   r$   r  r   r;   r   Rs   &  r'   r   0TestSqrtM.test_opposite_sign_complex_eigenvalues  sJ    !Wq#hAYD	"qae4a!%0r)   c                   \         P                  ! . RO. RO. RO. RO.4      p\         P                  ! \        R4      ^ ^ \        R4      .. RO. RO\        R4      ^ ^ \        R4      ..4      p\        W",          VRR7       \        P
                  ! 4       ;_uu_ 4        \        P                  ! R\        4       \        \        V4      VRR7       RRR4       R#   + '       g   i     R# ; i)rC   r   rj   r   r}   N)rC   r#   r#   rC   r&  )	r$   r   r   r   r   r   r   r   r   r1  s   &  r'   test_gh4866TestSqrtM.test_gh4866  s    HHl"""$ % HHtCy!QS	2""Cy!QS	24 5 	qu-$$&&!!(M:E!Hae4 '&&&s   3CC,	c                |   \         P                  ! . RO4      p\         P                  ! \        ^4      ^^ .4      p\        W",          VRR7       \        P
                  ! 4       ;_uu_ 4        \        P                  ! R\        R7       \        \        V4      VRR7       RRR4       R#   + '       g   i     R# ; i)r   rj   r   r}   categoryN)r   rC   r#   )	r$   diagr   r   r   r   r   r   r   r1  s   &  r'   test_gh5336TestSqrtM.test_gh5336  st    GGIGGT!WaO$qu-$$&&##H}EE!Hae4 '&&&s   ,4B**B;	c                8   \         P                  ! R4      p\         P                  ! R4      p\        P                  ! 4       ;_uu_ 4        \        P                  ! R\
        R7       \        \        V4      VRR7       RRR4       R#   + '       g   i     R# ; i)r   r}   r8  rj   r   Nr   )r$   r   r   r   r   r   r   r   r1  s   &  r'   test_gh7839TestSqrtM.test_gh7839  s\    HHVHHV$$&&##H}EE!Hae4 '&&&s   
4BB	c                    \         P                  ! R4      pVP                  R4       \         P                  ! V^4       \         P                  ! \        V4      4      '       g   Q hR# )   gGz?N)rA  rA  )r$   r   fillfill_diagonal	isrealobjr   r;   r   s   & r'   test_gh17918TestSqrtM.test_gh17918  sD    HHX	t
A||E!H%%%%r)   c                    \         P                  ! . RO. RO. RO.4      p\        V4      p\        W",          VRR7       \        VP	                  \         P
                  4      4      p\        W",          VRR7       R# )r	  rj   r   gư>N)r	  rB   rB   )r#   rC   r   )r#   r   r   )r$   r   r   r   astyper   )r;   r   sqs   &  r'   test_gh23278TestSqrtM.test_gh23278  sS    HHlK<=1X/188BLL)*.r)   c                   \         P                  ! ^
\         P                  R7      p\        V4      P                  \         P
                  8X  g   Q h\         P                  ! ^
\         P                  R7      p\        V4      P                  \         P
                  8X  g   Q h\         P                  ! ^
\         P                  R7      p\        V4      P                  \         P
                  8X  g   Q h\         P                  ! ^
\         P                  R7      p\        V4      P                  \         P
                  8X  g   Q hR# 
   r    N)	r$   r   uint8r   r!   float64uint16uint32uint64rE  s   & r'   -test_data_size_preservation_uint_in_float_out7TestSqrtM.test_data_size_preservation_uint_in_float_out  s    FF2RXX&Qx~~+++FF2RYY'Qx~~+++FF2RYY'Qx~~+++FF2RYY'Qx~~+++r)   c                   \         P                  ! ^
\         P                  R7      p\        V4      P                  \         P
                  8X  g   Q h\         P                  ! ^
\         P                  R7      p\        V4      P                  \         P
                  8X  g   Q h\         P                  ! ^
\         P                  R7      p\        V4      P                  \         P
                  8X  g   Q h\         P                  ! ^
\         P                  R7      p\        V4      P                  \         P
                  8X  g   Q hR# rN  )	r$   r   int8r   r!   rQ  int16int32int64rE  s   & r'   ,test_data_size_preservation_int_in_float_out6TestSqrtM.test_data_size_preservation_int_in_float_out  s    FF2RWW%Qx~~+++FF2RXX&Qx~~+++FF2RXX&Qx~~+++FF2RXX&Qx~~+++r)   c                   \         P                  ! ^^.^ R..\         P                  R7      p\        V4      P                  \         P
                  8X  g   Q h\         P                  ! ^^.^ R..\         P                  R7      p\        V4      P                  \         P
                  8X  g   Q h\         P                  ! ^^.^ R..\         P                  R7      p\        V4      P                  \         P
                  8X  g   Q h\         P                  ! ^^.^ R..\         P                  R7      p\        V4      P                  \         P
                  8X  g   Q hR# )r   r    N)	r$   r   rX  r   r!   
complex128rY  rZ  r[  rE  s   & r'   +test_data_size_preservation_int_in_comp_out5TestSqrtM.test_data_size_preservation_int_in_comp_out  s    HHq!fq"g&bgg6Qx~~...HHq!fq"g&bhh7Qx~~...HHq!fq"g&bhh7Qx~~...HHq!fq"g&bhh7Qx~~...r)   c                   \         P                  ! ^
\         P                  R7      p\        V4      P                  \         P
                  8X  g   Q h\         P                  ! ^
\         P
                  R7      p\        V4      P                  \         P
                  8X  g   Q h\         P                  ! ^
\         P                  R7      p\        V4      P                  \         P                  8X  g   Q h\        \         R4      '       dS   \         P                  ! ^
\         P                  R7      p\        V4      P                  \         P                  8X  g   Q hR# R# )rO  r    float128N)	r$   r   float16r   r!   r   rQ  hasattrrd  rE  s   & r'   .test_data_size_preservation_float_in_float_out8TestSqrtM.test_data_size_preservation_float_in_float_out  s    FF2RZZ(Qx~~+++FF2RZZ(Qx~~+++FF2RZZ(Qx~~+++2z""r-A8>>RZZ/// #r)   c                   \         P                  ! ^^.^ R..\         P                  R7      p\        V4      P                  \         P
                  8X  g   Q h\         P                  ! ^^.^ R..\         P                  R7      p\        V4      P                  \         P
                  8X  g   Q h\         P                  ! ^^.^ R..\         P                  R7      p\        V4      P                  \         P                  8X  g   Q h\        \         R4      '       dq   \        \         R4      '       dY   \         P                  ! ^^.^ R..\         P                  R7      p\        V4      P                  \         P                  8X  g   Q hR# R# R# )r   r    rd  
complex256Nr_  )r$   r   re  r   r!   r   r   rQ  r`  rf  rd  rE  s   & r'   -test_data_size_preservation_float_in_comp_out7TestSqrtM.test_data_size_preservation_float_in_comp_out  s   HHq!fq"g&bjj9Qx~~---HHq!fq"g&bjj9Qx~~---HHq!fq"g&bjj9Qx~~...2z""wr<'@'@1a&1b'*"++>A8>>R]]222 (A"r)   c                :   \         P                  ! R ^.^ R..\         P                  R7      p\        V4      P                  \         P                  8X  g   Q h\         P                  ! R ^.^ R..\         P
                  R7      p\        V4      P                  \         P
                  8X  g   Q h\        \         R4      '       dY   \         P                  ! R ^.^ R..\         P                  R7      p\        V4      P                  \         P
                  8X  g   Q hR# R# )r-  r    rj  Nr.  )r$   r   r   r   r!   r`  rf  rj  rE  s   & r'   ,test_data_size_preservation_comp_in_comp_out6TestSqrtM.test_data_size_preservation_comp_in_comp_out  s    HHr1g3x(=Qx~~---HHr1g3x(>Qx~~...2|$$2q'As8,BMMBA8>>R]]222 %r)   r   c                    \         P                  ! RVR7      p\        V4      p\         P                  ! ^VR7      p\        V4      pVP                  R8X  g   Q hVP
                  VP
                  8X  g   Q hR# r   )r$   r   r   r   r   r!   )r;   r   r<   sr   s0s   &&    r'   r   TestSqrtM.test_empty  s\    HHV2&!HVVAR 2Yww&   ww"(("""r)   c                   \         P                  P                  R 4      p^pVP                  ^^V,          ^V,          3R7      p\         P                  ! VRR7      \         P
                  ! ^V,          4      ,           \         P                  ! V4      rTWE,          pVR,          p\         P                  ! V4      R,          p\        \        VR,          4      \        V4      4       \        \        VR,          4      \        V4      4       R# )l   &\31 r{   )kNr   )NNNNNr   rw  )rv  rC   Nr   rx  )
r$   r   r   r   r!  r   triuasfortranarrayr   r   )r;   r   r   r&   r   UA_noncontig_cA_noncontig_fs   &       r'   test_cf_noncontig_nd_inputs%TestSqrtM.test_cf_noncontig_nd_inputs  s     ii##$45KKa1ac]K+wwqB"&&1+-rwwqz1E+))!,];an-u]/CDa./}1EFr)   c                l    \         P                  ! . RO\        R7      p\        \	        V4      V4       R# )r'  )r   r!   N)r'  r#   r   r   )r$   r   r%   r	   r   )r;   r&   s   & r'   test_empty_sizesTestSqrtM.test_empty_sizes&  s     HH<u558Q'r)   c                0   \         P                  P                  R 4      pVP                  RR7      pVRRRR1RRR13,          pVRRRR1RRR13,          P	                  4       p\        \        V4      \        V4      4       VRRRRR13,          pVRRRRR13,          P	                  4       p\        \        V4      \        V4      4       VRRRR1R3,          pVRRRR1R3,          P	                  4       p\        \        V4      \        V4      4       R# )l   &\31 r{   rv  N)r%  r   r   r   )r$   r   r   r   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_stridesTestSqrtM.test_negative_strides*  s    ii##$45KKYK'!TrT4R4-(!TrT4R4-(--/m,eM.BC!Q"*!Q"***,m,eM.BC!TrT1*!TrT1***,m,eM.BCr)   r[   N)&r\   r]   r^   r_   r   r   r  r  r  r"  r*  r   r5  r;  r>  rF  rK  rU  r\  ra  rg  rk  rn  r   r   r   r   r%   r$   r   r   r   r   r~  r  r  r`   ra   rb   s   @r'   r   r     s     7	70"!CF?*;/*&1555&/,,/	0	33 [[TC

GR\\#RS# T#G(D Dr)   r   c                      a  ] tR tRt o R tR tR tR tR tR t	R t
R	 t]P                  P                  R
R7      R 4       tR tRtV tR# )TestFractionalMatrixPoweri:  c                   \         P                  P                  R 4      p\        ^^4       F  p\        ^^4       F  pVP	                  W334      RVP	                  W334      ,          ,           p\         P
                  ! R^^	4       FH  pWE,          p\        V^V,          4      p\         P                  P                  Wr4      p\        W4       KJ  	  K  	  K  	  R# )  r   Nr   
r$   r   r   r   r   r   r   r   matrix_powerr   	r;   r   pr   r   r   r   M_rootr   s	   &        r'   r   8TestFractionalMatrixPower.test_round_trip_random_complex;  s    ii##D)q!A1a[!111&9 3#6#6v#>>?
[[Q2E"*A4Q!<F#%99#9#9&#DL#L4	 3 ! r)   c                |   \         P                  P                  R 4      p\        ^^4       F  p\        ^^4       Fy  pVP	                  W334      p\         P
                  ! R^^	4       FH  pWE,          p\        V^V,          4      p\         P                  P                  Wr4      p\        W4       KJ  	  K{  	  K  	  R# )r  Nr   r  r  s	   &        r'   r   6TestFractionalMatrixPower.test_round_trip_random_floatG  s    
 ii##D)q!A1a[ 00!8
[[Q2E"*A4Q!<F#%99#9#9&#DL#L4	 3 ! r)   c                $   \         P                  P                  R 4      pR F  p\        ^
4       F  pVP	                  W"34      RVP	                  W"34      ,          ,           p\        VR4      p\         P                  P                  V^4      p\        WF4       \        VR4      p\         P                  P                  VR4      p\        Wx4       \        VR4      p\         P                  P                  V^4      p\        Wx4       K  	  K  	  R# )r  r   皙?gffffff@N)r   r%  r   gi)	r$   r   r   r   r   r   r   r  r   )	r;   r   r   ir   M_one_fifthr   r   r   s	   &        r'   (test_larger_abs_fractional_matrix_powersBTestFractionalMatrixPower.test_larger_abs_fractional_matrix_powersV  s    ii##D)A2Y''/"s7J7JA67R2RR5a=!yy55k1E0+At4II**;<%+As3II**;;%  r)   c                   \         P                  P                  R 4      p^p\        V4       F  pVP	                  ^^4      pVP                  4       p\         P
                  ! VP	                  R^4      4      pVP                  WD.R7      pRR.VP                  ^4      ,          '       d"   VRVP                  WD.R7      ,          ,           pWv,          p\        Wu4      p\        V4      p	\        W,          4      p
\        W4       K  	  R# )l   fm1 r{   TFr   Nr   )r$   r   r   r   integersexpchoicer   r   r   r   )r;   r   nsamplesr  r   r  matrix_scaler&   A_powerrn   A_power_expm_logms   &          r'   test_random_matrices_and_powers9TestFractionalMatrixPower.test_random_matrices_and_powersh  s     ii##$45xAQ"A

A 66#,,r1"56L


'Ae}SZZ]++SZZaVZ444 A
 .a3G!WF $VZ 0G7% !r)   c                   \        4       p\        V\        P                  4      p\	        V4      p\
        P                  ! VR 4      p\        VR 4      p\        WERR7       \        W54       \        W24       R Fd  p\        W4      p\        V^V,          4      p\        WqRR7       \        \        P                  ! V^4      \        P                  ! V^4      4       Kf  	  R# )r   gdy=r   r   N)r   g?)
r(   r
   r$   r   r   r   _remainder_matrix_powerr   r   r!  )r;   r&   A_funm_sqrtr  A_rem_powerr  r  ro   s   &       r'   r"  ?TestFractionalMatrixPower.test_al_mohy_higham_2012_experiment_1  s    13 1bgg&('??3G)!S159)- A-a3G27AaC@LL$7BGGL!4bggamD	 r)   c                ^   \         P                  P                  R 4      pVP                  ^
4      RVP                  ^
4      ,          ,            F[  p\	        ^4       FI  p\
        P                  ! W#4      pV\         P                  ! V) 4      ,          ^,
          p\        WE4       KK  	  K]  	  R# )r  r   N)	r$   r   r   r   r   r   _briggs_helper_functionexp2r   )r;   r   r<   ru  
x_observed
x_expecteds   &     r'   test_briggs_helper_function5TestFractionalMatrixPower.test_briggs_helper_function  s    ii##D)$$R(20C0CB0G+GGGA1X.FFqL
"''1"+-1

7  Hr)   c                   Rp^^ .^ ^..^^ .^^..^^.^^..^^.^^..3 EFJ  p\         P                  P                  V4      p\        \        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       * 4       R F  p\
        P                  ! V\        R7      p\        WT4      p\        VP                  P                  V9  4       \
        P                  ! V\        R7      p\        WT4      p\        VP                  P                  V9   4       \
        P                  ! V\        R7      ) p\        WT4      p\        VP                  P                  V9   4       K  	  EKM  	  R# )r   c              3   f   "   T F'  qP                   ;'       g    VP                  ^ 8  x  K)  	  R# 5ir   r   r   s   & r'   r   RTestFractionalMatrixPower.test_type_preservation_and_conversion.<locals>.<genexpr>  r   r   TFr    Nr   333333r  gffffff
@)r   r   r   r   r   r$   r   r%   r   r!   r   r   r;   r   r   r   r  r&   r  s   &      r'   %test_type_preservation_and_conversion?TestFractionalMatrixPower.test_type_preservation_and_conversion  s=   
 .Q!Q Q!Q Q!Q Q!Q 	"N $$^4A<!<<!<<<= , HH^591!7**2EEF HH^7;1!7**.AAB XXnE::1!7**.AAB ,"r)   c                :   Rp^^ .^ R..^ ^.^^ ... RO. R	O. R
O.3 F  p\         P                  P                  V4      p\        \        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      4       R F  p\
        P                  ! V\        R7      p\        WT4      p\        VP                  P                  V9   4       \
        P                  ! V\        R7      p\        WT4      p\        VP                  P                  V9   4       K  	  K  	  R# )r   c              3   f   "   T F'  qP                   ;'       g    VP                  ^ 8  x  K)  	  R# 5ir   r   r   s   & r'   r   `TestFractionalMatrixPower.test_type_conversion_mixed_sign_or_complex_spectrum.<locals>.<genexpr>  r  r   TFr    Nr   r   r  )r#   r#   rC   r  r  )r   r   r   r   r   r$   r   r   r   r!   r   r%   r  s   &      r'   3test_type_conversion_mixed_sign_or_complex_spectrumMTestFractionalMatrixPower.test_type_conversion_mixed_sign_or_complex_spectrum  s    -Q!R!Q!Q Iy13N $$^4ACC8a8CCC8a889 , HH^7;1!7**.AAB HH^591!7**.AAB ,3r)   zToo unstable across LAPACKs.r   c                   ^ ^ .^ ^ ..^^.^^..^^.^^... RO. RO. RO.3 F  p\         \        3 F  p\        P                  ! WR7      pR F;  p\	        W44      p\        \        P                  ! V4      P                  4       4       K=  	  R F,  p\	        W44      p\	        V^V,          4      p\        Wc4       K.  	  K  	  K  	  R# )r#   r    N)r#   r#   r#   )r#   rC   rC   )r#   r   rC   )gffffffr  r  g)r  gzG?)	r%   r   r$   r   r   r   r(  allr   )r;   r   newtyper&   r  r  ro   s   &      r'   test_singular'TestFractionalMatrixPower.test_singular  s     Q!Q Q!Q Q!Q Iz2	4N "7+HH^;1A5a;GBHHW-1134 2 %A5a;G#:7AaC#HL#L4 % ,4r)   c                    R ^.^ R..pR^.^ R..p\        \        P                  ! W"4      VRR7       \        \        VR4      VRR7       R# )r-  rj   r   r   Nr.  r/  r0  )r   r$   r  r   r1  s   &  r'   r   @TestFractionalMatrixPower.test_opposite_sign_complex_eigenvalues  sN    !Wq#hAYD	"qae4/37Gr)   r[   N)r\   r]   r^   r_   r   r   r  r  r"  r  r  r  r   r   r   r  r   r`   ra   rb   s   @r'   r  r  :  sd     
55&$82E(8!CFC2 [[<=5 >5&H Hr)   r  c            
         a  ] tR tRt o R tR t]P                  P                  R]	]
]]]]].4      ]P                  P                  R]]]P&                  ]]P*                  .4      ]P                  P                  RRR.4      R 4       4       4       tR tR	 tR
 t]P                  P5                  ^4      R 4       tRtV tR# )TestExpMi  c                ^    \        R ^ .^ ^ ..4      p\        \        V4      ^^ .^ ^..4       R# )rB   N)r   r   r   rF   s   & r'   	test_zeroTestExpM.test_zero  s2    Bq61Q%.!!$q'Aa5!A-8r)   c                |    \        ^4      p\        V\        P                  ! \        P                  ..4      4       R# )rC   N)r   r   r$   r   r
  )r;   elts   & r'   test_single_eltTestExpM.test_single_elt  s&    1gRXXvh/0r)   funcr   r   c                    \         P                  ! W2R 7      p\         P                  ! RVR 7      pV! V4      pV! V4      pVP                  V8X  g   Q hVP                  VP                  8X  g   Q hR# )r    N)rO  rO  )r$   r   r   r!   )r;   r  r   r   r&   A0resultresult0s   &&&&    r'   test_small_empty_matrix_input&TestExpM.test_small_empty_matrix_input  s\     HHU%XXhb)ar(||u$$$||w}},,,r)   c                   \         P                  p\        ^^.^^..4      pV^,          ^,           ^V,          ,          pV^,          ^,
          V,          p\        \	        V4      \        W4.V^,          V..4      4       \	        VP                  \         P                  4      4      P                  P                  R8X  g   Q h\	        VP                  \         P                  4      4      P                  P                  R8X  g   Q hR# )rC   r   fN)
r$   r
  r   r   r   rI  r   r!   r   r   )r;   r   r<   aabbs   &    r'   test_2x2_inputTestExpM.test_2x2_input
  s    DDAq6Aq6"#dQh1dQh\Q2a4*'=!>?AHHR\\*+1166#===AHHRZZ()//44;;;r)   c                J   \         P                  p\         P                  ! ^^.^^..^^.^R..^^.^^..^^.^^..^^.RR...RR7      p\         P                  ! V^,          ^,           ^V,          ,          V^,          ^,
          V,          .V^,          ^,
          ^,          V,          V^,          ^,           ^V,          ,          ..^^V^,          ,          ,          ^V^,          ,          ^,          ,           ^V^,          ,          ^,          ^^V^,          ,          ,          ,
          .V^,          ^,          ^^V^,          ,          ,          ,
          ^^V^,          ,          ,          V^,          ^,          ,           ..^^V,          ,          V^,          ^,          ,           R^V,          ,          ^V^,          ,          ^,          ,           .R^V,          ,          V^,          ^,          ,           ^^V,          ,          ^V^,          ,          ^,          ,           ..^^V^,          ,          ,          ^V^,          ,          ^,          ,           R^V^,          ,          ,          ^V^,          ,          ^,          ,           .R^V^,          ,          ,          ^V^,          ,          ^,          ,           ^^V^,          ,          ,          ^V^,          ,          ^,          ,           ..R^V,          ,          ^V,          ^,          ,           R^V,          ,          ^V,          ^,          ,           .^^V,          ,          ^V,          ^,          ,
          ^^V,          ,          ^V,          ^,          ,
          ...4      p\        \	        V4      V4       R# )rC   r   )orderNr   r   )r$   r
  r   r   r   )r;   r   r<   a_ress   &   r'   test_nx2x2_inputTestExpM.test_nx2x2_input  s   DDHH1v1v&1v2w'1v1v&1v1v&1vBx(	* 25	6 T!VacNQT!VQJ7T!VQJqL1a46AaC.9;qAvJ!Q$z1AadFA:a1a4j3HIqDF1a1f:-q!AqD&z!Q$q&/@ACqsGAqDFNB!Ha1faZ,?@!HQT!VOQ!Wa1faZ-?@BqAvJ!Q$z12qAv;!Q$z3IJ!Q$K1a4
2AqAvJ!Q$z4IJL!Hac1W,b!A#h!Qw.>?qsGQqS!GOQ!Wac1W_=?  	Q'r)   c                p    ^p\         P                  ! W34      pRVP                  n        \	        V4       R# )   FN)r$   r   r   r   r   r   s   &  r'   r   TestExpM.test_readonly*  s)    GGQFO!Qr)   c                \   \         P                  ! R\        R7      p\         P                  P	                  ^d4      pVP                  ^ RR4      pVP                  ^ RR4      pVP                  R4      WV3&   \         P                  ! R\        R7      pVP                  4       V^ &   \        V4      w  rgV^	8X  g   Q h\        V4      p\         P                  P                  \        V4      V4       \        ^4       F-  p\        V4      p	\         P                  P                  W4       K/  	  R# )  r    i  i  N)r  r  )r   r  r  )r$   r   r%   r   r   r  r   r  r   r   testingr   r   r   )
r;   r&   r   r  jAmrg   rq  	first_resnext_ress
   &         r'   test_gh18086TestExpM.test_gh180860  s    HHZu-ii##C(LLC%LLC%**S/Q$XXm511"2&AvvG	


,,T)_a@qAAwHJJ00E r)   r[   Nr   rC   rC   )r\   r]   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`   ra   rb   s   @r'   r  r    s     91 [[VdD$eUE%RS[[T3rzz7BLL"QR[[Wvv&67- 8 S T-<(. [[1F Fr)   r  c                      a  ] tR tRt o R tR tR tR t]P                  P                  ]P                  P                  RR7      R 4       4       tR	tV tR
# )TestExpmFrechetiE  c                   \         P                  ! . RO. RO. RO. R	O.\        R7      p\         P                  ! ^^.^^..\        R7      p\         P                  ! ^^.^^..\        R7      p\        P                  P                  V4      p\        P                  P                  V4      R
,          p/ RR/RR/3 F'  p\        W#3/ VB w  rx\        WG4       \        WX4       K)  	  R# )rC   r    methodSPSblockEnlargeNrC   r   r%  r'  r      r     r#   r#   rC   r   r#   r#   r   r  :Nr   N:r   NN)r$   r   r%   r   r   r   r   r   )	r;   r   r&   r   expected_expmexpected_frechetkwargsobserved_expmobserved_frechets	   &        r'   test_expm_frechet!TestExpmFrechet.test_expm_frechetG  s    HH	
  HHFF  HHFF  ))!, <<,,Q/7HU+h~-FGF.:1.J6.J+MM9,? Hr)   c                H   \         P                  ! . RO. RO. RO. RO.\        R7      p\         P                  ! ^^.^^..\        R7      p\         P                  ! ^^.^^..\        R7      p\        P                  P                  V^4      p. R	Op\        VRR
 VR,          4      pV F  w  rx\        P                  P                  P                  V,          p	\        P                  P                  P                  V,          p
RW,           ,          pW,          pW,          pW,          pW,          p\        P                  P                  V4      p\        P                  P                  V4      R,          p\        W4      w  pp\        VV4       \        VV4       K  	  R# )rC   r    N:rC   NNr   r  r  r  r   )rC   r%  r   r  	            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_frechet,TestExpmFrechet.test_small_norm_expm_frechet^  sm   XX	
 
 XXFF 
 XXFF 
 "LL--j!<5s3_R5HI&FBLL..;;B?ELL..;;B?E5=1M!5E"A"A"A!LL--a0M$||003F;.:1.@+M+M=9,.>? 'r)   c           	     n   \         P                  P                  R 4      pVP                  VP                  VP
                  VP                  3p^dp\        V4       EFU  pW!P                  ^4      ,          pVP                  4       pVP                  ^^4      pV! Ww3R7      pV! Ww3R7      p	\        P                  P                  V^4      p
Wj,          pW,          pW,          p\         P                  ! \         P                  ! W.4      \         P                  ! \         P                  ! V4      V.4      .4      p\        P                  P!                  V4      p\        P                  P!                  V4      RV1VR13,          p\#        W4      w  pp\%        VVRR7       \%        VVRR7       EKX  	  R# )l   ]"1 r{   NgHj>r   gHz>)r$   r   r   r   normalstandard_cauchyexponentialr   r  r  r   r   r   vstackhstack
zeros_liker   r   r   )r;   r   rfuncsntestsr  rfuncr  r   r  r  r  r   r&   r   r   r  r  r  r  s   &                  r'   	test_fuzzTestExpmFrechet.test_fuzz  sh   ii##$45 

##	!
 vA::a=)EOO-MQ#AQE*JQE*J % 1 1*a @!5E"A"A				1&!		2==+Q/02 3A "LL--a0M$||003BQBF;.:1.@+M+M=tD,.>TJJ# r)   c                6   \         P                  ! R R.RR..\        R7      p\         P                  ! RR.RR..\        R7      p\        P                  P                  V^4       \        WR	R
7      w  r4\        WRR
7      w  rV\        W54       \        WF4       R# )g]؉??gvP?g^?guÝ?r    gS,?g| @gJt?g~3?r  r  r  N)r$   r   r%   r   r   r   r   r   )r;   r&   r   sps_expmsps_frechetblockEnlarge_expmblockEnlarge_frechets   &      r'   test_problematic_matrix'TestExpmFrechet.test_problematic_matrix  s    HHZ(Z(   HHZ(Z(   	!Q ,U!$2>^3-/4:r)   zthis test is deliberately slowr   c                    R p\         P                  P                  R4      pVP                  W3R7      pVP                  W3R7      p\	        W4RR7      w  rV\	        W4RR7      w  rx\        WW4       \        Wh4       R# )i  r  r{   r  r+  r  N)r$   r   r   r!  r   r   )	r;   r   r   r&   r   r,  r-  r.  r/  s	   &        r'   test_medium_matrix"TestExpmFrechet.test_medium_matrix  sv     ii##D)OO!O(OO!O( ,U!$2>^3-/4:r)   r[   N)r\   r]   r^   r_   r  r  r(  r0  r   r   slowskipr3  r`   ra   rb   s   @r'   r  r  E  sV     @.@BK8;$ [[[[=>; ? ;r)   r  c                     \         P                  ! WPP                  4      p\        V4      pWE,          W,          ,          p\	        W,           4      p\        W,
          4      W4,          ,          p	V	) # N)r$   reshaper   r   r   )
r&   A_normr   X_normepsr  p_normperturbationX_primescaled_relative_errors
   &&&&&&    r'   _help_expm_cond_searchrA    sU    


1ggA!WF7fo.L1#$G ->!!!r)   c                     V \         P                  P                  V4      \         P                  P                  V 4      ,          ,          # r8  )r   r   r   )r&   r   s   &&r'   _normalized_likerC    s0    !!!$u||'8'8';;<<r)   c                 p    V ! V4      pV ! W,           4      p\        WC,
          4      \        V4      ,          # r8  )r   )r  r&   r>  r   r?  s   &&&  r'   _relative_errorrE    s.    	!A !GtAw&&r)   c                   j   a  ] tR tRt o R tR tR t]P                  P                  R 4       t
RtV tR# )TestExpmConditionNumberi  c                    \         P                  P                  R 4      p\        ^^4       F,  pVP	                  W"34      p\        V4      p\        ^ V4       K.  	  R# )r  N)r$   r   r   r   r   r   r   )r;   r   r   r&   kappas   &    r'   test_expm_cond_smoke,TestExpmConditionNumber.test_expm_cond_smoke  sK    ii##D)q!A##QF+AaLEa' r)   c                x    \         P                  ! . RO. RO. RO. RO.4      p\        V4      p\        RV4       R# )g(?g yhGN)g(gٙBgx@g  =g ZdB)r#   gzNV7g@g  2p)r#   r#   gᙥT g?W[E@)r#   r#   r#   gT!)r$   r   r   r   )r;   r&   rI  s   &  r'   test_expm_bad_condition_number6TestExpmConditionNumber.test_expm_bad_condition_number  s6    HHI</#	  !$&r)   c                B   \         P                  P                  R 4      p\         P                  ! R^^R7       F9  p\         P                  ! V..4      p\        \        V4      \        V4      4       K;  	  \         P                  ! R^^R7       F9  p\         P                  ! V..4      p\        \        V4      \        V4      4       K;  	  \        ^
4       FD  pVP                  R4      p\        \        V4      \         P                  ! V4      R,          4       KF  	  R# )r  )numNr  r_  r  r   )r$   r   r   linspacer   r   r   absr   r   r   r   )r;   r   xr&   r  s   &    r'   test_univariate'TestExpmConditionNumber.test_univariate  s    ii##D)R+A1#AIaL#a&1 , R+A1#AIaL#a&1 , rA##F+AIaL"++a.*>? r)   c           	        \         P                  P                  R 4      pRp^
p\        V4       EF  pVP	                  ^^4      pVP                  WU4      p\        P                  P                  V4      p\        V4      p\        P                  P                  V4      p	\        V4      p
\        P                  ! \        WgWV4      p\         P                  ! WU,          4      p\        WRR7      pVP                   pV! V4      pV\#        \         P$                  ! WP&                  4      V4      ,          p\)        \        VV4      p\+        VV) V,          4       \        ^4       Fi  pV\#        VP
                  ! VP&                  !  V4      ,          p\+        \        V4      \        V4      4       \)        \        VV4      p\-        VV4       Kk  	  \-        V^^V,          ,           V,          V
,          4       EK  	  R# )i90  rs   zL-BFGS-Br+  N)r$   r   RandomStater   randintrandnr   r   r   r   r   	functoolspartialrA  r   r   rS  rC  r9  r   rE  r   r   )r;   r   r<  r  r  r   r&   r:  r   r;  rI  r  guessoutxoptyoptp_bestp_best_relerrr  p_randp_rand_relerrs   &                    r'   test_expm_cond_fuzz+TestExpmConditionNumber.test_expm_cond_fuzz  s   ii##E*xAAq!A		!A\\&&q)FQA\\&&q)FaLE !!"8q#/AGGACLE1J7C55DT7D+BJJtWW,EqIIF+D!V<MMD53;7 1X/		1770CQGGVd6l; /a @!-?	  ma!C%i3->-FG? !r)   r[   N)r\   r]   r^   r_   rJ  rM  rT  r   r   r5  rd  r`   ra   rb   s   @r'   rG  rG    s5     ('
@ [[#H #Hr)   rG  c                   >   a  ] tR tRt o R tR tR tR tR tRt	V t
R# )	TestKhatriRaoi  c           
     8   \        \        ^^.^^..4      \        ^^.^^..4      4      p\        V\        ^^.^^.^^.^^ ..4      4       \        \        P                  ! ^^.4      \        P                  ! ^^.4      4      p\        VP
                  R4       R# )rC   N)r'  r   )r   r   r	   r$   r   r   r;   r<   bs   &  r'   
test_basicTestKhatriRao.test_basic  s    uq!fq!f-.q!fq!f-.0 	1eaW&'W&("X&("X%/ 0 	1
 rxxA'1a&)9:177F+r)   c                    \         P                  ! \        4      ;_uu_ 4        \        . RO. RO.4      p\        ^^.^^..4      p\	        W4       RRR4       R#   + '       g   i     R# ; i)rC   NrC   r   r%  r'  r   r  r   raises
ValueErrorr   r   ri  s   &  r'   test_number_of_columns_equality-TestKhatriRao.test_number_of_columns_equality#  sX    ]]:&&y " #A1v1v  Aq '&&&s   .AA,	c                j   \         P                  ! \        4      ;_uu_ 4        \        . RO4      p\        . RO4      p\	        W4       RRR4       \         P                  ! \        4      ;_uu_ 4        \        . RO4      p\        . RO. RO.4      p\	        W4       RRR4       \         P                  ! \        4      ;_uu_ 4        \        . RO. RO.4      p\        . RO4      p\	        W4       RRR4       R#   + '       g   i     L; i  + '       g   i     Ly; i  + '       g   i     R# ; i)rC   Nrn  ro  )r  r  r
  rp  ri  s   &  r'   test_to_assure_2d_array%TestKhatriRao.test_to_assure_2d_array+  s    ]]:&&i Ai Aq	 ' ]]:&&i A A q ' ]]:&& A i Aq '& '& '& '&&s#   &C;3*D*D!;D	D	!D2	c                b   \        ^^.^^..4      p\        ^^.^^..4      p\        W4      p\        P                  ! \	        VP
                  ^,          4       Uu. uF,  p\        P                  ! VRV3,          VRV3,          4      NK.  	  up4      P                  p\        W54       R# u upi )rC   rv  N)	r   r   r$   r"  r   r   kronr   r	   )r;   r<   rj  res1ru  res2s   &     r'   test_equality_of_two_equations,TestKhatriRao.test_equality_of_two_equationsD  s    Aq6Aq6"#Aq6Aq6"#!yy#(#46#4a ''!AqD'1QT73#46 778q 	 	4&6s   2B,c                b   \         P                  ! R4      p\         P                  ! R4      p\        W4      p\        V\         P                  ! R4      4       \         P                  ! R4      p\         P                  ! R4      p\        W4      p\        V\         P                  ! R4      4       R# )r#   N)r#   r   )r%  r   )r%  r#   )r   r#   )r  r#   )r$   r   r   r   )r;   r<   rj  ress   &   r'   r   TestKhatriRao.test_emptyN  st    HHVHHVRXXf-.HHVHHVRXXg./r)   r[   N)r\   r]   r^   r_   rk  rs  rv  r|  r   r`   ra   rb   s   @r'   rg  rg    s#     
,2'	0 	0r)   rg  r  c                     \         P                  ! 4       ;_uu_ 4        V ! \        P                  ! ^4      RR7       RRR4       R#   + '       g   i     R# ; i)r   F)dispN)r   deprecated_callr$   r   )r  s   &r'   test_disp_depr  Y  s4     
			!	!RVVAYU# 
"	!	!	!s   AA	c                      \         P                  ! 4       ;_uu_ 4        \        \        P                  ! ^4      ^
R7       RRR4       R#   + '       g   i     R# ; i)r   )	blocksizeN)r   r  r   r$   r   r[   r)   r'   test_blocksize_depr  _  s2    				!	!bffQi2& 
"	!	!	!s   "A

A	):__doc__rZ  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+   re   r   r  r  r  rA  rC  rE  rG  rg  r   r   r  r  r[   r)   r'   <module>r     s       ' 'B B A A A A A + 6 E ! & #*' 'Vn0 n0biD iDX	wH wHtNF NFbu; u;p"='BH BHJB0 B0H u-/$/$'r)   