Ë
    âQ(hìT  ã                   óþ   — 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mZmZ ddlmZ ddl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 m!Z! ddlZ"ddl#Z"d„ Z$d„ Z%d„ Z& G d„ d«      Z' G d„ d«      Z(y)z3 Test functions for scipy.linalg._matfuncs module

é    N)ÚarrayÚeyeÚexpÚrandom)Úassert_allcloseÚassert_Úassert_array_almost_equalÚassert_equalÚassert_array_almost_equal_nulpÚsuppress_warnings)Ú	csc_arrayÚSparseEfficiencyWarning)Ú	eye_array)ÚexpmÚ_expmÚProductOperatorÚMatrixPowerOperatorÚ_onenorm_matrix_power_nnmÚmatrix_power)Úmatrix)Úlogm)Ú	factorialÚbinomc                 ó¢  — | t        | «      k7  s| dk  rt        d«      ‚t        | «      } |t        |«      k7  s|dk  rt        d«      ‚t        |«      }t        || «      \  }}t        j                  d|  |z  «      }|t        j                  d|  «      z  }t        j
                  |g| |z
  z  |«      t        j
                  |g|z  || z
  «      z   S )aj  
    A helper function for testing matrix functions.

    Parameters
    ----------
    n : integer greater than 1
        Order of the square matrix to be returned.
    p : non-negative integer
        Power of the matrix.

    Returns
    -------
    out : ndarray representing a square matrix
        A Forsythe matrix of order n, raised to the power p.

    é   z#n must be an integer greater than 1r   z p must be a non-negative integerç      $@)ÚintÚ
ValueErrorÚdivmodÚnpÚpowerÚdiag)ÚnÚpÚaÚbÚlargeÚsmalls         úe/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/sparse/linalg/tests/test_matfuncs.pyÚ_burkardt_13_powerr*      sÃ   € ð$ 	ŒC�‹F‚{�a˜!’eÜÐ>Ó?Ð?ÜˆA‹€AØŒC�‹F‚{�a˜!’eÜÐ;Ó<Ð<ÜˆA‹€Aô �!�Q‹<�D€A€qÜ�H‰H�T˜A˜2˜a™4Ó €EØ”B—H‘H˜T A 2Ó&Ñ&€EÜ�7‰7�E�7˜A˜a™C‘= !Ó$¤r§w¡w°¨w°q©y¸!¸A¹#Ó'>Ñ>Ð>ó    c                  óv  — t         j                  j                  d«       t        dd«      D ]‹  } t        d«      D ]{  }t         j                  j                  | | f«      }t         j                  j                  ||«      }t        ||«      }t         j                  j                  |d«      }t        ||«       Œ} Œ� y )NéÒ  é   é   )	r    r   ÚseedÚrangeÚlinalgr   r   Únormr   )r#   r$   ÚMÚMpÚobservedÚexpecteds         r)   Útest_onenorm_matrix_power_nnmr8   ;   s’   € Ü‡I�I‡N�N�4ÔÜ�1�a‹[ò 0ˆÜ�q“ò 	0ˆAÜ—	‘	× Ñ  ! Q Ó(ˆAÜ—‘×'Ñ'¨¨1Ó-ˆBÜ0°°AÓ6ˆHÜ—y‘y—~‘~ b¨!Ó,ˆHÜ˜H hÕ/ñ	0ñ0r+   c                  ó  — t         j                  j                  d«       t         j                  j                  ddd¬«      \  } }t         j                  j                  d¬«      }t	        || |ffd¬«      }t	        || |ffd¬«      }|j                  «       }d	D ]n  }t        ||«      j                  «       }t        ||«      j                  «       }t         j                  j                  ||«      }	t        ||	«       t        ||«       Œp y )
Nr-   r   é   )r   é   )Úsize)r;   )r:   r:   )Úshape)r   r/   r;   )	r    r   r0   Úrandintr   Útoarrayr   r2   r   )
ÚrowÚcolÚdataÚAmatÚAÚAdenser!   ÚApowÚAmat_powÚ
Adense_pows
             r)   Útest_matrix_powerrI   E   sà   € Ü‡I�I‡N�N�4ÔÜ�y‰y× Ñ   A¨FÐ Ó3�H€CˆÜ�9‰9×Ñ ÐÓ&€DÜ�d˜S #˜JÐ'¨vÔ6€DÜ�4˜#˜s˜Ð$¨FÔ3€AØ�Y‰Y‹[€FØò (ˆÜ˜A˜uÓ%×-Ñ-Ó/ˆÜ  eÓ,×4Ñ4Ó6ˆÜ—Y‘Y×+Ñ+¨F°EÓ:ˆ
Ü˜˜jÔ)Ü˜˜hÕ'ñ(r+   c                   óÀ   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z y) ÚTestExpMc                 ó\   — t        ddgddgg«      }t        t        |«      ddgddgg«       y ©Nç        r   r.   )r   r	   r   ©Úselfr%   s     r)   Útest_zero_ndarrayzTestExpM.test_zero_ndarrayU   s2   € Ü�B�q�6˜1˜Q˜%�.Ó!ˆÜ!¤$ q£'¨A¨a¨5°!°A°¨-Õ8r+   c                 óx   — t        ddgddgg«      }t        t        |«      j                  «       ddgddgg«       y rM   )r   r	   r   r?   rO   s     r)   Útest_zero_sparsezTestExpM.test_zero_sparseY   s9   € Ü˜˜1�v˜q ˜e�nÓ%ˆÜ!¤$ q£'§/¡/Ó"3°a¸°U¸A¸a¸5°MÕBr+   c                 ó\   — t        ddgddgg«      }t        t        |«      ddgddgg«       y rM   )r   r	   r   rO   s     r)   Útest_zero_matrixzTestExpM.test_zero_matrix]   s2   € Ü�R˜�F˜A˜a˜5�>Ó"ˆÜ!¤$ q£'¨A¨a¨5°!°A°¨-Õ8r+   c                 óÀ  — t        t        j                  dgg«      «      }t        t        d«      |«       t        t        dgg«      |«       t        t        t	        dgg«      «      |«       t        t        t        j                  dgg«      «      |«       t        t        t        dgg«      «      j                  «       |«       t        t        j                  dgg«      «      }t        t        d«      |«       t        t        dgg«      |«       t        t        t	        dgg«      «      |«       t        t        t        dgg«      «      j                  «       |«       y )Nr.   ))r.   ù              ð?))rW   )r   r    r   r   r   r   r?   )rP   rD   ÚBs      r)   Útest_misc_typeszTestExpM.test_misc_typesa   sú   € Ü”—‘˜A˜3˜%“Ó!ˆÜœ˜W› qÔ)Üœ˜q˜c˜U› QÔ'ÜœœV a S E›]Ó+¨QÔ/ÜœœRŸX™X¨ s e›_Ó-¨qÔ1ÜœœY¨¨ uÓ-Ó.×6Ñ6Ó8¸!Ô<Ü”—‘˜B˜4˜&Ó!Ó"ˆÜœ˜X›¨Ô*Üœ˜r˜d˜V› aÔ(ÜœœV b T F›^Ó,¨aÔ0ÜœœY¨¨ vÓ.Ó/×7Ñ7Ó9¸1Õ=r+   c                 óH  — t        g d¢g d¢g d¢gt        ¬«      }t        j                  d«      }t        j                  d«      }t	        j
                  |d|z  d|d|z  z
  z  gd	|d
||z
  z  gd	d	|ggt        ¬«      }t        |«      j                  «       }t        ||«       y )N)r.   é   r   )r   r.   r/   )r   r   r   ©Údtyper.   r   r[   é   r   r/   )	r   ÚfloatÚmathr   r    r   r   r?   r	   )rP   rD   Úe1Úe2r7   r6   s         r)   Útest_bidiagonal_sparsezTestExpM.test_bidiagonal_sparsen   s¤   € ÜÚÚÚðô $ô%ˆô �X‰X�a‹[ˆÜ�X‰X�a‹[ˆÜ—8‘8Ø��2‘�r˜2  "¡™9‘~Ð&Ø��A�r˜B‘w‘KÐ Ø��2ˆJðô  %ô&ˆô ˜“7—?‘?Ó$ˆÜ! (¨HÕ5r+   c                 óä   — t         j                  t         j                  fD ]M  }dD ]F  }|t        d|¬«      z  }t	        |«      }t        ||¬«      t        d|¬«      z  }t        ||d¬«       ŒH ŒO y ©N©ç{®Gáz„?çš™™™™™¹?g      à?r.   é
   r[   r\   éd   ©Únulp)r    Úfloat32Úfloat64r   r   r   r   ©rP   r]   ÚscalerD   r6   r7   s         r)   Útest_padecases_dtype_floatz#TestExpM.test_padecases_dtype_float|   so   € Ü—j‘j¤"§*¡*Ð-ò 	MˆEØ2ò M�ØœC ¨Ô/Ñ/�Ü ›7�Ü˜u¨EÔ2´S¸À%Ô5HÑH�Ü.¨x¸ÈÖLñ	Mñ	Mr+   c                 óä   — t         j                  t         j                  fD ]M  }dD ]F  }|t        d|¬«      z  }t	        |«      }t        ||¬«      t        d|¬«      z  }t        ||d¬«       ŒH ŒO y re   )r    Ú	complex64Ú
complex128r   r   r   r   ro   s         r)   Útest_padecases_dtype_complexz%TestExpM.test_padecases_dtype_complex„   so   € Ü—l‘l¤B§M¡MÐ2ò 	MˆEØ2ò M�ØœC ¨Ô/Ñ/�Ü ›7�Ü˜u¨EÔ2´S¸À%Ô5HÑH�Ü.¨x¸ÈÖLñ	Mñ	Mr+   c                 óš  — t         j                  }dD ]ª  }|t        dd|d¬«      z  }t        ||¬«      t	        d|¬«      z  }t        «       5 }|j                  t        d«       t        |d¬«      j                  «       }t        |d	¬«      j                  «       }d d d «       t        |d
¬«       t        |d
¬«       Œ¬ y # 1 sw Y   Œ(xY w)Nrf   r[   Úcsc©r]   Úformatr\   úChanging the sparsity structureT)Úuse_exact_onenormFrj   rk   )r    rn   r   r   r   r   Úfilterr   r   r?   r   )rP   r]   rp   r%   ÚeÚsupÚexact_onenormÚinexact_onenorms           r)   Ú!test_padecases_dtype_sparse_floatz*TestExpM.test_padecases_dtype_sparse_floatŒ   s¾   € ä—
‘
ˆØ.ò 	IˆEØœ	 ! Q¨e¸EÔBÑBˆAÜ�E Ô'¬#¨a°uÔ*=Ñ=ˆAÜ"Ó$ð N¨Ø—
‘
Ô2Ð4UÔVÜ % a¸4Ô @× HÑ HÓ J�Ü"'¨¸UÔ"C×"KÑ"KÓ"M�÷Nô +¨=¸!À#ÕFÜ*¨?¸AÀCÖHñ	I÷Nð Nús   ÁACÃC
	c                 ó<  — t         j                  }dD ]{  }|t        dd|d¬«      z  }t        |«      t	        d|¬«      z  }t        «       5 }|j                  t        d«       t        t        |«      j                  «       |d¬«       d d d «       Œ} y # 1 sw Y   ŒˆxY w)	Nrf   r[   rw   rx   r\   rz   rj   rk   )r    rt   r   r   r   r   r|   r   r   r   r?   )rP   r]   rp   r%   r}   r~   s         r)   Ú#test_padecases_dtype_sparse_complexz,TestExpM.test_padecases_dtype_sparse_complex™   s”   € ä—‘ˆØ.ò 	OˆEØœ	 ! Q¨e¸EÔBÑBˆAÜ�E“
œS ¨%Ô0Ñ0ˆAÜ"Ó$ð O¨Ø—
‘
Ô2Ð4UÔVÜ.¬t°A«w¯©Ó/@À!È#ÕN÷Oð Oñ	O÷Oð Oús   Á<BÂB	c           
      ó´  — t        j                  d«       t        j                  t        j                  fD ]   }t        dd«      D ]�  }dD ]ˆ  }t        |«      t        j                  ||«      |z  z   j                  |«      }t        j                  |«      r|dt        j                  ||«      z  |z  z   }t        t        t        |«      «      |«       ŒŠ Œ‘ Œ¢ y )Nr-   r.   ri   )ç-Cëâ6?çü©ñÒMbP?rg   rh   r.   r   g      Y@rW   )r   r0   r    rn   rt   r1   r   ÚrandÚastypeÚiscomplexobjr	   r   r   )rP   r]   r#   rp   rD   s        r)   Útest_logm_consistencyzTestExpM.test_logm_consistency£   sº   € Ü�‰�DÔÜ—j‘j¤"§-¡-Ð0ò 	@ˆEÜ˜1˜b“\ò @�ØBò @�Eä˜Q›¤&§+¡+¨a°Ó"3°eÑ";Ñ;×CÑCÀEÓJ�AÜ—‘ qÔ)Ø ¤V§[¡[°°AÓ%6Ñ 6¸Ñ >Ñ>˜Ü-¬d´4¸³7«m¸QÕ?ñ@ñ@ñ	@r+   c                 óˆ   — t        j                  g d¢g d¢g d¢g d¢g«      }t        t        |«      t        d|z  «      «       y )N)éýÿÿÿr.   r.   r.   )r.   rŒ   r.   r.   )r.   r.   rŒ   r.   )r.   r.   r.   rŒ   ç      ð?)r    r   r   r   ©rP   ÚQs     r)   Útest_integer_matrixzTestExpM.test_integer_matrix®   s9   € Ü�H‰HÚÚÚÚð	ó ˆô
 	œ˜Q›¤ c¨A¡g£Õ/r+   c                 ó8  — t        j                  g d¢g d¢g d¢g d¢gt         j                  ¬«      }t        t	        |«      t	        d|z  «      «       t        |«      }t        t	        |«      j                  «       t	        d|z  «      j                  «       «       y )N)iþÿÿiô  r   r   )r   iÚýÿÿih  é¾   )r   iv  iŠýÿÿr   ©r   r   r   r   r\   r�   )r    r   Úint16r   r   r   r?   rŽ   s     r)   Útest_integer_matrix_2zTestExpM.test_integer_matrix_2¶   sq   € ä�H‰HÒ'Ú)Ú'Ú"ð$ô ,.¯8©8ô5ˆô 	œ˜Q›¤ c¨A¡g£Ô/ä�a‹LˆÜœ˜Q›Ÿ™Ó)¬4°°a±«=×+@Ñ+@Ó+BÕCr+   c                 óú  — t        j                  g d¢g d¢g d¢g d¢gt        ¬«      }t        j                  g d¢g d¢g d¢g d	¢gt        ¬«      }t        t	        |«      |d
¬«       t        j                  d«       d}|j                  «       }||d<   t        «       5 }|j                  t        d«       t	        |«      }d d d «       d
}d|z  }t        t        j                  |||¬«       «       y # 1 sw Y   Œ4xY w)N)g3d’‘³Ô?ç     LÝ@r—   r—   )r   gRal!ÈAÓ?r—   r—   )r   r   g“©‚QI�Ô?r—   )r   r   r   gÝ^Ò­Ó?r\   )g“Ø<’ò¿göGgÝx÷@g9‚¸=ÛðÁgý¯[d ðB)rN   gÐÈ'ÑV7ó¿gZºá¯…÷@gáÆ2pñÁ)rN   rN   gŽìÑ¤T ò¿g\Ge±ÎE÷@)rN   rN   rN   gPëÇ†!ßò¿r…   )Úrtolr-   g—ÔFFõg<)r.   r   zIll-conditioned.*rj   )r˜   Úatol)r    r   r_   r   r   r   r0   Úcopyr   r|   ÚRuntimeWarningr   Úallclose)	rP   rD   ÚA_logmÚtinyÚA_logm_perturbedr~   ÚA_expm_logm_perturbedr˜   r™   s	            r)   Útest_triangularity_perturbationz(TestExpM.test_triangularity_perturbationÁ   sú   € ô
 �H‰HÚ&Ú$Ú!Ú ð	"ô
 ôˆô —‘ò@ò@ò@ò@ðAô ô	ˆô 	œ˜V› a¨dÕ3ô 	�‰�DÔØˆØ!Ÿ;™;›=ÐØ!%Ð˜ÑÜÓ ð 	; CØ�J‰J”~Ð':Ô;Ü$(Ð)9Ó$:Ð!÷	;ð ˆØ�T‰zˆÜ”B—K‘KÐ 5°q¸tÈ$ÔOÐOÕP÷	;ð 	;ús   Â"C1Ã1C:c                 ó
  — t        j                  d«      }t        j                  d«      }t        j                  ddgddggt        ¬«      }t        j                  |dgd|ggt        ¬«      }t	        |«      }t        ||«       y )Nr.   r   r   r\   ©r    r   r   r_   r   r   )rP   Úexp1Úexp2rD   ÚdesiredÚactuals         r)   Útest_burkardt_1zTestExpM.test_burkardt_1å   s�   € ô6 �v‰v�a‹yˆÜ�v‰v�a‹yˆÜ�H‰HØ�ˆFØ�ˆFðô ôˆô —(‘(Ø�1ˆIØ�ˆIðô ôˆô �a“ˆÜ˜ Õ(r+   c                 ó¶   — t        j                  ddgddggt        ¬«      }t        j                  ddgddggt        ¬«      }t        |«      }t	        ||«       y )	Nr.   r[   r   r\   gkÔQ©C@gb¥”]IG@gd¥”]IG@g�÷Jó[K@©r    r   r_   r   r   ©rP   rD   r¦   r§   s       r)   Útest_burkardt_2zTestExpM.test_burkardt_2  sk   € ô �H‰HØ�ˆFØ�ˆFðô ôˆô —(‘(ØÐ!3Ð4ØÐ!3Ð4ðô ôˆô �a“ˆÜ˜ Õ(r+   c                 ó²  — t        j                  d«      }t        j                  d«      }t        j                  ddgddggt        ¬«      }t        j                  dd|z  z  dd|z  z  z
  t        j                  d«       d|z  z  gdt        j                  d«      z  d|z  z  d	d|z  z  dd|z  z  z   ggt        ¬«      }t        |«      }t        ||«       y )
Nr.   é'   r   iÙÿÿÿiØÿÿÿr\   é&   iÚÿÿÿéÿÿÿÿ)r    r   r   r_   Úexpm1r   r   )rP   r¤   Úexp39rD   r¦   r§   s         r)   Útest_burkardt_3zTestExpM.test_burkardt_3  sÞ   € ô �v‰v�a‹yˆÜ—‘�r“
ˆÜ�H‰HØ�ˆFØ�#ˆJðô ôˆô —(‘(à�B�t‘G‘˜q " U¡(™|Ñ+Ü—‘˜#“� " T¡'Ñ*ð,ð ”2—8‘8˜C“=Ñ  B t¡GÑ,Ø�B�t‘G‘˜r 2 e¡8™}Ñ,ð.ð	ô ôˆô �a“ˆÜ˜ Õ(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d
gddggt        ¬«      }t        j                  ddgt        ¬«      }t        j                  |t        j                  |«      z  |«      }t        |«      }t        ||«       y )NiÏÿÿÿé   iÀÿÿÿé   r\   r[   r.   r:   r   ç      à¿éþÿÿÿg      ø?iïÿÿÿr°   )r    r   r_   Údotr   r   r   )rP   rD   ÚUÚVÚwr¦   r§   s          r)   Útest_burkardt_4zTestExpM.test_burkardt_40  s©   € ô �H‰HØ�"ˆIØ�"ˆIðô ôˆô �H‰H�q˜!�f˜q !˜fÐ%¬UÔ3ˆÜ�H‰H�q˜$�i " c Ð+´5Ô9ˆÜ�H‰H�c˜2�Y¤eÔ,ˆÜ—&‘&˜œRŸV™V A›Y™¨Ó*ˆÜ�a“ˆÜ˜ Õ(r+   c                 óÎ   — t        j                  g d¢g d¢g d¢g d¢gt        ¬«      }t        j                  g d¢g d¢g d¢g d	¢gt        ¬«      }t        |«      }t	        ||«       y )
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.   rª   r«   s       r)   Útest_burkardt_5zTestExpM.test_burkardt_5?  sc   € ô
 �H‰HÚÚÚÚð	ô
 ôˆô —(‘(ÚÚÚÚð	ô
 ôˆô �a“ˆÜ˜ Õ(r+   c                 óà   — t        j                  d«      }t        j                  ddgddggt        ¬«      }t        j                  ||gd|ggt        ¬«      }t	        |«      }t        ||«       y ©Nr.   r   r\   r£   )rP   r¤   rD   r¦   r§   s        r)   Útest_burkardt_6zTestExpM.test_burkardt_6S  st   € ô �v‰v�a‹yˆÜ�H‰HØ�ˆFØ�ˆFðô ôˆô —(‘(Ø�4ˆLØ�ˆIðô ôˆô �a“ˆÜ˜ Õ(r+   c                 ó  — t        j                  d«      }t        j                  d«      }t        j                  d|z   dgdd|z
  ggt        ¬«      }t        j                  ||gd|ggt        ¬«      }t        |«      }t        ||«       y rÄ   )r    r   Úspacingr   r_   r   r   )rP   r¤   ÚepsrD   r¦   r§   s         r)   Útest_burkardt_7zTestExpM.test_burkardt_7c  s‰   € ô
 �v‰v�a‹yˆÜ�j‰j˜‹mˆÜ�H‰HØ�‰W�aˆLØ��C‘ˆLðô ôˆô —(‘(Ø�4ˆLØ�ˆIðô ôˆô �a“ˆÜ˜ Õ(r+   c                 ó”  — t        j                  d«      }t        j                  d«      }t        j                  g d¢g d¢g d¢gt        ¬«      }t        j                  d|z  |z
  d|z  d|z  z
  d	|z  d	|z  z
  gd
|z  |z   d
|z  d|z  z   d|z  d	|z  z   gd|z  d|z  d|z  ggt        ¬«      dz  }t	        |«      }t        ||«       y )Nr:   é   )é   é   r;   )éûÿÿÿr°   iúÿÿÿ)r:   r:   rË   r\   é   r/   r   i÷ÿÿÿr¸   g      Ð?r£   )rP   Úexp4Úexp16rD   r¦   r§   s         r)   Útest_burkardt_8zTestExpM.test_burkardt_8u  sä   € ä�v‰v�a‹yˆÜ—‘�r“
ˆÜ�H‰HÚÚÚðô ô	ˆô
 —(‘(Ø�‰X˜‰_˜b ™h¨¨4©Ñ/°°5±¸1¸T¹6Ñ1AÐBØ�‰X˜‰_˜b ™h¨¨4©Ñ/°°E±¸A¸d¹FÑ1BÐCØ�‰X�r˜%‘x  5¡Ð)ðô ô	ð #ñ	#ˆô
 �a“ˆÜ˜ Õ(r+   c                 óÎ   — t        j                  g d¢g d¢g d¢g d¢gt        ¬«      }t        j                  g d¢g d¢g d¢g d	¢gt        ¬«      }t        |«      }t	        ||«       y )
N)r.   r   r   r   )r[   r.   r.   r   )r[   r   r.   r   )r[   r[   r[   r.   r\   )çf÷äa¡%‡@çÍÌÌÌÌƒ@çXÊ2Ä1ò€@gé·¯g)�@)ç^ºIÚ†@ç|ò°PkÜ‚@g»'µ¸€@rÖ   )çÉv¾Ÿ¾‰@gBÏfÕg;…@rØ   rÕ   )gD‹lç{3�@rÙ   r×   rÔ   rª   r«   s       r)   Útest_burkardt_9zTestExpM.test_burkardt_9†  sc   € ô �H‰HÚÚÚÚð	ô
 ôˆô —(‘(Ú4Ú4Ú4Ú4ð	ô
 ôˆô �a“ˆÜ˜ Õ(r+   c                 ó&  — t        j                  g d¢g d¢g d¢gt        ¬«      }t        t	        t
        j                  j                  |«      «      d«       t        j                  g d¢g d¢g d¢gt        ¬«      }t        |«      }t        ||«       y )	N)r:   r   r   )r.   r:   r.   )r.   r.   r:   r\   )r[   r[   r;   )gl$ÿ^»{b@çÔá
|øf@g•õ.”óQ@)gœ\"Nýñ_@rÜ   gØá
|øV@)g£\"Nýñ_@g¶ëL¿ud@gÎæsõý[@©	r    r   r_   r   ÚsortedÚscipyr2   Úeigvalsr   r«   s       r)   Útest_burkardt_10zTestExpM.test_burkardt_10˜  s{   € ô �H‰HÚÚÚðô ô	ˆô
 	œœuŸ|™|×3Ñ3°AÓ6Ó7¸ÔCÜ—(‘(ÚEÚEÚEðô ô	ˆô
 �a“ˆÜ˜ Õ(r+   c                 ó  — t        j                  g d¢g d¢g d¢gt        ¬«      }t        t        j
                  j                  |«      d«       t        j                  g d¢g d¢g d¢gt        ¬«      }t        |«      }t        ||«       y )	N)gáìÀ!á=@çøl‘À©é?çQ°Š€ïPÀ)rã   gºŒ²t º9@çŒ½èª‰\!@)rä   rå   g®®0ån2A@r\   )é   é   é(   )gÚÉÒJÞ†3Cg…;%s1PÃçêMSUc[Ã)gˆ;%s1PÃgcx
MêjCç ÈOÆ}vC)ré   rê   gýÁãõ¢Ë‚C)r    r   r_   r   rß   r2   Úeigvalshr   r«   s       r)   Útest_burkardt_11zTestExpM.test_burkardt_11©  s|   € ô �H‰HÚGÚFÚFðô ô	ˆô
 	œŸ™×-Ñ-¨aÓ0°,Ô?Ü—(‘(ò)ò'ò'ðô ôˆô �a“ˆÜ˜ Õ(r+   c                 ó&  — t        j                  g d¢g d¢g d¢gt        ¬«      }t        t	        t
        j                  j                  |«      «      d«       t        j                  g d¢g d¢g d¢gt        ¬«      }t        |«      }t        ||«       y )	N)i}ÿÿÿé   r¿   )izþÿÿé8   é6   )i}þÿÿé9   é4   r\   )iìÿÿÿr¸   r°   )g¹Ò)¢€'ø¿g£1ö3V‹×?g¿-RŸªRÁ?)gñÀÇ£À‡ÀgÑ×ƒ4V‹÷?g±3ûîÿûÙ?)gWNùx`½Àgp¢ø¦€¨ñ?gë}m ªRá?rÝ   r«   s       r)   Útest_burkardt_12zTestExpM.test_burkardt_12Ã  s{   € ô �H‰HÚÚÚðô ô	ˆô
 	œœuŸ|™|×3Ñ3°AÓ6Ó7¸ÔGÜ—(‘(ÚHÚGÚGðô ô	ˆô
 �a“ˆÜ˜ Õ(r+   c                 ól  — t        dd«      }g d¢g d¢g d¢g d¢g}t        ||«       dD �]  }t        dt        t	        j
                  d|z  «      «      «      }t	        j                  ||ft        ¬	«      }t        ||z  «      D ]‹  }t        ||«      }t        t	        j                  |«      d
«       t        t	        j                  |«      t	        j                  dt	        j                  ||z  «       |z  «      «       ||t        |«      z  z  }Œ� t        t        |d«      «      }t        ||«       �Œ y )Nr:   r.   )r   r.   r   r   )r   r   r.   r   rÁ   )r…   r   r   r   )r   r[   r:   ri   rË   r\   r   ri   )r*   r   Úmaxr   r    ÚceilÚzerosr_   r1   r
   Úminr!   Úfloorr   r   )	rP   Ú	A4_actualÚ
A4_desiredr#   Úkr¦   r$   ÚApr§   s	            r)   Útest_burkardt_13zTestExpM.test_burkardt_13Õ  s  € ô ' q¨!Ó,ˆ	Ú"Ú"Ú"Ú%ð'ˆ
ô 	˜	 :Ô.àó 	-ˆAô �A”sœ2Ÿ7™7 2 a¡4›=Ó)Ó*ˆAÜ—h‘h  1˜v¬UÔ3ˆGÜ˜1˜Q™3“Zò -�Ü'¨¨1Ó-�ÜœRŸV™V B›Z¨Ô+Ü¤§¡ r£
¬B¯H©H°R¼"¿(¹(À1ÀQÁ3»-¸ÈÑ9IÓ,JÔKØ˜2¤	¨!£Ñ,Ñ,‘ð	-ô
 Ô,¨Q°Ó2Ó3ˆFÜ˜F GÖ,ñ	-r+   c                 óÂ   — t        j                  g d¢g d¢g d¢gt        ¬«      }t        j                  g d¢g d¢g d¢gt        ¬«      }t        |«      }t	        ||«       y )N)r   g:Œ0âŽyE>r   )g«ªª"D°ÂrŒ   g    _ B)g«ªªªªªP@r   g«ªªªªªPÀr\   )gí· ƒ.™Ü?gÜzDïv>g1òOî³žÝ?)gÜýâñvèUÁgÔ°g²L�¿gÓ@ž­sDQÁ)gø âF~§Ü?ggÒ=ã€>gcŠE½ª©Ý?rª   r«   s       r)   Útest_burkardt_14zTestExpM.test_burkardt_14ô  s]   € ô �H‰HÚÚ(Ú"ðô ô	ˆô
 —(‘(ÚHÚGÚHðô ô	ˆô
 �a“ˆÜ˜ Õ(r+   c           	      ó$  — dD �]
  }t        ddd«      D ]÷  }|t        j                  |dd«      z  }t        j                  |dk  «      r ŒHt        j                  t        j                  d|dz   «      d«      |z  }t        |«      }|}t        t        j                  |dz   «      d d …d f   t        j                  |dz   «      d d d …f   «      |d d d …f   z  |d d …d f   z  }dt        |«      j                  «       z  }t        |||¬	«       Œù �Œ y )
N)r�   r†   g�íµ ÷Æ°>r   éP   r[   r°   gYóøÂn¥r.   g‚vIhÂ%<=)r™   )
r1   r    ÚarangeÚanyr"   r   r   Úabsrõ   r   )	rP   rp   r#   ÚscrD   rX   Úgotr7   r™   s	            r)   Útest_pascalzTestExpM.test_pascal  s  € ð 'ó 	:ˆEÜ˜1˜b !“_ò :�ØœbŸi™i¨¨2¨rÓ2Ñ2�Ü—6‘6˜"˜v™+Ô&Ùä—G‘GœBŸI™I a¨¨Q©Ó/°Ó4°uÑ<�Ü˜“G�à�Ü ¤§¡¨1¨q©5Ó!1²!°D°&Ñ!9Ü!#§¡¨1¨q©5Ó!1°$²q°&Ñ!9ó;Ø=?ÀÂQÀ¹ZñHØJLÊQÈtÈVÉ*ñU�àœs 8›}×0Ñ0Ó2Ñ2�Ü  X°DÖ9ò:ñ	:r+   c                 ó8  — t        j                  d«      }d|d<   t        |«      }t        «       5 }|j	                  t
        d«       |j	                  t        d«       t        t        j                  |«      «      }d d d «       t        |«       y # 1 sw Y   ŒxY w)N)éÈ   r
  r.   )r°   r   zthe matrix subclass.*)	r    r÷   r   r   r|   ÚDeprecationWarningÚPendingDeprecationWarningr   r   )rP   rD   ÚB0r~   rX   s        r)   Útest_matrix_inputzTestExpM.test_matrix_input  s}   € ä�H‰H�ZÓ ˆØˆˆ$‰Ü�!‹WˆÜÓ ð 	# CØ�J‰JÔ)Ð+BÔCØ�J‰JÔ0Ð2IÔJÜ”R—Y‘Y˜q“\Ó"ˆA÷	#ô 	˜˜2Õ÷		#ð 	#ús   °ABÂBc           
      óÒ   — t        j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g«      }t        | «      }t        d|z  «      }|}t        d«      D ]  }||z  }Œ	 t	        ||«       y )N)r�   r·   r·   rN   rN   rN   rN   )rN   r�   rN   r·   r·   rN   rN   )rN   rN   r�   rN   rN   r·   r·   )rN   rN   rN   rN   rN   rN   rN   i øÿÿé   )r    r   r   r1   r   )rP   ÚLÚE0ÚE1ÚE2Újs         r)   Útest_exp_sinch_overflowz TestExpM.test_exp_sinch_overflow"  sr   € ä�H‰HÒ;Ú;Ú;Ú9Ú9Ú9Ú9ð;ó <ˆô �1�"‹XˆÜ�&˜1‘*ÓˆØˆÜ�r“ò 	ˆAØ�b‘‰Bð	ô 	˜˜BÕr+   N)!Ú__name__Ú
__module__Ú__qualname__rQ   rS   rU   rY   rc   rq   ru   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)   rK   rK   T   s¢   „ ò9òCò9ò>ò6òMòMòIòOò	@ò0ò	Dò"QòH&)òP)ò)ò*)ò)ò()ò )ò$)ò")ò$)ò")ò4)ò$-ò>)ò :ò&	ó r+   rK   c                   ó   — e Zd Zd„ Zd„ Zy)ÚTestOperatorsc                 óÀ  — t        j                  d«       d}d}d}t        |«      D �]4  }t        j                   j	                  ||«      }t        j                   j	                  ||«      }t        j                   j	                  ||«      }t        j                   j	                  ||«      }t        |||«      }	t        |	j                  |«      |j                  |«      j                  |«      j                  |«      «       t        |	j                  j                  |«      |j                  |«      j                  |«      j                  j                  |«      «       �Œ7 y )Nr-   r/   r   ri   )
r   r0   r1   r    Úrandnr   r   Úmatmatr¹   ÚT)
rP   r#   rü   ÚnsamplesÚirD   rX   ÚCÚDÚops
             r)   Útest_product_operatorz#TestOperators.test_product_operator7  sô   € Ü�‰�DÔØˆØˆØˆÜ�x“ó 	HˆAÜ—	‘	—‘  1Ó%ˆAÜ—	‘	—‘  1Ó%ˆAÜ—	‘	—‘  1Ó%ˆAÜ—	‘	—‘  1Ó%ˆAÜ   A qÓ)ˆBÜ˜BŸI™I a›L¨!¯%©%°«(¯,©,°q«/×*=Ñ*=¸aÓ*@ÔAÜ˜BŸD™DŸK™K¨›N¨Q¯U©U°1«X¯\©\¸!«_×,?Ñ,?×,CÑ,CÀAÓ,FÖGñ	Hr+   c                 ó>  — t        j                  d«       d}d}d}d}t        |«      D ]ò  }t        j                   j	                  ||«      }t        j                   j	                  ||«      }t        ||«      }t        |j                  |«      t        j                  j                  ||«      j                  |«      «       t        |j                  j                  |«      t        j                  j                  ||«      j                  j                  |«      «       Œô y )Nr-   r/   r   r[   ri   )r   r0   r1   r    r  r   r   r  r2   r   r¹   r   )	rP   r#   rü   r$   r!  r"  rD   rX   r%  s	            r)   Útest_matrix_power_operatorz(TestOperators.test_matrix_power_operatorE  sÑ   € Ü�‰�DÔØˆØˆØˆØˆÜ�x“ò 	SˆAÜ—	‘	—‘  1Ó%ˆAÜ—	‘	—‘  1Ó%ˆAÜ$ Q¨Ó*ˆBÜ˜BŸI™I a›L¬"¯)©)×*@Ñ*@ÀÀAÓ*F×*JÑ*JÈ1Ó*MÔNÜ˜BŸD™DŸK™K¨›N¬B¯I©I×,BÑ,BÀ1ÀaÓ,H×,JÑ,J×,NÑ,NÈqÓ,QÕRñ	Sr+   N)r  r  r  r&  r(  r  r+   r)   r  r  5  s   „ òHóSr+   r  ))Ú__doc__r`   Únumpyr    r   r   r   r   Únumpy.testingr   r   r	   r
   r   r   Úscipy.sparser   r   Úscipy.sparse._constructr   Úscipy.sparse.linalg._matfuncsr   r   r   r   r   r   Úscipy.sparse._sputilsr   Úscipy.linalgr   Úscipy.specialr   r   rß   Úscipy.sparse.linalgr*   r8   rI   rK   r  r  r+   r)   ú<module>r3     sn   ðñó ã ß )Ó )÷;÷ ;÷ <Ý -÷1÷ 1õ )Ý ß *Û Û ò?ò@0ò(÷^ ñ ^ ÷BSò Sr+   