Ë
    èÿæiÔ  ã                   ó˜   — d dl Z d dlZd dlmZmZ d dlmZmZm	Z	 d dl
Z
 G d„ de
j                  «      Zedk(  r e
j                  «        yy)é    N)Úcaptured_stdoutÚoverride_config)ÚnjitÚ	vectorizeÚguvectorizec                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestFastMathc                 óˆ  — d„ } t        d¬«      |«      }t        |«      }| j                   |d«       |d«      «       |j                  |j                  d   «      }|j                  |j                  d   «      }| j	                  d|«       | j	                  d|«       | j                  d|«       | j                  d|«       y )Nc                 ó2   — | t        j                  | «      z   S ©N©ÚmathÚsin©Úxs    ún/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/tests/test_fastmath.pyÚfooz"TestFastMath.test_jit.<locals>.foo   ó   € Ø”t—x‘x “{‘?Ð"ó    T©Úfastmathç      à?r   ú	fadd fastú	call fast)r   ÚassertEqualÚinspect_llvmÚ
signaturesÚassertInÚassertNotIn©Úselfr   ÚfastfooÚslowfooÚfastllvmÚslowllvms         r   Útest_jitzTestFastMath.test_jit
   s«   € ò	#à%”$ Ô% cÓ*ˆÜ�s“)ˆØ×Ñ™ ›¡w¨s£|Ô4Ø×'Ñ'¨×(:Ñ(:¸1Ñ(=Ó>ˆØ×'Ñ'¨×(:Ñ(:¸1Ñ(=Ó>ˆà�‰�k 8Ô,Ø�‰�k 8Ô,Ø×Ñ˜ hÔ/Ø×Ñ˜ hÕ/r   c                 ó  — d„ } t        ddh¬«      |«      } t        dh¬«      |«      }| j                   |dt        j                  «      d«       | j	                  t        j
                   |dt        j                  «      «      «       y )Nc                 ó   — | |z
  |z   S r   © )r   Úys     r   r   z3TestFastMath.test_jit_subset_behaviour.<locals>.foo   s   € Ø˜‘E˜Q‘;Ðr   ÚreassocÚnszr   r   )r   r   ÚnpÚinfÚ
assertTrueÚisnan)r!   r   r"   r#   s       r   Útest_jit_subset_behaviourz&TestFastMath.test_jit_subset_behaviour   sk   € ò	à3”$ ¨EÐ 2Ô3°CÓ8ˆØ,”$  Ô,¨SÓ1ˆØ×Ñ™ ¤b§f¡fÓ-¨sÔ3Ø�‰œŸ™¡¨¬b¯f©fÓ!5Ó6Õ7r   c                 óF  — d„ } t        ddh¬«      |«      } t        «       |«      }| j                   |d«       |d«      «       |j                  |j                  d   «      }|j                  |j                  d   «      }| j	                  d|«       | j	                  d|«       | j	                  d	|«       | j	                  d
|«       | j	                  d|«       | j	                  d|«       | j                  d|v xs d	|v |«       | j                  d|v xs d
|v |«       y )Nc                 ó2   — | t        j                  | «      z   S r   r   r   s    r   r   z.TestFastMath.test_jit_subset_code.<locals>.foo!   r   r   r+   r,   r   r   r   r   r   zfadd reassoc nszzcall reassoc nszzfadd nsz reassoczcall nsz reassoc)r   r   r   r   r   r/   r    s         r   Útest_jit_subset_codez!TestFastMath.test_jit_subset_code    s&  € ò	#à3”$ ¨EÐ 2Ô3°CÓ8ˆØ”$“&˜“+ˆØ×Ñ™ ›¡w¨s£|Ô4Ø×'Ñ'¨×(:Ñ(:¸1Ñ(=Ó>ˆØ×'Ñ'¨×(:Ñ(:¸1Ñ(=Ó>ˆà×Ñ˜ hÔ/Ø×Ñ˜ hÔ/Ø×ÑÐ+¨XÔ6Ø×ÑÐ+¨XÔ6Ø×ÑÐ+¨XÔ6Ø×ÑÐ+¨XÔ6Ø�‰Ø 8Ð+ò -Ø 8Ð+Øô	
ð
 	�‰Ø 8Ð+ò -Ø 8Ð+Øõ	
r   c                 óz  — | j                  t        «      5 }  t        dh¬«      d„ «      d«       d d d «       | j                  dt	        j
                  «      «       | j                  t        «      5 }  t        ddi¬«      d„ «      d«       d d d «       | j                  dt	        |j
                  «      «       | j                  t        «      5 }  t        d¬«      d	„ «      d«       d d d «       | j                  d
t	        |j
                  «      «       y # 1 sw Y   ŒéxY w# 1 sw Y   Œ—xY w# 1 sw Y   ŒGxY w)NÚspqrr   c                 ó   — | dz   S ©Né   r)   r   s    r   Ú<lambda>z5TestFastMath.test_jit_subset_errors.<locals>.<lambda><   s   € ¨a°!ªer   r9   zUnrecognized fastmath flags:Fc                 ó   — | dz   S r8   r)   r   s    r   r:   z5TestFastMath.test_jit_subset_errors.<locals>.<lambda>C   s   € °Q¸²Ur   i9  c                 ó   — | dz   S r8   r)   r   s    r   r:   z5TestFastMath.test_jit_subset_errors.<locals>.<lambda>J   s   € ¨!¨aª%r   z!Expected fastmath option(s) to be)ÚassertRaisesÚ
ValueErrorr   r   ÚstrÚ	exception)r!   Úraisess     r   Útest_jit_subset_errorsz#TestFastMath.test_jit_subset_errors:   s  € Ø×ÑœzÔ*¨fØ4Ð#ŒD˜6˜(Ô#¡OÓ4°QÔ7÷ +à�‰Ø*Ü�× Ñ Ó!ô	
ð
 ×ÑœzÔ*¨fØ;Ð*ŒD˜6 5˜/Ô*©?Ó;¸AÔ>÷ +à�‰Ø*Ü�× Ñ Ó!ô	
ð
 ×ÑœzÔ*¨fØ0ÐŒD˜$Ô¡Ó0°Ô3÷ +à�‰Ø/Ü�× Ñ Ó!õ	
÷! +Ð*ú÷ +Ð*ú÷ +Ð*ús#   –DÁ3D%ÃD1ÄD"Ä%D.Ä1D:c                 óª  — d„ } t        d¬«      |«      }t        |«      }t        j                  j                  d«      j                  t        j                  «      }t        dd«      5  t        «       5 } ||«      }d d d «       j                  «       }t        «       5 } ||«      }	d d d «       j                  «       }
d d d «       t        j                  j                  	«       | j                  d
«       | j                  d|
«       | j                  d«       | j                  d|«       y # 1 sw Y   ŒµxY w# 1 sw Y   Œ–xY w# 1 sw Y   ŒŠxY w)Nc                 ó2   — | t        j                  | «      z   S r   r   r   s    r   r   z(TestFastMath.test_vectorize.<locals>.fooQ   r   r   Tr   é   ÚDUMP_OPTIMIZEDr   r   )r   r-   ÚrandomÚastypeÚfloat32r   r   ÚgetvalueÚtestingÚassert_almost_equalr   r   )r!   r   r"   r#   r   Úslow_capÚexpectr%   Úfast_capÚgotr$   s              r   Útest_vectorizezTestFastMath.test_vectorizeP   s	  € ò	#à*”) TÔ*¨3Ó/ˆÜ˜C“.ˆÜ�I‰I×Ñ˜QÓ×&Ñ&¤r§z¡zÓ2ˆäÐ-¨tÕ4Ü Ô" hÙ  ›�÷ #à×(Ñ(Ó*ˆHÜ Ô" hÙ˜a“j�÷ #à×(Ñ(Ó*ˆH÷ 5ô 	�
‰
×&Ñ& v¨sÔ3Ø�‰�k 8Ô,Ø�‰�k 8Ô,Ø×Ñ˜ hÔ/Ø×Ñ˜ hÕ/÷ #Ð"ú÷ #Ð"ú÷	 5Ð4ús<   Á)E	Á4	D1Á="E	Â	D=Â(E	Ä1D:	Ä6E	Ä=E	ÅE	Å	Ec                 óÆ  — d„ }t         j                  j                  d«      j                  t         j                  «      }t	        dd«      5  dg}d}t        «       5 } t        ||d¬«      |«      }d d d «       j                  «       }t        «       5 } t        ||«      |«      }	d d d «       j                  «       }
d d d «        	|«      } |«      }t         j                  j                  ||«       | j                  d«       | j                  d	|«       | j                  d
«       | j                  d	|
«       y # 1 sw Y   ŒÏxY w# 1 sw Y   Œ¦xY w# 1 sw Y   ŒšxY w)
Nc                 ó:   — | t        j                  | «      z   |d<   y )Nr   r   )r   Úouts     r   r   z*TestFastMath.test_guvectorize.<locals>.fooe   s   € ØœŸ™ !›‘_ˆC�ŠFr   rE   rF   Tz(float32, float32[:])z()->()r   r   r   )r-   rG   rH   rI   r   r   r   rJ   rK   rL   r   r   )r!   r   r   ÚtypesÚsigrO   r"   r$   rM   r#   r%   rN   rP   s                r   Útest_guvectorizezTestFastMath.test_guvectorized   s$  € ò	%ä�I‰I×Ñ˜QÓ×&Ñ&¤r§z¡zÓ2ˆÜÐ-¨tÕ4Ø,Ð-ˆEØˆCÜ Ô" hØ@œ+ e¨S¸4Ô@ÀÓE�÷ #à×(Ñ(Ó*ˆHÜ Ô" hØ1œ+ e¨SÓ1°#Ó6�÷ #à×(Ñ(Ó*ˆH÷ 5ñ ˜“ˆÙ�a‹jˆÜ
�
‰
×&Ñ& v¨sÔ3Ø�‰�k 8Ô,Ø�‰�k 8Ô,Ø×Ñ˜ hÔ/Ø×Ñ˜ hÕ/÷ #Ð"ú÷ #Ð"ú÷ 5Ð4ús<   ÁEÁD?Á1"EÂEÂ&EÄ?E	ÅEÅE	ÅEÅE N)	Ú__name__Ú
__module__Ú__qualname__r&   r1   r4   rB   rQ   rW   r)   r   r   r	   r	   	   s    „ ò0ò8ò
ò4
ò,0ó(0r   r	   Ú__main__)r   Únumpyr-   Únumba.tests.supportr   r   Únumbar   r   r   ÚunittestÚTestCaser	   rX   Úmainr)   r   r   Ú<module>rb      sF   ðÛ Û ç @ß .Ñ .Û ôn0�8×$Ñ$ô n0ðb ˆzÒØ€H‡M�M…Oð r   