§
    µ³ÙgÎq  ã                   óð  — d dl Zd dlmZ d dlZd dlmZ d dlmZm	Z	 ddl
mZmZ d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej                             dg d¢¦  «        defd„¦   «         Zej                             d e g d¢g d¢¦  «        ¦  «        de!eef         fd„¦   «         Z"ej                             dg d¢¦  «        defd„¦   «         Z#d„ Z$d„ Z%d„ Z&d „ Z'd!„ Z(d"„ Z)d#„ Z*d$„ Z+ej                             d%g d&¢¦  «        d'„ ¦   «         Z,ej                             d%g d&¢¦  «        d(„ ¦   «         Z-ej                             d%g d&¢¦  «        d)„ ¦   «         Z.ej                             d%g d&¢¦  «        d*„ ¦   «         Z/d+„ Z0ej                             d,g d-¢¦  «        d.„ ¦   «         Z1ej                             d%g d&¢¦  «        d/„ ¦   «         Z2ej                             d%g d&¢¦  «        d0„ ¦   «         Z3ej                             d1g d2¢¦  «        d3„ ¦   «         Z4d4„ Z5d5„ Z6ej                             d%g d&¢¦  «        d6„ ¦   «         Z7ej                             d%g d&¢¦  «        d7„ ¦   «         Z8d8„ Z9ej                             d9g d:¢¦  «        d;„ ¦   «         Z:ej                             d%g d&¢¦  «        d<„ ¦   «         Z;ej                             d%g d&¢¦  «        d=„ ¦   «         Z<d>„ Z=ej                             d9g d:¢¦  «        d?„ ¦   «         Z>g d@¢Z?ej                             dAe?¦  «        dB„ ¦   «         Z@g dC¢ZAej                             dDeA¦  «        dE„ ¦   «         ZBdF„ ZCdG„ ZDdH„ ZEdI„ ZFdJ„ ZGg dK¢ZHej                             d9eH¦  «        dL„ ¦   «         ZIdMdNdOgd gffdPdQdRgd gffdSdTd gdgffdUdVd dRgdRdgffdWdXg dY¢g dZ¢ffd[d\d]d]g dY¢g dY¢ffgZJej                             d^eJ¦  «        d_„ ¦   «         ZKd`„ ZLej                             dag db¢¦  «        dc„ ¦   «         ZMej                             d%g dd¢¦  «        de„ ¦   «         ZNej                             d%g dd¢¦  «        df„ ¦   «         ZOdS )gé    N)Úassert_equal)Ú
block_diag)Ú	coo_arrayÚrandom_arrayé   )Ú_block_diagÚ_extract_block_diagc                  óæ  — t          d¦  «        } | j        dk    sJ ‚t          |                      ¦   «         t	          j        d¦  «        ¦  «         t          d¦  «        }|j        dk    sJ ‚t          |                     ¦   «         t	          j        d¦  «        ¦  «         t          d¦  «        }|j        dk    sJ ‚t          |                     ¦   «         t	          j        d¦  «        ¦  «         d S )N©é   ©r   r   )r   r   é   é   é   ©r   Úshaper   ÚtoarrayÚnpÚzeros)Úempty1dÚempty2dÚempty_nds      úQ/granary/edev/quantum/lib/python3.11/site-packages/scipy/sparse/tests/test_coo.pyÚtest_shape_constructorr   	   sÒ   € Ý˜‰oŒo€GØŒ=˜DÒ Ð Ð Ð Ý�—’Ñ"Ô"¥B¤H¨T¡N¤NÑ3Ô3Ð3å˜ÑÔ€GØŒ=˜FÒ"Ð"Ð"Ð"Ý�—’Ñ"Ô"¥B¤H¨VÑ$4Ô$4Ñ5Ô5Ð5å˜Ñ%Ô%€HØŒ>˜[Ò(Ð(Ð(Ð(Ý�×!Ò!Ñ#Ô#¥R¤X¨kÑ%:Ô%:Ñ;Ô;Ð;Ð;Ð;ó    c                  ód  — t          g d¢¦  «        } | j        dk    sJ ‚t          |                      ¦   «         t	          j        g d¢¦  «        ¦  «         t          g d¢g d¢g¦  «        }|j        dk    sJ ‚t          |                     ¦   «         t	          j        g d¢g d¢g¦  «        ¦  «         t	          j        ddgddggd	d
gddgggddgddggdd
gdd	gggddgddggddgddgggg¦  «        }t          |¦  «        }|j        dk    sJ ‚t          |                     ¦   «         |¦  «         t          j                             d¦  «         t          j                             ddddd	d
ddd¦	  «	        }t          |¦  «        }|j        dk    sJ ‚t          |                     ¦   «         |¦  «         t          dt          j	        ggddggd
d	ggg¦  «        }|j        dk    sJ ‚t          |                     ¦   «         t	          j        dt          j	        ggddggd
d	ggg¦  «        ¦  «         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   r   )
r   r   r   r   r   ÚarrayÚrandomÚseedÚrandnÚnan)Úres1dÚres2dÚarr4dÚres4dÚarr9dÚres9dÚnan_3ds          r   Útest_dense_constructorr1      sU  € å�i�i�iÑ Ô €EØŒ;˜$ÒÐÐÐÝ�—’‘”¥"¤(¨9¨9¨9Ñ"5Ô"5Ñ6Ô6Ð6õ �y�y�y ) ) )Ð,Ñ-Ô-€EØŒ;˜&Ò Ð Ð Ð Ý�—’‘”¥"¤(¨I¨I¨I°y°y°yÐ+AÑ"BÔ"BÑCÔCÐCõ ŒH˜˜A˜  A Ð'¨1¨a¨&°1°a°&Ð)9Ð:Ø˜A˜  A Ð'¨1¨a¨&°1°a°&Ð)9Ð:Ø˜A˜  A Ð'¨1¨a¨&°1°a°&Ð)9Ð:ð<ñ =ô =€Eõ �eÑÔ€EØŒ;˜,Ò&Ð&Ð&Ð&Ý�—’‘” %Ñ(Ô(Ð(õ „I‡N‚N�2ÑÔÐÝŒI�OŠO˜A˜a  ! A a¨¨!¨AÑ.Ô.€EÝ�eÑÔ€EØŒ;Ð-Ò-Ð-Ð-Ð-Ý�—’‘” %Ñ(Ô(Ð(õ ˜!�RœV˜˜¨¨A¨ x°1°a°&°Ð:Ñ;Ô;€FØŒ<˜9Ò$Ð$Ð$Ð$Ý�—’Ñ!Ô!¥2¤8¨qµ"´&¨k¨]¸aÀ¸V¸HÈÈ1ÀvÀhÐ,OÑ#PÔ#PÑQÔQÐQÐQÐQr   c            	      ó2  — t          g d¢d¬¦  «        } | j        dk    sJ ‚t          |                      ¦   «         t	          j        g d¢¦  «        ¦  «         t          g d¢g d¢gd¬¦  «        }|j        dk    sJ ‚t          |                     ¦   «         t	          j        g d¢g d¢g¦  «        ¦  «         t          dggdgggd¬¦  «        }|j        dk    sJ ‚t          |                     ¦   «         t	          j        dggdggg¦  «        ¦  «         t          j                             d	¦  «         t          j                             d
dddddd
¦  «        }t          |d¬¦  «        }|j        dk    sJ ‚t          |                     ¦   «         |¦  «         d S )Nr   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+   Úres3dÚarr7dÚres7ds        r   Ú!test_dense_constructor_with_shaper7   7   s‡  € Ý�i�i�i tÐ,Ñ,Ô,€EØŒ;˜$ÒÐÐÐÝ�—’‘”¥"¤(¨9¨9¨9Ñ"5Ô"5Ñ6Ô6Ð6å�y�y�y ) ) )Ð,°FÐ;Ñ;Ô;€EØŒ;˜&Ò Ð Ð Ð Ý�—’‘”¥"¤(¨I¨I¨I°y°y°yÐ+AÑ"BÔ"BÑCÔCÐCå˜˜�u ˜s˜e�n¨IÐ6Ñ6Ô6€EØŒ;˜)Ò#Ð#Ð#Ð#Ý�—’‘”¥"¤(¨a¨S¨E°Q°C°5¨>Ñ":Ô":Ñ;Ô;Ð;å„I‡N‚N�2ÑÔÐÝŒI�OŠO˜A˜a  ! A a¨Ñ*Ô*€EÝ�u _Ð5Ñ5Ô5€EØŒ;˜/Ò)Ð)Ð)Ð)Ý�—’‘” %Ñ(Ô(Ð(Ð(Ð(r   c                  óš  — t          j        t          d¬¦  «        5  t          g d¢d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          g d¢d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          g d¢gd¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          dggd	gggd
¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          dgdgffd¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          ddgddgddgddgffd¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          dgdgff¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          dgdgdgdgff¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Núinconsistent shapes©Úmatchr   ©r   r3   ©r   r   r   r   r   ©r   r   r   z)axis 0 index 2 exceeds matrix dimension 2r   r   )r   z)axis 1 index 3 exceeds matrix dimension 3r   )r   r   r   znegative axis 0 index: -1éÿÿÿÿznegative axis 2 index: -1)ÚpytestÚraisesÚ
ValueErrorr   © r   r   Ú.test_dense_constructor_with_inconsistent_shaperD   K   s†  € Ý	Œ•zÐ)>Ð	?Ñ	?Ô	?ð )ð )Ý�)�)�) 4Ð(Ñ(Ô(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )õ 
Œ•zÐ)>Ð	?Ñ	?Ô	?ð +ð +Ý�)�)�) 6Ð*Ñ*Ô*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +õ 
Œ•zÐ)>Ð	?Ñ	?Ô	?ð +ð +Ý�9�9�9�+ TÐ*Ñ*Ô*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +õ 
Œ•zÐ)>Ð	?Ñ	?Ô	?ð 3ð 3Ý�Q�C�5˜A˜3˜%�.¨	Ð2Ñ2Ô2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3õ 
Œ•zØHð
Jñ 
Jô 
Jð -ð -å�A�3˜!˜˜�- tÐ,Ñ,Ô,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -õ 
Œ•zØHð
Jñ 
Jô 
Jð Fð Få�A�a�5˜A˜q˜6 A q 6¨A¨q¨6Ð2Ð3¸9ÐEÑEÔEÐEðFð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fõ 
Œ•zÐ)DÐ	EÑ	EÔ	Eð "ð "Ý�A�3˜"˜˜�.Ñ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "õ 
Œ•zÐ)DÐ	EÑ	EÔ	Eð +ð +Ý�A�3˜!˜˜q˜c B 4Ð(Ð)Ñ*Ô*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð +ð +s�   œ<¼A ÁA Á"BÂBÂ	BÂ(C	Ã	CÃCÃ/DÄDÄDÄ9EÅE Å#E ÆF-Æ-F1Æ4F1ÇG4Ç4G8Ç;G8ÈI É IÉIc                  óÄ   — t          d¦  «        } t          | ¦  «        }|j        dk    sJ ‚t          |                     ¦   «         t	          j        d¦  «        ¦  «         d S )Nr   r   )r   Úress     r   Útest_1d_sparse_constructorrG   g   sS   € Ý˜‰oŒo€GÝ
�GÑ
Ô
€CØŒ9˜ÒÐÐÐÝ�—’‘”¥¤¨¡¤Ñ/Ô/Ð/Ð/Ð/r   c                  ó¸   — t          ddgddgff¦  «        } | j        dk    sJ ‚t          |                      ¦   «         t	          j        g d¢¦  «        ¦  «         d S )Nr"   r#   r   r   r   )r   r"   r#   ©r   r   r   r   r   r%   ©rF   s    r   Útest_1d_tuple_constructorrK   n   s]   € Ý
�a˜�U˜a ˜U˜HÐ%Ñ
&Ô
&€CØŒ9˜ÒÐÐÐÝ�—’‘”¥¤¨¨¨Ñ 3Ô 3Ñ4Ô4Ð4Ð4Ð4r   c                  ó¼   — t          ddgddgffd¬¦  «        } | j        dk    sJ ‚t          |                      ¦   «         t	          j        g d¢¦  «        ¦  «         d S )Nr"   r#   r   r   r<   r3   )r   r"   r#   r   rI   rJ   s    r   Ú$test_1d_tuple_constructor_with_shaperM   t   sb   € Ý
�a˜�U˜a ˜U˜HÐ%¨TÐ
2Ñ
2Ô
2€CØŒ9˜ÒÐÐÐÝ�—’‘”¥¤¨¨¨Ñ 6Ô 6Ñ7Ô7Ð7Ð7Ð7r   c                  ó  — t          d¦  «        } t          j        t          d¬¦  «        5  d| d<   d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  | dd d …f          d d d ¦  «         d S # 1 swxY w Y   d S )N)r   r   z3'coo_array' object does not support item assignmentr:   r   ©r   r   z''coo_array' object is not subscriptabler   )r   r@   rA   Ú	TypeError)Úcoo_2ds    r   Útest_non_subscriptabilityrR   y   s"  € Ý�vÑÔ€Få	Œ•yØSð
Uñ 
Uô 
Uð ð àˆˆt‰ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
Œ•yØFð
Hñ 
Hô 
Hð ð àˆq�!�!�!ˆtŒˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s!   «=½AÁAÁ#A=Á=BÂBc                  ó"  — d\  } }t          j        | dz
  gd¬¦  «        t          j        |dz
  gd¬¦  «        f}t          dg|f| |f¬¦  «        }|                     | |z  df¦  «        }|j        d         j        t          j        d¦  «        k    sJ ‚|j        d         d         | |z  dz
  k    sJ ‚|                     || ¦  «        }|j        d         j        t          j        d¦  «        k    sJ ‚|j        d         d         |dz
  k    sJ ‚d S )	N)iô iü r   Úint32)Údtypegffffff
@r3   r   Úint64)r   r%   r   ÚreshapeÚcoordsrU   )ÚMÚNrX   ÚAÚBÚCs         r   Útest_reshape_overflowr^   „   s  € à�D€A€qÝŒh˜˜A™�w gÐ.Ñ.Ô.µ´¸!¸a¹%¸ÈÐ0PÑ0PÔ0PÐQ€FÝ�C�5˜&�/¨!¨Q¨Ð0Ñ0Ô0€Að 	
�	Š	�1�q‘5˜!�*ÑÔ€AØŒ8�AŒ;Ô¥¤¨Ñ 1Ô 1Ò1Ð1Ð1Ð1ØŒ8�AŒ;�qŒ>˜a !™e q™[Ò(Ð(Ð(Ð(ð 	
�	Š	�!�Q‰Œ€AØŒ8�AŒ;Ô¥¤¨Ñ 1Ô 1Ò1Ð1Ð1Ð1ØŒ8�AŒ;�qŒ>˜Q ™UÒ"Ð"Ð"Ð"Ð"Ð"r   c            	      ó  — t          g d¢¦  «        } | j        dk    sJ ‚|                      d¦  «        }|j        dk    sJ ‚t          |                     ¦   «         t          j        dgdgdgg¦  «        ¦  «         |                      d¦  «        }|j        dk    sJ ‚t          |                     ¦   «         t          j        g d¢g¦  «        ¦  «         t          j        t          d¬	¦  «        5  |                      d
¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬	¦  «        5  |                      d¦  «         d d d ¦  «         n# 1 swxY w Y   t          g d¢g d¢g¦  «        }|j        dk    sJ ‚|                     d¦  «        }|j        dk    sJ ‚t          |                     ¦   «         t          j        g d¢¦  «        ¦  «         |                     d¦  «        }|j        dk    sJ ‚t          |                     ¦   «         t          j        dgdgdggdgdgdggg¦  «        ¦  «         t          j        t          d¬	¦  «        5  |                     d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N©r   r   r   r   r=   r   r   r   ©r   r   zcannot reshape arrayr:   ©r   r   )r   r   ©r   r   r   ©r   r   r   r!   )r   )r   r   r   r   r   r   )r   r   r   r   )
r   r   rW   r   r   r   r%   r@   rA   rB   )Úarr1dÚcol_vecÚrow_vecÚarr2dÚflatÚ	to_3d_arrs         r   Útest_reshaperk   ”   s9  € Ý�i�i�iÑ Ô €EØŒ;˜$ÒÐÐÐà�mŠm˜FÑ#Ô#€GØŒ=˜FÒ"Ð"Ð"Ð"Ý�—’Ñ"Ô"¥B¤H¨q¨c°A°3¸¸¨_Ñ$=Ô$=Ñ>Ô>Ð>à�mŠm˜FÑ#Ô#€GØŒ=˜FÒ"Ð"Ð"Ð"Ý�—’Ñ"Ô"¥B¤H¨i¨i¨i¨[Ñ$9Ô$9Ñ:Ô:Ð:õ 
Œ•zÐ)?Ð	@Ñ	@Ô	@ð ð Ø�Š�eÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
Œ•zÐ)?Ð	@Ñ	@Ô	@ð ð Ø�Š�eÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ �y�y�y ) ) )Ð,Ñ-Ô-€EØŒ;˜&Ò Ð Ð Ð à�=Š=˜ÑÔ€DØŒ:˜ÒÐÐÐÝ�—’‘”¥¤Ð*<Ð*<Ð*<Ñ!=Ô!=Ñ>Ô>Ð>ð —’˜iÑ(Ô(€IØŒ?˜iÒ'Ð'Ð'Ð'Ý�×"Ò"Ñ$Ô$¥b¤h°!°°q°c¸A¸3°À1À#ÈÀsÈQÈCÀÐ/QÑ&RÔ&RÑSÔSÐSõ 
Œ•zÐ)?Ð	@Ñ	@Ô	@ð ð Ø�Š�eÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s6   Ã/DÄDÄDÄ7EÅEÅ EÉJ Ê JÊJc                  óº   — t          g d¢¦  «        } | j        dk    sJ ‚| j        dk    sJ ‚t          g d¢g d¢g¦  «        }|j        dk    sJ ‚|j        dk    sJ ‚d S )Nr`   r   r   rc   rd   r!   r   )r   r   Únnz©re   rh   s     r   Útest_nnzro   ¹   su   € Ý�i�i�iÑ Ô €EØŒ;˜$ÒÐÐÐØŒ9˜Š>ˆ>ˆ>ˆ>å�y�y�y ) ) )Ð,Ñ-Ô-€EØŒ;˜&Ò Ð Ð Ð ØŒ9˜Š>ˆ>ˆ>ˆ>ˆ>ˆ>r   c            	      ó€  — t          g d¢¦  «        j        } | j        dk    sJ ‚t          |                      ¦   «         t          j        g d¢¦  «        ¦  «         t          g d¢g d¢g¦  «        j        }|j        dk    sJ ‚t          |                     ¦   «         t          j        ddgddgdd	gg¦  «        ¦  «         d S )
Nr`   r   rc   rd   r   r   r   r   r   )r   ÚTr   r   r   r   r%   rn   s     r   Útest_transposerr   Ã   sº   € Ý�i�i�iÑ Ô Ô"€EØŒ;˜$ÒÐÐÐÝ�—’‘”¥"¤(¨9¨9¨9Ñ"5Ô"5Ñ6Ô6Ð6å�y�y�y ) ) )Ð,Ñ-Ô-Ô/€EØŒ;˜&Ò Ð Ð Ð Ý�—’‘”¥"¤(¨Q°¨F°Q¸°F¸QÀ¸FÐ+CÑ"DÔ"DÑEÔEÐEÐEÐEr   c                  ó   — t          g d¢¦  «                             d¬¦  «        } | j        dk    sJ ‚t          |                      ¦   «         t          j        g d¢¦  «        ¦  «         t          g d¢g d¢g¦  «                             d¬¦  «        }|j        dk    sJ ‚t          |                     ¦   «         t          j        g d¢g d¢g¦  «        ¦  «         t          j        t          d	¬
¦  «        5  t          g d¢¦  «                             d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬
¦  «        5  t          g d¢g d¢g¦  «                             d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr`   ©r   ©Úaxesr   rc   rd   ©r   r   r!   ú"axes don't match matrix dimensionsr:   úrepeated axis in transpose©r   r   )
r   Ú	transposer   r   r   r   r%   r@   rA   rB   rn   s     r   Útest_transpose_with_axisr|   Í   s  € Ý�i�i�iÑ Ô ×*Ò*°Ð*Ñ5Ô5€EØŒ;˜$ÒÐÐÐÝ�—’‘”¥"¤(¨9¨9¨9Ñ"5Ô"5Ñ6Ô6Ð6å�y�y�y ) ) )Ð,Ñ-Ô-×7Ò7¸VÐ7ÑDÔD€EØŒ;˜&Ò Ð Ð Ð Ý�—’‘”¥"¤(¨I¨I¨I°y°y°yÐ+AÑ"BÔ"BÑCÔCÐCå	Œ•zÐ)MÐ	NÑ	NÔ	Nð 4ð 4Ý�)�)�)ÑÔ×&Ò&¨FÐ&Ñ3Ô3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4õ 
Œ•zÐ)EÐ	FÑ	FÔ	Fð Að AÝ�9�9�9˜i˜i˜iÐ(Ñ)Ô)×3Ò3¸Ð3Ñ@Ô@Ð@ðAð Að Añ Aô Að Að Að Að Að Að Að Aøøøð Að Að Að Að Að As$   Ã4&D&Ä&D*Ä-D*Å*FÆFÆ
Fc                  ó~  — t          g d¢¦  «        } t          | j        t          j        g d¢¦  «        ¦  «         t          | j        t          j        | j        ¦  «        ¦  «         | j        j        | j        j        k    sJ ‚| j        j        j	        du sJ ‚g d¢| _        t          | j        ¦  «        dk    sJ ‚t          | j        t          j        g d¢¦  «        ¦  «         | j        j        | j        j        k    sJ ‚t          j        t          d¬¦  «        5  g d¢| _        d d d ¦  «         d S # 1 swxY w Y   d S )N©r   éþÿÿÿéýÿÿÿ©r   r   r   Fr   r   zcannot set row attributer:   )r   r   Úcolr   r%   ÚrowÚ
zeros_likerU   ÚflagsÚ	writeableÚlenrX   r@   rA   rB   rJ   s    r   Útest_1d_row_and_colrˆ   Ý   sd  € Ý
�K�K�KÑ
 Ô
 €CÝ�”�"œ( 9 9 9Ñ-Ô-Ñ.Ô.Ð.Ý�”�"œ-¨¬Ñ0Ô0Ñ1Ô1Ð1ØŒ7Œ=˜CœGœMÒ)Ð)Ð)Ð)ØŒ7Œ=Ô" eÐ+Ð+Ð+Ð+àˆiˆi€C„GÝˆsŒz‰?Œ?˜aÒÐÐÐÝ�”�"œ( 9 9 9Ñ-Ô-Ñ.Ô.Ð.ØŒ7Œ=˜CœGœMÒ)Ð)Ð)Ð)å	Œ•zÐ)CÐ	DÑ	DÔ	Dð ð Ø�)�)ˆŒðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Ä
D2Ä2D6Ä9D6c                  ó‚  — t          g d¢¦  «        } | j        | j        | j        | j        fD ]?}t          j        t          d¬¦  «        5   |¦   «          d d d ¦  «         n# 1 swxY w Y   Œ@| j        | j	        | j
        fD ]>}t           |¦   «                              ¦   «         |                      ¦   «         ¦  «         Œ?d S )Nr~   zCannot convertr:   )r   ÚtobsrÚtocscÚtodiaÚtolilr@   rA   rB   ÚtocooÚtocsrÚtodokr   r   )rF   Úfs     r   Útest_1d_toformatsr’   í   sù   € Ý
�K�K�KÑ
 Ô
 €CØŒi˜œ C¤I¨s¬yÐ9ð ð ˆÝŒ]�:Ð-=Ð>Ñ>Ô>ð 	ð 	ØˆA‰CŒCˆCð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	øàŒi˜œ C¤IÐ.ð 3ð 3ˆÝ�Q�Q‘S”S—[’[‘]”] C§K¢K¡M¤MÑ2Ô2Ð2Ð2ð3ð 3s   Á	A Á A$	Á'A$	Úarg)r   r   r   r    r#   c                 ó  — t          j        g d¢¦  «        }t          |¦  «        }|                     | d¬¦  «         |                     | ¦  «         |j        |j        k    sJ ‚t          |                     ¦   «         |¦  «         d S )Nr~   F©Úrefcheck©r   r%   r   Úresizer   r   r   ©r“   ÚdenrF   s      r   Útest_1d_resizer›   ö   sx   € å
Œ(�;�;�;Ñ
Ô
€CÝ
�C‰.Œ.€CØ‡J‚Jˆs˜U€JÑ#Ô#Ð#Ø‡J‚Jˆs�O„O€OØŒ9˜œ	Ò!Ð!Ð!Ð!Ý�—’‘” Ñ$Ô$Ð$Ð$Ð$r   ©r   r   r   r   c                 ó  — t          j        g d¢¦  «        }t          |¦  «        }|                     | d¬¦  «         |                     | ¦  «         |j        |j        k    sJ ‚t          |                     ¦   «         |¦  «         d S )Nr`   Fr•   r—   r™   s      r   Útest_1d_to_2d_resizerž      sx   € å
Œ(�9�9�9Ñ
Ô
€CÝ
�C‰.Œ.€Cà‡J‚Jˆs˜U€JÑ#Ô#Ð#Ø‡J‚Jˆs�O„O€OØŒ9˜œ	Ò!Ð!Ð!Ð!Ý�—’‘” Ñ$Ô$Ð$Ð$Ð$r   )r   r   r   r#   c                 ó  — t          j        g d¢g d¢g¦  «        }t          |¦  «        }|                     | d¬¦  «         |                     | ¦  «         |j        |j        k    sJ ‚t          |                     ¦   «         |¦  «         d S )Nr`   ©r   r   r   Fr•   r—   r™   s      r   Útest_2d_to_1d_resizer¡     s�   € å
Œ(�I�I�I˜y˜y˜yÐ)Ñ
*Ô
*€CÝ
�C‰.Œ.€CØ‡J‚Jˆs˜U€JÑ#Ô#Ð#Ø‡J‚Jˆs�O„O€OØŒ9˜œ	Ò!Ð!Ð!Ð!Ý�—’‘” Ñ$Ô$Ð$Ð$Ð$r   c            	      ó´  — t          g d¢g d¢ff¦  «        } | j        dk    sJ ‚t          |                      ¦   «         t	          j        ddg¦  «        ¦  «         |                      ¦   «          | j        dk    sJ ‚t          |                      ¦   «         t	          j        ddg¦  «        ¦  «         t          g d¢g d¢g d¢g d¢g d¢ff¦  «        }|j        dk    sJ ‚t	          j        d	d	gd	d	gd	d	ggd	d	gd	d	gd	d	ggd	d	gd	d	gdd	gggd	d	gd	d
gd	d	ggd	d	gd	d	gd	d	ggd	d	gd	d	gd	d	gggg¦  «        }t          |                     ¦   «         |¦  «         |                     ¦   «          |j        dk    sJ ‚t          |                     ¦   «         |¦  «         t          g d¢g d¢ff¦  «        }|j        dk    sJ ‚|                     ¦   «          |j        dk    sJ ‚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   rm   r   r   r   r%   Úsum_duplicates)re   r,   ÚexpectedÚ
arr_nodupss       r   Útest_sum_duplicatesr¨     s*  € å�y�y�y 9 9 9 ,Ð/Ñ0Ô0€EØŒ9˜Š>ˆ>ˆ>ˆ>Ý�—’‘”¥"¤(¨A¨q¨6Ñ"2Ô"2Ñ3Ô3Ð3Ø	×ÒÑÔÐØŒ9˜Š>ˆ>ˆ>ˆ>Ý�—’‘”¥"¤(¨A¨q¨6Ñ"2Ô"2Ñ3Ô3Ð3õ �y�y�y 9 9 9¨i¨i¨i¸¸¸ÀIÀIÀIÐ"NÐOÑPÔP€EØŒ9˜Š>ˆ>ˆ>ˆ>ÝŒxØˆqˆ6�A�q�6˜A˜q˜6Ð
" a¨ V¨a°¨V°a¸°VÐ$<ÀÀ1¸vÈÈ1ÀvÐPQÐSTÈvÐ>VÐ	WØˆqˆ6�A�q�6˜A˜q˜6Ð
" a¨ V¨a°¨V°a¸°VÐ$<ÀÀ1¸vÈÈ1ÀvÐPQÐSTÈvÐ>VÐ	Wð	Yñô €Hõ �—’‘” (Ñ+Ô+Ð+Ø	×ÒÑÔÐØŒ9˜Š>ˆ>ˆ>ˆ>Ý�—’‘” (Ñ+Ô+Ð+õ ˜L˜L˜L¨<¨<¨<¨/Ð:Ñ;Ô;€JØŒ>˜QÒÐÐÐØ×ÒÑÔÐØŒ>˜QÒÐÐÐÐÐr   c                  ón  — t          g d¢g d¢ff¦  «        } | j        dk    sJ ‚|                      ¦   «         dk    sJ ‚t          |                      ¦   «         t          j        ddg¦  «        ¦  «         |                      ¦   «          | j        dk    sJ ‚|                      ¦   «         dk    sJ ‚t          |                      ¦   «         t          j        ddg¦  «        ¦  «         t          | j        t          j        dg¦  «        ¦  «         t          | j	        t          j        dg¦  «        ¦  «         d S )N)r   r   r   r£   r   r   r   )
r   rm   Úcount_nonzeror   r   r   r%   Úeliminate_zerosr‚   rƒ   )re   s    r   Útest_eliminate_zerosr¬   1  s  € Ý�y�y�y 9 9 9 ,Ð/Ñ0Ô0€EØŒ9˜Š>ˆ>ˆ>ˆ>Ø×ÒÑ Ô  AÒ%Ð%Ð%Ð%Ý�—’‘”¥"¤(¨A¨q¨6Ñ"2Ô"2Ñ3Ô3Ð3Ø	×ÒÑÔÐØŒ9˜Š>ˆ>ˆ>ˆ>Ø×ÒÑ Ô  AÒ%Ð%Ð%Ð%Ý�—’‘”¥"¤(¨A¨q¨6Ñ"2Ô"2Ñ3Ô3Ð3Ý�”�BœH a S™MœMÑ*Ô*Ð*Ý�”�BœH a S™MœMÑ*Ô*Ð*Ð*Ð*r   c                  óì   — t          j        g d¢¦  «        } t          j        g d¢¦  «        }| |z   }t          | ¦  «        |z   }t          |¦  «        t          |¦  «        u sJ ‚t	          ||¦  «         d S ©N©r   r   r€   r   r¤   )r   r%   r   Útyper   ©Úden_aÚden_bÚexprF   s       r   Útest_1d_add_denserµ   >  sv   € ÝŒH�^�^�^Ñ$Ô$€EÝŒH�\�\�\Ñ"Ô"€EØ
�%‰-€CÝ
�EÑ
Ô
˜UÑ
"€CÝ�‰9Œ9�˜S™	œ	Ð!Ð!Ð!Ð!Ý��cÑÔÐÐÐr   c                  óê   — t          j        g d¢¦  «        } t          j        g d¢¦  «        }| |z   }t          | ¦  «        t          |¦  «        z   }t          ||                     ¦   «         ¦  «         d S r®   )r   r%   r   r   r   ©r²   r³   Ú	dense_sumÚ
sparse_sums       r   Útest_1d_add_sparserº   G  sm   € ÝŒH�^�^�^Ñ$Ô$€EÝŒH�\�\�\Ñ"Ô"€EØ˜‘€Iå˜5Ñ!Ô!¥I¨eÑ$4Ô$4Ñ4€JÝ�˜J×.Ò.Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1r   c                  óà   — t          j        g d¢¦  «        } t          j        g d¢¦  «        }| |z  }t          | ¦  «        |z  }t          j        |¦  «        dk    sJ ‚t	          ||¦  «         d S )Nr¯   r¤   r   )r   r%   r   Úndimr   r±   s       r   Útest_1d_matmul_vectorr½   P  sr   € ÝŒH�^�^�^Ñ$Ô$€EÝŒH�\�\�\Ñ"Ô"€EØ
�%‰-€CÝ
�EÑ
Ô
˜UÑ
"€CÝŒ7�3‰<Œ<˜1ÒÐÐÐÝ��cÑÔÐÐÐr   c                  óþ   — t          j        g d¢¦  «        } t          j        g d¢g d¢g¦  «        j        }| |z  }t          | ¦  «        |z  }t	          |¦  «        t	          |¦  «        u sJ ‚t          ||¦  «         d S )Nr¯   r¤   ©r   r   r   r   )r   r%   rq   r   r°   r   )rš   Úotherr´   rF   s       r   Útest_1d_matmul_multivectorrÁ   Y  s€   € Ý
Œ(�>�>�>Ñ
"Ô
"€CÝŒH�l�l�l L L LÐ1Ñ2Ô2Ô4€EØ
�‰+€CÝ
�C‰.Œ.˜5Ñ
 €CÝ�‰9Œ9�˜S™	œ	Ð!Ð!Ð!Ð!Ý��cÑÔÐÐÐr   c                  ó0  — t          j        g d¢g d¢g¦  «        } t          | ¦  «        }| | j        z  }||j        z  }t	          |                     ¦   «         |¦  «         t          j        g d¢g d¢g¦  «        } t          | ¦  «        }| | j        z  }|| j        z  }t	          ||¦  «         t          j        g d¢g d¢g¦  «        }t          j        g d¢¦  «        }t          |¦  «        }||j        z  }||j        z  }t	          ||¦  «         t          j        g d¢¦  «        }t          j        dgdgd	gg¦  «        }||z  }t          |¦  «        |z  }t	          ||¦  «         t          |¦  «        t          |¦  «        z  }t	          ||¦  «         d S )
Nr¤   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   rq   r   r   Úlist)rš   rh   r´   rF   r²   r³   re   s          r   Útest_2d_matmul_multivectorrÄ   b  s“  € å
Œ(�L�L�L , , ,Ð/Ñ
0Ô
0€CÝ�c‰NŒN€EØ
�”‰+€CØ
�%”'‰/€CÝ�—’‘” Ñ$Ô$Ð$õ Œ(�O�O�O _ _ _Ð5Ñ
6Ô
6€CÝ�c‰NŒN€EØ
�”‰+€CØ
�#”%‰-€CÝ��cÑÔÐõ ŒH�o�o�o   Ð7Ñ8Ô8€EÝŒH�_�_�_Ñ%Ô%€EÝ�eÑÔ€EØ
�%”'‰/€CØ
�%”'‰/€CÝ��cÑÔÐõ ŒH�Y�Y�YÑÔ€EÝŒH�q�c˜A˜3  �_Ñ%Ô%€EØ
�%‰-€CÝ
�EÑ
Ô
˜UÑ
"€CÝ��cÑÔÐÝ
�EÑ
Ô
�T %™[œ[Ñ
(€CÝ��cÑÔÐÐÐr   c                  óÜ   — t          j        g d¢¦  «        } t          j        t          d¬¦  «        5  t          | ¦  «                             ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nr¯   z diagonal requires two dimensionsr:   )r   r%   r@   rA   rB   r   Údiagonal)rš   s    r   Útest_1d_diagonalrÇ   ƒ  s§   € Ý
Œ(�>�>�>Ñ
"Ô
"€CÝ	Œ•zÐ)KÐ	LÑ	LÔ	Lð "ð "Ý�#‰Œ×ÒÑ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð "ð "s   ²"A!Á!A%Á(A%r   )rt   ©r   )r   r   ©r   r   r   )r   r   r   r`   )r   r"   r   r   r   r    c                 óæ   — t           j                             d¦  «         t           j                             dd| ¬¦  «        }t	          t          |¦  «                             ¦   «         |¦  «         d S )Nr$   r   r    )ÚlowÚhighÚsize)r   r&   r'   Úrandintr   r   Útodense)r   Úarrs     r   Útest_nd_todenserÑ   ‰  s\   € õ „I‡N‚N�2ÑÔÐÝ
Œ)×
Ò
 ¨°Ð
Ñ
6Ô
6€CÝ•˜3‘”×'Ò'Ñ)Ô)¨3Ñ/Ô/Ð/Ð/Ð/r   c                 óÄ   — t          | ¦  «        }t          |¦  «        }|j        | k    sJ ‚t          |                     ¦   «         t	          j        | ¦  «        ¦  «         d S ©Nr   )r   Ú	empty_arrrF   s      r   Útest_nd_sparse_constructorrÕ   ‘  sW   € õ ˜%Ñ Ô €IÝ
�IÑ
Ô
€CØŒ9˜ÒÐÐÐÝ�—’‘”¥¤¨¡¤Ñ0Ô0Ð0Ð0Ð0r   c                 óæ   — t           j                             d¦  «         t          j        j        | Ž }t	          |¦  «        }|j        | k    sJ ‚t          |                     ¦   «         |¦  «         d S )Nr$   ©r   r&   r'   r(   r   r   r   r   ©r   rÐ   rF   s      r   Útest_nd_tuple_constructorrÙ   š  sb   € õ „I‡N‚N�2ÑÔÐÝ
Œ)Œ/˜5Ð
!€CÝ
�C‰.Œ.€CØŒ9˜ÒÐÐÐÝ�—’‘” Ñ$Ô$Ð$Ð$Ð$r   c                 óê   — t           j                             d¦  «         t          j        j        | Ž }t	          || ¬¦  «        }|j        | k    sJ ‚t          |                     ¦   «         |¦  «         d S )Nr$   r3   r×   rØ   s      r   Ú$test_nd_tuple_constructor_with_shaperÛ   ¤  si   € õ „I‡N‚N�2ÑÔÐÝ
Œ)Œ/˜5Ð
!€CÝ
�C˜uÐ
%Ñ
%Ô
%€CØŒ9˜ÒÐÐÐÝ�—’‘” Ñ$Ô$Ð$Ð$Ð$r   c                  ó>  — t          j        t          d¬¦  «        5  t          ddgddgddgddgffd¬	¦  «         d d d ¦  «         n# 1 swxY w Y   t          g g g g g ffd
¬	¦  «        } t	          |                      ¦   «         t          j        d
¦  «        ¦  «         d S )Nzexceeds matrix dimensionr:   r"   r#   r   r   r   )r   r   r   r3   )r   r   r   r   )r@   rA   rB   r   r   r   r   Úempty)rÔ   s    r   Ú(test_tuple_constructor_for_dim_size_zerorÞ   ®  sû   € å	Œ•zÐ)CÐ	DÑ	DÔ	Dð Eð EÝ�A�q�6˜Q ˜F Q¨ F¨Q°¨FÐ3Ð4¸GÐDÑDÔDÐDðEð Eð Eñ Eô Eð Eð Eð Eð Eð Eð Eøøøð Eð Eð Eð Eõ ˜2  B¨¨BÐ/Ð0¸	ÐBÑBÔB€IÝ�×"Ò"Ñ$Ô$¥b¤h¨yÑ&9Ô&9Ñ:Ô:Ð:Ð:Ð:s   œAÁAÁA)r   Ú	new_shape))©r   r"   r   r    )r   r   é   r   )rà   )é$   é   )rà   )i8  )rà   )r   r   r   r   r   r    r   c                 óh  — t           j                             d¦  «        }t          | d|t          ¬¦  «        }|j        | k    sJ ‚|                     ¦   «         }|                     |¦  «        }|                     |¦  «        }|j        |k    sJ ‚t          |                     ¦   «         |¦  «         d S ©NéŸ4eç333333ã?©ÚdensityÚrngrU   )	r   r&   Údefault_rngr   Úintr   r   rW   r   )r   rß   rê   r,   Úden4dÚexp_arrÚres_arrs          r   Útest_nd_reshaperð   ·  s¤   € õ Œ)×
Ò
 Ñ
)Ô
)€Cå˜¨°½CÐ@Ñ@Ô@€EØŒ;˜%ÒÐÐÐØ�MŠM‰OŒO€Eà�mŠm˜IÑ&Ô&€GØ�mŠm˜IÑ&Ô&€GØŒ=˜IÒ%Ð%Ð%Ð%Ý�—’Ñ"Ô" GÑ,Ô,Ð,Ð,Ð,r   c                 óÖ   — t           j                             d¦  «        }t          | d|t          ¬¦  «        }|j        t          j        |                     ¦   «         ¦  «        k    sJ ‚d S rå   )r   r&   rë   r   rì   rm   rª   r   )r   rê   rÐ   s      r   Útest_nd_nnzrò   É  s[   € õ Œ)×
Ò
 Ñ
)Ô
)€Cå
�u c¨s½#Ð
>Ñ
>Ô
>€CØŒ7•bÔ& s§{¢{¡}¤}Ñ5Ô5Ò5Ð5Ð5Ð5Ð5Ð5r   c                 ó>  — t           j                             d¦  «        }t          | d|t          ¬¦  «        }|                     ¦   «         j        }|                     ¦   «         }|j        | d d d…         k    sJ ‚t          ||                     ¦   «         ¦  «         d S )Nræ   rç   rè   r?   )
r   r&   rë   r   rì   r   rq   r{   r   r   )r   rê   rÐ   rî   Ú	trans_arrs        r   Útest_nd_transposerõ   Ò  sŠ   € õ Œ)×
Ò
 Ñ
)Ô
)€Cå
�u c¨s½#Ð
>Ñ
>Ô
>€CØ�kŠk‰mŒmŒo€GØ—’‘”€IØŒ?˜e D D b DœkÒ)Ð)Ð)Ð)Ý�˜)×+Ò+Ñ-Ô-Ñ.Ô.Ð.Ð.Ð.r   )r   Ú	axis_perm))r   rt   )r!   rw   ))r   r   r   r   r    r   )r   r   r   r    r   r   c                 ó0  — t           j                             d¦  «        }t          | d|t          ¬¦  «        }|                     |¬¦  «        }t          |                     ¦   «         t          j        |                     ¦   «         |¬¦  «        ¦  «         d S )Nræ   rç   rè   ru   )r   r&   rë   r   rì   r{   r   r   )r   rö   rê   rÐ   rô   s        r   Útest_nd_transpose_with_axisrø   Þ  s{   € õ Œ)×
Ò
 Ñ
)Ô
)€Cå
�u c¨s½#Ð
>Ñ
>Ô
>€CØ—’ 9�Ñ-Ô-€IÝ�×"Ò"Ñ$Ô$¥b¤l°3·;²;±=´=ÀyÐ&QÑ&QÔ&QÑRÔRÐRÐRÐRr   c                  óp  — t          j        t          d¬¦  «        5  t          g d¢¦  «                             d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          g d¢g d¢g¦  «                             d	¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
Nrx   r:   r`   rw   ru   ry   rc   rd   rz   )r@   rA   rB   r   r{   rC   r   r   Ú%test_transpose_with_inconsistent_axisrú   é  sL  € Ý	Œ•zÐ)MÐ	NÑ	NÔ	Nð 4ð 4Ý�)�)�)ÑÔ×&Ò&¨FÐ&Ñ3Ô3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4õ 
Œ•zÐ)EÐ	FÑ	FÔ	Fð Að AÝ�9�9�9˜i˜i˜iÐ(Ñ)Ô)×3Ò3¸Ð3Ñ@Ô@Ð@ðAð Að Añ Aô Að Að Að Að Að Að Að Aøøøð Að Að Að Að Að As#   œ&AÁAÁAÁ4*B+Â+B/Â2B/c            
      ó  — t          g d¢g d¢g d¢g d¢ff¦  «        } | j        dk    sJ ‚|                      ¦   «         dk    sJ ‚t          |                      ¦   «         t          j        g d¢g d¢gg d¢g d¢gg d¢g d	¢gg¦  «        ¦  «         |                      ¦   «          | j        dk    sJ ‚|                      ¦   «         dk    sJ ‚t          |                      ¦   «         t          j        g d¢g d¢gg d¢g d¢gg d¢g d	¢gg¦  «        ¦  «         g d¢g d¢g d¢g d
¢g d¢f}t          g d¢|f¦  «        }|j        dk    sJ ‚|                     ¦   «         dk    sJ ‚|                     ¦   «          |j        dk    sJ ‚|                     ¦   «         dk    sJ ‚t          |j        t          j        g ¦  «        ¦  «         t          |j	        t          j        g ¦  «        ¦  «         t          |j
        g g g g g f¦  «         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   r   )r   r   r   r   r   )r   rm   rª   r   r   r   r%   r«   r‚   rƒ   rX   )Úarr3drX   Úarr5ds      r   Útest_nd_eliminate_zerosrþ   ñ  sX  € å�|�|�| l l l°L°L°LÀ,À,À,Ð%OÐPÑQÔQ€EØŒ9˜Š>ˆ>ˆ>ˆ>Ø×ÒÑ Ô  AÒ%Ð%Ð%Ð%Ý�—’‘”¥"¤(¨Y¨Y¨Y¸	¸	¸	Ð,BØ%. Y Y°	°	°	Ð$:¸Y¸Y¸YÈ	È	È	Ð<Rð,Tñ #Uô #Uñ Vô Vð Và	×ÒÑÔÐØŒ9˜Š>ˆ>ˆ>ˆ>Ø×ÒÑ Ô  AÒ%Ð%Ð%Ð%Ý�—’‘”¥"¤(¨Y¨Y¨Y¸	¸	¸	Ð,BØ%. Y Y°	°	°	Ð$:¸Y¸Y¸YÈ	È	È	Ð<Rð,Tñ #Uô #Uñ Vô Vð Vð ˆlˆl˜L˜L˜L¨,¨,¨,¸¸¸ÀlÀlÀlÐS€FÝ�|�|�| VÐ,Ñ-Ô-€EØŒ9˜Š>ˆ>ˆ>ˆ>Ø×ÒÑ Ô  AÒ%Ð%Ð%Ð%Ø	×ÒÑÔÐØŒ9˜Š>ˆ>ˆ>ˆ>Ø×ÒÑ Ô  AÒ%Ð%Ð%Ð%Ý�”�BœH R™LœLÑ)Ô)Ð)Ý�”�BœH R™LœLÑ)Ô)Ð)Ý�”  B¨¨B°Ð3Ñ4Ô4Ð4Ð4Ð4r   c                 óh  — t           j                             d¦  «        }t          | d|t          ¬¦  «        }t          | d|t          ¬¦  «        }|                     ¦   «         |                     ¦   «         }}||z   }||z   }t          |¦  «        t          |¦  «        u sJ ‚t          ||¦  «         d S rå   ©r   r&   rë   r   rì   r   r°   r   ©r   rê   Úsp_xÚsp_yÚden_xÚden_yr´   rF   s           r   Útest_nd_add_denser    ó£   € õ Œ)×
Ò
 Ñ
)Ô
)€CÝ˜ s°½3Ð?Ñ?Ô?€DÝ˜ s°½3Ð?Ñ?Ô?€DØ—<’<‘>”> 4§<¢<¡>¤>ˆ5€EØ
�%‰-€CØ
�‰,€CÝ�‰9Œ9�˜S™	œ	Ð!Ð!Ð!Ð!Ý��cÑÔÐÐÐr   c                 óL  — t           j                             d¦  «        }t          | d|t          ¬¦  «        }t          | d|t          ¬¦  «        }|                     ¦   «         |                     ¦   «         }}||z   }||z   }t          ||                     ¦   «         ¦  «         d S rå   ©r   r&   rë   r   rì   r   r   ©r   rê   r  r  r  r  r¸   r¹   s           r   Útest_nd_add_sparser    s’   € õ Œ)×
Ò
 Ñ
)Ô
)€CÝ˜¨°#½SÐAÑAÔA€DÝ˜¨°#½SÐAÑAÔA€DØ—<’<‘>”> 4§<¢<¡>¤>ˆ5€Eà˜‘€IØ˜‘€JÝ�˜J×.Ò.Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1r   c                  ó  — t          j        dgt           j        ggdgdggg¦  «        } t          j        dgdggdgdggg¦  «        }| |z   }t          | ¦  «        t          |¦  «        z   }t	          ||                     ¦   «         ¦  «         d S ©Nr   r€   r   r   r   )r   r%   Úinfr   r   r   r·   s       r   Útest_add_sparse_with_infr  %  ó‘   € åŒH˜�s�RœV˜H�o¨¨¨q¨c {Ð3Ñ4Ô4€EÝŒH˜�s˜Q˜C�j A 3¨¨ *Ð-Ñ.Ô.€EØ˜‘€IÝ˜5Ñ!Ô!¥I¨eÑ$4Ô$4Ñ4€JÝ�˜J×.Ò.Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1r   )Úa_shapeÚb_shape))rÈ   )r$   )©r   r   )r   r    )©r    r"   r   r   )r"   r    r   r   c                 ó  — t           j                             d¦  «        }t          | d|t          ¬¦  «        }t          |d|t          ¬¦  «        }t          j        t          d¬¦  «        5  ||z    d d d ¦  «         d S # 1 swxY w Y   d S )Nræ   rç   rè   z6(Incompatible|inconsistent) shapes|cannot be broadcastr:   ©r   r&   rë   r   rì   r@   rA   rB   ©r  r  rê   Úarr_aÚarr_bs        r   Ú+test_nd_add_sparse_with_inconsistent_shapesr  .  sÑ   € õ Œ)×
Ò
 Ñ
)Ô
)€Cå˜'¨C°SÅÐDÑDÔD€EÝ˜'¨C°SÅÐDÑDÔD€EÝ	Œ•zØUð
Wñ 
Wô 
Wð ð à�‰ˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð ó   Á+A>Á>BÂBc                 óh  — t           j                             d¦  «        }t          | d|t          ¬¦  «        }t          | d|t          ¬¦  «        }|                     ¦   «         |                     ¦   «         }}||z
  }||z
  }t          |¦  «        t          |¦  «        u sJ ‚t          ||¦  «         d S rå   r   r  s           r   Útest_nd_sub_denser  ;  r  r   c                 óL  — t           j                             d¦  «        }t          | d|t          ¬¦  «        }t          | d|t          ¬¦  «        }|                     ¦   «         |                     ¦   «         }}||z
  }||z
  }t          ||                     ¦   «         ¦  «         d S rå   r	  r
  s           r   Útest_nd_sub_sparser  H  s’   € õ Œ)×
Ò
 Ñ
)Ô
)€Cå˜ s°½3Ð?Ñ?Ô?€DÝ˜ s°½3Ð?Ñ?Ô?€DØ—<’<‘>”> 4§<¢<¡>¤>ˆ5€Eà˜‘€IØ˜‘€JÝ�˜J×.Ò.Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1r   c                  ó  — t          j        dgt           j        ggdgdggg¦  «        } t          j        dgdggdgdggg¦  «        }| |z
  }t          | ¦  «        t          |¦  «        z
  }t	          ||                     ¦   «         ¦  «         d S r  )r   r%   r)   r   r   r   r·   s       r   Útest_nd_sub_sparse_with_nanr!  V  r  r   c                 ó  — t           j                             d¦  «        }t          | d|t          ¬¦  «        }t          |d|t          ¬¦  «        }t          j        t          d¬¦  «        5  ||z
   d d d ¦  «         d S # 1 swxY w Y   d S )Nræ   rç   rè   r9   r:   r  r  s        r   Ú+test_nd_sub_sparse_with_inconsistent_shapesr#  _  sÈ   € õ Œ)×
Ò
 Ñ
)Ô
)€Cå˜'¨C°SÅÐDÑDÔD€EÝ˜'¨C°SÅÐDÑDÔD€EÝ	Œ•zÐ)>Ð	?Ñ	?Ô	?ð ð Ø�‰ˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð r  )	)©r   r   r   r    ©r    ©rO   rt   ))r   r   r   r   r#   )r#   ©)r   r   r   r   rt   )©r   r    r   r   r   ©r   r   )©r   r    r%  ©r*  )r    r   )r   r=   )r<   r<   )Ú	mat_shapeÚ	vec_shapec                 ól  — t           j                             d¦  «        }t          | d|t          ¬¦  «        }t          |d|t          ¬¦  «        }|                     ¦   «         |                     ¦   «         }}||z  }||z  }t          ||¦  «         |t          |¦  «        z  }t          ||¦  «         d S rå   ©r   r&   rë   r   rì   r   r   rÃ   )	r,  r-  rê   r  r  r  r  r´   rF   s	            r   Útest_nd_matmul_vectorr0  v  s¤   € å
Œ)×
Ò
 Ñ
)Ô
)€Cå˜	¨3°C½sÐCÑCÔC€DÝ˜	¨3°C½sÐCÑCÔC€DØ—<’<‘>”> 4§<¢<¡>¤>ˆ5€EØ
�%‰-€CØ
�‰,€CÝ��SÑÔÐØ
•�e‘”Ñ
€CÝ��SÑÔÐÐÐr   ))r$  )r   r   r    r   r&  r'  )©r   r#   r   r   )r1  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   )r<   r2  r+  )Ú
mat_shape1Ú
mat_shape2c                 óä  — t           j                             d¦  «        }t          | d|t          ¬¦  «        }t          |d|t          ¬¦  «        }|                     ¦   «         |                     ¦   «         }}||z  }||z  }t          |                     ¦   «         |¦  «         ||z  }t          ||¦  «         |t          |¦  «        z  }t          ||¦  «         ||z  }t          ||¦  «         d S ©Nræ   rç   ©ré   Úrandom_staterU   r/  )	r3  r4  rê   r  r  r  r  r´   rF   s	            r   Útest_nd_matmulr9  ’  sà   € å
Œ)×
Ò
 Ñ
)Ô
)€Cå˜
¨C¸cÍÐMÑMÔM€DÝ˜
¨C¸cÍÐMÑMÔM€DØ—<’<‘>”> 4§<¢<¡>¤>ˆ5€EØ
�%‰-€Cà
�‰+€CÝ�—’‘” Ñ$Ô$Ð$à
�‰,€CÝ��cÑÔÐØ
•�e‘”Ñ
€CÝ��cÑÔÐð �$‰,€CÝ��cÑÔÐÐÐr   c                  óÞ  — t           j                             d¦  «        } t          dd| t          ¬¦  «        }t          dd| t          ¬¦  «        }t          j        t          d¬¦  «        5  ||z   d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  ||                     ¦   «         z   d d d ¦  «         n# 1 swxY w Y   t          dd| t          ¬¦  «        }t          j        t          d	¬¦  «        5  ||z   d d d ¦  «         n# 1 swxY w Y   t          j        t          d	¬¦  «        5  ||                     ¦   «         z   d d d ¦  «         d S # 1 swxY w Y   d S )
Nræ   )r   r    r   r   r   rç   r7  )r   r    r   r   r    z)matmul: dimension mismatch with signaturer:   )r   r    r   r   z&Batch dimensions are not broadcastable)	r   r&   rë   r   rì   r@   rA   rB   r   )rê   r  r  Úsp_zs       r   Ú.test_nd_matmul_sparse_with_inconsistent_arraysr<  ¨  sN  € Ý
Œ)×
Ò
 Ñ
)Ô
)€Cå˜¨S¸sÍ#ÐNÑNÔN€DÝ˜¨S¸sÍ#ÐNÑNÔN€DÝ	Œ•zÐ)TÐ	UÑ	UÔ	Uð ð Øˆt‰ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•zÐ)TÐ	UÑ	UÔ	Uð  ð  Ø�—’‘”ÑÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  õ ˜	¨3¸SÍÐLÑLÔL€DÝ	Œ•zÐ)QÐ	RÑ	RÔ	Rð ð Øˆt‰ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•zÐ)QÐ	RÑ	RÔ	Rð  ð  Ø�—’‘”ÑÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð  ð  sH   Á+A=Á=BÂBÂ#CÃCÃCÄDÄDÄDÄ=E"Å"E&Å)E&c                  ót  — t          g d¢¦  «        } t          g d¢¦  «        }t          j        |                      ¦   «         |                     ¦   «         ¦  «        }|                      |¦  «        }t	          ||¦  «         |                      |                     ¦   «         ¦  «        }t	          ||¦  «         d S )Nr   r   )r   r   Údotr   r   )ÚaÚbr´   rF   s       r   Útest_dot_1d_1drA  ¹  s“   € Ý�'�'�'ÑÔ€AÝ�'�'�'ÑÔ€AÝ
Œ&�—’‘”˜aŸiši™kœkÑ
*Ô
*€CØ
�%Š%�‰(Œ(€CÝ��cÑÔÐØ
�%Š%�—	’	‘”Ñ
Ô
€CÝ��cÑÔÐÐÐr   c                  óö   — t          ddgddgddgg¦  «        } d}|                      |¦  «        }t          j        |                      ¦   «         |¦  «        }t	          |                     ¦   «         |¦  «         d S )Nr   r   r   r   r    r   )r   r>  r   r   r   )r?  r@  rF   r´   s       r   Útest_dot_sparse_scalarrC  Ã  sm   € Ý�A�q�6˜A˜q˜6 A q 6Ð*Ñ+Ô+€AØ	€AØ
�%Š%�‰(Œ(€CÝ
Œ&�—’‘”˜aÑ
 Ô
 €CÝ�—’‘” Ñ$Ô$Ð$Ð$Ð$r   c                  óè   — t          ddggddggg¦  «        } t          g d¢¦  «        }t          j        t          d¬¦  «        5  |                      |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   r   r   r   znot aligned for n-D dotr:   )r   r@   rA   rB   r>  )r  r  s     r   Ú!test_dot_with_inconsistent_shapesrE  Ë  s½   € Ý˜˜A˜�x 1 a & Ð*Ñ+Ô+€EÝ�i�i�iÑ Ô €EÝ	Œ•zÐ)BÐ	CÑ	CÔ	Cð ð Ø�	Š	�%ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÁA'Á'A+Á.A+c                  ó2  — t          ddgddgg¦  «        } t          j        t          d¬¦  «        5  |                      d ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |                      d ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  | d z   d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  d | z   d d d ¦  «         d S # 1 swxY w Y   d S )	Nr   r   r   r   zargument not supported typer:   zarg not supported typezunsupported operand type)r   r@   rA   rP   r>  Ú	tensordot)r  s    r   Útest_matmul_dot_not_implementedrH  Ò  s
  € Ý˜˜1�v  1˜vÐ&Ñ'Ô'€EÝ	Œ•yÐ(EÐ	FÑ	FÔ	Fð ð Ø�	Š	�$‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•yÐ(@Ð	AÑ	AÔ	Að ð Ø�Š˜ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•yÐ(BÐ	CÑ	CÔ	Cð ð Ø�‰ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•yÐ(BÐ	CÑ	CÔ	Cð ð Øˆu‰ˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð sG   ±AÁAÁAÁ9BÂBÂ"BÃCÃCÃCÃ9DÄDÄD)
)rb   rb   )©r   r   ©r   r   ))r   r   r)  )©r   r   r   r   rÈ   )r%  ©r   r   r    r   )rK  )r   r   ))r   r    rL  )rI  ©r   r   r   r   )©r   r#   r   )r   r    r   r   r   )©r   r    r   r   rM  c                 óz  — t           j                             d¦  «        }t          | d|t          ¬¦  «        }t          |d|t          ¬¦  «        }t          j        |                     ¦   «         |                     ¦   «         ¦  «        }|                     |                     ¦   «         ¦  «        }t          ||¦  «         |                     t          |                     ¦   «         ¦  «        ¦  «        }t          ||¦  «         |                     |¦  «        }t          |                     ¦   «         |¦  «         d S r6  )	r   r&   rë   r   rì   r>  r   r   rÃ   )r  r  rê   r  r  r´   rF   s          r   Útest_dot_ndrQ  å  sí   € å
Œ)×
Ò
 Ñ
)Ô
)€Cå˜¨#¸CÅsÐKÑKÔK€EÝ˜¨#¸CÅsÐKÑKÔK€Eå
Œ&�—’‘” %§-¢-¡/¤/Ñ
2Ô
2€Cà
�)Š)�E—M’M‘O”OÑ
$Ô
$€CÝ��cÑÔÐØ
�)Š)•D˜Ÿš™œÑ)Ô)Ñ
*Ô
*€CÝ��cÑÔÐà
�)Š)�EÑ
Ô
€CÝ�—’‘” Ñ$Ô$Ð$Ð$Ð$r   rI  rJ  r   rK  rÈ   r   r%  rL  rO  rM  rN  )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  rv   c                 óÚ  — t           j                             d¦  «        }t          | d|t          ¬¦  «        }t          |d|t          ¬¦  «        }t          j        |                     ¦   «         |                     ¦   «         |¬¦  «        }|                     |                     ¦   «         |¬¦  «        }t          ||¦  «         |                     t          |                     ¦   «         ¦  «        |¬¦  «        }t          ||¦  «         |                     ||¬¦  «        }t          |¦  «        t          u r$t          |                     ¦   «         |¦  «         d S t          ||¦  «         d S )Nræ   rç   r7  ru   )r   r&   rë   r   rì   rG  r   r   rÃ   r°   r   )r  r  rv   rê   r  r  r´   rF   s           r   Útest_tensordotrS    s)  € å
Œ)×
Ò
 Ñ
)Ô
)€Cå˜¨#¸CÅsÐKÑKÔK€EÝ˜¨#¸CÅsÐKÑKÔK€Eå
Œ,�u—}’}‘”¨¯ª©¬¸dÐ
CÑ
CÔ
C€Cð �/Š/˜%Ÿ-š-™/œ/°ˆ/Ñ
5Ô
5€CÝ��cÑÔÐØ
�/Š/�$˜uŸ}š}™œÑ/Ô/°dˆ/Ñ
;Ô
;€CÝ��cÑÔÐð �/Š/˜% dˆ/Ñ
+Ô
+€CÝˆC�y„y•IÐÐÝ�S—[’[‘]”] CÑ(Ô(Ð(Ð(Ð(å�S˜#ÑÔÐÐÐr   c                  óJ  — t           j                             d¦  «        } t          dd| t          ¬¦  «        }t          dd| t          ¬¦  «        }dgdgf}t          j        t          d¬¦  «        5  |                     ||¬	¦  «         d d d ¦  «         n# 1 swxY w Y   t          d
d| t          ¬¦  «        }t          dd| t          ¬¦  «        }g d¢ddgf}t          j        t          d¬¦  «        5  |                     ||¬	¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nræ   )r   r   r    rç   r7  )r   r   r   r   z*sizes of the corresponding axes must matchr:   ru   )r    r   r   r   r   )r   r   r   r   )r   r   r   r   r   z,axes lists/tuples must be of the same length)	r   r&   rë   r   rì   r@   rA   rB   rG  )rê   r  r  rv   s       r   Ú test_tensordot_with_invalid_argsrU    s©  € Ý
Œ)×
Ò
 Ñ
)Ô
)€Cå˜¨#¸CÅsÐKÑKÔK€EÝ˜¨#¸CÅsÐKÑKÔK€EàˆC�!�ˆ:€DÝ	Œ•zÐ)UÐ	VÑ	VÔ	Vð *ð *Ø�Š˜ DˆÑ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *õ ˜¨cÀÍ3ÐOÑOÔO€EÝ˜¨C¸cÍÐMÑMÔM€EàˆGˆG�a˜�UÐ€DÝ	Œ•zð *&ð 
'ñ 
'ô 
'ð *ð *à�Š˜ DˆÑ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð *ð *s$   Á1BÂBÂBÃ3DÄDÄD)Úactual_shapeÚbroadcast_shape)	))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"   )ra   )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   c                 ó0  — t           j                             d¦  «        }t          | d|t          ¬¦  «        }|                     |¦  «        }t          j        |                     ¦   «         |¦  «        }t          |                     ¦   «         |¦  «         d S r6  )	r   r&   rë   r   rì   Ú_broadcast_toÚbroadcast_tor   r   )rV  rW  rê   rÐ   rF   r´   s         r   Útest_broadcast_tor[  +  sy   € õ Œ)×
Ò
 Ñ
)Ô
)€Cå
�|¨S¸sÍ#Ð
NÑ
NÔ
N€CØ
×
Ò
˜OÑ
,Ô
,€CÝ
Œ/˜#Ÿ+š+™-œ-¨Ñ
9Ô
9€CÝ�—’‘” Ñ$Ô$Ð$Ð$Ð$r   ))r   r    r   r   r#   r  r  )r"   r    r   r   r   c                 óð  ‡— t           j                             d¦  «        }t          | d|t          ¬¦  «        }|                     ¦   «         }t	          t          j        |j        d d…         ¦  «        ¦  «        }|                     |f|j        dd …         z   ¦  «        Šˆfd„t          |¦  «        D ¦   «         }t          |Ž }t          |¦  «        }t          |                     ¦   «         |¦  «         d S )Nræ   rç   r7  r   c                 ó.   •— g | ]}‰|d d …d d …f         ‘ŒS rÓ   rC   )Ú.0ÚiÚreshaped_arrays     €r   ú
<listcomp>z#test_block_diag.<locals>.<listcomp>D  s,   ø€ ÐCÐCÐC¨A�˜q ! ! ! Q Q Q˜wÔ'ÐCÐCÐCr   )r   r&   rë   r   rì   r   Úprodr   rW   Úranger   r   r   )	r   rê   r  r  Ú
num_slicesÚmatricesr´   rF   r`  s	           @r   Útest_block_diagrf  9  sÚ   ø€ õ Œ)×
Ò
 Ñ
)Ô
)€CÝ˜ s¸ÅCÐHÑHÔH€DØ�LŠL‰NŒN€Eõ •R”W˜Uœ[¨¨"¨Ô-Ñ.Ô.Ñ/Ô/€JØ—]’] J =°5´;¸r¸s¸sÔ3CÑ#CÑDÔD€NØCÐCÐCÐCµ°zÑ1BÔ1BÐCÑCÔC€HÝ
�hÐ
€Cå
�dÑ
Ô
€Cå�—’‘” Ñ$Ô$Ð$Ð$Ð$r   c                 ó  — t           j                             d¦  «        }t          | d|t          ¬¦  «        }t          t          |¦  «        | ¦  «        }t          |                     ¦   «         |                     ¦   «         ¦  «         d S r6  )	r   r&   rë   r   rì   r	   r   r   r   )r   rê   r  rF   s       r   Útest_extract_block_diagrh  L  sl   € õ Œ)×
Ò
 Ñ
)Ô
)€CÝ˜ s¸ÅCÐHÑHÔH€DÝ
�k¨$Ñ/Ô/°Ñ
7Ô
7€Cå�—’‘” §¢¡¤Ñ/Ô/Ð/Ð/Ð/r   )PÚnumpyr   Únumpy.testingr   r@   Úscipy.linalgr   Úscipy.sparser   r   Ú_coor   r	   r   r1   r7   rD   rG   rK   rM   rR   r^   rk   ro   rr   r|   rˆ   r’   ÚmarkÚparametrizerì   r›   ÚzipÚtuplerž   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#  Úmat_vec_shapesr0  Úmat_mat_shapesr9  r<  rA  rC  rE  rH  Ú
dot_shapesrQ  Útensordot_shapes_and_axesrS  rU  r[  rf  rh  rC   r   r   ú<module>rv     sR	  ðØ Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3ð<ð <ð <ðRð Rð Rð@)ð )ð )ð(+ð +ð +ð80ð 0ð 0ð5ð 5ð 5ð8ð 8ð 8ð
	ð 	ð 	ð#ð #ð #ð "ð "ð "ðJð ð ðFð Fð FðAð Að Að ð ð ð 3ð 3ð 3ð „×Ò˜   Ñ0Ô0ð%˜ð %ð %ð %ñ 1Ô0ð%ð „×Ò˜   L L L°,°,°,Ñ ?Ô ?Ñ@Ô@ð%˜e C¨ Hœoð %ð %ð %ñ AÔ@ð%ð „×Ò˜   Ñ-Ô-ð%˜cð %ð %ð %ñ .Ô-ð%ðð ð ð8
+ð 
+ð 
+ðð ð ð2ð 2ð 2ðð ð ðð ð ðð ð ðB"ð "ð "ð „×Ò˜ð #;ð #;ð #;ñ <ô <ð0ð 0ñ<ô <ð0ð „×Ò˜ð #;ð #;ð #;ñ <ô <ð1ð 1ñ<ô <ð1ð „×Ò˜ð #;ð #;ð #;ñ <ô <ð%ð %ñ<ô <ð%ð „×Ò˜ð #;ð #;ð #;ñ <ô <ð%ð %ñ<ô <ð%ð;ð ;ð ;ð „×ÒÐ/ð 2Qð 2Qð 2Qñ Rô Rð-ð -ñ	Rô Rð-ð „×Ò˜ð #;ð #;ð #;ñ <ô <ð6ð 6ñ<ô <ð6ð „×Ò˜ð #;ð #;ð #;ñ <ô <ð/ð /ñ<ô <ð/ð „×ÒÐ/ð 2Sð 2Sð 2Sñ Tô TðSð SñTô TðSðAð Að Að5ð 5ð 5ð4 „×Ò˜ð #;ð #;ð #;ñ <ô <ðð ñ<ô <ðð „×Ò˜ð #;ð #;ð #;ñ <ô <ð2ð 2ñ<ô <ð2ð2ð 2ð 2ð „×ÒÐ/ð 2Kð 2Kð 2Kñ Lô Lðð ñLô Lðð „×Ò˜ð #;ð #;ð #;ñ <ô <ðð ñ<ô <ðð „×Ò˜ð #;ð #;ð #;ñ <ô <ð	2ð 	2ñ<ô <ð	2ð2ð 2ð 2ð „×ÒÐ/ð 2Kð 2Kð 2Kñ Lô Lðð ñLô Lðð
ð 
ð 
€ð „×ÒÐ3°^ÑDÔDð
ð 
ñ EÔDð
ðð ð €ð „×ÒÐ5°~ÑFÔFðð ñ GÔFðð* ð  ð  ð"ð ð ð%ð %ð %ðð ð ð	ð 	ð 	ðð ð €
ð „×ÒÐ/°Ñ<Ô<ð%ð %ñ =Ô<ð%ð$ ˆE�Q�C˜!˜�:ÐØ�˜�s˜Q˜C�jÐ!Ø	ˆ9˜�s˜Q˜C�jÐ!Ø�	˜Q ˜F Q¨ FÐ+Ð,Øˆk˜I˜I˜I y y yÐ1Ð2Ø!ØØˆg˜	˜	˜	 9 9 9Ð-Ð.ð	Ð ð „×ÒÐ7Ð9RÑSÔSðð ñ TÔSðð,*ð *ð *ð& „×ÒÐ<ðMð Mð MñNô Nð
%ð %ñNô Nð
%ð „×Ò˜'ð %>ð %>ð %>ñ ?ô ?ð%ð %ñ?ô ?ð%ð" „×Ò˜'ð %>ð %>ð %>ñ ?ô ?ð0ð 0ñ?ô ?ð0ð 0ð 0r   