Ë
    èÿæi˜Z  ã                   ó&  — d dl Z d dlmZ d dlmZmZmZmZmZm	Z	m
Z
mZ d dlmZmZmZmZmZmZ d dlmZ d dlmZ d dlmZ d dlmZ  e«       Zej8                  Zej:                  Zej<                  Z ee«        G d	„ d
e«      Ze G d„ de«      «       Z e G d„ de«      «       Z!e G d„ de«      «       Z"e G d„ de«      «       Z#e G d„ de«      «       Z$e G d„ de«      «       Z%e G d„ de«      «       Z&e G d„ de«      «       Z'e G d„ de«      «       Z(e G d„ de«      «       Z)e G d„ d e«      «       Z*e G d!„ d"e«      «       Z+e G d#„ d$e«      «       Z,e G d%„ d&e«      «       Z-e G d'„ d(e«      «       Z.e G d)„ d*e«      «       Z/e G d+„ d,e«      «       Z0e G d-„ d.e«      «       Z1e G d/„ d0e«      «       Z2e G d1„ d2e«      «       Z3e G d3„ d4e«      «       Z4d5„ Z5d6„ Z6d7„ Z7 ee8«       G d8„ d9e«      «       Z9d:„ Z:d;„ Z;d<„ Z<d=„ Z= e7ej|                  j~                  «      Z@ e=e j‚                  «      ZB e=e j†                  «      ZD e7ej|                  jŠ                  «      ZF e=e jŽ                  «      ZH e=e j’                  «      ZJ e7ej|                  j–                  «      ZL e=e jš                  «      ZN e=e jž                  «      ZP e7ej|                  j¢                  «      ZR e7ej|                  j¦                  «      ZT e5ej|                  jª                  «      ZV e6e j®                  «      ZX e5ej|                  j²                  «      ZZ e6e[«      Z\ e:ej|                  jº                  «      Z^ e<e j¾                  «        e:ej|                  jÀ                  «      Za e<e jÄ                  «        e:ej|                  jÆ                  «      Zd e<e jÊ                  «        e:ej|                  jÌ                  «      Zg e<e jÐ                  «        e:ej|                  jÒ                  «      Zj e<e jÖ                  «        e:ej|                  jØ                  «      Zm e<e jÜ                  «        e=e jÞ                  «        e=e jà                  «       d>„ Zqd?„ Zr eqd@«      Zs eqdA«      Zt eqdB«      Zu eqdC«      Zv eqdD«      Zw eqdE«      Zx eqdF«      Zy eqdG«      Zz eqdH«      Z{ eqdI«      Z| eqdJ«      Z} eqdK«      Z~ eqdL«      Z eqdM«      Z€ eqdN«      Z� erdO«      Z‚dP„ Zƒe�j                  e�j
                  e�j                  e�j                  e�j                  e�j                  fZŠe�j                  e�j                  e�j                  e�j                  fZ‹e�j                  e�j                  fZŒ eƒe�j                  j‚                  eŠ«      ZŽ eƒe�j                  jŽ                  eŠ«      Z� eƒe�j                  �j                   eŠ«      Z‘ eƒe�j                  �j$                  eŠ«      Z“ eƒe�j                  �j(                  eŠ«      Z• eƒe�j                  �j,                  eŠ«      Z— eƒe�j                  �j0                  e‹«      Z™ eƒe�j                  �j4                  e‹«      Z› eƒe�j                  �j8                  e‹«      Z� eƒe�j                  �j<                  eŒ«      ZŸ eƒe�j                  �j@                  eŒ«      Z¡ eƒe�j                  �jD                  e‹«      Z£e G dQ„ dRe«      «       Z¤e G dS„ dTe«      «       Z¥e G dU„ dVe«      «       Z¦e G dW„ dXe«      «       Z§e G dY„ dZe«      «       Z¨e G d[„ d\e«      «       Z©e G d]„ d^e«      «       Zªe G d_„ d`e«      «       Z«e G da„ dbe«      «       Z¬e G dc„ dde«      «       Z­ ee e�j\                  e«      «       eD ]  Z¯ ee¯e«       Œ e	D ]  Z¯ ee¯e«       Œ eD ]  Z¯ ee¯e«       Œ e
D ]  Z¯e¯dev sŒ ee¯e«       Œ y)fé    N)Útypes)Úparse_dtypeÚparse_shapeÚregister_number_classesÚregister_numpy_ufuncÚtrigonometric_functionsÚcomparison_functionsÚmath_operationsÚbit_twiddling_functions)ÚAttributeTemplateÚConcreteTemplateÚAbstractTemplateÚCallableTemplateÚ	signatureÚRegistry©Údim3)Ú
Conversion)Úcuda)Ú declare_device_function_templatec                   ó   — e Zd Zd„ Zy)ÚCuda_array_declc                 ó   — d„ }|S )Nc           	      óš  — t        | t        j                  «      rt        | t        j                  «      s_y t        | t        j                  t        j
                  f«      r3t        | D �cg c]  }t        |t        j                  «       ‘Œ c}«      ry y t        | «      }t        |«      }|�|�t        j                  ||d¬«      S y y c c}w )NÚC)ÚdtypeÚndimÚlayout)
Ú
isinstancer   ÚIntegerÚIntegerLiteralÚTupleÚUniTupleÚanyr   r   ÚArray)Úshaper   Úsr   Únb_dtypes        úh/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/cuda/cudadecl.pyÚtyperz&Cuda_array_decl.generic.<locals>.typer   s´   € ô ˜%¤§¡Ô/Ü! %¬×)=Ñ)=Ô>ØÜ˜E¤E§K¡K´·±Ð#@ÔAÜÙ!&ó(Ù!&˜Aô ' q¬%×*>Ñ*>Ó?Ò?Ø!&ñ(ô )ààä˜uÓ%ˆDÜ" 5Ó)ˆHØÐ#¨Ð(8Ü—{‘{¨¸ÀSÔIÐIð )9Ð#ùò(s   Á)"C© ©Úselfr*   s     r)   ÚgenericzCuda_array_decl.generic   s   € ò	Jð& ˆó    N©Ú__name__Ú
__module__Ú__qualname__r.   r+   r/   r)   r   r      s   „ ór/   r   c                   ó8   — e Zd Zej                  j
                  Zy)ÚCuda_shared_arrayN)r1   r2   r3   r   ÚsharedÚarrayÚkeyr+   r/   r)   r5   r5   2   s   „ à
�+‰+×
Ñ
�Cr/   r5   c                   ó8   — e Zd Zej                  j
                  Zy)ÚCuda_local_arrayN)r1   r2   r3   r   Úlocalr7   r8   r+   r/   r)   r:   r:   7   s   „ à
�*‰*×
Ñ
�Cr/   r:   c                   ó>   — e Zd Zej                  j
                  Zd„ Zy)ÚCuda_const_array_likec                 ó   — d„ }|S )Nc                 ó   — | S ©Nr+   )Úndarrays    r)   r*   z,Cuda_const_array_like.generic.<locals>.typerA   s   € ØˆNr/   r+   r,   s     r)   r.   zCuda_const_array_like.generic@   s   € ò	àˆr/   N)r1   r2   r3   r   ÚconstÚ
array_liker8   r.   r+   r/   r)   r=   r=   <   s   „ à
�*‰*×
Ñ
€Cór/   r=   c                   óJ   — e Zd Zej                  Z eej                  «      gZ	y)ÚCuda_threadfence_deviceN)
r1   r2   r3   r   Úthreadfencer8   r   r   ÚnoneÚcasesr+   r/   r)   rE   rE   F   s   „ à
×
Ñ
€CÙ�u—z‘zÓ"Ð#�Er/   rE   c                   óJ   — e Zd Zej                  Z eej                  «      gZ	y)ÚCuda_threadfence_blockN)
r1   r2   r3   r   Úthreadfence_blockr8   r   r   rG   rH   r+   r/   r)   rJ   rJ   L   s   „ à
×
 Ñ
 €CÙ�u—z‘zÓ"Ð#�Er/   rJ   c                   óJ   — e Zd Zej                  Z eej                  «      gZ	y)ÚCuda_threadfence_systemN)
r1   r2   r3   r   Úthreadfence_systemr8   r   r   rG   rH   r+   r/   r)   rM   rM   R   s   „ à
×
!Ñ
!€CÙ�u—z‘zÓ"Ð#�Er/   rM   c                   ó‚   — e Zd Zej                  Z eej                  «       eej                  ej                  «      gZ
y)ÚCuda_syncwarpN)r1   r2   r3   r   Úsyncwarpr8   r   r   rG   Úi4rH   r+   r/   r)   rP   rP   X   s-   „ à
�-‰-€CÙ�u—z‘zÓ"¡I¨e¯j©j¸%¿(¹(Ó$CÐD�Er/   rP   c                   óH  — e Zd Zej                  Z e ej                  ej                  ej                  f«      ej                  ej                  ej                  ej                  ej                  «       e ej                  ej                  ej                  f«      ej                  ej                  ej                  ej                  ej                  «       e ej                  ej                  ej                  f«      ej                  ej                  ej                  ej                  ej                  «       e ej                  ej                  ej                  f«      ej                  ej                  ej                  ej                  ej                  «      gZy)ÚCuda_shfl_sync_intrinsicN)r1   r2   r3   r   Úshfl_sync_intrinsicr8   r   r   r"   rR   Úb1Úi8Úf4Úf8rH   r+   r/   r)   rT   rT   ^   s  „ à
×
"Ñ
"€Cá�+�%—+‘+˜uŸx™x¨¯©Ð2Ó3Ø—(‘(˜EŸH™H e§h¡h°·±¸%¿(¹(ó	Dá�+�%—+‘+˜uŸx™x¨¯©Ð2Ó3Ø—(‘(˜EŸH™H e§h¡h°·±¸%¿(¹(ó	Dá�+�%—+‘+˜uŸx™x¨¯©Ð2Ó3Ø—(‘(˜EŸH™H e§h¡h°·±¸%¿(¹(ó	Dá�+�%—+‘+˜uŸx™x¨¯©Ð2Ó3Ø—(‘(˜EŸH™H e§h¡h°·±¸%¿(¹(ó	Dð	�Er/   rT   c                   óÄ   — e Zd Zej                  Z e ej                  ej                  ej                  f«      ej                  ej                  ej                  «      gZy)ÚCuda_vote_sync_intrinsicN)r1   r2   r3   r   Úvote_sync_intrinsicr8   r   r   r"   rR   rV   rH   r+   r/   r)   r[   r[   m   sI   „ à
×
"Ñ
"€CÙ�{�u—{‘{ E§H¡H¨e¯h©hÐ#7Ó8Ø—x‘x §¡¨5¯8©8ó5ð 6�Er/   r[   c                   ó`  — e Zd Zej                  Z eej                  ej                  ej                  «       eej                  ej                  ej                  «       eej                  ej                  ej                  «       eej                  ej                  ej                  «      gZy)ÚCuda_match_any_syncN)r1   r2   r3   r   Úmatch_any_syncr8   r   r   rR   rW   rX   rY   rH   r+   r/   r)   r^   r^   t   st   „ à
×
Ñ
€Cá�%—(‘(˜EŸH™H e§h¡hÓ/Ù�%—(‘(˜EŸH™H e§h¡hÓ/Ù�%—(‘(˜EŸH™H e§h¡hÓ/Ù�%—(‘(˜EŸH™H e§h¡hÓ/ð	�Er/   r^   c            	       ó@  — e Zd Zej                  Z e ej                  ej                  ej                  f«      ej                  ej                  «       e ej                  ej                  ej                  f«      ej                  ej                  «       e ej                  ej                  ej                  f«      ej                  ej                  «       e ej                  ej                  ej                  f«      ej                  ej                  «      gZy)ÚCuda_match_all_syncN)r1   r2   r3   r   Úmatch_all_syncr8   r   r   r"   rR   rV   rW   rX   rY   rH   r+   r/   r)   ra   ra      sÄ   „ à
×
Ñ
€Cá�+�%—+‘+˜uŸx™x¨¯©Ð2Ó3°U·X±X¸u¿x¹xÓHÙ�+�%—+‘+˜uŸx™x¨¯©Ð2Ó3°U·X±X¸u¿x¹xÓHÙ�+�%—+‘+˜uŸx™x¨¯©Ð2Ó3°U·X±X¸u¿x¹xÓHÙ�+�%—+‘+˜uŸx™x¨¯©Ð2Ó3°U·X±X¸u¿x¹xÓHð	�Er/   ra   c                   óJ   — e Zd Zej                  Z eej                  «      gZ	y)ÚCuda_activemaskN)
r1   r2   r3   r   Ú
activemaskr8   r   r   Úuint32rH   r+   r/   r)   rd   rd   Š   s   „ à
�/‰/€CÙ�u—|‘|Ó$Ð%�Er/   rd   c                   óJ   — e Zd Zej                  Z eej                  «      gZ	y)ÚCuda_lanemask_ltN)
r1   r2   r3   r   Úlanemask_ltr8   r   r   rf   rH   r+   r/   r)   rh   rh   �   s   „ à
×
Ñ
€CÙ�u—|‘|Ó$Ð%�Er/   rh   c                   óì  — e Zd ZdZej
                  Z eej                  ej                  «       eej                  ej                  «       eej                  ej                  «       eej                  ej                  «       eej                  ej                  «       eej                  ej                  «       eej                  ej                  «       eej                   ej                   «      gZy)Ú	Cuda_popcz†
    Supported types from `llvm.popc`
    [here](http://docs.nvidia.com/cuda/nvvm-ir-spec/index.html#bit-manipulations-intrinics)
    N)r1   r2   r3   Ú__doc__r   Úpopcr8   r   r   Úint8Úint16Úint32Úint64Úuint8Úuint16rf   Úuint64rH   r+   r/   r)   rk   rk   –   s©   „ ñð �)‰)€Cá�%—*‘*˜eŸj™jÓ)Ù�%—+‘+˜uŸ{™{Ó+Ù�%—+‘+˜uŸ{™{Ó+Ù�%—+‘+˜uŸ{™{Ó+Ù�%—+‘+˜uŸ{™{Ó+Ù�%—,‘, §¡Ó-Ù�%—,‘, §¡Ó-Ù�%—,‘, §¡Ó-ð	�Er/   rk   c                   óô   — e Zd ZdZej
                  Z eej                  ej                  ej                  ej                  «       eej                  ej                  ej                  ej                  «      gZy)ÚCuda_fmaz‡
    Supported types from `llvm.fma`
    [here](https://docs.nvidia.com/cuda/nvvm-ir-spec/index.html#standard-c-library-intrinics)
    N)r1   r2   r3   rl   r   Úfmar8   r   r   Úfloat32Úfloat64rH   r+   r/   r)   rv   rv   ©   sU   „ ñð �(‰(€Cá�%—-‘- §¡°·±¸u¿}¹}ÓMÙ�%—-‘- §¡°·±¸u¿}¹}ÓMð�Er/   rv   c                   ó    — e Zd Zej                  j
                  Z eej                  ej                  ej                  ej                  «      gZ
y)Ú	Cuda_hfmaN)r1   r2   r3   r   Úfp16Úhfmar8   r   r   Úfloat16rH   r+   r/   r)   r{   r{   ¶   s4   „ à
�)‰)�.‰.€Cá�%—-‘- §¡°·±¸u¿}¹}ÓMð�Er/   r{   c                   ó˜   — e Zd Zej                  Z eej                  ej                  «       eej                  ej                  «      gZ
y)Ú	Cuda_cbrtN)r1   r2   r3   r   Úcbrtr8   r   r   rx   ry   rH   r+   r/   r)   r€   r€   ¾   s8   „ ð �)‰)€Cá�%—-‘- §¡Ó/Ù�%—-‘- §¡Ó/ð�Er/   r€   c                   ó˜   — e Zd Zej                  Z eej                  ej                  «       eej                  ej                  «      gZ
y)Ú	Cuda_brevN)r1   r2   r3   r   Úbrevr8   r   r   rf   rt   rH   r+   r/   r)   rƒ   rƒ   È   s6   „ à
�)‰)€Cá�%—,‘, §¡Ó-Ù�%—,‘, §¡Ó-ð�Er/   rƒ   c                   óì  — e Zd ZdZej
                  Z eej                  ej                  «       eej                  ej                  «       eej                  ej                  «       eej                  ej                  «       eej                  ej                  «       eej                  ej                  «       eej                  ej                  «       eej                   ej                   «      gZy)ÚCuda_clzz†
    Supported types from `llvm.ctlz`
    [here](http://docs.nvidia.com/cuda/nvvm-ir-spec/index.html#bit-manipulations-intrinics)
    N)r1   r2   r3   rl   r   Úclzr8   r   r   rn   ro   rp   rq   rr   rs   rf   rt   rH   r+   r/   r)   r†   r†   Ñ   s©   „ ñð �(‰(€Cá�%—*‘*˜eŸj™jÓ)Ù�%—+‘+˜uŸ{™{Ó+Ù�%—+‘+˜uŸ{™{Ó+Ù�%—+‘+˜uŸ{™{Ó+Ù�%—+‘+˜uŸ{™{Ó+Ù�%—,‘, §¡Ó-Ù�%—,‘, §¡Ó-Ù�%—,‘, §¡Ó-ð	�Er/   r†   c                   óì  — e Zd ZdZej
                  Z eej                  ej                  «       eej                  ej                  «       eej                  ej                  «       eej                  ej                  «       eej                  ej                  «       eej                  ej                  «       eej                  ej                  «       eej                  ej                   «      gZy)ÚCuda_ffsz†
    Supported types from `llvm.cttz`
    [here](http://docs.nvidia.com/cuda/nvvm-ir-spec/index.html#bit-manipulations-intrinics)
    N)r1   r2   r3   rl   r   Úffsr8   r   r   rf   rn   ro   rp   rq   rr   rs   rt   rH   r+   r/   r)   r‰   r‰   ä   s©   „ ñð �(‰(€Cá�%—,‘, §
¡
Ó+Ù�%—,‘, §¡Ó,Ù�%—,‘, §¡Ó,Ù�%—,‘, §¡Ó,Ù�%—,‘, §¡Ó,Ù�%—,‘, §¡Ó-Ù�%—,‘, §¡Ó-Ù�%—,‘, §¡Ó-ð	�Er/   r‰   c                   ó*   — e Zd Zej                  Zd„ Zy)Ú	Cuda_selpc                 ó:  — |rJ ‚|\  }}}t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  t         j                  t         j                  f}||k7  s||vry t        ||||«      S r@   )
r   ry   rx   ro   rs   rp   rf   rq   rt   r   )r-   ÚargsÚkwsÚtestÚaÚbÚsupported_typess          r)   r.   zCuda_selp.genericû   su   € ÙˆˆwØ‰
ˆˆa�ô !Ÿ=™=¬%¯-©-Ü Ÿ;™;¬¯©Ü Ÿ;™;¬¯©Ü Ÿ;™;¬¯©ð6ˆð
 �Š6�Q˜oÑ-Øä˜˜D ! QÓ'Ð'r/   N)r1   r2   r3   r   Úselpr8   r.   r+   r/   r)   rŒ   rŒ   ÷   s   „ à
�)‰)€Có(r/   rŒ   c                 ó<   ‡ — t          G ˆ fd„dt        «      «       }|S )Nc                   óP   •— e Zd ZW ° Z eej                  ej                  «      gZy)ú'_genfp16_unary.<locals>.Cuda_fp16_unaryN©r1   r2   r3   r8   r   r   r~   rH   ©Úl_keys   €r)   ÚCuda_fp16_unaryr—     s   ø„ áˆÙ˜5Ÿ=™=¨%¯-©-Ó8Ð9‰r/   r›   ©Úregisterr   ©rš   r›   s   ` r)   Ú_genfp16_unaryrŸ     s%   ø€ Üö:Ô*ó :ó ð:ð Ðr/   c                 óF   ‡ — t        ‰ «       G ˆ fd„dt        «      «       }|S )Nc                   ó   •— e Zd ZW ° Zd„ Zy)ú0_genfp16_unary_operator.<locals>.Cuda_fp16_unaryc                 ó¦   — |rJ ‚t        |«      dk(  r?|d   t        j                  k(  r(t        t        j                  t        j                  «      S y y )Né   r   )Úlenr   r~   r   )r-   rŽ   r�   s      r)   r.   z8_genfp16_unary_operator.<locals>.Cuda_fp16_unary.generic  s?   € ÙˆN�7Ü�4‹y˜AŠ~ $ q¡'¬U¯]©]Ò":Ü ¤§¡´·±Ó>Ð>ð #;ˆ~r/   N©r1   r2   r3   r8   r.   r™   s   €r)   r›   r¢     s   ø„ áˆó	?r/   r›   ©Úregister_globalr   rž   s   ` r)   Ú_genfp16_unary_operatorr©     s*   ø€ Ü�UÓö?Ô*ó ?ó ð?ð Ðr/   c                 ó<   ‡ — t          G ˆ fd„dt        «      «       }|S )Nc                   óf   •— e Zd ZW ° Z eej                  ej                  ej                  «      gZy)ú)_genfp16_binary.<locals>.Cuda_fp16_binaryNr˜   r™   s   €r)   ÚCuda_fp16_binaryr¬   #  s%   ø„ áˆÙ˜5Ÿ=™=¨%¯-©-¸¿¹ÓGÐH‰r/   r­   rœ   )rš   r­   s   ` r)   Ú_genfp16_binaryr®   "  s(   ø€ ÜöIÔ+ó Ió ðIð Ðr/   c                   ó   — e Zd Zd„ Zy)ÚFloatc                 óR   — |rJ ‚|\  }|t         j                  k(  rt        ||«      S y r@   )r   r~   r   )r-   rŽ   r�   Úargs       r)   r.   zFloat.generic.  s.   € Ùˆˆwà‰ˆà”%—-‘-ÒÜ˜S #Ó&Ð&ð  r/   Nr0   r+   r/   r)   r°   r°   +  s   „ ó'r/   r°   c                 ó<   ‡ — t          G ˆ fd„dt        «      «       }|S )Nc                   óf   •— e Zd ZW ° Z eej                  ej                  ej                  «      gZy)ú1_genfp16_binary_comparison.<locals>.Cuda_fp16_cmpN)	r1   r2   r3   r8   r   r   rV   r~   rH   r™   s   €r)   ÚCuda_fp16_cmprµ   8  s)   ø„ áˆñ �e—h‘h §¡¨u¯}©}Ó=ð
‰r/   r¶   rœ   )rš   r¶   s   ` r)   Ú_genfp16_binary_comparisonr·   7  s%   ø€ Üö
Ô(ó 
ó ð
ð Ðr/   c                 óJ   ‡ ‡— t        ‰ «       G ˆ ˆfd„dt        «      «       }|S )Nc                   ó   •— e Zd ZW ° Zˆfd„Zy)ú1_fp16_binary_operator.<locals>.Cuda_fp16_operatorc                 ó   •— |rJ ‚t        |«      dk(  rë|d   t        j                  k(  s|d   t        j                  k(  r¾|d   t        j                  k(  r#| j                  j	                  |d   |d   «      }n"| j                  j	                  |d   |d   «      }|t
        j                  k(  s&|t
        j                  k(  s|t
        j                  k(  r)t        ‰t        j                  t        j                  «      S y y y )Né   r   r¤   )
r¥   r   r~   ÚcontextÚcan_convertr   ÚexactÚpromoteÚsafer   )r-   rŽ   r�   ÚconvertibleÚrettys       €r)   r.   z9_fp16_binary_operator.<locals>.Cuda_fp16_operator.genericT  sÑ   ø€ ÙˆN�7ä�4‹y˜AŠ~Ø˜!‘W¤§¡Ò-°°a±¼E¿M¹MÒ1IØ˜‘GœuŸ}™}Ò,Ø"&§,¡,×":Ñ":¸4À¹7ÀDÈÁGÓ"L‘Kà"&§,¡,×":Ñ":¸4À¹7ÀDÈÁGÓ"L�Kð  ¤:×#3Ñ#3Ò3Ø¤:×#5Ñ#5Ò5Ø¤:§?¡?Ò2Ü$ U¬E¯M©M¼5¿=¹=ÓIÐIð 3ð! 2Jð r/   Nr¦   )rš   rÃ   s   €€r)   ÚCuda_fp16_operatorrº   P  s   ø„ áˆõ	Jr/   rÄ   r§   )rš   rÃ   rÄ   s   `` r)   Ú_fp16_binary_operatorrÅ   O  s-   ù€ Ü�UÓ÷JÔ-ó Jó ðJð4 Ðr/   c                 ó6   — t        | t        j                  «      S r@   )rÅ   r   rV   ©Úops    r)   Ú_genfp16_comparison_operatorrÉ   n  s   € Ü  ¤U§X¡XÓ.Ð.r/   c                 ó6   — t        | t        j                  «      S r@   )rÅ   r   r~   rÇ   s    r)   Ú_genfp16_binary_operatorrË   r  s   € Ü  ¤U§]¡]Ó3Ð3r/   c                 ó†   — t        d| › �t        j                  t        j                  f«      }t        j                  |«      S ©NÚ__numba_wrapper_©r   r   r~   ÚFunction©ÚfnameÚdecls     r)   Ú_resolve_wrapped_unaryrÔ   •  s8   € Ü+Ð.>¸u¸gÐ,FÜ,1¯M©MÜ-2¯]©]Ð,<ó>€Dô �>‰>˜$ÓÐr/   c                 ó¤   — t        d| › �t        j                  t        j                  t        j                  f«      }t        j                  |«      S rÍ   rÏ   rÑ   s     r)   Ú_resolve_wrapped_binaryrÖ   œ  s?   € Ü+Ð.>¸u¸gÐ,FÜ,1¯M©MÜ-2¯]©]¼E¿M¹MÐ,KóM€Dô �>‰>˜$ÓÐr/   ÚhsinÚhcosÚhlogÚhlog10Úhlog2ÚhexpÚhexp10Úhexp2ÚhsqrtÚhrsqrtÚhfloorÚhceilÚhrcpÚhrintÚhtruncÚhdivc                 ó@   ‡ ‡— t          G ˆ ˆfd„dt        «      «       }|S )Nc                   ó   •— e Zd ZW ° Zˆfd„Zy)ú_gen.<locals>.Cuda_atomicc                 ó  •— |rJ ‚|\  }}}|j                   ‰vry |j                  dk(  r0t        |j                   |t        j                  |j                   «      S |j                  dkD  r"t        |j                   |||j                   «      S y ©Nr¤   )r   r   r   r   Úintp)r-   rŽ   r�   ÚaryÚidxÚvalr“   s         €r)   r.   z!_gen.<locals>.Cuda_atomic.generic»  su   ø€ ÙˆN�7Ø ‰MˆC��cà�y‰y Ñ/Øà�x‰x˜1Š}Ü  §¡¨C´·±¸S¿Y¹YÓGÐGØ—‘˜A’Ü  §¡¨C°°c·i±iÓ@Ð@ð r/   Nr¦   )rš   r“   s   €€r)   ÚCuda_atomicré   ·  s   ø„ áˆõ
	Ar/   rð   )r�   r   )rš   r“   rð   s   `` r)   Ú_genrñ   ¶  s(   ù€ Ü÷AÔ&ó Aó ðAð Ðr/   c                   ó>   — e Zd Zej                  j
                  Zd„ Zy)ÚCuda_atomic_compare_and_swapc                 ó|   — |rJ ‚|\  }}}|j                   }|t        v r|j                  dk(  rt        ||||«      S y y rë   )r   Úinteger_numba_typesr   r   )r-   rŽ   r�   rí   Úoldrï   Údtys          r)   r.   z$Cuda_atomic_compare_and_swap.genericä  sI   € ÙˆˆwØ‰ˆˆS�#Ø�i‰iˆàÔ%Ñ%¨#¯(©(°aª-Ü˜S # s¨CÓ0Ð0ð +8Ð%r/   N)r1   r2   r3   r   ÚatomicÚcompare_and_swapr8   r.   r+   r/   r)   ró   ró   à  s   „ à
�+‰+×
&Ñ
&€Có1r/   ró   c                   ó>   — e Zd Zej                  j
                  Zd„ Zy)ÚCuda_atomic_casc                 óØ   — |rJ ‚|\  }}}}|j                   }|t        vry |j                  dk(  rt        ||t        j
                  ||«      S |j                  dkD  rt        |||||«      S y rë   )r   rõ   r   r   r   rì   )r-   rŽ   r�   rí   rî   rö   rï   r÷   s           r)   r.   zCuda_atomic_cas.genericñ  sq   € ÙˆˆwØ!ÑˆˆS�#�sØ�i‰iˆàÔ)Ñ)Øà�8‰8�qŠ=Ü˜S #¤u§z¡z°3¸Ó<Ð<Ø�X‰X˜Š\Ü˜S # s¨C°Ó5Ð5ð r/   N)r1   r2   r3   r   rø   Úcasr8   r.   r+   r/   r)   rû   rû   í  s   „ à
�+‰+�/‰/€Có6r/   rû   c                   ó`   — e Zd Zej                  Z eej                  ej                  «      gZ
y)ÚCuda_nanosleepN)r1   r2   r3   r   Ú	nanosleepr8   r   r   Úvoidrf   rH   r+   r/   r)   rÿ   rÿ   ÿ  s"   „ à
�.‰.€Cá�u—z‘z 5§<¡<Ó0Ð1�Er/   rÿ   c                   ó"   — e Zd ZeZd„ Zd„ Zd„ Zy)Ú
Dim3_attrsc                 ó"   — t         j                  S r@   ©r   rp   ©r-   Úmods     r)   Ú	resolve_xzDim3_attrs.resolve_x
  ó   € Ü�{‰{Ðr/   c                 ó"   — t         j                  S r@   r  r  s     r)   Ú	resolve_yzDim3_attrs.resolve_y  r	  r/   c                 ó"   — t         j                  S r@   r  r  s     r)   Ú	resolve_zzDim3_attrs.resolve_z  r	  r/   N)r1   r2   r3   r   r8   r  r  r  r+   r/   r)   r  r    s   „ à
€Còòór/   r  c                   óJ   — e Zd Z ej                  ej                  «      Zd„ Zy)ÚCudaSharedModuleTemplatec                 ó4   — t        j                  t        «      S r@   )r   rÐ   r5   r  s     r)   Úresolve_arrayz&CudaSharedModuleTemplate.resolve_array  s   € Ü�~‰~Ô/Ó0Ð0r/   N)	r1   r2   r3   r   ÚModuler   r6   r8   r  r+   r/   r)   r  r    s   „ à
ˆ%�,‰,�t—{‘{Ó
#€Có1r/   r  c                   óJ   — e Zd Z ej                  ej                  «      Zd„ Zy)ÚCudaConstModuleTemplatec                 ó4   — t        j                  t        «      S r@   )r   rÐ   r=   r  s     r)   Úresolve_array_likez*CudaConstModuleTemplate.resolve_array_like   s   € Ü�~‰~Ô3Ó4Ð4r/   N)	r1   r2   r3   r   r  r   rB   r8   r  r+   r/   r)   r  r    s   „ à
ˆ%�,‰,�t—z‘zÓ
"€Có5r/   r  c                   óJ   — e Zd Z ej                  ej                  «      Zd„ Zy)ÚCudaLocalModuleTemplatec                 ó4   — t        j                  t        «      S r@   )r   rÐ   r:   r  s     r)   r  z%CudaLocalModuleTemplate.resolve_array(  ó   € Ü�~‰~Ô.Ó/Ð/r/   N)	r1   r2   r3   r   r  r   r;   r8   r  r+   r/   r)   r  r  $  s   „ à
ˆ%�,‰,�t—z‘zÓ
"€Có0r/   r  c                   ó˜   — e Zd Z ej                  ej                  «      Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zy)ÚCudaAtomicTemplatec                 ó4   — t        j                  t        «      S r@   )r   rÐ   ÚCuda_atomic_addr  s     r)   Úresolve_addzCudaAtomicTemplate.resolve_add0  ó   € Ü�~‰~œoÓ.Ð.r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   ÚCuda_atomic_subr  s     r)   Úresolve_subzCudaAtomicTemplate.resolve_sub3  r   r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   ÚCuda_atomic_andr  s     r)   Úresolve_and_zCudaAtomicTemplate.resolve_and_6  r   r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   ÚCuda_atomic_orr  s     r)   Úresolve_or_zCudaAtomicTemplate.resolve_or_9  ó   € Ü�~‰~œnÓ-Ð-r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   ÚCuda_atomic_xorr  s     r)   Úresolve_xorzCudaAtomicTemplate.resolve_xor<  r   r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   ÚCuda_atomic_incr  s     r)   Úresolve_inczCudaAtomicTemplate.resolve_inc?  r   r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   ÚCuda_atomic_decr  s     r)   Úresolve_deczCudaAtomicTemplate.resolve_decB  r   r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   ÚCuda_atomic_exchr  s     r)   Úresolve_exchzCudaAtomicTemplate.resolve_exchE  r  r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   ÚCuda_atomic_maxr  s     r)   Úresolve_maxzCudaAtomicTemplate.resolve_maxH  r   r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   ÚCuda_atomic_minr  s     r)   Úresolve_minzCudaAtomicTemplate.resolve_minK  r   r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   ÚCuda_atomic_nanminr  s     r)   Úresolve_nanminz!CudaAtomicTemplate.resolve_nanminN  ó   € Ü�~‰~Ô0Ó1Ð1r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   ÚCuda_atomic_nanmaxr  s     r)   Úresolve_nanmaxz!CudaAtomicTemplate.resolve_nanmaxQ  r@  r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   ró   r  s     r)   Úresolve_compare_and_swapz+CudaAtomicTemplate.resolve_compare_and_swapT  s   € Ü�~‰~Ô:Ó;Ð;r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   rû   r  s     r)   Úresolve_caszCudaAtomicTemplate.resolve_casW  r   r/   N)r1   r2   r3   r   r  r   rø   r8   r  r#  r&  r)  r-  r0  r3  r6  r9  r<  r?  rC  rE  rG  r+   r/   r)   r  r  ,  s\   „ à
ˆ%�,‰,�t—{‘{Ó
#€Cò/ò/ò/ò.ò/ò/ò/ò0ò/ò/ò2ò2ò<ó/r/   r  c                   óø   — e Zd Z ej                  ej                  «      Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%y) ÚCudaFp16Templatec                 ó4   — t        j                  t        «      S r@   )r   rÐ   Ú	Cuda_haddr  s     r)   Úresolve_haddzCudaFp16Template.resolve_hadd_  ó   € Ü�~‰~œiÓ(Ð(r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   Ú	Cuda_hsubr  s     r)   Úresolve_hsubzCudaFp16Template.resolve_hsubb  rM  r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   Ú	Cuda_hmulr  s     r)   Úresolve_hmulzCudaFp16Template.resolve_hmule  rM  r/   c                 ó   — t         S r@   )Úhdiv_devicer  s     r)   Úresolve_hdivzCudaFp16Template.resolve_hdivh  ó   € ÜÐr/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   Ú	Cuda_hnegr  s     r)   Úresolve_hnegzCudaFp16Template.resolve_hnegk  rM  r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   Ú	Cuda_habsr  s     r)   Úresolve_habszCudaFp16Template.resolve_habsn  rM  r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   r{   r  s     r)   Úresolve_hfmazCudaFp16Template.resolve_hfmaq  rM  r/   c                 ó   — t         S r@   )Úhsin_devicer  s     r)   Úresolve_hsinzCudaFp16Template.resolve_hsint  rW  r/   c                 ó   — t         S r@   )Úhcos_devicer  s     r)   Úresolve_hcoszCudaFp16Template.resolve_hcosw  rW  r/   c                 ó   — t         S r@   )Úhlog_devicer  s     r)   Úresolve_hlogzCudaFp16Template.resolve_hlogz  rW  r/   c                 ó   — t         S r@   )Úhlog10_devicer  s     r)   Úresolve_hlog10zCudaFp16Template.resolve_hlog10}  ó   € ÜÐr/   c                 ó   — t         S r@   )Úhlog2_devicer  s     r)   Úresolve_hlog2zCudaFp16Template.resolve_hlog2€  ó   € ÜÐr/   c                 ó   — t         S r@   )Úhexp_devicer  s     r)   Úresolve_hexpzCudaFp16Template.resolve_hexpƒ  rW  r/   c                 ó   — t         S r@   )Úhexp10_devicer  s     r)   Úresolve_hexp10zCudaFp16Template.resolve_hexp10†  rl  r/   c                 ó   — t         S r@   )Úhexp2_devicer  s     r)   Úresolve_hexp2zCudaFp16Template.resolve_hexp2‰  rp  r/   c                 ó   — t         S r@   )Úhfloor_devicer  s     r)   Úresolve_hfloorzCudaFp16Template.resolve_hfloorŒ  rl  r/   c                 ó   — t         S r@   )Úhceil_devicer  s     r)   Úresolve_hceilzCudaFp16Template.resolve_hceil�  rp  r/   c                 ó   — t         S r@   )Úhsqrt_devicer  s     r)   Úresolve_hsqrtzCudaFp16Template.resolve_hsqrt’  rp  r/   c                 ó   — t         S r@   )Úhrsqrt_devicer  s     r)   Úresolve_hrsqrtzCudaFp16Template.resolve_hrsqrt•  rl  r/   c                 ó   — t         S r@   )Úhrcp_devicer  s     r)   Úresolve_hrcpzCudaFp16Template.resolve_hrcp˜  rW  r/   c                 ó   — t         S r@   )Úhrint_devicer  s     r)   Úresolve_hrintzCudaFp16Template.resolve_hrint›  rp  r/   c                 ó   — t         S r@   )Úhtrunc_devicer  s     r)   Úresolve_htrunczCudaFp16Template.resolve_htruncž  rl  r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   ÚCuda_heqr  s     r)   Úresolve_heqzCudaFp16Template.resolve_heq¡  ó   € Ü�~‰~œhÓ'Ð'r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   ÚCuda_hner  s     r)   Úresolve_hnezCudaFp16Template.resolve_hne¤  r’  r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   ÚCuda_hger  s     r)   Úresolve_hgezCudaFp16Template.resolve_hge§  r’  r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   ÚCuda_hgtr  s     r)   Úresolve_hgtzCudaFp16Template.resolve_hgtª  r’  r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   ÚCuda_hler  s     r)   Úresolve_hlezCudaFp16Template.resolve_hle­  r’  r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   ÚCuda_hltr  s     r)   Úresolve_hltzCudaFp16Template.resolve_hlt°  r’  r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   Ú	Cuda_hmaxr  s     r)   Úresolve_hmaxzCudaFp16Template.resolve_hmax³  rM  r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   Ú	Cuda_hminr  s     r)   Úresolve_hminzCudaFp16Template.resolve_hmin¶  rM  r/   N)&r1   r2   r3   r   r  r   r|   r8   rL  rP  rS  rV  rZ  r]  r_  rb  re  rh  rk  ro  rs  rv  ry  r|  r  r‚  r…  rˆ  r‹  rŽ  r‘  r•  r˜  r›  rž  r¡  r¤  r§  r+   r/   r)   rI  rI  [  s¬   „ à
ˆ%�,‰,�t—y‘yÓ
!€Cò)ò)ò)òò)ò)ò)òòòòòòòòòòòòòòòò(ò(ò(ò(ò(ò(ò)ó)r/   rI  c                   óÞ   — e Zd Z ej                  e«      Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#y)ÚCudaModuleTemplatec                 óH   — t        j                  t        j                  «      S r@   )r   r  r   Úcgr  s     r)   Ú
resolve_cgzCudaModuleTemplate.resolve_cg¾  s   € Ü�|‰|œDŸG™GÓ$Ð$r/   c                 ó   — t         S r@   r   r  s     r)   Úresolve_threadIdxz$CudaModuleTemplate.resolve_threadIdxÁ  ó   € Üˆr/   c                 ó   — t         S r@   r   r  s     r)   Úresolve_blockIdxz#CudaModuleTemplate.resolve_blockIdxÄ  r¯  r/   c                 ó   — t         S r@   r   r  s     r)   Úresolve_blockDimz#CudaModuleTemplate.resolve_blockDimÇ  r¯  r/   c                 ó   — t         S r@   r   r  s     r)   Úresolve_gridDimz"CudaModuleTemplate.resolve_gridDimÊ  r¯  r/   c                 ó"   — t         j                  S r@   r  r  s     r)   Úresolve_laneidz!CudaModuleTemplate.resolve_laneidÍ  r	  r/   c                 óH   — t        j                  t        j                  «      S r@   )r   r  r   r6   r  s     r)   Úresolve_sharedz!CudaModuleTemplate.resolve_sharedÐ  ó   € Ü�|‰|œDŸK™KÓ(Ð(r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   rk   r  s     r)   Úresolve_popczCudaModuleTemplate.resolve_popcÓ  rM  r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   rƒ   r  s     r)   Úresolve_brevzCudaModuleTemplate.resolve_brevÖ  rM  r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   r†   r  s     r)   Úresolve_clzzCudaModuleTemplate.resolve_clzÙ  r’  r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   r‰   r  s     r)   Úresolve_ffszCudaModuleTemplate.resolve_ffsÜ  r’  r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   rv   r  s     r)   Úresolve_fmazCudaModuleTemplate.resolve_fmaß  r’  r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   r€   r  s     r)   Úresolve_cbrtzCudaModuleTemplate.resolve_cbrtâ  rM  r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   rE   r  s     r)   Úresolve_threadfencez&CudaModuleTemplate.resolve_threadfenceå  ó   € Ü�~‰~Ô5Ó6Ð6r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   rJ   r  s     r)   Úresolve_threadfence_blockz,CudaModuleTemplate.resolve_threadfence_blockè  s   € Ü�~‰~Ô4Ó5Ð5r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   rM   r  s     r)   Úresolve_threadfence_systemz-CudaModuleTemplate.resolve_threadfence_systemë  rÉ  r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   rP   r  s     r)   Úresolve_syncwarpz#CudaModuleTemplate.resolve_syncwarpî  s   € Ü�~‰~œmÓ,Ð,r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   rT   r  s     r)   Úresolve_shfl_sync_intrinsicz.CudaModuleTemplate.resolve_shfl_sync_intrinsicñ  ó   € Ü�~‰~Ô6Ó7Ð7r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   r[   r  s     r)   Úresolve_vote_sync_intrinsicz.CudaModuleTemplate.resolve_vote_sync_intrinsicô  rÒ  r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   r^   r  s     r)   Úresolve_match_any_syncz)CudaModuleTemplate.resolve_match_any_sync÷  ó   € Ü�~‰~Ô1Ó2Ð2r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   ra   r  s     r)   Úresolve_match_all_syncz)CudaModuleTemplate.resolve_match_all_syncú  r×  r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   rd   r  s     r)   Úresolve_activemaskz%CudaModuleTemplate.resolve_activemaský  r   r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   rh   r  s     r)   Úresolve_lanemask_ltz&CudaModuleTemplate.resolve_lanemask_lt   r  r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   rŒ   r  s     r)   Úresolve_selpzCudaModuleTemplate.resolve_selp  rM  r/   c                 ó4   — t        j                  t        «      S r@   )r   rÐ   rÿ   r  s     r)   Úresolve_nanosleepz$CudaModuleTemplate.resolve_nanosleep  r*  r/   c                 óH   — t        j                  t        j                  «      S r@   )r   r  r   rø   r  s     r)   Úresolve_atomicz!CudaModuleTemplate.resolve_atomic	  rº  r/   c                 óH   — t        j                  t        j                  «      S r@   )r   r  r   r|   r  s     r)   Úresolve_fp16zCudaModuleTemplate.resolve_fp16  s   € Ü�|‰|œDŸI™IÓ&Ð&r/   c                 óH   — t        j                  t        j                  «      S r@   )r   r  r   rB   r  s     r)   Úresolve_constz CudaModuleTemplate.resolve_const  ó   € Ü�|‰|œDŸJ™JÓ'Ð'r/   c                 óH   — t        j                  t        j                  «      S r@   )r   r  r   r;   r  s     r)   Úresolve_localz CudaModuleTemplate.resolve_local  rè  r/   N)$r1   r2   r3   r   r  r   r8   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©  º  s£   „ à
ˆ%�,‰,�tÓ
€Cò%òòòòòò)ò)ò)ò(ò(ò(ò)ò7ò6ò7ò-ò8ò8ò3ò3ò/ò0ò)ò.ò)ò'ò(ó(r/   r©  )ÚlogÚlog2Úlog10)°ÚoperatorÚ
numba.corer   Únumba.core.typing.npydeclr   r   r   r   r   r	   r
   r   Únumba.core.typing.templatesr   r   r   r   r   r   Únumba.cuda.typesr   Únumba.core.typeconvr   Únumbar   Únumba.cuda.compilerr   Úregistryr�   Úregister_attrr¨   r   r5   r:   r=   rE   rJ   rM   rP   rT   r[   r^   ra   rd   rh   rk   rv   r{   r€   rƒ   r†   r‰   rŒ   rŸ   r©   r®   Úfloatr°   r·   rÅ   rÉ   rË   r|   ÚhaddrK  ÚaddÚCuda_addÚiaddÚ	Cuda_iaddÚhsubrO  ÚsubÚCuda_subÚisubÚ	Cuda_isubÚhmulrR  ÚmulÚCuda_mulÚimulÚ	Cuda_imulÚhmaxr£  Úhminr¦  ÚhnegrY  ÚnegÚCuda_negÚhabsr\  ÚabsÚCuda_absÚheqr�  ÚeqÚhner”  ÚneÚhger—  ÚgeÚhgtrš  ÚgtÚhler�  ÚleÚhltr   ÚltÚtruedivÚitruedivrÔ   rÖ   ra  rd  rg  rj  rn  rr  ru  rx  r�  r„  r{  r~  r‡  rŠ  r�  rU  rñ   ry   rx   rp   rf   rq   rt   Úall_numba_typesrõ   Úunsigned_int_numba_typesrø   r  r"  Úmaxr8  Úminr;  ÚnanmaxrB  Únanminr>  Úand_r%  Úor_r(  Úxorr,  Úincr/  Údecr2  Úexchr5  ró   rû   rÿ   r  r  r  r  r  rI  r©  r  Úfuncr+   r/   r)   Ú<module>r+     ss  ðÛ Ý ÷@÷ @ó @÷>÷ >õ "Ý *Ý Ý @á‹:€Ø×Ñ€Ø×&Ñ&€Ø×*Ñ*€á ˜Ô (ôÐ&ô ð0 
ô˜ó ó 
ðð 
ô�ó ó 
ðð 
ôÐ,ó ó 
ðð 
ô$Ð.ó $ó 
ð$ð
 
ô$Ð-ó $ó 
ð$ð
 
ô$Ð.ó $ó 
ð$ð
 
ôEÐ$ó Eó 
ðEð
 
ôÐ/ó ó 
ðð 
ô6Ð/ó 6ó 
ð6ð 
ôÐ*ó ó 
ðð 
ôÐ*ó ó 
ðð 
ô&Ð&ó &ó 
ð&ð
 
ô&Ð'ó &ó 
ð&ð
 
ôÐ ó ó 
ðð$ 
ô	Ðó 	ó 
ð	ð 
ôÐ ó ó 
ðð 
ôÐ ó ó 
ðð 
ôÐ ó ó 
ðð 
ôÐó ó 
ðð$ 
ôÐó ó 
ðð$ 
ô(Ð ó (ó 
ð(ò(ò
òñ �Óô'Ðó 'ó ð'òò0ò>/ò4ñ ˜DŸI™IŸN™NÓ+€	Ù# H§L¡LÓ1€Ù$ X§]¡]Ó3€	Ù˜DŸI™IŸN™NÓ+€	Ù# H§L¡LÓ1€Ù$ X§]¡]Ó3€	Ù˜DŸI™IŸN™NÓ+€	Ù# H§L¡LÓ1€Ù$ X§]¡]Ó3€	Ù˜DŸI™IŸN™NÓ+€	Ù˜DŸI™IŸN™NÓ+€	Ù˜4Ÿ9™9Ÿ>™>Ó*€	Ù" 8§<¡<Ó0€Ù˜4Ÿ9™9Ÿ>™>Ó*€	Ù" 3Ó'€Ù% d§i¡i§m¡mÓ4€Ù ˜XŸ[™[Ô )Ù% d§i¡i§m¡mÓ4€Ù ˜XŸ[™[Ô )Ù% d§i¡i§m¡mÓ4€Ù ˜XŸ[™[Ô )Ù% d§i¡i§m¡mÓ4€Ù ˜XŸ[™[Ô )Ù% d§i¡i§m¡mÓ4€Ù ˜XŸ[™[Ô )Ù% d§i¡i§m¡mÓ4€Ù ˜XŸ[™[Ô )Ù ˜×)Ñ)Ô *Ù ˜×*Ñ*Ô +ò ò ñ % VÓ,€Ù$ VÓ,€Ù$ VÓ,€Ù& xÓ0€Ù% gÓ.€Ù$ VÓ,€Ù& xÓ0€Ù% gÓ.€Ù% gÓ.€Ù& xÓ0€Ù& xÓ0€Ù% gÓ.€Ù$ VÓ,€Ù% gÓ.€Ù& xÓ0€Ù% fÓ-€òð& —=’= %§-¢-Ø—;’; §¢Ø—;’; §¢ð.€ð —{’{ E§L¢LØ—{’{ E§L¢Lð2Ð ð "ŸLšL¨%¯,ª,Ð7Ð á�t—{’{—‘¨Ó8€Ù�t—{’{—‘¨Ó8€Ù�t—{’{—’¨Ó8€Ù�t—{’{—’¨Ó8€Ù˜$Ÿ+š+×,Ò,¨oÓ>Ð Ù˜$Ÿ+š+×,Ò,¨oÓ>Ð Ù�t—{’{×'Ò'Ð)<Ó=€Ù�d—k’k—o’oÐ':Ó;€Ù�t—{’{—’Ð(;Ó<€Ù�t—{’{—’Ð(@ÓA€Ù�t—{’{—’Ð(@ÓA€Ù˜Ÿš×(Ò(Ð*=Ó>Ð ð 
ô	1Ð#3ó 	1ó 
ð	1ð 
ô6Ð&ó 6ó 
ð6ð" 
ô2Ð%ó 2ó 
ð2ð ô
Ð"ó 
ó ð
ð ô1Ð0ó 1ó ð1ð ô5Ð/ó 5ó ð5ð ô0Ð/ó 0ó ð0ð ô+/Ð*ó +/ó ð+/ð\ ô[)Ð(ó [)ó ð[)ð| ôX(Ð*ó X(ó ðX(ñv ��l�e—l’l 4Ó(Ô )ó
 $€DÙ˜˜Õ/ð $ó !€DÙ˜˜Õ/ð !ó $€DÙ˜˜Õ/ð $ó €DØÐ'Ò'Ù˜T ?Õ3ñ r/   