§
    µ³Ùgì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(dS )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          | ¦  «        k    s| dk     rt          d¦  «        ‚t          | ¦  «        } |t          |¦  «        k    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         ú]/granary/edev/quantum/lib/python3.11/site-packages/scipy/sparse/linalg/tests/test_matfuncs.pyÚ_burkardt_13_powerr*      sß   € ð$ 	�C�‰FŒF‚{€{�a˜!’e�eÝÐ>Ñ?Ô?Ð?ÝˆA‰Œ€AØ�C�‰FŒF‚{€{�a˜!’e�eÝÐ;Ñ<Ô<Ð<ÝˆA‰Œ€Aõ �!�Q‰<Œ<�D€A€qÝŒH�T˜A˜2˜a™4Ñ Ô €EØ•B”H˜T A 2Ñ&Ô&Ñ&€EÝŒ7�E�7˜A˜a™C‘= !Ñ$Ô$¥r¤w°¨w°q©y¸!¸A¹#Ñ'>Ô'>Ñ>Ð>ó    c                  ó�  — t           j                             d¦  «         t          dd¦  «        D ]•} t          d¦  «        D ]ƒ}t           j                             | | f¦  «        }t           j                             ||¦  «        }t          ||¦  «        }t           j                             |d¦  «        }t          ||¦  «         Œ„Œ–d S )NéÒ  é   é   )	r    r   ÚseedÚrangeÚlinalgr   r   Únormr   )r#   r$   ÚMÚMpÚobservedÚexpecteds         r)   Útest_onenorm_matrix_power_nnmr8   ;   s¸   € Ý„I‡N‚N�4ÑÔÐÝ�1�a‰[Œ[ð 0ð 0ˆÝ�q‘”ð 	0ð 	0ˆAÝ”	× Ò  ! Q Ñ(Ô(ˆAÝ”×'Ò'¨¨1Ñ-Ô-ˆBÝ0°°AÑ6Ô6ˆHÝ”y—~’~ b¨!Ñ,Ô,ˆHÝ˜H hÑ/Ô/Ð/Ð/ð	0ð0ð 0r+   c                  ó\  — t           j                             d¦  «         t           j                             ddd¬¦  «        \  } }t           j                             d¬¦  «        }t	          || |ffd¬¦  «        }t	          || |ffd¬¦  «        }|                     ¦   «         }d	D ]†}t          ||¦  «                             ¦   «         }t          ||¦  «                             ¦   «         }t           j                             ||¦  «        }	t          ||	¦  «         t          ||¦  «         Œ‡d S )
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‡N‚N�4ÑÔÐÝŒy× Ò   A¨FÐ Ñ3Ô3�H€CˆÝŒ9×Ò ÐÑ&Ô&€DÝ�d˜S #˜JÐ'¨vÐ6Ñ6Ô6€DÝ�4˜#˜s˜Ð$¨FÐ3Ñ3Ô3€AØ�YŠY‰[Œ[€FØð (ð (ˆÝ˜A˜uÑ%Ô%×-Ò-Ñ/Ô/ˆÝ  eÑ,Ô,×4Ò4Ñ6Ô6ˆÝ”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 dS ) ÚTestExpMc                 óv   — t          ddgddgg¦  «        }t          t          |¦  «        ddgddgg¦  «         d S ©Nç        r   r.   )r   r	   r   ©Úselfr%   s     r)   Útest_zero_ndarrayzTestExpM.test_zero_ndarrayU   sC   € Ý�B�q�6˜1˜Q˜%�.Ñ!Ô!ˆÝ!¥$ q¡'¤'¨A¨a¨5°!°A°¨-Ñ8Ô8Ð8Ð8Ð8r+   c                 óš   — t          ddgddgg¦  «        }t          t          |¦  «                             ¦   «         ddgddgg¦  «         d S rM   )r   r	   r   r?   rO   s     r)   Útest_zero_sparsezTestExpM.test_zero_sparseY   sM   € Ý˜˜1�v˜q ˜e�nÑ%Ô%ˆÝ!¥$ q¡'¤'§/¢/Ñ"3Ô"3°a¸°U¸A¸a¸5°MÑBÔBÐBÐBÐBr+   c                 óv   — t          ddgddgg¦  «        }t          t          |¦  «        ddgddgg¦  «         d S rM   )r   r	   r   rO   s     r)   Útest_zero_matrixzTestExpM.test_zero_matrix]   sC   € Ý�R˜�F˜A˜a˜5�>Ñ"Ô"ˆÝ!¥$ q¡'¤'¨A¨a¨5°!°A°¨-Ñ8Ô8Ð8Ð8Ð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¦  «        ¦  «                             ¦   «         |¦  «         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¦  «        ¦  «                             ¦   «         |¦  «         d S )Nr.   ))r.   ù              ð?))rW   )r   r    r   r   r   r   r?   )rP   rD   ÚBs      r)   Útest_misc_typeszTestExpM.test_misc_typesa   sd  € Ý•”˜A˜3˜%‘”Ñ!Ô!ˆÝ�˜W™œ qÑ)Ô)Ð)Ý�˜q˜c˜U™œ QÑ'Ô'Ð'Ý��V a S E™]œ]Ñ+Ô+¨QÑ/Ô/Ð/Ý��RœX¨ s e™_œ_Ñ-Ô-¨qÑ1Ô1Ð1Ý��Y¨¨ uÑ-Ô-Ñ.Ô.×6Ò6Ñ8Ô8¸!Ñ<Ô<Ð<Ý•”˜B˜4˜&Ñ!Ô!Ñ"Ô"ˆÝ�˜X™œ¨Ñ*Ô*Ð*Ý�˜r˜d˜V™œ aÑ(Ô(Ð(Ý��V b T F™^œ^Ñ,Ô,¨aÑ0Ô0Ð0Ý��Y¨¨ vÑ.Ô.Ñ/Ô/×7Ò7Ñ9Ô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          |¦  «                             ¦   «         }t          ||¦  «         d S )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Ó   € ÝØˆIˆIØˆIˆIØˆIˆIðõ $ð%ñ %ô %ˆõ ŒX�a‰[Œ[ˆÝŒX�a‰[Œ[ˆÝ”8Ø��2‘�r˜2  "¡™9‘~Ð&Ø��A�r˜B‘w‘KÐ Ø��2ˆJðõ  %ð&ñ &ô &ˆõ ˜‘7”7—?’?Ñ$Ô$ˆÝ! (¨HÑ5Ô5Ð5Ð5Ð5r+   c                 óö   — t           j        t           j        fD ]_}dD ]Z}|t          d|¬¦  «        z  }t	          |¦  «        }t          ||¬¦  «        t          d|¬¦  «        z  }t          ||d¬¦  «         Œ[Œ`d S ©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|   s�   € Ý”j¥"¤*Ð-ð 	Mð 	MˆEØ2ð Mð M�Ø�C ¨Ð/Ñ/Ô/Ñ/�Ý ™7œ7�Ý˜u¨EÐ2Ñ2Ô2µS¸À%Ð5HÑ5HÔ5HÑH�Ý.¨x¸ÈÐLÑLÔLÐLÐLð	Mð	Mð 	Mr+   c                 óö   — t           j        t           j        fD ]_}dD ]Z}|t          d|¬¦  «        z  }t	          |¦  «        }t          ||¬¦  «        t          d|¬¦  «        z  }t          ||d¬¦  «         Œ[Œ`d S re   )r    Ú	complex64Ú
complex128r   r   r   r   ro   s         r)   Útest_padecases_dtype_complexz%TestExpM.test_padecases_dtype_complex„   s�   € Ý”l¥B¤MÐ2ð 	Mð 	MˆEØ2ð Mð M�Ø�C ¨Ð/Ñ/Ô/Ñ/�Ý ™7œ7�Ý˜u¨EÐ2Ñ2Ô2µS¸À%Ð5HÑ5HÔ5HÑH�Ý.¨x¸ÈÐLÑLÔLÐLÐLð	Mð	Mð 	Mr+   c                 óð  — t           j        }dD ]æ}|t          dd|d¬¦  «        z  }t          ||¬¦  «        t	          d|¬¦  «        z  }t          ¦   «         5 }|                     t          d¦  «         t          |d¬¦  «         	                    ¦   «         }t          |d	¬¦  «         	                    ¦   «         }d d d ¦  «         n# 1 swxY w Y   t          ||d
¬¦  «         t          ||d
¬¦  «         Œçd S )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Œ   sT  € å”
ˆØ.ð 	Ið 	IˆEØ�	 ! Q¨e¸EÐBÑBÔBÑBˆAÝ�E Ð'Ñ'Ô'­#¨a°uÐ*=Ñ*=Ô*=Ñ=ˆAÝ"Ñ$Ô$ð N¨Ø—
’
Õ2Ð4UÑVÔVÐVÝ % a¸4Ð @Ñ @Ô @× HÒ HÑ JÔ J�Ý"'¨¸UÐ"CÑ"CÔ"C×"KÒ"KÑ"MÔ"M�ðNð Nð Nñ Nô Nð Nð Nð Nð Nð Nð Nøøøð Nð Nð Nð Nõ +¨=¸!À#ÐFÑFÔFÐFÝ*¨?¸AÀCÐHÑHÔHÐHÐHð	Ið 	Is   ÁA"CÃC
	ÃC
	c                 óz  — t           j        }dD ]«}|t          dd|d¬¦  «        z  }t          |¦  «        t	          d|¬¦  «        z  }t          ¦   «         5 }|                     t          d¦  «         t          t          |¦  «         
                    ¦   «         |d¬¦  «         d d d ¦  «         n# 1 swxY w Y   Œ¬d S )	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ð 	OˆEØ�	 ! Q¨e¸EÐBÑBÔBÑBˆAÝ�E‘
”
�S ¨%Ð0Ñ0Ô0Ñ0ˆAÝ"Ñ$Ô$ð O¨Ø—
’
Õ2Ð4UÑVÔVÐVÝ.­t°A©w¬w¯ªÑ/@Ô/@À!È#ÐNÑNÔNÐNðOð Oð Oñ Oô Oð Oð Oð Oð Oð Oð Oøøøð Oð Oð Oð Oøð	Oð 	Os   ÁAB/Â/B3	Â6B3	c           
      óÂ  — t          j        d¦  «         t          j        t          j        fD ]±}t          dd¦  «        D ]ž}dD ]™}t          |¦  «        t          j        ||¦  «        |z  z                        |¦  «        }t          j	        |¦  «        r|dt          j        ||¦  «        z  |z  z   }t          t          t          |¦  «        ¦  «        |¦  «         ŒšŒŸŒ²d S )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¥"¤-Ð0ð 	@ð 	@ˆEÝ˜1˜b‘\”\ð @ð @�ØBð @ð @�Eå˜Q™œ¥&¤+¨a°Ñ"3Ô"3°eÑ";Ñ;×CÒCÀEÑJÔJ�AÝ” qÑ)Ô)ð ?Ø ¥V¤[°°AÑ%6Ô%6Ñ 6¸Ñ >Ñ>˜Ý-­dµ4¸±7´7©m¬m¸QÑ?Ô?Ð?Ð?ð@ð@ð	@ð 	@r+   c                 ó    — t          j        g d¢g d¢g d¢g d¢g¦  «        }t          t          |¦  «        t          d|z  ¦  «        ¦  «         d S )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®   s\   € ÝŒHØˆMˆMØˆMˆMØˆMˆMØˆMˆMð	ñ ô ˆõ
 	�˜Q™œ¥ c¨A¡g¡¤Ñ/Ô/Ð/Ð/Ð/r+   c                 óx  — t          j        g d¢g d¢g d¢g d¢gt           j        ¬¦  «        }t          t	          |¦  «        t	          d|z  ¦  «        ¦  «         t          |¦  «        }t          t	          |¦  «                             ¦   «         t	          d|z  ¦  «                             ¦   «         ¦  «         d S )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¶   s¯   € åŒHÐ'Ð'Ð'Ø)Ð)Ð)Ø'Ð'Ð'Ø"�l�lð$õ ,.¬8ð5ñ 5ô 5ˆõ 	�˜Q™œ¥ c¨A¡g¡¤Ñ/Ô/Ð/å�a‰LŒLˆÝ�˜Q™œŸšÑ)Ô)­4°°a±©=¬=×+@Ò+@Ñ+BÔ+BÑCÔCÐCÐCÐCr+   c                 ó8  — 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}|                     ¦   «         }||d<   t          ¦   «         5 }| 	                    t          d¦  «         t	          |¦  «        }d d d ¦  «         n# 1 swxY w Y   d
}d|z  }t          t          j        ||||¬¦  «         ¦  «         d S )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Ø&Ð&Ð&Ø$Ð$Ð$Ø!Ð!Ð!Ø Ð Ð ð	"õ
 ðñ ô ˆõ ”ð@ð @ð @ð@ð @ð @ð@ð @ð @ð@ð @ð @ðAõ ð	ñ 	ô 	ˆõ 	�˜V™œ a¨dÐ3Ñ3Ô3Ð3õ 	Œ�DÑÔÐØˆØ!Ÿ;š;™=œ=ÐØ!%Ð˜ÑÝÑ Ô ð 	; CØ�JŠJ•~Ð':Ñ;Ô;Ð;Ý$(Ð)9Ñ$:Ô$:Ð!ð	;ð 	;ð 	;ñ 	;ô 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;øøøð 	;ð 	;ð 	;ð 	;ð ˆØ�T‰zˆÝ•B”KÐ 5°q¸tÈ$ÐOÑOÔOÐOÑPÔPÐPÐPÐPs   Â++C"Ã"C&Ã)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          ||¦  «         d S )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�a‰yŒyˆÝŒv�a‰yŒyˆÝŒ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	          ||¦  «         d S )	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  s‰   € õ Œ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          ||¦  «         d S )
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�a‰yŒyˆÝ”�r‘
”
ˆÝŒHØ�ˆFØ�#ˆJðõ ðñ ô ˆõ ”(à�B�t‘G‘˜q " U¡(™|Ñ+Ý”˜#‘”� " T¡'Ñ*ð,ð •2”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          ||¦  «         d S )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Ø�"ˆIØ�"ˆIðõ ðñ ô ˆõ ŒH�q˜!�f˜q !˜fÐ%­UÐ3Ñ3Ô3ˆÝŒH�q˜$�i " c Ð+µ5Ð9Ñ9Ô9ˆÝŒH�c˜2�Y¥eÐ,Ñ,Ô,ˆÝ”&˜�RœV A™Yœ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	          ||¦  «         d S )
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?  s¡   € õ
 ŒHØˆLˆLØˆLˆLØˆLˆLØˆLˆLð	õ
 ðñ ô ˆõ ”(ØˆNˆNØˆMˆMØˆLˆLØˆLˆLð	õ
 ðñ ô ˆõ �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          ||¦  «         d S ©Nr.   r   r\   r£   )rP   r¤   rD   r¦   r§   s        r)   Útest_burkardt_6zTestExpM.test_burkardt_6S  s’   € õ Œv�a‰yŒyˆÝŒ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          ||¦  «         d S rÄ   )r    r   Úspacingr   r_   r   r   )rP   r¤   ÚepsrD   r¦   r§   s         r)   Útest_burkardt_7zTestExpM.test_burkardt_7c  s§   € õ
 Œv�a‰yŒyˆÝŒj˜‰mŒmˆÝŒ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          ||¦  «         d S )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�a‰yŒyˆÝ”�r‘
”
ˆÝŒHØˆKˆKØˆLˆLØˆJˆJðõ ð	ñ ô ˆõ
 ”(Ø�‰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	          ||¦  «         d S )
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†  s©   € õ ŒHØˆLˆLØˆLˆLØˆLˆLØˆLˆLð	õ
 ðñ ô ˆõ ”(Ø4Ð4Ð4Ø4Ð4Ð4Ø4Ð4Ð4Ø4Ð4Ð4ð	õ
 ðñ ô ˆõ �a‘”ˆÝ˜ Ñ(Ô(Ð(Ð(Ð(r+   c                 óH  — t          j        g d¢g d¢g d¢gt          ¬¦  «        }t          t	          t
          j                             |¦  «        ¦  «        d¦  «         t          j        g d¢g d¢g d¢gt          ¬¦  «        }t          |¦  «        }t          ||¦  «         d S )	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ØˆIˆIØˆIˆIØˆIˆIðõ ð	ñ ô ˆõ
 	��uœ|×3Ò3°AÑ6Ô6Ñ7Ô7¸ÑCÔCÐCÝ”(ØEÐEÐEØEÐEÐEØEÐEÐEðõ ð	ñ ô ˆõ
 �a‘”ˆÝ˜ Ñ(Ô(Ð(Ð(Ð(r+   c                 ó.  — t          j        g d¢g d¢g d¢gt          ¬¦  «        }t          t          j                             |¦  «        d¦  «         t          j        g d¢g d¢g d¢gt          ¬¦  «        }t          |¦  «        }t          ||¦  «         d S )	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ØGÐGÐGØFÐFÐFØFÐFÐFðõ ð	ñ ô ˆõ
 	�œ×-Ò-¨aÑ0Ô0°,Ñ?Ô?Ð?Ý”(ð)ð )ð )ð'ð 'ð 'ð'ð 'ð 'ðõ ðñ ô ˆõ �a‘”ˆÝ˜ Ñ(Ô(Ð(Ð(Ð(r+   c                 óH  — t          j        g d¢g d¢g d¢gt          ¬¦  «        }t          t	          t
          j                             |¦  «        ¦  «        d¦  «         t          j        g d¢g d¢g d¢gt          ¬¦  «        }t          |¦  «        }t          ||¦  «         d S )	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ØˆNˆNØˆNˆNØˆNˆNðõ ð	ñ ô ˆõ
 	��uœ|×3Ò3°AÑ6Ô6Ñ7Ô7¸ÑGÔGÐGÝ”(ØHÐHÐHØGÐGÐGØGÐGÐGðõ ð	ñ ô ˆõ
 �a‘”ˆÝ˜ Ñ(Ô(Ð(Ð(Ð(r+   c                 ó¼  — 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          ||¦  «         �Œ+d S )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Õ  sW  € õ ' q¨!Ñ,Ô,ˆ	Ø"�l�lØ"�l�lØ"�l�lØ%�o�oð'ˆ
õ 	˜	 :Ñ.Ô.Ð.àð 	-ñ 	-ˆAõ �A•s�2œ7 2 a¡4™=œ=Ñ)Ô)Ñ*Ô*ˆAÝ”h  1˜v­UÐ3Ñ3Ô3ˆGÝ˜1˜Q™3‘Z”Zð -ð -�Ý'¨¨1Ñ-Ô-�Ý�RœV B™ZœZ¨Ñ+Ô+Ð+Ý¥¤ r¡
¤
­B¬H°R½"¼(À1ÀQÁ3¹-¼-¸ÈÑ9IÑ,JÔ,JÑKÔKÐKØ˜2¥	¨!¡¤Ñ,Ñ,��ÝÕ,¨Q°Ñ2Ô2Ñ3Ô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	          ||¦  «         d S )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ØˆLˆLØ(Ð(Ð(Ø"Ð"Ð"ðõ ð	ñ ô ˆõ
 ”(ØHÐHÐHØGÐGÐGØHÐHÐHðõ ð	ñ ô ˆõ
 �a‘”ˆÝ˜ Ñ(Ô(Ð(Ð(Ð(r+   c           	      ó`  — dD �])}t          ddd¦  «        D �]}|t          j        |dd¦  «        z  }t          j        |dk     ¦  «        r nßt          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          |¦  «                             ¦   «         z  }t          |||¬	¦  «         �Œ�Œ+d S )
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  sH  € ð 'ð 	:ñ 	:ˆEÝ˜1˜b !‘_”_ð :ñ :�Ø�bœi¨¨2¨rÑ2Ô2Ñ2�Ý”6˜"˜vš+Ñ&Ô&ð Ø�Eå”G�BœI a¨¨Q©Ñ/Ô/°Ñ4Ô4°uÑ<�Ý˜‘G”G�à�Ý ¥¤¨1¨q©5Ñ!1Ô!1°!°!°!°D°&Ô!9Ý!#¤¨1¨q©5Ñ!1Ô!1°$°q°q°q°&Ô!9ñ;ô ;Ø=?ÀÀQÀQÀQÀ¼ZñHØJLÈQÈQÈQÈtÈVÌ*ñU�à�s 8™}œ}×0Ò0Ñ2Ô2Ñ2�Ý  X°DÐ9Ñ9Ô9Ð9Ñ9ùð	:ð 	:r+   c                 óp  — t          j        d¦  «        }d|d<   t          |¦  «        }t          ¦   «         5 }|                     t
          d¦  «         |                     t          d¦  «         t          t          j        |¦  «        ¦  «        }d d d ¦  «         n# 1 swxY w Y   t          ||¦  «         d S )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�ZÑ Ô ˆØˆˆ$‰Ý�!‰WŒWˆÝÑ Ô ð 	# CØ�JŠJÕ)Ð+BÑCÔCÐCØ�JŠJÕ0Ð2IÑJÔJÐJÝ•R”Y˜q‘\”\Ñ"Ô"ˆAð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#õ 	˜˜2ÑÔÐÐÐs   ·ABÂ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	          ||¦  «         d S )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"  s²   € åŒHÐ;Ð;Ð;Ø;Ð;Ð;Ø;Ð;Ð;Ø9Ð9Ð9Ø9Ð9Ð9Ø9Ð9Ð9Ø9Ð9Ð9ð;ñ <ô <ˆõ �1�"‰XŒXˆÝ�&˜1‘*ÑÔˆØˆÝ�r‘”ð 	ð 	ˆAØ�b‘ˆ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ð 9ð 9ðCð Cð Cð9ð 9ð 9ð>ð >ð >ð6ð 6ð 6ðMð Mð MðMð Mð MðIð Ið IðOð Oð Oð	@ð 	@ð 	@ð0ð 0ð 0ð	Dð 	Dð 	Dð"Qð "Qð "QðH&)ð &)ð &)ðP)ð )ð )ð)ð )ð )ð*)ð )ð )ð)ð )ð )ð()ð )ð )ð )ð )ð )ð$)ð )ð )ð")ð )ð )ð$)ð )ð )ð")ð )ð )ð4)ð )ð )ð$-ð -ð -ð>)ð )ð )ð :ð :ð :ð&	ð 	ð 	ð ð  ð  ð  ð  r+   rK   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestOperatorsc                 ó  — t          j        d¦  «         d}d}d}t          |¦  «        D �]V}t          j                              ||¦  «        }t          j                              ||¦  «        }t          j                              ||¦  «        }t          j                              ||¦  «        }t          |||¦  «        }	t          |	                     |¦  «        |                     |¦  «                             |¦  «                             |¦  «        ¦  «         t          |	j	                             |¦  «        |                     |¦  «                             |¦  «        j	                             |¦  «        ¦  «         �ŒXd S )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ñ 	HˆAÝ”	—’  1Ñ%Ô%ˆAÝ”	—’  1Ñ%Ô%ˆAÝ”	—’  1Ñ%Ô%ˆAÝ”	—’  1Ñ%Ô%ˆAÝ   A qÑ)Ô)ˆBÝ˜BŸIšI a™LœL¨!¯%ª%°©(¬(¯,ª,°q©/¬/×*=Ò*=¸aÑ*@Ô*@ÑAÔAÐAÝ˜BœDŸKšK¨™NœN¨Q¯UªU°1©X¬X¯\ª\¸!©_¬_Ô,?×,CÒ,CÀAÑ,FÔ,FÑGÔGÐGÑGð	Hð 	Hr+   c                 ój  — t          j        d¦  «         d}d}d}d}t          |¦  «        D �]}t          j                              ||¦  «        }t          j                              ||¦  «        }t          ||¦  «        }t          |                     |¦  «        t          j         	                    ||¦  «         
                    |¦  «        ¦  «         t          |j                             |¦  «        t          j         	                    ||¦  «        j         
                    |¦  «        ¦  «         �Œd S )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ñ 	SˆAÝ”	—’  1Ñ%Ô%ˆAÝ”	—’  1Ñ%Ô%ˆAÝ$ Q¨Ñ*Ô*ˆBÝ˜BŸIšI a™LœL­"¬)×*@Ò*@ÀÀAÑ*FÔ*F×*JÒ*JÈ1Ñ*MÔ*MÑNÔNÐNÝ˜BœDŸKšK¨™NœN­B¬I×,BÒ,BÀ1ÀaÑ,HÔ,HÔ,J×,NÒ,NÈqÑ,QÔ,QÑRÔRÐRÑRð	Sð 	Sr+   N)r  r  r  r&  r(  r  r+   r)   r  r  5  s:   € € € € € ðHð Hð HðSð Sð Sð Sð 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     s  ððð ð €€€à Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )ð;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð <Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø -Ð -Ð -Ð -Ð -Ð -ð1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð )Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ø Ð Ð Ð Ø Ð Ð Ð ð?ð ?ð ?ð@0ð 0ð 0ð(ð (ð (ð^ ð ^ ð ^ ð ^ ð ^ ñ ^ ô ^ ð ^ ðBSð Sð Sð Sð Sñ Sô Sð Sð Sð Sr+   