
    sh                         S SK r S SKrS SKJrJrJrJrJr  S SK	J
r
Jr  S rS rS rS rS rS	 r " S
 S\5      r\S:X  a  \
R(                  " 5         gg)    N)cudafloat64int8int32void)unittestCUDATestCasec                     [         R                  " S5      u  p4UR                  u  pVXF:  d  X5:  a  g [        R                  " XU4   [        U5      5      X#U4'   g N   )r   gridshapemathpowr   Apowerpower_Ayxmns          u/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/cuda/tests/cudapy/test_powi.pycu_mat_powerr      sH    99Q<DA==DAvHHQ!tWeEl3GqDM    c                     [         R                  " S5      u  p4UR                  u  pVXF:  d  X5:  a  g XU4   U-  X#U4'   g r   )r   r   r   r   s          r   cu_mat_power_binopr      s>    99Q<DA==DAvdGu$GqDMr   c                 t    [         R                  " S5      nU[        U 5      :  a  [        X   X#   5      X'   g g N   )r   r   lenr   rr   r   is       r   vec_powr%      s0    		!A3q6z14 r   c                 f    [         R                  " S5      nU[        U 5      :  a  X   X#   -  X'   g g r   r   r   r!   r"   s       r   vec_pow_binopr(   "   s.    		!A3q6ztqt| r   c                 l    [         R                  " S5      nU[        U 5      :  a  X==   X   -  ss'   g g r   r'   )r#   r   r$   s      r   vec_pow_inplace_binopr*   )   s,    		!A3q6z	 r   c                     [         R                  R                  S5        [         R                  R                  S5      [         R                  R                  S5      S-  -   $ )N{   r                  ?)nprandomseed)Ns    r   random_complexr2   0   s@    IINN3IIQ"))"2"21"5"::;r   c                   X    \ rS rSrS rS rSS jrS rS rS r	S r
SS	 jrS
 rS rSrg)TestCudaPowi5   c           
         [         R                  " [        [        S S 2S S 24   [        [        S S 2S S 24   5      5      nU" [
        5      nSn[        R                  " S[        R                  S9R                  SS5      n[        R                  " U5      nUSUR                  4   " XCU5        U R                  [        R                  " XTU-  5      5        g Nr   
   dtype   r    )r   jitr   r   r   r   r.   arangereshape
empty_liker   
assertTrueallcloseselfdeckernelr   r   Aouts         r   	test_powiTestCudaPowi.test_powi6   s    hhtGAqDM4A?@\"IIb

+33Aq9}}Qq!''z1T*Du*56r   c           
         [         R                  " [        [        S S 2S S 24   [        [        S S 2S S 24   5      5      nU" [
        5      nSn[        R                  " S[        R                  S9R                  SS5      n[        R                  " U5      nUSUR                  4   " XCU5        U R                  [        R                  " XTU-  5      5        g r7   )r   r<   r   r   r   r   r.   r=   r>   r?   r   r@   rA   rB   s         r   test_powi_binopTestCudaPowi.test_powi_binop@   s    hhtGAqDM4A?@'(IIb

+33Aq9}}Qq!''z1T*Du*56r   c                    Sn[        U5      R                  U5      n[        U5      R                  U5      n[        R                  " U5      n[        R
                  " U5      nUSU4   " XuU5        [        R                  R                  XuU-  US9  [        R                  " SS/US9n[        R                  " SS/US9n[        R                  " U5      nUS   " XuU5        [        R                  R                  XuU-  US9  g )	N    r    rtoly                r-   r9   g      ?)r    r   )	r2   astyper.   
zeros_liker   r<   testingassert_allcloseasarray)	rC   r:   funcrO   r1   r   r   r#   cfuncs	            r   
_test_cpowTestCudaPowi._test_cpowL   s    1$$U+1$$U+MM!adA!


""11f4"8 JJd|51JJc{%0MM!dA!


""11f4"8r   c                 J    U R                  [        R                  [        SS9  g Ngv!>rN   )rW   r.   	complex64r%   rC   s    r   test_cpow_complex64_pow$TestCudaPowi.test_cpow_complex64_pow^   s    gF;r   c                 J    U R                  [        R                  [        SS9  g rZ   )rW   r.   r[   r(   r\   s    r   test_cpow_complex64_binop&TestCudaPowi.test_cpow_complex64_binopa   s    m&Ar   c                 L    U R                  [        R                  [        5        g N)rW   r.   
complex128r%   r\   s    r   test_cpow_complex128_pow%TestCudaPowi.test_cpow_complex128_powd   s    w/r   c                 L    U R                  [        R                  [        5        g rc   )rW   r.   rd   r(   r\   s    r   test_cpow_complex128_binop'TestCudaPowi.test_cpow_complex128_binopg   s    }5r   c                    Sn[        U5      R                  U5      n[        U5      R                  U5      nXE-  n[        R                  " [        5      nUSU4   " XE5        [
        R                  R                  XFUS9  g )NrM   r    rN   )r2   rP   r   r<   r*   r.   rR   rS   )rC   r:   rO   r1   r   r   r#   rV   s           r   _test_cpow_inplace_binop%TestCudaPowi._test_cpow_inplace_binopj   sn    1$$U+1$$U+F./adA


""1d"3r   c                 @    U R                  [        R                  SS9  g rZ   )rk   r.   r[   r\   s    r   !test_cpow_complex64_inplace_binop.TestCudaPowi.test_cpow_complex64_inplace_binopt   s    %%bll%@r   c                 @    U R                  [        R                  SS9  g rZ   )rk   r.   rd   r\   s    r   "test_cpow_complex128_inplace_binop/TestCudaPowi.test_cpow_complex128_inplace_binopw   s    %%bmm&%Ar    N)gHz>)__name__
__module____qualname____firstlineno__rG   rJ   rW   r]   r`   re   rh   rk   rn   rq   __static_attributes__rs   r   r   r4   r4   5   s7    779$<B064ABr   r4   __main__)r   numpyr.   numbar   r   r   r   r   numba.cuda.testingr   r	   r   r   r%   r(   r*   r2   r4   rt   mainrs   r   r   <module>r~      s[      2 2 54%<
CB< CBL zMMO r   