§
    ƒÛg>  ã                   óð   — d dl Zd dlmZ d dlmZ d dlmZ d dlmZm	Z	  ej
        dej        fdej        dfg¦  «        Z ed	¦  «         G d
„ de	¦  «        ¦   «         Zedk    r ej        ¦   «          dS dS )é    N)Úcuda)Ú	transpose)Úunittest)Úskip_on_cudasimÚCUDATestCaseÚiÚj)é   é   z-Device Array API unsupported in the simulatorc                   ó*   — e Zd Zd„ ZdZd„ Zd„ Zd„ ZdS )ÚTestTransposec                 ó¦  — ddt           j        fddt           j        fddt           j        ff}|D �] \  }}}|                      |||¬¦  «        5  t          j        ||z  |¬¦  «                             ||¦  «        }t          j        ||z  |¬¦  «                             ||¦  «        }t          j        |¦  «        }t          j	        j
                             |¦  «        }t          ||¦  «         |                     |¦  «         t           j                             |                     ¦   «         |¦  «         d d d ¦  «         n# 1 swxY w Y   �Œ"d S )Né   é   é€   i  i   )ÚrowsÚcolsÚdtype©r   )ÚnpÚfloat64Ú
complex128ÚsubTestÚarangeÚreshapeÚzerosr   Ú	to_deviceÚcudadrvÚdevicearrayÚfrom_array_liker   Úcopy_to_hostÚtestingÚassert_array_equal)	ÚselfÚvariantsr   r   r   ÚxÚyÚdxÚdys	            ú\/granary/edev/quantum/lib/python3.11/site-packages/numba/cuda/tests/cudapy/test_transpose.pyÚtest_transposezTestTranspose.test_transpose   s‹  € Ø˜�2œ:Ð&Ø˜#�rœ}Ð-Ø˜3¥¤
Ð+ð-ˆð "*ð 	@ñ 	@ÑˆD�$˜Ø—’ 4¨d¸%�Ñ@Ô@ð @ð @Ý”I˜d T™k°Ð7Ñ7Ô7×?Ò?ÀÀdÑKÔK�Ý”H˜T D™[°Ð6Ñ6Ô6×>Ò>¸tÀTÑJÔJ�Ý”^ AÑ&Ô&�Ý”\Ô-×=Ò=¸aÑ@Ô@�Ý˜"˜bÑ!Ô!Ð!Ø—’ Ñ"Ô"Ð"Ý”
×-Ò-¨a¯kªk©m¬m¸QÑ?Ô?Ð?ð@ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @ùð	@ð 	@s   ÁC*EÅE	ÅE	))r   r
   )é   r,   )r,   é   )r-   r,   )é   é   )r/   r.   )r.   r.   c                 ó¦  — | j         D �]G\  }}|                      ||¬¦  «        5  t          j        ||ft          ¬¦  «        }t          |¦  «        D ]r}t          |¦  «        D ]`}|dz  |z   |||f         _        t          j        dt          j        ¬¦  «        }| 	                    dd¦  «        |z  |z   |||f         _
        ŒaŒs|j        }t          j        |¦  «        }t          j        |¦  «        }	t          ||	¦  «         |	                     ¦   «         }
t          j                             ||
¦  «         d d d ¦  «         n# 1 swxY w Y   �ŒId S )N©r   r   r   r   r   r
   )Úsmall_variantsr   r   ÚrecarrayÚrecordwith2darrayÚranger   r   Úfloat32r   r	   ÚTr   r   Údevice_array_liker   r!   r"   r#   )r$   r   r   Úarrr&   r'   r	   Ú
transposedÚd_arrÚd_transposedÚhost_transposeds              r*   Útest_transpose_recordz#TestTranspose.test_transpose_record!   s   € ØÔ-ð 	Kñ 	K‰JˆD�$Ø—’ 4¨d�Ñ3Ô3ð Kð KÝ”k 4¨ ,Õ6GÐHÑHÔH�Ý˜t™œð >ð >�AÝ" 4™[œ[ð >ð >˜Ø&'¨1¡f¨q¡j˜˜A˜q˜Dœ	œÝœI eµ2´:Ð>Ñ>Ô>˜Ø&'§i¢i°°1¡o¤o¸Ñ&9¸AÑ&=˜˜A˜q˜Dœ	œ˜ð>ð
 !œU�
Ýœ sÑ+Ô+�Ý#Ô5°jÑAÔA�Ý˜% Ñ.Ô.Ð.Ø".×";Ò";Ñ"=Ô"=�Ý”
×-Ò-¨j¸/ÑJÔJÐJðKð Kð Kñ Kô Kð Kð Kð Kð Kð Kð Køøøð Kð Kð Kð Kùð	Kð 	Ks   ¥DEÅE	ÅE	c                 óÀ  — | j         D ]Õ\  }}|                      ||¬¦  «        5  t          j                             d||ft          j        ¬¦  «        }|j        }t          j        |¦  «        }t          j	        |¦  «        }t          ||¦  «         |                     ¦   «         }t          j                             ||¦  «         d d d ¦  «         n# 1 swxY w Y   ŒÖd S )Nr1   r   )Úsizer   )r2   r   r   ÚrandomÚrandintÚbool_r7   r   r   r8   r   r!   r"   r#   )r$   r   r   r9   r:   r;   r<   r=   s           r*   Útest_transpose_boolz!TestTranspose.test_transpose_bool2   s$  € ØÔ-ð 
	Kð 
	K‰JˆD�$Ø—’ 4¨d�Ñ3Ô3ð 	Kð 	KÝ”i×'Ò'¨°°t°ÅBÄHÐ'ÑMÔM�Ø œU�
åœ sÑ+Ô+�Ý#Ô5°jÑAÔA�Ý˜% Ñ.Ô.Ð.à".×";Ò";Ñ"=Ô"=�Ý”
×-Ò-¨j¸/ÑJÔJÐJð	Kð 	Kð 	Kñ 	Kô 	Kð 	Kð 	Kð 	Kð 	Kð 	Kð 	Køøøð 	Kð 	Kð 	Kð 	Køð
	Kð 
	Ks   ¤B"CÃC	ÃC	c                 ó¼  — t          j        dt           j        ¬¦  «                             d¦  «        }|d d d…d d d…f         j        }t          j        |¦  «        }|d d d…d d d…f         j        }|                      |j        d¦  «         |                      |j	        d¦  «         | 
                    ¦   «         }t           j                             ||¦  «         d S )Néx   r   )é
   é   r   )r   r   )é(   é   )r   r   Úint64r   r7   r   r   ÚassertEqualÚshapeÚstridesr!   r"   r#   )r$   ÚaÚa_view_tÚd_aÚ
d_a_view_tÚ
h_a_view_ts         r*   Útest_transpose_viewz!TestTranspose.test_transpose_view?   sÎ   € õ ŒI�c¥¤Ð*Ñ*Ô*×2Ò2°8Ñ<Ô<ˆØ�S�S�q�S˜#˜#˜A˜#�X”;”=ˆåŒn˜QÑÔˆØ˜˜˜1˜˜c˜c ˜c˜”]”_ˆ
à×Ò˜Ô)¨6Ñ2Ô2Ð2Ø×Ò˜Ô+¨WÑ5Ô5Ð5à×,Ò,Ñ.Ô.ˆ
Ý
Œ
×%Ò% h°
Ñ;Ô;Ð;Ð;Ð;ó    N)Ú__name__Ú
__module__Ú__qualname__r+   r2   r>   rD   rT   © rU   r*   r   r      s`   € € € € € ð@ð @ð @ð €NðKð Kð Kð"Kð Kð Kð<ð <ð <ð <ð <rU   r   Ú__main__)Únumpyr   Únumbar   Únumba.cuda.kernels.transposer   Únumba.cuda.testingr   r   r   r   Úint32r6   r4   r   rV   ÚmainrY   rU   r*   ú<module>ra      sø   ðØ Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <ð �B”H˜s B¤H˜oØ" B¤J°Ð7ð9ñ :ô :Ð ð €Ð@ÑAÔAð?<ð ?<ð ?<ð ?<ð ?<�Lñ ?<ô ?<ñ BÔAð?<ðD ˆzÒÐØ€H„M�O„O€O€O€Oð ÐrU   