§
    2@ÄjO  ã                   ó–   — 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        ¦   «          dS dS )é    N)Úcaptured_stdoutÚoverride_config)ÚnjitÚ	vectorizeÚguvectorizec                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestFastMathc                 óÜ  — d„ } t          d¬¦  «        |¦  «        }t          |¦  «        }|                       |d¦  «         |d¦  «        ¦  «         |                     |j        d         ¦  «        }|                     |j        d         ¦  «        }|                      d|¦  «         |                      d|¦  «         |                      d|¦  «         |                      d|¦  «         d S )Nc                 ó0   — | t          j        | ¦  «        z   S ©N©ÚmathÚsin©Úxs    úJC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_fastmath.pyÚfooz"TestFastMath.test_jit.<locals>.foo   ó   € Ø•t”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 w¨s¡|¤|Ñ4Ô4Ð4Ø×'Ò'¨Ô(:¸1Ô(=Ñ>Ô>ˆØ×'Ò'¨Ô(:¸1Ô(=Ñ>Ô>ˆà�Š�k 8Ñ,Ô,Ð,Ø�Š�k 8Ñ,Ô,Ð,Ø×Ò˜ hÑ/Ô/Ð/Ø×Ò˜ hÑ/Ô/Ð/Ð/Ð/r   c                 ó@  — d„ } t          ddh¬¦  «        |¦  «        } t          dh¬¦  «        |¦  «        }|                       |dt          j        ¦  «        d¦  «         |                      t          j         |dt          j        ¦  «        ¦  «        ¦  «         d S )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   s    € ð	ð 	ð 	à3•$ ¨EÐ 2Ð3Ñ3Ô3°CÑ8Ô8ˆØ,•$  Ð,Ñ,Ô,¨SÑ1Ô1ˆØ×Ò˜˜ ¥b¤fÑ-Ô-¨sÑ3Ô3Ð3Ø�Š�œ  ¨­b¬fÑ!5Ô!5Ñ6Ô6Ñ7Ô7Ð7Ð7Ð7r   c                 ó¸  — d„ } t          ddh¬¦  «        |¦  «        } t          ¦   «         |¦  «        }|                       |d¦  «         |d¦  «        ¦  «         |                     |j        d         ¦  «        }|                     |j        d         ¦  «        }|                      d|¦  «         |                      d|¦  «         |                      d	|¦  «         |                      d
|¦  «         |                      d|¦  «         |                      d|¦  «         |                      d|v pd	|v |¦  «         |                      d|v pd
|v |¦  «         d S )Nc                 ó0   — | 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Ñ3Ô3°CÑ8Ô8ˆØ•$‘&”&˜‘+”+ˆØ×Ò˜˜ ™œ w w¨s¡|¤|Ñ4Ô4Ð4Ø×'Ò'¨Ô(:¸1Ô(=Ñ>Ô>ˆØ×'Ò'¨Ô(:¸1Ô(=Ñ>Ô>ˆà×Ò˜ hÑ/Ô/Ð/Ø×Ò˜ hÑ/Ô/Ð/Ø×ÒÐ+¨XÑ6Ô6Ð6Ø×ÒÐ+¨XÑ6Ô6Ð6Ø×ÒÐ+¨XÑ6Ô6Ð6Ø×ÒÐ+¨XÑ6Ô6Ð6Ø�ŠØ 8Ð+ð -Ø 8Ð+Øñ	
ô 	
ð 	
ð
 	�ŠØ 8Ð+ð -Ø 8Ð+Øñ	
ô 	
ð 	
ð 	
ð 	
r   c                 óú  — |                       t          ¦  «        5 }  t          dh¬¦  «        d„ ¦  «        d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt	          |j        ¦  «        ¦  «         |                       t          ¦  «        5 }  t          ddi¬¦  «        d„ ¦  «        d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt	          |j        ¦  «        ¦  «         |                       t          ¦  «        5 }  t          d¬¦  «        d	„ ¦  «        d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      d
t	          |j        ¦  «        ¦  «         d S )NÚspqrr   c                 ó   — | dz   S ©Né   r)   r   s    r   ú<lambda>z5TestFastMath.test_jit_subset_errors.<locals>.<lambda><   s
   € ¨a°!©e€ r   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¸±U€ r   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:   s5  € Ø×Ò�zÑ*Ô*ð 	8¨fØ4Ð#�D˜6˜(Ð#Ñ#Ô# O OÑ4Ô4°QÑ7Ô7Ð7ð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8à�ŠØ*Ý�Ô Ñ!Ô!ñ	
ô 	
ð 	
ð
 ×Ò�zÑ*Ô*ð 	?¨fØ;Ð*�D˜6 5˜/Ð*Ñ*Ô*¨?¨?Ñ;Ô;¸AÑ>Ô>Ð>ð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?à�ŠØ*Ý�Ô Ñ!Ô!ñ	
ô 	
ð 	
ð
 ×Ò�zÑ*Ô*ð 	4¨fØ0Ð�D˜$ÐÑÔ  Ñ0Ô0°Ñ3Ô3Ð3ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4à�ŠØ/Ý�Ô Ñ!Ô!ñ	
ô 	
ð 	
ð 	
ð 	
s5   ›%AÁAÁAÂ&CÃCÃCÄ$EÅEÅEc                 ó(  — d„ } t          d¬¦  «        |¦  «        }t          |¦  «        }t          j                             d¦  «                             t          j        ¦  «        }t          dd¦  «        5  t          ¦   «         5 } ||¦  «        }d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         }t          ¦   «         5 } ||¦  «        }	d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         }
d d d ¦  «         n# 1 swxY w Y   t          j         	                    ||	¦  «         |  
                    d|
¦  «         |  
                    d|
¦  «         |                      d|¦  «         |                      d|¦  «         d S )Nc                 ó0   — | 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×Ò˜QÑÔ×&Ò&¥r¤zÑ2Ô2ˆåÐ-¨tÑ4Ô4ð 	+ð 	+Ý Ñ"Ô"ð $ hØ ˜ ™œ�ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $à×(Ò(Ñ*Ô*ˆHÝ Ñ"Ô"ð ! hØ�g˜a‘j”j�ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !à×(Ò(Ñ*Ô*ˆHð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+õ 	Œ
×&Ò& v¨sÑ3Ô3Ð3Ø�Š�k 8Ñ,Ô,Ð,Ø�Š�k 8Ñ,Ô,Ð,Ø×Ò˜ hÑ/Ô/Ð/Ø×Ò˜ hÑ/Ô/Ð/Ð/Ð/sZ   Á8DÂBÂDÂB#	Â#DÂ&B#	Â'%DÃC$ÃDÃ$C(	Ã(DÃ+C(	Ã,DÄDÄDc                 óJ  — d„ }t           j                             d¦  «                             t           j        ¦  «        }t	          dd¦  «        5  dg}d}t          ¦   «         5 } t          ||d¬¦  «        |¦  «        }d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         }t          ¦   «         5 } t          ||¦  «        |¦  «        }	d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         }
d d d ¦  «         n# 1 swxY w Y    |	|¦  «        } ||¦  «        }t           j         	                    ||¦  «         |  
                    d|¦  «         |  
                    d	|¦  «         |                      d|
¦  «         |                      d	|
¦  «         d S )
Nc                 ó:   — | t          j        | ¦  «        z   |d<   d S )Nr   r   )r   Úouts     r   r   z*TestFastMath.test_guvectorize.<locals>.fooe   s   € Ø�œ !™œ‘_ˆC�‰FˆFˆ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×Ò˜QÑÔ×&Ò&¥r¤zÑ2Ô2ˆÝÐ-¨tÑ4Ô4ð 	+ð 	+Ø,Ð-ˆEØˆCÝ Ñ"Ô"ð F hØ@�+ e¨S¸4Ð@Ñ@Ô@ÀÑEÔE�ðFð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fà×(Ò(Ñ*Ô*ˆHÝ Ñ"Ô"ð 7 hØ1�+ e¨SÑ1Ô1°#Ñ6Ô6�ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7à×(Ò(Ñ*Ô*ˆHð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð �˜‘”ˆØˆg�a‰jŒjˆÝ
Œ
×&Ò& v¨sÑ3Ô3Ð3Ø�Š�k 8Ñ,Ô,Ð,Ø�Š�k 8Ñ,Ô,Ð,Ø×Ò˜ hÑ/Ô/Ð/Ø×Ò˜ hÑ/Ô/Ð/Ð/Ð/sZ   ÁD
Á$BÂ D
ÂB	ÂD
ÂB	Â%D
Â9CÃD
ÃC#	Ã#D
Ã&C#	Ã'D
Ä
DÄDN)	Ú__name__Ú
__module__Ú__qualname__r&   r1   r4   rB   rQ   rW   r)   r   r   r	   r	   	   sn   € € € € € ð0ð 0ð 0ð8ð 8ð 8ð
ð 
ð 
ð4
ð 
ð 
ð,0ð 0ð 0ð(0ð 0ð 0ð 0ð 0r   r	   Ú__main__)r   Únumpyr-   Únumba.tests.supportr   r   Únumbar   r   r   ÚunittestÚTestCaser	   rX   Úmainr)   r   r   ú<module>rb      sµ   ðØ €€€Ø Ð Ð Ð à @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø €€€ðn0ð n0ð n0ð n0ð n0�8Ô$ñ n0ô n0ð n0ðb ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   