§
    °³Ùg¨P  ã                   óú  — d dl mZmZ d dlmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZ d dlmZ d dlZ	 d dlZdZn# e$ r dZY nw xY w	 d dlZd dlmZ d dlZ ej        e¦  «         dZn# e$ r dZY nw xY w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„ Z0d„ Z1d„ Z2d„ Z3d„ Z4d „ Z5d!„ Z6d"„ Z7d#„ Z8d$„ Z9d%„ Z:d&„ Z;d'„ Z<d(„ Z=d)„ Z>d*„ Z?d+„ Z@d,„ ZAd-„ ZBd.„ ZCd/„ ZDd0„ ZEd1„ ZF ejG        e d2¦  «        d3„ ¦   «         ZH ejG        e d2¦  «        d4„ ¦   «         ZId5„ ZJd6„ ZKd7„ ZLd8„ ZMd9„ ZNd:„ ZOd;„ ZPd<„ ZQd=„ ZRd>„ ZSd?„ ZTd@„ ZUdA„ ZVdB„ ZWdC„ ZXdD„ ZYdE„ ZZdF„ Z[dG„ Z\ ejG        e dH¦  «        dI„ ¦   «         Z]dS )Jé    )ÚsymbolsÚinit_printing)ÚDenseMatrixÚSymbolÚIntegerÚRationalÚfunction_symbolÚIÚNonSquareMatrixErrorÚ
ShapeErrorÚzerosÚonesÚeyeÚImmutableMatrix)ÚraisesNTF)Úclear_cachec                  ó2   — t          t          d„ ¦  «         d S )Nc                  ó,   — t          dddgdz  ¦  «        S )Né   é   r   é   )r   © ó    úS/granary/edev/quantum/lib/python3.11/site-packages/symengine/tests/test_matrices.pyú<lambda>ztest_init.<locals>.<lambda>   s   € �{¨1¨a°!°°Q±Ñ7Ô7€ r   )r   Ú
ValueErrorr   r   r   Ú	test_initr      s   € Ý
�:Ð7Ð7Ñ8Ô8Ð8Ð8Ð8r   c                  ó$  ‡— t          ddgddgg¦  «        Š‰                     dd¦  «        dk    sJ ‚‰                     dd¦  «        dk    sJ ‚‰                     dd¦  «        dk    sJ ‚t          d¦  «        } t          d¦  «        }t          d¦  «        }t          d	¦  «        }t          dd| |||g¦  «        Š‰                     dd¦  «        | k    sJ ‚‰                     dd¦  «        |k    sJ ‚‰                     dd¦  «        |k    sJ ‚‰                     d
d¦  «        |k    sJ ‚‰                     d
d
¦  «        |k    sJ ‚t          t          ˆfd„¦  «         t          t          ˆfd„¦  «         t          t          ˆfd„¦  «         d S )Nr   r   é   r   r   ÚaÚbÚcÚdéÿÿÿÿc                  ó0   •— ‰                       dd¦  «        S )Nr   r   ©Úget©ÚAs   €r   r   ztest_get.<locals>.<lambda>1   ó   ø€ ˜qŸušu Q¨™{œ{€ r   c                  ó0   •— ‰                       dd¦  «        S )Nr   r   r&   r(   s   €r   r   ztest_get.<locals>.<lambda>2   r*   r   c                  ó0   •— ‰                       dd¦  «        S )Néýÿÿÿr   r&   r(   s   €r   r   ztest_get.<locals>.<lambda>3   s   ø€ ˜qŸušu R¨™|œ|€ r   )r   r'   r   r   Ú
IndexError©r    r!   r"   r#   r)   s       @r   Útest_getr0      sž  ø€ Ý�a˜�V˜a ˜VÐ$Ñ%Ô%€Aà�5Š5��A‰;Œ;˜!ÒÐÐÐØ�5Š5��A‰;Œ;˜!ÒÐÐÐØ�5Š5��A‰;Œ;˜!ÒÐÐÐåˆs‰Œ€AÝˆs‰Œ€AÝˆs‰Œ€AÝˆs‰Œ€AÝ�A�q˜1˜a  A˜,Ñ'Ô'€Aà�5Š5��A‰;Œ;˜!ÒÐÐÐØ�5Š5��A‰;Œ;˜!ÒÐÐÐØ�5Š5��A‰;Œ;˜!ÒÐÐÐà�5Š5��Q‰<Œ<˜1ÒÐÐÐØ�5Š5��R‰=Œ=˜AÒÐÐÐå
�:Ð*Ð*Ð*Ð*Ñ+Ô+Ð+Ý
�:Ð*Ð*Ð*Ð*Ñ+Ô+Ð+Ý
�:Ð+Ð+Ð+Ð+Ñ,Ô,Ð,Ð,Ð,r   c                  ó~   — t          ddg¦  «        } | j        dk    sJ ‚|                      ¦   «         dgdggk    sJ ‚d S )Nr   r   ©r   r   )r   ÚshapeÚtolistr(   s    r   Útest_tolistr5   6   sM   € Ý�Q˜�FÑÔ€AØŒ7�fÒÐÐÐØ�8Š8‰:Œ:˜1˜# ˜s˜Ò#Ð#Ð#Ð#Ð#Ð#r   c                  óŽ  ‡ — t          ddg d¢¦  «        Š ‰ d         dk    sJ ‚‰ d         dk    sJ ‚‰ d         dk    sJ ‚‰ d         dk    sJ ‚‰ d	d
…df         t          d	d	dg¦  «        k    sJ ‚‰ d	d…df         t          d
d	ddg¦  «        k    sJ ‚‰ d	d…df         t          d
d	ddg¦  «        k    sJ ‚‰ d	d…d	d …f         t          d
d
g d¢¦  «        k    sJ ‚‰ d	d…d d	…f         t          d
d	ddg¦  «        k    sJ ‚‰ ddd …f         t          d	dg d¢¦  «        k    sJ ‚‰ d
d d …f         t          d	dg d¢¦  «        k    sJ ‚‰ d d
…dd …f         t          d
d
g d¢¦  «        k    sJ ‚‰ d	d …d d…f         t          d
dg d¢¦  «        k    sJ ‚‰ d	d …         g d¢k    sJ ‚‰ dd …         ddgk    sJ ‚‰ dd
gdf         t          d
d	d	dg¦  «        k    sJ ‚‰ dd
gdgf         t          d
d	d	dg¦  «        k    sJ ‚‰ ddd
gf         t          d	d
d	dg¦  «        k    sJ ‚‰ dgdd
gf         t          d	d
d	dg¦  «        k    sJ ‚t          t          ˆ fd„¦  «         t          t          ˆ fd„¦  «         t          t          ˆ fd„¦  «         t          t          ˆ fd„¦  «         t          dd¦  «        Š t	          ‰ dd d …f         ¦  «        g d¢k    sJ ‚t	          ‰ d d …df         ¦  «        g d¢k    sJ ‚t          dd¦  «        Š t	          ‰ d d …df         ¦  «        g d¢k    sJ ‚t	          ‰ dd d …f         ¦  «        g d¢k    sJ ‚d S )Nr   ©	r   r   r   r   é   é   é   é   é	   r8   r9   r$   r<   ©r   r   )éþÿÿÿr   r   r   r   r   r:   )r8   r9   r;   r<   ©r   r   r   ©r:   r;   r<   r>   )r   r   r8   r9   )r   r8   r9   r:   r;   r<   )r   r   r   r8   r9   r:   r;   r<   r;   c                  ó   •— ‰ d         S )Néöÿÿÿr   r(   s   €r   r   ztest_get_item.<locals>.<lambda>T   s   ø€ ˜q œv€ r   c                  ó   •— ‰ d         S )Nr<   r   r(   s   €r   r   ztest_get_item.<locals>.<lambda>U   s   ø€ ˜q œt€ r   c                  ó   •— ‰ dd…df         S )Nr   r   r   r(   s   €r   r   ztest_get_item.<locals>.<lambda>W   s   ø€ ˜q  1  a œy€ r   c                  ó   •— ‰ dd…df         S )Nr   r   éüÿÿÿr   r(   s   €r   r   ztest_get_item.<locals>.<lambda>X   s   ø€ ˜q  1  b œz€ r   )r   r   r   r   ©r   r   r   )r   r   r.   r   Úlistr(   s   @r   Útest_get_itemrI   <   s  ø€ Ý�A�qÐ5Ð5Ð5Ñ6Ô6€AàˆQŒ4�1Š9ˆ9ˆ9ˆ9ØˆRŒ5�AŠ:ˆ:ˆ:ˆ:ØˆTŒ7�aŠ<ˆ<ˆ<ˆ<ØˆUŒ8�qŠ=ˆ=ˆ=ˆ=àˆQˆqˆS�!ˆVŒ9� A q¨1¨#Ñ.Ô.Ò.Ð.Ð.Ð.ØˆQˆqˆS�!ˆVŒ9� A q¨1¨a¨&Ñ1Ô1Ò1Ð1Ð1Ð1ØˆQˆqˆS�!ˆVŒ9� A q¨1¨a¨&Ñ1Ô1Ò1Ð1Ð1Ð1ØˆQˆqˆS�!�"�"ˆWŒ:� Q¨¨<¨<¨<Ñ8Ô8Ò8Ð8Ð8Ð8ØˆQˆqˆS�"�1�"ˆWŒ:� Q¨¨A¨q¨6Ñ2Ô2Ò2Ð2Ð2Ð2ØˆQ���ˆUŒ8•{ 1 a¨¨¨Ñ3Ô3Ò3Ð3Ð3Ð3ØˆQ���ˆTŒ7•k ! Q¨	¨	¨	Ñ2Ô2Ò2Ð2Ð2Ð2ØˆRˆaˆR���ˆWŒ:� Q¨¨<¨<¨<Ñ8Ô8Ò8Ð8Ð8Ð8ØˆQˆRˆR��!�ˆVŒ9� A qÐ*<Ð*<Ð*<Ñ=Ô=Ò=Ð=Ð=Ð=ØˆQˆRˆRŒ5Ð,Ð,Ð,Ò,Ð,Ð,Ð,ØˆRˆSˆSŒ6�a˜�VÒÐÐÐØˆa�ˆV�QˆYŒ<�; q¨!¨a°¨VÑ4Ô4Ò4Ð4Ð4Ð4Øˆa�ˆV�a�Sˆ[Œ>�[¨¨A°°1¨vÑ6Ô6Ò6Ð6Ð6Ð6ØˆQ��A�ˆYŒ<�; q¨!¨a°¨VÑ4Ô4Ò4Ð4Ð4Ð4ØˆaˆS�1�a�&ˆ[Œ>�[¨¨A°°1¨vÑ6Ô6Ò6Ð6Ð6Ð6å
�:�~�~�~�~Ñ&Ô&Ð&Ý
�:�|�|�|�|Ñ$Ô$Ð$å
�:Ð(Ð(Ð(Ð(Ñ)Ô)Ð)Ý
�:Ð)Ð)Ð)Ð)Ñ*Ô*Ð*åˆa�‰Œ€AÝ��!�Q�Q�Q�$”‰=Œ=˜L˜L˜LÒ(Ð(Ð(Ð(Ý��!�!�!�Q�$”‰=Œ=˜I˜I˜IÒ%Ð%Ð%Ð%åˆa�‰Œ€AÝ��!�!�!�Q�$”‰=Œ=˜L˜L˜LÒ(Ð(Ð(Ð(Ý��!�Q�Q�Q�$”‰=Œ=˜I˜I˜IÒ%Ð%Ð%Ð%Ð%Ð%r   c                  óò  — t          ddg d¢¦  «        } d| d<   d| d<   d| d<   d| d	<   | t          ddg d
¢¦  «        k    sJ ‚g d¢| dd d …f<   | t          ddg d¢¦  «        k    sJ ‚g d¢| d d …df<   | t          ddg d¢¦  «        k    sJ ‚g d¢g d¢g| dd d…d d …f<   | t          ddg d¢¦  «        k    sJ ‚t          | ¦  «        }d|ddgdf<   |t          ddg d¢¦  «        k    sJ ‚t          | ¦  «        }ddg|ddgdf<   |t          ddg d¢¦  «        k    sJ ‚t          | ¦  «        }dgdgg|ddgdf<   |t          ddg d¢¦  «        k    sJ ‚t          | ¦  «        }ddg|ddgdgf<   |t          ddg d¢¦  «        k    sJ ‚t          | ¦  «        }dgdgg|ddgdgf<   |t          ddg d¢¦  «        k    sJ ‚t          | ¦  «        }ddg|dddgf<   |t          ddg d¢¦  «        k    sJ ‚t          | ¦  «        }d|dddgf<   |t          ddg d¢¦  «        k    sJ ‚t          | ¦  «        }d|d d …ddgf<   |t          ddg d¢¦  «        k    sJ ‚t          | ¦  «        }d|ddgddgf<   |t          ddg d¢¦  «        k    sJ ‚t          dd¦  «        } t          dd¦  «        }|| dd d …f<   | dd d …f         |k    sJ ‚t          dd¦  «        } t          dd¦  «        }|| d d …df<   | d d …df         |k    sJ ‚d S )Nr   r7   r:   r   r;   r=   r>   r   )r>   r$   )	r   r   r:   r   r8   r   r:   r   r;   )é
   é   é   r   )	rK   rL   rM   r   r8   r   r:   r   r;   )é   é   é   )	rK   rN   rM   r   rO   r   r:   rP   r;   r?   ©r   r8   r9   )	r   r   r   r   rO   r   r   r8   r9   r$   )	r$   r   r   r   rO   r   r$   r8   r9   )	r$   r   r   r   rO   r   r>   r8   r9   )	r$   r   r>   r   rO   r   r   r8   r9   )	r$   r   r$   r   rO   r   r   r8   r9   )	r$   r   r$   r$   rO   r$   r$   r8   r$   )	r$   r   r$   r$   rO   r$   r   r8   r9   r   )r   r   r   ©r)   ÚBs     r   Útest_set_itemrT   c   s  € Ý�A�qÐ5Ð5Ð5Ñ6Ô6€Aà€A€a�DØ€A€d�GØ€A€b�EØ€A€f�Ià•˜A˜qÐ"=Ð"=Ð"=Ñ>Ô>Ò>Ð>Ð>Ð>àˆlˆl€A€aˆˆˆ€d�GØ•˜A˜qÐ"@Ð"@Ð"@ÑAÔAÒAÐAÐAÐAàˆlˆl€A€a€a€aˆ€d�GØ•˜A˜qÐ"BÐ"BÐ"BÑCÔCÒCÐCÐCÐCà�)�)˜Y˜Y˜YÐ'€A€a€dˆ€dˆAˆAˆA€g�JØ•˜A˜qÐ">Ð">Ð">Ñ?Ô?Ò?Ð?Ð?Ð?å�A‰Œ€AØ€A€qˆ!€fˆa€i�LØ•˜A˜qÐ"@Ð"@Ð"@ÑAÔAÒAÐAÐAÐAå�A‰Œ€AØ˜�8€A€qˆ!€fˆa€i�LØ•˜A˜qÐ"@Ð"@Ð"@ÑAÔAÒAÐAÐAÐAå�A‰Œ€AØ�D˜2˜$�<€A€qˆ!€fˆa€i�LØ•˜A˜qÐ"@Ð"@Ð"@ÑAÔAÒAÐAÐAÐAå�A‰Œ€AØ˜"�X€A€qˆ!€fˆqˆc€k�NØ•˜A˜qÐ"@Ð"@Ð"@ÑAÔAÒAÐAÐAÐAå�A‰Œ€AØ�d˜R˜D�\€A€qˆ!€fˆqˆc€k�NØ•˜A˜qÐ"@Ð"@Ð"@ÑAÔAÒAÐAÐAÐAå�A‰Œ€AØ˜�8€A€aˆ!ˆQˆ€i�LØ•˜A˜qÐ"@Ð"@Ð"@ÑAÔAÒAÐAÐAÐAå�A‰Œ€AØ€A€aˆ!ˆQˆ€i�LØ•˜A˜qÐ"@Ð"@Ð"@ÑAÔAÒAÐAÐAÐAå�A‰Œ€AØ€A€a€a€aˆ!ˆQˆ€i�LØ•˜A˜qÐ"DÐ"DÐ"DÑEÔEÒEÐEÐEÐEå�A‰Œ€AØ€A€qˆ!€fˆq�!ˆf€nÑØ•˜A˜qÐ"BÐ"BÐ"BÑCÔCÒCÐCÐCÐCåˆa�‰Œ€AÝˆQ�‰
Œ
€AØ€A€aˆˆˆ€d�GØˆQ���ˆTŒ7�aŠ<ˆ<ˆ<ˆ<åˆa�‰Œ€AÝˆQ�‰
Œ
€AØ€A€a€a€aˆ€d�GØˆQˆQˆQ�ˆTŒ7�aŠ<ˆ<ˆ<ˆ<ˆ<ˆ<r   c                  ó¸  — t          d¦  «        } t          d¦  «        }t          d|¦  «        }dt          z  dz   }t	          ddt          d¦  «        t          d¦  «        t          dt          d¦  «        ¦  «        d	t          z   g¦  «        }|                     d
d
| ¦  «         |                     d
d
¦  «        | k    sJ ‚|                     d
d	|¦  «         |                     d
d	¦  «        |k    sJ ‚|                     d	d
|¦  «         |                     d	d
¦  «        |k    sJ ‚|                     d	d	|¦  «         |                     d	d	¦  «        |k    sJ ‚d S )Nr:   ÚyÚgr   r   r8   ÚxÚfr   r   )r   r   r	   r
   r   Úsetr'   )Úi7rV   rW   r"   r)   s        r   Útest_setr\   ¥   s@  € Ý	�‰Œ€BÝˆs‰Œ€AÝ˜˜QÑÔ€AØ	�!‰ˆa‰€AÝ�A�qÝ˜Q‘Z”Z¥¨¡¤Ý$ S­&°©+¬+Ñ6Ô6¸½A¹ð?ñ	@ô 	@€Að ‡E‚Eˆ!ˆQ��O„O€OØ�5Š5��A‰;Œ;˜"ÒÐÐÐØ‡E‚Eˆ!ˆQ��N„N€NØ�5Š5��A‰;Œ;˜!ÒÐÐÐØ‡E‚Eˆ!ˆQ��N„N€NØ�5Š5��A‰;Œ;˜!ÒÐÐÐØ‡E‚Eˆ!ˆQ��N„N€NØ�5Š5��A‰;Œ;˜!ÒÐÐÐÐÐr   c                  ó   ‡— t          ddg d¢¦  «        Š‰                     ¦   «         dk    sJ ‚t          d¦  «        } t          d¦  «        }t          d¦  «        }t          d¦  «        }t          dd| |||g¦  «        Š‰                     ¦   «         | |z  ||z  z
  k    sJ ‚t          ddg d	¢¦  «        Št          t          ˆfd
„¦  «         d S )Nr   ©r   r   r   r   r>   r    r!   r"   r#   r   ©r   r   r   r   r8   r9   c                  ó,   •— ‰                       ¦   «         S ©N)Údetr(   s   €r   r   ztest_det.<locals>.<lambda>Ä   s   ø€ ¨¯ª©¬€ r   )r   rb   r   r   r   r/   s       @r   Útest_detrc   ¸   sÌ   ø€ Ý�A�q˜,˜,˜,Ñ'Ô'€AØ�5Š5‰7Œ7�bŠ=ˆ=ˆ=ˆ=åˆs‰Œ€AÝˆs‰Œ€AÝˆs‰Œ€AÝˆs‰Œ€AÝ�A�q˜1˜a  A˜,Ñ'Ô'€AØ�5Š5‰7Œ7�a˜‘c˜A˜a™C‘iÒÐÐÐå�A�qÐ,Ð,Ð,Ñ-Ô-€AÝ
Õ    Ñ1Ô1Ð1Ð1Ð1r   c                  óN  — t          ddg d¢¦  «        } |                      ¦   «         | k    sJ ‚t          ddg d¢¦  «        } t          ddg d¢¦  «        }|                      d¦  «        |k    sJ ‚|                      d¦  «        |k    sJ ‚|                      d¦  «        |k    sJ ‚d S )Nr   ©r   r   r   r   )r   r   r   r   )r-   r   r   r$   ÚLUÚFFLUÚGJ)r   ÚinvrR   s     r   Útest_invrj   Ç   s­   € Ý�A�q˜,˜,˜,Ñ'Ô'€AØ�5Š5‰7Œ7�aŠ<ˆ<ˆ<ˆ<å�A�q˜,˜,˜,Ñ'Ô'€AÝ�A�q˜.˜.˜.Ñ)Ô)€Aà�5Š5�‰;Œ;˜!ÒÐÐÐØ�5Š5�‰=Œ=˜AÒÐÐÐØ�5Š5�‰;Œ;˜!ÒÐÐÐÐÐr   c            
      ó¨  ‡‡— t          ddg d¢¦  «        Št          ddg d¢¦  «        } ‰                     | ¦  «        t          ddg d¢¦  «        k    sJ ‚t          d¦  «        }t          d¦  «        }t          d¦  «        }t          d¦  «        }t          dd||z   ||z
  ||g¦  «        Št          dd||z
  ||z   | |g¦  «        } ‰                     | ¦  «        t          ddd|z  d|z  d	d|z  g¦  «        k    sJ ‚‰| z   t          ddd|z  d|z  d	d|z  g¦  «        k    sJ ‚t          d
d||g¦  «        Št          t          ˆˆfd„¦  «         d S )Nr   r^   re   )r   r   r   r8   r    r!   r"   r#   r   r   c                  ó   •— ‰ ‰z   S ra   r   ©r)   ÚCs   €€r   r   z!test_add_matrix.<locals>.<lambda>ä   ó   ø€ ˜q 1™u€ r   )r   Ú
add_matrixr   r   r   )rS   r    r!   r"   r#   r)   rn   s        @@r   Útest_add_matrixrq   Ó   sp  øø€ Ý�A�q˜,˜,˜,Ñ'Ô'€AÝ�A�q˜,˜,˜,Ñ'Ô'€Aà�<Š<˜‰?Œ?�k¨!¨Q°°°Ñ=Ô=Ò=Ð=Ð=Ð=åˆs‰Œ€AÝˆs‰Œ€AÝˆs‰Œ€AÝˆs‰Œ€AÝ�A�q˜1˜q™5 ! a¡%¨¨AÐ.Ñ/Ô/€AÝ�A�q˜1˜q™5 ! a¡%¨!¨¨QÐ/Ñ0Ô0€Aà�<Š<˜‰?Œ?�k¨!¨Q°°1±°a¸±c¸1¸aÀ¹cÐ0BÑCÔCÒCÐCÐCÐCØˆq‰5•K  1 q¨¡s¨A¨a©C°°A°a±CÐ&8Ñ9Ô9Ò9Ð9Ð9Ð9å�A�q˜1˜a˜&Ñ!Ô!€AÝ
�:�}�}�}�}�}Ñ%Ô%Ð%Ð%Ð%r   c            	      óh  ‡‡— t          ddg d¢¦  «        Št          ddg d¢¦  «        } ‰                     | ¦  «        ‰k    sJ ‚t          d¦  «        }t          d¦  «        }t          d¦  «        }t          d¦  «        }t          dd||||g¦  «        Št          ddg d¢¦  «        } ‰                     | ¦  «        t          dd||z   d	||z   d	g¦  «        k    sJ ‚‰| z  t          dd||z   d	||z   d	g¦  «        k    sJ ‚‰| z  t          dd||z   d	||z   d	g¦  «        k    sJ ‚‰t          dd
d	gdz  ¦  «        z  j        dk    sJ ‚t          ddg d¢¦  «        }t          ddg d¢¦  «        Š|                     ‰¦  «        t          ddg d¢¦  «        k    sJ ‚t	          t
          ˆˆfd„¦  «         d S )Nr   r^   re   r    r!   r"   r#   )r   r   r   r   r   r   r2   r   )r   r   r   r   r   r   )r   r   r   r8   r8   r9   )é   é    é&   é/   c                  ó   •— ‰ ‰z  S ra   r   )r)   ÚDs   €€r   r   z!test_mul_matrix.<locals>.<lambda>þ   s   ø€ ˜q ™s€ r   )r   Ú
mul_matrixr   r3   r   r   )rS   r    r!   r"   r#   rn   r)   rx   s         @@r   Útest_mul_matrixrz   ç   sæ  øø€ Ý�A�q˜,˜,˜,Ñ'Ô'€AÝ�A�q˜,˜,˜,Ñ'Ô'€Aà�<Š<˜‰?Œ?˜aÒÐÐÐåˆs‰Œ€AÝˆs‰Œ€AÝˆs‰Œ€AÝˆs‰Œ€AÝ�A�q˜1˜a  A˜,Ñ'Ô'€AÝ�A�q˜,˜,˜,Ñ'Ô'€Aà�<Š<˜‰?Œ?�k¨!¨Q°°Q±¸¸1¸q¹5À!Ð0DÑEÔEÒEÐEÐEÐEØˆq‰5•K  1 q¨1¡u¨a°°Q±¸Ð&:Ñ;Ô;Ò;Ð;Ð;Ð;Øˆq‰5•K  1 q¨1¡u¨a°°Q±¸Ð&:Ñ;Ô;Ò;Ð;Ð;Ð;Ø•˜A˜q 1 # a¡%Ñ(Ô(Ñ(Ô/°6Ò9Ð9Ð9Ð9å�A�qÐ,Ð,Ð,Ñ-Ô-€AÝ�A�qÐ,Ð,Ð,Ñ-Ô-€Aà�<Š<˜‰?Œ?�k¨!¨QÐ0@Ð0@Ð0@ÑAÔAÒAÐAÐAÐAå
�:�{�{�{�{�{Ñ#Ô#Ð#Ð#Ð#r   c                  óª   — t          ddg d¢¦  «        } t          ddg d¢¦  «        }|                      |¦  «        t          ddg d¢¦  «        k    sJ ‚d S )Nr   r^   re   )r   r   r   r   )r   Úmultiply_elementwiserR   s     r   Útest_multiply_elementwiser}     sa   € Ý�A�q˜,˜,˜,Ñ'Ô'€AÝ�A�q˜,˜,˜,Ñ'Ô'€Aà×!Ò! !Ñ$Ô$­°A°q¸,¸,¸,Ñ(GÔ(GÒGÐGÐGÐGÐGÐGr   c            
      ó–  ‡— t          ddg d¢¦  «        Št          d¦  «        } ‰                     | ¦  «        t          ddd| z   d| z   d| z   d| z   g¦  «        k    sJ ‚t          d¦  «        }‰                     |¦  «        t          ddg d¢¦  «        k    sJ ‚t	          t
          ˆfd	„¦  «         t	          t
          ˆfd
„¦  «         d S )Nr   r^   r    r   r   r   r8   )r9   r:   r;   r<   c                  ó   •— ‰ dz   S ©Nr8   r   r(   s   €r   r   z!test_add_scalar.<locals>.<lambda>  ó   ø€ ˜a !™e€ r   c                  ó   •— d‰ z   S r€   r   r(   s   €r   r   z!test_add_scalar.<locals>.<lambda>  r�   r   )r   r   Ú
add_scalarr   r   Ú	TypeError)r    Úi5r)   s     @r   Útest_add_scalarr†     sÍ   ø€ Ý�A�q˜,˜,˜,Ñ'Ô'€Aåˆs‰Œ€AØ�<Š<˜‰?Œ?�k¨!¨Q°°Q±¸¸A¹¸qÀ1¹uÀaÈ!ÁeÐ0LÑMÔMÒMÐMÐMÐMå	�‰Œ€BØ�<Š<˜ÑÔ�{¨1¨a°°°Ñ>Ô>Ò>Ð>Ð>Ð>Ý
�9�m�m�m�mÑ$Ô$Ð$Ý
�9�m�m�m�mÑ$Ô$Ð$Ð$Ð$r   c            
      óì  — t          ddg d¢¦  «        } t          d¦  «        }|                      |¦  «        t          dd|d|z  d|z  d|z  g¦  «        k    sJ ‚t          d¦  «        }|                      |¦  «        t          ddg d¢¦  «        k    sJ ‚| dz  t          ddg d¢¦  «        k    sJ ‚d| z  t          ddg d¢¦  «        k    sJ ‚|| z  t          dd|d|z  d|z  d|z  g¦  «        k    sJ ‚d S )Nr   r^   r    r   r   r8   )r8   rK   rP   é   )r   r   Ú
mul_scalarr   )r)   r    r…   s      r   Útest_mul_scalarrŠ     s  € Ý�A�q˜,˜,˜,Ñ'Ô'€Aåˆs‰Œ€AØ�<Š<˜‰?Œ?�k¨!¨Q°°A°a±C¸¸1¹¸aÀ¹cÐ0BÑCÔCÒCÐCÐCÐCå	�‰Œ€BØ�<Š<˜ÑÔ�{¨1¨a°°°ÑAÔAÒAÐAÐAÐAØˆq‰5•K  1 o o oÑ6Ô6Ò6Ð6Ð6Ð6Øˆq‰5•K  1 o o oÑ6Ô6Ò6Ð6Ð6Ð6Øˆq‰5•K  1 q¨!¨A©#¨q°©s°A°a±CÐ&8Ñ9Ô9Ò9Ð9Ð9Ð9Ð9Ð9r   c                  óŽ   — t          ddg d¢¦  «        } t          ddg d¢¦  «        }|  |k    sJ ‚| t          |¦  «        k    sJ ‚d S )Nr   r   r_   )r$   r>   r-   rF   éûÿÿÿiúÿÿÿ)r   ÚabsrR   s     r   Útest_neg_absrŽ   !  sX   € Ý�A�qÐ,Ð,Ð,Ñ-Ô-€AÝ�A�qÐ2Ð2Ð2Ñ3Ô3€AØˆ2�Š7ˆ7ˆ7ˆ7à•�A‘”Š;ˆ;ˆ;ˆ;ˆ;ˆ;r   c                  ód  ‡‡— t          ddg d¢¦  «        Št          ddg d¢¦  «        } t          d¦  «        }‰| z
  t          ddg d¢¦  «        k    sJ ‚t          ddddg¦  «        Št          t          ˆˆfd„¦  «         t          t          ˆfd„¦  «         t          t          ˆfd	„¦  «         d S )
Nr   r^   )r   r$   r>   r-   r    )r   r   r8   r:   r   c                  ó   •— ‰ ‰z
  S ra   r   rm   s   €€r   r   ztest_sub.<locals>.<lambda>0  ro   r   c                  ó   •— ‰ dz
  S r€   r   r(   s   €r   r   ztest_sub.<locals>.<lambda>1  r�   r   c                  ó   •— d‰ z
  S r€   r   r(   s   €r   r   ztest_sub.<locals>.<lambda>2  r�   r   )r   r   r   r   r„   )rS   r    r)   rn   s     @@r   Útest_subr“   )  s½   øø€ Ý�A�q˜,˜,˜,Ñ'Ô'€AÝ�A�q˜/˜/˜/Ñ*Ô*€AÝˆs‰Œ€AØˆq‰5•K  1 l l lÑ3Ô3Ò3Ð3Ð3Ð3å�A�q˜1˜a˜&Ñ!Ô!€AÝ
�:�}�}�}�}�}Ñ%Ô%Ð%Ý
�9�m�m�m�mÑ$Ô$Ð$Ý
�9�m�m�m�mÑ$Ô$Ð$Ð$Ð$r   c                  ój  ‡— t          d¦  «        \  } }}}t          | |g||gg¦  «        Št          ddgddgg¦  «        }t          || |z
  g|||z
  gg¦  «        }‰dz  t          | dz  |dz  g|dz  |dz  gg¦  «        k    sJ ‚||z  ‰k    sJ ‚‰|z  |k    sJ ‚t          t          ˆfd„¦  «         d S )Nz
w, x, y, zr   r   r   c                  ó   •— d‰ z  S )Nr   r   r(   s   €r   r   ztest_div.<locals>.<lambda>?  s   ø€ ˜a ™c€ r   )r   r   r   r„   )ÚwrX   rV   ÚzrS   rn   r)   s         @r   Útest_divr˜   5  sæ   ø€ Ý˜Ñ&Ô&�J€A€qˆ!ˆQÝ�a˜�V˜a ˜VÐ$Ñ%Ô%€AÝ�a˜�V˜a ˜VÐ$Ñ%Ô%€AÝ�a˜˜Q™�Z ! Q¨¡U Ð,Ñ-Ô-€Aàˆq‰5•K ! A¡# q¨¡s ¨a°©c°1°Q±3¨ZÐ 8Ñ9Ô9Ò9Ð9Ð9Ð9Øˆq‰5�AŠ:ˆ:ˆ:ˆ:Øˆq‰5�AŠ:ˆ:ˆ:ˆ:å
�9�k�k�k�kÑ"Ô"Ð"Ð"Ð"r   c                  óÜ   — t          ddg d¢¦  «        } |                      ¦   «         t          ddg d¢¦  «        k    sJ ‚t          ddg d¢¦  «        } |                      ¦   «         | k    sJ ‚d S )Nr   r7   )	r   r   r:   r   r8   r;   r   r9   r<   r   )r   r   r   r   )r   Ú	transposer(   s    r   Útest_transposer›   B  sz   € Ý�A�qÐ5Ð5Ð5Ñ6Ô6€Aà�;Š;‰=Œ=�K¨¨1Ð.IÐ.IÐ.IÑJÔJÒJÐJÐJÐJå�A�q˜,˜,˜,Ñ'Ô'€Aà�;Š;‰=Œ=˜AÒÐÐÐÐÐr   c            	      ó    — t          dddddt          g¦  «        } |                      ¦   «         t          dddddt           g¦  «        k    sJ ‚d S ©Nr   r   r   )r   r
   Ú	conjugater(   s    r   Útest_conjugaterŸ   L  sP   € Ý�A�q˜1˜a ¥A˜,Ñ'Ô'€AØ�;Š;‰=Œ=�K¨¨1¨q°!°Q½¸¨mÑ<Ô<Ò<Ð<Ð<Ð<Ð<Ð<r   c            	      ó    — t          dddddt          g¦  «        } |                      ¦   «         t          dddddt           g¦  «        k    sJ ‚d S r�   )r   r
   Úconjugate_transposer(   s    r   Útest_conjugate_transposer¢   Q  sT   € Ý�A�q˜1˜a ¥A˜,Ñ'Ô'€AØ× Ò Ñ"Ô"¥k°!°Q¸¸A¸qÅ1À"¸Ñ&FÔ&FÒFÐFÐFÐFÐFÐFr   c                  ó`   — t          ddg d¢¦  «        } |                      ¦   «         dk    sJ ‚d S )Nr   r^   r8   )r   Útracer(   s    r   Ú
test_tracer¥   V  s0   € Ý�A�q˜,˜,˜,Ñ'Ô'€AØ�7Š7‰9Œ9˜Š>ˆ>ˆ>ˆ>ˆ>ˆ>r   c                  óÔ   — t          dddddt          g¦  «        } | j        rJ ‚t          ddt          d¦  «        g¦  «        }|j        �J ‚t          ddg d¢¦  «        }|j        sJ ‚d S ©Nr   r   r   rX   )	r   r   r   r   r   r   r   r   r   )r   r
   Úis_zero_matrixr   ©r)   rS   rn   s      r   Útest_is_zero_matrixrª   [  ó   € Ý�A�q˜1˜a ¥A˜,Ñ'Ô'€AØÔÐÐÐÝ�A�q�6 #™;œ;˜-Ñ(Ô(€AØÔÐ#Ð#Ð#Ý�A�qÐ5Ð5Ð5Ñ6Ô6€AØÔÐÐÐÐÐr   c                  óÔ   — t          dddddt          g¦  «        } | j        rJ ‚t          ddt          d¦  «        g¦  «        }|j        �J ‚t          ddg d¢¦  «        }|j        sJ ‚d S r§   )r   r
   Úis_real_matrixr   r©   s      r   Útest_is_real_matrixr®   d  r«   r   c                  óÔ   — t          dddddt          g¦  «        } | j        sJ ‚t          ddt          d¦  «        g¦  «        }|j        sJ ‚t          ddg d¢¦  «        }|j        rJ ‚d S )Nr   r   r   rX   r   ©	r   r   r   r   r   r   r   r   r   )r   r
   Úis_diagonalr   r©   s      r   Útest_is_diagonalr²   m  s|   € Ý�A�q˜1˜a ¥A˜,Ñ'Ô'€AØŒ=ÐÐÐÝ�A�q�6 #™;œ;˜-Ñ(Ô(€AØŒ=ÐÐÐÝ�A�qÐ5Ð5Ð5Ñ6Ô6€AØŒ}ÐÐÐÐÐr   c                  óÔ   — t          dddddt          g¦  «        } | j        rJ ‚t          ddt          d¦  «        g¦  «        }|j        sJ ‚t          ddg d¢¦  «        }|j        rJ ‚d S )Nr   r   r   rX   r°   )r   r
   Úis_symmetricr   r©   s      r   Útest_is_symmetricrµ   v  s|   € Ý�A�q˜1˜a ¥A˜,Ñ'Ô'€AØŒ~ÐÐÐÝ�A�q�6 #™;œ;˜-Ñ(Ô(€AØŒ>ÐÐÐÝ�A�qÐ5Ð5Ð5Ñ6Ô6€AØŒ~ÐÐÐÐÐr   c                  óì   — t          dddddt          g¦  «        } | j        rJ ‚t          ddt          d¦  «        g¦  «        }|j        �J ‚t          dddt          dddddddg	¦  «        }|j        rJ ‚d S )Nr   r   r   rX   r   )r   r
   Úis_hermitianr   r©   s      r   Útest_is_hermitianr¸     sˆ   € Ý�A�q˜1˜a ¥A˜,Ñ'Ô'€AØŒ~ÐÐÐÝ�A�q�6 #™;œ;˜-Ñ(Ô(€AØŒ>Ð!Ð!Ð!Ý�A�q˜1�a  A q¨!¨Q°°1Ð5Ñ6Ô6€AØŒ~ÐÐÐÐÐr   c                  óž   — t          ddg d¢¦  «        } | j        sJ ‚t          ddt          d¦  «        ddddddddg	¦  «        }|j        �J ‚d S ©Nr   )r   r   r   r   r   rX   r   r   )r   Úis_weakly_diagonally_dominantr   rm   s     r   Ú"test_is_weakly_diagonally_dominantr¼   ˆ  se   € Ý�A�q˜,˜,˜,Ñ'Ô'€AØÔ*Ð*Ð*Ð*Ý�A�q�6 #™;œ;¨¨1¨a°°A°q¸!¸QÐ?Ñ@Ô@€AØÔ*Ð2Ð2Ð2Ð2Ð2r   c                  óž   — t          ddg d¢¦  «        } | j        sJ ‚t          ddt          d¦  «        ddddddddg	¦  «        }|j        �J ‚d S rº   )r   Úis_strongly_diagonally_dominantr   rm   s     r   Ú$test_is_strongly_diagonally_dominantr¿   �  se   € Ý�A�q˜,˜,˜,Ñ'Ô'€AØÔ,Ð,Ð,Ð,Ý�A�q�6 #™;œ;¨¨1¨a°°A°q¸!¸QÐ?Ñ@Ô@€AØÔ,Ð4Ð4Ð4Ð4Ð4r   c                  óž   — t          ddg d¢¦  «        } | j        sJ ‚t          ddt          d¦  «        ddddddddg	¦  «        }|j        �J ‚d S rº   )r   Úis_positive_definiter   rm   s     r   Útest_is_positive_definiterÂ   –  se   € Ý�A�q˜,˜,˜,Ñ'Ô'€AØÔ!Ð!Ð!Ð!Ý�A�q�6 #™;œ;¨¨1¨a°°A°q¸!¸QÐ?Ñ@Ô@€AØÔ!Ð)Ð)Ð)Ð)Ð)r   c                  óž   — t          ddg d¢¦  «        } | j        sJ ‚t          ddt          d¦  «        ddddddddg	¦  «        }|j        �J ‚d S )Nr   )r>   r$   r$   r>   r   rX   r>   r   rF   )r   Úis_negative_definiter   rm   s     r   Útest_is_negative_definiterÅ   �  sh   € Ý�A�qÐ*Ð*Ð*Ñ+Ô+€AØÔ!Ð!Ð!Ð!Ý�A�q�6 #™;œ;¨¨A¨q°"°a¸¸A¸rÐBÑCÔC€AØÔ!Ð)Ð)Ð)Ð)Ð)r   c                  ó¾   — t          ddg d¢¦  «        } |                      ¦   «         \  }}|t          ddg d¢¦  «        k    sJ ‚|t          ddg d¢¦  «        k    sJ ‚d S )Nr   )	r   r   r8   r   r8   r9   r;   r   r   )	r   r   r   r   r   r   r;   é   r   )	r   r   r8   r   r$   rF   r   r   é-   )r   rf   ©r)   ÚLÚUs      r   Útest_LUrÌ   ¤  sy   € Ý�A�qÐ5Ð5Ð5Ñ6Ô6€AØ�4Š4‰6Œ6�D€A€qà•˜A˜qÐ">Ð">Ð">Ñ?Ô?Ò?Ð?Ð?Ð?Ø•˜A˜qÐ"@Ð"@Ð"@ÑAÔAÒAÐAÐAÐAÐAÐAr   c                  ó¾   — t          ddg d¢¦  «        } |                      ¦   «         \  }}|t          ddg d¢¦  «        k    sJ ‚|t          ddg d¢¦  «        k    sJ ‚d S )Nr   ©	r   rM   éðÿÿÿrM   é%   éÕÿÿÿrÏ   rÑ   éb   )	r   r   r   r   r   r   rF   r8   r   )	r   r   r   r   r   r   r   r   r<   )r   ÚLDL)r)   rÊ   rx   s      r   Útest_LDLrÔ   ¬  sy   € Ý�A�qÐAÐAÐAÑBÔB€Aà�5Š5‰7Œ7�D€A€qà•˜A˜qÐ">Ð">Ð">Ñ?Ô?Ò?Ð?Ð?Ð?Ø•˜A˜qÐ"=Ð"=Ð"=Ñ>Ô>Ò>Ð>Ð>Ð>Ð>Ð>r   c                  ó,  — t          ddg d¢¦  «        } t          ddg d¢¦  «        }t          ddg d¢¦  «        }|                      |d¦  «        }||k    sJ ‚|                      |d¦  «        }||k    sJ ‚|                      |d¦  «        }||k    sJ ‚d S )	Nr   ©r   r   r   r   r   r   r   r   r   r   r   r   r<   r;   r:   r9   r   )rK   rL   rN   é   )r   r   r   r   rf   rg   ÚFFGJ)r   Úsolve)r)   r!   rV   rX   s       r   Ú
test_solverÚ   µ  s«   € Ý�A�qÐJÐJÐJÑKÔK€AÝ�A�qÐ*Ð*Ð*Ñ+Ô+€AÝ�A�q˜,˜,˜,Ñ'Ô'€Aà	�Š��4ÑÔ€AØ�Š6ˆ6ˆ6ˆ6Ø	�Š��6ÑÔ€AØ�Š6ˆ6ˆ6ˆ6Ø	�Š��6ÑÔ€AØ�Š6ˆ6ˆ6ˆ6ˆ6ˆ6r   c                  ó¾   — t          ddg d¢¦  «        } |                      ¦   «         \  }}|t          ddg d¢¦  «        k    sJ ‚|t          ddg d¢¦  «        k    sJ ‚d S )Nr   rÖ   )r   r   r   r   r   r>   r   r   r   r-   r   r   r<   rB   rK   rB   )r   r   r   r   r   r>   r-   rF   r   r   r   r   r   r   r   rB   )r   rg   rÉ   s      r   Ú	test_FFLUrÜ   Â  s¡   € Ý�A�qÐJÐJÐJÑKÔK€Aà�6Š6‰8Œ8�D€A€qØ•˜A˜qð #>ð #>ð #>ñ ?ô ?ò ?ð ?ð ?ð ?à•˜A˜qð #=ð #=ð #=ñ >ô >ò >ð >ð >ð >ð >ð >r   c                  óò   — t          ddg d¢¦  «        } |                      ¦   «         \  }}}|t          ddg d¢¦  «        k    sJ ‚|t          ddg d¢¦  «        k    sJ ‚|t          ddg d¢¦  «        k    sJ ‚d S )Nr   )	r   r   r   r8   r-   r   r9   r   r   )	r   r   r   r8   éóÿÿÿr   r9   rB   r   )	r   r   r   r   rÞ   r   r   r   rÞ   )	r   r   r   r   rÞ   rÞ   r   r   é[   )r   ÚFFLDU)r)   rÊ   rx   rË   s       r   Ú
test_FFLDUrá   Ì  sŸ   € Ý�A�qÐ6Ð6Ð6Ñ7Ô7€AØ�gŠg‰iŒi�G€A€qˆ!à•˜A˜qÐ"AÐ"AÐ"AÑBÔBÒBÐBÐBÐBØ•˜A˜qÐ"AÐ"AÐ"AÑBÔBÒBÐBÐBÐBØ•˜A˜qÐ"BÐ"BÐ"BÑCÔCÒCÐCÐCÐCÐCÐCr   c                  óÈ  — t          ddg d¢¦  «        } |                      ¦   «         \  }}|t          ddt          dd¦  «        t          dd¦  «        t          dd¦  «        t          dd¦  «        t          dd¦  «        t          dd¦  «        t          d	d¦  «        t          dd
¦  «        t          dd
¦  «        g	¦  «        k    sJ ‚|t          ddg d¢¦  «        k    sJ ‚d S )Nr   )	rM   iÍÿÿÿr   r9   é§   i¼ÿÿÿrF   é   i×ÿÿÿr9   r:   i»ÿÿÿé¯   iÆÿÿÿéž   r>   é#   ißÿÿÿ)	rO   rÇ   iòÿÿÿr   rå   iºÿÿÿr   r   rç   )r   ÚQRr   )r)   ÚQÚRs      r   Útest_QRrë   Õ  së   € Ý�A�qÐ@Ð@Ð@ÑAÔA€AØ�4Š4‰6Œ6�D€A€qà•˜A˜q¥8¨A¨q¡>¤>µ8¸CÀÑ3EÔ3EÝ#+¨C°Ñ#5Ô#5µxÀÀ1±~´~Ý#+¨C°Ñ#5Ô#5µxÀÀ3Ñ7GÔ7GÝ#+¨B°¡?¤?µH¸QÀ±O´OÝ#+¨C°Ñ#4Ô#4ð	#6ñ 7ô 7ò 7ð 7ð 7ð 7ð
 •˜A˜qÐ"FÐ"FÐ"FÑGÔGÒGÐGÐGÐGÐGÐGr   c                  ó†   — t          ddg d¢¦  «        } |                      ¦   «         }|t          ddg d¢¦  «        k    sJ ‚d S )Nr   rÎ   )	r   r   r   r9   r   r   iøÿÿÿr8   r   )r   Úcholesky)r)   rÊ   s     r   Útest_choleskyrî   á  sQ   € Ý�A�qÐAÐAÐAÑBÔB€AØ	�
Š
‰Œ€Aà•˜A˜qÐ">Ð">Ð">Ñ?Ô?Ò?Ð?Ð?Ð?Ð?Ð?r   c                  óš   — t          ddg d¢¦  «        } t          | ¦  «        dk    sJ ‚t          | ¦  «        t          | ¦  «        k    sJ ‚d S )Nr   r   r_   z[1, 2]
[3, 4]
[5, 6]
)r   ÚstrÚrepr)r#   s    r   Útest_str_reprrò   è  sU   € Ý�A�qÐ,Ð,Ð,Ñ-Ô-€AÝˆq‰6Œ6Ð/Ò/Ð/Ð/Ð/Ýˆq‰6Œ6•T˜!‘W”WÒÐÐÐÐÐr   c                  ó¦   — t          d¦  «        \  } }}t          ddddddd||d|d| dddddg¦  «        }|                     dd¦  «        |k    sJ ‚d S )Nzx y zr   r   r   r   )r   r   r'   )rX   rV   r—   rx   s       r   Útest_DenseMatrix_symbolsrô   î  sv   € Ý�gÑÔ�G€A€qˆ!Ý�A�qØ˜˜1˜aØ˜˜1˜aØ˜˜1˜aØ˜˜1˜að!ñ	"ô 	"€Að
 �5Š5��A‰;Œ;˜!ÒÐÐÐÐÐr   c                  ó"  — t          d¦  «        \  } }}}t          ddddddd||d|d| dddddg¦  «        }t          dd| |z   ||z  || z  |z   |z   | |z   g¦  «        }t          dd| |||g¦  «        } |                     | ¦  «        }||k    sJ ‚d S )Nzx y z tr   r   r   )r   r   Újacobian)rX   rV   r—   ÚtÚ	J_correctrx   ÚJs          r   Útest_jacobianrú   ø  sÀ   € Ý˜Ñ#Ô#�J€A€qˆ!ˆQÝ˜A˜qØ  1 aØ  1 aØ  1 aØ  1 að)ñ*ô *€Iõ
 	�A�q˜1˜Q™3  !¡ Q q¡S¨¡U¨1¡W¨a°©cÐ2Ñ3Ô3€AÝ�A�q˜1˜a  A˜,Ñ'Ô'€AØ	�
Š
�1‰Œ€AØ�	Š>ˆ>ˆ>ˆ>ˆ>ˆ>r   c                  óF   — t          ddg d¢¦  «        } | j        dk    sJ ‚d S )Nr   r^   r   )r   Úsizer(   s    r   Ú	test_sizerý     s*   € Ý�A�q˜,˜,˜,Ñ'Ô'€AØŒ6�QŠ;ˆ;ˆ;ˆ;ˆ;ˆ;r   c                  óF   — t          ddg d¢¦  «        } | j        dk    sJ ‚d S )Nr   r^   r=   )r   r3   r(   s    r   Ú
test_shaperÿ   
  s0   € Ý�A�q˜,˜,˜,Ñ'Ô'€AØŒ7�fÒÐÐÐÐÐr   c                  óž   — t          ddg d¢¦  «        } t          ddg d¢¦  «        }|                      dd¦  «        }||k    sJ ‚|| k    sJ ‚d S )Nr   r^   r   r   )r   Úreshaper©   s      r   Útest_reshaper    s[   € Ý�A�q˜,˜,˜,Ñ'Ô'€AÝ�A�q˜,˜,˜,Ñ'Ô'€AØ	�	Š	�!�Q‰Œ€AØ�Š6ˆ6ˆ6ˆ6Ø�Š6ˆ6ˆ6ˆ6ˆ6ˆ6r   zrequires numpyc                  ó°   — g d¢} t          dd| ¦  «        }t          j        d¦  «        }|                     |¦  «         t          j        || ¦  «        sJ ‚d S )Nr^   r   r   )r   ÚnpÚemptyÚ	dump_realÚallclose©Úrefr)   Úouts      r   Útest_dump_realr    sY   € à
ˆ,ˆ,€CÝ�A�q˜#ÑÔ€AÝ
Œ(�1‰+Œ+€CØ‡K‚K�ÑÔÐÝŒ;�s˜CÑ Ô Ð Ð Ð Ð Ð r   c                  óÈ   — g d¢} t          dd| ¦  «        }t          j        dt          j        ¬¦  «        }|                     |¦  «         t          j        || ¦  «        sJ ‚d S )N)y              ð?y               @y              @y              @r   r   )Údtype)r   r  r  Ú
complex128Údump_complexr  r  s      r   Útest_dump_complexr  !  sd   € à
Ð
Ð
€CÝ�A�q˜#ÑÔ€AÝ
Œ(�1�BœMÐ
*Ñ
*Ô
*€CØ‡N‚N�3ÑÔÐÝŒ;�s˜CÑ Ô Ð Ð Ð Ð Ð r   c                  óŽ   — t          ddg d¢¦  «        } t          ddg d¢¦  «        }|                      dd¦  «         | |k    sJ ‚d S )Nr   r^   )r   r   r   r   r   r   )r   Úcol_swaprR   s     r   Útest_col_swapr  *  óQ   € Ý�A�q˜,˜,˜,Ñ'Ô'€AÝ�A�q˜,˜,˜,Ñ'Ô'€AØ‡J‚Jˆq�!ÑÔÐØ�Š6ˆ6ˆ6ˆ6ˆ6ˆ6r   c                  óþ   — t          dd¦  «        } |                      d¦  «         t          dd¦  «        }| |k    sJ ‚| j        |j        k    sJ ‚| j        |j        k    sJ ‚| j        |j        cxk    rdk    sn J ‚d S )Nr   r   )r   r   )r   Úfillr   ÚrowsÚcolsr3   rR   s     r   Ú	test_fillr  1  s‘   € Ýˆa�‰Œ€AØ‡F‚Fˆ1�I„I€IÝˆQ�‰
Œ
€AØ�Š6ˆ6ˆ6ˆ6ØŒ6�Q”VÒÐÐÐØŒ6�Q”VÒÐÐÐØŒ7�a”gÐ'Ð'Ò'Ð' Ò'Ð'Ð'Ð'Ð'Ð'Ð'Ð'r   c                  óŽ   — t          ddg d¢¦  «        } t          ddg d¢¦  «        }|                      dd¦  «         | |k    sJ ‚d S )Nr   r^   )r   r   r   r   r   r   )r   Úrow_swaprR   s     r   Útest_row_swapr  ;  r  r   c                  ó„  ‡ — t          ddg d¢¦  «        Š t          t          ˆ fd„¦  «         t          t          ˆ fd„¦  «         t          t          ˆ fd„¦  «         t          t          ˆ fd„¦  «         ‰                      d¦  «        t          g d¢g d	¢g¦  «        k    sJ ‚‰                      d¦  «        t          d
dgddgg¦  «        k    sJ ‚t          ddg d¢¦  «        Š ‰                      d
¦  «        t          g d¢g d¢g¦  «        k    sJ ‚‰                      d
¦  «        t          d
dgddgg¦  «        k    sJ ‚d S )Nr   r7   c                  ó.   •— ‰                       d¦  «        S r€   ©Úrow_del©Úes   €r   r   z"test_row_col_del.<locals>.<lambda>D  ó   ø€ ˜qŸyšy¨™|œ|€ r   c                  ó.   •— ‰                       d¦  «        S ©NrŒ   r  r!  s   €r   r   z"test_row_col_del.<locals>.<lambda>E  ó   ø€ ˜qŸyšy¨™}œ}€ r   c                  ó.   •— ‰                       d¦  «        S r€   ©Úcol_delr!  s   €r   r   z"test_row_col_del.<locals>.<lambda>F  r#  r   c                  ó.   •— ‰                       d¦  «        S r%  r(  r!  s   €r   r   z"test_row_col_del.<locals>.<lambda>G  r&  r   r$   r?   rQ   r   r   r   r8   r@   r:   r<   )r   r   r.   r   r)  r!  s   @r   Útest_row_col_delr+  B  sa  ø€ Ý�A�qÐ5Ð5Ð5Ñ6Ô6€AÝ
�:Ð+Ð+Ð+Ð+Ñ,Ô,Ð,Ý
�:Ð,Ð,Ð,Ð,Ñ-Ô-Ð-Ý
�:Ð+Ð+Ð+Ð+Ñ,Ô,Ð,Ý
�:Ð,Ð,Ð,Ð,Ñ-Ô-Ð-à�9Š9�R‰=Œ=�K¨¨¨°I°I°IÐ(>Ñ?Ô?Ò?Ð?Ð?Ð?Ø�9Š9�R‰=Œ=�K¨!¨Q¨°!°Q°Ð(8Ñ9Ô9Ò9Ð9Ð9Ð9å�A�qÐ5Ð5Ð5Ñ6Ô6€AØ�9Š9�Q‰<Œ<�;¨	¨	¨	°9°9°9Ð'=Ñ>Ô>Ò>Ð>Ð>Ð>Ø�9Š9�Q‰<Œ<�;¨¨A¨°°A°Ð'7Ñ8Ô8Ò8Ð8Ð8Ð8Ð8Ð8r   c                  ó    — t          d¦  «                             t          g d¢¦  «        ¦  «        t          g d¢g d¢g d¢g¦  «        k    sJ ‚d S )Nr   ©r:   r:   r:   )r   r   r   r:   )r   r   r   r:   )r   r   r   r:   )r   Úrow_joinr   r   r   r   Útest_row_joinr/  Q  sg   € Ýˆq‰6Œ6�?Š?�; y y yÑ1Ô1Ñ2Ô2Ý˜˜˜Ø$˜˜Ø$˜˜ð&ñ 'ô 'ò'ð 'ð 'ð 'ð 'ð 'r   c                  ó¨   — t          d¦  «                             t          g d¢g¦  «        ¦  «        t          g d¢g d¢g d¢g d¢g¦  «        k    sJ ‚d S )Nr   r-  )r   r   r   )r   r   r   )r   r   r   )r   Úcol_joinr   r   r   r   Útest_col_joinr2  X  sp   € Ýˆq‰6Œ6�?Š?�;¨	¨	¨	 {Ñ3Ô3Ñ4Ô4Ý˜	˜	˜	Ø!˜	˜	Ø!˜	˜	Ø!˜	˜	ð#ñ $ô $ò$ð $ð $ð $ð $ð $r   c                  ó®   — t          d¦  «        } t          dd¦  «        }|                      d|¦  «        t          g d¢g d¢g d¢g d¢g¦  «        k    sJ ‚d S )Nr   r   rG   ©r   r   r   )r   r   Ú
row_insertr   ©ÚMÚVs     r   Útest_row_insertr9  `  su   € Ýˆa‰Œ€AÝˆQ�‰
Œ
€AØ�<Š<˜˜1ÑÔ¥¨i¨i¨iØ.7¨i¨iØ.7¨i¨iØ.7¨i¨ið.9ñ ":ô ":ò :ð :ð :ð :ð :ð :r   c                  ó¨   — t          d¦  «        } t          dd¦  «        }|                      d|¦  «        t          g d¢g d¢g d¢g¦  «        k    sJ ‚d S )Nr   r   )r   r   r   r   )r   r   Ú
col_insertr   r6  s     r   Útest_col_insertr<  i  sn   € Ýˆa‰Œ€AÝˆQ�‰
Œ
€AØ�<Š<˜˜1ÑÔ¥¨l¨l¨lØ.:¨l¨lØ.:¨l¨lð.<ñ "=ô "=ò =ð =ð =ð =ð =ð =r   c                  óˆ   — t          d¦  «        } |                      dd¦  «        t          g d¢g d¢g d¢g¦  «        k    sJ ‚d S )Nr   r   r4  ©r   r   r   )r   Úrowmulr   ©r7  s    r   Útest_rowmulrA  q  s_   € ÝˆQ‰Œ€AØ�8Š8�A�q‰>Œ>�[¨)¨)¨)Ø*3¨)¨)Ø*3¨)¨)ð*5ñ 6ô 6ò 6ð 6ð 6ð 6ð 6ð 6r   c                  óŠ   — t          d¦  «        } |                      ddd¦  «        t          g d¢g d¢g d¢g¦  «        k    sJ ‚d S )Nr   r   r   r4  r>  )r   Úrowaddr   r@  s    r   Útest_rowaddrD  x  sc   € ÝˆQ‰Œ€AØ�8Š8�A�q˜!ÑÔ¥¨Y¨Y¨YØ-6¨Y¨YØ-6¨Y¨Yð-8ñ !9ô !9ò 9ð 9ð 9ð 9ð 9ð 9r   c                  óÜ   — t          ddg d¢¦  «        } |                      d¦  «        t          ddg d¢¦  «        k    sJ ‚|                      d¦  «        t          ddg d¢¦  «        k    sJ ‚d S )Nr   r7   r   r   r?   )r   r   r:   )r   ÚrowÚcol)Úms    r   Útest_row_colrI    sv   € Ý�A�qÐ5Ð5Ð5Ñ6Ô6€AØ�5Š5�‰8Œ8•{ 1 a¨¨¨Ñ3Ô3Ò3Ð3Ð3Ð3Ø�5Š5�‰8Œ8•{ 1 a¨¨¨Ñ3Ô3Ò3Ð3Ð3Ð3Ð3Ð3r   c                  óz   — t          dgdgg¦  «        } t          ddgddgg¦  «        }| j        rJ ‚|j        sJ ‚d S ©Nr   r   )r   Ú	is_square)rH  Úm2s     r   Útest_is_squarerN  …  sS   € Ý�a�S˜!˜�IÑÔ€AÝ	�q˜!�f˜q !˜fÐ%Ñ	&Ô	&€BØŒ{ÐÐÐØŒ<ÐÐÐÐÐr   c                  ó  — t          ddg d¢¦  «        } t          ddddg¦  «        }|                      |¦  «        t          ddg d¢¦  «        k    sJ ‚t          dd¦  «                             t          dd¦  «        ¦  «        dk    sJ ‚d S )Nr   r   r_   r   r:   r;   )é'   é6   éE   )r   Údotr   rR   s     r   Útest_dotrT  Œ  s�   € Ý�A�qÐ,Ð,Ð,Ñ-Ô-€AÝ�A�q˜1˜a˜&Ñ!Ô!€AØ�5Š5�‰8Œ8•{ 1 a¨¨¨Ñ6Ô6Ò6Ð6Ð6Ð6Ý��1‰:Œ:�>Š>�$˜q !™*œ*Ñ%Ô%¨Ò*Ð*Ð*Ð*Ð*Ð*r   c                  óÖ   — t          ddg d¢¦  «        } t          ddg d¢¦  «        }|                      |¦  «        t          ddg d¢¦  «        k    sJ ‚t          t          d„ ¦  «         d S )Nr   r   r?   )r   r   r8   )r>   r   r>   c                  óp   — t          ddddg¦  «                             t          ddddg¦  «        ¦  «        S rK  )r   Úcrossr   r   r   r   ztest_cross.<locals>.<lambda>—  s8   € Ý�A�q˜1˜a˜&Ñ!Ô!×'Ò'­°A°q¸1¸a¸&Ñ(AÔ(AÑBÔBð r   )r   rW  r   r   r6  s     r   Ú
test_crossrX  “  s†   € Ý�A�q˜)˜)˜)Ñ$Ô$€AÝ�A�q˜)˜)˜)Ñ$Ô$€AØ�7Š7�1‰:Œ:� Q¨¨;¨;¨;Ñ7Ô7Ò7Ð7Ð7Ð7Ý
�:ð Cð Cñ Dô Dð Dð Dð Dr   c                  óà   — t          d¦  «        } t          dd| dz  | g¦  «        }|                     | ¦  «        }t          |t          ¦  «        sJ ‚|t          ddd| z  dg¦  «        k    sJ ‚d S )NrX   r   r   )r   r   ÚdiffÚ
isinstance)rX   r7  Úresults      r   Ú	test_diffr]  ›  sv   € Ý�‰Œ€AÝ�A�q˜1˜a™4 ˜)Ñ$Ô$€AØ�VŠV�A‰YŒY€FÝ�f�kÑ*Ô*Ð*Ð*Ð*Ø•[  A¨¨!©¨Q xÑ0Ô0Ò0Ð0Ð0Ð0Ð0Ð0r   c                  ó°  — t          g d¢g d¢g d¢g¦  «        } | j        dk    sJ ‚| d         dk    sJ ‚| d         dk    sJ ‚| d	d d …f         t          g d¢g¦  «        k    sJ ‚| d d
…d d
…f         t          d	d
gddgg¦  «        k    sJ ‚t          t          ¦  «        5  d| d<   d d d ¦  «         n# 1 swxY w Y   t	          d	d
gddgg¦  «        }|                     ¦   «         t          d	d
gddgg¦  «        k    sJ ‚|                     ¦   «         dk    sJ ‚t          t          d¦  «        ¦  «        }t          || z   t           ¦  «        sJ ‚t          || z  t           ¦  «        sJ ‚t          |d
z  t           ¦  «        sJ ‚t          d
|z  t           ¦  «        sJ ‚t          d	d
gddgg¦  «        }t          d	gdgg¦  «        }t          | 
                    |¦  «        ¦  «        t           k    sJ ‚t          d¦  «        }t          d	d
gddgg¦  «        }t          d	d
g|dgg¦  «        }|                     |d¦  «        |k    sJ ‚|                     |d¦  «        |k    sJ ‚t          d	d
gddgg¦  «        }t          dgdgg¦  «        }|                     |¦  «        }t          |t           ¦  «        sJ ‚|t          g d¢g d¢g¦  «        k    sJ ‚t          d	d
gddgg¦  «        }t          ddgg¦  «        }|                     |¦  «        }t          |t           ¦  «        sJ ‚|t          d	d
gddgddgg¦  «        k    sJ ‚t          d	g¦  «        }t	          d	g¦  «        }t          ||z   ¦  «        t           k    sJ ‚t          ||z   ¦  «        t           k    sJ ‚t          ||z  ¦  «        t           k    sJ ‚t          ||z  ¦  «        t           k    sJ ‚d S )Nr?   rQ   r@   )r   r   )r   r   r9   r=   r<   r   r   r   r8   r   r>   r   rX   )r   r   r8   )r   r   r9   )r   r3   r   r„   r   Úas_immutablerb   r   r[  ÚtypeÚLUsolver   ÚsubsÚxreplacer.  r1  )r)   ÚXÚYrX   ÚZs        r   Útest_immutablematrixrg  £  sW  € Ý˜˜˜ I I I¨y¨y¨yÐ9Ñ:Ô:€AØŒ7�fÒÐÐÐØˆTŒ7�aŠ<ˆ<ˆ<ˆ<ØˆTŒ7�aŠ<ˆ<ˆ<ˆ<àˆQ���ˆTŒ7•o y y y kÑ2Ô2Ò2Ð2Ð2Ð2ØˆRˆaˆR��!�ˆVŒ9�¨!¨Q¨°!°Q°Ð(8Ñ9Ô9Ò9Ð9Ð9Ð9å	•	Ñ	Ô	ð ð Øˆˆ$‰ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 	�a˜�V˜a ˜VÐ$Ñ%Ô%€AØ�>Š>ÑÔ�°°A°¸¸A¸Ð/?Ñ@Ô@Ò@Ð@Ð@Ð@à�5Š5‰7Œ7�bŠ=ˆ=ˆ=ˆ=å�˜A™œÑÔ€AÝ�a˜!‘e�_Ñ-Ô-Ð-Ð-Ð-Ý�a˜!‘e�_Ñ-Ô-Ð-Ð-Ð-Ý�a˜!‘e�_Ñ-Ô-Ð-Ð-Ð-Ý�a˜!‘e�_Ñ-Ô-Ð-Ð-Ð-å˜!˜Q˜ ! Q Ð(Ñ)Ô)€AÝ˜!˜˜q˜c˜
Ñ#Ô#€AÝ�—	’	˜!‘”ÑÔ¥Ò0Ð0Ð0Ð0åˆs‰Œ€AÝ˜!˜Q˜ ! Q Ð(Ñ)Ô)€AÝ˜!˜Q˜ ! Q Ð(Ñ)Ô)€AØ�6Š6�!�Q‰<Œ<˜1ÒÐÐÐØ�:Š:�a˜ÑÔ˜qÒ Ð Ð Ð å˜!˜Q˜ ! Q Ð(Ñ)Ô)€AÝ˜!˜˜q˜c˜
Ñ#Ô#€AØ	�
Š
�1‰Œ€AÝ�a�Ñ)Ô)Ð)Ð)Ð)Ø•   ¨I¨I¨IÐ 6Ñ7Ô7Ò7Ð7Ð7Ð7å˜!˜Q˜ ! Q Ð(Ñ)Ô)€AÝ˜!˜Q˜˜Ñ!Ô!€AØ	�
Š
�1‰Œ€AÝ�a�Ñ)Ô)Ð)Ð)Ð)Ø• ! Q ¨!¨Q¨°!°Q°Ð 8Ñ9Ô9Ò9Ð9Ð9Ð9õ 	˜˜ÑÔ€AÝ�Q�CÑÔ€AÝ��A‘‰;Œ;�/Ò)Ð)Ð)Ð)Ý��A‘‰;Œ;�/Ò)Ð)Ð)Ð)Ý��A‘‰;Œ;�/Ò)Ð)Ð)Ð)Ý��A‘‰;Œ;�/Ò)Ð)Ð)Ð)Ð)Ð)s   ÂB1Â1B5Â8B5c                  ó°   — t          d¦  «        } t          d¦  «        }t          | dg|dgg¦  «        }|                     t           ¦  «        | |hk    sJ ‚d S )Nr    r!   r   r   )r   r   Úatoms)r    r!   rd  s      r   Ú
test_atomsrj  Ù  sW   € Ýˆs‰Œ€AÝˆs‰Œ€AÝ�a˜�V˜a ˜VÐ$Ñ%Ô%€AØ�7Š7•6‰?Œ?˜q !˜fÒ$Ð$Ð$Ð$Ð$Ð$r   c                  óâ   — t          g d¢g d¢g d¢g d¢g¦  «        } |                      ¦   «         \  }}}||z  }|D ]\  }}|                     ||¦  «         Œ|| z
  t          d¦  «        k    sJ ‚d S )N)r   r   r8   r   )r   r   r:   r   )r;   r   r   r   )r>   r9   r   r   r   )r   ÚLUdecompositionr  r   )ÚtestmatrÊ   rË   ÚpÚresÚorigÚnews          r   Útest_LUdecomprr  à  sž   € Ý˜<˜<˜<Ø"�l�lØ"�l�lØ#�m�mð%ñ &ô &€Gð ×%Ò%Ñ'Ô'�G€A€qˆ!Ø
ˆA‰#€CØð  ð  ‰	ˆˆcØ�Š�T˜3ÑÔÐÐØ�‰=�E !™HœHÒ$Ð$Ð$Ð$Ð$Ð$r   c                  ó¼   — t          ddgg¦  «        } t          d¦  «         |                      ¦   «         }t          |t          ¦  «        sJ ‚t          d¦  «         d S )Nr   r   TF)r   r   Ú_repr_latex_r[  rð   )rm  Úlatex_strings     r   Útest_repr_latexrv  ë  s^   € Ý˜A˜q˜6˜(Ñ#Ô#€GÝ�$ÑÔÐØ×'Ò'Ñ)Ô)€LÝ�l¥CÑ(Ô(Ð(Ð(Ð(Ý�%ÑÔÐÐÐr   zSymPy not installedc                  óŽ   — t          dg¦  «        } t          |                      ¦   «         ¦  «        t          | ¦  «        k    sJ ‚d S )Nr   )r   r`  Úsimplifyr(   s    r   Útest_simplifyry  ò  s>   € å˜˜ÑÔ€AÝ�—
’
‘”ÑÔ¥ a¡¤Ò(Ð(Ð(Ð(Ð(Ð(r   )^Ú	symenginer   r   Úsymengine.lib.symengine_wrapperr   r   r   r   r	   r
   r   r   r   r   r   r   Úsymengine.test_utilitiesr   ÚunittestÚnumpyr  Ú
have_numpyÚImportErrorÚsympyÚsympy.core.cacher   ÚatexitÚregisterÚ
have_sympyr   r0   r5   rI   rT   r\   rc   rj   rq   rz   r}   r†   rŠ   rŽ   r“   r˜   r›   rŸ   r¢   r¥   rª   r®   r²   rµ   r¸   r¼   r¿   rÂ   rÅ   rÌ   rÔ   rÚ   rÜ   rá   rë   rî   rò   rô   rú   rý   rÿ   r  ÚskipIfr  r  r  r  r  r+  r/  r2  r9  r<  rA  rD  rI  rN  rT  rX  r]  rg  rj  rr  rv  ry  r   r   r   ú<module>r‡     s¤  ðØ ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,ð ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð ,Ð +Ð +Ð +Ð +Ð +Ø €€€ðØÐÐÐØ€J€JøØð ð ð Ø€J€J€JðøøøðØ€L€L€LØ,Ð,Ð,Ð,Ð,Ð,Ø€M€M€MØ€F„O�KÑ Ô Ð Ø€J€JøØð ð ð Ø€J€J€Jðøøøð9ð 9ð 9ð-ð -ð -ð2$ð $ð $ð$&ð $&ð $&ðN?ð ?ð ?ðDð ð ð&2ð 2ð 2ð	ð 	ð 	ð&ð &ð &ð($ð $ð $ð4Hð Hð Hð	%ð 	%ð 	%ð
:ð 
:ð 
:ðð ð ð	%ð 	%ð 	%ð
#ð 
#ð 
#ðð ð ð=ð =ð =ð
Gð Gð Gð
ð ð ð
ð ð ðð ð ðð ð ðð ð ðð ð ð3ð 3ð 3ð5ð 5ð 5ð*ð *ð *ð*ð *ð *ðBð Bð Bð?ð ?ð ?ð
ð 
ð 
ð>ð >ð >ðDð Dð Dð	Hð 	Hð 	Hð@ð @ð @ðð ð ðð ð ð
ð 
ð 
ðð ð ð
ð ð ð
ð ð ð €„�Z�Ð!1Ñ2Ô2ð!ð !ñ 3Ô2ð!ð €„�Z�Ð!1Ñ2Ô2ð!ð !ñ 3Ô2ð!ðð ð ð(ð (ð (ðð ð ð9ð 9ð 9ð'ð 'ð 'ð$ð $ð $ð:ð :ð :ð=ð =ð =ð6ð 6ð 6ð9ð 9ð 9ð4ð 4ð 4ðð ð ð+ð +ð +ðDð Dð Dð1ð 1ð 1ð3*ð 3*ð 3*ðl%ð %ð %ð	%ð 	%ð 	%ðð ð ð €„�Z�Ð!6Ñ7Ô7ð)ð )ñ 8Ô7ð)ð )ð )s!   °7 ·AÁ AÁ A& Á&A0Á/A0