
    sh                         S SK r S SKrS SKJrJr  S SKJrJrJ	r	  S SK
r
 " S S\
R                  5      r\S:X  a  \
R                  " 5         gg)    N)captured_stdoutoverride_config)njit	vectorizeguvectorizec                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestFastMath	   c                    S n[        SS9" U5      n[        U5      nU R                  U" S5      U" S5      5        UR                  UR                  S   5      nUR                  UR                  S   5      nU R	                  SU5        U R	                  SU5        U R                  SU5        U R                  SU5        g )Nc                 4    U [         R                  " U 5      -   $ Nmathsinxs    m/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/tests/test_fastmath.pyfoo"TestFastMath.test_jit.<locals>.foo       txx{?"    Tfastmath      ?r   	fadd fast	call fast)r   assertEqualinspect_llvm
signaturesassertInassertNotInselfr   fastfooslowfoofastllvmslowllvms         r   test_jitTestFastMath.test_jit
   s    	#%c*s)ws|4''(:(:1(=>''(:(:1(=>k8,k8,h/h/r   c                    S n[        SS1S9" U5      n[        S1S9" U5      nU R                  U" S[        R                  5      S5        U R	                  [        R
                  " U" S[        R                  5      5      5        g )Nc                     X-
  U-   $ r    )r   ys     r   r   3TestFastMath.test_jit_subset_behaviour.<locals>.foo   s    EQ;r   reassocnszr   r   )r   r   npinf
assertTrueisnan)r#   r   r$   r%   s       r   test_jit_subset_behaviour&TestFastMath.test_jit_subset_behaviour   sg    	E 23C8,S1bff-s3bff!567r   c                 \   S n[        SS1S9" U5      n[        5       " U5      nU R                  U" S5      U" S5      5        UR                  UR                  S   5      nUR                  UR                  S   5      nU R	                  SU5        U R	                  SU5        U R	                  S	U5        U R	                  S
U5        U R	                  SU5        U R	                  SU5        U R                  SU;   =(       d    S	U;   U5        U R                  SU;   =(       d    S
U;   U5        g )Nc                 4    U [         R                  " U 5      -   $ r   r   r   s    r   r   .TestFastMath.test_jit_subset_code.<locals>.foo!   r   r   r/   r0   r   r   r   r   r   zfadd reassoc nszzcall reassoc nszzfadd nsz reassoczcall nsz reassoc)r   r   r   r   r!   r3   r"   s         r   test_jit_subset_code!TestFastMath.test_jit_subset_code    s"   	#E 23C8&+ws|4''(:(:1(=>''(:(:1(=>h/h/+X6+X6+X6+X68+ -8+	

 	8+ -8+	
r   c                    U R                  [        5       n[        S1S9" S 5      " S5        S S S 5        U R                  S[	        WR
                  5      5        U R                  [        5       n[        SS0S9" S 5      " S5        S S S 5        U R                  S[	        UR
                  5      5        U R                  [        5       n[        SS9" S	 5      " S5        S S S 5        U R                  S
[	        UR
                  5      5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       NV= f)Nspqrr   c                     U S-   $ N   r,   r   s    r   <lambda>5TestFastMath.test_jit_subset_errors.<locals>.<lambda><   s    a!er   r@   zUnrecognized fastmath flags:Fc                     U S-   $ r?   r,   r   s    r   rA   rB   C   s    QUr   i9  c                     U S-   $ r?   r,   r   s    r   rA   rB   J   s    !a%r   z!Expected fastmath option(s) to be)assertRaises
ValueErrorr   r    str	exception)r#   raisess     r   test_jit_subset_errors#TestFastMath.test_jit_subset_errors:   s    z*f6(#O4Q7 +*  !	

 z*f65/*?;A> +*  !	

 z*f$03 +/  !	
! +* +* +*s#   D0D!D2
D!
D/2
E c                    S n[        SS9" U5      n[        U5      n[        R                  R                  S5      R                  [        R                  5      n[        SS5         [        5        nU" U5      nS S S 5        WR                  5       n[        5        nU" U5      n	S S S 5        WR                  5       n
S S S 5        [        R                  R                  WW	5        U R                  SW
5        U R                  SU
5        U R                  SW5        U R                  SU5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f)Nc                 4    U [         R                  " U 5      -   $ r   r   r   s    r   r   (TestFastMath.test_vectorize.<locals>.fooQ   r   r   Tr      DUMP_OPTIMIZEDr   r   )r   r1   randomastypefloat32r   r   getvaluetestingassert_almost_equalr    r!   )r#   r   r$   r%   r   slow_capexpectr'   fast_capgotr&   s              r   test_vectorizeTestFastMath.test_vectorizeP   s   	#T*3/C.IIQ&&rzz2-t4 "h  #((*H "haj #((*H 5 	

&&vs3k8,k8,h/h/ #" #"	 54s<   &E1	D.:"E	D?%E.
D<	8E?
E		E
Ec                    S n[         R                  R                  S5      R                  [         R                  5      n[	        SS5         S/nSn[        5        n[        X4SS9" U5      nS S S 5        WR                  5       n[        5        n[        X45      " U5      n	S S S 5        WR                  5       n
S S S 5        W	" U5      nW" U5      n[         R                  R                  X5        U R                  SW5        U R                  S	U5        U R                  SW
5        U R                  S	U
5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f)
Nc                 <    U [         R                  " U 5      -   US'   g )Nr   r   )r   outs     r   r   *TestFastMath.test_guvectorize.<locals>.fooe   s    !_CFr   rO   rP   Tz(float32, float32[:])z()->()r   r   r   )r1   rQ   rR   rS   r   r   r   rT   rU   rV   r    r!   )r#   r   r   typessigrY   r$   r&   rW   r%   r'   rX   rZ   s                r   test_guvectorizeTestFastMath.test_guvectorized   s   	%IIQ&&rzz2-t4,-EC "h%e4@E #((*H "h%e1#6 #((*H 5 aj


&&v3k8,k8,h/h/ #" #" 54s<   ED9-"EE
!E9
E	E

E	E
E)r,   N)__name__
__module____qualname____firstlineno__r(   r5   r:   rJ   r[   rc   __static_attributes__r,   r   r   r	   r	   	   s     08
4
,0(0r   r	   __main__)r   numpyr1   numba.tests.supportr   r   numbar   r   r   unittestTestCaser	   re   mainr,   r   r   <module>rq      sD      @ . . n08$$ n0b zMMO r   